From 9d6c6e32b7137a2773913241a69a7417346b7535 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Thomas?= <60735132+Clementthomass@users.noreply.github.com> Date: Thu, 17 Oct 2024 14:42:58 +0200 Subject: [PATCH] QTM1 Code (#4) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Pkg updates with implementation of Task 1 and 2 * Update DESCRIPTION Authors added * Update sample data path and added authors * Remove R from man * gitignore updated * DESCRIPTION add httr dependence * Add functions classEndpoin correspondenceList prefixList retrieveClassificationTable retrieveCorrespondenceTable structureData * rm library * Update functions * Documentation functions * Update functions description and first version of vignettes * rm vignettes * Update documentation classification table and vignettes * Update vignettes * htlm vignettes * Update documentation * update vignette * update vignette * update vignettes * Add CSVout parameter to both retrieve function and update documentation and vignette * add import httr * remove tables * -add ShowQUERY argument -change functions names (dataStructure and Classification table) -add columns and change orders to correspondence tables -remove prefix duplicates -final docs -others * Final version (there might be error to check) * vignette corrected * quiete messages sparql query * correct typos * Update final changes * Updated vignette * add ALL as default to classificationEndpoint * change doc for classificationEndpoint * remove table * Functions task 4 * Upload drafted documentation * task 4 draft * try function classification QC * UPDATE * update * Update view is an issue * update * Update Corrections for the rule 7 8 for Classification * Modify the function remove the link for both csv file on rule 7 & 8 * Modify the function remove the link for both csv file on rule 7 & 8 * change * add rmd and vignette * modification of the commentatry on the different function * Update of the function Correspondences Table add update from Classification QC and add new function AnalyseCorrespondenceQC * put FAO in commentaire because the query has change so he will product some error message * MODIFICATION * remove because don't need it now * ZREMOVE * Update * remove * Rename the name of the variable on the explanation part * Remove the correction for the data * Vignette of the task 5 * updated * updated * modification and add the vignette * REMOVE * Modify the comment * add the vignette for the analyse CorrespondenceTable * Update csvout * Modify the reader for the csv * Modify the imput of the CSV and put the good argument for the function * modify the path for reading csv * Modify the csvoutput the user can put his own path to create his own csv file * Update it * Add one column and allow the user to put a path * update * update * mistake * white space * testing * Modify the example remove all read with dataframe. Modify the commentary of the function Add new example on the vignettes * General update * Next version * Modify the example to use just a path * Create a csvFile when running the function of ClassificationQC. * Modify the comment * mistake * change it * remove a details * correction * fix issue * push * remove comments on example * Uopdate verification on the different csv file Fixed issue on the duplicate and about the 3 error message * remove text * Modification of the Query the old one retrieve nothing * Erreur de saisie sur les exemples * forget the parameters Level * fixed * Modifiy the bulle * deleted * removed * New version * erreur de frappe * FORGET TO PUT IN COMMENT * modification of the query and had a function to see the output clearly "cat" * Modification of the order of the output * changes the example for retrieveCorrespondenceTable to retrieve data * Put it in comment take too much time and gave an error * rework of the checking from the csv file for lenghts sequencing multiplecode And rework for the CSVOUT * Erreur de saisie * fix * push * Adding data and example for the vignette ClassificationQc * remove some weird comment * update * add more comment because it's confusing * remove * Testing QcOutput * add gsub to obtain a clean csv file * Adding the output for the different rules * Testing RetrieveClassification() with other languages * modification of the query and adapt the code in order to retrieve the prefix and conceptScheme * Adding an option for the user if he put his own csv the function will write the output inside * changing the example with an other language * Adding a real exaample with singleChildCode * Correcting the querry for FAO and R005 FIXED * adding * Testing the vignette with another language * Changing the format * Modification of the security for the sequencing file and modification for the Sequencing part * Add another example for singleCode * adding tools & 9.6 * un import en trop * Example Task 6 * Remove comment * remowe whitespace * remove * removed * Add tasking 6 * REMOVE EXAMPLE * new version * Modification of the sequencing argument the user now can put the different levels for testing the sequencing * Adding aggregate CorrespondanceTable * Update the description * adding * Adding Example for ClassificationQC * New version with example * remove na.omit * modify commentary and fix the csv file * remove view * Issue fixed * Adding Vignette for task 6 & Example as output excepted * Add the output of the vignette * Allow the user to provide his own csv file to be modified * Classification QC fix issue on SingleChildMAtch sequencing and multipleCode * finding the solution for gapbefore = 9 * Solution added for Qc gab before * Adding the good output for the download data * Adding new example for Analyse CorrespondenceTable. * the querry now only displays the prefixes required for it to work * the querry now only displays the prefixes required for it to work * the querry now only displays the prefixes required for it to work * Modification is null second parameter * Modification allow to add multiple prefix in the list * Modification of the prefix list * Update of the explanation * Update of the package modification of the queries for retrieveclassification & retrieveCorrespondenceTable adding new example for the task 5 modification of Classification QC * Update README.md adding all the function * Update README.md * Update README.md udpate comment of readme * Update README.md * Update of the classification QC * Description de vos modifications --------- Co-authored-by: Martina Patone Co-authored-by: martinapatone <32480930+martinapatone@users.noreply.github.com> Co-authored-by: Mészáros Mátyás <34501282+mmatyi@users.noreply.github.com> --- DESCRIPTION | 8 +- NAMESPACE | 16 +- R/aggregateCorrespondenceTable.R | 325 ++ R/analyseCorrespondancetable.R | 335 ++ R/classificationEndpoint.R | 33 +- R/classificationQC.R | 1032 ++-- R/correspondenceList.R | 18 +- R/dataStructure.R | 9 +- R/prefixList.R | 87 +- R/retrieveClassificationTable.R | 148 +- R/retrieveCorrespondenceTable..R | 189 +- README.md | 35 +- ..._NACE.Rev..2.Code & NACE.Rev..2.1.Code.csv | 4945 +++++++++++++++++ .../extdata/CorrespondenceAnalysisExample.csv | 42 + .../CorrespondenceInventoryExample.csv | 9 + inst/extdata/ExempleAnnexe.csv | 42 + inst/extdata/Nace2.csv | 997 ++++ inst/extdata/QC_Output.csv | 997 ++++ inst/extdata/QC_output_Code.csv | 997 ++++ inst/extdata/Sequencing.csv | 4 + inst/extdata/SingleChild.csv | 4 + inst/extdata/SingleChild2.csv | 4 + inst/extdata/a_data.csv | 997 ++++ inst/extdata/ab_data.csv | 929 ++++ inst/extdata/b_data.csv | 1047 ++++ inst/extdata/lenghtsNace.CSV | 5 + inst/extdata/lenghtsNaceNoColumn.csv | 4 + man/aggregateCorrespondenceTable.Rd | 34 + man/analyseCorrespondenceTable.Rd | 55 + man/classificationQC.Rd | 167 +- man/correspondenceList.Rd | 10 +- man/dataStructure.Rd | 25 +- man/prefixList.Rd | 7 +- man/retrieveClassificationTable.Rd | 43 +- man/retrieveCorrespondenceTable.Rd | 51 +- vignettes/AnalyseCorrespondenceTable.html | 524 ++ vignettes/Analyse_CorrespondenceTable.Rmd | 67 + .../Implementation_of_sample_datasets.html | 220 +- ...assification_and_correspondence_tables.Rmd | 168 +- ...ssification_and_correspondence_tables.html | 143 +- .../VignetteAggregateClassificationQC.Rmd | 62 + vignettes/VignetteClassificationQC.Rmd | 141 + .../VignetteCorrectionAndLenghtsFile.Rmd | 144 + .../VignetteCorrectionAndLenghtsFile.html | 579 ++ ...ignette_Aggregate_CorrespondenceTable.html | 536 ++ ...gnette_Classification Quality Control.html | 595 ++ 46 files changed, 15801 insertions(+), 1028 deletions(-) create mode 100644 R/aggregateCorrespondenceTable.R create mode 100644 R/analyseCorrespondancetable.R create mode 100644 inst/extdata/AgrgregateCorrespondeceTable_NACE.Rev..2.Code & NACE.Rev..2.1.Code.csv create mode 100644 inst/extdata/CorrespondenceAnalysisExample.csv create mode 100644 inst/extdata/CorrespondenceInventoryExample.csv create mode 100644 inst/extdata/ExempleAnnexe.csv create mode 100644 inst/extdata/Nace2.csv create mode 100644 inst/extdata/QC_Output.csv create mode 100644 inst/extdata/QC_output_Code.csv create mode 100644 inst/extdata/Sequencing.csv create mode 100644 inst/extdata/SingleChild.csv create mode 100644 inst/extdata/SingleChild2.csv create mode 100644 inst/extdata/a_data.csv create mode 100644 inst/extdata/ab_data.csv create mode 100644 inst/extdata/b_data.csv create mode 100644 inst/extdata/lenghtsNace.CSV create mode 100644 inst/extdata/lenghtsNaceNoColumn.csv create mode 100644 man/aggregateCorrespondenceTable.Rd create mode 100644 man/analyseCorrespondenceTable.Rd create mode 100644 vignettes/AnalyseCorrespondenceTable.html create mode 100644 vignettes/Analyse_CorrespondenceTable.Rmd create mode 100644 vignettes/VignetteAggregateClassificationQC.Rmd create mode 100644 vignettes/VignetteClassificationQC.Rmd create mode 100644 vignettes/VignetteCorrectionAndLenghtsFile.Rmd create mode 100644 vignettes/VignetteCorrectionAndLenghtsFile.html create mode 100644 vignettes/Vignette_Aggregate_CorrespondenceTable.html create mode 100644 vignettes/Vignette_Classification Quality Control.html diff --git a/DESCRIPTION b/DESCRIPTION index 3a79150..676292e 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: correspondenceTables Type: Package Title: Creating Correspondence Tables Between Two Statistical Classifications -Date: 2023-04-27 -Version: 0.8.2 +Date: 2022-09-30 +Version: 0.9.9 Authors@R: c(person("Vasilis", "Chasiotis", role = "aut", comment="Department of Statistics, Athens University of Economics and Business"), person("Photis", "Stavropoulos", role = "aut", comment="Quantos S.A. Statistics and Information Systems"), person("Martin", "Karlberg", role = "aut"), @@ -10,13 +10,13 @@ Authors@R: c(person("Vasilis", "Chasiotis", role = "aut", comment="Department of person("Martina", "Patone", role = "aut"), person("Erkand", "Muraku", role = "aut"), person("Clement", "Thomas", role = "aut"), - person("Loic", "Bienvenue", role = "aut")) + person("Loic", "Bienvenu", role = "aut")) Description: A candidate correspondence table between two classifications can be created when there are correspondence tables leading from the first classification to the second one via intermediate 'pivot' classifications. The correspondence table between two statistical classifications can be updated when one of the classifications gets updated to a new version. License: EUPL Encoding: UTF-8 -Imports: data.table, httr, tidyverse, writexl +Imports: data.table, httr, tidyverse, writexl, stringr, igraph, tools Suggests: knitr, rmarkdown, diff --git a/NAMESPACE b/NAMESPACE index d41834b..c2718ae 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,26 +1,26 @@ # Generated by roxygen2: do not edit by hand +export(aggregateCorrespondenceTable) +export(analyseCorrespondenceTable) export(classificationEndpoint) export(classificationQC) -export(correctionClassification) export(correspondenceList) export(dataStructure) -export(lengthsFile) export(newCorrespondenceTable) export(prefixList) export(retrieveClassificationTable) export(retrieveCorrespondenceTable) -export(structureData) export(updateCorrespondenceTable) import(httr) -import(tidyverse) -import(writexl) +import(igraph) importFrom(data.table,fread) importFrom(data.table,fwrite) -importFrom(httr,POST) -importFrom(httr,accept) -importFrom(httr,content) +importFrom(igraph,decompose.graph) +importFrom(igraph,graph.data.frame) importFrom(stats,aggregate) +importFrom(stringr,str_squish) +importFrom(stringr,str_sub) +importFrom(tools,file_ext) importFrom(utils,menu) importFrom(utils,read.csv) importFrom(utils,setTxtProgressBar) diff --git a/R/aggregateCorrespondenceTable.R b/R/aggregateCorrespondenceTable.R new file mode 100644 index 0000000..8f34703 --- /dev/null +++ b/R/aggregateCorrespondenceTable.R @@ -0,0 +1,325 @@ +#' @title aggregateCorrespondenceTable aggregates correspondence tables to higher hierarchical levels +#' @description The `aggregateCorrespondenceTable` function is designed to aggregate correspondence tables between two hierarchical classifications A and B to higher hierarchical levels. This is particularly useful when correspondence information is needed at levels other than the most granular level. The function provides a 'mechanically defined' aggregation, offering users candidate aggregations for subsequent analysis by statistical classification experts. +#' @param AB a mandatory argument containing a correspondence table data frame with columns "Acode" and "Bcode" representing the correspondence between classifications A and B at the most granular level. This argument is mandatory +#' @param A a path to a CSV file containing source classification data with an Acode ALevel,ASuperior column. This argument is mandatory +#' @param B a path to a CSV file containing target classification data with a Bcode Blevel BSuperior column. This argument is mandatory +#' +#' @param CSVout a character string providing the path where the aggregated correspondence table CSV file should be saved. If NULL, no CSV file is generated. +#' +#' @return A data frame representing the aggregated correspondence table. +#' +#' @export +#' @examples +#' # Use data from the folder extdata +#' AB <- (system.file("extdata", "ab_data.csv", package = "correspondenceTables")) +#' A <- (system.file("extdata", "a_data.csv", package = "correspondenceTables")) +#' B <- (system.file("extdata", "b_data.csv", package = "correspondenceTables")) +#' +#' +#' result <- aggregateCorrespondenceTable(AB = AB, A = A, B = B, CSVout = FALSE) +#' print(result) +#' +aggregateCorrespondenceTable <- function(AB, A, B, CSVout = NULL ) { + # Check if input files exist + if (!file.exists(AB) || !file.exists(A) || !file.exists(B)) { + stop("One or more input files do not exist.") + } + # Check if the input files are csv + if (!grepl("\\.csv$", AB) || !grepl("\\.csv$", A) || !grepl("\\.csv$", B)) { + stop("One or more input files do not have a .csv extension.") + } + + # Read the input correspondence table AB + ab_data <- read.csv2(AB, header = TRUE, sep =",") + ColumnNames <- colnames(ab_data)[1:2] + colnames(ab_data)[1:2] = c("Acode","Bcode") + # Check if AB table has the required columns + if (!all(c("Acode", "Bcode") %in% colnames(ab_data))) { + stop("Input correspondence table AB must have columns 'Acode' and 'Bcode'.") + } + + # Check for duplicate combinations of Acode and Bcode in AB + if (any(duplicated(ab_data[c("Acode", "Bcode")]))) { + stop("Duplicate combinations of Acode and Bcode found in the input correspondence table AB.") + } + + # Filter out records with missing Acode or Bcode + ab_data <- ab_data[!is.na(ab_data$Acode) & !is.na(ab_data$Bcode), ] + + # Check if there are any records left + if (nrow(ab_data) == 0) { + stop("No valid records found in the input correspondence table AB.") + } + + ######## + ####Read the source classification table A + a_data <- read.csv(A, header = TRUE, sep = ",") + colnames(a_data)[1:3] = c("Acode","Alevel","Asuperior") + # Check if A table has the required columns + if (!all(c("Acode", "Alevel", "Asuperior") %in% colnames(a_data))) { + stop("Source classification table A must have columns 'Acode', 'Alevel', and 'Asuperior'.") + } + + #Uniqueness 3.2 Check for duplicate Acode values in A + if (any(duplicated(a_data$Acode))) { + stop("Duplicate Acode values found in the source classification table A.") + } + + # Check if Alevel is numeric + if (!all(is.numeric(a_data$Alevel))) { + stop("Alevel column in the source classification table A must contain numeric values.") + } + + # Check if Asuperior is a character or blank + if (!all(is.character(a_data$Asuperior) | a_data$Alevel == 1)) { + stop("Asuperior column in the source classification table A must contain characters or be blank for records at level 1.") + } + + # Initialize the variable to store the current level for A + mostGranularA <- max(a_data$Alevel) + currentLevelA <- mostGranularA + + # Loop to check hierarchy at each level for A + while (currentLevelA >= 2) { + # Select rows at the current level and the level below + Ai <- a_data[a_data$Alevel == currentLevelA, ] + AiMinus1 <- a_data[a_data$Alevel == (currentLevelA - 1), ] + + # Check if all values of Asuperior (in Ai) correspond to values of Acode (in AiMinus1) + error_rows <- which(!(Ai$Asuperior %in% AiMinus1$Acode)) + if (length(error_rows) > 0) { + cat("Hierarchy error in A-data at level:", currentLevelA, "\n") + cat("Error occurred in rows:", error_rows, "\n") + break # Exit the loop if an error is detected + } + + # Check if all values of Acode (in AiMinus1) correspond to values of Asuperior (in Ai) + error_rows <- which(!(AiMinus1$Acode %in% Ai$Asuperior)) + if (length(error_rows) > 0) { + cat("Hierarchy error in A-data at level:", currentLevelA - 1, "\n") + cat("Error occurred in rows:", error_rows, "\n") + break # Exit the loop if an error is detected + } + + # Move to the next level + currentLevelA <- currentLevelA - 1 + } + + # Read the target classification table B + b_data <- read.csv(B, header = TRUE, sep = ",") + colnames(b_data)[1:3] = c("Bcode","Blevel","Bsuperior") + # Check if B table has the required columns + if (!all(c("Bcode", "Blevel", "Bsuperior") %in% colnames(b_data))) { + stop("Target classification table B must have columns 'Bcode', 'Blevel', and 'Bsuperior'.") + } + + #Uniqueness 3.2 Check for duplicate Bcode values in B + if (any(duplicated(b_data$Bcode))) { + stop("Duplicate Bcode values found in the target classification table B.") + } + + # Check if Blevel is numeric in B + if (!all(is.numeric(b_data$Blevel))) { + stop("Blevel column in the target classification table B must contain numeric values.") + } + + # Check if Bsuperior is a character or blank in B + if (!all(is.character(b_data$Bsuperior) | b_data$Blevel == 1)) { + stop("Bsuperior column in the target classification table B must contain characters or be blank for records at level 1.") + } + + # Initialize the variable to store the current level + mostGranularB <- max(b_data$Blevel) + currentLevelB <- mostGranularB + + # Loop to check hierarchy at each level for B + while (currentLevelB >= 2) { + # Select rows at the current level and the level below + Bi <- b_data[b_data$Blevel == currentLevelB, ] + BiMinus1 <- b_data[b_data$Blevel == (currentLevelB - 1), ] + + # Check if all values of Bsuperior (in Bi) correspond to values of Bcode (in BiMinus1) + error_rows <- which(!(Bi$Bsuperior %in% BiMinus1$Bcode)) + if (length(error_rows) > 0) { + cat("Hierarchy error in B-data at level:", currentLevelB, "\n") + cat("Error occurred in rows:", error_rows, "\n") + break # Exit the loop if an error is detected + } + + # Check if all values of Bcode (in BiMinus1) correspond to values of Bsuperior (in Bi) + error_rows <- which(!(BiMinus1$Bcode %in% Bi$Bsuperior)) + if (length(error_rows) > 0) { + cat("Hierarchy error in B_data at level:", currentLevelB - 1, "\n") + cat("Error occurred in rows:", error_rows, "\n") + break # Exit the loop if an error is detected + } + + # Move to the next level + currentLevelB <- currentLevelB - 1 + } + + #Uniqueness Check if Acode and Bcode in AB exist in A and B respectively + if (!all(ab_data$Acode %in% a_data$Acode) || !all(ab_data$Bcode %in% b_data$Bcode)) { + stop("Acode or Bcode in the input correspondence table does not exist in source or target classification table.") + } + + ###3.4 Correct and complete correspondences + + ###add additional the column because here you just add the code you need all the column + AmostGranular <- subset(a_data, Alevel == max(Alevel), select = c(Acode, Asuperior)) + BmostGranular <- subset(b_data, Blevel == max(Blevel), select = c(Bcode,Bsuperior)) + + AB_mostGranular <- merge(AmostGranular, BmostGranular, by.x = "Acode", by.y = "Bcode") + + if (!(all(ab_data$Acode %in% AmostGranular$Acode) && all(ab_data$Bcode %in% BmostGranular$Bcode))) { + stop("Acode or Bcode in the input correspondence table does not exist in source or target classification table.") + } + + if (!(all(AB_mostGranular$Acode %in% ab_data$Acode) && all(AB_mostGranular$Bcode %in% ab_data$Bcode))) { + stop("Acode or Bcode in the most granular correspondence table does not exist in the input correspondence table.") + } + ########## 4.1 Creation of the table and merge it. + + # Create an empty list to store the levels + A_levels <- list() + + # Loop through each level and subset the data + for (i in 1:mostGranularA) { + level_data <- subset(a_data, a_data$Alevel == i, select = c(Acode, Asuperior)) + A_levels[[i]] <- level_data + } + + # Create an empty data frame to store the final result for A + resultA <- data.frame() + + # Initialize the result with the most granular level for A + resultA <- A_levels[[mostGranularA]] + + # Merge the tables hierarchically starting from the second most granular level for A + for (i in (mostGranularA - 1):1) { + level_data <- A_levels[[i]] + + # Merge with the result using Asuperior and Acode columns + resultA <- merge(level_data, resultA, by.x = "Acode", by.y = "Asuperior", all.x = TRUE, all.y = TRUE, suffixes = c(paste0(".x", i), paste0(".y", i))) + + # Rename columns to reflect the hierarchy for A + colnames(resultA)[colnames(resultA) == paste0("Acode.x", i)] <- paste0("Acode", i) + colnames(resultA)[colnames(resultA) == paste0("Acode.y", i)] <- paste0("Acode", (i + 1)) + } + + # Result will contain the final aggregated correspondence table with hierarchical code columns for A + resultA$test <- resultA[[paste0("Acode", mostGranularA)]] + resultA$Asuperior <- NULL + + # Determine the most granular level dynamically + mostGranularB <- max(b_data$Blevel) + + # Create an empty list to store the levels + B_levels <- list() + + # Loop through each level and subset the data + for (i in 1:mostGranularB) { + level_data <- subset(b_data, b_data$Blevel == i, select = c(Bcode, Bsuperior)) + B_levels[[i]] <- level_data + } + + # Create an empty data frame to store the final result for B + resultB <- data.frame() + + # Initialize the result with the most granular level for B + resultB <- B_levels[[mostGranularB]] + + # Merge the tables hierarchically starting from the second most granular level for B + for (i in (mostGranularB - 1):1) { + level_data_B <- B_levels[[i]] + + # Merge with the result using Bsuperior and Bcode columns + resultB <- merge(level_data_B, resultB, by.x = "Bcode", by.y = "Bsuperior", all.x = TRUE, all.y = TRUE, suffixes = c(paste0(".x", i), paste0(".y", i))) + + # Rename columns to reflect the hierarchy for B + colnames(resultB)[colnames(resultB) == paste0("Bcode.x", i)] <- paste0("Bcode", i) + colnames(resultB)[colnames(resultB) == paste0("Bcode.y", i)] <- paste0("Bcode", (i + 1)) + } + + # Result will contain the final aggregated correspondence table with hierarchical code columns for B + resultB$test <- resultB[[paste0("Bcode", mostGranularB)]] + resultB$Bsuperior <- NULL + + + # Merge resultA and resultB using the 'test' column as the key + Merged_AB <- merge(resultA, resultB, by.x = "test", by.y = "test", all = F) + Merged_AB$test <- NULL + + + ##Table merged + final_result <-Merged_AB + ###4.2 Pairwise matching + + # Identify Acode and Bcode Columns + acode_columns <- grep("^Acode", colnames(final_result), value = TRUE) + bcode_columns <- grep("^Bcode", colnames(final_result), value = TRUE) + + # Loop Through Acode and Bcode Columns + results_matrices <- list() + + for (acode_column in acode_columns) { + level_Acode <- match(acode_column, acode_columns) + + for (bcode_column in bcode_columns) { + level_Bcode <- match(bcode_column, bcode_columns) + + unique_combinations <- unique(final_result[, c(acode_column, bcode_column)]) + + for (i in 1:nrow(unique_combinations)) { + combination <- unique_combinations[i, ] + + # Perform the equality comparison using subset + subset_data <- final_result[final_result[[acode_column]] == combination[[acode_column]] & + final_result[[bcode_column]] == combination[[bcode_column]], ] + + # Count Unique Occurrences + count_Acode <- sapply(acode_columns, function(col) length(unique(subset_data[[col]]))) + count_Bcode <- sapply(bcode_columns, function(col) length(unique(subset_data[[col]]))) + + # Build Results Matrix + result_matrix <- c(level_Acode, level_Bcode, combination[[acode_column]], combination[[bcode_column]], count_Acode, count_Bcode) + results_matrices <- append(results_matrices, list(result_matrix)) + } + } + } + + # Convert Matrices to Dataframe + results_df <- as.data.frame(do.call(rbind, results_matrices)) + + # Extract levels from Acode and Bcode columns + acode_levels <- gsub("^Acode(\\d+)$", "\\1", acode_columns) + bcode_levels <- gsub("^Bcode(\\d+)$", "\\1", bcode_columns) + max_levels <- max(length(acode_levels), length(bcode_levels)) + acode_levels <- rep(acode_levels, length.out = max_levels) + bcode_levels <- rep(bcode_levels, length.out = max_levels) + # Define the new column names + new_colnames <- c(paste0(ColumnNames[1]," level"), + paste0(ColumnNames[2]," level"), + ColumnNames[1], + ColumnNames[2], + paste0("N of ", ColumnNames[1], acode_levels, " level values "), + paste0("N of ", ColumnNames[2] , bcode_levels , " level values ")) + + # Update column names in results_df + colnames(results_df) <- new_colnames + # Display Results + + if (!is.null(CSVout)) { + if (is.logical(CSVout) && CSVout == TRUE) { + file_name <- paste0("AgrgregateCorrespondeceTable_", ColumnNames[1], " & ",ColumnNames[2], ".csv") + path_file <- file.path(getwd(), file_name) + write.csv(results_df, path_file, row.names = FALSE) + message(paste0("The table was saved in ", getwd(), file_name)) + } else if (is.character(CSVout)) { + write.csv(results_df, CSVout, row.names = FALSE) + } + } + return(results_df) + +} + diff --git a/R/analyseCorrespondancetable.R b/R/analyseCorrespondancetable.R new file mode 100644 index 0000000..e0ec721 --- /dev/null +++ b/R/analyseCorrespondancetable.R @@ -0,0 +1,335 @@ +#' @title analyseCorrespondenceTable performs analysis on correspondence tables +#' @description The `analyseCorrespondenceTable` function takes input correspondence tables (AB) and related data (A and B) to perform analysis and generate various statistics. +#' It checks the validity of the input data, identifies components, calculates correspondence types, and creates summary tables. +#' @param AB a mandatory argument containing a CSV file provide by the user contains the correspondence table data with columns "Acode" and "Bcode". +#' @param A a path to a CSV file containing source classification data with "Acode" column. +#' @param formatA A regular expression pattern to filter source classification data based on "Acode" should contains start & end position. +#' @param B a path to a CSV file containing target classification data with "Bcode" column. +#' @param formatB A regular expression pattern to filter target classification data based on "Bcode" should contains start & end position. +#' @param CSVcorrespondenceInventory The valid values are not NULL if the user put a path with a empty csv file it will return it with the correspondeceInventory or just a path with a csv file . By default no CSV is produce +#' @param CSVcorrespondenceAnalysis Provide an output containing the correpondenceAnalysis. the user put a path a empty file it will return with correpondenceAnalysis. by default no CSV is produce +#' @importFrom igraph graph.data.frame decompose.graph +#' @import igraph +#' +#' @return A list containing two data frames: Annexe_A and Annexe_B. +#' The `CSVcorrespondenceInventory` contains statistics related to components, correspondence types, and source/target positions. +#' The `CSVcorrespondenceAnalysis` contains statistics for each class in the correspondence table. +#' +#' @export +#' @examples +#' # Use data from the folder extdata +#' +#' +#' +#' +#' +#' +#' +#' +#' # Perform analysis +#' result <- analyseCorrespondenceTable(AB =system.file("extdata", "ExempleAnnexe.csv", package = "correspondenceTables"),A = NULL, formatA = NULL, B = NULL, formatB = NULL, CSVcorrespondenceInventory = NULL, CSVcorrespondenceAnalysis = NULL) +#' print(result$Annexe_A) +#' print(result$Annexe_B) + + + +analyseCorrespondenceTable <- function(AB, A = NULL, formatA = NULL, B = NULL, formatB = NULL, + CSVcorrespondenceInventory = NULL, CSVcorrespondenceAnalysis = NULL) { + + if (class(AB) == "character") { + # If AB is a character string, assume it's a path to a CSV file + input_file_path <- AB + + AB <- read.csv2(input_file_path, header = TRUE, sep = ",") + } else if (class(AB) == "data.frame") {} else { + stop("Parameter AB must be a path to a CSV file") + } + ColumnNames <- colnames(AB)[1:2] + colnames(AB)[1:2] = c("Acode", "Bcode") + # Check if AB file has required columns + if (!("Acode" %in% colnames(AB)) || !("Bcode" %in% colnames(AB))) { + stop("The AB file must contain 'Acode' and 'Bcode' columns.") + } + + # Filter out records with missing Acode or Bcode + AB <- AB[complete.cases(AB[c("Acode", "Bcode")]), ] + + # Check if there are any valid records after filtering + if (nrow(AB) == 0) { + stop("No valid records found in the AB file.") + } + + # Check uniqueness of code pairs in AB file + duplicate_pairs <- duplicated(AB[c("Acode", "Bcode")]) | duplicated(AB[c("Acode", "Bcode")], fromLast = TRUE) + if (any(duplicate_pairs)) { + first_duplicate <- AB[duplicate_pairs, c("Acode", "Bcode")][1, ] + stop(paste("Duplicate code pair found in AB file:", first_duplicate$Acode, "-", first_duplicate$Bcode)) + } + + # Read A file if provided + if (!is.null(A)) { + a_data <- read.csv(A, header = TRUE) + colnames(a_data)[1:1] = c("Acode") + + # Check if A file has the required column + if (!("Acode" %in% colnames(a_data))) { + stop("The A file must contain 'Acode' column.") + } + + # Filter out A records based on formatA, if specified + if (!is.null(formatA)) {# Check if formatA is numeric vector with two elements + if (!is.numeric(formatA) || length(formatA) != 2) { + stop("formatA must be a numeric vector with two elements.") + } + + # Convert Acode to character and filter based on end position + a_data$Acode <- as.character(a_data$Acode) + a_data <- a_data[nchar(a_data$Acode) == formatA[2], ] + + # Check if there are any valid records after end position filtering + if (nrow(a_data) == 0) { + stop("No valid records found in the A file after applying end position filter.") + } + } + + # Check uniqueness of A codes + duplicate_a_codes <- duplicated(a_data$Acode) | duplicated(a_data$Acode, fromLast = TRUE) + if (any(duplicate_a_codes)) { + first_duplicate <- a_data[duplicate_a_codes, "Acode"][1] + stop(paste("Duplicate Acode found in A file:", first_duplicate)) + } + + # Find unmatched source classification codes + unmatched_codes_A <- setdiff(a_data$Acode, AB$Acode) + noCorrespondenceA <- a_data[a_data$Acode %in% unmatched_codes_A, ] + noClassificationA <- AB[AB$Acode %in% unmatched_codes_A, ] + + # Print the length of noCorrespondenceA or a message indicating all codes in A are covered + if (nrow(noCorrespondenceA) > 0) { + cat("Number of unmatched source classification codes in A:", nrow(noCorrespondenceA), "\n") + } else { + cat("All source classification codes in A are covered in the correspondence table.\n") + } + + # Print the length of noClassificationA or a message indicating all codes in the correspondence table are covered + if (nrow(noClassificationA) > 0) { + cat("Number of source classification codes in AB not found in A:", nrow(noClassificationA), "\n") + } else { + cat("All source classification codes in the correspondence table are covered by A.\n") + } + } + + # Read B file if provided + if (!is.null(B)) { + b_data <- read.csv(B, header = TRUE) + colnames(b_data)[1:1] = c("Bcode") + + # Check if B file has the required column + if (!("Bcode" %in% colnames(b_data))) { + stop("The B file must contain 'Bcode' column.") + } + + # Filter out B records based on formatB, if specified + if (!is.null(formatB)) { + # Check if formatB is numeric vector with two elements + if (!is.numeric(formatB) || length(formatB) != 2) { + stop("formatB must be a numeric vector with two elements.") + } + + # Convert Bcode to character and filter based on end position + b_data$Bcode <- as.character(b_data$Bcode) + b_data <- b_data[nchar(b_data$Bcode) == formatB[2], ] + + # Check if there are any valid records after end position filtering + if (nrow(b_data) == 0) { + stop("No valid records found in the B file after applying end position filter.") + } + } + + # Check uniqueness of B codes + duplicate_b_codes <- duplicated(b_data$Bcode) | duplicated(b_data$Bcode, fromLast = TRUE) + if (any(duplicate_b_codes)) { + first_duplicate <- b_data[duplicate_b_codes, "Bcode"][1] + stop(paste("Duplicate Bcode found in B file:", first_duplicate)) + } + + # Find unmatched source classification codes for B + unmatched_codes_B <- setdiff(b_data$Bcode, AB$Bcode) + noCorrespondenceB <- b_data[b_data$Bcode %in% unmatched_codes_B, ] + noClassificationB <- AB[AB$Bcode %in% unmatched_codes_B, ] + + # Print the length of noCorrespondenceB or a message indicating all codes in B are covered + if (nrow(noCorrespondenceB) > 0) { + cat("Number of unmatched source classification codes in B:", nrow(noCorrespondenceB), "\n") + } else { + cat("All source classification codes in B are covered in the correspondence table.\n") + } + + # Print the length of noClassificationB or a message indicating all codes in the correspondence table are covered + if (nrow(noClassificationB) > 0) { + cat("Number of source classification codes in AB not found in B:", nrow(noClassificationB), "\n") + } else { + cat("All source classification codes in the correspondence table are covered by B.\n") + } + } + + # Filter AB data based on formatA and formatB, if specified + if (!is.null(formatA) && !is.null(formatB)) { + AB$Acode <- as.character(AB$Acode) + AB$Bcode <- as.character(AB$Bcode) + AB <- AB[nchar(AB$Acode) == formatA & nchar(AB$Bcode) == formatB, ] + + # Check if there are any valid records after filtering + if (nrow(AB) == 0) { + stop("No valid records found in the AB file after applying formatA and formatB filters.") + } + } + #bipartitePart + # create the bipartite graph + g <- graph.data.frame(AB, directed = FALSE) + + # all composant + components <- decompose.graph(g) + + # list of composant by code + component_codes <- lapply(components, function(comp) V(comp)$name) + + AB$component <- NA + + for (i in seq_along(component_codes)) { + component <- component_codes[[i]] + AB$component[AB$Acode %in% component] <- paste("Component", i) + } + ### Print AB to see the component column for the correspondenceTable between Source & Target. + + component_codes <- unlist(component_codes) + + # Creation of the table for each component + component_index <- 0 + component_stats <- lapply(components, function(comp) { + component <- V(comp)$name + n_unique_targets <- length(unique(AB[AB$Acode %in% component, "Bcode"])) + + correspondence_type <- if (n_unique_targets == 1) { + if (length(unique(AB[AB$Bcode %in% component, "Acode"])) == 1) { + "1:1" + } else { + "M:1" + } + } else { + if (length(unique(AB[AB$Bcode %in% component, "Acode"])) == 1) { + "1:M" + } else { + "M:M" + } + } + + source_positions <- unique(AB[AB$Acode %in% component, "Acode"]) + target_positions <- unique(AB[AB$Acode %in% component, "Bcode"]) + n_source_positions <- length(source_positions) + n_target_positions <- length(target_positions) + + component_index <- component_index + 1 + component_name <- unique(AB[AB$Acode %in% component, "component"]) + + list( + Component = component_name, + CorrespondenceType = correspondence_type, + SourcePositions = source_positions, + TargetPositions = target_positions, + nSourcePositions = n_source_positions, + nTargetPositions = n_target_positions + ) + }) + + # Creation of the new dataFrame + result <- do.call(rbind, component_stats) + + # Conversion into a data frame + Annexe_A <- as.data.frame(result) + + ## Creation of Annex B + Annexe_B <- data.frame( + ClassC = AB$Acode, + ClassD = AB$Bcode, + nTargetClasses = NA, + SourceToTargetMapping = NA, + nSourceClasses = NA, + TargetToSourceMapping = NA + ) + # Update nTargetClasses column + Annexe_B$nTargetClasses <- sapply(Annexe_B$ClassC, function(c_code) { + length(unique(Annexe_B[Annexe_B$ClassC == c_code, "ClassD"])) + }) + + # Update SourceToTargetMapping column + Annexe_B$SourceToTargetMapping <- sapply(Annexe_B$ClassC, function(c_code) { + paste(unique(Annexe_B[Annexe_B$ClassC == c_code, "ClassD"]), collapse = ", ") + }) + + # Update nSourceClasses column + Annexe_B$nSourceClasses <- sapply(Annexe_B$ClassD, function(d_code) { + length(unique(Annexe_B[Annexe_B$ClassD == d_code, "ClassC"])) + }) + + # Update TargetToSourceMapping column + Annexe_B$TargetToSourceMapping <- sapply(Annexe_B$ClassD, function(d_code) { + paste(unique(Annexe_B[Annexe_B$ClassD == d_code, "ClassC"]), collapse = ", ") + }) + + colnames(Annexe_B)[1:2] = ColumnNames[1:2] + # store annex on variable to make table + output_annex_A <- Annexe_A + output_annex_B <- Annexe_B + + annex_A_df <- as.data.frame(output_annex_A) + annex_A_df$Component <- as.character(annex_A_df$Component) + annex_A_df$CorrespondenceType <- as.character(annex_A_df$CorrespondenceType) + annex_A_df$SourcePositions <- as.character(annex_A_df$SourcePositions) + annex_A_df$TargetPositions <- as.character(annex_A_df$TargetPositions) + annex_A_df$nSourcePositions <- as.numeric(annex_A_df$nSourcePositions) + annex_A_df$nTargetPositions <- as.numeric(annex_A_df$nTargetPositions) + annex_B_df <- as.data.frame(output_annex_B) + + # Take the user's CSV file name to create CSV files + if (!is.null(input_file_path)) { + base_file_name <- tools::file_path_sans_ext(tools::file_path_sans_ext(basename(input_file_path))) + } else { + # Generate a unique base file name (e.g., based on the timestamp) + base_file_name <- paste0("correspondence_analysis_", format(Sys.time(), "%Y%m%d%H%M%S")) + } + + + if (!is.null(CSVcorrespondenceInventory)) { + if (is.character(CSVcorrespondenceInventory)) { + chemin_inventaire <- CSVcorrespondenceInventory + } else { + # Generate a file name based on the name of the first column, "correspondence", and the date + chemin_inventaire <- paste0("Correspondence_inventory_",ColumnNames[1], "_", ColumnNames[2], ".csv") + } + write.csv(annex_A_df, chemin_inventaire, row.names = FALSE) + message(paste0("The table was saved in ", getwd(), chemin_inventaire)) + } + + if (!is.null(CSVcorrespondenceAnalysis)) { + if (is.character(CSVcorrespondenceAnalysis)) { + # If it's a valid file path, use it + chemin_analyse <- CSVcorrespondenceAnalysis + } else { + # Generate a file name based on the name of the first column, "correspondence", and the date + chemin_analyse <- paste0("Correspondence_analysis_", ColumnNames[1], "_", ColumnNames[2], ".csv") + } + write.csv(annex_B_df, chemin_analyse, row.names = FALSE) + message(paste0("The table was saved in ", getwd(), chemin_analyse)) + } + + # Output list of the two dataframes. + output <- list(Annexe_A = output_annex_A, Annexe_B = output_annex_B) + + return(output) + +} + + + + diff --git a/R/classificationEndpoint.R b/R/classificationEndpoint.R index 76ba32c..9867337 100644 --- a/R/classificationEndpoint.R +++ b/R/classificationEndpoint.R @@ -54,28 +54,33 @@ classificationEndpoint = function(endpoint = "ALL") { ### Datasets in FAO endpoint_fao = "https://stats.fao.org/caliper/sparql/AllVocs" SPARQL.query_fao = paste0(" - PREFIX skos: - SELECT DISTINCT ?classification ?label + PREFIX rdf: +PREFIX rdfs: +PREFIX skos: - WHERE { - ?classification a skos:ConceptScheme . - ?classification skos:prefLabel ?label . - FILTER(regex(?label, 'classification', 'i')) - } - ORDER BY ?label +SELECT ?scheme ?notation ?label_en WHERE { + ?scheme rdf:type skos:ConceptScheme . + ?scheme skos:notation ?notation . + ?scheme skos:prefLabel ?label_en . FILTER(lang(?label_en)='en') . + } +ORDER BY ASC(?notation) ") response = httr::POST(url = endpoint_fao, accept("text/csv"), body = list(query = SPARQL.query_fao), encode = "form") data_fao = read.csv(text=content(response, "text"), sep= ",") ## add prefix name - str_dt = t(sapply(data_fao[,1], function(x) unlist(strsplit(as.character(x), "/+")))) - prefix = paste0(str_dt[,4], str_dt[,5]) - prefix = gsub("\\.","",prefix) - uri = paste0(str_dt[,1], "/", "/", str_dt[,2], "/", str_dt[,3], "/", str_dt[,4], "/", str_dt[,5]) + # str_dt = t(sapply(data_fao[,1], function(x) unlist(strsplit(as.character(x), "/+")))) + str_dt<- strsplit(data_fao[, 1], "/") + mat_str_dt <- suppressWarnings(do.call(rbind, str_dt)) + df_str_dt <- as.data.frame(mat_str_dt) + prefix = data_fao[,2] + # prefix = paste0(df_str_dt[,5], df_str_dt[,6]) + # prefix = gsub("\\.","",prefix) + uri = paste0(df_str_dt[,1], "/", df_str_dt[,2], "/", df_str_dt[,3], "/", df_str_dt[,4], "/", prefix) #class = prefix - ConceptScheme = str_dt[,6] - data_fao = cbind(prefix, ConceptScheme, uri, data_fao[,2]) + ConceptScheme = paste0(df_str_dt[,5], df_str_dt[,6]) + data_fao = cbind(prefix, ConceptScheme, uri, data_fao[,3]) rownames(data_fao) = 1:nrow(data_fao) colnames(data_fao) = c("Prefix", "ConceptScheme", "URI", "Title") diff --git a/R/classificationQC.R b/R/classificationQC.R index f1ef586..f014ed6 100644 --- a/R/classificationQC.R +++ b/R/classificationQC.R @@ -1,498 +1,656 @@ -#' @title ClassificationQC performs a quality check control checks on a given statistical classifications -#' @description The purpose of this function perform quality control checks on statistical classifications. -#' It checks the compliance of classifications with structural rules and provides informative error messages -#' for violations. The function requires input files containing code and label information for each -#' classification position. It verifies the formatting requirements, uniqueness of codes, fullness of hierarchy, -#' uniqueness of labels, hierarchical label dependencies, single child code compliance, and sequencing of codes. -#' The function generates a QC output data frame with the classification data, hierarchical level, code segments, -#' and test outcomes.Additionally, it allows exporting the output to a CSV file. Overall, the classificationQC -#' function ensures the integrity and accuracy of statistical classifications. -#' @param classification Refers to a classification in csv file or an R dataframe structured with two columns, consisting -#' of codes and labels, respectively. If the classification is provided as a csv file, it should be stored in the working directory (as -#' defined using \code{getwd}). This is a mandatory argument. -#' @param lengthsfile Refers to a CSV file or a R dataframe (one record per hierarchical level) containing the initial and -#' last position of the segment of the code specific to that level. The number of lines of this CSV file or the R dataframe will -#' also implicitly define the number of hierarchical levels of the classification. This is a mandatory argument. -#' @param fullHierarchy It is used to test the fullness of hierarchy. If the parameter \code{fullHierarchy} is set to \code{FALSE}, -#' the function will check that every position at a lower level than 1 should have parents all the way up to level 1. -#' If it is set to \code{TRUE}, in addition to the previous, it will be checked that any position at a higher level -#' than k should have children all the way down to level k. -#' @param labelUniqueness It is used to test the that positions at the same hierarchical level have unique labels. If set to \code{TRUE}, -#' the compliance is checked and positions with duplicate labels are marked as 1 in the "duplicateLabel" column, -#' while positions with unique labels are marked as 0. -#' @param labelHierarchy It is used to ensure that hierarchical structure of labels is respected. -#' When set to \code{TRUE}, the function will check that single child have a label identical to the label of its parent and that -#' has if a position has a label identical to the label of one of its children, then that position should only have a single child. -#' @param singleChildCode It refers to CSV file with specific formatting to define valid codes for each level. If this parameter is not \code{NULL} -#' then it checks compliance with coding rules for single children and non-single children, as provided in the CSV file. -#' @param sequencing It refers to a CSV file to define the admissible codes for multiple children at each level. If this parameter -#' is not \code{NULL}, the function checks the sequencing of multiple children codes within each level, as provided in the CSV file. -#' @param XLSXout The valid values are \code{FALSE} or \code{TRUE}. In both cases the output will be returned as an R list. -#' If output should be saved as a xlsx file, the argument should be set as \code{TRUE}. By default, no xlsx file is produced. -#' @import tidyverse writexl +#' @title ClassificationQC performs quality control checks on statistical classifications +#' @description The `classificationQC()` function performs quality control checks on statistical classifications, ensuring their integrity and accuracy. It checks compliance with various structural rules and provides informative error messages for violations. This function requires input files containing code and label information for each classification position and verifies the following criteria: +#' - Formatting requirements +#' - Uniqueness of codes +#' - Fullness of hierarchy +#' - Uniqueness of labels +#' - Hierarchical label dependencies +#' - Single child code compliance +#' - Sequencing of codes +#' +#' The `classificationQC()` function generates a QC output data frame with the classification data, hierarchical levels, code segments, and test outcomes. Additionally, it allows exporting the output to a CSV file. +#' +#' @param classification Refers to a classification in a CSV file structured with two columns: "codes" and "labels." If the classification is provided as a CSV file. This argument is mandatory. +#' @param lengthsfile Refers to a CSV file (one record per hierarchical level) containing the initial and last positions of the segment of the code specific to that level. The number of lines in this CSV file implicitly defines the number of hierarchical levels of the classification. This argument is mandatory. +#' @param fullHierarchy It is used to test the fullness of hierarchy. If the parameter \code{fullHierarchy} is set to \code{FALSE}, the function will check that every position at a lower level than 1 should have parents all the way up to level 1. If set to \code{TRUE}, it will additionally check that any position at a higher level than k should have children all the way down to level k. +#' @param labelUniqueness It is used to test that positions at the same hierarchical level have unique labels. If set to \code{TRUE}, the compliance is checked, and positions with duplicate labels are marked as 1 in the "duplicateLabel" column, while positions with unique labels are marked as 0. +#' @param labelHierarchy It is used to ensure that the hierarchical structure of labels is respected. When set to \code{TRUE}, the function will check that single children have a label identical to the label of their parent and that if a position has a label identical to the label of one of its children, then that position should only have a single child. +#' @param singleChildCode It refers to a CSV file with specific formatting to define valid codes for each level. If this parameter is not \code{NULL}, then it checks compliance with coding rules for single children and non-single children, as provided in the CSV file. +#' @param sequencing It refers to a CSV file to define the admissible codes for multiple children at each level. If this parameter is not \code{NULL}, the function checks the sequencing of multiple children codes within each level, as provided in the CSV file. +#' @param CSVout The valid values are \code{NULL} means that the user don't need to write the parameters \code{TRUE}. In both cases, the output will be returned as an R list. If the output should be saved as an CSV file, the argument should be set to \code{TRUE}. By default, no CSV file is produced. +#' @importFrom stringr str_squish +#' @importFrom stringr str_sub +#' @importFrom tools file_ext #' @export #' @return -#' \code{classificationQC()} returns a list of dataframes identifying possible the cases violating the formatting requirements. The -#' databases returned depend on the rules checked. The databases produced are: -#' \itemize{ -#' \item{QC_output} The dataset includes all the original records in the classification. Colum "Level" refers to the hierarchical levels -#' of each position. Each code will be parsed into segment_k (column "Segmentk") and code_k (column "Codek"), corresponding to the code -#' and segment and hierarchical level k respectively. Additional columns are included to flag the corrected behaviour in each position. -#' These are -#' \itemize{ -#' \item Orphan: if fullHierarchy is set to FALSE, an "orphan" is a position at a hierarchical level (j) greater than 1 that lacks a parent at the hierarchical level (j-1) immediately above it. -#' Orphan positions are marked with a value of 1 in the "QC output" column, indicating their orphan status. Otherwise, they are assigned a value of 0. -#' \item Childless: if fullHierarchy is set to TRUE, a "childless" position is one at a hierarchical level (j) less than k that lacks a child -#' at the hierarchical level (j+1) immediately below it. Childless positions are marked with a value of 1 -#' indicating their childless status. Otherwise, they are assigned a value of 0. -#' \item DuplicateLabel: new column in the output that flags positions involved in duplicate label situations (where multiple positions share the same label at the same hierarchical level) -#' by assigning them a value of 1, while positions with unique labels are assigned a value of 0. -#' \item SingleChildMismatch: column in the output provides information about label hierarchy consistency in a hierarchical classification system. It indicates:c -#' Value 1: Mismatched labels between a parent and its single child. -#' Value 9: Parent-child pairs with matching labels, but the parent has multiple children. -# Value 0: Compliance with the label hierarchy rule, indicating no mismatches or violations. -#' \item SingleCodeError: column serves as a flag indicating whether a position is a single child and whether the corresponding "singleCode" contains the level j segment. -#' A value of 1 signifies a mismatch, while a value of 0 indicates compliance with the coding rules -#' \item MultipleCodeError: column serves as a flag indicating whether a position is not a single child and whether the corresponding "multipleCodej" contains the level j segment. -#' A value of 1 signifies a mismatch, while a value of 0 indicates compliance with the coding rules -#' \item GapBefore: takes the value 0 or 1 if there is a missing child in the 123456789 series. -#' \item LastSibling: takes the value 1 when it is the last child in the series 123456789 otherwise the value 0 -#' } -#' -#' \item{QC_noLevels} A subset of the QC_output dataframe including only records for which levels is not defined. In general if this dataframe -#' is not empty, it suggest that either the classification or the length file is not correctily specified. -#' \item{QC_orphan} A subset of the QC_output dataframe including only records that have no parents at the higher hierarchical level. -#' \item{QC_childless} A subset of the QC_output dataframe including only records that have no children at the lower hierarchical level. -#' \item{QC_duplicatesLabel} A subset of the QC_output dataframe including only records that have duplicated label in the same hierarchical level. -#' \item{QC_duplicatesCode} A subset of the QC_output dataframe including only records that have the same codes. -#' \item{QC_singleChildMismatch} A subset of the QC_output dataframe including only records that are single child and have different labels from -#' their parents or that are multiple children and have same labels to their parents. -#' \item{QC_singleCodeError} A subset of the QC_output dataframe including only records that are single children and have been wrongly coded (not following -#' the rule provided in the 'SingleChildMismatch' CSV file). -#' \item{QC_multipleCodeError} A subset of the QC_output dataframe including only records that are multiple children and have been wrongly coded (not following -#' the rule provided in the 'SingleChildMismatch' CSV file). -#' \item{QC_gapBefore} A subset of the QC_output dataframe including only records that are multiple children and have gap before in the sequencing provided in the -#' 'sequencing' CSV file. -#' \item{QC_lastSibling} A subset of the QC_output dataframe including only records that are multiple and last children following the sequencing provided in the -#' 'sequencing' CSV file. -#' } -#' -#' @examples +#' +#' \code{classificationQC()} returns a list of data frames identifying possible cases violating the formatting requirements. The databases returned depend on the rules checked. The databases produced are: +#' - \code{QC_output}: The dataset includes all the original records in the classification. The "Level" column refers to the hierarchical levels of each position. Each code will be parsed into segment_k (column "Segmentk") and code_k (column "Codek"), corresponding to the code and segment at hierarchical level k, respectively. Additional columns are included to flag the behavior in each position: +#' - \code{Orphan}: If \code{fullHierarchy} is set to \code{FALSE}, an "orphan" is a position at a hierarchical level (j) greater than 1 that lacks a parent at the hierarchical level (j-1) immediately above it. Orphan positions are marked with a value of 1 in the "Orphan" column, indicating their orphan status; otherwise, they are assigned a value of 0. +#' - \code{Childless}: If \code{fullHierarchy} is set to \code{TRUE}, a "childless" position is one at a hierarchical level (j) less than k that lacks a child at the hierarchical level (j+1) immediately below it. Childless positions are marked with a value of 1 in the "Childless" column, indicating their childless status; otherwise, they are assigned a value of 0. +#' - \code{DuplicateLabel}: A new column in the output that flags positions involved in duplicate label situations (where multiple positions share the same label at the same hierarchical level) by assigning them a value of 1, while positions with unique labels are assigned a value of 0. +#' - \code{SingleChildMismatch}: A column in the output provides information about label hierarchy consistency in a hierarchical classification system. It indicates: +#' - Value 1: Mismatched labels between a parent and its single child. +#' - Value 9: Parent-child pairs with matching labels, but the parent has multiple children. +#' - Value 0: Compliance with the label hierarchy rule, indicating no mismatches or violations. +#' - \code{SingleCodeError}: A column serves as a flag indicating whether a position is a single child and whether the corresponding "singleCode" contains the level j segment. A value of 1 signifies a mismatch, while a value of 0 indicates compliance with the coding rules. +#' - \code{MultipleCodeError}: A column serves as a flag indicating whether a position is not a single child and whether the corresponding "multipleCodej" contains the level j segment. A value of 1 signifies a mismatch, while a value of 0 indicates compliance with the coding rules. +#' - \code{GapBefore}: The column is a flag that indicates whether there is a gap before a specific code within its level in the hierarchy. A gap refers to the absence of a sibling code that should logically precede the given code. In other words, it checks if there is a missing code in the sequence before a particular code. +#' - \code{LastSibling}: The "LastSibling" column is a flag that identifies whether a code is the last sibling code at its level in the hierarchy. It is only relevant for codes with multiple children, meaning there are other codes at the same level with the same parent. +#' +#' - \code{QC_noLevels}: A subset of the \code{QC_output} dataframe including only records for which levels are not defined. If this dataframe is not empty, it suggests that either the classification or the length file is not correctly specified. +#' +#' - \code{QC_orphan}: A subset of the \code{QC_output} dataframe including only records that have no parents at the higher hierarchical level. +#' +#' - \code{QC_childless}: A subset of the \code{QC_output} dataframe including only records that have no children at the lower hierarchical level. +#' +#' - \code{QC_duplicatesLabel}: A subset of the \code{QC_output} dataframe including only records that have duplicated labels in the same hierarchical level. +#' +#' - \code{QC_duplicatesCode}: A subset of the \code{QC_output} dataframe including only records that have the same codes. +#' +#' - \code{QC_singleChildMismatch}: A subset of the \code{QC_output} dataframe including only records that are single children and have different labels from their parents or that are multiple children and have the same labels as their parents. +#' +#' - \code{QC_singleCodeError}: A subset of the \code{QC_output} dataframe including only records that are single children and have been wrongly coded (not following the rule provided in the 'SingleChildMismatch' CSV file). +#' +#' - \code{QC_multipleCodeError}: A subset of the \code{QC_output} dataframe including only records that are multiple children and have been wrongly coded (not following the rule provided in the 'SingleChildMismatch' CSV file). +#' +#' - \code{QC_gapBefore}: A subset of the \code{QC_output} dataframe including only records that are multiple children and have a gap in the sequencing provided in the 'sequencing' CSV file. +#' +#' - \code{QC_lastSibling}: A subset of the \code{QC_output} dataframe including only records that are multiple children and are the last sibling following the sequencing provided in the 'sequencing' CSV file. +#' +#' @examples #' { -#' prefix = "nace2" -#' conceptScheme = "nace2" -#' endpoint = "CELLAR" -#' lengthsTable = lengthsFile(endpoint, prefix, conceptScheme, correction = TRUE) -#' classification = retrieveClassificationTable(prefix, endpoint, conceptScheme, level="ALL")$ClassificationTable -#' classification = classification[,c(1,2)] -#' classification = correctionClassification(classification) -#' Output = classificationQC(classification, lengthsFile, fullHierarchy = TRUE, labelUniqueness = TRUE, labelHierarchy = TRUE, singleChildCode = NULL, sequencing = NULL) -#' View(Output$QC_output) -#' View(Output$QC_noLevels) -#' View(Output$QC_orphan) -#' View(Output$QC_childless) -#' View(Output$QC_duplicatesLabel) -#' View(Output$QC_duplicatesCode) -#' View(Output$QC_singleChildMismatch) -#' View(Output$QC_singleCodeError) -#' View(Output$QC_multipleCodeError) -#' View(Output$QC_gapBefore) -#' View(Output$QC_lastSibling) -#' } +#' # classification <- system.file("extdata", "Nace2.csv", package = "correspondenceTables") +#' +#' lengthsFile <- system.file("extdata", "lenghtsNace.csv", package = "correspondenceTables") +#' +#' Output <- classificationQC(classification = system.file("extdata", "Nace2.csv", package = "correspondenceTables") , lengthsFile = system.file("extdata", "lenghtsNace.csv", package = "correspondenceTables"), fullHierarchy = TRUE, labelUniqueness = TRUE, labelHierarchy = TRUE, singleChildCode = NULL, sequencing = NULL, CSVout = system.file("extdata", "QC_Output.csv", package = "correspondenceTables")) +#' print(Output$QC_output) +#' print(Output$QC_noLevels) +#' print(Output$QC_orphan) +#' print(Output$QC_childless) +#' print(Output$QC_duplicatesLabel) +#' print(Output$QC_duplicatesCode) +#' print(Output$QC_singleChildMismatch) +#' print(Output$QC_singleCodeError) +#' print(Output$QC_multipleCodeError +#' +#' ) +#' print(Output$QC_gapBefore) +#' print(Output$QC_lastSibling) +#' } -classificationQC = function(classification, lengthsFile, fullHierarchy = TRUE, labelUniqueness = TRUE, labelHierarchy = TRUE, singleChildCode = NULL, sequencing = NULL, XLSXout = FALSE) { - - #if ((length(grep("csv", classification)) == 0) & !(is.data.frame(classification))){ - # stop("The classification should be provided as either a csv file or a R dataframe.") - #} + + classificationQC = function(classification, lengthsFile, fullHierarchy = TRUE, labelUniqueness = TRUE, labelHierarchy = TRUE, singleChildCode = NULL, sequencing = NULL, CSVout = NULL) { + + if ((length(grep("csv", classification)) == 0) ){ + stop("The classification should be provided as a csv file") + } + + if (length(grep("csv", classification)) > 0){ + classification = read.csv(classification, header = TRUE) + } + classificationName <- colnames(classification)[1:1] + + # #check that classification has only two columns + # if(ncol(classification) != 2){ + # stop("The classification must have only two colums corresponding to code and label.") + # } + # + colnames(classification)[1:2] = c("Code", "Label") + + # (a) Check the file extension + if (tolower(file_ext(lengthsFile)) == "csv") { + - if (is.data.frame(classification)){ - classification = classification + # (b) Check if the file exists + if (file.exists(lengthsFile)) { + + # (c) Try reading the CSV file + tryCatch({ + # Read the first line of the CSV file + first_line <- gsub("\"", "", readLines(lengthsFile, n = 1)) + + # Check for expected headers + expected_headers <- c("charb", "chare") + + # Split the first line using "," + header_columns <- unlist(strsplit(first_line, ",", fixed = TRUE)) + header_columns <- gsub("\"", "", header_columns) # Supprimer les guillemets + + if (length(header_columns) == length(expected_headers) && all(header_columns == expected_headers)) { + lengths <- read.csv(lengthsFile, header = TRUE) + } else { + warning("Variable names do not match the expected headers for the LengthsFile. Renaming and using the first columns.") + lengths <- read.csv(lengthsFile, header = FALSE) + colnames(lengths) <- expected_headers + } + + if (length(header_columns) > length(expected_headers)) { + warning("There are more columns than needed for LengthsFile. Using the first columns.") + } + + }, error = function(e) { + stop("Error reading CSV file: ", e$message) + }) + + } else { + stop("The provided lengths file does not exist.") } - #if (length(grep("csv", classification)) > 0){ - # classification = read.csv(file.path(paste0(getwd(), "/", classification))) - #} + } else { + stop("The provided file does not have a CSV extension.") + } + + ### RULE 1 - Correctness of formatting requirements (lengths file) + + #check that char file has at least one row + if(nrow(lengths) == 0){ + stop("Lengths file must have at least one row") + } + + #check if value are strictly positive + negative_lengths <- which(lengths[,1] < 1 | lengths[,2] < 1) + if (length(negative_lengths) > 0) { + stop(paste("lengths must be strictly positive. Error at row:", negative_lengths)) + } - #check that classification has only two columns - if(ncol(classification) != 2){ - stop("The classification must have only two colums corresponding to code and label.") + #check if value are NA + na_lengths <- which(is.na(lengths[,1]) | is.na(lengths[,2])) + if (length(na_lengths) > 0) { + stop(paste("lengths must be missing. Error at row:", na_lengths)) + } + + #check the sequences rendered by these numbers should not overlap + for (i in 1:(nrow(lengths)-1)) { + if (lengths[i,2] >= lengths[i+1,1]) { + stop(paste("Sequences should not overlap in case of formatting errors. Error at row:", i+1)) } + } + + #check that char file has valid character ranges -- NEEDED?! + # if(!all(sapply(lengths$charb, function(x) grepl("[A-Za-z0-9]", x)) & + # sapply(lengths$chare, function(x) grepl("[A-Za-z0-9]", x)) & + # lengths$charb <= lengths$chare)){ + # stop("Char file must contain only numbers") + # } + # + + ## Create QC_output + QC_output = classification + + # Add hierarchical level column + QC_output$level = sapply(classification$Code, function(x) which(nchar(x) == lengths$chare)) + + # Initialize the superior column + QC_output$Parent = NA + + # Add Code and segment columns + for (i in 1:nrow(lengths)) { + charb = lengths$charb[i] + chare = lengths$chare[i] - colnames(classification)[1:2] = c("Code", "Label") - - ## Length table - #if ((length(grep("csv", lengthsFile)) == 0) & !(is.data.frame(lengthsFile))){ - # stop("The lengthsFile should be provided as either a csv file or a R dataframe.") - #} + segment_col_name = paste0("segment", i) + code_col_name = paste0("Code", i) - if (is.data.frame(lengthsFile)){ - lengthsFile = lengthsFile - } + segments = character(nrow(QC_output)) + codes = character(nrow(QC_output)) - #if (length(grep("csv", lengthsFile)) > 0){ - # lengthsFile = read.csv(file.path(paste0(getwd(), "/", lengthsFile))) - #} - - ### RULE 1 - Correctness of formatting requirements (lengths file) - - #check that char file has at least one row - if(nrow(lengths) == 0){ - stop("Lengths file must have at least one row") + for (j in 1:nrow(QC_output)) { + if (QC_output$level[j] >= i) { + segments[j] = ifelse(nchar(QC_output$Code[j]) >= chare, substr(QC_output$Code[j], charb, chare), NA) + codes[j] = ifelse(nchar(QC_output$Code[j]) >= chare, substr(QC_output$Code[j], 1, chare), NA) + } else { + segments[j] = NA + codes[j] = NA + } } - #check if value are strictly positive - negative_lengths <- which(lengths[,1] < 1 | lengths[,2] < 1) - if (length(negative_lengths) > 0) { - stop(paste("lengths must be strictly positive. Error at row:", negative_lengths)) + QC_output[, segment_col_name] = segments + QC_output[, code_col_name] = codes + } + + # Add the 'superior' column based on the current level + for (i in 1:nrow(QC_output)) { + if (QC_output$level[i] > 1) { + superior_col_name = paste0("Code", (QC_output$level[i] - 1)) + QC_output$Parent[i] = QC_output[i, superior_col_name] + } else { + QC_output$Parent[i] = NA } + } + + ## RULE 2 - Compliance with formatting requirements (lengths file) + na_level = which(is.na(QC_output$level)) + if (length(na_level) > 0) { + stop("Some codes have no specified level. There might be possible errors in the classification or in the length file (see 'QC_noLevels').") + } + + QC_noLevels = QC_output[na_level, ] + + ## RULE 3 - Uniqueness of codes + dup = duplicated(classification[,1]) + QC_output$duplicateCode = as.numeric(dup) + if (any(dup)) { + class_dup <- classification[dup,] + errow_row <- which(dup) + stop("Codes in classification file must be unique (see 'QC_duplicatesCode').") + } + QC_duplicatesCode = QC_output[which(QC_output$duplicateCode == 1), ] + + ## RULE 4 - Fullness of hierarchy + if (!is.null(fullHierarchy) && fullHierarchy != FALSE){ + QC_output$orphan = rep(NA, nrow(QC_output)) - #check if value are NA - na_lengths <- which(is.na(lengths[,1]) | is.na(lengths[,2])) - if (length(na_lengths) > 0) { - stop(paste("lengths must be missing. Error at row:", na_lengths)) + for (k in nrow(lengths):2) { + QC_output$exp_parents = rep(NA, nrow(QC_output)) + QC_output$exp_parents[which(QC_output$level == k)] = substr(QC_output[which(QC_output$level == k), paste0("Code", k)], 1, lengths[k-1,2]) + o_code = which(QC_output$exp_parents %in% QC_output[which(QC_output$level == k-1), paste0("Code", k-1)]) + QC_output$orphan[intersect(which(QC_output$level == k), o_code)] = 0 + noo_code = which(!QC_output$exp_parents %in% QC_output[which(QC_output$level == k-1), paste0("Code", k-1)]) + QC_output$orphan[intersect(which(QC_output$level == k), noo_code)] = 1 + #QC_output$orphan[which(is.na(QC_output$exp_parents))] = NA } - - #check the sequences rendered by these numbers should not overlap - for (i in 1:(nrow(lengths)-1)) { - if (lengths[i,2] >= lengths[i+1,1]) { - stop(paste("Sequences should not overlap in case of formatting errors. Error at row:", i+1)) - } - } - - #check that char file has valid character ranges -- NEEDED?! - if(!all(sapply(lengths$charb, function(x) grepl("[A-Za-z0-9]", x)) & - sapply(lengths$chare, function(x) grepl("[A-Za-z0-9]", x)) & - lengths$charb <= lengths$chare)){ - stop("Char file must contain only numbers") + QC_output = QC_output[, -which(colnames(QC_output) == "exp_parents")] + + #identify orphans + orphan = which(QC_output$orphan == 1) + if (length(orphan) > 0) { + warning("Some codes at a lower level than 1 have no parents at higher levels ('see QC_orphan').") } - - ## Create QC_output - QC_output = classification + QC_orphan = QC_output[orphan, ] + + #childless - if (fullHierarchy == TRUE) - #add hierarchical level column - QC_output$level = sapply(classification[,1], function(x) match(TRUE, nchar(x) == lengths$chare)) + QC_output$childless = rep(NA, nrow(QC_output)) - #add Code and segment columns - for(i in 1:nrow(lengths)){ - charb = lengths$charb[i] - chare = lengths$chare[i] - QC_output[, paste0("segment", i)] = ifelse(QC_output$level >= i, substr(QC_output[,1], charb, chare), NA) - QC_output[, paste0("Code", i)] = ifelse(QC_output$level >= i, substr(QC_output[,1], 1, chare), NA) + for (k in 2:nrow(lengths)) { + exp_parents = substr(QC_output[which(QC_output$level == k), paste0("Code", k)], 1, lengths[k-1,2]) + QC_output$childless[which(QC_output[, paste0("Code", k-1)] %in% exp_parents & QC_output$level == k-1)] = 0 + QC_output$childless[which(!QC_output[, paste0("Code", k-1)] %in% exp_parents & QC_output$level == k-1)] = 1 } - ## RULE 2 - Compliance with formatting requirements (lengths file) - na_level = which(is.na(QC_output$level)) - if (length(na_level) > 0) { - warning("Some codes have no specified level. There might be possible errors in the classification or in the length file (see 'QC_noLevels').") + #identify childless + childless = which(QC_output$childless == 1) + if (length(childless) > 0) { + warning(paste("Some codes at a higher level than ", nrow(lengths) ," have no children at lower levels ('see QC_childless').")) } + QC_childless = QC_output[childless, ] + }else{ + cat("FullHierarchy is NULL so no treatment") + } + ### RULE 5 - Uniqueness of labels + if (!is.null(labelUniqueness) && labelUniqueness != FALSE) { + QC_output$duplicateLabel = 0 - QC_noLevels = QC_output[na_level, ] + # Get unique levels + unique_levels <- unique(QC_output$level) - ## RULE 3 - Uniqueness of codes - dup = duplicated(classification[,1]) - QC_output$duplicateCode = as.numeric(dup) - if (any(dup)) { - class_dup <- classification[dup,] - errow_row <- which(dup) - warning("Codes in classification file must be unique (see 'QC_duplicatesCode').") + # Iterate over each unique level + for (le in unique_levels) { + level_data = QC_output[QC_output$level == le,] + + if (nrow(level_data) != length(unique(level_data$Label))) { + # There are duplicates, mark them in the QC output column + # The outcome of the test should be reported in a new ‘QC output’ column (duplicateLabel) assuming the value 1 for positions involved in duplicates (0 otherwise). + duplicate_labels = level_data$Label[duplicated(level_data$Label)] + ## Here we add 1 if we have the same label. + QC_output$duplicateLabel[QC_output$level == le & QC_output$Label %in% duplicate_labels] = 1 + } } - QC_duplicatesCode = QC_output[which(QC_output$duplicateCode == 1), ] - ## RULE 4 - Fullness of hierarchy - QC_output$orphan = rep(NA, nrow(QC_output)) - - for (k in nrow(lengths):2) { - QC_output$exp_parents = rep(NA, nrow(QC_output)) - QC_output$exp_parents[which(QC_output$level == k)] = substr(QC_output[which(QC_output$level == k), paste0("Code", k)], 1, lengths[k-1,2]) - o_code = which(QC_output$exp_parents %in% QC_output[which(QC_output$level == k-1), paste0("Code", k-1)]) - QC_output$orphan[intersect(which(QC_output$level == k), o_code)] = 0 - noo_code = which(!QC_output$exp_parents %in% QC_output[which(QC_output$level == k-1), paste0("Code", k-1)]) - QC_output$orphan[intersect(which(QC_output$level == k), noo_code)] = 1 - #QC_output$orphan[which(is.na(QC_output$exp_parents))] = NA - } - QC_output = QC_output[, -which(colnames(QC_output) == "exp_parents")] - - #identify orphans - orphan = which(QC_output$orphan == 1) - if (length(orphan) > 0) { - warning("Some codes at a lower level than 1 have no parents at higher levels ('see QC_orphan').") + # Identify duplicates + duplicatesLabel = which(QC_output$duplicateLabel == 1) + if (length(duplicatesLabel) > 0) { + warning(paste("Some codes at the same hierarchical level have the same labels (see 'QC_duplicatesLabel').")) } - - QC_orphan = QC_output[orphan, ] + QC_duplicatesLabel = QC_output[duplicatesLabel,] + } + + ## RULE 6 - Hierarchical label dependencies + if (!is.null(labelHierarchy) && labelHierarchy != FALSE){ + QC_output$singleChildMismatch = 0 - #childless - if (fullHierarchy == TRUE) - if (fullHierarchy){ - QC_output$childless = rep(NA, nrow(QC_output)) - - for (k in 2:nrow(lengths)) { - exp_parents = substr(QC_output[which(QC_output$level == k), paste0("Code", k)], 1, lengths[k-1,2]) - QC_output$childless[which(QC_output[, paste0("Code", k-1)] %in% exp_parents & QC_output$level == k-1)] = 0 - QC_output$childless[which(!QC_output[, paste0("Code", k-1)] %in% exp_parents & QC_output$level == k-1)] = 1 + for (k in 1:(nrow(lengths)-1)) { + + #select only parents with children + parents_k = QC_output$Code[which(QC_output$level == k)] + #list the no. of child for each parent then select parents with single child / or multiple children + child_ls = sapply(unique(parents_k), function(x) length(unique(na.omit(QC_output[which(QC_output[[paste0("Code", k)]] == x), paste0("Code", k+1)])))) + code_singlechild = QC_output[which(QC_output[[paste0("Code", k)]] %in% names(which(child_ls == 1)) & !is.na(QC_output[[paste0("Code", k+1)]]) & QC_output$level == k +1), c(paste0("Code", k), paste0("Code", k+1))] + code_multichild = QC_output[which(QC_output[[paste0("Code", k)]] %in% names(which(child_ls > 1)) & !is.na(QC_output[[paste0("Code", k+1)]]) & QC_output$level == k +1), c(paste0("Code", k), paste0("Code", k+1))] + + #only label + label_nocode = gsub("(\\d)|\\.", "", QC_output$Label) + label_nocode = mapply(function(x,y) sub(x, "", y), QC_output$Code, label_nocode) + label_nocode = tolower(str_squish(label_nocode)) + + #check if single child have different labels from their parents (=1) + if (nrow(code_singlechild) != 0){ + for (c in 1:nrow(code_singlechild)){ + row_parent = which(QC_output$Code == as.character(code_singlechild[c,1])) + label_parent = label_nocode[row_parent] + row_child = which(QC_output$Code == as.character(code_singlechild[c,2])) + label_child = label_nocode[row_child] + if (label_parent != label_child) { + QC_output$singleChildMismatch[row_child] = 1 + } else if (length(row_child) > 1) { + QC_output$singleChildMismatch[row_child] = 9 + } else { + QC_output$singleChildMismatch[row_child] = 0 + } + + } - - #identify childless - childless = which(QC_output$childless == 1) - if (length(childless) > 0) { - warning(paste("Some codes at a higher level than ", nrow(lengths) ," have no children at lower levels ('see QC_childless').")) - } - QC_childless = QC_output[childless, ] + } + } + #identify mismatches - + singleChildMismatch = which(QC_output$singleChildMismatch != 0) + if (length(singleChildMismatch) > 0) { + warning(paste("Some single child has a different label from their parent or some multiple child has the same label as their parent (see 'QC_singleChildMismatch').")) } + QC_singleChildMismatch = QC_output[singleChildMismatch,] - ### RULE 5 - Uniqueness of labels - if (labelUniqueness){ - QC_output$duplicateLabel = 0 - - # Check for duplicate labels at each hierarchical level - for (le in unique(QC_output$level)) { - level_data = QC_output[QC_output$level == le,] - level_data$Label = substr(level_data$Label, lengths[le,2] + 1, nchar(level_data$Label)) - if (nrow(level_data) != length(unique(level_data$Label))) { - # There are duplicates, mark them in the QC output column - # The outcome of the test should be reported in a new ‘QC output’ column (duplicateLabel) assuming the value 1 for positions involved in duplicates (0 otherwise). - duplicate_labels = level_data$Label[duplicated(level_data$Label)] - ##Here we add 1 if we have the same label. - QC_output$duplicateLabel[QC_output$level == le & QC_output$Label %in% duplicate_labels] = 1 - } - } + }else{ + cat("labelHierarchy is NULL so no treatment") + } + + ## RULE 7 - Single child code compliance + if (!is.null(singleChildCode)) { + + if (file.exists(singleChildCode) && length(grep("csv", tolower(singleChildCode))) > 0) { + # Read the first line of the CSV file + first_line <- readLines(singleChildCode, n = 1) + + # Check for expected headers + expected_headers <- c("level", "singleCode", "multipleCode") + # Split the first line using "," + header_columns <- unlist(strsplit(first_line, ",", fixed = TRUE)) + + if (length(header_columns) == length(expected_headers) && all(header_columns == expected_headers)) { + # Les en-têtes correspondent, lire le fichier avec header = TRUE + singleChildCode <- read.csv(singleChildCode, header = TRUE) + } else { + warning("Variable names do not match the expected headers for the SingleChildCode. Renaming and using the first columns.") - #identify duplicates - duplicatesLabel = which(QC_output$duplicateLabel == 1) - if (length(duplicatesLabel) > 0) { - warning(paste("Some codes at the same hierarchical level have the same labels (see 'QC_duplicatesLabel').")) - } - QC_duplicatesLabel = QC_output[duplicatesLabel,] + + singleChildCode <- read.csv(singleChildCode, header = FALSE) + singleChildCode <- singleChildCode[-1,] + # Rename of the column expected + colnames(singleChildCode) <- expected_headers + } + + if (length(header_columns) > length(expected_headers)) { + warning("There are more columns than needed for SingleChildCode. Using the first columns.") + } + } else { + stop("The provided sequencing file is not a CSV file or does not exist.") } + QC_output$singleCodeError = 0 + QC_output$multipleCodeError = 0 + + for (k in 1:(nrow(lengths)-1)) { - ## RULE 6 - Hierarchical label dependencies - if (labelHierarchy){ - QC_output$singleChildMismatch = 0 + if (unique(nchar(na.omit(QC_output[[paste0("segment", k+1)]]))) > 1) { + # warning(paste0("Single child code compliance cannot be checked at level ", k+1, " as segments of code have more than one character.")) + QC_output$singleCodeError[which(nchar(na.omit(QC_output[[paste0("segment", k+1)]])) > 1)] = NA + QC_output$multipleCodeError[which(nchar(na.omit(QC_output[[paste0("segment", k+1)]])) > 1)] = NA + } + + if (unique(nchar(na.omit(QC_output[[paste0("segment", k+1)]]))) == 1) { - for (k in 1:(nrow(lengths)-1)) { + #select only parents with children + parents_k = QC_output$Code[which(QC_output$level == k)] + #list the no. of child for each parent then select parents with single child / or multiple children + child_ls = sapply(unique(parents_k), function(x) length(unique(na.omit(QC_output[which(QC_output[[paste0("Code", k)]] == x), paste0("Code", k+1)])))) + code_singlechild = QC_output[which(QC_output[[paste0("Code", k)]] %in% names(which(child_ls == 1)) & !is.na(QC_output[[paste0("Code", k+1)]]) & QC_output$level == k +1), c(paste0("Code", k), paste0("Code", k+1))] + code_multichild = QC_output[which(QC_output[[paste0("Code", k)]] %in% names(which(child_ls > 1)) & !is.na(QC_output[[paste0("Code", k+1)]]) & QC_output$level == k +1), c(paste0("Code", k), paste0("Code", k+1))] - #select only parents with children - parents_k = QC_output$Code[which(QC_output$level == k)] - #list the no. of child for each parent then select parents with single child / or multiple children - child_ls = sapply(unique(parents_k), function(x) length(unique(na.omit(QC_output[which(QC_output[[paste0("Code", k)]] == x), paste0("Code", k+1)])))) - code_singlechild = QC_output[which(QC_output[[paste0("Code", k)]] %in% names(which(child_ls == 1)) & !is.na(QC_output[[paste0("Code", k+1)]]) & QC_output$level == k +1), c(paste0("Code", k), paste0("Code", k+1))] - code_multichild = QC_output[which(QC_output[[paste0("Code", k)]] %in% names(which(child_ls > 1)) & !is.na(QC_output[[paste0("Code", k+1)]]) & QC_output$level == k +1), c(paste0("Code", k), paste0("Code", k+1))] - - #only label - label_nocode = gsub("(\\d)|\\.", "", QC_output$Label) - label_nocode = mapply(function(x,y) sub(x, "", y), QC_output$Code, label_nocode) - label_nocode = tolower(str_squish(label_nocode)) + level = singleChildCode[k, 1] + ##singleCode take all the code end by a "0" + single = singleChildCode[which(singleChildCode[,1] == level),2] + ## MultipleCode take all the code end as in the csv file #COULD BE LETTER AS WELL + multi = as.character(singleChildCode[which(singleChildCode[,1] == level),3]) + + #Determine the observed code end for single and multi children + single_code = str_sub(code_singlechild[,2], nchar(code_singlechild[,2]), nchar(code_singlechild[,2])) + multi_code = str_sub(code_multichild[,2], nchar(code_multichild[,2]), nchar(code_multichild[,2])) + + #Check if they are correct (single) + if (nrow(code_singlechild) != 0){ + for (c in 1:nrow(code_singlechild)){ + row_parent = which(QC_output$Code == as.character(code_singlechild[c,1])) + label_parent = label_nocode[row_parent] + row_child = which(QC_output$Code == as.character(code_singlechild[c,2])) + label_child = label_nocode[row_child] - #check if single child have different labels from their parents (=1) - if (nrow(code_singlechild) != 0){ - for (c in 1:nrow(code_singlechild)){ - row_parent = which(QC_output$Code == as.character(code_singlechild[c,1])) - label_parent = label_nocode[row_parent] - row_child = which(QC_output$Code == as.character(code_singlechild[c,2])) - label_child = label_nocode[row_child] - if (label_parent != label_child) { - QC_output$singleChildMismatch[row_child] = 1 - } - } + #check if single child have correct end code + end_code = str_sub(QC_output$Code[row_child], nchar(QC_output$Code[row_child]), nchar(QC_output$Code[row_child])) + if (!end_code %in% single) { + QC_output$singleCodeError[row_child] = 1 } - #identify mismatches - - singleChildMismatch = which(QC_output$singleChildMismatch != 0) - if (length(singleChildMismatch) > 0) { - warning(paste("Some single child have different labels from their parents or some multiple children have same labels to their parents (see 'QC_singleChildMismatch').")) - } - QC_singleChildMismatch = QC_output[singleChildMismatch,] + } } - } - - ## RULE 7 - Single child code compliance - if (!missing(singleChildCode)){ - - singleChildCode = read.csv(file.path(paste0(getwd(), "/", singleChildCode))) - QC_output$singleCodeError = 0 - QC_output$multipleCodeError = 0 - - for (k in 1:(nrow(lengths)-1)) { + #Check if they are correct (multi) + if (nrow(code_multichild) != 0){ + for (m in 1:nrow(code_multichild)){ + row_parent = which(QC_output$Code == as.character(code_multichild[m,1])) + label_parent = label_nocode[row_parent] + row_child = which(QC_output$Code == as.character(code_multichild[m,2])) + label_child = label_nocode[row_child] + #check if multiple child have same labels to their parents (=9) + # if (label_parent == label_child) { + # QC_output$singleChildMismatch[row_child] = 9 + # } + + #check if multi child have correct end code + end_code = str_sub(QC_output$Code[row_child], nchar(QC_output$Code[row_child]), nchar(QC_output$Code[row_child])) - if (unique(nchar(na.omit(QC_output[[paste0("segment", k+1)]]))) > 1) { - warning(paste0("Single child code compliance cannot be checked at level ", k+1, " as segments of code have more than one character.")) - QC_output$singleCodeError[which(nchar(na.omit(QC_output[[paste0("segment", k+1)]])) > 1)] = NA - QC_output$multipleCodeError[which(nchar(na.omit(QC_output[[paste0("segment", k+1)]])) > 1)] = NA - } - if (unique(nchar(na.omit(QC_output[[paste0("segment", k+1)]]))) == 1) { - - #select only parents with children - parents_k = QC_output$Code[which(QC_output$level == k)] - #list the no. of child for each parent then select parents with single child / or multiple children - child_ls = sapply(unique(parents_k), function(x) length(unique(na.omit(QC_output[which(QC_output[[paste0("Code", k)]] == x), paste0("Code", k+1)])))) - code_singlechild = QC_output[which(QC_output[[paste0("Code", k)]] %in% names(which(child_ls == 1)) & !is.na(QC_output[[paste0("Code", k+1)]]) & QC_output$level == k +1), c(paste0("Code", k), paste0("Code", k+1))] - code_multichild = QC_output[which(QC_output[[paste0("Code", k)]] %in% names(which(child_ls > 1)) & !is.na(QC_output[[paste0("Code", k+1)]]) & QC_output$level == k +1), c(paste0("Code", k), paste0("Code", k+1))] - - level = singleChildCode[k, 1] - ##singleCode take all the code end by a "0" - single = singleChildCode[which(singleChildCode[,1] == level),2] - ## MultipleCode take all the code end as in the csv file #COULD BE LETTER AS WELL - multi = strsplit(as.character(singleChildCode[which(singleChildCode[,1] == level),3]),"")[[1]] - - #Determine the observed code end for single and multi children - single_code = str_sub(code_singlechild[,2], nchar(code_singlechild[,2]), nchar(code_singlechild[,2])) - multi_code = str_sub(code_multichild[,2], nchar(code_multichild[,2]), nchar(code_multichild[,2])) - - #Check if they are correct (single) - if (nrow(code_singlechild) != 0){ - for (c in 1:nrow(code_singlechild)){ - row_parent = which(QC_output$Code == as.character(code_singlechild[c,1])) - label_parent = label_nocode[row_parent] - row_child = which(QC_output$Code == as.character(code_singlechild[c,2])) - label_child = label_nocode[row_child] - - #check if single child have correct end code - end_code = str_sub(QC_output$Code[row_child], nchar(QC_output$Code[row_child]), nchar(QC_output$Code[row_child])) - if (!end_code %in% single) { - QC_output$singleCodeError[row_child] = 1 - } - } - } - - - #Check if they are correct (multi) - if (nrow(code_multichild) != 0){ - for (m in 1:nrow(code_multichild)){ - row_parent = which(QC_output$Code == as.character(code_multichild[m,1])) - label_parent = label_nocode[row_parent] - row_child = which(QC_output$Code == as.character(code_multichild[m,2])) - label_child = label_nocode[row_child] - #check if multiple child have same labels to their parents (=9) - if (label_parent == label_child) { - QC_output$singleChildMismatch[row_child] = 9 - } - - #check if multi child have correct end code - end_code = str_sub(QC_output$Code[row_child], nchar(QC_output$Code[row_child]), nchar(QC_output$Code[row_child])) - if (!end_code %in% multi) { - QC_output$multipleCodeError[row_child] = 1 - } - } - } + # Check if end_code is equal to any value in multi + if (!end_code %in% unlist(strsplit(multi, ""))) { + QC_output$multipleCodeError[row_child] = 1 + } + + } } + } + } + + + #identify mismatches + singleCodeError = which(QC_output$singleCodeError != 0) + if (length(singleCodeError) > 0) { + warning(paste("Some single children been wrongly coded (see 'QC_singleCodeError'.")) + } + QC_singleCodeError = QC_output[singleCodeError,] + + multipleCodeError = which(QC_output$multipleCodeError != 0) + if (length(multipleCodeError) > 0) { + warning(paste("Some multiple children been wrongly coded (see 'QC_multipleCodeError'.")) + } + QC_multipleCodeError = QC_output[multipleCodeError,] + } + + ## RULE 8 - Sequencing of codes + if (!is.null(sequencing)) { + # if (file.exists(sequencing) && length(grep("csv", tolower(sequencing))) > 0) { + # # Read the first line of the CSV file + # first_line <- readLines(sequencing, n = 1) + # + # # Check for expected headers + # expected_headers <- c("level", "multipleCode") + # # Split the first line using "," + # header_columns <- unlist(strsplit(first_line, ";", fixed = TRUE)) + # + # if (length(header_columns) == length(expected_headers) && all(header_columns == expected_headers)) { + # # Les en-têtes correspondent, lire le fichier avec header = TRUE + # sequencing <- read.csv(sequencing, header = TRUE, sep = ";") + # } else { + # warning("Variable names do not match the expected headers for the sequencing file. Renaming and using the first columns.") + # + # # Lire le fichier avec header = FALSE + # sequencing <- read.csv(sequencing, header = FALSE, sep = ";") + # sequencing <- sequencing[-1,] + # colnames(sequencing) <- expected_headers + # } + # + # if (length(header_columns) > length(expected_headers)) { + # warning("There are more columns than needed for Sequencing. Using the first columns.") + # } + # } else { + # stop("The provided sequencing file is not a CSV file or does not exist.") + # } + + sequencing <- singleChildCode + #remove singleCode + sequencing <- sequencing[,-2] + # levels_to_filter <- unlist(strsplit(as.character(sequencing), " ")) + levels_to_filter <- unique(sequencing$level) + # Filter the data of the user select + sequencing <- sequencing[sequencing$level %in% levels_to_filter, ] + + QC_output$gapBefore = 0 + QC_output$lastSibling = 0 + lengths$level <- seq_len(nrow(lengths)) + lengths2 <- lengths[lengths$level %in% levels_to_filter, ] + lengths2$level <- NULL + #lengths2 + for (k in 1:(nrow(lengths2))) { + + if (unique(nchar(na.omit(QC_output[[paste0("segment", k+1)]]))) > 1) { + warning(paste0("Sequencing of codes cannot be checked at level ", k+1, " as segments of code have more than one character.")) + QC_output$gapBefore[which(nchar(na.omit(QC_output[[paste0("segment", k+1)]])) > 1)] = NA + QC_output$lastSibling[which(nchar(na.omit(QC_output[[paste0("segment", k+1)]])) > 1)] = NA + } + + if (unique(nchar(na.omit(QC_output[[paste0("segment", k+1)]]))) == 1) { - #identify mismatches - singleCodeError = which(QC_output$singleCodeError != 0) - if (length(singleCodeError) > 0) { - warning(paste("Some single children been wrongly coded (see 'QC_singleCodeError'.")) - } - QC_singleCodeError = QC_output[singleCodeError,] + #select only parents with children + parents_k = QC_output$Code[which(QC_output$level == k)] + #list the no. of child for each parent then select parents with single child / or multiple children + child_ls = sapply(unique(parents_k), function(x) length(unique(na.omit(QC_output[which(QC_output[[paste0("Code", k)]] == x), paste0("Code", k+1)])))) + code_multichild = QC_output[which(QC_output[[paste0("Code", k)]] %in% names(which(child_ls > 1)) & !is.na(QC_output[[paste0("Code", k+1)]]) & QC_output$level == k +1), c(paste0("Code", k), paste0("Code", k+1))] - multipleCodeError = which(QC_output$multipleCodeError != 0) - if (length(multipleCodeError) > 0) { - warning(paste("Some multiple children been wrongly coded (see 'QC_multipleCodeError'.")) - } - QC_multipleCodeError = QC_output[multipleCodeError,] - } - ## RULE 8 - Sequencing of codes - if (!missing(sequencing)){ + level = sequencing$level[k] - sequencing = read.csv(file.path(paste0(getwd(), "/", sequencing))) - - QC_output$gapBefore = 0 - QC_output$lastSibling = 0 + ## MultipleCode take all the code end as in the csv file #COULD BE LETTER AS WELL + multi = as.character(sequencing[which(sequencing[,1] == level),2]) + if (length(multi) > 0) { + multi = strsplit(multi, "")[[1]] + } else { + multi = NULL + } + #Determine the observed code end for single and multi children + multi_code = str_sub(code_multichild[,2], nchar(code_multichild[,2]), nchar(code_multichild[,2])) + #identify last code for multi children + mcode_ls = sapply(unique(code_multichild[,1]), function(x) code_multichild[,2][which(code_multichild[,1] == x)]) + ecode_ls = lapply(mcode_ls, function(x) str_sub(x, nchar(x), nchar(x))) - for (k in 1:(nrow(lengths)-1)) { - - if (unique(nchar(na.omit(QC_output[[paste0("segment", k+1)]]))) > 1) { - warning(paste0("Sequencing of codes cannot be checked at level ", k+1, " as segments of code have more than one character.")) - QC_output$gapBefore[which(nchar(na.omit(QC_output[[paste0("segment", k+1)]])) > 1)] = NA - QC_output$lastSibling[which(nchar(na.omit(QC_output[[paste0("segment", k+1)]])) > 1)] = NA - } + ## to avoid confusions I have added to take the first element only, but needs to be changed + last_dig = unlist(lapply(ecode_ls, function(x) which(x == max(x))[1])) + last_code = as.vector(mapply(function(x, y) x[y], mcode_ls, last_dig)) - if (unique(nchar(na.omit(QC_output[[paste0("segment", k+1)]]))) == 1) { - - #select only parents with children - parents_k = QC_output$Code[which(QC_output$level == k)] - #list the no. of child for each parent then select parents with single child / or multiple children - child_ls = sapply(unique(parents_k), function(x) length(unique(na.omit(QC_output[which(QC_output[[paste0("Code", k)]] == x), paste0("Code", k+1)])))) - code_multichild = QC_output[which(QC_output[[paste0("Code", k)]] %in% names(which(child_ls > 1)) & !is.na(QC_output[[paste0("Code", k+1)]]) & QC_output$level == k +1), c(paste0("Code", k), paste0("Code", k+1))] - - level = sequencing[k, 1] - - ## MultipleCode take all the code end as in the csv file #COULD BE LETTER AS WELL - multi = strsplit(as.character(sequencing[which(sequencing[,1] == level),2]),"")[[1]] - - #Determine the observed code end for single and multi children - multi_code = str_sub(code_multichild[,2], nchar(code_multichild[,2]), nchar(code_multichild[,2])) - - #identify last code for multi children - mcode_ls = sapply(unique(code_multichild[,1]), function(x) code_multichild[,2][which(code_multichild[,1] == x)]) - ecode_ls = lapply(mcode_ls, function(x) str_sub(x, nchar(x), nchar(x))) - - ## to avoid confusions I have added to take the first element only, but needs to be changed - last_dig = unlist(lapply(ecode_ls, function(x) which(x == max(x))[1])) - last_code = as.vector(mapply(function(x, y) x[y], mcode_ls, last_dig)) - - #identify code with gap before - gap_find = lapply(ecode_ls, function(x) match(multi, x)) - code_gap = lapply(gap_find, function(x) which(is.na(x)) + 1) - gapbefore_dig = mapply(function(x, y) na.omit(x[y]), gap_find, code_gap) - gapbefore_code = as.vector(unlist(mapply(function(x, y) x[y], mcode_ls, gapbefore_dig))) - - #flag in the QC_output - QC_output$lastSibling[which(QC_output$Code %in% last_code)] = 1 - QC_output$gapBefore[which(QC_output$Code %in% gapbefore_code)] = 1 - } - - #identify gab before - gap = which(QC_output$gapBefore == 1) - if (length(gap) > 0) { - warning(paste("There are gab in the sequencing of multiple children coding (see 'QC_gapBefore').")) - } - QC_gapBefore = QC_output[gap,] - - #identify last sibling - - lastSibling = which(QC_output$lastSibling == 1) - QC_lastSibling = QC_output[lastSibling,] - - } - } - - ## RESULTS - if (!(fullHierarchy)) { - QC_childless = data.frame() + #identify code with gap before + gap_find = lapply(ecode_ls, function(x) match(multi, x)) + code_gap = lapply(gap_find, function(x) which(is.na(x)) + 1) + gapbefore_dig = mapply(function(x, y) na.omit(x[y]), gap_find, code_gap) + gapbefore_code = as.vector(unlist(mapply(function(x, y) x[y], mcode_ls, gapbefore_dig))) + + #flag in the QC_output + QC_output$lastSibling[which(QC_output$Code %in% last_code)] = 1 + QC_output$gapBefore[which(QC_output$Code %in% gapbefore_code)] = 1 + row_child = which(QC_output$level == k & QC_output$multipleCodeError == 1) + QC_output$gapBefore[row_child] = 9 + } + + #identify gab before + gap = which(QC_output$gapBefore == 1) + if (length(gap) > 0) { + warning(paste("There are gab in the sequencing of multiple children coding (see 'QC_gapBefore').")) + } + QC_gapBefore = QC_output[gap,] + + #identify last sibling - + lastSibling = which(QC_output$lastSibling == 1) + QC_lastSibling = QC_output[lastSibling,] + } - - if (!(labelUniqueness)) { - QC_duplicatesLabel = data.frame() + } + + ## RESULTS + colnames(QC_output)[1:1] <- classificationName + ## RESULTS + return_ls <- list("QC_output" = QC_output) + + # Add the result in QC_output + return_ls <- list( + "QC_output" = QC_output, + "QC_noLevels" = QC_noLevels, + "QC_duplicatesCode" = QC_duplicatesCode, + "QC_childless" = QC_childless, + "QC_orphan" = QC_orphan, + "QC_duplicatesLabel" = QC_duplicatesLabel, + "QC_singleChildMismatch" = QC_singleChildMismatch + ) + # Add the dataframe from what the user uses as parameters + if (!is.null(fullHierarchy)) { + if (!fullHierarchy) { + # Add codes childless + return_ls[["QC_childless"]] <- QC_childless + return_ls[["QC_orphan"]] <-QC_orphan } - - if (!(labelHierarchy)) { - QC_singleChildMismatch = data.frame() + } + + if (!is.null(labelUniqueness)) { + if (!labelUniqueness) { + # Add duplicate label + return_ls[["QC_duplicatesLabel"]] <- QC_duplicatesLabel } - - if (missing(singleChildCode)) { - QC_singleCodeError = data.frame() - QC_multipleCodeError = data.frame() + } + + if (!is.null(labelHierarchy)) { + if (!labelHierarchy) { + # add singleChildMismatch + return_ls[["QC_singleChildMismatch"]] <- QC_singleChildMismatch } - - if (missing(sequencing)) { - QC_lastSibling = data.frame() + } + + if (!is.null(singleChildCode)) { + # Add Single & multiple code error + return_ls[["QC_singleCodeError"]] <- QC_singleCodeError + return_ls[["QC_multipleCodeError"]] <- QC_multipleCodeError + } + + if (!is.null(sequencing)) { + if (!missing(sequencing)) { + # Add sequencing + return_ls[["QC_gapBefore"]] <- QC_gapBefore + return_ls[["QC_lastSibling"]] <- QC_lastSibling } - - return_ls = list("QC_output" = QC_output, "QC_noLevels" = QC_noLevels, "QC_duplicatesCode" = QC_duplicatesCode, "QC_orphan" = QC_orphan, - "QC_childless" = QC_childless, "QC_duplicatesLabel" = QC_duplicatesLabel, "QC_singleChildMismatch" = QC_singleChildMismatch, - "QC_singleCodeError" = QC_singleCodeError, "QC_multipleCodeError" = QC_multipleCodeError, "QC_gapBefore" = QC_gapBefore, - "QC_lastSibling" = QC_lastSibling) - - if (XLSXout == TRUE){ - write_xlsx(return_ls, file.path(paste0(getwd(), "/QC_output.csv"))) + } + + # Add the result in QC_output + if (!is.null(CSVout)) { + if (is.logical(CSVout) && CSVout == TRUE) { + name <- names(QC_output)[1] + file_name <- paste0("QC_output_", classificationName,".csv") + path_file <- file.path(getwd(), file_name) + write.csv(QC_output, path_file, row.names = FALSE) + message(paste0("The table was saved in ", getwd(), file_name)) + } else if (is.character(CSVout)) { + write.csv(QC_output, CSVout, row.names = FALSE) } - - return(return_ls) -} - - - + } + + + return(return_ls) + } + diff --git a/R/correspondenceList.R b/R/correspondenceList.R index 245a297..0383df8 100644 --- a/R/correspondenceList.R +++ b/R/correspondenceList.R @@ -1,6 +1,9 @@ -#' @title provides an overview of all the available correspondence classification from CELLAR and FAO repository. -#' @description provides an overview of all the available correspondence classification from CELLAR and FAO repository. -#' @param endpoint The SPARQL Endpoint. The valid values are \code{"CELLAR"}, \code{"FAO"} or \code{"ALL"} for both. +#' @title Overview of all the available correspondence classification from CELLAR and FAO repository. +#' @description Provides an overview of all the available correspondence classification from CELLAR and FAO repository. +#' @param endpoint SPARQL endpoints provide a standardized way to access data sets, +#' making it easier to retrieve specific information or perform complex queries on linked data. +#' The valid values are \code{"CELLAR"}, \code{"FAO"} or \code{"ALL"} for both. +#' @import httr #' @export #' @return #' \code{correspondenceList()} returns a list of the correspondence tables available with prefix name, ID, Source classification, @@ -8,7 +11,10 @@ #' @examples #' { #' corr_list = correspondenceList("ALL") -#' } +#' } + + + correspondenceList = function(endpoint) { if (endpoint == "ALL") { @@ -68,8 +74,8 @@ correspondenceList = function(endpoint) { } ") - response = httr::POST(url = source, config = httr::accept("text/csv"), body = list(query = SPARQL.query), encode = "form") - data_t[[i]] = read.csv(text=httr::content(response, "text"), sep= ",") #data.frame(httr::content(response)) + response = httr::POST(url = source, accept("text/csv"), body = list(query = SPARQL.query), encode = "form") + data_t[[i]] = data.frame(content(response, show_col_types = FALSE)) if (nrow(data_t[[i]]) == 0){ data_t[[i]] = cbind(prefix = character(), data_t[[i]]) diff --git a/R/dataStructure.R b/R/dataStructure.R index 981390d..bd9181f 100644 --- a/R/dataStructure.R +++ b/R/dataStructure.R @@ -36,7 +36,6 @@ #' data_CELLAR[[i]] = dataStructure(prefix, conceptScheme, endpoint) #' } #' names(data_CELLAR) = list_data$CELLAR[,1] - #' ## FAO #' data_FAO = list() #' endpoint = "FAO" @@ -62,7 +61,7 @@ dataStructure = function(prefix, conceptScheme, endpoint, language = "en") { } ## Create Prefixes list - prefix_ls = prefixList(endpoint) + prefix_ls = prefixList(endpoint, desired_prefix = prefix) prefix_ls = as.character(paste(prefix_ls, collapse = "\n")) ### Load prefixes from Excel file #prefix_file = read.csv(paste0("//lu-fsp01/Data_Lux/AgSTAT/Projects/CorrespondenceTables_Rpck/Task 3/prefix_", endpoint, ".csv")) @@ -70,7 +69,7 @@ dataStructure = function(prefix, conceptScheme, endpoint, language = "en") { ### SPARQL query SPARQL.query = paste0(prefix_ls, " - SELECT DISTINCT ?Concept_Scheme ?Level ?Depth (COUNT (distinct ?s) AS ?Count) + SELECT DISTINCT ?Concept_Scheme ?Depth (COUNT (distinct ?s) AS ?Count) WHERE { ?s skos:prefLabel ?Label ; @@ -81,7 +80,7 @@ dataStructure = function(prefix, conceptScheme, endpoint, language = "en") { skos:notation ?notation . ?Member a xkos:ClassificationLevel . - OPTIONAL {?member xkos:levels ?levels_temp . } + #OPTIONAL {?member xkos:levels ?levels_temp . } OPTIONAL {?member xkos:depth ?Depth . } FILTER (?Scheme = ", prefix, ":", conceptScheme, ") @@ -115,4 +114,4 @@ dataStructure = function(prefix, conceptScheme, endpoint, language = "en") { } return(table) -} \ No newline at end of file +} diff --git a/R/prefixList.R b/R/prefixList.R index c25811b..a6bd873 100644 --- a/R/prefixList.R +++ b/R/prefixList.R @@ -1,7 +1,9 @@ -#' @title Create a list of prefixes for both CELLAR and FAO +#' @title Create a list of prefixes for both CELLAR and FAO repositories. #' @description Create a list of prefixes to be used when defying the SPARQL query to retrieve the tables -#' @param endpoint A string of type character containing the endpoint where the table is stored. +#' @param endpoint SPARQL endpoints provide a standardized way to access data sets, +#' making it easier to retrieve specific information or perform complex queries on linked data. #' The valid values are \code{"CELLAR"} and \code{"FAO"}. +#' @import httr #' @export #' @return #' \code{prefixList()} returns a list of prefixes to be used when defying the SPARQL query. @@ -11,38 +13,55 @@ #' prefix_list = prefixList(endpoint) #' } -prefixList = function(endpoint) { - if (endpoint != "CELLAR" & endpoint != "FAO"){ - message("Specify the endpoint: CELLAR or FAO.") - prefix_all <- NULL - } else { - prefix_init = as.matrix(rbind( - "PREFIX dc: ", - "PREFIX dct: ", - "PREFIX cb: ", - "PREFIX eli: ", - "PREFIX euvoc: ", - "PREFIX owl: ", - "PREFIX rdfs: ", - "PREFIX skosxl: ", - "PREFIX xml: ", - "PREFIX rdf: ", - "PREFIX skos: ", - "PREFIX xkos: ", - "PREFIX is: ", - "PREFIX isi: ", - "PREFIX cpc: ", - "PREFIX xsd: ")) - - - ### Define List - uri = classEndpoint(endpoint)[[1]][,3] - prefix = classEndpoint(endpoint)[[1]][,1] - prefix = gsub("\\.", "", prefix) - prefix_all = as.matrix(paste0("PREFIX ", prefix, ": <", uri, "/>")) - prefix_all = rbind(prefix_init, prefix_all) - +prefixList = function(endpoint, desired_prefix = NULL) { + if (endpoint != "CELLAR" & endpoint != "FAO") { + stop("Specify the endpoint: CELLAR or FAO.") } - + + prefix_init = as.matrix(rbind( + "PREFIX dc: ", + "PREFIX dct: ", + "PREFIX cb: ", + "PREFIX eli: ", + "PREFIX euvoc: ", + "PREFIX owl: ", + "PREFIX rdfs: ", + "PREFIX skosxl: ", + "PREFIX xml: ", + "PREFIX rdf: ", + "PREFIX skos: ", + "PREFIX xkos: ", + "PREFIX is: ", + "PREFIX isi: ", + "PREFIX cpc: ", + "PREFIX xsd: " + )) + + ### Define List + uri = classificationEndpoint(endpoint)[[1]][, 3] + prefix = classificationEndpoint(endpoint)[[1]][, 1] + prefix = gsub("\\.", "", prefix) + # Include the predefined prefixes + prefix_all = as.matrix(paste0("PREFIX ", prefix, ": <", uri, "/>")) + prefix_all = rbind(prefix_init, prefix_all) + # remove duplicates + prefix_all = prefix_all[!duplicated(prefix_all)] + + # Check if desired prefixes are available for the given endpoint + if (!is.null(desired_prefix)) { + # Check if the desired prefixes are available for the given endpoint + valid_prefixes = desired_prefix[desired_prefix %in% prefix] + if (length(valid_prefixes) > 0) { + # Find the URIs corresponding to the desired prefixes + uri_for_prefix <- uri[prefix %in% valid_prefixes] + + # Construct the PREFIX statements for the desired prefixes + prefix_selected <- matrix(paste0("PREFIX ", valid_prefixes, ": <", uri_for_prefix, "/>")) + prefix_all <- rbind(prefix_init, prefix_selected) + } else { + stop("Desired prefixes not found.") + } + } + return(prefix_all) } diff --git a/R/retrieveClassificationTable.R b/R/retrieveClassificationTable.R index 964415f..084c85a 100644 --- a/R/retrieveClassificationTable.R +++ b/R/retrieveClassificationTable.R @@ -1,13 +1,24 @@ -#' @title Retrieve a classification tables from CELLAR and FAO -#' @description Retrieve a classification tables from CELLAR and FAO -#' @param prefix The SPARQL instruction for a declaration of a namespace prefix. It can be found using the classEndpoint() function. -#' @param endpoint The SPARQL Endpoint, the valid values are \code{"CELLAR"} or \code{"FAO"}. -#' @param conceptScheme Taxonomy of the SKOS object to be retrieved. It can be found using the classEndpoint() function. -#' @param level The levels of the objects in the collection to be retrieved, it can be found using the structureData() function. +#' @title Retrieve classification tables from CELLAR and FAO repositories. +#' @description To facilitate the utilization of European classifications as inputs for the newCorrespondenceTable and updateCorrespondenceTable functions, +#' "retrieveClassificationTable()" utility function has been developed. This utility function leverage R packages that enable SPARQL queries. +#' @param prefix Prefixes are typically defined at the beginning of a SPARQL query and are used throughout the query to make it more concise and easier to read. +#' Multiple prefixes can be defined in a single query to cover different namespaces used in the data set. +#' The function 'classificationEndpoint()' can be used to generate the prefixes for the selected classification table. +#' @param endpoint SPARQL endpoints provide a standardized way to access data sets, +#' making it easier to retrieve specific information or perform complex queries on linked data. +#' The valid values are \code{"CELLAR"} or \code{"FAO"}. +#' @param conceptScheme Refers to a unique identifier associated to specific classification table. +#' The conceptScheme can be obtained by utilizing the "classificationEndpoint()" function. +#' @param level Refers to the hierarchical levels of the selected classification table. +#' The detailed level information can be obtained by utilizing the "structureData() " function. #' By default is set to \code{"ALL"}. This is an optional argument. -#' @param language Language of the table. By default is set to \code{"en"}. This is an optional argument. -#' @param CSVout The valid values are \code{FALSE} or \code{TRUE}. In both cases the correspondence table as an R object. +#' @param language Refers to the specific language used for providing label, include and exclude information in the selected classification table. +#' By default is set to "en". This is an optional argument. +#' @param CSVout The valid values are \code{FALSE} or \code{TRUE}. In both cases the classification table as an R object. #' If output should be saved as a csv file, the argument should be set as \code{TRUE}. By default, no csv file is produced. +#' @param showQuery The valid values are \code{FALSE} or \code{TRUE}. In both cases the classification table as an R object. +#' If needed to view the SPARQL query used, the argument should be set as \code{TRUE}. By default, no SPARQL query is produced. +#' @import httr #' @export #' @return #' \code{retrieveClassificationTable()} returns a classification tables from CELLAR and FAO. The table includes the following variables: @@ -23,83 +34,95 @@ #' { #' endpoint = "CELLAR" #' prefix = "nace2" -#' endpoint = "CELLAR" #' conceptScheme = "nace2" -#' dt = retrieveClassificationTable(prefix, endpoint, conceptScheme) -#' # By default retrieved all levels and only English -#' head(dt) +#' +#' results_ls = retrieveClassificationTable(prefix, endpoint, conceptScheme) +#' +#' # View SPARQL Query +#' cat(results_ls[[1]]) +#' +#' #View Classification Table +#' #View(results_ls[[2]]) #' } -retrieveClassificationTable = function(prefix, endpoint, conceptScheme, level = "ALL", language = "en", CSVout = FALSE) { - +retrieveClassificationTable = function(prefix, endpoint, conceptScheme, level = "ALL", language = "en", CSVout = FALSE, showQuery=TRUE) { + ### Define endpoint - if (endpoint == "CELLAR") { - source = "http://publications.europa.eu/webapi/rdf/sparql" - } - if (endpoint == "FAO") { - source = "https://stats.fao.org/caliper/sparql/AllVocs" - } + if (endpoint == "CELLAR") { + source = "http://publications.europa.eu/webapi/rdf/sparql" + } + if (endpoint == "FAO") { + source = "https://stats.fao.org/caliper/sparql/AllVocs" + } ### Load prefixes using prefixList function - prefixlist = prefixList(endpoint) + prefixlist = prefixList(endpoint, desired_prefix = prefix) prefixlist = as.character(paste(prefixlist, collapse = "\n")) - ## Define key to get code as the last letter of the prefix name - #str = unlist(strsplit(prefix, "")) - #key = paste0(str[(length(str))-1],str[length(str)]) - ### CLASSIFICATION TABLE SPARQL QUERIES + # # Check if classification has level, if not, set level = "ALL" + dt_level = suppressMessages(dataStructure(prefix, conceptScheme, endpoint, language)) + + if (nrow(dt_level) == 0 & level != "ALL") { + level = "ALL" + message("Classification has no levels, so level = ALL was set to retrieve the table.") + } + ### Define SPARQL query -- BASE: all levels SPARQL.query_0 = paste0(prefixlist, " - - SELECT DISTINCT ?", prefix, " ?NAME ?Include ?Include_Also ?Exclude ?URL ?datatype + SELECT DISTINCT ?", prefix, " ?NAME ?Parent ?Include ?Include_Also ?Exclude ?URL WHERE { - ?s skos:prefLabel ?Label ; + ?s skos:altLabel ?Label ; skos:inScheme ?Scheme ; ^skos:member ?Member ; - skos:prefLabel ?Label ; + #skos:broader ?Broader;. + # skos:altLabel ?Label ; skos:notation ?notation . - + OPTIONAL {?s skos:broader ?Broader. + ?Broader skos:notation ?BT_Notation.} #FILTER (datatype(?notation) = xsd:string) - + BIND (STR(?BT_Notation) as ?Parent) FILTER (?Scheme = ", prefix, ":", conceptScheme, ") FILTER (lang(?Label) = '", language, "') BIND (STR(?s) AS ?URL) BIND (STR(?notation) as ?", prefix, " ) BIND (STR(?Label) as ?NAME) - BIND (datatype(?notation) AS ?datatype) + # BIND (datatype(?notation) AS ?datatype) OPTIONAL {?s skos:scopeNote ?Include . FILTER (LANG(?Include) = '", language, "') .} OPTIONAL {?s xkos:exclusionNote ?Exclude . FILTER (LANG(?Exclude) = '", language, "').} OPTIONAL {?s xkos:additionalContentNote ?Include_Also . FILTER (LANG(?Include_Also) = '", language, "').} ") + + + - - ### Define SPARQL query -- FILTER LEVEL - SPARQL.query_level = paste0("FILTER (?Member = ", prefix, ":", level, ")") + ### Define SPARQL query -- FILTER LEVEL + SPARQL.query_level = paste0("FILTER (?Member = ", prefix, ":", "division", ")") + ### End SPARQL query ", prefix SPARQL.query_end = paste0("} ORDER BY ?", prefix - ) + ) if (length(level) == 0 ){ - stop("Classification has no levels. Set level = ALL to retrieve the table.") + stop("Classification level was not specified.") } else { - if (level == "ALL") { - SPARQL.query = paste0(SPARQL.query_0, SPARQL.query_end) - } else { - SPARQL.query = paste0(SPARQL.query_0, SPARQL.query_level, SPARQL.query_end) - } + if (level == "ALL") { + SPARQL.query = paste0(SPARQL.query_0, SPARQL.query_end) + } else { + SPARQL.query = paste0(SPARQL.query_0, SPARQL.query_level, SPARQL.query_end) + } + } - - response = httr::POST(url = source, config = httr::accept("text/csv"), body = list(query = SPARQL.query), encode = "form") - data = read.csv(text=httr::content(response, "text"), sep= ",") # data.frame(httr::content(response)) + response = httr::POST(url = source, accept("text/csv"), body = list(query = SPARQL.query), encode = "form") + data = data.frame(content(response, show_col_types = FALSE)) #keep only plainLiteral if more than one datatype // #FAO - "http://www.w3.org/2001/XMLSchema#string" @@ -108,13 +131,10 @@ retrieveClassificationTable = function(prefix, endpoint, conceptScheme, level = if (length(type) > 1){ data = data[which(data$datatype == "http://www.w3.org/1999/02/22-rdf-syntax-ns#PlainLiteral"), ] } - + #remove datatype col data = data[, 1:(ncol(data)-1)] - #remove duplicates when only code name is different - #data = data[which(duplicated(data[,-1]) == FALSE), ] - #are there other duplicates? URL is the same and the other changes xcol = which(colnames(data) == "URL") dup = length(which(duplicated(data[,-xcol]) == TRUE)) @@ -123,13 +143,33 @@ retrieveClassificationTable = function(prefix, endpoint, conceptScheme, level = warning("There are duplicates codes in the classification table.") } + #Get the good format before we got + data <- lapply(data, function(x) gsub("\n", " ", x)) + data <- as.data.frame(data) + # Save results as CSV and show where it was stored if (CSVout == TRUE) { name_csv = paste0(prefix, "_table.csv") write.csv(data, file= name_csv, row.names=FALSE) message(paste0("The table was saved in ", getwd(), name_csv)) - } - - return(data) - -} \ No newline at end of file + } else if (is.character(CSVout)) { + # if user provide a csv file + write.csv(data, file = CSVout, row.names = FALSE) + message(paste0("The table was saved in ", getwd(), CSVout)) + } + + if (showQuery) { + result=list() + result[[1]]=SPARQL.query + result[[2]]=data + + names(result)=c("SPARQL.query", "ClassificationTable") + cat(result$SPARQL.query, sep ="/n") + } + + if (showQuery==FALSE){ + result=data + } + + return(result) +} diff --git a/R/retrieveCorrespondenceTable..R b/R/retrieveCorrespondenceTable..R index 79d3c07..fea5503 100644 --- a/R/retrieveCorrespondenceTable..R +++ b/R/retrieveCorrespondenceTable..R @@ -1,59 +1,79 @@ -#' @title Retrieve a correspondence tables from CELLAR and FAO. -#' @description Retrieve a correspondence tables from CELLAR and FAO. -#' @param prefix The SPARQL instruction for a declaration of a namespace prefix. It can be found using the classEndpoint() function. -#' @param endpoint The SPARQL Endpoint, the valid values are \code{"CELLAR"} or \code{"FAO"}. -#' @param ID_table The ID of the correspondence table which can be found using the correspondenceList() function. -#' @param language Language of the table. By default is set to "en". This is an optional argument. +#' @title Retrieve correspondence tables between statistical classifications from CELLAR and FAO repositories. +#' @description To facilitate the utilization of correspondence tables as inputs for the newCorrespondenceTable and updateCorrespondenceTable functions, +#' "retrieveCorrespondenceTable" utility function has been developed. This utility function leverage R packages that enable SPARQL queries. +#' @param prefix Prefixes are typically defined at the beginning of a SPARQL query +#' and are used throughout the query to make it more concise and easier to read. +#' Multiple prefixes can be defined in a single query to cover different namespaces used in the dataset. +#' The function 'classificationEndpoint()' can be used to generate the prefixes for the selected correspondence table. +#' @param endpoint SPARQL endpoints provide a standardized way to access data sets, +#' making it easier to retrieve specific information or perform complex queries on linked data. +#' The valid values are \code{"CELLAR"} or \code{"FAO"}. +#' @param ID_table Refers to a unique identifier associated with a specific correspondence table. +#' The ID_table can be obtained by utilizing the "correspondenceList()" function. +#' @param language Refers to the specific language used for providing label, include and exclude information in the selected correspondence table. +#' By default is set to "en". This is an optional argument. #' @param CSVout The valid values are \code{FALSE} or \code{TRUE}. In both cases the correspondence table as an R object. #' If output should be saved as a csv file, the argument should be set as \code{TRUE}. By default, no csv file is produced. +#' @param showQuery The valid values are \code{FALSE} or \code{TRUE}. In both cases the correspondence table as an R object. +#' If needed to view the SPARQL query used, the argument should be set as \code{TRUE}. By default, no SPARQL query is produced. +#' @import httr #' @export #' @return #' \code{retrieveCorrespondenceTable()} returns a classification tables from CELLAR and FAO. The table includes the following variables: #' \itemize{ #' \item Source Classification name (e.g. cn2019): the code of each object in the source classification -#' \item Source Classification label: the corresponding label of each object -#' \item Target Classification name (e.g. cn2021): the code of each object in the target classification -#' \item Target Classification label: the corresponding label of each object +#' \item Source Classification name (e.g. cn2021): the code of each object in the target classification +#' \item Target Classification label: the corresponding label of each object (e.g. cn2019) +#' \item Include: include details on each object (e.g. cn2019) +#' \item Exclude: details on each object (e.g. cn2019) +#' \item Target Classification label: the corresponding label of each object (e.g. cn2021) +#' \item Include: include details on each object (e.g. cn2021) +#' \item Exclude: details on each object (e.g. cn2021) #' \item Comment: details on each object, if available #' \item URL: the URL from which the SPARQL query was retrieved #' } #' @examples #' { #' endpoint = "CELLAR" -#' prefix = "nace2" -#' ID_table = "NACE2_PRODCOM2021" -#' language = "fr" -#' dt = retrieveCorrespondenceTable(prefix, endpoint, ID_table, language) -#' head(dt) +#' prefix = "cn2022" +#' ID_table = "CN2022_NST2007" +#' +#' results_ls = retrieveCorrespondenceTable(prefix, endpoint, ID_table) +#' +#' # View SPARQL Query +#' cat(results_ls[[1]]) +#' +#' #View Classification Table +#' #View(results_ls[[2]]) #' } -retrieveCorrespondenceTable = function(prefix, endpoint, ID_table, language = "en", CSVout = FALSE) { - - ## Define source from class --- classification - - ### Define endpoint +retrieveCorrespondenceTable = function(prefix, endpoint, ID_table, language = "en", CSVout = FALSE, showQuery=TRUE) { + + ## Define source from class --- classification + + ### Define endpoint if (endpoint == "CELLAR") { - source = "http://publications.europa.eu/webapi/rdf/sparql" + source = "http://publications.europa.eu/webapi/rdf/sparql" } if (endpoint == "FAO") { - source = "https://stats.fao.org/caliper/sparql/AllVocs" + source = "https://stats.fao.org/caliper/sparql/AllVocs" } - - ### Load prefixes using prefixList function - prefixlist = prefixList(endpoint) - prefixlist = as.character(paste(prefixlist, collapse = "\n")) - - ## Define A and B - ID_table_temp = gsub("-", "_", ID_table) - ID_table_temp = gsub("__", "_", ID_table_temp) - A = sub("_.*", "", ID_table_temp) - B = sub(".*_", "", ID_table_temp) - - ### CLASSIFICATION TABLE SPARQL QUERIES - ### Define SPARQL query -- BASE - SPARQL.query_0 = paste0(prefixlist, " - SELECT ?", A ," ?Label_", A ," ?", B ," ?Label_", B ," ?Comment ?URL + + ## Define A and B + ID_table_temp = gsub("-", "_", ID_table) + ID_table_temp = gsub("__", "_", ID_table_temp) + A = sub("_.*", "", ID_table_temp) + B = sub(".*_", "", ID_table_temp) + + ### Load prefixes using prefixList function + prefixlist = prefixList(endpoint, desired_prefix = tolower(c(A,B))) + prefixlist = as.character(paste(prefixlist, collapse = "\n")) + + ### CLASSIFICATION TABLE SPARQL QUERIES + ### Define SPARQL query -- BASE + SPARQL.query_0 = paste0(prefixlist, " + SELECT ?", A ," ?", B ," ?Label_", A ," ?Label_", B ," ?Include_", A ," ?Exclude_", A ," ?Include_", B ," ?Exclude_", B ," ?Comment ?URL ?Sourcedatatype ?Targetdatatype WHERE { ", prefix, ":", ID_table, " xkos:madeOf ?Associations . @@ -64,49 +84,74 @@ retrieveCorrespondenceTable = function(prefix, endpoint, ID_table, language = "e ?Source skos:notation ?SourceNotation . ?Target skos:notation ?TargetNotation . - FILTER ( datatype(?SourceNotation) = xsd:string) - FILTER ( datatype(?TargetNotation) = xsd:string) + #FILTER ( datatype(?SourceNotation) = rdf:PlainLiteral) + #FILTER ( datatype(?TargetNotation) = rdf:PlainLiteral) BIND (STR(?Associations ) AS ?URL) BIND (STR(?SourceNotation) as ?", A ,") BIND (STR(?TargetNotation) as ?", B ,") + BIND (datatype(?SourceNotation) AS ?Sourcedatatype) + BIND (datatype(?TargetNotation) AS ?Targetdatatype) - OPTIONAL { ?Source skos:prefLabel ?Label_", A ," FILTER (LANG(?Label_", A ,") = '", language, "') .} - OPTIONAL { ?Target skos:prefLabel ?Label_", B ," FILTER (LANG(?Label_", B ,") = '", language, "') .} - + OPTIONAL { ?Source skos:altLabel ?Label_", A ," FILTER (LANG(?Label_", A ,") = '", language, "') .} + OPTIONAL { ?Target skos:altLabel ?Label_", B ," FILTER (LANG(?Label_", B ,") = '", language, "') .} + OPTIONAL {?Source skos:scopeNote ?Include_", A ,". FILTER (LANG(?Include_", A ,") = '", language, "') .} + OPTIONAL {?Source xkos:exclusionNote ?Exclude_", A ,". FILTER (LANG(?Exclude_", A ,") = '", language, "') .} + OPTIONAL {?Target skos:scopeNote ?Include_", B ,". FILTER (LANG(?Include_", B ,") = '", language, "') .} + OPTIONAL {?Target xkos:exclusionNote ?Exclude_", B ,". FILTER (LANG(?Exclude_", B ,") = '", language, "') .} ") - - ### End SPARQL query ", prefix - SPARQL.query_end = paste0("} + + ### End SPARQL query ", prefix + SPARQL.query_end = paste0("} ORDER BY ?Source ") - - SPARQL.query = paste0(SPARQL.query_0, SPARQL.query_end) - - response = httr::POST(url = source, config = httr::accept("text/csv"), body = list(query = SPARQL.query), encode = "form") - data = read.csv(text=httr::content(response, "text"), sep= ",") # data.frame(httr::content(response)) + + SPARQL.query = paste0(SPARQL.query_0, SPARQL.query_end) + + response = httr::POST(url = source, accept("text/csv"), body = list(query = SPARQL.query), encode = "form") + data = data.frame(content(response, show_col_types = FALSE)) + + + #keep only plainLiteral if more than one datatype // + #FAO - "http://www.w3.org/2001/XMLSchema#string" + #CELLAR - "http://www.w3.org/2001/XMLSchema#string" - "http://www.w3.org/1999/02/22-rdf-syntax-ns#PlainLiteral" + Source_type = unique(data$Sourcedatatype) + Target_type = unique(data$Targetdatatype) + if (length(Source_type) > 1 | length(Target_type) > 1){ + data = data[which(data$Sourcedatatype == "http://www.w3.org/1999/02/22-rdf-syntax-ns#PlainLiteral"), ] + data = data[which(data$Targetdatatype == "http://www.w3.org/1999/02/22-rdf-syntax-ns#PlainLiteral"), ] + } + + #remove datatype col + data = data[, 1:(ncol(data)-2)] + + data <- lapply(data, function(x) gsub("\n", " ", x)) + data <- as.data.frame(data) + + # Save results as CSV and show where it was stored + if (CSVout == TRUE) { + name_csv = paste0(ID_table, "_table.csv") + write.csv(data, file= name_csv, row.names=FALSE) + message(paste0("The correspondence table was saved in ", getwd(), name_csv)) + } else if (is.character(CSVout)) { + # if user provide a csv file + write.csv(data, file = CSVout, row.names = FALSE) + message(paste0("The table was saved in ", getwd(), CSVout)) + } + + + if (showQuery) { + result=list() + result[[1]]=SPARQL.query + result[[2]]=data + names(result)=c("SPARQL.query", "CorrespondenceTable") + cat(result$SPARQL.query, sep ="/n") + } + + if (showQuery==FALSE){ + result=data + } - # Save results as CSV and show where it was stored - if (CSVout == TRUE) { - name_csv = paste0(ID_table, "_table.csv") - write.csv(data, file= name_csv, row.names=FALSE) - message(paste0("The correspondence table was saved in ", getwd(), name_csv)) - } - - - #remove duplicates when only code name is different - #data = data[which(duplicated(data[,-c(1,3)]) == FALSE), ] - #View(data) - - #are there other duplicates? URL is the same and the other changes - #xcol = which(colnames(data) == "URL") - #dup = length(which(duplicated(data[,-xcol]) == TRUE)) - - #if (dup > 0) { - # warning("There are duplicates codes in the classification table.") - #} - - #result = list(data, status) - return(data) -} \ No newline at end of file + return(result) +} diff --git a/README.md b/README.md index a2db1c7..84fc9bd 100644 --- a/README.md +++ b/README.md @@ -11,11 +11,13 @@ status](https://github.com/eurostat/correspondenceTables/workflows/R-CMD-check/b [![all downloads](https://cranlogs.r-pkg.org/badges/grand-total/correspondenceTables)](https://CRAN.R-project.org/package=correspondenceTables) -# correspondenceTables +# CorrespondenceTables -Creating or updating correspondence tables between two statistical classifications +Empowering the seamless creation and refinement of correspondence tables between two statistical classifications, such as NACE, CPA, CN, and more. +This toolkit not only streamlines the process of generating and updating these tables but also provides functionality for retrieving classification and correspondence tables. +It includes features for conducting quality control on classifications and offers a comprehensive analysis of correspondence tables with the ability to aggregate them effectively. -## installation +## Installation 'correspondenceTables' can be installed from [CRAN](https://CRAN.R-project.org/package=correspondenceTables) by @@ -29,20 +31,37 @@ or use the development version from GitHub devtools::install_github("eurostat/correspondenceTables", build_vignettes = TRUE) ``` -## background +## Background -This package is a tool to help you in the creation and updates of a correspondence table between 2 classification like NACE, CPA, CN, etc. +This package serves as a tool to assist you in creating and updating a correspondence table between two classifications, such as NACE, CPA, CN, and others. It enables the retrieval of classification tables and correspondence tables. Additionally, it facilitates quality control on a classification and allows for the analysis and aggregation of correspondence tables. -## content +## Content -The package contains 2 functions: +The package contains 11 functions: 1. `newCorrespondenceTable` to create a candidate correspondence table between two classifications when there are correspondence tables leading from the first classification to the second one via intermediate 'pivot' classifications. 2. `updateCorrespondenceTable` to update the correspondence table between two statistical classifications when one of the classifications gets updated to a new version. +3. `prefixList` Create a list of prefixes for both CELLAR and FAO repositories. -## examples +4. `CorrespondenceList` Overview of all the available correspondence classification from CELLAR and FAO repository. + +5. `dataStructure` Retrieve information about the structure of each classification tables from CELLAR and FAO repositories. + +6. `classificationEndpoint` Retrieve a list of classification tables from CELLAR and FAO repositories or both. + +7. `retrieveClassificationTable` Retrieve stastistical classification tables from CELLAR and FAO repositories. + +8. `retrieveCorrespondenceTable.` Retrieve correspondence tables between statistical classifications from CELLAR and FAO repositories. + +9. `classificationQC` performs quality control checks on statistical classifications. + +10. `analyseCorrespondancetable` performs analysis on correspondence tables. + +11. `aggregateCorrespondenceTable` aggregates correspondence tables to higher hierarchical levels. + +## Examples For the examples see the vignettes. ```R diff --git a/inst/extdata/AgrgregateCorrespondeceTable_NACE.Rev..2.Code & NACE.Rev..2.1.Code.csv b/inst/extdata/AgrgregateCorrespondeceTable_NACE.Rev..2.Code & NACE.Rev..2.1.Code.csv new file mode 100644 index 0000000..9887c57 --- /dev/null +++ b/inst/extdata/AgrgregateCorrespondeceTable_NACE.Rev..2.Code & NACE.Rev..2.1.Code.csv @@ -0,0 +1,4945 @@ +"NACE.Rev..2.Code level","NACE.Rev..2.1.Code level","NACE.Rev..2.Code","NACE.Rev..2.1.Code","N of NACE.Rev..2.CodeAcode level values ","N of NACE.Rev..2.Code2 level values ","N of NACE.Rev..2.Code3 level values ","N of NACE.Rev..2.Code4 level values ","N of NACE.Rev..2.1.CodeBcode level values ","N of NACE.Rev..2.1.Code2 level values ","N of NACE.Rev..2.1.Code3 level values ","N of NACE.Rev..2.1.Code4 level values " +"1","1","A","A","1","3","13","37","1","3","13","37" +"1","1","B","B","1","5","10","15","1","5","10","15" +"1","1","C","C","1","22","86","200","1","22","86","200" +"1","1","D","D","1","1","3","8","1","1","3","8" +"1","1","E","E","1","4","6","9","1","4","6","9" +"1","1","F","F","1","2","7","18","1","2","7","18" +"1","1","G","G","1","2","15","67","1","2","15","67" +"1","1","H","H","1","5","14","21","1","5","14","21" +"1","1","I","I","1","2","6","6","1","2","6","6" +"1","1","J","J","1","3","6","13","1","3","6","13" +"1","1","J","K","1","2","4","4","1","2","4","4" +"1","1","K","L","1","3","8","16","1","3","8","16" +"1","1","L","M","1","1","2","3","1","1","2","3" +"1","1","M","N","1","7","11","13","1","7","11","13" +"1","1","N","O","1","5","14","25","1","5","14","25" +"1","1","O","P","1","1","3","9","1","1","3","9" +"1","1","P","Q","1","1","4","8","1","1","4","8" +"1","1","Q","R","1","3","7","10","1","3","7","10" +"1","1","R","S","1","2","3","7","1","2","3","7" +"1","1","S","T","1","2","4","12","1","2","4","12" +"1","1","T","U","1","2","3","3","1","2","3","3" +"1","1","U","V","1","1","1","1","1","1","1","1" +"1","2","A","01","1","1","7","29","1","1","7","29" +"1","2","A","02","1","1","4","4","1","1","4","4" +"1","2","A","03","1","1","2","4","1","1","2","4" +"1","2","B","05","1","1","2","2","1","1","2","2" +"1","2","B","06","1","1","2","2","1","1","2","2" +"1","2","B","07","1","1","2","3","1","1","2","3" +"1","2","B","08","1","1","2","6","1","1","2","6" +"1","2","B","09","1","1","2","2","1","1","2","2" +"1","2","C","10","1","1","9","25","1","1","9","25" +"1","2","C","11","1","1","1","7","1","1","1","7" +"1","2","C","12","1","1","1","1","1","1","1","1" +"1","2","C","13","1","1","4","10","1","1","4","10" +"1","2","C","15","1","1","2","3","1","1","2","3" +"1","2","C","16","1","1","1","4","1","1","1","4" +"1","2","C","17","1","1","2","6","1","1","2","6" +"1","2","C","18","1","1","2","5","1","1","2","5" +"1","2","C","19","1","1","2","2","1","1","2","2" +"1","2","C","20","1","1","6","14","1","1","6","14" +"1","2","C","21","1","1","2","2","1","1","2","2" +"1","2","C","22","1","1","2","4","1","1","2","4" +"1","2","C","23","1","1","8","21","1","1","8","21" +"1","2","C","24","1","1","5","16","1","1","5","16" +"1","2","C","25","1","1","6","12","1","1","6","12" +"1","2","C","26","1","1","7","9","1","1","7","9" +"1","2","C","27","1","1","6","10","1","1","6","10" +"1","2","C","28","1","1","5","20","1","1","5","20" +"1","2","C","29","1","1","3","4","1","1","3","4" +"1","2","C","30","1","1","4","7","1","1","4","7" +"1","2","C","32","1","1","6","9","1","1","6","9" +"1","2","C","33","1","1","2","9","1","1","2","9" +"1","2","D","35","1","1","3","8","1","1","3","8" +"1","2","E","36","1","1","1","1","1","1","1","1" +"1","2","E","37","1","1","1","1","1","1","1","1" +"1","2","E","38","1","1","3","6","1","1","3","6" +"1","2","E","39","1","1","1","1","1","1","1","1" +"1","2","F","42","1","1","3","7","1","1","3","7" +"1","2","F","43","1","1","4","11","1","1","4","11" +"1","2","G","46","1","1","7","39","1","1","7","39" +"1","2","G","47","1","1","8","28","1","1","8","28" +"1","2","H","49","1","1","4","7","1","1","4","7" +"1","2","H","50","1","1","4","4","1","1","4","4" +"1","2","H","51","1","1","2","3","1","1","2","3" +"1","2","H","52","1","1","2","5","1","1","2","5" +"1","2","H","53","1","1","2","2","1","1","2","2" +"1","2","I","55","1","1","4","4","1","1","4","4" +"1","2","I","56","1","1","2","2","1","1","2","2" +"1","2","J","58","1","1","2","6","1","1","2","6" +"1","2","J","59","1","1","2","5","1","1","2","5" +"1","2","J","60","1","1","2","2","1","1","2","2" +"1","2","J","61","1","1","3","3","1","1","3","3" +"1","2","J","63","1","1","1","1","1","1","1","1" +"1","2","K","64","1","1","2","5","1","1","2","5" +"1","2","K","65","1","1","3","4","1","1","3","4" +"1","2","K","66","1","1","3","7","1","1","3","7" +"1","2","L","68","1","1","2","3","1","1","2","3" +"1","2","M","69","1","1","2","2","1","1","2","2" +"1","2","M","70","1","1","1","1","1","1","1","1" +"1","2","M","71","1","1","2","3","1","1","2","3" +"1","2","M","72","1","1","1","1","1","1","1","1" +"1","2","M","73","1","1","2","3","1","1","2","3" +"1","2","M","74","1","1","2","2","1","1","2","2" +"1","2","M","75","1","1","1","1","1","1","1","1" +"1","2","N","77","1","1","4","11","1","1","4","11" +"1","2","N","78","1","1","2","2","1","1","2","2" +"1","2","N","79","1","1","2","3","1","1","2","3" +"1","2","N","81","1","1","3","4","1","1","3","4" +"1","2","N","82","1","1","3","5","1","1","3","5" +"1","2","O","84","1","1","3","9","1","1","3","9" +"1","2","P","85","1","1","4","8","1","1","4","8" +"1","2","Q","86","1","1","2","4","1","1","2","4" +"1","2","Q","87","1","1","3","3","1","1","3","3" +"1","2","Q","88","1","1","2","3","1","1","2","3" +"1","2","R","92","1","1","1","1","1","1","1","1" +"1","2","R","93","1","1","2","6","1","1","2","6" +"1","2","S","94","1","1","3","6","1","1","3","6" +"1","2","S","95","1","1","1","6","1","1","1","6" +"1","2","T","97","1","1","1","1","1","1","1","1" +"1","2","T","98","1","1","2","2","1","1","2","2" +"1","2","U","99","1","1","1","1","1","1","1","1" +"1","3","A","01.1","1","1","1","7","1","1","1","7" +"1","3","A","01.2","1","1","1","9","1","1","1","9" +"1","3","A","01.3","1","1","1","1","1","1","1","1" +"1","3","A","01.4","1","1","1","7","1","1","1","7" +"1","3","A","01.5","1","1","1","1","1","1","1","1" +"1","3","A","01.6","1","1","1","3","1","1","1","3" +"1","3","A","01.7","1","1","1","1","1","1","1","1" +"1","3","A","02.1","1","1","1","1","1","1","1","1" +"1","3","A","02.2","1","1","1","1","1","1","1","1" +"1","3","A","02.3","1","1","1","1","1","1","1","1" +"1","3","A","02.4","1","1","1","1","1","1","1","1" +"1","3","A","03.1","1","1","1","2","1","1","1","2" +"1","3","A","03.2","1","1","1","2","1","1","1","2" +"1","3","B","05.1","1","1","1","1","1","1","1","1" +"1","3","B","05.2","1","1","1","1","1","1","1","1" +"1","3","B","06.1","1","1","1","1","1","1","1","1" +"1","3","B","06.2","1","1","1","1","1","1","1","1" +"1","3","B","07.1","1","1","1","1","1","1","1","1" +"1","3","B","07.2","1","1","1","2","1","1","1","2" +"1","3","B","08.1","1","1","1","2","1","1","1","2" +"1","3","B","08.9","1","1","1","4","1","1","1","4" +"1","3","B","09.1","1","1","1","1","1","1","1","1" +"1","3","B","09.9","1","1","1","1","1","1","1","1" +"1","3","C","10.1","1","1","1","3","1","1","1","3" +"1","3","C","10.2","1","1","1","1","1","1","1","1" +"1","3","C","10.3","1","1","1","3","1","1","1","3" +"1","3","C","10.4","1","1","1","2","1","1","1","2" +"1","3","C","10.5","1","1","1","2","1","1","1","2" +"1","3","C","10.6","1","1","1","2","1","1","1","2" +"1","3","C","10.7","1","1","1","3","1","1","1","3" +"1","3","C","10.8","1","1","1","7","1","1","1","7" +"1","3","C","10.9","1","1","1","2","1","1","1","2" +"1","3","C","11.0","1","1","1","7","1","1","1","7" +"1","3","C","12.0","1","1","1","1","1","1","1","1" +"1","3","C","13.1","1","1","1","1","1","1","1","1" +"1","3","C","13.2","1","1","1","1","1","1","1","1" +"1","3","C","13.3","1","1","1","1","1","1","1","1" +"1","3","C","13.9","1","1","1","7","1","1","1","7" +"1","3","C","15.1","1","1","1","2","1","1","1","2" +"1","3","C","15.2","1","1","1","1","1","1","1","1" +"1","3","C","16.2","1","1","1","4","1","1","1","4" +"1","3","C","17.1","1","1","1","2","1","1","1","2" +"1","3","C","17.2","1","1","1","4","1","1","1","4" +"1","3","C","18.1","1","1","1","4","1","1","1","4" +"1","3","C","18.2","1","1","1","1","1","1","1","1" +"1","3","C","19.1","1","1","1","1","1","1","1","1" +"1","3","C","19.2","1","1","1","1","1","1","1","1" +"1","3","C","20.1","1","1","1","7","1","1","1","7" +"1","3","C","20.2","1","1","1","1","1","1","1","1" +"1","3","C","20.3","1","1","1","1","1","1","1","1" +"1","3","C","20.4","1","1","1","2","1","1","1","2" +"1","3","C","20.5","1","1","1","2","1","1","1","2" +"1","3","C","20.6","1","1","1","1","1","1","1","1" +"1","3","C","21.1","1","1","1","1","1","1","1","1" +"1","3","C","21.2","1","1","1","1","1","1","1","1" +"1","3","C","22.1","1","1","1","1","1","1","1","1" +"1","3","C","22.2","1","1","1","3","1","1","1","3" +"1","3","C","23.1","1","1","1","4","1","1","1","4" +"1","3","C","23.2","1","1","1","1","1","1","1","1" +"1","3","C","23.3","1","1","1","2","1","1","1","2" +"1","3","C","23.4","1","1","1","4","1","1","1","4" +"1","3","C","23.5","1","1","1","2","1","1","1","2" +"1","3","C","23.6","1","1","1","5","1","1","1","5" +"1","3","C","23.7","1","1","1","1","1","1","1","1" +"1","3","C","23.9","1","1","1","2","1","1","1","2" +"1","3","C","24.1","1","1","1","1","1","1","1","1" +"1","3","C","24.2","1","1","1","1","1","1","1","1" +"1","3","C","24.3","1","1","1","4","1","1","1","4" +"1","3","C","24.4","1","1","1","6","1","1","1","6" +"1","3","C","24.5","1","1","1","4","1","1","1","4" +"1","3","C","25.1","1","1","1","2","1","1","1","2" +"1","3","C","25.2","1","1","1","1","1","1","1","1" +"1","3","C","25.3","1","1","1","1","1","1","1","1" +"1","3","C","25.4","1","1","1","1","1","1","1","1" +"1","3","C","25.6","1","1","1","2","1","1","1","2" +"1","3","C","25.9","1","1","1","5","1","1","1","5" +"1","3","C","26.1","1","1","1","2","1","1","1","2" +"1","3","C","26.2","1","1","1","1","1","1","1","1" +"1","3","C","26.3","1","1","1","1","1","1","1","1" +"1","3","C","26.4","1","1","1","1","1","1","1","1" +"1","3","C","26.5","1","1","1","2","1","1","1","2" +"1","3","C","26.6","1","1","1","1","1","1","1","1" +"1","3","C","26.7","1","1","1","1","1","1","1","1" +"1","3","C","27.1","1","1","1","2","1","1","1","2" +"1","3","C","27.2","1","1","1","1","1","1","1","1" +"1","3","C","27.3","1","1","1","3","1","1","1","3" +"1","3","C","27.4","1","1","1","1","1","1","1","1" +"1","3","C","27.5","1","1","1","2","1","1","1","2" +"1","3","C","27.9","1","1","1","1","1","1","1","1" +"1","3","C","28.1","1","1","1","5","1","1","1","5" +"1","3","C","28.2","1","1","1","6","1","1","1","6" +"1","3","C","28.3","1","1","1","1","1","1","1","1" +"1","3","C","28.4","1","1","1","1","1","1","1","1" +"1","3","C","28.9","1","1","1","7","1","1","1","7" +"1","3","C","29.1","1","1","1","1","1","1","1","1" +"1","3","C","29.2","1","1","1","1","1","1","1","1" +"1","3","C","29.3","1","1","1","2","1","1","1","2" +"1","3","C","30.1","1","1","1","2","1","1","1","2" +"1","3","C","30.2","1","1","1","1","1","1","1","1" +"1","3","C","30.4","1","1","1","1","1","1","1","1" +"1","3","C","30.9","1","1","1","3","1","1","1","3" +"1","3","C","32.1","1","1","1","3","1","1","1","3" +"1","3","C","32.2","1","1","1","1","1","1","1","1" +"1","3","C","32.3","1","1","1","1","1","1","1","1" +"1","3","C","32.4","1","1","1","1","1","1","1","1" +"1","3","C","32.5","1","1","1","1","1","1","1","1" +"1","3","C","32.9","1","1","1","2","1","1","1","2" +"1","3","C","33.1","1","1","1","8","1","1","1","8" +"1","3","C","33.2","1","1","1","1","1","1","1","1" +"1","3","D","35.1","1","1","1","4","1","1","1","4" +"1","3","D","35.2","1","1","1","3","1","1","1","3" +"1","3","D","35.3","1","1","1","1","1","1","1","1" +"1","3","E","36.0","1","1","1","1","1","1","1","1" +"1","3","E","37.0","1","1","1","1","1","1","1","1" +"1","3","E","38.1","1","1","1","2","1","1","1","2" +"1","3","E","38.2","1","1","1","2","1","1","1","2" +"1","3","E","38.3","1","1","1","2","1","1","1","2" +"1","3","E","39.0","1","1","1","1","1","1","1","1" +"1","3","F","42.1","1","1","1","3","1","1","1","3" +"1","3","F","42.2","1","1","1","2","1","1","1","2" +"1","3","F","42.9","1","1","1","2","1","1","1","2" +"1","3","F","43.1","1","1","1","3","1","1","1","3" +"1","3","F","43.2","1","1","1","2","1","1","1","2" +"1","3","F","43.3","1","1","1","4","1","1","1","4" +"1","3","F","43.9","1","1","1","2","1","1","1","2" +"1","3","G","46.1","1","1","1","9","1","1","1","9" +"1","3","G","46.2","1","1","1","4","1","1","1","4" +"1","3","G","46.3","1","1","1","9","1","1","1","9" +"1","3","G","46.4","1","1","1","9","1","1","1","9" +"1","3","G","46.6","1","1","1","4","1","1","1","4" +"1","3","G","46.7","1","1","1","3","1","1","1","3" +"1","3","G","46.9","1","1","1","1","1","1","1","1" +"1","3","G","47.1","1","1","1","1","1","1","1","1" +"1","3","G","47.2","1","1","1","6","1","1","1","6" +"1","3","G","47.3","1","1","1","1","1","1","1","1" +"1","3","G","47.5","1","1","1","4","1","1","1","4" +"1","3","G","47.6","1","1","1","4","1","1","1","4" +"1","3","G","47.7","1","1","1","9","1","1","1","9" +"1","3","G","47.8","1","1","1","2","1","1","1","2" +"1","3","G","47.9","1","1","1","1","1","1","1","1" +"1","3","H","49.2","1","1","1","1","1","1","1","1" +"1","3","H","49.3","1","1","1","3","1","1","1","3" +"1","3","H","49.4","1","1","1","2","1","1","1","2" +"1","3","H","49.5","1","1","1","1","1","1","1","1" +"1","3","H","50.1","1","1","1","1","1","1","1","1" +"1","3","H","50.2","1","1","1","1","1","1","1","1" +"1","3","H","50.3","1","1","1","1","1","1","1","1" +"1","3","H","50.4","1","1","1","1","1","1","1","1" +"1","3","H","51.1","1","1","1","1","1","1","1","1" +"1","3","H","51.2","1","1","1","2","1","1","1","2" +"1","3","H","52.1","1","1","1","1","1","1","1","1" +"1","3","H","52.2","1","1","1","4","1","1","1","4" +"1","3","H","53.1","1","1","1","1","1","1","1","1" +"1","3","H","53.2","1","1","1","1","1","1","1","1" +"1","3","I","55.1","1","1","1","1","1","1","1","1" +"1","3","I","55.2","1","1","1","1","1","1","1","1" +"1","3","I","55.3","1","1","1","1","1","1","1","1" +"1","3","I","55.9","1","1","1","1","1","1","1","1" +"1","3","I","56.2","1","1","1","1","1","1","1","1" +"1","3","I","56.3","1","1","1","1","1","1","1","1" +"1","3","J","58.1","1","1","1","4","1","1","1","4" +"1","3","J","58.2","1","1","1","2","1","1","1","2" +"1","3","J","59.1","1","1","1","4","1","1","1","4" +"1","3","J","59.2","1","1","1","1","1","1","1","1" +"1","3","J","60.1","1","1","1","1","1","1","1","1" +"1","3","J","60.2","1","1","1","1","1","1","1","1" +"1","3","J","61.1","1","1","1","1","1","1","1","1" +"1","3","J","61.2","1","1","1","1","1","1","1","1" +"1","3","J","61.9","1","1","1","1","1","1","1","1" +"1","3","J","63.9","1","1","1","1","1","1","1","1" +"1","3","K","64.1","1","1","1","2","1","1","1","2" +"1","3","K","64.9","1","1","1","3","1","1","1","3" +"1","3","K","65.1","1","1","1","2","1","1","1","2" +"1","3","K","65.2","1","1","1","1","1","1","1","1" +"1","3","K","65.3","1","1","1","1","1","1","1","1" +"1","3","K","66.1","1","1","1","3","1","1","1","3" +"1","3","K","66.2","1","1","1","3","1","1","1","3" +"1","3","K","66.3","1","1","1","1","1","1","1","1" +"1","3","L","68.2","1","1","1","1","1","1","1","1" +"1","3","L","68.3","1","1","1","2","1","1","1","2" +"1","3","M","69.1","1","1","1","1","1","1","1","1" +"1","3","M","69.2","1","1","1","1","1","1","1","1" +"1","3","M","70.1","1","1","1","1","1","1","1","1" +"1","3","M","71.1","1","1","1","2","1","1","1","2" +"1","3","M","71.2","1","1","1","1","1","1","1","1" +"1","3","M","72.2","1","1","1","1","1","1","1","1" +"1","3","M","73.1","1","1","1","2","1","1","1","2" +"1","3","M","73.2","1","1","1","1","1","1","1","1" +"1","3","M","74.2","1","1","1","1","1","1","1","1" +"1","3","M","74.3","1","1","1","1","1","1","1","1" +"1","3","M","75.0","1","1","1","1","1","1","1","1" +"1","3","N","77.1","1","1","1","2","1","1","1","2" +"1","3","N","77.2","1","1","1","2","1","1","1","2" +"1","3","N","77.3","1","1","1","6","1","1","1","6" +"1","3","N","77.4","1","1","1","1","1","1","1","1" +"1","3","N","78.1","1","1","1","1","1","1","1","1" +"1","3","N","78.2","1","1","1","1","1","1","1","1" +"1","3","N","79.1","1","1","1","2","1","1","1","2" +"1","3","N","79.9","1","1","1","1","1","1","1","1" +"1","3","N","81.1","1","1","1","1","1","1","1","1" +"1","3","N","81.2","1","1","1","2","1","1","1","2" +"1","3","N","81.3","1","1","1","1","1","1","1","1" +"1","3","N","82.2","1","1","1","1","1","1","1","1" +"1","3","N","82.3","1","1","1","1","1","1","1","1" +"1","3","N","82.9","1","1","1","3","1","1","1","3" +"1","3","O","84.1","1","1","1","3","1","1","1","3" +"1","3","O","84.2","1","1","1","5","1","1","1","5" +"1","3","O","84.3","1","1","1","1","1","1","1","1" +"1","3","P","85.1","1","1","1","1","1","1","1","1" +"1","3","P","85.2","1","1","1","1","1","1","1","1" +"1","3","P","85.3","1","1","1","2","1","1","1","2" +"1","3","P","85.5","1","1","1","4","1","1","1","4" +"1","3","Q","86.1","1","1","1","1","1","1","1","1" +"1","3","Q","86.2","1","1","1","3","1","1","1","3" +"1","3","Q","87.1","1","1","1","1","1","1","1","1" +"1","3","Q","87.2","1","1","1","1","1","1","1","1" +"1","3","Q","87.3","1","1","1","1","1","1","1","1" +"1","3","Q","88.1","1","1","1","1","1","1","1","1" +"1","3","Q","88.9","1","1","1","2","1","1","1","2" +"1","3","R","92.0","1","1","1","1","1","1","1","1" +"1","3","R","93.1","1","1","1","4","1","1","1","4" +"1","3","R","93.2","1","1","1","2","1","1","1","2" +"1","3","S","94.1","1","1","1","2","1","1","1","2" +"1","3","S","94.2","1","1","1","1","1","1","1","1" +"1","3","S","94.9","1","1","1","3","1","1","1","3" +"1","3","S","95.2","1","1","1","6","1","1","1","6" +"1","3","T","97.0","1","1","1","1","1","1","1","1" +"1","3","T","98.1","1","1","1","1","1","1","1","1" +"1","3","T","98.2","1","1","1","1","1","1","1","1" +"1","3","U","99.0","1","1","1","1","1","1","1","1" +"1","4","A","01.11","1","1","1","1","1","1","1","1" +"1","4","A","01.12","1","1","1","1","1","1","1","1" +"1","4","A","01.13","1","1","1","1","1","1","1","1" +"1","4","A","01.14","1","1","1","1","1","1","1","1" +"1","4","A","01.15","1","1","1","1","1","1","1","1" +"1","4","A","01.16","1","1","1","1","1","1","1","1" +"1","4","A","01.19","1","1","1","1","1","1","1","1" +"1","4","A","01.21","1","1","1","1","1","1","1","1" +"1","4","A","01.22","1","1","1","1","1","1","1","1" +"1","4","A","01.23","1","1","1","1","1","1","1","1" +"1","4","A","01.24","1","1","1","1","1","1","1","1" +"1","4","A","01.25","1","1","1","1","1","1","1","1" +"1","4","A","01.26","1","1","1","1","1","1","1","1" +"1","4","A","01.27","1","1","1","1","1","1","1","1" +"1","4","A","01.28","1","1","1","1","1","1","1","1" +"1","4","A","01.29","1","1","1","1","1","1","1","1" +"1","4","A","01.30","1","1","1","1","1","1","1","1" +"1","4","A","01.41","1","1","1","1","1","1","1","1" +"1","4","A","01.42","1","1","1","1","1","1","1","1" +"1","4","A","01.43","1","1","1","1","1","1","1","1" +"1","4","A","01.44","1","1","1","1","1","1","1","1" +"1","4","A","01.45","1","1","1","1","1","1","1","1" +"1","4","A","01.46","1","1","1","1","1","1","1","1" +"1","4","A","01.47","1","1","1","1","1","1","1","1" +"1","4","A","01.50","1","1","1","1","1","1","1","1" +"1","4","A","01.61","1","1","1","1","1","1","1","1" +"1","4","A","01.62","1","1","1","1","1","1","1","1" +"1","4","A","01.63","1","1","1","1","1","1","1","1" +"1","4","A","01.70","1","1","1","1","1","1","1","1" +"1","4","A","02.10","1","1","1","1","1","1","1","1" +"1","4","A","02.20","1","1","1","1","1","1","1","1" +"1","4","A","02.30","1","1","1","1","1","1","1","1" +"1","4","A","02.40","1","1","1","1","1","1","1","1" +"1","4","A","03.11","1","1","1","1","1","1","1","1" +"1","4","A","03.12","1","1","1","1","1","1","1","1" +"1","4","A","03.21","1","1","1","1","1","1","1","1" +"1","4","A","03.22","1","1","1","1","1","1","1","1" +"1","4","B","05.10","1","1","1","1","1","1","1","1" +"1","4","B","05.20","1","1","1","1","1","1","1","1" +"1","4","B","06.10","1","1","1","1","1","1","1","1" +"1","4","B","06.20","1","1","1","1","1","1","1","1" +"1","4","B","07.10","1","1","1","1","1","1","1","1" +"1","4","B","07.21","1","1","1","1","1","1","1","1" +"1","4","B","07.29","1","1","1","1","1","1","1","1" +"1","4","B","08.11","1","1","1","1","1","1","1","1" +"1","4","B","08.12","1","1","1","1","1","1","1","1" +"1","4","B","08.91","1","1","1","1","1","1","1","1" +"1","4","B","08.92","1","1","1","1","1","1","1","1" +"1","4","B","08.93","1","1","1","1","1","1","1","1" +"1","4","B","08.99","1","1","1","1","1","1","1","1" +"1","4","B","09.10","1","1","1","1","1","1","1","1" +"1","4","B","09.90","1","1","1","1","1","1","1","1" +"1","4","C","10.11","1","1","1","1","1","1","1","1" +"1","4","C","10.12","1","1","1","1","1","1","1","1" +"1","4","C","10.13","1","1","1","1","1","1","1","1" +"1","4","C","10.20","1","1","1","1","1","1","1","1" +"1","4","C","10.31","1","1","1","1","1","1","1","1" +"1","4","C","10.32","1","1","1","1","1","1","1","1" +"1","4","C","10.39","1","1","1","1","1","1","1","1" +"1","4","C","10.41","1","1","1","1","1","1","1","1" +"1","4","C","10.42","1","1","1","1","1","1","1","1" +"1","4","C","10.51","1","1","1","1","1","1","1","1" +"1","4","C","10.52","1","1","1","1","1","1","1","1" +"1","4","C","10.61","1","1","1","1","1","1","1","1" +"1","4","C","10.62","1","1","1","1","1","1","1","1" +"1","4","C","10.71","1","1","1","1","1","1","1","1" +"1","4","C","10.72","1","1","1","1","1","1","1","1" +"1","4","C","10.73","1","1","1","1","1","1","1","1" +"1","4","C","10.81","1","1","1","1","1","1","1","1" +"1","4","C","10.82","1","1","1","1","1","1","1","1" +"1","4","C","10.83","1","1","1","1","1","1","1","1" +"1","4","C","10.84","1","1","1","1","1","1","1","1" +"1","4","C","10.85","1","1","1","1","1","1","1","1" +"1","4","C","10.86","1","1","1","1","1","1","1","1" +"1","4","C","10.89","1","1","1","1","1","1","1","1" +"1","4","C","10.91","1","1","1","1","1","1","1","1" +"1","4","C","10.92","1","1","1","1","1","1","1","1" +"1","4","C","11.01","1","1","1","1","1","1","1","1" +"1","4","C","11.02","1","1","1","1","1","1","1","1" +"1","4","C","11.03","1","1","1","1","1","1","1","1" +"1","4","C","11.04","1","1","1","1","1","1","1","1" +"1","4","C","11.05","1","1","1","1","1","1","1","1" +"1","4","C","11.06","1","1","1","1","1","1","1","1" +"1","4","C","11.07","1","1","1","1","1","1","1","1" +"1","4","C","12.00","1","1","1","1","1","1","1","1" +"1","4","C","13.10","1","1","1","1","1","1","1","1" +"1","4","C","13.20","1","1","1","1","1","1","1","1" +"1","4","C","13.30","1","1","1","1","1","1","1","1" +"1","4","C","13.91","1","1","1","1","1","1","1","1" +"1","4","C","13.92","1","1","1","1","1","1","1","1" +"1","4","C","13.93","1","1","1","1","1","1","1","1" +"1","4","C","13.94","1","1","1","1","1","1","1","1" +"1","4","C","13.95","1","1","1","1","1","1","1","1" +"1","4","C","13.96","1","1","1","1","1","1","1","1" +"1","4","C","13.99","1","1","1","1","1","1","1","1" +"1","4","C","15.11","1","1","1","1","1","1","1","1" +"1","4","C","15.12","1","1","1","1","1","1","1","1" +"1","4","C","15.20","1","1","1","1","1","1","1","1" +"1","4","C","16.21","1","1","1","1","1","1","1","1" +"1","4","C","16.22","1","1","1","1","1","1","1","1" +"1","4","C","16.23","1","1","1","1","1","1","1","1" +"1","4","C","16.24","1","1","1","1","1","1","1","1" +"1","4","C","17.11","1","1","1","1","1","1","1","1" +"1","4","C","17.12","1","1","1","1","1","1","1","1" +"1","4","C","17.21","1","1","1","1","1","1","1","1" +"1","4","C","17.22","1","1","1","1","1","1","1","1" +"1","4","C","17.23","1","1","1","1","1","1","1","1" +"1","4","C","17.24","1","1","1","1","1","1","1","1" +"1","4","C","18.11","1","1","1","1","1","1","1","1" +"1","4","C","18.12","1","1","1","1","1","1","1","1" +"1","4","C","18.13","1","1","1","1","1","1","1","1" +"1","4","C","18.14","1","1","1","1","1","1","1","1" +"1","4","C","18.20","1","1","1","1","1","1","1","1" +"1","4","C","19.10","1","1","1","1","1","1","1","1" +"1","4","C","19.20","1","1","1","1","1","1","1","1" +"1","4","C","20.11","1","1","1","1","1","1","1","1" +"1","4","C","20.12","1","1","1","1","1","1","1","1" +"1","4","C","20.13","1","1","1","1","1","1","1","1" +"1","4","C","20.14","1","1","1","1","1","1","1","1" +"1","4","C","20.15","1","1","1","1","1","1","1","1" +"1","4","C","20.16","1","1","1","1","1","1","1","1" +"1","4","C","20.17","1","1","1","1","1","1","1","1" +"1","4","C","20.20","1","1","1","1","1","1","1","1" +"1","4","C","20.30","1","1","1","1","1","1","1","1" +"1","4","C","20.41","1","1","1","1","1","1","1","1" +"1","4","C","20.42","1","1","1","1","1","1","1","1" +"1","4","C","20.51","1","1","1","1","1","1","1","1" +"1","4","C","20.59","1","1","1","1","1","1","1","1" +"1","4","C","20.60","1","1","1","1","1","1","1","1" +"1","4","C","21.10","1","1","1","1","1","1","1","1" +"1","4","C","21.20","1","1","1","1","1","1","1","1" +"1","4","C","22.11","1","1","1","1","1","1","1","1" +"1","4","C","22.21","1","1","1","1","1","1","1","1" +"1","4","C","22.22","1","1","1","1","1","1","1","1" +"1","4","C","22.23","1","1","1","1","1","1","1","1" +"1","4","C","23.11","1","1","1","1","1","1","1","1" +"1","4","C","23.12","1","1","1","1","1","1","1","1" +"1","4","C","23.13","1","1","1","1","1","1","1","1" +"1","4","C","23.14","1","1","1","1","1","1","1","1" +"1","4","C","23.20","1","1","1","1","1","1","1","1" +"1","4","C","23.31","1","1","1","1","1","1","1","1" +"1","4","C","23.32","1","1","1","1","1","1","1","1" +"1","4","C","23.41","1","1","1","1","1","1","1","1" +"1","4","C","23.42","1","1","1","1","1","1","1","1" +"1","4","C","23.43","1","1","1","1","1","1","1","1" +"1","4","C","23.44","1","1","1","1","1","1","1","1" +"1","4","C","23.51","1","1","1","1","1","1","1","1" +"1","4","C","23.52","1","1","1","1","1","1","1","1" +"1","4","C","23.61","1","1","1","1","1","1","1","1" +"1","4","C","23.62","1","1","1","1","1","1","1","1" +"1","4","C","23.63","1","1","1","1","1","1","1","1" +"1","4","C","23.64","1","1","1","1","1","1","1","1" +"1","4","C","23.65","1","1","1","1","1","1","1","1" +"1","4","C","23.70","1","1","1","1","1","1","1","1" +"1","4","C","23.91","1","1","1","1","1","1","1","1" +"1","4","C","23.99","1","1","1","1","1","1","1","1" +"1","4","C","24.10","1","1","1","1","1","1","1","1" +"1","4","C","24.20","1","1","1","1","1","1","1","1" +"1","4","C","24.31","1","1","1","1","1","1","1","1" +"1","4","C","24.32","1","1","1","1","1","1","1","1" +"1","4","C","24.33","1","1","1","1","1","1","1","1" +"1","4","C","24.34","1","1","1","1","1","1","1","1" +"1","4","C","24.41","1","1","1","1","1","1","1","1" +"1","4","C","24.42","1","1","1","1","1","1","1","1" +"1","4","C","24.43","1","1","1","1","1","1","1","1" +"1","4","C","24.44","1","1","1","1","1","1","1","1" +"1","4","C","24.45","1","1","1","1","1","1","1","1" +"1","4","C","24.46","1","1","1","1","1","1","1","1" +"1","4","C","24.51","1","1","1","1","1","1","1","1" +"1","4","C","24.52","1","1","1","1","1","1","1","1" +"1","4","C","24.53","1","1","1","1","1","1","1","1" +"1","4","C","24.54","1","1","1","1","1","1","1","1" +"1","4","C","25.11","1","1","1","1","1","1","1","1" +"1","4","C","25.12","1","1","1","1","1","1","1","1" +"1","4","C","25.21","1","1","1","1","1","1","1","1" +"1","4","C","25.30","1","1","1","1","1","1","1","1" +"1","4","C","25.40","1","1","1","1","1","1","1","1" +"1","4","C","25.61","1","1","1","1","1","1","1","1" +"1","4","C","25.62","1","1","1","1","1","1","1","1" +"1","4","C","25.91","1","1","1","1","1","1","1","1" +"1","4","C","25.92","1","1","1","1","1","1","1","1" +"1","4","C","25.93","1","1","1","1","1","1","1","1" +"1","4","C","25.94","1","1","1","1","1","1","1","1" +"1","4","C","25.99","1","1","1","1","1","1","1","1" +"1","4","C","26.11","1","1","1","1","1","1","1","1" +"1","4","C","26.12","1","1","1","1","1","1","1","1" +"1","4","C","26.20","1","1","1","1","1","1","1","1" +"1","4","C","26.30","1","1","1","1","1","1","1","1" +"1","4","C","26.40","1","1","1","1","1","1","1","1" +"1","4","C","26.51","1","1","1","1","1","1","1","1" +"1","4","C","26.52","1","1","1","1","1","1","1","1" +"1","4","C","26.60","1","1","1","1","1","1","1","1" +"1","4","C","26.70","1","1","1","1","1","1","1","1" +"1","4","C","27.11","1","1","1","1","1","1","1","1" +"1","4","C","27.12","1","1","1","1","1","1","1","1" +"1","4","C","27.20","1","1","1","1","1","1","1","1" +"1","4","C","27.31","1","1","1","1","1","1","1","1" +"1","4","C","27.32","1","1","1","1","1","1","1","1" +"1","4","C","27.33","1","1","1","1","1","1","1","1" +"1","4","C","27.40","1","1","1","1","1","1","1","1" +"1","4","C","27.51","1","1","1","1","1","1","1","1" +"1","4","C","27.52","1","1","1","1","1","1","1","1" +"1","4","C","27.90","1","1","1","1","1","1","1","1" +"1","4","C","28.11","1","1","1","1","1","1","1","1" +"1","4","C","28.12","1","1","1","1","1","1","1","1" +"1","4","C","28.13","1","1","1","1","1","1","1","1" +"1","4","C","28.14","1","1","1","1","1","1","1","1" +"1","4","C","28.15","1","1","1","1","1","1","1","1" +"1","4","C","28.21","1","1","1","1","1","1","1","1" +"1","4","C","28.22","1","1","1","1","1","1","1","1" +"1","4","C","28.23","1","1","1","1","1","1","1","1" +"1","4","C","28.24","1","1","1","1","1","1","1","1" +"1","4","C","28.25","1","1","1","1","1","1","1","1" +"1","4","C","28.29","1","1","1","1","1","1","1","1" +"1","4","C","28.30","1","1","1","1","1","1","1","1" +"1","4","C","28.41","1","1","1","1","1","1","1","1" +"1","4","C","28.91","1","1","1","1","1","1","1","1" +"1","4","C","28.92","1","1","1","1","1","1","1","1" +"1","4","C","28.93","1","1","1","1","1","1","1","1" +"1","4","C","28.94","1","1","1","1","1","1","1","1" +"1","4","C","28.95","1","1","1","1","1","1","1","1" +"1","4","C","28.96","1","1","1","1","1","1","1","1" +"1","4","C","28.99","1","1","1","1","1","1","1","1" +"1","4","C","29.10","1","1","1","1","1","1","1","1" +"1","4","C","29.20","1","1","1","1","1","1","1","1" +"1","4","C","29.31","1","1","1","1","1","1","1","1" +"1","4","C","29.32","1","1","1","1","1","1","1","1" +"1","4","C","30.11","1","1","1","1","1","1","1","1" +"1","4","C","30.12","1","1","1","1","1","1","1","1" +"1","4","C","30.20","1","1","1","1","1","1","1","1" +"1","4","C","30.40","1","1","1","1","1","1","1","1" +"1","4","C","30.91","1","1","1","1","1","1","1","1" +"1","4","C","30.92","1","1","1","1","1","1","1","1" +"1","4","C","30.99","1","1","1","1","1","1","1","1" +"1","4","C","32.11","1","1","1","1","1","1","1","1" +"1","4","C","32.12","1","1","1","1","1","1","1","1" +"1","4","C","32.13","1","1","1","1","1","1","1","1" +"1","4","C","32.20","1","1","1","1","1","1","1","1" +"1","4","C","32.30","1","1","1","1","1","1","1","1" +"1","4","C","32.40","1","1","1","1","1","1","1","1" +"1","4","C","32.50","1","1","1","1","1","1","1","1" +"1","4","C","32.91","1","1","1","1","1","1","1","1" +"1","4","C","32.99","1","1","1","1","1","1","1","1" +"1","4","C","33.11","1","1","1","1","1","1","1","1" +"1","4","C","33.12","1","1","1","1","1","1","1","1" +"1","4","C","33.13","1","1","1","1","1","1","1","1" +"1","4","C","33.14","1","1","1","1","1","1","1","1" +"1","4","C","33.15","1","1","1","1","1","1","1","1" +"1","4","C","33.16","1","1","1","1","1","1","1","1" +"1","4","C","33.17","1","1","1","1","1","1","1","1" +"1","4","C","33.19","1","1","1","1","1","1","1","1" +"1","4","C","33.20","1","1","1","1","1","1","1","1" +"1","4","D","35.11","1","1","1","1","1","1","1","1" +"1","4","D","35.12","1","1","1","1","1","1","1","1" +"1","4","D","35.13","1","1","1","1","1","1","1","1" +"1","4","D","35.14","1","1","1","1","1","1","1","1" +"1","4","D","35.21","1","1","1","1","1","1","1","1" +"1","4","D","35.22","1","1","1","1","1","1","1","1" +"1","4","D","35.23","1","1","1","1","1","1","1","1" +"1","4","D","35.30","1","1","1","1","1","1","1","1" +"1","4","E","36.00","1","1","1","1","1","1","1","1" +"1","4","E","37.00","1","1","1","1","1","1","1","1" +"1","4","E","38.11","1","1","1","1","1","1","1","1" +"1","4","E","38.12","1","1","1","1","1","1","1","1" +"1","4","E","38.21","1","1","1","1","1","1","1","1" +"1","4","E","38.22","1","1","1","1","1","1","1","1" +"1","4","E","38.31","1","1","1","1","1","1","1","1" +"1","4","E","38.32","1","1","1","1","1","1","1","1" +"1","4","E","39.00","1","1","1","1","1","1","1","1" +"1","4","F","42.11","1","1","1","1","1","1","1","1" +"1","4","F","42.12","1","1","1","1","1","1","1","1" +"1","4","F","42.13","1","1","1","1","1","1","1","1" +"1","4","F","42.21","1","1","1","1","1","1","1","1" +"1","4","F","42.22","1","1","1","1","1","1","1","1" +"1","4","F","42.91","1","1","1","1","1","1","1","1" +"1","4","F","42.99","1","1","1","1","1","1","1","1" +"1","4","F","43.11","1","1","1","1","1","1","1","1" +"1","4","F","43.12","1","1","1","1","1","1","1","1" +"1","4","F","43.13","1","1","1","1","1","1","1","1" +"1","4","F","43.21","1","1","1","1","1","1","1","1" +"1","4","F","43.22","1","1","1","1","1","1","1","1" +"1","4","F","43.31","1","1","1","1","1","1","1","1" +"1","4","F","43.32","1","1","1","1","1","1","1","1" +"1","4","F","43.33","1","1","1","1","1","1","1","1" +"1","4","F","43.34","1","1","1","1","1","1","1","1" +"1","4","F","43.91","1","1","1","1","1","1","1","1" +"1","4","F","43.99","1","1","1","1","1","1","1","1" +"1","4","G","46.11","1","1","1","1","1","1","1","1" +"1","4","G","46.12","1","1","1","1","1","1","1","1" +"1","4","G","46.13","1","1","1","1","1","1","1","1" +"1","4","G","46.14","1","1","1","1","1","1","1","1" +"1","4","G","46.15","1","1","1","1","1","1","1","1" +"1","4","G","46.16","1","1","1","1","1","1","1","1" +"1","4","G","46.17","1","1","1","1","1","1","1","1" +"1","4","G","46.18","1","1","1","1","1","1","1","1" +"1","4","G","46.19","1","1","1","1","1","1","1","1" +"1","4","G","46.21","1","1","1","1","1","1","1","1" +"1","4","G","46.22","1","1","1","1","1","1","1","1" +"1","4","G","46.23","1","1","1","1","1","1","1","1" +"1","4","G","46.24","1","1","1","1","1","1","1","1" +"1","4","G","46.31","1","1","1","1","1","1","1","1" +"1","4","G","46.32","1","1","1","1","1","1","1","1" +"1","4","G","46.33","1","1","1","1","1","1","1","1" +"1","4","G","46.34","1","1","1","1","1","1","1","1" +"1","4","G","46.35","1","1","1","1","1","1","1","1" +"1","4","G","46.36","1","1","1","1","1","1","1","1" +"1","4","G","46.37","1","1","1","1","1","1","1","1" +"1","4","G","46.38","1","1","1","1","1","1","1","1" +"1","4","G","46.39","1","1","1","1","1","1","1","1" +"1","4","G","46.41","1","1","1","1","1","1","1","1" +"1","4","G","46.42","1","1","1","1","1","1","1","1" +"1","4","G","46.43","1","1","1","1","1","1","1","1" +"1","4","G","46.44","1","1","1","1","1","1","1","1" +"1","4","G","46.45","1","1","1","1","1","1","1","1" +"1","4","G","46.46","1","1","1","1","1","1","1","1" +"1","4","G","46.47","1","1","1","1","1","1","1","1" +"1","4","G","46.48","1","1","1","1","1","1","1","1" +"1","4","G","46.49","1","1","1","1","1","1","1","1" +"1","4","G","46.61","1","1","1","1","1","1","1","1" +"1","4","G","46.62","1","1","1","1","1","1","1","1" +"1","4","G","46.63","1","1","1","1","1","1","1","1" +"1","4","G","46.64","1","1","1","1","1","1","1","1" +"1","4","G","46.71","1","1","1","1","1","1","1","1" +"1","4","G","46.72","1","1","1","1","1","1","1","1" +"1","4","G","46.73","1","1","1","1","1","1","1","1" +"1","4","G","46.90","1","1","1","1","1","1","1","1" +"1","4","G","47.11","1","1","1","1","1","1","1","1" +"1","4","G","47.21","1","1","1","1","1","1","1","1" +"1","4","G","47.22","1","1","1","1","1","1","1","1" +"1","4","G","47.23","1","1","1","1","1","1","1","1" +"1","4","G","47.24","1","1","1","1","1","1","1","1" +"1","4","G","47.25","1","1","1","1","1","1","1","1" +"1","4","G","47.26","1","1","1","1","1","1","1","1" +"1","4","G","47.30","1","1","1","1","1","1","1","1" +"1","4","G","47.51","1","1","1","1","1","1","1","1" +"1","4","G","47.52","1","1","1","1","1","1","1","1" +"1","4","G","47.53","1","1","1","1","1","1","1","1" +"1","4","G","47.54","1","1","1","1","1","1","1","1" +"1","4","G","47.61","1","1","1","1","1","1","1","1" +"1","4","G","47.62","1","1","1","1","1","1","1","1" +"1","4","G","47.63","1","1","1","1","1","1","1","1" +"1","4","G","47.64","1","1","1","1","1","1","1","1" +"1","4","G","47.71","1","1","1","1","1","1","1","1" +"1","4","G","47.72","1","1","1","1","1","1","1","1" +"1","4","G","47.73","1","1","1","1","1","1","1","1" +"1","4","G","47.74","1","1","1","1","1","1","1","1" +"1","4","G","47.75","1","1","1","1","1","1","1","1" +"1","4","G","47.76","1","1","1","1","1","1","1","1" +"1","4","G","47.77","1","1","1","1","1","1","1","1" +"1","4","G","47.78","1","1","1","1","1","1","1","1" +"1","4","G","47.79","1","1","1","1","1","1","1","1" +"1","4","G","47.81","1","1","1","1","1","1","1","1" +"1","4","G","47.82","1","1","1","1","1","1","1","1" +"1","4","G","47.91","1","1","1","1","1","1","1","1" +"1","4","H","49.20","1","1","1","1","1","1","1","1" +"1","4","H","49.31","1","1","1","1","1","1","1","1" +"1","4","H","49.32","1","1","1","1","1","1","1","1" +"1","4","H","49.39","1","1","1","1","1","1","1","1" +"1","4","H","49.41","1","1","1","1","1","1","1","1" +"1","4","H","49.42","1","1","1","1","1","1","1","1" +"1","4","H","49.50","1","1","1","1","1","1","1","1" +"1","4","H","50.10","1","1","1","1","1","1","1","1" +"1","4","H","50.20","1","1","1","1","1","1","1","1" +"1","4","H","50.30","1","1","1","1","1","1","1","1" +"1","4","H","50.40","1","1","1","1","1","1","1","1" +"1","4","H","51.10","1","1","1","1","1","1","1","1" +"1","4","H","51.21","1","1","1","1","1","1","1","1" +"1","4","H","51.22","1","1","1","1","1","1","1","1" +"1","4","H","52.10","1","1","1","1","1","1","1","1" +"1","4","H","52.21","1","1","1","1","1","1","1","1" +"1","4","H","52.22","1","1","1","1","1","1","1","1" +"1","4","H","52.23","1","1","1","1","1","1","1","1" +"1","4","H","52.24","1","1","1","1","1","1","1","1" +"1","4","H","53.10","1","1","1","1","1","1","1","1" +"1","4","H","53.20","1","1","1","1","1","1","1","1" +"1","4","I","55.10","1","1","1","1","1","1","1","1" +"1","4","I","55.20","1","1","1","1","1","1","1","1" +"1","4","I","55.30","1","1","1","1","1","1","1","1" +"1","4","I","55.90","1","1","1","1","1","1","1","1" +"1","4","I","56.21","1","1","1","1","1","1","1","1" +"1","4","I","56.30","1","1","1","1","1","1","1","1" +"1","4","J","58.11","1","1","1","1","1","1","1","1" +"1","4","J","58.12","1","1","1","1","1","1","1","1" +"1","4","J","58.13","1","1","1","1","1","1","1","1" +"1","4","J","58.19","1","1","1","1","1","1","1","1" +"1","4","J","58.21","1","1","1","1","1","1","1","1" +"1","4","J","58.29","1","1","1","1","1","1","1","1" +"1","4","J","59.11","1","1","1","1","1","1","1","1" +"1","4","J","59.12","1","1","1","1","1","1","1","1" +"1","4","J","59.13","1","1","1","1","1","1","1","1" +"1","4","J","59.14","1","1","1","1","1","1","1","1" +"1","4","J","59.20","1","1","1","1","1","1","1","1" +"1","4","J","60.10","1","1","1","1","1","1","1","1" +"1","4","J","60.20","1","1","1","1","1","1","1","1" +"1","4","J","61.10","1","1","1","1","1","1","1","1" +"1","4","J","61.20","1","1","1","1","1","1","1","1" +"1","4","J","61.90","1","1","1","1","1","1","1","1" +"1","4","J","63.91","1","1","1","1","1","1","1","1" +"1","4","K","64.11","1","1","1","1","1","1","1","1" +"1","4","K","64.19","1","1","1","1","1","1","1","1" +"1","4","K","64.91","1","1","1","1","1","1","1","1" +"1","4","K","64.92","1","1","1","1","1","1","1","1" +"1","4","K","64.99","1","1","1","1","1","1","1","1" +"1","4","K","65.11","1","1","1","1","1","1","1","1" +"1","4","K","65.12","1","1","1","1","1","1","1","1" +"1","4","K","65.20","1","1","1","1","1","1","1","1" +"1","4","K","65.30","1","1","1","1","1","1","1","1" +"1","4","K","66.11","1","1","1","1","1","1","1","1" +"1","4","K","66.12","1","1","1","1","1","1","1","1" +"1","4","K","66.19","1","1","1","1","1","1","1","1" +"1","4","K","66.21","1","1","1","1","1","1","1","1" +"1","4","K","66.22","1","1","1","1","1","1","1","1" +"1","4","K","66.29","1","1","1","1","1","1","1","1" +"1","4","K","66.30","1","1","1","1","1","1","1","1" +"1","4","L","68.20","1","1","1","1","1","1","1","1" +"1","4","L","68.31","1","1","1","1","1","1","1","1" +"1","4","L","68.32","1","1","1","1","1","1","1","1" +"1","4","M","69.10","1","1","1","1","1","1","1","1" +"1","4","M","69.20","1","1","1","1","1","1","1","1" +"1","4","M","70.10","1","1","1","1","1","1","1","1" +"1","4","M","71.11","1","1","1","1","1","1","1","1" +"1","4","M","71.12","1","1","1","1","1","1","1","1" +"1","4","M","71.20","1","1","1","1","1","1","1","1" +"1","4","M","72.20","1","1","1","1","1","1","1","1" +"1","4","M","73.11","1","1","1","1","1","1","1","1" +"1","4","M","73.12","1","1","1","1","1","1","1","1" +"1","4","M","73.20","1","1","1","1","1","1","1","1" +"1","4","M","74.20","1","1","1","1","1","1","1","1" +"1","4","M","74.30","1","1","1","1","1","1","1","1" +"1","4","M","75.00","1","1","1","1","1","1","1","1" +"1","4","N","77.11","1","1","1","1","1","1","1","1" +"1","4","N","77.12","1","1","1","1","1","1","1","1" +"1","4","N","77.21","1","1","1","1","1","1","1","1" +"1","4","N","77.22","1","1","1","1","1","1","1","1" +"1","4","N","77.31","1","1","1","1","1","1","1","1" +"1","4","N","77.32","1","1","1","1","1","1","1","1" +"1","4","N","77.33","1","1","1","1","1","1","1","1" +"1","4","N","77.34","1","1","1","1","1","1","1","1" +"1","4","N","77.35","1","1","1","1","1","1","1","1" +"1","4","N","77.39","1","1","1","1","1","1","1","1" +"1","4","N","77.40","1","1","1","1","1","1","1","1" +"1","4","N","78.10","1","1","1","1","1","1","1","1" +"1","4","N","78.20","1","1","1","1","1","1","1","1" +"1","4","N","79.11","1","1","1","1","1","1","1","1" +"1","4","N","79.12","1","1","1","1","1","1","1","1" +"1","4","N","79.90","1","1","1","1","1","1","1","1" +"1","4","N","81.10","1","1","1","1","1","1","1","1" +"1","4","N","81.21","1","1","1","1","1","1","1","1" +"1","4","N","81.22","1","1","1","1","1","1","1","1" +"1","4","N","81.30","1","1","1","1","1","1","1","1" +"1","4","N","82.20","1","1","1","1","1","1","1","1" +"1","4","N","82.30","1","1","1","1","1","1","1","1" +"1","4","N","82.91","1","1","1","1","1","1","1","1" +"1","4","N","82.92","1","1","1","1","1","1","1","1" +"1","4","N","82.99","1","1","1","1","1","1","1","1" +"1","4","O","84.11","1","1","1","1","1","1","1","1" +"1","4","O","84.12","1","1","1","1","1","1","1","1" +"1","4","O","84.13","1","1","1","1","1","1","1","1" +"1","4","O","84.21","1","1","1","1","1","1","1","1" +"1","4","O","84.22","1","1","1","1","1","1","1","1" +"1","4","O","84.23","1","1","1","1","1","1","1","1" +"1","4","O","84.24","1","1","1","1","1","1","1","1" +"1","4","O","84.25","1","1","1","1","1","1","1","1" +"1","4","O","84.30","1","1","1","1","1","1","1","1" +"1","4","P","85.10","1","1","1","1","1","1","1","1" +"1","4","P","85.20","1","1","1","1","1","1","1","1" +"1","4","P","85.31","1","1","1","1","1","1","1","1" +"1","4","P","85.32","1","1","1","1","1","1","1","1" +"1","4","P","85.51","1","1","1","1","1","1","1","1" +"1","4","P","85.52","1","1","1","1","1","1","1","1" +"1","4","P","85.53","1","1","1","1","1","1","1","1" +"1","4","P","85.59","1","1","1","1","1","1","1","1" +"1","4","Q","86.10","1","1","1","1","1","1","1","1" +"1","4","Q","86.21","1","1","1","1","1","1","1","1" +"1","4","Q","86.22","1","1","1","1","1","1","1","1" +"1","4","Q","86.23","1","1","1","1","1","1","1","1" +"1","4","Q","87.10","1","1","1","1","1","1","1","1" +"1","4","Q","87.20","1","1","1","1","1","1","1","1" +"1","4","Q","87.30","1","1","1","1","1","1","1","1" +"1","4","Q","88.10","1","1","1","1","1","1","1","1" +"1","4","Q","88.91","1","1","1","1","1","1","1","1" +"1","4","Q","88.99","1","1","1","1","1","1","1","1" +"1","4","R","92.00","1","1","1","1","1","1","1","1" +"1","4","R","93.11","1","1","1","1","1","1","1","1" +"1","4","R","93.12","1","1","1","1","1","1","1","1" +"1","4","R","93.13","1","1","1","1","1","1","1","1" +"1","4","R","93.19","1","1","1","1","1","1","1","1" +"1","4","R","93.21","1","1","1","1","1","1","1","1" +"1","4","R","93.29","1","1","1","1","1","1","1","1" +"1","4","S","94.11","1","1","1","1","1","1","1","1" +"1","4","S","94.12","1","1","1","1","1","1","1","1" +"1","4","S","94.20","1","1","1","1","1","1","1","1" +"1","4","S","94.91","1","1","1","1","1","1","1","1" +"1","4","S","94.92","1","1","1","1","1","1","1","1" +"1","4","S","94.99","1","1","1","1","1","1","1","1" +"1","4","S","95.21","1","1","1","1","1","1","1","1" +"1","4","S","95.22","1","1","1","1","1","1","1","1" +"1","4","S","95.23","1","1","1","1","1","1","1","1" +"1","4","S","95.24","1","1","1","1","1","1","1","1" +"1","4","S","95.25","1","1","1","1","1","1","1","1" +"1","4","S","95.29","1","1","1","1","1","1","1","1" +"1","4","T","97.00","1","1","1","1","1","1","1","1" +"1","4","T","98.10","1","1","1","1","1","1","1","1" +"1","4","T","98.20","1","1","1","1","1","1","1","1" +"1","4","U","99.00","1","1","1","1","1","1","1","1" +"2","1","01","A","1","1","7","29","1","1","7","29" +"2","1","02","A","1","1","4","4","1","1","4","4" +"2","1","03","A","1","1","2","4","1","1","2","4" +"2","1","05","B","1","1","2","2","1","1","2","2" +"2","1","06","B","1","1","2","2","1","1","2","2" +"2","1","07","B","1","1","2","3","1","1","2","3" +"2","1","08","B","1","1","2","6","1","1","2","6" +"2","1","09","B","1","1","2","2","1","1","2","2" +"2","1","10","C","1","1","9","25","1","1","9","25" +"2","1","11","C","1","1","1","7","1","1","1","7" +"2","1","12","C","1","1","1","1","1","1","1","1" +"2","1","13","C","1","1","4","10","1","1","4","10" +"2","1","15","C","1","1","2","3","1","1","2","3" +"2","1","16","C","1","1","1","4","1","1","1","4" +"2","1","17","C","1","1","2","6","1","1","2","6" +"2","1","18","C","1","1","2","5","1","1","2","5" +"2","1","19","C","1","1","2","2","1","1","2","2" +"2","1","20","C","1","1","6","14","1","1","6","14" +"2","1","21","C","1","1","2","2","1","1","2","2" +"2","1","22","C","1","1","2","4","1","1","2","4" +"2","1","23","C","1","1","8","21","1","1","8","21" +"2","1","24","C","1","1","5","16","1","1","5","16" +"2","1","25","C","1","1","6","12","1","1","6","12" +"2","1","26","C","1","1","7","9","1","1","7","9" +"2","1","27","C","1","1","6","10","1","1","6","10" +"2","1","28","C","1","1","5","20","1","1","5","20" +"2","1","29","C","1","1","3","4","1","1","3","4" +"2","1","30","C","1","1","4","7","1","1","4","7" +"2","1","32","C","1","1","6","9","1","1","6","9" +"2","1","33","C","1","1","2","9","1","1","2","9" +"2","1","35","D","1","1","3","8","1","1","3","8" +"2","1","36","E","1","1","1","1","1","1","1","1" +"2","1","37","E","1","1","1","1","1","1","1","1" +"2","1","38","E","1","1","3","6","1","1","3","6" +"2","1","39","E","1","1","1","1","1","1","1","1" +"2","1","42","F","1","1","3","7","1","1","3","7" +"2","1","43","F","1","1","4","11","1","1","4","11" +"2","1","46","G","1","1","7","39","1","1","7","39" +"2","1","47","G","1","1","8","28","1","1","8","28" +"2","1","49","H","1","1","4","7","1","1","4","7" +"2","1","50","H","1","1","4","4","1","1","4","4" +"2","1","51","H","1","1","2","3","1","1","2","3" +"2","1","52","H","1","1","2","5","1","1","2","5" +"2","1","53","H","1","1","2","2","1","1","2","2" +"2","1","55","I","1","1","4","4","1","1","4","4" +"2","1","56","I","1","1","2","2","1","1","2","2" +"2","1","58","J","1","1","2","6","1","1","2","6" +"2","1","59","J","1","1","2","5","1","1","2","5" +"2","1","60","J","1","1","2","2","1","1","2","2" +"2","1","61","K","1","1","3","3","1","1","3","3" +"2","1","63","K","1","1","1","1","1","1","1","1" +"2","1","64","L","1","1","2","5","1","1","2","5" +"2","1","65","L","1","1","3","4","1","1","3","4" +"2","1","66","L","1","1","3","7","1","1","3","7" +"2","1","68","M","1","1","2","3","1","1","2","3" +"2","1","69","N","1","1","2","2","1","1","2","2" +"2","1","70","N","1","1","1","1","1","1","1","1" +"2","1","71","N","1","1","2","3","1","1","2","3" +"2","1","72","N","1","1","1","1","1","1","1","1" +"2","1","73","N","1","1","2","3","1","1","2","3" +"2","1","74","N","1","1","2","2","1","1","2","2" +"2","1","75","N","1","1","1","1","1","1","1","1" +"2","1","77","O","1","1","4","11","1","1","4","11" +"2","1","78","O","1","1","2","2","1","1","2","2" +"2","1","79","O","1","1","2","3","1","1","2","3" +"2","1","81","O","1","1","3","4","1","1","3","4" +"2","1","82","O","1","1","3","5","1","1","3","5" +"2","1","84","P","1","1","3","9","1","1","3","9" +"2","1","85","Q","1","1","4","8","1","1","4","8" +"2","1","86","R","1","1","2","4","1","1","2","4" +"2","1","87","R","1","1","3","3","1","1","3","3" +"2","1","88","R","1","1","2","3","1","1","2","3" +"2","1","92","S","1","1","1","1","1","1","1","1" +"2","1","93","S","1","1","2","6","1","1","2","6" +"2","1","94","T","1","1","3","6","1","1","3","6" +"2","1","95","T","1","1","1","6","1","1","1","6" +"2","1","97","U","1","1","1","1","1","1","1","1" +"2","1","98","U","1","1","2","2","1","1","2","2" +"2","1","99","V","1","1","1","1","1","1","1","1" +"2","2","01","01","1","1","7","29","1","1","7","29" +"2","2","02","02","1","1","4","4","1","1","4","4" +"2","2","03","03","1","1","2","4","1","1","2","4" +"2","2","05","05","1","1","2","2","1","1","2","2" +"2","2","06","06","1","1","2","2","1","1","2","2" +"2","2","07","07","1","1","2","3","1","1","2","3" +"2","2","08","08","1","1","2","6","1","1","2","6" +"2","2","09","09","1","1","2","2","1","1","2","2" +"2","2","10","10","1","1","9","25","1","1","9","25" +"2","2","11","11","1","1","1","7","1","1","1","7" +"2","2","12","12","1","1","1","1","1","1","1","1" +"2","2","13","13","1","1","4","10","1","1","4","10" +"2","2","15","15","1","1","2","3","1","1","2","3" +"2","2","16","16","1","1","1","4","1","1","1","4" +"2","2","17","17","1","1","2","6","1","1","2","6" +"2","2","18","18","1","1","2","5","1","1","2","5" +"2","2","19","19","1","1","2","2","1","1","2","2" +"2","2","20","20","1","1","6","14","1","1","6","14" +"2","2","21","21","1","1","2","2","1","1","2","2" +"2","2","22","22","1","1","2","4","1","1","2","4" +"2","2","23","23","1","1","8","21","1","1","8","21" +"2","2","24","24","1","1","5","16","1","1","5","16" +"2","2","25","25","1","1","6","12","1","1","6","12" +"2","2","26","26","1","1","7","9","1","1","7","9" +"2","2","27","27","1","1","6","10","1","1","6","10" +"2","2","28","28","1","1","5","20","1","1","5","20" +"2","2","29","29","1","1","3","4","1","1","3","4" +"2","2","30","30","1","1","4","7","1","1","4","7" +"2","2","32","32","1","1","6","9","1","1","6","9" +"2","2","33","33","1","1","2","9","1","1","2","9" +"2","2","35","35","1","1","3","8","1","1","3","8" +"2","2","36","36","1","1","1","1","1","1","1","1" +"2","2","37","37","1","1","1","1","1","1","1","1" +"2","2","38","38","1","1","3","6","1","1","3","6" +"2","2","39","39","1","1","1","1","1","1","1","1" +"2","2","42","42","1","1","3","7","1","1","3","7" +"2","2","43","43","1","1","4","11","1","1","4","11" +"2","2","46","46","1","1","7","39","1","1","7","39" +"2","2","47","47","1","1","8","28","1","1","8","28" +"2","2","49","49","1","1","4","7","1","1","4","7" +"2","2","50","50","1","1","4","4","1","1","4","4" +"2","2","51","51","1","1","2","3","1","1","2","3" +"2","2","52","52","1","1","2","5","1","1","2","5" +"2","2","53","53","1","1","2","2","1","1","2","2" +"2","2","55","55","1","1","4","4","1","1","4","4" +"2","2","56","56","1","1","2","2","1","1","2","2" +"2","2","58","58","1","1","2","6","1","1","2","6" +"2","2","59","59","1","1","2","5","1","1","2","5" +"2","2","60","60","1","1","2","2","1","1","2","2" +"2","2","61","61","1","1","3","3","1","1","3","3" +"2","2","63","63","1","1","1","1","1","1","1","1" +"2","2","64","64","1","1","2","5","1","1","2","5" +"2","2","65","65","1","1","3","4","1","1","3","4" +"2","2","66","66","1","1","3","7","1","1","3","7" +"2","2","68","68","1","1","2","3","1","1","2","3" +"2","2","69","69","1","1","2","2","1","1","2","2" +"2","2","70","70","1","1","1","1","1","1","1","1" +"2","2","71","71","1","1","2","3","1","1","2","3" +"2","2","72","72","1","1","1","1","1","1","1","1" +"2","2","73","73","1","1","2","3","1","1","2","3" +"2","2","74","74","1","1","2","2","1","1","2","2" +"2","2","75","75","1","1","1","1","1","1","1","1" +"2","2","77","77","1","1","4","11","1","1","4","11" +"2","2","78","78","1","1","2","2","1","1","2","2" +"2","2","79","79","1","1","2","3","1","1","2","3" +"2","2","81","81","1","1","3","4","1","1","3","4" +"2","2","82","82","1","1","3","5","1","1","3","5" +"2","2","84","84","1","1","3","9","1","1","3","9" +"2","2","85","85","1","1","4","8","1","1","4","8" +"2","2","86","86","1","1","2","4","1","1","2","4" +"2","2","87","87","1","1","3","3","1","1","3","3" +"2","2","88","88","1","1","2","3","1","1","2","3" +"2","2","92","92","1","1","1","1","1","1","1","1" +"2","2","93","93","1","1","2","6","1","1","2","6" +"2","2","94","94","1","1","3","6","1","1","3","6" +"2","2","95","95","1","1","1","6","1","1","1","6" +"2","2","97","97","1","1","1","1","1","1","1","1" +"2","2","98","98","1","1","2","2","1","1","2","2" +"2","2","99","99","1","1","1","1","1","1","1","1" +"2","3","01","01.1","1","1","1","7","1","1","1","7" +"2","3","01","01.2","1","1","1","9","1","1","1","9" +"2","3","01","01.3","1","1","1","1","1","1","1","1" +"2","3","01","01.4","1","1","1","7","1","1","1","7" +"2","3","01","01.5","1","1","1","1","1","1","1","1" +"2","3","01","01.6","1","1","1","3","1","1","1","3" +"2","3","01","01.7","1","1","1","1","1","1","1","1" +"2","3","02","02.1","1","1","1","1","1","1","1","1" +"2","3","02","02.2","1","1","1","1","1","1","1","1" +"2","3","02","02.3","1","1","1","1","1","1","1","1" +"2","3","02","02.4","1","1","1","1","1","1","1","1" +"2","3","03","03.1","1","1","1","2","1","1","1","2" +"2","3","03","03.2","1","1","1","2","1","1","1","2" +"2","3","05","05.1","1","1","1","1","1","1","1","1" +"2","3","05","05.2","1","1","1","1","1","1","1","1" +"2","3","06","06.1","1","1","1","1","1","1","1","1" +"2","3","06","06.2","1","1","1","1","1","1","1","1" +"2","3","07","07.1","1","1","1","1","1","1","1","1" +"2","3","07","07.2","1","1","1","2","1","1","1","2" +"2","3","08","08.1","1","1","1","2","1","1","1","2" +"2","3","08","08.9","1","1","1","4","1","1","1","4" +"2","3","09","09.1","1","1","1","1","1","1","1","1" +"2","3","09","09.9","1","1","1","1","1","1","1","1" +"2","3","10","10.1","1","1","1","3","1","1","1","3" +"2","3","10","10.2","1","1","1","1","1","1","1","1" +"2","3","10","10.3","1","1","1","3","1","1","1","3" +"2","3","10","10.4","1","1","1","2","1","1","1","2" +"2","3","10","10.5","1","1","1","2","1","1","1","2" +"2","3","10","10.6","1","1","1","2","1","1","1","2" +"2","3","10","10.7","1","1","1","3","1","1","1","3" +"2","3","10","10.8","1","1","1","7","1","1","1","7" +"2","3","10","10.9","1","1","1","2","1","1","1","2" +"2","3","11","11.0","1","1","1","7","1","1","1","7" +"2","3","12","12.0","1","1","1","1","1","1","1","1" +"2","3","13","13.1","1","1","1","1","1","1","1","1" +"2","3","13","13.2","1","1","1","1","1","1","1","1" +"2","3","13","13.3","1","1","1","1","1","1","1","1" +"2","3","13","13.9","1","1","1","7","1","1","1","7" +"2","3","15","15.1","1","1","1","2","1","1","1","2" +"2","3","15","15.2","1","1","1","1","1","1","1","1" +"2","3","16","16.2","1","1","1","4","1","1","1","4" +"2","3","17","17.1","1","1","1","2","1","1","1","2" +"2","3","17","17.2","1","1","1","4","1","1","1","4" +"2","3","18","18.1","1","1","1","4","1","1","1","4" +"2","3","18","18.2","1","1","1","1","1","1","1","1" +"2","3","19","19.1","1","1","1","1","1","1","1","1" +"2","3","19","19.2","1","1","1","1","1","1","1","1" +"2","3","20","20.1","1","1","1","7","1","1","1","7" +"2","3","20","20.2","1","1","1","1","1","1","1","1" +"2","3","20","20.3","1","1","1","1","1","1","1","1" +"2","3","20","20.4","1","1","1","2","1","1","1","2" +"2","3","20","20.5","1","1","1","2","1","1","1","2" +"2","3","20","20.6","1","1","1","1","1","1","1","1" +"2","3","21","21.1","1","1","1","1","1","1","1","1" +"2","3","21","21.2","1","1","1","1","1","1","1","1" +"2","3","22","22.1","1","1","1","1","1","1","1","1" +"2","3","22","22.2","1","1","1","3","1","1","1","3" +"2","3","23","23.1","1","1","1","4","1","1","1","4" +"2","3","23","23.2","1","1","1","1","1","1","1","1" +"2","3","23","23.3","1","1","1","2","1","1","1","2" +"2","3","23","23.4","1","1","1","4","1","1","1","4" +"2","3","23","23.5","1","1","1","2","1","1","1","2" +"2","3","23","23.6","1","1","1","5","1","1","1","5" +"2","3","23","23.7","1","1","1","1","1","1","1","1" +"2","3","23","23.9","1","1","1","2","1","1","1","2" +"2","3","24","24.1","1","1","1","1","1","1","1","1" +"2","3","24","24.2","1","1","1","1","1","1","1","1" +"2","3","24","24.3","1","1","1","4","1","1","1","4" +"2","3","24","24.4","1","1","1","6","1","1","1","6" +"2","3","24","24.5","1","1","1","4","1","1","1","4" +"2","3","25","25.1","1","1","1","2","1","1","1","2" +"2","3","25","25.2","1","1","1","1","1","1","1","1" +"2","3","25","25.3","1","1","1","1","1","1","1","1" +"2","3","25","25.4","1","1","1","1","1","1","1","1" +"2","3","25","25.6","1","1","1","2","1","1","1","2" +"2","3","25","25.9","1","1","1","5","1","1","1","5" +"2","3","26","26.1","1","1","1","2","1","1","1","2" +"2","3","26","26.2","1","1","1","1","1","1","1","1" +"2","3","26","26.3","1","1","1","1","1","1","1","1" +"2","3","26","26.4","1","1","1","1","1","1","1","1" +"2","3","26","26.5","1","1","1","2","1","1","1","2" +"2","3","26","26.6","1","1","1","1","1","1","1","1" +"2","3","26","26.7","1","1","1","1","1","1","1","1" +"2","3","27","27.1","1","1","1","2","1","1","1","2" +"2","3","27","27.2","1","1","1","1","1","1","1","1" +"2","3","27","27.3","1","1","1","3","1","1","1","3" +"2","3","27","27.4","1","1","1","1","1","1","1","1" +"2","3","27","27.5","1","1","1","2","1","1","1","2" +"2","3","27","27.9","1","1","1","1","1","1","1","1" +"2","3","28","28.1","1","1","1","5","1","1","1","5" +"2","3","28","28.2","1","1","1","6","1","1","1","6" +"2","3","28","28.3","1","1","1","1","1","1","1","1" +"2","3","28","28.4","1","1","1","1","1","1","1","1" +"2","3","28","28.9","1","1","1","7","1","1","1","7" +"2","3","29","29.1","1","1","1","1","1","1","1","1" +"2","3","29","29.2","1","1","1","1","1","1","1","1" +"2","3","29","29.3","1","1","1","2","1","1","1","2" +"2","3","30","30.1","1","1","1","2","1","1","1","2" +"2","3","30","30.2","1","1","1","1","1","1","1","1" +"2","3","30","30.4","1","1","1","1","1","1","1","1" +"2","3","30","30.9","1","1","1","3","1","1","1","3" +"2","3","32","32.1","1","1","1","3","1","1","1","3" +"2","3","32","32.2","1","1","1","1","1","1","1","1" +"2","3","32","32.3","1","1","1","1","1","1","1","1" +"2","3","32","32.4","1","1","1","1","1","1","1","1" +"2","3","32","32.5","1","1","1","1","1","1","1","1" +"2","3","32","32.9","1","1","1","2","1","1","1","2" +"2","3","33","33.1","1","1","1","8","1","1","1","8" +"2","3","33","33.2","1","1","1","1","1","1","1","1" +"2","3","35","35.1","1","1","1","4","1","1","1","4" +"2","3","35","35.2","1","1","1","3","1","1","1","3" +"2","3","35","35.3","1","1","1","1","1","1","1","1" +"2","3","36","36.0","1","1","1","1","1","1","1","1" +"2","3","37","37.0","1","1","1","1","1","1","1","1" +"2","3","38","38.1","1","1","1","2","1","1","1","2" +"2","3","38","38.2","1","1","1","2","1","1","1","2" +"2","3","38","38.3","1","1","1","2","1","1","1","2" +"2","3","39","39.0","1","1","1","1","1","1","1","1" +"2","3","42","42.1","1","1","1","3","1","1","1","3" +"2","3","42","42.2","1","1","1","2","1","1","1","2" +"2","3","42","42.9","1","1","1","2","1","1","1","2" +"2","3","43","43.1","1","1","1","3","1","1","1","3" +"2","3","43","43.2","1","1","1","2","1","1","1","2" +"2","3","43","43.3","1","1","1","4","1","1","1","4" +"2","3","43","43.9","1","1","1","2","1","1","1","2" +"2","3","46","46.1","1","1","1","9","1","1","1","9" +"2","3","46","46.2","1","1","1","4","1","1","1","4" +"2","3","46","46.3","1","1","1","9","1","1","1","9" +"2","3","46","46.4","1","1","1","9","1","1","1","9" +"2","3","46","46.6","1","1","1","4","1","1","1","4" +"2","3","46","46.7","1","1","1","3","1","1","1","3" +"2","3","46","46.9","1","1","1","1","1","1","1","1" +"2","3","47","47.1","1","1","1","1","1","1","1","1" +"2","3","47","47.2","1","1","1","6","1","1","1","6" +"2","3","47","47.3","1","1","1","1","1","1","1","1" +"2","3","47","47.5","1","1","1","4","1","1","1","4" +"2","3","47","47.6","1","1","1","4","1","1","1","4" +"2","3","47","47.7","1","1","1","9","1","1","1","9" +"2","3","47","47.8","1","1","1","2","1","1","1","2" +"2","3","47","47.9","1","1","1","1","1","1","1","1" +"2","3","49","49.2","1","1","1","1","1","1","1","1" +"2","3","49","49.3","1","1","1","3","1","1","1","3" +"2","3","49","49.4","1","1","1","2","1","1","1","2" +"2","3","49","49.5","1","1","1","1","1","1","1","1" +"2","3","50","50.1","1","1","1","1","1","1","1","1" +"2","3","50","50.2","1","1","1","1","1","1","1","1" +"2","3","50","50.3","1","1","1","1","1","1","1","1" +"2","3","50","50.4","1","1","1","1","1","1","1","1" +"2","3","51","51.1","1","1","1","1","1","1","1","1" +"2","3","51","51.2","1","1","1","2","1","1","1","2" +"2","3","52","52.1","1","1","1","1","1","1","1","1" +"2","3","52","52.2","1","1","1","4","1","1","1","4" +"2","3","53","53.1","1","1","1","1","1","1","1","1" +"2","3","53","53.2","1","1","1","1","1","1","1","1" +"2","3","55","55.1","1","1","1","1","1","1","1","1" +"2","3","55","55.2","1","1","1","1","1","1","1","1" +"2","3","55","55.3","1","1","1","1","1","1","1","1" +"2","3","55","55.9","1","1","1","1","1","1","1","1" +"2","3","56","56.2","1","1","1","1","1","1","1","1" +"2","3","56","56.3","1","1","1","1","1","1","1","1" +"2","3","58","58.1","1","1","1","4","1","1","1","4" +"2","3","58","58.2","1","1","1","2","1","1","1","2" +"2","3","59","59.1","1","1","1","4","1","1","1","4" +"2","3","59","59.2","1","1","1","1","1","1","1","1" +"2","3","60","60.1","1","1","1","1","1","1","1","1" +"2","3","60","60.2","1","1","1","1","1","1","1","1" +"2","3","61","61.1","1","1","1","1","1","1","1","1" +"2","3","61","61.2","1","1","1","1","1","1","1","1" +"2","3","61","61.9","1","1","1","1","1","1","1","1" +"2","3","63","63.9","1","1","1","1","1","1","1","1" +"2","3","64","64.1","1","1","1","2","1","1","1","2" +"2","3","64","64.9","1","1","1","3","1","1","1","3" +"2","3","65","65.1","1","1","1","2","1","1","1","2" +"2","3","65","65.2","1","1","1","1","1","1","1","1" +"2","3","65","65.3","1","1","1","1","1","1","1","1" +"2","3","66","66.1","1","1","1","3","1","1","1","3" +"2","3","66","66.2","1","1","1","3","1","1","1","3" +"2","3","66","66.3","1","1","1","1","1","1","1","1" +"2","3","68","68.2","1","1","1","1","1","1","1","1" +"2","3","68","68.3","1","1","1","2","1","1","1","2" +"2","3","69","69.1","1","1","1","1","1","1","1","1" +"2","3","69","69.2","1","1","1","1","1","1","1","1" +"2","3","70","70.1","1","1","1","1","1","1","1","1" +"2","3","71","71.1","1","1","1","2","1","1","1","2" +"2","3","71","71.2","1","1","1","1","1","1","1","1" +"2","3","72","72.2","1","1","1","1","1","1","1","1" +"2","3","73","73.1","1","1","1","2","1","1","1","2" +"2","3","73","73.2","1","1","1","1","1","1","1","1" +"2","3","74","74.2","1","1","1","1","1","1","1","1" +"2","3","74","74.3","1","1","1","1","1","1","1","1" +"2","3","75","75.0","1","1","1","1","1","1","1","1" +"2","3","77","77.1","1","1","1","2","1","1","1","2" +"2","3","77","77.2","1","1","1","2","1","1","1","2" +"2","3","77","77.3","1","1","1","6","1","1","1","6" +"2","3","77","77.4","1","1","1","1","1","1","1","1" +"2","3","78","78.1","1","1","1","1","1","1","1","1" +"2","3","78","78.2","1","1","1","1","1","1","1","1" +"2","3","79","79.1","1","1","1","2","1","1","1","2" +"2","3","79","79.9","1","1","1","1","1","1","1","1" +"2","3","81","81.1","1","1","1","1","1","1","1","1" +"2","3","81","81.2","1","1","1","2","1","1","1","2" +"2","3","81","81.3","1","1","1","1","1","1","1","1" +"2","3","82","82.2","1","1","1","1","1","1","1","1" +"2","3","82","82.3","1","1","1","1","1","1","1","1" +"2","3","82","82.9","1","1","1","3","1","1","1","3" +"2","3","84","84.1","1","1","1","3","1","1","1","3" +"2","3","84","84.2","1","1","1","5","1","1","1","5" +"2","3","84","84.3","1","1","1","1","1","1","1","1" +"2","3","85","85.1","1","1","1","1","1","1","1","1" +"2","3","85","85.2","1","1","1","1","1","1","1","1" +"2","3","85","85.3","1","1","1","2","1","1","1","2" +"2","3","85","85.5","1","1","1","4","1","1","1","4" +"2","3","86","86.1","1","1","1","1","1","1","1","1" +"2","3","86","86.2","1","1","1","3","1","1","1","3" +"2","3","87","87.1","1","1","1","1","1","1","1","1" +"2","3","87","87.2","1","1","1","1","1","1","1","1" +"2","3","87","87.3","1","1","1","1","1","1","1","1" +"2","3","88","88.1","1","1","1","1","1","1","1","1" +"2","3","88","88.9","1","1","1","2","1","1","1","2" +"2","3","92","92.0","1","1","1","1","1","1","1","1" +"2","3","93","93.1","1","1","1","4","1","1","1","4" +"2","3","93","93.2","1","1","1","2","1","1","1","2" +"2","3","94","94.1","1","1","1","2","1","1","1","2" +"2","3","94","94.2","1","1","1","1","1","1","1","1" +"2","3","94","94.9","1","1","1","3","1","1","1","3" +"2","3","95","95.2","1","1","1","6","1","1","1","6" +"2","3","97","97.0","1","1","1","1","1","1","1","1" +"2","3","98","98.1","1","1","1","1","1","1","1","1" +"2","3","98","98.2","1","1","1","1","1","1","1","1" +"2","3","99","99.0","1","1","1","1","1","1","1","1" +"2","4","01","01.11","1","1","1","1","1","1","1","1" +"2","4","01","01.12","1","1","1","1","1","1","1","1" +"2","4","01","01.13","1","1","1","1","1","1","1","1" +"2","4","01","01.14","1","1","1","1","1","1","1","1" +"2","4","01","01.15","1","1","1","1","1","1","1","1" +"2","4","01","01.16","1","1","1","1","1","1","1","1" +"2","4","01","01.19","1","1","1","1","1","1","1","1" +"2","4","01","01.21","1","1","1","1","1","1","1","1" +"2","4","01","01.22","1","1","1","1","1","1","1","1" +"2","4","01","01.23","1","1","1","1","1","1","1","1" +"2","4","01","01.24","1","1","1","1","1","1","1","1" +"2","4","01","01.25","1","1","1","1","1","1","1","1" +"2","4","01","01.26","1","1","1","1","1","1","1","1" +"2","4","01","01.27","1","1","1","1","1","1","1","1" +"2","4","01","01.28","1","1","1","1","1","1","1","1" +"2","4","01","01.29","1","1","1","1","1","1","1","1" +"2","4","01","01.30","1","1","1","1","1","1","1","1" +"2","4","01","01.41","1","1","1","1","1","1","1","1" +"2","4","01","01.42","1","1","1","1","1","1","1","1" +"2","4","01","01.43","1","1","1","1","1","1","1","1" +"2","4","01","01.44","1","1","1","1","1","1","1","1" +"2","4","01","01.45","1","1","1","1","1","1","1","1" +"2","4","01","01.46","1","1","1","1","1","1","1","1" +"2","4","01","01.47","1","1","1","1","1","1","1","1" +"2","4","01","01.50","1","1","1","1","1","1","1","1" +"2","4","01","01.61","1","1","1","1","1","1","1","1" +"2","4","01","01.62","1","1","1","1","1","1","1","1" +"2","4","01","01.63","1","1","1","1","1","1","1","1" +"2","4","01","01.70","1","1","1","1","1","1","1","1" +"2","4","02","02.10","1","1","1","1","1","1","1","1" +"2","4","02","02.20","1","1","1","1","1","1","1","1" +"2","4","02","02.30","1","1","1","1","1","1","1","1" +"2","4","02","02.40","1","1","1","1","1","1","1","1" +"2","4","03","03.11","1","1","1","1","1","1","1","1" +"2","4","03","03.12","1","1","1","1","1","1","1","1" +"2","4","03","03.21","1","1","1","1","1","1","1","1" +"2","4","03","03.22","1","1","1","1","1","1","1","1" +"2","4","05","05.10","1","1","1","1","1","1","1","1" +"2","4","05","05.20","1","1","1","1","1","1","1","1" +"2","4","06","06.10","1","1","1","1","1","1","1","1" +"2","4","06","06.20","1","1","1","1","1","1","1","1" +"2","4","07","07.10","1","1","1","1","1","1","1","1" +"2","4","07","07.21","1","1","1","1","1","1","1","1" +"2","4","07","07.29","1","1","1","1","1","1","1","1" +"2","4","08","08.11","1","1","1","1","1","1","1","1" +"2","4","08","08.12","1","1","1","1","1","1","1","1" +"2","4","08","08.91","1","1","1","1","1","1","1","1" +"2","4","08","08.92","1","1","1","1","1","1","1","1" +"2","4","08","08.93","1","1","1","1","1","1","1","1" +"2","4","08","08.99","1","1","1","1","1","1","1","1" +"2","4","09","09.10","1","1","1","1","1","1","1","1" +"2","4","09","09.90","1","1","1","1","1","1","1","1" +"2","4","10","10.11","1","1","1","1","1","1","1","1" +"2","4","10","10.12","1","1","1","1","1","1","1","1" +"2","4","10","10.13","1","1","1","1","1","1","1","1" +"2","4","10","10.20","1","1","1","1","1","1","1","1" +"2","4","10","10.31","1","1","1","1","1","1","1","1" +"2","4","10","10.32","1","1","1","1","1","1","1","1" +"2","4","10","10.39","1","1","1","1","1","1","1","1" +"2","4","10","10.41","1","1","1","1","1","1","1","1" +"2","4","10","10.42","1","1","1","1","1","1","1","1" +"2","4","10","10.51","1","1","1","1","1","1","1","1" +"2","4","10","10.52","1","1","1","1","1","1","1","1" +"2","4","10","10.61","1","1","1","1","1","1","1","1" +"2","4","10","10.62","1","1","1","1","1","1","1","1" +"2","4","10","10.71","1","1","1","1","1","1","1","1" +"2","4","10","10.72","1","1","1","1","1","1","1","1" +"2","4","10","10.73","1","1","1","1","1","1","1","1" +"2","4","10","10.81","1","1","1","1","1","1","1","1" +"2","4","10","10.82","1","1","1","1","1","1","1","1" +"2","4","10","10.83","1","1","1","1","1","1","1","1" +"2","4","10","10.84","1","1","1","1","1","1","1","1" +"2","4","10","10.85","1","1","1","1","1","1","1","1" +"2","4","10","10.86","1","1","1","1","1","1","1","1" +"2","4","10","10.89","1","1","1","1","1","1","1","1" +"2","4","10","10.91","1","1","1","1","1","1","1","1" +"2","4","10","10.92","1","1","1","1","1","1","1","1" +"2","4","11","11.01","1","1","1","1","1","1","1","1" +"2","4","11","11.02","1","1","1","1","1","1","1","1" +"2","4","11","11.03","1","1","1","1","1","1","1","1" +"2","4","11","11.04","1","1","1","1","1","1","1","1" +"2","4","11","11.05","1","1","1","1","1","1","1","1" +"2","4","11","11.06","1","1","1","1","1","1","1","1" +"2","4","11","11.07","1","1","1","1","1","1","1","1" +"2","4","12","12.00","1","1","1","1","1","1","1","1" +"2","4","13","13.10","1","1","1","1","1","1","1","1" +"2","4","13","13.20","1","1","1","1","1","1","1","1" +"2","4","13","13.30","1","1","1","1","1","1","1","1" +"2","4","13","13.91","1","1","1","1","1","1","1","1" +"2","4","13","13.92","1","1","1","1","1","1","1","1" +"2","4","13","13.93","1","1","1","1","1","1","1","1" +"2","4","13","13.94","1","1","1","1","1","1","1","1" +"2","4","13","13.95","1","1","1","1","1","1","1","1" +"2","4","13","13.96","1","1","1","1","1","1","1","1" +"2","4","13","13.99","1","1","1","1","1","1","1","1" +"2","4","15","15.11","1","1","1","1","1","1","1","1" +"2","4","15","15.12","1","1","1","1","1","1","1","1" +"2","4","15","15.20","1","1","1","1","1","1","1","1" +"2","4","16","16.21","1","1","1","1","1","1","1","1" +"2","4","16","16.22","1","1","1","1","1","1","1","1" +"2","4","16","16.23","1","1","1","1","1","1","1","1" +"2","4","16","16.24","1","1","1","1","1","1","1","1" +"2","4","17","17.11","1","1","1","1","1","1","1","1" +"2","4","17","17.12","1","1","1","1","1","1","1","1" +"2","4","17","17.21","1","1","1","1","1","1","1","1" +"2","4","17","17.22","1","1","1","1","1","1","1","1" +"2","4","17","17.23","1","1","1","1","1","1","1","1" +"2","4","17","17.24","1","1","1","1","1","1","1","1" +"2","4","18","18.11","1","1","1","1","1","1","1","1" +"2","4","18","18.12","1","1","1","1","1","1","1","1" +"2","4","18","18.13","1","1","1","1","1","1","1","1" +"2","4","18","18.14","1","1","1","1","1","1","1","1" +"2","4","18","18.20","1","1","1","1","1","1","1","1" +"2","4","19","19.10","1","1","1","1","1","1","1","1" +"2","4","19","19.20","1","1","1","1","1","1","1","1" +"2","4","20","20.11","1","1","1","1","1","1","1","1" +"2","4","20","20.12","1","1","1","1","1","1","1","1" +"2","4","20","20.13","1","1","1","1","1","1","1","1" +"2","4","20","20.14","1","1","1","1","1","1","1","1" +"2","4","20","20.15","1","1","1","1","1","1","1","1" +"2","4","20","20.16","1","1","1","1","1","1","1","1" +"2","4","20","20.17","1","1","1","1","1","1","1","1" +"2","4","20","20.20","1","1","1","1","1","1","1","1" +"2","4","20","20.30","1","1","1","1","1","1","1","1" +"2","4","20","20.41","1","1","1","1","1","1","1","1" +"2","4","20","20.42","1","1","1","1","1","1","1","1" +"2","4","20","20.51","1","1","1","1","1","1","1","1" +"2","4","20","20.59","1","1","1","1","1","1","1","1" +"2","4","20","20.60","1","1","1","1","1","1","1","1" +"2","4","21","21.10","1","1","1","1","1","1","1","1" +"2","4","21","21.20","1","1","1","1","1","1","1","1" +"2","4","22","22.11","1","1","1","1","1","1","1","1" +"2","4","22","22.21","1","1","1","1","1","1","1","1" +"2","4","22","22.22","1","1","1","1","1","1","1","1" +"2","4","22","22.23","1","1","1","1","1","1","1","1" +"2","4","23","23.11","1","1","1","1","1","1","1","1" +"2","4","23","23.12","1","1","1","1","1","1","1","1" +"2","4","23","23.13","1","1","1","1","1","1","1","1" +"2","4","23","23.14","1","1","1","1","1","1","1","1" +"2","4","23","23.20","1","1","1","1","1","1","1","1" +"2","4","23","23.31","1","1","1","1","1","1","1","1" +"2","4","23","23.32","1","1","1","1","1","1","1","1" +"2","4","23","23.41","1","1","1","1","1","1","1","1" +"2","4","23","23.42","1","1","1","1","1","1","1","1" +"2","4","23","23.43","1","1","1","1","1","1","1","1" +"2","4","23","23.44","1","1","1","1","1","1","1","1" +"2","4","23","23.51","1","1","1","1","1","1","1","1" +"2","4","23","23.52","1","1","1","1","1","1","1","1" +"2","4","23","23.61","1","1","1","1","1","1","1","1" +"2","4","23","23.62","1","1","1","1","1","1","1","1" +"2","4","23","23.63","1","1","1","1","1","1","1","1" +"2","4","23","23.64","1","1","1","1","1","1","1","1" +"2","4","23","23.65","1","1","1","1","1","1","1","1" +"2","4","23","23.70","1","1","1","1","1","1","1","1" +"2","4","23","23.91","1","1","1","1","1","1","1","1" +"2","4","23","23.99","1","1","1","1","1","1","1","1" +"2","4","24","24.10","1","1","1","1","1","1","1","1" +"2","4","24","24.20","1","1","1","1","1","1","1","1" +"2","4","24","24.31","1","1","1","1","1","1","1","1" +"2","4","24","24.32","1","1","1","1","1","1","1","1" +"2","4","24","24.33","1","1","1","1","1","1","1","1" +"2","4","24","24.34","1","1","1","1","1","1","1","1" +"2","4","24","24.41","1","1","1","1","1","1","1","1" +"2","4","24","24.42","1","1","1","1","1","1","1","1" +"2","4","24","24.43","1","1","1","1","1","1","1","1" +"2","4","24","24.44","1","1","1","1","1","1","1","1" +"2","4","24","24.45","1","1","1","1","1","1","1","1" +"2","4","24","24.46","1","1","1","1","1","1","1","1" +"2","4","24","24.51","1","1","1","1","1","1","1","1" +"2","4","24","24.52","1","1","1","1","1","1","1","1" +"2","4","24","24.53","1","1","1","1","1","1","1","1" +"2","4","24","24.54","1","1","1","1","1","1","1","1" +"2","4","25","25.11","1","1","1","1","1","1","1","1" +"2","4","25","25.12","1","1","1","1","1","1","1","1" +"2","4","25","25.21","1","1","1","1","1","1","1","1" +"2","4","25","25.30","1","1","1","1","1","1","1","1" +"2","4","25","25.40","1","1","1","1","1","1","1","1" +"2","4","25","25.61","1","1","1","1","1","1","1","1" +"2","4","25","25.62","1","1","1","1","1","1","1","1" +"2","4","25","25.91","1","1","1","1","1","1","1","1" +"2","4","25","25.92","1","1","1","1","1","1","1","1" +"2","4","25","25.93","1","1","1","1","1","1","1","1" +"2","4","25","25.94","1","1","1","1","1","1","1","1" +"2","4","25","25.99","1","1","1","1","1","1","1","1" +"2","4","26","26.11","1","1","1","1","1","1","1","1" +"2","4","26","26.12","1","1","1","1","1","1","1","1" +"2","4","26","26.20","1","1","1","1","1","1","1","1" +"2","4","26","26.30","1","1","1","1","1","1","1","1" +"2","4","26","26.40","1","1","1","1","1","1","1","1" +"2","4","26","26.51","1","1","1","1","1","1","1","1" +"2","4","26","26.52","1","1","1","1","1","1","1","1" +"2","4","26","26.60","1","1","1","1","1","1","1","1" +"2","4","26","26.70","1","1","1","1","1","1","1","1" +"2","4","27","27.11","1","1","1","1","1","1","1","1" +"2","4","27","27.12","1","1","1","1","1","1","1","1" +"2","4","27","27.20","1","1","1","1","1","1","1","1" +"2","4","27","27.31","1","1","1","1","1","1","1","1" +"2","4","27","27.32","1","1","1","1","1","1","1","1" +"2","4","27","27.33","1","1","1","1","1","1","1","1" +"2","4","27","27.40","1","1","1","1","1","1","1","1" +"2","4","27","27.51","1","1","1","1","1","1","1","1" +"2","4","27","27.52","1","1","1","1","1","1","1","1" +"2","4","27","27.90","1","1","1","1","1","1","1","1" +"2","4","28","28.11","1","1","1","1","1","1","1","1" +"2","4","28","28.12","1","1","1","1","1","1","1","1" +"2","4","28","28.13","1","1","1","1","1","1","1","1" +"2","4","28","28.14","1","1","1","1","1","1","1","1" +"2","4","28","28.15","1","1","1","1","1","1","1","1" +"2","4","28","28.21","1","1","1","1","1","1","1","1" +"2","4","28","28.22","1","1","1","1","1","1","1","1" +"2","4","28","28.23","1","1","1","1","1","1","1","1" +"2","4","28","28.24","1","1","1","1","1","1","1","1" +"2","4","28","28.25","1","1","1","1","1","1","1","1" +"2","4","28","28.29","1","1","1","1","1","1","1","1" +"2","4","28","28.30","1","1","1","1","1","1","1","1" +"2","4","28","28.41","1","1","1","1","1","1","1","1" +"2","4","28","28.91","1","1","1","1","1","1","1","1" +"2","4","28","28.92","1","1","1","1","1","1","1","1" +"2","4","28","28.93","1","1","1","1","1","1","1","1" +"2","4","28","28.94","1","1","1","1","1","1","1","1" +"2","4","28","28.95","1","1","1","1","1","1","1","1" +"2","4","28","28.96","1","1","1","1","1","1","1","1" +"2","4","28","28.99","1","1","1","1","1","1","1","1" +"2","4","29","29.10","1","1","1","1","1","1","1","1" +"2","4","29","29.20","1","1","1","1","1","1","1","1" +"2","4","29","29.31","1","1","1","1","1","1","1","1" +"2","4","29","29.32","1","1","1","1","1","1","1","1" +"2","4","30","30.11","1","1","1","1","1","1","1","1" +"2","4","30","30.12","1","1","1","1","1","1","1","1" +"2","4","30","30.20","1","1","1","1","1","1","1","1" +"2","4","30","30.40","1","1","1","1","1","1","1","1" +"2","4","30","30.91","1","1","1","1","1","1","1","1" +"2","4","30","30.92","1","1","1","1","1","1","1","1" +"2","4","30","30.99","1","1","1","1","1","1","1","1" +"2","4","32","32.11","1","1","1","1","1","1","1","1" +"2","4","32","32.12","1","1","1","1","1","1","1","1" +"2","4","32","32.13","1","1","1","1","1","1","1","1" +"2","4","32","32.20","1","1","1","1","1","1","1","1" +"2","4","32","32.30","1","1","1","1","1","1","1","1" +"2","4","32","32.40","1","1","1","1","1","1","1","1" +"2","4","32","32.50","1","1","1","1","1","1","1","1" +"2","4","32","32.91","1","1","1","1","1","1","1","1" +"2","4","32","32.99","1","1","1","1","1","1","1","1" +"2","4","33","33.11","1","1","1","1","1","1","1","1" +"2","4","33","33.12","1","1","1","1","1","1","1","1" +"2","4","33","33.13","1","1","1","1","1","1","1","1" +"2","4","33","33.14","1","1","1","1","1","1","1","1" +"2","4","33","33.15","1","1","1","1","1","1","1","1" +"2","4","33","33.16","1","1","1","1","1","1","1","1" +"2","4","33","33.17","1","1","1","1","1","1","1","1" +"2","4","33","33.19","1","1","1","1","1","1","1","1" +"2","4","33","33.20","1","1","1","1","1","1","1","1" +"2","4","35","35.11","1","1","1","1","1","1","1","1" +"2","4","35","35.12","1","1","1","1","1","1","1","1" +"2","4","35","35.13","1","1","1","1","1","1","1","1" +"2","4","35","35.14","1","1","1","1","1","1","1","1" +"2","4","35","35.21","1","1","1","1","1","1","1","1" +"2","4","35","35.22","1","1","1","1","1","1","1","1" +"2","4","35","35.23","1","1","1","1","1","1","1","1" +"2","4","35","35.30","1","1","1","1","1","1","1","1" +"2","4","36","36.00","1","1","1","1","1","1","1","1" +"2","4","37","37.00","1","1","1","1","1","1","1","1" +"2","4","38","38.11","1","1","1","1","1","1","1","1" +"2","4","38","38.12","1","1","1","1","1","1","1","1" +"2","4","38","38.21","1","1","1","1","1","1","1","1" +"2","4","38","38.22","1","1","1","1","1","1","1","1" +"2","4","38","38.31","1","1","1","1","1","1","1","1" +"2","4","38","38.32","1","1","1","1","1","1","1","1" +"2","4","39","39.00","1","1","1","1","1","1","1","1" +"2","4","42","42.11","1","1","1","1","1","1","1","1" +"2","4","42","42.12","1","1","1","1","1","1","1","1" +"2","4","42","42.13","1","1","1","1","1","1","1","1" +"2","4","42","42.21","1","1","1","1","1","1","1","1" +"2","4","42","42.22","1","1","1","1","1","1","1","1" +"2","4","42","42.91","1","1","1","1","1","1","1","1" +"2","4","42","42.99","1","1","1","1","1","1","1","1" +"2","4","43","43.11","1","1","1","1","1","1","1","1" +"2","4","43","43.12","1","1","1","1","1","1","1","1" +"2","4","43","43.13","1","1","1","1","1","1","1","1" +"2","4","43","43.21","1","1","1","1","1","1","1","1" +"2","4","43","43.22","1","1","1","1","1","1","1","1" +"2","4","43","43.31","1","1","1","1","1","1","1","1" +"2","4","43","43.32","1","1","1","1","1","1","1","1" +"2","4","43","43.33","1","1","1","1","1","1","1","1" +"2","4","43","43.34","1","1","1","1","1","1","1","1" +"2","4","43","43.91","1","1","1","1","1","1","1","1" +"2","4","43","43.99","1","1","1","1","1","1","1","1" +"2","4","46","46.11","1","1","1","1","1","1","1","1" +"2","4","46","46.12","1","1","1","1","1","1","1","1" +"2","4","46","46.13","1","1","1","1","1","1","1","1" +"2","4","46","46.14","1","1","1","1","1","1","1","1" +"2","4","46","46.15","1","1","1","1","1","1","1","1" +"2","4","46","46.16","1","1","1","1","1","1","1","1" +"2","4","46","46.17","1","1","1","1","1","1","1","1" +"2","4","46","46.18","1","1","1","1","1","1","1","1" +"2","4","46","46.19","1","1","1","1","1","1","1","1" +"2","4","46","46.21","1","1","1","1","1","1","1","1" +"2","4","46","46.22","1","1","1","1","1","1","1","1" +"2","4","46","46.23","1","1","1","1","1","1","1","1" +"2","4","46","46.24","1","1","1","1","1","1","1","1" +"2","4","46","46.31","1","1","1","1","1","1","1","1" +"2","4","46","46.32","1","1","1","1","1","1","1","1" +"2","4","46","46.33","1","1","1","1","1","1","1","1" +"2","4","46","46.34","1","1","1","1","1","1","1","1" +"2","4","46","46.35","1","1","1","1","1","1","1","1" +"2","4","46","46.36","1","1","1","1","1","1","1","1" +"2","4","46","46.37","1","1","1","1","1","1","1","1" +"2","4","46","46.38","1","1","1","1","1","1","1","1" +"2","4","46","46.39","1","1","1","1","1","1","1","1" +"2","4","46","46.41","1","1","1","1","1","1","1","1" +"2","4","46","46.42","1","1","1","1","1","1","1","1" +"2","4","46","46.43","1","1","1","1","1","1","1","1" +"2","4","46","46.44","1","1","1","1","1","1","1","1" +"2","4","46","46.45","1","1","1","1","1","1","1","1" +"2","4","46","46.46","1","1","1","1","1","1","1","1" +"2","4","46","46.47","1","1","1","1","1","1","1","1" +"2","4","46","46.48","1","1","1","1","1","1","1","1" +"2","4","46","46.49","1","1","1","1","1","1","1","1" +"2","4","46","46.61","1","1","1","1","1","1","1","1" +"2","4","46","46.62","1","1","1","1","1","1","1","1" +"2","4","46","46.63","1","1","1","1","1","1","1","1" +"2","4","46","46.64","1","1","1","1","1","1","1","1" +"2","4","46","46.71","1","1","1","1","1","1","1","1" +"2","4","46","46.72","1","1","1","1","1","1","1","1" +"2","4","46","46.73","1","1","1","1","1","1","1","1" +"2","4","46","46.90","1","1","1","1","1","1","1","1" +"2","4","47","47.11","1","1","1","1","1","1","1","1" +"2","4","47","47.21","1","1","1","1","1","1","1","1" +"2","4","47","47.22","1","1","1","1","1","1","1","1" +"2","4","47","47.23","1","1","1","1","1","1","1","1" +"2","4","47","47.24","1","1","1","1","1","1","1","1" +"2","4","47","47.25","1","1","1","1","1","1","1","1" +"2","4","47","47.26","1","1","1","1","1","1","1","1" +"2","4","47","47.30","1","1","1","1","1","1","1","1" +"2","4","47","47.51","1","1","1","1","1","1","1","1" +"2","4","47","47.52","1","1","1","1","1","1","1","1" +"2","4","47","47.53","1","1","1","1","1","1","1","1" +"2","4","47","47.54","1","1","1","1","1","1","1","1" +"2","4","47","47.61","1","1","1","1","1","1","1","1" +"2","4","47","47.62","1","1","1","1","1","1","1","1" +"2","4","47","47.63","1","1","1","1","1","1","1","1" +"2","4","47","47.64","1","1","1","1","1","1","1","1" +"2","4","47","47.71","1","1","1","1","1","1","1","1" +"2","4","47","47.72","1","1","1","1","1","1","1","1" +"2","4","47","47.73","1","1","1","1","1","1","1","1" +"2","4","47","47.74","1","1","1","1","1","1","1","1" +"2","4","47","47.75","1","1","1","1","1","1","1","1" +"2","4","47","47.76","1","1","1","1","1","1","1","1" +"2","4","47","47.77","1","1","1","1","1","1","1","1" +"2","4","47","47.78","1","1","1","1","1","1","1","1" +"2","4","47","47.79","1","1","1","1","1","1","1","1" +"2","4","47","47.81","1","1","1","1","1","1","1","1" +"2","4","47","47.82","1","1","1","1","1","1","1","1" +"2","4","47","47.91","1","1","1","1","1","1","1","1" +"2","4","49","49.20","1","1","1","1","1","1","1","1" +"2","4","49","49.31","1","1","1","1","1","1","1","1" +"2","4","49","49.32","1","1","1","1","1","1","1","1" +"2","4","49","49.39","1","1","1","1","1","1","1","1" +"2","4","49","49.41","1","1","1","1","1","1","1","1" +"2","4","49","49.42","1","1","1","1","1","1","1","1" +"2","4","49","49.50","1","1","1","1","1","1","1","1" +"2","4","50","50.10","1","1","1","1","1","1","1","1" +"2","4","50","50.20","1","1","1","1","1","1","1","1" +"2","4","50","50.30","1","1","1","1","1","1","1","1" +"2","4","50","50.40","1","1","1","1","1","1","1","1" +"2","4","51","51.10","1","1","1","1","1","1","1","1" +"2","4","51","51.21","1","1","1","1","1","1","1","1" +"2","4","51","51.22","1","1","1","1","1","1","1","1" +"2","4","52","52.10","1","1","1","1","1","1","1","1" +"2","4","52","52.21","1","1","1","1","1","1","1","1" +"2","4","52","52.22","1","1","1","1","1","1","1","1" +"2","4","52","52.23","1","1","1","1","1","1","1","1" +"2","4","52","52.24","1","1","1","1","1","1","1","1" +"2","4","53","53.10","1","1","1","1","1","1","1","1" +"2","4","53","53.20","1","1","1","1","1","1","1","1" +"2","4","55","55.10","1","1","1","1","1","1","1","1" +"2","4","55","55.20","1","1","1","1","1","1","1","1" +"2","4","55","55.30","1","1","1","1","1","1","1","1" +"2","4","55","55.90","1","1","1","1","1","1","1","1" +"2","4","56","56.21","1","1","1","1","1","1","1","1" +"2","4","56","56.30","1","1","1","1","1","1","1","1" +"2","4","58","58.11","1","1","1","1","1","1","1","1" +"2","4","58","58.12","1","1","1","1","1","1","1","1" +"2","4","58","58.13","1","1","1","1","1","1","1","1" +"2","4","58","58.19","1","1","1","1","1","1","1","1" +"2","4","58","58.21","1","1","1","1","1","1","1","1" +"2","4","58","58.29","1","1","1","1","1","1","1","1" +"2","4","59","59.11","1","1","1","1","1","1","1","1" +"2","4","59","59.12","1","1","1","1","1","1","1","1" +"2","4","59","59.13","1","1","1","1","1","1","1","1" +"2","4","59","59.14","1","1","1","1","1","1","1","1" +"2","4","59","59.20","1","1","1","1","1","1","1","1" +"2","4","60","60.10","1","1","1","1","1","1","1","1" +"2","4","60","60.20","1","1","1","1","1","1","1","1" +"2","4","61","61.10","1","1","1","1","1","1","1","1" +"2","4","61","61.20","1","1","1","1","1","1","1","1" +"2","4","61","61.90","1","1","1","1","1","1","1","1" +"2","4","63","63.91","1","1","1","1","1","1","1","1" +"2","4","64","64.11","1","1","1","1","1","1","1","1" +"2","4","64","64.19","1","1","1","1","1","1","1","1" +"2","4","64","64.91","1","1","1","1","1","1","1","1" +"2","4","64","64.92","1","1","1","1","1","1","1","1" +"2","4","64","64.99","1","1","1","1","1","1","1","1" +"2","4","65","65.11","1","1","1","1","1","1","1","1" +"2","4","65","65.12","1","1","1","1","1","1","1","1" +"2","4","65","65.20","1","1","1","1","1","1","1","1" +"2","4","65","65.30","1","1","1","1","1","1","1","1" +"2","4","66","66.11","1","1","1","1","1","1","1","1" +"2","4","66","66.12","1","1","1","1","1","1","1","1" +"2","4","66","66.19","1","1","1","1","1","1","1","1" +"2","4","66","66.21","1","1","1","1","1","1","1","1" +"2","4","66","66.22","1","1","1","1","1","1","1","1" +"2","4","66","66.29","1","1","1","1","1","1","1","1" +"2","4","66","66.30","1","1","1","1","1","1","1","1" +"2","4","68","68.20","1","1","1","1","1","1","1","1" +"2","4","68","68.31","1","1","1","1","1","1","1","1" +"2","4","68","68.32","1","1","1","1","1","1","1","1" +"2","4","69","69.10","1","1","1","1","1","1","1","1" +"2","4","69","69.20","1","1","1","1","1","1","1","1" +"2","4","70","70.10","1","1","1","1","1","1","1","1" +"2","4","71","71.11","1","1","1","1","1","1","1","1" +"2","4","71","71.12","1","1","1","1","1","1","1","1" +"2","4","71","71.20","1","1","1","1","1","1","1","1" +"2","4","72","72.20","1","1","1","1","1","1","1","1" +"2","4","73","73.11","1","1","1","1","1","1","1","1" +"2","4","73","73.12","1","1","1","1","1","1","1","1" +"2","4","73","73.20","1","1","1","1","1","1","1","1" +"2","4","74","74.20","1","1","1","1","1","1","1","1" +"2","4","74","74.30","1","1","1","1","1","1","1","1" +"2","4","75","75.00","1","1","1","1","1","1","1","1" +"2","4","77","77.11","1","1","1","1","1","1","1","1" +"2","4","77","77.12","1","1","1","1","1","1","1","1" +"2","4","77","77.21","1","1","1","1","1","1","1","1" +"2","4","77","77.22","1","1","1","1","1","1","1","1" +"2","4","77","77.31","1","1","1","1","1","1","1","1" +"2","4","77","77.32","1","1","1","1","1","1","1","1" +"2","4","77","77.33","1","1","1","1","1","1","1","1" +"2","4","77","77.34","1","1","1","1","1","1","1","1" +"2","4","77","77.35","1","1","1","1","1","1","1","1" +"2","4","77","77.39","1","1","1","1","1","1","1","1" +"2","4","77","77.40","1","1","1","1","1","1","1","1" +"2","4","78","78.10","1","1","1","1","1","1","1","1" +"2","4","78","78.20","1","1","1","1","1","1","1","1" +"2","4","79","79.11","1","1","1","1","1","1","1","1" +"2","4","79","79.12","1","1","1","1","1","1","1","1" +"2","4","79","79.90","1","1","1","1","1","1","1","1" +"2","4","81","81.10","1","1","1","1","1","1","1","1" +"2","4","81","81.21","1","1","1","1","1","1","1","1" +"2","4","81","81.22","1","1","1","1","1","1","1","1" +"2","4","81","81.30","1","1","1","1","1","1","1","1" +"2","4","82","82.20","1","1","1","1","1","1","1","1" +"2","4","82","82.30","1","1","1","1","1","1","1","1" +"2","4","82","82.91","1","1","1","1","1","1","1","1" +"2","4","82","82.92","1","1","1","1","1","1","1","1" +"2","4","82","82.99","1","1","1","1","1","1","1","1" +"2","4","84","84.11","1","1","1","1","1","1","1","1" +"2","4","84","84.12","1","1","1","1","1","1","1","1" +"2","4","84","84.13","1","1","1","1","1","1","1","1" +"2","4","84","84.21","1","1","1","1","1","1","1","1" +"2","4","84","84.22","1","1","1","1","1","1","1","1" +"2","4","84","84.23","1","1","1","1","1","1","1","1" +"2","4","84","84.24","1","1","1","1","1","1","1","1" +"2","4","84","84.25","1","1","1","1","1","1","1","1" +"2","4","84","84.30","1","1","1","1","1","1","1","1" +"2","4","85","85.10","1","1","1","1","1","1","1","1" +"2","4","85","85.20","1","1","1","1","1","1","1","1" +"2","4","85","85.31","1","1","1","1","1","1","1","1" +"2","4","85","85.32","1","1","1","1","1","1","1","1" +"2","4","85","85.51","1","1","1","1","1","1","1","1" +"2","4","85","85.52","1","1","1","1","1","1","1","1" +"2","4","85","85.53","1","1","1","1","1","1","1","1" +"2","4","85","85.59","1","1","1","1","1","1","1","1" +"2","4","86","86.10","1","1","1","1","1","1","1","1" +"2","4","86","86.21","1","1","1","1","1","1","1","1" +"2","4","86","86.22","1","1","1","1","1","1","1","1" +"2","4","86","86.23","1","1","1","1","1","1","1","1" +"2","4","87","87.10","1","1","1","1","1","1","1","1" +"2","4","87","87.20","1","1","1","1","1","1","1","1" +"2","4","87","87.30","1","1","1","1","1","1","1","1" +"2","4","88","88.10","1","1","1","1","1","1","1","1" +"2","4","88","88.91","1","1","1","1","1","1","1","1" +"2","4","88","88.99","1","1","1","1","1","1","1","1" +"2","4","92","92.00","1","1","1","1","1","1","1","1" +"2","4","93","93.11","1","1","1","1","1","1","1","1" +"2","4","93","93.12","1","1","1","1","1","1","1","1" +"2","4","93","93.13","1","1","1","1","1","1","1","1" +"2","4","93","93.19","1","1","1","1","1","1","1","1" +"2","4","93","93.21","1","1","1","1","1","1","1","1" +"2","4","93","93.29","1","1","1","1","1","1","1","1" +"2","4","94","94.11","1","1","1","1","1","1","1","1" +"2","4","94","94.12","1","1","1","1","1","1","1","1" +"2","4","94","94.20","1","1","1","1","1","1","1","1" +"2","4","94","94.91","1","1","1","1","1","1","1","1" +"2","4","94","94.92","1","1","1","1","1","1","1","1" +"2","4","94","94.99","1","1","1","1","1","1","1","1" +"2","4","95","95.21","1","1","1","1","1","1","1","1" +"2","4","95","95.22","1","1","1","1","1","1","1","1" +"2","4","95","95.23","1","1","1","1","1","1","1","1" +"2","4","95","95.24","1","1","1","1","1","1","1","1" +"2","4","95","95.25","1","1","1","1","1","1","1","1" +"2","4","95","95.29","1","1","1","1","1","1","1","1" +"2","4","97","97.00","1","1","1","1","1","1","1","1" +"2","4","98","98.10","1","1","1","1","1","1","1","1" +"2","4","98","98.20","1","1","1","1","1","1","1","1" +"2","4","99","99.00","1","1","1","1","1","1","1","1" +"3","1","01.1","A","1","1","1","7","1","1","1","7" +"3","1","01.2","A","1","1","1","9","1","1","1","9" +"3","1","01.3","A","1","1","1","1","1","1","1","1" +"3","1","01.4","A","1","1","1","7","1","1","1","7" +"3","1","01.5","A","1","1","1","1","1","1","1","1" +"3","1","01.6","A","1","1","1","3","1","1","1","3" +"3","1","01.7","A","1","1","1","1","1","1","1","1" +"3","1","02.1","A","1","1","1","1","1","1","1","1" +"3","1","02.2","A","1","1","1","1","1","1","1","1" +"3","1","02.3","A","1","1","1","1","1","1","1","1" +"3","1","02.4","A","1","1","1","1","1","1","1","1" +"3","1","03.1","A","1","1","1","2","1","1","1","2" +"3","1","03.2","A","1","1","1","2","1","1","1","2" +"3","1","05.1","B","1","1","1","1","1","1","1","1" +"3","1","05.2","B","1","1","1","1","1","1","1","1" +"3","1","06.1","B","1","1","1","1","1","1","1","1" +"3","1","06.2","B","1","1","1","1","1","1","1","1" +"3","1","07.1","B","1","1","1","1","1","1","1","1" +"3","1","07.2","B","1","1","1","2","1","1","1","2" +"3","1","08.1","B","1","1","1","2","1","1","1","2" +"3","1","08.9","B","1","1","1","4","1","1","1","4" +"3","1","09.1","B","1","1","1","1","1","1","1","1" +"3","1","09.9","B","1","1","1","1","1","1","1","1" +"3","1","10.1","C","1","1","1","3","1","1","1","3" +"3","1","10.2","C","1","1","1","1","1","1","1","1" +"3","1","10.3","C","1","1","1","3","1","1","1","3" +"3","1","10.4","C","1","1","1","2","1","1","1","2" +"3","1","10.5","C","1","1","1","2","1","1","1","2" +"3","1","10.6","C","1","1","1","2","1","1","1","2" +"3","1","10.7","C","1","1","1","3","1","1","1","3" +"3","1","10.8","C","1","1","1","7","1","1","1","7" +"3","1","10.9","C","1","1","1","2","1","1","1","2" +"3","1","11.0","C","1","1","1","7","1","1","1","7" +"3","1","12.0","C","1","1","1","1","1","1","1","1" +"3","1","13.1","C","1","1","1","1","1","1","1","1" +"3","1","13.2","C","1","1","1","1","1","1","1","1" +"3","1","13.3","C","1","1","1","1","1","1","1","1" +"3","1","13.9","C","1","1","1","7","1","1","1","7" +"3","1","15.1","C","1","1","1","2","1","1","1","2" +"3","1","15.2","C","1","1","1","1","1","1","1","1" +"3","1","16.2","C","1","1","1","4","1","1","1","4" +"3","1","17.1","C","1","1","1","2","1","1","1","2" +"3","1","17.2","C","1","1","1","4","1","1","1","4" +"3","1","18.1","C","1","1","1","4","1","1","1","4" +"3","1","18.2","C","1","1","1","1","1","1","1","1" +"3","1","19.1","C","1","1","1","1","1","1","1","1" +"3","1","19.2","C","1","1","1","1","1","1","1","1" +"3","1","20.1","C","1","1","1","7","1","1","1","7" +"3","1","20.2","C","1","1","1","1","1","1","1","1" +"3","1","20.3","C","1","1","1","1","1","1","1","1" +"3","1","20.4","C","1","1","1","2","1","1","1","2" +"3","1","20.5","C","1","1","1","2","1","1","1","2" +"3","1","20.6","C","1","1","1","1","1","1","1","1" +"3","1","21.1","C","1","1","1","1","1","1","1","1" +"3","1","21.2","C","1","1","1","1","1","1","1","1" +"3","1","22.1","C","1","1","1","1","1","1","1","1" +"3","1","22.2","C","1","1","1","3","1","1","1","3" +"3","1","23.1","C","1","1","1","4","1","1","1","4" +"3","1","23.2","C","1","1","1","1","1","1","1","1" +"3","1","23.3","C","1","1","1","2","1","1","1","2" +"3","1","23.4","C","1","1","1","4","1","1","1","4" +"3","1","23.5","C","1","1","1","2","1","1","1","2" +"3","1","23.6","C","1","1","1","5","1","1","1","5" +"3","1","23.7","C","1","1","1","1","1","1","1","1" +"3","1","23.9","C","1","1","1","2","1","1","1","2" +"3","1","24.1","C","1","1","1","1","1","1","1","1" +"3","1","24.2","C","1","1","1","1","1","1","1","1" +"3","1","24.3","C","1","1","1","4","1","1","1","4" +"3","1","24.4","C","1","1","1","6","1","1","1","6" +"3","1","24.5","C","1","1","1","4","1","1","1","4" +"3","1","25.1","C","1","1","1","2","1","1","1","2" +"3","1","25.2","C","1","1","1","1","1","1","1","1" +"3","1","25.3","C","1","1","1","1","1","1","1","1" +"3","1","25.4","C","1","1","1","1","1","1","1","1" +"3","1","25.6","C","1","1","1","2","1","1","1","2" +"3","1","25.9","C","1","1","1","5","1","1","1","5" +"3","1","26.1","C","1","1","1","2","1","1","1","2" +"3","1","26.2","C","1","1","1","1","1","1","1","1" +"3","1","26.3","C","1","1","1","1","1","1","1","1" +"3","1","26.4","C","1","1","1","1","1","1","1","1" +"3","1","26.5","C","1","1","1","2","1","1","1","2" +"3","1","26.6","C","1","1","1","1","1","1","1","1" +"3","1","26.7","C","1","1","1","1","1","1","1","1" +"3","1","27.1","C","1","1","1","2","1","1","1","2" +"3","1","27.2","C","1","1","1","1","1","1","1","1" +"3","1","27.3","C","1","1","1","3","1","1","1","3" +"3","1","27.4","C","1","1","1","1","1","1","1","1" +"3","1","27.5","C","1","1","1","2","1","1","1","2" +"3","1","27.9","C","1","1","1","1","1","1","1","1" +"3","1","28.1","C","1","1","1","5","1","1","1","5" +"3","1","28.2","C","1","1","1","6","1","1","1","6" +"3","1","28.3","C","1","1","1","1","1","1","1","1" +"3","1","28.4","C","1","1","1","1","1","1","1","1" +"3","1","28.9","C","1","1","1","7","1","1","1","7" +"3","1","29.1","C","1","1","1","1","1","1","1","1" +"3","1","29.2","C","1","1","1","1","1","1","1","1" +"3","1","29.3","C","1","1","1","2","1","1","1","2" +"3","1","30.1","C","1","1","1","2","1","1","1","2" +"3","1","30.2","C","1","1","1","1","1","1","1","1" +"3","1","30.4","C","1","1","1","1","1","1","1","1" +"3","1","30.9","C","1","1","1","3","1","1","1","3" +"3","1","32.1","C","1","1","1","3","1","1","1","3" +"3","1","32.2","C","1","1","1","1","1","1","1","1" +"3","1","32.3","C","1","1","1","1","1","1","1","1" +"3","1","32.4","C","1","1","1","1","1","1","1","1" +"3","1","32.5","C","1","1","1","1","1","1","1","1" +"3","1","32.9","C","1","1","1","2","1","1","1","2" +"3","1","33.1","C","1","1","1","8","1","1","1","8" +"3","1","33.2","C","1","1","1","1","1","1","1","1" +"3","1","35.1","D","1","1","1","4","1","1","1","4" +"3","1","35.2","D","1","1","1","3","1","1","1","3" +"3","1","35.3","D","1","1","1","1","1","1","1","1" +"3","1","36.0","E","1","1","1","1","1","1","1","1" +"3","1","37.0","E","1","1","1","1","1","1","1","1" +"3","1","38.1","E","1","1","1","2","1","1","1","2" +"3","1","38.2","E","1","1","1","2","1","1","1","2" +"3","1","38.3","E","1","1","1","2","1","1","1","2" +"3","1","39.0","E","1","1","1","1","1","1","1","1" +"3","1","42.1","F","1","1","1","3","1","1","1","3" +"3","1","42.2","F","1","1","1","2","1","1","1","2" +"3","1","42.9","F","1","1","1","2","1","1","1","2" +"3","1","43.1","F","1","1","1","3","1","1","1","3" +"3","1","43.2","F","1","1","1","2","1","1","1","2" +"3","1","43.3","F","1","1","1","4","1","1","1","4" +"3","1","43.9","F","1","1","1","2","1","1","1","2" +"3","1","46.1","G","1","1","1","9","1","1","1","9" +"3","1","46.2","G","1","1","1","4","1","1","1","4" +"3","1","46.3","G","1","1","1","9","1","1","1","9" +"3","1","46.4","G","1","1","1","9","1","1","1","9" +"3","1","46.6","G","1","1","1","4","1","1","1","4" +"3","1","46.7","G","1","1","1","3","1","1","1","3" +"3","1","46.9","G","1","1","1","1","1","1","1","1" +"3","1","47.1","G","1","1","1","1","1","1","1","1" +"3","1","47.2","G","1","1","1","6","1","1","1","6" +"3","1","47.3","G","1","1","1","1","1","1","1","1" +"3","1","47.5","G","1","1","1","4","1","1","1","4" +"3","1","47.6","G","1","1","1","4","1","1","1","4" +"3","1","47.7","G","1","1","1","9","1","1","1","9" +"3","1","47.8","G","1","1","1","2","1","1","1","2" +"3","1","47.9","G","1","1","1","1","1","1","1","1" +"3","1","49.2","H","1","1","1","1","1","1","1","1" +"3","1","49.3","H","1","1","1","3","1","1","1","3" +"3","1","49.4","H","1","1","1","2","1","1","1","2" +"3","1","49.5","H","1","1","1","1","1","1","1","1" +"3","1","50.1","H","1","1","1","1","1","1","1","1" +"3","1","50.2","H","1","1","1","1","1","1","1","1" +"3","1","50.3","H","1","1","1","1","1","1","1","1" +"3","1","50.4","H","1","1","1","1","1","1","1","1" +"3","1","51.1","H","1","1","1","1","1","1","1","1" +"3","1","51.2","H","1","1","1","2","1","1","1","2" +"3","1","52.1","H","1","1","1","1","1","1","1","1" +"3","1","52.2","H","1","1","1","4","1","1","1","4" +"3","1","53.1","H","1","1","1","1","1","1","1","1" +"3","1","53.2","H","1","1","1","1","1","1","1","1" +"3","1","55.1","I","1","1","1","1","1","1","1","1" +"3","1","55.2","I","1","1","1","1","1","1","1","1" +"3","1","55.3","I","1","1","1","1","1","1","1","1" +"3","1","55.9","I","1","1","1","1","1","1","1","1" +"3","1","56.2","I","1","1","1","1","1","1","1","1" +"3","1","56.3","I","1","1","1","1","1","1","1","1" +"3","1","58.1","J","1","1","1","4","1","1","1","4" +"3","1","58.2","J","1","1","1","2","1","1","1","2" +"3","1","59.1","J","1","1","1","4","1","1","1","4" +"3","1","59.2","J","1","1","1","1","1","1","1","1" +"3","1","60.1","J","1","1","1","1","1","1","1","1" +"3","1","60.2","J","1","1","1","1","1","1","1","1" +"3","1","61.1","K","1","1","1","1","1","1","1","1" +"3","1","61.2","K","1","1","1","1","1","1","1","1" +"3","1","61.9","K","1","1","1","1","1","1","1","1" +"3","1","63.9","K","1","1","1","1","1","1","1","1" +"3","1","64.1","L","1","1","1","2","1","1","1","2" +"3","1","64.9","L","1","1","1","3","1","1","1","3" +"3","1","65.1","L","1","1","1","2","1","1","1","2" +"3","1","65.2","L","1","1","1","1","1","1","1","1" +"3","1","65.3","L","1","1","1","1","1","1","1","1" +"3","1","66.1","L","1","1","1","3","1","1","1","3" +"3","1","66.2","L","1","1","1","3","1","1","1","3" +"3","1","66.3","L","1","1","1","1","1","1","1","1" +"3","1","68.2","M","1","1","1","1","1","1","1","1" +"3","1","68.3","M","1","1","1","2","1","1","1","2" +"3","1","69.1","N","1","1","1","1","1","1","1","1" +"3","1","69.2","N","1","1","1","1","1","1","1","1" +"3","1","70.1","N","1","1","1","1","1","1","1","1" +"3","1","71.1","N","1","1","1","2","1","1","1","2" +"3","1","71.2","N","1","1","1","1","1","1","1","1" +"3","1","72.2","N","1","1","1","1","1","1","1","1" +"3","1","73.1","N","1","1","1","2","1","1","1","2" +"3","1","73.2","N","1","1","1","1","1","1","1","1" +"3","1","74.2","N","1","1","1","1","1","1","1","1" +"3","1","74.3","N","1","1","1","1","1","1","1","1" +"3","1","75.0","N","1","1","1","1","1","1","1","1" +"3","1","77.1","O","1","1","1","2","1","1","1","2" +"3","1","77.2","O","1","1","1","2","1","1","1","2" +"3","1","77.3","O","1","1","1","6","1","1","1","6" +"3","1","77.4","O","1","1","1","1","1","1","1","1" +"3","1","78.1","O","1","1","1","1","1","1","1","1" +"3","1","78.2","O","1","1","1","1","1","1","1","1" +"3","1","79.1","O","1","1","1","2","1","1","1","2" +"3","1","79.9","O","1","1","1","1","1","1","1","1" +"3","1","81.1","O","1","1","1","1","1","1","1","1" +"3","1","81.2","O","1","1","1","2","1","1","1","2" +"3","1","81.3","O","1","1","1","1","1","1","1","1" +"3","1","82.2","O","1","1","1","1","1","1","1","1" +"3","1","82.3","O","1","1","1","1","1","1","1","1" +"3","1","82.9","O","1","1","1","3","1","1","1","3" +"3","1","84.1","P","1","1","1","3","1","1","1","3" +"3","1","84.2","P","1","1","1","5","1","1","1","5" +"3","1","84.3","P","1","1","1","1","1","1","1","1" +"3","1","85.1","Q","1","1","1","1","1","1","1","1" +"3","1","85.2","Q","1","1","1","1","1","1","1","1" +"3","1","85.3","Q","1","1","1","2","1","1","1","2" +"3","1","85.5","Q","1","1","1","4","1","1","1","4" +"3","1","86.1","R","1","1","1","1","1","1","1","1" +"3","1","86.2","R","1","1","1","3","1","1","1","3" +"3","1","87.1","R","1","1","1","1","1","1","1","1" +"3","1","87.2","R","1","1","1","1","1","1","1","1" +"3","1","87.3","R","1","1","1","1","1","1","1","1" +"3","1","88.1","R","1","1","1","1","1","1","1","1" +"3","1","88.9","R","1","1","1","2","1","1","1","2" +"3","1","92.0","S","1","1","1","1","1","1","1","1" +"3","1","93.1","S","1","1","1","4","1","1","1","4" +"3","1","93.2","S","1","1","1","2","1","1","1","2" +"3","1","94.1","T","1","1","1","2","1","1","1","2" +"3","1","94.2","T","1","1","1","1","1","1","1","1" +"3","1","94.9","T","1","1","1","3","1","1","1","3" +"3","1","95.2","T","1","1","1","6","1","1","1","6" +"3","1","97.0","U","1","1","1","1","1","1","1","1" +"3","1","98.1","U","1","1","1","1","1","1","1","1" +"3","1","98.2","U","1","1","1","1","1","1","1","1" +"3","1","99.0","V","1","1","1","1","1","1","1","1" +"3","2","01.1","01","1","1","1","7","1","1","1","7" +"3","2","01.2","01","1","1","1","9","1","1","1","9" +"3","2","01.3","01","1","1","1","1","1","1","1","1" +"3","2","01.4","01","1","1","1","7","1","1","1","7" +"3","2","01.5","01","1","1","1","1","1","1","1","1" +"3","2","01.6","01","1","1","1","3","1","1","1","3" +"3","2","01.7","01","1","1","1","1","1","1","1","1" +"3","2","02.1","02","1","1","1","1","1","1","1","1" +"3","2","02.2","02","1","1","1","1","1","1","1","1" +"3","2","02.3","02","1","1","1","1","1","1","1","1" +"3","2","02.4","02","1","1","1","1","1","1","1","1" +"3","2","03.1","03","1","1","1","2","1","1","1","2" +"3","2","03.2","03","1","1","1","2","1","1","1","2" +"3","2","05.1","05","1","1","1","1","1","1","1","1" +"3","2","05.2","05","1","1","1","1","1","1","1","1" +"3","2","06.1","06","1","1","1","1","1","1","1","1" +"3","2","06.2","06","1","1","1","1","1","1","1","1" +"3","2","07.1","07","1","1","1","1","1","1","1","1" +"3","2","07.2","07","1","1","1","2","1","1","1","2" +"3","2","08.1","08","1","1","1","2","1","1","1","2" +"3","2","08.9","08","1","1","1","4","1","1","1","4" +"3","2","09.1","09","1","1","1","1","1","1","1","1" +"3","2","09.9","09","1","1","1","1","1","1","1","1" +"3","2","10.1","10","1","1","1","3","1","1","1","3" +"3","2","10.2","10","1","1","1","1","1","1","1","1" +"3","2","10.3","10","1","1","1","3","1","1","1","3" +"3","2","10.4","10","1","1","1","2","1","1","1","2" +"3","2","10.5","10","1","1","1","2","1","1","1","2" +"3","2","10.6","10","1","1","1","2","1","1","1","2" +"3","2","10.7","10","1","1","1","3","1","1","1","3" +"3","2","10.8","10","1","1","1","7","1","1","1","7" +"3","2","10.9","10","1","1","1","2","1","1","1","2" +"3","2","11.0","11","1","1","1","7","1","1","1","7" +"3","2","12.0","12","1","1","1","1","1","1","1","1" +"3","2","13.1","13","1","1","1","1","1","1","1","1" +"3","2","13.2","13","1","1","1","1","1","1","1","1" +"3","2","13.3","13","1","1","1","1","1","1","1","1" +"3","2","13.9","13","1","1","1","7","1","1","1","7" +"3","2","15.1","15","1","1","1","2","1","1","1","2" +"3","2","15.2","15","1","1","1","1","1","1","1","1" +"3","2","16.2","16","1","1","1","4","1","1","1","4" +"3","2","17.1","17","1","1","1","2","1","1","1","2" +"3","2","17.2","17","1","1","1","4","1","1","1","4" +"3","2","18.1","18","1","1","1","4","1","1","1","4" +"3","2","18.2","18","1","1","1","1","1","1","1","1" +"3","2","19.1","19","1","1","1","1","1","1","1","1" +"3","2","19.2","19","1","1","1","1","1","1","1","1" +"3","2","20.1","20","1","1","1","7","1","1","1","7" +"3","2","20.2","20","1","1","1","1","1","1","1","1" +"3","2","20.3","20","1","1","1","1","1","1","1","1" +"3","2","20.4","20","1","1","1","2","1","1","1","2" +"3","2","20.5","20","1","1","1","2","1","1","1","2" +"3","2","20.6","20","1","1","1","1","1","1","1","1" +"3","2","21.1","21","1","1","1","1","1","1","1","1" +"3","2","21.2","21","1","1","1","1","1","1","1","1" +"3","2","22.1","22","1","1","1","1","1","1","1","1" +"3","2","22.2","22","1","1","1","3","1","1","1","3" +"3","2","23.1","23","1","1","1","4","1","1","1","4" +"3","2","23.2","23","1","1","1","1","1","1","1","1" +"3","2","23.3","23","1","1","1","2","1","1","1","2" +"3","2","23.4","23","1","1","1","4","1","1","1","4" +"3","2","23.5","23","1","1","1","2","1","1","1","2" +"3","2","23.6","23","1","1","1","5","1","1","1","5" +"3","2","23.7","23","1","1","1","1","1","1","1","1" +"3","2","23.9","23","1","1","1","2","1","1","1","2" +"3","2","24.1","24","1","1","1","1","1","1","1","1" +"3","2","24.2","24","1","1","1","1","1","1","1","1" +"3","2","24.3","24","1","1","1","4","1","1","1","4" +"3","2","24.4","24","1","1","1","6","1","1","1","6" +"3","2","24.5","24","1","1","1","4","1","1","1","4" +"3","2","25.1","25","1","1","1","2","1","1","1","2" +"3","2","25.2","25","1","1","1","1","1","1","1","1" +"3","2","25.3","25","1","1","1","1","1","1","1","1" +"3","2","25.4","25","1","1","1","1","1","1","1","1" +"3","2","25.6","25","1","1","1","2","1","1","1","2" +"3","2","25.9","25","1","1","1","5","1","1","1","5" +"3","2","26.1","26","1","1","1","2","1","1","1","2" +"3","2","26.2","26","1","1","1","1","1","1","1","1" +"3","2","26.3","26","1","1","1","1","1","1","1","1" +"3","2","26.4","26","1","1","1","1","1","1","1","1" +"3","2","26.5","26","1","1","1","2","1","1","1","2" +"3","2","26.6","26","1","1","1","1","1","1","1","1" +"3","2","26.7","26","1","1","1","1","1","1","1","1" +"3","2","27.1","27","1","1","1","2","1","1","1","2" +"3","2","27.2","27","1","1","1","1","1","1","1","1" +"3","2","27.3","27","1","1","1","3","1","1","1","3" +"3","2","27.4","27","1","1","1","1","1","1","1","1" +"3","2","27.5","27","1","1","1","2","1","1","1","2" +"3","2","27.9","27","1","1","1","1","1","1","1","1" +"3","2","28.1","28","1","1","1","5","1","1","1","5" +"3","2","28.2","28","1","1","1","6","1","1","1","6" +"3","2","28.3","28","1","1","1","1","1","1","1","1" +"3","2","28.4","28","1","1","1","1","1","1","1","1" +"3","2","28.9","28","1","1","1","7","1","1","1","7" +"3","2","29.1","29","1","1","1","1","1","1","1","1" +"3","2","29.2","29","1","1","1","1","1","1","1","1" +"3","2","29.3","29","1","1","1","2","1","1","1","2" +"3","2","30.1","30","1","1","1","2","1","1","1","2" +"3","2","30.2","30","1","1","1","1","1","1","1","1" +"3","2","30.4","30","1","1","1","1","1","1","1","1" +"3","2","30.9","30","1","1","1","3","1","1","1","3" +"3","2","32.1","32","1","1","1","3","1","1","1","3" +"3","2","32.2","32","1","1","1","1","1","1","1","1" +"3","2","32.3","32","1","1","1","1","1","1","1","1" +"3","2","32.4","32","1","1","1","1","1","1","1","1" +"3","2","32.5","32","1","1","1","1","1","1","1","1" +"3","2","32.9","32","1","1","1","2","1","1","1","2" +"3","2","33.1","33","1","1","1","8","1","1","1","8" +"3","2","33.2","33","1","1","1","1","1","1","1","1" +"3","2","35.1","35","1","1","1","4","1","1","1","4" +"3","2","35.2","35","1","1","1","3","1","1","1","3" +"3","2","35.3","35","1","1","1","1","1","1","1","1" +"3","2","36.0","36","1","1","1","1","1","1","1","1" +"3","2","37.0","37","1","1","1","1","1","1","1","1" +"3","2","38.1","38","1","1","1","2","1","1","1","2" +"3","2","38.2","38","1","1","1","2","1","1","1","2" +"3","2","38.3","38","1","1","1","2","1","1","1","2" +"3","2","39.0","39","1","1","1","1","1","1","1","1" +"3","2","42.1","42","1","1","1","3","1","1","1","3" +"3","2","42.2","42","1","1","1","2","1","1","1","2" +"3","2","42.9","42","1","1","1","2","1","1","1","2" +"3","2","43.1","43","1","1","1","3","1","1","1","3" +"3","2","43.2","43","1","1","1","2","1","1","1","2" +"3","2","43.3","43","1","1","1","4","1","1","1","4" +"3","2","43.9","43","1","1","1","2","1","1","1","2" +"3","2","46.1","46","1","1","1","9","1","1","1","9" +"3","2","46.2","46","1","1","1","4","1","1","1","4" +"3","2","46.3","46","1","1","1","9","1","1","1","9" +"3","2","46.4","46","1","1","1","9","1","1","1","9" +"3","2","46.6","46","1","1","1","4","1","1","1","4" +"3","2","46.7","46","1","1","1","3","1","1","1","3" +"3","2","46.9","46","1","1","1","1","1","1","1","1" +"3","2","47.1","47","1","1","1","1","1","1","1","1" +"3","2","47.2","47","1","1","1","6","1","1","1","6" +"3","2","47.3","47","1","1","1","1","1","1","1","1" +"3","2","47.5","47","1","1","1","4","1","1","1","4" +"3","2","47.6","47","1","1","1","4","1","1","1","4" +"3","2","47.7","47","1","1","1","9","1","1","1","9" +"3","2","47.8","47","1","1","1","2","1","1","1","2" +"3","2","47.9","47","1","1","1","1","1","1","1","1" +"3","2","49.2","49","1","1","1","1","1","1","1","1" +"3","2","49.3","49","1","1","1","3","1","1","1","3" +"3","2","49.4","49","1","1","1","2","1","1","1","2" +"3","2","49.5","49","1","1","1","1","1","1","1","1" +"3","2","50.1","50","1","1","1","1","1","1","1","1" +"3","2","50.2","50","1","1","1","1","1","1","1","1" +"3","2","50.3","50","1","1","1","1","1","1","1","1" +"3","2","50.4","50","1","1","1","1","1","1","1","1" +"3","2","51.1","51","1","1","1","1","1","1","1","1" +"3","2","51.2","51","1","1","1","2","1","1","1","2" +"3","2","52.1","52","1","1","1","1","1","1","1","1" +"3","2","52.2","52","1","1","1","4","1","1","1","4" +"3","2","53.1","53","1","1","1","1","1","1","1","1" +"3","2","53.2","53","1","1","1","1","1","1","1","1" +"3","2","55.1","55","1","1","1","1","1","1","1","1" +"3","2","55.2","55","1","1","1","1","1","1","1","1" +"3","2","55.3","55","1","1","1","1","1","1","1","1" +"3","2","55.9","55","1","1","1","1","1","1","1","1" +"3","2","56.2","56","1","1","1","1","1","1","1","1" +"3","2","56.3","56","1","1","1","1","1","1","1","1" +"3","2","58.1","58","1","1","1","4","1","1","1","4" +"3","2","58.2","58","1","1","1","2","1","1","1","2" +"3","2","59.1","59","1","1","1","4","1","1","1","4" +"3","2","59.2","59","1","1","1","1","1","1","1","1" +"3","2","60.1","60","1","1","1","1","1","1","1","1" +"3","2","60.2","60","1","1","1","1","1","1","1","1" +"3","2","61.1","61","1","1","1","1","1","1","1","1" +"3","2","61.2","61","1","1","1","1","1","1","1","1" +"3","2","61.9","61","1","1","1","1","1","1","1","1" +"3","2","63.9","63","1","1","1","1","1","1","1","1" +"3","2","64.1","64","1","1","1","2","1","1","1","2" +"3","2","64.9","64","1","1","1","3","1","1","1","3" +"3","2","65.1","65","1","1","1","2","1","1","1","2" +"3","2","65.2","65","1","1","1","1","1","1","1","1" +"3","2","65.3","65","1","1","1","1","1","1","1","1" +"3","2","66.1","66","1","1","1","3","1","1","1","3" +"3","2","66.2","66","1","1","1","3","1","1","1","3" +"3","2","66.3","66","1","1","1","1","1","1","1","1" +"3","2","68.2","68","1","1","1","1","1","1","1","1" +"3","2","68.3","68","1","1","1","2","1","1","1","2" +"3","2","69.1","69","1","1","1","1","1","1","1","1" +"3","2","69.2","69","1","1","1","1","1","1","1","1" +"3","2","70.1","70","1","1","1","1","1","1","1","1" +"3","2","71.1","71","1","1","1","2","1","1","1","2" +"3","2","71.2","71","1","1","1","1","1","1","1","1" +"3","2","72.2","72","1","1","1","1","1","1","1","1" +"3","2","73.1","73","1","1","1","2","1","1","1","2" +"3","2","73.2","73","1","1","1","1","1","1","1","1" +"3","2","74.2","74","1","1","1","1","1","1","1","1" +"3","2","74.3","74","1","1","1","1","1","1","1","1" +"3","2","75.0","75","1","1","1","1","1","1","1","1" +"3","2","77.1","77","1","1","1","2","1","1","1","2" +"3","2","77.2","77","1","1","1","2","1","1","1","2" +"3","2","77.3","77","1","1","1","6","1","1","1","6" +"3","2","77.4","77","1","1","1","1","1","1","1","1" +"3","2","78.1","78","1","1","1","1","1","1","1","1" +"3","2","78.2","78","1","1","1","1","1","1","1","1" +"3","2","79.1","79","1","1","1","2","1","1","1","2" +"3","2","79.9","79","1","1","1","1","1","1","1","1" +"3","2","81.1","81","1","1","1","1","1","1","1","1" +"3","2","81.2","81","1","1","1","2","1","1","1","2" +"3","2","81.3","81","1","1","1","1","1","1","1","1" +"3","2","82.2","82","1","1","1","1","1","1","1","1" +"3","2","82.3","82","1","1","1","1","1","1","1","1" +"3","2","82.9","82","1","1","1","3","1","1","1","3" +"3","2","84.1","84","1","1","1","3","1","1","1","3" +"3","2","84.2","84","1","1","1","5","1","1","1","5" +"3","2","84.3","84","1","1","1","1","1","1","1","1" +"3","2","85.1","85","1","1","1","1","1","1","1","1" +"3","2","85.2","85","1","1","1","1","1","1","1","1" +"3","2","85.3","85","1","1","1","2","1","1","1","2" +"3","2","85.5","85","1","1","1","4","1","1","1","4" +"3","2","86.1","86","1","1","1","1","1","1","1","1" +"3","2","86.2","86","1","1","1","3","1","1","1","3" +"3","2","87.1","87","1","1","1","1","1","1","1","1" +"3","2","87.2","87","1","1","1","1","1","1","1","1" +"3","2","87.3","87","1","1","1","1","1","1","1","1" +"3","2","88.1","88","1","1","1","1","1","1","1","1" +"3","2","88.9","88","1","1","1","2","1","1","1","2" +"3","2","92.0","92","1","1","1","1","1","1","1","1" +"3","2","93.1","93","1","1","1","4","1","1","1","4" +"3","2","93.2","93","1","1","1","2","1","1","1","2" +"3","2","94.1","94","1","1","1","2","1","1","1","2" +"3","2","94.2","94","1","1","1","1","1","1","1","1" +"3","2","94.9","94","1","1","1","3","1","1","1","3" +"3","2","95.2","95","1","1","1","6","1","1","1","6" +"3","2","97.0","97","1","1","1","1","1","1","1","1" +"3","2","98.1","98","1","1","1","1","1","1","1","1" +"3","2","98.2","98","1","1","1","1","1","1","1","1" +"3","2","99.0","99","1","1","1","1","1","1","1","1" +"3","3","01.1","01.1","1","1","1","7","1","1","1","7" +"3","3","01.2","01.2","1","1","1","9","1","1","1","9" +"3","3","01.3","01.3","1","1","1","1","1","1","1","1" +"3","3","01.4","01.4","1","1","1","7","1","1","1","7" +"3","3","01.5","01.5","1","1","1","1","1","1","1","1" +"3","3","01.6","01.6","1","1","1","3","1","1","1","3" +"3","3","01.7","01.7","1","1","1","1","1","1","1","1" +"3","3","02.1","02.1","1","1","1","1","1","1","1","1" +"3","3","02.2","02.2","1","1","1","1","1","1","1","1" +"3","3","02.3","02.3","1","1","1","1","1","1","1","1" +"3","3","02.4","02.4","1","1","1","1","1","1","1","1" +"3","3","03.1","03.1","1","1","1","2","1","1","1","2" +"3","3","03.2","03.2","1","1","1","2","1","1","1","2" +"3","3","05.1","05.1","1","1","1","1","1","1","1","1" +"3","3","05.2","05.2","1","1","1","1","1","1","1","1" +"3","3","06.1","06.1","1","1","1","1","1","1","1","1" +"3","3","06.2","06.2","1","1","1","1","1","1","1","1" +"3","3","07.1","07.1","1","1","1","1","1","1","1","1" +"3","3","07.2","07.2","1","1","1","2","1","1","1","2" +"3","3","08.1","08.1","1","1","1","2","1","1","1","2" +"3","3","08.9","08.9","1","1","1","4","1","1","1","4" +"3","3","09.1","09.1","1","1","1","1","1","1","1","1" +"3","3","09.9","09.9","1","1","1","1","1","1","1","1" +"3","3","10.1","10.1","1","1","1","3","1","1","1","3" +"3","3","10.2","10.2","1","1","1","1","1","1","1","1" +"3","3","10.3","10.3","1","1","1","3","1","1","1","3" +"3","3","10.4","10.4","1","1","1","2","1","1","1","2" +"3","3","10.5","10.5","1","1","1","2","1","1","1","2" +"3","3","10.6","10.6","1","1","1","2","1","1","1","2" +"3","3","10.7","10.7","1","1","1","3","1","1","1","3" +"3","3","10.8","10.8","1","1","1","7","1","1","1","7" +"3","3","10.9","10.9","1","1","1","2","1","1","1","2" +"3","3","11.0","11.0","1","1","1","7","1","1","1","7" +"3","3","12.0","12.0","1","1","1","1","1","1","1","1" +"3","3","13.1","13.1","1","1","1","1","1","1","1","1" +"3","3","13.2","13.2","1","1","1","1","1","1","1","1" +"3","3","13.3","13.3","1","1","1","1","1","1","1","1" +"3","3","13.9","13.9","1","1","1","7","1","1","1","7" +"3","3","15.1","15.1","1","1","1","2","1","1","1","2" +"3","3","15.2","15.2","1","1","1","1","1","1","1","1" +"3","3","16.2","16.2","1","1","1","4","1","1","1","4" +"3","3","17.1","17.1","1","1","1","2","1","1","1","2" +"3","3","17.2","17.2","1","1","1","4","1","1","1","4" +"3","3","18.1","18.1","1","1","1","4","1","1","1","4" +"3","3","18.2","18.2","1","1","1","1","1","1","1","1" +"3","3","19.1","19.1","1","1","1","1","1","1","1","1" +"3","3","19.2","19.2","1","1","1","1","1","1","1","1" +"3","3","20.1","20.1","1","1","1","7","1","1","1","7" +"3","3","20.2","20.2","1","1","1","1","1","1","1","1" +"3","3","20.3","20.3","1","1","1","1","1","1","1","1" +"3","3","20.4","20.4","1","1","1","2","1","1","1","2" +"3","3","20.5","20.5","1","1","1","2","1","1","1","2" +"3","3","20.6","20.6","1","1","1","1","1","1","1","1" +"3","3","21.1","21.1","1","1","1","1","1","1","1","1" +"3","3","21.2","21.2","1","1","1","1","1","1","1","1" +"3","3","22.1","22.1","1","1","1","1","1","1","1","1" +"3","3","22.2","22.2","1","1","1","3","1","1","1","3" +"3","3","23.1","23.1","1","1","1","4","1","1","1","4" +"3","3","23.2","23.2","1","1","1","1","1","1","1","1" +"3","3","23.3","23.3","1","1","1","2","1","1","1","2" +"3","3","23.4","23.4","1","1","1","4","1","1","1","4" +"3","3","23.5","23.5","1","1","1","2","1","1","1","2" +"3","3","23.6","23.6","1","1","1","5","1","1","1","5" +"3","3","23.7","23.7","1","1","1","1","1","1","1","1" +"3","3","23.9","23.9","1","1","1","2","1","1","1","2" +"3","3","24.1","24.1","1","1","1","1","1","1","1","1" +"3","3","24.2","24.2","1","1","1","1","1","1","1","1" +"3","3","24.3","24.3","1","1","1","4","1","1","1","4" +"3","3","24.4","24.4","1","1","1","6","1","1","1","6" +"3","3","24.5","24.5","1","1","1","4","1","1","1","4" +"3","3","25.1","25.1","1","1","1","2","1","1","1","2" +"3","3","25.2","25.2","1","1","1","1","1","1","1","1" +"3","3","25.3","25.3","1","1","1","1","1","1","1","1" +"3","3","25.4","25.4","1","1","1","1","1","1","1","1" +"3","3","25.6","25.6","1","1","1","2","1","1","1","2" +"3","3","25.9","25.9","1","1","1","5","1","1","1","5" +"3","3","26.1","26.1","1","1","1","2","1","1","1","2" +"3","3","26.2","26.2","1","1","1","1","1","1","1","1" +"3","3","26.3","26.3","1","1","1","1","1","1","1","1" +"3","3","26.4","26.4","1","1","1","1","1","1","1","1" +"3","3","26.5","26.5","1","1","1","2","1","1","1","2" +"3","3","26.6","26.6","1","1","1","1","1","1","1","1" +"3","3","26.7","26.7","1","1","1","1","1","1","1","1" +"3","3","27.1","27.1","1","1","1","2","1","1","1","2" +"3","3","27.2","27.2","1","1","1","1","1","1","1","1" +"3","3","27.3","27.3","1","1","1","3","1","1","1","3" +"3","3","27.4","27.4","1","1","1","1","1","1","1","1" +"3","3","27.5","27.5","1","1","1","2","1","1","1","2" +"3","3","27.9","27.9","1","1","1","1","1","1","1","1" +"3","3","28.1","28.1","1","1","1","5","1","1","1","5" +"3","3","28.2","28.2","1","1","1","6","1","1","1","6" +"3","3","28.3","28.3","1","1","1","1","1","1","1","1" +"3","3","28.4","28.4","1","1","1","1","1","1","1","1" +"3","3","28.9","28.9","1","1","1","7","1","1","1","7" +"3","3","29.1","29.1","1","1","1","1","1","1","1","1" +"3","3","29.2","29.2","1","1","1","1","1","1","1","1" +"3","3","29.3","29.3","1","1","1","2","1","1","1","2" +"3","3","30.1","30.1","1","1","1","2","1","1","1","2" +"3","3","30.2","30.2","1","1","1","1","1","1","1","1" +"3","3","30.4","30.4","1","1","1","1","1","1","1","1" +"3","3","30.9","30.9","1","1","1","3","1","1","1","3" +"3","3","32.1","32.1","1","1","1","3","1","1","1","3" +"3","3","32.2","32.2","1","1","1","1","1","1","1","1" +"3","3","32.3","32.3","1","1","1","1","1","1","1","1" +"3","3","32.4","32.4","1","1","1","1","1","1","1","1" +"3","3","32.5","32.5","1","1","1","1","1","1","1","1" +"3","3","32.9","32.9","1","1","1","2","1","1","1","2" +"3","3","33.1","33.1","1","1","1","8","1","1","1","8" +"3","3","33.2","33.2","1","1","1","1","1","1","1","1" +"3","3","35.1","35.1","1","1","1","4","1","1","1","4" +"3","3","35.2","35.2","1","1","1","3","1","1","1","3" +"3","3","35.3","35.3","1","1","1","1","1","1","1","1" +"3","3","36.0","36.0","1","1","1","1","1","1","1","1" +"3","3","37.0","37.0","1","1","1","1","1","1","1","1" +"3","3","38.1","38.1","1","1","1","2","1","1","1","2" +"3","3","38.2","38.2","1","1","1","2","1","1","1","2" +"3","3","38.3","38.3","1","1","1","2","1","1","1","2" +"3","3","39.0","39.0","1","1","1","1","1","1","1","1" +"3","3","42.1","42.1","1","1","1","3","1","1","1","3" +"3","3","42.2","42.2","1","1","1","2","1","1","1","2" +"3","3","42.9","42.9","1","1","1","2","1","1","1","2" +"3","3","43.1","43.1","1","1","1","3","1","1","1","3" +"3","3","43.2","43.2","1","1","1","2","1","1","1","2" +"3","3","43.3","43.3","1","1","1","4","1","1","1","4" +"3","3","43.9","43.9","1","1","1","2","1","1","1","2" +"3","3","46.1","46.1","1","1","1","9","1","1","1","9" +"3","3","46.2","46.2","1","1","1","4","1","1","1","4" +"3","3","46.3","46.3","1","1","1","9","1","1","1","9" +"3","3","46.4","46.4","1","1","1","9","1","1","1","9" +"3","3","46.6","46.6","1","1","1","4","1","1","1","4" +"3","3","46.7","46.7","1","1","1","3","1","1","1","3" +"3","3","46.9","46.9","1","1","1","1","1","1","1","1" +"3","3","47.1","47.1","1","1","1","1","1","1","1","1" +"3","3","47.2","47.2","1","1","1","6","1","1","1","6" +"3","3","47.3","47.3","1","1","1","1","1","1","1","1" +"3","3","47.5","47.5","1","1","1","4","1","1","1","4" +"3","3","47.6","47.6","1","1","1","4","1","1","1","4" +"3","3","47.7","47.7","1","1","1","9","1","1","1","9" +"3","3","47.8","47.8","1","1","1","2","1","1","1","2" +"3","3","47.9","47.9","1","1","1","1","1","1","1","1" +"3","3","49.2","49.2","1","1","1","1","1","1","1","1" +"3","3","49.3","49.3","1","1","1","3","1","1","1","3" +"3","3","49.4","49.4","1","1","1","2","1","1","1","2" +"3","3","49.5","49.5","1","1","1","1","1","1","1","1" +"3","3","50.1","50.1","1","1","1","1","1","1","1","1" +"3","3","50.2","50.2","1","1","1","1","1","1","1","1" +"3","3","50.3","50.3","1","1","1","1","1","1","1","1" +"3","3","50.4","50.4","1","1","1","1","1","1","1","1" +"3","3","51.1","51.1","1","1","1","1","1","1","1","1" +"3","3","51.2","51.2","1","1","1","2","1","1","1","2" +"3","3","52.1","52.1","1","1","1","1","1","1","1","1" +"3","3","52.2","52.2","1","1","1","4","1","1","1","4" +"3","3","53.1","53.1","1","1","1","1","1","1","1","1" +"3","3","53.2","53.2","1","1","1","1","1","1","1","1" +"3","3","55.1","55.1","1","1","1","1","1","1","1","1" +"3","3","55.2","55.2","1","1","1","1","1","1","1","1" +"3","3","55.3","55.3","1","1","1","1","1","1","1","1" +"3","3","55.9","55.9","1","1","1","1","1","1","1","1" +"3","3","56.2","56.2","1","1","1","1","1","1","1","1" +"3","3","56.3","56.3","1","1","1","1","1","1","1","1" +"3","3","58.1","58.1","1","1","1","4","1","1","1","4" +"3","3","58.2","58.2","1","1","1","2","1","1","1","2" +"3","3","59.1","59.1","1","1","1","4","1","1","1","4" +"3","3","59.2","59.2","1","1","1","1","1","1","1","1" +"3","3","60.1","60.1","1","1","1","1","1","1","1","1" +"3","3","60.2","60.2","1","1","1","1","1","1","1","1" +"3","3","61.1","61.1","1","1","1","1","1","1","1","1" +"3","3","61.2","61.2","1","1","1","1","1","1","1","1" +"3","3","61.9","61.9","1","1","1","1","1","1","1","1" +"3","3","63.9","63.9","1","1","1","1","1","1","1","1" +"3","3","64.1","64.1","1","1","1","2","1","1","1","2" +"3","3","64.9","64.9","1","1","1","3","1","1","1","3" +"3","3","65.1","65.1","1","1","1","2","1","1","1","2" +"3","3","65.2","65.2","1","1","1","1","1","1","1","1" +"3","3","65.3","65.3","1","1","1","1","1","1","1","1" +"3","3","66.1","66.1","1","1","1","3","1","1","1","3" +"3","3","66.2","66.2","1","1","1","3","1","1","1","3" +"3","3","66.3","66.3","1","1","1","1","1","1","1","1" +"3","3","68.2","68.2","1","1","1","1","1","1","1","1" +"3","3","68.3","68.3","1","1","1","2","1","1","1","2" +"3","3","69.1","69.1","1","1","1","1","1","1","1","1" +"3","3","69.2","69.2","1","1","1","1","1","1","1","1" +"3","3","70.1","70.1","1","1","1","1","1","1","1","1" +"3","3","71.1","71.1","1","1","1","2","1","1","1","2" +"3","3","71.2","71.2","1","1","1","1","1","1","1","1" +"3","3","72.2","72.2","1","1","1","1","1","1","1","1" +"3","3","73.1","73.1","1","1","1","2","1","1","1","2" +"3","3","73.2","73.2","1","1","1","1","1","1","1","1" +"3","3","74.2","74.2","1","1","1","1","1","1","1","1" +"3","3","74.3","74.3","1","1","1","1","1","1","1","1" +"3","3","75.0","75.0","1","1","1","1","1","1","1","1" +"3","3","77.1","77.1","1","1","1","2","1","1","1","2" +"3","3","77.2","77.2","1","1","1","2","1","1","1","2" +"3","3","77.3","77.3","1","1","1","6","1","1","1","6" +"3","3","77.4","77.4","1","1","1","1","1","1","1","1" +"3","3","78.1","78.1","1","1","1","1","1","1","1","1" +"3","3","78.2","78.2","1","1","1","1","1","1","1","1" +"3","3","79.1","79.1","1","1","1","2","1","1","1","2" +"3","3","79.9","79.9","1","1","1","1","1","1","1","1" +"3","3","81.1","81.1","1","1","1","1","1","1","1","1" +"3","3","81.2","81.2","1","1","1","2","1","1","1","2" +"3","3","81.3","81.3","1","1","1","1","1","1","1","1" +"3","3","82.2","82.2","1","1","1","1","1","1","1","1" +"3","3","82.3","82.3","1","1","1","1","1","1","1","1" +"3","3","82.9","82.9","1","1","1","3","1","1","1","3" +"3","3","84.1","84.1","1","1","1","3","1","1","1","3" +"3","3","84.2","84.2","1","1","1","5","1","1","1","5" +"3","3","84.3","84.3","1","1","1","1","1","1","1","1" +"3","3","85.1","85.1","1","1","1","1","1","1","1","1" +"3","3","85.2","85.2","1","1","1","1","1","1","1","1" +"3","3","85.3","85.3","1","1","1","2","1","1","1","2" +"3","3","85.5","85.5","1","1","1","4","1","1","1","4" +"3","3","86.1","86.1","1","1","1","1","1","1","1","1" +"3","3","86.2","86.2","1","1","1","3","1","1","1","3" +"3","3","87.1","87.1","1","1","1","1","1","1","1","1" +"3","3","87.2","87.2","1","1","1","1","1","1","1","1" +"3","3","87.3","87.3","1","1","1","1","1","1","1","1" +"3","3","88.1","88.1","1","1","1","1","1","1","1","1" +"3","3","88.9","88.9","1","1","1","2","1","1","1","2" +"3","3","92.0","92.0","1","1","1","1","1","1","1","1" +"3","3","93.1","93.1","1","1","1","4","1","1","1","4" +"3","3","93.2","93.2","1","1","1","2","1","1","1","2" +"3","3","94.1","94.1","1","1","1","2","1","1","1","2" +"3","3","94.2","94.2","1","1","1","1","1","1","1","1" +"3","3","94.9","94.9","1","1","1","3","1","1","1","3" +"3","3","95.2","95.2","1","1","1","6","1","1","1","6" +"3","3","97.0","97.0","1","1","1","1","1","1","1","1" +"3","3","98.1","98.1","1","1","1","1","1","1","1","1" +"3","3","98.2","98.2","1","1","1","1","1","1","1","1" +"3","3","99.0","99.0","1","1","1","1","1","1","1","1" +"3","4","01.1","01.11","1","1","1","1","1","1","1","1" +"3","4","01.1","01.12","1","1","1","1","1","1","1","1" +"3","4","01.1","01.13","1","1","1","1","1","1","1","1" +"3","4","01.1","01.14","1","1","1","1","1","1","1","1" +"3","4","01.1","01.15","1","1","1","1","1","1","1","1" +"3","4","01.1","01.16","1","1","1","1","1","1","1","1" +"3","4","01.1","01.19","1","1","1","1","1","1","1","1" +"3","4","01.2","01.21","1","1","1","1","1","1","1","1" +"3","4","01.2","01.22","1","1","1","1","1","1","1","1" +"3","4","01.2","01.23","1","1","1","1","1","1","1","1" +"3","4","01.2","01.24","1","1","1","1","1","1","1","1" +"3","4","01.2","01.25","1","1","1","1","1","1","1","1" +"3","4","01.2","01.26","1","1","1","1","1","1","1","1" +"3","4","01.2","01.27","1","1","1","1","1","1","1","1" +"3","4","01.2","01.28","1","1","1","1","1","1","1","1" +"3","4","01.2","01.29","1","1","1","1","1","1","1","1" +"3","4","01.3","01.30","1","1","1","1","1","1","1","1" +"3","4","01.4","01.41","1","1","1","1","1","1","1","1" +"3","4","01.4","01.42","1","1","1","1","1","1","1","1" +"3","4","01.4","01.43","1","1","1","1","1","1","1","1" +"3","4","01.4","01.44","1","1","1","1","1","1","1","1" +"3","4","01.4","01.45","1","1","1","1","1","1","1","1" +"3","4","01.4","01.46","1","1","1","1","1","1","1","1" +"3","4","01.4","01.47","1","1","1","1","1","1","1","1" +"3","4","01.5","01.50","1","1","1","1","1","1","1","1" +"3","4","01.6","01.61","1","1","1","1","1","1","1","1" +"3","4","01.6","01.62","1","1","1","1","1","1","1","1" +"3","4","01.6","01.63","1","1","1","1","1","1","1","1" +"3","4","01.7","01.70","1","1","1","1","1","1","1","1" +"3","4","02.1","02.10","1","1","1","1","1","1","1","1" +"3","4","02.2","02.20","1","1","1","1","1","1","1","1" +"3","4","02.3","02.30","1","1","1","1","1","1","1","1" +"3","4","02.4","02.40","1","1","1","1","1","1","1","1" +"3","4","03.1","03.11","1","1","1","1","1","1","1","1" +"3","4","03.1","03.12","1","1","1","1","1","1","1","1" +"3","4","03.2","03.21","1","1","1","1","1","1","1","1" +"3","4","03.2","03.22","1","1","1","1","1","1","1","1" +"3","4","05.1","05.10","1","1","1","1","1","1","1","1" +"3","4","05.2","05.20","1","1","1","1","1","1","1","1" +"3","4","06.1","06.10","1","1","1","1","1","1","1","1" +"3","4","06.2","06.20","1","1","1","1","1","1","1","1" +"3","4","07.1","07.10","1","1","1","1","1","1","1","1" +"3","4","07.2","07.21","1","1","1","1","1","1","1","1" +"3","4","07.2","07.29","1","1","1","1","1","1","1","1" +"3","4","08.1","08.11","1","1","1","1","1","1","1","1" +"3","4","08.1","08.12","1","1","1","1","1","1","1","1" +"3","4","08.9","08.91","1","1","1","1","1","1","1","1" +"3","4","08.9","08.92","1","1","1","1","1","1","1","1" +"3","4","08.9","08.93","1","1","1","1","1","1","1","1" +"3","4","08.9","08.99","1","1","1","1","1","1","1","1" +"3","4","09.1","09.10","1","1","1","1","1","1","1","1" +"3","4","09.9","09.90","1","1","1","1","1","1","1","1" +"3","4","10.1","10.11","1","1","1","1","1","1","1","1" +"3","4","10.1","10.12","1","1","1","1","1","1","1","1" +"3","4","10.1","10.13","1","1","1","1","1","1","1","1" +"3","4","10.2","10.20","1","1","1","1","1","1","1","1" +"3","4","10.3","10.31","1","1","1","1","1","1","1","1" +"3","4","10.3","10.32","1","1","1","1","1","1","1","1" +"3","4","10.3","10.39","1","1","1","1","1","1","1","1" +"3","4","10.4","10.41","1","1","1","1","1","1","1","1" +"3","4","10.4","10.42","1","1","1","1","1","1","1","1" +"3","4","10.5","10.51","1","1","1","1","1","1","1","1" +"3","4","10.5","10.52","1","1","1","1","1","1","1","1" +"3","4","10.6","10.61","1","1","1","1","1","1","1","1" +"3","4","10.6","10.62","1","1","1","1","1","1","1","1" +"3","4","10.7","10.71","1","1","1","1","1","1","1","1" +"3","4","10.7","10.72","1","1","1","1","1","1","1","1" +"3","4","10.7","10.73","1","1","1","1","1","1","1","1" +"3","4","10.8","10.81","1","1","1","1","1","1","1","1" +"3","4","10.8","10.82","1","1","1","1","1","1","1","1" +"3","4","10.8","10.83","1","1","1","1","1","1","1","1" +"3","4","10.8","10.84","1","1","1","1","1","1","1","1" +"3","4","10.8","10.85","1","1","1","1","1","1","1","1" +"3","4","10.8","10.86","1","1","1","1","1","1","1","1" +"3","4","10.8","10.89","1","1","1","1","1","1","1","1" +"3","4","10.9","10.91","1","1","1","1","1","1","1","1" +"3","4","10.9","10.92","1","1","1","1","1","1","1","1" +"3","4","11.0","11.01","1","1","1","1","1","1","1","1" +"3","4","11.0","11.02","1","1","1","1","1","1","1","1" +"3","4","11.0","11.03","1","1","1","1","1","1","1","1" +"3","4","11.0","11.04","1","1","1","1","1","1","1","1" +"3","4","11.0","11.05","1","1","1","1","1","1","1","1" +"3","4","11.0","11.06","1","1","1","1","1","1","1","1" +"3","4","11.0","11.07","1","1","1","1","1","1","1","1" +"3","4","12.0","12.00","1","1","1","1","1","1","1","1" +"3","4","13.1","13.10","1","1","1","1","1","1","1","1" +"3","4","13.2","13.20","1","1","1","1","1","1","1","1" +"3","4","13.3","13.30","1","1","1","1","1","1","1","1" +"3","4","13.9","13.91","1","1","1","1","1","1","1","1" +"3","4","13.9","13.92","1","1","1","1","1","1","1","1" +"3","4","13.9","13.93","1","1","1","1","1","1","1","1" +"3","4","13.9","13.94","1","1","1","1","1","1","1","1" +"3","4","13.9","13.95","1","1","1","1","1","1","1","1" +"3","4","13.9","13.96","1","1","1","1","1","1","1","1" +"3","4","13.9","13.99","1","1","1","1","1","1","1","1" +"3","4","15.1","15.11","1","1","1","1","1","1","1","1" +"3","4","15.1","15.12","1","1","1","1","1","1","1","1" +"3","4","15.2","15.20","1","1","1","1","1","1","1","1" +"3","4","16.2","16.21","1","1","1","1","1","1","1","1" +"3","4","16.2","16.22","1","1","1","1","1","1","1","1" +"3","4","16.2","16.23","1","1","1","1","1","1","1","1" +"3","4","16.2","16.24","1","1","1","1","1","1","1","1" +"3","4","17.1","17.11","1","1","1","1","1","1","1","1" +"3","4","17.1","17.12","1","1","1","1","1","1","1","1" +"3","4","17.2","17.21","1","1","1","1","1","1","1","1" +"3","4","17.2","17.22","1","1","1","1","1","1","1","1" +"3","4","17.2","17.23","1","1","1","1","1","1","1","1" +"3","4","17.2","17.24","1","1","1","1","1","1","1","1" +"3","4","18.1","18.11","1","1","1","1","1","1","1","1" +"3","4","18.1","18.12","1","1","1","1","1","1","1","1" +"3","4","18.1","18.13","1","1","1","1","1","1","1","1" +"3","4","18.1","18.14","1","1","1","1","1","1","1","1" +"3","4","18.2","18.20","1","1","1","1","1","1","1","1" +"3","4","19.1","19.10","1","1","1","1","1","1","1","1" +"3","4","19.2","19.20","1","1","1","1","1","1","1","1" +"3","4","20.1","20.11","1","1","1","1","1","1","1","1" +"3","4","20.1","20.12","1","1","1","1","1","1","1","1" +"3","4","20.1","20.13","1","1","1","1","1","1","1","1" +"3","4","20.1","20.14","1","1","1","1","1","1","1","1" +"3","4","20.1","20.15","1","1","1","1","1","1","1","1" +"3","4","20.1","20.16","1","1","1","1","1","1","1","1" +"3","4","20.1","20.17","1","1","1","1","1","1","1","1" +"3","4","20.2","20.20","1","1","1","1","1","1","1","1" +"3","4","20.3","20.30","1","1","1","1","1","1","1","1" +"3","4","20.4","20.41","1","1","1","1","1","1","1","1" +"3","4","20.4","20.42","1","1","1","1","1","1","1","1" +"3","4","20.5","20.51","1","1","1","1","1","1","1","1" +"3","4","20.5","20.59","1","1","1","1","1","1","1","1" +"3","4","20.6","20.60","1","1","1","1","1","1","1","1" +"3","4","21.1","21.10","1","1","1","1","1","1","1","1" +"3","4","21.2","21.20","1","1","1","1","1","1","1","1" +"3","4","22.1","22.11","1","1","1","1","1","1","1","1" +"3","4","22.2","22.21","1","1","1","1","1","1","1","1" +"3","4","22.2","22.22","1","1","1","1","1","1","1","1" +"3","4","22.2","22.23","1","1","1","1","1","1","1","1" +"3","4","23.1","23.11","1","1","1","1","1","1","1","1" +"3","4","23.1","23.12","1","1","1","1","1","1","1","1" +"3","4","23.1","23.13","1","1","1","1","1","1","1","1" +"3","4","23.1","23.14","1","1","1","1","1","1","1","1" +"3","4","23.2","23.20","1","1","1","1","1","1","1","1" +"3","4","23.3","23.31","1","1","1","1","1","1","1","1" +"3","4","23.3","23.32","1","1","1","1","1","1","1","1" +"3","4","23.4","23.41","1","1","1","1","1","1","1","1" +"3","4","23.4","23.42","1","1","1","1","1","1","1","1" +"3","4","23.4","23.43","1","1","1","1","1","1","1","1" +"3","4","23.4","23.44","1","1","1","1","1","1","1","1" +"3","4","23.5","23.51","1","1","1","1","1","1","1","1" +"3","4","23.5","23.52","1","1","1","1","1","1","1","1" +"3","4","23.6","23.61","1","1","1","1","1","1","1","1" +"3","4","23.6","23.62","1","1","1","1","1","1","1","1" +"3","4","23.6","23.63","1","1","1","1","1","1","1","1" +"3","4","23.6","23.64","1","1","1","1","1","1","1","1" +"3","4","23.6","23.65","1","1","1","1","1","1","1","1" +"3","4","23.7","23.70","1","1","1","1","1","1","1","1" +"3","4","23.9","23.91","1","1","1","1","1","1","1","1" +"3","4","23.9","23.99","1","1","1","1","1","1","1","1" +"3","4","24.1","24.10","1","1","1","1","1","1","1","1" +"3","4","24.2","24.20","1","1","1","1","1","1","1","1" +"3","4","24.3","24.31","1","1","1","1","1","1","1","1" +"3","4","24.3","24.32","1","1","1","1","1","1","1","1" +"3","4","24.3","24.33","1","1","1","1","1","1","1","1" +"3","4","24.3","24.34","1","1","1","1","1","1","1","1" +"3","4","24.4","24.41","1","1","1","1","1","1","1","1" +"3","4","24.4","24.42","1","1","1","1","1","1","1","1" +"3","4","24.4","24.43","1","1","1","1","1","1","1","1" +"3","4","24.4","24.44","1","1","1","1","1","1","1","1" +"3","4","24.4","24.45","1","1","1","1","1","1","1","1" +"3","4","24.4","24.46","1","1","1","1","1","1","1","1" +"3","4","24.5","24.51","1","1","1","1","1","1","1","1" +"3","4","24.5","24.52","1","1","1","1","1","1","1","1" +"3","4","24.5","24.53","1","1","1","1","1","1","1","1" +"3","4","24.5","24.54","1","1","1","1","1","1","1","1" +"3","4","25.1","25.11","1","1","1","1","1","1","1","1" +"3","4","25.1","25.12","1","1","1","1","1","1","1","1" +"3","4","25.2","25.21","1","1","1","1","1","1","1","1" +"3","4","25.3","25.30","1","1","1","1","1","1","1","1" +"3","4","25.4","25.40","1","1","1","1","1","1","1","1" +"3","4","25.6","25.61","1","1","1","1","1","1","1","1" +"3","4","25.6","25.62","1","1","1","1","1","1","1","1" +"3","4","25.9","25.91","1","1","1","1","1","1","1","1" +"3","4","25.9","25.92","1","1","1","1","1","1","1","1" +"3","4","25.9","25.93","1","1","1","1","1","1","1","1" +"3","4","25.9","25.94","1","1","1","1","1","1","1","1" +"3","4","25.9","25.99","1","1","1","1","1","1","1","1" +"3","4","26.1","26.11","1","1","1","1","1","1","1","1" +"3","4","26.1","26.12","1","1","1","1","1","1","1","1" +"3","4","26.2","26.20","1","1","1","1","1","1","1","1" +"3","4","26.3","26.30","1","1","1","1","1","1","1","1" +"3","4","26.4","26.40","1","1","1","1","1","1","1","1" +"3","4","26.5","26.51","1","1","1","1","1","1","1","1" +"3","4","26.5","26.52","1","1","1","1","1","1","1","1" +"3","4","26.6","26.60","1","1","1","1","1","1","1","1" +"3","4","26.7","26.70","1","1","1","1","1","1","1","1" +"3","4","27.1","27.11","1","1","1","1","1","1","1","1" +"3","4","27.1","27.12","1","1","1","1","1","1","1","1" +"3","4","27.2","27.20","1","1","1","1","1","1","1","1" +"3","4","27.3","27.31","1","1","1","1","1","1","1","1" +"3","4","27.3","27.32","1","1","1","1","1","1","1","1" +"3","4","27.3","27.33","1","1","1","1","1","1","1","1" +"3","4","27.4","27.40","1","1","1","1","1","1","1","1" +"3","4","27.5","27.51","1","1","1","1","1","1","1","1" +"3","4","27.5","27.52","1","1","1","1","1","1","1","1" +"3","4","27.9","27.90","1","1","1","1","1","1","1","1" +"3","4","28.1","28.11","1","1","1","1","1","1","1","1" +"3","4","28.1","28.12","1","1","1","1","1","1","1","1" +"3","4","28.1","28.13","1","1","1","1","1","1","1","1" +"3","4","28.1","28.14","1","1","1","1","1","1","1","1" +"3","4","28.1","28.15","1","1","1","1","1","1","1","1" +"3","4","28.2","28.21","1","1","1","1","1","1","1","1" +"3","4","28.2","28.22","1","1","1","1","1","1","1","1" +"3","4","28.2","28.23","1","1","1","1","1","1","1","1" +"3","4","28.2","28.24","1","1","1","1","1","1","1","1" +"3","4","28.2","28.25","1","1","1","1","1","1","1","1" +"3","4","28.2","28.29","1","1","1","1","1","1","1","1" +"3","4","28.3","28.30","1","1","1","1","1","1","1","1" +"3","4","28.4","28.41","1","1","1","1","1","1","1","1" +"3","4","28.9","28.91","1","1","1","1","1","1","1","1" +"3","4","28.9","28.92","1","1","1","1","1","1","1","1" +"3","4","28.9","28.93","1","1","1","1","1","1","1","1" +"3","4","28.9","28.94","1","1","1","1","1","1","1","1" +"3","4","28.9","28.95","1","1","1","1","1","1","1","1" +"3","4","28.9","28.96","1","1","1","1","1","1","1","1" +"3","4","28.9","28.99","1","1","1","1","1","1","1","1" +"3","4","29.1","29.10","1","1","1","1","1","1","1","1" +"3","4","29.2","29.20","1","1","1","1","1","1","1","1" +"3","4","29.3","29.31","1","1","1","1","1","1","1","1" +"3","4","29.3","29.32","1","1","1","1","1","1","1","1" +"3","4","30.1","30.11","1","1","1","1","1","1","1","1" +"3","4","30.1","30.12","1","1","1","1","1","1","1","1" +"3","4","30.2","30.20","1","1","1","1","1","1","1","1" +"3","4","30.4","30.40","1","1","1","1","1","1","1","1" +"3","4","30.9","30.91","1","1","1","1","1","1","1","1" +"3","4","30.9","30.92","1","1","1","1","1","1","1","1" +"3","4","30.9","30.99","1","1","1","1","1","1","1","1" +"3","4","32.1","32.11","1","1","1","1","1","1","1","1" +"3","4","32.1","32.12","1","1","1","1","1","1","1","1" +"3","4","32.1","32.13","1","1","1","1","1","1","1","1" +"3","4","32.2","32.20","1","1","1","1","1","1","1","1" +"3","4","32.3","32.30","1","1","1","1","1","1","1","1" +"3","4","32.4","32.40","1","1","1","1","1","1","1","1" +"3","4","32.5","32.50","1","1","1","1","1","1","1","1" +"3","4","32.9","32.91","1","1","1","1","1","1","1","1" +"3","4","32.9","32.99","1","1","1","1","1","1","1","1" +"3","4","33.1","33.11","1","1","1","1","1","1","1","1" +"3","4","33.1","33.12","1","1","1","1","1","1","1","1" +"3","4","33.1","33.13","1","1","1","1","1","1","1","1" +"3","4","33.1","33.14","1","1","1","1","1","1","1","1" +"3","4","33.1","33.15","1","1","1","1","1","1","1","1" +"3","4","33.1","33.16","1","1","1","1","1","1","1","1" +"3","4","33.1","33.17","1","1","1","1","1","1","1","1" +"3","4","33.1","33.19","1","1","1","1","1","1","1","1" +"3","4","33.2","33.20","1","1","1","1","1","1","1","1" +"3","4","35.1","35.11","1","1","1","1","1","1","1","1" +"3","4","35.1","35.12","1","1","1","1","1","1","1","1" +"3","4","35.1","35.13","1","1","1","1","1","1","1","1" +"3","4","35.1","35.14","1","1","1","1","1","1","1","1" +"3","4","35.2","35.21","1","1","1","1","1","1","1","1" +"3","4","35.2","35.22","1","1","1","1","1","1","1","1" +"3","4","35.2","35.23","1","1","1","1","1","1","1","1" +"3","4","35.3","35.30","1","1","1","1","1","1","1","1" +"3","4","36.0","36.00","1","1","1","1","1","1","1","1" +"3","4","37.0","37.00","1","1","1","1","1","1","1","1" +"3","4","38.1","38.11","1","1","1","1","1","1","1","1" +"3","4","38.1","38.12","1","1","1","1","1","1","1","1" +"3","4","38.2","38.21","1","1","1","1","1","1","1","1" +"3","4","38.2","38.22","1","1","1","1","1","1","1","1" +"3","4","38.3","38.31","1","1","1","1","1","1","1","1" +"3","4","38.3","38.32","1","1","1","1","1","1","1","1" +"3","4","39.0","39.00","1","1","1","1","1","1","1","1" +"3","4","42.1","42.11","1","1","1","1","1","1","1","1" +"3","4","42.1","42.12","1","1","1","1","1","1","1","1" +"3","4","42.1","42.13","1","1","1","1","1","1","1","1" +"3","4","42.2","42.21","1","1","1","1","1","1","1","1" +"3","4","42.2","42.22","1","1","1","1","1","1","1","1" +"3","4","42.9","42.91","1","1","1","1","1","1","1","1" +"3","4","42.9","42.99","1","1","1","1","1","1","1","1" +"3","4","43.1","43.11","1","1","1","1","1","1","1","1" +"3","4","43.1","43.12","1","1","1","1","1","1","1","1" +"3","4","43.1","43.13","1","1","1","1","1","1","1","1" +"3","4","43.2","43.21","1","1","1","1","1","1","1","1" +"3","4","43.2","43.22","1","1","1","1","1","1","1","1" +"3","4","43.3","43.31","1","1","1","1","1","1","1","1" +"3","4","43.3","43.32","1","1","1","1","1","1","1","1" +"3","4","43.3","43.33","1","1","1","1","1","1","1","1" +"3","4","43.3","43.34","1","1","1","1","1","1","1","1" +"3","4","43.9","43.91","1","1","1","1","1","1","1","1" +"3","4","43.9","43.99","1","1","1","1","1","1","1","1" +"3","4","46.1","46.11","1","1","1","1","1","1","1","1" +"3","4","46.1","46.12","1","1","1","1","1","1","1","1" +"3","4","46.1","46.13","1","1","1","1","1","1","1","1" +"3","4","46.1","46.14","1","1","1","1","1","1","1","1" +"3","4","46.1","46.15","1","1","1","1","1","1","1","1" +"3","4","46.1","46.16","1","1","1","1","1","1","1","1" +"3","4","46.1","46.17","1","1","1","1","1","1","1","1" +"3","4","46.1","46.18","1","1","1","1","1","1","1","1" +"3","4","46.1","46.19","1","1","1","1","1","1","1","1" +"3","4","46.2","46.21","1","1","1","1","1","1","1","1" +"3","4","46.2","46.22","1","1","1","1","1","1","1","1" +"3","4","46.2","46.23","1","1","1","1","1","1","1","1" +"3","4","46.2","46.24","1","1","1","1","1","1","1","1" +"3","4","46.3","46.31","1","1","1","1","1","1","1","1" +"3","4","46.3","46.32","1","1","1","1","1","1","1","1" +"3","4","46.3","46.33","1","1","1","1","1","1","1","1" +"3","4","46.3","46.34","1","1","1","1","1","1","1","1" +"3","4","46.3","46.35","1","1","1","1","1","1","1","1" +"3","4","46.3","46.36","1","1","1","1","1","1","1","1" +"3","4","46.3","46.37","1","1","1","1","1","1","1","1" +"3","4","46.3","46.38","1","1","1","1","1","1","1","1" +"3","4","46.3","46.39","1","1","1","1","1","1","1","1" +"3","4","46.4","46.41","1","1","1","1","1","1","1","1" +"3","4","46.4","46.42","1","1","1","1","1","1","1","1" +"3","4","46.4","46.43","1","1","1","1","1","1","1","1" +"3","4","46.4","46.44","1","1","1","1","1","1","1","1" +"3","4","46.4","46.45","1","1","1","1","1","1","1","1" +"3","4","46.4","46.46","1","1","1","1","1","1","1","1" +"3","4","46.4","46.47","1","1","1","1","1","1","1","1" +"3","4","46.4","46.48","1","1","1","1","1","1","1","1" +"3","4","46.4","46.49","1","1","1","1","1","1","1","1" +"3","4","46.6","46.61","1","1","1","1","1","1","1","1" +"3","4","46.6","46.62","1","1","1","1","1","1","1","1" +"3","4","46.6","46.63","1","1","1","1","1","1","1","1" +"3","4","46.6","46.64","1","1","1","1","1","1","1","1" +"3","4","46.7","46.71","1","1","1","1","1","1","1","1" +"3","4","46.7","46.72","1","1","1","1","1","1","1","1" +"3","4","46.7","46.73","1","1","1","1","1","1","1","1" +"3","4","46.9","46.90","1","1","1","1","1","1","1","1" +"3","4","47.1","47.11","1","1","1","1","1","1","1","1" +"3","4","47.2","47.21","1","1","1","1","1","1","1","1" +"3","4","47.2","47.22","1","1","1","1","1","1","1","1" +"3","4","47.2","47.23","1","1","1","1","1","1","1","1" +"3","4","47.2","47.24","1","1","1","1","1","1","1","1" +"3","4","47.2","47.25","1","1","1","1","1","1","1","1" +"3","4","47.2","47.26","1","1","1","1","1","1","1","1" +"3","4","47.3","47.30","1","1","1","1","1","1","1","1" +"3","4","47.5","47.51","1","1","1","1","1","1","1","1" +"3","4","47.5","47.52","1","1","1","1","1","1","1","1" +"3","4","47.5","47.53","1","1","1","1","1","1","1","1" +"3","4","47.5","47.54","1","1","1","1","1","1","1","1" +"3","4","47.6","47.61","1","1","1","1","1","1","1","1" +"3","4","47.6","47.62","1","1","1","1","1","1","1","1" +"3","4","47.6","47.63","1","1","1","1","1","1","1","1" +"3","4","47.6","47.64","1","1","1","1","1","1","1","1" +"3","4","47.7","47.71","1","1","1","1","1","1","1","1" +"3","4","47.7","47.72","1","1","1","1","1","1","1","1" +"3","4","47.7","47.73","1","1","1","1","1","1","1","1" +"3","4","47.7","47.74","1","1","1","1","1","1","1","1" +"3","4","47.7","47.75","1","1","1","1","1","1","1","1" +"3","4","47.7","47.76","1","1","1","1","1","1","1","1" +"3","4","47.7","47.77","1","1","1","1","1","1","1","1" +"3","4","47.7","47.78","1","1","1","1","1","1","1","1" +"3","4","47.7","47.79","1","1","1","1","1","1","1","1" +"3","4","47.8","47.81","1","1","1","1","1","1","1","1" +"3","4","47.8","47.82","1","1","1","1","1","1","1","1" +"3","4","47.9","47.91","1","1","1","1","1","1","1","1" +"3","4","49.2","49.20","1","1","1","1","1","1","1","1" +"3","4","49.3","49.31","1","1","1","1","1","1","1","1" +"3","4","49.3","49.32","1","1","1","1","1","1","1","1" +"3","4","49.3","49.39","1","1","1","1","1","1","1","1" +"3","4","49.4","49.41","1","1","1","1","1","1","1","1" +"3","4","49.4","49.42","1","1","1","1","1","1","1","1" +"3","4","49.5","49.50","1","1","1","1","1","1","1","1" +"3","4","50.1","50.10","1","1","1","1","1","1","1","1" +"3","4","50.2","50.20","1","1","1","1","1","1","1","1" +"3","4","50.3","50.30","1","1","1","1","1","1","1","1" +"3","4","50.4","50.40","1","1","1","1","1","1","1","1" +"3","4","51.1","51.10","1","1","1","1","1","1","1","1" +"3","4","51.2","51.21","1","1","1","1","1","1","1","1" +"3","4","51.2","51.22","1","1","1","1","1","1","1","1" +"3","4","52.1","52.10","1","1","1","1","1","1","1","1" +"3","4","52.2","52.21","1","1","1","1","1","1","1","1" +"3","4","52.2","52.22","1","1","1","1","1","1","1","1" +"3","4","52.2","52.23","1","1","1","1","1","1","1","1" +"3","4","52.2","52.24","1","1","1","1","1","1","1","1" +"3","4","53.1","53.10","1","1","1","1","1","1","1","1" +"3","4","53.2","53.20","1","1","1","1","1","1","1","1" +"3","4","55.1","55.10","1","1","1","1","1","1","1","1" +"3","4","55.2","55.20","1","1","1","1","1","1","1","1" +"3","4","55.3","55.30","1","1","1","1","1","1","1","1" +"3","4","55.9","55.90","1","1","1","1","1","1","1","1" +"3","4","56.2","56.21","1","1","1","1","1","1","1","1" +"3","4","56.3","56.30","1","1","1","1","1","1","1","1" +"3","4","58.1","58.11","1","1","1","1","1","1","1","1" +"3","4","58.1","58.12","1","1","1","1","1","1","1","1" +"3","4","58.1","58.13","1","1","1","1","1","1","1","1" +"3","4","58.1","58.19","1","1","1","1","1","1","1","1" +"3","4","58.2","58.21","1","1","1","1","1","1","1","1" +"3","4","58.2","58.29","1","1","1","1","1","1","1","1" +"3","4","59.1","59.11","1","1","1","1","1","1","1","1" +"3","4","59.1","59.12","1","1","1","1","1","1","1","1" +"3","4","59.1","59.13","1","1","1","1","1","1","1","1" +"3","4","59.1","59.14","1","1","1","1","1","1","1","1" +"3","4","59.2","59.20","1","1","1","1","1","1","1","1" +"3","4","60.1","60.10","1","1","1","1","1","1","1","1" +"3","4","60.2","60.20","1","1","1","1","1","1","1","1" +"3","4","61.1","61.10","1","1","1","1","1","1","1","1" +"3","4","61.2","61.20","1","1","1","1","1","1","1","1" +"3","4","61.9","61.90","1","1","1","1","1","1","1","1" +"3","4","63.9","63.91","1","1","1","1","1","1","1","1" +"3","4","64.1","64.11","1","1","1","1","1","1","1","1" +"3","4","64.1","64.19","1","1","1","1","1","1","1","1" +"3","4","64.9","64.91","1","1","1","1","1","1","1","1" +"3","4","64.9","64.92","1","1","1","1","1","1","1","1" +"3","4","64.9","64.99","1","1","1","1","1","1","1","1" +"3","4","65.1","65.11","1","1","1","1","1","1","1","1" +"3","4","65.1","65.12","1","1","1","1","1","1","1","1" +"3","4","65.2","65.20","1","1","1","1","1","1","1","1" +"3","4","65.3","65.30","1","1","1","1","1","1","1","1" +"3","4","66.1","66.11","1","1","1","1","1","1","1","1" +"3","4","66.1","66.12","1","1","1","1","1","1","1","1" +"3","4","66.1","66.19","1","1","1","1","1","1","1","1" +"3","4","66.2","66.21","1","1","1","1","1","1","1","1" +"3","4","66.2","66.22","1","1","1","1","1","1","1","1" +"3","4","66.2","66.29","1","1","1","1","1","1","1","1" +"3","4","66.3","66.30","1","1","1","1","1","1","1","1" +"3","4","68.2","68.20","1","1","1","1","1","1","1","1" +"3","4","68.3","68.31","1","1","1","1","1","1","1","1" +"3","4","68.3","68.32","1","1","1","1","1","1","1","1" +"3","4","69.1","69.10","1","1","1","1","1","1","1","1" +"3","4","69.2","69.20","1","1","1","1","1","1","1","1" +"3","4","70.1","70.10","1","1","1","1","1","1","1","1" +"3","4","71.1","71.11","1","1","1","1","1","1","1","1" +"3","4","71.1","71.12","1","1","1","1","1","1","1","1" +"3","4","71.2","71.20","1","1","1","1","1","1","1","1" +"3","4","72.2","72.20","1","1","1","1","1","1","1","1" +"3","4","73.1","73.11","1","1","1","1","1","1","1","1" +"3","4","73.1","73.12","1","1","1","1","1","1","1","1" +"3","4","73.2","73.20","1","1","1","1","1","1","1","1" +"3","4","74.2","74.20","1","1","1","1","1","1","1","1" +"3","4","74.3","74.30","1","1","1","1","1","1","1","1" +"3","4","75.0","75.00","1","1","1","1","1","1","1","1" +"3","4","77.1","77.11","1","1","1","1","1","1","1","1" +"3","4","77.1","77.12","1","1","1","1","1","1","1","1" +"3","4","77.2","77.21","1","1","1","1","1","1","1","1" +"3","4","77.2","77.22","1","1","1","1","1","1","1","1" +"3","4","77.3","77.31","1","1","1","1","1","1","1","1" +"3","4","77.3","77.32","1","1","1","1","1","1","1","1" +"3","4","77.3","77.33","1","1","1","1","1","1","1","1" +"3","4","77.3","77.34","1","1","1","1","1","1","1","1" +"3","4","77.3","77.35","1","1","1","1","1","1","1","1" +"3","4","77.3","77.39","1","1","1","1","1","1","1","1" +"3","4","77.4","77.40","1","1","1","1","1","1","1","1" +"3","4","78.1","78.10","1","1","1","1","1","1","1","1" +"3","4","78.2","78.20","1","1","1","1","1","1","1","1" +"3","4","79.1","79.11","1","1","1","1","1","1","1","1" +"3","4","79.1","79.12","1","1","1","1","1","1","1","1" +"3","4","79.9","79.90","1","1","1","1","1","1","1","1" +"3","4","81.1","81.10","1","1","1","1","1","1","1","1" +"3","4","81.2","81.21","1","1","1","1","1","1","1","1" +"3","4","81.2","81.22","1","1","1","1","1","1","1","1" +"3","4","81.3","81.30","1","1","1","1","1","1","1","1" +"3","4","82.2","82.20","1","1","1","1","1","1","1","1" +"3","4","82.3","82.30","1","1","1","1","1","1","1","1" +"3","4","82.9","82.91","1","1","1","1","1","1","1","1" +"3","4","82.9","82.92","1","1","1","1","1","1","1","1" +"3","4","82.9","82.99","1","1","1","1","1","1","1","1" +"3","4","84.1","84.11","1","1","1","1","1","1","1","1" +"3","4","84.1","84.12","1","1","1","1","1","1","1","1" +"3","4","84.1","84.13","1","1","1","1","1","1","1","1" +"3","4","84.2","84.21","1","1","1","1","1","1","1","1" +"3","4","84.2","84.22","1","1","1","1","1","1","1","1" +"3","4","84.2","84.23","1","1","1","1","1","1","1","1" +"3","4","84.2","84.24","1","1","1","1","1","1","1","1" +"3","4","84.2","84.25","1","1","1","1","1","1","1","1" +"3","4","84.3","84.30","1","1","1","1","1","1","1","1" +"3","4","85.1","85.10","1","1","1","1","1","1","1","1" +"3","4","85.2","85.20","1","1","1","1","1","1","1","1" +"3","4","85.3","85.31","1","1","1","1","1","1","1","1" +"3","4","85.3","85.32","1","1","1","1","1","1","1","1" +"3","4","85.5","85.51","1","1","1","1","1","1","1","1" +"3","4","85.5","85.52","1","1","1","1","1","1","1","1" +"3","4","85.5","85.53","1","1","1","1","1","1","1","1" +"3","4","85.5","85.59","1","1","1","1","1","1","1","1" +"3","4","86.1","86.10","1","1","1","1","1","1","1","1" +"3","4","86.2","86.21","1","1","1","1","1","1","1","1" +"3","4","86.2","86.22","1","1","1","1","1","1","1","1" +"3","4","86.2","86.23","1","1","1","1","1","1","1","1" +"3","4","87.1","87.10","1","1","1","1","1","1","1","1" +"3","4","87.2","87.20","1","1","1","1","1","1","1","1" +"3","4","87.3","87.30","1","1","1","1","1","1","1","1" +"3","4","88.1","88.10","1","1","1","1","1","1","1","1" +"3","4","88.9","88.91","1","1","1","1","1","1","1","1" +"3","4","88.9","88.99","1","1","1","1","1","1","1","1" +"3","4","92.0","92.00","1","1","1","1","1","1","1","1" +"3","4","93.1","93.11","1","1","1","1","1","1","1","1" +"3","4","93.1","93.12","1","1","1","1","1","1","1","1" +"3","4","93.1","93.13","1","1","1","1","1","1","1","1" +"3","4","93.1","93.19","1","1","1","1","1","1","1","1" +"3","4","93.2","93.21","1","1","1","1","1","1","1","1" +"3","4","93.2","93.29","1","1","1","1","1","1","1","1" +"3","4","94.1","94.11","1","1","1","1","1","1","1","1" +"3","4","94.1","94.12","1","1","1","1","1","1","1","1" +"3","4","94.2","94.20","1","1","1","1","1","1","1","1" +"3","4","94.9","94.91","1","1","1","1","1","1","1","1" +"3","4","94.9","94.92","1","1","1","1","1","1","1","1" +"3","4","94.9","94.99","1","1","1","1","1","1","1","1" +"3","4","95.2","95.21","1","1","1","1","1","1","1","1" +"3","4","95.2","95.22","1","1","1","1","1","1","1","1" +"3","4","95.2","95.23","1","1","1","1","1","1","1","1" +"3","4","95.2","95.24","1","1","1","1","1","1","1","1" +"3","4","95.2","95.25","1","1","1","1","1","1","1","1" +"3","4","95.2","95.29","1","1","1","1","1","1","1","1" +"3","4","97.0","97.00","1","1","1","1","1","1","1","1" +"3","4","98.1","98.10","1","1","1","1","1","1","1","1" +"3","4","98.2","98.20","1","1","1","1","1","1","1","1" +"3","4","99.0","99.00","1","1","1","1","1","1","1","1" +"4","1","01.11","A","1","1","1","1","1","1","1","1" +"4","1","01.12","A","1","1","1","1","1","1","1","1" +"4","1","01.13","A","1","1","1","1","1","1","1","1" +"4","1","01.14","A","1","1","1","1","1","1","1","1" +"4","1","01.15","A","1","1","1","1","1","1","1","1" +"4","1","01.16","A","1","1","1","1","1","1","1","1" +"4","1","01.19","A","1","1","1","1","1","1","1","1" +"4","1","01.21","A","1","1","1","1","1","1","1","1" +"4","1","01.22","A","1","1","1","1","1","1","1","1" +"4","1","01.23","A","1","1","1","1","1","1","1","1" +"4","1","01.24","A","1","1","1","1","1","1","1","1" +"4","1","01.25","A","1","1","1","1","1","1","1","1" +"4","1","01.26","A","1","1","1","1","1","1","1","1" +"4","1","01.27","A","1","1","1","1","1","1","1","1" +"4","1","01.28","A","1","1","1","1","1","1","1","1" +"4","1","01.29","A","1","1","1","1","1","1","1","1" +"4","1","01.30","A","1","1","1","1","1","1","1","1" +"4","1","01.41","A","1","1","1","1","1","1","1","1" +"4","1","01.42","A","1","1","1","1","1","1","1","1" +"4","1","01.43","A","1","1","1","1","1","1","1","1" +"4","1","01.44","A","1","1","1","1","1","1","1","1" +"4","1","01.45","A","1","1","1","1","1","1","1","1" +"4","1","01.46","A","1","1","1","1","1","1","1","1" +"4","1","01.47","A","1","1","1","1","1","1","1","1" +"4","1","01.50","A","1","1","1","1","1","1","1","1" +"4","1","01.61","A","1","1","1","1","1","1","1","1" +"4","1","01.62","A","1","1","1","1","1","1","1","1" +"4","1","01.63","A","1","1","1","1","1","1","1","1" +"4","1","01.70","A","1","1","1","1","1","1","1","1" +"4","1","02.10","A","1","1","1","1","1","1","1","1" +"4","1","02.20","A","1","1","1","1","1","1","1","1" +"4","1","02.30","A","1","1","1","1","1","1","1","1" +"4","1","02.40","A","1","1","1","1","1","1","1","1" +"4","1","03.11","A","1","1","1","1","1","1","1","1" +"4","1","03.12","A","1","1","1","1","1","1","1","1" +"4","1","03.21","A","1","1","1","1","1","1","1","1" +"4","1","03.22","A","1","1","1","1","1","1","1","1" +"4","1","05.10","B","1","1","1","1","1","1","1","1" +"4","1","05.20","B","1","1","1","1","1","1","1","1" +"4","1","06.10","B","1","1","1","1","1","1","1","1" +"4","1","06.20","B","1","1","1","1","1","1","1","1" +"4","1","07.10","B","1","1","1","1","1","1","1","1" +"4","1","07.21","B","1","1","1","1","1","1","1","1" +"4","1","07.29","B","1","1","1","1","1","1","1","1" +"4","1","08.11","B","1","1","1","1","1","1","1","1" +"4","1","08.12","B","1","1","1","1","1","1","1","1" +"4","1","08.91","B","1","1","1","1","1","1","1","1" +"4","1","08.92","B","1","1","1","1","1","1","1","1" +"4","1","08.93","B","1","1","1","1","1","1","1","1" +"4","1","08.99","B","1","1","1","1","1","1","1","1" +"4","1","09.10","B","1","1","1","1","1","1","1","1" +"4","1","09.90","B","1","1","1","1","1","1","1","1" +"4","1","10.11","C","1","1","1","1","1","1","1","1" +"4","1","10.12","C","1","1","1","1","1","1","1","1" +"4","1","10.13","C","1","1","1","1","1","1","1","1" +"4","1","10.20","C","1","1","1","1","1","1","1","1" +"4","1","10.31","C","1","1","1","1","1","1","1","1" +"4","1","10.32","C","1","1","1","1","1","1","1","1" +"4","1","10.39","C","1","1","1","1","1","1","1","1" +"4","1","10.41","C","1","1","1","1","1","1","1","1" +"4","1","10.42","C","1","1","1","1","1","1","1","1" +"4","1","10.51","C","1","1","1","1","1","1","1","1" +"4","1","10.52","C","1","1","1","1","1","1","1","1" +"4","1","10.61","C","1","1","1","1","1","1","1","1" +"4","1","10.62","C","1","1","1","1","1","1","1","1" +"4","1","10.71","C","1","1","1","1","1","1","1","1" +"4","1","10.72","C","1","1","1","1","1","1","1","1" +"4","1","10.73","C","1","1","1","1","1","1","1","1" +"4","1","10.81","C","1","1","1","1","1","1","1","1" +"4","1","10.82","C","1","1","1","1","1","1","1","1" +"4","1","10.83","C","1","1","1","1","1","1","1","1" +"4","1","10.84","C","1","1","1","1","1","1","1","1" +"4","1","10.85","C","1","1","1","1","1","1","1","1" +"4","1","10.86","C","1","1","1","1","1","1","1","1" +"4","1","10.89","C","1","1","1","1","1","1","1","1" +"4","1","10.91","C","1","1","1","1","1","1","1","1" +"4","1","10.92","C","1","1","1","1","1","1","1","1" +"4","1","11.01","C","1","1","1","1","1","1","1","1" +"4","1","11.02","C","1","1","1","1","1","1","1","1" +"4","1","11.03","C","1","1","1","1","1","1","1","1" +"4","1","11.04","C","1","1","1","1","1","1","1","1" +"4","1","11.05","C","1","1","1","1","1","1","1","1" +"4","1","11.06","C","1","1","1","1","1","1","1","1" +"4","1","11.07","C","1","1","1","1","1","1","1","1" +"4","1","12.00","C","1","1","1","1","1","1","1","1" +"4","1","13.10","C","1","1","1","1","1","1","1","1" +"4","1","13.20","C","1","1","1","1","1","1","1","1" +"4","1","13.30","C","1","1","1","1","1","1","1","1" +"4","1","13.91","C","1","1","1","1","1","1","1","1" +"4","1","13.92","C","1","1","1","1","1","1","1","1" +"4","1","13.93","C","1","1","1","1","1","1","1","1" +"4","1","13.94","C","1","1","1","1","1","1","1","1" +"4","1","13.95","C","1","1","1","1","1","1","1","1" +"4","1","13.96","C","1","1","1","1","1","1","1","1" +"4","1","13.99","C","1","1","1","1","1","1","1","1" +"4","1","15.11","C","1","1","1","1","1","1","1","1" +"4","1","15.12","C","1","1","1","1","1","1","1","1" +"4","1","15.20","C","1","1","1","1","1","1","1","1" +"4","1","16.21","C","1","1","1","1","1","1","1","1" +"4","1","16.22","C","1","1","1","1","1","1","1","1" +"4","1","16.23","C","1","1","1","1","1","1","1","1" +"4","1","16.24","C","1","1","1","1","1","1","1","1" +"4","1","17.11","C","1","1","1","1","1","1","1","1" +"4","1","17.12","C","1","1","1","1","1","1","1","1" +"4","1","17.21","C","1","1","1","1","1","1","1","1" +"4","1","17.22","C","1","1","1","1","1","1","1","1" +"4","1","17.23","C","1","1","1","1","1","1","1","1" +"4","1","17.24","C","1","1","1","1","1","1","1","1" +"4","1","18.11","C","1","1","1","1","1","1","1","1" +"4","1","18.12","C","1","1","1","1","1","1","1","1" +"4","1","18.13","C","1","1","1","1","1","1","1","1" +"4","1","18.14","C","1","1","1","1","1","1","1","1" +"4","1","18.20","C","1","1","1","1","1","1","1","1" +"4","1","19.10","C","1","1","1","1","1","1","1","1" +"4","1","19.20","C","1","1","1","1","1","1","1","1" +"4","1","20.11","C","1","1","1","1","1","1","1","1" +"4","1","20.12","C","1","1","1","1","1","1","1","1" +"4","1","20.13","C","1","1","1","1","1","1","1","1" +"4","1","20.14","C","1","1","1","1","1","1","1","1" +"4","1","20.15","C","1","1","1","1","1","1","1","1" +"4","1","20.16","C","1","1","1","1","1","1","1","1" +"4","1","20.17","C","1","1","1","1","1","1","1","1" +"4","1","20.20","C","1","1","1","1","1","1","1","1" +"4","1","20.30","C","1","1","1","1","1","1","1","1" +"4","1","20.41","C","1","1","1","1","1","1","1","1" +"4","1","20.42","C","1","1","1","1","1","1","1","1" +"4","1","20.51","C","1","1","1","1","1","1","1","1" +"4","1","20.59","C","1","1","1","1","1","1","1","1" +"4","1","20.60","C","1","1","1","1","1","1","1","1" +"4","1","21.10","C","1","1","1","1","1","1","1","1" +"4","1","21.20","C","1","1","1","1","1","1","1","1" +"4","1","22.11","C","1","1","1","1","1","1","1","1" +"4","1","22.21","C","1","1","1","1","1","1","1","1" +"4","1","22.22","C","1","1","1","1","1","1","1","1" +"4","1","22.23","C","1","1","1","1","1","1","1","1" +"4","1","23.11","C","1","1","1","1","1","1","1","1" +"4","1","23.12","C","1","1","1","1","1","1","1","1" +"4","1","23.13","C","1","1","1","1","1","1","1","1" +"4","1","23.14","C","1","1","1","1","1","1","1","1" +"4","1","23.20","C","1","1","1","1","1","1","1","1" +"4","1","23.31","C","1","1","1","1","1","1","1","1" +"4","1","23.32","C","1","1","1","1","1","1","1","1" +"4","1","23.41","C","1","1","1","1","1","1","1","1" +"4","1","23.42","C","1","1","1","1","1","1","1","1" +"4","1","23.43","C","1","1","1","1","1","1","1","1" +"4","1","23.44","C","1","1","1","1","1","1","1","1" +"4","1","23.51","C","1","1","1","1","1","1","1","1" +"4","1","23.52","C","1","1","1","1","1","1","1","1" +"4","1","23.61","C","1","1","1","1","1","1","1","1" +"4","1","23.62","C","1","1","1","1","1","1","1","1" +"4","1","23.63","C","1","1","1","1","1","1","1","1" +"4","1","23.64","C","1","1","1","1","1","1","1","1" +"4","1","23.65","C","1","1","1","1","1","1","1","1" +"4","1","23.70","C","1","1","1","1","1","1","1","1" +"4","1","23.91","C","1","1","1","1","1","1","1","1" +"4","1","23.99","C","1","1","1","1","1","1","1","1" +"4","1","24.10","C","1","1","1","1","1","1","1","1" +"4","1","24.20","C","1","1","1","1","1","1","1","1" +"4","1","24.31","C","1","1","1","1","1","1","1","1" +"4","1","24.32","C","1","1","1","1","1","1","1","1" +"4","1","24.33","C","1","1","1","1","1","1","1","1" +"4","1","24.34","C","1","1","1","1","1","1","1","1" +"4","1","24.41","C","1","1","1","1","1","1","1","1" +"4","1","24.42","C","1","1","1","1","1","1","1","1" +"4","1","24.43","C","1","1","1","1","1","1","1","1" +"4","1","24.44","C","1","1","1","1","1","1","1","1" +"4","1","24.45","C","1","1","1","1","1","1","1","1" +"4","1","24.46","C","1","1","1","1","1","1","1","1" +"4","1","24.51","C","1","1","1","1","1","1","1","1" +"4","1","24.52","C","1","1","1","1","1","1","1","1" +"4","1","24.53","C","1","1","1","1","1","1","1","1" +"4","1","24.54","C","1","1","1","1","1","1","1","1" +"4","1","25.11","C","1","1","1","1","1","1","1","1" +"4","1","25.12","C","1","1","1","1","1","1","1","1" +"4","1","25.21","C","1","1","1","1","1","1","1","1" +"4","1","25.30","C","1","1","1","1","1","1","1","1" +"4","1","25.40","C","1","1","1","1","1","1","1","1" +"4","1","25.61","C","1","1","1","1","1","1","1","1" +"4","1","25.62","C","1","1","1","1","1","1","1","1" +"4","1","25.91","C","1","1","1","1","1","1","1","1" +"4","1","25.92","C","1","1","1","1","1","1","1","1" +"4","1","25.93","C","1","1","1","1","1","1","1","1" +"4","1","25.94","C","1","1","1","1","1","1","1","1" +"4","1","25.99","C","1","1","1","1","1","1","1","1" +"4","1","26.11","C","1","1","1","1","1","1","1","1" +"4","1","26.12","C","1","1","1","1","1","1","1","1" +"4","1","26.20","C","1","1","1","1","1","1","1","1" +"4","1","26.30","C","1","1","1","1","1","1","1","1" +"4","1","26.40","C","1","1","1","1","1","1","1","1" +"4","1","26.51","C","1","1","1","1","1","1","1","1" +"4","1","26.52","C","1","1","1","1","1","1","1","1" +"4","1","26.60","C","1","1","1","1","1","1","1","1" +"4","1","26.70","C","1","1","1","1","1","1","1","1" +"4","1","27.11","C","1","1","1","1","1","1","1","1" +"4","1","27.12","C","1","1","1","1","1","1","1","1" +"4","1","27.20","C","1","1","1","1","1","1","1","1" +"4","1","27.31","C","1","1","1","1","1","1","1","1" +"4","1","27.32","C","1","1","1","1","1","1","1","1" +"4","1","27.33","C","1","1","1","1","1","1","1","1" +"4","1","27.40","C","1","1","1","1","1","1","1","1" +"4","1","27.51","C","1","1","1","1","1","1","1","1" +"4","1","27.52","C","1","1","1","1","1","1","1","1" +"4","1","27.90","C","1","1","1","1","1","1","1","1" +"4","1","28.11","C","1","1","1","1","1","1","1","1" +"4","1","28.12","C","1","1","1","1","1","1","1","1" +"4","1","28.13","C","1","1","1","1","1","1","1","1" +"4","1","28.14","C","1","1","1","1","1","1","1","1" +"4","1","28.15","C","1","1","1","1","1","1","1","1" +"4","1","28.21","C","1","1","1","1","1","1","1","1" +"4","1","28.22","C","1","1","1","1","1","1","1","1" +"4","1","28.23","C","1","1","1","1","1","1","1","1" +"4","1","28.24","C","1","1","1","1","1","1","1","1" +"4","1","28.25","C","1","1","1","1","1","1","1","1" +"4","1","28.29","C","1","1","1","1","1","1","1","1" +"4","1","28.30","C","1","1","1","1","1","1","1","1" +"4","1","28.41","C","1","1","1","1","1","1","1","1" +"4","1","28.91","C","1","1","1","1","1","1","1","1" +"4","1","28.92","C","1","1","1","1","1","1","1","1" +"4","1","28.93","C","1","1","1","1","1","1","1","1" +"4","1","28.94","C","1","1","1","1","1","1","1","1" +"4","1","28.95","C","1","1","1","1","1","1","1","1" +"4","1","28.96","C","1","1","1","1","1","1","1","1" +"4","1","28.99","C","1","1","1","1","1","1","1","1" +"4","1","29.10","C","1","1","1","1","1","1","1","1" +"4","1","29.20","C","1","1","1","1","1","1","1","1" +"4","1","29.31","C","1","1","1","1","1","1","1","1" +"4","1","29.32","C","1","1","1","1","1","1","1","1" +"4","1","30.11","C","1","1","1","1","1","1","1","1" +"4","1","30.12","C","1","1","1","1","1","1","1","1" +"4","1","30.20","C","1","1","1","1","1","1","1","1" +"4","1","30.40","C","1","1","1","1","1","1","1","1" +"4","1","30.91","C","1","1","1","1","1","1","1","1" +"4","1","30.92","C","1","1","1","1","1","1","1","1" +"4","1","30.99","C","1","1","1","1","1","1","1","1" +"4","1","32.11","C","1","1","1","1","1","1","1","1" +"4","1","32.12","C","1","1","1","1","1","1","1","1" +"4","1","32.13","C","1","1","1","1","1","1","1","1" +"4","1","32.20","C","1","1","1","1","1","1","1","1" +"4","1","32.30","C","1","1","1","1","1","1","1","1" +"4","1","32.40","C","1","1","1","1","1","1","1","1" +"4","1","32.50","C","1","1","1","1","1","1","1","1" +"4","1","32.91","C","1","1","1","1","1","1","1","1" +"4","1","32.99","C","1","1","1","1","1","1","1","1" +"4","1","33.11","C","1","1","1","1","1","1","1","1" +"4","1","33.12","C","1","1","1","1","1","1","1","1" +"4","1","33.13","C","1","1","1","1","1","1","1","1" +"4","1","33.14","C","1","1","1","1","1","1","1","1" +"4","1","33.15","C","1","1","1","1","1","1","1","1" +"4","1","33.16","C","1","1","1","1","1","1","1","1" +"4","1","33.17","C","1","1","1","1","1","1","1","1" +"4","1","33.19","C","1","1","1","1","1","1","1","1" +"4","1","33.20","C","1","1","1","1","1","1","1","1" +"4","1","35.11","D","1","1","1","1","1","1","1","1" +"4","1","35.12","D","1","1","1","1","1","1","1","1" +"4","1","35.13","D","1","1","1","1","1","1","1","1" +"4","1","35.14","D","1","1","1","1","1","1","1","1" +"4","1","35.21","D","1","1","1","1","1","1","1","1" +"4","1","35.22","D","1","1","1","1","1","1","1","1" +"4","1","35.23","D","1","1","1","1","1","1","1","1" +"4","1","35.30","D","1","1","1","1","1","1","1","1" +"4","1","36.00","E","1","1","1","1","1","1","1","1" +"4","1","37.00","E","1","1","1","1","1","1","1","1" +"4","1","38.11","E","1","1","1","1","1","1","1","1" +"4","1","38.12","E","1","1","1","1","1","1","1","1" +"4","1","38.21","E","1","1","1","1","1","1","1","1" +"4","1","38.22","E","1","1","1","1","1","1","1","1" +"4","1","38.31","E","1","1","1","1","1","1","1","1" +"4","1","38.32","E","1","1","1","1","1","1","1","1" +"4","1","39.00","E","1","1","1","1","1","1","1","1" +"4","1","42.11","F","1","1","1","1","1","1","1","1" +"4","1","42.12","F","1","1","1","1","1","1","1","1" +"4","1","42.13","F","1","1","1","1","1","1","1","1" +"4","1","42.21","F","1","1","1","1","1","1","1","1" +"4","1","42.22","F","1","1","1","1","1","1","1","1" +"4","1","42.91","F","1","1","1","1","1","1","1","1" +"4","1","42.99","F","1","1","1","1","1","1","1","1" +"4","1","43.11","F","1","1","1","1","1","1","1","1" +"4","1","43.12","F","1","1","1","1","1","1","1","1" +"4","1","43.13","F","1","1","1","1","1","1","1","1" +"4","1","43.21","F","1","1","1","1","1","1","1","1" +"4","1","43.22","F","1","1","1","1","1","1","1","1" +"4","1","43.31","F","1","1","1","1","1","1","1","1" +"4","1","43.32","F","1","1","1","1","1","1","1","1" +"4","1","43.33","F","1","1","1","1","1","1","1","1" +"4","1","43.34","F","1","1","1","1","1","1","1","1" +"4","1","43.91","F","1","1","1","1","1","1","1","1" +"4","1","43.99","F","1","1","1","1","1","1","1","1" +"4","1","46.11","G","1","1","1","1","1","1","1","1" +"4","1","46.12","G","1","1","1","1","1","1","1","1" +"4","1","46.13","G","1","1","1","1","1","1","1","1" +"4","1","46.14","G","1","1","1","1","1","1","1","1" +"4","1","46.15","G","1","1","1","1","1","1","1","1" +"4","1","46.16","G","1","1","1","1","1","1","1","1" +"4","1","46.17","G","1","1","1","1","1","1","1","1" +"4","1","46.18","G","1","1","1","1","1","1","1","1" +"4","1","46.19","G","1","1","1","1","1","1","1","1" +"4","1","46.21","G","1","1","1","1","1","1","1","1" +"4","1","46.22","G","1","1","1","1","1","1","1","1" +"4","1","46.23","G","1","1","1","1","1","1","1","1" +"4","1","46.24","G","1","1","1","1","1","1","1","1" +"4","1","46.31","G","1","1","1","1","1","1","1","1" +"4","1","46.32","G","1","1","1","1","1","1","1","1" +"4","1","46.33","G","1","1","1","1","1","1","1","1" +"4","1","46.34","G","1","1","1","1","1","1","1","1" +"4","1","46.35","G","1","1","1","1","1","1","1","1" +"4","1","46.36","G","1","1","1","1","1","1","1","1" +"4","1","46.37","G","1","1","1","1","1","1","1","1" +"4","1","46.38","G","1","1","1","1","1","1","1","1" +"4","1","46.39","G","1","1","1","1","1","1","1","1" +"4","1","46.41","G","1","1","1","1","1","1","1","1" +"4","1","46.42","G","1","1","1","1","1","1","1","1" +"4","1","46.43","G","1","1","1","1","1","1","1","1" +"4","1","46.44","G","1","1","1","1","1","1","1","1" +"4","1","46.45","G","1","1","1","1","1","1","1","1" +"4","1","46.46","G","1","1","1","1","1","1","1","1" +"4","1","46.47","G","1","1","1","1","1","1","1","1" +"4","1","46.48","G","1","1","1","1","1","1","1","1" +"4","1","46.49","G","1","1","1","1","1","1","1","1" +"4","1","46.61","G","1","1","1","1","1","1","1","1" +"4","1","46.62","G","1","1","1","1","1","1","1","1" +"4","1","46.63","G","1","1","1","1","1","1","1","1" +"4","1","46.64","G","1","1","1","1","1","1","1","1" +"4","1","46.71","G","1","1","1","1","1","1","1","1" +"4","1","46.72","G","1","1","1","1","1","1","1","1" +"4","1","46.73","G","1","1","1","1","1","1","1","1" +"4","1","46.90","G","1","1","1","1","1","1","1","1" +"4","1","47.11","G","1","1","1","1","1","1","1","1" +"4","1","47.21","G","1","1","1","1","1","1","1","1" +"4","1","47.22","G","1","1","1","1","1","1","1","1" +"4","1","47.23","G","1","1","1","1","1","1","1","1" +"4","1","47.24","G","1","1","1","1","1","1","1","1" +"4","1","47.25","G","1","1","1","1","1","1","1","1" +"4","1","47.26","G","1","1","1","1","1","1","1","1" +"4","1","47.30","G","1","1","1","1","1","1","1","1" +"4","1","47.51","G","1","1","1","1","1","1","1","1" +"4","1","47.52","G","1","1","1","1","1","1","1","1" +"4","1","47.53","G","1","1","1","1","1","1","1","1" +"4","1","47.54","G","1","1","1","1","1","1","1","1" +"4","1","47.61","G","1","1","1","1","1","1","1","1" +"4","1","47.62","G","1","1","1","1","1","1","1","1" +"4","1","47.63","G","1","1","1","1","1","1","1","1" +"4","1","47.64","G","1","1","1","1","1","1","1","1" +"4","1","47.71","G","1","1","1","1","1","1","1","1" +"4","1","47.72","G","1","1","1","1","1","1","1","1" +"4","1","47.73","G","1","1","1","1","1","1","1","1" +"4","1","47.74","G","1","1","1","1","1","1","1","1" +"4","1","47.75","G","1","1","1","1","1","1","1","1" +"4","1","47.76","G","1","1","1","1","1","1","1","1" +"4","1","47.77","G","1","1","1","1","1","1","1","1" +"4","1","47.78","G","1","1","1","1","1","1","1","1" +"4","1","47.79","G","1","1","1","1","1","1","1","1" +"4","1","47.81","G","1","1","1","1","1","1","1","1" +"4","1","47.82","G","1","1","1","1","1","1","1","1" +"4","1","47.91","G","1","1","1","1","1","1","1","1" +"4","1","49.20","H","1","1","1","1","1","1","1","1" +"4","1","49.31","H","1","1","1","1","1","1","1","1" +"4","1","49.32","H","1","1","1","1","1","1","1","1" +"4","1","49.39","H","1","1","1","1","1","1","1","1" +"4","1","49.41","H","1","1","1","1","1","1","1","1" +"4","1","49.42","H","1","1","1","1","1","1","1","1" +"4","1","49.50","H","1","1","1","1","1","1","1","1" +"4","1","50.10","H","1","1","1","1","1","1","1","1" +"4","1","50.20","H","1","1","1","1","1","1","1","1" +"4","1","50.30","H","1","1","1","1","1","1","1","1" +"4","1","50.40","H","1","1","1","1","1","1","1","1" +"4","1","51.10","H","1","1","1","1","1","1","1","1" +"4","1","51.21","H","1","1","1","1","1","1","1","1" +"4","1","51.22","H","1","1","1","1","1","1","1","1" +"4","1","52.10","H","1","1","1","1","1","1","1","1" +"4","1","52.21","H","1","1","1","1","1","1","1","1" +"4","1","52.22","H","1","1","1","1","1","1","1","1" +"4","1","52.23","H","1","1","1","1","1","1","1","1" +"4","1","52.24","H","1","1","1","1","1","1","1","1" +"4","1","53.10","H","1","1","1","1","1","1","1","1" +"4","1","53.20","H","1","1","1","1","1","1","1","1" +"4","1","55.10","I","1","1","1","1","1","1","1","1" +"4","1","55.20","I","1","1","1","1","1","1","1","1" +"4","1","55.30","I","1","1","1","1","1","1","1","1" +"4","1","55.90","I","1","1","1","1","1","1","1","1" +"4","1","56.21","I","1","1","1","1","1","1","1","1" +"4","1","56.30","I","1","1","1","1","1","1","1","1" +"4","1","58.11","J","1","1","1","1","1","1","1","1" +"4","1","58.12","J","1","1","1","1","1","1","1","1" +"4","1","58.13","J","1","1","1","1","1","1","1","1" +"4","1","58.19","J","1","1","1","1","1","1","1","1" +"4","1","58.21","J","1","1","1","1","1","1","1","1" +"4","1","58.29","J","1","1","1","1","1","1","1","1" +"4","1","59.11","J","1","1","1","1","1","1","1","1" +"4","1","59.12","J","1","1","1","1","1","1","1","1" +"4","1","59.13","J","1","1","1","1","1","1","1","1" +"4","1","59.14","J","1","1","1","1","1","1","1","1" +"4","1","59.20","J","1","1","1","1","1","1","1","1" +"4","1","60.10","J","1","1","1","1","1","1","1","1" +"4","1","60.20","J","1","1","1","1","1","1","1","1" +"4","1","61.10","K","1","1","1","1","1","1","1","1" +"4","1","61.20","K","1","1","1","1","1","1","1","1" +"4","1","61.90","K","1","1","1","1","1","1","1","1" +"4","1","63.91","K","1","1","1","1","1","1","1","1" +"4","1","64.11","L","1","1","1","1","1","1","1","1" +"4","1","64.19","L","1","1","1","1","1","1","1","1" +"4","1","64.91","L","1","1","1","1","1","1","1","1" +"4","1","64.92","L","1","1","1","1","1","1","1","1" +"4","1","64.99","L","1","1","1","1","1","1","1","1" +"4","1","65.11","L","1","1","1","1","1","1","1","1" +"4","1","65.12","L","1","1","1","1","1","1","1","1" +"4","1","65.20","L","1","1","1","1","1","1","1","1" +"4","1","65.30","L","1","1","1","1","1","1","1","1" +"4","1","66.11","L","1","1","1","1","1","1","1","1" +"4","1","66.12","L","1","1","1","1","1","1","1","1" +"4","1","66.19","L","1","1","1","1","1","1","1","1" +"4","1","66.21","L","1","1","1","1","1","1","1","1" +"4","1","66.22","L","1","1","1","1","1","1","1","1" +"4","1","66.29","L","1","1","1","1","1","1","1","1" +"4","1","66.30","L","1","1","1","1","1","1","1","1" +"4","1","68.20","M","1","1","1","1","1","1","1","1" +"4","1","68.31","M","1","1","1","1","1","1","1","1" +"4","1","68.32","M","1","1","1","1","1","1","1","1" +"4","1","69.10","N","1","1","1","1","1","1","1","1" +"4","1","69.20","N","1","1","1","1","1","1","1","1" +"4","1","70.10","N","1","1","1","1","1","1","1","1" +"4","1","71.11","N","1","1","1","1","1","1","1","1" +"4","1","71.12","N","1","1","1","1","1","1","1","1" +"4","1","71.20","N","1","1","1","1","1","1","1","1" +"4","1","72.20","N","1","1","1","1","1","1","1","1" +"4","1","73.11","N","1","1","1","1","1","1","1","1" +"4","1","73.12","N","1","1","1","1","1","1","1","1" +"4","1","73.20","N","1","1","1","1","1","1","1","1" +"4","1","74.20","N","1","1","1","1","1","1","1","1" +"4","1","74.30","N","1","1","1","1","1","1","1","1" +"4","1","75.00","N","1","1","1","1","1","1","1","1" +"4","1","77.11","O","1","1","1","1","1","1","1","1" +"4","1","77.12","O","1","1","1","1","1","1","1","1" +"4","1","77.21","O","1","1","1","1","1","1","1","1" +"4","1","77.22","O","1","1","1","1","1","1","1","1" +"4","1","77.31","O","1","1","1","1","1","1","1","1" +"4","1","77.32","O","1","1","1","1","1","1","1","1" +"4","1","77.33","O","1","1","1","1","1","1","1","1" +"4","1","77.34","O","1","1","1","1","1","1","1","1" +"4","1","77.35","O","1","1","1","1","1","1","1","1" +"4","1","77.39","O","1","1","1","1","1","1","1","1" +"4","1","77.40","O","1","1","1","1","1","1","1","1" +"4","1","78.10","O","1","1","1","1","1","1","1","1" +"4","1","78.20","O","1","1","1","1","1","1","1","1" +"4","1","79.11","O","1","1","1","1","1","1","1","1" +"4","1","79.12","O","1","1","1","1","1","1","1","1" +"4","1","79.90","O","1","1","1","1","1","1","1","1" +"4","1","81.10","O","1","1","1","1","1","1","1","1" +"4","1","81.21","O","1","1","1","1","1","1","1","1" +"4","1","81.22","O","1","1","1","1","1","1","1","1" +"4","1","81.30","O","1","1","1","1","1","1","1","1" +"4","1","82.20","O","1","1","1","1","1","1","1","1" +"4","1","82.30","O","1","1","1","1","1","1","1","1" +"4","1","82.91","O","1","1","1","1","1","1","1","1" +"4","1","82.92","O","1","1","1","1","1","1","1","1" +"4","1","82.99","O","1","1","1","1","1","1","1","1" +"4","1","84.11","P","1","1","1","1","1","1","1","1" +"4","1","84.12","P","1","1","1","1","1","1","1","1" +"4","1","84.13","P","1","1","1","1","1","1","1","1" +"4","1","84.21","P","1","1","1","1","1","1","1","1" +"4","1","84.22","P","1","1","1","1","1","1","1","1" +"4","1","84.23","P","1","1","1","1","1","1","1","1" +"4","1","84.24","P","1","1","1","1","1","1","1","1" +"4","1","84.25","P","1","1","1","1","1","1","1","1" +"4","1","84.30","P","1","1","1","1","1","1","1","1" +"4","1","85.10","Q","1","1","1","1","1","1","1","1" +"4","1","85.20","Q","1","1","1","1","1","1","1","1" +"4","1","85.31","Q","1","1","1","1","1","1","1","1" +"4","1","85.32","Q","1","1","1","1","1","1","1","1" +"4","1","85.51","Q","1","1","1","1","1","1","1","1" +"4","1","85.52","Q","1","1","1","1","1","1","1","1" +"4","1","85.53","Q","1","1","1","1","1","1","1","1" +"4","1","85.59","Q","1","1","1","1","1","1","1","1" +"4","1","86.10","R","1","1","1","1","1","1","1","1" +"4","1","86.21","R","1","1","1","1","1","1","1","1" +"4","1","86.22","R","1","1","1","1","1","1","1","1" +"4","1","86.23","R","1","1","1","1","1","1","1","1" +"4","1","87.10","R","1","1","1","1","1","1","1","1" +"4","1","87.20","R","1","1","1","1","1","1","1","1" +"4","1","87.30","R","1","1","1","1","1","1","1","1" +"4","1","88.10","R","1","1","1","1","1","1","1","1" +"4","1","88.91","R","1","1","1","1","1","1","1","1" +"4","1","88.99","R","1","1","1","1","1","1","1","1" +"4","1","92.00","S","1","1","1","1","1","1","1","1" +"4","1","93.11","S","1","1","1","1","1","1","1","1" +"4","1","93.12","S","1","1","1","1","1","1","1","1" +"4","1","93.13","S","1","1","1","1","1","1","1","1" +"4","1","93.19","S","1","1","1","1","1","1","1","1" +"4","1","93.21","S","1","1","1","1","1","1","1","1" +"4","1","93.29","S","1","1","1","1","1","1","1","1" +"4","1","94.11","T","1","1","1","1","1","1","1","1" +"4","1","94.12","T","1","1","1","1","1","1","1","1" +"4","1","94.20","T","1","1","1","1","1","1","1","1" +"4","1","94.91","T","1","1","1","1","1","1","1","1" +"4","1","94.92","T","1","1","1","1","1","1","1","1" +"4","1","94.99","T","1","1","1","1","1","1","1","1" +"4","1","95.21","T","1","1","1","1","1","1","1","1" +"4","1","95.22","T","1","1","1","1","1","1","1","1" +"4","1","95.23","T","1","1","1","1","1","1","1","1" +"4","1","95.24","T","1","1","1","1","1","1","1","1" +"4","1","95.25","T","1","1","1","1","1","1","1","1" +"4","1","95.29","T","1","1","1","1","1","1","1","1" +"4","1","97.00","U","1","1","1","1","1","1","1","1" +"4","1","98.10","U","1","1","1","1","1","1","1","1" +"4","1","98.20","U","1","1","1","1","1","1","1","1" +"4","1","99.00","V","1","1","1","1","1","1","1","1" +"4","2","01.11","01","1","1","1","1","1","1","1","1" +"4","2","01.12","01","1","1","1","1","1","1","1","1" +"4","2","01.13","01","1","1","1","1","1","1","1","1" +"4","2","01.14","01","1","1","1","1","1","1","1","1" +"4","2","01.15","01","1","1","1","1","1","1","1","1" +"4","2","01.16","01","1","1","1","1","1","1","1","1" +"4","2","01.19","01","1","1","1","1","1","1","1","1" +"4","2","01.21","01","1","1","1","1","1","1","1","1" +"4","2","01.22","01","1","1","1","1","1","1","1","1" +"4","2","01.23","01","1","1","1","1","1","1","1","1" +"4","2","01.24","01","1","1","1","1","1","1","1","1" +"4","2","01.25","01","1","1","1","1","1","1","1","1" +"4","2","01.26","01","1","1","1","1","1","1","1","1" +"4","2","01.27","01","1","1","1","1","1","1","1","1" +"4","2","01.28","01","1","1","1","1","1","1","1","1" +"4","2","01.29","01","1","1","1","1","1","1","1","1" +"4","2","01.30","01","1","1","1","1","1","1","1","1" +"4","2","01.41","01","1","1","1","1","1","1","1","1" +"4","2","01.42","01","1","1","1","1","1","1","1","1" +"4","2","01.43","01","1","1","1","1","1","1","1","1" +"4","2","01.44","01","1","1","1","1","1","1","1","1" +"4","2","01.45","01","1","1","1","1","1","1","1","1" +"4","2","01.46","01","1","1","1","1","1","1","1","1" +"4","2","01.47","01","1","1","1","1","1","1","1","1" +"4","2","01.50","01","1","1","1","1","1","1","1","1" +"4","2","01.61","01","1","1","1","1","1","1","1","1" +"4","2","01.62","01","1","1","1","1","1","1","1","1" +"4","2","01.63","01","1","1","1","1","1","1","1","1" +"4","2","01.70","01","1","1","1","1","1","1","1","1" +"4","2","02.10","02","1","1","1","1","1","1","1","1" +"4","2","02.20","02","1","1","1","1","1","1","1","1" +"4","2","02.30","02","1","1","1","1","1","1","1","1" +"4","2","02.40","02","1","1","1","1","1","1","1","1" +"4","2","03.11","03","1","1","1","1","1","1","1","1" +"4","2","03.12","03","1","1","1","1","1","1","1","1" +"4","2","03.21","03","1","1","1","1","1","1","1","1" +"4","2","03.22","03","1","1","1","1","1","1","1","1" +"4","2","05.10","05","1","1","1","1","1","1","1","1" +"4","2","05.20","05","1","1","1","1","1","1","1","1" +"4","2","06.10","06","1","1","1","1","1","1","1","1" +"4","2","06.20","06","1","1","1","1","1","1","1","1" +"4","2","07.10","07","1","1","1","1","1","1","1","1" +"4","2","07.21","07","1","1","1","1","1","1","1","1" +"4","2","07.29","07","1","1","1","1","1","1","1","1" +"4","2","08.11","08","1","1","1","1","1","1","1","1" +"4","2","08.12","08","1","1","1","1","1","1","1","1" +"4","2","08.91","08","1","1","1","1","1","1","1","1" +"4","2","08.92","08","1","1","1","1","1","1","1","1" +"4","2","08.93","08","1","1","1","1","1","1","1","1" +"4","2","08.99","08","1","1","1","1","1","1","1","1" +"4","2","09.10","09","1","1","1","1","1","1","1","1" +"4","2","09.90","09","1","1","1","1","1","1","1","1" +"4","2","10.11","10","1","1","1","1","1","1","1","1" +"4","2","10.12","10","1","1","1","1","1","1","1","1" +"4","2","10.13","10","1","1","1","1","1","1","1","1" +"4","2","10.20","10","1","1","1","1","1","1","1","1" +"4","2","10.31","10","1","1","1","1","1","1","1","1" +"4","2","10.32","10","1","1","1","1","1","1","1","1" +"4","2","10.39","10","1","1","1","1","1","1","1","1" +"4","2","10.41","10","1","1","1","1","1","1","1","1" +"4","2","10.42","10","1","1","1","1","1","1","1","1" +"4","2","10.51","10","1","1","1","1","1","1","1","1" +"4","2","10.52","10","1","1","1","1","1","1","1","1" +"4","2","10.61","10","1","1","1","1","1","1","1","1" +"4","2","10.62","10","1","1","1","1","1","1","1","1" +"4","2","10.71","10","1","1","1","1","1","1","1","1" +"4","2","10.72","10","1","1","1","1","1","1","1","1" +"4","2","10.73","10","1","1","1","1","1","1","1","1" +"4","2","10.81","10","1","1","1","1","1","1","1","1" +"4","2","10.82","10","1","1","1","1","1","1","1","1" +"4","2","10.83","10","1","1","1","1","1","1","1","1" +"4","2","10.84","10","1","1","1","1","1","1","1","1" +"4","2","10.85","10","1","1","1","1","1","1","1","1" +"4","2","10.86","10","1","1","1","1","1","1","1","1" +"4","2","10.89","10","1","1","1","1","1","1","1","1" +"4","2","10.91","10","1","1","1","1","1","1","1","1" +"4","2","10.92","10","1","1","1","1","1","1","1","1" +"4","2","11.01","11","1","1","1","1","1","1","1","1" +"4","2","11.02","11","1","1","1","1","1","1","1","1" +"4","2","11.03","11","1","1","1","1","1","1","1","1" +"4","2","11.04","11","1","1","1","1","1","1","1","1" +"4","2","11.05","11","1","1","1","1","1","1","1","1" +"4","2","11.06","11","1","1","1","1","1","1","1","1" +"4","2","11.07","11","1","1","1","1","1","1","1","1" +"4","2","12.00","12","1","1","1","1","1","1","1","1" +"4","2","13.10","13","1","1","1","1","1","1","1","1" +"4","2","13.20","13","1","1","1","1","1","1","1","1" +"4","2","13.30","13","1","1","1","1","1","1","1","1" +"4","2","13.91","13","1","1","1","1","1","1","1","1" +"4","2","13.92","13","1","1","1","1","1","1","1","1" +"4","2","13.93","13","1","1","1","1","1","1","1","1" +"4","2","13.94","13","1","1","1","1","1","1","1","1" +"4","2","13.95","13","1","1","1","1","1","1","1","1" +"4","2","13.96","13","1","1","1","1","1","1","1","1" +"4","2","13.99","13","1","1","1","1","1","1","1","1" +"4","2","15.11","15","1","1","1","1","1","1","1","1" +"4","2","15.12","15","1","1","1","1","1","1","1","1" +"4","2","15.20","15","1","1","1","1","1","1","1","1" +"4","2","16.21","16","1","1","1","1","1","1","1","1" +"4","2","16.22","16","1","1","1","1","1","1","1","1" +"4","2","16.23","16","1","1","1","1","1","1","1","1" +"4","2","16.24","16","1","1","1","1","1","1","1","1" +"4","2","17.11","17","1","1","1","1","1","1","1","1" +"4","2","17.12","17","1","1","1","1","1","1","1","1" +"4","2","17.21","17","1","1","1","1","1","1","1","1" +"4","2","17.22","17","1","1","1","1","1","1","1","1" +"4","2","17.23","17","1","1","1","1","1","1","1","1" +"4","2","17.24","17","1","1","1","1","1","1","1","1" +"4","2","18.11","18","1","1","1","1","1","1","1","1" +"4","2","18.12","18","1","1","1","1","1","1","1","1" +"4","2","18.13","18","1","1","1","1","1","1","1","1" +"4","2","18.14","18","1","1","1","1","1","1","1","1" +"4","2","18.20","18","1","1","1","1","1","1","1","1" +"4","2","19.10","19","1","1","1","1","1","1","1","1" +"4","2","19.20","19","1","1","1","1","1","1","1","1" +"4","2","20.11","20","1","1","1","1","1","1","1","1" +"4","2","20.12","20","1","1","1","1","1","1","1","1" +"4","2","20.13","20","1","1","1","1","1","1","1","1" +"4","2","20.14","20","1","1","1","1","1","1","1","1" +"4","2","20.15","20","1","1","1","1","1","1","1","1" +"4","2","20.16","20","1","1","1","1","1","1","1","1" +"4","2","20.17","20","1","1","1","1","1","1","1","1" +"4","2","20.20","20","1","1","1","1","1","1","1","1" +"4","2","20.30","20","1","1","1","1","1","1","1","1" +"4","2","20.41","20","1","1","1","1","1","1","1","1" +"4","2","20.42","20","1","1","1","1","1","1","1","1" +"4","2","20.51","20","1","1","1","1","1","1","1","1" +"4","2","20.59","20","1","1","1","1","1","1","1","1" +"4","2","20.60","20","1","1","1","1","1","1","1","1" +"4","2","21.10","21","1","1","1","1","1","1","1","1" +"4","2","21.20","21","1","1","1","1","1","1","1","1" +"4","2","22.11","22","1","1","1","1","1","1","1","1" +"4","2","22.21","22","1","1","1","1","1","1","1","1" +"4","2","22.22","22","1","1","1","1","1","1","1","1" +"4","2","22.23","22","1","1","1","1","1","1","1","1" +"4","2","23.11","23","1","1","1","1","1","1","1","1" +"4","2","23.12","23","1","1","1","1","1","1","1","1" +"4","2","23.13","23","1","1","1","1","1","1","1","1" +"4","2","23.14","23","1","1","1","1","1","1","1","1" +"4","2","23.20","23","1","1","1","1","1","1","1","1" +"4","2","23.31","23","1","1","1","1","1","1","1","1" +"4","2","23.32","23","1","1","1","1","1","1","1","1" +"4","2","23.41","23","1","1","1","1","1","1","1","1" +"4","2","23.42","23","1","1","1","1","1","1","1","1" +"4","2","23.43","23","1","1","1","1","1","1","1","1" +"4","2","23.44","23","1","1","1","1","1","1","1","1" +"4","2","23.51","23","1","1","1","1","1","1","1","1" +"4","2","23.52","23","1","1","1","1","1","1","1","1" +"4","2","23.61","23","1","1","1","1","1","1","1","1" +"4","2","23.62","23","1","1","1","1","1","1","1","1" +"4","2","23.63","23","1","1","1","1","1","1","1","1" +"4","2","23.64","23","1","1","1","1","1","1","1","1" +"4","2","23.65","23","1","1","1","1","1","1","1","1" +"4","2","23.70","23","1","1","1","1","1","1","1","1" +"4","2","23.91","23","1","1","1","1","1","1","1","1" +"4","2","23.99","23","1","1","1","1","1","1","1","1" +"4","2","24.10","24","1","1","1","1","1","1","1","1" +"4","2","24.20","24","1","1","1","1","1","1","1","1" +"4","2","24.31","24","1","1","1","1","1","1","1","1" +"4","2","24.32","24","1","1","1","1","1","1","1","1" +"4","2","24.33","24","1","1","1","1","1","1","1","1" +"4","2","24.34","24","1","1","1","1","1","1","1","1" +"4","2","24.41","24","1","1","1","1","1","1","1","1" +"4","2","24.42","24","1","1","1","1","1","1","1","1" +"4","2","24.43","24","1","1","1","1","1","1","1","1" +"4","2","24.44","24","1","1","1","1","1","1","1","1" +"4","2","24.45","24","1","1","1","1","1","1","1","1" +"4","2","24.46","24","1","1","1","1","1","1","1","1" +"4","2","24.51","24","1","1","1","1","1","1","1","1" +"4","2","24.52","24","1","1","1","1","1","1","1","1" +"4","2","24.53","24","1","1","1","1","1","1","1","1" +"4","2","24.54","24","1","1","1","1","1","1","1","1" +"4","2","25.11","25","1","1","1","1","1","1","1","1" +"4","2","25.12","25","1","1","1","1","1","1","1","1" +"4","2","25.21","25","1","1","1","1","1","1","1","1" +"4","2","25.30","25","1","1","1","1","1","1","1","1" +"4","2","25.40","25","1","1","1","1","1","1","1","1" +"4","2","25.61","25","1","1","1","1","1","1","1","1" +"4","2","25.62","25","1","1","1","1","1","1","1","1" +"4","2","25.91","25","1","1","1","1","1","1","1","1" +"4","2","25.92","25","1","1","1","1","1","1","1","1" +"4","2","25.93","25","1","1","1","1","1","1","1","1" +"4","2","25.94","25","1","1","1","1","1","1","1","1" +"4","2","25.99","25","1","1","1","1","1","1","1","1" +"4","2","26.11","26","1","1","1","1","1","1","1","1" +"4","2","26.12","26","1","1","1","1","1","1","1","1" +"4","2","26.20","26","1","1","1","1","1","1","1","1" +"4","2","26.30","26","1","1","1","1","1","1","1","1" +"4","2","26.40","26","1","1","1","1","1","1","1","1" +"4","2","26.51","26","1","1","1","1","1","1","1","1" +"4","2","26.52","26","1","1","1","1","1","1","1","1" +"4","2","26.60","26","1","1","1","1","1","1","1","1" +"4","2","26.70","26","1","1","1","1","1","1","1","1" +"4","2","27.11","27","1","1","1","1","1","1","1","1" +"4","2","27.12","27","1","1","1","1","1","1","1","1" +"4","2","27.20","27","1","1","1","1","1","1","1","1" +"4","2","27.31","27","1","1","1","1","1","1","1","1" +"4","2","27.32","27","1","1","1","1","1","1","1","1" +"4","2","27.33","27","1","1","1","1","1","1","1","1" +"4","2","27.40","27","1","1","1","1","1","1","1","1" +"4","2","27.51","27","1","1","1","1","1","1","1","1" +"4","2","27.52","27","1","1","1","1","1","1","1","1" +"4","2","27.90","27","1","1","1","1","1","1","1","1" +"4","2","28.11","28","1","1","1","1","1","1","1","1" +"4","2","28.12","28","1","1","1","1","1","1","1","1" +"4","2","28.13","28","1","1","1","1","1","1","1","1" +"4","2","28.14","28","1","1","1","1","1","1","1","1" +"4","2","28.15","28","1","1","1","1","1","1","1","1" +"4","2","28.21","28","1","1","1","1","1","1","1","1" +"4","2","28.22","28","1","1","1","1","1","1","1","1" +"4","2","28.23","28","1","1","1","1","1","1","1","1" +"4","2","28.24","28","1","1","1","1","1","1","1","1" +"4","2","28.25","28","1","1","1","1","1","1","1","1" +"4","2","28.29","28","1","1","1","1","1","1","1","1" +"4","2","28.30","28","1","1","1","1","1","1","1","1" +"4","2","28.41","28","1","1","1","1","1","1","1","1" +"4","2","28.91","28","1","1","1","1","1","1","1","1" +"4","2","28.92","28","1","1","1","1","1","1","1","1" +"4","2","28.93","28","1","1","1","1","1","1","1","1" +"4","2","28.94","28","1","1","1","1","1","1","1","1" +"4","2","28.95","28","1","1","1","1","1","1","1","1" +"4","2","28.96","28","1","1","1","1","1","1","1","1" +"4","2","28.99","28","1","1","1","1","1","1","1","1" +"4","2","29.10","29","1","1","1","1","1","1","1","1" +"4","2","29.20","29","1","1","1","1","1","1","1","1" +"4","2","29.31","29","1","1","1","1","1","1","1","1" +"4","2","29.32","29","1","1","1","1","1","1","1","1" +"4","2","30.11","30","1","1","1","1","1","1","1","1" +"4","2","30.12","30","1","1","1","1","1","1","1","1" +"4","2","30.20","30","1","1","1","1","1","1","1","1" +"4","2","30.40","30","1","1","1","1","1","1","1","1" +"4","2","30.91","30","1","1","1","1","1","1","1","1" +"4","2","30.92","30","1","1","1","1","1","1","1","1" +"4","2","30.99","30","1","1","1","1","1","1","1","1" +"4","2","32.11","32","1","1","1","1","1","1","1","1" +"4","2","32.12","32","1","1","1","1","1","1","1","1" +"4","2","32.13","32","1","1","1","1","1","1","1","1" +"4","2","32.20","32","1","1","1","1","1","1","1","1" +"4","2","32.30","32","1","1","1","1","1","1","1","1" +"4","2","32.40","32","1","1","1","1","1","1","1","1" +"4","2","32.50","32","1","1","1","1","1","1","1","1" +"4","2","32.91","32","1","1","1","1","1","1","1","1" +"4","2","32.99","32","1","1","1","1","1","1","1","1" +"4","2","33.11","33","1","1","1","1","1","1","1","1" +"4","2","33.12","33","1","1","1","1","1","1","1","1" +"4","2","33.13","33","1","1","1","1","1","1","1","1" +"4","2","33.14","33","1","1","1","1","1","1","1","1" +"4","2","33.15","33","1","1","1","1","1","1","1","1" +"4","2","33.16","33","1","1","1","1","1","1","1","1" +"4","2","33.17","33","1","1","1","1","1","1","1","1" +"4","2","33.19","33","1","1","1","1","1","1","1","1" +"4","2","33.20","33","1","1","1","1","1","1","1","1" +"4","2","35.11","35","1","1","1","1","1","1","1","1" +"4","2","35.12","35","1","1","1","1","1","1","1","1" +"4","2","35.13","35","1","1","1","1","1","1","1","1" +"4","2","35.14","35","1","1","1","1","1","1","1","1" +"4","2","35.21","35","1","1","1","1","1","1","1","1" +"4","2","35.22","35","1","1","1","1","1","1","1","1" +"4","2","35.23","35","1","1","1","1","1","1","1","1" +"4","2","35.30","35","1","1","1","1","1","1","1","1" +"4","2","36.00","36","1","1","1","1","1","1","1","1" +"4","2","37.00","37","1","1","1","1","1","1","1","1" +"4","2","38.11","38","1","1","1","1","1","1","1","1" +"4","2","38.12","38","1","1","1","1","1","1","1","1" +"4","2","38.21","38","1","1","1","1","1","1","1","1" +"4","2","38.22","38","1","1","1","1","1","1","1","1" +"4","2","38.31","38","1","1","1","1","1","1","1","1" +"4","2","38.32","38","1","1","1","1","1","1","1","1" +"4","2","39.00","39","1","1","1","1","1","1","1","1" +"4","2","42.11","42","1","1","1","1","1","1","1","1" +"4","2","42.12","42","1","1","1","1","1","1","1","1" +"4","2","42.13","42","1","1","1","1","1","1","1","1" +"4","2","42.21","42","1","1","1","1","1","1","1","1" +"4","2","42.22","42","1","1","1","1","1","1","1","1" +"4","2","42.91","42","1","1","1","1","1","1","1","1" +"4","2","42.99","42","1","1","1","1","1","1","1","1" +"4","2","43.11","43","1","1","1","1","1","1","1","1" +"4","2","43.12","43","1","1","1","1","1","1","1","1" +"4","2","43.13","43","1","1","1","1","1","1","1","1" +"4","2","43.21","43","1","1","1","1","1","1","1","1" +"4","2","43.22","43","1","1","1","1","1","1","1","1" +"4","2","43.31","43","1","1","1","1","1","1","1","1" +"4","2","43.32","43","1","1","1","1","1","1","1","1" +"4","2","43.33","43","1","1","1","1","1","1","1","1" +"4","2","43.34","43","1","1","1","1","1","1","1","1" +"4","2","43.91","43","1","1","1","1","1","1","1","1" +"4","2","43.99","43","1","1","1","1","1","1","1","1" +"4","2","46.11","46","1","1","1","1","1","1","1","1" +"4","2","46.12","46","1","1","1","1","1","1","1","1" +"4","2","46.13","46","1","1","1","1","1","1","1","1" +"4","2","46.14","46","1","1","1","1","1","1","1","1" +"4","2","46.15","46","1","1","1","1","1","1","1","1" +"4","2","46.16","46","1","1","1","1","1","1","1","1" +"4","2","46.17","46","1","1","1","1","1","1","1","1" +"4","2","46.18","46","1","1","1","1","1","1","1","1" +"4","2","46.19","46","1","1","1","1","1","1","1","1" +"4","2","46.21","46","1","1","1","1","1","1","1","1" +"4","2","46.22","46","1","1","1","1","1","1","1","1" +"4","2","46.23","46","1","1","1","1","1","1","1","1" +"4","2","46.24","46","1","1","1","1","1","1","1","1" +"4","2","46.31","46","1","1","1","1","1","1","1","1" +"4","2","46.32","46","1","1","1","1","1","1","1","1" +"4","2","46.33","46","1","1","1","1","1","1","1","1" +"4","2","46.34","46","1","1","1","1","1","1","1","1" +"4","2","46.35","46","1","1","1","1","1","1","1","1" +"4","2","46.36","46","1","1","1","1","1","1","1","1" +"4","2","46.37","46","1","1","1","1","1","1","1","1" +"4","2","46.38","46","1","1","1","1","1","1","1","1" +"4","2","46.39","46","1","1","1","1","1","1","1","1" +"4","2","46.41","46","1","1","1","1","1","1","1","1" +"4","2","46.42","46","1","1","1","1","1","1","1","1" +"4","2","46.43","46","1","1","1","1","1","1","1","1" +"4","2","46.44","46","1","1","1","1","1","1","1","1" +"4","2","46.45","46","1","1","1","1","1","1","1","1" +"4","2","46.46","46","1","1","1","1","1","1","1","1" +"4","2","46.47","46","1","1","1","1","1","1","1","1" +"4","2","46.48","46","1","1","1","1","1","1","1","1" +"4","2","46.49","46","1","1","1","1","1","1","1","1" +"4","2","46.61","46","1","1","1","1","1","1","1","1" +"4","2","46.62","46","1","1","1","1","1","1","1","1" +"4","2","46.63","46","1","1","1","1","1","1","1","1" +"4","2","46.64","46","1","1","1","1","1","1","1","1" +"4","2","46.71","46","1","1","1","1","1","1","1","1" +"4","2","46.72","46","1","1","1","1","1","1","1","1" +"4","2","46.73","46","1","1","1","1","1","1","1","1" +"4","2","46.90","46","1","1","1","1","1","1","1","1" +"4","2","47.11","47","1","1","1","1","1","1","1","1" +"4","2","47.21","47","1","1","1","1","1","1","1","1" +"4","2","47.22","47","1","1","1","1","1","1","1","1" +"4","2","47.23","47","1","1","1","1","1","1","1","1" +"4","2","47.24","47","1","1","1","1","1","1","1","1" +"4","2","47.25","47","1","1","1","1","1","1","1","1" +"4","2","47.26","47","1","1","1","1","1","1","1","1" +"4","2","47.30","47","1","1","1","1","1","1","1","1" +"4","2","47.51","47","1","1","1","1","1","1","1","1" +"4","2","47.52","47","1","1","1","1","1","1","1","1" +"4","2","47.53","47","1","1","1","1","1","1","1","1" +"4","2","47.54","47","1","1","1","1","1","1","1","1" +"4","2","47.61","47","1","1","1","1","1","1","1","1" +"4","2","47.62","47","1","1","1","1","1","1","1","1" +"4","2","47.63","47","1","1","1","1","1","1","1","1" +"4","2","47.64","47","1","1","1","1","1","1","1","1" +"4","2","47.71","47","1","1","1","1","1","1","1","1" +"4","2","47.72","47","1","1","1","1","1","1","1","1" +"4","2","47.73","47","1","1","1","1","1","1","1","1" +"4","2","47.74","47","1","1","1","1","1","1","1","1" +"4","2","47.75","47","1","1","1","1","1","1","1","1" +"4","2","47.76","47","1","1","1","1","1","1","1","1" +"4","2","47.77","47","1","1","1","1","1","1","1","1" +"4","2","47.78","47","1","1","1","1","1","1","1","1" +"4","2","47.79","47","1","1","1","1","1","1","1","1" +"4","2","47.81","47","1","1","1","1","1","1","1","1" +"4","2","47.82","47","1","1","1","1","1","1","1","1" +"4","2","47.91","47","1","1","1","1","1","1","1","1" +"4","2","49.20","49","1","1","1","1","1","1","1","1" +"4","2","49.31","49","1","1","1","1","1","1","1","1" +"4","2","49.32","49","1","1","1","1","1","1","1","1" +"4","2","49.39","49","1","1","1","1","1","1","1","1" +"4","2","49.41","49","1","1","1","1","1","1","1","1" +"4","2","49.42","49","1","1","1","1","1","1","1","1" +"4","2","49.50","49","1","1","1","1","1","1","1","1" +"4","2","50.10","50","1","1","1","1","1","1","1","1" +"4","2","50.20","50","1","1","1","1","1","1","1","1" +"4","2","50.30","50","1","1","1","1","1","1","1","1" +"4","2","50.40","50","1","1","1","1","1","1","1","1" +"4","2","51.10","51","1","1","1","1","1","1","1","1" +"4","2","51.21","51","1","1","1","1","1","1","1","1" +"4","2","51.22","51","1","1","1","1","1","1","1","1" +"4","2","52.10","52","1","1","1","1","1","1","1","1" +"4","2","52.21","52","1","1","1","1","1","1","1","1" +"4","2","52.22","52","1","1","1","1","1","1","1","1" +"4","2","52.23","52","1","1","1","1","1","1","1","1" +"4","2","52.24","52","1","1","1","1","1","1","1","1" +"4","2","53.10","53","1","1","1","1","1","1","1","1" +"4","2","53.20","53","1","1","1","1","1","1","1","1" +"4","2","55.10","55","1","1","1","1","1","1","1","1" +"4","2","55.20","55","1","1","1","1","1","1","1","1" +"4","2","55.30","55","1","1","1","1","1","1","1","1" +"4","2","55.90","55","1","1","1","1","1","1","1","1" +"4","2","56.21","56","1","1","1","1","1","1","1","1" +"4","2","56.30","56","1","1","1","1","1","1","1","1" +"4","2","58.11","58","1","1","1","1","1","1","1","1" +"4","2","58.12","58","1","1","1","1","1","1","1","1" +"4","2","58.13","58","1","1","1","1","1","1","1","1" +"4","2","58.19","58","1","1","1","1","1","1","1","1" +"4","2","58.21","58","1","1","1","1","1","1","1","1" +"4","2","58.29","58","1","1","1","1","1","1","1","1" +"4","2","59.11","59","1","1","1","1","1","1","1","1" +"4","2","59.12","59","1","1","1","1","1","1","1","1" +"4","2","59.13","59","1","1","1","1","1","1","1","1" +"4","2","59.14","59","1","1","1","1","1","1","1","1" +"4","2","59.20","59","1","1","1","1","1","1","1","1" +"4","2","60.10","60","1","1","1","1","1","1","1","1" +"4","2","60.20","60","1","1","1","1","1","1","1","1" +"4","2","61.10","61","1","1","1","1","1","1","1","1" +"4","2","61.20","61","1","1","1","1","1","1","1","1" +"4","2","61.90","61","1","1","1","1","1","1","1","1" +"4","2","63.91","63","1","1","1","1","1","1","1","1" +"4","2","64.11","64","1","1","1","1","1","1","1","1" +"4","2","64.19","64","1","1","1","1","1","1","1","1" +"4","2","64.91","64","1","1","1","1","1","1","1","1" +"4","2","64.92","64","1","1","1","1","1","1","1","1" +"4","2","64.99","64","1","1","1","1","1","1","1","1" +"4","2","65.11","65","1","1","1","1","1","1","1","1" +"4","2","65.12","65","1","1","1","1","1","1","1","1" +"4","2","65.20","65","1","1","1","1","1","1","1","1" +"4","2","65.30","65","1","1","1","1","1","1","1","1" +"4","2","66.11","66","1","1","1","1","1","1","1","1" +"4","2","66.12","66","1","1","1","1","1","1","1","1" +"4","2","66.19","66","1","1","1","1","1","1","1","1" +"4","2","66.21","66","1","1","1","1","1","1","1","1" +"4","2","66.22","66","1","1","1","1","1","1","1","1" +"4","2","66.29","66","1","1","1","1","1","1","1","1" +"4","2","66.30","66","1","1","1","1","1","1","1","1" +"4","2","68.20","68","1","1","1","1","1","1","1","1" +"4","2","68.31","68","1","1","1","1","1","1","1","1" +"4","2","68.32","68","1","1","1","1","1","1","1","1" +"4","2","69.10","69","1","1","1","1","1","1","1","1" +"4","2","69.20","69","1","1","1","1","1","1","1","1" +"4","2","70.10","70","1","1","1","1","1","1","1","1" +"4","2","71.11","71","1","1","1","1","1","1","1","1" +"4","2","71.12","71","1","1","1","1","1","1","1","1" +"4","2","71.20","71","1","1","1","1","1","1","1","1" +"4","2","72.20","72","1","1","1","1","1","1","1","1" +"4","2","73.11","73","1","1","1","1","1","1","1","1" +"4","2","73.12","73","1","1","1","1","1","1","1","1" +"4","2","73.20","73","1","1","1","1","1","1","1","1" +"4","2","74.20","74","1","1","1","1","1","1","1","1" +"4","2","74.30","74","1","1","1","1","1","1","1","1" +"4","2","75.00","75","1","1","1","1","1","1","1","1" +"4","2","77.11","77","1","1","1","1","1","1","1","1" +"4","2","77.12","77","1","1","1","1","1","1","1","1" +"4","2","77.21","77","1","1","1","1","1","1","1","1" +"4","2","77.22","77","1","1","1","1","1","1","1","1" +"4","2","77.31","77","1","1","1","1","1","1","1","1" +"4","2","77.32","77","1","1","1","1","1","1","1","1" +"4","2","77.33","77","1","1","1","1","1","1","1","1" +"4","2","77.34","77","1","1","1","1","1","1","1","1" +"4","2","77.35","77","1","1","1","1","1","1","1","1" +"4","2","77.39","77","1","1","1","1","1","1","1","1" +"4","2","77.40","77","1","1","1","1","1","1","1","1" +"4","2","78.10","78","1","1","1","1","1","1","1","1" +"4","2","78.20","78","1","1","1","1","1","1","1","1" +"4","2","79.11","79","1","1","1","1","1","1","1","1" +"4","2","79.12","79","1","1","1","1","1","1","1","1" +"4","2","79.90","79","1","1","1","1","1","1","1","1" +"4","2","81.10","81","1","1","1","1","1","1","1","1" +"4","2","81.21","81","1","1","1","1","1","1","1","1" +"4","2","81.22","81","1","1","1","1","1","1","1","1" +"4","2","81.30","81","1","1","1","1","1","1","1","1" +"4","2","82.20","82","1","1","1","1","1","1","1","1" +"4","2","82.30","82","1","1","1","1","1","1","1","1" +"4","2","82.91","82","1","1","1","1","1","1","1","1" +"4","2","82.92","82","1","1","1","1","1","1","1","1" +"4","2","82.99","82","1","1","1","1","1","1","1","1" +"4","2","84.11","84","1","1","1","1","1","1","1","1" +"4","2","84.12","84","1","1","1","1","1","1","1","1" +"4","2","84.13","84","1","1","1","1","1","1","1","1" +"4","2","84.21","84","1","1","1","1","1","1","1","1" +"4","2","84.22","84","1","1","1","1","1","1","1","1" +"4","2","84.23","84","1","1","1","1","1","1","1","1" +"4","2","84.24","84","1","1","1","1","1","1","1","1" +"4","2","84.25","84","1","1","1","1","1","1","1","1" +"4","2","84.30","84","1","1","1","1","1","1","1","1" +"4","2","85.10","85","1","1","1","1","1","1","1","1" +"4","2","85.20","85","1","1","1","1","1","1","1","1" +"4","2","85.31","85","1","1","1","1","1","1","1","1" +"4","2","85.32","85","1","1","1","1","1","1","1","1" +"4","2","85.51","85","1","1","1","1","1","1","1","1" +"4","2","85.52","85","1","1","1","1","1","1","1","1" +"4","2","85.53","85","1","1","1","1","1","1","1","1" +"4","2","85.59","85","1","1","1","1","1","1","1","1" +"4","2","86.10","86","1","1","1","1","1","1","1","1" +"4","2","86.21","86","1","1","1","1","1","1","1","1" +"4","2","86.22","86","1","1","1","1","1","1","1","1" +"4","2","86.23","86","1","1","1","1","1","1","1","1" +"4","2","87.10","87","1","1","1","1","1","1","1","1" +"4","2","87.20","87","1","1","1","1","1","1","1","1" +"4","2","87.30","87","1","1","1","1","1","1","1","1" +"4","2","88.10","88","1","1","1","1","1","1","1","1" +"4","2","88.91","88","1","1","1","1","1","1","1","1" +"4","2","88.99","88","1","1","1","1","1","1","1","1" +"4","2","92.00","92","1","1","1","1","1","1","1","1" +"4","2","93.11","93","1","1","1","1","1","1","1","1" +"4","2","93.12","93","1","1","1","1","1","1","1","1" +"4","2","93.13","93","1","1","1","1","1","1","1","1" +"4","2","93.19","93","1","1","1","1","1","1","1","1" +"4","2","93.21","93","1","1","1","1","1","1","1","1" +"4","2","93.29","93","1","1","1","1","1","1","1","1" +"4","2","94.11","94","1","1","1","1","1","1","1","1" +"4","2","94.12","94","1","1","1","1","1","1","1","1" +"4","2","94.20","94","1","1","1","1","1","1","1","1" +"4","2","94.91","94","1","1","1","1","1","1","1","1" +"4","2","94.92","94","1","1","1","1","1","1","1","1" +"4","2","94.99","94","1","1","1","1","1","1","1","1" +"4","2","95.21","95","1","1","1","1","1","1","1","1" +"4","2","95.22","95","1","1","1","1","1","1","1","1" +"4","2","95.23","95","1","1","1","1","1","1","1","1" +"4","2","95.24","95","1","1","1","1","1","1","1","1" +"4","2","95.25","95","1","1","1","1","1","1","1","1" +"4","2","95.29","95","1","1","1","1","1","1","1","1" +"4","2","97.00","97","1","1","1","1","1","1","1","1" +"4","2","98.10","98","1","1","1","1","1","1","1","1" +"4","2","98.20","98","1","1","1","1","1","1","1","1" +"4","2","99.00","99","1","1","1","1","1","1","1","1" +"4","3","01.11","01.1","1","1","1","1","1","1","1","1" +"4","3","01.12","01.1","1","1","1","1","1","1","1","1" +"4","3","01.13","01.1","1","1","1","1","1","1","1","1" +"4","3","01.14","01.1","1","1","1","1","1","1","1","1" +"4","3","01.15","01.1","1","1","1","1","1","1","1","1" +"4","3","01.16","01.1","1","1","1","1","1","1","1","1" +"4","3","01.19","01.1","1","1","1","1","1","1","1","1" +"4","3","01.21","01.2","1","1","1","1","1","1","1","1" +"4","3","01.22","01.2","1","1","1","1","1","1","1","1" +"4","3","01.23","01.2","1","1","1","1","1","1","1","1" +"4","3","01.24","01.2","1","1","1","1","1","1","1","1" +"4","3","01.25","01.2","1","1","1","1","1","1","1","1" +"4","3","01.26","01.2","1","1","1","1","1","1","1","1" +"4","3","01.27","01.2","1","1","1","1","1","1","1","1" +"4","3","01.28","01.2","1","1","1","1","1","1","1","1" +"4","3","01.29","01.2","1","1","1","1","1","1","1","1" +"4","3","01.30","01.3","1","1","1","1","1","1","1","1" +"4","3","01.41","01.4","1","1","1","1","1","1","1","1" +"4","3","01.42","01.4","1","1","1","1","1","1","1","1" +"4","3","01.43","01.4","1","1","1","1","1","1","1","1" +"4","3","01.44","01.4","1","1","1","1","1","1","1","1" +"4","3","01.45","01.4","1","1","1","1","1","1","1","1" +"4","3","01.46","01.4","1","1","1","1","1","1","1","1" +"4","3","01.47","01.4","1","1","1","1","1","1","1","1" +"4","3","01.50","01.5","1","1","1","1","1","1","1","1" +"4","3","01.61","01.6","1","1","1","1","1","1","1","1" +"4","3","01.62","01.6","1","1","1","1","1","1","1","1" +"4","3","01.63","01.6","1","1","1","1","1","1","1","1" +"4","3","01.70","01.7","1","1","1","1","1","1","1","1" +"4","3","02.10","02.1","1","1","1","1","1","1","1","1" +"4","3","02.20","02.2","1","1","1","1","1","1","1","1" +"4","3","02.30","02.3","1","1","1","1","1","1","1","1" +"4","3","02.40","02.4","1","1","1","1","1","1","1","1" +"4","3","03.11","03.1","1","1","1","1","1","1","1","1" +"4","3","03.12","03.1","1","1","1","1","1","1","1","1" +"4","3","03.21","03.2","1","1","1","1","1","1","1","1" +"4","3","03.22","03.2","1","1","1","1","1","1","1","1" +"4","3","05.10","05.1","1","1","1","1","1","1","1","1" +"4","3","05.20","05.2","1","1","1","1","1","1","1","1" +"4","3","06.10","06.1","1","1","1","1","1","1","1","1" +"4","3","06.20","06.2","1","1","1","1","1","1","1","1" +"4","3","07.10","07.1","1","1","1","1","1","1","1","1" +"4","3","07.21","07.2","1","1","1","1","1","1","1","1" +"4","3","07.29","07.2","1","1","1","1","1","1","1","1" +"4","3","08.11","08.1","1","1","1","1","1","1","1","1" +"4","3","08.12","08.1","1","1","1","1","1","1","1","1" +"4","3","08.91","08.9","1","1","1","1","1","1","1","1" +"4","3","08.92","08.9","1","1","1","1","1","1","1","1" +"4","3","08.93","08.9","1","1","1","1","1","1","1","1" +"4","3","08.99","08.9","1","1","1","1","1","1","1","1" +"4","3","09.10","09.1","1","1","1","1","1","1","1","1" +"4","3","09.90","09.9","1","1","1","1","1","1","1","1" +"4","3","10.11","10.1","1","1","1","1","1","1","1","1" +"4","3","10.12","10.1","1","1","1","1","1","1","1","1" +"4","3","10.13","10.1","1","1","1","1","1","1","1","1" +"4","3","10.20","10.2","1","1","1","1","1","1","1","1" +"4","3","10.31","10.3","1","1","1","1","1","1","1","1" +"4","3","10.32","10.3","1","1","1","1","1","1","1","1" +"4","3","10.39","10.3","1","1","1","1","1","1","1","1" +"4","3","10.41","10.4","1","1","1","1","1","1","1","1" +"4","3","10.42","10.4","1","1","1","1","1","1","1","1" +"4","3","10.51","10.5","1","1","1","1","1","1","1","1" +"4","3","10.52","10.5","1","1","1","1","1","1","1","1" +"4","3","10.61","10.6","1","1","1","1","1","1","1","1" +"4","3","10.62","10.6","1","1","1","1","1","1","1","1" +"4","3","10.71","10.7","1","1","1","1","1","1","1","1" +"4","3","10.72","10.7","1","1","1","1","1","1","1","1" +"4","3","10.73","10.7","1","1","1","1","1","1","1","1" +"4","3","10.81","10.8","1","1","1","1","1","1","1","1" +"4","3","10.82","10.8","1","1","1","1","1","1","1","1" +"4","3","10.83","10.8","1","1","1","1","1","1","1","1" +"4","3","10.84","10.8","1","1","1","1","1","1","1","1" +"4","3","10.85","10.8","1","1","1","1","1","1","1","1" +"4","3","10.86","10.8","1","1","1","1","1","1","1","1" +"4","3","10.89","10.8","1","1","1","1","1","1","1","1" +"4","3","10.91","10.9","1","1","1","1","1","1","1","1" +"4","3","10.92","10.9","1","1","1","1","1","1","1","1" +"4","3","11.01","11.0","1","1","1","1","1","1","1","1" +"4","3","11.02","11.0","1","1","1","1","1","1","1","1" +"4","3","11.03","11.0","1","1","1","1","1","1","1","1" +"4","3","11.04","11.0","1","1","1","1","1","1","1","1" +"4","3","11.05","11.0","1","1","1","1","1","1","1","1" +"4","3","11.06","11.0","1","1","1","1","1","1","1","1" +"4","3","11.07","11.0","1","1","1","1","1","1","1","1" +"4","3","12.00","12.0","1","1","1","1","1","1","1","1" +"4","3","13.10","13.1","1","1","1","1","1","1","1","1" +"4","3","13.20","13.2","1","1","1","1","1","1","1","1" +"4","3","13.30","13.3","1","1","1","1","1","1","1","1" +"4","3","13.91","13.9","1","1","1","1","1","1","1","1" +"4","3","13.92","13.9","1","1","1","1","1","1","1","1" +"4","3","13.93","13.9","1","1","1","1","1","1","1","1" +"4","3","13.94","13.9","1","1","1","1","1","1","1","1" +"4","3","13.95","13.9","1","1","1","1","1","1","1","1" +"4","3","13.96","13.9","1","1","1","1","1","1","1","1" +"4","3","13.99","13.9","1","1","1","1","1","1","1","1" +"4","3","15.11","15.1","1","1","1","1","1","1","1","1" +"4","3","15.12","15.1","1","1","1","1","1","1","1","1" +"4","3","15.20","15.2","1","1","1","1","1","1","1","1" +"4","3","16.21","16.2","1","1","1","1","1","1","1","1" +"4","3","16.22","16.2","1","1","1","1","1","1","1","1" +"4","3","16.23","16.2","1","1","1","1","1","1","1","1" +"4","3","16.24","16.2","1","1","1","1","1","1","1","1" +"4","3","17.11","17.1","1","1","1","1","1","1","1","1" +"4","3","17.12","17.1","1","1","1","1","1","1","1","1" +"4","3","17.21","17.2","1","1","1","1","1","1","1","1" +"4","3","17.22","17.2","1","1","1","1","1","1","1","1" +"4","3","17.23","17.2","1","1","1","1","1","1","1","1" +"4","3","17.24","17.2","1","1","1","1","1","1","1","1" +"4","3","18.11","18.1","1","1","1","1","1","1","1","1" +"4","3","18.12","18.1","1","1","1","1","1","1","1","1" +"4","3","18.13","18.1","1","1","1","1","1","1","1","1" +"4","3","18.14","18.1","1","1","1","1","1","1","1","1" +"4","3","18.20","18.2","1","1","1","1","1","1","1","1" +"4","3","19.10","19.1","1","1","1","1","1","1","1","1" +"4","3","19.20","19.2","1","1","1","1","1","1","1","1" +"4","3","20.11","20.1","1","1","1","1","1","1","1","1" +"4","3","20.12","20.1","1","1","1","1","1","1","1","1" +"4","3","20.13","20.1","1","1","1","1","1","1","1","1" +"4","3","20.14","20.1","1","1","1","1","1","1","1","1" +"4","3","20.15","20.1","1","1","1","1","1","1","1","1" +"4","3","20.16","20.1","1","1","1","1","1","1","1","1" +"4","3","20.17","20.1","1","1","1","1","1","1","1","1" +"4","3","20.20","20.2","1","1","1","1","1","1","1","1" +"4","3","20.30","20.3","1","1","1","1","1","1","1","1" +"4","3","20.41","20.4","1","1","1","1","1","1","1","1" +"4","3","20.42","20.4","1","1","1","1","1","1","1","1" +"4","3","20.51","20.5","1","1","1","1","1","1","1","1" +"4","3","20.59","20.5","1","1","1","1","1","1","1","1" +"4","3","20.60","20.6","1","1","1","1","1","1","1","1" +"4","3","21.10","21.1","1","1","1","1","1","1","1","1" +"4","3","21.20","21.2","1","1","1","1","1","1","1","1" +"4","3","22.11","22.1","1","1","1","1","1","1","1","1" +"4","3","22.21","22.2","1","1","1","1","1","1","1","1" +"4","3","22.22","22.2","1","1","1","1","1","1","1","1" +"4","3","22.23","22.2","1","1","1","1","1","1","1","1" +"4","3","23.11","23.1","1","1","1","1","1","1","1","1" +"4","3","23.12","23.1","1","1","1","1","1","1","1","1" +"4","3","23.13","23.1","1","1","1","1","1","1","1","1" +"4","3","23.14","23.1","1","1","1","1","1","1","1","1" +"4","3","23.20","23.2","1","1","1","1","1","1","1","1" +"4","3","23.31","23.3","1","1","1","1","1","1","1","1" +"4","3","23.32","23.3","1","1","1","1","1","1","1","1" +"4","3","23.41","23.4","1","1","1","1","1","1","1","1" +"4","3","23.42","23.4","1","1","1","1","1","1","1","1" +"4","3","23.43","23.4","1","1","1","1","1","1","1","1" +"4","3","23.44","23.4","1","1","1","1","1","1","1","1" +"4","3","23.51","23.5","1","1","1","1","1","1","1","1" +"4","3","23.52","23.5","1","1","1","1","1","1","1","1" +"4","3","23.61","23.6","1","1","1","1","1","1","1","1" +"4","3","23.62","23.6","1","1","1","1","1","1","1","1" +"4","3","23.63","23.6","1","1","1","1","1","1","1","1" +"4","3","23.64","23.6","1","1","1","1","1","1","1","1" +"4","3","23.65","23.6","1","1","1","1","1","1","1","1" +"4","3","23.70","23.7","1","1","1","1","1","1","1","1" +"4","3","23.91","23.9","1","1","1","1","1","1","1","1" +"4","3","23.99","23.9","1","1","1","1","1","1","1","1" +"4","3","24.10","24.1","1","1","1","1","1","1","1","1" +"4","3","24.20","24.2","1","1","1","1","1","1","1","1" +"4","3","24.31","24.3","1","1","1","1","1","1","1","1" +"4","3","24.32","24.3","1","1","1","1","1","1","1","1" +"4","3","24.33","24.3","1","1","1","1","1","1","1","1" +"4","3","24.34","24.3","1","1","1","1","1","1","1","1" +"4","3","24.41","24.4","1","1","1","1","1","1","1","1" +"4","3","24.42","24.4","1","1","1","1","1","1","1","1" +"4","3","24.43","24.4","1","1","1","1","1","1","1","1" +"4","3","24.44","24.4","1","1","1","1","1","1","1","1" +"4","3","24.45","24.4","1","1","1","1","1","1","1","1" +"4","3","24.46","24.4","1","1","1","1","1","1","1","1" +"4","3","24.51","24.5","1","1","1","1","1","1","1","1" +"4","3","24.52","24.5","1","1","1","1","1","1","1","1" +"4","3","24.53","24.5","1","1","1","1","1","1","1","1" +"4","3","24.54","24.5","1","1","1","1","1","1","1","1" +"4","3","25.11","25.1","1","1","1","1","1","1","1","1" +"4","3","25.12","25.1","1","1","1","1","1","1","1","1" +"4","3","25.21","25.2","1","1","1","1","1","1","1","1" +"4","3","25.30","25.3","1","1","1","1","1","1","1","1" +"4","3","25.40","25.4","1","1","1","1","1","1","1","1" +"4","3","25.61","25.6","1","1","1","1","1","1","1","1" +"4","3","25.62","25.6","1","1","1","1","1","1","1","1" +"4","3","25.91","25.9","1","1","1","1","1","1","1","1" +"4","3","25.92","25.9","1","1","1","1","1","1","1","1" +"4","3","25.93","25.9","1","1","1","1","1","1","1","1" +"4","3","25.94","25.9","1","1","1","1","1","1","1","1" +"4","3","25.99","25.9","1","1","1","1","1","1","1","1" +"4","3","26.11","26.1","1","1","1","1","1","1","1","1" +"4","3","26.12","26.1","1","1","1","1","1","1","1","1" +"4","3","26.20","26.2","1","1","1","1","1","1","1","1" +"4","3","26.30","26.3","1","1","1","1","1","1","1","1" +"4","3","26.40","26.4","1","1","1","1","1","1","1","1" +"4","3","26.51","26.5","1","1","1","1","1","1","1","1" +"4","3","26.52","26.5","1","1","1","1","1","1","1","1" +"4","3","26.60","26.6","1","1","1","1","1","1","1","1" +"4","3","26.70","26.7","1","1","1","1","1","1","1","1" +"4","3","27.11","27.1","1","1","1","1","1","1","1","1" +"4","3","27.12","27.1","1","1","1","1","1","1","1","1" +"4","3","27.20","27.2","1","1","1","1","1","1","1","1" +"4","3","27.31","27.3","1","1","1","1","1","1","1","1" +"4","3","27.32","27.3","1","1","1","1","1","1","1","1" +"4","3","27.33","27.3","1","1","1","1","1","1","1","1" +"4","3","27.40","27.4","1","1","1","1","1","1","1","1" +"4","3","27.51","27.5","1","1","1","1","1","1","1","1" +"4","3","27.52","27.5","1","1","1","1","1","1","1","1" +"4","3","27.90","27.9","1","1","1","1","1","1","1","1" +"4","3","28.11","28.1","1","1","1","1","1","1","1","1" +"4","3","28.12","28.1","1","1","1","1","1","1","1","1" +"4","3","28.13","28.1","1","1","1","1","1","1","1","1" +"4","3","28.14","28.1","1","1","1","1","1","1","1","1" +"4","3","28.15","28.1","1","1","1","1","1","1","1","1" +"4","3","28.21","28.2","1","1","1","1","1","1","1","1" +"4","3","28.22","28.2","1","1","1","1","1","1","1","1" +"4","3","28.23","28.2","1","1","1","1","1","1","1","1" +"4","3","28.24","28.2","1","1","1","1","1","1","1","1" +"4","3","28.25","28.2","1","1","1","1","1","1","1","1" +"4","3","28.29","28.2","1","1","1","1","1","1","1","1" +"4","3","28.30","28.3","1","1","1","1","1","1","1","1" +"4","3","28.41","28.4","1","1","1","1","1","1","1","1" +"4","3","28.91","28.9","1","1","1","1","1","1","1","1" +"4","3","28.92","28.9","1","1","1","1","1","1","1","1" +"4","3","28.93","28.9","1","1","1","1","1","1","1","1" +"4","3","28.94","28.9","1","1","1","1","1","1","1","1" +"4","3","28.95","28.9","1","1","1","1","1","1","1","1" +"4","3","28.96","28.9","1","1","1","1","1","1","1","1" +"4","3","28.99","28.9","1","1","1","1","1","1","1","1" +"4","3","29.10","29.1","1","1","1","1","1","1","1","1" +"4","3","29.20","29.2","1","1","1","1","1","1","1","1" +"4","3","29.31","29.3","1","1","1","1","1","1","1","1" +"4","3","29.32","29.3","1","1","1","1","1","1","1","1" +"4","3","30.11","30.1","1","1","1","1","1","1","1","1" +"4","3","30.12","30.1","1","1","1","1","1","1","1","1" +"4","3","30.20","30.2","1","1","1","1","1","1","1","1" +"4","3","30.40","30.4","1","1","1","1","1","1","1","1" +"4","3","30.91","30.9","1","1","1","1","1","1","1","1" +"4","3","30.92","30.9","1","1","1","1","1","1","1","1" +"4","3","30.99","30.9","1","1","1","1","1","1","1","1" +"4","3","32.11","32.1","1","1","1","1","1","1","1","1" +"4","3","32.12","32.1","1","1","1","1","1","1","1","1" +"4","3","32.13","32.1","1","1","1","1","1","1","1","1" +"4","3","32.20","32.2","1","1","1","1","1","1","1","1" +"4","3","32.30","32.3","1","1","1","1","1","1","1","1" +"4","3","32.40","32.4","1","1","1","1","1","1","1","1" +"4","3","32.50","32.5","1","1","1","1","1","1","1","1" +"4","3","32.91","32.9","1","1","1","1","1","1","1","1" +"4","3","32.99","32.9","1","1","1","1","1","1","1","1" +"4","3","33.11","33.1","1","1","1","1","1","1","1","1" +"4","3","33.12","33.1","1","1","1","1","1","1","1","1" +"4","3","33.13","33.1","1","1","1","1","1","1","1","1" +"4","3","33.14","33.1","1","1","1","1","1","1","1","1" +"4","3","33.15","33.1","1","1","1","1","1","1","1","1" +"4","3","33.16","33.1","1","1","1","1","1","1","1","1" +"4","3","33.17","33.1","1","1","1","1","1","1","1","1" +"4","3","33.19","33.1","1","1","1","1","1","1","1","1" +"4","3","33.20","33.2","1","1","1","1","1","1","1","1" +"4","3","35.11","35.1","1","1","1","1","1","1","1","1" +"4","3","35.12","35.1","1","1","1","1","1","1","1","1" +"4","3","35.13","35.1","1","1","1","1","1","1","1","1" +"4","3","35.14","35.1","1","1","1","1","1","1","1","1" +"4","3","35.21","35.2","1","1","1","1","1","1","1","1" +"4","3","35.22","35.2","1","1","1","1","1","1","1","1" +"4","3","35.23","35.2","1","1","1","1","1","1","1","1" +"4","3","35.30","35.3","1","1","1","1","1","1","1","1" +"4","3","36.00","36.0","1","1","1","1","1","1","1","1" +"4","3","37.00","37.0","1","1","1","1","1","1","1","1" +"4","3","38.11","38.1","1","1","1","1","1","1","1","1" +"4","3","38.12","38.1","1","1","1","1","1","1","1","1" +"4","3","38.21","38.2","1","1","1","1","1","1","1","1" +"4","3","38.22","38.2","1","1","1","1","1","1","1","1" +"4","3","38.31","38.3","1","1","1","1","1","1","1","1" +"4","3","38.32","38.3","1","1","1","1","1","1","1","1" +"4","3","39.00","39.0","1","1","1","1","1","1","1","1" +"4","3","42.11","42.1","1","1","1","1","1","1","1","1" +"4","3","42.12","42.1","1","1","1","1","1","1","1","1" +"4","3","42.13","42.1","1","1","1","1","1","1","1","1" +"4","3","42.21","42.2","1","1","1","1","1","1","1","1" +"4","3","42.22","42.2","1","1","1","1","1","1","1","1" +"4","3","42.91","42.9","1","1","1","1","1","1","1","1" +"4","3","42.99","42.9","1","1","1","1","1","1","1","1" +"4","3","43.11","43.1","1","1","1","1","1","1","1","1" +"4","3","43.12","43.1","1","1","1","1","1","1","1","1" +"4","3","43.13","43.1","1","1","1","1","1","1","1","1" +"4","3","43.21","43.2","1","1","1","1","1","1","1","1" +"4","3","43.22","43.2","1","1","1","1","1","1","1","1" +"4","3","43.31","43.3","1","1","1","1","1","1","1","1" +"4","3","43.32","43.3","1","1","1","1","1","1","1","1" +"4","3","43.33","43.3","1","1","1","1","1","1","1","1" +"4","3","43.34","43.3","1","1","1","1","1","1","1","1" +"4","3","43.91","43.9","1","1","1","1","1","1","1","1" +"4","3","43.99","43.9","1","1","1","1","1","1","1","1" +"4","3","46.11","46.1","1","1","1","1","1","1","1","1" +"4","3","46.12","46.1","1","1","1","1","1","1","1","1" +"4","3","46.13","46.1","1","1","1","1","1","1","1","1" +"4","3","46.14","46.1","1","1","1","1","1","1","1","1" +"4","3","46.15","46.1","1","1","1","1","1","1","1","1" +"4","3","46.16","46.1","1","1","1","1","1","1","1","1" +"4","3","46.17","46.1","1","1","1","1","1","1","1","1" +"4","3","46.18","46.1","1","1","1","1","1","1","1","1" +"4","3","46.19","46.1","1","1","1","1","1","1","1","1" +"4","3","46.21","46.2","1","1","1","1","1","1","1","1" +"4","3","46.22","46.2","1","1","1","1","1","1","1","1" +"4","3","46.23","46.2","1","1","1","1","1","1","1","1" +"4","3","46.24","46.2","1","1","1","1","1","1","1","1" +"4","3","46.31","46.3","1","1","1","1","1","1","1","1" +"4","3","46.32","46.3","1","1","1","1","1","1","1","1" +"4","3","46.33","46.3","1","1","1","1","1","1","1","1" +"4","3","46.34","46.3","1","1","1","1","1","1","1","1" +"4","3","46.35","46.3","1","1","1","1","1","1","1","1" +"4","3","46.36","46.3","1","1","1","1","1","1","1","1" +"4","3","46.37","46.3","1","1","1","1","1","1","1","1" +"4","3","46.38","46.3","1","1","1","1","1","1","1","1" +"4","3","46.39","46.3","1","1","1","1","1","1","1","1" +"4","3","46.41","46.4","1","1","1","1","1","1","1","1" +"4","3","46.42","46.4","1","1","1","1","1","1","1","1" +"4","3","46.43","46.4","1","1","1","1","1","1","1","1" +"4","3","46.44","46.4","1","1","1","1","1","1","1","1" +"4","3","46.45","46.4","1","1","1","1","1","1","1","1" +"4","3","46.46","46.4","1","1","1","1","1","1","1","1" +"4","3","46.47","46.4","1","1","1","1","1","1","1","1" +"4","3","46.48","46.4","1","1","1","1","1","1","1","1" +"4","3","46.49","46.4","1","1","1","1","1","1","1","1" +"4","3","46.61","46.6","1","1","1","1","1","1","1","1" +"4","3","46.62","46.6","1","1","1","1","1","1","1","1" +"4","3","46.63","46.6","1","1","1","1","1","1","1","1" +"4","3","46.64","46.6","1","1","1","1","1","1","1","1" +"4","3","46.71","46.7","1","1","1","1","1","1","1","1" +"4","3","46.72","46.7","1","1","1","1","1","1","1","1" +"4","3","46.73","46.7","1","1","1","1","1","1","1","1" +"4","3","46.90","46.9","1","1","1","1","1","1","1","1" +"4","3","47.11","47.1","1","1","1","1","1","1","1","1" +"4","3","47.21","47.2","1","1","1","1","1","1","1","1" +"4","3","47.22","47.2","1","1","1","1","1","1","1","1" +"4","3","47.23","47.2","1","1","1","1","1","1","1","1" +"4","3","47.24","47.2","1","1","1","1","1","1","1","1" +"4","3","47.25","47.2","1","1","1","1","1","1","1","1" +"4","3","47.26","47.2","1","1","1","1","1","1","1","1" +"4","3","47.30","47.3","1","1","1","1","1","1","1","1" +"4","3","47.51","47.5","1","1","1","1","1","1","1","1" +"4","3","47.52","47.5","1","1","1","1","1","1","1","1" +"4","3","47.53","47.5","1","1","1","1","1","1","1","1" +"4","3","47.54","47.5","1","1","1","1","1","1","1","1" +"4","3","47.61","47.6","1","1","1","1","1","1","1","1" +"4","3","47.62","47.6","1","1","1","1","1","1","1","1" +"4","3","47.63","47.6","1","1","1","1","1","1","1","1" +"4","3","47.64","47.6","1","1","1","1","1","1","1","1" +"4","3","47.71","47.7","1","1","1","1","1","1","1","1" +"4","3","47.72","47.7","1","1","1","1","1","1","1","1" +"4","3","47.73","47.7","1","1","1","1","1","1","1","1" +"4","3","47.74","47.7","1","1","1","1","1","1","1","1" +"4","3","47.75","47.7","1","1","1","1","1","1","1","1" +"4","3","47.76","47.7","1","1","1","1","1","1","1","1" +"4","3","47.77","47.7","1","1","1","1","1","1","1","1" +"4","3","47.78","47.7","1","1","1","1","1","1","1","1" +"4","3","47.79","47.7","1","1","1","1","1","1","1","1" +"4","3","47.81","47.8","1","1","1","1","1","1","1","1" +"4","3","47.82","47.8","1","1","1","1","1","1","1","1" +"4","3","47.91","47.9","1","1","1","1","1","1","1","1" +"4","3","49.20","49.2","1","1","1","1","1","1","1","1" +"4","3","49.31","49.3","1","1","1","1","1","1","1","1" +"4","3","49.32","49.3","1","1","1","1","1","1","1","1" +"4","3","49.39","49.3","1","1","1","1","1","1","1","1" +"4","3","49.41","49.4","1","1","1","1","1","1","1","1" +"4","3","49.42","49.4","1","1","1","1","1","1","1","1" +"4","3","49.50","49.5","1","1","1","1","1","1","1","1" +"4","3","50.10","50.1","1","1","1","1","1","1","1","1" +"4","3","50.20","50.2","1","1","1","1","1","1","1","1" +"4","3","50.30","50.3","1","1","1","1","1","1","1","1" +"4","3","50.40","50.4","1","1","1","1","1","1","1","1" +"4","3","51.10","51.1","1","1","1","1","1","1","1","1" +"4","3","51.21","51.2","1","1","1","1","1","1","1","1" +"4","3","51.22","51.2","1","1","1","1","1","1","1","1" +"4","3","52.10","52.1","1","1","1","1","1","1","1","1" +"4","3","52.21","52.2","1","1","1","1","1","1","1","1" +"4","3","52.22","52.2","1","1","1","1","1","1","1","1" +"4","3","52.23","52.2","1","1","1","1","1","1","1","1" +"4","3","52.24","52.2","1","1","1","1","1","1","1","1" +"4","3","53.10","53.1","1","1","1","1","1","1","1","1" +"4","3","53.20","53.2","1","1","1","1","1","1","1","1" +"4","3","55.10","55.1","1","1","1","1","1","1","1","1" +"4","3","55.20","55.2","1","1","1","1","1","1","1","1" +"4","3","55.30","55.3","1","1","1","1","1","1","1","1" +"4","3","55.90","55.9","1","1","1","1","1","1","1","1" +"4","3","56.21","56.2","1","1","1","1","1","1","1","1" +"4","3","56.30","56.3","1","1","1","1","1","1","1","1" +"4","3","58.11","58.1","1","1","1","1","1","1","1","1" +"4","3","58.12","58.1","1","1","1","1","1","1","1","1" +"4","3","58.13","58.1","1","1","1","1","1","1","1","1" +"4","3","58.19","58.1","1","1","1","1","1","1","1","1" +"4","3","58.21","58.2","1","1","1","1","1","1","1","1" +"4","3","58.29","58.2","1","1","1","1","1","1","1","1" +"4","3","59.11","59.1","1","1","1","1","1","1","1","1" +"4","3","59.12","59.1","1","1","1","1","1","1","1","1" +"4","3","59.13","59.1","1","1","1","1","1","1","1","1" +"4","3","59.14","59.1","1","1","1","1","1","1","1","1" +"4","3","59.20","59.2","1","1","1","1","1","1","1","1" +"4","3","60.10","60.1","1","1","1","1","1","1","1","1" +"4","3","60.20","60.2","1","1","1","1","1","1","1","1" +"4","3","61.10","61.1","1","1","1","1","1","1","1","1" +"4","3","61.20","61.2","1","1","1","1","1","1","1","1" +"4","3","61.90","61.9","1","1","1","1","1","1","1","1" +"4","3","63.91","63.9","1","1","1","1","1","1","1","1" +"4","3","64.11","64.1","1","1","1","1","1","1","1","1" +"4","3","64.19","64.1","1","1","1","1","1","1","1","1" +"4","3","64.91","64.9","1","1","1","1","1","1","1","1" +"4","3","64.92","64.9","1","1","1","1","1","1","1","1" +"4","3","64.99","64.9","1","1","1","1","1","1","1","1" +"4","3","65.11","65.1","1","1","1","1","1","1","1","1" +"4","3","65.12","65.1","1","1","1","1","1","1","1","1" +"4","3","65.20","65.2","1","1","1","1","1","1","1","1" +"4","3","65.30","65.3","1","1","1","1","1","1","1","1" +"4","3","66.11","66.1","1","1","1","1","1","1","1","1" +"4","3","66.12","66.1","1","1","1","1","1","1","1","1" +"4","3","66.19","66.1","1","1","1","1","1","1","1","1" +"4","3","66.21","66.2","1","1","1","1","1","1","1","1" +"4","3","66.22","66.2","1","1","1","1","1","1","1","1" +"4","3","66.29","66.2","1","1","1","1","1","1","1","1" +"4","3","66.30","66.3","1","1","1","1","1","1","1","1" +"4","3","68.20","68.2","1","1","1","1","1","1","1","1" +"4","3","68.31","68.3","1","1","1","1","1","1","1","1" +"4","3","68.32","68.3","1","1","1","1","1","1","1","1" +"4","3","69.10","69.1","1","1","1","1","1","1","1","1" +"4","3","69.20","69.2","1","1","1","1","1","1","1","1" +"4","3","70.10","70.1","1","1","1","1","1","1","1","1" +"4","3","71.11","71.1","1","1","1","1","1","1","1","1" +"4","3","71.12","71.1","1","1","1","1","1","1","1","1" +"4","3","71.20","71.2","1","1","1","1","1","1","1","1" +"4","3","72.20","72.2","1","1","1","1","1","1","1","1" +"4","3","73.11","73.1","1","1","1","1","1","1","1","1" +"4","3","73.12","73.1","1","1","1","1","1","1","1","1" +"4","3","73.20","73.2","1","1","1","1","1","1","1","1" +"4","3","74.20","74.2","1","1","1","1","1","1","1","1" +"4","3","74.30","74.3","1","1","1","1","1","1","1","1" +"4","3","75.00","75.0","1","1","1","1","1","1","1","1" +"4","3","77.11","77.1","1","1","1","1","1","1","1","1" +"4","3","77.12","77.1","1","1","1","1","1","1","1","1" +"4","3","77.21","77.2","1","1","1","1","1","1","1","1" +"4","3","77.22","77.2","1","1","1","1","1","1","1","1" +"4","3","77.31","77.3","1","1","1","1","1","1","1","1" +"4","3","77.32","77.3","1","1","1","1","1","1","1","1" +"4","3","77.33","77.3","1","1","1","1","1","1","1","1" +"4","3","77.34","77.3","1","1","1","1","1","1","1","1" +"4","3","77.35","77.3","1","1","1","1","1","1","1","1" +"4","3","77.39","77.3","1","1","1","1","1","1","1","1" +"4","3","77.40","77.4","1","1","1","1","1","1","1","1" +"4","3","78.10","78.1","1","1","1","1","1","1","1","1" +"4","3","78.20","78.2","1","1","1","1","1","1","1","1" +"4","3","79.11","79.1","1","1","1","1","1","1","1","1" +"4","3","79.12","79.1","1","1","1","1","1","1","1","1" +"4","3","79.90","79.9","1","1","1","1","1","1","1","1" +"4","3","81.10","81.1","1","1","1","1","1","1","1","1" +"4","3","81.21","81.2","1","1","1","1","1","1","1","1" +"4","3","81.22","81.2","1","1","1","1","1","1","1","1" +"4","3","81.30","81.3","1","1","1","1","1","1","1","1" +"4","3","82.20","82.2","1","1","1","1","1","1","1","1" +"4","3","82.30","82.3","1","1","1","1","1","1","1","1" +"4","3","82.91","82.9","1","1","1","1","1","1","1","1" +"4","3","82.92","82.9","1","1","1","1","1","1","1","1" +"4","3","82.99","82.9","1","1","1","1","1","1","1","1" +"4","3","84.11","84.1","1","1","1","1","1","1","1","1" +"4","3","84.12","84.1","1","1","1","1","1","1","1","1" +"4","3","84.13","84.1","1","1","1","1","1","1","1","1" +"4","3","84.21","84.2","1","1","1","1","1","1","1","1" +"4","3","84.22","84.2","1","1","1","1","1","1","1","1" +"4","3","84.23","84.2","1","1","1","1","1","1","1","1" +"4","3","84.24","84.2","1","1","1","1","1","1","1","1" +"4","3","84.25","84.2","1","1","1","1","1","1","1","1" +"4","3","84.30","84.3","1","1","1","1","1","1","1","1" +"4","3","85.10","85.1","1","1","1","1","1","1","1","1" +"4","3","85.20","85.2","1","1","1","1","1","1","1","1" +"4","3","85.31","85.3","1","1","1","1","1","1","1","1" +"4","3","85.32","85.3","1","1","1","1","1","1","1","1" +"4","3","85.51","85.5","1","1","1","1","1","1","1","1" +"4","3","85.52","85.5","1","1","1","1","1","1","1","1" +"4","3","85.53","85.5","1","1","1","1","1","1","1","1" +"4","3","85.59","85.5","1","1","1","1","1","1","1","1" +"4","3","86.10","86.1","1","1","1","1","1","1","1","1" +"4","3","86.21","86.2","1","1","1","1","1","1","1","1" +"4","3","86.22","86.2","1","1","1","1","1","1","1","1" +"4","3","86.23","86.2","1","1","1","1","1","1","1","1" +"4","3","87.10","87.1","1","1","1","1","1","1","1","1" +"4","3","87.20","87.2","1","1","1","1","1","1","1","1" +"4","3","87.30","87.3","1","1","1","1","1","1","1","1" +"4","3","88.10","88.1","1","1","1","1","1","1","1","1" +"4","3","88.91","88.9","1","1","1","1","1","1","1","1" +"4","3","88.99","88.9","1","1","1","1","1","1","1","1" +"4","3","92.00","92.0","1","1","1","1","1","1","1","1" +"4","3","93.11","93.1","1","1","1","1","1","1","1","1" +"4","3","93.12","93.1","1","1","1","1","1","1","1","1" +"4","3","93.13","93.1","1","1","1","1","1","1","1","1" +"4","3","93.19","93.1","1","1","1","1","1","1","1","1" +"4","3","93.21","93.2","1","1","1","1","1","1","1","1" +"4","3","93.29","93.2","1","1","1","1","1","1","1","1" +"4","3","94.11","94.1","1","1","1","1","1","1","1","1" +"4","3","94.12","94.1","1","1","1","1","1","1","1","1" +"4","3","94.20","94.2","1","1","1","1","1","1","1","1" +"4","3","94.91","94.9","1","1","1","1","1","1","1","1" +"4","3","94.92","94.9","1","1","1","1","1","1","1","1" +"4","3","94.99","94.9","1","1","1","1","1","1","1","1" +"4","3","95.21","95.2","1","1","1","1","1","1","1","1" +"4","3","95.22","95.2","1","1","1","1","1","1","1","1" +"4","3","95.23","95.2","1","1","1","1","1","1","1","1" +"4","3","95.24","95.2","1","1","1","1","1","1","1","1" +"4","3","95.25","95.2","1","1","1","1","1","1","1","1" +"4","3","95.29","95.2","1","1","1","1","1","1","1","1" +"4","3","97.00","97.0","1","1","1","1","1","1","1","1" +"4","3","98.10","98.1","1","1","1","1","1","1","1","1" +"4","3","98.20","98.2","1","1","1","1","1","1","1","1" +"4","3","99.00","99.0","1","1","1","1","1","1","1","1" +"4","4","01.11","01.11","1","1","1","1","1","1","1","1" +"4","4","01.12","01.12","1","1","1","1","1","1","1","1" +"4","4","01.13","01.13","1","1","1","1","1","1","1","1" +"4","4","01.14","01.14","1","1","1","1","1","1","1","1" +"4","4","01.15","01.15","1","1","1","1","1","1","1","1" +"4","4","01.16","01.16","1","1","1","1","1","1","1","1" +"4","4","01.19","01.19","1","1","1","1","1","1","1","1" +"4","4","01.21","01.21","1","1","1","1","1","1","1","1" +"4","4","01.22","01.22","1","1","1","1","1","1","1","1" +"4","4","01.23","01.23","1","1","1","1","1","1","1","1" +"4","4","01.24","01.24","1","1","1","1","1","1","1","1" +"4","4","01.25","01.25","1","1","1","1","1","1","1","1" +"4","4","01.26","01.26","1","1","1","1","1","1","1","1" +"4","4","01.27","01.27","1","1","1","1","1","1","1","1" +"4","4","01.28","01.28","1","1","1","1","1","1","1","1" +"4","4","01.29","01.29","1","1","1","1","1","1","1","1" +"4","4","01.30","01.30","1","1","1","1","1","1","1","1" +"4","4","01.41","01.41","1","1","1","1","1","1","1","1" +"4","4","01.42","01.42","1","1","1","1","1","1","1","1" +"4","4","01.43","01.43","1","1","1","1","1","1","1","1" +"4","4","01.44","01.44","1","1","1","1","1","1","1","1" +"4","4","01.45","01.45","1","1","1","1","1","1","1","1" +"4","4","01.46","01.46","1","1","1","1","1","1","1","1" +"4","4","01.47","01.47","1","1","1","1","1","1","1","1" +"4","4","01.50","01.50","1","1","1","1","1","1","1","1" +"4","4","01.61","01.61","1","1","1","1","1","1","1","1" +"4","4","01.62","01.62","1","1","1","1","1","1","1","1" +"4","4","01.63","01.63","1","1","1","1","1","1","1","1" +"4","4","01.70","01.70","1","1","1","1","1","1","1","1" +"4","4","02.10","02.10","1","1","1","1","1","1","1","1" +"4","4","02.20","02.20","1","1","1","1","1","1","1","1" +"4","4","02.30","02.30","1","1","1","1","1","1","1","1" +"4","4","02.40","02.40","1","1","1","1","1","1","1","1" +"4","4","03.11","03.11","1","1","1","1","1","1","1","1" +"4","4","03.12","03.12","1","1","1","1","1","1","1","1" +"4","4","03.21","03.21","1","1","1","1","1","1","1","1" +"4","4","03.22","03.22","1","1","1","1","1","1","1","1" +"4","4","05.10","05.10","1","1","1","1","1","1","1","1" +"4","4","05.20","05.20","1","1","1","1","1","1","1","1" +"4","4","06.10","06.10","1","1","1","1","1","1","1","1" +"4","4","06.20","06.20","1","1","1","1","1","1","1","1" +"4","4","07.10","07.10","1","1","1","1","1","1","1","1" +"4","4","07.21","07.21","1","1","1","1","1","1","1","1" +"4","4","07.29","07.29","1","1","1","1","1","1","1","1" +"4","4","08.11","08.11","1","1","1","1","1","1","1","1" +"4","4","08.12","08.12","1","1","1","1","1","1","1","1" +"4","4","08.91","08.91","1","1","1","1","1","1","1","1" +"4","4","08.92","08.92","1","1","1","1","1","1","1","1" +"4","4","08.93","08.93","1","1","1","1","1","1","1","1" +"4","4","08.99","08.99","1","1","1","1","1","1","1","1" +"4","4","09.10","09.10","1","1","1","1","1","1","1","1" +"4","4","09.90","09.90","1","1","1","1","1","1","1","1" +"4","4","10.11","10.11","1","1","1","1","1","1","1","1" +"4","4","10.12","10.12","1","1","1","1","1","1","1","1" +"4","4","10.13","10.13","1","1","1","1","1","1","1","1" +"4","4","10.20","10.20","1","1","1","1","1","1","1","1" +"4","4","10.31","10.31","1","1","1","1","1","1","1","1" +"4","4","10.32","10.32","1","1","1","1","1","1","1","1" +"4","4","10.39","10.39","1","1","1","1","1","1","1","1" +"4","4","10.41","10.41","1","1","1","1","1","1","1","1" +"4","4","10.42","10.42","1","1","1","1","1","1","1","1" +"4","4","10.51","10.51","1","1","1","1","1","1","1","1" +"4","4","10.52","10.52","1","1","1","1","1","1","1","1" +"4","4","10.61","10.61","1","1","1","1","1","1","1","1" +"4","4","10.62","10.62","1","1","1","1","1","1","1","1" +"4","4","10.71","10.71","1","1","1","1","1","1","1","1" +"4","4","10.72","10.72","1","1","1","1","1","1","1","1" +"4","4","10.73","10.73","1","1","1","1","1","1","1","1" +"4","4","10.81","10.81","1","1","1","1","1","1","1","1" +"4","4","10.82","10.82","1","1","1","1","1","1","1","1" +"4","4","10.83","10.83","1","1","1","1","1","1","1","1" +"4","4","10.84","10.84","1","1","1","1","1","1","1","1" +"4","4","10.85","10.85","1","1","1","1","1","1","1","1" +"4","4","10.86","10.86","1","1","1","1","1","1","1","1" +"4","4","10.89","10.89","1","1","1","1","1","1","1","1" +"4","4","10.91","10.91","1","1","1","1","1","1","1","1" +"4","4","10.92","10.92","1","1","1","1","1","1","1","1" +"4","4","11.01","11.01","1","1","1","1","1","1","1","1" +"4","4","11.02","11.02","1","1","1","1","1","1","1","1" +"4","4","11.03","11.03","1","1","1","1","1","1","1","1" +"4","4","11.04","11.04","1","1","1","1","1","1","1","1" +"4","4","11.05","11.05","1","1","1","1","1","1","1","1" +"4","4","11.06","11.06","1","1","1","1","1","1","1","1" +"4","4","11.07","11.07","1","1","1","1","1","1","1","1" +"4","4","12.00","12.00","1","1","1","1","1","1","1","1" +"4","4","13.10","13.10","1","1","1","1","1","1","1","1" +"4","4","13.20","13.20","1","1","1","1","1","1","1","1" +"4","4","13.30","13.30","1","1","1","1","1","1","1","1" +"4","4","13.91","13.91","1","1","1","1","1","1","1","1" +"4","4","13.92","13.92","1","1","1","1","1","1","1","1" +"4","4","13.93","13.93","1","1","1","1","1","1","1","1" +"4","4","13.94","13.94","1","1","1","1","1","1","1","1" +"4","4","13.95","13.95","1","1","1","1","1","1","1","1" +"4","4","13.96","13.96","1","1","1","1","1","1","1","1" +"4","4","13.99","13.99","1","1","1","1","1","1","1","1" +"4","4","15.11","15.11","1","1","1","1","1","1","1","1" +"4","4","15.12","15.12","1","1","1","1","1","1","1","1" +"4","4","15.20","15.20","1","1","1","1","1","1","1","1" +"4","4","16.21","16.21","1","1","1","1","1","1","1","1" +"4","4","16.22","16.22","1","1","1","1","1","1","1","1" +"4","4","16.23","16.23","1","1","1","1","1","1","1","1" +"4","4","16.24","16.24","1","1","1","1","1","1","1","1" +"4","4","17.11","17.11","1","1","1","1","1","1","1","1" +"4","4","17.12","17.12","1","1","1","1","1","1","1","1" +"4","4","17.21","17.21","1","1","1","1","1","1","1","1" +"4","4","17.22","17.22","1","1","1","1","1","1","1","1" +"4","4","17.23","17.23","1","1","1","1","1","1","1","1" +"4","4","17.24","17.24","1","1","1","1","1","1","1","1" +"4","4","18.11","18.11","1","1","1","1","1","1","1","1" +"4","4","18.12","18.12","1","1","1","1","1","1","1","1" +"4","4","18.13","18.13","1","1","1","1","1","1","1","1" +"4","4","18.14","18.14","1","1","1","1","1","1","1","1" +"4","4","18.20","18.20","1","1","1","1","1","1","1","1" +"4","4","19.10","19.10","1","1","1","1","1","1","1","1" +"4","4","19.20","19.20","1","1","1","1","1","1","1","1" +"4","4","20.11","20.11","1","1","1","1","1","1","1","1" +"4","4","20.12","20.12","1","1","1","1","1","1","1","1" +"4","4","20.13","20.13","1","1","1","1","1","1","1","1" +"4","4","20.14","20.14","1","1","1","1","1","1","1","1" +"4","4","20.15","20.15","1","1","1","1","1","1","1","1" +"4","4","20.16","20.16","1","1","1","1","1","1","1","1" +"4","4","20.17","20.17","1","1","1","1","1","1","1","1" +"4","4","20.20","20.20","1","1","1","1","1","1","1","1" +"4","4","20.30","20.30","1","1","1","1","1","1","1","1" +"4","4","20.41","20.41","1","1","1","1","1","1","1","1" +"4","4","20.42","20.42","1","1","1","1","1","1","1","1" +"4","4","20.51","20.51","1","1","1","1","1","1","1","1" +"4","4","20.59","20.59","1","1","1","1","1","1","1","1" +"4","4","20.60","20.60","1","1","1","1","1","1","1","1" +"4","4","21.10","21.10","1","1","1","1","1","1","1","1" +"4","4","21.20","21.20","1","1","1","1","1","1","1","1" +"4","4","22.11","22.11","1","1","1","1","1","1","1","1" +"4","4","22.21","22.21","1","1","1","1","1","1","1","1" +"4","4","22.22","22.22","1","1","1","1","1","1","1","1" +"4","4","22.23","22.23","1","1","1","1","1","1","1","1" +"4","4","23.11","23.11","1","1","1","1","1","1","1","1" +"4","4","23.12","23.12","1","1","1","1","1","1","1","1" +"4","4","23.13","23.13","1","1","1","1","1","1","1","1" +"4","4","23.14","23.14","1","1","1","1","1","1","1","1" +"4","4","23.20","23.20","1","1","1","1","1","1","1","1" +"4","4","23.31","23.31","1","1","1","1","1","1","1","1" +"4","4","23.32","23.32","1","1","1","1","1","1","1","1" +"4","4","23.41","23.41","1","1","1","1","1","1","1","1" +"4","4","23.42","23.42","1","1","1","1","1","1","1","1" +"4","4","23.43","23.43","1","1","1","1","1","1","1","1" +"4","4","23.44","23.44","1","1","1","1","1","1","1","1" +"4","4","23.51","23.51","1","1","1","1","1","1","1","1" +"4","4","23.52","23.52","1","1","1","1","1","1","1","1" +"4","4","23.61","23.61","1","1","1","1","1","1","1","1" +"4","4","23.62","23.62","1","1","1","1","1","1","1","1" +"4","4","23.63","23.63","1","1","1","1","1","1","1","1" +"4","4","23.64","23.64","1","1","1","1","1","1","1","1" +"4","4","23.65","23.65","1","1","1","1","1","1","1","1" +"4","4","23.70","23.70","1","1","1","1","1","1","1","1" +"4","4","23.91","23.91","1","1","1","1","1","1","1","1" +"4","4","23.99","23.99","1","1","1","1","1","1","1","1" +"4","4","24.10","24.10","1","1","1","1","1","1","1","1" +"4","4","24.20","24.20","1","1","1","1","1","1","1","1" +"4","4","24.31","24.31","1","1","1","1","1","1","1","1" +"4","4","24.32","24.32","1","1","1","1","1","1","1","1" +"4","4","24.33","24.33","1","1","1","1","1","1","1","1" +"4","4","24.34","24.34","1","1","1","1","1","1","1","1" +"4","4","24.41","24.41","1","1","1","1","1","1","1","1" +"4","4","24.42","24.42","1","1","1","1","1","1","1","1" +"4","4","24.43","24.43","1","1","1","1","1","1","1","1" +"4","4","24.44","24.44","1","1","1","1","1","1","1","1" +"4","4","24.45","24.45","1","1","1","1","1","1","1","1" +"4","4","24.46","24.46","1","1","1","1","1","1","1","1" +"4","4","24.51","24.51","1","1","1","1","1","1","1","1" +"4","4","24.52","24.52","1","1","1","1","1","1","1","1" +"4","4","24.53","24.53","1","1","1","1","1","1","1","1" +"4","4","24.54","24.54","1","1","1","1","1","1","1","1" +"4","4","25.11","25.11","1","1","1","1","1","1","1","1" +"4","4","25.12","25.12","1","1","1","1","1","1","1","1" +"4","4","25.21","25.21","1","1","1","1","1","1","1","1" +"4","4","25.30","25.30","1","1","1","1","1","1","1","1" +"4","4","25.40","25.40","1","1","1","1","1","1","1","1" +"4","4","25.61","25.61","1","1","1","1","1","1","1","1" +"4","4","25.62","25.62","1","1","1","1","1","1","1","1" +"4","4","25.91","25.91","1","1","1","1","1","1","1","1" +"4","4","25.92","25.92","1","1","1","1","1","1","1","1" +"4","4","25.93","25.93","1","1","1","1","1","1","1","1" +"4","4","25.94","25.94","1","1","1","1","1","1","1","1" +"4","4","25.99","25.99","1","1","1","1","1","1","1","1" +"4","4","26.11","26.11","1","1","1","1","1","1","1","1" +"4","4","26.12","26.12","1","1","1","1","1","1","1","1" +"4","4","26.20","26.20","1","1","1","1","1","1","1","1" +"4","4","26.30","26.30","1","1","1","1","1","1","1","1" +"4","4","26.40","26.40","1","1","1","1","1","1","1","1" +"4","4","26.51","26.51","1","1","1","1","1","1","1","1" +"4","4","26.52","26.52","1","1","1","1","1","1","1","1" +"4","4","26.60","26.60","1","1","1","1","1","1","1","1" +"4","4","26.70","26.70","1","1","1","1","1","1","1","1" +"4","4","27.11","27.11","1","1","1","1","1","1","1","1" +"4","4","27.12","27.12","1","1","1","1","1","1","1","1" +"4","4","27.20","27.20","1","1","1","1","1","1","1","1" +"4","4","27.31","27.31","1","1","1","1","1","1","1","1" +"4","4","27.32","27.32","1","1","1","1","1","1","1","1" +"4","4","27.33","27.33","1","1","1","1","1","1","1","1" +"4","4","27.40","27.40","1","1","1","1","1","1","1","1" +"4","4","27.51","27.51","1","1","1","1","1","1","1","1" +"4","4","27.52","27.52","1","1","1","1","1","1","1","1" +"4","4","27.90","27.90","1","1","1","1","1","1","1","1" +"4","4","28.11","28.11","1","1","1","1","1","1","1","1" +"4","4","28.12","28.12","1","1","1","1","1","1","1","1" +"4","4","28.13","28.13","1","1","1","1","1","1","1","1" +"4","4","28.14","28.14","1","1","1","1","1","1","1","1" +"4","4","28.15","28.15","1","1","1","1","1","1","1","1" +"4","4","28.21","28.21","1","1","1","1","1","1","1","1" +"4","4","28.22","28.22","1","1","1","1","1","1","1","1" +"4","4","28.23","28.23","1","1","1","1","1","1","1","1" +"4","4","28.24","28.24","1","1","1","1","1","1","1","1" +"4","4","28.25","28.25","1","1","1","1","1","1","1","1" +"4","4","28.29","28.29","1","1","1","1","1","1","1","1" +"4","4","28.30","28.30","1","1","1","1","1","1","1","1" +"4","4","28.41","28.41","1","1","1","1","1","1","1","1" +"4","4","28.91","28.91","1","1","1","1","1","1","1","1" +"4","4","28.92","28.92","1","1","1","1","1","1","1","1" +"4","4","28.93","28.93","1","1","1","1","1","1","1","1" +"4","4","28.94","28.94","1","1","1","1","1","1","1","1" +"4","4","28.95","28.95","1","1","1","1","1","1","1","1" +"4","4","28.96","28.96","1","1","1","1","1","1","1","1" +"4","4","28.99","28.99","1","1","1","1","1","1","1","1" +"4","4","29.10","29.10","1","1","1","1","1","1","1","1" +"4","4","29.20","29.20","1","1","1","1","1","1","1","1" +"4","4","29.31","29.31","1","1","1","1","1","1","1","1" +"4","4","29.32","29.32","1","1","1","1","1","1","1","1" +"4","4","30.11","30.11","1","1","1","1","1","1","1","1" +"4","4","30.12","30.12","1","1","1","1","1","1","1","1" +"4","4","30.20","30.20","1","1","1","1","1","1","1","1" +"4","4","30.40","30.40","1","1","1","1","1","1","1","1" +"4","4","30.91","30.91","1","1","1","1","1","1","1","1" +"4","4","30.92","30.92","1","1","1","1","1","1","1","1" +"4","4","30.99","30.99","1","1","1","1","1","1","1","1" +"4","4","32.11","32.11","1","1","1","1","1","1","1","1" +"4","4","32.12","32.12","1","1","1","1","1","1","1","1" +"4","4","32.13","32.13","1","1","1","1","1","1","1","1" +"4","4","32.20","32.20","1","1","1","1","1","1","1","1" +"4","4","32.30","32.30","1","1","1","1","1","1","1","1" +"4","4","32.40","32.40","1","1","1","1","1","1","1","1" +"4","4","32.50","32.50","1","1","1","1","1","1","1","1" +"4","4","32.91","32.91","1","1","1","1","1","1","1","1" +"4","4","32.99","32.99","1","1","1","1","1","1","1","1" +"4","4","33.11","33.11","1","1","1","1","1","1","1","1" +"4","4","33.12","33.12","1","1","1","1","1","1","1","1" +"4","4","33.13","33.13","1","1","1","1","1","1","1","1" +"4","4","33.14","33.14","1","1","1","1","1","1","1","1" +"4","4","33.15","33.15","1","1","1","1","1","1","1","1" +"4","4","33.16","33.16","1","1","1","1","1","1","1","1" +"4","4","33.17","33.17","1","1","1","1","1","1","1","1" +"4","4","33.19","33.19","1","1","1","1","1","1","1","1" +"4","4","33.20","33.20","1","1","1","1","1","1","1","1" +"4","4","35.11","35.11","1","1","1","1","1","1","1","1" +"4","4","35.12","35.12","1","1","1","1","1","1","1","1" +"4","4","35.13","35.13","1","1","1","1","1","1","1","1" +"4","4","35.14","35.14","1","1","1","1","1","1","1","1" +"4","4","35.21","35.21","1","1","1","1","1","1","1","1" +"4","4","35.22","35.22","1","1","1","1","1","1","1","1" +"4","4","35.23","35.23","1","1","1","1","1","1","1","1" +"4","4","35.30","35.30","1","1","1","1","1","1","1","1" +"4","4","36.00","36.00","1","1","1","1","1","1","1","1" +"4","4","37.00","37.00","1","1","1","1","1","1","1","1" +"4","4","38.11","38.11","1","1","1","1","1","1","1","1" +"4","4","38.12","38.12","1","1","1","1","1","1","1","1" +"4","4","38.21","38.21","1","1","1","1","1","1","1","1" +"4","4","38.22","38.22","1","1","1","1","1","1","1","1" +"4","4","38.31","38.31","1","1","1","1","1","1","1","1" +"4","4","38.32","38.32","1","1","1","1","1","1","1","1" +"4","4","39.00","39.00","1","1","1","1","1","1","1","1" +"4","4","42.11","42.11","1","1","1","1","1","1","1","1" +"4","4","42.12","42.12","1","1","1","1","1","1","1","1" +"4","4","42.13","42.13","1","1","1","1","1","1","1","1" +"4","4","42.21","42.21","1","1","1","1","1","1","1","1" +"4","4","42.22","42.22","1","1","1","1","1","1","1","1" +"4","4","42.91","42.91","1","1","1","1","1","1","1","1" +"4","4","42.99","42.99","1","1","1","1","1","1","1","1" +"4","4","43.11","43.11","1","1","1","1","1","1","1","1" +"4","4","43.12","43.12","1","1","1","1","1","1","1","1" +"4","4","43.13","43.13","1","1","1","1","1","1","1","1" +"4","4","43.21","43.21","1","1","1","1","1","1","1","1" +"4","4","43.22","43.22","1","1","1","1","1","1","1","1" +"4","4","43.31","43.31","1","1","1","1","1","1","1","1" +"4","4","43.32","43.32","1","1","1","1","1","1","1","1" +"4","4","43.33","43.33","1","1","1","1","1","1","1","1" +"4","4","43.34","43.34","1","1","1","1","1","1","1","1" +"4","4","43.91","43.91","1","1","1","1","1","1","1","1" +"4","4","43.99","43.99","1","1","1","1","1","1","1","1" +"4","4","46.11","46.11","1","1","1","1","1","1","1","1" +"4","4","46.12","46.12","1","1","1","1","1","1","1","1" +"4","4","46.13","46.13","1","1","1","1","1","1","1","1" +"4","4","46.14","46.14","1","1","1","1","1","1","1","1" +"4","4","46.15","46.15","1","1","1","1","1","1","1","1" +"4","4","46.16","46.16","1","1","1","1","1","1","1","1" +"4","4","46.17","46.17","1","1","1","1","1","1","1","1" +"4","4","46.18","46.18","1","1","1","1","1","1","1","1" +"4","4","46.19","46.19","1","1","1","1","1","1","1","1" +"4","4","46.21","46.21","1","1","1","1","1","1","1","1" +"4","4","46.22","46.22","1","1","1","1","1","1","1","1" +"4","4","46.23","46.23","1","1","1","1","1","1","1","1" +"4","4","46.24","46.24","1","1","1","1","1","1","1","1" +"4","4","46.31","46.31","1","1","1","1","1","1","1","1" +"4","4","46.32","46.32","1","1","1","1","1","1","1","1" +"4","4","46.33","46.33","1","1","1","1","1","1","1","1" +"4","4","46.34","46.34","1","1","1","1","1","1","1","1" +"4","4","46.35","46.35","1","1","1","1","1","1","1","1" +"4","4","46.36","46.36","1","1","1","1","1","1","1","1" +"4","4","46.37","46.37","1","1","1","1","1","1","1","1" +"4","4","46.38","46.38","1","1","1","1","1","1","1","1" +"4","4","46.39","46.39","1","1","1","1","1","1","1","1" +"4","4","46.41","46.41","1","1","1","1","1","1","1","1" +"4","4","46.42","46.42","1","1","1","1","1","1","1","1" +"4","4","46.43","46.43","1","1","1","1","1","1","1","1" +"4","4","46.44","46.44","1","1","1","1","1","1","1","1" +"4","4","46.45","46.45","1","1","1","1","1","1","1","1" +"4","4","46.46","46.46","1","1","1","1","1","1","1","1" +"4","4","46.47","46.47","1","1","1","1","1","1","1","1" +"4","4","46.48","46.48","1","1","1","1","1","1","1","1" +"4","4","46.49","46.49","1","1","1","1","1","1","1","1" +"4","4","46.61","46.61","1","1","1","1","1","1","1","1" +"4","4","46.62","46.62","1","1","1","1","1","1","1","1" +"4","4","46.63","46.63","1","1","1","1","1","1","1","1" +"4","4","46.64","46.64","1","1","1","1","1","1","1","1" +"4","4","46.71","46.71","1","1","1","1","1","1","1","1" +"4","4","46.72","46.72","1","1","1","1","1","1","1","1" +"4","4","46.73","46.73","1","1","1","1","1","1","1","1" +"4","4","46.90","46.90","1","1","1","1","1","1","1","1" +"4","4","47.11","47.11","1","1","1","1","1","1","1","1" +"4","4","47.21","47.21","1","1","1","1","1","1","1","1" +"4","4","47.22","47.22","1","1","1","1","1","1","1","1" +"4","4","47.23","47.23","1","1","1","1","1","1","1","1" +"4","4","47.24","47.24","1","1","1","1","1","1","1","1" +"4","4","47.25","47.25","1","1","1","1","1","1","1","1" +"4","4","47.26","47.26","1","1","1","1","1","1","1","1" +"4","4","47.30","47.30","1","1","1","1","1","1","1","1" +"4","4","47.51","47.51","1","1","1","1","1","1","1","1" +"4","4","47.52","47.52","1","1","1","1","1","1","1","1" +"4","4","47.53","47.53","1","1","1","1","1","1","1","1" +"4","4","47.54","47.54","1","1","1","1","1","1","1","1" +"4","4","47.61","47.61","1","1","1","1","1","1","1","1" +"4","4","47.62","47.62","1","1","1","1","1","1","1","1" +"4","4","47.63","47.63","1","1","1","1","1","1","1","1" +"4","4","47.64","47.64","1","1","1","1","1","1","1","1" +"4","4","47.71","47.71","1","1","1","1","1","1","1","1" +"4","4","47.72","47.72","1","1","1","1","1","1","1","1" +"4","4","47.73","47.73","1","1","1","1","1","1","1","1" +"4","4","47.74","47.74","1","1","1","1","1","1","1","1" +"4","4","47.75","47.75","1","1","1","1","1","1","1","1" +"4","4","47.76","47.76","1","1","1","1","1","1","1","1" +"4","4","47.77","47.77","1","1","1","1","1","1","1","1" +"4","4","47.78","47.78","1","1","1","1","1","1","1","1" +"4","4","47.79","47.79","1","1","1","1","1","1","1","1" +"4","4","47.81","47.81","1","1","1","1","1","1","1","1" +"4","4","47.82","47.82","1","1","1","1","1","1","1","1" +"4","4","47.91","47.91","1","1","1","1","1","1","1","1" +"4","4","49.20","49.20","1","1","1","1","1","1","1","1" +"4","4","49.31","49.31","1","1","1","1","1","1","1","1" +"4","4","49.32","49.32","1","1","1","1","1","1","1","1" +"4","4","49.39","49.39","1","1","1","1","1","1","1","1" +"4","4","49.41","49.41","1","1","1","1","1","1","1","1" +"4","4","49.42","49.42","1","1","1","1","1","1","1","1" +"4","4","49.50","49.50","1","1","1","1","1","1","1","1" +"4","4","50.10","50.10","1","1","1","1","1","1","1","1" +"4","4","50.20","50.20","1","1","1","1","1","1","1","1" +"4","4","50.30","50.30","1","1","1","1","1","1","1","1" +"4","4","50.40","50.40","1","1","1","1","1","1","1","1" +"4","4","51.10","51.10","1","1","1","1","1","1","1","1" +"4","4","51.21","51.21","1","1","1","1","1","1","1","1" +"4","4","51.22","51.22","1","1","1","1","1","1","1","1" +"4","4","52.10","52.10","1","1","1","1","1","1","1","1" +"4","4","52.21","52.21","1","1","1","1","1","1","1","1" +"4","4","52.22","52.22","1","1","1","1","1","1","1","1" +"4","4","52.23","52.23","1","1","1","1","1","1","1","1" +"4","4","52.24","52.24","1","1","1","1","1","1","1","1" +"4","4","53.10","53.10","1","1","1","1","1","1","1","1" +"4","4","53.20","53.20","1","1","1","1","1","1","1","1" +"4","4","55.10","55.10","1","1","1","1","1","1","1","1" +"4","4","55.20","55.20","1","1","1","1","1","1","1","1" +"4","4","55.30","55.30","1","1","1","1","1","1","1","1" +"4","4","55.90","55.90","1","1","1","1","1","1","1","1" +"4","4","56.21","56.21","1","1","1","1","1","1","1","1" +"4","4","56.30","56.30","1","1","1","1","1","1","1","1" +"4","4","58.11","58.11","1","1","1","1","1","1","1","1" +"4","4","58.12","58.12","1","1","1","1","1","1","1","1" +"4","4","58.13","58.13","1","1","1","1","1","1","1","1" +"4","4","58.19","58.19","1","1","1","1","1","1","1","1" +"4","4","58.21","58.21","1","1","1","1","1","1","1","1" +"4","4","58.29","58.29","1","1","1","1","1","1","1","1" +"4","4","59.11","59.11","1","1","1","1","1","1","1","1" +"4","4","59.12","59.12","1","1","1","1","1","1","1","1" +"4","4","59.13","59.13","1","1","1","1","1","1","1","1" +"4","4","59.14","59.14","1","1","1","1","1","1","1","1" +"4","4","59.20","59.20","1","1","1","1","1","1","1","1" +"4","4","60.10","60.10","1","1","1","1","1","1","1","1" +"4","4","60.20","60.20","1","1","1","1","1","1","1","1" +"4","4","61.10","61.10","1","1","1","1","1","1","1","1" +"4","4","61.20","61.20","1","1","1","1","1","1","1","1" +"4","4","61.90","61.90","1","1","1","1","1","1","1","1" +"4","4","63.91","63.91","1","1","1","1","1","1","1","1" +"4","4","64.11","64.11","1","1","1","1","1","1","1","1" +"4","4","64.19","64.19","1","1","1","1","1","1","1","1" +"4","4","64.91","64.91","1","1","1","1","1","1","1","1" +"4","4","64.92","64.92","1","1","1","1","1","1","1","1" +"4","4","64.99","64.99","1","1","1","1","1","1","1","1" +"4","4","65.11","65.11","1","1","1","1","1","1","1","1" +"4","4","65.12","65.12","1","1","1","1","1","1","1","1" +"4","4","65.20","65.20","1","1","1","1","1","1","1","1" +"4","4","65.30","65.30","1","1","1","1","1","1","1","1" +"4","4","66.11","66.11","1","1","1","1","1","1","1","1" +"4","4","66.12","66.12","1","1","1","1","1","1","1","1" +"4","4","66.19","66.19","1","1","1","1","1","1","1","1" +"4","4","66.21","66.21","1","1","1","1","1","1","1","1" +"4","4","66.22","66.22","1","1","1","1","1","1","1","1" +"4","4","66.29","66.29","1","1","1","1","1","1","1","1" +"4","4","66.30","66.30","1","1","1","1","1","1","1","1" +"4","4","68.20","68.20","1","1","1","1","1","1","1","1" +"4","4","68.31","68.31","1","1","1","1","1","1","1","1" +"4","4","68.32","68.32","1","1","1","1","1","1","1","1" +"4","4","69.10","69.10","1","1","1","1","1","1","1","1" +"4","4","69.20","69.20","1","1","1","1","1","1","1","1" +"4","4","70.10","70.10","1","1","1","1","1","1","1","1" +"4","4","71.11","71.11","1","1","1","1","1","1","1","1" +"4","4","71.12","71.12","1","1","1","1","1","1","1","1" +"4","4","71.20","71.20","1","1","1","1","1","1","1","1" +"4","4","72.20","72.20","1","1","1","1","1","1","1","1" +"4","4","73.11","73.11","1","1","1","1","1","1","1","1" +"4","4","73.12","73.12","1","1","1","1","1","1","1","1" +"4","4","73.20","73.20","1","1","1","1","1","1","1","1" +"4","4","74.20","74.20","1","1","1","1","1","1","1","1" +"4","4","74.30","74.30","1","1","1","1","1","1","1","1" +"4","4","75.00","75.00","1","1","1","1","1","1","1","1" +"4","4","77.11","77.11","1","1","1","1","1","1","1","1" +"4","4","77.12","77.12","1","1","1","1","1","1","1","1" +"4","4","77.21","77.21","1","1","1","1","1","1","1","1" +"4","4","77.22","77.22","1","1","1","1","1","1","1","1" +"4","4","77.31","77.31","1","1","1","1","1","1","1","1" +"4","4","77.32","77.32","1","1","1","1","1","1","1","1" +"4","4","77.33","77.33","1","1","1","1","1","1","1","1" +"4","4","77.34","77.34","1","1","1","1","1","1","1","1" +"4","4","77.35","77.35","1","1","1","1","1","1","1","1" +"4","4","77.39","77.39","1","1","1","1","1","1","1","1" +"4","4","77.40","77.40","1","1","1","1","1","1","1","1" +"4","4","78.10","78.10","1","1","1","1","1","1","1","1" +"4","4","78.20","78.20","1","1","1","1","1","1","1","1" +"4","4","79.11","79.11","1","1","1","1","1","1","1","1" +"4","4","79.12","79.12","1","1","1","1","1","1","1","1" +"4","4","79.90","79.90","1","1","1","1","1","1","1","1" +"4","4","81.10","81.10","1","1","1","1","1","1","1","1" +"4","4","81.21","81.21","1","1","1","1","1","1","1","1" +"4","4","81.22","81.22","1","1","1","1","1","1","1","1" +"4","4","81.30","81.30","1","1","1","1","1","1","1","1" +"4","4","82.20","82.20","1","1","1","1","1","1","1","1" +"4","4","82.30","82.30","1","1","1","1","1","1","1","1" +"4","4","82.91","82.91","1","1","1","1","1","1","1","1" +"4","4","82.92","82.92","1","1","1","1","1","1","1","1" +"4","4","82.99","82.99","1","1","1","1","1","1","1","1" +"4","4","84.11","84.11","1","1","1","1","1","1","1","1" +"4","4","84.12","84.12","1","1","1","1","1","1","1","1" +"4","4","84.13","84.13","1","1","1","1","1","1","1","1" +"4","4","84.21","84.21","1","1","1","1","1","1","1","1" +"4","4","84.22","84.22","1","1","1","1","1","1","1","1" +"4","4","84.23","84.23","1","1","1","1","1","1","1","1" +"4","4","84.24","84.24","1","1","1","1","1","1","1","1" +"4","4","84.25","84.25","1","1","1","1","1","1","1","1" +"4","4","84.30","84.30","1","1","1","1","1","1","1","1" +"4","4","85.10","85.10","1","1","1","1","1","1","1","1" +"4","4","85.20","85.20","1","1","1","1","1","1","1","1" +"4","4","85.31","85.31","1","1","1","1","1","1","1","1" +"4","4","85.32","85.32","1","1","1","1","1","1","1","1" +"4","4","85.51","85.51","1","1","1","1","1","1","1","1" +"4","4","85.52","85.52","1","1","1","1","1","1","1","1" +"4","4","85.53","85.53","1","1","1","1","1","1","1","1" +"4","4","85.59","85.59","1","1","1","1","1","1","1","1" +"4","4","86.10","86.10","1","1","1","1","1","1","1","1" +"4","4","86.21","86.21","1","1","1","1","1","1","1","1" +"4","4","86.22","86.22","1","1","1","1","1","1","1","1" +"4","4","86.23","86.23","1","1","1","1","1","1","1","1" +"4","4","87.10","87.10","1","1","1","1","1","1","1","1" +"4","4","87.20","87.20","1","1","1","1","1","1","1","1" +"4","4","87.30","87.30","1","1","1","1","1","1","1","1" +"4","4","88.10","88.10","1","1","1","1","1","1","1","1" +"4","4","88.91","88.91","1","1","1","1","1","1","1","1" +"4","4","88.99","88.99","1","1","1","1","1","1","1","1" +"4","4","92.00","92.00","1","1","1","1","1","1","1","1" +"4","4","93.11","93.11","1","1","1","1","1","1","1","1" +"4","4","93.12","93.12","1","1","1","1","1","1","1","1" +"4","4","93.13","93.13","1","1","1","1","1","1","1","1" +"4","4","93.19","93.19","1","1","1","1","1","1","1","1" +"4","4","93.21","93.21","1","1","1","1","1","1","1","1" +"4","4","93.29","93.29","1","1","1","1","1","1","1","1" +"4","4","94.11","94.11","1","1","1","1","1","1","1","1" +"4","4","94.12","94.12","1","1","1","1","1","1","1","1" +"4","4","94.20","94.20","1","1","1","1","1","1","1","1" +"4","4","94.91","94.91","1","1","1","1","1","1","1","1" +"4","4","94.92","94.92","1","1","1","1","1","1","1","1" +"4","4","94.99","94.99","1","1","1","1","1","1","1","1" +"4","4","95.21","95.21","1","1","1","1","1","1","1","1" +"4","4","95.22","95.22","1","1","1","1","1","1","1","1" +"4","4","95.23","95.23","1","1","1","1","1","1","1","1" +"4","4","95.24","95.24","1","1","1","1","1","1","1","1" +"4","4","95.25","95.25","1","1","1","1","1","1","1","1" +"4","4","95.29","95.29","1","1","1","1","1","1","1","1" +"4","4","97.00","97.00","1","1","1","1","1","1","1","1" +"4","4","98.10","98.10","1","1","1","1","1","1","1","1" +"4","4","98.20","98.20","1","1","1","1","1","1","1","1" +"4","4","99.00","99.00","1","1","1","1","1","1","1","1" diff --git a/inst/extdata/CorrespondenceAnalysisExample.csv b/inst/extdata/CorrespondenceAnalysisExample.csv new file mode 100644 index 0000000..bbb9d8e --- /dev/null +++ b/inst/extdata/CorrespondenceAnalysisExample.csv @@ -0,0 +1,42 @@ +"ClassC","ClassD","nTargetClasses","SourceToTargetMapping","nSourceClasses","TargetToSourceMapping" +"C01","D04",5,"D04, D21, D13, D20, D11",1,"C01" +"C01","D21",5,"D04, D21, D13, D20, D11",5,"C01, C06, C12, C21, C24" +"C01","D13",5,"D04, D21, D13, D20, D11",1,"C01" +"C01","D20",5,"D04, D21, D13, D20, D11",1,"C01" +"C01","D11",5,"D04, D21, D13, D20, D11",1,"C01" +"C02","D22",2,"D22, D03",3,"C02, C22, C25" +"C02","D03",2,"D22, D03",3,"C02, C11, C18" +"C03","D07",2,"D07, D08",2,"C03, C05" +"C03","D08",2,"D07, D08",2,"C03, C08" +"C04","D24",2,"D24, D19",2,"C04, C16" +"C04","D19",2,"D24, D19",2,"C04, C20" +"C05","D05",2,"D05, D07",1,"C05" +"C05","D07",2,"D05, D07",2,"C03, C05" +"C06","D21",1,"D21",5,"C01, C06, C12, C21, C24" +"C07","D16",1,"D16",2,"C07, C14" +"C08","D02",2,"D02, D08",2,"C08, C15" +"C08","D08",2,"D02, D08",2,"C03, C08" +"C09","D12",1,"D12",3,"C09, C17, C25" +"C10","D01",3,"D01, D18, D09",1,"C10" +"C10","D18",3,"D01, D18, D09",1,"C10" +"C10","D09",3,"D01, D18, D09",1,"C10" +"C11","D03",1,"D03",3,"C02, C11, C18" +"C12","D21",1,"D21",5,"C01, C06, C12, C21, C24" +"C13","D15",1,"D15",1,"C13" +"C14","D06",2,"D06, D16",2,"C14, C23" +"C14","D16",2,"D06, D16",2,"C07, C14" +"C15","D02",2,"D02, D17",2,"C08, C15" +"C15","D17",2,"D02, D17",1,"C15" +"C16","D24",1,"D24",2,"C04, C16" +"C17","D12",1,"D12",3,"C09, C17, C25" +"C18","D03",1,"D03",3,"C02, C11, C18" +"C19","D14",1,"D14",2,"C19, C26" +"C26","D14",1,"D14",2,"C19, C26" +"C20","D19",2,"D19, D10",2,"C04, C20" +"C20","D10",2,"D19, D10",1,"C20" +"C21","D21",1,"D21",5,"C01, C06, C12, C21, C24" +"C22","D22",1,"D22",3,"C02, C22, C25" +"C23","D06",1,"D06",2,"C14, C23" +"C24","D21",1,"D21",5,"C01, C06, C12, C21, C24" +"C25","D22",2,"D22, D12",3,"C02, C22, C25" +"C25","D12",2,"D22, D12",3,"C09, C17, C25" diff --git a/inst/extdata/CorrespondenceInventoryExample.csv b/inst/extdata/CorrespondenceInventoryExample.csv new file mode 100644 index 0000000..af73461 --- /dev/null +++ b/inst/extdata/CorrespondenceInventoryExample.csv @@ -0,0 +1,9 @@ +"Component","CorrespondenceType","SourcePositions","TargetPositions","nSourcePositions","nTargetPositions" +"Component 1","M:M","c(""C01"", ""C06"", ""C12"", ""C21"", ""C24"")","c(""D04"", ""D21"", ""D13"", ""D20"", ""D11"")",5,5 +"Component 2","M:M","c(""C02"", ""C09"", ""C11"", ""C17"", ""C18"", ""C22"", ""C25"")","c(""D22"", ""D03"", ""D12"")",7,3 +"Component 3","M:M","c(""C03"", ""C05"", ""C08"", ""C15"")","c(""D07"", ""D08"", ""D05"", ""D02"", ""D17"")",4,5 +"Component 4","M:M","c(""C04"", ""C16"", ""C20"")","c(""D24"", ""D19"", ""D10"")",3,3 +"Component 5","M:M","c(""C07"", ""C14"", ""C23"")","c(""D16"", ""D06"")",3,2 +"Component 6","1:M","C10","c(""D01"", ""D18"", ""D09"")",1,3 +"Component 7","1:1","C13","D15",1,1 +"Component 8","M:1","c(""C19"", ""C26"")","D14",2,1 diff --git a/inst/extdata/ExempleAnnexe.csv b/inst/extdata/ExempleAnnexe.csv new file mode 100644 index 0000000..c387f24 --- /dev/null +++ b/inst/extdata/ExempleAnnexe.csv @@ -0,0 +1,42 @@ +"ClassA","ClassB" +"C01","D04" +"C01","D21" +"C01","D13" +"C01","D20" +"C01","D11" +"C02","D22" +"C02","D03" +"C03","D07" +"C03","D08" +"C04","D24" +"C04","D19" +"C05","D05" +"C05","D07" +"C06","D21" +"C07","D16" +"C08","D02" +"C08","D08" +"C09","D12" +"C10","D01" +"C10","D18" +"C10","D09" +"C11","D03" +"C12","D21" +"C13","D15" +"C14","D06" +"C14","D16" +"C15","D02" +"C15","D17" +"C16","D24" +"C17","D12" +"C18","D03" +"C19","D14" +"C26","D14" +"C20","D19" +"C20","D10" +"C21","D21" +"C22","D22" +"C23","D06" +"C24","D21" +"C25","D22" +"C25","D12" diff --git a/inst/extdata/Nace2.csv b/inst/extdata/Nace2.csv new file mode 100644 index 0000000..a42c380 --- /dev/null +++ b/inst/extdata/Nace2.csv @@ -0,0 +1,997 @@ +"Code","Label" +"A01","01 Crop and animal production, hunting and related service activities" +"A01.1","01.1 Growing of non-perennial crops" +"A01.11","01.11 Growing of cereals (except rice), leguminous crops and oil seeds" +"A01.12","01.12 Growing of rice" +"A01.13","01.13 Growing of vegetables and melons, roots and tubers" +"A01.14","01.14 Growing of sugar cane" +"A01.15","01.15 Growing of tobacco" +"A01.16","01.16 Growing of fibre crops" +"A01.19","01.19 Growing of other non-perennial crops" +"A01.2","01.2 Growing of perennial crops" +"A01.21","01.21 Growing of grapes" +"A01.22","01.22 Growing of tropical and subtropical fruits" +"A01.23","01.23 Growing of citrus fruits" +"A01.24","01.24 Growing of pome fruits and stone fruits" +"A01.25","01.25 Growing of other tree and bush fruits and nuts" +"A01.26","01.26 Growing of oleaginous fruits" +"A01.27","01.27 Growing of beverage crops" +"A01.28","01.28 Growing of spices, aromatic, drug and pharmaceutical crops" +"A01.29","01.29 Growing of other perennial crops" +"A01.3","01.3 Plant propagation" +"A01.30","01.30 Plant propagation" +"A01.4","01.4 Animal production" +"A01.41","01.41 Raising of dairy cattle" +"A01.42","01.42 Raising of other cattle and buffaloes" +"A01.43","01.43 Raising of horses and other equines" +"A01.44","01.44 Raising of camels and camelids" +"A01.45","01.45 Raising of sheep and goats" +"A01.46","01.46 Raising of swine/pigs" +"A01.47","01.47 Raising of poultry" +"A01.49","01.49 Raising of other animals" +"A01.5","01.5 Mixed farming" +"A01.50","01.50 Mixed farming" +"A01.6","01.6 Support activities to agriculture and post-harvest crop activities" +"A01.61","01.61 Support activities for crop production" +"A01.62","01.62 Support activities for animal production" +"A01.63","01.63 Post-harvest crop activities" +"A01.64","01.64 Seed processing for propagation" +"A01.7","01.7 Hunting, trapping and related service activities" +"A01.70","01.70 Hunting, trapping and related service activities" +"A02","02 Forestry and logging" +"A02.1","02.1 Silviculture and other forestry activities" +"A02.10","02.10 Silviculture and other forestry activities" +"A02.2","02.2 Logging" +"A02.20","02.20 Logging" +"A02.3","02.3 Gathering of wild growing non-wood products" +"A02.30","02.30 Gathering of wild growing non-wood products" +"A02.4","02.4 Support services to forestry" +"A02.40","02.40 Support services to forestry" +"A03","03 Fishing and aquaculture" +"A03.1","03.1 Fishing" +"A03.11","03.11 Marine fishing" +"A03.12","03.12 Freshwater fishing" +"A03.2","03.2 Aquaculture" +"A03.21","03.21 Marine aquaculture" +"A03.22","03.22 Freshwater aquaculture" +"B05","05 Mining of coal and lignite" +"B05.1","05.1 Mining of hard coal" +"B05.10","05.10 Mining of hard coal" +"B05.2","05.2 Mining of lignite" +"B05.20","05.20 Mining of lignite" +"B06","06 Extraction of crude petroleum and natural gas" +"B06.1","06.1 Extraction of crude petroleum" +"B06.10","06.10 Extraction of crude petroleum" +"B06.2","06.2 Extraction of natural gas" +"B06.20","06.20 Extraction of natural gas" +"B07","07 Mining of metal ores" +"B07.1","07.1 Mining of iron ores" +"B07.10","07.10 Mining of iron ores" +"B07.2","07.2 Mining of non-ferrous metal ores" +"B07.21","07.21 Mining of uranium and thorium ores" +"B07.29","07.29 Mining of other non-ferrous metal ores" +"B08","08 Other mining and quarrying" +"B08.1","08.1 Quarrying of stone, sand and clay" +"B08.11","08.11 Quarrying of ornamental and building stone, limestone, gypsum, chalk and slate" +"B08.12","08.12 Operation of gravel and sand pits; mining of clays and kaolin" +"B08.9","08.9 Mining and quarrying n.e.c." +"B08.91","08.91 Mining of chemical and fertiliser minerals" +"B08.92","08.92 Extraction of peat" +"B08.93","08.93 Extraction of salt" +"B08.99","08.99 Other mining and quarrying n.e.c." +"B09","09 Mining support service activities" +"B09.1","09.1 Support activities for petroleum and natural gas extraction" +"B09.10","09.10 Support activities for petroleum and natural gas extraction" +"B09.9","09.9 Support activities for other mining and quarrying" +"B09.90","09.90 Support activities for other mining and quarrying" +"C10","10 Manufacture of food products" +"C10.1","10.1 Processing and preserving of meat and production of meat products" +"C10.11","10.11 Processing and preserving of meat" +"C10.12","10.12 Processing and preserving of poultry meat" +"C10.13","10.13 Production of meat and poultry meat products" +"C10.2","10.2 Processing and preserving of fish, crustaceans and molluscs" +"C10.20","10.20 Processing and preserving of fish, crustaceans and molluscs" +"C10.3","10.3 Processing and preserving of fruit and vegetables" +"C10.31","10.31 Processing and preserving of potatoes" +"C10.32","10.32 Manufacture of fruit and vegetable juice" +"C10.39","10.39 Other processing and preserving of fruit and vegetables" +"C10.4","10.4 Manufacture of vegetable and animal oils and fats" +"C10.41","10.41 Manufacture of oils and fats" +"C10.42","10.42 Manufacture of margarine and similar edible fats" +"C10.5","10.5 Manufacture of dairy products" +"C10.51","10.51 Operation of dairies and cheese making" +"C10.52","10.52 Manufacture of ice cream" +"C10.6","10.6 Manufacture of grain mill products, starches and starch products" +"C10.61","10.61 Manufacture of grain mill products" +"C10.62","10.62 Manufacture of starches and starch products" +"C10.7","10.7 Manufacture of bakery and farinaceous products" +"C10.71","10.71 Manufacture of bread; manufacture of fresh pastry goods and cakes" +"C10.72","10.72 Manufacture of rusks and biscuits; manufacture of preserved pastry goods and cakes" +"C10.73","10.73 Manufacture of macaroni, noodles, couscous and similar farinaceous products" +"C10.8","10.8 Manufacture of other food products" +"C10.81","10.81 Manufacture of sugar" +"C10.82","10.82 Manufacture of cocoa, chocolate and sugar confectionery" +"C10.83","10.83 Processing of tea and coffee" +"C10.84","10.84 Manufacture of condiments and seasonings" +"C10.85","10.85 Manufacture of prepared meals and dishes" +"C10.86","10.86 Manufacture of homogenised food preparations and dietetic food" +"C10.89","10.89 Manufacture of other food products n.e.c." +"C10.9","10.9 Manufacture of prepared animal feeds" +"C10.91","10.91 Manufacture of prepared feeds for farm animals" +"C10.92","10.92 Manufacture of prepared pet foods" +"C11","11 Manufacture of beverages" +"C11.0","11.0 Manufacture of beverages" +"C11.01","11.01 Distilling, rectifying and blending of spirits" +"C11.02","11.02 Manufacture of wine from grape" +"C11.03","11.03 Manufacture of cider and other fruit wines" +"C11.04","11.04 Manufacture of other non-distilled fermented beverages" +"C11.05","11.05 Manufacture of beer" +"C11.06","11.06 Manufacture of malt" +"C11.07","11.07 Manufacture of soft drinks; production of mineral waters and other bottled waters" +"C12","12 Manufacture of tobacco products" +"C12.0","12.0 Manufacture of tobacco products" +"C12.00","12.00 Manufacture of tobacco products" +"C13","13 Manufacture of textiles" +"C13.1","13.1 Preparation and spinning of textile fibres" +"C13.10","13.10 Preparation and spinning of textile fibres" +"C13.2","13.2 Weaving of textiles" +"C13.20","13.20 Weaving of textiles" +"C13.3","13.3 Finishing of textiles" +"C13.30","13.30 Finishing of textiles" +"C13.9","13.9 Manufacture of other textiles" +"C13.91","13.91 Manufacture of knitted and crocheted fabrics" +"C13.92","13.92 Manufacture of made-up textile articles, except apparel" +"C13.93","13.93 Manufacture of carpets and rugs" +"C13.94","13.94 Manufacture of cordage, rope, twine and netting" +"C13.95","13.95 Manufacture of non-wovens and articles made from non-wovens, except apparel" +"C13.96","13.96 Manufacture of other technical and industrial textiles" +"C13.99","13.99 Manufacture of other textiles n.e.c." +"C14","14 Manufacture of wearing apparel" +"C14.1","14.1 Manufacture of wearing apparel, except fur apparel" +"C14.11","14.11 Manufacture of leather clothes" +"C14.12","14.12 Manufacture of workwear" +"C14.13","14.13 Manufacture of other outerwear" +"C14.14","14.14 Manufacture of underwear" +"C14.19","14.19 Manufacture of other wearing apparel and accessories" +"C14.2","14.2 Manufacture of articles of fur" +"C14.20","14.20 Manufacture of articles of fur" +"C14.3","14.3 Manufacture of knitted and crocheted apparel" +"C14.31","14.31 Manufacture of knitted and crocheted hosiery" +"C14.39","14.39 Manufacture of other knitted and crocheted apparel" +"C15","15 Manufacture of leather and related products" +"C15.1","15.1 Tanning and dressing of leather; manufacture of luggage, handbags, saddlery and harness; dressing and dyeing of fur" +"C15.11","15.11 Tanning and dressing of leather; dressing and dyeing of fur" +"C15.12","15.12 Manufacture of luggage, handbags and the like, saddlery and harness" +"C15.2","15.2 Manufacture of footwear" +"C15.20","15.20 Manufacture of footwear" +"C16","16 Manufacture of wood and of products of wood and cork, except furniture; manufacture of articles of straw and plaiting materials" +"C16.1","16.1 Sawmilling and planing of wood" +"C16.10","16.10 Sawmilling and planing of wood" +"C16.2","16.2 Manufacture of products of wood, cork, straw and plaiting materials" +"C16.21","16.21 Manufacture of veneer sheets and wood-based panels" +"C16.22","16.22 Manufacture of assembled parquet floors" +"C16.23","16.23 Manufacture of other builders' carpentry and joinery" +"C16.24","16.24 Manufacture of wooden containers" +"C16.29","16.29 Manufacture of other products of wood; manufacture of articles of cork, straw and plaiting materials" +"C17","17 Manufacture of paper and paper products" +"C17.1","17.1 Manufacture of pulp, paper and paperboard" +"C17.11","17.11 Manufacture of pulp" +"C17.12","17.12 Manufacture of paper and paperboard" +"C17.2","17.2 Manufacture of articles of paper and paperboard" +"C17.21","17.21 Manufacture of corrugated paper and paperboard and of containers of paper and paperboard" +"C17.22","17.22 Manufacture of household and sanitary goods and of toilet requisites" +"C17.23","17.23 Manufacture of paper stationery" +"C17.24","17.24 Manufacture of wallpaper" +"C17.29","17.29 Manufacture of other articles of paper and paperboard" +"C18","18 Printing and reproduction of recorded media" +"C18.1","18.1 Printing and service activities related to printing" +"C18.11","18.11 Printing of newspapers" +"C18.12","18.12 Other printing" +"C18.13","18.13 Pre-press and pre-media services" +"C18.14","18.14 Binding and related services" +"C18.2","18.2 Reproduction of recorded media" +"C18.20","18.20 Reproduction of recorded media" +"C19","19 Manufacture of coke and refined petroleum products" +"C19.1","19.1 Manufacture of coke oven products" +"C19.10","19.10 Manufacture of coke oven products" +"C19.2","19.2 Manufacture of refined petroleum products" +"C19.20","19.20 Manufacture of refined petroleum products" +"C20","20 Manufacture of chemicals and chemical products" +"C20.1","20.1 Manufacture of basic chemicals, fertilisers and nitrogen compounds, plastics and synthetic rubber in primary forms" +"C20.11","20.11 Manufacture of industrial gases" +"C20.12","20.12 Manufacture of dyes and pigments" +"C20.13","20.13 Manufacture of other inorganic basic chemicals" +"C20.14","20.14 Manufacture of other organic basic chemicals" +"C20.15","20.15 Manufacture of fertilisers and nitrogen compounds" +"C20.16","20.16 Manufacture of plastics in primary forms" +"C20.17","20.17 Manufacture of synthetic rubber in primary forms" +"C20.2","20.2 Manufacture of pesticides and other agrochemical products" +"C20.20","20.20 Manufacture of pesticides and other agrochemical products" +"C20.3","20.3 Manufacture of paints, varnishes and similar coatings, printing ink and mastics" +"C20.30","20.30 Manufacture of paints, varnishes and similar coatings, printing ink and mastics" +"C20.4","20.4 Manufacture of soap and detergents, cleaning and polishing preparations, perfumes and toilet preparations" +"C20.41","20.41 Manufacture of soap and detergents, cleaning and polishing preparations" +"C20.42","20.42 Manufacture of perfumes and toilet preparations" +"C20.5","20.5 Manufacture of other chemical products" +"C20.51","20.51 Manufacture of explosives" +"C20.52","20.52 Manufacture of glues" +"C20.53","20.53 Manufacture of essential oils" +"C20.59","20.59 Manufacture of other chemical products n.e.c." +"C20.6","20.6 Manufacture of man-made fibres" +"C20.60","20.60 Manufacture of man-made fibres" +"C21","21 Manufacture of basic pharmaceutical products and pharmaceutical preparations" +"C21.1","21.1 Manufacture of basic pharmaceutical products" +"C21.10","21.10 Manufacture of basic pharmaceutical products" +"C21.2","21.2 Manufacture of pharmaceutical preparations" +"C21.20","21.20 Manufacture of pharmaceutical preparations" +"C22","22 Manufacture of rubber and plastic products" +"C22.1","22.1 Manufacture of rubber products" +"C22.11","22.11 Manufacture of rubber tyres and tubes; retreading and rebuilding of rubber tyres" +"C22.19","22.19 Manufacture of other rubber products" +"C22.2","22.2 Manufacture of plastic products" +"C22.21","22.21 Manufacture of plastic plates, sheets, tubes and profiles" +"C22.22","22.22 Manufacture of plastic packing goods" +"C22.23","22.23 Manufacture of builders’ ware of plastic" +"C22.29","22.29 Manufacture of other plastic products" +"C23","23 Manufacture of other non-metallic mineral products" +"C23.1","23.1 Manufacture of glass and glass products" +"C23.11","23.11 Manufacture of flat glass" +"C23.12","23.12 Shaping and processing of flat glass" +"C23.13","23.13 Manufacture of hollow glass" +"C23.14","23.14 Manufacture of glass fibres" +"C23.19","23.19 Manufacture and processing of other glass, including technical glassware" +"C23.2","23.2 Manufacture of refractory products" +"C23.20","23.20 Manufacture of refractory products" +"C23.3","23.3 Manufacture of clay building materials" +"C23.31","23.31 Manufacture of ceramic tiles and flags" +"C23.32","23.32 Manufacture of bricks, tiles and construction products, in baked clay" +"C23.4","23.4 Manufacture of other porcelain and ceramic products" +"C23.41","23.41 Manufacture of ceramic household and ornamental articles" +"C23.42","23.42 Manufacture of ceramic sanitary fixtures" +"C23.43","23.43 Manufacture of ceramic insulators and insulating fittings" +"C23.44","23.44 Manufacture of other technical ceramic products" +"C23.49","23.49 Manufacture of other ceramic products" +"C23.5","23.5 Manufacture of cement, lime and plaster" +"C23.51","23.51 Manufacture of cement" +"C23.52","23.52 Manufacture of lime and plaster" +"C23.6","23.6 Manufacture of articles of concrete, cement and plaster" +"C23.61","23.61 Manufacture of concrete products for construction purposes" +"C23.62","23.62 Manufacture of plaster products for construction purposes" +"C23.63","23.63 Manufacture of ready-mixed concrete" +"C23.64","23.64 Manufacture of mortars" +"C23.65","23.65 Manufacture of fibre cement" +"C23.69","23.69 Manufacture of other articles of concrete, plaster and cement" +"C23.7","23.7 Cutting, shaping and finishing of stone" +"C23.70","23.70 Cutting, shaping and finishing of stone" +"C23.9","23.9 Manufacture of abrasive products and non-metallic mineral products n.e.c." +"C23.91","23.91 Production of abrasive products" +"C23.99","23.99 Manufacture of other non-metallic mineral products n.e.c." +"C24","24 Manufacture of basic metals" +"C24.1","24.1 Manufacture of basic iron and steel and of ferro-alloys" +"C24.10","24.10 Manufacture of basic iron and steel and of ferro-alloys" +"C24.2","24.2 Manufacture of tubes, pipes, hollow profiles and related fittings, of steel" +"C24.20","24.20 Manufacture of tubes, pipes, hollow profiles and related fittings, of steel" +"C24.3","24.3 Manufacture of other products of first processing of steel" +"C24.31","24.31 Cold drawing of bars" +"C24.32","24.32 Cold rolling of narrow strip" +"C24.33","24.33 Cold forming or folding" +"C24.34","24.34 Cold drawing of wire" +"C24.4","24.4 Manufacture of basic precious and other non-ferrous metals" +"C24.41","24.41 Precious metals production" +"C24.42","24.42 Aluminium production" +"C24.43","24.43 Lead, zinc and tin production" +"C24.44","24.44 Copper production" +"C24.45","24.45 Other non-ferrous metal production" +"C24.46","24.46 Processing of nuclear fuel" +"C24.5","24.5 Casting of metals" +"C24.51","24.51 Casting of iron" +"C24.52","24.52 Casting of steel" +"C24.53","24.53 Casting of light metals" +"C24.54","24.54 Casting of other non-ferrous metals" +"C25","25 Manufacture of fabricated metal products, except machinery and equipment" +"C25.1","25.1 Manufacture of structural metal products" +"C25.11","25.11 Manufacture of metal structures and parts of structures" +"C25.12","25.12 Manufacture of doors and windows of metal" +"C25.2","25.2 Manufacture of tanks, reservoirs and containers of metal" +"C25.21","25.21 Manufacture of central heating radiators and boilers" +"C25.29","25.29 Manufacture of other tanks, reservoirs and containers of metal" +"C25.3","25.3 Manufacture of steam generators, except central heating hot water boilers" +"C25.30","25.30 Manufacture of steam generators, except central heating hot water boilers" +"C25.4","25.4 Manufacture of weapons and ammunition" +"C25.40","25.40 Manufacture of weapons and ammunition" +"C25.5","25.5 Forging, pressing, stamping and roll-forming of metal; powder metallurgy" +"C25.50","25.50 Forging, pressing, stamping and roll-forming of metal; powder metallurgy" +"C25.6","25.6 Treatment and coating of metals; machining" +"C25.61","25.61 Treatment and coating of metals" +"C25.62","25.62 Machining" +"C25.7","25.7 Manufacture of cutlery, tools and general hardware" +"C25.71","25.71 Manufacture of cutlery" +"C25.72","25.72 Manufacture of locks and hinges" +"C25.73","25.73 Manufacture of tools" +"C25.9","25.9 Manufacture of other fabricated metal products" +"C25.91","25.91 Manufacture of steel drums and similar containers" +"C25.92","25.92 Manufacture of light metal packaging" +"C25.93","25.93 Manufacture of wire products, chain and springs" +"C25.94","25.94 Manufacture of fasteners and screw machine products" +"C25.99","25.99 Manufacture of other fabricated metal products n.e.c." +"C26","26 Manufacture of computer, electronic and optical products" +"C26.1","26.1 Manufacture of electronic components and boards" +"C26.11","26.11 Manufacture of electronic components" +"C26.12","26.12 Manufacture of loaded electronic boards" +"C26.2","26.2 Manufacture of computers and peripheral equipment" +"C26.20","26.20 Manufacture of computers and peripheral equipment" +"C26.3","26.3 Manufacture of communication equipment" +"C26.30","26.30 Manufacture of communication equipment" +"C26.4","26.4 Manufacture of consumer electronics" +"C26.40","26.40 Manufacture of consumer electronics" +"C26.5","26.5 Manufacture of instruments and appliances for measuring, testing and navigation; watches and clocks" +"C26.51","26.51 Manufacture of instruments and appliances for measuring, testing and navigation" +"C26.52","26.52 Manufacture of watches and clocks" +"C26.6","26.6 Manufacture of irradiation, electromedical and electrotherapeutic equipment" +"C26.60","26.60 Manufacture of irradiation, electromedical and electrotherapeutic equipment" +"C26.7","26.7 Manufacture of optical instruments and photographic equipment" +"C26.70","26.70 Manufacture of optical instruments and photographic equipment" +"C26.8","26.8 Manufacture of magnetic and optical media" +"C26.80","26.80 Manufacture of magnetic and optical media" +"C27","27 Manufacture of electrical equipment" +"C27.1","27.1 Manufacture of electric motors, generators, transformers and electricity distribution and control apparatus" +"C27.11","27.11 Manufacture of electric motors, generators and transformers" +"C27.12","27.12 Manufacture of electricity distribution and control apparatus" +"C27.2","27.2 Manufacture of batteries and accumulators" +"C27.20","27.20 Manufacture of batteries and accumulators" +"C27.3","27.3 Manufacture of wiring and wiring devices" +"C27.31","27.31 Manufacture of fibre optic cables" +"C27.32","27.32 Manufacture of other electronic and electric wires and cables" +"C27.33","27.33 Manufacture of wiring devices" +"C27.4","27.4 Manufacture of electric lighting equipment" +"C27.40","27.40 Manufacture of electric lighting equipment" +"C27.5","27.5 Manufacture of domestic appliances" +"C27.51","27.51 Manufacture of electric domestic appliances" +"C27.52","27.52 Manufacture of non-electric domestic appliances" +"C27.9","27.9 Manufacture of other electrical equipment" +"C27.90","27.90 Manufacture of other electrical equipment" +"C28","28 Manufacture of machinery and equipment n.e.c." +"C28.1","28.1 Manufacture of general-purpose machinery" +"C28.11","28.11 Manufacture of engines and turbines, except aircraft, vehicle and cycle engines" +"C28.12","28.12 Manufacture of fluid power equipment" +"C28.13","28.13 Manufacture of other pumps and compressors" +"C28.14","28.14 Manufacture of other taps and valves" +"C28.15","28.15 Manufacture of bearings, gears, gearing and driving elements" +"C28.2","28.2 Manufacture of other general-purpose machinery" +"C28.21","28.21 Manufacture of ovens, furnaces and furnace burners" +"C28.22","28.22 Manufacture of lifting and handling equipment" +"C28.23","28.23 Manufacture of office machinery and equipment (except computers and peripheral equipment)" +"C28.24","28.24 Manufacture of power-driven hand tools" +"C28.25","28.25 Manufacture of non-domestic cooling and ventilation equipment" +"C28.29","28.29 Manufacture of other general-purpose machinery n.e.c." +"C28.3","28.3 Manufacture of agricultural and forestry machinery" +"C28.30","28.30 Manufacture of agricultural and forestry machinery" +"C28.4","28.4 Manufacture of metal forming machinery and machine tools" +"C28.41","28.41 Manufacture of metal forming machinery" +"C28.49","28.49 Manufacture of other machine tools" +"C28.9","28.9 Manufacture of other special-purpose machinery" +"C28.91","28.91 Manufacture of machinery for metallurgy" +"C28.92","28.92 Manufacture of machinery for mining, quarrying and construction" +"C28.93","28.93 Manufacture of machinery for food, beverage and tobacco processing" +"C28.94","28.94 Manufacture of machinery for textile, apparel and leather production" +"C28.95","28.95 Manufacture of machinery for paper and paperboard production" +"C28.96","28.96 Manufacture of plastics and rubber machinery" +"C28.99","28.99 Manufacture of other special-purpose machinery n.e.c." +"C29","29 Manufacture of motor vehicles, trailers and semi-trailers" +"C29.1","29.1 Manufacture of motor vehicles" +"C29.10","29.10 Manufacture of motor vehicles" +"C29.2","29.2 Manufacture of bodies (coachwork) for motor vehicles; manufacture of trailers and semi-trailers" +"C29.20","29.20 Manufacture of bodies (coachwork) for motor vehicles; manufacture of trailers and semi-trailers" +"C29.3","29.3 Manufacture of parts and accessories for motor vehicles" +"C29.31","29.31 Manufacture of electrical and electronic equipment for motor vehicles" +"C29.32","29.32 Manufacture of other parts and accessories for motor vehicles" +"C30","30 Manufacture of other transport equipment" +"C30.1","30.1 Building of ships and boats" +"C30.11","30.11 Building of ships and floating structures" +"C30.12","30.12 Building of pleasure and sporting boats" +"C30.2","30.2 Manufacture of railway locomotives and rolling stock" +"C30.20","30.20 Manufacture of railway locomotives and rolling stock" +"C30.3","30.3 Manufacture of air and spacecraft and related machinery" +"C30.30","30.30 Manufacture of air and spacecraft and related machinery" +"C30.4","30.4 Manufacture of military fighting vehicles" +"C30.40","30.40 Manufacture of military fighting vehicles" +"C30.9","30.9 Manufacture of transport equipment n.e.c." +"C30.91","30.91 Manufacture of motorcycles" +"C30.92","30.92 Manufacture of bicycles and invalid carriages" +"C30.99","30.99 Manufacture of other transport equipment n.e.c." +"C31","31 Manufacture of furniture" +"C31.0","31.0 Manufacture of furniture" +"C31.01","31.01 Manufacture of office and shop furniture" +"C31.02","31.02 Manufacture of kitchen furniture" +"C31.03","31.03 Manufacture of mattresses" +"C31.09","31.09 Manufacture of other furniture" +"C32","32 Other manufacturing" +"C32.1","32.1 Manufacture of jewellery, bijouterie and related articles" +"C32.11","32.11 Striking of coins" +"C32.12","32.12 Manufacture of jewellery and related articles" +"C32.13","32.13 Manufacture of imitation jewellery and related articles" +"C32.2","32.2 Manufacture of musical instruments" +"C32.20","32.20 Manufacture of musical instruments" +"C32.3","32.3 Manufacture of sports goods" +"C32.30","32.30 Manufacture of sports goods" +"C32.4","32.4 Manufacture of games and toys" +"C32.40","32.40 Manufacture of games and toys" +"C32.5","32.5 Manufacture of medical and dental instruments and supplies" +"C32.50","32.50 Manufacture of medical and dental instruments and supplies" +"C32.9","32.9 Manufacturing n.e.c." +"C32.91","32.91 Manufacture of brooms and brushes" +"C32.99","32.99 Other manufacturing n.e.c." +"C33","33 Repair and installation of machinery and equipment" +"C33.1","33.1 Repair of fabricated metal products, machinery and equipment" +"C33.11","33.11 Repair of fabricated metal products" +"C33.12","33.12 Repair of machinery" +"C33.13","33.13 Repair of electronic and optical equipment" +"C33.14","33.14 Repair of electrical equipment" +"C33.15","33.15 Repair and maintenance of ships and boats" +"C33.16","33.16 Repair and maintenance of aircraft and spacecraft" +"C33.17","33.17 Repair and maintenance of other transport equipment" +"C33.19","33.19 Repair of other equipment" +"C33.2","33.2 Installation of industrial machinery and equipment" +"C33.20","33.20 Installation of industrial machinery and equipment" +"D35","35 Electricity, gas, steam and air conditioning supply" +"D35.1","35.1 Electric power generation, transmission and distribution" +"D35.11","35.11 Production of electricity" +"D35.12","35.12 Transmission of electricity" +"D35.13","35.13 Distribution of electricity" +"D35.14","35.14 Trade of electricity" +"D35.2","35.2 Manufacture of gas; distribution of gaseous fuels through mains" +"D35.21","35.21 Manufacture of gas" +"D35.22","35.22 Distribution of gaseous fuels through mains" +"D35.23","35.23 Trade of gas through mains" +"D35.3","35.3 Steam and air conditioning supply" +"D35.30","35.30 Steam and air conditioning supply" +"E36","36 Water collection, treatment and supply" +"E36.0","36.0 Water collection, treatment and supply" +"E36.00","36.00 Water collection, treatment and supply" +"E37","37 Sewerage" +"E37.0","37.0 Sewerage" +"E37.00","37.00 Sewerage" +"E38","38 Waste collection, treatment and disposal activities; materials recovery" +"E38.1","38.1 Waste collection" +"E38.11","38.11 Collection of non-hazardous waste" +"E38.12","38.12 Collection of hazardous waste" +"E38.2","38.2 Waste treatment and disposal" +"E38.21","38.21 Treatment and disposal of non-hazardous waste" +"E38.22","38.22 Treatment and disposal of hazardous waste" +"E38.3","38.3 Materials recovery" +"E38.31","38.31 Dismantling of wrecks" +"E38.32","38.32 Recovery of sorted materials" +"E39","39 Remediation activities and other waste management services" +"E39.0","39.0 Remediation activities and other waste management services" +"E39.00","39.00 Remediation activities and other waste management services" +"F41","41 Construction of buildings" +"F41.1","41.1 Development of building projects" +"F41.10","41.10 Development of building projects" +"F41.2","41.2 Construction of residential and non-residential buildings" +"F41.20","41.20 Construction of residential and non-residential buildings" +"F42","42 Civil engineering" +"F42.1","42.1 Construction of roads and railways" +"F42.11","42.11 Construction of roads and motorways" +"F42.12","42.12 Construction of railways and underground railways" +"F42.13","42.13 Construction of bridges and tunnels" +"F42.2","42.2 Construction of utility projects" +"F42.21","42.21 Construction of utility projects for fluids" +"F42.22","42.22 Construction of utility projects for electricity and telecommunications" +"F42.9","42.9 Construction of other civil engineering projects" +"F42.91","42.91 Construction of water projects" +"F42.99","42.99 Construction of other civil engineering projects n.e.c." +"F43","43 Specialised construction activities" +"F43.1","43.1 Demolition and site preparation" +"F43.11","43.11 Demolition" +"F43.12","43.12 Site preparation" +"F43.13","43.13 Test drilling and boring" +"F43.2","43.2 Electrical, plumbing and other construction installation activities" +"F43.21","43.21 Electrical installation" +"F43.22","43.22 Plumbing, heat and air-conditioning installation" +"F43.29","43.29 Other construction installation" +"F43.3","43.3 Building completion and finishing" +"F43.31","43.31 Plastering" +"F43.32","43.32 Joinery installation" +"F43.33","43.33 Floor and wall covering" +"F43.34","43.34 Painting and glazing" +"F43.39","43.39 Other building completion and finishing" +"F43.9","43.9 Other specialised construction activities" +"F43.91","43.91 Roofing activities" +"F43.99","43.99 Other specialised construction activities n.e.c." +"G45","45 Wholesale and retail trade and repair of motor vehicles and motorcycles" +"G45.1","45.1 Sale of motor vehicles" +"G45.11","45.11 Sale of cars and light motor vehicles" +"G45.19","45.19 Sale of other motor vehicles" +"G45.2","45.2 Maintenance and repair of motor vehicles" +"G45.20","45.20 Maintenance and repair of motor vehicles" +"G45.3","45.3 Sale of motor vehicle parts and accessories" +"G45.31","45.31 Wholesale trade of motor vehicle parts and accessories" +"G45.32","45.32 Retail trade of motor vehicle parts and accessories" +"G45.4","45.4 Sale, maintenance and repair of motorcycles and related parts and accessories" +"G45.40","45.40 Sale, maintenance and repair of motorcycles and related parts and accessories" +"G46","46 Wholesale trade, except of motor vehicles and motorcycles" +"G46.1","46.1 Wholesale on a fee or contract basis" +"G46.11","46.11 Agents involved in the sale of agricultural raw materials, live animals, textile raw materials and semi-finished goods" +"G46.12","46.12 Agents involved in the sale of fuels, ores, metals and industrial chemicals" +"G46.13","46.13 Agents involved in the sale of timber and building materials" +"G46.14","46.14 Agents involved in the sale of machinery, industrial equipment, ships and aircraft" +"G46.15","46.15 Agents involved in the sale of furniture, household goods, hardware and ironmongery" +"G46.16","46.16 Agents involved in the sale of textiles, clothing, fur, footwear and leather goods" +"G46.17","46.17 Agents involved in the sale of food, beverages and tobacco" +"G46.18","46.18 Agents specialised in the sale of other particular products" +"G46.19","46.19 Agents involved in the sale of a variety of goods" +"G46.2","46.2 Wholesale of agricultural raw materials and live animals" +"G46.21","46.21 Wholesale of grain, unmanufactured tobacco, seeds and animal feeds" +"G46.22","46.22 Wholesale of flowers and plants" +"G46.23","46.23 Wholesale of live animals" +"G46.24","46.24 Wholesale of hides, skins and leather" +"G46.3","46.3 Wholesale of food, beverages and tobacco" +"G46.31","46.31 Wholesale of fruit and vegetables" +"G46.32","46.32 Wholesale of meat and meat products" +"G46.33","46.33 Wholesale of dairy products, eggs and edible oils and fats" +"G46.34","46.34 Wholesale of beverages" +"G46.35","46.35 Wholesale of tobacco products" +"G46.36","46.36 Wholesale of sugar and chocolate and sugar confectionery" +"G46.37","46.37 Wholesale of coffee, tea, cocoa and spices" +"G46.38","46.38 Wholesale of other food, including fish, crustaceans and molluscs" +"G46.39","46.39 Non-specialised wholesale of food, beverages and tobacco" +"G46.4","46.4 Wholesale of household goods" +"G46.41","46.41 Wholesale of textiles" +"G46.42","46.42 Wholesale of clothing and footwear" +"G46.43","46.43 Wholesale of electrical household appliances" +"G46.44","46.44 Wholesale of china and glassware and cleaning materials" +"G46.45","46.45 Wholesale of perfume and cosmetics" +"G46.46","46.46 Wholesale of pharmaceutical goods" +"G46.47","46.47 Wholesale of furniture, carpets and lighting equipment" +"G46.48","46.48 Wholesale of watches and jewellery" +"G46.49","46.49 Wholesale of other household goods" +"G46.5","46.5 Wholesale of information and communication equipment" +"G46.51","46.51 Wholesale of computers, computer peripheral equipment and software" +"G46.52","46.52 Wholesale of electronic and telecommunications equipment and parts" +"G46.6","46.6 Wholesale of other machinery, equipment and supplies" +"G46.61","46.61 Wholesale of agricultural machinery, equipment and supplies" +"G46.62","46.62 Wholesale of machine tools" +"G46.63","46.63 Wholesale of mining, construction and civil engineering machinery" +"G46.64","46.64 Wholesale of machinery for the textile industry and of sewing and knitting machines" +"G46.65","46.65 Wholesale of office furniture" +"G46.66","46.66 Wholesale of other office machinery and equipment" +"G46.69","46.69 Wholesale of other machinery and equipment" +"G46.7","46.7 Other specialised wholesale" +"G46.71","46.71 Wholesale of solid, liquid and gaseous fuels and related products" +"G46.72","46.72 Wholesale of metals and metal ores" +"G46.73","46.73 Wholesale of wood, construction materials and sanitary equipment" +"G46.74","46.74 Wholesale of hardware, plumbing and heating equipment and supplies" +"G46.75","46.75 Wholesale of chemical products" +"G46.76","46.76 Wholesale of other intermediate products" +"G46.77","46.77 Wholesale of waste and scrap" +"G46.9","46.9 Non-specialised wholesale trade" +"G46.90","46.90 Non-specialised wholesale trade" +"G47","47 Retail trade, except of motor vehicles and motorcycles" +"G47.1","47.1 Retail sale in non-specialised stores" +"G47.11","47.11 Retail sale in non-specialised stores with food, beverages or tobacco predominating" +"G47.19","47.19 Other retail sale in non-specialised stores" +"G47.2","47.2 Retail sale of food, beverages and tobacco in specialised stores" +"G47.21","47.21 Retail sale of fruit and vegetables in specialised stores" +"G47.22","47.22 Retail sale of meat and meat products in specialised stores" +"G47.23","47.23 Retail sale of fish, crustaceans and molluscs in specialised stores" +"G47.24","47.24 Retail sale of bread, cakes, flour confectionery and sugar confectionery in specialised stores" +"G47.25","47.25 Retail sale of beverages in specialised stores" +"G47.26","47.26 Retail sale of tobacco products in specialised stores" +"G47.29","47.29 Other retail sale of food in specialised stores" +"G47.3","47.3 Retail sale of automotive fuel in specialised stores" +"G47.30","47.30 Retail sale of automotive fuel in specialised stores" +"G47.4","47.4 Retail sale of information and communication equipment in specialised stores" +"G47.41","47.41 Retail sale of computers, peripheral units and software in specialised stores" +"G47.42","47.42 Retail sale of telecommunications equipment in specialised stores" +"G47.43","47.43 Retail sale of audio and video equipment in specialised stores" +"G47.5","47.5 Retail sale of other household equipment in specialised stores" +"G47.51","47.51 Retail sale of textiles in specialised stores" +"G47.52","47.52 Retail sale of hardware, paints and glass in specialised stores" +"G47.53","47.53 Retail sale of carpets, rugs, wall and floor coverings in specialised stores" +"G47.54","47.54 Retail sale of electrical household appliances in specialised stores" +"G47.59","47.59 Retail sale of furniture, lighting equipment and other household articles in specialised stores" +"G47.6","47.6 Retail sale of cultural and recreation goods in specialised stores" +"G47.61","47.61 Retail sale of books in specialised stores" +"G47.62","47.62 Retail sale of newspapers and stationery in specialised stores" +"G47.63","47.63 Retail sale of music and video recordings in specialised stores" +"G47.64","47.64 Retail sale of sporting equipment in specialised stores" +"G47.65","47.65 Retail sale of games and toys in specialised stores" +"G47.7","47.7 Retail sale of other goods in specialised stores" +"G47.71","47.71 Retail sale of clothing in specialised stores" +"G47.72","47.72 Retail sale of footwear and leather goods in specialised stores" +"G47.73","47.73 Dispensing chemist in specialised stores" +"G47.74","47.74 Retail sale of medical and orthopaedic goods in specialised stores" +"G47.75","47.75 Retail sale of cosmetic and toilet articles in specialised stores" +"G47.76","47.76 Retail sale of flowers, plants, seeds, fertilisers, pet animals and pet food in specialised stores" +"G47.77","47.77 Retail sale of watches and jewellery in specialised stores" +"G47.78","47.78 Other retail sale of new goods in specialised stores" +"G47.79","47.79 Retail sale of second-hand goods in stores" +"G47.8","47.8 Retail sale via stalls and markets" +"G47.81","47.81 Retail sale via stalls and markets of food, beverages and tobacco products" +"G47.82","47.82 Retail sale via stalls and markets of textiles, clothing and footwear" +"G47.89","47.89 Retail sale via stalls and markets of other goods" +"G47.9","47.9 Retail trade not in stores, stalls or markets" +"G47.91","47.91 Retail sale via mail order houses or via Internet" +"G47.99","47.99 Other retail sale not in stores, stalls or markets" +"H49","49 Land transport and transport via pipelines" +"H49.1","49.1 Passenger rail transport, interurban" +"H49.10","49.10 Passenger rail transport, interurban" +"H49.2","49.2 Freight rail transport" +"H49.20","49.20 Freight rail transport" +"H49.3","49.3 Other passenger land transport" +"H49.31","49.31 Urban and suburban passenger land transport" +"H49.32","49.32 Taxi operation" +"H49.39","49.39 Other passenger land transport n.e.c." +"H49.4","49.4 Freight transport by road and removal services" +"H49.41","49.41 Freight transport by road" +"H49.42","49.42 Removal services" +"H49.5","49.5 Transport via pipeline" +"H49.50","49.50 Transport via pipeline" +"H50","50 Water transport" +"H50.1","50.1 Sea and coastal passenger water transport" +"H50.10","50.10 Sea and coastal passenger water transport" +"H50.2","50.2 Sea and coastal freight water transport" +"H50.20","50.20 Sea and coastal freight water transport" +"H50.3","50.3 Inland passenger water transport" +"H50.30","50.30 Inland passenger water transport" +"H50.4","50.4 Inland freight water transport" +"H50.40","50.40 Inland freight water transport" +"H51","51 Air transport" +"H51.1","51.1 Passenger air transport" +"H51.10","51.10 Passenger air transport" +"H51.2","51.2 Freight air transport and space transport" +"H51.21","51.21 Freight air transport" +"H51.22","51.22 Space transport" +"H52","52 Warehousing and support activities for transportation" +"H52.1","52.1 Warehousing and storage" +"H52.10","52.10 Warehousing and storage" +"H52.2","52.2 Support activities for transportation" +"H52.21","52.21 Service activities incidental to land transportation" +"H52.22","52.22 Service activities incidental to water transportation" +"H52.23","52.23 Service activities incidental to air transportation" +"H52.24","52.24 Cargo handling" +"H52.29","52.29 Other transportation support activities" +"H53","53 Postal and courier activities" +"H53.1","53.1 Postal activities under universal service obligation" +"H53.10","53.10 Postal activities under universal service obligation" +"H53.2","53.2 Other postal and courier activities" +"H53.20","53.20 Other postal and courier activities" +"I55","55 Accommodation" +"I55.1","55.1 Hotels and similar accommodation" +"I55.10","55.10 Hotels and similar accommodation" +"I55.2","55.2 Holiday and other short-stay accommodation" +"I55.20","55.20 Holiday and other short-stay accommodation" +"I55.3","55.3 Camping grounds, recreational vehicle parks and trailer parks" +"I55.30","55.30 Camping grounds, recreational vehicle parks and trailer parks" +"I55.9","55.9 Other accommodation" +"I55.90","55.90 Other accommodation" +"I56","56 Food and beverage service activities" +"I56.1","56.1 Restaurants and mobile food service activities" +"I56.10","56.10 Restaurants and mobile food service activities" +"I56.2","56.2 Event catering and other food service activities" +"I56.21","56.21 Event catering activities" +"I56.29","56.29 Other food service activities" +"I56.3","56.3 Beverage serving activities" +"I56.30","56.30 Beverage serving activities" +"J58","58 Publishing activities" +"J58.1","58.1 Publishing of books, periodicals and other publishing activities" +"J58.11","58.11 Book publishing" +"J58.12","58.12 Publishing of directories and mailing lists" +"J58.13","58.13 Publishing of newspapers" +"J58.14","58.14 Publishing of journals and periodicals" +"J58.19","58.19 Other publishing activities" +"J58.2","58.2 Software publishing" +"J58.21","58.21 Publishing of computer games" +"J58.29","58.29 Other software publishing" +"J59","59 Motion picture, video and television programme production, sound recording and music publishing activities" +"J59.1","59.1 Motion picture, video and television programme activities" +"J59.11","59.11 Motion picture, video and television programme production activities" +"J59.12","59.12 Motion picture, video and television programme post-production activities" +"J59.13","59.13 Motion picture, video and television programme distribution activities" +"J59.14","59.14 Motion picture projection activities" +"J59.2","59.2 Sound recording and music publishing activities" +"J59.20","59.20 Sound recording and music publishing activities" +"J60","60 Programming and broadcasting activities" +"J60.1","60.1 Radio broadcasting" +"J60.10","60.10 Radio broadcasting" +"J60.2","60.2 Television programming and broadcasting activities" +"J60.20","60.20 Television programming and broadcasting activities" +"J61","61 Telecommunications" +"J61.1","61.1 Wired telecommunications activities" +"J61.10","61.10 Wired telecommunications activities" +"J61.2","61.2 Wireless telecommunications activities" +"J61.20","61.20 Wireless telecommunications activities" +"J61.3","61.3 Satellite telecommunications activities" +"J61.30","61.30 Satellite telecommunications activities" +"J61.9","61.9 Other telecommunications activities" +"J61.90","61.90 Other telecommunications activities" +"J62","62 Computer programming, consultancy and related activities" +"J62.0","62.0 Computer programming, consultancy and related activities" +"J62.01","62.01 Computer programming activities" +"J62.02","62.02 Computer consultancy activities" +"J62.03","62.03 Computer facilities management activities" +"J62.09","62.09 Other information technology and computer service activities" +"J63","63 Information service activities" +"J63.1","63.1 Data processing, hosting and related activities; web portals" +"J63.11","63.11 Data processing, hosting and related activities" +"J63.12","63.12 Web portals" +"J63.9","63.9 Other information service activities" +"J63.91","63.91 News agency activities" +"J63.99","63.99 Other information service activities n.e.c." +"K64","64 Financial service activities, except insurance and pension funding" +"K64.1","64.1 Monetary intermediation" +"K64.11","64.11 Central banking" +"K64.19","64.19 Other monetary intermediation" +"K64.2","64.2 Activities of holding companies" +"K64.20","64.20 Activities of holding companies" +"K64.3","64.3 Trusts, funds and similar financial entities" +"K64.30","64.30 Trusts, funds and similar financial entities" +"K64.9","64.9 Other financial service activities, except insurance and pension funding" +"K64.91","64.91 Financial leasing" +"K64.92","64.92 Other credit granting" +"K64.99","64.99 Other financial service activities, except insurance and pension funding n.e.c." +"K65","65 Insurance, reinsurance and pension funding, except compulsory social security" +"K65.1","65.1 Insurance" +"K65.11","65.11 Life insurance" +"K65.12","65.12 Non-life insurance" +"K65.2","65.2 Reinsurance" +"K65.20","65.20 Reinsurance" +"K65.3","65.3 Pension funding" +"K65.30","65.30 Pension funding" +"K66","66 Activities auxiliary to financial services and insurance activities" +"K66.1","66.1 Activities auxiliary to financial services, except insurance and pension funding" +"K66.11","66.11 Administration of financial markets" +"K66.12","66.12 Security and commodity contracts brokerage" +"K66.19","66.19 Other activities auxiliary to financial services, except insurance and pension funding" +"K66.2","66.2 Activities auxiliary to insurance and pension funding" +"K66.21","66.21 Risk and damage evaluation" +"K66.22","66.22 Activities of insurance agents and brokers" +"K66.29","66.29 Other activities auxiliary to insurance and pension funding" +"K66.3","66.3 Fund management activities" +"K66.30","66.30 Fund management activities" +"L68","68 Real estate activities" +"L68.1","68.1 Buying and selling of own real estate" +"L68.10","68.10 Buying and selling of own real estate" +"L68.2","68.2 Rental and operating of own or leased real estate" +"L68.20","68.20 Rental and operating of own or leased real estate" +"L68.3","68.3 Real estate activities on a fee or contract basis" +"L68.31","68.31 Real estate agencies" +"L68.32","68.32 Management of real estate on a fee or contract basis" +"M69","69 Legal and accounting activities" +"M69.1","69.1 Legal activities" +"M69.10","69.10 Legal activities" +"M69.2","69.2 Accounting, bookkeeping and auditing activities; tax consultancy" +"M69.20","69.20 Accounting, bookkeeping and auditing activities; tax consultancy" +"M70","70 Activities of head offices; management consultancy activities" +"M70.1","70.1 Activities of head offices" +"M70.10","70.10 Activities of head offices" +"M70.2","70.2 Management consultancy activities" +"M70.21","70.21 Public relations and communication activities" +"M70.22","70.22 Business and other management consultancy activities" +"M71","71 Architectural and engineering activities; technical testing and analysis" +"M71.1","71.1 Architectural and engineering activities and related technical consultancy" +"M71.11","71.11 Architectural activities" +"M71.12","71.12 Engineering activities and related technical consultancy" +"M71.2","71.2 Technical testing and analysis" +"M71.20","71.20 Technical testing and analysis" +"M72","72 Scientific research and development" +"M72.1","72.1 Research and experimental development on natural sciences and engineering" +"M72.11","72.11 Research and experimental development on biotechnology" +"M72.19","72.19 Other research and experimental development on natural sciences and engineering" +"M72.2","72.2 Research and experimental development on social sciences and humanities" +"M72.20","72.20 Research and experimental development on social sciences and humanities" +"M73","73 Advertising and market research" +"M73.1","73.1 Advertising" +"M73.11","73.11 Advertising agencies" +"M73.12","73.12 Media representation" +"M73.2","73.2 Market research and public opinion polling" +"M73.20","73.20 Market research and public opinion polling" +"M74","74 Other professional, scientific and technical activities" +"M74.1","74.1 Specialised design activities" +"M74.10","74.10 Specialised design activities" +"M74.2","74.2 Photographic activities" +"M74.20","74.20 Photographic activities" +"M74.3","74.3 Translation and interpretation activities" +"M74.30","74.30 Translation and interpretation activities" +"M74.9","74.9 Other professional, scientific and technical activities n.e.c." +"M74.90","74.90 Other professional, scientific and technical activities n.e.c." +"M75","75 Veterinary activities" +"M75.0","75.0 Veterinary activities" +"M75.00","75.00 Veterinary activities" +"N77","77 Rental and leasing activities" +"N77.1","77.1 Rental and leasing of motor vehicles" +"N77.11","77.11 Rental and leasing of cars and light motor vehicles" +"N77.12","77.12 Rental and leasing of trucks" +"N77.2","77.2 Rental and leasing of personal and household goods" +"N77.21","77.21 Rental and leasing of recreational and sports goods" +"N77.22","77.22 Rental of video tapes and disks" +"N77.29","77.29 Rental and leasing of other personal and household goods" +"N77.3","77.3 Rental and leasing of other machinery, equipment and tangible goods" +"N77.31","77.31 Rental and leasing of agricultural machinery and equipment" +"N77.32","77.32 Rental and leasing of construction and civil engineering machinery and equipment" +"N77.33","77.33 Rental and leasing of office machinery and equipment (including computers)" +"N77.34","77.34 Rental and leasing of water transport equipment" +"N77.35","77.35 Rental and leasing of air transport equipment" +"N77.39","77.39 Rental and leasing of other machinery, equipment and tangible goods n.e.c." +"N77.4","77.4 Leasing of intellectual property and similar products, except copyrighted works" +"N77.40","77.40 Leasing of intellectual property and similar products, except copyrighted works" +"N78","78 Employment activities" +"N78.1","78.1 Activities of employment placement agencies" +"N78.10","78.10 Activities of employment placement agencies" +"N78.2","78.2 Temporary employment agency activities" +"N78.20","78.20 Temporary employment agency activities" +"N78.3","78.3 Other human resources provision" +"N78.30","78.30 Other human resources provision" +"N79","79 Travel agency, tour operator and other reservation service and related activities" +"N79.1","79.1 Travel agency and tour operator activities" +"N79.11","79.11 Travel agency activities" +"N79.12","79.12 Tour operator activities" +"N79.9","79.9 Other reservation service and related activities" +"N79.90","79.90 Other reservation service and related activities" +"N80","80 Security and investigation activities" +"N80.1","80.1 Private security activities" +"N80.10","80.10 Private security activities" +"N80.2","80.2 Security systems service activities" +"N80.20","80.20 Security systems service activities" +"N80.3","80.3 Investigation activities" +"N80.30","80.30 Investigation activities" +"N81","81 Services to buildings and landscape activities" +"N81.1","81.1 Combined facilities support activities" +"N81.10","81.10 Combined facilities support activities" +"N81.2","81.2 Cleaning activities" +"N81.21","81.21 General cleaning of buildings" +"N81.22","81.22 Other building and industrial cleaning activities" +"N81.29","81.29 Other cleaning activities" +"N81.3","81.3 Landscape service activities" +"N81.30","81.30 Landscape service activities" +"N82","82 Office administrative, office support and other business support activities" +"N82.1","82.1 Office administrative and support activities" +"N82.11","82.11 Combined office administrative service activities" +"N82.19","82.19 Photocopying, document preparation and other specialised office support activities" +"N82.2","82.2 Activities of call centres" +"N82.20","82.20 Activities of call centres" +"N82.3","82.3 Organisation of conventions and trade shows" +"N82.30","82.30 Organisation of conventions and trade shows" +"N82.9","82.9 Business support service activities n.e.c." +"N82.91","82.91 Activities of collection agencies and credit bureaus" +"N82.92","82.92 Packaging activities" +"N82.99","82.99 Other business support service activities n.e.c." +"O84","84 Public administration and defence; compulsory social security" +"O84.1","84.1 Administration of the State and the economic and social policy of the community" +"O84.11","84.11 General public administration activities" +"O84.12","84.12 Regulation of the activities of providing health care, education, cultural services and other social services, excluding social security" +"O84.13","84.13 Regulation of and contribution to more efficient operation of businesses" +"O84.2","84.2 Provision of services to the community as a whole" +"O84.21","84.21 Foreign affairs" +"O84.22","84.22 Defence activities" +"O84.23","84.23 Justice and judicial activities" +"O84.24","84.24 Public order and safety activities" +"O84.25","84.25 Fire service activities" +"O84.3","84.3 Compulsory social security activities" +"O84.30","84.30 Compulsory social security activities" +"P85","85 Education" +"P85.1","85.1 Pre-primary education" +"P85.10","85.10 Pre-primary education" +"P85.2","85.2 Primary education" +"P85.20","85.20 Primary education" +"P85.3","85.3 Secondary education" +"P85.31","85.31 General secondary education" +"P85.32","85.32 Technical and vocational secondary education" +"P85.4","85.4 Higher education" +"P85.41","85.41 Post-secondary non-tertiary education" +"P85.42","85.42 Tertiary education" +"P85.5","85.5 Other education" +"P85.51","85.51 Sports and recreation education" +"P85.52","85.52 Cultural education" +"P85.53","85.53 Driving school activities" +"P85.59","85.59 Other education n.e.c." +"P85.6","85.6 Educational support activities" +"P85.60","85.60 Educational support activities" +"Q86","86 Human health activities" +"Q86.1","86.1 Hospital activities" +"Q86.10","86.10 Hospital activities" +"Q86.2","86.2 Medical and dental practice activities" +"Q86.21","86.21 General medical practice activities" +"Q86.22","86.22 Specialist medical practice activities" +"Q86.23","86.23 Dental practice activities" +"Q86.9","86.9 Other human health activities" +"Q86.90","86.90 Other human health activities" +"Q87","87 Residential care activities" +"Q87.1","87.1 Residential nursing care activities" +"Q87.10","87.10 Residential nursing care activities" +"Q87.2","87.2 Residential care activities for mental retardation, mental health and substance abuse" +"Q87.20","87.20 Residential care activities for mental retardation, mental health and substance abuse" +"Q87.3","87.3 Residential care activities for the elderly and disabled" +"Q87.30","87.30 Residential care activities for the elderly and disabled" +"Q87.9","87.9 Other residential care activities" +"Q87.90","87.90 Other residential care activities" +"Q88","88 Social work activities without accommodation" +"Q88.1","88.1 Social work activities without accommodation for the elderly and disabled" +"Q88.10","88.10 Social work activities without accommodation for the elderly and disabled" +"Q88.9","88.9 Other social work activities without accommodation" +"Q88.91","88.91 Child day-care activities" +"Q88.99","88.99 Other social work activities without accommodation n.e.c." +"R90","90 Creative, arts and entertainment activities" +"R90.0","90.0 Creative, arts and entertainment activities" +"R90.01","90.01 Performing arts" +"R90.02","90.02 Support activities to performing arts" +"R90.03","90.03 Artistic creation" +"R90.04","90.04 Operation of arts facilities" +"R91","91 Libraries, archives, museums and other cultural activities" +"R91.0","91.0 Libraries, archives, museums and other cultural activities" +"R91.01","91.01 Library and archives activities" +"R91.02","91.02 Museums activities" +"R91.03","91.03 Operation of historical sites and buildings and similar visitor attractions" +"R91.04","91.04 Botanical and zoological gardens and nature reserves activities" +"R92","92 Gambling and betting activities" +"R92.0","92.0 Gambling and betting activities" +"R92.00","92.00 Gambling and betting activities" +"R93","93 Sports activities and amusement and recreation activities" +"R93.1","93.1 Sports activities" +"R93.11","93.11 Operation of sports facilities" +"R93.12","93.12 Activities of sports clubs" +"R93.13","93.13 Fitness facilities" +"R93.19","93.19 Other sports activities" +"R93.2","93.2 Amusement and recreation activities" +"R93.21","93.21 Activities of amusement parks and theme parks" +"R93.29","93.29 Other amusement and recreation activities" +"S94","94 Activities of membership organisations" +"S94.1","94.1 Activities of business, employers and professional membership organisations" +"S94.11","94.11 Activities of business and employers membership organisations" +"S94.12","94.12 Activities of professional membership organisations" +"S94.2","94.2 Activities of trade unions" +"S94.20","94.20 Activities of trade unions" +"S94.9","94.9 Activities of other membership organisations" +"S94.91","94.91 Activities of religious organisations" +"S94.92","94.92 Activities of political organisations" +"S94.99","94.99 Activities of other membership organisations n.e.c." +"S95","95 Repair of computers and personal and household goods" +"S95.1","95.1 Repair of computers and communication equipment" +"S95.11","95.11 Repair of computers and peripheral equipment" +"S95.12","95.12 Repair of communication equipment" +"S95.2","95.2 Repair of personal and household goods" +"S95.21","95.21 Repair of consumer electronics" +"S95.22","95.22 Repair of household appliances and home and garden equipment" +"S95.23","95.23 Repair of footwear and leather goods" +"S95.24","95.24 Repair of furniture and home furnishings" +"S95.25","95.25 Repair of watches, clocks and jewellery" +"S95.29","95.29 Repair of other personal and household goods" +"S96","96 Other personal service activities" +"S96.0","96.0 Other personal service activities" +"S96.01","96.01 Washing and (dry-)cleaning of textile and fur products" +"S96.02","96.02 Hairdressing and other beauty treatment" +"S96.03","96.03 Funeral and related activities" +"S96.04","96.04 Physical well-being activities" +"S96.09","96.09 Other personal service activities n.e.c." +"T97","97 Activities of households as employers of domestic personnel" +"T97.0","97.0 Activities of households as employers of domestic personnel" +"T97.00","97.00 Activities of households as employers of domestic personnel" +"T98","98 Undifferentiated goods- and services-producing activities of private households for own use" +"T98.1","98.1 Undifferentiated goods-producing activities of private households for own use" +"T98.10","98.10 Undifferentiated goods-producing activities of private households for own use" +"T98.2","98.2 Undifferentiated service-producing activities of private households for own use" +"T98.20","98.20 Undifferentiated service-producing activities of private households for own use" +"U99","99 Activities of extraterritorial organisations and bodies" +"U99.0","99.0 Activities of extraterritorial organisations and bodies" +"U99.00","99.00 Activities of extraterritorial organisations and bodies" +"A","A AGRICULTURE, FORESTRY AND FISHING" +"B","B MINING AND QUARRYING" +"C","C MANUFACTURING" +"D","D ELECTRICITY, GAS, STEAM AND AIR CONDITIONING SUPPLY" +"E","E WATER SUPPLY; SEWERAGE, WASTE MANAGEMENT AND REMEDIATION ACTIVITIES" +"F","F CONSTRUCTION" +"G","G WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES" +"H","H TRANSPORTATION AND STORAGE" +"I","I ACCOMMODATION AND FOOD SERVICE ACTIVITIES" +"J","J INFORMATION AND COMMUNICATION" +"K","K FINANCIAL AND INSURANCE ACTIVITIES" +"L","L REAL ESTATE ACTIVITIES" +"M","M PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES" +"N","N ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES" +"O","O PUBLIC ADMINISTRATION AND DEFENCE; COMPULSORY SOCIAL SECURITY" +"P","P EDUCATION" +"Q","Q HUMAN HEALTH AND SOCIAL WORK ACTIVITIES" +"R","R ARTS, ENTERTAINMENT AND RECREATION" +"S","S OTHER SERVICE ACTIVITIES" +"T","T ACTIVITIES OF HOUSEHOLDS AS EMPLOYERS; UNDIFFERENTIATED GOODS- AND SERVICES-PRODUCING ACTIVITIES OF HOUSEHOLDS FOR OWN USE" +"U","U ACTIVITIES OF EXTRATERRITORIAL ORGANISATIONS AND BODIES" diff --git a/inst/extdata/QC_Output.csv b/inst/extdata/QC_Output.csv new file mode 100644 index 0000000..ccced96 --- /dev/null +++ b/inst/extdata/QC_Output.csv @@ -0,0 +1,997 @@ +"QC_output.Code","QC_output.Label","QC_output.level","QC_output.superior","QC_output.segment1","QC_output.Code1","QC_output.segment2","QC_output.Code2","QC_output.segment3","QC_output.Code3","QC_output.segment4","QC_output.Code4","QC_output.duplicateCode","QC_output.orphan","QC_output.childless","QC_output.duplicateLabel","QC_output.singleChildMismatch" +"A01","01 Crop and animal production, hunting and related service activities",2,"A","A","A","01","A01",NA,NA,NA,NA,0,0,0,0,0 +"A01.1","01.1 Growing of non-perennial crops",3,"A01","A","A","01","A01","1","A01.1",NA,NA,0,0,0,0,0 +"A01.11","01.11 Growing of cereals (except rice), leguminous crops and oil seeds",4,"A01.1","A","A","01","A01","1","A01.1","1","A01.11",0,0,NA,0,0 +"A01.12","01.12 Growing of rice",4,"A01.1","A","A","01","A01","1","A01.1","2","A01.12",0,0,NA,0,0 +"A01.13","01.13 Growing of vegetables and melons, roots and tubers",4,"A01.1","A","A","01","A01","1","A01.1","3","A01.13",0,0,NA,0,0 +"A01.14","01.14 Growing of sugar cane",4,"A01.1","A","A","01","A01","1","A01.1","4","A01.14",0,0,NA,0,0 +"A01.15","01.15 Growing of tobacco",4,"A01.1","A","A","01","A01","1","A01.1","5","A01.15",0,0,NA,0,0 +"A01.16","01.16 Growing of fibre crops",4,"A01.1","A","A","01","A01","1","A01.1","6","A01.16",0,0,NA,0,0 +"A01.19","01.19 Growing of other non-perennial crops",4,"A01.1","A","A","01","A01","1","A01.1","9","A01.19",0,0,NA,0,0 +"A01.2","01.2 Growing of perennial crops",3,"A01","A","A","01","A01","2","A01.2",NA,NA,0,0,0,0,0 +"A01.21","01.21 Growing of grapes",4,"A01.2","A","A","01","A01","2","A01.2","1","A01.21",0,0,NA,0,0 +"A01.22","01.22 Growing of tropical and subtropical fruits",4,"A01.2","A","A","01","A01","2","A01.2","2","A01.22",0,0,NA,0,0 +"A01.23","01.23 Growing of citrus fruits",4,"A01.2","A","A","01","A01","2","A01.2","3","A01.23",0,0,NA,0,0 +"A01.24","01.24 Growing of pome fruits and stone fruits",4,"A01.2","A","A","01","A01","2","A01.2","4","A01.24",0,0,NA,0,0 +"A01.25","01.25 Growing of other tree and bush fruits and nuts",4,"A01.2","A","A","01","A01","2","A01.2","5","A01.25",0,0,NA,0,0 +"A01.26","01.26 Growing of oleaginous fruits",4,"A01.2","A","A","01","A01","2","A01.2","6","A01.26",0,0,NA,0,0 +"A01.27","01.27 Growing of beverage crops",4,"A01.2","A","A","01","A01","2","A01.2","7","A01.27",0,0,NA,0,0 +"A01.28","01.28 Growing of spices, aromatic, drug and pharmaceutical crops",4,"A01.2","A","A","01","A01","2","A01.2","8","A01.28",0,0,NA,0,0 +"A01.29","01.29 Growing of other perennial crops",4,"A01.2","A","A","01","A01","2","A01.2","9","A01.29",0,0,NA,0,0 +"A01.3","01.3 Plant propagation",3,"A01","A","A","01","A01","3","A01.3",NA,NA,0,0,0,0,0 +"A01.30","01.30 Plant propagation",4,"A01.3","A","A","01","A01","3","A01.3","0","A01.30",0,0,NA,0,0 +"A01.4","01.4 Animal production",3,"A01","A","A","01","A01","4","A01.4",NA,NA,0,0,0,0,0 +"A01.41","01.41 Raising of dairy cattle",4,"A01.4","A","A","01","A01","4","A01.4","1","A01.41",0,0,NA,0,0 +"A01.42","01.42 Raising of other cattle and buffaloes",4,"A01.4","A","A","01","A01","4","A01.4","2","A01.42",0,0,NA,0,0 +"A01.43","01.43 Raising of horses and other equines",4,"A01.4","A","A","01","A01","4","A01.4","3","A01.43",0,0,NA,0,0 +"A01.44","01.44 Raising of camels and camelids",4,"A01.4","A","A","01","A01","4","A01.4","4","A01.44",0,0,NA,0,0 +"A01.45","01.45 Raising of sheep and goats",4,"A01.4","A","A","01","A01","4","A01.4","5","A01.45",0,0,NA,0,0 +"A01.46","01.46 Raising of swine/pigs",4,"A01.4","A","A","01","A01","4","A01.4","6","A01.46",0,0,NA,0,0 +"A01.47","01.47 Raising of poultry",4,"A01.4","A","A","01","A01","4","A01.4","7","A01.47",0,0,NA,0,0 +"A01.49","01.49 Raising of other animals",4,"A01.4","A","A","01","A01","4","A01.4","9","A01.49",0,0,NA,0,0 +"A01.5","01.5 Mixed farming",3,"A01","A","A","01","A01","5","A01.5",NA,NA,0,0,0,0,0 +"A01.50","01.50 Mixed farming",4,"A01.5","A","A","01","A01","5","A01.5","0","A01.50",0,0,NA,0,0 +"A01.6","01.6 Support activities to agriculture and post-harvest crop activities",3,"A01","A","A","01","A01","6","A01.6",NA,NA,0,0,0,0,0 +"A01.61","01.61 Support activities for crop production",4,"A01.6","A","A","01","A01","6","A01.6","1","A01.61",0,0,NA,0,0 +"A01.62","01.62 Support activities for animal production",4,"A01.6","A","A","01","A01","6","A01.6","2","A01.62",0,0,NA,0,0 +"A01.63","01.63 Post-harvest crop activities",4,"A01.6","A","A","01","A01","6","A01.6","3","A01.63",0,0,NA,0,0 +"A01.64","01.64 Seed processing for propagation",4,"A01.6","A","A","01","A01","6","A01.6","4","A01.64",0,0,NA,0,0 +"A01.7","01.7 Hunting, trapping and related service activities",3,"A01","A","A","01","A01","7","A01.7",NA,NA,0,0,0,0,0 +"A01.70","01.70 Hunting, trapping and related service activities",4,"A01.7","A","A","01","A01","7","A01.7","0","A01.70",0,0,NA,0,0 +"A02","02 Forestry and logging",2,"A","A","A","02","A02",NA,NA,NA,NA,0,0,0,0,0 +"A02.1","02.1 Silviculture and other forestry activities",3,"A02","A","A","02","A02","1","A02.1",NA,NA,0,0,0,0,0 +"A02.10","02.10 Silviculture and other forestry activities",4,"A02.1","A","A","02","A02","1","A02.1","0","A02.10",0,0,NA,0,0 +"A02.2","02.2 Logging",3,"A02","A","A","02","A02","2","A02.2",NA,NA,0,0,0,0,0 +"A02.20","02.20 Logging",4,"A02.2","A","A","02","A02","2","A02.2","0","A02.20",0,0,NA,0,0 +"A02.3","02.3 Gathering of wild growing non-wood products",3,"A02","A","A","02","A02","3","A02.3",NA,NA,0,0,0,0,0 +"A02.30","02.30 Gathering of wild growing non-wood products",4,"A02.3","A","A","02","A02","3","A02.3","0","A02.30",0,0,NA,0,0 +"A02.4","02.4 Support services to forestry",3,"A02","A","A","02","A02","4","A02.4",NA,NA,0,0,0,0,0 +"A02.40","02.40 Support services to forestry",4,"A02.4","A","A","02","A02","4","A02.4","0","A02.40",0,0,NA,0,0 +"A03","03 Fishing and aquaculture",2,"A","A","A","03","A03",NA,NA,NA,NA,0,0,0,0,0 +"A03.1","03.1 Fishing",3,"A03","A","A","03","A03","1","A03.1",NA,NA,0,0,0,0,0 +"A03.11","03.11 Marine fishing",4,"A03.1","A","A","03","A03","1","A03.1","1","A03.11",0,0,NA,0,0 +"A03.12","03.12 Freshwater fishing",4,"A03.1","A","A","03","A03","1","A03.1","2","A03.12",0,0,NA,0,0 +"A03.2","03.2 Aquaculture",3,"A03","A","A","03","A03","2","A03.2",NA,NA,0,0,0,0,0 +"A03.21","03.21 Marine aquaculture",4,"A03.2","A","A","03","A03","2","A03.2","1","A03.21",0,0,NA,0,0 +"A03.22","03.22 Freshwater aquaculture",4,"A03.2","A","A","03","A03","2","A03.2","2","A03.22",0,0,NA,0,0 +"B05","05 Mining of coal and lignite",2,"B","B","B","05","B05",NA,NA,NA,NA,0,0,0,0,0 +"B05.1","05.1 Mining of hard coal",3,"B05","B","B","05","B05","1","B05.1",NA,NA,0,0,0,0,0 +"B05.10","05.10 Mining of hard coal",4,"B05.1","B","B","05","B05","1","B05.1","0","B05.10",0,0,NA,0,0 +"B05.2","05.2 Mining of lignite",3,"B05","B","B","05","B05","2","B05.2",NA,NA,0,0,0,0,0 +"B05.20","05.20 Mining of lignite",4,"B05.2","B","B","05","B05","2","B05.2","0","B05.20",0,0,NA,0,0 +"B06","06 Extraction of crude petroleum and natural gas",2,"B","B","B","06","B06",NA,NA,NA,NA,0,0,0,0,0 +"B06.1","06.1 Extraction of crude petroleum",3,"B06","B","B","06","B06","1","B06.1",NA,NA,0,0,0,0,0 +"B06.10","06.10 Extraction of crude petroleum",4,"B06.1","B","B","06","B06","1","B06.1","0","B06.10",0,0,NA,0,0 +"B06.2","06.2 Extraction of natural gas",3,"B06","B","B","06","B06","2","B06.2",NA,NA,0,0,0,0,0 +"B06.20","06.20 Extraction of natural gas",4,"B06.2","B","B","06","B06","2","B06.2","0","B06.20",0,0,NA,0,0 +"B07","07 Mining of metal ores",2,"B","B","B","07","B07",NA,NA,NA,NA,0,0,0,0,0 +"B07.1","07.1 Mining of iron ores",3,"B07","B","B","07","B07","1","B07.1",NA,NA,0,0,0,0,0 +"B07.10","07.10 Mining of iron ores",4,"B07.1","B","B","07","B07","1","B07.1","0","B07.10",0,0,NA,0,0 +"B07.2","07.2 Mining of non-ferrous metal ores",3,"B07","B","B","07","B07","2","B07.2",NA,NA,0,0,0,0,0 +"B07.21","07.21 Mining of uranium and thorium ores",4,"B07.2","B","B","07","B07","2","B07.2","1","B07.21",0,0,NA,0,0 +"B07.29","07.29 Mining of other non-ferrous metal ores",4,"B07.2","B","B","07","B07","2","B07.2","9","B07.29",0,0,NA,0,0 +"B08","08 Other mining and quarrying",2,"B","B","B","08","B08",NA,NA,NA,NA,0,0,0,0,0 +"B08.1","08.1 Quarrying of stone, sand and clay",3,"B08","B","B","08","B08","1","B08.1",NA,NA,0,0,0,0,0 +"B08.11","08.11 Quarrying of ornamental and building stone, limestone, gypsum, chalk and slate",4,"B08.1","B","B","08","B08","1","B08.1","1","B08.11",0,0,NA,0,0 +"B08.12","08.12 Operation of gravel and sand pits; mining of clays and kaolin",4,"B08.1","B","B","08","B08","1","B08.1","2","B08.12",0,0,NA,0,0 +"B08.9","08.9 Mining and quarrying n.e.c.",3,"B08","B","B","08","B08","9","B08.9",NA,NA,0,0,0,0,0 +"B08.91","08.91 Mining of chemical and fertiliser minerals",4,"B08.9","B","B","08","B08","9","B08.9","1","B08.91",0,0,NA,0,0 +"B08.92","08.92 Extraction of peat",4,"B08.9","B","B","08","B08","9","B08.9","2","B08.92",0,0,NA,0,0 +"B08.93","08.93 Extraction of salt",4,"B08.9","B","B","08","B08","9","B08.9","3","B08.93",0,0,NA,0,0 +"B08.99","08.99 Other mining and quarrying n.e.c.",4,"B08.9","B","B","08","B08","9","B08.9","9","B08.99",0,0,NA,0,0 +"B09","09 Mining support service activities",2,"B","B","B","09","B09",NA,NA,NA,NA,0,0,0,0,0 +"B09.1","09.1 Support activities for petroleum and natural gas extraction",3,"B09","B","B","09","B09","1","B09.1",NA,NA,0,0,0,0,0 +"B09.10","09.10 Support activities for petroleum and natural gas extraction",4,"B09.1","B","B","09","B09","1","B09.1","0","B09.10",0,0,NA,0,0 +"B09.9","09.9 Support activities for other mining and quarrying",3,"B09","B","B","09","B09","9","B09.9",NA,NA,0,0,0,0,0 +"B09.90","09.90 Support activities for other mining and quarrying",4,"B09.9","B","B","09","B09","9","B09.9","0","B09.90",0,0,NA,0,0 +"C10","10 Manufacture of food products",2,"C","C","C","10","C10",NA,NA,NA,NA,0,0,0,0,0 +"C10.1","10.1 Processing and preserving of meat and production of meat products",3,"C10","C","C","10","C10","1","C10.1",NA,NA,0,0,0,0,0 +"C10.11","10.11 Processing and preserving of meat",4,"C10.1","C","C","10","C10","1","C10.1","1","C10.11",0,0,NA,0,0 +"C10.12","10.12 Processing and preserving of poultry meat",4,"C10.1","C","C","10","C10","1","C10.1","2","C10.12",0,0,NA,0,0 +"C10.13","10.13 Production of meat and poultry meat products",4,"C10.1","C","C","10","C10","1","C10.1","3","C10.13",0,0,NA,0,0 +"C10.2","10.2 Processing and preserving of fish, crustaceans and molluscs",3,"C10","C","C","10","C10","2","C10.2",NA,NA,0,0,0,0,0 +"C10.20","10.20 Processing and preserving of fish, crustaceans and molluscs",4,"C10.2","C","C","10","C10","2","C10.2","0","C10.20",0,0,NA,0,0 +"C10.3","10.3 Processing and preserving of fruit and vegetables",3,"C10","C","C","10","C10","3","C10.3",NA,NA,0,0,0,0,0 +"C10.31","10.31 Processing and preserving of potatoes",4,"C10.3","C","C","10","C10","3","C10.3","1","C10.31",0,0,NA,0,0 +"C10.32","10.32 Manufacture of fruit and vegetable juice",4,"C10.3","C","C","10","C10","3","C10.3","2","C10.32",0,0,NA,0,0 +"C10.39","10.39 Other processing and preserving of fruit and vegetables",4,"C10.3","C","C","10","C10","3","C10.3","9","C10.39",0,0,NA,0,0 +"C10.4","10.4 Manufacture of vegetable and animal oils and fats",3,"C10","C","C","10","C10","4","C10.4",NA,NA,0,0,0,0,0 +"C10.41","10.41 Manufacture of oils and fats",4,"C10.4","C","C","10","C10","4","C10.4","1","C10.41",0,0,NA,0,0 +"C10.42","10.42 Manufacture of margarine and similar edible fats",4,"C10.4","C","C","10","C10","4","C10.4","2","C10.42",0,0,NA,0,0 +"C10.5","10.5 Manufacture of dairy products",3,"C10","C","C","10","C10","5","C10.5",NA,NA,0,0,0,0,0 +"C10.51","10.51 Operation of dairies and cheese making",4,"C10.5","C","C","10","C10","5","C10.5","1","C10.51",0,0,NA,0,0 +"C10.52","10.52 Manufacture of ice cream",4,"C10.5","C","C","10","C10","5","C10.5","2","C10.52",0,0,NA,0,0 +"C10.6","10.6 Manufacture of grain mill products, starches and starch products",3,"C10","C","C","10","C10","6","C10.6",NA,NA,0,0,0,0,0 +"C10.61","10.61 Manufacture of grain mill products",4,"C10.6","C","C","10","C10","6","C10.6","1","C10.61",0,0,NA,0,0 +"C10.62","10.62 Manufacture of starches and starch products",4,"C10.6","C","C","10","C10","6","C10.6","2","C10.62",0,0,NA,0,0 +"C10.7","10.7 Manufacture of bakery and farinaceous products",3,"C10","C","C","10","C10","7","C10.7",NA,NA,0,0,0,0,0 +"C10.71","10.71 Manufacture of bread; manufacture of fresh pastry goods and cakes",4,"C10.7","C","C","10","C10","7","C10.7","1","C10.71",0,0,NA,0,0 +"C10.72","10.72 Manufacture of rusks and biscuits; manufacture of preserved pastry goods and cakes",4,"C10.7","C","C","10","C10","7","C10.7","2","C10.72",0,0,NA,0,0 +"C10.73","10.73 Manufacture of macaroni, noodles, couscous and similar farinaceous products",4,"C10.7","C","C","10","C10","7","C10.7","3","C10.73",0,0,NA,0,0 +"C10.8","10.8 Manufacture of other food products",3,"C10","C","C","10","C10","8","C10.8",NA,NA,0,0,0,0,0 +"C10.81","10.81 Manufacture of sugar",4,"C10.8","C","C","10","C10","8","C10.8","1","C10.81",0,0,NA,0,0 +"C10.82","10.82 Manufacture of cocoa, chocolate and sugar confectionery",4,"C10.8","C","C","10","C10","8","C10.8","2","C10.82",0,0,NA,0,0 +"C10.83","10.83 Processing of tea and coffee",4,"C10.8","C","C","10","C10","8","C10.8","3","C10.83",0,0,NA,0,0 +"C10.84","10.84 Manufacture of condiments and seasonings",4,"C10.8","C","C","10","C10","8","C10.8","4","C10.84",0,0,NA,0,0 +"C10.85","10.85 Manufacture of prepared meals and dishes",4,"C10.8","C","C","10","C10","8","C10.8","5","C10.85",0,0,NA,0,0 +"C10.86","10.86 Manufacture of homogenised food preparations and dietetic food",4,"C10.8","C","C","10","C10","8","C10.8","6","C10.86",0,0,NA,0,0 +"C10.89","10.89 Manufacture of other food products n.e.c.",4,"C10.8","C","C","10","C10","8","C10.8","9","C10.89",0,0,NA,0,0 +"C10.9","10.9 Manufacture of prepared animal feeds",3,"C10","C","C","10","C10","9","C10.9",NA,NA,0,0,0,0,0 +"C10.91","10.91 Manufacture of prepared feeds for farm animals",4,"C10.9","C","C","10","C10","9","C10.9","1","C10.91",0,0,NA,0,0 +"C10.92","10.92 Manufacture of prepared pet foods",4,"C10.9","C","C","10","C10","9","C10.9","2","C10.92",0,0,NA,0,0 +"C11","11 Manufacture of beverages",2,"C","C","C","11","C11",NA,NA,NA,NA,0,0,0,0,0 +"C11.0","11.0 Manufacture of beverages",3,"C11","C","C","11","C11","0","C11.0",NA,NA,0,0,0,0,0 +"C11.01","11.01 Distilling, rectifying and blending of spirits",4,"C11.0","C","C","11","C11","0","C11.0","1","C11.01",0,0,NA,0,0 +"C11.02","11.02 Manufacture of wine from grape",4,"C11.0","C","C","11","C11","0","C11.0","2","C11.02",0,0,NA,0,0 +"C11.03","11.03 Manufacture of cider and other fruit wines",4,"C11.0","C","C","11","C11","0","C11.0","3","C11.03",0,0,NA,0,0 +"C11.04","11.04 Manufacture of other non-distilled fermented beverages",4,"C11.0","C","C","11","C11","0","C11.0","4","C11.04",0,0,NA,0,0 +"C11.05","11.05 Manufacture of beer",4,"C11.0","C","C","11","C11","0","C11.0","5","C11.05",0,0,NA,0,0 +"C11.06","11.06 Manufacture of malt",4,"C11.0","C","C","11","C11","0","C11.0","6","C11.06",0,0,NA,0,0 +"C11.07","11.07 Manufacture of soft drinks; production of mineral waters and other bottled waters",4,"C11.0","C","C","11","C11","0","C11.0","7","C11.07",0,0,NA,0,0 +"C12","12 Manufacture of tobacco products",2,"C","C","C","12","C12",NA,NA,NA,NA,0,0,0,0,0 +"C12.0","12.0 Manufacture of tobacco products",3,"C12","C","C","12","C12","0","C12.0",NA,NA,0,0,0,0,0 +"C12.00","12.00 Manufacture of tobacco products",4,"C12.0","C","C","12","C12","0","C12.0","0","C12.00",0,0,NA,0,0 +"C13","13 Manufacture of textiles",2,"C","C","C","13","C13",NA,NA,NA,NA,0,0,0,0,0 +"C13.1","13.1 Preparation and spinning of textile fibres",3,"C13","C","C","13","C13","1","C13.1",NA,NA,0,0,0,0,0 +"C13.10","13.10 Preparation and spinning of textile fibres",4,"C13.1","C","C","13","C13","1","C13.1","0","C13.10",0,0,NA,0,0 +"C13.2","13.2 Weaving of textiles",3,"C13","C","C","13","C13","2","C13.2",NA,NA,0,0,0,0,0 +"C13.20","13.20 Weaving of textiles",4,"C13.2","C","C","13","C13","2","C13.2","0","C13.20",0,0,NA,0,0 +"C13.3","13.3 Finishing of textiles",3,"C13","C","C","13","C13","3","C13.3",NA,NA,0,0,0,0,0 +"C13.30","13.30 Finishing of textiles",4,"C13.3","C","C","13","C13","3","C13.3","0","C13.30",0,0,NA,0,0 +"C13.9","13.9 Manufacture of other textiles",3,"C13","C","C","13","C13","9","C13.9",NA,NA,0,0,0,0,0 +"C13.91","13.91 Manufacture of knitted and crocheted fabrics",4,"C13.9","C","C","13","C13","9","C13.9","1","C13.91",0,0,NA,0,0 +"C13.92","13.92 Manufacture of made-up textile articles, except apparel",4,"C13.9","C","C","13","C13","9","C13.9","2","C13.92",0,0,NA,0,0 +"C13.93","13.93 Manufacture of carpets and rugs",4,"C13.9","C","C","13","C13","9","C13.9","3","C13.93",0,0,NA,0,0 +"C13.94","13.94 Manufacture of cordage, rope, twine and netting",4,"C13.9","C","C","13","C13","9","C13.9","4","C13.94",0,0,NA,0,0 +"C13.95","13.95 Manufacture of non-wovens and articles made from non-wovens, except apparel",4,"C13.9","C","C","13","C13","9","C13.9","5","C13.95",0,0,NA,0,0 +"C13.96","13.96 Manufacture of other technical and industrial textiles",4,"C13.9","C","C","13","C13","9","C13.9","6","C13.96",0,0,NA,0,0 +"C13.99","13.99 Manufacture of other textiles n.e.c.",4,"C13.9","C","C","13","C13","9","C13.9","9","C13.99",0,0,NA,0,0 +"C14","14 Manufacture of wearing apparel",2,"C","C","C","14","C14",NA,NA,NA,NA,0,0,0,0,0 +"C14.1","14.1 Manufacture of wearing apparel, except fur apparel",3,"C14","C","C","14","C14","1","C14.1",NA,NA,0,0,0,0,0 +"C14.11","14.11 Manufacture of leather clothes",4,"C14.1","C","C","14","C14","1","C14.1","1","C14.11",0,0,NA,0,0 +"C14.12","14.12 Manufacture of workwear",4,"C14.1","C","C","14","C14","1","C14.1","2","C14.12",0,0,NA,0,0 +"C14.13","14.13 Manufacture of other outerwear",4,"C14.1","C","C","14","C14","1","C14.1","3","C14.13",0,0,NA,0,0 +"C14.14","14.14 Manufacture of underwear",4,"C14.1","C","C","14","C14","1","C14.1","4","C14.14",0,0,NA,0,0 +"C14.19","14.19 Manufacture of other wearing apparel and accessories",4,"C14.1","C","C","14","C14","1","C14.1","9","C14.19",0,0,NA,0,0 +"C14.2","14.2 Manufacture of articles of fur",3,"C14","C","C","14","C14","2","C14.2",NA,NA,0,0,0,0,0 +"C14.20","14.20 Manufacture of articles of fur",4,"C14.2","C","C","14","C14","2","C14.2","0","C14.20",0,0,NA,0,0 +"C14.3","14.3 Manufacture of knitted and crocheted apparel",3,"C14","C","C","14","C14","3","C14.3",NA,NA,0,0,0,0,0 +"C14.31","14.31 Manufacture of knitted and crocheted hosiery",4,"C14.3","C","C","14","C14","3","C14.3","1","C14.31",0,0,NA,0,0 +"C14.39","14.39 Manufacture of other knitted and crocheted apparel",4,"C14.3","C","C","14","C14","3","C14.3","9","C14.39",0,0,NA,0,0 +"C15","15 Manufacture of leather and related products",2,"C","C","C","15","C15",NA,NA,NA,NA,0,0,0,0,0 +"C15.1","15.1 Tanning and dressing of leather; manufacture of luggage, handbags, saddlery and harness; dressing and dyeing of fur",3,"C15","C","C","15","C15","1","C15.1",NA,NA,0,0,0,0,0 +"C15.11","15.11 Tanning and dressing of leather; dressing and dyeing of fur",4,"C15.1","C","C","15","C15","1","C15.1","1","C15.11",0,0,NA,0,0 +"C15.12","15.12 Manufacture of luggage, handbags and the like, saddlery and harness",4,"C15.1","C","C","15","C15","1","C15.1","2","C15.12",0,0,NA,0,0 +"C15.2","15.2 Manufacture of footwear",3,"C15","C","C","15","C15","2","C15.2",NA,NA,0,0,0,0,0 +"C15.20","15.20 Manufacture of footwear",4,"C15.2","C","C","15","C15","2","C15.2","0","C15.20",0,0,NA,0,0 +"C16","16 Manufacture of wood and of products of wood and cork, except furniture; manufacture of articles of straw and plaiting materials",2,"C","C","C","16","C16",NA,NA,NA,NA,0,0,0,0,0 +"C16.1","16.1 Sawmilling and planing of wood",3,"C16","C","C","16","C16","1","C16.1",NA,NA,0,0,0,0,0 +"C16.10","16.10 Sawmilling and planing of wood",4,"C16.1","C","C","16","C16","1","C16.1","0","C16.10",0,0,NA,0,0 +"C16.2","16.2 Manufacture of products of wood, cork, straw and plaiting materials",3,"C16","C","C","16","C16","2","C16.2",NA,NA,0,0,0,0,0 +"C16.21","16.21 Manufacture of veneer sheets and wood-based panels",4,"C16.2","C","C","16","C16","2","C16.2","1","C16.21",0,0,NA,0,0 +"C16.22","16.22 Manufacture of assembled parquet floors",4,"C16.2","C","C","16","C16","2","C16.2","2","C16.22",0,0,NA,0,0 +"C16.23","16.23 Manufacture of other builders' carpentry and joinery",4,"C16.2","C","C","16","C16","2","C16.2","3","C16.23",0,0,NA,0,0 +"C16.24","16.24 Manufacture of wooden containers",4,"C16.2","C","C","16","C16","2","C16.2","4","C16.24",0,0,NA,0,0 +"C16.29","16.29 Manufacture of other products of wood; manufacture of articles of cork, straw and plaiting materials",4,"C16.2","C","C","16","C16","2","C16.2","9","C16.29",0,0,NA,0,0 +"C17","17 Manufacture of paper and paper products",2,"C","C","C","17","C17",NA,NA,NA,NA,0,0,0,0,0 +"C17.1","17.1 Manufacture of pulp, paper and paperboard",3,"C17","C","C","17","C17","1","C17.1",NA,NA,0,0,0,0,0 +"C17.11","17.11 Manufacture of pulp",4,"C17.1","C","C","17","C17","1","C17.1","1","C17.11",0,0,NA,0,0 +"C17.12","17.12 Manufacture of paper and paperboard",4,"C17.1","C","C","17","C17","1","C17.1","2","C17.12",0,0,NA,0,0 +"C17.2","17.2 Manufacture of articles of paper and paperboard",3,"C17","C","C","17","C17","2","C17.2",NA,NA,0,0,0,0,0 +"C17.21","17.21 Manufacture of corrugated paper and paperboard and of containers of paper and paperboard",4,"C17.2","C","C","17","C17","2","C17.2","1","C17.21",0,0,NA,0,0 +"C17.22","17.22 Manufacture of household and sanitary goods and of toilet requisites",4,"C17.2","C","C","17","C17","2","C17.2","2","C17.22",0,0,NA,0,0 +"C17.23","17.23 Manufacture of paper stationery",4,"C17.2","C","C","17","C17","2","C17.2","3","C17.23",0,0,NA,0,0 +"C17.24","17.24 Manufacture of wallpaper",4,"C17.2","C","C","17","C17","2","C17.2","4","C17.24",0,0,NA,0,0 +"C17.29","17.29 Manufacture of other articles of paper and paperboard",4,"C17.2","C","C","17","C17","2","C17.2","9","C17.29",0,0,NA,0,0 +"C18","18 Printing and reproduction of recorded media",2,"C","C","C","18","C18",NA,NA,NA,NA,0,0,0,0,0 +"C18.1","18.1 Printing and service activities related to printing",3,"C18","C","C","18","C18","1","C18.1",NA,NA,0,0,0,0,0 +"C18.11","18.11 Printing of newspapers",4,"C18.1","C","C","18","C18","1","C18.1","1","C18.11",0,0,NA,0,0 +"C18.12","18.12 Other printing",4,"C18.1","C","C","18","C18","1","C18.1","2","C18.12",0,0,NA,0,0 +"C18.13","18.13 Pre-press and pre-media services",4,"C18.1","C","C","18","C18","1","C18.1","3","C18.13",0,0,NA,0,0 +"C18.14","18.14 Binding and related services",4,"C18.1","C","C","18","C18","1","C18.1","4","C18.14",0,0,NA,0,0 +"C18.2","18.2 Reproduction of recorded media",3,"C18","C","C","18","C18","2","C18.2",NA,NA,0,0,0,0,0 +"C18.20","18.20 Reproduction of recorded media",4,"C18.2","C","C","18","C18","2","C18.2","0","C18.20",0,0,NA,0,0 +"C19","19 Manufacture of coke and refined petroleum products",2,"C","C","C","19","C19",NA,NA,NA,NA,0,0,0,0,0 +"C19.1","19.1 Manufacture of coke oven products",3,"C19","C","C","19","C19","1","C19.1",NA,NA,0,0,0,0,0 +"C19.10","19.10 Manufacture of coke oven products",4,"C19.1","C","C","19","C19","1","C19.1","0","C19.10",0,0,NA,0,0 +"C19.2","19.2 Manufacture of refined petroleum products",3,"C19","C","C","19","C19","2","C19.2",NA,NA,0,0,0,0,0 +"C19.20","19.20 Manufacture of refined petroleum products",4,"C19.2","C","C","19","C19","2","C19.2","0","C19.20",0,0,NA,0,0 +"C20","20 Manufacture of chemicals and chemical products",2,"C","C","C","20","C20",NA,NA,NA,NA,0,0,0,0,0 +"C20.1","20.1 Manufacture of basic chemicals, fertilisers and nitrogen compounds, plastics and synthetic rubber in primary forms",3,"C20","C","C","20","C20","1","C20.1",NA,NA,0,0,0,0,0 +"C20.11","20.11 Manufacture of industrial gases",4,"C20.1","C","C","20","C20","1","C20.1","1","C20.11",0,0,NA,0,0 +"C20.12","20.12 Manufacture of dyes and pigments",4,"C20.1","C","C","20","C20","1","C20.1","2","C20.12",0,0,NA,0,0 +"C20.13","20.13 Manufacture of other inorganic basic chemicals",4,"C20.1","C","C","20","C20","1","C20.1","3","C20.13",0,0,NA,0,0 +"C20.14","20.14 Manufacture of other organic basic chemicals",4,"C20.1","C","C","20","C20","1","C20.1","4","C20.14",0,0,NA,0,0 +"C20.15","20.15 Manufacture of fertilisers and nitrogen compounds",4,"C20.1","C","C","20","C20","1","C20.1","5","C20.15",0,0,NA,0,0 +"C20.16","20.16 Manufacture of plastics in primary forms",4,"C20.1","C","C","20","C20","1","C20.1","6","C20.16",0,0,NA,0,0 +"C20.17","20.17 Manufacture of synthetic rubber in primary forms",4,"C20.1","C","C","20","C20","1","C20.1","7","C20.17",0,0,NA,0,0 +"C20.2","20.2 Manufacture of pesticides and other agrochemical products",3,"C20","C","C","20","C20","2","C20.2",NA,NA,0,0,0,0,0 +"C20.20","20.20 Manufacture of pesticides and other agrochemical products",4,"C20.2","C","C","20","C20","2","C20.2","0","C20.20",0,0,NA,0,0 +"C20.3","20.3 Manufacture of paints, varnishes and similar coatings, printing ink and mastics",3,"C20","C","C","20","C20","3","C20.3",NA,NA,0,0,0,0,0 +"C20.30","20.30 Manufacture of paints, varnishes and similar coatings, printing ink and mastics",4,"C20.3","C","C","20","C20","3","C20.3","0","C20.30",0,0,NA,0,0 +"C20.4","20.4 Manufacture of soap and detergents, cleaning and polishing preparations, perfumes and toilet preparations",3,"C20","C","C","20","C20","4","C20.4",NA,NA,0,0,0,0,0 +"C20.41","20.41 Manufacture of soap and detergents, cleaning and polishing preparations",4,"C20.4","C","C","20","C20","4","C20.4","1","C20.41",0,0,NA,0,0 +"C20.42","20.42 Manufacture of perfumes and toilet preparations",4,"C20.4","C","C","20","C20","4","C20.4","2","C20.42",0,0,NA,0,0 +"C20.5","20.5 Manufacture of other chemical products",3,"C20","C","C","20","C20","5","C20.5",NA,NA,0,0,0,0,0 +"C20.51","20.51 Manufacture of explosives",4,"C20.5","C","C","20","C20","5","C20.5","1","C20.51",0,0,NA,0,0 +"C20.52","20.52 Manufacture of glues",4,"C20.5","C","C","20","C20","5","C20.5","2","C20.52",0,0,NA,0,0 +"C20.53","20.53 Manufacture of essential oils",4,"C20.5","C","C","20","C20","5","C20.5","3","C20.53",0,0,NA,0,0 +"C20.59","20.59 Manufacture of other chemical products n.e.c.",4,"C20.5","C","C","20","C20","5","C20.5","9","C20.59",0,0,NA,0,0 +"C20.6","20.6 Manufacture of man-made fibres",3,"C20","C","C","20","C20","6","C20.6",NA,NA,0,0,0,0,0 +"C20.60","20.60 Manufacture of man-made fibres",4,"C20.6","C","C","20","C20","6","C20.6","0","C20.60",0,0,NA,0,0 +"C21","21 Manufacture of basic pharmaceutical products and pharmaceutical preparations",2,"C","C","C","21","C21",NA,NA,NA,NA,0,0,0,0,0 +"C21.1","21.1 Manufacture of basic pharmaceutical products",3,"C21","C","C","21","C21","1","C21.1",NA,NA,0,0,0,0,0 +"C21.10","21.10 Manufacture of basic pharmaceutical products",4,"C21.1","C","C","21","C21","1","C21.1","0","C21.10",0,0,NA,0,0 +"C21.2","21.2 Manufacture of pharmaceutical preparations",3,"C21","C","C","21","C21","2","C21.2",NA,NA,0,0,0,0,0 +"C21.20","21.20 Manufacture of pharmaceutical preparations",4,"C21.2","C","C","21","C21","2","C21.2","0","C21.20",0,0,NA,0,0 +"C22","22 Manufacture of rubber and plastic products",2,"C","C","C","22","C22",NA,NA,NA,NA,0,0,0,0,0 +"C22.1","22.1 Manufacture of rubber products",3,"C22","C","C","22","C22","1","C22.1",NA,NA,0,0,0,0,0 +"C22.11","22.11 Manufacture of rubber tyres and tubes; retreading and rebuilding of rubber tyres",4,"C22.1","C","C","22","C22","1","C22.1","1","C22.11",0,0,NA,0,0 +"C22.19","22.19 Manufacture of other rubber products",4,"C22.1","C","C","22","C22","1","C22.1","9","C22.19",0,0,NA,0,0 +"C22.2","22.2 Manufacture of plastic products",3,"C22","C","C","22","C22","2","C22.2",NA,NA,0,0,0,0,0 +"C22.21","22.21 Manufacture of plastic plates, sheets, tubes and profiles",4,"C22.2","C","C","22","C22","2","C22.2","1","C22.21",0,0,NA,0,0 +"C22.22","22.22 Manufacture of plastic packing goods",4,"C22.2","C","C","22","C22","2","C22.2","2","C22.22",0,0,NA,0,0 +"C22.23","22.23 Manufacture of builders’ ware of plastic",4,"C22.2","C","C","22","C22","2","C22.2","3","C22.23",0,0,NA,0,0 +"C22.29","22.29 Manufacture of other plastic products",4,"C22.2","C","C","22","C22","2","C22.2","9","C22.29",0,0,NA,0,0 +"C23","23 Manufacture of other non-metallic mineral products",2,"C","C","C","23","C23",NA,NA,NA,NA,0,0,0,0,0 +"C23.1","23.1 Manufacture of glass and glass products",3,"C23","C","C","23","C23","1","C23.1",NA,NA,0,0,0,0,0 +"C23.11","23.11 Manufacture of flat glass",4,"C23.1","C","C","23","C23","1","C23.1","1","C23.11",0,0,NA,0,0 +"C23.12","23.12 Shaping and processing of flat glass",4,"C23.1","C","C","23","C23","1","C23.1","2","C23.12",0,0,NA,0,0 +"C23.13","23.13 Manufacture of hollow glass",4,"C23.1","C","C","23","C23","1","C23.1","3","C23.13",0,0,NA,0,0 +"C23.14","23.14 Manufacture of glass fibres",4,"C23.1","C","C","23","C23","1","C23.1","4","C23.14",0,0,NA,0,0 +"C23.19","23.19 Manufacture and processing of other glass, including technical glassware",4,"C23.1","C","C","23","C23","1","C23.1","9","C23.19",0,0,NA,0,0 +"C23.2","23.2 Manufacture of refractory products",3,"C23","C","C","23","C23","2","C23.2",NA,NA,0,0,0,0,0 +"C23.20","23.20 Manufacture of refractory products",4,"C23.2","C","C","23","C23","2","C23.2","0","C23.20",0,0,NA,0,0 +"C23.3","23.3 Manufacture of clay building materials",3,"C23","C","C","23","C23","3","C23.3",NA,NA,0,0,0,0,0 +"C23.31","23.31 Manufacture of ceramic tiles and flags",4,"C23.3","C","C","23","C23","3","C23.3","1","C23.31",0,0,NA,0,0 +"C23.32","23.32 Manufacture of bricks, tiles and construction products, in baked clay",4,"C23.3","C","C","23","C23","3","C23.3","2","C23.32",0,0,NA,0,0 +"C23.4","23.4 Manufacture of other porcelain and ceramic products",3,"C23","C","C","23","C23","4","C23.4",NA,NA,0,0,0,0,0 +"C23.41","23.41 Manufacture of ceramic household and ornamental articles",4,"C23.4","C","C","23","C23","4","C23.4","1","C23.41",0,0,NA,0,0 +"C23.42","23.42 Manufacture of ceramic sanitary fixtures",4,"C23.4","C","C","23","C23","4","C23.4","2","C23.42",0,0,NA,0,0 +"C23.43","23.43 Manufacture of ceramic insulators and insulating fittings",4,"C23.4","C","C","23","C23","4","C23.4","3","C23.43",0,0,NA,0,0 +"C23.44","23.44 Manufacture of other technical ceramic products",4,"C23.4","C","C","23","C23","4","C23.4","4","C23.44",0,0,NA,0,0 +"C23.49","23.49 Manufacture of other ceramic products",4,"C23.4","C","C","23","C23","4","C23.4","9","C23.49",0,0,NA,0,0 +"C23.5","23.5 Manufacture of cement, lime and plaster",3,"C23","C","C","23","C23","5","C23.5",NA,NA,0,0,0,0,0 +"C23.51","23.51 Manufacture of cement",4,"C23.5","C","C","23","C23","5","C23.5","1","C23.51",0,0,NA,0,0 +"C23.52","23.52 Manufacture of lime and plaster",4,"C23.5","C","C","23","C23","5","C23.5","2","C23.52",0,0,NA,0,0 +"C23.6","23.6 Manufacture of articles of concrete, cement and plaster",3,"C23","C","C","23","C23","6","C23.6",NA,NA,0,0,0,0,0 +"C23.61","23.61 Manufacture of concrete products for construction purposes",4,"C23.6","C","C","23","C23","6","C23.6","1","C23.61",0,0,NA,0,0 +"C23.62","23.62 Manufacture of plaster products for construction purposes",4,"C23.6","C","C","23","C23","6","C23.6","2","C23.62",0,0,NA,0,0 +"C23.63","23.63 Manufacture of ready-mixed concrete",4,"C23.6","C","C","23","C23","6","C23.6","3","C23.63",0,0,NA,0,0 +"C23.64","23.64 Manufacture of mortars",4,"C23.6","C","C","23","C23","6","C23.6","4","C23.64",0,0,NA,0,0 +"C23.65","23.65 Manufacture of fibre cement",4,"C23.6","C","C","23","C23","6","C23.6","5","C23.65",0,0,NA,0,0 +"C23.69","23.69 Manufacture of other articles of concrete, plaster and cement",4,"C23.6","C","C","23","C23","6","C23.6","9","C23.69",0,0,NA,0,0 +"C23.7","23.7 Cutting, shaping and finishing of stone",3,"C23","C","C","23","C23","7","C23.7",NA,NA,0,0,0,0,0 +"C23.70","23.70 Cutting, shaping and finishing of stone",4,"C23.7","C","C","23","C23","7","C23.7","0","C23.70",0,0,NA,0,0 +"C23.9","23.9 Manufacture of abrasive products and non-metallic mineral products n.e.c.",3,"C23","C","C","23","C23","9","C23.9",NA,NA,0,0,0,0,0 +"C23.91","23.91 Production of abrasive products",4,"C23.9","C","C","23","C23","9","C23.9","1","C23.91",0,0,NA,0,0 +"C23.99","23.99 Manufacture of other non-metallic mineral products n.e.c.",4,"C23.9","C","C","23","C23","9","C23.9","9","C23.99",0,0,NA,0,0 +"C24","24 Manufacture of basic metals",2,"C","C","C","24","C24",NA,NA,NA,NA,0,0,0,0,0 +"C24.1","24.1 Manufacture of basic iron and steel and of ferro-alloys",3,"C24","C","C","24","C24","1","C24.1",NA,NA,0,0,0,0,0 +"C24.10","24.10 Manufacture of basic iron and steel and of ferro-alloys",4,"C24.1","C","C","24","C24","1","C24.1","0","C24.10",0,0,NA,0,0 +"C24.2","24.2 Manufacture of tubes, pipes, hollow profiles and related fittings, of steel",3,"C24","C","C","24","C24","2","C24.2",NA,NA,0,0,0,0,0 +"C24.20","24.20 Manufacture of tubes, pipes, hollow profiles and related fittings, of steel",4,"C24.2","C","C","24","C24","2","C24.2","0","C24.20",0,0,NA,0,0 +"C24.3","24.3 Manufacture of other products of first processing of steel",3,"C24","C","C","24","C24","3","C24.3",NA,NA,0,0,0,0,0 +"C24.31","24.31 Cold drawing of bars",4,"C24.3","C","C","24","C24","3","C24.3","1","C24.31",0,0,NA,0,0 +"C24.32","24.32 Cold rolling of narrow strip",4,"C24.3","C","C","24","C24","3","C24.3","2","C24.32",0,0,NA,0,0 +"C24.33","24.33 Cold forming or folding",4,"C24.3","C","C","24","C24","3","C24.3","3","C24.33",0,0,NA,0,0 +"C24.34","24.34 Cold drawing of wire",4,"C24.3","C","C","24","C24","3","C24.3","4","C24.34",0,0,NA,0,0 +"C24.4","24.4 Manufacture of basic precious and other non-ferrous metals",3,"C24","C","C","24","C24","4","C24.4",NA,NA,0,0,0,0,0 +"C24.41","24.41 Precious metals production",4,"C24.4","C","C","24","C24","4","C24.4","1","C24.41",0,0,NA,0,0 +"C24.42","24.42 Aluminium production",4,"C24.4","C","C","24","C24","4","C24.4","2","C24.42",0,0,NA,0,0 +"C24.43","24.43 Lead, zinc and tin production",4,"C24.4","C","C","24","C24","4","C24.4","3","C24.43",0,0,NA,0,0 +"C24.44","24.44 Copper production",4,"C24.4","C","C","24","C24","4","C24.4","4","C24.44",0,0,NA,0,0 +"C24.45","24.45 Other non-ferrous metal production",4,"C24.4","C","C","24","C24","4","C24.4","5","C24.45",0,0,NA,0,0 +"C24.46","24.46 Processing of nuclear fuel",4,"C24.4","C","C","24","C24","4","C24.4","6","C24.46",0,0,NA,0,0 +"C24.5","24.5 Casting of metals",3,"C24","C","C","24","C24","5","C24.5",NA,NA,0,0,0,0,0 +"C24.51","24.51 Casting of iron",4,"C24.5","C","C","24","C24","5","C24.5","1","C24.51",0,0,NA,0,0 +"C24.52","24.52 Casting of steel",4,"C24.5","C","C","24","C24","5","C24.5","2","C24.52",0,0,NA,0,0 +"C24.53","24.53 Casting of light metals",4,"C24.5","C","C","24","C24","5","C24.5","3","C24.53",0,0,NA,0,0 +"C24.54","24.54 Casting of other non-ferrous metals",4,"C24.5","C","C","24","C24","5","C24.5","4","C24.54",0,0,NA,0,0 +"C25","25 Manufacture of fabricated metal products, except machinery and equipment",2,"C","C","C","25","C25",NA,NA,NA,NA,0,0,0,0,0 +"C25.1","25.1 Manufacture of structural metal products",3,"C25","C","C","25","C25","1","C25.1",NA,NA,0,0,0,0,0 +"C25.11","25.11 Manufacture of metal structures and parts of structures",4,"C25.1","C","C","25","C25","1","C25.1","1","C25.11",0,0,NA,0,0 +"C25.12","25.12 Manufacture of doors and windows of metal",4,"C25.1","C","C","25","C25","1","C25.1","2","C25.12",0,0,NA,0,0 +"C25.2","25.2 Manufacture of tanks, reservoirs and containers of metal",3,"C25","C","C","25","C25","2","C25.2",NA,NA,0,0,0,0,0 +"C25.21","25.21 Manufacture of central heating radiators and boilers",4,"C25.2","C","C","25","C25","2","C25.2","1","C25.21",0,0,NA,0,0 +"C25.29","25.29 Manufacture of other tanks, reservoirs and containers of metal",4,"C25.2","C","C","25","C25","2","C25.2","9","C25.29",0,0,NA,0,0 +"C25.3","25.3 Manufacture of steam generators, except central heating hot water boilers",3,"C25","C","C","25","C25","3","C25.3",NA,NA,0,0,0,0,0 +"C25.30","25.30 Manufacture of steam generators, except central heating hot water boilers",4,"C25.3","C","C","25","C25","3","C25.3","0","C25.30",0,0,NA,0,0 +"C25.4","25.4 Manufacture of weapons and ammunition",3,"C25","C","C","25","C25","4","C25.4",NA,NA,0,0,0,0,0 +"C25.40","25.40 Manufacture of weapons and ammunition",4,"C25.4","C","C","25","C25","4","C25.4","0","C25.40",0,0,NA,0,0 +"C25.5","25.5 Forging, pressing, stamping and roll-forming of metal; powder metallurgy",3,"C25","C","C","25","C25","5","C25.5",NA,NA,0,0,0,0,0 +"C25.50","25.50 Forging, pressing, stamping and roll-forming of metal; powder metallurgy",4,"C25.5","C","C","25","C25","5","C25.5","0","C25.50",0,0,NA,0,0 +"C25.6","25.6 Treatment and coating of metals; machining",3,"C25","C","C","25","C25","6","C25.6",NA,NA,0,0,0,0,0 +"C25.61","25.61 Treatment and coating of metals",4,"C25.6","C","C","25","C25","6","C25.6","1","C25.61",0,0,NA,0,0 +"C25.62","25.62 Machining",4,"C25.6","C","C","25","C25","6","C25.6","2","C25.62",0,0,NA,0,0 +"C25.7","25.7 Manufacture of cutlery, tools and general hardware",3,"C25","C","C","25","C25","7","C25.7",NA,NA,0,0,0,0,0 +"C25.71","25.71 Manufacture of cutlery",4,"C25.7","C","C","25","C25","7","C25.7","1","C25.71",0,0,NA,0,0 +"C25.72","25.72 Manufacture of locks and hinges",4,"C25.7","C","C","25","C25","7","C25.7","2","C25.72",0,0,NA,0,0 +"C25.73","25.73 Manufacture of tools",4,"C25.7","C","C","25","C25","7","C25.7","3","C25.73",0,0,NA,0,0 +"C25.9","25.9 Manufacture of other fabricated metal products",3,"C25","C","C","25","C25","9","C25.9",NA,NA,0,0,0,0,0 +"C25.91","25.91 Manufacture of steel drums and similar containers",4,"C25.9","C","C","25","C25","9","C25.9","1","C25.91",0,0,NA,0,0 +"C25.92","25.92 Manufacture of light metal packaging",4,"C25.9","C","C","25","C25","9","C25.9","2","C25.92",0,0,NA,0,0 +"C25.93","25.93 Manufacture of wire products, chain and springs",4,"C25.9","C","C","25","C25","9","C25.9","3","C25.93",0,0,NA,0,0 +"C25.94","25.94 Manufacture of fasteners and screw machine products",4,"C25.9","C","C","25","C25","9","C25.9","4","C25.94",0,0,NA,0,0 +"C25.99","25.99 Manufacture of other fabricated metal products n.e.c.",4,"C25.9","C","C","25","C25","9","C25.9","9","C25.99",0,0,NA,0,0 +"C26","26 Manufacture of computer, electronic and optical products",2,"C","C","C","26","C26",NA,NA,NA,NA,0,0,0,0,0 +"C26.1","26.1 Manufacture of electronic components and boards",3,"C26","C","C","26","C26","1","C26.1",NA,NA,0,0,0,0,0 +"C26.11","26.11 Manufacture of electronic components",4,"C26.1","C","C","26","C26","1","C26.1","1","C26.11",0,0,NA,0,0 +"C26.12","26.12 Manufacture of loaded electronic boards",4,"C26.1","C","C","26","C26","1","C26.1","2","C26.12",0,0,NA,0,0 +"C26.2","26.2 Manufacture of computers and peripheral equipment",3,"C26","C","C","26","C26","2","C26.2",NA,NA,0,0,0,0,0 +"C26.20","26.20 Manufacture of computers and peripheral equipment",4,"C26.2","C","C","26","C26","2","C26.2","0","C26.20",0,0,NA,0,0 +"C26.3","26.3 Manufacture of communication equipment",3,"C26","C","C","26","C26","3","C26.3",NA,NA,0,0,0,0,0 +"C26.30","26.30 Manufacture of communication equipment",4,"C26.3","C","C","26","C26","3","C26.3","0","C26.30",0,0,NA,0,0 +"C26.4","26.4 Manufacture of consumer electronics",3,"C26","C","C","26","C26","4","C26.4",NA,NA,0,0,0,0,0 +"C26.40","26.40 Manufacture of consumer electronics",4,"C26.4","C","C","26","C26","4","C26.4","0","C26.40",0,0,NA,0,0 +"C26.5","26.5 Manufacture of instruments and appliances for measuring, testing and navigation; watches and clocks",3,"C26","C","C","26","C26","5","C26.5",NA,NA,0,0,0,0,0 +"C26.51","26.51 Manufacture of instruments and appliances for measuring, testing and navigation",4,"C26.5","C","C","26","C26","5","C26.5","1","C26.51",0,0,NA,0,0 +"C26.52","26.52 Manufacture of watches and clocks",4,"C26.5","C","C","26","C26","5","C26.5","2","C26.52",0,0,NA,0,0 +"C26.6","26.6 Manufacture of irradiation, electromedical and electrotherapeutic equipment",3,"C26","C","C","26","C26","6","C26.6",NA,NA,0,0,0,0,0 +"C26.60","26.60 Manufacture of irradiation, electromedical and electrotherapeutic equipment",4,"C26.6","C","C","26","C26","6","C26.6","0","C26.60",0,0,NA,0,0 +"C26.7","26.7 Manufacture of optical instruments and photographic equipment",3,"C26","C","C","26","C26","7","C26.7",NA,NA,0,0,0,0,0 +"C26.70","26.70 Manufacture of optical instruments and photographic equipment",4,"C26.7","C","C","26","C26","7","C26.7","0","C26.70",0,0,NA,0,0 +"C26.8","26.8 Manufacture of magnetic and optical media",3,"C26","C","C","26","C26","8","C26.8",NA,NA,0,0,0,0,0 +"C26.80","26.80 Manufacture of magnetic and optical media",4,"C26.8","C","C","26","C26","8","C26.8","0","C26.80",0,0,NA,0,0 +"C27","27 Manufacture of electrical equipment",2,"C","C","C","27","C27",NA,NA,NA,NA,0,0,0,0,0 +"C27.1","27.1 Manufacture of electric motors, generators, transformers and electricity distribution and control apparatus",3,"C27","C","C","27","C27","1","C27.1",NA,NA,0,0,0,0,0 +"C27.11","27.11 Manufacture of electric motors, generators and transformers",4,"C27.1","C","C","27","C27","1","C27.1","1","C27.11",0,0,NA,0,0 +"C27.12","27.12 Manufacture of electricity distribution and control apparatus",4,"C27.1","C","C","27","C27","1","C27.1","2","C27.12",0,0,NA,0,0 +"C27.2","27.2 Manufacture of batteries and accumulators",3,"C27","C","C","27","C27","2","C27.2",NA,NA,0,0,0,0,0 +"C27.20","27.20 Manufacture of batteries and accumulators",4,"C27.2","C","C","27","C27","2","C27.2","0","C27.20",0,0,NA,0,0 +"C27.3","27.3 Manufacture of wiring and wiring devices",3,"C27","C","C","27","C27","3","C27.3",NA,NA,0,0,0,0,0 +"C27.31","27.31 Manufacture of fibre optic cables",4,"C27.3","C","C","27","C27","3","C27.3","1","C27.31",0,0,NA,0,0 +"C27.32","27.32 Manufacture of other electronic and electric wires and cables",4,"C27.3","C","C","27","C27","3","C27.3","2","C27.32",0,0,NA,0,0 +"C27.33","27.33 Manufacture of wiring devices",4,"C27.3","C","C","27","C27","3","C27.3","3","C27.33",0,0,NA,0,0 +"C27.4","27.4 Manufacture of electric lighting equipment",3,"C27","C","C","27","C27","4","C27.4",NA,NA,0,0,0,0,0 +"C27.40","27.40 Manufacture of electric lighting equipment",4,"C27.4","C","C","27","C27","4","C27.4","0","C27.40",0,0,NA,0,0 +"C27.5","27.5 Manufacture of domestic appliances",3,"C27","C","C","27","C27","5","C27.5",NA,NA,0,0,0,0,0 +"C27.51","27.51 Manufacture of electric domestic appliances",4,"C27.5","C","C","27","C27","5","C27.5","1","C27.51",0,0,NA,0,0 +"C27.52","27.52 Manufacture of non-electric domestic appliances",4,"C27.5","C","C","27","C27","5","C27.5","2","C27.52",0,0,NA,0,0 +"C27.9","27.9 Manufacture of other electrical equipment",3,"C27","C","C","27","C27","9","C27.9",NA,NA,0,0,0,0,0 +"C27.90","27.90 Manufacture of other electrical equipment",4,"C27.9","C","C","27","C27","9","C27.9","0","C27.90",0,0,NA,0,0 +"C28","28 Manufacture of machinery and equipment n.e.c.",2,"C","C","C","28","C28",NA,NA,NA,NA,0,0,0,0,0 +"C28.1","28.1 Manufacture of general-purpose machinery",3,"C28","C","C","28","C28","1","C28.1",NA,NA,0,0,0,0,0 +"C28.11","28.11 Manufacture of engines and turbines, except aircraft, vehicle and cycle engines",4,"C28.1","C","C","28","C28","1","C28.1","1","C28.11",0,0,NA,0,0 +"C28.12","28.12 Manufacture of fluid power equipment",4,"C28.1","C","C","28","C28","1","C28.1","2","C28.12",0,0,NA,0,0 +"C28.13","28.13 Manufacture of other pumps and compressors",4,"C28.1","C","C","28","C28","1","C28.1","3","C28.13",0,0,NA,0,0 +"C28.14","28.14 Manufacture of other taps and valves",4,"C28.1","C","C","28","C28","1","C28.1","4","C28.14",0,0,NA,0,0 +"C28.15","28.15 Manufacture of bearings, gears, gearing and driving elements",4,"C28.1","C","C","28","C28","1","C28.1","5","C28.15",0,0,NA,0,0 +"C28.2","28.2 Manufacture of other general-purpose machinery",3,"C28","C","C","28","C28","2","C28.2",NA,NA,0,0,0,0,0 +"C28.21","28.21 Manufacture of ovens, furnaces and furnace burners",4,"C28.2","C","C","28","C28","2","C28.2","1","C28.21",0,0,NA,0,0 +"C28.22","28.22 Manufacture of lifting and handling equipment",4,"C28.2","C","C","28","C28","2","C28.2","2","C28.22",0,0,NA,0,0 +"C28.23","28.23 Manufacture of office machinery and equipment (except computers and peripheral equipment)",4,"C28.2","C","C","28","C28","2","C28.2","3","C28.23",0,0,NA,0,0 +"C28.24","28.24 Manufacture of power-driven hand tools",4,"C28.2","C","C","28","C28","2","C28.2","4","C28.24",0,0,NA,0,0 +"C28.25","28.25 Manufacture of non-domestic cooling and ventilation equipment",4,"C28.2","C","C","28","C28","2","C28.2","5","C28.25",0,0,NA,0,0 +"C28.29","28.29 Manufacture of other general-purpose machinery n.e.c.",4,"C28.2","C","C","28","C28","2","C28.2","9","C28.29",0,0,NA,0,0 +"C28.3","28.3 Manufacture of agricultural and forestry machinery",3,"C28","C","C","28","C28","3","C28.3",NA,NA,0,0,0,0,0 +"C28.30","28.30 Manufacture of agricultural and forestry machinery",4,"C28.3","C","C","28","C28","3","C28.3","0","C28.30",0,0,NA,0,0 +"C28.4","28.4 Manufacture of metal forming machinery and machine tools",3,"C28","C","C","28","C28","4","C28.4",NA,NA,0,0,0,0,0 +"C28.41","28.41 Manufacture of metal forming machinery",4,"C28.4","C","C","28","C28","4","C28.4","1","C28.41",0,0,NA,0,0 +"C28.49","28.49 Manufacture of other machine tools",4,"C28.4","C","C","28","C28","4","C28.4","9","C28.49",0,0,NA,0,0 +"C28.9","28.9 Manufacture of other special-purpose machinery",3,"C28","C","C","28","C28","9","C28.9",NA,NA,0,0,0,0,0 +"C28.91","28.91 Manufacture of machinery for metallurgy",4,"C28.9","C","C","28","C28","9","C28.9","1","C28.91",0,0,NA,0,0 +"C28.92","28.92 Manufacture of machinery for mining, quarrying and construction",4,"C28.9","C","C","28","C28","9","C28.9","2","C28.92",0,0,NA,0,0 +"C28.93","28.93 Manufacture of machinery for food, beverage and tobacco processing",4,"C28.9","C","C","28","C28","9","C28.9","3","C28.93",0,0,NA,0,0 +"C28.94","28.94 Manufacture of machinery for textile, apparel and leather production",4,"C28.9","C","C","28","C28","9","C28.9","4","C28.94",0,0,NA,0,0 +"C28.95","28.95 Manufacture of machinery for paper and paperboard production",4,"C28.9","C","C","28","C28","9","C28.9","5","C28.95",0,0,NA,0,0 +"C28.96","28.96 Manufacture of plastics and rubber machinery",4,"C28.9","C","C","28","C28","9","C28.9","6","C28.96",0,0,NA,0,0 +"C28.99","28.99 Manufacture of other special-purpose machinery n.e.c.",4,"C28.9","C","C","28","C28","9","C28.9","9","C28.99",0,0,NA,0,0 +"C29","29 Manufacture of motor vehicles, trailers and semi-trailers",2,"C","C","C","29","C29",NA,NA,NA,NA,0,0,0,0,0 +"C29.1","29.1 Manufacture of motor vehicles",3,"C29","C","C","29","C29","1","C29.1",NA,NA,0,0,0,0,0 +"C29.10","29.10 Manufacture of motor vehicles",4,"C29.1","C","C","29","C29","1","C29.1","0","C29.10",0,0,NA,0,0 +"C29.2","29.2 Manufacture of bodies (coachwork) for motor vehicles; manufacture of trailers and semi-trailers",3,"C29","C","C","29","C29","2","C29.2",NA,NA,0,0,0,0,0 +"C29.20","29.20 Manufacture of bodies (coachwork) for motor vehicles; manufacture of trailers and semi-trailers",4,"C29.2","C","C","29","C29","2","C29.2","0","C29.20",0,0,NA,0,0 +"C29.3","29.3 Manufacture of parts and accessories for motor vehicles",3,"C29","C","C","29","C29","3","C29.3",NA,NA,0,0,0,0,0 +"C29.31","29.31 Manufacture of electrical and electronic equipment for motor vehicles",4,"C29.3","C","C","29","C29","3","C29.3","1","C29.31",0,0,NA,0,0 +"C29.32","29.32 Manufacture of other parts and accessories for motor vehicles",4,"C29.3","C","C","29","C29","3","C29.3","2","C29.32",0,0,NA,0,0 +"C30","30 Manufacture of other transport equipment",2,"C","C","C","30","C30",NA,NA,NA,NA,0,0,0,0,0 +"C30.1","30.1 Building of ships and boats",3,"C30","C","C","30","C30","1","C30.1",NA,NA,0,0,0,0,0 +"C30.11","30.11 Building of ships and floating structures",4,"C30.1","C","C","30","C30","1","C30.1","1","C30.11",0,0,NA,0,0 +"C30.12","30.12 Building of pleasure and sporting boats",4,"C30.1","C","C","30","C30","1","C30.1","2","C30.12",0,0,NA,0,0 +"C30.2","30.2 Manufacture of railway locomotives and rolling stock",3,"C30","C","C","30","C30","2","C30.2",NA,NA,0,0,0,0,0 +"C30.20","30.20 Manufacture of railway locomotives and rolling stock",4,"C30.2","C","C","30","C30","2","C30.2","0","C30.20",0,0,NA,0,0 +"C30.3","30.3 Manufacture of air and spacecraft and related machinery",3,"C30","C","C","30","C30","3","C30.3",NA,NA,0,0,0,0,0 +"C30.30","30.30 Manufacture of air and spacecraft and related machinery",4,"C30.3","C","C","30","C30","3","C30.3","0","C30.30",0,0,NA,0,0 +"C30.4","30.4 Manufacture of military fighting vehicles",3,"C30","C","C","30","C30","4","C30.4",NA,NA,0,0,0,0,0 +"C30.40","30.40 Manufacture of military fighting vehicles",4,"C30.4","C","C","30","C30","4","C30.4","0","C30.40",0,0,NA,0,0 +"C30.9","30.9 Manufacture of transport equipment n.e.c.",3,"C30","C","C","30","C30","9","C30.9",NA,NA,0,0,0,0,0 +"C30.91","30.91 Manufacture of motorcycles",4,"C30.9","C","C","30","C30","9","C30.9","1","C30.91",0,0,NA,0,0 +"C30.92","30.92 Manufacture of bicycles and invalid carriages",4,"C30.9","C","C","30","C30","9","C30.9","2","C30.92",0,0,NA,0,0 +"C30.99","30.99 Manufacture of other transport equipment n.e.c.",4,"C30.9","C","C","30","C30","9","C30.9","9","C30.99",0,0,NA,0,0 +"C31","31 Manufacture of furniture",2,"C","C","C","31","C31",NA,NA,NA,NA,0,0,0,0,0 +"C31.0","31.0 Manufacture of furniture",3,"C31","C","C","31","C31","0","C31.0",NA,NA,0,0,0,0,0 +"C31.01","31.01 Manufacture of office and shop furniture",4,"C31.0","C","C","31","C31","0","C31.0","1","C31.01",0,0,NA,0,0 +"C31.02","31.02 Manufacture of kitchen furniture",4,"C31.0","C","C","31","C31","0","C31.0","2","C31.02",0,0,NA,0,0 +"C31.03","31.03 Manufacture of mattresses",4,"C31.0","C","C","31","C31","0","C31.0","3","C31.03",0,0,NA,0,0 +"C31.09","31.09 Manufacture of other furniture",4,"C31.0","C","C","31","C31","0","C31.0","9","C31.09",0,0,NA,0,0 +"C32","32 Other manufacturing",2,"C","C","C","32","C32",NA,NA,NA,NA,0,0,0,0,0 +"C32.1","32.1 Manufacture of jewellery, bijouterie and related articles",3,"C32","C","C","32","C32","1","C32.1",NA,NA,0,0,0,0,0 +"C32.11","32.11 Striking of coins",4,"C32.1","C","C","32","C32","1","C32.1","1","C32.11",0,0,NA,0,0 +"C32.12","32.12 Manufacture of jewellery and related articles",4,"C32.1","C","C","32","C32","1","C32.1","2","C32.12",0,0,NA,0,0 +"C32.13","32.13 Manufacture of imitation jewellery and related articles",4,"C32.1","C","C","32","C32","1","C32.1","3","C32.13",0,0,NA,0,0 +"C32.2","32.2 Manufacture of musical instruments",3,"C32","C","C","32","C32","2","C32.2",NA,NA,0,0,0,0,0 +"C32.20","32.20 Manufacture of musical instruments",4,"C32.2","C","C","32","C32","2","C32.2","0","C32.20",0,0,NA,0,0 +"C32.3","32.3 Manufacture of sports goods",3,"C32","C","C","32","C32","3","C32.3",NA,NA,0,0,0,0,0 +"C32.30","32.30 Manufacture of sports goods",4,"C32.3","C","C","32","C32","3","C32.3","0","C32.30",0,0,NA,0,0 +"C32.4","32.4 Manufacture of games and toys",3,"C32","C","C","32","C32","4","C32.4",NA,NA,0,0,0,0,0 +"C32.40","32.40 Manufacture of games and toys",4,"C32.4","C","C","32","C32","4","C32.4","0","C32.40",0,0,NA,0,0 +"C32.5","32.5 Manufacture of medical and dental instruments and supplies",3,"C32","C","C","32","C32","5","C32.5",NA,NA,0,0,0,0,0 +"C32.50","32.50 Manufacture of medical and dental instruments and supplies",4,"C32.5","C","C","32","C32","5","C32.5","0","C32.50",0,0,NA,0,0 +"C32.9","32.9 Manufacturing n.e.c.",3,"C32","C","C","32","C32","9","C32.9",NA,NA,0,0,0,0,0 +"C32.91","32.91 Manufacture of brooms and brushes",4,"C32.9","C","C","32","C32","9","C32.9","1","C32.91",0,0,NA,0,0 +"C32.99","32.99 Other manufacturing n.e.c.",4,"C32.9","C","C","32","C32","9","C32.9","9","C32.99",0,0,NA,0,0 +"C33","33 Repair and installation of machinery and equipment",2,"C","C","C","33","C33",NA,NA,NA,NA,0,0,0,0,0 +"C33.1","33.1 Repair of fabricated metal products, machinery and equipment",3,"C33","C","C","33","C33","1","C33.1",NA,NA,0,0,0,0,0 +"C33.11","33.11 Repair of fabricated metal products",4,"C33.1","C","C","33","C33","1","C33.1","1","C33.11",0,0,NA,0,0 +"C33.12","33.12 Repair of machinery",4,"C33.1","C","C","33","C33","1","C33.1","2","C33.12",0,0,NA,0,0 +"C33.13","33.13 Repair of electronic and optical equipment",4,"C33.1","C","C","33","C33","1","C33.1","3","C33.13",0,0,NA,0,0 +"C33.14","33.14 Repair of electrical equipment",4,"C33.1","C","C","33","C33","1","C33.1","4","C33.14",0,0,NA,0,0 +"C33.15","33.15 Repair and maintenance of ships and boats",4,"C33.1","C","C","33","C33","1","C33.1","5","C33.15",0,0,NA,0,0 +"C33.16","33.16 Repair and maintenance of aircraft and spacecraft",4,"C33.1","C","C","33","C33","1","C33.1","6","C33.16",0,0,NA,0,0 +"C33.17","33.17 Repair and maintenance of other transport equipment",4,"C33.1","C","C","33","C33","1","C33.1","7","C33.17",0,0,NA,0,0 +"C33.19","33.19 Repair of other equipment",4,"C33.1","C","C","33","C33","1","C33.1","9","C33.19",0,0,NA,0,0 +"C33.2","33.2 Installation of industrial machinery and equipment",3,"C33","C","C","33","C33","2","C33.2",NA,NA,0,0,0,0,0 +"C33.20","33.20 Installation of industrial machinery and equipment",4,"C33.2","C","C","33","C33","2","C33.2","0","C33.20",0,0,NA,0,0 +"D35","35 Electricity, gas, steam and air conditioning supply",2,"D","D","D","35","D35",NA,NA,NA,NA,0,0,0,0,0 +"D35.1","35.1 Electric power generation, transmission and distribution",3,"D35","D","D","35","D35","1","D35.1",NA,NA,0,0,0,0,0 +"D35.11","35.11 Production of electricity",4,"D35.1","D","D","35","D35","1","D35.1","1","D35.11",0,0,NA,0,0 +"D35.12","35.12 Transmission of electricity",4,"D35.1","D","D","35","D35","1","D35.1","2","D35.12",0,0,NA,0,0 +"D35.13","35.13 Distribution of electricity",4,"D35.1","D","D","35","D35","1","D35.1","3","D35.13",0,0,NA,0,0 +"D35.14","35.14 Trade of electricity",4,"D35.1","D","D","35","D35","1","D35.1","4","D35.14",0,0,NA,0,0 +"D35.2","35.2 Manufacture of gas; distribution of gaseous fuels through mains",3,"D35","D","D","35","D35","2","D35.2",NA,NA,0,0,0,0,0 +"D35.21","35.21 Manufacture of gas",4,"D35.2","D","D","35","D35","2","D35.2","1","D35.21",0,0,NA,0,0 +"D35.22","35.22 Distribution of gaseous fuels through mains",4,"D35.2","D","D","35","D35","2","D35.2","2","D35.22",0,0,NA,0,0 +"D35.23","35.23 Trade of gas through mains",4,"D35.2","D","D","35","D35","2","D35.2","3","D35.23",0,0,NA,0,0 +"D35.3","35.3 Steam and air conditioning supply",3,"D35","D","D","35","D35","3","D35.3",NA,NA,0,0,0,0,0 +"D35.30","35.30 Steam and air conditioning supply",4,"D35.3","D","D","35","D35","3","D35.3","0","D35.30",0,0,NA,0,0 +"E36","36 Water collection, treatment and supply",2,"E","E","E","36","E36",NA,NA,NA,NA,0,0,0,0,0 +"E36.0","36.0 Water collection, treatment and supply",3,"E36","E","E","36","E36","0","E36.0",NA,NA,0,0,0,0,0 +"E36.00","36.00 Water collection, treatment and supply",4,"E36.0","E","E","36","E36","0","E36.0","0","E36.00",0,0,NA,0,0 +"E37","37 Sewerage",2,"E","E","E","37","E37",NA,NA,NA,NA,0,0,0,0,0 +"E37.0","37.0 Sewerage",3,"E37","E","E","37","E37","0","E37.0",NA,NA,0,0,0,0,0 +"E37.00","37.00 Sewerage",4,"E37.0","E","E","37","E37","0","E37.0","0","E37.00",0,0,NA,0,0 +"E38","38 Waste collection, treatment and disposal activities; materials recovery",2,"E","E","E","38","E38",NA,NA,NA,NA,0,0,0,0,0 +"E38.1","38.1 Waste collection",3,"E38","E","E","38","E38","1","E38.1",NA,NA,0,0,0,0,0 +"E38.11","38.11 Collection of non-hazardous waste",4,"E38.1","E","E","38","E38","1","E38.1","1","E38.11",0,0,NA,0,0 +"E38.12","38.12 Collection of hazardous waste",4,"E38.1","E","E","38","E38","1","E38.1","2","E38.12",0,0,NA,0,0 +"E38.2","38.2 Waste treatment and disposal",3,"E38","E","E","38","E38","2","E38.2",NA,NA,0,0,0,0,0 +"E38.21","38.21 Treatment and disposal of non-hazardous waste",4,"E38.2","E","E","38","E38","2","E38.2","1","E38.21",0,0,NA,0,0 +"E38.22","38.22 Treatment and disposal of hazardous waste",4,"E38.2","E","E","38","E38","2","E38.2","2","E38.22",0,0,NA,0,0 +"E38.3","38.3 Materials recovery",3,"E38","E","E","38","E38","3","E38.3",NA,NA,0,0,0,0,0 +"E38.31","38.31 Dismantling of wrecks",4,"E38.3","E","E","38","E38","3","E38.3","1","E38.31",0,0,NA,0,0 +"E38.32","38.32 Recovery of sorted materials",4,"E38.3","E","E","38","E38","3","E38.3","2","E38.32",0,0,NA,0,0 +"E39","39 Remediation activities and other waste management services",2,"E","E","E","39","E39",NA,NA,NA,NA,0,0,0,0,0 +"E39.0","39.0 Remediation activities and other waste management services",3,"E39","E","E","39","E39","0","E39.0",NA,NA,0,0,0,0,0 +"E39.00","39.00 Remediation activities and other waste management services",4,"E39.0","E","E","39","E39","0","E39.0","0","E39.00",0,0,NA,0,0 +"F41","41 Construction of buildings",2,"F","F","F","41","F41",NA,NA,NA,NA,0,0,0,0,0 +"F41.1","41.1 Development of building projects",3,"F41","F","F","41","F41","1","F41.1",NA,NA,0,0,0,0,0 +"F41.10","41.10 Development of building projects",4,"F41.1","F","F","41","F41","1","F41.1","0","F41.10",0,0,NA,0,0 +"F41.2","41.2 Construction of residential and non-residential buildings",3,"F41","F","F","41","F41","2","F41.2",NA,NA,0,0,0,0,0 +"F41.20","41.20 Construction of residential and non-residential buildings",4,"F41.2","F","F","41","F41","2","F41.2","0","F41.20",0,0,NA,0,0 +"F42","42 Civil engineering",2,"F","F","F","42","F42",NA,NA,NA,NA,0,0,0,0,0 +"F42.1","42.1 Construction of roads and railways",3,"F42","F","F","42","F42","1","F42.1",NA,NA,0,0,0,0,0 +"F42.11","42.11 Construction of roads and motorways",4,"F42.1","F","F","42","F42","1","F42.1","1","F42.11",0,0,NA,0,0 +"F42.12","42.12 Construction of railways and underground railways",4,"F42.1","F","F","42","F42","1","F42.1","2","F42.12",0,0,NA,0,0 +"F42.13","42.13 Construction of bridges and tunnels",4,"F42.1","F","F","42","F42","1","F42.1","3","F42.13",0,0,NA,0,0 +"F42.2","42.2 Construction of utility projects",3,"F42","F","F","42","F42","2","F42.2",NA,NA,0,0,0,0,0 +"F42.21","42.21 Construction of utility projects for fluids",4,"F42.2","F","F","42","F42","2","F42.2","1","F42.21",0,0,NA,0,0 +"F42.22","42.22 Construction of utility projects for electricity and telecommunications",4,"F42.2","F","F","42","F42","2","F42.2","2","F42.22",0,0,NA,0,0 +"F42.9","42.9 Construction of other civil engineering projects",3,"F42","F","F","42","F42","9","F42.9",NA,NA,0,0,0,0,0 +"F42.91","42.91 Construction of water projects",4,"F42.9","F","F","42","F42","9","F42.9","1","F42.91",0,0,NA,0,0 +"F42.99","42.99 Construction of other civil engineering projects n.e.c.",4,"F42.9","F","F","42","F42","9","F42.9","9","F42.99",0,0,NA,0,0 +"F43","43 Specialised construction activities",2,"F","F","F","43","F43",NA,NA,NA,NA,0,0,0,0,0 +"F43.1","43.1 Demolition and site preparation",3,"F43","F","F","43","F43","1","F43.1",NA,NA,0,0,0,0,0 +"F43.11","43.11 Demolition",4,"F43.1","F","F","43","F43","1","F43.1","1","F43.11",0,0,NA,0,0 +"F43.12","43.12 Site preparation",4,"F43.1","F","F","43","F43","1","F43.1","2","F43.12",0,0,NA,0,0 +"F43.13","43.13 Test drilling and boring",4,"F43.1","F","F","43","F43","1","F43.1","3","F43.13",0,0,NA,0,0 +"F43.2","43.2 Electrical, plumbing and other construction installation activities",3,"F43","F","F","43","F43","2","F43.2",NA,NA,0,0,0,0,0 +"F43.21","43.21 Electrical installation",4,"F43.2","F","F","43","F43","2","F43.2","1","F43.21",0,0,NA,0,0 +"F43.22","43.22 Plumbing, heat and air-conditioning installation",4,"F43.2","F","F","43","F43","2","F43.2","2","F43.22",0,0,NA,0,0 +"F43.29","43.29 Other construction installation",4,"F43.2","F","F","43","F43","2","F43.2","9","F43.29",0,0,NA,0,0 +"F43.3","43.3 Building completion and finishing",3,"F43","F","F","43","F43","3","F43.3",NA,NA,0,0,0,0,0 +"F43.31","43.31 Plastering",4,"F43.3","F","F","43","F43","3","F43.3","1","F43.31",0,0,NA,0,0 +"F43.32","43.32 Joinery installation",4,"F43.3","F","F","43","F43","3","F43.3","2","F43.32",0,0,NA,0,0 +"F43.33","43.33 Floor and wall covering",4,"F43.3","F","F","43","F43","3","F43.3","3","F43.33",0,0,NA,0,0 +"F43.34","43.34 Painting and glazing",4,"F43.3","F","F","43","F43","3","F43.3","4","F43.34",0,0,NA,0,0 +"F43.39","43.39 Other building completion and finishing",4,"F43.3","F","F","43","F43","3","F43.3","9","F43.39",0,0,NA,0,0 +"F43.9","43.9 Other specialised construction activities",3,"F43","F","F","43","F43","9","F43.9",NA,NA,0,0,0,0,0 +"F43.91","43.91 Roofing activities",4,"F43.9","F","F","43","F43","9","F43.9","1","F43.91",0,0,NA,0,0 +"F43.99","43.99 Other specialised construction activities n.e.c.",4,"F43.9","F","F","43","F43","9","F43.9","9","F43.99",0,0,NA,0,0 +"G45","45 Wholesale and retail trade and repair of motor vehicles and motorcycles",2,"G","G","G","45","G45",NA,NA,NA,NA,0,0,0,0,0 +"G45.1","45.1 Sale of motor vehicles",3,"G45","G","G","45","G45","1","G45.1",NA,NA,0,0,0,0,0 +"G45.11","45.11 Sale of cars and light motor vehicles",4,"G45.1","G","G","45","G45","1","G45.1","1","G45.11",0,0,NA,0,0 +"G45.19","45.19 Sale of other motor vehicles",4,"G45.1","G","G","45","G45","1","G45.1","9","G45.19",0,0,NA,0,0 +"G45.2","45.2 Maintenance and repair of motor vehicles",3,"G45","G","G","45","G45","2","G45.2",NA,NA,0,0,0,0,0 +"G45.20","45.20 Maintenance and repair of motor vehicles",4,"G45.2","G","G","45","G45","2","G45.2","0","G45.20",0,0,NA,0,0 +"G45.3","45.3 Sale of motor vehicle parts and accessories",3,"G45","G","G","45","G45","3","G45.3",NA,NA,0,0,0,0,0 +"G45.31","45.31 Wholesale trade of motor vehicle parts and accessories",4,"G45.3","G","G","45","G45","3","G45.3","1","G45.31",0,0,NA,0,0 +"G45.32","45.32 Retail trade of motor vehicle parts and accessories",4,"G45.3","G","G","45","G45","3","G45.3","2","G45.32",0,0,NA,0,0 +"G45.4","45.4 Sale, maintenance and repair of motorcycles and related parts and accessories",3,"G45","G","G","45","G45","4","G45.4",NA,NA,0,0,0,0,0 +"G45.40","45.40 Sale, maintenance and repair of motorcycles and related parts and accessories",4,"G45.4","G","G","45","G45","4","G45.4","0","G45.40",0,0,NA,0,0 +"G46","46 Wholesale trade, except of motor vehicles and motorcycles",2,"G","G","G","46","G46",NA,NA,NA,NA,0,0,0,0,0 +"G46.1","46.1 Wholesale on a fee or contract basis",3,"G46","G","G","46","G46","1","G46.1",NA,NA,0,0,0,0,0 +"G46.11","46.11 Agents involved in the sale of agricultural raw materials, live animals, textile raw materials and semi-finished goods",4,"G46.1","G","G","46","G46","1","G46.1","1","G46.11",0,0,NA,0,0 +"G46.12","46.12 Agents involved in the sale of fuels, ores, metals and industrial chemicals",4,"G46.1","G","G","46","G46","1","G46.1","2","G46.12",0,0,NA,0,0 +"G46.13","46.13 Agents involved in the sale of timber and building materials",4,"G46.1","G","G","46","G46","1","G46.1","3","G46.13",0,0,NA,0,0 +"G46.14","46.14 Agents involved in the sale of machinery, industrial equipment, ships and aircraft",4,"G46.1","G","G","46","G46","1","G46.1","4","G46.14",0,0,NA,0,0 +"G46.15","46.15 Agents involved in the sale of furniture, household goods, hardware and ironmongery",4,"G46.1","G","G","46","G46","1","G46.1","5","G46.15",0,0,NA,0,0 +"G46.16","46.16 Agents involved in the sale of textiles, clothing, fur, footwear and leather goods",4,"G46.1","G","G","46","G46","1","G46.1","6","G46.16",0,0,NA,0,0 +"G46.17","46.17 Agents involved in the sale of food, beverages and tobacco",4,"G46.1","G","G","46","G46","1","G46.1","7","G46.17",0,0,NA,0,0 +"G46.18","46.18 Agents specialised in the sale of other particular products",4,"G46.1","G","G","46","G46","1","G46.1","8","G46.18",0,0,NA,0,0 +"G46.19","46.19 Agents involved in the sale of a variety of goods",4,"G46.1","G","G","46","G46","1","G46.1","9","G46.19",0,0,NA,0,0 +"G46.2","46.2 Wholesale of agricultural raw materials and live animals",3,"G46","G","G","46","G46","2","G46.2",NA,NA,0,0,0,0,0 +"G46.21","46.21 Wholesale of grain, unmanufactured tobacco, seeds and animal feeds",4,"G46.2","G","G","46","G46","2","G46.2","1","G46.21",0,0,NA,0,0 +"G46.22","46.22 Wholesale of flowers and plants",4,"G46.2","G","G","46","G46","2","G46.2","2","G46.22",0,0,NA,0,0 +"G46.23","46.23 Wholesale of live animals",4,"G46.2","G","G","46","G46","2","G46.2","3","G46.23",0,0,NA,0,0 +"G46.24","46.24 Wholesale of hides, skins and leather",4,"G46.2","G","G","46","G46","2","G46.2","4","G46.24",0,0,NA,0,0 +"G46.3","46.3 Wholesale of food, beverages and tobacco",3,"G46","G","G","46","G46","3","G46.3",NA,NA,0,0,0,0,0 +"G46.31","46.31 Wholesale of fruit and vegetables",4,"G46.3","G","G","46","G46","3","G46.3","1","G46.31",0,0,NA,0,0 +"G46.32","46.32 Wholesale of meat and meat products",4,"G46.3","G","G","46","G46","3","G46.3","2","G46.32",0,0,NA,0,0 +"G46.33","46.33 Wholesale of dairy products, eggs and edible oils and fats",4,"G46.3","G","G","46","G46","3","G46.3","3","G46.33",0,0,NA,0,0 +"G46.34","46.34 Wholesale of beverages",4,"G46.3","G","G","46","G46","3","G46.3","4","G46.34",0,0,NA,0,0 +"G46.35","46.35 Wholesale of tobacco products",4,"G46.3","G","G","46","G46","3","G46.3","5","G46.35",0,0,NA,0,0 +"G46.36","46.36 Wholesale of sugar and chocolate and sugar confectionery",4,"G46.3","G","G","46","G46","3","G46.3","6","G46.36",0,0,NA,0,0 +"G46.37","46.37 Wholesale of coffee, tea, cocoa and spices",4,"G46.3","G","G","46","G46","3","G46.3","7","G46.37",0,0,NA,0,0 +"G46.38","46.38 Wholesale of other food, including fish, crustaceans and molluscs",4,"G46.3","G","G","46","G46","3","G46.3","8","G46.38",0,0,NA,0,0 +"G46.39","46.39 Non-specialised wholesale of food, beverages and tobacco",4,"G46.3","G","G","46","G46","3","G46.3","9","G46.39",0,0,NA,0,0 +"G46.4","46.4 Wholesale of household goods",3,"G46","G","G","46","G46","4","G46.4",NA,NA,0,0,0,0,0 +"G46.41","46.41 Wholesale of textiles",4,"G46.4","G","G","46","G46","4","G46.4","1","G46.41",0,0,NA,0,0 +"G46.42","46.42 Wholesale of clothing and footwear",4,"G46.4","G","G","46","G46","4","G46.4","2","G46.42",0,0,NA,0,0 +"G46.43","46.43 Wholesale of electrical household appliances",4,"G46.4","G","G","46","G46","4","G46.4","3","G46.43",0,0,NA,0,0 +"G46.44","46.44 Wholesale of china and glassware and cleaning materials",4,"G46.4","G","G","46","G46","4","G46.4","4","G46.44",0,0,NA,0,0 +"G46.45","46.45 Wholesale of perfume and cosmetics",4,"G46.4","G","G","46","G46","4","G46.4","5","G46.45",0,0,NA,0,0 +"G46.46","46.46 Wholesale of pharmaceutical goods",4,"G46.4","G","G","46","G46","4","G46.4","6","G46.46",0,0,NA,0,0 +"G46.47","46.47 Wholesale of furniture, carpets and lighting equipment",4,"G46.4","G","G","46","G46","4","G46.4","7","G46.47",0,0,NA,0,0 +"G46.48","46.48 Wholesale of watches and jewellery",4,"G46.4","G","G","46","G46","4","G46.4","8","G46.48",0,0,NA,0,0 +"G46.49","46.49 Wholesale of other household goods",4,"G46.4","G","G","46","G46","4","G46.4","9","G46.49",0,0,NA,0,0 +"G46.5","46.5 Wholesale of information and communication equipment",3,"G46","G","G","46","G46","5","G46.5",NA,NA,0,0,0,0,0 +"G46.51","46.51 Wholesale of computers, computer peripheral equipment and software",4,"G46.5","G","G","46","G46","5","G46.5","1","G46.51",0,0,NA,0,0 +"G46.52","46.52 Wholesale of electronic and telecommunications equipment and parts",4,"G46.5","G","G","46","G46","5","G46.5","2","G46.52",0,0,NA,0,0 +"G46.6","46.6 Wholesale of other machinery, equipment and supplies",3,"G46","G","G","46","G46","6","G46.6",NA,NA,0,0,0,0,0 +"G46.61","46.61 Wholesale of agricultural machinery, equipment and supplies",4,"G46.6","G","G","46","G46","6","G46.6","1","G46.61",0,0,NA,0,0 +"G46.62","46.62 Wholesale of machine tools",4,"G46.6","G","G","46","G46","6","G46.6","2","G46.62",0,0,NA,0,0 +"G46.63","46.63 Wholesale of mining, construction and civil engineering machinery",4,"G46.6","G","G","46","G46","6","G46.6","3","G46.63",0,0,NA,0,0 +"G46.64","46.64 Wholesale of machinery for the textile industry and of sewing and knitting machines",4,"G46.6","G","G","46","G46","6","G46.6","4","G46.64",0,0,NA,0,0 +"G46.65","46.65 Wholesale of office furniture",4,"G46.6","G","G","46","G46","6","G46.6","5","G46.65",0,0,NA,0,0 +"G46.66","46.66 Wholesale of other office machinery and equipment",4,"G46.6","G","G","46","G46","6","G46.6","6","G46.66",0,0,NA,0,0 +"G46.69","46.69 Wholesale of other machinery and equipment",4,"G46.6","G","G","46","G46","6","G46.6","9","G46.69",0,0,NA,0,0 +"G46.7","46.7 Other specialised wholesale",3,"G46","G","G","46","G46","7","G46.7",NA,NA,0,0,0,0,0 +"G46.71","46.71 Wholesale of solid, liquid and gaseous fuels and related products",4,"G46.7","G","G","46","G46","7","G46.7","1","G46.71",0,0,NA,0,0 +"G46.72","46.72 Wholesale of metals and metal ores",4,"G46.7","G","G","46","G46","7","G46.7","2","G46.72",0,0,NA,0,0 +"G46.73","46.73 Wholesale of wood, construction materials and sanitary equipment",4,"G46.7","G","G","46","G46","7","G46.7","3","G46.73",0,0,NA,0,0 +"G46.74","46.74 Wholesale of hardware, plumbing and heating equipment and supplies",4,"G46.7","G","G","46","G46","7","G46.7","4","G46.74",0,0,NA,0,0 +"G46.75","46.75 Wholesale of chemical products",4,"G46.7","G","G","46","G46","7","G46.7","5","G46.75",0,0,NA,0,0 +"G46.76","46.76 Wholesale of other intermediate products",4,"G46.7","G","G","46","G46","7","G46.7","6","G46.76",0,0,NA,0,0 +"G46.77","46.77 Wholesale of waste and scrap",4,"G46.7","G","G","46","G46","7","G46.7","7","G46.77",0,0,NA,0,0 +"G46.9","46.9 Non-specialised wholesale trade",3,"G46","G","G","46","G46","9","G46.9",NA,NA,0,0,0,0,0 +"G46.90","46.90 Non-specialised wholesale trade",4,"G46.9","G","G","46","G46","9","G46.9","0","G46.90",0,0,NA,0,0 +"G47","47 Retail trade, except of motor vehicles and motorcycles",2,"G","G","G","47","G47",NA,NA,NA,NA,0,0,0,0,0 +"G47.1","47.1 Retail sale in non-specialised stores",3,"G47","G","G","47","G47","1","G47.1",NA,NA,0,0,0,0,0 +"G47.11","47.11 Retail sale in non-specialised stores with food, beverages or tobacco predominating",4,"G47.1","G","G","47","G47","1","G47.1","1","G47.11",0,0,NA,0,0 +"G47.19","47.19 Other retail sale in non-specialised stores",4,"G47.1","G","G","47","G47","1","G47.1","9","G47.19",0,0,NA,0,0 +"G47.2","47.2 Retail sale of food, beverages and tobacco in specialised stores",3,"G47","G","G","47","G47","2","G47.2",NA,NA,0,0,0,0,0 +"G47.21","47.21 Retail sale of fruit and vegetables in specialised stores",4,"G47.2","G","G","47","G47","2","G47.2","1","G47.21",0,0,NA,0,0 +"G47.22","47.22 Retail sale of meat and meat products in specialised stores",4,"G47.2","G","G","47","G47","2","G47.2","2","G47.22",0,0,NA,0,0 +"G47.23","47.23 Retail sale of fish, crustaceans and molluscs in specialised stores",4,"G47.2","G","G","47","G47","2","G47.2","3","G47.23",0,0,NA,0,0 +"G47.24","47.24 Retail sale of bread, cakes, flour confectionery and sugar confectionery in specialised stores",4,"G47.2","G","G","47","G47","2","G47.2","4","G47.24",0,0,NA,0,0 +"G47.25","47.25 Retail sale of beverages in specialised stores",4,"G47.2","G","G","47","G47","2","G47.2","5","G47.25",0,0,NA,0,0 +"G47.26","47.26 Retail sale of tobacco products in specialised stores",4,"G47.2","G","G","47","G47","2","G47.2","6","G47.26",0,0,NA,0,0 +"G47.29","47.29 Other retail sale of food in specialised stores",4,"G47.2","G","G","47","G47","2","G47.2","9","G47.29",0,0,NA,0,0 +"G47.3","47.3 Retail sale of automotive fuel in specialised stores",3,"G47","G","G","47","G47","3","G47.3",NA,NA,0,0,0,0,0 +"G47.30","47.30 Retail sale of automotive fuel in specialised stores",4,"G47.3","G","G","47","G47","3","G47.3","0","G47.30",0,0,NA,0,0 +"G47.4","47.4 Retail sale of information and communication equipment in specialised stores",3,"G47","G","G","47","G47","4","G47.4",NA,NA,0,0,0,0,0 +"G47.41","47.41 Retail sale of computers, peripheral units and software in specialised stores",4,"G47.4","G","G","47","G47","4","G47.4","1","G47.41",0,0,NA,0,0 +"G47.42","47.42 Retail sale of telecommunications equipment in specialised stores",4,"G47.4","G","G","47","G47","4","G47.4","2","G47.42",0,0,NA,0,0 +"G47.43","47.43 Retail sale of audio and video equipment in specialised stores",4,"G47.4","G","G","47","G47","4","G47.4","3","G47.43",0,0,NA,0,0 +"G47.5","47.5 Retail sale of other household equipment in specialised stores",3,"G47","G","G","47","G47","5","G47.5",NA,NA,0,0,0,0,0 +"G47.51","47.51 Retail sale of textiles in specialised stores",4,"G47.5","G","G","47","G47","5","G47.5","1","G47.51",0,0,NA,0,0 +"G47.52","47.52 Retail sale of hardware, paints and glass in specialised stores",4,"G47.5","G","G","47","G47","5","G47.5","2","G47.52",0,0,NA,0,0 +"G47.53","47.53 Retail sale of carpets, rugs, wall and floor coverings in specialised stores",4,"G47.5","G","G","47","G47","5","G47.5","3","G47.53",0,0,NA,0,0 +"G47.54","47.54 Retail sale of electrical household appliances in specialised stores",4,"G47.5","G","G","47","G47","5","G47.5","4","G47.54",0,0,NA,0,0 +"G47.59","47.59 Retail sale of furniture, lighting equipment and other household articles in specialised stores",4,"G47.5","G","G","47","G47","5","G47.5","9","G47.59",0,0,NA,0,0 +"G47.6","47.6 Retail sale of cultural and recreation goods in specialised stores",3,"G47","G","G","47","G47","6","G47.6",NA,NA,0,0,0,0,0 +"G47.61","47.61 Retail sale of books in specialised stores",4,"G47.6","G","G","47","G47","6","G47.6","1","G47.61",0,0,NA,0,0 +"G47.62","47.62 Retail sale of newspapers and stationery in specialised stores",4,"G47.6","G","G","47","G47","6","G47.6","2","G47.62",0,0,NA,0,0 +"G47.63","47.63 Retail sale of music and video recordings in specialised stores",4,"G47.6","G","G","47","G47","6","G47.6","3","G47.63",0,0,NA,0,0 +"G47.64","47.64 Retail sale of sporting equipment in specialised stores",4,"G47.6","G","G","47","G47","6","G47.6","4","G47.64",0,0,NA,0,0 +"G47.65","47.65 Retail sale of games and toys in specialised stores",4,"G47.6","G","G","47","G47","6","G47.6","5","G47.65",0,0,NA,0,0 +"G47.7","47.7 Retail sale of other goods in specialised stores",3,"G47","G","G","47","G47","7","G47.7",NA,NA,0,0,0,0,0 +"G47.71","47.71 Retail sale of clothing in specialised stores",4,"G47.7","G","G","47","G47","7","G47.7","1","G47.71",0,0,NA,0,0 +"G47.72","47.72 Retail sale of footwear and leather goods in specialised stores",4,"G47.7","G","G","47","G47","7","G47.7","2","G47.72",0,0,NA,0,0 +"G47.73","47.73 Dispensing chemist in specialised stores",4,"G47.7","G","G","47","G47","7","G47.7","3","G47.73",0,0,NA,0,0 +"G47.74","47.74 Retail sale of medical and orthopaedic goods in specialised stores",4,"G47.7","G","G","47","G47","7","G47.7","4","G47.74",0,0,NA,0,0 +"G47.75","47.75 Retail sale of cosmetic and toilet articles in specialised stores",4,"G47.7","G","G","47","G47","7","G47.7","5","G47.75",0,0,NA,0,0 +"G47.76","47.76 Retail sale of flowers, plants, seeds, fertilisers, pet animals and pet food in specialised stores",4,"G47.7","G","G","47","G47","7","G47.7","6","G47.76",0,0,NA,0,0 +"G47.77","47.77 Retail sale of watches and jewellery in specialised stores",4,"G47.7","G","G","47","G47","7","G47.7","7","G47.77",0,0,NA,0,0 +"G47.78","47.78 Other retail sale of new goods in specialised stores",4,"G47.7","G","G","47","G47","7","G47.7","8","G47.78",0,0,NA,0,0 +"G47.79","47.79 Retail sale of second-hand goods in stores",4,"G47.7","G","G","47","G47","7","G47.7","9","G47.79",0,0,NA,0,0 +"G47.8","47.8 Retail sale via stalls and markets",3,"G47","G","G","47","G47","8","G47.8",NA,NA,0,0,0,0,0 +"G47.81","47.81 Retail sale via stalls and markets of food, beverages and tobacco products",4,"G47.8","G","G","47","G47","8","G47.8","1","G47.81",0,0,NA,0,0 +"G47.82","47.82 Retail sale via stalls and markets of textiles, clothing and footwear",4,"G47.8","G","G","47","G47","8","G47.8","2","G47.82",0,0,NA,0,0 +"G47.89","47.89 Retail sale via stalls and markets of other goods",4,"G47.8","G","G","47","G47","8","G47.8","9","G47.89",0,0,NA,0,0 +"G47.9","47.9 Retail trade not in stores, stalls or markets",3,"G47","G","G","47","G47","9","G47.9",NA,NA,0,0,0,0,0 +"G47.91","47.91 Retail sale via mail order houses or via Internet",4,"G47.9","G","G","47","G47","9","G47.9","1","G47.91",0,0,NA,0,0 +"G47.99","47.99 Other retail sale not in stores, stalls or markets",4,"G47.9","G","G","47","G47","9","G47.9","9","G47.99",0,0,NA,0,0 +"H49","49 Land transport and transport via pipelines",2,"H","H","H","49","H49",NA,NA,NA,NA,0,0,0,0,0 +"H49.1","49.1 Passenger rail transport, interurban",3,"H49","H","H","49","H49","1","H49.1",NA,NA,0,0,0,0,0 +"H49.10","49.10 Passenger rail transport, interurban",4,"H49.1","H","H","49","H49","1","H49.1","0","H49.10",0,0,NA,0,0 +"H49.2","49.2 Freight rail transport",3,"H49","H","H","49","H49","2","H49.2",NA,NA,0,0,0,0,0 +"H49.20","49.20 Freight rail transport",4,"H49.2","H","H","49","H49","2","H49.2","0","H49.20",0,0,NA,0,0 +"H49.3","49.3 Other passenger land transport",3,"H49","H","H","49","H49","3","H49.3",NA,NA,0,0,0,0,0 +"H49.31","49.31 Urban and suburban passenger land transport",4,"H49.3","H","H","49","H49","3","H49.3","1","H49.31",0,0,NA,0,0 +"H49.32","49.32 Taxi operation",4,"H49.3","H","H","49","H49","3","H49.3","2","H49.32",0,0,NA,0,0 +"H49.39","49.39 Other passenger land transport n.e.c.",4,"H49.3","H","H","49","H49","3","H49.3","9","H49.39",0,0,NA,0,0 +"H49.4","49.4 Freight transport by road and removal services",3,"H49","H","H","49","H49","4","H49.4",NA,NA,0,0,0,0,0 +"H49.41","49.41 Freight transport by road",4,"H49.4","H","H","49","H49","4","H49.4","1","H49.41",0,0,NA,0,0 +"H49.42","49.42 Removal services",4,"H49.4","H","H","49","H49","4","H49.4","2","H49.42",0,0,NA,0,0 +"H49.5","49.5 Transport via pipeline",3,"H49","H","H","49","H49","5","H49.5",NA,NA,0,0,0,0,0 +"H49.50","49.50 Transport via pipeline",4,"H49.5","H","H","49","H49","5","H49.5","0","H49.50",0,0,NA,0,0 +"H50","50 Water transport",2,"H","H","H","50","H50",NA,NA,NA,NA,0,0,0,0,0 +"H50.1","50.1 Sea and coastal passenger water transport",3,"H50","H","H","50","H50","1","H50.1",NA,NA,0,0,0,0,0 +"H50.10","50.10 Sea and coastal passenger water transport",4,"H50.1","H","H","50","H50","1","H50.1","0","H50.10",0,0,NA,0,0 +"H50.2","50.2 Sea and coastal freight water transport",3,"H50","H","H","50","H50","2","H50.2",NA,NA,0,0,0,0,0 +"H50.20","50.20 Sea and coastal freight water transport",4,"H50.2","H","H","50","H50","2","H50.2","0","H50.20",0,0,NA,0,0 +"H50.3","50.3 Inland passenger water transport",3,"H50","H","H","50","H50","3","H50.3",NA,NA,0,0,0,0,0 +"H50.30","50.30 Inland passenger water transport",4,"H50.3","H","H","50","H50","3","H50.3","0","H50.30",0,0,NA,0,0 +"H50.4","50.4 Inland freight water transport",3,"H50","H","H","50","H50","4","H50.4",NA,NA,0,0,0,0,0 +"H50.40","50.40 Inland freight water transport",4,"H50.4","H","H","50","H50","4","H50.4","0","H50.40",0,0,NA,0,0 +"H51","51 Air transport",2,"H","H","H","51","H51",NA,NA,NA,NA,0,0,0,0,0 +"H51.1","51.1 Passenger air transport",3,"H51","H","H","51","H51","1","H51.1",NA,NA,0,0,0,0,0 +"H51.10","51.10 Passenger air transport",4,"H51.1","H","H","51","H51","1","H51.1","0","H51.10",0,0,NA,0,0 +"H51.2","51.2 Freight air transport and space transport",3,"H51","H","H","51","H51","2","H51.2",NA,NA,0,0,0,0,0 +"H51.21","51.21 Freight air transport",4,"H51.2","H","H","51","H51","2","H51.2","1","H51.21",0,0,NA,0,0 +"H51.22","51.22 Space transport",4,"H51.2","H","H","51","H51","2","H51.2","2","H51.22",0,0,NA,0,0 +"H52","52 Warehousing and support activities for transportation",2,"H","H","H","52","H52",NA,NA,NA,NA,0,0,0,0,0 +"H52.1","52.1 Warehousing and storage",3,"H52","H","H","52","H52","1","H52.1",NA,NA,0,0,0,0,0 +"H52.10","52.10 Warehousing and storage",4,"H52.1","H","H","52","H52","1","H52.1","0","H52.10",0,0,NA,0,0 +"H52.2","52.2 Support activities for transportation",3,"H52","H","H","52","H52","2","H52.2",NA,NA,0,0,0,0,0 +"H52.21","52.21 Service activities incidental to land transportation",4,"H52.2","H","H","52","H52","2","H52.2","1","H52.21",0,0,NA,0,0 +"H52.22","52.22 Service activities incidental to water transportation",4,"H52.2","H","H","52","H52","2","H52.2","2","H52.22",0,0,NA,0,0 +"H52.23","52.23 Service activities incidental to air transportation",4,"H52.2","H","H","52","H52","2","H52.2","3","H52.23",0,0,NA,0,0 +"H52.24","52.24 Cargo handling",4,"H52.2","H","H","52","H52","2","H52.2","4","H52.24",0,0,NA,0,0 +"H52.29","52.29 Other transportation support activities",4,"H52.2","H","H","52","H52","2","H52.2","9","H52.29",0,0,NA,0,0 +"H53","53 Postal and courier activities",2,"H","H","H","53","H53",NA,NA,NA,NA,0,0,0,0,0 +"H53.1","53.1 Postal activities under universal service obligation",3,"H53","H","H","53","H53","1","H53.1",NA,NA,0,0,0,0,0 +"H53.10","53.10 Postal activities under universal service obligation",4,"H53.1","H","H","53","H53","1","H53.1","0","H53.10",0,0,NA,0,0 +"H53.2","53.2 Other postal and courier activities",3,"H53","H","H","53","H53","2","H53.2",NA,NA,0,0,0,0,0 +"H53.20","53.20 Other postal and courier activities",4,"H53.2","H","H","53","H53","2","H53.2","0","H53.20",0,0,NA,0,0 +"I55","55 Accommodation",2,"I","I","I","55","I55",NA,NA,NA,NA,0,0,0,0,0 +"I55.1","55.1 Hotels and similar accommodation",3,"I55","I","I","55","I55","1","I55.1",NA,NA,0,0,0,0,0 +"I55.10","55.10 Hotels and similar accommodation",4,"I55.1","I","I","55","I55","1","I55.1","0","I55.10",0,0,NA,0,0 +"I55.2","55.2 Holiday and other short-stay accommodation",3,"I55","I","I","55","I55","2","I55.2",NA,NA,0,0,0,0,0 +"I55.20","55.20 Holiday and other short-stay accommodation",4,"I55.2","I","I","55","I55","2","I55.2","0","I55.20",0,0,NA,0,0 +"I55.3","55.3 Camping grounds, recreational vehicle parks and trailer parks",3,"I55","I","I","55","I55","3","I55.3",NA,NA,0,0,0,0,0 +"I55.30","55.30 Camping grounds, recreational vehicle parks and trailer parks",4,"I55.3","I","I","55","I55","3","I55.3","0","I55.30",0,0,NA,0,0 +"I55.9","55.9 Other accommodation",3,"I55","I","I","55","I55","9","I55.9",NA,NA,0,0,0,0,0 +"I55.90","55.90 Other accommodation",4,"I55.9","I","I","55","I55","9","I55.9","0","I55.90",0,0,NA,0,0 +"I56","56 Food and beverage service activities",2,"I","I","I","56","I56",NA,NA,NA,NA,0,0,0,0,0 +"I56.1","56.1 Restaurants and mobile food service activities",3,"I56","I","I","56","I56","1","I56.1",NA,NA,0,0,0,0,0 +"I56.10","56.10 Restaurants and mobile food service activities",4,"I56.1","I","I","56","I56","1","I56.1","0","I56.10",0,0,NA,0,0 +"I56.2","56.2 Event catering and other food service activities",3,"I56","I","I","56","I56","2","I56.2",NA,NA,0,0,0,0,0 +"I56.21","56.21 Event catering activities",4,"I56.2","I","I","56","I56","2","I56.2","1","I56.21",0,0,NA,0,0 +"I56.29","56.29 Other food service activities",4,"I56.2","I","I","56","I56","2","I56.2","9","I56.29",0,0,NA,0,0 +"I56.3","56.3 Beverage serving activities",3,"I56","I","I","56","I56","3","I56.3",NA,NA,0,0,0,0,0 +"I56.30","56.30 Beverage serving activities",4,"I56.3","I","I","56","I56","3","I56.3","0","I56.30",0,0,NA,0,0 +"J58","58 Publishing activities",2,"J","J","J","58","J58",NA,NA,NA,NA,0,0,0,0,0 +"J58.1","58.1 Publishing of books, periodicals and other publishing activities",3,"J58","J","J","58","J58","1","J58.1",NA,NA,0,0,0,0,0 +"J58.11","58.11 Book publishing",4,"J58.1","J","J","58","J58","1","J58.1","1","J58.11",0,0,NA,0,0 +"J58.12","58.12 Publishing of directories and mailing lists",4,"J58.1","J","J","58","J58","1","J58.1","2","J58.12",0,0,NA,0,0 +"J58.13","58.13 Publishing of newspapers",4,"J58.1","J","J","58","J58","1","J58.1","3","J58.13",0,0,NA,0,0 +"J58.14","58.14 Publishing of journals and periodicals",4,"J58.1","J","J","58","J58","1","J58.1","4","J58.14",0,0,NA,0,0 +"J58.19","58.19 Other publishing activities",4,"J58.1","J","J","58","J58","1","J58.1","9","J58.19",0,0,NA,0,0 +"J58.2","58.2 Software publishing",3,"J58","J","J","58","J58","2","J58.2",NA,NA,0,0,0,0,0 +"J58.21","58.21 Publishing of computer games",4,"J58.2","J","J","58","J58","2","J58.2","1","J58.21",0,0,NA,0,0 +"J58.29","58.29 Other software publishing",4,"J58.2","J","J","58","J58","2","J58.2","9","J58.29",0,0,NA,0,0 +"J59","59 Motion picture, video and television programme production, sound recording and music publishing activities",2,"J","J","J","59","J59",NA,NA,NA,NA,0,0,0,0,0 +"J59.1","59.1 Motion picture, video and television programme activities",3,"J59","J","J","59","J59","1","J59.1",NA,NA,0,0,0,0,0 +"J59.11","59.11 Motion picture, video and television programme production activities",4,"J59.1","J","J","59","J59","1","J59.1","1","J59.11",0,0,NA,0,0 +"J59.12","59.12 Motion picture, video and television programme post-production activities",4,"J59.1","J","J","59","J59","1","J59.1","2","J59.12",0,0,NA,0,0 +"J59.13","59.13 Motion picture, video and television programme distribution activities",4,"J59.1","J","J","59","J59","1","J59.1","3","J59.13",0,0,NA,0,0 +"J59.14","59.14 Motion picture projection activities",4,"J59.1","J","J","59","J59","1","J59.1","4","J59.14",0,0,NA,0,0 +"J59.2","59.2 Sound recording and music publishing activities",3,"J59","J","J","59","J59","2","J59.2",NA,NA,0,0,0,0,0 +"J59.20","59.20 Sound recording and music publishing activities",4,"J59.2","J","J","59","J59","2","J59.2","0","J59.20",0,0,NA,0,0 +"J60","60 Programming and broadcasting activities",2,"J","J","J","60","J60",NA,NA,NA,NA,0,0,0,0,0 +"J60.1","60.1 Radio broadcasting",3,"J60","J","J","60","J60","1","J60.1",NA,NA,0,0,0,0,0 +"J60.10","60.10 Radio broadcasting",4,"J60.1","J","J","60","J60","1","J60.1","0","J60.10",0,0,NA,0,0 +"J60.2","60.2 Television programming and broadcasting activities",3,"J60","J","J","60","J60","2","J60.2",NA,NA,0,0,0,0,0 +"J60.20","60.20 Television programming and broadcasting activities",4,"J60.2","J","J","60","J60","2","J60.2","0","J60.20",0,0,NA,0,0 +"J61","61 Telecommunications",2,"J","J","J","61","J61",NA,NA,NA,NA,0,0,0,0,0 +"J61.1","61.1 Wired telecommunications activities",3,"J61","J","J","61","J61","1","J61.1",NA,NA,0,0,0,0,0 +"J61.10","61.10 Wired telecommunications activities",4,"J61.1","J","J","61","J61","1","J61.1","0","J61.10",0,0,NA,0,0 +"J61.2","61.2 Wireless telecommunications activities",3,"J61","J","J","61","J61","2","J61.2",NA,NA,0,0,0,0,0 +"J61.20","61.20 Wireless telecommunications activities",4,"J61.2","J","J","61","J61","2","J61.2","0","J61.20",0,0,NA,0,0 +"J61.3","61.3 Satellite telecommunications activities",3,"J61","J","J","61","J61","3","J61.3",NA,NA,0,0,0,0,0 +"J61.30","61.30 Satellite telecommunications activities",4,"J61.3","J","J","61","J61","3","J61.3","0","J61.30",0,0,NA,0,0 +"J61.9","61.9 Other telecommunications activities",3,"J61","J","J","61","J61","9","J61.9",NA,NA,0,0,0,0,0 +"J61.90","61.90 Other telecommunications activities",4,"J61.9","J","J","61","J61","9","J61.9","0","J61.90",0,0,NA,0,0 +"J62","62 Computer programming, consultancy and related activities",2,"J","J","J","62","J62",NA,NA,NA,NA,0,0,0,0,0 +"J62.0","62.0 Computer programming, consultancy and related activities",3,"J62","J","J","62","J62","0","J62.0",NA,NA,0,0,0,0,0 +"J62.01","62.01 Computer programming activities",4,"J62.0","J","J","62","J62","0","J62.0","1","J62.01",0,0,NA,0,0 +"J62.02","62.02 Computer consultancy activities",4,"J62.0","J","J","62","J62","0","J62.0","2","J62.02",0,0,NA,0,0 +"J62.03","62.03 Computer facilities management activities",4,"J62.0","J","J","62","J62","0","J62.0","3","J62.03",0,0,NA,0,0 +"J62.09","62.09 Other information technology and computer service activities",4,"J62.0","J","J","62","J62","0","J62.0","9","J62.09",0,0,NA,0,0 +"J63","63 Information service activities",2,"J","J","J","63","J63",NA,NA,NA,NA,0,0,0,0,0 +"J63.1","63.1 Data processing, hosting and related activities; web portals",3,"J63","J","J","63","J63","1","J63.1",NA,NA,0,0,0,0,0 +"J63.11","63.11 Data processing, hosting and related activities",4,"J63.1","J","J","63","J63","1","J63.1","1","J63.11",0,0,NA,0,0 +"J63.12","63.12 Web portals",4,"J63.1","J","J","63","J63","1","J63.1","2","J63.12",0,0,NA,0,0 +"J63.9","63.9 Other information service activities",3,"J63","J","J","63","J63","9","J63.9",NA,NA,0,0,0,0,0 +"J63.91","63.91 News agency activities",4,"J63.9","J","J","63","J63","9","J63.9","1","J63.91",0,0,NA,0,0 +"J63.99","63.99 Other information service activities n.e.c.",4,"J63.9","J","J","63","J63","9","J63.9","9","J63.99",0,0,NA,0,0 +"K64","64 Financial service activities, except insurance and pension funding",2,"K","K","K","64","K64",NA,NA,NA,NA,0,0,0,0,0 +"K64.1","64.1 Monetary intermediation",3,"K64","K","K","64","K64","1","K64.1",NA,NA,0,0,0,0,0 +"K64.11","64.11 Central banking",4,"K64.1","K","K","64","K64","1","K64.1","1","K64.11",0,0,NA,0,0 +"K64.19","64.19 Other monetary intermediation",4,"K64.1","K","K","64","K64","1","K64.1","9","K64.19",0,0,NA,0,0 +"K64.2","64.2 Activities of holding companies",3,"K64","K","K","64","K64","2","K64.2",NA,NA,0,0,0,0,0 +"K64.20","64.20 Activities of holding companies",4,"K64.2","K","K","64","K64","2","K64.2","0","K64.20",0,0,NA,0,0 +"K64.3","64.3 Trusts, funds and similar financial entities",3,"K64","K","K","64","K64","3","K64.3",NA,NA,0,0,0,0,0 +"K64.30","64.30 Trusts, funds and similar financial entities",4,"K64.3","K","K","64","K64","3","K64.3","0","K64.30",0,0,NA,0,0 +"K64.9","64.9 Other financial service activities, except insurance and pension funding",3,"K64","K","K","64","K64","9","K64.9",NA,NA,0,0,0,0,0 +"K64.91","64.91 Financial leasing",4,"K64.9","K","K","64","K64","9","K64.9","1","K64.91",0,0,NA,0,0 +"K64.92","64.92 Other credit granting",4,"K64.9","K","K","64","K64","9","K64.9","2","K64.92",0,0,NA,0,0 +"K64.99","64.99 Other financial service activities, except insurance and pension funding n.e.c.",4,"K64.9","K","K","64","K64","9","K64.9","9","K64.99",0,0,NA,0,0 +"K65","65 Insurance, reinsurance and pension funding, except compulsory social security",2,"K","K","K","65","K65",NA,NA,NA,NA,0,0,0,0,0 +"K65.1","65.1 Insurance",3,"K65","K","K","65","K65","1","K65.1",NA,NA,0,0,0,0,0 +"K65.11","65.11 Life insurance",4,"K65.1","K","K","65","K65","1","K65.1","1","K65.11",0,0,NA,0,0 +"K65.12","65.12 Non-life insurance",4,"K65.1","K","K","65","K65","1","K65.1","2","K65.12",0,0,NA,0,0 +"K65.2","65.2 Reinsurance",3,"K65","K","K","65","K65","2","K65.2",NA,NA,0,0,0,0,0 +"K65.20","65.20 Reinsurance",4,"K65.2","K","K","65","K65","2","K65.2","0","K65.20",0,0,NA,0,0 +"K65.3","65.3 Pension funding",3,"K65","K","K","65","K65","3","K65.3",NA,NA,0,0,0,0,0 +"K65.30","65.30 Pension funding",4,"K65.3","K","K","65","K65","3","K65.3","0","K65.30",0,0,NA,0,0 +"K66","66 Activities auxiliary to financial services and insurance activities",2,"K","K","K","66","K66",NA,NA,NA,NA,0,0,0,0,0 +"K66.1","66.1 Activities auxiliary to financial services, except insurance and pension funding",3,"K66","K","K","66","K66","1","K66.1",NA,NA,0,0,0,0,0 +"K66.11","66.11 Administration of financial markets",4,"K66.1","K","K","66","K66","1","K66.1","1","K66.11",0,0,NA,0,0 +"K66.12","66.12 Security and commodity contracts brokerage",4,"K66.1","K","K","66","K66","1","K66.1","2","K66.12",0,0,NA,0,0 +"K66.19","66.19 Other activities auxiliary to financial services, except insurance and pension funding",4,"K66.1","K","K","66","K66","1","K66.1","9","K66.19",0,0,NA,0,0 +"K66.2","66.2 Activities auxiliary to insurance and pension funding",3,"K66","K","K","66","K66","2","K66.2",NA,NA,0,0,0,0,0 +"K66.21","66.21 Risk and damage evaluation",4,"K66.2","K","K","66","K66","2","K66.2","1","K66.21",0,0,NA,0,0 +"K66.22","66.22 Activities of insurance agents and brokers",4,"K66.2","K","K","66","K66","2","K66.2","2","K66.22",0,0,NA,0,0 +"K66.29","66.29 Other activities auxiliary to insurance and pension funding",4,"K66.2","K","K","66","K66","2","K66.2","9","K66.29",0,0,NA,0,0 +"K66.3","66.3 Fund management activities",3,"K66","K","K","66","K66","3","K66.3",NA,NA,0,0,0,0,0 +"K66.30","66.30 Fund management activities",4,"K66.3","K","K","66","K66","3","K66.3","0","K66.30",0,0,NA,0,0 +"L68","68 Real estate activities",2,"L","L","L","68","L68",NA,NA,NA,NA,0,0,0,0,0 +"L68.1","68.1 Buying and selling of own real estate",3,"L68","L","L","68","L68","1","L68.1",NA,NA,0,0,0,0,0 +"L68.10","68.10 Buying and selling of own real estate",4,"L68.1","L","L","68","L68","1","L68.1","0","L68.10",0,0,NA,0,0 +"L68.2","68.2 Rental and operating of own or leased real estate",3,"L68","L","L","68","L68","2","L68.2",NA,NA,0,0,0,0,0 +"L68.20","68.20 Rental and operating of own or leased real estate",4,"L68.2","L","L","68","L68","2","L68.2","0","L68.20",0,0,NA,0,0 +"L68.3","68.3 Real estate activities on a fee or contract basis",3,"L68","L","L","68","L68","3","L68.3",NA,NA,0,0,0,0,0 +"L68.31","68.31 Real estate agencies",4,"L68.3","L","L","68","L68","3","L68.3","1","L68.31",0,0,NA,0,0 +"L68.32","68.32 Management of real estate on a fee or contract basis",4,"L68.3","L","L","68","L68","3","L68.3","2","L68.32",0,0,NA,0,0 +"M69","69 Legal and accounting activities",2,"M","M","M","69","M69",NA,NA,NA,NA,0,0,0,0,0 +"M69.1","69.1 Legal activities",3,"M69","M","M","69","M69","1","M69.1",NA,NA,0,0,0,0,0 +"M69.10","69.10 Legal activities",4,"M69.1","M","M","69","M69","1","M69.1","0","M69.10",0,0,NA,0,0 +"M69.2","69.2 Accounting, bookkeeping and auditing activities; tax consultancy",3,"M69","M","M","69","M69","2","M69.2",NA,NA,0,0,0,0,0 +"M69.20","69.20 Accounting, bookkeeping and auditing activities; tax consultancy",4,"M69.2","M","M","69","M69","2","M69.2","0","M69.20",0,0,NA,0,0 +"M70","70 Activities of head offices; management consultancy activities",2,"M","M","M","70","M70",NA,NA,NA,NA,0,0,0,0,0 +"M70.1","70.1 Activities of head offices",3,"M70","M","M","70","M70","1","M70.1",NA,NA,0,0,0,0,0 +"M70.10","70.10 Activities of head offices",4,"M70.1","M","M","70","M70","1","M70.1","0","M70.10",0,0,NA,0,0 +"M70.2","70.2 Management consultancy activities",3,"M70","M","M","70","M70","2","M70.2",NA,NA,0,0,0,0,0 +"M70.21","70.21 Public relations and communication activities",4,"M70.2","M","M","70","M70","2","M70.2","1","M70.21",0,0,NA,0,0 +"M70.22","70.22 Business and other management consultancy activities",4,"M70.2","M","M","70","M70","2","M70.2","2","M70.22",0,0,NA,0,0 +"M71","71 Architectural and engineering activities; technical testing and analysis",2,"M","M","M","71","M71",NA,NA,NA,NA,0,0,0,0,0 +"M71.1","71.1 Architectural and engineering activities and related technical consultancy",3,"M71","M","M","71","M71","1","M71.1",NA,NA,0,0,0,0,0 +"M71.11","71.11 Architectural activities",4,"M71.1","M","M","71","M71","1","M71.1","1","M71.11",0,0,NA,0,0 +"M71.12","71.12 Engineering activities and related technical consultancy",4,"M71.1","M","M","71","M71","1","M71.1","2","M71.12",0,0,NA,0,0 +"M71.2","71.2 Technical testing and analysis",3,"M71","M","M","71","M71","2","M71.2",NA,NA,0,0,0,0,0 +"M71.20","71.20 Technical testing and analysis",4,"M71.2","M","M","71","M71","2","M71.2","0","M71.20",0,0,NA,0,0 +"M72","72 Scientific research and development",2,"M","M","M","72","M72",NA,NA,NA,NA,0,0,0,0,0 +"M72.1","72.1 Research and experimental development on natural sciences and engineering",3,"M72","M","M","72","M72","1","M72.1",NA,NA,0,0,0,0,0 +"M72.11","72.11 Research and experimental development on biotechnology",4,"M72.1","M","M","72","M72","1","M72.1","1","M72.11",0,0,NA,0,0 +"M72.19","72.19 Other research and experimental development on natural sciences and engineering",4,"M72.1","M","M","72","M72","1","M72.1","9","M72.19",0,0,NA,0,0 +"M72.2","72.2 Research and experimental development on social sciences and humanities",3,"M72","M","M","72","M72","2","M72.2",NA,NA,0,0,0,0,0 +"M72.20","72.20 Research and experimental development on social sciences and humanities",4,"M72.2","M","M","72","M72","2","M72.2","0","M72.20",0,0,NA,0,0 +"M73","73 Advertising and market research",2,"M","M","M","73","M73",NA,NA,NA,NA,0,0,0,0,0 +"M73.1","73.1 Advertising",3,"M73","M","M","73","M73","1","M73.1",NA,NA,0,0,0,0,0 +"M73.11","73.11 Advertising agencies",4,"M73.1","M","M","73","M73","1","M73.1","1","M73.11",0,0,NA,0,0 +"M73.12","73.12 Media representation",4,"M73.1","M","M","73","M73","1","M73.1","2","M73.12",0,0,NA,0,0 +"M73.2","73.2 Market research and public opinion polling",3,"M73","M","M","73","M73","2","M73.2",NA,NA,0,0,0,0,0 +"M73.20","73.20 Market research and public opinion polling",4,"M73.2","M","M","73","M73","2","M73.2","0","M73.20",0,0,NA,0,0 +"M74","74 Other professional, scientific and technical activities",2,"M","M","M","74","M74",NA,NA,NA,NA,0,0,0,0,0 +"M74.1","74.1 Specialised design activities",3,"M74","M","M","74","M74","1","M74.1",NA,NA,0,0,0,0,0 +"M74.10","74.10 Specialised design activities",4,"M74.1","M","M","74","M74","1","M74.1","0","M74.10",0,0,NA,0,0 +"M74.2","74.2 Photographic activities",3,"M74","M","M","74","M74","2","M74.2",NA,NA,0,0,0,0,0 +"M74.20","74.20 Photographic activities",4,"M74.2","M","M","74","M74","2","M74.2","0","M74.20",0,0,NA,0,0 +"M74.3","74.3 Translation and interpretation activities",3,"M74","M","M","74","M74","3","M74.3",NA,NA,0,0,0,0,0 +"M74.30","74.30 Translation and interpretation activities",4,"M74.3","M","M","74","M74","3","M74.3","0","M74.30",0,0,NA,0,0 +"M74.9","74.9 Other professional, scientific and technical activities n.e.c.",3,"M74","M","M","74","M74","9","M74.9",NA,NA,0,0,0,0,0 +"M74.90","74.90 Other professional, scientific and technical activities n.e.c.",4,"M74.9","M","M","74","M74","9","M74.9","0","M74.90",0,0,NA,0,0 +"M75","75 Veterinary activities",2,"M","M","M","75","M75",NA,NA,NA,NA,0,0,0,0,0 +"M75.0","75.0 Veterinary activities",3,"M75","M","M","75","M75","0","M75.0",NA,NA,0,0,0,0,0 +"M75.00","75.00 Veterinary activities",4,"M75.0","M","M","75","M75","0","M75.0","0","M75.00",0,0,NA,0,0 +"N77","77 Rental and leasing activities",2,"N","N","N","77","N77",NA,NA,NA,NA,0,0,0,0,0 +"N77.1","77.1 Rental and leasing of motor vehicles",3,"N77","N","N","77","N77","1","N77.1",NA,NA,0,0,0,0,0 +"N77.11","77.11 Rental and leasing of cars and light motor vehicles",4,"N77.1","N","N","77","N77","1","N77.1","1","N77.11",0,0,NA,0,0 +"N77.12","77.12 Rental and leasing of trucks",4,"N77.1","N","N","77","N77","1","N77.1","2","N77.12",0,0,NA,0,0 +"N77.2","77.2 Rental and leasing of personal and household goods",3,"N77","N","N","77","N77","2","N77.2",NA,NA,0,0,0,0,0 +"N77.21","77.21 Rental and leasing of recreational and sports goods",4,"N77.2","N","N","77","N77","2","N77.2","1","N77.21",0,0,NA,0,0 +"N77.22","77.22 Rental of video tapes and disks",4,"N77.2","N","N","77","N77","2","N77.2","2","N77.22",0,0,NA,0,0 +"N77.29","77.29 Rental and leasing of other personal and household goods",4,"N77.2","N","N","77","N77","2","N77.2","9","N77.29",0,0,NA,0,0 +"N77.3","77.3 Rental and leasing of other machinery, equipment and tangible goods",3,"N77","N","N","77","N77","3","N77.3",NA,NA,0,0,0,0,0 +"N77.31","77.31 Rental and leasing of agricultural machinery and equipment",4,"N77.3","N","N","77","N77","3","N77.3","1","N77.31",0,0,NA,0,0 +"N77.32","77.32 Rental and leasing of construction and civil engineering machinery and equipment",4,"N77.3","N","N","77","N77","3","N77.3","2","N77.32",0,0,NA,0,0 +"N77.33","77.33 Rental and leasing of office machinery and equipment (including computers)",4,"N77.3","N","N","77","N77","3","N77.3","3","N77.33",0,0,NA,0,0 +"N77.34","77.34 Rental and leasing of water transport equipment",4,"N77.3","N","N","77","N77","3","N77.3","4","N77.34",0,0,NA,0,0 +"N77.35","77.35 Rental and leasing of air transport equipment",4,"N77.3","N","N","77","N77","3","N77.3","5","N77.35",0,0,NA,0,0 +"N77.39","77.39 Rental and leasing of other machinery, equipment and tangible goods n.e.c.",4,"N77.3","N","N","77","N77","3","N77.3","9","N77.39",0,0,NA,0,0 +"N77.4","77.4 Leasing of intellectual property and similar products, except copyrighted works",3,"N77","N","N","77","N77","4","N77.4",NA,NA,0,0,0,0,0 +"N77.40","77.40 Leasing of intellectual property and similar products, except copyrighted works",4,"N77.4","N","N","77","N77","4","N77.4","0","N77.40",0,0,NA,0,0 +"N78","78 Employment activities",2,"N","N","N","78","N78",NA,NA,NA,NA,0,0,0,0,0 +"N78.1","78.1 Activities of employment placement agencies",3,"N78","N","N","78","N78","1","N78.1",NA,NA,0,0,0,0,0 +"N78.10","78.10 Activities of employment placement agencies",4,"N78.1","N","N","78","N78","1","N78.1","0","N78.10",0,0,NA,0,0 +"N78.2","78.2 Temporary employment agency activities",3,"N78","N","N","78","N78","2","N78.2",NA,NA,0,0,0,0,0 +"N78.20","78.20 Temporary employment agency activities",4,"N78.2","N","N","78","N78","2","N78.2","0","N78.20",0,0,NA,0,0 +"N78.3","78.3 Other human resources provision",3,"N78","N","N","78","N78","3","N78.3",NA,NA,0,0,0,0,0 +"N78.30","78.30 Other human resources provision",4,"N78.3","N","N","78","N78","3","N78.3","0","N78.30",0,0,NA,0,0 +"N79","79 Travel agency, tour operator and other reservation service and related activities",2,"N","N","N","79","N79",NA,NA,NA,NA,0,0,0,0,0 +"N79.1","79.1 Travel agency and tour operator activities",3,"N79","N","N","79","N79","1","N79.1",NA,NA,0,0,0,0,0 +"N79.11","79.11 Travel agency activities",4,"N79.1","N","N","79","N79","1","N79.1","1","N79.11",0,0,NA,0,0 +"N79.12","79.12 Tour operator activities",4,"N79.1","N","N","79","N79","1","N79.1","2","N79.12",0,0,NA,0,0 +"N79.9","79.9 Other reservation service and related activities",3,"N79","N","N","79","N79","9","N79.9",NA,NA,0,0,0,0,0 +"N79.90","79.90 Other reservation service and related activities",4,"N79.9","N","N","79","N79","9","N79.9","0","N79.90",0,0,NA,0,0 +"N80","80 Security and investigation activities",2,"N","N","N","80","N80",NA,NA,NA,NA,0,0,0,0,0 +"N80.1","80.1 Private security activities",3,"N80","N","N","80","N80","1","N80.1",NA,NA,0,0,0,0,0 +"N80.10","80.10 Private security activities",4,"N80.1","N","N","80","N80","1","N80.1","0","N80.10",0,0,NA,0,0 +"N80.2","80.2 Security systems service activities",3,"N80","N","N","80","N80","2","N80.2",NA,NA,0,0,0,0,0 +"N80.20","80.20 Security systems service activities",4,"N80.2","N","N","80","N80","2","N80.2","0","N80.20",0,0,NA,0,0 +"N80.3","80.3 Investigation activities",3,"N80","N","N","80","N80","3","N80.3",NA,NA,0,0,0,0,0 +"N80.30","80.30 Investigation activities",4,"N80.3","N","N","80","N80","3","N80.3","0","N80.30",0,0,NA,0,0 +"N81","81 Services to buildings and landscape activities",2,"N","N","N","81","N81",NA,NA,NA,NA,0,0,0,0,0 +"N81.1","81.1 Combined facilities support activities",3,"N81","N","N","81","N81","1","N81.1",NA,NA,0,0,0,0,0 +"N81.10","81.10 Combined facilities support activities",4,"N81.1","N","N","81","N81","1","N81.1","0","N81.10",0,0,NA,0,0 +"N81.2","81.2 Cleaning activities",3,"N81","N","N","81","N81","2","N81.2",NA,NA,0,0,0,0,0 +"N81.21","81.21 General cleaning of buildings",4,"N81.2","N","N","81","N81","2","N81.2","1","N81.21",0,0,NA,0,0 +"N81.22","81.22 Other building and industrial cleaning activities",4,"N81.2","N","N","81","N81","2","N81.2","2","N81.22",0,0,NA,0,0 +"N81.29","81.29 Other cleaning activities",4,"N81.2","N","N","81","N81","2","N81.2","9","N81.29",0,0,NA,0,0 +"N81.3","81.3 Landscape service activities",3,"N81","N","N","81","N81","3","N81.3",NA,NA,0,0,0,0,0 +"N81.30","81.30 Landscape service activities",4,"N81.3","N","N","81","N81","3","N81.3","0","N81.30",0,0,NA,0,0 +"N82","82 Office administrative, office support and other business support activities",2,"N","N","N","82","N82",NA,NA,NA,NA,0,0,0,0,0 +"N82.1","82.1 Office administrative and support activities",3,"N82","N","N","82","N82","1","N82.1",NA,NA,0,0,0,0,0 +"N82.11","82.11 Combined office administrative service activities",4,"N82.1","N","N","82","N82","1","N82.1","1","N82.11",0,0,NA,0,0 +"N82.19","82.19 Photocopying, document preparation and other specialised office support activities",4,"N82.1","N","N","82","N82","1","N82.1","9","N82.19",0,0,NA,0,0 +"N82.2","82.2 Activities of call centres",3,"N82","N","N","82","N82","2","N82.2",NA,NA,0,0,0,0,0 +"N82.20","82.20 Activities of call centres",4,"N82.2","N","N","82","N82","2","N82.2","0","N82.20",0,0,NA,0,0 +"N82.3","82.3 Organisation of conventions and trade shows",3,"N82","N","N","82","N82","3","N82.3",NA,NA,0,0,0,0,0 +"N82.30","82.30 Organisation of conventions and trade shows",4,"N82.3","N","N","82","N82","3","N82.3","0","N82.30",0,0,NA,0,0 +"N82.9","82.9 Business support service activities n.e.c.",3,"N82","N","N","82","N82","9","N82.9",NA,NA,0,0,0,0,0 +"N82.91","82.91 Activities of collection agencies and credit bureaus",4,"N82.9","N","N","82","N82","9","N82.9","1","N82.91",0,0,NA,0,0 +"N82.92","82.92 Packaging activities",4,"N82.9","N","N","82","N82","9","N82.9","2","N82.92",0,0,NA,0,0 +"N82.99","82.99 Other business support service activities n.e.c.",4,"N82.9","N","N","82","N82","9","N82.9","9","N82.99",0,0,NA,0,0 +"O84","84 Public administration and defence; compulsory social security",2,"O","O","O","84","O84",NA,NA,NA,NA,0,0,0,0,0 +"O84.1","84.1 Administration of the State and the economic and social policy of the community",3,"O84","O","O","84","O84","1","O84.1",NA,NA,0,0,0,0,0 +"O84.11","84.11 General public administration activities",4,"O84.1","O","O","84","O84","1","O84.1","1","O84.11",0,0,NA,0,0 +"O84.12","84.12 Regulation of the activities of providing health care, education, cultural services and other social services, excluding social security",4,"O84.1","O","O","84","O84","1","O84.1","2","O84.12",0,0,NA,0,0 +"O84.13","84.13 Regulation of and contribution to more efficient operation of businesses",4,"O84.1","O","O","84","O84","1","O84.1","3","O84.13",0,0,NA,0,0 +"O84.2","84.2 Provision of services to the community as a whole",3,"O84","O","O","84","O84","2","O84.2",NA,NA,0,0,0,0,0 +"O84.21","84.21 Foreign affairs",4,"O84.2","O","O","84","O84","2","O84.2","1","O84.21",0,0,NA,0,0 +"O84.22","84.22 Defence activities",4,"O84.2","O","O","84","O84","2","O84.2","2","O84.22",0,0,NA,0,0 +"O84.23","84.23 Justice and judicial activities",4,"O84.2","O","O","84","O84","2","O84.2","3","O84.23",0,0,NA,0,0 +"O84.24","84.24 Public order and safety activities",4,"O84.2","O","O","84","O84","2","O84.2","4","O84.24",0,0,NA,0,0 +"O84.25","84.25 Fire service activities",4,"O84.2","O","O","84","O84","2","O84.2","5","O84.25",0,0,NA,0,0 +"O84.3","84.3 Compulsory social security activities",3,"O84","O","O","84","O84","3","O84.3",NA,NA,0,0,0,0,0 +"O84.30","84.30 Compulsory social security activities",4,"O84.3","O","O","84","O84","3","O84.3","0","O84.30",0,0,NA,0,0 +"P85","85 Education",2,"P","P","P","85","P85",NA,NA,NA,NA,0,0,0,0,0 +"P85.1","85.1 Pre-primary education",3,"P85","P","P","85","P85","1","P85.1",NA,NA,0,0,0,0,0 +"P85.10","85.10 Pre-primary education",4,"P85.1","P","P","85","P85","1","P85.1","0","P85.10",0,0,NA,0,0 +"P85.2","85.2 Primary education",3,"P85","P","P","85","P85","2","P85.2",NA,NA,0,0,0,0,0 +"P85.20","85.20 Primary education",4,"P85.2","P","P","85","P85","2","P85.2","0","P85.20",0,0,NA,0,0 +"P85.3","85.3 Secondary education",3,"P85","P","P","85","P85","3","P85.3",NA,NA,0,0,0,0,0 +"P85.31","85.31 General secondary education",4,"P85.3","P","P","85","P85","3","P85.3","1","P85.31",0,0,NA,0,0 +"P85.32","85.32 Technical and vocational secondary education",4,"P85.3","P","P","85","P85","3","P85.3","2","P85.32",0,0,NA,0,0 +"P85.4","85.4 Higher education",3,"P85","P","P","85","P85","4","P85.4",NA,NA,0,0,0,0,0 +"P85.41","85.41 Post-secondary non-tertiary education",4,"P85.4","P","P","85","P85","4","P85.4","1","P85.41",0,0,NA,0,0 +"P85.42","85.42 Tertiary education",4,"P85.4","P","P","85","P85","4","P85.4","2","P85.42",0,0,NA,0,0 +"P85.5","85.5 Other education",3,"P85","P","P","85","P85","5","P85.5",NA,NA,0,0,0,0,0 +"P85.51","85.51 Sports and recreation education",4,"P85.5","P","P","85","P85","5","P85.5","1","P85.51",0,0,NA,0,0 +"P85.52","85.52 Cultural education",4,"P85.5","P","P","85","P85","5","P85.5","2","P85.52",0,0,NA,0,0 +"P85.53","85.53 Driving school activities",4,"P85.5","P","P","85","P85","5","P85.5","3","P85.53",0,0,NA,0,0 +"P85.59","85.59 Other education n.e.c.",4,"P85.5","P","P","85","P85","5","P85.5","9","P85.59",0,0,NA,0,0 +"P85.6","85.6 Educational support activities",3,"P85","P","P","85","P85","6","P85.6",NA,NA,0,0,0,0,0 +"P85.60","85.60 Educational support activities",4,"P85.6","P","P","85","P85","6","P85.6","0","P85.60",0,0,NA,0,0 +"Q86","86 Human health activities",2,"Q","Q","Q","86","Q86",NA,NA,NA,NA,0,0,0,0,0 +"Q86.1","86.1 Hospital activities",3,"Q86","Q","Q","86","Q86","1","Q86.1",NA,NA,0,0,0,0,0 +"Q86.10","86.10 Hospital activities",4,"Q86.1","Q","Q","86","Q86","1","Q86.1","0","Q86.10",0,0,NA,0,0 +"Q86.2","86.2 Medical and dental practice activities",3,"Q86","Q","Q","86","Q86","2","Q86.2",NA,NA,0,0,0,0,0 +"Q86.21","86.21 General medical practice activities",4,"Q86.2","Q","Q","86","Q86","2","Q86.2","1","Q86.21",0,0,NA,0,0 +"Q86.22","86.22 Specialist medical practice activities",4,"Q86.2","Q","Q","86","Q86","2","Q86.2","2","Q86.22",0,0,NA,0,0 +"Q86.23","86.23 Dental practice activities",4,"Q86.2","Q","Q","86","Q86","2","Q86.2","3","Q86.23",0,0,NA,0,0 +"Q86.9","86.9 Other human health activities",3,"Q86","Q","Q","86","Q86","9","Q86.9",NA,NA,0,0,0,0,0 +"Q86.90","86.90 Other human health activities",4,"Q86.9","Q","Q","86","Q86","9","Q86.9","0","Q86.90",0,0,NA,0,0 +"Q87","87 Residential care activities",2,"Q","Q","Q","87","Q87",NA,NA,NA,NA,0,0,0,0,0 +"Q87.1","87.1 Residential nursing care activities",3,"Q87","Q","Q","87","Q87","1","Q87.1",NA,NA,0,0,0,0,0 +"Q87.10","87.10 Residential nursing care activities",4,"Q87.1","Q","Q","87","Q87","1","Q87.1","0","Q87.10",0,0,NA,0,0 +"Q87.2","87.2 Residential care activities for mental retardation, mental health and substance abuse",3,"Q87","Q","Q","87","Q87","2","Q87.2",NA,NA,0,0,0,0,0 +"Q87.20","87.20 Residential care activities for mental retardation, mental health and substance abuse",4,"Q87.2","Q","Q","87","Q87","2","Q87.2","0","Q87.20",0,0,NA,0,0 +"Q87.3","87.3 Residential care activities for the elderly and disabled",3,"Q87","Q","Q","87","Q87","3","Q87.3",NA,NA,0,0,0,0,0 +"Q87.30","87.30 Residential care activities for the elderly and disabled",4,"Q87.3","Q","Q","87","Q87","3","Q87.3","0","Q87.30",0,0,NA,0,0 +"Q87.9","87.9 Other residential care activities",3,"Q87","Q","Q","87","Q87","9","Q87.9",NA,NA,0,0,0,0,0 +"Q87.90","87.90 Other residential care activities",4,"Q87.9","Q","Q","87","Q87","9","Q87.9","0","Q87.90",0,0,NA,0,0 +"Q88","88 Social work activities without accommodation",2,"Q","Q","Q","88","Q88",NA,NA,NA,NA,0,0,0,0,0 +"Q88.1","88.1 Social work activities without accommodation for the elderly and disabled",3,"Q88","Q","Q","88","Q88","1","Q88.1",NA,NA,0,0,0,0,0 +"Q88.10","88.10 Social work activities without accommodation for the elderly and disabled",4,"Q88.1","Q","Q","88","Q88","1","Q88.1","0","Q88.10",0,0,NA,0,0 +"Q88.9","88.9 Other social work activities without accommodation",3,"Q88","Q","Q","88","Q88","9","Q88.9",NA,NA,0,0,0,0,0 +"Q88.91","88.91 Child day-care activities",4,"Q88.9","Q","Q","88","Q88","9","Q88.9","1","Q88.91",0,0,NA,0,0 +"Q88.99","88.99 Other social work activities without accommodation n.e.c.",4,"Q88.9","Q","Q","88","Q88","9","Q88.9","9","Q88.99",0,0,NA,0,0 +"R90","90 Creative, arts and entertainment activities",2,"R","R","R","90","R90",NA,NA,NA,NA,0,0,0,0,0 +"R90.0","90.0 Creative, arts and entertainment activities",3,"R90","R","R","90","R90","0","R90.0",NA,NA,0,0,0,0,0 +"R90.01","90.01 Performing arts",4,"R90.0","R","R","90","R90","0","R90.0","1","R90.01",0,0,NA,0,0 +"R90.02","90.02 Support activities to performing arts",4,"R90.0","R","R","90","R90","0","R90.0","2","R90.02",0,0,NA,0,0 +"R90.03","90.03 Artistic creation",4,"R90.0","R","R","90","R90","0","R90.0","3","R90.03",0,0,NA,0,0 +"R90.04","90.04 Operation of arts facilities",4,"R90.0","R","R","90","R90","0","R90.0","4","R90.04",0,0,NA,0,0 +"R91","91 Libraries, archives, museums and other cultural activities",2,"R","R","R","91","R91",NA,NA,NA,NA,0,0,0,0,0 +"R91.0","91.0 Libraries, archives, museums and other cultural activities",3,"R91","R","R","91","R91","0","R91.0",NA,NA,0,0,0,0,0 +"R91.01","91.01 Library and archives activities",4,"R91.0","R","R","91","R91","0","R91.0","1","R91.01",0,0,NA,0,0 +"R91.02","91.02 Museums activities",4,"R91.0","R","R","91","R91","0","R91.0","2","R91.02",0,0,NA,0,0 +"R91.03","91.03 Operation of historical sites and buildings and similar visitor attractions",4,"R91.0","R","R","91","R91","0","R91.0","3","R91.03",0,0,NA,0,0 +"R91.04","91.04 Botanical and zoological gardens and nature reserves activities",4,"R91.0","R","R","91","R91","0","R91.0","4","R91.04",0,0,NA,0,0 +"R92","92 Gambling and betting activities",2,"R","R","R","92","R92",NA,NA,NA,NA,0,0,0,0,0 +"R92.0","92.0 Gambling and betting activities",3,"R92","R","R","92","R92","0","R92.0",NA,NA,0,0,0,0,0 +"R92.00","92.00 Gambling and betting activities",4,"R92.0","R","R","92","R92","0","R92.0","0","R92.00",0,0,NA,0,0 +"R93","93 Sports activities and amusement and recreation activities",2,"R","R","R","93","R93",NA,NA,NA,NA,0,0,0,0,0 +"R93.1","93.1 Sports activities",3,"R93","R","R","93","R93","1","R93.1",NA,NA,0,0,0,0,0 +"R93.11","93.11 Operation of sports facilities",4,"R93.1","R","R","93","R93","1","R93.1","1","R93.11",0,0,NA,0,0 +"R93.12","93.12 Activities of sports clubs",4,"R93.1","R","R","93","R93","1","R93.1","2","R93.12",0,0,NA,0,0 +"R93.13","93.13 Fitness facilities",4,"R93.1","R","R","93","R93","1","R93.1","3","R93.13",0,0,NA,0,0 +"R93.19","93.19 Other sports activities",4,"R93.1","R","R","93","R93","1","R93.1","9","R93.19",0,0,NA,0,0 +"R93.2","93.2 Amusement and recreation activities",3,"R93","R","R","93","R93","2","R93.2",NA,NA,0,0,0,0,0 +"R93.21","93.21 Activities of amusement parks and theme parks",4,"R93.2","R","R","93","R93","2","R93.2","1","R93.21",0,0,NA,0,0 +"R93.29","93.29 Other amusement and recreation activities",4,"R93.2","R","R","93","R93","2","R93.2","9","R93.29",0,0,NA,0,0 +"S94","94 Activities of membership organisations",2,"S","S","S","94","S94",NA,NA,NA,NA,0,0,0,0,0 +"S94.1","94.1 Activities of business, employers and professional membership organisations",3,"S94","S","S","94","S94","1","S94.1",NA,NA,0,0,0,0,0 +"S94.11","94.11 Activities of business and employers membership organisations",4,"S94.1","S","S","94","S94","1","S94.1","1","S94.11",0,0,NA,0,0 +"S94.12","94.12 Activities of professional membership organisations",4,"S94.1","S","S","94","S94","1","S94.1","2","S94.12",0,0,NA,0,0 +"S94.2","94.2 Activities of trade unions",3,"S94","S","S","94","S94","2","S94.2",NA,NA,0,0,0,0,0 +"S94.20","94.20 Activities of trade unions",4,"S94.2","S","S","94","S94","2","S94.2","0","S94.20",0,0,NA,0,0 +"S94.9","94.9 Activities of other membership organisations",3,"S94","S","S","94","S94","9","S94.9",NA,NA,0,0,0,0,0 +"S94.91","94.91 Activities of religious organisations",4,"S94.9","S","S","94","S94","9","S94.9","1","S94.91",0,0,NA,0,0 +"S94.92","94.92 Activities of political organisations",4,"S94.9","S","S","94","S94","9","S94.9","2","S94.92",0,0,NA,0,0 +"S94.99","94.99 Activities of other membership organisations n.e.c.",4,"S94.9","S","S","94","S94","9","S94.9","9","S94.99",0,0,NA,0,0 +"S95","95 Repair of computers and personal and household goods",2,"S","S","S","95","S95",NA,NA,NA,NA,0,0,0,0,0 +"S95.1","95.1 Repair of computers and communication equipment",3,"S95","S","S","95","S95","1","S95.1",NA,NA,0,0,0,0,0 +"S95.11","95.11 Repair of computers and peripheral equipment",4,"S95.1","S","S","95","S95","1","S95.1","1","S95.11",0,0,NA,0,0 +"S95.12","95.12 Repair of communication equipment",4,"S95.1","S","S","95","S95","1","S95.1","2","S95.12",0,0,NA,0,0 +"S95.2","95.2 Repair of personal and household goods",3,"S95","S","S","95","S95","2","S95.2",NA,NA,0,0,0,0,0 +"S95.21","95.21 Repair of consumer electronics",4,"S95.2","S","S","95","S95","2","S95.2","1","S95.21",0,0,NA,0,0 +"S95.22","95.22 Repair of household appliances and home and garden equipment",4,"S95.2","S","S","95","S95","2","S95.2","2","S95.22",0,0,NA,0,0 +"S95.23","95.23 Repair of footwear and leather goods",4,"S95.2","S","S","95","S95","2","S95.2","3","S95.23",0,0,NA,0,0 +"S95.24","95.24 Repair of furniture and home furnishings",4,"S95.2","S","S","95","S95","2","S95.2","4","S95.24",0,0,NA,0,0 +"S95.25","95.25 Repair of watches, clocks and jewellery",4,"S95.2","S","S","95","S95","2","S95.2","5","S95.25",0,0,NA,0,0 +"S95.29","95.29 Repair of other personal and household goods",4,"S95.2","S","S","95","S95","2","S95.2","9","S95.29",0,0,NA,0,0 +"S96","96 Other personal service activities",2,"S","S","S","96","S96",NA,NA,NA,NA,0,0,0,0,0 +"S96.0","96.0 Other personal service activities",3,"S96","S","S","96","S96","0","S96.0",NA,NA,0,0,0,0,0 +"S96.01","96.01 Washing and (dry-)cleaning of textile and fur products",4,"S96.0","S","S","96","S96","0","S96.0","1","S96.01",0,0,NA,0,0 +"S96.02","96.02 Hairdressing and other beauty treatment",4,"S96.0","S","S","96","S96","0","S96.0","2","S96.02",0,0,NA,0,0 +"S96.03","96.03 Funeral and related activities",4,"S96.0","S","S","96","S96","0","S96.0","3","S96.03",0,0,NA,0,0 +"S96.04","96.04 Physical well-being activities",4,"S96.0","S","S","96","S96","0","S96.0","4","S96.04",0,0,NA,0,0 +"S96.09","96.09 Other personal service activities n.e.c.",4,"S96.0","S","S","96","S96","0","S96.0","9","S96.09",0,0,NA,0,0 +"T97","97 Activities of households as employers of domestic personnel",2,"T","T","T","97","T97",NA,NA,NA,NA,0,0,0,0,0 +"T97.0","97.0 Activities of households as employers of domestic personnel",3,"T97","T","T","97","T97","0","T97.0",NA,NA,0,0,0,0,0 +"T97.00","97.00 Activities of households as employers of domestic personnel",4,"T97.0","T","T","97","T97","0","T97.0","0","T97.00",0,0,NA,0,0 +"T98","98 Undifferentiated goods- and services-producing activities of private households for own use",2,"T","T","T","98","T98",NA,NA,NA,NA,0,0,0,0,0 +"T98.1","98.1 Undifferentiated goods-producing activities of private households for own use",3,"T98","T","T","98","T98","1","T98.1",NA,NA,0,0,0,0,0 +"T98.10","98.10 Undifferentiated goods-producing activities of private households for own use",4,"T98.1","T","T","98","T98","1","T98.1","0","T98.10",0,0,NA,0,0 +"T98.2","98.2 Undifferentiated service-producing activities of private households for own use",3,"T98","T","T","98","T98","2","T98.2",NA,NA,0,0,0,0,0 +"T98.20","98.20 Undifferentiated service-producing activities of private households for own use",4,"T98.2","T","T","98","T98","2","T98.2","0","T98.20",0,0,NA,0,0 +"U99","99 Activities of extraterritorial organisations and bodies",2,"U","U","U","99","U99",NA,NA,NA,NA,0,0,0,0,0 +"U99.0","99.0 Activities of extraterritorial organisations and bodies",3,"U99","U","U","99","U99","0","U99.0",NA,NA,0,0,0,0,0 +"U99.00","99.00 Activities of extraterritorial organisations and bodies",4,"U99.0","U","U","99","U99","0","U99.0","0","U99.00",0,0,NA,0,0 +"A","A AGRICULTURE, FORESTRY AND FISHING",1,NA,"A","A",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"B","B MINING AND QUARRYING",1,NA,"B","B",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"C","C MANUFACTURING",1,NA,"C","C",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"D","D ELECTRICITY, GAS, STEAM AND AIR CONDITIONING SUPPLY",1,NA,"D","D",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"E","E WATER SUPPLY; SEWERAGE, WASTE MANAGEMENT AND REMEDIATION ACTIVITIES",1,NA,"E","E",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"F","F CONSTRUCTION",1,NA,"F","F",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"G","G WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES",1,NA,"G","G",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"H","H TRANSPORTATION AND STORAGE",1,NA,"H","H",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"I","I ACCOMMODATION AND FOOD SERVICE ACTIVITIES",1,NA,"I","I",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"J","J INFORMATION AND COMMUNICATION",1,NA,"J","J",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"K","K FINANCIAL AND INSURANCE ACTIVITIES",1,NA,"K","K",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"L","L REAL ESTATE ACTIVITIES",1,NA,"L","L",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"M","M PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES",1,NA,"M","M",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"N","N ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES",1,NA,"N","N",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"O","O PUBLIC ADMINISTRATION AND DEFENCE; COMPULSORY SOCIAL SECURITY",1,NA,"O","O",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"P","P EDUCATION",1,NA,"P","P",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"Q","Q HUMAN HEALTH AND SOCIAL WORK ACTIVITIES",1,NA,"Q","Q",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"R","R ARTS, ENTERTAINMENT AND RECREATION",1,NA,"R","R",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"S","S OTHER SERVICE ACTIVITIES",1,NA,"S","S",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"T","T ACTIVITIES OF HOUSEHOLDS AS EMPLOYERS; UNDIFFERENTIATED GOODS- AND SERVICES-PRODUCING ACTIVITIES OF HOUSEHOLDS FOR OWN USE",1,NA,"T","T",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"U","U ACTIVITIES OF EXTRATERRITORIAL ORGANISATIONS AND BODIES",1,NA,"U","U",NA,NA,NA,NA,NA,NA,0,NA,0,0,0 diff --git a/inst/extdata/QC_output_Code.csv b/inst/extdata/QC_output_Code.csv new file mode 100644 index 0000000..14c6dbf --- /dev/null +++ b/inst/extdata/QC_output_Code.csv @@ -0,0 +1,997 @@ +"Code","Label","level","superior","segment1","Code1","segment2","Code2","segment3","Code3","segment4","Code4","Parent","duplicateCode","orphan","childless","duplicateLabel","singleChildMismatch" +"A01","01 Crop and animal production, hunting and related service activities",2,NA,"A","A","01","A01",NA,NA,NA,NA,"A",0,0,0,0,0 +"A01.1","01.1 Growing of non-perennial crops",3,NA,"A","A","01","A01","1","A01.1",NA,NA,"A01",0,0,0,0,0 +"A01.11","01.11 Growing of cereals (except rice), leguminous crops and oil seeds",4,NA,"A","A","01","A01","1","A01.1","1","A01.11","A01.1",0,0,NA,0,0 +"A01.12","01.12 Growing of rice",4,NA,"A","A","01","A01","1","A01.1","2","A01.12","A01.1",0,0,NA,0,0 +"A01.13","01.13 Growing of vegetables and melons, roots and tubers",4,NA,"A","A","01","A01","1","A01.1","3","A01.13","A01.1",0,0,NA,0,0 +"A01.14","01.14 Growing of sugar cane",4,NA,"A","A","01","A01","1","A01.1","4","A01.14","A01.1",0,0,NA,0,0 +"A01.15","01.15 Growing of tobacco",4,NA,"A","A","01","A01","1","A01.1","5","A01.15","A01.1",0,0,NA,0,0 +"A01.16","01.16 Growing of fibre crops",4,NA,"A","A","01","A01","1","A01.1","6","A01.16","A01.1",0,0,NA,0,0 +"A01.19","01.19 Growing of other non-perennial crops",4,NA,"A","A","01","A01","1","A01.1","9","A01.19","A01.1",0,0,NA,0,0 +"A01.2","01.2 Growing of perennial crops",3,NA,"A","A","01","A01","2","A01.2",NA,NA,"A01",0,0,0,0,0 +"A01.21","01.21 Growing of grapes",4,NA,"A","A","01","A01","2","A01.2","1","A01.21","A01.2",0,0,NA,0,0 +"A01.22","01.22 Growing of tropical and subtropical fruits",4,NA,"A","A","01","A01","2","A01.2","2","A01.22","A01.2",0,0,NA,0,0 +"A01.23","01.23 Growing of citrus fruits",4,NA,"A","A","01","A01","2","A01.2","3","A01.23","A01.2",0,0,NA,0,0 +"A01.24","01.24 Growing of pome fruits and stone fruits",4,NA,"A","A","01","A01","2","A01.2","4","A01.24","A01.2",0,0,NA,0,0 +"A01.25","01.25 Growing of other tree and bush fruits and nuts",4,NA,"A","A","01","A01","2","A01.2","5","A01.25","A01.2",0,0,NA,0,0 +"A01.26","01.26 Growing of oleaginous fruits",4,NA,"A","A","01","A01","2","A01.2","6","A01.26","A01.2",0,0,NA,0,0 +"A01.27","01.27 Growing of beverage crops",4,NA,"A","A","01","A01","2","A01.2","7","A01.27","A01.2",0,0,NA,0,0 +"A01.28","01.28 Growing of spices, aromatic, drug and pharmaceutical crops",4,NA,"A","A","01","A01","2","A01.2","8","A01.28","A01.2",0,0,NA,0,0 +"A01.29","01.29 Growing of other perennial crops",4,NA,"A","A","01","A01","2","A01.2","9","A01.29","A01.2",0,0,NA,0,0 +"A01.3","01.3 Plant propagation",3,NA,"A","A","01","A01","3","A01.3",NA,NA,"A01",0,0,0,0,0 +"A01.30","01.30 Plant propagation",4,NA,"A","A","01","A01","3","A01.3","0","A01.30","A01.3",0,0,NA,0,0 +"A01.4","01.4 Animal production",3,NA,"A","A","01","A01","4","A01.4",NA,NA,"A01",0,0,0,0,0 +"A01.41","01.41 Raising of dairy cattle",4,NA,"A","A","01","A01","4","A01.4","1","A01.41","A01.4",0,0,NA,0,0 +"A01.42","01.42 Raising of other cattle and buffaloes",4,NA,"A","A","01","A01","4","A01.4","2","A01.42","A01.4",0,0,NA,0,0 +"A01.43","01.43 Raising of horses and other equines",4,NA,"A","A","01","A01","4","A01.4","3","A01.43","A01.4",0,0,NA,0,0 +"A01.44","01.44 Raising of camels and camelids",4,NA,"A","A","01","A01","4","A01.4","4","A01.44","A01.4",0,0,NA,0,0 +"A01.45","01.45 Raising of sheep and goats",4,NA,"A","A","01","A01","4","A01.4","5","A01.45","A01.4",0,0,NA,0,0 +"A01.46","01.46 Raising of swine/pigs",4,NA,"A","A","01","A01","4","A01.4","6","A01.46","A01.4",0,0,NA,0,0 +"A01.47","01.47 Raising of poultry",4,NA,"A","A","01","A01","4","A01.4","7","A01.47","A01.4",0,0,NA,0,0 +"A01.49","01.49 Raising of other animals",4,NA,"A","A","01","A01","4","A01.4","9","A01.49","A01.4",0,0,NA,0,0 +"A01.5","01.5 Mixed farming",3,NA,"A","A","01","A01","5","A01.5",NA,NA,"A01",0,0,0,0,0 +"A01.50","01.50 Mixed farming",4,NA,"A","A","01","A01","5","A01.5","0","A01.50","A01.5",0,0,NA,0,0 +"A01.6","01.6 Support activities to agriculture and post-harvest crop activities",3,NA,"A","A","01","A01","6","A01.6",NA,NA,"A01",0,0,0,0,0 +"A01.61","01.61 Support activities for crop production",4,NA,"A","A","01","A01","6","A01.6","1","A01.61","A01.6",0,0,NA,0,0 +"A01.62","01.62 Support activities for animal production",4,NA,"A","A","01","A01","6","A01.6","2","A01.62","A01.6",0,0,NA,0,0 +"A01.63","01.63 Post-harvest crop activities",4,NA,"A","A","01","A01","6","A01.6","3","A01.63","A01.6",0,0,NA,0,0 +"A01.64","01.64 Seed processing for propagation",4,NA,"A","A","01","A01","6","A01.6","4","A01.64","A01.6",0,0,NA,0,0 +"A01.7","01.7 Hunting, trapping and related service activities",3,NA,"A","A","01","A01","7","A01.7",NA,NA,"A01",0,0,0,0,0 +"A01.70","01.70 Hunting, trapping and related service activities",4,NA,"A","A","01","A01","7","A01.7","0","A01.70","A01.7",0,0,NA,0,0 +"A02","02 Forestry and logging",2,NA,"A","A","02","A02",NA,NA,NA,NA,"A",0,0,0,0,0 +"A02.1","02.1 Silviculture and other forestry activities",3,NA,"A","A","02","A02","1","A02.1",NA,NA,"A02",0,0,0,0,0 +"A02.10","02.10 Silviculture and other forestry activities",4,NA,"A","A","02","A02","1","A02.1","0","A02.10","A02.1",0,0,NA,0,0 +"A02.2","02.2 Logging",3,NA,"A","A","02","A02","2","A02.2",NA,NA,"A02",0,0,0,0,0 +"A02.20","02.20 Logging",4,NA,"A","A","02","A02","2","A02.2","0","A02.20","A02.2",0,0,NA,0,0 +"A02.3","02.3 Gathering of wild growing non-wood products",3,NA,"A","A","02","A02","3","A02.3",NA,NA,"A02",0,0,0,0,0 +"A02.30","02.30 Gathering of wild growing non-wood products",4,NA,"A","A","02","A02","3","A02.3","0","A02.30","A02.3",0,0,NA,0,0 +"A02.4","02.4 Support services to forestry",3,NA,"A","A","02","A02","4","A02.4",NA,NA,"A02",0,0,0,0,0 +"A02.40","02.40 Support services to forestry",4,NA,"A","A","02","A02","4","A02.4","0","A02.40","A02.4",0,0,NA,0,0 +"A03","03 Fishing and aquaculture",2,NA,"A","A","03","A03",NA,NA,NA,NA,"A",0,0,0,0,0 +"A03.1","03.1 Fishing",3,NA,"A","A","03","A03","1","A03.1",NA,NA,"A03",0,0,0,0,0 +"A03.11","03.11 Marine fishing",4,NA,"A","A","03","A03","1","A03.1","1","A03.11","A03.1",0,0,NA,0,0 +"A03.12","03.12 Freshwater fishing",4,NA,"A","A","03","A03","1","A03.1","2","A03.12","A03.1",0,0,NA,0,0 +"A03.2","03.2 Aquaculture",3,NA,"A","A","03","A03","2","A03.2",NA,NA,"A03",0,0,0,0,0 +"A03.21","03.21 Marine aquaculture",4,NA,"A","A","03","A03","2","A03.2","1","A03.21","A03.2",0,0,NA,0,0 +"A03.22","03.22 Freshwater aquaculture",4,NA,"A","A","03","A03","2","A03.2","2","A03.22","A03.2",0,0,NA,0,0 +"B05","05 Mining of coal and lignite",2,NA,"B","B","05","B05",NA,NA,NA,NA,"B",0,0,0,0,0 +"B05.1","05.1 Mining of hard coal",3,NA,"B","B","05","B05","1","B05.1",NA,NA,"B05",0,0,0,0,0 +"B05.10","05.10 Mining of hard coal",4,NA,"B","B","05","B05","1","B05.1","0","B05.10","B05.1",0,0,NA,0,0 +"B05.2","05.2 Mining of lignite",3,NA,"B","B","05","B05","2","B05.2",NA,NA,"B05",0,0,0,0,0 +"B05.20","05.20 Mining of lignite",4,NA,"B","B","05","B05","2","B05.2","0","B05.20","B05.2",0,0,NA,0,0 +"B06","06 Extraction of crude petroleum and natural gas",2,NA,"B","B","06","B06",NA,NA,NA,NA,"B",0,0,0,0,0 +"B06.1","06.1 Extraction of crude petroleum",3,NA,"B","B","06","B06","1","B06.1",NA,NA,"B06",0,0,0,0,0 +"B06.10","06.10 Extraction of crude petroleum",4,NA,"B","B","06","B06","1","B06.1","0","B06.10","B06.1",0,0,NA,0,0 +"B06.2","06.2 Extraction of natural gas",3,NA,"B","B","06","B06","2","B06.2",NA,NA,"B06",0,0,0,0,0 +"B06.20","06.20 Extraction of natural gas",4,NA,"B","B","06","B06","2","B06.2","0","B06.20","B06.2",0,0,NA,0,0 +"B07","07 Mining of metal ores",2,NA,"B","B","07","B07",NA,NA,NA,NA,"B",0,0,0,0,0 +"B07.1","07.1 Mining of iron ores",3,NA,"B","B","07","B07","1","B07.1",NA,NA,"B07",0,0,0,0,0 +"B07.10","07.10 Mining of iron ores",4,NA,"B","B","07","B07","1","B07.1","0","B07.10","B07.1",0,0,NA,0,0 +"B07.2","07.2 Mining of non-ferrous metal ores",3,NA,"B","B","07","B07","2","B07.2",NA,NA,"B07",0,0,0,0,0 +"B07.21","07.21 Mining of uranium and thorium ores",4,NA,"B","B","07","B07","2","B07.2","1","B07.21","B07.2",0,0,NA,0,0 +"B07.29","07.29 Mining of other non-ferrous metal ores",4,NA,"B","B","07","B07","2","B07.2","9","B07.29","B07.2",0,0,NA,0,0 +"B08","08 Other mining and quarrying",2,NA,"B","B","08","B08",NA,NA,NA,NA,"B",0,0,0,0,0 +"B08.1","08.1 Quarrying of stone, sand and clay",3,NA,"B","B","08","B08","1","B08.1",NA,NA,"B08",0,0,0,0,0 +"B08.11","08.11 Quarrying of ornamental and building stone, limestone, gypsum, chalk and slate",4,NA,"B","B","08","B08","1","B08.1","1","B08.11","B08.1",0,0,NA,0,0 +"B08.12","08.12 Operation of gravel and sand pits; mining of clays and kaolin",4,NA,"B","B","08","B08","1","B08.1","2","B08.12","B08.1",0,0,NA,0,0 +"B08.9","08.9 Mining and quarrying n.e.c.",3,NA,"B","B","08","B08","9","B08.9",NA,NA,"B08",0,0,0,0,0 +"B08.91","08.91 Mining of chemical and fertiliser minerals",4,NA,"B","B","08","B08","9","B08.9","1","B08.91","B08.9",0,0,NA,0,0 +"B08.92","08.92 Extraction of peat",4,NA,"B","B","08","B08","9","B08.9","2","B08.92","B08.9",0,0,NA,0,0 +"B08.93","08.93 Extraction of salt",4,NA,"B","B","08","B08","9","B08.9","3","B08.93","B08.9",0,0,NA,0,0 +"B08.99","08.99 Other mining and quarrying n.e.c.",4,NA,"B","B","08","B08","9","B08.9","9","B08.99","B08.9",0,0,NA,0,0 +"B09","09 Mining support service activities",2,NA,"B","B","09","B09",NA,NA,NA,NA,"B",0,0,0,0,0 +"B09.1","09.1 Support activities for petroleum and natural gas extraction",3,NA,"B","B","09","B09","1","B09.1",NA,NA,"B09",0,0,0,0,0 +"B09.10","09.10 Support activities for petroleum and natural gas extraction",4,NA,"B","B","09","B09","1","B09.1","0","B09.10","B09.1",0,0,NA,0,0 +"B09.9","09.9 Support activities for other mining and quarrying",3,NA,"B","B","09","B09","9","B09.9",NA,NA,"B09",0,0,0,0,0 +"B09.90","09.90 Support activities for other mining and quarrying",4,NA,"B","B","09","B09","9","B09.9","0","B09.90","B09.9",0,0,NA,0,0 +"C10","10 Manufacture of food products",2,NA,"C","C","10","C10",NA,NA,NA,NA,"C",0,0,0,0,0 +"C10.1","10.1 Processing and preserving of meat and production of meat products",3,NA,"C","C","10","C10","1","C10.1",NA,NA,"C10",0,0,0,0,0 +"C10.11","10.11 Processing and preserving of meat",4,NA,"C","C","10","C10","1","C10.1","1","C10.11","C10.1",0,0,NA,0,0 +"C10.12","10.12 Processing and preserving of poultry meat",4,NA,"C","C","10","C10","1","C10.1","2","C10.12","C10.1",0,0,NA,0,0 +"C10.13","10.13 Production of meat and poultry meat products",4,NA,"C","C","10","C10","1","C10.1","3","C10.13","C10.1",0,0,NA,0,0 +"C10.2","10.2 Processing and preserving of fish, crustaceans and molluscs",3,NA,"C","C","10","C10","2","C10.2",NA,NA,"C10",0,0,0,0,0 +"C10.20","10.20 Processing and preserving of fish, crustaceans and molluscs",4,NA,"C","C","10","C10","2","C10.2","0","C10.20","C10.2",0,0,NA,0,0 +"C10.3","10.3 Processing and preserving of fruit and vegetables",3,NA,"C","C","10","C10","3","C10.3",NA,NA,"C10",0,0,0,0,0 +"C10.31","10.31 Processing and preserving of potatoes",4,NA,"C","C","10","C10","3","C10.3","1","C10.31","C10.3",0,0,NA,0,0 +"C10.32","10.32 Manufacture of fruit and vegetable juice",4,NA,"C","C","10","C10","3","C10.3","2","C10.32","C10.3",0,0,NA,0,0 +"C10.39","10.39 Other processing and preserving of fruit and vegetables",4,NA,"C","C","10","C10","3","C10.3","9","C10.39","C10.3",0,0,NA,0,0 +"C10.4","10.4 Manufacture of vegetable and animal oils and fats",3,NA,"C","C","10","C10","4","C10.4",NA,NA,"C10",0,0,0,0,0 +"C10.41","10.41 Manufacture of oils and fats",4,NA,"C","C","10","C10","4","C10.4","1","C10.41","C10.4",0,0,NA,0,0 +"C10.42","10.42 Manufacture of margarine and similar edible fats",4,NA,"C","C","10","C10","4","C10.4","2","C10.42","C10.4",0,0,NA,0,0 +"C10.5","10.5 Manufacture of dairy products",3,NA,"C","C","10","C10","5","C10.5",NA,NA,"C10",0,0,0,0,0 +"C10.51","10.51 Operation of dairies and cheese making",4,NA,"C","C","10","C10","5","C10.5","1","C10.51","C10.5",0,0,NA,0,0 +"C10.52","10.52 Manufacture of ice cream",4,NA,"C","C","10","C10","5","C10.5","2","C10.52","C10.5",0,0,NA,0,0 +"C10.6","10.6 Manufacture of grain mill products, starches and starch products",3,NA,"C","C","10","C10","6","C10.6",NA,NA,"C10",0,0,0,0,0 +"C10.61","10.61 Manufacture of grain mill products",4,NA,"C","C","10","C10","6","C10.6","1","C10.61","C10.6",0,0,NA,0,0 +"C10.62","10.62 Manufacture of starches and starch products",4,NA,"C","C","10","C10","6","C10.6","2","C10.62","C10.6",0,0,NA,0,0 +"C10.7","10.7 Manufacture of bakery and farinaceous products",3,NA,"C","C","10","C10","7","C10.7",NA,NA,"C10",0,0,0,0,0 +"C10.71","10.71 Manufacture of bread; manufacture of fresh pastry goods and cakes",4,NA,"C","C","10","C10","7","C10.7","1","C10.71","C10.7",0,0,NA,0,0 +"C10.72","10.72 Manufacture of rusks and biscuits; manufacture of preserved pastry goods and cakes",4,NA,"C","C","10","C10","7","C10.7","2","C10.72","C10.7",0,0,NA,0,0 +"C10.73","10.73 Manufacture of macaroni, noodles, couscous and similar farinaceous products",4,NA,"C","C","10","C10","7","C10.7","3","C10.73","C10.7",0,0,NA,0,0 +"C10.8","10.8 Manufacture of other food products",3,NA,"C","C","10","C10","8","C10.8",NA,NA,"C10",0,0,0,0,0 +"C10.81","10.81 Manufacture of sugar",4,NA,"C","C","10","C10","8","C10.8","1","C10.81","C10.8",0,0,NA,0,0 +"C10.82","10.82 Manufacture of cocoa, chocolate and sugar confectionery",4,NA,"C","C","10","C10","8","C10.8","2","C10.82","C10.8",0,0,NA,0,0 +"C10.83","10.83 Processing of tea and coffee",4,NA,"C","C","10","C10","8","C10.8","3","C10.83","C10.8",0,0,NA,0,0 +"C10.84","10.84 Manufacture of condiments and seasonings",4,NA,"C","C","10","C10","8","C10.8","4","C10.84","C10.8",0,0,NA,0,0 +"C10.85","10.85 Manufacture of prepared meals and dishes",4,NA,"C","C","10","C10","8","C10.8","5","C10.85","C10.8",0,0,NA,0,0 +"C10.86","10.86 Manufacture of homogenised food preparations and dietetic food",4,NA,"C","C","10","C10","8","C10.8","6","C10.86","C10.8",0,0,NA,0,0 +"C10.89","10.89 Manufacture of other food products n.e.c.",4,NA,"C","C","10","C10","8","C10.8","9","C10.89","C10.8",0,0,NA,0,0 +"C10.9","10.9 Manufacture of prepared animal feeds",3,NA,"C","C","10","C10","9","C10.9",NA,NA,"C10",0,0,0,0,0 +"C10.91","10.91 Manufacture of prepared feeds for farm animals",4,NA,"C","C","10","C10","9","C10.9","1","C10.91","C10.9",0,0,NA,0,0 +"C10.92","10.92 Manufacture of prepared pet foods",4,NA,"C","C","10","C10","9","C10.9","2","C10.92","C10.9",0,0,NA,0,0 +"C11","11 Manufacture of beverages",2,NA,"C","C","11","C11",NA,NA,NA,NA,"C",0,0,0,0,0 +"C11.0","11.0 Manufacture of beverages",3,NA,"C","C","11","C11","0","C11.0",NA,NA,"C11",0,0,0,0,0 +"C11.01","11.01 Distilling, rectifying and blending of spirits",4,NA,"C","C","11","C11","0","C11.0","1","C11.01","C11.0",0,0,NA,0,0 +"C11.02","11.02 Manufacture of wine from grape",4,NA,"C","C","11","C11","0","C11.0","2","C11.02","C11.0",0,0,NA,0,0 +"C11.03","11.03 Manufacture of cider and other fruit wines",4,NA,"C","C","11","C11","0","C11.0","3","C11.03","C11.0",0,0,NA,0,0 +"C11.04","11.04 Manufacture of other non-distilled fermented beverages",4,NA,"C","C","11","C11","0","C11.0","4","C11.04","C11.0",0,0,NA,0,0 +"C11.05","11.05 Manufacture of beer",4,NA,"C","C","11","C11","0","C11.0","5","C11.05","C11.0",0,0,NA,0,0 +"C11.06","11.06 Manufacture of malt",4,NA,"C","C","11","C11","0","C11.0","6","C11.06","C11.0",0,0,NA,0,0 +"C11.07","11.07 Manufacture of soft drinks; production of mineral waters and other bottled waters",4,NA,"C","C","11","C11","0","C11.0","7","C11.07","C11.0",0,0,NA,0,0 +"C12","12 Manufacture of tobacco products",2,NA,"C","C","12","C12",NA,NA,NA,NA,"C",0,0,0,0,0 +"C12.0","12.0 Manufacture of tobacco products",3,NA,"C","C","12","C12","0","C12.0",NA,NA,"C12",0,0,0,0,0 +"C12.00","12.00 Manufacture of tobacco products",4,NA,"C","C","12","C12","0","C12.0","0","C12.00","C12.0",0,0,NA,0,0 +"C13","13 Manufacture of textiles",2,NA,"C","C","13","C13",NA,NA,NA,NA,"C",0,0,0,0,0 +"C13.1","13.1 Preparation and spinning of textile fibres",3,NA,"C","C","13","C13","1","C13.1",NA,NA,"C13",0,0,0,0,0 +"C13.10","13.10 Preparation and spinning of textile fibres",4,NA,"C","C","13","C13","1","C13.1","0","C13.10","C13.1",0,0,NA,0,0 +"C13.2","13.2 Weaving of textiles",3,NA,"C","C","13","C13","2","C13.2",NA,NA,"C13",0,0,0,0,0 +"C13.20","13.20 Weaving of textiles",4,NA,"C","C","13","C13","2","C13.2","0","C13.20","C13.2",0,0,NA,0,0 +"C13.3","13.3 Finishing of textiles",3,NA,"C","C","13","C13","3","C13.3",NA,NA,"C13",0,0,0,0,0 +"C13.30","13.30 Finishing of textiles",4,NA,"C","C","13","C13","3","C13.3","0","C13.30","C13.3",0,0,NA,0,0 +"C13.9","13.9 Manufacture of other textiles",3,NA,"C","C","13","C13","9","C13.9",NA,NA,"C13",0,0,0,0,0 +"C13.91","13.91 Manufacture of knitted and crocheted fabrics",4,NA,"C","C","13","C13","9","C13.9","1","C13.91","C13.9",0,0,NA,0,0 +"C13.92","13.92 Manufacture of made-up textile articles, except apparel",4,NA,"C","C","13","C13","9","C13.9","2","C13.92","C13.9",0,0,NA,0,0 +"C13.93","13.93 Manufacture of carpets and rugs",4,NA,"C","C","13","C13","9","C13.9","3","C13.93","C13.9",0,0,NA,0,0 +"C13.94","13.94 Manufacture of cordage, rope, twine and netting",4,NA,"C","C","13","C13","9","C13.9","4","C13.94","C13.9",0,0,NA,0,0 +"C13.95","13.95 Manufacture of non-wovens and articles made from non-wovens, except apparel",4,NA,"C","C","13","C13","9","C13.9","5","C13.95","C13.9",0,0,NA,0,0 +"C13.96","13.96 Manufacture of other technical and industrial textiles",4,NA,"C","C","13","C13","9","C13.9","6","C13.96","C13.9",0,0,NA,0,0 +"C13.99","13.99 Manufacture of other textiles n.e.c.",4,NA,"C","C","13","C13","9","C13.9","9","C13.99","C13.9",0,0,NA,0,0 +"C14","14 Manufacture of wearing apparel",2,NA,"C","C","14","C14",NA,NA,NA,NA,"C",0,0,0,0,0 +"C14.1","14.1 Manufacture of wearing apparel, except fur apparel",3,NA,"C","C","14","C14","1","C14.1",NA,NA,"C14",0,0,0,0,0 +"C14.11","14.11 Manufacture of leather clothes",4,NA,"C","C","14","C14","1","C14.1","1","C14.11","C14.1",0,0,NA,0,0 +"C14.12","14.12 Manufacture of workwear",4,NA,"C","C","14","C14","1","C14.1","2","C14.12","C14.1",0,0,NA,0,0 +"C14.13","14.13 Manufacture of other outerwear",4,NA,"C","C","14","C14","1","C14.1","3","C14.13","C14.1",0,0,NA,0,0 +"C14.14","14.14 Manufacture of underwear",4,NA,"C","C","14","C14","1","C14.1","4","C14.14","C14.1",0,0,NA,0,0 +"C14.19","14.19 Manufacture of other wearing apparel and accessories",4,NA,"C","C","14","C14","1","C14.1","9","C14.19","C14.1",0,0,NA,0,0 +"C14.2","14.2 Manufacture of articles of fur",3,NA,"C","C","14","C14","2","C14.2",NA,NA,"C14",0,0,0,0,0 +"C14.20","14.20 Manufacture of articles of fur",4,NA,"C","C","14","C14","2","C14.2","0","C14.20","C14.2",0,0,NA,0,0 +"C14.3","14.3 Manufacture of knitted and crocheted apparel",3,NA,"C","C","14","C14","3","C14.3",NA,NA,"C14",0,0,0,0,0 +"C14.31","14.31 Manufacture of knitted and crocheted hosiery",4,NA,"C","C","14","C14","3","C14.3","1","C14.31","C14.3",0,0,NA,0,0 +"C14.39","14.39 Manufacture of other knitted and crocheted apparel",4,NA,"C","C","14","C14","3","C14.3","9","C14.39","C14.3",0,0,NA,0,0 +"C15","15 Manufacture of leather and related products",2,NA,"C","C","15","C15",NA,NA,NA,NA,"C",0,0,0,0,0 +"C15.1","15.1 Tanning and dressing of leather; manufacture of luggage, handbags, saddlery and harness; dressing and dyeing of fur",3,NA,"C","C","15","C15","1","C15.1",NA,NA,"C15",0,0,0,0,0 +"C15.11","15.11 Tanning and dressing of leather; dressing and dyeing of fur",4,NA,"C","C","15","C15","1","C15.1","1","C15.11","C15.1",0,0,NA,0,0 +"C15.12","15.12 Manufacture of luggage, handbags and the like, saddlery and harness",4,NA,"C","C","15","C15","1","C15.1","2","C15.12","C15.1",0,0,NA,0,0 +"C15.2","15.2 Manufacture of footwear",3,NA,"C","C","15","C15","2","C15.2",NA,NA,"C15",0,0,0,0,0 +"C15.20","15.20 Manufacture of footwear",4,NA,"C","C","15","C15","2","C15.2","0","C15.20","C15.2",0,0,NA,0,0 +"C16","16 Manufacture of wood and of products of wood and cork, except furniture; manufacture of articles of straw and plaiting materials",2,NA,"C","C","16","C16",NA,NA,NA,NA,"C",0,0,0,0,0 +"C16.1","16.1 Sawmilling and planing of wood",3,NA,"C","C","16","C16","1","C16.1",NA,NA,"C16",0,0,0,0,0 +"C16.10","16.10 Sawmilling and planing of wood",4,NA,"C","C","16","C16","1","C16.1","0","C16.10","C16.1",0,0,NA,0,0 +"C16.2","16.2 Manufacture of products of wood, cork, straw and plaiting materials",3,NA,"C","C","16","C16","2","C16.2",NA,NA,"C16",0,0,0,0,0 +"C16.21","16.21 Manufacture of veneer sheets and wood-based panels",4,NA,"C","C","16","C16","2","C16.2","1","C16.21","C16.2",0,0,NA,0,0 +"C16.22","16.22 Manufacture of assembled parquet floors",4,NA,"C","C","16","C16","2","C16.2","2","C16.22","C16.2",0,0,NA,0,0 +"C16.23","16.23 Manufacture of other builders' carpentry and joinery",4,NA,"C","C","16","C16","2","C16.2","3","C16.23","C16.2",0,0,NA,0,0 +"C16.24","16.24 Manufacture of wooden containers",4,NA,"C","C","16","C16","2","C16.2","4","C16.24","C16.2",0,0,NA,0,0 +"C16.29","16.29 Manufacture of other products of wood; manufacture of articles of cork, straw and plaiting materials",4,NA,"C","C","16","C16","2","C16.2","9","C16.29","C16.2",0,0,NA,0,0 +"C17","17 Manufacture of paper and paper products",2,NA,"C","C","17","C17",NA,NA,NA,NA,"C",0,0,0,0,0 +"C17.1","17.1 Manufacture of pulp, paper and paperboard",3,NA,"C","C","17","C17","1","C17.1",NA,NA,"C17",0,0,0,0,0 +"C17.11","17.11 Manufacture of pulp",4,NA,"C","C","17","C17","1","C17.1","1","C17.11","C17.1",0,0,NA,0,0 +"C17.12","17.12 Manufacture of paper and paperboard",4,NA,"C","C","17","C17","1","C17.1","2","C17.12","C17.1",0,0,NA,0,0 +"C17.2","17.2 Manufacture of articles of paper and paperboard",3,NA,"C","C","17","C17","2","C17.2",NA,NA,"C17",0,0,0,0,0 +"C17.21","17.21 Manufacture of corrugated paper and paperboard and of containers of paper and paperboard",4,NA,"C","C","17","C17","2","C17.2","1","C17.21","C17.2",0,0,NA,0,0 +"C17.22","17.22 Manufacture of household and sanitary goods and of toilet requisites",4,NA,"C","C","17","C17","2","C17.2","2","C17.22","C17.2",0,0,NA,0,0 +"C17.23","17.23 Manufacture of paper stationery",4,NA,"C","C","17","C17","2","C17.2","3","C17.23","C17.2",0,0,NA,0,0 +"C17.24","17.24 Manufacture of wallpaper",4,NA,"C","C","17","C17","2","C17.2","4","C17.24","C17.2",0,0,NA,0,0 +"C17.29","17.29 Manufacture of other articles of paper and paperboard",4,NA,"C","C","17","C17","2","C17.2","9","C17.29","C17.2",0,0,NA,0,0 +"C18","18 Printing and reproduction of recorded media",2,NA,"C","C","18","C18",NA,NA,NA,NA,"C",0,0,0,0,0 +"C18.1","18.1 Printing and service activities related to printing",3,NA,"C","C","18","C18","1","C18.1",NA,NA,"C18",0,0,0,0,0 +"C18.11","18.11 Printing of newspapers",4,NA,"C","C","18","C18","1","C18.1","1","C18.11","C18.1",0,0,NA,0,0 +"C18.12","18.12 Other printing",4,NA,"C","C","18","C18","1","C18.1","2","C18.12","C18.1",0,0,NA,0,0 +"C18.13","18.13 Pre-press and pre-media services",4,NA,"C","C","18","C18","1","C18.1","3","C18.13","C18.1",0,0,NA,0,0 +"C18.14","18.14 Binding and related services",4,NA,"C","C","18","C18","1","C18.1","4","C18.14","C18.1",0,0,NA,0,0 +"C18.2","18.2 Reproduction of recorded media",3,NA,"C","C","18","C18","2","C18.2",NA,NA,"C18",0,0,0,0,0 +"C18.20","18.20 Reproduction of recorded media",4,NA,"C","C","18","C18","2","C18.2","0","C18.20","C18.2",0,0,NA,0,0 +"C19","19 Manufacture of coke and refined petroleum products",2,NA,"C","C","19","C19",NA,NA,NA,NA,"C",0,0,0,0,0 +"C19.1","19.1 Manufacture of coke oven products",3,NA,"C","C","19","C19","1","C19.1",NA,NA,"C19",0,0,0,0,0 +"C19.10","19.10 Manufacture of coke oven products",4,NA,"C","C","19","C19","1","C19.1","0","C19.10","C19.1",0,0,NA,0,0 +"C19.2","19.2 Manufacture of refined petroleum products",3,NA,"C","C","19","C19","2","C19.2",NA,NA,"C19",0,0,0,0,0 +"C19.20","19.20 Manufacture of refined petroleum products",4,NA,"C","C","19","C19","2","C19.2","0","C19.20","C19.2",0,0,NA,0,0 +"C20","20 Manufacture of chemicals and chemical products",2,NA,"C","C","20","C20",NA,NA,NA,NA,"C",0,0,0,0,0 +"C20.1","20.1 Manufacture of basic chemicals, fertilisers and nitrogen compounds, plastics and synthetic rubber in primary forms",3,NA,"C","C","20","C20","1","C20.1",NA,NA,"C20",0,0,0,0,0 +"C20.11","20.11 Manufacture of industrial gases",4,NA,"C","C","20","C20","1","C20.1","1","C20.11","C20.1",0,0,NA,0,0 +"C20.12","20.12 Manufacture of dyes and pigments",4,NA,"C","C","20","C20","1","C20.1","2","C20.12","C20.1",0,0,NA,0,0 +"C20.13","20.13 Manufacture of other inorganic basic chemicals",4,NA,"C","C","20","C20","1","C20.1","3","C20.13","C20.1",0,0,NA,0,0 +"C20.14","20.14 Manufacture of other organic basic chemicals",4,NA,"C","C","20","C20","1","C20.1","4","C20.14","C20.1",0,0,NA,0,0 +"C20.15","20.15 Manufacture of fertilisers and nitrogen compounds",4,NA,"C","C","20","C20","1","C20.1","5","C20.15","C20.1",0,0,NA,0,0 +"C20.16","20.16 Manufacture of plastics in primary forms",4,NA,"C","C","20","C20","1","C20.1","6","C20.16","C20.1",0,0,NA,0,0 +"C20.17","20.17 Manufacture of synthetic rubber in primary forms",4,NA,"C","C","20","C20","1","C20.1","7","C20.17","C20.1",0,0,NA,0,0 +"C20.2","20.2 Manufacture of pesticides and other agrochemical products",3,NA,"C","C","20","C20","2","C20.2",NA,NA,"C20",0,0,0,0,0 +"C20.20","20.20 Manufacture of pesticides and other agrochemical products",4,NA,"C","C","20","C20","2","C20.2","0","C20.20","C20.2",0,0,NA,0,0 +"C20.3","20.3 Manufacture of paints, varnishes and similar coatings, printing ink and mastics",3,NA,"C","C","20","C20","3","C20.3",NA,NA,"C20",0,0,0,0,0 +"C20.30","20.30 Manufacture of paints, varnishes and similar coatings, printing ink and mastics",4,NA,"C","C","20","C20","3","C20.3","0","C20.30","C20.3",0,0,NA,0,0 +"C20.4","20.4 Manufacture of soap and detergents, cleaning and polishing preparations, perfumes and toilet preparations",3,NA,"C","C","20","C20","4","C20.4",NA,NA,"C20",0,0,0,0,0 +"C20.41","20.41 Manufacture of soap and detergents, cleaning and polishing preparations",4,NA,"C","C","20","C20","4","C20.4","1","C20.41","C20.4",0,0,NA,0,0 +"C20.42","20.42 Manufacture of perfumes and toilet preparations",4,NA,"C","C","20","C20","4","C20.4","2","C20.42","C20.4",0,0,NA,0,0 +"C20.5","20.5 Manufacture of other chemical products",3,NA,"C","C","20","C20","5","C20.5",NA,NA,"C20",0,0,0,0,0 +"C20.51","20.51 Manufacture of explosives",4,NA,"C","C","20","C20","5","C20.5","1","C20.51","C20.5",0,0,NA,0,0 +"C20.52","20.52 Manufacture of glues",4,NA,"C","C","20","C20","5","C20.5","2","C20.52","C20.5",0,0,NA,0,0 +"C20.53","20.53 Manufacture of essential oils",4,NA,"C","C","20","C20","5","C20.5","3","C20.53","C20.5",0,0,NA,0,0 +"C20.59","20.59 Manufacture of other chemical products n.e.c.",4,NA,"C","C","20","C20","5","C20.5","9","C20.59","C20.5",0,0,NA,0,0 +"C20.6","20.6 Manufacture of man-made fibres",3,NA,"C","C","20","C20","6","C20.6",NA,NA,"C20",0,0,0,0,0 +"C20.60","20.60 Manufacture of man-made fibres",4,NA,"C","C","20","C20","6","C20.6","0","C20.60","C20.6",0,0,NA,0,0 +"C21","21 Manufacture of basic pharmaceutical products and pharmaceutical preparations",2,NA,"C","C","21","C21",NA,NA,NA,NA,"C",0,0,0,0,0 +"C21.1","21.1 Manufacture of basic pharmaceutical products",3,NA,"C","C","21","C21","1","C21.1",NA,NA,"C21",0,0,0,0,0 +"C21.10","21.10 Manufacture of basic pharmaceutical products",4,NA,"C","C","21","C21","1","C21.1","0","C21.10","C21.1",0,0,NA,0,0 +"C21.2","21.2 Manufacture of pharmaceutical preparations",3,NA,"C","C","21","C21","2","C21.2",NA,NA,"C21",0,0,0,0,0 +"C21.20","21.20 Manufacture of pharmaceutical preparations",4,NA,"C","C","21","C21","2","C21.2","0","C21.20","C21.2",0,0,NA,0,0 +"C22","22 Manufacture of rubber and plastic products",2,NA,"C","C","22","C22",NA,NA,NA,NA,"C",0,0,0,0,0 +"C22.1","22.1 Manufacture of rubber products",3,NA,"C","C","22","C22","1","C22.1",NA,NA,"C22",0,0,0,0,0 +"C22.11","22.11 Manufacture of rubber tyres and tubes; retreading and rebuilding of rubber tyres",4,NA,"C","C","22","C22","1","C22.1","1","C22.11","C22.1",0,0,NA,0,0 +"C22.19","22.19 Manufacture of other rubber products",4,NA,"C","C","22","C22","1","C22.1","9","C22.19","C22.1",0,0,NA,0,0 +"C22.2","22.2 Manufacture of plastic products",3,NA,"C","C","22","C22","2","C22.2",NA,NA,"C22",0,0,0,0,0 +"C22.21","22.21 Manufacture of plastic plates, sheets, tubes and profiles",4,NA,"C","C","22","C22","2","C22.2","1","C22.21","C22.2",0,0,NA,0,0 +"C22.22","22.22 Manufacture of plastic packing goods",4,NA,"C","C","22","C22","2","C22.2","2","C22.22","C22.2",0,0,NA,0,0 +"C22.23","22.23 Manufacture of builders’ ware of plastic",4,NA,"C","C","22","C22","2","C22.2","3","C22.23","C22.2",0,0,NA,0,0 +"C22.29","22.29 Manufacture of other plastic products",4,NA,"C","C","22","C22","2","C22.2","9","C22.29","C22.2",0,0,NA,0,0 +"C23","23 Manufacture of other non-metallic mineral products",2,NA,"C","C","23","C23",NA,NA,NA,NA,"C",0,0,0,0,0 +"C23.1","23.1 Manufacture of glass and glass products",3,NA,"C","C","23","C23","1","C23.1",NA,NA,"C23",0,0,0,0,0 +"C23.11","23.11 Manufacture of flat glass",4,NA,"C","C","23","C23","1","C23.1","1","C23.11","C23.1",0,0,NA,0,0 +"C23.12","23.12 Shaping and processing of flat glass",4,NA,"C","C","23","C23","1","C23.1","2","C23.12","C23.1",0,0,NA,0,0 +"C23.13","23.13 Manufacture of hollow glass",4,NA,"C","C","23","C23","1","C23.1","3","C23.13","C23.1",0,0,NA,0,0 +"C23.14","23.14 Manufacture of glass fibres",4,NA,"C","C","23","C23","1","C23.1","4","C23.14","C23.1",0,0,NA,0,0 +"C23.19","23.19 Manufacture and processing of other glass, including technical glassware",4,NA,"C","C","23","C23","1","C23.1","9","C23.19","C23.1",0,0,NA,0,0 +"C23.2","23.2 Manufacture of refractory products",3,NA,"C","C","23","C23","2","C23.2",NA,NA,"C23",0,0,0,0,0 +"C23.20","23.20 Manufacture of refractory products",4,NA,"C","C","23","C23","2","C23.2","0","C23.20","C23.2",0,0,NA,0,0 +"C23.3","23.3 Manufacture of clay building materials",3,NA,"C","C","23","C23","3","C23.3",NA,NA,"C23",0,0,0,0,0 +"C23.31","23.31 Manufacture of ceramic tiles and flags",4,NA,"C","C","23","C23","3","C23.3","1","C23.31","C23.3",0,0,NA,0,0 +"C23.32","23.32 Manufacture of bricks, tiles and construction products, in baked clay",4,NA,"C","C","23","C23","3","C23.3","2","C23.32","C23.3",0,0,NA,0,0 +"C23.4","23.4 Manufacture of other porcelain and ceramic products",3,NA,"C","C","23","C23","4","C23.4",NA,NA,"C23",0,0,0,0,0 +"C23.41","23.41 Manufacture of ceramic household and ornamental articles",4,NA,"C","C","23","C23","4","C23.4","1","C23.41","C23.4",0,0,NA,0,0 +"C23.42","23.42 Manufacture of ceramic sanitary fixtures",4,NA,"C","C","23","C23","4","C23.4","2","C23.42","C23.4",0,0,NA,0,0 +"C23.43","23.43 Manufacture of ceramic insulators and insulating fittings",4,NA,"C","C","23","C23","4","C23.4","3","C23.43","C23.4",0,0,NA,0,0 +"C23.44","23.44 Manufacture of other technical ceramic products",4,NA,"C","C","23","C23","4","C23.4","4","C23.44","C23.4",0,0,NA,0,0 +"C23.49","23.49 Manufacture of other ceramic products",4,NA,"C","C","23","C23","4","C23.4","9","C23.49","C23.4",0,0,NA,0,0 +"C23.5","23.5 Manufacture of cement, lime and plaster",3,NA,"C","C","23","C23","5","C23.5",NA,NA,"C23",0,0,0,0,0 +"C23.51","23.51 Manufacture of cement",4,NA,"C","C","23","C23","5","C23.5","1","C23.51","C23.5",0,0,NA,0,0 +"C23.52","23.52 Manufacture of lime and plaster",4,NA,"C","C","23","C23","5","C23.5","2","C23.52","C23.5",0,0,NA,0,0 +"C23.6","23.6 Manufacture of articles of concrete, cement and plaster",3,NA,"C","C","23","C23","6","C23.6",NA,NA,"C23",0,0,0,0,0 +"C23.61","23.61 Manufacture of concrete products for construction purposes",4,NA,"C","C","23","C23","6","C23.6","1","C23.61","C23.6",0,0,NA,0,0 +"C23.62","23.62 Manufacture of plaster products for construction purposes",4,NA,"C","C","23","C23","6","C23.6","2","C23.62","C23.6",0,0,NA,0,0 +"C23.63","23.63 Manufacture of ready-mixed concrete",4,NA,"C","C","23","C23","6","C23.6","3","C23.63","C23.6",0,0,NA,0,0 +"C23.64","23.64 Manufacture of mortars",4,NA,"C","C","23","C23","6","C23.6","4","C23.64","C23.6",0,0,NA,0,0 +"C23.65","23.65 Manufacture of fibre cement",4,NA,"C","C","23","C23","6","C23.6","5","C23.65","C23.6",0,0,NA,0,0 +"C23.69","23.69 Manufacture of other articles of concrete, plaster and cement",4,NA,"C","C","23","C23","6","C23.6","9","C23.69","C23.6",0,0,NA,0,0 +"C23.7","23.7 Cutting, shaping and finishing of stone",3,NA,"C","C","23","C23","7","C23.7",NA,NA,"C23",0,0,0,0,0 +"C23.70","23.70 Cutting, shaping and finishing of stone",4,NA,"C","C","23","C23","7","C23.7","0","C23.70","C23.7",0,0,NA,0,0 +"C23.9","23.9 Manufacture of abrasive products and non-metallic mineral products n.e.c.",3,NA,"C","C","23","C23","9","C23.9",NA,NA,"C23",0,0,0,0,0 +"C23.91","23.91 Production of abrasive products",4,NA,"C","C","23","C23","9","C23.9","1","C23.91","C23.9",0,0,NA,0,0 +"C23.99","23.99 Manufacture of other non-metallic mineral products n.e.c.",4,NA,"C","C","23","C23","9","C23.9","9","C23.99","C23.9",0,0,NA,0,0 +"C24","24 Manufacture of basic metals",2,NA,"C","C","24","C24",NA,NA,NA,NA,"C",0,0,0,0,0 +"C24.1","24.1 Manufacture of basic iron and steel and of ferro-alloys",3,NA,"C","C","24","C24","1","C24.1",NA,NA,"C24",0,0,0,0,0 +"C24.10","24.10 Manufacture of basic iron and steel and of ferro-alloys",4,NA,"C","C","24","C24","1","C24.1","0","C24.10","C24.1",0,0,NA,0,0 +"C24.2","24.2 Manufacture of tubes, pipes, hollow profiles and related fittings, of steel",3,NA,"C","C","24","C24","2","C24.2",NA,NA,"C24",0,0,0,0,0 +"C24.20","24.20 Manufacture of tubes, pipes, hollow profiles and related fittings, of steel",4,NA,"C","C","24","C24","2","C24.2","0","C24.20","C24.2",0,0,NA,0,0 +"C24.3","24.3 Manufacture of other products of first processing of steel",3,NA,"C","C","24","C24","3","C24.3",NA,NA,"C24",0,0,0,0,0 +"C24.31","24.31 Cold drawing of bars",4,NA,"C","C","24","C24","3","C24.3","1","C24.31","C24.3",0,0,NA,0,0 +"C24.32","24.32 Cold rolling of narrow strip",4,NA,"C","C","24","C24","3","C24.3","2","C24.32","C24.3",0,0,NA,0,0 +"C24.33","24.33 Cold forming or folding",4,NA,"C","C","24","C24","3","C24.3","3","C24.33","C24.3",0,0,NA,0,0 +"C24.34","24.34 Cold drawing of wire",4,NA,"C","C","24","C24","3","C24.3","4","C24.34","C24.3",0,0,NA,0,0 +"C24.4","24.4 Manufacture of basic precious and other non-ferrous metals",3,NA,"C","C","24","C24","4","C24.4",NA,NA,"C24",0,0,0,0,0 +"C24.41","24.41 Precious metals production",4,NA,"C","C","24","C24","4","C24.4","1","C24.41","C24.4",0,0,NA,0,0 +"C24.42","24.42 Aluminium production",4,NA,"C","C","24","C24","4","C24.4","2","C24.42","C24.4",0,0,NA,0,0 +"C24.43","24.43 Lead, zinc and tin production",4,NA,"C","C","24","C24","4","C24.4","3","C24.43","C24.4",0,0,NA,0,0 +"C24.44","24.44 Copper production",4,NA,"C","C","24","C24","4","C24.4","4","C24.44","C24.4",0,0,NA,0,0 +"C24.45","24.45 Other non-ferrous metal production",4,NA,"C","C","24","C24","4","C24.4","5","C24.45","C24.4",0,0,NA,0,0 +"C24.46","24.46 Processing of nuclear fuel",4,NA,"C","C","24","C24","4","C24.4","6","C24.46","C24.4",0,0,NA,0,0 +"C24.5","24.5 Casting of metals",3,NA,"C","C","24","C24","5","C24.5",NA,NA,"C24",0,0,0,0,0 +"C24.51","24.51 Casting of iron",4,NA,"C","C","24","C24","5","C24.5","1","C24.51","C24.5",0,0,NA,0,0 +"C24.52","24.52 Casting of steel",4,NA,"C","C","24","C24","5","C24.5","2","C24.52","C24.5",0,0,NA,0,0 +"C24.53","24.53 Casting of light metals",4,NA,"C","C","24","C24","5","C24.5","3","C24.53","C24.5",0,0,NA,0,0 +"C24.54","24.54 Casting of other non-ferrous metals",4,NA,"C","C","24","C24","5","C24.5","4","C24.54","C24.5",0,0,NA,0,0 +"C25","25 Manufacture of fabricated metal products, except machinery and equipment",2,NA,"C","C","25","C25",NA,NA,NA,NA,"C",0,0,0,0,0 +"C25.1","25.1 Manufacture of structural metal products",3,NA,"C","C","25","C25","1","C25.1",NA,NA,"C25",0,0,0,0,0 +"C25.11","25.11 Manufacture of metal structures and parts of structures",4,NA,"C","C","25","C25","1","C25.1","1","C25.11","C25.1",0,0,NA,0,0 +"C25.12","25.12 Manufacture of doors and windows of metal",4,NA,"C","C","25","C25","1","C25.1","2","C25.12","C25.1",0,0,NA,0,0 +"C25.2","25.2 Manufacture of tanks, reservoirs and containers of metal",3,NA,"C","C","25","C25","2","C25.2",NA,NA,"C25",0,0,0,0,0 +"C25.21","25.21 Manufacture of central heating radiators and boilers",4,NA,"C","C","25","C25","2","C25.2","1","C25.21","C25.2",0,0,NA,0,0 +"C25.29","25.29 Manufacture of other tanks, reservoirs and containers of metal",4,NA,"C","C","25","C25","2","C25.2","9","C25.29","C25.2",0,0,NA,0,0 +"C25.3","25.3 Manufacture of steam generators, except central heating hot water boilers",3,NA,"C","C","25","C25","3","C25.3",NA,NA,"C25",0,0,0,0,0 +"C25.30","25.30 Manufacture of steam generators, except central heating hot water boilers",4,NA,"C","C","25","C25","3","C25.3","0","C25.30","C25.3",0,0,NA,0,0 +"C25.4","25.4 Manufacture of weapons and ammunition",3,NA,"C","C","25","C25","4","C25.4",NA,NA,"C25",0,0,0,0,0 +"C25.40","25.40 Manufacture of weapons and ammunition",4,NA,"C","C","25","C25","4","C25.4","0","C25.40","C25.4",0,0,NA,0,0 +"C25.5","25.5 Forging, pressing, stamping and roll-forming of metal; powder metallurgy",3,NA,"C","C","25","C25","5","C25.5",NA,NA,"C25",0,0,0,0,0 +"C25.50","25.50 Forging, pressing, stamping and roll-forming of metal; powder metallurgy",4,NA,"C","C","25","C25","5","C25.5","0","C25.50","C25.5",0,0,NA,0,0 +"C25.6","25.6 Treatment and coating of metals; machining",3,NA,"C","C","25","C25","6","C25.6",NA,NA,"C25",0,0,0,0,0 +"C25.61","25.61 Treatment and coating of metals",4,NA,"C","C","25","C25","6","C25.6","1","C25.61","C25.6",0,0,NA,0,0 +"C25.62","25.62 Machining",4,NA,"C","C","25","C25","6","C25.6","2","C25.62","C25.6",0,0,NA,0,0 +"C25.7","25.7 Manufacture of cutlery, tools and general hardware",3,NA,"C","C","25","C25","7","C25.7",NA,NA,"C25",0,0,0,0,0 +"C25.71","25.71 Manufacture of cutlery",4,NA,"C","C","25","C25","7","C25.7","1","C25.71","C25.7",0,0,NA,0,0 +"C25.72","25.72 Manufacture of locks and hinges",4,NA,"C","C","25","C25","7","C25.7","2","C25.72","C25.7",0,0,NA,0,0 +"C25.73","25.73 Manufacture of tools",4,NA,"C","C","25","C25","7","C25.7","3","C25.73","C25.7",0,0,NA,0,0 +"C25.9","25.9 Manufacture of other fabricated metal products",3,NA,"C","C","25","C25","9","C25.9",NA,NA,"C25",0,0,0,0,0 +"C25.91","25.91 Manufacture of steel drums and similar containers",4,NA,"C","C","25","C25","9","C25.9","1","C25.91","C25.9",0,0,NA,0,0 +"C25.92","25.92 Manufacture of light metal packaging",4,NA,"C","C","25","C25","9","C25.9","2","C25.92","C25.9",0,0,NA,0,0 +"C25.93","25.93 Manufacture of wire products, chain and springs",4,NA,"C","C","25","C25","9","C25.9","3","C25.93","C25.9",0,0,NA,0,0 +"C25.94","25.94 Manufacture of fasteners and screw machine products",4,NA,"C","C","25","C25","9","C25.9","4","C25.94","C25.9",0,0,NA,0,0 +"C25.99","25.99 Manufacture of other fabricated metal products n.e.c.",4,NA,"C","C","25","C25","9","C25.9","9","C25.99","C25.9",0,0,NA,0,0 +"C26","26 Manufacture of computer, electronic and optical products",2,NA,"C","C","26","C26",NA,NA,NA,NA,"C",0,0,0,0,0 +"C26.1","26.1 Manufacture of electronic components and boards",3,NA,"C","C","26","C26","1","C26.1",NA,NA,"C26",0,0,0,0,0 +"C26.11","26.11 Manufacture of electronic components",4,NA,"C","C","26","C26","1","C26.1","1","C26.11","C26.1",0,0,NA,0,0 +"C26.12","26.12 Manufacture of loaded electronic boards",4,NA,"C","C","26","C26","1","C26.1","2","C26.12","C26.1",0,0,NA,0,0 +"C26.2","26.2 Manufacture of computers and peripheral equipment",3,NA,"C","C","26","C26","2","C26.2",NA,NA,"C26",0,0,0,0,0 +"C26.20","26.20 Manufacture of computers and peripheral equipment",4,NA,"C","C","26","C26","2","C26.2","0","C26.20","C26.2",0,0,NA,0,0 +"C26.3","26.3 Manufacture of communication equipment",3,NA,"C","C","26","C26","3","C26.3",NA,NA,"C26",0,0,0,0,0 +"C26.30","26.30 Manufacture of communication equipment",4,NA,"C","C","26","C26","3","C26.3","0","C26.30","C26.3",0,0,NA,0,0 +"C26.4","26.4 Manufacture of consumer electronics",3,NA,"C","C","26","C26","4","C26.4",NA,NA,"C26",0,0,0,0,0 +"C26.40","26.40 Manufacture of consumer electronics",4,NA,"C","C","26","C26","4","C26.4","0","C26.40","C26.4",0,0,NA,0,0 +"C26.5","26.5 Manufacture of instruments and appliances for measuring, testing and navigation; watches and clocks",3,NA,"C","C","26","C26","5","C26.5",NA,NA,"C26",0,0,0,0,0 +"C26.51","26.51 Manufacture of instruments and appliances for measuring, testing and navigation",4,NA,"C","C","26","C26","5","C26.5","1","C26.51","C26.5",0,0,NA,0,0 +"C26.52","26.52 Manufacture of watches and clocks",4,NA,"C","C","26","C26","5","C26.5","2","C26.52","C26.5",0,0,NA,0,0 +"C26.6","26.6 Manufacture of irradiation, electromedical and electrotherapeutic equipment",3,NA,"C","C","26","C26","6","C26.6",NA,NA,"C26",0,0,0,0,0 +"C26.60","26.60 Manufacture of irradiation, electromedical and electrotherapeutic equipment",4,NA,"C","C","26","C26","6","C26.6","0","C26.60","C26.6",0,0,NA,0,0 +"C26.7","26.7 Manufacture of optical instruments and photographic equipment",3,NA,"C","C","26","C26","7","C26.7",NA,NA,"C26",0,0,0,0,0 +"C26.70","26.70 Manufacture of optical instruments and photographic equipment",4,NA,"C","C","26","C26","7","C26.7","0","C26.70","C26.7",0,0,NA,0,0 +"C26.8","26.8 Manufacture of magnetic and optical media",3,NA,"C","C","26","C26","8","C26.8",NA,NA,"C26",0,0,0,0,0 +"C26.80","26.80 Manufacture of magnetic and optical media",4,NA,"C","C","26","C26","8","C26.8","0","C26.80","C26.8",0,0,NA,0,0 +"C27","27 Manufacture of electrical equipment",2,NA,"C","C","27","C27",NA,NA,NA,NA,"C",0,0,0,0,0 +"C27.1","27.1 Manufacture of electric motors, generators, transformers and electricity distribution and control apparatus",3,NA,"C","C","27","C27","1","C27.1",NA,NA,"C27",0,0,0,0,0 +"C27.11","27.11 Manufacture of electric motors, generators and transformers",4,NA,"C","C","27","C27","1","C27.1","1","C27.11","C27.1",0,0,NA,0,0 +"C27.12","27.12 Manufacture of electricity distribution and control apparatus",4,NA,"C","C","27","C27","1","C27.1","2","C27.12","C27.1",0,0,NA,0,0 +"C27.2","27.2 Manufacture of batteries and accumulators",3,NA,"C","C","27","C27","2","C27.2",NA,NA,"C27",0,0,0,0,0 +"C27.20","27.20 Manufacture of batteries and accumulators",4,NA,"C","C","27","C27","2","C27.2","0","C27.20","C27.2",0,0,NA,0,0 +"C27.3","27.3 Manufacture of wiring and wiring devices",3,NA,"C","C","27","C27","3","C27.3",NA,NA,"C27",0,0,0,0,0 +"C27.31","27.31 Manufacture of fibre optic cables",4,NA,"C","C","27","C27","3","C27.3","1","C27.31","C27.3",0,0,NA,0,0 +"C27.32","27.32 Manufacture of other electronic and electric wires and cables",4,NA,"C","C","27","C27","3","C27.3","2","C27.32","C27.3",0,0,NA,0,0 +"C27.33","27.33 Manufacture of wiring devices",4,NA,"C","C","27","C27","3","C27.3","3","C27.33","C27.3",0,0,NA,0,0 +"C27.4","27.4 Manufacture of electric lighting equipment",3,NA,"C","C","27","C27","4","C27.4",NA,NA,"C27",0,0,0,0,0 +"C27.40","27.40 Manufacture of electric lighting equipment",4,NA,"C","C","27","C27","4","C27.4","0","C27.40","C27.4",0,0,NA,0,0 +"C27.5","27.5 Manufacture of domestic appliances",3,NA,"C","C","27","C27","5","C27.5",NA,NA,"C27",0,0,0,0,0 +"C27.51","27.51 Manufacture of electric domestic appliances",4,NA,"C","C","27","C27","5","C27.5","1","C27.51","C27.5",0,0,NA,0,0 +"C27.52","27.52 Manufacture of non-electric domestic appliances",4,NA,"C","C","27","C27","5","C27.5","2","C27.52","C27.5",0,0,NA,0,0 +"C27.9","27.9 Manufacture of other electrical equipment",3,NA,"C","C","27","C27","9","C27.9",NA,NA,"C27",0,0,0,0,0 +"C27.90","27.90 Manufacture of other electrical equipment",4,NA,"C","C","27","C27","9","C27.9","0","C27.90","C27.9",0,0,NA,0,0 +"C28","28 Manufacture of machinery and equipment n.e.c.",2,NA,"C","C","28","C28",NA,NA,NA,NA,"C",0,0,0,0,0 +"C28.1","28.1 Manufacture of general-purpose machinery",3,NA,"C","C","28","C28","1","C28.1",NA,NA,"C28",0,0,0,0,0 +"C28.11","28.11 Manufacture of engines and turbines, except aircraft, vehicle and cycle engines",4,NA,"C","C","28","C28","1","C28.1","1","C28.11","C28.1",0,0,NA,0,0 +"C28.12","28.12 Manufacture of fluid power equipment",4,NA,"C","C","28","C28","1","C28.1","2","C28.12","C28.1",0,0,NA,0,0 +"C28.13","28.13 Manufacture of other pumps and compressors",4,NA,"C","C","28","C28","1","C28.1","3","C28.13","C28.1",0,0,NA,0,0 +"C28.14","28.14 Manufacture of other taps and valves",4,NA,"C","C","28","C28","1","C28.1","4","C28.14","C28.1",0,0,NA,0,0 +"C28.15","28.15 Manufacture of bearings, gears, gearing and driving elements",4,NA,"C","C","28","C28","1","C28.1","5","C28.15","C28.1",0,0,NA,0,0 +"C28.2","28.2 Manufacture of other general-purpose machinery",3,NA,"C","C","28","C28","2","C28.2",NA,NA,"C28",0,0,0,0,0 +"C28.21","28.21 Manufacture of ovens, furnaces and furnace burners",4,NA,"C","C","28","C28","2","C28.2","1","C28.21","C28.2",0,0,NA,0,0 +"C28.22","28.22 Manufacture of lifting and handling equipment",4,NA,"C","C","28","C28","2","C28.2","2","C28.22","C28.2",0,0,NA,0,0 +"C28.23","28.23 Manufacture of office machinery and equipment (except computers and peripheral equipment)",4,NA,"C","C","28","C28","2","C28.2","3","C28.23","C28.2",0,0,NA,0,0 +"C28.24","28.24 Manufacture of power-driven hand tools",4,NA,"C","C","28","C28","2","C28.2","4","C28.24","C28.2",0,0,NA,0,0 +"C28.25","28.25 Manufacture of non-domestic cooling and ventilation equipment",4,NA,"C","C","28","C28","2","C28.2","5","C28.25","C28.2",0,0,NA,0,0 +"C28.29","28.29 Manufacture of other general-purpose machinery n.e.c.",4,NA,"C","C","28","C28","2","C28.2","9","C28.29","C28.2",0,0,NA,0,0 +"C28.3","28.3 Manufacture of agricultural and forestry machinery",3,NA,"C","C","28","C28","3","C28.3",NA,NA,"C28",0,0,0,0,0 +"C28.30","28.30 Manufacture of agricultural and forestry machinery",4,NA,"C","C","28","C28","3","C28.3","0","C28.30","C28.3",0,0,NA,0,0 +"C28.4","28.4 Manufacture of metal forming machinery and machine tools",3,NA,"C","C","28","C28","4","C28.4",NA,NA,"C28",0,0,0,0,0 +"C28.41","28.41 Manufacture of metal forming machinery",4,NA,"C","C","28","C28","4","C28.4","1","C28.41","C28.4",0,0,NA,0,0 +"C28.49","28.49 Manufacture of other machine tools",4,NA,"C","C","28","C28","4","C28.4","9","C28.49","C28.4",0,0,NA,0,0 +"C28.9","28.9 Manufacture of other special-purpose machinery",3,NA,"C","C","28","C28","9","C28.9",NA,NA,"C28",0,0,0,0,0 +"C28.91","28.91 Manufacture of machinery for metallurgy",4,NA,"C","C","28","C28","9","C28.9","1","C28.91","C28.9",0,0,NA,0,0 +"C28.92","28.92 Manufacture of machinery for mining, quarrying and construction",4,NA,"C","C","28","C28","9","C28.9","2","C28.92","C28.9",0,0,NA,0,0 +"C28.93","28.93 Manufacture of machinery for food, beverage and tobacco processing",4,NA,"C","C","28","C28","9","C28.9","3","C28.93","C28.9",0,0,NA,0,0 +"C28.94","28.94 Manufacture of machinery for textile, apparel and leather production",4,NA,"C","C","28","C28","9","C28.9","4","C28.94","C28.9",0,0,NA,0,0 +"C28.95","28.95 Manufacture of machinery for paper and paperboard production",4,NA,"C","C","28","C28","9","C28.9","5","C28.95","C28.9",0,0,NA,0,0 +"C28.96","28.96 Manufacture of plastics and rubber machinery",4,NA,"C","C","28","C28","9","C28.9","6","C28.96","C28.9",0,0,NA,0,0 +"C28.99","28.99 Manufacture of other special-purpose machinery n.e.c.",4,NA,"C","C","28","C28","9","C28.9","9","C28.99","C28.9",0,0,NA,0,0 +"C29","29 Manufacture of motor vehicles, trailers and semi-trailers",2,NA,"C","C","29","C29",NA,NA,NA,NA,"C",0,0,0,0,0 +"C29.1","29.1 Manufacture of motor vehicles",3,NA,"C","C","29","C29","1","C29.1",NA,NA,"C29",0,0,0,0,0 +"C29.10","29.10 Manufacture of motor vehicles",4,NA,"C","C","29","C29","1","C29.1","0","C29.10","C29.1",0,0,NA,0,0 +"C29.2","29.2 Manufacture of bodies (coachwork) for motor vehicles; manufacture of trailers and semi-trailers",3,NA,"C","C","29","C29","2","C29.2",NA,NA,"C29",0,0,0,0,0 +"C29.20","29.20 Manufacture of bodies (coachwork) for motor vehicles; manufacture of trailers and semi-trailers",4,NA,"C","C","29","C29","2","C29.2","0","C29.20","C29.2",0,0,NA,0,0 +"C29.3","29.3 Manufacture of parts and accessories for motor vehicles",3,NA,"C","C","29","C29","3","C29.3",NA,NA,"C29",0,0,0,0,0 +"C29.31","29.31 Manufacture of electrical and electronic equipment for motor vehicles",4,NA,"C","C","29","C29","3","C29.3","1","C29.31","C29.3",0,0,NA,0,0 +"C29.32","29.32 Manufacture of other parts and accessories for motor vehicles",4,NA,"C","C","29","C29","3","C29.3","2","C29.32","C29.3",0,0,NA,0,0 +"C30","30 Manufacture of other transport equipment",2,NA,"C","C","30","C30",NA,NA,NA,NA,"C",0,0,0,0,0 +"C30.1","30.1 Building of ships and boats",3,NA,"C","C","30","C30","1","C30.1",NA,NA,"C30",0,0,0,0,0 +"C30.11","30.11 Building of ships and floating structures",4,NA,"C","C","30","C30","1","C30.1","1","C30.11","C30.1",0,0,NA,0,0 +"C30.12","30.12 Building of pleasure and sporting boats",4,NA,"C","C","30","C30","1","C30.1","2","C30.12","C30.1",0,0,NA,0,0 +"C30.2","30.2 Manufacture of railway locomotives and rolling stock",3,NA,"C","C","30","C30","2","C30.2",NA,NA,"C30",0,0,0,0,0 +"C30.20","30.20 Manufacture of railway locomotives and rolling stock",4,NA,"C","C","30","C30","2","C30.2","0","C30.20","C30.2",0,0,NA,0,0 +"C30.3","30.3 Manufacture of air and spacecraft and related machinery",3,NA,"C","C","30","C30","3","C30.3",NA,NA,"C30",0,0,0,0,0 +"C30.30","30.30 Manufacture of air and spacecraft and related machinery",4,NA,"C","C","30","C30","3","C30.3","0","C30.30","C30.3",0,0,NA,0,0 +"C30.4","30.4 Manufacture of military fighting vehicles",3,NA,"C","C","30","C30","4","C30.4",NA,NA,"C30",0,0,0,0,0 +"C30.40","30.40 Manufacture of military fighting vehicles",4,NA,"C","C","30","C30","4","C30.4","0","C30.40","C30.4",0,0,NA,0,0 +"C30.9","30.9 Manufacture of transport equipment n.e.c.",3,NA,"C","C","30","C30","9","C30.9",NA,NA,"C30",0,0,0,0,0 +"C30.91","30.91 Manufacture of motorcycles",4,NA,"C","C","30","C30","9","C30.9","1","C30.91","C30.9",0,0,NA,0,0 +"C30.92","30.92 Manufacture of bicycles and invalid carriages",4,NA,"C","C","30","C30","9","C30.9","2","C30.92","C30.9",0,0,NA,0,0 +"C30.99","30.99 Manufacture of other transport equipment n.e.c.",4,NA,"C","C","30","C30","9","C30.9","9","C30.99","C30.9",0,0,NA,0,0 +"C31","31 Manufacture of furniture",2,NA,"C","C","31","C31",NA,NA,NA,NA,"C",0,0,0,0,0 +"C31.0","31.0 Manufacture of furniture",3,NA,"C","C","31","C31","0","C31.0",NA,NA,"C31",0,0,0,0,0 +"C31.01","31.01 Manufacture of office and shop furniture",4,NA,"C","C","31","C31","0","C31.0","1","C31.01","C31.0",0,0,NA,0,0 +"C31.02","31.02 Manufacture of kitchen furniture",4,NA,"C","C","31","C31","0","C31.0","2","C31.02","C31.0",0,0,NA,0,0 +"C31.03","31.03 Manufacture of mattresses",4,NA,"C","C","31","C31","0","C31.0","3","C31.03","C31.0",0,0,NA,0,0 +"C31.09","31.09 Manufacture of other furniture",4,NA,"C","C","31","C31","0","C31.0","9","C31.09","C31.0",0,0,NA,0,0 +"C32","32 Other manufacturing",2,NA,"C","C","32","C32",NA,NA,NA,NA,"C",0,0,0,0,0 +"C32.1","32.1 Manufacture of jewellery, bijouterie and related articles",3,NA,"C","C","32","C32","1","C32.1",NA,NA,"C32",0,0,0,0,0 +"C32.11","32.11 Striking of coins",4,NA,"C","C","32","C32","1","C32.1","1","C32.11","C32.1",0,0,NA,0,0 +"C32.12","32.12 Manufacture of jewellery and related articles",4,NA,"C","C","32","C32","1","C32.1","2","C32.12","C32.1",0,0,NA,0,0 +"C32.13","32.13 Manufacture of imitation jewellery and related articles",4,NA,"C","C","32","C32","1","C32.1","3","C32.13","C32.1",0,0,NA,0,0 +"C32.2","32.2 Manufacture of musical instruments",3,NA,"C","C","32","C32","2","C32.2",NA,NA,"C32",0,0,0,0,0 +"C32.20","32.20 Manufacture of musical instruments",4,NA,"C","C","32","C32","2","C32.2","0","C32.20","C32.2",0,0,NA,0,0 +"C32.3","32.3 Manufacture of sports goods",3,NA,"C","C","32","C32","3","C32.3",NA,NA,"C32",0,0,0,0,0 +"C32.30","32.30 Manufacture of sports goods",4,NA,"C","C","32","C32","3","C32.3","0","C32.30","C32.3",0,0,NA,0,0 +"C32.4","32.4 Manufacture of games and toys",3,NA,"C","C","32","C32","4","C32.4",NA,NA,"C32",0,0,0,0,0 +"C32.40","32.40 Manufacture of games and toys",4,NA,"C","C","32","C32","4","C32.4","0","C32.40","C32.4",0,0,NA,0,0 +"C32.5","32.5 Manufacture of medical and dental instruments and supplies",3,NA,"C","C","32","C32","5","C32.5",NA,NA,"C32",0,0,0,0,0 +"C32.50","32.50 Manufacture of medical and dental instruments and supplies",4,NA,"C","C","32","C32","5","C32.5","0","C32.50","C32.5",0,0,NA,0,0 +"C32.9","32.9 Manufacturing n.e.c.",3,NA,"C","C","32","C32","9","C32.9",NA,NA,"C32",0,0,0,0,0 +"C32.91","32.91 Manufacture of brooms and brushes",4,NA,"C","C","32","C32","9","C32.9","1","C32.91","C32.9",0,0,NA,0,0 +"C32.99","32.99 Other manufacturing n.e.c.",4,NA,"C","C","32","C32","9","C32.9","9","C32.99","C32.9",0,0,NA,0,0 +"C33","33 Repair and installation of machinery and equipment",2,NA,"C","C","33","C33",NA,NA,NA,NA,"C",0,0,0,0,0 +"C33.1","33.1 Repair of fabricated metal products, machinery and equipment",3,NA,"C","C","33","C33","1","C33.1",NA,NA,"C33",0,0,0,0,0 +"C33.11","33.11 Repair of fabricated metal products",4,NA,"C","C","33","C33","1","C33.1","1","C33.11","C33.1",0,0,NA,0,0 +"C33.12","33.12 Repair of machinery",4,NA,"C","C","33","C33","1","C33.1","2","C33.12","C33.1",0,0,NA,0,0 +"C33.13","33.13 Repair of electronic and optical equipment",4,NA,"C","C","33","C33","1","C33.1","3","C33.13","C33.1",0,0,NA,0,0 +"C33.14","33.14 Repair of electrical equipment",4,NA,"C","C","33","C33","1","C33.1","4","C33.14","C33.1",0,0,NA,0,0 +"C33.15","33.15 Repair and maintenance of ships and boats",4,NA,"C","C","33","C33","1","C33.1","5","C33.15","C33.1",0,0,NA,0,0 +"C33.16","33.16 Repair and maintenance of aircraft and spacecraft",4,NA,"C","C","33","C33","1","C33.1","6","C33.16","C33.1",0,0,NA,0,0 +"C33.17","33.17 Repair and maintenance of other transport equipment",4,NA,"C","C","33","C33","1","C33.1","7","C33.17","C33.1",0,0,NA,0,0 +"C33.19","33.19 Repair of other equipment",4,NA,"C","C","33","C33","1","C33.1","9","C33.19","C33.1",0,0,NA,0,0 +"C33.2","33.2 Installation of industrial machinery and equipment",3,NA,"C","C","33","C33","2","C33.2",NA,NA,"C33",0,0,0,0,0 +"C33.20","33.20 Installation of industrial machinery and equipment",4,NA,"C","C","33","C33","2","C33.2","0","C33.20","C33.2",0,0,NA,0,0 +"D35","35 Electricity, gas, steam and air conditioning supply",2,NA,"D","D","35","D35",NA,NA,NA,NA,"D",0,0,0,0,0 +"D35.1","35.1 Electric power generation, transmission and distribution",3,NA,"D","D","35","D35","1","D35.1",NA,NA,"D35",0,0,0,0,0 +"D35.11","35.11 Production of electricity",4,NA,"D","D","35","D35","1","D35.1","1","D35.11","D35.1",0,0,NA,0,0 +"D35.12","35.12 Transmission of electricity",4,NA,"D","D","35","D35","1","D35.1","2","D35.12","D35.1",0,0,NA,0,0 +"D35.13","35.13 Distribution of electricity",4,NA,"D","D","35","D35","1","D35.1","3","D35.13","D35.1",0,0,NA,0,0 +"D35.14","35.14 Trade of electricity",4,NA,"D","D","35","D35","1","D35.1","4","D35.14","D35.1",0,0,NA,0,0 +"D35.2","35.2 Manufacture of gas; distribution of gaseous fuels through mains",3,NA,"D","D","35","D35","2","D35.2",NA,NA,"D35",0,0,0,0,0 +"D35.21","35.21 Manufacture of gas",4,NA,"D","D","35","D35","2","D35.2","1","D35.21","D35.2",0,0,NA,0,0 +"D35.22","35.22 Distribution of gaseous fuels through mains",4,NA,"D","D","35","D35","2","D35.2","2","D35.22","D35.2",0,0,NA,0,0 +"D35.23","35.23 Trade of gas through mains",4,NA,"D","D","35","D35","2","D35.2","3","D35.23","D35.2",0,0,NA,0,0 +"D35.3","35.3 Steam and air conditioning supply",3,NA,"D","D","35","D35","3","D35.3",NA,NA,"D35",0,0,0,0,0 +"D35.30","35.30 Steam and air conditioning supply",4,NA,"D","D","35","D35","3","D35.3","0","D35.30","D35.3",0,0,NA,0,0 +"E36","36 Water collection, treatment and supply",2,NA,"E","E","36","E36",NA,NA,NA,NA,"E",0,0,0,0,0 +"E36.0","36.0 Water collection, treatment and supply",3,NA,"E","E","36","E36","0","E36.0",NA,NA,"E36",0,0,0,0,0 +"E36.00","36.00 Water collection, treatment and supply",4,NA,"E","E","36","E36","0","E36.0","0","E36.00","E36.0",0,0,NA,0,0 +"E37","37 Sewerage",2,NA,"E","E","37","E37",NA,NA,NA,NA,"E",0,0,0,0,0 +"E37.0","37.0 Sewerage",3,NA,"E","E","37","E37","0","E37.0",NA,NA,"E37",0,0,0,0,0 +"E37.00","37.00 Sewerage",4,NA,"E","E","37","E37","0","E37.0","0","E37.00","E37.0",0,0,NA,0,0 +"E38","38 Waste collection, treatment and disposal activities; materials recovery",2,NA,"E","E","38","E38",NA,NA,NA,NA,"E",0,0,0,0,0 +"E38.1","38.1 Waste collection",3,NA,"E","E","38","E38","1","E38.1",NA,NA,"E38",0,0,0,0,0 +"E38.11","38.11 Collection of non-hazardous waste",4,NA,"E","E","38","E38","1","E38.1","1","E38.11","E38.1",0,0,NA,0,0 +"E38.12","38.12 Collection of hazardous waste",4,NA,"E","E","38","E38","1","E38.1","2","E38.12","E38.1",0,0,NA,0,0 +"E38.2","38.2 Waste treatment and disposal",3,NA,"E","E","38","E38","2","E38.2",NA,NA,"E38",0,0,0,0,0 +"E38.21","38.21 Treatment and disposal of non-hazardous waste",4,NA,"E","E","38","E38","2","E38.2","1","E38.21","E38.2",0,0,NA,0,0 +"E38.22","38.22 Treatment and disposal of hazardous waste",4,NA,"E","E","38","E38","2","E38.2","2","E38.22","E38.2",0,0,NA,0,0 +"E38.3","38.3 Materials recovery",3,NA,"E","E","38","E38","3","E38.3",NA,NA,"E38",0,0,0,0,0 +"E38.31","38.31 Dismantling of wrecks",4,NA,"E","E","38","E38","3","E38.3","1","E38.31","E38.3",0,0,NA,0,0 +"E38.32","38.32 Recovery of sorted materials",4,NA,"E","E","38","E38","3","E38.3","2","E38.32","E38.3",0,0,NA,0,0 +"E39","39 Remediation activities and other waste management services",2,NA,"E","E","39","E39",NA,NA,NA,NA,"E",0,0,0,0,0 +"E39.0","39.0 Remediation activities and other waste management services",3,NA,"E","E","39","E39","0","E39.0",NA,NA,"E39",0,0,0,0,0 +"E39.00","39.00 Remediation activities and other waste management services",4,NA,"E","E","39","E39","0","E39.0","0","E39.00","E39.0",0,0,NA,0,0 +"F41","41 Construction of buildings",2,NA,"F","F","41","F41",NA,NA,NA,NA,"F",0,0,0,0,0 +"F41.1","41.1 Development of building projects",3,NA,"F","F","41","F41","1","F41.1",NA,NA,"F41",0,0,0,0,0 +"F41.10","41.10 Development of building projects",4,NA,"F","F","41","F41","1","F41.1","0","F41.10","F41.1",0,0,NA,0,0 +"F41.2","41.2 Construction of residential and non-residential buildings",3,NA,"F","F","41","F41","2","F41.2",NA,NA,"F41",0,0,0,0,0 +"F41.20","41.20 Construction of residential and non-residential buildings",4,NA,"F","F","41","F41","2","F41.2","0","F41.20","F41.2",0,0,NA,0,0 +"F42","42 Civil engineering",2,NA,"F","F","42","F42",NA,NA,NA,NA,"F",0,0,0,0,0 +"F42.1","42.1 Construction of roads and railways",3,NA,"F","F","42","F42","1","F42.1",NA,NA,"F42",0,0,0,0,0 +"F42.11","42.11 Construction of roads and motorways",4,NA,"F","F","42","F42","1","F42.1","1","F42.11","F42.1",0,0,NA,0,0 +"F42.12","42.12 Construction of railways and underground railways",4,NA,"F","F","42","F42","1","F42.1","2","F42.12","F42.1",0,0,NA,0,0 +"F42.13","42.13 Construction of bridges and tunnels",4,NA,"F","F","42","F42","1","F42.1","3","F42.13","F42.1",0,0,NA,0,0 +"F42.2","42.2 Construction of utility projects",3,NA,"F","F","42","F42","2","F42.2",NA,NA,"F42",0,0,0,0,0 +"F42.21","42.21 Construction of utility projects for fluids",4,NA,"F","F","42","F42","2","F42.2","1","F42.21","F42.2",0,0,NA,0,0 +"F42.22","42.22 Construction of utility projects for electricity and telecommunications",4,NA,"F","F","42","F42","2","F42.2","2","F42.22","F42.2",0,0,NA,0,0 +"F42.9","42.9 Construction of other civil engineering projects",3,NA,"F","F","42","F42","9","F42.9",NA,NA,"F42",0,0,0,0,0 +"F42.91","42.91 Construction of water projects",4,NA,"F","F","42","F42","9","F42.9","1","F42.91","F42.9",0,0,NA,0,0 +"F42.99","42.99 Construction of other civil engineering projects n.e.c.",4,NA,"F","F","42","F42","9","F42.9","9","F42.99","F42.9",0,0,NA,0,0 +"F43","43 Specialised construction activities",2,NA,"F","F","43","F43",NA,NA,NA,NA,"F",0,0,0,0,0 +"F43.1","43.1 Demolition and site preparation",3,NA,"F","F","43","F43","1","F43.1",NA,NA,"F43",0,0,0,0,0 +"F43.11","43.11 Demolition",4,NA,"F","F","43","F43","1","F43.1","1","F43.11","F43.1",0,0,NA,0,0 +"F43.12","43.12 Site preparation",4,NA,"F","F","43","F43","1","F43.1","2","F43.12","F43.1",0,0,NA,0,0 +"F43.13","43.13 Test drilling and boring",4,NA,"F","F","43","F43","1","F43.1","3","F43.13","F43.1",0,0,NA,0,0 +"F43.2","43.2 Electrical, plumbing and other construction installation activities",3,NA,"F","F","43","F43","2","F43.2",NA,NA,"F43",0,0,0,0,0 +"F43.21","43.21 Electrical installation",4,NA,"F","F","43","F43","2","F43.2","1","F43.21","F43.2",0,0,NA,0,0 +"F43.22","43.22 Plumbing, heat and air-conditioning installation",4,NA,"F","F","43","F43","2","F43.2","2","F43.22","F43.2",0,0,NA,0,0 +"F43.29","43.29 Other construction installation",4,NA,"F","F","43","F43","2","F43.2","9","F43.29","F43.2",0,0,NA,0,0 +"F43.3","43.3 Building completion and finishing",3,NA,"F","F","43","F43","3","F43.3",NA,NA,"F43",0,0,0,0,0 +"F43.31","43.31 Plastering",4,NA,"F","F","43","F43","3","F43.3","1","F43.31","F43.3",0,0,NA,0,0 +"F43.32","43.32 Joinery installation",4,NA,"F","F","43","F43","3","F43.3","2","F43.32","F43.3",0,0,NA,0,0 +"F43.33","43.33 Floor and wall covering",4,NA,"F","F","43","F43","3","F43.3","3","F43.33","F43.3",0,0,NA,0,0 +"F43.34","43.34 Painting and glazing",4,NA,"F","F","43","F43","3","F43.3","4","F43.34","F43.3",0,0,NA,0,0 +"F43.39","43.39 Other building completion and finishing",4,NA,"F","F","43","F43","3","F43.3","9","F43.39","F43.3",0,0,NA,0,0 +"F43.9","43.9 Other specialised construction activities",3,NA,"F","F","43","F43","9","F43.9",NA,NA,"F43",0,0,0,0,0 +"F43.91","43.91 Roofing activities",4,NA,"F","F","43","F43","9","F43.9","1","F43.91","F43.9",0,0,NA,0,0 +"F43.99","43.99 Other specialised construction activities n.e.c.",4,NA,"F","F","43","F43","9","F43.9","9","F43.99","F43.9",0,0,NA,0,0 +"G45","45 Wholesale and retail trade and repair of motor vehicles and motorcycles",2,NA,"G","G","45","G45",NA,NA,NA,NA,"G",0,0,0,0,0 +"G45.1","45.1 Sale of motor vehicles",3,NA,"G","G","45","G45","1","G45.1",NA,NA,"G45",0,0,0,0,0 +"G45.11","45.11 Sale of cars and light motor vehicles",4,NA,"G","G","45","G45","1","G45.1","1","G45.11","G45.1",0,0,NA,0,0 +"G45.19","45.19 Sale of other motor vehicles",4,NA,"G","G","45","G45","1","G45.1","9","G45.19","G45.1",0,0,NA,0,0 +"G45.2","45.2 Maintenance and repair of motor vehicles",3,NA,"G","G","45","G45","2","G45.2",NA,NA,"G45",0,0,0,0,0 +"G45.20","45.20 Maintenance and repair of motor vehicles",4,NA,"G","G","45","G45","2","G45.2","0","G45.20","G45.2",0,0,NA,0,0 +"G45.3","45.3 Sale of motor vehicle parts and accessories",3,NA,"G","G","45","G45","3","G45.3",NA,NA,"G45",0,0,0,0,0 +"G45.31","45.31 Wholesale trade of motor vehicle parts and accessories",4,NA,"G","G","45","G45","3","G45.3","1","G45.31","G45.3",0,0,NA,0,0 +"G45.32","45.32 Retail trade of motor vehicle parts and accessories",4,NA,"G","G","45","G45","3","G45.3","2","G45.32","G45.3",0,0,NA,0,0 +"G45.4","45.4 Sale, maintenance and repair of motorcycles and related parts and accessories",3,NA,"G","G","45","G45","4","G45.4",NA,NA,"G45",0,0,0,0,0 +"G45.40","45.40 Sale, maintenance and repair of motorcycles and related parts and accessories",4,NA,"G","G","45","G45","4","G45.4","0","G45.40","G45.4",0,0,NA,0,0 +"G46","46 Wholesale trade, except of motor vehicles and motorcycles",2,NA,"G","G","46","G46",NA,NA,NA,NA,"G",0,0,0,0,0 +"G46.1","46.1 Wholesale on a fee or contract basis",3,NA,"G","G","46","G46","1","G46.1",NA,NA,"G46",0,0,0,0,0 +"G46.11","46.11 Agents involved in the sale of agricultural raw materials, live animals, textile raw materials and semi-finished goods",4,NA,"G","G","46","G46","1","G46.1","1","G46.11","G46.1",0,0,NA,0,0 +"G46.12","46.12 Agents involved in the sale of fuels, ores, metals and industrial chemicals",4,NA,"G","G","46","G46","1","G46.1","2","G46.12","G46.1",0,0,NA,0,0 +"G46.13","46.13 Agents involved in the sale of timber and building materials",4,NA,"G","G","46","G46","1","G46.1","3","G46.13","G46.1",0,0,NA,0,0 +"G46.14","46.14 Agents involved in the sale of machinery, industrial equipment, ships and aircraft",4,NA,"G","G","46","G46","1","G46.1","4","G46.14","G46.1",0,0,NA,0,0 +"G46.15","46.15 Agents involved in the sale of furniture, household goods, hardware and ironmongery",4,NA,"G","G","46","G46","1","G46.1","5","G46.15","G46.1",0,0,NA,0,0 +"G46.16","46.16 Agents involved in the sale of textiles, clothing, fur, footwear and leather goods",4,NA,"G","G","46","G46","1","G46.1","6","G46.16","G46.1",0,0,NA,0,0 +"G46.17","46.17 Agents involved in the sale of food, beverages and tobacco",4,NA,"G","G","46","G46","1","G46.1","7","G46.17","G46.1",0,0,NA,0,0 +"G46.18","46.18 Agents specialised in the sale of other particular products",4,NA,"G","G","46","G46","1","G46.1","8","G46.18","G46.1",0,0,NA,0,0 +"G46.19","46.19 Agents involved in the sale of a variety of goods",4,NA,"G","G","46","G46","1","G46.1","9","G46.19","G46.1",0,0,NA,0,0 +"G46.2","46.2 Wholesale of agricultural raw materials and live animals",3,NA,"G","G","46","G46","2","G46.2",NA,NA,"G46",0,0,0,0,0 +"G46.21","46.21 Wholesale of grain, unmanufactured tobacco, seeds and animal feeds",4,NA,"G","G","46","G46","2","G46.2","1","G46.21","G46.2",0,0,NA,0,0 +"G46.22","46.22 Wholesale of flowers and plants",4,NA,"G","G","46","G46","2","G46.2","2","G46.22","G46.2",0,0,NA,0,0 +"G46.23","46.23 Wholesale of live animals",4,NA,"G","G","46","G46","2","G46.2","3","G46.23","G46.2",0,0,NA,0,0 +"G46.24","46.24 Wholesale of hides, skins and leather",4,NA,"G","G","46","G46","2","G46.2","4","G46.24","G46.2",0,0,NA,0,0 +"G46.3","46.3 Wholesale of food, beverages and tobacco",3,NA,"G","G","46","G46","3","G46.3",NA,NA,"G46",0,0,0,0,0 +"G46.31","46.31 Wholesale of fruit and vegetables",4,NA,"G","G","46","G46","3","G46.3","1","G46.31","G46.3",0,0,NA,0,0 +"G46.32","46.32 Wholesale of meat and meat products",4,NA,"G","G","46","G46","3","G46.3","2","G46.32","G46.3",0,0,NA,0,0 +"G46.33","46.33 Wholesale of dairy products, eggs and edible oils and fats",4,NA,"G","G","46","G46","3","G46.3","3","G46.33","G46.3",0,0,NA,0,0 +"G46.34","46.34 Wholesale of beverages",4,NA,"G","G","46","G46","3","G46.3","4","G46.34","G46.3",0,0,NA,0,0 +"G46.35","46.35 Wholesale of tobacco products",4,NA,"G","G","46","G46","3","G46.3","5","G46.35","G46.3",0,0,NA,0,0 +"G46.36","46.36 Wholesale of sugar and chocolate and sugar confectionery",4,NA,"G","G","46","G46","3","G46.3","6","G46.36","G46.3",0,0,NA,0,0 +"G46.37","46.37 Wholesale of coffee, tea, cocoa and spices",4,NA,"G","G","46","G46","3","G46.3","7","G46.37","G46.3",0,0,NA,0,0 +"G46.38","46.38 Wholesale of other food, including fish, crustaceans and molluscs",4,NA,"G","G","46","G46","3","G46.3","8","G46.38","G46.3",0,0,NA,0,0 +"G46.39","46.39 Non-specialised wholesale of food, beverages and tobacco",4,NA,"G","G","46","G46","3","G46.3","9","G46.39","G46.3",0,0,NA,0,0 +"G46.4","46.4 Wholesale of household goods",3,NA,"G","G","46","G46","4","G46.4",NA,NA,"G46",0,0,0,0,0 +"G46.41","46.41 Wholesale of textiles",4,NA,"G","G","46","G46","4","G46.4","1","G46.41","G46.4",0,0,NA,0,0 +"G46.42","46.42 Wholesale of clothing and footwear",4,NA,"G","G","46","G46","4","G46.4","2","G46.42","G46.4",0,0,NA,0,0 +"G46.43","46.43 Wholesale of electrical household appliances",4,NA,"G","G","46","G46","4","G46.4","3","G46.43","G46.4",0,0,NA,0,0 +"G46.44","46.44 Wholesale of china and glassware and cleaning materials",4,NA,"G","G","46","G46","4","G46.4","4","G46.44","G46.4",0,0,NA,0,0 +"G46.45","46.45 Wholesale of perfume and cosmetics",4,NA,"G","G","46","G46","4","G46.4","5","G46.45","G46.4",0,0,NA,0,0 +"G46.46","46.46 Wholesale of pharmaceutical goods",4,NA,"G","G","46","G46","4","G46.4","6","G46.46","G46.4",0,0,NA,0,0 +"G46.47","46.47 Wholesale of furniture, carpets and lighting equipment",4,NA,"G","G","46","G46","4","G46.4","7","G46.47","G46.4",0,0,NA,0,0 +"G46.48","46.48 Wholesale of watches and jewellery",4,NA,"G","G","46","G46","4","G46.4","8","G46.48","G46.4",0,0,NA,0,0 +"G46.49","46.49 Wholesale of other household goods",4,NA,"G","G","46","G46","4","G46.4","9","G46.49","G46.4",0,0,NA,0,0 +"G46.5","46.5 Wholesale of information and communication equipment",3,NA,"G","G","46","G46","5","G46.5",NA,NA,"G46",0,0,0,0,0 +"G46.51","46.51 Wholesale of computers, computer peripheral equipment and software",4,NA,"G","G","46","G46","5","G46.5","1","G46.51","G46.5",0,0,NA,0,0 +"G46.52","46.52 Wholesale of electronic and telecommunications equipment and parts",4,NA,"G","G","46","G46","5","G46.5","2","G46.52","G46.5",0,0,NA,0,0 +"G46.6","46.6 Wholesale of other machinery, equipment and supplies",3,NA,"G","G","46","G46","6","G46.6",NA,NA,"G46",0,0,0,0,0 +"G46.61","46.61 Wholesale of agricultural machinery, equipment and supplies",4,NA,"G","G","46","G46","6","G46.6","1","G46.61","G46.6",0,0,NA,0,0 +"G46.62","46.62 Wholesale of machine tools",4,NA,"G","G","46","G46","6","G46.6","2","G46.62","G46.6",0,0,NA,0,0 +"G46.63","46.63 Wholesale of mining, construction and civil engineering machinery",4,NA,"G","G","46","G46","6","G46.6","3","G46.63","G46.6",0,0,NA,0,0 +"G46.64","46.64 Wholesale of machinery for the textile industry and of sewing and knitting machines",4,NA,"G","G","46","G46","6","G46.6","4","G46.64","G46.6",0,0,NA,0,0 +"G46.65","46.65 Wholesale of office furniture",4,NA,"G","G","46","G46","6","G46.6","5","G46.65","G46.6",0,0,NA,0,0 +"G46.66","46.66 Wholesale of other office machinery and equipment",4,NA,"G","G","46","G46","6","G46.6","6","G46.66","G46.6",0,0,NA,0,0 +"G46.69","46.69 Wholesale of other machinery and equipment",4,NA,"G","G","46","G46","6","G46.6","9","G46.69","G46.6",0,0,NA,0,0 +"G46.7","46.7 Other specialised wholesale",3,NA,"G","G","46","G46","7","G46.7",NA,NA,"G46",0,0,0,0,0 +"G46.71","46.71 Wholesale of solid, liquid and gaseous fuels and related products",4,NA,"G","G","46","G46","7","G46.7","1","G46.71","G46.7",0,0,NA,0,0 +"G46.72","46.72 Wholesale of metals and metal ores",4,NA,"G","G","46","G46","7","G46.7","2","G46.72","G46.7",0,0,NA,0,0 +"G46.73","46.73 Wholesale of wood, construction materials and sanitary equipment",4,NA,"G","G","46","G46","7","G46.7","3","G46.73","G46.7",0,0,NA,0,0 +"G46.74","46.74 Wholesale of hardware, plumbing and heating equipment and supplies",4,NA,"G","G","46","G46","7","G46.7","4","G46.74","G46.7",0,0,NA,0,0 +"G46.75","46.75 Wholesale of chemical products",4,NA,"G","G","46","G46","7","G46.7","5","G46.75","G46.7",0,0,NA,0,0 +"G46.76","46.76 Wholesale of other intermediate products",4,NA,"G","G","46","G46","7","G46.7","6","G46.76","G46.7",0,0,NA,0,0 +"G46.77","46.77 Wholesale of waste and scrap",4,NA,"G","G","46","G46","7","G46.7","7","G46.77","G46.7",0,0,NA,0,0 +"G46.9","46.9 Non-specialised wholesale trade",3,NA,"G","G","46","G46","9","G46.9",NA,NA,"G46",0,0,0,0,0 +"G46.90","46.90 Non-specialised wholesale trade",4,NA,"G","G","46","G46","9","G46.9","0","G46.90","G46.9",0,0,NA,0,0 +"G47","47 Retail trade, except of motor vehicles and motorcycles",2,NA,"G","G","47","G47",NA,NA,NA,NA,"G",0,0,0,0,0 +"G47.1","47.1 Retail sale in non-specialised stores",3,NA,"G","G","47","G47","1","G47.1",NA,NA,"G47",0,0,0,0,0 +"G47.11","47.11 Retail sale in non-specialised stores with food, beverages or tobacco predominating",4,NA,"G","G","47","G47","1","G47.1","1","G47.11","G47.1",0,0,NA,0,0 +"G47.19","47.19 Other retail sale in non-specialised stores",4,NA,"G","G","47","G47","1","G47.1","9","G47.19","G47.1",0,0,NA,0,0 +"G47.2","47.2 Retail sale of food, beverages and tobacco in specialised stores",3,NA,"G","G","47","G47","2","G47.2",NA,NA,"G47",0,0,0,0,0 +"G47.21","47.21 Retail sale of fruit and vegetables in specialised stores",4,NA,"G","G","47","G47","2","G47.2","1","G47.21","G47.2",0,0,NA,0,0 +"G47.22","47.22 Retail sale of meat and meat products in specialised stores",4,NA,"G","G","47","G47","2","G47.2","2","G47.22","G47.2",0,0,NA,0,0 +"G47.23","47.23 Retail sale of fish, crustaceans and molluscs in specialised stores",4,NA,"G","G","47","G47","2","G47.2","3","G47.23","G47.2",0,0,NA,0,0 +"G47.24","47.24 Retail sale of bread, cakes, flour confectionery and sugar confectionery in specialised stores",4,NA,"G","G","47","G47","2","G47.2","4","G47.24","G47.2",0,0,NA,0,0 +"G47.25","47.25 Retail sale of beverages in specialised stores",4,NA,"G","G","47","G47","2","G47.2","5","G47.25","G47.2",0,0,NA,0,0 +"G47.26","47.26 Retail sale of tobacco products in specialised stores",4,NA,"G","G","47","G47","2","G47.2","6","G47.26","G47.2",0,0,NA,0,0 +"G47.29","47.29 Other retail sale of food in specialised stores",4,NA,"G","G","47","G47","2","G47.2","9","G47.29","G47.2",0,0,NA,0,0 +"G47.3","47.3 Retail sale of automotive fuel in specialised stores",3,NA,"G","G","47","G47","3","G47.3",NA,NA,"G47",0,0,0,0,0 +"G47.30","47.30 Retail sale of automotive fuel in specialised stores",4,NA,"G","G","47","G47","3","G47.3","0","G47.30","G47.3",0,0,NA,0,0 +"G47.4","47.4 Retail sale of information and communication equipment in specialised stores",3,NA,"G","G","47","G47","4","G47.4",NA,NA,"G47",0,0,0,0,0 +"G47.41","47.41 Retail sale of computers, peripheral units and software in specialised stores",4,NA,"G","G","47","G47","4","G47.4","1","G47.41","G47.4",0,0,NA,0,0 +"G47.42","47.42 Retail sale of telecommunications equipment in specialised stores",4,NA,"G","G","47","G47","4","G47.4","2","G47.42","G47.4",0,0,NA,0,0 +"G47.43","47.43 Retail sale of audio and video equipment in specialised stores",4,NA,"G","G","47","G47","4","G47.4","3","G47.43","G47.4",0,0,NA,0,0 +"G47.5","47.5 Retail sale of other household equipment in specialised stores",3,NA,"G","G","47","G47","5","G47.5",NA,NA,"G47",0,0,0,0,0 +"G47.51","47.51 Retail sale of textiles in specialised stores",4,NA,"G","G","47","G47","5","G47.5","1","G47.51","G47.5",0,0,NA,0,0 +"G47.52","47.52 Retail sale of hardware, paints and glass in specialised stores",4,NA,"G","G","47","G47","5","G47.5","2","G47.52","G47.5",0,0,NA,0,0 +"G47.53","47.53 Retail sale of carpets, rugs, wall and floor coverings in specialised stores",4,NA,"G","G","47","G47","5","G47.5","3","G47.53","G47.5",0,0,NA,0,0 +"G47.54","47.54 Retail sale of electrical household appliances in specialised stores",4,NA,"G","G","47","G47","5","G47.5","4","G47.54","G47.5",0,0,NA,0,0 +"G47.59","47.59 Retail sale of furniture, lighting equipment and other household articles in specialised stores",4,NA,"G","G","47","G47","5","G47.5","9","G47.59","G47.5",0,0,NA,0,0 +"G47.6","47.6 Retail sale of cultural and recreation goods in specialised stores",3,NA,"G","G","47","G47","6","G47.6",NA,NA,"G47",0,0,0,0,0 +"G47.61","47.61 Retail sale of books in specialised stores",4,NA,"G","G","47","G47","6","G47.6","1","G47.61","G47.6",0,0,NA,0,0 +"G47.62","47.62 Retail sale of newspapers and stationery in specialised stores",4,NA,"G","G","47","G47","6","G47.6","2","G47.62","G47.6",0,0,NA,0,0 +"G47.63","47.63 Retail sale of music and video recordings in specialised stores",4,NA,"G","G","47","G47","6","G47.6","3","G47.63","G47.6",0,0,NA,0,0 +"G47.64","47.64 Retail sale of sporting equipment in specialised stores",4,NA,"G","G","47","G47","6","G47.6","4","G47.64","G47.6",0,0,NA,0,0 +"G47.65","47.65 Retail sale of games and toys in specialised stores",4,NA,"G","G","47","G47","6","G47.6","5","G47.65","G47.6",0,0,NA,0,0 +"G47.7","47.7 Retail sale of other goods in specialised stores",3,NA,"G","G","47","G47","7","G47.7",NA,NA,"G47",0,0,0,0,0 +"G47.71","47.71 Retail sale of clothing in specialised stores",4,NA,"G","G","47","G47","7","G47.7","1","G47.71","G47.7",0,0,NA,0,0 +"G47.72","47.72 Retail sale of footwear and leather goods in specialised stores",4,NA,"G","G","47","G47","7","G47.7","2","G47.72","G47.7",0,0,NA,0,0 +"G47.73","47.73 Dispensing chemist in specialised stores",4,NA,"G","G","47","G47","7","G47.7","3","G47.73","G47.7",0,0,NA,0,0 +"G47.74","47.74 Retail sale of medical and orthopaedic goods in specialised stores",4,NA,"G","G","47","G47","7","G47.7","4","G47.74","G47.7",0,0,NA,0,0 +"G47.75","47.75 Retail sale of cosmetic and toilet articles in specialised stores",4,NA,"G","G","47","G47","7","G47.7","5","G47.75","G47.7",0,0,NA,0,0 +"G47.76","47.76 Retail sale of flowers, plants, seeds, fertilisers, pet animals and pet food in specialised stores",4,NA,"G","G","47","G47","7","G47.7","6","G47.76","G47.7",0,0,NA,0,0 +"G47.77","47.77 Retail sale of watches and jewellery in specialised stores",4,NA,"G","G","47","G47","7","G47.7","7","G47.77","G47.7",0,0,NA,0,0 +"G47.78","47.78 Other retail sale of new goods in specialised stores",4,NA,"G","G","47","G47","7","G47.7","8","G47.78","G47.7",0,0,NA,0,0 +"G47.79","47.79 Retail sale of second-hand goods in stores",4,NA,"G","G","47","G47","7","G47.7","9","G47.79","G47.7",0,0,NA,0,0 +"G47.8","47.8 Retail sale via stalls and markets",3,NA,"G","G","47","G47","8","G47.8",NA,NA,"G47",0,0,0,0,0 +"G47.81","47.81 Retail sale via stalls and markets of food, beverages and tobacco products",4,NA,"G","G","47","G47","8","G47.8","1","G47.81","G47.8",0,0,NA,0,0 +"G47.82","47.82 Retail sale via stalls and markets of textiles, clothing and footwear",4,NA,"G","G","47","G47","8","G47.8","2","G47.82","G47.8",0,0,NA,0,0 +"G47.89","47.89 Retail sale via stalls and markets of other goods",4,NA,"G","G","47","G47","8","G47.8","9","G47.89","G47.8",0,0,NA,0,0 +"G47.9","47.9 Retail trade not in stores, stalls or markets",3,NA,"G","G","47","G47","9","G47.9",NA,NA,"G47",0,0,0,0,0 +"G47.91","47.91 Retail sale via mail order houses or via Internet",4,NA,"G","G","47","G47","9","G47.9","1","G47.91","G47.9",0,0,NA,0,0 +"G47.99","47.99 Other retail sale not in stores, stalls or markets",4,NA,"G","G","47","G47","9","G47.9","9","G47.99","G47.9",0,0,NA,0,0 +"H49","49 Land transport and transport via pipelines",2,NA,"H","H","49","H49",NA,NA,NA,NA,"H",0,0,0,0,0 +"H49.1","49.1 Passenger rail transport, interurban",3,NA,"H","H","49","H49","1","H49.1",NA,NA,"H49",0,0,0,0,0 +"H49.10","49.10 Passenger rail transport, interurban",4,NA,"H","H","49","H49","1","H49.1","0","H49.10","H49.1",0,0,NA,0,0 +"H49.2","49.2 Freight rail transport",3,NA,"H","H","49","H49","2","H49.2",NA,NA,"H49",0,0,0,0,0 +"H49.20","49.20 Freight rail transport",4,NA,"H","H","49","H49","2","H49.2","0","H49.20","H49.2",0,0,NA,0,0 +"H49.3","49.3 Other passenger land transport",3,NA,"H","H","49","H49","3","H49.3",NA,NA,"H49",0,0,0,0,0 +"H49.31","49.31 Urban and suburban passenger land transport",4,NA,"H","H","49","H49","3","H49.3","1","H49.31","H49.3",0,0,NA,0,0 +"H49.32","49.32 Taxi operation",4,NA,"H","H","49","H49","3","H49.3","2","H49.32","H49.3",0,0,NA,0,0 +"H49.39","49.39 Other passenger land transport n.e.c.",4,NA,"H","H","49","H49","3","H49.3","9","H49.39","H49.3",0,0,NA,0,0 +"H49.4","49.4 Freight transport by road and removal services",3,NA,"H","H","49","H49","4","H49.4",NA,NA,"H49",0,0,0,0,0 +"H49.41","49.41 Freight transport by road",4,NA,"H","H","49","H49","4","H49.4","1","H49.41","H49.4",0,0,NA,0,0 +"H49.42","49.42 Removal services",4,NA,"H","H","49","H49","4","H49.4","2","H49.42","H49.4",0,0,NA,0,0 +"H49.5","49.5 Transport via pipeline",3,NA,"H","H","49","H49","5","H49.5",NA,NA,"H49",0,0,0,0,0 +"H49.50","49.50 Transport via pipeline",4,NA,"H","H","49","H49","5","H49.5","0","H49.50","H49.5",0,0,NA,0,0 +"H50","50 Water transport",2,NA,"H","H","50","H50",NA,NA,NA,NA,"H",0,0,0,0,0 +"H50.1","50.1 Sea and coastal passenger water transport",3,NA,"H","H","50","H50","1","H50.1",NA,NA,"H50",0,0,0,0,0 +"H50.10","50.10 Sea and coastal passenger water transport",4,NA,"H","H","50","H50","1","H50.1","0","H50.10","H50.1",0,0,NA,0,0 +"H50.2","50.2 Sea and coastal freight water transport",3,NA,"H","H","50","H50","2","H50.2",NA,NA,"H50",0,0,0,0,0 +"H50.20","50.20 Sea and coastal freight water transport",4,NA,"H","H","50","H50","2","H50.2","0","H50.20","H50.2",0,0,NA,0,0 +"H50.3","50.3 Inland passenger water transport",3,NA,"H","H","50","H50","3","H50.3",NA,NA,"H50",0,0,0,0,0 +"H50.30","50.30 Inland passenger water transport",4,NA,"H","H","50","H50","3","H50.3","0","H50.30","H50.3",0,0,NA,0,0 +"H50.4","50.4 Inland freight water transport",3,NA,"H","H","50","H50","4","H50.4",NA,NA,"H50",0,0,0,0,0 +"H50.40","50.40 Inland freight water transport",4,NA,"H","H","50","H50","4","H50.4","0","H50.40","H50.4",0,0,NA,0,0 +"H51","51 Air transport",2,NA,"H","H","51","H51",NA,NA,NA,NA,"H",0,0,0,0,0 +"H51.1","51.1 Passenger air transport",3,NA,"H","H","51","H51","1","H51.1",NA,NA,"H51",0,0,0,0,0 +"H51.10","51.10 Passenger air transport",4,NA,"H","H","51","H51","1","H51.1","0","H51.10","H51.1",0,0,NA,0,0 +"H51.2","51.2 Freight air transport and space transport",3,NA,"H","H","51","H51","2","H51.2",NA,NA,"H51",0,0,0,0,0 +"H51.21","51.21 Freight air transport",4,NA,"H","H","51","H51","2","H51.2","1","H51.21","H51.2",0,0,NA,0,0 +"H51.22","51.22 Space transport",4,NA,"H","H","51","H51","2","H51.2","2","H51.22","H51.2",0,0,NA,0,0 +"H52","52 Warehousing and support activities for transportation",2,NA,"H","H","52","H52",NA,NA,NA,NA,"H",0,0,0,0,0 +"H52.1","52.1 Warehousing and storage",3,NA,"H","H","52","H52","1","H52.1",NA,NA,"H52",0,0,0,0,0 +"H52.10","52.10 Warehousing and storage",4,NA,"H","H","52","H52","1","H52.1","0","H52.10","H52.1",0,0,NA,0,0 +"H52.2","52.2 Support activities for transportation",3,NA,"H","H","52","H52","2","H52.2",NA,NA,"H52",0,0,0,0,0 +"H52.21","52.21 Service activities incidental to land transportation",4,NA,"H","H","52","H52","2","H52.2","1","H52.21","H52.2",0,0,NA,0,0 +"H52.22","52.22 Service activities incidental to water transportation",4,NA,"H","H","52","H52","2","H52.2","2","H52.22","H52.2",0,0,NA,0,0 +"H52.23","52.23 Service activities incidental to air transportation",4,NA,"H","H","52","H52","2","H52.2","3","H52.23","H52.2",0,0,NA,0,0 +"H52.24","52.24 Cargo handling",4,NA,"H","H","52","H52","2","H52.2","4","H52.24","H52.2",0,0,NA,0,0 +"H52.29","52.29 Other transportation support activities",4,NA,"H","H","52","H52","2","H52.2","9","H52.29","H52.2",0,0,NA,0,0 +"H53","53 Postal and courier activities",2,NA,"H","H","53","H53",NA,NA,NA,NA,"H",0,0,0,0,0 +"H53.1","53.1 Postal activities under universal service obligation",3,NA,"H","H","53","H53","1","H53.1",NA,NA,"H53",0,0,0,0,0 +"H53.10","53.10 Postal activities under universal service obligation",4,NA,"H","H","53","H53","1","H53.1","0","H53.10","H53.1",0,0,NA,0,0 +"H53.2","53.2 Other postal and courier activities",3,NA,"H","H","53","H53","2","H53.2",NA,NA,"H53",0,0,0,0,0 +"H53.20","53.20 Other postal and courier activities",4,NA,"H","H","53","H53","2","H53.2","0","H53.20","H53.2",0,0,NA,0,0 +"I55","55 Accommodation",2,NA,"I","I","55","I55",NA,NA,NA,NA,"I",0,0,0,0,0 +"I55.1","55.1 Hotels and similar accommodation",3,NA,"I","I","55","I55","1","I55.1",NA,NA,"I55",0,0,0,0,0 +"I55.10","55.10 Hotels and similar accommodation",4,NA,"I","I","55","I55","1","I55.1","0","I55.10","I55.1",0,0,NA,0,0 +"I55.2","55.2 Holiday and other short-stay accommodation",3,NA,"I","I","55","I55","2","I55.2",NA,NA,"I55",0,0,0,0,0 +"I55.20","55.20 Holiday and other short-stay accommodation",4,NA,"I","I","55","I55","2","I55.2","0","I55.20","I55.2",0,0,NA,0,0 +"I55.3","55.3 Camping grounds, recreational vehicle parks and trailer parks",3,NA,"I","I","55","I55","3","I55.3",NA,NA,"I55",0,0,0,0,0 +"I55.30","55.30 Camping grounds, recreational vehicle parks and trailer parks",4,NA,"I","I","55","I55","3","I55.3","0","I55.30","I55.3",0,0,NA,0,0 +"I55.9","55.9 Other accommodation",3,NA,"I","I","55","I55","9","I55.9",NA,NA,"I55",0,0,0,0,0 +"I55.90","55.90 Other accommodation",4,NA,"I","I","55","I55","9","I55.9","0","I55.90","I55.9",0,0,NA,0,0 +"I56","56 Food and beverage service activities",2,NA,"I","I","56","I56",NA,NA,NA,NA,"I",0,0,0,0,0 +"I56.1","56.1 Restaurants and mobile food service activities",3,NA,"I","I","56","I56","1","I56.1",NA,NA,"I56",0,0,0,0,0 +"I56.10","56.10 Restaurants and mobile food service activities",4,NA,"I","I","56","I56","1","I56.1","0","I56.10","I56.1",0,0,NA,0,0 +"I56.2","56.2 Event catering and other food service activities",3,NA,"I","I","56","I56","2","I56.2",NA,NA,"I56",0,0,0,0,0 +"I56.21","56.21 Event catering activities",4,NA,"I","I","56","I56","2","I56.2","1","I56.21","I56.2",0,0,NA,0,0 +"I56.29","56.29 Other food service activities",4,NA,"I","I","56","I56","2","I56.2","9","I56.29","I56.2",0,0,NA,0,0 +"I56.3","56.3 Beverage serving activities",3,NA,"I","I","56","I56","3","I56.3",NA,NA,"I56",0,0,0,0,0 +"I56.30","56.30 Beverage serving activities",4,NA,"I","I","56","I56","3","I56.3","0","I56.30","I56.3",0,0,NA,0,0 +"J58","58 Publishing activities",2,NA,"J","J","58","J58",NA,NA,NA,NA,"J",0,0,0,0,0 +"J58.1","58.1 Publishing of books, periodicals and other publishing activities",3,NA,"J","J","58","J58","1","J58.1",NA,NA,"J58",0,0,0,0,0 +"J58.11","58.11 Book publishing",4,NA,"J","J","58","J58","1","J58.1","1","J58.11","J58.1",0,0,NA,0,0 +"J58.12","58.12 Publishing of directories and mailing lists",4,NA,"J","J","58","J58","1","J58.1","2","J58.12","J58.1",0,0,NA,0,0 +"J58.13","58.13 Publishing of newspapers",4,NA,"J","J","58","J58","1","J58.1","3","J58.13","J58.1",0,0,NA,0,0 +"J58.14","58.14 Publishing of journals and periodicals",4,NA,"J","J","58","J58","1","J58.1","4","J58.14","J58.1",0,0,NA,0,0 +"J58.19","58.19 Other publishing activities",4,NA,"J","J","58","J58","1","J58.1","9","J58.19","J58.1",0,0,NA,0,0 +"J58.2","58.2 Software publishing",3,NA,"J","J","58","J58","2","J58.2",NA,NA,"J58",0,0,0,0,0 +"J58.21","58.21 Publishing of computer games",4,NA,"J","J","58","J58","2","J58.2","1","J58.21","J58.2",0,0,NA,0,0 +"J58.29","58.29 Other software publishing",4,NA,"J","J","58","J58","2","J58.2","9","J58.29","J58.2",0,0,NA,0,0 +"J59","59 Motion picture, video and television programme production, sound recording and music publishing activities",2,NA,"J","J","59","J59",NA,NA,NA,NA,"J",0,0,0,0,0 +"J59.1","59.1 Motion picture, video and television programme activities",3,NA,"J","J","59","J59","1","J59.1",NA,NA,"J59",0,0,0,0,0 +"J59.11","59.11 Motion picture, video and television programme production activities",4,NA,"J","J","59","J59","1","J59.1","1","J59.11","J59.1",0,0,NA,0,0 +"J59.12","59.12 Motion picture, video and television programme post-production activities",4,NA,"J","J","59","J59","1","J59.1","2","J59.12","J59.1",0,0,NA,0,0 +"J59.13","59.13 Motion picture, video and television programme distribution activities",4,NA,"J","J","59","J59","1","J59.1","3","J59.13","J59.1",0,0,NA,0,0 +"J59.14","59.14 Motion picture projection activities",4,NA,"J","J","59","J59","1","J59.1","4","J59.14","J59.1",0,0,NA,0,0 +"J59.2","59.2 Sound recording and music publishing activities",3,NA,"J","J","59","J59","2","J59.2",NA,NA,"J59",0,0,0,0,0 +"J59.20","59.20 Sound recording and music publishing activities",4,NA,"J","J","59","J59","2","J59.2","0","J59.20","J59.2",0,0,NA,0,0 +"J60","60 Programming and broadcasting activities",2,NA,"J","J","60","J60",NA,NA,NA,NA,"J",0,0,0,0,0 +"J60.1","60.1 Radio broadcasting",3,NA,"J","J","60","J60","1","J60.1",NA,NA,"J60",0,0,0,0,0 +"J60.10","60.10 Radio broadcasting",4,NA,"J","J","60","J60","1","J60.1","0","J60.10","J60.1",0,0,NA,0,0 +"J60.2","60.2 Television programming and broadcasting activities",3,NA,"J","J","60","J60","2","J60.2",NA,NA,"J60",0,0,0,0,0 +"J60.20","60.20 Television programming and broadcasting activities",4,NA,"J","J","60","J60","2","J60.2","0","J60.20","J60.2",0,0,NA,0,0 +"J61","61 Telecommunications",2,NA,"J","J","61","J61",NA,NA,NA,NA,"J",0,0,0,0,0 +"J61.1","61.1 Wired telecommunications activities",3,NA,"J","J","61","J61","1","J61.1",NA,NA,"J61",0,0,0,0,0 +"J61.10","61.10 Wired telecommunications activities",4,NA,"J","J","61","J61","1","J61.1","0","J61.10","J61.1",0,0,NA,0,0 +"J61.2","61.2 Wireless telecommunications activities",3,NA,"J","J","61","J61","2","J61.2",NA,NA,"J61",0,0,0,0,0 +"J61.20","61.20 Wireless telecommunications activities",4,NA,"J","J","61","J61","2","J61.2","0","J61.20","J61.2",0,0,NA,0,0 +"J61.3","61.3 Satellite telecommunications activities",3,NA,"J","J","61","J61","3","J61.3",NA,NA,"J61",0,0,0,0,0 +"J61.30","61.30 Satellite telecommunications activities",4,NA,"J","J","61","J61","3","J61.3","0","J61.30","J61.3",0,0,NA,0,0 +"J61.9","61.9 Other telecommunications activities",3,NA,"J","J","61","J61","9","J61.9",NA,NA,"J61",0,0,0,0,0 +"J61.90","61.90 Other telecommunications activities",4,NA,"J","J","61","J61","9","J61.9","0","J61.90","J61.9",0,0,NA,0,0 +"J62","62 Computer programming, consultancy and related activities",2,NA,"J","J","62","J62",NA,NA,NA,NA,"J",0,0,0,0,0 +"J62.0","62.0 Computer programming, consultancy and related activities",3,NA,"J","J","62","J62","0","J62.0",NA,NA,"J62",0,0,0,0,0 +"J62.01","62.01 Computer programming activities",4,NA,"J","J","62","J62","0","J62.0","1","J62.01","J62.0",0,0,NA,0,0 +"J62.02","62.02 Computer consultancy activities",4,NA,"J","J","62","J62","0","J62.0","2","J62.02","J62.0",0,0,NA,0,0 +"J62.03","62.03 Computer facilities management activities",4,NA,"J","J","62","J62","0","J62.0","3","J62.03","J62.0",0,0,NA,0,0 +"J62.09","62.09 Other information technology and computer service activities",4,NA,"J","J","62","J62","0","J62.0","9","J62.09","J62.0",0,0,NA,0,0 +"J63","63 Information service activities",2,NA,"J","J","63","J63",NA,NA,NA,NA,"J",0,0,0,0,0 +"J63.1","63.1 Data processing, hosting and related activities; web portals",3,NA,"J","J","63","J63","1","J63.1",NA,NA,"J63",0,0,0,0,0 +"J63.11","63.11 Data processing, hosting and related activities",4,NA,"J","J","63","J63","1","J63.1","1","J63.11","J63.1",0,0,NA,0,0 +"J63.12","63.12 Web portals",4,NA,"J","J","63","J63","1","J63.1","2","J63.12","J63.1",0,0,NA,0,0 +"J63.9","63.9 Other information service activities",3,NA,"J","J","63","J63","9","J63.9",NA,NA,"J63",0,0,0,0,0 +"J63.91","63.91 News agency activities",4,NA,"J","J","63","J63","9","J63.9","1","J63.91","J63.9",0,0,NA,0,0 +"J63.99","63.99 Other information service activities n.e.c.",4,NA,"J","J","63","J63","9","J63.9","9","J63.99","J63.9",0,0,NA,0,0 +"K64","64 Financial service activities, except insurance and pension funding",2,NA,"K","K","64","K64",NA,NA,NA,NA,"K",0,0,0,0,0 +"K64.1","64.1 Monetary intermediation",3,NA,"K","K","64","K64","1","K64.1",NA,NA,"K64",0,0,0,0,0 +"K64.11","64.11 Central banking",4,NA,"K","K","64","K64","1","K64.1","1","K64.11","K64.1",0,0,NA,0,0 +"K64.19","64.19 Other monetary intermediation",4,NA,"K","K","64","K64","1","K64.1","9","K64.19","K64.1",0,0,NA,0,0 +"K64.2","64.2 Activities of holding companies",3,NA,"K","K","64","K64","2","K64.2",NA,NA,"K64",0,0,0,0,0 +"K64.20","64.20 Activities of holding companies",4,NA,"K","K","64","K64","2","K64.2","0","K64.20","K64.2",0,0,NA,0,0 +"K64.3","64.3 Trusts, funds and similar financial entities",3,NA,"K","K","64","K64","3","K64.3",NA,NA,"K64",0,0,0,0,0 +"K64.30","64.30 Trusts, funds and similar financial entities",4,NA,"K","K","64","K64","3","K64.3","0","K64.30","K64.3",0,0,NA,0,0 +"K64.9","64.9 Other financial service activities, except insurance and pension funding",3,NA,"K","K","64","K64","9","K64.9",NA,NA,"K64",0,0,0,0,0 +"K64.91","64.91 Financial leasing",4,NA,"K","K","64","K64","9","K64.9","1","K64.91","K64.9",0,0,NA,0,0 +"K64.92","64.92 Other credit granting",4,NA,"K","K","64","K64","9","K64.9","2","K64.92","K64.9",0,0,NA,0,0 +"K64.99","64.99 Other financial service activities, except insurance and pension funding n.e.c.",4,NA,"K","K","64","K64","9","K64.9","9","K64.99","K64.9",0,0,NA,0,0 +"K65","65 Insurance, reinsurance and pension funding, except compulsory social security",2,NA,"K","K","65","K65",NA,NA,NA,NA,"K",0,0,0,0,0 +"K65.1","65.1 Insurance",3,NA,"K","K","65","K65","1","K65.1",NA,NA,"K65",0,0,0,0,0 +"K65.11","65.11 Life insurance",4,NA,"K","K","65","K65","1","K65.1","1","K65.11","K65.1",0,0,NA,0,0 +"K65.12","65.12 Non-life insurance",4,NA,"K","K","65","K65","1","K65.1","2","K65.12","K65.1",0,0,NA,0,0 +"K65.2","65.2 Reinsurance",3,NA,"K","K","65","K65","2","K65.2",NA,NA,"K65",0,0,0,0,0 +"K65.20","65.20 Reinsurance",4,NA,"K","K","65","K65","2","K65.2","0","K65.20","K65.2",0,0,NA,0,0 +"K65.3","65.3 Pension funding",3,NA,"K","K","65","K65","3","K65.3",NA,NA,"K65",0,0,0,0,0 +"K65.30","65.30 Pension funding",4,NA,"K","K","65","K65","3","K65.3","0","K65.30","K65.3",0,0,NA,0,0 +"K66","66 Activities auxiliary to financial services and insurance activities",2,NA,"K","K","66","K66",NA,NA,NA,NA,"K",0,0,0,0,0 +"K66.1","66.1 Activities auxiliary to financial services, except insurance and pension funding",3,NA,"K","K","66","K66","1","K66.1",NA,NA,"K66",0,0,0,0,0 +"K66.11","66.11 Administration of financial markets",4,NA,"K","K","66","K66","1","K66.1","1","K66.11","K66.1",0,0,NA,0,0 +"K66.12","66.12 Security and commodity contracts brokerage",4,NA,"K","K","66","K66","1","K66.1","2","K66.12","K66.1",0,0,NA,0,0 +"K66.19","66.19 Other activities auxiliary to financial services, except insurance and pension funding",4,NA,"K","K","66","K66","1","K66.1","9","K66.19","K66.1",0,0,NA,0,0 +"K66.2","66.2 Activities auxiliary to insurance and pension funding",3,NA,"K","K","66","K66","2","K66.2",NA,NA,"K66",0,0,0,0,0 +"K66.21","66.21 Risk and damage evaluation",4,NA,"K","K","66","K66","2","K66.2","1","K66.21","K66.2",0,0,NA,0,0 +"K66.22","66.22 Activities of insurance agents and brokers",4,NA,"K","K","66","K66","2","K66.2","2","K66.22","K66.2",0,0,NA,0,0 +"K66.29","66.29 Other activities auxiliary to insurance and pension funding",4,NA,"K","K","66","K66","2","K66.2","9","K66.29","K66.2",0,0,NA,0,0 +"K66.3","66.3 Fund management activities",3,NA,"K","K","66","K66","3","K66.3",NA,NA,"K66",0,0,0,0,0 +"K66.30","66.30 Fund management activities",4,NA,"K","K","66","K66","3","K66.3","0","K66.30","K66.3",0,0,NA,0,0 +"L68","68 Real estate activities",2,NA,"L","L","68","L68",NA,NA,NA,NA,"L",0,0,0,0,0 +"L68.1","68.1 Buying and selling of own real estate",3,NA,"L","L","68","L68","1","L68.1",NA,NA,"L68",0,0,0,0,0 +"L68.10","68.10 Buying and selling of own real estate",4,NA,"L","L","68","L68","1","L68.1","0","L68.10","L68.1",0,0,NA,0,0 +"L68.2","68.2 Rental and operating of own or leased real estate",3,NA,"L","L","68","L68","2","L68.2",NA,NA,"L68",0,0,0,0,0 +"L68.20","68.20 Rental and operating of own or leased real estate",4,NA,"L","L","68","L68","2","L68.2","0","L68.20","L68.2",0,0,NA,0,0 +"L68.3","68.3 Real estate activities on a fee or contract basis",3,NA,"L","L","68","L68","3","L68.3",NA,NA,"L68",0,0,0,0,0 +"L68.31","68.31 Real estate agencies",4,NA,"L","L","68","L68","3","L68.3","1","L68.31","L68.3",0,0,NA,0,0 +"L68.32","68.32 Management of real estate on a fee or contract basis",4,NA,"L","L","68","L68","3","L68.3","2","L68.32","L68.3",0,0,NA,0,0 +"M69","69 Legal and accounting activities",2,NA,"M","M","69","M69",NA,NA,NA,NA,"M",0,0,0,0,0 +"M69.1","69.1 Legal activities",3,NA,"M","M","69","M69","1","M69.1",NA,NA,"M69",0,0,0,0,0 +"M69.10","69.10 Legal activities",4,NA,"M","M","69","M69","1","M69.1","0","M69.10","M69.1",0,0,NA,0,0 +"M69.2","69.2 Accounting, bookkeeping and auditing activities; tax consultancy",3,NA,"M","M","69","M69","2","M69.2",NA,NA,"M69",0,0,0,0,0 +"M69.20","69.20 Accounting, bookkeeping and auditing activities; tax consultancy",4,NA,"M","M","69","M69","2","M69.2","0","M69.20","M69.2",0,0,NA,0,0 +"M70","70 Activities of head offices; management consultancy activities",2,NA,"M","M","70","M70",NA,NA,NA,NA,"M",0,0,0,0,0 +"M70.1","70.1 Activities of head offices",3,NA,"M","M","70","M70","1","M70.1",NA,NA,"M70",0,0,0,0,0 +"M70.10","70.10 Activities of head offices",4,NA,"M","M","70","M70","1","M70.1","0","M70.10","M70.1",0,0,NA,0,0 +"M70.2","70.2 Management consultancy activities",3,NA,"M","M","70","M70","2","M70.2",NA,NA,"M70",0,0,0,0,0 +"M70.21","70.21 Public relations and communication activities",4,NA,"M","M","70","M70","2","M70.2","1","M70.21","M70.2",0,0,NA,0,0 +"M70.22","70.22 Business and other management consultancy activities",4,NA,"M","M","70","M70","2","M70.2","2","M70.22","M70.2",0,0,NA,0,0 +"M71","71 Architectural and engineering activities; technical testing and analysis",2,NA,"M","M","71","M71",NA,NA,NA,NA,"M",0,0,0,0,0 +"M71.1","71.1 Architectural and engineering activities and related technical consultancy",3,NA,"M","M","71","M71","1","M71.1",NA,NA,"M71",0,0,0,0,0 +"M71.11","71.11 Architectural activities",4,NA,"M","M","71","M71","1","M71.1","1","M71.11","M71.1",0,0,NA,0,0 +"M71.12","71.12 Engineering activities and related technical consultancy",4,NA,"M","M","71","M71","1","M71.1","2","M71.12","M71.1",0,0,NA,0,0 +"M71.2","71.2 Technical testing and analysis",3,NA,"M","M","71","M71","2","M71.2",NA,NA,"M71",0,0,0,0,0 +"M71.20","71.20 Technical testing and analysis",4,NA,"M","M","71","M71","2","M71.2","0","M71.20","M71.2",0,0,NA,0,0 +"M72","72 Scientific research and development",2,NA,"M","M","72","M72",NA,NA,NA,NA,"M",0,0,0,0,0 +"M72.1","72.1 Research and experimental development on natural sciences and engineering",3,NA,"M","M","72","M72","1","M72.1",NA,NA,"M72",0,0,0,0,0 +"M72.11","72.11 Research and experimental development on biotechnology",4,NA,"M","M","72","M72","1","M72.1","1","M72.11","M72.1",0,0,NA,0,0 +"M72.19","72.19 Other research and experimental development on natural sciences and engineering",4,NA,"M","M","72","M72","1","M72.1","9","M72.19","M72.1",0,0,NA,0,0 +"M72.2","72.2 Research and experimental development on social sciences and humanities",3,NA,"M","M","72","M72","2","M72.2",NA,NA,"M72",0,0,0,0,0 +"M72.20","72.20 Research and experimental development on social sciences and humanities",4,NA,"M","M","72","M72","2","M72.2","0","M72.20","M72.2",0,0,NA,0,0 +"M73","73 Advertising and market research",2,NA,"M","M","73","M73",NA,NA,NA,NA,"M",0,0,0,0,0 +"M73.1","73.1 Advertising",3,NA,"M","M","73","M73","1","M73.1",NA,NA,"M73",0,0,0,0,0 +"M73.11","73.11 Advertising agencies",4,NA,"M","M","73","M73","1","M73.1","1","M73.11","M73.1",0,0,NA,0,0 +"M73.12","73.12 Media representation",4,NA,"M","M","73","M73","1","M73.1","2","M73.12","M73.1",0,0,NA,0,0 +"M73.2","73.2 Market research and public opinion polling",3,NA,"M","M","73","M73","2","M73.2",NA,NA,"M73",0,0,0,0,0 +"M73.20","73.20 Market research and public opinion polling",4,NA,"M","M","73","M73","2","M73.2","0","M73.20","M73.2",0,0,NA,0,0 +"M74","74 Other professional, scientific and technical activities",2,NA,"M","M","74","M74",NA,NA,NA,NA,"M",0,0,0,0,0 +"M74.1","74.1 Specialised design activities",3,NA,"M","M","74","M74","1","M74.1",NA,NA,"M74",0,0,0,0,0 +"M74.10","74.10 Specialised design activities",4,NA,"M","M","74","M74","1","M74.1","0","M74.10","M74.1",0,0,NA,0,0 +"M74.2","74.2 Photographic activities",3,NA,"M","M","74","M74","2","M74.2",NA,NA,"M74",0,0,0,0,0 +"M74.20","74.20 Photographic activities",4,NA,"M","M","74","M74","2","M74.2","0","M74.20","M74.2",0,0,NA,0,0 +"M74.3","74.3 Translation and interpretation activities",3,NA,"M","M","74","M74","3","M74.3",NA,NA,"M74",0,0,0,0,0 +"M74.30","74.30 Translation and interpretation activities",4,NA,"M","M","74","M74","3","M74.3","0","M74.30","M74.3",0,0,NA,0,0 +"M74.9","74.9 Other professional, scientific and technical activities n.e.c.",3,NA,"M","M","74","M74","9","M74.9",NA,NA,"M74",0,0,0,0,0 +"M74.90","74.90 Other professional, scientific and technical activities n.e.c.",4,NA,"M","M","74","M74","9","M74.9","0","M74.90","M74.9",0,0,NA,0,0 +"M75","75 Veterinary activities",2,NA,"M","M","75","M75",NA,NA,NA,NA,"M",0,0,0,0,0 +"M75.0","75.0 Veterinary activities",3,NA,"M","M","75","M75","0","M75.0",NA,NA,"M75",0,0,0,0,0 +"M75.00","75.00 Veterinary activities",4,NA,"M","M","75","M75","0","M75.0","0","M75.00","M75.0",0,0,NA,0,0 +"N77","77 Rental and leasing activities",2,NA,"N","N","77","N77",NA,NA,NA,NA,"N",0,0,0,0,0 +"N77.1","77.1 Rental and leasing of motor vehicles",3,NA,"N","N","77","N77","1","N77.1",NA,NA,"N77",0,0,0,0,0 +"N77.11","77.11 Rental and leasing of cars and light motor vehicles",4,NA,"N","N","77","N77","1","N77.1","1","N77.11","N77.1",0,0,NA,0,0 +"N77.12","77.12 Rental and leasing of trucks",4,NA,"N","N","77","N77","1","N77.1","2","N77.12","N77.1",0,0,NA,0,0 +"N77.2","77.2 Rental and leasing of personal and household goods",3,NA,"N","N","77","N77","2","N77.2",NA,NA,"N77",0,0,0,0,0 +"N77.21","77.21 Rental and leasing of recreational and sports goods",4,NA,"N","N","77","N77","2","N77.2","1","N77.21","N77.2",0,0,NA,0,0 +"N77.22","77.22 Rental of video tapes and disks",4,NA,"N","N","77","N77","2","N77.2","2","N77.22","N77.2",0,0,NA,0,0 +"N77.29","77.29 Rental and leasing of other personal and household goods",4,NA,"N","N","77","N77","2","N77.2","9","N77.29","N77.2",0,0,NA,0,0 +"N77.3","77.3 Rental and leasing of other machinery, equipment and tangible goods",3,NA,"N","N","77","N77","3","N77.3",NA,NA,"N77",0,0,0,0,0 +"N77.31","77.31 Rental and leasing of agricultural machinery and equipment",4,NA,"N","N","77","N77","3","N77.3","1","N77.31","N77.3",0,0,NA,0,0 +"N77.32","77.32 Rental and leasing of construction and civil engineering machinery and equipment",4,NA,"N","N","77","N77","3","N77.3","2","N77.32","N77.3",0,0,NA,0,0 +"N77.33","77.33 Rental and leasing of office machinery and equipment (including computers)",4,NA,"N","N","77","N77","3","N77.3","3","N77.33","N77.3",0,0,NA,0,0 +"N77.34","77.34 Rental and leasing of water transport equipment",4,NA,"N","N","77","N77","3","N77.3","4","N77.34","N77.3",0,0,NA,0,0 +"N77.35","77.35 Rental and leasing of air transport equipment",4,NA,"N","N","77","N77","3","N77.3","5","N77.35","N77.3",0,0,NA,0,0 +"N77.39","77.39 Rental and leasing of other machinery, equipment and tangible goods n.e.c.",4,NA,"N","N","77","N77","3","N77.3","9","N77.39","N77.3",0,0,NA,0,0 +"N77.4","77.4 Leasing of intellectual property and similar products, except copyrighted works",3,NA,"N","N","77","N77","4","N77.4",NA,NA,"N77",0,0,0,0,0 +"N77.40","77.40 Leasing of intellectual property and similar products, except copyrighted works",4,NA,"N","N","77","N77","4","N77.4","0","N77.40","N77.4",0,0,NA,0,0 +"N78","78 Employment activities",2,NA,"N","N","78","N78",NA,NA,NA,NA,"N",0,0,0,0,0 +"N78.1","78.1 Activities of employment placement agencies",3,NA,"N","N","78","N78","1","N78.1",NA,NA,"N78",0,0,0,0,0 +"N78.10","78.10 Activities of employment placement agencies",4,NA,"N","N","78","N78","1","N78.1","0","N78.10","N78.1",0,0,NA,0,0 +"N78.2","78.2 Temporary employment agency activities",3,NA,"N","N","78","N78","2","N78.2",NA,NA,"N78",0,0,0,0,0 +"N78.20","78.20 Temporary employment agency activities",4,NA,"N","N","78","N78","2","N78.2","0","N78.20","N78.2",0,0,NA,0,0 +"N78.3","78.3 Other human resources provision",3,NA,"N","N","78","N78","3","N78.3",NA,NA,"N78",0,0,0,0,0 +"N78.30","78.30 Other human resources provision",4,NA,"N","N","78","N78","3","N78.3","0","N78.30","N78.3",0,0,NA,0,0 +"N79","79 Travel agency, tour operator and other reservation service and related activities",2,NA,"N","N","79","N79",NA,NA,NA,NA,"N",0,0,0,0,0 +"N79.1","79.1 Travel agency and tour operator activities",3,NA,"N","N","79","N79","1","N79.1",NA,NA,"N79",0,0,0,0,0 +"N79.11","79.11 Travel agency activities",4,NA,"N","N","79","N79","1","N79.1","1","N79.11","N79.1",0,0,NA,0,0 +"N79.12","79.12 Tour operator activities",4,NA,"N","N","79","N79","1","N79.1","2","N79.12","N79.1",0,0,NA,0,0 +"N79.9","79.9 Other reservation service and related activities",3,NA,"N","N","79","N79","9","N79.9",NA,NA,"N79",0,0,0,0,0 +"N79.90","79.90 Other reservation service and related activities",4,NA,"N","N","79","N79","9","N79.9","0","N79.90","N79.9",0,0,NA,0,0 +"N80","80 Security and investigation activities",2,NA,"N","N","80","N80",NA,NA,NA,NA,"N",0,0,0,0,0 +"N80.1","80.1 Private security activities",3,NA,"N","N","80","N80","1","N80.1",NA,NA,"N80",0,0,0,0,0 +"N80.10","80.10 Private security activities",4,NA,"N","N","80","N80","1","N80.1","0","N80.10","N80.1",0,0,NA,0,0 +"N80.2","80.2 Security systems service activities",3,NA,"N","N","80","N80","2","N80.2",NA,NA,"N80",0,0,0,0,0 +"N80.20","80.20 Security systems service activities",4,NA,"N","N","80","N80","2","N80.2","0","N80.20","N80.2",0,0,NA,0,0 +"N80.3","80.3 Investigation activities",3,NA,"N","N","80","N80","3","N80.3",NA,NA,"N80",0,0,0,0,0 +"N80.30","80.30 Investigation activities",4,NA,"N","N","80","N80","3","N80.3","0","N80.30","N80.3",0,0,NA,0,0 +"N81","81 Services to buildings and landscape activities",2,NA,"N","N","81","N81",NA,NA,NA,NA,"N",0,0,0,0,0 +"N81.1","81.1 Combined facilities support activities",3,NA,"N","N","81","N81","1","N81.1",NA,NA,"N81",0,0,0,0,0 +"N81.10","81.10 Combined facilities support activities",4,NA,"N","N","81","N81","1","N81.1","0","N81.10","N81.1",0,0,NA,0,0 +"N81.2","81.2 Cleaning activities",3,NA,"N","N","81","N81","2","N81.2",NA,NA,"N81",0,0,0,0,0 +"N81.21","81.21 General cleaning of buildings",4,NA,"N","N","81","N81","2","N81.2","1","N81.21","N81.2",0,0,NA,0,0 +"N81.22","81.22 Other building and industrial cleaning activities",4,NA,"N","N","81","N81","2","N81.2","2","N81.22","N81.2",0,0,NA,0,0 +"N81.29","81.29 Other cleaning activities",4,NA,"N","N","81","N81","2","N81.2","9","N81.29","N81.2",0,0,NA,0,0 +"N81.3","81.3 Landscape service activities",3,NA,"N","N","81","N81","3","N81.3",NA,NA,"N81",0,0,0,0,0 +"N81.30","81.30 Landscape service activities",4,NA,"N","N","81","N81","3","N81.3","0","N81.30","N81.3",0,0,NA,0,0 +"N82","82 Office administrative, office support and other business support activities",2,NA,"N","N","82","N82",NA,NA,NA,NA,"N",0,0,0,0,0 +"N82.1","82.1 Office administrative and support activities",3,NA,"N","N","82","N82","1","N82.1",NA,NA,"N82",0,0,0,0,0 +"N82.11","82.11 Combined office administrative service activities",4,NA,"N","N","82","N82","1","N82.1","1","N82.11","N82.1",0,0,NA,0,0 +"N82.19","82.19 Photocopying, document preparation and other specialised office support activities",4,NA,"N","N","82","N82","1","N82.1","9","N82.19","N82.1",0,0,NA,0,0 +"N82.2","82.2 Activities of call centres",3,NA,"N","N","82","N82","2","N82.2",NA,NA,"N82",0,0,0,0,0 +"N82.20","82.20 Activities of call centres",4,NA,"N","N","82","N82","2","N82.2","0","N82.20","N82.2",0,0,NA,0,0 +"N82.3","82.3 Organisation of conventions and trade shows",3,NA,"N","N","82","N82","3","N82.3",NA,NA,"N82",0,0,0,0,0 +"N82.30","82.30 Organisation of conventions and trade shows",4,NA,"N","N","82","N82","3","N82.3","0","N82.30","N82.3",0,0,NA,0,0 +"N82.9","82.9 Business support service activities n.e.c.",3,NA,"N","N","82","N82","9","N82.9",NA,NA,"N82",0,0,0,0,0 +"N82.91","82.91 Activities of collection agencies and credit bureaus",4,NA,"N","N","82","N82","9","N82.9","1","N82.91","N82.9",0,0,NA,0,0 +"N82.92","82.92 Packaging activities",4,NA,"N","N","82","N82","9","N82.9","2","N82.92","N82.9",0,0,NA,0,0 +"N82.99","82.99 Other business support service activities n.e.c.",4,NA,"N","N","82","N82","9","N82.9","9","N82.99","N82.9",0,0,NA,0,0 +"O84","84 Public administration and defence; compulsory social security",2,NA,"O","O","84","O84",NA,NA,NA,NA,"O",0,0,0,0,0 +"O84.1","84.1 Administration of the State and the economic and social policy of the community",3,NA,"O","O","84","O84","1","O84.1",NA,NA,"O84",0,0,0,0,0 +"O84.11","84.11 General public administration activities",4,NA,"O","O","84","O84","1","O84.1","1","O84.11","O84.1",0,0,NA,0,0 +"O84.12","84.12 Regulation of the activities of providing health care, education, cultural services and other social services, excluding social security",4,NA,"O","O","84","O84","1","O84.1","2","O84.12","O84.1",0,0,NA,0,0 +"O84.13","84.13 Regulation of and contribution to more efficient operation of businesses",4,NA,"O","O","84","O84","1","O84.1","3","O84.13","O84.1",0,0,NA,0,0 +"O84.2","84.2 Provision of services to the community as a whole",3,NA,"O","O","84","O84","2","O84.2",NA,NA,"O84",0,0,0,0,0 +"O84.21","84.21 Foreign affairs",4,NA,"O","O","84","O84","2","O84.2","1","O84.21","O84.2",0,0,NA,0,0 +"O84.22","84.22 Defence activities",4,NA,"O","O","84","O84","2","O84.2","2","O84.22","O84.2",0,0,NA,0,0 +"O84.23","84.23 Justice and judicial activities",4,NA,"O","O","84","O84","2","O84.2","3","O84.23","O84.2",0,0,NA,0,0 +"O84.24","84.24 Public order and safety activities",4,NA,"O","O","84","O84","2","O84.2","4","O84.24","O84.2",0,0,NA,0,0 +"O84.25","84.25 Fire service activities",4,NA,"O","O","84","O84","2","O84.2","5","O84.25","O84.2",0,0,NA,0,0 +"O84.3","84.3 Compulsory social security activities",3,NA,"O","O","84","O84","3","O84.3",NA,NA,"O84",0,0,0,0,0 +"O84.30","84.30 Compulsory social security activities",4,NA,"O","O","84","O84","3","O84.3","0","O84.30","O84.3",0,0,NA,0,0 +"P85","85 Education",2,NA,"P","P","85","P85",NA,NA,NA,NA,"P",0,0,0,0,0 +"P85.1","85.1 Pre-primary education",3,NA,"P","P","85","P85","1","P85.1",NA,NA,"P85",0,0,0,0,0 +"P85.10","85.10 Pre-primary education",4,NA,"P","P","85","P85","1","P85.1","0","P85.10","P85.1",0,0,NA,0,0 +"P85.2","85.2 Primary education",3,NA,"P","P","85","P85","2","P85.2",NA,NA,"P85",0,0,0,0,0 +"P85.20","85.20 Primary education",4,NA,"P","P","85","P85","2","P85.2","0","P85.20","P85.2",0,0,NA,0,0 +"P85.3","85.3 Secondary education",3,NA,"P","P","85","P85","3","P85.3",NA,NA,"P85",0,0,0,0,0 +"P85.31","85.31 General secondary education",4,NA,"P","P","85","P85","3","P85.3","1","P85.31","P85.3",0,0,NA,0,0 +"P85.32","85.32 Technical and vocational secondary education",4,NA,"P","P","85","P85","3","P85.3","2","P85.32","P85.3",0,0,NA,0,0 +"P85.4","85.4 Higher education",3,NA,"P","P","85","P85","4","P85.4",NA,NA,"P85",0,0,0,0,0 +"P85.41","85.41 Post-secondary non-tertiary education",4,NA,"P","P","85","P85","4","P85.4","1","P85.41","P85.4",0,0,NA,0,0 +"P85.42","85.42 Tertiary education",4,NA,"P","P","85","P85","4","P85.4","2","P85.42","P85.4",0,0,NA,0,0 +"P85.5","85.5 Other education",3,NA,"P","P","85","P85","5","P85.5",NA,NA,"P85",0,0,0,0,0 +"P85.51","85.51 Sports and recreation education",4,NA,"P","P","85","P85","5","P85.5","1","P85.51","P85.5",0,0,NA,0,0 +"P85.52","85.52 Cultural education",4,NA,"P","P","85","P85","5","P85.5","2","P85.52","P85.5",0,0,NA,0,0 +"P85.53","85.53 Driving school activities",4,NA,"P","P","85","P85","5","P85.5","3","P85.53","P85.5",0,0,NA,0,0 +"P85.59","85.59 Other education n.e.c.",4,NA,"P","P","85","P85","5","P85.5","9","P85.59","P85.5",0,0,NA,0,0 +"P85.6","85.6 Educational support activities",3,NA,"P","P","85","P85","6","P85.6",NA,NA,"P85",0,0,0,0,0 +"P85.60","85.60 Educational support activities",4,NA,"P","P","85","P85","6","P85.6","0","P85.60","P85.6",0,0,NA,0,0 +"Q86","86 Human health activities",2,NA,"Q","Q","86","Q86",NA,NA,NA,NA,"Q",0,0,0,0,0 +"Q86.1","86.1 Hospital activities",3,NA,"Q","Q","86","Q86","1","Q86.1",NA,NA,"Q86",0,0,0,0,0 +"Q86.10","86.10 Hospital activities",4,NA,"Q","Q","86","Q86","1","Q86.1","0","Q86.10","Q86.1",0,0,NA,0,0 +"Q86.2","86.2 Medical and dental practice activities",3,NA,"Q","Q","86","Q86","2","Q86.2",NA,NA,"Q86",0,0,0,0,0 +"Q86.21","86.21 General medical practice activities",4,NA,"Q","Q","86","Q86","2","Q86.2","1","Q86.21","Q86.2",0,0,NA,0,0 +"Q86.22","86.22 Specialist medical practice activities",4,NA,"Q","Q","86","Q86","2","Q86.2","2","Q86.22","Q86.2",0,0,NA,0,0 +"Q86.23","86.23 Dental practice activities",4,NA,"Q","Q","86","Q86","2","Q86.2","3","Q86.23","Q86.2",0,0,NA,0,0 +"Q86.9","86.9 Other human health activities",3,NA,"Q","Q","86","Q86","9","Q86.9",NA,NA,"Q86",0,0,0,0,0 +"Q86.90","86.90 Other human health activities",4,NA,"Q","Q","86","Q86","9","Q86.9","0","Q86.90","Q86.9",0,0,NA,0,0 +"Q87","87 Residential care activities",2,NA,"Q","Q","87","Q87",NA,NA,NA,NA,"Q",0,0,0,0,0 +"Q87.1","87.1 Residential nursing care activities",3,NA,"Q","Q","87","Q87","1","Q87.1",NA,NA,"Q87",0,0,0,0,0 +"Q87.10","87.10 Residential nursing care activities",4,NA,"Q","Q","87","Q87","1","Q87.1","0","Q87.10","Q87.1",0,0,NA,0,0 +"Q87.2","87.2 Residential care activities for mental retardation, mental health and substance abuse",3,NA,"Q","Q","87","Q87","2","Q87.2",NA,NA,"Q87",0,0,0,0,0 +"Q87.20","87.20 Residential care activities for mental retardation, mental health and substance abuse",4,NA,"Q","Q","87","Q87","2","Q87.2","0","Q87.20","Q87.2",0,0,NA,0,0 +"Q87.3","87.3 Residential care activities for the elderly and disabled",3,NA,"Q","Q","87","Q87","3","Q87.3",NA,NA,"Q87",0,0,0,0,0 +"Q87.30","87.30 Residential care activities for the elderly and disabled",4,NA,"Q","Q","87","Q87","3","Q87.3","0","Q87.30","Q87.3",0,0,NA,0,0 +"Q87.9","87.9 Other residential care activities",3,NA,"Q","Q","87","Q87","9","Q87.9",NA,NA,"Q87",0,0,0,0,0 +"Q87.90","87.90 Other residential care activities",4,NA,"Q","Q","87","Q87","9","Q87.9","0","Q87.90","Q87.9",0,0,NA,0,0 +"Q88","88 Social work activities without accommodation",2,NA,"Q","Q","88","Q88",NA,NA,NA,NA,"Q",0,0,0,0,0 +"Q88.1","88.1 Social work activities without accommodation for the elderly and disabled",3,NA,"Q","Q","88","Q88","1","Q88.1",NA,NA,"Q88",0,0,0,0,0 +"Q88.10","88.10 Social work activities without accommodation for the elderly and disabled",4,NA,"Q","Q","88","Q88","1","Q88.1","0","Q88.10","Q88.1",0,0,NA,0,0 +"Q88.9","88.9 Other social work activities without accommodation",3,NA,"Q","Q","88","Q88","9","Q88.9",NA,NA,"Q88",0,0,0,0,0 +"Q88.91","88.91 Child day-care activities",4,NA,"Q","Q","88","Q88","9","Q88.9","1","Q88.91","Q88.9",0,0,NA,0,0 +"Q88.99","88.99 Other social work activities without accommodation n.e.c.",4,NA,"Q","Q","88","Q88","9","Q88.9","9","Q88.99","Q88.9",0,0,NA,0,0 +"R90","90 Creative, arts and entertainment activities",2,NA,"R","R","90","R90",NA,NA,NA,NA,"R",0,0,0,0,0 +"R90.0","90.0 Creative, arts and entertainment activities",3,NA,"R","R","90","R90","0","R90.0",NA,NA,"R90",0,0,0,0,0 +"R90.01","90.01 Performing arts",4,NA,"R","R","90","R90","0","R90.0","1","R90.01","R90.0",0,0,NA,0,0 +"R90.02","90.02 Support activities to performing arts",4,NA,"R","R","90","R90","0","R90.0","2","R90.02","R90.0",0,0,NA,0,0 +"R90.03","90.03 Artistic creation",4,NA,"R","R","90","R90","0","R90.0","3","R90.03","R90.0",0,0,NA,0,0 +"R90.04","90.04 Operation of arts facilities",4,NA,"R","R","90","R90","0","R90.0","4","R90.04","R90.0",0,0,NA,0,0 +"R91","91 Libraries, archives, museums and other cultural activities",2,NA,"R","R","91","R91",NA,NA,NA,NA,"R",0,0,0,0,0 +"R91.0","91.0 Libraries, archives, museums and other cultural activities",3,NA,"R","R","91","R91","0","R91.0",NA,NA,"R91",0,0,0,0,0 +"R91.01","91.01 Library and archives activities",4,NA,"R","R","91","R91","0","R91.0","1","R91.01","R91.0",0,0,NA,0,0 +"R91.02","91.02 Museums activities",4,NA,"R","R","91","R91","0","R91.0","2","R91.02","R91.0",0,0,NA,0,0 +"R91.03","91.03 Operation of historical sites and buildings and similar visitor attractions",4,NA,"R","R","91","R91","0","R91.0","3","R91.03","R91.0",0,0,NA,0,0 +"R91.04","91.04 Botanical and zoological gardens and nature reserves activities",4,NA,"R","R","91","R91","0","R91.0","4","R91.04","R91.0",0,0,NA,0,0 +"R92","92 Gambling and betting activities",2,NA,"R","R","92","R92",NA,NA,NA,NA,"R",0,0,0,0,0 +"R92.0","92.0 Gambling and betting activities",3,NA,"R","R","92","R92","0","R92.0",NA,NA,"R92",0,0,0,0,0 +"R92.00","92.00 Gambling and betting activities",4,NA,"R","R","92","R92","0","R92.0","0","R92.00","R92.0",0,0,NA,0,0 +"R93","93 Sports activities and amusement and recreation activities",2,NA,"R","R","93","R93",NA,NA,NA,NA,"R",0,0,0,0,0 +"R93.1","93.1 Sports activities",3,NA,"R","R","93","R93","1","R93.1",NA,NA,"R93",0,0,0,0,0 +"R93.11","93.11 Operation of sports facilities",4,NA,"R","R","93","R93","1","R93.1","1","R93.11","R93.1",0,0,NA,0,0 +"R93.12","93.12 Activities of sports clubs",4,NA,"R","R","93","R93","1","R93.1","2","R93.12","R93.1",0,0,NA,0,0 +"R93.13","93.13 Fitness facilities",4,NA,"R","R","93","R93","1","R93.1","3","R93.13","R93.1",0,0,NA,0,0 +"R93.19","93.19 Other sports activities",4,NA,"R","R","93","R93","1","R93.1","9","R93.19","R93.1",0,0,NA,0,0 +"R93.2","93.2 Amusement and recreation activities",3,NA,"R","R","93","R93","2","R93.2",NA,NA,"R93",0,0,0,0,0 +"R93.21","93.21 Activities of amusement parks and theme parks",4,NA,"R","R","93","R93","2","R93.2","1","R93.21","R93.2",0,0,NA,0,0 +"R93.29","93.29 Other amusement and recreation activities",4,NA,"R","R","93","R93","2","R93.2","9","R93.29","R93.2",0,0,NA,0,0 +"S94","94 Activities of membership organisations",2,NA,"S","S","94","S94",NA,NA,NA,NA,"S",0,0,0,0,0 +"S94.1","94.1 Activities of business, employers and professional membership organisations",3,NA,"S","S","94","S94","1","S94.1",NA,NA,"S94",0,0,0,0,0 +"S94.11","94.11 Activities of business and employers membership organisations",4,NA,"S","S","94","S94","1","S94.1","1","S94.11","S94.1",0,0,NA,0,0 +"S94.12","94.12 Activities of professional membership organisations",4,NA,"S","S","94","S94","1","S94.1","2","S94.12","S94.1",0,0,NA,0,0 +"S94.2","94.2 Activities of trade unions",3,NA,"S","S","94","S94","2","S94.2",NA,NA,"S94",0,0,0,0,0 +"S94.20","94.20 Activities of trade unions",4,NA,"S","S","94","S94","2","S94.2","0","S94.20","S94.2",0,0,NA,0,0 +"S94.9","94.9 Activities of other membership organisations",3,NA,"S","S","94","S94","9","S94.9",NA,NA,"S94",0,0,0,0,0 +"S94.91","94.91 Activities of religious organisations",4,NA,"S","S","94","S94","9","S94.9","1","S94.91","S94.9",0,0,NA,0,0 +"S94.92","94.92 Activities of political organisations",4,NA,"S","S","94","S94","9","S94.9","2","S94.92","S94.9",0,0,NA,0,0 +"S94.99","94.99 Activities of other membership organisations n.e.c.",4,NA,"S","S","94","S94","9","S94.9","9","S94.99","S94.9",0,0,NA,0,0 +"S95","95 Repair of computers and personal and household goods",2,NA,"S","S","95","S95",NA,NA,NA,NA,"S",0,0,0,0,0 +"S95.1","95.1 Repair of computers and communication equipment",3,NA,"S","S","95","S95","1","S95.1",NA,NA,"S95",0,0,0,0,0 +"S95.11","95.11 Repair of computers and peripheral equipment",4,NA,"S","S","95","S95","1","S95.1","1","S95.11","S95.1",0,0,NA,0,0 +"S95.12","95.12 Repair of communication equipment",4,NA,"S","S","95","S95","1","S95.1","2","S95.12","S95.1",0,0,NA,0,0 +"S95.2","95.2 Repair of personal and household goods",3,NA,"S","S","95","S95","2","S95.2",NA,NA,"S95",0,0,0,0,0 +"S95.21","95.21 Repair of consumer electronics",4,NA,"S","S","95","S95","2","S95.2","1","S95.21","S95.2",0,0,NA,0,0 +"S95.22","95.22 Repair of household appliances and home and garden equipment",4,NA,"S","S","95","S95","2","S95.2","2","S95.22","S95.2",0,0,NA,0,0 +"S95.23","95.23 Repair of footwear and leather goods",4,NA,"S","S","95","S95","2","S95.2","3","S95.23","S95.2",0,0,NA,0,0 +"S95.24","95.24 Repair of furniture and home furnishings",4,NA,"S","S","95","S95","2","S95.2","4","S95.24","S95.2",0,0,NA,0,0 +"S95.25","95.25 Repair of watches, clocks and jewellery",4,NA,"S","S","95","S95","2","S95.2","5","S95.25","S95.2",0,0,NA,0,0 +"S95.29","95.29 Repair of other personal and household goods",4,NA,"S","S","95","S95","2","S95.2","9","S95.29","S95.2",0,0,NA,0,0 +"S96","96 Other personal service activities",2,NA,"S","S","96","S96",NA,NA,NA,NA,"S",0,0,0,0,0 +"S96.0","96.0 Other personal service activities",3,NA,"S","S","96","S96","0","S96.0",NA,NA,"S96",0,0,0,0,0 +"S96.01","96.01 Washing and (dry-)cleaning of textile and fur products",4,NA,"S","S","96","S96","0","S96.0","1","S96.01","S96.0",0,0,NA,0,0 +"S96.02","96.02 Hairdressing and other beauty treatment",4,NA,"S","S","96","S96","0","S96.0","2","S96.02","S96.0",0,0,NA,0,0 +"S96.03","96.03 Funeral and related activities",4,NA,"S","S","96","S96","0","S96.0","3","S96.03","S96.0",0,0,NA,0,0 +"S96.04","96.04 Physical well-being activities",4,NA,"S","S","96","S96","0","S96.0","4","S96.04","S96.0",0,0,NA,0,0 +"S96.09","96.09 Other personal service activities n.e.c.",4,NA,"S","S","96","S96","0","S96.0","9","S96.09","S96.0",0,0,NA,0,0 +"T97","97 Activities of households as employers of domestic personnel",2,NA,"T","T","97","T97",NA,NA,NA,NA,"T",0,0,0,0,0 +"T97.0","97.0 Activities of households as employers of domestic personnel",3,NA,"T","T","97","T97","0","T97.0",NA,NA,"T97",0,0,0,0,0 +"T97.00","97.00 Activities of households as employers of domestic personnel",4,NA,"T","T","97","T97","0","T97.0","0","T97.00","T97.0",0,0,NA,0,0 +"T98","98 Undifferentiated goods- and services-producing activities of private households for own use",2,NA,"T","T","98","T98",NA,NA,NA,NA,"T",0,0,0,0,0 +"T98.1","98.1 Undifferentiated goods-producing activities of private households for own use",3,NA,"T","T","98","T98","1","T98.1",NA,NA,"T98",0,0,0,0,0 +"T98.10","98.10 Undifferentiated goods-producing activities of private households for own use",4,NA,"T","T","98","T98","1","T98.1","0","T98.10","T98.1",0,0,NA,0,0 +"T98.2","98.2 Undifferentiated service-producing activities of private households for own use",3,NA,"T","T","98","T98","2","T98.2",NA,NA,"T98",0,0,0,0,0 +"T98.20","98.20 Undifferentiated service-producing activities of private households for own use",4,NA,"T","T","98","T98","2","T98.2","0","T98.20","T98.2",0,0,NA,0,0 +"U99","99 Activities of extraterritorial organisations and bodies",2,NA,"U","U","99","U99",NA,NA,NA,NA,"U",0,0,0,0,0 +"U99.0","99.0 Activities of extraterritorial organisations and bodies",3,NA,"U","U","99","U99","0","U99.0",NA,NA,"U99",0,0,0,0,0 +"U99.00","99.00 Activities of extraterritorial organisations and bodies",4,NA,"U","U","99","U99","0","U99.0","0","U99.00","U99.0",0,0,NA,0,0 +"A","A AGRICULTURE, FORESTRY AND FISHING",1,NA,"A","A",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"B","B MINING AND QUARRYING",1,NA,"B","B",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"C","C MANUFACTURING",1,NA,"C","C",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"D","D ELECTRICITY, GAS, STEAM AND AIR CONDITIONING SUPPLY",1,NA,"D","D",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"E","E WATER SUPPLY; SEWERAGE, WASTE MANAGEMENT AND REMEDIATION ACTIVITIES",1,NA,"E","E",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"F","F CONSTRUCTION",1,NA,"F","F",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"G","G WHOLESALE AND RETAIL TRADE; REPAIR OF MOTOR VEHICLES AND MOTORCYCLES",1,NA,"G","G",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"H","H TRANSPORTATION AND STORAGE",1,NA,"H","H",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"I","I ACCOMMODATION AND FOOD SERVICE ACTIVITIES",1,NA,"I","I",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"J","J INFORMATION AND COMMUNICATION",1,NA,"J","J",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"K","K FINANCIAL AND INSURANCE ACTIVITIES",1,NA,"K","K",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"L","L REAL ESTATE ACTIVITIES",1,NA,"L","L",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"M","M PROFESSIONAL, SCIENTIFIC AND TECHNICAL ACTIVITIES",1,NA,"M","M",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"N","N ADMINISTRATIVE AND SUPPORT SERVICE ACTIVITIES",1,NA,"N","N",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"O","O PUBLIC ADMINISTRATION AND DEFENCE; COMPULSORY SOCIAL SECURITY",1,NA,"O","O",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"P","P EDUCATION",1,NA,"P","P",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"Q","Q HUMAN HEALTH AND SOCIAL WORK ACTIVITIES",1,NA,"Q","Q",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"R","R ARTS, ENTERTAINMENT AND RECREATION",1,NA,"R","R",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"S","S OTHER SERVICE ACTIVITIES",1,NA,"S","S",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"T","T ACTIVITIES OF HOUSEHOLDS AS EMPLOYERS; UNDIFFERENTIATED GOODS- AND SERVICES-PRODUCING ACTIVITIES OF HOUSEHOLDS FOR OWN USE",1,NA,"T","T",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 +"U","U ACTIVITIES OF EXTRATERRITORIAL ORGANISATIONS AND BODIES",1,NA,"U","U",NA,NA,NA,NA,NA,NA,NA,0,NA,0,0,0 diff --git a/inst/extdata/Sequencing.csv b/inst/extdata/Sequencing.csv new file mode 100644 index 0000000..fc7a879 --- /dev/null +++ b/inst/extdata/Sequencing.csv @@ -0,0 +1,4 @@ +level,multipleCode +"2,""010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899""" +"3,""123456789""" +"4,""123456789""" diff --git a/inst/extdata/SingleChild.csv b/inst/extdata/SingleChild.csv new file mode 100644 index 0000000..ed8b012 --- /dev/null +++ b/inst/extdata/SingleChild.csv @@ -0,0 +1,4 @@ +level,singleCode,multipleCode +2,0,10 +3,0,1 +4,0,1 diff --git a/inst/extdata/SingleChild2.csv b/inst/extdata/SingleChild2.csv new file mode 100644 index 0000000..fe9b919 --- /dev/null +++ b/inst/extdata/SingleChild2.csv @@ -0,0 +1,4 @@ +level,singleCode,multipleCode +2,"010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899","010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899" +3,"0","123456789" +4,"0","123456789" diff --git a/inst/extdata/a_data.csv b/inst/extdata/a_data.csv new file mode 100644 index 0000000..9f5dc06 --- /dev/null +++ b/inst/extdata/a_data.csv @@ -0,0 +1,997 @@ +"NACE Rev. 2 Code","Level","Superior" +"A",1,NA +"B",1,NA +"C",1,NA +"D",1,NA +"E",1,NA +"F",1,NA +"G",1,NA +"H",1,NA +"I",1,NA +"J",1,NA +"K",1,NA +"L",1,NA +"M",1,NA +"N",1,NA +"O",1,NA +"P",1,NA +"Q",1,NA +"R",1,NA +"S",1,NA +"T",1,NA +"U",1,NA +"01",2,"A" +"02",2,"A" +"03",2,"A" +"05",2,"B" +"06",2,"B" +"07",2,"B" +"08",2,"B" +"09",2,"B" +"10",2,"C" +"11",2,"C" +"12",2,"C" +"13",2,"C" +"14",2,"C" +"15",2,"C" +"16",2,"C" +"17",2,"C" +"18",2,"C" +"19",2,"C" +"20",2,"C" +"21",2,"C" +"22",2,"C" +"23",2,"C" +"24",2,"C" +"25",2,"C" +"26",2,"C" +"27",2,"C" +"28",2,"C" +"29",2,"C" +"30",2,"C" +"31",2,"C" +"32",2,"C" +"33",2,"C" +"35",2,"D" +"36",2,"E" +"37",2,"E" +"38",2,"E" +"39",2,"E" +"41",2,"F" +"42",2,"F" +"43",2,"F" +"45",2,"G" +"46",2,"G" +"47",2,"G" +"49",2,"H" +"50",2,"H" +"51",2,"H" +"52",2,"H" +"53",2,"H" +"55",2,"I" +"56",2,"I" +"58",2,"J" +"59",2,"J" +"60",2,"J" +"61",2,"J" +"62",2,"J" +"63",2,"J" +"64",2,"K" +"65",2,"K" +"66",2,"K" +"68",2,"L" +"69",2,"M" +"70",2,"M" +"71",2,"M" +"72",2,"M" +"73",2,"M" +"74",2,"M" +"75",2,"M" +"77",2,"N" +"78",2,"N" +"79",2,"N" +"80",2,"N" +"81",2,"N" +"82",2,"N" +"84",2,"O" +"85",2,"P" +"86",2,"Q" +"87",2,"Q" +"88",2,"Q" +"90",2,"R" +"91",2,"R" +"92",2,"R" +"93",2,"R" +"94",2,"S" +"95",2,"S" +"96",2,"S" +"97",2,"T" +"98",2,"T" +"99",2,"U" +"01.1",3,"01" +"01.2",3,"01" +"01.3",3,"01" +"01.4",3,"01" +"01.5",3,"01" +"01.6",3,"01" +"01.7",3,"01" +"02.1",3,"02" +"02.2",3,"02" +"02.3",3,"02" +"02.4",3,"02" +"03.1",3,"03" +"03.2",3,"03" +"05.1",3,"05" +"05.2",3,"05" +"06.1",3,"06" +"06.2",3,"06" +"07.1",3,"07" +"07.2",3,"07" +"08.1",3,"08" +"08.9",3,"08" +"09.1",3,"09" +"09.9",3,"09" +"10.1",3,"10" +"10.2",3,"10" +"10.3",3,"10" +"10.4",3,"10" +"10.5",3,"10" +"10.6",3,"10" +"10.7",3,"10" +"10.8",3,"10" +"10.9",3,"10" +"11.0",3,"11" +"12.0",3,"12" +"13.1",3,"13" +"13.2",3,"13" +"13.3",3,"13" +"13.9",3,"13" +"14.1",3,"14" +"14.2",3,"14" +"14.3",3,"14" +"15.1",3,"15" +"15.2",3,"15" +"16.1",3,"16" +"16.2",3,"16" +"17.1",3,"17" +"17.2",3,"17" +"18.1",3,"18" +"18.2",3,"18" +"19.1",3,"19" +"19.2",3,"19" +"20.1",3,"20" +"20.2",3,"20" +"20.3",3,"20" +"20.4",3,"20" +"20.5",3,"20" +"20.6",3,"20" +"21.1",3,"21" +"21.2",3,"21" +"22.1",3,"22" +"22.2",3,"22" +"23.1",3,"23" +"23.2",3,"23" +"23.3",3,"23" +"23.4",3,"23" +"23.5",3,"23" +"23.6",3,"23" +"23.7",3,"23" +"23.9",3,"23" +"24.1",3,"24" +"24.2",3,"24" +"24.3",3,"24" +"24.4",3,"24" +"24.5",3,"24" +"25.1",3,"25" +"25.2",3,"25" +"25.3",3,"25" +"25.4",3,"25" +"25.5",3,"25" +"25.6",3,"25" +"25.7",3,"25" +"25.9",3,"25" +"26.1",3,"26" +"26.2",3,"26" +"26.3",3,"26" +"26.4",3,"26" +"26.5",3,"26" +"26.6",3,"26" +"26.7",3,"26" +"26.8",3,"26" +"27.1",3,"27" +"27.2",3,"27" +"27.3",3,"27" +"27.4",3,"27" +"27.5",3,"27" +"27.9",3,"27" +"28.1",3,"28" +"28.2",3,"28" +"28.3",3,"28" +"28.4",3,"28" +"28.9",3,"28" +"29.1",3,"29" +"29.2",3,"29" +"29.3",3,"29" +"30.1",3,"30" +"30.2",3,"30" +"30.3",3,"30" +"30.4",3,"30" +"30.9",3,"30" +"31.0",3,"31" +"32.1",3,"32" +"32.2",3,"32" +"32.3",3,"32" +"32.4",3,"32" +"32.5",3,"32" +"32.9",3,"32" +"33.1",3,"33" +"33.2",3,"33" +"35.1",3,"35" +"35.2",3,"35" +"35.3",3,"35" +"36.0",3,"36" +"37.0",3,"37" +"38.1",3,"38" +"38.2",3,"38" +"38.3",3,"38" +"39.0",3,"39" +"41.1",3,"41" +"41.2",3,"41" +"42.1",3,"42" +"42.2",3,"42" +"42.9",3,"42" +"43.1",3,"43" +"43.2",3,"43" +"43.3",3,"43" +"43.9",3,"43" +"45.1",3,"45" +"45.2",3,"45" +"45.3",3,"45" +"45.4",3,"45" +"46.1",3,"46" +"46.2",3,"46" +"46.3",3,"46" +"46.4",3,"46" +"46.5",3,"46" +"46.6",3,"46" +"46.7",3,"46" +"46.9",3,"46" +"47.1",3,"47" +"47.2",3,"47" +"47.3",3,"47" +"47.4",3,"47" +"47.5",3,"47" +"47.6",3,"47" +"47.7",3,"47" +"47.8",3,"47" +"47.9",3,"47" +"49.1",3,"49" +"49.2",3,"49" +"49.3",3,"49" +"49.4",3,"49" +"49.5",3,"49" +"50.1",3,"50" +"50.2",3,"50" +"50.3",3,"50" +"50.4",3,"50" +"51.1",3,"51" +"51.2",3,"51" +"52.1",3,"52" +"52.2",3,"52" +"53.1",3,"53" +"53.2",3,"53" +"55.1",3,"55" +"55.2",3,"55" +"55.3",3,"55" +"55.9",3,"55" +"56.1",3,"56" +"56.2",3,"56" +"56.3",3,"56" +"58.1",3,"58" +"58.2",3,"58" +"59.1",3,"59" +"59.2",3,"59" +"60.1",3,"60" +"60.2",3,"60" +"61.1",3,"61" +"61.2",3,"61" +"61.3",3,"61" +"61.9",3,"61" +"62.0",3,"62" +"63.1",3,"63" +"63.9",3,"63" +"64.1",3,"64" +"64.2",3,"64" +"64.3",3,"64" +"64.9",3,"64" +"65.1",3,"65" +"65.2",3,"65" +"65.3",3,"65" +"66.1",3,"66" +"66.2",3,"66" +"66.3",3,"66" +"68.1",3,"68" +"68.2",3,"68" +"68.3",3,"68" +"69.1",3,"69" +"69.2",3,"69" +"70.1",3,"70" +"70.2",3,"70" +"71.1",3,"71" +"71.2",3,"71" +"72.1",3,"72" +"72.2",3,"72" +"73.1",3,"73" +"73.2",3,"73" +"74.1",3,"74" +"74.2",3,"74" +"74.3",3,"74" +"74.9",3,"74" +"75.0",3,"75" +"77.1",3,"77" +"77.2",3,"77" +"77.3",3,"77" +"77.4",3,"77" +"78.1",3,"78" +"78.2",3,"78" +"78.3",3,"78" +"79.1",3,"79" +"79.9",3,"79" +"80.1",3,"80" +"80.2",3,"80" +"80.3",3,"80" +"81.1",3,"81" +"81.2",3,"81" +"81.3",3,"81" +"82.1",3,"82" +"82.2",3,"82" +"82.3",3,"82" +"82.9",3,"82" +"84.1",3,"84" +"84.2",3,"84" +"84.3",3,"84" +"85.1",3,"85" +"85.2",3,"85" +"85.3",3,"85" +"85.4",3,"85" +"85.5",3,"85" +"85.6",3,"85" +"86.1",3,"86" +"86.2",3,"86" +"86.9",3,"86" +"87.1",3,"87" +"87.2",3,"87" +"87.3",3,"87" +"87.9",3,"87" +"88.1",3,"88" +"88.9",3,"88" +"90.0",3,"90" +"91.0",3,"91" +"92.0",3,"92" +"93.1",3,"93" +"93.2",3,"93" +"94.1",3,"94" +"94.2",3,"94" +"94.9",3,"94" +"95.1",3,"95" +"95.2",3,"95" +"96.0",3,"96" +"97.0",3,"97" +"98.1",3,"98" +"98.2",3,"98" +"99.0",3,"99" +"01.11",4,"01.1" +"01.12",4,"01.1" +"01.13",4,"01.1" +"01.14",4,"01.1" +"01.15",4,"01.1" +"01.16",4,"01.1" +"01.19",4,"01.1" +"01.21",4,"01.2" +"01.22",4,"01.2" +"01.23",4,"01.2" +"01.24",4,"01.2" +"01.25",4,"01.2" +"01.26",4,"01.2" +"01.27",4,"01.2" +"01.28",4,"01.2" +"01.29",4,"01.2" +"01.30",4,"01.3" +"01.41",4,"01.4" +"01.42",4,"01.4" +"01.43",4,"01.4" +"01.44",4,"01.4" +"01.45",4,"01.4" +"01.46",4,"01.4" +"01.47",4,"01.4" +"01.49",4,"01.4" +"01.50",4,"01.5" +"01.61",4,"01.6" +"01.62",4,"01.6" +"01.63",4,"01.6" +"01.64",4,"01.6" +"01.70",4,"01.7" +"02.10",4,"02.1" +"02.20",4,"02.2" +"02.30",4,"02.3" +"02.40",4,"02.4" +"03.11",4,"03.1" +"03.12",4,"03.1" +"03.21",4,"03.2" +"03.22",4,"03.2" +"05.10",4,"05.1" +"05.20",4,"05.2" +"06.10",4,"06.1" +"06.20",4,"06.2" +"07.10",4,"07.1" +"07.21",4,"07.2" +"07.29",4,"07.2" +"08.11",4,"08.1" +"08.12",4,"08.1" +"08.91",4,"08.9" +"08.92",4,"08.9" +"08.93",4,"08.9" +"08.99",4,"08.9" +"09.10",4,"09.1" +"09.90",4,"09.9" +"10.11",4,"10.1" +"10.12",4,"10.1" +"10.13",4,"10.1" +"10.20",4,"10.2" +"10.31",4,"10.3" +"10.32",4,"10.3" +"10.39",4,"10.3" +"10.41",4,"10.4" +"10.42",4,"10.4" +"10.51",4,"10.5" +"10.52",4,"10.5" +"10.61",4,"10.6" +"10.62",4,"10.6" +"10.71",4,"10.7" +"10.72",4,"10.7" +"10.73",4,"10.7" +"10.81",4,"10.8" +"10.82",4,"10.8" +"10.83",4,"10.8" +"10.84",4,"10.8" +"10.85",4,"10.8" +"10.86",4,"10.8" +"10.89",4,"10.8" +"10.91",4,"10.9" +"10.92",4,"10.9" +"11.01",4,"11.0" +"11.02",4,"11.0" +"11.03",4,"11.0" +"11.04",4,"11.0" +"11.05",4,"11.0" +"11.06",4,"11.0" +"11.07",4,"11.0" +"12.00",4,"12.0" +"13.10",4,"13.1" +"13.20",4,"13.2" +"13.30",4,"13.3" +"13.91",4,"13.9" +"13.92",4,"13.9" +"13.93",4,"13.9" +"13.94",4,"13.9" +"13.95",4,"13.9" +"13.96",4,"13.9" +"13.99",4,"13.9" +"14.11",4,"14.1" +"14.12",4,"14.1" +"14.13",4,"14.1" +"14.14",4,"14.1" +"14.19",4,"14.1" +"14.20",4,"14.2" +"14.31",4,"14.3" +"14.39",4,"14.3" +"15.11",4,"15.1" +"15.12",4,"15.1" +"15.20",4,"15.2" +"16.10",4,"16.1" +"16.21",4,"16.2" +"16.22",4,"16.2" +"16.23",4,"16.2" +"16.24",4,"16.2" +"16.29",4,"16.2" +"17.11",4,"17.1" +"17.12",4,"17.1" +"17.21",4,"17.2" +"17.22",4,"17.2" +"17.23",4,"17.2" +"17.24",4,"17.2" +"17.29",4,"17.2" +"18.11",4,"18.1" +"18.12",4,"18.1" +"18.13",4,"18.1" +"18.14",4,"18.1" +"18.20",4,"18.2" +"19.10",4,"19.1" +"19.20",4,"19.2" +"20.11",4,"20.1" +"20.12",4,"20.1" +"20.13",4,"20.1" +"20.14",4,"20.1" +"20.15",4,"20.1" +"20.16",4,"20.1" +"20.17",4,"20.1" +"20.20",4,"20.2" +"20.30",4,"20.3" +"20.41",4,"20.4" +"20.42",4,"20.4" +"20.51",4,"20.5" +"20.52",4,"20.5" +"20.53",4,"20.5" +"20.59",4,"20.5" +"20.60",4,"20.6" +"21.10",4,"21.1" +"21.20",4,"21.2" +"22.11",4,"22.1" +"22.19",4,"22.1" +"22.21",4,"22.2" +"22.22",4,"22.2" +"22.23",4,"22.2" +"22.29",4,"22.2" +"23.11",4,"23.1" +"23.12",4,"23.1" +"23.13",4,"23.1" +"23.14",4,"23.1" +"23.19",4,"23.1" +"23.20",4,"23.2" +"23.31",4,"23.3" +"23.32",4,"23.3" +"23.41",4,"23.4" +"23.42",4,"23.4" +"23.43",4,"23.4" +"23.44",4,"23.4" +"23.49",4,"23.4" +"23.51",4,"23.5" +"23.52",4,"23.5" +"23.61",4,"23.6" +"23.62",4,"23.6" +"23.63",4,"23.6" +"23.64",4,"23.6" +"23.65",4,"23.6" +"23.69",4,"23.6" +"23.70",4,"23.7" +"23.91",4,"23.9" +"23.99",4,"23.9" +"24.10",4,"24.1" +"24.20",4,"24.2" +"24.31",4,"24.3" +"24.32",4,"24.3" +"24.33",4,"24.3" +"24.34",4,"24.3" +"24.41",4,"24.4" +"24.42",4,"24.4" +"24.43",4,"24.4" +"24.44",4,"24.4" +"24.45",4,"24.4" +"24.46",4,"24.4" +"24.51",4,"24.5" +"24.52",4,"24.5" +"24.53",4,"24.5" +"24.54",4,"24.5" +"25.11",4,"25.1" +"25.12",4,"25.1" +"25.21",4,"25.2" +"25.29",4,"25.2" +"25.30",4,"25.3" +"25.40",4,"25.4" +"25.50",4,"25.5" +"25.61",4,"25.6" +"25.62",4,"25.6" +"25.71",4,"25.7" +"25.72",4,"25.7" +"25.73",4,"25.7" +"25.91",4,"25.9" +"25.92",4,"25.9" +"25.93",4,"25.9" +"25.94",4,"25.9" +"25.99",4,"25.9" +"26.11",4,"26.1" +"26.12",4,"26.1" +"26.20",4,"26.2" +"26.30",4,"26.3" +"26.40",4,"26.4" +"26.51",4,"26.5" +"26.52",4,"26.5" +"26.60",4,"26.6" +"26.70",4,"26.7" +"26.80",4,"26.8" +"27.11",4,"27.1" +"27.12",4,"27.1" +"27.20",4,"27.2" +"27.31",4,"27.3" +"27.32",4,"27.3" +"27.33",4,"27.3" +"27.40",4,"27.4" +"27.51",4,"27.5" +"27.52",4,"27.5" +"27.90",4,"27.9" +"28.11",4,"28.1" +"28.12",4,"28.1" +"28.13",4,"28.1" +"28.14",4,"28.1" +"28.15",4,"28.1" +"28.21",4,"28.2" +"28.22",4,"28.2" +"28.23",4,"28.2" +"28.24",4,"28.2" +"28.25",4,"28.2" +"28.29",4,"28.2" +"28.30",4,"28.3" +"28.41",4,"28.4" +"28.49",4,"28.4" +"28.91",4,"28.9" +"28.92",4,"28.9" +"28.93",4,"28.9" +"28.94",4,"28.9" +"28.95",4,"28.9" +"28.96",4,"28.9" +"28.99",4,"28.9" +"29.10",4,"29.1" +"29.20",4,"29.2" +"29.31",4,"29.3" +"29.32",4,"29.3" +"30.11",4,"30.1" +"30.12",4,"30.1" +"30.20",4,"30.2" +"30.30",4,"30.3" +"30.40",4,"30.4" +"30.91",4,"30.9" +"30.92",4,"30.9" +"30.99",4,"30.9" +"31.01",4,"31.0" +"31.02",4,"31.0" +"31.03",4,"31.0" +"31.09",4,"31.0" +"32.11",4,"32.1" +"32.12",4,"32.1" +"32.13",4,"32.1" +"32.20",4,"32.2" +"32.30",4,"32.3" +"32.40",4,"32.4" +"32.50",4,"32.5" +"32.91",4,"32.9" +"32.99",4,"32.9" +"33.11",4,"33.1" +"33.12",4,"33.1" +"33.13",4,"33.1" +"33.14",4,"33.1" +"33.15",4,"33.1" +"33.16",4,"33.1" +"33.17",4,"33.1" +"33.19",4,"33.1" +"33.20",4,"33.2" +"35.11",4,"35.1" +"35.12",4,"35.1" +"35.13",4,"35.1" +"35.14",4,"35.1" +"35.21",4,"35.2" +"35.22",4,"35.2" +"35.23",4,"35.2" +"35.30",4,"35.3" +"36.00",4,"36.0" +"37.00",4,"37.0" +"38.11",4,"38.1" +"38.12",4,"38.1" +"38.21",4,"38.2" +"38.22",4,"38.2" +"38.31",4,"38.3" +"38.32",4,"38.3" +"39.00",4,"39.0" +"41.10",4,"41.1" +"41.20",4,"41.2" +"42.11",4,"42.1" +"42.12",4,"42.1" +"42.13",4,"42.1" +"42.21",4,"42.2" +"42.22",4,"42.2" +"42.91",4,"42.9" +"42.99",4,"42.9" +"43.11",4,"43.1" +"43.12",4,"43.1" +"43.13",4,"43.1" +"43.21",4,"43.2" +"43.22",4,"43.2" +"43.29",4,"43.2" +"43.31",4,"43.3" +"43.32",4,"43.3" +"43.33",4,"43.3" +"43.34",4,"43.3" +"43.39",4,"43.3" +"43.91",4,"43.9" +"43.99",4,"43.9" +"45.11",4,"45.1" +"45.19",4,"45.1" +"45.20",4,"45.2" +"45.31",4,"45.3" +"45.32",4,"45.3" +"45.40",4,"45.4" +"46.11",4,"46.1" +"46.12",4,"46.1" +"46.13",4,"46.1" +"46.14",4,"46.1" +"46.15",4,"46.1" +"46.16",4,"46.1" +"46.17",4,"46.1" +"46.18",4,"46.1" +"46.19",4,"46.1" +"46.21",4,"46.2" +"46.22",4,"46.2" +"46.23",4,"46.2" +"46.24",4,"46.2" +"46.31",4,"46.3" +"46.32",4,"46.3" +"46.33",4,"46.3" +"46.34",4,"46.3" +"46.35",4,"46.3" +"46.36",4,"46.3" +"46.37",4,"46.3" +"46.38",4,"46.3" +"46.39",4,"46.3" +"46.41",4,"46.4" +"46.42",4,"46.4" +"46.43",4,"46.4" +"46.44",4,"46.4" +"46.45",4,"46.4" +"46.46",4,"46.4" +"46.47",4,"46.4" +"46.48",4,"46.4" +"46.49",4,"46.4" +"46.51",4,"46.5" +"46.52",4,"46.5" +"46.61",4,"46.6" +"46.62",4,"46.6" +"46.63",4,"46.6" +"46.64",4,"46.6" +"46.65",4,"46.6" +"46.66",4,"46.6" +"46.69",4,"46.6" +"46.71",4,"46.7" +"46.72",4,"46.7" +"46.73",4,"46.7" +"46.74",4,"46.7" +"46.75",4,"46.7" +"46.76",4,"46.7" +"46.77",4,"46.7" +"46.90",4,"46.9" +"47.11",4,"47.1" +"47.19",4,"47.1" +"47.21",4,"47.2" +"47.22",4,"47.2" +"47.23",4,"47.2" +"47.24",4,"47.2" +"47.25",4,"47.2" +"47.26",4,"47.2" +"47.29",4,"47.2" +"47.30",4,"47.3" +"47.41",4,"47.4" +"47.42",4,"47.4" +"47.43",4,"47.4" +"47.51",4,"47.5" +"47.52",4,"47.5" +"47.53",4,"47.5" +"47.54",4,"47.5" +"47.59",4,"47.5" +"47.61",4,"47.6" +"47.62",4,"47.6" +"47.63",4,"47.6" +"47.64",4,"47.6" +"47.65",4,"47.6" +"47.71",4,"47.7" +"47.72",4,"47.7" +"47.73",4,"47.7" +"47.74",4,"47.7" +"47.75",4,"47.7" +"47.76",4,"47.7" +"47.77",4,"47.7" +"47.78",4,"47.7" +"47.79",4,"47.7" +"47.81",4,"47.8" +"47.82",4,"47.8" +"47.89",4,"47.8" +"47.91",4,"47.9" +"47.99",4,"47.9" +"49.10",4,"49.1" +"49.20",4,"49.2" +"49.31",4,"49.3" +"49.32",4,"49.3" +"49.39",4,"49.3" +"49.41",4,"49.4" +"49.42",4,"49.4" +"49.50",4,"49.5" +"50.10",4,"50.1" +"50.20",4,"50.2" +"50.30",4,"50.3" +"50.40",4,"50.4" +"51.10",4,"51.1" +"51.21",4,"51.2" +"51.22",4,"51.2" +"52.10",4,"52.1" +"52.21",4,"52.2" +"52.22",4,"52.2" +"52.23",4,"52.2" +"52.24",4,"52.2" +"52.29",4,"52.2" +"53.10",4,"53.1" +"53.20",4,"53.2" +"55.10",4,"55.1" +"55.20",4,"55.2" +"55.30",4,"55.3" +"55.90",4,"55.9" +"56.10",4,"56.1" +"56.21",4,"56.2" +"56.29",4,"56.2" +"56.30",4,"56.3" +"58.11",4,"58.1" +"58.12",4,"58.1" +"58.13",4,"58.1" +"58.14",4,"58.1" +"58.19",4,"58.1" +"58.21",4,"58.2" +"58.29",4,"58.2" +"59.11",4,"59.1" +"59.12",4,"59.1" +"59.13",4,"59.1" +"59.14",4,"59.1" +"59.20",4,"59.2" +"60.10",4,"60.1" +"60.20",4,"60.2" +"61.10",4,"61.1" +"61.20",4,"61.2" +"61.30",4,"61.3" +"61.90",4,"61.9" +"62.01",4,"62.0" +"62.02",4,"62.0" +"62.03",4,"62.0" +"62.09",4,"62.0" +"63.11",4,"63.1" +"63.12",4,"63.1" +"63.91",4,"63.9" +"63.99",4,"63.9" +"64.11",4,"64.1" +"64.19",4,"64.1" +"64.20",4,"64.2" +"64.30",4,"64.3" +"64.91",4,"64.9" +"64.92",4,"64.9" +"64.99",4,"64.9" +"65.11",4,"65.1" +"65.12",4,"65.1" +"65.20",4,"65.2" +"65.30",4,"65.3" +"66.11",4,"66.1" +"66.12",4,"66.1" +"66.19",4,"66.1" +"66.21",4,"66.2" +"66.22",4,"66.2" +"66.29",4,"66.2" +"66.30",4,"66.3" +"68.10",4,"68.1" +"68.20",4,"68.2" +"68.31",4,"68.3" +"68.32",4,"68.3" +"69.10",4,"69.1" +"69.20",4,"69.2" +"70.10",4,"70.1" +"70.21",4,"70.2" +"70.22",4,"70.2" +"71.11",4,"71.1" +"71.12",4,"71.1" +"71.20",4,"71.2" +"72.11",4,"72.1" +"72.19",4,"72.1" +"72.20",4,"72.2" +"73.11",4,"73.1" +"73.12",4,"73.1" +"73.20",4,"73.2" +"74.10",4,"74.1" +"74.20",4,"74.2" +"74.30",4,"74.3" +"74.90",4,"74.9" +"75.00",4,"75.0" +"77.11",4,"77.1" +"77.12",4,"77.1" +"77.21",4,"77.2" +"77.22",4,"77.2" +"77.29",4,"77.2" +"77.31",4,"77.3" +"77.32",4,"77.3" +"77.33",4,"77.3" +"77.34",4,"77.3" +"77.35",4,"77.3" +"77.39",4,"77.3" +"77.40",4,"77.4" +"78.10",4,"78.1" +"78.20",4,"78.2" +"78.30",4,"78.3" +"79.11",4,"79.1" +"79.12",4,"79.1" +"79.90",4,"79.9" +"80.10",4,"80.1" +"80.20",4,"80.2" +"80.30",4,"80.3" +"81.10",4,"81.1" +"81.21",4,"81.2" +"81.22",4,"81.2" +"81.29",4,"81.2" +"81.30",4,"81.3" +"82.11",4,"82.1" +"82.19",4,"82.1" +"82.20",4,"82.2" +"82.30",4,"82.3" +"82.91",4,"82.9" +"82.92",4,"82.9" +"82.99",4,"82.9" +"84.11",4,"84.1" +"84.12",4,"84.1" +"84.13",4,"84.1" +"84.21",4,"84.2" +"84.22",4,"84.2" +"84.23",4,"84.2" +"84.24",4,"84.2" +"84.25",4,"84.2" +"84.30",4,"84.3" +"85.10",4,"85.1" +"85.20",4,"85.2" +"85.31",4,"85.3" +"85.32",4,"85.3" +"85.41",4,"85.4" +"85.42",4,"85.4" +"85.51",4,"85.5" +"85.52",4,"85.5" +"85.53",4,"85.5" +"85.59",4,"85.5" +"85.60",4,"85.6" +"86.10",4,"86.1" +"86.21",4,"86.2" +"86.22",4,"86.2" +"86.23",4,"86.2" +"86.90",4,"86.9" +"87.10",4,"87.1" +"87.20",4,"87.2" +"87.30",4,"87.3" +"87.90",4,"87.9" +"88.10",4,"88.1" +"88.91",4,"88.9" +"88.99",4,"88.9" +"90.01",4,"90.0" +"90.02",4,"90.0" +"90.03",4,"90.0" +"90.04",4,"90.0" +"91.01",4,"91.0" +"91.02",4,"91.0" +"91.03",4,"91.0" +"91.04",4,"91.0" +"92.00",4,"92.0" +"93.11",4,"93.1" +"93.12",4,"93.1" +"93.13",4,"93.1" +"93.19",4,"93.1" +"93.21",4,"93.2" +"93.29",4,"93.2" +"94.11",4,"94.1" +"94.12",4,"94.1" +"94.20",4,"94.2" +"94.91",4,"94.9" +"94.92",4,"94.9" +"94.99",4,"94.9" +"95.11",4,"95.1" +"95.12",4,"95.1" +"95.21",4,"95.2" +"95.22",4,"95.2" +"95.23",4,"95.2" +"95.24",4,"95.2" +"95.25",4,"95.2" +"95.29",4,"95.2" +"96.01",4,"96.0" +"96.02",4,"96.0" +"96.03",4,"96.0" +"96.04",4,"96.0" +"96.09",4,"96.0" +"97.00",4,"97.0" +"98.10",4,"98.1" +"98.20",4,"98.2" +"99.00",4,"99.0" diff --git a/inst/extdata/ab_data.csv b/inst/extdata/ab_data.csv new file mode 100644 index 0000000..22182a4 --- /dev/null +++ b/inst/extdata/ab_data.csv @@ -0,0 +1,929 @@ +"NACE Rev. 2 Code","NACE Rev. 2.1 Code" +"01.11","01.11" +"01.12","01.12" +"01.13","01.13" +"01.14","01.14" +"01.15","01.15" +"01.16","01.16" +"01.19","01.13" +"01.19","01.19" +"01.21","01.21" +"01.22","01.22" +"01.23","01.23" +"01.24","01.24" +"01.25","01.25" +"01.26","01.26" +"01.27","01.27" +"01.28","01.13" +"01.28","01.28" +"01.29","01.29" +"01.30","01.30" +"01.41","01.41" +"01.42","01.42" +"01.43","01.43" +"01.44","01.44" +"01.45","01.45" +"01.46","01.46" +"01.47","01.47" +"01.49","01.47" +"01.49","01.48" +"01.50","01.50" +"01.61","01.61" +"01.62","01.47" +"01.62","01.62" +"01.63","01.63" +"01.64","01.63" +"01.70","01.70" +"02.10","02.10" +"02.20","02.20" +"02.30","02.30" +"02.40","02.40" +"03.11","03.11" +"03.11","03.30" +"03.12","03.12" +"03.12","03.30" +"03.21","03.21" +"03.21","03.30" +"03.22","01.48" +"03.22","03.22" +"03.22","03.30" +"05.10","05.10" +"05.20","05.20" +"06.10","06.10" +"06.20","06.20" +"07.10","07.10" +"07.21","07.21" +"07.29","07.29" +"08.11","08.11" +"08.12","08.12" +"08.91","08.91" +"08.92","08.92" +"08.93","08.93" +"08.99","08.99" +"09.10","09.10" +"09.90","09.90" +"10.11","10.11" +"10.12","10.12" +"10.13","10.13" +"10.20","10.20" +"10.31","10.31" +"10.32","10.32" +"10.39","10.39" +"10.41","10.41" +"10.42","10.42" +"10.51","10.51" +"10.52","10.52" +"10.61","10.61" +"10.62","10.62" +"10.71","10.71" +"10.71","10.72" +"10.72","10.72" +"10.73","10.73" +"10.81","10.81" +"10.82","10.82" +"10.83","10.83" +"10.84","10.84" +"10.85","10.85" +"10.86","10.61" +"10.86","10.62" +"10.86","10.71" +"10.86","10.72" +"10.86","10.73" +"10.86","10.86" +"10.89","10.89" +"10.91","10.91" +"10.92","10.92" +"11.01","11.01" +"11.02","11.02" +"11.03","11.03" +"11.04","11.04" +"11.05","11.05" +"11.06","11.06" +"11.07","11.07" +"12.00","12.00" +"13.10","13.10" +"13.20","13.20" +"13.20","13.96" +"13.20","23.99" +"13.30","13.30" +"13.30","18.12" +"13.91","13.91" +"13.92","13.92" +"13.92","13.96" +"13.93","13.93" +"13.94","13.94" +"13.95","13.95" +"13.96","13.96" +"13.99","13.99" +"14.11","14.24" +"14.12","14.23" +"14.13","14.10" +"14.13","14.21" +"14.14","14.10" +"14.14","14.21" +"14.14","14.22" +"14.19","14.10" +"14.19","14.21" +"14.19","14.22" +"14.19","14.29" +"14.20","14.24" +"14.31","14.10" +"14.39","14.10" +"15.11","15.11" +"15.12","15.12" +"15.20","15.20" +"16.10","16.11" +"16.10","16.12" +"16.21","16.21" +"16.21","16.27" +"16.22","16.22" +"16.22","16.27" +"16.23","16.23" +"16.23","16.25" +"16.23","16.27" +"16.24","16.24" +"16.24","16.27" +"16.29","15.20" +"16.29","16.26" +"16.29","16.27" +"16.29","16.28" +"17.11","17.11" +"17.12","17.12" +"17.21","17.21" +"17.22","17.22" +"17.23","17.23" +"17.24","17.24" +"17.29","17.25" +"18.11","18.11" +"18.12","18.12" +"18.13","18.13" +"18.14","18.14" +"18.20","18.20" +"19.10","19.10" +"19.20","19.20" +"20.11","20.11" +"20.12","20.12" +"20.13","20.13" +"20.14","20.14" +"20.14","20.51" +"20.15","20.15" +"20.16","20.16" +"20.17","20.17" +"20.20","20.20" +"20.30","20.30" +"20.41","20.41" +"20.42","20.42" +"20.51","20.59" +"20.52","20.59" +"20.53","20.59" +"20.59","20.51" +"20.59","20.59" +"20.60","20.60" +"21.10","21.10" +"21.20","21.20" +"22.11","22.11" +"22.19","15.20" +"22.19","22.12" +"22.21","22.21" +"22.21","22.25" +"22.22","22.22" +"22.22","22.25" +"22.23","22.23" +"22.23","22.24" +"22.23","22.25" +"22.29","15.20" +"22.29","22.25" +"22.29","22.26" +"23.11","23.11" +"23.12","23.12" +"23.12","29.32" +"23.13","23.13" +"23.14","23.14" +"23.19","23.15" +"23.20","23.20" +"23.31","23.31" +"23.32","23.32" +"23.41","23.41" +"23.42","23.42" +"23.43","23.43" +"23.44","23.44" +"23.49","23.45" +"23.51","23.51" +"23.52","23.52" +"23.61","23.61" +"23.62","23.62" +"23.63","23.63" +"23.64","23.64" +"23.65","23.65" +"23.69","23.66" +"23.70","23.70" +"23.91","23.91" +"23.99","23.99" +"24.10","24.10" +"24.20","24.20" +"24.31","24.31" +"24.32","24.32" +"24.33","24.33" +"24.34","24.34" +"24.41","24.41" +"24.42","24.42" +"24.43","24.43" +"24.44","24.44" +"24.45","24.45" +"24.46","24.46" +"24.51","24.51" +"24.52","24.52" +"24.53","24.53" +"24.53","24.54" +"24.54","24.54" +"25.11","25.11" +"25.12","25.12" +"25.21","25.21" +"25.29","25.22" +"25.30","25.21" +"25.40","25.30" +"25.50","25.40" +"25.61","25.51" +"25.61","25.52" +"25.61","25.53" +"25.62","25.53" +"25.71","25.61" +"25.72","25.62" +"25.73","25.63" +"25.91","25.91" +"25.92","25.92" +"25.93","25.93" +"25.94","25.94" +"25.99","25.99" +"26.11","26.11" +"26.11","27.33" +"26.12","26.12" +"26.20","26.20" +"26.30","26.30" +"26.30","26.51" +"26.40","26.40" +"26.51","26.51" +"26.52","26.52" +"26.60","26.60" +"26.70","26.70" +"26.80","26.70" +"27.11","27.11" +"27.11","29.10" +"27.12","27.11" +"27.12","27.12" +"27.20","27.20" +"27.31","27.31" +"27.32","27.32" +"27.33","27.33" +"27.40","27.40" +"27.51","27.51" +"27.52","27.52" +"27.90","27.11" +"27.90","27.90" +"27.90","29.31" +"27.90","32.99" +"28.11","28.11" +"28.12","28.12" +"28.13","28.13" +"28.14","28.14" +"28.15","28.15" +"28.21","28.21" +"28.22","28.22" +"28.23","28.23" +"28.24","28.24" +"28.25","28.25" +"28.25","29.32" +"28.29","28.29" +"28.30","28.30" +"28.41","28.41" +"28.49","27.90" +"28.49","28.42" +"28.91","28.91" +"28.92","28.92" +"28.93","28.93" +"28.94","28.94" +"28.95","28.95" +"28.96","28.96" +"28.99","28.97" +"28.99","28.99" +"29.10","29.10" +"29.20","29.20" +"29.31","29.31" +"29.32","29.32" +"30.11","30.11" +"30.11","30.13" +"30.12","30.12" +"30.20","30.20" +"30.30","30.31" +"30.30","30.32" +"30.40","30.40" +"30.40","33.18" +"30.91","30.91" +"30.91","30.92" +"30.92","30.92" +"30.99","30.99" +"31.01","31.00" +"31.02","31.00" +"31.03","31.00" +"31.09","31.00" +"32.11","32.11" +"32.12","32.12" +"32.13","32.13" +"32.20","32.20" +"32.30","32.30" +"32.30","32.99" +"32.40","32.40" +"32.50","32.50" +"32.91","32.91" +"32.99","32.50" +"32.99","32.99" +"33.11","33.11" +"33.11","33.19" +"33.12","33.12" +"33.12","33.15" +"33.13","33.13" +"33.14","33.14" +"33.15","33.15" +"33.15","33.18" +"33.16","33.16" +"33.16","33.18" +"33.17","33.17" +"33.19","33.19" +"33.19","91.30" +"33.20","33.20" +"35.11","35.11" +"35.11","35.12" +"35.12","35.13" +"35.13","35.14" +"35.14","35.15" +"35.14","35.16" +"35.14","35.40" +"35.21","35.21" +"35.22","35.22" +"35.23","35.23" +"35.23","35.40" +"35.30","35.30" +"36.00","36.00" +"37.00","37.00" +"38.11","38.11" +"38.12","38.12" +"38.21","38.22" +"38.21","38.23" +"38.21","38.31" +"38.21","38.32" +"38.21","38.33" +"38.22","38.22" +"38.22","38.23" +"38.22","38.31" +"38.22","38.32" +"38.22","38.33" +"38.31","38.21" +"38.32","20.16" +"38.32","38.21" +"39.00","39.00" +"41.10","68.12" +"41.20","41.00" +"41.20","91.30" +"42.11","42.11" +"42.11","43.50" +"42.12","42.12" +"42.13","42.13" +"42.21","42.21" +"42.22","42.22" +"42.91","42.91" +"42.99","42.99" +"43.11","43.11" +"43.12","05.10" +"43.12","05.20" +"43.12","07.10" +"43.12","07.21" +"43.12","07.29" +"43.12","08.11" +"43.12","08.12" +"43.12","08.91" +"43.12","08.92" +"43.12","08.93" +"43.12","08.99" +"43.12","09.90" +"43.12","43.12" +"43.13","43.13" +"43.21","43.21" +"43.22","43.22" +"43.29","43.23" +"43.29","43.24" +"43.31","43.31" +"43.32","43.32" +"43.33","43.33" +"43.34","43.34" +"43.39","43.35" +"43.39","81.22" +"43.91","43.41" +"43.99","42.99" +"43.99","43.22" +"43.99","43.23" +"43.99","43.35" +"43.99","43.42" +"43.99","43.50" +"43.99","43.91" +"43.99","43.99" +"43.99","81.22" +"45.11","46.18" +"45.11","46.71" +"45.11","47.81" +"45.19","46.18" +"45.19","46.71" +"45.19","47.81" +"45.20","95.31" +"45.20","95.40" +"45.31","46.18" +"45.31","46.72" +"45.32","47.82" +"45.40","46.18" +"45.40","46.73" +"45.40","47.83" +"45.40","95.32" +"45.40","95.40" +"46.11","46.11" +"46.12","46.12" +"46.13","46.13" +"46.14","46.14" +"46.15","46.15" +"46.16","46.16" +"46.17","46.17" +"46.18","46.18" +"46.19","46.19" +"46.21","46.21" +"46.22","46.22" +"46.23","46.23" +"46.24","46.24" +"46.31","46.31" +"46.32","46.32" +"46.33","46.33" +"46.34","46.34" +"46.35","46.35" +"46.36","46.36" +"46.37","46.37" +"46.38","46.32" +"46.38","46.38" +"46.39","46.39" +"46.41","46.41" +"46.42","46.42" +"46.43","46.43" +"46.43","46.49" +"46.43","46.64" +"46.44","46.44" +"46.45","46.45" +"46.46","46.46" +"46.47","46.47" +"46.48","46.48" +"46.49","46.49" +"46.51","46.50" +"46.52","46.50" +"46.61","46.61" +"46.62","46.62" +"46.63","46.63" +"46.64","46.64" +"46.65","46.47" +"46.66","46.50" +"46.69","46.64" +"46.71","46.81" +"46.72","46.82" +"46.73","46.83" +"46.74","46.84" +"46.75","46.85" +"46.76","46.86" +"46.77","46.87" +"46.90","46.90" +"47.11","47.11" +"47.11","47.91" +"47.19","47.12" +"47.19","47.91" +"47.21","47.21" +"47.22","47.22" +"47.23","47.23" +"47.24","47.24" +"47.25","47.25" +"47.26","47.26" +"47.29","47.27" +"47.30","47.30" +"47.41","47.40" +"47.42","47.40" +"47.43","47.40" +"47.51","47.51" +"47.52","47.52" +"47.53","47.53" +"47.54","47.54" +"47.59","47.55" +"47.59","47.69" +"47.61","47.61" +"47.62","47.62" +"47.63","47.69" +"47.64","47.63" +"47.65","47.64" +"47.71","47.71" +"47.72","47.72" +"47.73","47.73" +"47.74","47.74" +"47.75","47.75" +"47.76","47.76" +"47.77","47.77" +"47.78","47.63" +"47.78","47.69" +"47.78","47.74" +"47.78","47.78" +"47.79","47.79" +"47.81","47.11" +"47.81","47.21" +"47.81","47.22" +"47.81","47.23" +"47.81","47.24" +"47.81","47.25" +"47.81","47.26" +"47.81","47.27" +"47.82","47.51" +"47.82","47.71" +"47.82","47.72" +"47.89","47.12" +"47.89","47.40" +"47.89","47.52" +"47.89","47.53" +"47.89","47.54" +"47.89","47.55" +"47.89","47.61" +"47.89","47.62" +"47.89","47.63" +"47.89","47.64" +"47.89","47.69" +"47.89","47.74" +"47.89","47.75" +"47.89","47.76" +"47.89","47.77" +"47.89","47.78" +"47.89","47.79" +"47.89","47.82" +"47.89","47.83" +"47.91","47.11" +"47.91","47.12" +"47.91","47.21" +"47.91","47.22" +"47.91","47.23" +"47.91","47.24" +"47.91","47.25" +"47.91","47.26" +"47.91","47.27" +"47.91","47.40" +"47.91","47.51" +"47.91","47.52" +"47.91","47.53" +"47.91","47.54" +"47.91","47.55" +"47.91","47.61" +"47.91","47.62" +"47.91","47.63" +"47.91","47.64" +"47.91","47.69" +"47.91","47.71" +"47.91","47.72" +"47.91","47.73" +"47.91","47.74" +"47.91","47.75" +"47.91","47.76" +"47.91","47.77" +"47.91","47.78" +"47.91","47.79" +"47.91","47.82" +"47.91","47.83" +"47.99","47.11" +"47.99","47.12" +"47.99","47.21" +"47.99","47.22" +"47.99","47.23" +"47.99","47.24" +"47.99","47.25" +"47.99","47.26" +"47.99","47.27" +"47.99","47.40" +"47.99","47.51" +"47.99","47.52" +"47.99","47.53" +"47.99","47.54" +"47.99","47.55" +"47.99","47.61" +"47.99","47.62" +"47.99","47.63" +"47.99","47.64" +"47.99","47.69" +"47.99","47.71" +"47.99","47.72" +"47.99","47.74" +"47.99","47.75" +"47.99","47.76" +"47.99","47.77" +"47.99","47.78" +"47.99","47.79" +"47.99","47.82" +"47.99","47.83" +"49.10","49.11" +"49.10","49.12" +"49.20","49.20" +"49.31","49.11" +"49.31","49.12" +"49.31","49.31" +"49.31","49.34" +"49.32","49.33" +"49.32","52.32" +"49.39","49.31" +"49.39","49.32" +"49.39","49.34" +"49.39","49.39" +"49.41","49.41" +"49.41","52.24" +"49.42","49.42" +"49.50","49.50" +"50.10","50.10" +"50.20","50.20" +"50.30","50.30" +"50.40","50.40" +"51.10","51.10" +"51.21","51.21" +"51.22","51.22" +"52.10","35.24" +"52.10","52.10" +"52.10","63.10" +"52.21","52.21" +"52.22","52.22" +"52.23","52.23" +"52.24","52.24" +"52.29","52.25" +"52.29","52.26" +"52.29","52.31" +"53.10","53.10" +"53.20","53.20" +"55.10","55.10" +"55.20","55.20" +"55.30","55.30" +"55.90","55.90" +"56.10","56.11" +"56.10","56.12" +"56.21","56.21" +"56.29","56.22" +"56.30","56.30" +"58.11","58.11" +"58.12","58.19" +"58.13","58.12" +"58.14","58.13" +"58.19","58.19" +"58.19","60.39" +"58.21","58.21" +"58.29","58.29" +"59.11","59.11" +"59.11","60.20" +"59.12","59.12" +"59.13","59.13" +"59.14","59.14" +"59.20","58.11" +"59.20","59.20" +"60.10","60.10" +"60.20","60.20" +"61.10","61.10" +"61.20","61.10" +"61.20","61.90" +"61.30","61.10" +"61.90","61.10" +"61.90","61.90" +"62.01","62.10" +"62.02","62.20" +"62.03","62.20" +"62.09","62.90" +"63.11","59.20" +"63.11","60.20" +"63.11","60.39" +"63.11","63.10" +"63.12","60.39" +"63.12","63.91" +"63.91","60.31" +"63.99","63.92" +"64.11","64.11" +"64.19","64.19" +"64.20","64.21" +"64.20","64.22" +"64.30","64.31" +"64.30","64.32" +"64.91","64.91" +"64.92","64.92" +"64.99","64.22" +"64.99","64.92" +"64.99","64.99" +"65.11","65.11" +"65.12","65.12" +"65.20","65.20" +"65.30","65.30" +"66.11","66.11" +"66.12","66.12" +"66.19","66.19" +"66.19","66.30" +"66.21","66.21" +"66.22","66.22" +"66.29","66.29" +"66.30","66.30" +"68.10","68.11" +"68.20","55.90" +"68.20","68.20" +"68.31","68.31" +"68.31","68.32" +"68.32","68.32" +"69.10","69.10" +"69.20","69.20" +"70.10","70.10" +"70.21","73.30" +"70.22","70.20" +"71.11","71.11" +"71.12","71.12" +"71.20","71.20" +"72.11","72.10" +"72.19","72.10" +"72.20","72.20" +"73.11","73.11" +"73.12","73.12" +"73.20","73.20" +"74.10","74.11" +"74.10","74.12" +"74.10","74.13" +"74.10","74.14" +"74.20","18.12" +"74.20","58.19" +"74.20","74.20" +"74.30","74.30" +"74.90","74.91" +"74.90","74.99" +"74.90","80.09" +"75.00","75.00" +"77.11","77.11" +"77.12","77.11" +"77.12","77.12" +"77.21","77.21" +"77.22","77.22" +"77.29","77.22" +"77.31","77.31" +"77.32","77.32" +"77.33","77.33" +"77.34","77.34" +"77.35","77.35" +"77.39","77.11" +"77.39","77.12" +"77.39","77.39" +"77.40","77.40" +"78.10","78.10" +"78.20","78.20" +"78.30","78.20" +"79.11","52.32" +"79.11","55.40" +"79.11","77.51" +"79.11","79.11" +"79.12","79.12" +"79.90","52.32" +"79.90","55.40" +"79.90","56.40" +"79.90","77.51" +"79.90","79.90" +"79.90","82.40" +"80.10","80.01" +"80.20","80.09" +"80.30","80.01" +"81.10","81.10" +"81.21","81.21" +"81.21","96.91" +"81.22","81.22" +"81.29","81.23" +"81.30","81.30" +"82.11","82.10" +"82.19","18.12" +"82.19","82.10" +"82.20","82.20" +"82.30","82.30" +"82.30","93.29" +"82.91","82.91" +"82.92","82.92" +"82.99","43.60" +"82.99","46.11" +"82.99","46.12" +"82.99","46.13" +"82.99","46.14" +"82.99","46.15" +"82.99","46.16" +"82.99","46.17" +"82.99","46.18" +"82.99","46.19" +"82.99","47.91" +"82.99","47.92" +"82.99","52.31" +"82.99","52.32" +"82.99","53.30" +"82.99","55.40" +"82.99","56.40" +"82.99","61.20" +"82.99","77.51" +"82.99","77.52" +"82.99","82.40" +"82.99","82.91" +"82.99","82.99" +"82.99","85.61" +"82.99","86.97" +"82.99","87.91" +"82.99","95.40" +"82.99","96.40" +"84.11","84.11" +"84.12","84.12" +"84.13","84.13" +"84.21","84.21" +"84.22","84.22" +"84.23","84.23" +"84.24","84.24" +"84.25","84.25" +"84.30","84.30" +"85.10","85.10" +"85.10","88.91" +"85.20","85.20" +"85.31","85.31" +"85.32","85.32" +"85.41","85.33" +"85.42","85.40" +"85.51","85.51" +"85.51","93.13" +"85.52","85.52" +"85.53","85.53" +"85.59","85.59" +"85.60","85.69" +"86.10","86.10" +"86.21","86.21" +"86.22","86.22" +"86.23","86.23" +"86.90","86.91" +"86.90","86.92" +"86.90","86.93" +"86.90","86.94" +"86.90","86.95" +"86.90","86.96" +"86.90","86.99" +"87.10","87.10" +"87.20","87.20" +"87.30","87.30" +"87.90","87.99" +"88.10","88.10" +"88.91","88.91" +"88.99","88.99" +"90.01","90.20" +"90.02","90.13" +"90.02","90.39" +"90.03","58.11" +"90.03","58.12" +"90.03","58.13" +"90.03","90.11" +"90.03","90.12" +"90.03","91.30" +"90.04","90.31" +"91.01","91.11" +"91.01","91.12" +"91.02","91.21" +"91.03","91.22" +"91.04","91.41" +"91.04","91.42" +"92.00","92.00" +"93.11","93.11" +"93.11","93.12" +"93.12","93.12" +"93.13","93.13" +"93.19","93.19" +"93.19","93.29" +"93.21","93.21" +"93.21","93.29" +"93.29","93.11" +"93.29","93.12" +"93.29","93.19" +"93.29","93.29" +"94.11","94.11" +"94.12","94.12" +"94.20","94.20" +"94.91","94.91" +"94.92","94.92" +"94.99","94.99" +"95.11","95.10" +"95.12","95.10" +"95.21","95.21" +"95.22","95.22" +"95.23","95.23" +"95.24","95.24" +"95.25","95.25" +"95.29","95.29" +"96.01","53.20" +"96.01","96.10" +"96.01","96.91" +"96.02","96.21" +"96.02","96.22" +"96.03","96.30" +"96.04","96.23" +"96.09","96.99" +"97.00","97.00" +"98.10","98.10" +"98.20","98.20" +"99.00","99.00" diff --git a/inst/extdata/b_data.csv b/inst/extdata/b_data.csv new file mode 100644 index 0000000..c03143e --- /dev/null +++ b/inst/extdata/b_data.csv @@ -0,0 +1,1047 @@ +"NACE Rev. 2.1 Code","Level","Superior" +"A",1,NA +"B",1,NA +"C",1,NA +"D",1,NA +"E",1,NA +"F",1,NA +"G",1,NA +"H",1,NA +"I",1,NA +"J",1,NA +"K",1,NA +"L",1,NA +"M",1,NA +"N",1,NA +"O",1,NA +"P",1,NA +"Q",1,NA +"R",1,NA +"S",1,NA +"T",1,NA +"U",1,NA +"V",1,NA +"01",2,"A" +"02",2,"A" +"03",2,"A" +"05",2,"B" +"06",2,"B" +"07",2,"B" +"08",2,"B" +"09",2,"B" +"10",2,"C" +"11",2,"C" +"12",2,"C" +"13",2,"C" +"14",2,"C" +"15",2,"C" +"16",2,"C" +"17",2,"C" +"18",2,"C" +"19",2,"C" +"20",2,"C" +"21",2,"C" +"22",2,"C" +"23",2,"C" +"24",2,"C" +"25",2,"C" +"26",2,"C" +"27",2,"C" +"28",2,"C" +"29",2,"C" +"30",2,"C" +"31",2,"C" +"32",2,"C" +"33",2,"C" +"35",2,"D" +"36",2,"E" +"37",2,"E" +"38",2,"E" +"39",2,"E" +"41",2,"F" +"42",2,"F" +"43",2,"F" +"46",2,"G" +"47",2,"G" +"49",2,"H" +"50",2,"H" +"51",2,"H" +"52",2,"H" +"53",2,"H" +"55",2,"I" +"56",2,"I" +"58",2,"J" +"59",2,"J" +"60",2,"J" +"61",2,"K" +"62",2,"K" +"63",2,"K" +"64",2,"L" +"65",2,"L" +"66",2,"L" +"68",2,"M" +"69",2,"N" +"70",2,"N" +"71",2,"N" +"72",2,"N" +"73",2,"N" +"74",2,"N" +"75",2,"N" +"77",2,"O" +"78",2,"O" +"79",2,"O" +"80",2,"O" +"81",2,"O" +"82",2,"O" +"84",2,"P" +"85",2,"Q" +"86",2,"R" +"87",2,"R" +"88",2,"R" +"90",2,"S" +"91",2,"S" +"92",2,"S" +"93",2,"S" +"94",2,"T" +"95",2,"T" +"96",2,"T" +"97",2,"U" +"98",2,"U" +"99",2,"V" +"01.1",3,"01" +"01.2",3,"01" +"01.3",3,"01" +"01.4",3,"01" +"01.5",3,"01" +"01.6",3,"01" +"01.7",3,"01" +"02.1",3,"02" +"02.2",3,"02" +"02.3",3,"02" +"02.4",3,"02" +"03.1",3,"03" +"03.2",3,"03" +"03.3",3,"03" +"05.1",3,"05" +"05.2",3,"05" +"06.1",3,"06" +"06.2",3,"06" +"07.1",3,"07" +"07.2",3,"07" +"08.1",3,"08" +"08.9",3,"08" +"09.1",3,"09" +"09.9",3,"09" +"10.1",3,"10" +"10.2",3,"10" +"10.3",3,"10" +"10.4",3,"10" +"10.5",3,"10" +"10.6",3,"10" +"10.7",3,"10" +"10.8",3,"10" +"10.9",3,"10" +"11.0",3,"11" +"12.0",3,"12" +"13.1",3,"13" +"13.2",3,"13" +"13.3",3,"13" +"13.9",3,"13" +"14.1",3,"14" +"14.2",3,"14" +"15.1",3,"15" +"15.2",3,"15" +"16.1",3,"16" +"16.2",3,"16" +"17.1",3,"17" +"17.2",3,"17" +"18.1",3,"18" +"18.2",3,"18" +"19.1",3,"19" +"19.2",3,"19" +"20.1",3,"20" +"20.2",3,"20" +"20.3",3,"20" +"20.4",3,"20" +"20.5",3,"20" +"20.6",3,"20" +"21.1",3,"21" +"21.2",3,"21" +"22.1",3,"22" +"22.2",3,"22" +"23.1",3,"23" +"23.2",3,"23" +"23.3",3,"23" +"23.4",3,"23" +"23.5",3,"23" +"23.6",3,"23" +"23.7",3,"23" +"23.9",3,"23" +"24.1",3,"24" +"24.2",3,"24" +"24.3",3,"24" +"24.4",3,"24" +"24.5",3,"24" +"25.1",3,"25" +"25.2",3,"25" +"25.3",3,"25" +"25.4",3,"25" +"25.5",3,"25" +"25.6",3,"25" +"25.9",3,"25" +"26.1",3,"26" +"26.2",3,"26" +"26.3",3,"26" +"26.4",3,"26" +"26.5",3,"26" +"26.6",3,"26" +"26.7",3,"26" +"27.1",3,"27" +"27.2",3,"27" +"27.3",3,"27" +"27.4",3,"27" +"27.5",3,"27" +"27.9",3,"27" +"28.1",3,"28" +"28.2",3,"28" +"28.3",3,"28" +"28.4",3,"28" +"28.9",3,"28" +"29.1",3,"29" +"29.2",3,"29" +"29.3",3,"29" +"30.1",3,"30" +"30.2",3,"30" +"30.3",3,"30" +"30.4",3,"30" +"30.9",3,"30" +"31.0",3,"31" +"32.1",3,"32" +"32.2",3,"32" +"32.3",3,"32" +"32.4",3,"32" +"32.5",3,"32" +"32.9",3,"32" +"33.1",3,"33" +"33.2",3,"33" +"35.1",3,"35" +"35.2",3,"35" +"35.3",3,"35" +"35.4",3,"35" +"36.0",3,"36" +"37.0",3,"37" +"38.1",3,"38" +"38.2",3,"38" +"38.3",3,"38" +"39.0",3,"39" +"41.0",3,"41" +"42.1",3,"42" +"42.2",3,"42" +"42.9",3,"42" +"43.1",3,"43" +"43.2",3,"43" +"43.3",3,"43" +"43.4",3,"43" +"43.5",3,"43" +"43.6",3,"43" +"43.9",3,"43" +"46.1",3,"46" +"46.2",3,"46" +"46.3",3,"46" +"46.4",3,"46" +"46.5",3,"46" +"46.6",3,"46" +"46.7",3,"46" +"46.8",3,"46" +"46.9",3,"46" +"47.1",3,"47" +"47.2",3,"47" +"47.3",3,"47" +"47.4",3,"47" +"47.5",3,"47" +"47.6",3,"47" +"47.7",3,"47" +"47.8",3,"47" +"47.9",3,"47" +"49.1",3,"49" +"49.2",3,"49" +"49.3",3,"49" +"49.4",3,"49" +"49.5",3,"49" +"50.1",3,"50" +"50.2",3,"50" +"50.3",3,"50" +"50.4",3,"50" +"51.1",3,"51" +"51.2",3,"51" +"52.1",3,"52" +"52.2",3,"52" +"52.3",3,"52" +"53.1",3,"53" +"53.2",3,"53" +"53.3",3,"53" +"55.1",3,"55" +"55.2",3,"55" +"55.3",3,"55" +"55.4",3,"55" +"55.9",3,"55" +"56.1",3,"56" +"56.2",3,"56" +"56.3",3,"56" +"56.4",3,"56" +"58.1",3,"58" +"58.2",3,"58" +"59.1",3,"59" +"59.2",3,"59" +"60.1",3,"60" +"60.2",3,"60" +"60.3",3,"60" +"61.1",3,"61" +"61.2",3,"61" +"61.9",3,"61" +"62.1",3,"62" +"62.2",3,"62" +"62.9",3,"62" +"63.1",3,"63" +"63.9",3,"63" +"64.1",3,"64" +"64.2",3,"64" +"64.3",3,"64" +"64.9",3,"64" +"65.1",3,"65" +"65.2",3,"65" +"65.3",3,"65" +"66.1",3,"66" +"66.2",3,"66" +"66.3",3,"66" +"68.1",3,"68" +"68.2",3,"68" +"68.3",3,"68" +"69.1",3,"69" +"69.2",3,"69" +"70.1",3,"70" +"70.2",3,"70" +"71.1",3,"71" +"71.2",3,"71" +"72.1",3,"72" +"72.2",3,"72" +"73.1",3,"73" +"73.2",3,"73" +"73.3",3,"73" +"74.1",3,"74" +"74.2",3,"74" +"74.3",3,"74" +"74.9",3,"74" +"75.0",3,"75" +"77.1",3,"77" +"77.2",3,"77" +"77.3",3,"77" +"77.4",3,"77" +"77.5",3,"77" +"78.1",3,"78" +"78.2",3,"78" +"79.1",3,"79" +"79.9",3,"79" +"80.0",3,"80" +"81.1",3,"81" +"81.2",3,"81" +"81.3",3,"81" +"82.1",3,"82" +"82.2",3,"82" +"82.3",3,"82" +"82.4",3,"82" +"82.9",3,"82" +"84.1",3,"84" +"84.2",3,"84" +"84.3",3,"84" +"85.1",3,"85" +"85.2",3,"85" +"85.3",3,"85" +"85.4",3,"85" +"85.5",3,"85" +"85.6",3,"85" +"86.1",3,"86" +"86.2",3,"86" +"86.9",3,"86" +"87.1",3,"87" +"87.2",3,"87" +"87.3",3,"87" +"87.9",3,"87" +"88.1",3,"88" +"88.9",3,"88" +"90.1",3,"90" +"90.2",3,"90" +"90.3",3,"90" +"91.1",3,"91" +"91.2",3,"91" +"91.3",3,"91" +"91.4",3,"91" +"92.0",3,"92" +"93.1",3,"93" +"93.2",3,"93" +"94.1",3,"94" +"94.2",3,"94" +"94.9",3,"94" +"95.1",3,"95" +"95.2",3,"95" +"95.3",3,"95" +"95.4",3,"95" +"96.1",3,"96" +"96.2",3,"96" +"96.3",3,"96" +"96.4",3,"96" +"96.9",3,"96" +"97.0",3,"97" +"98.1",3,"98" +"98.2",3,"98" +"99.0",3,"99" +"01.11",4,"01.1" +"01.12",4,"01.1" +"01.13",4,"01.1" +"01.14",4,"01.1" +"01.15",4,"01.1" +"01.16",4,"01.1" +"01.19",4,"01.1" +"01.21",4,"01.2" +"01.22",4,"01.2" +"01.23",4,"01.2" +"01.24",4,"01.2" +"01.25",4,"01.2" +"01.26",4,"01.2" +"01.27",4,"01.2" +"01.28",4,"01.2" +"01.29",4,"01.2" +"01.30",4,"01.3" +"01.41",4,"01.4" +"01.42",4,"01.4" +"01.43",4,"01.4" +"01.44",4,"01.4" +"01.45",4,"01.4" +"01.46",4,"01.4" +"01.47",4,"01.4" +"01.48",4,"01.4" +"01.50",4,"01.5" +"01.61",4,"01.6" +"01.62",4,"01.6" +"01.63",4,"01.6" +"01.70",4,"01.7" +"02.10",4,"02.1" +"02.20",4,"02.2" +"02.30",4,"02.3" +"02.40",4,"02.4" +"03.11",4,"03.1" +"03.12",4,"03.1" +"03.21",4,"03.2" +"03.22",4,"03.2" +"03.30",4,"03.3" +"05.10",4,"05.1" +"05.20",4,"05.2" +"06.10",4,"06.1" +"06.20",4,"06.2" +"07.10",4,"07.1" +"07.21",4,"07.2" +"07.29",4,"07.2" +"08.11",4,"08.1" +"08.12",4,"08.1" +"08.91",4,"08.9" +"08.92",4,"08.9" +"08.93",4,"08.9" +"08.99",4,"08.9" +"09.10",4,"09.1" +"09.90",4,"09.9" +"10.11",4,"10.1" +"10.12",4,"10.1" +"10.13",4,"10.1" +"10.20",4,"10.2" +"10.31",4,"10.3" +"10.32",4,"10.3" +"10.39",4,"10.3" +"10.41",4,"10.4" +"10.42",4,"10.4" +"10.51",4,"10.5" +"10.52",4,"10.5" +"10.61",4,"10.6" +"10.62",4,"10.6" +"10.71",4,"10.7" +"10.72",4,"10.7" +"10.73",4,"10.7" +"10.81",4,"10.8" +"10.82",4,"10.8" +"10.83",4,"10.8" +"10.84",4,"10.8" +"10.85",4,"10.8" +"10.86",4,"10.8" +"10.89",4,"10.8" +"10.91",4,"10.9" +"10.92",4,"10.9" +"11.01",4,"11.0" +"11.02",4,"11.0" +"11.03",4,"11.0" +"11.04",4,"11.0" +"11.05",4,"11.0" +"11.06",4,"11.0" +"11.07",4,"11.0" +"12.00",4,"12.0" +"13.10",4,"13.1" +"13.20",4,"13.2" +"13.30",4,"13.3" +"13.91",4,"13.9" +"13.92",4,"13.9" +"13.93",4,"13.9" +"13.94",4,"13.9" +"13.95",4,"13.9" +"13.96",4,"13.9" +"13.99",4,"13.9" +"14.10",4,"14.1" +"14.21",4,"14.2" +"14.22",4,"14.2" +"14.23",4,"14.2" +"14.24",4,"14.2" +"14.29",4,"14.2" +"15.11",4,"15.1" +"15.12",4,"15.1" +"15.20",4,"15.2" +"16.11",4,"16.1" +"16.12",4,"16.1" +"16.21",4,"16.2" +"16.22",4,"16.2" +"16.23",4,"16.2" +"16.24",4,"16.2" +"16.25",4,"16.2" +"16.26",4,"16.2" +"16.27",4,"16.2" +"16.28",4,"16.2" +"17.11",4,"17.1" +"17.12",4,"17.1" +"17.21",4,"17.2" +"17.22",4,"17.2" +"17.23",4,"17.2" +"17.24",4,"17.2" +"17.25",4,"17.2" +"18.11",4,"18.1" +"18.12",4,"18.1" +"18.13",4,"18.1" +"18.14",4,"18.1" +"18.20",4,"18.2" +"19.10",4,"19.1" +"19.20",4,"19.2" +"20.11",4,"20.1" +"20.12",4,"20.1" +"20.13",4,"20.1" +"20.14",4,"20.1" +"20.15",4,"20.1" +"20.16",4,"20.1" +"20.17",4,"20.1" +"20.20",4,"20.2" +"20.30",4,"20.3" +"20.41",4,"20.4" +"20.42",4,"20.4" +"20.51",4,"20.5" +"20.59",4,"20.5" +"20.60",4,"20.6" +"21.10",4,"21.1" +"21.20",4,"21.2" +"22.11",4,"22.1" +"22.12",4,"22.1" +"22.21",4,"22.2" +"22.22",4,"22.2" +"22.23",4,"22.2" +"22.24",4,"22.2" +"22.25",4,"22.2" +"22.26",4,"22.2" +"23.11",4,"23.1" +"23.12",4,"23.1" +"23.13",4,"23.1" +"23.14",4,"23.1" +"23.15",4,"23.1" +"23.20",4,"23.2" +"23.31",4,"23.3" +"23.32",4,"23.3" +"23.41",4,"23.4" +"23.42",4,"23.4" +"23.43",4,"23.4" +"23.44",4,"23.4" +"23.45",4,"23.4" +"23.51",4,"23.5" +"23.52",4,"23.5" +"23.61",4,"23.6" +"23.62",4,"23.6" +"23.63",4,"23.6" +"23.64",4,"23.6" +"23.65",4,"23.6" +"23.66",4,"23.6" +"23.70",4,"23.7" +"23.91",4,"23.9" +"23.99",4,"23.9" +"24.10",4,"24.1" +"24.20",4,"24.2" +"24.31",4,"24.3" +"24.32",4,"24.3" +"24.33",4,"24.3" +"24.34",4,"24.3" +"24.41",4,"24.4" +"24.42",4,"24.4" +"24.43",4,"24.4" +"24.44",4,"24.4" +"24.45",4,"24.4" +"24.46",4,"24.4" +"24.51",4,"24.5" +"24.52",4,"24.5" +"24.53",4,"24.5" +"24.54",4,"24.5" +"25.11",4,"25.1" +"25.12",4,"25.1" +"25.21",4,"25.2" +"25.22",4,"25.2" +"25.30",4,"25.3" +"25.40",4,"25.4" +"25.51",4,"25.5" +"25.52",4,"25.5" +"25.53",4,"25.5" +"25.61",4,"25.6" +"25.62",4,"25.6" +"25.63",4,"25.6" +"25.91",4,"25.9" +"25.92",4,"25.9" +"25.93",4,"25.9" +"25.94",4,"25.9" +"25.99",4,"25.9" +"26.11",4,"26.1" +"26.12",4,"26.1" +"26.20",4,"26.2" +"26.30",4,"26.3" +"26.40",4,"26.4" +"26.51",4,"26.5" +"26.52",4,"26.5" +"26.60",4,"26.6" +"26.70",4,"26.7" +"27.11",4,"27.1" +"27.12",4,"27.1" +"27.20",4,"27.2" +"27.31",4,"27.3" +"27.32",4,"27.3" +"27.33",4,"27.3" +"27.40",4,"27.4" +"27.51",4,"27.5" +"27.52",4,"27.5" +"27.90",4,"27.9" +"28.11",4,"28.1" +"28.12",4,"28.1" +"28.13",4,"28.1" +"28.14",4,"28.1" +"28.15",4,"28.1" +"28.21",4,"28.2" +"28.22",4,"28.2" +"28.23",4,"28.2" +"28.24",4,"28.2" +"28.25",4,"28.2" +"28.29",4,"28.2" +"28.30",4,"28.3" +"28.41",4,"28.4" +"28.42",4,"28.4" +"28.91",4,"28.9" +"28.92",4,"28.9" +"28.93",4,"28.9" +"28.94",4,"28.9" +"28.95",4,"28.9" +"28.96",4,"28.9" +"28.97",4,"28.9" +"28.99",4,"28.9" +"29.10",4,"29.1" +"29.20",4,"29.2" +"29.31",4,"29.3" +"29.32",4,"29.3" +"30.11",4,"30.1" +"30.12",4,"30.1" +"30.13",4,"30.1" +"30.20",4,"30.2" +"30.31",4,"30.3" +"30.32",4,"30.3" +"30.40",4,"30.4" +"30.91",4,"30.9" +"30.92",4,"30.9" +"30.99",4,"30.9" +"31.00",4,"31.0" +"32.11",4,"32.1" +"32.12",4,"32.1" +"32.13",4,"32.1" +"32.20",4,"32.2" +"32.30",4,"32.3" +"32.40",4,"32.4" +"32.50",4,"32.5" +"32.91",4,"32.9" +"32.99",4,"32.9" +"33.11",4,"33.1" +"33.12",4,"33.1" +"33.13",4,"33.1" +"33.14",4,"33.1" +"33.15",4,"33.1" +"33.16",4,"33.1" +"33.17",4,"33.1" +"33.18",4,"33.1" +"33.19",4,"33.1" +"33.20",4,"33.2" +"35.11",4,"35.1" +"35.12",4,"35.1" +"35.13",4,"35.1" +"35.14",4,"35.1" +"35.15",4,"35.1" +"35.16",4,"35.1" +"35.21",4,"35.2" +"35.22",4,"35.2" +"35.23",4,"35.2" +"35.24",4,"35.2" +"35.30",4,"35.3" +"35.40",4,"35.4" +"36.00",4,"36.0" +"37.00",4,"37.0" +"38.11",4,"38.1" +"38.12",4,"38.1" +"38.21",4,"38.2" +"38.22",4,"38.2" +"38.23",4,"38.2" +"38.31",4,"38.3" +"38.32",4,"38.3" +"38.33",4,"38.3" +"39.00",4,"39.0" +"41.00",4,"41.0" +"42.11",4,"42.1" +"42.12",4,"42.1" +"42.13",4,"42.1" +"42.21",4,"42.2" +"42.22",4,"42.2" +"42.91",4,"42.9" +"42.99",4,"42.9" +"43.11",4,"43.1" +"43.12",4,"43.1" +"43.13",4,"43.1" +"43.21",4,"43.2" +"43.22",4,"43.2" +"43.23",4,"43.2" +"43.24",4,"43.2" +"43.31",4,"43.3" +"43.32",4,"43.3" +"43.33",4,"43.3" +"43.34",4,"43.3" +"43.35",4,"43.3" +"43.41",4,"43.4" +"43.42",4,"43.4" +"43.50",4,"43.5" +"43.60",4,"43.6" +"43.91",4,"43.9" +"43.99",4,"43.9" +"46.11",4,"46.1" +"46.12",4,"46.1" +"46.13",4,"46.1" +"46.14",4,"46.1" +"46.15",4,"46.1" +"46.16",4,"46.1" +"46.17",4,"46.1" +"46.18",4,"46.1" +"46.19",4,"46.1" +"46.21",4,"46.2" +"46.22",4,"46.2" +"46.23",4,"46.2" +"46.24",4,"46.2" +"46.31",4,"46.3" +"46.32",4,"46.3" +"46.33",4,"46.3" +"46.34",4,"46.3" +"46.35",4,"46.3" +"46.36",4,"46.3" +"46.37",4,"46.3" +"46.38",4,"46.3" +"46.39",4,"46.3" +"46.41",4,"46.4" +"46.42",4,"46.4" +"46.43",4,"46.4" +"46.44",4,"46.4" +"46.45",4,"46.4" +"46.46",4,"46.4" +"46.47",4,"46.4" +"46.48",4,"46.4" +"46.49",4,"46.4" +"46.50",4,"46.5" +"46.61",4,"46.6" +"46.62",4,"46.6" +"46.63",4,"46.6" +"46.64",4,"46.6" +"46.71",4,"46.7" +"46.72",4,"46.7" +"46.73",4,"46.7" +"46.81",4,"46.8" +"46.82",4,"46.8" +"46.83",4,"46.8" +"46.84",4,"46.8" +"46.85",4,"46.8" +"46.86",4,"46.8" +"46.87",4,"46.8" +"46.90",4,"46.9" +"47.11",4,"47.1" +"47.12",4,"47.1" +"47.21",4,"47.2" +"47.22",4,"47.2" +"47.23",4,"47.2" +"47.24",4,"47.2" +"47.25",4,"47.2" +"47.26",4,"47.2" +"47.27",4,"47.2" +"47.30",4,"47.3" +"47.40",4,"47.4" +"47.51",4,"47.5" +"47.52",4,"47.5" +"47.53",4,"47.5" +"47.54",4,"47.5" +"47.55",4,"47.5" +"47.61",4,"47.6" +"47.62",4,"47.6" +"47.63",4,"47.6" +"47.64",4,"47.6" +"47.69",4,"47.6" +"47.71",4,"47.7" +"47.72",4,"47.7" +"47.73",4,"47.7" +"47.74",4,"47.7" +"47.75",4,"47.7" +"47.76",4,"47.7" +"47.77",4,"47.7" +"47.78",4,"47.7" +"47.79",4,"47.7" +"47.81",4,"47.8" +"47.82",4,"47.8" +"47.83",4,"47.8" +"47.91",4,"47.9" +"47.92",4,"47.9" +"49.11",4,"49.1" +"49.12",4,"49.1" +"49.20",4,"49.2" +"49.31",4,"49.3" +"49.32",4,"49.3" +"49.33",4,"49.3" +"49.34",4,"49.3" +"49.39",4,"49.3" +"49.41",4,"49.4" +"49.42",4,"49.4" +"49.50",4,"49.5" +"50.10",4,"50.1" +"50.20",4,"50.2" +"50.30",4,"50.3" +"50.40",4,"50.4" +"51.10",4,"51.1" +"51.21",4,"51.2" +"51.22",4,"51.2" +"52.10",4,"52.1" +"52.21",4,"52.2" +"52.22",4,"52.2" +"52.23",4,"52.2" +"52.24",4,"52.2" +"52.25",4,"52.2" +"52.26",4,"52.2" +"52.31",4,"52.3" +"52.32",4,"52.3" +"53.10",4,"53.1" +"53.20",4,"53.2" +"53.30",4,"53.3" +"55.10",4,"55.1" +"55.20",4,"55.2" +"55.30",4,"55.3" +"55.40",4,"55.4" +"55.90",4,"55.9" +"56.11",4,"56.1" +"56.12",4,"56.1" +"56.21",4,"56.2" +"56.22",4,"56.2" +"56.30",4,"56.3" +"56.40",4,"56.4" +"58.11",4,"58.1" +"58.12",4,"58.1" +"58.13",4,"58.1" +"58.19",4,"58.1" +"58.21",4,"58.2" +"58.29",4,"58.2" +"59.11",4,"59.1" +"59.12",4,"59.1" +"59.13",4,"59.1" +"59.14",4,"59.1" +"59.20",4,"59.2" +"60.10",4,"60.1" +"60.20",4,"60.2" +"60.31",4,"60.3" +"60.39",4,"60.3" +"61.10",4,"61.1" +"61.20",4,"61.2" +"61.90",4,"61.9" +"62.10",4,"62.1" +"62.20",4,"62.2" +"62.90",4,"62.9" +"63.10",4,"63.1" +"63.91",4,"63.9" +"63.92",4,"63.9" +"64.11",4,"64.1" +"64.19",4,"64.1" +"64.21",4,"64.2" +"64.22",4,"64.2" +"64.31",4,"64.3" +"64.32",4,"64.3" +"64.91",4,"64.9" +"64.92",4,"64.9" +"64.99",4,"64.9" +"65.11",4,"65.1" +"65.12",4,"65.1" +"65.20",4,"65.2" +"65.30",4,"65.3" +"66.11",4,"66.1" +"66.12",4,"66.1" +"66.19",4,"66.1" +"66.21",4,"66.2" +"66.22",4,"66.2" +"66.29",4,"66.2" +"66.30",4,"66.3" +"68.11",4,"68.1" +"68.12",4,"68.1" +"68.20",4,"68.2" +"68.31",4,"68.3" +"68.32",4,"68.3" +"69.10",4,"69.1" +"69.20",4,"69.2" +"70.10",4,"70.1" +"70.20",4,"70.2" +"71.11",4,"71.1" +"71.12",4,"71.1" +"71.20",4,"71.2" +"72.10",4,"72.1" +"72.20",4,"72.2" +"73.11",4,"73.1" +"73.12",4,"73.1" +"73.20",4,"73.2" +"73.30",4,"73.3" +"74.11",4,"74.1" +"74.12",4,"74.1" +"74.13",4,"74.1" +"74.14",4,"74.1" +"74.20",4,"74.2" +"74.30",4,"74.3" +"74.91",4,"74.9" +"74.99",4,"74.9" +"75.00",4,"75.0" +"77.11",4,"77.1" +"77.12",4,"77.1" +"77.21",4,"77.2" +"77.22",4,"77.2" +"77.31",4,"77.3" +"77.32",4,"77.3" +"77.33",4,"77.3" +"77.34",4,"77.3" +"77.35",4,"77.3" +"77.39",4,"77.3" +"77.40",4,"77.4" +"77.51",4,"77.5" +"77.52",4,"77.5" +"78.10",4,"78.1" +"78.20",4,"78.2" +"79.11",4,"79.1" +"79.12",4,"79.1" +"79.90",4,"79.9" +"80.01",4,"80.0" +"80.09",4,"80.0" +"81.10",4,"81.1" +"81.21",4,"81.2" +"81.22",4,"81.2" +"81.23",4,"81.2" +"81.30",4,"81.3" +"82.10",4,"82.1" +"82.20",4,"82.2" +"82.30",4,"82.3" +"82.40",4,"82.4" +"82.91",4,"82.9" +"82.92",4,"82.9" +"82.99",4,"82.9" +"84.11",4,"84.1" +"84.12",4,"84.1" +"84.13",4,"84.1" +"84.21",4,"84.2" +"84.22",4,"84.2" +"84.23",4,"84.2" +"84.24",4,"84.2" +"84.25",4,"84.2" +"84.30",4,"84.3" +"85.10",4,"85.1" +"85.20",4,"85.2" +"85.31",4,"85.3" +"85.32",4,"85.3" +"85.33",4,"85.3" +"85.40",4,"85.4" +"85.51",4,"85.5" +"85.52",4,"85.5" +"85.53",4,"85.5" +"85.59",4,"85.5" +"85.61",4,"85.6" +"85.69",4,"85.6" +"86.10",4,"86.1" +"86.21",4,"86.2" +"86.22",4,"86.2" +"86.23",4,"86.2" +"86.91",4,"86.9" +"86.92",4,"86.9" +"86.93",4,"86.9" +"86.94",4,"86.9" +"86.95",4,"86.9" +"86.96",4,"86.9" +"86.97",4,"86.9" +"86.99",4,"86.9" +"87.10",4,"87.1" +"87.20",4,"87.2" +"87.30",4,"87.3" +"87.91",4,"87.9" +"87.99",4,"87.9" +"88.10",4,"88.1" +"88.91",4,"88.9" +"88.99",4,"88.9" +"90.11",4,"90.1" +"90.12",4,"90.1" +"90.13",4,"90.1" +"90.20",4,"90.2" +"90.31",4,"90.3" +"90.39",4,"90.3" +"91.11",4,"91.1" +"91.12",4,"91.1" +"91.21",4,"91.2" +"91.22",4,"91.2" +"91.30",4,"91.3" +"91.41",4,"91.4" +"91.42",4,"91.4" +"92.00",4,"92.0" +"93.11",4,"93.1" +"93.12",4,"93.1" +"93.13",4,"93.1" +"93.19",4,"93.1" +"93.21",4,"93.2" +"93.29",4,"93.2" +"94.11",4,"94.1" +"94.12",4,"94.1" +"94.20",4,"94.2" +"94.91",4,"94.9" +"94.92",4,"94.9" +"94.99",4,"94.9" +"95.10",4,"95.1" +"95.21",4,"95.2" +"95.22",4,"95.2" +"95.23",4,"95.2" +"95.24",4,"95.2" +"95.25",4,"95.2" +"95.29",4,"95.2" +"95.31",4,"95.3" +"95.32",4,"95.3" +"95.40",4,"95.4" +"96.10",4,"96.1" +"96.21",4,"96.2" +"96.22",4,"96.2" +"96.23",4,"96.2" +"96.30",4,"96.3" +"96.40",4,"96.4" +"96.91",4,"96.9" +"96.99",4,"96.9" +"97.00",4,"97.0" +"98.10",4,"98.1" +"98.20",4,"98.2" +"99.00",4,"99.0" diff --git a/inst/extdata/lenghtsNace.CSV b/inst/extdata/lenghtsNace.CSV new file mode 100644 index 0000000..4fd5b3f --- /dev/null +++ b/inst/extdata/lenghtsNace.CSV @@ -0,0 +1,5 @@ +charb,chare +1,1 +2,3 +5,5 +6,6 diff --git a/inst/extdata/lenghtsNaceNoColumn.csv b/inst/extdata/lenghtsNaceNoColumn.csv new file mode 100644 index 0000000..213d00f --- /dev/null +++ b/inst/extdata/lenghtsNaceNoColumn.csv @@ -0,0 +1,4 @@ +1,1 +2,3 +5,5 +6,6 diff --git a/man/aggregateCorrespondenceTable.Rd b/man/aggregateCorrespondenceTable.Rd new file mode 100644 index 0000000..57a7db7 --- /dev/null +++ b/man/aggregateCorrespondenceTable.Rd @@ -0,0 +1,34 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/aggregateCorrespondenceTable.R +\name{aggregateCorrespondenceTable} +\alias{aggregateCorrespondenceTable} +\title{aggregateCorrespondenceTable aggregates correspondence tables to higher hierarchical levels} +\usage{ +aggregateCorrespondenceTable(AB, A, B, CSVout = NULL) +} +\arguments{ +\item{AB}{a mandatory argument containing a correspondence table data frame with columns "Acode" and "Bcode" representing the correspondence between classifications A and B at the most granular level. This argument is mandatory} + +\item{A}{a path to a CSV file containing source classification data with an Acode ALevel,ASuperior column. This argument is mandatory} + +\item{B}{a path to a CSV file containing target classification data with a Bcode Blevel BSuperior column. This argument is mandatory} + +\item{CSVout}{a character string providing the path where the aggregated correspondence table CSV file should be saved. If NULL, no CSV file is generated.} +} +\value{ +A data frame representing the aggregated correspondence table. +} +\description{ +The `aggregateCorrespondenceTable` function is designed to aggregate correspondence tables between two hierarchical classifications A and B to higher hierarchical levels. This is particularly useful when correspondence information is needed at levels other than the most granular level. The function provides a 'mechanically defined' aggregation, offering users candidate aggregations for subsequent analysis by statistical classification experts. +} +\examples{ +# Use data from the folder extdata +AB <- (system.file("extdata", "ab_data.csv", package = "correspondenceTables")) +A <- (system.file("extdata", "a_data.csv", package = "correspondenceTables")) +B <- (system.file("extdata", "b_data.csv", package = "correspondenceTables")) + + +result <- aggregateCorrespondenceTable(AB = AB, A = A, B = B, CSVout = FALSE) +print(result) + +} diff --git a/man/analyseCorrespondenceTable.Rd b/man/analyseCorrespondenceTable.Rd new file mode 100644 index 0000000..878e1af --- /dev/null +++ b/man/analyseCorrespondenceTable.Rd @@ -0,0 +1,55 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/analyseCorrespondancetable.R +\name{analyseCorrespondenceTable} +\alias{analyseCorrespondenceTable} +\title{analyseCorrespondenceTable performs analysis on correspondence tables} +\usage{ +analyseCorrespondenceTable( + AB, + A = NULL, + formatA = NULL, + B = NULL, + formatB = NULL, + CSVcorrespondenceInventory = NULL, + CSVcorrespondenceAnalysis = NULL +) +} +\arguments{ +\item{AB}{a mandatory argument containing a CSV file provide by the user contains the correspondence table data with columns "Acode" and "Bcode".} + +\item{A}{a path to a CSV file containing source classification data with "Acode" column.} + +\item{formatA}{A regular expression pattern to filter source classification data based on "Acode" should contains start & end position.} + +\item{B}{a path to a CSV file containing target classification data with "Bcode" column.} + +\item{formatB}{A regular expression pattern to filter target classification data based on "Bcode" should contains start & end position.} + +\item{CSVcorrespondenceInventory}{The valid values are not NULL if the user put a path with a empty csv file it will return it with the correspondeceInventory or just a path with a csv file . By default no CSV is produce} + +\item{CSVcorrespondenceAnalysis}{Provide an output containing the correpondenceAnalysis. the user put a path a empty file it will return with correpondenceAnalysis. by default no CSV is produce} +} +\value{ +A list containing two data frames: Annexe_A and Annexe_B. +The `CSVcorrespondenceInventory` contains statistics related to components, correspondence types, and source/target positions. +The `CSVcorrespondenceAnalysis` contains statistics for each class in the correspondence table. +} +\description{ +The `analyseCorrespondenceTable` function takes input correspondence tables (AB) and related data (A and B) to perform analysis and generate various statistics. +It checks the validity of the input data, identifies components, calculates correspondence types, and creates summary tables. +} +\examples{ +# Use data from the folder extdata + + + + + + + + +# Perform analysis +result <- analyseCorrespondenceTable(AB =system.file("extdata", "ExempleAnnexe.csv", package = "correspondenceTables"),A = NULL, formatA = NULL, B = NULL, formatB = NULL, CSVcorrespondenceInventory = NULL, CSVcorrespondenceAnalysis = NULL) +print(result$Annexe_A) +print(result$Annexe_B) +} diff --git a/man/classificationQC.Rd b/man/classificationQC.Rd index 316b8ee..9d97c2d 100644 --- a/man/classificationQC.Rd +++ b/man/classificationQC.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/classificationQC.R \name{classificationQC} \alias{classificationQC} -\title{ClassificationQC performs a quality check control checks on a given statistical classifications} +\title{ClassificationQC performs quality control checks on statistical classifications} \usage{ classificationQC( classification, @@ -12,115 +12,92 @@ classificationQC( labelHierarchy = TRUE, singleChildCode = NULL, sequencing = NULL, - XLSXout = FALSE + CSVout = NULL ) } \arguments{ -\item{classification}{Refers to a classification in csv file or an R dataframe structured with two columns, consisting -of codes and labels, respectively. If the classification is provided as a csv file, it should be stored in the working directory (as -defined using \code{getwd}). This is a mandatory argument.} +\item{classification}{Refers to a classification in a CSV file structured with two columns: "codes" and "labels." If the classification is provided as a CSV file. This argument is mandatory.} -\item{fullHierarchy}{It is used to test the fullness of hierarchy. If the parameter \code{fullHierarchy} is set to \code{FALSE}, -the function will check that every position at a lower level than 1 should have parents all the way up to level 1. -If it is set to \code{TRUE}, in addition to the previous, it will be checked that any position at a higher level -than k should have children all the way down to level k.} +\item{fullHierarchy}{It is used to test the fullness of hierarchy. If the parameter \code{fullHierarchy} is set to \code{FALSE}, the function will check that every position at a lower level than 1 should have parents all the way up to level 1. If set to \code{TRUE}, it will additionally check that any position at a higher level than k should have children all the way down to level k.} -\item{labelUniqueness}{It is used to test the that positions at the same hierarchical level have unique labels. If set to \code{TRUE}, -the compliance is checked and positions with duplicate labels are marked as 1 in the "duplicateLabel" column, -while positions with unique labels are marked as 0.} +\item{labelUniqueness}{It is used to test that positions at the same hierarchical level have unique labels. If set to \code{TRUE}, the compliance is checked, and positions with duplicate labels are marked as 1 in the "duplicateLabel" column, while positions with unique labels are marked as 0.} -\item{labelHierarchy}{It is used to ensure that hierarchical structure of labels is respected. -When set to \code{TRUE}, the function will check that single child have a label identical to the label of its parent and that -has if a position has a label identical to the label of one of its children, then that position should only have a single child.} +\item{labelHierarchy}{It is used to ensure that the hierarchical structure of labels is respected. When set to \code{TRUE}, the function will check that single children have a label identical to the label of their parent and that if a position has a label identical to the label of one of its children, then that position should only have a single child.} -\item{singleChildCode}{It refers to CSV file with specific formatting to define valid codes for each level. If this parameter is not \code{NULL} -then it checks compliance with coding rules for single children and non-single children, as provided in the CSV file.} +\item{singleChildCode}{It refers to a CSV file with specific formatting to define valid codes for each level. If this parameter is not \code{NULL}, then it checks compliance with coding rules for single children and non-single children, as provided in the CSV file.} -\item{sequencing}{It refers to a CSV file to define the admissible codes for multiple children at each level. If this parameter -is not \code{NULL}, the function checks the sequencing of multiple children codes within each level, as provided in the CSV file.} +\item{sequencing}{It refers to a CSV file to define the admissible codes for multiple children at each level. If this parameter is not \code{NULL}, the function checks the sequencing of multiple children codes within each level, as provided in the CSV file.} -\item{XLSXout}{The valid values are \code{FALSE} or \code{TRUE}. In both cases the output will be returned as an R list. -If output should be saved as a xlsx file, the argument should be set as \code{TRUE}. By default, no xlsx file is produced.} +\item{CSVout}{The valid values are \code{NULL} means that the user don't need to write the parameters \code{TRUE}. In both cases, the output will be returned as an R list. If the output should be saved as an CSV file, the argument should be set to \code{TRUE}. By default, no CSV file is produced.} -\item{lengthsfile}{Refers to a CSV file or a R dataframe (one record per hierarchical level) containing the initial and -last position of the segment of the code specific to that level. The number of lines of this CSV file or the R dataframe will -also implicitly define the number of hierarchical levels of the classification. This is a mandatory argument.} +\item{lengthsfile}{Refers to a CSV file (one record per hierarchical level) containing the initial and last positions of the segment of the code specific to that level. The number of lines in this CSV file implicitly defines the number of hierarchical levels of the classification. This argument is mandatory.} } \value{ -\code{classificationQC()} returns a list of dataframes identifying possible the cases violating the formatting requirements. The - databases returned depend on the rules checked. The databases produced are: - \itemize{ - \item{QC_output} The dataset includes all the original records in the classification. Colum "Level" refers to the hierarchical levels - of each position. Each code will be parsed into segment_k (column "Segmentk") and code_k (column "Codek"), corresponding to the code - and segment and hierarchical level k respectively. Additional columns are included to flag the corrected behaviour in each position. - These are - \itemize{ - \item Orphan: if fullHierarchy is set to FALSE, an "orphan" is a position at a hierarchical level (j) greater than 1 that lacks a parent at the hierarchical level (j-1) immediately above it. - Orphan positions are marked with a value of 1 in the "QC output" column, indicating their orphan status. Otherwise, they are assigned a value of 0. - \item Childless: if fullHierarchy is set to TRUE, a "childless" position is one at a hierarchical level (j) less than k that lacks a child - at the hierarchical level (j+1) immediately below it. Childless positions are marked with a value of 1 - indicating their childless status. Otherwise, they are assigned a value of 0. - \item DuplicateLabel: new column in the output that flags positions involved in duplicate label situations (where multiple positions share the same label at the same hierarchical level) - by assigning them a value of 1, while positions with unique labels are assigned a value of 0. - \item SingleChildMismatch: column in the output provides information about label hierarchy consistency in a hierarchical classification system. It indicates:c - Value 1: Mismatched labels between a parent and its single child. - Value 9: Parent-child pairs with matching labels, but the parent has multiple children. - \item SingleCodeError: column serves as a flag indicating whether a position is a single child and whether the corresponding "singleCode" contains the level j segment. - A value of 1 signifies a mismatch, while a value of 0 indicates compliance with the coding rules - \item MultipleCodeError: column serves as a flag indicating whether a position is not a single child and whether the corresponding "multipleCodej" contains the level j segment. - A value of 1 signifies a mismatch, while a value of 0 indicates compliance with the coding rules - \item GapBefore: takes the value 0 or 1 if there is a missing child in the 123456789 series. - \item LastSibling: takes the value 1 when it is the last child in the series 123456789 otherwise the value 0 - } - - \item{QC_noLevels} A subset of the QC_output dataframe including only records for which levels is not defined. In general if this dataframe - is not empty, it suggest that either the classification or the length file is not correctily specified. - \item{QC_orphan} A subset of the QC_output dataframe including only records that have no parents at the higher hierarchical level. - \item{QC_childless} A subset of the QC_output dataframe including only records that have no children at the lower hierarchical level. - \item{QC_duplicatesLabel} A subset of the QC_output dataframe including only records that have duplicated label in the same hierarchical level. - \item{QC_duplicatesCode} A subset of the QC_output dataframe including only records that have the same codes. - \item{QC_singleChildMismatch} A subset of the QC_output dataframe including only records that are single child and have different labels from - their parents or that are multiple children and have same labels to their parents. - \item{QC_singleCodeError} A subset of the QC_output dataframe including only records that are single children and have been wrongly coded (not following - the rule provided in the 'SingleChildMismatch' CSV file). - \item{QC_multipleCodeError} A subset of the QC_output dataframe including only records that are multiple children and have been wrongly coded (not following - the rule provided in the 'SingleChildMismatch' CSV file). - \item{QC_gapBefore} A subset of the QC_output dataframe including only records that are multiple children and have gap before in the sequencing provided in the - 'sequencing' CSV file. - \item{QC_lastSibling} A subset of the QC_output dataframe including only records that are multiple and last children following the sequencing provided in the - 'sequencing' CSV file. - } +\code{classificationQC()} returns a list of data frames identifying possible cases violating the formatting requirements. The databases returned depend on the rules checked. The databases produced are: +- \code{QC_output}: The dataset includes all the original records in the classification. The "Level" column refers to the hierarchical levels of each position. Each code will be parsed into segment_k (column "Segmentk") and code_k (column "Codek"), corresponding to the code and segment at hierarchical level k, respectively. Additional columns are included to flag the behavior in each position: + - \code{Orphan}: If \code{fullHierarchy} is set to \code{FALSE}, an "orphan" is a position at a hierarchical level (j) greater than 1 that lacks a parent at the hierarchical level (j-1) immediately above it. Orphan positions are marked with a value of 1 in the "Orphan" column, indicating their orphan status; otherwise, they are assigned a value of 0. + - \code{Childless}: If \code{fullHierarchy} is set to \code{TRUE}, a "childless" position is one at a hierarchical level (j) less than k that lacks a child at the hierarchical level (j+1) immediately below it. Childless positions are marked with a value of 1 in the "Childless" column, indicating their childless status; otherwise, they are assigned a value of 0. + - \code{DuplicateLabel}: A new column in the output that flags positions involved in duplicate label situations (where multiple positions share the same label at the same hierarchical level) by assigning them a value of 1, while positions with unique labels are assigned a value of 0. + - \code{SingleChildMismatch}: A column in the output provides information about label hierarchy consistency in a hierarchical classification system. It indicates: + - Value 1: Mismatched labels between a parent and its single child. + - Value 9: Parent-child pairs with matching labels, but the parent has multiple children. + - Value 0: Compliance with the label hierarchy rule, indicating no mismatches or violations. + - \code{SingleCodeError}: A column serves as a flag indicating whether a position is a single child and whether the corresponding "singleCode" contains the level j segment. A value of 1 signifies a mismatch, while a value of 0 indicates compliance with the coding rules. + - \code{MultipleCodeError}: A column serves as a flag indicating whether a position is not a single child and whether the corresponding "multipleCodej" contains the level j segment. A value of 1 signifies a mismatch, while a value of 0 indicates compliance with the coding rules. + - \code{GapBefore}: The column is a flag that indicates whether there is a gap before a specific code within its level in the hierarchy. A gap refers to the absence of a sibling code that should logically precede the given code. In other words, it checks if there is a missing code in the sequence before a particular code. + - \code{LastSibling}: The "LastSibling" column is a flag that identifies whether a code is the last sibling code at its level in the hierarchy. It is only relevant for codes with multiple children, meaning there are other codes at the same level with the same parent. + +- \code{QC_noLevels}: A subset of the \code{QC_output} dataframe including only records for which levels are not defined. If this dataframe is not empty, it suggests that either the classification or the length file is not correctly specified. + +- \code{QC_orphan}: A subset of the \code{QC_output} dataframe including only records that have no parents at the higher hierarchical level. + +- \code{QC_childless}: A subset of the \code{QC_output} dataframe including only records that have no children at the lower hierarchical level. + +- \code{QC_duplicatesLabel}: A subset of the \code{QC_output} dataframe including only records that have duplicated labels in the same hierarchical level. + +- \code{QC_duplicatesCode}: A subset of the \code{QC_output} dataframe including only records that have the same codes. + +- \code{QC_singleChildMismatch}: A subset of the \code{QC_output} dataframe including only records that are single children and have different labels from their parents or that are multiple children and have the same labels as their parents. + +- \code{QC_singleCodeError}: A subset of the \code{QC_output} dataframe including only records that are single children and have been wrongly coded (not following the rule provided in the 'SingleChildMismatch' CSV file). + +- \code{QC_multipleCodeError}: A subset of the \code{QC_output} dataframe including only records that are multiple children and have been wrongly coded (not following the rule provided in the 'SingleChildMismatch' CSV file). + +- \code{QC_gapBefore}: A subset of the \code{QC_output} dataframe including only records that are multiple children and have a gap in the sequencing provided in the 'sequencing' CSV file. + +- \code{QC_lastSibling}: A subset of the \code{QC_output} dataframe including only records that are multiple children and are the last sibling following the sequencing provided in the 'sequencing' CSV file. } \description{ -The purpose of this function perform quality control checks on statistical classifications. -It checks the compliance of classifications with structural rules and provides informative error messages -for violations. The function requires input files containing code and label information for each -classification position. It verifies the formatting requirements, uniqueness of codes, fullness of hierarchy, -uniqueness of labels, hierarchical label dependencies, single child code compliance, and sequencing of codes. -The function generates a QC output data frame with the classification data, hierarchical level, code segments, -and test outcomes.Additionally, it allows exporting the output to a CSV file. Overall, the classificationQC -function ensures the integrity and accuracy of statistical classifications. +The `classificationQC()` function performs quality control checks on statistical classifications, ensuring their integrity and accuracy. It checks compliance with various structural rules and provides informative error messages for violations. This function requires input files containing code and label information for each classification position and verifies the following criteria: +- Formatting requirements +- Uniqueness of codes +- Fullness of hierarchy +- Uniqueness of labels +- Hierarchical label dependencies +- Single child code compliance +- Sequencing of codes + +The `classificationQC()` function generates a QC output data frame with the classification data, hierarchical levels, code segments, and test outcomes. Additionally, it allows exporting the output to a CSV file. } \examples{ { - prefix = "nace2" - conceptScheme = "nace2" - endpoint = "CELLAR" - lengthsTable = lengthsFile(endpoint, prefix, conceptScheme, correction = TRUE) - classification = retrieveClassificationTable(prefix, endpoint, conceptScheme, level="ALL")$ClassificationTable - classification = classification[,c(1,2)] - classification = correctionClassification(classification) - Output = classificationQC(classification, lengthsFile, fullHierarchy = TRUE, labelUniqueness = TRUE, labelHierarchy = TRUE, singleChildCode = NULL, sequencing = NULL) - View(Output$QC_output) - View(Output$QC_noLevels) - View(Output$QC_orphan) - View(Output$QC_childless) - View(Output$QC_duplicatesLabel) - View(Output$QC_duplicatesCode) - View(Output$QC_singleChildMismatch) - View(Output$QC_singleCodeError) - View(Output$QC_multipleCodeError) - View(Output$QC_gapBefore) - View(Output$QC_lastSibling) - } +# classification <- system.file("extdata", "Nace2.csv", package = "correspondenceTables") + + lengthsFile <- system.file("extdata", "lenghtsNace.csv", package = "correspondenceTables") + + Output <- classificationQC(classification = system.file("extdata", "Nace2.csv", package = "correspondenceTables") , lengthsFile = system.file("extdata", "lenghtsNace.csv", package = "correspondenceTables"), fullHierarchy = TRUE, labelUniqueness = TRUE, labelHierarchy = TRUE, singleChildCode = NULL, sequencing = NULL, CSVout = system.file("extdata", "QC_Output.csv", package = "correspondenceTables")) + print(Output$QC_output) + print(Output$QC_noLevels) + print(Output$QC_orphan) + print(Output$QC_childless) + print(Output$QC_duplicatesLabel) + print(Output$QC_duplicatesCode) + print(Output$QC_singleChildMismatch) + print(Output$QC_singleCodeError) + print(Output$QC_multipleCodeError + + ) + print(Output$QC_gapBefore) + print(Output$QC_lastSibling) +} } diff --git a/man/correspondenceList.Rd b/man/correspondenceList.Rd index 33b025c..bba9a2c 100644 --- a/man/correspondenceList.Rd +++ b/man/correspondenceList.Rd @@ -2,22 +2,24 @@ % Please edit documentation in R/correspondenceList.R \name{correspondenceList} \alias{correspondenceList} -\title{provides an overview of all the available correspondence classification from CELLAR and FAO repository.} +\title{Overview of all the available correspondence classification from CELLAR and FAO repository.} \usage{ correspondenceList(endpoint) } \arguments{ -\item{endpoint}{The SPARQL Endpoint. The valid values are \code{"CELLAR"}, \code{"FAO"} or \code{"ALL"} for both.} +\item{endpoint}{SPARQL endpoints provide a standardized way to access data sets, +making it easier to retrieve specific information or perform complex queries on linked data. +The valid values are \code{"CELLAR"}, \code{"FAO"} or \code{"ALL"} for both.} } \value{ \code{correspondenceList()} returns a list of the correspondence tables available with prefix name, ID, Source classification, Target classification, Table name and URI. } \description{ -provides an overview of all the available correspondence classification from CELLAR and FAO repository. +Provides an overview of all the available correspondence classification from CELLAR and FAO repository. } \examples{ { corr_list = correspondenceList("ALL") -} + } } diff --git a/man/dataStructure.Rd b/man/dataStructure.Rd index 2de8449..ce2739f 100644 --- a/man/dataStructure.Rd +++ b/man/dataStructure.Rd @@ -39,24 +39,9 @@ about the level names their hierarchy and the numbers of records the function "s { ## Obtain a list including the structure of each classification available ## CELLAR - data_CELLAR = list() - endpoint = "CELLAR" - list_data = classificationEndpoint("ALL") - - for (i in 1:nrow(list_data$CELLAR)){ - prefix = list_data$CELLAR[i,1] - conceptScheme = list_data$CELLAR[i,2] - data_CELLAR[[i]] = dataStructure(prefix, conceptScheme, endpoint) - } - names(data_CELLAR) = list_data$CELLAR[,1] - ## FAO - data_FAO = list() - endpoint = "FAO" - for (i in 1:nrow(list_data$FAO)){ - prefix = list_data$FAO[i,1] - conceptScheme = list_data$FAO[i,2] - data_FAO[[i]] = dataStructure(prefix, conceptScheme, endpoint) - } - names(data_FAO) = list_data$FAO[,1] - } + #data_CELLAR = list() + #endpoint = "CELLAR" + #list_data = classificationEndpoint("ALL") + # +} } diff --git a/man/prefixList.Rd b/man/prefixList.Rd index 99f1afc..1123523 100644 --- a/man/prefixList.Rd +++ b/man/prefixList.Rd @@ -2,12 +2,13 @@ % Please edit documentation in R/prefixList.R \name{prefixList} \alias{prefixList} -\title{Create a list of prefixes for both CELLAR and FAO} +\title{Create a list of prefixes for both CELLAR and FAO repositories.} \usage{ -prefixList(endpoint) +prefixList(endpoint, desired_prefix = NULL) } \arguments{ -\item{endpoint}{A string of type character containing the endpoint where the table is stored. +\item{endpoint}{SPARQL endpoints provide a standardized way to access data sets, +making it easier to retrieve specific information or perform complex queries on linked data. The valid values are \code{"CELLAR"} and \code{"FAO"}.} } \value{ diff --git a/man/retrieveClassificationTable.Rd b/man/retrieveClassificationTable.Rd index 5ceea8a..742ad22 100644 --- a/man/retrieveClassificationTable.Rd +++ b/man/retrieveClassificationTable.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/retrieveClassificationTable.R \name{retrieveClassificationTable} \alias{retrieveClassificationTable} -\title{Retrieve a classification tables from CELLAR and FAO} +\title{Retrieve classification tables from CELLAR and FAO repositories.} \usage{ retrieveClassificationTable( prefix, @@ -10,23 +10,34 @@ retrieveClassificationTable( conceptScheme, level = "ALL", language = "en", - CSVout = FALSE + CSVout = FALSE, + showQuery = TRUE ) } \arguments{ -\item{prefix}{The SPARQL instruction for a declaration of a namespace prefix. It can be found using the classEndpoint() function.} +\item{prefix}{Prefixes are typically defined at the beginning of a SPARQL query and are used throughout the query to make it more concise and easier to read. +Multiple prefixes can be defined in a single query to cover different namespaces used in the data set. +The function 'classificationEndpoint()' can be used to generate the prefixes for the selected classification table.} -\item{endpoint}{The SPARQL Endpoint, the valid values are \code{"CELLAR"} or \code{"FAO"}.} +\item{endpoint}{SPARQL endpoints provide a standardized way to access data sets, +making it easier to retrieve specific information or perform complex queries on linked data. +The valid values are \code{"CELLAR"} or \code{"FAO"}.} -\item{conceptScheme}{Taxonomy of the SKOS object to be retrieved. It can be found using the classEndpoint() function.} +\item{conceptScheme}{Refers to a unique identifier associated to specific classification table. +The conceptScheme can be obtained by utilizing the "classificationEndpoint()" function.} -\item{level}{The levels of the objects in the collection to be retrieved, it can be found using the structureData() function. +\item{level}{Refers to the hierarchical levels of the selected classification table. +The detailed level information can be obtained by utilizing the "structureData() " function. By default is set to \code{"ALL"}. This is an optional argument.} -\item{language}{Language of the table. By default is set to \code{"en"}. This is an optional argument.} +\item{language}{Refers to the specific language used for providing label, include and exclude information in the selected classification table. +By default is set to "en". This is an optional argument.} -\item{CSVout}{The valid values are \code{FALSE} or \code{TRUE}. In both cases the correspondence table as an R object. +\item{CSVout}{The valid values are \code{FALSE} or \code{TRUE}. In both cases the classification table as an R object. If output should be saved as a csv file, the argument should be set as \code{TRUE}. By default, no csv file is produced.} + +\item{showQuery}{The valid values are \code{FALSE} or \code{TRUE}. In both cases the classification table as an R object. +If needed to view the SPARQL query used, the argument should be set as \code{TRUE}. By default, no SPARQL query is produced.} } \value{ \code{retrieveClassificationTable()} returns a classification tables from CELLAR and FAO. The table includes the following variables: @@ -40,15 +51,21 @@ If output should be saved as a csv file, the argument should be set as \code{TRU } } \description{ -Retrieve a classification tables from CELLAR and FAO +To facilitate the utilization of European classifications as inputs for the newCorrespondenceTable and updateCorrespondenceTable functions, +"retrieveClassificationTable()" utility function has been developed. This utility function leverage R packages that enable SPARQL queries. } \examples{ { - prefix = "nace2" endpoint = "CELLAR" + prefix = "nace2" conceptScheme = "nace2" - dt = retrieveClassificationTable(prefix, endpoint, conceptScheme) - # By default retrieved all levels and only English - head(dt) + + results_ls = retrieveClassificationTable(prefix, endpoint, conceptScheme) + + # View SPARQL Query + cat(results_ls[[1]]) + + #View Classification Table + #View(results_ls[[2]]) } } diff --git a/man/retrieveCorrespondenceTable.Rd b/man/retrieveCorrespondenceTable.Rd index 6b81032..4cddf97 100644 --- a/man/retrieveCorrespondenceTable.Rd +++ b/man/retrieveCorrespondenceTable.Rd @@ -2,49 +2,70 @@ % Please edit documentation in R/retrieveCorrespondenceTable..R \name{retrieveCorrespondenceTable} \alias{retrieveCorrespondenceTable} -\title{Retrieve a correspondence tables from CELLAR and FAO.} +\title{Retrieve correspondence tables between statistical classifications from CELLAR and FAO repositories.} \usage{ retrieveCorrespondenceTable( prefix, endpoint, ID_table, language = "en", - CSVout = FALSE + CSVout = FALSE, + showQuery = TRUE ) } \arguments{ -\item{prefix}{The SPARQL instruction for a declaration of a namespace prefix. It can be found using the classEndpoint() function.} +\item{prefix}{Prefixes are typically defined at the beginning of a SPARQL query +and are used throughout the query to make it more concise and easier to read. +Multiple prefixes can be defined in a single query to cover different namespaces used in the dataset. +The function 'classificationEndpoint()' can be used to generate the prefixes for the selected correspondence table.} -\item{endpoint}{The SPARQL Endpoint, the valid values are \code{"CELLAR"} or \code{"FAO"}.} +\item{endpoint}{SPARQL endpoints provide a standardized way to access data sets, +making it easier to retrieve specific information or perform complex queries on linked data. +The valid values are \code{"CELLAR"} or \code{"FAO"}.} -\item{ID_table}{The ID of the correspondence table which can be found using the correspondenceList() function.} +\item{ID_table}{Refers to a unique identifier associated with a specific correspondence table. +The ID_table can be obtained by utilizing the "correspondenceList()" function.} -\item{language}{Language of the table. By default is set to "en". This is an optional argument.} +\item{language}{Refers to the specific language used for providing label, include and exclude information in the selected correspondence table. +By default is set to "en". This is an optional argument.} \item{CSVout}{The valid values are \code{FALSE} or \code{TRUE}. In both cases the correspondence table as an R object. If output should be saved as a csv file, the argument should be set as \code{TRUE}. By default, no csv file is produced.} + +\item{showQuery}{The valid values are \code{FALSE} or \code{TRUE}. In both cases the correspondence table as an R object. +If needed to view the SPARQL query used, the argument should be set as \code{TRUE}. By default, no SPARQL query is produced.} } \value{ \code{retrieveCorrespondenceTable()} returns a classification tables from CELLAR and FAO. The table includes the following variables: \itemize{ \item Source Classification name (e.g. cn2019): the code of each object in the source classification - \item Source Classification label: the corresponding label of each object - \item Target Classification name (e.g. cn2021): the code of each object in the target classification - \item Target Classification label: the corresponding label of each object + \item Source Classification name (e.g. cn2021): the code of each object in the target classification + \item Target Classification label: the corresponding label of each object (e.g. cn2019) + \item Include: include details on each object (e.g. cn2019) + \item Exclude: details on each object (e.g. cn2019) + \item Target Classification label: the corresponding label of each object (e.g. cn2021) + \item Include: include details on each object (e.g. cn2021) + \item Exclude: details on each object (e.g. cn2021) \item Comment: details on each object, if available \item URL: the URL from which the SPARQL query was retrieved } } \description{ -Retrieve a correspondence tables from CELLAR and FAO. +To facilitate the utilization of correspondence tables as inputs for the newCorrespondenceTable and updateCorrespondenceTable functions, +"retrieveCorrespondenceTable" utility function has been developed. This utility function leverage R packages that enable SPARQL queries. } \examples{ { endpoint = "CELLAR" - prefix = "nace2" - ID_table = "NACE2_PRODCOM2021" - language = "fr" - dt = retrieveCorrespondenceTable(prefix, endpoint, ID_table, language) - head(dt) + prefix = "cn2022" + ID_table = "CN2022_NST2007" + + results_ls = retrieveCorrespondenceTable(prefix, endpoint, ID_table) + + # View SPARQL Query + cat(results_ls[[1]]) + + #View Classification Table + #View(results_ls[[2]]) } } diff --git a/vignettes/AnalyseCorrespondenceTable.html b/vignettes/AnalyseCorrespondenceTable.html new file mode 100644 index 0000000..ec42d97 --- /dev/null +++ b/vignettes/AnalyseCorrespondenceTable.html @@ -0,0 +1,524 @@ + + + + + + + + + + + +AnalyseCorrespondenceTable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+

Description

+

This vignette explains how to use the +analyseCorrespondenceTable function to perform analysis on +correspondence tables.

+
+

Package Installation

+

To use the analyseCorrespondenceTable function, you +first need to install and load the correspondenceTables +package. You can use the following command:

+
library(correspondenceTables)
+
# Perform analysis
+result <- analyseCorrespondenceTable(AB =system.file("extdata", "ExempleAnnexe.csv", package = "correspondenceTables")
+                                     , A = NULL, formatA = NULL, B = NULL, formatB = NULL,
+                                     CSVcorrespondenceInventory =system.file("extdata", "CorrespondenceInventoryExample.csv", package = "correspondenceTables")
+                                     , CSVcorrespondenceAnalysis = system.file("extdata", "CorrespondenceAnalysisExample.csv", package = "correspondenceTables"))
+
+# Print the results
+print(result$Annexe_A)
+print(result$Annexe_B)
+

For this example we use output +CSVcorrespondenceInventory +CSVcorrespondenceAnalysis are not NULL. Indeed we put +our output in these csv files and we can see these with the both print +on this function.

+
+
+ + + + +
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vignettes/Analyse_CorrespondenceTable.Rmd b/vignettes/Analyse_CorrespondenceTable.Rmd new file mode 100644 index 0000000..408cdd2 --- /dev/null +++ b/vignettes/Analyse_CorrespondenceTable.Rmd @@ -0,0 +1,67 @@ +--- +title: "AnalyseCorrespondenceTable" +description: "This vignette explains how to use the analyseCorrespondenceTable function." +vignette: > + %\VignetteIndexEntry{Analyse classification correspondence tables with the correspondenceTables package} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +## Description + +This vignette explains how to use the `analyseCorrespondenceTable` function to perform analysis on correspondence tables. + +### Package Installation + +To use the `analyseCorrespondenceTable` function, you first need to install and load the `correspondenceTables` package. You can use the following command: + +```{r include=FALSE} +knitr::opts_chunk$set(collapse = TRUE, comment = "#>") +``` + +```{r} +library(correspondenceTables) +``` + +```{r results='hide'} +# Perform analysis +result <- analyseCorrespondenceTable(AB =system.file("extdata", "ExempleAnnexe.csv", package = "correspondenceTables") + , A = NULL, formatA = NULL, B = NULL, formatB = NULL, + CSVcorrespondenceInventory =system.file("extdata", "CorrespondenceInventoryExample.csv", package = "correspondenceTables"), CSVcorrespondenceAnalysis = system.file("extdata", "CorrespondenceAnalysisExample.csv", package = "correspondenceTables")) + +# Print the results +print(result$Annexe_A) +print(result$Annexe_B) + +``` + +For this example we use output **CSVcorrespondenceInventory** **CSVcorrespondenceAnalysis** are not NULL. +Indeed we put our output in these csv files and we can see these with the both print on this function. + + +**Another example** + +Here we use all the function parameters. + +We'll see what happens with AB, which contains data from nace2 & nace2.1. + +A which contains Nace2 as a classification source + +B which contains Nace2.1 as the classification target + +formatA format B will have a numeric value of 1 and 5 here to have the first position and the last position at the lowest level. + +```{r} +result2 <-analyseCorrespondenceTable(AB = (system.file("extdata", "ab_data.csv", package = "correspondenceTables")), + A = (system.file("extdata", "a_data.csv", package = "correspondenceTables")) , + formatA = c(1,5) , + B = B <- (system.file("extdata", "b_data.csv", package = "correspondenceTables")), + formatB = c(1,5), + CSVcorrespondenceInventory = T, CSVcorrespondenceAnalysis = T) + +print(result2$Annexe_A) +###for Annexe_A run this code : View(result2$Annexe_A) +print(result2$Annexe_B) +``` + + diff --git a/vignettes/Implementation_of_sample_datasets.html b/vignettes/Implementation_of_sample_datasets.html index 6f2a32b..94a2b06 100644 --- a/vignettes/Implementation_of_sample_datasets.html +++ b/vignettes/Implementation_of_sample_datasets.html @@ -346,10 +346,10 @@

Sample datasets with the

ATTENTION: please set as working directory a folder different than the folder in which the package has been installed, for instance as follows:

-
library(correspondenceTables)
-tmp_dir<-tempdir()
-csv_files<-list.files(tmp_dir, pattern = ".csv")
-if (length(csv_files)>0) unlink(csv_files)
+
library(correspondenceTables)
+tmp_dir<-tempdir()
+csv_files<-list.files(tmp_dir, pattern = ".csv")
+if (length(csv_files)>0) unlink(csv_files)

LOCAL COPIES OF THE SAMPLE DATA

If users wish so, they can make copies of the sample datasets in a local folder of their choice. There are two ways of doing this:

@@ -366,168 +366,168 @@

Sample datasets with the

Case 1

Execute the following code in order to get the path of the required input files.

-
A <- system.file("extdata", "CN2021.csv", package = "correspondenceTables")
-AStar <- system.file("extdata", "CN2022.csv", package = "correspondenceTables")
-B <- system.file("extdata", "CPA21.csv", package = "correspondenceTables")
-AB <- system.file("extdata", "CN2021_CPA21.csv", package = "correspondenceTables")
-AAStar <- system.file("extdata", "CN2021_CN2022.csv", package = "correspondenceTables")
+
A <- system.file("extdata", "CN2021.csv", package = "correspondenceTables")
+AStar <- system.file("extdata", "CN2022.csv", package = "correspondenceTables")
+B <- system.file("extdata", "CPA21.csv", package = "correspondenceTables")
+AB <- system.file("extdata", "CN2021_CPA21.csv", package = "correspondenceTables")
+AAStar <- system.file("extdata", "CN2021_CN2022.csv", package = "correspondenceTables")

Execute the following code line to apply function updateCorrespondenceTable() on these data. When there are redundant records, these are removed and kept exactly one record for each unique combination.

-
UPC <- updateCorrespondenceTable(A, B, AStar, AB, AAStar, file.path(tmp_dir,"updateCorrespondenceTableCase1.csv"),
-                                 "B", 0.4, 0.4, TRUE)
-print(UPC[[1]][1:10, 1:7])
-#>     CN 2021  CN 2022  CPA 2.1 CodeChange Review Redundancy NoMatchToAStar
-#> 1  Multiple 03099000 10.20.34          1      1          1              0
-#> 2  Multiple 16021000 10.89.19          1      1          1              0
-#> 3  Multiple 16029099 10.89.19          1      1          1              0
-#> 4  Multiple 24041100 12.00.19          1      0          1              0
-#> 5  Multiple 24041200 20.59.59          1      0          1              0
-#> 6  Multiple 24041990 20.59.59          1      0          1              0
-#> 7  Multiple 24049900 20.59.59          1      0          1              0
-#> 8  Multiple 28444110 20.13.13          1      0          1              0
-#> 9  Multiple 28444210 20.13.13          1      0          1              0
-#> 10 Multiple 28444320 20.13.13          1      0          1              0
-print(UPC[[2]])
-#>   Classification: Name
-#> 1           A: CN 2021
-#> 2           B: CPA 2.1
-#> 3       AStar: CN 2022
+
UPC <- updateCorrespondenceTable(A, B, AStar, AB, AAStar, file.path(tmp_dir,"updateCorrespondenceTableCase1.csv"),
+                                 "B", 0.4, 0.4, TRUE)
+print(UPC[[1]][1:10, 1:7])
+#>     CN 2021  CN 2022  CPA 2.1 CodeChange Review Redundancy NoMatchToAStar
+#> 1  Multiple 03099000 10.20.34          1      1          1              0
+#> 2  Multiple 16021000 10.89.19          1      1          1              0
+#> 3  Multiple 16029099 10.89.19          1      1          1              0
+#> 4  Multiple 24041100 12.00.19          1      0          1              0
+#> 5  Multiple 24041200 20.59.59          1      0          1              0
+#> 6  Multiple 24041990 20.59.59          1      0          1              0
+#> 7  Multiple 24049900 20.59.59          1      0          1              0
+#> 8  Multiple 28444110 20.13.13          1      0          1              0
+#> 9  Multiple 28444210 20.13.13          1      0          1              0
+#> 10 Multiple 28444320 20.13.13          1      0          1              0
+print(UPC[[2]])
+#>   Classification: Name
+#> 1           A: CN 2021
+#> 2           B: CPA 2.1
+#> 3       AStar: CN 2022

Case 2

Execute the following code in order to get the path of the required input files.

-
A <- system.file("extdata", "CN2021.csv", package = "correspondenceTables")
-AStar <- system.file("extdata", "CN2022.csv", package = "correspondenceTables")
-B <- system.file("extdata", "PRODCOM2021.csv", package = "correspondenceTables")
-AB <- system.file("extdata", "CN2021_PRODCOM2021.csv", package = "correspondenceTables")
-AAStar <- system.file("extdata", "CN2021_CN2022.csv", package = "correspondenceTables")
+
A <- system.file("extdata", "CN2021.csv", package = "correspondenceTables")
+AStar <- system.file("extdata", "CN2022.csv", package = "correspondenceTables")
+B <- system.file("extdata", "PRODCOM2021.csv", package = "correspondenceTables")
+AB <- system.file("extdata", "CN2021_PRODCOM2021.csv", package = "correspondenceTables")
+AAStar <- system.file("extdata", "CN2021_CN2022.csv", package = "correspondenceTables")

Execute the following code line to apply function updateCorrespondenceTable() on these data. When there are redundant records, these are removed and kept exactly one record for each unique combination.

-
UPC <- updateCorrespondenceTable(A, B, AStar, AB, AAStar, file.path(tmp_dir,"updateCorrespondenceTableCase2.csv"), "A", 0.4, 0.3, TRUE)
+
UPC <- updateCorrespondenceTable(A, B, AStar, AB, AAStar, file.path(tmp_dir,"updateCorrespondenceTableCase2.csv"), "A", 0.4, 0.3, TRUE)

Case 3

Execute the following code in order to get the path of the required input files.

-
A <- system.file("extdata", "NAICS2017.csv", package = "correspondenceTables")
-AStar <- system.file("extdata", "NAICS2022.csv", package = "correspondenceTables")
-B <- system.file("extdata", "NACE.csv", package = "correspondenceTables")
-AB <- system.file("extdata", "NAICS2017_NACE.csv", package = "correspondenceTables")
-AAStar <- system.file("extdata", "NAICS2017_NAICS2022.csv", package = "correspondenceTables")
+
A <- system.file("extdata", "NAICS2017.csv", package = "correspondenceTables")
+AStar <- system.file("extdata", "NAICS2022.csv", package = "correspondenceTables")
+B <- system.file("extdata", "NACE.csv", package = "correspondenceTables")
+AB <- system.file("extdata", "NAICS2017_NACE.csv", package = "correspondenceTables")
+AAStar <- system.file("extdata", "NAICS2017_NAICS2022.csv", package = "correspondenceTables")

Execute the following code line to apply function updateCorrespondenceTable() on these data. When there are redundant records, these are removed and kept exactly one record for each unique combination.

-
UPC <- updateCorrespondenceTable(A, B, AStar, AB, AAStar, file.path(tmp_dir,"updateCorrespondenceTableCase3.csv"), "none", 0.5, 0.3, TRUE)
+
UPC <- updateCorrespondenceTable(A, B, AStar, AB, AAStar, file.path(tmp_dir,"updateCorrespondenceTableCase3.csv"), "none", 0.5, 0.3, TRUE)

Case 4

Execute the following code in order to get the path of the required input files.

-
A <- system.file("extdata", "CN2021.csv", package = "correspondenceTables")
-AStar <- system.file("extdata", "CN2022.csv", package = "correspondenceTables")
-B <- system.file("extdata", "NST2007.csv", package = "correspondenceTables")
-AB <- system.file("extdata", "CN2021_NST2007.csv", package = "correspondenceTables")
-AAStar <- system.file("extdata", "CN2021_CN2022.csv", package = "correspondenceTables")
+
A <- system.file("extdata", "CN2021.csv", package = "correspondenceTables")
+AStar <- system.file("extdata", "CN2022.csv", package = "correspondenceTables")
+B <- system.file("extdata", "NST2007.csv", package = "correspondenceTables")
+AB <- system.file("extdata", "CN2021_NST2007.csv", package = "correspondenceTables")
+AAStar <- system.file("extdata", "CN2021_CN2022.csv", package = "correspondenceTables")

Execute the following code line to apply function updateCorrespondenceTable() on these data. When no trimming is executed, redundant records are shown, together with the redundancy flag.

-
UPC <- updateCorrespondenceTable(A, B, AStar, AB, AAStar, file.path(tmp_dir,"updateCorrespondenceTableCase4.csv"), "B", 0.4, 0.3, TRUE)
+
UPC <- updateCorrespondenceTable(A, B, AStar, AB, AAStar, file.path(tmp_dir,"updateCorrespondenceTableCase4.csv"), "B", 0.4, 0.3, TRUE)

Case 5

Execute the following code in order to get the path of the required input files.

-
A <- system.file("extdata", "CN2021.csv", package = "correspondenceTables")
-AStar <- system.file("extdata", "CN2022.csv", package = "correspondenceTables")
-B <- system.file("extdata", "SITC4.csv", package = "correspondenceTables")
-AB <- system.file("extdata", "CN2021_SITC4.csv", package = "correspondenceTables")
-AAStar <- system.file("extdata", "CN2021_CN2022.csv", package = "correspondenceTables")
+
A <- system.file("extdata", "CN2021.csv", package = "correspondenceTables")
+AStar <- system.file("extdata", "CN2022.csv", package = "correspondenceTables")
+B <- system.file("extdata", "SITC4.csv", package = "correspondenceTables")
+AB <- system.file("extdata", "CN2021_SITC4.csv", package = "correspondenceTables")
+AAStar <- system.file("extdata", "CN2021_CN2022.csv", package = "correspondenceTables")

Execute the following code line to apply function updateCorrespondenceTable() on these data. When no trimming is executed, redundant records are shown, together with the redundancy flag.

-
UPC <- updateCorrespondenceTable(A, B, AStar, AB, AAStar, file.path(tmp_dir,"updateCorrespondenceTableCase5.csv"), "B", 0.3, 0.7, TRUE)
+
UPC <- updateCorrespondenceTable(A, B, AStar, AB, AAStar, file.path(tmp_dir,"updateCorrespondenceTableCase5.csv"), "B", 0.3, 0.7, TRUE)

Case 6

Execute the following code in order to get the path of the required input files.

-
A <- system.file("extdata", "CN2021.csv", package = "correspondenceTables")
-AStar <- system.file("extdata", "CN2022.csv", package = "correspondenceTables")
-B <- system.file("extdata", "BEC4.csv", package = "correspondenceTables")
-AB <- system.file("extdata", "CN2021_BEC4.csv", package = "correspondenceTables")
-AAStar <- system.file("extdata", "CN2021_CN2022.csv", package = "correspondenceTables")
+
A <- system.file("extdata", "CN2021.csv", package = "correspondenceTables")
+AStar <- system.file("extdata", "CN2022.csv", package = "correspondenceTables")
+B <- system.file("extdata", "BEC4.csv", package = "correspondenceTables")
+AB <- system.file("extdata", "CN2021_BEC4.csv", package = "correspondenceTables")
+AAStar <- system.file("extdata", "CN2021_CN2022.csv", package = "correspondenceTables")

Execute the following code line to apply function updateCorrespondenceTable() on these data. When no trimming is executed, redundant records are shown, together with the redundancy flag.

-
UPC <- updateCorrespondenceTable(A, B, AStar, AB, AAStar, file.path(tmp_dir,"updateCorrespondenceTableCase6.csv"), "B", 0.3, 0.6, FALSE)
+
UPC <- updateCorrespondenceTable(A, B, AStar, AB, AAStar, file.path(tmp_dir,"updateCorrespondenceTableCase6.csv"), "B", 0.3, 0.6, FALSE)

Application of function newCorrespondenceTable().

The function fullPath is used in all cases in order to get the path of the required input files.

-
fullPath <- function(CSVraw, CSVappended){
-  NamesCsv <- system.file("extdata", CSVraw, package = "correspondenceTables")
-  A <- read.csv(NamesCsv, header = FALSE, sep = ",")
-   for (i in 1:nrow(A)) {
-    for (j in 1:ncol(A)) {
-      if (A[i,j]!="") {
-        A[i, j] <- system.file("extdata", A[i, j], package = "correspondenceTables")
-      }}}
-  write.table(x = A, file = file.path(tmp_dir,CSVappended), row.names = FALSE, col.names = FALSE, sep = ",")
-  return(A)
-}
+
fullPath <- function(CSVraw, CSVappended){
+  NamesCsv <- system.file("extdata", CSVraw, package = "correspondenceTables")
+  A <- read.csv(NamesCsv, header = FALSE, sep = ",")
+   for (i in 1:nrow(A)) {
+    for (j in 1:ncol(A)) {
+      if (A[i,j]!="") {
+        A[i, j] <- system.file("extdata", A[i, j], package = "correspondenceTables")
+      }}}
+  write.table(x = A, file = file.path(tmp_dir,CSVappended), row.names = FALSE, col.names = FALSE, sep = ",")
+  return(A)
+}

Case 1

-
fullPath("names1.csv", "names.csv")
+
fullPath("names1.csv", "names.csv")

Execute the following code to apply function newCorrespondenceTable() on these data. When no trimming is executed, redundant records are shown, together with the redundancy flag.

-
system.time(NCT <- newCorrespondenceTable(file.path(tmp_dir,"names.csv"), file.path(tmp_dir,"newCorrespondenceTableCase1.csv"), "A", 0.5, FALSE))
-#> Percentage of codes of ISIC Rev. 4 processed:
-#> 
-#> Percentage of codes of CPA 2.1 processed:
-#> 
-
print(NCT[[1]][1:10, 1:6])
-#>    ISIC Rev. 4 CPC 2.1 CPA 2.1 Review Redundancy Redundancy_keep
-#> 1                           01                 0               0
-#> 2                         01.1                 0               0
-#> 3                        01.11                 0               0
-#> 4                      01.11.1                 0               0
-#> 5                      01.11.2                 0               0
-#> 6                      01.11.3                 0               0
-#> 7                      01.11.4                 0               0
-#> 8                      01.11.5                 0               0
-#> 9                      01.11.6                 0               0
-#> 10                     01.11.7                 0               0
-print(NCT[[2]])
-#>   Classification: Name
-#> 1       A: ISIC Rev. 4
-#> 2          C1: CPC 2.1
-#> 3           B: CPA 2.1
+
system.time(NCT <- newCorrespondenceTable(file.path(tmp_dir,"names.csv"), file.path(tmp_dir,"newCorrespondenceTableCase1.csv"), "A", 0.5, FALSE))
+#> Percentage of codes of ISIC Rev. 4 processed:
+#> 
+#> Percentage of codes of CPA 2.1 processed:
+#> 
+
print(NCT[[1]][1:10, 1:6])
+#>    ISIC Rev. 4 CPC 2.1 CPA 2.1 Review Redundancy Redundancy_keep
+#> 1                           01                 0               0
+#> 2                         01.1                 0               0
+#> 3                        01.11                 0               0
+#> 4                      01.11.1                 0               0
+#> 5                      01.11.2                 0               0
+#> 6                      01.11.3                 0               0
+#> 7                      01.11.4                 0               0
+#> 8                      01.11.5                 0               0
+#> 9                      01.11.6                 0               0
+#> 10                     01.11.7                 0               0
+print(NCT[[2]])
+#>   Classification: Name
+#> 1       A: ISIC Rev. 4
+#> 2          C1: CPC 2.1
+#> 3           B: CPA 2.1

Case 2

-
fullPath("names2.csv", "names.csv")
+
fullPath("names2.csv", "names.csv")

Execute the following code to apply function newCorrespondenceTable() on these data. When no trimming is executed, redundant records are shown, together with the redundancy flag.

-
system.time(NCT <- newCorrespondenceTable(file.path(tmp_dir,"names.csv"), file.path(tmp_dir,"newCorrespondenceTableCase2.csv"), "B", 0.5, FALSE))
-#> Percentage of codes of CN 2022 processed:
-#> 
-#> Percentage of codes of NACE Rev. 2 processed:
-#> 
+
system.time(NCT <- newCorrespondenceTable(file.path(tmp_dir,"names.csv"), file.path(tmp_dir,"newCorrespondenceTableCase2.csv"), "B", 0.5, FALSE))
+#> Percentage of codes of CN 2022 processed:
+#> 
+#> Percentage of codes of NACE Rev. 2 processed:
+#> 

Case 3

-
fullPath("names3.csv", "names.csv")
+
fullPath("names3.csv", "names.csv")

Execute the following code to apply function newCorrespondenceTable() on these data. When there are redundant records, these are removed and kept exactly one record for each unique combination.

-
system.time(NCT <- newCorrespondenceTable(file.path(tmp_dir,"names.csv"), file.path(tmp_dir,"newCorrespondenceTableCase3.csv"), "B", 0.5, TRUE))
-#> Percentage of codes of NACE Rev. 2 processed:
-#> 
-#> Percentage of codes of ISIC Rev. 4 processed:
-#> 
+
system.time(NCT <- newCorrespondenceTable(file.path(tmp_dir,"names.csv"), file.path(tmp_dir,"newCorrespondenceTableCase3.csv"), "B", 0.5, TRUE))
+#> Percentage of codes of NACE Rev. 2 processed:
+#> 
+#> Percentage of codes of ISIC Rev. 4 processed:
+#> 

Case 4

-
fullPath("names4.csv", "names.csv")
+
fullPath("names4.csv", "names.csv")

Execute the following code to apply function newCorrespondenceTable() on these data. When there are redundant records, these are removed and kept exactly one record for each unique combination.

-
system.time(NCT <- newCorrespondenceTable(file.path(tmp_dir,"names.csv"), file.path(tmp_dir,"newCorrespondenceTableCase4.csv"), "none", 0.96, TRUE))
-#> Percentage of codes of NACE Rev. 2 processed:
-#> 
-#> Percentage of codes of SITC4 processed:
-#> 
+
system.time(NCT <- newCorrespondenceTable(file.path(tmp_dir,"names.csv"), file.path(tmp_dir,"newCorrespondenceTableCase4.csv"), "none", 0.96, TRUE))
+#> Percentage of codes of NACE Rev. 2 processed:
+#> 
+#> Percentage of codes of SITC4 processed:
+#> 
diff --git a/vignettes/Retrieve_classification_and_correspondence_tables.Rmd b/vignettes/Retrieve_classification_and_correspondence_tables.Rmd index 8ade41c..640b9b2 100644 --- a/vignettes/Retrieve_classification_and_correspondence_tables.Rmd +++ b/vignettes/Retrieve_classification_and_correspondence_tables.Rmd @@ -18,47 +18,58 @@ This vignette provides information about the functions included in the correspon library(correspondenceTables) ``` -The main two functions used to exact tables are retrieveClassificationTable() and retrieveCorrespondenceTable(), for classification and correspondence tables respectively. Other functions (prefixList(), classEndpoint(), structureData() and correspondenceList()) are used to understand the structure of each classification and retrieve information needed as input of the two main functions. +The main two functions used to extract tables are retrieveClassificationTable() and retrieveCorrespondenceTable(), for classification and correspondence tables respectively. Other functions (prefixList(), classificationEndpoint(), dataStructure() and correspondenceList()) are used to understand the structure of each classification or correspondence table and retrieve information needed as input of the two main functions. ## Extract Classification Tables The function retrieveClassificationTable() retrieves the classification table from the CELLAR and FAO repository, which can be used as an input to the newCorrespondenceTable and updateCorrespondenceTable functions. This function has five arguments: -* prefix - the SPARQL instruction for a declaration of a namespace prefix. -* endpoint - the SPARQL Endpoint: CELLAR or FAO. -* conceptScheme - taxonomy of the SKOS object to be retrieved. -* level - levels of the objects in the collection to be retrieved. -* language - language of the table. -* CSVout - preferred choice of output. +* prefix - the SPARQL instruction for a declaration of a namespace prefix +* endpoint - the SPARQL Endpoint: CELLAR or FAO +* conceptScheme - a unique identifier associated to specific classification table +* level - levels of the objects in the collection to be retrieved +* language - language of the table +* CSVout - preferred choice of output +* showQuery - the SPARQL query generated -The values of the prefix, conceptScheme and level can be found using the classEndpoint() and structureData() functions (see below). -The arguments level and language are optional and set as default as level="ALL", language="en" and CSVout = "FALSE". +The values of the prefix, conceptScheme and level can be found using the classificationEndpoint() and dataStructure() functions (see below). +The arguments level, language, CSVout and showQuery are optional and set as default as level="ALL", language="en", CSVout="FALSE" and showQuery="FALSE". The namespace prefix needed to execute the SPARQL query are automatically generated using the prefixList() function (see below). - **Application of function retrieveClassificationTable()** -To following code is used to retrieve the NACE2 classification from CELLAR: +The following code is used to retrieve the NACE2 classification from CELLAR: -```{r eval=FALSE} +```{r, results = "hide"} endpoint = "CELLAR" -# obtain prefix and conceptscheme using classEndpoint() -classEndpoint(endpoint)[[1]][,1:4] -prefix = "nace2" -conceptScheme = "nace2" +# obtain prefix and conceptscheme using classificationEndpoint() +classificationEndpoint(endpoint)[[1]][,1:4] +prefix = "nace21" +conceptScheme = "nace2.1" +## You can modify the language by example "en" "bg" language = "en" -CSVout = FALSE +CSVout = F +showQuery = TRUE +level = "ALL" +# identify lower level using dataStructure() +# level_dt = dataStructure(prefix, conceptScheme, endpoint, language) +# level = level_dt[nrow(level_dt),2] +# level_dt; level + +result_ls = retrieveClassificationTable(prefix, endpoint, conceptScheme, level , language, CSVout, showQuery) + +# identify the SPARQL query used +SPARQLquery = result_ls[[1]] +### cat put the break line for the sparql query +cat(SPARQLquery, sep = "\n") +# obtained the table +table = result_ls[[2]] -# identify lower level using structureData() -level_dt = structureData(prefix, conceptScheme, endpoint, language) -level = level_dt[nrow(level_dt),2] -level_dt; level - -dt = retrieveClassificationTable(prefix, endpoint, conceptScheme, level, language, CSVout) ``` + ### Other functions used to extract Classification Tables Following, the other functions used to extract the required information for the retrieveClassificationTable() function. @@ -67,66 +78,66 @@ Following, the other functions used to extract the required information for the This function automatically obtains a list the prefixes from CELLAR and FAO used in the retrieveClassificationTable() and retrieveCorrespondenceTable() functions to retrieve the required tables. The list will be updated automatically each time a new classification or correspondence classification is introduced in CELLAR or FAO repository. -```{r results = "hide"} +```{r, results = "hide"} endpoint = "CELLAR" prefixList(endpoint) ``` -**Application of function classEndpoint()** +**Application of function classificationEndpoint()** The function returns a table with information needed to retrieve the classification table: \itemize{ \item Prefix name: the SPARQL instruction for a declaration of a namespace prefix - \item Conceptscheme: taxonomy of the SKOS objects + \item Conceptscheme: a unique identifier associated to specific classification table \item URI: the URL from which the SPARQL query was retrieved \item Name: the name of the table retrieved } -```{r results = "hide"} +```{r, results = "hide"} endpoint = "ALL" - list_data = classEndpoint(endpoint) + list_data = classificationEndpoint(endpoint) ``` -**Application of function structureData()** +**Application of function dataStructure()** -Each classification has a different level based on their structure. The function structureData() retrieves information about the level names, their hierarchy and the numbers of records for all the classification available in the repositories (CELLAR and FAO). The level informations needed as an optional arguments of the retrieveClassificationTable() function. +Each classification has a different level based on their structure. The function dataStructure() retrieves information about the level names, their hierarchy and the numbers of records for all the classification available in the repositories (CELLAR and FAO). The level information needed as an optional arguments of the retrieveClassificationTable() function. The function returns a table with the following columns: \itemize{ - \item Concept_Scheme: taxonomy of the SKOS object to be retrieved - \item Level: the levels of the objects in the collection + \item Concept_Scheme: a unique identifier associated to specific classification table + \item Level: the levels of the objects in the collection \item Depth: identify the hierarchy of each level \item Count: the number of objects retrieved in each level } The following code produce a list including the structure of each classification available in CELLAR and FAO. -```{r eval=FALSE, include=TRUE} +```{r,results = "hide"} ## Obtain the structure of all classifications ## CELLAR -data_CELLAR = list() -endpoint = "CELLAR" -#Get info to retrieve structure using classEndpoint() -list_data = classEndpoint("ALL") - -#loop over all classification in CELLAR -for (i in 1:nrow(list_data$CELLAR)){ - prefix = list_data$CELLAR[i,1] - conceptScheme = list_data$CELLAR[i,2] - #language by default is English - data_CELLAR[[i]] = structureData(prefix, conceptScheme, endpoint) -} -names(data_CELLAR) = list_data$CELLAR[,1] +# data_CELLAR = list() +# endpoint = "CELLAR" +# #Get info to retrieve structure using classificationEndpoint() +# list_data = classificationEndpoint("ALL") + +# #loop over all classification in CELLAR +# for (i in 1:nrow(list_data$CELLAR)){ +# prefix = list_data$CELLAR[i,1] +# conceptScheme = list_data$CELLAR[i,2] +# #language by default is English +# data_CELLAR[[i]] = dataStructure(prefix, conceptScheme, endpoint) +# } +# names(data_CELLAR) = list_data$CELLAR[,1] ## FAO -data_FAO = list() -endpoint = "FAO" -for (i in 1:nrow(list_data$FAO)){ - prefix = list_data$FAO[i,1] - conceptScheme = list_data$FAO[i,2] - data_FAO[[i]] = structureData(prefix, conceptScheme, endpoint) -} -names(data_FAO) = list_data$FAO[,1] +# data_FAO = list() +# endpoint = "FAO" +# for (i in 1:nrow(list_data$FAO)){ +# prefix = list_data$FAO[i,1] +# conceptScheme = list_data$FAO[i,2] +# data_FAO[[i]] = dataStructure(prefix, conceptScheme, endpoint) +# } +# names(data_FAO) = list_data$FAO[,1] ``` ## Extract Correspondence Tables @@ -137,32 +148,52 @@ The function retrieveCorrespondenceTable() retrieves the correspondences table f * ID_table - the ID of the correspondence table * language - language of the table * CSVout - preferred choice of output +* showQuery - the SPARQL query generated The values of the prefix and ID_table can be found using the correspondenceList() function (see below). -The argument language is optional and set as default as language="en" and CSVout = "FALSE". +The argument language, CSVout and showQuery are optional and set as default as language="en", CSVout="FALSE" and showQuery="TRUE". The namespace prefix needed to execute the SPARQL query are automatically generated using the prefixList() function (see above). **Application of function retrieveCorrespondenceTable()** -To following code is used to retrieve the correspondence table between NACE2 and PRODCOM2021 from CELLAR: -```{r results = "hide"} +To following code is used to retrieve the correspondence table between NACE2 and CPA21 from CELLAR: +```{r, results = "hide"} + endpoint = "CELLAR" +### correspondenceList +correspondenceList(endpoint) prefix = "nace2" -ID_table = "NACE2_PRODCOM2021" +ID_table = "NACE2_CPA21" language = "en" CSVout = FALSE -dt = retrieveCorrespondenceTable(prefix, endpoint, ID_table, language, CSVout) +showQuery= TRUE + +result_ls = retrieveCorrespondenceTable(prefix, endpoint, ID_table, language, CSVout, showQuery) + +# identify the SPARQL query used +SPARQLquery = result_ls[[1]] +cat(SPARQLquery, sep = "\n") +# obtained the table +table = result_ls[[2]] ``` To following code is used to retrieve a specific correspondence table between CPCv21 and ISIC4 from FAO: -```{r results = "hide"} -endpoint = "FAO" -prefix = "CPCv21" -ID_table = "CPC21-ISIC4" -language = "en" -CSVout = FALSE -dt = retrieveCorrespondenceTable(prefix, endpoint, ID_table, language, CSVout) +```{r, results = "hide"} +# endpoint = "FAO" +# prefix = "CPCv21" +# ID_table = "CPC21-ISIC4" +# language = "en" +# CSVout = FALSE +# showQuery= TRUE +# +# result_ls = retrieveCorrespondenceTable(prefix, endpoint, ID_table, language, CSVout, showQuery) +# +# # identify the SPARQL query used +# SPARQLquery = result_ls[[1]] +# +# # obtained the table +# table = result_ls[[2]] ``` ### Other functions used to extract Correspondence Tables @@ -173,12 +204,13 @@ Following, the function used to extract the required information for the retriev The correspondenceList() provides an overview of all the available correspondence classification from CELLAR and FAO repository. -```{r message=FALSE, warning=FALSE, results = "hide"} +```{r, message=FALSE, warning=FALSE, results = "hide"} corr_list = correspondenceList("ALL") #provides a table with all the correspondence tables for NACE2 in CELLAR corr_list$CELLAR$`nace2:` #provides a table with all the correspondence tables for CPC v21 in FAO -corr_list$FAO$`CPCv21:` +# corr_list$FAO$`CPCv21:` ``` + diff --git a/vignettes/Retrieve_classification_and_correspondence_tables.html b/vignettes/Retrieve_classification_and_correspondence_tables.html index a6b9034..5def2b3 100644 --- a/vignettes/Retrieve_classification_and_correspondence_tables.html +++ b/vignettes/Retrieve_classification_and_correspondence_tables.html @@ -345,13 +345,13 @@

Retrieve classification and correspondence the correspondenceTables package used to extract classification and correspondence tables from CELLAR and FAO endpoints.

library(correspondenceTables)
-

The main two functions used to exact tables are +

The main two functions used to extract tables are retrieveClassificationTable() and retrieveCorrespondenceTable(), for classification and correspondence tables respectively. Other functions -(prefixList(), classEndpoint(), structureData() and +(prefixList(), classificationEndpoint(), dataStructure() and correspondenceList()) are used to understand the structure of each -classification and retrieve information needed as input of the two main -functions.

+classification or correspondence table and retrieve information needed +as input of the two main functions.

Extract Classification Tables

The function retrieveClassificationTable() retrieves the @@ -361,38 +361,47 @@

Extract Classification Tables

arguments:

  • prefix - the SPARQL instruction for a declaration of a namespace -prefix.
  • -
  • endpoint - the SPARQL Endpoint: CELLAR or FAO.
  • -
  • conceptScheme - taxonomy of the SKOS object to be retrieved.
  • -
  • level - levels of the objects in the collection to be -retrieved.
  • -
  • language - language of the table.
  • -
  • CSVout - preferred choice of output.
  • +prefix +
  • endpoint - the SPARQL Endpoint: CELLAR or FAO
  • +
  • conceptScheme - a unique identifier associated to specific +classification table
  • +
  • level - levels of the objects in the collection to be retrieved
  • +
  • language - language of the table
  • +
  • CSVout - preferred choice of output
  • +
  • showQuery - the SPARQL query generated

The values of the prefix, conceptScheme and level can be found using -the classEndpoint() and structureData() functions (see below). The -arguments level and language are optional and set as default as -level=“ALL”, language=“en” and CSVout = “FALSE”.

+the classificationEndpoint() and dataStructure() functions (see below). +The arguments level, language, CSVout and showQuery are optional and set +as default as level=“ALL”, language=“en”, CSVout=“FALSE” and +showQuery=“FALSE”.

The namespace prefix needed to execute the SPARQL query are automatically generated using the prefixList() function (see below).

Application of function retrieveClassificationTable()

-

To following code is used to retrieve the NACE2 classification from +

The following code is used to retrieve the NACE2 classification from CELLAR:

endpoint = "CELLAR"
-# obtain prefix and conceptscheme using classEndpoint()
-classEndpoint(endpoint)[[1]][,1:4]
+# obtain prefix and conceptscheme using classificationEndpoint()
+classificationEndpoint(endpoint)[[1]][,1:4]
 prefix = "nace2"
 conceptScheme = "nace2"
 language = "en"
 CSVout = FALSE
-
-# identify lower level using structureData()
-level_dt = structureData(prefix, conceptScheme, endpoint, language)
-level = level_dt[nrow(level_dt),2] 
-level_dt; level
-
-dt = retrieveClassificationTable(prefix, endpoint, conceptScheme, level, language, CSVout)
+showQuery = TRUE + +# identify lower level using dataStructure() +level_dt = dataStructure(prefix, conceptScheme, endpoint, language) +level = level_dt[nrow(level_dt),2] +level_dt; level + +result_ls = retrieveClassificationTable(prefix, endpoint, conceptScheme, level = level, language, CSVout, showQuery) + +# identify the SPARQL query used +SPARQLquery = result_ls[[1]] + +# obtained the table +table = result_ls[[2]]

Other functions used to extract Classification Tables

Following, the other functions used to extract the required @@ -406,47 +415,47 @@

Other functions used to extract Classification Tables

repository.

endpoint = "CELLAR"
 prefixList(endpoint)
-

Application of function classEndpoint()

+

Application of function classificationEndpoint()

The function returns a table with information needed to retrieve the classification table:

 endpoint = "ALL"
- list_data = classEndpoint(endpoint)
-

Application of function structureData()

+ list_data = classificationEndpoint(endpoint)
+

Application of function dataStructure()

Each classification has a different level based on their structure. -The function structureData() retrieves information about the level +The function dataStructure() retrieves information about the level names, their hierarchy and the numbers of records for all the classification available in the repositories (CELLAR and FAO). The level -informations needed as an optional arguments of the +information needed as an optional arguments of the retrieveClassificationTable() function.

The function returns a table with the following columns:

The following code produce a list including the structure of each classification available in CELLAR and FAO.

-
## Obtain the structure of all classifications 
-## CELLAR
-data_CELLAR = list()
-endpoint = "CELLAR"
-#Get info to retrieve structure using classEndpoint()
-list_data = classEndpoint("ALL")
-
-#loop over all classification in CELLAR
-for (i in 1:nrow(list_data$CELLAR)){
-  prefix = list_data$CELLAR[i,1] 
-  conceptScheme = list_data$CELLAR[i,2] 
-  #language by default is English
-  data_CELLAR[[i]] = structureData(prefix, conceptScheme, endpoint)
-}
-names(data_CELLAR) = list_data$CELLAR[,1] 
-
-## FAO 
-data_FAO = list()
-endpoint = "FAO"
-for (i in 1:nrow(list_data$FAO)){
-  prefix = list_data$FAO[i,1]
-  conceptScheme = list_data$FAO[i,2] 
-  data_FAO[[i]] = structureData(prefix, conceptScheme, endpoint)
-}
-names(data_FAO) =  list_data$FAO[,1]
+
## Obtain the structure of all classifications 
+## CELLAR
+data_CELLAR = list()
+endpoint = "CELLAR"
+#Get info to retrieve structure using classificationEndpoint()
+list_data = classificationEndpoint("ALL")
+
+#loop over all classification in CELLAR
+for (i in 1:nrow(list_data$CELLAR)){
+  prefix = list_data$CELLAR[i,1] 
+  conceptScheme = list_data$CELLAR[i,2] 
+  #language by default is English
+  data_CELLAR[[i]] = dataStructure(prefix, conceptScheme, endpoint)
+}
+names(data_CELLAR) = list_data$CELLAR[,1] 
+
+## FAO 
+data_FAO = list()
+endpoint = "FAO"
+for (i in 1:nrow(list_data$FAO)){
+  prefix = list_data$FAO[i,1]
+  conceptScheme = list_data$FAO[i,2] 
+  data_FAO[[i]] = dataStructure(prefix, conceptScheme, endpoint)
+}
+names(data_FAO) =  list_data$FAO[,1]
@@ -463,10 +472,12 @@

Extract Correspondence Tables

  • ID_table - the ID of the correspondence table
  • language - language of the table
  • CSVout - preferred choice of output
  • +
  • showQuery - the SPARQL query generated
  • The values of the prefix and ID_table can be found using the -correspondenceList() function (see below). The argument language is -optional and set as default as language=“en” and CSVout = “FALSE”.

    +correspondenceList() function (see below). The argument language, CSVout +and showQuery are optional and set as default as language=“en”, +CSVout=“FALSE” and showQuery=“TRUE”.

    The namespace prefix needed to execute the SPARQL query are automatically generated using the prefixList() function (see above).

    Application of function @@ -478,7 +489,15 @@

    Extract Correspondence Tables

    ID_table = "NACE2_PRODCOM2021" language = "en" CSVout = FALSE -dt = retrieveCorrespondenceTable(prefix, endpoint, ID_table, language, CSVout)
    +showQuery= TRUE + +result_ls = retrieveCorrespondenceTable(prefix, endpoint, ID_table, language, CSVout, showQuery) + +# identify the SPARQL query used +SPARQLquery = result_ls[[1]] + +# obtained the table +table = result_ls[[2]]

    To following code is used to retrieve a specific correspondence table between CPCv21 and ISIC4 from FAO:

    endpoint = "FAO"
    @@ -486,7 +505,15 @@ 

    Extract Correspondence Tables

    ID_table = "CPC21-ISIC4" language = "en" CSVout = FALSE -dt = retrieveCorrespondenceTable(prefix, endpoint, ID_table, language, CSVout)
    +showQuery= TRUE + +result_ls = retrieveCorrespondenceTable(prefix, endpoint, ID_table, language, CSVout, showQuery) + +# identify the SPARQL query used +SPARQLquery = result_ls[[1]] + +# obtained the table +table = result_ls[[2]]

    Other functions used to extract Correspondence Tables

    Following, the function used to extract the required information for diff --git a/vignettes/VignetteAggregateClassificationQC.Rmd b/vignettes/VignetteAggregateClassificationQC.Rmd new file mode 100644 index 0000000..89889ba --- /dev/null +++ b/vignettes/VignetteAggregateClassificationQC.Rmd @@ -0,0 +1,62 @@ +--- +title: "Vignette_Aggregate_CorrespondenceTable" +output: html_document + + +vignette: > + %\VignetteIndexEntry{Aggregate classification between A & B with the correspondenceTables package} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + + + +```{r setup, include=FALSE} +knitr::opts_chunk$set(echo = TRUE) +``` + +This vignette provides information about the functions included in the correspondenceTables package used to create an aggregation between two classifications + +Load the package correspondenceTables : +```{r cars} +library(correspondenceTables) +``` + +The `aggregateCorrespondenceTable` function in R is designed to aggregate correspondence tables between two hierarchical classifications. It facilitates the process of expressing statistics compiled at different levels in classification A to corresponding levels in classification B. The function output is mechanically defined and provides candidate aggregations for subsequent analysis by statistical classification experts. + +The function expects three mandatory CSV files (AB, A, and B) as input. The structure of these files is crucial. + +- **AB**: Input correspondence table +- **A**: Source classification table +- **B**: Target classification table +- **CSVOUT** Retrieve the result as a csv + + +**Application of the aggregateCorrespondenceTable()** + +```{r, results = "hide"} + AB <- (system.file("extdata", "ab_data.csv", package = "correspondenceTables")) + A <- (system.file("extdata", "a_data.csv", package = "correspondenceTables")) + B <- (system.file("extdata", "b_data.csv", package = "correspondenceTables")) + + + result <- aggregateCorrespondenceTable(AB = AB, A = A, B = B, CSVout = FALSE) + + print(result) + +``` + +**Other Example** + +```{r, results = "hide"} + + AB <- (system.file("extdata", "ab_data.csv", package = "correspondenceTables")) + A <- (system.file("extdata", "a_data.csv", package = "correspondenceTables")) + B <- (system.file("extdata", "b_data.csv", package = "correspondenceTables")) + + + result <- aggregateCorrespondenceTable(AB = AB, A = A, B = B, CSVout = TRUE) + + print(result) +``` + diff --git a/vignettes/VignetteClassificationQC.Rmd b/vignettes/VignetteClassificationQC.Rmd new file mode 100644 index 0000000..c97df00 --- /dev/null +++ b/vignettes/VignetteClassificationQC.Rmd @@ -0,0 +1,141 @@ +--- +title: "Vignette_Classification Quality Control" +output: rmarkdown::html_vignette + + +vignette: > + %\VignetteIndexEntry{Retrieve classification quality control with the correspondenceTables package} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +```{r include=FALSE} +knitr::opts_chunk$set(collapse = TRUE, comment = "#>") +``` + +This vignette provides information about the functions included in the correspondenceTables package used to create a quality control of the classification + +```{r} +library(correspondenceTables) +``` + + +The main function `classificationQC()` function is designed for hierarchical classifications but is adaptable for flat classifications. It does not process the specialized terminological rules of certain categories, such as 'other' and 'not elsewhere classified,' due to language-specific variations. However, it facilitates the extraction of these categories for potential post-processing by a classifications analyst. The function return a dataframe for analysis. + + This function has eight arguments : +* classification - containing the name of a CSV file of the classification provided by the user. +* lenghtsfile - The user provide a csv file the different level of hierarchical classification. +* fullHierarchy - This rule outlines criteria for assessing the completeness If fullHierarchy is FALSE, the rule applies to positions at hierarchical levels greater than 1. If fullHierarchy is TRUE, a second rule is tested. +* labelUniqueness - This rule define is there is in our classification any duplicates +* labelHierarchy - This rule define a new column depending on the children label in relation to the parents. +* singleChildCode - The user provide a csv file in order to create two new columns singleCodeError multipleCodeError +* sequencing - The user provide a csv file in order to create a nerw column Sequencing +* CSVout - preferred choice of output + + +**Requirement for the csv file for LenghtsFile, singleChildCode, sequencing** + +**LenghtsFile** the user provide a csv file with these headers **charb chare** +if not return a warning message that there is not these headears and will be corrected. + +**SingleChildCode** the user provide a csv with these headers **level,singleCode,multipleCode** If this is not the case, then the function will return a warning saying that the headers are wrong and will correct them to set the correct ones + +**Sequencing** had the same logic like SingleChildCode but his headers are different : **level multipleCode** + +Here we load the different csv file in order to see the column for the next example with error on the headers +```{r, results = "hide"} +lengthsFile <- read.csv( system.file("extdata", "lenghtsNaceNoColumn.csv", package = "correspondenceTables")) +## Here lenghtsFile has no column +colnames(lengthsFile) +singleChildCode <- read.csv(system.file("extdata","SingleChild.csv", package = "correspondenceTables")) +# SingleChildCode has the good column +colnames(singleChildCode) +sequencing <- read.csv(system.file("extdata","Sequencing.csv", package = "correspondenceTables")) +#Sequencing has string as a column it will be replaced see next chunk +colnames(sequencing) + + +``` + + +**Application of the function classificationQC()** + +The following code is used to create the quality control of the NACE2 classification from CELLAR: +Here we used different parameters : + +The user provide a csv file for Classification and lengthsFile. + +```{r, results = "hide"} +output <- classificationQC(classification = system.file("extdata", "Nace2.csv", package ="correspondenceTables"), + lengthsFile = system.file("extdata", "lenghtsNace.csv", package = "correspondenceTables"), + fullHierarchy = TRUE, + labelUniqueness = TRUE, labelHierarchy = TRUE, + singleChildCode = NULL, sequencing = NULL, + CSVout = NULL) + + +output$QC_output +``` + +**Full hierarchy** If fullHierarchy is FALSE, the rule applies to positions at hierarchical levels greater than 1. +A new field in the QC output, named "orphan," takes the value 1 for positions lacking a parent at the immediately higher hierarchical level (j-1) (otherwise 0). +Positions Above Level k (j < k): + +If fullHierarchy is TRUE, a second rule is tested. +A new field in the QC output, named "childless," takes the value 1 for positions at hierarchical level j lacking a child at the immediately lower hierarchical level (j+1) (otherwise 0). + +The **labelUniqueness** argument (default value: TRUE) indicates whether compliance with this rule is to be tested. +The test outcome is reported in a new 'QC output' column (duplicateLabel), assuming the value 1 for positions involved in duplicates and 0 otherwise. + + +The **labelHierarchy** argument (default value: TRUE) is used to indicate whether compliance with this rule is to be tested. +The test outcome is reported in a new 'QC output' column (singleChildMismatch) for each hierarchical level j > 1 (with a blank value for j = 1, i.e., at the highest hierarchical level). +Value 1 is assumed for single children having labels not matching that of their parent. +Value 9 is assumed for children having labels matching that of their parent without being a single child. +Otherwise, the value is assumed to be 0. + +**Application of an another example of the function classificationQC()** + +For this example the different CSV File have wrong headers in the output we got warning messages. + +The following code is used to create the quality control of the NACE2 classification from CELLAR: +Here we used different parameters and we had SingleChildCode : + +```{r, results = "hide"} +output2 <- classificationQC( + classification = system.file("extdata", "Nace2.csv", package ="correspondenceTables"), + lengthsFile = system.file("extdata", "lenghtsNaceNoColumn.csv", package = "correspondenceTables"), + fullHierarchy = TRUE, + labelUniqueness = TRUE, + labelHierarchy = TRUE, + singleChildCode = system.file("extdata","SingleChild.csv", package = "correspondenceTables"), + sequencing = NULL, + CSVout = NULL) + +output2$QC_multipleCodeError +output2$QC_output + +``` + + + +**Application of an another example of the function classificationQC()** + +We used here the parameter **sequencing** for our last example sequencing will be used on the level 3 and 4 here. + +```{r, results = "hide"} +output3 <- classificationQC( + classification = system.file("extdata", "Nace2.csv", package ="correspondenceTables"), + lengthsFile = system.file("extdata", "lenghtsNaceNoColumn.csv", package = "correspondenceTables"), + fullHierarchy = TRUE, + labelUniqueness = TRUE, + labelHierarchy = TRUE, + singleChildCode = system.file("extdata","SingleChild2.csv", package = "correspondenceTables"), + sequencing = c(3,4), + CSVout = NULL) + +output3$QC_output +output3$QC_gapBefore +output3$QC_lastSibling +``` + diff --git a/vignettes/VignetteCorrectionAndLenghtsFile.Rmd b/vignettes/VignetteCorrectionAndLenghtsFile.Rmd new file mode 100644 index 0000000..37cf51b --- /dev/null +++ b/vignettes/VignetteCorrectionAndLenghtsFile.Rmd @@ -0,0 +1,144 @@ +--- +title: "CorrectionClassification" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{CorrectionClassification & LengthsFile} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +```{r setup, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) +``` + +Introduction +This vignette provides information about the functions correctionClassification and lengthsFile included in the correspondenceTables package. These functions are designed to assist in retrieving classification tables from CELLAR and FAO repositories. +```{r} +library(correspondenceTables) +``` + + +**CorrectionClassification Function** + +The correctionClassification function is used to correct the classification codes based on specific rules for each classification. It takes the following parameter: + +Classification - Code name (e.g. nace2): the code of each object +Classification Label - corresponding name of each object + + +**Application of function CorrectionClassification ** + +To following code is used to corrects the classification table by adding necessary prefixes or removing unwanted characters. +```{r} +prefix = "nace2" +conceptScheme = "nace2" +endpoint = "CELLAR" +classification = retrieveClassificationTable(prefix, endpoint, conceptScheme,level="ALL")$ClassificationTable +classification = classification[,c(1,2)] +colnames(classification)[1:2] = c("Code", "Label") +``` + +These different code show the different correction for each classification. + +**Correction for (NACE - NACE 2.1 - CPA21 - and ISIC) add a letter ** +Letter addition for NACE, NACE 2.1, CPA21, and ISIC: + +For each classification (NACE, NACE 2.1, CPA21, and ISIC), specific code ranges are identified using the substr function. Then, a letter is added to the corresponding code values in the classification$Code column. For example, codes starting with "01" or "02" or "03" are assigned the letter "A", codes starting with "05" or "06" or "07" or "08" or "09" are assigned the letter "B" and for the other number we input different letters from alphabet +```{r} + if (prefix %in% c("nace2", "nace21", "cpa21", "ISICrev4")) { + A_code = which(substr(classification$Code, 1, 2) %in% c("01", "02", "03")) + classification$Code[A_code] = paste0("A", classification$Code[A_code]) + B_code = which(substr(classification$Code, 1, 2) %in% c("05", "06", "07", "08", "09")) + classification$Code[B_code] = paste0("B", classification$Code[B_code]) + C_code = which(substr(classification$Code, 1, 2) %in% c("10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", + "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33")) + classification$Code[C_code] = paste0("C", classification$Code[C_code]) + D_code = which(substr(classification$Code, 1, 2) %in% c("35")) + classification$Code[D_code] = paste0("D", classification$Code[D_code]) + E_code = which(substr(classification$Code, 1, 2) %in% c("36", "37", "38", "39")) + classification$Code[E_code] = paste0("E", classification$Code[E_code]) + F_code = which(substr(classification$Code, 1, 2) %in% c("41", "42", "43")) + classification$Code[F_code] = paste0("F", classification$Code[F_code]) + G_code = which(substr(classification$Code, 1, 2) %in% c("45", "46", "47")) + classification$Code[G_code] = paste0("G", classification$Code[G_code]) + H_code = which(substr(classification$Code, 1, 2) %in% c("49", "50", "51", "52", "53")) + classification$Code[H_code] = paste0("H", classification$Code[H_code]) + I_code = which(substr(classification$Code, 1, 2) %in% c("55", "56")) + classification$Code[I_code] = paste0("I", classification$Code[I_code]) + J_code = which(substr(classification$Code, 1, 2) %in% c("58", "59", "60", "61", "62", "63")) + classification$Code[J_code] = paste0("J", classification$Code[J_code]) + K_code = which(substr(classification$Code, 1, 2) %in% c("64", "65", "66")) + classification$Code[K_code] = paste0("K", classification$Code[K_code]) + L_code = which(substr(classification$Code, 1, 2) %in% c("68")) + classification$Code[L_code] = paste0("L", classification$Code[L_code]) + M_code = which(substr(classification$Code, 1, 2) %in% c("69", "70", "71", "72", "73", "74", "75")) + classification$Code[M_code] = paste0("M", classification$Code[M_code]) + N_code = which(substr(classification$Code, 1, 2) %in% c("77", "78", "79", "80", "81", "82")) + classification$Code[N_code] = paste0("N", classification$Code[N_code]) + O_code = which(substr(classification$Code, 1, 2) %in% c("84")) + classification$Code[O_code] = paste0("O", classification$Code[O_code]) + P_code = which(substr(classification$Code, 1, 2) %in% c("85")) + classification$Code[P_code] = paste0("P", classification$Code[P_code]) + Q_code = which(substr(classification$Code, 1, 2) %in% c("86", "87", "88")) + classification$Code[Q_code] = paste0("Q", classification$Code[Q_code]) + R_code = which(substr(classification$Code, 1, 2) %in% c("90", "91", "92", "93")) + classification$Code[R_code] = paste0("R", classification$Code[R_code]) + S_code = which(substr(classification$Code, 1, 2) %in% c("94", "95", "96")) + classification$Code[S_code] = paste0("S", classification$Code[S_code]) + T_code = which(substr(classification$Code, 1, 2) %in% c("97", "98")) + classification$Code[T_code] = paste0("T", classification$Code[T_code]) + U_code = which(substr(classification$Code, 1, 2) %in% c("99")) + classification$Code[U_code] = paste0("U", classification$Code[U_code]) + } +``` + + +**Remove .0 for 10, 11 and 12 division for ecoicop** + + +If the prefix is "ecoicop" and the code values in the classification$Code column are "10.0", "11.0", or "12.0", they are replaced with "10", "11", and "12", respectively. +```{r} + if (prefix %in% c("ecoicop")) { + level1_code = which(classification$Code %in% c("10.0", "11.0", "12.0")) + classification$Code[level1_code] = c("10", "11", "12") + } + +``` + +**remove weird code 00.99.t and 00.99.t for prodcom2019** + +Remove weird codes for prodcom2019: + +If the prefix is "prodcom2019" and the code values in the classification$Code column are "00.99.t" or "00.99.z", those rows are removed from the classification data frame. +```{r} + + if (prefix %in% c("prodcom2019")) { + level1_code = which(classification$Code %in% c("00.99.t", "00.99.z")) + classification = classification[-level1_code,] + } + +``` + +**remove section for CN** + +If the prefix is one of "cn2017", "cn2018", "cn2019", "cn2020", "cn2021", "cn2021", "cn2022", or "cn2023", sections are identified based on the presence of alphabetic characters in the classification Code column n. Rows containing sections are then removed from the classification data frame.s +```{r} + if (prefix %in% c("cn2017", "cn2018", "cn2019", "cn2020", "cn2021", "cn2021", "cn2022", "cn2023")) { + level1_code = which(gsub("[^a-zA-Z]", "", classification$Code)!= "") + if (length(level1_code)> 0){ + classification = classification[-level1_code,] + } + } +``` + +**remove "." in the end of the code for CBF** + +If the prefix is "cbf10", the last character (".") is removed from the code values in the classification Code column. +```{r} +if (prefix %in% c("cbf10")) { + classification[,1] = substr(classification[,1], 1, nchar(classification[,1])-1) + } +``` diff --git a/vignettes/VignetteCorrectionAndLenghtsFile.html b/vignettes/VignetteCorrectionAndLenghtsFile.html new file mode 100644 index 0000000..f06eca2 --- /dev/null +++ b/vignettes/VignetteCorrectionAndLenghtsFile.html @@ -0,0 +1,579 @@ + + + + + + + + + + + + + + +CorrectionClassification & LengthsFile + + + + + + + + + + + + + + + + + + + + + + + + + + +

    CorrectionClassification & +LengthsFile

    + + + +

    Introduction This vignette provides information about the functions +correctionClassification and lengthsFile included in the +correspondenceTables package. These functions are designed to assist in +retrieving classification tables from CELLAR and FAO repositories.

    +
    library(correspondenceTables)
    +

    CorrectionClassification Function

    +

    The correctionClassification function is used to correct the +classification codes based on specific rules for each classification. It +takes the following parameter:

    +

    Classification - Code name (e.g. nace2): the code of each object +Classification Label - corresponding name of each object

    +

    Application of function CorrectionClassification +

    +

    To following code is used to corrects the classification table by +adding necessary prefixes or removing unwanted characters.

    +
    prefix = "nace2"
    +conceptScheme = "nace2"
    +endpoint = "CELLAR"
    +classification = retrieveClassificationTable(prefix, endpoint, conceptScheme, level="ALL")$ClassificationTable
    +classification = classification[,c(1,2)]
    +colnames(classification)[1:2] = c("Code", "Label")
    +correct_classification = correctionClassification(classification)
    +View(correct_classification)
    +

    These different code show the different correction for each +classification.

    +

    Correction for (NACE - NACE 2.1 - CPA21 - and ISIC) add a +letter Letter addition for NACE, NACE 2.1, CPA21, and +ISIC:

    +

    For each classification (NACE, NACE 2.1, CPA21, and ISIC), specific +code ranges are identified using the substr function. Then, a letter is +added to the corresponding code values in the classification$Code +column. For example, codes starting with “01” or “02” or “03” are +assigned the letter “A”, codes starting with “05” or “06” or “07” or +“08” or “09” are assigned the letter “B” and for the other number we +input different letters from alphabet

    +
       if (prefix %in% c("nace2", "nace21", "cpa21", "ISICrev4")) {
    +        A_code = which(substr(classification$Code, 1, 2) %in% c("01", "02", "03"))
    +        classification$Code[A_code] = paste0("A", classification$Code[A_code])
    +        B_code = which(substr(classification$Code, 1, 2) %in% c("05", "06", "07", "08", "09"))
    +        classification$Code[B_code] = paste0("B", classification$Code[B_code])
    +        C_code = which(substr(classification$Code, 1, 2) %in% c("10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", 
    +                                                                "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33"))
    +        classification$Code[C_code] = paste0("C", classification$Code[C_code])
    +        D_code = which(substr(classification$Code, 1, 2) %in% c("35"))
    +        classification$Code[D_code] = paste0("D", classification$Code[D_code])
    +        E_code = which(substr(classification$Code, 1, 2) %in% c("36", "37", "38", "39"))
    +        classification$Code[E_code] = paste0("E", classification$Code[E_code])
    +        F_code = which(substr(classification$Code, 1, 2) %in% c("41", "42", "43"))
    +        classification$Code[F_code] = paste0("F", classification$Code[F_code])
    +        G_code = which(substr(classification$Code, 1, 2) %in% c("45", "46", "47"))
    +        classification$Code[G_code] = paste0("G", classification$Code[G_code])
    +        H_code = which(substr(classification$Code, 1, 2) %in% c("49", "50", "51", "52", "53"))
    +        classification$Code[H_code] = paste0("H", classification$Code[H_code])
    +        I_code = which(substr(classification$Code, 1, 2) %in% c("55", "56"))
    +        classification$Code[I_code] = paste0("I", classification$Code[I_code])
    +        J_code = which(substr(classification$Code, 1, 2) %in% c("58", "59", "60", "61", "62", "63"))
    +        classification$Code[J_code] = paste0("J", classification$Code[J_code])
    +        K_code = which(substr(classification$Code, 1, 2) %in% c("64", "65", "66"))
    +        classification$Code[K_code] = paste0("K", classification$Code[K_code])
    +        L_code = which(substr(classification$Code, 1, 2) %in% c("68"))
    +        classification$Code[L_code] = paste0("L", classification$Code[L_code])
    +        M_code = which(substr(classification$Code, 1, 2) %in% c("69", "70", "71", "72", "73", "74", "75"))
    +        classification$Code[M_code] = paste0("M", classification$Code[M_code])
    +        N_code = which(substr(classification$Code, 1, 2) %in% c("77", "78", "79", "80", "81", "82"))
    +        classification$Code[N_code] = paste0("N", classification$Code[N_code])
    +        O_code = which(substr(classification$Code, 1, 2) %in% c("84"))
    +        classification$Code[O_code] = paste0("O", classification$Code[O_code])
    +        P_code = which(substr(classification$Code, 1, 2) %in% c("85"))
    +        classification$Code[P_code] = paste0("P", classification$Code[P_code])
    +        Q_code = which(substr(classification$Code, 1, 2) %in% c("86", "87", "88"))
    +        classification$Code[Q_code] = paste0("Q", classification$Code[Q_code])
    +        R_code = which(substr(classification$Code, 1, 2) %in% c("90", "91", "92", "93"))
    +        classification$Code[R_code] = paste0("R", classification$Code[R_code])
    +        S_code = which(substr(classification$Code, 1, 2) %in% c("94", "95", "96"))
    +        classification$Code[S_code] = paste0("S", classification$Code[S_code])
    +        T_code = which(substr(classification$Code, 1, 2) %in% c("97", "98"))
    +        classification$Code[T_code] = paste0("T", classification$Code[T_code])
    +        U_code = which(substr(classification$Code, 1, 2) %in% c("99"))
    +        classification$Code[U_code] = paste0("U", classification$Code[U_code])
    +    }
    +

    Remove .0 for 10, 11 and 12 division for ecoicop

    +

    If the prefix is “ecoicop” and the code values in the +classification$Code column are “10.0”, “11.0”, or “12.0”, they are +replaced with “10”, “11”, and “12”, respectively.

    +
      if (prefix %in% c("ecoicop")) {
    +        level1_code = which(classification$Code %in% c("10.0", "11.0", "12.0"))
    +        classification$Code[level1_code] = c("10", "11", "12") 
    +    }
    +    
    +

    remove weird code 00.99.t and 00.99.t for +prodcom2019

    +

    Remove weird codes for prodcom2019:

    +

    If the prefix is “prodcom2019” and the code values in the +classification$Code column are “00.99.t” or “00.99.z”, those rows are +removed from the classification data frame.

    +
       
    +    if (prefix %in% c("prodcom2019")) {
    +        level1_code = which(classification$Code %in% c("00.99.t", "00.99.z"))
    +        classification = classification[-level1_code,]
    +    }
    +    
    +

    remove section for CN

    +

    If the prefix is one of “cn2017”, “cn2018”, “cn2019”, “cn2020”, +“cn2021”, “cn2021”, “cn2022”, or “cn2023”, sections are identified based +on the presence of alphabetic characters in the classification$Code +column using the gsub function. Rows containing sections are then +removed from the classification data frame.s

    +
      if (prefix %in% c("cn2017", "cn2018", "cn2019", "cn2020", "cn2021", "cn2021", "cn2022", "cn2023")) {
    +        level1_code = which(gsub("[^a-zA-Z]", "", classification$Code)!= "")
    +        if (length(level1_code)> 0){
    +          classification = classification[-level1_code,]
    +        }
    +    }
    +

    remove “.” in the end of the code for CBF

    +

    If the prefix is “cbf10”, the last character (“.”) is removed from +the code values in the classification$Code column.

    +
    if (prefix %in% c("cbf10")) {
    +        classification[,1] = substr(classification[,1], 1, nchar(classification[,1])-1)
    +    }
    +

    LengthsFile Function

    +

    The lengthsFile function retrieves the correspondence tables’ length +information for each level of hierarchy in a classification. It takes +the following parameters:

    +

    endpoint - SPARQL Endpoint: CELLAR or FAO. prefix:the - +SPARQL instruction for a declaration of a namespace prefixe. +conceptScheme - a unique identifier associated to specific +classification table. correction - A logical value indicating +whether to apply correction for hierarchy levels. By default, it is set +to TRUE.

    +

    The lengthsFile function returns a table containing the lengths for +each hierarchical level of the classification. The resulting table has +the following structure:

    +

    charb -Contains the length for each code for each hierarchical +level. chare - Contains the concatenated length of charb for each +code for each hierarchical level.

    +

    Application of function LenghtsFile()

    +

    To following code is used to retrieves the correspondence tables’ +length information for each level of hierarchy in a classification

    +
     endpoint = "CELLAR"
    + prefix = "nace2"
    +conceptScheme = "nace2"
    +correction = TRUE
    +lengthsTable = lengthsFile(endpoint, prefix, conceptScheme, correction = TRUE)
    + 
    + View(lengthsTable)
    +

    In the provided code , the following lines are responsible for +retrieving the classification table structure and the first level of the +classification table:

    +
     level_dt = dataStructure(prefix, conceptScheme, endpoint)
    + level = length = start_pos = end_pos = numeric(nrow(level_dt))
    + level = level_dt[,2]
    + dt = retrieveClassificationTable(prefix, endpoint, conceptScheme, level[1])$ClassificationTable
    +

    In this section of code, different corrections and modifications are +applied based on the specific classification being used. Here’s an +explanation of each part:

    +

    Order correction for prodcom:

    +

    If the prefix is one of “prodcom2019”, “prodcom2021”, or +“prodcom2022”, the order of levels in the level_dt data frame is +rearranged by selecting columns 2, 1, and 3 (level_dt[c(2,1,3),]). +Remove first level correction for CN:

    +

    If the prefix is one of “cn2017”, “cn2018”, “cn2019”, “cn2020”, +“cn2021”, “cn2021”, “cn2022”, or “cn2023”, the first level is removed +from the level_dt data frame (level_dt[-1,]). Order correction for +CPA:

    +

    If the prefix is “cpa21”, the order of levels in the level_dt data +frame is rearranged by selecting columns 1, 2, 3, 6, 4, and 5 +(level_dt[c(1,2,3,6,4,5),]).

    +
    
    +    if (isTRUE(correction)) {
    +        # order (for prodcom) 
    +        if (prefix %in% c("prodcom2019", "prodcom2021", "prodcom2022")) {
    +            level_dt = level_dt[c(2,1,3),]
    +        }
    +        # remove first level (for CN)  
    +        if (prefix %in% c("cn2017", "cn2018", "cn2019", "cn2020", "cn2021", "cn2021", "cn2022", "cn2023")) {
    +            level_dt = level_dt[-1,]
    +        }
    +        # order (for CPA)
    +        if (prefix %in% c("cpa21")) {
    +            level_dt = level_dt[c(1,2,3,6,4,5),]
    +        }
    +    }
    +

    Remove “.0” for ecoicop:

    +

    If the prefix is “ecoicop” and the code values in the dt data frame +are “10.0”, “11.0”, or “12.0”, they are replaced with “10”, “11”, and +“12”, respectively (dt[,1][which(dt[,1] %in% c(“10.0”, “11.0”, “12.0”))] += c(“10”, “11”, “12”)). Remove weird codes for prodcom:

    +

    If the prefix is one of “prodcom2019”, “prodcom2021”, or +“prodcom2022”, the rows in the dt data frame with codes “00.99.t” or +“00.99.z” are removed (dt = dt[-which(dt[,1] %in% c(“00.99.t”, +“00.99.z”)),]).

    +
        if (isTRUE(correction)) {
    +        ## remove .0 for 10, 11 and 12 division (ecoicop)
    +        if (prefix %in% c("ecoicop")) {
    +            dt[,1][which(dt[,1] %in% c("10.0", "11.0", "12.0"))] = c("10", "11", "12") 
    +        }
    +        ## remove weird code 00.99.t and 00.99.t (for prodcom2019)
    +        if (prefix %in% c("prodcom2019", "prodcom2021", "prodcom2022")) {
    +            dt = dt[-which(dt[,1] %in% c("00.99.t", "00.99.z")),]
    +        }
    +    }
    +

    Add letter to code for NACE, NACE 2.1, CPA, and ISIC:

    +

    If the prefix is one of “nace2”, “nace21”, “cpa21”, or “ISICrev4”, +the letter “A” is added to the code values in the dt data frame (dt[,1] += paste0(“A”, dt[,1])). Add leading zero for ICC_v11:

    +

    If the prefix is “ICC_v11” and the length of l is 2, the code values +in the dt data frame are formatted with a leading zero using sprintf +function (dt[,1] = sprintf(“%.2f”, dt[,1])).

    +
        if (isTRUE(correction)) {
    +            ## add letter to code (for NACE, NACE 2.1, CPA and ISIC)
    +            if (prefix %in% c("nace2", "nace21", "cpa21", "ISICrev4")) {
    +                dt[,1] = paste0("A", dt[,1])
    +            }
    +            ## add leading zero for ICC_v11
    +            if (prefix %in% c("ICC_v11")) {
    +                if (l == 2){  dt[,1] = sprintf("%.2f", dt[,1])    }
    +            }
    +        }
    + + + + + + + + + + + diff --git a/vignettes/Vignette_Aggregate_CorrespondenceTable.html b/vignettes/Vignette_Aggregate_CorrespondenceTable.html new file mode 100644 index 0000000..2788a3a --- /dev/null +++ b/vignettes/Vignette_Aggregate_CorrespondenceTable.html @@ -0,0 +1,536 @@ + + + + + + + + + + + +Vignette_Aggregate_CorrespondenceTable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + +

    This vignette provides information about the functions included in +the correspondenceTables package used to create an aggregation between +two classifications

    +

    Load the package correspondenceTables :

    +
    library(correspondenceTables)
    +

    The aggregateCorrespondenceTable function in R is +designed to aggregate correspondence tables between two hierarchical +classifications. It facilitates the process of expressing statistics +compiled at different levels in classification A to corresponding levels +in classification B. The function output is mechanically defined and +provides candidate aggregations for subsequent analysis by statistical +classification experts.

    +

    The function expects three mandatory CSV files (AB, A, and B) as +input. The structure of these files is crucial.

    +
      +
    • AB: Input correspondence table
    • +
    • A: Source classification table
    • +
    • B: Target classification table
    • +
    • CSVOUT Retrieve the result as a csv
    • +
    +

    Application of the +aggregateCorrespondenceTable()

    +
     AB <- (system.file("extdata", "ab_data.csv", package = "correspondenceTables"))
    + A <- (system.file("extdata", "a_data.csv", package = "correspondenceTables"))
    + B <- (system.file("extdata", "b_data.csv", package = "correspondenceTables"))
    +
    + 
    + result <- aggregateCorrespondenceTable(AB = AB, A = A, B = B, CSVout = FALSE)
    + 
    + print(result)
    +

    Other Example

    +
     AB <- (system.file("extdata", "ab_data.csv", package = "correspondenceTables"))
    + A <- (system.file("extdata", "a_data.csv", package = "correspondenceTables"))
    + B <- (system.file("extdata", "b_data.csv", package = "correspondenceTables"))
    +
    + 
    + result <- aggregateCorrespondenceTable(AB = AB, A = A, B = B, CSVout = TRUE)
    +
    ## The table was saved in C:/Users/clement.thomas/Desktop/Rproject/CorrespondanceTable/Task4/CorrespondenceTable/vignettesAgrgregateCorrespondeceTable_NACE.Rev..2.Code & NACE.Rev..2.1.Code.csv
    +
     print(result)
    + + + + +
    + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vignettes/Vignette_Classification Quality Control.html b/vignettes/Vignette_Classification Quality Control.html new file mode 100644 index 0000000..a31fb96 --- /dev/null +++ b/vignettes/Vignette_Classification Quality Control.html @@ -0,0 +1,595 @@ + + + + + + + + + + + + +Vignette_Classification Quality Control + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Vignette_Classification Quality +Control

    + + + +

    This vignette provides information about the functions included in +the correspondenceTables package used to create a quality control of the +classification

    +
    library(correspondenceTables)
    +

    The main function classificationQC() function is +designed for hierarchical classifications but is adaptable for flat +classifications. It does not process the specialized terminological +rules of certain categories, such as ‘other’ and ‘not elsewhere +classified,’ due to language-specific variations. However, it +facilitates the extraction of these categories for potential +post-processing by a classifications analyst. The function return a +dataframe for analysis.

    +

    This function has eight arguments : * classification - containing the +name of a CSV file of the classification provided by the user. * +lenghtsfile - The user provide a csv file the different level of +hierarchical classification.
    +* fullHierarchy - This rule outlines criteria for assessing the +completeness If fullHierarchy is FALSE, the rule applies to positions at +hierarchical levels greater than 1. If fullHierarchy is TRUE, a second +rule is tested. * labelUniqueness - This rule define is there is in our +classification any duplicates * labelHierarchy - This rule define a new +column depending on the children label in relation to the parents. * +singleChildCode - The user provide a csv file in order to create two new +columns singleCodeError multipleCodeError
    +* sequencing - The user provide a csv file in order to create a nerw +column Sequencing * CSVout - preferred choice of output

    +

    Requirement for the csv file for LenghtsFile, +singleChildCode, sequencing

    +

    LenghtsFile the user provide a csv file with these +headers charb chare if not return a warning message +that there is not these headears and will be corrected.

    +

    SingleChildCode the user provide a csv with these +headers level,singleCode,multipleCode If this is not +the case, then the function will return a warning saying that the +headers are wrong and will correct them to set the correct ones

    +

    Sequencing had the same logic like SingleChildCode +but his headers are different : level multipleCode

    +

    Here we load the different csv file in order to see the column for +the next example with error on the headers

    +
    lengthsFile <- read.csv( system.file("extdata", "lenghtsNaceNoColumn.csv", package = "correspondenceTables"))
    +## Here lenghtsFile has no column
    +colnames(lengthsFile)
    +singleChildCode <- read.csv(system.file("extdata","SingleChild.csv", package = "correspondenceTables"))
    +# SingleChildCode has the good column
    +colnames(singleChildCode)
    +sequencing <- read.csv(system.file("extdata","Sequencing.csv", package = "correspondenceTables"))
    +#Sequencing has string as a column it will be replaced see next chunk 
    +colnames(sequencing)
    +

    Application of the function classificationQC()

    +

    The following code is used to create the quality control of the NACE2 +classification from CELLAR: Here we used different parameters :

    +

    The user provide a csv file for Classification and lengthsFile.

    +
    output <- classificationQC(classification = system.file("extdata", "Nace2.csv", package ="correspondenceTables"),
    +                             lengthsFile = system.file("extdata", "lenghtsNace.csv", package = "correspondenceTables"),
    +                             fullHierarchy = TRUE,
    +                             labelUniqueness  = TRUE, labelHierarchy = TRUE,
    +                             singleChildCode = NULL, sequencing = NULL,
    +                             CSVout = NULL) 
    +
    +
    +output
    +

    Full hierarchy If fullHierarchy is FALSE, the rule +applies to positions at hierarchical levels greater than 1. A new field +in the QC output, named “orphan,” takes the value 1 for positions +lacking a parent at the immediately higher hierarchical level (j-1) +(otherwise 0). Positions Above Level k (j < k):

    +

    If fullHierarchy is TRUE, a second rule is tested. A new field in the +QC output, named “childless,” takes the value 1 for positions at +hierarchical level j lacking a child at the immediately lower +hierarchical level (j+1) (otherwise 0).

    +

    The labelUniqueness argument (default value: TRUE) +indicates whether compliance with this rule is to be tested. The test +outcome is reported in a new ‘QC output’ column (duplicateLabel), +assuming the value 1 for positions involved in duplicates and 0 +otherwise.

    +

    The labelHierarchy argument (default value: TRUE) is +used to indicate whether compliance with this rule is to be tested. The +test outcome is reported in a new ‘QC output’ column +(singleChildMismatch) for each hierarchical level j > 1 (with a blank +value for j = 1, i.e., at the highest hierarchical level). Value 1 is +assumed for single children having labels not matching that of their +parent. Value 9 is assumed for children having labels matching that of +their parent without being a single child. Otherwise, the value is +assumed to be 0.

    +

    Application of an another example of the function +classificationQC()

    +

    For this example the different CSV File have wrong headers in the +output we got warning messages.

    +

    The following code is used to create the quality control of the NACE2 +classification from CELLAR: Here we used different parameters and we had +SingleChildCode :

    +
    output2 <-  classificationQC(
    +            classification = system.file("extdata", "Nace2.csv", package ="correspondenceTables"),
    +            lengthsFile = system.file("extdata", "lenghtsNaceNoColumn.csv", package = "correspondenceTables"),
    +            fullHierarchy = TRUE,
    +            labelUniqueness  = TRUE,
    +            labelHierarchy = TRUE,
    +            singleChildCode = system.file("extdata","SingleChild.csv", package = "correspondenceTables"),            
    +            sequencing = NULL,
    +            CSVout = NULL)
    +#> Warning in doTryCatch(return(expr), name, parentenv, handler): Variable names
    +#> do not match the expected headers for the LengthsFile. Renaming and using the
    +#> first columns.
    +#> Warning in classificationQC(classification = system.file("extdata",
    +#> "Nace2.csv", : Single child code compliance cannot be checked at level 2 as
    +#> segments of code have more than one character.
    +#> Warning in classificationQC(classification = system.file("extdata",
    +#> "Nace2.csv", : Some multiple children been wrongly coded (see
    +#> 'QC_multipleCodeError'.
    +
    +View(output2$QC_multipleCodeError)
    +View(output2$QC_output)
    +

    Last application of an another example of the function +classificationQC()

    +

    We used here the parameter sequencing for our last +example sequencing will be used on the level 3 and 4 here.

    +
    output3 <-  classificationQC(
    +            classification = system.file("extdata", "Nace2.csv", package ="correspondenceTables"),
    +            lengthsFile = system.file("extdata", "lenghtsNaceNoColumn.csv", package = "correspondenceTables"),
    +            fullHierarchy = TRUE,
    +            labelUniqueness  = TRUE,
    +            labelHierarchy = TRUE,
    +            singleChildCode = system.file("extdata","SingleChild2.csv", package = "correspondenceTables"),
    +            sequencing = c(3,4),
    +            CSVout = NULL)
    +#> Warning in doTryCatch(return(expr), name, parentenv, handler): Variable names
    +#> do not match the expected headers for the LengthsFile. Renaming and using the
    +#> first columns.
    +#> Warning in classificationQC(classification = system.file("extdata",
    +#> "Nace2.csv", : Single child code compliance cannot be checked at level 2 as
    +#> segments of code have more than one character.
    +#> Warning in classificationQC(classification = system.file("extdata",
    +#> "Nace2.csv", : Some multiple children been wrongly coded (see
    +#> 'QC_multipleCodeError'.
    +#> Warning in classificationQC(classification = system.file("extdata",
    +#> "Nace2.csv", : Sequencing of codes cannot be checked at level 2 as segments of
    +#> code have more than one character.
    +
    +View(output3$QC_output)
    +View(output3$QC_lastSibling)
    + + + + + + + + + + + + \ No newline at end of file