diff --git a/a2l/a2l.go b/a2l/a2l.go index 61c2193..bcb735c 100644 --- a/a2l/a2l.go +++ b/a2l/a2l.go @@ -21,16 +21,16 @@ var ( numProc = runtime.NumCPU() * 2 ) -//A2L is the main struct returned by the a2l package. -//it contains all datatypes parsed from the .a2l file +// A2L is the main struct returned by the a2l package. +// it contains all datatypes parsed from the .a2l file type A2L struct { Asap2Version asap2Version A2mlVersion a2mlVersion Project Project } -//ParseFromFile is the main exported function to be called from a2l package. -//it takes an .a2l file and parses it +// ParseFromFile is the main exported function to be called from a2l package. +// it takes an .a2l file and parses it func ParseFromFile(filepath string) (A2L, error) { var err error var text string @@ -64,8 +64,8 @@ func ParseFromFile(filepath string) (A2L, error) { return a, nil } -//parseA2l handles the parsing of the a2l struct. -//as opposed to ParseFromFile which also handles creation of the tokenizer and file reading, etc. +// parseA2l handles the parsing of the a2l struct. +// as opposed to ParseFromFile which also handles creation of the tokenizer and file reading, etc. func parseA2l(tok *tokenGenerator) (A2L, error) { a2l := A2L{} var err error @@ -109,7 +109,7 @@ forLoop: return a2l, err } -//readFileToString opens and reads a file, then returns a string value +// readFileToString opens and reads a file, then returns a string value func readFileToString(filepath string) (string, error) { bytesString, err := os.ReadFile(filepath) if err != nil { diff --git a/a2l/a2l_test.go b/a2l/a2l_test.go index 33370b6..9c4240c 100644 --- a/a2l/a2l_test.go +++ b/a2l/a2l_test.go @@ -32,17 +32,38 @@ func FuzzParseA2L(f *testing.F) { a2lPath := "testing/ASAP2_Demo_V171_allKeywords.a2l" text, _ := readFileToString(a2lPath) f.Add(text) + var errList []error f.Fuzz(func(t *testing.T, orig string) { tg, err := buildTokenGeneratorFromString(orig) if err != nil { - log.Err(err).Msg("could not create tokens from a2l file") - log.Err(err).Msg(orig) + exists := false + for _, e := range errList { + if err == e { + exists = true + break + } + } + if !exists { + errList = append(errList, err) + log.Err(err).Msg("could not create tokens from a2l file") + log.Err(err).Msg(orig) + } } a, err := parseA2l(&tg) if err != nil { - log.Err(err).Msg("failed parsing " + a.Project.Name + " with error:") - log.Err(err).Msg(orig) + exists := false + for _, e := range errList { + if err == e { + exists = true + break + } + } + if !exists { + errList = append(errList, err) + log.Err(err).Msg("failed parsing " + a.Project.Name + " with error:") + //dumps the a2l file into the log: log.Err(err).Msg(orig) + } } }) } @@ -65,7 +86,7 @@ func BenchmarkParseFromFile(b *testing.B) { } } -//configureLogger adds a file logger, resets previous log file and does some formatting +// configureLogger adds a file logger, resets previous log file and does some formatting func configureLogger() error { var err error var file *os.File diff --git a/a2l/testdata/fuzz/FuzzParseA2L/290378f40701d315e4488817302849612f93373fd409f18e9bc7c479f8abcd95 b/a2l/testdata/fuzz/FuzzParseA2L/290378f40701d315e4488817302849612f93373fd409f18e9bc7c479f8abcd95 new file mode 100644 index 0000000..162d12f --- /dev/null +++ b/a2l/testdata/fuzz/FuzzParseA2L/290378f40701d315e4488817302849612f93373fd409f18e9bc7c479f8abcd95 @@ -0,0 +1,2 @@ +go test fuzz v1 +string("\ufeffASAP2_VERSION 1 71\r\nA2ML_VERSION 1 31\r\n/begin PROJECT ASAP2_Example \"\"\r\n\r\n /begin HEADER \"ASAP2 Example File\"\r\n VERSION \"V1.7.1\"\r\n PROJECT_NO P2016_09_AE_MCD_2MC_BS_V1_7_1_main\r\n /end HEADER\r\n\r\n /begin MODULE Example \"\"\r\n\r\n /begin A2ML\r\n\r\n block \"IF_DATA\" taggedunion if_data {\r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* ASAM XCP AML */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n \"XCP\" struct {\r\n taggedstruct {\r\n block \"PROTOCOL_LAYER\" struct {\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uchar;\r\n uint;\r\n enum {\r\n \"BYTE_ORDER_MSB_LAST\" = 0,\r\n \"BYTE_ORDER_MSB_FIRST\" = 1\r\n };\r\n enum {\r\n \"ADDRESS_GRANULARITY_BYTE\" = 1,\r\n \"ADDRESS_GRANULARITY_WORD\" = 2,\r\n \"ADDRESS_GRANULARITY_DWORD\" = 4\r\n };\r\n taggedstruct {\r\n (\"OPTIONAL_CMD\" enum {\r\n \"GET_COMM_MODE_INFO\" = 251,\r\n \"GET_ID\" = 250,\r\n \"SET_REQUEST\" = 249,\r\n \"GET_SEED\" = 248,\r\n \"UNLOCK\" = 247,\r\n \"SET_MTA\" = 246,\r\n \"UPLOAD\" = 245,\r\n \"SHORT_UPLOAD\" = 244,\r\n \"BUILD_CHECKSUM\" = 243,\r\n \"TRANSPORT_LAYER_CMD\" = 242,\r\n \"USER_CMD\" = 241,\r\n \"DOWNLOAD\" = 240,\r\n \"DOWNLOAD_NEXT\" = 239,\r\n \"DOWNLOAD_MAX\" = 238,\r\n \"SHORT_DOWNLOAD\" = 237,\r\n \"MODIFY_BITS\" = 236,\r\n \"SET_CAL_PAGE\" = 235,\r\n \"GET_CAL_PAGE\" = 234,\r\n \"GET_PAG_PROCESSOR_INFO\" = 233,\r\n \"GET_SEGMENT_INFO\" = 232,\r\n \"GET_PAGE_INFO\" = 231,\r\n \"SET_SEGMENT_MODE\" = 230,\r\n \"GET_SEGMENT_MODE\" = 229,\r\n \"COPY_CAL_PAGE\" = 228,\r\n \"CLEAR_DAQ_LIST\" = 227,\r\n \"SET_DAQ_PTR\" = 226,\r\n \"WRITE_DAQ\" = 225,\r\n \"SET_DAQ_LIST_MODE\" = 224,\r\n \"GET_DAQ_LIST_MODE\" = 223,\r\n \"START_STOP_DAQ_LIST\" = 222,\r\n \"START_STOP_SYNCH\" = 221,\r\n \"GET_DAQ_CLOCK\" = 220,\r\n \"READ_DAQ\" = 219,\r\n \"GET_DAQ_PROCESSOR_INFO\" = 218,\r\n \"GET_DAQ_RESOLUTION_INFO\" = 217,\r\n \"GET_DAQ_LIST_INFO\" = 216,\r\n \"GET_DAQ_EVENT_INFO\" = 215,\r\n \"FREE_DAQ\" = 214,\r\n \"ALLOC_DAQ\" = 213,\r\n \"ALLOC_ODT\" = 212,\r\n \"ALLOC_ODT_ENTRY\" = 211,\r\n \"PROGRAM_START\" = 210,\r\n \"PROGRAM_CLEAR\" = 209,\r\n \"PROGRAM\" = 208,\r\n \"PROGRAM_RESET\" = 207,\r\n \"GET_PGM_PROCESSOR_INFO\" = 206,\r\n \"GET_SECTOR_INFO\" = 205,\r\n \"PROGRAM_PREPARE\" = 204,\r\n \"PROGRAM_FORMAT\" = 203,\r\n \"PROGRAM_NEXT\" = 202,\r\n \"PROGRAM_MAX\" = 201,\r\n \"PROGRAM_VERIFY\" = 200\r\n })*;\r\n \"COMMUNICATION_MODE_SUPPORTED\" taggedunion {\r\n \"BLOCK\" taggedstruct {\r\n \"SLAVE\" ;\r\n \"MASTER\" struct {\r\n uchar;\r\n uchar;\r\n };\r\n };\r\n \"INTERLEAVED\" uchar;\r\n };\r\n \"SEED_AND_KEY_EXTERNAL_FUNCTION\" char[256];\r\n };\r\n };\r\n block \"SEGMENT\" struct {\r\n uchar;\r\n uchar;\r\n uchar;\r\n uchar;\r\n uchar;\r\n taggedstruct {\r\n block \"CHECKSUM\" struct {\r\n enum {\r\n \"XCP_ADD_11\" = 1,\r\n \"XCP_ADD_12\" = 2,\r\n \"XCP_ADD_14\" = 3,\r\n \"XCP_ADD_22\" = 4,\r\n \"XCP_ADD_24\" = 5,\r\n \"XCP_ADD_44\" = 6,\r\n \"XCP_CRC_16\" = 7,\r\n \"XCP_CRC_16_CITT\" = 8,\r\n \"XCP_CRC_32\" = 9,\r\n \"XCP_USER_DEFINED\" = 255\r\n };\r\n taggedstruct {\r\n \"MAX_BLOCK_SIZE\" ulong;\r\n \"EXTERNAL_FUNCTION\" char[256];\r\n };\r\n };\r\n (block \"PAGE\" struct {\r\n uchar;\r\n enum {\r\n \"ECU_ACCESS_NOT_ALLOWED\" = 0,\r\n \"ECU_ACCESS_WITHOUT_XCP_ONLY\" = 1,\r\n \"ECU_ACCESS_WITH_XCP_ONLY\" = 2,\r\n \"ECU_ACCESS_DONT_CARE\" = 3\r\n };\r\n enum {\r\n \"XCP_READ_ACCESS_NOT_ALLOWED\" = 0,\r\n \"XCP_READ_ACCESS_WITHOUT_ECU_ONLY\" = 1,\r\n \"XCP_READ_ACCESS_WITH_ECU_ONLY\" = 2,\r\n \"XCP_READ_ACCESS_DONT_CARE\" = 3\r\n };\r\n enum {\r\n \"XCP_WRITE_ACCESS_NOT_ALLOWED\" = 0,\r\n \"XCP_WRITE_ACCESS_WITHOUT_ECU_ONLY\" = 1,\r\n \"XCP_WRITE_ACCESS_WITH_ECU_ONLY\" = 2,\r\n \"XCP_WRITE_ACCESS_DONT_CARE\" = 3\r\n };\r\n taggedstruct {\r\n \"INIT_SEGMENT\" uchar;\r\n };\r\n })*;\r\n (block \"ADDRESS_MAPPING\" struct {\r\n ulong;\r\n ulong;\r\n ulong;\r\n })*;\r\n \"PGM_VERIFY\" ulong;\r\n };\r\n };\r\n block \"DAQ\" struct {\r\n enum {\r\n \"STATIC\" = 0,\r\n \"DYNAMIC\" = 1\r\n };\r\n uint;\r\n uint;\r\n uchar;\r\n enum {\r\n \"OPTIMISATION_TYPE_DEFAULT\" = 0,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_16\" = 1,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_32\" = 2,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_64\" = 3,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_ALIGNMENT\" = 4,\r\n \"OPTIMISATION_TYPE_MAX_ENTRY_SIZE\" = 5\r\n };\r\n enum {\r\n \"ADDRESS_EXTENSION_FREE\" = 0,\r\n \"ADDRESS_EXTENSION_ODT\" = 1,\r\n \"ADDRESS_EXTENSION_DAQ\" = 3\r\n };\r\n enum {\r\n \"IDENTIFICATION_FIELD_TYPE_ABSOLUTE\" = 0,\r\n \"IDENTIFICATION_FIELD_TYPE_RELATIVE_BYTE\" = 1,\r\n \"IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD\" = 2,\r\n \"IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD_ALIGNED\" = 3\r\n };\r\n enum {\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE\" = 1,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_WORD\" = 2,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_DWORD\" = 4,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_DLONG\" = 8\r\n };\r\n uchar;\r\n enum {\r\n \"NO_OVERLOAD_INDICATION\" = 0,\r\n \"OVERLOAD_INDICATION_PID\" = 1,\r\n \"OVERLOAD_INDICATION_EVENT\" = 2\r\n };\r\n taggedstruct {\r\n \"PRESCALER_SUPPORTED\" ;\r\n \"RESUME_SUPPORTED\" ;\r\n block \"STIM\" struct {\r\n enum {\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_BYTE\" = 1,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_WORD\" = 2,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_DWORD\" = 4,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_DLONG\" = 8\r\n };\r\n uchar;\r\n taggedstruct {\r\n \"BIT_STIM_SUPPORTED\" ;\r\n };\r\n };\r\n block \"TIMESTAMP_SUPPORTED\" struct {\r\n uint;\r\n enum {\r\n \"NO_TIME_STAMP\" = 0,\r\n \"SIZE_BYTE\" = 1,\r\n \"SIZE_WORD\" = 2,\r\n \"SIZE_DWORD\" = 4\r\n };\r\n enum {\r\n \"UNIT_1NS\" = 0,\r\n \"UNIT_10NS\" = 1,\r\n \"UNIT_100NS\" = 2,\r\n \"UNIT_1US\" = 3,\r\n \"UNIT_10US\" = 4,\r\n \"UNIT_100US\" = 5,\r\n \"UNIT_1MS\" = 6,\r\n \"UNIT_10MS\" = 7,\r\n \"UNIT_100MS\" = 8,\r\n \"UNIT_1S\" = 9\r\n };\r\n taggedstruct {\r\n \"TIMESTAMP_FIXED\" ;\r\n };\r\n };\r\n \"PID_OFF_SUPPORTED\" ;\r\n (block \"DAQ_LIST\" struct {\r\n uint;\r\n taggedstruct {\r\n \"DAQ_LIST_TYPE\" enum {\r\n \"DAQ\" = 1,\r\n \"STIM\" = 2,\r\n \"DAQ_STIM\" = 3\r\n };\r\n \"MAX_ODT\" uchar;\r\n \"MAX_ODT_ENTRIES\" uchar;\r\n \"FIRST_PID\" uchar;\r\n \"EVENT_FIXED\" uint;\r\n block \"PREDEFINED\" taggedstruct {\r\n (block \"ODT\" struct {\r\n uchar;\r\n taggedstruct {\r\n (\"ODT_ENTRY\" struct {\r\n uchar;\r\n ulong;\r\n uchar;\r\n uchar;\r\n uchar;\r\n })*;\r\n };\r\n })*;\r\n };\r\n };\r\n })*;\r\n (block \"EVENT\" struct {\r\n char[101];\r\n char[9];\r\n uint;\r\n enum {\r\n \"DAQ\" = 1,\r\n \"STIM\" = 2,\r\n \"DAQ_STIM\" = 3\r\n };\r\n uchar;\r\n uchar;\r\n uchar;\r\n uchar;\r\n })*;\r\n };\r\n };\r\n block \"PAG\" struct {\r\n uchar;\r\n taggedstruct {\r\n \"FREEZE_SUPPORTED\" ;\r\n };\r\n };\r\n block \"PGM\" struct {\r\n enum {\r\n \"PGM_MODE_ABSOLUTE\" = 1,\r\n \"PGM_MODE_FUNCTIONAL\" = 2,\r\n \"PGM_MODE_ABSOLUTE_AND_FUNCTIONAL\" = 3\r\n };\r\n uchar;\r\n uchar;\r\n taggedstruct {\r\n (block \"SECTOR\" struct {\r\n char[101];\r\n uchar;\r\n ulong;\r\n ulong;\r\n uchar;\r\n uchar;\r\n uchar;\r\n })*;\r\n \"COMMUNICATION_MODE_SUPPORTED\" taggedunion {\r\n \"BLOCK\" taggedstruct {\r\n \"SLAVE\" ;\r\n \"MASTER\" struct {\r\n uchar;\r\n uchar;\r\n };\r\n };\r\n \"INTERLEAVED\" uchar;\r\n };\r\n };\r\n };\r\n block \"DAQ_EVENT\" taggedunion {\r\n \"FIXED_EVENT_LIST\" taggedstruct {\r\n (\"EVENT\" uint)*;\r\n };\r\n \"VARIABLE\" taggedstruct {\r\n block \"AVAILABLE_EVENT_LIST\" taggedstruct {\r\n (\"EVENT\" uint)*;\r\n };\r\n block \"DEFAULT_EVENT_LIST\" taggedstruct {\r\n (\"EVENT\" uint)*;\r\n };\r\n };\r\n };\r\n block \"XCP_ON_CAN\" struct {\r\n uint;\r\n taggedstruct {\r\n \"CAN_ID_BROADCAST\" ulong;\r\n \"CAN_ID_MASTER\" ulong;\r\n \"CAN_ID_SLAVE\" ulong;\r\n \"BAUDRATE\" ulong;\r\n \"SAMPLE_POINT\" uchar;\r\n \"SAMPLE_RATE\" enum {\r\n \"SINGLE\" = 1,\r\n \"TRIPLE\" = 3\r\n };\r\n \"BTL_CYCLES\" uchar;\r\n \"SJW\" uchar;\r\n \"SYNC_EDGE\" enum {\r\n \"SINGLE\" = 1,\r\n \"DUAL\" = 2\r\n };\r\n \"MAX_DLC_REQUIRED\" ;\r\n (block \"DAQ_LIST_CAN_ID\" struct {\r\n uint;\r\n taggedstruct {\r\n \"VARIABLE\" ;\r\n \"FIXED\" ulong;\r\n };\r\n })*;\r\n block \"PROTOCOL_LAYER\" struct {\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uchar;\r\n uint;\r\n enum {\r\n \"BYTE_ORDER_MSB_LAST\" = 0,\r\n \"BYTE_ORDER_MSB_FIRST\" = 1\r\n };\r\n enum {\r\n \"ADDRESS_GRANULARITY_BYTE\" = 1,\r\n \"ADDRESS_GRANULARITY_WORD\" = 2,\r\n \"ADDRESS_GRANULARITY_DWORD\" = 4\r\n };\r\n taggedstruct {\r\n (\"OPTIONAL_CMD\" enum {\r\n \"GET_COMM_MODE_INFO\" = 251,\r\n \"GET_ID\" = 250,\r\n \"SET_REQUEST\" = 249,\r\n \"GET_SEED\" = 248,\r\n \"UNLOCK\" = 247,\r\n \"SET_MTA\" = 246,\r\n \"UPLOAD\" = 245,\r\n \"SHORT_UPLOAD\" = 244,\r\n \"BUILD_CHECKSUM\" = 243,\r\n \"TRANSPORT_LAYER_CMD\" = 242,\r\n \"USER_CMD\" = 241,\r\n \"DOWNLOAD\" = 240,\r\n \"DOWNLOAD_NEXT\" = 239,\r\n \"DOWNLOAD_MAX\" = 238,\r\n \"SHORT_DOWNLOAD\" = 237,\r\n \"MODIFY_BITS\" = 236,\r\n \"SET_CAL_PAGE\" = 235,\r\n \"GET_CAL_PAGE\" = 234,\r\n \"GET_PAG_PROCESSOR_INFO\" = 233,\r\n \"GET_SEGMENT_INFO\" = 232,\r\n \"GET_PAGE_INFO\" = 231,\r\n \"SET_SEGMENT_MODE\" = 230,\r\n \"GET_SEGMENT_MODE\" = 229,\r\n \"COPY_CAL_PAGE\" = 228,\r\n \"CLEAR_DAQ_LIST\" = 227,\r\n \"SET_DAQ_PTR\" = 226,\r\n \"WRITE_DAQ\" = 225,\r\n \"SET_DAQ_LIST_MODE\" = 224,\r\n \"GET_DAQ_LIST_MODE\" = 223,\r\n \"START_STOP_DAQ_LIST\" = 222,\r\n \"START_STOP_SYNCH\" = 221,\r\n \"GET_DAQ_CLOCK\" = 220,\r\n \"READ_DAQ\" = 219,\r\n \"GET_DAQ_PROCESSOR_INFO\" = 218,\r\n \"GET_DAQ_RESOLUTION_INFO\" = 217,\r\n \"GET_DAQ_LIST_INFO\" = 216,\r\n \"GET_DAQ_EVENT_INFO\" = 215,\r\n \"FREE_DAQ\" = 214,\r\n \"ALLOC_DAQ\" = 213,\r\n \"ALLOC_ODT\" = 212,\r\n \"ALLOC_ODT_ENTRY\" = 211,\r\n \"PROGRAM_START\" = 210,\r\n \"PROGRAM_CLEAR\" = 209,\r\n \"PROGRAM\" = 208,\r\n \"PROGRAM_RESET\" = 207,\r\n \"GET_PGM_PROCESSOR_INFO\" = 206,\r\n \"GET_SECTOR_INFO\" = 205,\r\n \"PROGRAM_PREPARE\" = 204,\r\n \"PROGRAM_FORMAT\" = 203,\r\n \"PROGRAM_NEXT\" = 202,\r\n \"PROGRAM_MAX\" = 201,\r\n \"PROGRAM_VERIFY\" = 200\r\n })*;\r\n \"COMMUNICATION_MODE_SUPPORTED\" taggedunion {\r\n \"BLOCK\" taggedstruct {\r\n \"SLAVE\" ;\r\n \"MASTER\" struct {\r\n uchar;\r\n uchar;\r\n };\r\n };\r\n \"INTERLEAVED\" uchar;\r\n };\r\n \"SEED_AND_KEY_EXTERNAL_FUNCTION\" char[256];\r\n };\r\n };\r\n block \"SEGMENT\" struct {\r\n uchar;\r\n uchar;\r\n uchar;\r\n uchar;\r\n uchar;\r\n taggedstruct {\r\n block \"CHECKSUM\" struct {\r\n enum {\r\n \"XCP_ADD_11\" = 1,\r\n \"XCP_ADD_12\" = 2,\r\n \"XCP_ADD_14\" = 3,\r\n \"XCP_ADD_22\" = 4,\r\n \"XCP_ADD_24\" = 5,\r\n \"XCP_ADD_44\" = 6,\r\n \"XCP_CRC_16\" = 7,\r\n \"XCP_CRC_16_CITT\" = 8,\r\n \"XCP_CRC_32\" = 9,\r\n \"XCP_USER_DEFINED\" = 255\r\n };\r\n taggedstruct {\r\n \"MAX_BLOCK_SIZE\" ulong;\r\n \"EXTERNAL_FUNCTION\" char[256];\r\n };\r\n };\r\n (block \"PAGE\" struct {\r\n uchar;\r\n enum {\r\n \"ECU_ACCESS_NOT_ALLOWED\" = 0,\r\n \"ECU_ACCESS_WITHOUT_XCP_ONLY\" = 1,\r\n \"ECU_ACCESS_WITH_XCP_ONLY\" = 2,\r\n \"ECU_ACCESS_DONT_CARE\" = 3\r\n };\r\n enum {\r\n \"XCP_READ_ACCESS_NOT_ALLOWED\" = 0,\r\n \"XCP_READ_ACCESS_WITHOUT_ECU_ONLY\" = 1,\r\n \"XCP_READ_ACCESS_WITH_ECU_ONLY\" = 2,\r\n \"XCP_READ_ACCESS_DONT_CARE\" = 3\r\n };\r\n enum {\r\n \"XCP_WRITE_ACCESS_NOT_ALLOWED\" = 0,\r\n \"XCP_WRITE_ACCESS_WITHOUT_ECU_ONLY\" = 1,\r\n \"XCP_WRITE_ACCESS_WITH_ECU_ONLY\" = 2,\r\n \"XCP_WRITE_ACCESS_DONT_CARE\" = 3\r\n };\r\n taggedstruct {\r\n \"INIT_SEGMENT\" uchar;\r\n };\r\n })*;\r\n (block \"ADDRESS_MAPPING\" struct {\r\n ulong;\r\n ulong;\r\n ulong;\r\n })*;\r\n \"PGM_VERIFY\" ulong;\r\n };\r\n };\r\n block \"DAQ\" struct {\r\n enum {\r\n \"STATIC\" = 0,\r\n \"DYNAMIC\" = 1\r\n };\r\n uint;\r\n uint;\r\n uchar;\r\n enum {\r\n \"OPTIMISATION_TYPE_DEFAULT\" = 0,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_16\" = 1,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_32\" = 2,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_64\" = 3,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_ALIGNMENT\" = 4,\r\n \"OPTIMISATION_TYPE_MAX_ENTRY_SIZE\" = 5\r\n };\r\n enum {\r\n \"ADDRESS_EXTENSION_FREE\" = 0,\r\n \"ADDRESS_EXTENSION_ODT\" = 1,\r\n \"ADDRESS_EXTENSION_DAQ\" = 3\r\n };\r\n enum {\r\n \"IDENTIFICATION_FIELD_TYPE_ABSOLUTE\" = 0,\r\n \"IDENTIFICATION_FIELD_TYPE_RELATIVE_BYTE\" = 1,\r\n \"IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD\" = 2,\r\n \"IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD_ALIGNED\" = 3\r\n };\r\n enum {\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE\" = 1,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_WORD\" = 2,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_DWORD\" = 4,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_DLONG\" = 8\r\n };\r\n uchar;\r\n enum {\r\n \"NO_OVERLOAD_INDICATION\" = 0,\r\n \"OVERLOAD_INDICATION_PID\" = 1,\r\n \"OVERLOAD_INDICATION_EVENT\" = 2\r\n };\r\n taggedstruct {\r\n \"PRESCALER_SUPPORTED\" ;\r\n \"RESUME_SUPPORTED\" ;\r\n block \"STIM\" struct {\r\n enum {\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_BYTE\" = 1,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_WORD\" = 2,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_DWORD\" = 4,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_DLONG\" = 8\r\n };\r\n uchar;\r\n taggedstruct {\r\n \"BIT_STIM_SUPPORTED\" ;\r\n };\r\n };\r\n block \"TIMESTAMP_SUPPORTED\" struct {\r\n uint;\r\n enum {\r\n \"NO_TIME_STAMP\" = 0,\r\n \"SIZE_BYTE\" = 1,\r\n \"SIZE_WORD\" = 2,\r\n \"SIZE_DWORD\" = 4\r\n };\r\n enum {\r\n \"UNIT_1NS\" = 0,\r\n \"UNIT_10NS\" = 1,\r\n \"UNIT_100NS\" = 2,\r\n \"UNIT_1US\" = 3,\r\n \"UNIT_10US\" = 4,\r\n \"UNIT_100US\" = 5,\r\n \"UNIT_1MS\" = 6,\r\n \"UNIT_10MS\" = 7,\r\n \"UNIT_100MS\" = 8,\r\n \"UNIT_1S\" = 9\r\n };\r\n taggedstruct {\r\n \"TIMESTAMP_FIXED\" ;\r\n };\r\n };\r\n \"PID_OFF_SUPPORTED\" ;\r\n (block \"DAQ_LIST\" struct {\r\n uint;\r\n taggedstruct {\r\n \"DAQ_LIST_TYPE\" enum {\r\n \"DAQ\" = 1,\r\n \"STIM\" = 2,\r\n \"DAQ_STIM\" = 3\r\n };\r\n \"MAX_ODT\" uchar;\r\n \"MAX_ODT_ENTRIES\" uchar;\r\n \"FIRST_PID\" uchar;\r\n \"EVENT_FIXED\" uint;\r\n block \"PREDEFINED\" taggedstruct {\r\n (block \"ODT\" struct {\r\n uchar;\r\n taggedstruct {\r\n (\"ODT_ENTRY\" struct {\r\n uchar;\r\n ulong;\r\n uchar;\r\n uchar;\r\n uchar;\r\n })*;\r\n };\r\n })*;\r\n };\r\n };\r\n })*;\r\n (block \"EVENT\" struct {\r\n char[101];\r\n char[9];\r\n uint;\r\n enum {\r\n \"DAQ\" = 1,\r\n \"STIM\" = 2,\r\n \"DAQ_STIM\" = 3\r\n };\r\n uchar;\r\n uchar;\r\n uchar;\r\n uchar;\r\n })*;\r\n };\r\n };\r\n block \"PAG\" struct {\r\n uchar;\r\n taggedstruct {\r\n \"FREEZE_SUPPORTED\" ;\r\n };\r\n };\r\n block \"PGM\" struct {\r\n enum {\r\n \"PGM_MODE_ABSOLUTE\" = 1,\r\n \"PGM_MODE_FUNCTIONAL\" = 2,\r\n \"PGM_MODE_ABSOLUTE_AND_FUNCTIONAL\" = 3\r\n };\r\n uchar;\r\n uchar;\r\n taggedstruct {\r\n (block \"SECTOR\" struct {\r\n char[101];\r\n uchar;\r\n ulong;\r\n ulong;\r\n uchar;\r\n uchar;\r\n uchar;\r\n })*;\r\n \"COMMUNICATION_MODE_SUPPORTED\" taggedunion {\r\n \"BLOCK\" taggedstruct {\r\n \"SLAVE\" ;\r\n \"MASTER\" struct {\r\n uchar;\r\n uchar;\r\n };\r\n };\r\n \"INTERLEAVED\" uchar;\r\n };\r\n };\r\n };\r\n block \"DAQ_EVENT\" taggedunion {\r\n \"FIXED_EVENT_LIST\" taggedstruct {\r\n (\"EVENT\" uint)*;\r\n };\r\n \"VARIABLE\" taggedstruct {\r\n block \"AVAILABLE_EVENT_LIST\" taggedstruct {\r\n (\"EVENT\" uint)*;\r\n };\r\n block \"DEFAULT_EVENT_LIST\" taggedstruct {\r\n (\"EVENT\" uint)*;\r\n };\r\n };\r\n };\r\n };\r\n };\r\n block \"XCP_ON_SxI\" struct {\r\n uint;\r\n ulong;\r\n taggedstruct {\r\n \"ASYNCH_FULL_DUPLEX_MODE\" struct {\r\n enum {\r\n \"PARITY_NONE\" = 0,\r\n \"PARITY_ODD\" = 1,\r\n \"PARITY_EVEN\" = 2\r\n };\r\n enum {\r\n \"ONE_STOP_BIT\" = 1,\r\n \"TWO_STOP_BITS\" = 2\r\n };\r\n };\r\n \"SYNCH_FULL_DUPLEX_MODE_BYTE\" ;\r\n \"SYNCH_FULL_DUPLEX_MODE_WORD\" ;\r\n \"SYNCH_FULL_DUPLEX_MODE_DWORD\" ;\r\n \"SYNCH_MASTER_SLAVE_MODE_BYTE\" ;\r\n \"SYNCH_MASTER_SLAVE_MODE_WORD\" ;\r\n \"SYNCH_MASTER_SLAVE_MODE_DWORD\" ;\r\n };\r\n enum {\r\n \"HEADER_LEN_BYTE\" = 0,\r\n \"HEADER_LEN_CTR_BYTE\" = 1,\r\n \"HEADER_LEN_WORD\" = 2,\r\n \"HEADER_LEN_CTR_WORD\" = 3\r\n };\r\n enum {\r\n \"NO_CHECKSUM\" = 0,\r\n \"CHECKSUM_BYTE\" = 1,\r\n \"CHECKSUM_WORD\" = 2\r\n };\r\n taggedstruct {\r\n block \"PROTOCOL_LAYER\" struct {\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uchar;\r\n uint;\r\n enum {\r\n \"BYTE_ORDER_MSB_LAST\" = 0,\r\n \"BYTE_ORDER_MSB_FIRST\" = 1\r\n };\r\n enum {\r\n \"ADDRESS_GRANULARITY_BYTE\" = 1,\r\n \"ADDRESS_GRANULARITY_WORD\" = 2,\r\n \"ADDRESS_GRANULARITY_DWORD\" = 4\r\n };\r\n taggedstruct {\r\n (\"OPTIONAL_CMD\" enum {\r\n \"GET_COMM_MODE_INFO\" = 251,\r\n \"GET_ID\" = 250,\r\n \"SET_REQUEST\" = 249,\r\n \"GET_SEED\" = 248,\r\n \"UNLOCK\" = 247,\r\n \"SET_MTA\" = 246,\r\n \"UPLOAD\" = 245,\r\n \"SHORT_UPLOAD\" = 244,\r\n \"BUILD_CHECKSUM\" = 243,\r\n \"TRANSPORT_LAYER_CMD\" = 242,\r\n \"USER_CMD\" = 241,\r\n \"DOWNLOAD\" = 240,\r\n \"DOWNLOAD_NEXT\" = 239,\r\n \"DOWNLOAD_MAX\" = 238,\r\n \"SHORT_DOWNLOAD\" = 237,\r\n \"MODIFY_BITS\" = 236,\r\n \"SET_CAL_PAGE\" = 235,\r\n \"GET_CAL_PAGE\" = 234,\r\n \"GET_PAG_PROCESSOR_INFO\" = 233,\r\n \"GET_SEGMENT_INFO\" = 232,\r\n \"GET_PAGE_INFO\" = 231,\r\n \"SET_SEGMENT_MODE\" = 230,\r\n \"GET_SEGMENT_MODE\" = 229,\r\n \"COPY_CAL_PAGE\" = 228,\r\n \"CLEAR_DAQ_LIST\" = 227,\r\n \"SET_DAQ_PTR\" = 226,\r\n \"WRITE_DAQ\" = 225,\r\n \"SET_DAQ_LIST_MODE\" = 224,\r\n \"GET_DAQ_LIST_MODE\" = 223,\r\n \"START_STOP_DAQ_LIST\" = 222,\r\n \"START_STOP_SYNCH\" = 221,\r\n \"GET_DAQ_CLOCK\" = 220,\r\n \"READ_DAQ\" = 219,\r\n \"GET_DAQ_PROCESSOR_INFO\" = 218,\r\n \"GET_DAQ_RESOLUTION_INFO\" = 217,\r\n \"GET_DAQ_LIST_INFO\" = 216,\r\n \"GET_DAQ_EVENT_INFO\" = 215,\r\n \"FREE_DAQ\" = 214,\r\n \"ALLOC_DAQ\" = 213,\r\n \"ALLOC_ODT\" = 212,\r\n \"ALLOC_ODT_ENTRY\" = 211,\r\n \"PROGRAM_START\" = 210,\r\n \"PROGRAM_CLEAR\" = 209,\r\n \"PROGRAM\" = 208,\r\n \"PROGRAM_RESET\" = 207,\r\n \"GET_PGM_PROCESSOR_INFO\" = 206,\r\n \"GET_SECTOR_INFO\" = 205,\r\n \"PROGRAM_PREPARE\" = 204,\r\n \"PROGRAM_FORMAT\" = 203,\r\n \"PROGRAM_NEXT\" = 202,\r\n \"PROGRAM_MAX\" = 201,\r\n \"PROGRAM_VERIFY\" = 200\r\n })*;\r\n \"COMMUNICATION_MODE_SUPPORTED\" taggedunion {\r\n \"BLOCK\" taggedstruct {\r\n \"SLAVE\" ;\r\n \"MASTER\" struct {\r\n uchar;\r\n uchar;\r\n };\r\n };\r\n \"INTERLEAVED\" uchar;\r\n };\r\n \"SEED_AND_KEY_EXTERNAL_FUNCTION\" char[256];\r\n };\r\n };\r\n block \"SEGMENT\" struct {\r\n uchar;\r\n uchar;\r\n uchar;\r\n uchar;\r\n uchar;\r\n taggedstruct {\r\n block \"CHECKSUM\" struct {\r\n enum {\r\n \"XCP_ADD_11\" = 1,\r\n \"XCP_ADD_12\" = 2,\r\n \"XCP_ADD_14\" = 3,\r\n \"XCP_ADD_22\" = 4,\r\n \"XCP_ADD_24\" = 5,\r\n \"XCP_ADD_44\" = 6,\r\n \"XCP_CRC_16\" = 7,\r\n \"XCP_CRC_16_CITT\" = 8,\r\n \"XCP_CRC_32\" = 9,\r\n \"XCP_USER_DEFINED\" = 255\r\n };\r\n taggedstruct {\r\n \"MAX_BLOCK_SIZE\" ulong;\r\n \"EXTERNAL_FUNCTION\" char[256];\r\n };\r\n };\r\n (block \"PAGE\" struct {\r\n uchar;\r\n enum {\r\n \"ECU_ACCESS_NOT_ALLOWED\" = 0,\r\n \"ECU_ACCESS_WITHOUT_XCP_ONLY\" = 1,\r\n \"ECU_ACCESS_WITH_XCP_ONLY\" = 2,\r\n \"ECU_ACCESS_DONT_CARE\" = 3\r\n };\r\n enum {\r\n \"XCP_READ_ACCESS_NOT_ALLOWED\" = 0,\r\n \"XCP_READ_ACCESS_WITHOUT_ECU_ONLY\" = 1,\r\n \"XCP_READ_ACCESS_WITH_ECU_ONLY\" = 2,\r\n \"XCP_READ_ACCESS_DONT_CARE\" = 3\r\n };\r\n enum {\r\n \"XCP_WRITE_ACCESS_NOT_ALLOWED\" = 0,\r\n \"XCP_WRITE_ACCESS_WITHOUT_ECU_ONLY\" = 1,\r\n \"XCP_WRITE_ACCESS_WITH_ECU_ONLY\" = 2,\r\n \"XCP_WRITE_ACCESS_DONT_CARE\" = 3\r\n };\r\n taggedstruct {\r\n \"INIT_SEGMENT\" uchar;\r\n };\r\n })*;\r\n (block \"ADDRESS_MAPPING\" struct {\r\n ulong;\r\n ulong;\r\n ulong;\r\n })*;\r\n \"PGM_VERIFY\" ulong;\r\n };\r\n };\r\n block \"DAQ\" struct {\r\n enum {\r\n \"STATIC\" = 0,\r\n \"DYNAMIC\" = 1\r\n };\r\n uint;\r\n uint;\r\n uchar;\r\n enum {\r\n \"OPTIMISATION_TYPE_DEFAULT\" = 0,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_16\" = 1,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_32\" = 2,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_64\" = 3,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_ALIGNMENT\" = 4,\r\n \"OPTIMISATION_TYPE_MAX_ENTRY_SIZE\" = 5\r\n };\r\n enum {\r\n \"ADDRESS_EXTENSION_FREE\" = 0,\r\n \"ADDRESS_EXTENSION_ODT\" = 1,\r\n \"ADDRESS_EXTENSION_DAQ\" = 3\r\n };\r\n enum {\r\n \"IDENTIFICATION_FIELD_TYPE_ABSOLUTE\" = 0,\r\n \"IDENTIFICATION_FIELD_TYPE_RELATIVE_BYTE\" = 1,\r\n \"IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD\" = 2,\r\n \"IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD_ALIGNED\" = 3\r\n };\r\n enum {\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE\" = 1,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_WORD\" = 2,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_DWORD\" = 4,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_DLONG\" = 8\r\n };\r\n uchar;\r\n enum {\r\n \"NO_OVERLOAD_INDICATION\" = 0,\r\n \"OVERLOAD_INDICATION_PID\" = 1,\r\n \"OVERLOAD_INDICATION_EVENT\" = 2\r\n };\r\n taggedstruct {\r\n \"PRESCALER_SUPPORTED\" ;\r\n \"RESUME_SUPPORTED\" ;\r\n block \"STIM\" struct {\r\n enum {\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_BYTE\" = 1,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_WORD\" = 2,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_DWORD\" = 4,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_DLONG\" = 8\r\n };\r\n uchar;\r\n taggedstruct {\r\n \"BIT_STIM_SUPPORTED\" ;\r\n };\r\n };\r\n block \"TIMESTAMP_SUPPORTED\" struct {\r\n uint;\r\n enum {\r\n \"NO_TIME_STAMP\" = 0,\r\n \"SIZE_BYTE\" = 1,\r\n \"SIZE_WORD\" = 2,\r\n \"SIZE_DWORD\" = 4\r\n };\r\n enum {\r\n \"UNIT_1NS\" = 0,\r\n \"UNIT_10NS\" = 1,\r\n \"UNIT_100NS\" = 2,\r\n \"UNIT_1US\" = 3,\r\n \"UNIT_10US\" = 4,\r\n \"UNIT_100US\" = 5,\r\n \"UNIT_1MS\" = 6,\r\n \"UNIT_10MS\" = 7,\r\n \"UNIT_100MS\" = 8,\r\n \"UNIT_1S\" = 9\r\n };\r\n taggedstruct {\r\n \"TIMESTAMP_FIXED\" ;\r\n };\r\n };\r\n \"PID_OFF_SUPPORTED\" ;\r\n (block \"DAQ_LIST\" struct {\r\n uint;\r\n taggedstruct {\r\n \"DAQ_LIST_TYPE\" enum {\r\n \"DAQ\" = 1,\r\n \"STIM\" = 2,\r\n \"DAQ_STIM\" = 3\r\n };\r\n \"MAX_ODT\" uchar;\r\n \"MAX_ODT_ENTRIES\" uchar;\r\n \"FIRST_PID\" uchar;\r\n \"EVENT_FIXED\" uint;\r\n block \"PREDEFINED\" taggedstruct {\r\n (block \"ODT\" struct {\r\n uchar;\r\n taggedstruct {\r\n (\"ODT_ENTRY\" struct {\r\n uchar;\r\n ulong;\r\n uchar;\r\n uchar;\r\n uchar;\r\n })*;\r\n };\r\n })*;\r\n };\r\n };\r\n })*;\r\n (block \"EVENT\" struct {\r\n char[101];\r\n char[9];\r\n uint;\r\n enum {\r\n \"DAQ\" = 1,\r\n \"STIM\" = 2,\r\n \"DAQ_STIM\" = 3\r\n };\r\n uchar;\r\n uchar;\r\n uchar;\r\n uchar;\r\n })*;\r\n };\r\n };\r\n block \"PAG\" struct {\r\n uchar;\r\n taggedstruct {\r\n \"FREEZE_SUPPORTED\" ;\r\n };\r\n };\r\n block \"PGM\" struct {\r\n enum {\r\n \"PGM_MODE_ABSOLUTE\" = 1,\r\n \"PGM_MODE_FUNCTIONAL\" = 2,\r\n \"PGM_MODE_ABSOLUTE_AND_FUNCTIONAL\" = 3\r\n };\r\n uchar;\r\n uchar;\r\n taggedstruct {\r\n (block \"SECTOR\" struct {\r\n char[101];\r\n uchar;\r\n ulong;\r\n ulong;\r\n uchar;\r\n uchar;\r\n uchar;\r\n })*;\r\n \"COMMUNICATION_MODE_SUPPORTED\" taggedunion {\r\n \"BLOCK\" taggedstruct {\r\n \"SLAVE\" ;\r\n \"MASTER\" struct {\r\n uchar;\r\n uchar;\r\n };\r\n };\r\n \"INTERLEAVED\" uchar;\r\n };\r\n };\r\n };\r\n block \"DAQ_EVENT\" taggedunion {\r\n \"FIXED_EVENT_LIST\" taggedstruct {\r\n (\"EVENT\" uint)*;\r\n };\r\n \"VARIABLE\" taggedstruct {\r\n block \"AVAILABLE_EVENT_LIST\" taggedstruct {\r\n (\"EVENT\" uint)*;\r\n };\r\n block \"DEFAULT_EVENT_LIST\" taggedstruct {\r\n (\"EVENT\" uint)*;\r\n };\r\n };\r\n };\r\n };\r\n };\r\n block \"XCP_ON_TCP_IP\" struct {\r\n uint;\r\n uint;\r\n taggedunion {\r\n \"HOST_NAME\" char[256];\r\n \"ADDRESS\" char[15];\r\n };\r\n taggedstruct {7,\r\n block \"PROTOCOL_LAYER\" struct {\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uchar;\r\n uint;\r\n enum {\r\n \"BYTE_ORDER_MSB_LAST\" = 0,\r\n \"BYTE_ORDER_MSB_FIRST\" = 1\r\n };\r\n enum {\r\n \"ADDRESS_GRANULARITY_BYTE\" = 1,\r\n \"ADDRESS_GRANULARITY_WORD\" = 2,\r\n \"ADDRESS_GRANULARITY_DWORD\" = 4\r\n };\r\n taggedstruct {\r\n (\"OPTIONAL_CMD\" enum {\r\n \"GET_COMM_MODE_INFO\" = 251,\r\n \"GET_ID\" = 250,\r\n \"SET_REQUEST\" = 249,\r\n \"GET_SEED\" = 248,\r\n \"UNLOCK\" = 247,\r\n \"SET_MTA\" = 246,\r\n \"UPLOAD\" = 245,\r\n \"SHORT_UPLOAD\" = 244,\r\n \"BUILD_CHECKSUM\" = 243,\r\n \"TRANSPORT_LAYER_CMD\" = 242,\r\n \"USER_CMD\" = 241,\r\n \"DOWNLOAD\" = 240,\r\n \"DOWNLOAD_NEXT\" = 239,\r\n \"DOWNLOAD_MAX\" = 238,\r\n \"SHORT_DOWNLOAD\" = 237,\r\n \"MODIFY_BITS\" = 236,\r\n \"SET_CAL_PAGE\" = 235,\r\n \"GET_CAL_PAGE\" = 234,\r\n \"GET_PAG_PROCESSOR_INFO\" = 233,\r\n \"GET_SEGMENT_INFO\" = 232,\r\n \"GET_PAGE_INFO\" = 231,\r\n \"SET_SEGMENT_MODE\" = 230,\r\n \"GET_SEGMENT_MODE\" = 229,\r\n \"COPY_CAL_PAGE\" = 228,\r\n \"CLEAR_DAQ_LIST\" = 227,\r\n \"SET_DAQ_PTR\" = 226,\r\n \"WRITE_DAQ\" = 225,\r\n \"SET_DAQ_LIST_MODE\" = 224,\r\n \"GET_DAQ_LIST_MODE\" = 223,\r\n \"START_STOP_DAQ_LIST\" = 222,\r\n \"START_STOP_SYNCH\" = 221,\r\n \"GET_DAQ_CLOCK\" = 220,\r\n \"READ_DAQ\" = 219,\r\n \"GET_DAQ_PROCESSOR_INFO\" = 218,\r\n \"GET_DAQ_RESOLUTION_INFO\" = 217,\r\n \"GET_DAQ_LIST_INFO\" = 216,\r\n \"GET_DAQ_EVENT_INFO\" = 215,\r\n \"FREE_DAQ\" = 214,\r\n \"ALLOC_DAQ\" = 213,\r\n \"ALLOC_ODT\" = 212,\r\n \"ALLOC_ODT_ENTRY\" = 211,\r\n \"PROGRAM_START\" = 210,\r\n \"PROGRAM_CLEAR\" = 209,\r\n \"PROGRAM\" = 208,\r\n \"PROGRAM_RESET\" = 207,\r\n \"GET_PGM_PROCESSOR_INFO\" = 206,\r\n \"GET_SECTOR_INFO\" = 205,\r\n \"PROGRAM_PREPARE\" = 204,\r\n \"PROGRAM_FORMAT\" = 203,\r\n \"PROGRAM_NEXT\" = 202,\r\n \"PROGRAM_MAX\" = 201,\r\n \"PROGRAM_VERIFY\" = 200\r\n })*;\r\n \"COMMUNICATION_MODE_SUPPORTED\" taggedunion {\r\n \"BLOCK\" taggedstruct {\r\n \"SLAVE\" ;\r\n \"MASTER\" struct {\r\n uchar;\r\n uchar;\r\n };\r\n };\r\n \"INTERLEAVED\" uchar;\r\n };\r\n \"SEED_AND_KEY_EXTERNAL_FUNCTION\" char[256];\r\n };\r\n };\r\n block \"SEGMENT\" struct {\r\n uchar;\r\n uchar;\r\n uchar;\r\n uchar;\r\n uchar;\r\n taggedstruct {\r\n block \"CHECKSUM\" struct {\r\n enum {\r\n \"XCP_ADD_11\" = 1,\r\n \"XCP_ADD_12\" = 2,\r\n \"XCP_ADD_14\" = 3,\r\n \"XCP_ADD_22\" = 4,\r\n \"XCP_ADD_24\" = 5,\r\n \"XCP_ADD_44\" = 6,\r\n \"XCP_CRC_16\" = 7,\r\n \"XCP_CRC_16_CITT\" = 8,\r\n \"XCP_CRC_32\" = 9,\r\n \"XCP_USER_DEFINED\" = 255\r\n };\r\n taggedstruct {\r\n \"MAX_BLOCK_SIZE\" ulong;\r\n \"EXTERNAL_FUNCTION\" char[256];\r\n };\r\n };\r\n (block \"PAGE\" struct {\r\n uchar;\r\n enum {\r\n \"ECU_ACCESS_NOT_ALLOWED\" = 0,\r\n \"ECU_ACCESS_WITHOUT_XCP_ONLY\" = 1,\r\n \"ECU_ACCESS_WITH_XCP_ONLY\" = 2,\r\n \"ECU_ACCESS_DONT_CARE\" = 3\r\n };\r\n enum {\r\n \"XCP_READ_ACCESS_NOT_ALLOWED\" = 0,\r\n \"XCP_READ_ACCESS_WITHOUT_ECU_ONLY\" = 1,\r\n \"XCP_READ_ACCESS_WITH_ECU_ONLY\" = 2,\r\n \"XCP_READ_ACCESS_DONT_CARE\" = 3\r\n };\r\n enum {\r\n \"XCP_WRITE_ACCESS_NOT_ALLOWED\" = 0,\r\n \"XCP_WRITE_ACCESS_WITHOUT_ECU_ONLY\" = 1,\r\n \"XCP_WRITE_ACCESS_WITH_ECU_ONLY\" = 2,\r\n \"XCP_WRITE_ACCESS_DONT_CARE\" = 3\r\n };\r\n taggedstruct {\r\n \"INIT_SEGMENT\" uchar;\r\n };\r\n })*;\r\n (block \"ADDRESS_MAPPING\" struct {\r\n ulong;\r\n ulong;\r\n ulong;\r\n })*;\r\n \"PGM_VERIFY\" ulong;\r\n };\r\n };\r\n block \"DAQ\" struct {\r\n enum {\r\n \"STATIC\" = 0,\r\n \"DYNAMIC\" = 1\r\n };\r\n uint;\r\n uint;\r\n uchar;\r\n enum {\r\n \"OPTIMISATION_TYPE_DEFAULT\" = 0,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_16\" = 1,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_32\" = 2,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_64\" = 3,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_ALIGNMENT\" = 4,\r\n \"OPTIMISATION_TYPE_MAX_ENTRY_SIZE\" = 5\r\n };\r\n enum {\r\n \"ADDRESS_EXTENSION_FREE\" = 0,\r\n \"ADDRESS_EXTENSION_ODT\" = 1,\r\n \"ADDRESS_EXTENSION_DAQ\" = 3\r\n };\r\n enum {\r\n \"IDENTIFICATION_FIELD_TYPE_ABSOLUTE\" = 0,\r\n \"IDENTIFICATION_FIELD_TYPE_RELATIVE_BYTE\" = 1,\r\n \"IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD\" = 2,\r\n \"IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD_ALIGNED\" = 3\r\n };\r\n enum {\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE\" = 1,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_WORD\" = 2,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_DWORD\" = 4,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_DLONG\" = 8\r\n };\r\n uchar;\r\n enum {\r\n \"NO_OVERLOAD_INDICATION\" = 0,\r\n \"OVERLOAD_INDICATION_PID\" = 1,\r\n \"OVERLOAD_INDICATION_EVENT\" = 2\r\n };\r\n taggedstruct {\r\n \"PRESCALER_SUPPORTED\" ;\r\n \"RESUME_SUPPORTED\" ;\r\n block \"STIM\" struct {\r\n enum {\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_BYTE\" = 1,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_WORD\" = 2,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_DWORD\" = 4,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_DLONG\" = 8\r\n };\r\n uchar;\r\n taggedstruct {\r\n \"BIT_STIM_SUPPORTED\" ;\r\n };\r\n };\r\n block \"TIMESTAMP_SUPPORTED\" struct {\r\n uint;\r\n enum {\r\n \"NO_TIME_STAMP\" = 0,\r\n \"SIZE_BYTE\" = 1,\r\n \"SIZE_WORD\" = 2,\r\n \"SIZE_DWORD\" = 4\r\n };\r\n enum {\r\n \"UNIT_1NS\" = 0,\r\n \"UNIT_10NS\" = 1,\r\n \"UNIT_100NS\" = 2,\r\n \"UNIT_1US\" = 3,\r\n \"UNIT_10US\" = 4,\r\n \"UNIT_100US\" = 5,\r\n \"UNIT_1MS\" = 6,\r\n \"UNIT_10MS\" = 7,\r\n \"UNIT_100MS\" = 8,\r\n \"UNIT_1S\" = 9\r\n };\r\n taggedstruct {\r\n \"TIMESTAMP_FIXED\" ;\r\n };\r\n };\r\n \"PID_OFF_SUPPORTED\" ;\r\n (block \"DAQ_LIST\" struct {\r\n uint;\r\n taggedstruct {\r\n \"DAQ_LIST_TYPE\" enum {\r\n \"DAQ\" = 1,\r\n \"STIM\" = 2,\r\n \"DAQ_STIM\" = 3\r\n };\r\n \"MAX_ODT\" uchar;\r\n \"MAX_ODT_ENTRIES\" uchar;\r\n \"FIRST_PID\" uchar;\r\n \"EVENT_FIXED\" uint;\r\n block \"PREDEFINED\" taggedstruct {\r\n (block \"ODT\" struct {\r\n uchar;\r\n taggedstruct {\r\n (\"ODT_ENTRY\" struct {\r\n uchar;\r\n ulong;\r\n uchar;\r\n uchar;\r\n uchar;\r\n })*;\r\n };\r\n })*;\r\n };\r\n };\r\n })*;\r\n (block \"EVENT\" struct {\r\n char[101];\r\n char[9];\r\n uint;\r\n enum {\r\n \"DAQ\" = 1,\r\n \"STIM\" = 2,\r\n \"DAQ_STIM\" = 3\r\n };\r\n uchar;\r\n uchar;\r\n uchar;\r\n uchar;\r\n })*;\r\n };\r\n };\r\n block \"PAG\" struct {\r\n uchar;\r\n taggedstruct {\r\n \"FREEZE_SUPPORTED\" ;\r\n };\r\n };\r\n block \"PGM\" struct {\r\n enum {\r\n \"PGM_MODE_ABSOLUTE\" = 1,\r\n \"PGM_MODE_FUNCTIONAL\" = 2,\r\n \"PGM_MODE_ABSOLUTE_AND_FUNCTIONAL\" = 3\r\n };\r\n uchar;\r\n uchar;\r\n taggedstruct {\r\n (block \"SECTOR\" struct {\r\n char[101];\r\n uchar;\r\n ulong;\r\n ulong;\r\n uchar;\r\n uchar;\r\n uchar;\r\n })*;\r\n \"COMMUNICATION_MODE_SUPPORTED\" taggedunion {\r\n \"BLOCK\" taggedstruct {\r\n \"SLAVE\" ;\r\n \"MASTER\" struct {\r\n uchar;\r\n uchar;\r\n };\r\n };\r\n \"INTERLEAVED\" uchar;\r\n };\r\n };\r\n };\r\n block \"DAQ_EVENT\" taggedunion {\r\n \"FIXED_EVENT_LIST\" taggedstruct {\r\n (\"EVENT\" uint)*;\r\n };\r\n \"VARIABLE\" taggedstruct {\r\n block \"AVAILABLE_EVENT_LIST\" taggedstruct {\r\n (\"EVENT\" uint)*;\r\n };\r\n block \"DEFAULT_EVENT_LIST\" taggedstruct {\r\n (\"EVENT\" uint)*;\r\n };\r\n };\r\n };\r\n };\r\n };\r\n block \"XCP_ON_UDP_IP\" struct {\r\n uint;\r\n uint;\r\n taggedunion {\r\n \"HOST_NAME\" char[256];\r\n \"ADDRESS\" char[15];\r\n };\r\n taggedstruct {\r\n block \"PROTOCOL_LAYER\" struct {\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uchar;\r\n uint;\r\n enum {\r\n \"BYTE_ORDER_MSB_LAST\" = 0,\r\n \"BYTE_ORDER_MSB_FIRST\" = 1\r\n };\r\n enum {\r\n \"ADDRESS_GRANULARITY_BYTE\" = 1,\r\n \"ADDRESS_GRANULARITY_WORD\" = 2,\r\n \"ADDRESS_GRANULARITY_DWORD\" = 4\r\n };\r\n taggedstruct {\r\n (\"OPTIONAL_CMD\" enum {\r\n \"GET_COMM_MODE_INFO\" = 251,\r\n \"GET_ID\" = 250,\r\n \"SET_REQUEST\" = 249,\r\n \"GET_SEED\" = 248,\r\n \"UNLOCK\" = 247,\r\n \"SET_MTA\" = 246,\r\n \"UPLOAD\" = 245,\r\n \"SHORT_UPLOAD\" = 244,\r\n \"BUILD_CHECKSUM\" = 243,\r\n \"TRANSPORT_LAYER_CMD\" = 242,\r\n \"USER_CMD\" = 241,\r\n \"DOWNLOAD\" = 240,\r\n \"DOWNLOAD_NEXT\" = 239,\r\n \"DOWNLOAD_MAX\" = 238,\r\n \"SHORT_DOWNLOAD\" = 237,\r\n \"MODIFY_BITS\" = 236,\r\n \"SET_CAL_PAGE\" = 235,\r\n \"GET_CAL_PAGE\" = 234,\r\n \"GET_PAG_PROCESSOR_INFO\" = 233,\r\n \"GET_SEGMENT_INFO\" = 232,\r\n \"GET_PAGE_INFO\" = 231,\r\n \"SET_SEGMENT_MODE\" = 230,\r\n \"GET_SEGMENT_MODE\" = 229,\r\n \"COPY_CAL_PAGE\" = 228,\r\n \"CLEAR_DAQ_LIST\" = 227,\r\n \"SET_DAQ_PTR\" = 226,\r\n \"WRITE_DAQ\" = 225,\r\n \"SET_DAQ_LIST_MODE\" = 224,\r\n \"GET_DAQ_LIST_MODE\" = 223,\r\n \"START_STOP_DAQ_LIST\" = 222,\r\n \"START_STOP_SYNCH\" = 221,\r\n \"GET_DAQ_CLOCK\" = 220,\r\n \"READ_DAQ\" = 219,\r\n \"GET_DAQ_PROCESSOR_INFO\" = 218,\r\n \"GET_DAQ_RESOLUTION_INFO\" = 217,\r\n \"GET_DAQ_LIST_INFO\" = 216,\r\n \"GET_DAQ_EVENT_INFO\" = 215,\r\n \"FREE_DAQ\" = 214,\r\n \"ALLOC_DAQ\" = 213,\r\n \"ALLOC_ODT\" = 212,\r\n \"ALLOC_ODT_ENTRY\" = 211,\r\n \"PROGRAM_START\" = 210,\r\n \"PROGRAM_CLEAR\" = 209,\r\n \"PROGRAM\" = 208,\r\n \"PROGRAM_RESET\" = 207,\r\n \"GET_PGM_PROCESSOR_INFO\" = 206,\r\n \"GET_SECTOR_INFO\" = 205,\r\n \"PROGRAM_PREPARE\" = 204,\r\n \"PROGRAM_FORMAT\" = 203,\r\n \"PROGRAM_NEXT\" = 202,\r\n \"PROGRAM_MAX\" = 201,\r\n \"PROGRAM_VERIFY\" = 200\r\n })*;\r\n \"COMMUNICATION_MODE_SUPPORTED\" taggedunion {\r\n \"BLOCK\" taggedstruct {\r\n \"SLAVE\" ;\r\n \"MASTER\" struct {\r\n uchar;\r\n uchar;\r\n };\r\n };\r\n \"INTERLEAVED\" uchar;\r\n };\r\n \"SEED_AND_KEY_EXTERNAL_FUNCTION\" char[256];\r\n };\r\n };\r\n block \"SEGMENT\" struct {\r\n uchar;\r\n uchar;\r\n uchar;\r\n uchar;\r\n uchar;\r\n taggedstruct {\r\n block \"CHECKSUM\" struct {\r\n enum {\r\n \"XCP_ADD_11\" = 1,\r\n \"XCP_ADD_12\" = 2,\r\n \"XCP_ADD_14\" = 3,\r\n \"XCP_ADD_22\" = 4,\r\n \"XCP_ADD_24\" = 5,\r\n \"XCP_ADD_44\" = 6,\r\n \"XCP_CRC_16\" = 7,\r\n \"XCP_CRC_16_CITT\" = 8,\r\n \"XCP_CRC_32\" = 9,\r\n \"XCP_USER_DEFINED\" = 255\r\n };\r\n taggedstruct {\r\n \"MAX_BLOCK_SIZE\" ulong;\r\n \"EXTERNAL_FUNCTION\" char[256];\r\n };\r\n };\r\n (block \"PAGE\" struct {\r\n uchar;\r\n enum {\r\n \"ECU_ACCESS_NOT_ALLOWED\" = 0,\r\n \"ECU_ACCESS_WITHOUT_XCP_ONLY\" = 1,\r\n \"ECU_ACCESS_WITH_XCP_ONLY\" = 2,\r\n \"ECU_ACCESS_DONT_CARE\" = 3\r\n };\r\n enum {\r\n \"XCP_READ_ACCESS_NOT_ALLOWED\" = 0,\r\n \"XCP_READ_ACCESS_WITHOUT_ECU_ONLY\" = 1,\r\n \"XCP_READ_ACCESS_WITH_ECU_ONLY\" = 2,\r\n \"XCP_READ_ACCESS_DONT_CARE\" = 3\r\n };\r\n enum {\r\n \"XCP_WRITE_ACCESS_NOT_ALLOWED\" = 0,\r\n \"XCP_WRITE_ACCESS_WITHOUT_ECU_ONLY\" = 1,\r\n \"XCP_WRITE_ACCESS_WITH_ECU_ONLY\" = 2,\r\n \"XCP_WRITE_ACCESS_DONT_CARE\" = 3\r\n };\r\n taggedstruct {\r\n \"INIT_SEGMENT\" uchar;\r\n };\r\n })*;\r\n (block \"ADDRESS_MAPPING\" struct {\r\n ulong;\r\n ulong;\r\n ulong;\r\n })*;\r\n \"PGM_VERIFY\" ulong;\r\n };\r\n };\r\n block \"DAQ\" struct {\r\n enum {\r\n \"STATIC\" = 0,\r\n \"DYNAMIC\" = 1\r\n };\r\n uint;\r\n uint;\r\n uchar;\r\n enum {\r\n \"OPTIMISATION_TYPE_DEFAULT\" = 0,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_16\" = 1,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_32\" = 2,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_64\" = 3,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_ALIGNMENT\" = 4,\r\n \"OPTIMISATION_TYPE_MAX_ENTRY_SIZE\" = 5\r\n };\r\n enum {\r\n \"ADDRESS_EXTENSION_FREE\" = 0,\r\n \"ADDRESS_EXTENSION_ODT\" = 1,\r\n \"ADDRESS_EXTENSION_DAQ\" = 3\r\n };\r\n enum {\r\n \"IDENTIFICATION_FIELD_TYPE_ABSOLUTE\" = 0,\r\n \"IDENTIFICATION_FIELD_TYPE_RELATIVE_BYTE\" = 1,\r\n \"IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD\" = 2,\r\n \"IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD_ALIGNED\" = 3\r\n };\r\n enum {\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE\" = 1,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_WORD\" = 2,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_DWORD\" = 4,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_DLONG\" = 8\r\n };\r\n uchar;\r\n enum {\r\n \"NO_OVERLOAD_INDICATION\" = 0,\r\n \"OVERLOAD_INDICATION_PID\" = 1,\r\n \"OVERLOAD_INDICATION_EVENT\" = 2\r\n };\r\n taggedstruct {\r\n \"PRESCALER_SUPPORTED\" ;\r\n \"RESUME_SUPPORTED\" ;\r\n block \"STIM\" struct {\r\n enum {\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_BYTE\" = 1,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_WORD\" = 2,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_DWORD\" = 4,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_DLONG\" = 8\r\n };\r\n uchar;\r\n taggedstruct {\r\n \"BIT_STIM_SUPPORTED\" ;\r\n };\r\n };\r\n block \"TIMESTAMP_SUPPORTED\" struct {\r\n uint;\r\n enum {\r\n \"NO_TIME_STAMP\" = 0,\r\n \"SIZE_BYTE\" = 1,\r\n \"SIZE_WORD\" = 2,\r\n \"SIZE_DWORD\" = 4\r\n };\r\n enum {\r\n \"UNIT_1NS\" = 0,\r\n \"UNIT_10NS\" = 1,\r\n \"UNIT_100NS\" = 2,\r\n \"UNIT_1US\" = 3,\r\n \"UNIT_10US\" = 4,\r\n \"UNIT_100US\" = 5,\r\n \"UNIT_1MS\" = 6,\r\n \"UNIT_10MS\" = 7,\r\n \"UNIT_100MS\" = 8,\r\n \"UNIT_1S\" = 9\r\n };\r\n taggedstruct {\r\n \"TIMESTAMP_FIXED\" ;\r\n };\r\n };\r\n \"PID_OFF_SUPPORTED\" ;\r\n (block \"DAQ_LIST\" struct {\r\n uint;\r\n taggedstruct {\r\n \"DAQ_LIST_TYPE\" enum {\r\n \"DAQ\" = 1,\r\n \"STIM\" = 2,\r\n \"DAQ_STIM\" = 3\r\n };\r\n \"MAX_ODT\" uchar;\r\n \"MAX_ODT_ENTRIES\" uchar;\r\n \"FIRST_PID\" uchar;\r\n \"EVENT_FIXED\" uint;\r\n block \"PREDEFINED\" taggedstruct {\r\n (block \"ODT\" struct {\r\n uchar;\r\n taggedstruct {\r\n (\"ODT_ENTRY\" struct {\r\n uchar;\r\n ulong;\r\n uchar;\r\n uchar;\r\n uchar;\r\n })*;\r\n };\r\n })*;\r\n };\r\n };\r\n })*;\r\n (block \"EVENT\" struct {\r\n char[101];\r\n char[9];\r\n uint;\r\n enum {\r\n \"DAQ\" = 1,\r\n \"STIM\" = 2,\r\n \"DAQ_STIM\" = 3\r\n };\r\n uchar;\r\n uchar;\r\n uchar;\r\n uchar;\r\n })*;\r\n };\r\n };\r\n block \"PAG\" struct {\r\n uchar;\r\n taggedstruct {\r\n \"FREEZE_SUPPORTED\" ;\r\n };\r\n };\r\n block \"PGM\" struct {\r\n enum {\r\n \"PGM_MODE_ABSOLUTE\" = 1,\r\n \"PGM_MODE_FUNCTIONAL\" = 2,\r\n \"PGM_MODE_ABSOLUTE_AND_FUNCTIONAL\" = 3\r\n };\r\n uchar;\r\n uchar;\r\n taggedstruct {\r\n (block \"SECTOR\" struct {\r\n char[101];\r\n uchar;\r\n ulong;\r\n ulong;\r\n uchar;\r\n uchar;\r\n uchar;\r\n })*;\r\n \"COMMUNICATION_MODE_SUPPORTED\" taggedunion {\r\n \"BLOCK\" taggedstruct {\r\n \"SLAVE\" ;\r\n \"MASTER\" struct {\r\n uchar;\r\n uchar;\r\n };\r\n };\r\n \"INTERLEAVED\" uchar;\r\n };\r\n };\r\n };\r\n block \"DAQ_EVENT\" taggedunion {\r\n \"FIXED_EVENT_LIST\" taggedstruct {\r\n (\"EVENT\" uint)*;\r\n };\r\n \"VARIABLE\" taggedstruct {\r\n block \"AVAILABLE_EVENT_LIST\" taggedstruct {\r\n (\"EVENT\" uint)*;\r\n };\r\n block \"DEFAULT_EVENT_LIST\" taggedstruct {\r\n (\"EVENT\" uint)*;\r\n };\r\n };\r\n };\r\n };\r\n };\r\n block \"XCP_ON_USB\" struct {\r\n uint;\r\n uint;\r\n uint;\r\n uchar;\r\n enum {\r\n \"HEADER_LEN_BYTE\" = 0,\r\n \"HEADER_LEN_CTR_BYTE\" = 1,\r\n \"HEADER_LEN_FILL_BYTE\" = 2,\r\n \"HEADER_LEN_WORD\" = 3,\r\n \"HEADER_LEN_CTR_WORD\" = 4,\r\n \"HEADER_LEN_FILL_WORD\" = 5\r\n };\r\n taggedunion {\r\n block \"OUT_EP_CMD_STIM\" struct {\r\n uchar;\r\n enum {\r\n \"BULK_TRANSFER\" = 2,\r\n \"INTERRUPT_TRANSFER\" = 3\r\n };\r\n uint;\r\n uchar;\r\n enum {\r\n \"MESSAGE_PACKING_SINGLE\" = 0,\r\n \"MESSAGE_PACKING_MULTIPLE\" = 1,\r\n \"MESSAGE_PACKING_STREAMING\" = 2\r\n };\r\n enum {\r\n \"ALIGNMENT_8_BIT\" = 0,\r\n \"ALIGNMENT_16_BIT\" = 1,\r\n \"ALIGNMENT_32_BIT\" = 2,\r\n \"ALIGNMENT_64_BIT\" = 3\r\n };\r\n taggedstruct {\r\n \"RECOMMENDED_HOST_BUFSIZE\" uint;\r\n };\r\n };\r\n };\r\n taggedunion {\r\n block \"IN_EP_RESERR_DAQ_EVSERV\" struct {\r\n uchar;\r\n enum {\r\n \"BULK_TRANSFER\" = 2,\r\n \"INTERRUPT_TRANSFER\" = 3\r\n };\r\n uint;\r\n uchar;\r\n enum {\r\n \"MESSAGE_PACKING_SINGLE\" = 0,\r\n \"MESSAGE_PACKING_MULTIPLE\" = 1,\r\n \"MESSAGE_PACKING_STREAMING\" = 2\r\n };\r\n enum {\r\n \"ALIGNMENT_8_BIT\" = 0,\r\n \"ALIGNMENT_16_BIT\" = 1,\r\n \"ALIGNMENT_32_BIT\" = 2,\r\n \"ALIGNMENT_64_BIT\" = 3\r\n };\r\n taggedstruct {\r\n \"RECOMMENDED_HOST_BUFSIZE\" uint;\r\n };\r\n };\r\n };\r\n taggedstruct {\r\n \"ALTERNATE_SETTING_NO\" uchar;\r\n \"INTERFACE_STRING_DESCRIPTOR\" char[101];\r\n (block \"OUT_EP_ONLY_STIM\" struct {\r\n uchar;\r\n enum {\r\n \"BULK_TRANSFER\" = 2,\r\n \"INTERRUPT_TRANSFER\" = 3\r\n };\r\n uint;\r\n uchar;\r\n enum {\r\n \"MESSAGE_PACKING_SINGLE\" = 0,\r\n \"MESSAGE_PACKING_MULTIPLE\" = 1,\r\n \"MESSAGE_PACKING_STREAMING\" = 2\r\n };\r\n enum {\r\n \"ALIGNMENT_8_BIT\" = 0,\r\n \"ALIGNMENT_16_BIT\" = 1,\r\n \"ALIGNMENT_32_BIT\" = 2,\r\n \"ALIGNMENT_64_BIT\" = 3\r\n };\r\n taggedstruct {\r\n \"RECOMMENDED_HOST_BUFSIZE\" uint;\r\n };\r\n })*;\r\n (block \"IN_EP_ONLY_DAQ\" struct {\r\n uchar;\r\n enum {\r\n \"BULK_TRANSFER\" = 2,\r\n \"INTERRUPT_TRANSFER\" = 3\r\n };\r\n uint;\r\n uchar;\r\n enum {\r\n \"MESSAGE_PACKING_SINGLE\" = 0,\r\n \"MESSAGE_PACKING_MULTIPLE\" = 1,\r\n \"MESSAGE_PACKING_STREAMING\" = 2\r\n };\r\n enum {\r\n \"ALIGNMENT_8_BIT\" = 0,\r\n \"ALIGNMENT_16_BIT\" = 1,\r\n \"ALIGNMENT_32_BIT\" = 2,\r\n \"ALIGNMENT_64_BIT\" = 3\r\n };\r\n taggedstruct {\r\n \"RECOMMENDED_HOST_BUFSIZE\" uint;\r\n };\r\n })*;\r\n block \"IN_EP_ONLY_EVSERV\" struct {\r\n uchar;\r\n enum {\r\n \"BULK_TRANSFER\" = 2,\r\n \"INTERRUPT_TRANSFER\" = 3\r\n };\r\n uint;\r\n uchar;\r\n enum {\r\n \"MESSAGE_PACKING_SINGLE\" = 0,\r\n \"MESSAGE_PACKING_MULTIPLE\" = 1,\r\n \"MESSAGE_PACKING_STREAMING\" = 2\r\n };\r\n enum {\r\n \"ALIGNMENT_8_BIT\" = 0,\r\n \"ALIGNMENT_16_BIT\" = 1,\r\n \"ALIGNMENT_32_BIT\" = 2,\r\n \"ALIGNMENT_64_BIT\" = 3\r\n };\r\n taggedstruct {\r\n \"RECOMMENDED_HOST_BUFSIZE\" uint;\r\n };\r\n };\r\n (block \"DAQ_LIST_USB_ENDPOINT\" struct {\r\n uint;\r\n taggedstruct {\r\n \"FIXED_IN\" uchar;\r\n \"FIXED_OUT\" uchar;\r\n };\r\n })*;\r\n block \"PROTOCOL_LAYER\" struct {\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uint;\r\n uchar;\r\n uint;\r\n enum {\r\n \"BYTE_ORDER_MSB_LAST\" = 0,\r\n \"BYTE_ORDER_MSB_FIRST\" = 1\r\n };\r\n enum {\r\n \"ADDRESS_GRANULARITY_BYTE\" = 1,\r\n \"ADDRESS_GRANULARITY_WORD\" = 2,\r\n \"ADDRESS_GRANULARITY_DWORD\" = 4\r\n };\r\n taggedstruct {\r\n (\"OPTIONAL_CMD\" enum {\r\n \"GET_COMM_MODE_INFO\" = 251,\r\n \"GET_ID\" = 250,\r\n \"SET_REQUEST\" = 249,\r\n \"GET_SEED\" = 248,\r\n \"UNLOCK\" = 247,\r\n \"SET_MTA\" = 246,\r\n \"UPLOAD\" = 245,\r\n \"SHORT_UPLOAD\" = 244,\r\n \"BUILD_CHECKSUM\" = 243,\r\n \"TRANSPORT_LAYER_CMD\" = 242,\r\n \"USER_CMD\" = 241,\r\n \"DOWNLOAD\" = 240,\r\n \"DOWNLOAD_NEXT\" = 239,\r\n \"DOWNLOAD_MAX\" = 238,\r\n \"SHORT_DOWNLOAD\" = 237,\r\n \"MODIFY_BITS\" = 236,\r\n \"SET_CAL_PAGE\" = 235,\r\n \"GET_CAL_PAGE\" = 234,\r\n \"GET_PAG_PROCESSOR_INFO\" = 233,\r\n \"GET_SEGMENT_INFO\" = 232,\r\n \"GET_PAGE_INFO\" = 231,\r\n \"SET_SEGMENT_MODE\" = 230,\r\n \"GET_SEGMENT_MODE\" = 229,\r\n \"COPY_CAL_PAGE\" = 228,\r\n \"CLEAR_DAQ_LIST\" = 227,\r\n \"SET_DAQ_PTR\" = 226,\r\n \"WRITE_DAQ\" = 225,\r\n \"SET_DAQ_LIST_MODE\" = 224,\r\n \"GET_DAQ_LIST_MODE\" = 223,\r\n \"START_STOP_DAQ_LIST\" = 222,\r\n \"START_STOP_SYNCH\" = 221,\r\n \"GET_DAQ_CLOCK\" = 220,\r\n \"READ_DAQ\" = 219,\r\n \"GET_DAQ_PROCESSOR_INFO\" = 218,\r\n \"GET_DAQ_RESOLUTION_INFO\" = 217,\r\n \"GET_DAQ_LIST_INFO\" = 216,\r\n \"GET_DAQ_EVENT_INFO\" = 215,\r\n \"FREE_DAQ\" = 214,\r\n \"ALLOC_DAQ\" = 213,\r\n \"ALLOC_ODT\" = 212,\r\n \"ALLOC_ODT_ENTRY\" = 211,\r\n \"PROGRAM_START\" = 210,\r\n \"PROGRAM_CLEAR\" = 209,\r\n \"PROGRAM\" = 208,\r\n \"PROGRAM_RESET\" = 207,\r\n \"GET_PGM_PROCESSOR_INFO\" = 206,\r\n \"GET_SECTOR_INFO\" = 205,\r\n \"PROGRAM_PREPARE\" = 204,\r\n \"PROGRAM_FORMAT\" = 203,\r\n \"PROGRAM_NEXT\" = 202,\r\n \"PROGRAM_MAX\" = 201,\r\n \"PROGRAM_VERIFY\" = 200\r\n })*;\r\n \"COMMUNICATION_MODE_SUPPORTED\" taggedunion {\r\n \"BLOCK\" taggedstruct {\r\n \"SLAVE\" ;\r\n \"MASTER\" struct {\r\n uchar;\r\n uchar;\r\n };\r\n };\r\n \"INTERLEAVED\" uchar;\r\n };\r\n \"SEED_AND_KEY_EXTERNAL_FUNCTION\" char[256];\r\n };\r\n };\r\n block \"SEGMENT\" struct {\r\n uchar;\r\n uchar;\r\n uchar;\r\n uchar;\r\n uchar;\r\n taggedstruct {\r\n block \"CHECKSUM\" struct {\r\n enum {\r\n \"XCP_ADD_11\" = 1,\r\n \"XCP_ADD_12\" = 2,\r\n \"XCP_ADD_14\" = 3,\r\n \"XCP_ADD_22\" = 4,\r\n \"XCP_ADD_24\" = 5,\r\n \"XCP_ADD_44\" = 6,\r\n \"XCP_CRC_16\" = 7,\r\n \"XCP_CRC_16_CITT\" = 8,\r\n \"XCP_CRC_32\" = 9,\r\n \"XCP_USER_DEFINED\" = 255\r\n };\r\n taggedstruct {\r\n \"MAX_BLOCK_SIZE\" ulong;\r\n \"EXTERNAL_FUNCTION\" char[256];\r\n };\r\n };\r\n (block \"PAGE\" struct {\r\n uchar;\r\n enum {\r\n \"ECU_ACCESS_NOT_ALLOWED\" = 0,\r\n \"ECU_ACCESS_WITHOUT_XCP_ONLY\" = 1,\r\n \"ECU_ACCESS_WITH_XCP_ONLY\" = 2,\r\n \"ECU_ACCESS_DONT_CARE\" = 3\r\n };\r\n enum {\r\n \"XCP_READ_ACCESS_NOT_ALLOWED\" = 0,\r\n \"XCP_READ_ACCESS_WITHOUT_ECU_ONLY\" = 1,\r\n \"XCP_READ_ACCESS_WITH_ECU_ONLY\" = 2,\r\n \"XCP_READ_ACCESS_DONT_CARE\" = 3\r\n };\r\n enum {\r\n \"XCP_WRITE_ACCESS_NOT_ALLOWED\" = 0,\r\n \"XCP_WRITE_ACCESS_WITHOUT_ECU_ONLY\" = 1,\r\n \"XCP_WRITE_ACCESS_WITH_ECU_ONLY\" = 2,\r\n \"XCP_WRITE_ACCESS_DONT_CARE\" = 3\r\n };\r\n taggedstruct {\r\n \"INIT_SEGMENT\" uchar;\r\n };\r\n })*;\r\n (block \"ADDRESS_MAPPING\" struct {\r\n ulong;\r\n ulong;\r\n ulong;\r\n })*;\r\n \"PGM_VERIFY\" ulong;\r\n };\r\n };\r\n block \"DAQ\" struct {\r\n enum {\r\n \"STATIC\" = 0,\r\n \"DYNAMIC\" = 1\r\n };\r\n uint;\r\n uint;\r\n uchar;\r\n enum {\r\n \"OPTIMISATION_TYPE_DEFAULT\" = 0,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_16\" = 1,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_32\" = 2,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_64\" = 3,\r\n \"OPTIMISATION_TYPE_ODT_TYPE_ALIGNMENT\" = 4,\r\n \"OPTIMISATION_TYPE_MAX_ENTRY_SIZE\" = 5\r\n };\r\n enum {\r\n \"ADDRESS_EXTENSION_FREE\" = 0,\r\n \"ADDRESS_EXTENSION_ODT\" = 1,\r\n \"ADDRESS_EXTENSION_DAQ\" = 3\r\n };\r\n enum {\r\n \"IDENTIFICATION_FIELD_TYPE_ABSOLUTE\" = 0,\r\n \"IDENTIFICATION_FIELD_TYPE_RELATIVE_BYTE\" = 1,\r\n \"IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD\" = 2,\r\n \"IDENTIFICATION_FIELD_TYPE_RELATIVE_WORD_ALIGNED\" = 3\r\n };\r\n enum {\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE\" = 1,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_WORD\" = 2,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_DWORD\" = 4,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_DAQ_DLONG\" = 8\r\n };\r\n uchar;\r\n enum {\r\n \"NO_OVERLOAD_INDICATION\" = 0,\r\n \"OVERLOAD_INDICATION_PID\" = 1,\r\n \"OVERLOAD_INDICATION_EVENT\" = 2\r\n };\r\n taggedstruct {\r\n \"PRESCALER_SUPPORTED\" ;\r\n \"RESUME_SUPPORTED\" ;\r\n block \"STIM\" struct {\r\n enum {\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_BYTE\" = 1,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_WORD\" = 2,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_DWORD\" = 4,\r\n \"GRANULARITY_ODT_ENTRY_SIZE_STIM_DLONG\" = 8\r\n };\r\n uchar;\r\n taggedstruct {\r\n \"BIT_STIM_SUPPORTED\" ;\r\n };\r\n };\r\n block \"TIMESTAMP_SUPPORTED\" struct {\r\n uint;\r\n enum {\r\n \"NO_TIME_STAMP\" = 0,\r\n \"SIZE_BYTE\" = 1,\r\n \"SIZE_WORD\" = 2,\r\n \"SIZE_DWORD\" = 4\r\n };\r\n enum {\r\n \"UNIT_1NS\" = 0,\r\n \"UNIT_10NS\" = 1,\r\n \"UNIT_100NS\" = 2,\r\n \"UNIT_1US\" = 3,\r\n \"UNIT_10US\" = 4,\r\n \"UNIT_100US\" = 5,\r\n \"UNIT_1MS\" = 6,\r\n \"UNIT_10MS\" = 7,\r\n \"UNIT_100MS\" = 8,\r\n \"UNIT_1S\" = 9\r\n };\r\n taggedstruct {\r\n \"TIMESTAMP_FIXED\" ;\r\n };\r\n };\r\n \"PID_OFF_SUPPORTED\" ;\r\n (block \"DAQ_LIST\" struct {\r\n uint;\r\n taggedstruct {\r\n \"DAQ_LIST_TYPE\" enum {\r\n \"DAQ\" = 1,\r\n \"STIM\" = 2,\r\n \"DAQ_STIM\" = 3\r\n };\r\n \"MAX_ODT\" uchar;\r\n \"MAX_ODT_ENTRIES\" uchar;\r\n \"FIRST_PID\" uchar;\r\n \"EVENT_FIXED\" uint;\r\n block \"PREDEFINED\" taggedstruct {\r\n (block \"ODT\" struct {\r\n uchar;\r\n taggedstruct {\r\n (\"ODT_ENTRY\" struct {\r\n uchar;\r\n ulong;\r\n uchar;\r\n uchar;\r\n uchar;\r\n })*;\r\n };\r\n })*;\r\n };\r\n };\r\n })*;\r\n (block \"EVENT\" struct {\r\n char[101];\r\n char[9];\r\n uint;\r\n enum {\r\n \"DAQ\" = 1,\r\n \"STIM\" = 2,\r\n \"DAQ_STIM\" = 3\r\n };\r\n uchar;\r\n uchar;\r\n uchar;\r\n uchar;\r\n })*;\r\n };\r\n };\r\n block \"PAG\" struct {\r\n uchar;\r\n taggedstruct {\r\n \"FREEZE_SUPPORTED\" ;\r\n };\r\n };\r\n block \"PGM\" struct {\r\n enum {\r\n \"PGM_MODE_ABSOLUTE\" = 1,\r\n \"PGM_MODE_FUNCTIONAL\" = 2,\r\n \"PGM_MODE_ABSOLUTE_AND_FUNCTIONAL\" = 3\r\n };\r\n uchar;\r\n uchar;\r\n taggedstruct {\r\n (block \"SECTOR\" struct {\r\n char[101];\r\n uchar;\r\n ulong;\r\n ulong;\r\n uchar;\r\n uchar;\r\n uchar;\r\n })*;\r\n \"COMMUNICATION_MODE_SUPPORTED\" taggedunion {\r\n \"BLOCK\" taggedstruct {\r\n \"SLAVE\" ;\r\n \"MASTER\" struct {\r\n uchar;\r\n uchar;\r\n };\r\n };\r\n \"INTERLEAVED\" uchar;\r\n };\r\n };\r\n };\r\n block \"DAQ_EVENT\" taggedunion {\r\n \"FIXED_EVENT_LIST\" taggedstruct {\r\n (\"EVENT\" uint)*;\r\n };\r\n \"VARIABLE\" taggedstruct {\r\n block \"AVAILABLE_EVENT_LIST\" taggedstruct {\r\n (\"EVENT\" uint)*;\r\n };\r\n block \"DEFAULT_EVENT_LIST\" taggedstruct {\r\n (\"EVENT\" uint)*;\r\n ''''' };\r\n };\r\n };\r\n };\r\n };\r\n };\r\n };\r\n\r\n/****************************************************************************/\r\n/* */\r\n/* ASAP2 Meta description for ETK */\r\n/* - only applicable with ASAP2 V1.3 - */\r\n/* */\r\n/* Used data types: */\r\n/* */\r\n/* A2ML ASAP2 Windows Explanation */\r\n/* --------------------------------------------------------- */\r\n/* uchar UBYTE BYTE unsigned 8 Bit */\r\n/* char SBYTE char signed 8 Bit */\r\n/* uint UWORD WORD unsigned integer 16 Bit */\r\n/* int SWORD int signed integer 16 Bit */\r\n/* ulong ULONG DWORD unsigned integer 32 Bit */\r\n/* long SLONG LONG signed integer 32 Bit */\r\n/* float FLOAT32_IEEE float 32 Bit */\r\n/* */\r\n/* Changes: */\r\n/* 26.04.99 Hn closing bracket at 'ADDRESS_MAPPING' added, */\r\n/* Keyword 'RESERVED' changed to 'RESERVED_DISTAB_MEMORY' */\r\n/* */\r\n/* 06.07.99 Hn (V1.0.1) closing bracket at 'ADDRESS_MAPPING' changed to'}'*/\r\n/* */\r\n/* 03.07.00 Hn (V1.1.0) New element 'ETK_PRESENCE_CHECK' added to TP-Blob */\r\n/* */\r\n/* 03.07.01 Hn (V1.2.0) New element 'COLDSTART_HANDSHAKE' added to TP-Blob*/\r\n/* Parameter 'PBA' deleted */\r\n/* New parameter 'InterFaceSpeed' added */\r\n/* */\r\n/* New QP-Blob for 32 trigger measurement/bypass */\r\n/* */\r\n/* 11.01.02 Lug (V1.3.0) RESERVED_DISTAB_MEMORY' section expanded */\r\n/* New TP_BLOB Version 0x01000101 */\r\n/* */\r\n/* 12.07.02 Wnl (V1.4.0) New QP-BLOB Version 0x00000101 */\r\n/* Parameter 'Max. Read Variables' added */\r\n/* Parameter 'Max. Write Variables' added */\r\n/* */\r\n/* 02.10.02 Wnl (V1.4.0) KP_Blob extension */\r\n/* - enum for address location */\r\n/* - default RASTER */\r\n/* */\r\n/* 10.09.03 Wnl (V1.5.0) New TP_BLOB Version 0x01000102: */\r\n/* New Parameter for CODE_CHK */\r\n/* PERMANENT_RESET / NO_RESET */\r\n/* New TP_BLOB entry OVERLAY_CONFIG_TABLE */\r\n/* - CODE_CHK maxByte 4 -> 32 */\r\n/* */\r\n/* 12.04.05 Wnl (V1.6.0) New TP_BLOB Version 0x01000103: */\r\n/* New TP_BLOB entry CAL_WAKEUP */\r\n/* New TP_BLOB entry PAGE_SWITCH_METHOD */\r\n/* */\r\n/****************************************************************************/\r\n\r\n/****************************************************************************/\r\n/* */\r\n/* For a correct working of the ETK, the following MEMORY_SEGMENTs have to */\r\n/* be specified in the section 'MOD_PAR' of the ASAP2 file: */\r\n/* */\r\n/* /begin MEMORY_SEGMENT */\r\n/* Dataxxxx \"\" DATA FLASH
*/\r\n/* /end MEMORY_SEGMENT */\r\n/* */\r\n/* /begin MEMORY_SEGMENT */\r\n/* Codexxxx \"\" CODE FLASH
*/\r\n/* /end MEMORY_SEGMENT */\r\n/* */\r\n/* /begin MEMORY_SEGMENT */\r\n/* ExRAM \"ExRAM for DISTAB\" VARIABLES RAM EXTERN
*/\r\n/* /end MEMORY_SEGMENT */\r\n/* */\r\n/* Remark: All data included in a hex file, but not specified by a memory */\r\n/* segment will be ignored inside the application program and lost */\r\n/* when generating hex file export */\r\n/* */\r\n/****************************************************************************/\r\n \r\n \"ETK\" taggedstruct\r\n {\r\n /* Description of an address mapping between addresses in the view of the */\r\n /* EPROM of the ECU (and ASAP2) and the addresses in the scope of the ETK */\r\n /* IF_DATA section used with MEMORY_SEGMENT (can be missing if no */\r\n /* differences between the 2 views) */\r\n \r\n (\"ADDRESS_MAPPING\" struct \r\n {\r\n ulong; /* Start address of MEMORY_SEGMENT */\r\n ulong; /* mapped start address for ETK */\r\n ulong; /* Length of mapped address range */\r\n }\r\n )*; /* multiple use of ADDRESS_MAPPING is possible */\r\n /* (even each MEMORY_SEGMENT) */\r\n \r\n \r\n (block \"SOURCE\" struct\r\n {\r\n /* Description of the acquisition (trigger) levels supplied by the ECU, */\r\n /* 3 is max. no. for ETK */\r\n \r\n struct\r\n {\r\n char [100]; /* Source name */\r\n int; /* CSE unit according to Asap1b (minimal period */\r\n /* duration) of the acqisition raster */\r\n long; /* Minimal period number measured in the CSE unit */\r\n };\r\n taggedstruct\r\n {\r\n \"QP_BLOB\" struct\r\n {\r\n /* Description of additional information needed by the ETK device */\r\n /* driver to collect the measurement data from a certain */\r\n /* acquisition raster */\r\n uint; /* version number, high byte must be >=1 to be */\r\n /* able to distinguish old versions without */\r\n /* version numbers current value: 0x101 (V1.1) */\r\n uint; /* hardware trigger number (1..32) */\r\n enum { /* trigger type */\r\n \"DIRECT\"=1,\r\n \"INDIRECT\"=2\r\n };\r\n uint; /* raster priority (1..32), higher number = higher */\r\n /* priority */\r\n enum { /* assigned application */\r\n \"MEASUREMENT\"=0,\r\n \"BYPASS\"=1\r\n }; \r\n ulong; /* address of trigger flag (only valid if trigger */\r\n /* type INDIRECT) */\r\n uint; /* maximum length of display table in bytes */\r\n ulong; /* start address of display table */\r\n ulong; /* output address of display table */\r\n uint; /* max. size of bypass receive table */\r\n ulong; /* start address of address table for bypass */\r\n /* output - Xpass compatible Bypass only !! */\r\n ulong; /* output address of the bypass table */\r\n ulong; /* worst case minimum raster time in us */\r\n /* (1000 = 1ms raster) */\r\n uint; /* maximum read variables */\r\n uint; /* maximum write variables */\r\n };\r\n } \r\n })*; /* SOURCE can be used several times */\r\n \r\n block \"TP_BLOB\" struct\r\n {\r\n /* Description of additional information needed to configure the ETK */\r\n /* device driver for measurement and calibration */\r\n \r\n ulong; /* Version number of the TP-Blob; uppermost byte */\r\n /* is always != 0, so that informations cannot be */\r\n /* mixed up with older blob versions (trigger */\r\n /* address was previously at the first position */\r\n /* and had max. 24 Bit) */\r\n /* current value: 0x01000103 */\r\n enum { /* fix comm speed on ETK line to 8/100 MBit/s */\r\n \"INTERFACE_SPEED_8MBIT\" = 1,\r\n \"INTERFACE_SPEED_100MBIT\" = 2\r\n };\r\n ulong; /* ETKP: RESET_CFG parameter only for PPC family */\r\n \r\n taggedstruct {\r\n \r\n block \"DISTAB_CFG\" struct\r\n {\r\n uint; /* Type of display table (13 recommended, DSPTAB */\r\n /* 12, 11, 20 only for old projects) */\r\n uint; /* Data type display table: 1=byte 2=word DAT_MOD */\r\n /* additional code table for distab 13 depending */\r\n /* on bus width / bus access */\r\n /* (see distab 13 spec. for more information) */\r\n uint; /* Byte order 1 = high first, 2 = low first RFG */\r\n ulong; /* Trigger segment address TRGSEGAD */\r\n ulong; /* Trigger configuration (special code) TRG_CFG */\r\n taggedstruct {\r\n \"TRG_MOD\" ( uchar)*; /* Dyn. length for TRG_MOD */\r\n /* (special code) */\r\n };\r\n };\r\n \r\n \"CODE_CHK\" struct \r\n {\r\n /* A check, whether program and data are matching can be performed, */\r\n /* if the ECU copies a certain 'program identifier' (e.g. the code */\r\n /* checksum) into the external RAM and the same identifier is stored */\r\n /* in the data range. The ETK driver can read and compare both */\r\n /* identifier and issue an error message, if the both identifiers do */\r\n /* not match. */\r\n \r\n ulong; /* ETK: address of program identifier in the data */\r\n /* range PRG_DATA */\r\n uint; /* ETK: length of program identifier in the data */\r\n /* range (max. 32 bytes) */\r\n ulong; /* ETK: address of program identifier in the */\r\n /* external RAM PRG_ERAM */\r\n uint; /* ETK: length of program identifier in the */\r\n /* external RAM (max. 32 bytes) */\r\n /* If all parameters contain 0x0 values, no check is performed */\r\n \r\n taggedstruct {\r\n \"ERROR_BEHAVIOR\" enum { /* reaction of MC tool to ECU when */\r\n \"PERMANENT_RESET\" = 0, /* code check fails */\r\n \"NO_RESET\" = 1\r\n };\r\n };\r\n };\r\n \r\n \"ETK_CFG\" ( uchar)*; /* ETK_CFG parameters (dyn. length) */\r\n /* Description of ETK configuration parameters, as configured with */\r\n /* the ETK configuration tool */\r\n \r\n ( \"EMU_DATA\" struct \r\n {\r\n /* Additional description of data ranges overwriting the */\r\n /* MEMORY_SEGMENT description */\r\n \r\n ulong; /* Start address */\r\n ulong; /* Length in bytes */\r\n enum { /* Memory attribute */\r\n \"INTERN\" = 0,\r\n \"EXTERN\" = 1\r\n };\r\n /* Description of offsets to additional data */\r\n /* ranges where the contents of this data range */\r\n /* are mirrored */\r\n ulong; /* Mirror offset 1 */\r\n ulong; /* Mirror offset 2 */\r\n ulong; /* Mirror offset 3 */\r\n ulong; /* Mirror offset 4 */\r\n ulong; /* Mirror offset 5 */\r\n /* Mirror offsets of -1 indicate that there is no */\r\n /* mirror offset */\r\n })*;\r\n \r\n ( \"EMU_CODE\" struct\r\n {\r\n /* Additional description of code ranges overwriting the */\r\n /* MEMORY_SEGMENT description */\r\n \r\n ulong; /* Start address */\r\n ulong; /* Length in bytes */\r\n enum { /* Memory attribute */\r\n \"INTERN\" = 0,\r\n \"EXTERN\" = 1\r\n };\r\n ulong; /* Mirror offset 1 */\r\n ulong; /* Mirror offset 2 */\r\n ulong; /* Mirror offset 3 */\r\n ulong; /* Mirror offset 4 */\r\n ulong; /* Mirror offset 5 */\r\n })*;\r\n \r\n ( \"EMU_RAM\" struct \r\n {\r\n /* Additional description of external RAM ranges overwriting the */\r\n /* MEMORY_SEGMENT description */\r\n \r\n ulong; /* Start address */\r\n ulong; /* Length in bytes */\r\n enum { /* Memory attribute */\r\n \"INTERN\" = 0,\r\n \"EXTERN\" = 1\r\n };\r\n ulong; /* Mirror offset 1 */\r\n ulong; /* Mirror offset 2 */\r\n ulong; /* Mirror offset 3 */\r\n ulong; /* Mirror offset 4 */\r\n ulong; /* Mirror offset 5 */\r\n })*;\r\n \r\n ( \"RESERVED_DISTAB_MEMORY\" struct \r\n {\r\n /* Description of 'reserved ranges' (especially in the data or code */\r\n /* ranges; e.g. location of the display tables) that are excluded */\r\n /* from checksum verification. If the 3 display tables stand close */\r\n /* together, the size of the reserved memory is calculated by the */\r\n /* following formula: */\r\n /* size = (highest start address of the 3 distabs) */\r\n /* + ((size of this distab) + 2) * 4 */\r\n /* - (lowest start address of the 3 distabs) */\r\n \r\n ulong; /* Start address */\r\n ulong; /* Length in bytes */\r\n enum { /* Location */\r\n \"INTERN\" = 0,\r\n \"EXTERN\" = 1\r\n };\r\n enum { /* application */\r\n \"MEASUREMENT\" = 0,\r\n \"BYPASS\" = 1\r\n };\r\n enum { /* usage */\r\n \"CHECKSUM_EXCLUDE_ONLY\" = 0,\r\n \"ECU_DISTAB_INPUT\" = 1,\r\n \"ECU_DISTAB_OUTPUT\" = 2,\r\n \"ECU_DISTAB_INOUT\" = 3\r\n };\r\n ulong; /* Mirror offset 1 */\r\n ulong; /* Mirror offset 2 */\r\n ulong; /* Mirror offset 3 */\r\n ulong; /* Mirror offset 4 */\r\n ulong; /* Mirror offset 5 */\r\n })*;\r\n \r\n \"ETK_MAILBOX\" struct \r\n {\r\n /* Description of the ETK mailbox that is used for communication */\r\n /* between the ECU and the application program (e.g. for programming */\r\n /* data into the ECU flash) */\r\n \r\n ulong; /* Test pattern for the ECU to detect a valid */\r\n /* mailbox */\r\n enum { /* Memory page (code, data, external RAM) used for */\r\n /* communication from application program to ECU */\r\n \"CODE\" = 1,\r\n \"DATA\" = 2,\r\n \"EXRAM\" = 3\r\n };\r\n ulong; /* Base address of buffer for communication appl. */\r\n /* program -> ECU */\r\n ulong; /* Length of buffer for comunication appl. */\r\n /* program -> ECU */\r\n enum { /* Memory page (code, data, external RAM) used for */\r\n /* communication from ECU to application program */\r\n \"CODE\" = 1,\r\n \"DATA\" = 2,\r\n \"EXRAM\" = 3\r\n };\r\n ulong; /* Base address of buffer for communication */\r\n /* ECU -> appl. program */\r\n ulong; /* Length of buffer for comunication */\r\n /* ECU -> appl. program */\r\n };\r\n \r\n block \"ETK_PRESENCE_CHECK\" struct \r\n {\r\n ulong; /* address of ETK recognition pattern */\r\n taggedstruct {\r\n \"ETK_PATTERN\" (uchar)*; /* Dyn. length for pattern */\r\n };\r\n };\r\n \r\n block \"COLDSTART_HANDSHAKE\" struct \r\n {\r\n ulong; /* address of ETKS cold start pattern */\r\n taggedstruct {\r\n \"WAIT\" ( uchar)*; /* Dyn. length for 'wait' pattern */\r\n };\r\n taggedstruct {\r\n \"READY\" ( uchar)*; /* Dyn. length for 'ready' pattern */\r\n };\r\n };\r\n \r\n \"CAL_WAKEUP\" taggedstruct {\r\n \"CAL_WAKEUP_PIN\" ulong; /* 1 = wake up enabled, 0 = disabled */\r\n \"CAL_TOOL_PRESENT\" struct {\r\n ulong; /* address for the pattern */\r\n ulong; /* pattern */\r\n ulong; /* ECU timeout for shut down in s */\r\n };\r\n };\r\n };\r\n taggedunion {\r\n \"OVERLAY_CONFIG_TABLE\" struct {\r\n ulong; /* OCT_Type Type of table */\r\n ulong; /* OCT_StartAddress Start address of table */\r\n ulong; /* OCT_Length max Length of table in byte */\r\n taggedstruct {\r\n \"AUTOSTART_BEHAVIOR\" enum {\r\n \"LAST_ACTIVE_PAGE\" = 0, /* Table to be filled with info */\r\n /* for the current active page */\r\n \"ALWAYS_WP\" = 1, /* Table to be filled always */\r\n /* with info for working page */\r\n \"ALWAYS_RP\" = 2 /* Table to be filled always */\r\n /* with info for reference page */\r\n };\r\n };\r\n };\r\n \"PAGE_SWITCH_METHOD\" struct {\r\n ulong; /* version */\r\n taggedstruct {\r\n \"MAILBOX\" struct {\r\n ulong; /* MBX_Version */\r\n /* Version of mailbox */\r\n ulong; /* MBX_PageSetupTime */ \r\n /* max time the ECU needs to set up page in ms */\r\n ulong; /* MBX_StartAddress */\r\n /* Start address of table */\r\n };\r\n \r\n \"AUTOSTART_BEHAVIOR\" enum {\r\n \"LAST_ACTIVE_PAGE\" = 0, /* Table to be filled with info */ \r\n /* for the current active page */\r\n \"ALWAYS_WP\" = 1, /* Request field to be filled */\r\n /* always with info for working page */\r\n \"ALWAYS_RP\" = 2 /* Request field to be filled */\r\n /* always with info for reference page */\r\n };\r\n \r\n \"OCT_WORKINGPAGE\" struct {\r\n ulong; /* OCT_Type Type of table */\r\n ulong; /* OCT_StartAddress Start address of table */\r\n ulong; /* OCT_Length max Length of table in byte */\r\n };\r\n \r\n \"OCT_REFERENCEPAGE\" struct {\r\n ulong; /* OCT_Type Type of table */\r\n ulong; /* OCT_StartAddress Start address of table */\r\n ulong; /* OCT_Length max Length of table in byte */\r\n };\r\n };\r\n };\r\n };\r\n };\r\n \r\n \"DP_BLOB\" struct\r\n {\r\n /* for CHARACTERISTIC and AXIS_PTS and MEMORY_LAYOUT */\r\n \r\n ulong; /* start address for example of a map */\r\n ulong; /* length of the map */\r\n };\r\n \r\n \"KP_BLOB\" struct\r\n {\r\n ulong; /* Start address of measurement variable */\r\n enum { /* Address location */\r\n \"INTERN\" = 0,\r\n \"EXTERN\" = 1\r\n };\r\n uint; /* Size of measurement in bytes */\r\n taggedstruct {\r\n (\"RASTER\" uchar )*;/* Array of event channel initialization values */\r\n };\r\n };\r\n };\r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* CANAPE_EXT AML */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n \"CANAPE_EXT\" struct {\r\n int; /* version number */\r\n taggedstruct {\r\n \"LINK_MAP\" struct {\r\n char[256]; /* segment name */\r\n long; /* base address of the segment */\r\n uint; /* address extension of the segment */\r\n uint; /* flag: address is relative to DS */\r\n long; /* offset of the segment address */\r\n uint; /* datatypValid */\r\n uint; /* enum datatyp */\r\n uint; /* bit offset of the segment */\r\n };\r\n \"DISPLAY\" struct {\r\n long; /* display color */\r\n double; /* minimal display value (phys)*/\r\n double; /* maximal display value (phys)*/\r\n };\r\n \"VIRTUAL_CONVERSION\" struct {\r\n char[256]; /* name of the conversion formula */\r\n };\r\n };\r\n };\r\n\r\n\r\n };\r\n /end A2ML\r\n\r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* Common parameters valid for the whole ASAP2 file */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n\r\n /begin MOD_COMMON \"\"\r\n DEPOSIT ABSOLUTE\r\n BYTE_ORDER MSB_LAST\r\n DATA_SIZE 16\r\n ALIGNMENT_BYTE 1\r\n ALIGNMENT_WORD 2\r\n ALIGNMENT_LONG 4\r\n ALIGNMENT_INT64 4\r\n ALIGNMENT_FLOAT16_IEEE 2\r\n ALIGNMENT_FLOAT32_IEEE 4\r\n ALIGNMENT_FLOAT64_IEEE 4\r\n /end MOD_COMMON\r\n\r\n \r\n/* ============================================================================================== */\r\n/* */\r\n/* XCP Interface description */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n\r\n /begin IF_DATA XCP \r\n /begin PROTOCOL_LAYER \r\n 0x100 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x8 0x8 BYTE_ORDER_MSB_LAST ADDRESS_GRANULARITY_BYTE \r\n OPTIONAL_CMD SET_REQUEST \r\n OPTIONAL_CMD GET_SEED \r\n OPTIONAL_CMD UNLOCK \r\n OPTIONAL_CMD SET_MTA \r\n OPTIONAL_CMD SHORT_DOWNLOAD \r\n OPTIONAL_CMD PROGRAM_START \r\n OPTIONAL_CMD PROGRAM_CLEAR \r\n OPTIONAL_CMD PROGRAM \r\n OPTIONAL_CMD PROGRAM_RESET \r\n OPTIONAL_CMD GET_PGM_PROCESSOR_INFO \r\n OPTIONAL_CMD GET_SECTOR_INFO \r\n OPTIONAL_CMD PROGRAM_PREPARE \r\n OPTIONAL_CMD PROGRAM_NEXT \r\n OPTIONAL_CMD PROGRAM_MAX \r\n OPTIONAL_CMD PROGRAM_VERIFY \r\n OPTIONAL_CMD TRANSPORT_LAYER_CMD \r\n OPTIONAL_CMD GET_ID \r\n OPTIONAL_CMD UPLOAD \r\n OPTIONAL_CMD SHORT_UPLOAD \r\n OPTIONAL_CMD BUILD_CHECKSUM \r\n OPTIONAL_CMD DOWNLOAD_NEXT \r\n OPTIONAL_CMD SET_CAL_PAGE \r\n OPTIONAL_CMD GET_CAL_PAGE \r\n OPTIONAL_CMD CLEAR_DAQ_LIST \r\n OPTIONAL_CMD SET_DAQ_PTR \r\n OPTIONAL_CMD WRITE_DAQ \r\n OPTIONAL_CMD SET_DAQ_LIST_MODE \r\n OPTIONAL_CMD GET_DAQ_LIST_MODE \r\n OPTIONAL_CMD START_STOP_DAQ_LIST \r\n OPTIONAL_CMD FREE_DAQ \r\n OPTIONAL_CMD ALLOC_DAQ \r\n OPTIONAL_CMD ALLOC_ODT \r\n OPTIONAL_CMD ALLOC_ODT_ENTRY \r\n OPTIONAL_CMD START_STOP_SYNCH \r\n OPTIONAL_CMD DOWNLOAD \r\n OPTIONAL_CMD MODIFY_BITS \r\n OPTIONAL_CMD GET_PAG_PROCESSOR_INFO \r\n OPTIONAL_CMD GET_SEGMENT_INFO \r\n OPTIONAL_CMD GET_PAGE_INFO \r\n OPTIONAL_CMD SET_SEGMENT_MODE \r\n OPTIONAL_CMD GET_SEGMENT_MODE \r\n OPTIONAL_CMD COPY_CAL_PAGE \r\n OPTIONAL_CMD GET_DAQ_CLOCK \r\n OPTIONAL_CMD READ_DAQ \r\n OPTIONAL_CMD GET_DAQ_LIST_MODE \r\n OPTIONAL_CMD DOWNLOAD_MAX \r\n COMMUNICATION_MODE_SUPPORTED \r\n BLOCK \r\n SLAVE \r\n MASTER 0x14 0x5 \r\n /end PROTOCOL_LAYER\r\n /begin DAQ \r\n STATIC 0x3 0x2 0x0 OPTIMISATION_TYPE_DEFAULT ADDRESS_EXTENSION_DAQ IDENTIFICATION_FIELD_TYPE_ABSOLUTE GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE 0x4 OVERLOAD_INDICATION_EVENT \r\n PRESCALER_SUPPORTED \r\n /begin TIMESTAMP_SUPPORTED \r\n 0x1 SIZE_DWORD UNIT_1US \r\n /end TIMESTAMP_SUPPORTED\r\n /begin DAQ_LIST \r\n 0x0 \r\n DAQ_LIST_TYPE DAQ \r\n MAX_ODT 0x5 \r\n MAX_ODT_ENTRIES 0x7 \r\n /end DAQ_LIST\r\n /begin DAQ_LIST \r\n 0x1 \r\n DAQ_LIST_TYPE DAQ \r\n MAX_ODT 0x4 \r\n MAX_ODT_ENTRIES 0x7 \r\n /end DAQ_LIST\r\n /begin DAQ_LIST \r\n 0x2 \r\n DAQ_LIST_TYPE DAQ \r\n MAX_ODT 0x3 \r\n MAX_ODT_ENTRIES 0x7 \r\n /end DAQ_LIST\r\n /begin EVENT \r\n \"5ms\" \"5ms\" 0x0 DAQ 0xFF 0x5 0x6 0xFF \r\n /end EVENT\r\n /begin EVENT \r\n \"extEvent\" \"extEvent\" 0x1 DAQ 0xFF 0x1 0x9 0xFF \r\n /end EVENT\r\n /end DAQ\r\n /begin XCP_ON_CAN \r\n 0x100 \r\n CAN_ID_BROADCAST 0x52 \r\n CAN_ID_MASTER 0x51 \r\n CAN_ID_SLAVE 0x50 \r\n BAUDRATE 0x7A120 \r\n /end XCP_ON_CAN\r\n /end IF_DATA\r\n \r\n \r\n\r\n\r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* ETK Interface description */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n\r\n /begin IF_DATA ETK \r\n /begin SOURCE \"Engine_1\" \r\n 103 \r\n 1 \r\n QP_BLOB 0x101 1 DIRECT 23 MEASUREMENT 2952251460 1020 2952232964 2952243268 0 0 0 15000 256 0\r\n /end SOURCE \r\n /begin SOURCE \"Engine_2\" \r\n 103 \r\n 1 \r\n QP_BLOB 0x101 2 DIRECT 21 MEASUREMENT 2952251460 1020 2952233996 2952244288 0 0 0 15000 256 0\r\n /end SOURCE \r\n /begin SOURCE \"Engine_3\" \r\n 103 \r\n 1 \r\n QP_BLOB 0x101 3 DIRECT 19 MEASUREMENT 2952251460 1020 2952235028 2952245308 0 0 0 15000 256 0\r\n /end SOURCE \r\n /begin SOURCE \"10ms_sync\" \r\n 4 \r\n 1 \r\n QP_BLOB 0x101 7 DIRECT 11 MEASUREMENT 2952251460 1020 2952239156 2952249388 0 0 0 10000 512 0\r\n /end SOURCE \r\n /begin SOURCE \"100ms_sync\" \r\n 5 \r\n 1 \r\n QP_BLOB 0x101 8 DIRECT 9 MEASUREMENT 2952251460 1020 2952241212 2952250408 0 0 0 100000 512 0\r\n /end SOURCE \r\n \r\n /begin TP_BLOB 0x1000103 INTERFACE_SPEED_100MBIT 0x0\r\n /begin DISTAB_CFG 0xD 0x122 0x2 0x0 0x0\r\n TRG_MOD 0x0 \r\n /end DISTAB_CFG \r\n ETK_CFG 0x10 0x1D 0x61 0x1 0x1 0xFF 0xFF 0x63 0xCF 0x7F 0x81 0x84 0x79 0x64 0xB 0x65 0x8C 0x66 0xA0 0x67 0x91 0x68 0x9E 0x78 0x79 0x7C 0xCB 0x73 0xBA \r\n ETK_MAILBOX 0x11223344\r\n EXRAM 0xAFF7FF00 0xFF\r\n EXRAM 0xAFF7FF00 0xFF\r\n PAGE_SWITCH_METHOD\r\n 0x1\r\n MAILBOX 0x1 0x1F4 0xAFF7C928\r\n AUTOSTART_BEHAVIOR ALWAYS_RP\r\n OCT_WORKINGPAGE 0x400 0xAFF7C84C 0xDC\r\n /end TP_BLOB \r\n /end IF_DATA \r\n\r\n\r\n \r\n/* ============================================================================================== */\r\n/* */\r\n/* MOD_PAR with the memory segment descriptions */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n\r\n/begin MOD_PAR\r\n \" \" \r\n VERSION \"Test version of 01.01.2022\"\r\n ADDR_EPK 0x45678\r\n EPK \"EPROM identifier test\"\r\n SUPPLIER \"TIER1_0\"\r\n CUSTOMER \"OEM_0\"\r\n CUSTOMER_NO \"0123456789\"\r\n USER \"A.N.Wender\"\r\n PHONE_NO \"99999 99999\"\r\n ECU \"Engine control\"\r\n ECU_CALIBRATION_OFFSET 0x1000\r\n CPU_TYPE \"Motorola 0815\"\r\n NO_OF_INTERFACES 2\r\n /begin MEMORY_SEGMENT extRam \"\"\r\n DATA\r\n RAM\r\n EXTERN\r\n 0x30000\r\n 0x1000\r\n -1 -1 -1 -1 -1\r\n /begin IF_DATA ASAP1B_KWP2000\r\n /* ADDRESS_MAPPING orig_addr mapping_addr length */\r\n ADDRESS_MAPPING 0x4000 0x6000 0x0200\r\n /end IF_DATA\r\n /end MEMORY_SEGMENT\r\n /begin MEMORY_LAYOUT PRG_RESERVED\r\n 0x0000\r\n 0x0400\r\n -1 -1 -1 -1 -1\r\n /end MEMORY_LAYOUT\r\n /begin MEMORY_LAYOUT PRG_CODE\r\n 0x0400\r\n 0x3C00\r\n -1 -1 -1 -1 -1\r\n /end MEMORY_LAYOUT\r\n /begin MEMORY_LAYOUT PRG_DATA\r\n 0x4000\r\n 0x5800\r\n -1 -1 -1 -1 -1\r\n /end MEMORY_LAYOUT\r\n SYSTEM_CONSTANT \"CONTROLLERx constant1\" \"0.33\"\r\n SYSTEM_CONSTANT \"CONTROLLERx constant2\" \"2.79\"\r\n /begin CALIBRATION_METHOD\r\n „InCircuit“\r\n 2\r\n /begin CALIBRATION_HANDLE\r\n 0x10000 /* start address of pointer table */\r\n 0x200 /* length of pointer table */\r\n 0x4 /* size of one pointer table entry */\r\n 0x10000 /* start address of flash section */\r\n 0x10000 /* length of flash section */\r\n CALIBRATION_HANDLE_TEXT \"YourTextHere\"\r\n /end CALIBRATION_HANDLE\r\n /end CALIBRATION_METHOD\r\n/end MOD_PAR\r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* Computation Methods used to convert the ECU internal values to the physical values */\r\n/* */\r\n/* the types IDENTICAL, LINEAR and RAT_FUNC should be used as standard */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n\r\n /begin COMPU_METHOD CM.IDENTICAL\r\n \" \"nothing\" \"\r\n IDENTICAL \r\n \"%3.0\" \r\n \"hours\"\r\n /end COMPU_METHOD\r\n\r\n /begin COMPU_METHOD Velocity\r\n \"conversion method for velocity\"\r\n RAT_FUNC\r\n \"%6.2\"\r\n \"[km/h]\"\r\n COEFFS 0 100 0 0 0 1\r\n REF_UNIT kms_per_hour\r\n /end COMPU_METHOD\r\n\r\n\r\n /begin COMPU_METHOD CM.LINEAR.IDENT\r\n \"Linear function with parameter set for phys = f(int) = 1*int + 0\"\r\n LINEAR \"%3.1\" \"m/s\"\r\n COEFFS_LINEAR 1 0\r\n /end COMPU_METHOD\r\n\r\n /begin COMPU_METHOD CM.LINEAR.IDENT.STATUS_STRING\r\n \"Linear function with parameter set for phys = f(int) = 1*int + 0\"\r\n LINEAR \"%3.1\" \"m/s\"\r\n COEFFS_LINEAR 1 0\r\n STATUS_STRING_REF CM.TAB_VERB.STATUS_STRING.REF\r\n /end COMPU_METHOD\r\n\r\n /begin COMPU_METHOD CM.LINEAR.MUL_2\r\n \"Linear function with parameter set for phys = f(int) = 2*int + 0\"\r\n LINEAR \"%3.1\" \"m/s\"\r\n COEFFS_LINEAR 2 0\r\n /end COMPU_METHOD\r\n\r\n /begin COMPU_METHOD CM.RAT_FUNC.IDENT\r\n \"rational function with parameter set for int = f(phys) = phys\"\r\n RAT_FUNC \"%3.1\" \"m/s\"\r\n COEFFS 0 1 0 0 0 1\r\n /end COMPU_METHOD\r\n\r\n /begin COMPU_METHOD CM.RAT_FUNC.IDENT.STATUS_STRING\r\n \"rational function with parameter set for int = f(phys) = phys\"\r\n RAT_FUNC \"%3.1\" \"m/s\"\r\n COEFFS 0 1 0 0 0 1\r\n STATUS_STRING_REF CM.TAB_VERB.STATUS_STRING.REF\r\n /end COMPU_METHOD\r\n\r\n /begin COMPU_METHOD CM.RAT_FUNC.DIV_10 \r\n \"rational function with parameter set for impl = f(phys) = phys * 10\"\r\n RAT_FUNC \"%3.1\" \"km/h\"\r\n COEFFS 0 10 0 0 0 1\r\n /end COMPU_METHOD\r\n\r\n /begin COMPU_METHOD CM.RAT_FUNC.HYPERBOLIC \r\n \"rational function with parameter set for impl = f(phys) = 1 / x\"\r\n RAT_FUNC \"%3.1\" \"km/h\"\r\n COEFFS 0 0 1 0 1 0\r\n /end COMPU_METHOD\r\n\r\n /begin COMPU_METHOD CM.RAT_FUNC.DIV_81_9175\r\n \"rational function with parameter set for impl = f(phys) = phys * 81.9175\"\r\n RAT_FUNC \"%8.4\" \"grad C\"\r\n COEFFS 0 81.9175 0 0 0 1\r\n /end COMPU_METHOD\r\n\r\n \r\n/* ============================================================================================== */\r\n/* */\r\n/* type FORM should only be used if the computation is complex and not feasible by RAT_FUNC */\r\n/* */\r\n/* Note: */\r\n/* FORM is neccessary for VIRTUAL measuerments */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n /begin COMPU_METHOD CM.FORM.X_PLUS_4 \r\n \"\" \r\n FORM \r\n \"%6.1\" \r\n \"rpm\" \r\n /begin FORMULA\r\n \"X1+4\" \r\n FORMULA_INV \"X1-4\"\r\n /end FORMULA\r\n /end COMPU_METHOD \r\n\r\n\r\n /begin COMPU_METHOD CM.VIRTUAL.EXTERNAL_VALUE \r\n \"\" \r\n FORM \r\n \"%6.1\" \r\n \"rpm\" \r\n /begin FORMULA\r\n \"4*X1\" /* FORMULA_INV not needed here */\r\n /end FORMULA\r\n /end COMPU_METHOD \r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* type TAB_INTP and TAB_NOINTP should only be used if the computation is complex and not */\r\n/* feasible by RAT_FUNC */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n /begin COMPU_METHOD CM.TAB_INTP.DEFAULT_VALUE\r\n \"\" \r\n TAB_INTP \"%8.4\" \"U/ min \" \r\n COMPU_TAB_REF CM.TAB_INTP.DEFAULT_VALUE.REF\r\n /end COMPU_METHOD \r\n\r\n /begin COMPU_TAB CM.TAB_INTP.DEFAULT_VALUE.REF \r\n \"\" \r\n TAB_INTP \r\n 12 \r\n -3 98 \r\n -1 99 \r\n 0 100\r\n 2 102 \r\n 4 104 \r\n 5 105 \r\n 6 106 \r\n 7 107 \r\n 8 108 \r\n 9 109 \r\n 10 110 \r\n 13 111\r\n DEFAULT_VALUE_NUMERIC 300.56 /* DEFAULT_VALUE_NUMERIC should be used here as the normal output is numeric */\r\n /end COMPU_TAB \r\n\r\n /begin COMPU_METHOD CM.TAB_INTP.NO_DEFAULT_VALUE\r\n \"\" \r\n TAB_INTP \"%8.4\" \"U/ min \" \r\n COMPU_TAB_REF CM.TAB_INTP.NO_DEFAULT_VALUE.REF\r\n /end COMPU_METHOD \r\x10 \r\n /begin COMPU_TAB CM.TAB_INTP.NO_DEFAULT_VALUE.REF \r\n \"\" \r\n TAB_INTP \r\n 12 \r\n -3 98 \r\n -1 99 \r\n 0 100\r\n 2 102 \r\n 4 104 \r\n 5 105 \r\n 6 106 \r\n 7 107 \r\n 8 108 \r\n 9 109 \r\n 10 110 \r\n 13 111\r\n /end COMPU_TAB \r\n\r\n\r\n /begin COMPU_METHOD CM.TAB_NOINTP.DEFAULT_VALUE\r\n \"\" \r\n TAB_NOINTP \"%8.4\" \"U/ min \" \r\n COMPU_TAB_REF CM.TAB_NOINTP.DEFAULT_VALUE.REF\r\n /end COMPU_METHOD \r\n \r\n /begin COMPU_TAB CM.TAB_NOINTP.DEFAULT_VALUE.REF \r\n \"\" \r\n TAB_NOINTP \r\n 12 \r\n -3 98 \r\n -1 99 \r\n 0 100\r\n 2 102 \r\n 4 104 \r\n 5 105 \r\n 6 106 \r\n 7 107 \r\n 8 108 \r\n 9 109 \r\n 10 110 \r\n 13 111\r\n DEFAULT_VALUE_NUMERIC 300.56 /* DEFAULT_VALUE_NUMERIC should be used here as the normal output is numeric */\r\n /end COMPU_TAB \r\n\r\n /begin COMPU_METHOD CM.TAB_NOINTP.NO_DEFAULT_VALUE\r\n \"\" \r\n TAB_NOINTP \"%8.4\" \"U/ min \" \r\n COMPU_TAB_REF CM.TAB_NOINTP.NO_DEFAULT_VALUE.REF\r\n /end COMPU_METHOD \r\n \r\n /begin COMPU_TAB CM.TAB_NOINTP.NO_DEFAULT_VALUE.REF \r\n \"\" \r\n TAB_NOINTP \r\n 12 \r\n -3 98 \r\n -1 99 \r\n 0 100\r\n 2 102 \r\n 4 104 \r\n 5 105 \r\n 6 106 \r\n 7 107 \r\n 8 108 \r\n 9 109 \r\n 10 110 \r\n 13 111\r\n /end COMPU_TAB \r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* type TAB_VERB and TAB_VERB_RANGE allow to convert to text */\r\n/* */\r\n/* Note: */\r\n/* Testbench with ASAP3 do not support text. It is common use that the MCD tools transfer the */\r\n/* internal value instead */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n /begin COMPU_METHOD CM.TAB_VERB.DEFAULT_VALUE\r\n \"Verbal conversion with default value\"\r\n TAB_VERB \"%12.0\" \"\"\r\n COMPU_TAB_REF CM.TAB_VERB.DEFAULT_VALUE.REF\r\n /end COMPU_METHOD\r\n /begin COMPU_VTAB CM.TAB_VERB.DEFAULT_VALUE.REF\r\n \"List of text strings and relation to impl value\" \r\n TAB_VERB 3\r\n 1 \"SawTooth\"\r\n 2 \"Square\"\r\n 3 \"Sinus\"\r\n DEFAULT_VALUE \"unknown signal type\"\r\n /end COMPU_VTAB\r\n\r\n /begin COMPU_VTAB CM.TAB_VERB.STATUS_STRING.REF\r\n \"List of text strings and relation to impl value\" \r\n TAB_VERB 3\r\n 253 \"Sensor not calibrated\"\r\n 254 \"Sensor not connected\"\r\n 255 \"Sensor defect\"\r\n /end COMPU_VTAB\r\n\r\n /begin COMPU_METHOD CM.TAB_VERB.NO_DEFAULT_VALUE\r\n \"Verbal conversion without default value\"\r\n TAB_VERB \"%12.0\" \"\"\r\n COMPU_TAB_REF CM.TAB_VERB.NO_DEFAULT_VALUE.REF\r\n /end COMPU_METHOD\r\n /begin COMPU_VTAB CM.TAB_VERB.NO_DEFAULT_VALUE.REF\r\n \"List of text strings and relation to impl value\" \r\n TAB_VERB 6\r\n 2 \"red\"\r\n 3 \"orange\"\r\n 4 \"yellow\"\r\n 5 \"green\"\r\n 6 \"blue\"\r\n 7 \"violet\"\r\n /end COMPU_VTAB\r\n\r\n\r\n /begin COMPU_METHOD CM.VTAB_RANGE.DEFAULT_VALUE \r\n \"verbal range with default value\" \r\n TAB_VERB \r\n \"%4.2\" \r\n \"\" \r\n COMPU_TAB_REF CM.VTAB_RANGE.DEFAULT_VALUE.REF \r\n /end COMPU_METHOD \r\n \r\n /begin COMPU_VTAB_RANGE CM.VTAB_RANGE.DEFAULT_VALUE.REF \r\n \"\" \r\n 11 \r\n 0 1 \"Zero_to_one\" \r\n 2 3 \"two_to_three\" \r\n 4 7 \"four_to_seven\" \r\n 14 17 \"fourteen_to_seventeen\" \r\n 18 99 \"eigteen_to_ninetynine\" \r\n 100 100 \"hundred\" \r\n 101 101 \"hundredone\" \r\n 102 102 \"hundredtwo\" \r\n 103 103 \"hundredthree\" \r\n 104 104 \"hundredfour\" \r\n 105 105 \"hundredfive\" \r\n DEFAULT_VALUE \"out of range value\"\r\n /end COMPU_VTAB_RANGE \r\n\r\n /begin COMPU_METHOD CM.VTAB_RANGE.NO_DEFAULT_VALUE \r\n \"verbal range without default value\" \r\n TAB_VERB \r\n \"%4.2\" \r\n \"\" \r\n COMPU_TAB_REF CM.VTAB_RANGE.NO_DEFAULT_VALUE.REF \r\n /end COMPU_METHOD \r\n \r\n /begin COMPU_VTAB_RANGE CM.VTAB_RANGE.NO_DEFAULT_VALUE.REF \r\n \"\" \r\n 11 \r\n 0 1 \"Zero_to_one\" \r\n 2 3 \"two_to_three\" \r\n 4 7 \"four_to_seven\" \r\n 14 17 \"fourteen_to_seventeen\" \r\n 18 99 \"eigteen_to_ninetynine\" \r\n 100 100 \"hundred\" \r\n 101 101 \"hundredone\" \r\n 102 102 \"hundredtwo\" \r\n 103 103 \"hundredthree\" \r\n 104 104 \"hundredfour\" \r\n 105 105 \"hundredfive\" \r\n /end COMPU_VTAB_RANGE \r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* Measurements */\r\n/* */\r\n/* Note: */\r\n/* In this example the values for Resolution and Accuracy are set to \"0\" as they are normally */\r\n/* not evaluated by measurement and calibration tools */\r\n/* It is allowed to use the same address for multiple measurements. By this it is possible */\r\n/* to use different bitmasks / computation methods for the same int value */\r\n/* */\r\n/* Note: */\r\n/* There is for each data type one example */\r\n/* With one data type (UBYTE) there is for each computation method an example */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.UBYTE.IDENTICAL\r\n \"Scalar measurement\"\r\n UBYTE CM.IDENTICAL 0 0 0 255\r\n ECU_ADDRESS 0x13A00\r\n FORMAT \"%5.0\" /* Note: Overwrites the format stated in the computation method */\r\n DISPLAY_IDENTIFIER DI.ASAM.M.SCALAR.UBYTE.IDENTICAL /* optional display identifier */\r\n ARRAY_SIZE 1\r\n /begin IF_DATA ETK KP_BLOB 0x13A00 INTERN 1 RASTER 2 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT N\r\n \"Engine speed\"\r\n UWORD\r\n R_SPEED_3\r\n 1\r\n 0\r\n 120.0\r\n 8400.0\r\n ECU_ADDRESS\r\n 0x12345\r\n ECU_ADDRESS_EXTENSION 1\r\n READ_WRITE\r\n /begin FUNCTION_LIST\r\n MEASUREMENT ASAM.M.SCALAR.UBYTE.IDENTICAL.STATUS_STRING\r\n MEASUREMENT ASAM.M.SCALAR.UBYTE.RAT_FUNC.IDENT.STATUS_STRING\r\n /end FUNCTION_LIST\r\n /end MEASUREMENT\r\n\r\n /begin FUNCTION\r\n ID_ADJUSTM\r\n /* name */\r\n \"function group idling adjustment\"\r\n /begin DEF_CHARACTERISTIC INJECTION_CURVE\r\n /end DEF_CHARACTERISTIC\r\n /begin REF_CHARACTERISTIC FACTOR_1\r\n /end REF_CHARACTERISTIC\r\n /begin IN_MEASUREMENT\r\n WHEEL_REVOLUTIONS ENGINE_SPEED\r\n /end IN_MEASUREMENT\r\n /begin OUT_MEASUREMENT\r\n OK_FLAG SENSOR_FLAG\r\n /end OUT_MEASUREMENT\r\n /begin LOC_MEASUREMENT\r\n LOOP_COUNTER TEMPORARY_1\r\n /end LOC_MEASUREMENT\r\n /begin SUB_FUNCTION\r\n ID_ADJUSTM_SUB\r\n /end SUB_FUNCTION\r\n /end FUNCTION\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.UBYTE.IDENTICAL.STATUS_STRING\r\n \"Scalar measurement with status string\"\r\n UBYTE CM.LINEAR.IDENT.STATUS_STRING 0 0 0 252 /* restricted limits to exclude status string values from standard measure range */\r\n ECU_ADDRESS 0x13A00\r\n FORMAT \"%5.0\" /* Note: Overwrites the format stated in the computation method */\r\n DISPLAY_IDENTIFIER DI.ASAM.M.SCALAR.UBYTE.IDENTICAL.STATUS_STRING /* optional display identifier */\r\n /begin IF_DATA ETK KP_BLOB 0x13A00 INTERN 1 RASTER 2 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.UBYTE.RAT_FUNC.IDENT.STATUS_STRING\r\n \"Scalar measurement with status string\"\r\n UBYTE CM.RAT_FUNC.IDENT.STATUS_STRING 0 0 0 252 /* restricted limits to exclude status string values from standard measure range */\r\n ECU_ADDRESS 0x13A00\r\n FORMAT \"%5.0\" /* Note: Overwrites the format stated in the computation method */\r\n DISPLAY_IDENTIFIER DI.ASAM.M.SCALAR.UBYTE.IDENTICAL.STATUS_STRING /* optional display identifier */\r\n /begin IF_DATA ETK KP_BLOB 0x13A00 INTERN 1 RASTER 4 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.UBYTE.RAT_FUNC.DIV_10\r\n \"Scalar measurement with status string\"\r\n UBYTE CM.RAT_FUNC.DIV_10 0 0 0 252 /* restricted limits to exclude status string values from standard measure range */\r\n ECU_ADDRESS 0x13A00\r\n FORMAT \"%5.0\" /* Note: Overwrites the format stated in the computation method */\r\n DISPLAY_IDENTIFIER DI.ASAM.M.SCALAR.UBYTE.RAT_FUNC.DIV_10 /* optional display identifier */\r\n /begin IF_DATA ETK KP_BLOB 0x13A00 INTERN 1 RASTER 5 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.UBYTE.HYPERBOLIC\r\n \"Scalar measurement with status string\"\r\n UBYTE CM.RAT_FUNC.HYPERBOLIC 0 0 0 252 /* restricted limits to exclude status string values from standard measure range */\r\n ECU_ADDRESS 0x13A00\r\n FORMAT \"%5.0\" /* Note: Overwrites the format stated in the computation method */\r\n DISPLAY_IDENTIFIER DI.ASAM.M.SCALAR.UBYTE.RAT_FUNC.HYPERBOLIC /* optional display identifier */\r\n /begin IF_DATA ETK KP_BLOB 0x13A00 INTERN 1 RASTER 4 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.UBYTE.TAB_VERB_DEFAULT_VALUE\r\n \"Scalar measurement with verbal conversion and default value\"\r\n UBYTE CM.TAB_VERB.DEFAULT_VALUE 0 0 0 255\r\n ECU_ADDRESS 0x13A00 /* same address as SAM.SCALAR.UBYTE.IDENTICAL -> same int value but different phys value */\r\n /begin IF_DATA ETK KP_BLOB 0x13A00 INTERN 1 RASTER 5 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.UBYTE.TAB_VERB_NO_DEFAULT_VALUE\r\n \"Scalar measurement with verbal conversion\"\r\n UBYTE CM.TAB_VERB.NO_DEFAULT_VALUE 0 0 0 255\r\n ECU_ADDRESS 0x13A00 /* same address as SAM.SCALAR.UBYTE.IDENTICAL -> same int value but different phys value */\r\n /begin IF_DATA ETK KP_BLOB 0x13A00 INTERN 1 RASTER 23 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.UBYTE.VTAB_RANGE_DEFAULT_VALUE\r\n \"Scalar measurement with verbal conversion and default value\"\r\n UBYTE CM.VTAB_RANGE.DEFAULT_VALUE 0 0 0 255\r\n ECU_ADDRESS 0x13A00 /* same address as SAM.SCALAR.UBYTE.IDENTICAL -> same int value but different phys value */\r\n /begin IF_DATA ETK KP_BLOB 0x13A00 INTERN 1 RASTER 1 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.UBYTE.VTAB_RANGE_NO_DEFAULT_VALUE\r\n \"Scalar measurement with verbal conversion and default value\"\r\n UBYTE CM.VTAB_RANGE.NO_DEFAULT_VALUE 0 0 0 101 /* the limits should not exceed the limits of the computation method ! otherwise the physical representation could be misleading */\r\n ECU_ADDRESS 0x13A00 /* same address as SAM.SCALAR.UBYTE.IDENTICAL -> same int value but different phys value */\r\n /begin IF_DATA ETK KP_BLOB 0x13A00 INTERN 1 RASTER 1 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.UBYTE.TAB_INTP_DEFAULT_VALUE\r\n \"Scalar measurement with verbal conversion and default value\"\r\n UBYTE CM.TAB_INTP.DEFAULT_VALUE 0 0 0 255\r\n ECU_ADDRESS 0x13A00 /* same address as SAM.SCALAR.UBYTE.IDENTICAL -> same int value but different phys value */\r\n /begin IF_DATA ETK KP_BLOB 0x13A00 INTERN 1 RASTER 2 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.UBYTE.TAB_INTP_NO_DEFAULT_VALUE\r\n \"Scalar measurement with verbal conversion and default value\"\r\n UBYTE CM.TAB_INTP.NO_DEFAULT_VALUE 0 0 0 13 /* the limits should not exceed the limits of the computation method ! otherwise the physical representation could be misleading */\r\n ECU_ADDRESS 0x13A00 /* same address as SAM.SCALAR.UBYTE.IDENTICAL -> same int value but different phys value */\r\n /begin IF_DATA ETK KP_BLOB 0x13A00 INTERN 1 RASTER 19 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.UBYTE.TAB_NOINTP_DEFAULT_VALUE\r\n \"Scalar measurement with verbal conversion and default value\"\r\n UBYTE CM.TAB_NOINTP.DEFAULT_VALUE 0 0 0 255\r\n ECU_ADDRESS 0x13A00 /* same address as SAM.SCALAR.UBYTE.IDENTICAL -> same int value but different phys value */\r\n /begin IF_DATA ETK KP_BLOB 0x13A00 INTERN 1 RASTER 1 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.UBYTE.TAB_NOINTP_NO_DEFAULT_VALUE\r\n \"Scalar measurement with verbal conversion and default value\"\r\n UBYTE CM.TAB_NOINTP.NO_DEFAULT_VALUE 0 0 0 13 /* the limits should not exceed the limits of the computation method ! otherwise the physical representation could be misleading */\r\n ECU_ADDRESS 0x13A00 /* same address as SAM.SCALAR.UBYTE.IDENTICAL -> same int value but different phys value */\r\n /begin IF_DATA ETK KP_BLOB 0x13A00 INTERN 1 RASTER 4 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.UBYTE.FORM_X_PLUS_4\r\n \"Scalar measurement\"\r\n UBYTE CM.FORM.X_PLUS_4 0 0 4 259\r\n ECU_ADDRESS 0x13A00\r\n FORMAT \"%5.0\" /* Note: Overwrites the format stated in the computation method */\r\n /begin IF_DATA ETK KP_BLOB 0x13A00 INTERN 1 RASTER 5 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.SBYTE.IDENTICAL\r\n \"Scalar measurement\"\r\n SBYTE CM.IDENTICAL 0 0 -128 127\r\n ECU_ADDRESS 0x13A01\r\n FORMAT \"%5.0\"\r\n /begin IF_DATA ETK KP_BLOB 0x13A01 INTERN 1 RASTER 3 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.SBYTE.IDENTICAL.DISCRETE\r\n \"Scalar measurement\"\r\n SBYTE CM.IDENTICAL 0 0 -128 127\r\n ECU_ADDRESS 0x13A01\r\n FORMAT \"%5.0\"\r\n DISCRETE\r\n /begin IF_DATA ETK KP_BLOB 0x13A01 INTERN 1 RASTER 3 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.SBYTE.LINEAR_MUL_2\r\n \"Scalar measurement\"\r\n SBYTE CM.LINEAR.MUL_2 0 0 -256 254\r\n ECU_ADDRESS 0x13A01 /* same address as ASAM.M.SCALAR.SBYTE.IDENTICAL -> same int value but different phys value */\r\n FORMAT \"%5.0\"\r\n /begin IF_DATA ETK KP_BLOB 0x13A01 INTERN 1 RASTER 4 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.UWORD.IDENTICAL\r\n \"Scalar measurement\"\r\n UWORD CM.IDENTICAL 0 0 0 65535\r\n ECU_ADDRESS 0x13A02\r\n FORMAT \"%5.0\"\r\n /begin IF_DATA ETK KP_BLOB 0x13A02 INTERN 1 RASTER 4 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.SWORD.IDENTICAL\r\n \"Scalar measurement\"\r\n SWORD CM.IDENTICAL 0 0 -32268 32267\r\n ECU_ADDRESS 0x13A04\r\n FORMAT \"%5.0\"\r\n /begin IF_DATA ETK KP_BLOB 0x13A04 INTERN 1 RASTER 1 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.ULONG.IDENTICAL\r\n \"Scalar measurement\"\r\n ULONG CM.IDENTICAL 0 0 0 4294967295\r\n ECU_ADDRESS 0x13A08\r\n FORMAT \"%5.0\"\r\n /begin IF_DATA ETK KP_BLOB 0x13A08 INTERN 1 RASTER 2 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.SLONG.IDENTICAL\r\n \"Scalar measurement\"\r\n SLONG CM.IDENTICAL 0 0 -2147483648 2147483647\r\n ECU_ADDRESS 0x13A0C\r\n FORMAT \"%5.0\"\r\n /begin IF_DATA ETK KP_BLOB 0x13A0C INTERN 1 RASTER 1 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.FLOAT32.IDENTICAL\r\n \"Scalar measurement\"\r\n FLOAT32_IEEE CM.IDENTICAL 0 0 -1e24 1e24\r\n ECU_ADDRESS 0x13A10\r\n FORMAT \"%8.4\"\r\n /begin IF_DATA ETK KP_BLOB 0x13A10 INTERN 1 RASTER 4 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.FLOAT32.IDENTICAL.DISCRETE\r\n \"Scalar measurement\"\r\n FLOAT32_IEEE CM.IDENTICAL 0 0 -1e24 1e24\r\n ECU_ADDRESS 0x13A10\r\n FORMAT \"%8.4\"\r\n DISCRETE\r\n /begin IF_DATA ETK KP_BLOB 0x13A10 INTERN 1 RASTER 4 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.FLOAT64.IDENTICAL\r\n \"Scalar measurement\"\r\n FLOAT64_IEEE CM.IDENTICAL 0 0 -1e308 1e308\r\n ECU_ADDRESS 0x13A14\r\n FORMAT \"%8.4\"\r\n /begin IF_DATA ETK KP_BLOB 0x13A14 INTERN 1 RASTER 5 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.UWORD.IDENTICAL.BITMASK_0FF0\r\n \"Scalar measurement with Bitmask for a bit-area\"\r\n UWORD CM.IDENTICAL 0 0 0 255\r\n BIT_MASK 0x0FF0\r\n /begin BIT_OPERATION\r\n LEFT_SHIFT 0\r\n SIGN_EXTEND\r\n /end BIT_OPERATION\r\n ECU_ADDRESS 0x13A20\r\n FORMAT \"%5.0\"\r\n /begin IF_DATA ETK KP_BLOB 0x13A20 INTERN 1 RASTER 5 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n /begin MEASUREMENT ASAM.M.SCALAR.UWORD.IDENTICAL.BITMASK_0008\r\n \"Scalar measurement with Bitmask for a single bit\"\r\n UWORD CM.IDENTICAL 0 0 0 1\r\n BIT_MASK 0x0008\r\n /begin BIT_OPERATION\r\n RIGHT_SHIFT 0\r\n /end BIT_OPERATION\r\n ECU_ADDRESS 0x13A20\r\n FORMAT \"%5.0\"\r\n /begin IF_DATA ETK KP_BLOB 0x13A20 INTERN 1 RASTER 2 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n\r\n /begin MEASUREMENT ASAM.M.MATRIX_DIM_16_1.UBYTE.IDENTICAL\r\n \"Scalar measurement\"\r\n UBYTE CM.IDENTICAL 0 0 0 255\r\n ECU_ADDRESS 0x13A30\r\n FORMAT \"%5.0\"\r\n MATRIX_DIM 16 1 /* describes a 2-dim object where the y-range has only 1 implementation - different object type for ASAP3 / MCD3 ! */\r\n /begin IF_DATA ETK KP_BLOB 0x13A30 INTERN 1 RASTER 3 /end IF_DATA\r\n /end MEASUREMENT\r\n \r\n /begin MEASUREMENT ASAM.M.MATRIX_DIM_16.UBYTE.IDENTICAL\r\n \"Scalar measurement\"\r\n UBYTE CM.IDENTICAL 0 0 0 255\r\n ECU_ADDRESS 0x13A30\r\n FORMAT \"%5.0\"\r\n MATRIX_DIM 16\r\n /begin IF_DATA ETK KP_BLOB 0x13A30 INTERN 1 RASTER 4 /end IF_DATA\r\n /end MEASUREMENT\r\n \r\n /begin MEASUREMENT ASAM.M.MATRIX_DIM_8_2.UBYTE.IDENTICAL\r\n \"Scalar measurement\"\r\n UBYTE CM.IDENTICAL 0 0 0 255\r\n ECU_ADDRESS 0x13A30\r\n FORMAT \"%5.0\"\r\n MATRIX_DIM 8 2\r\n /begin IF_DATA ETK KP_BLOB 0x13A30 INTERN 1 RASTER 1 /end IF_DATA\r\n /end MEASUREMENT\r\n \r\n /begin MEASUREMENT ASAM.M.MATRIX_DIM_8_4_2.UBYTE.IDENTICAL\r\n \"Scalar measurement\"\r\n UBYTE CM.IDENTICAL 0 0 0 255\r\n ECU_ADDRESS 0x13A30\r\n FORMAT \"%5.0\"\r\n MATRIX_DIM 8 4 2\r\n /begin IF_DATA ETK KP_BLOB 0x13A30 INTERN 1 RASTER 2 /end IF_DATA\r\n /end MEASUREMENT\r\n\r\n \r\n /begin MEASUREMENT ASAM.M.VIRTUAL.SCALAR.SWORD.PHYSICAL\r\n \"Virtual measurement with 2 * ASAM.M.SCALAR.SBYTE.LINEAR_MUL_2 as input (based on the phys value of ASAM.M.SCALAR.SBYTE.LINEAR_MUL_2\"\r\n SWORD \r\n CM.VIRTUAL.EXTERNAL_VALUE /* computation method defines how the virtual measurement is calculated out of the input measurement */\r\n 0 0 -32768 32767\r\n ECU_ADDRESS 0x0 /* no real address, measurement value is calculated by the MCD tool */\r\n /begin VIRTUAL\r\n ASAM.M.SCALAR.SBYTE.LINEAR_MUL_2 /* defines the input used for the computation metthod */\r\n /end VIRTUAL\r\n /end MEASUREMENT\r\n\r\n\r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* Record Layouts for Characteristics (Parameters) */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n /begin RECORD_LAYOUT RL.FNC.UBYTE.ROW_DIR\r\n FNC_VALUES 1 UBYTE ROW_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.FNC.SBYTE.ROW_DIR\r\n FNC_VALUES 1 SBYTE ROW_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.FNC.UWORD.ROW_DIR\r\n FNC_VALUES 1 UWORD ROW_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.FNC.SWORD.ROW_DIR\r\n FNC_VALUES 1 SWORD ROW_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.FNC.ULONG.ROW_DIR\r\n FNC_VALUES 1 ULONG ROW_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.FNC.SLONG.ROW_DIR\r\n FNC_VALUES 1 SLONG ROW_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.FNC.FLOAT32_IEEE.ROW_DIR\r\n FNC_VALUES 1 FLOAT32_IEEE ROW_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.FNC.FLOAT64_IEEE.ROW_DIR\r\n FNC_VALUES 1 FLOAT64_IEEE ROW_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.FNC.UBYTE.COLUMN_DIR\r\n FNC_VALUES 1 UBYTE COLUMN_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.FNC.SBYTE.COLUMN_DIR\r\n FNC_VALUES 1 SBYTE COLUMN_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.FNC.UWORD.COLUMN_DIR\r\n FNC_VALUES 1 UWORD COLUMN_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.FNC.SWORD.COLUMN_DIR\r\n FNC_VALUES 1 SWORD COLUMN_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.FNC.ULONG.COLUMN_DIR\r\n FNC_VALUES 1 ULONG COLUMN_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.FNC.SLONG.COLUMN_DIR\r\n FNC_VALUES 1 SLONG COLUMN_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.FNC.FLOAT32_IEEE.COLUMN_DIR\r\n FNC_VALUES 1 FLOAT32_IEEE COLUMN_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.FNC.FLOAT64_IEEE.COLUMN_DIR\r\n FNC_VALUES 1 FLOAT64_IEEE COLUMN_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n\r\n /begin RECORD_LAYOUT RL.AXIS.UBYTE \r\n AXIS_PTS_X 1 UBYTE INDEX_INCR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.AXIS.UWORD\r\n AXIS_PTS_X 1 UWORD INDEX_INCR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n\r\n /begin RECORD_LAYOUT RL.CURVE.SWORD.SBYTE.DECR \r\n NO_AXIS_PTS_X 1 UBYTE /* current number of axis points */\r\n AXIS_PTS_X 2 SBYTE INDEX_DECR DIRECT\r\n FNC_VALUES 3 SWORD ROW_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.CURVE.SWORD.SBYTE.INCR \r\n NO_AXIS_PTS_X 1 UBYTE /* current number of axis points */\r\n AXIS_PTS_X 2 SBYTE INDEX_INCR DIRECT\r\n FNC_VALUES 3 SWORD ROW_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.AXIS_PTS.SBYTE.DECR \r\n NO_AXIS_PTS_X 1 UBYTE /* current number of axis points */\r\n AXIS_PTS_X 2 SBYTE INDEX_DECR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.AXIS_PTS.RES_AXIS\r\n NO_RESCALE_X 1 UBYTE\r\n RESERVED 2 BYTE /* to adapt the start of the rescale pairs to an even address */\r\n AXIS_RESCALE_X 3 UBYTE 5 INDEX_INCR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.MAP.SWORD.SBYTE.SBYTE.INCR \r\n NO_AXIS_PTS_X 1 UBYTE /* current number of axis points */\r\n NO_AXIS_PTS_Y 2 UBYTE /* current number of axis points */\r\n AXIS_PTS_X 3 SBYTE INDEX_INCR DIRECT\r\n AXIS_PTS_Y 4 SBYTE INDEX_INCR DIRECT\r\n FNC_VALUES 5 SWORD ROW_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.CUBOID.SWORD.SBYTE.DECR \r\n NO_AXIS_PTS_Z 1 UBYTE /* current number of axis points */\r\n AXIS_PTS_Z 2 SBYTE INDEX_DECR DIRECT\r\n FNC_VALUES 3 SWORD ROW_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.CUBOID.ROW_DIR \r\n NO_AXIS_PTS_X 1 UBYTE /* current number of axis points */\r\n NO_AXIS_PTS_Y 2 UBYTE /* current number of axis points */\r\n NO_AXIS_PTS_Z 3 UBYTE /* current number of axis points */\r\n AXIS_PTS_X 4 SBYTE INDEX_INCR DIRECT\r\n AXIS_PTS_Y 5 SBYTE INDEX_INCR DIRECT\r\n AXIS_PTS_Z 6 SBYTE INDEX_INCR DIRECT\r\n FNC_VALUES 7 SBYTE ROW_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.CUBOID.COLUMN_DIR \r\n NO_AXIS_PTS_X 1 UBYTE /* current number of axis points */\r\n NO_AXIS_PTS_Y 2 UBYTE /* current number of axis points */\r\n NO_AXIS_PTS_Z 3 UBYTE /* current number of axis points */\r\n AXIS_PTS_X 4 SBYTE INDEX_INCR DIRECT\r\n AXIS_PTS_Y 5 SBYTE INDEX_INCR DIRECT\r\n AXIS_PTS_Z 6 SBYTE INDEX_INCR DIRECT\r\n FNC_VALUES 7 SBYTE COLUMN_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.CUBE_4.ROW_DIR \r\n NO_AXIS_PTS_X 1 UBYTE /* current number of axis points */\r\n NO_AXIS_PTS_Y 2 UBYTE /* current number of axis points */\r\n NO_AXIS_PTS_Z 3 UBYTE /* current number of axis points */\r\n NO_AXIS_PTS_4 4 UBYTE /* current number of axis points */\r\n AXIS_PTS_X 5 SBYTE INDEX_INCR DIRECT\r\n AXIS_PTS_Y 6 SBYTE INDEX_INCR DIRECT\r\n AXIS_PTS_Z 7 SBYTE INDEX_INCR DIRECT\r\n AXIS_PTS_4 8 SBYTE INDEX_INCR DIRECT\r\n FNC_VALUES 9 SBYTE ROW_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.CUBE_4.COLUMN_DIR \r\n NO_AXIS_PTS_X 1 UBYTE /* current number of axis points */\r\n NO_AXIS_PTS_Y 2 UBYTE /* current number of axis points */\r\n NO_AXIS_PTS_Z 3 UBYTE /* current number of axis points */\r\n NO_AXIS_PTS_4 4 UBYTE /* current number of axis points */\r\n AXIS_PTS_X 5 SBYTE INDEX_INCR DIRECT\r\n AXIS_PTS_Y 6 SBYTE INDEX_INCR DIRECT\r\n AXIS_PTS_Z 7 SBYTE INDEX_INCR DIRECT\r\n AXIS_PTS_4 8 SBYTE INDEX_INCR DIRECT\r\n FNC_VALUES 9 SBYTE COLUMN_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT RL.5.COLUMN_DIR \r\n NO_AXIS_PTS_X 1 UBYTE /* current number of axis points */\r\n NO_AXIS_PTS_Y 2 UBYTE /* current number of axis points */\r\n NO_AXIS_PTS_Z 3 UBYTE /* current number of axis points */\r\n NO_AXIS_PTS_4 4 UBYTE\r\n NO_AXIS_PTS_5 5 UBYTE /* current number of axis points */\r\n AXIS_PTS_X 6 SBYTE INDEX_INCR DIRECT\r\n AXIS_PTS_Y 7 SBYTE INDEX_INCR DIRECT\r\n AXIS_PTS_Z 8 SBYTE INDEX_INCR DIRECT\r\n AXIS_PTS_4 9 SBYTE INDEX_INCR DIRECT\r\n AXIS_PTS_5 10 SBYTE INDEX_INCR DIRECT\r\n FNC_VALUES 11 SBYTE COLUMN_DIR DIRECT\r\n /end RECORD_LAYOUT\r\n\r\n /begin RECORD_LAYOUT\r\n FNC_VALUES 7 SWORD COLUMN_DIR DIRECT\r\n AXIS_PTS_X 3 SWORD INDEX_INCR DIRECT\r\n AXIS_PTS_Y 6 UBYTE INDEX_INCR DIRECT\r\n NO_AXIS_PTS_X 2 UBYTE\r\n NO_AXIS_PTS_Y 5 UBYTE\r\n SRC_ADDR_X 1 UBYTE\r\n SRC_ADDR_Y 4 UBYTE\r\n SRC_ADDR_Z 1 UBYTE\r\n SRC_ADDR_4 1 UBYTE\r\n SRC_ADDR_5 1 UBYTE\r\n ALIGNMENT_BYTE 2\r\n DIST_OP_X 21 UWORD\r\n DIST_OP_Y 21 UWORD\r\n DIST_OP_Z 21 UWORD\r\n DIST_OP_4 21 UWORD\r\n DIST_OP_5 21 UWORD\r\n FIX_NO_AXIS_PTS_X 2\r\n FIX_NO_AXIS_PTS_Y 5\r\n FIX_NO_AXIS_PTS_Z 1\r\n FIX_NO_AXIS_PTS_4 2\r\n FIX_NO_AXIS_PTS_5 3\r\n OFFSET_X 16 UWORD\r\n OFFSET_Y 16 UWORD\r\n OFFSET_Z 16 UWORD\r\n OFFSET_4 16 UWORD\r\n OFFSET_5 16 UWORD\r\n RIP_ADDR_X 19 UWORD\r\n RIP_ADDR_Y 19 UWORD\r\n RIP_ADDR_Z 19 UWORD\r\n RIP_ADDR_4 19 UWORD\r\n RIP_ADDR_5 19 UWORD\r\n RIP_ADDR_W 19 UWORD\r\n SHIFT_OP_X 21 UWORD\r\n SHIFT_OP_Y 21 UWORD\r\n SHIFT_OP_Z 21 UWORD\r\n SHIFT_OP_4 21 UWORD\r\n SHIFT_OP_5 21 UWORD\r\n IDENTIFICATION 1 UWORD\r\n STATIC_RECORD_LAYOUT\r\n STATIC_ADDRESS_OFFSETS\r\n /end RECORD_LAYOUT\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* Scalar Characteristics (Parameters) */\r\n/* */\r\n/* Note: */\r\n/* MAX_DIF is always set to 0 as it is normally not evaluated by measurement and calibration tools */\r\n/* */\r\n/* Note: */\r\n/* There is for each data type one example */\r\n/* With one data type (SWORD) there is for each computation method an example */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.UBYTE.IDENTICAL\r\n \"Scalar FW U16 and CDF20 as name\"\r\n VALUE \r\n 0x810000 \r\n RL.FNC.UBYTE.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.IDENTICAL \r\n 10 200\r\n EXTENDED_LIMITS 0 256\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.UBYTE\r\n COMPARISON_QUANTITY ASAM.M.SCALAR.UBYTE.IDENTICAL\r\n ECU_ADDRESS_EXTENSION 0\r\n STEP_SIZE 0.025\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.SBYTE.IDENTICAL\r\n \"Scalar SBYTE\"\r\n VALUE \r\n 0x810001 \r\n RL.FNC.SBYTE.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.IDENTICAL \r\n -100 100\r\n EXTENDED_LIMITS -128 127\r\n FORMAT \"%6.1\" /* overwrites the format given in the computation method */\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.SBYTE.IDENTICAL\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.UWORD.IDENTICAL\r\n \"Scalar UWORD\"\r\n VALUE \r\n 0x810002 \r\n RL.FNC.UWORD.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.IDENTICAL \r\n 0 65535\r\n EXTENDED_LIMITS 0 65535\r\n BIT_MASK 0xFFFF\r\n FORMAT \"%5.0\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.UWORD.IDENTICAL\r\n /begin ANNOTATION\r\n ANNOTATION_LABEL \"ASAM Workinggroup\"\r\n ANNOTATION_ORIGIN \"\"\r\n /begin ANNOTATION_TEXT\r\n \"Test the A2L annotation\"\r\n /end ANNOTATION_TEXT\r\n /end ANNOTATION\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.UWORD.IDENTICAL.BITMASK_0FF0\r\n \"Scalar UWORD\"\r\n VALUE \r\n 0x810002 \r\n RL.FNC.UWORD.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.IDENTICAL \r\n 0 255\r\n EXTENDED_LIMITS 0 65535\r\n BIT_MASK 0x0FF0\r\n FORMAT \"%5.0\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.UWORD.IDENTICAL.BITMASK_0FF0\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.UWORD.IDENTICAL.BITMASK_0001\r\n \"Scalar UWORD\"\r\n VALUE \r\n 0x810002 \r\n RL.FNC.UWORD.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.IDENTICAL \r\n 0 1\r\n EXTENDED_LIMITS 0 65535\r\n BIT_MASK 0x0001\r\n PHYS_UNIT \"\"\r\n FORMAT \"%5.0\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.UWORD.IDENTICAL.BITMASK_0001\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.UWORD.IDENTICAL.BITMASK_0010\r\n \"Scalar UWORD\"\r\n VALUE \r\n 0x810002 \r\n RL.FNC.UWORD.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.IDENTICAL \r\n 0 1\r\n EXTENDED_LIMITS 0 65535\r\n BIT_MASK 0x0010\r\n PHYS_UNIT \"\"\r\n FORMAT \"%5.0\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.UWORD.IDENTICAL.BITMASK_0010\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.SWORD.IDENTICAL\r\n \"Scalar SWORD\"\r\n VALUE \r\n 0x810004 \r\n RL.FNC.SWORD.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.IDENTICAL \r\n -10000 20000\r\n EXTENDED_LIMITS -32268 32267\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.SWORD.IDENTICAL\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.SWORD.LINEAR_MUL_2\r\n \"Scalar SWORD\"\r\n VALUE \r\n 0x810004 \r\n RL.FNC.SWORD.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.LINEAR.MUL_2 \r\n -10000 20000\r\n EXTENDED_LIMITS -32268 32267\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.SWORD.LINEAR_MUL_2\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.SWORD.RAT_FUNC_DIV_10\r\n \"Scalar SWORD\"\r\n VALUE \r\n 0x810004 \r\n RL.FNC.SWORD.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.RAT_FUNC.DIV_10 \r\n -10000 20000\r\n EXTENDED_LIMITS -32268 32267\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.SWORD.RAT_FUNC_DIV_10\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.SWORD.FORM_X_PLUS_4\r\n \"Scalar SWORD\"\r\n VALUE \r\n 0x810004 \r\n RL.FNC.SWORD.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.FORM.X_PLUS_4 \r\n -10000 20000\r\n EXTENDED_LIMITS -32268 32267\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.SWORD.FORM_X_PLUS_4\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.SWORD.TAB_INTP_DEFAULT_VALUE\r\n \"Scalar SWORD\"\r\n VALUE \r\n 0x810004 \r\n RL.FNC.SWORD.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.TAB_INTP.DEFAULT_VALUE \r\n -10000 20000\r\n EXTENDED_LIMITS -32268 32267\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.SWORD.TAB_INTP_DEFAULT_VALUE\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.SWORD.TAB_INTP_NO_DEFAULT_VALUE\r\n \"Scalar SWORD\"\r\n VALUE \r\n 0x810004 \r\n RL.FNC.SWORD.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.TAB_INTP.NO_DEFAULT_VALUE \r\n -10000 20000\r\n EXTENDED_LIMITS -32268 32267\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.SWORD.TAB_INTP_NO_DEFAULT_VALUE\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.SWORD.TAB_NOINTP_DEFAULT_VALUE\r\n \"Scalar SWORD\"\r\n VALUE \r\n 0x810004 \r\n RL.FNC.SWORD.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.TAB_NOINTP.DEFAULT_VALUE \r\n -10000 20000\r\n EXTENDED_LIMITS -32268 32267\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.SWORD.TAB_NOINTP_DEFAULT_VALUE\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.SWORD.TAB_NOINTP_NO_DEFAULT_VALUE\r\n \"Scalar SWORD\"\r\n VALUE \r\n 0x810004 \r\n RL.FNC.SWORD.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.TAB_NOINTP.NO_DEFAULT_VALUE \r\n -10000 20000\r\n EXTENDED_LIMITS -32268 32267\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.SWORD.TAB_NOINTP_NO_DEFAULT_VALUE\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.SWORD.TAB_VERB_DEFAULT_VALUE\r\n \"Scalar SWORD\"\r\n VALUE \r\n 0x810004 \r\n RL.FNC.SWORD.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.TAB_VERB.DEFAULT_VALUE \r\n -10000 20000\r\n EXTENDED_LIMITS -32268 32267\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.SWORD.TAB_VERB_DEFAULT_VALUE\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.SWORD.TAB_VERB_NO_DEFAULT_VALUE\r\n \"Scalar SWORD\"\r\n VALUE \r\n 0x810004 \r\n RL.FNC.SWORD.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.TAB_VERB.NO_DEFAULT_VALUE \r\n -10000 20000\r\n EXTENDED_LIMITS -32268 32267\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.SWORD.TAB_VERB_NO_DEFAULT_VALUE\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.SWORD.VTAB_RANGE_DEFAULT_VALUE\r\n \"Scalar SWORD\"\r\n VALUE \r\n 0x810004 \r\n RL.FNC.SWORD.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.VTAB_RANGE.DEFAULT_VALUE \r\n -10000 20000\r\n EXTENDED_LIMITS -32268 32267\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.SWORD.VTAB_RANGE_DEFAULT_VALUE\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.SWORD.VTAB_RANGE_NO_DEFAULT_VALUE\r\n \"Scalar SWORD\"\r\n VALUE \r\n 0x810004 \r\n RL.FNC.SWORD.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.VTAB_RANGE.NO_DEFAULT_VALUE \r\n -10000 20000\r\n EXTENDED_LIMITS -32268 32267\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.SWORD.VTAB_RANGE_NO_DEFAULT_VALUE\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.SWORD.RAT_FUNC_DIV_81_9175\r\n \"Scalar SWORD\"\r\n VALUE \r\n 0x810004 \r\n RL.FNC.SWORD.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.RAT_FUNC.DIV_81_9175 \r\n -10000 20000\r\n EXTENDED_LIMITS -32268 32267\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.SWORD\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.ULONG.IDENTICAL\r\n \"Scalar ULONG\"\r\n VALUE \r\n 0x810008 \r\n RL.FNC.ULONG.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.IDENTICAL \r\n -1000000 2000000\r\n EXTENDED_LIMITS -10000000 20000000\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.ULONG.IDENTICAL\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.SLONG.IDENTICAL\r\n \"Scalar SLONG\"\r\n VALUE \r\n 0x81000C \r\n RL.FNC.SLONG.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.IDENTICAL \r\n -1000000 2000000\r\n EXTENDED_LIMITS -10000000 20000000\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.SLONG.IDENTICAL\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.FLOAT32_IEEE.IDENTICAL\r\n \"Scalar FLOAT32_IEEE\"\r\n VALUE \r\n 0x810010 \r\n RL.FNC.FLOAT32_IEEE.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.IDENTICAL \r\n 10 200\r\n EXTENDED_LIMITS 0 256\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.FLOAT32_IEEE.IDENTICAL\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.FLOAT64_IEEE.IDENTICAL\r\n \"Scalar FLOAT64_IEEE\"\r\n VALUE \r\n 0x810010 \r\n RL.FNC.FLOAT64_IEEE.ROW_DIR /* ROW_DIR / COLUMN_DIR is here exchangeable as only one value is stored */\r\n 0 \r\n CM.IDENTICAL \r\n -100 200\r\n EXTENDED_LIMITS -10000.0 20000.0\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.FLOAT64_IEEE.IDENTICAL\r\n /end CHARACTERISTIC\r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* Array Characteristics (Parameters) */\r\n/* */\r\n/* Note: */\r\n/* All examples are based on SWORD. For other data types see scalare parameters */\r\n/* */\r\n/* Note: */\r\n/* For curve are examples for all kind of axis available */\r\n/* For map, cuboid are examples with mixed axis types available */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n\r\n\r\n /begin CHARACTERISTIC ASAM.C.ARRAY.SWORD.MATRIX_DIM_3_4.ROW_DIR \r\n \"Array 3x4 of SWORD\"\r\n VAL_BLK \r\n 0x810100 \r\n RL.FNC.SWORD.ROW_DIR \r\n 0 \r\n CM.IDENTICAL \r\n -400 400\r\n EXTENDED_LIMITS -1000 1000\r\n MATRIX_DIM 3 4\r\n FORMAT \"%8.4\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.ARRAY.SWORD.MATRIX_DIM_3_4.ROW_DIR\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.ARRAY.SWORD.MATRIX_DIM_3_4.COLUMN_DIR \r\n \"Array 3x4 of SWORD\"\r\n VAL_BLK \r\n 0x810120 \r\n RL.FNC.SWORD.COLUMN_DIR \r\n 0 \r\n CM.IDENTICAL \r\n -400 400\r\n EXTENDED_LIMITS -1000 1000\r\n MATRIX_DIM 3 4\r\n FORMAT \"%8.4\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.ARRAY.SWORD.MATRIX_DIM_3_4.COLUMN_DIR\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.ARRAY.SWORD.MATRIX_DIM_6.ROW_DIR \r\n \"Array 6 of SWORD\"\r\n VAL_BLK \r\n 0x810140 \r\n RL.FNC.SWORD.ROW_DIR /* COLUMN_DIR results here in the same memory usage as only one dimension is used */\r\n 0 \r\n CM.IDENTICAL \r\n -400 400\r\n EXTENDED_LIMITS -1000 1000\r\n MATRIX_DIM 6\r\n FORMAT \"%8.4\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.ARRAY.SWORD.MATRIX_DIM_6.ROW_DIR\r\n /end CHARACTERISTIC\r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* ASCII Characteristics (Parameters) */\r\n/* */\r\n/* Note: */\r\n/* All examples are based on UBYTE. This is necessary for ASCII */\r\n/* */\r\n/* Note: */\r\n/* NUMBER shall state the maximum (fixed) size of memory available on the ECU */\r\n/* The string representation in the MCD tool is normally 0-terminated. There the string may be */\r\n/* limited earlier */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n /begin CHARACTERISTIC \r\n ASAM.C.ASCII.UBYTE.NUMBER_42\r\n \"ASCII string\" \r\n ASCII \r\n 0x810200\r\n RL.FNC.UBYTE.ROW_DIR \r\n 0 \r\n CM.IDENTICAL \r\n 0 255 \r\n NUMBER 42 \r\n DISPLAY_IDENTIFIER DI.ASAM.C.ASCII.UBYTE.NUMBER_42\r\n /end CHARACTERISTIC \r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* Curve, Map, Quboid Characteristics (Parameters) */\r\n/* */\r\n/* Note: */\r\n/* All examples are based on SWORD. For other data types see scalare parameters */\r\n/* It is allowed to use the same address for multiple characteristics. By this it is possible */\r\n/* to use different representations for the same internal values */\r\n/* */\r\n/* Note: */\r\n/* For curve are examples for all kind of axis available */\r\n/* For map, cuboid are examples with mixed axis types available */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n /begin CHARACTERISTIC ASAM.C.CURVE.STD_AXIS\r\n \"Curve with standard axis\"\r\n CURVE \r\n 0x810300 /* memory needed: 1x Byte for no of axis points, 8x Byte for axis points + 8x word for output values */\r\n RL.CURVE.SWORD.SBYTE.DECR /* Record layout that covers axis and FNC values */\r\n 0 \r\n CM.IDENTICAL \r\n -255 255 /* limit to a range that allows a multiplication with a byte (curve is used as input for a dependent parameter) */ \r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 8 \r\n -128 127\r\n MAX_GRAD 100.0\r\n /end AXIS_DESCR\r\n EXTENDED_LIMITS -32268 32267 /* extended range to test an overflow for the dependent calculation */\r\n FORMAT \"%8.3\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.CURVE.STD_AXIS\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.CURVE.STD_AXIS.DISCRETE\r\n \"Curve with standard axis\"\r\n CURVE \r\n 0x810300 /* memory needed: 1x Byte for no of axis points, 8x Byte for axis points + 8x word for output values */\r\n RL.CURVE.SWORD.SBYTE.DECR /* Record layout that covers axis and FNC values */\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267 \r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 8 \r\n -128 127\r\n /end AXIS_DESCR\r\n FORMAT \"%8.3\"\r\n DISCRETE\r\n DISPLAY_IDENTIFIER DI.ASAM.C.CURVE.STD_AXIS\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.CURVE.COM_AXIS\r\n \"Curve with common axis\"\r\n CURVE \r\n 0x810320\r\n RL.FNC.SWORD.ROW_DIR /* Record layout that covers FNC values */\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267\r\n /begin AXIS_DESCR\r\n COM_AXIS \r\n ASAM.M.SCALAR.UBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 8 /* will be overwritten by max number of axis points of AXIS_PTS */\r\n 0 255\r\n AXIS_PTS_REF ASAM.C.AXIS_PTS.UBYTE_8\r\n /end AXIS_DESCR\r\n DISPLAY_IDENTIFIER DI.ASAM.C.CURVE.COM_AXIS\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.CURVE.COM_AXIS_2\r\n \"Curve with common axis\"\r\n CURVE \r\n 0x810330\r\n RL.FNC.SWORD.ROW_DIR /* Record layout that covers FNC values */\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267\r\n /begin AXIS_DESCR\r\n COM_AXIS \r\n ASAM.M.SCALAR.UBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 8 /* will be overwritten by max number of axis points of AXIS_PTS */\r\n 0 255\r\n AXIS_PTS_REF ASAM.C.AXIS_PTS.UBYTE_8\r\n /end AXIS_DESCR\r\n DISPLAY_IDENTIFIER DI.ASAM.C.CURVE.COM_AXIS\r\n /end CHARACTERISTIC\r\n\r\n /begin AXIS_PTS ASAM.C.AXIS_PTS.UBYTE_8 \r\n \"\"\r\n 0x810340\r\n ASAM.M.SCALAR.UBYTE.IDENTICAL /* will be overwritten by input quantity of AXIS_DESCR */\r\n RL.AXIS_PTS.SBYTE.DECR /* Record layout that covers axis values */\r\n 0 \r\n CM.IDENTICAL /* will be overwritten by computation method of AXIS_DESCR */\r\n 8 \r\n 0 255\r\n DISPLAY_IDENTIFIER DI.ASAM.C.AXIS_PTS.UBYTE_8\r\n REF_MEMORY_SEGMENT Data1\r\n SYMBOL_LINK \"_VehicleSpeed\" 0\r\n /end AXIS_PTS\r\n\r\n /begin CHARACTERISTIC ASAM.C.CURVE.FIX_AXIS.PAR_DIST\r\n \"Curve with fix axis and FIX_AXIS_PAR_DIST\"\r\n CURVE \r\n 0x810350\r\n RL.FNC.SWORD.ROW_DIR /* Record layout that covers FNC values */\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267\r\n /begin AXIS_DESCR\r\n FIX_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 6 \r\n -128 127\r\n FIX_AXIS_PAR 0 4 6\r\n FIX_AXIS_PAR_DIST 1 1 6\r\n /begin FIX_AXIS_PAR_LIST 2 5 9\r\n /end FIX_AXIS_PAR_LIST\r\n /end AXIS_DESCR\r\n DISPLAY_IDENTIFIER DI.ASAM.C.CURVE.FIX_AXIS.PAR_DIST\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.CURVE.FIX_AXIS.PAR\r\n \"Curve with fix axis and FIX_AXIS_PAR\"\r\n CURVE \r\n 0x810360\r\n RL.FNC.SWORD.ROW_DIR /* Record layout that covers FNC values */\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267\r\n /begin AXIS_DESCR\r\n FIX_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 6 \r\n -128 127\r\n FIX_AXIS_PAR_DIST 0 4 6\r\n /end AXIS_DESCR\r\n DISPLAY_IDENTIFIER DI.ASAM.C.CURVE.FIX_AXIS.PAR\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.CURVE.FIX_AXIS.PAR_LIST\r\n \"Curve with fix axis and FIX_AXIS_PAR_LIST\"\r\n CURVE \r\n 0x810370\r\n RL.FNC.SWORD.ROW_DIR /* Record layout that covers FNC values */\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267\r\n /begin AXIS_DESCR\r\n FIX_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 6 /* shall match the number of axis points listed in FIX_AXIS_PAR_LIST */\r\n -128 127\r\n /begin FIX_AXIS_PAR_LIST\r\n -1 4 6 8 9 10\r\n /end FIX_AXIS_PAR_LIST\r\n /end AXIS_DESCR\r\n DISPLAY_IDENTIFIER DI.ASAM.C.CURVE.FIX_AXIS.PAR_LIST\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.CURVE.CURVE_AXIS\r\n \"Curve with curve axis\"\r\n CURVE \r\n 0x810380\r\n RL.FNC.SWORD.ROW_DIR /* Record layout that covers FNC values */\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267\r\n /begin AXIS_DESCR\r\n CURVE_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n NO_COMPU_METHOD /* CURVE_AXIS have no input conversion */ \r\n 8 /* will be overwritten by max number of axis points of AXIS_PTS */\r\n -128 127\r\n CURVE_AXIS_REF ASAM.C.CURVE_AXIS\r\n /end AXIS_DESCR\r\n DISPLAY_IDENTIFIER DI.ASAM.C.CURVE.COM_AXIS\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.CURVE_AXIS\r\n \"Curve used as axis\"\r\n CURVE \r\n 0x810390 \r\n RL.CURVE.SWORD.SBYTE.INCR /* Record layout that covers axis and FNC values */\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267 \r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 8 \r\n -128 127\r\n /end AXIS_DESCR\r\n DISPLAY_IDENTIFIER DI.ASAM.C.CURVE_AXIS\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.CURVE.RES_AXIS\r\n \"Curve with rescale axis\"\r\n CURVE \r\n 0x8103B0\r\n RL.FNC.SWORD.ROW_DIR /* Record layout that covers FNC values */\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267\r\n /begin AXIS_DESCR\r\n RES_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 9 /* will be overwritten by number of rescale pairs */\r\n 0 255\r\n AXIS_PTS_REF ASAM.C.AXIS_PTS.RESCALE\r\n /end AXIS_DESCR\r\n DISPLAY_IDENTIFIER DI.ASAM.C.CURVE.RES_AXIS\r\n /end CHARACTERISTIC\r\n\r\n /begin AXIS_PTS ASAM.C.AXIS_PTS.RESCALE \r\n \"Rescale Axis\" \r\n 0x8103D0\r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n RL.AXIS_PTS.RES_AXIS \r\n 0 \r\n CM.IDENTICAL \r\n 5 \r\n 0 255 \r\n DISPLAY_IDENTIFIER DI_0x83BA20.VTAB.RE_AXIS.X_RE_AXIS_xU8\r\n /end AXIS_PTS\r\n\r\n /begin CHARACTERISTIC ASAM.C.CURVE.STD_AXIS.MONOTONY_STRICT_INCREASE\r\n \"Curve with standard axis\"\r\n CURVE \r\n 0x810500 \r\n RL.CURVE.SWORD.SBYTE.DECR /* Record layout that covers axis and FNC values */\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267 \r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 8 \r\n -128 127\r\n MONOTONY STRICT_INCREASE /* allows only axis values strictly increasing */\r\n /end AXIS_DESCR\r\n FORMAT \"%8.3\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.CURVE.STD_AXIS.MONOTONY_STRICT_INCREASE\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.CURVE.STD_AXIS.MONOTONY_STRICT_DECREASE\r\n \"Curve with standard axis\"\r\n CURVE \r\n 0x810900 \r\n RL.CURVE.SWORD.SBYTE.DECR /* Record layout that covers axis and FNC values */\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267 \r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 8 \r\n -128 127\r\n MONOTONY STRICT_DECREASE /* allows only axis values strictly decreasing */\r\n /end AXIS_DESCR\r\n FORMAT \"%8.3\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.CURVE.STD_AXIS.MONOTONY_STRICT_DECREASE\r\n /end CHARACTERISTIC\r\n\r\n\r\n /begin CHARACTERISTIC ASAM.C.MAP.STD_AXIS.STD_AXIS\r\n \"Map with 2x standard axis\"\r\n MAP \r\n 0x810400 /* memory needed: 1x Byte for no of axis points, 8x Byte for axis points + 8x word for output values */\r\n RL.MAP.SWORD.SBYTE.SBYTE.INCR /* Record layout that covers axis and FNC values */\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267 \r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 4 \r\n -128 127\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.UBYTE.TAB_VERB_NO_DEFAULT_VALUE \r\n CM.TAB_VERB.NO_DEFAULT_VALUE /* shall be the same computation as used with the input quantity */ \r\n 5 \r\n -128 127\r\n /end AXIS_DESCR\r\n DISPLAY_IDENTIFIER DI.ASAM.C.MAP.STD_AXIS.STD_AXIS\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.MAP.STD_AXIS.STD_AXIS.DISCRETE\r\n \"Map with 2x standard axis\"\r\n MAP \r\n 0x810400 /* memory needed: 1x Byte for no of axis points, 8x Byte for axis points + 8x word for output values */\r\n RL.MAP.SWORD.SBYTE.SBYTE.INCR /* Record layout that covers axis and FNC values */\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267 \r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 4 \r\n -128 127\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.UBYTE.TAB_VERB_NO_DEFAULT_VALUE \r\n CM.TAB_VERB.NO_DEFAULT_VALUE /* shall be the same computation as used with the input quantity */ \r\n 5 \r\n -128 127\r\n /end AXIS_DESCR\r\n DISPLAY_IDENTIFIER DI.ASAM.C.MAP.STD_AXIS.STD_AXIS\r\n DISCRETE\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.MAP.COM_AXIS.FIX_AXIS\r\n \"Map with 1x standard axis and 1x fix axis\"\r\n MAP \r\n 0x810440 /* memory needed: 1x Byte for no of axis points, 8x Byte for axis points + 8x word for output values */\r\n RL.FNC.SWORD.ROW_DIR /* Record layout that covers FNC values */\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267 \r\n /begin AXIS_DESCR\r\n COM_AXIS \r\n ASAM.M.SCALAR.UBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 8 /* will be overwritten by max number of axis points of AXIS_PTS */\r\n 0 255\r\n AXIS_PTS_REF ASAM.C.AXIS_PTS.UBYTE_8\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n FIX_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 3 \r\n -128 127\r\n FIX_AXIS_PAR_DIST 1 1 3\r\n /end AXIS_DESCR\r\n DISPLAY_IDENTIFIER DI.ASAM.C.MAP.COM_AXIS.FIX_AXIS\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.CUBOID.COM_AXIS.FIX_AXIS.STD_AXIS\r\n \"\"\r\n CUBOID \r\n 0x810730 \r\n RL.CUBOID.SWORD.SBYTE.DECR /* Record layout that covers FNC values + STD axis */\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267 \r\n /begin AXIS_DESCR\r\n COM_AXIS \r\n ASAM.M.SCALAR.UBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 8 \r\n 0 255\r\n AXIS_PTS_REF ASAM.C.AXIS_PTS.UBYTE_8\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n FIX_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 3 \r\n -128 127\r\n FIX_AXIS_PAR_DIST 1 1 3\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 4 \r\n -128 127\r\n /end AXIS_DESCR\r\n DISPLAY_IDENTIFIER DI.ASAM.C.CUBOID.COM_AXIS.FIX_AXIS.STD_AXIS\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.CUBOID.ROW_DIR\r\n \"CUBOID with row oriented record layout\"\r\n CUBOID \r\n 0x810530 \r\n RL.CUBOID.ROW_DIR /* Record layout that covers FNC values + STD axis */\r\n 0 \r\n CM.IDENTICAL \r\n -127 128 \r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 2 \r\n -128 127\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 3 \r\n -128 127\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 4 \r\n -128 127\r\n /end AXIS_DESCR\r\n DISPLAY_IDENTIFIER DI.ASAM.C.CUBOID.ROW_DIR\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.CUBOID.COLUMN_DIR\r\n \"CUBOID with column oriented record layout\"\r\n CUBOID \r\n 0x810560 \r\n RL.CUBOID.COLUMN_DIR /* Record layout that covers FNC values + STD axis */\r\n 0 \r\n CM.IDENTICAL \r\n -127 128 \r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 2 \r\n -128 127\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 3 \r\n -128 127\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 4 \r\n -128 127\r\n /end AXIS_DESCR\r\n DISPLAY_IDENTIFIER DI.ASAM.C.CUBOID.COLUMN_DIR\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.CUBE_4.ROW_DIR\r\n \"CUBE_4 with row oriented record layout\"\r\n CUBE_4\r\n 0x810590 \r\n RL.CUBE_4.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n -127 128 \r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL\r\n 2 \r\n -128 127\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL\r\n 3 \r\n -128 127\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL\r\n 4 \r\n -128 127\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL\r\n 2 \r\n -128 127\r\n /end AXIS_DESCR\r\n DISPLAY_IDENTIFIER DI.ASAM.C.CUBE_4.ROW_DIR\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.CUBE_4.COLUMN_DIR\r\n \"CUBW_4 with column oriented record layout\"\r\n CUBE_4 \r\n 0x8105F0 \r\n RL.CUBE_4.COLUMN_DIR\r\n 0 \r\n CM.IDENTICAL \r\n -127 128 \r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL\r\n 2 \r\n -128 127\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL\r\n 3 \r\n -128 127\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL\r\n 4 \r\n -128 127\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL\r\n 2 \r\n -128 127\r\n /end AXIS_DESCR\r\n DISPLAY_IDENTIFIER DI.ASAM.C.CUBE_4.COLUMN_DIR\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.MAP.COM_AXIS.FIX_AXIS_2\r\n \"Map with 1x standard axis and 1x fix axis\" /* used as input for ASAM.C.DEPENDENT.MAP_4 - same axes, same dimensions as ASAM.C.MAP.COM_AXIS.FIX_AXIS */\r\n MAP \r\n 0x810700 \r\n RL.FNC.SWORD.ROW_DIR \r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267 \r\n /begin AXIS_DESCR\r\n COM_AXIS \r\n ASAM.M.SCALAR.UBYTE.IDENTICAL \r\n CM.IDENTICAL \r\n 8 \r\n 0 255\r\n AXIS_PTS_REF ASAM.C.AXIS_PTS.UBYTE_8\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n FIX_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL \r\n 3 \r\n -128 127\r\n FIX_AXIS_PAR_DIST 1 1 3\r\n /end AXIS_DESCR\r\n DISPLAY_IDENTIFIER DI.ASAM.C.MAP.COM_AXIS.FIX_AXIS_2\r\n /begin MAP_LIST \r\n ASAM.C.MAP.COM_AXIS.FIX_AXIS_2 \r\n ASAM.C.MAP.COM_AXIS.FIX_AXIS_3 \r\n ASAM.C.MAP.COM_AXIS.FIX_AXIS_4\r\n /end MAP_LIST\r\n MAX_REFRESH 100 5\r\n /end CHARACTERISTIC\r\n\r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* Dependent Characteristics (Parameters) */\r\n/* */\r\n/* Note: */\r\n/* The value of the dependent parameter is located in the ECU memory. */\r\n/* The MCD tool updates the value when the source value is changed */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n\r\n /begin CHARACTERISTIC ASAM.C.DEPENDENT.REF_1.SWORD\r\n \"Dependent SWORD\" \r\n VALUE \r\n 0x811000 /* dependent parameter is located in the ECU memory. The MCD tool updated the value when the source value is changed */\r\n RL.FNC.SWORD.ROW_DIR /* SWORD needed to cover the result of the dependent calculation */\r\n 0 \r\n CM.IDENTICAL\r\n -32268 32267\r\n /begin DEPENDENT_CHARACTERISTIC \r\n \"X1 + 5\" \r\n ASAM.C.SCALAR.SBYTE.IDENTICAL /* used as input X1 variable in the dependent formula */\r\n /end DEPENDENT_CHARACTERISTIC\r\n DISPLAY_IDENTIFIER DI.ASAM.C.DEPENDENT.REF_1.SWORD\r\n /end CHARACTERISTIC \r\n\r\n /begin CHARACTERISTIC ASAM.C.DEPENDENT.REF_2.UWORD\r\n \"Dependent UWORD\" \r\n VALUE \r\n 0x811102 \r\n RL.FNC.UWORD.ROW_DIR /* UWORD needed to cover the result of the dependent calculation */\r\n 0 \r\n CM.IDENTICAL\r\n 0.0 65535.0 \r\n /begin DEPENDENT_CHARACTERISTIC \r\n \"X1 + 25\" \r\n ASAM.C.SCALAR.UBYTE.IDENTICAL\r\n /end DEPENDENT_CHARACTERISTIC\r\n DISPLAY_IDENTIFIER DI.ASAM.C.DEPENDENT.REF_2.UWORD\r\n /end CHARACTERISTIC \r\n\r\n /begin CHARACTERISTIC ASAM.C.DEPENDENT.REF_3.SWORD\r\n \"Dependent UWORD\" \r\n VALUE \r\n 0x811104 \r\n RL.FNC.SWORD.ROW_DIR /* SWORD needed to cover the result of the dependent calculation */\r\n 0 \r\n CM.IDENTICAL\r\n -32268 32267\r\n /begin DEPENDENT_CHARACTERISTIC \r\n \"X1 + X2\" \r\n ASAM.C.DEPENDENT.REF_1.SWORD\r\n ASAM.C.DEPENDENT.REF_2.UWORD\r\n /end DEPENDENT_CHARACTERISTIC\r\n DISPLAY_IDENTIFIER DI.ASAM.C.DEPENDENT.REF_3.SWORD\r\n /end CHARACTERISTIC \r\n\r\n /begin CHARACTERISTIC ASAM.C.DEPENDENT.REF_4.FLOAT64_IEEE\r\n \"Dependent UWORD\" \r\n VALUE \r\n 0x811110 \r\n RL.FNC.FLOAT64_IEEE.ROW_DIR /* SWORD needed to cover the result of the dependent calculation */\r\n 0 \r\n CM.IDENTICAL\r\n -32268 32267\r\n /begin DEPENDENT_CHARACTERISTIC \r\n \"X1 + sysc(System_Constant_1)\"\r\n ASAM.C.DEPENDENT.REF_1.SWORD\r\n /end DEPENDENT_CHARACTERISTIC\r\n DISPLAY_IDENTIFIER DI.ASAM.C.DEPENDENT.REF_4.FLOAT64_IEEE\r\n FORMAT \"%8.2\"\r\n /end CHARACTERISTIC \r\n\r\n /begin CHARACTERISTIC ASAM.C.DEPENDENT.REF_5.FLOAT64_IEEE\r\n \"Dependent UWORD\" \r\n VALUE \r\n 0x811108 \r\n RL.FNC.FLOAT64_IEEE.ROW_DIR /* SWORD needed to cover the result of the dependent calculation */\r\n 0 \r\n CM.IDENTICAL\r\n -10000.0 10000.0\r\n /begin DEPENDENT_CHARACTERISTIC \r\n \"X1 * 2\" \r\n ASAM.C.VIRTUAL.SYSTEM_CONSTANT_1\r\n /end DEPENDENT_CHARACTERISTIC\r\n DISPLAY_IDENTIFIER DI.ASAM.C.DEPENDENT.REF_5.FLOAT64_IEEE\r\n FORMAT \"%8.2\"\r\n /end CHARACTERISTIC \r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* Complex Dependent Characteristics (ASAP2 V1.7.1) */\r\n/* */\r\n/* Note: */\r\n/* The value of the dependent parameter is located in the ECU memory. */\r\n/* The MCD tool updates the value when the source value is changed */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n /begin CHARACTERISTIC ASAM.C.DEPENDENT.CURVE_1\r\n \"Dependent curve: CHARACTERISTIC ASAM.C.CURVE.STD_AXIS\"\r\n CURVE \r\n 0x811120 \r\n RL.CURVE.SWORD.SBYTE.DECR /* Record layout should support the calculated values */\r\n 0 \r\n CM.IDENTICAL /* Dependency is calculated physically. It makes sense to use the same conversion as the source characteristic */ \r\n -32268 32267 \r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* Dependency is calculated physically. It makes sense to use the same conversion as the source characteristic */ \r\n 8 /* max axis points should support the number of axis points of the source */\r\n -128 127\r\n /end AXIS_DESCR\r\n /begin DEPENDENT_CHARACTERISTIC \r\n \"X1\"\r\n ASAM.C.CURVE.STD_AXIS\r\n /end DEPENDENT_CHARACTERISTIC\r\n FORMAT \"%8.3\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.DEPENDENT.CURVE_2\r\n \"Dependent curve: CHARACTERISTIC ASAM.C.CURVE.STD_AXIS * 2\"\r\n CURVE \r\n 0x811140 \r\n RL.CURVE.SWORD.SBYTE.DECR\r\n 0 \r\n CM.IDENTICAL\r\n -32268 32267 \r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL\r\n 8\r\n -128 127\r\n /end AXIS_DESCR\r\n /begin DEPENDENT_CHARACTERISTIC \r\n \"X1 * 2\" /* only the output values are calculated by the formula, the axis values remain identical to the source */\r\n ASAM.C.CURVE.STD_AXIS\r\n /end DEPENDENT_CHARACTERISTIC\r\n FORMAT \"%8.3\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.DEPENDENT.CURVE_3\r\n \"Dependent curve: (CHARACTERISTIC ASAM.C.SCALAR.SBYTE.IDENTICAL * ASAM.C.CURVE.STD_AXIS) - ASAM.C.SCALAR.UBYTE.IDENTICAL\"\r\n CURVE \r\n 0x811160 \r\n RL.CURVE.SWORD.SBYTE.DECR\r\n 0 \r\n CM.IDENTICAL\r\n -32268 32267 \r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL\r\n 8\r\n -128 127\r\n /end AXIS_DESCR\r\n /begin DEPENDENT_CHARACTERISTIC \r\n \"X1 * X2 - X3\" \r\n ASAM.C.SCALAR.SBYTE.IDENTICAL\r\n ASAM.C.CURVE.STD_AXIS\r\n ASAM.C.SCALAR.UBYTE.IDENTICAL\r\n /end DEPENDENT_CHARACTERISTIC\r\n FORMAT \"%8.3\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.DEPENDENT.CURVE_4\r\n \"Dependent curve: ASAM.C.CURVE.COM_AXIS + ASAM.C.CURVE.COM_AXIS_2\"\r\n CURVE \r\n 0x811180 \r\n RL.FNC.SWORD.ROW_DIR /* Record layout that covers FNC values */\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267\r\n /begin AXIS_DESCR\r\n COM_AXIS \r\n NO_INPUT_QUANTITY \r\n CM.IDENTICAL \r\n 8 \r\n 0 255\r\n AXIS_PTS_REF ASAM.C.AXIS_PTS.UBYTE_8 /* same common axis as the source curves to avoid conflicts when the axis changes */\r\n /end AXIS_DESCR\r\n /begin DEPENDENT_CHARACTERISTIC \r\n \"X1 + X2\" \r\n ASAM.C.CURVE.COM_AXIS /* use curves with the same common axis to avoid conflicts when the axis changes */\r\n ASAM.C.CURVE.COM_AXIS_2\r\n /end DEPENDENT_CHARACTERISTIC\r\n FORMAT \"%8.3\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.DEPENDENT.MAP_1\r\n \"Dependent map: ASAM.C.MAP.STD_AXIS.STD_AXIS\"\r\n MAP \r\n 0x811200\r\n RL.MAP.SWORD.SBYTE.SBYTE.INCR\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267 \r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n NO_INPUT_QUANTITY \r\n CM.IDENTICAL\r\n 4 \r\n -128 127\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n NO_INPUT_QUANTITY \r\n CM.TAB_VERB.NO_DEFAULT_VALUE\r\n 5 \r\n -128 127\r\n /end AXIS_DESCR\r\n /begin DEPENDENT_CHARACTERISTIC \r\n \"X1\"\r\n ASAM.C.MAP.STD_AXIS.STD_AXIS\r\n /end DEPENDENT_CHARACTERISTIC\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.DEPENDENT.MAP_2\r\n \"Dependent map: 2 * ASAM.C.MAP.STD_AXIS.STD_AXIS\"\r\n MAP \r\n 0x811240\r\n RL.MAP.SWORD.SBYTE.SBYTE.INCR\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267 \r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n NO_INPUT_QUANTITY \r\n CM.IDENTICAL\r\n 4 \r\n -128 127\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n NO_INPUT_QUANTITY \r\n CM.TAB_VERB.NO_DEFAULT_VALUE\r\n 5 \r\n -128 127\r\n /end AXIS_DESCR\r\n /begin DEPENDENT_CHARACTERISTIC \r\n \"2 * X1\"\r\n ASAM.C.MAP.STD_AXIS.STD_AXIS\r\n /end DEPENDENT_CHARACTERISTIC\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.DEPENDENT.MAP_3\r\n \"Dependent map: (ASAM.C.SCALAR.SBYTE.IDENTICAL * ASAM.C.MAP.STD_AXIS.STD_AXIS) - ASAM.C.SCALAR.UBYTE.IDENTICAL\"\r\n MAP \r\n 0x811280\r\n RL.MAP.SWORD.SBYTE.SBYTE.INCR\r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267 \r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n NO_INPUT_QUANTITY \r\n CM.IDENTICAL\r\n 4 \r\n -128 127\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n STD_AXIS \r\n NO_INPUT_QUANTITY \r\n CM.TAB_VERB.NO_DEFAULT_VALUE\r\n 5 \r\n -128 127\r\n /end AXIS_DESCR\r\n /begin DEPENDENT_CHARACTERISTIC \r\n \"X1 * X2 - X3\"\r\n ASAM.C.SCALAR.SBYTE.IDENTICAL\r\n ASAM.C.MAP.STD_AXIS.STD_AXIS\r\n ASAM.C.SCALAR.UBYTE.IDENTICAL\r\n /end DEPENDENT_CHARACTERISTIC\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.DEPENDENT.MAP_4\r\n \"Dependent map: ASAM.C.MAP.COM_AXIS.FIX_AXIS + ASAM.C.MAP.COM_AXIS.FIX_AXIS_2\"\r\n MAP \r\n 0x8112C0 \r\n RL.FNC.SWORD.ROW_DIR \r\n 0 \r\n CM.IDENTICAL \r\n -32268 32267 \r\n /begin AXIS_DESCR\r\n COM_AXIS \r\n ASAM.M.SCALAR.UBYTE.IDENTICAL \r\n CM.IDENTICAL \r\n 8 \r\n 0 255\r\n AXIS_PTS_REF ASAM.C.AXIS_PTS.UBYTE_8\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n FIX_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL \r\n 3 \r\n -128 127\r\n FIX_AXIS_PAR_DIST 1 1 3\r\n /end AXIS_DESCR\r\n /begin DEPENDENT_CHARACTERISTIC \r\n \"X1 + X2\"\r\n ASAM.C.MAP.COM_AXIS.FIX_AXIS\r\n ASAM.C.MAP.COM_AXIS.FIX_AXIS_2\r\n /end DEPENDENT_CHARACTERISTIC\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.DEPENDENT.ARRAY_1 \r\n \"Dependent array: ASAM.C.ARRAY.SWORD.MATRIX_DIM_3_4.ROW_DIR\"\r\n VAL_BLK \r\n 0x811300 \r\n RL.FNC.SWORD.ROW_DIR \r\n 0 \r\n CM.IDENTICAL \r\n -400 400\r\n EXTENDED_LIMITS -1000 1000\r\n MATRIX_DIM 3 4\r\n FORMAT \"%8.4\"\r\n /begin DEPENDENT_CHARACTERISTIC \r\n \"X1\"\r\n ASAM.C.ARRAY.SWORD.MATRIX_DIM_3_4.ROW_DIR\r\n /end DEPENDENT_CHARACTERISTIC\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.DEPENDENT.ARRAY_2 \r\n \"Dependent array: 2 * ASAM.C.ARRAY.SWORD.MATRIX_DIM_3_4.ROW_DIR\"\r\n VAL_BLK \r\n 0x811340 \r\n RL.FNC.SWORD.ROW_DIR \r\n 0 \r\n CM.IDENTICAL \r\n -400 400\r\n EXTENDED_LIMITS -1000 1000\r\n MATRIX_DIM 3 4\r\n FORMAT \"%8.4\"\r\n /begin DEPENDENT_CHARACTERISTIC \r\n \"2 * X1\"\r\n ASAM.C.ARRAY.SWORD.MATRIX_DIM_3_4.ROW_DIR\r\n /end DEPENDENT_CHARACTERISTIC\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.DEPENDENT.ARRAY_3 \r\n \"Dependent array: (ASAM.C.SCALAR.SBYTE.IDENTICAL * ASAM.C.ARRAY.SWORD.MATRIX_DIM_3_4.ROW_DIR) - ASAM.C.SCALAR.UBYTE.IDENTICAL\"\r\n VAL_BLK \r\n 0x811380 \r\n RL.FNC.SWORD.ROW_DIR \r\n 0 \r\n CM.IDENTICAL \r\n -400 400\r\n EXTENDED_LIMITS -1000 1000\r\n MATRIX_DIM 3 4\r\n FORMAT \"%8.4\"\r\n /begin DEPENDENT_CHARACTERISTIC \r\n \"X1 * X2 - X3\"\r\n ASAM.C.SCALAR.SBYTE.IDENTICAL\r\n ASAM.C.ARRAY.SWORD.MATRIX_DIM_3_4.ROW_DIR\r\n ASAM.C.SCALAR.UBYTE.IDENTICAL\r\n /end DEPENDENT_CHARACTERISTIC\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.DEPENDENT.ARRAY_4 \r\n \"Dependent array: ASAM.C.ARRAY.SWORD.MATRIX_DIM_3_4.ROW_DIR + ASAM.C.ARRAY.SWORD.MATRIX_DIM_3_4.COLUMN_DIR\"\r\n VAL_BLK \r\n 0x8113C0 \r\n RL.FNC.SWORD.COLUMN_DIR \r\n 0 \r\n CM.IDENTICAL \r\n -400 400\r\n EXTENDED_LIMITS -1000 1000\r\n MATRIX_DIM 3 4\r\n FORMAT \"%8.4\"\r\n /begin DEPENDENT_CHARACTERISTIC \r\n \"X1 + X2\"\r\n ASAM.C.ARRAY.SWORD.MATRIX_DIM_3_4.ROW_DIR\r\n ASAM.C.ARRAY.SWORD.MATRIX_DIM_3_4.COLUMN_DIR\r\n /end DEPENDENT_CHARACTERISTIC\r\n /end CHARACTERISTIC\r\n\r\n\r\n\r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* Virtual Characteristics (Parameters) */\r\n/* */\r\n/* Note: */\r\n/* The value of the virtual parameter is not located in the ECU memory. It is only visible */\r\n/* in the MCD tool */\r\n/* The MCD tool updates the value when the source value is changed */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n\r\n /begin CHARACTERISTIC ASAM.C.VIRTUAL.REF_1.SWORD\r\n \"Virtual SWORD\" \r\n VALUE \r\n 0x0 /* address is 0 as the virtual value is not part of the ECU or the hex file */\r\n RL.FNC.SWORD.ROW_DIR /* SWORD needed to cover the result of the dependent calculation */\r\n 0 \r\n CM.IDENTICAL\r\n 0 255\r\n /begin VIRTUAL_CHARACTERISTIC \r\n \"X1 - 9\" \r\n ASAM.C.SCALAR.SBYTE.IDENTICAL /* used as input X1 variable in teh dependent formula */\r\n /end VIRTUAL_CHARACTERISTIC\r\n DISPLAY_IDENTIFIER DI.ASAM.C.VIRTUAL.REF_1.SWORD\r\n /end CHARACTERISTIC \r\n\r\n /begin CHARACTERISTIC ASAM.C.VIRTUAL.REF_2.UWORD\r\n \"Virtual UWORD\" \r\n VALUE \r\n 0x0 /* address is 0 as the virtual value is not part of the ECU or the hex file */\r\n RL.FNC.UWORD.ROW_DIR /* UWORD needed to cover the result of the dependent calculation */\r\n 0 \r\n CM.IDENTICAL\r\n 0.0 255.0 \r\n /begin VIRTUAL_CHARACTERISTIC \r\n \"X1 + 19\" \r\n ASAM.C.SCALAR.UBYTE.IDENTICAL\r\n /end VIRTUAL_CHARACTERISTIC\r\n DISPLAY_IDENTIFIER DI.ASAM.C.VIRTUAL.REF_2.UWORD\r\n /end CHARACTERISTIC \r\n\r\n /begin CHARACTERISTIC ASAM.C.VIRTUAL.REF_3.SWORD\r\n \"Virtual UWORD\" \r\n VALUE \r\n 0x0 /* address is 0 as the virtual value is not part of the ECU or the hex file */\r\n RL.FNC.SWORD.ROW_DIR /* SWORD needed to cover the result of the dependent calculation */\r\n 0 \r\n CM.IDENTICAL\r\n 0.0 255.0 \r\n /begin VIRTUAL_CHARACTERISTIC \r\n \"X1 + X2\" \r\n ASAM.C.VIRTUAL.REF_1.SWORD\r\n ASAM.C.VIRTUAL.REF_2.UWORD\r\n /end VIRTUAL_CHARACTERISTIC\r\n DISPLAY_IDENTIFIER DI.ASAM.C.VIRTUAL.REF_3.SWORD\r\n /end CHARACTERISTIC \r\n\r\n /begin CHARACTERISTIC ASAM.C.VIRTUAL.SYSTEM_CONSTANT_1 \r\n \"Virtual value including a system constant in the calculation formula\"\r\n VALUE\r\n 0x0 /* address is 0 as the virtual value is not part of the ECU or the hex file */\r\n RL.FNC.FLOAT64_IEEE.ROW_DIR /* Float needed to cover the result of the dependent calculation */\r\n 0 \r\n CM.IDENTICAL\r\n 0.0 255.0 \r\n /begin VIRTUAL_CHARACTERISTIC\r\n \"X1 + sysc(System_Constant_1)\" /* system constant needs to contain a valid number. Otherwise the calculation leeds to an error */\r\n ASAM.C.SCALAR.UBYTE.IDENTICAL\r\n /end VIRTUAL_CHARACTERISTIC \r\n DISPLAY_IDENTIFIER DI.ASAM.C.VIRTUAL.SYSTEM_CONSTANT_1\r\n FORMAT \"%8.2\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC F_INJ_COR\r\n \"\"\r\n CURVE\r\n 0x7140\r\n REC12\r\n 10.0\r\n C_INJF\r\n 0.0\r\n 199.0\r\n GUARD_RAILS\r\n /end CHARACTERISTIC\r\n\r\n /begin FRAME\r\n ABS_ADJUSTM\r\n \"\"\r\n 3\r\n 2\r\n FRAME_MEASUREMENT\r\n LOOP_COUNTER TEMPORARY_1\r\n /end FRAME\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* Functions */\r\n/* */\r\n/* Note: */\r\n/* Each parameter shall be defined (DEF_CHARACTERISTIC) only one time! */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n /begin FUNCTION FunctionScalar \"\"\r\n FUNCTION_VERSION \"BG5.0815\"\r\n /begin AR_COMPONENT \"testComponent\"\r\n AR_PROTOTYPE_OF \"DerivedFromTestComponent\"\r\n /end AR_COMPONENT\r\n\r\n /begin SUB_FUNCTION\r\n FunctionDependentParameters\r\n /end SUB_FUNCTION \r\n /begin DEF_CHARACTERISTIC\r\n ASAM.C.SCALAR.FLOAT32_IEEE.IDENTICAL\r\n ASAM.C.SCALAR.FLOAT64_IEEE.IDENTICAL\r\n ASAM.C.SCALAR.SBYTE.IDENTICAL\r\n ASAM.C.SCALAR.SLONG.IDENTICAL\r\n ASAM.C.SCALAR.SWORD.FORM_X_PLUS_4\r\n ASAM.C.SCALAR.SWORD.IDENTICAL\r\n ASAM.C.SCALAR.SWORD.LINEAR_MUL_2\r\n ASAM.C.SCALAR.SWORD.RAT_FUNC_DIV_10\r\n ASAM.C.SCALAR.SWORD.RAT_FUNC_DIV_81_9175\r\n ASAM.C.SCALAR.SWORD.TAB_INTP_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.TAB_INTP_NO_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.TAB_NOINTP_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.TAB_NOINTP_NO_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.TAB_VERB_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.TAB_VERB_NO_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.VTAB_RANGE_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.VTAB_RANGE_NO_DEFAULT_VALUE\r\n ASAM.C.SCALAR.UBYTE.IDENTICAL\r\n ASAM.C.SCALAR.ULONG.IDENTICAL\r\n ASAM.C.SCALAR.UWORD.IDENTICAL\r\n ASAM.C.SCALAR.UWORD.IDENTICAL.BITMASK_0001\r\n ASAM.C.SCALAR.UWORD.IDENTICAL.BITMASK_0010\r\n ASAM.C.SCALAR.UWORD.IDENTICAL.BITMASK_0FF0\r\n /end DEF_CHARACTERISTIC\r\n /end FUNCTION\r\n\r\n /begin FUNCTION FunctionDependentParameters \"\"\r\n /begin REF_CHARACTERISTIC\r\n ASAM.C.SCALAR.UBYTE.IDENTICAL\r\n ASAM.C.SCALAR.SBYTE.IDENTICAL\r\n /end REF_CHARACTERISTIC\r\n /begin DEF_CHARACTERISTIC\r\n ASAM.C.DEPENDENT.REF_1.SWORD\r\n ASAM.C.DEPENDENT.REF_2.UWORD\r\n ASAM.C.DEPENDENT.REF_3.SWORD\r\n ASAM.C.DEPENDENT.REF_4.FLOAT64_IEEE\r\n ASAM.C.DEPENDENT.REF_5.FLOAT64_IEEE\r\n /end DEF_CHARACTERISTIC\r\n /end FUNCTION\r\n\r\n /begin FUNCTION FunctionComplexDependentArrays \"\"\r\n /begin REF_CHARACTERISTIC\r\n ASAM.C.ARRAY.SWORD.MATRIX_DIM_3_4.COLUMN_DIR\r\n ASAM.C.ARRAY.SWORD.MATRIX_DIM_3_4.ROW_DIR\r\n /end REF_CHARACTERISTIC\r\n /begin DEF_CHARACTERISTIC\r\n ASAM.C.DEPENDENT.ARRAY_1\r\n ASAM.C.DEPENDENT.ARRAY_2\r\n ASAM.C.DEPENDENT.ARRAY_3\r\n ASAM.C.DEPENDENT.ARRAY_4\r\n /end DEF_CHARACTERISTIC\r\n /end FUNCTION\r\n\r\n /begin FUNCTION FunctionComplexDependentMaps \"\"\r\n /begin REF_CHARACTERISTIC\r\n ASAM.C.SCALAR.SBYTE.IDENTICAL\r\n ASAM.C.SCALAR.UBYTE.IDENTICAL\r\n ASAM.C.MAP.COM_AXIS.FIX_AXIS\r\n ASAM.C.MAP.COM_AXIS.FIX_AXIS_2\r\n /end REF_CHARACTERISTIC\r\n /begin DEF_CHARACTERISTIC\r\n ASAM.C.DEPENDENT.MAP_1\r\n ASAM.C.DEPENDENT.MAP_2\r\n ASAM.C.DEPENDENT.MAP_3\r\n ASAM.C.DEPENDENT.MAP_4\r\n /end DEF_CHARACTERISTIC\r\n /end FUNCTION\r\n\r\n /begin FUNCTION FunctionComplexDependentCurves \"\"\r\n /begin REF_CHARACTERISTIC\r\n ASAM.C.SCALAR.SBYTE.IDENTICAL\r\n ASAM.C.SCALAR.UBYTE.IDENTICAL\r\n ASAM.C.AXIS_PTS.UBYTE_8\r\n ASAM.C.CURVE.COM_AXIS\r\n ASAM.C.CURVE.COM_AXIS_2\r\n ASAM.C.CURVE.STD_AXIS\r\n /end REF_CHARACTERISTIC\r\n /begin DEF_CHARACTERISTIC\r\n ASAM.C.DEPENDENT.CURVE_1\r\n ASAM.C.DEPENDENT.CURVE_2\r\n ASAM.C.DEPENDENT.CURVE_3\r\n ASAM.C.DEPENDENT.CURVE_4\r\n /end DEF_CHARACTERISTIC\r\n /end FUNCTION\r\n\r\n /begin FUNCTION FunctionCurve \"\"\r\n /begin DEF_CHARACTERISTIC\r\n ASAM.C.CURVE.STD_AXIS.DISCRETE\r\n ASAM.C.CURVE.RES_AXIS\r\n /end DEF_CHARACTERISTIC\r\n /begin IN_MEASUREMENT\r\n ASAM.M.SCALAR.SBYTE.IDENTICAL\r\n /end IN_MEASUREMENT\r\n /end FUNCTION\r\n\r\n /begin FUNCTION FunctionCurveAxis \"\"\r\n /begin DEF_CHARACTERISTIC\r\n ASAM.C.CURVE_AXIS\r\n ASAM.C.CURVE.CURVE_AXIS\r\n /end DEF_CHARACTERISTIC\r\n /begin IN_MEASUREMENT\r\n ASAM.M.SCALAR.SBYTE.IDENTICAL\r\n /end IN_MEASUREMENT\r\n /end FUNCTION\r\n\r\n /begin FUNCTION FunctionMap \"\"\r\n /begin DEF_CHARACTERISTIC\r\n ASAM.C.MAP.COM_AXIS.FIX_AXIS\r\n ASAM.C.MAP.STD_AXIS.STD_AXIS\r\n ASAM.C.MAP.STD_AXIS.STD_AXIS.DISCRETE\r\n /end DEF_CHARACTERISTIC\r\n /begin IN_MEASUREMENT\r\n ASAM.M.SCALAR.SBYTE.IDENTICAL\r\n ASAM.M.SCALAR.UBYTE.TAB_VERB_NO_DEFAULT_VALUE\r\n /end IN_MEASUREMENT\r\n /end FUNCTION\r\n\r\n /begin FUNCTION FunctionCuboid \"\"\r\n /begin DEF_CHARACTERISTIC\r\n ASAM.C.CUBOID.COM_AXIS.FIX_AXIS.STD_AXIS\r\n /end DEF_CHARACTERISTIC\r\n /begin IN_MEASUREMENT\r\n ASAM.M.SCALAR.SBYTE.IDENTICAL\r\n /end IN_MEASUREMENT\r\n /end FUNCTION\r\n\r\n /begin FUNCTION FunctionVirtualMeasurements \"\"\r\n /begin IN_MEASUREMENT\r\n ASAM.M.SCALAR.SBYTE.LINEAR_MUL_2\r\n /end IN_MEASUREMENT\r\n /begin OUT_MEASUREMENT\r\n ASAM.M.VIRTUAL.SCALAR.SWORD.PHYSICAL\r\n /end OUT_MEASUREMENT\r\n /end FUNCTION\r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* Groups */\r\n/* */\r\n/* Note: */\r\n/* For GROUP there is no special sorting defined */\r\n/* It is up to the user to define one ore more sortings */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n /begin GROUP Group_Type_All \"contains all groups with special types\"\r\n ROOT\r\n /begin SUB_GROUP\r\n Group_Type_Scalar\r\n Group_Type_Array\r\n Group_Type_Curve\r\n Group_Type_Map\r\n Group_Type_Cuboid\r\n Group_Type_ASCII\r\n /end SUB_GROUP\r\n /end GROUP\r\n\r\n /begin GROUP Group_Type_Scalar \"Contains all scalar measurements and parameters\"\r\n /begin REF_CHARACTERISTIC\r\n ASAM.C.SCALAR.FLOAT32_IEEE.IDENTICAL\r\n ASAM.C.SCALAR.FLOAT64_IEEE.IDENTICAL\r\n ASAM.C.SCALAR.SBYTE.IDENTICAL\r\n ASAM.C.SCALAR.SLONG.IDENTICAL\r\n ASAM.C.SCALAR.SWORD.FORM_X_PLUS_4\r\n ASAM.C.SCALAR.SWORD.IDENTICAL\r\n ASAM.C.SCALAR.SWORD.LINEAR_MUL_2\r\n ASAM.C.SCALAR.SWORD.RAT_FUNC_DIV_10\r\n ASAM.C.SCALAR.SWORD.RAT_FUNC_DIV_81_9175\r\n ASAM.C.SCALAR.SWORD.TAB_INTP_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.TAB_INTP_NO_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.TAB_NOINTP_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.TAB_NOINTP_NO_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.TAB_VERB_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.TAB_VERB_NO_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.VTAB_RANGE_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.VTAB_RANGE_NO_DEFAULT_VALUE\r\n ASAM.C.SCALAR.UBYTE.IDENTICAL\r\n ASAM.C.SCALAR.ULONG.IDENTICAL\r\n ASAM.C.SCALAR.UWORD.IDENTICAL\r\n ASAM.C.SCALAR.UWORD.IDENTICAL.BITMASK_0001\r\n ASAM.C.SCALAR.UWORD.IDENTICAL.BITMASK_0010\r\n ASAM.C.SCALAR.UWORD.IDENTICAL.BITMASK_0FF0\r\n /end REF_CHARACTERISTIC\r\n /begin REF_MEASUREMENT\r\n ASAM.M.SCALAR.FLOAT32.IDENTICAL\r\n ASAM.M.SCALAR.FLOAT64.IDENTICAL\r\n ASAM.M.SCALAR.SBYTE.IDENTICAL\r\n ASAM.M.SCALAR.SBYTE.LINEAR_MUL_2\r\n ASAM.M.SCALAR.SLONG.IDENTICAL\r\n ASAM.M.SCALAR.SWORD.IDENTICAL\r\n ASAM.M.SCALAR.UBYTE.FORM_X_PLUS_4\r\n ASAM.M.SCALAR.UBYTE.IDENTICAL\r\n ASAM.M.SCALAR.UBYTE.TAB_INTP_DEFAULT_VALUE\r\n ASAM.M.SCALAR.UBYTE.TAB_INTP_NO_DEFAULT_VALUE\r\n ASAM.M.SCALAR.UBYTE.TAB_NOINTP_DEFAULT_VALUE\r\n ASAM.M.SCALAR.UBYTE.TAB_NOINTP_NO_DEFAULT_VALUE\r\n ASAM.M.SCALAR.UBYTE.TAB_VERB_DEFAULT_VALUE\r\n ASAM.M.SCALAR.UBYTE.TAB_VERB_NO_DEFAULT_VALUE\r\n ASAM.M.SCALAR.UBYTE.VTAB_RANGE_DEFAULT_VALUE\r\n ASAM.M.SCALAR.UBYTE.VTAB_RANGE_NO_DEFAULT_VALUE\r\n ASAM.M.SCALAR.ULONG.IDENTICAL\r\n ASAM.M.SCALAR.UWORD.IDENTICAL\r\n ASAM.M.SCALAR.UWORD.IDENTICAL.BITMASK_0008\r\n ASAM.M.SCALAR.UWORD.IDENTICAL.BITMASK_0FF0\r\n ASAM.M.VIRTUAL.SCALAR.SWORD.PHYSICAL\r\n /end REF_MEASUREMENT\r\n /end GROUP\r\n\r\n /begin GROUP Group_Type_Array \"Contains all array measurements and parameters\"\r\n /begin REF_CHARACTERISTIC\r\n ASAM.C.ARRAY.SWORD.MATRIX_DIM_3_4.COLUMN_DIR\r\n ASAM.C.ARRAY.SWORD.MATRIX_DIM_3_4.ROW_DIR\r\n ASAM.C.ARRAY.SWORD.MATRIX_DIM_6.ROW_DIR\r\n /end REF_CHARACTERISTIC\r\n /begin REF_MEASUREMENT\r\n ASAM.M.MATRIX_DIM_16_1.UBYTE.IDENTICAL\r\n ASAM.M.MATRIX_DIM_16.UBYTE.IDENTICAL\r\n ASAM.M.MATRIX_DIM_8_2.UBYTE.IDENTICAL\r\n ASAM.M.MATRIX_DIM_8_4_2.UBYTE.IDENTICAL\r\n /end REF_MEASUREMENT\r\n /end GROUP\r\n\r\n /begin GROUP Group_Type_Curve \"Contains all curve parameters\"\r\n /begin REF_CHARACTERISTIC\r\n ASAM.C.CURVE.COM_AXIS\r\n ASAM.C.CURVE.CURVE_AXIS\r\n ASAM.C.CURVE.FIX_AXIS.PAR\r\n ASAM.C.CURVE.FIX_AXIS.PAR_DIST\r\n ASAM.C.CURVE.FIX_AXIS.PAR_LIST\r\n ASAM.C.CURVE.RES_AXIS\r\n ASAM.C.CURVE.STD_AXIS\r\n ASAM.C.CURVE.STD_AXIS.MONOTONY_STRICT_DECREASE\r\n ASAM.C.CURVE.STD_AXIS.MONOTONY_STRICT_INCREASE\r\n ASAM.C.CURVE.STD_AXIS.DISCRETE\r\n ASAM.C.CURVE_AXIS\r\n ASAM.C.AXIS_PTS.RESCALE\r\n ASAM.C.AXIS_PTS.UBYTE_8\r\n /end REF_CHARACTERISTIC\r\n /end GROUP\r\n\r\n /begin GROUP Group_Type_Map \"Contains all map parameters\"\r\n /begin REF_CHARACTERISTIC\r\n ASAM.C.MAP.COM_AXIS.FIX_AXIS\r\n ASAM.C.MAP.STD_AXIS.STD_AXIS\r\n /end REF_CHARACTERISTIC\r\n /end GROUP\r\n\r\n /begin GROUP Group_Type_Cuboid \"Contains all cuboid parameters\"\r\n /begin REF_CHARACTERISTIC\r\n ASAM.C.CUBOID.COM_AXIS.FIX_AXIS.STD_AXIS\r\n /end REF_CHARACTERISTIC\r\n /end GROUP\r\n\r\n /begin GROUP Group_Type_ASCII \"Contains all ASCII parameters\"\r\n /begin REF_CHARACTERISTIC\r\n ASAM.C.ASCII.UBYTE.NUMBER_42\r\n /end REF_CHARACTERISTIC\r\n /end GROUP\r\n\r\n\r\n /begin GROUP Group_Function_All \"contains all groups with special functions\"\r\n ROOT\r\n /begin SUB_GROUP\r\n Group_Function_Virtual \r\n Group_Function_Monotony\r\n Group_Function_Computation\r\n Group_Function_Bitmask\r\n /end SUB_GROUP\r\n /end GROUP\r\n\r\n /begin GROUP Group_Function_Virtual \"Contains all functions, measurements and parameters used for virtual\"\r\n /begin FUNCTION_LIST\r\n FunctionVirtualMeasurements\r\n /end FUNCTION_LIST\r\n /begin REF_CHARACTERISTIC\r\n ASAM.C.SCALAR.SBYTE.IDENTICAL \r\n ASAM.C.SCALAR.UBYTE.IDENTICAL \r\n ASAM.C.VIRTUAL.REF_1.SWORD\r\n ASAM.C.VIRTUAL.REF_2.UWORD\r\n ASAM.C.VIRTUAL.REF_3.SWORD\r\n ASAM.C.VIRTUAL.SYSTEM_CONSTANT_1\r\n /end REF_CHARACTERISTIC\r\n /begin REF_MEASUREMENT\r\n ASAM.M.SCALAR.SBYTE.LINEAR_MUL_2\r\n ASAM.M.VIRTUAL.SCALAR.SWORD.PHYSICAL\r\n /end REF_MEASUREMENT\r\n /end GROUP\r\n\r\n /begin GROUP Group_Function_Monotony \"Contains all functions, measurements and parameters used for monotony\"\r\n /begin REF_CHARACTERISTIC\r\n /end REF_CHARACTERISTIC\r\n /begin REF_MEASUREMENT\r\n /end REF_MEASUREMENT\r\n /end GROUP\r\n\r\n /begin GROUP Group_Function_Computation \"Contains all measurements and parameters that have a computation method different to identical\"\r\n /begin REF_CHARACTERISTIC\r\n ASAM.C.SCALAR.SWORD.FORM_X_PLUS_4\r\n ASAM.C.SCALAR.SWORD.LINEAR_MUL_2\r\n ASAM.C.SCALAR.SWORD.RAT_FUNC_DIV_10\r\n ASAM.C.SCALAR.SWORD.RAT_FUNC_DIV_81_9175\r\n ASAM.C.SCALAR.SWORD.TAB_INTP_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.TAB_INTP_NO_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.TAB_NOINTP_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.TAB_NOINTP_NO_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.TAB_VERB_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.TAB_VERB_NO_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.VTAB_RANGE_DEFAULT_VALUE\r\n ASAM.C.SCALAR.SWORD.VTAB_RANGE_NO_DEFAULT_VALUE\r\n ASAM.C.SCALAR.UWORD.IDENTICAL.BITMASK_0001\r\n ASAM.C.SCALAR.UWORD.IDENTICAL.BITMASK_0010\r\n ASAM.C.SCALAR.UWORD.IDENTICAL.BITMASK_0FF0\r\n /end REF_CHARACTERISTIC\r\n /begin REF_MEASUREMENT\r\n ASAM.M.SCALAR.SBYTE.LINEAR_MUL_2\r\n ASAM.M.SCALAR.UBYTE.FORM_X_PLUS_4\r\n ASAM.M.SCALAR.UBYTE.TAB_INTP_DEFAULT_VALUE\r\n ASAM.M.SCALAR.UBYTE.TAB_INTP_NO_DEFAULT_VALUE\r\n ASAM.M.SCALAR.UBYTE.TAB_NOINTP_DEFAULT_VALUE\r\n ASAM.M.SCALAR.UBYTE.TAB_NOINTP_NO_DEFAULT_VALUE\r\n ASAM.M.SCALAR.UBYTE.TAB_VERB_DEFAULT_VALUE\r\n ASAM.M.SCALAR.UBYTE.TAB_VERB_NO_DEFAULT_VALUE\r\n ASAM.M.SCALAR.UBYTE.VTAB_RANGE_DEFAULT_VALUE\r\n ASAM.M.SCALAR.UBYTE.VTAB_RANGE_NO_DEFAULT_VALUE\r\n /end REF_MEASUREMENT\r\n /end GROUP\r\n\r\n /begin GROUP Group_Function_Bitmask \"Contains all measurements and parameters that have a bitmask\"\r\n /begin REF_CHARACTERISTIC\r\n ASAM.C.SCALAR.UWORD.IDENTICAL.BITMASK_0001\r\n ASAM.C.SCALAR.UWORD.IDENTICAL.BITMASK_0010\r\n ASAM.C.SCALAR.UWORD.IDENTICAL.BITMASK_0FF0\r\n /end REF_CHARACTERISTIC\r\n /begin REF_MEASUREMENT\r\n ASAM.M.SCALAR.UWORD.IDENTICAL.BITMASK_0008\r\n ASAM.M.SCALAR.UWORD.IDENTICAL.BITMASK_0FF0\r\n /end REF_MEASUREMENT\r\n /end GROUP\r\n\r\n /begin GROUP Group_Transformer \"Transformers\"\r\n ROOT\r\n /begin SUB_GROUP\r\n TestTransformer\r\n TestTransformerBlob\r\n /end SUB_GROUP\r\n /end GROUP\r\n\r\n /begin GROUP TestTransformer \"Transformer with standard parameters\"\r\n /begin REF_CHARACTERISTIC\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_IN_WAITTIME\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_IN_WAITTIME_REVERSE\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_IN_1\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_IN_2\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_IN_3\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_OUT_WAITTIME\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_OUT_WAITTIME_REVERSE\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_1\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_2\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_3\r\n /end REF_CHARACTERISTIC\r\n /end GROUP\r\n \r\n /begin GROUP TestTransformerBlob \"Transformer with Blob\"\r\n /begin REF_CHARACTERISTIC\r\n ASAM.C.BLOB.TRANSFORMER_TEST\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_IN_WAITTIME\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_IN_WAITTIME_REVERSE\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_OUT_WAITTIME\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_OUT_WAITTIME_REVERSE\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_1\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_2\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_3\r\n /end REF_CHARACTERISTIC\r\n /end GROUP\r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* Type Definitions & Instances (ASAP2 V1.7) */\r\n/* */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n /begin TYPEDEF_MEASUREMENT T_Register\r\n \"register content\"\r\n UWORD\r\n RegisterConversion\r\n 1\r\n 0\r\n 0\r\n 4294967295\r\n ERROR_MASK 0x00000001\r\n LAYOUT ROW_DIR\r\n /end TYPEDEF_MEASUREMENT\r\n\r\n /begin INSTANCE\r\n Register_A11\r\n \"\"\r\n T_Register\r\n 0xC0000094\r\n /end INSTANCE\r\n\r\n /begin INSTANCE\r\n MyInstance \"\"\r\n ParameterTemplate\r\n 0x2000\r\n /begin OVERWRITE\r\n THIS 0\r\n LIMITS 100 280\r\n /end OVERWRITE\r\n /end INSTANCE\r\n\r\n /begin TYPEDEF_CHARACTERISTIC ParameterType \r\n \"\"\r\n VALUE RecordLayoutName \r\n 0 \r\n NO_COMPU_METHOD \r\n -200 \r\n 500\r\n /end TYPEDEF_CHARACTERISTIC\r\n\r\n /begin TYPEDEF_STRUCTURE StructureType \r\n \"\"\r\n 2\r\n /begin STRUCTURE_COMPONENT\r\n A ParameterType 0\r\n SYMBOL_TYPE_LINK \"__a\"\r\n /end STRUCTURE_COMPONENT\r\n /begin STRUCTURE_COMPONENT\r\n B ParameterType 2\r\n SYMBOL_TYPE_LINK \"__b\"\r\n /end STRUCTURE_COMPONENT\r\n SYMBOL_TYPE_LINK \"MyStructType\"\r\n /end TYPEDEF_STRUCTURE\r\n\r\n /begin TYPEDEF_BLOB T_BLOB\r\n \"binary blob\"\r\n 1024\r\n /end TYPEDEF_BLOB\r\n\r\n /begin INSTANCE\r\n FIM_Blob\r\n \"blob for FIM matrix\"\r\n T_BLOB\r\n 0x1004080\r\n /end INSTANCE\r\n\r\n /begin TYPEDEF_CHARACTERISTIC TYPE_VALUE_UWORD_CM.LINEAR.MUL_2\r\n \"Base type for VALUE with UWORD\" // description\r\n VALUE // object type\r\n RL.FNC.UWORD.ROW_DIR // record layout\r\n 100.0 // maxdiff\r\n CM.LINEAR.MUL_2 // conversion NO_COMPU_METHOD ????\r\n 10 // lower limit\r\n 63000 // upper limit\r\n EXTENDED_LIMITS 5 64000\r\n FORMAT \"%5.0\"\r\n PHYS_UNIT \"ms\"\r\n /end TYPEDEF_CHARACTERISTIC\r\n\r\n /begin INSTANCE ASAM_I_SCALAR_VALUE_UWORD_SINGLE\r\n \"single scalar instance\" // description\r\n TYPE_VALUE_UWORD_CM.LINEAR.MUL_2 // reference to type definition\r\n 0x810000 // start address\r\n DISPLAY_IDENTIFIER DI_ASAM_I_SCALAR_VALUE_UWORD_SINGLE\r\n /end INSTANCE\r\n\r\n /begin INSTANCE ASAM_I_SCALAR_VALUE_UWORD_ARRAY_5\r\n \"array of 5 scalars\" // description\r\n TYPE_VALUE_UWORD_CM.LINEAR.MUL_2 // reference to type definition\r\n 0x810002 // start address\r\n MATRIX_DIM 5 // array size: 5 time values\r\n DISPLAY_IDENTIFIER DI_ASAM_I_SCALAR_VALUE_UWORD_ARRAY_5\r\n /end INSTANCE\r\n \r\n /begin TYPEDEF_CHARACTERISTIC MyUnsignedLongType\r\n \"\"\r\n VALUE\r\n RL_VALUE_ULONG\r\n 100.0\r\n NO_COMPU_METHOD\r\n 10\r\n 65535\r\n /end TYPEDEF_CHARACTERISTIC\r\n\r\n /begin TYPEDEF_STRUCTURE\r\n MyStructure\r\n \"\"\r\n 4\r\n CONSISTENT_EXCHANGE\r\n /begin STRUCTURE_COMPONENT\r\n A MyUnsignedLongType\r\n 0\r\n /end STRUCTURE_COMPONENT\r\n /begin STRUCTURE_COMPONENT\r\n B MyUnsignedLongType\r\n 2\r\n /end STRUCTURE_COMPONENT\r\n /end TYPEDEF_STRUCTURE\r\n\r\n /begin INSTANCE\r\n MyInstance\r\n \"\"\r\n MyStructure\r\n 0x2030\r\n /end INSTANCE\r\n\r\n /begin TYPEDEF_AXIS TYPE_AXIS_UBYTE_CM.IDENTICAL\r\n \"typedef for axis points\" // description\r\n ASAM.M.SCALAR.UBYTE.IDENTICAL // input quantity\r\n RL.AXIS.UBYTE // reference to record layout\r\n 100.0 // maxdiff\r\n CM.IDENTICAL // reference to conversion method\r\n 10 // maximum number of axis points\r\n 4 // lower limit\r\n 210 // upper limit\r\n /end TYPEDEF_AXIS\r\n \r\n /begin INSTANCE ASAM_I_AXIS_PTS_UBYTE_8\r\n \"axis points\" // use type description\r\n TYPE_AXIS_UBYTE_CM.IDENTICAL // reference to type definition\r\n 0x810010 // start address\r\n /end INSTANCE\r\n\r\n /begin TYPEDEF_AXIS\r\n AxisTemplate\r\n \"\"\r\n NO_INPUT_QUANTITY\r\n RL_AXIS\r\n 100.0\r\n NO_COMPU_METHOD\r\n 10\r\n 0\r\n 25\x18\n /end TYPEDEF_AXIS\r\n\r\n /begin INSTANCE\r\n Instance1\r\n \"\"\r\n AxisTemplate\r\n 0x1200\r\n /begin OVERWRITE\r\n THIS 0\r\n INPUT_QUANTITY Speed\r\n CONVERSION Factor200\r\n /end OVERWRITE\r\n /end INSTANCE\r\n\r\n /begin TYPEDEF_CHARACTERISTIC TYPE_MAP_COM_AXIS.FIX_AXIS_CM.LINEAR.MUL_2\r\n \"Base type for VALUE with UWORD\" // description\r\n MAP // object type\r\n RL.FNC.UWORD.ROW_DIR // record layout\r\n 100.0 // maxdiff\r\n CM.LINEAR.MUL_2 // conversion\r\n 10 // lower limit\r\n 63000 // upper limit\r\n EXTENDED_LIMITS 5 64000\r\n FORMAT \"%5.0\"\r\n PHYS_UNIT \"hPa\"\r\n /begin AXIS_DESCR\r\n COM_AXIS \r\n ASAM.M.SCALAR.UBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 8 /* will be overwritten by max number of axis points of TYPEDEF_AXIS */\r\n 0 255\r\n AXIS_PTS_REF ASAM_I_AXIS_PTS_UBYTE_8\r\n /end AXIS_DESCR\r\n /begin AXIS_DESCR\r\n FIX_AXIS \r\n ASAM.M.SCALAR.SBYTE.IDENTICAL \r\n CM.IDENTICAL /* shall be the same computation as used with the input quantity */ \r\n 3 \r\n -128 127\r\n FIX_AXIS_PAR_DIST 1 1 3\r\n /end AXIS_DESCR\r\n /end TYPEDEF_CHARACTERISTIC\r\n\r\n /begin INSTANCE ASAM_I_MAP_COM_AXIS_FIX_AXIS\r\n \"Instance of Map with COM_AXIS and FIX_AXIS\" \r\n TYPE_MAP_COM_AXIS.FIX_AXIS_CM.LINEAR.MUL_2\r\n 0x810030 \r\n /end INSTANCE\r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* Structure (ASAP2 V1.7) */\r\n/* */\r\n/* Example C Code: */\r\n/* */\r\n/* typedef unsigned long MyParameterType; */\r\n/* typedef struct { */\r\n/* MyParameterType A; */\r\n/* unsigned char dummy1[30]; */\r\n/* MyParameterType B[10]; */\r\n/* unsigned char dummy2[10]; */\r\n/* } MyStructure; */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n /begin TYPEDEF_CHARACTERISTIC T_MyParameterType\r\n \"Base type for MyParameterType\" // description\r\n VALUE // object type\r\n RL.FNC.ULONG.ROW_DIR // record layout\r\n 100.0 // maxdiff\r\n CM.IDENTICAL // conversion\r\n 0 // lower limit\r\n 100000 // upper limit\r\n EXTENDED_LIMITS 0 429467295\r\n /end TYPEDEF_CHARACTERISTIC\r\n\r\n /begin TYPEDEF_CHARACTERISTIC T_CHAR10\r\n \"Base type for Array of char[10]\" // description\r\n ASCII // object type\r\n RL.FNC.UBYTE.ROW_DIR // record layout\r\n 100.0 // maxdiff\r\n NO_COMPU_METHOD // conversion\r\n 0 // lower limit\r\n 255 // upper limit\r\n NUMBER 10\r\n /end TYPEDEF_CHARACTERISTIC\r\n\r\n /begin TYPEDEF_CHARACTERISTIC T_CHAR30\r\n \"Base type for Array of char[30]\" // description\r\n ASCII // object type\r\n RL.FNC.UBYTE.ROW_DIR // record layout\r\n 100.0 ; // maxdiff\r\n NO_COMPU_METHOD // conversion\r\n 0 // lower limit\r\n 255 // upper limit\r\n NUMBER 30\r\n /end TYPEDEF_CHARACTERISTIC\r\n\r\n /begin TYPEDEF_STRUCTURE T_MyStructure \r\n \"Structure of C example\" // description\r\n 84 // total size of structure \r\n /begin STRUCTURE_COMPONENT\r\n A T_MyParameterType\r\n 0 // address offset\r\n /end STRUCTURE_COMPONENT\r\n /begin STRUCTURE_COMPONENT\r\n Dummy1 T_CHAR10\r\n 4 // address offset\r\n /end STRUCTURE_COMPONENT\r\n /begin STRUCTURE_COMPONENT\r\n B T_MyParameterType\r\n 14 // address offset \r\n MATRIX_DIM 10\r\n /end STRUCTURE_COMPONENT\r\n /begin STRUCTURE_COMPONENT\r\n Dummy2 T_CHAR30\r\n 54 // address offset\r\n /end STRUCTURE_COMPONENT\r\n /end TYPEDEF_STRUCTURE\r\n\r\n /begin INSTANCE ASAM_S_EXAMPLE // dots not allowed in instance names\r\n \"Example Instance\" // instance description\r\n T_MyStructure // reference to type definition\r\n 0x811000 // start address of instance\r\n /end INSTANCE\r\n\r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* TRANSFORMER (ASAP2 V1.7) */\r\n/* */\r\n/* Parameters used by the transformers */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n /begin CHARACTERISTIC KI \r\n \"\"\r\n VALUE\r\n 0x408F\r\n DAMOS_FW\r\n 0.0\r\n FACTOR01\r\n 0.0\r\n 255.0\r\n /begin IF_DATA \"DIM\" \r\n EXTERNAL\r\n DIRECT\r\n /end IF_DATA\r\n /begin FUNCTION_LIST \r\n V_LIM\r\n /end FUNCTION_LIST\r\n READ_ONLY\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC KI2 \r\n \"\"\r\n VALUE\r\n 0x408F\r\n DAMOS_FW\r\n 0.0\r\n FACTOR01\r\n 0.0\r\n 255.0\r\n /begin IF_DATA \"DIM\" \r\n EXTERNAL\r\n DIRECT\r\n /end IF_DATA\r\n /begin FUNCTION_LIST \r\n V_LIM\r\n /end FUNCTION_LIST\r\n READ_WRITE\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_IN_WAITTIME\r\n \"Wait Time for the transformer direction ECU to External (ECU side) in ms\"\r\n VALUE \r\n 0x810800 \r\n RL.FNC.UWORD.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n 0 10000\r\n EXTENDED_LIMITS 0 65535\r\n FORMAT \"%3.0\"\r\n PHYS_UNIT \"ms\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_IN_WAITTIME\r\n MODEL_LINK \"ML.ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_IN_WAITTIME\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_IN_WAITTIME_REVERSE\r\n \"Wait Time for the reverse transformer direction ECU to External (ECU side) in ms\"\r\n VALUE \r\n 0x810802 \r\n RL.FNC.UWORD.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n 0 10000\r\n EXTENDED_LIMITS 0 65535\r\n FORMAT \"%3.0\"\r\n PHYS_UNIT \"ms\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_IN_WAITTIME_REVERSE\r\n MODEL_LINK \"ML.ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_IN_WAITTIME_REVERSE\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_IN_1\r\n \"Scalar as transformer input\"\r\n VALUE \r\n 0x810804 \r\n RL.FNC.FLOAT32_IEEE.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n -100000000000 100000000000\r\n EXTENDED_LIMITS -100000000000000000 100000000000000000\r\n FORMAT \"%3.12\"\r\n PHYS_UNIT \"hours\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_IN_1\r\n MODEL_LINK \"ML.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_IN_1\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_IN_2\r\n \"Scalar as transformer input\"\r\n VALUE \r\n 0x810808 \r\n RL.FNC.FLOAT32_IEEE.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n -100000000000 100000000000\r\n EXTENDED_LIMITS -100000000000000000 100000000000000000\r\n FORMAT \"%3.12\"\r\n PHYS_UNIT \"hours\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_IN_2\r\n MODEL_LINK \"ML.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_IN_2\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_IN_3\r\n \"Scalar as transformer input\"\r\n VALUE \r\n 0x81080C \r\n RL.FNC.FLOAT32_IEEE.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n -100000000000 100000000000\r\n EXTENDED_LIMITS -100000000000000000 100000000000000000\r\n FORMAT \"%3.12\"\r\n PHYS_UNIT \"hours\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_IN_3\r\n MODEL_LINK \"ML.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_IN_3\"\r\n /end CHARACTERISTIC\r\n\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_OUT_WAITTIME\r\n \"Scalar as transformer output\"\r\n VALUE \r\n 0x7FFF0000 \r\n RL.FNC.UWORD.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n 0 10000\r\n EXTENDED_LIMITS 0 65535\r\n FORMAT \"%3.0\"\r\n PHYS_UNIT \"ms\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_OUT_WAITTIME\r\n MODEL_LINK \"ML.ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_OUT_1\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_OUT_WAITTIME_REVERSE\r\n \"Scalar as transformer output\"\r\n VALUE \r\n 0x7FFF0002 \r\n RL.FNC.UWORD.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n 0 10000\r\n EXTENDED_LIMITS 0 65535\r\n FORMAT \"%3.0\"\r\n PHYS_UNIT \"ms\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_OUT_WAITTIME_REVERSE\r\n MODEL_LINK \"ML.ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_OUT_WAITTIME_REVERSE\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_1\r\n \"Scalar as transformer output\"\r\n VALUE \r\n 0x7FFF0004 \r\n RL.FNC.FLOAT32_IEEE.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n -100000000000 100000000000\r\n EXTENDED_LIMITS -100000000000000000 100000000000000000\r\n FORMAT \"%3.12\"\r\n PHYS_UNIT \"hours\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_1\r\n MODEL_LINK \"ML.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_1\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_2\r\n \"Scalar as transformer output\"\r\n VALUE \r\n 0x7FFF0008\r\n RL.FNC.FLOAT32_IEEE.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n -100000000000 100000000000\r\n EXTENDED_LIMITS -100000000000000000 100000000000000000\r\n FORMAT \"%3.12\"\r\n PHYS_UNIT \"hours\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_2\r\n MODEL_LINK \"ML.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_2\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORM\r\n/* ER_OUT_3\r\n \"Scalar as transformer output\"\r\n VALUE \r\n 0x7FFF000C\r\n RL.FNC.FLOAT32_IEEE.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n -100000000000 100000000000\r\n EXTENDED_LIMITS -100000000000000000 100000000000000000\r\n FORMAT \"%3.12\"\r\n PHYS_UNIT \"hours\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_3\r\n /end CHARACTERISTIC\r\n\r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* TRANSFORMER & standard parameter (ASAP2 V1.7) */\r\n/* */\r\n/* The transformer uses \"standard\" parameter as in- and output */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n /begin TRANSFORMER TestTransformer\r\n \"1.1.0.0\" // Version info\r\n \"TransformerTestV171.dll\" // Name of the 32bit DLL\r\n \"\" // Name of the 64bit DLL\r\n 2000 // timeout in [ms]\r\n ON_USER_REQUEST\r\n TestTransformerReverse\r\n /begin TRANSFORMER_IN_OBJECTS\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_IN_WAITTIME\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_IN_WAITTIME_REVERSE\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_IN_1\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_IN_2\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_IN_3\r\n /end TRANSFORMER_IN_OBJECTS\r\n /begin TRANSFORMER_OUT_OBJECTS\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_OUT_WAITTIME\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_OUT_WAITTIME_REVERSE\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_1\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_2\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_3\r\n /end TRANSFORMER_OUT_OBJECTS\r\n /end TRANSFORMER\r\n\r\n /begin TRANSFORMER TestTransformerReverse\r\n \"1.1.0.0\" // Version info\r\n \"TransformerTestV171.dll\" // Name of the 32bit DLL\r\n \"\" // Name of the 64bit DLL\r\n 1500 // timeout in [ms]\r\n ON_CHANGE\r\n TestTransformer\r\n /begin TRANSFORMER_IN_OBJECTS\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_OUT_WAITTIME\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_OUT_WAITTIME_REVERSE\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_1\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_2\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_OUT_3\r\n /end TRANSFORMER_IN_OBJECTS\r\n /begin TRANSFORMER_OUT_OBJECTS\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_IN_WAITTIME\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_IN_WAITTIME_REVERSE\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_IN_1\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_IN_2\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_IN_3\r\n /end TRANSFORMER_OUT_OBJECTS\r\n /end TRANSFORMER\r\n\r\n\r\n/* ============================================================================================== */\r\n/* */\r\n/* TRANSFORMER & BLOB (ASAP2 V1.7) */\r\n/* */\r\n/* The transformer uses BLOB as in- and \"standard\" parameter as output */\r\n/* */\r\n/* ============================================================================================== */\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_IN_WAITTIME\r\n \"Wait Time for the transformer direction ECU to External (ECU side) in ms\"\r\n VALUE \r\n 0x810820 \r\n \xe3\xe3\xe3\xe3 RL.FNC.UWORD.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n 0 10000\r\n EXTENDED_LIMITS 0 65535\r\n FORMAT \"%3.0\"\r\n PHYS_UNIT \"ms\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_IN_WAITTIME\r\n MODEL_LINK \"ML.ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_IN_WAITTIME\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_IN_WAITTIME_REVERSE\r\n \"Wait Time for the reverse transformer direction ECU to External (ECU side) in ms\"\r\n VALUE \r\n 0x810822 \r\n RL.FNC.UWORD.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n 0 10000\r\n EXTENDED_LIMITS 0 65535\r\n FORMAT \"%3.0\"\r\n PHYS_UNIT \"ms\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_IN_WAITTIME_REVERSE\r\n MODEL_LINK \"ML.ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_IN_WAITTIME_REVERSE\"\r\n /end CHARACTERISTIC\r\n\r\n /begin BLOB ASAM.C.BLOB.TRANSFORMER_TEST\r\n \"binary blob for transformer test\" // description\r\n 0x812000 // start address\r\n 16 // number of bytes in blob\r\n CALIBRATION_ACCESS NO_CALIBRATION // Inhibit the user from calibrating it\r\n /end BLOB\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_OUT_WAITTIME\r\n \"Scalar as transformer output\"\r\n VALUE \r\n 0x7FFF0020 \r\n RL.FNC.UWORD.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n 0 10000\r\n EXTENDED_LIMITS 0 65535\r\n FORMAT \"%3.0\"\r\n PHYS_UNIT \"ms\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_OUT_WAITTIME\r\n MODEL_LINK \"ML.ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_OUT_1\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_OUT_WAITTIME_REVERSE\r\n \"Scalar as transformer output\"\r\n VALUE \r\n 0x7FFF0022 \r\n RL.FNC.UWORD.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n 0 10000\r\n EXTENDED_LIMITS 0 65535\r\n FORMAT \"%3.0\"\r\n PHYS_UNIT \"ms\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_OUT_WAITTIME_REVERSE\r\n MODEL_LINK \"ML.ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_OUT_WAITTIME_REVERSE\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_1\r\n \"Scalar as transformer output\"\r\n VALUE \r\n 0x7FFF0024 \r\n RL.FNC.FLOAT32_IEEE.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n -100000000000 100000000000\r\n EXTENDED_LIMITS -100000000000000000 100000000000000000\r\n FORMAT \"%3.12\"\r\n PHYS_UNIT \"hours\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_1\r\n MODEL_LINK \"ML.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_1\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_2\r\n \"Scalar as transformer output\"\r\n VALUE \r\n 0x7FFF0028\r\n RL.FNC.FLOAT32_IEEE.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n -100000000000 100000000000\r\n EXTENDED_LIMITS -100000000000000000 100000000000000000\r\n FORMAT \"%3.12\"\r\n PHYS_UNIT \"hours\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_2\r\n MODEL_LINK \"ML.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_2\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_3\r\n \"Scalar as transformer output\"\r\n VALUE \r\n 0x7FFF002C\r\n RL.FNC.FLOAT32_IEEE.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n -100000000000 100000000000\r\n EXTENDED_LIMITS -100000000000000000 100000000000000000\r\n FORMAT \"%3.12\"\r\n PHYS_UNIT \"hours\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_3\r\n MODEL_LINK \"ML.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_3\"\r\n /end CHARACTERISTIC\r\n\r\n /begin CHARACTERISTIC ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_4\r\n \"Scalar as transformer output\"\r\n VALUE \r\n 0x7FFF0030\r\n RL.FNC.FLOAT32_IEEE.ROW_DIR\r\n 0 \r\n CM.IDENTICAL \r\n -100000000000 100000000000\r\n EXTENDED_LIMITS -100000000000000000 100000000000000000\r\n FORMAT \"%3.12\"\r\n PHYS_UNIT \"hours\"\r\n DISPLAY_IDENTIFIER DI.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_4\r\n MODEL_LINK \"ML.ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_4\"\r\n /end CHARACTERISTIC\r\n\r\n\r\n\r\n /begin TRANSFORMER TestTransformerBlob\r\n \"1.1.0.0\" // Version info\r\n \"TransformerTestV171.dll\" // Name of the 32bit DLL\r\n \"\" // Name of the 64bit DLL\r\n 2000 // timeout in [ms]\r\n ON_USER_REQUEST\r\n TestTransformerBlobReverse\r\n /begin TRANSFORMER_IN_OBJECTS\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_IN_WAITTIME\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_IN_WAITTIME_REVERSE\r\n ASAM.C.BLOB.TRANSFORMER_TEST\r\n /end TRANSFORMER_IN_OBJECTS\r\n /begin TRANSFORMER_OUT_OBJECTS\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_OUT_WAITTIME\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_OUT_WAITTIME_REVERSE\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_1\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_2\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_3\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_4\r\n /end TRANSFORMER_OUT_OBJECTS\r\n /end TRANSFORMER\r\n\r\n /begin TRANSFORMER TestTransformerBlobReverse\r\n \"1.1.0.0\" // Version info\r\n \"TransformerTestV171.dll\" // Name of the 32bit DLL\r\n \"\" // Name of the 64bit DLL\r\n 1500 // timeout in [ms]\r\n ON_CHANGE\r\n TestTransformerBlob\r\n /begin TRANSFORMER_IN_OBJECTS\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_OUT_WAITTIME\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_OUT_WAITTIME_REVERSE\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_1\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_2\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_3\r\n ASAM.C.SCALAR.FLOAT32.IDENTICAL.TRANSFORMER_BLOB_OUT_4\r\n /end TRANSFORMER_IN_OBJECTS\r\n /begin TRANSFORMER_OUT_OBJECTS\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_IN_WAITTIME\r\n ASAM.C.SCALAR.UINT16.IDENTICAL.TRANSFORMER_BLOB_IN_WAITTIME_REVERSE\r\n ASAM.C.BLOB.TRANSFORMER_TEST\r\n /end TRANSFORMER_OUT_OBJECTS\r\n /end TRANSFORMER\r\n\r\n /begin USER_RIGHTS calibration_engineers\r\n /begin REF_GROUP group_1\r\n /end REF_GROUP\r\n /end USER_RIGHTS \r\n \r\n /begin USER_RIGHTS measurement_engineers\r\n /begin REF_GROUP group_1\r\n /end REF_GROUP\r\n READ_ONLY\r\n /end USER_RIGHTS\r\n\r\n /begin GROUP group_1\r\n /begin REF_CHARACTERISTIC\r\n KF1\r\n KF2\r\n /end REF_CHARACTERISTIC\r\n /begin REF_MEASUREMENT\r\n NMOT\r\n TMOT\r\n /end REF_MEASUREMENT\r\n /end GROUP\r\n\r\n /begin UNIT newton\r\n \"extended SI unit for force\"\r\n \"[N]\"\r\n EXTENDED_SI\r\n SI_EXPONENTS 1 1 -2 0 0 0 0\r\n /end UNIT\r\n\r\n /begin UNIT kms_per_hour\r\n \"derived unit for velocity: kilometres per\r\n hour\"\r\n \"[km/h]\"\r\n DERIVED\r\n REF_UNIT metres_per_second\r\n UNIT_CONVERSION 3.6 0.0\r\n /end UNIT\r\n\r\n /begin VARIANT_CODING\r\n VAR_SEPARATOR \".\"\r\n VAR_NAMING NUMERIC\r\n /begin VAR_CRITERION Car\r\n \"Car body\"\r\n Limousine Kombi Cabrio\r\n VAR_SELECTION_CHARACTERISTIC CAR_BOX\r\n VAR_MEASUREMENT S_GEAR_BOX\r\n VAR_SELECTION_CHARACTERISTIC CAR_BOX\r\n /end VAR_CRITERION\r\n /begin VAR_CRITERION Gear\r\n \"Type of gear box\"\r\n Manual Automatic\r\n VAR_SELECTION_CHARACTERISTIC S_GEAR_BOX\r\n /end VAR_CRITERION\r\n /begin VAR_FORBIDDEN_COMB\r\n Car Limousine\r\n Gear Manual\r\n /end VAR_FORBIDDEN_COMB\r\n /begin VAR_FORBIDDEN_COMB\r\n Car Cabrio\r\n Gear Automatic\r\n /end VAR_FORBIDDEN_COMB\r\n /begin VAR_CHARACTERISTIC\r\n PUMKF\r\n Gear\r\n /begin VAR_ADDRESS\r\n 0x7140\r\n 0x7168\r\n /end VAR_ADDRESS\r\n /end VAR_CHARACTERISTIC\r\n /begin VAR_CHARACTERISTIC NLLM\r\n Gear Car \r\n /begin VAR_ADDRESS\r\n 0x8840\r\n 0x8858\r\n 0x8870\r\n 0x8888\r\n /end VAR_ADDRESS\r\n /end VAR_CHARACTERISTIC\r\n VAR_NAMING NUMERIC\r\n VAR_SEPARATOR \".\"\r\n /end VARIANT_CODING\r\n\r\n /end MODULE\r\n/end PROJECT\r\n\r\n") diff --git a/a2l/testing/ASAP2_Demo_V171_allKeywords.a2l b/a2l/testing/ASAP2_Demo_V171_allKeywords.a2l index a59ec32..b3d80d1 100755 --- a/a2l/testing/ASAP2_Demo_V171_allKeywords.a2l +++ b/a2l/testing/ASAP2_Demo_V171_allKeywords.a2l @@ -1,4 +1,4 @@ -ASAP2_VERSION 1 71 +ASAP2_VERSION 1 71 A2ML_VERSION 1 31 /begin PROJECT ASAP2_Example "" @@ -2859,7 +2859,7 @@ A2ML_VERSION 1 31 SYSTEM_CONSTANT "CONTROLLERx constant1" "0.33" SYSTEM_CONSTANT "CONTROLLERx constant2" "2.79" /begin CALIBRATION_METHOD - „InCircuit“ + „InCircuit“ 2 /begin CALIBRATION_HANDLE 0x10000 /* start address of pointer table */ @@ -2870,6 +2870,8 @@ A2ML_VERSION 1 31 CALIBRATION_HANDLE_TEXT "YourTextHere" /end CALIBRATION_HANDLE /end CALIBRATION_METHOD + SYSTEM_CONSTANT "CONTROLLERx constant3" "0 /*blabalsdjkkasld as dsa d*/" + SYSTEM_CONSTANT "CONTROLLERx constant4" "0" /end MOD_PAR @@ -5729,8 +5731,8 @@ A2ML_VERSION 1 31 NO_COMPU_METHOD 10 0 - 25 - /end TYPEDEF_AXIS + 25 + /end TYPEDEF_AXIS /begin INSTANCE Instance1 diff --git a/a2l/token_generator.go b/a2l/token_generator.go index 8850e21..0f6a67f 100755 --- a/a2l/token_generator.go +++ b/a2l/token_generator.go @@ -49,6 +49,10 @@ func buildTokenGeneratorFromString(str string) (tokenGenerator, error) { str = strings.TrimFunc(str, func(r rune) bool { return !unicode.IsGraphic(r) }) + + //replace escaped quotation marks + str = strings.ReplaceAll(str, `\"`, `'`) + //Split text file into lines and the lines into words separated by whitespace var locTokens []chan []string tokenList = make([]string, 0, expectedNumberOfTokens) @@ -114,7 +118,8 @@ func buildTokenList(str [][]string) []string { return tl } if t != emptyToken { - if strings.Contains(t, "*/") { + if strings.Contains(t, "*/") && !strings.Contains(t, "*/") { + log.Warn().Msg("Triggered reset! at token: " + t) //make sure that the goroutine did not start in the middle of a multiline comment. //if so then delete all previous tokens as they are part of the comment. //the buildNextValidToken routine only checks for the start of a multiline comment. @@ -210,7 +215,7 @@ start: } } -//skipLineComment if a "//" is detected the token generator moves to the next line (currentOuterIndex++) +// skipLineComment if a "//" is detected the token generator moves to the next line (currentOuterIndex++) func skipLineComment(currentOuterIndex *int, currentInnerIndex *int, str [][]string) (string, error) { if strings.Contains(str[*currentOuterIndex][*currentInnerIndex], beginLineCommentToken) { //move to the next line and reset inner index to 0 (first word in new line) @@ -227,8 +232,8 @@ func skipLineComment(currentOuterIndex *int, currentInnerIndex *int, str [][]str } } -//skipLineComment if a "/*" is detected then token generator gets the next token until a "*/" is reached. -//it will then return the next raw value token after the comment +// skipLineComment if a "/*" is detected then token generator gets the next token until a "*/" is reached. +// it will then return the next raw value token after the comment func skipMultilineComment(currentOuterIndex *int, currentInnerIndex *int, str [][]string) (string, error) { var err error t := str[*currentOuterIndex][*currentInnerIndex] @@ -289,10 +294,10 @@ func getTextInQuotationMarks(currentOuterIndex *int, currentInnerIndex *int, str } } -//moveToNextRawValue returns back the next valid, white space separated value. -//in case the line ends it restarts on the next line -//in case there are no lines left and no words within the last line it will return an empty token -//which is used to signal the parser that the eof has been reached. +// moveToNextRawValue returns back the next valid, white space separated value. +// in case the line ends it restarts on the next line +// in case there are no lines left and no words within the last line it will return an empty token +// which is used to signal the parser that the eof has been reached. func moveToNextRawValue(currentOuterIndex *int, currentInnerIndex *int, str [][]string) (string, error) { //If there are still tokens left in the current line if len(str[*currentOuterIndex])-1 > *currentInnerIndex && len(str[*currentOuterIndex]) > 0 { @@ -320,9 +325,9 @@ func moveToNextRawValue(currentOuterIndex *int, currentInnerIndex *int, str [][] } } -//isKeyword is used in the matrixDim parser to detected when there are no dimensions left to parse -//this is necessary because not every version of the a2l standard has a clear rule about how many dimensions should be expected -//or are necessary to define ("1 0 0" and "1" are both valid descriptions for a curve) +// isKeyword is used in the matrixDim parser to detected when there are no dimensions left to parse +// this is necessary because not every version of the a2l standard has a clear rule about how many dimensions should be expected +// or are necessary to define ("1 0 0" and "1" are both valid descriptions for a curve) func isKeyword(str string) bool { //look whether the given string is contained in the list of //valid a2l tokens as defined in tokens.go @@ -330,7 +335,7 @@ func isKeyword(str string) bool { return exists } -//getTwoWordedToken handles keywords that contain a / like e.g. "/begin CHARACTERISTIC" +// getTwoWordedToken handles keywords that contain a / like e.g. "/begin CHARACTERISTIC" func getTwoWordedToken(currentOuterIndex *int, currentInnerIndex *int, str [][]string) (string, error) { var err error t := str[*currentOuterIndex][*currentInnerIndex] diff --git a/a2l/tokens.go b/a2l/tokens.go index 771cb66..66c1aff 100644 --- a/a2l/tokens.go +++ b/a2l/tokens.go @@ -367,9 +367,9 @@ const variablesToken = "VARIABLES" const versionToken = "VERSION" const wordToken = "WORD" -//keywordMap is used in the isKeyword-Funtion. -//Its usage is to efficiently check whether a token is also a keyword. -//Note: enum values and Standalone Keywords like "READ_ONLY" are excluded here. +// keywordMap is used in the isKeyword-Funtion. +// Its usage is to efficiently check whether a token is also a keyword. +// Note: enum values and Standalone Keywords like "READ_ONLY" are excluded here. var keywordMap = map[string]uint8{ "A2ML_VERSION": 0, "ADDR_EPK": 0, @@ -609,7 +609,6 @@ var keywordMap = map[string]uint8{ "PROJECT_NO": 0, "REF_MEMORY_SEGMENT": 0, "REF_UNIT": 0, - "RESERVED": 0, "RIGHT_SHIFT": 0, "RIP_ADDR_4": 0, "RIP_ADDR_5": 0, diff --git a/ihex32/hex_test.go b/ihex32/hex_test.go index d8498b1..fdfa756 100644 --- a/ihex32/hex_test.go +++ b/ihex32/hex_test.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" "os" + "strconv" "strings" "testing" "time" @@ -32,6 +33,7 @@ func FuzzParseHex(f *testing.F) { zerolog.SetGlobalLevel(zerolog.WarnLevel) hexPath := "testing/ASAP2_Demo_V171.hex" text, _ := readFileToString(hexPath) + var errList []error f.Add(text) f.Fuzz(func(t *testing.T, orig string) { @@ -41,11 +43,21 @@ func FuzzParseHex(f *testing.F) { //in case unix line terminator is used. lines = strings.Split(orig, "\n") } - _, err := parseHex(lines) - if err != nil && err.Error() != "invalid checksums detected" { - log.Err(err).Msg("could not parse hex-file") - log.Err(err).Msg(orig) - t.Error() + h, err := parseHex(lines) + if err != nil { + exists := false + for _, e := range errList { + if err == e { + exists = true + break + } + } + if !exists { + errList = append(errList, err) + fmt.Println(len(h)) + log.Err(err).Msg("could not parse hex-file with length " + strconv.Itoa(len(h))) + log.Err(err).Msg(orig) + } } }) } diff --git a/ihex32/testdata/fuzz/FuzzParseFromFile/b1c5ee6ddaa28de61bbe1205a5bf51459dbfa0d1fd12b7b4150665ffa0010e56 b/ihex32/testdata/fuzz/FuzzParseFromFile/b1c5ee6ddaa28de61bbe1205a5bf51459dbfa0d1fd12b7b4150665ffa0010e56 deleted file mode 100644 index e7660fb..0000000 --- a/ihex32/testdata/fuzz/FuzzParseFromFile/b1c5ee6ddaa28de61bbe1205a5bf51459dbfa0d1fd12b7b4150665ffa0010e56 +++ /dev/null @@ -1,2 +0,0 @@ -go test fuzz v1 -string("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E\r\n:20622000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E\r\n:20624000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E\r\n:20626000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E\r\n:20628000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E\r\n:2062A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\r\n:2062C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE\r\n:2062E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE\r\n:20630000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D\r\n:20632000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D\r\n:20634000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D\r\n:20636000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D\r\n:20638000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D\r\n:2063A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD\r\n:2063C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD\r\n:2063E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD\r\n:20640000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C\r\n:20642000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C\r\n:20644000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C\r\n:20646000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C\r\n:20648000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C\r\n:2064A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC\r\n:2064C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC\r\n:2064E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC\r\n:20650000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B\r\n:20652000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B\r\n:20654000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B\r\n:20656000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B\r\n:20658000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B\r\n:2065A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB\r\n:2065C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB\r\n:2065E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB\r\n:20660000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A\r\n:20662000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A\r\n:20664000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A\r\n:20666000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A\r\n:20668000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A\r\n:2066A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA\r\n:2066C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA\r\n:2066E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA\r\n:20670000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99\r\n:20672000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79\r\n:20674000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59\r\n:20676000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39\r\n:20678000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19\r\n:2067A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9\r\n:2067C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9\r\n:2067E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9\r\n:20680000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98\r\n:20682000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78\r\n:20684000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58\r\n:0C686000FFFFFFFFFFFFFFFFFFFFFFFF38\r\n:02000004008179\r\n:2000000014067F010200FFFF110000005600000030F00442000008C0FFFFFFFFFFFFFFFFB9\r\n:20002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0\r\n:20004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0\r\n:20006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0\r\n:20008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80\r\n:2000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60\r\n:2000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40\r\n:2000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20\r\n:200100000100020003000400050006000700080009000A000B000C00FFFFFFFFFFFFFFFF99\r\n:200120000100040007000A000200050008000B000300060009000C00FFFFFFFFFFFFFFFF79\r\n:200140006400C8002C0190012C01FA00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2\r\n:20016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F\r\n:20018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F\r\n:2001A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F\r\n:2001C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F\r\n:2001E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F\r\n:200200004153414D20546573740000000000000000000000000000000000000000000000FC\r\n:2002200000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4\r\n:20024000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE\r\n:20026000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E\r\n:20028000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E\r\n:2002A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E\r\n:2002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E\r\n:2002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E\r\n:2003000008160E08050402FFFBFF09000D0007000F0047000600FFFFFDFFFFFFFFFFFFFF38\r\n:200320000E00210010002B00120010000F000D00FFFF17001100FFFFFFFF4100FFFFFFFFB6\r\n:20034000080F0D050403020100FFFFFFFFFFFFFFF6FFF5FFF4FFF6FFF7FFF5FFFFFFFFFFBA\r\n:20036000090008000700080009000500FFFFFFFF020003000400020004000300FFFFFFFF45\r\n:20038000160021002C001600FFFF20002200160008FF00020304050708FF00000100020068\r\n:2003A0000300040005000600070009000A000B000300040005000600070009000A000B00CF\r\n:2003C0000C00112014402080B0D0D2FFFFFFFFFF05FF112014402080B0D0D2FFFFFFFFFF29\r\n:2003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D\r\n:200400000405010203040203040506FF000001000200030004000500060007000800090089\r\n:200420000A000B000C000D000E000F001000110012001300FFFFFFFFFFFFFFFFFFFFFFFF37\r\n:200440000800070006000500040003000200010010000F000E000D000C000B000A00090014\r\n:2004600018001700160015001400130012001100041F0F04020019001A001B001C001D0019\r\n:200480001E001F0020002100220023002400250026002700280029002A002B002C002D0004\r\n:2004A0002E002F0030000100020003000400050006000700080009000A000B000C000D0054\r\n:2004C0000E000F0010001100120013001400150016001700180019001A001B001C001D00C4\r\n:2004E0001E001F0020002100220023002400250026002700280029002A002B002C002D00A4\r\n:2005000008080706050403020109030004000500080007000800090008000B000C000D004E\r\n:20052000080001020304050607080900140015000203040102010203010203040102030437\r\n:2005400005060708090A0B0C0D0E0F101112131415161718FFFFFFFFFFFFFFFFFFFFFFFF85\r\n:2005600002030401020102030102030401030502040607090B080A0C0D0F110E101213158C\r\n:2005800017141618070009000B0008000A000C0002030402010201020301020304010201A7\r\n:2005A00002030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20210B\r\n:2005C00022232425262728292A2B2C2D2E2F30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5\r\n:2005E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02030402010201020301020304010201E9\r\n:20060000030502040607090B080A0C0D0F110E1012131517141618191B1D1A1C1E1F2123A7\r\n:2006200020222425272926282A2B2D2F2C2E30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67\r\n:20064000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA\r\n:20066000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A\r\n:20068000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A\r\n:2006A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A\r\n:2006C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A\r\n:2006E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A\r\n:20070000070006000500040003000200010000000F000E000D000C000B000A000900080061\r\n:2007200017001600150014001300120011001000041F0F0402FF19001A001B001C001D005F\r\n:200740001E001F0020002100220023002400250026002700280029002A002B002C002D0041\r\n:200760002E002F0030000100020003000400050006000700080009000A000B000C000D0091\r\n:200780000E000F0010001100120013001400150016001700180019001A001B001C001D0001\r\n:2007A0001E001F0020002100220023002400250026002700280029002A002B002C002D00E1\r\n:2007C0002E002F0030000100020003000400050006000700080009000A000B000C000D0031\r\n:2007E0000E000F0010001100120013001400150016001700180005060708090014001500DC\r\n:20080000080002000000044300802C440000DC424000160016000C00F6FFFFFFFFFFFFFF12\r\n:200820000A001400FDFF010305FFC8FF20057906B2025D08B202F702940AFFFFFFFFFFFFCD\r\n:20084000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8\r\n:20086000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98\r\n:20088000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78\r\n:2008A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58\r\n:2008C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38\r\n:2008E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18\r\n:20090000080001020304050607FF0900140018000C001700220015000500FFFFFFFFFFFF26\r\n:20092000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7\r\n:20094000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7\r\n:20096000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97\r\n:20098000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77\r\n:2009A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57\r\n:2009C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37\r\n:2009E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17\r\n:200A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6\r\n:200A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6\r\n:200A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6\r\n:200A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96\r\n:200A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76\r\n:200AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56\r\n:200AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36\r\n:200AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16\r\n:200B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5\r\n:200B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5\r\n:200B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5\r\n:200B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95\r\n:200B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75\r\n:200BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55\r\n:200BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35\r\n:200BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15\r\n:200C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4\r\n:200C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4\r\n:200C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4\r\n:200C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94\r\n:200C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74\r\n:200CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54\r\n:200CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34\r\n:200CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14\r\n:200D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3\r\n:200D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3\r\n:200D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3\r\n:200D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93\r\n:200D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73\r\n:200DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53\r\n:200DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33\r\n:200DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13\r\n:200E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2\r\n:200E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2\r\n:200E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2\r\n:200E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92\r\n:200E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72\r\n:200EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52\r\n:200EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32\r\n:200EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12\r\n:200F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1\r\n:200F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1\r\n:200F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1\r\n:200F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91\r\n:200F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71\r\n:200FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51\r\n:200FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31\r\n:200FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11\r\n:201000000B00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3\r\n:20102000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0\r\n:20104000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0\r\n:20106000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90\r\n:20108000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70\r\n:2010A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50\r\n:2010C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30\r\n:2010E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10\r\n:20110000FFFF2D003800FFFFCDCCCCCCCC8C40403333333333331E40FBFF0900BF0007000C\r\n:2011200008160E08050402FFFBFF09000D0007000F0047000600FFFFFDFF12007E010E0065\r\n:2011400008160E08050402FFFBFF12001A000E001E008E000C00FEFFFAFF1900A7030F009D\r\n:2011600008160E08050402FFFBFF22003A001600460096011000E6FFDAFF06FF0000010014\r\n:201180000D00380021002A00110051000E000C000A000B000C000D000E000F0010001100D7\r\n:2011A000082018161512100F090706000600060006000600060006000600FFFFFFFFFFFF59\r\n:2011C00008FF0600FFFFFFFFFFFF06000600060006000600060006000600FFFFFFFFFFFFDE\r\n:2011E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F\r\n:201200000405010203040203040506FF00000100020003000400050006000700080009007B\r\n:201220000A000B000C000D000E000F001000110012001300FFFFFFFFFFFFFFFFFFFFFFFF29\r\n:201240000405010203040203040506FF000002000400060008000A000C000E00100012000E\r\n:201260001400160018001A001C001E002000220024002600FFFFFFFFFFFFFFFFFFFFFFFF58\r\n:201280000405010203040203040506FFECFFF2FFF8FFFEFF04000A00100016001C002200E6\r\n:2012A00028002E0034003A00400046004C00520058005E00FFFFFFFFFFFFFFFFFFFFFFFF9C\r\n:2012C0000F000D000B00090007000500030001001F001D001B00190017001500130011000E\r\n:2012E0002F002D002B0029002700250023002100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE\r\n:201300000100020003000400050006000700080009000A000B000C00FFFFFFFFFFFFFFFF87\r\n:20132000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD\r\n:2013400002000400060008000A000C000E0010001200140016001800FFFFFFFFFFFFFFFFF9\r\n:20136000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D\r\n:20138000F2FFF8FFFEFF04000A00100016001C00220028002E003400FFFFFFFFFFFFFFFF74\r\n:2013A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D\r\n:2013C000020008000E00140004000A001000160006000C0012001800FFFFFFFFFFFFFFFF79\r\n:2013E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D\r\n:20140000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC\r\n:20142000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC\r\n:20144000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC\r\n:20146000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C\r\n:20148000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C\r\n:2014A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C\r\n:2014C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C\r\n:2014E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C\r\n:20150000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB\r\n:20152000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB\r\n:20154000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB\r\n:20156000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B\r\n:20158000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B\r\n:2015A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B\r\n:2015C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B\r\n:2015E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B\r\n:20160000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA\r\n:20162000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA\r\n:20164000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA\r\n:20166000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A\r\n:20168000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A\r\n:2016A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A\r\n:2016C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A\r\n:2016E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A\r\n:20170000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9\r\n:20172000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9\r\n:20174000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9\r\n:20176000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89\r\n:20178000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69\r\n:2017A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49\r\n:2017C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29\r\n:2017E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09\r\n:20180000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8\r\n:20182000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8\r\n:20184000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8\r\n:20186000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88\r\n:20188000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68\r\n:2018A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48\r\n:2018C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28\r\n:2018E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08\r\n:20190000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7\r\n:20192000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7\r\n:20194000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7\r\n:20196000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87\r\n:20198000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67\r\n:2019A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47\r\n:2019C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27\r\n:2019E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07\r\n:201A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6\r\n:201A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6\r\n:201A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6\r\n:201A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86\r\n:201A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66\r\n:201AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46\r\n:201AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26\r\n:201AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06\r\n:201B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5\r\n:201B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5\r\n:201B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5\r\n:201B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85\r\n:201B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65\r\n:201BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45\r\n:201BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25\r\n:201BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05\r\n:201C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4\r\n:201C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4\r\n:201C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4\r\n:201C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84\r\n:201C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64\r\n:201CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44\r\n:201CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24\r\n:201CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04\r\n:201D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3\r\n:201D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3\r\n:201D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3\r\n:201D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83\r\n:201D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63\r\n:201DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43\r\n:201DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23\r\n:201DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03\r\n:201E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2\r\n:201E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2\r\n:201E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2\r\n:201E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82\r\n:201E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62\r\n:201EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42\r\n:201EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22\r\n:201EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02\r\n:201F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1\r\n:201F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1\r\n:201F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1\r\n:201F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81\r\n:201F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61\r\n:201FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41\r\n:201FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21\r\n:201FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01\r\n:2020000000000001000000020000000300000232FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96\r\n:20202000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0\r\n:20204000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0\r\n:20206000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80\r\n:20208000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60\r\n:2020A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40\r\n:2020C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20\r\n:2020E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00\r\n:20210000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF\r\n:20212000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF\r\n:20214000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F\r\n:20216000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F\r\n:20218000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F\r\n:2021A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F\r\n:2021C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F\r\n:2021E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\r\n:20220000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE\r\n:20222000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE\r\n:20224000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E\r\n:20226000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E\r\n:20228000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E\r\n:2022A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E\r\n:2022C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E\r\n:2022E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\r\n:20230000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD\r\n:20232000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD\r\n:20234000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D\r\n:20236000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D\r\n:20238000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D\r\n:2023A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D\r\n:2023C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D\r\n:2023E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD\r\n:20240000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC\r\n:20242000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC\r\n:20244000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C\r\n:20246000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C\r\n:20248000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C\r\n:2024A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C\r\n:2024C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C\r\n:2024E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC\r\n:20250000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB\r\n:20252000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB\r\n:20254000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B\r\n:20256000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B\r\n:20258000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B\r\n:2025A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B\r\n:2025C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B\r\n:2025E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB\r\n:20260000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA\r\n:20262000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA\r\n:20264000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A\r\n:20266000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A\r\n:20268000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A\r\n:2026A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A\r\n:2026C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A\r\n:2026E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA\r\n:20270000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9\r\n:20272000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9\r\n:20274000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99\r\n:20276000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79\r\n:20278000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59\r\n:2027A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39\r\n:2027C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19\r\n:2027E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9\r\n:20280000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8\r\n:20282000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8\r\n:20284000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98\r\n:20286000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78\r\n:20288000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58\r\n:2028A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38\r\n:2028C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18\r\n:2028E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8\r\n:20290000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7\r\n:20292000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7\r\n:20294000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97\r\n:20296000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77\r\n:20298000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57\r\n:2029A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37\r\n:2029C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17\r\n:2029E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7\r\n:202A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6\r\n:202A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6\r\n:202A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96\r\n:202A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76\r\n:202A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56\r\n:202AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36\r\n:202AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16\r\n:202AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6\r\n:202B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5\r\n:202B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5\r\n:202B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95\r\n:202B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75\r\n:202B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55\r\n:202BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35\r\n:202BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15\r\n:202BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5\r\n:202C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4\r\n:202C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4\r\n:202C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94\r\n:202C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74\r\n:202C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54\r\n:202CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34\r\n:202CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14\r\n:202CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4\r\n:202D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3\r\n:202D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3\r\n:202D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93\r\n:202D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73\r\n:202D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53\r\n:202DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33\r\n:202DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13\r\n:202DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3\r\n:202E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2\r\n:202E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2\r\n:202E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92\r\n:202E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72\r\n:202E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52\r\n:202EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32\r\n:202EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12\r\n:202EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2\r\n:202F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1\r\n:202F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1\r\n:202F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91\r\n:202F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71\r\n:202F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51\r\n:202FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31\r\n:202FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11\r\n:202FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1\r\n:20300000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0\r\n:20302000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0\r\n:20304000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90\r\n:20306000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70\r\n:20308000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50\r\n:2030A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30\r\n:2030C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10\r\n:2030E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0\r\n:20310000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF\r\n:20312000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF\r\n:20314000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F\r\n:20316000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F\r\n:20318000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F\r\n:2031A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F\r\n:2031C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F\r\n:2031E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF\r\n:20320000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE\r\n:20322000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE\r\n:20324000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E\r\n:20326000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E\r\n:20328000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E\r\n:2032A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E\r\n:2032C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E\r\n:2032E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE\r\n:20330000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD\r\n:20332000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD\r\n:20334000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D\r\n:20336000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D\r\n:20338000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D\r\n:2033A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D\r\n:2033C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D\r\n:2033E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED\r\n:20340000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC\r\n:20342000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC\r\n:20344000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C\r\n:20346000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C\r\n:20348000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C\r\n:2034A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C\r\n:2034C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C\r\n:2034E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC\r\n:20350000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB\r\n:20352000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB\r\n:20354000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B\r\n:20356000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B\r\n:20358000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B\r\n:2035A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B\r\n:2035C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B\r\n:2035E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB\r\n:20360000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA\r\n:20362000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA\r\n:20364000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A\r\n:20366000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A\r\n:20368000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A\r\n:2036A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A\r\n:2036C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A\r\n:2036E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA\r\n:20370000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9\r\n:20372000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9\r\n:20374000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89\r\n:20376000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69\r\n:20378000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49\r\n:2037A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29\r\n:2037C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09\r\n:2037E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9\r\n:20380000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8\r\n:20382000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8\r\n:20384000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88\r\n:20386000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68\r\n:20388000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48\r\n:2038A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28\r\n:2038C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08\r\n:2038E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8\r\n:20390000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7\r\n:20392000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7\r\n:20394000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87\r\n:20396000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67\r\n:20398000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47\r\n:2039A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27\r\n:2039C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07\r\n:2039E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7\r\n:203A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6\r\n:203A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6\r\n:203A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86\r\n:203A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66\r\n:203A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46\r\n:203AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26\r\n:203AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06\r\n:203AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6\r\n:203B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5\r\n:203B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5\r\n:203B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85\r\n:203B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65\r\n:203B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45\r\n:203BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25\r\n:203BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05\r\n:203BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5\r\n:203C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4\r\n:203C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4\r\n:203C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84\r\n:203C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64\r\n:203C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44\r\n:203CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24\r\n:203CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04\r\n:203CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4\r\n:203D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3\r\n:203D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3\r\n:203D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83\r\n:203D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63\r\n:203D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43\r\n:203DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23\r\n:203DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03\r\n:203DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3\r\n:203E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2\r\n:203E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2\r\n:203E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82\r\n:203E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62\r\n:203E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42\r\n:203EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22\r\n:203EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02\r\n:203EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2\r\n:203F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1\r\n:203F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1\r\n:203F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81\r\n:203F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61\r\n:203F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41\r\n:203FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21\r\n:203FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01\r\n:203FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1\r\n:20400000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0\r\n:20402000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0\r\n:20404000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80\r\n:20406000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60\r\n:20408000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40\r\n:2040A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20\r\n:2040C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00\r\n:2040E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0\r\n:20410000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF\r\n:20412000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F\r\n:20414000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F\r\n:20416000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F\r\n:20418000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F\r\n:2041A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F\r\n:2041C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\r\n:2041E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF\r\n:20420000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE\r\n:20422000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E\r\n:20424000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E\r\n:20426000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E\r\n:20428000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E\r\n:2042A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E\r\n:2042C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\r\n:2042E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE\r\n:20430000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD\r\n:20432000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D\r\n:20434000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D\r\n:20436000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D\r\n:20438000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D\r\n:2043A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D\r\n:2043C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD\r\n:2043E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD\r\n:20440000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC\r\n:20442000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C\r\n:20444000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C\r\n:20446000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C\r\n:20448000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C\r\n:2044A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C\r\n:2044C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC\r\n:2044E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC\r\n:20450000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB\r\n:20452000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B\r\n:20454000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B\r\n:20456000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B\r\n:20458000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B\r\n:2045A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B\r\n:2045C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB\r\n:2045E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB\r\n:20460000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA\r\n:20462000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A\r\n:20464000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A\r\n:20466000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A\r\n:20468000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A\r\n:2046A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A\r\n:2046C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA\r\n:2046E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA\r\n:20470000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9\r\n:20472000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99\r\n:20474000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79\r\n:20476000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59\r\n:20478000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39\r\n:2047A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19\r\n:2047C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9\r\n:2047E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9\r\n:20480000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8\r\n:20482000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98\r\n:20484000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78\r\n:20486000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58\r\n:20488000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38\r\n:2048A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18\r\n:2048C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8\r\n:2048E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8\r\n:20490000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7\r\n:20492000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97\r\n:20494000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77\r\n:20496000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57\r\n:20498000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37\r\n:2049A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17\r\n:2049C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7\r\n:2049E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7\r\n:204A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6\r\n:204A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96\r\n:204A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76\r\n:204A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56\r\n:204A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36\r\n:204AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16\r\n:204AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6\r\n:204AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6\r\n:204B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5\r\n:204B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95\r\n:204B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75\r\n:204B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55\r\n:204B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35\r\n:204BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15\r\n:204BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5\r\n:204BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5\r\n:204C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4\r\n:204C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94\r\n:204C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74\r\n:204C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54\r\n:204C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34\r\n:204CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14\r\n:204CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4\r\n:204CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4\r\n:204D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3\r\n:204D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93\r\n:204D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73\r\n:204D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53\r\n:204D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33\r\n:204DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13\r\n:204DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3\r\n:204DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3\r\n:204E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2\r\n:204E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92\r\n:204E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72\r\n:204E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52\r\n:204E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32\r\n:204EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12\r\n:204EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2\r\n:204EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2\r\n:204F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1\r\n:204F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91\r\n:204F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71\r\n:204F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51\r\n:204F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31\r\n:204FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11\r\n:204FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1\r\n:204FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1\r\n:20500000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0\r\n:20502000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90\r\n:20504000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70\r\n:20506000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50\r\n:20508000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30\r\n:2050A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10\r\n:2050C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0\r\n:2050E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0\r\n:20510000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF\r\n:20512000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F\r\n:20514000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F\r\n:20516000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F\r\n:20518000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F\r\n:2051A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F\r\n:2051C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF\r\n:2051E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF\r\n:20520000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE\r\n:20522000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E\r\n:20524000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E\r\n:20526000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E\r\n:20528000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E\r\n:2052A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E\r\n:2052C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE\r\n:2052E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE\r\n:20530000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD\r\n:20532000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D\r\n:20534000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D\r\n:20536000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D\r\n:20538000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D\r\n:2053A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D\r\n:2053C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED\r\n:2053E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD\r\n:20540000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC\r\n:20542000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C\r\n:20544000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C\r\n:20546000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C\r\n:20548000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C\r\n:2054A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C\r\n:2054C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC\r\n:2054E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC\r\n:20550000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB\r\n:20552000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B\r\n:20554000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B\r\n:20556000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B\r\n:20558000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B\r\n:2055A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B\r\n:2055C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB\r\n:2055E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB\r\n:20560000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA\r\n:20562000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A\r\n:20564000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A\r\n:20566000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A\r\n:20568000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A\r\n:2056A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A\r\n:2056C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA\r\n:2056E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA\r\n:20570000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9\r\n:20572000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89\r\n:20574000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69\r\n:20576000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49\r\n:20578000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29\r\n:2057A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09\r\n:2057C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9\r\n:2057E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9\r\n:20580000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8\r\n:20582000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88\r\n:20584000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68\r\n:20586000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48\r\n:20588000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28\r\n:2058A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08\r\n:2058C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8\r\n:2058E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8\r\n:20590000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7\r\n:20592000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87\r\n:20594000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67\r\n:20596000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47\r\n:20598000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27\r\n:2059A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07\r\n:2059C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7\r\n:2059E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7\r\n:205A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6\r\n:205A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86\r\n:205A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66\r\n:205A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46\r\n:205A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26\r\n:205AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06\r\n:205AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6\r\n:205AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6\r\n:205B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5\r\n:205B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85\r\n:205B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65\r\n:205B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45\r\n:205B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25\r\n:205BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05\r\n:205BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5\r\n:205BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5\r\n:205C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4\r\n:205C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84\r\n:205C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64\r\n:205C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44\r\n:205C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24\r\n:205CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04\r\n:205CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4\r\n:205CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4\r\n:205D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3\r\n:205D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83\r\n:205D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63\r\n:205D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43\r\n:205D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23\r\n:205DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03\r\n:205DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3\r\n:205DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3\r\n:205E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2\r\n:205E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82\r\n:205E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62\r\n:205E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42\r\n:205E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22\r\n:205EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02\r\n:205EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2\r\n:205EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2\r\n:205F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1\r\n:205F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81\r\n:205F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61\r\n:205F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41\r\n:205F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21\r\n:205FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01\r\n:205FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1\r\n:205FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1\r\n:20600000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0\r\n:20602000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80\r\n:20604000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60\r\n:20606000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40\r\n:20608000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20\r\n:2060A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00\r\n:2060C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0\r\n:2060E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0\r\n:20610000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F\r\n:20612000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F\r\n:20614000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F\r\n:20616000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F\r\n:20618000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F\r\n:2061A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\r\n:2061C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF\r\n:2061E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF\r\n:20620000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E\r\n:20622000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E\r\n:20624000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E\r\n:20626000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E\r\n:20628000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E\r\n:2062A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\r\n:2062C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE\r\n:2062E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE\r\n:20630000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D\r\n:20632000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D\r\n:20634000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D\r\n:20636000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D\r\n:20638000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D\r\n:2063A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD\r\n:2063C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD\r\n:2063E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD\r\n:20640000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C\r\n:20642000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C\r\n:20644000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C\r\n:20646000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C\r\n:20648000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C\r\n:2064A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC\r\n:2064C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC\r\n:2064E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC\r\n:20650000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46\r\n:209A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26\r\n:209A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06\r\n:209A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6\r\n:209AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6\r\n:209AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6\r\n:209AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86\r\n:209B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65\r\n:209B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45\r\n:209B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25\r\n:209B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05\r\n:209B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5\r\n:209BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5\r\n:209BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5\r\n:209BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85\r\n:209C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64\r\n:209C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44\r\n:209C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24\r\n:209C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04\r\n:209C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4\r\n:209CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4\r\n:209CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4\r\n:209CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84\r\n:209D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63\r\n:209D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43\r\n:209D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23\r\n:209D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03\r\n:209D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3\r\n:209DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3\r\n:209DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3\r\n:209DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83\r\n:209E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62\r\n:209E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42\r\n:209E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22\r\n:209E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02\r\n:209E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2\r\n:209EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2\r\n:209EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2\r\n:209EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82\r\n:209F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61\r\n:209F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41\r\n:209F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21\r\n:209F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01\r\n:209F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1\r\n:209FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1\r\n:209FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1\r\n:209FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81\r\n:20A00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60\r\n:20A02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40\r\n:20A04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20\r\n:20A06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00\r\n:20A08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0\r\n:20A0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0\r\n:20A0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0\r\n:20A0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80\r\n:20A10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F\r\n:20A12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F\r\n:20A14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F\r\n:20A16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\r\n:20A18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF\r\n:20A1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF\r\n:20A1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F\r\n:20A1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F\r\n:20A20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E\r\n:20A22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E\r\n:20A24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E\r\n:20A26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\r\n:20A28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE\r\n:20A2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE\r\n:20A2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E\r\n:20A2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E\r\n:20A30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D\r\n:20A32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D\r\n:20A34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D\r\n:20A36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD\r\n:20A38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD\r\n:20A3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD\r\n:20A3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D\r\n:20A3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D\r\n:20A40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C\r\n:20A42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C\r\n:20A44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C\r\n:20A46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC\r\n:20A48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC\r\n:20A4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC\r\n:20A4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C\r\n:20A4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C\r\n:20A50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B\r\n:20A52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B\r\n:20A54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B\r\n:20A56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB\r\n:20A58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB\r\n:20A5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB\r\n:20A5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B\r\n:20A5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B\r\n:20A60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A\r\n:20A62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A\r\n:20A64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A\r\n:20A66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA\r\n:20A68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA\r\n:20A6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA\r\n:20A6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A\r\n:20A6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A\r\n:20A70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59\r\n:20A72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39\r\n:20A74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19\r\n:20A76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9\r\n:20A78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9\r\n:20A7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9\r\n:20A7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99\r\n:20A7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79\r\n:20A80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58\r\n:20A82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38\r\n:20A84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18\r\n:20A86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8\r\n:20A88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8\r\n:20A8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8\r\n:20A8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98\r\n:20A8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78\r\n:20A90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57\r\n:20A92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37\r\n:20A94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17\r\n:20A96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7\r\n:20A98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7\r\n:20A9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7\r\n:20A9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97\r\n:20A9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77\r\n:20AA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56\r\n:20AA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36\r\n:20AA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16\r\n:20AA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6\r\n:20AA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6\r\n:20AAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6\r\n:20AAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96\r\n:20AAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76\r\n:20AB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55\r\n:20AB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35\r\n:20AB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15\r\n:20AB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5\r\n:20AB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5\r\n:20ABA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5\r\n:20ABC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95\r\n:20ABE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75\r\n:20AC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54\r\n:20AC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34\r\n:20AC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14\r\n:20AC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4\r\n:20AC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4\r\n:20ACA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4\r\n:20ACC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94\r\n:20ACE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74\r\n:20AD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53\r\n:20AD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33\r\n:20AD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13\r\n:20AD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3\r\n:20AD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3\r\n:20ADA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3\r\n:20ADC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93\r\n:20ADE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73\r\n:20AE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52\r\n:20AE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32\r\n:20AE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12\r\n:20AE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2\r\n:20AE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2\r\n:20AEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2\r\n:20AEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92\r\n:20AEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72\r\n:20AF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51\r\n:20AF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31\r\n:20AF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11\r\n:20AF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1\r\n:20AF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1\r\n:20AFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1\r\n:20AFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91\r\n:20AFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71\r\n:20B00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50\r\n:20B02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30\r\n:20B04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10\r\n:20B06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0\r\n:20B08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0\r\n:20B0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0\r\n:20B0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90\r\n:20B0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70\r\n:20B10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F\r\n:20B12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F\r\n:20B14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F\r\n:20B16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF\r\n:20B18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF\r\n:20B1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF\r\n:20B1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F\r\n:20B1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F\r\n:20B20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E\r\n:20B22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E\r\n:20B24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E\r\n:20B26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE\r\n:20B28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE\r\n:20B2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE\r\n:20B2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E\r\n:20B2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E\r\n:20B30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D\r\n:20B32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D\r\n:20B34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D\r\n:20B36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED\r\n:20B38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD\r\n:20B3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD\r\n:20B3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D\r\n:20B3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D\r\n:20B40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C\r\n:20B42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C\r\n:20B44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C\r\n:20B46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC\r\n:20B48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC\r\n:20B4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC\r\n:20B4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C\r\n:20B4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C\r\n:20B50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B\r\n:20B52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B\r\n:20B54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B\r\n:20B56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB\r\n:20B58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB\r\n:20B5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB\r\n:20B5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B\r\n:20B5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B\r\n:20B60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A\r\n:20B62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A\r\n:20B64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A\r\n:20B66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA\r\n:20B68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA\r\n:20B6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA\r\n:20B6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A\r\n:20B6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A\r\n:20B70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49\r\n:20B72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29\r\n:20B74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09\r\n:20B76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9\r\n:20B78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9\r\n:20B7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9\r\n:20B7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89\r\n:20B7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69\r\n:20B80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48\r\n:20B82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28\r\n:20B84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08\r\n:20B86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8\r\n:20B88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8\r\n:20B8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8\r\n:20B8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88\r\n:20B8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68\r\n:20B90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47\r\n:20B92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27\r\n:20B94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07\r\n:20B96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7\r\n:20B98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7\r\n:20B9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7\r\n:20B9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87\r\n:20B9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67\r\n:20BA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46\r\n:20BA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26\r\n:20BA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06\r\n:20BA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6\r\n:20BA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6\r\n:20BAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6\r\n:20BAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86\r\n:20BAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66\r\n:20BB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45\r\n:20BB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25\r\n:20BB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05\r\n:20BB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5\r\n:20BB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5\r\n:20BBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5\r\n:20BBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85\r\n:20BBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65\r\n:20BC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44\r\n:20BC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24\r\n:20BC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04\r\n:20BC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4\r\n:20BC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4\r\n:20BCA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4\r\n:20BCC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84\r\n:20BCE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64\r\n:20BD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43\r\n:20BD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23\r\n:20BD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03\r\n:20BD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3\r\n:20BD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3\r\n:20BDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3\r\n:20BDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83\r\n:20BDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63\r\n:20BE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42\r\n:20BE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22\r\n:20BE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02\r\n:20BE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2\r\n:20BE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2\r\n:20BEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2\r\n:20BEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82\r\n:20BEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62\r\n:20BF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41\r\n:20BF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21\r\n:20BF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01\r\n:20BF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1\r\n:20BF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1\r\n:20BFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1\r\n:20BFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81\r\n:20BFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61\r\n:20C00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40\r\n:20C02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20\r\n:20C04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00\r\n:20C06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0\r\n:20C08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0\r\n:20C0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0\r\n:20C0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80\r\n:20C0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60\r\n:20C10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F\r\n:20C12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F\r\n:20C14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\r\n:20C16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF\r\n:20C18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF\r\n:20C1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F\r\n:20C1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F\r\n:20C1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F\r\n:20C20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E\r\n:20C22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E\r\n:20C24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\r\n:20C26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE\r\n:20C28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE\r\n:20C2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E\r\n:20C2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E\r\n:20C2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E\r\n:20C30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D\r\n:20C32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D\r\n:20C34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD\r\n:20C36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD\r\n:20C38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD\r\n:20C3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D\r\n:20C3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D\r\n:20C3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D\r\n:20C40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C\r\n:20C42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C\r\n:20C44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC\r\n:20C46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC\r\n:20C48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC\r\n:20C4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C\r\n:20C4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C\r\n:20C4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C\r\n:20C50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B\r\n:20C52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B\r\n:20C54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB\r\n:20C56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB\r\n:20C58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB\r\n:20C5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B\r\n:20C5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B\r\n:20C5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B\r\n:20C60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A\r\n:20C62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A\r\n:20C64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA\r\n:20C66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA\r\n:20C68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA\r\n:20C6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A\r\n:20C6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A\r\n:20C6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A\r\n:20C70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39\r\n:20C72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19\r\n:20C74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9\r\n:20C76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9\r\n:20C78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9\r\n:20C7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99\r\n:20C7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79\r\n:20C7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59\r\n:20C80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38\r\n:20C82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18\r\n:20C84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8\r\n:20C86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8\r\n:20C88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8\r\n:20C8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98\r\n:20C8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78\r\n:20C8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58\r\n:20C90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37\r\n:20C92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17\r\n:20C94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7\r\n:20C96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7\r\n:20C98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7\r\n:20C9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97\r\n:20C9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77\r\n:20C9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57\r\n:20CA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36\r\n:20CA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16\r\n:20CA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6\r\n:20CA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6\r\n:20CA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6\r\n:20CAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96\r\n:20CAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76\r\n:20CAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56\r\n:20CB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35\r\n:20CB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15\r\n:20CB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5\r\n:20CB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5\r\n:20CB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5\r\n:20CBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95\r\n:20CBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75\r\n:20CBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55\r\n:20CC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34\r\n:20CC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14\r\n:20CC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4\r\n:20CC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4\r\n:20CC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4\r\n:20CCA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94\r\n:20CCC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74\r\n:20CCE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54\r\n:20CD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33\r\n:20CD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13\r\n:20CD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3\r\n:20CD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3\r\n:20CD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3\r\n:20CDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93\r\n:20CDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73\r\n:20CDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53\r\n:20CE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32\r\n:20CE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12\r\n:20CE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2\r\n:20CE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2\r\n:20CE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2\r\n:20CEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92\r\n:20CEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72\r\n:20CEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52\r\n:20CF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31\r\n:20CF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11\r\n:20CF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1\r\n:20CF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1\r\n:20CF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1\r\n:20CFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91\r\n:20CFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71\r\n:20CFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51\r\n:20D00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30\r\n:20D02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10\r\n:20D04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0\r\n:20D06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0\r\n:20D08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0\r\n:20D0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90\r\n:20D0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70\r\n:20D0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50\r\n:20D10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F\r\n:20D12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F\r\n:20D14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF\r\n:20D16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF\r\n:20D18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF\r\n:20D1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F\r\n:20D1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F\r\n:20D1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F\r\n:20D20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E\r\n:20D22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E\r\n:20D24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE\r\n:20D26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE\r\n:20D28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE\r\n:20D2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E\r\n:20D2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E\r\n:20D2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E\r\n:20D30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D\r\n:20D32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D\r\n:20D34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED\r\n:20D36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD\r\n:20D38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD\r\n:20D3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D\r\n:20D3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D\r\n:20D3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D\r\n:20D40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C\r\n:20D42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C\r\n:20D44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC\r\n:20D46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC\r\n:20D48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC\r\n:20D4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C\r\n:20D4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C\r\n:20D4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C\r\n:20D50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B\r\n:20D52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B\r\n:20D54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB\r\n:20D56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB\r\n:20D58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB\r\n:20D5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B\r\n:20D5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B\r\n:20D5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B\r\n:20D60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A\r\n:20D62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A\r\n:20D64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA\r\n:20D66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA\r\n:20D68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA\r\n:20D6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A\r\n:20D6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A\r\n:20D6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A\r\n:20D70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29\r\n:20D72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09\r\n:20D74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9\r\n:20D76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9\r\n:20D78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9\r\n:20D7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89\r\n:20D7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69\r\n:20D7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49\r\n:20D80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28\r\n:20D82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08\r\n:20D84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8\r\n:20D86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8\r\n:20D88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8\r\n:20D8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88\r\n:20D8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68\r\n:20D8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48\r\n:20D90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27\r\n:20D92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07\r\n:20D94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7\r\n:20D96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7\r\n:20D98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7\r\n:20D9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87\r\n:20D9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67\r\n:20D9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47\r\n:20DA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26\r\n:20DA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06\r\n:20DA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6\r\n:20DA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6\r\n:20DA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6\r\n:20DAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86\r\n:20DAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66\r\n:20DAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46\r\n:20DB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25\r\n:20DB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05\r\n:20DB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5\r\n:20DB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5\r\n:20DB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5\r\n:20DBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85\r\n:20DBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65\r\n:20DBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45\r\n:20DC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24\r\n:20DC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04\r\n:20DC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4\r\n:20DC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4\r\n:20DC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4\r\n:20DCA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84\r\n:20DCC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64\r\n:20DCE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44\r\n:20DD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23\r\n:20DD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03\r\n:20DD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3\r\n:20DD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3\r\n:20DD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3\r\n:20DDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83\r\n:20DDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63\r\n:20DDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43\r\n:20DE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22\r\n:20DE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02\r\n:20DE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2\r\n:20DE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2\r\n:20DE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\n:204960FFFFFA2\r\n:20DEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82\r\n:20DEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62\r\n:20DEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42\r\n:20DF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21\r\n:20DF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01\r\n:20DF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1\r\n:20DF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1\r\n:20DF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1\r\n:20DFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81\r\n:20DFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61\r\n:20DFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41\r\n:20E00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20\r\n:20E02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00\r\n:20E04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0\r\n:20E06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0\r\n:20E08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0\r\n:20E0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80\r\n:20E0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60\r\n:20E0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40\r\n:20E10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F\r\n:20E12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\r\n:20E14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF\r\n:20E16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF\r\n:20E18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F\r\n:20E1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F\r\n:20E1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F\r\n:20E1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F\r\n:20E20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E\r\n:20E22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\r\n:20E24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE\r\n:20E26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFSFFFFFFFFFFFFFFFFFFFFFFFFBE\r\n:20E28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E\r\n:20E2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E\r\n:20E2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E\r\n:20E2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E\r\n:20E30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D\r\n:20E32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD\r\n:20E34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD\r\n:20E36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD\r\n:20E38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D\r\n:20E3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D\r\n:20E3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D\r\n:20E3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D\r\n:20E40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C\r\n:20E42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC\r\n:20E44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC\r\n:20E46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC\r\n:20E48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C\r\n:20E4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C\r\n:20E4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C\r\n:20E4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C\r\n:20E50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B\r\n:20E52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB\r\n:20E54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB\r\n:20E56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB\r\n:20E58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B\r\n:20E5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B\r\n:20E5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B\r\n:20E5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B\r\n:20E60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A\r\n:20E62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA\r\n:20E64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA\r\n:20E66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA\r\n:20E68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A\r\n:20E6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A\r\n:20E6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A\r\n:20E6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A\r\n:20E70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19\r\n:20E72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9\r\n:20E74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9\r\n:20E76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9\r\n:20E78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99\r\n:20E7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79\r\n:20E7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59\r\n:20E7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39\r\n:20E80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18\r\n:20E82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8\r\n:20E84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8\r\n:20E86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8\r\n:20E88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98\r\n:20E8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78\r\n:20E8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58\r\n:20E8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38\r\n:20E90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17\r\n:20E92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7\r\n:20E94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7\r\n:20E96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7\r\n:20E98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97\r\n:20E9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77\r\n:20E9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57\r\n:20E9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37\r\n:20EA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16\r\n:20EA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6\r\n:20EA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6\r\n:20EA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6\r\n:20EA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96\r\n:20EAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76\r\n:20EAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56\r\n:20EAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36\r\n:20EB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15\r\n:20EB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5\r\n:20EB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5\r\n:20EB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5\r\n:20EB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95\r\n:20EBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75\r\n:20EBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55\r\n:20EBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35\r\n:20EC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14\r\n:20EC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4\r\n:20EC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4\r\n:20EC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4\r\n:20EC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94\r\n:20ECA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74\r\n:20ECC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54\r\n:20ECE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34\r\n:20ED0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13\r\n:20ED2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3\r\n:20ED4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3\r\n:20ED6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3\r\n:20ED8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93\r\n:20EDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73\r\n:20EDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53\r\n:20EDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33\r\n:20EE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12\r\n:20EE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2\r\n:20EE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2\r\n:20EE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2\r\n:20EE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92\r\n:20EEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72\r\n:20EEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52\r\n:20EEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32\r\n:20EF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11\r\n:20EF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1\r\n:20EF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1\r\n:20EF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1\r\n:20EF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91\r\n:20EFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71\r\n:20EFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51\r\n:20EFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31\r\n:20F00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10\r\n:20F02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0\r\n:20F04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0\r\n:20F06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0\r\n:20F08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90\r\n:20F0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70\r\n:20F0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50\r\n:20F0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30\r\n:20F10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F\r\n:20F12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF\r\n:20F14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF\r\n:20F16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF\r\n:20F18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F\r\n:20F1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F\r\n:20F1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F\r\n:20F1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F\r\n:20F20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E\r\n:20F22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE\r\n:20F24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE\r\n:20F26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE\r\n:20F28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E\r\n:20F2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E\r\n:20F2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E\r\n:20F2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E\r\n:20F30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D\r\n:20F32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED\r\n:20F34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD\r\n:20F36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD\r\n:20F38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D\r\n:20F3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D\r\n:20F3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D\r\n:20F3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D\r\n:20F40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C\r\n:20F42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC\r\n:20F44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC\r\n:20F46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC\r\n:20F48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C\r\n:20F4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C\r\n:20F4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C\r\n:20F4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C\r\n:20F50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B\r\n:20F52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB\r\n:20F54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB\r\n:20F56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB\r\n:20F58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B\r\n:20F5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B\r\n:20F5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B\r\n:20F5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B\r\n:20F60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A\r\n:20F62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA\r\n:20F64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA\r\n:20F66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA\r\n:20F68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A\r\n:20F6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A\r\n:20F6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A\r\n:20F6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A\r\n:20F70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09\r\n:20F72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9\r\n:20F74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9\r\n:20F76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9\r\n:20F78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89\r\n:20F7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69\r\n:20F7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49\r\n:20F7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29\r\n:20F80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08\r\n:20F82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8\r\n:20F84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8\r\n:20F86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8\r\n:20F88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88\r\n:20F8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68\r\n:20F8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48\r\n:20F8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28\r\n:20F90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07\r\n:20F92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7\r\n:20F94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7\r\n:20F96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7\r\n:20F98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87\r\n:20F9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67\r\n:20F9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47\r\n:20F9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27\r\n:20FA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06\r\n:20FA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6\r\n:20FA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6\r\n:20FA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6\r\n:20FA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86\r\n:20FAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66\r\n:20FAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46\r\n:20FAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26\r\n:20FB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05\r\n:20FB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5\r\n:20FB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5\r\n:20FB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5\r\n:20FB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85\r\n:20FBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65\r\n:20FBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45\r\n:20FBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25\r\n:20FC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04\r\n:20FC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4\r\n:20FC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4\r\n:20FC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4\r\n:20FC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84\r\n:20FCA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64\r\n:20FCC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44\r\n:20FCE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24\r\n:20FD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03\r\n:20FD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3\r\n:20FD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3\r\n:20FD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3\r\n:20FD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83\r\n:20FDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63\r\n:20FDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43\r\n:20FDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23\r\n:20FE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02\r\n:20FE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2\r\n:20FE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2\r\n:20FE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2\r\n:20FE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82\r\n:20FEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62\r\n:20FEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42\r\n:20FEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22\r\n:20FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01\r\n:20FF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1\r\n:20FF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1\r\n:20FF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1\r\n:20FF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81\r\n:20FFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61\r\n:20FFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41\r\n:20FFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21\r\n:020000047FFF7C\r\n:2000000064000100000084420080AC4300005C42FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8\r\n:200020000A0014000000803F000000400000404000800C44FFFFFFFFFFFFFFFFFFFFFFFF5F\r\n:20004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0\r\n:20006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0\r\n:20008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80\r\n:2000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60\r\n:2000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40\r\n:2000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20\r\n:20010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\r\n:20012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF\r\n:20014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF\r\n:20016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F\r\n:20018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F\r\n:2001A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F\r\n:2001C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F\r\n:2001E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F\r\n:20020000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE\r\n:20022000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE\r\n:20024000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE\r\n:20026000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E\r\n:20028000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E\r\n:2002A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E\r\n:2002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E\r\n:2002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E\r\n:20030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD\r\n:20032000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD\r\n:20034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD\r\n:20036000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D\r\n:20038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D\r\n:2003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D\r\n:2003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D\r\n:2003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D\r\n:20040000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC\r\n:20042000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC\r\n:20044000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC\r\n:20046000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C\r\n:20048000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C\r\n:2004A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C\r\n:2004C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C\r\n:2004E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C\r\n:20050000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB\r\n:20052000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB\r\n:20054000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB\r\n:20056000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B\r\n:20058000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B\r\n:2005A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B\r\n:2005C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B\r\n:2005E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B\r\n:20060000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA\r\n:20062000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA\r\n:20064000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA\r\n:20066000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A\r\n:20068000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A\r\n:2006A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A\r\n:2006C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A\r\n:2006E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A\r\n:20070000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9\r\n:20072000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9\r\n:20074000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9\r\n:20076000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99\r\n:20078000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79\r\n:2007A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59\r\n:2007C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39\r\n:2007E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19\r\n:20080000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8\r\n:20082000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8\r\n:20084000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8\r\n:20086000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98\r\n:20088000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78\r\n:2008A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58\r\n:2008C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38\r\n:2008E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18\r\n:20090000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7\r\n:20092000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7\r\n:20094000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7\r\n:20096000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97\r\n:20098000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77\r\n:2009A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57\r\n:2009C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37\r\n:2009E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17\r\n:200A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6\r\n:200A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6\r\n:200A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6\r\n:200A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96\r\n:200A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76\r\n:200AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56\r\n:200AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36\r\n:200AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16\r\n:200B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5\r\n:200B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5\r\n:200B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5\r\n:200B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95\r\n:200B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75\r\n:200BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55\r\n:200BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35\r\n:200BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15\r\n:200C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4\r\n:200C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4\r\n:200C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4\r\n:200C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94\r\n:200C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74\r\n:200CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54\r\n:200CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34\r\n:200CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14\r\n:200D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3\r\n:200D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3\r\n:200D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3\r\n:200D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93\r\n:200D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73\r\n:200DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53\r\n:200DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33\r\n:200DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13\r\n:200E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2\r\n:200E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2\r\n:200E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2\r\n:200E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92\r\n:200E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72\r\n:200EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52\r\n:200EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32\r\n:200EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12\r\n:200F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1\r\n:200F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1\r\n:200F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1\r\n:200F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91\r\n:200F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71\r\n:200FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51\r\n:200FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31\r\n:200FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11\r\n:00000001FF\r\n") diff --git a/srec19/hex_test.go b/srec19/hex_test.go index 7e77ede..2a74a18 100644 --- a/srec19/hex_test.go +++ b/srec19/hex_test.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" "os" + "strconv" "strings" "testing" "time" @@ -32,6 +33,7 @@ func FuzzParseHex(f *testing.F) { zerolog.SetGlobalLevel(zerolog.WarnLevel) hexPath := "testing/ASAP2_Demo_V171.s19" text, _ := readFileToString(hexPath) + var errList []error f.Add(text) f.Fuzz(func(t *testing.T, orig string) { @@ -41,11 +43,21 @@ func FuzzParseHex(f *testing.F) { //in case unix line terminator is used. lines = strings.Split(orig, "\n") } - _, err := parseHex(lines) - if err != nil && err.Error() != "invalid checksums detected" { - log.Err(err).Msg("could not parse hex-file") - log.Err(err).Msg(orig) - t.Error() + h, err := parseHex(lines) + if err != nil { + exists := false + for _, e := range errList { + if err == e { + exists = true + break + } + } + if !exists { + errList = append(errList, err) + fmt.Println(len(h)) + log.Err(err).Msg("could not parse s19-file with length " + strconv.Itoa(len(h))) + log.Err(err).Msg(orig) + } } }) } diff --git a/srec19/record.go b/srec19/record.go index 19e77c6..9cc4b57 100644 --- a/srec19/record.go +++ b/srec19/record.go @@ -26,7 +26,7 @@ type record struct { func parseRecord(line string) (*record, error) { r := record{} r.recordType = line[1:2] - if line[0] == beginLineToken[0] && r.recordType == "3" { + if line[0] == beginLineToken[0] && r.recordType == "3" && len(line) >= 12 { r.byteCount = line[2:4] r.addressField = line[4:12] for i := 12; i < len(line)-3; i += 2 {