From ef91e9e8388ef9e8331b7a8b25c9f6a2a4db9975 Mon Sep 17 00:00:00 2001 From: kylacochrane Date: Tue, 30 Jun 2026 14:06:34 -0400 Subject: [PATCH 01/14] Updated sequenceQC python script to accomodate Mikrokondo wgmlst_loci_count quality metric --- bin/parse_sequenceQC.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/bin/parse_sequenceQC.py b/bin/parse_sequenceQC.py index b98184c..0f6164c 100755 --- a/bin/parse_sequenceQC.py +++ b/bin/parse_sequenceQC.py @@ -48,9 +48,12 @@ def load_json(path): "n50_value", "nr_contigs", "length", + "wgmlst_loci_count", } -CHECKM_TEST = "checkm_contamination" +CHECKM_TEST = "checkm2_contamination" + +WGMLST_TEST = "wgmlst_loci_count" PNC_FAIL_MESSAGE = ( "[SEQ_FAIL] Resequencing is recommended. QUALITY_METRICS did not meet PNC requirements." @@ -96,6 +99,8 @@ def build_typingQC_message(sample_data, species, failed_tests): base_message = CHECKM_FAIL_MESSAGE elif failed_tests.intersection(ABSOLUTE_FAIL_TESTS): base_message = PNC_FAIL_MESSAGE + elif WGMLST_TEST in failed_tests: + base_message = PNC_FAIL_MESSAGE elif failed_tests.intersection(WARNING_TESTS): base_message = WARNING_MESSAGE else: From 7d7f8c56e07641a13291d463f49f01be62d52ce7 Mon Sep 17 00:00:00 2001 From: kylacochrane Date: Tue, 30 Jun 2026 14:07:42 -0400 Subject: [PATCH 02/14] Update sistrQC to remove auto generate INFO message from typingQC outputs for formatting improvement --- bin/parse_sistrQC.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bin/parse_sistrQC.py b/bin/parse_sistrQC.py index e216ddb..8a9cd48 100755 --- a/bin/parse_sistrQC.py +++ b/bin/parse_sistrQC.py @@ -56,6 +56,18 @@ def load_reportable_serovars(reportable_file): SEROVAR_KEY = f"{SISTR_PREFIX}serovar" SEROVAR_CGMLST = f"{SISTR_PREFIX}serovar_cgmlst" +#Matches the non-actionable cgMLST loci found INFO message and strips it from qc_messages +CGMLST_LOCI_INFO_PATTERN = re.complile(r"INFO: Number of cgMLST\d+ loci found \(n=\d+\)") +def filter_qc_message(qc_messages): + if not qc_messages: + return qc_messages + cleaned = CGMLST_LOCI_INFO_PATTERN.sub("", qc_messages) + # Collapse leftover separators/whitespace left behind by the removal + cleaned = re.sub(r"\s*\|\s*", " | ", cleaned) + cleaned = re.sub(r"^\s*\|\s*|\s*\|\s*$", "", cleaned) + cleaned = re.sub(r"\n\s*\n", "\n", cleaned) + return cleaned.strip() + def H1_warning(qc_messages): # Check if SISTR WARNING contains identification of the inability to identify H1 antigens, and therefore, unable to predict serovar repliably if not qc_messages: From 360f7ba754b0290cc996c9bfd13650827a686570 Mon Sep 17 00:00:00 2001 From: kylacochrane Date: Fri, 3 Jul 2026 11:04:38 -0400 Subject: [PATCH 03/14] Update serovar nomenclature to align with CDC changes --- bin/validate_serotypes.py | 95 ++++++++++++++++++++++++++++----------- 1 file changed, 68 insertions(+), 27 deletions(-) diff --git a/bin/validate_serotypes.py b/bin/validate_serotypes.py index 9880265..0ae265f 100755 --- a/bin/validate_serotypes.py +++ b/bin/validate_serotypes.py @@ -39,28 +39,58 @@ def create_serotype_lookup(sample_data_list): return serotype_lookup -def determine_validated_serotype(typingqc_message, sample_serotype, approve_verification=False): -# Determine the validated serotype based on typingQC message and sample serotype. +# Serovar rename mappings: predicted serovar -> validated reportable name (CDC) +# Add new entried here as nomenclature changes are required +SEROVAR_RENAME_MAP = { + "Panama": "Panama/Houston", + "Sendai": "Miami" +} + +# Quality metrics warnings to append when a rename is applied +SEROVAR_RENAME_WARNINGS = { + "Sendai": "WARNING: Predicted serovar Sendai has been reported as Miami to conform with current CDC serovar nomenclature." +} + +def apply_serovar_rename(serotype, quality_metrics): +# If serotype matched a knoen rename mappung, return the renamed validated serotype and updated quality_metrics string. Otherwsie return the inputs unchanged. + if serotype not in SEROVAR_RENAME_MAP: + return serotype, quality_metrics + + renamed = SEROVAR_RENAME_MAP[serotype] + warning = SEROVAR_RENAME_WARNINGS.get(serotype) + + if warning: + #Append warning to existing quality_metics content if present + updated_metrics = f"{quality_metrics}; {warning}" if quality_metrics.strip() else warning + else: + updated_metrics = quality_metrics + + return renamed, updated_metrics + +def determine_validated_serotype(typingqc_message, sample_serotype, quality_metrics, approve_verification=False): +# Determine the validated serotype based on typingQC message and sample serotype. Returns validated_serotype, updated_quality_metrics typingqc_upper = str(typingqc_message).upper() if 'FAIL' in typingqc_upper: - return 'pending' + return 'pending', quality_metrics + elif 'WARNING' in typingqc_upper: if approve_verification: # If approving verification, treat like PASS if not sample_serotype or sample_serotype.strip() == '': - return '' - return sample_serotype + return '', quality_metrics + return apply_serovar_rename(sample_serotype, quality_metrics) else: # Default behavior for warnings - return 'verification needed' + return 'verification needed', quality_metrics + elif 'PASS' in typingqc_upper: # If no serotype provided, leave blank if not sample_serotype or sample_serotype.strip() == '': - return '' - return sample_serotype + return '', quality_metrics + return apply_serovar_rename(sample_serotype, quality_metrics) else: - return 'unknown' + return 'unknown', quality_metrics def find_column_indices(header): # Find the indices of important columns in the CSV header. @@ -68,6 +98,7 @@ def find_column_indices(header): 'sample': None, 'sample_name': None, 'typingqc_message': None, + 'quality_metrics': None, 'validated_serotype': None } @@ -78,65 +109,75 @@ def find_column_indices(header): elif col_lower == 'sample_name': indices['sample_name'] = i elif col_lower == 'typingqc_message': - indices['typingqc_message'] = i + indices['typingqc_message'] = i + elif col_lower == 'quality_metrics': + indices['quality_metrics'] = i elif col_lower == 'validated_serotype': indices['validated_serotype'] = i return indices def process_csv_file(input_path, serotype_lookup, output_path, approve_verification=False): -# Process the CSV file and add validated serotype column. + # Process the CSV file and add validated serotype column. rows = [] - + with input_path.open('r', newline='', encoding='utf-8') as csvfile: reader = csv.reader(csvfile) - + # Read header header = next(reader, None) if header is None: print(f"Error: Input file '{input_path}' is empty", file=sys.stderr) sys.exit(1) - + # Add the new column to header if it doesn't exist if 'Validated_Serotype' not in header: header.append('Validated_Serotype') - + # Find column indices col_indices = find_column_indices(header) - + # Process each row for row in reader: if len(row) == 0: # Skip empty rows continue - + # Ensure row has enough columns while len(row) < len(header): row.append('') - + # Get sample identifier - use 'sample' column (matches meta.irida_id) sample_id = '' if col_indices['sample'] is not None and len(row) > col_indices['sample']: sample_id = row[col_indices['sample']] - + # Get typingQC message typingqc_message = '' if col_indices['typingqc_message'] is not None and len(row) > col_indices['typingqc_message']: typingqc_message = row[col_indices['typingqc_message']] - + + # Get existing quality_metrics value + quality_metrics = '' + if col_indices['quality_metrics'] is not None and len(row) > col_indices['quality_metrics']: + quality_metrics = row[col_indices['quality_metrics']] + # Get the serotype for this sample sample_serotype = serotype_lookup.get(sample_id, '') - - # Determine validated serotype - validated_serotype = determine_validated_serotype( + + # Determine validated serotype and updated quality_metrics + validated_serotype, updated_quality_metrics = determine_validated_serotype( typingqc_message, sample_serotype, - approve_verification + quality_metrics, + approve_verification, ) - - # Set the validated serotype in the appropriate column + + # Write validated serotype and (possibly updated) quality_metrics back to row if col_indices['validated_serotype'] is not None: row[col_indices['validated_serotype']] = validated_serotype - + if col_indices['quality_metrics'] is not None: + row[col_indices['quality_metrics']] = updated_quality_metrics + rows.append(row) # Write the output CSV file From f6bc13faea425004024a13e2ee9f9266696e6841 Mon Sep 17 00:00:00 2001 From: kylacochrane Date: Fri, 3 Jul 2026 16:01:03 -0400 Subject: [PATCH 04/14] Update python ec errors --- bin/parse_sistrQC.py | 29 ++++++++++++++++++++++++----- bin/validate_serotypes.py | 32 ++++++++++++++++---------------- 2 files changed, 40 insertions(+), 21 deletions(-) diff --git a/bin/parse_sistrQC.py b/bin/parse_sistrQC.py index 8a9cd48..f5bd108 100755 --- a/bin/parse_sistrQC.py +++ b/bin/parse_sistrQC.py @@ -3,6 +3,7 @@ import json import csv import argparse +import re from pathlib import Path import gzip @@ -56,9 +57,11 @@ def load_reportable_serovars(reportable_file): SEROVAR_KEY = f"{SISTR_PREFIX}serovar" SEROVAR_CGMLST = f"{SISTR_PREFIX}serovar_cgmlst" + +#QC_MESSAGES Updates #Matches the non-actionable cgMLST loci found INFO message and strips it from qc_messages -CGMLST_LOCI_INFO_PATTERN = re.complile(r"INFO: Number of cgMLST\d+ loci found \(n=\d+\)") -def filter_qc_message(qc_messages): +CGMLST_LOCI_INFO_PATTERN = re.compile(r"INFO: Number of cgMLST\d+ loci found \(n=\d+\)") +def filter_qc_messages(qc_messages): if not qc_messages: return qc_messages cleaned = CGMLST_LOCI_INFO_PATTERN.sub("", qc_messages) @@ -68,6 +71,15 @@ def filter_qc_message(qc_messages): cleaned = re.sub(r"\n\s*\n", "\n", cleaned) return cleaned.strip() +WZX_WZY_PATTERN = "Wzx/Wzy genes missing" +WZX_WZY_WARNING_MESSAGE = "WARNING: Wzx/Wzy genes missing. Cannot determine O-antigen serogroup." + +def wzx_wzy_only_failure(qc_messages): + #Checks if a SISTR FAIL is solely due to missing Wzx/Wzy genes: does not affect serovar prediction and should not result in FAIL for typingQC + if not qc_messages: + return False + return WZX_WZY_PATTERN in qc_messages + def H1_warning(qc_messages): # Check if SISTR WARNING contains identification of the inability to identify H1 antigens, and therefore, unable to predict serovar repliably if not qc_messages: @@ -82,12 +94,16 @@ def H1_warning(qc_messages): def extract_sistr_qc(sample_data): qc_status = sample_data.get(QC_STATUS_KEY, "Unknown") - qc_messages = sample_data.get(QC_MESSAGES_KEY, "") + qc_messages = filter_qc_messages(sample_data.get(QC_MESSAGES_KEY, "")) if qc_status.upper() == "PASS": # For PASS samples, leave QUALITY_ANALYSIS column blank return "" + if qc_status.upper() == "FAIL" and wzx_wzy_only_failure(qc_messages): + # O-antigen serogroup couldn't be determined, but this doesn't block typingQC and reports it as a warning rather than the raw FAIL message. + return WZX_WZY_WARNING_MESSAGE + elif qc_status.upper() == "WARNING": # If sample raises a WARNING in qc_status record the QC_message return qc_messages if qc_messages else "SISTR analysis completed with warnings. Please review results manually." @@ -98,13 +114,16 @@ def extract_sistr_qc(sample_data): def build_typingQC_message(sample_data, reportable_serovars): qc_status = sample_data.get(QC_STATUS_KEY, "Unknown") - qc_messages = sample_data.get(QC_MESSAGES_KEY, "") + qc_messages = filter_qc_messages(sample_data.get(QC_MESSAGES_KEY, "")) # Check for H1 antigen warning from SISTR and treat it as an RDS [FAIL] if qc_status.upper() == "WARNING" and H1_warning(qc_messages): return "[SISTR_FAIL] Serotyping unsuccessful. RESEQUENCING or TRADITIONAL SEROTYPING is advised." - if qc_status.upper() in ["PASS", "WARNING"]: + # A FAIL solely due to missing Wzx/Wzy genes: fall through to the serovar reportability check below and prepend a warning instead of SISTR_FAIL + is_wzx_wzy_fail = qc_status.upper() == "FAIL" and wzx_wzy_only_failure(qc_messages) + + if qc_status.upper() in ["PASS", "WARNING"] or is_wzx_wzy_fail: # Extract serovar predictions serovar = sample_data.get(SEROVAR_KEY, "") serovar_cgmlst = sample_data.get(SEROVAR_CGMLST, "") diff --git a/bin/validate_serotypes.py b/bin/validate_serotypes.py index 0ae265f..6200c50 100755 --- a/bin/validate_serotypes.py +++ b/bin/validate_serotypes.py @@ -73,7 +73,7 @@ def determine_validated_serotype(typingqc_message, sample_serotype, quality_metr if 'FAIL' in typingqc_upper: return 'pending', quality_metrics - + elif 'WARNING' in typingqc_upper: if approve_verification: # If approving verification, treat like PASS @@ -83,7 +83,7 @@ def determine_validated_serotype(typingqc_message, sample_serotype, quality_metr else: # Default behavior for warnings return 'verification needed', quality_metrics - + elif 'PASS' in typingqc_upper: # If no serotype provided, leave blank if not sample_serotype or sample_serotype.strip() == '': @@ -109,7 +109,7 @@ def find_column_indices(header): elif col_lower == 'sample_name': indices['sample_name'] = i elif col_lower == 'typingqc_message': - indices['typingqc_message'] = i + indices['typingqc_message'] = i elif col_lower == 'quality_metrics': indices['quality_metrics'] = i elif col_lower == 'validated_serotype': @@ -120,50 +120,50 @@ def find_column_indices(header): def process_csv_file(input_path, serotype_lookup, output_path, approve_verification=False): # Process the CSV file and add validated serotype column. rows = [] - + with input_path.open('r', newline='', encoding='utf-8') as csvfile: reader = csv.reader(csvfile) - + # Read header header = next(reader, None) if header is None: print(f"Error: Input file '{input_path}' is empty", file=sys.stderr) sys.exit(1) - + # Add the new column to header if it doesn't exist if 'Validated_Serotype' not in header: header.append('Validated_Serotype') - + # Find column indices col_indices = find_column_indices(header) - + # Process each row for row in reader: if len(row) == 0: # Skip empty rows continue - + # Ensure row has enough columns while len(row) < len(header): row.append('') - + # Get sample identifier - use 'sample' column (matches meta.irida_id) sample_id = '' if col_indices['sample'] is not None and len(row) > col_indices['sample']: sample_id = row[col_indices['sample']] - + # Get typingQC message typingqc_message = '' if col_indices['typingqc_message'] is not None and len(row) > col_indices['typingqc_message']: typingqc_message = row[col_indices['typingqc_message']] - + # Get existing quality_metrics value quality_metrics = '' if col_indices['quality_metrics'] is not None and len(row) > col_indices['quality_metrics']: quality_metrics = row[col_indices['quality_metrics']] - + # Get the serotype for this sample sample_serotype = serotype_lookup.get(sample_id, '') - + # Determine validated serotype and updated quality_metrics validated_serotype, updated_quality_metrics = determine_validated_serotype( typingqc_message, @@ -171,13 +171,13 @@ def process_csv_file(input_path, serotype_lookup, output_path, approve_verificat quality_metrics, approve_verification, ) - + # Write validated serotype and (possibly updated) quality_metrics back to row if col_indices['validated_serotype'] is not None: row[col_indices['validated_serotype']] = validated_serotype if col_indices['quality_metrics'] is not None: row[col_indices['quality_metrics']] = updated_quality_metrics - + rows.append(row) # Write the output CSV file From a41733d58a95c8c4e9d443d7a1d16910d16eb816 Mon Sep 17 00:00:00 2001 From: kylacochrane Date: Fri, 3 Jul 2026 16:01:38 -0400 Subject: [PATCH 05/14] Updated JSON files from updated mikrokondo --- tests/data/CAMP001.flat_sample.json.gz | Bin 4530 -> 4689 bytes tests/data/EA001.flat_sample.json.gz | Bin 5824 -> 6053 bytes tests/data/EC001.flat_sample.json.gz | Bin 5094 -> 5296 bytes tests/data/EC002.flat_sample.json.gz | Bin 4891 -> 5084 bytes tests/data/EC004.flat_sample.json.gz | Bin 4967 -> 5177 bytes tests/data/EC005.flat_sample.json.gz | Bin 5317 -> 5523 bytes tests/data/EC006.flat_sample.json.gz | Bin 5638 -> 5862 bytes tests/data/EC007.flat_sample.json.gz | Bin 6262 -> 6562 bytes tests/data/LIST001.flat_sample.json.gz | Bin 4228 -> 4449 bytes tests/data/SALM001.flat_sample.json.gz | Bin 4327 -> 4686 bytes tests/data/SALM002.flat_sample.json.gz | Bin 5357 -> 5672 bytes tests/data/SALM003.flat_sample.json.gz | Bin 6919 -> 7249 bytes tests/data/SALM004.flat_sample.json.gz | Bin 4646 -> 5068 bytes tests/data/SALM005.flat_sample.json.gz | Bin 4511 -> 4923 bytes tests/data/SALM007.flat_sample.json.gz | Bin 3689 -> 3823 bytes tests/data/SALM008.flat_sample.json.gz | Bin 4330 -> 4666 bytes tests/data/SALM009.flat_sample.json.gz | Bin 4286 -> 4614 bytes tests/data/SALM010.flat_sample.json.gz | Bin 4172 -> 4586 bytes tests/data/SALM011.flat_sample.json.gz | Bin 4000 -> 4422 bytes tests/data/SALM012.flat_sample.json.gz | Bin 4846 -> 5257 bytes 20 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/data/CAMP001.flat_sample.json.gz b/tests/data/CAMP001.flat_sample.json.gz index d67273379d3d0c48aff49f9111203b60e5670a75..5c83cf0103b66d2d770551e502687dca373ca135 100644 GIT binary patch delta 4652 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 K@*Gg=X8-_BBt)bD diff --git a/tests/data/EC001.flat_sample.json.gz b/tests/data/EC001.flat_sample.json.gz index 7e1667419c36d1e9f566d0bd29959b0fbe968cde..c632695f7ae321b41db6c9a9c2151e8da9d0a539 100644 GIT binary patch literal 5296 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 Cyh|tm literal 5094 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 Iz_V2V0J1~=WdHyG diff --git a/tests/data/EC002.flat_sample.json.gz b/tests/data/EC002.flat_sample.json.gz index 1a0d5ceb55803401af458fb2be26cd5ad92597b1..b0dc1c741401eb71f404f52d83b937903bd01aed 100644 GIT binary patch literal 5084 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 literal 4891 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 N{vV5EUGLRX001YClFI-9 diff --git a/tests/data/EC004.flat_sample.json.gz b/tests/data/EC004.flat_sample.json.gz index efbd668b779bf67db8b0653e1b512b172123f7fd..da1d4c94da0d3752825ddf78b5a78e32ea075d7c 100644 GIT binary patch literal 5177 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 literal 4967 zcmV-t6PWBDiwFo3Fpg;e14TnHFf=Y^Y+-a?b75_8Y-KKLb8l_{wOspi+c=W`eg6uS zr>-uki5L=mTQ^%J%ZlTPUt@V@r}j3*qA5t?nj#gFa_nsF|9;)zQzH0~w{E6li^TUe zfbIs+4M6_aUkEvwO=Vd-IVJys2YB4D)RpkZiiOd}_n>6y1_}F6EA|)gHYe8KC+=n& zFmV}sNm(4afs>IhZ~lC6=96n@LZ?^i#myg=^F6qmBy95-yo#z{zdpuXN~0w4!&Sf> z779x@EM75D!6Nz|W^F&@-MioKnY)win@UEzY?SCE?Awlo9&-W~uF^Gd6xEb0rJd!ANUGjWa9>2V=&*lV{gSM00qIESog$GK(6 z>vzs;|0#~1qHq!Y!Q#Y^P;V!)WJ_kT$bWK^^iE20(Mx#RI?r`1RV6A0=T*Z}kI1d- z$814h$tUli>BM{W0+x`UN%invEa#CeqnJ5MKY+*tq&3HZs+0@SAnK!=up}FJif$YB zK=L;#S5#fKRJEF6`>1M-swuiI8?rLI*4RxkAOg!!nOeiEEP0k@n6^EPh>BJCDB5%H z;bi(&^2&3(C`?(H@MnuO?h=YAo0eElVrJzLilP|0B5v>@ci$moXs%jL z$UV%uKd6=t?nLR}IxBZj6|KbuMKxCLpxY)D``;n&7;g}9hdRR{x9JNe-S>qO3wBR- zK`L!A8Cm2qI-Q|G4WjRS9q`lFlBn9cC3n-(D1sF;e06TB>P(}*Dwv`niFv8lHlU_t z9mQ!$pavbl2_pV1s$;R+2EON}FqKQCXUMW)nwGt9BR@=i-(a}iZ5yl5Aui8MjO(&KqkBr4V$hz}3kY2U)Uc)(iKH*znqUiod@ zth;Z~6OwteHT`&Yl&&H4LGLvC*;Hg(h1$mxd2h|`;UFe*k7HNzxtc{TUb}ox~Cl>y)-XX%zd40qu})=n`)|rYUQ(elR-Pc(owa#3bu58t-grmecJesuhdA zQ7^5$nqCaUHk*18F!%HV`H?EJpomx3i%eBblbiZ%ZE2@oV9DvsY;;Rk57N~xTB#LT zw^Ylv1`zj@f@4TkMMm#RXbcchOGtC>Bn@+OtE(P}DDsc|r$iHQd)Q8Za@szgAm ztHiQ2)iOnHa->Qib%2b6pUv>y7&00~&n%AF7NUO0mUukxxS<=oCVm2?I8*UC*;&C; z_5pVUF(re^ZV&NNAYS$nuxvW1>j$-u&UZgtKq`X~Khf$1Jm1TcDQG?v9i%*2Uy)M1 zOV`l+brdWJ#R^^MlDlGD452843&g0p%+t1O+)&~b?82&e%VH1o-~|50Pay`u`g!tM zzNx*6A#&&YQYwmBu#|ae85Y3s1!-jD6MjsFhX)G=Nh$8Fq3*v)s~==^S(H*yX;g9Z zC8Jh&TTz>Zqkkq*m;?C7(P*7+g8U8tSR@$NjHL-~0X`I31oueeU2!^g?I!DMmb#hK z1PLpMbM`HLIs+e_Vgw}E|Cr>*dsA+ylpP2L{*w<`A9!6N$(Vswr;6xNezMN{yXy5+LZZ`u&yZiAT^4w@6&(pyjopuqSD(lr%UL$w8%4*&$3 zRtv^`UX{Xh#g^J|xPzPHDBmtGE$6;WqcHVX578X6`;+}+%{hB!;ROrX_0|00o^1hv zUGUay!<7O47Wj_qfj7XI(@r{RXr0jAR2Is241^XE2@o77w=}TWbS{jhnB4?72pCLv z(q^&d`W}Yf?&8T2@R)fVZVZDjcN+``PkQ=Vz*n#F8N$_JaNk=TqZoJbwAb|Ceutp~ z<&*08{b1A`B7Y(tceI4O`|B@6CXd_q2LnZngqWxVQ(5i?>ou@#_X{q;7VQSpx@1G` zZ$$}Kl|%3YF0dq90QQw}Fd?)O>N?RO{-ahur``dGA!MrbH*8Nunq|Y}+|W~lw5KXf zw=Gp`xQ(!NmC7_#g{-Sp$t|vM<;E+Pq&ccN*NH0c(BM5=!rTP2NDVqV1kIAvhs6UH z@OTLPVoKiqS8f8Ssg|nB3fPcwqsx5KF%-R_f}4x1ut~DzY`8;Dnkh!R zyWN6yb7R<+WHum`)i!(JMx*cI2!g}lmE>oUg-}ycJG^fzW;LWwo>vn1eipcr1>0sm zs5YFW677m94bjsAf^))4(E^wqqz>VpkR-5Vfa8`t29fuakd2?@SGs(jeuxOiVL)ZI zd7}Zn767}3Ftj)F!1IPQBJtei5_5``yCv);m5?P30Ye?#Uvy1QHS_W-{&c54)KE%<3;q^#nAYPS^ zW#BRQ@s$jt#P>Ioj3-{D^7w-L^(H$QZlbd2Vu0`8Oxo7!i`J4!%W?>m_BDLcR&XIM zxoWHas^U3O(rR#_%TDS#LVD3PCy2P0xKIb_b ztAsgqVONpoFWAeuo4VMx%P`xjzytHeqf_M4-&dHjky?wK`PyHxAaI8Xs@B@K8XxT}93l6`+74OcN6bEl(a!xOb@TfVxQ5G` zY}+;+Mustcd5+AB=_f~)bv&QabxG-9-;RonrCUW-JAj`{;OEZPz#3ndc-o2njc*Ix zP3Cj*?tXT6d;c&wyPCc4V9cJuFLM2y@ktKiC^a80?~*Pm?g-6c(#@>;{m09xEP-yv z-+#QqC(|A;1Als|j5|b3cr{Q>r$J1NGjW9QUftZD&m2q1ubDZDqUkbB<AGs^hO_m9D6Ib+a}Jf|k|fIt=ctmbX{t%vI7&s)WK-5S$(9UDh5rPkp03=x;VSEe zN$rth+Zrlhgv}Y-rl#2=+p;yJP>jgl9#P$vZ_E zfkVKuB6m6F-`qHaPy5TX0C(rYa#IYh+2`4GG=G>)hY)>_vAxU2b(@S>(5vPz!q&}={T-GT8KZjXj%{CDptc4^Ke@d!1Gvck|XcHw7tcASZ zQ-VvMOVa2C$`we6uwuyjvxo~*hhnRoyn{jr_|t?;h#M}*S(oz5R!=;SB}tKdPJUHo zRne63=W9i^6kC&&@#K#`|CISgq9WttC(Te4!x|)`Vsz(6-v#I z_+yCh`(3FgMLtC@KSlfh41P4G#wmLI=`oI2xjvUg$vbpvl<o0|)H)F67kxs@t7PbU8HtpGFi^B=*>Dj=(Xy34612 zr*m=X%|*_z%f$ybllj`CP)Rp5#nhXNPhSO5yzoQFB(fISmN`PQ z1pp&is3wj`EA(&q>Hl@K*kwn;cl>U46Nx)e#p-Yqg{+CVEB6QP)-~{amw0TO;>KE& zGrgFR7T!ouL*OQx{OhivclPo2r}Bs)om6!VwbX~dJEI?l;uJLq10T;uDqnWDO=W~VhNZr+wuc!4A3*z z_;h*p0e)SMR_^bMtp+dM7IyHB|>+X&=7)s#%($iaHvz zzA~j+YLFU6EYW4s1$zttMy~H{Q>o;;0S6vC&N06gY=e~ zwq=PtW}oKoZAFQaa&im7!DmI}M%&oOuf;fCuuJeRQZ};M##Dm87XthxwM7lB^tg^d zD=}su4qwWG0H63^hou2xha<`51rr`F!@QB=dstos#(zv${JbwF^d9}*2DB27s66I3 zEcRu9KlRq##yg^FSP3J~$3tsp3(HRK^%Rpwsu*LUC{))Bil21Tf)q|4!;}rvK1RC) zqI!$kSW0zRt_{_MPl^UG>d>7}1f*UWpmhK8I$2z6P_ z*p2nP1YW!G6D%Zw55tK6WrmZbpPz9At$Z^^=pYV6d?H@uEK zFp|wy1nw?o2?=eA;alCb@mk5H%8e4r*WJczl@ImCYfb!G|5^OLI3I$%G%5B*npVK& z+TCCfR(+?o*|T{XyI`(0L#5*xNj~@0kIeG@$Krdy{3Hb5U4~`oqL|b$#BhAP%kGfk z)+_j<7)s~xb>lP|V`df4p-DR7#1stNZ;->gHzcb1fSu{6?z~wwY$5)l= zk7<1JUxW}<(hA7Dn8W$rXzQAB(hjdqJMw71Jn+aC6MUD&?+2Tld*ziB=od;MRI24c zWxbWO`X#o#!b;R8NK%kP)!L1PEX{qEGS{X&_9_a}GB{zm-}9!xYzK2!ZK zZq&}si2(LB`!fV&gV$%tZ&R{$W0=O%ER6o;uQ2P9Wfa%XGLC8d(r5f4?unrA7&$@o z{bc`I=nz(sFVz3i!Vum!&ndNjlIgCku?4lbX;PW1tFaAM-B_O{msen{L(JD~q!1sk zh9n6|F{L>)m^Rp2jV6?)IxHD1Av02kn>HAwfogL=FKN#@nX=lN80xaa>lieODzsqi zl!adj&py!(-(lK?1qp-qZHl2c+JnbKhgKl(@G3RPIL)sajtJg|h8M(;`G4>G`%qe_ zeAUnCA2=1Zumy9N-&^qS>*rc7otmp*9~Da zN*jnukCN1HA0e%<7IyO(UYFsfcZHVb5aoM*Z^ApIkxvbXWd4gF+;_L;^$&nQoY7Maf5mcQwBBaZk=?q~DaZ@RDsiwFpmSukn<14TnHFf}e_Y+-a?b75_8Y-KKLb8l_{yP zHsta${*v(|@+mW$nH<0Y@kJyo(egHAkd0mzs`RZ2By0Gz~2;dBWXrA!F!R_V$eo2aF+A@DeFVq?6Cjq)b8=S`YwY1FojA(@5QsbY5x57zW1L+SKSCh;b!IAh?Y zH(6bN!Fs)^yX8lE6Fb_QShqK+9i8#x&0`SpWz(s2!)Dah%?>v?pp>qqQD&<85NFuI z4xqhmwvWx7jp~+d+m@k@Bh{gXbws9vN(#?o9d@qJvS@Y$sq{iq8=!ncWUIMHd1OsH z&Mzxow|AC$nFr5F{2WKi_-CG^L5zAkQ5C8xteolJd1-d1q=oD!__lRFH^EHn0vC0| ze2>Vj7bJX1VBRNhpzXwe^+TSLKa={)cXBz8{3%Yj`xJzbo`AIWNT96J{V3|Am-18$ zJ#bt@*XTI%C#Kd^jj4`KtNC?^sx_#pW}3EPA5m-KWtbJIilgh$=<#({MB8Q>GsY27 zvs8?uJqI68X5UI)`K}*F8ILm2XhXGZRg+S^C!lougz9L}-y@i{OK6%-9X5`;=Ml_d zI-{1nt1af9Lr~2!P16}&XTu*%TOVCv!y63E8mHJ}oI%DN>kEfmi7V_kxPpS!(_NS; zTU?MV3lY7p(4vO%7cmb6*=t2)rhX7rTC^;VVakkN-P?+#4p#&L8kR9H&AJ9ySWmi+ zldPFpj%ZsLi|?{Jmb+~j_+AEaT&dhb)eMWVeZfJLa;P{BzH(*Dy=RdIo1Ktd^c=xb z4N;b*I{QFx>21+A{w~YV#^v`c2{s!rUD;GnynPh097&WKj-mBZbAK+Mmh&UdP`fDI zazA(qV2L>>g8kQ?yiF3M6R&ekxqVg}EgBN|Y!XQ;Su;9VilI-Ym_fJXk7hCW<9 zhy?8$>YU}&VG~Q5dxaXZjc?FU-eA`6%w4rU%tRFW7B2n|EAAf*ofV&pn!lmdl_OHy z**EYu4qspLVOP(cjfagvtm%f@$Ca>z4^vA$n)i^0#G`rV?J+ZgbtR@TdaPoq>7J@g zA77`S3C%FwU`KQ@CqCqhG{ZcWD0E{V-B6(%m^=4)dAJ)$HNLU=5@&DWRZX&})Q#aB4#f`YzHWeN z+2*LmHg!WC6P8tAk@1b~)eTIOy}3R$bkn3V6ZU8Nkj20%OlMNUR|n7iSk@ zqk>E(@n@bSd>w1wFzNSG6r5L$Hkakz_E&qVqWw=@)RNX_ol!%vo1WcrE z<^^Hnqx&U@mXPRULQM2#fmjL^3k_&K6df!G^1dRaewMAF`Rh1bf(t>32VL@3T!NQY&4X!<}rE$$I=8#6=`y{JyYl#G?xpKF&%E4g!jzZ91^<*izXdNn$D~NI zH83mAzs`lJGJYT!_|E~XiooqsMa2bLee8xV6{PE;PagE?q=OYF8xJc#c{f`?CMic{ zuUjGe;y>m?e0BbASL-YKhVX#-8%_QmFTvq zt4^!=EzX{5Y+W_fmVTu5)FjKs{n|ki+cyFvByCGbTUV2G8#0)d8Y(5rJ>kYnRy@rL zP}`wpb@wRnooD!5T=tc@T+t3=1;jJtBTd~qPof&*phK;sA5z* zm?^XhukzA1%Ms5lQ*|UHM^5r~x59%p&CwjC)m$jPlJaiyMzmCV)7840yaBA$w41J` z{gH@tgp>)_NwL$|#)bSzgzzFIYXg#CweCaAz3mnZT-d{L6w~fD+-48lYW7_cLmCji zlHx$76lyCyGPiP4OZe>bN&)ZBGZeDq+uRGCmQrfbo}AJWeO^K^D7=&{fbgKG-NJn- zNn*+nM=p5`WB)lNn;EQPkP1uO_$; z_fv)Hi->rMij$|r^RWk=PI6K2n3Dwm=^6n=lSE)3>2ABtQx{n`ZvQJKFtBizBhTVC zzzO(s%b|rUL6G;?yoHxYh1CZS#{i4_W8{f@V8>1u!m;0F+A{eiZ+}{xzweGZUXlgi zDE%n#6NoN>kFy!H4LbW~7X_bod^Eh7%8bNo>ah%J98J;Gk(A{Ac9!$x(^QdR2*2Ls zhhuG2o?ndc{o7gBWPR0HGV7QRfzmyR&$dHN7u%F9Q$^qwy(>$PEg~{5mOrXlloc9{ABxt zsmz$D)`X4Zc{@;Eg3P}`2U2n$Kk_6?q5g5zg0hhO7QXK`*kMd6BUqV&b!S59>FJl%CQLK8>BZ@R%IERpJ#JFsSQ9tR z-9~IZo6VTzNT6tn=B9v5TJV+UYb?jmB;_kVk1h&cUSOK4F{+z}rAwfjr6EF{r#rr` zao^C4rOIuS8IKNsGVDj@*_!<*VJ3VlBLACIOhDI>|L*$j_wdj4WaVu(-sz9DhXv8b z=P8cBf{&Xej^Vnuzq#jkD%F{#x%f!`e*R9wJ8Gs>TIjuinVJomzkho-1Z~xRd+y?$ zDQ07xwk1>4_Nkia=6CPh>mH0;JhcqHQ+%8R*@#{U*rD{?%_R6L4|F&2V}M)v zNPx26cPkhqpSi3T5Z>L0dyv0p@NckMKjxup_IGC3hAQ*8f|Fz2WdL(|af1af0ol}H z_8=?Rn{N8%lD!TFc-zbM!(EEU2>A%>8e1v;yKLhpy{cQspoqkaR@@cK|1iXFVoHt^ zn9q(SR~b+QEr=gsnTXFJL6_M3G3CkUeKC>$7z{R`lXyhsiO3Z8Wq=C}*4@QBqG~Tq zA@1TXq`Tb&%fiu_2LCZ?P6?&V&`pM)49ljvV@zR5WSJD!r|`_tZRTJpGaTD8H48pb z-BNW!hffeT9fMN%q}m4FNC5@}JWG`XQz{SLvT#HXLw7s=(JFMCmL;n!kK6`Tn8s`k zItUH3)b<=e%fL;2Pc>D`cXaMh=gIM?YMZ`e`!-iKP=|zh5V-McIT{$OM0*&m$ODmD zSD9&HSX0~ahjs<%4@1y)1pUpO{qpW_DsJCX#zckfI7;`zbbD0O?hq{lOM>!;?>m|= zjm*VlM)5}Y#Rm<1&1lC#+7YGm&tJXAupOmoca;9|&at4HcKDzC%v<0TK> zGPl3wVt4tLXJ6vvnY>x#mur0@VBfW6J%C2iFu&*VfFrRIRfpDQ%}cy6eZix&7{hoo zUYGYISh>=3uNpNgE@t4$-My(c-5`u87R(Kp727buX%Zded(iHpm~9Tu0~@$=_q@6k z53MyMy%L*$Zqc_zvFVc^{2QvIb0uDKu33ZT-b(>#^lbldv!RIPGC&i6*jre?38A-f zRE>el^9Kmh$zt~i!5Z)N47r|!P;6xMrJda@+!47ix9}ZRKgDTk9PQ#D3Nzi*%yHC* zczb<;ysPtfuA`fd>e#xW&>r^tNjW*bXX@#DSn~9Mf2hDe=zT&L5Sk9fp7m2ci2br( zX7{((w^w9-{p;lgc|Uph``u*^>GCtqJ-Mphifzp}B3iKl@}_>#O)=O`pQx{ESX}WaOI#Kk`>013Nj= zeFCvj`5s#a7Of9sEnA!7nXIMbKaM^mqddt>>od%0`Ts#G4nZ6&`Jj4#ap}_H-5NI^ zj*!uQcA2SAU4>ZVZi5hFVdL-g|Bp1#nR}eQ(tLZ)FdZ;~YN?hsWvZ@QY$6`oQ%L_! z%bsW|zML{7GLKF9q@;maAoaAS)UnJOxIL+M1-a0f~4^V46vB!W+( z!XF^vB543AgO}j-zV{Okjm0CfO5)v?(6e%|5idWSn<>|;9fU2yGXvi!)dQ z>CCnr?YnvK0%N8Y! z1c9qE=KKlgwiFNv$r7&&+a%3H1auAC8bp&6Qd>VR&#CaBmu&FT0*T^`JaPh=^iI4+ z)UB&KFI!h}XYp`(J_al9-tDi>`rudP!5Lq_%)VcTub1Da*$c%#Y%ISTT`1#>aFNQb z`6k9&qY=r)o{{>=CGpouyou9zccQiXB3LD2IZDKszRt?UPdW^@WgZJ5yNhgWFHR-^Q@pG1i8V4^nK!wDqaTHbtbRqr~-vTiQGA z@3}=DT13{6$1IqIPVvvwq3jg?FM`c!9&wmXPw~$f;rF{rRm?oYfpLaDG-X!xg-w}V zm;Ct{Z>|TB;4^TRazG4v$;I0;Btjh2Csdu(n~Ac#B74cd=EDc;@upZ&ZyuMu>^tIk zcSCB^(S}{DVpL=NKN+Xf|DzEKt!xc}kxmcP4tMV-HRsLJfrqO3U&=&ut7Pf6>IjZW z6$7{T>^5hpQE{@w1!vwUQwLXK6Vp&l!=BnE%;&WB;6>&ov-v$RuhSUTjGW}zxqJyy zqdyea_hAjX%dd3bi5HLCNLY^9bn)q%6f6 zm0TsJvRdj4~+8cYHY&M3ppF@at{-77Uu@hxdSGJ=lf# zrL6|OyDj+jmmpiucVQMl?D`pvB3`jk``U6_9q&Q~>2Ql~@tHPKPOAu74UN~HoyOCn$J$N=Hf!8-DiYQZJ@A7R?e3pj_+3I-@ zREvVXp(uj;BWkPiTIBwvoW0^&7#?MVB&Id)zUIz7D_(9=67P%Kd{YR@6nx=ghk9=u z>5t(-j88rBvur2-b2nQoVDT@3eawH=hiveL8}i|tY`p}ghb$kvfB7qnPVy8d&07!0 zH2x{z;?WIN0QHXBuL2@ zh`f+O;%U@2!(D4MirCvfv;%pAZ(f0rv*LA?3Bk9g-~lmJ@!xmDov3V7JsRc=TcyU9 z=EyrZ2tURUNqJs7&Js0TW{RrxBQdORvO^^SI$N5edWIJ2wnp8w+8ouh5v&mgslla1 zjIPktz#d_aJZ~RmiUKMzLtgTc6iMQ@*dZ5zFKDWbK~Y?|9U2!!%PK1rx25~h!`d%^ zrRIy?^@ER4y^n`28z!t)ow1Fwgq$fcj1>5h;2~be)bZbcA%-$~?vOX6vV*kvI9bD1 zlJiQVVONhL9$~=ZJ|bRM%zt%dl=0duiQ!tHk0SH$Nz80@wAI=zs4Uhh8ZTqmQf*E( zwCYvOFzE;j)jzo99uer;EQy6$ppW>oXx|e0f-u~n`!$8(@2`|WP*zS1+8qwt?XT?H zDjF|i*uHH}l}6}YIYgV&XWsL>((MQzy9#Ae*>)ZST$T+008p90HOc@ literal 5317 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 wFito7VkDke1;?Bm1@P{}+qjbde?JAv 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 diff --git a/tests/data/EC007.flat_sample.json.gz b/tests/data/EC007.flat_sample.json.gz index acc4142cd324fc26028b86c0b20a990fef735357..e381c1cce7a51f91f23f069b619d17e4a4cfe4a0 100644 GIT binary patch literal 6562 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 UtDOeE-^-hqf5_qU!Ax}k09bw7BLDyZ literal 6262 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 literal 4228 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 aN0a}C!vna0PJa8tZ~p@jjK~`3MgRc5X)ZVb diff --git a/tests/data/SALM001.flat_sample.json.gz b/tests/data/SALM001.flat_sample.json.gz index 2823d99773f68042ddfc4ce784058cf554e675e9..5a2603b3b11badd94ad419a0c62b51126f7653b9 100644 GIT binary patch literal 4686 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 Q{_?N?2NswK^Q2G!06X<4)Bpeg literal 4327 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 literal 5357 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 LE1@U*bYB1f-g}pg diff --git a/tests/data/SALM003.flat_sample.json.gz b/tests/data/SALM003.flat_sample.json.gz index b5fb15b5be7ea732632a9919af0796a0f694cb10..bfc6cf579f85462393e9658a565e3ad8e4a7e84b 100644 GIT binary patch literal 7249 zcmV-X9IoRZiwFn+S}>6P1ChaZ;<%g7HC)b8YsmHqU0IHS;wiW?Fy(2$8-$CH0)C{vjkf< z#msU}$gR;x_Dmm^h&`SkigibjvutB#57MH*d6j+JX6rPYFSGSS{fI1S8#YUcWA`LzAKr&@A^Zg7w5Q=7~@J}lq-onSF%0dvK>z!)^cym zVHi)zrQvpF!XKpTyAp^U8aL5%B{4IGiKqCIIM25uqmODr;+H#M|CU;X zV)}Td2Fv_YEEC*t$9tAD?%2+A$(C;rC2K({p^+f=0); zStd2sLHf)$0no=XnjJ>Z@!YYxqFD`!p*`mw&n%`gKcw@tSl8LQCZ%ntgFH2Bat|!S z4q^MQVV%L)4ytE)mTsxt;gEID8-!(fhOM@6k8#f#bjR~tdvuE(U+`Q*jBaq}3a;s! z?kK)CA zbx}a3T))h3S}y%`Lx9XMYkBUrbwWLCr+O^PdZ(NvPO~fvI#(&S*lw12n$!T`v(_tg z)9@{8zt8!)%AnmU|2>;+vg8R12*(~I*{+|~FfqeufUw;cl`N7C4oteOYaHR`ye{+A z3dXH1lwIpAzBc~+gAh7oWLIvkHaQW~(so^KvNXTXVKRAAgm}G(ofc`aUDwqt!ZAIc zEuP30OydjVs8c|m#W+#ZAdV(-g08_-WuwUk3ZgiisBjcd=LP#l!BnLKXcqtX3PZnw zJ&2+>4x=EL+I)b2VF+TPaH5DP3gZBE05KDd7}MyXEuc3+IC&^oN(_Su+60s16#qg{ z1;j+~JGECK>jT=Lq<}o-RgzE)*(XMePc#xlSs0-t47Ugzh(>>E7ei2o{zJWDI0Z#P z{?u-U?EpqNfM~sFvTuW5M$kR%FZ>svYOnB7Mwp0{3*~5nu&H5#SSS60eqk8k56>r$ zE4eI5g`USDiw<6aOgtDd4@TSHaB6%aGXh13fD2L(ywF+j--)<^A|tX|6w?X%4E)B^ z5s^9_P}s^)Lmv#u(_e)IK`4EP5TUi@bfFY)CSU?L7x17FJUJLBx+s$Z z>P6@i5r;y^`5D1xs!N~%DKwx_3}_xryUa zDRwa`phr^;C9ATCp$ii?Tp;meDzaZJ(Ic2Vm5j(qxj^3YCki*|!7+`^WVi^~J`{O~ zLMSg{T&5D1qCzHZID8F`2Jt>XhZNeo&-I6 zr4+`AjK(9TX3??eGUj?J+X-#x&g2;*`4!g)R2@^Ir|FxlbkJ^$>G5mIy_n-NW;df) zCl`=z$2w5V&;d0|-uQ}CLO@S&!cH7U49)l>a~E}vT4$q%lPBN3OfIoOPKvtV8F8J< zSrpx8syA|%I1kgYOg&WjVwY&pXucCs7Q$ZgTx0S?1^YtElQYsOf>T8HrpZRsxFtCk zb&$rBKy&J3A>^5ABoh+07LjmPf)Xo5U(7`U0Wd{L#Eh?9l2I4yP0pp383bq$sN5pU zN7I+UaHs-_HFD`7lo1s0gpTo^5`Xx(D^T%PeP44TPuOnHa=N>%&)(|6pT{!bA|?ms!n$*xnv38SD{GLZ-J zl&(Y#F_Rq-Pp+@n$vM8s$q>d!r4HOt;tFX&Vh4A@4(=L_UITa1wm}D4q-`-#Noa}L zJLo!lhYS$LUml=_L9g*u0rdY zp&7_TTo9sL1?G_<1L4>><8*%cN$W4J8$!ecLGipFA;$-%^iBixjY-!p-<_dPe zDd9tw!R*H9bu^C%q*|n6%(y;v@)I6Z2r(~!Da!4T>+&YtVi^r`tx+yv%8Va305I9d zBg!xAOYBb6bvaLCFvWr6aN`CkEkyzQH(@`=8zrfLlQ9F>WNSqc51U*yj~IfRH3FVW zL=lHu6z!8znG-k3f>&>%Mpq`C{D_B|k+m%Q78e3!JIXyg{fv3}jn_44;5Z)TB(a$? zN<3vRiyPmcT4r~X5<73mV&hJ7A{%hQ5Hyc9c|qH~3^Y6{rBcr=-g*Mx~L z{qsj*$Y&Pm8*JSao)=@A|jc6_( zsC1zvK$)OJM&vd=Nd=lIlC|V22Ct9puhxXeS8HCe@+!+h2Ag&Y9Y(T3IXdnU<7CVV zb5@j~6Odt*%%fBlJ)7cgq4U|sEoAlBaNx}eN^;ITz0;+~8S?gmV&SgyD%mUO(@s%rfJ;`NUj=qSwhYUf@q>Oiuy4tdC%Cs(`<_6%QNqy z+UquE+5aj&)Oj$zz0isOSReRB-kp0B{rxk?{Xt9imzCYfZ2 ztz#0?7w(w$_Wi`N4a@19M8VcIiQ(zGp^xv~ph?nVwMyvS&x?Dwu+c6ri|<)kW}7mr zvUN>+l;_DhS-w7&{6PJxju~;rNfej|mrQ{(aF`7UbBoKECw;Rtl zkN9c~HLzXpZf~+O1v|`_`6{n93#IX9dU?gr_0F|2`?jT5Y)q81$m%Su+lm0<7sP3o zxhCKC#g`x#Sz4^|MIki*x7ow*+U2L+eWAKvbopiC=-mFb%ih0z`LC*2wVYtVM?GCYjf))k0#GZYeSac=Z&S@=LVzbx37=cyexZgL%!O#yf zbZuh!o&m+wNgjKT2XmD_s+}E^2kP~^-ecM`l?A!Y?vI30yPe4_-_}iU(8vR>aFvt~ zSyfA_zEi6jKVrcz*?m^xTOu9O%R{1{t2zgm0NgIekVm2R=D&HUjah%7cTMgHdopfp zojlgJ4YPMI;+uUYpRNl5`M=NPtC^DR4V&85U2oQF3~onCzAIM3=$Z6tNWCl8!0G9B zHKf}gG^$Uuruw?z*Two|%j}*|oXfNR{W5=eJVJ1tY&I~uaxfquW_mB6cf+>YqwXpF zxh$Y6SiWfTby`X1yECt+`A+CY&DE10e1DjM^K-?bEwT+eq0x);o#;f((i0svBnS%6 zd)62ho+_CXBe}%D)$W!>`c!GFyprD|$*JyCF`P#OChGu4kMvqWcr1oN-y#Li8>2*( zCinMPOgG=ax zi`3>(dv%GA(S2>HjsYTm{3g@x%Ou4f3_8h&-FuH(i9bUTAXOq<(5mfb!_|wb8#jNf zGzcura@rGp$l(I~x#!U2N`Ud{W7eZrNQK!*wj4t!zx$)zX9yj#kQq&M|*IUpHLXk;8q`Q;{H zK6RFo1qS)`ir;YVQ*n7Q!uM~2p=2Em-U$ZMA+QW5@nGmiq`q@C)cn<;Vpl`WUkxhu z%jGI7FL7Z4aReNBHt3rBq~)xw97oU-o}HlogZ8w~@vkC32)Wzrd$tC&%C4_&<1ZP) z3fgeF%$8X-d(5j3`vuGi`fNq?wl$8v+NLyAwmFVIDT|Qw5##9V$1*rapT#=4IY*z( zw)~mskCV5bJ87oXhJB&~6`=BpNO8?6DGn_GVOJ=KWpr@pMXOxD$s7xUr-iilQ}VW?VOPeA~xDu{7ys#C%Vl{{%e+ca%MasMIZg^QWtx`yyP;pq5eM?tw- z*hqS}a1$>zb)6(7)Tx^{?+gpCawG5q{QT5Iu9Q>q56xX4u@f@OJ(A zG8u*>^?R*a*hoALe1&`634tmfz_BKoquPxhf~!=gJol&j@NQ zOx`BT6@<%jnP^RxfVsh4wV8F!q0EMvly;Ng3Z~KoIezeFo-Vf)F3NL=4TV;Pzl%Qo z#T`tt@Hzm9!Xxg$0^j$=tkb)^ zRp1^n&+_FQPF3r9l4gm@TS`i*`%=KqPWFF@?~Ja)G`>i4T*aGjR{26kgD~Mw7|x$z z{@^+Wq~t$q!uCCYHy4f|p+Nqz;K=uU$X^B=>7H%CNv{cG2$l`EA8f`UEE|20Gg@3W zOu*efq8SpHEgvcb!*+DrHyq2;Rk}%F1{zPdycA&E$}HWu_YLpfy3g+1Bw0YW6r6ov z{`l$rTlxv#;?2hQg|PZTVhkfSt_J(|e17xKIe>*>2^RrX_pP_VKP*twaNZ(_n7VHe z5}HckN=W~Bic}4{t|JI^oqmEcdYG*&>#_7y6q`+B;XQ1(EX=j-4jHcCT$1sF#IRes-;ai^Y>Bx3r z0^{4e6a&{BVY@2i69dU6)I}eI#bL7Pm#m`AHJ0UB{ahrPR3m1N3jhLeY#F{`^?_0} zsm6D``^2&gFI!l5=AH13%ySlIq6_oh7EY?*?5CQ)t5i9bQH0^mF`WRa36GqKCKLfq^KxL+df4c@}^wdUC0`Wjp4Fd6%u9)|T*8uSe=Fxy8rULO1#xoi}1;hi> zk733$W*=f`3V25FtITR3_9 zxh(3eJym(cDNsG3-$`tJg>KV|-(kMdaBmI)E`WsRdb_7e_;@0#;$ricyguP^pZ47I zI;$TGava=e+R%J1@^yWWkLb$}@9C*gE3YBB0<{*|^M|BP@NwX$HE#sP4=yk6+8+LR zzz0Fv?V0SIZ|~!}z8J@~;14~6b%cGXyO&}lU$O-o5HkD~)ULEI#a&j`6|_ID*{q^m z^B&H(E3`H4&RIh+TR8r!SxsLq)%0`1TWD(edtsny$6mv`rqWX`0HY^<^9p0=_BlYN_>>o zWYJ{v_{RL>AAh?1boW-n69*0#Z?!tB-@N~+&-=OES@HR?BL+(CY*QDjmo#6$)t(Zt z7$1V1GQl?v^4+toowWb&>}q=x$AR$o`xT>pYNZyE@J_EMwUAb5OJE7RtJN)vLI`c{ zAn6g(y*~&*Y_MuVIYQ%2K)D~HD%}x|LYdAIc&h2%NkX1+Kfx1 z_S66UD*kP7@;4UFK$OtZ22~6%?1-5LhS4FoSg3tP?X|QjPRfFZ$virORoJd#qbpcy z4v`^i{c>D1f&o)p+&7zzrsm#1HrH5r^Js^EhfNFt@Q&_2Z2lFjZ+dNKyLFuIy02_D z17)oZoWad>@?kOiFf+z8Yd$lV*1c)!(}(A;mig&n`E{;aPr5Oq>}u2B-nhSo*RHs3c*d8|d@cd&jg)oNLmR~5;<;&KhkOU7Sd@qrr+ z*FwsF9E(`i(0*a4OpM3b5aOBVP&c8~QZSy=13Jjy(!V3)>#9s9CTN_f#5w8lLQ34k zcsT?oI(0|d&8SsM`rW3^Kz6seh&I^?wRzZJm9cQ^8QpV4!zA$C#1}eL?esKFPL7Xr zmRW|5L!4@yp__UkUQEcWZ5U+`Vajg-13ntT15y1)=3^3CO(~`|J-qfXL0{Y!eEi}a zU#IBdzwO-5sIgfFa#>pp;dqb=!s-?o!JN4of?VrGp}>eITCYktvqDKZwyL`s5&Szw0z%>$x-^??O^|j+|Zaev!!ytHBkyE{SX8>agV$ zqdqQbYs4DmAjDXewKd0;MC$Q=@=TD*(yZ7t0S}V~!Vr$=TxH>E*TpK=0s&OEq_zYG zQOOX^aYXPW=YJ(r3LMr~MNRZOibdgX>Lm1E;v>U*zNb&-@3jMpP{tN+14}o|m#?SMU7?6oUVUVLBBoHGO0U_Rz;aGx2+_V@B@va6}wIWLp zM}Vl}r%OtR&(K;dOuZHsoK%7XD_H?wJpKX>OalIXf|8gLJchn%R`7-i6nFweIdygK zbHb?S`Nx$LpV9LU#@g;R3Yv(pt_6ggQ-X_>a0Tdw6&U&7@9^s9nwCS}4grI-_&izF zAj$b6%n}Y~J;pQe<6C67%3{BtR13R2mjt&Q(TckKC5~BNsS8@Z0RpgGQGFTJK;?PF z#EMrl)l6pq6kmgAouTFOToQnCL@T_k@)z`;x7(d?@FistC9g#qP*x5dwOAMCn=jza z71ftf4R4-DSS)diXEje5x}$kC=uNWDcJj-?n36A5V{haZ*j_U%-S9|EeYe@a1%A>4 zlkpHFi^^M=9bRnT3-<`&=-|;Kt)Xm+jm#qNXEe?Ek1JT{rvCAhZj2_z6HH9o!*TJTmjUsxarN{C2;CP3TD{`u>d0SFQU5`@-HOakcc z>FMcyx_da}zyC|qt{#HhJ6$)ge$f66mvCd1RmlYZdCbY z_LDMMZI)Tz)9hQ7ZP&?i$^vfge~YIN!QC|Y{qCoKefsd}_umf4ld{ZKv*n9Qg{PO< zmZWr^l==E`nN72`^64tuK4z*1^Wy88wLj+jn0)=1CG&^fYL#qXCLfJSRa7vE*#-!0 z-O_d6Gtba&;bsZsrs>+I*Gv3)2ehkv4V2;xQSuGNS*NMW-3q7-$8-$CH0*OSvjj&r z#l&*X$gR*w_C)WOh%=rZi**N(vutBx_tK)kX_zKQa3i0<$WZ z%oD>T-&CX6MlT1buHf({Zr_TFLsv3=-}U=UFD`K+JqM zDXR~YQc7OH)n@voO)JcaP!r3MA;%--Cds$iT!UP%y#dX&^d((prS=zXfAPIq&MaFL z+ibeXmr#;`v`!G{w&`5LIZMi{|#CJB|hMR-))w8np6Pblg2A_ z)9@|paL)O<%wXIy|1+Cxvg8@-2gmLu*{z?~(3fE}K-eCNO6JK17be|R6|Qi7U2XH# z3f8TulU?f~z9#S!)a7`~~ zi$}5rFjnaRhQ+_HF!U?f zgD8sQFbaaP!w2{$3_(m3jua6^VH}_iAZDZyV_H45190b9Ae6pCh|t(_yikfal!TVVK#tJK=>>0&4jb0B#$sOgu-0{~ zwm4Z_nSk=0jKu&KkArfo3$Wan0{lNImx~dQ*Ybnbl8qM}wX#(03;3oMJUSRCx+s$Z z>P6@i5r;y^`5D1xtV^H(DKwx}3Y+h$EiW*!n1tz>LNkN>*hNLl-7)xIyB{RAj$cqDL^gm5j(qxj;VfCki*|!7;7PXt)U3J`{O~ zLMSg{T&5D1qCzHZc>5Y04dO$94k@(vp%F?@iN}H}=V}@S|G}jv<#8o&YSOVI9(i=J zN-2yJ8LdZ5!=hu+ZOrvlwiDXWlhGX``4!g)R2@^Ir}j-&I%qe>^!PR9Ud(YBvzt+@ zlM6_y11m&cpOxrXH$%aZ0pk)bB);g>aVKYm9DGa4w`gIU`*nI7MV{YBr+UEy=lP zg0!9lnq!-VkUP~#CL|m!BH^qAC02^Qn2Q7gV2YB68DG04qb}C#oJ%7!2+$%>xkZ+b z#&3b)QUwxg%V-^F-(q|(&v+IFb+a5(-XXt|6*U?C)d)Y4=wYse}#^uGq)J1NRT5`^%cX<^J?PMIgEV=p-knP6;QBf_lqDzLA%7 zC#s2=?1*@DeZ@}B@l8&KFh(l1;EobkNE;G+xC{1hS8MbdxRbUGTF@eGi-}4?OU&Lu z_t`sSfH3~@0tLiN4H@tLjgCt~wwT(Ws4fg-KvF?K(+}%RR~v{MZrb*e$Vje2`Q?J&!8FAAQo{ldtIXxbP8K)JIGwY9yld@ z$TFDS7`=}Ah(M}ED#ncKW1FAws6vQ&158nFhg_G};TFqikb8}C3sYwNxCVgHJ|0ni zVP9f*qN&S1jlmQbj>C-yq_h+T?B9g_9B-7Q0#3#ZV56-SMZ9cs*F0hfuJ;JIm53q^ zw|0z2knJew zm&LX3k1ey?Nr{~|WU+B8Igt&xUJr~{P4 zFyQS0t_veZX<3uehCq|m5im!8>P$E#%dUW&os&-_mlvHYlvPu}?!~Lgbi5}_d?D|F zu|cU5>oSjSP(uDJkQ*%;n*>Kv1+HbdABwn?B%{g?K-g?FORmY{eXXNl9vjhIK2YgG zTYxe_hm6Qge3A;(DU!A1E(Y(99q!hIr*~^!vGXd+LI#_rg$^TGp`2Xzh;cGzg*huq z&Nh2P9Vwye%Pnf*=}cjiP$WwtQyn&}lZs^5q+!qS~K= zY~5@f$?`4p6sv-Xg30o{OWDZuzHuoVWli@|F0`n1l1pWj=HRelnirUb*vKrdE-p}& z`N%Ggdodpw#?dcjBg;64Cp8(~&z!?HO^6B)e_KEvFml$c6UcRh z@T6U!95{JO+Z4WMyMx&pE%B_i>keT&FpA@YDSdMY+kvmZ(z!|>Q>%H#RYsYlkF8}A z(--cL@ecjOvJK1Wnnc0YHi_Zsx}guBU9U;fVzo->tDjd3xUtc$uZu6)cAIUsS(&XX zI-@*I*2(gv%u9HRKt+f=eS|B1gWqhzBj%c+A5eU&DZU+2K*F3>Nxp2ooqo;N^WrNV zW7e$p13JGhPltp0@aX6iH_sJW_V=nMQ2(h|&NYDpCNQPsF(WaWKp7+uPYX8(&o@u_ z)fgIJx86VAWZM+%FkR-WywWU`#)s*fJFQ#W?DLMkVPm40c~)g<)f5B}z93Dz&Nca6 zU;GN>JWGo;eoY9i|9SHGr*?g_e=bzdi#ET^8?DE`w%NOnum32EbwffI*Vj+gYT4YQ zi~11tU6xhlNARq;wkWttwcXWU_PtBWr@O35*nyU1Rx>_ipR4D0;IARpL06qGb_DXv z${{UUl^w|i_UF8smf(QpM8^a6?Qcn=d*$VmoLB-AyXxU9wyOk3zj_}$#6b^L^|B%9 zKi>CItamFsZjKRjC48fYsst+V1SGO`;hDbPLnxyG2|c%mCi(JM(-^LB{Yf7oelblF znx-MlX3)FjTUe~C{4p*b@aqd#hu_nF$i8IjC|hTDw-52hYy%WH>~fg_R7{?-)sHk0 z>uL~vxl040H;2(D+X9QDD@P2Yf67bJ$I*w;&)3QQCHeqj1eeTrv)lee^ry+uao5SJ z?Y#2aB1-2~i6~Q83le~U45*$a(73LZ73q3aE?VYsJ>?G~|rh86`k#GZYcShOYE&Uq~w zVzV>97&EZO8RF0wMuA0gx>0j=qz7LfC*b^C+G_J` z!%k>);(RYUQL}VJhcyX;!nXr!^b1dwOp29UV&H1CWsyFY+A1&Q@7Cnhpr{xwqXCn( zfTKftryx8P!=P`Gg69oUqD+&;0=tgKWTR!@stIyUh7iLTr-`99POIG(6#0^Db85@_ zwAd77nZxw7_@_RS9W-?LBlHzC=1F_CiBHjeYN$>DBK}BHrY*KfiZkeSk{|b9kkz*M z(iZ_zCBg-*+-){o=c=Z0|39S$frVL4d!`@!xB`FfI5fEuU_4Y^9eRaSXj`-85JLI; zP}(9(U>$p12xGr*Y3p7|d-v%f{Iwr;l5LfPqnxG!KLK>fQ%q){8%*}iZkjAtJp8st89CXJ6MP#;K-9+*E}TMPMXSb06pQ^8T#+E=R=M^ ziu@?#!lx{Kz608K`C7YaH$_eR)*-!1w$A_q%Y2njLWG>9Z{`YE(Bt4gk}^$ro&Yn|JMlxlXKh=W$Qxor}N zc5Ykh+xB17_iI>#I3$gIf8tvTs&$pD@--y|25-ANg@6S^Y5T`seLSF*|sWS{9(gpCH_X@)jPP}t&p^}&XnehgixsS8f^T(98FeZlU8p890qvMBx z3d+^oM$*~bO}y09J=4n4#e8mL^TdJIbZ(@Xt$Pa2ZMLDUt2ZS9`OP}LxqeJmtK@%w zQK?juPm?qSECCZr#=FRMEZcIGJj>)8*u6c@-LLOHoFnaw5q{83u!A|(b)nlTGi(;k zKHS}h_tTpbG#%;p;Z!$#-FHE}ZmXvFPC_QzxQ)hY$35+%3R|`yZlJ-BS3{m%)kO)4#lj~S>7nHfV8`Oxr9?SIu}3c zsD-BOPzw0j+4=YJT`+ZM=mC9kKX1BO<#QPg!h}D6qBDfi2g`=r4L0K#mW?jR84WHQCg5%t(F_U9mOl}eVLQ6* z8;<4aD%~V71C6I!UJ5X7WtMI%e8XEHY6h01LwsE&{6VTW^DZS)iujyhRW(b>AQ)G?l`YkpBK0sTy=$M-b>b z-2`QHFkLmqNleGzLMHK+|CWY>h4AoN7<}#djziD&w^AL`pW=uAd<_oj+C=XjJV%Sw zIm4oBy_T;Nzu@OWI5t_*mHehf`al=(R`;$U`Ex?k6%$ir9M$}l87FuzEMYn-|Ghlp z82uTiv0*=xI^}?+pit@NoMX1v<(yyO&MtlKf~(P+b=1hwmvw@lJw>%(ye9LUVIB;> z#`(f}z!E$1sF#IRes-;ai^Y>7DI*hUMG)6a)7hVY@2i6Ftc$ z)I}GA#c{IfmaL-5HJ0UB-CQK$+ssLVFF2M|LN23F}R3$#*2w-yxrX+lLj zsMr^3=>6r+&|OctN^0ok_kSj{WfywI$zs3H;HQyScTB@nq}yY@{|xlvM=KL8{O27w zqo+2C5{P@EsuzfFbw%GJUIWBumH zK)Da)QHRy+LECq&qYN$L_|Tx(uH#tvsv1jz?c7W)p=U{w zm}zP)Tw@NU{mim;(?~^Pbpz8p2HS&59tJzX(S?~$rY<}xHg#P!T@~tfvCcdLxhjs+ zP-|WSwdOFWHPul2^FK`CL2sp?zZ`1KGy5uruUgTQP-~i=ZmL{+1kftys6@`52pPU{ zVh%&i)oxkk*PEx8)-Li;88wCkX_c=V40-!L->&j>S7qhf54aQCJW+YXIZ!>L-&t&Z zg>K`D-+sQqaBubjE`WsRdi%qgHxKd0husVU4^Oe{lLVnNTjwdBqXx^-iDU1r(0|B( z_|xfSOCMKD(DWgu@~psJ_H(pHF=E&UfA_B2$G<3c>-lsElSB!o@Xs;uXMR&Ub3noM z@uT5ECvS>#oWufmrt(xO4``obqmqa|14D-60Pb+Heyt?eIrQ0Kd7_UJ^Zw`bf#QjE zE2eV6>t*hx{G3i#0J_N|&*tX-{jWc0_q)|B+iJx^OX)K;)70^ZO|H@6Xm8ekgLV1- zluSHby(5Vqf`^A*N~|Uyx5bW5eT3pV?Dt?1`7T!uS4)Q7*A1 z$MqwRHfbt3Kq90-oZz;H#)@c6YZMzSAWd?}fA8!Y%<^!3GVC|Qupc|Ki)Xy~PG~K| zNY;vEell_H5NoIL3Wp%rW-YA}f6MDHoOtofGV!PM-~P);lHns_ufJJ##{2u-1N&DG z$iXpwUGyLevd%@fEIXB%8PjD>4NlO5O%|`;9>b^yPd+*u_7(LcJ}GSpqoAzKxU!%^ zqgT*q#;iy7JRC-4JH$l!@`S4rTLYMa^8kKiT& ziPVxHN<>^fdN?_pvdSd{9*$+P z*%rfgt<*oqB0zg<+fTH#cq6ojAtxqfNT)=sT%8rWLLc$zSkyOYhK>gPk*vH6Un?L( zQ6TAwIULQgXfs{ZNK|B5u*oEO`kB|-_HG4$(ve~~Phi*|_Q$1bDrJSjh(fE}|OEmcuZA|zb2DIR7Pt&-Io>ly^S1dkiBPG03ZkMt)Vx{11nN_w5 zQIWc=xT>?YB$a3Ca$;X2Q`?w18zvBvT;nu_jQG!Ox(?fNRkA=5wcXNM1EZ+s5iLmw zdh+AHQK&!;>#HggqoctCy+%7$6kJ1xY@7oPb%clbIZM$=A{7CUh5IHW%Wj~Hnskc@ z=#Y{<)N%@+Y3a%Vkg_{G0mlRS={DbnBuSoXmT9C#K?NW51{=}45Rr&CSFLm`IP^Kv|qFA2a2BOH&+kd zq30h-nkjpaD^pQh@t_sdu%g4w>HcdK5&p|L;B=&A*w9)bDbTgmehI) zBfEV-yGrS6LgSDGPA1@X{*R@zn9Q8XKWEp!eR}xy+GxNDV|2F)-egVKzO7;*rB%ZG za1&66hSJgED8 zCVgZXojBfS=TK~SuPS&ZTOH}$U@p;N^h-)ZmpTCrH_4WB^zlgT9$gq%2}$ej0t~XO z7NdJ`pzSgS9(8i?p*^XfD5VEH%%1QNd%}b43D@n(woJ>kjq$jHY&W2E; z(6NrqQ>ZJ#C=(M;vuw>QCteTv3sy?1VS!iI#^prmqiQv(Hnug@vQDTqCJB#-l##6~ zHa3RWSrW(ASQ*+_KC-HqMGgBNPR8F#-nfn%g$WH4(P#t0He1RhYhZMngktNeC9hM? zEGmj#k5ZD}J)f`r9(;f^(GqH^a*I6?MT~PhRms9NDhX_&Clgm>U{+H`p{X&K&7=5qRt z+$h;X7$Cwd>x9v&byc@d=iTrMkK2@#H=W!px#9NPMw^-s?>Drz9AB+}faT<+U@NDy zOZ9-iZQ9g63f^9`iBqkAwU@PNsB4OTj4NRY&0_VyhYa9x^{Cc?ZU^wDJlQ>&bt8r%4ty$642_8mzWi&@8a{@iFI94nbtJ-j4 zF`yb`kG85?$`EQj?83HYm@uaHAYv`*!j=VTgJBP7p=r8H8niiN**Y&waxv9T3A zklGlVv1S8RF$NLqV`HjZ9pe)kdvt7I@i-c>oPZgl~P;?N|XMN?A>Rqyh=5M3G1D!$% zfi95^6=D$PGK4@LHkMh)e#^H@L6!ZSL zjGooOmte(H9yE!R&(?HP(F>!Ti5OWmg#1`%_z zs}FCU@m85ug)Gz+QkD&d0;#PG1`Y*!DV$2a^{F10=FB3G2F@oYOyO)!(-@}koF*?( z{Dj^uvh2@A0``4d)-om`3o-PR zZ6re=R)D-~i#&N2YSIl$G6)5p_mE}nZG*swa!9RX2ZmM~2+#Am3PA2WO0vr5QCRwg zTMv4`^(Yhtu45Ys9dSoe+Ba7`PreUH9gk%aJN^)}3$0^gnSR!*3k{>x@|w^*XZiS*irJ?}mq#`3aVp);&t z<6N=M@jxC)VZ36_{0W-P&||csaRQEgV6~L-8x3cd@SN`WI5Gs2)Zf8GBSAm|iWp5! z9)p^5)D_*f`bjjE{5=PMa?U zq9!)lr}4Fzrs^;}wCqaYhruC~nl%08al99jxv=7at?`*?jWrBT;)o~NXT~r%OI^`; zy{GZg+dFb74?4n*l~EFS$V8N9ghhy9_Y4*j<|G_h;p!aXLYxMnaYao?JefTL{FX(q zr@W15IH7ufO7EwKjo&7eFuS-Rv>khm^JU|V;3y~Xo*w(;{l(}@D_^<-E zIn$eK)WJKK)DRH1%M><^g8i@4He^waS9>y5s9X(b*;YfN$2*FuMeblNu8g)EKM$55A4U6@DxfNJD z4#o}116on_&prf;SO{gwU2`lBLitWYeMk;Wr;}qeII6B$tu9OJsgV>LTm2O^hDtY0 zQ`5(TT2~`s)iAo%C%1$<5^pF=a*!l+lvRFY1Rv=dJR6_N74-ZNbj=coX}E`phrn;9 z=-q#bJ{owWTHRGvz?KYYeoz+PWTkDEE#8koA1(Wu-`H{zNyVyb8oF+1qt-w|@r{&s zmo=hAxa(@&UDg1#rSrS4rhSLRCKM{R*&tFeEyI?~%z&$icR^A}r2S0@Bf#rCI$m|~G2EvTb<8DZvCujuF7H97kz7?*9Z<}Fbj^UgNy0NA zmhSi2c9g6e^Z#ZDCKg}k&{Gx`fjvun2n-2$c?bYoc!^ZLMGy=D<~RS*8iKVn?ld7j z_q$YEY-^#*PmAe&x7#6c;)9_aM}eJ`0rQ6Ml%aQN=tDd^7+w!%2I4j4REBDtOwp8q zl=yKz$$0X0DvvRQUGMT8vKA@}Fb3HEeA2aA-*lEtIu=Brbg$x*u7VqR$z50VcbyHp z>#F{)vtd7!q)wH1r(4Pb6xs<$oQ7O}1Yw93Q7#KR#kj(RIC#C>VTWINveJ;`MPKjioD= z?Z2mqo!?kmBJ--)p^&(uK?mUp#|g#U&OhFNK-HduE4H)2o_NIKBVlIfUHBus`Tm$peyEfRi4QR7ok#|Y z-zJVyv4~!&M{y7banudiogb1o?H->TT_1(HpTy*A#r^t_20_GsxukJIzFrH1OnjJz zUoQi?@yPD$O-fT(e#xHFuX6$`!!z~1K1M8oK=$k3eJ*O_ReR>0&B$heyzR4S^~ld_ zIb3`<=QK7JKTIxlQ0WGEzGK2O--hnT+uI{Jhqx|SBZPrD1FBI~ z-EpQ5ifS0r*2Od+ui)A170vE1KlVXeb;@Q^uv#sRMsw&D&Eqk^UBP%x!p3Q^japM_6)uuc>=WDuV z@p2XT|8%A^4mCB7&}23f!5pcN^LZEMu=6rt8JIb{Xypg_`6-nBk!~Odc&4(^C2Z@2 zlt4h8z)wi-SJ^=pHxOLgjB0Z-?BPPo`)=#D*~{}ACyru{wvQ8$Sms8x=gbG7!rk!1 zZiFVw=@i*&wbj@d6`$X>cibRl{0>Ow54!vS<3BwK{%35+@YR@a!I3#J2{+UciF^?7 zC$SwI#U71MB^M_g!jncTNci}BSXCqzvVviGZi)%rmEYTdPT~ob$Kr^jDFbY;tb0v% ze(-hzQC7E4TuNm2OBjQ7l~so>=$;VW?&m3rAGF27lJ zm7gF$_&=)dtoyH04A#m&M6f8Pow$-UWQI!^@=IP1+5G1R^4aBuc8=A6R8kl?su-zY zds?g3N?iS-MWe71#Irku`DfPE=5lt{KFM!Ek7DxT)UOmn*{DpBYj=@`@bYw>*ZhAx zxxT(a64>YL`+cwo+kf|Pz8#ga=}L)x(RskqjACMi5cP7uAE zH7}D6VHI~K>VKhN2(Ps-aedX**n(Odat+c}izHFiA?9;7QM&b{57kqv_EJfQC4(jO ztEWXNbW@-Hy`&Qq6B>#m>KLSv3N2AZS@;=c=k3U6=mlJ^A0i%a?Gqj(ah-@I>_83Z z9lw1IGCm+%+;2EX{023=K&B%8ec#`QQbpyfeontqDr}*Rtbe`mQ}hrQnZ__hRB)Ll z%F@r=FMWd=N&#Sbg(k{(2p>~M)v`((<+}l_0s5%GrR(aN8#U|++Q<$-25BOPO0B1G`RPpGtjHTyDj`2wJC5!j{2W-$gsgMN!6%Ho%df2Ouuxk0 zrNSUZ$e9woNP(Xb{}iHQ+4!Fykue&&ZphnFszF+Onyh{$$$5p&cu!9vo}j<{3N=67 z$Ue*-q`NjtqPG_4vk3Q(gk)o7sM6XEC>7Q!8ZM(>QEg5+v8qg_pLBwPsz0jXoZ#i! zEQx|zpwIkU{BQ7keh{SG`0BEF2vm4LSvfM)ZeQ4LeyQG8(Qq04>TPq%cuw!qZkuyV zyVHll=ogSh$5Y_(nB}$?Qkczcih zH3E}j+_(~u;F6S41Xuz;VtO8@VIh^<9wNx|*W#vKf)ai&CCRSujeZYv>-~%-L4d>; iQw(K)SLgSzH9o(GJ>zo*UHtc7{{8=VJ2h6vQ~&^hJlhul literal 4646 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 ce}JDdIQw;Oy)1Vzf5RAoZq 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 literal 4511 zcmV;Q5n%2giwFqdJ&tJr15-gvO)xMuE@o_DbYF8}ZE$R5E^2dcZUCiQZFAc=lK#HG z0;Q>|b82lK!FOhFwo0)RpZ6@qV|ixpb~nYMC`jU%A{CNK?Ah7>e%;`^2#Az#QZ)&Q z=V<`ljYc;>{qqlmOcvAonW~zT_vD}O2rqUl_Z9r#hQ-M)44`H0M;W_pHHRyBTT|OD znZMgdOxDU?a+bz^bX<8aR2kyyE&8gwCASL6ynd0xi89#|YOFJkc~-=fBBQ=z(?6^cl@DJS?Z zB7!PcA`D%?Fg3-JO-Ac@ldHPAW|=ZAX=izpHpZK@QQoAry~%NH*Vb&;wFYFCR#z2A z<|JC%nOwz@8BY^96IC?%aF4wSJWsAvsXJMUB_Gk5?xdaVPMX}EY(vZmlHD?l*{bbS zrlV?(s@f7|9Z@RR(x|HI&QLeQ4t4}R>1JJQ8M<86P*vA5WC7`@gVH%PMHcFgI^o{o zD6%D2qx=4+E9!Vs<%OnX&D4|=q0Jdm+j$<@(9ZMAnkNr-m0o7ybDBIS@hbU+rCFGu z-X^NzDs@`$$4Rvpy_$X_+Jp;DXLj#)3-A*$X` z4O24>$VtXhq1V*UF(-mR?Lxoi_&#f*4MC<3N&`gHEal6nfKW#mw5Spe9|nO|fx~xowXyEZYUc(vi%zLr~XJ9m^Tt zXKhwjSM54=8Sb(1Bi*pfarzN^!#Jx5oxvJ6&z>*Xn$h*a8Vh#M4pFY`u^?HMGEO=} zj~XT4`9=`tuT5mpZTHBWJzkz9uxZAx-n^CcStB}wC=I2|OS?aHxT|cNq$at(KG+dRVg zD}RsX2@ZLVcCMcDG~DgLdeu-J+cmVanALisx~UmQLH(Fpcy;x*+9h$LI>gzY1>rh` zI&)Bj_Wu{rj3P)5ah@sHI0f5%1M!K6p|=n@(|HT?_7t!nh7=}hqaRn@HTIxF5xjZxvHSDu_s3J=}dzfez-LlTrOr0`l zx?zm(lhX>-IF5TZvCxgGtLGBAa;SYak84Le^4cO03{(Sn;zEx$uam?|qZ*{vuA@5U z7-~E3gS6UkEXx`-*ml|n^HZrx9eey>i#n-O{534?t-6sC>yf&u?dYcKjG=aPV`vtr zm5w8}b)#ygZkW~?vplIA*g#Ge3=pMsQ)GzK)q-Yfu4NfV$)%Xt)eG3(ab1zmoT?Nw zJk_&pI)*pOW8S0{8LgR}Yg_hlfD$u1TG2F@T81X_mQz{*2ZK!5wa4%Vv;tW_@Lzm_aMXEgqx24LlY9zymj|cVNMF5HA(trHg=_ z)XV)aYW>su9>y!E5-^)4M!SI*Q)Q(BsR%S3RTITrkdzJ>E2QLbDVNMK`R#bNNo7Sroa$r9u)`_{m(|48Bp|5v(eV*uSe9)$R01ql2m-0$NI?F#O$9Pl zTQ?P3Ce44TfRI;cO|LWmaPOxZmgOa=ANNFkpHScy)6M&h& z--CHeYruj~PMB@i0rv*|kS35!Mz5s287y(GtJuAnH$wMfR!{o$+eQKBFA`m{V*A1g z-QJWM(Y~0{6MbDlFebdTmC;*;jqpH75?C_Ag-e!E5E%S>ApN#w)Ni|fzwu;ZtB2##_Z1%3k2B@A#ggR#M6FAi}CdG}~|JChlS*VS_w z)I6J_t0O7t<9u51#Jg0PU~s?Q6}Pl~RFPhc@csEzwpZUuTc(oj5Ge9Jd@5_W6}Q~W zy1$nW>|WOWy>wvzeYIoh6&`3|905mGq^{Y8rb?YSj==MHHh}+uJa-wtCgIVNTj1>` z%bt?`e}&xc3qRT=F^eLfR0VN`y<5SXa9zf$8Oyf`FQM>Mq{2Kv5BVB{MSAmrm({hr z3UZ$W;flT7__>b*yNioc3%t2rExoFu{=UItjV#Wjw?1gnlvYl2nzbr!%qMtOeWlu0 z+DM*%03D>r{0j^_Bag|FrFjPZkL#9Y_|5m^13VvgsB6pNFm*w|q1ng|j4wX0K)9=Iw}iVSg-)+x+rX?aFsh+%FEx{B@7V z!w?B@$7FFB-~r|C5bdZ}Gf?Y;k=UYb&7u-Qdf?k%2pNn_(TxQ3$+!B=6H`{j27 zszOz_{fFv9^mTHGR~{rtA+PcD!T$J8%RIh^^QHUvNL`ECwlT!y6#TfPJTu|G?+((k z!!j%41rmGOLs zKkQ%;lVnW-9)iFSn6-w4+lO4lKf;@LErxve*2z$j-iMtGN}~-H69TaG7DqU zoZEvlVm7x9F`U8zPZP*=tKAwC!F8JKN*N@~K%%Y4eF5fxC!+^GgK|hxFm|>{lLOD) zrYB)ACImr_<-_}JNCx3;#kXj`&q99}{=Q)G$`60PVfhY^+J|Hn9w!???x)k)Bf#&n zB!bvY?ru)HS&jdxylt5!t3z?b{=h#p>mxCPuTEw6etJzVo=ki3t`B^u)2xSWi&K6# z_4gL{OP_pw`;kZl%weRf@C7nyAA;f~xeg)Tt)t`x9%I2UB0t-ezx9cOPj??KrVpx$ z7q;&%34e3fCoM*uemC&)xSBlmkE=V1gVN`|bq>|N9H^0VQ-vZgI!%*78tkPR^h0NPX|n@SgM7;B63Yoizxu^RwfUW zE5mhdS9R9ATFw~Vv11E+EC*a@~0fb5jPbCp* z52{<92VO=E$F@CuVO-*Ir)zrN{BPbhwrIAFEzRE2ksbLju+6u}GyDAE(-5>bmie`( zQrpt_AS_3uul>5dW0^gC@j0R4dvw%`z#r+xDgE zT$#F#deE9Oyw!1%hWQ8`aM%MIKdh3hYr5q*Bv0L@S|73OkjBqzoZE{ZM*kNoUF-et_%+ z(ILZ&>0;r^7Ho!puLSrzO%+YFQRp@S^`w5hVIDsWj3RvEv1ARKUG#b`yGm(4;@lF5 zOE^V8V7|ym$r5(SZ(TugundRCAZ4D_f68yrx>CTs>h7=3;8Y!pIIuHA`h>R--X6BL z(&KAnSu9k)mEq?T`0g&Qw>4_o^$q+H93LNwFF_{wZDajuN>nMb{!ha7uS$kgJ(a6Qm zcQ+>0-FH0+<)LDcrBmt(06X4E39w8l0t@P5d)E76_<@evdreEJMz5u)MtZMxu^dDE z+We#VeRT>NL%^R@*AgOFoWpvL>(B|P{zw;j>VwI)4AqWDf#r747J0+J>S3!QgIhqZ za#P-%z^+fOGR!dW2~Wi-Pcw+ZW%3M z*gicg~7-XGcn%Go5-pMGNG-!b_>c%gm_|gDRSiZxa3c(R`>wWIyjUpI@=O{;Z zAQ$*88_0kymw(uCMeuVpctI?c|MzZq4z-QySHqlPt2Efk9L4+w;pf;PtqR<6hG^g- zOVq7j2#>s6Mh-x2MUF`AJz)~Mf&V2!Xx1Fj5G{|Mp)_6%zjmp`K{Q9=b) zC|bUd@?)Vln4yq>zwl98OQO7)8d??Qz-l9u*NUgn!^$s#mEz0Eod%zw`2e%3;;^UA zyhhnUNEBE_g!_U&=rkmo#((}uAQu_AYY0bCn?TfhmZV|x2x*nEaF*xrPTB4Hp;FQU zs<)t@hBnBu0&0Yi@@kaa-MlA)#Pv_4I65XzEXyGTS^r`EiF{5sejH{yG|+V#^5W*b x$RyVb>6m9dfA~V6{3JY=&q(ph=zqk$-v1E~jCcY){Ob?@`ae$QH9m|=005Mk=g9y7 diff --git a/tests/data/SALM007.flat_sample.json.gz b/tests/data/SALM007.flat_sample.json.gz index a187676b3ab62c9ab7d1602b3ed5ec06286cca90..c711a199c3c7aa4a947ed151b8f9a4448b9980c2 100644 GIT binary patch literal 3823 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 diff --git a/tests/data/SALM008.flat_sample.json.gz b/tests/data/SALM008.flat_sample.json.gz index 7c5e090dffcd37ad614764e0ece97a666a086e84..415fffe57d3559abebd8b549a54067b288c55806 100644 GIT binary patch literal 4666 zcmV-A62l;h#}>!QKJ=kw<3$92Xf%fbd|OeQ zEyUX&A}ngfFBwi_FLHAMw~PN;xy$L?o&NXy`j0OUzw7fB+#>|<*U>9)2)oyH%A|B! zNEmM;?BbZ)y2t4j^BRKWInGCa%6s&lAF&rKkNdrszDkdZlqDHVVtoLhVyLQZ%c?N| zPT@;J@v>$*mLf!dI|6tg#sF0ZK;8?0G`$~1j(b4qjxF1!VL9f2OzhE~HB}lKBFU(l zbjfgpI67r_yx1C^%T^@K5`w8jm*8(l9Q)XfaJw#UQSPL++{rdPoMG|?5+VmzvvNa*D z>rEh4+<(`bY_XR5yh-GP>bc&ep6yL)k2eW8ezISOF%FtOrOCQs+m>i1CzR5&RN2xT zU7+BKGwfd{&|WWVV{>0~Y|XZ9O;PPp@~cQA@T8M23cphYF{48BVwuSMIi%7DO@VV% zlsCk+ntPT%*0l4yvf_z-v((Exd`gq2Bo30_aZ193>g__76j@Tseg3mYvImJ2vN!PQ z;C^p{RZRpg`i9+}A`f1e;sC*}kKV!9k^kyPn4o_{^@sO-IcvO0QtWQR2$Bfmu7umP1%77*^3n_u23V%QpG$%j>b>4wj{l)6Y5Hz~hc} zhEp!b7nHUyR9LV(IYyaupan@#$mn&34mC=i*-j8J<5zc4vCQF) zAVfnM^U~}~9`1+ik~FIar^+M77A5R6uaDq(h(h1XAd*X!U&uNXOLlt-VN5V|Ou`>n zI$-aKs?@NBkYoH5L#akliesEC2QTmr)HePx%czmd&siGo_h7o(W}18!v0O{KqbmK( z+@H&D%MFrlQOB4Zupe$hs4xdbsQ-5n^(g%07-vMfp#kW8T9WNxM`j_YU)$|*7wjo@ zChL429jxk{&znteRT=ESQUF8F|-_+}B#uWSpMbUoq`ReDB zE1$5f_HsBR(d$dTZ0g;w@nv%nYW-XeEB7YFFwW(%dCDhh8o`@2Gw9K*8|FpIxr(Va zY{${`@qIE{t{KxYwR4G7HI8APp_-h>RHNJH(pV6ZjrRQVxHFK6E3#(DnlheP>Jv%; z$8q$NC?udZb1p?U9Mv)uV-&HGaw(b(|5s1ShTg&EHA<`Us#)q=bt5F!x=|q|<&Bg> zZR-XyE!$K__1V^qY?;98dVp}Sy}E(@syA7O*%|W5&eg}OH6t5_32Si#v#l82mMu*g zGt#zREX6U+lQg|=qysMVHnoU&O|@vYW_Q)nWwzBK8xB2$9>Z(9i|kmAERP7e z^0t_XflL~{VFGE+Sd}1$9X%{z9USAj`G8X&^x#I}KFp9#rR8;1@r@$Ojqg%OOxdA} zM&$%J!+uuf39ybq9GZlvxCo+$;{k?}i=G`(^?#GLKhWg1ZdZBjNt0jfB#q|#CcWD{ z`I97Z1z{g1lU=rts_)o`GMAoXoDq81wJKE#zLKTK@+N5Rk=-0;UhY8=!6k8tzhzIK zz+-1LJ>t~))8Z;?#>|%C6T!fL3ZcLO7bKEQYpv!T8g;Oc?24IrFtZB*FG=?v?f&BP zbh(-eP}%E&Nxxc%5b<$O%MQARE;L6KprEp*Zcagl4k2A}1i)fFP@rWCFy8lViBUAi zQY2X<%zG(;y6Tu#g`0aXGbrf8?J8N)QugE)@3$|Y65vnkOT~_UFHW#OA)iSk=-pp` zK{8q&-k+$1k7Vnl09ylCqk%O>$gRM-)(=*jk~MpH6g5~m1+QpeMftjK>*B=nLPAp| zuzxs;tq*cqs?l^)vpTcj_S4X(rQ6Ohsii7N7EM|1D3?3B+8C7M$U-IaJ>kwvx0qxF zsO!?azIzn-h&MQ;M+FV&

yGvJip5mg+UxgvU@DIZ-G0*en=C@3!+z4 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 literal 4330 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 Y|2-Pj`3m~@*B}1%zZgt}`%p;$0GSAERR910 diff --git a/tests/data/SALM009.flat_sample.json.gz b/tests/data/SALM009.flat_sample.json.gz index db0438aef0fa119cda4ef779f6d5e0259adf285a..f81819b08895d46d618e04f1d3fdb90a2affecc3 100644 GIT binary patch literal 4614 zcmV+h68Y^PiwFqDtwL%515-gvO)xMyE@o_DbYF8}ZE$R5E^2dcZUC)YZFAeYvHsp) zf$^EnO{Nh|g6}y!ol#`Rb&n-GmeStdHp77^Na8U?DkK%#>GZ#M0lrEENGiAI%p@W4 zJd4Hd0@wwpfBg=ji~0C&s;chAd-N}Ogcm!S5rzG+p;5dGd}vvdFs1Jr&A|%ZR@7!o zN_P8@%3A45Mw5tyUM}Ev_P+~nKAw7GJh?MIe}1_BcmyYDN_WffRiwi9b(wG}t(G*1 zHX-$BBy8Q$WJ5&_tN1y}wLj%OlIKTCR`bJdN0L|NQB$%wgF!6!0K}GqZOy_)4>*CB zDd1hrQ4Klx>jAL4AYzhxK;#8Ly3>tH4?93Px?y75a%{avCMB$AT~jozM{dTf|nz3V6r5$&X0G?Afl^gNSV6jIF@5b6g#1mfu%XR zr8<&us5t%cbpq{-vSVx>Yno}RhGp1}J*ta#G!v`f28gQp~ZilbHhSDK_j%W8;tIZL{Z6Y8yl5V8}H z)}9I&Th=+$B}r+@=bmYss$DHTJ>;)gt*D0PIF7Aa+CZvaQ+3@o*qqUa_nMH5B}J-Y zJDOv;!~3j=7Iq!e9!6xA)%ZL*3h?1%{G;TJ@A+|*(J13eo4R8dV&{-GP~?Y4Ayd` ziVPK^-_q*cC5Hx4N}=a8_)e8QB~Q$(I+j8X(NhHV8uzxUolIe}B75c^|Bz+O(dBcN z1iKx$ud<`28|qoiaza@ywsg0Xnn!i{w%jJ!MskySQETDHhbT*x zINQPoo6j=s3=K}{nrfXy?>-J+Uvg{JD_`Sf!}ywMRV9&-ETAc4uC(c%%UiHuc5Uli z-h}zuG|uMT@bFdjbB$BRmuA5Ze#R&{udoibJG&JT7d%x_EqpGK*#|T=opXuYK$>M9 zTQ-l@o^;IBVD-?4^QukIvRNr{k|{{2&3zYRTU9mFa0U?@+b(2qw(VFat5c`4d7gTd zeb+4fgQk)4YSTDi8C4rZZJI`NVT`6Zkk~Yh;aHaK;I>Vr%66It*0|1m&DLzoFb2~q z!$AIR*sd*#nXXg~N(Rk7``bzL36JhF=E z>bkC(qG;)~3U)L|&aC!gA=6Z9708Mpnc|1fywpUaQ4G~)Lido-Kqkm@6^}$Dd`*KC zTG_J27in(;Px(LCi3dwJVFNruyp)KSV+8D`UPgkj@lWqLfTH-BCo{-sHt<}wNEE?h z&~%c`t<_e#@$5-oYWNoA)&F!46&+ z?1BsuK-ND`tcy2LyENVZQYJV?QxS|Y$J{4`zF2JJo+t-qYAdw zLwOf4CFyobGm=M8n9`Csr(d(D4-l~vmL&-ay>W4wG2w2@=!sz9KLwE8LI|dc%2Ms- zEeZ>;Al()tBQUZH2`^4|gmr)MaXep)C8+Fm&!u0@WQgdnV;Lu#Ll>~CNKjB(u`p*K z!*N{KRVBb;K5%Ke3`D+dN)Y5uHdZW|H1bk)t2wYlSKcEp6Da9|%_5$&O6KGuXHLJ- z=!QmgdN*G@(mfzpw_!+OwNSP}dc{OK7lYvG!5^OiCrQk*r3-r)e1Ax;&wy{~?i}4$ z5t%W#H4F~R%Q$ykH@-RyEaR*8jD+BW;vC5qUs%C?;t?MvB&>nBn<~756hqluipZ`x zpNdjeFrPkshIs>|aeepLnuMp=pODX^E=6zt^b1naa{u;Z-iVQWF)hHR*^Mrb!IPG)$|Xb7UIGDYZK6I{RsmG{|V& zUeb}N4BIq@jOfT@P}N~be5FPfN5UORHZ;u&PN4kd4hk4q7j!r?>X%@gv z0(*Nh1b#C?Z+@Q#vZlDL0oGmCz?O`esq$%Kn~vQY+w3N9ZL?hd-n5|@X_H(ri5&R) zr#URaS9C%1jgWU&sMzZ1PNv>nt^s!142f<(A)dsdGE2WG&KKLbkgoYwpXc%I_9WPB zI{;I%--CY(cfgEL)YcrR9k)9|x3qppV#poCS5(}?6gU^G+v>O$x)-xr(#PL63WR^2 z*P<2O=V9n{#5NIATB0WZD?>JQ(K3wvrxfjiwD_bY;MIwUa2^Is z)>t`O(5V2}HH$&t*oV*?qD1PG^_rC&8?s0AB~utn83Kkry1|eZ``IA@MZS?F;5C^{ zi+!A?0Spf z?quEHNfo=3b$=&S?AOtbCL?x!#nurBWJMa9$IwKnQpW*!zMl2qe?m{kjNjtmWXesp z)PI^{W@<^5)JB%m6XGdt?Uzkhlo2TY`RZ1zLPobVZyLiY<9$x~3CYEb@{M3dv*$Q@ zLT~2z#g~sb>}^}tA|X*4<_CET0$W2Rs?OS)J+Ih(<`s?7AbZU7N94eH%h^Fs$)x*7(O>smH;%r-OMExdW~oeEO-25#a_s#|MN*2Dr6@I%mIX!D{d z=Wa4gQQswAP=eH;DS0U%je#B4Aq_jMRsr(>h@Hh*-uEnys?)M*ynJLQee4W?e{<^{ z)${Mi*I3sDV0J9k*qAkuyuyN5GfYAA#^(bx6vK5K-N^qG0e35tAt~0EtEJ_xP2X_V z6ccl;`fH1*CSI;oD$*dKdwv4)CgoF-J^JAxWoM!=Dp6l0!y`U8ihcW3aDV-*tJqOp zj}?*PzC!W>Q@h#Ws1MibM#R|d*VQ>rSNkAgaS~)r6{q(f9%Qgnd4K+-L-kWH8x4H5 zy?MKM8HB|Q&j00=5?DTA0ps;e7_z4)Zqq}U1*84;6|_B9MtSxIC1OV7C8Wa?vif&pNQR8QCTH+Um9E)|XrTiM zgQ3~PmBJ5_Al9!1`iX4{wt1iQm8c7lJ+7GVgN2RUzRv%I`YZ$3?4UWwqxGJNrfRGwF>_PTBs2hp|@qM@<*G z{`LqD8}i{Nhy=`nU7NnTY1&soqU17q)!Y})@cltZceZP74kMzsC?EOf}_Vf6iFL>go>#pVMxN$Ki z!Jlj@8gBlt)~A0m{yIKHE00a8yx-mqH+jOztA9S>A0IUhW6RL`n4H2=%i?~BcZjV% zT6$Qf`6|Qns*^>f#o`w;?6#ZkNuF$8?xO5+$vVHxNcxmsvWg(c=q|ndEnbe+zGXQM zwKZ!E%b#u2l|x3;+g~5=f4!ew-FpxB^MyB_&#$K+?*8u0KYv*K{o&fXxt`r~x^@|@ zM+8$aJtTyNYU-BZxY+d_o$BU#iC5Z^UOulb#aBquapZRHs;XL)t;XO*sL4_IDBEha z$6gW0b@)oLUwseOp%h9N?ws4%$NTqacG$tPgyJ>w`JxIz#m?>m#A6M;iGG1MZ@Xl& z3)=&i_yC5NB4KZiH%WZp$4S@n_+z+lgs+=(8m*xS0{u39@TM8gq2*yKV`U^6Pagq( zo5oOWQgnOO>EjCjsra@7>eoYl$N#{;DsCfLNmyp!&Ely>JXFU!58DQKen@?~&w@q* zTyrKj*GR$}33>=gy36xNu?qA03b(c0G*CqmiWcpg;iK{HD7ur~U)4yc!qGPp9%#E3 zZ-A=sEh<}dlTgCGomp&2gzgh`%|DP?#KlqFapf!X82U)*3bL}N+$L<#IoXEFAIk8u zn!US?Dl2KGUHw4u1kN5G^3Rai4yN;CwH2r zyQUmF=Rcrr;N`lo$G-*HcFNLkDC7UioWegX>r!P_ZQvk3?N?|PKjd3>4X-|1yW$@m z(N!Ki?D*uWxa!f^&$_CQXoD9aMzxjd=MD3+aN^0Zs7z~ZT5X0ny?)3mI2QfII?-NI zjxe>D6cU33X^N)kt!`_1%`YvE8f!spHA9&Fo~phF$Rm4PeD9_teGS%Zn=#L@^ac@PCuaMMop&*(@RNiSKcF}43p|kV9=ZH`lo4Vd(ZLI3srxG}=hon3;9_EM|F7iax`URQhkGP={0AnpZQN3e7?~*&C z)~xnM^=<%bfIn(*=@3)4ay77Lcq6~D8sv!rD)2(y@&y$+;t#kXmjKy~p*E&Oah=vT zD+fc$SgUEcjDAP8In~6fE1G`N84jv{KkJ>b%C%Vn2em*fbH+cg?ge3ZV8Pdv#eQT{ zu7IL;WNPxYu&sXO-d59a8U5~UbLwmx59V}vck)mM{Tym-zg-d5$f91Y)AgTGey)QS zG|gbAw=bQaQE|_F01}TATL1t6 literal 4286 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 diff --git a/tests/data/SALM010.flat_sample.json.gz b/tests/data/SALM010.flat_sample.json.gz index e5f6dca7b0022d21cc637f9a0046dd2c7935b7fd..291094a55fd0a2b546f3835a143967fb79bbe565 100644 GIT binary patch literal 4586 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 U3z*`+{_?N?0dhIaz}!p#07ba(JOBUy literal 4172 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 W>d|-v68`yB8sJ+5NXnN~Wk$sJ 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 GL;wJ#A<@zR diff --git a/tests/data/SALM012.flat_sample.json.gz b/tests/data/SALM012.flat_sample.json.gz index 3e7bd951bfe27c5db99fe57755eb4501dd03a7ec..5f8fdf5ef7ad1ae49d76fac2ba48471e29248210 100644 GIT binary patch literal 5257 zcmV;46n5($iwFpKS}0g`g=l2m3y zJWm7YZZx_9O8@)|LT8KV%}mAQ>^=G?e1r!(nz;)5--br7Kg&;;`Gf$%}H2l`PI+4y!%jh=VOh z!?ra5PT*k*c&u6)F*GUq>jA*KAY!5iK<+buG`k;_9(KG}Ot5KV$B~aS7fM~$wWcek zGaxu)YBCkwkmA^!mq%i4`P6H8E}JN}d<;zDGNoS+H1g;&q|qkZGLD56TdopNtbnA+ zrvOS85mYQ?z}N*0-BBzVhqV2PIJ$|Yb08=A6B*-AWRyRVraw74(KSssrEX8!?nD$k zfXq#9E4IuQMBq+D>6!VlJL!sQO2JZhB8np)(TVOvPIf0EcPGix@Z#Mnh^XK6DZ|z+ z&Cx8$xQ-~LXA!KMhD>D@XV|}vpuJw!#ul;5F?3VKrfKV=Iw*WYQ*?=M9CgB-!;(5) zh3>karkF$XICer!8U`v#k1Ohf+>;!#rk&=N6;JA%cFCLtk4gL(M}GVZP0}D{dOK4U ztSVJv@X1ZHJ0&e-ui?{v`K<{inhad@4f{Pq?%g1vK7xH8y@9bK@5KvgivEh~4{ybC zR&*UFbh!>fNKZgocO@9As-Hq#xhYNarKjl*QPpweuSBh>8o`EYYj`A8tEsx_I9OM) zHon)y%~)2XDh^gnYb;S~5N%b5MLLeiG>iEBUh-ql^#QAOzGb zq`GUM$bCYE?N1kXDrQ!8)lJKUU@Z2hV{XeMRL8JX%NW;d%OMQiF)hO|M)z6!gN7YT zY*tZ^wL5@b$0=6m3|0C$%?Oxd%F#4lv@`a*{q#!q}B z2(p((^5!_E+Rw}47&gu5WjU{C0}R#^glH&ao|~PG=qKIANmdbbbzn-262|GK15lnT<~bAzJmC`@+9juM8?FH@fzyY74t;pEqo$urD=TB{ zX}M~2%Q~6Jbwf<`gjwc9rW^y~lX+Y_y4_Y!zMKb&0jyfYINBL|iKRwi(=b)yn8p}t zGwmZ5)ZvD%IirY;tPjTNsE&zG7;Ii9wTi!*MP92LDY4cKv2>GYUEK(%E#1IE)D6uU z)n`jL*nyHxKV_D^x`Az=w_d<1wvH=}K3;8nUAM92=p&dd#h4lpq1G6~YwAVEnod+} z3~!XnyiP4LUab~FY$3= z|1g)oG=h83dGDLLPv08|&t25h{fS}-Kp3gA4Wf;UD5@4}J7!Yf!1mu3( zlpsS_HA|5J*(qu%4U!p%PnAX8=ZiSXg3Uv`U?uih`}*(Q5y;trIbjubl!*tbVM~#Hzz`M}tXIG9DPQ(UgqMWAFnDwkVGUZB-nZ zUP@@HM7K0u)3ia3(c)lB?@n3R&&i~gs&vy)4Ygx6;piG9j8y|ml`Qsz8#md|G%G*? zmlk#2qrrQ+rU^U1Xh0{&ppR)5K$L)3o{WKCU7$Dr!RKfYh3N7wYhXvl+)&wbC?XxJ zGwAtM-r8k3Y92F)<8<72e&vW+?qSXcs}a*AN{0u{S3=%RK8nr+Z)C%}DTdea{TtcP zzC%1|L1kJ73(eADoLyW<*F22dnuX1d#=b*Iu-WziX6}9u_ASieIEo`T+pdM}jQK8! zAyWunP;u{5%j|Yr3*C!Z9qH3=8wI>S&ti~I_qh`~J#OZTDIL)lC4>cq=W+xP9+XZz zsD*n%lE9E5Te)Zz#@=I!c0pRaLlf{^R75xp11f6-jt+Dt0QRk67;o%>bdJR zOE5R?9?|DaVJu|~82ac3L&D=_hXe-l%}oNHfy+j*kJB`O>7j>@GROgP_h17VB=56V zUrlfy?sJ9e3yAE6EsEBO>#-R~o#e7Um`4fwL$(5nA@Q()(!+kA=PsgY%>Oe*u&~%J zhaUM`2WRZCU+78@_77W-vCG?3+Urd_B<7@MbDA60fPJGO%$nMN>yolKc5I=ZQC|BE#T* zy~{7*x~M$87~%W#scf&llD14GyCG2ITliGga3yZJk#&C~9oUVm`y1)NewyrPGGV6` zERKL9D^k~NLldRS97o`JJR87&haTIE-{atD$t~zN8bP$8vzx`kJ!N5q=`ajwNK?g4 z;)^^7A>#c26WEuQuD8v0ZnUfi z% zIpwEqXYL>G&(HlrTzVen^3V5?H_2`7OfWt_f7cm+=hbtXJ;li*db7yiUGNZxz3s|+NZcq5 z^HcB#7c%Wi6vm>SefCDmC5_S`d&x&=TaI`p!DcBe_-oX(IJRbSYI#$o8yYqg(;~WK zf<1K2B3)*ld@mQlA5?G-(!gCTFRHhW&e&^50u}HZgkoxoBB*jR>AEVAS>go;IyGqK zJ{OS2#EwpN8jA4!fSCZ~&cT7X)H%3a6_PVIna=J3d7Z{!EsCx$`#i74|6E)wfc+2o zVe%b+tE!7+DlK=Cy_;O1HxGujc>4~0jgk-8=@Ra$+}0A z^Wy3wlCbA6Tt9dQj|IB_4qY^*3C0k*=`P=PFXHgc{_oREV#AoPBkvA(;fs3z>#XYr zs_+5yAlg`43WEahMs^xkBVidpsT&?>cQG_ThaKz`C|;w&wa^t*g6!t!Ve3ZdHbEcx z_0B_Flpbx@lbIZSqSRlx-ec}lERI%`Ye)?ihZX3a-K0Un!}_IB;IXTm-67-`9FzB} z_xPP5C3$(ETs&|Ocd)Ihmg$&7ct3y~r+CLoRV<_R?;v{}A0mIrVmDW5<2pe?*yI6& z7sGtz+}~@eZQITulT%n|DAGZG+&0Kc534lKqZs};ZR)Ui#>Z~@=-$np>3kPu=PTCt zdFG~%={XDNK}L7!`S0;+V(H#`?Rn4``e#x=a;w3yW7RXa=KW2 zoPD_Yb-DQb;o;Z2kISo%^IJ~G=h1qyHmK>_*r3FNozL~$H8u>JVCq||mA&@QpZs%i zZYrHeuIAp*bWGV|24BhB33sd>4~&m=S4GEk5r;xwui(62OcQ;VK64Hl9lVb z(Z6OvnzH})`(TLG)ch;h`C`dy3@8%z?jbBWvv_sSu7(+!e@}4Ps;=HoFC5DffLW&7 zINQS_d1cmsZK4U zscy5w+3knBA!w(k`NdKt#57di6%i?9zpjeW+1;n*Lk~tQUUO87iMO10t@mEGII|an~YXb+oqJ#j7AJ(p_l#{jh;_`5P6@4XWN{L|s_?8T=V+wyV4pER7`R zBpF*Wv}OI$Tn;Bfcpqog%(9>wvwzUwLD`=45LvWqkR?mK9ZN#&2UYJbb37bkaTQ{TO}fsD ziwJ9|3c*CfIw6K?KsqKs7BP11yV%fH5L-1!vN54LrDR2H)pH$RbGy!odt)rD#U4f{ zKK%4qQ=u=12R_ksMKM;S=KcUHVl+c)U;8Lw#{p8f4PbGMgb)VXrC`6rl2Dod{SS7g zAR2dHsD#4bk#hv0(oqb9=oX!*BD?;7gi0(6m6A0h4V6Da#@(yao=^!TS{6+9+m}We zJ61*+H>Qw=MpeLicgGIU>W`m-WEXe`b|fM2lc6v=FuuWH`X|OV6k_AVr^yLCQG9np zVb|iQOCWUEmfc-HL>_#*dng$WzN8MmCh58sse`Y>-jR27!`6vy+TG-Yl+jmLsRwSo z#-48*WbH#7#w*>jiSO&ar>_LeQ=>0=b@U}8qc1r*`jUa@OHPTtL==6O<(KOuXi<)g zElX(D)1xryjlw!?%0i!bRl<7A>qg<`%0evmezZhl<89?tqLx9oopB z47)x2|AVo;F6_#Aqr)y48Fq{7r1HlV_*p)Cb{$n`!`OfYCWf<*clj3w0H_nJigEl5 zB--THPigrwIK~F<5j>ASgl?MUm#%LpZSFyM6Kn?ux`+e$>F|K&@m+rPR>Ae^OXZjRYXa2I56sz}&1Lbr9%TQDQGH<}cot%?S^p}` zqFm4XVyiEMJCidc*VK7nVQ2pN<%;|~s|Bs40W3=ph7>^S^j?c?-_p05YfmD6G=Irv46k(} zo2yPX*pgblTsq2H9g@IQ$Cxk0nvokyA8V*i_m!27TSiM5woivr8mAQs23aSVCNk6| z?_`usYP7%@RpS?w-}JFl{U?aOL4;U3x6fEE#*D&uxg$HEH|$$7Amcr9`1cAXh<(uo z9w1ZY|GXWZLuI4t(J*J&DmAuRD|~)~@KfxNl(o$`L)37QC92jhh*+;NLnQ!Que3z< z43R!#)FZ2{Q9T>M8exwbTpEN}!`Kt7k-vI4$`S=sV1>Np3o0(hUtxw^0{bqV+E^0B zdyzw{q8M0ZgyN;ve)O>N3t*}EVsic96EyF!H$!%W8?AaFXp|wuOo3g5z%T4KV`Tfr zfBk?AW$eZw9!F&cVe@IShK(fVl{RBDJ&AaN{fd{z*oAQZ6B?sz*JTOp)&YItxqnYm zW~*b3)*V1)uuju>8N-I^a;k+@mo>wr6AV=U_R{i%DA#2P4AcR!-G{s)?ge3ZV9wW+ z#Y(0!0*cy^f#tEVJN(MLou=_JhRxgM)EgEV&FQo5#a-$23n;j~Zdq6(i=wp_@;%Dm zh(ixF&0wdu&+YF~@eVY)zI=}a#pU0VnFYi#WM&ME@bFK^|cDTiBM!D4 z4cpcTIE9B9;IV3H#L%SZFGm1JLCi#tfZQhlY4$KGJ4U=!Ot5KV$C3B55K3Lvw5BVj zGa@)=YBCkwkmA^w*C%3a`Oq79A)6?+ybny`I-_5XH1_B^r137_GmeE7TdopNtbnA+ zhX6_z5mYQ?K;H!n-BBzVhjjgkIJ$|YV<2bw6Pe;qWRgFTwm&&K(KSssrEX8U?nD$k zf-FpKE4IuQMBq+D85sGgJL!sQO2JZhB8nsL(V6Z<&UPmvcPGiz@RDc~#ME#5lws?Z z=4h6rUni8xvk2BrL#DEtGwxp}&_OTjV$0a&7`mxq)3o(T4V1p2DZ0crP8#9PVM!gY zM)%!MQ_Qh(oI0T<4Fff0z!mjT?pY4m(9UzqnkRKmyJ9Ya$256NVn6wXrdg0Mytj=X0tq#61>YCgOc z%h}LvlG61y2q8NGY5j>{sH%Prb>n615I)lWF9gxAu}ar*Y0ZZ4d%# z7E;|UP~<+L!s@4s8x=EayXvN8LM#^h(Dt*f9K3ue!bVXholLE@J(27RGN4U=zt z9SHL0R_^9FraH{alLXex_<6moX(J5Q5=3aIW1iZLO=u_ECuv?2baiA%j1ngNv#1IG zcnAZ}%^{F0wOgnvwpERE9V&=33Jqt$Z&W!@_mQtXsuXgJA7iN1*o-hVz3XJI?;e9TFUDZ{aIEHx^vzkj_G^qKsL2lvF)zfN)WQ)`>&JNTIwgD8Gqaw)n zi)eb`CC50=lsS)<>I;YuEKRarLS#&A884w;Uo%g%UqpT2W7S^NX8^m9fzs2f-Y2I~c^V(YZh7~(a?*L53Pjy{3eQH-ep5o(PoytZC+tm#Cx zrtl`Y%*)gw<27m_#Kxz|vzXaYiw@I)5Vb!%0k7jOnn?`Z>d!%0Po-*s)Ex48e*D2V zJJ982@|C73JwRFw#RyNB*KX{F&smVcTNb%^lwR-PQ}GwJrFoX`q5JzJ^r0MrH!cjx-BB(E zW+^=30$I{pmqCX;+ppmb9OLHofuttf#X8Q%r-NLEDj9#?C@4$)Y zENx<$gznf5%(yC^%*qqCIk#kfdh`YS#{kMM@XAb4Sqa!a+G9Q!WczZoE{yg)6Z zDv+V8nx)8qY!9`P2DuD`r`n?K(>#guVE2%$ScQGjJ$(H66X*m4%$mc_o`NqO>60s#;@-HH|Kk5v1(wclEt2I>!v%JB8>g0P_QRP_MDgVKu! zjc`v$5*RXMGZ$^b#Cyz86lCQMnt-RGBEoqXP+2Q*^q>m?aA*!ge-jTJZ%QXJ&)sfW zez|iGh(6^CV<}U>(8e$r5*{xL5`5R2Rq0hd7Fd! zYJ-PxpK8=lKxEgoDB7m3$3`G^lB;H49;NIL*$gPV#KQv0j)y~$yNHId{O=6G#A2%) zdgONwF4$hb(3K#@dwbf$3#3AULc=M*@}?TvQWxwfbs;wQWu~nXVD#?OYW`6kcHA@% zz)^-#;3p7W0*@_b&^H+Dt79B|Inv4Sb}BOwuc_xUuyHm;Qzuf=`{k_Qi5ICd!{B}$ z6=!gLRFPgx@crdXwpL$D-^?VdAyDK?_)PZVTKwi#*8HusW4E&AZ>1gk%Vk83g1t;fVx4c9&&EF^!P#(^$r9=lPyW-pI%g*CfKgz%=X7@9#?FWO@JSTu!2X6<_WJaXgp7`3`YRP6x}+~is- zcHBv`hve|*fX9iI8%9Y?!_Y-lLlySMhbO_dT;CQn-zR(kY=@-6+<`~tTei5QSMPXt zYk3vqHt_ghxkO9dHyZckac*yqi$#^E5CON!bw@lnToiHxe9u49)zkF1?@(nos>bLgmH*fJ9LrU^?QJCfH)dLR#4z^X*G97aa?*}m9%S!~R zVi}!(N7>ut82f9;r2`&rTN`E)0#C~5nx}hw*52Q1s%_iOD3epzMUyh%@q%)cl^r)( z5h)n{G%)m7MfXIJQA*ik2H(iv6K;?J%O&g5;N1oB6!yhi!&J?n;NxStS$_EV7A=nv z%v_Xgk;mf>n1Gcw0pgZHui_u!$!qj)^w-(_@@9Gc7JZDN(k;?$AKB^&PeF?yM$NuG zI3UaTw*d>GFsai7s-Y^QW5vQYO`=i;3Nl2T_GYMH2yAEc$OlmNND5|+?b77P^ZQ{K z^ogrvTNU!+L)=+1#^31BT|`A6a)6&9}3; zV_5<)i-E1G4~yglzi}7Uu}w6=`yG$Xx}j*M?l`Jp7`kQ(aFK8DNn{x?|4d2@(>1VT z>YnBJ1}0mF(2Z(}dXUlsUzA^EJl|s3r6Wlh2}&CTWnjM|mm3oHi{2)*73)5FB8XM$8>zKMQ`E&R) z*zGq(l292*&MB}bs|gGgL(1j|ov*_SIvJWIokKjBE4}otGwOg{>#V)8m~*nZma#v5 z0e+!b>Yz^d31}#F;~ib|O}H>*pV$f9#nz32@cCSJl^VQfV@o!!$A;*7)D_t&*+2mL z+7%Rgn_#>TQs!Chr#wUNN&ye6n-}?`j8io%;<#A`OA_1tUmv2tmwG#vgxGhg-k;`p zJjCKU#1fnIofnr8)_^n}6AkNx7^(qji~w22*sbqkL)$=X)htcNgzA)%4Y5_vb$re3 zJ0~8Du`m}07`^!Lmrt4sZ8<#fiH0kRu_84O2UroK9a4whPZD+-Ace~S7RN{kVX#~Z z)=Ml2mBrtGb2njs3gF>T>6oe`=LkZjqZkI!EqbYn?E3!^DzPk7O6H6-RQ_bxBK)LK z38hUQTpsq%tqO6fj4Ez?2+}C)7??j#XLpN0Fb5h0&4zjRw>2=-XI` zO;VqxXYfSv-DOo&UxYa75(pi(W%uU~kq6)Y8cN24FKL3WN&2oun&9iO%ae|7*gCOI zyPuqpD*Eaw^}wyS*z;|JY<-Bsc%xf3@qOL*^o@XdZuBKDj=p4K^d)CUUosMX$vM%N zh@$Vh`qqU6Ey|IxWeLrCeiSByQCNpXS?CilN?1>M{V3d?S%}5n_m)VEJnV{Q%TU-A z;lDrZj>!1#&_=#9><;k%5Bm19uq)?H4!dMx*j?prI$PXBa(t5|A)wLC)!=qjjsLm4 zySYgGV{u{cj(>5jk7Q@YRn$1R=^VX!Fs#+jg2o`NMr*-u(JKlE_@bApGDd@DR}bH)!6LCg@q{W>GO^=1KVK@aNeT zv0wLbt4XI64ZJ*=Ko6pmiH;&8if&~$p&I1UP|;U6JaS>(n@25Bz1KG{Z&6&Q)Mer3 zVeiK1V~XDMo3#%~dF;!3W{tT5`ar1>HFAjeIs~U3bivRXY3oq{r`}o%& z-!E7Uf~@8jW)zmGSVLV|)&~M0KO67RGPx^`0BX2if46nMr{3cNtn`je4}WNK*U*KV zK7t#B0j!1mcWf@U>vg}BN3TBJTp3t%UiT!F*CmRrW!y~i79iq{lmJtXU`Ib3r8P@h z4dO@D{l~bJYWLodPL^0d*2Hpj@nhrn;^)=z19Ot@1a(C z>VnDkl&PIvawt=nw#X}f7oGY=WLQC>dsW^E!$ebz`bz=9lMsW==7&dCRcgRbLWhdM z3pqn_7Fy&eEVvb`i+pRm18t-MEKd=JYC`L^-iYl)&F~rx`A}C__^3l(81Zx~D^?4DV zfBX{!V19JcKLMT6hiyRl1^)}d%X8#}$+wG>YvmJI)jHJvv6Lyi&f!j>I$38cYITEg zlC^pyfvHY0pUXKTHg$tuG`&dNGw6rM1j*a5v_U&R0!Z;`_m_EW1%T^SmZ+a0GGvUVXN@)L zXA@Wx?9qTLgAi*RdxkZN`)!jfQ9=b)DBgTVWfkxOGZYfo7q-;alqfIXjm?U(W3>^= zo0G%napjl5O7Z33hQViO-ec)iv1M4NV3X`1Bnqq|!hL2xN}@{^jsN)(8OqdEL)eSj z1fsWRNg6kgkX9Lsjq)7cklp5Ym6BFa#(DjGv_Y1oP$LADxB1Y`)mtRUVE>4Uy$bX| zvm8Q@`3LilQ19;CILIPqpm`ebD(9`pB=eQD&x@Wvd`3`*BA(P|sQ780f5yGm{~3?; U_ySt^&+q>8zrH;OwM|t301`cjE&u=k From 1ee636b87a6dde7445d7bec2275ea30c784ebe2a Mon Sep 17 00:00:00 2001 From: kylacochrane Date: Fri, 3 Jul 2026 16:13:36 -0400 Subject: [PATCH 06/14] Update test data location for branch --- tests/data/samplesheets/samplesheet1.csv | 14 +++++++------- .../data/samplesheets/samplesheet_ectyper.csv | 14 +++++++------- .../samplesheets/samplesheet_exclusions.csv | 8 ++++---- .../samplesheets/samplesheet_incorrectJSON.csv | 2 +- .../data/samplesheets/samplesheet_sequence.csv | 10 +++++----- tests/data/samplesheets/samplesheet_sistr.csv | 18 +++++++++--------- 6 files changed, 33 insertions(+), 33 deletions(-) diff --git a/tests/data/samplesheets/samplesheet1.csv b/tests/data/samplesheets/samplesheet1.csv index c89375f..8562f92 100644 --- a/tests/data/samplesheets/samplesheet1.csv +++ b/tests/data/samplesheets/samplesheet1.csv @@ -1,8 +1,8 @@ sample,sample_name,mikrokondo_data,predicted_identification_name,qc_status_overall,predicted_primary_type_name -SAMPLE1,EC001,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/EC001.flat_sample.json.gz,Escherichia coli,PASSED,O157:H7 -SAMPLE2,EC002,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/EC002.flat_sample.json.gz,Escherichia coli,PASSED,O55:H7 -SAMPLE3,SALM001,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/SALM001.flat_sample.json.gz,Salmonella houtenae,PASSED,IV Y:gz51:- -SAMPLE4,SALM004,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/SALM004.flat_sample.json.gz,Salmonella enterica,PASSED,Gallinarum -SAMPLE5,SALM003,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/SALM003.flat_sample.json.gz,Salmonella enterica,FAILED,Kentucky -SAMPLE6,LIST001,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/LIST001.flat_sample.json.gz,Listeria monocytogenes,PASSED, -SAMPLE7,LIST001,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/LIST001.flat_sample.json.gz,Listeria monocytogenes,PASSED, +SAMPLE1,EC001,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/EC001.flat_sample.json.gz,Escherichia coli,PASSED,O157:H7 +SAMPLE2,EC002,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/EC002.flat_sample.json.gz,Escherichia coli,PASSED,O55:H7 +SAMPLE3,SALM001,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM001.flat_sample.json.gz,Salmonella houtenae,PASSED,IV Y:gz51:- +SAMPLE4,SALM004,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM004.flat_sample.json.gz,Salmonella enterica,PASSED,Gallinarum +SAMPLE5,SALM003,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM003.flat_sample.json.gz,Salmonella enterica,FAILED,Kentucky +SAMPLE6,LIST001,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/LIST001.flat_sample.json.gz,Listeria monocytogenes,PASSED, +SAMPLE7,LIST001,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/LIST001.flat_sample.json.gz,Listeria monocytogenes,PASSED, diff --git a/tests/data/samplesheets/samplesheet_ectyper.csv b/tests/data/samplesheets/samplesheet_ectyper.csv index 20ea5f1..12e5c6e 100644 --- a/tests/data/samplesheets/samplesheet_ectyper.csv +++ b/tests/data/samplesheets/samplesheet_ectyper.csv @@ -1,8 +1,8 @@ sample,sample_name,mikrokondo_data,predicted_identification_name,qc_status_overall,predicted_primary_type_name -SAMPLE1,EC001,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/EC001.flat_sample.json.gz,Escherichia coli,PASSED,O157:H7 -SAMPLE2,EC002,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/EC002.flat_sample.json.gz,Escherichia coli,PASSED,O55:H7 -SAMPLE3,EC004,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/EC004.flat_sample.json.gz,Escherichia coli,FAILED,O103:H2 -SAMPLE4,EC005,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/EC005.flat_sample.json.gz,Escherichia coli,PASSED,O2/O137:H41 -SAMPLE5,EC006,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/EC006.flat_sample.json.gz,Escherichia coli,PASSED,-:H21 -SAMPLE6,EC007,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/EC007.flat_sample.json.gz,Escherichia coli,PASSED,O111:H8 -SAMPLE8,EA001,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/EA001.flat_sample.json.gz,Escherichia coli,PASSED, +SAMPLE1,EC001,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/EC001.flat_sample.json.gz,Escherichia coli,PASSED,O157:H7 +SAMPLE2,EC002,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/EC002.flat_sample.json.gz,Escherichia coli,PASSED,O55:H7 +SAMPLE3,EC004,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/EC004.flat_sample.json.gz,Escherichia coli,FAILED,O103:H2 +SAMPLE4,EC005,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/EC005.flat_sample.json.gz,Escherichia coli,PASSED,O2/O137:H41 +SAMPLE5,EC006,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/EC006.flat_sample.json.gz,Escherichia coli,PASSED,-:H21 +SAMPLE6,EC007,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/EC007.flat_sample.json.gz,Escherichia coli,PASSED,O111:H8 +SAMPLE8,EA001,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/EA001.flat_sample.json.gz,Escherichia coli,PASSED, diff --git a/tests/data/samplesheets/samplesheet_exclusions.csv b/tests/data/samplesheets/samplesheet_exclusions.csv index 1073149..d9b34ee 100644 --- a/tests/data/samplesheets/samplesheet_exclusions.csv +++ b/tests/data/samplesheets/samplesheet_exclusions.csv @@ -1,5 +1,5 @@ sample,sample_name,mikrokondo_data,predicted_identification_name,qc_status_overall,predicted_primary_type_name -SAMPLE1,SALM001,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/SALM001.flat_sample.json.gz,Salmonella houtenae,PASSED,"IV Y:g,z51:-" -SAMPLE2,SALM004,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/SALM004.flat_sample.json.gz,Salmonella enterica,PASSED,Gallinarum -SAMPLE4,LIST001,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/LIST001.flat_sample.json.gz,Listeria monocytogenes,PASSED, -SAMPLE5,CAMP001,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/CAMP001.flat_sample.json.gz,Campylobacter_coli,FAILED, +SAMPLE1,SALM001,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM001.flat_sample.json.gz,Salmonella houtenae,PASSED,"IV Y:g,z51:-" +SAMPLE2,SALM004,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM004.flat_sample.json.gz,Salmonella enterica,PASSED,Gallinarum +SAMPLE4,LIST001,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/LIST001.flat_sample.json.gz,Listeria monocytogenes,PASSED, +SAMPLE5,CAMP001,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/CAMP001.flat_sample.json.gz,Campylobacter_coli,FAILED, diff --git a/tests/data/samplesheets/samplesheet_incorrectJSON.csv b/tests/data/samplesheets/samplesheet_incorrectJSON.csv index 1265cf8..8ad83b9 100644 --- a/tests/data/samplesheets/samplesheet_incorrectJSON.csv +++ b/tests/data/samplesheets/samplesheet_incorrectJSON.csv @@ -1,2 +1,2 @@ sample,sample_name,mikrokondo_data,predicted_identification_name,qc_status_overall,predicted_primary_type_name -SAMPLE1,SALM002,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/SALM001.flat_sample.json.gz,Salmonella_houtenae,PASSED,Souza|Madjorio|Liverpool +SAMPLE1,SALM002,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM001.flat_sample.json.gz,Salmonella_houtenae,PASSED,Souza|Madjorio|Liverpool diff --git a/tests/data/samplesheets/samplesheet_sequence.csv b/tests/data/samplesheets/samplesheet_sequence.csv index 145849d..1e71b1e 100644 --- a/tests/data/samplesheets/samplesheet_sequence.csv +++ b/tests/data/samplesheets/samplesheet_sequence.csv @@ -1,6 +1,6 @@ sample,sample_name,mikrokondo_data,predicted_identification_name,qc_status_overall,predicted_primary_type_name -SAMPLE1,SALM001,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/SALM001.flat_sample.json.gz,Salmonella_houtenae,PASSED,"IV Y:g,z51:-" -SAMPLE2,SALM002,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/SALM002.flat_sample.json.gz,Salmonella_enterica,FAILED,Souza|Madjorio|Liverpool -SAMPLE4,SALM005,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/SALM005.flat_sample.json.gz,Salmonella_enterica,PASSED,Paratyphi A -SAMPLE6,CAMP001,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/CAMP001.flat_sample.json.gz,Campylobacter coli,FAILED, -SAMPLE7,EC004,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/EC004.flat_sample.json.gz,Escherichia coli,FAILED,O103:H2 +SAMPLE1,SALM001,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM001.flat_sample.json.gz,Salmonella_houtenae,PASSED,"IV Y:g,z51:-" +SAMPLE2,SALM002,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM002.flat_sample.json.gz,Salmonella_enterica,FAILED,Souza|Madjorio|Liverpool +SAMPLE4,SALM005,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM005.flat_sample.json.gz,Salmonella_enterica,PASSED,Paratyphi A +SAMPLE6,CAMP001,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/CAMP001.flat_sample.json.gz,Campylobacter coli,FAILED, +SAMPLE7,EC004,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/EC004.flat_sample.json.gz,Escherichia coli,FAILED,O103:H2 diff --git a/tests/data/samplesheets/samplesheet_sistr.csv b/tests/data/samplesheets/samplesheet_sistr.csv index c6fd300..f933093 100644 --- a/tests/data/samplesheets/samplesheet_sistr.csv +++ b/tests/data/samplesheets/samplesheet_sistr.csv @@ -1,10 +1,10 @@ sample,sample_name,mikrokondo_data,predicted_identification_name,qc_status_overall,predicted_primary_type_name -SAMPLE1,SALM001,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/SALM001.flat_sample.json.gz,Salmonella_houtenae,PASSED,"IV Y:g,z51:-" -SAMPLE2,SALM002,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/SALM002.flat_sample.json.gz,Salmonella_enterica,FAILED,Souza|Madjorio|Liverpool -SAMPLE3,SALM005,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/SALM005.flat_sample.json.gz,Salmonella_enterica,PASSED,Paratyphi A -SAMPLE4,SALM008,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/SALM008.flat_sample.json.gz,Salmonella enterica,PASSED,IIIb Y:z52:z -SAMPLE5,SALM009,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/SALM009.flat_sample.json.gz,Salmonella_enterica,PASSED,Senftenberg -SAMPLE6,SALM010,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/SALM010.flat_sample.json.gz,Salmonella enterica,PASSED,Umhlali|Adime|Birkenhead|Kivu|Norwich|Kastrup|Menston|Garoli|Daytona|Mkamba|Winston|Nigeria|Oyonnax|Eschweiler|Tienba|Planckendael|Massilia|Wohlen|Brindisi|Adamstua|Heerlen|Sharon|Remete -SAMPLE7,SALM007,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/SALM007.flat_sample.json.gz,Salmonella_enterica,PASSED, -SAMPLE8,SALM011,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/SALM011.flat_sample.json.gz,Salmonella enterica,PASSED,Adelaide|Agodi -SAMPLE9,SALM012,https://raw.githubusercontent.com/phac-nml/typingQC/dev/tests/data/SALM012.flat_sample.json.gz,Salmonella_enterica,PASSED,Ibadan|Mississippi +SAMPLE1,SALM001,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM001.flat_sample.json.gz,Salmonella_houtenae,PASSED,"IV Y:g,z51:-" +SAMPLE2,SALM002,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM002.flat_sample.json.gz,Salmonella_enterica,FAILED,Souza|Madjorio|Liverpool +SAMPLE3,SALM005,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM005.flat_sample.json.gz,Salmonella_enterica,PASSED,Paratyphi A +SAMPLE4,SALM008,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM008.flat_sample.json.gz,Salmonella enterica,PASSED,IIIb Y:z52:z +SAMPLE5,SALM009,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM009.flat_sample.json.gz,Salmonella_enterica,PASSED,Senftenberg +SAMPLE6,SALM010,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM010.flat_sample.json.gz,Salmonella enterica,PASSED,Umhlali|Adime|Birkenhead|Kivu|Norwich|Kastrup|Menston|Garoli|Daytona|Mkamba|Winston|Nigeria|Oyonnax|Eschweiler|Tienba|Planckendael|Massilia|Wohlen|Brindisi|Adamstua|Heerlen|Sharon|Remete +SAMPLE7,SALM007,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM007.flat_sample.json.gz,Salmonella_enterica,PASSED, +SAMPLE8,SALM011,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM011.flat_sample.json.gz,Salmonella enterica,PASSED,Adelaide|Agodi +SAMPLE9,SALM012,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM012.flat_sample.json.gz,Salmonella_enterica,PASSED,Ibadan|Mississippi From dc83ff0cdc1f9983792efbc1bb689c357545fe09 Mon Sep 17 00:00:00 2001 From: kylacochrane Date: Fri, 3 Jul 2026 16:15:39 -0400 Subject: [PATCH 07/14] Updated linting --- .github/workflows/linting_comment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 95b6b6a..42e519b 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download lint results - uses: dawidd6/action-download-artifact@20319c5641d495c8a52e688b7dc5fada6c3a9fbc # v8 + uses: dawidd6/action-download-artifact@bf251b5aa9c2f7eeb574a96ee720e24f801b7c11 # v6 with: workflow: linting.yml workflow_conclusion: completed From df4bb83ed38bcb0a280b091fa1d30a60c7f97dde Mon Sep 17 00:00:00 2001 From: kylacochrane Date: Wed, 8 Jul 2026 15:45:05 -0400 Subject: [PATCH 08/14] Updated test data --- tests/data/SALM002.flat_sample.json.gz | Bin 5672 -> 4807 bytes .../samplesheets/samplesheet_sequence.csv | 2 +- tests/data/samplesheets/samplesheet_sistr.csv | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/SALM002.flat_sample.json.gz b/tests/data/SALM002.flat_sample.json.gz index 1ce657aa5b0c74ff548b55e4cf3b322d1cf63ca1..91aa4c1d81ab195c93ac80ab1f78489c8cddf8a1 100644 GIT binary patch literal 4807 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 literal 5672 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 diff --git a/tests/data/samplesheets/samplesheet_sequence.csv b/tests/data/samplesheets/samplesheet_sequence.csv index 1e71b1e..fd55b6f 100644 --- a/tests/data/samplesheets/samplesheet_sequence.csv +++ b/tests/data/samplesheets/samplesheet_sequence.csv @@ -1,6 +1,6 @@ sample,sample_name,mikrokondo_data,predicted_identification_name,qc_status_overall,predicted_primary_type_name SAMPLE1,SALM001,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM001.flat_sample.json.gz,Salmonella_houtenae,PASSED,"IV Y:g,z51:-" -SAMPLE2,SALM002,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM002.flat_sample.json.gz,Salmonella_enterica,FAILED,Souza|Madjorio|Liverpool +SAMPLE2,SALM002,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM002.flat_sample.json.gz,Salmonella_diarizonae,FAILED,"IIIb T:z35:z35" SAMPLE4,SALM005,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM005.flat_sample.json.gz,Salmonella_enterica,PASSED,Paratyphi A SAMPLE6,CAMP001,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/CAMP001.flat_sample.json.gz,Campylobacter coli,FAILED, SAMPLE7,EC004,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/EC004.flat_sample.json.gz,Escherichia coli,FAILED,O103:H2 diff --git a/tests/data/samplesheets/samplesheet_sistr.csv b/tests/data/samplesheets/samplesheet_sistr.csv index f933093..4ceb4f6 100644 --- a/tests/data/samplesheets/samplesheet_sistr.csv +++ b/tests/data/samplesheets/samplesheet_sistr.csv @@ -1,6 +1,6 @@ sample,sample_name,mikrokondo_data,predicted_identification_name,qc_status_overall,predicted_primary_type_name SAMPLE1,SALM001,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM001.flat_sample.json.gz,Salmonella_houtenae,PASSED,"IV Y:g,z51:-" -SAMPLE2,SALM002,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM002.flat_sample.json.gz,Salmonella_enterica,FAILED,Souza|Madjorio|Liverpool +SAMPLE2,SALM002,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM002.flat_sample.json.gz,Salmonella_diarizonae,FAILED,"IIIb T:z35:z35" SAMPLE3,SALM005,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM005.flat_sample.json.gz,Salmonella_enterica,PASSED,Paratyphi A SAMPLE4,SALM008,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM008.flat_sample.json.gz,Salmonella enterica,PASSED,IIIb Y:z52:z SAMPLE5,SALM009,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM009.flat_sample.json.gz,Salmonella_enterica,PASSED,Senftenberg From abe96cc829a1510b2503a0d43aa3d03f6e5ad7e4 Mon Sep 17 00:00:00 2001 From: kylacochrane Date: Thu, 9 Jul 2026 11:05:39 -0400 Subject: [PATCH 09/14] Update test data --- tests/data/SALM002.flat_sample.json.gz | Bin 4807 -> 4812 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/data/SALM002.flat_sample.json.gz b/tests/data/SALM002.flat_sample.json.gz index 91aa4c1d81ab195c93ac80ab1f78489c8cddf8a1..81ca2d72edd4eb7cebb1235c3301adcdfd714629 100644 GIT binary patch literal 4812 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 From 2ebe88a1c6f5b1c59e9f95e1ce30b493e90c9ca0 Mon Sep 17 00:00:00 2001 From: kylacochrane Date: Fri, 10 Jul 2026 15:35:25 -0400 Subject: [PATCH 10/14] Update test samplesheet for SISTR --- tests/data/samplesheets/samplesheet_sistr.csv | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/data/samplesheets/samplesheet_sistr.csv b/tests/data/samplesheets/samplesheet_sistr.csv index 4ceb4f6..3f78501 100644 --- a/tests/data/samplesheets/samplesheet_sistr.csv +++ b/tests/data/samplesheets/samplesheet_sistr.csv @@ -8,3 +8,5 @@ SAMPLE6,SALM010,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests SAMPLE7,SALM007,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM007.flat_sample.json.gz,Salmonella_enterica,PASSED, SAMPLE8,SALM011,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM011.flat_sample.json.gz,Salmonella enterica,PASSED,Adelaide|Agodi SAMPLE9,SALM012,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM012.flat_sample.json.gz,Salmonella_enterica,PASSED,Ibadan|Mississippi +SAMPLE10,SALM013,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM013.flat_sample.json.gz,Salmonella enterica,PASSED,Panama +SAMPLE11,SALM014,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM014.flat_sample.json.gz,Salmonella enterica,PASSED,Sendai From ac3f3831d32f1e938b6c1acd58442b0679e97cb6 Mon Sep 17 00:00:00 2001 From: kylacochrane Date: Fri, 10 Jul 2026 15:52:32 -0400 Subject: [PATCH 11/14] Add new test samples for SISTRQC features --- tests/data/SALM013.flat_sample.json.gz | Bin 0 -> 4340 bytes tests/data/SALM014.flat_sample.json.gz | Bin 0 -> 6355 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/data/SALM013.flat_sample.json.gz create mode 100644 tests/data/SALM014.flat_sample.json.gz diff --git a/tests/data/SALM013.flat_sample.json.gz b/tests/data/SALM013.flat_sample.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..983e6ca10f8458ccd23fed2b338a3390d562edbf GIT binary patch literal 4340 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 literal 0 HcmV?d00001 diff --git a/tests/data/SALM014.flat_sample.json.gz b/tests/data/SALM014.flat_sample.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..d3a33773eac67c50c33415459657f02a295b6727 GIT binary patch literal 6355 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 VYa+a7^9hfq$3FvS9JgY literal 0 HcmV?d00001 From 52f0d91043f944b4203cdd2f8b4f9b62babcfdc5 Mon Sep 17 00:00:00 2001 From: kylacochrane Date: Mon, 13 Jul 2026 16:39:17 -0400 Subject: [PATCH 12/14] Updated tests for SISTR outputs --- tests/data/samplesheets/samplesheet_sistr.csv | 2 +- tests/pipelines/main.nf.test | 66 +++++++++++++++++-- 2 files changed, 60 insertions(+), 8 deletions(-) diff --git a/tests/data/samplesheets/samplesheet_sistr.csv b/tests/data/samplesheets/samplesheet_sistr.csv index 3f78501..1eea2fb 100644 --- a/tests/data/samplesheets/samplesheet_sistr.csv +++ b/tests/data/samplesheets/samplesheet_sistr.csv @@ -8,5 +8,5 @@ SAMPLE6,SALM010,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests SAMPLE7,SALM007,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM007.flat_sample.json.gz,Salmonella_enterica,PASSED, SAMPLE8,SALM011,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM011.flat_sample.json.gz,Salmonella enterica,PASSED,Adelaide|Agodi SAMPLE9,SALM012,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM012.flat_sample.json.gz,Salmonella_enterica,PASSED,Ibadan|Mississippi -SAMPLE10,SALM013,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM013.flat_sample.json.gz,Salmonella enterica,PASSED,Panama +SAMPLE10,SALM013,/root/working_directory/pipeline_dev/typingQC/tests/data/SALM013.flat_sample.json.gz,Salmonella enterica,PASSED,Panama SAMPLE11,SALM014,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM014.flat_sample.json.gz,Salmonella enterica,PASSED,Sendai diff --git a/tests/pipelines/main.nf.test b/tests/pipelines/main.nf.test index 9caf0c1..249a01b 100644 --- a/tests/pipelines/main.nf.test +++ b/tests/pipelines/main.nf.test @@ -92,10 +92,10 @@ nextflow_pipeline { assert values[0] == "SAMPLE2" assert values[1] == "SALM002" assert values[2].contains("[SEQ_FAIL] Sample may be contaminated.") - assert values[3].contains("[FAILED n50_value] 2038") - assert values[3].contains("[FAILED nr_contigs] 1712") - assert values[3].contains("[FAILED length] 3525632") - assert values[3].contains("[FAILED checkm_contamination] 4.2") + assert values[3].contains("[FAILED n50_value] 87033") + assert values[3].contains("[FAILED nr_contigs] 257") + assert values[3].contains("[FAILED length] 6443773") + assert values[3].contains("[FAILED checkm2_contamination] 6.35") def outputFile2 = path("$launchDir/results/sequenceqc/EC004_sequenceQC.csv") assert outputFile2.exists() @@ -181,6 +181,7 @@ nextflow_pipeline { assert path("$launchDir/results/merge/TypingQC_inputs.csv").exists() assert path("$launchDir/results/sequenceqc/SALM002_sequenceQC.csv").exists() assert path("$launchDir/results/sistrqc/SALM012_sistrQC.csv").exists() + assert path("$launchDir/results/sistrqc/SALM014_sistrQC.csv").exists() def outputFile_salm = path("$launchDir/results/sistrqc/SALM001_sistrQC.csv") assert outputFile_salm.exists() @@ -291,9 +292,60 @@ nextflow_pipeline { assert header_salm8 == ["sample", "sample_name", "typingQC_message", "quality_metrics"] assert values_salm8[0] == "SAMPLE2" assert values_salm8[1] == "SALM002" - assert values_salm8[2].contains("[SISTR_FAIL] Serotyping unsuccessful. RESEQUENCING or TRADITIONAL SEROTYPING is advised.") - assert values_salm8[3].contains("FAIL: Large number of cgMLST330 loci missing (n=149 > 30)") - } + assert values_salm8[2].contains("[TYPE_FAIL]") + assert values_salm8[3].contains("WARNING: Input genome size (6443773 bp) not within expected range of 4000000-6000000 (bp) for Salmonella") + + def outputFile_salm9 = path("$launchDir/results/sistrqc/SALM013_sistrQC.csv") + assert outputFile_salm9.exists() + + // Read CSV into rows + def csv_salm9 = outputFile_salm9.readLines() + def header_salm9 = csv_salm9[0].split(",") + def values_salm9 = csv_salm9[1].split(",",4) // Only split first 3 commas (4 columns) + + assert header_salm9 == ["sample", "sample_name", "typingQC_message", "quality_metrics"] + assert values_salm9[0] == "SAMPLE10" + assert values_salm9[1] == "SALM013" + assert values_salm9[2].contains("[SISTR_PASS]") + + def outputFile_salm10 = path("$launchDir/results/sistrqc/SALM014_sistrQC.csv") + assert outputFile_salm10.exists() + + // Read CSV into rows + def csv_salm10 = outputFile_salm10.readLines() + def header_salm10 = csv_salm10[0].split(",") + def values_salm10 = csv_salm10[1].split(",",4) // Only split first 3 commas (4 columns) + + assert header_salm10 == ["sample", "sample_name", "typingQC_message", "quality_metrics"] + assert values_salm10[0] == "SAMPLE11" + assert values_salm10[1] == "SALM014" + assert values_salm10[2].contains("[SISTR_PASS]") + assert values_salm10[3].contains("WARNING: Wzx/Wzy genes missing. Cannot determine O-antigen serogroup.") + + // check TypingQC_report csv file to ensure serovar updates are successful for sistrQC + + def outputFileQC = path("$launchDir/results/serotype/TypingQC_report.csv") + assert outputFileQC.exists() + + // Read CSV into rows + def csvQC = outputFileQC.readLines() + def headerQC = csvQC[0].split(",") + def valuesQC = csvQC[2].split(",", 7) + def valuesQC2 = csvQC[3].split(",", 7) + + assert headerQC == ["sample", "sample_name", "typingQC_message", "quality_metrics", "Validated_Toxins", "Validated_STXSubtypes", "Validated_Serotype"] + assert valuesQC[0] == "SAMPLE10" + assert valuesQC[1] == "SALM013" + assert valuesQC[2].contains("[SISTR_PASS]") + assert valuesQC[3].isEmpty() + assert valuesQC[6].contains("Panama/Houston") + assert valuesQC2[0] == "SAMPLE11" + assert valuesQC2[1] == "SALM014" + assert valuesQC2[2].contains("[SISTR_PASS]") + assert valuesQC2[3].contains("WARNING: Wzx/Wzy genes missing. Cannot determine O-antigen serogroup.; WARNING: Predicted serovar Sendai has been reported as Miami to conform with current CDC serovar nomenclature.") + assert valuesQC2[4].isEmpty() + assert valuesQC2[6].contains("Miami") + } } test("SISTR module without reportable serovar input"){ From aea4ebdf441fea6e77293424ec6f7963e72740dc Mon Sep 17 00:00:00 2001 From: kylacochrane Date: Tue, 14 Jul 2026 10:11:43 -0400 Subject: [PATCH 13/14] Fixed test data samplesheet --- tests/data/samplesheets/samplesheet_sistr.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/samplesheets/samplesheet_sistr.csv b/tests/data/samplesheets/samplesheet_sistr.csv index 1eea2fb..3f78501 100644 --- a/tests/data/samplesheets/samplesheet_sistr.csv +++ b/tests/data/samplesheets/samplesheet_sistr.csv @@ -8,5 +8,5 @@ SAMPLE6,SALM010,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests SAMPLE7,SALM007,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM007.flat_sample.json.gz,Salmonella_enterica,PASSED, SAMPLE8,SALM011,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM011.flat_sample.json.gz,Salmonella enterica,PASSED,Adelaide|Agodi SAMPLE9,SALM012,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM012.flat_sample.json.gz,Salmonella_enterica,PASSED,Ibadan|Mississippi -SAMPLE10,SALM013,/root/working_directory/pipeline_dev/typingQC/tests/data/SALM013.flat_sample.json.gz,Salmonella enterica,PASSED,Panama +SAMPLE10,SALM013,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM013.flat_sample.json.gz,Salmonella enterica,PASSED,Panama SAMPLE11,SALM014,https://raw.githubusercontent.com/phac-nml/typingQC/update/tests/data/SALM014.flat_sample.json.gz,Salmonella enterica,PASSED,Sendai From 549135555e762cdbca46c466588940ec3102c2f7 Mon Sep 17 00:00:00 2001 From: kylacochrane Date: Tue, 14 Jul 2026 15:06:52 -0400 Subject: [PATCH 14/14] Updating linting.yml file --- .github/workflows/linting.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index dbd52d5..392ddef 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -35,6 +35,7 @@ jobs: - name: Install Nextflow uses: nf-core/setup-nextflow@v2 + version: 25.10 - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5 with: