From cfa04425a53ff5288a85b8f9b948286254e9c490 Mon Sep 17 00:00:00 2001 From: bbimber Date: Tue, 20 Jun 2023 09:44:52 -0700 Subject: [PATCH 01/58] Correct ExtendedFuncotator arguments --- mGAP/src/org/labkey/mgap/pipeline/FuncotatorWrapper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mGAP/src/org/labkey/mgap/pipeline/FuncotatorWrapper.java b/mGAP/src/org/labkey/mgap/pipeline/FuncotatorWrapper.java index 5cdde9bf0..f6495375a 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/FuncotatorWrapper.java +++ b/mGAP/src/org/labkey/mgap/pipeline/FuncotatorWrapper.java @@ -25,7 +25,7 @@ public void runFuncotator(File dataDir, File input, File output, ReferenceGenome { getLogger().info("Annotating VCF with Funcotator"); - List params = new ArrayList<>(getBaseArgs()); + List params = new ArrayList<>(getBaseArgs("ExtendedFuncotator")); params.add("-R"); params.add(genome.getWorkingFastaFile().getPath()); From 7b08af22c99a328a1479f4fb7fe994304e424be7 Mon Sep 17 00:00:00 2001 From: bbimber Date: Tue, 20 Jun 2023 10:56:42 -0700 Subject: [PATCH 02/58] Correct ExtendedFuncotator arguments --- mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java b/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java index 10daf3009..49fc9fa29 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java +++ b/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java @@ -428,7 +428,7 @@ public Output processVariants(File inputVCF, File outputDirectory, ReferenceGeno { //we can assume splitting happened upstream, so run over the full VCF FuncotatorWrapper fr = new FuncotatorWrapper(getPipelineCtx().getLogger()); - fr.runFuncotator(funcotatorSourceDir, liftedToGRCh37, snpSiftAnnotated, genome); + fr.runFuncotator(funcotatorSourceDir, liftedToGRCh37, snpSiftAnnotated, grch37Genome); } else { From 720289729abbae620a7df25f585e35bdf2c5a599 Mon Sep 17 00:00:00 2001 From: bbimber Date: Wed, 21 Jun 2023 12:35:05 -0700 Subject: [PATCH 03/58] Correct ExtendedFuncotator arguments --- mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java b/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java index 49fc9fa29..e20850b5b 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java +++ b/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java @@ -428,7 +428,7 @@ public Output processVariants(File inputVCF, File outputDirectory, ReferenceGeno { //we can assume splitting happened upstream, so run over the full VCF FuncotatorWrapper fr = new FuncotatorWrapper(getPipelineCtx().getLogger()); - fr.runFuncotator(funcotatorSourceDir, liftedToGRCh37, snpSiftAnnotated, grch37Genome); + fr.runFuncotator(funcotatorSourceDir, liftedToGRCh37, funcotatorAnnotated, grch37Genome); } else { From a2f245973d3bea8577d2977836f0497c0f700fa9 Mon Sep 17 00:00:00 2001 From: bbimber Date: Thu, 22 Jun 2023 15:56:21 -0700 Subject: [PATCH 04/58] Allow ExtendedFuncotator to skip MT --- .../labkey/mgap/pipeline/AnnotationStep.java | 18 +++++++++++++++++- .../mgap/pipeline/FuncotatorWrapper.java | 8 +++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java b/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java index e20850b5b..f3a845744 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java +++ b/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java @@ -93,6 +93,10 @@ public Provider() {{ put("checked", true); }}, true), + ToolParameterDescriptor.create("funcotatorExcludedContigs", "Excluded Funcotator Contigs", "A comma-separated list of contigs to exclude from Funcotator", "textfield", new JSONObject() + {{ + + }}, "MT"), ToolParameterDescriptor.create("dropFiltered", "Drop Filtered Sites", "If checked, filtered sites will be discarded, which can substantially improve speed.", "checkbox", new JSONObject() {{ put("checked", true); @@ -428,7 +432,19 @@ public Output processVariants(File inputVCF, File outputDirectory, ReferenceGeno { //we can assume splitting happened upstream, so run over the full VCF FuncotatorWrapper fr = new FuncotatorWrapper(getPipelineCtx().getLogger()); - fr.runFuncotator(funcotatorSourceDir, liftedToGRCh37, funcotatorAnnotated, grch37Genome); + + List extraArgs = new ArrayList<>(); + String excludedContigs = StringUtils.trimToNull(getProvider().getParameterByName("funcotatorExcludedContigs").extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), String.class, null)); + if (excludedContigs != null) + { + for (String token : excludedContigs.split(",")) + { + extraArgs.add("-XL"); + extraArgs.add(token); + } + } + + fr.runFuncotator(funcotatorSourceDir, liftedToGRCh37, funcotatorAnnotated, grch37Genome, extraArgs); } else { diff --git a/mGAP/src/org/labkey/mgap/pipeline/FuncotatorWrapper.java b/mGAP/src/org/labkey/mgap/pipeline/FuncotatorWrapper.java index f6495375a..88efc0330 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/FuncotatorWrapper.java +++ b/mGAP/src/org/labkey/mgap/pipeline/FuncotatorWrapper.java @@ -1,6 +1,7 @@ package org.labkey.mgap.pipeline; import org.apache.logging.log4j.Logger; +import org.jetbrains.annotations.Nullable; import org.labkey.api.pipeline.PipelineJobException; import org.labkey.api.sequenceanalysis.SequenceAnalysisService; import org.labkey.api.sequenceanalysis.pipeline.ReferenceGenome; @@ -21,7 +22,7 @@ public FuncotatorWrapper(Logger log) super(log); } - public void runFuncotator(File dataDir, File input, File output, ReferenceGenome genome) throws PipelineJobException + public void runFuncotator(File dataDir, File input, File output, ReferenceGenome genome, @Nullable List extraArgs) throws PipelineJobException { getLogger().info("Annotating VCF with Funcotator"); @@ -48,6 +49,11 @@ public void runFuncotator(File dataDir, File input, File output, ReferenceGenome params.add("-O"); params.add(output.getPath()); + if (extraArgs != null) + { + params.addAll(extraArgs); + } + execute(params); if (!output.exists()) From 09ded56e016f573b74ac6e7fb227cf841dc97136 Mon Sep 17 00:00:00 2001 From: bbimber Date: Thu, 22 Jun 2023 18:36:17 -0700 Subject: [PATCH 05/58] Add option to print missing fields for ExtendedFuncotator --- mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java b/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java index f3a845744..b10b5a16c 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java +++ b/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java @@ -93,6 +93,10 @@ public Provider() {{ put("checked", true); }}, true), + ToolParameterDescriptor.create("printMissingFields", "Print Unused Funcotator Fields", "If checked, a list of all fields present in the data sources but not included in the output will be printed.", "checkbox", new JSONObject() + {{ + + }}, false), ToolParameterDescriptor.create("funcotatorExcludedContigs", "Excluded Funcotator Contigs", "A comma-separated list of contigs to exclude from Funcotator", "textfield", new JSONObject() {{ @@ -444,6 +448,12 @@ public Output processVariants(File inputVCF, File outputDirectory, ReferenceGeno } } + boolean printMissingFields = getProvider().getParameterByName("printMissingFields").extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), Boolean.class, false); + if (printMissingFields) + { + extraArgs.add("-pmf"); + } + fr.runFuncotator(funcotatorSourceDir, liftedToGRCh37, funcotatorAnnotated, grch37Genome, extraArgs); } else From d031a26cfb27ad64ab98c554494973d7a7f14ddd Mon Sep 17 00:00:00 2001 From: bbimber Date: Thu, 29 Jun 2023 10:18:29 -0700 Subject: [PATCH 06/58] Specify the list of SnpSift fields to include --- mGAP/src/org/labkey/mgap/pipeline/SnpSiftWrapper.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mGAP/src/org/labkey/mgap/pipeline/SnpSiftWrapper.java b/mGAP/src/org/labkey/mgap/pipeline/SnpSiftWrapper.java index 1057086d1..37babe26e 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/SnpSiftWrapper.java +++ b/mGAP/src/org/labkey/mgap/pipeline/SnpSiftWrapper.java @@ -38,6 +38,9 @@ public void runSnpSift(File dbnsfpFile, File input, File output) throws Pipeline params.add("-noDownload"); + params.add("-f"); + params.add("SIFT_score,SIFT_converted_rankscore,SIFT_pred,SIFT4G_score,SIFT4G_converted_rankscore,SIFT4G_pred,Polyphen2_HDIV_score,Polyphen2_HDIV_rankscore,Polyphen2_HDIV_pred,Polyphen2_HVAR_score,Polyphen2_HVAR_rankscore,Polyphen2_HVAR_pred,LRT_score,LRT_converted_rankscore,LRT_pred,LRT_Omega,MutationTaster_score,MutationTaster_converted_rankscore,MutationTaster_pred,MutationTaster_model,MutationTaster_AAE,MutationAssessor_score,MutationAssessor_rankscore,MutationAssessor_pred,FATHMM_score,FATHMM_converted_rankscore,FATHMM_pred,PROVEAN_score,PROVEAN_converted_rankscore,PROVEAN_pred,VEST4_score,VEST4_rankscore,MetaSVM_score,MetaSVM_rankscore,MetaSVM_pred,MetaLR_score,MetaLR_rankscore,MetaLR_pred,Reliability_index,M-CAP_score,M-CAP_rankscore,M-CAP_pred,REVEL_score,REVEL_rankscore,MutPred_score,MutPred_rankscore,MutPred_protID,MutPred_AAchange,MutPred_Top5features,MVP_score,MVP_rankscore,MPC_score,MPC_rankscore,PrimateAI_score,PrimateAI_rankscore,PrimateAI_pred,DEOGEN2_score,DEOGEN2_rankscore,DEOGEN2_pred,BayesDel_addAF_score,BayesDel_addAF_rankscore,BayesDel_addAF_pred,BayesDel_noAF_score,BayesDel_noAF_rankscore,BayesDel_noAF_pred,LIST-S2_score,LIST-S2_rankscore,LIST-S2_pred,Aloft_Fraction_transcripts_affected,Aloft_prob_Tolerant,Aloft_prob_Recessive,Aloft_prob_Dominant,Aloft_pred,Aloft_Confidence,DANN_score,DANN_rankscore,fathmm-MKL_coding_score,fathmm-MKL_coding_rankscore,fathmm-MKL_coding_pred,fathmm-MKL_coding_group,fathmm-XF_coding_score,fathmm-XF_coding_rankscore,fathmm-XF_coding_pred,Eigen-raw_coding,Eigen-raw_coding_rankscore,Eigen-phred_coding,Eigen-PC-raw_coding,Eigen-PC-raw_coding_rankscore,Eigen-PC-phred_coding,GenoCanyon_score,GenoCanyon_rankscore,integrated_fitCons_score,integrated_fitCons_rankscore,integrated_confidence_value,GM12878_fitCons_score,GM12878_fitCons_rankscore,GM12878_confidence_value,H1-hESC_fitCons_score,H1-hESC_fitCons_rankscore,H1-hESC_confidence_value,HUVEC_fitCons_score,HUVEC_fitCons_rankscore,HUVEC_confidence_value,LINSIGHT,LINSIGHT_rankscore,GERP++_NR,GERP++_RS,GERP++_RS_rankscore,phyloP100way_vertebrate,phyloP100way_vertebrate_rankscore,phyloP30way_mammalian,phyloP30way_mammalian_rankscore,phyloP17way_primate,phyloP17way_primate_rankscore,phastCons100way_vertebrate,phastCons100way_vertebrate_rankscore,phastCons30way_mammalian,phastCons30way_mammalian_rankscore,phastCons17way_primate,phastCons17way_primate_rankscore"); + params.add(input.getPath()); File unzippedVcf = new File(getOutputDir(output), "snpSift.vcf"); From 67abe4d7619416de915c935e87a0076a6240a26b Mon Sep 17 00:00:00 2001 From: bbimber Date: Thu, 29 Jun 2023 17:33:55 -0700 Subject: [PATCH 07/58] Basic support for GroupCompare tool --- mGAP/src/org/labkey/mgap/mGAPModule.java | 2 + .../mgap/pipeline/GroupCompareStep.java | 137 ++++++++++++++++++ 2 files changed, 139 insertions(+) create mode 100644 mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java diff --git a/mGAP/src/org/labkey/mgap/mGAPModule.java b/mGAP/src/org/labkey/mgap/mGAPModule.java index 0022c73cf..20108cc37 100644 --- a/mGAP/src/org/labkey/mgap/mGAPModule.java +++ b/mGAP/src/org/labkey/mgap/mGAPModule.java @@ -42,6 +42,7 @@ import org.labkey.mgap.buttons.ReleaseButton; import org.labkey.mgap.pipeline.AnnotationStep; import org.labkey.mgap.pipeline.GenerateMgapTracksStep; +import org.labkey.mgap.pipeline.GroupCompareStep; import org.labkey.mgap.pipeline.RemoveAnnotationsForMgapStep; import org.labkey.mgap.pipeline.RenameSamplesForMgapStep; import org.labkey.mgap.pipeline.SampleSpecificGenotypeFiltrationStep; @@ -115,6 +116,7 @@ public PipelineStartup() { SequenceAnalysisService.get().registerFileHandler(new mGapReleaseGenerator()); SequencePipelineService.get().registerPipelineStep(new AnnotationStep.Provider()); + SequencePipelineService.get().registerPipelineStep(new GroupCompareStep.Provider()); SequencePipelineService.get().registerPipelineStep(new RemoveAnnotationsForMgapStep.Provider()); SequencePipelineService.get().registerPipelineStep(new RenameSamplesForMgapStep.Provider()); SequencePipelineService.get().registerPipelineStep(new VcfComparisonStep.Provider()); diff --git a/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java b/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java new file mode 100644 index 000000000..9138824e8 --- /dev/null +++ b/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java @@ -0,0 +1,137 @@ +package org.labkey.mgap.pipeline; + +import htsjdk.samtools.util.Interval; +import org.apache.logging.log4j.Logger; +import org.json.JSONObject; +import org.labkey.api.pipeline.PipelineJobException; +import org.labkey.api.sequenceanalysis.SequenceAnalysisService; +import org.labkey.api.sequenceanalysis.pipeline.AbstractVariantProcessingStepProvider; +import org.labkey.api.sequenceanalysis.pipeline.PipelineContext; +import org.labkey.api.sequenceanalysis.pipeline.PipelineStepProvider; +import org.labkey.api.sequenceanalysis.pipeline.ReferenceGenome; +import org.labkey.api.sequenceanalysis.pipeline.ToolParameterDescriptor; +import org.labkey.api.sequenceanalysis.pipeline.VariantProcessingStep; +import org.labkey.api.sequenceanalysis.pipeline.VariantProcessingStepOutputImpl; +import org.labkey.api.sequenceanalysis.run.AbstractCommandPipelineStep; +import org.labkey.api.sequenceanalysis.run.AbstractDiscvrSeqWrapper; + +import javax.annotation.Nullable; +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +/** + * User: bimber + * Date: 6/15/2014 + * Time: 12:39 PM + */ +public class GroupCompareStep extends AbstractCommandPipelineStep implements VariantProcessingStep +{ + public static final String REF_VCF = "refVcf"; + public static String GROUP1 = "group1"; + public static String GROUP2 = "group2"; + + + public GroupCompareStep(PipelineStepProvider provider, PipelineContext ctx) + { + super(provider, ctx, new GroupComparison(ctx.getLogger())); + } + + public static class Provider extends AbstractVariantProcessingStepProvider implements SupportsScatterGather + { + public Provider() + { + super("GroupCompare", "Group Comparison", "DISCVRseq/GroupCompare", "This is designed to help with sifting and prioritizing variants. It will generate a VCF limited to just the samples in group 1 (and group 2 if provided). It will compare the AF, N_HOMVAR, N_HOMREF, and N_HET within each group. If a reference VCF is provided (e.g., population-level data), these values will also be computed on that dataset. The resulting VCF is designed to be the starting point for secondary filtering.", List.of( + ToolParameterDescriptor.create(GROUP1, "Group 1 Sample(s)", "Only variants of the selected type(s) will be included", "sequenceanalysis-trimmingtextarea", new JSONObject(){{ + put("allowBlank", false); + }}, null), + ToolParameterDescriptor.create(GROUP2, "Group 2 Sample(s)", "Optional. Only variants of the selected type(s) will be included", "sequenceanalysis-trimmingtextarea", null, null), + ToolParameterDescriptor.createExpDataParam(REF_VCF, "Reference VCF", "This is the file ID of the VCF to use as the reference.", "ldk-expdatafield", new JSONObject() + {{ + put("allowBlank", false); + }}, null) + ), null, null); + } + + @Override + public GroupCompareStep create(PipelineContext ctx) + { + return new GroupCompareStep(this, ctx); + } + } + + @Override + public Output processVariants(File inputVCF, File outputDirectory, ReferenceGenome genome, @Nullable List intervals) throws PipelineJobException + { + VariantProcessingStepOutputImpl output = new VariantProcessingStepOutputImpl(); + getPipelineCtx().getLogger().info("Running GroupCompare"); + + Integer refFileId = getProvider().getParameterByName(REF_VCF).extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), Integer.class); + + List extraArgs = new ArrayList<>(); + if (intervals != null) + { + intervals.forEach(interval -> { + extraArgs.add("-L"); + extraArgs.add(interval.getContig() + ":" + interval.getStart() + "-" + interval.getEnd()); + }); + } + + File refVcf = getPipelineCtx().getSequenceSupport().getCachedData(refFileId); + if (refVcf == null || !refVcf.exists()) + { + extraArgs.add("-RV"); + extraArgs.add(refVcf.getPath()); + } + + File outputVcf = new File(outputDirectory, SequenceAnalysisService.get().getUnzippedBaseName(inputVCF.getName()) + ".gc.vcf.gz"); + File outputTable = new File(outputDirectory, SequenceAnalysisService.get().getUnzippedBaseName(inputVCF.getName()) + ".gc.txt"); + + getWrapper().runTool(inputVCF, refVcf, outputTable, genome.getWorkingFastaFile(), extraArgs); + if (!outputTable.exists()) + { + throw new PipelineJobException("Unable to find output: " + outputTable.getPath()); + } + + output.addInput(inputVCF, "Input VCF"); + output.addInput(genome.getWorkingFastaFile(), "Reference Genome"); + output.addOutput(outputTable, "GroupCompare Table"); + output.setVcf(outputVcf); + + return output; + } + + public static class GroupComparison extends AbstractDiscvrSeqWrapper + { + public GroupComparison(Logger log) + { + super(log); + } + + public void runTool(File inputVCF, File outputVcf, File outputTable, File genomeFasta, List extraArgs) throws PipelineJobException + { + List args = new ArrayList<>(getBaseArgs()); + args.add("GroupComparison"); + args.add("-R"); + args.add(genomeFasta.getPath()); + + args.add("-V"); + args.add(inputVCF.getPath()); + + args.add("-O"); + args.add(outputVcf.getPath()); + + args.add("-OT"); + args.add(outputTable.getPath()); + + args.add("--ignore-variants-starting-outside-interval"); + + if (extraArgs != null) + { + args.addAll(extraArgs); + } + + execute(args); + } + } +} From 04f12453b6aa05268300896a752ff91a1070afc9 Mon Sep 17 00:00:00 2001 From: bbimber Date: Thu, 29 Jun 2023 23:06:52 -0700 Subject: [PATCH 08/58] Add more options for GroupCompareStep --- .../mgap/pipeline/GroupCompareStep.java | 110 +++++++++++++++++- 1 file changed, 108 insertions(+), 2 deletions(-) diff --git a/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java b/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java index 9138824e8..13c4b1832 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java +++ b/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java @@ -1,23 +1,35 @@ package org.labkey.mgap.pipeline; import htsjdk.samtools.util.Interval; +import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.Logger; +import org.json.JSONArray; import org.json.JSONObject; +import org.labkey.api.pipeline.PipelineJob; import org.labkey.api.pipeline.PipelineJobException; +import org.labkey.api.reader.Readers; import org.labkey.api.sequenceanalysis.SequenceAnalysisService; +import org.labkey.api.sequenceanalysis.SequenceOutputFile; import org.labkey.api.sequenceanalysis.pipeline.AbstractVariantProcessingStepProvider; import org.labkey.api.sequenceanalysis.pipeline.PipelineContext; import org.labkey.api.sequenceanalysis.pipeline.PipelineStepProvider; import org.labkey.api.sequenceanalysis.pipeline.ReferenceGenome; +import org.labkey.api.sequenceanalysis.pipeline.SequenceOutputHandler; +import org.labkey.api.sequenceanalysis.pipeline.TaskFileManager; import org.labkey.api.sequenceanalysis.pipeline.ToolParameterDescriptor; import org.labkey.api.sequenceanalysis.pipeline.VariantProcessingStep; import org.labkey.api.sequenceanalysis.pipeline.VariantProcessingStepOutputImpl; import org.labkey.api.sequenceanalysis.run.AbstractCommandPipelineStep; import org.labkey.api.sequenceanalysis.run.AbstractDiscvrSeqWrapper; +import org.labkey.api.writer.PrintWriters; import javax.annotation.Nullable; +import java.io.BufferedReader; import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -49,8 +61,14 @@ public Provider() ToolParameterDescriptor.createExpDataParam(REF_VCF, "Reference VCF", "This is the file ID of the VCF to use as the reference.", "ldk-expdatafield", new JSONObject() {{ put("allowBlank", false); - }}, null) - ), null, null); + }}, null), + ToolParameterDescriptor.create("selects", "Select Expressions", "Filter expressions that can be used to subset variants. Passing variants will be written to a separate TSV file.", "sequenceanalysis-variantfilterpanel", new JSONObject(){{ + put("mode", "SELECT"); + put("showFilterName", false); + put("title", "Select Expressions"); + }}, null), + ToolParameterDescriptor.create("extraFields", "Additional Fields", "A list of additional fields to include in the table output", "sequenceanalysis-trimmingtextarea", null, null) + ), Arrays.asList("/sequenceanalysis/field/TrimmingTextArea.js", "sequenceanalysis/panel/VariantFilterPanel.js"), null); } @Override @@ -58,6 +76,65 @@ public GroupCompareStep create(PipelineContext ctx) { return new GroupCompareStep(this, ctx); } + + @Override + public void performAdditionalMergeTasks(SequenceOutputHandler.JobContext ctx, PipelineJob job, TaskFileManager manager, ReferenceGenome genome, List orderedScatterOutputs) throws PipelineJobException + { + job.getLogger().info("Merging variant tables"); + List toConcat = orderedScatterOutputs.stream().map(f -> { + f = new File(f.getParentFile(), f.getName().replaceAll("vcf.gz", "txt")); + if (!f.exists()) + { + throw new IllegalStateException("Missing file: " + f.getPath()); + } + + ctx.getFileManager().addIntermediateFile(f); + ctx.getFileManager().addIntermediateFile(new File(f.getPath() + ".tbi")); + + return f; + }).toList(); + + String basename = SequenceAnalysisService.get().getUnzippedBaseName(toConcat.get(0).getName()); + File combined = new File(ctx.getSourceDirectory(), basename + ".txt"); + try (PrintWriter writer = PrintWriters.getPrintWriter(combined)) + { + boolean hasWrittenHeader = false; + for (File f : toConcat) + { + try (BufferedReader reader = Readers.getReader(f)) + { + String line; + int idx = 0; + while ((line = reader.readLine()) != null) + { + idx++; + if (idx == 1) + { + if (!hasWrittenHeader) { + writer.println(line); + hasWrittenHeader = true; + } + } + else + { + writer.println(line); + } + } + } + } + } + catch (IOException e) + { + throw new PipelineJobException(e); + } + + SequenceOutputFile so = new SequenceOutputFile(); + so.setName(basename + ": Selected Variants"); + so.setFile(combined); + so.setCategory("Variant List"); + so.setLibrary_id(genome.getGenomeId()); + manager.addSequenceOutput(so); + } } @Override @@ -84,6 +161,35 @@ public Output processVariants(File inputVCF, File outputDirectory, ReferenceGeno extraArgs.add(refVcf.getPath()); } + //JEXL + String selectText = getProvider().getParameterByName("selects").extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), String.class, null); + if (selectText != null) + { + JSONArray filterArr = new JSONArray(selectText); + for (int i = 0; i < filterArr.length(); i++) + { + JSONArray arr = filterArr.getJSONArray(i); + if (arr.length() < 2) + { + throw new PipelineJobException("Improper select expression: " + filterArr.getString(i)); + } + + extraArgs.add("-select"); + extraArgs.add(arr.getString(1)); + } + } + + String fieldsText = StringUtils.trimToNull(getProvider().getParameterByName("extraFields").extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), String.class, null)); + if (fieldsText != null) + { + String[] names = fieldsText.split(";"); + for (String name : names) + { + extraArgs.add("-F"); + extraArgs.add(name); + } + } + File outputVcf = new File(outputDirectory, SequenceAnalysisService.get().getUnzippedBaseName(inputVCF.getName()) + ".gc.vcf.gz"); File outputTable = new File(outputDirectory, SequenceAnalysisService.get().getUnzippedBaseName(inputVCF.getName()) + ".gc.txt"); From 0e7d3e452077929e7ab41f123024ae4cfe2c7ef5 Mon Sep 17 00:00:00 2001 From: bbimber Date: Fri, 30 Jun 2023 06:57:37 -0700 Subject: [PATCH 09/58] Update variant filter panel --- mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java b/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java index 13c4b1832..b1a3166f3 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java +++ b/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java @@ -217,7 +217,7 @@ public GroupComparison(Logger log) public void runTool(File inputVCF, File outputVcf, File outputTable, File genomeFasta, List extraArgs) throws PipelineJobException { List args = new ArrayList<>(getBaseArgs()); - args.add("GroupComparison"); + args.add("GroupCompare"); args.add("-R"); args.add(genomeFasta.getPath()); From 192c30555f151c24a743dea22dc090f48d838e99 Mon Sep 17 00:00:00 2001 From: bbimber Date: Fri, 30 Jun 2023 08:51:52 -0700 Subject: [PATCH 10/58] Correct arguments for GroupCompareStep --- .../mgap/pipeline/GroupCompareStep.java | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java b/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java index b1a3166f3..3912b8f73 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java +++ b/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java @@ -214,7 +214,7 @@ public GroupComparison(Logger log) super(log); } - public void runTool(File inputVCF, File outputVcf, File outputTable, File genomeFasta, List extraArgs) throws PipelineJobException + public void runTool(File inputVCF, File outputVcf, File outputTable, File genomeFasta, List group1, @Nullable List group2, List extraArgs) throws PipelineJobException { List args = new ArrayList<>(getBaseArgs()); args.add("GroupCompare"); @@ -232,12 +232,46 @@ public void runTool(File inputVCF, File outputVcf, File outputTable, File genome args.add("--ignore-variants-starting-outside-interval"); + File group1File = new File(outputVcf.getParentFile(), "group1.args"); + File group2File = new File(outputVcf.getParentFile(), "group2.args"); + try (PrintWriter writer = PrintWriters.getPrintWriter(group1File)) + { + group1.forEach(writer::println); + } + catch (IOException e) + { + throw new PipelineJobException(e); + } + args.add("-G1"); + args.add(group1File.getPath()); + + if (group2 != null) + { + try (PrintWriter writer = PrintWriters.getPrintWriter(group2File)) + { + group2.forEach(writer::println); + } + catch (IOException e) + { + throw new PipelineJobException(e); + } + + args.add("-G2"); + args.add(group2File.getPath()); + } + if (extraArgs != null) { args.addAll(extraArgs); } execute(args); + + group1File.delete(); + if (group2File != null) + { + group2File.delete(); + } } } } From 96cda11830988b17e99d017928855fb2e160b8f9 Mon Sep 17 00:00:00 2001 From: bbimber Date: Fri, 30 Jun 2023 08:57:33 -0700 Subject: [PATCH 11/58] Correct arguments for GroupCompareStep, missed with last commit --- .../org/labkey/mgap/pipeline/GroupCompareStep.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java b/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java index 3912b8f73..93f7cf04d 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java +++ b/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java @@ -190,10 +190,22 @@ public Output processVariants(File inputVCF, File outputDirectory, ReferenceGeno } } + String group1Raw = StringUtils.trimToNull(getProvider().getParameterByName(GROUP1).extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), String.class, null)); + List group1 = Arrays.asList(group1Raw.split(";")); + getPipelineCtx().getLogger().info("Total group 1 samples: " + group1.size()); + + String group2Raw = StringUtils.trimToNull(getProvider().getParameterByName(GROUP2).extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), String.class, null)); + List group2 = null; + if (group2Raw != null) + { + group2 = Arrays.asList(group2Raw.split(";")); + getPipelineCtx().getLogger().info("Total group 2 samples: " + group2.size()); + } + File outputVcf = new File(outputDirectory, SequenceAnalysisService.get().getUnzippedBaseName(inputVCF.getName()) + ".gc.vcf.gz"); File outputTable = new File(outputDirectory, SequenceAnalysisService.get().getUnzippedBaseName(inputVCF.getName()) + ".gc.txt"); - getWrapper().runTool(inputVCF, refVcf, outputTable, genome.getWorkingFastaFile(), extraArgs); + getWrapper().runTool(inputVCF, refVcf, outputTable, genome.getWorkingFastaFile(), group1, group2, extraArgs); if (!outputTable.exists()) { throw new PipelineJobException("Unable to find output: " + outputTable.getPath()); From f567aeb9b97834d84b44a1dd22b425e7dea6f0ee Mon Sep 17 00:00:00 2001 From: bbimber Date: Fri, 30 Jun 2023 11:27:39 -0700 Subject: [PATCH 12/58] Correct arguments for GroupCompareStep --- mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java b/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java index 93f7cf04d..26eed1254 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java +++ b/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java @@ -155,7 +155,7 @@ public Output processVariants(File inputVCF, File outputDirectory, ReferenceGeno } File refVcf = getPipelineCtx().getSequenceSupport().getCachedData(refFileId); - if (refVcf == null || !refVcf.exists()) + if (refVcf != null) { extraArgs.add("-RV"); extraArgs.add(refVcf.getPath()); @@ -205,7 +205,7 @@ public Output processVariants(File inputVCF, File outputDirectory, ReferenceGeno File outputVcf = new File(outputDirectory, SequenceAnalysisService.get().getUnzippedBaseName(inputVCF.getName()) + ".gc.vcf.gz"); File outputTable = new File(outputDirectory, SequenceAnalysisService.get().getUnzippedBaseName(inputVCF.getName()) + ".gc.txt"); - getWrapper().runTool(inputVCF, refVcf, outputTable, genome.getWorkingFastaFile(), group1, group2, extraArgs); + getWrapper().runTool(inputVCF, outputVcf, outputTable, genome.getWorkingFastaFile(), group1, group2, extraArgs); if (!outputTable.exists()) { throw new PipelineJobException("Unable to find output: " + outputTable.getPath()); From 4f7e3c8455b2b76f9c0ada32690a76ae28f603c5 Mon Sep 17 00:00:00 2001 From: bbimber Date: Fri, 30 Jun 2023 11:39:51 -0700 Subject: [PATCH 13/58] Try to avoid test timing issues --- mcc/test/src/org/labkey/test/tests/mcc/MccTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java b/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java index f3cf91033..5ac369f69 100644 --- a/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java +++ b/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java @@ -408,8 +408,7 @@ private void waitForCensusToLoad() private void goToAnimalRequests() { - goToProjectHome(); - waitForCensusToLoad(); + beginAt("/mcc/" + getProjectName() + "/begin.view"); waitAndClickAndWait(Locator.tagContainingText("div", "Animal Requests")); waitForElement(Locator.tagWithText("a", "Submit New Animal Request")); } From f7d146f2931ab5e346925e4af338d80915ce70c4 Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 3 Jul 2023 09:06:09 -0700 Subject: [PATCH 14/58] Add initial pipelne job to cleanup extraneous MHC typing results --- .../labkey/primeseq/PrimeseqController.java | 67 ++- .../org/labkey/primeseq/PrimeseqModule.java | 4 +- .../pipeline/MhcCleanupPipelineJob.java | 389 ++++++++++++++++++ primeseq/webapp/WEB-INF/primeseqContext.xml | 6 +- 4 files changed, 460 insertions(+), 6 deletions(-) create mode 100644 primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java diff --git a/primeseq/src/org/labkey/primeseq/PrimeseqController.java b/primeseq/src/org/labkey/primeseq/PrimeseqController.java index fd8d5b993..45f6a046b 100644 --- a/primeseq/src/org/labkey/primeseq/PrimeseqController.java +++ b/primeseq/src/org/labkey/primeseq/PrimeseqController.java @@ -36,6 +36,7 @@ import org.labkey.api.data.SqlExecutor; import org.labkey.api.module.Module; import org.labkey.api.module.ModuleLoader; +import org.labkey.api.pipeline.PipeRoot; import org.labkey.api.pipeline.PipelineJob; import org.labkey.api.pipeline.PipelineJobException; import org.labkey.api.pipeline.PipelineService; @@ -44,6 +45,7 @@ import org.labkey.api.security.RequiresPermission; import org.labkey.api.security.RequiresSiteAdmin; import org.labkey.api.security.permissions.ReadPermission; +import org.labkey.api.security.permissions.UpdatePermission; import org.labkey.api.sequenceanalysis.pipeline.JobResourceSettings; import org.labkey.api.sequenceanalysis.pipeline.ToolParameterDescriptor; import org.labkey.api.util.HtmlString; @@ -52,6 +54,7 @@ import org.labkey.api.view.ActionURL; import org.labkey.api.view.HtmlView; import org.labkey.api.writer.PrintWriters; +import org.labkey.primeseq.pipeline.MhcCleanupPipelineJob; import org.labkey.sequenceanalysis.SequencePipelineServiceImpl; import org.labkey.sequenceanalysis.pipeline.SequenceJob; import org.springframework.validation.BindException; @@ -160,7 +163,7 @@ private List getSection(String path) } @RequiresSiteAdmin - public class EnsureModuleActiveAction extends ConfirmAction + public static class EnsureModuleActiveAction extends ConfirmAction { @Override public ModelAndView getConfirmView(Object o, BindException errors) throws Exception @@ -629,4 +632,66 @@ public Collection getJobRowIds() return ret; } } + + @RequiresPermission(UpdatePermission.class) + public static class PerformMhcCleanupAction extends ConfirmAction + { + @Override + public ModelAndView getConfirmView(PerformMhcCleanupForm o, BindException errors) throws Exception + { + setTitle("Run MHC Maintenance"); + + return new HtmlView(HtmlString.unsafe(HtmlString.of("This will run a pipeline job to delete low-frequency MHC results to save space. Do you want to continue?") + + "
Check box to delete records: " + + "
Min Analysis ID: " + )); + } + + @Override + public boolean handlePost(PerformMhcCleanupForm o, BindException errors) throws Exception + { + PipeRoot pipelineRoot = PipelineService.get().findPipelineRoot(getContainer()); + PipelineService.get().queueJob(new MhcCleanupPipelineJob(getContainer(), getUser(), getViewContext().getActionURL(), pipelineRoot, o.isPerformDeletes(), o.getMinAnalysisId())); + + return true; + } + + @Override + public void validateCommand(PerformMhcCleanupForm o, Errors errors) + { + + } + + @Override + public @NotNull URLHelper getSuccessURL(PerformMhcCleanupForm o) + { + return PageFlowUtil.urlProvider(PipelineUrls.class).urlBegin(getContainer()); + } + } + + public static class PerformMhcCleanupForm + { + private boolean _performDeletes = false; + private int _minAnalysisId = 0; + + public boolean isPerformDeletes() + { + return _performDeletes; + } + + public void setPerformDeletes(boolean performDeletes) + { + _performDeletes = performDeletes; + } + + public int getMinAnalysisId() + { + return _minAnalysisId; + } + + public void setMinAnalysisId(int minAnalysisId) + { + _minAnalysisId = minAnalysisId; + } + } } \ No newline at end of file diff --git a/primeseq/src/org/labkey/primeseq/PrimeseqModule.java b/primeseq/src/org/labkey/primeseq/PrimeseqModule.java index 95f637631..c53988b3e 100644 --- a/primeseq/src/org/labkey/primeseq/PrimeseqModule.java +++ b/primeseq/src/org/labkey/primeseq/PrimeseqModule.java @@ -39,7 +39,7 @@ import org.labkey.primeseq.pipeline.ClusterMaintenanceTask; import org.labkey.primeseq.pipeline.ExacloudResourceSettings; import org.labkey.primeseq.pipeline.GeographicOriginStep; -import org.labkey.primeseq.pipeline.MhcMigrationPipelineJob; +import org.labkey.primeseq.pipeline.MhcCleanupPipelineJob; import org.labkey.primeseq.pipeline.SequenceJobResourceAllocator; import org.labkey.primeseq.query.UpdateResourcesButton; @@ -80,7 +80,7 @@ protected void doStartupAfterSpringConfig(ModuleContext moduleContext) ClusterService.get().registerResourceAllocator(new BlastPipelineJobResourceAllocator.Factory()); ClusterService.get().registerResourceAllocator(new SequenceJobResourceAllocator.Factory()); - PipelineService.get().registerPipelineProvider(new MhcMigrationPipelineJob.Provider(this)); + PipelineService.get().registerPipelineProvider(new MhcCleanupPipelineJob.Provider(this)); //register resources new PipelineStartup(); diff --git a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java new file mode 100644 index 000000000..6c10e6724 --- /dev/null +++ b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java @@ -0,0 +1,389 @@ +package org.labkey.primeseq.pipeline; + +import org.labkey.api.collections.CaseInsensitiveHashMap; +import org.labkey.api.data.CompareType; +import org.labkey.api.data.Container; +import org.labkey.api.data.DbSchema; +import org.labkey.api.data.DbSchemaType; +import org.labkey.api.data.SQLFragment; +import org.labkey.api.data.SimpleFilter; +import org.labkey.api.data.Sort; +import org.labkey.api.data.SqlSelector; +import org.labkey.api.data.Table; +import org.labkey.api.data.TableInfo; +import org.labkey.api.data.TableSelector; +import org.labkey.api.files.FileUrls; +import org.labkey.api.module.Module; +import org.labkey.api.pipeline.AbstractTaskFactory; +import org.labkey.api.pipeline.AbstractTaskFactorySettings; +import org.labkey.api.pipeline.CancelledException; +import org.labkey.api.pipeline.PipeRoot; +import org.labkey.api.pipeline.PipelineDirectory; +import org.labkey.api.pipeline.PipelineJob; +import org.labkey.api.pipeline.PipelineJobException; +import org.labkey.api.pipeline.PipelineJobService; +import org.labkey.api.pipeline.PipelineProvider; +import org.labkey.api.pipeline.RecordedActionSet; +import org.labkey.api.pipeline.TaskId; +import org.labkey.api.pipeline.TaskPipeline; +import org.labkey.api.query.FieldKey; +import org.labkey.api.query.QueryService; +import org.labkey.api.security.User; +import org.labkey.api.util.FileType; +import org.labkey.api.util.FileUtil; +import org.labkey.api.util.PageFlowUtil; +import org.labkey.api.view.ActionURL; +import org.labkey.api.view.ViewBackgroundInfo; +import org.labkey.api.view.ViewContext; + +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; + +public class MhcCleanupPipelineJob extends PipelineJob +{ + private boolean _performDeletes; + private int _minAnalysisId; + + private boolean _dropDisabledResults = true; + private double _lineageThreshold = 0.25; + private boolean _dropMultiLineage = true; + private boolean _combineRedundantGroups = true; + + public static class Provider extends PipelineProvider + { + public static final String NAME = "mhcCleanupPipeline"; + + public Provider(Module owningModule) + { + super(NAME, owningModule); + } + + @Override + public void updateFileProperties(ViewContext context, PipeRoot pr, PipelineDirectory directory, boolean includeAll) + { + + } + } + + // Default constructor for serialization + protected MhcCleanupPipelineJob() + { + } + + public MhcCleanupPipelineJob(Container c, User u, ActionURL url, PipeRoot pipeRoot, boolean performDeletes, int minAnalysisId) + { + super(Provider.NAME, new ViewBackgroundInfo(c, u, url), pipeRoot); + + File subdir = new File(pipeRoot.getRootPath(), Provider.NAME); + if (!subdir.exists()) + { + subdir.mkdirs(); + } + + setLogFile(new File(subdir, FileUtil.makeFileNameWithTimestamp("mhcCleanup", "log"))); + _performDeletes = performDeletes; + _minAnalysisId = minAnalysisId; + } + + @Override + public ActionURL getStatusHref() + { + return PageFlowUtil.urlProvider(FileUrls.class).urlBegin(getContainer()); + } + + @Override + public String getDescription() + { + return "Cleanup MHC Data"; + } + + @Override + public TaskPipeline getTaskPipeline() + { + return PipelineJobService.get().getTaskPipeline(new TaskId(MhcCleanupPipelineJob.class)); + } + + public boolean isDropDisabledResults() + { + return _dropDisabledResults; + } + + public double getLineageThreshold() + { + return _lineageThreshold; + } + + public boolean doPerformDeletes() + { + return _performDeletes; + } + + public int getMinAnalysisId() + { + return _minAnalysisId; + } + + public boolean isCombineRedundantGroups() + { + return _combineRedundantGroups; + } + + public boolean isDropMultiLineage() + { + return _dropMultiLineage; + } + + public static class Task extends PipelineJob.Task + { + protected Task(Factory factory, PipelineJob job) + { + super(factory, job); + } + + public static class Factory extends AbstractTaskFactory + { + public Factory() + { + super(Task.class); + } + + @Override + public List getInputTypes() + { + return Collections.emptyList(); + } + + @Override + public String getStatusName() + { + return TaskStatus.running.toString(); + } + + @Override + public List getProtocolActionNames() + { + return List.of("Cleanup MHC Data"); + } + + @Override + public PipelineJob.Task createTask(PipelineJob job) + { + return new Task(this, job); + } + + @Override + public boolean isJobComplete(PipelineJob job) + { + return false; + } + } + + private MhcCleanupPipelineJob getPipelineJob() + { + return (MhcCleanupPipelineJob) getJob(); + } + + private int alignmentSummaryDeleted = 0; + private int alignmentSummaryJunctionDeleted = 0; + @Override + public RecordedActionSet run() throws PipelineJobException + { + TableInfo alignmentSummary = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary"); + TableInfo alignmentSummaryJunction = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary_junction"); + getJob().getLogger().info("Starting rows in alignment_summary: " + new TableSelector(alignmentSummary).getRowCount()); + getJob().getLogger().info("Starting rows in alignment_summary_junction: " + new TableSelector(alignmentSummaryJunction).getRowCount()); + + // Iterate each analysis: + AtomicInteger ai = new AtomicInteger(0); + SimpleFilter filter = new SimpleFilter(); + if (getPipelineJob().getMinAnalysisId() > 0) + { + filter.addCondition(FieldKey.fromString("rowid"), getPipelineJob().getMinAnalysisId(), CompareType.GT); + } + + new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("sequence_analyses"), PageFlowUtil.set("rowId"), filter, new Sort("-rowid")).forEachResults(rs -> { + ai.getAndIncrement(); + if (ai.get() % 100 == 0) + { + getJob().getLogger().info("Processed " + ai.get() + " analysis records"); + } + + if (getJob().isCancelled()) + { + throw new CancelledException(); + } + + int rowId = rs.getInt(FieldKey.fromString("rowId")); + processAnalysis(rowId); + }); + + getJob().getLogger().info("Deleted rows in alignment_summary: " + alignmentSummaryDeleted); + getJob().getLogger().info("Deleted rows in alignment_summary_junction: " + alignmentSummaryJunctionDeleted); + + getJob().getLogger().info("Ending rows in alignment_summary: " + new TableSelector(alignmentSummary).getRowCount()); + getJob().getLogger().info("Ending rows in alignment_summary_junction: " + new TableSelector(alignmentSummaryJunction).getRowCount()); + + return new RecordedActionSet(); + } + + private void processAnalysis(int analysisId) + { + getJob().getLogger().info("Processing: " + analysisId); + + TableInfo alignmentSummary = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary"); + TableInfo alignmentSummaryJunction = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary_junction"); + + // First find all lineages above threshold. Delete groups from lineages not represented here: + if (getPipelineJob().getLineageThreshold() > 0) + { + SimpleFilter filter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); + filter.addCondition(FieldKey.fromString("percent_from_locus"), getPipelineJob().getLineageThreshold(), CompareType.LT); + + List lowFreqRowIdList = new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_by_lineage"), PageFlowUtil.set("rowids"), filter, null).getArrayList(String.class); + if (!lowFreqRowIdList.isEmpty()) + { + getJob().getLogger().info("Analysis: " + analysisId + ", low freq lineages: " + lowFreqRowIdList.size()); + List alignmentIdsToDelete = lowFreqRowIdList.stream().map(x -> Arrays.asList(x.split(","))).flatMap(List::stream).map(Integer::parseInt).toList(); + if (!alignmentIdsToDelete.isEmpty()) + { + deleteAlignmentSummaryAndJunction(alignmentIdsToDelete, analysisId, alignmentSummary, alignmentSummaryJunction, "below lineage threshold"); + } + } + } + + if (getPipelineJob().isDropDisabledResults()) + { + SimpleFilter filter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); + filter.addCondition(FieldKey.fromString("status"), false, CompareType.EQUAL); + + List junctionRecordsToDelete = new TableSelector(alignmentSummaryJunction, PageFlowUtil.set("rowid"), filter, null).getArrayList(Integer.class); + if (!junctionRecordsToDelete.isEmpty()) + { + getJob().getLogger().info("Deleting " + junctionRecordsToDelete.size() + " disabled records from alignment_summary_junction"); + if (getPipelineJob().doPerformDeletes()) + { + junctionRecordsToDelete.forEach(rowId -> { + Table.delete(alignmentSummaryJunction, rowId); + alignmentSummaryJunctionDeleted++; + }); + } + } + } + + // TODO: limit to MHC + if (getPipelineJob().isDropMultiLineage()) + { + SimpleFilter filter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); + filter.addCondition(FieldKey.fromString("totalLineages"), 1, CompareType.GT); + + List rowIdList = new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_grouped"), PageFlowUtil.set("rowids"), filter, null).getArrayList(String.class); + if (!rowIdList.isEmpty()) + { + getJob().getLogger().info("Analysis: " + analysisId + ", multi-lineage records: " + rowIdList.size()); + List alignmentIdsToDelete = rowIdList.stream().map(x -> Arrays.asList(x.split(","))).flatMap(List::stream).map(Integer::parseInt).toList(); + if (!alignmentIdsToDelete.isEmpty()) + { + deleteAlignmentSummaryAndJunction(alignmentIdsToDelete, analysisId, alignmentSummary, alignmentSummaryJunction, "multi-lineage"); + } + } + } + + // Redundant groups: + if (getPipelineJob().isCombineRedundantGroups()) + { + SimpleFilter nAlignmentFilter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); + nAlignmentFilter.addCondition(FieldKey.fromString("nAlignments"), 1, CompareType.GT); + List redundantAlignmentSets = new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_grouped"), PageFlowUtil.set("rowids"), nAlignmentFilter, null).getArrayList(String.class); + if (!redundantAlignmentSets.isEmpty()) + { + getJob().getLogger().info("Analysis: " + analysisId + ", redundant alignment sets: " + redundantAlignmentSets.size()); + redundantAlignmentSets.forEach(x -> { + List alignmentIds = Arrays.stream(x.split(",")).map(Integer::parseInt).toList(); + if (!alignmentIds.isEmpty()) + { + final AtomicInteger rowIdToAppend = new AtomicInteger(-1); + final AtomicInteger originalTotal = new AtomicInteger(0); + final AtomicInteger totalToAppend = new AtomicInteger(0); + final List rowIdsToDelete = new ArrayList<>(); + new TableSelector(alignmentSummary, PageFlowUtil.set("rowid", "total"), new SimpleFilter(FieldKey.fromString("rowid"), alignmentIds, CompareType.IN), new Sort("-total")).forEachResults(rs -> { + if (rowIdToAppend.get() == -1) + { + rowIdToAppend.set(rs.getInt(FieldKey.fromString("rowid"))); + originalTotal.set(rs.getInt(FieldKey.fromString("total"))); + } + else + { + rowIdsToDelete.add(rs.getInt(FieldKey.fromString("rowid"))); + totalToAppend.getAndAdd(rs.getInt(FieldKey.fromString("total"))); + } + }); + + deleteAlignmentSummaryAndJunction(rowIdsToDelete, analysisId, alignmentSummary, alignmentSummaryJunction, "redundant allele sets"); + getJob().getLogger().info("increasing total by: " + totalToAppend.get()); + if (getPipelineJob().doPerformDeletes()) + { + Map toUpdate = new CaseInsensitiveHashMap<>(); + toUpdate.put("rowid", rowIdToAppend.get()); + toUpdate.put("total", originalTotal.get() + totalToAppend.get()); + Table.update(getJob().getUser(), alignmentSummary, toUpdate, rowIdToAppend.get()); + } + } + }); + } + } + + // Find alignment_summary records without any remaining results: + List alignmentIdsToDelete = new SqlSelector(alignmentSummary.getSchema().getScope(), + new SQLFragment("SELECT x.rowId FROM sequenceanalysis.alignment_summary x ") + .append(new SQLFragment("WHERE x.analysis_id = ? ", analysisId)) + .append(new SQLFragment(" AND x.valid_pairs IS NOT NULL")) + .append(new SQLFragment(" AND (SELECT count(*) FROM sequenceanalysis.alignment_summary_junction j WHERE j.analysis_id = ? AND j.alignment_id = x.rowid) = 0", analysisId)) + ).getArrayList(Integer.class); + + if (!alignmentIdsToDelete.isEmpty()) + { + getJob().getLogger().info("Deleting " + alignmentIdsToDelete.size() + " alignment_summary records lacking alignment_summary_junction"); + if (getPipelineJob().doPerformDeletes()) + { + alignmentIdsToDelete.forEach(rowId -> { + Table.delete(alignmentSummary, rowId); + alignmentSummaryDeleted++; + }); + } + } + } + + private void deleteAlignmentSummaryAndJunction(List alignmentIdsToDelete, int analysisId, TableInfo alignmentSummary, TableInfo alignmentSummaryJunction, String reason) + { + getJob().getLogger().info("Deleting " + alignmentIdsToDelete.size() + " alignment_summary records. reason: " + reason); + if (getPipelineJob().doPerformDeletes()) + { + alignmentIdsToDelete.forEach(rowId -> { + Table.delete(alignmentSummary, rowId); + alignmentSummaryDeleted++; + }); + } + + // also junction records: + SimpleFilter alignmentIdFilter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); + alignmentIdFilter.addCondition(FieldKey.fromString("alignment_id"), alignmentIdsToDelete, CompareType.IN); + List junctionRecordsToDelete = new TableSelector(alignmentSummaryJunction, PageFlowUtil.set("rowid"), alignmentIdFilter, null).getArrayList(Integer.class); + getJob().getLogger().info("Deleting " + junctionRecordsToDelete.size() + " alignment_summary_junction records"); + if (!junctionRecordsToDelete.isEmpty()) + { + if (getPipelineJob().doPerformDeletes()) + { + junctionRecordsToDelete.forEach(rowId -> { + Table.delete(alignmentSummaryJunction, rowId); + }); + alignmentSummaryJunctionDeleted++; + } + } + } + } +} diff --git a/primeseq/webapp/WEB-INF/primeseqContext.xml b/primeseq/webapp/WEB-INF/primeseqContext.xml index b91d3dfb3..b88fbb794 100644 --- a/primeseq/webapp/WEB-INF/primeseqContext.xml +++ b/primeseq/webapp/WEB-INF/primeseqContext.xml @@ -6,7 +6,7 @@ - + @@ -14,10 +14,10 @@ - + - org.labkey.primeseq.pipeline.MhcMigrationPipelineJob.Task + org.labkey.primeseq.pipeline.MhcCleanupPipelineJob.Task From 6a413abb3684702ad0a34c58df410c39b3c91a9c Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 3 Jul 2023 09:30:01 -0700 Subject: [PATCH 15/58] Add stubs for IDR study --- IDR/resources/referenceStudy/folder.xml | 4 + IDR/resources/referenceStudy/study/README | 12 + .../referenceStudy/study/datasets/IDR.dataset | 19 + .../study/datasets/datasets_manifest.xml | 71 ++ .../study/datasets/datasets_metadata.xml | 1038 +++++++++++++++++ IDR/resources/referenceStudy/study/study.xml | 9 + .../referenceStudy/study/studyPolicy.xml | 10 + .../mcc/duplicatedAggregatedDemographics.sql | 9 + 8 files changed, 1172 insertions(+) create mode 100644 IDR/resources/referenceStudy/folder.xml create mode 100644 IDR/resources/referenceStudy/study/README create mode 100644 IDR/resources/referenceStudy/study/datasets/IDR.dataset create mode 100644 IDR/resources/referenceStudy/study/datasets/datasets_manifest.xml create mode 100644 IDR/resources/referenceStudy/study/datasets/datasets_metadata.xml create mode 100644 IDR/resources/referenceStudy/study/study.xml create mode 100644 IDR/resources/referenceStudy/study/studyPolicy.xml create mode 100644 mcc/resources/queries/mcc/duplicatedAggregatedDemographics.sql diff --git a/IDR/resources/referenceStudy/folder.xml b/IDR/resources/referenceStudy/folder.xml new file mode 100644 index 000000000..e3acbb155 --- /dev/null +++ b/IDR/resources/referenceStudy/folder.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/IDR/resources/referenceStudy/study/README b/IDR/resources/referenceStudy/study/README new file mode 100644 index 000000000..a2b3bc193 --- /dev/null +++ b/IDR/resources/referenceStudy/study/README @@ -0,0 +1,12 @@ +This folder contains the reference study for IDR data. It should be generated by performing +a folder export from the production server, then copying the datasets_manifest.xml, datasets_metadata.xml, +PrimateElectronicHealthRecord.dataset and study.xml files. After copying, the following can be used to find/replace +metadata in datasets_metadata.xml to remove unwanted information: + +Replace the following regex expressions with empty string: + +( )*(.*)\n +( )*(.*)\n|( )*(.*)\n +( )*(.*)\n|( )*(.*)\n|( )*(.*)\n|( )*(.*)\n +( )*(.*)\n|( )*(.*)\n|( )*(.)*\n( )*(.)*\n +( )*(.*)\n|( )*(.*)\n|( )*(.*)\n diff --git a/IDR/resources/referenceStudy/study/datasets/IDR.dataset b/IDR/resources/referenceStudy/study/datasets/IDR.dataset new file mode 100644 index 000000000..8e5970288 --- /dev/null +++ b/IDR/resources/referenceStudy/study/datasets/IDR.dataset @@ -0,0 +1,19 @@ +# default group can be used to avoid repeating definitions for each dataset +# +# action=[REPLACE,APPEND,DELETE] (default:REPLACE) +# deleteAfterImport=[TRUE|FALSE] (default:FALSE) + +default.action=REPLACE +default.deleteAfterImport=FALSE + +# map a source tsv column (right side) to a property name or full propertyURI (left) +# predefined properties: ParticipantId, SiteId, VisitId, Created +default.property.ParticipantId=ptid +default.property.Created=dfcreate + +# use to map from filename->datasetid +# NOTE: if there are NO explicit import definitions, we will try to import all files matching pattern +# NOTE: if there are ANY explicit mapping, we will only import listed datasets + +default.filePattern=dataset(\\d*).tsv +default.importAllMatches=TRUE diff --git a/IDR/resources/referenceStudy/study/datasets/datasets_manifest.xml b/IDR/resources/referenceStudy/study/datasets/datasets_manifest.xml new file mode 100644 index 000000000..a57ce797a --- /dev/null +++ b/IDR/resources/referenceStudy/study/datasets/datasets_manifest.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/IDR/resources/referenceStudy/study/datasets/datasets_metadata.xml b/IDR/resources/referenceStudy/study/datasets/datasets_metadata.xml new file mode 100644 index 000000000..e5ae4f48e --- /dev/null +++ b/IDR/resources/referenceStudy/study/datasets/datasets_metadata.xml @@ -0,0 +1,1038 @@ + + + + + + varchar + urn:ehr.labkey.org/#TaskId + + + varchar + urn:ehr.labkey.org/#ParentId + + + varchar + urn:ehr.labkey.org/#RequestId + + + varchar + urn:ehr.labkey.org/#PerformedBy + + + varchar + urn:ehr.labkey.org/#Description + + + varchar + urn:ehr.labkey.org/#Remark + + + + + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + varchar + + + timestamp + urn:ehr.labkey.org/#EndDate + + + integer + urn:ehr.labkey.org/#Project + + + entityid + urn:ehr.labkey.org/#ObjectId + true + + + Animal Record Flags +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + varchar + + + varchar + + + varchar + + + varchar + urn:ehr.labkey.org/#EndDate + + + integer + urn:ehr.labkey.org/#Project + + + entityid + urn:ehr.labkey.org/#ObjectId + true + + + Parentage +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + varchar + + + varchar + + + varchar + + + double + + + timestamp + + + varchar + + + varchar + + + varchar + + + varchar + + + varchar + urn:ehr.labkey.org/#ObjectId + + + integer + urn:ehr.labkey.org/#Project + + + timestamp + urn:ehr.labkey.org/#EndDate + + + Birth +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + timestamp + urn:ehr.labkey.org/#EndDate + + + integer + urn:ehr.labkey.org/#Project + + + varchar + + + entityid + urn:ehr.labkey.org/#ObjectId + true + + + integer + + + timestamp + + + Clinical Encounters +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + integer + urn:ehr.labkey.org/#Project + + + varchar + + + varchar + + + entityid + urn:ehr.labkey.org/#ObjectId + true + + + timestamp + urn:ehr.labkey.org/#EndDate + + + timestamp + + + Clinical Remarks +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + integer + urn:ehr.labkey.org/#Project + + + varchar + + + varchar + + + double + + + varchar + + + double + + + varchar + + + double + + + varchar + + + double + + + varchar + + + varchar + + + timestamp + + + timestamp + urn:ehr.labkey.org/#EndDate + + + varchar + + + entityid + urn:ehr.labkey.org/#ObjectId + true + + + varchar + + + varchar + + + Medication Administration +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + integer + urn:ehr.labkey.org/#Project + + + varchar + + + double + + + varchar + + + double + + + varchar + + + double + + + varchar + + + varchar + + + timestamp + urn:ehr.labkey.org/#EndDate + + + integer + + + entityid + urn:ehr.labkey.org/#ObjectId + true + + + double + + + varchar + + + varchar + + + varchar + + + varchar + + + Medication/Treatment Orders +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + double + + + entityid + urn:ehr.labkey.org/#ObjectId + true + + + integer + urn:ehr.labkey.org/#Project + + + timestamp + urn:ehr.labkey.org/#EndDate + + + Weight +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + timestamp + urn:ehr.labkey.org/#EndDate + + + varchar + + + integer + urn:ehr.labkey.org/#Project + + + entityid + urn:ehr.labkey.org/#ObjectId + true + + + varchar + + + varchar + + + varchar + + + double + + + varchar + + + timestamp + + + Labwork +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + varchar + + + double + + + varchar + + + double + + + double + + + varchar + + + varchar + + + entityid + urn:ehr.labkey.org/#ObjectId + true + + + varchar + + + integer + urn:ehr.labkey.org/#Project + + + timestamp + urn:ehr.labkey.org/#EndDate + + + varchar + + + Lab Results +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + varchar + + + entityid + urn:ehr.labkey.org/#ObjectId + true + + + integer + urn:ehr.labkey.org/#Project + + + timestamp + urn:ehr.labkey.org/#EndDate + + + timestamp + + + boolean + + + Arrival +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + varchar + + + varchar + urn:ehr.labkey.org/#ObjectId + + + integer + urn:ehr.labkey.org/#Project + + + timestamp + urn:ehr.labkey.org/#EndDate + + + Deaths +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + varchar + + + varchar + + + timestamp + + + timestamp + + + varchar + + + varchar + + + varchar + + + varchar + urn:ehr.labkey.org/#ObjectId + + + integer + urn:ehr.labkey.org/#Project + + + timestamp + urn:ehr.labkey.org/#EndDate + + + varchar + + + boolean + + + varchar + + + varchar + + + varchar + + + varchar + + + varchar + + + timestamp + + + varchar + + + varchar + + + varchar + + + varchar + + + boolean + + + Demographics +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + varchar + + + entityid + urn:ehr.labkey.org/#ObjectId + true + + + integer + urn:ehr.labkey.org/#Project + + + timestamp + urn:ehr.labkey.org/#EndDate + + + Departure +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + integer + urn:ehr.labkey.org/#Project + + + varchar + + + varchar + + + double + + + varchar + + + double + + + varchar + + + double + + + varchar + + + varchar + + + timestamp + urn:ehr.labkey.org/#EndDate + + + integer + + + entityid + urn:ehr.labkey.org/#ObjectId + true + + + varchar + urn:ehr.labkey.org/#VetReview + + + timestamp + urn:ehr.labkey.org/#VetReviewDate + + + timestamp + + + double + + + varchar + + + varchar + + + varchar + + + varchar + + + Treatment Orders +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + timestamp + urn:ehr.labkey.org/#EndDate + + + integer + urn:ehr.labkey.org/#Project + + + entityid + urn:ehr.labkey.org/#ObjectId + true + + + timestamp + + + integer + + + integer + + + integer + + + varchar + + + timestamp + + + timestamp + + + varchar + + + Assignment +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + integer + + + timestamp + urn:ehr.labkey.org/#EndDate + + + varchar + + + entityid + urn:ehr.labkey.org/#ObjectId + true + + + varchar + + + varchar + + + varchar + + + integer + urn:ehr.labkey.org/#Project + + + Problem List +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + timestamp + urn:ehr.labkey.org/#EndDate + + + varchar + + + varchar + + + integer + + + integer + + + integer + + + entityid + urn:ehr.labkey.org/#ObjectId + true + + + varchar + + + integer + urn:ehr.labkey.org/#Project + + + Housing +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + varchar + + + varchar + + + varchar + + + varchar + + + varchar + urn:ehr.labkey.org/#VetReview + + + timestamp + urn:ehr.labkey.org/#VetReviewDate + + + varchar + + + integer + urn:ehr.labkey.org/#Project + + + entityid + urn:ehr.labkey.org/#ObjectId + true + + + timestamp + urn:ehr.labkey.org/#EndDate + + + integer + + + Clinical Observations +
+ + + + varchar + http://cpas.labkey.com/Study#ParticipantId + + ptid + + + + timestamp + http://cpas.labkey.com/Study#VisitDate + http://cpas.labkey.com/Study#VisitDate + + + varchar + + + double + + + varchar + + + entityid + urn:ehr.labkey.org/#ObjectId + true + + + Kinship +
+
diff --git a/IDR/resources/referenceStudy/study/study.xml b/IDR/resources/referenceStudy/study/study.xml new file mode 100644 index 000000000..c4622a54f --- /dev/null +++ b/IDR/resources/referenceStudy/study/study.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/IDR/resources/referenceStudy/study/studyPolicy.xml b/IDR/resources/referenceStudy/study/studyPolicy.xml new file mode 100644 index 000000000..61b6c973c --- /dev/null +++ b/IDR/resources/referenceStudy/study/studyPolicy.xml @@ -0,0 +1,10 @@ + + + ADVANCED_WRITE + + + + + + + \ No newline at end of file diff --git a/mcc/resources/queries/mcc/duplicatedAggregatedDemographics.sql b/mcc/resources/queries/mcc/duplicatedAggregatedDemographics.sql new file mode 100644 index 000000000..93d33162c --- /dev/null +++ b/mcc/resources/queries/mcc/duplicatedAggregatedDemographics.sql @@ -0,0 +1,9 @@ +SELECT + + m.Id, + GROUP_CONCAT(distinct m.originalId, ',') as originalIds + +FROM mcc.aggregatedDemographics m + +GROUP BY m.Id +HAVING COUNT(*) > 1 \ No newline at end of file From 71aca3428f91a76ac0dfdc0349b86914ce6c63cb Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 3 Jul 2023 09:42:53 -0700 Subject: [PATCH 16/58] Improved logging in MHC cleanup pipeline --- .../pipeline/MhcCleanupPipelineJob.java | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java index 6c10e6724..dca855bb4 100644 --- a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java +++ b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java @@ -40,6 +40,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; @@ -51,7 +52,7 @@ public class MhcCleanupPipelineJob extends PipelineJob private boolean _dropDisabledResults = true; private double _lineageThreshold = 0.25; - private boolean _dropMultiLineage = true; + private boolean _dropMultiLineageMHC = true; private boolean _combineRedundantGroups = true; public static class Provider extends PipelineProvider @@ -133,9 +134,9 @@ public boolean isCombineRedundantGroups() return _combineRedundantGroups; } - public boolean isDropMultiLineage() + public boolean isDropMultiLineageMHC() { - return _dropMultiLineage; + return _dropMultiLineageMHC; } public static class Task extends PipelineJob.Task @@ -188,8 +189,8 @@ private MhcCleanupPipelineJob getPipelineJob() return (MhcCleanupPipelineJob) getJob(); } - private int alignmentSummaryDeleted = 0; - private int alignmentSummaryJunctionDeleted = 0; + private Map alignmentSummaryDeleted = new HashMap<>(); + private Map alignmentSummaryJunctionDeleted = new HashMap<>(); @Override public RecordedActionSet run() throws PipelineJobException { @@ -197,6 +198,7 @@ public RecordedActionSet run() throws PipelineJobException TableInfo alignmentSummaryJunction = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary_junction"); getJob().getLogger().info("Starting rows in alignment_summary: " + new TableSelector(alignmentSummary).getRowCount()); getJob().getLogger().info("Starting rows in alignment_summary_junction: " + new TableSelector(alignmentSummaryJunction).getRowCount()); + getJob().getLogger().info(getPipelineJob().doPerformDeletes() ? "**This is a production run, records will be deleted" : "**This is a test run, records will not be deleted"); // Iterate each analysis: AtomicInteger ai = new AtomicInteger(0); @@ -222,8 +224,11 @@ public RecordedActionSet run() throws PipelineJobException processAnalysis(rowId); }); - getJob().getLogger().info("Deleted rows in alignment_summary: " + alignmentSummaryDeleted); - getJob().getLogger().info("Deleted rows in alignment_summary_junction: " + alignmentSummaryJunctionDeleted); + getJob().getLogger().info("Deleted rows in alignment_summary:"); + alignmentSummaryDeleted.keySet().forEach(x -> getJob().getLogger().info(x + ": " + alignmentSummaryDeleted.get(x))); + + getJob().getLogger().info("Deleted rows in alignment_summary_junction: "); + alignmentSummaryJunctionDeleted.keySet().forEach(x -> getJob().getLogger().info(x + ": " + alignmentSummaryJunctionDeleted.get(x))); getJob().getLogger().info("Ending rows in alignment_summary: " + new TableSelector(alignmentSummary).getRowCount()); getJob().getLogger().info("Ending rows in alignment_summary_junction: " + new TableSelector(alignmentSummaryJunction).getRowCount()); @@ -265,21 +270,21 @@ private void processAnalysis(int analysisId) if (!junctionRecordsToDelete.isEmpty()) { getJob().getLogger().info("Deleting " + junctionRecordsToDelete.size() + " disabled records from alignment_summary_junction"); + alignmentSummaryJunctionDeleted.put("disabled records", alignmentSummaryJunctionDeleted.getOrDefault("disabled records", 0) + junctionRecordsToDelete.size()); if (getPipelineJob().doPerformDeletes()) { junctionRecordsToDelete.forEach(rowId -> { Table.delete(alignmentSummaryJunction, rowId); - alignmentSummaryJunctionDeleted++; }); } } } - // TODO: limit to MHC - if (getPipelineJob().isDropMultiLineage()) + if (getPipelineJob().isDropMultiLineageMHC()) { SimpleFilter filter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); filter.addCondition(FieldKey.fromString("totalLineages"), 1, CompareType.GT); + filter.addCondition(FieldKey.fromString("loci"), "MHC", CompareType.CONTAINS); List rowIdList = new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_grouped"), PageFlowUtil.set("rowids"), filter, null).getArrayList(String.class); if (!rowIdList.isEmpty()) @@ -288,7 +293,7 @@ private void processAnalysis(int analysisId) List alignmentIdsToDelete = rowIdList.stream().map(x -> Arrays.asList(x.split(","))).flatMap(List::stream).map(Integer::parseInt).toList(); if (!alignmentIdsToDelete.isEmpty()) { - deleteAlignmentSummaryAndJunction(alignmentIdsToDelete, analysisId, alignmentSummary, alignmentSummaryJunction, "multi-lineage"); + deleteAlignmentSummaryAndJunction(alignmentIdsToDelete, analysisId, alignmentSummary, alignmentSummaryJunction, "multi-lineage MHC"); } } } @@ -348,11 +353,11 @@ private void processAnalysis(int analysisId) if (!alignmentIdsToDelete.isEmpty()) { getJob().getLogger().info("Deleting " + alignmentIdsToDelete.size() + " alignment_summary records lacking alignment_summary_junction"); + alignmentSummaryDeleted.put("lacking alignment_summary_junction records", alignmentSummaryDeleted.getOrDefault("lacking alignment_summary_junction records", 0) + alignmentIdsToDelete.size()); if (getPipelineJob().doPerformDeletes()) { alignmentIdsToDelete.forEach(rowId -> { Table.delete(alignmentSummary, rowId); - alignmentSummaryDeleted++; }); } } @@ -361,11 +366,11 @@ private void processAnalysis(int analysisId) private void deleteAlignmentSummaryAndJunction(List alignmentIdsToDelete, int analysisId, TableInfo alignmentSummary, TableInfo alignmentSummaryJunction, String reason) { getJob().getLogger().info("Deleting " + alignmentIdsToDelete.size() + " alignment_summary records. reason: " + reason); + alignmentSummaryDeleted.put(reason, alignmentSummaryDeleted.getOrDefault(reason, 0) + alignmentIdsToDelete.size()); if (getPipelineJob().doPerformDeletes()) { alignmentIdsToDelete.forEach(rowId -> { Table.delete(alignmentSummary, rowId); - alignmentSummaryDeleted++; }); } @@ -376,12 +381,12 @@ private void deleteAlignmentSummaryAndJunction(List alignmentIdsToDelet getJob().getLogger().info("Deleting " + junctionRecordsToDelete.size() + " alignment_summary_junction records"); if (!junctionRecordsToDelete.isEmpty()) { + alignmentSummaryJunctionDeleted.put(reason, alignmentSummaryJunctionDeleted.getOrDefault(reason, 0) + junctionRecordsToDelete.size()); if (getPipelineJob().doPerformDeletes()) { junctionRecordsToDelete.forEach(rowId -> { Table.delete(alignmentSummaryJunction, rowId); }); - alignmentSummaryJunctionDeleted++; } } } From e76425a8ec2627c3677cf7d8e49301308dc99cd7 Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 3 Jul 2023 13:26:02 -0700 Subject: [PATCH 17/58] Allow more aspects of mGAP annotations to be driven using table (#113) --- mGAP/resources/etls/prime-seq.xml | 32 ++++++--- .../dbscripts/postgresql/mgap-16.65-16.66.sql | 5 ++ .../dbscripts/sqlserver/mgap-16.65-16.66.sql | 5 ++ mGAP/resources/schemas/mgap.xml | 20 ++++++ mGAP/src/org/labkey/mgap/mGAPController.java | 72 +++++++++++++------ mGAP/src/org/labkey/mgap/mGAPModule.java | 2 +- .../labkey/mgap/pipeline/AnnotationStep.java | 72 ++++++++++++++++++- .../labkey/mgap/pipeline/SnpSiftWrapper.java | 5 +- 8 files changed, 177 insertions(+), 36 deletions(-) create mode 100644 mGAP/resources/schemas/dbscripts/postgresql/mgap-16.65-16.66.sql create mode 100644 mGAP/resources/schemas/dbscripts/sqlserver/mgap-16.65-16.66.sql diff --git a/mGAP/resources/etls/prime-seq.xml b/mGAP/resources/etls/prime-seq.xml index ea71e51b5..d971d2b83 100644 --- a/mGAP/resources/etls/prime-seq.xml +++ b/mGAP/resources/etls/prime-seq.xml @@ -63,16 +63,28 @@ - - - - - - - - - - + + Copy to local table + + + category + label + dataSource + infoKey + dataType + dataNumber + url + dataurl + description + toolName + formatString + hidden + isIndexed + allowableValues + + + + Copy to local table diff --git a/mGAP/resources/schemas/dbscripts/postgresql/mgap-16.65-16.66.sql b/mGAP/resources/schemas/dbscripts/postgresql/mgap-16.65-16.66.sql new file mode 100644 index 000000000..5da7e6914 --- /dev/null +++ b/mGAP/resources/schemas/dbscripts/postgresql/mgap-16.65-16.66.sql @@ -0,0 +1,5 @@ +ALTER TABLE mGAP.annotations ADD toolName varchar(1000); +ALTER TABLE mGAP.annotations ADD formatString varchar(1000); +ALTER TABLE mGAP.annotations ADD allowableValues varchar(4000); +ALTER TABLE mGAP.annotations ADD hidden boolean; +ALTER TABLE mGAP.annotations ADD isIndexed boolean; diff --git a/mGAP/resources/schemas/dbscripts/sqlserver/mgap-16.65-16.66.sql b/mGAP/resources/schemas/dbscripts/sqlserver/mgap-16.65-16.66.sql new file mode 100644 index 000000000..5839347e7 --- /dev/null +++ b/mGAP/resources/schemas/dbscripts/sqlserver/mgap-16.65-16.66.sql @@ -0,0 +1,5 @@ +ALTER TABLE mGAP.annotations ADD toolName varchar(1000); +ALTER TABLE mGAP.annotations ADD formatString varchar(1000); +ALTER TABLE mGAP.annotations ADD allowableValues varchar(4000); +ALTER TABLE mGAP.annotations ADD hidden bit; +ALTER TABLE mGAP.annotations ADD isIndexed bit; diff --git a/mGAP/resources/schemas/mgap.xml b/mGAP/resources/schemas/mgap.xml index b3a729029..abfcc5651 100644 --- a/mGAP/resources/schemas/mgap.xml +++ b/mGAP/resources/schemas/mgap.xml @@ -1191,6 +1191,26 @@ Description textarea + + Tool Name + true + + + Format String + true + + + Hidden? + true + + + Is Indexed? + true + + + Allowable Values + true + true diff --git a/mGAP/src/org/labkey/mgap/mGAPController.java b/mGAP/src/org/labkey/mgap/mGAPController.java index 5dfed9fe2..ab0f8f0b4 100644 --- a/mGAP/src/org/labkey/mgap/mGAPController.java +++ b/mGAP/src/org/labkey/mgap/mGAPController.java @@ -1067,33 +1067,63 @@ public boolean handlePost(Object o, BindException errors) throws Exception { List> toAdd = new ArrayList<>(); - final URL url = new URL("https://raw.githubusercontent.com/bimberlabinternal/VariantAnnotation/master/fieldConfig.txt"); - try (CSVReader reader = new CSVReader(Readers.getReader(url.openStream()), '\t')) + final List urls = Arrays.asList( + "https://raw.githubusercontent.com/bimberlabinternal/VariantAnnotation/master/fieldConfig.txt", + "https://raw.githubusercontent.com/bimberlabinternal/VariantAnnotation/master/otherFieldConfig.txt" + ); + + for (String urlStr : urls) { - String[] line; - List header = null; - int idx = 0; - while ((line = reader.readNext()) != null) + final URL url = new URL(urlStr); + try (CSVReader reader = new CSVReader(Readers.getReader(url.openStream()), '\t')) { - idx++; - if (idx == 1) + String[] line; + List header = null; + int idx = 0; + while ((line = reader.readNext()) != null) { - header = Arrays.asList(line); - continue; - } + idx++; + if (idx == 1) + { + header = Arrays.asList(line); + continue; + } + + Map row = new CaseInsensitiveHashMap<>(); + + row.put("category", line[header.indexOf("Category")]); + row.put("label", line[header.indexOf("Label")]); + row.put("dataSource", line[header.indexOf("DataSource")]); + row.put("infoKey", line[header.indexOf("ID")]); + row.put("dataType", line[header.indexOf("Type")]); + row.put("dataNumber", line[header.indexOf("Number")]); + row.put("description", line[header.indexOf("Description")]); + row.put("url", line[header.indexOf("URL")]); + row.put("dataurl", line[header.indexOf("DataUrl")]); + row.put("toolName", line[header.indexOf("ToolName")]); + + if (header.contains("Hidden")) + { + row.put("hidden", line[header.indexOf("Hidden")]); + } - Map row = new CaseInsensitiveHashMap<>(); + if (header.contains("FormatString")) + { + row.put("formatString", line[header.indexOf("FormatString")]); + } - row.put("category", line[header.indexOf("Category")]); - row.put("label", line[header.indexOf("Label")]); - row.put("dataSource", line[header.indexOf("DataSource")]); - row.put("infoKey", line[header.indexOf("ID")]); - row.put("dataType", line[header.indexOf("Type")]); - row.put("dataNumber", line[header.indexOf("Number")]); - row.put("description", line[header.indexOf("Description")]); - row.put("url", line[header.indexOf("URL")]); + if (header.contains("AllowableValues")) + { + row.put("allowableValues", line[header.indexOf("AllowableValues")]); + } - toAdd.add(row); + if (header.contains("IsIndexed")) + { + row.put("isIndexed", line[header.indexOf("IsIndexed")]); + } + + toAdd.add(row); + } } } diff --git a/mGAP/src/org/labkey/mgap/mGAPModule.java b/mGAP/src/org/labkey/mgap/mGAPModule.java index 20108cc37..15c2361db 100644 --- a/mGAP/src/org/labkey/mgap/mGAPModule.java +++ b/mGAP/src/org/labkey/mgap/mGAPModule.java @@ -67,7 +67,7 @@ public String getName() @Override public Double getSchemaVersion() { - return 16.65; + return 16.66; } @Override diff --git a/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java b/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java index b10b5a16c..47def5f0d 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java +++ b/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java @@ -7,6 +7,7 @@ import org.jetbrains.annotations.Nullable; import org.json.JSONObject; import org.labkey.api.data.CompareType; +import org.labkey.api.data.Container; import org.labkey.api.data.DbSchema; import org.labkey.api.data.DbSchemaType; import org.labkey.api.data.SimpleFilter; @@ -18,6 +19,7 @@ import org.labkey.api.pipeline.PipelineJobException; import org.labkey.api.pipeline.PipelineJobService; import org.labkey.api.query.FieldKey; +import org.labkey.api.query.QueryService; import org.labkey.api.sequenceanalysis.SequenceAnalysisService; import org.labkey.api.sequenceanalysis.SequenceOutputFile; import org.labkey.api.sequenceanalysis.pipeline.AbstractVariantProcessingStepProvider; @@ -35,14 +37,19 @@ import org.labkey.api.sequenceanalysis.run.SimpleScriptWrapper; import org.labkey.api.util.FileUtil; import org.labkey.api.util.PageFlowUtil; +import org.labkey.api.writer.PrintWriters; +import org.labkey.mgap.mGAPSchema; import java.io.File; import java.io.IOException; +import java.io.PrintWriter; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; +import java.util.Map; import java.util.Set; /** @@ -141,6 +148,33 @@ public void init(PipelineJob job, SequenceAnalysisJobSupport support, List> sourceFieldMap = new HashMap<>(); + final HashMap> targetFieldMap = new HashMap<>(); + new TableSelector(QueryService.get().getUserSchema(getPipelineCtx().getJob().getUser(), targetContainer, mGAPSchema.NAME).getTable(mGAPSchema.TABLE_VARIANT_ANNOTATIONS)).forEachResults(rs -> { + if (!sourceFieldMap.containsKey(rs.getString(FieldKey.fromString("toolName")))) + { + sourceFieldMap.put(rs.getString(FieldKey.fromString("toolName")), new ArrayList<>()); + targetFieldMap.put(rs.getString(FieldKey.fromString("toolName")), new ArrayList<>()); + } + + sourceFieldMap.get(rs.getString(FieldKey.fromString("toolName"))).add(rs.getString(FieldKey.fromString("sourceField"))); + targetFieldMap.get(rs.getString(FieldKey.fromString("toolName"))).add(rs.getString(FieldKey.fromString("targetField"))); + }); + + getPipelineCtx().getSequenceSupport().cacheObject(SOURCE_FIELDS, sourceFieldMap); + getPipelineCtx().getSequenceSupport().cacheObject(TARGET_FIELDS, targetFieldMap); + } + + private static String SOURCE_FIELDS = "sourceFields"; + private static String TARGET_FIELDS = "targetFields"; + + private List getCachedFields(String key, String toolName) throws PipelineJobException + { + Map> fieldMap = getPipelineCtx().getSequenceSupport().getCachedObject(key, PipelineJob.createObjectMapper().getTypeFactory().constructParametricType(Map.class, String.class, List.class)); + return fieldMap.get(toolName).stream().map(String::valueOf).toList(); } @Override @@ -357,7 +391,13 @@ public Output processVariants(File inputVCF, File outputDirectory, ReferenceGeno if (forceRecreate || !indexExists(snpSiftAnnotated)) { SnpSiftWrapper ssRunner = new SnpSiftWrapper(getPipelineCtx().getLogger()); - ssRunner.runSnpSift(dbnsfpFile, liftedToGRCh37, snpSiftAnnotated); + List fieldList = getCachedFields(SOURCE_FIELDS, "SnpSift"); + if (fieldList.isEmpty()) + { + throw new PipelineJobException("No fields found for SnpSift"); + } + + ssRunner.runSnpSift(dbnsfpFile, liftedToGRCh37, snpSiftAnnotated, fieldList); } else { @@ -385,7 +425,8 @@ public Output processVariants(File inputVCF, File outputDirectory, ReferenceGeno //annotate with cassandra File cassandraAnnotatedBackport = null; - if (getProvider().getParameterByName("useCassandra").extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), Boolean.class, false)) + boolean useCassandra = getProvider().getParameterByName("useCassandra").extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), Boolean.class, false); + if (useCassandra) { getPipelineCtx().getLogger().info("annotating with Cassandra"); String basename = SequenceAnalysisService.get().getUnzippedBaseName(liftedToGRCh37.getName()) + ".cassandra"; @@ -504,6 +545,14 @@ public Output processVariants(File inputVCF, File outputDirectory, ReferenceGeno needToSubsetToInterval = false; } + if (useFuncotator) + { + addToolFieldNames("Funcotator", "-ff", options, multiAnnotated.getParentFile(), output); + } + + addToolFieldNames("SnpSift", "-ssf", options, multiAnnotated.getParentFile(), output); + addToolFieldNames("ClinVar", "-cvf", options, multiAnnotated.getParentFile(), output); + maRunner.execute(inputVCF, cassandraAnnotatedBackport, clinvarAnnotatedBackport, liftoverRejects, funcotatorAnnotatedBackport, snpSiftAnnotatedBackport, multiAnnotated, options); } else @@ -521,6 +570,25 @@ public Output processVariants(File inputVCF, File outputDirectory, ReferenceGeno return output; } + private void addToolFieldNames(String toolName, String argName, List options, File outDir, VariantProcessingStepOutputImpl output) throws PipelineJobException + { + List fields = getCachedFields(TARGET_FIELDS, toolName); + File fieldFile = new File(outDir, toolName + "Fields.args"); + try (PrintWriter writer = PrintWriters.getPrintWriter(fieldFile)) + { + fields.forEach(writer::println); + } + catch (IOException e) + { + throw new PipelineJobException(e); + } + + output.addIntermediateFile(fieldFile); + + options.add(argName); + options.add(fieldFile.getPath()); + } + private void runCassandra(File liftedToGRCh37, File finalOutput, VariantProcessingStepOutputImpl output, boolean forceRecreate) throws PipelineJobException { List extraArgs = new ArrayList<>(); diff --git a/mGAP/src/org/labkey/mgap/pipeline/SnpSiftWrapper.java b/mGAP/src/org/labkey/mgap/pipeline/SnpSiftWrapper.java index 37babe26e..706f91bb3 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/SnpSiftWrapper.java +++ b/mGAP/src/org/labkey/mgap/pipeline/SnpSiftWrapper.java @@ -1,6 +1,7 @@ package org.labkey.mgap.pipeline; import org.apache.commons.io.FileUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.Logger; import org.labkey.api.pipeline.PipelineJobException; import org.labkey.api.pipeline.PipelineJobService; @@ -23,7 +24,7 @@ public SnpSiftWrapper(Logger log) super(log); } - public void runSnpSift(File dbnsfpFile, File input, File output) throws PipelineJobException + public void runSnpSift(File dbnsfpFile, File input, File output, List fieldList) throws PipelineJobException { getLogger().info("Annotating VCF with SnpSift"); @@ -39,7 +40,7 @@ public void runSnpSift(File dbnsfpFile, File input, File output) throws Pipeline params.add("-noDownload"); params.add("-f"); - params.add("SIFT_score,SIFT_converted_rankscore,SIFT_pred,SIFT4G_score,SIFT4G_converted_rankscore,SIFT4G_pred,Polyphen2_HDIV_score,Polyphen2_HDIV_rankscore,Polyphen2_HDIV_pred,Polyphen2_HVAR_score,Polyphen2_HVAR_rankscore,Polyphen2_HVAR_pred,LRT_score,LRT_converted_rankscore,LRT_pred,LRT_Omega,MutationTaster_score,MutationTaster_converted_rankscore,MutationTaster_pred,MutationTaster_model,MutationTaster_AAE,MutationAssessor_score,MutationAssessor_rankscore,MutationAssessor_pred,FATHMM_score,FATHMM_converted_rankscore,FATHMM_pred,PROVEAN_score,PROVEAN_converted_rankscore,PROVEAN_pred,VEST4_score,VEST4_rankscore,MetaSVM_score,MetaSVM_rankscore,MetaSVM_pred,MetaLR_score,MetaLR_rankscore,MetaLR_pred,Reliability_index,M-CAP_score,M-CAP_rankscore,M-CAP_pred,REVEL_score,REVEL_rankscore,MutPred_score,MutPred_rankscore,MutPred_protID,MutPred_AAchange,MutPred_Top5features,MVP_score,MVP_rankscore,MPC_score,MPC_rankscore,PrimateAI_score,PrimateAI_rankscore,PrimateAI_pred,DEOGEN2_score,DEOGEN2_rankscore,DEOGEN2_pred,BayesDel_addAF_score,BayesDel_addAF_rankscore,BayesDel_addAF_pred,BayesDel_noAF_score,BayesDel_noAF_rankscore,BayesDel_noAF_pred,LIST-S2_score,LIST-S2_rankscore,LIST-S2_pred,Aloft_Fraction_transcripts_affected,Aloft_prob_Tolerant,Aloft_prob_Recessive,Aloft_prob_Dominant,Aloft_pred,Aloft_Confidence,DANN_score,DANN_rankscore,fathmm-MKL_coding_score,fathmm-MKL_coding_rankscore,fathmm-MKL_coding_pred,fathmm-MKL_coding_group,fathmm-XF_coding_score,fathmm-XF_coding_rankscore,fathmm-XF_coding_pred,Eigen-raw_coding,Eigen-raw_coding_rankscore,Eigen-phred_coding,Eigen-PC-raw_coding,Eigen-PC-raw_coding_rankscore,Eigen-PC-phred_coding,GenoCanyon_score,GenoCanyon_rankscore,integrated_fitCons_score,integrated_fitCons_rankscore,integrated_confidence_value,GM12878_fitCons_score,GM12878_fitCons_rankscore,GM12878_confidence_value,H1-hESC_fitCons_score,H1-hESC_fitCons_rankscore,H1-hESC_confidence_value,HUVEC_fitCons_score,HUVEC_fitCons_rankscore,HUVEC_confidence_value,LINSIGHT,LINSIGHT_rankscore,GERP++_NR,GERP++_RS,GERP++_RS_rankscore,phyloP100way_vertebrate,phyloP100way_vertebrate_rankscore,phyloP30way_mammalian,phyloP30way_mammalian_rankscore,phyloP17way_primate,phyloP17way_primate_rankscore,phastCons100way_vertebrate,phastCons100way_vertebrate_rankscore,phastCons30way_mammalian,phastCons30way_mammalian_rankscore,phastCons17way_primate,phastCons17way_primate_rankscore"); + params.add(StringUtils.join(fieldList, ",")); params.add(input.getPath()); From ce4dcc34bf97c8bec5e8d7c9ca08db0aa2a160b1 Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 3 Jul 2023 15:25:13 -0700 Subject: [PATCH 18/58] Update field case --- mGAP/src/org/labkey/mgap/mGAPController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mGAP/src/org/labkey/mgap/mGAPController.java b/mGAP/src/org/labkey/mgap/mGAPController.java index ab0f8f0b4..ef67b2d87 100644 --- a/mGAP/src/org/labkey/mgap/mGAPController.java +++ b/mGAP/src/org/labkey/mgap/mGAPController.java @@ -1099,7 +1099,7 @@ public boolean handlePost(Object o, BindException errors) throws Exception row.put("dataNumber", line[header.indexOf("Number")]); row.put("description", line[header.indexOf("Description")]); row.put("url", line[header.indexOf("URL")]); - row.put("dataurl", line[header.indexOf("DataUrl")]); + row.put("dataurl", line[header.indexOf("DataURL")]); row.put("toolName", line[header.indexOf("ToolName")]); if (header.contains("Hidden")) From e34b356b515f1b9870763d40554d3e244d92ce99 Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 3 Jul 2023 15:27:13 -0700 Subject: [PATCH 19/58] Add removal of low freq allele groups to MHC cleanup --- .../pipeline/MhcCleanupPipelineJob.java | 42 ++++++++++++++++--- 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java index dca855bb4..fe6212d3d 100644 --- a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java +++ b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java @@ -28,6 +28,7 @@ import org.labkey.api.pipeline.TaskPipeline; import org.labkey.api.query.FieldKey; import org.labkey.api.query.QueryService; +import org.labkey.api.query.UserSchema; import org.labkey.api.security.User; import org.labkey.api.util.FileType; import org.labkey.api.util.FileUtil; @@ -52,6 +53,7 @@ public class MhcCleanupPipelineJob extends PipelineJob private boolean _dropDisabledResults = true; private double _lineageThreshold = 0.25; + private double _alleleGroupThreshold = 0.1; private boolean _dropMultiLineageMHC = true; private boolean _combineRedundantGroups = true; @@ -119,6 +121,11 @@ public double getLineageThreshold() return _lineageThreshold; } + public double getAlleleGroupThreshold() + { + return _alleleGroupThreshold; + } + public boolean doPerformDeletes() { return _performDeletes; @@ -194,8 +201,10 @@ private MhcCleanupPipelineJob getPipelineJob() @Override public RecordedActionSet run() throws PipelineJobException { - TableInfo alignmentSummary = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary"); - TableInfo alignmentSummaryJunction = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary_junction"); + UserSchema sequenceAnalysisSchema = QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis"); + TableInfo alignmentSummary = sequenceAnalysisSchema.getTable("alignment_summary"); + TableInfo alignmentSummaryJunction = sequenceAnalysisSchema.getTable("alignment_summary_junction"); + getJob().getLogger().info("Starting rows in alignment_summary: " + new TableSelector(alignmentSummary).getRowCount()); getJob().getLogger().info("Starting rows in alignment_summary_junction: " + new TableSelector(alignmentSummaryJunction).getRowCount()); getJob().getLogger().info(getPipelineJob().doPerformDeletes() ? "**This is a production run, records will be deleted" : "**This is a test run, records will not be deleted"); @@ -208,11 +217,14 @@ public RecordedActionSet run() throws PipelineJobException filter.addCondition(FieldKey.fromString("rowid"), getPipelineJob().getMinAnalysisId(), CompareType.GT); } - new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("sequence_analyses"), PageFlowUtil.set("rowId"), filter, new Sort("-rowid")).forEachResults(rs -> { + TableInfo sequenceAnalyses = sequenceAnalysisSchema.getTable("sequence_analyses"); + final long totalAnalyses = new TableSelector(sequenceAnalyses).getRowCount(); + + new TableSelector(sequenceAnalyses, PageFlowUtil.set("rowId"), filter, new Sort("-rowid")).forEachResults(rs -> { ai.getAndIncrement(); - if (ai.get() % 100 == 0) + if (ai.get() % 50 == 0) { - getJob().getLogger().info("Processed " + ai.get() + " analysis records"); + getJob().getLogger().info("Processed " + ai.get() + " analysis records of " + totalAnalyses); } if (getJob().isCancelled()) @@ -243,7 +255,7 @@ private void processAnalysis(int analysisId) TableInfo alignmentSummary = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary"); TableInfo alignmentSummaryJunction = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary_junction"); - // First find all lineages above threshold. Delete groups from lineages not represented here: + // Delete low-freq lineages: if (getPipelineJob().getLineageThreshold() > 0) { SimpleFilter filter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); @@ -261,6 +273,24 @@ private void processAnalysis(int analysisId) } } + // Delete low-freq allele groups: + if (getPipelineJob().getAlleleGroupThreshold() > 0) + { + SimpleFilter filter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); + filter.addCondition(FieldKey.fromString("percent_from_locus"), getPipelineJob().getAlleleGroupThreshold(), CompareType.LT); + + List lowFreqRowIdList = new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_grouped"), PageFlowUtil.set("rowids"), filter, null).getArrayList(String.class); + if (!lowFreqRowIdList.isEmpty()) + { + getJob().getLogger().info("Analysis: " + analysisId + ", low freq allele groups: " + lowFreqRowIdList.size()); + List alignmentIdsToDelete = lowFreqRowIdList.stream().map(x -> Arrays.asList(x.split(","))).flatMap(List::stream).map(Integer::parseInt).toList(); + if (!alignmentIdsToDelete.isEmpty()) + { + deleteAlignmentSummaryAndJunction(alignmentIdsToDelete, analysisId, alignmentSummary, alignmentSummaryJunction, "below allele-group threshold"); + } + } + } + if (getPipelineJob().isDropDisabledResults()) { SimpleFilter filter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); From b819d3003eaa7bf02c22003fae4b55e9c8db06db Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 3 Jul 2023 16:07:56 -0700 Subject: [PATCH 20/58] Add button to directly expose UpdateAnnotationsAction --- .../mgap/buttons/PopulateAnnotationsButton.java | 15 +++++++++++++++ mGAP/src/org/labkey/mgap/mGAPModule.java | 2 ++ 2 files changed, 17 insertions(+) create mode 100644 mGAP/src/org/labkey/mgap/buttons/PopulateAnnotationsButton.java diff --git a/mGAP/src/org/labkey/mgap/buttons/PopulateAnnotationsButton.java b/mGAP/src/org/labkey/mgap/buttons/PopulateAnnotationsButton.java new file mode 100644 index 000000000..1ba7a36bb --- /dev/null +++ b/mGAP/src/org/labkey/mgap/buttons/PopulateAnnotationsButton.java @@ -0,0 +1,15 @@ +package org.labkey.mgap.buttons; + +import org.labkey.api.ldk.table.SimpleButtonConfigFactory; +import org.labkey.api.module.Module; +import org.labkey.api.query.DetailsURL; +import org.labkey.api.security.permissions.AdminPermission; + +public class PopulateAnnotationsButton extends SimpleButtonConfigFactory +{ + public PopulateAnnotationsButton(Module owner) + { + super(owner, "Create mGAP Release", DetailsURL.fromString("/mgap/updateAnnotations.view")); + setPermission(AdminPermission.class); + } +} diff --git a/mGAP/src/org/labkey/mgap/mGAPModule.java b/mGAP/src/org/labkey/mgap/mGAPModule.java index 15c2361db..0ae6be113 100644 --- a/mGAP/src/org/labkey/mgap/mGAPModule.java +++ b/mGAP/src/org/labkey/mgap/mGAPModule.java @@ -39,6 +39,7 @@ import org.labkey.api.util.PageFlowUtil; import org.labkey.api.util.SystemMaintenance; import org.labkey.api.writer.ContainerUser; +import org.labkey.mgap.buttons.PopulateAnnotationsButton; import org.labkey.mgap.buttons.ReleaseButton; import org.labkey.mgap.pipeline.AnnotationStep; import org.labkey.mgap.pipeline.GenerateMgapTracksStep; @@ -85,6 +86,7 @@ public void doStartupAfterSpringConfig(ModuleContext moduleContext) LDKService.get().registerQueryButton(new ShowBulkEditButton(this, mGAPSchema.NAME, mGAPSchema.TABLE_ANIMAL_MAPPING), mGAPSchema.NAME, mGAPSchema.TABLE_ANIMAL_MAPPING); LDKService.get().registerQueryButton(new ShowBulkEditButton(this, mGAPSchema.NAME, mGAPSchema.TABLE_TRACKS_PER_RELEASE), mGAPSchema.NAME, mGAPSchema.TABLE_TRACKS_PER_RELEASE); LDKService.get().registerQueryButton(new ReleaseButton(this), mGAPSchema.NAME, mGAPSchema.TABLE_RELEASE_TRACKS); + LDKService.get().registerQueryButton(new PopulateAnnotationsButton(this), mGAPSchema.NAME, mGAPSchema.TABLE_VARIANT_ANNOTATIONS); NotificationService.get().registerNotification(new mGAPUserNotification(this)); From 01a410c5ae19126dd2d77a0d94013623b09c4434 Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 3 Jul 2023 16:54:56 -0700 Subject: [PATCH 21/58] Fix button label --- mGAP/src/org/labkey/mgap/buttons/PopulateAnnotationsButton.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mGAP/src/org/labkey/mgap/buttons/PopulateAnnotationsButton.java b/mGAP/src/org/labkey/mgap/buttons/PopulateAnnotationsButton.java index 1ba7a36bb..ffbe68de8 100644 --- a/mGAP/src/org/labkey/mgap/buttons/PopulateAnnotationsButton.java +++ b/mGAP/src/org/labkey/mgap/buttons/PopulateAnnotationsButton.java @@ -9,7 +9,7 @@ public class PopulateAnnotationsButton extends SimpleButtonConfigFactory { public PopulateAnnotationsButton(Module owner) { - super(owner, "Create mGAP Release", DetailsURL.fromString("/mgap/updateAnnotations.view")); + super(owner, "Reload Annotations from GitHub", DetailsURL.fromString("/mgap/updateAnnotations.view")); setPermission(AdminPermission.class); } } From 07cd1f0a9aef8663d5112607779d11c4e50ea3a7 Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 3 Jul 2023 16:57:24 -0700 Subject: [PATCH 22/58] UpdateAnnotationsAction: allow for source data with unequal line lengths --- mGAP/src/org/labkey/mgap/mGAPController.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mGAP/src/org/labkey/mgap/mGAPController.java b/mGAP/src/org/labkey/mgap/mGAPController.java index ef67b2d87..a00483481 100644 --- a/mGAP/src/org/labkey/mgap/mGAPController.java +++ b/mGAP/src/org/labkey/mgap/mGAPController.java @@ -1107,17 +1107,17 @@ public boolean handlePost(Object o, BindException errors) throws Exception row.put("hidden", line[header.indexOf("Hidden")]); } - if (header.contains("FormatString")) + if (header.contains("FormatString") && line.length > header.indexOf("FormatString")) { row.put("formatString", line[header.indexOf("FormatString")]); } - if (header.contains("AllowableValues")) + if (header.contains("AllowableValues") && line.length > header.indexOf("AllowableValues")) { row.put("allowableValues", line[header.indexOf("AllowableValues")]); } - if (header.contains("IsIndexed")) + if (header.contains("IsIndexed") && line.length > header.indexOf("IsIndexed")) { row.put("isIndexed", line[header.indexOf("IsIndexed")]); } From 2215b80f2aff825c0342421a508d68951bd04042 Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 3 Jul 2023 17:19:13 -0700 Subject: [PATCH 23/58] Store annotation sourceField --- .../schemas/dbscripts/postgresql/mgap-16.66-16.67.sql | 1 + .../schemas/dbscripts/sqlserver/mgap-16.66-16.67.sql | 1 + mGAP/resources/schemas/mgap.xml | 5 +++++ mGAP/src/org/labkey/mgap/mGAPController.java | 1 + mGAP/src/org/labkey/mgap/mGAPModule.java | 2 +- mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java | 4 ++-- 6 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 mGAP/resources/schemas/dbscripts/postgresql/mgap-16.66-16.67.sql create mode 100644 mGAP/resources/schemas/dbscripts/sqlserver/mgap-16.66-16.67.sql diff --git a/mGAP/resources/schemas/dbscripts/postgresql/mgap-16.66-16.67.sql b/mGAP/resources/schemas/dbscripts/postgresql/mgap-16.66-16.67.sql new file mode 100644 index 000000000..c185f833e --- /dev/null +++ b/mGAP/resources/schemas/dbscripts/postgresql/mgap-16.66-16.67.sql @@ -0,0 +1 @@ +ALTER TABLE mGAP.annotations ADD sourceField varchar(200); \ No newline at end of file diff --git a/mGAP/resources/schemas/dbscripts/sqlserver/mgap-16.66-16.67.sql b/mGAP/resources/schemas/dbscripts/sqlserver/mgap-16.66-16.67.sql new file mode 100644 index 000000000..c185f833e --- /dev/null +++ b/mGAP/resources/schemas/dbscripts/sqlserver/mgap-16.66-16.67.sql @@ -0,0 +1 @@ +ALTER TABLE mGAP.annotations ADD sourceField varchar(200); \ No newline at end of file diff --git a/mGAP/resources/schemas/mgap.xml b/mGAP/resources/schemas/mgap.xml index abfcc5651..adc6db3d6 100644 --- a/mGAP/resources/schemas/mgap.xml +++ b/mGAP/resources/schemas/mgap.xml @@ -1171,6 +1171,11 @@ true true + + Source Field + true + true + Data Type true diff --git a/mGAP/src/org/labkey/mgap/mGAPController.java b/mGAP/src/org/labkey/mgap/mGAPController.java index a00483481..d66a529d0 100644 --- a/mGAP/src/org/labkey/mgap/mGAPController.java +++ b/mGAP/src/org/labkey/mgap/mGAPController.java @@ -1095,6 +1095,7 @@ public boolean handlePost(Object o, BindException errors) throws Exception row.put("label", line[header.indexOf("Label")]); row.put("dataSource", line[header.indexOf("DataSource")]); row.put("infoKey", line[header.indexOf("ID")]); + row.put("sourceField", line[header.indexOf("sourceField")]); row.put("dataType", line[header.indexOf("Type")]); row.put("dataNumber", line[header.indexOf("Number")]); row.put("description", line[header.indexOf("Description")]); diff --git a/mGAP/src/org/labkey/mgap/mGAPModule.java b/mGAP/src/org/labkey/mgap/mGAPModule.java index 0ae6be113..9fb290638 100644 --- a/mGAP/src/org/labkey/mgap/mGAPModule.java +++ b/mGAP/src/org/labkey/mgap/mGAPModule.java @@ -68,7 +68,7 @@ public String getName() @Override public Double getSchemaVersion() { - return 16.66; + return 16.67; } @Override diff --git a/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java b/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java index 47def5f0d..e41515f38 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java +++ b/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java @@ -153,7 +153,7 @@ public void init(PipelineJob job, SequenceAnalysisJobSupport support, List> sourceFieldMap = new HashMap<>(); final HashMap> targetFieldMap = new HashMap<>(); - new TableSelector(QueryService.get().getUserSchema(getPipelineCtx().getJob().getUser(), targetContainer, mGAPSchema.NAME).getTable(mGAPSchema.TABLE_VARIANT_ANNOTATIONS)).forEachResults(rs -> { + new TableSelector(QueryService.get().getUserSchema(getPipelineCtx().getJob().getUser(), targetContainer, mGAPSchema.NAME).getTable(mGAPSchema.TABLE_VARIANT_ANNOTATIONS), PageFlowUtil.set("toolName", "sourceField", "infoKey")).forEachResults(rs -> { if (!sourceFieldMap.containsKey(rs.getString(FieldKey.fromString("toolName")))) { sourceFieldMap.put(rs.getString(FieldKey.fromString("toolName")), new ArrayList<>()); @@ -161,7 +161,7 @@ public void init(PipelineJob job, SequenceAnalysisJobSupport support, List Date: Mon, 3 Jul 2023 17:35:29 -0700 Subject: [PATCH 24/58] Rely on funcotator for clinvar annotation --- .../labkey/mgap/pipeline/AnnotationStep.java | 48 +------------------ .../pipeline/MultiSourceAnnotatorRunner.java | 5 +- 2 files changed, 3 insertions(+), 50 deletions(-) diff --git a/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java b/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java index e41515f38..4b16be19d 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java +++ b/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java @@ -58,7 +58,6 @@ public class AnnotationStep extends AbstractCommandPipelineStep implements VariantProcessingStep { public static final String GRCH37 = "genome37"; - private static final String CLINVAR_VCF = "clinvar37"; private static final String DBNSFP_FILE = "dbnsfpFile"; public static final String CHAIN_FILE = "CHAIN_FILE"; @@ -72,11 +71,7 @@ public static class Provider extends AbstractVariantProcessingStepProvider options) throws PipelineJobException + public File execute(File inputVcf, @Nullable File cassandraVcf, File liftoverRejects, @Nullable File funcotator, @Nullable File snpSift, File outputVcf, @Nullable List options) throws PipelineJobException { List args = getBaseArgs("MultiSourceAnnotator"); args.add("-V"); args.add(inputVcf.getPath()); - args.add("-cv"); - args.add(clinvarVcf.getPath()); - if (cassandraVcf != null) { args.add("-c"); From 1b3c563edab528a0b7de17989a1d16e49c883f46 Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 3 Jul 2023 17:38:32 -0700 Subject: [PATCH 25/58] Update field case --- mGAP/src/org/labkey/mgap/mGAPController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mGAP/src/org/labkey/mgap/mGAPController.java b/mGAP/src/org/labkey/mgap/mGAPController.java index d66a529d0..9a87fb452 100644 --- a/mGAP/src/org/labkey/mgap/mGAPController.java +++ b/mGAP/src/org/labkey/mgap/mGAPController.java @@ -1095,7 +1095,7 @@ public boolean handlePost(Object o, BindException errors) throws Exception row.put("label", line[header.indexOf("Label")]); row.put("dataSource", line[header.indexOf("DataSource")]); row.put("infoKey", line[header.indexOf("ID")]); - row.put("sourceField", line[header.indexOf("sourceField")]); + row.put("sourceField", line[header.indexOf("SourceField")]); row.put("dataType", line[header.indexOf("Type")]); row.put("dataNumber", line[header.indexOf("Number")]); row.put("description", line[header.indexOf("Description")]); From a01eda2201653e22dc706fc91fc103fa4dd062f3 Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 3 Jul 2023 18:02:58 -0700 Subject: [PATCH 26/58] Allow for more missing values in annotations --- mGAP/src/org/labkey/mgap/mGAPController.java | 30 +++++++------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/mGAP/src/org/labkey/mgap/mGAPController.java b/mGAP/src/org/labkey/mgap/mGAPController.java index 9a87fb452..3f642822f 100644 --- a/mGAP/src/org/labkey/mgap/mGAPController.java +++ b/mGAP/src/org/labkey/mgap/mGAPController.java @@ -1100,28 +1100,13 @@ public boolean handlePost(Object o, BindException errors) throws Exception row.put("dataNumber", line[header.indexOf("Number")]); row.put("description", line[header.indexOf("Description")]); row.put("url", line[header.indexOf("URL")]); - row.put("dataurl", line[header.indexOf("DataURL")]); row.put("toolName", line[header.indexOf("ToolName")]); - if (header.contains("Hidden")) - { - row.put("hidden", line[header.indexOf("Hidden")]); - } - - if (header.contains("FormatString") && line.length > header.indexOf("FormatString")) - { - row.put("formatString", line[header.indexOf("FormatString")]); - } - - if (header.contains("AllowableValues") && line.length > header.indexOf("AllowableValues")) - { - row.put("allowableValues", line[header.indexOf("AllowableValues")]); - } - - if (header.contains("IsIndexed") && line.length > header.indexOf("IsIndexed")) - { - row.put("isIndexed", line[header.indexOf("IsIndexed")]); - } + row.put("dataurl", getOptionalField(line, header, "DataURL")); + row.put("hidden", getOptionalField(line, header, "Hidden")); + row.put("formatString", getOptionalField(line, header, "FormatString")); + row.put("allowableValues", getOptionalField(line, header, "AllowableValues")); + row.put("isIndexed", getOptionalField(line, header, "IsIndexed")); toAdd.add(row); } @@ -1142,6 +1127,11 @@ public boolean handlePost(Object o, BindException errors) throws Exception return true; } + private String getOptionalField(String[] line, List header, String name) + { + return header.contains(name) && line.length > header.indexOf(name) ? line[header.indexOf(name)] : null; + } + @Override public void validateCommand(Object o, Errors errors) { From 313d13682d6d5f555448a23bc925626bc812d3a5 Mon Sep 17 00:00:00 2001 From: bbimber Date: Tue, 4 Jul 2023 05:52:15 -0700 Subject: [PATCH 27/58] Update code to load variant annotations --- mGAP/src/org/labkey/mgap/mGAPController.java | 17 ++++++++++------- .../src/org/labkey/test/tests/mcc/MccTest.java | 2 ++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/mGAP/src/org/labkey/mgap/mGAPController.java b/mGAP/src/org/labkey/mgap/mGAPController.java index 3f642822f..ad1fe7340 100644 --- a/mGAP/src/org/labkey/mgap/mGAPController.java +++ b/mGAP/src/org/labkey/mgap/mGAPController.java @@ -1102,11 +1102,11 @@ public boolean handlePost(Object o, BindException errors) throws Exception row.put("url", line[header.indexOf("URL")]); row.put("toolName", line[header.indexOf("ToolName")]); - row.put("dataurl", getOptionalField(line, header, "DataURL")); - row.put("hidden", getOptionalField(line, header, "Hidden")); - row.put("formatString", getOptionalField(line, header, "FormatString")); - row.put("allowableValues", getOptionalField(line, header, "AllowableValues")); - row.put("isIndexed", getOptionalField(line, header, "IsIndexed")); + getOptionalField(line, header, "DataURL", row, "dataurl"); + getOptionalField(line, header, "Hidden", row, "hidden"); + getOptionalField(line, header, "FormatString", row, "formatString"); + getOptionalField(line, header, "AllowableValues", row, "allowableValues"); + getOptionalField(line, header, "IsIndexed", row, "isIndexed"); toAdd.add(row); } @@ -1127,9 +1127,12 @@ public boolean handlePost(Object o, BindException errors) throws Exception return true; } - private String getOptionalField(String[] line, List header, String name) + private void getOptionalField(String[] line, List header, String name, Map row, String rowKey) { - return header.contains(name) && line.length > header.indexOf(name) ? line[header.indexOf(name)] : null; + if (header.contains(name) && line.length > header.indexOf(name)) + { + row.put(rowKey, line[header.indexOf(name)]); + } } @Override diff --git a/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java b/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java index 5ac369f69..4b2b371c0 100644 --- a/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java +++ b/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java @@ -917,6 +917,8 @@ private void doSetup() throws Exception importStudy(getProjectName() + "/Colonies/" + name); waitForElement(Locator.tagWithText("a", "Populate Lookups")); } + + goToHome(); } private void populateLookups(String name) From 5e45a28720ec5bc34ff9ca659773eabed8e17bbb Mon Sep 17 00:00:00 2001 From: bbimber Date: Tue, 4 Jul 2023 07:57:19 -0700 Subject: [PATCH 28/58] Improve MhcCleanupPipeline logging --- .../pipeline/MhcCleanupPipelineJob.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java index fe6212d3d..3af320cdc 100644 --- a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java +++ b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java @@ -44,6 +44,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Set; +import java.util.TreeSet; import java.util.concurrent.atomic.AtomicInteger; public class MhcCleanupPipelineJob extends PipelineJob @@ -158,6 +160,7 @@ public static class Factory extends AbstractTaskFactory existingData = new HashMap<>(); + SimpleFilter dataFilter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); + dataFilter.addCondition(FieldKey.fromString("percent_from_locus"), getPipelineJob().getLineageThreshold(), CompareType.GT); + new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_by_lineage"), PageFlowUtil.set("lineages", "percent_from_locus"), dataFilter, null).forEachResults(rs -> { + existingData.put(rs.getString(FieldKey.fromString("lineages")), rs.getDouble(FieldKey.fromString("percent_from_locus"))); + }); + // Delete low-freq lineages: if (getPipelineJob().getLineageThreshold() > 0) { @@ -391,6 +402,36 @@ private void processAnalysis(int analysisId) }); } } + + // verify ending data: + final Map endingData = new HashMap<>(); + new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_by_lineage"), PageFlowUtil.set("lineages", "percent_from_locus"), dataFilter, null).forEachResults(rs -> { + endingData.put(rs.getString(FieldKey.fromString("lineages")), rs.getDouble(FieldKey.fromString("percent_from_locus"))); + }); + + Set allLineages = new TreeSet<>(existingData.keySet()); + allLineages.addAll(endingData.keySet()); + allLineages.forEach(l -> { + if (!existingData.containsKey(l)) + { + getJob().getLogger().error("New lineage >0.25 for analysis: " + analysisId + ", " + l); + } + else if (!endingData.containsKey(l)) + { + if (!l.contains("\n")) + { + getJob().getLogger().error("Missing lineage >0.25 for analysis: " + analysisId + ", " + l); + } + } + else + { + double pctDiff = Math.abs(existingData.get(l) - endingData.get(l)) / existingData.get(l); + if (pctDiff > 0.3) + { + getJob().getLogger().error("Significant change in freq for lineage: " + l + ", for analysis: " + analysisId + ", change: " + existingData.get(l) + " -> " + endingData.get(l) + ", pct diff: " + pctDiff); + } + } + }); } private void deleteAlignmentSummaryAndJunction(List alignmentIdsToDelete, int analysisId, TableInfo alignmentSummary, TableInfo alignmentSummaryJunction, String reason) From b6fe13d429a6c5a61b9c2d9e1cd3377c5184d6e9 Mon Sep 17 00:00:00 2001 From: bbimber Date: Tue, 4 Jul 2023 09:10:19 -0700 Subject: [PATCH 29/58] Improve MhcCleanupPipeline logging --- .../org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java index 3af320cdc..54fc0efd1 100644 --- a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java +++ b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java @@ -414,13 +414,13 @@ private void processAnalysis(int analysisId) allLineages.forEach(l -> { if (!existingData.containsKey(l)) { - getJob().getLogger().error("New lineage >0.25 for analysis: " + analysisId + ", " + l); + getJob().getLogger().error("New lineage >0.25 for analysis: " + analysisId + ", " + l + ", value: " + endingData.get(l)); } else if (!endingData.containsKey(l)) { if (!l.contains("\n")) { - getJob().getLogger().error("Missing lineage >0.25 for analysis: " + analysisId + ", " + l); + getJob().getLogger().error("Missing lineage >0.25 for analysis: " + analysisId + ", " + l + ", value: " + existingData.get(l)); } } else From 858b2ab36f701052f3f97a6de3ecb8716e617c83 Mon Sep 17 00:00:00 2001 From: bbimber Date: Tue, 4 Jul 2023 09:23:34 -0700 Subject: [PATCH 30/58] Switch MhcCleanupPipeline to use transaction --- .../pipeline/MhcCleanupPipelineJob.java | 281 +++++++++--------- 1 file changed, 138 insertions(+), 143 deletions(-) diff --git a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java index 54fc0efd1..8adce1c63 100644 --- a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java +++ b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java @@ -5,6 +5,7 @@ import org.labkey.api.data.Container; import org.labkey.api.data.DbSchema; import org.labkey.api.data.DbSchemaType; +import org.labkey.api.data.DbScope; import org.labkey.api.data.SQLFragment; import org.labkey.api.data.SimpleFilter; import org.labkey.api.data.Sort; @@ -236,6 +237,7 @@ public RecordedActionSet run() throws PipelineJobException } int rowId = rs.getInt(FieldKey.fromString("rowId")); + getJob().setStatus(TaskStatus.running, "Processing: " + ai.get() + " of " + totalAnalyses); processAnalysis(rowId); }); @@ -254,196 +256,192 @@ public RecordedActionSet run() throws PipelineJobException private void processAnalysis(int analysisId) { getJob().getLogger().info("Processing: " + analysisId); - - TableInfo alignmentSummary = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary"); - TableInfo alignmentSummaryJunction = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary_junction"); - - // snapshot data: - final Map existingData = new HashMap<>(); - SimpleFilter dataFilter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); - dataFilter.addCondition(FieldKey.fromString("percent_from_locus"), getPipelineJob().getLineageThreshold(), CompareType.GT); - new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_by_lineage"), PageFlowUtil.set("lineages", "percent_from_locus"), dataFilter, null).forEachResults(rs -> { - existingData.put(rs.getString(FieldKey.fromString("lineages")), rs.getDouble(FieldKey.fromString("percent_from_locus"))); - }); - - // Delete low-freq lineages: - if (getPipelineJob().getLineageThreshold() > 0) + try (DbScope.Transaction transaction = DbScope.getLabKeyScope().ensureTransaction()) { - SimpleFilter filter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); - filter.addCondition(FieldKey.fromString("percent_from_locus"), getPipelineJob().getLineageThreshold(), CompareType.LT); + TableInfo alignmentSummary = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary"); + TableInfo alignmentSummaryJunction = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary_junction"); + + // snapshot data: + final Map existingData = new HashMap<>(); + SimpleFilter dataFilter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); + dataFilter.addCondition(FieldKey.fromString("percent_from_locus"), getPipelineJob().getLineageThreshold(), CompareType.GT); + new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_by_lineage"), PageFlowUtil.set("lineages", "percent_from_locus"), dataFilter, null).forEachResults(rs -> { + existingData.put(rs.getString(FieldKey.fromString("lineages")), rs.getDouble(FieldKey.fromString("percent_from_locus"))); + }); - List lowFreqRowIdList = new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_by_lineage"), PageFlowUtil.set("rowids"), filter, null).getArrayList(String.class); - if (!lowFreqRowIdList.isEmpty()) + // Delete low-freq lineages: + if (getPipelineJob().getLineageThreshold() > 0) { - getJob().getLogger().info("Analysis: " + analysisId + ", low freq lineages: " + lowFreqRowIdList.size()); - List alignmentIdsToDelete = lowFreqRowIdList.stream().map(x -> Arrays.asList(x.split(","))).flatMap(List::stream).map(Integer::parseInt).toList(); - if (!alignmentIdsToDelete.isEmpty()) + SimpleFilter filter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); + filter.addCondition(FieldKey.fromString("percent_from_locus"), getPipelineJob().getLineageThreshold(), CompareType.LT); + + List lowFreqRowIdList = new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_by_lineage"), PageFlowUtil.set("rowids"), filter, null).getArrayList(String.class); + if (!lowFreqRowIdList.isEmpty()) { - deleteAlignmentSummaryAndJunction(alignmentIdsToDelete, analysisId, alignmentSummary, alignmentSummaryJunction, "below lineage threshold"); + getJob().getLogger().info("Analysis: " + analysisId + ", low freq lineages: " + lowFreqRowIdList.size()); + List alignmentIdsToDelete = lowFreqRowIdList.stream().map(x -> Arrays.asList(x.split(","))).flatMap(List::stream).map(Integer::parseInt).toList(); + if (!alignmentIdsToDelete.isEmpty()) + { + deleteAlignmentSummaryAndJunction(alignmentIdsToDelete, analysisId, alignmentSummary, alignmentSummaryJunction, "below lineage threshold"); + } } } - } - - // Delete low-freq allele groups: - if (getPipelineJob().getAlleleGroupThreshold() > 0) - { - SimpleFilter filter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); - filter.addCondition(FieldKey.fromString("percent_from_locus"), getPipelineJob().getAlleleGroupThreshold(), CompareType.LT); - List lowFreqRowIdList = new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_grouped"), PageFlowUtil.set("rowids"), filter, null).getArrayList(String.class); - if (!lowFreqRowIdList.isEmpty()) + // Delete low-freq allele groups: + if (getPipelineJob().getAlleleGroupThreshold() > 0) { - getJob().getLogger().info("Analysis: " + analysisId + ", low freq allele groups: " + lowFreqRowIdList.size()); - List alignmentIdsToDelete = lowFreqRowIdList.stream().map(x -> Arrays.asList(x.split(","))).flatMap(List::stream).map(Integer::parseInt).toList(); - if (!alignmentIdsToDelete.isEmpty()) + SimpleFilter filter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); + filter.addCondition(FieldKey.fromString("percent_from_locus"), getPipelineJob().getAlleleGroupThreshold(), CompareType.LT); + + List lowFreqRowIdList = new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_grouped"), PageFlowUtil.set("rowids"), filter, null).getArrayList(String.class); + if (!lowFreqRowIdList.isEmpty()) { - deleteAlignmentSummaryAndJunction(alignmentIdsToDelete, analysisId, alignmentSummary, alignmentSummaryJunction, "below allele-group threshold"); + getJob().getLogger().info("Analysis: " + analysisId + ", low freq allele groups: " + lowFreqRowIdList.size()); + List alignmentIdsToDelete = lowFreqRowIdList.stream().map(x -> Arrays.asList(x.split(","))).flatMap(List::stream).map(Integer::parseInt).toList(); + if (!alignmentIdsToDelete.isEmpty()) + { + deleteAlignmentSummaryAndJunction(alignmentIdsToDelete, analysisId, alignmentSummary, alignmentSummaryJunction, "below allele-group threshold"); + } } } - } - - if (getPipelineJob().isDropDisabledResults()) - { - SimpleFilter filter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); - filter.addCondition(FieldKey.fromString("status"), false, CompareType.EQUAL); - List junctionRecordsToDelete = new TableSelector(alignmentSummaryJunction, PageFlowUtil.set("rowid"), filter, null).getArrayList(Integer.class); - if (!junctionRecordsToDelete.isEmpty()) + if (getPipelineJob().isDropDisabledResults()) { - getJob().getLogger().info("Deleting " + junctionRecordsToDelete.size() + " disabled records from alignment_summary_junction"); - alignmentSummaryJunctionDeleted.put("disabled records", alignmentSummaryJunctionDeleted.getOrDefault("disabled records", 0) + junctionRecordsToDelete.size()); - if (getPipelineJob().doPerformDeletes()) + SimpleFilter filter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); + filter.addCondition(FieldKey.fromString("status"), false, CompareType.EQUAL); + + List junctionRecordsToDelete = new TableSelector(alignmentSummaryJunction, PageFlowUtil.set("rowid"), filter, null).getArrayList(Integer.class); + if (!junctionRecordsToDelete.isEmpty()) { + getJob().getLogger().info("Deleting " + junctionRecordsToDelete.size() + " disabled records from alignment_summary_junction"); + alignmentSummaryJunctionDeleted.put("disabled records", alignmentSummaryJunctionDeleted.getOrDefault("disabled records", 0) + junctionRecordsToDelete.size()); junctionRecordsToDelete.forEach(rowId -> { Table.delete(alignmentSummaryJunction, rowId); }); } } - } - - if (getPipelineJob().isDropMultiLineageMHC()) - { - SimpleFilter filter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); - filter.addCondition(FieldKey.fromString("totalLineages"), 1, CompareType.GT); - filter.addCondition(FieldKey.fromString("loci"), "MHC", CompareType.CONTAINS); - List rowIdList = new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_grouped"), PageFlowUtil.set("rowids"), filter, null).getArrayList(String.class); - if (!rowIdList.isEmpty()) + if (getPipelineJob().isDropMultiLineageMHC()) { - getJob().getLogger().info("Analysis: " + analysisId + ", multi-lineage records: " + rowIdList.size()); - List alignmentIdsToDelete = rowIdList.stream().map(x -> Arrays.asList(x.split(","))).flatMap(List::stream).map(Integer::parseInt).toList(); - if (!alignmentIdsToDelete.isEmpty()) + SimpleFilter filter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); + filter.addCondition(FieldKey.fromString("totalLineages"), 1, CompareType.GT); + filter.addCondition(FieldKey.fromString("loci"), "MHC", CompareType.CONTAINS); + + List rowIdList = new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_grouped"), PageFlowUtil.set("rowids"), filter, null).getArrayList(String.class); + if (!rowIdList.isEmpty()) { - deleteAlignmentSummaryAndJunction(alignmentIdsToDelete, analysisId, alignmentSummary, alignmentSummaryJunction, "multi-lineage MHC"); + getJob().getLogger().info("Analysis: " + analysisId + ", multi-lineage records: " + rowIdList.size()); + List alignmentIdsToDelete = rowIdList.stream().map(x -> Arrays.asList(x.split(","))).flatMap(List::stream).map(Integer::parseInt).toList(); + if (!alignmentIdsToDelete.isEmpty()) + { + deleteAlignmentSummaryAndJunction(alignmentIdsToDelete, analysisId, alignmentSummary, alignmentSummaryJunction, "multi-lineage MHC"); + } } } - } - // Redundant groups: - if (getPipelineJob().isCombineRedundantGroups()) - { - SimpleFilter nAlignmentFilter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); - nAlignmentFilter.addCondition(FieldKey.fromString("nAlignments"), 1, CompareType.GT); - List redundantAlignmentSets = new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_grouped"), PageFlowUtil.set("rowids"), nAlignmentFilter, null).getArrayList(String.class); - if (!redundantAlignmentSets.isEmpty()) + // Redundant groups: + if (getPipelineJob().isCombineRedundantGroups()) { - getJob().getLogger().info("Analysis: " + analysisId + ", redundant alignment sets: " + redundantAlignmentSets.size()); - redundantAlignmentSets.forEach(x -> { - List alignmentIds = Arrays.stream(x.split(",")).map(Integer::parseInt).toList(); - if (!alignmentIds.isEmpty()) - { - final AtomicInteger rowIdToAppend = new AtomicInteger(-1); - final AtomicInteger originalTotal = new AtomicInteger(0); - final AtomicInteger totalToAppend = new AtomicInteger(0); - final List rowIdsToDelete = new ArrayList<>(); - new TableSelector(alignmentSummary, PageFlowUtil.set("rowid", "total"), new SimpleFilter(FieldKey.fromString("rowid"), alignmentIds, CompareType.IN), new Sort("-total")).forEachResults(rs -> { - if (rowIdToAppend.get() == -1) - { - rowIdToAppend.set(rs.getInt(FieldKey.fromString("rowid"))); - originalTotal.set(rs.getInt(FieldKey.fromString("total"))); - } - else - { - rowIdsToDelete.add(rs.getInt(FieldKey.fromString("rowid"))); - totalToAppend.getAndAdd(rs.getInt(FieldKey.fromString("total"))); - } - }); - - deleteAlignmentSummaryAndJunction(rowIdsToDelete, analysisId, alignmentSummary, alignmentSummaryJunction, "redundant allele sets"); - getJob().getLogger().info("increasing total by: " + totalToAppend.get()); - if (getPipelineJob().doPerformDeletes()) + SimpleFilter nAlignmentFilter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); + nAlignmentFilter.addCondition(FieldKey.fromString("nAlignments"), 1, CompareType.GT); + List redundantAlignmentSets = new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_grouped"), PageFlowUtil.set("rowids"), nAlignmentFilter, null).getArrayList(String.class); + if (!redundantAlignmentSets.isEmpty()) + { + getJob().getLogger().info("Analysis: " + analysisId + ", redundant alignment sets: " + redundantAlignmentSets.size()); + redundantAlignmentSets.forEach(x -> { + List alignmentIds = Arrays.stream(x.split(",")).map(Integer::parseInt).toList(); + if (!alignmentIds.isEmpty()) { + final AtomicInteger rowIdToAppend = new AtomicInteger(-1); + final AtomicInteger originalTotal = new AtomicInteger(0); + final AtomicInteger totalToAppend = new AtomicInteger(0); + final List rowIdsToDelete = new ArrayList<>(); + new TableSelector(alignmentSummary, PageFlowUtil.set("rowid", "total"), new SimpleFilter(FieldKey.fromString("rowid"), alignmentIds, CompareType.IN), new Sort("-total")).forEachResults(rs -> { + if (rowIdToAppend.get() == -1) + { + rowIdToAppend.set(rs.getInt(FieldKey.fromString("rowid"))); + originalTotal.set(rs.getInt(FieldKey.fromString("total"))); + } + else + { + rowIdsToDelete.add(rs.getInt(FieldKey.fromString("rowid"))); + totalToAppend.getAndAdd(rs.getInt(FieldKey.fromString("total"))); + } + }); + + deleteAlignmentSummaryAndJunction(rowIdsToDelete, analysisId, alignmentSummary, alignmentSummaryJunction, "redundant allele sets"); + getJob().getLogger().info("increasing total by: " + totalToAppend.get()); Map toUpdate = new CaseInsensitiveHashMap<>(); toUpdate.put("rowid", rowIdToAppend.get()); toUpdate.put("total", originalTotal.get() + totalToAppend.get()); Table.update(getJob().getUser(), alignmentSummary, toUpdate, rowIdToAppend.get()); } - } - }); + }); + } } - } - // Find alignment_summary records without any remaining results: - List alignmentIdsToDelete = new SqlSelector(alignmentSummary.getSchema().getScope(), - new SQLFragment("SELECT x.rowId FROM sequenceanalysis.alignment_summary x ") - .append(new SQLFragment("WHERE x.analysis_id = ? ", analysisId)) - .append(new SQLFragment(" AND x.valid_pairs IS NOT NULL")) - .append(new SQLFragment(" AND (SELECT count(*) FROM sequenceanalysis.alignment_summary_junction j WHERE j.analysis_id = ? AND j.alignment_id = x.rowid) = 0", analysisId)) - ).getArrayList(Integer.class); + // Find alignment_summary records without any remaining results: + List alignmentIdsToDelete = new SqlSelector(alignmentSummary.getSchema().getScope(), + new SQLFragment("SELECT x.rowId FROM sequenceanalysis.alignment_summary x ") + .append(new SQLFragment("WHERE x.analysis_id = ? ", analysisId)) + .append(new SQLFragment(" AND x.valid_pairs IS NOT NULL")) + .append(new SQLFragment(" AND (SELECT count(*) FROM sequenceanalysis.alignment_summary_junction j WHERE j.analysis_id = ? AND j.alignment_id = x.rowid) = 0", analysisId)) + ).getArrayList(Integer.class); - if (!alignmentIdsToDelete.isEmpty()) - { - getJob().getLogger().info("Deleting " + alignmentIdsToDelete.size() + " alignment_summary records lacking alignment_summary_junction"); - alignmentSummaryDeleted.put("lacking alignment_summary_junction records", alignmentSummaryDeleted.getOrDefault("lacking alignment_summary_junction records", 0) + alignmentIdsToDelete.size()); - if (getPipelineJob().doPerformDeletes()) + if (!alignmentIdsToDelete.isEmpty()) { + getJob().getLogger().info("Deleting " + alignmentIdsToDelete.size() + " alignment_summary records lacking alignment_summary_junction"); + alignmentSummaryDeleted.put("lacking alignment_summary_junction records", alignmentSummaryDeleted.getOrDefault("lacking alignment_summary_junction records", 0) + alignmentIdsToDelete.size()); alignmentIdsToDelete.forEach(rowId -> { Table.delete(alignmentSummary, rowId); }); } - } - // verify ending data: - final Map endingData = new HashMap<>(); - new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_by_lineage"), PageFlowUtil.set("lineages", "percent_from_locus"), dataFilter, null).forEachResults(rs -> { - endingData.put(rs.getString(FieldKey.fromString("lineages")), rs.getDouble(FieldKey.fromString("percent_from_locus"))); - }); + // verify ending data: + final Map endingData = new HashMap<>(); + new TableSelector(QueryService.get().getUserSchema(getJob().getUser(), getJob().getContainer(), "sequenceanalysis").getTable("alignment_summary_by_lineage"), PageFlowUtil.set("lineages", "percent_from_locus"), dataFilter, null).forEachResults(rs -> { + endingData.put(rs.getString(FieldKey.fromString("lineages")), rs.getDouble(FieldKey.fromString("percent_from_locus"))); + }); - Set allLineages = new TreeSet<>(existingData.keySet()); - allLineages.addAll(endingData.keySet()); - allLineages.forEach(l -> { - if (!existingData.containsKey(l)) - { - getJob().getLogger().error("New lineage >0.25 for analysis: " + analysisId + ", " + l + ", value: " + endingData.get(l)); - } - else if (!endingData.containsKey(l)) - { - if (!l.contains("\n")) + Set allLineages = new TreeSet<>(existingData.keySet()); + allLineages.addAll(endingData.keySet()); + allLineages.forEach(l -> { + if (!existingData.containsKey(l)) { - getJob().getLogger().error("Missing lineage >0.25 for analysis: " + analysisId + ", " + l + ", value: " + existingData.get(l)); + getJob().getLogger().error("New lineage >0.25 for analysis: " + analysisId + ", " + l + ", value: " + endingData.get(l)); } - } - else - { - double pctDiff = Math.abs(existingData.get(l) - endingData.get(l)) / existingData.get(l); - if (pctDiff > 0.3) + else if (!endingData.containsKey(l)) + { + if (!l.contains("\n")) + { + getJob().getLogger().error("Missing lineage >0.25 for analysis: " + analysisId + ", " + l + ", value: " + existingData.get(l)); + } + } + else { - getJob().getLogger().error("Significant change in freq for lineage: " + l + ", for analysis: " + analysisId + ", change: " + existingData.get(l) + " -> " + endingData.get(l) + ", pct diff: " + pctDiff); + double pctDiff = Math.abs(existingData.get(l) - endingData.get(l)) / existingData.get(l); + if (pctDiff > 0.3) + { + getJob().getLogger().error("Significant change in freq for lineage: " + l + ", for analysis: " + analysisId + ", change: " + existingData.get(l) + " -> " + endingData.get(l) + ", pct diff: " + pctDiff); + } } + }); + + if (getPipelineJob().doPerformDeletes()) + { + getJob().getLogger().info("committing changes"); + transaction.commit(); } - }); + } } private void deleteAlignmentSummaryAndJunction(List alignmentIdsToDelete, int analysisId, TableInfo alignmentSummary, TableInfo alignmentSummaryJunction, String reason) { getJob().getLogger().info("Deleting " + alignmentIdsToDelete.size() + " alignment_summary records. reason: " + reason); alignmentSummaryDeleted.put(reason, alignmentSummaryDeleted.getOrDefault(reason, 0) + alignmentIdsToDelete.size()); - if (getPipelineJob().doPerformDeletes()) - { - alignmentIdsToDelete.forEach(rowId -> { - Table.delete(alignmentSummary, rowId); - }); - } + alignmentIdsToDelete.forEach(rowId -> { + Table.delete(alignmentSummary, rowId); + }); // also junction records: SimpleFilter alignmentIdFilter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); @@ -453,12 +451,9 @@ private void deleteAlignmentSummaryAndJunction(List alignmentIdsToDelet if (!junctionRecordsToDelete.isEmpty()) { alignmentSummaryJunctionDeleted.put(reason, alignmentSummaryJunctionDeleted.getOrDefault(reason, 0) + junctionRecordsToDelete.size()); - if (getPipelineJob().doPerformDeletes()) - { - junctionRecordsToDelete.forEach(rowId -> { - Table.delete(alignmentSummaryJunction, rowId); - }); - } + junctionRecordsToDelete.forEach(rowId -> { + Table.delete(alignmentSummaryJunction, rowId); + }); } } } From d39d0e94abe5adcfebe839ee403d73ccff38c495 Mon Sep 17 00:00:00 2001 From: bbimber Date: Tue, 4 Jul 2023 10:10:16 -0700 Subject: [PATCH 31/58] Adjust logging thresholds for MhcCleanupPipeline --- .../primeseq/pipeline/MhcCleanupPipelineJob.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java index 8adce1c63..52ca1d4a2 100644 --- a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java +++ b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java @@ -1,5 +1,6 @@ package org.labkey.primeseq.pipeline; +import org.apache.logging.log4j.Level; import org.labkey.api.collections.CaseInsensitiveHashMap; import org.labkey.api.data.CompareType; import org.labkey.api.data.Container; @@ -408,21 +409,22 @@ private void processAnalysis(int analysisId) allLineages.forEach(l -> { if (!existingData.containsKey(l)) { - getJob().getLogger().error("New lineage >0.25 for analysis: " + analysisId + ", " + l + ", value: " + endingData.get(l)); + getJob().getLogger().error("New lineage >0.25 for analysis: " + analysisId + ", " + l + ", new value: " + endingData.get(l)); } else if (!endingData.containsKey(l)) { if (!l.contains("\n")) { - getJob().getLogger().error("Missing lineage >0.25 for analysis: " + analysisId + ", " + l + ", value: " + existingData.get(l)); + getJob().getLogger().error("Missing lineage >0.25 for analysis: " + analysisId + ", " + l + ", was: " + existingData.get(l)); } } else { double pctDiff = Math.abs(existingData.get(l) - endingData.get(l)) / existingData.get(l); - if (pctDiff > 0.3) + if (pctDiff > 0.35) { - getJob().getLogger().error("Significant change in freq for lineage: " + l + ", for analysis: " + analysisId + ", change: " + existingData.get(l) + " -> " + endingData.get(l) + ", pct diff: " + pctDiff); + Level lvl = existingData.get(l) > 2 ? Level.WARN : Level.ERROR; + getJob().getLogger().log(lvl, "Significant change in freq for lineage: " + l + ", for analysis: " + analysisId + ", change: " + existingData.get(l) + " -> " + endingData.get(l) + ", pct diff: " + pctDiff); } } }); From c20a4718af8e4460865fa29c7dbf3d662600a590 Mon Sep 17 00:00:00 2001 From: bbimber Date: Tue, 4 Jul 2023 14:22:55 -0700 Subject: [PATCH 32/58] Adjust logging thresholds for MhcCleanupPipeline --- .../src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java index 52ca1d4a2..d341057aa 100644 --- a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java +++ b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java @@ -423,7 +423,7 @@ else if (!endingData.containsKey(l)) double pctDiff = Math.abs(existingData.get(l) - endingData.get(l)) / existingData.get(l); if (pctDiff > 0.35) { - Level lvl = existingData.get(l) > 2 ? Level.WARN : Level.ERROR; + Level lvl = existingData.get(l) < 2 ? Level.INFO : Level.ERROR; getJob().getLogger().log(lvl, "Significant change in freq for lineage: " + l + ", for analysis: " + analysisId + ", change: " + existingData.get(l) + " -> " + endingData.get(l) + ", pct diff: " + pctDiff); } } From 92caec5ef91181e47ad715b2767e12950cd4a808 Mon Sep 17 00:00:00 2001 From: bbimber Date: Tue, 4 Jul 2023 23:18:09 -0700 Subject: [PATCH 33/58] Add additional MHC data collapse step --- .../pipeline/MhcCleanupPipelineJob.java | 187 ++++++++++++++++++ 1 file changed, 187 insertions(+) diff --git a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java index d341057aa..646a50973 100644 --- a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java +++ b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java @@ -1,6 +1,8 @@ package org.labkey.primeseq.pipeline; +import org.apache.commons.collections.CollectionUtils; import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.Logger; import org.labkey.api.collections.CaseInsensitiveHashMap; import org.labkey.api.data.CompareType; import org.labkey.api.data.Container; @@ -43,8 +45,10 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.List; +import java.util.ListIterator; import java.util.Map; import java.util.Set; import java.util.TreeSet; @@ -257,8 +261,12 @@ public RecordedActionSet run() throws PipelineJobException private void processAnalysis(int analysisId) { getJob().getLogger().info("Processing: " + analysisId); + try (DbScope.Transaction transaction = DbScope.getLabKeyScope().ensureTransaction()) { + AlignmentGroupCompare agc = new AlignmentGroupCompare(analysisId, getJob().getContainer(), getJob().getUser()); + agc.collapseGroups(getJob().getLogger()); + TableInfo alignmentSummary = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary"); TableInfo alignmentSummaryJunction = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary_junction"); @@ -459,4 +467,183 @@ private void deleteAlignmentSummaryAndJunction(List alignmentIdsToDelet } } } + + public static class AlignmentGroupCompare + { + private int analysisId; + private List groups = new ArrayList<>(); + + public AlignmentGroupCompare(final int analysisId, Container c, User u) + { + this.analysisId = analysisId; + + new TableSelector(QueryService.get().getUserSchema(u, c, "sequenceanalysis").getTable("alignment_summary_grouped"), PageFlowUtil.set("analysis_id", "alleles", "lineages", "totalLineages", "total_reads", "rowids"), new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId), null).forEachResults(rs -> { + if (rs.getString(FieldKey.fromString("alleles")) == null) + { + return; + } + + AlignmentGroup g = new AlignmentGroup(); + g.analysisId = analysisId; + g.alleles.addAll(Arrays.stream(rs.getString(FieldKey.fromString("alleles")).split("\n")).toList()); + g.lineages = rs.getString(FieldKey.fromString("lineages")); + g.totalLineages = rs.getInt(FieldKey.fromString("totalLineages")); + g.totalReads = rs.getInt(FieldKey.fromString("total_reads")); + g.rowIds.addAll(Arrays.stream(rs.getString(FieldKey.fromString("rowids")).split(",")).map(Integer::parseInt).toList()); + + groups.add(g); + }); + + sortGroups(); + } + + private void sortGroups() + { + groups.sort(Comparator.comparingInt(o -> o.alleles.size())); + Collections.reverse(groups); + } + + public void collapseGroups(Logger log) + { + final long initialCounts = groups.stream().map(x -> x.totalReads).mapToInt(Integer::intValue).sum(); + + if (groups.isEmpty()) + { + return; + } + + while (doCollapse(log)) + { + //do work. each time we have any groups collapsed, we will restart. once there are no collapsed allele groups, we finish + sortGroups(); + } + + final int endCounts = groups.stream().map(x -> x.totalReads).mapToInt(Integer::intValue).sum(); + if (initialCounts != endCounts) + { + throw new IllegalStateException("Starting/ending counts not equal: " + initialCounts + " / " + endCounts); + } + + List alignmentIdsToDelete = groups.stream().map(x -> x.rowIdsToDelete).flatMap(List::stream).toList(); + log.info("Alignment IDs to delete: " + alignmentIdsToDelete.size()); + + if (!alignmentIdsToDelete.isEmpty()) + { + log.info("Deleting " + alignmentIdsToDelete.size() + " alignment_summary records after collapse"); + TableInfo alignmentSummary = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary"); + TableInfo alignmentSummaryJunction = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary_junction"); + + alignmentIdsToDelete.forEach(rowId -> { + Table.delete(alignmentSummary, rowId); + }); + + // also junction records: + SimpleFilter alignmentIdFilter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); + alignmentIdFilter.addCondition(FieldKey.fromString("alignment_id"), alignmentIdsToDelete, CompareType.IN); + List junctionRecordsToDelete = new TableSelector(alignmentSummaryJunction, PageFlowUtil.set("rowid"), alignmentIdFilter, null).getArrayList(Integer.class); + log.info("Deleting " + junctionRecordsToDelete.size() + " alignment_summary_junction records"); + if (!junctionRecordsToDelete.isEmpty()) + { + junctionRecordsToDelete.forEach(rowId -> { + Table.delete(alignmentSummaryJunction, rowId); + }); + } + } + } + + private boolean doCollapse(Logger log) + { + ListIterator it = groups.listIterator(); + AlignmentGroup g1 = it.next(); + while (it.hasNext()) + { + if (compareGroupToOthers(g1)) + { + log.info("Collapsed: " + g1.lineages + ", with: " + g1.alleles.size()); + return true; // abort and restart the process with a new list iterator + } + + g1 = it.next(); + } + + return false; + } + + private boolean compareGroupToOthers(AlignmentGroup g1) + { + boolean didCollapse = false; + int idx = groups.indexOf(g1); + if (idx == groups.size() - 1) + { + return false; + } + + List groupsClone = new ArrayList<>(groups.subList(idx + 1, groups.size())); + ListIterator it = groupsClone.listIterator(); + while (it.hasNext()) + { + AlignmentGroup g2 = it.next(); + if (g2.equals(g1)) + { + throw new IllegalStateException("Should not happen"); + } + + if (g1.canCombine(g2)) + { + AlignmentGroup combined = g1.combine(g2); + groups.remove(g1); + groups.add(idx, combined); + g1 = combined; + groups.remove(g2); + + didCollapse = true; + } + } + + return didCollapse; + } + + public static class AlignmentGroup + { + int analysisId; + Set alleles = new TreeSet<>(); + String lineages; + int totalLineages; + int totalReads; + List rowIds = new ArrayList<>(); + + List rowIdsToDelete = new ArrayList<>(); + + public boolean canCombine(AlignmentGroup g2) + { + if (this.totalLineages > 1 || g2.totalLineages > 1 || this.alleles.size() < 4 || g2.alleles.size() < 4) + { + return false; + } + + return CollectionUtils.disjunction(this.alleles, g2.alleles).size() == 1; + } + + public AlignmentGroup combine(AlignmentGroup g2) + { + // Take the larger allele set: + if (g2.alleles.size() > this.alleles.size()) + { + g2.rowIdsToDelete.addAll(this.rowIds); + g2.rowIdsToDelete.addAll(this.rowIdsToDelete); + g2.totalReads = g2.totalReads + totalReads; + + return g2; + } + else + { + this.rowIdsToDelete.addAll(g2.rowIds); + this.rowIdsToDelete.addAll(g2.rowIdsToDelete); + this.totalReads = g2.totalReads + totalReads; + + return this; + } + } + } + } } From e87ebf67af8576c79542fc8ca0375c77a5f0ac9c Mon Sep 17 00:00:00 2001 From: bbimber Date: Wed, 5 Jul 2023 13:00:21 -0700 Subject: [PATCH 34/58] Update location for MHC cleanup job --- primeseq/webapp/WEB-INF/primeseqContext.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/primeseq/webapp/WEB-INF/primeseqContext.xml b/primeseq/webapp/WEB-INF/primeseqContext.xml index b88fbb794..0cb854609 100644 --- a/primeseq/webapp/WEB-INF/primeseqContext.xml +++ b/primeseq/webapp/WEB-INF/primeseqContext.xml @@ -7,7 +7,7 @@ - + From c2b66c3d629f33099fbf9ad1311baf7ea4764187 Mon Sep 17 00:00:00 2001 From: bbimber Date: Wed, 5 Jul 2023 16:11:43 -0700 Subject: [PATCH 35/58] Reduce logging for MHC cleanup job --- .../org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java index 646a50973..ec3ea0b8b 100644 --- a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java +++ b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java @@ -417,13 +417,13 @@ private void processAnalysis(int analysisId) allLineages.forEach(l -> { if (!existingData.containsKey(l)) { - getJob().getLogger().error("New lineage >0.25 for analysis: " + analysisId + ", " + l + ", new value: " + endingData.get(l)); + getJob().getLogger().warn("New lineage >0.25 for analysis: " + analysisId + ", " + l + ", new value: " + endingData.get(l)); } else if (!endingData.containsKey(l)) { if (!l.contains("\n")) { - getJob().getLogger().error("Missing lineage >0.25 for analysis: " + analysisId + ", " + l + ", was: " + existingData.get(l)); + getJob().getLogger().warn("Missing lineage >0.25 for analysis: " + analysisId + ", " + l + ", was: " + existingData.get(l)); } } else @@ -431,7 +431,7 @@ else if (!endingData.containsKey(l)) double pctDiff = Math.abs(existingData.get(l) - endingData.get(l)) / existingData.get(l); if (pctDiff > 0.35) { - Level lvl = existingData.get(l) < 2 ? Level.INFO : Level.ERROR; + Level lvl = existingData.get(l) < 2 ? Level.INFO : Level.WARN; getJob().getLogger().log(lvl, "Significant change in freq for lineage: " + l + ", for analysis: " + analysisId + ", change: " + existingData.get(l) + " -> " + endingData.get(l) + ", pct diff: " + pctDiff); } } From 735b8e229cff2fd09803a8d82ebe310510075266 Mon Sep 17 00:00:00 2001 From: bbimber Date: Thu, 6 Jul 2023 13:58:24 -0700 Subject: [PATCH 36/58] Fix error in MCC import --- mcc/resources/web/mcc/panel/MccImportPanel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mcc/resources/web/mcc/panel/MccImportPanel.js b/mcc/resources/web/mcc/panel/MccImportPanel.js index f2a385072..5b4fa157c 100644 --- a/mcc/resources/web/mcc/panel/MccImportPanel.js +++ b/mcc/resources/web/mcc/panel/MccImportPanel.js @@ -806,7 +806,7 @@ Ext4.define('MCC.panel.MccImportPanel', { if (departureInserts.length) { commands.push({ - type: 'insert', + command: 'insert', schemaName: 'study', queryName: 'departure', rows: departureInserts From f2f18c68000cd1349b4e50d157cee5b1f8285241 Mon Sep 17 00:00:00 2001 From: bbimber Date: Thu, 6 Jul 2023 16:04:38 -0700 Subject: [PATCH 37/58] Improvements to MHC cleanup pipeline --- .../org/labkey/primeseq/PrimeseqModule.java | 2 + .../pipeline/MhcCleanupPipelineJob.java | 65 +++++++++++++++++-- .../query/PerformMhcCleanupButton.java | 19 ++++++ 3 files changed, 79 insertions(+), 7 deletions(-) create mode 100644 primeseq/src/org/labkey/primeseq/query/PerformMhcCleanupButton.java diff --git a/primeseq/src/org/labkey/primeseq/PrimeseqModule.java b/primeseq/src/org/labkey/primeseq/PrimeseqModule.java index c53988b3e..30addf401 100644 --- a/primeseq/src/org/labkey/primeseq/PrimeseqModule.java +++ b/primeseq/src/org/labkey/primeseq/PrimeseqModule.java @@ -41,6 +41,7 @@ import org.labkey.primeseq.pipeline.GeographicOriginStep; import org.labkey.primeseq.pipeline.MhcCleanupPipelineJob; import org.labkey.primeseq.pipeline.SequenceJobResourceAllocator; +import org.labkey.primeseq.query.PerformMhcCleanupButton; import org.labkey.primeseq.query.UpdateResourcesButton; import java.util.Collection; @@ -86,6 +87,7 @@ protected void doStartupAfterSpringConfig(ModuleContext moduleContext) new PipelineStartup(); LDKService.get().registerQueryButton(new UpdateResourcesButton(), "pipeline", "job"); + LDKService.get().registerQueryButton(new PerformMhcCleanupButton(), "sequenceanalysis", "sequence_analyses"); } @Override diff --git a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java index ec3ea0b8b..039040ad9 100644 --- a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java +++ b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java @@ -53,6 +53,7 @@ import java.util.Set; import java.util.TreeSet; import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; public class MhcCleanupPipelineJob extends PipelineJob { @@ -60,8 +61,8 @@ public class MhcCleanupPipelineJob extends PipelineJob private int _minAnalysisId; private boolean _dropDisabledResults = true; - private double _lineageThreshold = 0.25; - private double _alleleGroupThreshold = 0.1; + private double _lineageThreshold = 0.20; + private double _alleleGroupThreshold = 0.05; private boolean _dropMultiLineageMHC = true; private boolean _combineRedundantGroups = true; @@ -265,7 +266,7 @@ private void processAnalysis(int analysisId) try (DbScope.Transaction transaction = DbScope.getLabKeyScope().ensureTransaction()) { AlignmentGroupCompare agc = new AlignmentGroupCompare(analysisId, getJob().getContainer(), getJob().getUser()); - agc.collapseGroups(getJob().getLogger()); + agc.collapseGroups(getJob().getLogger(), getJob().getUser()); TableInfo alignmentSummary = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary"); TableInfo alignmentSummaryJunction = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary_junction"); @@ -364,8 +365,11 @@ private void processAnalysis(int analysisId) final AtomicInteger rowIdToAppend = new AtomicInteger(-1); final AtomicInteger originalTotal = new AtomicInteger(0); final AtomicInteger totalToAppend = new AtomicInteger(0); + final AtomicInteger totalF = new AtomicInteger(0); + final AtomicInteger totalR = new AtomicInteger(0); + final AtomicInteger totalVP = new AtomicInteger(0); final List rowIdsToDelete = new ArrayList<>(); - new TableSelector(alignmentSummary, PageFlowUtil.set("rowid", "total"), new SimpleFilter(FieldKey.fromString("rowid"), alignmentIds, CompareType.IN), new Sort("-total")).forEachResults(rs -> { + new TableSelector(alignmentSummary, PageFlowUtil.set("rowid", "total", "total_forward", "total_reverse", "valid_pairs"), new SimpleFilter(FieldKey.fromString("rowid"), alignmentIds, CompareType.IN), new Sort("-total")).forEachResults(rs -> { if (rowIdToAppend.get() == -1) { rowIdToAppend.set(rs.getInt(FieldKey.fromString("rowid"))); @@ -376,13 +380,21 @@ private void processAnalysis(int analysisId) rowIdsToDelete.add(rs.getInt(FieldKey.fromString("rowid"))); totalToAppend.getAndAdd(rs.getInt(FieldKey.fromString("total"))); } + + // Just keep a running total, rather than separate new/old: + totalF.getAndAdd(rs.getInt(FieldKey.fromString("total_forward"))); + totalR.getAndAdd(rs.getInt(FieldKey.fromString("total_reverse"))); + totalVP.getAndAdd(rs.getInt(FieldKey.fromString("valid_pairs"))); }); deleteAlignmentSummaryAndJunction(rowIdsToDelete, analysisId, alignmentSummary, alignmentSummaryJunction, "redundant allele sets"); - getJob().getLogger().info("increasing total by: " + totalToAppend.get()); + getJob().getLogger().info("increasing total by: " + totalToAppend.get() + ", from: " + originalTotal.get()); Map toUpdate = new CaseInsensitiveHashMap<>(); toUpdate.put("rowid", rowIdToAppend.get()); toUpdate.put("total", originalTotal.get() + totalToAppend.get()); + toUpdate.put("total_forward", totalF.get()); + toUpdate.put("total_reverse", totalR.get()); + toUpdate.put("valid_pairs", totalVP.get()); Table.update(getJob().getUser(), alignmentSummary, toUpdate, rowIdToAppend.get()); } }); @@ -442,6 +454,10 @@ else if (!endingData.containsKey(l)) getJob().getLogger().info("committing changes"); transaction.commit(); } + else + { + getJob().getLogger().info("will not commit, rolling back changes"); + } } } @@ -477,7 +493,7 @@ public AlignmentGroupCompare(final int analysisId, Container c, User u) { this.analysisId = analysisId; - new TableSelector(QueryService.get().getUserSchema(u, c, "sequenceanalysis").getTable("alignment_summary_grouped"), PageFlowUtil.set("analysis_id", "alleles", "lineages", "totalLineages", "total_reads", "rowids"), new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId), null).forEachResults(rs -> { + new TableSelector(QueryService.get().getUserSchema(u, c, "sequenceanalysis").getTable("alignment_summary_grouped"), PageFlowUtil.set("analysis_id", "alleles", "lineages", "totalLineages", "total_reads", "total_forward", "total_reverse", "valid_pairs", "rowids"), new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId), null).forEachResults(rs -> { if (rs.getString(FieldKey.fromString("alleles")) == null) { return; @@ -489,6 +505,9 @@ public AlignmentGroupCompare(final int analysisId, Container c, User u) g.lineages = rs.getString(FieldKey.fromString("lineages")); g.totalLineages = rs.getInt(FieldKey.fromString("totalLineages")); g.totalReads = rs.getInt(FieldKey.fromString("total_reads")); + g.totalForward = rs.getInt(FieldKey.fromString("total_forward")); + g.totalReverse = rs.getInt(FieldKey.fromString("total_reverse")); + g.validPairs = rs.getInt(FieldKey.fromString("valid_pairs")); g.rowIds.addAll(Arrays.stream(rs.getString(FieldKey.fromString("rowids")).split(",")).map(Integer::parseInt).toList()); groups.add(g); @@ -503,7 +522,7 @@ private void sortGroups() Collections.reverse(groups); } - public void collapseGroups(Logger log) + public void collapseGroups(Logger log, User user) { final long initialCounts = groups.stream().map(x -> x.totalReads).mapToInt(Integer::intValue).sum(); @@ -525,7 +544,30 @@ public void collapseGroups(Logger log) } List alignmentIdsToDelete = groups.stream().map(x -> x.rowIdsToDelete).flatMap(List::stream).toList(); + List alignmentGroupsToUpdate = groups.stream().filter(g -> !g.rowIdsToDelete.isEmpty()).toList(); log.info("Alignment IDs to delete: " + alignmentIdsToDelete.size()); + log.info("Alignment groups to update counts: " + alignmentGroupsToUpdate.size()); + + if (!alignmentGroupsToUpdate.isEmpty()) + { + log.info("Updating counts in " + alignmentGroupsToUpdate.size() + " groups after collapse"); + TableInfo alignmentSummary = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary"); + + alignmentGroupsToUpdate.forEach(ag -> { + Map toUpdate = new CaseInsensitiveHashMap<>(); + toUpdate.put("rowId", ag.rowIds.get(0)); + toUpdate.put("total", ag.totalReads); + toUpdate.put("total_forward", ag.totalForward); + toUpdate.put("total_reverse", ag.totalReverse); + toUpdate.put("valid_pairs", ag.validPairs); + Table.update(user, alignmentSummary, toUpdate, ag.rowIds.get(0)); + + if (ag.rowIds.size() > 1) { + log.info("The following IDs are redundant and will also be removed: " + ag.rowIds.subList(1, ag.rowIds.size()).stream().map(String::valueOf).collect(Collectors.joining(", "))); + alignmentIdsToDelete.addAll(ag.rowIds.subList(1, ag.rowIds.size())); + } + }); + } if (!alignmentIdsToDelete.isEmpty()) { @@ -610,6 +652,9 @@ public static class AlignmentGroup String lineages; int totalLineages; int totalReads; + int totalForward; + int totalReverse; + int validPairs; List rowIds = new ArrayList<>(); List rowIdsToDelete = new ArrayList<>(); @@ -632,6 +677,9 @@ public AlignmentGroup combine(AlignmentGroup g2) g2.rowIdsToDelete.addAll(this.rowIds); g2.rowIdsToDelete.addAll(this.rowIdsToDelete); g2.totalReads = g2.totalReads + totalReads; + g2.totalForward = g2.totalForward + totalForward; + g2.totalReverse = g2.totalReverse + totalReverse; + g2.validPairs = g2.validPairs + validPairs; return g2; } @@ -640,6 +688,9 @@ public AlignmentGroup combine(AlignmentGroup g2) this.rowIdsToDelete.addAll(g2.rowIds); this.rowIdsToDelete.addAll(g2.rowIdsToDelete); this.totalReads = g2.totalReads + totalReads; + this.totalForward = g2.totalForward + totalForward; + this.totalReverse = g2.totalReverse + totalReverse; + this.validPairs = g2.validPairs + validPairs; return this; } diff --git a/primeseq/src/org/labkey/primeseq/query/PerformMhcCleanupButton.java b/primeseq/src/org/labkey/primeseq/query/PerformMhcCleanupButton.java new file mode 100644 index 000000000..944bc2298 --- /dev/null +++ b/primeseq/src/org/labkey/primeseq/query/PerformMhcCleanupButton.java @@ -0,0 +1,19 @@ +package org.labkey.primeseq.query; + +import org.labkey.api.data.ContainerManager; +import org.labkey.api.data.TableInfo; +import org.labkey.api.ldk.table.SimpleButtonConfigFactory; +import org.labkey.api.module.ModuleLoader; +import org.labkey.api.query.DetailsURL; +import org.labkey.api.view.template.ClientDependency; +import org.labkey.primeseq.PrimeseqModule; + +import java.util.Arrays; + +public class PerformMhcCleanupButton extends SimpleButtonConfigFactory +{ + public PerformMhcCleanupButton() + { + super(ModuleLoader.getInstance().getModule(PrimeseqModule.class), "Perform MHC Cleanup", DetailsURL.fromString("primeseq/performMhcCleanup.view")); + } +} \ No newline at end of file From ea8a83c46783df74de16a87eb445c1437baa4e7e Mon Sep 17 00:00:00 2001 From: bbimber Date: Thu, 6 Jul 2023 17:03:45 -0700 Subject: [PATCH 38/58] Fix longstanding bug in MhcMigrationPipelineJob --- .../org/labkey/primeseq/pipeline/MhcMigrationPipelineJob.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/primeseq/src/org/labkey/primeseq/pipeline/MhcMigrationPipelineJob.java b/primeseq/src/org/labkey/primeseq/pipeline/MhcMigrationPipelineJob.java index 15f015b51..339b31543 100644 --- a/primeseq/src/org/labkey/primeseq/pipeline/MhcMigrationPipelineJob.java +++ b/primeseq/src/org/labkey/primeseq/pipeline/MhcMigrationPipelineJob.java @@ -449,8 +449,7 @@ private void createAlignmentSummary() throws PipelineJobException } map.put("ref_nt_id", localNT); map.put("status", rs.getValue("status")); - - map.put("alignment_id", alignmentSummaryMap.get("alignment_id")); + map.put("alignment_id", alignmentSummaryMap.get(rs.getValue("alignment_id"))); Container c = workbookMap.get((int) rs.getValue("analysis_id/workbook/workbookId")); map.put("container", c.getId()); From d00c595df13dd02ff5a52d9dcffec875b2cf774c Mon Sep 17 00:00:00 2001 From: bbimber Date: Thu, 6 Jul 2023 22:10:49 -0700 Subject: [PATCH 39/58] Improve MhcCleanupPipelineJob and include group collapsing code in SequenceBasedTypingAnalysis --- .../pipeline/MhcCleanupPipelineJob.java | 32 +++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java index 039040ad9..f4316a382 100644 --- a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java +++ b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java @@ -37,6 +37,7 @@ import org.labkey.api.util.FileType; import org.labkey.api.util.FileUtil; import org.labkey.api.util.PageFlowUtil; +import org.labkey.api.util.Pair; import org.labkey.api.view.ActionURL; import org.labkey.api.view.ViewBackgroundInfo; import org.labkey.api.view.ViewContext; @@ -266,7 +267,18 @@ private void processAnalysis(int analysisId) try (DbScope.Transaction transaction = DbScope.getLabKeyScope().ensureTransaction()) { AlignmentGroupCompare agc = new AlignmentGroupCompare(analysisId, getJob().getContainer(), getJob().getUser()); - agc.collapseGroups(getJob().getLogger(), getJob().getUser()); + Pair collapsed = agc.collapseGroups(getJob().getLogger(), getJob().getUser()); + if (!alignmentSummaryDeleted.containsKey("collapsed groups")) + { + alignmentSummaryDeleted.put("collapsed groups", 0); + } + alignmentSummaryDeleted.put("collapsed groups", alignmentSummaryDeleted.get("collapsed groups") + collapsed.first); + + if (!alignmentSummaryJunctionDeleted.containsKey("collapsed groups")) + { + alignmentSummaryJunctionDeleted.put("collapsed groups", 0); + } + alignmentSummaryJunctionDeleted.put("collapsed groups", alignmentSummaryJunctionDeleted.get("collapsed groups") + collapsed.second); TableInfo alignmentSummary = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary"); TableInfo alignmentSummaryJunction = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary_junction"); @@ -454,10 +466,6 @@ else if (!endingData.containsKey(l)) getJob().getLogger().info("committing changes"); transaction.commit(); } - else - { - getJob().getLogger().info("will not commit, rolling back changes"); - } } } @@ -486,8 +494,8 @@ private void deleteAlignmentSummaryAndJunction(List alignmentIdsToDelet public static class AlignmentGroupCompare { - private int analysisId; - private List groups = new ArrayList<>(); + private final int analysisId; + private final List groups = new ArrayList<>(); public AlignmentGroupCompare(final int analysisId, Container c, User u) { @@ -522,15 +530,16 @@ private void sortGroups() Collections.reverse(groups); } - public void collapseGroups(Logger log, User user) + public Pair collapseGroups(Logger log, User user) { final long initialCounts = groups.stream().map(x -> x.totalReads).mapToInt(Integer::intValue).sum(); if (groups.isEmpty()) { - return; + return null; } + Pair ret = Pair.of(0, 0); while (doCollapse(log)) { //do work. each time we have any groups collapsed, we will restart. once there are no collapsed allele groups, we finish @@ -572,12 +581,14 @@ public void collapseGroups(Logger log, User user) if (!alignmentIdsToDelete.isEmpty()) { log.info("Deleting " + alignmentIdsToDelete.size() + " alignment_summary records after collapse"); + TableInfo alignmentSummary = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary"); TableInfo alignmentSummaryJunction = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary_junction"); alignmentIdsToDelete.forEach(rowId -> { Table.delete(alignmentSummary, rowId); }); + ret.first += alignmentIdsToDelete.size(); // also junction records: SimpleFilter alignmentIdFilter = new SimpleFilter(FieldKey.fromString("analysis_id"), analysisId, CompareType.EQUAL); @@ -589,8 +600,11 @@ public void collapseGroups(Logger log, User user) junctionRecordsToDelete.forEach(rowId -> { Table.delete(alignmentSummaryJunction, rowId); }); + ret.second += junctionRecordsToDelete.size(); } } + + return ret; } private boolean doCollapse(Logger log) From e7d4b6fcf4d0901079008999c0aea79738301bbd Mon Sep 17 00:00:00 2001 From: bbimber Date: Fri, 7 Jul 2023 06:48:37 -0700 Subject: [PATCH 40/58] Improve MHC group collapsing code --- .../pipeline/MhcCleanupPipelineJob.java | 79 +++++++++++++------ 1 file changed, 56 insertions(+), 23 deletions(-) diff --git a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java index f4316a382..5718f4edf 100644 --- a/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java +++ b/primeseq/src/org/labkey/primeseq/pipeline/MhcCleanupPipelineJob.java @@ -45,6 +45,7 @@ import java.io.File; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; @@ -55,6 +56,7 @@ import java.util.TreeSet; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; +import java.util.stream.Stream; public class MhcCleanupPipelineJob extends PipelineJob { @@ -62,8 +64,8 @@ public class MhcCleanupPipelineJob extends PipelineJob private int _minAnalysisId; private boolean _dropDisabledResults = true; - private double _lineageThreshold = 0.20; - private double _alleleGroupThreshold = 0.05; + private double _lineageThreshold = 0.15; + private double _alleleGroupThreshold = 0.02; private boolean _dropMultiLineageMHC = true; private boolean _combineRedundantGroups = true; @@ -216,8 +218,11 @@ public RecordedActionSet run() throws PipelineJobException TableInfo alignmentSummary = sequenceAnalysisSchema.getTable("alignment_summary"); TableInfo alignmentSummaryJunction = sequenceAnalysisSchema.getTable("alignment_summary_junction"); - getJob().getLogger().info("Starting rows in alignment_summary: " + new TableSelector(alignmentSummary).getRowCount()); - getJob().getLogger().info("Starting rows in alignment_summary_junction: " + new TableSelector(alignmentSummaryJunction).getRowCount()); + long startingRowsAlignmentSummary = new TableSelector(alignmentSummary).getRowCount(); + getJob().getLogger().info("Starting rows in alignment_summary: " + startingRowsAlignmentSummary); + + long startingRowsAlignmentSummaryJ = new TableSelector(alignmentSummaryJunction).getRowCount(); + getJob().getLogger().info("Starting rows in alignment_summary_junction: " + startingRowsAlignmentSummaryJ); getJob().getLogger().info(getPipelineJob().doPerformDeletes() ? "**This is a production run, records will be deleted" : "**This is a test run, records will not be deleted"); // Iterate each analysis: @@ -254,8 +259,8 @@ public RecordedActionSet run() throws PipelineJobException getJob().getLogger().info("Deleted rows in alignment_summary_junction: "); alignmentSummaryJunctionDeleted.keySet().forEach(x -> getJob().getLogger().info(x + ": " + alignmentSummaryJunctionDeleted.get(x))); - getJob().getLogger().info("Ending rows in alignment_summary: " + new TableSelector(alignmentSummary).getRowCount()); - getJob().getLogger().info("Ending rows in alignment_summary_junction: " + new TableSelector(alignmentSummaryJunction).getRowCount()); + getJob().getLogger().info("Ending rows in alignment_summary: " + new TableSelector(alignmentSummary).getRowCount() + " (from " + startingRowsAlignmentSummary + ")"); + getJob().getLogger().info("Ending rows in alignment_summary_junction: " + new TableSelector(alignmentSummaryJunction).getRowCount() + " (from " + startingRowsAlignmentSummaryJ + ")"); return new RecordedActionSet(); } @@ -266,20 +271,6 @@ private void processAnalysis(int analysisId) try (DbScope.Transaction transaction = DbScope.getLabKeyScope().ensureTransaction()) { - AlignmentGroupCompare agc = new AlignmentGroupCompare(analysisId, getJob().getContainer(), getJob().getUser()); - Pair collapsed = agc.collapseGroups(getJob().getLogger(), getJob().getUser()); - if (!alignmentSummaryDeleted.containsKey("collapsed groups")) - { - alignmentSummaryDeleted.put("collapsed groups", 0); - } - alignmentSummaryDeleted.put("collapsed groups", alignmentSummaryDeleted.get("collapsed groups") + collapsed.first); - - if (!alignmentSummaryJunctionDeleted.containsKey("collapsed groups")) - { - alignmentSummaryJunctionDeleted.put("collapsed groups", 0); - } - alignmentSummaryJunctionDeleted.put("collapsed groups", alignmentSummaryJunctionDeleted.get("collapsed groups") + collapsed.second); - TableInfo alignmentSummary = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary"); TableInfo alignmentSummaryJunction = DbSchema.get("sequenceanalysis", DbSchemaType.Module).getTable("alignment_summary_junction"); @@ -291,6 +282,24 @@ private void processAnalysis(int analysisId) existingData.put(rs.getString(FieldKey.fromString("lineages")), rs.getDouble(FieldKey.fromString("percent_from_locus"))); }); + // This is important to run first, since it will adjust percentages for many: + AlignmentGroupCompare agc = new AlignmentGroupCompare(analysisId, getJob().getContainer(), getJob().getUser()); + Pair collapsed = agc.collapseGroups(getJob().getLogger(), getJob().getUser()); + if (collapsed != null) + { + if (!alignmentSummaryDeleted.containsKey("collapsed groups")) + { + alignmentSummaryDeleted.put("collapsed groups", 0); + } + alignmentSummaryDeleted.put("collapsed groups", alignmentSummaryDeleted.get("collapsed groups") + collapsed.first); + + if (!alignmentSummaryJunctionDeleted.containsKey("collapsed groups")) + { + alignmentSummaryJunctionDeleted.put("collapsed groups", 0); + } + alignmentSummaryJunctionDeleted.put("collapsed groups", alignmentSummaryJunctionDeleted.get("collapsed groups") + collapsed.second); + } + // Delete low-freq lineages: if (getPipelineJob().getLineageThreshold() > 0) { @@ -613,9 +622,10 @@ private boolean doCollapse(Logger log) AlignmentGroup g1 = it.next(); while (it.hasNext()) { + int orig = g1.alleles.size(); if (compareGroupToOthers(g1)) { - log.info("Collapsed: " + g1.lineages + ", with: " + g1.alleles.size()); + log.info("Collapsed: " + g1.lineages + ", from: " + orig + " to " + g1.alleles.size() + " alleles"); return true; // abort and restart the process with a new list iterator } @@ -680,14 +690,36 @@ public boolean canCombine(AlignmentGroup g2) return false; } - return CollectionUtils.disjunction(this.alleles, g2.alleles).size() == 1; + // Allow greater level of collapse with highly ambiguous results: + // Require similar sizes, but disjoint allele sets (e.g., A/B/D and A/C/D, but not A/B/C and A/D/E) + int setDiffThreshold; + int sizeDiffThreshold; + if (this.alleles.size() >= 16) + { + setDiffThreshold = 6; + sizeDiffThreshold = 3; + } + else if (this.alleles.size() >= 8) + { + setDiffThreshold = 4; + sizeDiffThreshold = 2; + } + else + { + setDiffThreshold = 2; + sizeDiffThreshold = 1; + } + + return Math.abs(this.alleles.size() - g2.alleles.size()) <= sizeDiffThreshold && CollectionUtils.disjunction(this.alleles, g2.alleles).size() <= setDiffThreshold; } public AlignmentGroup combine(AlignmentGroup g2) { - // Take the larger allele set: + // Take the union of the allele sets: + TreeSet allAlleles = Stream.of(this.alleles, g2.alleles).flatMap(Collection::stream).collect(Collectors.toCollection(TreeSet::new)); if (g2.alleles.size() > this.alleles.size()) { + g2.alleles = allAlleles; g2.rowIdsToDelete.addAll(this.rowIds); g2.rowIdsToDelete.addAll(this.rowIdsToDelete); g2.totalReads = g2.totalReads + totalReads; @@ -699,6 +731,7 @@ public AlignmentGroup combine(AlignmentGroup g2) } else { + this.alleles = allAlleles; this.rowIdsToDelete.addAll(g2.rowIds); this.rowIdsToDelete.addAll(g2.rowIdsToDelete); this.totalReads = g2.totalReads + totalReads; From ea43474d935831f554be3acfc38b162b945b2527 Mon Sep 17 00:00:00 2001 From: bbimber Date: Fri, 7 Jul 2023 08:23:37 -0700 Subject: [PATCH 41/58] Allow ref VCF to be optional --- .../labkey/mgap/pipeline/GroupCompareStep.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java b/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java index 26eed1254..33850eb0e 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java +++ b/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java @@ -60,7 +60,7 @@ public Provider() ToolParameterDescriptor.create(GROUP2, "Group 2 Sample(s)", "Optional. Only variants of the selected type(s) will be included", "sequenceanalysis-trimmingtextarea", null, null), ToolParameterDescriptor.createExpDataParam(REF_VCF, "Reference VCF", "This is the file ID of the VCF to use as the reference.", "ldk-expdatafield", new JSONObject() {{ - put("allowBlank", false); + }}, null), ToolParameterDescriptor.create("selects", "Select Expressions", "Filter expressions that can be used to subset variants. Passing variants will be written to a separate TSV file.", "sequenceanalysis-variantfilterpanel", new JSONObject(){{ put("mode", "SELECT"); @@ -89,7 +89,6 @@ public void performAdditionalMergeTasks(SequenceOutputHandler.JobContext ctx, Pi } ctx.getFileManager().addIntermediateFile(f); - ctx.getFileManager().addIntermediateFile(new File(f.getPath() + ".tbi")); return f; }).toList(); @@ -143,8 +142,6 @@ public Output processVariants(File inputVCF, File outputDirectory, ReferenceGeno VariantProcessingStepOutputImpl output = new VariantProcessingStepOutputImpl(); getPipelineCtx().getLogger().info("Running GroupCompare"); - Integer refFileId = getProvider().getParameterByName(REF_VCF).extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), Integer.class); - List extraArgs = new ArrayList<>(); if (intervals != null) { @@ -154,9 +151,15 @@ public Output processVariants(File inputVCF, File outputDirectory, ReferenceGeno }); } - File refVcf = getPipelineCtx().getSequenceSupport().getCachedData(refFileId); - if (refVcf != null) + Integer refFileId = getProvider().getParameterByName(REF_VCF).extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), Integer.class); + if (refFileId != null) { + File refVcf = getPipelineCtx().getSequenceSupport().getCachedData(refFileId); + if (!refVcf.exists()) + { + throw new PipelineJobException("Unable to find file: " + refVcf.getPath()); + } + extraArgs.add("-RV"); extraArgs.add(refVcf.getPath()); } From 52f894bce2b98426b82926e7aaa162c3eb3085d3 Mon Sep 17 00:00:00 2001 From: bbimber Date: Sun, 9 Jul 2023 07:37:17 -0700 Subject: [PATCH 42/58] Misc improvements to variant annotation code --- .../JBrowseSessionTransform.java | 5 ++- .../labkey/mgap/pipeline/AnnotationStep.java | 4 +-- .../RemoveAnnotationsForMgapStep.java | 35 ++++++++++++++++--- 3 files changed, 37 insertions(+), 7 deletions(-) diff --git a/mGAP/src/org/labkey/mgap/columnTransforms/JBrowseSessionTransform.java b/mGAP/src/org/labkey/mgap/columnTransforms/JBrowseSessionTransform.java index df504b29f..437ab92e3 100644 --- a/mGAP/src/org/labkey/mgap/columnTransforms/JBrowseSessionTransform.java +++ b/mGAP/src/org/labkey/mgap/columnTransforms/JBrowseSessionTransform.java @@ -1,5 +1,6 @@ package org.labkey.mgap.columnTransforms; +import org.apache.commons.lang3.StringUtils; import org.json.JSONObject; import org.labkey.api.collections.CaseInsensitiveHashMap; import org.labkey.api.data.ColumnInfo; @@ -23,6 +24,7 @@ import org.labkey.mgap.mGAPSchema; import java.sql.SQLException; +import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.HashMap; @@ -307,6 +309,7 @@ protected String getDatabaseName() protected String getTrackJson() { - return "{\"category\":\"mGAP Variant Catalog\",\"visibleByDefault\": true,\"ensemblId\":\"Macaca_mulatta\",\"additionalFeatureMsg\":\"

**The annotations below are primarily derived from human data sources (not macaque), and must be viewed in that context.

\"}"; + ArrayList infoFields = new TableSelector(QueryService.get().getUserSchema(getContainerUser().getUser(), getContainerUser().getContainer(), mGAPSchema.NAME).getTable(mGAPSchema.TABLE_VARIANT_ANNOTATIONS), PageFlowUtil.set("infoKey"), new SimpleFilter(FieldKey.fromString("isIndexed"), true), null).getArrayList(String.class); + return "{\"category\":\"mGAP Variant Catalog\",\"visibleByDefault\": true,\"ensemblId\":\"Macaca_mulatta\",\"additionalFeatureMsg\":\"

**The annotations below are primarily derived from human data sources (not macaque), and must be viewed in that context.

\", \"createFullTextIndex\": true,\"infoFieldsForFullTextSearch\":\"" + (infoFields.isEmpty() ? "null" : StringUtils.join(infoFields, ",")) + "\"}"; } } diff --git a/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java b/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java index 4b16be19d..bf2f22f60 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java +++ b/mGAP/src/org/labkey/mgap/pipeline/AnnotationStep.java @@ -163,8 +163,8 @@ public void init(PipelineJob job, SequenceAnalysisJobSupport support, List getCachedFields(String key, String toolName) throws PipelineJobException { diff --git a/mGAP/src/org/labkey/mgap/pipeline/RemoveAnnotationsForMgapStep.java b/mGAP/src/org/labkey/mgap/pipeline/RemoveAnnotationsForMgapStep.java index 0e9b9d901..b4f5d2874 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/RemoveAnnotationsForMgapStep.java +++ b/mGAP/src/org/labkey/mgap/pipeline/RemoveAnnotationsForMgapStep.java @@ -3,17 +3,25 @@ import htsjdk.samtools.util.Interval; import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.Nullable; +import org.labkey.api.data.Container; +import org.labkey.api.data.TableSelector; +import org.labkey.api.pipeline.PipelineJob; import org.labkey.api.pipeline.PipelineJobException; +import org.labkey.api.query.QueryService; import org.labkey.api.sequenceanalysis.SequenceAnalysisService; +import org.labkey.api.sequenceanalysis.SequenceOutputFile; import org.labkey.api.sequenceanalysis.pipeline.AbstractVariantProcessingStepProvider; import org.labkey.api.sequenceanalysis.pipeline.PipelineContext; import org.labkey.api.sequenceanalysis.pipeline.PipelineStep; import org.labkey.api.sequenceanalysis.pipeline.PipelineStepProvider; import org.labkey.api.sequenceanalysis.pipeline.ReferenceGenome; +import org.labkey.api.sequenceanalysis.pipeline.SequenceAnalysisJobSupport; import org.labkey.api.sequenceanalysis.pipeline.VariantProcessingStep; import org.labkey.api.sequenceanalysis.pipeline.VariantProcessingStepOutputImpl; import org.labkey.api.sequenceanalysis.run.AbstractCommandPipelineStep; import org.labkey.api.sequenceanalysis.run.AbstractDiscvrSeqWrapper; +import org.labkey.api.util.PageFlowUtil; +import org.labkey.mgap.mGAPSchema; import java.io.File; import java.util.ArrayList; @@ -23,9 +31,10 @@ public class RemoveAnnotationsForMgapStep extends AbstractCommandPipelineStep implements VariantProcessingStep { + // TODO: base this on annotation table public static List ALLOWABLE_ANNOTATIONS = Collections.unmodifiableList(Arrays.asList("AF", "AC", "END", "ANN", "LOF", "MAF", "CADD_PH", "CADD_RS", "CCDS", "ENC", "ENCDNA_CT", "ENCDNA_SC", "ENCSEG_CT", "ENCSEG_NM", "ENCTFBS_CL", "ENCTFBS_SC", "ENCTFBS_TF", "ENN", "ERBCTA_CT", "ERBCTA_NM", "ERBCTA_SC", "ERBSEG_CT", "ERBSEG_NM", "ERBSEG_SC", "ERBSUM_NM", "ERBSUM_SC", "ERBTFBS_PB", "ERBTFBS_TF", "FC", "FE", "FS_EN", "FS_NS", "FS_SC", "FS_SN", "FS_TG", "FS_US", "FS_WS", "GRASP_AN", "GRASP_P", "GRASP_PH", "GRASP_PL", "GRASP_PMID", "GRASP_RS", "LOF", "NC", "NE", "NF", "NG", "NH", "NJ", "NK", "NL", "NM", "NMD", "OMIMC", "OMIMD", "OMIMM", "OMIMMUS", "OMIMN", "OMIMS", "OMIMT", "OREGANNO_PMID", "OREGANNO_TYPE", "PC_PL", "PC_PR", "PC_VB", "PP_PL", "PP_PR", "PP_VB", "RDB_MF", "RDB_WS", "RFG", "RSID", "SCSNV_ADA", "SCSNV_RS", "SD", "SF", "SM", "SP_SC", "SX", "TMAF", "LF", "CLN_ALLELE", "CLN_ALLELEID", "CLN_DN", "CLN_DNINCL", "CLN_DISDB", "CLN_DISDBINCL", "CLN_HGVS", "CLN_REVSTAT", "CLN_SIG", "CLN_SIGINCL", "CLN_VC", "CLN_VCSO", "CLN_VI", "CLN_DBVARID", "CLN_GENEINFO", "CLN_MC", "CLN_ORIGIN", "CLN_RS", "CLN_SSR", "ReverseComplementedAlleles", "LiftedContig", "LiftedStart", "LiftedStop")); - public RemoveAnnotationsForMgapStep(PipelineStepProvider provider, PipelineContext ctx) + public RemoveAnnotationsForMgapStep(PipelineStepProvider provider, PipelineContext ctx) { super(provider, ctx, new RemoveAnnotationsWrapper(ctx.getLogger())); } @@ -44,6 +53,24 @@ public PipelineStep create(PipelineContext context) } } + private static final String INFO_FIELDS = "infoFields"; + + @Override + public void init(PipelineJob job, SequenceAnalysisJobSupport support, List inputFiles) throws PipelineJobException + { + // find/cache annotations: + Container targetContainer = getPipelineCtx().getJob().getContainer().isWorkbook() ? getPipelineCtx().getJob().getContainer().getParent() : getPipelineCtx().getJob().getContainer(); + ArrayList infoFields = new TableSelector(QueryService.get().getUserSchema(getPipelineCtx().getJob().getUser(), targetContainer, mGAPSchema.NAME).getTable(mGAPSchema.TABLE_VARIANT_ANNOTATIONS), PageFlowUtil.set("infoKey")).getArrayList(String.class); + + getPipelineCtx().getSequenceSupport().cacheObject(INFO_FIELDS, infoFields); + + } + + private List getInfoFields() throws PipelineJobException + { + return getPipelineCtx().getSequenceSupport().getCachedObject(INFO_FIELDS, PipelineJob.createObjectMapper().getTypeFactory().constructParametricType(List.class, String.class)); + } + @Override public Output processVariants(File inputVCF, File outputDirectory, ReferenceGenome genome, @Nullable List intervals) throws PipelineJobException { @@ -56,7 +83,7 @@ public Output processVariants(File inputVCF, File outputDirectory, ReferenceGeno } else { - getWrapper().execute(inputVCF, outputFile, genome.getWorkingFastaFile(), intervals); + getWrapper().execute(inputVCF, outputFile, genome.getWorkingFastaFile(), getInfoFields(), intervals); } output.setVcf(outputFile); @@ -78,7 +105,7 @@ public RemoveAnnotationsWrapper(Logger log) super(log); } - public void execute(File input, File outputFile, File referenceFasta, @Nullable List intervals) throws PipelineJobException + public void execute(File input, File outputFile, File referenceFasta, List allowableFields, @Nullable List intervals) throws PipelineJobException { List args = new ArrayList<>(getBaseArgs()); args.add("RemoveAnnotations"); @@ -97,7 +124,7 @@ public void execute(File input, File outputFile, File referenceFasta, @Nullable }); } - for (String key : ALLOWABLE_ANNOTATIONS) + for (String key : allowableFields) { args.add("-A"); args.add(key); From 345e67ea7b9c74c1f37b307c8fd14a004c9354d7 Mon Sep 17 00:00:00 2001 From: bbimber Date: Wed, 19 Jul 2023 09:57:20 -0700 Subject: [PATCH 43/58] Finalize implementation of fields/groups provider and add implementations in mGAP --- .../labkey/mgap/jbrowse/AnnotationModel.java | 186 ++++++++++++++++++ .../mgap/jbrowse/mGAPFieldCustomizer.java | 87 ++++++++ .../mgap/jbrowse/mGAPGroupsProvider.java | 35 ++++ mGAP/src/org/labkey/mgap/mGAPModule.java | 4 + 4 files changed, 312 insertions(+) create mode 100644 mGAP/src/org/labkey/mgap/jbrowse/AnnotationModel.java create mode 100644 mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java create mode 100644 mGAP/src/org/labkey/mgap/jbrowse/mGAPGroupsProvider.java diff --git a/mGAP/src/org/labkey/mgap/jbrowse/AnnotationModel.java b/mGAP/src/org/labkey/mgap/jbrowse/AnnotationModel.java new file mode 100644 index 000000000..60bd4b051 --- /dev/null +++ b/mGAP/src/org/labkey/mgap/jbrowse/AnnotationModel.java @@ -0,0 +1,186 @@ +package org.labkey.mgap.jbrowse; + +public class AnnotationModel +{ + private int _rowid; + private String _category; + private String _label; + private String _dataSource; + private String _infoKey; + private String _sourceField; + private String _dataType; + private String _dataNumber; + private String _url; + private String _dataUrl; + private String _description; + private String _toolName; + private String _formatString; + private boolean _hidden = false; + private boolean _isIndexed = false; + private String _allowableValues; + + public AnnotationModel() + { + + } + + public int getRowid() + { + return _rowid; + } + + public void setRowid(int rowid) + { + _rowid = rowid; + } + + public String getCategory() + { + return _category; + } + + public void setCategory(String category) + { + _category = category; + } + + public String getLabel() + { + return _label; + } + + public void setLabel(String label) + { + _label = label; + } + + public String getDataSource() + { + return _dataSource; + } + + public void setDataSource(String dataSource) + { + _dataSource = dataSource; + } + + public String getInfoKey() + { + return _infoKey; + } + + public void setInfoKey(String infoKey) + { + _infoKey = infoKey; + } + + public String getSourceField() + { + return _sourceField; + } + + public void setSourceField(String sourceField) + { + _sourceField = sourceField; + } + + public String getDataType() + { + return _dataType; + } + + public void setDataType(String dataType) + { + _dataType = dataType; + } + + public String getDataNumber() + { + return _dataNumber; + } + + public void setDataNumber(String dataNumber) + { + _dataNumber = dataNumber; + } + + public String getUrl() + { + return _url; + } + + public void setUrl(String url) + { + _url = url; + } + + public String getDataUrl() + { + return _dataUrl; + } + + public void setDataUrl(String dataUrl) + { + _dataUrl = dataUrl; + } + + public String getDescription() + { + return _description; + } + + public void setDescription(String description) + { + _description = description; + } + + public String getToolName() + { + return _toolName; + } + + public void setToolName(String toolName) + { + _toolName = toolName; + } + + public String getFormatString() + { + return _formatString; + } + + public void setFormatString(String formatString) + { + _formatString = formatString; + } + + public boolean isHidden() + { + return _hidden; + } + + public void setHidden(boolean hidden) + { + _hidden = hidden; + } + + public boolean isIndexed() + { + return _isIndexed; + } + + public void setIndexed(boolean indexed) + { + _isIndexed = indexed; + } + + public String getAllowableValues() + { + return _allowableValues; + } + + public void setAllowableValues(String allowableValues) + { + _allowableValues = allowableValues; + } +} diff --git a/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java b/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java new file mode 100644 index 000000000..480b552dc --- /dev/null +++ b/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java @@ -0,0 +1,87 @@ +package org.labkey.mgap.jbrowse; + +import org.apache.commons.lang3.StringUtils; +import org.apache.logging.log4j.Logger; +import org.labkey.api.data.Container; +import org.labkey.api.data.SimpleFilter; +import org.labkey.api.data.TableSelector; +import org.labkey.api.jbrowse.JBrowseFieldCustomizer; +import org.labkey.api.jbrowse.JBrowseFieldDescriptor; +import org.labkey.api.module.ModuleLoader; +import org.labkey.api.query.FieldKey; +import org.labkey.api.query.QueryService; +import org.labkey.api.security.User; +import org.labkey.api.util.logging.LogHelper; +import org.labkey.mgap.mGAPModule; +import org.labkey.mgap.mGAPSchema; + +import java.util.Arrays; +import java.util.List; + +public class mGAPFieldCustomizer implements JBrowseFieldCustomizer +{ + private static final Logger _log = LogHelper.getLogger(mGAPFieldCustomizer.class, "Messages from mGAP Field Customizer"); + + @Override + public void customizeField(JBrowseFieldDescriptor field, Container c, User u) + { + List ams = new TableSelector(QueryService.get().getUserSchema(u, c, mGAPSchema.NAME).getTable(mGAPSchema.TABLE_VARIANT_ANNOTATIONS), new SimpleFilter(FieldKey.fromString("infoField"), field.getFieldName()), null).getArrayList(AnnotationModel.class); + if (ams.isEmpty()) + { + return; + } + else if (ams.size() > 1) + { + _log.error("Multiple annotation records found for the field: " + field.getFieldName()); + } + + AnnotationModel am = ams.get(0); + if (am.isHidden()) + { + field.setHidden(true); + } + + if (am.isIndexed()) + { + field.setIndexed(true); + } + + if (StringUtils.trimToNull(am.getDescription()) != null) + { + field.setDescription(am.getDescription()); + } + + if (StringUtils.trimToNull(am.getLabel()) != null) + { + field.setLabel(am.getLabel()); + } + + if (StringUtils.trimToNull(am.getFormatString()) != null) + { + field.setFormatString(am.getFormatString()); + } + + if (StringUtils.trimToNull(am.getCategory()) != null) + { + field.setCategory(am.getCategory()); + } + + if (StringUtils.trimToNull(am.getAllowableValues()) != null) + { + field.setAllowableValues(Arrays.stream(am.getAllowableValues().split(",")).toList()); + } + + if (StringUtils.trimToNull(am.getUrl()) != null) + { + field.setUrl(am.getUrl()); + } + + + } + + @Override + public boolean isAvailable(Container c, User u) + { + return c.getActiveModules().contains(ModuleLoader.getInstance().getModule(mGAPModule.class)); + } +} diff --git a/mGAP/src/org/labkey/mgap/jbrowse/mGAPGroupsProvider.java b/mGAP/src/org/labkey/mgap/jbrowse/mGAPGroupsProvider.java new file mode 100644 index 000000000..0641aff68 --- /dev/null +++ b/mGAP/src/org/labkey/mgap/jbrowse/mGAPGroupsProvider.java @@ -0,0 +1,35 @@ +package org.labkey.mgap.jbrowse; + +import org.jetbrains.annotations.Nullable; +import org.labkey.api.data.Container; +import org.labkey.api.data.SimpleFilter; +import org.labkey.api.data.TableInfo; +import org.labkey.api.data.TableSelector; +import org.labkey.api.jbrowse.GroupsProvider; +import org.labkey.api.module.ModuleLoader; +import org.labkey.api.query.FieldKey; +import org.labkey.api.query.QueryService; +import org.labkey.api.security.User; +import org.labkey.api.util.PageFlowUtil; +import org.labkey.mgap.mGAPModule; +import org.labkey.mgap.mGAPSchema; + +import java.util.List; + +public class mGAPGroupsProvider implements GroupsProvider +{ + @Override + public @Nullable List getGroupMembers(String trackId, String groupName, Container c, User u) + { + // TODO: new table? + TableInfo ti = QueryService.get().getUserSchema(u, c, mGAPSchema.NAME).getTable(mGAPSchema.TABLE_RELEASE_TRACK_SUBSETS); + + return new TableSelector(ti, PageFlowUtil.set("subjectId"), new SimpleFilter(FieldKey.fromString("trackName"), groupName).addCondition(FieldKey.fromString("trackId"), trackId), null).getArrayList(String.class); + } + + @Override + public boolean isAvailable(Container c, User u) + { + return c.getActiveModules().contains(ModuleLoader.getInstance().getModule(mGAPModule.class)); + } +} diff --git a/mGAP/src/org/labkey/mgap/mGAPModule.java b/mGAP/src/org/labkey/mgap/mGAPModule.java index 9fb290638..50078dbbf 100644 --- a/mGAP/src/org/labkey/mgap/mGAPModule.java +++ b/mGAP/src/org/labkey/mgap/mGAPModule.java @@ -41,6 +41,8 @@ import org.labkey.api.writer.ContainerUser; import org.labkey.mgap.buttons.PopulateAnnotationsButton; import org.labkey.mgap.buttons.ReleaseButton; +import org.labkey.mgap.jbrowse.mGAPFieldCustomizer; +import org.labkey.mgap.jbrowse.mGAPGroupsProvider; import org.labkey.mgap.pipeline.AnnotationStep; import org.labkey.mgap.pipeline.GenerateMgapTracksStep; import org.labkey.mgap.pipeline.GroupCompareStep; @@ -91,6 +93,8 @@ public void doStartupAfterSpringConfig(ModuleContext moduleContext) NotificationService.get().registerNotification(new mGAPUserNotification(this)); JBrowseService.get().registerDemographicsSource(new mGAPDemographicsSource()); + JBrowseService.get().registerFieldCustomizer(new mGAPFieldCustomizer()); + JBrowseService.get().registerGroupsProvider(new mGAPGroupsProvider()); SystemMaintenance.addTask(new mGapMaintenanceTask()); From bbd31c6ad0a97838f5dddd7299d6e63cc123b456 Mon Sep 17 00:00:00 2001 From: bbimber Date: Thu, 20 Jul 2023 11:36:29 -0700 Subject: [PATCH 44/58] Make mGAP JBrowse fields data-driven (#116) * Finalize implementation of fields/groups provider and add implementations in mGAP --- mGAP/build.gradle | 1 + .../queries/mGAP/annotations/.qview.xml | 3 +- mGAP/resources/views/annotation.html | 57 +++++-- mGAP/resources/web/mGAP/images/annotation.png | Bin 70318 -> 105022 bytes .../labkey/mgap/jbrowse/AnnotationModel.java | 14 +- .../mgap/jbrowse/mGAPFieldCustomizer.java | 2 +- mGAP/src/org/labkey/mgap/mGAPController.java | 37 +++++ .../org/labkey/test/tests/mgap/MgapTest.java | 144 ++++++++++++++++++ mGAP/tools/images/AnnotationStrategy.pdf | Bin 0 -> 316612 bytes mcc/build.gradle | 1 + mcc/src/org/labkey/mcc/MccController.java | 5 +- 11 files changed, 242 insertions(+), 22 deletions(-) create mode 100644 mGAP/test/src/org/labkey/test/tests/mgap/MgapTest.java create mode 100644 mGAP/tools/images/AnnotationStrategy.pdf diff --git a/mGAP/build.gradle b/mGAP/build.gradle index 3b2d7ba1e..7015cffb7 100644 --- a/mGAP/build.gradle +++ b/mGAP/build.gradle @@ -25,6 +25,7 @@ dependencies { ) implementation "com.sun.mail:jakarta.mail:${javaMailVersion}" implementation "net.sf.opencsv:opencsv:${opencsvVersion}" + BuildUtils.addLabKeyDependency(project: project, config: "implementation", depProjectPath: ":server:modules:DiscvrLabKeyModules:Studies", depProjectConfig: "apiJarFile") BuildUtils.addLabKeyDependency(project: project, config: "modules", depProjectPath: ":server:modules:dataintegration", depProjectConfig: "published", depExtension: "module") BuildUtils.addLabKeyDependency(project: project, config: "modules", depProjectPath: ":server:modules:LabDevKitModules:LDK", depProjectConfig: "published", depExtension: "module") diff --git a/mGAP/resources/queries/mGAP/annotations/.qview.xml b/mGAP/resources/queries/mGAP/annotations/.qview.xml index 703a5be42..21f44b3ad 100644 --- a/mGAP/resources/queries/mGAP/annotations/.qview.xml +++ b/mGAP/resources/queries/mGAP/annotations/.qview.xml @@ -1,9 +1,10 @@ + - + diff --git a/mGAP/resources/views/annotation.html b/mGAP/resources/views/annotation.html index 8eb192404..055beeabb 100644 --- a/mGAP/resources/views/annotation.html +++ b/mGAP/resources/views/annotation.html @@ -1,11 +1,48 @@ -
- Assigning significance to genetics variants is often a challenge, and this is particularly problematic for model organisms like macaques, - which has far less developed annotation resources than human. - To overcome this, we developed a multi-part process to annotate our data.

Rhesus macaque data are aligned to the latest NCBI macaque genome build (MMul8). - Data are lifted to human (GRCh37), with ~65% of variants typically being lifted. These variants are annotated using a variety of human data sources, including - annotation of regulatory elements (ENCODE, RegulomeDB), overlap with known disease- or phenotype-associated variants (ClinVar, GRASP), predicted impact (SIFT, PolyPhen2), conservation (Phylop, PhastCons), and others. - These annotated variants are translated back to macaque coordinates and all data sources merged. In addition to human annotations, SnpEff is used to annotate predicted impact on protein coding (run using the Ensembl macaque gene annotations). -
-
- Annotation Strategy + + +
+
+ Assigning significance to genetics variants is often a challenge, and this is particularly problematic for model organisms like macaques, + which have few sources of genomic annotations, relative to human or mouse. + To overcome this, we developed a multipart process to annotate our data.

NHP data are aligned to the latest NCBI genomic build for the species. + We use liftOver tools to lift variants to the human genome (GRCh37), with ~65% of variants typically being successfully lifted. These variants are annotated using a variety of human data sources, described below. + These annotated variants are translated back to genomic coordinates of the NHP species, and all data sources merged. In addition to human annotations, SnpEff is used to annotate predicted impact on protein coding (run using the Ensembl gene build). +
+
+ Our annotation sources are drawn from a number of databases and tools. A complete field-by-field list is shown in the table at the bottom of the page. Please note that in most cases the 'Data Source' column is a link to the primary data, which may have more information on that annotation. +

+

+
+
+ Annotation Strategy +
+ +
+
+
+
diff --git a/mGAP/resources/web/mGAP/images/annotation.png b/mGAP/resources/web/mGAP/images/annotation.png index 817cf0dd247daf4cb40b189cfe3d165d2cd07a2c..58897d97589299786d7b809b0ed1e6b511962a44 100644 GIT binary patch literal 105022 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 {a#Z7!emes) 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 D#Vv_t literal 70318 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 OiRvRw#o~u%0sjvxMz}lx diff --git a/mGAP/src/org/labkey/mgap/jbrowse/AnnotationModel.java b/mGAP/src/org/labkey/mgap/jbrowse/AnnotationModel.java index 60bd4b051..395c9486e 100644 --- a/mGAP/src/org/labkey/mgap/jbrowse/AnnotationModel.java +++ b/mGAP/src/org/labkey/mgap/jbrowse/AnnotationModel.java @@ -2,7 +2,7 @@ public class AnnotationModel { - private int _rowid; + private Integer _rowid; private String _category; private String _label; private String _dataSource; @@ -15,8 +15,8 @@ public class AnnotationModel private String _description; private String _toolName; private String _formatString; - private boolean _hidden = false; - private boolean _isIndexed = false; + private Boolean _hidden = false; + private Boolean _isIndexed = false; private String _allowableValues; public AnnotationModel() @@ -156,20 +156,20 @@ public void setFormatString(String formatString) public boolean isHidden() { - return _hidden; + return _hidden != null && _hidden; } - public void setHidden(boolean hidden) + public void setHidden(Boolean hidden) { _hidden = hidden; } public boolean isIndexed() { - return _isIndexed; + return _isIndexed == null || _isIndexed; } - public void setIndexed(boolean indexed) + public void setIndexed(Boolean indexed) { _isIndexed = indexed; } diff --git a/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java b/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java index 480b552dc..ceb6acd78 100644 --- a/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java +++ b/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java @@ -25,7 +25,7 @@ public class mGAPFieldCustomizer implements JBrowseFieldCustomizer @Override public void customizeField(JBrowseFieldDescriptor field, Container c, User u) { - List ams = new TableSelector(QueryService.get().getUserSchema(u, c, mGAPSchema.NAME).getTable(mGAPSchema.TABLE_VARIANT_ANNOTATIONS), new SimpleFilter(FieldKey.fromString("infoField"), field.getFieldName()), null).getArrayList(AnnotationModel.class); + List ams = new TableSelector(QueryService.get().getUserSchema(u, c, mGAPSchema.NAME).getTable(mGAPSchema.TABLE_VARIANT_ANNOTATIONS), new SimpleFilter(FieldKey.fromString("infoKey"), field.getFieldName()), null).getArrayList(AnnotationModel.class); if (ams.isEmpty()) { return; diff --git a/mGAP/src/org/labkey/mgap/mGAPController.java b/mGAP/src/org/labkey/mgap/mGAPController.java index ad1fe7340..a022b2b19 100644 --- a/mGAP/src/org/labkey/mgap/mGAPController.java +++ b/mGAP/src/org/labkey/mgap/mGAPController.java @@ -49,6 +49,7 @@ import org.labkey.api.exp.api.ExpData; import org.labkey.api.module.AllowedDuringUpgrade; import org.labkey.api.module.ModuleLoader; +import org.labkey.api.pipeline.PipelineUrls; import org.labkey.api.query.BatchValidationException; import org.labkey.api.query.DetailsURL; import org.labkey.api.query.FieldKey; @@ -77,12 +78,15 @@ import org.labkey.api.sequenceanalysis.pipeline.ReferenceGenome; import org.labkey.api.settings.AppProps; import org.labkey.api.settings.LookAndFeelProperties; +import org.labkey.api.studies.StudiesService; import org.labkey.api.util.ConfigurationException; import org.labkey.api.util.ExceptionUtil; import org.labkey.api.util.FileUtil; import org.labkey.api.util.GUID; +import org.labkey.api.util.HtmlString; import org.labkey.api.util.MailHelper; import org.labkey.api.util.PageFlowUtil; +import org.labkey.api.util.Path; import org.labkey.api.util.URLHelper; import org.labkey.api.view.ActionURL; import org.labkey.api.view.HtmlView; @@ -1147,4 +1151,37 @@ public void validateCommand(Object o, Errors errors) return QueryService.get().urlFor(getUser(), getContainer(), QueryAction.executeQuery, mGAPSchema.NAME, mGAPSchema.TABLE_VARIANT_ANNOTATIONS); } } + + @RequiresPermission(AdminPermission.class) + public class ImportStudyAction extends ConfirmAction + { + @Override + public ModelAndView getConfirmView(Object o, BindException errors) throws Exception + { + setTitle("Import mGAP Study"); + + return new HtmlView(HtmlString.unsafe("This will import the default mGAP study in this folder and set the EHRStudyContainer property to point to this container. Do you want to continue?")); + } + + @Override + public boolean handlePost(Object o, BindException errors) throws Exception + { + StudiesService.get().importFolderDefinition(getContainer(), getUser(), ModuleLoader.getInstance().getModule(mGAPModule.NAME), new Path("referenceStudy")); + + return true; + } + + @Override + public void validateCommand(Object o, Errors errors) + { + + } + + @NotNull + @Override + public URLHelper getSuccessURL(Object o) + { + return PageFlowUtil.urlProvider(PipelineUrls.class).urlBegin(getContainer()); + } + } } \ No newline at end of file diff --git a/mGAP/test/src/org/labkey/test/tests/mgap/MgapTest.java b/mGAP/test/src/org/labkey/test/tests/mgap/MgapTest.java new file mode 100644 index 000000000..d14efa883 --- /dev/null +++ b/mGAP/test/src/org/labkey/test/tests/mgap/MgapTest.java @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2020 LabKey Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.labkey.test.tests.mgap; + +import org.apache.commons.lang3.tuple.Pair; +import org.junit.Before; +import org.junit.Test; +import org.junit.experimental.categories.Category; +import org.labkey.test.BaseWebDriverTest; +import org.labkey.test.Locator; +import org.labkey.test.TestTimeoutException; +import org.labkey.test.WebTestHelper; +import org.labkey.test.categories.External; +import org.labkey.test.categories.LabModule; +import org.labkey.test.tests.external.labModules.JBrowseTest; +import org.labkey.test.tests.external.labModules.JBrowseTestHelper; +import org.labkey.test.tests.external.labModules.SequenceTest; +import org.labkey.test.util.external.labModules.LabModuleHelper; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.Actions; + +import java.util.List; + +@Category({External.class, LabModule.class}) +public class MgapTest extends BaseWebDriverTest +{ + protected LabModuleHelper _helper = new LabModuleHelper(this); + + @Test + public void testMgapModule() throws Exception + { + setupTest(); + + testSessionCardDisplay(); + testmGapSessionCardDisplay(); + testFullTextSearch(); + } + + @Override + protected void doCleanup(boolean afterTest) throws TestTimeoutException + { + super.doCleanup(afterTest); + } + + private void setupTest() throws Exception + { + _containerHelper.createProject(getProjectName(), "mGAP"); + + goToProjectHome(); + + beginAt("/mgap/" + getProjectName() + "/updateAnnotations.view"); + clickButton("OK"); + + beginAt(WebTestHelper.getBaseURL() + "/mcc/" + getProjectName() + "/importStudy.view"); + clickButton("OK"); + waitForPipelineJobsToComplete(1, "Study import", false, MAX_WAIT_SECONDS * 2500); + + if (!SequenceTest.isExternalPipelineEnabled(getProjectName())) + { + log("JBrowseTest.testFullTextSearch() requires external tools, including DISCVRSeq.jar, skipping"); + return; + } + + String seq = SequenceTest.readSeqFromFile(JBrowseTestHelper.GRCH37_GENOME); + SequenceTest.ensureRefSeqExists(this, "1", seq); + SequenceTest.createReferenceGenome(this, 1, JBrowseTest.JB_GENOME_NAME, "1"); + + SequenceTest.addOutputFile(this, JBrowseTestHelper.MGAP_TEST_VCF, JBrowseTest.JB_GENOME_NAME, "TestVCF", "VCF File", "This is an output file to test VCF full-text search", false); + } + + private void testSessionCardDisplay() + { + beginAt("/" + getProjectName() + "/jbrowse-jbrowse.view?session=mgap&location=1:8328..8842"); + JBrowseTestHelper.waitForJBrowseToLoad(this); + + Actions actions = new Actions(getDriver()); + WebElement toClick = getDriver().findElements(JBrowseTestHelper.getVariantWithinTrack(this, "mgap_hg38", "SNV A -> G")).stream().filter(WebElement::isDisplayed).collect(JBrowseTestHelper.toSingleton()); + actions.click(toClick).perform(); + waitForElement(Locator.tagWithText("span", "Section 1")); + + waitForElement(Locator.tagWithText("td", "Allele Count")); + } + + private void testmGapSessionCardDisplay() + { + beginAt("/" + getProjectName() + "/jbrowse-jbrowse.view?session=mgapF&location=1:8328..8842"); + JBrowseTestHelper.waitForJBrowseToLoad(this); + + Actions actions = new Actions(getDriver()); + WebElement toClick = getDriver().findElements(JBrowseTestHelper.getVariantWithinTrack(this, "mgap_hg38", "SNV A -> T")).stream().filter(WebElement::isDisplayed).collect(JBrowseTestHelper.toSingleton()); + actions.click(toClick).perform(); + waitForElement(Locator.tagWithText("span", "Genes and Gene Predictions")); + + waitForElement(Locator.tagWithText("td", "Unable to Lift to Human")); + } + + private void testFullTextSearch() throws Exception + { + if (!SequenceTest.isExternalPipelineEnabled(getProjectName())) + { + log("JBrowseTest.testFullTextSearch() requires external tools, including DISCVRSeq.jar, skipping"); + return; + } + + JBrowseTestHelper.prepareSearchSession(this, getProjectName()); + Pair info = JBrowseTestHelper.configureSearchSession(this, getProjectName()); + String sessionId = info.getKey(); + String trackId = info.getValue(); + + + } + + @Before + public void preTest() + { + goToProjectHome(); + } + + @Override + protected String getProjectName() + { + return "MgapTestProject"; + } + + @Override + public List getAssociatedModules() + { + return List.of("jbrowse", "mGAP"); + } +} \ No newline at end of file diff --git a/mGAP/tools/images/AnnotationStrategy.pdf b/mGAP/tools/images/AnnotationStrategy.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9cdb0e0083dac7b31f15bdb25955cebce8639c88 GIT binary patch literal 316612 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%0AkFK~0H1^DKO2Zs z0tXyy1018Gzy_RNdEh1;={5?La#?tIzTkNdkmT&dYUd#Y*vJI{4a`?-yQ))QTms)U zM*A3P&@AC>))lkmU07=VMAngE4DE#SM;EkXN1=9s2m$f&HIW$(*OV~AbDZ$%~^yM z*GMa909Gq2b{LasStO~$nVqg&%u`gDGX~kxO*fwEnvkt5JnpF;| z=xTmv3g+M^2UbL}D``pn#alPf>Ibb}|3qQsm682=u<7V1m2R)(d;z80gqCBv{_ zls}f}phZO-Pk~_@G^E#sEj_k0N)8PtXhHF*+FnWk`BBk(O6PPW3tOfEkszK`>2v^F zBVYX0fK9ga52}wvFbP=L?<{|;yGq?Z$s=&b**X}@R3h61vBo#emYz=lT0o`0)p4!S zQ3Z*eyZICUh*f5l)nuShreQGSuP`hm%FduDl?#WF0+@8CiTr~aM6^OW_sP3vShPgT zOEDR@QE47O^e^ye?-Ab9Eg(;j?$ck7MBI$fSN4!N@`*BmqlleC0RM8antK5jGDzu# z_%{Z>R8|_|<@E`*W+e2t4p9ISX+cV6tp;s-;ZRsjICKOQvo+EdV?f0Ud|h-SX;WPT zjUNhXpC!JpC|50NqX2X%G$7vn62g%+U|o25#iR#o)!9dHy_V%=`p%Q|dI}Jk-ZkWx z{%e)W`lMhUtj!|_>4*7`#{M(hpsHII{`bE$B^P%Zmfp}b@z4Y&M18M%RqU-Vu@m_d zkM!}_-9^)%PbxQ`fQI@v(9!bF5pH@{9j@05%hIRXP2ZZR9AX3-dFZ$~!9JW`I(A|$ z)0yF-%jQE|*V53cWMl+wmt2YNmX}A=%LtX;Gn?`QhSoeJkqQ`mpttCUU;& z{$KjEtaIotncj6ng@d-z-uwQaR2;%R7Cd@WIQ1%HwPP!MzItW1I&T&KyHv3C%f6x4 zNm0^=eAh28D^E`d^Jm%r4NrVdjFs`~Q!@yQP2WV7_H_S`qr#30{GGoI4N!W{OdgoQ+0XSV@?d$l8}I2_+$!D3TQ^r$n<7@KmDOF|IN6rH}clB z`E@j`H~r%3y?$Jw-7*s%4P9ir-lfq-Eid%G&LN-Sb9$=-YZFtN#T|~{gRV3WYaG3Y#Y1INATt(Z!HK(B zyAc^QQ)Hr(vqq}sBEyqXcBx;@Ra$1Nv6gQhL~Qqygsr5$?#)Ns@Turqm#cu#jRn;&Bvl6h=P~Bv3GMs;D6OQN-Ww z$cjWpHq2f^N&@56m=1R`{o8nkG*|82@ zTq%Cf5V_%KW=L)vs9eX}{PpN@M=BplYXtvg6yA;o)d@ngd&t~MK z&j=KXwT3Yw+pOlOWpN|8z88W9+B1@4^j4V^Ww}`AO?>noR<{LR1{*s$|$ZDRMuf??1`OF=}A~*73 z+@Wd*M4utrbBk44nydQG=1BYn*0*tPtg|`EV-ewyuI1I3ku-QHbRAZxPHf1gHbYay zksrlAbEaRKsWdv(=LDKEyPENMe6#SU5qP7ejEv@u96hY(Y=m>qjbwMvap>`Xxgw8C zgv?WCynHOLVyA`~<4}FhO3qXVDhgyOW4-3Y>cNQP(rO&2@{PC_`blUg*iYzYNPF0t zGhY(QO^4`6I8!R4A{$leNNC?%S1(s@h9H3f-E)G?`RaD0|90V>y>+&$^hy?~noE+Z zsLGp>8DZ|G5B)?mC!-qm#PiI^i>>TC4ZVlelgXx|lUy5(j7FxpU(Jz8IA_&|S3})Y zCRm+Amx)bBlaX+>n8~lwnOdF#!J`jFPc=7TWEOXhP$#mNP1%)rHyv6*(T!`fIZvI` zC}jfqbfMvF8-@%rs@6uXHX#}BvWrH8ahn<0Js0OjL(VS4k=W5GB8M6KD8(PQ6!k1T zOBLrgrz5g&IQ}#TOrm6K>0`vK!CNqX^V}WTv;-r?iAExC3OXLotkpq~zyWuVE7wq@ zKy3Y2^_ex8g?#teWd&m*+XxaI3>g_|LRZYd!^F_>P#0El!%d<>ge=NYbtO8&SQkCs zM5{o~@)|1Vh}cy-!ht2OoP`{-3*VhtCl_ZSxOh{uFc=mUV@>$2b6ChL2ofCJ<32VO zG&Dva*A3^+Akz3x`fYC2*Xh8sz0RW(ovu)HjRm(LSK>`Dt9%|S29l4H{L3s1AorR2kitg}Vl-F|rn&l?1Edpvjr%fd-!q!xPg8=7D~>(hLk6r$&;H|K^}#RJbA< z@2tW>Md3tPL`hhb2))=T@%#~^Vu#gR$qTDqO;Y5Q?A=I9=M8tim^oIns>MXBAd@MI z?Zn)TzB5B_2s~T8Wv}&gB-@1rElSa#Cqf=Il7mvyMJ-ZE6Vxih_PUT-oI~nbAxL0Q zAI*HI9?tDuRovqk5j2O1CEjUoTAttjn1^uEcDsV zVW|whg|~xfAPu~02XBW^2g7s|G^0jatK}<`V*Y+qnF$V~EEK-I`7@QqJ&M+N-C(u) zKw}!K?315}QQ9FrBtvh|_a{#A008h@4Oh=2*I3CB1&tR!AAPNre}-$Y`v|&K$NV<* zs(VX3$Q_+>H{>|TXsokqN;O}Z*?mM_N9WUIB%^wX)iG7k0yGc_XLCmwIveITXNL^) z89p9c`USNx+K|Q(%RG0} zMlIro$7hiC{P3u{`FZ9s*VHw2jDHnlgeQ)$Ub5#^e)seLOdKnDot3d zc*QtIr>q=j9O-_f4MV7j8QOnFve2pYyA0*l0^(6orKIYrGQ}IaV;1zD!^nw+G_;VC z{)tvo$-dfM%>5tg>2JmvwsQgNq8Q!a=MgZ0{qP^+i@=mF#U^ zJ!{~(?Aa8Rv~xsK4N-?4y1PAP0KLRlOD7wWip9p}UjOe!Cn=u?H3sJ+lZpM#?)qSa zI5swzd7P>-{`aafS{wjt_ZkV$#j)EdimMba})ln}jP6ssa4TPjlMC0nMW=M1Dp;FH(ES(Gq zZStTS$AEmg)O!yyR_LXcsBU(g15d+__p8vWO)U%-6nYgDHc>nKUCW{Ald*=01^bxj z9L#V*6-KObh15-36|RV2z1l0Hk17Uw)yp9T-9d#@eQp1g0q{_&Y9%0dR#J*FSje^ zNQmC*d8pH0c5JWLie1aGejO!s_ZeR;b+ylY_H1?B8+Ooj^8$R%T_mVt&nUXUz2x}+N!z4N8%$eOA=Alm>d6awG8vgpBHgACT|W!j|Fob&)taZF|5N{e_rD9;mu&pn(BkAi)NN83aKB1vEfNfFQh!5GWw+kya#;Hph24h#Me?fB*+VlAP5bhfI24`wpe!7*=9OL zIo1(-;#XeMMl>1;$piYFO)sShQV6cvMOP=Q*M-#9mC$Bn%%Es4^FszwWW{sb{kz+R z8-;Cf30DiJU=zw0K4gC|fzAXHI~qyyH6gM-Rca}xrJ5#!1PZPMJJZMDCK=p$XPKHY z3pTrn^+2!kMFa^HkcXmcd~u8>I3s)@f&>a?1P<#$;U^WWJL}k|?d?Vp{vC;-@pNWv zN-)ih$k-J|N;4)laugv3S___0up#20z(53fVGl)y?K>Uk*MLF=8A3?Iw{}X-r70s*1K&${@Yq zV@0TXgfXGgH0(nds|_O1jZ{jW{Y5U^J&1e|A%5r$Mv&luQHvRY?!zERU|>B22^Mr> z+G?07=y*XiUF9NZAl{rA&rM%tGdE>rKtd5czg(!aRy(>H003wJ^AHH2C=d#Wgo5#) zbVzM|6o3ThqCC7!%(l^Q%Q5q zzWsOGzAI}}f%}YnRkAO6y*7In1FjJXJkK%r0RrnQ#?Xl2V@Gj8=2U`TQJSvIut=Y~ zf{y{Of`_n)go@yNty{fA<=NZj45zYd3}>5?xatbtXI}ssdbyk+nAu&VvF08``z{xZ zX8Y+jYLb>eSIYSPQu+3(Z1!bwbcLtV;<^XL!EGqFWa;wy0&xK3UEv#;3nqvS@#=TyZOn1)Wez<4?j)u{n zXP|eV)1a^R(|pwHDy+&UY*v+|r`Ti!T4ab{lJ?;{a~k*%f4%JsAOmxp!^5?-QoeDjlEn`8dqDXJZ#gsWy74%PHpO{^IbY9B0URtY`~e;nXhw z2^YRcbeV7qF++av(`2i>fk_;5i`|~3)5te9G0uMT1|jD@wLZ4p3wc{5e{$_1PlW_* z6EF89S$)Z)<}u13**ldwqeXD`)H>p3126&15=|FMWY}cHY^4KSmq7P7Yn3`3lz|G| z+bU1cjb}esWz|InnnDd@wnD>J`CAju3`1wWRgN1V@QuRM7Rs>9DHA%Z-}_65&tUT# z4O+kt?@(grcB~uDWSShGmK8z`^n-sU!^wj?&)g@kKItAkH+kG@N=)h@nU-3bq`& zapozz`)4u6l@D@xj`Om7z$}>s(3ToqtQ~$2#)Xc0G8!On!=Y<%BjCF~d?tgUoUss` z)F4L5*WMNU0!l384FLFU!iwb^HbApGJ~0_I(;^_H2XDn{-uhZJA@&N53jwl1I6_oe zuuXg@qaS>V8H|1`L&PfU{ROWwWo9oSQ5HJ^txh~er$zp4^in82p?LV50)RFJ5WJ$v zSiYfICMRIQ#O*f%{Q2%mKcuwP3`fuJ1sJVAEGPS)xW#sQKe02Xd&RYw{poSc9ybS8 ze`iuGoD&*uGm(GmOp?6pJ$oR2EA-3WF!Re^#G#kn*WH)>^B<2CStsZEePwB@UYXU8 zCWU@m&jEt5a}#OH-ZU7?Uc!FM?&`KJ`yVe7g)3mAIsU*Y|GwR_M`=-_A%7ddfsx$W zExRRiSa!$#(2_8FY5&7!Fz~is!w1Xm>YOpjDlV0jV*JquF%7xPr&>>X*^@8&RpX62 z5200!o5j%3tE2}Yq;}Ub$;Mk|&qS)s&Pr0*=$gUIUM-ZJ6f%1?M)}C<1~|C4o)Z&6 z_F;y!>|D9B?7ca&?4?ds8oOg0BWW(Jaxc7yvlSN*o{)M<@kE+x$cRmZdy#j(9Gx%l zf*X$r7)zjE^|HqnJ-DiSapokjug6Whljh1!9M>SQW%^@x+|zfrdl0)FP>bjR$hifv zNgWWoxN_c~EtWjqiw9)vnQ>)&4qvU(S64^IAs{9!fClan5{*%`-=J$fQOQ+V?8| zc9#D=%7qf8;)|-SI}c1;oI@hNuDk*Jtl|wr%nZj2EVR{)%DN{28UrC=Hl9GHDV*;u zx#x{T4sNGXB7!MIaVVimrf6UvlwD&+Id72UExlR_07F$AOFTfmsSVq?=cjcHl{R=7 z*bIo_7DDAkD##icOtjhx0(&HPh+U;fs2RLjsO0wtucU+uum}x~+{5GWu!`74V>lJx=2r3&ZE;cgR+EONA1+;Hv1D+X!#$ zmA2MFvUxp3!RBv3=BMJO6g}ebQsBiY!IW*I-671`f7yFH4rdk(HVm3M@X(X=Lj9>c z;bA~@7|gWNez+Q3@F+|DUm;ku7^7BXoYK=W%Y1j{u-}QZqO*E>t&DA+C!8j%4m*fN?pv(-S5t9 zG1C~XduGEHGOU2;k5z;Fa4h1ihk*r@_Yg3&gY)~gNF8IR209!1;+t(kwav%;;MAQ! zZgu0OD&Q+p$4FxK{b) zZxP2!j78>&GL}hs>n^GCEu;yUWh05sm<t-qm_q6fB@^^WTiM3oM^a(djy4&`AZnT<<61c|`T3-;QEG>J6PO<)-=v{@swdiV zDQ}nJ{LpX1MakADUYLdMZTbJQ@6M{l;E4ag$>~64GZkW}RXRPJLxqwny0sS)R;Yz@ zd7D7R*fJLp^k5Wcw74g((Rtn_2XGoOel*ZfkfIPB<+^YpDuze@tkkS8i3rxn;XHV39r{qgvmv@d2&fdNPD~BA4Dc zxM|-fn2@yJL|PN_n!=cVKSC<~BMkSD35Ac>?_GZUFzieV(S;pj`!ct`>x4`&d1Y}1 zE2(xMZCVl{?VjBLaQ~ZPjw_3NeZ1Y606{WD7-Hm%yDti^J32I66qaoT%t8? zq5uf3A~nHzNYfCcp%QioF|Q@+GD7LBBH*(#qblblm0;*Ed=R10a(VREff8~#S8|#M z2g=_eh{22)t08n!!YbSGB!Z1L6B@NBJ8sIdL2tA|K&yn>g|2-9)tJLIY;5Bs0$Cv< zjDZv{fjRT1J}?VwGWf~acx!o7>$!JHLL*HJ#?==69Wm|1d*Rr^nwp$-6ysyM0aS~t zN4tUv!`q|I(^ZA#Dj2yvD2#Sg3>uIk#Hcxc4j0xC8for3=$Mqt<5xPT_hfm5RPi`Y zdQXIx$Gg3aCSQ9tPF0&dikSaIMzn!E0A^GtITZAow|?7xu+gjhxI8d4Q!!OZN5AQ zK6ERtA=y{w1ETLmC~*xF=frkj%2WK2(ZghaSHc_^II~LtQ|AhY%|l;y zAWWP=iyWLM0g{u7h9k2D;UMB%LXKUMD6plGtAoOM2;fKHz#5fKXuIt4bC%nt1AXDd zjIDmG!3zI3=VDgcHHt-#pfKZ-C)1C<*!}YNyL9pCQf|w{NB%z}I}U zG0Oq?^|YG68)r_lOIAe5iny!-isD%WGF*OXGa%O_yT_(Ke@~LJtdNm6af=>h6(o#7 ziV*12ih;D2lsLlMl#^w9ZfSmLFBaCW5XhU>(L&+H5fC`qGLr<#w1S!Phs8=6_@y+aqnZDQ64Onbu~woIK%qO%HgQa zBx7NpU5@H?PS>cOX_Mrbarke`jp`AeAtPz$&&SZ)<<3EhGBgV|W~C@0oha1V|DS83 zil1MD+4Nbi|@M{RHewRF4U##hVk= zIzKq#g`A=AwusvhRoGu=46FhxW7sP1ZCh7H8Zq~OLlr&m0-2U?2qIW%^N8(5$sR+YuR3g z0txN&f@013$=CXF$78D-&mFsp@G@blPyK%A<(TU3Z==b#y(Ds|+<;bhYX4ct#*0hKTVRvwIpxm`S8fT7al!I#!xm@q_y z=PGk?54W-64)l?lDlr#-dyF%K#)%@lqC@v~D1$MS=ay#fr(_#$gN-WesQzquj~cAO z5#Icf)MshN&k+bRAc@obcpY6@+#@bX#4a6xS`o4QhqIQBJy_c~%>U&@R%P3uCbZAX zrY|=YJ?dgXO@(ru=~`Y>Ns0vr@ObU(!w|V#W>fJGCq_%42<-4A*|2n;rGmX1@U?a# zS@f9TCRPv&lDG?T)-cO}Qy7M7)1Vg;5}{4fb1-970lJN0n7K|WL}^ooBlG_I-ZFTA zRtdWc0Ukv&Z-j)j%zQ_?YdE!fyPN{#k^mWk5a>v#=uO{HY$|h9#3RpA%vTqZV~GL% zMzlvEeYbPEV!UftJfn`Vl^(4Jzx?2LMBOjZfgNd+0%^Qv^}`vZSr-tdShKJnnw zojeXGVkEp$LkH`%#O5Ka{Z}*ZBFtg<2e4v+ymU3%lRrYKF(Zz$m0Bi&Hi6&5UhTUbel82xb-ae~va}P}$eN2g?#-d&M zqWvzy`VzW2m}bi`3ax?L#I_H>(&0WqrWaEYPD5+_v5h4}1T^^KS()~bK2HE0#;s4A#teh#IGX@@v0>a{o#H*= z>ub?Mg=XRm0TH~z&eaX8eMAG46X#XRI$>{t#ZYbW^sp+$WzJFk`l5cPg)V ze7fzoS+g?a(;ROtX&ZGcU|;arSQ`$Mf7F38M3$jC4$Cf!Gg8SfQv>ZQe#LlL3-`ba z<1cVtVko$U&3RiT|376^>Rx7Gf6nbYi4R8w!W>$QE`__YN9evR&F79~HetzL`3&xm zVB_wvGd#fI?x@FS%-N9sfdX9&-;ufE88H(hpSDc5G3(hM3A#0fiq@WMP-qHtD@ zH}{OSiw$mf(VIt0llmRq^EXUw+DRV@%Pnl%#*OYKaK{==zU|)!i#`cTg8HZDX$ zi$tHMN|?2&(5NZz+50KqD8-d#qsk-SjuSj0N`k{j!DI{DeqTvdEn^o5@P+5Rl=(s; zrHwAZX{U9a$eixuA>jV#qpf1(h^36duMcC0&UmKH;-v;5Ar3gU1kkwdPSyUuzA7W+ zrchq7BmHwKOs)39c0hIb72h`C8#A~2!Q{Ff|LaRfi|i3@WXzpX9R==VR%+Y@=>p>Wk+PS?ucN{;TjY$QZOuIwv494}TE&jJCacTJq@| zm^NSD0RkKs2?WkiZ%nP!>`bH?%I27uh!D(aJspkHo4v_l16IftlkQaF`q&n~BpRe8 zB&U4j%Uu-sW5aJMQQKd>O0hT#G6mo^>Ew8grC&Cw0aSZB zr4*Q}`c$TLw~wj_yRU@%VU`4Qt<(5HCLP^@F3uByc_8wI!9;XQJ?m)~`_Tn8paYLL zW_U1Nkxxw-E+#s+R^#rU#zCDIpZeAkdmQhiep#Glt+Zx;x8{Wq29SE<#*dEt70_G& zfW?~@Iy-j%(U_5+#RpX^{zTw(SSrbCaL(CfSJ;-Q+FFkG8!c|+>>2mC^E)fMeJ>>7 z__OOS;AjwhKhD!m75d>8!ZprBUOCM!og{>J1-K=;xod{6RO=kr;uY8!xB?i6PmbtX zoN%`Tbv*XWVtaCqGAAe*b=^?!c|kdtQhkrw#CA)}Fsi@?GG+i`nm;dJRm+rvQ=y#| zPAs$(i!ZeR{rf!iWGKY z$wsfe#n&k5#-O92&YjvilQ=0E8qx2KT!5k=`>9=*WoiTr<~{oIb_Eq9fE3Q#4pY+^ zz7 z@Px`oE)%#Xy8bxvUn8AWl%6|ml6jT+{I?!gzyR9Ng&Hj6k?jqa%W<37EZKvdhjJB; zqE$$-(8q}H+(~f@j2eoQlzVj9t0KK%rX+!rWPH6MkdqF}6}WLL;0(EddPX?%FBmh} zLfxB2Z$7DACC4?Eyw#6TBTTg<$dV!2!rp;+3;H~Qr!G%Nm*8JxL9HPJGUCnTBl}ZW z1R5-PaYc0w85YS5xOS+v$grFPuApbjTN64GbmAG-4rw#hh8@l=82RQjJL?6S(1_Jq+~>K6#}`m9Xt4$qp!%FvrG znxEg2DpTXrrWMRVorw{242Z0xflw93Z!bg?M5`XUx|C%X3QMrok2&V{BD87*7}68K zHFO>P41d8(Uz`dg_drcn`aR{_rHY?391QkdLYMQ}yA7Ii+De$5@*<*bt( zaJoD?jdqO%hg|;v15qb{!wBr$R>zw`O4EuIiVvVR$~R>s?`=cpfmR*si7&i;+wtnSV9C;>2N|eii}uM9w+{zBH0y7DTQ1|i~f5> z9Jw;yK-@BO#`a!wn=JP2jd&JL?OXmc}3@>giSh6PAB(2r#W}MU=V& zL-rr3;vuZOxw+a~Nc^EQons5Dy~Q2la} z{H(S`K$@bcCJA8fB{`la$;|=iA&@pGe-eLGJWcuXcXOksFB9|;!=Jyd#mP2lpt~@v zD^)8}%;=#5q$nJME_n-&$Opy6(ox~F>Wo8b{ix(lE0##`1m4+Z(_Wab<%?yu-~j{I zW1#(#E$2*#A=#M4@z)_WUtwOuN_3;cHuJUw&QIZeYbEJVB4381iGbZ#y6u--???E>yire-USm;rcw! z>N>4yK%fJ$FhKYp7Nf^0FXDOqvbJ4FN3#p%B36TxZod}DMGIa4ItS~et**nI0PldT zIB3V|X|#)aWNs{tp8+Y=6f8R!k1OI0&N_YSz$U@O;ahmlR|Poh3?J-!pF+so*1fD} zUiOwguIi>%eOkpOoCGe|``%$oCL^_y$?I69Mzebzs8dTWPpJr+uHwBC9RSJB`Jf=1 zI^;z|CogrCw_Jl=+re_n07i7HV`uhl@97ro_{85T># zR&KMlkQxDtXsOV;y2hdYbhJ(vHW=8QRvZ;<%!$9pDCu_syno|dBe02#6?%VIAQ?TA z8a3imWDQ8CJv2oE$VC6E*WLqiwowN0kyVC(WVT?`7xjt{r&!&b)!*~?5MM8b%`f}LxmlenK{wao&d*B@V4wQP)57qssCpUu0grblB=WLNf zCV{e>DlzSqQ%@2f1s)@r`~=ajMJ9t_l;tp$g(?b zv5hQbAkA%O;Ji~gRn-R&+Ti`<+BM<|j)oVeNDT6jul}|~_Dc$C3JW(A-7yL;K!*@; zV3*@w_<^lD#6pc~_kvS^gx%spiqq z^1uqr#4zYJz!O9nw5zrmkIz+&$v~-OuA&eOpeApb!9us-Q=9J{oF7h6sgeEpLl0ZR zmsnO5mCLKQ%G*U+1LA0T>nwz%XI}WJR#=Ep`zE3}EQW>#&D9#kdxS;&7JA<@g91g7 z5KLDJc)Luj9DoH+5Sl zwZWIk46DX~3g8N`RBd=7b>^GG789)$99`7tci61xm`uq`bxfh{)w0-y=1qYa%;qW? zC|(uZw?dn<{;Mju5ri{Ywm3OT_OVV#Bm+>Hir8fC`=De4c~@;6yN=7{D@kVG`W3ZO z=k&r!_}3JGhA8a%!Tx~F#=S@lp-r-T1cG7XoZ;@#Pv)Egpo@&5Zzxnu^Qx9n+Q;0+ z_IMuW&EyHObKF=tez%GSNHnxk*`>#N8^IIMu~!dFB!9oe5H{YsU=1aOW1JcwiE3Sq z=u5Jmt3O5_CqOMQ`o5@wTib6;=p*kBH+5Mc8F{*Ex=Mvwr>|)8X}N6?ZQwB}ff^i` zPH?&do;cdYYY~VW)Q*0EFwT%)XAA3q#|V{j?0oLtMce|B z#C!E8&Ik&tjz%BrU$Il1YR-vz;g8Be@RqIVRF! z-m@+UYynp%!bt2@B~&L?jcBGir=Fy={!y2sX9$GVp)`sE@$P|1!kKQwZFga4nQ;>^li+k z6lCFd02o$&;KgQ}Pi)MHrE6>3YSJ7rHTI8HfTsA!Ug1Ky1SEmZZB{;HS z_t}(=Q*qqS&35nw8%#*L(I)9lA`?I!5k?u1oUmFs1p15Lhx#Npgp=Hd@Wa9~7SCDA z+9x6N7KZ~4i9+xpSbP*gHr>3wse+Q)qBB&~8QWmstKF zB&a@{$(=LFO8KwReLHM04drJe&(`c7kwIw(PP@lMpl{m??QV)UQM~~Fr8LDY%t`~g zNTAnQS8g$!eWeXX-TH;gKC_NB^jiDwC=D?*d(aK4i)b1eaImoE%1S@tj7){bF#+av zURiFEJzA^b;XqW;+WJ%1xkL!$n=9xrON8zim(K-tfjJS~IXUX7_*f(;RV3o-%nfYr zpVzH|Yvy)N8|?>k$@Y9CQ(Mmdya)zXZfO#wtb;dn%!t&>wURT)$SiplHX1q5E-ozf zn?>zCq6d>@{$4==)8#u# zD#zQHtH@gSgF`!VIbrQLi3~C7*-SQ|QWfr_zo zRG-L)C!S)`Q`tEt$fy9uGj@(YAB1`wckZ{90O$BS7rBXTuv)&bkImXI? z%fLL>{rT+a*Z-XC2fzPNd*f`A#cwNT^4xSvl_uo5wd%Jz;>ma6y#UrK(W!V2rsp6E zcr@MWww-J1#iNVKyKC%10U}Sl8;k6CI+JEU0}BykJYYfV`01-~|@P_|R zL0ecaTRU*)fVfyaF`hw!73EvFD1Y}cnJ4^i$aoy=k#}Lh?{UJhyG;kZh{Hk69dnwV zm7KzzCTmR`Z*DswuMN}Y<@`y`ERW@Y^*81gh);pP@O|nuf7kN;9zYw5KA;gk7fs zII>E$Za?3JEcCDL-!u#qehnQJ@4plC^?ba}&&4kkI+)MGXF*dLY-)ze49-O*3!lL+ zgI2Q#iEyei{a($|m8#vCAm;TJl}mSBq!Zmo_W&gAqa-QOq0qU63|{m32Ed*?zUdT9x|E)1C&AHV4^Ag( zOr+=4;dD6umCg}>$=Ng9L`#jS>rkSGwc|{^Fn9*i%wFane=;80w*%dqbA{2CLE!d* zmA#iJc^If3lz)vsX!Hu%I)?!i6hj=nnd z*9Owxbzcl_dpa>)pT#q5fs?81XpO1>&tHd972TLz3z67T8OD8kY+VsP$DAT1Wv5D) zuGD-MusMaX=3|5q1~31JHKD+J@gLhMH!1|0Y5RC;?&_Gcn;l2OeY;}Fwh%&h=0Vhr z2uuRM6zp?jQ63gqS?Gef!sW_>K==EeBLJVPfkSBSaCD^*@ntu#*W}zm;iRr>bFlPL zzG|$YIgH-8N(q@W`|BOw*)m_Q46FtfQpU6#Og=2d${Df_DX}OQlT(Npx7{2}x^J)C-?a=;cC8)Hol}?GB$}H06%{>ta1EA%KQn*^zq7gIwBaZyRRq(r zXO~X8b*nS&Aw}hefO)aE>iNpUvx`IzLnm)D%BRO9i@a2JJzkO*!#ereps90)VpmoJ zcW%T9E0SPtNuxIm7w&YPVnYAzB+&hLFz-_BiM^P^qEz~y}MS}H405o zw~N%k3w3vPp>(qd-n=;$HU}6-Mz5AhDRn`c(*O%6wo@1iOciR`;eJb zoLHDl3N0xwaSo`1><)1m$bI{&x!ihu7OeNZp$0q}DNA{(Q%!ZSG$GiGe)wGsvkz8N ziKv5;4#ZdlI>uH!jADqouBJ%H>|w7%N1&^PL>;!*Cm z)YeJ*yU6_!O^rm^lj(^O!T43!`sf`FdlMf+uW%sQ4u&z6$0H}`yrtaH6#atSh;<~& zDw&Ru?=SPdEbsHD0IAxaJYI!6Dgoihi~OJoNeaVO!jiyiJT%@r1f*xwiuYPTnOrEA zFk#m>Hv8pkC%ZI6kHS}hSEV?Fso?Kqs!jgoJ2GzDGDK7F;t=_6O&h#RA~x{4>(M6| z|KD8&!($1jKjSXdwLsTe+6CyernOe;=0{^cyzSel8rpHnh6rNPx+OF)3JH7csBK8x zP%o6*r@R?!(VXYQWDeG9%d(C-CT!-PPa95&tA}yED-MBFASYLMCh{nReDF)VN}MlZ@k(cz;C`T>D}L23!`r^8M0$)J5>xj!_8bV1O~%zZ#$w5CHyG@{!os14h- zz^yDe2wlnYC#@<#f-%FRl&&R6eF(a-bC#n~@1h&zrs#}w!eq+HXE3n@PPw5uBauRt zGVhqPxRO&|l$3D#av0Qd(loZ%V5z#w%|jf~7Udoryp_D0!YGqdAo|ijatdZOA=k?x zw*~jC`*7{!ES4ZaBV=h4mn-@cWE^zUBxF%x_E&%rNyYRQxEcUGK*GP%)d{DO_|@02 zS>gk95tkvZjASPPko7=N(G5z`4;A=ns;NuW02my}k%W8T>dLna z0ZClI6|ZKk@oybSEorKn3~xK8`es5l76*zRd;@RtRd261MUW?@K&-0A50=2lq-Q$D z#L^xeQ%x66+!iu#;HEpx>A+h~cSOYfD46VYJ>HtjFJ_)D02%77yU4RyBFl6*WT^u=RE%E=)!g8{{G4ukHsBY(g+Io`e2K92N;suPci6wF+P5nT5 zr=tzwZRrUTe6T4mjQ>l=aldn?B`lP)^uEuoc}-LrvykbMp~WRg^qxSUSU=N^hBk&o6SBXMeZjMo{0+0hgb`Ndr z;se{@-m|LNo0-bC=3}yCPNa@XYM8NzT-mReZw(>Nu*|kadwo(pV8@fPApGf(0XTfb z^722D;D9JGr0^tvF7ETj2fs3Cj||mG#{n#D5nNq3E4} zh~hJ8Te~9aEHf9L93R~Q0ZKYM-(Fn20_dqlGH0&t-FAU?df%a^%uk;AL0Xp zyh;&!i@I<_YFj&YINh;o)!-YZ_e$s4fz(95E5p&zm{ye>SBIgaoKs}|Zf_#JT4VWber^sG?QN9v zsFeFO$=M7-0jj)J$+hDkS7FD3FoqGcb%G`!`LJQ=MJbxN5dQ*dVq7;ej`fNQ)h~;B zm^clk{A3CX#07;oT>6K_acz)E)Rs?<8k$o^R6DDtqkTF#72Ibz>zX!a0yhuW(wS!X zZ?E>HNHS{k+ra_{QB6PJ7U~;DI=R`QCwglb^_G>oiR8_pN~bcWO6v{zm4)WNTWxmB z%xgr~)=}M(25_M?je2gxFq2sX(*Xi%QAcRA(718exK%0X)NT;)>#j`JYUh!Kl>)&S zb29D-BYD@3LQY03%PHXK=Cw+;<5MzjGY{IX>(e7s31R2j?!8j^G&G+#-d=q^6; zYH1ZY2UyWnf$|fHx$N|IqkEC<%M*}egDOset%XT9(T6gPyf3o*w}y&qbMNzGN`AGE zfXy)==I|>zYjW??g&ze9Qs)gI*i0TBf%g5c+x8jRYezCq@O)t${<zFo+)E~-@3uHu0F@Hs9e`M`=DEb{keQE?fN^Q}?Y6o8Vy5+6uW+>q+(yC^x| zo2lk77v|l2x*Ajy9rpsf9A&xJ>4~$<+>uyR&EAL1-YA3E(}Ns82V1oKZzi}a-s)|Q zDv`y3+(bS6S+>e->DgHE8v_TU_lBtvF@Fi=R;m5@^l`8R1xRWhC+_FXruXv3)5?~D zD|1j31Aayf1idu3`TX%nu#C)95{);6Z75<*@yN&0s6SKVhKILgcto0TMtA*5XlNS4 z(;%TZt*x^p;SRut=xoa&#+~D$o}iXxEB9z+H5@b~_<~I45ycwv?r6(Vu}udsBQ9&) z<5SsKf?s#yW6|0TAr!(<)zI!`F?Bhrx9q-0FLU(E#!mBiXz~?dXCgX%VbmcSKv-u5 zfYPnQ$c1#QBk}-cxh9TUq*bHNnz}BMM{f;4f8!_1w;WJdAC@GZDSo?WJGpwEAsRW5q_mS7dZ+&m|TJ_}#E5ijyh2!Y7& zVB}5`0G{y5Y2(c?TVEX4aT2}a6(E}$2a)2m#+RMP6)5+_gK?U=5ZT11R-{taa$bqc zmEOSksqsGle%i5M8c*$ijY#7$w6UY{F6u=ZTrns5LuA@bMyQvehxw7$9GSB|73rc`VvONzghJWF{mF|Sd5-eB5OPh-|%r(n?XIBQSZdOjQ6TsjYad)uV8^hgjyb+zT4EcZ-NVPJWkSHzvEx1 zp?^bC6>4g-LU(!>7_S214&L=&cT1A~%WabRfAYX;ym6-&jSk8q>E7-s;@uWm+Yx~x zMa%8DDhKsX#k-%qz7rxTN5Js?rJ=@wvxBGXzIZ(w!v}f{h56`C4zg^%%vn300`Bzn z4AawTj)fZNR=nf`=u&PiwMmq*GJQ^Vim6i0&J@!jo5J;+iUI(AnR(8dCBhT+CXHy( zzvi~|mMASR2&3maDh0offF9@+>+%v_W7TTS%jP+JSAJ)ngn9DUO@_)K%yF?vtYQh& zQJOs1>xujC&jl$sgUH#ySr-ui>Ye623W%vS%!f+%86Cny6yDzRC!cc!&pzV>r)J>; znSl7D@}1Rubk)AGUZ!~DYwz7H&{@PveA6AW%#*4+ys#0<{gHm9Z+p86M_;MT$aeix zm{D@11Lh$V@Fk_TF0~1*`Z4d-9DsZeCUkyjRpxQyX)2VSuS$|$;OTesQ>tP=~ya|o)-blb5Bl4Xk~t!AWqLo4D?kQ<}phay*OEkbfb+x znUnw{we>5!ytrW*tdf*h7E+(kJgOs4?vp4MYR97nZL1a#BWdd!=4b>GZ(!o2Scrh& z$~IX% zJV#vwtt#;!bS@DhU4>#L*WR(7|G7&@<`t;o`q7#%7Y0hetG!wG&C|xZtoL(q!ic>U zI`CMn*;dSR=}WP)UYGTLIFwR7b(XZgXiD`i9#MS}@Br2jSb8VsfE5BkwklK`L<~Zz zwr?bSTf;mhae!IKc{{L2^3(?EhS5CtB(N;-}218$GGgZ3p_d){yN_y8{y-)q6 z9^aFUvcJ{ASPp^SlhSR3eEPhG{=|oSx>saS^~#8m>_HCUZ6OpT6NX{fQSHv)-=d1& z^m-8WY?1?B)2eh;XNWA(V}x-WhLx^EJ$?=^wrAAdim+Se;YlISb>!6pMjYTp8VSm= zq*6xaZlja>>j=VdALAA-5&yCdG^_v{k`R{HIP9YGB2R76lR*(cJcI_=khPOKu62@lh4SGVWQ#S6CD<&JqkkTj#rv}HW zoG69As)7gTe-N%ilj?A9IgYG2cx zD_(hEGcfLXhplIV!d;W9wc{+lE(v)a{r+gY1exruOAK_Wqj#F;cP(FiO6nw%VYaWj zbY7$?Pqeb4O})FDS<7!kX-NpL^^pu!jBCi&Y~* z^qNd!4$#?px3aTPU39bX+#|A5Lt<^@I}d~VB+Kc(8G~Q3oYJNMwv9o&fjpq0a351B zGy9%LdGBmS{v43H3G$ zMV9xTF~Lu5=Ol%4^sj$8@c&@dn?oS;2#!TlkE&fvI^wShA^(kwr?J%NI@#CH#%L&o zWc1sLR56}G8D@H4zN@YH^-;p0bp_*n2N{`NfUokY01dICKRJ@cAr>s22{|q| z!q%jZ-jkM?fHGtiK++3tN9R*f@eSV_PmZctQU@v7Pj2nlxGUEX&O)JnB@O=cyE>I} zef-QBoD0Go{QgA*WN)R!KD9HpX`7owN~A$kJ+3pbH>M_=chuP1`=Ce++3!_ zu^jw;hEwXrJ_Ezuv=yKnrGq9T+24=_jxh*F8mWa77)y zzr`>jiMe zz%SIOn=+ep2(-3u>mp+UD^o&op%eFQVplj(>y-WJ2LV#{;tzHhqL$a;OMZ*@gJT5^ z(tK3~-FGt|B}yzRq`*nrdzA6B%vP}Qa}U%mb<0H3z|ABnah=Fr7kBb;8tb~%Deo;6 zJH7f;gb35;K4x?J9mMPUz5ML}0k#+P4PBAq<{|qvx4EeXnXwbZqgqc{IbK;P!!l7_AEojJw>E$uAl}|d+NJ#AAL0D24VYd;uzOIa3b;LP zRp}v`y^R2y_?q@w0D>}!(*MHsmn43ggwVwt9`Z6^rnhTZE#YRYuBZ6*5ZM1Z(?*g{ zI|zpA-J(z$eBTqa8mfM~b0I$MLeFm*$nsNmS$EU0vC2I0boecToH1+f^K*iaEDGGm z*BC`#EJ5~(FpCN@C?v>rfoInweWsDd&FSk9vZ?otz`DvQlkWB0EIr<>zAT&0K-f! zaG`bwgZ*agI?^+}i0eR_29AzIwn~nGMfC(^*$*F;whH#-{j3>Gp z9sa87bkndGh~Y|D$K5qm}p{XfvHz-bm7c%nsxkVcs7R z0ah!=EH7}^+8^dsOM&}WAR!9D3fb!j9P4x7*an1yWGfg>#4S2f!5Tz4a8LfLmJk!Q z6;L$D2I2i10Es=}0{qV>xtzU!miyk%i7}pvFae_iuJdU27ntCK2leb+N3F$20?}}8Nm+3PW)dcQAD2h zjF!M@Qs!3l^HxQt7%dQq=bU+*b^T5c3VGa8{4@PmY)CxZo8l@AgE|3^{mw6}4wRy3 z#&G_{NCfzdQ}qBe2;f%J{2yAj`~{Hz-uhx8cQg98dXg{J{q29x#gAGI6%UV+Kjez~ zW>`xAcOasI?8^)sZvJhFH4!7@dMJrv>48HCPs9f<5=GVb63)nu-UU4sN8L zErnS8EQfgZG6?G8&KMgoIDrQ%7&cx{d_nclA8cb!u}v`HjLg{X8kQjJ8Cv@rmT$T` zEtp+Nke$I`_&S&Kpp|sdB!RN~{Mn|slNewiLGVqvQh~n9!qyfo;dwxM2@IGQ_V-5& z8@`%lZAq(M2qcU*5H`+SVgv5{xEt-jLO>1kSZNTwaheb)TLpwCF*#AeJ6Sh0>?qev z3-03@sGw}E7zVvq2Psou;j8x52(JA3b?U3&6l_E;VRTcl6%Ak)%iMHiI2t>kQ4ZSO z253l*S-?Sv#x;nj-5THwvTDsP24`$TjNQ>n;=8K%mi)!ompSEeogW45(8ut@KVTevS zjC#pT11AV#Kxnc&B7COMjr+C6cM+BO%izD%q>f4Yjm1&es#vyW#4AkZfK(nf6NViP z`qJtDJ1F-UA$iv!l@Z|-zaQlQNd`rEVm_6BAKW6BYEeNkr>)At|MXV3fOi+~5h^x7 za%0#REl!73riyStXhUc&A3&9*DH=vOG>9p36!aa9gJ@-x!Qt=M=lHVv^mMqJbn7#H%Ac(N~Gapbsw*i3-O7;zPvC9_n0nmshL4^Xq7$ngW?P4wlP0$Rl zLhU$(wqj6cIL*!9cr*Y4rfAjBD)Rk;DV)E%%VC$*i)H|ysXU!} zo~M}ori6tflLQHSO?1TyCGe{Y3)%=gW;u!Vax;UFNhb(}mRdYQJs3e6PEyz@4Bcs} zHQ&l~Q(^WJ>Mv$zl=Jm$cAe+e7(trCtA%(0@XB0`&~dT=0>cVYvLG=Aykuz4{Ay@5!B4s>4!nvK?MMTuN(BG|ZJlsU zYDccXURvHxU?8QPZmf~sJBR_zwRBKvq|Zi2dIpoT!G2b3gfy2Ilq<$sb@__~@Pgcn zgNj>e!qxj0|Cfda^|NMNSqT~(XT;loRK{}^(WM22tPvhdAY^G33*|{7RO+Y_!jEPS zcq(yU2iLBqiVqg?2l7kocaT$Br2ibgwal>#V{cG!v5i-ttHB96r&vbc3a zfi5Vo(Z%oPjXQ5Eux)|dk(xz*9#RCRBD)}9Oml0EqYX?Et^nJ7>79QVRI-u?#u77S z3+%Zyk2~%n2xdv=yn);s_*ktZ;G;*sKJWrpP}ujk7A&3>^gER9F~9)+ip_sh3o3M4 zkV)PyEZI*)u({{m7th0wf;%W(T8dPu?c#AmITkJ_+(M0PE7yp{`O>8`(bCZQg)Wxy zl)>l6{}^W=Q9<6M>O#G;6Od^o@HP zE&OoZyYVSe*9w{_)nI(p3aRm`)li}S#yPE2+fisrp08Hk?%XHTWoyEEqI$Jku+;At zQHt?u?t-?s3_~NleU>uRf`!eCwvihQ*JdFhB%4pOS-psy#t*Cny+6<-O!FCnC}ShmWA3)|oA zP&pBUI1a;*g-T)W)ut2&_2Fu5s9wc^!U)^d?>?8^t$>-WrJw8Pz`Y}z=N(iH3`jvp z3>?1}upW}e0*`^GOY_(h7!=M$Q`87_EBlNdaFcdM)4@0c)?j=VunOqk1+hCG(hx9w zZaQt2f&uPgouSK2KD>Dcw)Q{{G@caG-4pzDz)E-AyFO3!V|oM zV!rDZa&c$RAT&ONz_BNxf(hFQP9ke#1J)f@-$UdIpJf|dHg0z- z&7z&J80^+!)Y+LvAQ6xmqrenx^85<|4MNYcFslAFS14Mc1G9p&q(z1NP|$}vKMHAf z+dw{HqapY-qc!1HmC81J{mm@GfR|)}B4Lgp!NN;tgbF{{Q9*A?&PK(QXN4)z310Jy|EEA8@-^79POk?P2YaDtrM&$09kL$6?JuKS9v z=2U0s7-V?~wb>3YuuT(2gQ9kFN021(Ni=-b#)tI7q**{fO9EZOv;)Br-{Q!hG=LL$h9feG zz_xcEd81IeRE9YjFml1#O^-+lxLkU+p9eJpD0ukQ9cx^Gescy#FxUX1bqjVfkrIHF zv}lya4UOYq<0y>>$$#CWL#kesDfyFf_#5CKHd6KBn`r$l%pnYGj5L46KK!)~VlYR^ zSB`naS&Ph(cxDZdCFt{MaT0?GzI4>B0T~czD0=k^)LgG-g1Ksov913$&jVnmBAGx& z^a{Tb*skPssRcb{xY|_cbFn9&`XYMmglw^)CPD>$d<2r(f1NM|B2diME<)x!D$15-3!#w>yDBSzxrn_Q zDjSFog7)NC;e$e<3loX#FhJ(zVQObTikl36W@90zWG58+!Txy^sVQ?$g})bpeE_(g zXfElTYZs@Mj82ZV*#ar+pYC!0WI<%&u@t1%M!H&9+sKL&VGwVV1{{GlD+rZ(8wMk) z@?hX6Vr>4_h|elW&lKzudn8KzzsyDyTvFQA?SY^AMy58JkDQQ_^*}wQ@K`cL}BOsDXt*2pZBRh*(x#4 zqvdZFS46Ul3V%`(7(rWi%yPd50~k{6`~~CBzyGS6T4^dp;tYeb+pAh-f}1dhbHu>Jxrs{2ysXCegOc4;cD`6YNUAo4{!YE(tS&T%Owvpb=WCzk;IEW+Gr*{*UQXElyaz5Z_J^ zaYbs4?++s|LBrXsd??N29*KB14|N!b^t3^XU~eIaz_~-7*oY~SfE(qEIHVh7Qs&qc zUkRJ(HFT!eFzVuFAeEz`OD&wXaL!=v32PfVhA@caIqF0OE*6~x=^`bZw&~Z6oh{99 zuodrk{9j>|o=EolR0xM3VG|H33`nJ#`)4mt=tj+NW&5|tA?n#T6XLIe!|7|}W!7cS zhlC*yQGf_R_f9oAREiR~{Pjzeii;N167lJxB#{T(;wAS15rANo5G(}jXKcz18r#lI z!sdtNP#0`g6;6(>VAnEVA8|*)kcJm+5_<_cImI*LA~>y$$nGP1i#75m2=djM?I$J} zN*X8~`5lj{sW@3-8#?X`x#J8#-UsTPA^^>gkjF( zU_uTMdVomH@s>Q-$eI%1tahepEh2y5ng1m?Hz$u!vHfeUhD6nJdHg$SvlR%MA^QWi zzd%R3mBI}m1~x%JCSj(w5a{RGqH#=b0#AQRI52)BSDm{OcGikqgRO-35)4#7ELuXL zP>KgHW|#0^xP|}SGUSZ*I=?%?x`j%Fj~7&uM-oY=^<>bCuM1&o`Y)VYaUk*|sb~p- zTiD5OQ6e34Wb*-XGkiEbcEsoC<-$k*JGdMiy1Dcs&;gJbqpr;i1878^z$S_i5Y%}6bGZK5AZNda=_jP#)*ftou}dyavg?A zXL>1MIlNn1(^S5|ZcqW8#mLxowC>9{Td!r=S3Ya; zo(x%UjDAF)nkD2ANeCgQiar(~xU34VDia||7b}DiAA};nr}o~N-v^~Wv7AtZ$PwzI zd^ql|fTlJ{vursC;Sl@LcG=|0DlrZX)(Q>U6N7{AdkB)73wEQx+y%!TFEgwFvVJIR zG{DUlchXRz5Rs5P+ZhfMyyQRt8@eJ~?rNTu8RM-&etZ=HaM(eN zIzkpM{9dT0H$s|#<1BGVhE%+(;{gfTx3%D+h%T&>Cq+QUA+i^thXf&V(?V#ZM5@R4 zNTF-|%|g-Ls|~lp1ld$}i`Bn3Dj9v!V3~gv=MEmLK-j{Lqaz@rq4%t!PnV*YP41O} zhEms!(VfRKeZ`a_l(U3At5KH_<~C$u;xXQx)jKqb*hf4>pC3|$JB;kT!#E;FXzSOn-}awziB^CwKH>nT zX#pZ5&@2i@K3sIBe>Oyo#TMt@c(CDFEHb_FPoowfs9nc}B1;-q3|UVwWWP&VS4RhW zkaRxXY}!E!F|{^nh2%t29tM*E+W-c z)0Y99)&q+89Sur{QbvMcG|rJ2ODqGbR>Or+POd&7itxj!r_r8-y-3BbrXJ5?Cn)8X zZ_pI`R0P$waJp4S%fP9jZ*@$S;ddE494UaE9-TVe@ieq(a#*@APM4{@VasemDfK=F zU5&?$LTb3RXfzGifzB{%w$yTq49$9VTDVojFlpF49vJ|8J_8$mBq@%d zPDtnS$Uq{cbC6z{;Q>wp?D=i7|0+8Vpd(rWY z${HSZ!U+`;-#7Ry`09yS=82kqddnUhOwRb4rbm=YT}Fh>F)THVj2WPMHum)JVuS;W z3e-R&BLqB55`Iy@s2UjSiL4P~k=whrz}~D+dzmRVWH>o27IASxR%m}scUj6OizS#*TJ*889Ts&U? zHSNO7b<$Lp68Z}x)I(Y4NQyJwtX%fVXpNtOqpH@O7tKY2#$2ydI_V?P+qqi7J@xSd zT}Q+=%4DePmx!O}cu+%xG6kPWTs|;ur&BP6sQ=*xLO{yp^3XX!hf6DoM zfZE>!|#eWXVWdGj055!$y<EAd6rol^vb6Z4GU=)JMVTWd}=gEhA69`fRO~KUPZv@>jdUyfUz6`j9XFgF-Az~ zYWtWsvKFZD9X1Lr`d_TuuF!vRilLg@XkHM_=3i`!FpW|QJRdMvO!K!B<=U&( z@)xr-;-O8}|6+J%U$mgH6B)h{y$ZBhfB}38k3Zw%A@s7=38e(VY=dbXcqJeR1Mbgz z*9B^h7|$A`c6J?j6^g;j8X5-AC?>bXjNoeC#}HS}l2GvkaQc?BFsBt!5aD2ps8=Gs;{6?y_jE>zX_&%R$8-1xlM>hI4WrF!3t}(DTM-oqsdx>QIBl`@A zPe9OWQ`S$4l3oU7dvnHAxVao+r++4tF@Pv;taS7-Ix-=-3S+3S*`$Y@rvwsks%B*_ zWrkK25FRaq7nez!AbzG+Z}ry9^77<+t)mnm@frL{qYLy(2nCCOEx3OMLqyj=hIr+q7;)y*>{L0MtMAe(5{Zk$}`CH z#DY~<6(<6gtVpE&O`-^7>Lw_d*g!m3Vg-Q`pO%JcXPS|PL8=aX#M-h%dP*y^vf{J$ zwusOUp4lV!@Cr(LG}0WRK(qyX1;qA*7+66xdcgbGIX@f;Aa>Ey z69OzC(qIPbY!6sZQd|t2>*8yQ>(<2({U++qu&j&t!Fx1{LJ(FLq0I+*&#)|XMSrLc z>LO)7(bC1cR3bq%tKLp4^1pLzajz*ek3G{|@NJ-*%^2+l;~J*L>tbkd+jl{Xb9d3n zpIkD~z?u{DHkilSb)SpYMUe`(m7Or7FGeOF40ACQ=E8dG$QZka&t%fEje^3peJVgY zIf8Ht2{}^smgY|15f>c0<&Cew9wX$@uRmLSV(7J=}C_-k*K+U;9OGsG=(%S@ya0Q>?uz z!j+a^I`cQ`>UtP7LZY`XjVKg_UFv!kpQtBMl0kJHw||O|sGyNfCEI;XOa$k_f>B4P zQgv4q_qKPJ3Dr49Y5$T+{1M(mTU2A{I10WBVLPCn4+{K4LE%JV2c@qEsl4co7m#Z zc5P#eAwLmk6UgfQ|ATWV(3{~@Y#;hK|Fg~$Pd}}dc|%*%@M7dV5Z+2R;+`#HpEr$c zK$=0eFXg=TAVl37=Z}fCmI3u`!NgkBbxMnT+0l4!vdza@1r~NAjd&VQot{Cn`7slz zU}IKrF)Jv6zm=Hjs0qMe#aWxm5||VwIWCxj+rA|`H6|p*pyX$+ei<>oe4RbJjrbG* zEmH-qJ}K{kmj*>K=3hojMUb4!TqoOb08t99EfRtBmVDpgP<#jh+6L3IUoFx0U|F>E z&D$DMj-WHk*+7=c2Z=#3(@zoEp|dY8dLgk3hE$nyr@NBER~-J|o{o`&(zrUH+_V&0 zF>EfP`R2Im@=m2H8*euDQn}^20HP9J?nFgb#~v!F%(g_RYUvnLx>*lQ%R!=}l#T|y z&*@iGu!HcTRPWSBT;5n_Qz;v!3ztF3mF1n|6pywpx|rKh)02`)!%wl@t=QAF>V(;T z=!y-u+HZES)VEtRl-{}SGV^(vzdb_+wvhBC{RMgv$dX01lPu-Y4U&?}$aFF5<*iE+ zIu5d$Z;>QASqw?1*~NAr8J+C;)jjst=%A5;5*HBxRWcWetBw=3(B|rdvww8Al8nva zk32C~h-6$uco?;0#iA`_JR?J{+QzyR()Txy|3~PIF`J9RAPc@L#P~qE$oX&sL9?z} z@E^6UM8+tIL*J?&mk~f6POv#uPMthq-q>*O{=fq*ryVG?hhms z>_$BfIDTf6(MHZ>3bZj-ZjBx1ftiQccN&Aloq>%lXbd&8ImOdUh>xNCzDkVomo*uw zw1y}`1&whIiQ>1T0Wyr*!14;VQ%H@?Wl@r}O=SY9!}92=RJmbOlB`b^UhMI#-sP;mD5L=?7{7C`shM1}OWsZ)CoFi}V;u~(%;{nSGTyW>S7 zV{3vFj>!Cl0>LU`@5-zQ9^&f2i3m+_u!Kl`Omu?CKG4;214Q&N(yo;FVfcLy-|5F$ z(RtWrq26J9uMVG!A#dJTzsGnNHYyIUS&CTqZhaem#S^t*c*FyVHH_S_nb1*(Clol% z6VmcYQ1}R<`XcztgfIzem&2PKWok&@@`%7gbP4!h6 z@95I#4sD3gUMYnQL@eBVXW0{)vJh8=Mz_FNC_6(jU8k`<|v8&Aq3lD zGru4qU^CHu$7G_Gb(DqP3Qp9?at4<%LJz1IU`B1>tfrW2x9i3E)c|v zfZlx~4@6lXJ_-*9g4A!&GcZOejAdpt^O1e6z{?&@n?MGuG-RUc-XsDoQSpGTWSw$9&G7YYD zN9mTIKDjrVAehAl%8KYA-e$4jc+@-HvluEM#>Sqa#c9XZHWMv2Ic7c!J=C#C{mwVg zP77E@T1*WY zqX!J=fFjvx7$;Qx2iT%7)*N4pomx7fV}j!*Lu3Og>VnZdOq>+qTD*P2{M4ffB8P=i!|KL#XxEaAA(M2T`T3 zC^tsA&-&*~s$$oM_r#j{rw?pVB*RS1RZ|lGz%u)C!(WrkqwT{rnggR3nK8wW{7@%F z-iT&UfHLlkc|{TYEx@8;+EX!+*@KvQh(#@1lLp>}4knXmZ5V~1zyx1nH%yk}moXX3 z&+=uYOUd=p(f$(&3=cVO?98qtTdSeDj}1(V^flBtm)zokdWCOBy0P|fMve1#%LbIn zmZ6Jkd1C-a2wF~JZJ397I_hUNNOp=<1mFsZPC*td&5j_n8$)30ffp`y;9V=D1)#rV zmS5$}w*r;Gf6~^Ye&|*^sFBIs7Zpd!@|32V`;ByojIHZzeX?CO@LcIvMrrQ?nq2t} zvqHjc>ZPm1bJbsDIy``3Pr8{nndhjJ_v>S&^G#aL?ea~Na_m>RyZfaFSki(VA$&h= z+u5zW%92#Z2);C8RC2%X7wX&i@>Xifrne-E)P8w4l{JzdSLzLbEg>n(#p`I~Y8i%~@W;VevR}XpXQgcl0p@{#~?nZh4+LIMIhrON zjV}~2F{B;OdVpTPJTC~)JGLKMNy>oDQjckIUO{%YJH%<$4JjV&j*Mf?AZvGPbf zmYW&F-nll-;}D&b@nCypCCFaYIR!=!=VAQlum+&+A@ut})O0FBAOMNVDQk}cecq)1 zvdfj}4SeNp0(0S4=c_?Wv|=pMxrPonxFBF8_3&Q$G-8aNw-6TrKvg%^NwE~|+X$nz zC!-kemQEu9ime3Pg9B1~PULnKA14P*yfJ@!JFDEZcitK+yZ!miU@K2K%4PD9=z#-J z7{?ni)KmQQ3^SUp0pBh*9vaLBBxXs(-g_+}KC94?@qvK*0BNla+7D5Z=wrR_VLMXO z;)sujBFOry>pjq7a5Qat#k)*K*;}DeeWQ*x3|3F?j5)%N{MX?^8p9*c({5I+zTd zCj3t_5i^rW9b0_m+pI+4d(J_^P-Z7Qo&K1$F`+SwkvfE>+}D_ESUN(D&={tURHu?K zsiCp^Ejb7&p|18p2X*{9i1iMt9WsU#j2xVDVVzXipfOf_>5vdJDDAJuTXtET9$jJH zrboU7`N><9`6A_W1bEnih`5>>1tZ4+_X;@C zNxX}OL_p6t&_=dFF0;-C1_%M>AtakR2w*!g!6>-<|ACo*_p??erg7~}_D|u?UG(Fh zMsRRd;5_ZG;2Tg|$_)J};J$%C{@iUO)A#!#I_T35)P4%D+$i$Z<1VHu+!Km#7X8we zF_;R=8>lp{5s_?4V;Pa4Ad~`1qm}AxbJBQrtTHTk#Fk4z*L5>YA|W608Y|xEV-819}Ys4 zMwd}s!l*qL$e-Vf3;BT?vkJ%=nrC^BKsY^gOrpZG`;r_w59E|WA7G&8qgdc<0=)^m z6+Y?XS~-DPw{$W8M6-luUQhMqhb9DQ=X_gtq;>q=`Vm z&u!H|HU{wh*-jeK`R(>ck(p~uQJ68)Yt3%wRN_ul{>DEJeKORVExJfCgu<06x1^M= zPYgU5u-bXDA7u-6+kRznV6%-IjOqS20%etg3WDIM5B2Jf=rhI^PK*lLp5 zgHKY$5hM%LR7ui1y(C^4$)_|8UV|i7IJ!~>fIK}?WQm~T*$T)gOCxnzBR3Z6FR~{{ zqlM!5UC&=0JL%`YCekBHNu0$zL}D7Scvn(8B-L`!630MjY3vA?)x|N#iKdL z)gtPND|0~_s*Gb$HjtPC5*=$OJC%EwEf~J5QnEY^IjQ*tdpnidfsZ7LHip^b+I=7~ zp_y$I=Mmc;3w4%|c%;EVOYDwVtA8P5o9w7=&8L7>qmJxO%tZm;@3Ox#=KEWYZG8fg zTEE6|^Eb0gX~HY z2F>EJW>KZ8>KYG={x90vbj6HOR>B1sDl{lU;RL9nW>4`xXJrtKS&G9y(=A=rjG}}P zLlH1RgW~ryk(D4vI{bP?{P!twqTrcmzWAIuua<)-^zDGGN<1?keSX!2&Xo(&Gf;*^ zjHxseFqtFD43!J2ZbFuArpaDcpKApDb~^!lf;B3JXv~7v8?5s|Lo$yAlo*DQU}Vf9 zAY!vF83tJK!}RQFZd1D5s@=8=poN)-^uMh7b^vn~cw;QuAS=%{&eKvjrcTyi&I^Z^ zl)dVPj$y8bY3+{B{A-fQ)Ph2iTys8```Ur2G~MWXy&w-<%cOd$P805<&wLQuHAluCre z^>2iyIsp;mFJm3Q(}hHLJev_V_+Sc^R}rP|cMbvseKZJ3{K0(VSlthPFpn@7M6)!b z{)`pNi}WC3wesC3ymq1HH86Jhq~Y&p3=e!EzxWxI?la=Hk13`r&t}3-?pn^XhBp!`dDHZjZqsj&@JkbSpSc0Oztsm^CG5= zyi&A5;3$i~uvmAqKgy<~EE;(3KfBh=z0Kx45T5aW_}Aeq9L>;c`FnXBG2M zW(O1o8P8g;30Cp2Q=SgYKhRdF2DT-bb^xYv>@eZt%)~`?Y{9&$JqCIUQRgK{`nxIl zE-S3d(+`K(o0~M3%PFWQE_Wutdw$jDtDdnViaiUt-7p`+;v`LS>#S)*%bWtR!`LB= za9@WQ-sqMW!Tmk`b+!2-w*Ooa>DH2r}0v!5kpVnup zUwX6oZzEfp-4%+%Ic+J%$>@ViEK9bV^=WCgj09fo(!QU#_k_+V70NN* z4iJPBBMNMbR2cj6F#x*clRto7%Kq|2mU-E%JaKx@Ii` ztzThga6=4M{+cKj!w2emkm6Tl$;jF(E7B$BjkQLnVpSDL`DT_VLTM~99s zoIw<25!(H+^NGhw$c%W7p;jRQ{LZd%CN5!)x@{77(cy|$Vtb5?L!TSUv-kCeQSTXqBQj>5O#jMR(N)$^ zxTJlKhPhh2>t>ib7%SG8481T8DTXBp6AsXsVvT{PDw5=dDyu+4aA7rVx+uP5Pf`Ws zBzTTutN9g51X{Uac&O#+6f%RfB*at&f}W#rB#&*NM9XH7q7ErrZto{!s7W)FHIK$S zz&(Wn~J&Dl2MhSJGoe)~eaUmjuBoY%J%z1ImckoP}Lv{{|WdL*X1_NleVsANi z;0+RXiiq{>ke@;fs)`dlkDz~{Zknvu2}iRv0i&o@uqAXCjt4r2aKy*MQ9&d)L4_-E ztS7{vAtI8N4p z*}xOgYm@f3F#dsD2?#e9)8HCdvIP9QLk2qMugRj0$}SG4?-xD0=clKY|33` zN{L&P3|I*pNNI!7iQ+C~I{X!TG|$8r+ERQNfmiB&;aCP@Bs1XzUdutWU_w`g1@)1a zMpi8IU0*vYQXaeho3S)YBU*C1^Xfe<)I)X)WK2q(2;Gm@k{iP!)3AnN@>SF`5&3Xt zVbU^JKAGAeh1U+tEVj15DR9MU1g7=PFy z#UI8>EG066u|_Ypk4{f$*3t^FeA6x>-bF06J{e$M1AR?bt6H3NEtV;ZhM1(*mC9G_ zJ?!HBFu6tFuusCvy(G-rLwfvZs&gM|d zOaJp2TXi~)%;*t(F`F1e?q@*M@JJJ(rFwkDPci4`U$-9fht_7m*bj;ZKoR!HaP?kS zH!y)ccK++}%_I++?ez$j-Sr6iwKaB*gnLJQ7cp{TYkBGiuy+RDJ^)smFgJI*RbA|$pH3W1Qil(X*)(YQ%xYAX8100%N^_%yGH7YhmNlPI_e=G^jDY^UAoS~yR6e_EQWVL_93Wng~rNewH zLXwuE8Nk1W78-$~&;U3LNhnp~`<;pqE(3(7WJ`;?U}*oet#SA;DYwa=m&fU^QXoP!t)l@S{0vE{)Ass2 zk{kFvO(U6x`&4TgwJ&k7pmG_V_k<+^0kP+sR+kDZm!9t;9_7W`nddIj=iIkv3`puI zFEbGp1+p$I+QGNAau^cNI{~zvee`x>Mrwz&Fox_z!0K#u%iL&3pmZ9@kX86RK_?~z z|709t-JCA6gzDH9wot(%Nx?JeuU`x5=umM!;{Jfdw$`t3!fg1PVM>{d7EY&f{G`Q; z?_h4qHK7r6D=@%=?P588Mews3=;NDpts?t?V62c1h=`w0{Igcm7r1XWl%Zz$MRI+E zmgd&DVUn;bnj1jgUMlQo?ww>a2F{ru)|t@H*z;B(O$}(!CrRw2do-8ppv;c$B;@)W zk$LKyUI8l)$0Q!UYcaLhS%}7P3o-3ROhz80biEPt&to?QH@}hWmYo31g)H$! z88_|A8SX*A4in`<1*ry1ODijm=#*HfD@{j*qQdPH{Xw{)RZ`aa3UhZaq9W4cf z--cP98#r#9HDfvPhX-qIDXdkQhuQ?PxUQVTUOb#gBjE@hY^79fXCMtqugHjW2eguW$3XtwN-MkKwbt) zHjDM7ybC_LG?1iq>nA2$L)XJbtebw98vb!!PqpGmv#y#XXKRjd<3(c}L~ADEBa(pVh!YfCdhNrr?_80cTMr|_-J8qScNk0%UiI3I zez+Heqp*D%3Fl2}Ntytj zuHn3*3GJIF*@RBIKh^&WTUSyrMMt=pkEWFdMMM}C+zO{L>7l_~o2%z{|R4_RF1Oa={kt=3ha;oSR ztjeFXn1bNGxwFH#6KowkCD^Kx9bIybfVK-FfI0~4YPGlb?5PLlc5`!xajZrxC1FxiQEqyXM@07x;94G+-9=DL4U%=a%I%h>Aq*FhJLo{f<0 z!_s6QVfBYY=3_QOl{_yhO%Q*~ACLf{3uqMOZu?2bb*W?s70x=*qo9q}M-6ng6T=YMa?7GRRbd%Ikuo%YfO%^&0LQxQ$ ze6(L)fX<1N@0yN*ntI}D#>MsRx?N6Y8-V&~4$ny#;^p!elurI9U`AomNp9fP68-3; z5S{evK($3~fkcsT`&kaFaSA#qoweD7au^E1qLVJzynKyLLctr9LFMMs6F7Za2Pn>w z0SGaZh1Y%ZWL408#@VgoGQhvSa^{UBfj@|Yz)}nDs`+iAf$h?Orh)q%|fId%;6d6c1SdrHC zm>TDj)jgG|d6soPPoUynNc$+M2h&d;weE6Kl}8CJXt0CB^g+FfwlGTj%n`z4k zuwWD?#{$zZ>V;}ib&Fm}hq@skiu6+4GX#om@1@+Hdzccfti-eG#IE|SZh36)L*0L< zGZT!VPf9DHs74lVXTgj=ASW=>!))ZSs{M5lr6ZKW!BK)B?m_1p&*iPnaB5e2 zaJUIJK}+-Cl1Z+C_WfXK5!lnBquU4QeT4S=-}FHLyw}5IT*2n^Nd*2RB1yi0gH$3i z*XQP63Qd|4rhkb+oc;IIj;J?_YDY5zl?m6~sGbEpA{)u(^L*lLASZ|>PlL2ZB3L~< zdr>geI0?TcB_;JJiKr6~`?jHUoaZGwnebW0I21Oqqy#1KMq|}A7Zr)VB^-2iS>wR0 z*bqc}qTQ(7S2<5Q1E6{DaSASr6LoXqlzM2Sp$>$z;|W~(r2J-ls6p5HWK8ze37)w* z5DVTW$lB)5y1=Yfe9)%4J)qe1K9;x0e69)KHQ`@&pZE*(KtXE8fhS20VVYJFmEt0h9g(ZlBB($0?@AJc8MZ|HuR?(t>VfpjNAk-N$p9Dlw@m&+ zpAcNIUeQqUcu9$M`QH8+*yWyb8MjIci7_+a0D}da`E$;emz3RvUa6&s?ZI1BVhxJJ zfQWz+lVy&V@f_X{%X@UihJWO*-kEx)=3I7Z@PT-G_JVW9Z0U^jzj`ijvJKsqCbzqcKP)Mx6yDGnF|X~qX>sdKP)Mq9!@xKkc9 zLZr-V zbw@EPbYNPv% zS2-r#YhN_gnN^LZuwKX} z#yGWwR5m2?(hdNKx&Wj15l%B2su#Hyb{mLmx>!vdMSP6A#iOgBVucP^opH)g-H=8W zNryZ{U6ua7^^-vdS1Af^j3(e~4vW!V#1NBB@xSJ%6wN&Vk3hQRfT6h4-jHYOpeJ@T z2IB>g;f!6^>UE&JG4b*+{GwCQl?b1mT-*#Wi9+%Y<=zR9xFSrc3yjQOc~FV9Mhm2f zjur8QRN?8j)V9T>6pcqQBUKMM&_Co1R&p%HAaDI4-%2ps&8iEE7k3dQ>q2_S#Gnh{ z;S$L*@Q~_>sNLRWC|Smuex2jA#&I|(FNjm~4a>ncj2VFutsxr z+6U;Nu=%db(_4#WM>;m%Qqyjb^L+rKr+Akc;JV!0sk3ec(Ym~bNWv~TLheb*-wf)2 zph(IAAKosBz_uFPS-Z=r$%tvX@3OximI7$+@>82xM}rnyvaxIu)*wl|jQ1=-bC8#W z9kyIv_U&fMnZVv0q?bK(gl>_#dig8!gez2*y(CIyFmG+{B~U#< zIl*Zwh=+h}zy_%%VwfgmVSH(fD#B^orVif%0Y_Z*uYAdVt!!1N!36ZauIZx>QS8e# zj50X(zRb@sf+)Yd{ILLr%6{o&2dsLLS)FZQqMAF^Vp##iUr0UQ9tk|wQL6Y6`M<;; z>V+6h3^0Wp!(&ma0aKTFLX!dWd9L->!&vQLSaFVKS=&{F8X%5(Q)!lU>Z4I^dj)}L zMGodc&aUSYvZ}V&`iTKfIMDL{g&LP1Ch$r155RW>y$^g$w9;~m@2`>9!ZP(dy~9lF zE*9dpwmud6FnvzWODs+tV%xh*P3o}lo3g(p+#6sHht!lkrdgus+g&4d@`Q2bs1x-@ zcqor+vQI;MEe0U{HBIdTIid_{3ZS+fTL?GFSHXN`0-=Mm?4jQ%eqKq+GMI*|Q^x?@ z>%rj6T}4iX#G_99FEX{@0nRw4t3X|u)R`KBl3oJ;@^V(tM!>;Du06u__XtQUATu}}5QLZ(ebJD1-gr1%ivc(4grn3TS%XVr-#hX3V z8ji#!O6g(MOxEn%$q>2z9wiBU+B3(a4ih~NlF%u^pH3c5i;GjS4Qh0W9=#U|w)t#Is?wE5iy$16ua7co?&p5B zD2w!rsc-|DD;`#0dIddqVcVrq0Rtb8WFNVjS>}>-5<{d%6TAFY=_;*m5OTh?jwy{d zrE>9s`2e6Nnq+C7?fK#OF8PX+&CZsgBCbz!6_t7T- z={AyZPImOBAROEqRi$R`8GYpo%QjG?B4L!I;)Ti+&Ug#dqMdcoiRmq3eVJB~&7NzW zMAQ%nB}#cU@qrZ)U3fTG$$e-`V583{IaGR%^Goa8m7cO_T&Pzl6yjw%6l!COTP(18 zmF@^7lpH3;mtIg9Zxfyw012wth`6F#AW_#^6R7+8M)aAS+}V!=Hs(Cq!Vwr7d&r*) zk$;$#<|psL9>03~^n?@N2CDSQ$@9s%7q9Y|lNpSj&qZnB0R*xoTgAydl)vzvvXW}weYoI{I*+-y`&`bRwNwY&)#Q#n65Dxh3X5r`#jn;%l4MSZ$zl3_m>UYNxc zGx~XD3}%oHCY6BsmC4g=-M(xJp59zr>t$Te%5yDvNqqj~u|lfLLyp-|VVGQgE|*lW zue!W62z?3TTACcvE!1iav_3yeNDGLggQF~iqZLr0_J}33b%b$ZNu4V`Gemv5GF5F7 z^yp73Beo=XN6OlZ)5U8Lf~w@?7dC7AC5yZ)^D72a7Ag7?>ZU0tP)#c^rQ8!aG94#k zzBGUX|F_XZ>7(uH*p8J=dkC6pKN_L-uQMuQ?L|JqQmW z+d*!9WDidml#ru~L0oF# zp@p=Osx)i3EF9OkZp@Gx@w;)g%f>*zReUx=uGP56uWBzGixPT~(GhT2PG1`#)tvo#*~dI9K& zUM*ryG72a%84@ub{{|I?UCbEbZDQf2sDn0sfDq9Z5Yb8pyBX%Z50Oi_PMo)ON&5vB zR15_WcsLK%q=kUs&Wx@0AYwUqF0v0%7X7asY)zT%0qg@-7KZdf=eL_h^qunHsEnGnAX zo*jd~wmafFQTQNb2{(yTVgtZ?rlSc-8X6OPxmhb=ULLwc!gG@ThhMQrB73f?j))NM ze=@2+1B4LO{~%N+QV_($l6SaCM4$xNI0Ps=3zTiCbE; zH<8A)b0QXXzTeJ&-_F3^7=y7N>q zPxq8`cjn~BhW4odcnHEQ}gJIws7 zPA}Okb0ix-m|C-&*)JCZ68Cu@k9er=t z9rlgxQi-QgYuW56@ed)RQ3E9cB4SR_1&Y?Y@lm$)<|P>faKB5eFeloT-aLoVNYq!F zc^wQ#c3%r3GRFH?FajsBo$Yvml zKol&ZMN$pW4jWxMUSdd8FvRrigOl^Z!O*)&?gO?qgzK@!JupI$Rm^0Faia{33$5&h z^XS@-fewDb)fwU=18KwXt*OW{qvQ`jZMBM^`sZQ_k-=L3HvfwSqVzB{f1a~IEz0xF zFn=+gct$%t-<01809lIz=FSv|2Mz7q&V`S7uJhl;%|4x9)H$J71k>t`tPVtO0(kD* zIq|;39;2B7Q2viWNv`JX#N#3ZLsgnDK8z~3 zVVZml{c|~CMsqiMSkVZY^Jwv7!qCp_I;N#I^Bs@Rt<#{Gxq(f^m07Z*)gCkHgZkDs zh8i;e7&7tTnAxs0!DK{IAwdxk{v_tJP0U>xCX7GrcVTWYJ3yFP&?N$)w;J+IzdQ>D zJ*SK+x$6~NM%r)_v9-A=b6)Jydw#5OtDT3$#1(aQB`$BY%Mz0Uxn)}cER4xL@l7Q! zTAGk=K+JDuIg)NAj-~43drQ<{X|grn5E{I)S~ZZ%xk_oWmA!7|22&Z6Nsrpio2*Jf zSS5m{GFMZX58ZGuVq-+VZc1Dq44ys$Sjv$WzFP|^xi?a_Ur~+)MtM+$@+w0K|C1Ih zq|XCyqbD_m!9qI8p>?v2dy|9U^Gv=2iCV~AuCxo-n73@y91Mq%hy zU5ud!mo^>Sz;LoriREUSkvU8 z1AFLQ_webH_m5-hq3aj%RFwG8H*Ej`$r>BeF}b}%?nC>*MsWcu5-mQ7>l3*l^okzAZW8{ayM;mopH7T#t4=rN5eL8iOU zd`+u-%@HG8kq>1K6?~{O7R^=VvL4um-I1I1Ru{2Ka}W!W<%mwIs&&0fAqxyl1=!qO zXd2Awd4S86)OQ|^{fq0|Z0?bB-gW|Peg}j^XCovq(|7?Z{P%rkUTZM&Vyf1tN;)?i<r4u=nxP_HyJAN9)YbeLp;Wp!^`0(Mty7OGE|x7-k)d^$ zxhrL;=})5m(uqKS#+3y2t}>Ig!WD@Hwa5FbYH0JQWCJ9#^3O9w^b2P}Mx4Kd9ayRK*UT5(2cg)IWpQgCtT<6mx~%hooq^-yec~J+zJ3Q#i*nofa}@ISr&7S<0I!w2f>FS zO9err?;qH3YV=%p37qf-2SDLp&;3E?n+_&nE+93!n+gY@vdgrq-%>ahWeU`^yk(Pe zB#9OzU;moH5~wvTT}g3Zs);IiqQ#G=>0;OgqZ2?yY%ZIkIi_g521aBYe3`IoK+}fK zG?yqRi_)3QCr~wWN0$lVaj`GyoA=;9^z&2As$+I?={%-GXQGc#M2HgDXUrN*%o;G5 zM2se87+=zoY0PQG1ugw)lvP6pOqI{JhKc*~kNgsBViU8)?WKu%1Z{v#01(No{o@i$ zND-gBtCt`DoJ$o>xaKpr$A(ifRo`zshuJda_miMI!%xf8nPqTrmI22SttBugT(Cs= zFFN;jB>*N$%>}`$m7HWoa;AlcSO_(?B*@XJ@)(S@Rpr(ml}hwEM|sLJw$3IR(A^vi zz0#*ETgeN1`KEuKDM~+oRbuQhN7HAbxC-ojH|7XW7}&w_HhSpn#a=og^WX)|1DQ&3pv>xoA(&R4UZ{cab{uwyMfHqr-v*^QUi?j3qEf zFi=M#d=lm0|83$}gHsOnbC?fRi0K~W6R$I&tbPEonTMhG$ehs#sz{O^{s26{l9lOV zo)t{BJ0@t&-MC4{vT7}hx4S=qduU=u9a?+1eMsRSPe4O`#7B>_sjiX=R^nCsl0H8x zaVDyZw&wbV5l~grh*Y6>9)bVpLP2wltB<=*qNE4yre~S8HkR(X{UNQ3z(9XJo`gNc z>N58Q^*TFc8I}%WK>dqJpQdaaD>PRj;qS`rcCO+7QO^gkQ{>5U1BP6Zg zkAIs4+(_;+YomR-M6+sDiMDF=;EzStI>p1#*8}j5)kqLqWUu|2$uztef6O3&ND~pr zdur#nEW@0LxvYkywPS}*B9((dNv!>gEZvUuvg0E?lpL)joAE4-(m+?u%$}6&Plerawo2wyN;Y zOoZ$n#iBmPxVt6*uxuY&HbXxb<6!M-Y%ydr6{IgUfv+mYv_^yM-E)MA2b;uLdu7iu zDa<5)kE-esd9ReY{H$=WtSg-qQWP3^@$cfiIF?S0JxQl~TQUKTN794F0dPG8-EZ>u zD5Cq*tryt3L0;yza0CG4ul@p?I5z;&B{2yZ>p-F82acYI0E#N=N7o*Wz>_0^!$vHf zg>t04LVl_Rdvko^u6aY)YS+vn*Ez7djlpyQ@)Kh-$Z_h6cwY=DVT=h0;%>1~Nd^sQ zOw}(2ImvK|RA$mK?X0XQd~#+C5g{mCg@dSEjEDX7h~2TYx=B~aC2IExOM<&oAI4)o zBgfcidnay`&>6#qJqZc}#c(`_xl{~=K3N|FnGJjcpG)naa0Va92?0Xu^Ee>2gVdx# zwO;E&#%3qdTdiF!1wd=y>w(BTWYz%9*U^J$1RX&~fPb?I!O#ky9cb_lNErQ~AI1GL z+~EP~W3Z3D`U{+u@7ArB-&rMZg>q7xC0U(5ws_LTU1;PJ$v@($J9R>!he^-Cp~x@- z)Z3o<=jE?>OQv)&sxx%k>+4HrD~K(ZEXb3;z*;Na>$KXD7X9?Q$1iw zRH68rxje=qD_A!~Wbni6S4=hDNpm~x0{?O)+Lgr*i_pE_2@PelT~7ur`jCj!zgU!k zJm6aY3oL^k>snW5vN7W@r8+~A+<>5OYTyr+^pl}h{qq~*sT#5JVB*u<>#2#|CzWh~ zhT5DqAP~%PS3q@sFg9_$LMaN^a^7Xl)i^nO_Mb-2v&!(EMy})J3Ri`FezWr${hK|5 zM8JD`S=jt8&$Z&a!FWRFYP{X_Uop9YjgOFmPW%eFCS?VoziN@=Xj((@js9;wn=AyT zR3Vm1ypgKhnmbdA49~Rm{4qIo0@dr=XwIE0raeW_5dnz(8MI12Cd}5LoSJ-(U&Dip z1iC5S&;@&}v*4U$(9XvZ>lbbY!k_XTvi?dUXsCK~5I{hhrY`-@56VedemuM3X3$KB2+l(~3d3;h4rRfLN91)&&DCp%nTBN^7~XX-i#E$_+NCF_lCA z{;j7<4AQJO0h#%w)o)>~%mBW%4MX@N1?;IXfC`YLL_|&gTNZZG znwUuCFg22(6GLataHXq&xNYFD5nqb&F;fyA&UZZW6pt&G6YZ?nVMhlF8>EAy=xOJo zWV+EqaNvRuBy9q^*qL1{kVM4P0|0RLqD6K(fnlI|c7O|p*v<$r-OqkaoteNof$rU% zNCW`1@0y_mZUvA98wRUSe=wUuw;vT{NFj-H2E`0_^M^CmdFyY3VFpE!BuO$H$B`sS zktAQFo9~0Y4)|gQj71Ry#Z89e9=Evn_fU3&$j~%R+s@VO8*u!5 zG$xF9DR;ti70r0BG(|g^u|wN*HoB+hr^;JX+Nz`#yYjtd`H3-+cGvmNa?>oCgM)cm>iUBdL=jCp>7mtFnFlw0=Ve82CiUp3d$0f5TZQ{|p6vC32` zM^9c#d6ZvUlXq60?q7Yg>Md_q-%)ne$Y$#ADk}PIH+?6qP?D9TqHIfAp}NG1Wqx&i zmHSibwq{RVy%dgl9C6NhgJ6g8hGq0CbMwvQB-DyUD|4VVZog~gFx#pSGBlNOJwWeZ zEhpU(?C}3xJ@}{E*}j=*eQ&#rqnlIOOFez5`33-SaraU&9Le2*dnwn|OAxJtvPDnc z?J3&vF88d>z)g6T@(aIg=d*$&c(Z9&!G_Zs$>tJ1B!*@?5AJNUTRkZ@A`vOo9O46n8{mH+Co2y@@`fvB-eXf73DBZ=Tv8& z1lpPyG9+&v#cwMX1J_e5&eY8pJK(;1=TE$$zWQpMFL*h{qD%OhX4Uevvl{UQO`6q&=Pgv! z)Apl2v-)7}zF?Q{#hhaCKs%gb@#wJjIK|?zbG{gVx8p=Nj(D;+#uE`wLX6Xm z!4G3BZV-QDhxgul@4de+?{9}+8g@C&IqWj{bvY$NQN$h2IK_C9Nla>taVpap1Sj7e zv(94P+T5bvdS^}QG4H+i&KrwbYi))Z1WgQr-~PVv(|Sz5oOAy2-Z|%-=A84+JLkLu zC$_K-E?;Z|S|S@&wO)))Xy976B+RlcgPyHuoRD)GC^_`vY^b?am{l!UnLZPSVX@dI_WLd7! z_VC^yLHKxw)M_udfe|A%@Zq(2H{KCxHzb2ZpEWhn+o#5%^=|MRHb;7S#f?gHnuYT3_syt=yY@O);C)}>HQThG+_7rv9tMdC&Q3?L9+F=3Qe{YAi zw|jp3@30dmL;VS-C|6su8SKN@&LF~0`TdW>xKompzCAC0CfNkY~6gVFdkT{W5InwN^U=*d}iHl&%F^dewlaJr)HaS>ykjcbwLgui=;dH7XIC#3l~_k93R7UYYEn&@mtSG66(UU0wmZG4 zn%SG4WxJT{Wv1-QubyQkP`|kot$TJAb@dI`Q*Qq5^rmN7RpqOhJ2pTkGq<|7YX7s7 zT{|{FYxcWVb)}q@t!7TU&$hbH@>f^8&-RnUe)rjq4PdG>7n-u2o`fNpLk;J1GiB*> zy;adpW~TjIWhcw}p0@vU(Vgh&x@x$z{XI=rQ*2e#XO=y?wEelixD4$)8+H{pnC!)_F3+ZC*Q%}z%JZ1pRaA7Uyv(O; zB605OQa`N~bO-v2vno$pEE@a$`!3Oan(~~ctJ$?y2+#W*O)(d3Rm}ZhZkP|Qir!Vd zWJz;bG}YV>=4$T_v?g$Jaf_-6t*eXD8QV)KZ>?zw-psD2v-dQUw)koD@x4_)GH#G^ za}}BErsbZro47l`uB6*veD+egC`DVmMNiIc1N77F5atYwi1Rk+I$icb~Z=Tb()!+oH_H!7v^trhOIqu zkvgB``EeQR6>ZVKl1l3-?IjWOKfb545_eadV)4O@JLKJC*wt(PJyHL<6QB?s4*+&cQ3J<*Bd z4s$or^k=kX&~}sO68h{hb4^XMwf!?w##PC{_grH2)dr^}C|^xw0orcjE#LH%mGMuJ z;8xpeYrh1y+Pu}KSn!r_$W!G6jmAk%N){iX2U|dhkU4d*cXk*l)wgN{8w3VAc7SDc zU=Bnkq>4i`Jc)uZehvcz$&XeA^#Vo&F4687Gy?Busfvdk>NxTkQZ^yLGk&j=fj~>d zu>&mI^m#blSdoyI(P+#rqv_z*E9eL~3mcVqId!&t@g9Mra8SUJ3PzZ1e1HWNjl{qU z85lG+h^5fj8SUKYA7O!Eyq!ncH3?WJ;pZ^8>UfxaXf!b0SQ-Y$i8YXk1_1*pStk!j z&}l9o;S}+J103Z6QsLlDvG9PDhk({FnQ_seMsJNUoCc)f)6g0sQ%g0sl;zW)4IDtQ zM79S@CniJ4XjII@l3EA>@nK_CD4PZa&1-E6J{H-aR1>I0VPqE?NgyK}F1#rgKY_s0 z@Qj|8$v7Br9kfLHqDDlUVqq>cG{*73VI!*q(PIPULlRRAm>LFzW9*++c?<(Wu|sT{ zNJ9$<8ygHH&o-6^!%(t}pxP7*%KFeq@POfp_Yg2Q9BY7ZWAq+OfVv>FbJT`PrPzCXc9XL2RAUv!%mJwr9EH6mZZd7^=U?GYzqiG4h|iBpk*Zi@zr4%V6uZ%s_&p+;R1ny7D_r05y=E1 zEDsIB_&3F()L{YNK_h4w;I@FL#JW6eibWRah#@aHsW1n>VplQ{bT~*EEOPLhVzGXW z6F+jwuvJ_+K17yTgID0RFp$hTSr+uBSe&${Jgq>vL7sJ_a>s{)&15fB!H zG94^R*@S@ap~FCUX@W?@^F~7&sY893Mi_jISY+{FcAp6bnux*vb$ZiVOrE zx`z)1d=Se`u|Q}TIrxUO1T7JWfr#-d$M1Cwt+YgDqiA;oA3OMiheiX{+&FO~wm#@h zu|Tz*@oW0Z!np8*fl&%f75~ZvoD#wh$rGg%O2Mfi;b_m%z%*bWIrGqHU`g`*Z(}PKgTH1Xr;}qX2ms646M}?o{VWqDj7o(@Y&L(HPE^MB6$uqIn=-5-sAyI<$XL3Vw{i(vOeE(wI*I z!ZOCTnR!*AlDsJvF#%T2X+f;xydYu`{6-d8v6=QbgXyulF;pP(Kn@yK=fK2libc70 z84YK425dxJ;o$sYFg+jn$Or>0a@l-139f>LSZ86gvZ&vZlYoOEB?i;`-A6{&&4B}@ z;sP&vB2!>t3F{kqQ!F@D#lw1pC)y@8l4vH%ETVNT)9Nt8$ zc=ltXv>^O90cNicS;w1V5i2vX0(LAg@DgSqGpj1hMpF_59$M9UlsiO43y|N)_yS%w z#p01}i57||Bbq2Rl4vYz!l6u{#>_kzSSBIt5SBSiKzNpVmArsT1D4x}rLi}~qJ^zs z!HC5m;h6`GzWyJ=L!*JagECjkd%4{1R!oZMw|&@flvB2t45Tx=pcQ zO`s+6P*psPX4;3A#?Xfbo-2vQc|b|D(Zzabrp}CL<7Av@p9hpg`@DZ>u&`8#XbJ+s zr$-SFbKG3%jUwCVmB94Tny0bRB=Te6m49O9O|d{<<^f(m!b3wQt;l{rLX}9!0xgjf zZv}DfuqFfxvTz|B_n6rb0v^&*U}^*r2;{Ni-Lc|5#D=znOXv~W#DvR6pa4ohwZB{< zp&eqq87PBfpdCR9%s?3=<35T2NCx640vjZof%2uTG<+f#{y?l!8SQyRw&z<`sf;dp zB2pQhQzX>8w3l{fY4uMQMpMS%G*_V9$PgXIUr>Dk;igzjI@ZiL7z89mGd|Cl zDRECjQ`$&0P-jN80tlEyJ3+uCnu-K%iUo%RO|*xNnXC}hiT3(h!XlWtkxLt`05hNz z2v}Abqv==-yc0T_xd0-Euo`Q@F#bW{p%+3?q`gk#!WysBs8XCtk~_^K&N>gbunNqU?mIrHA+*|RECoA5uj8s}Q1j=Pr5J3v;87N;svItUO&p`PC za)j~)Bm*%*`7&ckf&D@G@&NY-BE!C;!L=NRyJ+fn_;juBpi3H$=UZA!1Yv7a8GUIj z5rmV(63Hje>swkcve>dzO{H3KXaO>&%M)~IEs;`}XZgpNF3(7(!#lGSgLAaf66tJq za~?RG22N%rDh^|!;yiF9Dpu3LQ6(zKYz5&Mj#+~QX^;vUqySliWZ_B&C28R#jT6g2 zpk<4#W?ritFnYkjIWrh1IYE*ce&uO=I+BDipg{`=13<6uDY#_t7Rrll0b$AG(82iC zVQh+piiIc?KwzLjLOM_?Kp4M+MxgR#32NnoDj+-vGaWp6=r9@{U#uk1;$R@V3OGLY zNF%2a#8xqu@-VmxO*Bo+646NKN}|mk44ig4R}#(ifRbnmrHw?(10jgEnv4@o6thG$ z69i16i2@}~L-{eYBVrZI7G)GL8zZB*a42KI(wh!f<_K59$ny~C0Y*(C1{lxL$ZS@X z6J(?^(qO1Ey3@FDr*YxkX<(_0R;4DYR7U621XXe9O|b|$iVORdUzL7UaugSC87dCV zQ6wD2g(r;c$|DBP8a!ff2Jc1;K4Nf?ks}()h=#JEv?!z^L=0XsxFo{i(h^C8!^Nsf zR0@?sr9KUu9N}mz^mBJ6}Mu27@B7H%QivA|7rxTtq`@iF{xkhzumR8}9OfcsL@hgZ@B# z{+bDBKMC25)HZ)vsXg}YTMqeY5INiYpc2aN+VSNeik&B&>MH-k{8YuE{TPe*SPTdU44uY>J3PW=B$h~oZgDK3%*;V|I42oZ9NIBk zeaKknAVRm;{99$q;Mq%PJ1+1mZ_@~so0X^(V!va~LrGd1GE!+_2_CGa(UCe1n5Zlf z1W_noA{S5Ga?@ zrdVhs2}c6K7l#hmbeOkoI?T)bHKV~m@;Z`i9E&A_Fe<+TCvO-^(vsp^gXO`bgp#ye zKn{{6viWN!vMCk{tqSUG8wgq(BufOL6k&N-21!nk8xYXp-BI)1es_^ z4^hK6K#@=a5H`hPHLz6y&sZ`Ta8d{cL@0s@v6s8m%*nW*O+Gb8{&01yBG^AZ36 zFeDlh%4LI9RZCVL6o3OuKrU!RP&hUwkw{~4I4BGRF%ZHqh=Y_t%pjwXLNqrX1gdY{ z@55}7C_a$B!3Sd-U1o!C$Z_SZu;GV6P>&*Pu!5(15cdrRJQcIEM8gJObJGy)tPS4s zxU#^Jm?+bzhV{tdR0dntVGtEms5qx-N^Ug>GN|Rk%XDyBxh_LE_Nv{Vp0p=uZ${F* zLz;@Zz>3?d<{|kL;HMR}ELw_krP**=7LZ)SE|!%ud_+^a>Z0?L-svg1Ac{sE!sAp_ zhS&|X;)Qnd4`s93TaC1+v{e+;wy#dYMp7D{8w*i_KBShIMWsAE%p>|E@R`FO^+`6o ze}+<*r*xQbeF^Sb+MmgWXwdxeXN!P#u@!9k%IanOrf4KMN`Sx$0bAvrU*YNYy#lFz zj>Aup!9VlPopfCRQ`Gd+u+Eu%eG%IMB3fdT6#Ibd4Vj6*FvT6eD z^Ccqrc%pdrfq(fH#&l6ls-<%r# zGUeyUAbbMMq6jDb)G*VmeLkK%X?jH#Jc@T0`8V;|1sfPASqm{atUm)4>+d~-Ms+% zPlV$qr%w!^>?F(0f6TdhxASo2t2Edri#mHRgLsN9xRJZhn7gRx7Ut_7jz>FkzY`p_ zc+ioJG*Y7+G=bOTI%JA=+nyRgBuPKpO!GJd_^Tk)orc?G7S51qqTx2-pzxf}%MKbf z4If1XaQW^K@K(y85_!w3tjavIc~X-p zUEbCCb?OZ5>@(|9Rb0!tZe4!;*Uy!cp!wFijpbOR{4z4XlS-EHj#ELOC3zqaA|shT zZbH%=*Tz5HgNUc!T;N9DI$$#>HBvs623mlA`5-_6k<5*o7iQkqS#xL%02C?}9#ri( zP4I;hl;%rLHk6}&OpEOV7C-pyCh|1OAO4eYbEM!_dF*r7RQ41P{ zo5^S>t5LQcg5-}e7eq8<>7Nh=WqO0z9>+`=*~Lp@6B1e(F`;pfrXzQ8eDe`6H@JjY zv+mOut0q1pXmKLtbZIN9&nX(c5C+w`lJ{NE!z`CmIh9OP7;wh1N_YA(UtY4p~XxmwQuy zd(StD`qVL`uT^yL=-Hu0_0C@UUc)t3=K>?hN2RY2bL;NATeXQndwaD}B0_Y<^;3#dJr5g#dplP?9kcJicxxF{-&6OopWAe1rwxf9HeuU%veaLq6= zd~}LEWMFqX0~S5NzNF>gkYVs)14ogiFwS29A$s@fB2`$qX97*&n1|fH^EQcn$F%_d zS!=<@*|7oOYbv(xIyQ80PDJiSCEg^2VkVhn3N7Fyg00*I+AI1w=Cwsed2TebuK7nr zd&Mi7?XC8HE299$y)Bkl#xO>JD5@x$GOQVMY48{>WVm2SWaTH?kfMU z(y9%VgEJ%sX|7@YnVcEWtMN9gcr$^4d8EZOrmnzxZ7hI1S1J(JR-2rnYfCDU8cz*l zKkvia!3~N?);?gFNDr5yQFCB8>Nl5NUllbT)c1s!67ODLkrgD8`gXh$-y(ht$sr(% zkJ@-ysDt0z!@YqFOglaeXZ<>aE6CDPG?Q=W_75 zL~>h8edov5*IW_nPJ|(OFnEMayVD@^GZ}mYEl6=-SEB6y9pM+VAf_G>KBpNMQi=|a zVSG|Vthzoc;1FWRjq6O|k!4vCL&SUmnHE5lJ_(Clfb_v}BBbI3!BlM|7#ziGJk|F6 zWms^`SsGlsvjhj&9Sa^n(s@ApS~NJi)DgS1Uv}nL7uMjunA$$+o9YDsVMIa?;3#DD-dz9&4-toSLHMt4-xIEsY* z6ZsAZ$F*R0K&`?HQB-ODTFI)@l_R7@0=M1yRn}t0XFO>?MjmoF??S{_Z0j^a<(C!y zVg|>nBB~ZLj@>WV@C@sNP?@j>8N-?x>xB)pd5!!PAKf2u8wZa1gL>)7p1Ok@dD^^w zwWz;@*~O0P!X@UtX}-cW&iuz5nXR=zLl%l~NsrC) zSva-5d59ecipexRXGEpc4m{v>&6?4Oa-f!jfQ&WH;Ii_G`PO!4>`_?t(Z<_cxluY( z!xr!$fOx2F9^KeBW!1t>8)#UxA#bOi4&dh)VE+~9<&6QlukmB8k@_}iu#LgNW#5hr z6}*#vlDWfdK|1`R$$jIcnRO*8D_{$ns25W)yj zk}m}7=NeX*j~4%}b)+cG^kK?|uDbvewWamdhEQ^K3=kbhK=MoeF+93 z@nJB-F?Nkd+T79VnAc;f>DX?S(0*eXZ7c+Kr+?LA{_LZ=4QZD+so1*&_1KG@`qjU6 zc~kjzV{rGH8yGK-xYf`O7PcnuS~mTLP*lEY!@gk(?G1rlb-689!;M*Z?>jAkX|ykC z!Hn}2q=1i|@7Y2ud;|(@XsrPr1IW6th)y8DtlSZvE{_Q_JWq4#NVlvrs0r}<&D?Mk z)b$vVo^m>cS&&?Z#OE}6_4x(0{)wtj-0H&LoypJ}}4gSxBoP-iJmMZoZF zKES`tyg6Aqj%59cl6z^W4)>N0-v~0!KXTJ?K-m>~U#!WY?n}TcouF@BTO&wb#H4TZOrz!x)jqmsZO5+vh z#k4*7sA6rU6j%WGTTslY{WIujPt%~(7Sv2N=vp4)Q5A+Mn$2)p1Mn|FV=T3GbQcMK zMpOzlq7EV&>fNw19LGaNX!U1iUVaj#rt^@4QG<`0w((xY%#zFK*spDF(CUjC$&2mH z;xMA#*5gna#(S{URHm4rKcf!-8B`FeEZeHtwQwv7?5$;v;LEq>g@zl`66*Tif>a@_ z=hhmjh*gie(2%1?3k5nEUf8b@D}7NXkQ626@815}p z4hW_j-V1Nvo;1{UFC!>PIhve|oZutA{70BKfY>o3I~d5TRL4R%8ZZpnAWH-g-NTz5 z`MhTU5Xjeda7ZN6D^1E}a=<_z$nnsUDpROe)FhDheZVJU);o)&VWz$s^gUo8!XV~f zbf&IZm8q#50~$EfqEv$VENVx6uOoo=7+iPa2Qj!w6En4}h^<^Vu~77q`6Qp!mTmC!%#_n1{|TLYp$Y($zz-F=sx$EH*WQq#;l+gGfe*FH z1|W##@WmUxx>9Ip=7A3##KG ztWm=#XvMLKA~!wTg)5~U>aI;rBUF(CJD} z$i#@VQc?D?uFDO%$4st;FK6%@ra2M_EzOX#uNiawgy`8luVT;MFWI$-{6+M?DT@?v<&<%z3@Kc_d2c>3ZEZ&oF6`*$`zIIyP7 zYFCAHM+EM`pC}~VIH{sqB719PJS;oTr-MSEmp*d@P;D1O=gV<+sysOBc&#=mS)E2Z z-@`DLA`NOvP!TzLZeeMARX&OQ&GyKWdQ5Tc`GbytC>#VRr4VR0KmZiM=im^H zC^3&m(3^*ZehjUU?JKB2X1{119&Z`4pqvD4DeU?f{J|9!pR$eB1E+bs<}U`~ zlfnyXpnGo?pqqe)utJOgk?72p>y3hkHN~{gR>Cgt=M9c||9Na*fMhqXp z;OLsiG(wFtO{VIz=K(r7tHXs%bQ7Y&wBzmG<)TK34Tp?TCB_=e+JxXkJn{~-lt~aZ z{82Yb{u}=)I*tfGALkq4K^>kSp+%5f2xv1^k6O>R9v!$FT?f^N+osuaP{#FwC`XbT z;oXQH99AVcJEq9L$F20({VHc0dAEgPu>lzgt^%dTYRiy-_k;Tuw_1dNc(d6P{Xcfk z0g3}|{3@(?U7`;P{h)97PrV>?V(-x_Mle!{sp;Sx6d`!zMk1pD{7meK|%wH&FecW1wfe|N8o`LxU9YD!`brmQ^!z(~|~f$9^?~ z!*(PZ_=9cE?e(`S4%?{du?tX6Kpg=Zh!(=x4=&}-z`XK}|LklYgq!R#qM>EUb+~;& zn~@fyDHR8m;A}|qodbPzKi(w|zacvr3BtJG=sG@TdcRN0wk#6XAbb(v3N4u?*+c9m z94y^`v2Ckx7+~;QV|9@87J=gzZ?&n5pHG=V%E{pSKi1gV0Hx5t7ZfA8SGb}Z6a(t% z`m!*Rvxu{}6dQ1S{slw|@-9<9VE}V;LWLT8L2l+9IiOndMO4Orz#K?iepFeh;?3qR zSCED_^1Qr)6LYSGzFIBGToWAmGntjjX3kjN8!M=gp0F|VN4Dbwf5~@7WWNbnFg#Ye zy=>@T!Crew71HTW_<~DcH*QMJu46%)ukpa}PAB58;mSuJC&=zw`CRZ|GN)}X_n2#4 zfEY%<7qP5JRB^2N;V={qEMi=C1hI`TZJG)Z6fR~QmekjAz(KQmb#8#Oe|ng|RCu^d zk3T{%bfpE91{5Vv179w5W9UG}H_LwHd~~LpHk(u^%>XI55KiP7F@Bo`yvm|8da>-r z;#bI!c$7U>=v7wX67wBhW^`BMR7x$=8%13lf$;ymkar+Hx){V7K*Qgrs`E@JTv5O- zeG9O?RaGt&z%NK5fajyRjujOZ`HKUTLHi}wwW)IjGzxl<2hLA3S%*AH?qr*?hVzj# z-^`|!L;BTnP+HPEQD)P|6QmXWQ^Z9mANYAp{HxjaeXo0W;Vy+=YLe*!}M=fVvu^L$MnZaoYpoyHN6zYha5 zs8-EW9y(4vbB=(Z_4>Z(IvVNS|x`_!)5~=i>T_HrPU{A15Zg{2%kAgv{s|Sk-umIvn zE923m(y@kWIMZ6j{;A7D6HYb+Wa)Q=By6c(o_1I;%cy8VU4O`%^+achCsBtdUmeaI zSf3t&@o-`JJkHYQk=->Mn|`^sUina2i<~#wYuWEc^Tk@oUmVDaa)L*(*7L$dFDqoT zfEa+9J`~jtkO18Us}NJ+bcQicObr8!oXb&Amyav(Xe~V zqpj2pF18gY^oI2?c}u7vD}U_j31Gy$m0XWB!2ah2EB|@RelMoVvDVUve{m#AG&}@; zEaIxoyQTzrjOo>&2k0qK>Dm$PNFFJd15@@3d2k z3%#tdkt(CxNaBkOMc`+lg^f3NlTbp}U?37i1e>6u3sAlErAgq(QCY0x9%1-V@xX~P z7V(efA!6e6yxZw-Q3ZPUPxvw)0wS43@>F>?biT}N`f!^B7(zVL(M_N^KBA1Y2yg|+ zNl^kIvm0o^^1!;|+ZaW-QZ&8t1LMpH+1oEozroReVrhqmXS1N2#N5{qVJSr5xiN%k zyqf)w2}?5@?|S|$K}|`{!(q}D8a4oGKfv^O3?T}WQrA4IE4h*n5~h|4n;tHM@hFKS zP=(yO^iWN_I0QYeo41g+{8m*0Kf*JfOY(Bjl^Aw#2>LGQ(i8>4kG8ryL4bTF753C9 zh2%IPk+i;)UWGpm5XLj%K6+5Q#7OLlP}(*}GI!xsfi`!YA#6gJTY$D|a5scA1V5Jl zQVombKNqPQ1xRvo!r_Ncstwuze$4l}1;c7N*|z?iuy~`%MyUak!NUGX;=CU`mbmP< zJ2PD2R6O8f9TIjktLXc4%Fu_%tMeWOl?=Bu+^4~WKqjvjrj9}y;_2%;>Bb3wp`BBU zA-YELnQNz^+|y}y#myfNTIWKPsAcg?)CQ>o-=_r$AJjk25>=~@n(LI!ZTuq-rIrrh zBq{TGh{f2kNqC82Z6(2hjbz13bg-3kIbRDC@C2Z=;A*C(1i6)_C0>b??eYubMUILU z!0XNvIg(s6pTI%bmGwWzE&0g8A-)D@aVN#6LL^>-aqAbowsJq>J*Ne$Z$3dc98gNQ z>d7jZIC(J@&%V9k(9j(EuT92yfFPWK{2j+>mP{T|<`X6Dp_^cre8$+wObDju0ZFNW z805{rA8}x#*xb?Erihe&@Ou}0vra_d(}en6N(NkwSZ;Nu@Rll-z{m-JD}`!M0mRl1 zY6yp|0J1HwUgWgi8F?&=M}MNk%310erjujyCkaqHWuj@Msjot`dt7|r`Qph3Im0%u zhKYguhkD|PZ6v`;o&a3cisO|Zuyk`2=@ycPBHY&Z>G?OjB&zT6i;iFT39{>Mt zS8GypKY3OGYv|FETy75;O*siK3u#Vn zcYgYa4^5d?tri^6bVvgR2tHEB*Z z1>hsa2Uu{aIMieb5a?BSS|G}zRiy=6hv8vl&snAdK}=0q2!e#Bi`&dq+HuylN@v)1 zSFjaFW{HhLhoY(9wFYzqaH@&y!VaqJ;$iqJ&lQO6R1aa^2nhee-%t;NQ`P*$*cSv8 zaFgp|L`^a17me|6JWgbVrLHR$owS6(;RY0FqaE!DXb*gc@T2@l0Lc%Pb&>RZk~5>~ z6@B5jX6UF(9bhKZO%s||Uzn_|Bj|FK1Qs4FfI6w^L}#yF7Hv0G?JRu&EaDQ-CyZfE z+%@kr4Q z6l}|IWavRH=){g~UbOJ%=|JYoOdLx5%Se{38;xiw{iPR8vYcL1h6~-jna73Na{XyW zanz0ubLB*3<<(bu%a=g3H)h^}<^e@|E4yUbBj`ehn|4l*4>dM3;#c6RU`}8^La~pM zH1ZtPh47h6tX82AE-#0egXVlI>^7Kqc-XuJX5}MekXI7NGEQWdt1LvgPQM4g?!Hu3 z)Ax^hELu?9I2FgckqN#Nw;U_sf=2`%H*U;sAvYp-LGwaXj)kL#rqg4!Zn8m@1-=^b z8@vw@Cjg*sJBPTaYt0R%I4vz0ugSCpxMYg}s^Df>w&f?PMOoZ{FwU4hWY+HV>Xv&W zoB^Y?sUSyElN}OR{C_F@tYLSb>u?HDmKZp=m=?gwT#idBp-SH5-xHAg{JUB&y2!+y z7s@$|KZ2M*oWz{tQ0MQJrm&?!kFNY7erVjkr?uSKz)}y`xH%!q7S7(>CqEe8Kfumdd4l1Eim0xcT3Gv%-$|#*qHl7%h%t$jR5l4Nhxt zDS?vL*Y*7(a^7lZNwAl>;(@ASynnpDZZj`l6<{jyXX9VXq8y3c<@$X#CRF!4+>xoMC{C3vaqjW3Q3XzUq8HiSg0S;qJ4G){) z^K{0UzMAq2aaVDNH1C9OAsK9|HWwoX$|2kkbp z*~i~&Aq73$zwOs0szbc2PWyn{F5Z$1zAurS)dZ*4v)_U*Ik%;AOjN`KZ{*esTR`W) z4eQs_J4d;C_M~etlbfOl#7q`VURdYHHTn$~)bNfQ$8gTADQ#IPB+&jK>ebN`bU)s5 z5jt^6*-n9!uj02rLz;kdpy-#qkhd%j_#0RDy(BV-zuA|o<;)Q$d?WLlC1S;YhXbVB zo7fNZqP8cz;v?J!L-+Hm1BD*MKoX;W@zD)!D-#7p>po=8qH30$D{=ap+JcKhGoJMx zCVuy30Nqs)Q0p2s0HjI1BUf6B`qs6tkCJurKmhvI$^EV0 ze%50@)!_Sl2!xb`uqa%|lKv6iqPCiQW_vPb^ZQOjY z<2V!pXpg3?W6npU;zC@I$c=!61jZkCNRg-zKSUSt1zh2t2{TnO3U3(9+y!K2XbfK{ zL5(2*QHNon;0sHTS)38$3fO=5C+KbNZRd}b6qD_hp^ZiLDa*R>7ZqFO+Zhqy!wlWp zggv#36h+YewN5s?i!F=n2H*&j2moHhEpo7kF6m7AZS^iGzm>&Cg^Z0~>lG<`iU9f` z70q>+^TiKqMAxi!L{4x=cqM?3-&8I~0wA7Z@*2Yn|MVNG7Jl@UMAw!H>(Yrlb8Yt9 zm?II%f%M&#P0af!AXJm|Gv>9$k3B1yq1!SiM+%kw+7WR*8T36KD)77rA6kF!D6*0F zL~=kpw7(?6Gkwf__5HfwuU&moCagm zs^6=@ElpTqB`fsilfigGaS~VU)wpcjm6o^%Gx7ENT|t~mPatHN^Oep}bl>Z-$DbjF zpAM4YM{j-A`|QnsWFYwL0ElE5Nz#3I5)oKEQPin7*g0Dh z`v~TpAio^ooljK&{xDH(lxZF`s2(9ACg6f8lx2Zx;nb7Y*DEVvy8INXNauuWd$awP zAq?NYvxp}TK+k(vv+QT*4~R0|YWhB05y8y$g6H*=Vuu}8cXKE5&Umgkx%Eff8Vb@- z!JPbxL1X9MQCmIP;%I%;RbP^nMhFE01N1iDInP*eiD2$)1fmQ@H5|%t{&H(7p;F(W z#t}(Y5~54V2Gfrhz>cEckZc@-`-vvIz*i}?Nb=NcEnZ9~K#pzivCl^ke^k~^jOo*l zIsV&6-ivJ^)bo@O3Bo`f+3HC7b8(DwrC9h^!79IY<`UlqgeXiIG=0lX5kdQACrbTQjq_i8=Iu(KW^8T9*ckS z9CT7FPRtZVn9hli8hS;?@hnJ^9=7VU?(#zM)I1X*hdA|=UT8U@_z0aL79ktvBAm62 zz)ED~XM{rhmQaA#h4xG&ASob0sk8_#^&u2Hm4HAiky-iuips`S)GCx8s?Sg}6h&9k z6G=|P;;kr`mId-C^l_EDAsoGz7;#ZzB)!+8VwkhlMb**izGOEbu4iA4q>xqA$Tf;v z$)E2MgJ?9|&4rh^dj%yN?8lK*grb!F1thsJukW%tA_^T6%P_+bI1}o2OQ8P|X)0W% zR}eXRFRD)}o9RV{GI;hOLLuY~5RuzzwHEqZVmhFDs4smReaRe%V~^wXtR%GGv-q`^ zoO=V|9qc*#{fv@)iStXxzCXPI2rWTKIaLQ|YNUNp8|7v%C=8R+ z38*juDT2U4KGJ`92cs@9;d|kV>Qu@#1gHn8P12T54@C4>wkJ!0kHo)&>z&%t!P<$A zgW+g2h4~>%9Q$V^@~%8%>PQ;fWf}f5h%{(BnxfWr)7S&A&nDwi^a}`jM-YDY)xixJ zo~W8p{50yyQ8o)pbN@5a)J2LIbRr4Y@{}jP<)?%^PJKn>pTtM`IHFO}{y{;I0$5_V z1Vo3k$E<}HyHtgQD~@5#{G~LWBFVp|Xns)*lVU-vu(6k{&VZ>i@i*O(2#I zGkD5Jc{>G4=*l^~Xz(0qguTy#mQJsikD6w`2U49+Yw}};{-*dCn!>2Uc0WrT8<3aF z9SQnE67f5SUsu18Sn~8%u$GSfga7EpJQatMwl980u}=q``H~&!zUI2-(R7uHF|iPD z&eW7N)0S}mgLk-6B^XJ1*(jzQS(FsLI#1Q-FhQg!)Bh!#uX|y@*Am8hK%jp=*ynT< zs#%!$cov0A`X@*gD3s)SLRpE5`?!h3W_F?7a;DJz5o!`Sn_QSd$=??+lXXp})hQ+U zfLZMeJW1KVnIw>d`rp3~eU!kZ$NmxNy-G3CRLthm6mq5ck-Z;G5*L*&Ar=9Vgl_)E zsYs-3$7RQI81MRL@oaK62OEUix)XS6fW)P{1rXuW!=8}rQW&CCXobRKB_cJm#xGiW z>;}YrUa+vI4obg3GT}3Eh6M0q$Su`<0j)QOTFiPaXf^G-ay!Hx`QcMB-PTO|5y{*r zctf`%^oi`Xjd%T!1eIO_P3~r~svETg*N*Q()AO8NcpMriL45`@Z<^d1PYO>j>?evx zMZ!OHo_KQRvq$X_0688EPxi~m#-*p726#7E-nDz00WWFi@C#fT0*g=>IJ!4-^q?llhD1d>p4w)(B; zJ|z?VTQnx0E7Mk}l9mqAw`I7c0kXrwX-md^u!suRxfocx(`e{b4X3sdJxBPHuxI4Q00hm2Z}d^6-^zj9EjpYl;6ax=Ob%uZH}2{ht`CAf~qbrfFX)23yGB*GARr}$|`*?nX6I? zxH>g8;4)shl=L}w*lI~kh=OFkc4XOdiAilOnFaaPd5HN{J6vJ#EVY|EtD4~OT5#=q zi7c_v-i+03B_C~k;aeNVun2$(2+|`WP-^Cw0KX4TH~e-w&s70<)1onw-k7GaF1Qk` zTC7c}Y`+?9E_Q^1F2fp4dp-E$^|g73qf)bcu8dV=l4g5Q;)Y_O%wXqOL}buehCSrE{6xf*g-Goiv2f$ttDIZtU$k zP`nT90lUxrjv&XELxsosqqsC0DMQ$(ONAD^I9S68LCQMtS_dalyyT_ig!@$KVuK%z z`@4-6lfj2F!RKHwl;n=4bli^4n?l^hBO9eX$B3s?6qqiD(-oe)u zNYkf#6!0?2TODOt#f90(5fQxk_zr`ak9(zD%y1^aDFpsu7aG8Gi}7zNJcY1va{9$I z2v+j4-#VsP`v9Dy*#=zlY11E@o04;Vp62NPf@lX2Jsiff(*P`>^j_xeRg+a0_MVoe zo=!IpvG7otpgUi<1l>7*%+;%X?0VFfo`P1XBbp@ToIIeMucTm;YnHNJ+A!r!l55{k$i$}N-w=wbrqS2G zW)TC*Y+%r!fIo#fPoqLOya_l8XBB6Mbeo%`qoa5=Kfl@ zxqk{6LF7VstjiM68L^aCujTvZNM#{d>Y}eTdlQbi)Nj_I{mkq5royx{jgo+g<}W_i ztD@@};u(3_-1s{$Ue%cZ1noqkXA4uB2lR+uA3sbrm@Vt5ZEaQ-8LW1+OHNSqP>K(; zJ`d*TAdA`3FEJ$Jk<{fwvMmky+3anAF^Aah}%n@SpP^3_ur7@pCm5uW2{AQEZjBAoZF_y@3~OUAH6;dQ~S0@ZCYe_of;WWpQv zm`!uhJ4F-;kCb>iHoQ%E&)of=bdjSUsR=;I(<{NsX@xNDMH~&u^`U7fmG(EHCf{rU zvO=tml)z*$ec6%AetnSoZ11hs(|C9_AvxIYOSKN}dCaDEo8w3wx|w#gj&$K}EOMd) zlx8%D8nc$@*I0JsU(*E{A>YU~Rs^y)H> zyXk}|a;%qL*JhNT3Alc4z%>g7OAIC(;z0t)%mE4Y037Lm0~ElfORhzqxTppkR9*!| zj|{tJ6^)LDa0*=}M-4l0oTnLwX)jiCV${;ia$qk z5bX#(bn;@h9lebE5)E~l#e8v)fvZDHxvqJQ^MDprR_JCLec$P z2LFwd)4&65)k6QI zGB%i7oW%s;OWH>n(!<6CuC%digd+DrX|`i+`3UMdQF)20I4tV@5I`$zxbj9idNFN@ z>FRQS5zNFSIWb~7hA|bI5Uoa)O}&@H%>(VsOCk2QAz2)?mEsuODV}~*li$!BM-v5> zV@Z`3!r1g6d=T_vmPv9jvbl9vg2ce4k3?&9hGxgM^!D-8HISf8qw$VV$|C~JOHE(^ zs#MdK(>iEG-2D)jT+_mJKf`iPUG+70!z3oq0Bg6(r2(~FhSA4h*+%2F-IqPs;HYt5 zn@?K__=7)M{>1F!lxNB`2UYd}?r=MMTXNz#wjL}PR7#;1}209&Q zaG$Gj4p%-(gsV$wBEh3nofwnZL{v?2y<(LC`J@)o2-v=dSMhpsK>M^26r?!|RL>?> z1jnV#(uUGR1FSJhAo&McgFN&0(+YpAW<~_X3_wW7zffNmwiyx*I=M-F;^VIL{nkhD zCK~2ZlTs&NOnnD=huOBULUR;uqTc^HQI3sWM7LfvSUO~~mT-(hL7<TeS zQh6=5(Zi6{E!;&R_&E#m>h-gU$4V(|qH4QU74aj#-|u=$9#hbo=L~T5?Pif7hv2ag zj%U{jnRXRb1uq8|peD82#zr5R`ChD<2{9(0==kHX z@V6j{8bBkBHc03^{|TUsq155b$B9y6<+m+)NS6R{S;qVy_={b8TK^`z5?p`kQfOsN zC;r|A5P>7wT~DCSYEMUzj#I$!MMb%846KaFx^R)p7$^AFM*%~ljL!>$68-Biz@H4< zt1m!oVXllVrCynGCemnB0bvzSf7Lc-Q~uB6-H5lIlkbowq=Ik~E*y&@(_9tXHZwaO zY@)>QRmoYIzF1Artoszil)xjgW@s>&;gY2(#PV^2j8crIdyr!p%5~0002%A^-paR1P2x0S;vb#bJtB?*{_)0BO3)XXeNbC^WNwvGf6-!_; zibE)+6Mv-U?n5ACz2E;Q4nyoOq$-2Hk-}vAiN*b`sLG%*H4*-efQr0Dy?p-koV3j) z@-R=r&y|eg=b=--yD8N>Zb4f3iEueoiaCMq#!jP-?^|Z;U_GF;$&j{yeo_KmMDHi5fi&(^~A15$koe9G&Wu4 zl$LPR=>(&)(8#!TKh?hP2h+cI3U(AyiFxUkPMm<6N(pBtb^6J$OL*i$*82s)?yDD4 z2ti#^ki)f5%A>yQLh7lXJx!lyd0G^%Lcu2c_HfQB_gVzW-ly00`6!E7J2beFvB&pqPR&3 zm3qe|;?Ai1r-v2u1$us7;;Ga-=3DpK4C}-Xo*a3YD^7N1m(uSFYpRrHft>s-w3a&I zW$UyBVwD~(O*ssoQ{K(_>k+dXHNc1oX@-bI>h0o$G($>?;bq>wko_z%k0@v2D_>K} z8m+Lv!VJ0Ov`|JKSc}UPume`3U)+c1oQ2oJ!Eg$ybW`eXdiCoFpw&{ z2Whior$lxVDb|_ksJ`S$EXZmgbuaz2ePpCy?=OMW5gFD}V4dmh90RtchFBV2H z9|Z`cF0!AtioE<|VIBvCGnG#W_?Zv@)#W9kk4d5Px>fgaU2WIs!222xB4lPpy0 z$kAoewS;68JhLyH%^3woOQpC9)r$H;2nt7xa6W|L^8=XkZz`M5Of!)0r5VWcOJ#F} zT-m%fMkmZTurmZ-5K27bLs(#k?tdRdusY`$_$-^#d&2nGh4W)p$vJ55NF>6z9=wm zK-^&U=bcx~tkv{4{aU3j`Y#p;(}xO-wkZZ?&A^Rgf2h&SkySW3&9PKC^?1Rw>}=m) z<~{Wy;=<=2vTzo_Tb_Dh|4fxM;Rm41~_1AuI=QVT~4QNBiYp{ziN6z=eJ8psLT+@eF5pwfVK%7Z0-sI`EEu zv-q7Bw7%R0FWihWj*O71E_Bm05AO*kvDFQx%ro8fw?m$-9F;VBuA>S<66HKVA zFFGwHUtl5~g5!`<4u|r+WTH`7*xjb#6Ud}$WrL%jB;p|v?K8w@Y&y4)(=EqEzbEU}I`bPI7lKr2KZ$EmQ(tB8tQc97i%>0o-{sO4vrI zxa~8$uQ=!d4P3FA$*9QPROl>ApNETPHW+%*BBPYy$Tl15IV1svCwR>D+Uj7GZze88 z_M-Q*^v}2qf;(Z-$govm!b!CIR<(u^Wsyyt?j^7aNc@lI<29Xfos&?u%+YP#owG)x6WA@uw8tq+}fv_IU`4BElm56BffKpF#Mv=}Dkyz?I zI{3H69{+dFhl~`~x0}hmd6gT)xv^@_D$?>E`w*y*Pg4tyms{_;8NLDJ^Y9Is+s-lRZcBS5|r}iH)qcCWM%>JizKb0@iQ2%q#X~fXj){<_Ge@G%S-Q3ni)% zrM6N}*^)4x8S(}vNYvTWY-_pB@i8M-=kgUVk1j70I#_6A$7|h}1Z!%Q1kaBcL1)A* z976)&r2PZ=G~v#WyB9e^a{QUYsJ3kcG4MeC!$nT0^yt_$4uROX|L@;aKE=;*Mtla} zezg+r0!k)j+TZJL7sdv??({|ZT8@G)->syhUvE^&@Uc2Jan!u5RAJVmlsGVO3cM7}%pFn;U|gbM;G z=wvNLbSfxQFOrDVY0a?tG2anq_&O(98JCjHxN82%tIxr(#;(ml!L^Rd62P%&1duW^ zmc9|BC>f(Y{V?Y1tMNqJF2qdVT7;R?+m3147!Oep>^GB6tw)t)0eJ)$xcuhyHwRK? zNDhzGe7b~7BJ3aGyZCxUtGqLDJD9KV-R%t{YS_vJ_%4(w2G216;nz0cC%0H8q*-|C zQLaq)g#gN``m30=DLI0vw?UPDM>Eyh^#HGyN#|XpPivx?AueFU`?d(#k@gtoCx^Pz zVTaJ-!Rga*LwlTs2iKL|1CIK3Y(1vbf1c#nuycQ^S!cBwM~r@!9*8tA z92Z$};6$uXKI;-ih@WKrs&ppNnpnG%XIh9ZBrbWDke)+F$=7@0FY7AvZW!?D8{a1A{d&%jfi)gI^I_*EoC@ve@RCV}3Hf-ttyRZ8yU&%&)r`Ysem7*Ct!rej*Zx z>Td^RkqEGE4kU|~TVd<oo)brpos)zJv6wAM1BZ19 zH_iP(6`Q&W=aDUXEH3$xrBl&B=u#biL{VP+iYbBrPOjpAZ>C!%0_rBwxwVz!YM=53 znM5J`lsX`Y46--|`F2M2lqj`oQA0k@IfXU<|Vl%>DTGOKJ^WD5$J~+ z@%c=6$P3R`d?eqmJepe|x^y-q*bgP#pb~w56(e7zD($Lm0;V*>Z93M`-EZis44=sV za4ML{H-)(!pL}N9X9~d^n0%(okBl*Hj@43{`sFq;@sv&X0lagK6sJ3JP-!t#^P#WT6Vc)qk$}2 zAC*hZlom&qY@e2aCyi*0z2sxi2BsVGcTB`PWBf>>J@(7}YWh`w=+hfcFv#6oSNUD64qIi0ryB1r&>!HEXBhsR2KcZz^Ar^mWHk6ku zAUDyS7N* zyd+byZdA!H#IIdNy5fD*SI<8JM2ayO1I1l7?kRDtK1qtB_yYFV|Bf4k+;wmmKmh?w zZ|@9qNx|1bBFp1pQM%D@wcP}XCC|CTBx(1sn=e4F|uZgTLUJZtyuER$0)aT8sJ1--d?+S{oph#~sr+%FQ|dgprI8o&8Oab^vlI>h=6yXDMJ z$7vo{Z{UBDLr~sGl{oz2kc?AJn%rTpM62zwY%$#}`RPQf^ox4C%@tm>rAw^oR2j8v zj9rAbZF@`gj58PX_OD-E#fxtPX&LRbt0#g@=d^Fzan_NzfQ>F}U%C{&c3_(7ncF0< zTzJXZ>~IreKa+bRS7`yLHs3xB|L@dK(_Kj_+W- zy$L*_8(iI*4U}&@{>mg0ql(sqT-nm(kqOQ=^7O}5P1X$TgNpYD6$vM>C`J+ck1#b> z>mTEalU^%yMiPv#!zu5QB^HrM3q{)u&;%5ifpiGIHYXKCjMj4yWM>{R2QLr2`F(Rq zrgGPvnBPSu%vmb`01TFIDS`3+M!qD*SRoaDZ)^L{A7~u}xi@dHA$fj~;1}tNxYoS> zR^>@r>WxHN7iw%XAD}!Padnp0NE3gdiU!^%wQkGy&_7DoZ8Vkx(%t#Q5>`*?gMZi1 zZ~h+!aJZuN_&*e%u|LID;mo)J{%uMV2?eWJB?gI({&(rGOW2S6XBwx;dCyJ=S!xgn zTW=j+hibI3zn{g?3}hx?t}D%@Sm+&<`rDFj@KxzF}_j9JC(df;LBnj9YTTxn4mV zN)PzzD4q1gM@C==ogB|U%qC_Rl#ddgs3O^GC0%WX><3OwqJQLZF_4Hd98+wu#Z6!0 zCy(=CKC%?U#$>kS3x2G5Xw}qT1i#6UuYa?_z)zC-EgtLpVlBWG#gs9Fkj{l?BXtfp z|4BXnFUA*jpNfsbNXEsb?2Skw{TX6N7B(n_vR5Qba(xJ>c`+}3N?bIONR)&B=aLX#NgD%*9iOiyFy*Gf3)Ac+ zV8lxd2m90^6|Lx_>v*Qd)C2V%pX(b@A$RGZo>u*%tTvpZ`^|Kd6szOD%uz5ji05XrqN)CrL|clwG>y z)IPD3t9cM}(BiObmo|Z5#RRmOfYEHnI!rU`aczR@!}CahDMEqKO2w}q8o1A@&mF3c zqBpJs-F4o%p~mV4Z~)!Vf>R-;gXY{EcUyHHJ(uNNpu>9^ksk7&DNcQj)87iEP78|5ONcy* z3KHsV>N&5cnO11n?8`d|46PZVwVkq@G1uSF9z4B0=iUY-owEFKAMpx_NvKY{VUfx) zDAYQVJciNsqZIZ`H4%p8IBp-Jm6u-UAk|`)>D=WDXC?yoI+IK*`bhdt5h$)#S0l6C zalBw<%^D4_-qTxh>nH#J(QtyQ1M4$Y=Rh?UXtJA4wZCmHBAvO}BSJR3x-j}un5 z(TxiZS>T}5f9d`GHIgvddT&Ddct{~R?6r$ZZ`#GuNVD5Iy06PRd-Umo!w6>G#=hka z{J-zyo+Y=?{(<=tAtsiscecqXi)q74GNEGcov>~d$DVFj-bah6uK5$`u=xD%>LPIw zTzb|FnoU6sxqgiCX6%KGRDW)sS2SzdtjdX=;nzHS@8oZ8ZIG(WDlnW-+p}N*FUcGm z6%#fd5TnPm=3`B}=&eaVq)5C(Q_u0(0VF?uWs~_I+N&3GJOBiA#OqY5U08LnUr#cO zQv8%{5+i$B;#U<5Y!?sFF?hF_Zmt%Oq(whfty@;cG~S3$#PUmtQt5_vN?yJGYY3E& z);JIGiKv+~b>&zj&sLhCeXCsCe5Vvte8l5xd8h70*ObiNHlS+e%fn=aq@eCS{X;s~ z0T?cvWoFOR;GAwGs>duG`G5wOtr1pdb+W6=>i2*I0D=Zn&&3E~q%_8)@Ff{jB2ELx zP*aCfZJ^P(ZXa|o#_Rp5Dz?FplT|3IbtmWB(E{YMz5(;VVis{4T$bE{Vc)OTZ7!h_ zNwggeQgQNNjx;>IJnb4-U)4yI1TC_o=Vvx`GHJ{MNYyj(38F>$RKL>rEoF?~P5RWZ zn*O$VKqsNr%TiTq^(?oIM~`hMR6Uvn^P_Gap$$JDZkPb9ByS)Qb8|t#RZH zYZNFIyYt)Un?cPv|F&X3kuK@5q*>5{%=}HLwuJsK|3@qi4r;x=wRcQCC{y8u3`lB1 zDKGvuJ1K|thQG?FKO#>zzdfY8+{Y8;`q#+6!;;8NEco_+tW{8#oq=5gM0`bgOb zTb%NK*sknlZemnAktovLPTg&Crj6OU-CKK7P5mgFYFC=lLQ!TGpI+VIk_H4Isv=$W^*&PRd@% z5d1n(s4N<<-q9qI(^vF0DmHN2&jVqk#Wn|Im(o@{DPMdRj5nhW%}UG3aWU8Ns7JaG zt<^(|(;@GvI>@^9D=E6T5xx}U5h?$)5Su$8*piMLTV3S87AUZERs?en+Q_LwN&lf5 zD!^E8m@7D5{7Gs3lTT$Pk<7GW4jrdX_W(L~GW8B}LWKME>qu(J+6|)w zr!T}_hZ*~B-UXL;r@8PMI>n+97Ea?5;4)XQ>&=3mQ*#(6w@oGqVcbqTC}=Eo6Z=M6 zfm;y%D42lnc!x4kZGB{-ctp_As=X>T;&_mp5kGCwDZ^2@1#)o(_Q0?#uDUR(M_`i* zX*b<}pIf%8Y>6)UK2rV~m7b?b_>%h=7eNi+9ZvL=X(bTBQjk0mNC-EIB(F|f3{!GL zjS<-brlxbp^gF??pF8Gw=e3*Ge<>~2$IqV)tFQo`i1g9m)czxN<1U)m!I zXa(X};UREgq1!tS)G1t!4X4BB(lgsSKTn*b>bU`md`AwOpHL#o(8e;}unN0QI-6%O zz@Xp>C6R?NizgY;1`F;G3$A}=(opow{MFx$kkg{~a@D^lNiv8WaW4R?g6Ih96PmLk zH0z{D5-g%##i4`F;1y(alh z*)}pkBBYVO`zGvBr8O}8T|k)Jeqd}H9A|bYql_-uj-_T8so;dnbc|)QtYZR9ln zQJuujux8_YD$39RF*RnIex0@me*GzUdaZiMe@s~P*6u1ayyFpg!3i-^u0ZX zZ*h!1M+*-TNJhy#$|vAY&flmD=<`YytIUK~!Ey1SxU%xk4G`TnLVo1(Ad`%f_0`bh zZ2JaN4yNg}jiQozlcSz@g%^=VuN&Kd%24*X!9YXT7#xELK@U2U+rk`@STUX5LputU zQgR;kYOh@Hsn?KH4>8XQVTy6-j4|3b%+!zzl;2h7XS=g+XbJ0%3ix1ui6FQ36nHhR|pE{*`L{?L5ym^w_ z`W#+n^^xEWgyXcr1(1sKD#nU|nfDR+?8#|GF(_^*-!yI$IgpB6Va!uwE#cQzXACcK zLUQ@Tfu@v4KQ(6HO*z@~&xZM;nz4>=jfx?^okXaXN}WGXF4@uIT9okeVh0lVRTtY2 z<)0;-?#xTFMMyxiC#muRT{{~FEL5Nj&tiP*nw+WeEg*vRl)Gb8kB^@T7;)_8q)7Z_ zq`|+ZAfQ~mFIq>+%xKVaKqi#q_SdBx=UyiUMXsF{ye5#~y~d}fxFXQsr&%}TaM$-^ z(^}z&WXgZDZ;P6>j}$A_J@8WcXZ2NDPBJ@Rb4s9UF9N@6_`j<=-M5vbANDG7EJQ)* z6no)xYWYhgDLs@!>OM{Gcbk9wk~#Cwc0PP&5`JczIFMpkp4Y<#A!Sd|zG zSG1g9Qw2XDIhxYM=OjzE~yRk7~6dN`a3PV`Z8r5-=`ar~rE>-N@Mr4^2^rb+^)Ai>`$kIR2P_ zVKf#SPydJ%KY6@p6DXe*VW!6rmOAf|a(T5F+V%VQ;Uo1bAs>~7i|yzubyIRP_@yRS zblBggrSsw*b$j$Hl6_Z@Po&0v4`7Vw{TaflGU4sS!Fn>0IozUQ!@z)Iqs!UsRrdK2 zj*W%eu?<_ktgQfrAc-ocT*x2Y>@jFyLY$pxnnT(*t-_QqoS{5Bu#6P2$#gp81Hc4fuQC`yw7Nm^B}nP84WF|aL8L!U--|Hi}U zF^=C(*de14jwu&&)_nNej+2rte$6uO{XEd8WVnk=gmZk#PPV>0sE=kA($rQUjNzCe z#jwUKM#leKwHwJ5Ls>R9+E$)^xH}nzb1QJSM6%Eo6CZJLq^KgGC}+#XAVSt5Ctu;4 z7c+N7Mn zY&*V<->ed(slU)QrXM~JhUZ3B7$bA?j z0oU!_E=|6HRj-Ox4{0p5>?X@sU4<1dyYsr7#tQU4y7>KN?Gh35bUFS^ernxDljf9+ zY4c@KtF}!{0z*`DVveIn&pMa*_+1Y3bY5koiw3{|#udJgY0w)L?Uuq zxE{m#FDxC~k6Jn7lizlDGXDWHP!@$Bk&_>DG>~Vb-=Tr$%mXYnYp9Y_E-)__Wfi%^ z+K-f47v<>=NTqI`)*ttlhF+$rRQs0N^6-XxO9SHl9~rYtBEG8!jEYbKxVXr!dE<13 z@BYGWr{eDhi@HDbc$XKz+Q1I@=`qCiQyu4NOsf8H-T4+G4(rpzBUqx*O;Ejzrj4TS zl;}If+2Vt2gHFFxm9E&0efKpIIu&)@P%8YwK3el~6F`!sL>@ugu0P&A0N49s0?y|> z9~DzviZL7}_Y=6^$XrIViio*S$iQ=Rzt%X%1>%v$^2vW-d)k>UgYo@F?oo`DCO6M| zZ+Td$m4Fm|Z&kl`fvu&%F>Cr3XnT{DT;C!m4itnuv=n{jrXa*e)i8j zVN7iIh9v!pc?DV@@RW#~k|woeo+jXU#=eWHuLPY{Gxbp%*4+}5Un89cr5<~jj{-f@ zzr+Cxp+m<#HH=|>3qXhyjzQ`+&S1IMNk=LdHRL32x<5R?@gaEk_oq62+XS82>c{x3 zKys)^n1}yebM{jgNly9-y^y#$YjH`f&^qaWbTR2KI0O*AA|%Am_M(Fcifdg;ojJ}f z(TGZb#%)P3$!#P6o8NcjgZ7k?qxA+#X3K+SSr`hj-iSsl!Y{CXm9^Jh&7`w?j?@rF7%V*w{4aWSG>VP+biwoq9?WWp zd)ixlr*>XR^eh*{^^LQ+jz#}cWiK&9b(M}v_3T7h_IijOr<3_HE92_^Bjwv@v<%~o zND-!;&Ll^DR6BXCaRy_LQgT>UFylHN=>SbH8Ib;Z8+AZ7VB-N1fEOCq`?jxTLGwH;Kx6?kl)beC)~CD1ok2O6P(0IOV9^5 zA#UejgxEB|QiK6+wER=n(w56hmuXr|t$D*LM^J2-`y_C4lSpv{>2!0D?e3I1h^A8o@DnOua}B^Z$Mu6RL3%SH%}6n1E+4X~#B{fbjvf`of#*sJlv;#41Am!nk^1Qbskwvaa(jeg~y zOJ#XLP1;X$lbjH>!?54b=C{)E!9R5P2MFlPe?+drk7_<18I3m?jFB&L+B{OJ_Pob( z1R1!OGfiqr!u2tAWuOwlw~NZXDFWhye~?GTG3l++PsGq){!ar@t}ESQZwRT_kmaW%?S)?nh5qQyeExAY>m5uHwq9Q3S(O z%KSxw8opom|Ayus1yJI@kau;iwVyHAbMS6qsOcZV_!(z%6zM(xSfmGLSekX``Y`yx zP>UvQ3D7f{@3V2B78F`SH#|~*pJB4aPHjD;3X^1lr5~x7n)EPL9++-* z-9ZJQMG~+_N-*70c{O)h;`)cJS z67EuW3R60;yAA%*wY+sy2DqO_y zOKwQS-ANeV*%a(rlSab#W*c7b6{bcUD8zn*F-HoHpLW=rj%R&vI)Ow1$yGO6{}Nlm zykG`&7B?q*Z%o=R+@BGdgeAvGK~@mMG71G_XXXch9;=V@e^2T8_N72h0}7x zNhyyRptB~FMBy)6BNr<(MMXTUsbV*$d}U8zcdZ*4n=g5`AZJ+@Z~OVn6p5v&RnFB` z97BWL6pnu|x#Ci8FSEc6t_>>x%C%0WknEZJ#xfRZz;{wH4@MrxDa>iSzIu2Qk=}{=?LO0Se;W7?p?N^;&i}4@Q4`eFSQgkuMvL z$wWx1LZf@^EI;qQB`}fZ zgSFzhn!h;)35DE=f-3(WQo$vjEdNLQR(NN_SoJCP`?=*FLE0FkSrJga2ztltY>WLx zV>_3+HT;-Bi@oH5fAvpEAW+U_TI@75!Nn;V_BU}kNs#0|loP4&<=0CN)1@i+N$L?} zqWBcXg1(6g5Ux5zwQ=|5RU;32gIBA`+qcOJMaV=9?>|H)!xd50?tx=zF#-J+5M4&K zb`ruwuz&e`vD)YQZ^48oPIq%x7EdXG9-7?+cWSk4gS}x_-g|o^8|@3y@8!-XB7zj_ zy7@_WLNo6Vkw??cH;`(ILZXrPe)qsS^4*Fy0afbz2Yj}LJnCm8;O*K}_%yHz^lwr5 zU6#1#+4mE7pq*W%3UY6U;i6ebB=i+iGBpQPWk58lf@ZO&ocD4FPukq~Ms@${oH4TA zJ$Qke-;E2Xds8KE9c^gVk*UUS2+I#Nn_1DycVaY)Pv~hLR`O!I{+izQ{Gi2KSTDsX z=yQ0Kk?g?Xn~M*hCoBt|7fZGc2N^(DolY0eWaXV)i+39N@0I)2jpt{VrE8xh1JO2t znWa5>1#m6xj0Uk=>FLl)EAWt+{;Q4k4^_cdvSZ@Z!={<$So|_KWgsJZGoOmY$3K#9@FA# z|E&0Xfbd)qH`{0&91*h3jy1J%VUSM2tqg$#lAw z{-x?2Y0CJ*fXAk>O_DGYde(bQkpBn|nLR1GCin*q4CS{Sf%M}E&*CA=e#8!krhPm{ zN~Wl}_d3HrB}{Ljzmr&o(#W@fg+mdGIc;0ChG6}TLB(i&vfMXaf6jwRw@#sj`-^E2 zx1a@xf)ObdD1x{Bf=47haiA3V(0`PQY8r3Mhw}^?4{V51O*z9zn)D1v4<%-kQ=7Mt z%z2KX?>l5iXRP^$%OL%dSvuS6FV}GkRH-zh&<3ZNk{*8;9sK(NBOU29NdU%nIHCP} zK>m00w-k@>;P62ThaFGqU7lVA*2Li7CO!%dRxb0G^0@;J3cGAkt()|x${%1l#h7$T z7nIVaL#}|qKWiX!t}58STX12KlgM1*35ZMidJC7WZ&<4GY!!*ioIQV zK}88C*eU$9jZR26j^rmGTsVWzM6j@hXVkJldr=pD9UH(7y945JWI8A2*~}qE)pw(m zw#e;Hng<*VlgJ3hI(-G5G+pYjM!>@9HJs$aH^_Z+yreWBazN?C7zDefNhUxnNo#re z;}e;5`FwN%ZF~01!%CJJcAx9l%FINyxYmkuSK zOs$(VTd-f8HxM*p<{@bcvm}O@q73)jIatGq=s(tB-!`J}8?fL1ZYHcAHV|uFxDgi? z{TGGi-)&aPeM|13X+(*Gu$}zui#rU52rqiJo#EcmKRf`(Ys?GBru|_+QszQp$<$7&5|j^?eOe zto{AMCfkqKeYRu?bGqh;$`lPiLAKIm;S#swz@KFs0(AOR%c?1;+U zmI*_;F^6Lw0ZqV{EosQ%P$qLiwsI{Gx9{5L(c2%owj1FJ#wX+iqs3M8Y~@Qa1MdBk zRWOF&KKx9<;h{L07grXpAZ`0gSnL0M3HNxNnpok=TUh2KIqEWAg>KRIC;+@DrX99} z4o zl~v)aE(SRRMvuOJMF~5*^NHop7mlz(S|Q1#4=Zib9@xc@dgGX5x&c4oUN?@d3f1G4 z@-~kd!%-K%#pmhvPp2s%f3TaKqGuz={s)7B_ajr5esv}#!`H}gj4bno*`NBEvGBQ% zoPPLFtYw4p!|=+I2S|zuv0p;b4c$!1H2GydTRP_Qi6J2t>M;|96NZL*4ti-=0CP|u? zi&%=K>iCx1y>XuKrBDDpU`nVkp(x4402$NfV$6@V(YkK44)9|OvmB6~@){b^iUe$2 z3`vnH*06}zf)KT~*QTqh@m!Ai!Yh$gM#wNCG@%XKT@n)WnxZA)D78!~MtR z-Te$H)Ai;_pg(v}z2a+inSea?P>;B{OyPdnMCK2Vnr{pOH^n3+orm+%WTCVn7zNHs zfFICJ^tJ!$Q(k?OA04d6$LEO{gP58tz*|WunkThN-X6$rj|Cy*zVhCX{sbz02br5YufbDx+UF2XEfM4Uj1tZJl|%8;>{Q{zw2MwkIWNUmIdWNlJP?Mw zF<<|=R*@l+ym?LHXx$OXZK9%Rf#t;nPck;zB(%F%xNgcLi+`-92DM<;6dTnP)-0GS z&GYyZM%qE70{Dzl(n)TJI5KIVoX9mK;Y5rRvZRf4-`6EYuA5$g%V3;umMlNj6DAM7 z;~@p_QO=gqTY}KQ9q#`C}>3br12D2)^%7g!j(}DMh zU4dU~brJVvktX@}Ft<`=iQ9OZRSoE^!92skqxgWNp#5suTpmn{yZhgmG$)5JiuDs1 z|F2{&6^-lMx@4|7kaLTMUCoO-BY32wvzhgQKhDCvz@0=_the=$Vb&ZS&{3#mX(EuX>qa_3F>Ug9i12IzZkrOdUa#7%hmsl{6OU>RZ$ zc$I(-`YgBGJK@93n{mX@Z(Ach4xiv-r+Vq*sL>2xH+fQcZLcDpHzET-KE3{5`D=VC zUJr{(H!d|y40e@Sl*PPh1_jLbo^xg4gpUvsT%`mQ3yx}_VNa&I$@!~mx}%VSQ`ne zVED#&m}3Q=-_dCzE@ZTyLQ2?pjG2xw!YZ3+J~fU)=&ozga@BM2nHUJw#Pcq|7x&Nj zu(ibuV|_25(>v_d_cbck=qPtw8pu3p)p;aUI2jebCuG9z?wYF;I3I@3UCq9a_-AsJ z-F-`We^46?`E_`kh{|?QRdNv+=BeSJu>1O3lUcM#W74-R=(LAKvAcj~1vBxVkkIjO ziyX$_`xL3O^Xy5c9rGnO1%4tsiN&E#&&e*9ANUbY*5y|ek|`^l2-J}pkXF2+LzO2) z`KGo(%8I5ofw3-*tdQtl=Q&bbcfVSTlzB;QY3>Z1&P%dPwJKDMV`(b)lQ)d$R_J zLWLR=(M_bWY(I5{YqhQ_MPz<;ofShsttkK=nDzM)tMXHgu zFfP2Jies3-9E#4wB%`^4=tu`A=^~~Qh5IANf z{T?D-(?dlcD5VS%snJjkM(uF=hT@yDc_D7cP{@caZ(Itn6U-2Zll_WT!pS^Od8cXLHFV`O|VCj zLJoWFMqGU|T>^iu0@ZW21Qwm&)EPzd$`m$u+=De_o;#uAMWuwD(nqRz?(z+_HZ{l=uwf?Tq42vXxv z!d&cylnFT$gNk^Nn3w!S?AHmbRL?k=_MfLCf2+U9rEcG1E=yg*p}M9n5p-*vB-q)> z_E7y1zjOqoL#0U)xQ{@#z8=G;@HgH)-1X$Xq1A2wF)Gxdcj>rwBs#8FI>mo;3@}Pk z1?5F?n?#KS&*$g07LD~yX+XJ*f)TP{n*FMk6;7czX{u>8Qr|d<5xxiywa zaU@@&L?2UP%$H+e?utyr?R}I{@*0pzNu*!YQ%QO~KvjNR6PMndl{1YZR*5Q{OujI~Ohd?7*ooH7?f5a}69S za=rwtwa1xtCkZ}!ht|Kyn#__R_HjAT4VvV zwd@z4Hz(9Yq6(XwoWVlf#YW;JB*ck}3g1=mSR#i41;ZFfvjUUwsF~wsrCkI_aS+0` zK+CVxGB9>)A5Paf4Zlncg zTaxAEe#To^VAmtQ3pp>qpt6JTK%|=`6AfBcU7{Oy(rtm2PB31$_>$zD_`E48oV`|n3E1?N;%H>m&NI@-Y<8awF(^z z9j;3611&3Cw*Qa?`YbMczE*5-$&AHn$M*mQprG+m&DOb2Xt&^*J z^2^CUJo%RARP~IL&qpCACfbv4tuT_5D#?S5kNdx_uM>5YT~^-sXnd}@Uqyb8u*cKf zcNumS=WuJl%}X}xAIMAoc_y@JZyXXJ{mx@RQ~C*;iJps2a3yLz+lM0{Blq|m4}FI} zaF+edtysT|N7H_^ib%5Tk^@q|)|)Kg7*Q%ewbu8YQg3yW9Pf9kR$nQ-en`?ne0jR1 zcjz}XL{JG+DHKh`4l%q_j5>kT7X&#OzOm>9om{oaM%LJxYqH=-oDQ9>KlK}b>Y@W& zS(^o-&oIVnZsG1K?6;z-5Z!EI<&O3YcX5PArLoE2rfej@x5gIvGNgV%p((?m$R($; zzYYV5aOlmeY^%^@Ln`V~bW83ZJocgAkG+0Mt*d#i_J@`fUJ6sAR!5Cfv`!G7^z&oy z!7WJXRQL)m>_R0J<23N7VM;hxAIcGjkW@$I@h;3$J4CK;VVmj4CifDZqySIOhuJ)s zS0k#-nDf$;7E~ZsM-46BHb(gtpYae^%cWDCn3pLKw4p)W&s>*~L+sEu>vv|cF?nkx zL2T6b%K5G1cAQ{bc7Ja5I)@V<`BChO!p>fBJk$WZZ2SoFK8!8Kas|z_;9Zd%Th*!Ov=(b%pC8gyidk6FSpVXViV=5yu`1w1;qIM#iqSa=`)X+=v&I9 zBa4tGo*1U9Xw;yQ5uaYE%H{5?U!D?mrsx=*$s$7d%XpV`#ZWxD(l=c+8YJ~eSLBK6 z(Vkx9AUOX941HI!0SJa+g+@Du+T7xa8n^s%$(ZC;3gPBVkOxx7R|%Fci;0#7q>_R} ze|(ALg^qQUkgVxK4x;c9Bi+>cw(3N}U`$m5HkCo9aj!D_qKZ}lE*|UUfC}FTE&=X+L)T_&!~lJ zr1elP0&0)wZDU-hiXVhHe7RV-%1z+_40Tp!H0?m2H+0c6Ri+v)!2BzL>SYZ9bHma% zXU}+hBmd9No2mSQjMJTr0~W(Yu}mrk)o+QNz;+0(|7na*1=83zQ^k{0cVt<9mtrQ3 zTQUWUPnOd1W0-MD68X`?-CjI3Do618(z7&Y;A<%KlfAWhCieTGvI^XI8Do4W1Uw_V z5*skZ^Rvotm22OfA{#rG&rbW*mc6f^!Jy;-8eWFJ`)P2)vZ^ExCSPufFyg3lzWII2FsH)3aN=?N^1Q#PNxZ?hMFU#4Uxx`I zy~T(P@XXoY9F-|F_I_*-*q{35bMMMvDEX-2n+ieCW`96V4oXwdFM+=Kr`=K#0ce2! zof(drjY4q@_GX15BRmR(9873chh+uK0N=XUceY|96;V4-ZgzC42Y=ZrBvLLmk*m+#gHSb?csou+%m)hd5HYqkuRAqZ7fWIZvCyLDq;J$8RnFT}_`FW+5%_X`PO=sJQF1C95P zM?Y1p6-cM&Ax4KHf_WzfwZyh(YrW{0x)HZEwoXN6l{)gT&C7crMvNTYtkM3=$EtjV z*gI`KyEyXoc+C{sGwppy@c?KutuI;Fm5?^;2c6J<_6{b};NK{*XUX(0sh+lZWt>cm z?Qj^qyicMDv}qI1NO0<*{a9OSOV{{ImJSKA6v$Ak$8tRPb951(fmayT8LQvsTKr`= zJkD7xUwtZSiZZ#nrv{?+J+PI$bf_*K_vQ6qg8?IQeb>CgC?Jkh4=OTfA7{;{QInO1!HM#qJEm_Q~i*dRD{ zDBw^yg};1`L!)IXR>+3Dw;X@w014mOX;dI{39_6-$wp|rcLwx*0?1mFePirW)m0N1 zCoJWsIH`8hfhcdi~jhJtoLC zYk3>ji0b=x8tgzRUkLo9G(iYqA5N}PqM7d#obwW6pAlcBfrRq~8df%^%;Wryf5dHXhQ>Q6EA9>;U}te;N19}Ie}uF#J|G<10Z6lO^oE#zDc zMlXRRg7Z6;4R3H-{ds$GYXg}54HR9T(u8Xfh@f@Q^ACO)gOD(GQ*&`V3BDNlVZ2{_ zo1H^zKV!V|KCCdnuO&Y_TD4Dh>3M(6xqhczLk;%7LRy}@%2}1ukZ=yRn)@>YweZ${ z+@;hvO%R0mWA!vW)=}~8;~zxWe7ht#st(5v4p*=nM?gozAVQTkSiVEa$Y=c6wM4T_VA>r(#*VnCh0*VJjO zg6u2x5YADhuS#_Q*(SfO#_b<5=lQh1-m#myBG8mDqhoM6G}9|hXo^<&L#fn7G;;8* z^uZUkD*28w;4%lQb0mP3U}FTow3<aaa1!GasDbAd(jrno zIwY}G+xZ1;kfip)um?`yh4hMs?_0x}WAYf&kRGwTbP(aYVACDDe9=DQ#ggMBN9ZA< zc1`NU{{fc#h?+6FpJa^gjzM*|o=w-G)i=GDxf;OZqQYKTr}_=!pI=jZXflQl6obh$ z-Q3A+Np|i29v@e`V^KW7)4X(+Z3aZK+)sxV`UL-lFSOJ`=rDPTnAs#HjY2pZZ@xo> z<+5XdLej0uMgzqTlV5f0lAn(>LaZr2JBq#FE}k`dK^sVTD__-Didr14b-3nGFOT#C zMac~SK#{duOkhVe#}@|-Pi}>a?6KF71vUZts3*xh`3BXFG$3QCk^MsfR&RK%0jf?5OX6b7JeWN`kzl=x*)dm zZR006C5EDuXp9wb7bUBy^g79EFR%np4QShA-m)Z$5pvlk-bhow++th>L!#3eUM-lA zORtYpt>f>0`EEQHd>#Ws$Z;UTn8%6qW2+n!dT^J`{|VA78v!~;1eSD#axwF+G2k$V zBIiF4{c6VG4BPRN)UR;u{_|JdP?y5!O3JUnvbq%FndCB1-bP9l&E3)&uF-^uZH6AX z_vfm<>3kFQnivWeO{nbN`X(>|(ac=up!XAR*4v@=PXt%tmCcvs5KB!~Lj~Chc11p+ z5W*S#YPHF2TWOM@J1o(4ysO)A1j1Bf=4nJF{cEZgdgnmQf<3>D^)$x6S*}!9XwDGo zKv??4*nH|5Cpc9n+EQSaSI$Cxd(dYT1Rjv}u{)N{d#*C3=^+>i-(~Ravr-0^VPjn= zDb<#56$vnJN@9GNo@)P!4ju!gsFpUU&f1>PsH~Nv|C)6;QypuidFqLVfyg5xz%(`B zb!+fU&qcheWfR5NsV9)O^4Ii?4&v}q!@;1KdZwdix@?esX?4@HaOe~31Vfi1Ddmsp z#?q1we|d_6w{apTKC9$Zemp4~AW+Dy{2o55$N!vd1!14=o@#5CGj6pLxopI&oea)p zzydCQIa+rj920kWqo9kKp4h2i@(Gw^Hpt^$+%s16s+)~JY&!b%w3P0}PiMwTl8?0j zBb}m8G8?ozNPv_kaeWvp>g%byV5Caq{@vawlux!PJ4p3sN#0l)N71K?yZjlrv32jH z`UDM&_Q8k~{^-%%yjcK)PF~N=x?V0q@gf54pziLgVk0&zN89$=&aTcB5mcmPQyOMe@$A zDYugx_@)T8PPw$1O-`wS!3mOm*w?0g&A0&ZnBhL&&edtfscs zK*;-slg##@pgxkCz z0nW*7o4UaDyJ^>O8|xbg%nJpBePm&3NkAGs=iC>b;qP59)X0#)Apzfgp*+qf8ocx; z^>xv3+3?88>_zUPywswzN!N7m%HeAWLv}&)qIcsx-zwM$#Ka4YV2_V`tAQHx5?S>M z?jfbubrzylzByu2a{szSZp$>VxLD#|WACIT^y#DxnDxj5Y?$+y?d zBoc5C+0EHuT9Az;hjo6aS88Hpbk zK`yFfCWHas>@V$`G<`AfOssQlJQwXLjYPW2!iP^uqC%(K$IoE-D(<$Z()sX~F@O0=b zGS|VWXiGRacdw$RY!rgg7o<;jp)>&OGjJp0s15BX0zSw+NEV}|oEe)4&V~q6=()~v z#BQJEp`}G6{Z&`R?&RgMAzvy8iiy6@isslU;HH>$@Mv>KxZGi)jSFUUF?L-2!#L7Y z{vD&Q97LR|U{~{?62Nt?H%AYvnFn!6{`ftM#&EvE$Wu(+DX~e!$^?9WprLt)5mT{~ zZ6F9jt}e4k)HY(8o;WGe{00e|Zyuh=QP-#xrm0X=4*i=5`Jq+7=X|3VLM-242y1G1Q!RVpCjLIOk>Wqtnp-APan;mwse1Kc%gT zyTv~04Wct}KTGYZ}wO+a;ds@oxoT__b z7{+I!DI1`<4iivCWsZfZO|46LyQz;iDC8Vp+(j9Bc z?mHUQK)RD%aL9gEh1Ikgq;W(5@8Wxf)B6jLx4NEuh|4<(#z4CEN>I6EE8du!fZ5J0 zC`fI>goF*Hq!5|x+vq1NBeZJ%hQe^Wx@??a&7AnpzeGEym#=gR>*Lg711=FzW0VC{ z7=I8(iTt#;{yHi~WB~q#c7AASvTZf$vGCLloaI}PN~!xsTMx{Cz_e^ZMTml2 zFRh9IS+KkXJhk_vDHt)HRGX57SuWfM@3XwcZhW9D5!y-hATK^2VQ-UMZ_^3a%w^*=1KKTWu@X=XtDianhnxWg zZC7DfQwr3X70niqdIsD|HOkC~0;*MB3+VsD)+gz!<$49g0=AZFgzYh}&kFZFtVik{ zEZ_?ehbWoQg`X>skWg??ak8_5G}#L1{$%T`U_W+$MpzW|LRGAZp~pz3u2;Blv_hnG z(qnKL)RwWysC>ma(H*mFz6ZVZZJ5Q+gZ`;@9V|`3Ufsy^5hV4sU-quHvhi*%;7`Ex z46IDc$Tq_>P+#^p298q`4oOK-&sq|T3z*|9-3cfH_q3pP_cNiTbS~!8MU{olf z3Ri$lTE>RdlSN;K@VF*PNlXvzSfFh0=pO`afY{QV$n7^S?p{Gq6cS1p4Z6J?U}R;U z-^7D5)n5(Lf*w1FB)1sX)>v+i4B=3MaDOwjZMJe&W!r$0c|_A!!!syLLRAJAQb3w~ z5Q729dt*&eI|g$(hJ{@Z9fJIGZ*B-{crFyi1LS(FL{Zdq6aqDFrXLUL=|o4D2#yDH zK0R)B#I8h|8;twFj^N${2V-Wf0T6#b$kNFTpzBJW7>3FS^-&U&Kvj&|Ua^+k9yGGO z;%<+(408MSrq~|OxXSAUUHUQ5{Oz?+d%W%<7ah0P2Ja0<%Y1B>gd2|U4&NI|LQD`XNwsOos!5UV;{LFDTo5{y?!JvB_qwhe#wmW!-BB6#dc zKpV5sZ)fMH71fo=L48vz?{Y@QQPMuk2%=Gw-$~1SvK#KQX(E_^6&$(+$wMbXH9s8|PY#R5KjMkALi^5{|; zvPEj)5T-ZiIBFLjn+C~jf`R;_E=^4%RFm!Ji}kZaZcj^l(~Les=FTE?{~u`S8uy+M zDUB)7hB096Wjt6@wTWK=DA}On5MW<#A_YKe4(Fg=0bQb(qu~s*=hsVQCml9z683zF zd>gRP)%)osQaC$7GP_&lz)lBER`SrA1Zs9ZE&S$$8dPz7(2uVI>=I%4yd+wMRWGlk z1-3gArPW^%L&x=!wI?K4So8g1?+hv^(V;ZrY9<=cXh~(et zik~TYU|Z%cXlw8bW0=K@-gSgn<2%5+>I*KVwUpytptZIu8Qm!x@EnZ4$Y5D(pXhKhr3&g zJ;>23w4f`5)<<=WN&bpJ$0Fk9M*)nWQbLeu{QumDO&_zhZ>bbLRx7Z0Psm_C@LfaH zGdhPZH#2aRhS;%KHKag`%DoNSto}g-#ce_=I;9%hX+ik0RInYUgu4U2zVqoE5Gnw9 z%w#gr&7DZP{LTEh`ooq1ggKtjm=5{%2M&4~4j>0&Ln`&h+s5bQ+@~rGTmVSqVt=L) zo;>hfQe1fqUb=fYUOrZnUoFL~uq zPZS60?T1)>(&-HF87lfSjoK6kc!OSB8W2621UxeX{(}MsUILzTJgs{9eqGkFmbO{r zY9!O6DcvC3BKGHa0CLEih3M>=pX83#%ljNlfl3E#dA~dv%)UZeK(f4?g0>IU zlvB&v;0A)zaTf%iG3)S$1GIcnLpO{Ij=TU6^v=ejT@y6B2Hd5$w(SY;VwF1dZL#xG zJy1{qdQ^Qa3qWeG)7=O#zJkv&36>gVb$;;PROKa{8tlJjoPgC*3oF%rb!r2fDcm0V z|JuHvX*E+=o}WI>(-6{WHPzMTs@23o%h?$QRDBTjYfi1kg>lF-Sa~j`>Mjt3rJA%F z9G)JaCt7!0+QVi@%IX#n1$3>8@>ZUd4QSgo0b4==`)z9B%^W(7hyDUM>P&FJ1=0Nl z|JMQEu`Qk~SZ3i9!sV$D@M)gJ1Y0ZrEje9u1X*W zn*3HUkH$Y!c?qFaiO;m~5Nzca3xouY)|AH%PwRJp zgq}dofYP5V8aXn3SX6V@e_{f(ft+6A!c$yhfa&99eCTCb6KHgipv_3Uw6MbTGNYo# z*eCN8FYUjb=6wLJMlYkb*dm%dJml|;M$A9i@(VdM-di!my+rBT@!u4$0AIHlu_)mT z#qI<4ldPZk+M!44*v|)y2Sh7mW!%avoYB#PwV$&4lYv&6FVSdc<(mh?kREBeyooWeKLgNn59EAGTMylUXLX zm%4gUwuBx8X0IDqDG`pnECcnMxk}cHNA8&^lA}^bGI&hQ8%3_s(vtLW&#>FIFgNSstF1sz`O^qpKjG8 z-)JG^p<_}DI`i+QQzy-TzFg51eF>RYg5c<&y4?5d-n8V&ZJ4hSLzxQDNZ=a?B_c|Q zk4b1}+-~dZSC3gx13V?8UqOY`YJ~?zYXAz`JDUKu-bA8Qe8EI7r*)R2?HU=wF<~_g zPo8Gtg%S75lDrHt0bs&k6P`L6(N!|=!`wDoQTIs(k%wZ(5e}fibOLP>arSX@V|6nM z9;~tE8BRfNg$`%~|JC-3*sjAHzWEIz@0nG}g)L|_ILEM-gA)Y$pYx?x*J1k^r zFNQVbDdop*6BV^mgeKy5iXwjOa_Tbh7qlM3Y9>%FR}nv{3)3G6G=8MBi)iAj_?C{CgN ze8GsaR$(yOJmIQ{Obw~QB3Y{>$(XI`gG@RYpCQ6n$Ica=Bjx2pC)s5HY@fR@a>x+{ zMV>g0^mlF>`=S)bL5-5FEE04fY@?TV5O zey7G0ZTJSJp3djQgfh`cdJSfg#TMjS`2LotSxXHxrh?XzQQRa z9jnwzlRg4UsnoiDlPc&kU>gBep#450c0X@KuG)g^5yE!E)iQ8ZL^2w}ukSUC|B5`k zB{`&85+nzUj{_P=gFL&?o-9Dx+ zBpyZKcORW)E4tt~xWtJvK!E0bG?3>-8}Df*@E{0L``%yIU9va?7SHcY;D5oR>F7;DQCtP$_!yYQt@PsnI5Cj8xO<;#cmeS6+=Ejpb-AB;;GZ+#zR3iHT*2iO{L{z#R~Qr$2}r!B2aGL;6Q;PlSc4s-J9Bn=eK3^J&mNmSZfv#y11Al2zXzLV#;4 zJiFDX#5PR%2;+@~Zz7{!!N)eS0@DB~#X{eINRyg>L@WV`dHHUu;V=9`b_E<^A`D>2 zH&0zn{ewbD_-W>zCy+4|Gz6_naJR!YV4|+Fs1suM(t{&7rvJT?Aqu&^B@p$%&YGuy zpB5MtI@}RH;c5nGJ#3naPMpCW_yB4=fZ5hlih52A_Q+`LV&8iB2YaSrBbjVHD*}6V zC!n30{ZYdty>_E;M^Lt9Vl!Es@R%bnL&CAy^6<9}`oq(OAT<6QAy zygf%-KW#bV#OgYnTWxJ#pChs{Ll z+BWee5K_{%A3v9J+JIA6tf-je z5Cws+J0Ji-SvqI|9S1}rLb-Pl&Nzr3I*CpW_dIMPV}ZD^lCh=B#nC9Vv_d`{4m;`p zD7o@7LKal_S#eH>!Kh+KtgB69NCYB}_;w9cCA#OZTfL&$;%VS0WYy4uR1u)bjm5SM z2gEmk=RL$`i~4;MNgLM4giqh_g$E%GU5re`vQojbAY`ZpdRC4~2E{60i6s*YNB9Bb zvs{WQ83@r0^HCzKVntA%V4&1quSdW|jJqU}S{xHQ!{DCMQ?>_)d`jkd)d2N;@ha6) zNjb$DB~gymwLQxcVH~y*A(KhZK%C}3gNE1+Y#-t)lVqrc=e%@e&xPOEnBJ~1&FJ~ZTLJ#(FIDjo1et6uO$0=pyl4^&#-og1cnWM&`<7Z*% zOBx5%M`D%bV>8zLH0z)!{mEDG!in4l>CxPwcko`8#FJ`;L-=ii3EHxXVl zS{INfG0<@*qb3MS;Nu$dg+Z#jKTy5j+(>Rw2B^#vX(wJId#$YA`6&7i#4?#XH>WZ> z2@1)9EST;QH;TxX?DXk@yI+WApm?1W@<7kXy_aL&229V4kSc5uB&~7JeTp}Av!);7 znqta`D2&-McG;#1ahJX>PR_;K>3taOIO+pU)B`r!!jL$r@)oJXcXqF{N1wUz$E0ai z42dDDM`9IR2=(;f{SqmE(L%ym%?PgRU7$lXwZ=aOM8?>Ikqid>T7pIP?oPKh-8}eb z!)>q9Bz`_22noNulN@j4mNkxxxFB_Ksu-@RfRTBSnOGQ9$bq!uv@^rukp@EA)u6R;f93%E~oFl5+fS5`7&Vs-{GKnTXGjIH#fq~N7`tX#wFWf4i-98{lG0*E8o0hyMol%x020cT@p*@!$i zhse=n)6^cOKG-V|Kd#^HNO`TQK=RiRRa*mebcV_fDhNLbg@u{E_XeFpT`UC02Mccs zK^p5{+XteT#S6y-ZK%4+COXEs$NYEkl(9Bd&iE_If37y=zi|<)Rerq1eLs`qIiMUf zZ80B9%S1EOQ~IfhaTZUq<-VCwUQy)t`|_>>IoVcg6>U#d*E`hP87rJo7%D}rPl7te zKBANVP!HV$1bGQIpO)4ecotE^CiS%xn=7w&*STDL9e-RqSX6#>iOcBCegvXJK(|Qq z5f~+$luZoDpdO8PQE;5I$X^N{roZ%q5E6)+AW!Y*2?vd(cSQ+BR8bee>!ymFjClGk z`s7z#mb-@S0^N~E3DCF=Hb8=Au4FQLx`Jz(Z)8#m)?(ZY1xm_~rv^wn8{yMdtn489wu`p2lC#9gU60vv zQvN)SLWCky5)ATEgY#@TK=WJXXImX?2hbir1+AiXV|;n1Z%D)!mZY|zdHd-@9gaOF zN#2(2RZfmDgwgrLDs3owNs|RyocrXBc9PiSet?zu*_VmZe9Uy8yI(WPjdxA zPmonJ0+hIy&0?e`xH3@h5oTJ{!r?oJX`F%Yo2hc7>8qe>53Y*3({YwlIV%!!o} z=^q>R+A0tqRaPjG8HhreAZ0*~%}mD6Ph6hW^{RYXjm~cj4qGd*H9&hiBR%?gGV4DX zC|fJQ<{ulHKsDrSoN6VlT>9PW3Q_J1ejA#dhX00c?$k_gfX91X_%+~bS_Z4sDG3?9 zNB(Mg_~xi8RzgGOYs#zzb{oUTR9aU%jc2`zYUV6Ly;wTTIMECc9J2FhL*b*}(^$FX zB4vqgoJ(`Yu$hK<$c5H;dtlU<(*mEb z0>&v2DB@h!6M|&AYuWXOmPW9#ni6Xr!cb25=Jg+{EZ}LH(|UxwVTAz0LM!m@V~uMN zs#q8gJ6A-T$|Qo?fdz_$ZvJE<=k%$1i!d_paQ;`WW2i>o><2`R-+Js++AV5SsQh1A z5ur-^7r=MS?x+i_CLl%=Zeo``cZwUYQkW|_cuZ<(k3sve{+8l${p3-~K&Phx1>(DO z==wjbuT>o*eo*v=@@LIoU1E}Pwd4ae8#T<;b=bg7$)s-AMz@AJxD_9tJgmu5EN(T)n>wpi z8Bss4d7bHadsBKWLq+oof~>~Mf5PH9pT9P>o|3FfB33WH3s(+qPw0TeAGgV$A`sb* zj&x#>B!X!PSf&8!g&JsU-W~3^l4?4y& zDj-V|+rg^|K))y}ns@{D+e#iH)5r-4n=tj@8p8sp zr8y(p*0E_2Ou$axM1Tq!9(@d!MpZ~^by$V5-=_BQyJu<2xrRsuC=vlWeY2_}RZvb- zQc&$HC59 zgK?3Z#UI1u9wWebYzN&{8hXEfl64f$^!U>%-9m_LspTRhSlWK-m_SX?X|oh)iZj4 z>Fph92q4#6q+qo+z@Aq>tv-*8Frgv6SP|LrUiatwzotr`hti7A0{l+}$%@0C8%IBP60@B!oeIJdLhMHAaib{Ao~% zEzcFVDnlqMfMj&2@PH7hh?iyQM^gNwW3OQ1uXPw)&P zNx5@LtFnJ;?c4YkhOs!@CJxtF)9)5#rVpU|(TXABiynfQRCX3{O;dhLJq9HDQlDYzr44-A$5t}EM8Rc0n0 z(yT>13RGyQ2h`n4$?C4}x^umWk9Pbez+wIqKmP@QjqsNswFv2#)awkDG3S(rpc8Os zd0yrp)kWZ9f)n3~#a*0R9sKGI4Ho_lG6415)I#;Yw{;P<1Obmr9fl}CYWx1%1r*5= z_<%G5&4e&dR(ujFdY@fH-(Q!!PbF{e>c6G1fQcnp-FdcK;4c1-Pxvs<3e-rYVXJE`#Or1uvl^k%n zm~`eAz$77pc9=aj1tMptK-@C3%1M8>tW29H;EGzhIEsMnyqfNv@AkFH<+>FeCqu;rS3;G~Fz8G+NJ61X5Jldvfc#-EWdHK- z8MjDYP;)1e!d{3_S8xi#W@=*mvC}MLB6(1ABff<8!}&4zBO)pA4GFX>?6o~9HaD4* z*hGaasco6yUx@%wSgI;ITUaKMv}cbA2LeulQDcvs&?|gXGISg7tFCC3?xT}abBR~~#cM%+o5|>%l;+&_qZ=nryI*#X0UbFL!8#|X5<*IY@Ni-K(pOJizWmtUI4}W7b}^9$@|^rQ$C4* z+sU&LuBM5aCSN`!-56@tP8^UaMGX_|JKeO5B?W|}j(|!j0N}ToWEa@NHdcz21A6ZC z58mH@ki@iS6duu9FO4p~266beN2T$pqYp3KB|fFNvZbjf>aOl`N5gK^{GJR6K=Vz| z)T7%@NKOII?CYkkQdjQ~1+e0hIxB=(#S71mdj_x-!u8=TAS(RC1ci6ts%h`@Y(H=L zRQ=u?;3DdqR>0skyNzw)x%GYXES!S`hi?Ov07k0T3a4yXhqgoifMpR^U3#y(-L1Su z{zUabh_!|YA44SEb$Yhh9myU&0{M_5ndrUMUpDt9HY?Wt&(#bmZpc3ZE@`uq#PRI* z3+7c6x8QKc6-)vb)cyrq!`00xvzi2dyr_VweJh9{02kgc3JCvk2*R@2+X)@g`hX!mY;Z@4PSUbHq z?h}lZw_lDL%E00Z1#c4)L2>i5jt9^T{iR%2FwPJ!pR?rHpsfr(GF9>Z0mvdD@2+sg zPIe4Vph@4gPy9L&9Zlc&w&sC~b>Voyzu2#mEb=)40R@qQ7h$`Yz}?&G@B~xtcMjJ% zerbU*OJ#jfeHD)rMBe`!%l7WN7<^W_PpxVuz)SrYmm@^*>7;_V#`u??!vs|D@wF87 zu9VwK9s_bx*J^c#x#j)q=sfQ2>PzR{(Ra9kPvzmHur1JqF7i(`yHucB{oUnw;Db3+ z%&zWHXsOL|O5Yjj;Bdmr21dD5J6Zf_#c7tg42an>dDCN{Yd1$4kbyICYDD)_Z;)DE z+)%(qT08F83Jb06b{8^S%+R)M!ShM|Uw!fUZ#fHePM-4O%|NEPtv!52Y{1R3b8Vo; z8z!Cb%D*Kyenc9wH?k(wog_5DjuQ!^K1YnvJ=nv^ot8f(m<4yzZ`2-nd6j=USyIgK zl0u#~M&VQBI*PsnMW-gZO$TvXoI$ip{<>BQ0lSfV{!$Kx&*JaN|1YVL`s}SfM_4@` zLSVQ73y2Q`7eM}CgB}(yqP@m!lVQ~CVDTPmB=-FRffX1a7fDe>_=<~aG?e8GrlE(1 zu7oH~GhHgH!DXacYRH5V(!?H+d9NS;n9`x1Px{R%4&Qf@EpR5k$3$mj_-8r#vpcpz zhd+N5TF&`lP``WNqmwnn1Qp^#A2u5#J-`}BB5z-^acM9{8If@FWEJE${RY@THWiCX z;w;}u>m>Qh@doDBmSS_Pm{lXZ^{K=6uHWye1PTZ+ERL~JHsx8B@GW*WAzn<9V~Sz{ zxJ`=VfoqwIY5*w>WGTQXJ|xo6nzw}fH5UyXVO`o<;G+Z5d#bdT`IE@miFP6SC`k1;_59x$Xtu}&9A|DlQNhz)pse*N>x!>wnjbDCq} zeqr*o$-B8_qc3uKOVT-ISMG$9`z=~s1oh%SbUTIONjQKO1X|^E8E|N@B%{+4EsKu zso6?O9p-iNKPh#%0z53ZFi}N5R6?+Uk~u{6SkcbMQ8sBC5~KI?r$7=X@KU=5(+n-$XIL z#eJ(8$KW92NK8@L1YQwg%-IZ>&iy!{vEwNhs*U>hYmuB>X~?pS{so0L2f`trXI6BH zkue;85>*0Ag%pH**Y{AgN&%*r55e!jU?8OwklTwXf zcP<#-$?O3P4o!oq&`CN>YBR9m-EzBh`5?+nf*x#4Ut&QrN*!MFGV7 zB){Ozv49ON^x4A5Rf{{Nrqv5blu>nRIyJScDzK;~(Nh8!;gkDE)nCN+>W(Up`S4(k z&V=}>)ltB+FYI&pe??;N?Fmj`A=~g>ZN!lr>$j9sO77_rjfCcWnCm&8$pJ*mp%mg_*-f zQ#4_FXUaXpthC4#9P-ofHaZ=lG~AKK=iuI2jeE^^awV3n#fsO1|od9HN!b^ysnIZO=cZgSbg7%0I7ZK1JuCw2F!$cIzI9#eu z1P&0#e-Q=4NQ~P)#2~`o(J}0kL{#MHh=*7&S5|?x)0>F8K}ByvRKO>qR;TXFLtIiS zMuhm6sKJ7Lh+P_&+|K90Cd4ljqT=hgq9?@A=6##SN(_(aLrnC~^1yi^#1^adXpaba zh|^5%jMvvn7%`DK_d`52LFfqag1E;b5AjI_@nq||s1@HgkL2pzeUA_!_T!moRsto` zUj!UtCAEh*Gt}0VnmU9S-WuwBt-&55LBFKb7T%b*hd9RV5!!U>gnJQnUHft~+m!U> z>n%sqpb9L2bY++cv2ACTm`Mm+0-$kH)Pfaaye3pO52!B}T&ZbzKRD;K2onz#!d-zx z)BL`N0Vw0;vUJ7eIC?V|h9nciZU!>BV}U0?Raf~- z<-kecB`GZFv5`U1Z&jmV0{s1iM^~TXnmydCg|pxDW6y8O3-|_!fL7r++Gw{1=pLuK zku9T+oKPod3w`fRuhaA`9eMcOP+4T5WDDFZD*6m6~xS*}f3d^F88tW4oR7JenHFS4v4q{>o&A%YDur;Mfl z#Zeiind2JmSZ~5pq^5dk-Vt#=KNyPqii04g6(aGoZ9*D+zEI?KRNi5{qxj6 zgHZ@g>vQW2N8t=ExVR;y#)zk}4{WLiN4Rsg&)}{M^6q%;p)=UzP}e!4Q=h@~JHdtk z5})ya-U4#-+gOoU+wsz`@{Q>@xrg%`@{9AE^=l$sVISiez15Lz2gei1(VF^}@v(he zjZd>ft=U1i$ZRvbRVi_70SGYYFr(D_NKMn5I#C1HW?Q8v-+#B%sIaRj{s-HTI2$!$ zr7lY-pbKmQAezOlN7VxFom&HBQ_vVPDIhCQhbW(L9QCd-Qoxj@b?)?-Y8x2NqmIH2 zG|F5hAX%GhKy;}2BQoD+orDi`<-Pp5DAFqum}@@fM5-% z-1B5_e~lEK8v$|h_{Y{S`cD3Ae;>;PzN8YIxw)}n5Mlf{-mLDzSzHF*8wlX-TBC&H zJ4pk1U5?4ZPpVs$-*&w-G%V)zPljDq;tuUs+#FS_?&ACPpY-(~Aj_StR9@J;daGdD zYZ~&4(%Ak{7~bY5)2@_YRT!!r|7*UGcO!4_TO;fz2c zGFr`85`0{g_u4M>5wHlLPj3PPa=z7xxea^KGktye3hhJyYETFaA}~>sHiHxz_o)6x z8WEL64rR-NTG_q1a!&w-gI)>>Rf-C;0I>kB00l{UHDR@5QN85tDJiKJMCS^geabUh zVI&Fz8T0lTUQXp3UCZS+F6PrrpJDE5qZP!TjCQrkTbtjKgx$E85f7_)H90~80JU#h z%rf}v^Iq28jROcqWI$wL6hK4H$zyAW%g_EDUtact6z}-mCt-_s-46`ZrAw z37Ih_?^LEp3nxB`A<4@jdrCU4qsxsl_fS!?)aBS+kORF`f{>CtNjxga!a!`2^U(B` zhBpfXRbQ)~w`;X#_1V{zTJ;4E7&+Moagmdh^iEf(55FUeaR`C$ID5OBX_u3y=~rTr^$+ik>DF@_I4sNo}Hb!GY`RM#-Q0M zJNfp&g=YFJp}K4^x9m5(<5eE{w)Mhzc&e$k=Dexhe%fu{|IX@*X85fq5}J8-PBf}n z7>Po&?7q@UG{%`gG@BL1gY}JeF|5sEB-5#KP{O6_ydY;%u8|>I$T#zL4y)@I1UZ*{ z@^a@#L7tm352M0J{J-fMBG=3i%+$%{u_wzp<&y02(paga8CnK~K_J0^hK7cQ!blDW zg$xrOSU{u-6E0Xt6&w)B;h>N%92X`?kZ>RphQoqGVN^&72uFnm$>C7Y&`=nq7$}Sf zEz8nWJHGd|+R)tL0<+WNI{xaePZRGJ(_pO`n&V;G*)-d!{R+Q7L^a!`eY|>Bd)26E zM`J(!iVgn9b&7{)pwD-!s%O>Ly(<6_0097loNO;Pb!PRd1EJbZsZ=Fh(4j9#ujPj* zau65#BAaMdF$8s~y%$6*l`A9Idf)>p4Aggsys?4?sA8m$F;p}`3Q|y%90LLg6d;G9 z6bEvUVA&56VBlelVi*L0AdccdW{@EQLPR2wh=|D0j7d66N42xsJnrSFgwp33(((`Y z85jJ+c|a%;NG{;!ETq&CJIPo`CIYjbZhvuVfcwRCGZA~`;)B=HfNHU9fRH9)l15;A zVdvY6!u&@4vX&6K5~$3W8%W3kQJEu9n+XKsh)8XL^NFaUeKy(PMWsW(Lb_6B_j*j&8#i*#=(Nz-<}h zW}CJQS!_ka-UtqIU)tVmqa@9mBwwS1y~5Ao0o!OdmECorXUeFT^izmivlqD7aMK)| z(4kg&S{jWXfcH*&-LWw;Uuz*nWo0j!78BC^{tQt3rS|9MeGhl|m6WGo@?iu4%8W>W zw2f)>p}e@Egztf+0@%vUAQ@SneKj6p`6Ou{GzT(H2|+W?m3U{1A3Y~1j?W!L3k1li%KLh$vjAmAtUoO1W+nS}BKc}%a(VNp^<6WY@TJ*FXQ z+NmoM5ynhajBSM-MSVlsoG`fTn@oXYib6o;$TN#Q`zpEfX~B3JD;r3vE?9yo%eWX8Z^`QHDw!54BzqK=$O*LnfYmh$r)tp z4`Bjv49uXzJKcVuk}Xw3PHS~h6xSBt*aO5x=RTUJ5QtA*P#}F0F|@UZ_^wgf2Jw#M z(pM*ZQXid-cDEC#^&tl+#YTnjX{51TKdKK_7A;)ghc1&G)skFonFnnDd!DI#U6O{S zT{aLs^&m=6LJ!kjqxx&WYNjYxAD1QI0}(`zAGRsoI%y<@fdqYND3Ml)t3VN9g)Pu5zc`L8;SvYjk|^<9&89^jQ6QxsSd6#Bm@gh4 z5K0aM^f%}?!jnfQNSp#L_2at$7yS%>(kF)7VrWEfz3Xm+ozYaormRoVdYEA8$a)p( zNs&L3-^V{Z=o$(>!n3iADZ~+;1==0TeRWmIMvD`+2*uEb0ADdH{(cJ--DzyS1DGYv zvNk$x+qP}nwr$&(Hl}Ucwrx+_wr%&^o^S87_xbO0mMRey8Ikd3WIeSiGa8vxzdn_O z9%vj$&MDq{_4a$=_USd}I1+k-Q=rJAQ6JBJ0g^QK_u0b1Wu08|LEf35+6zj+RiDL~ z%h3&+1I1vmNy3gXAsccggU3KpGLKy4WnfE^--*_au{bNhkg@r>xJMcxBvN)V;-47ted{oSD5pYW*D0db8S`m@ zm>CpFbG;1?2Bsm8??9!UUZ-ewphHj1c4s>Uhp3>_$LtY4@Kjb{Y3#}kK(1AQ8X(5J z_U!#VqvKP_7VYSF#jgpoS6?B)wJ?1Zi0beIXFzZugh*Khl}q)Hj8gA-@=rgTZFPx~ zqdm=icn*rU^!a!bM79H<(R0vpETuWFgwfPj%~Q6s2JnZ%rav{J%`(Q*XqIx_#p$-5 zSO!-g%g#T_){rF8StHc>7|d6*ICe5mjH@4uC%dnk59vZ>(3%}tu*s2Hm?AWz@A}aB zITVJ#{;%QB`0wGbMJHivY~pTWOebvOYGGueC?<%{$ijlp%<)a2sPi9p@i+T#cOhzF z?QG(xMJJ#nBq71hB5Y!0XKX?zYHi?b@~^bc|9BK;M)v=D6m~9k9XVbR2U&g+GBPAODG4ovw74jFnDp)B8MFwL zbSd~4C?qtQja}^ZAw?J*3FxRP>9r_1XbnUq6d6ekX@rQJxYey$M8)~FxOoVOSXC)p zgay@YB^+r*dF>Q6*@Uf0WTZ8;Y59zKWo#i?Nfa3EG)!d`MTv>2T1l?a>+#CXNTq*SaGC>8jaSvZ9xNSP(c^cXFfQ? zFtPp@0TQ;(CbrJ_EcAadLMLlrV?r)%;9=s3&p<(^>|t+0CnqFEr{ZK_W`fVc@Rx>{ z_kV!&&pCgAq(!G{VdD0UIwuP=+yCI~AM$_WOz3;Qa<+4nur;;&o}~VrBNzCdzD)2X ztgT(Xr>ej8_>63{Y!q}#E{4v3n-*|%cC&M|;{AU8Pn%3E{}o-(z{y0^&eoYuO-e&b zOq5E(PQ>;b+!nTGbP~qj8e2Gf(1`!1rN5fe z(<$4j*joG@0r)IT|D5tq2mEF7zXV|ZKLk(^6jT*Z{Eq0QD;y-y&3r8ns zA#(#qd?rS^zkL6S>S$sAS9O-Zj1}pm4gO8Rz{v1l@f=-D{*mQB0@0~i7(1IgX)!YX zwdMbQGto2Q|NZ_gWBkWN|E*=AXZttpe^dXhrN?Js`|BH6nEsy4%+8L_%))`s%EW-r z%J?sS-=&QI4?Q!}KQ#3Ctjvt~EUf>-{eRPZpYzR?h4I@DeRKKe$iezbIK4+5V}c$7lL>UQ8Se_)Oo1|4aRslKERcW)>!${~G0=zWX=S1pXS| z8J~fkk(Ex!z+T+M!pz+HTMNd2$@l7}*~8tQP5R*fzTe4H)jAV}$1 zh^qj<5h6>pg0eP(@E{5ZLaeBUrm;2xeAF5Gk_h8nV< z?jH}FKZIdwO^eLFuzOx~^xt6OYHCz~y|*EnIUe9n(Ts|x zv{3*2;q9pOVs~6bS1%GOitP7Rjdb7i@z6=Vzp&U4qz7_x(H!t9QcbH4f|+=L+k#@c z8o7ET+fRpldL1yvQ-+AG>kWq1kw3FUR?$ZZp&R?rN-V*caIpT%HB010F>XkUc~EYK zdGLp93Lx1@rftlE3Q*gI(FMER^%o29FWmqwKJbh-8Vcm_gMC=|HPLKcVpAzxss2CR znre)!AzgjZ4Fh)*)?DkulIj!{v3dqb8Uz{rj;lPbIXwD&^`RFzm2saDEOj|6#;g+2 zNui?y8r zi0yKSuW{L&O5`pj!s((+Jg< z@t5#H@{xjscjBa?na+i=a3JxblxgIVbL2^;bJUvBMaqIE%CZxu>^KET&ha+JU@KY| zHqBu)CK(o7>myIKp9|!t2YEL__1vns1Tl$XbwrNw*mPtQNQEwrfQvK7ckXvZD%Ac% zV+Dr}ZB9-=9puY z8Vngjj0XTS0>OYtf;Zf6J0cIF+=zpG*byA55!mT6F+&jtRIgIIim}K9Ws1ZsLRZXE z*d~SS(pfWGpGisLs;A&uJo<(sh}v zb~V+iTAuP*`LPOzEG^c!s|44}yGpWVZBtvv%pn;qNE^y3DApE667?mSs+ce7aag5H zhc3*X*uc`cGE|)4oaFAwo!U95q#@@+)B2A?*);Uys4uBKrTmHtOnQpO@5&DI58rKz z;@aYxN9V|;lv_$mPjUnG@SJhhewx>GHEbH|+0@kb82K(=l}lEPJB~)HK zbUt2~1!nlxZoZq9j%pW@A}YW^%^x zX!IEFDP*IJXEF1^V<}?(v+-+U#1Fnx)jAOU0>6n{6mH&P`)C8 zqfw?R?MOOCQ}gBbO^E&S^@8VwV_(5iz-U_BYn+IJxl+Z^PLmLWU=@CcDcd^R3f1M} z(}+q}1tX3l57NYT;4(QvXqZc{cpOUYzgZ(Dx>YMYNE)NqeA4ek_D z)wExT-*;Qshy_tnqI_wZ*Evr4Cv&Bf{H&7Ue8hkvT5c_gZl7Vo=D z1eZ3u`L;ek^5!+U!LrE1W$&YJu)`hmD8y8gWWS<`A){Q)|J|&n!+=z7>ulMm-_r8-}G<3Jvg6I^WCq6wN46AH=MxR$r7eWuShYT z;XiD?=n?lb`}kb_kSnATBTw=$4dVqvSI-jN`RS4Rd<}Y~3bKY78gk~o@e0_EB0*os3xo%iM?cmi>kM{c5h=+aRqS2wC9^}KwYqaKMP+JrM z?z{n_{sC_3q3&e?9=3bI;73W|XGsuyNfQi>lJeKB8D0+%RVdVV1a#bDTjp|?`outh zqj)&vKm3h_$<6|%kfE7^i6W`NOR8(-+02ba-7sTt6NA9h{jw7y$t4AtWk#S9qf^L% zeo`QPQb2v0v+5RGe}o=nRwATN zl-@Dh3){G;Pl9iS@|{*^@-jt663w`(Plj(v=TuJ$+nCu4jtN$c+SU%=4X6oMPlb2I z#m;kL)<<`z5bqzm)_UoT-8y-`;yky55#}E>_8#;l(_(hfSom7bU<{S6~ z5D@SI!~o%14pdj)FI|n(wO2D7oe}evYOVLL+Mc~P-6^W$b$Nj$&h1^!W4tLV?HH_^ z3VDCFz2#P5-_V{Bz8$JYOB#JOV>+yM%12|;fWRfi`C=(PLF-J1jz^*w?Y zdO0gYmTNh6M=;%itoCFogIj7@w}v_0!Or(|Dnp-ZdACMDUw&Zi33&&_+)Cgh%M9*laZ0aFiDnvgX&*&K8vGGQ96yAvKn@xnM<{3fOTe)9 zS7=u)Ty~$VJ9Nq}ICij+J>*os6FWfYF6Kr^RV_^O0PG5kmp&i1U!XmB^ne6AjM)yh zwqJxjM0Kx9D*)Rr>V|)ZJ>1m*kUMzH4g|N!ATg9#`fDX(gsFgPnu-C7hK*{dzA02}F)0L~|mTk{AnMn*g2PGvaH~1?Esu#Z}B9%?gAz zCB$n2V~q)l=4eH8wvq)riLzc4flmsgmnGDk{HxBf!*c|fVxbhF(eku7MYqn8cPH$J z^AMD|3C#YGr^qO?7U|+<=7?EEW6sgxr`$4mP|k6ZCx|jd6U}XS>SvoFU_kp`gbn@z@!If9-A*1tSxFo z=_n*5Yo6LyHI+m)uPq}G0EnKE<5UH<*HRd(Lh7nzFhub{jnQn8dl%W09P6lPA5mQ2`H{FGb~THEN(9| zuuRu1b`{TZ>Efo_rn(_@57t!>A5Q2T({&IZCfQQ9OHVWWV{w)SonTSl8BDs~v%CGE zmxjo+D9toK39V!~F5Tu~j+-`e6y{->op#JRC%S5m)tF?1qP3{nuxNv|zSP`sX;XQr zzi%zJJ_g$~U>%TUVYd3{n$u-xkZzJZp>H2L0%_m52Easu$!<_E~ z?%6l5wR^j~y`DZg!mO>i+U1$&{h}dE`@&GH97GtTFCd(7h3d&!#?VgUBHwSNgF&_u zp_UC8hBIwsOU6+8C@pPp7TM@J{dZcA{^tX4&NZfS{crsQo1+X6(vgF7z|SfQhTx-C z4g=Y=`J+eNyz~CbMMQ>V4-<+ubE+q^#8`Y_n>n=`q(ME~rdwvgI)+u=e|n z{GFhk}OFJ&NEwkbLN)W?H3^u7$xf2nlWePyT;gpDzCmtVv3~m09w@tr<3hHnQF2P#ULm`@ z=^Qe(u;~J~sq{S8^~v=Sj57Yg_1W>^_3{1z_7VCq^o8hK_6L14(syLZ9SrFfPP)Hi1@zj0acczG+t22fpm{)S1sBf<%sZg$1(|D)=^|*lj;Xts z**i?<2E}z~IW^kXfK36GNf_QV{BA`@eMRWU6EaF|3jYNS@Dl<`T}^4wC$NEUA3Ohx zeQqqf_zQ#73cETvHX$}PB{M7%Ei4+S*e`u-imhHY5fg8zpq+I>zw2M}-fGHy&%!F+ zdddR|`JBn=-7Bq+}j`o$i`(L-!RF- zLD?mk2gmXeWD$1RRhWk@2m$#}<6gpkAZU@y z>*HR8TC@MS-^Hi)6N&{2B|r-&fQ#-GB=`3w4;HaUPVQB!MIP73zz#jM2UP9dHX!ka zso24*1(ogBWCuClVXh2iy1~e#VPiQVw)S(XMWF3Hw%>}bCAuW%T8pkTYU3sXQZtSK zQQMJZj&U^SJ^X%vbPiB+RHck zg6y)0a80Pg9FNSNuw{>RBR-*(g>0UJQ|x&)G4?=(R$17 z&O6^ocz3kBn(k`Fd)@_ju*2=MyU+NbjX7|8q4A0NlIoeWdCRh$wR?ctG%(#;(~iJ$ zVt3nl${fSs4g$L;_sK!=aynpJ+0}P#W27liX$)AJanzKdvY-)jK#JZq#h#SmNY0oi zpv*JmlngCPjGkfmiXFK{&+f&$b;q4RI_2dl4t+?(ok8*xo?e-b2eNhoe`iljo-x!E zer;S>o?jkW?pt164&3L6-)9fdk_WiV1!~NJeQST2^VVrYayw|w>@VAhuAW0_mrn8C z^giu|#+@2)hle}3+6WAFMBOaRIVF38`#d?nns{*88~Xr|+nePM_Q}O^PWj69>W=PK z*3e^(g)t$*pv9U1$Dk-MZj6kps}HlLgfh-!5oK){)!?Cok~&X%Tzi{;gBllrPXvR) zKhcv1fCp9%lH~8*0fO+U74Qeb)J~&TGS*s^ZBD^4F25k>8k=H-q1DtfMq5=Wp0H&U zG9ADAzT;&Py6SS#UY@SAU40AKd>)XKT_@e5Oo9&P~op&O**hE^}C_om7Ha?%gC#qbjwa*d$G(MztX6 zBAisJ=%QSuSh0xNq*|qhwIKQ!yq4cwZe!U&DKB!C%UK9pVdx@lqj;{I$C*3My*lC< zkGDAS;5vQB*rkZ(o}DvO;Sy)&U8Y;!;?a+{T;ZHo;uEHu-{L8|?NHOf=b^goV%N&{ zh|&_@U6yk;VJq_4;FDj|R%v&7tPAn-VDs5u;b&h1g6TmsvtkwKnf>Qf7opH|yd;et z=@=r%0yBLn`=(1eNaCsS+Mr)1-t2=^?sf7{&nbqUX>{6vY0Ih|92TIi%>=e%zxfa^axLIq|v3M6EwAFnxx$FZJu_xj+oY%Ha&Yhw;X#Ww>h3YT$dc@9`i@%Y=J|W zL%D2{?89+B<(fOZ#jr2iV6!T+Lyt8ld5(fikrK9})hmu5pX)}m(BshE5!uJzEZf zYyKQ}{}NPWnLn@gzZ?lak>Jt5BaYGZ-lG@nQlrwp+D%#osu~1 zqXI=*82of?3LeTH*f@s(CZTuK^}doEd6D@Yow?qHQ}VPG>5SE~O6v=D<(FqI3$Tmw zTq+5r=5(_!vg19PCq9}ILajOZHjN3odC#R8tO1_MPxAd@%S-a5I68iOCSQ7{*dJ zS3qufje9eD4?#;p%)iV)c%)-yC^rIg)lAuGwP;_&%vr8j8k3i13mUUojkhX5>T%;; z0`vlp89cF*URikvN-vfLS?AnNB$RDZS!a*195bAh1Da=47hWyad~`h5iEY8I%uYJg z;kFBO8Z&(STyC*1(*k_-cK8ar8sV%$CR_nl$;fGcrfub;ow8@;rU=vSkESQZS?j(D z!-B;HKK`;d${tbuQa!GJL^nLHBVmlI2KW-*`lXV_?Kl}V(^#qQvZKl>JvInCs6UH@ zps_)V@CP_OCkZQW)%#*>;eB_a(`!&uWIR_p!C!u^t!YM-Gzb*dc@nQ~& zH%4IOoIa%={1Gs@1rcRh!95}*uw_WVGwwS3aK57ZuZgv23BH0^bwyYXja;ub{F!uQS6)8(zaEAFij z_SEL!@kf2VO1!=80j&in2h^7=WR~=w^=|a-aw}ighZsEZKTI=^3kh&F+I8MHc_vbL z-aB9ZUnD=fcs8Fmy{7j%I;0C43c9MA4y)~`+Z#L#l=cI}*^#YN@lx5Iqu*+#U)L`6 zx-O|)8mz3!DLJG6wM?Y6!HpsZ4*jKE5-6LDVFSMy?15;1uhI4(qt!^g>7hKutf=&$& zi15qA5QeNr9qdybSpfQmxe>Ec7SA|*OP}J$j5`eI8Vmz5QzV6e=&ZXbas^aqtDYu1 z0*nT%qn2j{gJ?@39f{pyXF)IKS@($L;uM~Gy##ynjnVmgyW zdMVLBrGyK=y7#~+ZR2C1z$o3E(}rrS)`Q8HgPVpuZY|m$966O9)#vF&lQ`)`!Cpch zu(FJ2qwJ}5Pp>{}?zD_ZM#2nqW=5*U&ql|94SkV*?kH5uqBQAw&u7KaEXd{z?$+GP z`Q4M3o=#RN1m#&8BsdA|Qa&9+40i&VCe{L#ed0}QTB?0?@ZQljnS{3E;VxHdgtH06 z9XWI+c8Z8WM6E-{ZYmj^=haI;H>TIpjTw?&Ir9ZB7Qv&rco64VQcxuZ6;Jc7gc;$* zp+gEjooeY2J(c7H?byz``d?X%0^M+O)`cb&oy35oS4#=Xq%t%U04$WeQW%a1=U83P ziCD)_BUw|&(qb`;FctW7S)(1l_x3ewEn=nr-bjoK6(19E4iEsGH#=Tje@H_*-+kQF zfYvHsl0m`GIu=;Te{5Jz~D<1F9DzNa4=xHzdWpV1w6nIK$@#VV@Nh)&BFRkkMhVedCx=>S4CtPKl; zGH^rHE4%Q|l&SIvoAvho=lDc%i9+GCqA*mHj4+fxViJ}XQWsMane5G0D-wxo z4w*0*EzDG`jZ(3wmup}E!;qCHAuwL#tokSNh4qJnl5D`BdA;P`poZXkJI90cVvtW zNOlbxDwnS|8hG;FX{>CX-&LNSSqYaif$VIf5-8(7hjN<*PZ7ew-=918SE`bS4>Jc- zR;GUm1utuoqy>D`4B2%5cc@vCBK?JCvj_H{<-e05h7dZHi<=z5Wa@7joDn6XB8sJD&W*4epkYARVGxHNGZHPwa)&IH z915^SSSv|Xl7M1rIPL()!zUeW2@|?Hq93vZPu9&^AyWXGweVxUCR2Db4E<5`20U+vOdd@)rj*Bi#f7TCuYjYZK zJIC9fv#A^F`R*a1k6o8F^CvI8lm-$2RF1sME14m@u9>(9C@}owamvm;;F)uJqldwm%?7gu^w+7^V$~ig7@+{lFrOG za+eQwt@9^P?9QIHXK9e;^#gDM5@1{KlaPDOl3+GUrW<=aj zAsXmB7XMHrj1+iEUJr+tJ3L=*#;-NK?Dd~lFR`Sp>asTwU)2R@(XzCer`K6thl8W@ zBc6br%ahfkv$=c=$%~{upR06wfA*>pc8xoZ)QtM%wI7Y0R{K(XeNXo~rhiV3V%Qde z0O;Bg4(bMQ*8=GfxYG>R!)j`P(X2@|{(%#qI?qk2VvwBOS4gl#^pLL%3C@4$^tVHQ zN%n^s*wh}_i+84m+RXO?L|K9)rc0#thTEA?s2*hv*8vs^q`cAa^Fo3uA#wCxjgM{% z3m}1F{t*HakCe@=;;3)@puBdX;`!FD}N*HjnC?2};E-ClFihdVf- zH3OT(3a~@zN^X+%plym|MKka`a2NBe!z7`kHW0oljoOyhfX#P2WNtBL8jUuI4AqL_ zdX(AF{JI)F0%oFFNe9qhZ8WzN4%7AlqY)i)UG5+2J)Z&wH=%aFuRB&ce6$qU;SS36 zUeW`$cCr&nrk%T=#%f5V>?*q)Z-QU@Qd78!NR|6e=%W*Ba(bNi#lR3DKCIhOu<^ki zxm&A;BZWCBleapb&!(@{OpQFXs4wYbv4Yp)gz%8$sL?pj zM+S+ic=tH)ZZl)tr^L9ABlnQ`8n;N?IDIP=!JMoR5ZtgJ$XQd!9VU1Ee3&l<{_LW&TF08 zkd4v*W)Zek1~1C5GZrsZ6R;#jMiV?WccLVwCrW(4AL`ZUwNdz9seR36d^HfF+%w&Z zLl=*Mh3Qwkj9ii(e7@9eIRzs7}t|LaDdA$UPL= z;(bj?M4MU^x58k1aiQ+lz>oCH<+~`&RhM;ZV6(3tXEiHprDF_Uw)Yj@Xgjjz>D#b< zs|(_hy0A-jb~Ze&Xb4h>wi#e@Q~q441rSAXibg7EO;rmt6pIYxs)Y8kv+~bUNqpk( zD_ywq=+8Z|cO%3MRv9Ekc~Tp`=2;fw?f0zx!Hc_N?Dv<>oP*<^TgN|fAD+?nArom; z6byb)+Nm@tn)4>NSnHe@IA_8Je+g}9UzuVm$Ji8ac20;C6U~YPcY#19?mk5An#$$I z8BK9;fj&KCGu#0n)LJq;sMu9s&Ro~isI>PTF+5|<(sl3*&~rwJjd zQop(rAW3YV^#HLb0dG!A!kkN=lkaM$eBDw>-+lCA!zk%Ygb+oZxw$RlN|l+0Ezs3j zkh-JP(zSkd7HE=?;%uWtTNuCWqHe0tv2;;eWzuG-)j-fzm0=e8Hb7cd<2Ir;dSdt; z@R+q;d#I$juWmxcyBZc&xAIJRQDm{+^&$C&k!8NR{k`?;&k8XQ510FuS<**Ynl4)? z@QS`f)O1pd8tA~-*gjcKj`SmLPqSDy#^wGaw8%L}vJ^5EPuguG8HdZ>L0B2`Ykvb@ zs!aQbK;BTOH7}Mm42#?M`o$4XE+rtZ?=>shnOC*pyx9#NK5ccwnPO}BNK$9A+zSG4-_NSioA{Wg;3Y1?W!(kVubn5MxTM%y^k2>mPZr${ z6h&o7?FXMDjfmI<-;pqk$@@*GMs7d?#K$z2M!pNQ6e*pa3pzD2KDiA#ag;|sBT7{~2K3kJE>k)? zJtvt}5_d1uUCX4dnQ15J?C*WI%i38+t6u|LT$7*;aRx>G4^F28c9&tD&!2m<0e0K& zU&=lDtmluW_g~s&MGx9O2hMFpiMZGCodh*~q?#f%WCw>v)1BSN)g463s_B%-3Nfhi zG2IK32$#Zq4p5$rK_TPFqvrFev&BpWd9d3IXK5&RIpGJ1IPheju{3!RjOPB<191tA z6r%kWGyR98cPJJbRT2DohLz<-oTVc7 z+~reDg6mmTSZAg8JtbJbHl^z@w<|O?6vXqhCc<#lD@30zbT=-C=fH zgNAl!ZYcidy){tb@e4&tuJCS4@KFvHO5TAd%B)vsF&tIE=q_ay(L;lnsh+E-ki1?1 zMzJsXOpHc(cfFLs{<^KJ{@Cc}^~hf#L4Qmv=)=79Dn8yA@>4vWkUchLvNAl)Sr_pN zT-kFWuh~lVy`P8bVwIDxy$K*XgK7j#=F4oWSA(4(0J;|W%@ZX5Q|y@#fuMe{rnddX zv5T0@L_n#&Hn@HVyS{grI+n>R!&@3&Sa66tPatb1SJs>};rsW8zl?Y8ph*Fukp$iS)!=#%OFLBu24GF;?UD_jE>ZlNmN7%j zw9ZL;R(_ZH>)NMcQL}`BTBF_7)$7Sd(irXc;VUZ0^%EditZlpxRfbUX2=q+22dbh{ zb)t*5+0$97<(SN_&*A7if$)mptw(~vMWPytp@|WAH!v=Qc9ftiz&YDAaij|L%_m{f z6po}kk5t#K82tTLerRtE=$R;h3x>+QUraG6;dfq)Bt-Hl{4jHoqAsFF%wJQx9hCdf zJ2>Ejygh@Rlk#rpcf3N3(n@;*h18X}^_k7`sQZ>k#ZDqhH*G1Fb6Fo*m5Nx-Xjnf; zMhAIox+AB55#!>6)PYy1^cyzFtFFx%Yge(BWe%r7ol%yP&4&WIK)dozI*nsY?&#J& z2r6sqS<_}^%ST^Hr)tQ`DKSr&6dxxl^|+Un*j;U|BJpu9-17eX(*EP`k1wJy+gq(x zye}J*(DW-Bbj$Kc*dMR8)^Yb@WE+<<`*lqB>ke+8Xrx_$L6fyRzxqs<;O$q-k9Uz2 zm_k6QphAjzWhFz21WO4bT1K82w3eopO6v_Z>{t^mX{$7x?9sJmgFnA)(8-dFVF}2# zWj<9@0vB}PfxLzrRYmMN7*0+zIGIt(h&&nWM}JeO8C zNSg{jlf6KvN}bfNF=FQ+eYWgpO@R(O(J_7MuqlHkN7>XpT13naA_Xn;kHM{;Zw&q{ z$MhP~p9pe&8f+PvQGxX^Z7%7v+#}*Q)!w3f(yr-A?3MT}OlqfFAF~j@U-y{QpI;D1Ef0z;?KOoI+(B}Ux*1IAPmD&Tx^~AmxH*WfBZK}T++%`w! z+A(RYV$}nC@zZ(~vK{FVpI-YTTw&cu+4tf`SZhXb_$VzCPv$DK>#?1sp_!iLOwa3V5cgsvdi#qm-4rrW zvPprALG!pgtZdL9_>yePG7C&C^0om+ck|)sdL355K$2xvd5kjYqg=DL;>V!|fofn< z-F<02a^e|ih?;6Wv0a!cCPoMPAX}D2x*LGA@9*l7sNTXIMIdFM+Kgv+noIz78Ri?C>_=@(v&on90R1#3Ke%Gs%7%D^5Q?xT)MKEA}o)S8S@_ zK}iDDz8z2Iv(O3iMzP*RH2Oo3&N6*@T+iikkENt@AGL^-U4;`(Nnke<&tG_YZq~}IPu_5(NB49GPr6z}8YU?sO z+I%|vn)I5}fAVu~()B3MU8iQto6x3N6tjD0h}|Cs)2OF5vIgJV;f|&BbfvpgvQ@qk zA+p_y{?uPKPf5(MwU*+26XbCv`-6B0^Xm2t{S*2irr2ZlcJD&Dl)kgft5L~+Fte5! zI)6(ji!J|(p&**?SEfxQwL)DKbZ;^@rQxzsIc76&@hHX{XipANzbScAEY>wN>A7la zE}yoB3M-+FYS4p-(#GIXItzf)Y~WrU?$`UoI^_&smbYJL6%Z1?H(~{r>+13kkzh$B zJWTeG3XI0F2u4Q9Hu>=|McBkWd9o-*R%DVVI!XR0L|;UbFXHcnp%x+yxcJTP)^I4n zqXF2#KvoRg{+ZV_sreBo^0R7S6*hP~h7+dLYN`DJuGX*YR_^}mv~VH zJ$&z16;U-koe$WN`}DYFc$->R>pz_xKTfh8w?7mjx284i=6pdO?D1O7AN_4a{Ox7% zwUMZCkimHa6eLv|K$z3}etfN7fL^ZxEftl$Kl%OX0SQWivjn&n=y-4OU#pmmOJkw2N8nP}6*xt2J5hBI05~GL|C`#pFo#OXmFNw*toLdssc6eCKmFx8pOaq1nbz zS8%}VC4hv}b*knFKM5QO(PmDlC`+UA+t1-LP$p@7bW(Jf1nS^hKvvQLVZU~cV46?=|-}%_aAWy1B4;}O9$*ROfzyGI{07?Lxx7v`dDoE^EOAMyV zNTeQfNOR5LG7aIi!1QALnx?@VSgWj~xe{3t9^ z?bB4Aoj%@{>pRst(^E^Cz*$h=4KxXvBe5k1;v{yMX|%arG(BHv*wun|ThgHVU{ijS zOODu+$W-E#iS(r|(rWf0-vfG3kXKXsk*0;E5w@;<`xwG1w8Vs}Lj86Jo5ptE zOO@^PQ>0M1+1=XG&!*7{T)KUGj&3uI=5tswyJyeplxB;u+UdTV$j@8xj)SAs=;40X zjCE_-YJ2;XEVusP+3v=mw$097rmG+N52VVaEhliQ=iboe9jU|KGDh9SI4gD-(bO~; zOHiBKR;E6Y_~=C7{q6%Zkly|Tks5mlL>K_NZ>CXdj*pF_z~}m9scstyqFHR_)*8!P zz^uXr!wDd^orYx=)BvmW?Cn!)PYo9#S3~6DLvv@qpQy)CrJBN~WWI*T&QoTrKAHxV z6^`yu#}WRi?yrlSfA%h(@=D|`nwqo%9M1KWI>b0#zoWXhn9|QP?j&RS8T!AWh~Day zW5uh7h|%hQ+@ZIH-jV-c&kUaE{xJtG>SHw?j{#gK+;YT{_2X{sW#tg_;03 zrx-&8nYzh`Z-T&cFt5;PHi&YK?`xE{{Bl=3G}0Z}{PTMo1!wN~8;GYvDOZ8$(>U0g zD7(##3)M{M$uR6U({nWXnMfsv0;iKgEr(SL)g8?Ub4buN+Bfbh5B?gQvkwG*Itd)c z*?E94pC5UJ1(DH!q7?}I6mGLNQupLRCXVz$0YK)IKP`fY9;n z88zHbS&rK?emRWDH_nnGl8_`x7AWKS|9GTKW%TKZ`Ttn^s-QT0FwWwCyg+e>0>$0k z-QC?Cid!jO7FgWfy|}wA6nA$iy14BE*Sm+Cd%2l=xXDAlOfpHH@@0~rG(7}IU0xxN zSQ7_?r~h3BlWK4fIX~T?N!+9BxFkd+b8HAuj{_D?WURY%3-ZipPM1q@eaVIK%fHL;*2<LG2S zg~ZXLsI(jwF7ayi8$NC3A0>nl5~6W^NL2_muT1|X>B6yO1dcB}v(YT{71VprTn6We zU&+l9Yvg=)x1k_moVlkmL4maVwz7N-US0P(Dqgk>@tB~pv?QI>40(S(E0oNCzhqV2 z(8mK&m}{B*#4(A&X;r7Tf%cS{_{QiQ+@Oh6;u~zE@)`HLXV6VQ0;vy>J*)t^BWFcz zeKTn)na}pYtes?J87%WEG>7QYM$vv2!NKn#fb;-0trgO-kf%IP@Ze7fkjXXFI1ejM z0)d>sCX6U-LQ)s)pAbrzw0an|f^u@w>(?c&hOcRQRjcDAL`tJtoJtFsLZc!UfL!li z>!R~9^5+@w*~5#?zuX|gC)>vE?z9|tdp^^yGyDNy;l6<0ouev7{^{h4c(s-0Dr9DI zW2j;=USYLCir_2Yb|T_#f)Om+dC_i=8^UK4dTt!X>DhN&>R?^x*VE#=k(}$WHeo=+ z3R~}(=iBagyLVi==W+MC2;0{q1k^Sm!?b>qw1nytB&9}%1Y0#hClkNyp>)FXbIMOD zHBQHrhao#53+FI)#(+v3NxVH?+K1ZyAmtv=U1b6&WQD zrLTd#e4Nqugz23dO}%xV)7>h_YUa?MhY`$~U%rLk9Y=Pj3LinC(GuUOZwxgiKM9~G zd#nfhULQ{lCBktC?z7qp`D|X%htTc|rv%skl^@lIsV_AV$vy*5d=eopfZHti3ezRg zV-}A~-fH*BYuBD}=TE$5J)W}S&|cebvRPp~*dO%FQcx?=MdY0P zBf7n>1CQ)8`I#y0i5wR>X_xLZ=V4RnY}nqlQx>2_L*|ADSO4q8Gr7kW<2uIy4$R5o zkVwIUPnf8Tuo?4?!VBzje8Xis9%q@p(x;~|Y{s1-26ph+qR=m%!woxDFl`@)nDE38 z^|*{5&;NlCwau{X#JAD+{jeV@Mx-1X8q#|bT0&nNtlIq796}--&&$b-$6jZm{=zyp zZv7Xpe&BO!h*Prw3QhpSLgCkS=Xf%yEfG?)2v!E#3WL#Unush{0Tp9G-~WRS{z4L~ zULr#vrm8nl(i}3ktpqxcmr@8lX$c>+U_ByQ|@!1mZ0LTJd2+PeyuSzVm zT*_jCb*_xva#PO;&p6m!C|t};4D5b(J`hO`^gd=GFP~}jjy|t|s`C)3-s2met#5Ca z1K?)X9kUZ&-yuDr=NIrZ2JZOZ;7E14Jipdt2O5y$h7YywD+x&Ts&A@t&v8E25ihL#Gi)aAr4Vm3TQ;ZCWmf~((K%~T~c&Sk;BOSw$X2BMn`hmx^RI(3x0B6{WWLRYY#Z}N_d z$(|%3w3eHHD%1rG$PM=vD&Qy9Eb0 z3o|{Q_11sBaIbz?Glde=7o9NW!8aICYTHX|ML@`^NlR6nMQiaYNIh6DeN`;#QMKbR z!a-tN#LeOqPfdXMKW~AX7O0QkvRD5D>(z&l@3==EI}V!a>jnST@a+NayryIX;~238 z6~}EoxqZ{FT1`dE{Od9x~AL z_}}lgUp47Gf09WM9BU1*dKv#xcd9pSU2i74k$X3pJU3-5guCUw6o9=_CWt?6i`lhP-OYxGpw37y>WEH1Ea1IKgaI6$yZH)nsJThb z@rQ6GPhb{JKIJidQs(4#OP=L^q&-7-!yGwd7_n2<8at5~^I)o-fIBFCzd-TBDC9)8 z!Z)zZow~WGKRg%$9bCvTd*6WN(V6GoWsKL^UhhD4%raNP*EoxhB1RkJv+qC3Zhp8+ z+HpP#<~jHG=ojdi;#DBwcKHLh@qTMIOxShlB77OFYVzUrkV_uiN z=VC#ZxG!eIWS1}<19nFqOT6}+zH|hButKJ=+enO!d>V@%$tG9gBDuCCA;BlYCr^eB za-;JUTwh{K3V&8~4R2Yjcr!Z=En8z1iW^nccGA>(Wk#2Rob=e`WtVI18FJ+!lHBDN zrAo9z>`HK`Sh(k7l$P^?^PY0UUB$-o&=!7s)M5{W7gV2-B2n^1NiSh?!)}cB=9* zx1z{~e>_0qldj~|m5iwcN}d(=R!hr{Z``D&^&2i5P8Zvh`;I#C?7dc5Ad2sASX!>j zBB@tD+gc9kL@Vh<#XGVjzzeqM9y{Z!lQ<^9tiv z9F#qA0vwS9*sIS0xPdbfSpIoEGl!Hb$?-SI91%SqnVy-@dWm_iomn934U5*YKkMZ~kAIZKa18T*=O9KCY@j-H5Lbr62zoU%YU$DdQ(r z#^MTr_O`u`GvPUrmIkVU_Lb~q3Jd=xu+Wy@I(B87O-mGcrWpVA`(IKfa3x`m>EU1P z^-O`wVuiNt<^C2TStjkpJu8B`6@Hld;_?jP=}Eu!48IepB~2o=6*{)En`rAFnsmZ3 z^6Ty{DK@e***X#)CcbksgU>cE)2ZtD{gSci#`MEfwSz~X?iq;{Q0ZdCrl~9 z&xq+l3^OlMM4dr5xUREL9=@85Aa+*1>p;57bm}k4z38hh}KtZEz z{}h}8pNqg7YhewNug#2-t_Ho3%c-@p z4~y6Xn9!-_?f3va_LW1od*OM-y7* z0n#pVjcb>QPQjL>3xwsh@uhd#!et^6{Fv;z zrH)?`s>bl+Fz-XwFAws0RpqGf=-CUTXxlX#oJ}uUb+S0G6jd_6&I%mN@uA-w#9jE$ zCQ=e>oixZEEtyZ2QpOg-F%52e#|eymF|Z%+6c|9;ss~O@R+9)wP=2Z02B<+cC0ZWz z(bt(4t6@Bo159#N!`>3wFGcWh$Uo(-8>^#Nukv-No~_*#RWM^dvlb;2o%(vS+OS>m zKNexKI}5(d5-$qV6IONgbJuS?>qWl@3})_`#)!I{^Jb*a{pg_?f+CYA#cZEZ7CQ+G zpyzKdjz*)5Ix6S;>%@Y>=oED%E*~&DG;!XAX{cwz{djnMfG^iwTG8hR&$cClTi@I` z-#m{gctZ3$rQGv+$z?S0)`MScPTVGT@DI_TuAX5N2LR4Qq20z-_xRVQoMMlJ4H)uS z@nFXp8zc|#lYaT}eC8zoB>$j$B+VE#l3Uui|C8tP4AFsO3EMlYWde0wwan6khmQTm z)ag-3WyKo_xnVAKLWX_Iw9*@|H)+rc(Z@}|G=ab77}{l>PKro@-iy25{8Cxs)@w(i47)E~otMK(D-affog{#%XcksNS_EEIr;p59U25a07+k&k zP0fcnjqw2&;r)jKKNwl^!a$J*aSF7>9RjvHR&b0xHmQ9n^QI{~>$|_Hdz0-mZ(8LZ zZ?L^dX+GW%@DVx}gbT9s6caEXtDD9>wIOm->EgIT`-i@@LM_R*SnC{04`hKOA)u9y31$Zpx z2P^v0$$I!8y$}lAkcGvw&m`~EC05$>9MZ-s>Km{;v6)WHvK`&@De7BrJS7Guy1#DZ zxR%z$-gZTQd%8z~dJ6Cg_EG=sXY;W_`*(kEy)p7=b8lQTo`UvXV`cgwFa zpWDwj_poiTd;fNSRNbX6-@Ne$Zu`3mx{V>X{0^}( z3rwkSR_jw+>ugO5M5@vUu1LmtADGp6=<3F@kXq#KeTZg5hAhd|R>^EsP}YO>vC@QioHbWFe#P zx%Q?5+rGISVS){p0-QD6ParvC*DM3hDo*9Nj#vS!^vNdGaXD__W94t4=veQZ7mDfwo8M4oYivP~csPSyvkkU+FdlW+2iIIntIn@eRd zVze&FB12Y$9rl-YE85Dc|CH2Rygmbf(H6e z-c~pU4Xng#B$qA4r9snDJcYP|GSu0{iKIETRB_|Aya%#=9KiR9Xn`Tr9L4GCrhI6y zD7G*Z%$(<}ASFy-G|$)SG;g~JjB!DKvD1BN8XeXq6>aG|^;Ft;{q~>4wQE7ILpW$j zpUBygnuFSas1GO=Xtc2u^MNw>!SxpY;-F)hv_cuRT1_c4y&KFF9(6F!&z!p?)u*C( z!tD`I%c<<&dDwi0E6?pu*c|1i>iHpt=a*A1lG3n^B7d;Wj6nA*|7o#9s2N!qB(l4TsE_4fQS z0qUXWfX}nBgGlU*3y3Ves_6G*eLXUv>zizzf&39#F+GgGO&DZJ-CGeXe^Y29_TJnT zEjPJ!{3}XCCCu#-pQ(Fn3}$t&hGs>+^FnQhL>!NvyEaKOx6@phl*`8EVOd*OSYvy@ ztTD<9mg*nvA2nCiEjdGv>@SLcd9qHr6I;$29H29TrDxIpqSSz*uNH-HwiMAGX-d`LnIlbGx~;K?-w+3$0YrRf7!em7osvH zwkUT|K_~G_otFST@xJnwe8RM%XJln_2QGQ6`p1Oj%fk>FVbIl zFOiIEJm2*XmGY21gwcN7TsK!0w%Q|*N}}U-_rkOI8xZ>@QIvP4@1N^n(2<) z=rG#o;#*Fx zR*T#Kf@=t1aeyPz*O60v$~S5+^;9JYV~|tmDFA)FPT)@KYo}nMFOrIScUoaa}tHxFmGV)Nt`;= zHx4X{Lj!5z8Ish8I~Ni0CSYxaKD<2dMHsDrpP^!EXsRT4^%(v;c8#wRN`K*;j~Vbz zd}-qayXnz(t(fcfYVn7lo-096PtUu*YP-}1t}Mpj`?li0kKDr9a+rD5}wZ|`8M)G$M0ENsIWB7Ow{(1J7FHo%-f)oI$>@6eX}R2{%L}r#b@xV zD^RIaB)7s*D=t&_D``&Ki^zdBb+?_xTbo3VSJ7|&;!uNASMvVR&A&n3iXpb_-sq{Y zu0OxD_Z{{G)2(egdnBiaky3w^eIv;B!{`3I;r*F$noV^Kz;(!9>76j{wts+Ag=86p z9@J2ry*|tt%h#IW`}FHe_9ly}e}>+tGepAUcp%xuN8m|g;W{aG4_BIr5Ar$UWG+)$ zOy*Ke99e+c*5{RSMDn{GegB}i%%&Wpd%p{PYF6U!H5-KcffH++S^d`c3(xhxu7k9A z36DuaId9v$h;FS4Jtgow;+esCPI}CDd?&)s32P1v-ifC^KiZp3kxIBj8%Pc})DW;g z5JEy>syJId@8-`4>V~n_h%E~yTXBnI{Bxx>YC%`1{gP+gke|4BCdxrOv4T222jTGP z=1m6kiTRJ9@a<6F4CP&HNe7nampF=E{FaQY2!J(BRdj8UEvtx|kL~EWCo*yML%R>o z^=_N6KVi5TO=?S&cF1`sB%%Xt$K4J2aye7eB1W1Vut}wV2vzSi z(<~+W`f_Fy_`MOJOM251RWjTW23|@BV~acM5dRYB|??k2 zwCfn(qEDSh8VFteZ~7iD^THa-bausdGeGmWD`ZzNA-(R|kNX4iAGiekf##D0mD-{w zY?!f5%Vucm*>S_0^J(p;)J)Gi?1FMZN8k0%?eshiqMqM5OJ=u8t;)NZTq_P52SiwK ziPi&vs^>SY1$iWdd4-N!`{m=q&?#gu3!8&pVfH<;ReX5=ge{WulpZCWVXqbpQ5X0Z zBq;GbaqSAqcpqW_8S={a#|0I12;!TQ)i5LF=xAW^2jjDdmDHt7vs&zTp0CILuI~xM zIZTxG43wgksN&@jfj@&r1M0n^M%ZKye_^J-V9Yl<#W{`v!zAnAmD&Bfc3b2ITkfL^ z<-bS?;SAV!rR5Jd0;`um*zGb9PCiUlS!ntr2TWa+0NnM*RmW2gk}`tjDy20l#6p8A zG`#e`a2kMA+HZu<779Pa?5vZEND*y}#Qx#a{=qrZ#lkpS!}Qeb^urtZBJjTH6bKgYhCa)Q{|EGDdYImmI!JB46<<4jN*?ni9AAgvUlgBu+;c%l8Bm zgJ~_#=$O_V4xhc^9CAF8-4Y#2hxG(#&@|Gm^%Oa zh4`EkTf{Oa)p^S^1iPE;)*MPHu!@Y9^Rr?HoG5aV!c`vu-f(&u(}R=}j~~N^xg>9N z6UO_m#r99uIao;Orox)6jQ+A&R{>B(#$MlCm~XQ6pZg1kF&i9;A^g@2>(OAqqN7|x z%O~`ix`q0^&mw2?!Q_(DY!z@VeNCL1Du z#}_q;fGry+pkk?<#6_n{TP34GVDS-%?=c;LaYOvxm$@#(k|-{;5TW-AD)~|V*k}T; zD)QQPKO;ClW-_MlDk*X`Fo^TH9531R%epGCn8{Q0!NMv?l;>$dF|vyJ3b__jr8}KC z&RyeMmxjz4`xT@H|2S|6^u>D}tJ+I^RQ>O~c#Jq^XSGezDbw9;;(!VfqzB;Ak{IO` zIJUN|Wf?<_FDFWhIv>Ji%cXOkF-KbhhaR}?bG33v)zbp#wKb!$oiRG(?a4uyXLOqro))T( zHa9%?>*+wL$y~jXSy<{bEpq*%#h?e3N>%$CC`tenGAvye~ZR;ne}*8Fqh$!OuUqE!tWi{!a6Ei}iVQr6Yz7 ztrbROf)sXjvQc=oEr@oRe4l#EUKIYBjTiYfn;(R|c@vz^A*@V;4}ygG|dcMfbkpXwWYAEyC9y$I({@yY*Mor7eR7+gH<>ohANk1{jHLU$nQ-$l3N z^7P+hVVb9k1ES$g+V7J>w#R4c?dSAGzlCSI8H{tIKYy~nLmZpQcjL&5dm6s~mi?V> zxzG1H<#aGba#ZVFv=d@Y)v;=Ixj-%t1M|&<_NNKf%Wa9C1vo7J3OS zgk@Bgr9&P3bISllAYtSxg2;l=LEhY|Z~Gmm;f45m03X_8M_zF|#~%{USI+N=A&H+R zFSkJ!fX4Mi;AmP_e^u`6h354p+PZPRvGPY#vpN6d{a4H7viFAlm`|&&>KNviq0a%_ zJY+i+Zy0wq7EoGeurKF2=5W)o9jT_>Y_dg0-DTglC}g8%P9*Nl$}qlWu3||9-kt2P zMZ7`S^gR$JUQUTmJ1IvvsRB>lVoD%MtEtc~`}@>Yv?wAplrQ^8?7E6XEhJT5hsCwL z{2uj4u1Gj5poq+Ei|PUG63Mz%$u0I`J=9bp&DgM2Qs5%A_BRm+T6S*!ADHS0v}UqY z{i-&=@YrQ_CTnbNLQEem$kQed>pqB_EFzN)Nk?YJ@*&lyR(kV^Kp#7Uxld-gl&s5T z$n+35!Jx4pMQvr#7W1Z2$CBA2mTFb-sN4ANOAI{*A-T5x&Er;qHo59OGva+A{9+7f+) zi+Zu`u+Yz#VY_s*Fhqo%1CnZ(24b3jks4-ku?tcOcMyp(+}*c*>T)84fk?<~r2q6< z>|8;iTz}#8**@7wsuEx(5DJLX-bZ}@TibWplSFW1_PSB;D60L49*FwEv2$qef<7@a zD(bi+07{v%?~~HUTptjV`*h2m4jqp}xXf>6|feZBvB=}5580CYkl{v2k@T%eLnD^o&Ia`-gN<+^Qh>P zM7S^wdUQY#mVVc<-9sCTlyf!j>N-~4}LomfbS&{%A)0}>6`5(4$ zcU#470>6iQTxfhB-rT;qEx%E?$v9cWIr;LqjlR+4>}t|yn7`}yXgIZsR2>tvTItYluOYm;v8KuW1D(`sCXhz|Y4TelglZ=x`zm?o z*}9^~N(+~6m{couvkJ#x0IL0Uv(MwFm!E9vT#v_~Dn}jm&o~-xA_$)V{?yVfyyhu> zL=Wy;C)^nc`&_Q?>GbD+SIU^(&?@twpO=-e3{4K<0-mDU{qK)DRh@M>Qb>#(8XAn$ zizyFRFb|ZDTd0DrLyu=P8Iy0?5`Pl|r~`jB`6vJLZ!**>Mtl_v6&#PX7*vLpy$&re z;`6{^Jbqj?BnTk}oyw#ab9%_!dH7xMdF0xSa?BW4`~uhiVx`0U(@w0Sc#pYg@Uc-h z(vI}T{k_uvRqums=kD)H%zIh0$iA?a*vCo3azS6rcW~^-oC!<6zLqYDXxGzK@J_k` z3T#n4408Pscq-&uITU!?Nkb@>oYx(Nm=zQe%n~up!3%fVE7a zFT#b)0!nrMG>b2+|KwD|-I%2sq7H!cbv>bGUq{HpZe{M|c+Lo)Y<2~Z2e^_SK7YF9 znLVF7d0`$7jl!jOCcqzDmcXC3&n51IBPH2U0PLZc(Q62Vv6~LxSc&J!)UfvdmfcfX z6V&Ui?5jv-i(B3RanFjK`=QnH;!*9m|M+N*!SN4BGK~oS!~p}|T~04j?H92<08Ed? zE)-S>@TqoM_7JDG|5zPDhd2>b|>v;3>x9qrboBVl` znM8G?K(W_uK7>SX`z&N-`U5`TT&@GtVj8LxOs!)JCQU3fQ;$Xt6~TRQDdTI_mt;5l z@fi1z$RJu4{YjrfIJ~dsj*$?hE&po^X+8xvgXvEOux3hVF2(1;KBZG@mI>p|4c4#D zkD)}nNXS*)s+4cuKgIt0FpKBFKVsRs#K*oQdR_Bt^H_nOls{nmm-pj(5|4jHqiDs>71=~cfFt1AaN#UxQHoF; z4f8C$g7fpXcAo1+)2XzVOvIw16mz227b95R{u6~UWtnG+{K!B8t1vD$ax8DSt=o+}PT0vBQF=fKo&Dt32+74{v;H+nr*+_=@*_T-<^5HkcvGvNF?8f{} zTe9nY@xD}SN{WXk?d`%WZL<#tA&S71tDF4iUnwB3O=L zTqptb(TeSxAD%=~ z{kgSURU8mdb*ppuMgm3X&31o+%j=zWq_F*=@yvp#5%T%bKz1Uahz`~R!>JS_Fkez} z%?G}8n|S6j`UsHb?1 zyoUqw+yjFec5&4(i250JkqEzlAt)Zq&w8n)Ca@|$jH5#atkZ8|Nlf4T8X{ZuW7bU= zwQY46&h4knrI(9^7Ji+4G?o!F*2s_QIP&CMD(_a;#Jnyn|99EV9mZoQa``K@2A6kb zVf+}g`6OF(u9cg2o`un*XsVTL&PM;B1sw#5Pc8Y_Qm{Zf{1z0)kRY9{z07onHWD=$ zKo*1<+GN|7VB2oDUp~w}8AeI~5ds{1256?KNBFEeDIduGr2xwyO~FpGOJ5re{Bq4f z(krZx7S;IqyF=>2n(8iS67zxl0Wb{h@hEo6_%`EnJ5CZPc-+`!6eA=pHE-HN2uGD- z0%x#g8D@*#`hMI+zTviD%;39X-{ILl^DZ@|Cz`g|M-DH%`0<&`(zTZi4qFUv!WQP8 zeVGziyWeQ+9!7G(M;O-B|4_!`z6E;WbyfcuHSbpM;&u8eEf0X$iS{AFAKm=<)XARp zcwMSBmTlK(U(wm4HD<=SP&o~f3=-D9_FMcDJ?t-=!=4dIxFhX^xjx7m%LygH-S8u> z0If>$gY+rSoj3Fk1z}8lplhBWza*5nfZu(rKPC&5lxOkSlmc{f7EVwUAvlkbQ(q#V zvaOEQ`4dY2{hE6C(OWT16w{}_%`aES4OL-uE{iQ4b8O@}LPpkK9cUIxlpR0!9XD98 z8p^+w81G1g&B<^#RYcFIy@Y0NVdoc{svSu$#;J}%g0ivWDz)lVvD2+5tVd)>qLSUiR~ zTRvX2Y?d~?Kw z^2Q2$J8rsW>7oqnfb$R>?Md-aW_`H5FUKA#z|I2*U&6oMvYhP{qBIRQ-0;p#V;h9M z6%F!9W{#TOhhV>m-7(y+RqTjk5v-s}QKL+#VHU@pR;zJd$k&eQG^=gw(6Q;zKQd>8eY z!@E-1oteBm#niKw%AixtS)QPJSJOssXh=yuSnky}SX}?*X1qtHvimJR2j(T8*=8*f zt-Hz@k=fo9kyX^6u<=H8<~P@bc+5XrWx4hIy@8K6KtZ1?wM$}PCZ|Kl1|X9mQSK}D z|LXq#RDJLmROTdBYHFuV>yW0Zdg)p&;VL}ja6SJ}@R8Ln>kJjq{5G+&^>#00%&o2% z;9M&Bs`FJ?+Pcgr^Iq%LF*#2r*m!vp|l!Ec^LvpPlnK)aCWpL~Y)H$wz1tq5&^M)Cflt^}So7I;Bbm`A^u zp&*e8x9CGgTf?-rs<tw5g4d=nY?TOq8^FM8 z@jRaPZ(zeRq_QY@qbq8bF0Xtv07C{>vnxwx)1>d|%lbAo7)NEh@}@4SVD5)cpKs?> zGtb$>S38~A0Efue^X^_0?%3%=5z-CAmA}F(_S^n{vdt?IJIf#`VcX^MdH;FFt&rbs zS1Q{MYzTUgU-{;!m@iBa2uEOpU7Wxw7t4_AfO3zWklC)XfHQyayTf|UQ?aOUi;1B4 z%Ba(mGnd*%5NE4T=TB{$z`b_*vOx@~p$0eQ&6M!sM7KrqwxKwLvTt8FQoWsxg=`pV zGjN?7e&ZTTi?(?@4Wj54L#s!w)8=Rdfxu3*xJ=Ng6AWIWxQ! z%H`5O@FEU|`kyhQu5f3~OR*iBlvhp1XU>X(HF4szEV=}&kf4;w-BeS^3)0F=Injtr z2V`w)~_-1-P0VnO;t)Aq`!$Qm$`77m@K)q3%8OSsAKGwD&RBmee5&2J-FYH`%_6?z}peDA$!7VBGJXOl%s^tMYW(F1EA?52;QA|1M4`FnF_zRyM9Eo0P&5Th5L zVXYeZ9e5OwQiRYO*ZXi!L%6#EJQU#`X)|QLzoZh8*vve{*!SM&+1J^}+qc;_*eBY* z9Nt)zNIlyqrq!tWMqi6pQd8no{9Wy#Iaw#yzDK7g=zI}P0f=30qmPI2qgMKv=?aSSRAAtu!p`NE|3<;9Y_xx z2g(C2DRC%qC=MtOC?bFjKv)m~$PV-kBnSEr<%c3|jdIKofkQHSCl zl>ESVU@*{04zGl@1ha&<1iyr?1gS)@g!n7YJnlTgJmEZY63pp;@=+z?0%97J^qObW2%c33y6AJQ$)Au}i&$V*W#i6L$h){VmdpC7_4#~}?U76=E#r1L%iiWqz5Gf=_nE;A0^4cgizLy)=<~r*3j1w){y<+8{ryB8_^qa8xa}_8 z4k%h9T1?5xlioO5WL3WD-@&alDcO-+6UYHMgfvG@K$zX&RnnQeGzGN`s z3;m%1NR?tmEEw$t>o5vPF4l|LL3Aq&@}b-bH9~mdIaC0(QS5{V!rgj-Rwzs(j9~O( zUQpnz6J*wk)gSFrgo*y&!s5@1qC^h~GH=D|A9nv=!~ea7OFJz=qNRA5mSXk)GyI#B zZKQwMwK<+I^25P~t`F0kzm3J~wj7&fZ+Qd|n*(JDN9||P$tPE+V@qHw?h93u1G zF%FzYu}ysb5yh->2KaK_i4L?zEk>zEC1h|dVTzO3^Vt*F)7hic2fo=(+NALFH~rT{ zP^zLrxc6mrTxHs6P>HTQhb>Hf@Y`_%m5C4bfs_evt~>03ZytXfdulrQSjJ$+WX3RG z8gDizqrVGa3$XlhYhy`>(Cva|$z}P)@~b7hC7&gMt8fZ?_!G$_!7yKB8ySeL+vO8= ze&QI&`jG8a@a^RDD|=(^yCbv##y@qLk3IL7l z93*F3!vA)RCBXM~jH5wFzj=C)X7dg6mF+;%_1F6kLonyIW%nOTu-m!ws3Cxt(3NjZ zJA5Vg0wG*-(?9Np;eaBcXRtP%kd@u!umKK$-+t#e>ItwVoViXZ?|AsqmUp;}0~jNO z_+7A%7H@VWG^95~HDs4x>@TZ~QmZUm3}VnZVwnqC68pGVJDEG#IPKG8a+2*&BN1Y< zUD*$?jd?Uo#eW00+oERZab%#kb$VxF#vPr*zDPl*UJXRmr2xHjtI ztX#}pEMLrDEDm!CUT{4+uGKXO6|9x5v^uof@i_9>U#)DGuT`uSB-gI!FWWDlwQy%G zWoc)nzV@RCcj-16H7V6IFX^Y*;hncgXGLToWW8kh`JV{;d$%34Oc_n(X7PKQeadu3 zLQK-n%Jeq-FS9Vy1&K++9BCC`okiN7sI-)FexP~ZF`gywU67%)I0l|ongy&#aa(6; zd7#E0sGhI*=by0m2Pn%9EKP^11JGFsGmQ-J=Lc>{FMQ>IFR~~1+ z<~oPq%*(ru&uzLuUP3~@FE(LhJqi%CzG=$;`?jUCcZ8HD^0fB-Y;M&YDoLd+8DHMC zDZd4GH7_<9I-A0DNP9M2Dnggq<#C#WF6B`-(p6oWgCa^gOuEE9doCT7>J|jE*LsKX z9UUOpj&}xA+^@bkZ^&`n`T}c9Suz4^+F6lVh*__#tT*M~OUv@6{UWCQI#hIYZP~fK z?mO1A46>Azm6aneFBKhDx2cj`0w9T8%3=pAMrHC#NP(|EbdiL!zQh?O*Z6eaPk$xt z*3vZgj48|7*4GBt6osk8Nm3J0Yn>9>(L#?1t=>=Rc|LZZeV~!1gpi1a{2QF$VN5_s z0=WH=`Q*eMV`tZKv~Muo2=eo8=7vyYgpQu(c#K|hD&d+^q#pvvEw#NS+dhJlzVd7j zX8R5a4+d^+O$NsGo{`!2?z@=v0@C?{=W?xke=PXsozJj8)&!)yppB_|Lcffuc1C5Z zwnt?qbVX$)bSO^B`aNPD2M}OVYWe+oLUPBZOB%}@OQt?e%2O-#p5)xcZ)&&Ay`LiPU-k<20n>rnGfjE_k&1I{HyL_(~!9B&$RyI1ptlQB(!THB?f-Ze*VuuB@R7Ww(Lb;K4j8-3~ z7I~Sp0eM+{jKnh9()+KDV<3}*cFb$BwfYIBdW>|bvsRYOh`ChHT&KFNM<#BAf+g0U z=I)ELxM@==Vcm$6pM$P2S6(Hq2Mws8%kqoaDoQGmwCJD4a0#hStf zY)84@t3)J>t%wLn25>*$YJ&%Qb<}I>m+18D9^!Eg5C#IP@t>a1j`ekzX3nrKY`hY@ znmXYX92wK-~j^Yfq4ZIxrdtxwwhOw#^Rto23nT3;0 znJ1jp1erIJnwisDs>)4e#ffy1>)*$L?1T#(cs6{(+$t+>;SO95B#$NeDx%53EIkv} zh4(Tm;c;B923uUV6gOM*0w)oyTwS%T`gf>1OG?!%6c@puNy&vpId`MvJiMwY!(tgYzXbcHH`*@?lhrmH0rUB?_a>3OKV@$=X>^Pik zq_`Q8mEXp`D2;wq8Ya#7aT8sHR!R`nKoB-Z5Rpg_x@cqM<~{rN!xlbpxRD8!~BmZ+B4!L$9dhbb(G`5De{ z2k9+p>x#~|cj^g7Ug=cj*aMe+SMxYU+xHzjycvnrH{CBf6e5;PHxa zvvBWmf2Rkc2igTfmT`~wzghg|+I zXVf-z)L$mVZDK?Nfrs89y@6V&_F6a|lzv2;VX)=jmCODU%Ym;BMC?Xji^c?tMhI%g z7-~ik7lV%U{Yvz`M)ZBc^gZ6={d_HWZib8(1Nh_YVcM$Dr}`S7eJ@yx-8COU_kapN z!*{st_uV^#6~$|2a`t%|lQlpu)%S9L`!_VjB7BwXjjRyZfL~Die+t@c?Em2H zb^lid%YQ0(c>(`#uzAk^4wu)7o3aaFf*-o%4T?U`h0SHCKo!=qjO9Fw7JvN4%1kf| zt(XI~>Dw#5(I6@MV(6ER#zP8FD72J7zN}Kmh?;H?=fQtzSB6&aXrzomIZ}&+o2hDB zh3pG2x5TcclbeIGgx%?f3Z9Xx@mzezSo-DegsW?9SMxGn&K7cFch2EzAr4J4CTP4H zsb}@7Reb2=^sXNb4yP!s4#Gg}3Hx zwWNCW*%?QipAX(R^^2d19>gMr<7hMHY__UwhK_b_R1`=AiG)_os!7B@{`GP%&XvR+n5sCK=@70@WRjf>RQ~!zPJ1U@PuOUjmSOsiY*Ja_C%ZN)7pE=@ z3s9S#`Ku$#*Jlo9T^3fZuYtI9S=c%L>z#u|n}dssm<`DGH8`_28<0bng^OMLtDP<@ zGn+OW8;33{3&)q7O_!DRpV@)By8QhAD`5Xo_&+96a5OP>w6rs){+}w-0F+G4Ex$tF zgIee-?oDX`$}T^C*qGXWS%jGBzYX$_3H~#PkdyI0waiRF_J3__>P-Bl@4rSh{2^&- zX>Q^Cr9BYvj|Kl}$iTu31c=)hnmZA*{%a~>VS9IN1~w*^f2)X@fvimbj;8x>t+=7B zrHu#mf4oQYUouM@Qy?)r)4#L)V|;l-ThsripZ}37f1Sk6#ufm1dq-PCn}7SN|JM<* ze)(0(`70!hh3w32Oo^EQ%3mR&M$F0dzkT?>eGbt0k0Pw>9RJM<|ET#NEBxQjeO9*r ze(I<7e7(kddIpGleqvBFu`>O_!AGEnkFcSK$A^!Aho^@}_yz*`jW-3<=Km1i|Em1| zIU|sTnVk(FYieiiY{5*-!O6+O^4|}kLCyLH+7bqTdmX)IlRs#nLm7NUoun}>p1H6v zwS%Ft)KHYnb$F_-h`))ZI3hMau>tgVHgs7`NhumjDQM(X;n@QR2+J56Tj;`q=z_xI zXp_}c`J(=4SEbow=UHHC?}^)GmB|X&o0VH*`{CtUADg$y~0B8BOQ&?EhEMfc+% z-0dgq0e+Ud<1VDB$yNSqXhC~O#^DR3I-<>I{Vqt}O>{`dc49flqps(EA$wjaVjfSn zR55Dj5~lqm>H=T*gVP*wN41Z{P{0n{(2~CYv1$jpv zB(6i^(c{IXuOwuD_9#8#l#}*>!8)!%W`|RA<5b&?phyfCD(JHz;67_8Fuq!1xfeqmgGa#PnAEJB>V6!CL;#5Z%Mt6wsVf+Q3 z+iYzsT!N}mEGqKKAvf8F)lpeJ@gfDr;~+USrlZ*LkNX0dJwDu?#Fuyzi3*g_7N>~< z-(CU7o*zygB*V|G_+$MsRH2xk&IC9<#&>&xxDCo24Eg(a(1SF;-n?k!-b==5wdBAW z#BZ91F(Hc-5iTCc=ciM&_eEr$C3G*fzg0c!K8zy}1 zQODIRnxJ_D&3Swf$ZlOcr6q%^2hVcsr{yD7na+!f?L)H|r76#IJFySVkJ333A0tIx z9Ry^y`n;dm2?`F6+EcIq)7vm-Zs4E11iASsEIMw;=Ui=~0!2&52%a+Yz|b;H z44U~uh4~-IY|CNrZV93`3--#jT5GX9Qxgp=1fZWPQsI%V1g-ms8d`c44uAEUYBz21RE3`&t;bYVJy-bi`kSic6}k$GY~rs&XWZY>?NF*`=oIe)Q()3N_FAHnZ~ z`_XMgKFzWFm5oG9YrepkjZ7W!x~9Rkz>O>PcG}isL6~pD-8mW9ndZveF}jxM&)FaG zy%4;E9yRa0%jAsRfxQ3XPw0s8Rq*S7<<@o8%UwGn$pA4|JnX-tzWChTe*@hR8opV& zNxxabpO~j|k-E&S8dgl~j0^P1cb8%rQGUQWo3}ssJlBY_pSTy`p35J;{hV%dJ72Hy z-PjGVUV^XCyVvmZG}SL_HXqE7rq^GzJ(6kX=2=}!@^-ma*CMjB)SE{S7sn-<#bkVP z><_r@X1)B?`nWVzRbB}LVP57oRg&e|ZXee?tGw-+$m5VAse-4Rz5@$4sHrJw`$f;y zkozf_fb3B8(+bzVKcR(5c}Ux;<}BTyR5M9yM(KtIVg9>%`G87LCy{Dm#{5Q=$R?I5 zLXa-TjS)$55cm}+IH*PLK-rvPkdy<(P#SyDga$9H--@(?Xk-DeOJl;lif~2XfYp3& zg-X33s=p3ediJ2=$^HgVf+^|9)b`wy{sajezE@H7$!H(t0JST@myqRLv99rOqLYj0 zexP5q)5_kcbrK(j6-dB5hi}##yh6`5YG&K26q%r0p%yu$p%GNS7-a;7>ICUiX5=dl zt=IYTcrDv!HX6`16%x)nXq1`*7ztcPCb@wFcc=Gq#J&GkBin9g807g@ELo0(CmZE7 z@$7#PRj3nBV-Ys7YxNUJmEP`?y{KHXNTRe{?0ygsLUae~6u86phxPM|*Ml3W<#IZk ziW!tcai(Lu;&oz}9YPlBtM}VAbD=!Irfk&$=jZn)>^rxUywHsZxk#or^?L2v7mbAB z!hv!3dDxg&rL}vMwD?a>uk0NGzTgY8fZ^UEF(&HVl+wqCS{w&Iz=3&o-Yb|a%XfZ} z1!YJgiiKe_pNI?4Jc$|DR=FBR?Avi&q2|0X-{4*exWL)KwhAfM^_v#A+xnC4b%nIJzX9m(8DXdl{W-#>m^{JS@LIfl4xSXGgV$RPggs&f`z zbtCrHqI_dxr#4o;?NnTq!^rGZJ#zlHc?e<&CaCnjkG>k%4#~fyHd#4#G$pEp$(9dh ze^B<6SF#fW|3;iKFUQs7)@9Y;{&iSfFxybUI0}=fQA@AcD3yazy{3^fBTb&VOVN~L zfik|n^R9qXwmoKBknijT_+L&pKQ~`>Q7MW|Es8ZY_d0+dP-NTr=I zbwW+fJuCUUXnfWJ;uQG9E__U5k*%o_50_{ug94wNJYg}BLeF4gcYa+fNR7hFG$BE` zxF;jXHb}I%oV4uo!U-2qrUW8ir4LXhsn=ot^kJTMM7$dRkl# z{V|A#8Tr;nUmfnXG#U5;K07>czzMCX5s3{ zb5Mr9#r1xMo8f`X963Dumh(hQSR^)`I90bvB^#7m>E6vVBi~imXBkS5mR3};wmF6& zzTM>C{u=FpY|bMw`gqwZPK(mXwKjhSDX`PJzsQsf6`+K)Hb^xVsJ2g@BKhP8TEZBl z7B&Pp0XT-6rJMF4_b0~l6_e)sBxA)a13YCM<9|*%jc$9j9>Ig3i$QA@i|v?w1)a?_ z#2i&gZVF&kfmIq#1!&eQ-1NM@;ZlZE0Jy?|-Rm{!9ZN3%L_MVP6olX>hgL`SEvF2j zFEm##9IFjpjy+MisAz7S(kjAtf)Xuv`X>Z36}uNix4Eo*L>FjnDkLp;N1=(1-Xw5& zj&dIgY!|)U+H`yW#HQ$Q%+sAz_1uePRLAG|lLNs&L7f5FzTO|Pe&BG4@J^(?NkOMp z8)%xtd&Qt#-hH9ZMFUTYr60)`R*|8*ZGCQpJoW8o)(;@B zW^RjTxJWgSt`3+?^+WE)Nq_x&!I{E)+2zyajeo2Tcu+U)6qPNCdCa?^Dy%{g6;E4`70q`sy&Aw7B@@*vf*-0_D- zpyS-GK&v3P!3sn-DM4F0D4qY9#m_kxbPXFLx2L6VxNPArY=NeodSBAfZgthmOv_g^lY7V-oz z2!xPz0e#~d{PDvKC$SC)?B@WCtQf-YFb+Z>9)c+B#XriZSlQ8W0~Qlb2;hT#kRzFX zM+s%);tUt&NHi9kr!>&+ddNC}XO6~H_lOvBv-6|Ch(OT%g)hj9z8tYK4Df#TCf6r+ zNCz?eP83vgIso=2FCBXgvo1{3PjCm$mHz7#)wza!D+_wy2HXbiUocqk^{FHw$5AUY zObqhPgEw_zFnUJ7Nw0V`e1uSG9|n!64&Oxp#?R?cb&(uN3|19GAvW+U+b)WUy{EFz z%b2a*INAy-t!=YcC^$X}6jTLwAjQ|!Bls^Fd)BG|ug0h{{Kq=XRnae1es6A-oL4Be z$C%s9r;_SDrhDwO7~H(UCGkd@g8aCs?=x~%mHG;!tWfb!FqrWa)d6Z zAOitfiHZ5Qj`DmF{jqL^^WUB*c`vzfit`r@iG>qzde!)vl8$p<-y9084o!U1ieful zozAVi&kxG@F!T#|IP5k$OkWRGNigg?8okSX+X3fyX;|o-X%Y0)QoqyHu!V*W=OD%8 z=iVAXrPu5BI%#zyWz;FYli5}i7m+@s{AIi=7VA) z>LO%}fUU$aD@Mr0c& zRNzW4l5Q|zDSU@=G8qsdL1_41&BUSGARkG_P7sdymVmfH68LDAvEx0gh_jT-~ zGJDy@6$ZF{%MB>n*i$BH+Y)LeRi|i5yEqq}H9=GbwKcWk0w+R1f2O1}nj>p0H;6!o zEA~nHvj~pc?NE3=q%Q_$jZk^qWmKO&Ef5X|~lmBbo1Y1;SpuwgdjpcIvNwByJ)~m=oFv@MoAuN&6-seYafWJaj_B zTJvyBI$)3~9w7GtFeT=%O@*^%_2PNWPdC?p9ZQWmTlp&JWo@z$@wods-n`|W99^AK z6>VZ~NN0Q9j-`r3cR3wa!nyf5S^UNN?0OowoH{%G+)f;pr_VaR@O$QaLi!e2Q4Iv% zQq4mX%nnTaL982M2(s8jDadZ|bJU;Zjc> z1ri`Q5<5LA7kMCk#UPd6sAH`#mZ@HrCcRyLoo@ z#_F{^SkqDM^H;;@4eEWSxtJ%aNgeV2jJs>j7U+=i zhn3#E3^?q{2TZLTCHIW$5+u)Q_Nd7E$$|P~9^XCJuQX4sYVxkpO|SqVAX<2wND=k@ z*Pf>UZ56->*!ScX!O_PFwn<%7%lhxeQp5#5gyBuBRxmbu&=OSV&R;5vH{nIsj85Y@ z8EeX43ANz_dAs?NMmjiw-IhxYkSX75jNM6U=!;=j_2gGnfk3P<6ml>*O;y0CFd?L4 zHeg7`_`W-|5?R10g_D1+5IvgS`A>4gz>^;?xbKQ_o!U&-t zH7DJ-1hZ?X3?Q?7Ed6F3#Wxiphw6%jz2B=P39e@sXeFRN>K#uir9qL01oF6C=J zj;5H-3TwmD`GUI3?|#mQqF&?KNzy*0G{*4$d?eMrjlDsiL5b8?&(jR|5);Bq4{8Ep zb{mRamzNmVp)DTH5A=!kr8Bwm9l@+(Sd${4OnqfPUSxz~iSInl&vZc3A7WTHj5 zRgbGoTwG10*PhjiGu2KqCI9^MvjH-ILUV{S!ALrSrZPT>7Q_e^Cr2uWm7oa8N0KsC zmc>?2Yc{o@G9WnS{x6)-l2Dtp#YOu(1~1_zuJb zKMHJaR4B~r!wfoT1Yk7JXPEx$Kly7ChUC%vhtccjwqKxiQ)65*vCv5-al(lcs9~8h z8`65O1iVE$ffOa~IK_}wG8k|!*UzZ6Bx{E<^ROsD1InWG84P2w?!bt&blN4&$CJ@B zHM*8o7gmPcn0RDS2;ELeo@)|4SWjM|P(MZVT%}vUZ^*1)XOC-KNsU)#T|--E;RVDe zdb_$p)l^420te;p^<&r3RT=oDPEIu=uqympS9i!WlC<$q0xcp28Ic+m%QjQP;G? zwrivfhQkW>p_JfB-{Fjd>5=9)fT)DE+o72}+*NWwBVnoxU|OPn4xPz?UK7_QO+y$8 z$l8I{xpwi{EG%#!O-du%D=0v_3I*w> zvvgpD^sBuIicw2gZN%cIU)i|OZI&5$qI{4KO}Sig%%4|=zGzqU&%QcZAT3XZy$--$ zW&u)@k9p#M(W(VC>++s7AIsu45ca{_LdE%9#V)^CISRltisqMbE~rY5SU0#2{9nSG3+!usVCx z8>4Jh{;YWA)G1b6lJve@v0=r5`GjPNOyTc&wA=3=H;n{)RGv^U<7ba!qUSI1YO}hU zQZx;y`D$87xtShJ^~z2=xtXaYhOUVREuSHjx!=U9|3V~)k{$*0f`&kat1YOH*hD|> z?TXpQ=EYC6%^ol8aQQHZ+h@c?55Wrtk3`yAeFrC-E9?~}YE;wJvYu3KDuz2#MONPE z^UmWd8(^cNH~uGw`)WGIiuhXRNn1GWb+XQ&AMZH2jOt+g48<#&2%Zmns+ZfY>uI6wv3O^XYTW6SnFxyOq=_HadR%oek#Kk z|7a<=%dxDas^=8@g_H?o04#7LWU>o}I_}~s8hyCUhQ-ct+l!&WF_49zC@+HG*eY<|s55~Yxii~{2OH!~)F^+!k9qA9^G7)_ z^5H5A6B7x^hSfVcRqIbh(I$-GoPO0p^H$FXZ)`qHZcgXdq932iEvc7od$xxTo(Zj7 zqJ#gcwxn|fe4Jccyx6Jx&G+7@m483i))POu;d{v9>Sf(&MiItGGxUvsRx|miE^<>O zdV%ac=@iYDEE68Tj0Pb^V&z%GIUNhFeU8j*#f_=PA`<~sZC`19CP$Cl+p;?br~h_l8jeaChKd??Q;;oV2UcdpN7`nR5t&_+PnN+&Q&(~2osidr9N$#n<1$Y!oQgo8uWTZ4B3vKk7Hh`b^W9z>-Y ztaC(ly-2Dy?sqT1F28YNa76X`0S3j6zL2m2XBkg9a|OfSrb!2~s*Q5Ke(}w#4R_}8 zIJZiIrASi#mVX9(hcqY_ik~v^U(wexH>{J;EDB$!mizW{Iq%J0Uy7OwNIp_tsNsdpS)WvC|r1L?;X$ z&jRF}eq-vUfo7AL9Cr@-+`RU*7|;2|VC{V4SHH;mK*RZr6JUN@DGmp~eD1aXRs30R zFe)!{hXcb8?mFwEo7fU1oS~k&!!$N2ESa zd}jDfa$RnEeLQ+^RR+7z*4;c*Y9~G}q}l{@%fpl{Y-HU-399C5%Q$ei9R*Wlc)2ZAC~V6sjNL3s~M}roT7Mfw!sEj<*qwKTt{qC z`1~OU#(HNzTc8%Z{#a+vnp|6dr_H(z%`kS?I(R;(n$a}PUFDi;L`x$P93uOqOFi25 z_V>mZ+ah%(TuZg_GC3M~#XFsga)y5dDKAVZ2zHFb`wiYIQ6x6mxi_L|omfI-(x(1&GN} z8+Aczt8)F;b}6YlS(hE69x_3dD2j8gOL%54$Uh0B%@wc>Zq?q$sgfJmLP#Gl?e@uB zQVXCR-u?mu(2$80=?Ws|{H1$Ngj%AB>E5?TaY;D0w(*K!cOX^bUB}zI{ox16J%(e~ ziKQ96_Fc$#Z+OEbXv@yOBLLeR8_a#5# za!NKE#>BIP=!wvb+m9j%YWSd}(gfrV=^k~>>-`}{T-GKq z+f9umOBkTI{nnRpj!)s&Xv(%cxQLB#i)JYJ5^lKl_D^^eKaPPoc=vQ44XV6S+G(1>0Wq($2ZFRJ-wB#$4Jz*7Ny zKWOG1^qFf;&$6))MLI3WY!_ML#QS%{vA-@!ap%74lCzSbTa30L^b!?5@L;%P>esSm zf;MP`L-5%@L!~q*otV`zYt_n`rQguP2f)$d2bm)p<@4H?C-~a@#nkv6D+e#KSM*Ix zuX)plYLgN2CwM1o`OReqpifcTj=7A$+C~(nwJQpTY(=q{p~(i&v&`uvOV!SK8bEus zm@6%#mY`DQWEnMtVDa`x|9Fp?`XQ}I_}bmvN=BVc-rF&8{6xBJ?B1`2{>2@q~SKQZ5*pbYN zaB0i8Yjq8Vrmm%L(0PP+LuVKIKnx6cX(J5aLsIXzbj`FVIIHBv{lumx|Kw~8OJfu1jcHA7jzWwY(D4X*RPSj? zZ)A+2q}a-wPOX8yJ^`uNd&61(Tmix=$qhR3TT6OQ7Fs+ zWX~CQdPwN(uEEEXZEm%q#t$qAP!qoV$Mtbu=uj&?JO|tgR~(x{WtH!V(U(wEmep7f z+R4P3+It;`cwjeG(aId1K8yTpd!6ptgv0KP37%fIZU-rNCOAnv*^ZGGO`k!F@)ASa z}x5cmjQ?F@R_n-L?^abiUHxwx`|hQ6w6|+ zFNEf04}gv(T7<_%;JwnGSKPbFFMYbzFV~84SvO^5wIf}U&6Z;|W;z`>tuxTOw#{5d zmv~icgy-Cb&>5E_cXG^)#4Jmq4AJRJF+lp@KtLenH>9l z1^WSC%RCRcv~f}(ooDnBrTirIaAiV^UO5^Yfxz$+#?+PXbr;!E!SI5iE~v3Ha_ND6 z%{;aMxSp<+-nvDwkGh$TWPL9dxoj;K*6FTHrauT7XZnO^%>%VGqR53+UJ9{Nu?wy{ zw}+s+^&oy`WLG{JO!|1FIZKEBt^>HnO^Qd$Ey+82&U@m2Qgr=E!T22wQ9IpqntR}b zWBIemJq%aaB*r%m{I{XGNJ=|R04I*`A*L~yCPUI~R+4d%Mzp0#5cZ^#3+L_bk3e+a z70#-AP))J05os52xP|X8zlbqoau;cAV!>(#izrv-i+ZpE+fcA~#14rOt)JdCZ9c)H zR~969-~FA4l)D9CZ((c{%;z_0;?MQt9L~&{7!T@?23`H0^{reWwzjseUTgh#X^-ZN zVobW<#d16t2OzBR!tC@{^n${1P1SkrjR`9|RP4-`xj!E+vfBuR{6%YL5jw~q?yi|#s5d$TQ zs#gDdNsS&BBx5$s*PC(iLV6` znE7Wm!VHZ(PuD!;0U5pEA|ykr)$u-ik0JF-2CQrOrRS?t6cVz6K&N^z^A>%f6Hnw_ zDa2#3y0-`TKDQ9B{dYgw)S}asF8|HZp>K!LDN~(O7)wW={vp%8BCp>nQzv<|29=p) z8izT%oV-RD9fzi2gTX2*dULV4K)f=@ecLgJH&R@One|I5mBGoTM8#~|KiyujzPyDS{ zfb|f3PJOj@?29gbUqALTWZXjv-#FbfFNixMTTA^EI5s6*S9KY@zD?SaF;L1y#h0RQ z38a{zfrrFLFoh8+fk6$df%_GMtp)+7;eZVDU2|Bl2Rt3IG-?_#+|Yz;6CBY<}VOxZ#%Ubjf$UzXsaaTF(pf#!2C)ye|s^xv&Q>&z-u&#a?2aF z%(JRTkF<-Yb5k<&03+oDwN1BKc&U2DLqk5?QPE=BMHF4HOwv{Gy@)lr$qIV##z%ng z#iDTezK*;=ODLW`vK;Pfl~TZrOk!PvmwW1qiiP=|8cReex6FNf=x`0qv>qvcT4m`^ z=57Rw6RaN|$*583(w`U!=Z2j-Hg&N6p8+mVw`!GzrgN{`yh<+gjR938xGX43aVkr7 zkk8U03X(qC@(ulER`*yTrx*?P~dd=sRd(AuE zBveK`t4+>2WfBPkh|HP0Gkhc1DSOl3i$>Z&n0~t@7*it}G_GE;Mc>4M7 zc=xd%ZhMeMZJd*Kh~2SpRTQP1RgnGo4xaDA>EvhjHGq5Q2<@(9ZR%)-UEFI&dqc;Y zid(%g=0WBRpx`Tl8@DDCP^@LnJ!!yuqo3E@a_b}LiwE#&l38!tEY+w1^0|*)$u_jr%WcLY??xbVSnet7 z1M5V1q7#!rO-M2HFArdT;#PqtTBgk@4EsBU@&?YbE3)evF;2uQUAuhTG&hAs2J4%9 znERTT(jz7Vhg?4Susv8hhx7uh#;WK{GYff*sn}W*vyB%SW_{6%IZdW7_N0nW` z#rgcXt7ErR>}!Hu)7j#z1>ntJM;cirulHZ;rDV2vrs!!u8bT*lZs!Nmrpo726XaW4y?4l@*XpyeO?32;X6x>f4izDm0z$mDG)PaDZw^2 z97-Nqypt#h@=RE3cn!xmwAquegly53;GqE*(?`1k2d4UwmvdGSXWY(8Dgqam7dY5k z{Ea93oBr}Huf28CzBPk}8IZuUSyy7fT~N9$y>%wn3jz_+yi9N8&ZT7+n(nTt=ES=V zSx)mJn9OSxfzM4d42C|##L<4PQub#l#@WgI@=%kOh`W=qCWjqwxJsGtz=5MNh}pUK zf%#}+qV&@)O4CVc8aLQKM9Cwv&gMMrR9s`4-G81XPdc)cj@51=JLsF_&76wkGM)A$ z`k(xG4?F$c9LXOmi3LQcnp~!tCuR1UPfdR-Gl)q+6*9JlcyY>~Ofw;D4l56}G*(n6p@~o|IB!8hICBVSMH+OJf8E(?i&?qj z8DrSz`WsZU-lJ2O0|)=@mqdneSE+4QF8ngM+X>6*gg@!VaE#b^Ga`7K(C@?AVG^rm zO!6wP=vukVmCv7D-~VVnS>hW>fAIj$r%Bf5vV-?|jlXyR?mqht7g4eYkUYk2JnqWWjKCX5$e4Xxi^qOqj_@;QRr+nMj|g}k>XxvO=q{U|X7>2;+S0K#2saE@0#V4y_S*ptm#$9wps!7W=y zZ9NLxL{|>UE&ZwwXis@_ADFKKTEma~PaUYGK=A-&+*1azr&g~W z=(jDc7abW!Wri{MleN!%j@8x=jv}4o%b`z%??fT`$0w6ikm!G8V!K&<*<%YTno z3hYc;DKn>?k@-IlE&y>&jj~;8+i>d>XKeJ0UPY*mtP)r1SBX^;Ug}4Uj#Q zPm=aMn~J-X6I*(dySTIKCG00(I+o|pV-ECb=-w0PY7I)bLpf!{82B#3M(NQ~GTG2= z+7&ywE-l;9Itl*;)BuX!7tN&QPO{?GgAmLTvz*5R2Rf4v<9k`soN5d~+EhF=>nc!F zWx3`E#L|_23q9n|t|h>JYEf|l%%5B%GW6CM;^iO6ZopnevWO0}gPfhDx%A_w0e9v; za_^}%y7Rw%EtE@aJ7^~#T>ZkoZgw_Tw|3rV1&+H!2%kvYKA9y0w05-dMrHl5UbA;g zkSHXs^!DDIh|VlC1|2ye+xs)@Ia|M$=zCbz%0!v@kg#+d%K4yQ7W2S`9)Iq4{P4YI zPL(He>^>aPjT+de+9p`wDK{S)`1{%#FHta>3V5zCg=8PCH}7Ao5p=A~j02IfQr2y6 zM2yr_&?K!Nzm+Q4@gce94@lvmt!a&)^ymnPyD#m`++6N}dY`z7*2uLLdc3y%4q;@Xmxn%P-O~3zt$Q8ZJby0T zlxCw|n=|bfu3O&Ut1*U?toU|+!>=yJM{m*wW9+Ig_?`I7IgQu5%s+y)Z2j!A`ZeNa z8a7!AfkU!X{z?0*MDH-MPs5j~$Rql7i@{pTNMH~7lICdyb!XQE`$=GR41zsuH)40| zeEbY|*GL!<8e7L31YQ(WT2@eyFz1RE5!E19X8ha8_% z^=Ckr-P^O>**d=IhdNmh3OEa`t^ick)^D@o=>X_USRsp2z2; zLYF?jWqTML#Qfra|RXTBRpd&oj)Sp>&9>ImxD9O9zUt^RHHkg7*2sQYh1YZS;fXk#dDZ7 zI5v?Z_Msy(j-<1hw9&W6EaF_%zZP<^J!U$>(>J(1ymU1BBApk#t3iX?4j~Qyx z1V|^W))#S?AZ-C!?{YvCm7nS=I@dpAuKxxIdapBAU^1IC?C2&hJ4Z(7@<@4@kEWt= z4=su7dfUp^7VS-T%xx^0`N6b9Z$Z0~VM79Yl{N#H5BMdC$}}RcW%OS=H4h=Rp^P^B zqmzBJQv|+J6+gXAK5b7v)lRMx)PCR}9~#}dJ&AO85|0v*ULGSUI7vpL6;hGTp?K!$ z3Xr$7eY@_JMq)<0y@DScd(BED-OLQ>y6ETIgynl8>@p1)Odv<4R)h~!Tb7wv)L0(Y z(f#E`GSg1vP7#ToEiBL>Huel0By@=XEeRjxI%dHL5Z$mFSbv71HrK3qsbY`MKs$ro z4-vXT5?mD0_Zo1-1=4Kc&S|w6^IY8ol-JVl zlNdZA{X$J#{x>Mulkv=Dq6>6IoUX{H@ltC&c%w_7BSE&rQT$M=mbtk@D0j><(dGaI zQ@ZJDR$AbpQtT7k(7jih;YW;TD$dcc$>?7JiEL)f5A2sFysjPC6RGU&VB361hp?<5 zzl^EZZQXKGjQ697tpN_Aw`JI;b^?{W23^E^<*sj6!N)MnsV{~f$u-(xkj&wblHPS2 zv<;^@c8t#nQ#OKY)WKX97LTXTlN4`WaW?vSC-cJLT~Qwu`RB05r~E$*KYKR4srwj_yR}%wk2`H%BHPX?_r; z72dyqTHLA3Pq1Pc5(LkDD~Epd!ksh(9$Y|9P9jUk9WvQ*MDFb3r!OhOZb^7};~@xc zfYc$d1QmgC=_e2JIHv~vwfA;LZc3TD&fIl6LdrnKi@l5qPjub9^vAiQ>22Co72&@MlSrN$sGUTot7?52)2E)xbh9s>hsg5R0!@?E94GTI4{t z*Cp+~r<~jiKce%FIg$pO(5)G^th#5N6rn3j0oQf>`7*d)UN4}RlsIx7I*5+US^wtn zREA_|P4nk0jD;=UGZe{!?scBaNNy<0H{EeU>Iy&&cx>_bnG_;mn8{KKHR%EN!2@9& z_vj~RG6#760jsf8qC&2e`mB8>mSAolU`)&S4u4wrN7vY^>9PRN=_ShW9cvcUxSEB` zm*+hyJC|VyM~gwoljuz8xr+>0LEh={drNb3dcu?+9jQD%b|%Mx*g9A+zQknh$kqFt zhM09nT^&5(Ik>qZ^S?_QQv)!{FjjzN&01d&bA=-eTTfB|)2x2LsX_Yz$BSPfw}3F&ZBX0Pl0kCM z2Ue4CJ=QboW4ciw4JPOVHAOlC?B&`ktZ|_ z4Y%*91=CWES6lT*Wl((AubnzRC|7l{og0Vyfad99Mrp22ce)Y8LbTyf^R6@%K~SJ* z8hj8U!h_~HSK*dIoLLST@Et`aFDK}Oj9`El3gQm$;uHM=#VFMID3#TMW`O7hkH`Ph zqvSgGP0+2Y6WBrM^o}wV?85W|O|Y1qY!mthB1Dm$3oB7P>9oI=UqKmiZ8szFRfxQN znOZ#}hyd(#A1wpyNgw}!1JO7Ptv_dBmTAc5tWZt5haY=b$)ahwU?&#G2=ry`cPCq* zxU^4jYoxiybSxXIrj<~_R4@MiA3jRs-z_Z5NT->nv}P6qnQm*XQ5yNhtN9vGyFNF@ z1g`Vec3D3uXGa=UPfzp3KJzcw$l7oH5Ta$^WU@P9 zq~WoqVYrFIpmne3Ze3oC-VBdPYik#j-EUJ|Tb~^lT!)`b-Er!Xkw;m^O@vw8--~Q%jl>VH6C+zPcSgQS)M|Mnli2sS?G;5GY7(m~fiZ%;V=74#^ zZ~5}N9uxHfq568oLslgz;3fx^*FZ#;oszQ{E!PXBar(>@&*=hZ%a%4d-n`yIo>-Qg zNH(~LO2ZBq`?g!>Japh(=Sya~XkR$)7S+s_`GWYdwqG}(MIobt_pDBJtLh%zaj$uC zclrDwQ8MJ(#mKVmn{4v)KJSh~!PfqsBwI2Vr*2$JkoO(VF;StA#VJ|SV^2K7JUKSH zlU%t1X&>a2lxx-ZU?xW3o~ju?XUO#3ccEygQC%w5C8R4D`|vmXj=XE*Of8}eRreok z4%57LfhofNSNO|?4S<)b7yFP@U0T2H=h(8&L;33ZyXRxYVu z_3kz6UiZH4y|113HEYf6_4#TSNi5A(%(3}s`naD^Ei(AHo)n#Y-AnQ-`SBvogSBGI z()hD~I|n>s(`xC(fUyZ%beQ*vwYv4S;{8dQcbg{9rta%?+3XwwFZ*;iWsZtmZ(oef zwJ|DPEw-@kcr)JexfF7|q}gh*zD%?Y(<)!zP%deW{I0in3YcpixW|?KE`#`!w&Mnh znl2`$TRT0IHNqVMS8!<1 zy5{gG#nYsZTEKPd)UHiVfp5D{XGabP;4}DwYAM#yhGFxKV^q64^wE&a=1Mixf$zF; zP{I_{?FVj2S=Ezoi%JnQ4m!ev!x{?gQln?P8g=@!_RUi3()C#}3^Q07Z--~ReDe>* zknhFy!ocEzysLzIUp_t|!kQFVTk{T9*}$Rl-WU=4pc&M?#w$I_3v5 z0X&Iz3EDV-7nTf(nl+m0iE|J1)G5`3zNRMy-)I8N_!LY9$k`0H5Bi!jIc`GJh;$i? zr|d=|nns;%hKxU4m6yG2REe4FJ>f!XfhIhQ$L}+dvU_eYOn+frEckT5!n{Qs7MrAS z;M|vp)D*ptSgB|{Y@ugkSZMF?Vh^&)=@N@gV0EN=opEAb-C3_*S2GGu5zgOlvvaoQ zvBhI>mt&iX=N2QEFV-OK6=jZE##`khc&8KzU5n-peBH!zX`hzdqqpbY_k_jvGx}9I z^4F2n+3K#tLA;fE64xxU^jCKlE~RVkeL#$rCX$~nNnawcE3z76>ioe2x}E3R{n@7A zJ8-i8kf421Wzl&wx?Hw-EYchvyfC9N{SyRkrhB`GgLkekYF`fa(@u3=yc&~0%UjXG z&Op+;o%g+nHacX|q48LcicGJ&02-orS<#hK)uR% zHP&uQJYBBT!{znqU254TT4b47jBH3ZbR`)Zs22s zHKh@1FKC=r*{4)CFU7b6{un*SgsE-HEyRF@L|mlQRnBU3!neWBC@0=KnP*Lp0$S_s z@fD#6Jh1*XAuHz_=oQM-Ey$!lV*2R&v@PKEw~yz0L4gN&pgEf=Kbiu{vZJ>iDsadW z=H~P9!ME9giEWQE;B7}{#I|HzqD$VJ*{TW<<>_lo$FrzA^{)>MU2W3)H=4gvc`IA? zEx27~S1(fZKCKTGiOsaRwd26^%spQ49m>quW9Or{L(#7uGY^}kB{#o%&&33wVr;B3 z!xDL>`e^3$YY_jzi#yP@BeShbUp8gL!Ra>^IRL z`S(+bfuw~zrx48wa)`c?+t!(9;1{iIF^hca`kC)53<2!?YD&P=dZ z%?5dRBbnl?HRf8F2K>b46SSlQc|(;GivXoo6*#ypWNN@r@NPdBC*y;-?Qv0EUhFFK-rURqL0NT z)}QGO{h_dtZSZMan8fn7AG68B<>r(FChC^l+_4Ey9xuIVhUw!#>HfH!iZ(4908T}g znI2gtu=&_4t;y&uN7$|^Ikep%Wl%!XYrv>AT%Z!IIfn%7-l~^>TqmQ2{$rnNot{%1 zR$(OTyHqpsrUo+Ne=QuHt8A%2>z6L?KXFX6W6gei>^ItsJ^4pVUXsCW=i0@vJ1tKm z74p7>%)ag${P@i#rb+lyE@!a+sY;Sh(f-TUr^MF#?K{Eu`){6o_(Y&Zd<-{#`SVdi zgxU7WM)gD?YlNli>YLD`P%*oJvgkNz-0Og=`@ZJ1-LDX*l+%5_?ULR6Y$muMWu^kT z2;m1bFIgtJ;On|(qrKr~wtrJfIZJI{<& zOF#xU77}rkpCQ8nj0_nPVDgO)xGKsI>-G>@B2KZycMpTua(Nz3wB)v1K|QH3;iiR! z#uxEMK)L~r3sXjmkaP5aFaxw#rX*zBLK`?!Ti%qmMj^}+9#UU&VZvWZHpLX%ah(XZ ziblgc&R?17qp3?bjmS9hy;N;49`rlDTzI#$1F(8IrEx98_U_SkICpSGB5HN_&PbZY z{b~@w`GAIeIT_bSy|-lVp$_K^7cey1n}3IEF7|wyBS_$3IoiiiCd^1CX+~@gW2hoi z&_hO4XT@p@;rBNEy$g4UM2peLOxb&wLFnpKsp`0RsIlxkHn?@>gS8)vVRN+~_`cvp z-`CgEmuE$M3qUmEKutLDGOIEZha3@qkTe<@5N)3BLxNAm3Aenx$?$IJcW71u9-@wJ zRVjMs8Aah$5^AEBy*>)cf{RPAnY*>v8Q!%X+Yor#0Hb#c3**}Km(sm$(;=;j`-K#; z?VD*XaY#48qLW$ZdViB+bp%W7*kE+ZU&58A(WCss$Qc#PU~@8bsMKip~aVxwFpk zW#BrS@~ys3{i16+80Q>YhXeTz+t!gF&7sXpe(|9*`l;PzAs~umToB*0-DQ?X1m7pW z;fG&X?c2_j!xsqA_mH^N^@o)db;OJ?n)3xC4n#yyC;O&!{gjOFr~GDzr;0vD^c9+i zQmtSP(tCWdfu#Fs7=GY$>f7EBD%2m@CIJlBy7@jjvW?(AJy z5M{^Rv0E!S7(;~_1t)4kLG|v216-Y;O8l#(t=yC=@~pSl08fCu+nX~F(V8F6`9FQx z9ug!O$Vk4!>*pc!s)CJc5xb757ngeI93Y4%hTqE<~_3Ev~g=B(tZ`UDJ@$dRlR#I5|P zg&6U}W*`L-z$d&6xh7vuo|xSEjtEQHeiM3bZX^zn5f5vfuW17~lgNHBI)PB*O&#(& z^+?oh>%+aawwkl6R!W*Rrwt1)M#hgmWfzf-#<7e#(i~4AWX2+D&OST=Vz}k_V=mLJ z(xSYctEdfIQYBnx^V{cf`r5^Isow7+TrrL4{k-xLQNEUNoYUR%>U(5d&;wIv;(J1U zV+3k)Vci&WwrNfFY;@q9n#iy50Qn1N8*<#@?6lZTI)6)QeBpNNrNvq!1Gh&}H6P1X zJXE{pp|J2-&QD2ucq?>hd_LcMr-_fyC)0m8w}q*W6p~~=*zR;%qS6mgj+)WZ3J^>66MG11H2F3$24)j6g3XJ zkV#nI6UZvKc)i%3^XBS^{yi#p?z|n|4O}uLlmNO}U#LL{p*4$=Z0{X10t1?|=B|~GDH0lJi zY+`hrJP>cxHqacfvSuq4pO^RVVqcCD9TX z%oJ%_K8a^r?4$tt3BkU%V-Te8MOFx3+I0hyarSv~LJlf@WDi(4Yv)Wan3WZxEkOhz zOS5uO>$CudOW|?$HHIYbCp@JBvixOV#8w`4U=Z|G!r9dmxL zztel0rP31V&uI-9iPAn2NJ_Qt55RJnm3ghrw9-y+kwR2KH469HpCxR>-qp7TPQ4>X ztX;?&AEqgNDa1RHpz~HbSI247%3D!BZ6^>*TY{D(yIWgPjhFs8)^F65dc6pWb2*x>L zQo)Pav{}}}uAusAJSQuWA|Z&1xSQ%>O|(V2%GT&f(&$}(Ul!bRK9?`Ope2jc>qn?@ zOSGN&!U~7o*UAoJ-mI;X4bFQx`m)>azQ#EANIDv4`xgt3X397)L9WxTjvO*>=}Sp? z#+gaF+L=&2H~ruFY*4JQoX;ddDngg2WFus9jwN&ZYJfS_bvQdn^;x_6pl+VKFLmKc) z`luDPI7w-`O(xKn$|ZO9GWe|p3TpTCgkn^Ggc0Qu)CryA=Q05DgR{o!_|;0EYu5=e zw#%M)Z9o~c%!?WwB$I6D?b0L9&1x0x6^FZ$%#T;Pj}`4FAE4=Ree`O!^yKhey+46c zTA40Lb8hpRD~FGX4I-wtu2Z_<9()+b9)-;V&2~wKZ%t1D+-K+RXRF#$%kdhPdV14V zx6(hB{hZdpy;d?VJE@qru!>z=wssz-l?~oz`*_M((SNeFpz(SO|4Z|rUU@Ic$MpeO zEf0Xtj#?UFObu=x`GGF8_G8D*-WB&MuOdn6(&5U&j~{2`#!I%&Lk!83WLIJmoa8H7 z`d7RxiX{qp)x|1`dCfM%(#`O{c_^20>Y3_vZ>6t%fF~#LD}1u9?x#1U47J(18g}pt z6ZG44rX7vYk04Sel2e>VJ6X(QXK%nD_EbcbMeRhN*Vk_@Txfph^R)J@{elmo^<>e< zr~P2HaMW*);m7KgGh$-%D??$$$yrR|%qSd$H+!qPhHygVFr9# z>BQ&C<|Jgf-g)Ne2SJKh-{;Y~3-CVv)g@)x*AwzJ3_dYGhJ2#@t;&JE|cS_mg z>bgNrv;O47m$@%nD)1;))n(Wo^FBVSwjAJO9_4-MQ?n)utE4F$$8TOOMoTO6CXS-F|t0g(U< z0ftmK(O&Xa@@(?7`7HTpEXm_pU@eoHv`dm^U%7GB7uQ8JHSa8kiYa7?@;OWteBcGE6fpGt4q9GE8W#Xw7M1w5GI{ zv}Uvxv?e=NJLWsE9n&4l9kU&a9TPh%J9E3AlyWmW3p=Wtmx-MVSe= z6}LGzjN6pklG}{ig4<-s>az1R^MJ;jepRQJFFG6G3UH-L2faEVT~+8Mj79*KKy5Hz z_-Xn9`RapS%IHx*4OKQs66V`=ntDLID$|P?&fB6R|6``69pG7BxURQ>`+}^FPg6SWb;=n{s++xVdqef;|#DWa;Rb zA9gs1Q(^T6gG5W70reDmaPm78RRev_W-tO7C>6dG#Y)rf2N{UJKx<*t*V*C5!=jJJ z07IXb&nP*WZ=$Ni6VRGaQQdyN+}b&VkBZib5|4TQOmmE|Akbor^7vLOly8jm7-az} z9FI=oZlROQ^(BvmG!&hvf+aCzM6~+V7*2OkY{T>|L{IQ{uL`;+xO20Z7%xa!3Nm(_`^!eos(56R z>pnPgZfA?qrmEPKF*6({UeQm{=_UPTB|7#b8?g3P7U^~zp6M^&ZOCPL5xOm!SK)-; zT)KR_A=)RUvKgB<@TkF)Afu;;e_22TLuDm_bcU{PkIF-#lh}#sgdpfygBQvU)ZAt4iAHQ%(`G66Mp(xbfJ|M%u4z)G~0uI>Pl)#ouDKW3|)fc z&+lK)@Z5^(WS-Z@rdVF_-N!nmyTsi1{NA|g0^<^IBN!su(wgIbde2no6z3A#A7$wo zqN9G9hK{$rVsct!ookc3v11o+(6XY57+ZAyYX?LRi-}wdg#x5a^Tg;UA%v zbK>`&MEWS-Gq*2i5$H<9e+N0mvdtOp%pOMWKBJ1LM@496PP+E0xM7p%g7@52m0vx( zPA&=N6sZA^l!d@|M0zmu4vff(u$iG4szzb>6wGcjM7bFRG@K!5T$O>yZD<5s4FwwD zVZ08)30Z!x?p1wRd$xM8&|Xij$tO@B9Y*XzfF^RlShX#L{ickjx_t1PZFTuTD_3-8Wlx_SJRw z9YH-aLW6U6Z1d-r7^kORx!7$NOy93aFtVq1(1#t)Xs1`(aXn0{TR+?bLmZ3CSgXw# zc#;EnU%XSD3XUhPJ7c=et806f&%O$bML6=A46!!i#`hx6Wd(u)bC?SQA=tF*jG=3x zckVq2QY|pdWeDNq%srug`gkDJNVd|mN?5bf6WU|6a?&NT8qI$h)zUcH){NM7@VG{v zj<0ZLp0lEj`%cs6M5drC6)ofI8IK^StYb*RHqCa=tC|*lKVzP0wo`|RKOs6f6Ph^_ zw2S0#Prd1-*chJa7NkkzDr1Sp->I+)pqr|0f9~^k!>F`j`u>!*2_)H+BiRHr&9mZ< zn_nG`p*GulS)`sXZc_^4vuOr>`Y@IXbEf9+u^v)|*)%cxN* zO4VfKOFoM)1FedwZIVlvMo0u_xYeFzpiQD!1x$|4>X5(k(_*kn*s`Z6mbMDo>N%6h zJiDKE#yOf+`ZTqX^HbXEYF)(MagoCt1$TE3ZNs6FlEjI(qKAiikrJ$eJ!XVb_q1<6 z%7Ya6xrPloFFKDC=R%}oCkP(!=o{vjXIVZ-9@?=0WQy~6L#um|-R>%Rvc48{{zNi* zC+k5=JeAs~q|~XQx2!Xy>ZIHUpFJOZ$wHK8@rxQ{>DQL|>#*cPS?YO=><;8x77wIb zhQ_&HaOOp1z9)GP!D3x>(pRZ2uoe_Z2-Wj%+I&(l1t*Oh`bzhrG55Lm=eJz-?3%6) ziW+jQxSVnul-iM5X$&Q+?|GVh#hY6UN~ae|OHyO>ge7b$GJw>~RtmGzK+%1io0Vcz`( znTuxaB!}NW{Xwm;xz=p24KFFhv#rzee9RAC;I*CD*t>4o4BGcGx*Gj@WhT@k8SwO5 zSiUq)2;l_0^mE+ksPieGs$bb_V`l@&nBwfX&(~Jt0qdn#2$}NlXa*Pg>MYC{yCuhu z^&%v1c>6FUZy($2_FZ$5yJo1p=Cr8$@V{vL4U{ZES~!sGHC1pYdnY4aH_EYs6j?ss zd5&<^?I5Ay(#P=sylwc>qxjcNmRfl;D zB-2f$wwtbju09tdeN`KY+!ug~IzXu%D8B!ryyByA{6h5 z|H0lT@R%WrqLPJ2vKz!H8ib`61%-QP+3}1qjn$HvDqnSFpQ5#|3SUMV@ALb2#WjR5 z>`S!44^o6K(gc9R*hD znXuNGXA3|ialZ=fQx(2`6~?P792&JCeBC&A-6%ob7%klha@|;%ZX~O2w481@MrxeP z5d4`J%85De9-MY)>i%33&Kcz)-(VM#=@p!bPN0+-u&6j z4(=>vHJ^oXe_OmC(}nc+P^6)KPQo`PuB-G1%Jk`&Z(G0*AZ}cNe@_4|5T(PYE8uC~ac z4zQotZaFVE1r0Y-HyEF}=^ynRoqpE)H?{j0{<)Ha+YON%d;|Aa=evQ3vp+QThPg0; zIDWc&B%{Em<=6>?k8I|np++E#VZk{uOg?WWJWRa7=E-MNKg86~MU?30z5)=^R0SdDLfovTAMK2f)*mbOt!UvwN z1{@rG%8nMlIYYAE1^9vga;ECyXyI-SbNO>jsiD67jH(8FfR~@oJ?ysI~Y6E z!NC!^HptFt+zc6J<<0T$!FjpBEb(sx8HK>e>t9KLQAkjbUy$+U$)5>?9QsXSboiGI zbi2qG-_ zciYXpKm`77Lmm(lxX~E-wJx%p5ahSIKtUmp@NeaiHsKqIfM4q(+Z6yIgV(P%WH}N3 zf3zzM6#9ovMCc}x{aP0(&j1GfHa3t5LSpTV_A|aBdjtjv;@@Uvm3t(QfBXLd!r2Eq literal 0 HcmV?d00001 diff --git a/mcc/build.gradle b/mcc/build.gradle index ada581be9..f96ede315 100644 --- a/mcc/build.gradle +++ b/mcc/build.gradle @@ -9,6 +9,7 @@ configurations.all { } dependencies { + BuildUtils.addLabKeyDependency(project: project, config: "implementation", depProjectPath: ":server:modules:DiscvrLabKeyModules:Studies", depProjectConfig: "apiJarFile") BuildUtils.addLabKeyDependency(project: project, config: "implementation", depProjectPath: ":server:modules:DiscvrLabKeyModules:jbrowse", depProjectConfig: "apiJarFile") BuildUtils.addLabKeyDependency(project: project, config: "implementation", depProjectPath: ":server:modules:DiscvrLabKeyModules:SequenceAnalysis", depProjectConfig: "apiJarFile") BuildUtils.addLabKeyDependency(project: project, config: "implementation", depProjectPath: ":server:modules:LabDevKitModules:laboratory", depProjectConfig: "apiJarFile") diff --git a/mcc/src/org/labkey/mcc/MccController.java b/mcc/src/org/labkey/mcc/MccController.java index d7e41edd2..ad059809e 100644 --- a/mcc/src/org/labkey/mcc/MccController.java +++ b/mcc/src/org/labkey/mcc/MccController.java @@ -33,7 +33,6 @@ import org.labkey.api.data.Table; import org.labkey.api.data.TableInfo; import org.labkey.api.data.TableSelector; -import org.labkey.api.ehr.EHRService; import org.labkey.api.module.AllowedDuringUpgrade; import org.labkey.api.module.Module; import org.labkey.api.module.ModuleLoader; @@ -57,6 +56,7 @@ import org.labkey.api.security.roles.RoleManager; import org.labkey.api.settings.AppProps; import org.labkey.api.settings.LookAndFeelProperties; +import org.labkey.api.studies.StudiesService; import org.labkey.api.util.ConfigurationException; import org.labkey.api.util.ExceptionUtil; import org.labkey.api.util.HtmlString; @@ -78,7 +78,6 @@ import javax.mail.Address; import javax.mail.Message; -import javax.mail.internet.InternetAddress; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -691,7 +690,7 @@ public boolean handlePost(Object o, BindException errors) throws Exception ModuleProperty mp = ehr.getModuleProperties().get("EHRStudyContainer"); mp.saveValue(getUser(), getContainer(), getContainer().getPath()); - EHRService.get().importFolderDefinition(getContainer(), getUser(), ModuleLoader.getInstance().getModule(MccModule.NAME), new Path("referenceStudy")); + StudiesService.get().importFolderDefinition(getContainer(), getUser(), ModuleLoader.getInstance().getModule(MccModule.NAME), new Path("referenceStudy")); return true; } From f4346707f603a50d5ca12ae118d643eec17d3b72 Mon Sep 17 00:00:00 2001 From: bbimber Date: Thu, 20 Jul 2023 11:39:54 -0700 Subject: [PATCH 45/58] mGAP UI updates --- mGAP/resources/views/externalData.html | 8 ++++---- mGAP/resources/views/quickLinks.html | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mGAP/resources/views/externalData.html b/mGAP/resources/views/externalData.html index d8fdf6127..0494b3090 100644 --- a/mGAP/resources/views/externalData.html +++ b/mGAP/resources/views/externalData.html @@ -33,15 +33,15 @@

- + - + - + - +
Principal InvestigatorGrant #BioProjectPrincipal InvestigatorGrant #BioProjectSpecies
Betsy Ferguson, Ph.D.NIH R24OD021324PRJNA382404Betsy Ferguson, Ph.D.NIH R24OD021324PRJNA382404Rhesus macaque
Jeffrey Rogers, Ph.D.R24-OD11173PRJNA251548Jeffrey Rogers, Ph.D.R24-OD11173PRJNA251548Rhesus macaque
Robert Norgren, Ph.D.R24-3R24RR017444-07S1PRJNA255522Robert Norgren, Ph.D.R24-3R24RR017444-07S1PRJNA255522Rhesus macaque
diff --git a/mGAP/resources/views/quickLinks.html b/mGAP/resources/views/quickLinks.html index 78258be0d..b1d529761 100644 --- a/mGAP/resources/views/quickLinks.html +++ b/mGAP/resources/views/quickLinks.html @@ -28,9 +28,9 @@

Other Links:
From bb4711ceb33857ede92a1f8a148d1587d74b4e58 Mon Sep 17 00:00:00 2001 From: bbimber Date: Thu, 20 Jul 2023 12:46:33 -0700 Subject: [PATCH 46/58] Allow mGAP redirect to also use variant search --- mGAP/src/org/labkey/mgap/mGAPController.java | 30 ++++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/mGAP/src/org/labkey/mgap/mGAPController.java b/mGAP/src/org/labkey/mgap/mGAPController.java index a022b2b19..7fd5a1373 100644 --- a/mGAP/src/org/labkey/mgap/mGAPController.java +++ b/mGAP/src/org/labkey/mgap/mGAPController.java @@ -740,8 +740,7 @@ public ModelAndView getConfirmView(Object o, BindException errors) throws Except { setTitle("Update Update SnpEff Annotation"); - HtmlView view = new HtmlView("Do you want to continue?"); - return view; + return new HtmlView("Do you want to continue?"); } @Override @@ -750,7 +749,7 @@ public boolean handlePost(Object o, BindException errors) throws Exception UserSchema us = QueryService.get().getUserSchema(getUser(), getContainer(), mGAPSchema.NAME); TableSelector ts = new TableSelector(us.getTable(mGAPSchema.TABLE_VARIANT_CATALOG_RELEASES), PageFlowUtil.set("rowId", "objectId", "container"), null, new Sort("-releaseDate")); ts.setMaxRows(1); - Integer releaseRowId; + int releaseRowId; String releaseObjectId; String releaseContainerId; try (Results rs = ts.getResults()) @@ -875,6 +874,7 @@ public static class GenomeBrowserForm private String _databaseId; private String _species; private String _trackName; + private String _target = "browser"; public String getDatabaseId() { @@ -905,6 +905,16 @@ public void setTrackName(String trackName) { _trackName = trackName; } + + public String getTarget() + { + return _target; + } + + public void setTarget(String target) + { + _target = target; + } } @RequiresPermission(ReadPermission.class) @@ -925,6 +935,10 @@ public URLHelper getRedirectURL(GenomeBrowserForm form) } JSONObject ctx = ModuleLoader.getInstance().getModule(mGAPModule.class).getPageContextJson(getViewContext()); + if (ctx.isNull("mgapJBrowse")) + { + throw new NotFoundException("There is no mGAP release on this server"); + } String jbrowseDatabaseId = StringUtils.trimToNull(form.getDatabaseId()); String species = StringUtils.trimToNull(form.getSpecies()); @@ -938,13 +952,19 @@ public URLHelper getRedirectURL(GenomeBrowserForm form) throw new NotFoundException("No databaseId provided"); } + String actionName = form.getTarget() == null ? "browser" : form.getTarget(); + if (!"browser".equals(actionName) && !"variantSearch".equals(actionName)) + { + throw new IllegalArgumentException("Unknown target: " + actionName); + } + + Map params = new HashMap<>(getViewContext().getRequest().getParameterMap()); params.put("session", new String[]{jbrowseDatabaseId}); String trackName = StringUtils.trimToNull(form.getTrackName()); if (trackName != null) { - List trackNames = Arrays.asList(trackName.split(",")); Collection trackIDs = getTracks(target, jbrowseDatabaseId, ctx.getString("mgapReleaseGUID"), trackNames); if (!trackIDs.isEmpty()) @@ -953,7 +973,7 @@ public URLHelper getRedirectURL(GenomeBrowserForm form) } } - ActionURL ret = DetailsURL.fromString("/jbrowse/browser.view", target).getActionURL(); + ActionURL ret = DetailsURL.fromString("/jbrowse/" + actionName + ".view", target).getActionURL(); params.forEach((key, value) -> { Arrays.stream(value).forEach(v -> { // This is a convenience to allow shorter URLs for active sample filters: From f3f8c25e41a8da1a8e93c141739c0a5de22e47e6 Mon Sep 17 00:00:00 2001 From: bbimber Date: Fri, 21 Jul 2023 06:34:33 -0700 Subject: [PATCH 47/58] Support both VCF and table selects for GroupCompare --- .../mgap/pipeline/GroupCompareStep.java | 45 ++++++++++++------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java b/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java index 33850eb0e..6e62b3c59 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java +++ b/mGAP/src/org/labkey/mgap/pipeline/GroupCompareStep.java @@ -62,7 +62,12 @@ public Provider() {{ }}, null), - ToolParameterDescriptor.create("selects", "Select Expressions", "Filter expressions that can be used to subset variants. Passing variants will be written to a separate TSV file.", "sequenceanalysis-variantfilterpanel", new JSONObject(){{ + ToolParameterDescriptor.create("vcfSelects", "VCF Select Expressions", "Filter expressions that can be used to subset variants output in the VCF.", "sequenceanalysis-variantfilterpanel", new JSONObject(){{ + put("mode", "SELECT"); + put("showFilterName", false); + put("title", "Select Expressions"); + }}, null), + ToolParameterDescriptor.create("tableSelects", "Table Select Expressions", "Filter expressions that can be used to subset variants. Passing variants will be written to a separate TSV file. This does not impact the VCF", "sequenceanalysis-variantfilterpanel", new JSONObject(){{ put("mode", "SELECT"); put("showFilterName", false); put("title", "Select Expressions"); @@ -165,22 +170,8 @@ public Output processVariants(File inputVCF, File outputDirectory, ReferenceGeno } //JEXL - String selectText = getProvider().getParameterByName("selects").extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), String.class, null); - if (selectText != null) - { - JSONArray filterArr = new JSONArray(selectText); - for (int i = 0; i < filterArr.length(); i++) - { - JSONArray arr = filterArr.getJSONArray(i); - if (arr.length() < 2) - { - throw new PipelineJobException("Improper select expression: " + filterArr.getString(i)); - } - - extraArgs.add("-select"); - extraArgs.add(arr.getString(1)); - } - } + addSelects("vcfSelects", "-select", extraArgs); + addSelects("tableSelects", "-table-select", extraArgs); String fieldsText = StringUtils.trimToNull(getProvider().getParameterByName("extraFields").extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), String.class, null)); if (fieldsText != null) @@ -222,6 +213,26 @@ public Output processVariants(File inputVCF, File outputDirectory, ReferenceGeno return output; } + private void addSelects(String param, String arg, List extraArgs) throws PipelineJobException + { + String selectText = getProvider().getParameterByName(param).extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), String.class, null); + if (selectText != null) + { + JSONArray filterArr = new JSONArray(selectText); + for (int i = 0; i < filterArr.length(); i++) + { + JSONArray arr = filterArr.getJSONArray(i); + if (arr.length() < 2) + { + throw new PipelineJobException("Improper select expression: " + filterArr.getString(i)); + } + + extraArgs.add(arg); + extraArgs.add(arr.getString(1)); + } + } + } + public static class GroupComparison extends AbstractDiscvrSeqWrapper { public GroupComparison(Logger log) From 35370a815fe7f2752ba7434111532fd3502b5186 Mon Sep 17 00:00:00 2001 From: bbimber Date: Sat, 22 Jul 2023 16:54:48 -0700 Subject: [PATCH 48/58] Misc improvements to JBrowse search --- mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java b/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java index ceb6acd78..a84cf8f5b 100644 --- a/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java +++ b/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java @@ -39,6 +39,7 @@ else if (ams.size() > 1) if (am.isHidden()) { field.setHidden(true); + field.setInDefaultColumns(false); } if (am.isIndexed()) From efd2488264056d7dd9e78963da0590ac0fac09b2 Mon Sep 17 00:00:00 2001 From: bbimber Date: Sun, 23 Jul 2023 06:43:13 -0700 Subject: [PATCH 49/58] Attempt to fix intermittent test failure --- mcc/test/src/org/labkey/test/tests/mcc/MccTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java b/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java index 4b2b371c0..289b36623 100644 --- a/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java +++ b/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java @@ -829,7 +829,7 @@ private void doRequestFormTestWithFailure() throws Exception assertElementNotPresent(getButton("Submit")); assertElementNotPresent(getButton("Approve Request")); - stopImpersonating(false); + stopImpersonating(true); } private FormElement getFormElementByName(String name) From a72c7696c1c24303ed83f58d4b67c45733ceab7b Mon Sep 17 00:00:00 2001 From: bbimber Date: Sun, 23 Jul 2023 09:14:40 -0700 Subject: [PATCH 50/58] Attempt to fix intermittent test failure --- .../src/org/labkey/test/tests/mcc/MccTest.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java b/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java index 289b36623..f9d2a158e 100644 --- a/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java +++ b/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java @@ -829,7 +829,9 @@ private void doRequestFormTestWithFailure() throws Exception assertElementNotPresent(getButton("Submit")); assertElementNotPresent(getButton("Approve Request")); - stopImpersonating(true); + stopImpersonating(false); + + getFormElementByName("lastName").waitFor(this); } private FormElement getFormElementByName(String name) @@ -921,6 +923,18 @@ private void doSetup() throws Exception goToHome(); } + @Override + public void goToProjectHome() + { + super.goToProjectHome(); + + // NOTE: if we prematurely leave this page, there is an error alert + if (isElementPresent(Locator.tagWithText("a", "MCC Dashboard"))) + { + waitForCensusToLoad(); + } + } + private void populateLookups(String name) { beginAt(getProjectName() + "/Colonies/" + name + "/project-begin.view"); From d5ad4f22fa1ecca8a29860515afee8c668a1268b Mon Sep 17 00:00:00 2001 From: bbimber Date: Tue, 25 Jul 2023 09:14:33 -0700 Subject: [PATCH 51/58] Allow JBrowse customizers to point toward parent, not workbook --- mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java | 5 ++--- mGAP/src/org/labkey/mgap/jbrowse/mGAPGroupsProvider.java | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java b/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java index a84cf8f5b..51e6790ef 100644 --- a/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java +++ b/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java @@ -25,7 +25,8 @@ public class mGAPFieldCustomizer implements JBrowseFieldCustomizer @Override public void customizeField(JBrowseFieldDescriptor field, Container c, User u) { - List ams = new TableSelector(QueryService.get().getUserSchema(u, c, mGAPSchema.NAME).getTable(mGAPSchema.TABLE_VARIANT_ANNOTATIONS), new SimpleFilter(FieldKey.fromString("infoKey"), field.getFieldName()), null).getArrayList(AnnotationModel.class); + Container target = c.isWorkbook() ? c.getParent() : c; + List ams = new TableSelector(QueryService.get().getUserSchema(u, target, mGAPSchema.NAME).getTable(mGAPSchema.TABLE_VARIANT_ANNOTATIONS), new SimpleFilter(FieldKey.fromString("infoKey"), field.getFieldName()), null).getArrayList(AnnotationModel.class); if (ams.isEmpty()) { return; @@ -76,8 +77,6 @@ else if (ams.size() > 1) { field.setUrl(am.getUrl()); } - - } @Override diff --git a/mGAP/src/org/labkey/mgap/jbrowse/mGAPGroupsProvider.java b/mGAP/src/org/labkey/mgap/jbrowse/mGAPGroupsProvider.java index 0641aff68..cdd62cca1 100644 --- a/mGAP/src/org/labkey/mgap/jbrowse/mGAPGroupsProvider.java +++ b/mGAP/src/org/labkey/mgap/jbrowse/mGAPGroupsProvider.java @@ -21,8 +21,8 @@ public class mGAPGroupsProvider implements GroupsProvider @Override public @Nullable List getGroupMembers(String trackId, String groupName, Container c, User u) { - // TODO: new table? - TableInfo ti = QueryService.get().getUserSchema(u, c, mGAPSchema.NAME).getTable(mGAPSchema.TABLE_RELEASE_TRACK_SUBSETS); + Container target = c.isWorkbook() ? c.getParent() : c; + TableInfo ti = QueryService.get().getUserSchema(u, target, mGAPSchema.NAME).getTable(mGAPSchema.TABLE_RELEASE_TRACK_SUBSETS); return new TableSelector(ti, PageFlowUtil.set("subjectId"), new SimpleFilter(FieldKey.fromString("trackName"), groupName).addCondition(FieldKey.fromString("trackId"), trackId), null).getArrayList(String.class); } From bf176834c46f21ab714e175f9ef85d4a8e2886e3 Mon Sep 17 00:00:00 2001 From: bbimber Date: Tue, 25 Jul 2023 09:28:31 -0700 Subject: [PATCH 52/58] Bugfix to mGAP redirect links --- mGAP/resources/views/quickLinks.html | 2 +- mGAP/src/org/labkey/mgap/mGAPController.java | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/mGAP/resources/views/quickLinks.html b/mGAP/resources/views/quickLinks.html index b1d529761..72eff359a 100644 --- a/mGAP/resources/views/quickLinks.html +++ b/mGAP/resources/views/quickLinks.html @@ -28,7 +28,7 @@

Other Links:
    -
  • Free-text Variant Search
  • +
  • Free-text Variant Search
  • All Variant Catalog Releases
  • Raw Sequence Data
  • Annotation Strategy
  • diff --git a/mGAP/src/org/labkey/mgap/mGAPController.java b/mGAP/src/org/labkey/mgap/mGAPController.java index 7fd5a1373..61d528b47 100644 --- a/mGAP/src/org/labkey/mgap/mGAPController.java +++ b/mGAP/src/org/labkey/mgap/mGAPController.java @@ -958,10 +958,28 @@ public URLHelper getRedirectURL(GenomeBrowserForm form) throw new IllegalArgumentException("Unknown target: " + actionName); } - Map params = new HashMap<>(getViewContext().getRequest().getParameterMap()); params.put("session", new String[]{jbrowseDatabaseId}); + // This requires trackId + if ("variantSearch".equals(actionName)) + { + Collection trackIDs = getTracks(target, jbrowseDatabaseId, ctx.getString("mgapReleaseGUID"), Collections.singletonList("mGAP Release")); + if (!trackIDs.isEmpty()) + { + if (trackIDs.size() > 1) + { + _log.error("More than one track found matching 'mGAP Release' for release: " + ctx.getString("mgapReleaseGUID")); + } + + params.put("trackId", new String[]{trackIDs.iterator().next()}); + } + else + { + throw new IllegalArgumentException("Unable to find primary track for release: " + ctx.getString("mgapReleaseGUID")); + } + } + String trackName = StringUtils.trimToNull(form.getTrackName()); if (trackName != null) { From 28787f5c709abece86d72ed7185fd56f3423b3ed Mon Sep 17 00:00:00 2001 From: bbimber Date: Tue, 25 Jul 2023 14:48:36 -0700 Subject: [PATCH 53/58] Improvements to the filter panel in JBrowse free-text search --- .../mgap/jbrowse/mGAPFieldCustomizer.java | 19 +++++++++++++++++++ .../mgap/jbrowse/mGAPGroupsProvider.java | 14 ++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java b/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java index 51e6790ef..d3e53152d 100644 --- a/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java +++ b/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java @@ -15,7 +15,9 @@ import org.labkey.mgap.mGAPModule; import org.labkey.mgap.mGAPSchema; +import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.List; public class mGAPFieldCustomizer implements JBrowseFieldCustomizer @@ -79,6 +81,23 @@ else if (ams.size() > 1) } } + @Override + public List getPromotedFilters(Collection indexedFields, Container c, User u) + { + List ret = new ArrayList<>(); + if (indexedFields.contains("IMPACT")) + { + ret.add("Protein Coding Variants;IMPACT,does not equal,MODIFIER"); + } + + if (indexedFields.contains("OG")) + { + ret.add("Overlapping a Gene;OG,is not empty,"); + } + + return ret; + } + @Override public boolean isAvailable(Container c, User u) { diff --git a/mGAP/src/org/labkey/mgap/jbrowse/mGAPGroupsProvider.java b/mGAP/src/org/labkey/mgap/jbrowse/mGAPGroupsProvider.java index cdd62cca1..e7cb9f5d6 100644 --- a/mGAP/src/org/labkey/mgap/jbrowse/mGAPGroupsProvider.java +++ b/mGAP/src/org/labkey/mgap/jbrowse/mGAPGroupsProvider.java @@ -2,7 +2,10 @@ import org.jetbrains.annotations.Nullable; import org.labkey.api.data.Container; +import org.labkey.api.data.DbScope; +import org.labkey.api.data.SQLFragment; import org.labkey.api.data.SimpleFilter; +import org.labkey.api.data.SqlSelector; import org.labkey.api.data.TableInfo; import org.labkey.api.data.TableSelector; import org.labkey.api.jbrowse.GroupsProvider; @@ -14,6 +17,7 @@ import org.labkey.mgap.mGAPModule; import org.labkey.mgap.mGAPSchema; +import java.util.Collections; import java.util.List; public class mGAPGroupsProvider implements GroupsProvider @@ -27,6 +31,16 @@ public class mGAPGroupsProvider implements GroupsProvider return new TableSelector(ti, PageFlowUtil.set("subjectId"), new SimpleFilter(FieldKey.fromString("trackName"), groupName).addCondition(FieldKey.fromString("trackId"), trackId), null).getArrayList(String.class); } + @Override + public @Nullable List getGroupNames(Container c, User u) + { + Container target = c.isWorkbook() ? c.getParent() : c; + TableInfo ti = QueryService.get().getUserSchema(u, target, mGAPSchema.NAME).getTable(mGAPSchema.TABLE_RELEASE_TRACK_SUBSETS); + SqlSelector ss = new SqlSelector(DbScope.getLabKeyScope(), new SQLFragment("SELECT distinct trackName FROM ").append(ti.getFromSQL("x", Collections.singleton(FieldKey.fromString("trackName"))))); + + return ss.getArrayList(String.class); + } + @Override public boolean isAvailable(Container c, User u) { From acf560d0221840431827f0f3fb1737a223c39d61 Mon Sep 17 00:00:00 2001 From: bbimber Date: Tue, 25 Jul 2023 16:06:47 -0700 Subject: [PATCH 54/58] Bugfixes to filter panel --- mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java b/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java index d3e53152d..b70428a91 100644 --- a/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java +++ b/mGAP/src/org/labkey/mgap/jbrowse/mGAPFieldCustomizer.java @@ -87,12 +87,12 @@ public List getPromotedFilters(Collection indexedFields, Contain List ret = new ArrayList<>(); if (indexedFields.contains("IMPACT")) { - ret.add("Protein Coding Variants;IMPACT,does not equal,MODIFIER"); + ret.add("Protein Coding Variants|IMPACT,does not equal,MODIFIER"); } if (indexedFields.contains("OG")) { - ret.add("Overlapping a Gene;OG,is not empty,"); + ret.add("Overlapping a Gene|OG,is not empty,"); } return ret; From b12940e78d113cc5261793995fdefb0863581132 Mon Sep 17 00:00:00 2001 From: bbimber Date: Thu, 3 Aug 2023 13:42:42 -0700 Subject: [PATCH 55/58] Test fixes (#117) * Test fix * MCC version updates --- .../org/labkey/test/tests/mgap/MgapTest.java | 4 + mcc/package-lock.json | 14884 ++++++++-------- mcc/package.json | 26 +- mcc/src/client/Dashboard/BarChart.spec.tsx | 31 +- mcc/src/client/Dashboard/Dashboard.spec.tsx | 12 +- mcc/src/client/Dashboard/PieChart.spec.tsx | 8 +- mcc/src/client/test/jest.setup.ts | 2 +- .../org/labkey/test/tests/mcc/MccTest.java | 3 +- 8 files changed, 7393 insertions(+), 7577 deletions(-) diff --git a/mGAP/test/src/org/labkey/test/tests/mgap/MgapTest.java b/mGAP/test/src/org/labkey/test/tests/mgap/MgapTest.java index d14efa883..6ca714e1a 100644 --- a/mGAP/test/src/org/labkey/test/tests/mgap/MgapTest.java +++ b/mGAP/test/src/org/labkey/test/tests/mgap/MgapTest.java @@ -17,6 +17,7 @@ package org.labkey.test.tests.mgap; import org.apache.commons.lang3.tuple.Pair; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -99,8 +100,11 @@ private void testmGapSessionCardDisplay() { beginAt("/" + getProjectName() + "/jbrowse-jbrowse.view?session=mgapF&location=1:8328..8842"); JBrowseTestHelper.waitForJBrowseToLoad(this); + sleep(200); // The session can refresh after filter applied Actions actions = new Actions(getDriver()); + Assert.assertEquals("Incorrect number of variants", 1, JBrowseTestHelper.getTotalVariantFeatures(this)); + WebElement toClick = getDriver().findElements(JBrowseTestHelper.getVariantWithinTrack(this, "mgap_hg38", "SNV A -> T")).stream().filter(WebElement::isDisplayed).collect(JBrowseTestHelper.toSingleton()); actions.click(toClick).perform(); waitForElement(Locator.tagWithText("span", "Genes and Gene Predictions")); diff --git a/mcc/package-lock.json b/mcc/package-lock.json index dfa8d782d..655fad19e 100644 --- a/mcc/package-lock.json +++ b/mcc/package-lock.json @@ -8,7 +8,7 @@ "name": "mcc", "version": "0.0.0", "dependencies": { - "@labkey/api": "^1.16.0", + "@labkey/api": "^1.23.0", "@labkey/components": "~2.217.0", "@material-ui/core": "^4.12.4", "@material-ui/styles": "^4.11.5", @@ -20,30 +20,32 @@ "react-hot-loader": "^4.13.0", "react-tooltip": "^4.2.21", "tsv": "^0.2.0", - "uuid": "^8.3.2" + "uuid": "^9.0.0" }, "devDependencies": { - "@labkey/build": "~6.1.0", + "@labkey/build": "^6.14.0", "@types/chart.js": "^2.9.37", - "@types/enzyme": "3.10.9", - "@types/enzyme-adapter-react-16": "1.0.6", - "@types/jest": "^27.5.2", - "@types/react-dom": "^17.0.2", + "@types/jest": "^29.0.0", + "@types/jexl": "^2.3.1", + "@types/jquery": "^3.0.0", + "@types/node": "^18.17.1", "@types/tsv": "^0.2.1", - "@types/uuid": "^8.3.4", + "@wojtekmaj/enzyme-adapter-react-17": "^0.8.0", "enzyme": "^3.11.0", - "enzyme-adapter-react-16": "1.15.6", - "jest": "^27.4.7", - "jest-cli": "^27.5.1", - "ts-jest": "^27.1.5" + "jest": "^29.0.0", + "jest-cli": "^29.0.0", + "jest-mock": "^29.0.0", + "jsdom-global": "^3.0.2", + "rimraf": "^3.0.2", + "ts-jest": "^29.0.0" } }, "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { @@ -51,43 +53,43 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", "dependencies": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", - "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", - "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "dependencies": { "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.7", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.8", - "@babel/parser": "^7.17.8", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", + "json5": "^2.2.2", "semver": "^6.3.0" }, "engines": { @@ -98,74 +100,54 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/generator": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.0.tgz", - "integrity": "sha512-81YO9gGx6voPXlvYdZBliFXAZU8vZ9AZ6z+CjlmcnaeOcYSFbMTpdeDUO9xD9dh/68Vq03I8ZspfUTPfitcDHg==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz", + "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==", "dependencies": { - "@babel/types": "^7.18.0", - "@jridgewell/gen-mapping": "^0.3.0", + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", - "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz", + "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==", "dev": true, "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz", - "integrity": "sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz", + "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==", "dependencies": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.20.2", - "semver": "^6.3.0" + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -174,27 +156,21 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", - "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz", + "integrity": "sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -204,13 +180,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", - "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", + "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -220,15 +197,13 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", @@ -238,236 +213,223 @@ "@babel/core": "^7.4.0-0" } }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", "dependencies": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", "dev": true, "dependencies": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", - "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.0", - "@babel/types": "^7.18.0" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", + "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-wrap-function": "^7.22.9" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", + "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dependencies": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, "dependencies": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz", + "integrity": "sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.0.tgz", - "integrity": "sha512-AE+HMYhmlMIbho9nbvicHyxFwhrO+xhKB6AhRxzl8w46Yj0VXTZjEsAoBVC7rB2I0jzX+yWyVybnO08qkfx6kg==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", + "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.0", - "@babel/types": "^7.18.0" + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.6", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", - "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.22.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -476,9 +438,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-AqDccGC+m5O/iUStSJy3DGRIUFu7WbY/CppZYwrEUB4N0tZlnI8CSTsgL7v5fHVFmUbRv2sd+yy27o8Ydt4MGg==", + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", "bin": { "parser": "bin/babel-parser.js" }, @@ -487,12 +449,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", - "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", + "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -502,14 +464,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", - "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", + "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -519,13 +481,14 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", - "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { @@ -536,13 +499,13 @@ } }, "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -552,13 +515,13 @@ } }, "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", - "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -569,12 +532,12 @@ } }, "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -585,12 +548,12 @@ } }, "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", - "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -601,12 +564,12 @@ } }, "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", - "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -617,12 +580,12 @@ } }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", - "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -633,12 +596,12 @@ } }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", - "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -649,12 +612,12 @@ } }, "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -665,16 +628,16 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" + "@babel/plugin-transform-parameters": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -684,12 +647,12 @@ } }, "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -700,13 +663,13 @@ } }, "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", - "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -717,13 +680,13 @@ } }, "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", - "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -733,14 +696,14 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", - "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -751,13 +714,13 @@ } }, "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", - "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=4" @@ -838,6 +801,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", @@ -861,11 +839,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz", - "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -970,11 +949,11 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", - "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -984,12 +963,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", - "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -999,14 +978,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", - "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-remap-async-to-generator": "^7.16.8" + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1016,12 +995,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1031,12 +1010,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.17.12.tgz", - "integrity": "sha512-jw8XW/B1i7Lqwqj2CbrViPcZijSxfguBWZP2aN59NHgxUyO/OcO1mfdCxH13QhN5LbWhPkX+f+brKGhZTiqtZQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz", + "integrity": "sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1046,18 +1025,19 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.17.12.tgz", - "integrity": "sha512-cvO7lc7pZat6BsvH6l/EGaI8zpl8paICaoGk+7x7guvtfak/TbIf66nYmJOH13EuG0H+Xx3M+9LQDtSvZFKXKw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", + "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, "engines": { @@ -1068,12 +1048,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", - "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1083,12 +1064,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", - "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz", + "integrity": "sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1098,13 +1079,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1114,12 +1095,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", - "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1129,13 +1110,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1145,12 +1126,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", - "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", + "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1160,14 +1141,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1177,12 +1158,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", - "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1192,12 +1173,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1207,14 +1188,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", - "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", + "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1224,15 +1204,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.0.tgz", - "integrity": "sha512-cCeR0VZWtfxWS4YueAK2qtHtBPJRSaJcMlbS8jhSIm/A3E2Kpro4W1Dn4cqJtp59dtWfXjQwK7SPKF8ghs7rlw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", + "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-simple-access": "^7.17.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1242,16 +1221,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.0.tgz", - "integrity": "sha512-vwKpxdHnlM5tIrRt/eA0bzfbi7gUBLN08vLu38np1nZevlPySRe6yvuATJB5F/WPJ+ur4OXwpVYq9+BsxqAQuQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", + "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1261,13 +1239,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", - "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1277,13 +1255,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", - "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1293,12 +1271,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz", - "integrity": "sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1308,13 +1286,30 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz", + "integrity": "sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { "node": ">=6.9.0" @@ -1324,12 +1319,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", - "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", + "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1339,12 +1334,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1354,12 +1349,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", + "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1369,16 +1364,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz", - "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz", + "integrity": "sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-jsx": "^7.17.12", - "@babel/types": "^7.17.12" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1388,12 +1383,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", + "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", "dev": true, "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.16.7" + "@babel/plugin-transform-react-jsx": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1403,13 +1398,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.0.tgz", - "integrity": "sha512-6+0IK6ouvqDn9bmEG7mEyF/pwlJXVj5lwydybpyyH3D0A7Hftk+NCTdYjnLNZksn261xaOV5ksmp20pQEmc2RQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz", + "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1419,13 +1414,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", - "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz", + "integrity": "sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "regenerator-transform": "^0.15.0" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.1" }, "engines": { "node": ">=6.9.0" @@ -1435,12 +1430,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", - "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1450,12 +1445,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1465,13 +1460,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", - "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1481,12 +1476,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1496,12 +1491,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.17.12.tgz", - "integrity": "sha512-kAKJ7DX1dSRa2s7WN1xUAuaQmkTpN+uig4wCKWivVXIObqGbVTUlSavHyfI2iZvz89GFAMGm9p2DBJ4Y1Tp0hw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1511,12 +1506,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", - "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1526,14 +1521,15 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.1.tgz", - "integrity": "sha512-F+RJmL479HJmC0KeqqwEGZMg1P7kWArLGbAKfEi9yPthJyMNjF+DjxFF/halfQvq1Q9GFM4TUbYDNV8xe4Ctqg==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.9.tgz", + "integrity": "sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-typescript": "^7.17.12" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.9", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1543,12 +1539,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz", + "integrity": "sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1558,13 +1554,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1574,37 +1570,38 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -1614,44 +1611,44 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", "semver": "^6.3.0" }, "engines": { @@ -1661,19 +1658,10 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6.tgz", + "integrity": "sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", @@ -1683,21 +1671,21 @@ "esutils": "^2.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/preset-react": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", + "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-react-display-name": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.6", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-pure-annotations": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1707,14 +1695,14 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", - "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", + "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-typescript": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1723,55 +1711,61 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "node_modules/@babel/runtime": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", - "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", + "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", "dependencies": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs2": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.17.9.tgz", - "integrity": "sha512-+QThIsnjVY12uURTvmnW33risFZ7ulq6OWw0VJL08UwiYiWVp9PM63s+W1L2ppajYyKAYKb7afcGYSHzA0k04Q==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.22.6.tgz", + "integrity": "sha512-GTJVRjzQIHUBwRzuWxPII87XoWxXzILBJrQh5gqIV6q6m231Y0BBA9NKta5FV5Lbl8z5gS3+m6YSoKJp0KQJ4g==", "dependencies": { - "core-js": "^2.6.5", - "regenerator-runtime": "^0.13.4" + "core-js": "^2.6.12", + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.0.tgz", - "integrity": "sha512-oNOO4vaoIQoGjDQ84LgtF/IAlxlyqL4TUuoQ7xLkQETFaHkY1F7yazhB4Kt3VcZGL0ZF/jhrEpnXqUb0M7V3sw==", - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.0", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.18.0", - "@babel/types": "^7.18.0", + "version": "7.22.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz", + "integrity": "sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==", + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.7", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/types": "^7.22.5", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1780,11 +1774,12 @@ } }, "node_modules/@babel/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.0.tgz", - "integrity": "sha512-vhAmLPAiC8j9K2GnsnLPCIH5wCrPpYIVBCWRBFDCB7Y/BXLqi/O+1RSTTM2bsmg6U/551+FCf9PNPxjABmxHTw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1806,27 +1801,28 @@ } }, "node_modules/@emotion/babel-plugin": { - "version": "11.9.2", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz", - "integrity": "sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw==", + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", "dependencies": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/plugin-syntax-jsx": "^7.12.13", - "@babel/runtime": "^7.13.10", - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.5", - "@emotion/serialize": "^1.0.2", - "babel-plugin-macros": "^2.6.1", + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", "convert-source-map": "^1.5.0", "escape-string-regexp": "^4.0.0", "find-root": "^1.1.0", "source-map": "^0.5.7", - "stylis": "4.0.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "stylis": "4.2.0" } }, + "node_modules/@emotion/babel-plugin/node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -1838,16 +1834,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@emotion/babel-plugin/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@emotion/cache": { - "version": "11.7.1", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.7.1.tgz", - "integrity": "sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==", + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", "dependencies": { - "@emotion/memoize": "^0.7.4", - "@emotion/sheet": "^1.1.0", - "@emotion/utils": "^1.0.0", - "@emotion/weak-memoize": "^0.2.5", - "stylis": "4.0.13" + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" } }, "node_modules/@emotion/core": { @@ -1899,15 +1903,20 @@ "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz", "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==" }, + "node_modules/@emotion/core/node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, "node_modules/@emotion/core/node_modules/@emotion/utils": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==" }, - "node_modules/@emotion/core/node_modules/csstype": { - "version": "2.6.20", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", - "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" + "node_modules/@emotion/core/node_modules/@emotion/weak-memoize": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", + "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" }, "node_modules/@emotion/css": { "version": "10.0.27", @@ -1936,16 +1945,16 @@ "csstype": "^2.5.7" } }, + "node_modules/@emotion/css/node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, "node_modules/@emotion/css/node_modules/@emotion/utils": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==" }, - "node_modules/@emotion/css/node_modules/csstype": { - "version": "2.6.20", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", - "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" - }, "node_modules/@emotion/hash": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", @@ -1965,52 +1974,59 @@ "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" }, "node_modules/@emotion/memoize": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz", - "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" }, "node_modules/@emotion/react": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.9.0.tgz", - "integrity": "sha512-lBVSF5d0ceKtfKCDQJveNAtkC7ayxpVlgOohLgXqRwqWr9bOf4TZAFFyIcNngnV6xK6X4x2ZeXq7vliHkoVkxQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@emotion/babel-plugin": "^11.7.1", - "@emotion/cache": "^11.7.1", - "@emotion/serialize": "^1.0.3", - "@emotion/utils": "^1.1.0", - "@emotion/weak-memoize": "^0.2.5", + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.1.tgz", + "integrity": "sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", "hoist-non-react-statics": "^3.3.1" }, "peerDependencies": { - "@babel/core": "^7.0.0", "react": ">=16.8.0" }, "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, "@types/react": { "optional": true } } }, "node_modules/@emotion/serialize": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.3.tgz", - "integrity": "sha512-2mSSvgLfyV3q+iVh3YWgNlUc2a9ZlDU7DjuP5MjK3AXRR0dYigCrP99aeFtaB2L/hjfEZdSThn5dsZ0ufqbvsA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", + "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", "dependencies": { - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.4", - "@emotion/unitless": "^0.7.5", - "@emotion/utils": "^1.0.0", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", "csstype": "^3.0.2" } }, + "node_modules/@emotion/serialize/node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "node_modules/@emotion/serialize/node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, "node_modules/@emotion/sheet": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.0.tgz", - "integrity": "sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==" + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" }, "node_modules/@emotion/styled": { "version": "10.3.0", @@ -2057,35 +2073,43 @@ "csstype": "^2.5.7" } }, + "node_modules/@emotion/styled-base/node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, "node_modules/@emotion/styled-base/node_modules/@emotion/utils": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==" }, - "node_modules/@emotion/styled-base/node_modules/csstype": { - "version": "2.6.20", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", - "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" - }, "node_modules/@emotion/stylis": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" }, "node_modules/@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "peerDependencies": { + "react": ">=16.8.0" + } }, "node_modules/@emotion/utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.1.0.tgz", - "integrity": "sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" }, "node_modules/@emotion/weak-memoize": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", - "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" }, "node_modules/@fortawesome/fontawesome-common-types": { "version": "0.2.36", @@ -2142,14 +2166,14 @@ } }, "node_modules/@fortawesome/react-fontawesome": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.15.tgz", - "integrity": "sha512-/HFHdcoLESxxMkqZAcZ6RXDJ69pVApwdwRos/B2kiMWxDSAX2dFK8Er2/+rG+RsrzWB/dsAyjefLmemgmfE18g==", + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.19.tgz", + "integrity": "sha512-Hyb+lB8T18cvLNX0S3llz7PcSOAJMLwiVKBuuzwM/nI5uoBw+gQjnf9il0fR1C3DKOI5Kc79pkJ4/xB0Uw9aFQ==", "dependencies": { - "prop-types": "^15.7.2" + "prop-types": "^15.8.1" }, "peerDependencies": { - "@fortawesome/fontawesome-svg-core": "^1.2.32", + "@fortawesome/fontawesome-svg-core": "~1 || ~6", "react": ">=16.x" } }, @@ -2193,20 +2217,20 @@ } }, "node_modules/@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.6.2.tgz", + "integrity": "sha512-0N0yZof5hi44HAR2pPS+ikJ3nzKNoZdVu8FffRf3wy47I7Dm7etk/3KetMdRUqzVd16V4O2m2ISpNTbnIuqy1w==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", + "@jest/types": "^29.6.1", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", + "jest-message-util": "^29.6.2", + "jest-util": "^29.6.2", "slash": "^3.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/console/node_modules/ansi-styles": { @@ -2267,6 +2291,15 @@ "node": ">=8" } }, + "node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/console/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -2280,42 +2313,42 @@ } }, "node_modules/@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.6.2.tgz", + "integrity": "sha512-Oj+5B+sDMiMWLhPFF+4/DvHOf+U10rgvCLGPHP8Xlsy/7QxS51aU/eBngudHlJXnaWD5EohAgJ4js+T6pa+zOg==", "dev": true, "dependencies": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/console": "^29.6.2", + "@jest/reporters": "^29.6.2", + "@jest/test-result": "^29.6.2", + "@jest/transform": "^29.6.2", + "@jest/types": "^29.6.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "emittery": "^0.8.1", + "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", + "jest-changed-files": "^29.5.0", + "jest-config": "^29.6.2", + "jest-haste-map": "^29.6.2", + "jest-message-util": "^29.6.2", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.6.2", + "jest-resolve-dependencies": "^29.6.2", + "jest-runner": "^29.6.2", + "jest-runtime": "^29.6.2", + "jest-snapshot": "^29.6.2", + "jest-util": "^29.6.2", + "jest-validate": "^29.6.2", + "jest-watcher": "^29.6.2", "micromatch": "^4.0.4", - "rimraf": "^3.0.0", + "pretty-format": "^29.6.2", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -2384,6 +2417,15 @@ "node": ">=8" } }, + "node_modules/@jest/core/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/core/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -2397,104 +2439,125 @@ } }, "node_modules/@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.6.2.tgz", + "integrity": "sha512-AEcW43C7huGd/vogTddNNTDRpO6vQ2zaQNrttvWV18ArBx9Z56h7BIsXkNFJVOO4/kblWEQz30ckw0+L3izc+Q==", "dev": true, "dependencies": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/fake-timers": "^29.6.2", + "@jest/types": "^29.6.1", "@types/node": "*", - "jest-mock": "^27.5.1" + "jest-mock": "^29.6.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.6.2.tgz", + "integrity": "sha512-m6DrEJxVKjkELTVAztTLyS/7C92Y2b0VYqmDROYKLLALHn8T/04yPs70NADUYPrV3ruI+H3J0iUIuhkjp7vkfg==", + "dev": true, "dependencies": { - "expect": "^28.1.3", - "jest-snapshot": "^28.1.3" + "expect": "^29.6.2", + "jest-snapshot": "^29.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", - "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.2.tgz", + "integrity": "sha512-6zIhM8go3RV2IG4aIZaZbxwpOzz3ZiM23oxAlkquOIole+G6TrbeXnykxWYlqF7kz2HlBjdKtca20x9atkEQYg==", + "dev": true, "dependencies": { - "jest-get-type": "^28.0.2" + "jest-get-type": "^29.4.3" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/expect-utils/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "node_modules/@jest/fake-timers": { + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.6.2.tgz", + "integrity": "sha512-euZDmIlWjm1Z0lJ1D0f7a0/y5Kh/koLFMUBE5SUYWrmy8oNhJpbTBDAP6CxKnadcMLDoDf4waRYCe35cH6G6PA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.1", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.6.2", + "jest-mock": "^29.6.2", + "jest-util": "^29.6.2" + }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/expect/node_modules/@jest/transform": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", - "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", + "node_modules/@jest/globals": { + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.6.2.tgz", + "integrity": "sha512-cjuJmNDjs6aMijCmSa1g2TNG4Lby/AeU7/02VtpW+SLcZXzOLK2GpN2nLqcFjmhy3B3AoPeQVx7BnyOf681bAw==", + "dev": true, "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" + "@jest/environment": "^29.6.2", + "@jest/expect": "^29.6.2", + "@jest/types": "^29.6.1", + "jest-mock": "^29.6.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/expect/node_modules/@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "node_modules/@jest/reporters": { + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.6.2.tgz", + "integrity": "sha512-sWtijrvIav8LgfJZlrGCdN0nP2EWbakglJY49J1Y5QihcQLfy7ovyxxjJBRXMNltgt4uPtEcFmIMbVshEDfFWw==", + "dev": true, "dependencies": { - "@jest/schemas": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.6.2", + "@jest/test-result": "^29.6.2", + "@jest/transform": "^29.6.2", + "@jest/types": "^29.6.1", + "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.6.2", + "jest-util": "^29.6.2", + "jest-worker": "^29.6.2", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect/node_modules/@types/yargs": { - "version": "17.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.12.tgz", - "integrity": "sha512-Nz4MPhecOFArtm81gFQvQqdV7XYCrWKx5uUt6GNHredFHn1i2mtWqXTON7EPXMtNi1qjtjEM/VCHDhcHsAMLXQ==", - "dependencies": { - "@types/yargs-parser": "*" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/@jest/expect/node_modules/ansi-styles": { + "node_modules/@jest/reporters/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -2505,10 +2568,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@jest/expect/node_modules/chalk": { + "node_modules/@jest/reporters/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2520,10 +2584,11 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@jest/expect/node_modules/color-convert": { + "node_modules/@jest/reporters/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -2531,352 +2596,240 @@ "node": ">=7.0.0" } }, - "node_modules/@jest/expect/node_modules/color-name": { + "node_modules/@jest/reporters/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/@jest/expect/node_modules/diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect/node_modules/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", - "dependencies": { - "@jest/expect-utils": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/@jest/expect/node_modules/has-flag": { + "node_modules/@jest/reporters/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/@jest/expect/node_modules/jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "node_modules/@jest/reporters/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" + "has-flag": "^4.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": ">=8" } }, - "node_modules/@jest/expect/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "node_modules/@jest/schemas": { + "version": "29.6.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.0.tgz", + "integrity": "sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==", + "devOptional": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/expect/node_modules/jest-haste-map": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", - "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", + "node_modules/@jest/source-map": { + "version": "29.6.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.0.tgz", + "integrity": "sha512-oA+I2SHHQGxDCZpbrsCQSoMLb3Bz547JnM+jUr9qEbuw0vQlWZfpPS7CO9J7XiwKicEz9OFn/IYoLkkiUD7bzA==", + "dev": true, "dependencies": { - "@jest/types": "^28.1.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "micromatch": "^4.0.4", - "walker": "^1.0.8" + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/expect/node_modules/jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "node_modules/@jest/test-result": { + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.6.2.tgz", + "integrity": "sha512-3VKFXzcV42EYhMCsJQURptSqnyjqCGbtLuX5Xxb6Pm6gUf1wIRIl+mandIRGJyWKgNKYF9cnstti6Ls5ekduqw==", + "dev": true, "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" + "@jest/console": "^29.6.2", + "@jest/types": "^29.6.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/expect/node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "node_modules/@jest/test-sequencer": { + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.6.2.tgz", + "integrity": "sha512-GVYi6PfPwVejO7slw6IDO0qKVum5jtrJ3KoLGbgBWyr2qr4GaxFV6su+ZAjdTX75Sr1DkMFRk09r2ZVa+wtCGw==", + "dev": true, "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", + "@jest/test-result": "^29.6.2", "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "jest-haste-map": "^29.6.2", + "slash": "^3.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/expect/node_modules/jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "node_modules/@jest/test-sequencer/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": ">=8" } }, - "node_modules/@jest/expect/node_modules/jest-snapshot": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", - "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", + "node_modules/@jest/transform": { + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.6.2.tgz", + "integrity": "sha512-ZqCqEISr58Ce3U+buNFJYUktLJZOggfyvR+bZMaiV1e8B1SIvJbwZMrYz3gx/KAPn9EXmOmN+uB08yLCjWkQQg==", + "dev": true, "dependencies": { "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", + "@jest/types": "^29.6.1", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", - "expect": "^28.1.3", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-haste-map": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "natural-compare": "^1.4.0", - "pretty-format": "^28.1.3", - "semver": "^7.3.5" + "jest-haste-map": "^29.6.2", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.6.2", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/expect/node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "color-convert": "^2.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect/node_modules/jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "node": ">=8" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@jest/expect/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@jest/expect/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": ">=7.0.0" } }, - "node_modules/@jest/expect/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "node_modules/@jest/expect/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true }, - "node_modules/@jest/expect/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/@jest/expect/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/expect/node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "node_modules/@jest/transform/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=8" } }, - "node_modules/@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" + "has-flag": "^4.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=8" } }, - "node_modules/@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", - "dev": true, + "node_modules/@jest/types": { + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", + "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", + "devOptional": true, "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/schemas": "^29.6.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { + "node_modules/@jest/types/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "devOptional": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -2887,11 +2840,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@jest/reporters/node_modules/chalk": { + "node_modules/@jest/types/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "devOptional": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2903,11 +2856,11 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@jest/reporters/node_modules/color-convert": { + "node_modules/@jest/types/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "devOptional": true, "dependencies": { "color-name": "~1.1.4" }, @@ -2915,35 +2868,26 @@ "node": ">=7.0.0" } }, - "node_modules/@jest/reporters/node_modules/color-name": { + "node_modules/@jest/types/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "devOptional": true }, - "node_modules/@jest/reporters/node_modules/has-flag": { + "node_modules/@jest/types/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, + "devOptional": true, "engines": { "node": ">=8" } }, - "node_modules/@jest/reporters/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/reporters/node_modules/supports-color": { + "node_modules/@jest/types/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "devOptional": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -2951,527 +2895,180 @@ "node": ">=8" } }, - "node_modules/@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dependencies": { - "@sinclair/typebox": "^0.24.1" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": ">=6.0.0" } }, - "node_modules/@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=6.0.0" } }, - "node_modules/@jest/source-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "engines": { - "node": ">=0.10.0" + "node": ">=6.0.0" } }, - "node_modules/@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", "dev": true, "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "dev": true, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "dependencies": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, - "node_modules/@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "node_modules/@labkey/api": { + "version": "1.23.0", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.23.0.tgz", + "integrity": "sha512-wZj62pN30b+JjVIj7GB4im+FhG8TdrO8lfMgCh7l0OVehMGU5PW1ThekYYtzEawmc/WoNlzT4ytRYqxZ5GHTDA==" + }, + "node_modules/@labkey/build": { + "version": "6.14.0", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/build/-/@labkey/build-6.14.0.tgz", + "integrity": "sha512-UTaQtGF7edUSy9jUTrQQ3MufhFYUWKUh7r0SX41Il455S3PRR6qtNfDAZqfmdZtGjhaX1B9q0J7IJl68UYI9Iw==", + "dev": true, + "dependencies": { + "@babel/core": "~7.20.12", + "@babel/plugin-proposal-class-properties": "~7.18.6", + "@babel/plugin-proposal-object-rest-spread": "~7.20.7", + "@babel/preset-env": "~7.20.2", + "@babel/preset-react": "~7.18.6", + "@babel/preset-typescript": "~7.18.6", + "babel-loader": "~8.3.0", + "bootstrap-sass": "~3.4.3", + "circular-dependency-plugin": "~5.2.2", + "copy-webpack-plugin": "~11.0.0", + "cross-env": "~7.0.3", + "css-loader": "~6.7.3", + "fork-ts-checker-webpack-plugin": "~7.2.14", + "html-webpack-plugin": "~5.5.0", + "mini-css-extract-plugin": "~2.7.2", + "react-hot-loader": "~4.13.1", + "resolve-url-loader": "~5.0.0", + "rimraf": "~3.0.2", + "sass": "~1.57.1", + "sass-loader": "~13.2.0", + "style-loader": "~3.3.1", + "typescript": "~4.9.4", + "webpack": "~5.75.0", + "webpack-bundle-analyzer": "~4.7.0", + "webpack-cli": "~5.0.1", + "webpack-dev-server": "~4.11.1" + } + }, + "node_modules/@labkey/build/node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=4.2.0" } }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "node_modules/@labkey/components": { + "version": "2.217.0", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-2.217.0.tgz", + "integrity": "sha512-pNWUTAbVwJUD4r+Gcq5nj+oVV7XprgojCC8LjOGj4y+opwLn9LNbblkoQ2SXvFZxXNTksX8LfEpWK7Xe9DGSdQ==", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "@fortawesome/fontawesome-free": "~5.15.4", + "@fortawesome/fontawesome-svg-core": "~1.2.36", + "@fortawesome/free-regular-svg-icons": "~5.15.4", + "@fortawesome/free-solid-svg-icons": "~5.15.4", + "@fortawesome/react-fontawesome": "~0.1.15", + "@labkey/api": "~1.15.0", + "@types/enzyme": "~3.10.11", + "@types/jest": "~28.1.6", + "bootstrap": "~3.4.1", + "classnames": "~2.3.1", + "enzyme": "~3.11.0", + "font-awesome": "~4.7.0", + "formsy-react": "~1.1.5", + "formsy-react-components": "~1.1.0", + "history": "~4.7.2", + "immer": "~9.0.6", + "immutable": "~3.8.2", + "jest": "~28.1.3", + "moment": "~2.29.3", + "moment-timezone": "~0.5.34", + "normalizr": "~3.6.1", + "numeral": "~2.0.6", + "react": "~16.14.0", + "react-beautiful-dnd": "~13.1.0", + "react-bootstrap": "~0.33.1", + "react-bootstrap-toggle": "~2.3.2", + "react-color": "~2.19.3", + "react-datepicker": "~4.2.1", + "react-dom": "~16.14.0", + "react-redux": "~5.1.0", + "react-router": "~3.2.6", + "react-select": "~4.3.1", + "react-sticky": "~6.0.3", + "react-treebeard": "~3.2.4", + "redux-actions": "~2.3.2", + "use-immer": "~0.6.0", + "vis-network": "~6.5.2" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "immutable": "^3.8.2", + "react": "^16.0", + "react-bootstrap": "^0.33.1", + "react-dom": "^16.0" } }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/@labkey/components/node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/transform/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "devOptional": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "devOptional": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "devOptional": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "devOptional": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "devOptional": true - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "devOptional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "devOptional": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", - "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", - "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@labkey/api": { - "version": "1.16.0", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.16.0.tgz", - "integrity": "sha512-C320dTPwmx2wtNRHSmixn1k9GspecmmxZF5Jsy4tW9PuMyJMY7MAD+pAZtNR5n2EL8/alB27qC/YrCiArQPDYQ==", - "license": "Apache-2.0" - }, - "node_modules/@labkey/build": { - "version": "6.1.7", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/build/-/@labkey/build-6.1.7.tgz", - "integrity": "sha512-pvGP4q3n0iJmiJUkLmKlfyZPiUUjEXJ2ZmrB1n8t0cpbtoklut6+mYF1JMmklv5PP4xqtstZAdK5nsVZ4DhX1Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@babel/core": "~7.17.8", - "@babel/plugin-proposal-class-properties": "~7.16.7", - "@babel/plugin-proposal-object-rest-spread": "~7.17.3", - "@babel/preset-env": "~7.16.11", - "@babel/preset-react": "~7.16.7", - "@babel/preset-typescript": "~7.16.7", - "@hot-loader/react-dom": "~16.14.0", - "babel-loader": "~8.2.4", - "bootstrap-sass": "~3.4.3", - "circular-dependency-plugin": "~5.2.2", - "copy-webpack-plugin": "~10.2.4", - "cross-env": "~7.0.3", - "css-loader": "~6.7.1", - "fork-ts-checker-webpack-plugin": "~7.2.1", - "html-webpack-plugin": "~5.5.0", - "mini-css-extract-plugin": "~2.6.0", - "react-hot-loader": "~4.12.21", - "resolve-url-loader": "~5.0.0", - "rimraf": "~3.0.2", - "sass": "~1.49.9", - "sass-loader": "~12.6.0", - "style-loader": "~3.3.1", - "typescript": "~4.6.3", - "webpack": "~5.73.0", - "webpack-cli": "~4.10.0", - "webpack-dev-server": "~4.9.3" - } - }, - "node_modules/@labkey/build/node_modules/@hot-loader/react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/@hot-loader/react-dom/-/react-dom-16.14.0.tgz", - "integrity": "sha512-EN9czvcLsMYmSDo5yRKZOAq3ZGRlDpad1gPtX0NdMMomJXcPE3yFSeFzE94X/NjOaiSVimB7LuqPYpkWVaIi4Q==", - "dev": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - }, - "peerDependencies": { - "react": "^16.14.0" - } - }, - "node_modules/@labkey/build/node_modules/react": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", - "dev": true, - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@labkey/build/node_modules/react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", - "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", - "dev": true, - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - }, - "peerDependencies": { - "react": "^16.14.0" - } - }, - "node_modules/@labkey/build/node_modules/react-hot-loader": { - "version": "4.12.21", - "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.21.tgz", - "integrity": "sha512-Ynxa6ROfWUeKWsTHxsrL2KMzujxJVPjs385lmB2t5cHUxdoRPGind9F00tOkdc1l5WBleOF4XEAMILY1KPIIDA==", - "dev": true, - "dependencies": { - "fast-levenshtein": "^2.0.6", - "global": "^4.3.0", - "hoist-non-react-statics": "^3.3.0", - "loader-utils": "^1.1.0", - "prop-types": "^15.6.1", - "react-lifecycles-compat": "^3.0.4", - "shallowequal": "^1.1.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "@types/react": "^15.0.0 || ^16.0.0", - "react": "^15.0.0 || ^16.0.0", - "react-dom": "^15.0.0 || ^16.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@labkey/build/node_modules/scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/@labkey/build/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@labkey/components": { - "version": "2.217.0", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-2.217.0.tgz", - "integrity": "sha512-pNWUTAbVwJUD4r+Gcq5nj+oVV7XprgojCC8LjOGj4y+opwLn9LNbblkoQ2SXvFZxXNTksX8LfEpWK7Xe9DGSdQ==", - "license": "SEE LICENSE IN LICENSE.txt", - "dependencies": { - "@fortawesome/fontawesome-free": "~5.15.4", - "@fortawesome/fontawesome-svg-core": "~1.2.36", - "@fortawesome/free-regular-svg-icons": "~5.15.4", - "@fortawesome/free-solid-svg-icons": "~5.15.4", - "@fortawesome/react-fontawesome": "~0.1.15", - "@labkey/api": "~1.15.0", - "@types/enzyme": "~3.10.11", - "@types/jest": "~28.1.6", - "bootstrap": "~3.4.1", - "classnames": "~2.3.1", - "enzyme": "~3.11.0", - "font-awesome": "~4.7.0", - "formsy-react": "~1.1.5", - "formsy-react-components": "~1.1.0", - "history": "~4.7.2", - "immer": "~9.0.6", - "immutable": "~3.8.2", - "jest": "~28.1.3", - "moment": "~2.29.3", - "moment-timezone": "~0.5.34", - "normalizr": "~3.6.1", - "numeral": "~2.0.6", - "react": "~16.14.0", - "react-beautiful-dnd": "~13.1.0", - "react-bootstrap": "~0.33.1", - "react-bootstrap-toggle": "~2.3.2", - "react-color": "~2.19.3", - "react-datepicker": "~4.2.1", - "react-dom": "~16.14.0", - "react-redux": "~5.1.0", - "react-router": "~3.2.6", - "react-select": "~4.3.1", - "react-sticky": "~6.0.3", - "react-treebeard": "~3.2.4", - "redux-actions": "~2.3.2", - "use-immer": "~0.6.0", - "vis-network": "~6.5.2" - }, - "peerDependencies": { - "immutable": "^3.8.2", - "react": "^16.0", - "react-bootstrap": "^0.33.1", - "react-dom": "^16.0" - } - }, - "node_modules/@labkey/components/node_modules/@jest/console": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", - "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/@labkey/components/node_modules/@jest/core": { @@ -3535,6 +3132,29 @@ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, + "node_modules/@labkey/components/node_modules/@jest/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", + "dependencies": { + "expect": "^28.1.3", + "jest-snapshot": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@labkey/components/node_modules/@jest/expect-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", + "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "dependencies": { + "jest-get-type": "^28.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, "node_modules/@labkey/components/node_modules/@jest/fake-timers": { "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", @@ -3607,6 +3227,17 @@ } } }, + "node_modules/@labkey/components/node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, "node_modules/@labkey/components/node_modules/@jest/source-map": { "version": "28.1.2", "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", @@ -3692,8 +3323,20 @@ "node_modules/@labkey/components/node_modules/@labkey/api": { "version": "1.15.0", "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.15.0.tgz", - "integrity": "sha1-OZEawkPKPCranyrgekMhPokH4A0=", - "license": "Apache-2.0" + "integrity": "sha1-OZEawkPKPCranyrgekMhPokH4A0=" + }, + "node_modules/@labkey/components/node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" + }, + "node_modules/@labkey/components/node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dependencies": { + "type-detect": "4.0.8" + } }, "node_modules/@labkey/components/node_modules/@sinonjs/fake-timers": { "version": "9.1.2", @@ -3703,15 +3346,6 @@ "@sinonjs/commons": "^1.7.0" } }, - "node_modules/@labkey/components/node_modules/@types/enzyme": { - "version": "3.10.12", - "resolved": "https://registry.npmjs.org/@types/enzyme/-/enzyme-3.10.12.tgz", - "integrity": "sha512-xryQlOEIe1TduDWAOphR0ihfebKFSWOXpIsk+70JskCfRfW+xALdnJ0r1ZOTo85F9Qsjk6vtlU7edTYHbls9tA==", - "dependencies": { - "@types/cheerio": "*", - "@types/react": "*" - } - }, "node_modules/@labkey/components/node_modules/@types/jest": { "version": "28.1.8", "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.8.tgz", @@ -3721,14 +3355,6 @@ "pretty-format": "^28.0.0" } }, - "node_modules/@labkey/components/node_modules/@types/yargs": { - "version": "17.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.12.tgz", - "integrity": "sha512-Nz4MPhecOFArtm81gFQvQqdV7XYCrWKx5uUt6GNHredFHn1i2mtWqXTON7EPXMtNi1qjtjEM/VCHDhcHsAMLXQ==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/@labkey/components/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -3834,6 +3460,11 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/@labkey/components/node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + }, "node_modules/@labkey/components/node_modules/diff-sequences": { "version": "28.1.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", @@ -3860,25 +3491,12 @@ "dependencies": { "@jest/expect-utils": "^28.1.3", "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@labkey/components/node_modules/formsy-react": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/formsy-react/-/formsy-react-1.1.5.tgz", - "integrity": "sha512-nNWe4Vbp6aDQ/zSxJ7gVQgD5+avFRVbydcjA2Om42flxpQFrKE54AAbuyEj3Jvv+2b9LVl+WLMAPalyvLjwNcQ==", - "dependencies": { - "form-data-to-object": "^0.2.0", - "prop-types": "^15.5.10" + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3" }, - "peerDependencies": { - "react": "^15.6.1 || ^16.0.0", - "react-dom": "^15.6.1 || ^16.0.0" + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, "node_modules/@labkey/components/node_modules/formsy-react-components": { @@ -4402,18 +4020,15 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/@labkey/components/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/@labkey/components/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dependencies": { - "yocto-queue": "^0.1.0" + "yallist": "^4.0.0" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@labkey/components/node_modules/pretty-format": { @@ -4441,11 +4056,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@labkey/components/node_modules/pretty-format/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, "node_modules/@labkey/components/node_modules/react": { "version": "16.14.0", "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", @@ -4473,13 +4083,18 @@ "react": "^16.14.0" } }, + "node_modules/@labkey/components/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, "node_modules/@labkey/components/node_modules/react-redux": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.1.0.tgz", - "integrity": "sha512-CRMpEx8+ccpoVxQrQDkG1obExNYpj6dZ1Ni7lUNFB9wcxOhy02tIqpFo4IUXc0kYvCGMu6ABj9A4imEX2VGZJQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.1.2.tgz", + "integrity": "sha512-Ns1G0XXc8hDyH/OcBHOxNgQx9ayH3SPxBnFCOidGKSle8pKihysQw2rG/PmciUQRoclhVBO8HMhiRmGXnDja9Q==", "dependencies": { "@babel/runtime": "^7.1.2", - "hoist-non-react-statics": "^3.0.0", + "hoist-non-react-statics": "^3.3.0", "invariant": "^2.2.4", "loose-envify": "^1.1.0", "prop-types": "^15.6.1", @@ -4491,6 +4106,11 @@ "redux": "^2.0.0 || ^3.0.0 || ^4.0.0-0" } }, + "node_modules/@labkey/components/node_modules/react-redux/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/@labkey/components/node_modules/react-router": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/react-router/-/react-router-3.2.6.tgz", @@ -4512,7 +4132,7 @@ "node_modules/@labkey/components/node_modules/react-router/node_modules/history": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/history/-/history-3.3.0.tgz", - "integrity": "sha1-/O3M6PEpdTcVRdc1RhAzV5ptrpw=", + "integrity": "sha512-ABLnJwKEZGXGqWsXaKYD8NNle49ZbKs1WEBlxrFsQ8dIudZpO5NJaH8WJOqh5lXVhAq7bHksfirrobBmrT7qBw==", "dependencies": { "invariant": "^2.2.1", "loose-envify": "^1.2.0", @@ -4520,6 +4140,19 @@ "warning": "^3.0.0" } }, + "node_modules/@labkey/components/node_modules/react-router/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/@labkey/components/node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "engines": { + "node": ">=10" + } + }, "node_modules/@labkey/components/node_modules/scheduler": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", @@ -4530,9 +4163,9 @@ } }, "node_modules/@labkey/components/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -4543,21 +4176,12 @@ "node": ">=10" } }, - "node_modules/@labkey/components/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/@labkey/components/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@labkey/components/node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "node": ">=8" } }, "node_modules/@labkey/components/node_modules/supports-color": { @@ -4571,17 +4195,29 @@ "node": ">=8" } }, - "node_modules/@labkey/components/node_modules/v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "node_modules/@labkey/components/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@labkey/components/node_modules/vis-data": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/vis-data/-/vis-data-6.6.1.tgz", + "integrity": "sha512-xmujDB2Dzf8T04rGFJ9OP4OA6zRVrz8R9hb0CVKryBrZRCljCga9JjSfgctA8S7wdZu7otDtUIwX4ZOgfV/57w==", + "hasInstallScript": true, + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/visjs" }, - "engines": { - "node": ">=10.12.0" + "peerDependencies": { + "moment": "^2.24.0", + "uuid": "^7.0.0 || ^8.0.0", + "vis-util": "^4.0.0" } }, "node_modules/@labkey/components/node_modules/vis-network": { @@ -4600,43 +4236,10 @@ "vis-util": "^1.1.8" } }, - "node_modules/@labkey/components/node_modules/vis-util": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/vis-util/-/vis-util-1.1.10.tgz", - "integrity": "sha512-8hGSxsFi2ogYYweClQyITzWnirWgQ8p0i9M4d3OXMuUO8vjXrf+2zHOYI9OZbtUduxAWuMEePnS9BXDtPJmJ7Q==", - "peer": true, - "dependencies": { - "moment": "2.24.0", - "vis-uuid": "1.1.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/visjs" - } - }, - "node_modules/@labkey/components/node_modules/vis-util/node_modules/moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", - "peer": true, - "engines": { - "node": "*" - } - }, - "node_modules/@labkey/components/node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } + "node_modules/@labkey/components/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.4", @@ -4648,6 +4251,7 @@ "version": "4.12.4", "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz", "integrity": "sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==", + "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.", "dependencies": { "@babel/runtime": "^7.4.4", "@material-ui/styles": "^4.11.5", @@ -4680,34 +4284,11 @@ } } }, - "node_modules/@material-ui/core/node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/@material-ui/core/node_modules/react-transition-group": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", - "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, "node_modules/@material-ui/styles": { "version": "4.11.5", "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.5.tgz", "integrity": "sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA==", + "deprecated": "Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5.", "dependencies": { "@babel/runtime": "^7.4.4", "@emotion/hash": "^0.8.0", @@ -4744,11 +4325,6 @@ } } }, - "node_modules/@material-ui/styles/node_modules/csstype": { - "version": "2.6.20", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", - "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" - }, "node_modules/@material-ui/system": { "version": "4.12.2", "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.2.tgz", @@ -4777,11 +4353,6 @@ } } }, - "node_modules/@material-ui/system/node_modules/csstype": { - "version": "2.6.20", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", - "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" - }, "node_modules/@material-ui/types": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz", @@ -4849,11 +4420,6 @@ "react": "^17.0.2" } }, - "node_modules/@mui/x-data-grid/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -4889,53 +4455,62 @@ "node": ">= 8" } }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, "node_modules/@popperjs/core": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", - "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" } }, "node_modules/@sinclair/typebox": { - "version": "0.24.42", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.42.tgz", - "integrity": "sha512-d+2AtrHGyWek2u2ITF0lHRIv6Tt7X0dEHW+0rP+5aDCEjC3fiN2RBjrLD0yU0at52BcZbRGxLbAtXiR0hFCjYw==" + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "devOptional": true }, "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, "dependencies": { - "@sinonjs/commons": "^1.7.0" + "@sinonjs/commons": "^3.0.0" } }, "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true, + "peer": true, "engines": { - "node": ">= 6" + "node": ">= 10" } }, "node_modules/@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", + "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" @@ -4959,11 +4534,11 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", + "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", "dependencies": { - "@babel/types": "^7.3.0" + "@babel/types": "^7.20.7" } }, "node_modules/@types/body-parser": { @@ -5012,9 +4587,9 @@ } }, "node_modules/@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", "dev": true, "dependencies": { "@types/express-serve-static-core": "*", @@ -5022,28 +4597,18 @@ } }, "node_modules/@types/enzyme": { - "version": "3.10.9", - "resolved": "https://registry.npmjs.org/@types/enzyme/-/enzyme-3.10.9.tgz", - "integrity": "sha512-dx5UvcWe2Vtye6S9Hw2rFB7Ul9uMXOAje2FAbXvVYieQDNle9qPAo7DfvFMSztZ9NFiD3dVZ4JsRYGTrSLynJg==", - "dev": true, + "version": "3.10.13", + "resolved": "https://registry.npmjs.org/@types/enzyme/-/enzyme-3.10.13.tgz", + "integrity": "sha512-FCtoUhmFsud0Yx9fmZk179GkdZ4U9B0GFte64/Md+W/agx0L5SxsIIbhLBOxIb9y2UfBA4WQnaG1Od/UsUQs9Q==", "dependencies": { "@types/cheerio": "*", - "@types/react": "*" - } - }, - "node_modules/@types/enzyme-adapter-react-16": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.0.6.tgz", - "integrity": "sha512-VonDkZ15jzqDWL8mPFIQnnLtjwebuL9YnDkqeCDYnB4IVgwUm0mwKkqhrxLL6mb05xm7qqa3IE95m8CZE9imCg==", - "dev": true, - "dependencies": { - "@types/enzyme": "*" + "@types/react": "^16" } }, "node_modules/@types/eslint": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.2.tgz", - "integrity": "sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA==", + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.1.tgz", + "integrity": "sha512-XpNDc4Z5Tb4x+SW1MriMVeIsMoONHCkWFMkR/aPJbzEsxqHy+4Glu/BqTdPrApfDeMaXbtNh6bseNgl5KaWrSg==", "dev": true, "dependencies": { "@types/estree": "*", @@ -5051,9 +4616,9 @@ } }, "node_modules/@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", "dev": true, "dependencies": { "@types/eslint": "*", @@ -5067,32 +4632,33 @@ "dev": true }, "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", "dev": true, "dependencies": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", + "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.29", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz", - "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==", + "version": "4.17.35", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", + "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", "dev": true, "dependencies": { "@types/node": "*", "@types/qs": "*", - "@types/range-parser": "*" + "@types/range-parser": "*", + "@types/send": "*" } }, "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", "dependencies": { "@types/node": "*" } @@ -5112,10 +4678,16 @@ "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", "dev": true }, + "node_modules/@types/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", + "dev": true + }, "node_modules/@types/http-proxy": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", - "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "version": "1.17.11", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", + "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", "dev": true, "dependencies": { "@types/node": "*" @@ -5143,19 +4715,34 @@ } }, "node_modules/@types/jest": { - "version": "27.5.2", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", - "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", + "version": "29.5.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.3.tgz", + "integrity": "sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/jexl": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@types/jexl/-/jexl-2.3.1.tgz", + "integrity": "sha512-D7htNp+ka5xdEfHeAQaukzXeDt9SMdHP55WFI0gT7iR7W+3FB4PrzUtuYklgpKdutGqc31UAjh65eHLUsIZyNA==", + "dev": true + }, + "node_modules/@types/jquery": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.16.tgz", + "integrity": "sha512-bsI7y4ZgeMkmpG9OM710RRzDFp+w4P1RGiIt30C1mSBT+ExCleeh4HObwgArnDFELmRrOpXgSYN9VF1hj+f1lw==", "dev": true, "dependencies": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" + "@types/sizzle": "*" } }, "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", "dev": true }, "node_modules/@types/mime": { @@ -5165,9 +4752,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" + "version": "18.17.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.1.tgz", + "integrity": "sha512-xlR1jahfizdplZYRU59JlUx9uzF1ARa8jbhM11ccpCJya8kvos5jwdm2ZAgxSCwOl0fq21svP18EVwPBXMQudw==" }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -5175,9 +4762,9 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, "node_modules/@types/prettier": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz", - "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==" + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" }, "node_modules/@types/prop-types": { "version": "15.7.5", @@ -5197,47 +4784,42 @@ "dev": true }, "node_modules/@types/react": { - "version": "16.14.25", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.25.tgz", - "integrity": "sha512-cXRVHd7vBT5v1is72mmvmsg9stZrbJO04DJqFeh3Yj2tVKO6vmxg5BI+ybI6Ls7ROXRG3aFbZj9x0WA3ZAoDQw==", + "version": "16.14.43", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.43.tgz", + "integrity": "sha512-7zdjv7jvoLLQg1tTvpQsm+hyNUMT2mPlNV1+d0I8fbGhkJl82spopMyBlu4wb1dviZAxpGdk5eHu/muacknnfw==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", "csstype": "^3.0.2" } }, - "node_modules/@types/react-dom": { - "version": "17.0.17", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.17.tgz", - "integrity": "sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg==", - "dev": true, + "node_modules/@types/react-is": { + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.4.tgz", + "integrity": "sha512-FLzd0K9pnaEvKz4D1vYxK9JmgQPiGk1lu23o1kqGsLeT0iPbRSF7b76+S5T9fD8aRa0B8bY7I/3DebEj+1ysBA==", "dependencies": { "@types/react": "^17" } }, - "node_modules/@types/react-dom/node_modules/@types/react": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.45.tgz", - "integrity": "sha512-YfhQ22Lah2e3CHPsb93tRwIGNiSwkuz1/blk4e6QrWS0jQzCSNbGLtOEYhPg02W0yGTTmpajp7dCTbBAMN3qsg==", - "dev": true, + "node_modules/@types/react-is/node_modules/@types/react": { + "version": "17.0.62", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.62.tgz", + "integrity": "sha512-eANCyz9DG8p/Vdhr0ZKST8JV12PhH2ACCDYlFw6DIO+D+ca+uP4jtEDEpVqXZrh/uZdXQGwk7whJa3ah5DtyLw==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", "csstype": "^3.0.2" } }, - "node_modules/@types/react-is": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz", - "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==", - "dependencies": { - "@types/react": "*" - } + "node_modules/@types/react-is/node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "node_modules/@types/react-redux": { - "version": "7.1.24", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.24.tgz", - "integrity": "sha512-7FkurKcS1k0FHZEtdbbgN8Oc6b+stGSfZYjQGicofJ0j4U0qIn/jaSvnP2pLwZKiai3/17xqqxkkrxTgN8UNbQ==", + "version": "7.1.25", + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.25.tgz", + "integrity": "sha512-bAGh4e+w5D8dajd6InASVIyCo4pZLJ66oLb80F9OBLO1gKESbZcRCJpTT6uLXX+HAB57zw1WTdwJdAsewuTweg==", "dependencies": { "@types/hoist-non-react-statics": "^3.3.0", "@types/react": "*", @@ -5246,13 +4828,18 @@ } }, "node_modules/@types/react-transition-group": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz", - "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz", + "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==", "dependencies": { "@types/react": "*" } }, + "node_modules/@types/react/node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, "node_modules/@types/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", @@ -5260,9 +4847,19 @@ "dev": true }, "node_modules/@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" + }, + "node_modules/@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } }, "node_modules/@types/serve-index": { "version": "1.9.1", @@ -5274,15 +4871,22 @@ } }, "node_modules/@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz", + "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==", "dev": true, "dependencies": { - "@types/mime": "^1", + "@types/http-errors": "*", + "@types/mime": "*", "@types/node": "*" } }, + "node_modules/@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", + "dev": true + }, "node_modules/@types/sockjs": { "version": "0.3.33", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", @@ -5303,34 +4907,27 @@ "integrity": "sha512-oMaoqKmWkG+1GZshzFDAAr7V1Pg2AVb/fZ8YcFBi23MLWywjVuf0wRLNYIPE248NMq5xF1/Dbo8AWdna32eaSw==", "dev": true }, - "node_modules/@types/uuid": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", - "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", - "dev": true - }, "node_modules/@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "version": "8.5.5", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", + "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "devOptional": true, + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", @@ -5479,34 +5076,42 @@ } }, "node_modules/@webpack-cli/configtest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", - "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", "dev": true, + "engines": { + "node": ">=14.15.0" + }, "peerDependencies": { - "webpack": "4.x.x || 5.x.x", - "webpack-cli": "4.x.x" + "webpack": "5.x.x", + "webpack-cli": "5.x.x" } }, "node_modules/@webpack-cli/info": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", - "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", "dev": true, - "dependencies": { - "envinfo": "^7.7.3" + "engines": { + "node": ">=14.15.0" }, "peerDependencies": { - "webpack-cli": "4.x.x" + "webpack": "5.x.x", + "webpack-cli": "5.x.x" } }, "node_modules/@webpack-cli/serve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", - "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", "dev": true, + "engines": { + "node": ">=14.15.0" + }, "peerDependencies": { - "webpack-cli": "4.x.x" + "webpack": "5.x.x", + "webpack-cli": "5.x.x" }, "peerDependenciesMeta": { "webpack-dev-server": { @@ -5514,6 +5119,46 @@ } } }, + "node_modules/@wojtekmaj/enzyme-adapter-react-17": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@wojtekmaj/enzyme-adapter-react-17/-/enzyme-adapter-react-17-0.8.0.tgz", + "integrity": "sha512-zeUGfQRziXW7R7skzNuJyi01ZwuKCH8WiBNnTgUJwdS/CURrJwAhWsfW7nG7E30ak8Pu3ZwD9PlK9skBfAoOBw==", + "dev": true, + "dependencies": { + "@wojtekmaj/enzyme-adapter-utils": "^0.2.0", + "enzyme-shallow-equal": "^1.0.0", + "has": "^1.0.0", + "prop-types": "^15.7.0", + "react-is": "^17.0.0", + "react-test-renderer": "^17.0.0" + }, + "funding": { + "url": "https://github.com/wojtekmaj/enzyme-adapter-react-17?sponsor=1" + }, + "peerDependencies": { + "enzyme": "^3.0.0", + "react": "^17.0.0-0", + "react-dom": "^17.0.0-0" + } + }, + "node_modules/@wojtekmaj/enzyme-adapter-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@wojtekmaj/enzyme-adapter-utils/-/enzyme-adapter-utils-0.2.0.tgz", + "integrity": "sha512-ZvZm9kZxZEKAbw+M1/Q3iDuqQndVoN8uLnxZ8bzxm7KgGTBejrGRoJAp8f1EN8eoO3iAjBNEQnTDW/H4Ekb0FQ==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.0", + "has": "^1.0.0", + "object.fromentries": "^2.0.0", + "prop-types": "^15.7.0" + }, + "funding": { + "url": "https://github.com/wojtekmaj/enzyme-adapter-utils?sponsor=1" + }, + "peerDependencies": { + "react": "^17.0.0-0" + } + }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -5530,7 +5175,8 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/accepts": { "version": "1.3.8", @@ -5546,31 +5192,9 @@ } }, "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -5580,48 +5204,34 @@ } }, "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", "dev": true, "peerDependencies": { "acorn": "^8" } }, "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true, "engines": { "node": ">=0.4.0" } }, "node_modules/adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", "dev": true, "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" }, "engines": { - "node": ">=8.9.0" + "node": ">=8.9" } }, "node_modules/agent-base": { @@ -5629,6 +5239,7 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, + "peer": true, "dependencies": { "debug": "4" }, @@ -5636,29 +5247,6 @@ "node": ">= 6.0.0" } }, - "node_modules/airbnb-prop-types": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz", - "integrity": "sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==", - "dev": true, - "dependencies": { - "array.prototype.find": "^2.1.1", - "function.prototype.name": "^1.1.2", - "is-regex": "^1.1.0", - "object-is": "^1.1.2", - "object.assign": "^4.1.0", - "object.entries": "^1.1.2", - "prop-types": "^15.7.2", - "prop-types-exact": "^1.2.0", - "react-is": "^16.13.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "peerDependencies": { - "react": "^0.14 || ^15.0.0 || ^16.0.0-alpha" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -5693,9 +5281,9 @@ } }, "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -5769,9 +5357,9 @@ } }, "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -5788,10 +5376,17 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/array-filter": { + "node_modules/array-buffer-byte-length": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=" + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/array-flatten": { "version": "2.1.2", @@ -5799,41 +5394,52 @@ "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", "dev": true }, - "node_modules/array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "dev": true, + "node_modules/array.prototype.filter": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.2.tgz", + "integrity": "sha512-us+UrmGOilqttSOgoWZTpOvHu68vZT2YCjc/H4vhu56vzZpaDFBhB+Se2UwqWzMKbDv7Myq5M5pcZLAtUvTQdQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.find": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.2.0.tgz", - "integrity": "sha512-sn40qmUiLYAcRb/1HsIQjTTZ1kCy8II8VtZJpMn2Aoen9twULhbWXisfh3HimGqMlHGUul0/TfKCnXg42LuPpQ==", - "dev": true, + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.4", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", "es-shim-unscopables": "^1.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", + "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5845,26 +5451,37 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "peer": true + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.2.tgz", + "integrity": "sha512-BYCzImLos6J3BH/+HvUCHG1dTf2MzmAB4jaVxHV+29RZLjR29XuYTmsf2sdDwkrb+FczkGo3kOhE7ga6sI0P4A==", "dev": true, "dependencies": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/transform": "^29.6.2", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", + "babel-preset-jest": "^29.5.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "@babel/core": "^7.8.0" @@ -5928,6 +5545,15 @@ "node": ">=8" } }, + "node_modules/babel-jest/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/babel-jest/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -5941,9 +5567,9 @@ } }, "node_modules/babel-loader": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz", - "integrity": "sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", "dev": true, "dependencies": { "find-cache-dir": "^3.3.1", @@ -5959,29 +5585,6 @@ "webpack": ">=2" } }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, "node_modules/babel-plugin-emotion": { "version": "10.2.2", "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.2.2.tgz", @@ -6016,15 +5619,48 @@ "csstype": "^2.5.7" } }, + "node_modules/babel-plugin-emotion/node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, "node_modules/babel-plugin-emotion/node_modules/@emotion/utils": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==" }, - "node_modules/babel-plugin-emotion/node_modules/csstype": { - "version": "2.6.20", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", - "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" + "node_modules/babel-plugin-emotion/node_modules/babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + } + }, + "node_modules/babel-plugin-emotion/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-emotion/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", @@ -6042,73 +5678,68 @@ } }, "node_modules/babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", + "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", "dev": true, "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", + "@types/babel__core": "^7.1.14", "@types/babel__traverse": "^7.0.6" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", "dependencies": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", "semver": "^6.1.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" + "@babel/helper-define-polyfill-provider": "^0.3.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -6117,7 +5748,7 @@ "node_modules/babel-plugin-syntax-jsx": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==" }, "node_modules/babel-preset-current-node-syntax": { "version": "1.0.1", @@ -6142,25 +5773,25 @@ } }, "node_modules/babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", + "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", "dev": true, "dependencies": { - "babel-plugin-jest-hoist": "^27.5.1", + "babel-plugin-jest-hoist": "^29.5.0", "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/batch": { "version": "0.6.1", @@ -6186,9 +5817,9 @@ } }, "node_modules/body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dev": true, "dependencies": { "bytes": "3.1.2", @@ -6199,7 +5830,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.10.3", + "qs": "6.11.0", "raw-body": "2.5.1", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -6227,40 +5858,16 @@ "ms": "2.0.0" } }, - "node_modules/body-parser/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/bonjour-service": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.13.tgz", - "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", "dev": true, "dependencies": { "array-flatten": "^2.1.2", @@ -6272,7 +5879,7 @@ "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, "node_modules/bootstrap": { "version": "3.4.1", @@ -6308,16 +5915,10 @@ "node": ">=8" } }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, "node_modules/browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "version": "4.21.10", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", "funding": [ { "type": "opencollective", @@ -6326,14 +5927,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.11" }, "bin": { "browserslist": "cli.js" @@ -6363,9 +5967,9 @@ } }, "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "node_modules/bytes": { "version": "3.0.0", @@ -6415,9 +6019,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001332", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz", - "integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==", + "version": "1.0.30001519", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz", + "integrity": "sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==", "funding": [ { "type": "opencollective", @@ -6426,6 +6030,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -6451,22 +6059,22 @@ } }, "node_modules/chart.js": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.7.0.tgz", - "integrity": "sha512-31gVuqqKp3lDIFmzpKIrBeum4OpZsQjSIAqlOpgjosHDJZlULtvwLEZKtEhIAZc7JMPaHlYMys40Qy9Mf+1AAg==" + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz", + "integrity": "sha512-Ro2JbLmvg83gXF5F4sniaQ+lTbSv18E+TIf2cOeiH1Iqd2PGFOtem+DUufMZsCJwFE7ywPOpfXFBwRTGq7dh6w==" }, "node_modules/cheerio": { - "version": "1.0.0-rc.10", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", - "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", "dependencies": { - "cheerio-select": "^1.5.0", - "dom-serializer": "^1.3.2", - "domhandler": "^4.2.0", - "htmlparser2": "^6.1.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "tslib": "^2.2.0" + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" }, "engines": { "node": ">= 6" @@ -6476,15 +6084,16 @@ } }, "node_modules/cheerio-select": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.5.0.tgz", - "integrity": "sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", "dependencies": { - "css-select": "^4.1.3", - "css-what": "^5.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0", - "domutils": "^2.7.0" + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" }, "funding": { "url": "https://github.com/sponsors/fb55" @@ -6530,27 +6139,27 @@ } }, "node_modules/chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, "engines": { "node": ">=6.0" } }, - "node_modules/chrome-trace-event/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } }, "node_modules/circular-dependency-plugin": { "version": "5.2.2", @@ -6565,19 +6174,19 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==" }, "node_modules/classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" }, "node_modules/clean-css": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.0.tgz", - "integrity": "sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", + "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", "dev": true, "dependencies": { "source-map": "~0.6.0" @@ -6586,23 +6195,17 @@ "node": ">= 10.0" } }, - "node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/clone-deep": { @@ -6620,9 +6223,9 @@ } }, "node_modules/clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", "engines": { "node": ">=6" } @@ -6637,9 +6240,9 @@ } }, "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" }, "node_modules/color-convert": { "version": "1.9.3", @@ -6652,12 +6255,12 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, "node_modules/combined-stream": { @@ -6665,6 +6268,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, + "peer": true, "dependencies": { "delayed-stream": "~1.0.0" }, @@ -6684,7 +6288,7 @@ "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, "node_modules/compressible": { @@ -6732,10 +6336,16 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/connect-history-api-fallback": { "version": "2.0.0", @@ -6758,42 +6368,19 @@ "node": ">= 0.6" } }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dependencies": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/cookie": { "version": "0.5.0", @@ -6811,20 +6398,20 @@ "dev": true }, "node_modules/copy-webpack-plugin": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz", - "integrity": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", "dev": true, "dependencies": { - "fast-glob": "^3.2.7", + "fast-glob": "^3.2.11", "glob-parent": "^6.0.1", - "globby": "^12.0.2", + "globby": "^13.1.1", "normalize-path": "^3.0.0", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0" }, "engines": { - "node": ">= 12.20.0" + "node": ">= 14.15.0" }, "funding": { "type": "opencollective", @@ -6835,9 +6422,9 @@ } }, "node_modules/copy-webpack-plugin/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -6869,15 +6456,15 @@ "dev": true }, "node_modules/copy-webpack-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 12.13.0" @@ -6891,51 +6478,41 @@ "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", "hasInstallScript": true }, "node_modules/core-js-compat": { - "version": "3.22.7", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.7.tgz", - "integrity": "sha512-uI9DAQKKiiE/mclIC5g4AjRpio27g+VMRhe6rQoz+q4Wm4L6A/fJhiLtBw+sfOpDG9wZ3O0pxIw7GbfOlBgjOA==", + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.0.tgz", + "integrity": "sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==", "dev": true, "dependencies": { - "browserslist": "^4.20.3", - "semver": "7.0.0" + "browserslist": "^4.21.9" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, "node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dependencies": { "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", + "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", - "yaml": "^1.7.2" + "yaml": "^1.10.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/create-react-class": { @@ -6987,19 +6564,19 @@ } }, "node_modules/css-loader": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", - "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.4.tgz", + "integrity": "sha512-0Y5uHtK5BswfaGJ+jrO+4pPg1msFBc0pwPIE1VqfpmVn6YbDfYfXMj8rfd7nt+4goAhJueO+H/I40VWJfcP1mQ==", "dev": true, "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.7", + "postcss": "^8.4.21", "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-local-by-default": "^4.0.1", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" + "semver": "^7.3.8" }, "engines": { "node": ">= 12.13.0" @@ -7012,10 +6589,22 @@ "webpack": "^5.0.0" } }, + "node_modules/css-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/css-loader/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -7027,16 +6616,22 @@ "node": ">=10" } }, + "node_modules/css-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dependencies": { "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" }, "funding": { "url": "https://github.com/sponsors/fb55" @@ -7052,9 +6647,9 @@ } }, "node_modules/css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "engines": { "node": ">= 6" }, @@ -7074,53 +6669,46 @@ "node": ">=4" } }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", + "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", "dev": true, + "peer": true, "dependencies": { - "cssom": "~0.3.6" + "rrweb-cssom": "^0.6.0" }, "engines": { - "node": ">=8" + "node": ">=14" } }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, "node_modules/csstype": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz", - "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g==" + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" }, "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", + "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", "dev": true, + "peer": true, "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^12.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dependencies": { + "@babel/runtime": "^7.21.0" + }, "engines": { "node": ">=0.11" }, @@ -7146,15 +6734,25 @@ } }, "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true, + "peer": true }, "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } }, "node_modules/deep-equal": { "version": "1.1.1", @@ -7172,16 +6770,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "engines": { "node": ">=0.10.0" } @@ -7208,9 +6800,9 @@ } }, "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", "dependencies": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -7225,19 +6817,20 @@ "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, + "peer": true, "engines": { "node": ">=0.4.0" } }, "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/destroy": { @@ -7265,12 +6858,12 @@ "dev": true }, "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", "dev": true, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/dir-glob": { @@ -7288,7 +6881,7 @@ "node_modules/discontinuous-range": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", - "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=" + "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==" }, "node_modules/dns-equal": { "version": "1.0.0", @@ -7297,9 +6890,9 @@ "dev": true }, "node_modules/dns-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", + "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", "dev": true, "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" @@ -7326,13 +6919,13 @@ } }, "node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" }, "funding": { "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" @@ -7344,9 +6937,9 @@ "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" }, "node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "funding": [ { "type": "github", @@ -7355,32 +6948,24 @@ ] }, "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", "dev": true, + "peer": true, "dependencies": { - "webidl-conversions": "^5.0.0" + "webidl-conversions": "^7.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, - "engines": { - "node": ">=8" + "node": ">=12" } }, "node_modules/domhandler": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz", - "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dependencies": { - "domelementtype": "^2.2.0" + "domelementtype": "^2.3.0" }, "engines": { "node": ">= 4" @@ -7390,13 +6975,13 @@ } }, "node_modules/domutils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz", - "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" @@ -7412,6 +6997,12 @@ "tslib": "^2.0.3" } }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -7419,17 +7010,17 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.137", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", - "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==" + "version": "1.4.483", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.483.tgz", + "integrity": "sha512-YLwU0iF//9R3cCEfq0wgL+pf9vglE4kwAg4S5tkVVZljUDKv7Wcz67mTY4OOj+T7YUbTGuqlbqgdl/s+7Q8KTw==" }, "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sindresorhus/emittery?sponsor=1" @@ -7458,9 +7049,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", - "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -7471,17 +7062,20 @@ } }, "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz", + "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -7522,59 +7116,13 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/enzyme-adapter-react-16": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.6.tgz", - "integrity": "sha512-yFlVJCXh8T+mcQo8M6my9sPgeGzj85HSHi6Apgf1Cvq/7EL/J9+1JoJmJsRxZgyTvPMAqOEpRSu/Ii/ZpyOk0g==", - "dev": true, - "dependencies": { - "enzyme-adapter-utils": "^1.14.0", - "enzyme-shallow-equal": "^1.0.4", - "has": "^1.0.3", - "object.assign": "^4.1.2", - "object.values": "^1.1.2", - "prop-types": "^15.7.2", - "react-is": "^16.13.1", - "react-test-renderer": "^16.0.0-0", - "semver": "^5.7.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "peerDependencies": { - "enzyme": "^3.0.0", - "react": "^16.0.0-0", - "react-dom": "^16.0.0-0" - } - }, - "node_modules/enzyme-adapter-utils": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz", - "integrity": "sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg==", - "dev": true, - "dependencies": { - "airbnb-prop-types": "^2.16.0", - "function.prototype.name": "^1.1.3", - "has": "^1.0.3", - "object.assign": "^4.1.2", - "object.fromentries": "^2.0.3", - "prop-types": "^15.7.2", - "semver": "^5.7.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "peerDependencies": { - "react": "0.13.x || 0.14.x || ^15.0.0-0 || ^16.0.0-0" - } - }, "node_modules/enzyme-shallow-equal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz", - "integrity": "sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.5.tgz", + "integrity": "sha512-i6cwm7hN630JXenxxJFBKzgLC3hMTafFQXflvzHgPmDhOBhxUWDe8AeRv1qp2/uWJ2Y8z5yLWMzmAfkTOiOCZg==", "dependencies": { "has": "^1.0.3", - "object-is": "^1.1.2" + "object-is": "^1.1.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7589,33 +7137,49 @@ } }, "node_modules/es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", + "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.1", + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", + "get-intrinsic": "^1.2.1", "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "safe-array-concat": "^1.0.0", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.10" }, "engines": { "node": ">= 0.4" @@ -7624,17 +7188,34 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + }, "node_modules/es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-shim-unscopables": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, "dependencies": { "has": "^1.0.3" } @@ -7672,52 +7253,11 @@ "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "engines": { "node": ">=0.8.0" } }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -7756,9 +7296,9 @@ } }, "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" @@ -7831,35 +7371,37 @@ "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "engines": { "node": ">= 0.8.0" } }, "node_modules/expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.6.2.tgz", + "integrity": "sha512-iAErsLxJ8C+S02QbLAwgSGSezLQK+XXRDt8IuFXFpwCNw2ECmzZSmjKcCaFVp5VRMk+WAvz6h6jokzEzBFZEuA==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" + "@jest/expect-utils": "^29.6.2", + "@types/node": "*", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.6.2", + "jest-message-util": "^29.6.2", + "jest-util": "^29.6.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.0", + "body-parser": "1.20.1", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.5.0", @@ -7878,7 +7420,7 @@ "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.10.3", + "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.18.0", @@ -7897,66 +7439,22 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/express/node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "dev": true + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "node_modules/fast-deep-equal": { "version": "3.1.3", @@ -7965,9 +7463,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -8000,21 +7498,21 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" }, "node_modules/fastest-levenshtein": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.14.tgz", - "integrity": "sha512-tFfWHjnuUfKE186Tfgr+jtaFc0mZTApEgKDOeyN+FwOqRkO/zK/3h1AiRd8u8CY53owL3CUmGr/oI9p/RdyLTA==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, "engines": { "node": ">= 4.9.1" } }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -8033,9 +7531,9 @@ } }, "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dependencies": { "bser": "2.1.1" } @@ -8119,9 +7617,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "dev": true, "funding": [ { @@ -8141,15 +7639,23 @@ "node_modules/font-awesome": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz", - "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM=", + "integrity": "sha512-U6kGnykA/6bFmg1M/oT9EkFeIYv7JlX3bozwQJWiiLz6L0w3F5vBVPxHlwyX/vtNq1ckcpRKOB9f2Qal/VtFpg==", "engines": { "node": ">=0.10.3" } }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, "node_modules/fork-ts-checker-webpack-plugin": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.1.tgz", - "integrity": "sha512-uOfQdg/iQ8iokQ64qcbu8iZb114rOmaKLQFu7hU14/eJaKgsP91cQ7ts7v2iiDld6TzDe84Meksha8/MkWiCyw==", + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.14.tgz", + "integrity": "sha512-Tg2feh/n8k486KX0EbXVUfJj3j0xnnbKYTJw0fnIb2QdV0+lblOYZSal5ed9hARoWVwKeOC7sYE2EakSRLo5ZA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.16.7", @@ -8160,7 +7666,8 @@ "fs-extra": "^10.0.0", "memfs": "^3.4.1", "minimatch": "^3.0.4", - "schema-utils": "4.0.0", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", "semver": "^7.3.5", "tapable": "^2.2.1" }, @@ -8179,34 +7686,6 @@ } } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -8256,22 +7735,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -8281,25 +7744,30 @@ "node": ">=8" } }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "node_modules/fork-ts-checker-webpack-plugin/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 10.13.0" }, "funding": { "type": "opencollective", @@ -8307,9 +7775,9 @@ } }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -8333,10 +7801,44 @@ "node": ">=8" } }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/form-data-to-object": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/form-data-to-object/-/form-data-to-object-0.2.0.tgz", - "integrity": "sha1-96jmjd2RChEApl4lrGpIQUP/gWg=" + "integrity": "sha512-F10KT6YgIq4CxmiMCZONnYN4PC5ommk8rLb4WmeahqDDszerxVwBrjqjXiedqUfNClMxDHj04KWGRK30aDnIpw==" + }, + "node_modules/formsy-react": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/formsy-react/-/formsy-react-1.1.6.tgz", + "integrity": "sha512-9IsV+XKQEcwvm7nZtyUTZBcl9SHgX2WKskVfvAKzQyJwMAqJ4E3Hf+6PM1E2dQo/MGYMM3pfECAbkDKwlKkp9g==", + "dependencies": { + "form-data-to-object": "^0.2.0", + "prop-types": "^15.5.10" + }, + "peerDependencies": { + "react": "^15.6.1 || ^16.0.0 || ^17.0.0", + "react-dom": "^15.6.1 || ^16.0.0 || ^17.0.0" + } }, "node_modules/forwarded": { "version": "0.2.0", @@ -8371,15 +7873,15 @@ } }, "node_modules/fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz", + "integrity": "sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==", "dev": true }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.2", @@ -8417,9 +7919,9 @@ } }, "node_modules/functions-have-names": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz", - "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8441,13 +7943,14 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8488,14 +7991,14 @@ } }, "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -8541,16 +8044,29 @@ "node": ">=4" } }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", - "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", "dev": true, "dependencies": { - "array-union": "^3.0.1", "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", "merge2": "^1.4.1", "slash": "^4.0.0" }, @@ -8561,23 +8077,37 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dev": true, + "dependencies": { + "duplexer": "^0.1.2" + }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -8606,7 +8136,7 @@ "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { "node": ">=4" } @@ -8622,6 +8152,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -8676,6 +8217,11 @@ "react-is": "^16.7.0" } }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", @@ -8688,10 +8234,16 @@ "wbuf": "^1.1.0" } }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -8703,6 +8255,12 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/hpack.js/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -8713,11 +8271,11 @@ } }, "node_modules/html-element-map": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.3.0.tgz", - "integrity": "sha512-AqCt/m9YaiMwaaAyOPdq4Ga0cM+jdDWWGueUMkdROZcTeClaGpN0AQeyGchZhTegQoABmc6+IqH7oCR/8vhQYg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.3.1.tgz", + "integrity": "sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==", "dependencies": { - "array-filter": "^1.0.0", + "array.prototype.filter": "^1.0.0", "call-bind": "^1.0.2" }, "funding": { @@ -8725,22 +8283,33 @@ } }, "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", "dev": true, + "peer": true, "dependencies": { - "whatwg-encoding": "^1.0.5" + "whatwg-encoding": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/html-entities": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", - "dev": true + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] }, "node_modules/html-escaper": { "version": "2.0.2", @@ -8769,9 +8338,9 @@ } }, "node_modules/html-webpack-plugin": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", - "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz", + "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==", "dev": true, "dependencies": { "@types/html-minifier-terser": "^6.0.0", @@ -8792,9 +8361,9 @@ } }, "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { @@ -8803,10 +8372,10 @@ } ], "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" } }, "node_modules/http-deceiver": { @@ -8831,15 +8400,6 @@ "node": ">= 0.8" } }, - "node_modules/http-errors/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/http-parser-js": { "version": "0.5.8", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", @@ -8861,12 +8421,13 @@ } }, "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, + "peer": true, "dependencies": { - "@tootallnate/once": "1", + "@tootallnate/once": "2", "agent-base": "6", "debug": "4" }, @@ -8898,23 +8459,12 @@ } } }, - "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, + "peer": true, "dependencies": { "agent-base": "6", "debug": "4" @@ -8961,18 +8511,18 @@ } }, "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/immer": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.6.tgz", - "integrity": "sha512-G95ivKpy+EvVAnAab4fVa4YGYn24J1SpEktnJX7JJ45Bd7xqME/SCplFzYFmTbrkwZbQ4xJK1xMTUYBkN6pWsQ==", + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", "funding": { "type": "opencollective", "url": "https://opencollective.com/immer" @@ -8981,7 +8531,7 @@ "node_modules/immutable": { "version": "3.8.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", "engines": { "node": ">=0.10.0" } @@ -9022,7 +8572,7 @@ "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "engines": { "node": ">=0.8.19" } @@ -9030,7 +8580,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -9042,11 +8592,11 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "dependencies": { - "get-intrinsic": "^1.1.0", + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" }, @@ -9055,12 +8605,12 @@ } }, "node_modules/interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/invariant": { @@ -9072,9 +8622,9 @@ } }, "node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", "dev": true, "engines": { "node": ">= 10" @@ -9095,10 +8645,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "node_modules/is-bigint": { "version": "1.0.4", @@ -9124,11 +8687,12 @@ } }, "node_modules/is-boolean-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", - "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dependencies": { - "call-bind": "^1.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -9138,9 +8702,9 @@ } }, "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "engines": { "node": ">= 0.4" }, @@ -9149,9 +8713,9 @@ } }, "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", "dependencies": { "has": "^1.0.3" }, @@ -9160,9 +8724,12 @@ } }, "node_modules/is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -9188,7 +8755,7 @@ "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -9225,7 +8792,7 @@ "node_modules/is-in-browser": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", - "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" + "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==" }, "node_modules/is-negative-zero": { "version": "2.0.2", @@ -9246,15 +8813,30 @@ "node": ">=0.12.0" } }, - "node_modules/is-number-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", - "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-plain-object": { @@ -9273,7 +8855,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true + "dev": true, + "peer": true }, "node_modules/is-regex": { "version": "1.1.4", @@ -9329,14 +8912,14 @@ "node_modules/is-subset": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", - "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=" + "integrity": "sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==" }, "node_modules/is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dependencies": { - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -9345,11 +8928,19 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/is-weakref": { "version": "1.0.2", @@ -9375,15 +8966,14 @@ } }, "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/isobject": { "version": "3.0.1", @@ -9403,9 +8993,9 @@ } }, "node_modules/istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -9417,25 +9007,17 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dependencies": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/istanbul-lib-report/node_modules/has-flag": { @@ -9446,6 +9028,45 @@ "node": ">=8" } }, + "node_modules/istanbul-lib-report/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/istanbul-lib-report/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -9457,6 +9078,11 @@ "node": ">=8" } }, + "node_modules/istanbul-lib-report/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", @@ -9470,18 +9096,10 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -9491,20 +9109,21 @@ } }, "node_modules/jest": { - "version": "27.4.7", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.7.tgz", - "integrity": "sha512-8heYvsx7nV/m8m24Vk26Y87g73Ba6ueUd0MWed/NXMhSZIm62U/llVbS0PJe1SHunbyXjJ/BqG1z9bFjGUIvTg==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.6.2.tgz", + "integrity": "sha512-8eQg2mqFbaP7CwfsTpCxQ+sHzw1WuNWL5UUvjnWP4hx2riGz9fPSzYOaU5q8/GqWn1TfgZIVTqYJygbGbWAANg==", "dev": true, "dependencies": { - "@jest/core": "^27.4.7", + "@jest/core": "^29.6.2", + "@jest/types": "^29.6.1", "import-local": "^3.0.2", - "jest-cli": "^27.4.7" + "jest-cli": "^29.6.2" }, "bin": { "jest": "bin/jest.js" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -9516,47 +9135,47 @@ } }, "node_modules/jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", + "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", "execa": "^5.0.0", - "throat": "^6.0.1" + "p-limit": "^3.1.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.6.2.tgz", + "integrity": "sha512-G9mN+KOYIUe2sB9kpJkO9Bk18J4dTDArNFPwoZ7WKHKel55eKIS/u2bLthxgojwlf9NLCVQfgzM/WsOVvoC6Fw==", "dev": true, "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/environment": "^29.6.2", + "@jest/expect": "^29.6.2", + "@jest/test-result": "^29.6.2", + "@jest/types": "^29.6.1", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", + "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", + "jest-each": "^29.6.2", + "jest-matcher-utils": "^29.6.2", + "jest-message-util": "^29.6.2", + "jest-runtime": "^29.6.2", + "jest-snapshot": "^29.6.2", + "jest-util": "^29.6.2", + "p-limit": "^3.1.0", + "pretty-format": "^29.6.2", + "pure-rand": "^6.0.0", "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" + "stack-utils": "^2.0.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-circus/node_modules/ansi-styles": { @@ -9617,6 +9236,15 @@ "node": ">=8" } }, + "node_modules/jest-circus/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-circus/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -9630,29 +9258,29 @@ } }, "node_modules/jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.6.2.tgz", + "integrity": "sha512-TT6O247v6dCEX2UGHGyflMpxhnrL0DNqP2fRTKYm3nJJpCTfXX3GCMQPGFjXDoj0i5/Blp3jriKXFgdfmbYB6Q==", "dev": true, "dependencies": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/core": "^29.6.2", + "@jest/test-result": "^29.6.2", + "@jest/types": "^29.6.1", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", + "jest-config": "^29.6.2", + "jest-util": "^29.6.2", + "jest-validate": "^29.6.2", "prompts": "^2.0.1", - "yargs": "^16.2.0" + "yargs": "^17.3.1" }, "bin": { "jest": "bin/jest.js" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -9733,62 +9361,46 @@ "node": ">=8" } }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.6.2.tgz", + "integrity": "sha512-VxwFOC8gkiJbuodG9CPtMRjBUNZEHxwfQXmIudSTzFWxaci3Qub1ddTRbFNQlD/zUeaifLndh/eDccFX4wCMQw==", "dev": true, "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.6.2", + "@jest/types": "^29.6.1", + "babel-jest": "^29.6.2", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", - "glob": "^7.1.1", + "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", + "jest-circus": "^29.6.2", + "jest-environment-node": "^29.6.2", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.6.2", + "jest-runner": "^29.6.2", + "jest-util": "^29.6.2", + "jest-validate": "^29.6.2", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", + "pretty-format": "^29.6.2", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { + "@types/node": "*", "ts-node": ">=9.0.0" }, "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, "ts-node": { "optional": true } @@ -9852,6 +9464,15 @@ "node": ">=8" } }, + "node_modules/jest-config/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-config/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -9865,18 +9486,18 @@ } }, "node_modules/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.2.tgz", + "integrity": "sha512-t+ST7CB9GX5F2xKwhwCf0TAR17uNDiaPTZnVymP9lw0lssa9vG+AFyDZoeIHStU3WowFFwT+ky+er0WVl2yGhA==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.6.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-diff/node_modules/ansi-styles": { @@ -9950,31 +9571,31 @@ } }, "node_modules/jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", + "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", "dev": true, "dependencies": { "detect-newline": "^3.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.6.2.tgz", + "integrity": "sha512-MsrsqA0Ia99cIpABBc3izS1ZYoYfhIy0NNWqPSE0YXbQjwchyt6B1HD2khzyPe1WiJA7hbxXy77ZoUQxn8UlSw==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", + "@jest/types": "^29.6.1", "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" + "jest-get-type": "^29.4.3", + "jest-util": "^29.6.2", + "pretty-format": "^29.6.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-each/node_modules/ansi-styles": { @@ -10047,200 +9668,83 @@ "node": ">=8" } }, - "node_modules/jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, "node_modules/jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.6.2.tgz", + "integrity": "sha512-YGdFeZ3T9a+/612c5mTQIllvWkddPbYcN2v95ZH24oWMbGA4GGS2XdIF92QMhUhvrjjuQWYgUGW2zawOyH63MQ==", "dev": true, "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/environment": "^29.6.2", + "@jest/fake-timers": "^29.6.2", + "@jest/types": "^29.6.1", "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" + "jest-mock": "^29.6.2", + "jest-util": "^29.6.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", "devOptional": true, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.2.tgz", + "integrity": "sha512-+51XleTDAAysvU8rT6AnS1ZJ+WHVNqhj1k6nTvN2PYP+HjU3kqlaKQ1Lnw3NYW3bm2r8vq82X0Z1nDDHZMzHVA==", "devOptional": true, "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", + "@jest/types": "^29.6.1", + "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.6.2", + "jest-worker": "^29.6.2", "micromatch": "^4.0.4", - "walker": "^1.0.7" + "walker": "^1.0.8" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "optionalDependencies": { "fsevents": "^2.3.2" } }, - "node_modules/jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-jasmine2/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.6.2.tgz", + "integrity": "sha512-aNqYhfp5uYEO3tdWMb2bfWv6f0b4I0LOxVRpnRLAeque2uqOVVMLh6khnTcE2qJ5wAKop0HcreM1btoysD6bPQ==", "dev": true, "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "jest-get-type": "^29.4.3", + "pretty-format": "^29.6.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.2.tgz", + "integrity": "sha512-4LiAk3hSSobtomeIAzFTe+N8kL6z0JtF3n6I4fg29iIW7tt99R7ZcIFW34QkX+DuVrf+CUe6wuVOpm7ZKFJzZQ==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "jest-diff": "^29.6.2", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.6.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-matcher-utils/node_modules/ansi-styles": { @@ -10314,23 +9818,23 @@ } }, "node_modules/jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.6.2.tgz", + "integrity": "sha512-vnIGYEjoPSuRqV8W9t+Wow95SDp6KPX2Uf7EoeG9G99J2OVh7OSwpS4B6J0NfpEIpfkBNHlBZpA2rblEuEFhZQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", + "@jest/types": "^29.6.1", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", + "pretty-format": "^29.6.2", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-message-util/node_modules/ansi-styles": { @@ -10391,6 +9895,15 @@ "node": ">=8" } }, + "node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-message-util/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -10404,22 +9917,23 @@ } }, "node_modules/jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.6.2.tgz", + "integrity": "sha512-hoSv3lb3byzdKfwqCuT6uTscan471GUECqgNYykg6ob0yiAw3zYc7OrPnI9Qv8Wwoa4lC7AZ9hyS4AiIx5U2zg==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" + "@jest/types": "^29.6.1", + "@types/node": "*", + "jest-util": "^29.6.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "engines": { "node": ">=6" }, @@ -10433,47 +9947,45 @@ } }, "node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", + "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", "devOptional": true, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.6.2.tgz", + "integrity": "sha512-G/iQUvZWI5e3SMFssc4ug4dH0aZiZpsDq9o1PtXTV1210Ztyb2+w+ZgQkB3iOiC5SmAEzJBOHWz6Hvrd+QnNPw==", "devOptional": true, "dependencies": { - "@jest/types": "^27.5.1", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", + "jest-haste-map": "^29.6.2", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", + "jest-util": "^29.6.2", + "jest-validate": "^29.6.2", "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", + "resolve.exports": "^2.0.0", "slash": "^3.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.2.tgz", + "integrity": "sha512-LGqjDWxg2fuQQm7ypDxduLu/m4+4Lb4gczc13v51VMZbVP5tSBILqVx8qfWcsdP8f0G7aIqByIALDB0R93yL+w==", "dev": true, "dependencies": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" + "jest-regex-util": "^29.4.3", + "jest-snapshot": "^29.6.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve/node_modules/ansi-styles": { @@ -10534,6 +10046,15 @@ "node": ">=8" } }, + "node_modules/jest-resolve/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "devOptional": true, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-resolve/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -10547,35 +10068,35 @@ } }, "node_modules/jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.6.2.tgz", + "integrity": "sha512-wXOT/a0EspYgfMiYHxwGLPCZfC0c38MivAlb2lMEAlwHINKemrttu1uSbcGbfDV31sFaPWnWJPmb2qXM8pqZ4w==", "dev": true, "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/console": "^29.6.2", + "@jest/environment": "^29.6.2", + "@jest/test-result": "^29.6.2", + "@jest/transform": "^29.6.2", + "@jest/types": "^29.6.1", "@types/node": "*", "chalk": "^4.0.0", - "emittery": "^0.8.1", + "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" + "jest-docblock": "^29.4.3", + "jest-environment-node": "^29.6.2", + "jest-haste-map": "^29.6.2", + "jest-leak-detector": "^29.6.2", + "jest-message-util": "^29.6.2", + "jest-resolve": "^29.6.2", + "jest-runtime": "^29.6.2", + "jest-util": "^29.6.2", + "jest-watcher": "^29.6.2", + "jest-worker": "^29.6.2", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-runner/node_modules/ansi-styles": { @@ -10649,36 +10170,36 @@ } }, "node_modules/jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.6.2.tgz", + "integrity": "sha512-2X9dqK768KufGJyIeLmIzToDmsN0m7Iek8QNxRSI/2+iPFYHF0jTwlO3ftn7gdKd98G/VQw9XJCk77rbTGZnJg==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.6.2", + "@jest/fake-timers": "^29.6.2", + "@jest/globals": "^29.6.2", + "@jest/source-map": "^29.6.0", + "@jest/test-result": "^29.6.2", + "@jest/transform": "^29.6.2", + "@jest/types": "^29.6.1", + "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", + "jest-haste-map": "^29.6.2", + "jest-message-util": "^29.6.2", + "jest-mock": "^29.6.2", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.6.2", + "jest-snapshot": "^29.6.2", + "jest-util": "^29.6.2", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-runtime/node_modules/ansi-styles": { @@ -10739,6 +10260,15 @@ "node": ">=8" } }, + "node_modules/jest-runtime/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-runtime/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -10751,50 +10281,35 @@ "node": ">=8" } }, - "node_modules/jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "devOptional": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, "node_modules/jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.6.2.tgz", + "integrity": "sha512-1OdjqvqmRdGNvWXr/YZHuyhh5DeaLp1p/F8Tht/MrMw4Kr1Uu/j4lRG+iKl1DAqUJDWxtQBMk41Lnf/JETYBRA==", "dev": true, "dependencies": { - "@babel/core": "^7.7.2", + "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.6.2", + "@jest/transform": "^29.6.2", + "@jest/types": "^29.6.1", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^27.5.1", + "expect": "^29.6.2", "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", + "jest-diff": "^29.6.2", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.6.2", + "jest-message-util": "^29.6.2", + "jest-util": "^29.6.2", "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" + "pretty-format": "^29.6.2", + "semver": "^7.5.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-snapshot/node_modules/ansi-styles": { @@ -10855,10 +10370,22 @@ "node": ">=8" } }, + "node_modules/jest-snapshot/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -10882,13 +10409,19 @@ "node": ">=8" } }, + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.2.tgz", + "integrity": "sha512-3eX1qb6L88lJNCFlEADKOkjpXJQyZRiavX1INZ4tRnrBVr2COd3RgcTLyUiEXMNBlDU/cgYq6taUS0fExrWW4w==", "devOptional": true, "dependencies": { - "@jest/types": "^27.5.1", + "@jest/types": "^29.6.1", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -10896,7 +10429,7 @@ "picomatch": "^2.2.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-util/node_modules/ansi-styles": { @@ -10970,20 +10503,20 @@ } }, "node_modules/jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.2.tgz", + "integrity": "sha512-vGz0yMN5fUFRRbpJDPwxMpgSXW1LDKROHfBopAvDcmD6s+B/s8WJrwi+4bfH4SdInBA5C3P3BI19dBtKzx1Arg==", "devOptional": true, "dependencies": { - "@jest/types": "^27.5.1", + "@jest/types": "^29.6.1", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", + "jest-get-type": "^29.4.3", "leven": "^3.1.0", - "pretty-format": "^27.5.1" + "pretty-format": "^29.6.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-validate/node_modules/ansi-styles": { @@ -11069,21 +10602,22 @@ } }, "node_modules/jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.6.2.tgz", + "integrity": "sha512-GZitlqkMkhkefjfN/p3SJjrDaxPflqxEAv3/ik10OirZqJGYH5rPiIsgVcfof0Tdqg3shQGdEIxDBx+B4tuLzA==", "dev": true, "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/test-result": "^29.6.2", + "@jest/types": "^29.6.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "jest-util": "^27.5.1", + "emittery": "^0.13.1", + "jest-util": "^29.6.2", "string-length": "^4.0.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-watcher/node_modules/ansi-styles": { @@ -11157,17 +10691,18 @@ } }, "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.2.tgz", + "integrity": "sha512-l3ccBOabTdkng8I/ORCkADz4eSMKejTYv1vB/Z83UiubqhC1oQ5Li6dWCyqOIvSifGjUBxuvxvlm6KGK2DtuAQ==", "devOptional": true, "dependencies": { "@types/node": "*", + "jest-util": "^29.6.2", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-worker/node_modules/has-flag": { @@ -11212,41 +10747,38 @@ } }, "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz", + "integrity": "sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==", + "dev": true, + "peer": true, + "dependencies": { + "abab": "^2.0.6", + "cssstyle": "^3.0.0", + "data-urls": "^4.0.0", + "decimal.js": "^10.4.3", + "domexception": "^4.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", + "nwsapi": "^2.2.4", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", + "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^12.0.1", + "ws": "^8.13.0", + "xml-name-validator": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=16" }, "peerDependencies": { "canvas": "^2.5.0" @@ -11257,41 +10789,35 @@ } } }, - "node_modules/jsdom/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/jsdom/node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "node_modules/jsdom-global": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsdom-global/-/jsdom-global-3.0.2.tgz", + "integrity": "sha512-t1KMcBkz/pT5JrvcJbpUR2u/w1kO9jXctaaGJ0vZDzwFnIvGWw9IDSRciT83kIs8Bnw4qpOl8bQK08V01YgMPg==", "dev": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "engines": { - "node": ">=6" + "peerDependencies": { + "jsdom": ">=10.0.0" } }, - "node_modules/jsdom/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "node_modules/jsdom/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, + "peer": true, "engines": { - "node": ">= 4.0.0" + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, "node_modules/jsesc": { @@ -11340,9 +10866,9 @@ } }, "node_modules/jss": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss/-/jss-10.9.0.tgz", - "integrity": "sha512-YpzpreB6kUunQBbrlArlsMpXYyndt9JATbt95tajx0t4MTJJcCJdd4hdNpHmOIDiUJrF/oX5wtVFrS3uofWfGw==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz", + "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==", "dependencies": { "@babel/runtime": "^7.3.1", "csstype": "^3.0.2", @@ -11355,72 +10881,77 @@ } }, "node_modules/jss-plugin-camel-case": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.9.0.tgz", - "integrity": "sha512-UH6uPpnDk413/r/2Olmw4+y54yEF2lRIV8XIZyuYpgPYTITLlPOsq6XB9qeqv+75SQSg3KLocq5jUBXW8qWWww==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz", + "integrity": "sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==", "dependencies": { "@babel/runtime": "^7.3.1", "hyphenate-style-name": "^1.0.3", - "jss": "10.9.0" + "jss": "10.10.0" } }, "node_modules/jss-plugin-default-unit": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.9.0.tgz", - "integrity": "sha512-7Ju4Q9wJ/MZPsxfu4T84mzdn7pLHWeqoGd/D8O3eDNNJ93Xc8PxnLmV8s8ZPNRYkLdxZqKtm1nPQ0BM4JRlq2w==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.10.0.tgz", + "integrity": "sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0" + "jss": "10.10.0" } }, "node_modules/jss-plugin-global": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.9.0.tgz", - "integrity": "sha512-4G8PHNJ0x6nwAFsEzcuVDiBlyMsj2y3VjmFAx/uHk/R/gzJV+yRHICjT4MKGGu1cJq2hfowFWCyrr/Gg37FbgQ==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.10.0.tgz", + "integrity": "sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0" + "jss": "10.10.0" } }, "node_modules/jss-plugin-nested": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.9.0.tgz", - "integrity": "sha512-2UJnDrfCZpMYcpPYR16oZB7VAC6b/1QLsRiAutOt7wJaaqwCBvNsosLEu/fUyKNQNGdvg2PPJFDO5AX7dwxtoA==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.10.0.tgz", + "integrity": "sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0", + "jss": "10.10.0", "tiny-warning": "^1.0.2" } }, "node_modules/jss-plugin-props-sort": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.9.0.tgz", - "integrity": "sha512-7A76HI8bzwqrsMOJTWKx/uD5v+U8piLnp5bvru7g/3ZEQOu1+PjHvv7bFdNO3DwNPC9oM0a//KwIJsIcDCjDzw==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.10.0.tgz", + "integrity": "sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0" + "jss": "10.10.0" } }, "node_modules/jss-plugin-rule-value-function": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.9.0.tgz", - "integrity": "sha512-IHJv6YrEf8pRzkY207cPmdbBstBaE+z8pazhPShfz0tZSDtRdQua5jjg6NMz3IbTasVx9FdnmptxPqSWL5tyJg==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.10.0.tgz", + "integrity": "sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0", + "jss": "10.10.0", "tiny-warning": "^1.0.2" } }, "node_modules/jss-plugin-vendor-prefixer": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.9.0.tgz", - "integrity": "sha512-MbvsaXP7iiVdYVSEoi+blrW+AYnTDvHTW6I6zqi7JcwXdc6I9Kbm234nEblayhF38EftoenbM+5218pidmC5gA==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.10.0.tgz", + "integrity": "sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==", "dependencies": { "@babel/runtime": "^7.3.1", "css-vendor": "^2.0.8", - "jss": "10.9.0" + "jss": "10.10.0" } }, + "node_modules/jss/node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, "node_modules/keycharm": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/keycharm/-/keycharm-0.2.0.tgz", @@ -11450,9 +10981,9 @@ } }, "node_modules/klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", "dev": true, "engines": { "node": ">= 8" @@ -11466,55 +10997,31 @@ "node": ">=6" } }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "node_modules/loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, "engines": { "node": ">=6.11.5" } }, "node_modules/loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", - "json5": "^1.0.1" + "json5": "^2.1.2" }, "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/loader-utils/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" + "node": ">=8.9.0" } }, "node_modules/locate-path": { @@ -11541,28 +11048,28 @@ "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "node_modules/lodash.escape": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", - "integrity": "sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg=" + "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==" }, "node_modules/lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=" + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==" }, "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, "node_modules/loose-envify": { @@ -11586,20 +11093,18 @@ } }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "yallist": "^3.0.2" } }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, "dependencies": { "semver": "^6.0.0" }, @@ -11610,14 +11115,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -11647,12 +11144,12 @@ } }, "node_modules/memfs": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.3.tgz", - "integrity": "sha512-eivjfi7Ahr6eQTn44nvTnR60e4a1Fs1Via2kCR5lHo/kyNoiMWaXCNJ/GpSd0ilXas2JSOl9B5FTIhflXu0hlg==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", "dev": true, "dependencies": { - "fs-monkey": "1.0.3" + "fs-monkey": "^1.0.4" }, "engines": { "node": ">= 4.0.0" @@ -11693,12 +11190,12 @@ } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" @@ -11717,21 +11214,21 @@ } }, "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "dependencies": { - "mime-db": "1.51.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" @@ -11748,15 +11245,15 @@ "node_modules/min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", "dependencies": { "dom-walk": "^0.1.0" } }, "node_modules/mini-css-extract-plugin": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz", - "integrity": "sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==", + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", + "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", "dev": true, "dependencies": { "schema-utils": "^4.0.0" @@ -11773,9 +11270,9 @@ } }, "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -11807,15 +11304,15 @@ "dev": true }, "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 12.13.0" @@ -11842,11 +11339,6 @@ "node": "*" } }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, "node_modules/moment": { "version": "2.29.4", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", @@ -11856,20 +11348,29 @@ } }, "node_modules/moment-timezone": { - "version": "0.5.37", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.37.tgz", - "integrity": "sha512-uEDzDNFhfaywRl+vwXxffjjq1q0Vzr+fcQpQ1bU0kbzorfS7zVtZnCnGc8mhWmF39d4g4YriF6kwA75mJKE/Zg==", + "version": "0.5.43", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz", + "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==", "dependencies": { - "moment": ">= 2.9.0" + "moment": "^2.29.4" }, "engines": { "node": "*" } }, "node_modules/moo": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", - "integrity": "sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==" + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==" + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } }, "node_modules/ms": { "version": "2.1.2", @@ -11890,10 +11391,16 @@ } }, "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -11957,6 +11464,12 @@ "tslib": "^2.0.3" } }, + "node_modules/node-abort-controller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "dev": true + }, "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", @@ -11972,9 +11485,9 @@ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" }, "node_modules/node-releases": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==" + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -11985,9 +11498,9 @@ } }, "node_modules/normalizr": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/normalizr/-/normalizr-3.6.1.tgz", - "integrity": "sha512-8iEmqXmPtll8PwbEFrbPoDxVw7MKnNvt3PZzR2Xvq9nggEEOgBlNICPXYzyZ4w4AkHUzCU998mdatER3n2VaMA==" + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/normalizr/-/normalizr-3.6.2.tgz", + "integrity": "sha512-30qCybsBaCBciotorvuOZTCGEg2AXrJfADMT2Kk/lvpIAcipHdK0zc33nNtwKzyfQAqIJXAcqET6YgflYUgsoQ==" }, "node_modules/npm-run-path": { "version": "4.0.1", @@ -12001,9 +11514,9 @@ } }, "node_modules/nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dependencies": { "boolbase": "^1.0.0" }, @@ -12014,29 +11527,30 @@ "node_modules/numeral": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", - "integrity": "sha1-StCAk21EPCVhrtnyGX7//iX05QY=", + "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==", "engines": { "node": "*" } }, "node_modules/nwsapi": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.1.tgz", - "integrity": "sha512-JYOWTeFoS0Z93587vRJgASD5Ut11fYl5NyihP3KrYBvMe1FRRs6RN7m20SA/16GM4P6hTnZjT+UmDOt38UeXNg==", - "dev": true + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", + "dev": true, + "peer": true }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -12065,13 +11579,13 @@ } }, "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, "engines": { @@ -12082,28 +11596,27 @@ } }, "node_modules/object.entries": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz", - "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has": "^1.0.3" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" @@ -12113,14 +11626,13 @@ } }, "node_modules/object.values": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", - "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" @@ -12159,7 +11671,7 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dependencies": { "wrappy": "1" } @@ -12179,9 +11691,9 @@ } }, "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, "dependencies": { "define-lazy-prop": "^2.0.0", @@ -12195,32 +11707,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" + "bin": { + "opener": "bin/opener-bin.js" } }, "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -12237,6 +11741,20 @@ "node": ">=8" } }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-retry": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", @@ -12297,16 +11815,26 @@ } }, "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } }, "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", "dependencies": { - "parse5": "^6.0.1" + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, "node_modules/parseurl": { @@ -12339,7 +11867,7 @@ "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "engines": { "node": ">=0.10.0" } @@ -12374,7 +11902,7 @@ "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "node_modules/picocolors": { "version": "1.0.0", @@ -12393,9 +11921,9 @@ } }, "node_modules/pirates": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz", - "integrity": "sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "engines": { "node": ">= 6" } @@ -12417,9 +11945,9 @@ "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==" }, "node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "version": "8.4.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", + "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", "dev": true, "funding": [ { @@ -12429,10 +11957,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -12453,9 +11985,9 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", "dev": true, "dependencies": { "icss-utils": "^5.0.0", @@ -12500,9 +12032,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -12518,15 +12050,6 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/pretty-error": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", @@ -12538,17 +12061,17 @@ } }, "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.2.tgz", + "integrity": "sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==", "devOptional": true, "dependencies": { - "ansi-regex": "^5.0.1", + "@jest/schemas": "^29.6.0", "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" + "react-is": "^18.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/pretty-format/node_modules/ansi-styles": { @@ -12564,15 +12087,15 @@ } }, "node_modules/pretty-format/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "devOptional": true }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "engines": { "node": ">= 0.6.0" } @@ -12596,24 +12119,13 @@ } }, "node_modules/prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "node_modules/prop-types-exact": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.0.tgz", - "integrity": "sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==", - "dev": true, - "dependencies": { - "has": "^1.0.3", - "object.assign": "^4.1.0", - "reflect.ownkeys": "^0.2.0" + "react-is": "^16.13.1" } }, "node_modules/prop-types-extra": { @@ -12628,6 +12140,11 @@ "react": ">=0.14.0" } }, + "node_modules/prop-types-extra/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/prop-types-extra/node_modules/warning": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", @@ -12636,6 +12153,11 @@ "loose-envify": "^1.0.0" } }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -12659,24 +12181,56 @@ } }, "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true, + "peer": true + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "node_modules/pure-rand": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", + "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, "engines": { - "node": ">=6" + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/query-string": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==", "dependencies": { "object-assign": "^4.1.0", "strict-uri-encode": "^1.0.0" @@ -12685,6 +12239,13 @@ "node": ">=0.10.0" } }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true, + "peer": true + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -12721,7 +12282,7 @@ "node_modules/railroad-diagrams": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", - "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=" + "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==" }, "node_modules/randexp": { "version": "0.4.6", @@ -12790,9 +12351,9 @@ } }, "node_modules/react-beautiful-dnd": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.0.tgz", - "integrity": "sha512-aGvblPZTJowOWUNiwd6tNfEpgkX5OxmpqxHKNW/4VmvZTNTbeiq7bA3bn5T+QSF2uibXB0D1DmJsb1aC/+3cUA==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.1.tgz", + "integrity": "sha512-0Lvs4tq2VcrEjEgDXHjT98r+63drkKEgqyxdA7qD3mvKwga6a5SscbdLPO2IExotU1jW8L0Ksdl0Cj2AF67nPQ==", "dependencies": { "@babel/runtime": "^7.9.2", "css-box-model": "^1.2.0", @@ -12803,8 +12364,8 @@ "use-memo-one": "^1.1.1" }, "peerDependencies": { - "react": "^16.8.5 || ^17.0.0", - "react-dom": "^16.8.5 || ^17.0.0" + "react": "^16.8.5 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.5 || ^17.0.0 || ^18.0.0" } }, "node_modules/react-bootstrap": { @@ -12844,6 +12405,21 @@ "react-dom": ">=15.0.0" } }, + "node_modules/react-bootstrap/node_modules/react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "dependencies": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0", + "react-dom": ">=15.0.0" + } + }, "node_modules/react-chartjs-2": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-4.3.1.tgz", @@ -12901,19 +12477,19 @@ } }, "node_modules/react-fast-compare": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" }, "node_modules/react-hot-loader": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.13.0.tgz", - "integrity": "sha512-JrLlvUPqh6wIkrK2hZDfOyq/Uh/WeVEr8nc7hkn2/3Ul0sx1Kr5y4kOGNacNRoj7RhwLNcQ3Udf1KJXrqc0ZtA==", + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.13.1.tgz", + "integrity": "sha512-ZlqCfVRqDJmMXTulUGic4lN7Ic1SXgHAFw7y/Jb7t25GBgTR0fYAJ8uY4mrpxjRyWGWmqw77qJQGnYbzCvBU7g==", "dependencies": { "fast-levenshtein": "^2.0.6", "global": "^4.3.0", "hoist-non-react-statics": "^3.3.0", - "loader-utils": "^1.1.0", + "loader-utils": "^2.0.3", "prop-types": "^15.6.1", "react-lifecycles-compat": "^3.0.4", "shallowequal": "^1.1.0", @@ -12923,9 +12499,9 @@ "node": ">= 6" }, "peerDependencies": { - "@types/react": "^15.0.0 || ^16.0.0 || ^17.0.0 ", - "react": "^15.0.0 || ^16.0.0 || ^17.0.0 ", - "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 " + "@types/react": "^15.0.0 || ^16.0.0 || ^17.0.0", + "react": "^15.0.0 || ^16.0.0 || ^17.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -12934,9 +12510,9 @@ } }, "node_modules/react-hot-loader/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "engines": { "node": ">= 8" } @@ -12953,9 +12529,9 @@ } }, "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, "node_modules/react-lifecycles-compat": { "version": "3.0.4", @@ -12963,16 +12539,16 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "node_modules/react-onclickoutside": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.12.1.tgz", - "integrity": "sha512-a5Q7CkWznBRUWPmocCvE8b6lEYw1s6+opp/60dCunhO+G6E4tDTO2Sd2jKE+leEnnrLAE2Wj5DlDHNqj5wPv1Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.13.0.tgz", + "integrity": "sha512-ty8So6tcUpIb+ZE+1HAhbLROvAIJYyJe/1vRrrcmW+jLsaM+/powDRqxzo6hSh9CuRZGSL1Q8mvcF5WRD93a0A==", "funding": { "type": "individual", "url": "https://github.com/Pomax/react-onclickoutside/blob/master/FUNDING.md" }, "peerDependencies": { - "react": "^15.5.x || ^16.x || ^17.x", - "react-dom": "^15.5.x || ^16.x || ^17.x" + "react": "^15.5.x || ^16.x || ^17.x || ^18.x", + "react-dom": "^15.5.x || ^16.x || ^17.x || ^18.x" } }, "node_modules/react-overlays": { @@ -12992,17 +12568,33 @@ "react-dom": ">=16.3.0" } }, + "node_modules/react-overlays/node_modules/react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "dependencies": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0", + "react-dom": ">=15.0.0" + } + }, "node_modules/react-popper": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.2.5.tgz", - "integrity": "sha512-kxGkS80eQGtLl18+uig1UIf9MKixFSyPxglsgLBxlYnyDf65BiY9B3nZSc6C9XUNDgStROB0fMQlTEz1KxGddw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", + "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", "dependencies": { "react-fast-compare": "^3.0.1", "warning": "^4.0.2" }, "peerDependencies": { "@popperjs/core": "^2.0.0", - "react": "^16.8.0 || ^17" + "react": "^16.8.0 || ^17 || ^18", + "react-dom": "^16.8.0 || ^17 || ^18" } }, "node_modules/react-popper/node_modules/warning": { @@ -13016,7 +12608,7 @@ "node_modules/react-prop-types": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.4.0.tgz", - "integrity": "sha1-+ZsL+0AGkpya8gUefBQUpcdbk9A=", + "integrity": "sha512-IyjsJhDX9JkoOV9wlmLaS7z+oxYoIWhfzDcFy7inwoAKTu+VcVNrVpPmLeioJ94y6GeDRsnwarG1py5qofFQMg==", "dependencies": { "warning": "^3.0.0" }, @@ -13025,9 +12617,9 @@ } }, "node_modules/react-redux": { - "version": "7.2.8", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.8.tgz", - "integrity": "sha512-6+uDjhs3PSIclqoCk0kd6iX74gzrGc3W5zcAjbrFgEdIjRSQObdIwfx80unTkVUYvbQ95Y8Av3OvFHq1w5EOUw==", + "version": "7.2.9", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", + "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", "dependencies": { "@babel/runtime": "^7.15.4", "@types/react-redux": "^7.1.20", @@ -13048,11 +12640,6 @@ } } }, - "node_modules/react-redux/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, "node_modules/react-select": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/react-select/-/react-select-4.3.1.tgz", @@ -13071,28 +12658,17 @@ "react-dom": "^16.8.0 || ^17.0.0" } }, - "node_modules/react-select/node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/react-select/node_modules/react-transition-group": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", - "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", + "node_modules/react-shallow-renderer": { + "version": "16.15.0", + "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", + "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", + "dev": true, "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" + "object-assign": "^4.1.1", + "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" }, "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" + "react": "^16.0.0 || ^17.0.0 || ^18.0.0" } }, "node_modules/react-sticky": { @@ -13109,36 +12685,26 @@ } }, "node_modules/react-test-renderer": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.14.0.tgz", - "integrity": "sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz", + "integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==", "dev": true, "dependencies": { "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "react-is": "^16.8.6", - "scheduler": "^0.19.1" + "react-is": "^17.0.2", + "react-shallow-renderer": "^16.13.1", + "scheduler": "^0.20.2" }, "peerDependencies": { - "react": "^16.14.0" - } - }, - "node_modules/react-test-renderer/node_modules/scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "react": "17.0.2" } }, "node_modules/react-tooltip": { - "version": "4.2.21", - "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-4.2.21.tgz", - "integrity": "sha512-zSLprMymBDowknr0KVDiJ05IjZn9mQhhg4PRsqln0OZtURAJ1snt1xi5daZfagsh6vfsziZrc9pErPTDY1ACig==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-4.5.1.tgz", + "integrity": "sha512-Zo+CSFUGXar1uV+bgXFFDe7VeS2iByeIp5rTgTcc2HqtuOS5D76QapejNNfx320MCY91TlhTQat36KGFTqgcvw==", "dependencies": { - "prop-types": "^15.7.2", + "prop-types": "^15.8.1", "uuid": "^7.0.3" }, "engines": { @@ -13158,18 +12724,32 @@ } }, "node_modules/react-transition-group": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", - "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", "dependencies": { - "dom-helpers": "^3.4.0", + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", "loose-envify": "^1.4.0", - "prop-types": "^15.6.2", - "react-lifecycles-compat": "^3.0.4" + "prop-types": "^15.6.2" }, "peerDependencies": { - "react": ">=15.0.0", - "react-dom": ">=15.0.0" + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/react-transition-group/node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/react-transition-group/node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" } }, "node_modules/react-treebeard": { @@ -13191,6 +12771,21 @@ "react-dom": ">=16.7.0" } }, + "node_modules/react-treebeard/node_modules/react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "dependencies": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0", + "react-dom": ">=15.0.0" + } + }, "node_modules/react-treebeard/node_modules/velocity-react": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/velocity-react/-/velocity-react-1.4.3.tgz", @@ -13215,9 +12810,9 @@ } }, "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -13241,15 +12836,15 @@ } }, "node_modules/rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, "dependencies": { - "resolve": "^1.9.0" + "resolve": "^1.20.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/reduce-reducers": { @@ -13258,9 +12853,9 @@ "integrity": "sha512-uoVmQnZQ+BtKKDKpBdbBri5SLNyIK9ULZGOA504++VbHcwouWE+fJDIo8AuESPF9/EYSkI0v05LDEQK6stCbTA==" }, "node_modules/redux": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz", - "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", "dependencies": { "@babel/runtime": "^7.9.2" } @@ -13276,12 +12871,6 @@ "reduce-reducers": "^0.1.0" } }, - "node_modules/reflect.ownkeys": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz", - "integrity": "sha512-qOLsBKHCpSOFKK1NUOCGC5VyeufB6lEsFe92AL2bhIJsacZS1qdoOZSbPk3MYKuT2cFlRDnulKXuuElIrMjGUg==", - "dev": true - }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -13289,9 +12878,9 @@ "dev": true }, "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "dev": true, "dependencies": { "regenerate": "^1.4.2" @@ -13301,14 +12890,14 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" @@ -13321,13 +12910,13 @@ "dev": true }, "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -13337,32 +12926,26 @@ } }, "node_modules/regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "dependencies": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { "node": ">=4" } }, - "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "dependencies": { "jsesc": "~0.5.0" @@ -13374,7 +12957,7 @@ "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, "bin": { "jsesc": "bin/jsesc" @@ -13383,7 +12966,7 @@ "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", "dev": true, "engines": { "node": ">= 0.10" @@ -13402,10 +12985,97 @@ "strip-ansi": "^6.0.1" } }, + "node_modules/renderkid/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/renderkid/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "engines": { "node": ">=0.10.0" } @@ -13426,9 +13096,9 @@ "dev": true }, "node_modules/reselect": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.6.tgz", - "integrity": "sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ==" + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" }, "node_modules/resize-observer-polyfill": { "version": "1.5.1", @@ -13436,12 +13106,16 @@ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" }, "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13485,43 +13159,21 @@ "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", "dev": true, "dependencies": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.14", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/resolve-url-loader/node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "devOptional": true, "engines": { "node": ">=10" } @@ -13567,10 +13219,17 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "dev": true, + "peer": true + }, "node_modules/rst-selector-parser": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", - "integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=", + "integrity": "sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==", "dependencies": { "lodash.flattendeep": "^4.4.0", "nearley": "^2.7.10" @@ -13599,10 +13258,55 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-array-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", + "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/safer-buffer": { "version": "2.1.2", @@ -13611,9 +13315,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.49.9", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz", - "integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==", + "version": "1.57.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.57.1.tgz", + "integrity": "sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -13628,16 +13332,16 @@ } }, "node_modules/sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.2.tgz", + "integrity": "sha512-nrIdVAAte3B9icfBiGWvmMhT/D+eCDwnk+yA7VE/76dp/WkHX+i44Q/pfo71NYbwj0Ap+PGsn0ekOuU1WFJ2AA==", "dev": true, "dependencies": { - "klona": "^2.0.4", + "klona": "^2.0.6", "neo-async": "^2.6.2" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.15.0" }, "funding": { "type": "opencollective", @@ -13645,7 +13349,7 @@ }, "peerDependencies": { "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", "sass": "^1.3.0", "sass-embedded": "*", "webpack": "^5.0.0" @@ -13666,21 +13370,22 @@ } }, "node_modules/sass/node_modules/immutable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", - "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.2.tgz", + "integrity": "sha512-oGXzbEDem9OOpDWZu88jGiYCvIsLHMvGw+8OXlpsvTFvIQplQbjg1B1cvKg8f7Hoch6+NGjpPsH1Fr+Mc2D1aA==", "dev": true }, "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, + "peer": true, "dependencies": { "xmlchars": "^2.2.0" }, "engines": { - "node": ">=10" + "node": ">=v12.22.7" } }, "node_modules/scheduler": { @@ -13717,9 +13422,9 @@ "dev": true }, "node_modules/selfsigned": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", - "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", "dev": true, "dependencies": { "node-forge": "^1" @@ -13729,12 +13434,11 @@ } }, "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" } }, "node_modules/send": { @@ -13776,15 +13480,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/send/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -13792,9 +13487,9 @@ "dev": true }, "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, "dependencies": { "randombytes": "^2.1.0" @@ -13827,6 +13522,15 @@ "ms": "2.0.0" } }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/serve-index/node_modules/http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", @@ -13944,17 +13648,35 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "node_modules/sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/sockjs": { @@ -13968,10 +13690,19 @@ "websocket-driver": "^0.7.4" } }, + "node_modules/sockjs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "engines": { "node": ">=0.10.0" } @@ -13986,24 +13717,14 @@ } }, "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", @@ -14037,12 +13758,12 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -14070,7 +13791,7 @@ "node_modules/strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", "engines": { "node": ">=0.10.0" } @@ -14084,26 +13805,6 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -14130,13 +13831,13 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.4.tgz", - "integrity": "sha512-hWCk/iqf7lp0/AgTF7/ddO1IWtSNPASjlzCicV5irAVdE1grjsneK26YG6xACMBEdCvO8fUST0UzDMh/2Qy+9Q==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" @@ -14146,26 +13847,26 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -14210,9 +13911,9 @@ } }, "node_modules/style-loader": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", - "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", + "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", "dev": true, "engines": { "node": ">= 12.13.0" @@ -14226,9 +13927,9 @@ } }, "node_modules/stylis": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", - "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" }, "node_modules/supports-color": { "version": "5.5.0", @@ -14242,9 +13943,9 @@ } }, "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" @@ -14272,11 +13973,23 @@ "node": ">=8" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/tapable": { "version": "2.2.1", @@ -14303,13 +14016,13 @@ } }, "node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "version": "5.19.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.2.tgz", + "integrity": "sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==", "dev": true, "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -14321,16 +14034,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz", - "integrity": "sha512-LPIisi3Ol4chwAaPP8toUJ3L4qCM1G0wao7L3qNv57Drezxj6+VEyySpPw4B1HSO2Eg/hDY/MNF5XihCAoqnsQ==", + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", "dev": true, "dependencies": { - "jest-worker": "^27.4.1", + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" }, "engines": { "node": ">= 10.13.0" @@ -14354,10 +14067,33 @@ } } }, + "node_modules/terser-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -14372,13 +14108,19 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/terser-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/terser/node_modules/commander": { @@ -14387,6 +14129,16 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "node_modules/terser/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -14400,12 +14152,6 @@ "node": ">=8" } }, - "node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -14413,9 +14159,9 @@ "dev": true }, "node_modules/tiny-invariant": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.2.0.tgz", - "integrity": "sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" }, "node_modules/tiny-warning": { "version": "1.0.3", @@ -14423,12 +14169,9 @@ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" }, "node_modules/tinycolor2": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", - "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==", - "engines": { - "node": "*" - } + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" }, "node_modules/tmpl": { "version": "1.0.5", @@ -14438,7 +14181,7 @@ "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "engines": { "node": ">=4" } @@ -14454,60 +14197,96 @@ "node": ">=8.0" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "peer": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "dev": true, + "peer": true, "engines": { - "node": ">=0.6" + "node": ">= 4.0.0" } }, "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", "dev": true, + "peer": true, "dependencies": { - "punycode": "^2.1.1" + "punycode": "^2.3.0" }, "engines": { - "node": ">=8" + "node": ">=14" } }, "node_modules/ts-jest": { - "version": "27.1.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", - "integrity": "sha512-Xv6jBQPoBEvBq/5i2TeSG9tt/nqkbpcurrEG1b+2yfBrcJelOZF9Ml6dmyMh7bcW9JyFbRYpR5rxROSlBLTZHA==", + "version": "29.1.1", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz", + "integrity": "sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==", "dev": true, "dependencies": { "bs-logger": "0.x", "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", "lodash.memoize": "4.x", "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" + "semver": "^7.5.3", + "yargs-parser": "^21.0.1" }, "bin": { "ts-jest": "cli.js" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { "@babel/core": ">=7.0.0-beta.0 <8", - "@types/jest": "^27.0.0", - "babel-jest": ">=27.0.0 <28", - "jest": "^27.0.0", - "typescript": ">=3.8 <5.0" + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" }, "peerDependenciesMeta": { "@babel/core": { "optional": true }, - "@types/jest": { + "@jest/types": { "optional": true }, "babel-jest": { @@ -14518,10 +14297,22 @@ } } }, + "node_modules/ts-jest/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/ts-jest/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -14533,27 +14324,22 @@ "node": ">=10" } }, + "node_modules/ts-jest/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "dev": true }, "node_modules/tsv": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/tsv/-/tsv-0.2.0.tgz", - "integrity": "sha1-koaaPLX1AzLz3JD8qCvmZ9tvctY=" - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } + "integrity": "sha512-GG6xbOP85giXXom0dS6z9uyDsxktznjpa1AuDlPrIXDqDnbhjr9Vk6Us8iz6U1nENL4CPS2jZDvIjEdaZsmc4Q==" }, "node_modules/type-detect": { "version": "4.0.8", @@ -14587,26 +14373,79 @@ "node": ">= 0.6" } }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dependencies": { - "is-typedarray": "^1.0.0" + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", "dev": true, + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/unbox-primitive": { @@ -14660,18 +14499,18 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, "engines": { "node": ">=4" @@ -14695,6 +14534,35 @@ "node": ">= 0.8" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -14704,6 +14572,17 @@ "punycode": "^2.1.0" } }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "peer": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "node_modules/use-immer": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/use-immer/-/use-immer-0.6.0.tgz", @@ -14714,23 +14593,23 @@ } }, "node_modules/use-memo-one": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.2.tgz", - "integrity": "sha512-u2qFKtxLsia/r8qG0ZKkbytbztzRb317XCkT7yP8wxL0tZ/CzK2G+WWie5vWvpyeP7+YoPIwbJoIHJ4Ba4k0oQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz", + "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", "dev": true }, "node_modules/utils-merge": { @@ -14743,36 +14622,26 @@ } }, "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "dev": true, + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" + "convert-source-map": "^1.6.0" }, "engines": { "node": ">=10.12.0" } }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/value-equal": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz", @@ -14792,22 +14661,6 @@ "resolved": "https://registry.npmjs.org/velocity-animate/-/velocity-animate-1.5.2.tgz", "integrity": "sha512-m6EXlCAMetKztO1ppBhGU1/1MR3IiEevO6ESq6rcrSQ3Q77xYSW13jkfXW88o4xMrkXJhy/U7j4wFR/twMB0Eg==" }, - "node_modules/vis-data": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/vis-data/-/vis-data-6.6.1.tgz", - "integrity": "sha512-xmujDB2Dzf8T04rGFJ9OP4OA6zRVrz8R9hb0CVKryBrZRCljCga9JjSfgctA8S7wdZu7otDtUIwX4ZOgfV/57w==", - "hasInstallScript": true, - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/visjs" - }, - "peerDependencies": { - "moment": "^2.24.0", - "uuid": "^7.0.0 || ^8.0.0", - "vis-util": "^4.0.0" - } - }, "node_modules/vis-util": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/vis-util/-/vis-util-4.3.4.tgz", @@ -14821,35 +14674,17 @@ "url": "https://opencollective.com/visjs" } }, - "node_modules/vis-uuid": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/vis-uuid/-/vis-uuid-1.1.3.tgz", - "integrity": "sha512-2B6XdY1bkzbUh+TugmnAaFa61KO9R5pzBzIuFIm8a9FrkbxIdSmQXV+FbfkL8QunkQV/bT0JDLQ2puqCS2+0Og==", - "deprecated": "We don't use this library anymore so you shouldn't either. Use e.g. 'uuid' instead!", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", "dev": true, + "peer": true, "dependencies": { - "xml-name-validator": "^3.0.0" + "xml-name-validator": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/walker": { @@ -14863,15 +14698,15 @@ "node_modules/warning": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "integrity": "sha512-jMBt6pUrKn5I+OGgtQ4YZLdhIeJmObddh6CsibPxyQ5yPZm1XExSyzC1LCNX7BzhxWgiHmizBWJTHJIjMjTQYQ==", "dependencies": { "loose-envify": "^1.0.0" } }, "node_modules/watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -14891,18 +14726,19 @@ } }, "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true, + "peer": true, "engines": { - "node": ">=10.4" + "node": ">=12" } }, "node_modules/webpack": { - "version": "5.73.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", - "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", + "version": "5.75.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", + "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -14910,11 +14746,11 @@ "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", + "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.3", + "enhanced-resolve": "^5.10.0", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -14927,7 +14763,7 @@ "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", + "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "bin": { @@ -14946,45 +14782,145 @@ } } }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz", + "integrity": "sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==", + "dev": true, + "dependencies": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/webpack-cli": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", - "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.0.2.tgz", + "integrity": "sha512-4y3W5Dawri5+8dXm3+diW6Mn1Ya+Dei6eEVAdIduAmYNLzv1koKVAqsfgrrc9P2mhrYHQphx5htnGkcNwtubyQ==", "dev": true, "dependencies": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.2.0", - "@webpack-cli/info": "^1.5.0", - "@webpack-cli/serve": "^1.7.0", + "@webpack-cli/configtest": "^2.0.1", + "@webpack-cli/info": "^2.0.1", + "@webpack-cli/serve": "^2.0.2", "colorette": "^2.0.14", - "commander": "^7.0.0", + "commander": "^10.0.1", "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", "webpack-merge": "^5.7.3" }, "bin": { "webpack-cli": "bin/cli.js" }, "engines": { - "node": ">=10.13.0" + "node": ">=14.15.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "4.x.x || 5.x.x" + "webpack": "5.x.x" }, "peerDependenciesMeta": { "@webpack-cli/generators": { "optional": true }, - "@webpack-cli/migrate": { - "optional": true - }, "webpack-bundle-analyzer": { "optional": true }, @@ -14994,12 +14930,12 @@ } }, "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, "engines": { - "node": ">= 10" + "node": ">=14" } }, "node_modules/webpack-dev-middleware": { @@ -15026,9 +14962,9 @@ } }, "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -15060,15 +14996,15 @@ "dev": true }, "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 12.13.0" @@ -15079,9 +15015,9 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.3.tgz", - "integrity": "sha512-3qp/eoboZG5/6QgiZ3llN8TUzkSpYg1Ko9khWX1h40MIEUNS2mDoIa8aXsPfskER+GbTvs/IJZ1QTBBhhuetSw==", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", + "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", "dev": true, "dependencies": { "@types/bonjour": "^3.5.9", @@ -15107,7 +15043,7 @@ "p-retry": "^4.5.0", "rimraf": "^3.0.2", "schema-utils": "^4.0.0", - "selfsigned": "^2.0.1", + "selfsigned": "^2.1.1", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", @@ -15134,9 +15070,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -15168,15 +15104,15 @@ "dev": true }, "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 12.13.0" @@ -15187,16 +15123,16 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", - "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -15208,9 +15144,9 @@ } }, "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz", + "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==", "dev": true, "dependencies": { "clone-deep": "^4.0.1", @@ -15230,9 +15166,9 @@ } }, "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -15271,32 +15207,53 @@ } }, "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "peer": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "peer": true, "dependencies": { - "iconv-lite": "0.4.24" + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "peer": true, + "engines": { + "node": ">=12" + } }, "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", + "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", "dev": true, + "peer": true, "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/which": { @@ -15328,21 +15285,30 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, + "node_modules/which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -15392,18 +15358,18 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dependencies": { "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/ws": { @@ -15428,16 +15394,21 @@ } }, "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=12" + } }, "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/y18n": { "version": "5.0.8", @@ -15448,9 +15419,9 @@ } }, "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "node_modules/yaml": { "version": "1.10.2", @@ -15461,32 +15432,23 @@ } }, "node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "yargs-parser": "^21.1.1" }, "engines": { "node": ">=12" } }, "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", @@ -15508,516 +15470,472 @@ }, "dependencies": { "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "requires": { - "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" } }, "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", "requires": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.22.5" } }, "@babel/compat-data": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", - "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==" + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz", + "integrity": "sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==" }, "@babel/core": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", - "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "requires": { "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.7", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.8", - "@babel/parser": "^7.17.8", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", + "json5": "^2.2.2", "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } } }, "@babel/generator": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.0.tgz", - "integrity": "sha512-81YO9gGx6voPXlvYdZBliFXAZU8vZ9AZ6z+CjlmcnaeOcYSFbMTpdeDUO9xD9dh/68Vq03I8ZspfUTPfitcDHg==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz", + "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==", "requires": { - "@babel/types": "^7.18.0", - "@jridgewell/gen-mapping": "^0.3.0", + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", - "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } } }, "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz", + "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" } }, "@babel/helper-compilation-targets": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz", - "integrity": "sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz", + "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==", "requires": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" } }, "@babel/helper-create-class-features-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", - "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz", + "integrity": "sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", - "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz", + "integrity": "sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" } }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } } }, "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==" }, "@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", "requires": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" } }, "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", "dev": true, "requires": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.22.5" } }, "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" } }, "@babel/helper-module-transforms": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", - "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz", + "integrity": "sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==", "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.0", - "@babel/types": "^7.18.0" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.5" } }, "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" } }, "@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==" }, "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", + "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-wrap-function": "^7.22.9" } }, "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", + "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5" } }, "@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "requires": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.22.5" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.22.5" } }, "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.22.5" } }, + "@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==" + }, "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==" }, "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==" }, "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz", + "integrity": "sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" } }, "@babel/helpers": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.0.tgz", - "integrity": "sha512-AE+HMYhmlMIbho9nbvicHyxFwhrO+xhKB6AhRxzl8w46Yj0VXTZjEsAoBVC7rB2I0jzX+yWyVybnO08qkfx6kg==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", + "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.0", - "@babel/types": "^7.18.0" + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.6", + "@babel/types": "^7.22.5" } }, "@babel/highlight": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", - "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.22.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-AqDccGC+m5O/iUStSJy3DGRIUFu7WbY/CppZYwrEUB4N0tZlnI8CSTsgL7v5fHVFmUbRv2sd+yy27o8Ydt4MGg==" + "version": "7.22.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", + "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", - "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", + "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", - "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", + "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.5" } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", - "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-proposal-class-static-block": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", - "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", - "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", - "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", - "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", - "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", "dev": true, "requires": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" + "@babel/plugin-transform-parameters": "^7.20.7" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", - "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", - "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", - "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", - "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-syntax-async-generators": { @@ -16071,6 +15989,15 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, "@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", @@ -16088,11 +16015,12 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz", - "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -16161,413 +16089,425 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", - "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", - "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", - "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-remap-async-to-generator": "^7.16.8" + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.17.12.tgz", - "integrity": "sha512-jw8XW/B1i7Lqwqj2CbrViPcZijSxfguBWZP2aN59NHgxUyO/OcO1mfdCxH13QhN5LbWhPkX+f+brKGhZTiqtZQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz", + "integrity": "sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-classes": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.17.12.tgz", - "integrity": "sha512-cvO7lc7pZat6BsvH6l/EGaI8zpl8paICaoGk+7x7guvtfak/TbIf66nYmJOH13EuG0H+Xx3M+9LQDtSvZFKXKw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz", + "integrity": "sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", - "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" } }, "@babel/plugin-transform-destructuring": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", - "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz", + "integrity": "sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", - "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-for-of": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", - "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", + "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-literals": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", - "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", - "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", + "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.0.tgz", - "integrity": "sha512-cCeR0VZWtfxWS4YueAK2qtHtBPJRSaJcMlbS8jhSIm/A3E2Kpro4W1Dn4cqJtp59dtWfXjQwK7SPKF8ghs7rlw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", + "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-simple-access": "^7.17.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.0.tgz", - "integrity": "sha512-vwKpxdHnlM5tIrRt/eA0bzfbi7gUBLN08vLu38np1nZevlPySRe6yvuATJB5F/WPJ+ur4OXwpVYq9+BsxqAQuQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", + "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", - "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", - "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-new-target": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz", - "integrity": "sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz", + "integrity": "sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-transform-parameters": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", - "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", + "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", + "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz", - "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz", + "integrity": "sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-jsx": "^7.17.12", - "@babel/types": "^7.17.12" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/types": "^7.22.5" } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", + "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", "dev": true, "requires": { - "@babel/plugin-transform-react-jsx": "^7.16.7" + "@babel/plugin-transform-react-jsx": "^7.22.5" } }, "@babel/plugin-transform-react-pure-annotations": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.0.tgz", - "integrity": "sha512-6+0IK6ouvqDn9bmEG7mEyF/pwlJXVj5lwydybpyyH3D0A7Hftk+NCTdYjnLNZksn261xaOV5ksmp20pQEmc2RQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz", + "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-regenerator": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", - "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz", + "integrity": "sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "regenerator-transform": "^0.15.0" + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.1" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", - "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-spread": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", - "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-template-literals": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.17.12.tgz", - "integrity": "sha512-kAKJ7DX1dSRa2s7WN1xUAuaQmkTpN+uig4wCKWivVXIObqGbVTUlSavHyfI2iZvz89GFAMGm9p2DBJ4Y1Tp0hw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", - "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-typescript": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.1.tgz", - "integrity": "sha512-F+RJmL479HJmC0KeqqwEGZMg1P7kWArLGbAKfEi9yPthJyMNjF+DjxFF/halfQvq1Q9GFM4TUbYDNV8xe4Ctqg==", + "version": "7.22.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.9.tgz", + "integrity": "sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-typescript": "^7.17.12" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.9", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.22.5" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz", + "integrity": "sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" } }, "@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.20.0", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -16577,59 +16517,51 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } } }, "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6.tgz", + "integrity": "sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -16640,80 +16572,87 @@ } }, "@babel/preset-react": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", + "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-react-display-name": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.6", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-pure-annotations": "^7.18.6" } }, "@babel/preset-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", - "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", + "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-typescript": "^7.18.6" } }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, "@babel/runtime": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", - "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", + "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", "requires": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.11" } }, "@babel/runtime-corejs2": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.17.9.tgz", - "integrity": "sha512-+QThIsnjVY12uURTvmnW33risFZ7ulq6OWw0VJL08UwiYiWVp9PM63s+W1L2ppajYyKAYKb7afcGYSHzA0k04Q==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.22.6.tgz", + "integrity": "sha512-GTJVRjzQIHUBwRzuWxPII87XoWxXzILBJrQh5gqIV6q6m231Y0BBA9NKta5FV5Lbl8z5gS3+m6YSoKJp0KQJ4g==", "requires": { - "core-js": "^2.6.5", - "regenerator-runtime": "^0.13.4" + "core-js": "^2.6.12", + "regenerator-runtime": "^0.13.11" } }, "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" } }, "@babel/traverse": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.0.tgz", - "integrity": "sha512-oNOO4vaoIQoGjDQ84LgtF/IAlxlyqL4TUuoQ7xLkQETFaHkY1F7yazhB4Kt3VcZGL0ZF/jhrEpnXqUb0M7V3sw==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.0", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.18.0", - "@babel/types": "^7.18.0", + "version": "7.22.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz", + "integrity": "sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==", + "requires": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.7", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.7", + "@babel/types": "^7.22.5", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.0.tgz", - "integrity": "sha512-vhAmLPAiC8j9K2GnsnLPCIH5wCrPpYIVBCWRBFDCB7Y/BXLqi/O+1RSTTM2bsmg6U/551+FCf9PNPxjABmxHTw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", "to-fast-properties": "^2.0.0" } }, @@ -16729,41 +16668,50 @@ "dev": true }, "@emotion/babel-plugin": { - "version": "11.9.2", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz", - "integrity": "sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw==", + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/plugin-syntax-jsx": "^7.12.13", - "@babel/runtime": "^7.13.10", - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.5", - "@emotion/serialize": "^1.0.2", - "babel-plugin-macros": "^2.6.1", + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", "convert-source-map": "^1.5.0", "escape-string-regexp": "^4.0.0", "find-root": "^1.1.0", "source-map": "^0.5.7", - "stylis": "4.0.13" + "stylis": "4.2.0" }, "dependencies": { + "@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" } } }, "@emotion/cache": { - "version": "11.7.1", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.7.1.tgz", - "integrity": "sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==", + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", "requires": { - "@emotion/memoize": "^0.7.4", - "@emotion/sheet": "^1.1.0", - "@emotion/utils": "^1.0.0", - "@emotion/weak-memoize": "^0.2.5", - "stylis": "4.0.13" + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" } }, "@emotion/core": { @@ -16812,15 +16760,20 @@ "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz", "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==" }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, "@emotion/utils": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==" }, - "csstype": { - "version": "2.6.20", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", - "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" + "@emotion/weak-memoize": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", + "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" } } }, @@ -16851,15 +16804,15 @@ "csstype": "^2.5.7" } }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, "@emotion/utils": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==" - }, - "csstype": { - "version": "2.6.20", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", - "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" } } }, @@ -16884,40 +16837,53 @@ } }, "@emotion/memoize": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz", - "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" }, "@emotion/react": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.9.0.tgz", - "integrity": "sha512-lBVSF5d0ceKtfKCDQJveNAtkC7ayxpVlgOohLgXqRwqWr9bOf4TZAFFyIcNngnV6xK6X4x2ZeXq7vliHkoVkxQ==", - "requires": { - "@babel/runtime": "^7.13.10", - "@emotion/babel-plugin": "^11.7.1", - "@emotion/cache": "^11.7.1", - "@emotion/serialize": "^1.0.3", - "@emotion/utils": "^1.1.0", - "@emotion/weak-memoize": "^0.2.5", + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.1.tgz", + "integrity": "sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==", + "requires": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", "hoist-non-react-statics": "^3.3.1" } }, "@emotion/serialize": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.3.tgz", - "integrity": "sha512-2mSSvgLfyV3q+iVh3YWgNlUc2a9ZlDU7DjuP5MjK3AXRR0dYigCrP99aeFtaB2L/hjfEZdSThn5dsZ0ufqbvsA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", + "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", "requires": { - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.4", - "@emotion/unitless": "^0.7.5", - "@emotion/utils": "^1.0.0", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", "csstype": "^3.0.2" + }, + "dependencies": { + "@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + } } }, "@emotion/sheet": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.0.tgz", - "integrity": "sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==" + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" }, "@emotion/styled": { "version": "10.3.0", @@ -16956,15 +16922,15 @@ "csstype": "^2.5.7" } }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, "@emotion/utils": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==" - }, - "csstype": { - "version": "2.6.20", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", - "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" } } }, @@ -16974,19 +16940,25 @@ "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" }, "@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "requires": {} }, "@emotion/utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.1.0.tgz", - "integrity": "sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" }, "@emotion/weak-memoize": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", - "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" }, "@fortawesome/fontawesome-common-types": { "version": "0.2.36", @@ -17023,11 +16995,11 @@ } }, "@fortawesome/react-fontawesome": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.15.tgz", - "integrity": "sha512-/HFHdcoLESxxMkqZAcZ6RXDJ69pVApwdwRos/B2kiMWxDSAX2dFK8Er2/+rG+RsrzWB/dsAyjefLmemgmfE18g==", + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.19.tgz", + "integrity": "sha512-Hyb+lB8T18cvLNX0S3llz7PcSOAJMLwiVKBuuzwM/nI5uoBw+gQjnf9il0fR1C3DKOI5Kc79pkJ4/xB0Uw9aFQ==", "requires": { - "prop-types": "^15.7.2" + "prop-types": "^15.8.1" } }, "@icons/material": { @@ -17056,109 +17028,22 @@ } }, "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" - }, - "@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" }, - "@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "@jest/console": { + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.6.2.tgz", + "integrity": "sha512-0N0yZof5hi44HAR2pPS+ikJ3nzKNoZdVu8FffRf3wy47I7Dm7etk/3KetMdRUqzVd16V4O2m2ISpNTbnIuqy1w==", "dev": true, "requires": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/types": "^29.6.1", "@types/node": "*", - "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "jest-message-util": "^29.6.2", + "jest-util": "^29.6.2", + "slash": "^3.0.0" }, "dependencies": { "ansi-styles": { @@ -17201,6 +17086,12 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -17212,74 +17103,47 @@ } } }, - "@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "@jest/core": { + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.6.2.tgz", + "integrity": "sha512-Oj+5B+sDMiMWLhPFF+4/DvHOf+U10rgvCLGPHP8Xlsy/7QxS51aU/eBngudHlJXnaWD5EohAgJ4js+T6pa+zOg==", "dev": true, "requires": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/console": "^29.6.2", + "@jest/reporters": "^29.6.2", + "@jest/test-result": "^29.6.2", + "@jest/transform": "^29.6.2", + "@jest/types": "^29.6.1", "@types/node": "*", - "jest-mock": "^27.5.1" - } - }, - "@jest/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", - "requires": { - "expect": "^28.1.3", - "jest-snapshot": "^28.1.3" + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.5.0", + "jest-config": "^29.6.2", + "jest-haste-map": "^29.6.2", + "jest-message-util": "^29.6.2", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.6.2", + "jest-resolve-dependencies": "^29.6.2", + "jest-runner": "^29.6.2", + "jest-runtime": "^29.6.2", + "jest-snapshot": "^29.6.2", + "jest-util": "^29.6.2", + "jest-validate": "^29.6.2", + "jest-watcher": "^29.6.2", + "micromatch": "^4.0.4", + "pretty-format": "^29.6.2", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" }, "dependencies": { - "@jest/transform": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", - "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", - "requires": { - "@babel/core": "^7.11.6", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" - } - }, - "@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "requires": { - "@jest/schemas": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - } - }, - "@types/yargs": { - "version": "17.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.12.tgz", - "integrity": "sha512-Nz4MPhecOFArtm81gFQvQqdV7XYCrWKx5uUt6GNHredFHn1i2mtWqXTON7EPXMtNi1qjtjEM/VCHDhcHsAMLXQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -17288,6 +17152,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -17297,6 +17162,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -17304,281 +17170,119 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==" - }, - "expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", - "requires": { - "@jest/expect-utils": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==" - }, - "jest-haste-map": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", - "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", - "requires": { - "@jest/types": "^28.1.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - } - }, - "jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==" - }, - "jest-snapshot": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", - "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", - "requires": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-haste-map": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "natural-compare": "^1.4.0", - "pretty-format": "^28.1.3", - "semver": "^7.3.5" - } - }, - "jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - } - } + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "requires": { - "lru-cache": "^6.0.0" - } + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } - }, - "write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } } } }, + "@jest/environment": { + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.6.2.tgz", + "integrity": "sha512-AEcW43C7huGd/vogTddNNTDRpO6vQ2zaQNrttvWV18ArBx9Z56h7BIsXkNFJVOO4/kblWEQz30ckw0+L3izc+Q==", + "dev": true, + "requires": { + "@jest/fake-timers": "^29.6.2", + "@jest/types": "^29.6.1", + "@types/node": "*", + "jest-mock": "^29.6.2" + } + }, + "@jest/expect": { + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.6.2.tgz", + "integrity": "sha512-m6DrEJxVKjkELTVAztTLyS/7C92Y2b0VYqmDROYKLLALHn8T/04yPs70NADUYPrV3ruI+H3J0iUIuhkjp7vkfg==", + "dev": true, + "requires": { + "expect": "^29.6.2", + "jest-snapshot": "^29.6.2" + } + }, "@jest/expect-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", - "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.6.2.tgz", + "integrity": "sha512-6zIhM8go3RV2IG4aIZaZbxwpOzz3ZiM23oxAlkquOIole+G6TrbeXnykxWYlqF7kz2HlBjdKtca20x9atkEQYg==", + "dev": true, "requires": { - "jest-get-type": "^28.0.2" - }, - "dependencies": { - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==" - } + "jest-get-type": "^29.4.3" } }, "@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.6.2.tgz", + "integrity": "sha512-euZDmIlWjm1Z0lJ1D0f7a0/y5Kh/koLFMUBE5SUYWrmy8oNhJpbTBDAP6CxKnadcMLDoDf4waRYCe35cH6G6PA==", "dev": true, "requires": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", + "@jest/types": "^29.6.1", + "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" + "jest-message-util": "^29.6.2", + "jest-mock": "^29.6.2", + "jest-util": "^29.6.2" } }, "@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.6.2.tgz", + "integrity": "sha512-cjuJmNDjs6aMijCmSa1g2TNG4Lby/AeU7/02VtpW+SLcZXzOLK2GpN2nLqcFjmhy3B3AoPeQVx7BnyOf681bAw==", "dev": true, "requires": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" + "@jest/environment": "^29.6.2", + "@jest/expect": "^29.6.2", + "@jest/types": "^29.6.1", + "jest-mock": "^29.6.2" } }, "@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.6.2.tgz", + "integrity": "sha512-sWtijrvIav8LgfJZlrGCdN0nP2EWbakglJY49J1Y5QihcQLfy7ovyxxjJBRXMNltgt4uPtEcFmIMbVshEDfFWw==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/console": "^29.6.2", + "@jest/test-result": "^29.6.2", + "@jest/transform": "^29.6.2", + "@jest/types": "^29.6.1", + "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", - "glob": "^7.1.2", + "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^5.1.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", + "jest-message-util": "^29.6.2", + "jest-util": "^29.6.2", + "jest-worker": "^29.6.2", "slash": "^3.0.0", - "source-map": "^0.6.0", "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" }, "dependencies": { "ansi-styles": { @@ -17621,10 +17325,10 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, "supports-color": { @@ -17639,77 +17343,78 @@ } }, "@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "version": "29.6.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.0.tgz", + "integrity": "sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==", + "devOptional": true, "requires": { - "@sinclair/typebox": "^0.24.1" + "@sinclair/typebox": "^0.27.8" } }, "@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "version": "29.6.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.0.tgz", + "integrity": "sha512-oA+I2SHHQGxDCZpbrsCQSoMLb3Bz547JnM+jUr9qEbuw0vQlWZfpPS7CO9J7XiwKicEz9OFn/IYoLkkiUD7bzA==", "dev": true, "requires": { + "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "graceful-fs": "^4.2.9" } }, "@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.6.2.tgz", + "integrity": "sha512-3VKFXzcV42EYhMCsJQURptSqnyjqCGbtLuX5Xxb6Pm6gUf1wIRIl+mandIRGJyWKgNKYF9cnstti6Ls5ekduqw==", "dev": true, "requires": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/console": "^29.6.2", + "@jest/types": "^29.6.1", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.6.2.tgz", + "integrity": "sha512-GVYi6PfPwVejO7slw6IDO0qKVum5jtrJ3KoLGbgBWyr2qr4GaxFV6su+ZAjdTX75Sr1DkMFRk09r2ZVa+wtCGw==", "dev": true, "requires": { - "@jest/test-result": "^27.5.1", + "@jest/test-result": "^29.6.2", "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" + "jest-haste-map": "^29.6.2", + "slash": "^3.0.0" + }, + "dependencies": { + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + } } }, "@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.6.2.tgz", + "integrity": "sha512-ZqCqEISr58Ce3U+buNFJYUktLJZOggfyvR+bZMaiV1e8B1SIvJbwZMrYz3gx/KAPn9EXmOmN+uB08yLCjWkQQg==", "dev": true, "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.1", + "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", + "jest-haste-map": "^29.6.2", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.6.2", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" + "write-file-atomic": "^4.0.2" }, "dependencies": { "ansi-styles": { @@ -17746,16 +17451,22 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, "supports-color": { @@ -17770,15 +17481,16 @@ } }, "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "version": "29.6.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.1.tgz", + "integrity": "sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==", "devOptional": true, "requires": { + "@jest/schemas": "^29.6.0", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "@types/yargs": "^16.0.0", + "@types/yargs": "^17.0.8", "chalk": "^4.0.0" }, "dependencies": { @@ -17834,167 +17546,99 @@ } }, "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" } }, "@jridgewell/resolve-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", - "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" }, "@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" }, "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } } }, "@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==" + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "@jridgewell/trace-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", - "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + } } }, "@labkey/api": { - "version": "1.16.0", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.16.0.tgz", - "integrity": "sha512-C320dTPwmx2wtNRHSmixn1k9GspecmmxZF5Jsy4tW9PuMyJMY7MAD+pAZtNR5n2EL8/alB27qC/YrCiArQPDYQ==" + "version": "1.23.0", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.23.0.tgz", + "integrity": "sha512-wZj62pN30b+JjVIj7GB4im+FhG8TdrO8lfMgCh7l0OVehMGU5PW1ThekYYtzEawmc/WoNlzT4ytRYqxZ5GHTDA==" }, "@labkey/build": { - "version": "6.1.7", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/build/-/@labkey/build-6.1.7.tgz", - "integrity": "sha512-pvGP4q3n0iJmiJUkLmKlfyZPiUUjEXJ2ZmrB1n8t0cpbtoklut6+mYF1JMmklv5PP4xqtstZAdK5nsVZ4DhX1Q==", - "dev": true, - "requires": { - "@babel/core": "~7.17.8", - "@babel/plugin-proposal-class-properties": "~7.16.7", - "@babel/plugin-proposal-object-rest-spread": "~7.17.3", - "@babel/preset-env": "~7.16.11", - "@babel/preset-react": "~7.16.7", - "@babel/preset-typescript": "~7.16.7", - "@hot-loader/react-dom": "~16.14.0", - "babel-loader": "~8.2.4", + "version": "6.14.0", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/build/-/@labkey/build-6.14.0.tgz", + "integrity": "sha512-UTaQtGF7edUSy9jUTrQQ3MufhFYUWKUh7r0SX41Il455S3PRR6qtNfDAZqfmdZtGjhaX1B9q0J7IJl68UYI9Iw==", + "dev": true, + "requires": { + "@babel/core": "~7.20.12", + "@babel/plugin-proposal-class-properties": "~7.18.6", + "@babel/plugin-proposal-object-rest-spread": "~7.20.7", + "@babel/preset-env": "~7.20.2", + "@babel/preset-react": "~7.18.6", + "@babel/preset-typescript": "~7.18.6", + "babel-loader": "~8.3.0", "bootstrap-sass": "~3.4.3", "circular-dependency-plugin": "~5.2.2", - "copy-webpack-plugin": "~10.2.4", + "copy-webpack-plugin": "~11.0.0", "cross-env": "~7.0.3", - "css-loader": "~6.7.1", - "fork-ts-checker-webpack-plugin": "~7.2.1", + "css-loader": "~6.7.3", + "fork-ts-checker-webpack-plugin": "~7.2.14", "html-webpack-plugin": "~5.5.0", - "mini-css-extract-plugin": "~2.6.0", - "react-hot-loader": "~4.12.21", + "mini-css-extract-plugin": "~2.7.2", + "react-hot-loader": "~4.13.1", "resolve-url-loader": "~5.0.0", "rimraf": "~3.0.2", - "sass": "~1.49.9", - "sass-loader": "~12.6.0", + "sass": "~1.57.1", + "sass-loader": "~13.2.0", "style-loader": "~3.3.1", - "typescript": "~4.6.3", - "webpack": "~5.73.0", - "webpack-cli": "~4.10.0", - "webpack-dev-server": "~4.9.3" + "typescript": "~4.9.4", + "webpack": "~5.75.0", + "webpack-bundle-analyzer": "~4.7.0", + "webpack-cli": "~5.0.1", + "webpack-dev-server": "~4.11.1" }, "dependencies": { - "@hot-loader/react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/@hot-loader/react-dom/-/react-dom-16.14.0.tgz", - "integrity": "sha512-EN9czvcLsMYmSDo5yRKZOAq3ZGRlDpad1gPtX0NdMMomJXcPE3yFSeFzE94X/NjOaiSVimB7LuqPYpkWVaIi4Q==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - } - }, - "react": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", - "dev": true, - "peer": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - } - }, - "react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", - "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", - "dev": true, - "peer": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - } - }, - "react-hot-loader": { - "version": "4.12.21", - "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.21.tgz", - "integrity": "sha512-Ynxa6ROfWUeKWsTHxsrL2KMzujxJVPjs385lmB2t5cHUxdoRPGind9F00tOkdc1l5WBleOF4XEAMILY1KPIIDA==", - "dev": true, - "requires": { - "fast-levenshtein": "^2.0.6", - "global": "^4.3.0", - "hoist-non-react-statics": "^3.3.0", - "loader-utils": "^1.1.0", - "prop-types": "^15.6.1", - "react-lifecycles-compat": "^3.0.4", - "shallowequal": "^1.1.0", - "source-map": "^0.7.3" - } - }, - "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true } } @@ -18103,6 +17747,23 @@ "jest-mock": "^28.1.3" } }, + "@jest/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", + "requires": { + "expect": "^28.1.3", + "jest-snapshot": "^28.1.3" + } + }, + "@jest/expect-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", + "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "requires": { + "jest-get-type": "^28.0.2" + } + }, "@jest/fake-timers": { "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", @@ -18158,6 +17819,14 @@ "v8-to-istanbul": "^9.0.1" } }, + "@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, "@jest/source-map": { "version": "28.1.2", "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", @@ -18230,6 +17899,19 @@ "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.15.0.tgz", "integrity": "sha1-OZEawkPKPCranyrgekMhPokH4A0=" }, + "@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" + }, + "@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "requires": { + "type-detect": "4.0.8" + } + }, "@sinonjs/fake-timers": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", @@ -18238,15 +17920,6 @@ "@sinonjs/commons": "^1.7.0" } }, - "@types/enzyme": { - "version": "3.10.12", - "resolved": "https://registry.npmjs.org/@types/enzyme/-/enzyme-3.10.12.tgz", - "integrity": "sha512-xryQlOEIe1TduDWAOphR0ihfebKFSWOXpIsk+70JskCfRfW+xALdnJ0r1ZOTo85F9Qsjk6vtlU7edTYHbls9tA==", - "requires": { - "@types/cheerio": "*", - "@types/react": "*" - } - }, "@types/jest": { "version": "28.1.8", "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.8.tgz", @@ -18256,14 +17929,6 @@ "pretty-format": "^28.0.0" } }, - "@types/yargs": { - "version": "17.0.12", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.12.tgz", - "integrity": "sha512-Nz4MPhecOFArtm81gFQvQqdV7XYCrWKx5uUt6GNHredFHn1i2mtWqXTON7EPXMtNi1qjtjEM/VCHDhcHsAMLXQ==", - "requires": { - "@types/yargs-parser": "*" - } - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -18333,6 +17998,11 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + }, "diff-sequences": { "version": "28.1.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", @@ -18355,15 +18025,6 @@ "jest-util": "^28.1.3" } }, - "formsy-react": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/formsy-react/-/formsy-react-1.1.5.tgz", - "integrity": "sha512-nNWe4Vbp6aDQ/zSxJ7gVQgD5+avFRVbydcjA2Om42flxpQFrKE54AAbuyEj3Jvv+2b9LVl+WLMAPalyvLjwNcQ==", - "requires": { - "form-data-to-object": "^0.2.0", - "prop-types": "^15.5.10" - } - }, "formsy-react-components": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/formsy-react-components/-/formsy-react-components-1.1.0.tgz", @@ -18763,12 +18424,12 @@ } } }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { - "yocto-queue": "^0.1.0" + "yallist": "^4.0.0" } }, "pretty-format": { @@ -18786,11 +18447,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" } } }, @@ -18815,18 +18471,30 @@ "scheduler": "^0.19.1" } }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, "react-redux": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.1.0.tgz", - "integrity": "sha512-CRMpEx8+ccpoVxQrQDkG1obExNYpj6dZ1Ni7lUNFB9wcxOhy02tIqpFo4IUXc0kYvCGMu6ABj9A4imEX2VGZJQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.1.2.tgz", + "integrity": "sha512-Ns1G0XXc8hDyH/OcBHOxNgQx9ayH3SPxBnFCOidGKSle8pKihysQw2rG/PmciUQRoclhVBO8HMhiRmGXnDja9Q==", "requires": { "@babel/runtime": "^7.1.2", - "hoist-non-react-statics": "^3.0.0", + "hoist-non-react-statics": "^3.3.0", "invariant": "^2.2.4", "loose-envify": "^1.1.0", "prop-types": "^15.6.1", "react-is": "^16.6.0", "react-lifecycles-compat": "^3.0.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } } }, "react-router": { @@ -18847,16 +18515,26 @@ "history": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/history/-/history-3.3.0.tgz", - "integrity": "sha1-/O3M6PEpdTcVRdc1RhAzV5ptrpw=", + "integrity": "sha512-ABLnJwKEZGXGqWsXaKYD8NNle49ZbKs1WEBlxrFsQ8dIudZpO5NJaH8WJOqh5lXVhAq7bHksfirrobBmrT7qBw==", "requires": { "invariant": "^2.2.1", "loose-envify": "^1.2.0", "query-string": "^4.2.2", "warning": "^3.0.0" } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" } } }, + "resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==" + }, "scheduler": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", @@ -18867,26 +18545,17 @@ } }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "requires": { "lru-cache": "^6.0.0" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" }, "supports-color": { "version": "7.2.0", @@ -18896,15 +18565,18 @@ "has-flag": "^4.0.0" } }, - "v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - } + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "peer": true + }, + "vis-data": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/vis-data/-/vis-data-6.6.1.tgz", + "integrity": "sha512-xmujDB2Dzf8T04rGFJ9OP4OA6zRVrz8R9hb0CVKryBrZRCljCga9JjSfgctA8S7wdZu7otDtUIwX4ZOgfV/57w==", + "peer": true, + "requires": {} }, "vis-network": { "version": "6.5.2", @@ -18912,32 +18584,10 @@ "integrity": "sha512-Dj5oEtZMUWuhq7D7dwdmxmtJgrK3kwfV4Ov/ePSrhPZgNdJlXzpeDZU/Eq0pKGyOAPLClemgVImc0bZpZ4Yafw==", "requires": {} }, - "vis-util": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/vis-util/-/vis-util-1.1.10.tgz", - "integrity": "sha512-8hGSxsFi2ogYYweClQyITzWnirWgQ8p0i9M4d3OXMuUO8vjXrf+2zHOYI9OZbtUduxAWuMEePnS9BXDtPJmJ7Q==", - "peer": true, - "requires": { - "moment": "2.24.0", - "vis-uuid": "1.1.3" - }, - "dependencies": { - "moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", - "peer": true - } - } - }, - "write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, @@ -18949,43 +18599,21 @@ }, "@material-ui/core": { "version": "4.12.4", - "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz", - "integrity": "sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==", - "requires": { - "@babel/runtime": "^7.4.4", - "@material-ui/styles": "^4.11.5", - "@material-ui/system": "^4.12.2", - "@material-ui/types": "5.1.0", - "@material-ui/utils": "^4.11.3", - "@types/react-transition-group": "^4.2.0", - "clsx": "^1.0.4", - "hoist-non-react-statics": "^3.3.2", - "popper.js": "1.16.1-lts", - "prop-types": "^15.7.2", - "react-is": "^16.8.0 || ^17.0.0", - "react-transition-group": "^4.4.0" - }, - "dependencies": { - "dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "react-transition-group": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", - "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - } - } + "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz", + "integrity": "sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==", + "requires": { + "@babel/runtime": "^7.4.4", + "@material-ui/styles": "^4.11.5", + "@material-ui/system": "^4.12.2", + "@material-ui/types": "5.1.0", + "@material-ui/utils": "^4.11.3", + "@types/react-transition-group": "^4.2.0", + "clsx": "^1.0.4", + "hoist-non-react-statics": "^3.3.2", + "popper.js": "1.16.1-lts", + "prop-types": "^15.7.2", + "react-is": "^16.8.0 || ^17.0.0", + "react-transition-group": "^4.4.0" } }, "@material-ui/styles": { @@ -19009,13 +18637,6 @@ "jss-plugin-rule-value-function": "^10.5.1", "jss-plugin-vendor-prefixer": "^10.5.1", "prop-types": "^15.7.2" - }, - "dependencies": { - "csstype": { - "version": "2.6.20", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", - "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" - } } }, "@material-ui/system": { @@ -19027,13 +18648,6 @@ "@material-ui/utils": "^4.11.3", "csstype": "^2.5.2", "prop-types": "^15.7.2" - }, - "dependencies": { - "csstype": { - "version": "2.6.20", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", - "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" - } } }, "@material-ui/types": { @@ -19074,11 +18688,6 @@ "prop-types": "^15.7.2", "react-is": "^17.0.2" } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" } } }, @@ -19108,46 +18717,55 @@ "fastq": "^1.6.0" } }, + "@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, "@popperjs/core": { - "version": "2.11.5", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", - "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==" + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" }, "@sinclair/typebox": { - "version": "0.24.42", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.42.tgz", - "integrity": "sha512-d+2AtrHGyWek2u2ITF0lHRIv6Tt7X0dEHW+0rP+5aDCEjC3fiN2RBjrLD0yU0at52BcZbRGxLbAtXiR0hFCjYw==" + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "devOptional": true }, "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, "requires": { "type-detect": "4.0.8" } }, "@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, "requires": { - "@sinonjs/commons": "^1.7.0" + "@sinonjs/commons": "^3.0.0" } }, "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "peer": true }, "@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", + "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" @@ -19171,11 +18789,11 @@ } }, "@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", + "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", "requires": { - "@babel/types": "^7.3.0" + "@babel/types": "^7.20.7" } }, "@types/body-parser": { @@ -19224,9 +18842,9 @@ } }, "@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", "dev": true, "requires": { "@types/express-serve-static-core": "*", @@ -19234,28 +18852,18 @@ } }, "@types/enzyme": { - "version": "3.10.9", - "resolved": "https://registry.npmjs.org/@types/enzyme/-/enzyme-3.10.9.tgz", - "integrity": "sha512-dx5UvcWe2Vtye6S9Hw2rFB7Ul9uMXOAje2FAbXvVYieQDNle9qPAo7DfvFMSztZ9NFiD3dVZ4JsRYGTrSLynJg==", - "dev": true, + "version": "3.10.13", + "resolved": "https://registry.npmjs.org/@types/enzyme/-/enzyme-3.10.13.tgz", + "integrity": "sha512-FCtoUhmFsud0Yx9fmZk179GkdZ4U9B0GFte64/Md+W/agx0L5SxsIIbhLBOxIb9y2UfBA4WQnaG1Od/UsUQs9Q==", "requires": { "@types/cheerio": "*", - "@types/react": "*" - } - }, - "@types/enzyme-adapter-react-16": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.0.6.tgz", - "integrity": "sha512-VonDkZ15jzqDWL8mPFIQnnLtjwebuL9YnDkqeCDYnB4IVgwUm0mwKkqhrxLL6mb05xm7qqa3IE95m8CZE9imCg==", - "dev": true, - "requires": { - "@types/enzyme": "*" + "@types/react": "^16" } }, "@types/eslint": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.2.tgz", - "integrity": "sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA==", + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.1.tgz", + "integrity": "sha512-XpNDc4Z5Tb4x+SW1MriMVeIsMoONHCkWFMkR/aPJbzEsxqHy+4Glu/BqTdPrApfDeMaXbtNh6bseNgl5KaWrSg==", "dev": true, "requires": { "@types/estree": "*", @@ -19263,9 +18871,9 @@ } }, "@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", "dev": true, "requires": { "@types/eslint": "*", @@ -19279,32 +18887,33 @@ "dev": true }, "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", "dev": true, "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", + "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.29", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz", - "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==", + "version": "4.17.35", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", + "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", "dev": true, "requires": { "@types/node": "*", "@types/qs": "*", - "@types/range-parser": "*" + "@types/range-parser": "*", + "@types/send": "*" } }, "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", "requires": { "@types/node": "*" } @@ -19324,10 +18933,16 @@ "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", "dev": true }, + "@types/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", + "dev": true + }, "@types/http-proxy": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", - "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "version": "1.17.11", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", + "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", "dev": true, "requires": { "@types/node": "*" @@ -19355,19 +18970,34 @@ } }, "@types/jest": { - "version": "27.5.2", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", - "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", + "version": "29.5.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.3.tgz", + "integrity": "sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA==", + "dev": true, + "requires": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "@types/jexl": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@types/jexl/-/jexl-2.3.1.tgz", + "integrity": "sha512-D7htNp+ka5xdEfHeAQaukzXeDt9SMdHP55WFI0gT7iR7W+3FB4PrzUtuYklgpKdutGqc31UAjh65eHLUsIZyNA==", + "dev": true + }, + "@types/jquery": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.16.tgz", + "integrity": "sha512-bsI7y4ZgeMkmpG9OM710RRzDFp+w4P1RGiIt30C1mSBT+ExCleeh4HObwgArnDFELmRrOpXgSYN9VF1hj+f1lw==", "dev": true, "requires": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" + "@types/sizzle": "*" } }, "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", "dev": true }, "@types/mime": { @@ -19377,9 +19007,9 @@ "dev": true }, "@types/node": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.10.tgz", - "integrity": "sha512-S/3xB4KzyFxYGCppyDt68yzBU9ysL88lSdIah4D6cptdcltc4NCPCAMc0+PCpg/lLIyC7IPvj2Z52OJWeIUkog==" + "version": "18.17.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.1.tgz", + "integrity": "sha512-xlR1jahfizdplZYRU59JlUx9uzF1ARa8jbhM11ccpCJya8kvos5jwdm2ZAgxSCwOl0fq21svP18EVwPBXMQudw==" }, "@types/parse-json": { "version": "4.0.0", @@ -19387,9 +19017,9 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, "@types/prettier": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz", - "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==" + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" }, "@types/prop-types": { "version": "15.7.5", @@ -19409,49 +19039,51 @@ "dev": true }, "@types/react": { - "version": "16.14.25", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.25.tgz", - "integrity": "sha512-cXRVHd7vBT5v1is72mmvmsg9stZrbJO04DJqFeh3Yj2tVKO6vmxg5BI+ybI6Ls7ROXRG3aFbZj9x0WA3ZAoDQw==", + "version": "16.14.43", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.43.tgz", + "integrity": "sha512-7zdjv7jvoLLQg1tTvpQsm+hyNUMT2mPlNV1+d0I8fbGhkJl82spopMyBlu4wb1dviZAxpGdk5eHu/muacknnfw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", "csstype": "^3.0.2" + }, + "dependencies": { + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + } } }, - "@types/react-dom": { - "version": "17.0.17", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.17.tgz", - "integrity": "sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg==", - "dev": true, + "@types/react-is": { + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.4.tgz", + "integrity": "sha512-FLzd0K9pnaEvKz4D1vYxK9JmgQPiGk1lu23o1kqGsLeT0iPbRSF7b76+S5T9fD8aRa0B8bY7I/3DebEj+1ysBA==", "requires": { "@types/react": "^17" }, "dependencies": { "@types/react": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.45.tgz", - "integrity": "sha512-YfhQ22Lah2e3CHPsb93tRwIGNiSwkuz1/blk4e6QrWS0jQzCSNbGLtOEYhPg02W0yGTTmpajp7dCTbBAMN3qsg==", - "dev": true, + "version": "17.0.62", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.62.tgz", + "integrity": "sha512-eANCyz9DG8p/Vdhr0ZKST8JV12PhH2ACCDYlFw6DIO+D+ca+uP4jtEDEpVqXZrh/uZdXQGwk7whJa3ah5DtyLw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", "csstype": "^3.0.2" } + }, + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" } } }, - "@types/react-is": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz", - "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==", - "requires": { - "@types/react": "*" - } - }, "@types/react-redux": { - "version": "7.1.24", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.24.tgz", - "integrity": "sha512-7FkurKcS1k0FHZEtdbbgN8Oc6b+stGSfZYjQGicofJ0j4U0qIn/jaSvnP2pLwZKiai3/17xqqxkkrxTgN8UNbQ==", + "version": "7.1.25", + "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.25.tgz", + "integrity": "sha512-bAGh4e+w5D8dajd6InASVIyCo4pZLJ66oLb80F9OBLO1gKESbZcRCJpTT6uLXX+HAB57zw1WTdwJdAsewuTweg==", "requires": { "@types/hoist-non-react-statics": "^3.3.0", "@types/react": "*", @@ -19460,9 +19092,9 @@ } }, "@types/react-transition-group": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz", - "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==", + "version": "4.4.6", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz", + "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==", "requires": { "@types/react": "*" } @@ -19474,9 +19106,19 @@ "dev": true }, "@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" + }, + "@types/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", + "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "dev": true, + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } }, "@types/serve-index": { "version": "1.9.1", @@ -19488,15 +19130,22 @@ } }, "@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.2.tgz", + "integrity": "sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==", "dev": true, "requires": { - "@types/mime": "^1", + "@types/http-errors": "*", + "@types/mime": "*", "@types/node": "*" } }, + "@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", + "dev": true + }, "@types/sockjs": { "version": "0.3.33", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", @@ -19517,34 +19166,27 @@ "integrity": "sha512-oMaoqKmWkG+1GZshzFDAAr7V1Pg2AVb/fZ8YcFBi23MLWywjVuf0wRLNYIPE248NMq5xF1/Dbo8AWdna32eaSw==", "dev": true }, - "@types/uuid": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", - "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", - "dev": true - }, "@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "version": "8.5.5", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", + "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", "dev": true, "requires": { "@types/node": "*" } }, "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "devOptional": true, + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, "@webassemblyjs/ast": { "version": "1.11.1", @@ -19693,28 +19335,52 @@ } }, "@webpack-cli/configtest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", - "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", "dev": true, "requires": {} }, "@webpack-cli/info": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", - "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", "dev": true, - "requires": { - "envinfo": "^7.7.3" - } + "requires": {} }, "@webpack-cli/serve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", - "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", "dev": true, "requires": {} }, + "@wojtekmaj/enzyme-adapter-react-17": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@wojtekmaj/enzyme-adapter-react-17/-/enzyme-adapter-react-17-0.8.0.tgz", + "integrity": "sha512-zeUGfQRziXW7R7skzNuJyi01ZwuKCH8WiBNnTgUJwdS/CURrJwAhWsfW7nG7E30ak8Pu3ZwD9PlK9skBfAoOBw==", + "dev": true, + "requires": { + "@wojtekmaj/enzyme-adapter-utils": "^0.2.0", + "enzyme-shallow-equal": "^1.0.0", + "has": "^1.0.0", + "prop-types": "^15.7.0", + "react-is": "^17.0.0", + "react-test-renderer": "^17.0.0" + } + }, + "@wojtekmaj/enzyme-adapter-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@wojtekmaj/enzyme-adapter-utils/-/enzyme-adapter-utils-0.2.0.tgz", + "integrity": "sha512-ZvZm9kZxZEKAbw+M1/Q3iDuqQndVoN8uLnxZ8bzxm7KgGTBejrGRoJAp8f1EN8eoO3iAjBNEQnTDW/H4Ekb0FQ==", + "dev": true, + "requires": { + "function.prototype.name": "^1.1.0", + "has": "^1.0.0", + "object.fromentries": "^2.0.0", + "prop-types": "^15.7.0" + } + }, "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -19731,7 +19397,8 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true + "dev": true, + "peer": true }, "accepts": { "version": "1.3.8", @@ -19744,40 +19411,22 @@ } }, "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "dev": true }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - } - } - }, "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", "dev": true, "requires": {} }, "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true }, "adjust-sourcemap-loader": { @@ -19788,19 +19437,6 @@ "requires": { "loader-utils": "^2.0.0", "regex-parser": "^2.2.11" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - } } }, "agent-base": { @@ -19808,27 +19444,11 @@ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, + "peer": true, "requires": { "debug": "4" } }, - "airbnb-prop-types": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz", - "integrity": "sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==", - "dev": true, - "requires": { - "array.prototype.find": "^2.1.1", - "function.prototype.name": "^1.1.2", - "is-regex": "^1.1.0", - "object-is": "^1.1.2", - "object.assign": "^4.1.0", - "object.entries": "^1.1.2", - "prop-types": "^15.7.2", - "prop-types-exact": "^1.2.0", - "react-is": "^16.13.1" - } - }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -19851,9 +19471,9 @@ }, "dependencies": { "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -19905,9 +19525,9 @@ } }, "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -19921,10 +19541,14 @@ "sprintf-js": "~1.0.2" } }, - "array-filter": { + "array-buffer-byte-length": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=" + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } }, "array-flatten": { "version": "2.1.2", @@ -19932,51 +19556,64 @@ "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", "dev": true }, - "array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "dev": true + "array.prototype.filter": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.2.tgz", + "integrity": "sha512-us+UrmGOilqttSOgoWZTpOvHu68vZT2YCjc/H4vhu56vzZpaDFBhB+Se2UwqWzMKbDv7Myq5M5pcZLAtUvTQdQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + } }, - "array.prototype.find": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.2.0.tgz", - "integrity": "sha512-sn40qmUiLYAcRb/1HsIQjTTZ1kCy8II8VtZJpMn2Aoen9twULhbWXisfh3HimGqMlHGUul0/TfKCnXg42LuPpQ==", - "dev": true, + "array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.4", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", "es-shim-unscopables": "^1.0.0" } }, - "array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "arraybuffer.prototype.slice": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz", + "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==", "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" } }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "peer": true + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" }, "babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.6.2.tgz", + "integrity": "sha512-BYCzImLos6J3BH/+HvUCHG1dTf2MzmAB4jaVxHV+29RZLjR29XuYTmsf2sdDwkrb+FczkGo3kOhE7ga6sI0P4A==", "dev": true, "requires": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/transform": "^29.6.2", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", + "babel-preset-jest": "^29.5.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" @@ -20022,6 +19659,12 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -20034,37 +19677,15 @@ } }, "babel-loader": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz", - "integrity": "sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", "dev": true, "requires": { "find-cache-dir": "^3.3.1", "loader-utils": "^2.0.0", "make-dir": "^3.1.0", "schema-utils": "^2.6.5" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - } - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" } }, "babel-plugin-emotion": { @@ -20101,15 +19722,42 @@ "csstype": "^2.5.7" } }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, "@emotion/utils": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==" }, - "csstype": { - "version": "2.6.20", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", - "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" + "babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "requires": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + } + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" } } }, @@ -20126,69 +19774,61 @@ } }, "babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", + "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", "dev": true, "requires": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", + "@types/babel__core": "^7.1.14", "@types/babel__traverse": "^7.0.6" } }, "babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", "requires": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" } }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dev": true, "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } } }, "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" + "@babel/helper-define-polyfill-provider": "^0.3.3" } }, "babel-plugin-syntax-jsx": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + "integrity": "sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==" }, "babel-preset-current-node-syntax": { "version": "1.0.1", @@ -20210,19 +19850,19 @@ } }, "babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", + "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^27.5.1", + "babel-plugin-jest-hoist": "^29.5.0", "babel-preset-current-node-syntax": "^1.0.0" } }, "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "batch": { "version": "0.6.1", @@ -20242,9 +19882,9 @@ "dev": true }, "body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dev": true, "requires": { "bytes": "3.1.2", @@ -20255,7 +19895,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.10.3", + "qs": "6.11.0", "raw-body": "2.5.1", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -20276,33 +19916,18 @@ "ms": "2.0.0" } }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true - }, - "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } } } }, "bonjour-service": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.13.tgz", - "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", + "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", "dev": true, "requires": { "array-flatten": "^2.1.2", @@ -20314,7 +19939,7 @@ "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, "bootstrap": { "version": "3.4.1", @@ -20344,22 +19969,15 @@ "fill-range": "^7.0.1" } }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, "browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "version": "4.21.10", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", "requires": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.11" } }, "bs-logger": { @@ -20380,9 +19998,9 @@ } }, "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "bytes": { "version": "3.0.0", @@ -20419,6 +20037,11 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, + "caniuse-lite": { + "version": "1.0.30001519", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz", + "integrity": "sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==" + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -20435,34 +20058,35 @@ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" }, "chart.js": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.7.0.tgz", - "integrity": "sha512-31gVuqqKp3lDIFmzpKIrBeum4OpZsQjSIAqlOpgjosHDJZlULtvwLEZKtEhIAZc7JMPaHlYMys40Qy9Mf+1AAg==" + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.9.1.tgz", + "integrity": "sha512-Ro2JbLmvg83gXF5F4sniaQ+lTbSv18E+TIf2cOeiH1Iqd2PGFOtem+DUufMZsCJwFE7ywPOpfXFBwRTGq7dh6w==" }, "cheerio": { - "version": "1.0.0-rc.10", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.10.tgz", - "integrity": "sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==", + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", "requires": { - "cheerio-select": "^1.5.0", - "dom-serializer": "^1.3.2", - "domhandler": "^4.2.0", - "htmlparser2": "^6.1.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "tslib": "^2.2.0" + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" } }, "cheerio-select": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-1.5.0.tgz", - "integrity": "sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", "requires": { - "css-select": "^4.1.3", - "css-what": "^5.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0", - "domutils": "^2.7.0" + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" } }, "chokidar": { @@ -20493,26 +20117,15 @@ } }, "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true }, "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==" }, "circular-dependency-plugin": { "version": "5.2.2", @@ -20522,39 +20135,31 @@ "requires": {} }, "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==" }, "classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" }, "clean-css": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.0.tgz", - "integrity": "sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", + "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", "dev": true, "requires": { "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "requires": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, @@ -20570,9 +20175,9 @@ } }, "clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" }, "co": { "version": "4.6.0", @@ -20580,9 +20185,9 @@ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==" }, "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" }, "color-convert": { "version": "1.9.3", @@ -20595,12 +20200,12 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, "combined-stream": { @@ -20608,6 +20213,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, + "peer": true, "requires": { "delayed-stream": "~1.0.0" } @@ -20621,7 +20227,7 @@ "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, "compressible": { @@ -20662,13 +20268,19 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true } } }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "connect-history-api-fallback": { "version": "2.0.0", @@ -20683,29 +20295,18 @@ "dev": true, "requires": { "safe-buffer": "5.2.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } } }, "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true }, "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "cookie": { "version": "0.5.0", @@ -20720,23 +20321,23 @@ "dev": true }, "copy-webpack-plugin": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz", - "integrity": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", "dev": true, "requires": { - "fast-glob": "^3.2.7", + "fast-glob": "^3.2.11", "glob-parent": "^6.0.1", - "globby": "^12.0.2", + "globby": "^13.1.1", "normalize-path": "^3.0.0", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0" }, "dependencies": { "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -20761,15 +20362,15 @@ "dev": true }, "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" } } } @@ -20780,39 +20381,30 @@ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "core-js-compat": { - "version": "3.22.7", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.7.tgz", - "integrity": "sha512-uI9DAQKKiiE/mclIC5g4AjRpio27g+VMRhe6rQoz+q4Wm4L6A/fJhiLtBw+sfOpDG9wZ3O0pxIw7GbfOlBgjOA==", + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.0.tgz", + "integrity": "sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==", "dev": true, "requires": { - "browserslist": "^4.20.3", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } + "browserslist": "^4.21.9" } }, "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "requires": { "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", + "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", - "yaml": "^1.7.2" + "yaml": "^1.10.0" } }, "create-react-class": { @@ -20852,42 +20444,57 @@ } }, "css-loader": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", - "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.4.tgz", + "integrity": "sha512-0Y5uHtK5BswfaGJ+jrO+4pPg1msFBc0pwPIE1VqfpmVn6YbDfYfXMj8rfd7nt+4goAhJueO+H/I40VWJfcP1mQ==", "dev": true, "requires": { "icss-utils": "^5.1.0", - "postcss": "^8.4.7", + "postcss": "^8.4.21", "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-local-by-default": "^4.0.1", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" + "semver": "^7.3.8" }, "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, "css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "requires": { "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" } }, "css-vendor": { @@ -20900,9 +20507,9 @@ } }, "css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" }, "cssesc": { "version": "3.0.0", @@ -20910,49 +20517,40 @@ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", + "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", "dev": true, + "peer": true, "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } + "rrweb-cssom": "^0.6.0" } }, "csstype": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz", - "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g==" + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" }, "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", + "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", "dev": true, + "peer": true, "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^12.0.0" } }, "date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "requires": { + "@babel/runtime": "^7.21.0" + } }, "debug": { "version": "4.3.4", @@ -20963,15 +20561,18 @@ } }, "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true, + "peer": true }, "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", + "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "dev": true, + "requires": {} }, "deep-equal": { "version": "1.1.1", @@ -20986,16 +20587,10 @@ "regexp.prototype.flags": "^1.2.0" } }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==" }, "default-gateway": { "version": "6.0.3", @@ -21013,9 +20608,9 @@ "dev": true }, "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", "requires": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -21024,13 +20619,14 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "peer": true }, "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true }, "destroy": { @@ -21051,9 +20647,9 @@ "dev": true }, "diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", "dev": true }, "dir-glob": { @@ -21068,7 +20664,7 @@ "discontinuous-range": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", - "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=" + "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==" }, "dns-equal": { "version": "1.0.0", @@ -21077,9 +20673,9 @@ "dev": true }, "dns-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", + "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", "dev": true, "requires": { "@leichtgewicht/ip-codec": "^2.0.1" @@ -21103,13 +20699,13 @@ } }, "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" } }, "dom-walk": { @@ -21118,43 +20714,36 @@ "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" }, "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" }, "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", "dev": true, + "peer": true, "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true - } + "webidl-conversions": "^7.0.0" } }, "domhandler": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz", - "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "requires": { - "domelementtype": "^2.2.0" + "domelementtype": "^2.3.0" } }, "domutils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz", - "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" } }, "dot-case": { @@ -21167,6 +20756,12 @@ "tslib": "^2.0.3" } }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -21174,14 +20769,14 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.137", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", - "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==" + "version": "1.4.483", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.483.tgz", + "integrity": "sha512-YLwU0iF//9R3cCEfq0wgL+pf9vglE4kwAg4S5tkVVZljUDKv7Wcz67mTY4OOj+T7YUbTGuqlbqgdl/s+7Q8KTw==" }, "emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true }, "emoji-regex": { @@ -21201,9 +20796,9 @@ "dev": true }, "enhanced-resolve": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", - "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -21211,14 +20806,14 @@ } }, "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" }, "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz", + "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==", "dev": true }, "enzyme": { @@ -21250,45 +20845,13 @@ "string.prototype.trim": "^1.2.1" } }, - "enzyme-adapter-react-16": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.6.tgz", - "integrity": "sha512-yFlVJCXh8T+mcQo8M6my9sPgeGzj85HSHi6Apgf1Cvq/7EL/J9+1JoJmJsRxZgyTvPMAqOEpRSu/Ii/ZpyOk0g==", - "dev": true, - "requires": { - "enzyme-adapter-utils": "^1.14.0", - "enzyme-shallow-equal": "^1.0.4", - "has": "^1.0.3", - "object.assign": "^4.1.2", - "object.values": "^1.1.2", - "prop-types": "^15.7.2", - "react-is": "^16.13.1", - "react-test-renderer": "^16.0.0-0", - "semver": "^5.7.0" - } - }, - "enzyme-adapter-utils": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz", - "integrity": "sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg==", - "dev": true, - "requires": { - "airbnb-prop-types": "^2.16.0", - "function.prototype.name": "^1.1.3", - "has": "^1.0.3", - "object.assign": "^4.1.2", - "object.fromentries": "^2.0.3", - "prop-types": "^15.7.2", - "semver": "^5.7.1" - } - }, "enzyme-shallow-equal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz", - "integrity": "sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.5.tgz", + "integrity": "sha512-i6cwm7hN630JXenxxJFBKzgLC3hMTafFQXflvzHgPmDhOBhxUWDe8AeRv1qp2/uWJ2Y8z5yLWMzmAfkTOiOCZg==", "requires": { "has": "^1.0.3", - "object-is": "^1.1.2" + "object-is": "^1.1.5" } }, "error-ex": { @@ -21300,34 +20863,55 @@ } }, "es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz", + "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==", "requires": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.1", + "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", + "get-intrinsic": "^1.2.1", "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.0", + "safe-array-concat": "^1.0.0", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.10" + } + }, + "es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" }, "es-module-lexer": { "version": "0.9.3", @@ -21335,11 +20919,20 @@ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, "es-shim-unscopables": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, "requires": { "has": "^1.0.3" } @@ -21368,35 +20961,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } - } + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" }, "eslint-scope": { "version": "5.1.1", @@ -21423,9 +20988,9 @@ }, "dependencies": { "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } @@ -21479,29 +21044,31 @@ "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==" }, "expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.6.2.tgz", + "integrity": "sha512-iAErsLxJ8C+S02QbLAwgSGSezLQK+XXRDt8IuFXFpwCNw2ECmzZSmjKcCaFVp5VRMk+WAvz6h6jokzEzBFZEuA==", "dev": true, "requires": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" + "@jest/expect-utils": "^29.6.2", + "@types/node": "*", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.6.2", + "jest-message-util": "^29.6.2", + "jest-util": "^29.6.2" } }, "express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dev": true, "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.0", + "body-parser": "1.20.1", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.5.0", @@ -21520,7 +21087,7 @@ "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.10.3", + "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.18.0", @@ -21547,32 +21114,11 @@ "ms": "2.0.0" } }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true - }, - "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true } } }, @@ -21583,9 +21129,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -21614,18 +21160,18 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" }, "fastest-levenshtein": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.14.tgz", - "integrity": "sha512-tFfWHjnuUfKE186Tfgr+jtaFc0mZTApEgKDOeyN+FwOqRkO/zK/3h1AiRd8u8CY53owL3CUmGr/oI9p/RdyLTA==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true }, "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -21641,9 +21187,9 @@ } }, "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "requires": { "bser": "2.1.1" } @@ -21714,20 +21260,28 @@ } }, "follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "dev": true }, "font-awesome": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz", - "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM=" + "integrity": "sha512-U6kGnykA/6bFmg1M/oT9EkFeIYv7JlX3bozwQJWiiLz6L0w3F5vBVPxHlwyX/vtNq1ckcpRKOB9f2Qal/VtFpg==" + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } }, "fork-ts-checker-webpack-plugin": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.1.tgz", - "integrity": "sha512-uOfQdg/iQ8iokQ64qcbu8iZb114rOmaKLQFu7hU14/eJaKgsP91cQ7ts7v2iiDld6TzDe84Meksha8/MkWiCyw==", + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.14.tgz", + "integrity": "sha512-Tg2feh/n8k486KX0EbXVUfJj3j0xnnbKYTJw0fnIb2QdV0+lblOYZSal5ed9hARoWVwKeOC7sYE2EakSRLo5ZA==", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", @@ -21738,32 +21292,12 @@ "fs-extra": "^10.0.0", "memfs": "^3.4.1", "minimatch": "^3.0.4", - "schema-utils": "4.0.0", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", "semver": "^7.3.5", "tapable": "^2.2.1" }, "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -21798,47 +21332,36 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } }, "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -21852,13 +21375,40 @@ "requires": { "has-flag": "^4.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "peer": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, "form-data-to-object": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/form-data-to-object/-/form-data-to-object-0.2.0.tgz", - "integrity": "sha1-96jmjd2RChEApl4lrGpIQUP/gWg=" + "integrity": "sha512-F10KT6YgIq4CxmiMCZONnYN4PC5ommk8rLb4WmeahqDDszerxVwBrjqjXiedqUfNClMxDHj04KWGRK30aDnIpw==" + }, + "formsy-react": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/formsy-react/-/formsy-react-1.1.6.tgz", + "integrity": "sha512-9IsV+XKQEcwvm7nZtyUTZBcl9SHgX2WKskVfvAKzQyJwMAqJ4E3Hf+6PM1E2dQo/MGYMM3pfECAbkDKwlKkp9g==", + "requires": { + "form-data-to-object": "^0.2.0", + "prop-types": "^15.5.10" + } }, "forwarded": { "version": "0.2.0", @@ -21884,15 +21434,15 @@ } }, "fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz", + "integrity": "sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==", "dev": true }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "fsevents": { "version": "2.3.2", @@ -21917,9 +21467,9 @@ } }, "functions-have-names": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz", - "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==" + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" }, "gensync": { "version": "1.0.0-beta.2", @@ -21932,13 +21482,14 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" } }, "get-package-type": { @@ -21961,14 +21512,14 @@ } }, "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } @@ -22002,32 +21553,48 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "requires": { + "define-properties": "^1.1.3" + } + }, "globby": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", - "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", "dev": true, "requires": { - "array-union": "^3.0.1", "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", "merge2": "^1.4.1", "slash": "^4.0.0" - }, - "dependencies": { - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - } + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" } }, "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "requires": { + "duplexer": "^0.1.2" + } }, "handle-thing": { "version": "2.0.1", @@ -22051,7 +21618,7 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, "has-property-descriptors": { "version": "1.0.0", @@ -22061,6 +21628,11 @@ "get-intrinsic": "^1.1.1" } }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -22098,6 +21670,13 @@ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", "requires": { "react-is": "^16.7.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } } }, "hpack.js": { @@ -22112,10 +21691,16 @@ "wbuf": "^1.1.0" }, "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -22127,6 +21712,12 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -22139,27 +21730,28 @@ } }, "html-element-map": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.3.0.tgz", - "integrity": "sha512-AqCt/m9YaiMwaaAyOPdq4Ga0cM+jdDWWGueUMkdROZcTeClaGpN0AQeyGchZhTegQoABmc6+IqH7oCR/8vhQYg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.3.1.tgz", + "integrity": "sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==", "requires": { - "array-filter": "^1.0.0", + "array.prototype.filter": "^1.0.0", "call-bind": "^1.0.2" } }, "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", "dev": true, + "peer": true, "requires": { - "whatwg-encoding": "^1.0.5" + "whatwg-encoding": "^2.0.0" } }, "html-entities": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", "dev": true }, "html-escaper": { @@ -22183,9 +21775,9 @@ } }, "html-webpack-plugin": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", - "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz", + "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==", "dev": true, "requires": { "@types/html-minifier-terser": "^6.0.0", @@ -22196,14 +21788,14 @@ } }, "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" } }, "http-deceiver": { @@ -22223,14 +21815,6 @@ "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" - }, - "dependencies": { - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - } } }, "http-parser-js": { @@ -22251,12 +21835,13 @@ } }, "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, + "peer": true, "requires": { - "@tootallnate/once": "1", + "@tootallnate/once": "2", "agent-base": "6", "debug": "4" } @@ -22272,21 +21857,14 @@ "is-glob": "^4.0.1", "is-plain-obj": "^3.0.0", "micromatch": "^4.0.2" - }, - "dependencies": { - "is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true - } } }, "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, + "peer": true, "requires": { "agent-base": "6", "debug": "4" @@ -22319,20 +21897,20 @@ "requires": {} }, "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true }, "immer": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.6.tgz", - "integrity": "sha512-G95ivKpy+EvVAnAab4fVa4YGYn24J1SpEktnJX7JJ45Bd7xqME/SCplFzYFmTbrkwZbQ4xJK1xMTUYBkN6pWsQ==" + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==" }, "immutable": { "version": "3.8.2", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=" + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==" }, "import-fresh": { "version": "3.3.0", @@ -22355,12 +21933,12 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "requires": { "once": "^1.3.0", "wrappy": "1" @@ -22372,19 +21950,19 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", "requires": { - "get-intrinsic": "^1.1.0", + "get-intrinsic": "^1.2.0", "has": "^1.0.3", "side-channel": "^1.0.4" } }, "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true }, "invariant": { @@ -22396,9 +21974,9 @@ } }, "ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", "dev": true }, "is-arguments": { @@ -22410,10 +21988,20 @@ "has-tostringtag": "^1.0.0" } }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "is-bigint": { "version": "1.0.4", @@ -22433,30 +22021,34 @@ } }, "is-boolean-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", - "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "requires": { - "call-bind": "^1.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" }, "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", "requires": { "has": "^1.0.3" } }, "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-docker": { "version": "2.2.1", @@ -22467,7 +22059,7 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true }, "is-fullwidth-code-point": { @@ -22492,7 +22084,7 @@ "is-in-browser": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", - "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" + "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==" }, "is-negative-zero": { "version": "2.0.2", @@ -22505,9 +22097,18 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-number-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", - "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true }, "is-plain-object": { "version": "2.0.4", @@ -22522,7 +22123,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true + "dev": true, + "peer": true }, "is-regex": { "version": "1.1.4", @@ -22557,21 +22159,23 @@ "is-subset": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", - "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=" + "integrity": "sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==" }, "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "requires": { - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "requires": { + "which-typed-array": "^1.1.11" + } }, "is-weakref": { "version": "1.0.2", @@ -22591,15 +22195,14 @@ } }, "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "isobject": { "version": "3.0.1", @@ -22613,31 +22216,24 @@ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" }, "istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "requires": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-coverage": "^3.2.0", "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } } }, "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "requires": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, "dependencies": { @@ -22646,6 +22242,30 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "requires": { + "semver": "^7.5.3" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -22653,6 +22273,11 @@ "requires": { "has-flag": "^4.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, @@ -22664,71 +22289,65 @@ "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } } }, "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "requires": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" } }, "jest": { - "version": "27.4.7", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.7.tgz", - "integrity": "sha512-8heYvsx7nV/m8m24Vk26Y87g73Ba6ueUd0MWed/NXMhSZIm62U/llVbS0PJe1SHunbyXjJ/BqG1z9bFjGUIvTg==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.6.2.tgz", + "integrity": "sha512-8eQg2mqFbaP7CwfsTpCxQ+sHzw1WuNWL5UUvjnWP4hx2riGz9fPSzYOaU5q8/GqWn1TfgZIVTqYJygbGbWAANg==", "dev": true, "requires": { - "@jest/core": "^27.4.7", + "@jest/core": "^29.6.2", + "@jest/types": "^29.6.1", "import-local": "^3.0.2", - "jest-cli": "^27.4.7" + "jest-cli": "^29.6.2" } }, "jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", + "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", "dev": true, "requires": { - "@jest/types": "^27.5.1", "execa": "^5.0.0", - "throat": "^6.0.1" + "p-limit": "^3.1.0" } }, "jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.6.2.tgz", + "integrity": "sha512-G9mN+KOYIUe2sB9kpJkO9Bk18J4dTDArNFPwoZ7WKHKel55eKIS/u2bLthxgojwlf9NLCVQfgzM/WsOVvoC6Fw==", "dev": true, "requires": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/environment": "^29.6.2", + "@jest/expect": "^29.6.2", + "@jest/test-result": "^29.6.2", + "@jest/types": "^29.6.1", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", + "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", + "jest-each": "^29.6.2", + "jest-matcher-utils": "^29.6.2", + "jest-message-util": "^29.6.2", + "jest-runtime": "^29.6.2", + "jest-snapshot": "^29.6.2", + "jest-util": "^29.6.2", + "p-limit": "^3.1.0", + "pretty-format": "^29.6.2", + "pure-rand": "^6.0.0", "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" + "stack-utils": "^2.0.3" }, "dependencies": { "ansi-styles": { @@ -22771,6 +22390,12 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -22783,23 +22408,23 @@ } }, "jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.6.2.tgz", + "integrity": "sha512-TT6O247v6dCEX2UGHGyflMpxhnrL0DNqP2fRTKYm3nJJpCTfXX3GCMQPGFjXDoj0i5/Blp3jriKXFgdfmbYB6Q==", "dev": true, "requires": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/core": "^29.6.2", + "@jest/test-result": "^29.6.2", + "@jest/types": "^29.6.1", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", + "jest-config": "^29.6.2", + "jest-util": "^29.6.2", + "jest-validate": "^29.6.2", "prompts": "^2.0.1", - "yargs": "^16.2.0" + "yargs": "^17.3.1" }, "dependencies": { "ansi-styles": { @@ -22850,52 +22475,35 @@ "requires": { "has-flag": "^4.0.0" } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } } } }, "jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.6.2.tgz", + "integrity": "sha512-VxwFOC8gkiJbuodG9CPtMRjBUNZEHxwfQXmIudSTzFWxaci3Qub1ddTRbFNQlD/zUeaifLndh/eDccFX4wCMQw==", "dev": true, "requires": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.6.2", + "@jest/types": "^29.6.1", + "babel-jest": "^29.6.2", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", - "glob": "^7.1.1", + "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", + "jest-circus": "^29.6.2", + "jest-environment-node": "^29.6.2", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.6.2", + "jest-runner": "^29.6.2", + "jest-util": "^29.6.2", + "jest-validate": "^29.6.2", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", + "pretty-format": "^29.6.2", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -22940,67 +22548,10 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, "supports-color": { @@ -23014,26 +22565,16 @@ } } }, - "jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "jest-diff": { + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.6.2.tgz", + "integrity": "sha512-t+ST7CB9GX5F2xKwhwCf0TAR17uNDiaPTZnVymP9lw0lssa9vG+AFyDZoeIHStU3WowFFwT+ky+er0WVl2yGhA==", "dev": true, "requires": { - "@jest/types": "^27.5.1", "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.6.2" }, "dependencies": { "ansi-styles": { @@ -23087,85 +22628,26 @@ } } }, - "jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - } - }, - "jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "devOptional": true - }, - "jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "devOptional": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "jest-docblock": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", + "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", "dev": true, "requires": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.6.2.tgz", + "integrity": "sha512-MsrsqA0Ia99cIpABBc3izS1ZYoYfhIy0NNWqPSE0YXbQjwchyt6B1HD2khzyPe1WiJA7hbxXy77ZoUQxn8UlSw==", + "dev": true, + "requires": { + "@jest/types": "^29.6.1", "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" + "jest-get-type": "^29.4.3", + "jest-util": "^29.6.2", + "pretty-format": "^29.6.2" }, "dependencies": { "ansi-styles": { @@ -23219,26 +22701,66 @@ } } }, + "jest-environment-node": { + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.6.2.tgz", + "integrity": "sha512-YGdFeZ3T9a+/612c5mTQIllvWkddPbYcN2v95ZH24oWMbGA4GGS2XdIF92QMhUhvrjjuQWYgUGW2zawOyH63MQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.6.2", + "@jest/fake-timers": "^29.6.2", + "@jest/types": "^29.6.1", + "@types/node": "*", + "jest-mock": "^29.6.2", + "jest-util": "^29.6.2" + } + }, + "jest-get-type": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "devOptional": true + }, + "jest-haste-map": { + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.6.2.tgz", + "integrity": "sha512-+51XleTDAAysvU8rT6AnS1ZJ+WHVNqhj1k6nTvN2PYP+HjU3kqlaKQ1Lnw3NYW3bm2r8vq82X0Z1nDDHZMzHVA==", + "devOptional": true, + "requires": { + "@jest/types": "^29.6.1", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.6.2", + "jest-worker": "^29.6.2", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, "jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.6.2.tgz", + "integrity": "sha512-aNqYhfp5uYEO3tdWMb2bfWv6f0b4I0LOxVRpnRLAeque2uqOVVMLh6khnTcE2qJ5wAKop0HcreM1btoysD6bPQ==", "dev": true, "requires": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "jest-get-type": "^29.4.3", + "pretty-format": "^29.6.2" } }, "jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.6.2.tgz", + "integrity": "sha512-4LiAk3hSSobtomeIAzFTe+N8kL6z0JtF3n6I4fg29iIW7tt99R7ZcIFW34QkX+DuVrf+CUe6wuVOpm7ZKFJzZQ==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "jest-diff": "^29.6.2", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.6.2" }, "dependencies": { "ansi-styles": { @@ -23293,18 +22815,18 @@ } }, "jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.6.2.tgz", + "integrity": "sha512-vnIGYEjoPSuRqV8W9t+Wow95SDp6KPX2Uf7EoeG9G99J2OVh7OSwpS4B6J0NfpEIpfkBNHlBZpA2rblEuEFhZQ==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", + "@jest/types": "^29.6.1", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", + "pretty-format": "^29.6.2", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -23349,6 +22871,12 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -23361,42 +22889,42 @@ } }, "jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.6.2.tgz", + "integrity": "sha512-hoSv3lb3byzdKfwqCuT6uTscan471GUECqgNYykg6ob0yiAw3zYc7OrPnI9Qv8Wwoa4lC7AZ9hyS4AiIx5U2zg==", "dev": true, "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*" + "@jest/types": "^29.6.1", + "@types/node": "*", + "jest-util": "^29.6.2" } }, "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "requires": {} }, "jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", + "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", "devOptional": true }, "jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.6.2.tgz", + "integrity": "sha512-G/iQUvZWI5e3SMFssc4ug4dH0aZiZpsDq9o1PtXTV1210Ztyb2+w+ZgQkB3iOiC5SmAEzJBOHWz6Hvrd+QnNPw==", "devOptional": true, "requires": { - "@jest/types": "^27.5.1", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", + "jest-haste-map": "^29.6.2", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", + "jest-util": "^29.6.2", + "jest-validate": "^29.6.2", "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", + "resolve.exports": "^2.0.0", "slash": "^3.0.0" }, "dependencies": { @@ -23440,6 +22968,12 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "devOptional": true }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "devOptional": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -23452,43 +22986,42 @@ } }, "jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.2.tgz", + "integrity": "sha512-LGqjDWxg2fuQQm7ypDxduLu/m4+4Lb4gczc13v51VMZbVP5tSBILqVx8qfWcsdP8f0G7aIqByIALDB0R93yL+w==", "dev": true, "requires": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" + "jest-regex-util": "^29.4.3", + "jest-snapshot": "^29.6.2" } }, "jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.6.2.tgz", + "integrity": "sha512-wXOT/a0EspYgfMiYHxwGLPCZfC0c38MivAlb2lMEAlwHINKemrttu1uSbcGbfDV31sFaPWnWJPmb2qXM8pqZ4w==", "dev": true, "requires": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/console": "^29.6.2", + "@jest/environment": "^29.6.2", + "@jest/test-result": "^29.6.2", + "@jest/transform": "^29.6.2", + "@jest/types": "^29.6.1", "@types/node": "*", "chalk": "^4.0.0", - "emittery": "^0.8.1", + "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" + "jest-docblock": "^29.4.3", + "jest-environment-node": "^29.6.2", + "jest-haste-map": "^29.6.2", + "jest-leak-detector": "^29.6.2", + "jest-message-util": "^29.6.2", + "jest-resolve": "^29.6.2", + "jest-runtime": "^29.6.2", + "jest-util": "^29.6.2", + "jest-watcher": "^29.6.2", + "jest-worker": "^29.6.2", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "dependencies": { "ansi-styles": { @@ -23543,31 +23076,31 @@ } }, "jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.6.2.tgz", + "integrity": "sha512-2X9dqK768KufGJyIeLmIzToDmsN0m7Iek8QNxRSI/2+iPFYHF0jTwlO3ftn7gdKd98G/VQw9XJCk77rbTGZnJg==", + "dev": true, + "requires": { + "@jest/environment": "^29.6.2", + "@jest/fake-timers": "^29.6.2", + "@jest/globals": "^29.6.2", + "@jest/source-map": "^29.6.0", + "@jest/test-result": "^29.6.2", + "@jest/transform": "^29.6.2", + "@jest/types": "^29.6.1", + "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", + "jest-haste-map": "^29.6.2", + "jest-message-util": "^29.6.2", + "jest-mock": "^29.6.2", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.6.2", + "jest-snapshot": "^29.6.2", + "jest-util": "^29.6.2", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -23612,6 +23145,12 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -23623,44 +23162,32 @@ } } }, - "jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "devOptional": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - } - }, "jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.6.2.tgz", + "integrity": "sha512-1OdjqvqmRdGNvWXr/YZHuyhh5DeaLp1p/F8Tht/MrMw4Kr1Uu/j4lRG+iKl1DAqUJDWxtQBMk41Lnf/JETYBRA==", "dev": true, "requires": { - "@babel/core": "^7.7.2", + "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.6.2", + "@jest/transform": "^29.6.2", + "@jest/types": "^29.6.1", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^27.5.1", + "expect": "^29.6.2", "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", + "jest-diff": "^29.6.2", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.6.2", + "jest-message-util": "^29.6.2", + "jest-util": "^29.6.2", "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" + "pretty-format": "^29.6.2", + "semver": "^7.5.3" }, "dependencies": { "ansi-styles": { @@ -23703,10 +23230,19 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -23720,16 +23256,22 @@ "requires": { "has-flag": "^4.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.2.tgz", + "integrity": "sha512-3eX1qb6L88lJNCFlEADKOkjpXJQyZRiavX1INZ4tRnrBVr2COd3RgcTLyUiEXMNBlDU/cgYq6taUS0fExrWW4w==", "devOptional": true, "requires": { - "@jest/types": "^27.5.1", + "@jest/types": "^29.6.1", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -23789,17 +23331,17 @@ } }, "jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.6.2.tgz", + "integrity": "sha512-vGz0yMN5fUFRRbpJDPwxMpgSXW1LDKROHfBopAvDcmD6s+B/s8WJrwi+4bfH4SdInBA5C3P3BI19dBtKzx1Arg==", "devOptional": true, "requires": { - "@jest/types": "^27.5.1", + "@jest/types": "^29.6.1", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", + "jest-get-type": "^29.4.3", "leven": "^3.1.0", - "pretty-format": "^27.5.1" + "pretty-format": "^29.6.2" }, "dependencies": { "ansi-styles": { @@ -23860,17 +23402,18 @@ } }, "jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.6.2.tgz", + "integrity": "sha512-GZitlqkMkhkefjfN/p3SJjrDaxPflqxEAv3/ik10OirZqJGYH5rPiIsgVcfof0Tdqg3shQGdEIxDBx+B4tuLzA==", "dev": true, "requires": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", + "@jest/test-result": "^29.6.2", + "@jest/types": "^29.6.1", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "jest-util": "^27.5.1", + "emittery": "^0.13.1", + "jest-util": "^29.6.2", "string-length": "^4.0.1" }, "dependencies": { @@ -23926,12 +23469,13 @@ } }, "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.2.tgz", + "integrity": "sha512-l3ccBOabTdkng8I/ORCkADz4eSMKejTYv1vB/Z83UiubqhC1oQ5Li6dWCyqOIvSifGjUBxuvxvlm6KGK2DtuAQ==", "devOptional": true, "requires": { "@types/node": "*", + "jest-util": "^29.6.2", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -23968,70 +23512,54 @@ } }, "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz", + "integrity": "sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==", + "dev": true, + "peer": true, + "requires": { + "abab": "^2.0.6", + "cssstyle": "^3.0.0", + "data-urls": "^4.0.0", + "decimal.js": "^10.4.3", + "domexception": "^4.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", + "nwsapi": "^2.2.4", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", + "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^12.0.1", + "ws": "^8.13.0", + "xml-name-validator": "^4.0.0" + }, + "dependencies": { + "ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true + "peer": true, + "requires": {} } } }, + "jsdom-global": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsdom-global/-/jsdom-global-3.0.2.tgz", + "integrity": "sha512-t1KMcBkz/pT5JrvcJbpUR2u/w1kO9jXctaaGJ0vZDzwFnIvGWw9IDSRciT83kIs8Bnw4qpOl8bQK08V01YgMPg==", + "dev": true, + "requires": {} + }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -24064,81 +23592,88 @@ } }, "jss": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss/-/jss-10.9.0.tgz", - "integrity": "sha512-YpzpreB6kUunQBbrlArlsMpXYyndt9JATbt95tajx0t4MTJJcCJdd4hdNpHmOIDiUJrF/oX5wtVFrS3uofWfGw==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz", + "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==", "requires": { "@babel/runtime": "^7.3.1", "csstype": "^3.0.2", "is-in-browser": "^1.1.3", "tiny-warning": "^1.0.2" + }, + "dependencies": { + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + } } }, "jss-plugin-camel-case": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.9.0.tgz", - "integrity": "sha512-UH6uPpnDk413/r/2Olmw4+y54yEF2lRIV8XIZyuYpgPYTITLlPOsq6XB9qeqv+75SQSg3KLocq5jUBXW8qWWww==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz", + "integrity": "sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==", "requires": { "@babel/runtime": "^7.3.1", "hyphenate-style-name": "^1.0.3", - "jss": "10.9.0" + "jss": "10.10.0" } }, "jss-plugin-default-unit": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.9.0.tgz", - "integrity": "sha512-7Ju4Q9wJ/MZPsxfu4T84mzdn7pLHWeqoGd/D8O3eDNNJ93Xc8PxnLmV8s8ZPNRYkLdxZqKtm1nPQ0BM4JRlq2w==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.10.0.tgz", + "integrity": "sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0" + "jss": "10.10.0" } }, "jss-plugin-global": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.9.0.tgz", - "integrity": "sha512-4G8PHNJ0x6nwAFsEzcuVDiBlyMsj2y3VjmFAx/uHk/R/gzJV+yRHICjT4MKGGu1cJq2hfowFWCyrr/Gg37FbgQ==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.10.0.tgz", + "integrity": "sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0" + "jss": "10.10.0" } }, "jss-plugin-nested": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.9.0.tgz", - "integrity": "sha512-2UJnDrfCZpMYcpPYR16oZB7VAC6b/1QLsRiAutOt7wJaaqwCBvNsosLEu/fUyKNQNGdvg2PPJFDO5AX7dwxtoA==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.10.0.tgz", + "integrity": "sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0", + "jss": "10.10.0", "tiny-warning": "^1.0.2" } }, "jss-plugin-props-sort": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.9.0.tgz", - "integrity": "sha512-7A76HI8bzwqrsMOJTWKx/uD5v+U8piLnp5bvru7g/3ZEQOu1+PjHvv7bFdNO3DwNPC9oM0a//KwIJsIcDCjDzw==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.10.0.tgz", + "integrity": "sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0" + "jss": "10.10.0" } }, "jss-plugin-rule-value-function": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.9.0.tgz", - "integrity": "sha512-IHJv6YrEf8pRzkY207cPmdbBstBaE+z8pazhPShfz0tZSDtRdQua5jjg6NMz3IbTasVx9FdnmptxPqSWL5tyJg==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.10.0.tgz", + "integrity": "sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0", + "jss": "10.10.0", "tiny-warning": "^1.0.2" } }, "jss-plugin-vendor-prefixer": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.9.0.tgz", - "integrity": "sha512-MbvsaXP7iiVdYVSEoi+blrW+AYnTDvHTW6I6zqi7JcwXdc6I9Kbm234nEblayhF38EftoenbM+5218pidmC5gA==", + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.10.0.tgz", + "integrity": "sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==", "requires": { "@babel/runtime": "^7.3.1", "css-vendor": "^2.0.8", - "jss": "10.9.0" + "jss": "10.10.0" } }, "keycharm": { @@ -24164,9 +23699,9 @@ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" }, "klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", "dev": true }, "leven": { @@ -24174,45 +23709,25 @@ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true }, "loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "requires": { - "minimist": "^1.2.0" - } - } + "json5": "^2.1.2" } }, "locate-path": { @@ -24236,28 +23751,28 @@ "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "lodash.escape": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", - "integrity": "sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg=" + "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==" }, "lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=" + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==" }, "lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, "loose-envify": { @@ -24278,26 +23793,20 @@ } }, "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "^4.0.0" + "yallist": "^3.0.2" } }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, "requires": { "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } } }, "make-error": { @@ -24326,12 +23835,12 @@ "dev": true }, "memfs": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.3.tgz", - "integrity": "sha512-eivjfi7Ahr6eQTn44nvTnR60e4a1Fs1Via2kCR5lHo/kyNoiMWaXCNJ/GpSd0ilXas2JSOl9B5FTIhflXu0hlg==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", "dev": true, "requires": { - "fs-monkey": "1.0.3" + "fs-monkey": "^1.0.4" } }, "memoize-one": { @@ -24363,12 +23872,12 @@ "dev": true }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, "mime": { @@ -24378,18 +23887,18 @@ "dev": true }, "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true }, "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "requires": { - "mime-db": "1.51.0" + "mime-db": "1.52.0" } }, "mimic-fn": { @@ -24400,24 +23909,24 @@ "min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", "requires": { "dom-walk": "^0.1.0" } }, "mini-css-extract-plugin": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz", - "integrity": "sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==", + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", + "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", "dev": true, "requires": { "schema-utils": "^4.0.0" }, "dependencies": { "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -24442,15 +23951,15 @@ "dev": true }, "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" } } } @@ -24469,28 +23978,29 @@ "brace-expansion": "^1.1.7" } }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, "moment": { "version": "2.29.4", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" }, "moment-timezone": { - "version": "0.5.37", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.37.tgz", - "integrity": "sha512-uEDzDNFhfaywRl+vwXxffjjq1q0Vzr+fcQpQ1bU0kbzorfS7zVtZnCnGc8mhWmF39d4g4YriF6kwA75mJKE/Zg==", + "version": "0.5.43", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz", + "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==", "requires": { - "moment": ">= 2.9.0" + "moment": "^2.29.4" } }, "moo": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", - "integrity": "sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==" + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==" + }, + "mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true }, "ms": { "version": "2.1.2", @@ -24508,9 +24018,9 @@ } }, "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "dev": true }, "natural-compare": { @@ -24558,6 +24068,12 @@ "tslib": "^2.0.3" } }, + "node-abort-controller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "dev": true + }, "node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", @@ -24570,9 +24086,9 @@ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" }, "node-releases": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==" + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" }, "normalize-path": { "version": "3.0.0", @@ -24580,9 +24096,9 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, "normalizr": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/normalizr/-/normalizr-3.6.1.tgz", - "integrity": "sha512-8iEmqXmPtll8PwbEFrbPoDxVw7MKnNvt3PZzR2Xvq9nggEEOgBlNICPXYzyZ4w4AkHUzCU998mdatER3n2VaMA==" + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/normalizr/-/normalizr-3.6.2.tgz", + "integrity": "sha512-30qCybsBaCBciotorvuOZTCGEg2AXrJfADMT2Kk/lvpIAcipHdK0zc33nNtwKzyfQAqIJXAcqET6YgflYUgsoQ==" }, "npm-run-path": { "version": "4.0.1", @@ -24593,9 +24109,9 @@ } }, "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "requires": { "boolbase": "^1.0.0" } @@ -24603,23 +24119,24 @@ "numeral": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", - "integrity": "sha1-StCAk21EPCVhrtnyGX7//iX05QY=" + "integrity": "sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==" }, "nwsapi": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.1.tgz", - "integrity": "sha512-JYOWTeFoS0Z93587vRJgASD5Ut11fYl5NyihP3KrYBvMe1FRRs6RN7m20SA/16GM4P6hTnZjT+UmDOt38UeXNg==", - "dev": true + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", + "dev": true, + "peer": true }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" }, "object-is": { "version": "1.1.5", @@ -24636,47 +24153,45 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, "object.entries": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz", - "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has": "^1.0.3" + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "object.values": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", - "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "obuf": { @@ -24703,7 +24218,7 @@ "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "requires": { "wrappy": "1" } @@ -24717,9 +24232,9 @@ } }, "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, "requires": { "define-lazy-prop": "^2.0.0", @@ -24727,26 +24242,18 @@ "is-wsl": "^2.2.0" } }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "requires": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" } }, "p-locate": { @@ -24755,6 +24262,16 @@ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "requires": { "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + } } }, "p-retry": { @@ -24802,16 +24319,20 @@ } }, "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "requires": { + "entities": "^4.4.0" + } }, "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", "requires": { - "parse5": "^6.0.1" + "domhandler": "^5.0.2", + "parse5": "^7.0.0" } }, "parseurl": { @@ -24838,7 +24359,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, "path-key": { "version": "3.1.1", @@ -24864,7 +24385,7 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "picocolors": { "version": "1.0.0", @@ -24877,9 +24398,9 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pirates": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz", - "integrity": "sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==" + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==" }, "pkg-dir": { "version": "4.2.0", @@ -24895,12 +24416,12 @@ "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==" }, "postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "version": "8.4.27", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", + "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", "dev": true, "requires": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } @@ -24913,9 +24434,9 @@ "requires": {} }, "postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", "dev": true, "requires": { "icss-utils": "^5.0.0", @@ -24942,9 +24463,9 @@ } }, "postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -24957,12 +24478,6 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true - }, "pretty-error": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", @@ -24974,14 +24489,14 @@ } }, "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "version": "29.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.6.2.tgz", + "integrity": "sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==", "devOptional": true, "requires": { - "ansi-regex": "^5.0.1", + "@jest/schemas": "^29.6.0", "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" + "react-is": "^18.0.0" }, "dependencies": { "ansi-styles": { @@ -24991,9 +24506,9 @@ "devOptional": true }, "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "devOptional": true } } @@ -25001,7 +24516,7 @@ "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" }, "process-nextick-args": { "version": "2.0.1", @@ -25019,24 +24534,20 @@ } }, "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "prop-types-exact": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.0.tgz", - "integrity": "sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==", - "dev": true, - "requires": { - "has": "^1.0.3", - "object.assign": "^4.1.0", - "reflect.ownkeys": "^0.2.0" + "react-is": "^16.13.1" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } } }, "prop-types-extra": { @@ -25048,6 +24559,11 @@ "warning": "^4.0.0" }, "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "warning": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", @@ -25077,26 +24593,49 @@ } }, "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true, + "peer": true }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "pure-rand": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", + "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", "dev": true }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, "query-string": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==", "requires": { "object-assign": "^4.1.0", "strict-uri-encode": "^1.0.0" } }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true, + "peer": true + }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -25119,7 +24658,7 @@ "railroad-diagrams": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", - "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=" + "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==" }, "randexp": { "version": "0.4.6", @@ -25175,9 +24714,9 @@ } }, "react-beautiful-dnd": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.0.tgz", - "integrity": "sha512-aGvblPZTJowOWUNiwd6tNfEpgkX5OxmpqxHKNW/4VmvZTNTbeiq7bA3bn5T+QSF2uibXB0D1DmJsb1aC/+3cUA==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.1.tgz", + "integrity": "sha512-0Lvs4tq2VcrEjEgDXHjT98r+63drkKEgqyxdA7qD3mvKwga6a5SscbdLPO2IExotU1jW8L0Ksdl0Cj2AF67nPQ==", "requires": { "@babel/runtime": "^7.9.2", "css-box-model": "^1.2.0", @@ -25205,6 +24744,19 @@ "react-transition-group": "^2.0.0", "uncontrollable": "^7.0.2", "warning": "^3.0.0" + }, + "dependencies": { + "react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "requires": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + } + } } }, "react-bootstrap-toggle": { @@ -25261,19 +24813,19 @@ } }, "react-fast-compare": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" }, "react-hot-loader": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.13.0.tgz", - "integrity": "sha512-JrLlvUPqh6wIkrK2hZDfOyq/Uh/WeVEr8nc7hkn2/3Ul0sx1Kr5y4kOGNacNRoj7RhwLNcQ3Udf1KJXrqc0ZtA==", + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.13.1.tgz", + "integrity": "sha512-ZlqCfVRqDJmMXTulUGic4lN7Ic1SXgHAFw7y/Jb7t25GBgTR0fYAJ8uY4mrpxjRyWGWmqw77qJQGnYbzCvBU7g==", "requires": { "fast-levenshtein": "^2.0.6", "global": "^4.3.0", "hoist-non-react-statics": "^3.3.0", - "loader-utils": "^1.1.0", + "loader-utils": "^2.0.3", "prop-types": "^15.6.1", "react-lifecycles-compat": "^3.0.4", "shallowequal": "^1.1.0", @@ -25281,9 +24833,9 @@ }, "dependencies": { "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" } } }, @@ -25296,9 +24848,9 @@ } }, "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, "react-lifecycles-compat": { "version": "3.0.4", @@ -25306,9 +24858,9 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "react-onclickoutside": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.12.1.tgz", - "integrity": "sha512-a5Q7CkWznBRUWPmocCvE8b6lEYw1s6+opp/60dCunhO+G6E4tDTO2Sd2jKE+leEnnrLAE2Wj5DlDHNqj5wPv1Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.13.0.tgz", + "integrity": "sha512-ty8So6tcUpIb+ZE+1HAhbLROvAIJYyJe/1vRrrcmW+jLsaM+/powDRqxzo6hSh9CuRZGSL1Q8mvcF5WRD93a0A==", "requires": {} }, "react-overlays": { @@ -25322,12 +24874,25 @@ "prop-types-extra": "^1.0.1", "react-transition-group": "^2.2.1", "warning": "^3.0.0" + }, + "dependencies": { + "react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "requires": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + } + } } }, "react-popper": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.2.5.tgz", - "integrity": "sha512-kxGkS80eQGtLl18+uig1UIf9MKixFSyPxglsgLBxlYnyDf65BiY9B3nZSc6C9XUNDgStROB0fMQlTEz1KxGddw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", + "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", "requires": { "react-fast-compare": "^3.0.1", "warning": "^4.0.2" @@ -25346,15 +24911,15 @@ "react-prop-types": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.4.0.tgz", - "integrity": "sha1-+ZsL+0AGkpya8gUefBQUpcdbk9A=", + "integrity": "sha512-IyjsJhDX9JkoOV9wlmLaS7z+oxYoIWhfzDcFy7inwoAKTu+VcVNrVpPmLeioJ94y6GeDRsnwarG1py5qofFQMg==", "requires": { "warning": "^3.0.0" } }, "react-redux": { - "version": "7.2.8", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.8.tgz", - "integrity": "sha512-6+uDjhs3PSIclqoCk0kd6iX74gzrGc3W5zcAjbrFgEdIjRSQObdIwfx80unTkVUYvbQ95Y8Av3OvFHq1w5EOUw==", + "version": "7.2.9", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", + "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", "requires": { "@babel/runtime": "^7.15.4", "@types/react-redux": "^7.1.20", @@ -25362,13 +24927,6 @@ "loose-envify": "^1.4.0", "prop-types": "^15.7.2", "react-is": "^17.0.2" - }, - "dependencies": { - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - } } }, "react-select": { @@ -25383,28 +24941,16 @@ "prop-types": "^15.6.0", "react-input-autosize": "^3.0.0", "react-transition-group": "^4.3.0" - }, - "dependencies": { - "dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "react-transition-group": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", - "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - } - } + } + }, + "react-shallow-renderer": { + "version": "16.15.0", + "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", + "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" } }, "react-sticky": { @@ -25417,35 +24963,23 @@ } }, "react-test-renderer": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.14.0.tgz", - "integrity": "sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz", + "integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==", "dev": true, "requires": { "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "react-is": "^16.8.6", - "scheduler": "^0.19.1" - }, - "dependencies": { - "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - } + "react-is": "^17.0.2", + "react-shallow-renderer": "^16.13.1", + "scheduler": "^0.20.2" } }, "react-tooltip": { - "version": "4.2.21", - "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-4.2.21.tgz", - "integrity": "sha512-zSLprMymBDowknr0KVDiJ05IjZn9mQhhg4PRsqln0OZtURAJ1snt1xi5daZfagsh6vfsziZrc9pErPTDY1ACig==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-4.5.1.tgz", + "integrity": "sha512-Zo+CSFUGXar1uV+bgXFFDe7VeS2iByeIp5rTgTcc2HqtuOS5D76QapejNNfx320MCY91TlhTQat36KGFTqgcvw==", "requires": { - "prop-types": "^15.7.2", + "prop-types": "^15.8.1", "uuid": "^7.0.3" }, "dependencies": { @@ -25457,14 +24991,30 @@ } }, "react-transition-group": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", - "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", "requires": { - "dom-helpers": "^3.4.0", + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", "loose-envify": "^1.4.0", - "prop-types": "^15.6.2", - "react-lifecycles-compat": "^3.0.4" + "prop-types": "^15.6.2" + }, + "dependencies": { + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + } } }, "react-treebeard": { @@ -25479,6 +25029,17 @@ "velocity-react": "^1.4.1" }, "dependencies": { + "react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "requires": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + } + }, "velocity-react": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/velocity-react/-/velocity-react-1.4.3.tgz", @@ -25501,9 +25062,9 @@ } }, "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -25521,12 +25082,12 @@ } }, "rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, "requires": { - "resolve": "^1.9.0" + "resolve": "^1.20.0" } }, "reduce-reducers": { @@ -25535,9 +25096,9 @@ "integrity": "sha512-uoVmQnZQ+BtKKDKpBdbBri5SLNyIK9ULZGOA504++VbHcwouWE+fJDIo8AuESPF9/EYSkI0v05LDEQK6stCbTA==" }, "redux": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz", - "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", "requires": { "@babel/runtime": "^7.9.2" } @@ -25553,12 +25114,6 @@ "reduce-reducers": "^0.1.0" } }, - "reflect.ownkeys": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz", - "integrity": "sha512-qOLsBKHCpSOFKK1NUOCGC5VyeufB6lEsFe92AL2bhIJsacZS1qdoOZSbPk3MYKuT2cFlRDnulKXuuElIrMjGUg==", - "dev": true - }, "regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -25566,23 +25121,23 @@ "dev": true }, "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "dev": true, "requires": { "regenerate": "^1.4.2" } }, "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "dev": true, "requires": { "@babel/runtime": "^7.8.4" @@ -25595,39 +25150,33 @@ "dev": true }, "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", + "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" } }, "regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", "dev": true, "requires": { + "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" } }, - "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -25636,7 +25185,7 @@ "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true } } @@ -25644,7 +25193,7 @@ "relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", "dev": true }, "renderkid": { @@ -25658,12 +25207,76 @@ "htmlparser2": "^6.1.0", "lodash": "^4.17.21", "strip-ansi": "^6.0.1" + }, + "dependencies": { + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + } } }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" }, "require-from-string": { "version": "2.0.2", @@ -25678,9 +25291,9 @@ "dev": true }, "reselect": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.6.tgz", - "integrity": "sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ==" + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" }, "resize-observer-polyfill": { "version": "1.5.1", @@ -25688,12 +25301,13 @@ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-cwd": { @@ -25732,31 +25346,13 @@ "loader-utils": "^2.0.0", "postcss": "^8.2.14", "source-map": "0.6.1" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "devOptional": true }, "ret": { "version": "0.1.15", @@ -25783,10 +25379,17 @@ "glob": "^7.1.3" } }, + "rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "dev": true, + "peer": true + }, "rst-selector-parser": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", - "integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=", + "integrity": "sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==", "requires": { "lodash.flattendeep": "^4.4.0", "nearley": "^2.7.10" @@ -25801,10 +25404,32 @@ "queue-microtask": "^1.2.2" } }, + "safe-array-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz", + "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + } + }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } }, "safer-buffer": { "version": "2.1.2", @@ -25813,9 +25438,9 @@ "dev": true }, "sass": { - "version": "1.49.9", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz", - "integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==", + "version": "1.57.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.57.1.tgz", + "integrity": "sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -25824,28 +25449,29 @@ }, "dependencies": { "immutable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", - "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.2.tgz", + "integrity": "sha512-oGXzbEDem9OOpDWZu88jGiYCvIsLHMvGw+8OXlpsvTFvIQplQbjg1B1cvKg8f7Hoch6+NGjpPsH1Fr+Mc2D1aA==", "dev": true } } }, "sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.2.tgz", + "integrity": "sha512-nrIdVAAte3B9icfBiGWvmMhT/D+eCDwnk+yA7VE/76dp/WkHX+i44Q/pfo71NYbwj0Ap+PGsn0ekOuU1WFJ2AA==", "dev": true, "requires": { - "klona": "^2.0.4", + "klona": "^2.0.6", "neo-async": "^2.6.2" } }, "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, + "peer": true, "requires": { "xmlchars": "^2.2.0" } @@ -25877,19 +25503,18 @@ "dev": true }, "selfsigned": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", - "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", "dev": true, "requires": { "node-forge": "^1" } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" }, "send": { "version": "0.18.0", @@ -25929,12 +25554,6 @@ } } }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -25944,9 +25563,9 @@ } }, "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -25976,6 +25595,12 @@ "ms": "2.0.0" } }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, "http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", @@ -26074,15 +25699,27 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "dev": true, + "requires": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + } + }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true }, "sockjs": { "version": "0.3.24", @@ -26093,12 +25730,20 @@ "faye-websocket": "^0.11.3", "uuid": "^8.3.2", "websocket-driver": "^0.7.4" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + } } }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-js": { "version": "1.0.2", @@ -26107,21 +25752,12 @@ "dev": true }, "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "spdy": { @@ -26154,12 +25790,12 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "requires": { "escape-string-regexp": "^2.0.0" }, @@ -26180,7 +25816,7 @@ "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==" }, "string_decoder": { "version": "1.3.0", @@ -26189,14 +25825,6 @@ "dev": true, "requires": { "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } } }, "string-length": { @@ -26219,33 +25847,33 @@ } }, "string.prototype.trim": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.4.tgz", - "integrity": "sha512-hWCk/iqf7lp0/AgTF7/ddO1IWtSNPASjlzCicV5irAVdE1grjsneK26YG6xACMBEdCvO8fUST0UzDMh/2Qy+9Q==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" } }, "string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" } }, "strip-ansi": { @@ -26272,16 +25900,16 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" }, "style-loader": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", - "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", + "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", "dev": true, "requires": {} }, "stylis": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", - "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" }, "supports-color": { "version": "5.5.0", @@ -26292,9 +25920,9 @@ } }, "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", "requires": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" @@ -26315,11 +25943,17 @@ } } }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true + "dev": true, + "peer": true }, "tapable": { "version": "2.2.1", @@ -26337,13 +25971,13 @@ } }, "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "version": "5.19.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.2.tgz", + "integrity": "sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==", "dev": true, "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -26353,26 +25987,53 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } } } }, "terser-webpack-plugin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz", - "integrity": "sha512-LPIisi3Ol4chwAaPP8toUJ3L4qCM1G0wao7L3qNv57Drezxj6+VEyySpPw4B1HSO2Eg/hDY/MNF5XihCAoqnsQ==", + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", "dev": true, "requires": { - "jest-worker": "^27.4.1", + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" }, "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -26380,11 +26041,14 @@ "ajv-keywords": "^3.5.2" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -26398,12 +26062,6 @@ "minimatch": "^3.0.4" } }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, "thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -26411,9 +26069,9 @@ "dev": true }, "tiny-invariant": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.2.0.tgz", - "integrity": "sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" }, "tiny-warning": { "version": "1.0.3", @@ -26421,9 +26079,9 @@ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" }, "tinycolor2": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", - "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" }, "tmpl": { "version": "1.0.5", @@ -26433,7 +26091,7 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" }, "to-regex-range": { "version": "5.0.1", @@ -26449,60 +26107,96 @@ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true }, + "totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "dev": true + }, + "tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "peer": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "dependencies": { + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "peer": true + } + } + }, "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", "dev": true, + "peer": true, "requires": { - "punycode": "^2.1.1" + "punycode": "^2.3.0" } }, "ts-jest": { - "version": "27.1.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", - "integrity": "sha512-Xv6jBQPoBEvBq/5i2TeSG9tt/nqkbpcurrEG1b+2yfBrcJelOZF9Ml6dmyMh7bcW9JyFbRYpR5rxROSlBLTZHA==", + "version": "29.1.1", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz", + "integrity": "sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==", "dev": true, "requires": { "bs-logger": "0.x", "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", "lodash.memoize": "4.x", "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" + "semver": "^7.5.3", + "yargs-parser": "^21.0.1" }, "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "requires": { "lru-cache": "^6.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", + "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==", + "dev": true }, "tsv": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/tsv/-/tsv-0.2.0.tgz", - "integrity": "sha1-koaaPLX1AzLz3JD8qCvmZ9tvctY=" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } + "integrity": "sha512-GG6xbOP85giXXom0dS6z9uyDsxktznjpa1AuDlPrIXDqDnbhjr9Vk6Us8iz6U1nENL4CPS2jZDvIjEdaZsmc4Q==" }, "type-detect": { "version": "4.0.8", @@ -26524,20 +26218,55 @@ "mime-types": "~2.1.24" } }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, + "typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", "requires": { - "is-typedarray": "^1.0.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" } }, "typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", - "dev": true + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", + "dev": true, + "peer": true }, "unbox-primitive": { "version": "1.0.2", @@ -26578,15 +26307,15 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true }, "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true }, "universalify": { @@ -26601,6 +26330,15 @@ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -26610,6 +26348,17 @@ "punycode": "^2.1.0" } }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "peer": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "use-immer": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/use-immer/-/use-immer-0.6.0.tgz", @@ -26617,21 +26366,21 @@ "requires": {} }, "use-memo-one": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.2.tgz", - "integrity": "sha512-u2qFKtxLsia/r8qG0ZKkbytbztzRb317XCkT7yP8wxL0tZ/CzK2G+WWie5vWvpyeP7+YoPIwbJoIHJ4Ba4k0oQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz", + "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==", "requires": {} }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", "dev": true }, "utils-merge": { @@ -26641,27 +26390,18 @@ "dev": true }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" }, "v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "dev": true, + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", "requires": { + "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true - } + "convert-source-map": "^1.6.0" } }, "value-equal": { @@ -26680,41 +26420,20 @@ "resolved": "https://registry.npmjs.org/velocity-animate/-/velocity-animate-1.5.2.tgz", "integrity": "sha512-m6EXlCAMetKztO1ppBhGU1/1MR3IiEevO6ESq6rcrSQ3Q77xYSW13jkfXW88o4xMrkXJhy/U7j4wFR/twMB0Eg==" }, - "vis-data": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/vis-data/-/vis-data-6.6.1.tgz", - "integrity": "sha512-xmujDB2Dzf8T04rGFJ9OP4OA6zRVrz8R9hb0CVKryBrZRCljCga9JjSfgctA8S7wdZu7otDtUIwX4ZOgfV/57w==", - "peer": true, - "requires": {} - }, "vis-util": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/vis-util/-/vis-util-4.3.4.tgz", "integrity": "sha512-hJIZNrwf4ML7FYjs+m+zjJfaNvhjk3/1hbMdQZVnwwpOFJS/8dMG8rdbOHXcKoIEM6U5VOh3HNpaDXxGkOZGpw==", "peer": true }, - "vis-uuid": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/vis-uuid/-/vis-uuid-1.1.3.tgz", - "integrity": "sha512-2B6XdY1bkzbUh+TugmnAaFa61KO9R5pzBzIuFIm8a9FrkbxIdSmQXV+FbfkL8QunkQV/bT0JDLQ2puqCS2+0Og==", - "peer": true - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", "dev": true, + "peer": true, "requires": { - "xml-name-validator": "^3.0.0" + "xml-name-validator": "^4.0.0" } }, "walker": { @@ -26728,15 +26447,15 @@ "warning": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "integrity": "sha512-jMBt6pUrKn5I+OGgtQ4YZLdhIeJmObddh6CsibPxyQ5yPZm1XExSyzC1LCNX7BzhxWgiHmizBWJTHJIjMjTQYQ==", "requires": { "loose-envify": "^1.0.0" } }, "watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, "requires": { "glob-to-regexp": "^0.4.1", @@ -26753,15 +26472,16 @@ } }, "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "peer": true }, "webpack": { - "version": "5.73.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", - "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", + "version": "5.75.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", + "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", @@ -26769,11 +26489,11 @@ "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", + "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.3", + "enhanced-resolve": "^5.10.0", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -26786,14 +26506,14 @@ "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", + "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "dependencies": { "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -26803,30 +26523,105 @@ } } }, + "webpack-bundle-analyzer": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz", + "integrity": "sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==", + "dev": true, + "requires": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "webpack-cli": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", - "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.0.2.tgz", + "integrity": "sha512-4y3W5Dawri5+8dXm3+diW6Mn1Ya+Dei6eEVAdIduAmYNLzv1koKVAqsfgrrc9P2mhrYHQphx5htnGkcNwtubyQ==", "dev": true, "requires": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.2.0", - "@webpack-cli/info": "^1.5.0", - "@webpack-cli/serve": "^1.7.0", + "@webpack-cli/configtest": "^2.0.1", + "@webpack-cli/info": "^2.0.1", + "@webpack-cli/serve": "^2.0.2", "colorette": "^2.0.14", - "commander": "^7.0.0", + "commander": "^10.0.1", "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", "webpack-merge": "^5.7.3" }, "dependencies": { "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true } } @@ -26845,9 +26640,9 @@ }, "dependencies": { "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -26872,23 +26667,23 @@ "dev": true }, "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" } } } }, "webpack-dev-server": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.3.tgz", - "integrity": "sha512-3qp/eoboZG5/6QgiZ3llN8TUzkSpYg1Ko9khWX1h40MIEUNS2mDoIa8aXsPfskER+GbTvs/IJZ1QTBBhhuetSw==", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", + "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", "dev": true, "requires": { "@types/bonjour": "^3.5.9", @@ -26914,7 +26709,7 @@ "p-retry": "^4.5.0", "rimraf": "^3.0.2", "schema-utils": "^4.0.0", - "selfsigned": "^2.0.1", + "selfsigned": "^2.1.1", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", @@ -26923,9 +26718,9 @@ }, "dependencies": { "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -26950,30 +26745,30 @@ "dev": true }, "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", + "ajv": "^8.9.0", "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ajv-keywords": "^5.1.0" } }, "ws": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", - "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", "dev": true, "requires": {} } } }, "webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz", + "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==", "dev": true, "requires": { "clone-deep": "^4.0.1", @@ -27004,29 +26799,43 @@ "dev": true }, "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", "dev": true, + "peer": true, "requires": { - "iconv-lite": "0.4.24" + "iconv-lite": "0.6.3" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "peer": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } } }, "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "peer": true }, "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", + "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", "dev": true, + "peer": true, "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" } }, "which": { @@ -27049,16 +26858,22 @@ "is-symbol": "^1.0.3" } }, - "wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true + "which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", "dev": true }, "wrap-ansi": { @@ -27097,18 +26912,15 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "requires": { "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "signal-exit": "^3.0.7" } }, "ws": { @@ -27119,16 +26931,18 @@ "requires": {} }, "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "peer": true }, "xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true + "dev": true, + "peer": true }, "y18n": { "version": "5.0.8", @@ -27136,9 +26950,9 @@ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" }, "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "yaml": { "version": "1.10.2", @@ -27146,31 +26960,23 @@ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" }, "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "requires": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "dependencies": { - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" - } + "yargs-parser": "^21.1.1" } }, "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" }, "yocto-queue": { "version": "0.1.0", @@ -27178,4 +26984,4 @@ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" } } -} \ No newline at end of file +} diff --git a/mcc/package.json b/mcc/package.json index ae19069df..1ad23823c 100644 --- a/mcc/package.json +++ b/mcc/package.json @@ -11,11 +11,11 @@ "test": "cross-env NODE_ENV=test jest" }, "dependencies": { - "@labkey/api": "^1.16.0", + "@labkey/api": "^1.23.0", "@labkey/components": "~2.217.0", "chart.js": "^3.7.0", "react-chartjs-2": "^4.3.1", - "uuid": "^8.3.2", + "uuid": "^9.0.0", "react": "^17.0.2", "react-dom": "^17.0.2", "react-hot-loader": "^4.13.0", @@ -26,19 +26,21 @@ "tsv": "^0.2.0" }, "devDependencies": { - "@labkey/build": "~6.1.0", - "@types/jest": "^27.5.2", - "@types/uuid": "^8.3.4", + "@labkey/build": "^6.14.0", + "@types/jest": "^29.0.0", + "@types/jquery": "^3.0.0", "@types/tsv": "^0.2.1", - "@types/react-dom": "^17.0.2", "@types/chart.js": "^2.9.37", + "@types/jexl": "^2.3.1", + "@types/node": "^18.17.1", "enzyme": "^3.11.0", - "enzyme-adapter-react-16": "1.15.6", - "@types/enzyme": "3.10.9", - "@types/enzyme-adapter-react-16": "1.0.6", - "jest": "^27.4.7", - "jest-cli": "^27.5.1", - "ts-jest": "^27.1.5" + "jest": "^29.0.0", + "jest-cli": "^29.0.0", + "jest-mock": "^29.0.0", + "ts-jest": "^29.0.0", + "rimraf": "^3.0.2", + "@wojtekmaj/enzyme-adapter-react-17": "^0.8.0", + "jsdom-global": "^3.0.2" }, "jest": { "globals": { diff --git a/mcc/src/client/Dashboard/BarChart.spec.tsx b/mcc/src/client/Dashboard/BarChart.spec.tsx index 1bbe3555a..8750d0979 100644 --- a/mcc/src/client/Dashboard/BarChart.spec.tsx +++ b/mcc/src/client/Dashboard/BarChart.spec.tsx @@ -1,27 +1,28 @@ +import 'jsdom-global/register' import React from 'react'; import { mount, shallow } from 'enzyme'; -import { mocked } from 'ts-jest/utils'; +import { mocked } from 'jest-mock'; import { jest, describe, expect, test, beforeEach } from '@jest/globals'; import { Chart } from 'chart.js'; import BarChart from './BarChart'; -jest.mock('chart.js'); -const MockChart = mocked(Chart, true); +describe('BarChart', () => { + jest.mock('chart.js'); + const MockChart = mocked(Chart); -const mockData = [ - { - gender: 'M' - }, - { - gender: 'F' - }, - { - gender: 'F' - } -]; + const mockData = [ + { + gender: 'M' + }, + { + gender: 'F' + }, + { + gender: 'F' + } + ]; -describe('BarChart', () => { test('it has a canvas element', () => { const wrapper = shallow(); expect(wrapper.find('canvas')).toHaveLength(1); diff --git a/mcc/src/client/Dashboard/Dashboard.spec.tsx b/mcc/src/client/Dashboard/Dashboard.spec.tsx index fbd86f6be..0a034c9eb 100644 --- a/mcc/src/client/Dashboard/Dashboard.spec.tsx +++ b/mcc/src/client/Dashboard/Dashboard.spec.tsx @@ -1,12 +1,11 @@ +import 'jsdom-global/register'; import React from 'react'; import { mount } from 'enzyme'; -import { mocked } from 'ts-jest/utils'; -import { jest, beforeEach, describe, expect, test } from '@jest/globals'; +import { mocked } from 'jest-mock'; +import { beforeEach, describe, expect, jest, test } from '@jest/globals'; import { Dashboard } from './Dashboard'; import { Query } from '@labkey/api'; -import { getServerContext } from '@labkey/api'; -import { Chart } from 'chart.js'; jest.mock('chart.js'); jest.mock('@labkey/api', () => { @@ -27,7 +26,6 @@ jest.mock('@labkey/api', () => { } }); -const mockedQuery = mocked(Query, true); const mockData = [ { gender: 'M' @@ -41,6 +39,8 @@ const mockData = [ ]; describe('Dashboard', () => { + const mockedQuery = mocked(Query); + beforeEach(() => { mockedQuery.selectRows.mockReset(); mockedQuery.selectRows.mockImplementation(({ success }) => { @@ -64,7 +64,7 @@ describe('Dashboard', () => { test('it renders a grid of cards', () => { const wrapper = mount(); - expect(wrapper.find('.row')).toHaveLength(2); + expect(wrapper.find('.row')).toHaveLength(4); expect(wrapper.find('.panel')).toHaveLength(4); }); diff --git a/mcc/src/client/Dashboard/PieChart.spec.tsx b/mcc/src/client/Dashboard/PieChart.spec.tsx index bcc72c3b1..ddbc65604 100644 --- a/mcc/src/client/Dashboard/PieChart.spec.tsx +++ b/mcc/src/client/Dashboard/PieChart.spec.tsx @@ -1,13 +1,13 @@ +import 'jsdom-global/register'; import React from 'react'; import { mount, shallow } from 'enzyme'; -import { mocked } from 'ts-jest/utils'; -import { jest, describe, expect, test, beforeEach } from '@jest/globals'; +import { mocked } from 'jest-mock'; +import { describe, expect, jest, test } from '@jest/globals'; import { Chart } from 'chart.js'; import PieChart from './PieChart'; jest.mock('chart.js'); -const MockChart = mocked(Chart, true); const mockData = [ { @@ -22,6 +22,8 @@ const mockData = [ ]; describe('PieChart', () => { + const MockChart = mocked(Chart); + test('it has a canvas element', () => { const wrapper = shallow(); expect(wrapper.find('canvas')).toHaveLength(1); diff --git a/mcc/src/client/test/jest.setup.ts b/mcc/src/client/test/jest.setup.ts index a5c9e633b..d1b5c8583 100644 --- a/mcc/src/client/test/jest.setup.ts +++ b/mcc/src/client/test/jest.setup.ts @@ -3,7 +3,7 @@ * any form or by any electronic or mechanical means without written permission from LabKey Corporation. */ import { configure } from 'enzyme'; -import Adapter from 'enzyme-adapter-react-16'; +import Adapter from '@wojtekmaj/enzyme-adapter-react-17'; // Enzyme expects an adapter to be configured // http://airbnb.io/enzyme/docs/installation/react-16.html diff --git a/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java b/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java index f9d2a158e..281f023ce 100644 --- a/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java +++ b/mcc/test/src/org/labkey/test/tests/mcc/MccTest.java @@ -106,8 +106,9 @@ private void testAnimalImportAndTransfer() throws Exception new Window.WindowFinder(getDriver()).withTitle("Mark ID Shipped").waitFor(); Ext4FieldRef.getForLabel(this, "Effective Date").setValue(new SimpleDateFormat("MM/dd/yyyy").format(new Date())); Ext4ComboRef combo = Ext4ComboRef.getForLabel(this, "Destination Center Name"); - combo.clickTrigger(); combo.waitForStoreLoad(); + sleep(200); + combo.clickTrigger(); waitAndClick(Locator.tagContainingText("li", "Other")); Window dialog = new Window.WindowFinder(getDriver()).withTitle("Enter Value").waitFor(); From 130edf4477983cb036da2014a41f69460773ba53 Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 7 Aug 2023 09:58:20 -0700 Subject: [PATCH 56/58] Correct study name in mGAP test --- mGAP/test/src/org/labkey/test/tests/mgap/MgapTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mGAP/test/src/org/labkey/test/tests/mgap/MgapTest.java b/mGAP/test/src/org/labkey/test/tests/mgap/MgapTest.java index 6ca714e1a..b51dcd161 100644 --- a/mGAP/test/src/org/labkey/test/tests/mgap/MgapTest.java +++ b/mGAP/test/src/org/labkey/test/tests/mgap/MgapTest.java @@ -66,7 +66,7 @@ private void setupTest() throws Exception beginAt("/mgap/" + getProjectName() + "/updateAnnotations.view"); clickButton("OK"); - beginAt(WebTestHelper.getBaseURL() + "/mcc/" + getProjectName() + "/importStudy.view"); + beginAt(WebTestHelper.getBaseURL() + "/mgap/" + getProjectName() + "/importStudy.view"); clickButton("OK"); waitForPipelineJobsToComplete(1, "Study import", false, MAX_WAIT_SECONDS * 2500); From 6490e5511a57d53e9d6e748eb5a79f3170b2120f Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 7 Aug 2023 11:57:17 -0700 Subject: [PATCH 57/58] Refactor mGAP study to folder export --- mGAP/resources/referenceStudy/folder.xml | 4 ++++ .../referenceStudy/{ => study}/datasets/datasets_manifest.xml | 0 .../referenceStudy/{ => study}/datasets/datasets_metadata.xml | 0 .../referenceStudy/{ => study}/datasets/mGAP.datasets | 0 mGAP/resources/referenceStudy/{ => study}/study.xml | 0 5 files changed, 4 insertions(+) create mode 100644 mGAP/resources/referenceStudy/folder.xml rename mGAP/resources/referenceStudy/{ => study}/datasets/datasets_manifest.xml (100%) rename mGAP/resources/referenceStudy/{ => study}/datasets/datasets_metadata.xml (100%) rename mGAP/resources/referenceStudy/{ => study}/datasets/mGAP.datasets (100%) rename mGAP/resources/referenceStudy/{ => study}/study.xml (100%) diff --git a/mGAP/resources/referenceStudy/folder.xml b/mGAP/resources/referenceStudy/folder.xml new file mode 100644 index 000000000..e3acbb155 --- /dev/null +++ b/mGAP/resources/referenceStudy/folder.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/mGAP/resources/referenceStudy/datasets/datasets_manifest.xml b/mGAP/resources/referenceStudy/study/datasets/datasets_manifest.xml similarity index 100% rename from mGAP/resources/referenceStudy/datasets/datasets_manifest.xml rename to mGAP/resources/referenceStudy/study/datasets/datasets_manifest.xml diff --git a/mGAP/resources/referenceStudy/datasets/datasets_metadata.xml b/mGAP/resources/referenceStudy/study/datasets/datasets_metadata.xml similarity index 100% rename from mGAP/resources/referenceStudy/datasets/datasets_metadata.xml rename to mGAP/resources/referenceStudy/study/datasets/datasets_metadata.xml diff --git a/mGAP/resources/referenceStudy/datasets/mGAP.datasets b/mGAP/resources/referenceStudy/study/datasets/mGAP.datasets similarity index 100% rename from mGAP/resources/referenceStudy/datasets/mGAP.datasets rename to mGAP/resources/referenceStudy/study/datasets/mGAP.datasets diff --git a/mGAP/resources/referenceStudy/study.xml b/mGAP/resources/referenceStudy/study/study.xml similarity index 100% rename from mGAP/resources/referenceStudy/study.xml rename to mGAP/resources/referenceStudy/study/study.xml From 12da49bcdd51e280221c73503bd1ec0796643ea8 Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 7 Aug 2023 13:45:24 -0700 Subject: [PATCH 58/58] Refactor mGapReleaseGenerator to match new annotations --- .../mgap/pipeline/mGapReleaseGenerator.java | 131 ++++++++++-------- 1 file changed, 73 insertions(+), 58 deletions(-) diff --git a/mGAP/src/org/labkey/mgap/pipeline/mGapReleaseGenerator.java b/mGAP/src/org/labkey/mgap/pipeline/mGapReleaseGenerator.java index e9462a65a..893f01984 100644 --- a/mGAP/src/org/labkey/mgap/pipeline/mGapReleaseGenerator.java +++ b/mGAP/src/org/labkey/mgap/pipeline/mGapReleaseGenerator.java @@ -16,7 +16,6 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.Nullable; -import org.json.JSONArray; import org.json.JSONObject; import org.junit.Assert; import org.junit.Test; @@ -933,7 +932,7 @@ private void checkVcfAnnotationsAndSamples(File vcfInput, boolean skipAnnotation if (!skipAnnotationChecks) { - for (String info : Arrays.asList("CADD_PH", "OMIMN", "CLN_ALLELE", "AF", "mGAPV")) + for (String info : Arrays.asList("CADD_PH", "OMIM_PHENO", "CLN_ALLELE", "AF", "mGAPV")) { if (!header.hasInfoLine(info)) { @@ -1080,16 +1079,16 @@ private void inspectAndSummarizeVcf(JobContext ctx, File vcfInput, GeneToNameTra } } - Set omims = new LinkedHashSet<>(); - Set omimds = new LinkedHashSet<>(); - if (vc.getAttribute("OMIMN") != null) + Set omimIds = new LinkedHashSet<>(); + Set omimPhenotypes = new LinkedHashSet<>(); + if (vc.getAttribute("MIMNUMBER") != null) { - omims.add(vc.getAttributeAsString("OMIMN", null)); + omimIds.add(vc.getAttributeAsString("MIMNUMBER", null)); } - if (vc.getAttribute("OMIMD") != null) + if (vc.getAttribute("OMIM_PHENO") != null) { - omimds.addAll(parseRawOmimd(vc, ctx.getLogger())); + omimPhenotypes.addAll(parseRawOmimPheno(vc, ctx.getLogger())); } Set overlappingGenes = new TreeSet<>(); @@ -1131,6 +1130,11 @@ private void inspectAndSummarizeVcf(JobContext ctx, File vcfInput, GeneToNameTra geneName = translator.getGeneMap().get(geneName).get("gene_name"); } + if (tokens.length > 7 && !"protein_coding".equals(tokens[7])) { + ctx.getLogger().info("skipping non protein_coding ANN: " + ann); + continue; + } + overlappingGenes.add(geneName); } } @@ -1162,7 +1166,7 @@ private void inspectAndSummarizeVcf(JobContext ctx, File vcfInput, GeneToNameTra String overlappingGenesJoin = StringUtils.join(overlappingGenes, ","); if (!overlappingGenesReported.contains(overlappingGenesJoin)) { - maybeWriteVariantLine(queuedLines, vc, tokens[0], "SNPEff", "Predicted High Impact", description, overlappingGenes, omims, omimds, ctx.getLogger(), null); + maybeWriteVariantLine(queuedLines, vc, tokens[0], "SNPEff", "Predicted High Impact", description, overlappingGenes, omimIds, omimPhenotypes, ctx.getLogger(), null); // NOTE: a given site could have multiple overlapping ORFs (usually different isoforms), so if we hit one allow this to tag that site and skip the remaining. overlappingGenesReported.add(overlappingGenesJoin); @@ -1173,14 +1177,24 @@ private void inspectAndSummarizeVcf(JobContext ctx, File vcfInput, GeneToNameTra if (vc.getAttribute("CLN_SIG") != null) { - List clnAlleles = vc.getAttributeAsStringList("CLN_ALLELE", ""); List clnSigs = vc.getAttributeAsStringList("CLN_SIG", ""); + if (clnSigs.size() != vc.getAlternateAlleles().size()) + { + throw new IllegalStateException("CLN_SIG and alt alleles were not the same length: " + vc.toStringWithoutGenotypes()); + } + List clnDisease = vc.getAttributeAsStringList("CLN_DN", ""); List clnAlleleIds = vc.getAttributeAsStringList("CLN_ALLELEID", ""); int i = -1; for (String sigList : clnSigs) { i++; + if (sigList.isEmpty()) + { + continue; + } + + Allele altAllele = vc.getAlternateAllele(i); String[] sigSplit = sigList.split("\\|"); List diseaseSplit = Arrays.asList(clnDisease.get(i).split("\\|")); @@ -1196,8 +1210,7 @@ private void inspectAndSummarizeVcf(JobContext ctx, File vcfInput, GeneToNameTra try { - String allele = clnAlleles.get(i); - maybeWriteVariantLine(queuedLines, vc, allele, "ClinVar", diseaseSplit.get(j), description, overlappingGenes, omims, omimds, ctx.getLogger(), "ClinVar:" + clnAlleleIds.get(i)); + maybeWriteVariantLine(queuedLines, vc, altAllele.getBaseString(), "ClinVar", diseaseSplit.get(j), description, overlappingGenes, omimIds, omimPhenotypes, ctx.getLogger(), "ClinVar:" + clnAlleleIds.get(i)); } catch (IndexOutOfBoundsException e) @@ -1214,36 +1227,57 @@ private void inspectAndSummarizeVcf(JobContext ctx, File vcfInput, GeneToNameTra } } - //NE: nsdb Polyphen2_HVAR_score: Polyphen2 score based on HumVar, i.e. hvar_prob. The score ranges from 0 to 1, and the corresponding prediction is 'probably damaging' if it is in [0.909,1], 'possibly damaging' if it is in [0.447,0.908], 'benign' if it is in [0,0.446]. Score cutoff for binary classification is 0.5, i.e. the prediction is 'neutral' if the score is smaller than 0.5 and 'deleterious' if the score is larger than 0.5. Multiple entries separated by - //NF: nsdb Polyphen2_HVAR_pred: Polyphen2 prediction based on HumVar, 'D' ('probably damaging'),'P' ('possibly damaging') and 'B' ('benign'). Multiple entries separated by - if (vc.getAttribute("NF") != null && !".".equals(vc.getAttribute("NF"))) + //Polyphen2_HVAR_S: Polyphen2 score based on HumVar, i.e. hvar_prob. The score ranges from 0 to 1, and the corresponding prediction is 'probably damaging' if it is in [0.909,1], 'possibly damaging' if it is in [0.447,0.908], 'benign' if it is in [0,0.446]. Score cutoff for binary classification is 0.5, i.e. the prediction is 'neutral' if the score is smaller than 0.5 and 'deleterious' if the score is larger than 0.5. Multiple entries separated by + //Polyphen2_HVAR_pred: Polyphen2 prediction based on HumVar, 'D' ('probably damaging'),'P' ('possibly damaging') and 'B' ('benign'). Multiple entries separated by + if (vc.getAttribute("Polyphen2_HVAR_pred") != null && !".".equals(vc.getAttribute("Polyphen2_HVAR_pred"))) { - Set polyphenPredictions = new HashSet<>(vc.getAttributeAsStringList("NF", null)); - polyphenPredictions.remove("B"); - polyphenPredictions.remove("P"); + List polyphenPredictions = vc.getAttributeAsStringList("Polyphen2_HVAR_pred", null); + List polyphenScores = vc.getAttributeAsDoubleList("Polyphen2_HVAR_S", 0.0); + + if (polyphenPredictions.size() != vc.getAlternateAlleles().size()) + { + throw new IllegalStateException("Polyphen2_HVAR_pred and alt alleles were not the same length: " + vc.toStringWithoutGenotypes()); + } + + if (polyphenScores.size() != vc.getAlternateAlleles().size()) + { + throw new IllegalStateException("Polyphen2_HVAR_S and alt alleles were not the same length: " + vc.toStringWithoutGenotypes()); + } - String description = null; - if (!polyphenPredictions.isEmpty()) + int alleleIdx = -1; + for (Allele alt : vc.getAlternateAlleles()) { + alleleIdx++; + + String prediction = polyphenPredictions.get(alleleIdx); + if (StringUtils.isEmpty(prediction) || "B".equals(prediction) || "P".equals(prediction) || ".".equals(prediction)) + { + continue; + } + + String description = null; try { - Double maxScore = Collections.max(vc.getAttributeAsDoubleList("NE", 0.0)); - description = StringUtils.join(new String[]{ - "Score: " + maxScore - }, ","); + Double maxScore = polyphenScores.get(alleleIdx); + if (maxScore == 0.0) + { + ctx.getLogger().error("Suspicious values for Polyphen2_HVAR_S: " + maxScore + ", at position: " + vc.toStringWithoutGenotypes()); + } + + description = "Score: " + maxScore; } catch (NumberFormatException e) { - ctx.getLogger().warn("Unable to parse NE attribute decimal (" + vc.getAttribute("NE") + ") for variant at position: " + vc.toStringWithoutGenotypes()); + ctx.getLogger().error("Unable to parse Polyphen2_HVAR_S attribute decimal (" + vc.getAttribute("Polyphen2_HVAR_S") + ") for variant at position: " + vc.toStringWithoutGenotypes()); } - maybeWriteVariantLine(queuedLines, vc, null, "Polyphen2", "Prediction: " + StringUtils.join(polyphenPredictions, ","), description, overlappingGenes, omims, omimds, ctx.getLogger(), null); + maybeWriteVariantLine(queuedLines, vc, alt.getBaseString(), "Polyphen2", "Prediction: " + prediction, description, overlappingGenes, omimIds, omimPhenotypes, ctx.getLogger(), null); } } for (List line : queuedLines) { - writer.writeNext(line.toArray(new String[line.size()])); + writer.writeNext(line.toArray(new String[0])); } } } @@ -1264,17 +1298,17 @@ private void inspectAndSummarizeVcf(JobContext ctx, File vcfInput, GeneToNameTra } } - public Collection parseRawOmimd(VariantContext vc, Logger log) + public Collection parseRawOmimPheno(VariantContext vc, Logger log) { //NOTE: because this field can have internal commas, this can be parsed incorrectly, so ignore this and re-join String rawVal; - if (vc.getAttribute("OMIMD") instanceof Collection) + if (vc.getAttribute("OMIM_PHENO") instanceof Collection) { - rawVal = StringUtils.join(vc.getAttributeAsStringList("OMIMD", null), ","); + rawVal = StringUtils.join(vc.getAttributeAsStringList("OMIM_PHENO", null), ","); } else { - rawVal = vc.getAttributeAsString("OMIMD", null); + rawVal = vc.getAttributeAsString("OMIM_PHENO", null); } if (!StringUtils.isEmpty(rawVal) && ! ".".equals(rawVal)) @@ -1331,7 +1365,7 @@ private void generateSummaries(JobContext ctx, File vcf, ReferenceGenome genome, generateSummary(ctx, variantsToTable, summaryTable, summaryTableByField, totalVariants, totalPrivateVariants, totalSubjects, typeCounts); } - private static final List allowedFields = Arrays.asList("CHROM", "ANN", "CLN_SIG", "GRASP_PH", "ENCTFBS_TF", "FE", "NF", "ENCSEG_NM"); + private static final List allowedFields = Arrays.asList("CHROM", "ANN", "CLN_SIG", "FANTOM5_TFBS", "FANTOM_ENHANCER", "Polyphen2_HVAR_pred"); private class FieldTracker { @@ -1413,30 +1447,18 @@ else if ("CLN_SIG".equals(fieldName)) addForValue("AnnotationSummary", "ClinVar Overlap"); } } - else if ("GRASP_PH".equals(fieldName)) - { - addForValue("AnnotationSummary", "GWAS Associations (GRASP)"); - } - else if ("FE".equals(fieldName) && "Y".equals(val)) + else if ("FANTOM_ENHANCER".equals(fieldName) && "Y".equals(val)) { addForValue("AnnotationSummary", "Enhancer Region (FANTOM5)"); } - else if ("ENCTFBS_TF".equals(fieldName)) + else if ("FANTOM5_TFBS".equals(fieldName)) { - addForValue("AnnotationSummary", "Transcription Factor Binding (ENCODE)"); + addForValue("AnnotationSummary", "Transcription Factor Binding (FANTOM5)"); } - else if ("NF".equals(fieldName) && val.contains("D")) + else if ("Polyphen2_HVAR_pred".equals(fieldName) && val.contains("D")) { addForValue("AnnotationSummary", "Damaging (Polyphen2)"); } - else if ("ENCSEG_NM".equals(fieldName)) - { - List values = Arrays.asList(val.split(",")); - if (values.contains("E")) - { - addForValue("AnnotationSummary", "Predicted Enhancer (ENCODE)"); - } - } else if ("CHROM".equals(fieldName)) { addForValue("PerChromosome", val); @@ -1586,7 +1608,7 @@ private void generateSummary(JobContext ctx, File variantsToTable, File output, } } - private void maybeWriteVariantLine(Set> queuedLines, VariantContext vc, @Nullable String allele, String source, String reason, String description, Collection overlappingGenes, Collection omims, Collection omimds, Logger log, String identifier) + private void maybeWriteVariantLine(Set> queuedLines, VariantContext vc, @Nullable String allele, String source, String reason, String description, Collection overlappingGenes, Collection omimIds, Collection omimPhenotypes, Logger log, String identifier) { if (allele == null) { @@ -1635,7 +1657,7 @@ else if (af != null) Object cadd = vc.getAttribute("CADD_PH"); - queuedLines.add(Arrays.asList(vc.getContig(), String.valueOf(vc.getStart()), vc.getReference().getDisplayString(), allele, source, reason, (description == null ? "" : description), StringUtils.join(overlappingGenes, ";"), StringUtils.join(omims, ";"), StringUtils.join(omimds, ";"), af == null ? "" : af.toString(), identifier == null ? "" : identifier, cadd == null ? "" : cadd.toString())); + queuedLines.add(Arrays.asList(vc.getContig(), String.valueOf(vc.getStart()), vc.getReference().getDisplayString(), allele, source, reason, (description == null ? "" : description), StringUtils.join(overlappingGenes, ";"), StringUtils.join(omimIds, ";"), StringUtils.join(omimPhenotypes, ";"), af == null ? "" : af.toString(), identifier == null ? "" : identifier, cadd == null ? "" : cadd.toString())); } private boolean indexExists(File vcf) @@ -1658,7 +1680,7 @@ public Set parseOmim(String input, Logger log) { if (StringUtils.isEmpty(token)) { - log.warn("OMIMD was empty: " + input + ", " + StringUtils.join(tokens, ";")); + log.warn("OMIM_PHENO was empty: " + input + ", " + StringUtils.join(tokens, ";")); continue; } @@ -1830,13 +1852,6 @@ public void testOMIMParse() throws Exception { Set ret = pr.parseOmim(pair.getLeft(), _log); Assert.assertEquals(pair.getRight(), ret); - - //NOTE: since this requires an API key and queries OMIM not suitable to general testing, but this can be uncommented for local dev - //for (String term : ret) - //{ - // String updated = pr.updateOmimD(term, ContainerManager.getRoot(), _log); - // Assert.assertNotNull(updated); - //} } } }