diff --git a/STATUS.md b/STATUS.md
index a85d30dda..f3dcc6a6c 100644
--- a/STATUS.md
+++ b/STATUS.md
@@ -28,7 +28,7 @@ The `proofs` Haskell project provides an extended formal specification of our th
 The library is accompanied by a small demo application that shows an example test case for our proof for completeness, by creating a variation tree diff from two variation trees and re-projecting them.
 
 ## Claims
-We claim the _Artifacts Available_ badge as we made our artefacts publicly available on [Github][ddgithub] and [Zenodo][ddzenodo].
+We claim the _Artifacts Available_ badge as we made our artifacts publicly available on [Github][ddgithub] and [Zenodo][ddzenodo].
 
 We claim the _Artifacts Evaluated Reusable_ badge as we implemented DiffDetective as a reusable library (see above).
 Furthermore, both DiffDetective and our Haskell formalization serve as reference implementations if researchers or practitioners want to reimplement our theory in other programming languages.
diff --git a/src/main/java/org/variantsync/diffdetective/analysis/AnalysisResult.java b/src/main/java/org/variantsync/diffdetective/analysis/AnalysisResult.java
index 80c6d1f5a..548d5faf7 100644
--- a/src/main/java/org/variantsync/diffdetective/analysis/AnalysisResult.java
+++ b/src/main/java/org/variantsync/diffdetective/analysis/AnalysisResult.java
@@ -2,10 +2,10 @@
 
 import org.variantsync.diffdetective.diff.difftree.serialize.DiffTreeSerializeDebugData;
 import org.variantsync.diffdetective.diff.result.DiffError;
-import org.variantsync.diffdetective.metadata.ElementaryPatternCount;
+import org.variantsync.diffdetective.metadata.EditClassCount;
 import org.variantsync.diffdetective.metadata.ExplainedFilterSummary;
 import org.variantsync.diffdetective.metadata.Metadata;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.functjonal.Functjonal;
 import org.variantsync.functjonal.category.InplaceMonoid;
 import org.variantsync.functjonal.category.InplaceSemigroup;
@@ -55,7 +55,7 @@ public class AnalysisResult implements Metadata<AnalysisResult> {
         a.max.set(CommitProcessTime.max(a.max, b.max));
         a.debugData.append(b.debugData);
         a.filterHits.append(b.filterHits);
-        a.elementaryPatternCounts.append(b.elementaryPatternCounts);
+        a.editClassCounts.append(b.editClassCounts);
         MergeMap.putAllValues(a.customInfo, b.customInfo, Semigroup.assertEquals());
         a.diffErrors.append(b.diffErrors);
     };
@@ -80,7 +80,7 @@ public class AnalysisResult implements Metadata<AnalysisResult> {
     public final CommitProcessTime min, max;
     public final DiffTreeSerializeDebugData debugData;
     public ExplainedFilterSummary filterHits;
-    public ElementaryPatternCount elementaryPatternCounts;
+    public EditClassCount editClassCounts;
     private final LinkedHashMap<String, String> customInfo = new LinkedHashMap<>();
     private final MergeMap<DiffError, Integer> diffErrors = new MergeMap<>(new HashMap<>(), Integer::sum);
 
@@ -152,7 +152,7 @@ public AnalysisResult(
         this.runtimeWithMultithreadingInSeconds = runtimeWithMultithreadingInSeconds;
         this.debugData = debugData;
         this.filterHits = filterHits;
-        this.elementaryPatternCounts = new ElementaryPatternCount();
+        this.editClassCounts = new EditClassCount();
         this.min = min;
         this.max = max;
     }
@@ -189,7 +189,7 @@ public static AnalysisResult importFrom(final Path p, final Map<String, BiConsum
         AnalysisResult result = new AnalysisResult();
         
         final List<String> filterHitsLines = new ArrayList<>();
-        final List<String> elementaryPatternCountsLines = new ArrayList<>();
+        final List<String> editClassCountsLines = new ArrayList<>();
 
         try (BufferedReader input = Files.newBufferedReader(p)) {
             // examine each line of the metadata file separately
@@ -229,13 +229,13 @@ public static AnalysisResult importFrom(final Path p, final Map<String, BiConsum
                         // temporary fix for renaming from Unchanged to Untouched
                         final String unchanged = "Unchanged";
                         if (key.startsWith(unchanged)) {
-                            key = ProposedElementaryPatterns.Untouched.getName();
+                            key = ProposedEditClasses.Untouched.getName();
                             line = key + line.substring(unchanged.length());
                         }
 
                         final String finalKey = key;
-                        if (ProposedElementaryPatterns.All.stream().anyMatch(pattern -> pattern.getName().equals(finalKey))) {
-                            elementaryPatternCountsLines.add(line);
+                        if (ProposedEditClasses.All.stream().anyMatch(editClass -> editClass.getName().equals(finalKey))) {
+                            editClassCountsLines.add(line);
                         } else if (key.startsWith(ExplainedFilterSummary.FILTERED_MESSAGE_BEGIN)) {
                             filterHitsLines.add(line);
                         } else if (key.startsWith(ERROR_BEGIN)) {
@@ -257,7 +257,7 @@ public static AnalysisResult importFrom(final Path p, final Map<String, BiConsum
         }
 
         result.filterHits = ExplainedFilterSummary.parse(filterHitsLines);
-        result.elementaryPatternCounts = ElementaryPatternCount.parse(elementaryPatternCountsLines, p.toString());
+        result.editClassCounts = EditClassCount.parse(editClassCountsLines, p.toString());
 
         return result;
     }
@@ -289,7 +289,7 @@ public LinkedHashMap<String, Object> snapshot() {
         snap.putAll(customInfo);
         snap.putAll(debugData.snapshot());
         snap.putAll(filterHits.snapshot());
-        snap.putAll(elementaryPatternCounts.snapshot());
+        snap.putAll(editClassCounts.snapshot());
         snap.putAll(Functjonal.bimap(diffErrors, error -> ERROR_BEGIN + error + ERROR_END, Object::toString));
         return snap;
     }
diff --git a/src/main/java/org/variantsync/diffdetective/analysis/EditClassCount.java b/src/main/java/org/variantsync/diffdetective/analysis/EditClassCount.java
new file mode 100644
index 000000000..a07a2f378
--- /dev/null
+++ b/src/main/java/org/variantsync/diffdetective/analysis/EditClassCount.java
@@ -0,0 +1,46 @@
+package org.variantsync.diffdetective.analysis;
+
+import org.variantsync.diffdetective.editclass.EditClass;
+import org.variantsync.diffdetective.editclass.EditClassCatalogue;
+import org.variantsync.diffdetective.util.CSV;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * Gathers statistics about matching edit classes.
+ * @author Paul Bittner
+ */
+public class EditClassCount implements CSV {
+    private final EditClassCatalogue catalogue;
+    private final Map<EditClass, Integer> editClassCounts;
+
+    /**
+     * Creates a new counter object for the given catalogue of edit classes.
+     * @param catalogue The catalogue whose edit classes to match and count.
+     */
+    public EditClassCount(final EditClassCatalogue catalogue) {
+        this.catalogue = catalogue;
+        this.editClassCounts = new HashMap<>();
+        catalogue.all().forEach(e -> editClassCounts.put(e, 0));
+    }
+
+    /**
+     * Increment the count for the given edit class.
+     * The given edit class is assumed to be part of this counts catalog.
+     * @see EditClassCount#EditClassCount(EditClassCatalogue)
+     * @param editClass The edit class whose count to increase by one.
+     */
+    public void increment(final EditClass editClass) {
+        editClassCounts.computeIfPresent(editClass, (p, i) -> i + 1);
+    }
+
+    @Override
+    public String toCSV(final String delimiter) {
+        return catalogue.all().stream()
+                .map(editClassCounts::get)
+                .map(Object::toString)
+                .collect(Collectors.joining(delimiter));
+    }
+}
diff --git a/src/main/java/org/variantsync/diffdetective/analysis/ElementaryPatternCount.java b/src/main/java/org/variantsync/diffdetective/analysis/ElementaryPatternCount.java
deleted file mode 100644
index ac8796d4f..000000000
--- a/src/main/java/org/variantsync/diffdetective/analysis/ElementaryPatternCount.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package org.variantsync.diffdetective.analysis;
-
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPatternCatalogue;
-import org.variantsync.diffdetective.util.CSV;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-/**
- * Class to gather statistics about matching elementary edit patterns.
- * @author Paul Bittner
- */
-public class ElementaryPatternCount implements CSV {
-    private final ElementaryPatternCatalogue catalogue;
-    private final Map<ElementaryPattern, Integer> patterncounts;
-
-    /**
-     * Creates a new counter object for the given catalogue of elementary edit patterns.
-     * @param catalogue The catalogue whose patterns to match and count.
-     */
-    public ElementaryPatternCount(final ElementaryPatternCatalogue catalogue) {
-        this.catalogue = catalogue;
-        this.patterncounts = new HashMap<>();
-        catalogue.all().forEach(e -> patterncounts.put(e, 0));
-    }
-
-    /**
-     * Increment the count for the given elementary pattern.
-     * The given pattern is assumed to be part of this counts catalog.
-     * @see ElementaryPatternCount#ElementaryPatternCount(ElementaryPatternCatalogue)
-     * @param pattern The pattern whose count to increase by one.
-     */
-    public void increment(final ElementaryPattern pattern) {
-        patterncounts.computeIfPresent(pattern, (p, i) -> i + 1);
-    }
-
-    @Override
-    public String toCSV(final String delimiter) {
-        return catalogue.all().stream()
-                .map(patterncounts::get)
-                .map(Object::toString)
-                .collect(Collectors.joining(delimiter));
-    }
-}
diff --git a/src/main/java/org/variantsync/diffdetective/analysis/HistoryAnalysis.java b/src/main/java/org/variantsync/diffdetective/analysis/HistoryAnalysis.java
index 4681795b7..3d44e79c3 100644
--- a/src/main/java/org/variantsync/diffdetective/analysis/HistoryAnalysis.java
+++ b/src/main/java/org/variantsync/diffdetective/analysis/HistoryAnalysis.java
@@ -23,7 +23,7 @@
 import java.util.function.Consumer;
 
 /**
- * An analyses that is performed for the entire commit histories of each given git repositoy.
+ * An analyses that is performed for the entire commit histories of each given git repository.
  * @param repositoriesToAnalyze The repositories whose commit history should be analyzed.
  * @param outputDir The directory to which any produced results should be written.
  * @param commitsToProcessPerThread Number of commits that should be processed by each single thread if multithreading is used.
diff --git a/src/main/java/org/variantsync/diffdetective/analysis/PatchStatistics.java b/src/main/java/org/variantsync/diffdetective/analysis/PatchStatistics.java
index 18d439134..7150da219 100644
--- a/src/main/java/org/variantsync/diffdetective/analysis/PatchStatistics.java
+++ b/src/main/java/org/variantsync/diffdetective/analysis/PatchStatistics.java
@@ -1,29 +1,29 @@
 package org.variantsync.diffdetective.analysis;
 
 import org.variantsync.diffdetective.diff.PatchDiff;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPatternCatalogue;
+import org.variantsync.diffdetective.editclass.EditClassCatalogue;
 import org.variantsync.diffdetective.util.CSV;
 
 /**
  * Statistics for processing a patch in a commit.
  * @param patchDiff The diff of the processed patch.
- * @param elementaryPatternCount Count statistics for the elementary edit patterns matched to the edits in the patch.
+ * @param editClassCount Count statistics for the edit class matched to the edits in the patch.
  * @author Paul Bittner
  */
 public record PatchStatistics(
         PatchDiff patchDiff,
-        ElementaryPatternCount elementaryPatternCount) implements CSV {
+        EditClassCount editClassCount) implements CSV {
     /**
-     * Creates empty patch statistics for the given catalogue of edit patterns.
+     * Creates empty patch statistics for the given catalogue of edit classes.
      * @param patch The patch to gather statistics for.
-     * @param catalogue A catalogue of elementary edit patterns which should be used for classifying edits.
+     * @param catalogue A catalogue of edit classes which should be used for classifying edits.
      */
-    public PatchStatistics(final PatchDiff patch, final ElementaryPatternCatalogue catalogue) {
-        this(patch, new ElementaryPatternCount(catalogue));
+    public PatchStatistics(final PatchDiff patch, final EditClassCatalogue catalogue) {
+        this(patch, new EditClassCount(catalogue));
     }
 
     @Override
     public String toCSV(final String delimiter) {
-        return patchDiff.getCommitHash() + delimiter + patchDiff.getFileName() + delimiter + elementaryPatternCount.toCSV(delimiter);
+        return patchDiff.getCommitHash() + delimiter + patchDiff.getFileName() + delimiter + editClassCount.toCSV(delimiter);
     }
 }
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/CodeType.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/CodeType.java
deleted file mode 100644
index b81233f70..000000000
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/CodeType.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package org.variantsync.diffdetective.diff.difftree;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * The type of nodes in a {@link DiffTree}.
- * Corresponds to the tau function from our paper.
- */
-public enum CodeType {
-    // Mapping types
-    IF("if"),
-    ENDIF("endif"),
-    ELSE("else"),
-    ELIF("elif"),
-
-    // Code types
-    CODE("code"),
-
-    // Extra type for the root
-    ROOT("ROOT");
-
-    public final String name;
-    CodeType(String name) {
-        this.name = name;
-    }
-
-    /**
-     * Returns true iff this code type represents a conditional feature annotation (i.e., if or elif).
-     */
-    public boolean isConditionalMacro() {
-        return this == IF || this == ELIF;
-    }
-
-    /**
-     * Returns true iff this code type represents a feature mapping.
-     */
-    public boolean isMacro() {
-        return this != ROOT && this != CODE;
-    }
-
-    final static Pattern annotationRegex = Pattern.compile("^[+-]?\\s*#\\s*(if|endif|else|elif)");
-
-    /**
-     * Parses the code type from a line taken from a text-based diff.
-     * @param line A line in a patch.
-     * @return The type of edit of <code>line</code>.
-     */
-    public static CodeType ofDiffLine(String line) {
-        Matcher matcher = annotationRegex.matcher(line);
-        if (matcher.find()) {
-            String id = matcher.group(1);
-            if (id.equals(IF.name)) {
-                return IF;
-            } else if (id.equals(ENDIF.name)) {
-                return ENDIF;
-            } else if (id.equals(ELSE.name)) {
-                return ELSE;
-            } else if (id.equals(ELIF.name)) {
-                return ELIF;
-            }
-        }
-
-        return CODE;
-    }
-
-    /**
-     * Creates a CodeType from its value names.
-     * @see Enum#name()
-     * @param name a string that equals the name of one value of this enum (ignoring case)
-     * @return The CodeType that has the given name
-     */
-    public static CodeType fromName(final String name) {
-        for (CodeType candidate : values()) {
-            if (candidate.toString().equalsIgnoreCase(name)) {
-                return candidate;
-            }
-        }
-
-        throw new IllegalArgumentException("Given string \"" + name + "\" is not the name of a CodeType.");
-    }
-
-    /**
-     * Prints this value as a macro annotation (i.e., starting with #).
-     */
-    public String asMacroText() {
-        return "#" + this.name;
-    }
-}
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/DiffGraph.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/DiffGraph.java
index a4d7f13f3..94709153d 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/DiffGraph.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/DiffGraph.java
@@ -12,13 +12,6 @@ public final class DiffGraph {
 
     private DiffGraph() {}
 
-    /**
-     * Returns true iff the given node has no parents (i.e., is a root candidate).
-     */
-    public static boolean hasNoParents(final DiffNode node) {
-        return node.getBeforeParent() == null && node.getAfterParent() == null;
-    }
-
     /**
      * Invokes {@link DiffGraph#fromNodes(Collection, DiffTreeSource)} )} with an unknown DiffTreeSource.
      */
@@ -37,7 +30,7 @@ public static DiffTree fromNodes(final Collection<DiffNode> nodes, final DiffTre
         final DiffNode newRoot = DiffNode.createRoot();
         newRoot.setLabel(DIFFGRAPH_LABEL);
         nodes.stream()
-                .filter(DiffGraph::hasNoParents)
+                .filter(DiffNode::isRoot)
                 .forEach(n ->
                         n.diffType.matchBeforeAfter(
                                 () -> newRoot.addBeforeChild(n),
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/DiffNode.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/DiffNode.java
index b0f764a7f..11aebf96b 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/DiffNode.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/DiffNode.java
@@ -17,7 +17,7 @@
 /**
  * Implementation of a node in a {@link DiffTree}.
  *
- * Includes methods for creating a node by getting its code type and diff type and for getting the feature mapping of the node.
+ * Includes methods for creating a node by getting its node type and diff type and for getting the feature mapping of the node.
  * @author Paul Bittner, Sören Viegener, Benjamin Moosherr
  */
 public class DiffNode {
@@ -30,10 +30,10 @@ public class DiffNode {
     public final DiffType diffType;
 
     /**
-     * The code type of this node, which determines the type of the represented
+     * The node type of this node, which determines the type of the represented
      * element in the diff (e.g., mapping or artifact).
      */
-    public final CodeType codeType;
+    public final NodeType nodeType;
 
     private boolean isMultilineMacro = false;
 
@@ -73,30 +73,30 @@ public class DiffNode {
     /**
      * Creates a DiffNode with the given parameters.
      * @param diffType The type of change made to this node.
-     * @param codeType The type of this node (i.e., mapping or artifact).
+     * @param nodeType The type of this node (i.e., mapping or artifact).
      * @param fromLines The starting line number of the corresponding text.
      * @param toLines The ending line number of the corresponding text.
-     * @param featureMapping The formula stored in this node. Should be null for code (/artifact) nodes.
+     * @param featureMapping The formula stored in this node. Should be null for artifact nodes.
      * @param label A text label containing information to identify the node (such as the corresponding source code).
      */
-    public DiffNode(DiffType diffType, CodeType codeType,
+    public DiffNode(DiffType diffType, NodeType nodeType,
                     DiffLineNumber fromLines, DiffLineNumber toLines,
                     Node featureMapping, String label) {
-        this(diffType, codeType, fromLines, toLines, featureMapping,
+        this(diffType, nodeType, fromLines, toLines, featureMapping,
                 new ArrayList<String>(Arrays.asList(StringUtils.LINEBREAK_REGEX.split(label, -1))));
     }
 
     /**
-     * The same as {@link DiffNode#DiffNode(DiffType, CodeType, DiffLineNumber, DiffLineNumber, Node, String)}
+     * The same as {@link DiffNode#DiffNode(DiffType, NodeType, DiffLineNumber, DiffLineNumber, Node, String)}
      * but with the label separated into different lines of text instead of as a single String with newlines.
      */
-    public DiffNode(DiffType diffType, CodeType codeType,
+    public DiffNode(DiffType diffType, NodeType nodeType,
                     DiffLineNumber fromLines, DiffLineNumber toLines,
                     Node featureMapping, List<String> lines) {
         this.childOrder = new ArrayList<>();
 
         this.diffType = diffType;
-        this.codeType = codeType;
+        this.nodeType = nodeType;
         this.from.set(fromLines);
         this.to.set(toLines);
         this.featureMapping = featureMapping;
@@ -110,8 +110,8 @@ public DiffNode(DiffType diffType, CodeType codeType,
     public static DiffNode createRoot() {
         return new DiffNode(
                 DiffType.NON,
-                CodeType.ROOT,
-                new DiffLineNumber(1, 1, 1),
+                NodeType.IF,
+                DiffLineNumber.Invalid(),
                 DiffLineNumber.Invalid(),
                 FixTrueFalse.True,
                 new ArrayList<>()
@@ -120,19 +120,19 @@ public static DiffNode createRoot() {
 
     /**
      * Creates an artifact node with the given parameters.
-     * For parameter descriptions, see {@link DiffNode#DiffNode(DiffType, CodeType, DiffLineNumber, DiffLineNumber, Node, String)}.
+     * For parameter descriptions, see {@link DiffNode#DiffNode(DiffType, NodeType, DiffLineNumber, DiffLineNumber, Node, String)}.
      * The <code>code</code> parameter will be set as the node's label.
      */
-    public static DiffNode createCode(DiffType diffType, DiffLineNumber fromLines, DiffLineNumber toLines, String code) {
-        return new DiffNode(diffType, CodeType.CODE, fromLines, toLines, null, code);
+    public static DiffNode createArtifact(DiffType diffType, DiffLineNumber fromLines, DiffLineNumber toLines, String code) {
+        return new DiffNode(diffType, NodeType.ARTIFACT, fromLines, toLines, null, code);
     }
 
     /**
-     * The same as {@link DiffNode#createCode(DiffType, DiffLineNumber, DiffLineNumber, String)} but with the code for the label
+     * The same as {@link DiffNode#createArtifact(DiffType, DiffLineNumber, DiffLineNumber, String)} but with the code for the label
      * given as a list of individual lines instead of a single String with linebreaks to identify newlines.
      */
-    public static DiffNode createCode(DiffType diffType, DiffLineNumber fromLines, DiffLineNumber toLines, List<String> lines) {
-        return new DiffNode(diffType, CodeType.CODE, fromLines, toLines, null, lines);
+    public static DiffNode createArtifact(DiffType diffType, DiffLineNumber fromLines, DiffLineNumber toLines, List<String> lines) {
+        return new DiffNode(diffType, NodeType.ARTIFACT, fromLines, toLines, null, lines);
     }
 
     /**
@@ -651,9 +651,9 @@ public Lines getLinesAfterEdit() {
 
     /**
      * Returns the formula that is stored in this node.
-     * The formula is null for artifact nodes (i.e., {@link CodeType#CODE}).
+     * The formula is null for artifact nodes (i.e., {@link NodeType#ARTIFACT}).
      * The formula is not null for mapping nodes
-     * @see CodeType#isMacro
+     * @see NodeType#isAnnotation
      */
     public Node getDirectFeatureMapping() {
         return featureMapping;
@@ -691,9 +691,9 @@ public boolean isMultilineMacro() {
 
     /**
      * Returns the full feature mapping formula of this node.
-     * The feature mapping of an {@link CodeType#IF} node is its {@link DiffNode#getDirectFeatureMapping direct feature mapping}.
-     * The feature mapping of {@link CodeType#ELSE} and {@link CodeType#ELIF} nodes is determined by all formulas in the respective if-elif-else chain.
-     * The feature mapping of an {@link CodeType#CODE artifact} node is the feature mapping of its parent.
+     * The feature mapping of an {@link NodeType#IF} node is its {@link DiffNode#getDirectFeatureMapping direct feature mapping}.
+     * The feature mapping of {@link NodeType#ELSE} and {@link NodeType#ELIF} nodes is determined by all formulas in the respective if-elif-else chain.
+     * The feature mapping of an {@link NodeType#ARTIFACT artifact} node is the feature mapping of its parent.
      * See Equation (1) in our paper (+ its extension to time for variation tree diffs described in Section 3.1).
      * @param parentOf Function that returns the parent of a node.
      *                 This function decides whether the before or after parent should be visited.
@@ -717,15 +717,15 @@ private List<Node> getFeatureMappingClauses(final Function<DiffNode, DiffNode> p
                 if (ancestor.isElif()) {
                     and.add(negate(ancestor.getDirectFeatureMapping()));
                 } else {
-                    throw new RuntimeException("Expected If or Elif above Else or Elif but got " + ancestor.codeType + " from " + ancestor);
-                    // Assert.assertTrue(ancestor.isCode());
+                    throw new RuntimeException("Expected If or Elif above Else or Elif but got " + ancestor.nodeType + " from " + ancestor);
+                    // Assert.assertTrue(ancestor.isArtifact());
                 }
                 ancestor = parentOf.apply(ancestor);
             }
             and.add(negate(ancestor.getDirectFeatureMapping()));
 
             return and;
-        } else if (isCode()) {
+        } else if (isArtifact()) {
             return parent.getFeatureMappingClauses(parentOf);
         }
 
@@ -745,9 +745,9 @@ private Node getFeatureMapping(Function<DiffNode, DiffNode> parentOf) {
 
     /**
      * Returns the full feature mapping formula of this node before the edit.
-     * The feature mapping of an {@link CodeType#IF} node is its {@link DiffNode#getDirectFeatureMapping direct feature mapping}.
-     * The feature mapping of {@link CodeType#ELSE} and {@link CodeType#ELIF} nodes is determined by all formulas in the respective if-elif-else chain.
-     * The feature mapping of an {@link CodeType#CODE artifact} node is the feature mapping of its parent.
+     * The feature mapping of an {@link NodeType#IF} node is its {@link DiffNode#getDirectFeatureMapping direct feature mapping}.
+     * The feature mapping of {@link NodeType#ELSE} and {@link NodeType#ELIF} nodes is determined by all formulas in the respective if-elif-else chain.
+     * The feature mapping of an {@link NodeType#ARTIFACT artifact} node is the feature mapping of its parent.
      * See Equation (1) in our paper (+ its extension to time for variation tree diffs described in Section 3.1).
      * @return The feature mapping of this node for the given parent edges.
      */
@@ -757,9 +757,9 @@ public Node getBeforeFeatureMapping() {
 
     /**
      * Returns the full feature mapping formula of this node after the edit.
-     * The feature mapping of an {@link CodeType#IF} node is its {@link DiffNode#getDirectFeatureMapping direct feature mapping}.
-     * The feature mapping of {@link CodeType#ELSE} and {@link CodeType#ELIF} nodes is determined by all formulas in the respective if-elif-else chain.
-     * The feature mapping of an {@link CodeType#CODE artifact} node is the feature mapping of its parent.
+     * The feature mapping of an {@link NodeType#IF} node is its {@link DiffNode#getDirectFeatureMapping direct feature mapping}.
+     * The feature mapping of {@link NodeType#ELSE} and {@link NodeType#ELIF} nodes is determined by all formulas in the respective if-elif-else chain.
+     * The feature mapping of an {@link NodeType#ARTIFACT artifact} node is the feature mapping of its parent.
      * See Equation (1) in our paper (+ its extension to time for variation tree diffs described in Section 3.1).
      * @return The feature mapping of this node for the given parent edges.
      */
@@ -807,7 +807,7 @@ private List<Node> getPresenceCondition(Function<DiffNode, DiffNode> parentOf) {
             }
 
             return clauses;
-        } else if (isCode()) {
+        } else if (isArtifact()) {
             return parent.getPresenceCondition(parentOf);
         }
 
@@ -927,58 +927,49 @@ public DiffType getDiffType() {
     }
 
     /**
-     * Returns true if this node represents an ELIF macro.
-     * @see CodeType#ELIF
+     * Returns true if this node represents an ELIF annotation.
+     * @see NodeType#ELIF
      */
     public boolean isElif() {
-        return this.codeType.equals(CodeType.ELIF);
+        return this.nodeType.equals(NodeType.ELIF);
     }
 
     /**
      * Returns true if this node represents a conditional annotation.
-     * @see CodeType#IF
+     * @see NodeType#IF
      */
     public boolean isIf() {
-        return this.codeType.equals(CodeType.IF);
+        return this.nodeType.equals(NodeType.IF);
     }
 
     /**
      * Returns true if this node is an artifact node.
-     * @see CodeType#CODE
-     */
-    public boolean isCode() {
-        return this.codeType.equals(CodeType.CODE);
-    }
-
-    /**
-     * Returns true if this node represents the end of an annotation block.
-     * Such a node should not be part of any {@link DiffTree}.
-     * @see CodeType#ENDIF
+     * @see NodeType#ARTIFACT
      */
-    public boolean isEndif() {
-        return this.codeType.equals(CodeType.ENDIF);
+    public boolean isArtifact() {
+        return this.nodeType.equals(NodeType.ARTIFACT);
     }
 
     /**
-     * Returns true if this node represents an ELSE macro.
-     * @see CodeType#ELSE
+     * Returns true if this node represents an ELSE annotation.
+     * @see NodeType#ELSE
      */
     public boolean isElse() {
-        return this.codeType.equals(CodeType.ELSE);
+        return this.nodeType.equals(NodeType.ELSE);
     }
 
     /**
-     * Returns true if this node is a root node (i.e., it has {@link CodeType#ROOT}.
+     * Returns true if this node is a root node (has no parents).
      */
     public boolean isRoot() {
-        return this.codeType.equals(CodeType.ROOT);
+        return getBeforeParent() == null && getAfterParent() == null;
     }
 
     /**
-     * Returns {@link CodeType#isMacro()} for this node's {@link DiffNode#codeType}.
+     * Returns {@link NodeType#isAnnotation()} for this node's {@link DiffNode#nodeType}.
      */
-    public boolean isMacro() {
-        return this.codeType.isMacro();
+    public boolean isAnnotation() {
+        return this.nodeType.isAnnotation();
     }
 
     /**
@@ -991,6 +982,7 @@ public boolean isMacro() {
      * {@code 2^26}, this id will no longer be unique.
      */
     public int getID() {
+        // Add one to ensure invalid (negative) line numbers don't cause issues.
         int lineNumber = 1 + from.inDiff;
         Assert.assertTrue((lineNumber << 2*ID_OFFSET) >> 2*ID_OFFSET == lineNumber);
 
@@ -999,13 +991,13 @@ public int getID() {
         id <<= ID_OFFSET;
         id += diffType.ordinal();
         id <<= ID_OFFSET;
-        id += codeType.ordinal();
+        id += nodeType.ordinal();
         return id;
     }
 
     /**
      * Reconstructs a node from the given id and sets the given label.
-     * An id uniquely determines a node's {@link DiffNode#codeType}, {@link DiffNode#diffType}, and {@link DiffLineNumber#inDiff line number in the diff}.
+     * An id uniquely determines a node's {@link DiffNode#nodeType}, {@link DiffNode#diffType}, and {@link DiffLineNumber#inDiff line number in the diff}.
      * The almost-inverse function is {@link DiffNode#getID()} but the conversion is not lossless.
      * @param id The id from which to reconstruct the node.
      * @param label The label the node should have.
@@ -1014,13 +1006,13 @@ public int getID() {
     public static DiffNode fromID(final int id, String label) {
         final int lowestBitsMask = (1 << ID_OFFSET) - 1;
 
-        final int codeTypeOrdinal = id & lowestBitsMask;
+        final int nodeTypeOrdinal = id & lowestBitsMask;
         final int diffTypeOrdinal = (id >> ID_OFFSET) & lowestBitsMask;
         final int fromInDiff      = (id >> (2*ID_OFFSET)) - 1;
 
         return new DiffNode(
                 DiffType.values()[diffTypeOrdinal],
-                CodeType.values()[codeTypeOrdinal],
+                NodeType.values()[nodeTypeOrdinal],
                 new DiffLineNumber(fromInDiff, DiffLineNumber.InvalidLineNumber, DiffLineNumber.InvalidLineNumber),
                 DiffLineNumber.Invalid(),
                 null,
@@ -1115,9 +1107,9 @@ public String toTextDiff() {
         }
 
         // Add endif after macro
-        if (isMacro()) {
+        if (isAnnotation() && !isRoot()) {
             diff
-                    .append(toTextDiffLine(this.diffType, List.of(CodeType.ENDIF.asMacroText())))
+                    .append(toTextDiffLine(this.diffType, List.of("#endif")))
                     .append(StringUtils.LINEBREAK);
         }
 
@@ -1127,12 +1119,12 @@ public String toTextDiff() {
     @Override
     public String toString() {
         String s;
-        if (isCode()) {
-            s = String.format("%s_%s from %d to %d", diffType, codeType, from.inDiff, to.inDiff);
+        if (isArtifact()) {
+            s = String.format("%s_%s from %d to %d", diffType, nodeType, from.inDiff, to.inDiff);
         } else if (isRoot()) {
             s = "ROOT";
         } else {
-            s = String.format("%s_%s from %d to %d with \"%s\"", diffType, codeType,
+            s = String.format("%s_%s from %d to %d with \"%s\"", diffType, nodeType,
                     from.inDiff, to.inDiff, featureMapping);
         }
         return s;
@@ -1143,7 +1135,7 @@ public boolean equals(Object o) {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;
         DiffNode diffNode = (DiffNode) o;
-        return isMultilineMacro == diffNode.isMultilineMacro && diffType == diffNode.diffType && codeType == diffNode.codeType && from.equals(diffNode.from) && to.equals(diffNode.to) && Objects.equals(featureMapping, diffNode.featureMapping) && lines.equals(diffNode.lines);
+        return isMultilineMacro == diffNode.isMultilineMacro && diffType == diffNode.diffType && nodeType == diffNode.nodeType && from.equals(diffNode.from) && to.equals(diffNode.to) && Objects.equals(featureMapping, diffNode.featureMapping) && lines.equals(diffNode.lines);
     }
 
     /**
@@ -1156,6 +1148,6 @@ public boolean equals(Object o) {
      */
     @Override
     public int hashCode() {
-        return Objects.hash(diffType, codeType, isMultilineMacro, from, to, featureMapping, lines);
+        return Objects.hash(diffType, nodeType, isMultilineMacro, from, to, featureMapping, lines);
     }
 }
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/DiffTree.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/DiffTree.java
index 9ae5107ad..3dada3388 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/DiffTree.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/DiffTree.java
@@ -73,7 +73,7 @@ public static DiffResult<DiffTree> fromDiff(final String diff, boolean collapseM
      * So just lines preceded by "+", "-", or " " are expected.
      * @param p Path to a diff file.
      * @param collapseMultipleCodeLines Set to true if subsequent lines of source code with
-     *                                  the same {@link CodeType type of change} should be
+     *                                  the same {@link NodeType type of change} should be
      *                                  collapsed into a single source code node representing
      *                                  all lines at once.
      * @param ignoreEmptyLines Set to true if empty lines should not be included in the DiffTree.
@@ -95,7 +95,7 @@ public static DiffResult<DiffTree> fromFile(final Path p, boolean collapseMultip
      * So just lines preceded by "+", "-", or " " are expected.
      * @param diff The diff as text. Lines should be separated by a newline character. Each line should be preceded by either "+", "-", or " ".
      * @param collapseMultipleCodeLines Set to true if subsequent lines of source code with
-     *                                  the same {@link CodeType type of change} should be
+     *                                  the same {@link NodeType type of change} should be
      *                                  collapsed into a single source code node representing
      *                                  all lines at once.
      * @param ignoreEmptyLines Set to true if empty lines should not be included in the DiffTree.
@@ -205,8 +205,8 @@ public List<DiffNode> computeAllNodesThat(final Predicate<DiffNode> property) {
      * Returns all artifact nodes of this DiffTree.
      * @see DiffTree#computeAllNodesThat
      */
-    public List<DiffNode> computeCodeNodes() {
-        return computeAllNodesThat(DiffNode::isCode);
+    public List<DiffNode> computeArtifactNodes() {
+        return computeAllNodesThat(DiffNode::isArtifact);
     }
 
     /**
@@ -214,7 +214,7 @@ public List<DiffNode> computeCodeNodes() {
      * @see DiffTree#computeAllNodesThat
      */
     public List<DiffNode> computeAnnotationNodes() {
-        return computeAllNodesThat(DiffNode::isMacro);
+        return computeAllNodesThat(DiffNode::isAnnotation);
     }
 
     /**
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/DiffType.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/DiffType.java
index 0056253df..a2f917889 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/DiffType.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/DiffType.java
@@ -32,12 +32,12 @@ public static DiffType thatExistsOnlyAt(Time time) {
 
     /**
      * Runs the given procedure depending whether this diff types exists at the respective times.
-     * Runs the first given procedure if the edited artefact existed before the edit (DiffType != ADD).
-     * Runs the second given procedure if the edited artefact exists after the edit (DiffType != REM).
-     * Note: Runs both procedures sequentially if the artefact was not edited and thus
+     * Runs the first given procedure if the edited artifact existed before the edit (DiffType != ADD).
+     * Runs the second given procedure if the edited artifact exists after the edit (DiffType != REM).
+     * Note: Runs both procedures sequentially if the artifact was not edited and thus
      *       exists before and after the edit (DiffType = NON).
-     * @param ifExistsBefore Procedure to run if the edited artefact existed before the edit (DiffType != ADD).
-     * @param ifExistsAfter Procedure to run if the edited artefact exists after the edit (DiffType != REM).
+     * @param ifExistsBefore Procedure to run if the edited artifact existed before the edit (DiffType != ADD).
+     * @param ifExistsAfter Procedure to run if the edited artifact exists after the edit (DiffType != REM).
      */
     public void matchBeforeAfter(final Runnable ifExistsBefore, final Runnable ifExistsAfter) {
         if (this != DiffType.ADD) {
@@ -52,7 +52,7 @@ public void matchBeforeAfter(final Runnable ifExistsBefore, final Runnable ifExi
      * Runs the given task once for each argument that would exist at a certain time if it had this diff type.
      * Runs task on ifExistsBefore if the value existed before the edit (DiffType != ADD).
      * Runs task on ifExistsAfter if the value exists after the edit (DiffType != ADD).
-     * Note: Runs task on both arguments sequentially if the artefact was not edited (DiffType == NON).
+     * Note: Runs task on both arguments sequentially if the artifact was not edited (DiffType == NON).
      *
      * @param ifExistsBefore Argument that is valid if the diff did not add.
      * @param ifExistsAfter Argument that is valid if the edit did not remove.
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/NodeType.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/NodeType.java
new file mode 100644
index 000000000..aaf3a5660
--- /dev/null
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/NodeType.java
@@ -0,0 +1,72 @@
+package org.variantsync.diffdetective.diff.difftree;
+
+import org.variantsync.diffdetective.diff.difftree.parse.MultiLineMacroParser;
+
+/**
+ * The type of nodes in a {@link DiffTree}.
+ * Corresponds to the tau function from our paper.
+ */
+public enum NodeType {
+    // Mapping types
+    IF("if"),
+    ELSE("else"),
+    ELIF("elif"),
+
+    // Artifact types
+    ARTIFACT("artifact");
+
+    public final String name;
+    NodeType(String name) {
+        this.name = name;
+    }
+
+    /**
+     * Returns true iff this node type represents a conditional feature annotation (i.e., if or elif).
+     */
+    public boolean isConditionalAnnotation() {
+        return this == IF || this == ELIF;
+    }
+
+    /**
+     * Returns true iff this node type represents a feature mapping.
+     */
+    public boolean isAnnotation() {
+        return this != ARTIFACT;
+    }
+
+    /**
+     * Parses the node type from a line taken from a text-based diff.
+     * @param line A line in a patch.
+     * @return The type of edit of <code>line</code>.
+     */
+    public static NodeType ofDiffLine(String line) {
+        String macro = MultiLineMacroParser.conditionalMacroName(line);
+        if (macro != null) {
+            if (macro.equals(IF.name)) {
+                return IF;
+            } else if (macro.equals(ELSE.name)) {
+                return ELSE;
+            } else if (macro.equals(ELIF.name)) {
+                return ELIF;
+            }
+        }
+
+        return ARTIFACT;
+    }
+
+    /**
+     * Creates a NodeType from its value names.
+     * @see Enum#name()
+     * @param name a string that equals the name of one value of this enum (ignoring case)
+     * @return The NodeType that has the given name
+     */
+    public static NodeType fromName(final String name) {
+        for (NodeType candidate : values()) {
+            if (candidate.toString().equalsIgnoreCase(name)) {
+                return candidate;
+            }
+        }
+
+        throw new IllegalArgumentException("Given string \"" + name + "\" is not the name of a NodeType.");
+    }
+}
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/filter/DiffTreeFilter.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/filter/DiffTreeFilter.java
index 88b604ed5..69b63feae 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/filter/DiffTreeFilter.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/filter/DiffTreeFilter.java
@@ -3,7 +3,7 @@
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
 import org.variantsync.diffdetective.diff.difftree.DiffTree;
 
-import static org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns.*;
+import static org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses.*;
 
 /**
  * A filter on DiffTrees that is equipped with some metadata T (e.g., for debugging or logging).
@@ -28,13 +28,13 @@ public static TaggedPredicate<String, DiffTree> Any() {
 
     /**
      * Returns a tagged predicate that returns true iff
-     * the DiffTree has more than one artifact node ({@link DiffNode#isCode()}.
+     * the DiffTree has more than one artifact node ({@link DiffNode#isArtifact()}.
      * The predicate is tagged with a String description of the predicate.
      */
-    public static TaggedPredicate<String, DiffTree> moreThanOneCodeNode() {
+    public static TaggedPredicate<String, DiffTree> moreThanOneArtifactNode() {
         return new TaggedPredicate<>(
-                "has more than one elementary pattern",
-                tree -> tree.count(DiffNode::isCode) > 1
+                "has more than one artifact node",
+                tree -> tree.count(DiffNode::isArtifact) > 1
         );
     }
 
@@ -64,18 +64,18 @@ public static TaggedPredicate<String, DiffTree> consistent() {
 
     /**
      * Returns a tagged predicate that returns true iff
-     * the DiffTree has at least one artifact node ({@link DiffNode#isCode()})
-     * that does not match any pattern of
-     * {@link org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns#AddToPC},
-     * {@link org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns#RemFromPC},
-     * {@link org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns#Untouched}.
+     * the DiffTree has at least one artifact node ({@link DiffNode#isArtifact()})
+     * that does not match any edit class of
+     * {@link org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses#AddToPC},
+     * {@link org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses#RemFromPC},
+     * {@link org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses#Untouched}.
      * The predicate is tagged with a String description of the predicate.
      */
     public static TaggedPredicate<String, DiffTree> hasAtLeastOneEditToVariability() {
         return new TaggedPredicate<>(
                 "has edits to variability",
                 tree -> tree.anyMatch(n ->
-                        n.isCode() && !AddToPC.matches(n) && !RemFromPC.matches(n) && !Untouched.matches(n)
+                        n.isArtifact() && !AddToPC.matches(n) && !RemFromPC.matches(n) && !Untouched.matches(n)
                 )
         );
     }
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/parse/DiffNodeParser.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/parse/DiffNodeParser.java
index f0dea18b1..179755c49 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/parse/DiffNodeParser.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/parse/DiffNodeParser.java
@@ -2,7 +2,7 @@
 
 import org.prop4j.Node;
 import org.variantsync.diffdetective.diff.DiffLineNumber;
-import org.variantsync.diffdetective.diff.difftree.CodeType;
+import org.variantsync.diffdetective.diff.difftree.NodeType;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
 import org.variantsync.diffdetective.diff.difftree.DiffType;
 import org.variantsync.diffdetective.feature.CPPAnnotationParser;
@@ -23,15 +23,15 @@ public record DiffNodeParser(CPPAnnotationParser annotationParser) {
      * Parses the given line from a text-based diff to a DiffNode.
      *
      * @param diffLine The line which the new node represents.
-     * @return A DiffNode with a code type, diff type, label, and feature mapping.
+     * @return A DiffNode with a node type, diff type, label, and feature mapping.
      */
     public DiffNode fromDiffLine(String diffLine) throws IllFormedAnnotationException {
         DiffType diffType = DiffType.ofDiffLine(diffLine);
-        CodeType codeType = CodeType.ofDiffLine(diffLine);
+        NodeType nodeType = NodeType.ofDiffLine(diffLine);
         String label = diffLine.isEmpty() ? diffLine : diffLine.substring(1);
         Node featureMapping;
 
-        if (codeType == CodeType.CODE || codeType == CodeType.ENDIF || codeType == CodeType.ELSE) {
+        if (nodeType == NodeType.ARTIFACT || nodeType == NodeType.ELSE) {
             featureMapping = null;
         } else {
             featureMapping = annotationParser.parseDiffLine(diffLine);
@@ -40,7 +40,7 @@ public DiffNode fromDiffLine(String diffLine) throws IllFormedAnnotationExceptio
         ArrayList<String> lines = new ArrayList<>();
         lines.add(label);
         return new DiffNode(
-                diffType, codeType,
+                diffType, nodeType,
                 DiffLineNumber.Invalid(), DiffLineNumber.Invalid(),
                 featureMapping,
                 lines);
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/parse/DiffTreeParser.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/parse/DiffTreeParser.java
index 5d48c9102..dcf78b002 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/parse/DiffTreeParser.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/parse/DiffTreeParser.java
@@ -55,7 +55,7 @@ public static DiffResult<DiffTree> createDiffTree(
      *
      * @param fullDiff                  The full diff of a patch obtained from a buffered reader.
      * @param collapseMultipleCodeLines Whether multiple consecutive code lines with the same diff type
-     *                                  should be collapsed into a single code node.
+     *                                  should be collapsed into a single artifact node.
      * @param ignoreEmptyLines          Whether empty lines (no matter if they are added removed
      *                                  or remained unchanged) should be ignored.
      * @param nodeParser                The parser to parse individual lines in the diff to DiffNodes.
@@ -74,7 +74,7 @@ public static DiffResult<DiffTree> createDiffTree(
         final DiffLineNumber lineNo = new DiffLineNumber(0, 0, 0);
         final DiffLineNumber lastLineNo = DiffLineNumber.Copy(lineNo);
 
-        DiffNode lastCode = null;
+        DiffNode lastArtifact = null;
         final AtomicReference<DiffResult<DiffTree>> error = new AtomicReference<>();
         final BiConsumer<DiffError, String> errorPropagation = (errType, message) -> {
             if (error.get() == null) {
@@ -115,8 +115,8 @@ public static DiffResult<DiffTree> createDiffTree(
 
             switch (isMLMacro.type()) {
                 case Success: {
-                    if (lastCode != null) {
-                        lastCode = endCodeBlock(lastCode, lastLineNo);
+                    if (lastArtifact != null) {
+                        lastArtifact = endCodeBlock(lastArtifact, lastLineNo);
                     }
                     // This line belongs to a multiline macro and was handled, so go to the next line.
                     continue;
@@ -129,34 +129,11 @@ public static DiffResult<DiffTree> createDiffTree(
                 case NotMyDuty: break;
             }
 
-            // This gets the code type and diff type of the current line and creates a node
-            // Note that the node is not yet added to the diff tree.
-            final DiffNode newNode;
-            try {
-                newNode = nodeParser.fromDiffLine(currentLine);
-            } catch (IllFormedAnnotationException e) {
-                return DiffResult.Failure(e);
-            }
-
-            // collapse multiple code lines
-            if (lastCode != null) {
-                if (collapseMultipleCodeLines && newNode.isCode() && lastCode.diffType.equals(newNode.diffType)) {
-                    lastCode.addLines(newNode.getLines());
-                    continue;
-                } else {
-                    lastCode = endCodeBlock(lastCode, lastLineNo);
+            if ("endif".equals(MultiLineMacroParser.conditionalMacroName(currentLine))) {
+                if (lastArtifact != null) {
+                    lastArtifact = endCodeBlock(lastArtifact, lastLineNo);
                 }
-            }
-
-            newNode.getFromLine().set(lineNo);
-            if (!newNode.isEndif()) {
-                newNode.addBelow(beforeStack.peek(), afterStack.peek());
-                nodes.add(newNode);
-            }
 
-            if (newNode.isCode()) {
-                lastCode = newNode;
-            } else if (newNode.isEndif()) {
                 final String currentLineFinal = currentLine;
                 diffType.matchBeforeAfter(beforeStack, afterStack,
                         stack -> {
@@ -174,12 +151,39 @@ public static DiffResult<DiffTree> createDiffTree(
                         });
                 if (error.get() != null) { return error.get(); }
             } else {
-                // newNode is if, elif or else
-                // push the node to the relevant stacks
-                diffType.matchBeforeAfter(beforeStack, afterStack, stack ->
-                        pushNodeToStack(newNode, stack, lastLineNo).onError(errorPropagation)
-                );
-                if (error.get() != null) { return error.get(); }
+                // This gets the node type and diff type of the current line and creates a node
+                // Note that the node is not yet added to the diff tree.
+                final DiffNode newNode;
+                try {
+                    newNode = nodeParser.fromDiffLine(currentLine);
+                } catch (IllFormedAnnotationException e) {
+                    return DiffResult.Failure(e);
+                }
+
+                // collapse multiple code lines
+                if (lastArtifact != null) {
+                    if (collapseMultipleCodeLines && newNode.isArtifact() && lastArtifact.diffType.equals(newNode.diffType)) {
+                        lastArtifact.addLines(newNode.getLines());
+                        continue;
+                    } else {
+                        lastArtifact = endCodeBlock(lastArtifact, lastLineNo);
+                    }
+                }
+
+                newNode.getFromLine().set(lineNo);
+                newNode.addBelow(beforeStack.peek(), afterStack.peek());
+                nodes.add(newNode);
+
+                if (newNode.isArtifact()) {
+                    lastArtifact = newNode;
+                } else {
+                    // newNode is if, elif or else
+                    // push the node to the relevant stacks
+                    diffType.matchBeforeAfter(beforeStack, afterStack, stack ->
+                            pushNodeToStack(newNode, stack, lastLineNo).onError(errorPropagation)
+                    );
+                    if (error.get() != null) { return error.get(); }
+                }
             }
         }
 
@@ -187,12 +191,10 @@ public static DiffResult<DiffTree> createDiffTree(
             return DiffResult.Failure(DiffError.NOT_ALL_ANNOTATIONS_CLOSED);
         }
 
-        if (lastCode != null) {
-            lastCode = endCodeBlock(lastCode, lineNo);
+        if (lastArtifact != null) {
+            lastArtifact = endCodeBlock(lastArtifact, lineNo);
         }
 
-        endCodeBlock(root, lineNo);
-
         // Invalidate line numbers according to edits.
         // E.g. if a node was added, it had no line number before the edit.
         for (final DiffNode node : nodes) {
@@ -274,7 +276,7 @@ public static DiffNode popIf(final Stack<DiffNode> stack) {
         do {
             // Don't update line numbers of popped nodes here as this already happened.
             popped = stack.pop();
-        } while (!popped.isIf() && !popped.isRoot());
+        } while (!popped.isIf());
         return popped;
     }
 
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/parse/MultiLineMacroParser.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/parse/MultiLineMacroParser.java
index 56d440ea4..c8dbe1522 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/parse/MultiLineMacroParser.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/parse/MultiLineMacroParser.java
@@ -1,13 +1,13 @@
 package org.variantsync.diffdetective.diff.difftree.parse;
 
 import org.variantsync.diffdetective.diff.DiffLineNumber;
-import org.variantsync.diffdetective.diff.difftree.CodeType;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
 import org.variantsync.diffdetective.diff.difftree.DiffType;
 
 import java.io.BufferedReader;
 import java.util.List;
 import java.util.Stack;
+import java.util.regex.Pattern;
 
 import static org.variantsync.diffdetective.diff.result.DiffError.MLMACRO_WITHIN_MLMACRO;
 
@@ -16,6 +16,11 @@
  * @author Paul Bittner
  */
 public class MultiLineMacroParser {
+    /** Matches conditional macros. Note that it doesn't match the whole line or even the whole
+     * macro name. For example {@code #ifdef} is also matched, but only {@code "if"} is captured.
+     */
+    private final static Pattern macroPattern = Pattern.compile("^[+-]?\\s*#\\s*(if|elif|else|endif)");
+
     private final DiffNodeParser nodeParser;
 
     private MultilineMacro beforeMLMacro = null;
@@ -81,8 +86,7 @@ ParseResult consume(
 
         if (continuesMultilineDefinition(line)) {
             // If this multiline macro line is a header...
-            final CodeType codeType = CodeType.ofDiffLine(line);
-            if (codeType.isConditionalMacro()) {
+            if (conditionalMacroName(line) != null) {
                 // ... create a new multi line macro to complete.
                 if (!isAdd) {
                     if (beforeMLMacro != null) {
@@ -103,7 +107,7 @@ ParseResult consume(
                         /* If this happens (at least) one of this happened
                          * 1. Found line of a multiline macro without header at line " + line + "!
                          * 2. Backslash in a comment.
-                         * 3. It is the head of a multiline #define macro that we classify as code.
+                         * 3. It is the head of a multiline #define macro that we classify as artifact.
                          *
                          * As 2 and 3 are most likely we just assume those.
                          */
@@ -200,4 +204,23 @@ ParseResult consume(
     public static boolean continuesMultilineDefinition(String line) {
         return line.trim().endsWith("\\");
     }
+
+    /**
+     * Returns the shortened name of a conditional macro.
+     *
+     * Shortened means it's one of {@code if}, {@code elif}, {@code else} or {@code endif},
+     * although the actual macro name may be longer (for example {@code ifdef}).
+     *
+     * @param line the first line of the macro
+     * @return the shortened name of a conditional macro in {@code line} or {@code null} if there
+     * is no conditional macro on {@code line}
+     */
+    public static String conditionalMacroName(String line) {
+        var matcher = macroPattern.matcher(line);
+        if (matcher.find()) {
+            return matcher.group(1);
+        } else {
+            return null;
+        }
+    }
 }
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/LineGraphImport.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/LineGraphImport.java
index 3b7e76ef4..4e9cf7656 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/LineGraphImport.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/LineGraphImport.java
@@ -129,22 +129,20 @@ private static DiffTree parseDiffTree(final String lineGraph, final Path inFile,
 
 		// Handle trees and graphs differently
 		if (options.graphFormat() == GraphFormat.DIFFGRAPH) {
-			// If you should interpret the input data as DiffTrees, always expect a root to be present. Parse all nodes (v) to a list of nodes. Search for the root. Assert that there is exactly one root.
-			Assert.assertTrue(diffNodeList.stream().noneMatch(DiffNode::isRoot)); // test if it’s not a tree
 			return DiffGraph.fromNodes(diffNodeList, diffTreeSource);
 		} else if (options.graphFormat() == GraphFormat.DIFFTREE) {
 			// If you should interpret the input data as DiffTrees, always expect a root to be present. Parse all nodes (v) to a list of nodes. Search for the root. Assert that there is exactly one root.
             DiffNode root = null;
             for (final DiffNode v : diffNodeList) {
-                if (DiffGraph.hasNoParents(v)) {
+                if (v.isRoot()) {
                     // v is root candidate
                     if (root != null) {
-                        throw new RuntimeException("Not a DiffTree but a DiffGraph: Got more than one root! Got \"" + root + "\" and \"" + v + "\"!");
+                        throw new RuntimeException("Not a DiffTree: Got more than one root! Got \"" + root + "\" and \"" + v + "\"!");
                     }
-                    if (v.codeType == CodeType.IF || v.codeType == CodeType.ROOT) {
+                    if (v.nodeType == NodeType.IF) {
                         root = v;
                     } else {
-                        throw new RuntimeException("Not a DiffTree but a DiffGraph: The node \"" + v + "\" is not labeled as ROOT or IF but has no parents!");
+                        throw new RuntimeException("Not a DiffTree but a DiffGraph: The node \"" + v + "\" is not labeled as IF but has no parents!");
                     }
                 }
             }
@@ -153,7 +151,7 @@ private static DiffTree parseDiffTree(final String lineGraph, final Path inFile,
                 throw new RuntimeException("Not a DiffTree but a DiffGraph: No root found!");
             }
 
-//            countRootTypes.merge(root.codeType, 1, Integer::sum);
+//            countRootTypes.merge(root.nodeType, 1, Integer::sum);
 
 			return new DiffTree(root, diffTreeSource);
 		} else {
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/TikzExporter.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/TikzExporter.java
index 54cb293e0..fa03a22b2 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/TikzExporter.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/TikzExporter.java
@@ -98,7 +98,7 @@ public void exportDiffTree(
                     .joining(" \\\\ "));
 
             output.format("%n\t\\node[%s, %s] (node_%s) at (%s) {};%n",
-                node.isCode() ? "artefact" : "annotation",
+                node.isArtifact() ? "artifact" : "annotation",
                 node.getDiffType().toString().toLowerCase(Locale.ROOT),
                 node.getID(),
                 node.getID());
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/DebugDiffNodeFormat.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/DebugDiffNodeFormat.java
index f620c0943..425025b16 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/DebugDiffNodeFormat.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/DebugDiffNodeFormat.java
@@ -4,16 +4,16 @@
 import org.variantsync.diffdetective.util.FileUtils;
 
 /**
- * Print CodeType and DiffType and Mappings if Macro and Text if Code.
+ * Print NodeType, DiffType and Mappings for Annotations and Text for Artifacts.
  * @author Paul Bittner, Kevin Jedelhauser
  */
 public class DebugDiffNodeFormat implements DiffNodeLabelFormat {
 	@Override
 	public String toLabel(final DiffNode node) {
-		return node.diffType + "_" + node.codeType + "_\"" +
-				DiffNodeLabelPrettyfier.prettyPrintIfMacroOr(
+		return node.diffType + "_" + node.nodeType + "_\"" +
+				DiffNodeLabelPrettyfier.prettyPrintIfAnnotationOr(
 						node,
 						FileUtils.replaceLineEndings(node.getLabel().trim().replaceAll("\t", "  "), "<br>"))
 				+ "\"";
 	}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/DiffNodeLabelPrettyfier.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/DiffNodeLabelPrettyfier.java
index d4695e3f5..c482e0226 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/DiffNodeLabelPrettyfier.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/DiffNodeLabelPrettyfier.java
@@ -1,7 +1,7 @@
 package org.variantsync.diffdetective.diff.difftree.serialize.nodeformat;
 
 import org.prop4j.Node;
-import org.variantsync.diffdetective.diff.difftree.CodeType;
+import org.variantsync.diffdetective.diff.difftree.NodeType;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
 
 /**
@@ -9,14 +9,14 @@
  */
 public abstract class DiffNodeLabelPrettyfier {
 	/**
-	 * Auxiliary method for {@link DiffNodeLabelPrettyfier#prettyPrintIfMacroOr(DiffNode, String)}.
-	 * Returns a string starting with the nodes {@link DiffNode#codeType}, and its {@link DiffNode#getDirectFeatureMapping()}
+	 * Auxiliary method for {@link DiffNodeLabelPrettyfier#prettyPrintIfAnnotationOr(DiffNode, String)}.
+	 * Returns a string starting with the nodes {@link DiffNode#nodeType}, and its {@link DiffNode#getDirectFeatureMapping()}
      * if it has a formula.
 	 * @param node The {@link DiffNode} to print.
-	 * @return CodeType and {@link DiffNode::getDirectFeatureMapping} of the node in a single string, seperated by a space character.
+	 * @return NodeType and {@link DiffNode::getDirectFeatureMapping} of the node in a single string, seperated by a space character.
 	 */
     private static String prettyPrintTypeAndMapping(final DiffNode node) {
-        String result = node.codeType.name;
+        String result = node.nodeType.name;
         final Node fm = node.getDirectFeatureMapping();
         if (fm != null) {
             result += " " + fm;
@@ -26,18 +26,18 @@ private static String prettyPrintTypeAndMapping(final DiffNode node) {
 
     /**
      * Invokes {@link #prettyPrintTypeAndMapping(DiffNode)} if the given
-     * node {@link CodeType#isMacro() is a macro}, and returns the elseValue otherwise.
+     * node {@link NodeType#isAnnotation() is an annotation}, and returns the elseValue otherwise.
      * @param node The {@link DiffNode} to prettyprint.
-     * @param elseValue The value to return in case the given node is not a macro.
+     * @param elseValue The value to return in case the given node is not an annotation.
      * @return The generated label.
      */
-    public static String prettyPrintIfMacroOr(final DiffNode node, final String elseValue) {
+    public static String prettyPrintIfAnnotationOr(final DiffNode node, final String elseValue) {
         String result = "";
-        if (node.codeType.isMacro()) {
+        if (node.isAnnotation()) {
             result += prettyPrintTypeAndMapping(node);
         } else {
             result += elseValue;
         }
         return result;
     }
-}
\ No newline at end of file
+}
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/FormulasAndLineNumbersNodeFormat.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/FormulasAndLineNumbersNodeFormat.java
index bdb3996d5..21d47929e 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/FormulasAndLineNumbersNodeFormat.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/FormulasAndLineNumbersNodeFormat.java
@@ -3,7 +3,7 @@
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
 
 /**
- * Produces labels of kind <code>fromLine-toLine: CodeType</code>, suffixed by the node's formula if it is a macro.
+ * Produces labels of kind <code>fromLine-toLine: NodeType</code>, suffixed by the node's formula if it is an annotation.
  * The line numbers reference the line numbers in the diff.
  * @see DiffNode#getFromLine()
  * @see DiffNode#getToLine()
@@ -13,8 +13,8 @@
 public class FormulasAndLineNumbersNodeFormat implements DiffNodeLabelFormat {
     @Override
     public String toLabel(DiffNode node) {
-        final String lineNumbers = node.getFromLine().inDiff + "-" + node.getToLine().inDiff + ": " + node.codeType;
-        if (node.isMacro()) {
+        final String lineNumbers = node.getFromLine().inDiff + "-" + node.getToLine().inDiff + ": " + node.nodeType;
+        if (node.isAnnotation()) {
             return lineNumbers + " " + node.getDirectFeatureMapping();
         }
         return lineNumbers;
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/MappingsDiffNodeFormat.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/MappingsDiffNodeFormat.java
index 8295371f6..d3aae2ac2 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/MappingsDiffNodeFormat.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/MappingsDiffNodeFormat.java
@@ -3,15 +3,15 @@
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
 
 /**
- * Print CodeType and DiffType and Mappings of Macros.
- * The produced label will be <code>CodeType_DiffType_"macro formula"</code> for mapping nodes,
- * and <code>CodeType_DiffType_""</code> for non-mapping nodes.
- * @see DiffNodeLabelPrettyfier#prettyPrintIfMacroOr(DiffNode, String)
+ * Print NodeType and DiffType and Mappings of Annotations.
+ * The produced label will be <code>NodeType"annotation formula"</code> for mapping nodes,
+ * and <code>NodeType""</code> for non-mapping nodes.
+ * @see DiffNodeLabelPrettyfier#prettyPrintIfAnnotationOr(DiffNode, String)
  * @author Paul Bittner, Kevin Jedelhauser
  */
 public class MappingsDiffNodeFormat implements DiffNodeLabelFormat {
 	@Override
 	public String toLabel(final DiffNode node) {
-		return node.diffType + "_" + node.codeType + "_\"" + DiffNodeLabelPrettyfier.prettyPrintIfMacroOr(node, "") + "\"";
+		return node.diffType + "_" + node.nodeType + "_\"" + DiffNodeLabelPrettyfier.prettyPrintIfAnnotationOr(node, "") + "\"";
 	}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/TypeDiffNodeFormat.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/TypeDiffNodeFormat.java
index 64692b8fa..b68527b97 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/TypeDiffNodeFormat.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/serialize/nodeformat/TypeDiffNodeFormat.java
@@ -3,12 +3,12 @@
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
 
 /**
- * Labels are of the form <code>CodeType_DiffType</code>.
+ * Labels are of the form <code>NodeType</code>.
  * @author Paul Bittner, Kevin Jedelhauser
  */
 public class TypeDiffNodeFormat implements DiffNodeLabelFormat {
 	@Override
 	public String toLabel(final DiffNode node) {
-		return node.diffType + "_" + node.codeType;
+		return node.diffType + "_" + node.nodeType;
 	}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/CollapseElementaryPatterns.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/CollapseElementaryPatterns.java
deleted file mode 100644
index 71a04429c..000000000
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/CollapseElementaryPatterns.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.variantsync.diffdetective.diff.difftree.transform;
-
-import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.diff.difftree.DiffTree;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPatternCatalogue;
-
-import java.util.List;
-
-/**
- * Collapses elementary patterns in a DiffTree.
- * Contrary to its name, this transformation leaves a DiffTree's graph structure unchanged.
- * This transformation uses the {@link RelabelNodes} transformer to relabel all nodes.
- * All {@link DiffNode#isCode() artifact} nodes will be labeled by their respective elementary pattern.
- * All other nodes will be labeled by the {@link org.variantsync.diffdetective.diff.difftree.CodeType#name name of their code type}.
- * @author Paul Bittner
- */
-public class CollapseElementaryPatterns implements DiffTreeTransformer {
-    private final DiffTreeTransformer relabelNodes;
-
-    /**
-     * Creates a new transformation that will use the given catalog of elementary patterns
-     * to relabel {@link DiffNode#isCode() artifact} nodes.
-     * @param patterns Catalog of patterns to match on artifact nodes.
-     */
-    public CollapseElementaryPatterns(final ElementaryPatternCatalogue patterns) {
-        relabelNodes = new RelabelNodes(d -> {
-            if (d.isCode()) {
-                return patterns.match(d).getName();
-            } else {
-                return d.codeType.name;
-            }
-        });
-    }
-
-    @Override
-    public void transform(DiffTree diffTree) {
-        relabelNodes.transform(diffTree);
-    }
-
-    @Override
-    public List<Class<? extends DiffTreeTransformer>> getDependencies() {
-        return relabelNodes.getDependencies();
-    }
-}
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/CollapseNestedNonEditedMacros.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/CollapseNestedNonEditedAnnotations.java
similarity index 85%
rename from src/main/java/org/variantsync/diffdetective/diff/difftree/transform/CollapseNestedNonEditedMacros.java
rename to src/main/java/org/variantsync/diffdetective/diff/difftree/transform/CollapseNestedNonEditedAnnotations.java
index adc367e69..737840218 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/CollapseNestedNonEditedMacros.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/CollapseNestedNonEditedAnnotations.java
@@ -2,7 +2,7 @@
 
 import org.prop4j.And;
 import org.prop4j.Node;
-import org.variantsync.diffdetective.diff.difftree.CodeType;
+import org.variantsync.diffdetective.diff.difftree.NodeType;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
 import org.variantsync.diffdetective.diff.difftree.DiffTree;
 import org.variantsync.diffdetective.diff.difftree.DiffType;
@@ -14,11 +14,11 @@
 import java.util.Stack;
 
 /**
- * Collapses chains of nested non-edited macros.
- * Imagine a macro node that is unchanged and has the same parent before and after the edit that
- * is again an unchanged macro node that has the same parent before and after the edit, and so on.
- * Such chains <code>NON_IF -> NON_IF -> NON_IF -> ... -> NON_IF</code> can be collapsed
- * into a single unchanged macro node with the formulas of all nodes combined (by AND).
+ * Collapses chains of nested non-edited annotations.
+ * Imagine a annotation node that is unchanged and has the same parent before and after the edit
+ * that is again an unchanged annotation node that has the same parent before and after the edit,
+ * and so on. Such chains <code>NON_IF -> NON_IF -> NON_IF -> ... -> NON_IF</code> can be collapsed
+ * into a single unchanged annotation node with the formulas of all nodes combined (by AND).
  * This collapse is realized by this transformer.
  *
  * Fun fact: We implemented this transformation because of the
@@ -26,7 +26,7 @@
  *
  * @author Paul Bittner
  */
-public class CollapseNestedNonEditedMacros implements DiffTreeTransformer {
+public class CollapseNestedNonEditedAnnotations implements DiffTreeTransformer {
     private final List<Stack<DiffNode>> chainCandidates = new ArrayList<>();
     private final List<Stack<DiffNode>> chains = new ArrayList<>();
 
@@ -66,7 +66,7 @@ private void finalize(Stack<DiffNode> chain) {
     }
 
     private void findChains(DiffTreeTraversal traversal, DiffNode subtree) {
-        if (subtree.isNon() && subtree.isMacro()) {
+        if (subtree.isNon() && subtree.isAnnotation()) {
             if (isHead(subtree)) {
                 final Stack<DiffNode> s = new Stack<>();
                 s.push(subtree);
@@ -102,7 +102,7 @@ private static void collapseChain(Stack<DiffNode> chain) {
         while (!chain.isEmpty()) {
             lastPopped = chain.pop();
 
-            switch (lastPopped.codeType) {
+            switch (lastPopped.nodeType) {
                 case IF ->
                     featureMappings.add(lastPopped.getAfterFeatureMapping());
                 case ELSE, ELIF -> {
@@ -113,9 +113,8 @@ private static void collapseChain(Stack<DiffNode> chain) {
                         lastPopped = chain.pop();
                     }
                 }
-                case ROOT, CODE ->
-                    throw new RuntimeException("Unexpected code type " + lastPopped.codeType + " within macro chain!");
-                case ENDIF -> {}
+                case ARTIFACT ->
+                    throw new RuntimeException("Unexpected node type " + lastPopped.nodeType + " within annotation chain!");
             }
         }
 
@@ -127,7 +126,7 @@ private static void collapseChain(Stack<DiffNode> chain) {
         ArrayList lines = new ArrayList();
         lines.add("$Collapsed Nested Annotations$");
         final DiffNode merged = new DiffNode(
-                DiffType.NON, CodeType.IF,
+                DiffType.NON, NodeType.IF,
                 head.getFromLine(), head.getToLine(),
                 new And(featureMappings.toArray()),
                 lines);
@@ -178,6 +177,6 @@ private static boolean isEnd(DiffNode d) {
 
     @Override
     public String toString() {
-        return "CollapseNestedNonEditedMacros";
+        return "CollapseNestedNonEditedAnnotations";
     }
 }
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/CutNonEditedSubtrees.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/CutNonEditedSubtrees.java
index fae5e9ed8..cdc954813 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/CutNonEditedSubtrees.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/CutNonEditedSubtrees.java
@@ -12,7 +12,7 @@
  * A subtree is unedited, if all nodes in it are unchanged and all nodes have the same
  * before and after parent.
  * Such subtrees just model state but not an edit and thus are removed from the validation
- * of our elementary edit patterns in our ESEC/FSE'22 paper.
+ * of our edit classes in our ESEC/FSE'22 paper.
  * @author Paul Bittner
  */
 public class CutNonEditedSubtrees implements DiffTreeTransformer, DiffTreeVisitor {
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/FeatureExpressionFilter.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/FeatureExpressionFilter.java
index 9d4851d69..de4037243 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/FeatureExpressionFilter.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/FeatureExpressionFilter.java
@@ -17,13 +17,13 @@ public record FeatureExpressionFilter(Predicate<DiffNode> isFeatureAnnotation) i
     public void transform(DiffTree diffTree) {
         final List<DiffNode> illegalNodes = new ArrayList<>();
         diffTree.forAll(node -> {
-            if (node.isMacro() && !isFeatureAnnotation.test(node)) {
+            if (node.isAnnotation() && !isFeatureAnnotation.test(node)) {
                 illegalNodes.add(node);
             }
         });
 
-        for (final DiffNode illegalMacro : illegalNodes) {
-            diffTree.removeNode(illegalMacro);
+        for (final DiffNode illegalAnnotation : illegalNodes) {
+            diffTree.removeNode(illegalAnnotation);
         }
     }
 }
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/LabelWithEditClass.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/LabelWithEditClass.java
new file mode 100644
index 000000000..d64a5fa55
--- /dev/null
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/LabelWithEditClass.java
@@ -0,0 +1,43 @@
+package org.variantsync.diffdetective.diff.difftree.transform;
+
+import org.variantsync.diffdetective.diff.difftree.DiffNode;
+import org.variantsync.diffdetective.diff.difftree.DiffTree;
+import org.variantsync.diffdetective.editclass.EditClassCatalogue;
+
+import java.util.List;
+
+/**
+ * Label all nodes with their edit class.
+ * This transformation leaves the graph structure of the {@link DiffTree} unchanged.
+ * All {@link DiffNode#isArtifact() artifact} nodes will be labeled by their respective edit class.
+ * All other nodes will be labeled by the {@link org.variantsync.diffdetective.diff.difftree.NodeType#name name of their node type}.
+ * @author Paul Bittner
+ */
+public class LabelWithEditClass implements DiffTreeTransformer {
+    private final DiffTreeTransformer relabelNodes;
+
+    /**
+     * Creates a new transformation that will use the given catalog of edit classes
+     * to relabel {@link DiffNode#isArtifact() artifact} nodes.
+     * @param editClasses Catalog of edit classes to match on artifact nodes.
+     */
+    public LabelWithEditClass(final EditClassCatalogue editClasses) {
+        relabelNodes = new RelabelNodes(d -> {
+            if (d.isArtifact()) {
+                return editClasses.match(d).getName();
+            } else {
+                return d.nodeType.name;
+            }
+        });
+    }
+
+    @Override
+    public void transform(DiffTree diffTree) {
+        relabelNodes.transform(diffTree);
+    }
+
+    @Override
+    public List<Class<? extends DiffTreeTransformer>> getDependencies() {
+        return relabelNodes.getDependencies();
+    }
+}
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/NaiveMovedCodeDetection.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/NaiveMovedArtifactDetection.java
similarity index 62%
rename from src/main/java/org/variantsync/diffdetective/diff/difftree/transform/NaiveMovedCodeDetection.java
rename to src/main/java/org/variantsync/diffdetective/diff/difftree/transform/NaiveMovedArtifactDetection.java
index e6a48347c..9882b19ee 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/NaiveMovedCodeDetection.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/NaiveMovedArtifactDetection.java
@@ -10,16 +10,16 @@
 import java.util.List;
 
 /**
- * Finds code nodes whose label is exactly equal. If one of those nodes was added and the other one was removed,
- * MovedCodeDetection merges them and interprets this edit as a move instead of separate insertion and deletion.
- * A possible future extension would be to account for multiline code nodes to not only check for exact equality of text
+ * Finds artifact nodes whose label is exactly equal. If one of those nodes was added and the other one was removed,
+ * NaiveMovedArtifactDetection merges them and interprets this edit as a move instead of separate insertion and deletion.
+ * A possible future extension would be to account for multiline artifact nodes to not only check for exact equality of text
  * but for each line in the nodes individually.
  * @author Paul Bittner
  */
-public class NaiveMovedCodeDetection implements DiffTreeTransformer {
+public class NaiveMovedArtifactDetection implements DiffTreeTransformer {
     @Override
     public void transform(final DiffTree diffTree) {
-        final List<Pair<DiffNode, DiffNode>> twins = findCodeTwins(diffTree);
+        final List<Pair<DiffNode, DiffNode>> twins = findArtifactTwins(diffTree);
 
         for (final Pair<DiffNode, DiffNode> twin : twins) {
             final DiffNode added;
@@ -46,22 +46,22 @@ public void transform(final DiffTree diffTree) {
         }
     }
 
-    private static List<Pair<DiffNode, DiffNode>> findCodeTwins(final DiffTree diffTree) {
-        final List<DiffNode> codeNodes = diffTree.computeCodeNodes();
+    private static List<Pair<DiffNode, DiffNode>> findArtifactTwins(final DiffTree diffTree) {
+        final List<DiffNode> artifactNodes = diffTree.computeArtifactNodes();
         final List<Pair<DiffNode, DiffNode>> twins = new ArrayList<>();
 
-        while (!codeNodes.isEmpty()) {
+        while (!artifactNodes.isEmpty()) {
             // Always inspect last element as it's the cheapest to remove.
-            final DiffNode code = codeNodes.get(codeNodes.size() - 1);
-            codeNodes.remove(code);
+            final DiffNode artifact = artifactNodes.get(artifactNodes.size() - 1);
+            artifactNodes.remove(artifact);
 
             // If the node was inserted or removed ...
-            if (!code.isNon()) {
-                // ... check if the opposite operation was applied to the same code somewhere else.
-                final DiffNode twin = findTwinOf(code, codeNodes);
+            if (!artifact.isNon()) {
+                // ... check if the opposite operation was applied to the same artifact somewhere else.
+                final DiffNode twin = findTwinOf(artifact, artifactNodes);
                 if (twin != null) {
-                    twins.add(new Pair<>(code, twin));
-                    codeNodes.remove(twin);
+                    twins.add(new Pair<>(artifact, twin));
+                    artifactNodes.remove(twin);
                 }
             }
         }
@@ -69,17 +69,17 @@ private static List<Pair<DiffNode, DiffNode>> findCodeTwins(final DiffTree diffT
         return twins;
     }
 
-    private static DiffNode findTwinOf(final DiffNode code, final List<DiffNode> codeNodes) {
-        final DiffType weAreLookingFor = code.diffType.inverse();
-        final String text = code.getLabel().trim();
+    private static DiffNode findTwinOf(final DiffNode artifact, final List<DiffNode> artifactNodes) {
+        final DiffType weAreLookingFor = artifact.diffType.inverse();
+        final String text = artifact.getLabel().trim();
 
         if (text.isEmpty()) {
             return null;
         }
 
-        // We assert the following as we removed the code node in transform.
-        // assert(!codeNodes.contains(code));
-        for (final DiffNode other : codeNodes) {
+        // We assert the following as we removed the artifact node in transform.
+        // assert(!artifactNodes.contains(artifact));
+        for (final DiffNode other : artifactNodes) {
             if (other.diffType == weAreLookingFor && text.equals(other.getLabel().trim())) {
                 return other;
             }
@@ -97,6 +97,6 @@ private static DiffNode merge(final DiffNode added, final DiffNode removed) {
         final DiffLineNumber from = new DiffLineNumber(Math.min(addFrom.inDiff, remFrom.inDiff), remFrom.beforeEdit, addFrom.afterEdit);
         final DiffLineNumber to = new DiffLineNumber(Math.max(addTo.inDiff, remTo.inDiff), remTo.beforeEdit, addTo.afterEdit);
 
-        return DiffNode.createCode(DiffType.NON, from, to, added.getLabel() /* equals removed.getText() */);
+        return DiffNode.createArtifact(DiffType.NON, from, to, added.getLabel() /* equals removed.getText() */);
     }
 }
diff --git a/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/Starfold.java b/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/Starfold.java
index 1d1dffedb..1baae6711 100644
--- a/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/Starfold.java
+++ b/src/main/java/org/variantsync/diffdetective/diff/difftree/transform/Starfold.java
@@ -12,8 +12,8 @@
 /**
  * Starfold reduces redundancy in edited leaves.
  * It identifies stars and simplifies its arms.
- * A star is a non-edited macro node together with all its children
- * that are code nodes and leaves.
+ * A star is a non-edited annotation node together with all its children
+ * that are artifact nodes and leaves.
  * The Starfold collapses all these children to a single child for each time.
  * This means, all inserted star-children will be merged into a single child, and for deletions respectively.
  * @author Paul Bittner, Benjamin Moosherr
@@ -46,11 +46,11 @@ public static Starfold IgnoreNodeOrder() {
     @Override
     public void transform(DiffTree diffTree) {
         // All non-artifact nodes are potential roots of stars.
-        final List<DiffNode> macroNodes = diffTree.computeAllNodesThat(Starfold::isStarRoot);
-//        System.out.println("Inspecting " + macroNodes.size() + " star roots.");
-        for (DiffNode macro : macroNodes) {
-//            System.out.println("Found star root " + macro);
-            foldStar(macro);
+        final List<DiffNode> annotations = diffTree.computeAllNodesThat(Starfold::isStarRoot);
+//        System.out.println("Inspecting " + annotations.size() + " star roots.");
+        for (DiffNode annotation : annotations) {
+//            System.out.println("Found star root " + annotation);
+            foldStar(annotation);
         }
     }
 
@@ -90,7 +90,7 @@ private void mergeArms(final DiffNode starRoot, Time time, final DiffType target
             final int targetIndex = starRoot.indexOfChild(starArms.get(0));
             starRoot.removeChildren(starArms);
             starRoot.insertChildAt(
-                    DiffNode.createCode(
+                    DiffNode.createArtifact(
                             targetDiffType,
                             DiffLineNumber.Invalid(),
                             DiffLineNumber.Invalid(),
@@ -103,10 +103,10 @@ private void mergeArms(final DiffNode starRoot, Time time, final DiffType target
     }
 
     private static boolean isStarRoot(final DiffNode node) {
-        return !node.isCode() && node.isNon();
+        return !node.isArtifact() && node.isNon();
     }
 
     private static boolean isStarArm(final DiffNode node) {
-        return node.isLeaf() && node.isCode();
+        return node.isLeaf() && node.isArtifact();
     }
 }
diff --git a/src/main/java/org/variantsync/diffdetective/editclass/EditClass.java b/src/main/java/org/variantsync/diffdetective/editclass/EditClass.java
new file mode 100644
index 000000000..18cbb94f5
--- /dev/null
+++ b/src/main/java/org/variantsync/diffdetective/editclass/EditClass.java
@@ -0,0 +1,52 @@
+package org.variantsync.diffdetective.editclass;
+
+import org.variantsync.diffdetective.diff.difftree.DiffNode;
+import org.variantsync.diffdetective.diff.difftree.DiffTree;
+import org.variantsync.diffdetective.diff.difftree.DiffType;
+import org.variantsync.diffdetective.preliminary.pattern.Pattern;
+
+/**
+ * Abstract edit class according to our ESEC/FSE'22 paper.
+ * @author Paul Bittner, Sören Viegener
+ */
+public abstract class EditClass extends Pattern<DiffNode> {
+    private final DiffType diffType;
+
+    /**
+     * Each edit class handles exactly one DiffType.
+     * @param name unique identifier (see {@link Pattern}).
+     * @param diffType This edit class matches only {@link DiffNode}s of the given {@link DiffType}.
+     */
+    public EditClass(final String name, final DiffType diffType) {
+        super(name);
+        this.diffType = diffType;
+    }
+
+    /**
+     * Returns the diff type nodes matched by this edit class.
+     */
+    public DiffType getDiffType() {
+        return diffType;
+    }
+
+    /**
+     * Returns true iff the given node matches this edit class.
+     * @param artifactNode Node which has node type ARTIFACT and whose DiffType is the same as {@link getDiffType()}.
+     */
+    protected abstract boolean matchesArtifactNode(DiffNode artifactNode);
+
+    /**
+     * Returns true if this edit class matches the given node and is an artifact.
+     */
+    @Override
+    public final boolean matches(DiffNode node) {
+        return node.isArtifact() && node.diffType == diffType && matchesArtifactNode(node);
+    }
+
+    /**
+     * Returns true iff this edit class matches at leat one node on the given tree.
+     */
+    public boolean anyMatch(final DiffTree t) {
+        return t.anyMatch(this::matches);
+    }
+}
diff --git a/src/main/java/org/variantsync/diffdetective/editclass/EditClassCatalogue.java b/src/main/java/org/variantsync/diffdetective/editclass/EditClassCatalogue.java
new file mode 100644
index 000000000..3a1709e57
--- /dev/null
+++ b/src/main/java/org/variantsync/diffdetective/editclass/EditClassCatalogue.java
@@ -0,0 +1,61 @@
+package org.variantsync.diffdetective.editclass;
+
+import org.variantsync.diffdetective.diff.difftree.DiffNode;
+import org.variantsync.diffdetective.diff.difftree.DiffType;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Interface for custom catalogs of edit classes.
+ * @author Paul Bittner
+ */
+public interface EditClassCatalogue {
+    /**
+     * Gives a list of all edit classes in this catalogue.
+     * The list should be constant and immutable (i.e., the very same list is returned each time all is invoked).
+     * The edit class should be immutable, too.
+     * @return a constant list of all edit classes in this catalogue.
+     */
+    List<EditClass> all();
+
+    /**
+     * Returns a mapping from diff types to the edit classes that may match nodes of the given diff type.
+     * The returned map as well as all its values should be immutable and constant.     *
+     * @return A classification of edit classes by their diff types.
+     */
+    Map<DiffType, List<EditClass>> byType();
+
+    /**
+     * Returns the edit class that matches the given node.
+     * Each node matches exactly one edit class.
+     * @param node The node of which to find its edit class.
+     * @return Returns the edit class that matches the given node.
+     */
+    default EditClass match(DiffNode node)
+    {
+        if (!node.isArtifact()) {
+            throw new IllegalArgumentException("Expected an artifact node but got " + node.nodeType + "!");
+        }
+
+        final List<EditClass> classessToCheck = byType().get(node.diffType);
+
+        EditClass match = null;
+        for (final EditClass p : classessToCheck) {
+            if (p.matches(node)) {
+                if (match != null) {
+                    throw new RuntimeException("BUG: Error in edit class definition!\n"
+                            + "Node " + node + " matched " + match + " and " + p + "!");
+                }
+                match = p;
+            }
+        }
+
+        if (match == null) {
+            throw new RuntimeException("BUG: Error in edit class definition!\n"
+                    + "Node " + node + " did not match any edit class!");
+        }
+
+        return match;
+    }
+}
diff --git a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/AddToPC.java b/src/main/java/org/variantsync/diffdetective/editclass/proposed/AddToPC.java
similarity index 50%
rename from src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/AddToPC.java
rename to src/main/java/org/variantsync/diffdetective/editclass/proposed/AddToPC.java
index dac7b4e78..75eeb9dad 100644
--- a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/AddToPC.java
+++ b/src/main/java/org/variantsync/diffdetective/editclass/proposed/AddToPC.java
@@ -1,20 +1,20 @@
-package org.variantsync.diffdetective.pattern.elementary.proposed;
+package org.variantsync.diffdetective.editclass.proposed;
 
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
 import org.variantsync.diffdetective.diff.difftree.DiffType;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
+import org.variantsync.diffdetective.editclass.EditClass;
 
 /**
- * Our AddToPC pattern from the ESEC/FSE'22 paper.
+ * Our AddToPC edit class from the ESEC/FSE'22 paper.
  * @author Paul Bittner, Sören Viegener
  */
-final class AddToPC extends ElementaryPattern {
+final class AddToPC extends EditClass {
     AddToPC() {
         super("AddToPC", DiffType.ADD);
     }
 
     @Override
-    protected boolean matchesCodeNode(DiffNode node) {
+    protected boolean matchesArtifactNode(DiffNode node) {
         return !node.getAfterParent().isAdd();
     }
 }
diff --git a/src/main/java/org/variantsync/diffdetective/editclass/proposed/AddWithMapping.java b/src/main/java/org/variantsync/diffdetective/editclass/proposed/AddWithMapping.java
new file mode 100644
index 000000000..679a0255e
--- /dev/null
+++ b/src/main/java/org/variantsync/diffdetective/editclass/proposed/AddWithMapping.java
@@ -0,0 +1,20 @@
+package org.variantsync.diffdetective.editclass.proposed;
+
+import org.variantsync.diffdetective.diff.difftree.DiffNode;
+import org.variantsync.diffdetective.diff.difftree.DiffType;
+import org.variantsync.diffdetective.editclass.EditClass;
+
+/**
+ * Our AddWithMapping edit class from the ESEC/FSE'22 paper.
+ * @author Paul Bittner, Sören Viegener
+ */
+final class AddWithMapping extends EditClass {
+    AddWithMapping() {
+        super("AddWithMapping", DiffType.ADD);
+    }
+
+    @Override
+    protected boolean matchesArtifactNode(DiffNode artifactNode) {
+        return artifactNode.getAfterParent().isAdd();
+    }
+}
diff --git a/src/main/java/org/variantsync/diffdetective/editclass/proposed/Generalization.java b/src/main/java/org/variantsync/diffdetective/editclass/proposed/Generalization.java
new file mode 100644
index 000000000..8cfb6e4aa
--- /dev/null
+++ b/src/main/java/org/variantsync/diffdetective/editclass/proposed/Generalization.java
@@ -0,0 +1,24 @@
+package org.variantsync.diffdetective.editclass.proposed;
+
+import org.prop4j.Node;
+import org.variantsync.diffdetective.analysis.logic.SAT;
+import org.variantsync.diffdetective.diff.difftree.DiffNode;
+import org.variantsync.diffdetective.diff.difftree.DiffType;
+import org.variantsync.diffdetective.editclass.EditClass;
+
+/**
+ * Our Generalization edit class from the ESEC/FSE'22 paper.
+ * @author Paul Bittner, Sören Viegener
+ */
+final class Generalization extends EditClass {
+    Generalization() {
+        super("Generalization", DiffType.NON);
+    }
+
+    @Override
+    protected boolean matchesArtifactNode(DiffNode artifactNode) {
+        final Node pcb = artifactNode.getBeforeFeatureMapping();
+        final Node pca = artifactNode.getAfterFeatureMapping();
+        return SAT.implies(pcb, pca) && !SAT.implies(pca, pcb);
+    }
+}
diff --git a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/ProposedElementaryPatterns.java b/src/main/java/org/variantsync/diffdetective/editclass/proposed/ProposedEditClasses.java
similarity index 57%
rename from src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/ProposedElementaryPatterns.java
rename to src/main/java/org/variantsync/diffdetective/editclass/proposed/ProposedEditClasses.java
index c4cd95cf1..f8a3f278a 100644
--- a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/ProposedElementaryPatterns.java
+++ b/src/main/java/org/variantsync/diffdetective/editclass/proposed/ProposedEditClasses.java
@@ -1,78 +1,78 @@
-package org.variantsync.diffdetective.pattern.elementary.proposed;
+package org.variantsync.diffdetective.editclass.proposed;
 
 import org.prop4j.Node;
 import org.variantsync.diffdetective.analysis.logic.SAT;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
 import org.variantsync.diffdetective.diff.difftree.DiffType;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPatternCatalogue;
 import org.variantsync.diffdetective.util.Assert;
+import org.variantsync.diffdetective.editclass.EditClass;
+import org.variantsync.diffdetective.editclass.EditClassCatalogue;
 
 import java.util.*;
 
 /**
- * The catalog of elementary edit patterns proposed in our ESEC/FSE'22 paper.
+ * The catalog of edit classes proposed in our ESEC/FSE'22 paper.
  * @author Paul Bittner
  */
-public class ProposedElementaryPatterns implements ElementaryPatternCatalogue {
-    public static final ElementaryPattern AddToPC = new AddToPC();
-    public static final ElementaryPattern AddWithMapping = new AddWithMapping();
-    public static final ElementaryPattern RemFromPC = new RemFromPC();
-    public static final ElementaryPattern RemWithMapping = new RemWithMapping();
-    public static final ElementaryPattern Specialization = new Specialization();
-    public static final ElementaryPattern Generalization = new Generalization();
-    public static final ElementaryPattern Reconfiguration = new Reconfiguration();
-    public static final ElementaryPattern Refactoring = new Refactoring();
-    public static final ElementaryPattern Untouched = new Untouched();
+public class ProposedEditClasses implements EditClassCatalogue {
+    public static final EditClass AddToPC = new AddToPC();
+    public static final EditClass AddWithMapping = new AddWithMapping();
+    public static final EditClass RemFromPC = new RemFromPC();
+    public static final EditClass RemWithMapping = new RemWithMapping();
+    public static final EditClass Specialization = new Specialization();
+    public static final EditClass Generalization = new Generalization();
+    public static final EditClass Reconfiguration = new Reconfiguration();
+    public static final EditClass Refactoring = new Refactoring();
+    public static final EditClass Untouched = new Untouched();
 
     /**
-     * A list of all nine patterns in their order of appearance in the paper.
+     * A list of all nine edit classes in their order of appearance in the paper.
      */
-    public static final List<ElementaryPattern> All = List.of(
+    public static final List<EditClass> All = List.of(
             AddToPC, AddWithMapping,
             RemFromPC, RemWithMapping,
             Specialization, Generalization, Reconfiguration, Refactoring, Untouched
     );
 
     /**
-     * A map of all nine edit patterns, indexed by their DiffType.
+     * A map of all nine edit classes, indexed by their DiffType.
      */
-    public static final Map<DiffType, List<ElementaryPattern>> PatternsByType;
+    public static final Map<DiffType, List<EditClass>> EditClassesByType;
 
     /**
      * Singleton instance of this catalog.
      */
-    public static final ProposedElementaryPatterns Instance = new ProposedElementaryPatterns();
+    public static final ProposedEditClasses Instance = new ProposedEditClasses();
 
     static {
-        PatternsByType = new HashMap<>();
-        for (final ElementaryPattern ap : All) {
-            PatternsByType.computeIfAbsent(ap.getDiffType(), d -> new ArrayList<>()).add(ap);
+        EditClassesByType = new HashMap<>();
+        for (final EditClass ap : All) {
+            EditClassesByType.computeIfAbsent(ap.getDiffType(), d -> new ArrayList<>()).add(ap);
         }
     }
 
-    private ProposedElementaryPatterns() {}
+    private ProposedEditClasses() {}
 
     @Override
-    public List<ElementaryPattern> all() {
+    public List<EditClass> all() {
         return All;
     }
 
     @Override
-    public Map<DiffType, List<ElementaryPattern>> byType() {
-        return PatternsByType;
+    public Map<DiffType, List<EditClass>> byType() {
+        return EditClassesByType;
     }
 
     @Override
-    public ElementaryPattern match(DiffNode node)
+    public EditClass match(DiffNode node)
     {
-        // This is an inlined version of all patterns to optimize runtime when detecting the pattern of a certain node.
+        // This is an inlined version of all edit classes to optimize runtime when detecting the class of a certain node.
 
         // Because this compiles, we know that each branch terminates and returns a value.
-        // Each returned value is not null but an actual pattern object.
-        // Since the given node may be any node, we have proven that every node is classified by at least one pattern.
-        if (!node.isCode()) {
-            throw new IllegalArgumentException("Expected a code node but got " + node.codeType + "!");
+        // Each returned value is not null but an actual edit class object.
+        // Since the given node may be any node, we have proven that every node is classified by at least one edit class.
+        if (!node.isArtifact()) {
+            throw new IllegalArgumentException("Expected an artifact node but got " + node.nodeType + "!");
         }
 
         if (node.isAdd()) {
@@ -133,11 +133,11 @@ public ElementaryPattern match(DiffNode node)
     }
 
     /**
-     * Returns the elementary edit pattern that has the given name.
-     * Returns empty of no pattern has the given name.
+     * Returns the edit class that has the given name.
+     * Returns empty of no edit class has the given name.
      */
-    public Optional<ElementaryPattern> fromName(String label) {
-        for (final ElementaryPattern p : All) {
+    public Optional<EditClass> fromName(String label) {
+        for (final EditClass p : All) {
             if (p.getName().equals(label)) {
                 return Optional.of(p);
             }
diff --git a/src/main/java/org/variantsync/diffdetective/editclass/proposed/Reconfiguration.java b/src/main/java/org/variantsync/diffdetective/editclass/proposed/Reconfiguration.java
new file mode 100644
index 000000000..cbe7de735
--- /dev/null
+++ b/src/main/java/org/variantsync/diffdetective/editclass/proposed/Reconfiguration.java
@@ -0,0 +1,24 @@
+package org.variantsync.diffdetective.editclass.proposed;
+
+import org.prop4j.Node;
+import org.variantsync.diffdetective.analysis.logic.SAT;
+import org.variantsync.diffdetective.diff.difftree.DiffNode;
+import org.variantsync.diffdetective.diff.difftree.DiffType;
+import org.variantsync.diffdetective.editclass.EditClass;
+
+/**
+ * Our Reconfiguration edit class from the ESEC/FSE'22 paper.
+ * @author Paul Bittner, Sören Viegener
+ */
+final class Reconfiguration extends EditClass {
+    Reconfiguration() {
+        super("Reconfiguration", DiffType.NON);
+    }
+
+    @Override
+    protected boolean matchesArtifactNode(DiffNode artifactNode) {
+        final Node pcb = artifactNode.getBeforeFeatureMapping();
+        final Node pca = artifactNode.getAfterFeatureMapping();
+        return !SAT.implies(pcb, pca) && !SAT.implies(pca, pcb);
+    }
+}
diff --git a/src/main/java/org/variantsync/diffdetective/editclass/proposed/Refactoring.java b/src/main/java/org/variantsync/diffdetective/editclass/proposed/Refactoring.java
new file mode 100644
index 000000000..e2a2c82ca
--- /dev/null
+++ b/src/main/java/org/variantsync/diffdetective/editclass/proposed/Refactoring.java
@@ -0,0 +1,24 @@
+package org.variantsync.diffdetective.editclass.proposed;
+
+import org.prop4j.Node;
+import org.variantsync.diffdetective.analysis.logic.SAT;
+import org.variantsync.diffdetective.diff.difftree.DiffNode;
+import org.variantsync.diffdetective.diff.difftree.DiffType;
+import org.variantsync.diffdetective.editclass.EditClass;
+
+/**
+ * Our Refactoring edit class from the ESEC/FSE'22 paper.
+ * @author Paul Bittner, Sören Viegener
+ */
+final class Refactoring extends EditClass {
+    Refactoring() {
+        super("Refactoring", DiffType.NON);
+    }
+
+    @Override
+    protected boolean matchesArtifactNode(DiffNode artifactNode) {
+        final Node pcb = artifactNode.getBeforeFeatureMapping();
+        final Node pca = artifactNode.getAfterFeatureMapping();
+        return SAT.equivalent(pcb, pca) && !artifactNode.beforePathEqualsAfterPath();
+    }
+}
diff --git a/src/main/java/org/variantsync/diffdetective/editclass/proposed/RemFromPC.java b/src/main/java/org/variantsync/diffdetective/editclass/proposed/RemFromPC.java
new file mode 100644
index 000000000..436684ccc
--- /dev/null
+++ b/src/main/java/org/variantsync/diffdetective/editclass/proposed/RemFromPC.java
@@ -0,0 +1,20 @@
+package org.variantsync.diffdetective.editclass.proposed;
+
+import org.variantsync.diffdetective.diff.difftree.DiffNode;
+import org.variantsync.diffdetective.diff.difftree.DiffType;
+import org.variantsync.diffdetective.editclass.EditClass;
+
+/**
+ * Our RemFromPC edit class from the ESEC/FSE'22 paper.
+ * @author Paul Bittner, Sören Viegener
+ */
+final class RemFromPC extends EditClass {
+    RemFromPC() {
+        super("RemFromPC", DiffType.REM);
+    }
+
+    @Override
+    protected boolean matchesArtifactNode(DiffNode artifactNode) {
+        return !artifactNode.getBeforeParent().isRem();
+    }
+}
diff --git a/src/main/java/org/variantsync/diffdetective/editclass/proposed/RemWithMapping.java b/src/main/java/org/variantsync/diffdetective/editclass/proposed/RemWithMapping.java
new file mode 100644
index 000000000..a527e7f9d
--- /dev/null
+++ b/src/main/java/org/variantsync/diffdetective/editclass/proposed/RemWithMapping.java
@@ -0,0 +1,20 @@
+package org.variantsync.diffdetective.editclass.proposed;
+
+import org.variantsync.diffdetective.diff.difftree.DiffNode;
+import org.variantsync.diffdetective.diff.difftree.DiffType;
+import org.variantsync.diffdetective.editclass.EditClass;
+
+/**
+ * Our RemWithMapping edit class from the ESEC/FSE'22 paper.
+ * @author Paul Bittner, Sören Viegener
+ */
+final class RemWithMapping extends EditClass {
+    RemWithMapping() {
+        super("RemWithMapping", DiffType.REM);
+    }
+
+    @Override
+    protected boolean matchesArtifactNode(DiffNode artifactNode) {
+        return artifactNode.getBeforeParent().isRem();
+    }
+}
diff --git a/src/main/java/org/variantsync/diffdetective/editclass/proposed/Specialization.java b/src/main/java/org/variantsync/diffdetective/editclass/proposed/Specialization.java
new file mode 100644
index 000000000..0ef55ac55
--- /dev/null
+++ b/src/main/java/org/variantsync/diffdetective/editclass/proposed/Specialization.java
@@ -0,0 +1,24 @@
+package org.variantsync.diffdetective.editclass.proposed;
+
+import org.prop4j.Node;
+import org.variantsync.diffdetective.analysis.logic.SAT;
+import org.variantsync.diffdetective.diff.difftree.DiffNode;
+import org.variantsync.diffdetective.diff.difftree.DiffType;
+import org.variantsync.diffdetective.editclass.EditClass;
+
+/**
+ * Our Specialization edit class from the ESEC/FSE'22 paper.
+ * @author Paul Bittner, Sören Viegener
+ */
+final class Specialization extends EditClass {
+    Specialization() {
+        super("Specialization", DiffType.NON);
+    }
+
+    @Override
+    protected boolean matchesArtifactNode(DiffNode artifactNode) {
+        final Node pcb = artifactNode.getBeforeFeatureMapping();
+        final Node pca = artifactNode.getAfterFeatureMapping();
+        return !SAT.implies(pcb, pca) && SAT.implies(pca, pcb);
+    }
+}
diff --git a/src/main/java/org/variantsync/diffdetective/editclass/proposed/Untouched.java b/src/main/java/org/variantsync/diffdetective/editclass/proposed/Untouched.java
new file mode 100644
index 000000000..488ab3fa8
--- /dev/null
+++ b/src/main/java/org/variantsync/diffdetective/editclass/proposed/Untouched.java
@@ -0,0 +1,24 @@
+package org.variantsync.diffdetective.editclass.proposed;
+
+import org.prop4j.Node;
+import org.variantsync.diffdetective.analysis.logic.SAT;
+import org.variantsync.diffdetective.diff.difftree.DiffNode;
+import org.variantsync.diffdetective.diff.difftree.DiffType;
+import org.variantsync.diffdetective.editclass.EditClass;
+
+/**
+ * Our Untouched edit class from the ESEC/FSE'22 paper.
+ * @author Paul Bittner, Sören Viegener
+ */
+public class Untouched extends EditClass {
+    Untouched() {
+        super("Untouched", DiffType.NON);
+    }
+
+    @Override
+    protected boolean matchesArtifactNode(DiffNode artifactNode) {
+        final Node pcb = artifactNode.getBeforeFeatureMapping();
+        final Node pca = artifactNode.getAfterFeatureMapping();
+        return SAT.equivalent(pcb, pca) && artifactNode.beforePathEqualsAfterPath();
+    }
+}
diff --git a/src/main/java/org/variantsync/diffdetective/metadata/ElementaryPatternCount.java b/src/main/java/org/variantsync/diffdetective/metadata/EditClassCount.java
similarity index 58%
rename from src/main/java/org/variantsync/diffdetective/metadata/ElementaryPatternCount.java
rename to src/main/java/org/variantsync/diffdetective/metadata/EditClassCount.java
index 91367e053..b5ed6af61 100644
--- a/src/main/java/org/variantsync/diffdetective/metadata/ElementaryPatternCount.java
+++ b/src/main/java/org/variantsync/diffdetective/metadata/EditClassCount.java
@@ -1,9 +1,9 @@
 package org.variantsync.diffdetective.metadata;
 
 import org.variantsync.diffdetective.diff.CommitDiff;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPatternCatalogue;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.editclass.EditClass;
+import org.variantsync.diffdetective.editclass.EditClassCatalogue;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.diffdetective.util.Assert;
 import org.variantsync.functjonal.Functjonal;
 import org.variantsync.functjonal.category.InplaceSemigroup;
@@ -15,10 +15,10 @@
 import java.util.stream.Collectors;
 
 /**
- * Metadata that tracks how often elementary edit patterns were matched.
+ * Metadata that tracks how often edit classes were matched.
  * @author Paul Bittner
  */
-public class ElementaryPatternCount implements Metadata<ElementaryPatternCount> {
+public class EditClassCount implements Metadata<EditClassCount> {
     /**
      * Counts the occurrences of a data point across commits.
      */
@@ -65,66 +65,67 @@ public String toString() {
     }
 
     /**
-     * Composes two pattern counts by composing their respective occurrence counts for elementary edit patterns.
+     * Composes two edit class counts by composing their respective occurrence counts for each edit
+     * class.
      * @see Occurrences#ISEMIGROUP
      */
-    public static InplaceSemigroup<ElementaryPatternCount> ISEMIGROUP = (a, b) -> MergeMap.putAllValues(
+    public static InplaceSemigroup<EditClassCount> ISEMIGROUP = (a, b) -> MergeMap.putAllValues(
             a.occurences,
             b.occurences,
             Occurrences.ISEMIGROUP
     );
 
-    private final LinkedHashMap<ElementaryPattern, Occurrences> occurences;
+    private final LinkedHashMap<EditClass, Occurrences> occurences;
 
     /**
-     * Create a new empty count with the {@link ProposedElementaryPatterns default pattern catalog}.
+     * Create a new empty count with the {@link ProposedEditClasses default edit class catalog}.
      */
-    public ElementaryPatternCount() {
-        this(ProposedElementaryPatterns.Instance);
+    public EditClassCount() {
+        this(ProposedEditClasses.Instance);
     }
 
     /**
-     * Create a new empty count that reports occurrences of the given elementary edit patterns.
-     * @param patterns Patterns whose occurrences should be counted.
+     * Create a new empty count that reports occurrences of the given edit class.
+     * @param editClasses edit classes whose occurrences should be counted.
      */
-    public ElementaryPatternCount(final ElementaryPatternCatalogue patterns) {
+    public EditClassCount(final EditClassCatalogue editClasses) {
         occurences = new LinkedHashMap<>();
-        for (final ElementaryPattern p : patterns.all()) {
+        for (final EditClass p : editClasses.all()) {
             occurences.put(p, new Occurrences());
         }
     }
 
     /**
-     * Report the match of the given pattern in the given commit diff.
-     * The count of the given pattern will be incremented and the commit will be memorized as
-     * one of the commits in which this elementary pattern was matched.
-     * @param pattern The pattern that was matched.
-     * @param commit The CommitDiff in which the pattern match occurred.
-     * @throws AssertionError when the given pattern is not a pattern of this counds catalog.
-     * @see #ElementaryPatternCount(ElementaryPatternCatalogue)
+     * Report the match of the given edit class in the given commit diff.
+     * The count of the given edit class will be incremented and the commit will be memorized as
+     * one of the commits in which this edit class was matched.
+     * @param editClass The edit class that was matched.
+     * @param commit The CommitDiff in which the edit class match occurred.
+     * @throws AssertionError when the given edit class is not present this counts catalog.
+     * @see #EditClassCount(EditClassCatalogue)
      */
-    public void reportOccurrenceFor(final ElementaryPattern pattern, CommitDiff commit) {
+    public void reportOccurrenceFor(final EditClass editClass, CommitDiff commit) {
         Assert.assertTrue(
-                occurences.containsKey(pattern),
-                () -> "Reported unkown pattern \""
-                        + pattern.getName()
+                occurences.containsKey(editClass),
+                () -> "Reported unkown edit class \""
+                        + editClass.getName()
                         + "\" but expected one of "
                         + occurences.keySet().stream()
-                          .map(ElementaryPattern::getName)
+                          .map(EditClass::getName)
                           .collect(Collectors.joining())
                         + "!"
         );
-        occurences.get(pattern).increment(commit);
+        occurences.get(editClass).increment(commit);
     }
     
     /**
-     * Parses lines containing {@link ElementaryPattern elementary patterns} to {@link ElementaryPatternCount}.
+     * Parses lines containing {@link EditClass edit classes} to {@link EditClassCount}.
      * 
-     * @param lines Lines containing {@link ElementaryPattern elementary patterns} to be parsed
-     * @return {@link ElementaryPatternCount}
+     * @param lines Lines containing {@link EditClass edit classes} to be parsed
+     * @return {@link EditClassCount}
      */
-    public static ElementaryPatternCount parse(final List<String> lines, final String uuid) {
-        ElementaryPatternCount count = new ElementaryPatternCount();
+    public static EditClassCount parse(final List<String> lines, final String uuid) {
+        EditClassCount count = new EditClassCount();
         String[] keyValuePair;
         String key;
         String value;
@@ -133,17 +134,17 @@ public static ElementaryPatternCount parse(final List<String> lines, final Strin
         int commits;
         for (final String line : lines) {
             keyValuePair = line.split(": ");
-            key = keyValuePair[0]; // elementary pattern
+            key = keyValuePair[0]; // edit class
             value = keyValuePair[1]; // key value content
             value = value.replaceAll("[{} ]", ""); // remove unnecessary symbols
             innerKeyValuePair = value.split(";");
             total = Integer.parseInt(innerKeyValuePair[0].split("=")[1]); // total count
             commits = Integer.parseInt(innerKeyValuePair[1].split("=")[1]);
             
-            // get pattern from key
+            // get edit class from key
             final String finalKey = key;
-            ElementaryPattern pattern = ProposedElementaryPatterns.Instance.fromName(key).orElseThrow(
-                    () -> new RuntimeException("Could not find Elementary Pattern with name " + finalKey)
+            EditClass editClass = ProposedEditClasses.Instance.fromName(key).orElseThrow(
+                    () -> new RuntimeException("Could not find EditClass with name " + finalKey)
             );
             
             Occurrences occurence = new Occurrences();
@@ -155,7 +156,7 @@ public static ElementaryPatternCount parse(final List<String> lines, final Strin
             }
             
             // add occurrence
-            count.occurences.put(pattern, occurence);
+            count.occurences.put(editClass, occurence);
         }
         
         return count;
@@ -165,7 +166,7 @@ public static ElementaryPatternCount parse(final List<String> lines, final Strin
     public LinkedHashMap<String, String> snapshot() {
         return Functjonal.bimap(
                 occurences,
-                ElementaryPattern::getName,
+                EditClass::getName,
                 Occurrences::toString,
                 LinkedHashMap::new
         );
@@ -175,14 +176,14 @@ public LinkedHashMap<String, String> snapshot() {
      * Mutates and returns first element.
      */
     @Override
-    public InplaceSemigroup<ElementaryPatternCount> semigroup() {
+    public InplaceSemigroup<EditClassCount> semigroup() {
         return ISEMIGROUP;
     }
 
     /**
-     * Returns the current occurrence count for each considered elementary edit pattern.
+     * Returns the current occurrence count for each considered edit class.
      */
-    public LinkedHashMap<ElementaryPattern, Occurrences> getOccurences() {
+    public LinkedHashMap<EditClass, Occurrences> getOccurences() {
         return occurences;
     }
 }
diff --git a/src/main/java/org/variantsync/diffdetective/mining/DiffTreeMiner.java b/src/main/java/org/variantsync/diffdetective/mining/DiffTreeMiner.java
index 58f0f2562..eea3a1541 100644
--- a/src/main/java/org/variantsync/diffdetective/mining/DiffTreeMiner.java
+++ b/src/main/java/org/variantsync/diffdetective/mining/DiffTreeMiner.java
@@ -16,7 +16,7 @@
 import org.variantsync.diffdetective.diff.difftree.serialize.GraphFormat;
 import org.variantsync.diffdetective.diff.difftree.serialize.edgeformat.EdgeLabelFormat;
 import org.variantsync.diffdetective.diff.difftree.serialize.treeformat.CommitDiffDiffTreeLabelFormat;
-import org.variantsync.diffdetective.diff.difftree.transform.CollapseNestedNonEditedMacros;
+import org.variantsync.diffdetective.diff.difftree.transform.CollapseNestedNonEditedAnnotations;
 import org.variantsync.diffdetective.diff.difftree.transform.CutNonEditedSubtrees;
 import org.variantsync.diffdetective.diff.difftree.transform.DiffTreeTransformer;
 import org.variantsync.diffdetective.diff.difftree.transform.Starfold;
@@ -50,7 +50,7 @@ public static List<DiffTreeTransformer> Postprocessing(final Repository reposito
                             RunningExampleFinder.DefaultExamplesDirectory.resolve(repository == null ? "unknown" : repository.getRepositoryName())
                     ));
         }
-        processing.add(new CollapseNestedNonEditedMacros());
+        processing.add(new CollapseNestedNonEditedAnnotations());
         processing.add(Starfold.IgnoreNodeOrder());
         return processing;
     }
@@ -82,10 +82,10 @@ public static DiffTreeLineGraphExportOptions MiningExportOptions(final Repositor
                 , EdgeFormat(nodeFormat)
                 , new ExplainedFilter<>(
                         DiffTreeFilter.notEmpty(),
-                        DiffTreeFilter.moreThanOneCodeNode(),
+                        DiffTreeFilter.moreThanOneArtifactNode(),
                         /// We want to exclude patches that do not edit variability.
-                        /// In particular, we noticed that most edits just insert or delete code (or replace it).
-                        /// This is reasonable and was also observed in previous studies: Edits to code are more frequent than edits to variability.
+                        /// In particular, we noticed that most edits just insert or delete artifacts (or replace it).
+                        /// This is reasonable and was also observed in previous studies: Edits to artifacts are more frequent than edits to variability.
                         /// Yet, such edits cannot reveal compositions of more complex edits to variability.
                         /// We thus filter them.
                         DiffTreeFilter.hasAtLeastOneEditToVariability()
diff --git a/src/main/java/org/variantsync/diffdetective/mining/MiningTask.java b/src/main/java/org/variantsync/diffdetective/mining/MiningTask.java
index 4f5922dc3..d20f18267 100644
--- a/src/main/java/org/variantsync/diffdetective/mining/MiningTask.java
+++ b/src/main/java/org/variantsync/diffdetective/mining/MiningTask.java
@@ -11,8 +11,8 @@
 import org.variantsync.diffdetective.diff.difftree.transform.DiffTreeTransformer;
 import org.variantsync.diffdetective.diff.result.CommitDiffResult;
 import org.variantsync.diffdetective.metadata.ExplainedFilterSummary;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.editclass.EditClass;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.diffdetective.util.Clock;
 import org.variantsync.diffdetective.util.FileUtils;
 
@@ -48,8 +48,8 @@ public AnalysisResult call() throws Exception {
             }
 
             /*
-             * We export all difftrees that match our filter criteria (e.g., has more than one elementary pattern).
-             * However, we count elementary patterns of all DiffTrees, even those that are not exported to Linegraph.
+             * We export all difftrees that match our filter criteria (e.g., match more than one edit class).
+             * However, we count edit classes of all DiffTrees, even those that are not exported to Linegraph.
              */
             final CommitDiff commitDiff = commitDiffResult.diff().get();
             final StringBuilder lineGraph = new StringBuilder();
@@ -57,10 +57,10 @@ public AnalysisResult call() throws Exception {
             options.analysisStrategy().onCommit(commitDiff, lineGraph.toString());
             options.exportOptions().treeFilter().resetExplanations();
 
-            // Count elementary patterns
+            // Count edit classes
             int numDiffTrees = 0;
             for (final PatchDiff patch : commitDiff.getPatchDiffs()) {
-                final PatchStatistics thisPatchesStatistics = new PatchStatistics(patch, ProposedElementaryPatterns.Instance);
+                final PatchStatistics thisPatchesStatistics = new PatchStatistics(patch, ProposedEditClasses.Instance);
 
                 if (patch.isValid()) {
                     final DiffTree t = patch.getDiffTree();
@@ -72,13 +72,13 @@ public AnalysisResult call() throws Exception {
                     }
 
                     t.forAll(node -> {
-                        if (node.isCode()) {
-                            final ElementaryPattern nodePattern = ProposedElementaryPatterns.Instance.match(node);
-                            miningResult.elementaryPatternCounts.reportOccurrenceFor(
-                                    nodePattern,
+                        if (node.isArtifact()) {
+                            final EditClass editClass = ProposedEditClasses.Instance.match(node);
+                            miningResult.editClassCounts.reportOccurrenceFor(
+                                    editClass,
                                     commitDiff
                             );
-                            thisPatchesStatistics.elementaryPatternCount().increment(nodePattern);
+                            thisPatchesStatistics.editClassCount().increment(editClass);
                         }
                     });
 
diff --git a/src/main/java/org/variantsync/diffdetective/mining/RWCompositePatternNodeFormat.java b/src/main/java/org/variantsync/diffdetective/mining/RWCompositePatternNodeFormat.java
index caa38be39..84e2e4a23 100644
--- a/src/main/java/org/variantsync/diffdetective/mining/RWCompositePatternNodeFormat.java
+++ b/src/main/java/org/variantsync/diffdetective/mining/RWCompositePatternNodeFormat.java
@@ -2,20 +2,19 @@
 
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
 import org.variantsync.diffdetective.mining.formats.DebugMiningDiffNodeFormat;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 
 public class RWCompositePatternNodeFormat extends DebugMiningDiffNodeFormat {
     @Override
     public String toLabel(final DiffNode node) {
-        if (node.isCode()) {
-            return ProposedElementaryPatterns.Instance.match(node).getName() + "<br>" + node.getLabel();
+        if (node.isArtifact()) {
+            return ProposedEditClasses.Instance.match(node).getName() + "<br>" + node.getLabel();
         } else {
-            return node.diffType + "_" + switch (node.codeType) {
-                case ROOT -> "r";
+            return node.diffType + "_" + switch (node.nodeType) {
                 case IF -> "mapping<br> " + node.getLabel();
                 case ELSE -> "else";
                 case ELIF -> "elif<br>" + node.getLabel();
-                default -> node.codeType + "<br>" + node.getLabel();
+                default -> node.nodeType + "<br>" + node.getLabel();
             };
         }
     }
diff --git a/src/main/java/org/variantsync/diffdetective/mining/RunningExampleFinder.java b/src/main/java/org/variantsync/diffdetective/mining/RunningExampleFinder.java
index 6873c824c..3027ba793 100644
--- a/src/main/java/org/variantsync/diffdetective/mining/RunningExampleFinder.java
+++ b/src/main/java/org/variantsync/diffdetective/mining/RunningExampleFinder.java
@@ -26,9 +26,9 @@ public class RunningExampleFinder {
             new TaggedPredicate<>("diff length <= " + DefaultMaxDiffLineCount, t -> diffIsNotLongerThan(t, DefaultMaxDiffLineCount)),
             new TaggedPredicate<>("has nesting before the edit", RunningExampleFinder::hasNestingBeforeEdit),
             new TaggedPredicate<>("has additions", t -> t.anyMatch(DiffNode::isAdd)),
-            new TaggedPredicate<>("code was edited", t -> t.anyMatch(n -> n.isCode() && !n.isNon())),
+            new TaggedPredicate<>("an artifact was edited", t -> t.anyMatch(n -> n.isArtifact() && !n.isNon())),
             DiffTreeFilter.hasAtLeastOneEditToVariability(),
-            DiffTreeFilter.moreThanOneCodeNode(),
+            DiffTreeFilter.moreThanOneArtifactNode(),
             new TaggedPredicate<>("has no annotated macros", t -> !RunningExampleFinder.hasAnnotatedMacros(t)),
             new TaggedPredicate<>("has a complex formula", RunningExampleFinder::hasAtLeastOneComplexFormulaBeforeTheEdit)
     );
@@ -72,7 +72,7 @@ private static boolean diffIsNotLongerThan(final DiffTree t, int maxLines) {
     }
 
     private static boolean hasAnnotatedMacros(final DiffTree diffTree) {
-        return diffTree.anyMatch(n -> n.isCode() && n.getLabel().trim().startsWith("#"));
+        return diffTree.anyMatch(n -> n.isArtifact() && n.getLabel().trim().startsWith("#"));
     }
 
     private static boolean hasNestingBeforeEdit(final DiffTree diffTree) {
@@ -87,7 +87,7 @@ private static boolean hasAtLeastOneComplexFormulaBeforeTheEdit(final DiffTree d
         // We would like to have a complex formula in the tree (complex := not just a positive literal).
         return diffTree.anyMatch(n -> {
             // and the formula should be visible before the edit
-            if (n.isMacro() && !n.isAdd()) {
+            if (n.isAnnotation() && !n.isAdd()) {
                 return isComplexFormula(n.getDirectFeatureMapping());
             }
 
diff --git a/src/main/java/org/variantsync/diffdetective/mining/formats/DebugMiningDiffNodeFormat.java b/src/main/java/org/variantsync/diffdetective/mining/formats/DebugMiningDiffNodeFormat.java
index ad4ddcd20..5e6c745c4 100644
--- a/src/main/java/org/variantsync/diffdetective/mining/formats/DebugMiningDiffNodeFormat.java
+++ b/src/main/java/org/variantsync/diffdetective/mining/formats/DebugMiningDiffNodeFormat.java
@@ -1,49 +1,44 @@
 package org.variantsync.diffdetective.mining.formats;
 
-import org.variantsync.diffdetective.diff.difftree.CodeType;
+import org.variantsync.diffdetective.diff.difftree.NodeType;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
 import org.variantsync.diffdetective.diff.difftree.DiffType;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.editclass.EditClass;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.functjonal.Pair;
 
 import java.util.Arrays;
 
 /**
  * Analogous to {@link ReleaseMiningDiffNodeFormat} but produces human readable labels instead of using integers.
- * Code nodes are labeled with the name of their matched elementary pattern.
- * Macro nodes are labeled with DIFFTYPE_CODETYPE (e.g., an added IF node gets the label ADD_IF).
+ * Artifact nodes are labeled with the name of their matched edit class.
+ * Annotation nodes are labeled with DIFFTYPE_NODETYPE (e.g., an added IF node gets the label ADD_IF).
  */
 public class DebugMiningDiffNodeFormat implements MiningNodeFormat {
 	@Override
 	public String toLabel(final DiffNode node) {
-        if (node.isCode()) {
-            return ProposedElementaryPatterns.Instance.match(node).getName();
-        } else if (node.isRoot()) {
-            return node.diffType + "_" + CodeType.IF;
+        if (node.isArtifact()) {
+            return ProposedEditClasses.Instance.match(node).getName();
         } else {
-            return node.diffType + "_" + node.codeType;
+            return node.diffType + "_" + node.nodeType;
         }
 	}
 
     @Override
-    public Pair<DiffType, CodeType> fromEncodedTypes(String tag) {
+    public Pair<DiffType, NodeType> fromEncodedTypes(String tag) {
         // If the label starts with ADD, REM, or NON
         if (Arrays.stream(DiffType.values()).anyMatch(diffType -> tag.startsWith(diffType.toString()))) {
-            // then it is a macro node
+            // then it is an annotation node
             final DiffType dt = DiffType.fromName(tag);
-            final int codeTypeBegin = tag.indexOf("_") + 1;
-            final CodeType ct = CodeType.fromName(tag.substring(codeTypeBegin));
-            if (ct == CodeType.ROOT) {
-                throw new IllegalArgumentException("There should be no roots in mined patterns!");
-            }
-            return new Pair<>(dt, ct);
+            final int nodeTypeBegin = tag.indexOf("_") + 1;
+            final NodeType nt = NodeType.fromName(tag.substring(nodeTypeBegin));
+            return new Pair<>(dt, nt);
         } else {
-            final ElementaryPattern pattern = ProposedElementaryPatterns.Instance.fromName(tag).orElseThrow(
-                    () -> new IllegalStateException("Label \"" + tag + "\" is neither a macro label, nor an elementary pattern!")
+            final EditClass editClass = ProposedEditClasses.Instance.fromName(tag).orElseThrow(
+                    () -> new IllegalStateException("Label \"" + tag + "\" is neither an annotation label, nor an edit class!")
             );
 
-            return new Pair<>(pattern.getDiffType(), CodeType.CODE);
+            return new Pair<>(editClass.getDiffType(), NodeType.ARTIFACT);
         }
     }
 }
diff --git a/src/main/java/org/variantsync/diffdetective/mining/formats/MiningNodeFormat.java b/src/main/java/org/variantsync/diffdetective/mining/formats/MiningNodeFormat.java
index 8f5fba211..deb7080b1 100644
--- a/src/main/java/org/variantsync/diffdetective/mining/formats/MiningNodeFormat.java
+++ b/src/main/java/org/variantsync/diffdetective/mining/formats/MiningNodeFormat.java
@@ -1,7 +1,7 @@
 package org.variantsync.diffdetective.mining.formats;
 
 import org.variantsync.diffdetective.diff.DiffLineNumber;
-import org.variantsync.diffdetective.diff.difftree.CodeType;
+import org.variantsync.diffdetective.diff.difftree.NodeType;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
 import org.variantsync.diffdetective.diff.difftree.DiffType;
 import org.variantsync.diffdetective.diff.difftree.serialize.nodeformat.DiffNodeLabelFormat;
@@ -9,7 +9,7 @@
 import org.variantsync.functjonal.Pair;
 
 public interface MiningNodeFormat extends DiffNodeLabelFormat {
-    Pair<DiffType, CodeType> fromEncodedTypes(final String tag);
+    Pair<DiffType, NodeType> fromEncodedTypes(final String tag);
 
     @Override
     default DiffNode fromLabelAndId(String lineGraphNodeLabel, int nodeId) {
@@ -18,11 +18,11 @@ default DiffNode fromLabelAndId(String lineGraphNodeLabel, int nodeId) {
         final DiffLineNumber lineTo = new DiffLineNumber(nodeId, nodeId, nodeId);
         final String resultLabel = "";
 
-        final Pair<DiffType, CodeType> types = fromEncodedTypes(lineGraphNodeLabel);
+        final Pair<DiffType, NodeType> types = fromEncodedTypes(lineGraphNodeLabel);
         lineFrom.as(types.first());
         lineTo.as(types.first());
-        if (types.second() == CodeType.CODE) {
-            return DiffNode.createCode(types.first(),
+        if (types.second() == NodeType.ARTIFACT) {
+            return DiffNode.createArtifact(types.first(),
                     lineFrom, lineTo, resultLabel);
         } else {
             return new DiffNode(types.first(), types.second(), lineFrom, lineTo, FixTrueFalse.True, resultLabel);
diff --git a/src/main/java/org/variantsync/diffdetective/mining/formats/ReleaseMiningDiffNodeFormat.java b/src/main/java/org/variantsync/diffdetective/mining/formats/ReleaseMiningDiffNodeFormat.java
index 651ab1f2c..2edf88b4c 100644
--- a/src/main/java/org/variantsync/diffdetective/mining/formats/ReleaseMiningDiffNodeFormat.java
+++ b/src/main/java/org/variantsync/diffdetective/mining/formats/ReleaseMiningDiffNodeFormat.java
@@ -1,30 +1,30 @@
 package org.variantsync.diffdetective.mining.formats;
 
-import org.variantsync.diffdetective.diff.difftree.CodeType;
+import org.variantsync.diffdetective.diff.difftree.NodeType;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
 import org.variantsync.diffdetective.diff.difftree.DiffType;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.editclass.EditClass;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.diffdetective.util.Assert;
 import org.variantsync.functjonal.Pair;
 
 /**
  * Formats for DiffNodes for mining.
- * The label of a node starts with c if it is a code node and with m (for macro) otherwise.
- * The label of code nodes is followed by the index of its matched elementary pattern.
- * The label of diff nodes is followed by the ordinal of its diff type and the ordinal of its code type.
+ * The label of a node starts with c (for code) if it is an artifact node and with m (for macro) otherwise.
+ * The label of artifact nodes is followed by the index of its matched edit class.
+ * The label of diff nodes is followed by the ordinal of its diff type and the ordinal of its node type.
  *
  * Examples:
- * DiffNode with codeType=CODE and elementary pattern AddWithMapping gets the label "c1" because AddWithMapping has index 1.
- * DiffNode with codeType=ELSE and difftype=REM gets the label "m23" because the ordinal or REM is 2 and the ordinal of ELSE is 3.
+ * DiffNode with nodeType=ARTIFACT and edit class AddWithMapping gets the label "c1" because AddWithMapping has index 1.
+ * DiffNode with nodeType=ELSE and difftype=REM gets the label "m23" because the ordinal or REM is 2 and the ordinal of ELSE is 3.
  */
 public class ReleaseMiningDiffNodeFormat implements MiningNodeFormat {
-    public final static String CODE_PREFIX = "c";
-    public final static String MACRO_PREFIX = "m";
+    public final static String ARTIFACT_PREFIX = "c";
+    public final static String ANNOTATION_PREFIX = "m";
 
-    private static int toId(final ElementaryPattern p) {
-        for (int i = 0; i < ProposedElementaryPatterns.All.size(); ++i) {
-            if (p.equals(ProposedElementaryPatterns.All.get(i))) {
+    private static int toId(final EditClass p) {
+        for (int i = 0; i < ProposedEditClasses.All.size(); ++i) {
+            if (p.equals(ProposedEditClasses.All.get(i))) {
                 return i;
             }
         }
@@ -32,39 +32,35 @@ private static int toId(final ElementaryPattern p) {
         throw new IllegalArgumentException("bug");
     }
 
-    private static ElementaryPattern fromId(int id) {
-        return ProposedElementaryPatterns.All.get(id);
+    private static EditClass fromId(int id) {
+        return ProposedEditClasses.All.get(id);
     }
 
     @Override
     public String toLabel(DiffNode node) {
-        if (node.isCode()) {
-            return CODE_PREFIX + toId(ProposedElementaryPatterns.Instance.match(node));
+        if (node.isArtifact()) {
+            return ARTIFACT_PREFIX + toId(ProposedEditClasses.Instance.match(node));
         } else {
-            final CodeType codeType = node.isRoot() ? CodeType.IF : node.codeType;
-            return MACRO_PREFIX + node.diffType.ordinal() + codeType.ordinal();
+            return ANNOTATION_PREFIX + node.diffType.ordinal() + node.nodeType.ordinal();
         }
     }
 
     @Override
-    public Pair<DiffType, CodeType> fromEncodedTypes(String tag) {
-        if (tag.startsWith(CODE_PREFIX)) {
-            final ElementaryPattern pattern = fromId(Integer.parseInt(tag.substring(CODE_PREFIX.length())));
-            return new Pair<>(pattern.getDiffType(), CodeType.CODE);
+    public Pair<DiffType, NodeType> fromEncodedTypes(String tag) {
+        if (tag.startsWith(ARTIFACT_PREFIX)) {
+            final EditClass editClass = fromId(Integer.parseInt(tag.substring(ARTIFACT_PREFIX.length())));
+            return new Pair<>(editClass.getDiffType(), NodeType.ARTIFACT);
         } else {
-            Assert.assertTrue(tag.startsWith(MACRO_PREFIX));
-            final int diffTypeBegin = MACRO_PREFIX.length();
-            final int codeTypeBegin = diffTypeBegin + 1;
+            Assert.assertTrue(tag.startsWith(ANNOTATION_PREFIX));
+            final int diffTypeBegin = ANNOTATION_PREFIX.length();
+            final int nodeTypeBegin = diffTypeBegin + 1;
             final DiffType diffType = DiffType.values()[Integer.parseInt(
-                    tag.substring(diffTypeBegin, codeTypeBegin)
+                    tag.substring(diffTypeBegin, nodeTypeBegin)
             )];
-            final CodeType codeType = CodeType.values()[Integer.parseInt(
-                    tag.substring(codeTypeBegin, codeTypeBegin + 1)
+            final NodeType nodeType = NodeType.values()[Integer.parseInt(
+                    tag.substring(nodeTypeBegin, nodeTypeBegin + 1)
             )];
-            if (codeType == CodeType.ROOT) {
-                throw new IllegalArgumentException("There should be no roots in mined patterns!");
-            }
-            return new Pair<>(diffType, codeType);
+            return new Pair<>(diffType, nodeType);
         }
     }
 }
diff --git a/src/main/java/org/variantsync/diffdetective/mining/postprocessing/MiningPostprocessing.java b/src/main/java/org/variantsync/diffdetective/mining/postprocessing/MiningPostprocessing.java
index ea1018841..7549f240c 100644
--- a/src/main/java/org/variantsync/diffdetective/mining/postprocessing/MiningPostprocessing.java
+++ b/src/main/java/org/variantsync/diffdetective/mining/postprocessing/MiningPostprocessing.java
@@ -21,7 +21,7 @@
 import java.util.stream.Collectors;
 
 /**
- * Performs a postprocessing on mined frequent subgraphs in edits to find semantic edit patterns.
+ * Performs a postprocessing on mined frequent subgraphs in edits to find edit classes.
  */
 public class MiningPostprocessing {
     private static final DiffTreeRenderer DefaultRenderer = DiffTreeRenderer.WithinDiffDetective();
@@ -70,7 +70,7 @@ public static void main(String[] args) throws IOException {
                 outputPath
         );
 
-//        for (Map.Entry<CodeType, Integer> entry : LineGraphImport.countRootTypes.entrySet()) {
+//        for (Map.Entry<NodeType, Integer> entry : LineGraphImport.countRootTypes.entrySet()) {
 //            System.out.println(entry);
 //        }
     }
diff --git a/src/main/java/org/variantsync/diffdetective/mining/postprocessing/Postprocessor.java b/src/main/java/org/variantsync/diffdetective/mining/postprocessing/Postprocessor.java
index 3da49df2d..be79af63a 100644
--- a/src/main/java/org/variantsync/diffdetective/mining/postprocessing/Postprocessor.java
+++ b/src/main/java/org/variantsync/diffdetective/mining/postprocessing/Postprocessor.java
@@ -39,7 +39,7 @@ private Postprocessor(
      * Creates the default filter to distill semantic patterns from frequent subgraphs.
      * This processor will
      *   - filter ill-formed trees
-     *   - filter trees with less than two elementary patterns
+     *   - filter trees with less than two edit classes
      *   - filter duplicates w.r.t. isomorphism
      *   - {@link CutNonEditedSubtrees}
      * @return the default postprocessor.
@@ -50,8 +50,7 @@ public static Postprocessor Default() {
                 List.of(
                         // Filter ill-formed patterns
                         DiffTreeFilter.consistent(),
-                        // filter patterns containing less than two elementary patterns
-                        DiffTreeFilter.moreThanOneCodeNode(),
+                        DiffTreeFilter.moreThanOneArtifactNode(),
                         DiffTreeFilter.hasAtLeastOneEditToVariability()
                 )
         );
diff --git a/src/main/java/org/variantsync/diffdetective/pattern/elementary/ElementaryPattern.java b/src/main/java/org/variantsync/diffdetective/pattern/elementary/ElementaryPattern.java
deleted file mode 100644
index 344f2f514..000000000
--- a/src/main/java/org/variantsync/diffdetective/pattern/elementary/ElementaryPattern.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.variantsync.diffdetective.pattern.elementary;
-
-import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.diff.difftree.DiffTree;
-import org.variantsync.diffdetective.diff.difftree.DiffType;
-import org.variantsync.diffdetective.pattern.EditPattern;
-
-/**
- * Abstract class for elementary edit pattern according to our ESEC/FSE'22 paper.
- * @author Paul Bittner, Sören Viegener
- */
-public abstract class ElementaryPattern extends EditPattern<DiffNode> {
-    private final DiffType diffType;
-
-    /**
-     * Each elementary pattern handles exactly one DiffType.
-     * @param name unique identifier (see {@link EditPattern}).
-     * @param diffType This pattern matches only {@link DiffNode}s of the given {@link DiffType}.
-     */
-    public ElementaryPattern(final String name, final DiffType diffType) {
-        super(name);
-        this.diffType = diffType;
-    }
-
-    /**
-     * Returns the diff type nodes must have to be matched to this pattern.
-     */
-    public DiffType getDiffType() {
-        return diffType;
-    }
-
-    /**
-     * Returns true iff given node matches this pattern.
-     * @param codeNode Node which has code type CODE and whose DiffType is the same as this patterns DiffType.
-     */
-    protected abstract boolean matchesCodeNode(DiffNode codeNode);
-
-    /**
-     * Returns true if this pattern matches the given node and node is code.
-     */
-    @Override
-    public final boolean matches(DiffNode node) {
-        return node.isCode() && node.diffType == diffType && matchesCodeNode(node);
-    }
-
-    /**
-     * Returns true iff this pattern matches at leat one node on the given tree.
-     */
-    public boolean anyMatch(final DiffTree t) {
-        return t.anyMatch(this::matches);
-    }
-}
diff --git a/src/main/java/org/variantsync/diffdetective/pattern/elementary/ElementaryPatternCatalogue.java b/src/main/java/org/variantsync/diffdetective/pattern/elementary/ElementaryPatternCatalogue.java
deleted file mode 100644
index b0c9b2901..000000000
--- a/src/main/java/org/variantsync/diffdetective/pattern/elementary/ElementaryPatternCatalogue.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.variantsync.diffdetective.pattern.elementary;
-
-import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.diff.difftree.DiffType;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * Interface for custom catalogs of elementary edit patterns.
- * @author Paul Bittner
- */
-public interface ElementaryPatternCatalogue {
-    /**
-     * Gives a list of all elementary patterns in this catalogue.
-     * The list should be constant and immutable (i.e., the very same list is returned each time all is invoked).
-     * The elementary patterns should be immutable, too.
-     * @return a constant list of all elementary patterns in this catalogue.
-     */
-    List<ElementaryPattern> all();
-
-    /**
-     * Returns a mapping from diff types to the elementary patterns that may match nodes of the given diff type.
-     * The returned map as well as all its values should be immutable and constant.     *
-     * @return A classification of elementary patterns by their diff types.
-     */
-    Map<DiffType, List<ElementaryPattern>> byType();
-
-    /**
-     * Returns the elementary pattern that matches the given node.
-     * Each node matches exactly one pattern.
-     * @param node The node of which to find its elementary pattern.
-     * @return Returns the elementary pattern that matches the given node.
-     */
-    default ElementaryPattern match(DiffNode node)
-    {
-        if (!node.isCode()) {
-            throw new IllegalArgumentException("Expected a code node but got " + node.codeType + "!");
-        }
-
-        final List<ElementaryPattern> patternsToCheck = byType().get(node.diffType);
-
-        ElementaryPattern match = null;
-        for (final ElementaryPattern p : patternsToCheck) {
-            if (p.matches(node)) {
-                if (match != null) {
-                    throw new RuntimeException("BUG: Error in elementary pattern definition!\n"
-                            + "Node " + node + " matched " + match + " and " + p + "!");
-                }
-                match = p;
-            }
-        }
-
-        if (match == null) {
-            throw new RuntimeException("BUG: Error in elementary pattern definition!\n"
-                    + "Node " + node + " did not match any pattern!");
-        }
-
-        return match;
-    }
-}
diff --git a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/AddWithMapping.java b/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/AddWithMapping.java
deleted file mode 100644
index 88a933a2b..000000000
--- a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/AddWithMapping.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.variantsync.diffdetective.pattern.elementary.proposed;
-
-import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.diff.difftree.DiffType;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
-
-/**
- * Our AddWithMapping pattern from the ESEC/FSE'22 paper.
- * @author Paul Bittner, Sören Viegener
- */
-final class AddWithMapping extends ElementaryPattern {
-    AddWithMapping() {
-        super("AddWithMapping", DiffType.ADD);
-    }
-
-    @Override
-    protected boolean matchesCodeNode(DiffNode codeNode) {
-        return codeNode.getAfterParent().isAdd();
-    }
-}
diff --git a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/Generalization.java b/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/Generalization.java
deleted file mode 100644
index 10bdc6ef9..000000000
--- a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/Generalization.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.variantsync.diffdetective.pattern.elementary.proposed;
-
-import org.prop4j.Node;
-import org.variantsync.diffdetective.analysis.logic.SAT;
-import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.diff.difftree.DiffType;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
-
-/**
- * Our Generalization pattern from the ESEC/FSE'22 paper.
- * @author Paul Bittner, Sören Viegener
- */
-final class Generalization extends ElementaryPattern {
-    Generalization() {
-        super("Generalization", DiffType.NON);
-    }
-
-    @Override
-    protected boolean matchesCodeNode(DiffNode codeNode) {
-        final Node pcb = codeNode.getBeforeFeatureMapping();
-        final Node pca = codeNode.getAfterFeatureMapping();
-        return SAT.implies(pcb, pca) && !SAT.implies(pca, pcb);
-    }
-}
diff --git a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/Reconfiguration.java b/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/Reconfiguration.java
deleted file mode 100644
index 28a829328..000000000
--- a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/Reconfiguration.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.variantsync.diffdetective.pattern.elementary.proposed;
-
-import org.prop4j.Node;
-import org.variantsync.diffdetective.analysis.logic.SAT;
-import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.diff.difftree.DiffType;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
-
-/**
- * Our Reconfiguration pattern from the ESEC/FSE'22 paper.
- * @author Paul Bittner, Sören Viegener
- */
-final class Reconfiguration extends ElementaryPattern {
-    Reconfiguration() {
-        super("Reconfiguration", DiffType.NON);
-    }
-
-    @Override
-    protected boolean matchesCodeNode(DiffNode codeNode) {
-        final Node pcb = codeNode.getBeforeFeatureMapping();
-        final Node pca = codeNode.getAfterFeatureMapping();
-        return !SAT.implies(pcb, pca) && !SAT.implies(pca, pcb);
-    }
-}
diff --git a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/Refactoring.java b/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/Refactoring.java
deleted file mode 100644
index f0067f44a..000000000
--- a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/Refactoring.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.variantsync.diffdetective.pattern.elementary.proposed;
-
-import org.prop4j.Node;
-import org.variantsync.diffdetective.analysis.logic.SAT;
-import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.diff.difftree.DiffType;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
-
-/**
- * Our Refactoring pattern from the ESEC/FSE'22 paper.
- * @author Paul Bittner, Sören Viegener
- */
-final class Refactoring extends ElementaryPattern {
-    Refactoring() {
-        super("Refactoring", DiffType.NON);
-    }
-
-    @Override
-    protected boolean matchesCodeNode(DiffNode codeNode) {
-        final Node pcb = codeNode.getBeforeFeatureMapping();
-        final Node pca = codeNode.getAfterFeatureMapping();
-        return SAT.equivalent(pcb, pca) && !codeNode.beforePathEqualsAfterPath();
-    }
-}
diff --git a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/RemFromPC.java b/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/RemFromPC.java
deleted file mode 100644
index 2e043a19a..000000000
--- a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/RemFromPC.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.variantsync.diffdetective.pattern.elementary.proposed;
-
-import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.diff.difftree.DiffType;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
-
-/**
- * Our RemFromPC pattern from the ESEC/FSE'22 paper.
- * @author Paul Bittner, Sören Viegener
- */
-final class RemFromPC extends ElementaryPattern {
-    RemFromPC() {
-        super("RemFromPC", DiffType.REM);
-    }
-
-    @Override
-    protected boolean matchesCodeNode(DiffNode codeNode) {
-        return !codeNode.getBeforeParent().isRem();
-    }
-}
diff --git a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/RemWithMapping.java b/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/RemWithMapping.java
deleted file mode 100644
index 7ec0b6ae8..000000000
--- a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/RemWithMapping.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.variantsync.diffdetective.pattern.elementary.proposed;
-
-import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.diff.difftree.DiffType;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
-
-/**
- * Our RemWithMapping pattern from the ESEC/FSE'22 paper.
- * @author Paul Bittner, Sören Viegener
- */
-final class RemWithMapping extends ElementaryPattern {
-    RemWithMapping() {
-        super("RemWithMapping", DiffType.REM);
-    }
-
-    @Override
-    protected boolean matchesCodeNode(DiffNode codeNode) {
-        return codeNode.getBeforeParent().isRem();
-    }
-}
diff --git a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/Specialization.java b/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/Specialization.java
deleted file mode 100644
index 1648b5555..000000000
--- a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/Specialization.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.variantsync.diffdetective.pattern.elementary.proposed;
-
-import org.prop4j.Node;
-import org.variantsync.diffdetective.analysis.logic.SAT;
-import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.diff.difftree.DiffType;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
-
-/**
- * Our Specialization pattern from the ESEC/FSE'22 paper.
- * @author Paul Bittner, Sören Viegener
- */
-final class Specialization extends ElementaryPattern {
-    Specialization() {
-        super("Specialization", DiffType.NON);
-    }
-
-    @Override
-    protected boolean matchesCodeNode(DiffNode codeNode) {
-        final Node pcb = codeNode.getBeforeFeatureMapping();
-        final Node pca = codeNode.getAfterFeatureMapping();
-        return !SAT.implies(pcb, pca) && SAT.implies(pca, pcb);
-    }
-}
diff --git a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/Untouched.java b/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/Untouched.java
deleted file mode 100644
index 2e9269512..000000000
--- a/src/main/java/org/variantsync/diffdetective/pattern/elementary/proposed/Untouched.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.variantsync.diffdetective.pattern.elementary.proposed;
-
-import org.prop4j.Node;
-import org.variantsync.diffdetective.analysis.logic.SAT;
-import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.diff.difftree.DiffType;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
-
-/**
- * Our Untouched pattern from the ESEC/FSE'22 paper.
- * @author Paul Bittner, Sören Viegener
- */
-public class Untouched extends ElementaryPattern {
-    Untouched() {
-        super("Untouched", DiffType.NON);
-    }
-
-    @Override
-    protected boolean matchesCodeNode(DiffNode codeNode) {
-        final Node pcb = codeNode.getBeforeFeatureMapping();
-        final Node pca = codeNode.getAfterFeatureMapping();
-        return SAT.equivalent(pcb, pca) && codeNode.beforePathEqualsAfterPath();
-    }
-}
\ No newline at end of file
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/analysis/GDAnalyzer.java b/src/main/java/org/variantsync/diffdetective/preliminary/analysis/GDAnalyzer.java
index eaa8bdc51..086b93c90 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/analysis/GDAnalyzer.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/analysis/GDAnalyzer.java
@@ -2,7 +2,7 @@
 
 import org.variantsync.diffdetective.diff.CommitDiff;
 import org.variantsync.diffdetective.diff.PatchDiff;
-import org.variantsync.diffdetective.pattern.EditPattern;
+import org.variantsync.diffdetective.preliminary.pattern.Pattern;
 import org.variantsync.diffdetective.preliminary.GitDiff;
 import org.variantsync.diffdetective.preliminary.analysis.data.CommitDiffAnalysisResult;
 import org.variantsync.diffdetective.preliminary.analysis.data.GDAnalysisResult;
@@ -25,7 +25,7 @@ public abstract class GDAnalyzer<E> {
 
     public GDAnalyzer(GitDiff gitDiff, List<FeatureContextReverseEngineering<E>> patterns) {
         this.gitDiff = gitDiff;
-//        List<EditPattern<DiffNode>> patternList = new ArrayList<>(Arrays.asList(patterns));
+//        List<Pattern<DiffNode>> patternList = new ArrayList<>(Arrays.asList(patterns));
 //        patternList.add(0, new InvalidPatchPattern<>());
         this.patterns = patterns;
     }
@@ -34,7 +34,7 @@ public List<FeatureContextReverseEngineering<E>> getReverseEngineerings() {
         return patterns;
     }
 
-    public List<EditPattern<E>> getPatterns() {
+    public List<Pattern<E>> getPatterns() {
         return patterns.stream().map(FeatureContextReverseEngineering::getPattern).collect(Collectors.toList());
     }
 
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/analysis/TreeGDAnalyzer.java b/src/main/java/org/variantsync/diffdetective/preliminary/analysis/TreeGDAnalyzer.java
index fc6ee0b3f..0a519cb77 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/analysis/TreeGDAnalyzer.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/analysis/TreeGDAnalyzer.java
@@ -3,7 +3,7 @@
 import org.variantsync.diffdetective.diff.PatchDiff;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
 import org.variantsync.diffdetective.diff.difftree.DiffTree;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
+import org.variantsync.diffdetective.editclass.EditClass;
 import org.variantsync.diffdetective.preliminary.GitDiff;
 import org.variantsync.diffdetective.preliminary.analysis.data.PatchDiffAnalysisResult;
 import org.variantsync.diffdetective.preliminary.analysis.data.PatternMatch;
@@ -67,9 +67,9 @@ protected PatchDiffAnalysisResult analyzePatch(PatchDiff patchDiff) {
         DiffTree diffTree = patchDiff.getDiffTree();
         if(diffTree != null) {
             // match atomic patterns
-            for (DiffNode diffNode : diffTree.computeCodeNodes()) {
+            for (DiffNode diffNode : diffTree.computeArtifactNodes()) {
                 for (FeatureContextReverseEngineering<DiffNode> pattern : patterns) {
-                    if (pattern.getPattern() instanceof ElementaryPattern) {
+                    if (pattern.getPattern() instanceof EditClass) {
                         results.add(pattern.createMatch(diffNode));
 //                        pattern.match(diffNode).ifPresent(results::add);
                     }
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/analysis/data/PatternMatch.java b/src/main/java/org/variantsync/diffdetective/preliminary/analysis/data/PatternMatch.java
index bda24c55c..7c9c9e421 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/analysis/data/PatternMatch.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/analysis/data/PatternMatch.java
@@ -1,7 +1,7 @@
 package org.variantsync.diffdetective.preliminary.analysis.data;
 
 import org.prop4j.Node;
-import org.variantsync.diffdetective.pattern.EditPattern;
+import org.variantsync.diffdetective.preliminary.pattern.Pattern;
 import org.variantsync.diffdetective.preliminary.evaluation.FeatureContext;
 import org.variantsync.diffdetective.preliminary.pattern.FeatureContextReverseEngineering;
 
@@ -50,7 +50,7 @@ public String getPatternName() {
         return pattern.getPattern().getName();
     }
 
-    public EditPattern<E> getPattern() {
+    public Pattern<E> getPattern() {
         return pattern.getPattern();
     }
 
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/evaluation/GDEvaluator.java b/src/main/java/org/variantsync/diffdetective/preliminary/evaluation/GDEvaluator.java
index 4c4dbb62e..3ecc7178f 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/evaluation/GDEvaluator.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/evaluation/GDEvaluator.java
@@ -8,7 +8,7 @@
 import org.tinylog.Logger;
 import org.variantsync.diffdetective.diff.PatchDiff;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.pattern.EditPattern;
+import org.variantsync.diffdetective.preliminary.pattern.Pattern;
 import org.variantsync.diffdetective.preliminary.analysis.GDAnalyzer;
 import org.variantsync.diffdetective.preliminary.analysis.data.CommitDiffAnalysisResult;
 import org.variantsync.diffdetective.preliminary.analysis.data.GDAnalysisResult;
@@ -68,7 +68,7 @@ private List<PatternMatchEvaluation> getEvaluations() {
      * @param patterns The patterns to search for
      * @return An int array containing the amount of matches for each pattern
      */
-    public <E> int[] getPatternCounts(List<EditPattern<E>> patterns) {
+    public <E> int[] getPatternCounts(List<Pattern<E>> patterns) {
         int[] patternCounts = new int[patterns.size()];
 
         for (PatternMatchEvaluation pme : pmEvaluations) {
@@ -105,7 +105,7 @@ public <E> int[] getPatchesWithPatternCounts(List<FeatureContextReverseEngineeri
         return patternCounts;
     }
 
-    private <E> int[] getLineCounts(List<EditPattern<E>> patterns) {
+    private <E> int[] getLineCounts(List<Pattern<E>> patterns) {
         int[] lineCounts = new int[patterns.size()];
 
         for (PatternMatchEvaluation pme : pmEvaluations) {
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/FeatureContextReverseEngineering.java b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/FeatureContextReverseEngineering.java
index f93f7d364..17ad208bf 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/FeatureContextReverseEngineering.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/FeatureContextReverseEngineering.java
@@ -1,6 +1,6 @@
 package org.variantsync.diffdetective.preliminary.pattern;
 
-import org.variantsync.diffdetective.pattern.EditPattern;
+import org.variantsync.diffdetective.preliminary.pattern.Pattern;
 import org.variantsync.diffdetective.preliminary.analysis.data.PatternMatch;
 import org.variantsync.diffdetective.preliminary.evaluation.FeatureContext;
 
@@ -8,7 +8,7 @@
 
 @Deprecated
 public interface FeatureContextReverseEngineering<E> {
-    EditPattern<E> getPattern();
+    Pattern<E> getPattern();
     /**
      * Creates a PatternMatch object for the given element.
      * Assumes {@code matches(codeNode) == true}.
diff --git a/src/main/java/org/variantsync/diffdetective/pattern/EditPattern.java b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/Pattern.java
similarity index 85%
rename from src/main/java/org/variantsync/diffdetective/pattern/EditPattern.java
rename to src/main/java/org/variantsync/diffdetective/preliminary/pattern/Pattern.java
index c832df8ee..cd0e021dd 100644
--- a/src/main/java/org/variantsync/diffdetective/pattern/EditPattern.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/Pattern.java
@@ -1,4 +1,4 @@
-package org.variantsync.diffdetective.pattern;
+package org.variantsync.diffdetective.preliminary.pattern;
 
 /**
  * Abstract class for edit patterns.
@@ -6,7 +6,7 @@
  * @param <E> Type of elements on which the pattern may be matched.
  * @author Sören Viegener, Paul Bittner
  */
-public abstract class EditPattern<E> {
+public abstract class Pattern<E> {
     /**
      * The name that uniquely identifies this pattern.
      */
@@ -16,7 +16,7 @@ public abstract class EditPattern<E> {
      * Create a new pattern with the given name.
      * @param name Unique identifier.
      */
-    public EditPattern(final String name) {
+    public Pattern(final String name) {
         this.name = name;
     }
 
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfAddToPC.java b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfAddToPC.java
index 671655574..d88b2a11b 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfAddToPC.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfAddToPC.java
@@ -3,8 +3,8 @@
 import org.prop4j.Node;
 import org.variantsync.diffdetective.diff.Lines;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.pattern.EditPattern;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.preliminary.pattern.Pattern;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.diffdetective.preliminary.analysis.data.PatternMatch;
 import org.variantsync.diffdetective.preliminary.evaluation.FeatureContext;
 import org.variantsync.diffdetective.preliminary.pattern.FeatureContextReverseEngineering;
@@ -12,8 +12,8 @@
 @Deprecated
 public final class FeatureContextOfAddToPC implements FeatureContextReverseEngineering<DiffNode> {
     @Override
-    public EditPattern<DiffNode> getPattern() {
-        return ProposedElementaryPatterns.AddToPC;
+    public Pattern<DiffNode> getPattern() {
+        return ProposedEditClasses.AddToPC;
     }
 
     @Override
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfAddWithMapping.java b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfAddWithMapping.java
index d2c63a6ab..883ec9177 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfAddWithMapping.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfAddWithMapping.java
@@ -3,8 +3,8 @@
 import org.prop4j.Node;
 import org.variantsync.diffdetective.diff.Lines;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.pattern.EditPattern;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.preliminary.pattern.Pattern;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.diffdetective.preliminary.analysis.data.PatternMatch;
 import org.variantsync.diffdetective.preliminary.evaluation.FeatureContext;
 import org.variantsync.diffdetective.preliminary.pattern.FeatureContextReverseEngineering;
@@ -12,8 +12,8 @@
 @Deprecated
 public final class FeatureContextOfAddWithMapping implements FeatureContextReverseEngineering<DiffNode> {
     @Override
-    public EditPattern<DiffNode> getPattern() {
-        return ProposedElementaryPatterns.AddWithMapping;
+    public Pattern<DiffNode> getPattern() {
+        return ProposedEditClasses.AddWithMapping;
     }
 
     @Override
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfGeneralization.java b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfGeneralization.java
index 4bf86a327..b5dade470 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfGeneralization.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfGeneralization.java
@@ -2,8 +2,8 @@
 
 import org.variantsync.diffdetective.diff.Lines;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.pattern.EditPattern;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.preliminary.pattern.Pattern;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.diffdetective.preliminary.analysis.data.PatternMatch;
 import org.variantsync.diffdetective.preliminary.evaluation.FeatureContext;
 import org.variantsync.diffdetective.preliminary.pattern.FeatureContextReverseEngineering;
@@ -11,8 +11,8 @@
 @Deprecated
 public final class FeatureContextOfGeneralization implements FeatureContextReverseEngineering<DiffNode> {
     @Override
-    public EditPattern<DiffNode> getPattern() {
-        return ProposedElementaryPatterns.Generalization;
+    public Pattern<DiffNode> getPattern() {
+        return ProposedEditClasses.Generalization;
     }
 
     @Override
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfReconfiguration.java b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfReconfiguration.java
index 8ce8e34f2..5feebca18 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfReconfiguration.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfReconfiguration.java
@@ -2,8 +2,8 @@
 
 import org.variantsync.diffdetective.diff.Lines;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.pattern.EditPattern;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.preliminary.pattern.Pattern;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.diffdetective.preliminary.analysis.data.PatternMatch;
 import org.variantsync.diffdetective.preliminary.evaluation.FeatureContext;
 import org.variantsync.diffdetective.preliminary.pattern.FeatureContextReverseEngineering;
@@ -11,8 +11,8 @@
 @Deprecated
 public final class FeatureContextOfReconfiguration implements FeatureContextReverseEngineering<DiffNode> {
     @Override
-    public EditPattern<DiffNode> getPattern() {
-        return ProposedElementaryPatterns.Reconfiguration;
+    public Pattern<DiffNode> getPattern() {
+        return ProposedEditClasses.Reconfiguration;
     }
 
     @Override
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfRefactoring.java b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfRefactoring.java
index fda24e346..64bb2bec7 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfRefactoring.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfRefactoring.java
@@ -2,8 +2,8 @@
 
 import org.variantsync.diffdetective.diff.Lines;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.pattern.EditPattern;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.preliminary.pattern.Pattern;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.diffdetective.preliminary.analysis.data.PatternMatch;
 import org.variantsync.diffdetective.preliminary.evaluation.FeatureContext;
 import org.variantsync.diffdetective.preliminary.pattern.FeatureContextReverseEngineering;
@@ -11,8 +11,8 @@
 @Deprecated
 public final class FeatureContextOfRefactoring implements FeatureContextReverseEngineering<DiffNode> {
     @Override
-    public EditPattern<DiffNode> getPattern() {
-        return ProposedElementaryPatterns.Refactoring;
+    public Pattern<DiffNode> getPattern() {
+        return ProposedEditClasses.Refactoring;
     }
 
     @Override
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfRemFromPC.java b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfRemFromPC.java
index 8550745d2..d8ab176fe 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfRemFromPC.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfRemFromPC.java
@@ -3,8 +3,8 @@
 import org.prop4j.Node;
 import org.variantsync.diffdetective.diff.Lines;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.pattern.EditPattern;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.preliminary.pattern.Pattern;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.diffdetective.preliminary.analysis.data.PatternMatch;
 import org.variantsync.diffdetective.preliminary.evaluation.FeatureContext;
 import org.variantsync.diffdetective.preliminary.pattern.FeatureContextReverseEngineering;
@@ -12,8 +12,8 @@
 @Deprecated
 public final class FeatureContextOfRemFromPC implements FeatureContextReverseEngineering<DiffNode> {
     @Override
-    public EditPattern<DiffNode> getPattern() {
-        return ProposedElementaryPatterns.RemFromPC;
+    public Pattern<DiffNode> getPattern() {
+        return ProposedEditClasses.RemFromPC;
     }
 
     @Override
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfRemWithMapping.java b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfRemWithMapping.java
index d4e70f820..af21ac27e 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfRemWithMapping.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfRemWithMapping.java
@@ -3,8 +3,8 @@
 import org.prop4j.Node;
 import org.variantsync.diffdetective.diff.Lines;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.pattern.EditPattern;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.preliminary.pattern.Pattern;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.diffdetective.preliminary.analysis.data.PatternMatch;
 import org.variantsync.diffdetective.preliminary.evaluation.FeatureContext;
 import org.variantsync.diffdetective.preliminary.pattern.FeatureContextReverseEngineering;
@@ -12,8 +12,8 @@
 @Deprecated
 public final class FeatureContextOfRemWithMapping implements FeatureContextReverseEngineering<DiffNode> {
     @Override
-    public EditPattern<DiffNode> getPattern() {
-        return ProposedElementaryPatterns.RemWithMapping;
+    public Pattern<DiffNode> getPattern() {
+        return ProposedEditClasses.RemWithMapping;
     }
 
     @Override
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfSpecialization.java b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfSpecialization.java
index f418034ed..527f92b21 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfSpecialization.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfSpecialization.java
@@ -2,8 +2,8 @@
 
 import org.variantsync.diffdetective.diff.Lines;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.pattern.EditPattern;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.preliminary.pattern.Pattern;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.diffdetective.preliminary.analysis.data.PatternMatch;
 import org.variantsync.diffdetective.preliminary.evaluation.FeatureContext;
 import org.variantsync.diffdetective.preliminary.pattern.FeatureContextReverseEngineering;
@@ -11,8 +11,8 @@
 @Deprecated
 public final class FeatureContextOfSpecialization implements FeatureContextReverseEngineering<DiffNode> {
     @Override
-    public EditPattern<DiffNode> getPattern() {
-        return ProposedElementaryPatterns.Specialization;
+    public Pattern<DiffNode> getPattern() {
+        return ProposedEditClasses.Specialization;
     }
 
     @Override
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfUntouched.java b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfUntouched.java
index df3deead1..191d6dbe0 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfUntouched.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/elementary/FeatureContextOfUntouched.java
@@ -2,8 +2,8 @@
 
 import org.variantsync.diffdetective.diff.Lines;
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.pattern.EditPattern;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.preliminary.pattern.Pattern;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.diffdetective.preliminary.analysis.data.PatternMatch;
 import org.variantsync.diffdetective.preliminary.evaluation.FeatureContext;
 import org.variantsync.diffdetective.preliminary.pattern.FeatureContextReverseEngineering;
@@ -11,8 +11,8 @@
 @Deprecated
 public class FeatureContextOfUntouched implements FeatureContextReverseEngineering<DiffNode> {
     @Override
-    public EditPattern<DiffNode> getPattern() {
-        return ProposedElementaryPatterns.Untouched;
+    public Pattern<DiffNode> getPattern() {
+        return ProposedEditClasses.Untouched;
     }
 
     @Override
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/AddIfdefElif.java b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/AddIfdefElif.java
index 312c194c1..f649a2c23 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/AddIfdefElif.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/AddIfdefElif.java
@@ -31,7 +31,7 @@ public Optional<PatternMatch<DiffNode>> match(DiffNode annotationNode) {
             boolean addedCodeInIf = false;
             DiffNode elifNode = null;
             for(DiffNode child : annotationNode.getAllChildren()){
-                if(child.isCode() && child.isAdd()){
+                if(child.isArtifact() && child.isAdd()){
                     addedCodeInIf = true;
                 }
                 if(child.isElif() && child.isAdd()){
@@ -60,7 +60,7 @@ private boolean isValidElif(DiffNode elifNode, List<Node> mappings) {
         DiffNode nextNode = null;
 
         for(DiffNode child : elifNode.getAllChildren()){
-            if(child.isCode() && child.isAdd()){
+            if(child.isArtifact() && child.isAdd()){
                 addedCode = true;
             }
             if((child.isElif() || child.isElse()) && child.isAdd()){
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/AddIfdefElse.java b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/AddIfdefElse.java
index 61ea00a65..e7552cb6d 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/AddIfdefElse.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/AddIfdefElse.java
@@ -30,7 +30,7 @@ public Optional<PatternMatch<DiffNode>> match(DiffNode annotationNode) {
                 if(child.isElif()){
                     return Optional.empty();
                 }
-                if(child.isCode() && child.isAdd()){
+                if(child.isArtifact() && child.isAdd()){
                     addedCodeInIf = true;
                 }
                 if(child.isElse() && child.isAdd()){
@@ -44,7 +44,7 @@ public Optional<PatternMatch<DiffNode>> match(DiffNode annotationNode) {
 
             boolean addedCodeInElse = false;
             for(DiffNode child : elseNode.getAllChildren()) {
-                if(child.isCode() && child.isAdd()){
+                if(child.isArtifact() && child.isAdd()){
                     addedCodeInElse = true;
                 }
             }
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/AddIfdefWrapElse.java b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/AddIfdefWrapElse.java
index 07857a3e9..de0746ee1 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/AddIfdefWrapElse.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/AddIfdefWrapElse.java
@@ -29,7 +29,7 @@ public Optional<PatternMatch<DiffNode>> match(DiffNode annotationNode) {
                 if(child.isElif()){
                     return Optional.empty();
                 }
-                if(child.isCode() && child.isAdd()){
+                if(child.isArtifact() && child.isAdd()){
                     addedCodeInIf = true;
                 }
                 if(child.isElse() && child.isAdd()){
@@ -43,7 +43,7 @@ public Optional<PatternMatch<DiffNode>> match(DiffNode annotationNode) {
 
             boolean noneCodeInElse = false;
             for(DiffNode child : elseNode.getAllChildren()){
-                if(child.isCode() && child.isNon()){
+                if(child.isArtifact() && child.isNon()){
                     noneCodeInElse = true;
                 }
             }
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/AddIfdefWrapThen.java b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/AddIfdefWrapThen.java
index 35d3291b2..ab673caae 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/AddIfdefWrapThen.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/AddIfdefWrapThen.java
@@ -30,7 +30,7 @@ public Optional<PatternMatch<DiffNode>> match(DiffNode annotationNode) {
                 if(child.isElif()){
                     return Optional.empty();
                 }
-                if(child.isCode() && child.isNon()){
+                if(child.isArtifact() && child.isNon()){
                     nonCodeInIf = true;
                 }
                 if(child.isElse() && child.isAdd()){
@@ -44,7 +44,7 @@ public Optional<PatternMatch<DiffNode>> match(DiffNode annotationNode) {
 
             boolean addedCodeInElse = false;
             for(DiffNode child : elseNode.getAllChildren()){
-                if(child.isCode() && child.isAdd()){
+                if(child.isArtifact() && child.isAdd()){
                     addedCodeInElse = true;
                 }
             }
diff --git a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/SemanticPattern.java b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/SemanticPattern.java
index 4194e582e..9aede0b44 100644
--- a/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/SemanticPattern.java
+++ b/src/main/java/org/variantsync/diffdetective/preliminary/pattern/semantic/SemanticPattern.java
@@ -1,7 +1,7 @@
 package org.variantsync.diffdetective.preliminary.pattern.semantic;
 
 import org.variantsync.diffdetective.diff.difftree.DiffNode;
-import org.variantsync.diffdetective.pattern.EditPattern;
+import org.variantsync.diffdetective.preliminary.pattern.Pattern;
 import org.variantsync.diffdetective.preliminary.analysis.data.PatternMatch;
 import org.variantsync.diffdetective.preliminary.pattern.FeatureContextReverseEngineering;
 
@@ -9,7 +9,7 @@
 import java.util.Optional;
 
 @Deprecated
-public abstract class SemanticPattern extends EditPattern<DiffNode> implements FeatureContextReverseEngineering<DiffNode> {
+public abstract class SemanticPattern extends Pattern<DiffNode> implements FeatureContextReverseEngineering<DiffNode> {
     public static final SemanticPattern AddIfdefElif = new AddIfdefElif();
     public static final SemanticPattern AddIfdefElse = new AddIfdefElse();
     public static final SemanticPattern AddIfdefWrapElse = new AddIfdefWrapElse();
@@ -37,7 +37,7 @@ public PatternMatch<DiffNode> createMatch(DiffNode diffNode) {
     }
 
     @Override
-    public EditPattern<DiffNode> getPattern() {
+    public Pattern<DiffNode> getPattern() {
         return this;
     }
 }
diff --git a/src/main/java/org/variantsync/diffdetective/shell/ShellException.java b/src/main/java/org/variantsync/diffdetective/shell/ShellException.java
index c88fcb1e2..f98c25115 100644
--- a/src/main/java/org/variantsync/diffdetective/shell/ShellException.java
+++ b/src/main/java/org/variantsync/diffdetective/shell/ShellException.java
@@ -21,7 +21,7 @@ public ShellException(Exception e) {
 
     /**
      * Constructs a {@code ShellException} on command failures indicated by an exit code.
-     * If possible both {@code stdout} and {@code stderr} should be provided in @{code output}.
+     * If possible both {@code stdout} and {@code stderr} should be provided in {@code output}.
      */
     public ShellException(List<String> output) {
         super(convert(output));
diff --git a/src/main/java/org/variantsync/diffdetective/tablegen/MiningResultAccumulator.java b/src/main/java/org/variantsync/diffdetective/tablegen/MiningResultAccumulator.java
index 45d7d2a37..1012d9e80 100644
--- a/src/main/java/org/variantsync/diffdetective/tablegen/MiningResultAccumulator.java
+++ b/src/main/java/org/variantsync/diffdetective/tablegen/MiningResultAccumulator.java
@@ -93,8 +93,8 @@ public static AnalysisResult computeTotalMetadataResult(final Collection<Analysi
      * <ul>
      *   <li>Whether the results are filtered to only include the biggest datasets.
      *   <li>Whether the amount of each edit type is given in absolute or relative numbers.
-     *   <li>Whether the edit count of each pattern or only the share of edit pattern editing the
-     *   variability is included.
+     *   <li>Whether the edit count of each edit class or only the share of edit classes editing
+     *   the variability is included.
      * </ul>
      *
      * @see getAllTotalResultsIn
diff --git a/src/main/java/org/variantsync/diffdetective/tablegen/styles/ShortTable.java b/src/main/java/org/variantsync/diffdetective/tablegen/styles/ShortTable.java
index 9b4def3d6..b235094e9 100644
--- a/src/main/java/org/variantsync/diffdetective/tablegen/styles/ShortTable.java
+++ b/src/main/java/org/variantsync/diffdetective/tablegen/styles/ShortTable.java
@@ -1,9 +1,9 @@
 package org.variantsync.diffdetective.tablegen.styles;
 
 import org.apache.commons.lang3.function.TriFunction;
-import org.variantsync.diffdetective.metadata.ElementaryPatternCount;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.metadata.EditClassCount;
+import org.variantsync.diffdetective.editclass.EditClass;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.diffdetective.tablegen.ColumnDefinition;
 import org.variantsync.diffdetective.tablegen.Row;
 import org.variantsync.diffdetective.tablegen.TableDefinition;
@@ -24,8 +24,8 @@
  *   <li>a dataset description
  *   <li>commit counts
  *   <li>diff counts
- *   <li>the number of artefact nodes
- *   <li>elementary pattern counts, either absolute or relative to the total count of all patterns
+ *   <li>the number of artifact nodes
+ *   <li>edit class counts, either absolute or relative to the total count of all edit classes
  *   <li>processing time
  * </ul>
  *
@@ -43,7 +43,7 @@ private ShortTable(boolean filtered) {
     }
 
     /**
-     * Constructs a table template with absolute pattern counts.
+     * Constructs a table template with absolute edit class counts.
      *
      * @param filtered if {@code true}, the rows will be filtered to only contain the biggest
      * datasets
@@ -55,7 +55,7 @@ public static ShortTable Absolute(boolean filtered) {
     }
 
     /**
-     * Constructs a table template with relative pattern counts.
+     * Constructs a table template with relative edit class counts.
      *
      * @param filtered if {@code true}, the rows will be filtered to only contain the biggest
      * datasets
@@ -70,9 +70,9 @@ public static ShortTable Relative(boolean filtered) {
      * Returns a list of all columns contained in this table.
      *
      * @param t instance to this class, used for formatting with {@link makeReadable}
-     * @param getPatternCount function to extract the pattern count of a row
+     * @param getEditClassCount function to extract the edit class count of a row
      */
-    private static List<ColumnDefinition> columns(final ShortTable t, final TriFunction<ShortTable, ElementaryPattern, ContentRow, String> getPatternCount) {
+    private static List<ColumnDefinition> columns(final ShortTable t, final TriFunction<ShortTable, EditClass, ContentRow, String> getEditClassCount) {
         final List<ColumnDefinition> cols = new ArrayList<>(List.of(
                 col("Name", LEFT, row -> row.dataset().name().toLowerCase(Locale.US)),
                 col("Domain", LEFT_DASH, row -> row.dataset().domain()),
@@ -81,17 +81,17 @@ private static List<ColumnDefinition> columns(final ShortTable t, final TriFunct
                 col("\\#diffs", RIGHT, row -> t.makeReadable(row.results().exportedTrees)),
                 col("\\#artifact nodes", RIGHT_DASH, row -> t.makeReadable(row
                         .results()
-                        .elementaryPatternCounts
+                        .editClassCounts
                         .getOccurences()
                         .values().stream()
-                        .map(ElementaryPatternCount.Occurrences::getTotalAmount)
+                        .map(EditClassCount.Occurrences::getTotalAmount)
                         .reduce(0, Integer::sum)
                 ))
         ));
 
-        for (final ElementaryPattern a : ProposedElementaryPatterns.Instance.all()) {
-            if (a != ProposedElementaryPatterns.Untouched) {
-                cols.add(col(a.getName(), RIGHT, row -> getPatternCount.apply(t, a, row)));
+        for (final EditClass a : ProposedEditClasses.Instance.all()) {
+            if (a != ProposedEditClasses.Untouched) {
+                cols.add(col(a.getName(), RIGHT, row -> getEditClassCount.apply(t, a, row)));
             }
         }
 
@@ -103,39 +103,39 @@ private static List<ColumnDefinition> columns(final ShortTable t, final TriFunct
     }
 
     /**
-     * Returns a formatted string of the absolute number of occurrences of {@code pattern} in
+     * Returns a formatted string of the absolute number of occurrences of {@code editClass} in
      * {@code row}.
      * The signature of this method is suitable to be passed to {@link column}.
      *
      * @param t an instance of this class contained in the column definition
-     * @param pattern the pattern to count
-     * @param row the data to count {@code pattern} in
+     * @param editClass the edit class to count
+     * @param row the data to count {@code editClass} in
      * @see column
      */
-    private static String absoluteCountOf(final ShortTable t, final ElementaryPattern pattern, final ContentRow row) {
-        return t.makeReadable(row.results().elementaryPatternCounts.getOccurences().get(pattern).getTotalAmount());
+    private static String absoluteCountOf(final ShortTable t, final EditClass editClass, final ContentRow row) {
+        return t.makeReadable(row.results().editClassCounts.getOccurences().get(editClass).getTotalAmount());
     }
 
     /**
-     * Returns a formatted string of the relative number of occurrences of {@code pattern} in
+     * Returns a formatted string of the relative number of occurrences of {@code editClass} in
      * {@code row}.
      * The signature of this method is suitable to be passed to {@link column}.
      *
      * @param t an instance of this class contained in the column definition
-     * @param pattern the pattern to count
-     * @param row the data to count {@code pattern} in
+     * @param editClass the edit class to count
+     * @param row the data to count {@code editClass} in
      * @see column
      */
-    private static String relativeCountOf(final ShortTable t, final ElementaryPattern pattern, final ContentRow row) {
-        final LinkedHashMap<ElementaryPattern, ElementaryPatternCount.Occurrences> patternOccurrences =
-                row.results().elementaryPatternCounts.getOccurences();
+    private static String relativeCountOf(final ShortTable t, final EditClass editClass, final ContentRow row) {
+        final LinkedHashMap<EditClass, EditClassCount.Occurrences> editClassOccurrences =
+                row.results().editClassCounts.getOccurences();
 
         int numTotalMatches = 0;
-        for (final Map.Entry<ElementaryPattern, ElementaryPatternCount.Occurrences> occurrence : patternOccurrences.entrySet()) {
+        for (final Map.Entry<EditClass, EditClassCount.Occurrences> occurrence : editClassOccurrences.entrySet()) {
             numTotalMatches += occurrence.getValue().getTotalAmount();
         }
 
-        return t.makeReadable(100.0 * ((double) patternOccurrences.get(pattern).getTotalAmount()) / ((double) numTotalMatches)) + "\\%";
+        return t.makeReadable(100.0 * ((double) editClassOccurrences.get(editClass).getTotalAmount()) / ((double) numTotalMatches)) + "\\%";
     }
 
     /**
diff --git a/src/main/java/org/variantsync/diffdetective/tablegen/styles/Table1.java b/src/main/java/org/variantsync/diffdetective/tablegen/styles/Table1.java
index 1f64342b8..fa502418b 100644
--- a/src/main/java/org/variantsync/diffdetective/tablegen/styles/Table1.java
+++ b/src/main/java/org/variantsync/diffdetective/tablegen/styles/Table1.java
@@ -1,7 +1,7 @@
 package org.variantsync.diffdetective.tablegen.styles;
 
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.editclass.EditClass;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.diffdetective.tablegen.Row;
 import org.variantsync.diffdetective.tablegen.TableDefinition;
 import org.variantsync.diffdetective.tablegen.TableGenerator;
@@ -21,7 +21,7 @@
  *   <li>a dataset description
  *   <li>commit counts
  *   <li>diff counts
- *   <li>elementary pattern counts
+ *   <li>edit class counts
  *   <li>processing time
  * </ul>
  */
@@ -37,8 +37,8 @@ public Table1() {
                 col("\\#diffs", RIGHT, row -> makeReadable(row.results().exportedTrees))
         ));
 
-        for (final ElementaryPattern a : ProposedElementaryPatterns.Instance.all()) {
-            this.columnDefinitions.add(col(a.getName(), RIGHT, row ->  makeReadable(row.results().elementaryPatternCounts.getOccurences().get(a).getTotalAmount())));
+        for (final EditClass a : ProposedEditClasses.Instance.all()) {
+            this.columnDefinitions.add(col(a.getName(), RIGHT, row ->  makeReadable(row.results().editClassCounts.getOccurences().get(a).getTotalAmount())));
         }
 
         this.columnDefinitions.add(col("runtime (s)", RIGHT, row -> makeReadable(row.results().runtimeInSeconds)));
diff --git a/src/main/java/org/variantsync/diffdetective/tablegen/styles/VariabilityShare.java b/src/main/java/org/variantsync/diffdetective/tablegen/styles/VariabilityShare.java
index 246a27ce2..4b0471401 100644
--- a/src/main/java/org/variantsync/diffdetective/tablegen/styles/VariabilityShare.java
+++ b/src/main/java/org/variantsync/diffdetective/tablegen/styles/VariabilityShare.java
@@ -1,8 +1,8 @@
 package org.variantsync.diffdetective.tablegen.styles;
 
-import org.variantsync.diffdetective.metadata.ElementaryPatternCount;
-import org.variantsync.diffdetective.pattern.elementary.ElementaryPattern;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.metadata.EditClassCount;
+import org.variantsync.diffdetective.editclass.EditClass;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.diffdetective.tablegen.Row;
 import org.variantsync.diffdetective.tablegen.TableDefinition;
 import org.variantsync.diffdetective.tablegen.rows.ContentRow;
@@ -22,7 +22,7 @@
  * <ul>
  *   <li>the name of the dataset
  *   <li>the total number of edits to variability
- *   <li>a relative occurrence count for each pattern changing variability
+ *   <li>a relative occurrence count for each edit class changing variability
  * </ul>
  */
 public class VariabilityShare extends TableDefinition {
@@ -38,38 +38,38 @@ public VariabilityShare(final Supplier<TableDefinition> inner) {
                 col("\\#edits to\\\\ variability", RIGHT_DASH, row -> makeReadable(countEditsToVariability(row)))
         ));
 
-        for (final ElementaryPattern a : ProposedElementaryPatterns.Instance.all()) {
+        for (final EditClass a : ProposedEditClasses.Instance.all()) {
             if (isEditToVariability(a)) {
                 this.columnDefinitions.add(col(a.getName(), RIGHT, row -> getRelativeShareOf(a, row)));
             }
         }
     }
 
-    /** Returns if the pattern {@code p} should be present in this table. */
-    private static boolean isEditToVariability(final ElementaryPattern p) {
-        return p != ProposedElementaryPatterns.Untouched && p != ProposedElementaryPatterns.AddToPC && p != ProposedElementaryPatterns.RemFromPC;
+    /** Returns if the edit class {@code c} should be present in this table. */
+    private static boolean isEditToVariability(final EditClass c) {
+        return c != ProposedEditClasses.Untouched && c != ProposedEditClasses.AddToPC && c != ProposedEditClasses.RemFromPC;
     }
 
-    /** Returns the number of occurrences of patterns present in the table. */
-    private static Stream<Map.Entry<ElementaryPattern, ElementaryPatternCount.Occurrences>> getVariationalPatterns(final ContentRow row) {
-        return row.results().elementaryPatternCounts.getOccurences().entrySet().stream()
+    /** Returns the number of occurrences of edit classes present in the table. */
+    private static Stream<Map.Entry<EditClass, EditClassCount.Occurrences>> getVariationalEditClasses(final ContentRow row) {
+        return row.results().editClassCounts.getOccurences().entrySet().stream()
                 .filter(entry -> isEditToVariability(entry.getKey()));
     }
 
-    /** Compute the total sum of all occurrences of patterns present in this table. */
+    /** Compute the total sum of all occurrences of edit classes present in this table. */
     private static int countEditsToVariability(final ContentRow row) {
-        return getVariationalPatterns(row)
+        return getVariationalEditClasses(row)
                 .map(entry -> entry.getValue().getTotalAmount())
                 .reduce(0, Integer::sum);
     }
 
     /**
-     * Compute the number of occurrences of {@code pattern} relative to the patterns actually
+     * Compute the number of occurrences of {@code editClass} relative to the edit classes actually
      * present in this table.
      */
-    private String getRelativeShareOf(final ElementaryPattern pattern, final ContentRow row) {
+    private String getRelativeShareOf(final EditClass editClass, final ContentRow row) {
         final int totalAmount = countEditsToVariability(row);
-        return makeReadable(100.0 *  ((double)row.results().elementaryPatternCounts.getOccurences().get(pattern).getTotalAmount()) / ((double) totalAmount)) + "\\%";
+        return makeReadable(100.0 *  ((double)row.results().editClassCounts.getOccurences().get(editClass).getTotalAmount()) / ((double) totalAmount)) + "\\%";
     }
 
     /**
diff --git a/src/main/java/org/variantsync/diffdetective/validation/PatternValidationTask.java b/src/main/java/org/variantsync/diffdetective/validation/EditClassValidationTask.java
similarity index 91%
rename from src/main/java/org/variantsync/diffdetective/validation/PatternValidationTask.java
rename to src/main/java/org/variantsync/diffdetective/validation/EditClassValidationTask.java
index fee108007..38ce99370 100644
--- a/src/main/java/org/variantsync/diffdetective/validation/PatternValidationTask.java
+++ b/src/main/java/org/variantsync/diffdetective/validation/EditClassValidationTask.java
@@ -13,7 +13,7 @@
 import org.variantsync.diffdetective.diff.difftree.transform.DiffTreeTransformer;
 import org.variantsync.diffdetective.diff.result.CommitDiffResult;
 import org.variantsync.diffdetective.metadata.ExplainedFilterSummary;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.diffdetective.util.Clock;
 import org.variantsync.diffdetective.util.FileUtils;
 
@@ -24,8 +24,8 @@
  * Task for performing the ESEC/FSE'22 validation on a set of commits from a given repository.
  * @author Paul Bittner
  */
-public class PatternValidationTask extends CommitHistoryAnalysisTask {
-    public PatternValidationTask(Options options) {
+public class EditClassValidationTask extends CommitHistoryAnalysisTask {
+    public EditClassValidationTask(Options options) {
         super(options);
     }
 
@@ -61,7 +61,7 @@ public AnalysisResult call() throws Exception {
                 final CommitDiff commitDiff = commitDiffResult.diff().get();
                 options.analysisStrategy().onCommit(commitDiff, "");
 
-                // Count elementary edit pattern matches
+                // Count edit class matches
                 int numDiffTrees = 0;
                 for (final PatchDiff patch : commitDiff.getPatchDiffs()) {
                     if (patch.isValid()) {
@@ -74,9 +74,9 @@ public AnalysisResult call() throws Exception {
                         }
 
                         t.forAll(node -> {
-                            if (node.isCode()) {
-                                miningResult.elementaryPatternCounts.reportOccurrenceFor(
-                                        ProposedElementaryPatterns.Instance.match(node),
+                            if (node.isArtifact()) {
+                                miningResult.editClassCounts.reportOccurrenceFor(
+                                        ProposedEditClasses.Instance.match(node),
                                         commitDiff
                                 );
                             }
diff --git a/src/main/java/org/variantsync/diffdetective/validation/Validation.java b/src/main/java/org/variantsync/diffdetective/validation/Validation.java
index 1196bd501..431ac5aa4 100644
--- a/src/main/java/org/variantsync/diffdetective/validation/Validation.java
+++ b/src/main/java/org/variantsync/diffdetective/validation/Validation.java
@@ -49,10 +49,10 @@ public class Validation {
 
     /**
      * The {@link CommitHistoryAnalysisTaskFactory} for the {@link HistoryAnalysis} that will run our validation.
-     * This factory creates {@link PatternValidationTask}s with the respective settings.
+     * This factory creates {@link EditClassValidationTask}s with the respective settings.
      */
     public static final CommitHistoryAnalysisTaskFactory VALIDATION_TASK_FACTORY =
-            (repo, differ, outputPath, commits) -> new PatternValidationTask(new CommitHistoryAnalysisTask.Options(
+            (repo, differ, outputPath, commits) -> new EditClassValidationTask(new CommitHistoryAnalysisTask.Options(
                     repo,
                     differ,
                     outputPath,
diff --git a/src/main/resources/tikz_header.tex b/src/main/resources/tikz_header.tex
index 9cbe189d5..3d021847a 100644
--- a/src/main/resources/tikz_header.tex
+++ b/src/main/resources/tikz_header.tex
@@ -41,7 +41,7 @@
 \tikzset{
 	text centered,
 	annotation/.style = {draw=vtdAnnotationBorderColor, circle, inner sep=0pt, minimum size=6.5mm, font=\footnotesize, line width=.4mm, fill=black!5},
-	artefact/.style = {draw=vtdCodeColor, circle, inner sep=0pt, minimum size=6.5mm, font=\footnotesize, line width=.4mm, fill=black!5},
+	artifact/.style = {draw=vtdCodeColor, circle, inner sep=0pt, minimum size=6.5mm, font=\footnotesize, line width=.4mm, fill=black!5},
 	non/.style = {},
 	add/.style = {fill=diffAddColour},
 	rem/.style = {fill=diffRemColour, dashed},
diff --git a/src/test/java/ElementaryPatternsTest.java b/src/test/java/EditClassesTest.java
similarity index 71%
rename from src/test/java/ElementaryPatternsTest.java
rename to src/test/java/EditClassesTest.java
index 81a55281b..4ec3adc13 100644
--- a/src/test/java/ElementaryPatternsTest.java
+++ b/src/test/java/EditClassesTest.java
@@ -1,12 +1,12 @@
 import org.junit.Assert;
 import org.junit.Test;
 import org.variantsync.diffdetective.diff.difftree.DiffTree;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 
 import java.io.IOException;
 import java.nio.file.Path;
 
-public class ElementaryPatternsTest {
+public class EditClassesTest {
     private final static Path testDir = Constants.RESOURCE_DIR.resolve("patterns");
 
     @Test
@@ -14,10 +14,10 @@ public void testAtomics() throws IOException {
         final Path path = testDir.resolve("elementary.diff");
         final DiffTree t = DiffTree.fromFile(path, false, true).unwrap().getSuccess();
         t.forAll(node -> {
-            if (node.isCode()) {
+            if (node.isArtifact()) {
                 Assert.assertEquals(
                         node.getLabel(),
-                        ProposedElementaryPatterns.Instance.match(node).getName()
+                        ProposedEditClasses.Instance.match(node).getName()
                 );
             }
         });
diff --git a/src/test/java/LinuxParsingTest.java b/src/test/java/LinuxParsingTest.java
index b2641f6fc..9bad73fe7 100644
--- a/src/test/java/LinuxParsingTest.java
+++ b/src/test/java/LinuxParsingTest.java
@@ -26,7 +26,7 @@ public void test1() throws IOException {
 //        new FeatureExpressionFilter(LinuxKernel::isFeature).transform(t);
 
         t.forAll(n -> {
-            if (n.isMacro()) {
+            if (n.isAnnotation()) {
                 Assert.assertTrue(n.getLabel().contains("CONFIG_"), () -> "Macro node " + n + " is not a feature annotation!");
             }
         });
diff --git a/src/test/java/MarlinDebug.java b/src/test/java/MarlinDebug.java
index 88625640e..b2d0e4340 100644
--- a/src/test/java/MarlinDebug.java
+++ b/src/test/java/MarlinDebug.java
@@ -23,7 +23,7 @@
 import org.variantsync.diffdetective.feature.CPPAnnotationParser;
 import org.variantsync.diffdetective.mining.DiffTreeMiner;
 import org.variantsync.diffdetective.mining.MiningTask;
-import org.variantsync.diffdetective.pattern.elementary.proposed.ProposedElementaryPatterns;
+import org.variantsync.diffdetective.editclass.proposed.ProposedEditClasses;
 import org.variantsync.diffdetective.util.Clock;
 import org.variantsync.diffdetective.validation.Validation;
 
@@ -102,9 +102,9 @@ public static void testCommit(final RepoInspection repoInspection, final String
                 Logger.info("    Begin elementary pattern matching");
                 clock.start();
                 t.forAll(node -> {
-                    if (node.isCode()) {
+                    if (node.isArtifact()) {
                         try {
-                            Logger.info(ProposedElementaryPatterns.Instance.match(node));
+                            Logger.info(ProposedEditClasses.Instance.match(node));
                         } catch (Exception e) {
                             //DiffTreeLineGraphExportOptions.RenderError().accept(patch, e);
                             Logger.error(e);
@@ -114,7 +114,7 @@ public static void testCommit(final RepoInspection repoInspection, final String
                             Logger.info("isAdd: {}", node.isAdd());
                             Logger.info("isRem: {}", node.isRem());
                             Logger.info("isNon: {}", node.isNon());
-                            Logger.info("isCode: {}", node.isCode());
+                            Logger.info("isArtifact: {}", node.isArtifact());
 //                            throw e;
                             System.exit(0);
                         }
diff --git a/src/test/java/MoveDetectionTest.java b/src/test/java/MoveDetectionTest.java
index 66e23a712..2ca98a82d 100644
--- a/src/test/java/MoveDetectionTest.java
+++ b/src/test/java/MoveDetectionTest.java
@@ -1,6 +1,6 @@
 import org.variantsync.diffdetective.diff.difftree.DiffTree;
 import org.variantsync.diffdetective.diff.difftree.render.DiffTreeRenderer;
-import org.variantsync.diffdetective.diff.difftree.transform.NaiveMovedCodeDetection;
+import org.variantsync.diffdetective.diff.difftree.transform.NaiveMovedArtifactDetection;
 
 import java.io.IOException;
 import java.nio.file.Path;
@@ -14,7 +14,7 @@ public void simpleTest() throws IOException {
         final DiffTree t = DiffTree.fromFile(resDir.resolve("simple.txt"), true, true).unwrap().getSuccess();
         final DiffTreeRenderer renderer = DiffTreeRenderer.WithinDiffDetective();
         renderer.render(t, "MoveDetectionTestSimpleTest_Before", genDir);
-        new NaiveMovedCodeDetection().transform(t);
+        new NaiveMovedArtifactDetection().transform(t);
         renderer.render(t, "MoveDetectionTestSimpleTest_After", genDir);
     }
 }
diff --git a/src/test/java/PCTest.java b/src/test/java/PCTest.java
index c80857c16..f19f33231 100644
--- a/src/test/java/PCTest.java
+++ b/src/test/java/PCTest.java
@@ -57,7 +57,7 @@ private void test(final TestCase testCase) throws IOException {
         final Path path = testDir.resolve(testCase.file);
         final DiffTree t = DiffTree.fromFile(path, false, true).unwrap().getSuccess();
         t.forAll(node -> {
-           if (node.isCode()) {
+           if (node.isArtifact()) {
                final String text = node.getLabel().trim();
                final ExpectedPC expectedPC = testCase.expectedResult.getOrDefault(text, null);
                if (expectedPC != null) {
diff --git a/src/test/java/TestLineNumbers.java b/src/test/java/TestLineNumbers.java
index 3fe80c794..e692cd86e 100644
--- a/src/test/java/TestLineNumbers.java
+++ b/src/test/java/TestLineNumbers.java
@@ -22,38 +22,38 @@ public void initTestCases() {
         // Testcases rely on stability of IDs
 
         final var elifchain_map = new HashMap<Integer, Pair<DiffLineNumber, DiffLineNumber>>();
-        elifchain_map.put(149, new Pair<>(new DiffLineNumber(1, 1, 1), new DiffLineNumber(11, 9, 10)));
-        elifchain_map.put(148, new Pair<>(new DiffLineNumber(1, 1, 1), new DiffLineNumber(2, 2, 2)));
+        elifchain_map.put(16, new Pair<>(DiffLineNumber.Invalid(), DiffLineNumber.Invalid()));
+        elifchain_map.put(147, new Pair<>(new DiffLineNumber(1, 1, 1), new DiffLineNumber(2, 2, 2)));
         elifchain_map.put(208, new Pair<>(new DiffLineNumber(2, 2, 2), new DiffLineNumber(4, 4, 4)));
-        elifchain_map.put(276, new Pair<>(new DiffLineNumber(3, 3, 3), new DiffLineNumber(4, 4, 4)));
-        elifchain_map.put(339, new Pair<>(new DiffLineNumber(4, 4, 4), new DiffLineNumber(8, 6, 6)));
-        elifchain_map.put(404, new Pair<>(new DiffLineNumber(5, 5, 5), new DiffLineNumber(6, 6, 6)));
-        elifchain_map.put(451, new Pair<>(new DiffLineNumber(6, -1, 6), new DiffLineNumber(10, -1, 9)));
-        elifchain_map.put(516, new Pair<>(new DiffLineNumber(7, -1, 7), new DiffLineNumber(8, -1, 8)));
-        elifchain_map.put(660, new Pair<>(new DiffLineNumber(9, 7, 8), new DiffLineNumber(10, 8, 9)));
-        elifchain_map.put(587, new Pair<>(new DiffLineNumber(8, 6, -1), new DiffLineNumber(10, 8, -1)));
+        elifchain_map.put(275, new Pair<>(new DiffLineNumber(3, 3, 3), new DiffLineNumber(4, 4, 4)));
+        elifchain_map.put(338, new Pair<>(new DiffLineNumber(4, 4, 4), new DiffLineNumber(8, 6, 6)));
+        elifchain_map.put(403, new Pair<>(new DiffLineNumber(5, 5, 5), new DiffLineNumber(6, 6, 6)));
+        elifchain_map.put(450, new Pair<>(new DiffLineNumber(6, -1, 6), new DiffLineNumber(10, -1, 9)));
+        elifchain_map.put(515, new Pair<>(new DiffLineNumber(7, -1, 7), new DiffLineNumber(8, -1, 8)));
+        elifchain_map.put(659, new Pair<>(new DiffLineNumber(9, 7, 8), new DiffLineNumber(10, 8, 9)));
+        elifchain_map.put(586, new Pair<>(new DiffLineNumber(8, 6, -1), new DiffLineNumber(10, 8, -1)));
         TestCase elifchain = new TestCase("elifchain.txt", elifchain_map);
 
         final var lineno1_map = new HashMap<Integer, Pair<DiffLineNumber, DiffLineNumber>>();
-        lineno1_map.put(149, new Pair<>(new DiffLineNumber(1, 1, 1), new DiffLineNumber(17, 14, 12)));
-        lineno1_map.put(148, new Pair<>(new DiffLineNumber(1, 1, 1), new DiffLineNumber(2, 2, 2)));
+        lineno1_map.put(16, new Pair<>(DiffLineNumber.Invalid(), DiffLineNumber.Invalid()));
+        lineno1_map.put(147, new Pair<>(new DiffLineNumber(1, 1, 1), new DiffLineNumber(2, 2, 2)));
         lineno1_map.put(208, new Pair<>(new DiffLineNumber(2, 2, 2), new DiffLineNumber(4, 4, 4)));
-        lineno1_map.put(276, new Pair<>(new DiffLineNumber(3, 3, 3), new DiffLineNumber(4, 4, 4)));
-        lineno1_map.put(404, new Pair<>(new DiffLineNumber(5, 5, 5), new DiffLineNumber(6, 6, 6)));
-        lineno1_map.put(452, new Pair<>(new DiffLineNumber(6, -1, 6), new DiffLineNumber(7, -1, 7)));
-        lineno1_map.put(524, new Pair<>(new DiffLineNumber(7, 6, -1), new DiffLineNumber(8, 7, -1)));
-        lineno1_map.put(596, new Pair<>(new DiffLineNumber(8, 7, 7), new DiffLineNumber(9, 8, 8)));
+        lineno1_map.put(275, new Pair<>(new DiffLineNumber(3, 3, 3), new DiffLineNumber(4, 4, 4)));
+        lineno1_map.put(403, new Pair<>(new DiffLineNumber(5, 5, 5), new DiffLineNumber(6, 6, 6)));
+        lineno1_map.put(451, new Pair<>(new DiffLineNumber(6, -1, 6), new DiffLineNumber(7, -1, 7)));
+        lineno1_map.put(523, new Pair<>(new DiffLineNumber(7, 6, -1), new DiffLineNumber(8, 7, -1)));
+        lineno1_map.put(595, new Pair<>(new DiffLineNumber(8, 7, 7), new DiffLineNumber(9, 8, 8)));
         lineno1_map.put(640, new Pair<>(new DiffLineNumber(9, -1, 8), new DiffLineNumber(11, -1, 10)));
-        lineno1_map.put(724, new Pair<>(new DiffLineNumber(10, 8, 9), new DiffLineNumber(11, 9, 10)));
-        lineno1_map.put(852, new Pair<>(new DiffLineNumber(12, 9, 11), new DiffLineNumber(13, 10, 12)));
+        lineno1_map.put(723, new Pair<>(new DiffLineNumber(10, 8, 9), new DiffLineNumber(11, 9, 10)));
+        lineno1_map.put(851, new Pair<>(new DiffLineNumber(12, 9, 11), new DiffLineNumber(13, 10, 12)));
         lineno1_map.put(904, new Pair<>(new DiffLineNumber(13, 10, -1), new DiffLineNumber(16, 13, -1)));
-        lineno1_map.put(1036, new Pair<>(new DiffLineNumber(15, 12, -1), new DiffLineNumber(16, 13, -1)));
+        lineno1_map.put(1035, new Pair<>(new DiffLineNumber(15, 12, -1), new DiffLineNumber(16, 13, -1)));
         TestCase lineno1 = new TestCase("lineno1.txt", lineno1_map);
 
         final var deleteMLM_map = new HashMap<Integer, Pair<DiffLineNumber, DiffLineNumber>>();
-        deleteMLM_map.put(149, new Pair<>(new DiffLineNumber(1, 1, 1), new DiffLineNumber(5, 5, 1)));
+        deleteMLM_map.put(16, new Pair<>(DiffLineNumber.Invalid(), DiffLineNumber.Invalid()));
         deleteMLM_map.put(136, new Pair<>(new DiffLineNumber(1, 1, -1), new DiffLineNumber(4, 4, -1)));
-        deleteMLM_map.put(268, new Pair<>(new DiffLineNumber(3, 3, -1), new DiffLineNumber(4, 4, -1)));
+        deleteMLM_map.put(267, new Pair<>(new DiffLineNumber(3, 3, -1), new DiffLineNumber(4, 4, -1)));
         TestCase deleteMLM = new TestCase("deleteMLM.txt", deleteMLM_map);
 
         testCases = List.of(elifchain, lineno1, deleteMLM);
@@ -66,7 +66,7 @@ private static DiffTree loadFullDiff(final Path p) throws IOException {
     private static void printLineNumbers(final DiffTree diffTree) {
         diffTree.forAll(node ->
                 System.out.println(node.diffType.symbol
-                    + " " + node.codeType
+                    + " " + node.nodeType
                     + " \"" + node.getLabel().trim()
                     + " with ID " + node.getID()
                     + "\" old: " + node.getLinesBeforeEdit()
diff --git a/src/test/resources/debug/test b/src/test/resources/debug/test
index fd0416801..4dfe8792a 100644
--- a/src/test/resources/debug/test
+++ b/src/test/resources/debug/test
@@ -1,224 +1,224 @@
 t # Marlin/src/inc/Conditionals_post.h$$$0e60c8b7e04a6cd2758108bcc80f2ab57deec23c
-v 131589 m20
+v 131584 m20
 v 12845568 m20
 v 12910848 m10
-v 13042180 c6
-v 13107714 m22
+v 13042179 c6
+v 13107713 m22
 v 12976128 m00
 v 161743104 m10
-v 162005508 c7
+v 162005507 c7
 v 161742848 m00
-e 131589 12845568 ba>m20>m20
+e 131584 12845568 ba>m20>m20
 e 12845568 12910848 b>m20>m10
-e 12910848 13042180 b>m10>c6
-e 12976128 13042180 a>m00>c6
-e 12910848 13107714 b>m10>m22
-e 12976128 13107714 a>m00>m22
+e 12910848 13042179 b>m10>c6
+e 12976128 13042179 a>m00>c6
+e 12910848 13107713 b>m10>m22
+e 12976128 13107713 a>m00>m22
 e 12845568 12976128 a>m20>m00
-e 131589 161743104 b>m20>m10
-e 161743104 162005508 b>m10>c7
-e 161742848 162005508 a>m00>c7
-e 131589 161742848 a>m20>m00
+e 131584 161743104 b>m20>m10
+e 161743104 162005507 b>m10>c7
+e 161742848 162005507 a>m00>c7
+e 131584 161742848 a>m20>m00
 
 
 t # Marlin/src/module/endstops.cpp$$$0e60c8b7e04a6cd2758108bcc80f2ab57deec23c
-v 131589 m20
+v 131584 m20
 v 40698112 m10
-v 40829444 c6
+v 40829443 c6
 v 40763392 m00
 v 41484544 m10
-v 41615876 c6
-v 41681410 m22
+v 41615875 c6
+v 41681409 m22
 v 41549824 m00
 v 41877760 m10
-v 42009092 c6
-v 42074626 m22
+v 42009091 c6
+v 42074625 m22
 v 41943040 m00
 v 72876544 m20
 v 73138688 m20
 v 73269504 m10
-v 73400836 c6
-v 73466371 m23
+v 73400835 c6
+v 73466370 m23
 v 73334784 m00
 v 73990656 m20
 v 74121472 m10
-v 74252804 c6
-v 74318339 m23
+v 74252803 c6
+v 74318338 m23
 v 74186752 m00
-e 131589 40698112 b>m20>m10
-e 40698112 40829444 b>m10>c6
-e 40763392 40829444 a>m00>c6
-e 131589 40763392 a>m20>m00
-e 131589 41484544 b>m20>m10
-e 41484544 41615876 b>m10>c6
-e 41549824 41615876 a>m00>c6
-e 41484544 41681410 b>m10>m22
-e 41549824 41681410 a>m00>m22
-e 131589 41549824 a>m20>m00
-e 131589 41877760 b>m20>m10
-e 41877760 42009092 b>m10>c6
-e 41943040 42009092 a>m00>c6
-e 41877760 42074626 b>m10>m22
-e 41943040 42074626 a>m00>m22
-e 131589 41943040 a>m20>m00
-e 131589 72876544 ba>m20>m20
+e 131584 40698112 b>m20>m10
+e 40698112 40829443 b>m10>c6
+e 40763392 40829443 a>m00>c6
+e 131584 40763392 a>m20>m00
+e 131584 41484544 b>m20>m10
+e 41484544 41615875 b>m10>c6
+e 41549824 41615875 a>m00>c6
+e 41484544 41681409 b>m10>m22
+e 41549824 41681409 a>m00>m22
+e 131584 41549824 a>m20>m00
+e 131584 41877760 b>m20>m10
+e 41877760 42009091 b>m10>c6
+e 41943040 42009091 a>m00>c6
+e 41877760 42074625 b>m10>m22
+e 41943040 42074625 a>m00>m22
+e 131584 41943040 a>m20>m00
+e 131584 72876544 ba>m20>m20
 e 72876544 73138688 ba>m20>m20
 e 73138688 73269504 b>m20>m10
-e 73269504 73400836 b>m10>c6
-e 73334784 73400836 a>m00>c6
-e 73269504 73466371 b>m10>m23
-e 73334784 73466371 a>m00>m23
+e 73269504 73400835 b>m10>c6
+e 73334784 73400835 a>m00>c6
+e 73269504 73466370 b>m10>m23
+e 73334784 73466370 a>m00>m23
 e 73138688 73334784 a>m20>m00
 e 72876544 73990656 ba>m20>m20
 e 73990656 74121472 b>m20>m10
-e 74121472 74252804 b>m10>c6
-e 74186752 74252804 a>m00>c6
-e 74121472 74318339 b>m10>m23
-e 74186752 74318339 a>m00>m23
+e 74121472 74252803 b>m10>c6
+e 74186752 74252803 a>m00>c6
+e 74121472 74318338 b>m10>m23
+e 74186752 74318338 a>m00>m23
 e 73990656 74186752 a>m20>m00
 
 
 t # Marlin/src/module/motion.cpp$$$0e60c8b7e04a6cd2758108bcc80f2ab57deec23c
-v 131589 m20
+v 131584 m20
 v 85262848 m20
 v 88867328 m20
 v 89457152 m20
 v 89850112 m10
-v 89981444 c6
-v 90046979 m23
+v 89981443 c6
+v 90046978 m23
 v 89915392 m00
 v 90374656 m20
 v 90767616 m10
-v 90898948 c6
-v 90964483 m23
+v 90898947 c6
+v 90964482 m23
 v 90832896 m00
 v 94634496 m20
 v 95027456 m10
-v 95158788 c6
-v 95224323 m23
+v 95158787 c6
+v 95224322 m23
 v 95092736 m00
 v 95552000 m20
 v 95944960 m10
-v 96076292 c6
-v 96141827 m23
+v 96076291 c6
+v 96141826 m23
 v 96010240 m00
 v 131006976 m20
-v 132317442 m12
-v 132514308 c7
-v 132382722 m02
+v 132317441 m12
+v 132514307 c7
+v 132382721 m02
 v 133431808 m20
 v 134349056 m10
-v 134480388 c6
+v 134480387 c6
 v 134414336 m00
-e 131589 85262848 ba>m20>m20
+e 131584 85262848 ba>m20>m20
 e 85262848 88867328 ba>m20>m20
 e 88867328 89457152 ba>m20>m20
 e 89457152 89850112 b>m20>m10
-e 89850112 89981444 b>m10>c6
-e 89915392 89981444 a>m00>c6
-e 89850112 90046979 b>m10>m23
-e 89915392 90046979 a>m00>m23
+e 89850112 89981443 b>m10>c6
+e 89915392 89981443 a>m00>c6
+e 89850112 90046978 b>m10>m23
+e 89915392 90046978 a>m00>m23
 e 89457152 89915392 a>m20>m00
 e 88867328 90374656 ba>m20>m20
 e 90374656 90767616 b>m20>m10
-e 90767616 90898948 b>m10>c6
-e 90832896 90898948 a>m00>c6
-e 90767616 90964483 b>m10>m23
-e 90832896 90964483 a>m00>m23
+e 90767616 90898947 b>m10>c6
+e 90832896 90898947 a>m00>c6
+e 90767616 90964482 b>m10>m23
+e 90832896 90964482 a>m00>m23
 e 90374656 90832896 a>m20>m00
 e 88867328 94634496 ba>m20>m20
 e 94634496 95027456 b>m20>m10
-e 95027456 95158788 b>m10>c6
-e 95092736 95158788 a>m00>c6
-e 95027456 95224323 b>m10>m23
-e 95092736 95224323 a>m00>m23
+e 95027456 95158787 b>m10>c6
+e 95092736 95158787 a>m00>c6
+e 95027456 95224322 b>m10>m23
+e 95092736 95224322 a>m00>m23
 e 94634496 95092736 a>m20>m00
 e 88867328 95552000 ba>m20>m20
 e 95552000 95944960 b>m20>m10
-e 95944960 96076292 b>m10>c6
-e 96010240 96076292 a>m00>c6
-e 95944960 96141827 b>m10>m23
-e 96010240 96141827 a>m00>m23
+e 95944960 96076291 b>m10>c6
+e 96010240 96076291 a>m00>c6
+e 95944960 96141826 b>m10>m23
+e 96010240 96141826 a>m00>m23
 e 95552000 96010240 a>m20>m00
 e 85262848 131006976 ba>m20>m20
-e 131006976 132317442 b>m20>m12
-e 132317442 132514308 b>m12>c7
-e 132382722 132514308 a>m02>c7
-e 131006976 132382722 a>m20>m02
+e 131006976 132317441 b>m20>m12
+e 132317441 132514307 b>m12>c7
+e 132382721 132514307 a>m02>c7
+e 131006976 132382721 a>m20>m02
 e 85262848 133431808 ba>m20>m20
 e 133431808 134349056 b>m20>m10
-e 134349056 134480388 b>m10>c6
-e 134414336 134480388 a>m00>c6
+e 134349056 134480387 b>m10>c6
+e 134414336 134480387 a>m00>c6
 e 133431808 134414336 a>m20>m00
 
 
 t # Marlin/src/module/planner.cpp$$$0e60c8b7e04a6cd2758108bcc80f2ab57deec23c
-v 131589 m20
+v 131584 m20
 v 113181184 m20
-v 114491651 m13
-v 114688516 c6
-v 115671554 m22
-v 114556931 m03
+v 114491650 m13
+v 114688515 c6
+v 115671553 m22
+v 114556930 m03
 v 125960448 m10
-v 126025988 c3
-v 126353924 c6
-v 126419204 c3
-v 126550275 m13
-v 126615812 c3
-v 126943491 m13
-v 127009028 c3
-v 129106435 m23
-v 129171716 c2
-v 129499140 c0
-v 129630211 m03
-v 129695748 c1
-v 129827330 m22
+v 126025987 c3
+v 126353923 c6
+v 126419203 c3
+v 126550274 m13
+v 126615811 c3
+v 126943490 m13
+v 127009027 c3
+v 129106434 m23
+v 129171715 c2
+v 129499139 c0
+v 129630210 m03
+v 129695747 c1
+v 129827329 m22
 v 126156800 m00
-v 126222340 c1
+v 126222339 c1
 v 127401984 m00
 v 127467520 m00
-v 127533060 c1
-v 127664131 m03
-v 127729668 c1
-v 128057347 m03
-v 128122884 c1
+v 127533059 c1
+v 127664130 m03
+v 127729667 c1
+v 128057346 m03
+v 128122883 c1
 v 128516096 m00
-v 128581636 c1
+v 128581635 c1
 v 128712704 m00
-v 128778244 c1
+v 128778243 c1
 v 128909312 m00
-v 128974852 c1
+v 128974851 c1
 v 130547968 m10
 v 130613504 m10
-v 130679044 c3
+v 130679043 c3
 v 130810112 m10
-v 130875652 c3
+v 130875651 c3
 v 131006720 m10
-v 131072260 c3
-v 131334404 c2
+v 131072259 c3
+v 131334403 c2
 v 131465728 m20
-v 131530756 c0
+v 131530755 c0
 v 134676736 m10
-v 134808068 c6
+v 134808067 c6
 v 134742016 m00
 v 135069696 m00
-v 135135236 c1
+v 135135235 c1
 v 135397888 m20
 v 135463424 m20
-v 135528708 c2
-v 137298435 m23
-v 137363716 c2
-v 137691139 m03
-v 137756676 c1
-v 137888258 m22
+v 135528707 c2
+v 137298434 m23
+v 137363715 c2
+v 137691138 m03
+v 137756675 c1
+v 137888257 m22
 v 139919616 m10
-v 140050948 c6
-v 140313091 m23
+v 140050947 c6
+v 140313090 m23
 v 139984896 m00
 v 145162496 m10
-v 145293828 c6
+v 145293827 c6
 v 145555968 m20
-v 145752579 m23
+v 145752578 m23
 v 145227776 m00
 v 147194112 m10
 v 147325440 m20
@@ -226,158 +226,158 @@ v 147522048 m20
 v 147718656 m20
 v 147259392 m00
 v 167313920 m20
-v 170721540 c2
-v 170786820 c0
+v 170721539 c2
+v 170786819 c0
 v 132973056 m20
-v 133628419 m23
-v 133496835 m03
-v 133562372 c1
-e 131589 113181184 ba>m20>m20
-e 113181184 114491651 b>m20>m13
-e 114491651 114688516 b>m13>c6
-e 114556931 114688516 a>m03>c6
-e 114491651 115671554 b>m13>m22
-e 114556931 115671554 a>m03>m22
-e 113181184 114556931 a>m20>m03
-e 131589 125960448 b>m20>m10
-e 125960448 126025988 b>m10>c3
-e 125960448 126353924 b>m10>c6
-e 126156800 126353924 a>m00>c6
-e 125960448 126419204 b>m10>c3
-e 125960448 126550275 b>m10>m13
-e 126550275 126615812 b>m13>c3
-e 126550275 126943491 b>m13>m13
-e 126943491 127009028 b>m13>c3
-e 126943491 129106435 b>m13>m23
-e 127401984 129106435 a>m00>m23
-e 129106435 129171716 b>m23>c2
-e 129106435 129499140 a>m23>c0
-e 129106435 129630211 a>m23>m03
-e 129630211 129695748 a>m03>c1
-e 129106435 129827330 b>m23>m22
-e 129630211 129827330 a>m03>m22
-e 131589 126156800 a>m20>m00
-e 126156800 126222340 a>m00>c1
-e 131589 127401984 a>m20>m00
+v 133628418 m23
+v 133496834 m03
+v 133562371 c1
+e 131584 113181184 ba>m20>m20
+e 113181184 114491650 b>m20>m13
+e 114491650 114688515 b>m13>c6
+e 114556930 114688515 a>m03>c6
+e 114491650 115671553 b>m13>m22
+e 114556930 115671553 a>m03>m22
+e 113181184 114556930 a>m20>m03
+e 131584 125960448 b>m20>m10
+e 125960448 126025987 b>m10>c3
+e 125960448 126353923 b>m10>c6
+e 126156800 126353923 a>m00>c6
+e 125960448 126419203 b>m10>c3
+e 125960448 126550274 b>m10>m13
+e 126550274 126615811 b>m13>c3
+e 126550274 126943490 b>m13>m13
+e 126943490 127009027 b>m13>c3
+e 126943490 129106434 b>m13>m23
+e 127401984 129106434 a>m00>m23
+e 129106434 129171715 b>m23>c2
+e 129106434 129499139 a>m23>c0
+e 129106434 129630210 a>m23>m03
+e 129630210 129695747 a>m03>c1
+e 129106434 129827329 b>m23>m22
+e 129630210 129827329 a>m03>m22
+e 131584 126156800 a>m20>m00
+e 126156800 126222339 a>m00>c1
+e 131584 127401984 a>m20>m00
 e 127401984 127467520 a>m00>m00
-e 127467520 127533060 a>m00>c1
-e 127467520 127664131 a>m00>m03
-e 127664131 127729668 a>m03>c1
-e 127664131 128057347 a>m03>m03
-e 128057347 128122884 a>m03>c1
+e 127467520 127533059 a>m00>c1
+e 127467520 127664130 a>m00>m03
+e 127664130 127729667 a>m03>c1
+e 127664130 128057346 a>m03>m03
+e 128057346 128122883 a>m03>c1
 e 127401984 128516096 a>m00>m00
-e 128516096 128581636 a>m00>c1
+e 128516096 128581635 a>m00>c1
 e 127401984 128712704 a>m00>m00
-e 128712704 128778244 a>m00>c1
+e 128712704 128778243 a>m00>c1
 e 127401984 128909312 a>m00>m00
-e 128909312 128974852 a>m00>c1
-e 131589 130547968 b>m20>m10
+e 128909312 128974851 a>m00>c1
+e 131584 130547968 b>m20>m10
 e 130547968 130613504 b>m10>m10
-e 130613504 130679044 b>m10>c3
+e 130613504 130679043 b>m10>c3
 e 130547968 130810112 b>m10>m10
-e 130810112 130875652 b>m10>c3
+e 130810112 130875651 b>m10>c3
 e 130547968 131006720 b>m10>m10
-e 131006720 131072260 b>m10>c3
-e 131589 131334404 b>m20>c2
-e 131589 131465728 ba>m20>m20
-e 131465728 131530756 a>m20>c0
-e 131589 134676736 b>m20>m10
-e 134676736 134808068 b>m10>c6
-e 134742016 134808068 a>m00>c6
-e 131589 134742016 a>m20>m00
-e 131589 135069696 a>m20>m00
-e 135069696 135135236 a>m00>c1
-e 131589 135397888 ba>m20>m20
+e 131006720 131072259 b>m10>c3
+e 131584 131334403 b>m20>c2
+e 131584 131465728 ba>m20>m20
+e 131465728 131530755 a>m20>c0
+e 131584 134676736 b>m20>m10
+e 134676736 134808067 b>m10>c6
+e 134742016 134808067 a>m00>c6
+e 131584 134742016 a>m20>m00
+e 131584 135069696 a>m20>m00
+e 135069696 135135235 a>m00>c1
+e 131584 135397888 ba>m20>m20
 e 135397888 135463424 ba>m20>m20
-e 135463424 135528708 b>m20>c2
-e 135397888 137298435 ba>m20>m23
-e 137298435 137363716 b>m23>c2
-e 137298435 137691139 a>m23>m03
-e 137691139 137756676 a>m03>c1
-e 137298435 137888258 b>m23>m22
-e 137691139 137888258 a>m03>m22
-e 131589 139919616 b>m20>m10
-e 139919616 140050948 b>m10>c6
-e 139984896 140050948 a>m00>c6
-e 139919616 140313091 b>m10>m23
-e 139984896 140313091 a>m00>m23
-e 131589 139984896 a>m20>m00
-e 131589 145162496 b>m20>m10
-e 145162496 145293828 b>m10>c6
-e 145227776 145293828 a>m00>c6
+e 135463424 135528707 b>m20>c2
+e 135397888 137298434 ba>m20>m23
+e 137298434 137363715 b>m23>c2
+e 137298434 137691138 a>m23>m03
+e 137691138 137756675 a>m03>c1
+e 137298434 137888257 b>m23>m22
+e 137691138 137888257 a>m03>m22
+e 131584 139919616 b>m20>m10
+e 139919616 140050947 b>m10>c6
+e 139984896 140050947 a>m00>c6
+e 139919616 140313090 b>m10>m23
+e 139984896 140313090 a>m00>m23
+e 131584 139984896 a>m20>m00
+e 131584 145162496 b>m20>m10
+e 145162496 145293827 b>m10>c6
+e 145227776 145293827 a>m00>c6
 e 145162496 145555968 b>m10>m20
 e 145227776 145555968 a>m00>m20
-e 145162496 145752579 b>m10>m23
-e 145227776 145752579 a>m00>m23
-e 131589 145227776 a>m20>m00
-e 131589 147194112 b>m20>m10
+e 145162496 145752578 b>m10>m23
+e 145227776 145752578 a>m00>m23
+e 131584 145227776 a>m20>m00
+e 131584 147194112 b>m20>m10
 e 147194112 147325440 b>m10>m20
 e 147259392 147325440 a>m00>m20
 e 147194112 147522048 b>m10>m20
 e 147259392 147522048 a>m00>m20
 e 147194112 147718656 b>m10>m20
 e 147259392 147718656 a>m00>m20
-e 131589 147259392 a>m20>m00
-e 131589 167313920 ba>m20>m20
-e 167313920 170721540 b>m20>c2
-e 167313920 170786820 a>m20>c0
-e 131589 132973056 ba>m20>m20
-e 132973056 133628419 b>m20>m23
-e 133496835 133628419 a>m03>m23
-e 132973056 133496835 a>m20>m03
-e 133496835 133562372 a>m03>c1
+e 131584 147259392 a>m20>m00
+e 131584 167313920 ba>m20>m20
+e 167313920 170721539 b>m20>c2
+e 167313920 170786819 a>m20>c0
+e 131584 132973056 ba>m20>m20
+e 132973056 133628418 b>m20>m23
+e 133496834 133628418 a>m03>m23
+e 132973056 133496834 a>m20>m03
+e 133496834 133562371 a>m03>c1
 
 
 t # Marlin/src/module/stepper.cpp$$$0e60c8b7e04a6cd2758108bcc80f2ab57deec23c
-v 131589 m20
+v 131584 m20
 v 144310784 m20
-v 145227779 m03
-v 145293316 c1
-v 145359362 m22
+v 145227778 m03
+v 145293315 c1
+v 145359361 m22
 v 183894272 m10
-v 185008644 c6
-v 185074178 m22
+v 185008643 c6
+v 185074177 m22
 v 184025600 m20
-v 184811523 m03
-v 184877060 c1
+v 184811522 m03
+v 184877059 c1
 v 183959552 m00
 v 191693056 m10
-v 191824388 c6
+v 191824387 c6
 v 191758336 m00
 v 191955200 m10
-v 192086532 c6
+v 192086531 c6
 v 192020480 m00
 v 189006336 m20
-v 189858306 m22
-v 189595651 m03
-v 189661188 c1
-e 131589 144310784 ba>m20>m20
-e 144310784 145227779 a>m20>m03
-e 145227779 145293316 a>m03>c1
-e 144310784 145359362 b>m20>m22
-e 145227779 145359362 a>m03>m22
-e 131589 183894272 b>m20>m10
-e 183894272 185008644 b>m10>c6
-e 183959552 185008644 a>m00>c6
-e 183894272 185074178 b>m10>m22
-e 183959552 185074178 a>m00>m22
+v 189858305 m22
+v 189595650 m03
+v 189661187 c1
+e 131584 144310784 ba>m20>m20
+e 144310784 145227778 a>m20>m03
+e 145227778 145293315 a>m03>c1
+e 144310784 145359361 b>m20>m22
+e 145227778 145359361 a>m03>m22
+e 131584 183894272 b>m20>m10
+e 183894272 185008643 b>m10>c6
+e 183959552 185008643 a>m00>c6
+e 183894272 185074177 b>m10>m22
+e 183959552 185074177 a>m00>m22
 e 183894272 184025600 b>m10>m20
 e 183959552 184025600 a>m00>m20
-e 184025600 184811523 a>m20>m03
-e 184811523 184877060 a>m03>c1
-e 131589 183959552 a>m20>m00
-e 131589 191693056 b>m20>m10
-e 191693056 191824388 b>m10>c6
-e 191758336 191824388 a>m00>c6
-e 131589 191758336 a>m20>m00
-e 131589 191955200 b>m20>m10
-e 191955200 192086532 b>m10>c6
-e 192020480 192086532 a>m00>c6
-e 131589 192020480 a>m20>m00
-e 131589 189006336 ba>m20>m20
-e 189006336 189858306 b>m20>m22
-e 189595651 189858306 a>m03>m22
-e 189006336 189595651 a>m20>m03
-e 189595651 189661188 a>m03>c1
+e 184025600 184811522 a>m20>m03
+e 184811522 184877059 a>m03>c1
+e 131584 183959552 a>m20>m00
+e 131584 191693056 b>m20>m10
+e 191693056 191824387 b>m10>c6
+e 191758336 191824387 a>m00>c6
+e 131584 191758336 a>m20>m00
+e 131584 191955200 b>m20>m10
+e 191955200 192086531 b>m10>c6
+e 192020480 192086531 a>m00>c6
+e 131584 192020480 a>m20>m00
+e 131584 189006336 ba>m20>m20
+e 189006336 189858305 b>m20>m22
+e 189595650 189858305 a>m03>m22
+e 189006336 189595650 a>m20>m03
+e 189595650 189661187 a>m03>c1
 
 
diff --git a/src/test/resources/line_graph/vulkan_structs.hpp$$$fd641ac85c6170c34845db5e345d3bf9cedce8d7.lg b/src/test/resources/line_graph/vulkan_structs.hpp$$$fd641ac85c6170c34845db5e345d3bf9cedce8d7.lg
index 37652194f..10cea2dc1 100644
--- a/src/test/resources/line_graph/vulkan_structs.hpp$$$fd641ac85c6170c34845db5e345d3bf9cedce8d7.lg
+++ b/src/test/resources/line_graph/vulkan_structs.hpp$$$fd641ac85c6170c34845db5e345d3bf9cedce8d7.lg
@@ -1,1937 +1,1937 @@
 t # thirdparty/vulkan/include/vulkan/vulkan_structs.hpp$$$fd641ac85c6170c34845db5e345d3bf9cedce8d7
-v 149 NON_ROOT_""
+v 144 NON_ROOT_""
 v 592 NON_IF_"if -VULKAN_STRUCTS_HPP"
-v 900 ADD_CODE_""
+v 899 ADD_CODE_""
 v 3200 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3284 NON_CODE_""
+v 3283 NON_CODE_""
 v 8192 ADD_IF_"if -VULKAN_HPP_NO_UNION_CONSTRUCTORS"
-v 8276 NON_CODE_""
+v 8275 NON_CODE_""
 v 9024 ADD_IF_"if -VULKAN_HPP_NO_UNION_SETTERS"
-v 9108 NON_CODE_""
+v 9107 NON_CODE_""
 v 14464 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 14548 NON_CODE_""
+v 14547 NON_CODE_""
 v 22272 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 22356 NON_CODE_""
+v 22355 NON_CODE_""
 v 27648 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 27732 NON_CODE_""
+v 27731 NON_CODE_""
 v 30976 ADD_IF_"if -VULKAN_HPP_NO_UNION_CONSTRUCTORS"
-v 31060 NON_CODE_""
+v 31059 NON_CODE_""
 v 32384 ADD_IF_"if -VULKAN_HPP_NO_UNION_SETTERS"
-v 32468 NON_CODE_""
+v 32467 NON_CODE_""
 v 37632 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 37716 NON_CODE_""
+v 37715 NON_CODE_""
 v 41344 ADD_IF_"if -VULKAN_HPP_NO_UNION_CONSTRUCTORS"
-v 41428 NON_CODE_""
+v 41427 NON_CODE_""
 v 42112 ADD_IF_"if -VULKAN_HPP_NO_UNION_SETTERS"
-v 42196 NON_CODE_""
+v 42195 NON_CODE_""
 v 50112 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 50196 NON_CODE_""
+v 50195 NON_CODE_""
 v 53696 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 53780 NON_CODE_""
-v 54484 NON_CODE_""
+v 53779 NON_CODE_""
+v 54483 NON_CODE_""
 v 54976 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 55060 NON_CODE_""
-v 55764 NON_CODE_""
+v 55059 NON_CODE_""
+v 55763 NON_CODE_""
 v 53640 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 54920 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 60672 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 60756 NON_CODE_""
+v 60755 NON_CODE_""
 v 66880 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 66964 NON_CODE_""
+v 66963 NON_CODE_""
 v 74176 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 74260 NON_CODE_""
+v 74259 NON_CODE_""
 v 83264 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 83348 NON_CODE_""
+v 83347 NON_CODE_""
 v 93440 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 93524 NON_CODE_""
+v 93523 NON_CODE_""
 v 99712 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 99796 NON_CODE_""
+v 99795 NON_CODE_""
 v 104512 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 104596 NON_CODE_""
+v 104595 NON_CODE_""
 v 112000 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 112084 NON_CODE_""
+v 112083 NON_CODE_""
 v 114560 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 114644 NON_CODE_""
+v 114643 NON_CODE_""
 v 114504 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 120320 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 120404 NON_CODE_""
+v 120403 NON_CODE_""
 v 126464 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 126548 NON_CODE_""
+v 126547 NON_CODE_""
 v 132160 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 132244 NON_CODE_""
+v 132243 NON_CODE_""
 v 136384 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 136468 NON_CODE_""
+v 136467 NON_CODE_""
 v 141184 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 141268 NON_CODE_""
+v 141267 NON_CODE_""
 v 149056 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 149140 NON_CODE_""
+v 149139 NON_CODE_""
 v 157184 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 157268 NON_CODE_""
+v 157267 NON_CODE_""
 v 163392 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 163476 NON_CODE_""
+v 163475 NON_CODE_""
 v 170688 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 170772 NON_CODE_""
+v 170771 NON_CODE_""
 v 182592 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 182676 NON_CODE_""
+v 182675 NON_CODE_""
 v 188608 ADD_IF_"if -VULKAN_HPP_NO_UNION_CONSTRUCTORS"
-v 188692 NON_CODE_""
+v 188691 NON_CODE_""
 v 190144 ADD_IF_"if -VULKAN_HPP_NO_UNION_SETTERS"
-v 190228 NON_CODE_""
+v 190227 NON_CODE_""
 v 195584 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 195668 NON_CODE_""
+v 195667 NON_CODE_""
 v 200256 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 200340 NON_CODE_""
+v 200339 NON_CODE_""
 v 205888 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 205972 NON_CODE_""
+v 205971 NON_CODE_""
 v 213056 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 213140 NON_CODE_""
+v 213139 NON_CODE_""
 v 219136 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 219220 NON_CODE_""
+v 219219 NON_CODE_""
 v 225984 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 226068 NON_CODE_""
+v 226067 NON_CODE_""
 v 245968 NON_IF_"if VK_USE_PLATFORM_ANDROID_KHR"
 v 247872 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 247956 NON_CODE_""
+v 247955 NON_CODE_""
 v 254016 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 254100 NON_CODE_""
+v 254099 NON_CODE_""
 v 261888 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 261972 NON_CODE_""
+v 261971 NON_CODE_""
 v 271104 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 271188 NON_CODE_""
+v 271187 NON_CODE_""
 v 280576 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 280660 NON_CODE_""
+v 280659 NON_CODE_""
 v 286400 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 286484 NON_CODE_""
+v 286483 NON_CODE_""
 v 291328 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 291412 NON_CODE_""
+v 291411 NON_CODE_""
 v 297600 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 297684 NON_CODE_""
+v 297683 NON_CODE_""
 v 302528 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 302612 NON_CODE_""
+v 302611 NON_CODE_""
 v 306944 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 307028 NON_CODE_""
+v 307027 NON_CODE_""
 v 312896 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 312980 NON_CODE_""
+v 312979 NON_CODE_""
 v 315136 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 315220 NON_CODE_""
+v 315219 NON_CODE_""
 v 315080 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 320576 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 320660 NON_CODE_""
+v 320659 NON_CODE_""
 v 325056 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 325140 NON_CODE_""
+v 325139 NON_CODE_""
 v 328960 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 329044 NON_CODE_""
+v 329043 NON_CODE_""
 v 334912 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 334996 NON_CODE_""
+v 334995 NON_CODE_""
 v 337472 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 337556 NON_CODE_""
+v 337555 NON_CODE_""
 v 337416 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 343552 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 343636 NON_CODE_""
+v 343635 NON_CODE_""
 v 344832 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 344916 NON_CODE_""
+v 344915 NON_CODE_""
 v 344776 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 350272 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 350356 NON_CODE_""
+v 350355 NON_CODE_""
 v 356032 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 356116 NON_CODE_""
+v 356115 NON_CODE_""
 v 360320 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 360404 NON_CODE_""
+v 360403 NON_CODE_""
 v 366144 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 366228 NON_CODE_""
+v 366227 NON_CODE_""
 v 367424 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 367508 NON_CODE_""
-v 368148 NON_CODE_""
+v 367507 NON_CODE_""
+v 368147 NON_CODE_""
 v 369088 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 369172 NON_CODE_""
+v 369171 NON_CODE_""
 v 367368 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 369032 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 374848 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 374932 NON_CODE_""
+v 374931 NON_CODE_""
 v 381120 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 381204 NON_CODE_""
+v 381203 NON_CODE_""
 v 386880 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 386964 NON_CODE_""
+v 386963 NON_CODE_""
 v 392256 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 392340 NON_CODE_""
+v 392339 NON_CODE_""
 v 397312 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 397396 NON_CODE_""
+v 397395 NON_CODE_""
 v 401792 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 401876 NON_CODE_""
+v 401875 NON_CODE_""
 v 408512 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 408596 NON_CODE_""
+v 408595 NON_CODE_""
 v 409792 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 409876 NON_CODE_""
+v 409875 NON_CODE_""
 v 409736 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 415168 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 415252 NON_CODE_""
+v 415251 NON_CODE_""
 v 416512 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 416596 NON_CODE_""
+v 416595 NON_CODE_""
 v 416456 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 421184 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 421268 NON_CODE_""
+v 421267 NON_CODE_""
 v 426112 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 426196 NON_CODE_""
+v 426195 NON_CODE_""
 v 431168 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 431252 NON_CODE_""
+v 431251 NON_CODE_""
 v 436672 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 436756 NON_CODE_""
+v 436755 NON_CODE_""
 v 443904 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 443988 NON_CODE_""
+v 443987 NON_CODE_""
 v 445248 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 445332 NON_CODE_""
+v 445331 NON_CODE_""
 v 445192 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 452608 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 452692 NON_CODE_""
+v 452691 NON_CODE_""
 v 453888 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 453972 NON_CODE_""
-v 454676 NON_CODE_""
+v 453971 NON_CODE_""
+v 454675 NON_CODE_""
 v 455552 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 455636 NON_CODE_""
-v 456340 NON_CODE_""
+v 455635 NON_CODE_""
+v 456339 NON_CODE_""
 v 457216 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 457300 NON_CODE_""
-v 458004 NON_CODE_""
+v 457299 NON_CODE_""
+v 458003 NON_CODE_""
 v 458880 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 458964 NON_CODE_""
-v 459668 NON_CODE_""
+v 458963 NON_CODE_""
+v 459667 NON_CODE_""
 v 460544 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 460628 NON_CODE_""
+v 460627 NON_CODE_""
 v 453832 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 455496 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 457160 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 458824 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 460488 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 466496 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 466580 NON_CODE_""
+v 466579 NON_CODE_""
 v 471872 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 471956 NON_CODE_""
+v 471955 NON_CODE_""
 v 477824 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 477908 NON_CODE_""
+v 477907 NON_CODE_""
 v 486528 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 486612 NON_CODE_""
+v 486611 NON_CODE_""
 v 489344 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 489428 NON_CODE_""
-v 490132 NON_CODE_""
+v 489427 NON_CODE_""
+v 490131 NON_CODE_""
 v 489288 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 495296 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 495380 NON_CODE_""
+v 495379 NON_CODE_""
 v 500480 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 500564 NON_CODE_""
+v 500563 NON_CODE_""
 v 508032 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 508116 NON_CODE_""
+v 508115 NON_CODE_""
 v 510848 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 510932 NON_CODE_""
+v 510931 NON_CODE_""
 v 510792 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 516416 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 516500 NON_CODE_""
+v 516499 NON_CODE_""
 v 521600 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 521684 NON_CODE_""
+v 521683 NON_CODE_""
 v 527168 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 527252 NON_CODE_""
+v 527251 NON_CODE_""
 v 534336 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 534420 NON_CODE_""
+v 534419 NON_CODE_""
 v 542656 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 542740 NON_CODE_""
+v 542739 NON_CODE_""
 v 551616 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 551700 NON_CODE_""
+v 551699 NON_CODE_""
 v 560832 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 560916 NON_CODE_""
+v 560915 NON_CODE_""
 v 566208 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 566292 NON_CODE_""
+v 566291 NON_CODE_""
 v 571968 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 572052 NON_CODE_""
+v 572051 NON_CODE_""
 v 579072 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 579156 NON_CODE_""
+v 579155 NON_CODE_""
 v 591488 ADD_IF_"if -VULKAN_HPP_NO_UNION_CONSTRUCTORS"
-v 591572 NON_CODE_""
+v 591571 NON_CODE_""
 v 592320 ADD_IF_"if -VULKAN_HPP_NO_UNION_SETTERS"
-v 592404 NON_CODE_""
+v 592403 NON_CODE_""
 v 596544 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 596628 NON_CODE_""
+v 596627 NON_CODE_""
 v 599616 ADD_IF_"if -VULKAN_HPP_NO_UNION_CONSTRUCTORS"
-v 599700 NON_CODE_""
+v 599699 NON_CODE_""
 v 600320 ADD_IF_"if -VULKAN_HPP_NO_UNION_SETTERS"
-v 600404 NON_CODE_""
+v 600403 NON_CODE_""
 v 604544 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 604628 NON_CODE_""
+v 604627 NON_CODE_""
 v 608576 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 608660 NON_CODE_""
+v 608659 NON_CODE_""
 v 613568 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 613652 NON_CODE_""
+v 613651 NON_CODE_""
 v 619840 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 619924 NON_CODE_""
+v 619923 NON_CODE_""
 v 621632 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 621716 NON_CODE_""
+v 621715 NON_CODE_""
 v 621576 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 626880 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 626964 NON_CODE_""
+v 626963 NON_CODE_""
 v 633728 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 633812 NON_CODE_""
+v 633811 NON_CODE_""
 v 641664 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 641748 NON_CODE_""
+v 641747 NON_CODE_""
 v 647744 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 647828 NON_CODE_""
+v 647827 NON_CODE_""
 v 653696 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 653780 NON_CODE_""
+v 653779 NON_CODE_""
 v 659840 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 659924 NON_CODE_""
+v 659923 NON_CODE_""
 v 666880 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 666964 NON_CODE_""
+v 666963 NON_CODE_""
 v 673408 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 673492 NON_CODE_""
+v 673491 NON_CODE_""
 v 679232 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 679316 NON_CODE_""
+v 679315 NON_CODE_""
 v 684800 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 684884 NON_CODE_""
+v 684883 NON_CODE_""
 v 690816 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 690900 NON_CODE_""
+v 690899 NON_CODE_""
 v 691776 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 691860 NON_CODE_""
-v 692564 NON_CODE_""
+v 691859 NON_CODE_""
+v 692563 NON_CODE_""
 v 693376 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 693460 NON_CODE_""
+v 693459 NON_CODE_""
 v 691720 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 693320 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 698752 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 698836 NON_CODE_""
+v 698835 NON_CODE_""
 v 706432 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 706516 NON_CODE_""
+v 706515 NON_CODE_""
 v 713984 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 714068 NON_CODE_""
+v 714067 NON_CODE_""
 v 720320 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 720404 NON_CODE_""
+v 720403 NON_CODE_""
 v 726912 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 726996 NON_CODE_""
+v 726995 NON_CODE_""
 v 735744 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 735828 NON_CODE_""
+v 735827 NON_CODE_""
 v 742656 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 742740 NON_CODE_""
+v 742739 NON_CODE_""
 v 749312 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 749396 NON_CODE_""
+v 749395 NON_CODE_""
 v 751360 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 751444 NON_CODE_""
+v 751443 NON_CODE_""
 v 751304 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 758144 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 758228 NON_CODE_""
+v 758227 NON_CODE_""
 v 760704 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 760788 NON_CODE_""
+v 760787 NON_CODE_""
 v 760648 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 766336 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 766420 NON_CODE_""
+v 766419 NON_CODE_""
 v 772352 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 772436 NON_CODE_""
+v 772435 NON_CODE_""
 v 780736 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 780820 NON_CODE_""
+v 780819 NON_CODE_""
 v 789504 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 789588 NON_CODE_""
+v 789587 NON_CODE_""
 v 792320 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 792404 NON_CODE_""
+v 792403 NON_CODE_""
 v 792264 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 799360 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 799444 NON_CODE_""
+v 799443 NON_CODE_""
 v 801920 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 802004 NON_CODE_""
+v 802003 NON_CODE_""
 v 801864 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 808064 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 808148 NON_CODE_""
+v 808147 NON_CODE_""
 v 813632 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 813716 NON_CODE_""
+v 813715 NON_CODE_""
 v 817808 NON_IF_"if -VULKAN_HPP_NO_STRUCT_CONSTRUCTORS"
 v 819968 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 820036 ADD_CODE_""
+v 820035 ADD_CODE_""
 v 822208 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 822292 NON_CODE_""
+v 822291 NON_CODE_""
 v 826496 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 826564 ADD_CODE_""
-v 827156 NON_CODE_""
+v 826563 ADD_CODE_""
+v 827155 NON_CODE_""
 v 827904 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 827972 ADD_CODE_""
+v 827971 ADD_CODE_""
 v 833728 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 833812 NON_CODE_""
+v 833811 NON_CODE_""
 v 837584 NON_IF_"if VK_USE_PLATFORM_WIN32_KHR"
 v 840384 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 840468 NON_CODE_""
+v 840467 NON_CODE_""
 v 841664 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 841748 NON_CODE_""
-v 842388 NON_CODE_""
+v 841747 NON_CODE_""
+v 842387 NON_CODE_""
 v 843200 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 843284 NON_CODE_""
+v 843283 NON_CODE_""
 v 841608 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 843144 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 848832 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 848916 NON_CODE_""
+v 848915 NON_CODE_""
 v 854784 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 854868 NON_CODE_""
+v 854867 NON_CODE_""
 v 862528 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 862612 NON_CODE_""
+v 862611 NON_CODE_""
 v 865024 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 865108 NON_CODE_""
+v 865107 NON_CODE_""
 v 864968 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 870848 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 870932 NON_CODE_""
+v 870931 NON_CODE_""
 v 877056 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 877140 NON_CODE_""
+v 877139 NON_CODE_""
 v 883008 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 883092 NON_CODE_""
+v 883091 NON_CODE_""
 v 892096 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 892180 NON_CODE_""
+v 892179 NON_CODE_""
 v 895040 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 895124 NON_CODE_""
-v 895828 NON_CODE_""
+v 895123 NON_CODE_""
+v 895827 NON_CODE_""
 v 896704 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 896788 NON_CODE_""
-v 897492 NON_CODE_""
+v 896787 NON_CODE_""
+v 897491 NON_CODE_""
 v 898368 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 898452 NON_CODE_""
+v 898451 NON_CODE_""
 v 894984 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 896648 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 898312 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 904960 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 905044 NON_CODE_""
+v 905043 NON_CODE_""
 v 913792 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 913876 NON_CODE_""
+v 913875 NON_CODE_""
 v 916224 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 916308 NON_CODE_""
+v 916307 NON_CODE_""
 v 916168 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 921920 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 922004 NON_CODE_""
+v 922003 NON_CODE_""
 v 927360 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 927444 NON_CODE_""
+v 927443 NON_CODE_""
 v 932992 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 933076 NON_CODE_""
+v 933075 NON_CODE_""
 v 939072 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 939156 NON_CODE_""
+v 939155 NON_CODE_""
 v 946048 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 946132 NON_CODE_""
+v 946131 NON_CODE_""
 v 953344 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 953428 NON_CODE_""
+v 953427 NON_CODE_""
 v 965120 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 965204 NON_CODE_""
+v 965203 NON_CODE_""
 v 966848 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 966932 NON_CODE_""
-v 967636 NON_CODE_""
+v 966931 NON_CODE_""
+v 967635 NON_CODE_""
 v 968512 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 968596 NON_CODE_""
-v 969300 NON_CODE_""
+v 968595 NON_CODE_""
+v 969299 NON_CODE_""
 v 970176 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 970260 NON_CODE_""
+v 970259 NON_CODE_""
 v 966792 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 968456 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 970120 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 975936 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 976020 NON_CODE_""
+v 976019 NON_CODE_""
 v 981120 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 981204 NON_CODE_""
+v 981203 NON_CODE_""
 v 986176 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 986260 NON_CODE_""
+v 986259 NON_CODE_""
 v 992000 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 992084 NON_CODE_""
+v 992083 NON_CODE_""
 v 994112 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 994196 NON_CODE_""
+v 994195 NON_CODE_""
 v 994056 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 999744 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 999828 NON_CODE_""
+v 999827 NON_CODE_""
 v 1006144 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1006228 NON_CODE_""
+v 1006227 NON_CODE_""
 v 1007936 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1008020 NON_CODE_""
+v 1008019 NON_CODE_""
 v 1007880 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1014528 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1014612 NON_CODE_""
+v 1014611 NON_CODE_""
 v 1016704 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1016788 NON_CODE_""
+v 1016787 NON_CODE_""
 v 1016648 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1022656 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1022740 NON_CODE_""
+v 1022739 NON_CODE_""
 v 1024000 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1024084 NON_CODE_""
+v 1024083 NON_CODE_""
 v 1023944 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1030272 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1030356 NON_CODE_""
+v 1030355 NON_CODE_""
 v 1032064 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1032148 NON_CODE_""
+v 1032147 NON_CODE_""
 v 1032008 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1042688 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1042772 NON_CODE_""
+v 1042771 NON_CODE_""
 v 1044096 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1044180 NON_CODE_""
+v 1044179 NON_CODE_""
 v 1044040 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1054784 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1054868 NON_CODE_""
+v 1054867 NON_CODE_""
 v 1064128 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1064212 NON_CODE_""
+v 1064211 NON_CODE_""
 v 1065984 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1066068 NON_CODE_""
-v 1066772 NON_CODE_""
+v 1066067 NON_CODE_""
+v 1066771 NON_CODE_""
 v 1065928 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1075136 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1075220 NON_CODE_""
+v 1075219 NON_CODE_""
 v 1077184 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1077268 NON_CODE_""
+v 1077267 NON_CODE_""
 v 1077128 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1089216 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1089300 NON_CODE_""
+v 1089299 NON_CODE_""
 v 1124352 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1124436 NON_CODE_""
+v 1124435 NON_CODE_""
 v 1126080 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1126164 NON_CODE_""
-v 1126868 NON_CODE_""
+v 1126163 NON_CODE_""
+v 1126867 NON_CODE_""
 v 1127680 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1127764 NON_CODE_""
-v 1128404 NON_CODE_""
+v 1127763 NON_CODE_""
+v 1128403 NON_CODE_""
 v 1129216 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1129300 NON_CODE_""
-v 1130004 NON_CODE_""
+v 1129299 NON_CODE_""
+v 1130003 NON_CODE_""
 v 1126024 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1127624 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1129160 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1135936 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1136020 NON_CODE_""
+v 1136019 NON_CODE_""
 v 1142336 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1142420 NON_CODE_""
+v 1142419 NON_CODE_""
 v 1147648 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1147732 NON_CODE_""
+v 1147731 NON_CODE_""
 v 1152896 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1152980 NON_CODE_""
+v 1152979 NON_CODE_""
 v 1158720 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1158804 NON_CODE_""
+v 1158803 NON_CODE_""
 v 1164736 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1164820 NON_CODE_""
+v 1164819 NON_CODE_""
 v 1166080 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1166164 NON_CODE_""
+v 1166163 NON_CODE_""
 v 1166024 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1173388 REM_CODE_""
-v 1173444 ADD_CODE_""
+v 1173387 REM_CODE_""
+v 1173443 ADD_CODE_""
 v 1177152 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1177236 NON_CODE_""
+v 1177235 NON_CODE_""
 v 1178432 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1178516 NON_CODE_""
-v 1179156 NON_CODE_""
+v 1178515 NON_CODE_""
+v 1179155 NON_CODE_""
 v 1178376 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1185152 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1185236 NON_CODE_""
+v 1185235 NON_CODE_""
 v 1186880 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1186964 NON_CODE_""
+v 1186963 NON_CODE_""
 v 1186824 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1193792 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1193876 NON_CODE_""
+v 1193875 NON_CODE_""
 v 1195136 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1195220 NON_CODE_""
-v 1195924 NON_CODE_""
+v 1195219 NON_CODE_""
+v 1195923 NON_CODE_""
 v 1196800 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1196884 NON_CODE_""
-v 1197588 NON_CODE_""
+v 1196883 NON_CODE_""
+v 1197587 NON_CODE_""
 v 1198464 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1198548 NON_CODE_""
+v 1198547 NON_CODE_""
 v 1195080 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1196744 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1198408 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1204288 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1204372 NON_CODE_""
+v 1204371 NON_CODE_""
 v 1209728 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1209812 NON_CODE_""
+v 1209811 NON_CODE_""
 v 1215296 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1215380 NON_CODE_""
-v 1223500 REM_CODE_""
-v 1223556 ADD_CODE_""
+v 1215379 NON_CODE_""
+v 1223499 REM_CODE_""
+v 1223555 ADD_CODE_""
 v 1226688 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1226772 NON_CODE_""
+v 1226771 NON_CODE_""
 v 1232320 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1232404 NON_CODE_""
+v 1232403 NON_CODE_""
 v 1237696 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1237780 NON_CODE_""
+v 1237779 NON_CODE_""
 v 1242064 NON_IF_"if VK_USE_PLATFORM_DIRECTFB_EXT"
 v 1244096 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1244180 NON_CODE_""
+v 1244179 NON_CODE_""
 v 1250304 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1250388 NON_CODE_""
+v 1250387 NON_CODE_""
 v 1255488 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1255572 NON_CODE_""
+v 1255571 NON_CODE_""
 v 1260480 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1260564 NON_CODE_""
+v 1260563 NON_CODE_""
 v 1265344 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1265428 NON_CODE_""
+v 1265427 NON_CODE_""
 v 1293504 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1293588 NON_CODE_""
+v 1293587 NON_CODE_""
 v 1307328 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1307412 NON_CODE_""
+v 1307411 NON_CODE_""
 v 1312640 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1312724 NON_CODE_""
+v 1312723 NON_CODE_""
 v 1328896 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1328980 NON_CODE_""
+v 1328979 NON_CODE_""
 v 1338176 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1338260 NON_CODE_""
+v 1338259 NON_CODE_""
 v 1344512 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1344596 NON_CODE_""
+v 1344595 NON_CODE_""
 v 1350080 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1350164 NON_CODE_""
+v 1350163 NON_CODE_""
 v 1364224 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1364308 NON_CODE_""
+v 1364307 NON_CODE_""
 v 1369280 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1369364 NON_CODE_""
+v 1369363 NON_CODE_""
 v 1372816 NON_IF_"if VK_USE_PLATFORM_WIN32_KHR"
 v 1374848 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1374932 NON_CODE_""
+v 1374931 NON_CODE_""
 v 1381056 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1381140 NON_CODE_""
+v 1381139 NON_CODE_""
 v 1386368 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1386452 NON_CODE_""
+v 1386451 NON_CODE_""
 v 1389904 NON_IF_"if VK_USE_PLATFORM_WIN32_KHR"
 v 1391936 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1392020 NON_CODE_""
+v 1392019 NON_CODE_""
 v 1396432 NON_IF_"if VK_USE_PLATFORM_WIN32_KHR"
 v 1398336 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1398420 NON_CODE_""
+v 1398419 NON_CODE_""
 v 1404160 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1404244 NON_CODE_""
+v 1404243 NON_CODE_""
 v 1407760 NON_IF_"if VK_USE_PLATFORM_WIN32_KHR"
 v 1409856 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1409940 NON_CODE_""
+v 1409939 NON_CODE_""
 v 1431376 NON_IF_"if VK_USE_PLATFORM_ANDROID_KHR"
 v 1433088 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1433172 NON_CODE_""
+v 1433171 NON_CODE_""
 v 1451648 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1451732 NON_CODE_""
+v 1451731 NON_CODE_""
 v 1457024 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1457108 NON_CODE_""
+v 1457107 NON_CODE_""
 v 1462400 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1462484 NON_CODE_""
+v 1462483 NON_CODE_""
 v 1472512 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1472596 NON_CODE_""
+v 1472595 NON_CODE_""
 v 1477760 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1477844 NON_CODE_""
+v 1477843 NON_CODE_""
 v 1481808 NON_IF_"if VK_USE_PLATFORM_WIN32_KHR"
 v 1483840 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1483924 NON_CODE_""
+v 1483923 NON_CODE_""
 v 1503168 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1503252 NON_CODE_""
+v 1503251 NON_CODE_""
 v 1511040 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1511124 NON_CODE_""
+v 1511123 NON_CODE_""
 v 1514304 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1514388 NON_CODE_""
+v 1514387 NON_CODE_""
 v 1514248 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1520768 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1520852 NON_CODE_""
+v 1520851 NON_CODE_""
 v 1522176 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1522260 NON_CODE_""
+v 1522259 NON_CODE_""
 v 1522120 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1529408 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1529492 NON_CODE_""
+v 1529491 NON_CODE_""
 v 1531456 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1531540 NON_CODE_""
-v 1532244 NON_CODE_""
+v 1531539 NON_CODE_""
+v 1532243 NON_CODE_""
 v 1531400 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1543488 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1543572 NON_CODE_""
+v 1543571 NON_CODE_""
 v 1551680 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1551764 NON_CODE_""
+v 1551763 NON_CODE_""
 v 1554304 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1554388 NON_CODE_""
-v 1555092 NON_CODE_""
+v 1554387 NON_CODE_""
+v 1555091 NON_CODE_""
 v 1554248 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1564736 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1564820 NON_CODE_""
+v 1564819 NON_CODE_""
 v 1571840 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1571924 NON_CODE_""
+v 1571923 NON_CODE_""
 v 1577280 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1577364 NON_CODE_""
+v 1577363 NON_CODE_""
 v 1584704 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1584788 NON_CODE_""
+v 1584787 NON_CODE_""
 v 1586560 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1586644 NON_CODE_""
-v 1587348 NON_CODE_""
+v 1586643 NON_CODE_""
+v 1587347 NON_CODE_""
 v 1588288 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1588372 NON_CODE_""
+v 1588371 NON_CODE_""
 v 1586504 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1588232 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1594368 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1594452 NON_CODE_""
+v 1594451 NON_CODE_""
 v 1601024 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1601108 NON_CODE_""
+v 1601107 NON_CODE_""
 v 1608192 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1608276 NON_CODE_""
+v 1608275 NON_CODE_""
 v 1609984 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1610068 NON_CODE_""
-v 1610772 NON_CODE_""
+v 1610067 NON_CODE_""
+v 1610771 NON_CODE_""
 v 1611648 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1611732 NON_CODE_""
+v 1611731 NON_CODE_""
 v 1609928 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1611592 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1618624 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1618708 NON_CODE_""
+v 1618707 NON_CODE_""
 v 1630144 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1630228 NON_CODE_""
+v 1630227 NON_CODE_""
 v 1639168 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1639252 NON_CODE_""
+v 1639251 NON_CODE_""
 v 1647488 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1647572 NON_CODE_""
+v 1647571 NON_CODE_""
 v 1658240 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1658324 NON_CODE_""
+v 1658323 NON_CODE_""
 v 1668160 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1668244 NON_CODE_""
+v 1668243 NON_CODE_""
 v 1670784 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1670868 NON_CODE_""
-v 1671572 NON_CODE_""
+v 1670867 NON_CODE_""
+v 1671571 NON_CODE_""
 v 1670728 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1677760 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1677844 NON_CODE_""
+v 1677843 NON_CODE_""
 v 1679552 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1679636 NON_CODE_""
+v 1679635 NON_CODE_""
 v 1679496 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1689472 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1689556 NON_CODE_""
+v 1689555 NON_CODE_""
 v 1691200 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1691284 NON_CODE_""
-v 1691988 NON_CODE_""
+v 1691283 NON_CODE_""
+v 1691987 NON_CODE_""
 v 1691144 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1705152 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1705236 NON_CODE_""
+v 1705235 NON_CODE_""
 v 1706496 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1706580 NON_CODE_""
-v 1707284 NON_CODE_""
+v 1706579 NON_CODE_""
+v 1707283 NON_CODE_""
 v 1706440 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1714304 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1714388 NON_CODE_""
+v 1714387 NON_CODE_""
 v 1715648 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1715732 NON_CODE_""
-v 1716436 NON_CODE_""
+v 1715731 NON_CODE_""
+v 1716435 NON_CODE_""
 v 1717312 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1717396 NON_CODE_""
+v 1717395 NON_CODE_""
 v 1715592 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1717256 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1722496 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1722580 NON_CODE_""
+v 1722579 NON_CODE_""
 v 1727872 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1727956 NON_CODE_""
+v 1727955 NON_CODE_""
 v 1736512 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1736596 NON_CODE_""
+v 1736595 NON_CODE_""
 v 1740048 NON_IF_"if VK_USE_PLATFORM_IOS_MVK"
 v 1741888 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1741972 NON_CODE_""
+v 1741971 NON_CODE_""
 v 1747584 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1747668 NON_CODE_""
+v 1747667 NON_CODE_""
 v 1753408 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1753492 NON_CODE_""
+v 1753491 NON_CODE_""
 v 1762944 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1763028 NON_CODE_""
+v 1763027 NON_CODE_""
 v 1768064 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1768148 NON_CODE_""
-v 1768788 NON_CODE_""
+v 1768147 NON_CODE_""
+v 1768787 NON_CODE_""
 v 1768008 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1780032 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1780116 NON_CODE_""
+v 1780115 NON_CODE_""
 v 1781888 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1781972 NON_CODE_""
+v 1781971 NON_CODE_""
 v 1781832 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1788224 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1788308 NON_CODE_""
+v 1788307 NON_CODE_""
 v 1789632 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1789716 NON_CODE_""
+v 1789715 NON_CODE_""
 v 1789576 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1800000 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1800084 NON_CODE_""
+v 1800083 NON_CODE_""
 v 1801344 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1801428 NON_CODE_""
+v 1801427 NON_CODE_""
 v 1801288 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1811840 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1811924 NON_CODE_""
+v 1811923 NON_CODE_""
 v 1820416 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1820500 NON_CODE_""
+v 1820499 NON_CODE_""
 v 1823952 NON_IF_"if VK_USE_PLATFORM_FUCHSIA"
 v 1825984 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1826068 NON_CODE_""
+v 1826067 NON_CODE_""
 v 1831936 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1832020 NON_CODE_""
+v 1832019 NON_CODE_""
 v 1837440 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1837524 NON_CODE_""
+v 1837523 NON_CODE_""
 v 1843968 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1844052 NON_CODE_""
+v 1844051 NON_CODE_""
 v 1851328 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1851412 NON_CODE_""
+v 1851411 NON_CODE_""
 v 1856640 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1856724 NON_CODE_""
+v 1856723 NON_CODE_""
 v 1862016 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1862100 NON_CODE_""
+v 1862099 NON_CODE_""
 v 1867264 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1867348 NON_CODE_""
+v 1867347 NON_CODE_""
 v 1877696 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1877780 NON_CODE_""
+v 1877779 NON_CODE_""
 v 1885568 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1885652 NON_CODE_""
+v 1885651 NON_CODE_""
 v 1891712 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1891796 NON_CODE_""
+v 1891795 NON_CODE_""
 v 1895184 NON_IF_"if VK_USE_PLATFORM_ANDROID_KHR"
 v 1897216 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1897300 NON_CODE_""
+v 1897299 NON_CODE_""
 v 1902848 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1902932 NON_CODE_""
+v 1902931 NON_CODE_""
 v 1907792 NON_IF_"if VK_USE_PLATFORM_WIN32_KHR"
 v 1910208 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1910292 NON_CODE_""
+v 1910291 NON_CODE_""
 v 1917568 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1917652 NON_CODE_""
+v 1917651 NON_CODE_""
 v 1923520 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1923604 NON_CODE_""
+v 1923603 NON_CODE_""
 v 1927632 NON_IF_"if VK_USE_PLATFORM_WIN32_KHR"
 v 1929792 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1929876 NON_CODE_""
+v 1929875 NON_CODE_""
 v 1934416 NON_IF_"if VK_USE_PLATFORM_WIN32_KHR"
 v 1936384 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1936468 NON_CODE_""
+v 1936467 NON_CODE_""
 v 1940496 NON_IF_"if VK_USE_PLATFORM_FUCHSIA"
 v 1942656 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1942740 NON_CODE_""
+v 1942739 NON_CODE_""
 v 1948992 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1949076 NON_CODE_""
+v 1949075 NON_CODE_""
 v 1953936 NON_IF_"if VK_USE_PLATFORM_WIN32_KHR"
 v 1956416 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1956500 NON_CODE_""
+v 1956499 NON_CODE_""
 v 1962064 NON_IF_"if VK_USE_PLATFORM_FUCHSIA"
 v 1964544 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1964628 NON_CODE_""
+v 1964627 NON_CODE_""
 v 1975808 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1975892 NON_CODE_""
+v 1975891 NON_CODE_""
 v 1981312 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1981396 NON_CODE_""
-v 1982100 NON_CODE_""
+v 1981395 NON_CODE_""
+v 1982099 NON_CODE_""
 v 1982528 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1982612 NON_CODE_""
+v 1982611 NON_CODE_""
 v 1981256 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1982472 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1990720 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 1990804 NON_CODE_""
+v 1990803 NON_CODE_""
 v 1992960 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1993044 NON_CODE_""
-v 1993748 NON_CODE_""
+v 1993043 NON_CODE_""
+v 1993747 NON_CODE_""
 v 1994560 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 1994644 NON_CODE_""
+v 1994643 NON_CODE_""
 v 1992904 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 1994504 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 2000192 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2000276 NON_CODE_""
+v 2000275 NON_CODE_""
 v 2005504 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2005588 NON_CODE_""
+v 2005587 NON_CODE_""
 v 2012416 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2012500 NON_CODE_""
+v 2012499 NON_CODE_""
 v 2014528 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 2014612 NON_CODE_""
-v 2015316 NON_CODE_""
+v 2014611 NON_CODE_""
+v 2015315 NON_CODE_""
 v 2016128 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 2016212 NON_CODE_""
+v 2016211 NON_CODE_""
 v 2014472 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 2016072 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 2024080 NON_IF_"if VK_USE_PLATFORM_MACOS_MVK"
 v 2025984 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2026068 NON_CODE_""
+v 2026067 NON_CODE_""
 v 2031872 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2031956 NON_CODE_""
+v 2031955 NON_CODE_""
 v 2038016 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2038100 NON_CODE_""
+v 2038099 NON_CODE_""
 v 2043776 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2043860 NON_CODE_""
+v 2043859 NON_CODE_""
 v 2049408 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2049492 NON_CODE_""
+v 2049491 NON_CODE_""
 v 2055104 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2055188 NON_CODE_""
+v 2055187 NON_CODE_""
 v 2067984 NON_IF_"if VK_USE_PLATFORM_ANDROID_KHR"
 v 2070080 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2070164 NON_CODE_""
+v 2070163 NON_CODE_""
 v 2075648 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2075732 NON_CODE_""
-v 2079684 ADD_CODE_""
+v 2075731 NON_CODE_""
+v 2079683 ADD_CODE_""
 v 2080000 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_CONSTRUCTORS"
-v 2080068 ADD_CODE_""
-v 2081092 ADD_CODE_""
+v 2080067 ADD_CODE_""
+v 2081091 ADD_CODE_""
 v 2081664 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2081732 ADD_CODE_""
-v 2083012 ADD_CODE_""
+v 2081731 ADD_CODE_""
+v 2083011 ADD_CODE_""
 v 2083648 ADD_IF_"if VULKAN_HPP_HAS_SPACESHIP_OPERATOR"
-v 2083716 ADD_CODE_""
-v 2083778 ADD_ELSE_"else"
-v 2083844 ADD_CODE_""
-v 2084612 ADD_CODE_""
+v 2083715 ADD_CODE_""
+v 2083777 ADD_ELSE_"else"
+v 2083843 ADD_CODE_""
+v 2084611 ADD_CODE_""
 v 2085776 NON_IF_"if VK_USE_PLATFORM_WIN32_KHR"
 v 2087808 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2087892 NON_CODE_""
+v 2087891 NON_CODE_""
 v 2091984 NON_IF_"if VK_USE_PLATFORM_FUCHSIA"
 v 2094016 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2094100 NON_CODE_""
+v 2094099 NON_CODE_""
 v 2107968 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2108052 NON_CODE_""
+v 2108051 NON_CODE_""
 v 2113280 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2113364 NON_CODE_""
+v 2113363 NON_CODE_""
 v 2137360 NON_IF_"if VK_USE_PLATFORM_METAL_EXT"
 v 2139264 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2139348 NON_CODE_""
+v 2139347 NON_CODE_""
 v 2144960 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2145044 NON_CODE_""
+v 2145043 NON_CODE_""
 v 2149888 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2149972 NON_CODE_""
+v 2149971 NON_CODE_""
 v 2159424 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2159508 NON_CODE_""
+v 2159507 NON_CODE_""
 v 2160384 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 2160468 NON_CODE_""
+v 2160467 NON_CODE_""
 v 2160328 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 2166016 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2166100 NON_CODE_""
+v 2166099 NON_CODE_""
 v 2167424 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 2167508 NON_CODE_""
+v 2167507 NON_CODE_""
 v 2167368 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 2177600 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2177684 NON_CODE_""
-v 2185164 REM_CODE_""
-v 2185220 ADD_CODE_""
-v 2190284 REM_CODE_""
-v 2190340 ADD_CODE_""
+v 2177683 NON_CODE_""
+v 2185163 REM_CODE_""
+v 2185219 ADD_CODE_""
+v 2190283 REM_CODE_""
+v 2190339 ADD_CODE_""
 v 2191616 ADD_IF_"if -VULKAN_HPP_NO_UNION_CONSTRUCTORS"
-v 2191700 NON_CODE_""
+v 2191699 NON_CODE_""
 v 2192832 ADD_IF_"if -VULKAN_HPP_NO_UNION_SETTERS"
-v 2192916 NON_CODE_""
+v 2192915 NON_CODE_""
 v 2198464 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2198548 NON_CODE_""
+v 2198547 NON_CODE_""
 v 2204032 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2204116 NON_CODE_""
+v 2204115 NON_CODE_""
 v 2210304 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2210388 NON_CODE_""
+v 2210387 NON_CODE_""
 v 2215488 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2215572 NON_CODE_""
+v 2215571 NON_CODE_""
 v 2219072 ADD_IF_"if -VULKAN_HPP_NO_UNION_CONSTRUCTORS"
-v 2219156 NON_CODE_""
+v 2219155 NON_CODE_""
 v 2220032 ADD_IF_"if -VULKAN_HPP_NO_UNION_SETTERS"
-v 2220116 NON_CODE_""
+v 2220115 NON_CODE_""
 v 2225728 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2225812 NON_CODE_""
+v 2225811 NON_CODE_""
 v 2230080 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2230164 NON_CODE_""
+v 2230163 NON_CODE_""
 v 2237504 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2237588 NON_CODE_""
+v 2237587 NON_CODE_""
 v 2243712 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2243796 NON_CODE_""
+v 2243795 NON_CODE_""
 v 2250432 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2250516 NON_CODE_""
+v 2250515 NON_CODE_""
 v 2256576 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2256660 NON_CODE_""
+v 2256659 NON_CODE_""
 v 2271232 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2271316 NON_CODE_""
+v 2271315 NON_CODE_""
 v 2283264 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2283348 NON_CODE_""
+v 2283347 NON_CODE_""
 v 2290368 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2290452 NON_CODE_""
+v 2290451 NON_CODE_""
 v 2297152 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2297236 NON_CODE_""
+v 2297235 NON_CODE_""
 v 2302720 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2302804 NON_CODE_""
+v 2302803 NON_CODE_""
 v 2308480 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2308564 NON_CODE_""
+v 2308563 NON_CODE_""
 v 2314880 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2314964 NON_CODE_""
+v 2314963 NON_CODE_""
 v 2328064 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2328148 NON_CODE_""
+v 2328147 NON_CODE_""
 v 2339008 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2339092 NON_CODE_""
+v 2339091 NON_CODE_""
 v 2344640 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2344724 NON_CODE_""
+v 2344723 NON_CODE_""
 v 2350400 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2350484 NON_CODE_""
+v 2350483 NON_CODE_""
 v 2361408 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2361492 NON_CODE_""
+v 2361491 NON_CODE_""
 v 2367168 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2367252 NON_CODE_""
+v 2367251 NON_CODE_""
 v 2380800 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2380884 NON_CODE_""
+v 2380883 NON_CODE_""
 v 2408960 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2409044 NON_CODE_""
+v 2409043 NON_CODE_""
 v 2421504 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2421588 NON_CODE_""
+v 2421587 NON_CODE_""
 v 2427136 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2427220 NON_CODE_""
+v 2427219 NON_CODE_""
 v 2447936 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2448020 NON_CODE_""
+v 2448019 NON_CODE_""
 v 2453824 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2453908 NON_CODE_""
+v 2453907 NON_CODE_""
 v 2460672 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2460756 NON_CODE_""
+v 2460755 NON_CODE_""
 v 2466368 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2466452 NON_CODE_""
+v 2466451 NON_CODE_""
 v 2472832 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2472916 NON_CODE_""
+v 2472915 NON_CODE_""
 v 2478528 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2478612 NON_CODE_""
-v 2486916 ADD_CODE_""
+v 2478611 NON_CODE_""
+v 2486915 ADD_CODE_""
 v 2487296 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_CONSTRUCTORS"
-v 2487364 ADD_CODE_""
-v 2488324 ADD_CODE_""
+v 2487363 ADD_CODE_""
+v 2488323 ADD_CODE_""
 v 2488960 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2489028 ADD_CODE_""
-v 2489924 ADD_CODE_""
+v 2489027 ADD_CODE_""
+v 2489923 ADD_CODE_""
 v 2490560 ADD_IF_"if VULKAN_HPP_HAS_SPACESHIP_OPERATOR"
-v 2490628 ADD_CODE_""
-v 2490690 ADD_ELSE_"else"
-v 2490756 ADD_CODE_""
-v 2491460 ADD_CODE_""
+v 2490627 ADD_CODE_""
+v 2490689 ADD_ELSE_"else"
+v 2490755 ADD_CODE_""
+v 2491459 ADD_CODE_""
 v 2494528 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2494612 NON_CODE_""
+v 2494611 NON_CODE_""
 v 2499904 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2499988 NON_CODE_""
+v 2499987 NON_CODE_""
 v 2514496 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2514580 NON_CODE_""
+v 2514579 NON_CODE_""
 v 2525888 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2525972 NON_CODE_""
+v 2525971 NON_CODE_""
 v 2537984 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2538068 NON_CODE_""
+v 2538067 NON_CODE_""
 v 2543936 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2544020 NON_CODE_""
+v 2544019 NON_CODE_""
 v 2551040 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2551124 NON_CODE_""
+v 2551123 NON_CODE_""
 v 2558016 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2558100 NON_CODE_""
+v 2558099 NON_CODE_""
 v 2564032 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2564116 NON_CODE_""
+v 2564115 NON_CODE_""
 v 2584832 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2584916 NON_CODE_""
+v 2584915 NON_CODE_""
 v 2595264 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2595348 NON_CODE_""
+v 2595347 NON_CODE_""
 v 2607360 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2607444 NON_CODE_""
+v 2607443 NON_CODE_""
 v 2609664 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 2609748 NON_CODE_""
+v 2609747 NON_CODE_""
 v 2609608 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 2615680 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2615764 NON_CODE_""
+v 2615763 NON_CODE_""
 v 2623104 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2623188 NON_CODE_""
+v 2623187 NON_CODE_""
 v 2628800 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2628884 NON_CODE_""
+v 2628883 NON_CODE_""
 v 2634432 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2634516 NON_CODE_""
+v 2634515 NON_CODE_""
 v 2640064 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2640148 NON_CODE_""
+v 2640147 NON_CODE_""
 v 2645696 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2645780 NON_CODE_""
+v 2645779 NON_CODE_""
 v 2651520 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2651604 NON_CODE_""
-v 2661700 ADD_CODE_""
+v 2651603 NON_CODE_""
+v 2661699 ADD_CODE_""
 v 2662080 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_CONSTRUCTORS"
-v 2662148 ADD_CODE_""
-v 2663044 ADD_CODE_""
+v 2662147 ADD_CODE_""
+v 2663043 ADD_CODE_""
 v 2663680 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2663748 ADD_CODE_""
-v 2664644 ADD_CODE_""
+v 2663747 ADD_CODE_""
+v 2664643 ADD_CODE_""
 v 2665280 ADD_IF_"if VULKAN_HPP_HAS_SPACESHIP_OPERATOR"
-v 2665348 ADD_CODE_""
-v 2665410 ADD_ELSE_"else"
-v 2665476 ADD_CODE_""
-v 2666180 ADD_CODE_""
+v 2665347 ADD_CODE_""
+v 2665409 ADD_ELSE_"else"
+v 2665475 ADD_CODE_""
+v 2666179 ADD_CODE_""
 v 2699904 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2699988 NON_CODE_""
+v 2699987 NON_CODE_""
 v 2722688 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2722772 NON_CODE_""
+v 2722771 NON_CODE_""
 v 2737024 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2737108 NON_CODE_""
+v 2737107 NON_CODE_""
 v 2750528 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2750612 NON_CODE_""
+v 2750611 NON_CODE_""
 v 2760448 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2760532 NON_CODE_""
+v 2760531 NON_CODE_""
 v 2776768 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2776852 NON_CODE_""
+v 2776851 NON_CODE_""
 v 2787648 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2787732 NON_CODE_""
+v 2787731 NON_CODE_""
 v 2798720 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2798804 NON_CODE_""
+v 2798803 NON_CODE_""
 v 2804480 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2804564 NON_CODE_""
+v 2804563 NON_CODE_""
 v 2812880 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 2816768 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2816852 NON_CODE_""
+v 2816851 NON_CODE_""
 v 2828304 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 2830400 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2830484 NON_CODE_""
-v 2834116 ADD_CODE_""
+v 2830483 NON_CODE_""
+v 2834115 ADD_CODE_""
 v 2834496 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_CONSTRUCTORS"
-v 2834564 ADD_CODE_""
-v 2835396 ADD_CODE_""
+v 2834563 ADD_CODE_""
+v 2835395 ADD_CODE_""
 v 2836032 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2836100 ADD_CODE_""
-v 2836932 ADD_CODE_""
+v 2836099 ADD_CODE_""
+v 2836931 ADD_CODE_""
 v 2837568 ADD_IF_"if VULKAN_HPP_HAS_SPACESHIP_OPERATOR"
-v 2837636 ADD_CODE_""
-v 2837698 ADD_ELSE_"else"
-v 2837764 ADD_CODE_""
-v 2838468 ADD_CODE_""
+v 2837635 ADD_CODE_""
+v 2837697 ADD_ELSE_"else"
+v 2837763 ADD_CODE_""
+v 2838467 ADD_CODE_""
 v 2839872 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_CONSTRUCTORS"
-v 2839940 ADD_CODE_""
-v 2840772 ADD_CODE_""
+v 2839939 ADD_CODE_""
+v 2840771 ADD_CODE_""
 v 2841408 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2841476 ADD_CODE_""
-v 2842372 ADD_CODE_""
+v 2841475 ADD_CODE_""
+v 2842371 ADD_CODE_""
 v 2843008 ADD_IF_"if VULKAN_HPP_HAS_SPACESHIP_OPERATOR"
-v 2843076 ADD_CODE_""
-v 2843138 ADD_ELSE_"else"
-v 2843204 ADD_CODE_""
-v 2843908 ADD_CODE_""
+v 2843075 ADD_CODE_""
+v 2843137 ADD_ELSE_"else"
+v 2843203 ADD_CODE_""
+v 2843907 ADD_CODE_""
 v 2845312 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_CONSTRUCTORS"
-v 2845380 ADD_CODE_""
-v 2846468 ADD_CODE_""
+v 2845379 ADD_CODE_""
+v 2846467 ADD_CODE_""
 v 2847168 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2847236 ADD_CODE_""
-v 2848580 ADD_CODE_""
+v 2847235 ADD_CODE_""
+v 2848579 ADD_CODE_""
 v 2849216 ADD_IF_"if VULKAN_HPP_HAS_SPACESHIP_OPERATOR"
-v 2849284 ADD_CODE_""
-v 2849346 ADD_ELSE_"else"
-v 2849412 ADD_CODE_""
-v 2850244 ADD_CODE_""
+v 2849283 ADD_CODE_""
+v 2849345 ADD_ELSE_"else"
+v 2849411 ADD_CODE_""
+v 2850243 ADD_CODE_""
 v 2853312 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2853396 NON_CODE_""
+v 2853395 NON_CODE_""
 v 2873216 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2873300 NON_CODE_""
+v 2873299 NON_CODE_""
 v 2883520 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2883604 NON_CODE_""
+v 2883603 NON_CODE_""
 v 2899264 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2899348 NON_CODE_""
-v 2904908 REM_CODE_""
+v 2899347 NON_CODE_""
+v 2904907 REM_CODE_""
 v 2904960 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2905028 ADD_CODE_""
-v 2905108 NON_CODE_""
-v 2908108 REM_CODE_""
-v 2908164 ADD_CODE_""
+v 2905027 ADD_CODE_""
+v 2905107 NON_CODE_""
+v 2908107 REM_CODE_""
+v 2908163 ADD_CODE_""
 v 2911744 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2911828 NON_CODE_""
+v 2911827 NON_CODE_""
 v 2932608 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2932692 NON_CODE_""
+v 2932691 NON_CODE_""
 v 2938432 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2938516 NON_CODE_""
+v 2938515 NON_CODE_""
 v 2960768 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2960852 NON_CODE_""
+v 2960851 NON_CODE_""
 v 2966400 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2966484 NON_CODE_""
+v 2966483 NON_CODE_""
 v 2972160 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2972244 NON_CODE_""
-v 2975876 ADD_CODE_""
+v 2972243 NON_CODE_""
+v 2975875 ADD_CODE_""
 v 2976256 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_CONSTRUCTORS"
-v 2976324 ADD_CODE_""
-v 2978692 ADD_CODE_""
+v 2976323 ADD_CODE_""
+v 2978691 ADD_CODE_""
 v 2979328 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2979396 ADD_CODE_""
-v 2985220 ADD_CODE_""
+v 2979395 ADD_CODE_""
+v 2985219 ADD_CODE_""
 v 2985856 ADD_IF_"if VULKAN_HPP_HAS_SPACESHIP_OPERATOR"
-v 2985924 ADD_CODE_""
-v 2985986 ADD_ELSE_"else"
-v 2986052 ADD_CODE_""
-v 2987524 ADD_CODE_""
+v 2985923 ADD_CODE_""
+v 2985985 ADD_ELSE_"else"
+v 2986051 ADD_CODE_""
+v 2987523 ADD_CODE_""
 v 2992768 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 2992852 NON_CODE_""
+v 2992851 NON_CODE_""
 v 3004864 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3004948 NON_CODE_""
+v 3004947 NON_CODE_""
 v 3011200 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3011284 NON_CODE_""
+v 3011283 NON_CODE_""
 v 3029760 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3029844 NON_CODE_""
+v 3029843 NON_CODE_""
 v 3035456 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3035540 NON_CODE_""
+v 3035539 NON_CODE_""
 v 3041216 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3041300 NON_CODE_""
+v 3041299 NON_CODE_""
 v 3047680 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3047764 NON_CODE_""
+v 3047763 NON_CODE_""
 v 3053888 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3053972 NON_CODE_""
-v 3057476 ADD_CODE_""
+v 3053971 NON_CODE_""
+v 3057475 ADD_CODE_""
 v 3057856 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_CONSTRUCTORS"
-v 3057924 ADD_CODE_""
-v 3058884 ADD_CODE_""
+v 3057923 ADD_CODE_""
+v 3058883 ADD_CODE_""
 v 3059520 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3059588 ADD_CODE_""
-v 3060484 ADD_CODE_""
+v 3059587 ADD_CODE_""
+v 3060483 ADD_CODE_""
 v 3061120 ADD_IF_"if VULKAN_HPP_HAS_SPACESHIP_OPERATOR"
-v 3061188 ADD_CODE_""
-v 3061250 ADD_ELSE_"else"
-v 3061316 ADD_CODE_""
-v 3062084 ADD_CODE_""
+v 3061187 ADD_CODE_""
+v 3061249 ADD_ELSE_"else"
+v 3061315 ADD_CODE_""
+v 3062083 ADD_CODE_""
 v 3063552 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_CONSTRUCTORS"
-v 3063620 ADD_CODE_""
-v 3069380 ADD_CODE_""
+v 3063619 ADD_CODE_""
+v 3069379 ADD_CODE_""
 v 3070080 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3070148 ADD_CODE_""
-v 3086916 ADD_CODE_""
+v 3070147 ADD_CODE_""
+v 3086915 ADD_CODE_""
 v 3087552 ADD_IF_"if VULKAN_HPP_HAS_SPACESHIP_OPERATOR"
-v 3087620 ADD_CODE_""
-v 3087682 ADD_ELSE_"else"
-v 3087748 ADD_CODE_""
-v 3091716 ADD_CODE_""
+v 3087619 ADD_CODE_""
+v 3087681 ADD_ELSE_"else"
+v 3087747 ADD_CODE_""
+v 3091715 ADD_CODE_""
 v 3096768 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3096852 NON_CODE_""
+v 3096851 NON_CODE_""
 v 3102400 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3102484 NON_CODE_""
+v 3102483 NON_CODE_""
 v 3113024 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3113108 NON_CODE_""
+v 3113107 NON_CODE_""
 v 3118912 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3118996 NON_CODE_""
+v 3118995 NON_CODE_""
 v 3124736 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3124820 NON_CODE_""
+v 3124819 NON_CODE_""
 v 3130560 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3130644 NON_CODE_""
+v 3130643 NON_CODE_""
 v 3142336 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3142420 NON_CODE_""
+v 3142419 NON_CODE_""
 v 3155008 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3155092 NON_CODE_""
+v 3155091 NON_CODE_""
 v 3166592 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3166676 NON_CODE_""
+v 3166675 NON_CODE_""
 v 3176704 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3176788 NON_CODE_""
+v 3176787 NON_CODE_""
 v 3182144 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3182228 NON_CODE_""
+v 3182227 NON_CODE_""
 v 3187776 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3187860 NON_CODE_""
+v 3187859 NON_CODE_""
 v 3198976 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3199060 NON_CODE_""
+v 3199059 NON_CODE_""
 v 3204544 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3204628 NON_CODE_""
+v 3204627 NON_CODE_""
 v 3220288 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3220372 NON_CODE_""
+v 3220371 NON_CODE_""
 v 3233600 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3233684 NON_CODE_""
+v 3233683 NON_CODE_""
 v 3239424 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3239508 NON_CODE_""
+v 3239507 NON_CODE_""
 v 3245952 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3246036 NON_CODE_""
+v 3246035 NON_CODE_""
 v 3257024 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3257108 NON_CODE_""
+v 3257107 NON_CODE_""
 v 3260688 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 3262848 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3262932 NON_CODE_""
+v 3262931 NON_CODE_""
 v 3268048 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 3269888 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3269972 NON_CODE_""
+v 3269971 NON_CODE_""
 v 3273872 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
-v 3277580 REM_CODE_""
-v 3277636 ADD_CODE_""
+v 3277579 REM_CODE_""
+v 3277635 ADD_CODE_""
 v 3281856 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3281940 NON_CODE_""
+v 3281939 NON_CODE_""
 v 3307072 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3307156 NON_CODE_""
+v 3307155 NON_CODE_""
 v 3357696 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3357780 NON_CODE_""
+v 3357779 NON_CODE_""
 v 3364992 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3365076 NON_CODE_""
+v 3365075 NON_CODE_""
 v 3372416 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3372500 NON_CODE_""
+v 3372499 NON_CODE_""
 v 3377984 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3378068 NON_CODE_""
+v 3378067 NON_CODE_""
 v 3383680 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3383764 NON_CODE_""
+v 3383763 NON_CODE_""
 v 3389760 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3389844 NON_CODE_""
+v 3389843 NON_CODE_""
 v 3391424 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3391508 NON_CODE_""
+v 3391507 NON_CODE_""
 v 3391368 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3394948 ADD_CODE_""
+v 3394947 ADD_CODE_""
 v 3395072 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_CONSTRUCTORS"
-v 3395140 ADD_CODE_""
-v 3396548 ADD_CODE_""
+v 3395139 ADD_CODE_""
+v 3396547 ADD_CODE_""
 v 3397120 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3397188 ADD_CODE_""
-v 3399300 ADD_CODE_""
+v 3397187 ADD_CODE_""
+v 3399299 ADD_CODE_""
 v 3399936 ADD_IF_"if VULKAN_HPP_HAS_SPACESHIP_OPERATOR"
-v 3400004 ADD_CODE_""
-v 3400066 ADD_ELSE_"else"
-v 3400132 ADD_CODE_""
-v 3400964 ADD_CODE_""
+v 3400003 ADD_CODE_""
+v 3400065 ADD_ELSE_"else"
+v 3400131 ADD_CODE_""
+v 3400963 ADD_CODE_""
 v 3404160 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3404244 NON_CODE_""
+v 3404243 NON_CODE_""
 v 3411264 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3411348 NON_CODE_""
+v 3411347 NON_CODE_""
 v 3412608 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3412692 NON_CODE_""
+v 3412691 NON_CODE_""
 v 3412552 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3418048 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3418132 NON_CODE_""
+v 3418131 NON_CODE_""
 v 3425088 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3425172 NON_CODE_""
+v 3425171 NON_CODE_""
 v 3427840 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3427924 NON_CODE_""
+v 3427923 NON_CODE_""
 v 3427784 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3434048 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3434132 NON_CODE_""
+v 3434131 NON_CODE_""
 v 3440576 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3440660 NON_CODE_""
+v 3440659 NON_CODE_""
 v 3452096 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3452180 NON_CODE_""
+v 3452179 NON_CODE_""
 v 3453952 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3454036 NON_CODE_""
+v 3454035 NON_CODE_""
 v 3453896 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3460928 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3461012 NON_CODE_""
+v 3461011 NON_CODE_""
 v 3463232 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3463316 NON_CODE_""
+v 3463315 NON_CODE_""
 v 3463176 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3468928 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3469012 NON_CODE_""
+v 3469011 NON_CODE_""
 v 3484480 ADD_IF_"if -VULKAN_HPP_NO_UNION_CONSTRUCTORS"
-v 3484564 NON_CODE_""
+v 3484563 NON_CODE_""
 v 3485504 ADD_IF_"if -VULKAN_HPP_NO_UNION_SETTERS"
-v 3485588 NON_CODE_""
+v 3485587 NON_CODE_""
 v 3495744 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3495828 NON_CODE_""
+v 3495827 NON_CODE_""
 v 3502848 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3502932 NON_CODE_""
+v 3502931 NON_CODE_""
 v 3508608 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3508692 NON_CODE_""
+v 3508691 NON_CODE_""
 v 3513664 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3513748 NON_CODE_""
+v 3513747 NON_CODE_""
 v 3520256 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3520340 NON_CODE_""
+v 3520339 NON_CODE_""
 v 3521984 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3522068 NON_CODE_""
-v 3522772 NON_CODE_""
+v 3522067 NON_CODE_""
+v 3522771 NON_CODE_""
 v 3523648 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3523732 NON_CODE_""
+v 3523731 NON_CODE_""
 v 3521928 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3523592 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3529792 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3529876 NON_CODE_""
+v 3529875 NON_CODE_""
 v 3531136 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3531220 NON_CODE_""
+v 3531219 NON_CODE_""
 v 3531080 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3537088 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3537172 NON_CODE_""
+v 3537171 NON_CODE_""
 v 3544064 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3544148 NON_CODE_""
+v 3544147 NON_CODE_""
 v 3550720 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3550804 NON_CODE_""
+v 3550803 NON_CODE_""
 v 3558272 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3558356 NON_CODE_""
+v 3558355 NON_CODE_""
 v 3564032 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3564116 NON_CODE_""
+v 3564115 NON_CODE_""
 v 3569856 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3569940 NON_CODE_""
+v 3569939 NON_CODE_""
 v 3576128 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3576212 NON_CODE_""
+v 3576211 NON_CODE_""
 v 3581952 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3582036 NON_CODE_""
+v 3582035 NON_CODE_""
 v 3592960 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3593044 NON_CODE_""
+v 3593043 NON_CODE_""
 v 3598464 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3598548 NON_CODE_""
+v 3598547 NON_CODE_""
 v 3604352 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3604436 NON_CODE_""
+v 3604435 NON_CODE_""
 v 3605824 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3605908 NON_CODE_""
+v 3605907 NON_CODE_""
 v 3605768 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3612672 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3612756 NON_CODE_""
+v 3612755 NON_CODE_""
 v 3614528 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3614612 NON_CODE_""
+v 3614611 NON_CODE_""
 v 3614472 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3621056 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3621140 NON_CODE_""
+v 3621139 NON_CODE_""
 v 3622464 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3622548 NON_CODE_""
+v 3622547 NON_CODE_""
 v 3622408 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3628288 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3628372 NON_CODE_""
+v 3628371 NON_CODE_""
 v 3629248 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3629332 NON_CODE_""
+v 3629331 NON_CODE_""
 v 3629192 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3635264 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3635348 NON_CODE_""
+v 3635347 NON_CODE_""
 v 3637056 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3637140 NON_CODE_""
+v 3637139 NON_CODE_""
 v 3637000 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3642944 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3643028 NON_CODE_""
+v 3643027 NON_CODE_""
 v 3649792 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3649876 NON_CODE_""
+v 3649875 NON_CODE_""
 v 3651584 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3651668 NON_CODE_""
+v 3651667 NON_CODE_""
 v 3651528 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3656768 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3656852 NON_CODE_""
+v 3656851 NON_CODE_""
 v 3662720 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3662804 NON_CODE_""
+v 3662803 NON_CODE_""
 v 3664512 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3664596 NON_CODE_""
+v 3664595 NON_CODE_""
 v 3664456 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3668240 NON_IF_"if VK_USE_PLATFORM_GGP"
 v 3669952 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3670036 NON_CODE_""
-v 3673476 ADD_CODE_""
+v 3670035 NON_CODE_""
+v 3673475 ADD_CODE_""
 v 3673792 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_CONSTRUCTORS"
-v 3673860 ADD_CODE_""
+v 3673859 ADD_CODE_""
 v 3674624 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3674692 ADD_CODE_""
-v 3675076 ADD_CODE_""
+v 3674691 ADD_CODE_""
+v 3675075 ADD_CODE_""
 v 3675584 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3675652 ADD_CODE_""
+v 3675651 ADD_CODE_""
 v 3676800 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3676868 ADD_CODE_""
-v 3677508 ADD_CODE_""
+v 3676867 ADD_CODE_""
+v 3677507 ADD_CODE_""
 v 3678144 ADD_IF_"if VULKAN_HPP_HAS_SPACESHIP_OPERATOR"
-v 3678212 ADD_CODE_""
-v 3678274 ADD_ELSE_"else"
-v 3678340 ADD_CODE_""
-v 3679108 ADD_CODE_""
+v 3678211 ADD_CODE_""
+v 3678273 ADD_ELSE_"else"
+v 3678339 ADD_CODE_""
+v 3679107 ADD_CODE_""
 v 3684800 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3684884 NON_CODE_""
+v 3684883 NON_CODE_""
 v 3686080 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3686164 NON_CODE_""
-v 3686868 NON_CODE_""
+v 3686163 NON_CODE_""
+v 3686867 NON_CODE_""
 v 3687680 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3687764 NON_CODE_""
-v 3688468 NON_CODE_""
+v 3687763 NON_CODE_""
+v 3688467 NON_CODE_""
 v 3688896 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3688980 NON_CODE_""
-v 3689620 NON_CODE_""
+v 3688979 NON_CODE_""
+v 3689619 NON_CODE_""
 v 3690048 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3690132 NON_CODE_""
+v 3690131 NON_CODE_""
 v 3686024 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3687624 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3688840 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3689992 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3695680 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3695764 NON_CODE_""
+v 3695763 NON_CODE_""
 v 3701056 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3701140 NON_CODE_""
+v 3701139 NON_CODE_""
 v 3701952 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3702036 NON_CODE_""
+v 3702035 NON_CODE_""
 v 3701896 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3707136 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3707220 NON_CODE_""
+v 3707219 NON_CODE_""
 v 3708416 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3708500 NON_CODE_""
+v 3708499 NON_CODE_""
 v 3708360 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3713472 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3713556 NON_CODE_""
+v 3713555 NON_CODE_""
 v 3718720 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3718804 NON_CODE_""
+v 3718803 NON_CODE_""
 v 3720000 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3720084 NON_CODE_""
+v 3720083 NON_CODE_""
 v 3719944 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3725184 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3725268 NON_CODE_""
+v 3725267 NON_CODE_""
 v 3730368 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3730452 NON_CODE_""
+v 3730451 NON_CODE_""
 v 3735872 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3735956 NON_CODE_""
+v 3735955 NON_CODE_""
 v 3743488 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3743572 NON_CODE_""
+v 3743571 NON_CODE_""
 v 3745152 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3745236 NON_CODE_""
+v 3745235 NON_CODE_""
 v 3745096 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3750784 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3750868 NON_CODE_""
+v 3750867 NON_CODE_""
 v 3766720 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3766804 NON_CODE_""
+v 3766803 NON_CODE_""
 v 3782016 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3782100 NON_CODE_""
+v 3782099 NON_CODE_""
 v 3790272 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3790356 NON_CODE_""
+v 3790355 NON_CODE_""
 v 3799552 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3799636 NON_CODE_""
+v 3799635 NON_CODE_""
 v 3801280 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3801364 NON_CODE_""
-v 3802068 NON_CODE_""
+v 3801363 NON_CODE_""
+v 3802067 NON_CODE_""
 v 3802944 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3803028 NON_CODE_""
-v 3803732 NON_CODE_""
+v 3803027 NON_CODE_""
+v 3803731 NON_CODE_""
 v 3801224 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3802888 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3812800 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3812884 NON_CODE_""
+v 3812883 NON_CODE_""
 v 3822592 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3822676 NON_CODE_""
+v 3822675 NON_CODE_""
 v 3824320 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3824404 NON_CODE_""
-v 3825108 NON_CODE_""
+v 3824403 NON_CODE_""
+v 3825107 NON_CODE_""
 v 3825984 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3826068 NON_CODE_""
-v 3826772 NON_CODE_""
+v 3826067 NON_CODE_""
+v 3826771 NON_CODE_""
 v 3824264 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3825928 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3837632 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3837716 NON_CODE_""
+v 3837715 NON_CODE_""
 v 3838976 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3839060 NON_CODE_""
+v 3839059 NON_CODE_""
 v 3838920 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3845696 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3845780 NON_CODE_""
+v 3845779 NON_CODE_""
 v 3848128 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3848212 NON_CODE_""
+v 3848211 NON_CODE_""
 v 3848072 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3856832 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3856916 NON_CODE_""
+v 3856915 NON_CODE_""
 v 3858624 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3858708 NON_CODE_""
-v 3859412 NON_CODE_""
+v 3858707 NON_CODE_""
+v 3859411 NON_CODE_""
 v 3860288 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3860372 NON_CODE_""
-v 3861076 NON_CODE_""
+v 3860371 NON_CODE_""
+v 3861075 NON_CODE_""
 v 3861568 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3861652 NON_CODE_""
-v 3862356 NON_CODE_""
+v 3861651 NON_CODE_""
+v 3862355 NON_CODE_""
 v 3863616 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3863700 NON_CODE_""
+v 3863699 NON_CODE_""
 v 3858568 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3860232 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3861512 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3863560 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3869632 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3869716 NON_CODE_""
+v 3869715 NON_CODE_""
 v 3878720 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3878804 NON_CODE_""
+v 3878803 NON_CODE_""
 v 3880448 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3880532 NON_CODE_""
-v 3881236 NON_CODE_""
+v 3880531 NON_CODE_""
+v 3881235 NON_CODE_""
 v 3882112 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3882196 NON_CODE_""
-v 3882900 NON_CODE_""
+v 3882195 NON_CODE_""
+v 3882899 NON_CODE_""
 v 3883776 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3883860 NON_CODE_""
+v 3883859 NON_CODE_""
 v 3880392 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3882056 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3883720 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3893120 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3893204 NON_CODE_""
+v 3893203 NON_CODE_""
 v 3895680 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3895764 NON_CODE_""
-v 3896468 NON_CODE_""
+v 3895763 NON_CODE_""
+v 3896467 NON_CODE_""
 v 3897344 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3897428 NON_CODE_""
-v 3898132 NON_CODE_""
+v 3897427 NON_CODE_""
+v 3898131 NON_CODE_""
 v 3898624 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3898708 NON_CODE_""
-v 3899412 NON_CODE_""
+v 3898707 NON_CODE_""
+v 3899411 NON_CODE_""
 v 3900672 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3900756 NON_CODE_""
+v 3900755 NON_CODE_""
 v 3895624 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3897288 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3898568 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3900616 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3907648 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3907732 NON_CODE_""
+v 3907731 NON_CODE_""
 v 3918656 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3918740 NON_CODE_""
+v 3918739 NON_CODE_""
 v 3920384 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3920468 NON_CODE_""
-v 3921172 NON_CODE_""
+v 3920467 NON_CODE_""
+v 3921171 NON_CODE_""
 v 3922048 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3922132 NON_CODE_""
-v 3922836 NON_CODE_""
+v 3922131 NON_CODE_""
+v 3922835 NON_CODE_""
 v 3923712 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3923796 NON_CODE_""
-v 3924500 NON_CODE_""
+v 3923795 NON_CODE_""
+v 3924499 NON_CODE_""
 v 3925312 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3925396 NON_CODE_""
+v 3925395 NON_CODE_""
 v 3920328 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3921992 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3923656 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3925256 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3931520 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3931604 NON_CODE_""
+v 3931603 NON_CODE_""
 v 3937920 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3938004 NON_CODE_""
+v 3938003 NON_CODE_""
 v 3939328 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3939412 NON_CODE_""
+v 3939411 NON_CODE_""
 v 3939272 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3946240 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3946324 NON_CODE_""
+v 3946323 NON_CODE_""
 v 3947520 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3947604 NON_CODE_""
-v 3948244 NON_CODE_""
+v 3947603 NON_CODE_""
+v 3948243 NON_CODE_""
 v 3949056 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3949140 NON_CODE_""
-v 3949780 NON_CODE_""
+v 3949139 NON_CODE_""
+v 3949779 NON_CODE_""
 v 3950592 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3950676 NON_CODE_""
+v 3950675 NON_CODE_""
 v 3947464 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3949000 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3950536 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3956224 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3956308 NON_CODE_""
+v 3956307 NON_CODE_""
 v 3962496 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3962580 NON_CODE_""
+v 3962579 NON_CODE_""
 v 3963968 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3964052 NON_CODE_""
-v 3964756 NON_CODE_""
+v 3964051 NON_CODE_""
+v 3964755 NON_CODE_""
 v 3965696 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3965780 NON_CODE_""
+v 3965779 NON_CODE_""
 v 3963912 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3965640 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3971328 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3971412 NON_CODE_""
+v 3971411 NON_CODE_""
 v 3978304 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3978388 NON_CODE_""
+v 3978387 NON_CODE_""
 v 3981120 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 3981204 NON_CODE_""
+v 3981203 NON_CODE_""
 v 3981064 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 3988608 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3988692 NON_CODE_""
+v 3988691 NON_CODE_""
 v 4001344 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4001428 NON_CODE_""
+v 4001427 NON_CODE_""
 v 4006272 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4006356 NON_CODE_""
+v 4006355 NON_CODE_""
 v 4012672 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4012756 NON_CODE_""
+v 4012755 NON_CODE_""
 v 4026560 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4026644 NON_CODE_""
+v 4026643 NON_CODE_""
 v 4030160 NON_IF_"if VK_USE_PLATFORM_SCREEN_QNX"
 v 4032192 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4032276 NON_CODE_""
+v 4032275 NON_CODE_""
 v 4038464 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4038548 NON_CODE_""
+v 4038547 NON_CODE_""
 v 4043776 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4043860 NON_CODE_""
+v 4043859 NON_CODE_""
 v 4047824 NON_IF_"if VK_USE_PLATFORM_WIN32_KHR"
 v 4049856 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4049940 NON_CODE_""
+v 4049939 NON_CODE_""
 v 4054032 NON_IF_"if VK_USE_PLATFORM_FUCHSIA"
 v 4056192 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4056276 NON_CODE_""
+v 4056275 NON_CODE_""
 v 4062144 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4062228 NON_CODE_""
+v 4062227 NON_CODE_""
 v 4068160 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4068244 NON_CODE_""
+v 4068243 NON_CODE_""
 v 4074816 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4074900 NON_CODE_""
+v 4074899 NON_CODE_""
 v 4082240 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4082324 NON_CODE_""
+v 4082323 NON_CODE_""
 v 4083904 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4083988 NON_CODE_""
-v 4084692 NON_CODE_""
+v 4083987 NON_CODE_""
+v 4084691 NON_CODE_""
 v 4085120 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4085204 NON_CODE_""
+v 4085203 NON_CODE_""
 v 4083848 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4085064 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4090176 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4090260 NON_CODE_""
+v 4090259 NON_CODE_""
 v 4095104 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4095188 NON_CODE_""
+v 4095187 NON_CODE_""
 v 4096768 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4096852 NON_CODE_""
+v 4096851 NON_CODE_""
 v 4096712 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4102272 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4102356 NON_CODE_""
+v 4102355 NON_CODE_""
 v 4137168 NON_IF_"if VK_USE_PLATFORM_GGP"
 v 4139264 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4139348 NON_CODE_""
+v 4139347 NON_CODE_""
 v 4145280 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4145364 NON_CODE_""
+v 4145363 NON_CODE_""
 v 4153088 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4153172 NON_CODE_""
+v 4153171 NON_CODE_""
 v 4154368 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4154452 NON_CODE_""
-v 4155156 NON_CODE_""
+v 4154451 NON_CODE_""
+v 4155155 NON_CODE_""
 v 4155648 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4155732 NON_CODE_""
-v 4156436 NON_CODE_""
+v 4155731 NON_CODE_""
+v 4156435 NON_CODE_""
 v 4157248 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4157332 NON_CODE_""
-v 4158036 NON_CODE_""
+v 4157331 NON_CODE_""
+v 4158035 NON_CODE_""
 v 4158848 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4158932 NON_CODE_""
+v 4158931 NON_CODE_""
 v 4154312 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4155592 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4157192 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4158792 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4166336 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4166420 NON_CODE_""
+v 4166419 NON_CODE_""
 v 4168064 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4168148 NON_CODE_""
-v 4168852 NON_CODE_""
+v 4168147 NON_CODE_""
+v 4168851 NON_CODE_""
 v 4169728 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4169812 NON_CODE_""
-v 4170516 NON_CODE_""
+v 4169811 NON_CODE_""
+v 4170515 NON_CODE_""
 v 4171392 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4171476 NON_CODE_""
+v 4171475 NON_CODE_""
 v 4168008 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4169672 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4171336 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4177088 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4177172 NON_CODE_""
+v 4177171 NON_CODE_""
 v 4182784 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4182868 NON_CODE_""
+v 4182867 NON_CODE_""
 v 4188992 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4189076 NON_CODE_""
-v 4192204 REM_CODE_""
-v 4192260 ADD_CODE_""
-v 4195724 REM_CODE_""
-v 4195780 ADD_CODE_""
-v 4196492 REM_CODE_""
-v 4196548 ADD_CODE_""
+v 4189075 NON_CODE_""
+v 4192203 REM_CODE_""
+v 4192259 ADD_CODE_""
+v 4195723 REM_CODE_""
+v 4195779 ADD_CODE_""
+v 4196491 REM_CODE_""
+v 4196547 ADD_CODE_""
 v 4213520 NON_IF_"if VK_USE_PLATFORM_WIN32_KHR"
 v 4215616 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4215700 NON_CODE_""
+v 4215699 NON_CODE_""
 v 4227280 NON_IF_"if VK_USE_PLATFORM_WIN32_KHR"
 v 4229248 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4229332 NON_CODE_""
+v 4229331 NON_CODE_""
 v 4232912 NON_IF_"if VK_USE_PLATFORM_WIN32_KHR"
 v 4234880 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4234964 NON_CODE_""
+v 4234963 NON_CODE_""
 v 4240192 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4240276 NON_CODE_""
+v 4240275 NON_CODE_""
 v 4245504 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4245588 NON_CODE_""
+v 4245587 NON_CODE_""
 v 4255232 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4255316 NON_CODE_""
+v 4255315 NON_CODE_""
 v 4260096 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4260180 NON_CODE_""
-v 4260820 NON_CODE_""
+v 4260179 NON_CODE_""
+v 4260819 NON_CODE_""
 v 4260040 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4268864 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4268948 NON_CODE_""
+v 4268947 NON_CODE_""
 v 4279808 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4279892 NON_CODE_""
+v 4279891 NON_CODE_""
 v 4281088 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4281172 NON_CODE_""
-v 4281812 NON_CODE_""
+v 4281171 NON_CODE_""
+v 4281811 NON_CODE_""
 v 4282752 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4282836 NON_CODE_""
+v 4282835 NON_CODE_""
 v 4281032 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4282696 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4288640 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4288724 NON_CODE_""
+v 4288723 NON_CODE_""
 v 4294592 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4294676 NON_CODE_""
+v 4294675 NON_CODE_""
 v 4296320 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4296404 NON_CODE_""
+v 4296403 NON_CODE_""
 v 4296264 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4302848 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4302932 NON_CODE_""
+v 4302931 NON_CODE_""
 v 4304256 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4304340 NON_CODE_""
-v 4305044 NON_CODE_""
+v 4304339 NON_CODE_""
+v 4305043 NON_CODE_""
 v 4305984 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4306068 NON_CODE_""
+v 4306067 NON_CODE_""
 v 4304200 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4305928 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4312192 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4312276 NON_CODE_""
+v 4312275 NON_CODE_""
 v 4313536 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4313620 NON_CODE_""
+v 4313619 NON_CODE_""
 v 4313480 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4319360 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4319444 NON_CODE_""
+v 4319443 NON_CODE_""
 v 4326464 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4326548 NON_CODE_""
+v 4326547 NON_CODE_""
 v 4331408 NON_IF_"if VK_USE_PLATFORM_VI_NN"
 v 4333248 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4333332 NON_CODE_""
+v 4333331 NON_CODE_""
 v 4337168 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4339328 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4339412 NON_CODE_""
+v 4339411 NON_CODE_""
 v 4344336 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4346240 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4346324 NON_CODE_""
+v 4346323 NON_CODE_""
 v 4350288 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4353792 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4353876 NON_CODE_""
+v 4353875 NON_CODE_""
 v 4356800 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4356884 NON_CODE_""
+v 4356883 NON_CODE_""
 v 4356744 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4360720 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4362816 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4362900 NON_CODE_""
+v 4362899 NON_CODE_""
 v 4367696 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4368080 NON_IF_"if -VULKAN_HPP_NO_STRUCT_CONSTRUCTORS"
-v 4368140 REM_CODE_""
-v 4368196 ADD_CODE_""
-v 4372364 REM_CODE_""
-v 4372996 ADD_CODE_""
+v 4368139 REM_CODE_""
+v 4368195 ADD_CODE_""
+v 4372363 REM_CODE_""
+v 4372995 ADD_CODE_""
 v 4374416 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4376256 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4376340 NON_CODE_""
+v 4376339 NON_CODE_""
 v 4384784 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4386624 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4386708 NON_CODE_""
+v 4386707 NON_CODE_""
 v 4390224 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4391936 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4392020 NON_CODE_""
+v 4392019 NON_CODE_""
 v 4395408 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4398080 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4398164 NON_CODE_""
+v 4398163 NON_CODE_""
 v 4399808 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4399892 NON_CODE_""
+v 4399891 NON_CODE_""
 v 4399752 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4403408 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4403792 NON_IF_"if -VULKAN_HPP_NO_STRUCT_CONSTRUCTORS"
-v 4403916 REM_CODE_""
-v 4404036 ADD_CODE_""
-v 4404236 REM_CODE_""
-v 4404292 ADD_CODE_""
+v 4403915 REM_CODE_""
+v 4404035 ADD_CODE_""
+v 4404235 REM_CODE_""
+v 4404291 ADD_CODE_""
 v 4405568 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4405652 NON_CODE_""
-v 4406532 ADD_CODE_""
-v 4406612 NON_CODE_""
-v 4406724 ADD_CODE_""
-v 4406804 NON_CODE_""
-v 4406476 REM_CODE_""
-v 4406668 REM_CODE_""
-v 4408844 REM_CODE_""
-v 4409092 ADD_CODE_""
+v 4405651 NON_CODE_""
+v 4406531 ADD_CODE_""
+v 4406611 NON_CODE_""
+v 4406723 ADD_CODE_""
+v 4406803 NON_CODE_""
+v 4406475 REM_CODE_""
+v 4406667 REM_CODE_""
+v 4408843 REM_CODE_""
+v 4409091 ADD_CODE_""
 v 4407696 NON_IF_"if -VULKAN_HPP_HAS_SPACESHIP_OPERATOR"
-v 4408140 REM_CODE_""
-v 4408196 ADD_CODE_""
+v 4408139 REM_CODE_""
+v 4408195 ADD_CODE_""
 v 4410192 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4412288 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4412372 NON_CODE_""
+v 4412371 NON_CODE_""
 v 4416464 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4419648 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4419732 NON_CODE_""
+v 4419731 NON_CODE_""
 v 4420992 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4421076 NON_CODE_""
-v 4421780 NON_CODE_""
+v 4421075 NON_CODE_""
+v 4421779 NON_CODE_""
 v 4422656 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4422740 NON_CODE_""
+v 4422739 NON_CODE_""
 v 4420936 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4422600 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4426448 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4428864 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4428948 NON_CODE_""
+v 4428947 NON_CODE_""
 v 4438160 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4440000 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4440084 NON_CODE_""
+v 4440083 NON_CODE_""
 v 4443600 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4446272 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4446356 NON_CODE_""
+v 4446355 NON_CODE_""
 v 4448000 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4448084 NON_CODE_""
+v 4448083 NON_CODE_""
 v 4447944 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4451600 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4453376 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4453460 NON_CODE_""
+v 4453459 NON_CODE_""
 v 4456976 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4459072 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4459156 NON_CODE_""
+v 4459155 NON_CODE_""
 v 4463248 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4466432 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4466516 NON_CODE_""
+v 4466515 NON_CODE_""
 v 4467776 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4467860 NON_CODE_""
-v 4468564 NON_CODE_""
+v 4467859 NON_CODE_""
+v 4468563 NON_CODE_""
 v 4469440 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4469524 NON_CODE_""
+v 4469523 NON_CODE_""
 v 4467720 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4469384 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4473232 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4475648 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4475732 NON_CODE_""
+v 4475731 NON_CODE_""
 v 4480272 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4484800 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4484884 NON_CODE_""
+v 4484883 NON_CODE_""
 v 4489344 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4489428 NON_CODE_""
+v 4489427 NON_CODE_""
 v 4489288 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4493648 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4494032 NON_IF_"if -VULKAN_HPP_NO_STRUCT_CONSTRUCTORS"
-v 4494156 REM_CODE_""
-v 4494852 ADD_CODE_""
+v 4494155 REM_CODE_""
+v 4494851 ADD_CODE_""
 v 4497472 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4497556 NON_CODE_""
-v 4498052 ADD_CODE_""
-v 4498132 NON_CODE_""
-v 4497996 REM_CODE_""
-v 4504716 REM_CODE_""
-v 4505540 ADD_CODE_""
+v 4497555 NON_CODE_""
+v 4498051 ADD_CODE_""
+v 4498131 NON_CODE_""
+v 4497995 REM_CODE_""
+v 4504715 REM_CODE_""
+v 4505539 ADD_CODE_""
 v 4507216 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4509184 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4509268 NON_CODE_""
+v 4509267 NON_CODE_""
 v 4513296 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4516480 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4516564 NON_CODE_""
+v 4516563 NON_CODE_""
 v 4518592 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4518676 NON_CODE_""
+v 4518675 NON_CODE_""
 v 4518536 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4522384 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4526720 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4526804 NON_CODE_""
+v 4526803 NON_CODE_""
 v 4528896 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4528980 NON_CODE_""
-v 4529684 NON_CODE_""
+v 4528979 NON_CODE_""
+v 4529683 NON_CODE_""
 v 4530560 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4530644 NON_CODE_""
-v 4531348 NON_CODE_""
+v 4530643 NON_CODE_""
+v 4531347 NON_CODE_""
 v 4528840 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4530504 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4536016 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4537792 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4537876 NON_CODE_""
+v 4537875 NON_CODE_""
 v 4541392 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4543616 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4543700 NON_CODE_""
+v 4543699 NON_CODE_""
 v 4548304 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4551488 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4551572 NON_CODE_""
+v 4551571 NON_CODE_""
 v 4552832 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4552916 NON_CODE_""
-v 4553620 NON_CODE_""
+v 4552915 NON_CODE_""
+v 4553619 NON_CODE_""
 v 4554496 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4554580 NON_CODE_""
+v 4554579 NON_CODE_""
 v 4552776 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4554440 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4558288 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4560704 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4560788 NON_CODE_""
+v 4560787 NON_CODE_""
 v 4565328 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4569152 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4569236 NON_CODE_""
+v 4569235 NON_CODE_""
 v 4570560 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4570644 NON_CODE_""
-v 4571348 NON_CODE_""
+v 4570643 NON_CODE_""
+v 4571347 NON_CODE_""
 v 4572288 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4572372 NON_CODE_""
-v 4573076 NON_CODE_""
+v 4572371 NON_CODE_""
+v 4573075 NON_CODE_""
 v 4573952 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4574036 NON_CODE_""
-v 4574740 NON_CODE_""
+v 4574035 NON_CODE_""
+v 4574739 NON_CODE_""
 v 4570504 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4572232 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4573896 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4578640 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4583168 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4583252 NON_CODE_""
+v 4583251 NON_CODE_""
 v 4587840 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4587924 NON_CODE_""
+v 4587923 NON_CODE_""
 v 4587784 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4592208 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4594880 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4594964 NON_CODE_""
+v 4594963 NON_CODE_""
 v 4601616 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4603392 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4603476 NON_CODE_""
+v 4603475 NON_CODE_""
 v 4611216 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4613184 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4613268 NON_CODE_""
+v 4613267 NON_CODE_""
 v 4617296 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4619136 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4619220 NON_CODE_""
+v 4619219 NON_CODE_""
 v 4622736 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4625472 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4625556 NON_CODE_""
+v 4625555 NON_CODE_""
 v 4632784 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4634880 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4634964 NON_CODE_""
+v 4634963 NON_CODE_""
 v 4639120 NON_IF_"if VK_ENABLE_BETA_EXTENSIONS"
 v 4641024 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4641108 NON_CODE_""
+v 4641107 NON_CODE_""
 v 4644560 NON_IF_"if VK_USE_PLATFORM_WAYLAND_KHR"
 v 4646592 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4646676 NON_CODE_""
+v 4646675 NON_CODE_""
 v 4651152 NON_IF_"if VK_USE_PLATFORM_WIN32_KHR"
 v 4657344 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4657428 NON_CODE_""
+v 4657427 NON_CODE_""
 v 4658688 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4658772 NON_CODE_""
-v 4659476 NON_CODE_""
+v 4658771 NON_CODE_""
+v 4659475 NON_CODE_""
 v 4659904 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4659988 NON_CODE_""
-v 4660628 NON_CODE_""
+v 4659987 NON_CODE_""
+v 4660627 NON_CODE_""
 v 4661056 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4661140 NON_CODE_""
-v 4661780 NON_CODE_""
+v 4661139 NON_CODE_""
+v 4661779 NON_CODE_""
 v 4662656 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4662740 NON_CODE_""
-v 4663444 NON_CODE_""
+v 4662739 NON_CODE_""
+v 4663443 NON_CODE_""
 v 4663872 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4663956 NON_CODE_""
+v 4663955 NON_CODE_""
 v 4658632 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4659848 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4661000 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
@@ -1939,21 +1939,21 @@ v 4662600 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4663816 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4667856 NON_IF_"if VK_USE_PLATFORM_WIN32_KHR"
 v 4674048 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4674132 NON_CODE_""
+v 4674131 NON_CODE_""
 v 4675392 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4675476 NON_CODE_""
-v 4676180 NON_CODE_""
+v 4675475 NON_CODE_""
+v 4676179 NON_CODE_""
 v 4676608 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4676692 NON_CODE_""
-v 4677332 NON_CODE_""
+v 4676691 NON_CODE_""
+v 4677331 NON_CODE_""
 v 4677824 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4677908 NON_CODE_""
-v 4678612 NON_CODE_""
+v 4677907 NON_CODE_""
+v 4678611 NON_CODE_""
 v 4679488 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4679572 NON_CODE_""
-v 4680276 NON_CODE_""
+v 4679571 NON_CODE_""
+v 4680275 NON_CODE_""
 v 4680704 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4680788 NON_CODE_""
+v 4680787 NON_CODE_""
 v 4675336 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4676552 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4677768 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
@@ -1961,2765 +1961,2765 @@ v 4679432 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4680648 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4684752 NON_IF_"if VK_USE_PLATFORM_WIN32_KHR"
 v 4686784 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4686868 NON_CODE_""
+v 4686867 NON_CODE_""
 v 4696128 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4696212 NON_CODE_""
+v 4696211 NON_CODE_""
 v 4699008 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4699092 NON_CODE_""
-v 4699796 NON_CODE_""
+v 4699091 NON_CODE_""
+v 4699795 NON_CODE_""
 v 4700288 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4700372 NON_CODE_""
-v 4701076 NON_CODE_""
+v 4700371 NON_CODE_""
+v 4701075 NON_CODE_""
 v 4701568 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4701652 NON_CODE_""
+v 4701651 NON_CODE_""
 v 4698952 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4700232 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4701512 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4708352 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4708436 NON_CODE_""
+v 4708435 NON_CODE_""
 v 4709760 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4709844 NON_CODE_""
+v 4709843 NON_CODE_""
 v 4709704 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4716160 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4716244 NON_CODE_""
+v 4716243 NON_CODE_""
 v 4717568 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4717652 NON_CODE_""
+v 4717651 NON_CODE_""
 v 4717512 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4723712 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4723796 NON_CODE_""
+v 4723795 NON_CODE_""
 v 4724992 ADD_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
-v 4725076 NON_CODE_""
+v 4725075 NON_CODE_""
 v 4724936 REM_IF_"if -VULKAN_HPP_DISABLE_ENHANCED_MODE"
 v 4728528 NON_IF_"if VK_USE_PLATFORM_XCB_KHR"
 v 4730496 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4730580 NON_CODE_""
+v 4730579 NON_CODE_""
 v 4734928 NON_IF_"if VK_USE_PLATFORM_XLIB_KHR"
 v 4736896 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 4736980 NON_CODE_""
-e 592 149 ba
-e 900 592 a
+v 4736979 NON_CODE_""
+e 592 144 ba
+e 899 592 a
 e 3200 592 a
-e 3284 592 b
-e 3284 3200 a
+e 3283 592 b
+e 3283 3200 a
 e 8192 592 a
-e 8276 592 b
-e 8276 8192 a
+e 8275 592 b
+e 8275 8192 a
 e 9024 592 a
-e 9108 592 b
-e 9108 9024 a
+e 9107 592 b
+e 9107 9024 a
 e 14464 592 a
-e 14548 592 b
-e 14548 14464 a
+e 14547 592 b
+e 14547 14464 a
 e 22272 592 a
-e 22356 592 b
-e 22356 22272 a
+e 22355 592 b
+e 22355 22272 a
 e 27648 592 a
-e 27732 592 b
-e 27732 27648 a
+e 27731 592 b
+e 27731 27648 a
 e 30976 592 a
-e 31060 592 b
-e 31060 30976 a
+e 31059 592 b
+e 31059 30976 a
 e 32384 592 a
-e 32468 592 b
-e 32468 32384 a
+e 32467 592 b
+e 32467 32384 a
 e 37632 592 a
-e 37716 592 b
-e 37716 37632 a
+e 37715 592 b
+e 37715 37632 a
 e 41344 592 a
-e 41428 592 b
-e 41428 41344 a
+e 41427 592 b
+e 41427 41344 a
 e 42112 592 a
-e 42196 592 b
-e 42196 42112 a
+e 42195 592 b
+e 42195 42112 a
 e 50112 592 a
-e 50196 592 b
-e 50196 50112 a
+e 50195 592 b
+e 50195 50112 a
 e 53696 50112 a
-e 53780 53640 b
-e 53780 53696 a
-e 54484 592 b
-e 54484 50112 a
+e 53779 53640 b
+e 53779 53696 a
+e 54483 592 b
+e 54483 50112 a
 e 54976 50112 a
-e 55060 54920 b
-e 55060 54976 a
-e 55764 592 b
-e 55764 50112 a
+e 55059 54920 b
+e 55059 54976 a
+e 55763 592 b
+e 55763 50112 a
 e 53640 592 b
 e 54920 592 b
 e 60672 592 a
-e 60756 592 b
-e 60756 60672 a
+e 60755 592 b
+e 60755 60672 a
 e 66880 592 a
-e 66964 592 b
-e 66964 66880 a
+e 66963 592 b
+e 66963 66880 a
 e 74176 592 a
-e 74260 592 b
-e 74260 74176 a
+e 74259 592 b
+e 74259 74176 a
 e 83264 592 a
-e 83348 592 b
-e 83348 83264 a
+e 83347 592 b
+e 83347 83264 a
 e 93440 592 a
-e 93524 592 b
-e 93524 93440 a
+e 93523 592 b
+e 93523 93440 a
 e 99712 592 a
-e 99796 592 b
-e 99796 99712 a
+e 99795 592 b
+e 99795 99712 a
 e 104512 592 a
-e 104596 592 b
-e 104596 104512 a
+e 104595 592 b
+e 104595 104512 a
 e 112000 592 a
-e 112084 592 b
-e 112084 112000 a
+e 112083 592 b
+e 112083 112000 a
 e 114560 112000 a
-e 114644 114504 b
-e 114644 114560 a
+e 114643 114504 b
+e 114643 114560 a
 e 114504 592 b
 e 120320 592 a
-e 120404 592 b
-e 120404 120320 a
+e 120403 592 b
+e 120403 120320 a
 e 126464 592 a
-e 126548 592 b
-e 126548 126464 a
+e 126547 592 b
+e 126547 126464 a
 e 132160 592 a
-e 132244 592 b
-e 132244 132160 a
+e 132243 592 b
+e 132243 132160 a
 e 136384 592 a
-e 136468 592 b
-e 136468 136384 a
+e 136467 592 b
+e 136467 136384 a
 e 141184 592 a
-e 141268 592 b
-e 141268 141184 a
+e 141267 592 b
+e 141267 141184 a
 e 149056 592 a
-e 149140 592 b
-e 149140 149056 a
+e 149139 592 b
+e 149139 149056 a
 e 157184 592 a
-e 157268 592 b
-e 157268 157184 a
+e 157267 592 b
+e 157267 157184 a
 e 163392 592 a
-e 163476 592 b
-e 163476 163392 a
+e 163475 592 b
+e 163475 163392 a
 e 170688 592 a
-e 170772 592 b
-e 170772 170688 a
+e 170771 592 b
+e 170771 170688 a
 e 182592 592 a
-e 182676 592 b
-e 182676 182592 a
+e 182675 592 b
+e 182675 182592 a
 e 188608 592 a
-e 188692 592 b
-e 188692 188608 a
+e 188691 592 b
+e 188691 188608 a
 e 190144 592 a
-e 190228 592 b
-e 190228 190144 a
+e 190227 592 b
+e 190227 190144 a
 e 195584 592 a
-e 195668 592 b
-e 195668 195584 a
+e 195667 592 b
+e 195667 195584 a
 e 200256 592 a
-e 200340 592 b
-e 200340 200256 a
+e 200339 592 b
+e 200339 200256 a
 e 205888 592 a
-e 205972 592 b
-e 205972 205888 a
+e 205971 592 b
+e 205971 205888 a
 e 213056 592 a
-e 213140 592 b
-e 213140 213056 a
+e 213139 592 b
+e 213139 213056 a
 e 219136 592 a
-e 219220 592 b
-e 219220 219136 a
+e 219219 592 b
+e 219219 219136 a
 e 225984 592 a
-e 226068 592 b
-e 226068 225984 a
+e 226067 592 b
+e 226067 225984 a
 e 245968 592 ba
 e 247872 245968 a
-e 247956 245968 b
-e 247956 247872 a
+e 247955 245968 b
+e 247955 247872 a
 e 254016 592 a
-e 254100 592 b
-e 254100 254016 a
+e 254099 592 b
+e 254099 254016 a
 e 261888 592 a
-e 261972 592 b
-e 261972 261888 a
+e 261971 592 b
+e 261971 261888 a
 e 271104 592 a
-e 271188 592 b
-e 271188 271104 a
+e 271187 592 b
+e 271187 271104 a
 e 280576 592 a
-e 280660 592 b
-e 280660 280576 a
+e 280659 592 b
+e 280659 280576 a
 e 286400 592 a
-e 286484 592 b
-e 286484 286400 a
+e 286483 592 b
+e 286483 286400 a
 e 291328 592 a
-e 291412 592 b
-e 291412 291328 a
+e 291411 592 b
+e 291411 291328 a
 e 297600 592 a
-e 297684 592 b
-e 297684 297600 a
+e 297683 592 b
+e 297683 297600 a
 e 302528 592 a
-e 302612 592 b
-e 302612 302528 a
+e 302611 592 b
+e 302611 302528 a
 e 306944 592 a
-e 307028 592 b
-e 307028 306944 a
+e 307027 592 b
+e 307027 306944 a
 e 312896 592 a
-e 312980 592 b
-e 312980 312896 a
+e 312979 592 b
+e 312979 312896 a
 e 315136 312896 a
-e 315220 315080 b
-e 315220 315136 a
+e 315219 315080 b
+e 315219 315136 a
 e 315080 592 b
 e 320576 592 a
-e 320660 592 b
-e 320660 320576 a
+e 320659 592 b
+e 320659 320576 a
 e 325056 592 a
-e 325140 592 b
-e 325140 325056 a
+e 325139 592 b
+e 325139 325056 a
 e 328960 592 a
-e 329044 592 b
-e 329044 328960 a
+e 329043 592 b
+e 329043 328960 a
 e 334912 592 a
-e 334996 592 b
-e 334996 334912 a
+e 334995 592 b
+e 334995 334912 a
 e 337472 334912 a
-e 337556 337416 b
-e 337556 337472 a
+e 337555 337416 b
+e 337555 337472 a
 e 337416 592 b
 e 343552 592 a
-e 343636 592 b
-e 343636 343552 a
+e 343635 592 b
+e 343635 343552 a
 e 344832 343552 a
-e 344916 344776 b
-e 344916 344832 a
+e 344915 344776 b
+e 344915 344832 a
 e 344776 592 b
 e 350272 592 a
-e 350356 592 b
-e 350356 350272 a
+e 350355 592 b
+e 350355 350272 a
 e 356032 592 a
-e 356116 592 b
-e 356116 356032 a
+e 356115 592 b
+e 356115 356032 a
 e 360320 592 a
-e 360404 592 b
-e 360404 360320 a
+e 360403 592 b
+e 360403 360320 a
 e 366144 592 a
-e 366228 592 b
-e 366228 366144 a
+e 366227 592 b
+e 366227 366144 a
 e 367424 366144 a
-e 367508 367368 b
-e 367508 367424 a
-e 368148 592 b
-e 368148 366144 a
+e 367507 367368 b
+e 367507 367424 a
+e 368147 592 b
+e 368147 366144 a
 e 369088 366144 a
-e 369172 369032 b
-e 369172 369088 a
+e 369171 369032 b
+e 369171 369088 a
 e 367368 592 b
 e 369032 592 b
 e 374848 592 a
-e 374932 592 b
-e 374932 374848 a
+e 374931 592 b
+e 374931 374848 a
 e 381120 592 a
-e 381204 592 b
-e 381204 381120 a
+e 381203 592 b
+e 381203 381120 a
 e 386880 592 a
-e 386964 592 b
-e 386964 386880 a
+e 386963 592 b
+e 386963 386880 a
 e 392256 592 a
-e 392340 592 b
-e 392340 392256 a
+e 392339 592 b
+e 392339 392256 a
 e 397312 592 a
-e 397396 592 b
-e 397396 397312 a
+e 397395 592 b
+e 397395 397312 a
 e 401792 592 a
-e 401876 592 b
-e 401876 401792 a
+e 401875 592 b
+e 401875 401792 a
 e 408512 592 a
-e 408596 592 b
-e 408596 408512 a
+e 408595 592 b
+e 408595 408512 a
 e 409792 408512 a
-e 409876 409736 b
-e 409876 409792 a
+e 409875 409736 b
+e 409875 409792 a
 e 409736 592 b
 e 415168 592 a
-e 415252 592 b
-e 415252 415168 a
+e 415251 592 b
+e 415251 415168 a
 e 416512 415168 a
-e 416596 416456 b
-e 416596 416512 a
+e 416595 416456 b
+e 416595 416512 a
 e 416456 592 b
 e 421184 592 a
-e 421268 592 b
-e 421268 421184 a
+e 421267 592 b
+e 421267 421184 a
 e 426112 592 a
-e 426196 592 b
-e 426196 426112 a
+e 426195 592 b
+e 426195 426112 a
 e 431168 592 a
-e 431252 592 b
-e 431252 431168 a
+e 431251 592 b
+e 431251 431168 a
 e 436672 592 a
-e 436756 592 b
-e 436756 436672 a
+e 436755 592 b
+e 436755 436672 a
 e 443904 592 a
-e 443988 592 b
-e 443988 443904 a
+e 443987 592 b
+e 443987 443904 a
 e 445248 443904 a
-e 445332 445192 b
-e 445332 445248 a
+e 445331 445192 b
+e 445331 445248 a
 e 445192 592 b
 e 452608 592 a
-e 452692 592 b
-e 452692 452608 a
+e 452691 592 b
+e 452691 452608 a
 e 453888 452608 a
-e 453972 453832 b
-e 453972 453888 a
-e 454676 592 b
-e 454676 452608 a
+e 453971 453832 b
+e 453971 453888 a
+e 454675 592 b
+e 454675 452608 a
 e 455552 452608 a
-e 455636 455496 b
-e 455636 455552 a
-e 456340 592 b
-e 456340 452608 a
+e 455635 455496 b
+e 455635 455552 a
+e 456339 592 b
+e 456339 452608 a
 e 457216 452608 a
-e 457300 457160 b
-e 457300 457216 a
-e 458004 592 b
-e 458004 452608 a
+e 457299 457160 b
+e 457299 457216 a
+e 458003 592 b
+e 458003 452608 a
 e 458880 452608 a
-e 458964 458824 b
-e 458964 458880 a
-e 459668 592 b
-e 459668 452608 a
+e 458963 458824 b
+e 458963 458880 a
+e 459667 592 b
+e 459667 452608 a
 e 460544 452608 a
-e 460628 460488 b
-e 460628 460544 a
+e 460627 460488 b
+e 460627 460544 a
 e 453832 592 b
 e 455496 592 b
 e 457160 592 b
 e 458824 592 b
 e 460488 592 b
 e 466496 592 a
-e 466580 592 b
-e 466580 466496 a
+e 466579 592 b
+e 466579 466496 a
 e 471872 592 a
-e 471956 592 b
-e 471956 471872 a
+e 471955 592 b
+e 471955 471872 a
 e 477824 592 a
-e 477908 592 b
-e 477908 477824 a
+e 477907 592 b
+e 477907 477824 a
 e 486528 592 a
-e 486612 592 b
-e 486612 486528 a
+e 486611 592 b
+e 486611 486528 a
 e 489344 486528 a
-e 489428 489288 b
-e 489428 489344 a
-e 490132 592 b
-e 490132 486528 a
+e 489427 489288 b
+e 489427 489344 a
+e 490131 592 b
+e 490131 486528 a
 e 489288 592 b
 e 495296 592 a
-e 495380 592 b
-e 495380 495296 a
+e 495379 592 b
+e 495379 495296 a
 e 500480 592 a
-e 500564 592 b
-e 500564 500480 a
+e 500563 592 b
+e 500563 500480 a
 e 508032 592 a
-e 508116 592 b
-e 508116 508032 a
+e 508115 592 b
+e 508115 508032 a
 e 510848 508032 a
-e 510932 510792 b
-e 510932 510848 a
+e 510931 510792 b
+e 510931 510848 a
 e 510792 592 b
 e 516416 592 a
-e 516500 592 b
-e 516500 516416 a
+e 516499 592 b
+e 516499 516416 a
 e 521600 592 a
-e 521684 592 b
-e 521684 521600 a
+e 521683 592 b
+e 521683 521600 a
 e 527168 592 a
-e 527252 592 b
-e 527252 527168 a
+e 527251 592 b
+e 527251 527168 a
 e 534336 592 a
-e 534420 592 b
-e 534420 534336 a
+e 534419 592 b
+e 534419 534336 a
 e 542656 592 a
-e 542740 592 b
-e 542740 542656 a
+e 542739 592 b
+e 542739 542656 a
 e 551616 592 a
-e 551700 592 b
-e 551700 551616 a
+e 551699 592 b
+e 551699 551616 a
 e 560832 592 a
-e 560916 592 b
-e 560916 560832 a
+e 560915 592 b
+e 560915 560832 a
 e 566208 592 a
-e 566292 592 b
-e 566292 566208 a
+e 566291 592 b
+e 566291 566208 a
 e 571968 592 a
-e 572052 592 b
-e 572052 571968 a
+e 572051 592 b
+e 572051 571968 a
 e 579072 592 a
-e 579156 592 b
-e 579156 579072 a
+e 579155 592 b
+e 579155 579072 a
 e 591488 592 a
-e 591572 592 b
-e 591572 591488 a
+e 591571 592 b
+e 591571 591488 a
 e 592320 592 a
-e 592404 592 b
-e 592404 592320 a
+e 592403 592 b
+e 592403 592320 a
 e 596544 592 a
-e 596628 592 b
-e 596628 596544 a
+e 596627 592 b
+e 596627 596544 a
 e 599616 592 a
-e 599700 592 b
-e 599700 599616 a
+e 599699 592 b
+e 599699 599616 a
 e 600320 592 a
-e 600404 592 b
-e 600404 600320 a
+e 600403 592 b
+e 600403 600320 a
 e 604544 592 a
-e 604628 592 b
-e 604628 604544 a
+e 604627 592 b
+e 604627 604544 a
 e 608576 592 a
-e 608660 592 b
-e 608660 608576 a
+e 608659 592 b
+e 608659 608576 a
 e 613568 592 a
-e 613652 592 b
-e 613652 613568 a
+e 613651 592 b
+e 613651 613568 a
 e 619840 592 a
-e 619924 592 b
-e 619924 619840 a
+e 619923 592 b
+e 619923 619840 a
 e 621632 619840 a
-e 621716 621576 b
-e 621716 621632 a
+e 621715 621576 b
+e 621715 621632 a
 e 621576 592 b
 e 626880 592 a
-e 626964 592 b
-e 626964 626880 a
+e 626963 592 b
+e 626963 626880 a
 e 633728 592 a
-e 633812 592 b
-e 633812 633728 a
+e 633811 592 b
+e 633811 633728 a
 e 641664 592 a
-e 641748 592 b
-e 641748 641664 a
+e 641747 592 b
+e 641747 641664 a
 e 647744 592 a
-e 647828 592 b
-e 647828 647744 a
+e 647827 592 b
+e 647827 647744 a
 e 653696 592 a
-e 653780 592 b
-e 653780 653696 a
+e 653779 592 b
+e 653779 653696 a
 e 659840 592 a
-e 659924 592 b
-e 659924 659840 a
+e 659923 592 b
+e 659923 659840 a
 e 666880 592 a
-e 666964 592 b
-e 666964 666880 a
+e 666963 592 b
+e 666963 666880 a
 e 673408 592 a
-e 673492 592 b
-e 673492 673408 a
+e 673491 592 b
+e 673491 673408 a
 e 679232 592 a
-e 679316 592 b
-e 679316 679232 a
+e 679315 592 b
+e 679315 679232 a
 e 684800 592 a
-e 684884 592 b
-e 684884 684800 a
+e 684883 592 b
+e 684883 684800 a
 e 690816 592 a
-e 690900 592 b
-e 690900 690816 a
+e 690899 592 b
+e 690899 690816 a
 e 691776 690816 a
-e 691860 691720 b
-e 691860 691776 a
-e 692564 592 b
-e 692564 690816 a
+e 691859 691720 b
+e 691859 691776 a
+e 692563 592 b
+e 692563 690816 a
 e 693376 690816 a
-e 693460 693320 b
-e 693460 693376 a
+e 693459 693320 b
+e 693459 693376 a
 e 691720 592 b
 e 693320 592 b
 e 698752 592 a
-e 698836 592 b
-e 698836 698752 a
+e 698835 592 b
+e 698835 698752 a
 e 706432 592 a
-e 706516 592 b
-e 706516 706432 a
+e 706515 592 b
+e 706515 706432 a
 e 713984 592 a
-e 714068 592 b
-e 714068 713984 a
+e 714067 592 b
+e 714067 713984 a
 e 720320 592 a
-e 720404 592 b
-e 720404 720320 a
+e 720403 592 b
+e 720403 720320 a
 e 726912 592 a
-e 726996 592 b
-e 726996 726912 a
+e 726995 592 b
+e 726995 726912 a
 e 735744 592 a
-e 735828 592 b
-e 735828 735744 a
+e 735827 592 b
+e 735827 735744 a
 e 742656 592 a
-e 742740 592 b
-e 742740 742656 a
+e 742739 592 b
+e 742739 742656 a
 e 749312 592 a
-e 749396 592 b
-e 749396 749312 a
+e 749395 592 b
+e 749395 749312 a
 e 751360 749312 a
-e 751444 751304 b
-e 751444 751360 a
+e 751443 751304 b
+e 751443 751360 a
 e 751304 592 b
 e 758144 592 a
-e 758228 592 b
-e 758228 758144 a
+e 758227 592 b
+e 758227 758144 a
 e 760704 758144 a
-e 760788 760648 b
-e 760788 760704 a
+e 760787 760648 b
+e 760787 760704 a
 e 760648 592 b
 e 766336 592 a
-e 766420 592 b
-e 766420 766336 a
+e 766419 592 b
+e 766419 766336 a
 e 772352 592 a
-e 772436 592 b
-e 772436 772352 a
+e 772435 592 b
+e 772435 772352 a
 e 780736 592 a
-e 780820 592 b
-e 780820 780736 a
+e 780819 592 b
+e 780819 780736 a
 e 789504 592 a
-e 789588 592 b
-e 789588 789504 a
+e 789587 592 b
+e 789587 789504 a
 e 792320 789504 a
-e 792404 792264 b
-e 792404 792320 a
+e 792403 792264 b
+e 792403 792320 a
 e 792264 592 b
 e 799360 592 a
-e 799444 592 b
-e 799444 799360 a
+e 799443 592 b
+e 799443 799360 a
 e 801920 799360 a
-e 802004 801864 b
-e 802004 801920 a
+e 802003 801864 b
+e 802003 801920 a
 e 801864 592 b
 e 808064 592 a
-e 808148 592 b
-e 808148 808064 a
+e 808147 592 b
+e 808147 808064 a
 e 813632 592 a
-e 813716 592 b
-e 813716 813632 a
+e 813715 592 b
+e 813715 813632 a
 e 817808 592 ba
 e 819968 817808 a
-e 820036 819968 a
+e 820035 819968 a
 e 822208 592 a
-e 822292 592 b
-e 822292 822208 a
+e 822291 592 b
+e 822291 822208 a
 e 826496 822208 a
-e 826564 826496 a
-e 827156 592 b
-e 827156 822208 a
+e 826563 826496 a
+e 827155 592 b
+e 827155 822208 a
 e 827904 822208 a
-e 827972 827904 a
+e 827971 827904 a
 e 833728 592 a
-e 833812 592 b
-e 833812 833728 a
+e 833811 592 b
+e 833811 833728 a
 e 837584 592 ba
 e 840384 837584 a
-e 840468 837584 b
-e 840468 840384 a
+e 840467 837584 b
+e 840467 840384 a
 e 841664 840384 a
-e 841748 841608 b
-e 841748 841664 a
-e 842388 837584 b
-e 842388 840384 a
+e 841747 841608 b
+e 841747 841664 a
+e 842387 837584 b
+e 842387 840384 a
 e 843200 840384 a
-e 843284 843144 b
-e 843284 843200 a
+e 843283 843144 b
+e 843283 843200 a
 e 841608 837584 b
 e 843144 837584 b
 e 848832 592 a
-e 848916 592 b
-e 848916 848832 a
+e 848915 592 b
+e 848915 848832 a
 e 854784 592 a
-e 854868 592 b
-e 854868 854784 a
+e 854867 592 b
+e 854867 854784 a
 e 862528 592 a
-e 862612 592 b
-e 862612 862528 a
+e 862611 592 b
+e 862611 862528 a
 e 865024 862528 a
-e 865108 864968 b
-e 865108 865024 a
+e 865107 864968 b
+e 865107 865024 a
 e 864968 592 b
 e 870848 592 a
-e 870932 592 b
-e 870932 870848 a
+e 870931 592 b
+e 870931 870848 a
 e 877056 592 a
-e 877140 592 b
-e 877140 877056 a
+e 877139 592 b
+e 877139 877056 a
 e 883008 592 a
-e 883092 592 b
-e 883092 883008 a
+e 883091 592 b
+e 883091 883008 a
 e 892096 592 a
-e 892180 592 b
-e 892180 892096 a
+e 892179 592 b
+e 892179 892096 a
 e 895040 892096 a
-e 895124 894984 b
-e 895124 895040 a
-e 895828 592 b
-e 895828 892096 a
+e 895123 894984 b
+e 895123 895040 a
+e 895827 592 b
+e 895827 892096 a
 e 896704 892096 a
-e 896788 896648 b
-e 896788 896704 a
-e 897492 592 b
-e 897492 892096 a
+e 896787 896648 b
+e 896787 896704 a
+e 897491 592 b
+e 897491 892096 a
 e 898368 892096 a
-e 898452 898312 b
-e 898452 898368 a
+e 898451 898312 b
+e 898451 898368 a
 e 894984 592 b
 e 896648 592 b
 e 898312 592 b
 e 904960 592 a
-e 905044 592 b
-e 905044 904960 a
+e 905043 592 b
+e 905043 904960 a
 e 913792 592 a
-e 913876 592 b
-e 913876 913792 a
+e 913875 592 b
+e 913875 913792 a
 e 916224 913792 a
-e 916308 916168 b
-e 916308 916224 a
+e 916307 916168 b
+e 916307 916224 a
 e 916168 592 b
 e 921920 592 a
-e 922004 592 b
-e 922004 921920 a
+e 922003 592 b
+e 922003 921920 a
 e 927360 592 a
-e 927444 592 b
-e 927444 927360 a
+e 927443 592 b
+e 927443 927360 a
 e 932992 592 a
-e 933076 592 b
-e 933076 932992 a
+e 933075 592 b
+e 933075 932992 a
 e 939072 592 a
-e 939156 592 b
-e 939156 939072 a
+e 939155 592 b
+e 939155 939072 a
 e 946048 592 a
-e 946132 592 b
-e 946132 946048 a
+e 946131 592 b
+e 946131 946048 a
 e 953344 592 a
-e 953428 592 b
-e 953428 953344 a
+e 953427 592 b
+e 953427 953344 a
 e 965120 592 a
-e 965204 592 b
-e 965204 965120 a
+e 965203 592 b
+e 965203 965120 a
 e 966848 965120 a
-e 966932 966792 b
-e 966932 966848 a
-e 967636 592 b
-e 967636 965120 a
+e 966931 966792 b
+e 966931 966848 a
+e 967635 592 b
+e 967635 965120 a
 e 968512 965120 a
-e 968596 968456 b
-e 968596 968512 a
-e 969300 592 b
-e 969300 965120 a
+e 968595 968456 b
+e 968595 968512 a
+e 969299 592 b
+e 969299 965120 a
 e 970176 965120 a
-e 970260 970120 b
-e 970260 970176 a
+e 970259 970120 b
+e 970259 970176 a
 e 966792 592 b
 e 968456 592 b
 e 970120 592 b
 e 975936 592 a
-e 976020 592 b
-e 976020 975936 a
+e 976019 592 b
+e 976019 975936 a
 e 981120 592 a
-e 981204 592 b
-e 981204 981120 a
+e 981203 592 b
+e 981203 981120 a
 e 986176 592 a
-e 986260 592 b
-e 986260 986176 a
+e 986259 592 b
+e 986259 986176 a
 e 992000 592 a
-e 992084 592 b
-e 992084 992000 a
+e 992083 592 b
+e 992083 992000 a
 e 994112 992000 a
-e 994196 994056 b
-e 994196 994112 a
+e 994195 994056 b
+e 994195 994112 a
 e 994056 592 b
 e 999744 592 a
-e 999828 592 b
-e 999828 999744 a
+e 999827 592 b
+e 999827 999744 a
 e 1006144 592 a
-e 1006228 592 b
-e 1006228 1006144 a
+e 1006227 592 b
+e 1006227 1006144 a
 e 1007936 1006144 a
-e 1008020 1007880 b
-e 1008020 1007936 a
+e 1008019 1007880 b
+e 1008019 1007936 a
 e 1007880 592 b
 e 1014528 592 a
-e 1014612 592 b
-e 1014612 1014528 a
+e 1014611 592 b
+e 1014611 1014528 a
 e 1016704 1014528 a
-e 1016788 1016648 b
-e 1016788 1016704 a
+e 1016787 1016648 b
+e 1016787 1016704 a
 e 1016648 592 b
 e 1022656 592 a
-e 1022740 592 b
-e 1022740 1022656 a
+e 1022739 592 b
+e 1022739 1022656 a
 e 1024000 1022656 a
-e 1024084 1023944 b
-e 1024084 1024000 a
+e 1024083 1023944 b
+e 1024083 1024000 a
 e 1023944 592 b
 e 1030272 592 a
-e 1030356 592 b
-e 1030356 1030272 a
+e 1030355 592 b
+e 1030355 1030272 a
 e 1032064 1030272 a
-e 1032148 1032008 b
-e 1032148 1032064 a
+e 1032147 1032008 b
+e 1032147 1032064 a
 e 1032008 592 b
 e 1042688 592 a
-e 1042772 592 b
-e 1042772 1042688 a
+e 1042771 592 b
+e 1042771 1042688 a
 e 1044096 1042688 a
-e 1044180 1044040 b
-e 1044180 1044096 a
+e 1044179 1044040 b
+e 1044179 1044096 a
 e 1044040 592 b
 e 1054784 592 a
-e 1054868 592 b
-e 1054868 1054784 a
+e 1054867 592 b
+e 1054867 1054784 a
 e 1064128 592 a
-e 1064212 592 b
-e 1064212 1064128 a
+e 1064211 592 b
+e 1064211 1064128 a
 e 1065984 1064128 a
-e 1066068 1065928 b
-e 1066068 1065984 a
-e 1066772 592 b
-e 1066772 1064128 a
+e 1066067 1065928 b
+e 1066067 1065984 a
+e 1066771 592 b
+e 1066771 1064128 a
 e 1065928 592 b
 e 1075136 592 a
-e 1075220 592 b
-e 1075220 1075136 a
+e 1075219 592 b
+e 1075219 1075136 a
 e 1077184 1075136 a
-e 1077268 1077128 b
-e 1077268 1077184 a
+e 1077267 1077128 b
+e 1077267 1077184 a
 e 1077128 592 b
 e 1089216 592 a
-e 1089300 592 b
-e 1089300 1089216 a
+e 1089299 592 b
+e 1089299 1089216 a
 e 1124352 592 a
-e 1124436 592 b
-e 1124436 1124352 a
+e 1124435 592 b
+e 1124435 1124352 a
 e 1126080 1124352 a
-e 1126164 1126024 b
-e 1126164 1126080 a
-e 1126868 592 b
-e 1126868 1124352 a
+e 1126163 1126024 b
+e 1126163 1126080 a
+e 1126867 592 b
+e 1126867 1124352 a
 e 1127680 1124352 a
-e 1127764 1127624 b
-e 1127764 1127680 a
-e 1128404 592 b
-e 1128404 1124352 a
+e 1127763 1127624 b
+e 1127763 1127680 a
+e 1128403 592 b
+e 1128403 1124352 a
 e 1129216 1124352 a
-e 1129300 1129160 b
-e 1129300 1129216 a
-e 1130004 592 b
-e 1130004 1124352 a
+e 1129299 1129160 b
+e 1129299 1129216 a
+e 1130003 592 b
+e 1130003 1124352 a
 e 1126024 592 b
 e 1127624 592 b
 e 1129160 592 b
 e 1135936 592 a
-e 1136020 592 b
-e 1136020 1135936 a
+e 1136019 592 b
+e 1136019 1135936 a
 e 1142336 592 a
-e 1142420 592 b
-e 1142420 1142336 a
+e 1142419 592 b
+e 1142419 1142336 a
 e 1147648 592 a
-e 1147732 592 b
-e 1147732 1147648 a
+e 1147731 592 b
+e 1147731 1147648 a
 e 1152896 592 a
-e 1152980 592 b
-e 1152980 1152896 a
+e 1152979 592 b
+e 1152979 1152896 a
 e 1158720 592 a
-e 1158804 592 b
-e 1158804 1158720 a
+e 1158803 592 b
+e 1158803 1158720 a
 e 1164736 592 a
-e 1164820 592 b
-e 1164820 1164736 a
+e 1164819 592 b
+e 1164819 1164736 a
 e 1166080 1164736 a
-e 1166164 1166024 b
-e 1166164 1166080 a
+e 1166163 1166024 b
+e 1166163 1166080 a
 e 1166024 592 b
-e 1173388 592 b
-e 1173444 592 a
+e 1173387 592 b
+e 1173443 592 a
 e 1177152 592 a
-e 1177236 592 b
-e 1177236 1177152 a
+e 1177235 592 b
+e 1177235 1177152 a
 e 1178432 1177152 a
-e 1178516 1178376 b
-e 1178516 1178432 a
-e 1179156 592 b
-e 1179156 1177152 a
+e 1178515 1178376 b
+e 1178515 1178432 a
+e 1179155 592 b
+e 1179155 1177152 a
 e 1178376 592 b
 e 1185152 592 a
-e 1185236 592 b
-e 1185236 1185152 a
+e 1185235 592 b
+e 1185235 1185152 a
 e 1186880 1185152 a
-e 1186964 1186824 b
-e 1186964 1186880 a
+e 1186963 1186824 b
+e 1186963 1186880 a
 e 1186824 592 b
 e 1193792 592 a
-e 1193876 592 b
-e 1193876 1193792 a
+e 1193875 592 b
+e 1193875 1193792 a
 e 1195136 1193792 a
-e 1195220 1195080 b
-e 1195220 1195136 a
-e 1195924 592 b
-e 1195924 1193792 a
+e 1195219 1195080 b
+e 1195219 1195136 a
+e 1195923 592 b
+e 1195923 1193792 a
 e 1196800 1193792 a
-e 1196884 1196744 b
-e 1196884 1196800 a
-e 1197588 592 b
-e 1197588 1193792 a
+e 1196883 1196744 b
+e 1196883 1196800 a
+e 1197587 592 b
+e 1197587 1193792 a
 e 1198464 1193792 a
-e 1198548 1198408 b
-e 1198548 1198464 a
+e 1198547 1198408 b
+e 1198547 1198464 a
 e 1195080 592 b
 e 1196744 592 b
 e 1198408 592 b
 e 1204288 592 a
-e 1204372 592 b
-e 1204372 1204288 a
+e 1204371 592 b
+e 1204371 1204288 a
 e 1209728 592 a
-e 1209812 592 b
-e 1209812 1209728 a
+e 1209811 592 b
+e 1209811 1209728 a
 e 1215296 592 a
-e 1215380 592 b
-e 1215380 1215296 a
-e 1223500 592 b
-e 1223556 592 a
+e 1215379 592 b
+e 1215379 1215296 a
+e 1223499 592 b
+e 1223555 592 a
 e 1226688 592 a
-e 1226772 592 b
-e 1226772 1226688 a
+e 1226771 592 b
+e 1226771 1226688 a
 e 1232320 592 a
-e 1232404 592 b
-e 1232404 1232320 a
+e 1232403 592 b
+e 1232403 1232320 a
 e 1237696 592 a
-e 1237780 592 b
-e 1237780 1237696 a
+e 1237779 592 b
+e 1237779 1237696 a
 e 1242064 592 ba
 e 1244096 1242064 a
-e 1244180 1242064 b
-e 1244180 1244096 a
+e 1244179 1242064 b
+e 1244179 1244096 a
 e 1250304 592 a
-e 1250388 592 b
-e 1250388 1250304 a
+e 1250387 592 b
+e 1250387 1250304 a
 e 1255488 592 a
-e 1255572 592 b
-e 1255572 1255488 a
+e 1255571 592 b
+e 1255571 1255488 a
 e 1260480 592 a
-e 1260564 592 b
-e 1260564 1260480 a
+e 1260563 592 b
+e 1260563 1260480 a
 e 1265344 592 a
-e 1265428 592 b
-e 1265428 1265344 a
+e 1265427 592 b
+e 1265427 1265344 a
 e 1293504 592 a
-e 1293588 592 b
-e 1293588 1293504 a
+e 1293587 592 b
+e 1293587 1293504 a
 e 1307328 592 a
-e 1307412 592 b
-e 1307412 1307328 a
+e 1307411 592 b
+e 1307411 1307328 a
 e 1312640 592 a
-e 1312724 592 b
-e 1312724 1312640 a
+e 1312723 592 b
+e 1312723 1312640 a
 e 1328896 592 a
-e 1328980 592 b
-e 1328980 1328896 a
+e 1328979 592 b
+e 1328979 1328896 a
 e 1338176 592 a
-e 1338260 592 b
-e 1338260 1338176 a
+e 1338259 592 b
+e 1338259 1338176 a
 e 1344512 592 a
-e 1344596 592 b
-e 1344596 1344512 a
+e 1344595 592 b
+e 1344595 1344512 a
 e 1350080 592 a
-e 1350164 592 b
-e 1350164 1350080 a
+e 1350163 592 b
+e 1350163 1350080 a
 e 1364224 592 a
-e 1364308 592 b
-e 1364308 1364224 a
+e 1364307 592 b
+e 1364307 1364224 a
 e 1369280 592 a
-e 1369364 592 b
-e 1369364 1369280 a
+e 1369363 592 b
+e 1369363 1369280 a
 e 1372816 592 ba
 e 1374848 1372816 a
-e 1374932 1372816 b
-e 1374932 1374848 a
+e 1374931 1372816 b
+e 1374931 1374848 a
 e 1381056 592 a
-e 1381140 592 b
-e 1381140 1381056 a
+e 1381139 592 b
+e 1381139 1381056 a
 e 1386368 592 a
-e 1386452 592 b
-e 1386452 1386368 a
+e 1386451 592 b
+e 1386451 1386368 a
 e 1389904 592 ba
 e 1391936 1389904 a
-e 1392020 1389904 b
-e 1392020 1391936 a
+e 1392019 1389904 b
+e 1392019 1391936 a
 e 1396432 592 ba
 e 1398336 1396432 a
-e 1398420 1396432 b
-e 1398420 1398336 a
+e 1398419 1396432 b
+e 1398419 1398336 a
 e 1404160 592 a
-e 1404244 592 b
-e 1404244 1404160 a
+e 1404243 592 b
+e 1404243 1404160 a
 e 1407760 592 ba
 e 1409856 1407760 a
-e 1409940 1407760 b
-e 1409940 1409856 a
+e 1409939 1407760 b
+e 1409939 1409856 a
 e 1431376 592 ba
 e 1433088 1431376 a
-e 1433172 1431376 b
-e 1433172 1433088 a
+e 1433171 1431376 b
+e 1433171 1433088 a
 e 1451648 592 a
-e 1451732 592 b
-e 1451732 1451648 a
+e 1451731 592 b
+e 1451731 1451648 a
 e 1457024 592 a
-e 1457108 592 b
-e 1457108 1457024 a
+e 1457107 592 b
+e 1457107 1457024 a
 e 1462400 592 a
-e 1462484 592 b
-e 1462484 1462400 a
+e 1462483 592 b
+e 1462483 1462400 a
 e 1472512 592 a
-e 1472596 592 b
-e 1472596 1472512 a
+e 1472595 592 b
+e 1472595 1472512 a
 e 1477760 592 a
-e 1477844 592 b
-e 1477844 1477760 a
+e 1477843 592 b
+e 1477843 1477760 a
 e 1481808 592 ba
 e 1483840 1481808 a
-e 1483924 1481808 b
-e 1483924 1483840 a
+e 1483923 1481808 b
+e 1483923 1483840 a
 e 1503168 592 a
-e 1503252 592 b
-e 1503252 1503168 a
+e 1503251 592 b
+e 1503251 1503168 a
 e 1511040 592 a
-e 1511124 592 b
-e 1511124 1511040 a
+e 1511123 592 b
+e 1511123 1511040 a
 e 1514304 1511040 a
-e 1514388 1514248 b
-e 1514388 1514304 a
+e 1514387 1514248 b
+e 1514387 1514304 a
 e 1514248 592 b
 e 1520768 592 a
-e 1520852 592 b
-e 1520852 1520768 a
+e 1520851 592 b
+e 1520851 1520768 a
 e 1522176 1520768 a
-e 1522260 1522120 b
-e 1522260 1522176 a
+e 1522259 1522120 b
+e 1522259 1522176 a
 e 1522120 592 b
 e 1529408 592 a
-e 1529492 592 b
-e 1529492 1529408 a
+e 1529491 592 b
+e 1529491 1529408 a
 e 1531456 1529408 a
-e 1531540 1531400 b
-e 1531540 1531456 a
-e 1532244 592 b
-e 1532244 1529408 a
+e 1531539 1531400 b
+e 1531539 1531456 a
+e 1532243 592 b
+e 1532243 1529408 a
 e 1531400 592 b
 e 1543488 592 a
-e 1543572 592 b
-e 1543572 1543488 a
+e 1543571 592 b
+e 1543571 1543488 a
 e 1551680 592 a
-e 1551764 592 b
-e 1551764 1551680 a
+e 1551763 592 b
+e 1551763 1551680 a
 e 1554304 1551680 a
-e 1554388 1554248 b
-e 1554388 1554304 a
-e 1555092 592 b
-e 1555092 1551680 a
+e 1554387 1554248 b
+e 1554387 1554304 a
+e 1555091 592 b
+e 1555091 1551680 a
 e 1554248 592 b
 e 1564736 592 a
-e 1564820 592 b
-e 1564820 1564736 a
+e 1564819 592 b
+e 1564819 1564736 a
 e 1571840 592 a
-e 1571924 592 b
-e 1571924 1571840 a
+e 1571923 592 b
+e 1571923 1571840 a
 e 1577280 592 a
-e 1577364 592 b
-e 1577364 1577280 a
+e 1577363 592 b
+e 1577363 1577280 a
 e 1584704 592 a
-e 1584788 592 b
-e 1584788 1584704 a
+e 1584787 592 b
+e 1584787 1584704 a
 e 1586560 1584704 a
-e 1586644 1586504 b
-e 1586644 1586560 a
-e 1587348 592 b
-e 1587348 1584704 a
+e 1586643 1586504 b
+e 1586643 1586560 a
+e 1587347 592 b
+e 1587347 1584704 a
 e 1588288 1584704 a
-e 1588372 1588232 b
-e 1588372 1588288 a
+e 1588371 1588232 b
+e 1588371 1588288 a
 e 1586504 592 b
 e 1588232 592 b
 e 1594368 592 a
-e 1594452 592 b
-e 1594452 1594368 a
+e 1594451 592 b
+e 1594451 1594368 a
 e 1601024 592 a
-e 1601108 592 b
-e 1601108 1601024 a
+e 1601107 592 b
+e 1601107 1601024 a
 e 1608192 592 a
-e 1608276 592 b
-e 1608276 1608192 a
+e 1608275 592 b
+e 1608275 1608192 a
 e 1609984 1608192 a
-e 1610068 1609928 b
-e 1610068 1609984 a
-e 1610772 592 b
-e 1610772 1608192 a
+e 1610067 1609928 b
+e 1610067 1609984 a
+e 1610771 592 b
+e 1610771 1608192 a
 e 1611648 1608192 a
-e 1611732 1611592 b
-e 1611732 1611648 a
+e 1611731 1611592 b
+e 1611731 1611648 a
 e 1609928 592 b
 e 1611592 592 b
 e 1618624 592 a
-e 1618708 592 b
-e 1618708 1618624 a
+e 1618707 592 b
+e 1618707 1618624 a
 e 1630144 592 a
-e 1630228 592 b
-e 1630228 1630144 a
+e 1630227 592 b
+e 1630227 1630144 a
 e 1639168 592 a
-e 1639252 592 b
-e 1639252 1639168 a
+e 1639251 592 b
+e 1639251 1639168 a
 e 1647488 592 a
-e 1647572 592 b
-e 1647572 1647488 a
+e 1647571 592 b
+e 1647571 1647488 a
 e 1658240 592 a
-e 1658324 592 b
-e 1658324 1658240 a
+e 1658323 592 b
+e 1658323 1658240 a
 e 1668160 592 a
-e 1668244 592 b
-e 1668244 1668160 a
+e 1668243 592 b
+e 1668243 1668160 a
 e 1670784 1668160 a
-e 1670868 1670728 b
-e 1670868 1670784 a
-e 1671572 592 b
-e 1671572 1668160 a
+e 1670867 1670728 b
+e 1670867 1670784 a
+e 1671571 592 b
+e 1671571 1668160 a
 e 1670728 592 b
 e 1677760 592 a
-e 1677844 592 b
-e 1677844 1677760 a
+e 1677843 592 b
+e 1677843 1677760 a
 e 1679552 1677760 a
-e 1679636 1679496 b
-e 1679636 1679552 a
+e 1679635 1679496 b
+e 1679635 1679552 a
 e 1679496 592 b
 e 1689472 592 a
-e 1689556 592 b
-e 1689556 1689472 a
+e 1689555 592 b
+e 1689555 1689472 a
 e 1691200 1689472 a
-e 1691284 1691144 b
-e 1691284 1691200 a
-e 1691988 592 b
-e 1691988 1689472 a
+e 1691283 1691144 b
+e 1691283 1691200 a
+e 1691987 592 b
+e 1691987 1689472 a
 e 1691144 592 b
 e 1705152 592 a
-e 1705236 592 b
-e 1705236 1705152 a
+e 1705235 592 b
+e 1705235 1705152 a
 e 1706496 1705152 a
-e 1706580 1706440 b
-e 1706580 1706496 a
-e 1707284 592 b
-e 1707284 1705152 a
+e 1706579 1706440 b
+e 1706579 1706496 a
+e 1707283 592 b
+e 1707283 1705152 a
 e 1706440 592 b
 e 1714304 592 a
-e 1714388 592 b
-e 1714388 1714304 a
+e 1714387 592 b
+e 1714387 1714304 a
 e 1715648 1714304 a
-e 1715732 1715592 b
-e 1715732 1715648 a
-e 1716436 592 b
-e 1716436 1714304 a
+e 1715731 1715592 b
+e 1715731 1715648 a
+e 1716435 592 b
+e 1716435 1714304 a
 e 1717312 1714304 a
-e 1717396 1717256 b
-e 1717396 1717312 a
+e 1717395 1717256 b
+e 1717395 1717312 a
 e 1715592 592 b
 e 1717256 592 b
 e 1722496 592 a
-e 1722580 592 b
-e 1722580 1722496 a
+e 1722579 592 b
+e 1722579 1722496 a
 e 1727872 592 a
-e 1727956 592 b
-e 1727956 1727872 a
+e 1727955 592 b
+e 1727955 1727872 a
 e 1736512 592 a
-e 1736596 592 b
-e 1736596 1736512 a
+e 1736595 592 b
+e 1736595 1736512 a
 e 1740048 592 ba
 e 1741888 1740048 a
-e 1741972 1740048 b
-e 1741972 1741888 a
+e 1741971 1740048 b
+e 1741971 1741888 a
 e 1747584 592 a
-e 1747668 592 b
-e 1747668 1747584 a
+e 1747667 592 b
+e 1747667 1747584 a
 e 1753408 592 a
-e 1753492 592 b
-e 1753492 1753408 a
+e 1753491 592 b
+e 1753491 1753408 a
 e 1762944 592 a
-e 1763028 592 b
-e 1763028 1762944 a
+e 1763027 592 b
+e 1763027 1762944 a
 e 1768064 1762944 a
-e 1768148 1768008 b
-e 1768148 1768064 a
-e 1768788 592 b
-e 1768788 1762944 a
+e 1768147 1768008 b
+e 1768147 1768064 a
+e 1768787 592 b
+e 1768787 1762944 a
 e 1768008 592 b
 e 1780032 592 a
-e 1780116 592 b
-e 1780116 1780032 a
+e 1780115 592 b
+e 1780115 1780032 a
 e 1781888 1780032 a
-e 1781972 1781832 b
-e 1781972 1781888 a
+e 1781971 1781832 b
+e 1781971 1781888 a
 e 1781832 592 b
 e 1788224 592 a
-e 1788308 592 b
-e 1788308 1788224 a
+e 1788307 592 b
+e 1788307 1788224 a
 e 1789632 1788224 a
-e 1789716 1789576 b
-e 1789716 1789632 a
+e 1789715 1789576 b
+e 1789715 1789632 a
 e 1789576 592 b
 e 1800000 592 a
-e 1800084 592 b
-e 1800084 1800000 a
+e 1800083 592 b
+e 1800083 1800000 a
 e 1801344 1800000 a
-e 1801428 1801288 b
-e 1801428 1801344 a
+e 1801427 1801288 b
+e 1801427 1801344 a
 e 1801288 592 b
 e 1811840 592 a
-e 1811924 592 b
-e 1811924 1811840 a
+e 1811923 592 b
+e 1811923 1811840 a
 e 1820416 592 a
-e 1820500 592 b
-e 1820500 1820416 a
+e 1820499 592 b
+e 1820499 1820416 a
 e 1823952 592 ba
 e 1825984 1823952 a
-e 1826068 1823952 b
-e 1826068 1825984 a
+e 1826067 1823952 b
+e 1826067 1825984 a
 e 1831936 592 a
-e 1832020 592 b
-e 1832020 1831936 a
+e 1832019 592 b
+e 1832019 1831936 a
 e 1837440 592 a
-e 1837524 592 b
-e 1837524 1837440 a
+e 1837523 592 b
+e 1837523 1837440 a
 e 1843968 592 a
-e 1844052 592 b
-e 1844052 1843968 a
+e 1844051 592 b
+e 1844051 1843968 a
 e 1851328 592 a
-e 1851412 592 b
-e 1851412 1851328 a
+e 1851411 592 b
+e 1851411 1851328 a
 e 1856640 592 a
-e 1856724 592 b
-e 1856724 1856640 a
+e 1856723 592 b
+e 1856723 1856640 a
 e 1862016 592 a
-e 1862100 592 b
-e 1862100 1862016 a
+e 1862099 592 b
+e 1862099 1862016 a
 e 1867264 592 a
-e 1867348 592 b
-e 1867348 1867264 a
+e 1867347 592 b
+e 1867347 1867264 a
 e 1877696 592 a
-e 1877780 592 b
-e 1877780 1877696 a
+e 1877779 592 b
+e 1877779 1877696 a
 e 1885568 592 a
-e 1885652 592 b
-e 1885652 1885568 a
+e 1885651 592 b
+e 1885651 1885568 a
 e 1891712 592 a
-e 1891796 592 b
-e 1891796 1891712 a
+e 1891795 592 b
+e 1891795 1891712 a
 e 1895184 592 ba
 e 1897216 1895184 a
-e 1897300 1895184 b
-e 1897300 1897216 a
+e 1897299 1895184 b
+e 1897299 1897216 a
 e 1902848 592 a
-e 1902932 592 b
-e 1902932 1902848 a
+e 1902931 592 b
+e 1902931 1902848 a
 e 1907792 592 ba
 e 1910208 1907792 a
-e 1910292 1907792 b
-e 1910292 1910208 a
+e 1910291 1907792 b
+e 1910291 1910208 a
 e 1917568 592 a
-e 1917652 592 b
-e 1917652 1917568 a
+e 1917651 592 b
+e 1917651 1917568 a
 e 1923520 592 a
-e 1923604 592 b
-e 1923604 1923520 a
+e 1923603 592 b
+e 1923603 1923520 a
 e 1927632 592 ba
 e 1929792 1927632 a
-e 1929876 1927632 b
-e 1929876 1929792 a
+e 1929875 1927632 b
+e 1929875 1929792 a
 e 1934416 592 ba
 e 1936384 1934416 a
-e 1936468 1934416 b
-e 1936468 1936384 a
+e 1936467 1934416 b
+e 1936467 1936384 a
 e 1940496 592 ba
 e 1942656 1940496 a
-e 1942740 1940496 b
-e 1942740 1942656 a
+e 1942739 1940496 b
+e 1942739 1942656 a
 e 1948992 592 a
-e 1949076 592 b
-e 1949076 1948992 a
+e 1949075 592 b
+e 1949075 1948992 a
 e 1953936 592 ba
 e 1956416 1953936 a
-e 1956500 1953936 b
-e 1956500 1956416 a
+e 1956499 1953936 b
+e 1956499 1956416 a
 e 1962064 592 ba
 e 1964544 1962064 a
-e 1964628 1962064 b
-e 1964628 1964544 a
+e 1964627 1962064 b
+e 1964627 1964544 a
 e 1975808 592 a
-e 1975892 592 b
-e 1975892 1975808 a
+e 1975891 592 b
+e 1975891 1975808 a
 e 1981312 1975808 a
-e 1981396 1981256 b
-e 1981396 1981312 a
-e 1982100 592 b
-e 1982100 1975808 a
+e 1981395 1981256 b
+e 1981395 1981312 a
+e 1982099 592 b
+e 1982099 1975808 a
 e 1982528 1975808 a
-e 1982612 1982472 b
-e 1982612 1982528 a
+e 1982611 1982472 b
+e 1982611 1982528 a
 e 1981256 592 b
 e 1982472 592 b
 e 1990720 592 a
-e 1990804 592 b
-e 1990804 1990720 a
+e 1990803 592 b
+e 1990803 1990720 a
 e 1992960 1990720 a
-e 1993044 1992904 b
-e 1993044 1992960 a
-e 1993748 592 b
-e 1993748 1990720 a
+e 1993043 1992904 b
+e 1993043 1992960 a
+e 1993747 592 b
+e 1993747 1990720 a
 e 1994560 1990720 a
-e 1994644 1994504 b
-e 1994644 1994560 a
+e 1994643 1994504 b
+e 1994643 1994560 a
 e 1992904 592 b
 e 1994504 592 b
 e 2000192 592 a
-e 2000276 592 b
-e 2000276 2000192 a
+e 2000275 592 b
+e 2000275 2000192 a
 e 2005504 592 a
-e 2005588 592 b
-e 2005588 2005504 a
+e 2005587 592 b
+e 2005587 2005504 a
 e 2012416 592 a
-e 2012500 592 b
-e 2012500 2012416 a
+e 2012499 592 b
+e 2012499 2012416 a
 e 2014528 2012416 a
-e 2014612 2014472 b
-e 2014612 2014528 a
-e 2015316 592 b
-e 2015316 2012416 a
+e 2014611 2014472 b
+e 2014611 2014528 a
+e 2015315 592 b
+e 2015315 2012416 a
 e 2016128 2012416 a
-e 2016212 2016072 b
-e 2016212 2016128 a
+e 2016211 2016072 b
+e 2016211 2016128 a
 e 2014472 592 b
 e 2016072 592 b
 e 2024080 592 ba
 e 2025984 2024080 a
-e 2026068 2024080 b
-e 2026068 2025984 a
+e 2026067 2024080 b
+e 2026067 2025984 a
 e 2031872 592 a
-e 2031956 592 b
-e 2031956 2031872 a
+e 2031955 592 b
+e 2031955 2031872 a
 e 2038016 592 a
-e 2038100 592 b
-e 2038100 2038016 a
+e 2038099 592 b
+e 2038099 2038016 a
 e 2043776 592 a
-e 2043860 592 b
-e 2043860 2043776 a
+e 2043859 592 b
+e 2043859 2043776 a
 e 2049408 592 a
-e 2049492 592 b
-e 2049492 2049408 a
+e 2049491 592 b
+e 2049491 2049408 a
 e 2055104 592 a
-e 2055188 592 b
-e 2055188 2055104 a
+e 2055187 592 b
+e 2055187 2055104 a
 e 2067984 592 ba
 e 2070080 2067984 a
-e 2070164 2067984 b
-e 2070164 2070080 a
+e 2070163 2067984 b
+e 2070163 2070080 a
 e 2075648 592 a
-e 2075732 592 b
-e 2075732 2075648 a
-e 2079684 592 a
+e 2075731 592 b
+e 2075731 2075648 a
+e 2079683 592 a
 e 2080000 592 a
-e 2080068 2080000 a
-e 2081092 592 a
+e 2080067 2080000 a
+e 2081091 592 a
 e 2081664 592 a
-e 2081732 2081664 a
-e 2083012 592 a
+e 2081731 2081664 a
+e 2083011 592 a
 e 2083648 592 a
-e 2083716 2083648 a
-e 2083778 2083648 a
-e 2083844 2083778 a
-e 2084612 592 a
+e 2083715 2083648 a
+e 2083777 2083648 a
+e 2083843 2083777 a
+e 2084611 592 a
 e 2085776 592 ba
 e 2087808 2085776 a
-e 2087892 2085776 b
-e 2087892 2087808 a
+e 2087891 2085776 b
+e 2087891 2087808 a
 e 2091984 592 ba
 e 2094016 2091984 a
-e 2094100 2091984 b
-e 2094100 2094016 a
+e 2094099 2091984 b
+e 2094099 2094016 a
 e 2107968 592 a
-e 2108052 592 b
-e 2108052 2107968 a
+e 2108051 592 b
+e 2108051 2107968 a
 e 2113280 592 a
-e 2113364 592 b
-e 2113364 2113280 a
+e 2113363 592 b
+e 2113363 2113280 a
 e 2137360 592 ba
 e 2139264 2137360 a
-e 2139348 2137360 b
-e 2139348 2139264 a
+e 2139347 2137360 b
+e 2139347 2139264 a
 e 2144960 592 a
-e 2145044 592 b
-e 2145044 2144960 a
+e 2145043 592 b
+e 2145043 2144960 a
 e 2149888 592 a
-e 2149972 592 b
-e 2149972 2149888 a
+e 2149971 592 b
+e 2149971 2149888 a
 e 2159424 592 a
-e 2159508 592 b
-e 2159508 2159424 a
+e 2159507 592 b
+e 2159507 2159424 a
 e 2160384 2159424 a
-e 2160468 2160328 b
-e 2160468 2160384 a
+e 2160467 2160328 b
+e 2160467 2160384 a
 e 2160328 592 b
 e 2166016 592 a
-e 2166100 592 b
-e 2166100 2166016 a
+e 2166099 592 b
+e 2166099 2166016 a
 e 2167424 2166016 a
-e 2167508 2167368 b
-e 2167508 2167424 a
+e 2167507 2167368 b
+e 2167507 2167424 a
 e 2167368 592 b
 e 2177600 592 a
-e 2177684 592 b
-e 2177684 2177600 a
-e 2185164 592 b
-e 2185220 592 a
-e 2190284 592 b
-e 2190340 592 a
+e 2177683 592 b
+e 2177683 2177600 a
+e 2185163 592 b
+e 2185219 592 a
+e 2190283 592 b
+e 2190339 592 a
 e 2191616 592 a
-e 2191700 592 b
-e 2191700 2191616 a
+e 2191699 592 b
+e 2191699 2191616 a
 e 2192832 592 a
-e 2192916 592 b
-e 2192916 2192832 a
+e 2192915 592 b
+e 2192915 2192832 a
 e 2198464 592 a
-e 2198548 592 b
-e 2198548 2198464 a
+e 2198547 592 b
+e 2198547 2198464 a
 e 2204032 592 a
-e 2204116 592 b
-e 2204116 2204032 a
+e 2204115 592 b
+e 2204115 2204032 a
 e 2210304 592 a
-e 2210388 592 b
-e 2210388 2210304 a
+e 2210387 592 b
+e 2210387 2210304 a
 e 2215488 592 a
-e 2215572 592 b
-e 2215572 2215488 a
+e 2215571 592 b
+e 2215571 2215488 a
 e 2219072 592 a
-e 2219156 592 b
-e 2219156 2219072 a
+e 2219155 592 b
+e 2219155 2219072 a
 e 2220032 592 a
-e 2220116 592 b
-e 2220116 2220032 a
+e 2220115 592 b
+e 2220115 2220032 a
 e 2225728 592 a
-e 2225812 592 b
-e 2225812 2225728 a
+e 2225811 592 b
+e 2225811 2225728 a
 e 2230080 592 a
-e 2230164 592 b
-e 2230164 2230080 a
+e 2230163 592 b
+e 2230163 2230080 a
 e 2237504 592 a
-e 2237588 592 b
-e 2237588 2237504 a
+e 2237587 592 b
+e 2237587 2237504 a
 e 2243712 592 a
-e 2243796 592 b
-e 2243796 2243712 a
+e 2243795 592 b
+e 2243795 2243712 a
 e 2250432 592 a
-e 2250516 592 b
-e 2250516 2250432 a
+e 2250515 592 b
+e 2250515 2250432 a
 e 2256576 592 a
-e 2256660 592 b
-e 2256660 2256576 a
+e 2256659 592 b
+e 2256659 2256576 a
 e 2271232 592 a
-e 2271316 592 b
-e 2271316 2271232 a
+e 2271315 592 b
+e 2271315 2271232 a
 e 2283264 592 a
-e 2283348 592 b
-e 2283348 2283264 a
+e 2283347 592 b
+e 2283347 2283264 a
 e 2290368 592 a
-e 2290452 592 b
-e 2290452 2290368 a
+e 2290451 592 b
+e 2290451 2290368 a
 e 2297152 592 a
-e 2297236 592 b
-e 2297236 2297152 a
+e 2297235 592 b
+e 2297235 2297152 a
 e 2302720 592 a
-e 2302804 592 b
-e 2302804 2302720 a
+e 2302803 592 b
+e 2302803 2302720 a
 e 2308480 592 a
-e 2308564 592 b
-e 2308564 2308480 a
+e 2308563 592 b
+e 2308563 2308480 a
 e 2314880 592 a
-e 2314964 592 b
-e 2314964 2314880 a
+e 2314963 592 b
+e 2314963 2314880 a
 e 2328064 592 a
-e 2328148 592 b
-e 2328148 2328064 a
+e 2328147 592 b
+e 2328147 2328064 a
 e 2339008 592 a
-e 2339092 592 b
-e 2339092 2339008 a
+e 2339091 592 b
+e 2339091 2339008 a
 e 2344640 592 a
-e 2344724 592 b
-e 2344724 2344640 a
+e 2344723 592 b
+e 2344723 2344640 a
 e 2350400 592 a
-e 2350484 592 b
-e 2350484 2350400 a
+e 2350483 592 b
+e 2350483 2350400 a
 e 2361408 592 a
-e 2361492 592 b
-e 2361492 2361408 a
+e 2361491 592 b
+e 2361491 2361408 a
 e 2367168 592 a
-e 2367252 592 b
-e 2367252 2367168 a
+e 2367251 592 b
+e 2367251 2367168 a
 e 2380800 592 a
-e 2380884 592 b
-e 2380884 2380800 a
+e 2380883 592 b
+e 2380883 2380800 a
 e 2408960 592 a
-e 2409044 592 b
-e 2409044 2408960 a
+e 2409043 592 b
+e 2409043 2408960 a
 e 2421504 592 a
-e 2421588 592 b
-e 2421588 2421504 a
+e 2421587 592 b
+e 2421587 2421504 a
 e 2427136 592 a
-e 2427220 592 b
-e 2427220 2427136 a
+e 2427219 592 b
+e 2427219 2427136 a
 e 2447936 592 a
-e 2448020 592 b
-e 2448020 2447936 a
+e 2448019 592 b
+e 2448019 2447936 a
 e 2453824 592 a
-e 2453908 592 b
-e 2453908 2453824 a
+e 2453907 592 b
+e 2453907 2453824 a
 e 2460672 592 a
-e 2460756 592 b
-e 2460756 2460672 a
+e 2460755 592 b
+e 2460755 2460672 a
 e 2466368 592 a
-e 2466452 592 b
-e 2466452 2466368 a
+e 2466451 592 b
+e 2466451 2466368 a
 e 2472832 592 a
-e 2472916 592 b
-e 2472916 2472832 a
+e 2472915 592 b
+e 2472915 2472832 a
 e 2478528 592 a
-e 2478612 592 b
-e 2478612 2478528 a
-e 2486916 592 a
+e 2478611 592 b
+e 2478611 2478528 a
+e 2486915 592 a
 e 2487296 592 a
-e 2487364 2487296 a
-e 2488324 592 a
+e 2487363 2487296 a
+e 2488323 592 a
 e 2488960 592 a
-e 2489028 2488960 a
-e 2489924 592 a
+e 2489027 2488960 a
+e 2489923 592 a
 e 2490560 592 a
-e 2490628 2490560 a
-e 2490690 2490560 a
-e 2490756 2490690 a
-e 2491460 592 a
+e 2490627 2490560 a
+e 2490689 2490560 a
+e 2490755 2490689 a
+e 2491459 592 a
 e 2494528 592 a
-e 2494612 592 b
-e 2494612 2494528 a
+e 2494611 592 b
+e 2494611 2494528 a
 e 2499904 592 a
-e 2499988 592 b
-e 2499988 2499904 a
+e 2499987 592 b
+e 2499987 2499904 a
 e 2514496 592 a
-e 2514580 592 b
-e 2514580 2514496 a
+e 2514579 592 b
+e 2514579 2514496 a
 e 2525888 592 a
-e 2525972 592 b
-e 2525972 2525888 a
+e 2525971 592 b
+e 2525971 2525888 a
 e 2537984 592 a
-e 2538068 592 b
-e 2538068 2537984 a
+e 2538067 592 b
+e 2538067 2537984 a
 e 2543936 592 a
-e 2544020 592 b
-e 2544020 2543936 a
+e 2544019 592 b
+e 2544019 2543936 a
 e 2551040 592 a
-e 2551124 592 b
-e 2551124 2551040 a
+e 2551123 592 b
+e 2551123 2551040 a
 e 2558016 592 a
-e 2558100 592 b
-e 2558100 2558016 a
+e 2558099 592 b
+e 2558099 2558016 a
 e 2564032 592 a
-e 2564116 592 b
-e 2564116 2564032 a
+e 2564115 592 b
+e 2564115 2564032 a
 e 2584832 592 a
-e 2584916 592 b
-e 2584916 2584832 a
+e 2584915 592 b
+e 2584915 2584832 a
 e 2595264 592 a
-e 2595348 592 b
-e 2595348 2595264 a
+e 2595347 592 b
+e 2595347 2595264 a
 e 2607360 592 a
-e 2607444 592 b
-e 2607444 2607360 a
+e 2607443 592 b
+e 2607443 2607360 a
 e 2609664 2607360 a
-e 2609748 2609608 b
-e 2609748 2609664 a
+e 2609747 2609608 b
+e 2609747 2609664 a
 e 2609608 592 b
 e 2615680 592 a
-e 2615764 592 b
-e 2615764 2615680 a
+e 2615763 592 b
+e 2615763 2615680 a
 e 2623104 592 a
-e 2623188 592 b
-e 2623188 2623104 a
+e 2623187 592 b
+e 2623187 2623104 a
 e 2628800 592 a
-e 2628884 592 b
-e 2628884 2628800 a
+e 2628883 592 b
+e 2628883 2628800 a
 e 2634432 592 a
-e 2634516 592 b
-e 2634516 2634432 a
+e 2634515 592 b
+e 2634515 2634432 a
 e 2640064 592 a
-e 2640148 592 b
-e 2640148 2640064 a
+e 2640147 592 b
+e 2640147 2640064 a
 e 2645696 592 a
-e 2645780 592 b
-e 2645780 2645696 a
+e 2645779 592 b
+e 2645779 2645696 a
 e 2651520 592 a
-e 2651604 592 b
-e 2651604 2651520 a
-e 2661700 592 a
+e 2651603 592 b
+e 2651603 2651520 a
+e 2661699 592 a
 e 2662080 592 a
-e 2662148 2662080 a
-e 2663044 592 a
+e 2662147 2662080 a
+e 2663043 592 a
 e 2663680 592 a
-e 2663748 2663680 a
-e 2664644 592 a
+e 2663747 2663680 a
+e 2664643 592 a
 e 2665280 592 a
-e 2665348 2665280 a
-e 2665410 2665280 a
-e 2665476 2665410 a
-e 2666180 592 a
+e 2665347 2665280 a
+e 2665409 2665280 a
+e 2665475 2665409 a
+e 2666179 592 a
 e 2699904 592 a
-e 2699988 592 b
-e 2699988 2699904 a
+e 2699987 592 b
+e 2699987 2699904 a
 e 2722688 592 a
-e 2722772 592 b
-e 2722772 2722688 a
+e 2722771 592 b
+e 2722771 2722688 a
 e 2737024 592 a
-e 2737108 592 b
-e 2737108 2737024 a
+e 2737107 592 b
+e 2737107 2737024 a
 e 2750528 592 a
-e 2750612 592 b
-e 2750612 2750528 a
+e 2750611 592 b
+e 2750611 2750528 a
 e 2760448 592 a
-e 2760532 592 b
-e 2760532 2760448 a
+e 2760531 592 b
+e 2760531 2760448 a
 e 2776768 592 a
-e 2776852 592 b
-e 2776852 2776768 a
+e 2776851 592 b
+e 2776851 2776768 a
 e 2787648 592 a
-e 2787732 592 b
-e 2787732 2787648 a
+e 2787731 592 b
+e 2787731 2787648 a
 e 2798720 592 a
-e 2798804 592 b
-e 2798804 2798720 a
+e 2798803 592 b
+e 2798803 2798720 a
 e 2804480 592 a
-e 2804564 592 b
-e 2804564 2804480 a
+e 2804563 592 b
+e 2804563 2804480 a
 e 2812880 592 ba
 e 2816768 2812880 a
-e 2816852 2812880 b
-e 2816852 2816768 a
+e 2816851 2812880 b
+e 2816851 2816768 a
 e 2828304 592 ba
 e 2830400 2828304 a
-e 2830484 2828304 b
-e 2830484 2830400 a
-e 2834116 592 a
+e 2830483 2828304 b
+e 2830483 2830400 a
+e 2834115 592 a
 e 2834496 592 a
-e 2834564 2834496 a
-e 2835396 592 a
+e 2834563 2834496 a
+e 2835395 592 a
 e 2836032 592 a
-e 2836100 2836032 a
-e 2836932 592 a
+e 2836099 2836032 a
+e 2836931 592 a
 e 2837568 592 a
-e 2837636 2837568 a
-e 2837698 2837568 a
-e 2837764 2837698 a
-e 2838468 592 a
+e 2837635 2837568 a
+e 2837697 2837568 a
+e 2837763 2837697 a
+e 2838467 592 a
 e 2839872 592 a
-e 2839940 2839872 a
-e 2840772 592 a
+e 2839939 2839872 a
+e 2840771 592 a
 e 2841408 592 a
-e 2841476 2841408 a
-e 2842372 592 a
+e 2841475 2841408 a
+e 2842371 592 a
 e 2843008 592 a
-e 2843076 2843008 a
-e 2843138 2843008 a
-e 2843204 2843138 a
-e 2843908 592 a
+e 2843075 2843008 a
+e 2843137 2843008 a
+e 2843203 2843137 a
+e 2843907 592 a
 e 2845312 592 a
-e 2845380 2845312 a
-e 2846468 592 a
+e 2845379 2845312 a
+e 2846467 592 a
 e 2847168 592 a
-e 2847236 2847168 a
-e 2848580 592 a
+e 2847235 2847168 a
+e 2848579 592 a
 e 2849216 592 a
-e 2849284 2849216 a
-e 2849346 2849216 a
-e 2849412 2849346 a
-e 2850244 592 a
+e 2849283 2849216 a
+e 2849345 2849216 a
+e 2849411 2849345 a
+e 2850243 592 a
 e 2853312 592 a
-e 2853396 592 b
-e 2853396 2853312 a
+e 2853395 592 b
+e 2853395 2853312 a
 e 2873216 592 a
-e 2873300 592 b
-e 2873300 2873216 a
+e 2873299 592 b
+e 2873299 2873216 a
 e 2883520 592 a
-e 2883604 592 b
-e 2883604 2883520 a
+e 2883603 592 b
+e 2883603 2883520 a
 e 2899264 592 a
-e 2899348 592 b
-e 2899348 2899264 a
-e 2904908 592 b
+e 2899347 592 b
+e 2899347 2899264 a
+e 2904907 592 b
 e 2904960 592 a
-e 2905028 2904960 a
-e 2905108 592 b
-e 2905108 2904960 a
-e 2908108 592 b
-e 2908164 592 a
+e 2905027 2904960 a
+e 2905107 592 b
+e 2905107 2904960 a
+e 2908107 592 b
+e 2908163 592 a
 e 2911744 592 a
-e 2911828 592 b
-e 2911828 2911744 a
+e 2911827 592 b
+e 2911827 2911744 a
 e 2932608 592 a
-e 2932692 592 b
-e 2932692 2932608 a
+e 2932691 592 b
+e 2932691 2932608 a
 e 2938432 592 a
-e 2938516 592 b
-e 2938516 2938432 a
+e 2938515 592 b
+e 2938515 2938432 a
 e 2960768 592 a
-e 2960852 592 b
-e 2960852 2960768 a
+e 2960851 592 b
+e 2960851 2960768 a
 e 2966400 592 a
-e 2966484 592 b
-e 2966484 2966400 a
+e 2966483 592 b
+e 2966483 2966400 a
 e 2972160 592 a
-e 2972244 592 b
-e 2972244 2972160 a
-e 2975876 592 a
+e 2972243 592 b
+e 2972243 2972160 a
+e 2975875 592 a
 e 2976256 592 a
-e 2976324 2976256 a
-e 2978692 592 a
+e 2976323 2976256 a
+e 2978691 592 a
 e 2979328 592 a
-e 2979396 2979328 a
-e 2985220 592 a
+e 2979395 2979328 a
+e 2985219 592 a
 e 2985856 592 a
-e 2985924 2985856 a
-e 2985986 2985856 a
-e 2986052 2985986 a
-e 2987524 592 a
+e 2985923 2985856 a
+e 2985985 2985856 a
+e 2986051 2985985 a
+e 2987523 592 a
 e 2992768 592 a
-e 2992852 592 b
-e 2992852 2992768 a
+e 2992851 592 b
+e 2992851 2992768 a
 e 3004864 592 a
-e 3004948 592 b
-e 3004948 3004864 a
+e 3004947 592 b
+e 3004947 3004864 a
 e 3011200 592 a
-e 3011284 592 b
-e 3011284 3011200 a
+e 3011283 592 b
+e 3011283 3011200 a
 e 3029760 592 a
-e 3029844 592 b
-e 3029844 3029760 a
+e 3029843 592 b
+e 3029843 3029760 a
 e 3035456 592 a
-e 3035540 592 b
-e 3035540 3035456 a
+e 3035539 592 b
+e 3035539 3035456 a
 e 3041216 592 a
-e 3041300 592 b
-e 3041300 3041216 a
+e 3041299 592 b
+e 3041299 3041216 a
 e 3047680 592 a
-e 3047764 592 b
-e 3047764 3047680 a
+e 3047763 592 b
+e 3047763 3047680 a
 e 3053888 592 a
-e 3053972 592 b
-e 3053972 3053888 a
-e 3057476 592 a
+e 3053971 592 b
+e 3053971 3053888 a
+e 3057475 592 a
 e 3057856 592 a
-e 3057924 3057856 a
-e 3058884 592 a
+e 3057923 3057856 a
+e 3058883 592 a
 e 3059520 592 a
-e 3059588 3059520 a
-e 3060484 592 a
+e 3059587 3059520 a
+e 3060483 592 a
 e 3061120 592 a
-e 3061188 3061120 a
-e 3061250 3061120 a
-e 3061316 3061250 a
-e 3062084 592 a
+e 3061187 3061120 a
+e 3061249 3061120 a
+e 3061315 3061249 a
+e 3062083 592 a
 e 3063552 592 a
-e 3063620 3063552 a
-e 3069380 592 a
+e 3063619 3063552 a
+e 3069379 592 a
 e 3070080 592 a
-e 3070148 3070080 a
-e 3086916 592 a
+e 3070147 3070080 a
+e 3086915 592 a
 e 3087552 592 a
-e 3087620 3087552 a
-e 3087682 3087552 a
-e 3087748 3087682 a
-e 3091716 592 a
+e 3087619 3087552 a
+e 3087681 3087552 a
+e 3087747 3087681 a
+e 3091715 592 a
 e 3096768 592 a
-e 3096852 592 b
-e 3096852 3096768 a
+e 3096851 592 b
+e 3096851 3096768 a
 e 3102400 592 a
-e 3102484 592 b
-e 3102484 3102400 a
+e 3102483 592 b
+e 3102483 3102400 a
 e 3113024 592 a
-e 3113108 592 b
-e 3113108 3113024 a
+e 3113107 592 b
+e 3113107 3113024 a
 e 3118912 592 a
-e 3118996 592 b
-e 3118996 3118912 a
+e 3118995 592 b
+e 3118995 3118912 a
 e 3124736 592 a
-e 3124820 592 b
-e 3124820 3124736 a
+e 3124819 592 b
+e 3124819 3124736 a
 e 3130560 592 a
-e 3130644 592 b
-e 3130644 3130560 a
+e 3130643 592 b
+e 3130643 3130560 a
 e 3142336 592 a
-e 3142420 592 b
-e 3142420 3142336 a
+e 3142419 592 b
+e 3142419 3142336 a
 e 3155008 592 a
-e 3155092 592 b
-e 3155092 3155008 a
+e 3155091 592 b
+e 3155091 3155008 a
 e 3166592 592 a
-e 3166676 592 b
-e 3166676 3166592 a
+e 3166675 592 b
+e 3166675 3166592 a
 e 3176704 592 a
-e 3176788 592 b
-e 3176788 3176704 a
+e 3176787 592 b
+e 3176787 3176704 a
 e 3182144 592 a
-e 3182228 592 b
-e 3182228 3182144 a
+e 3182227 592 b
+e 3182227 3182144 a
 e 3187776 592 a
-e 3187860 592 b
-e 3187860 3187776 a
+e 3187859 592 b
+e 3187859 3187776 a
 e 3198976 592 a
-e 3199060 592 b
-e 3199060 3198976 a
+e 3199059 592 b
+e 3199059 3198976 a
 e 3204544 592 a
-e 3204628 592 b
-e 3204628 3204544 a
+e 3204627 592 b
+e 3204627 3204544 a
 e 3220288 592 a
-e 3220372 592 b
-e 3220372 3220288 a
+e 3220371 592 b
+e 3220371 3220288 a
 e 3233600 592 a
-e 3233684 592 b
-e 3233684 3233600 a
+e 3233683 592 b
+e 3233683 3233600 a
 e 3239424 592 a
-e 3239508 592 b
-e 3239508 3239424 a
+e 3239507 592 b
+e 3239507 3239424 a
 e 3245952 592 a
-e 3246036 592 b
-e 3246036 3245952 a
+e 3246035 592 b
+e 3246035 3245952 a
 e 3257024 592 a
-e 3257108 592 b
-e 3257108 3257024 a
+e 3257107 592 b
+e 3257107 3257024 a
 e 3260688 592 ba
 e 3262848 3260688 a
-e 3262932 3260688 b
-e 3262932 3262848 a
+e 3262931 3260688 b
+e 3262931 3262848 a
 e 3268048 592 ba
 e 3269888 3268048 a
-e 3269972 3268048 b
-e 3269972 3269888 a
+e 3269971 3268048 b
+e 3269971 3269888 a
 e 3273872 592 ba
-e 3277580 3273872 b
-e 3277636 3273872 a
+e 3277579 3273872 b
+e 3277635 3273872 a
 e 3281856 592 a
-e 3281940 592 b
-e 3281940 3281856 a
+e 3281939 592 b
+e 3281939 3281856 a
 e 3307072 592 a
-e 3307156 592 b
-e 3307156 3307072 a
+e 3307155 592 b
+e 3307155 3307072 a
 e 3357696 592 a
-e 3357780 592 b
-e 3357780 3357696 a
+e 3357779 592 b
+e 3357779 3357696 a
 e 3364992 592 a
-e 3365076 592 b
-e 3365076 3364992 a
+e 3365075 592 b
+e 3365075 3364992 a
 e 3372416 592 a
-e 3372500 592 b
-e 3372500 3372416 a
+e 3372499 592 b
+e 3372499 3372416 a
 e 3377984 592 a
-e 3378068 592 b
-e 3378068 3377984 a
+e 3378067 592 b
+e 3378067 3377984 a
 e 3383680 592 a
-e 3383764 592 b
-e 3383764 3383680 a
+e 3383763 592 b
+e 3383763 3383680 a
 e 3389760 592 a
-e 3389844 592 b
-e 3389844 3389760 a
+e 3389843 592 b
+e 3389843 3389760 a
 e 3391424 3389760 a
-e 3391508 3391368 b
-e 3391508 3391424 a
+e 3391507 3391368 b
+e 3391507 3391424 a
 e 3391368 592 b
-e 3394948 592 a
+e 3394947 592 a
 e 3395072 592 a
-e 3395140 3395072 a
-e 3396548 592 a
+e 3395139 3395072 a
+e 3396547 592 a
 e 3397120 592 a
-e 3397188 3397120 a
-e 3399300 592 a
+e 3397187 3397120 a
+e 3399299 592 a
 e 3399936 592 a
-e 3400004 3399936 a
-e 3400066 3399936 a
-e 3400132 3400066 a
-e 3400964 592 a
+e 3400003 3399936 a
+e 3400065 3399936 a
+e 3400131 3400065 a
+e 3400963 592 a
 e 3404160 592 a
-e 3404244 592 b
-e 3404244 3404160 a
+e 3404243 592 b
+e 3404243 3404160 a
 e 3411264 592 a
-e 3411348 592 b
-e 3411348 3411264 a
+e 3411347 592 b
+e 3411347 3411264 a
 e 3412608 3411264 a
-e 3412692 3412552 b
-e 3412692 3412608 a
+e 3412691 3412552 b
+e 3412691 3412608 a
 e 3412552 592 b
 e 3418048 592 a
-e 3418132 592 b
-e 3418132 3418048 a
+e 3418131 592 b
+e 3418131 3418048 a
 e 3425088 592 a
-e 3425172 592 b
-e 3425172 3425088 a
+e 3425171 592 b
+e 3425171 3425088 a
 e 3427840 3425088 a
-e 3427924 3427784 b
-e 3427924 3427840 a
+e 3427923 3427784 b
+e 3427923 3427840 a
 e 3427784 592 b
 e 3434048 592 a
-e 3434132 592 b
-e 3434132 3434048 a
+e 3434131 592 b
+e 3434131 3434048 a
 e 3440576 592 a
-e 3440660 592 b
-e 3440660 3440576 a
+e 3440659 592 b
+e 3440659 3440576 a
 e 3452096 592 a
-e 3452180 592 b
-e 3452180 3452096 a
+e 3452179 592 b
+e 3452179 3452096 a
 e 3453952 3452096 a
-e 3454036 3453896 b
-e 3454036 3453952 a
+e 3454035 3453896 b
+e 3454035 3453952 a
 e 3453896 592 b
 e 3460928 592 a
-e 3461012 592 b
-e 3461012 3460928 a
+e 3461011 592 b
+e 3461011 3460928 a
 e 3463232 3460928 a
-e 3463316 3463176 b
-e 3463316 3463232 a
+e 3463315 3463176 b
+e 3463315 3463232 a
 e 3463176 592 b
 e 3468928 592 a
-e 3469012 592 b
-e 3469012 3468928 a
+e 3469011 592 b
+e 3469011 3468928 a
 e 3484480 592 a
-e 3484564 592 b
-e 3484564 3484480 a
+e 3484563 592 b
+e 3484563 3484480 a
 e 3485504 592 a
-e 3485588 592 b
-e 3485588 3485504 a
+e 3485587 592 b
+e 3485587 3485504 a
 e 3495744 592 a
-e 3495828 592 b
-e 3495828 3495744 a
+e 3495827 592 b
+e 3495827 3495744 a
 e 3502848 592 a
-e 3502932 592 b
-e 3502932 3502848 a
+e 3502931 592 b
+e 3502931 3502848 a
 e 3508608 592 a
-e 3508692 592 b
-e 3508692 3508608 a
+e 3508691 592 b
+e 3508691 3508608 a
 e 3513664 592 a
-e 3513748 592 b
-e 3513748 3513664 a
+e 3513747 592 b
+e 3513747 3513664 a
 e 3520256 592 a
-e 3520340 592 b
-e 3520340 3520256 a
+e 3520339 592 b
+e 3520339 3520256 a
 e 3521984 3520256 a
-e 3522068 3521928 b
-e 3522068 3521984 a
-e 3522772 592 b
-e 3522772 3520256 a
+e 3522067 3521928 b
+e 3522067 3521984 a
+e 3522771 592 b
+e 3522771 3520256 a
 e 3523648 3520256 a
-e 3523732 3523592 b
-e 3523732 3523648 a
+e 3523731 3523592 b
+e 3523731 3523648 a
 e 3521928 592 b
 e 3523592 592 b
 e 3529792 592 a
-e 3529876 592 b
-e 3529876 3529792 a
+e 3529875 592 b
+e 3529875 3529792 a
 e 3531136 3529792 a
-e 3531220 3531080 b
-e 3531220 3531136 a
+e 3531219 3531080 b
+e 3531219 3531136 a
 e 3531080 592 b
 e 3537088 592 a
-e 3537172 592 b
-e 3537172 3537088 a
+e 3537171 592 b
+e 3537171 3537088 a
 e 3544064 592 a
-e 3544148 592 b
-e 3544148 3544064 a
+e 3544147 592 b
+e 3544147 3544064 a
 e 3550720 592 a
-e 3550804 592 b
-e 3550804 3550720 a
+e 3550803 592 b
+e 3550803 3550720 a
 e 3558272 592 a
-e 3558356 592 b
-e 3558356 3558272 a
+e 3558355 592 b
+e 3558355 3558272 a
 e 3564032 592 a
-e 3564116 592 b
-e 3564116 3564032 a
+e 3564115 592 b
+e 3564115 3564032 a
 e 3569856 592 a
-e 3569940 592 b
-e 3569940 3569856 a
+e 3569939 592 b
+e 3569939 3569856 a
 e 3576128 592 a
-e 3576212 592 b
-e 3576212 3576128 a
+e 3576211 592 b
+e 3576211 3576128 a
 e 3581952 592 a
-e 3582036 592 b
-e 3582036 3581952 a
+e 3582035 592 b
+e 3582035 3581952 a
 e 3592960 592 a
-e 3593044 592 b
-e 3593044 3592960 a
+e 3593043 592 b
+e 3593043 3592960 a
 e 3598464 592 a
-e 3598548 592 b
-e 3598548 3598464 a
+e 3598547 592 b
+e 3598547 3598464 a
 e 3604352 592 a
-e 3604436 592 b
-e 3604436 3604352 a
+e 3604435 592 b
+e 3604435 3604352 a
 e 3605824 3604352 a
-e 3605908 3605768 b
-e 3605908 3605824 a
+e 3605907 3605768 b
+e 3605907 3605824 a
 e 3605768 592 b
 e 3612672 592 a
-e 3612756 592 b
-e 3612756 3612672 a
+e 3612755 592 b
+e 3612755 3612672 a
 e 3614528 3612672 a
-e 3614612 3614472 b
-e 3614612 3614528 a
+e 3614611 3614472 b
+e 3614611 3614528 a
 e 3614472 592 b
 e 3621056 592 a
-e 3621140 592 b
-e 3621140 3621056 a
+e 3621139 592 b
+e 3621139 3621056 a
 e 3622464 3621056 a
-e 3622548 3622408 b
-e 3622548 3622464 a
+e 3622547 3622408 b
+e 3622547 3622464 a
 e 3622408 592 b
 e 3628288 592 a
-e 3628372 592 b
-e 3628372 3628288 a
+e 3628371 592 b
+e 3628371 3628288 a
 e 3629248 3628288 a
-e 3629332 3629192 b
-e 3629332 3629248 a
+e 3629331 3629192 b
+e 3629331 3629248 a
 e 3629192 592 b
 e 3635264 592 a
-e 3635348 592 b
-e 3635348 3635264 a
+e 3635347 592 b
+e 3635347 3635264 a
 e 3637056 3635264 a
-e 3637140 3637000 b
-e 3637140 3637056 a
+e 3637139 3637000 b
+e 3637139 3637056 a
 e 3637000 592 b
 e 3642944 592 a
-e 3643028 592 b
-e 3643028 3642944 a
+e 3643027 592 b
+e 3643027 3642944 a
 e 3649792 592 a
-e 3649876 592 b
-e 3649876 3649792 a
+e 3649875 592 b
+e 3649875 3649792 a
 e 3651584 3649792 a
-e 3651668 3651528 b
-e 3651668 3651584 a
+e 3651667 3651528 b
+e 3651667 3651584 a
 e 3651528 592 b
 e 3656768 592 a
-e 3656852 592 b
-e 3656852 3656768 a
+e 3656851 592 b
+e 3656851 3656768 a
 e 3662720 592 a
-e 3662804 592 b
-e 3662804 3662720 a
+e 3662803 592 b
+e 3662803 3662720 a
 e 3664512 3662720 a
-e 3664596 3664456 b
-e 3664596 3664512 a
+e 3664595 3664456 b
+e 3664595 3664512 a
 e 3664456 592 b
 e 3668240 592 ba
 e 3669952 3668240 a
-e 3670036 3668240 b
-e 3670036 3669952 a
-e 3673476 592 a
+e 3670035 3668240 b
+e 3670035 3669952 a
+e 3673475 592 a
 e 3673792 592 a
-e 3673860 3673792 a
+e 3673859 3673792 a
 e 3674624 3673792 a
-e 3674692 3674624 a
-e 3675076 592 a
+e 3674691 3674624 a
+e 3675075 592 a
 e 3675584 592 a
-e 3675652 3675584 a
+e 3675651 3675584 a
 e 3676800 3675584 a
-e 3676868 3676800 a
-e 3677508 592 a
+e 3676867 3676800 a
+e 3677507 592 a
 e 3678144 592 a
-e 3678212 3678144 a
-e 3678274 3678144 a
-e 3678340 3678274 a
-e 3679108 592 a
+e 3678211 3678144 a
+e 3678273 3678144 a
+e 3678339 3678273 a
+e 3679107 592 a
 e 3684800 592 a
-e 3684884 592 b
-e 3684884 3684800 a
+e 3684883 592 b
+e 3684883 3684800 a
 e 3686080 3684800 a
-e 3686164 3686024 b
-e 3686164 3686080 a
-e 3686868 592 b
-e 3686868 3684800 a
+e 3686163 3686024 b
+e 3686163 3686080 a
+e 3686867 592 b
+e 3686867 3684800 a
 e 3687680 3684800 a
-e 3687764 3687624 b
-e 3687764 3687680 a
-e 3688468 592 b
-e 3688468 3684800 a
+e 3687763 3687624 b
+e 3687763 3687680 a
+e 3688467 592 b
+e 3688467 3684800 a
 e 3688896 3684800 a
-e 3688980 3688840 b
-e 3688980 3688896 a
-e 3689620 592 b
-e 3689620 3684800 a
+e 3688979 3688840 b
+e 3688979 3688896 a
+e 3689619 592 b
+e 3689619 3684800 a
 e 3690048 3684800 a
-e 3690132 3689992 b
-e 3690132 3690048 a
+e 3690131 3689992 b
+e 3690131 3690048 a
 e 3686024 592 b
 e 3687624 592 b
 e 3688840 592 b
 e 3689992 592 b
 e 3695680 592 a
-e 3695764 592 b
-e 3695764 3695680 a
+e 3695763 592 b
+e 3695763 3695680 a
 e 3701056 592 a
-e 3701140 592 b
-e 3701140 3701056 a
+e 3701139 592 b
+e 3701139 3701056 a
 e 3701952 3701056 a
-e 3702036 3701896 b
-e 3702036 3701952 a
+e 3702035 3701896 b
+e 3702035 3701952 a
 e 3701896 592 b
 e 3707136 592 a
-e 3707220 592 b
-e 3707220 3707136 a
+e 3707219 592 b
+e 3707219 3707136 a
 e 3708416 3707136 a
-e 3708500 3708360 b
-e 3708500 3708416 a
+e 3708499 3708360 b
+e 3708499 3708416 a
 e 3708360 592 b
 e 3713472 592 a
-e 3713556 592 b
-e 3713556 3713472 a
+e 3713555 592 b
+e 3713555 3713472 a
 e 3718720 592 a
-e 3718804 592 b
-e 3718804 3718720 a
+e 3718803 592 b
+e 3718803 3718720 a
 e 3720000 3718720 a
-e 3720084 3719944 b
-e 3720084 3720000 a
+e 3720083 3719944 b
+e 3720083 3720000 a
 e 3719944 592 b
 e 3725184 592 a
-e 3725268 592 b
-e 3725268 3725184 a
+e 3725267 592 b
+e 3725267 3725184 a
 e 3730368 592 a
-e 3730452 592 b
-e 3730452 3730368 a
+e 3730451 592 b
+e 3730451 3730368 a
 e 3735872 592 a
-e 3735956 592 b
-e 3735956 3735872 a
+e 3735955 592 b
+e 3735955 3735872 a
 e 3743488 592 a
-e 3743572 592 b
-e 3743572 3743488 a
+e 3743571 592 b
+e 3743571 3743488 a
 e 3745152 3743488 a
-e 3745236 3745096 b
-e 3745236 3745152 a
+e 3745235 3745096 b
+e 3745235 3745152 a
 e 3745096 592 b
 e 3750784 592 a
-e 3750868 592 b
-e 3750868 3750784 a
+e 3750867 592 b
+e 3750867 3750784 a
 e 3766720 592 a
-e 3766804 592 b
-e 3766804 3766720 a
+e 3766803 592 b
+e 3766803 3766720 a
 e 3782016 592 a
-e 3782100 592 b
-e 3782100 3782016 a
+e 3782099 592 b
+e 3782099 3782016 a
 e 3790272 592 a
-e 3790356 592 b
-e 3790356 3790272 a
+e 3790355 592 b
+e 3790355 3790272 a
 e 3799552 592 a
-e 3799636 592 b
-e 3799636 3799552 a
+e 3799635 592 b
+e 3799635 3799552 a
 e 3801280 3799552 a
-e 3801364 3801224 b
-e 3801364 3801280 a
-e 3802068 592 b
-e 3802068 3799552 a
+e 3801363 3801224 b
+e 3801363 3801280 a
+e 3802067 592 b
+e 3802067 3799552 a
 e 3802944 3799552 a
-e 3803028 3802888 b
-e 3803028 3802944 a
-e 3803732 592 b
-e 3803732 3799552 a
+e 3803027 3802888 b
+e 3803027 3802944 a
+e 3803731 592 b
+e 3803731 3799552 a
 e 3801224 592 b
 e 3802888 592 b
 e 3812800 592 a
-e 3812884 592 b
-e 3812884 3812800 a
+e 3812883 592 b
+e 3812883 3812800 a
 e 3822592 592 a
-e 3822676 592 b
-e 3822676 3822592 a
+e 3822675 592 b
+e 3822675 3822592 a
 e 3824320 3822592 a
-e 3824404 3824264 b
-e 3824404 3824320 a
-e 3825108 592 b
-e 3825108 3822592 a
+e 3824403 3824264 b
+e 3824403 3824320 a
+e 3825107 592 b
+e 3825107 3822592 a
 e 3825984 3822592 a
-e 3826068 3825928 b
-e 3826068 3825984 a
-e 3826772 592 b
-e 3826772 3822592 a
+e 3826067 3825928 b
+e 3826067 3825984 a
+e 3826771 592 b
+e 3826771 3822592 a
 e 3824264 592 b
 e 3825928 592 b
 e 3837632 592 a
-e 3837716 592 b
-e 3837716 3837632 a
+e 3837715 592 b
+e 3837715 3837632 a
 e 3838976 3837632 a
-e 3839060 3838920 b
-e 3839060 3838976 a
+e 3839059 3838920 b
+e 3839059 3838976 a
 e 3838920 592 b
 e 3845696 592 a
-e 3845780 592 b
-e 3845780 3845696 a
+e 3845779 592 b
+e 3845779 3845696 a
 e 3848128 3845696 a
-e 3848212 3848072 b
-e 3848212 3848128 a
+e 3848211 3848072 b
+e 3848211 3848128 a
 e 3848072 592 b
 e 3856832 592 a
-e 3856916 592 b
-e 3856916 3856832 a
+e 3856915 592 b
+e 3856915 3856832 a
 e 3858624 3856832 a
-e 3858708 3858568 b
-e 3858708 3858624 a
-e 3859412 592 b
-e 3859412 3856832 a
+e 3858707 3858568 b
+e 3858707 3858624 a
+e 3859411 592 b
+e 3859411 3856832 a
 e 3860288 3856832 a
-e 3860372 3860232 b
-e 3860372 3860288 a
-e 3861076 592 b
-e 3861076 3856832 a
+e 3860371 3860232 b
+e 3860371 3860288 a
+e 3861075 592 b
+e 3861075 3856832 a
 e 3861568 3856832 a
-e 3861652 3861512 b
-e 3861652 3861568 a
-e 3862356 592 b
-e 3862356 3856832 a
+e 3861651 3861512 b
+e 3861651 3861568 a
+e 3862355 592 b
+e 3862355 3856832 a
 e 3863616 3856832 a
-e 3863700 3863560 b
-e 3863700 3863616 a
+e 3863699 3863560 b
+e 3863699 3863616 a
 e 3858568 592 b
 e 3860232 592 b
 e 3861512 592 b
 e 3863560 592 b
 e 3869632 592 a
-e 3869716 592 b
-e 3869716 3869632 a
+e 3869715 592 b
+e 3869715 3869632 a
 e 3878720 592 a
-e 3878804 592 b
-e 3878804 3878720 a
+e 3878803 592 b
+e 3878803 3878720 a
 e 3880448 3878720 a
-e 3880532 3880392 b
-e 3880532 3880448 a
-e 3881236 592 b
-e 3881236 3878720 a
+e 3880531 3880392 b
+e 3880531 3880448 a
+e 3881235 592 b
+e 3881235 3878720 a
 e 3882112 3878720 a
-e 3882196 3882056 b
-e 3882196 3882112 a
-e 3882900 592 b
-e 3882900 3878720 a
+e 3882195 3882056 b
+e 3882195 3882112 a
+e 3882899 592 b
+e 3882899 3878720 a
 e 3883776 3878720 a
-e 3883860 3883720 b
-e 3883860 3883776 a
+e 3883859 3883720 b
+e 3883859 3883776 a
 e 3880392 592 b
 e 3882056 592 b
 e 3883720 592 b
 e 3893120 592 a
-e 3893204 592 b
-e 3893204 3893120 a
+e 3893203 592 b
+e 3893203 3893120 a
 e 3895680 3893120 a
-e 3895764 3895624 b
-e 3895764 3895680 a
-e 3896468 592 b
-e 3896468 3893120 a
+e 3895763 3895624 b
+e 3895763 3895680 a
+e 3896467 592 b
+e 3896467 3893120 a
 e 3897344 3893120 a
-e 3897428 3897288 b
-e 3897428 3897344 a
-e 3898132 592 b
-e 3898132 3893120 a
+e 3897427 3897288 b
+e 3897427 3897344 a
+e 3898131 592 b
+e 3898131 3893120 a
 e 3898624 3893120 a
-e 3898708 3898568 b
-e 3898708 3898624 a
-e 3899412 592 b
-e 3899412 3893120 a
+e 3898707 3898568 b
+e 3898707 3898624 a
+e 3899411 592 b
+e 3899411 3893120 a
 e 3900672 3893120 a
-e 3900756 3900616 b
-e 3900756 3900672 a
+e 3900755 3900616 b
+e 3900755 3900672 a
 e 3895624 592 b
 e 3897288 592 b
 e 3898568 592 b
 e 3900616 592 b
 e 3907648 592 a
-e 3907732 592 b
-e 3907732 3907648 a
+e 3907731 592 b
+e 3907731 3907648 a
 e 3918656 592 a
-e 3918740 592 b
-e 3918740 3918656 a
+e 3918739 592 b
+e 3918739 3918656 a
 e 3920384 3918656 a
-e 3920468 3920328 b
-e 3920468 3920384 a
-e 3921172 592 b
-e 3921172 3918656 a
+e 3920467 3920328 b
+e 3920467 3920384 a
+e 3921171 592 b
+e 3921171 3918656 a
 e 3922048 3918656 a
-e 3922132 3921992 b
-e 3922132 3922048 a
-e 3922836 592 b
-e 3922836 3918656 a
+e 3922131 3921992 b
+e 3922131 3922048 a
+e 3922835 592 b
+e 3922835 3918656 a
 e 3923712 3918656 a
-e 3923796 3923656 b
-e 3923796 3923712 a
-e 3924500 592 b
-e 3924500 3918656 a
+e 3923795 3923656 b
+e 3923795 3923712 a
+e 3924499 592 b
+e 3924499 3918656 a
 e 3925312 3918656 a
-e 3925396 3925256 b
-e 3925396 3925312 a
+e 3925395 3925256 b
+e 3925395 3925312 a
 e 3920328 592 b
 e 3921992 592 b
 e 3923656 592 b
 e 3925256 592 b
 e 3931520 592 a
-e 3931604 592 b
-e 3931604 3931520 a
+e 3931603 592 b
+e 3931603 3931520 a
 e 3937920 592 a
-e 3938004 592 b
-e 3938004 3937920 a
+e 3938003 592 b
+e 3938003 3937920 a
 e 3939328 3937920 a
-e 3939412 3939272 b
-e 3939412 3939328 a
+e 3939411 3939272 b
+e 3939411 3939328 a
 e 3939272 592 b
 e 3946240 592 a
-e 3946324 592 b
-e 3946324 3946240 a
+e 3946323 592 b
+e 3946323 3946240 a
 e 3947520 3946240 a
-e 3947604 3947464 b
-e 3947604 3947520 a
-e 3948244 592 b
-e 3948244 3946240 a
+e 3947603 3947464 b
+e 3947603 3947520 a
+e 3948243 592 b
+e 3948243 3946240 a
 e 3949056 3946240 a
-e 3949140 3949000 b
-e 3949140 3949056 a
-e 3949780 592 b
-e 3949780 3946240 a
+e 3949139 3949000 b
+e 3949139 3949056 a
+e 3949779 592 b
+e 3949779 3946240 a
 e 3950592 3946240 a
-e 3950676 3950536 b
-e 3950676 3950592 a
+e 3950675 3950536 b
+e 3950675 3950592 a
 e 3947464 592 b
 e 3949000 592 b
 e 3950536 592 b
 e 3956224 592 a
-e 3956308 592 b
-e 3956308 3956224 a
+e 3956307 592 b
+e 3956307 3956224 a
 e 3962496 592 a
-e 3962580 592 b
-e 3962580 3962496 a
+e 3962579 592 b
+e 3962579 3962496 a
 e 3963968 3962496 a
-e 3964052 3963912 b
-e 3964052 3963968 a
-e 3964756 592 b
-e 3964756 3962496 a
+e 3964051 3963912 b
+e 3964051 3963968 a
+e 3964755 592 b
+e 3964755 3962496 a
 e 3965696 3962496 a
-e 3965780 3965640 b
-e 3965780 3965696 a
+e 3965779 3965640 b
+e 3965779 3965696 a
 e 3963912 592 b
 e 3965640 592 b
 e 3971328 592 a
-e 3971412 592 b
-e 3971412 3971328 a
+e 3971411 592 b
+e 3971411 3971328 a
 e 3978304 592 a
-e 3978388 592 b
-e 3978388 3978304 a
+e 3978387 592 b
+e 3978387 3978304 a
 e 3981120 3978304 a
-e 3981204 3981064 b
-e 3981204 3981120 a
+e 3981203 3981064 b
+e 3981203 3981120 a
 e 3981064 592 b
 e 3988608 592 a
-e 3988692 592 b
-e 3988692 3988608 a
+e 3988691 592 b
+e 3988691 3988608 a
 e 4001344 592 a
-e 4001428 592 b
-e 4001428 4001344 a
+e 4001427 592 b
+e 4001427 4001344 a
 e 4006272 592 a
-e 4006356 592 b
-e 4006356 4006272 a
+e 4006355 592 b
+e 4006355 4006272 a
 e 4012672 592 a
-e 4012756 592 b
-e 4012756 4012672 a
+e 4012755 592 b
+e 4012755 4012672 a
 e 4026560 592 a
-e 4026644 592 b
-e 4026644 4026560 a
+e 4026643 592 b
+e 4026643 4026560 a
 e 4030160 592 ba
 e 4032192 4030160 a
-e 4032276 4030160 b
-e 4032276 4032192 a
+e 4032275 4030160 b
+e 4032275 4032192 a
 e 4038464 592 a
-e 4038548 592 b
-e 4038548 4038464 a
+e 4038547 592 b
+e 4038547 4038464 a
 e 4043776 592 a
-e 4043860 592 b
-e 4043860 4043776 a
+e 4043859 592 b
+e 4043859 4043776 a
 e 4047824 592 ba
 e 4049856 4047824 a
-e 4049940 4047824 b
-e 4049940 4049856 a
+e 4049939 4047824 b
+e 4049939 4049856 a
 e 4054032 592 ba
 e 4056192 4054032 a
-e 4056276 4054032 b
-e 4056276 4056192 a
+e 4056275 4054032 b
+e 4056275 4056192 a
 e 4062144 592 a
-e 4062228 592 b
-e 4062228 4062144 a
+e 4062227 592 b
+e 4062227 4062144 a
 e 4068160 592 a
-e 4068244 592 b
-e 4068244 4068160 a
+e 4068243 592 b
+e 4068243 4068160 a
 e 4074816 592 a
-e 4074900 592 b
-e 4074900 4074816 a
+e 4074899 592 b
+e 4074899 4074816 a
 e 4082240 592 a
-e 4082324 592 b
-e 4082324 4082240 a
+e 4082323 592 b
+e 4082323 4082240 a
 e 4083904 4082240 a
-e 4083988 4083848 b
-e 4083988 4083904 a
-e 4084692 592 b
-e 4084692 4082240 a
+e 4083987 4083848 b
+e 4083987 4083904 a
+e 4084691 592 b
+e 4084691 4082240 a
 e 4085120 4082240 a
-e 4085204 4085064 b
-e 4085204 4085120 a
+e 4085203 4085064 b
+e 4085203 4085120 a
 e 4083848 592 b
 e 4085064 592 b
 e 4090176 592 a
-e 4090260 592 b
-e 4090260 4090176 a
+e 4090259 592 b
+e 4090259 4090176 a
 e 4095104 592 a
-e 4095188 592 b
-e 4095188 4095104 a
+e 4095187 592 b
+e 4095187 4095104 a
 e 4096768 4095104 a
-e 4096852 4096712 b
-e 4096852 4096768 a
+e 4096851 4096712 b
+e 4096851 4096768 a
 e 4096712 592 b
 e 4102272 592 a
-e 4102356 592 b
-e 4102356 4102272 a
+e 4102355 592 b
+e 4102355 4102272 a
 e 4137168 592 ba
 e 4139264 4137168 a
-e 4139348 4137168 b
-e 4139348 4139264 a
+e 4139347 4137168 b
+e 4139347 4139264 a
 e 4145280 592 a
-e 4145364 592 b
-e 4145364 4145280 a
+e 4145363 592 b
+e 4145363 4145280 a
 e 4153088 592 a
-e 4153172 592 b
-e 4153172 4153088 a
+e 4153171 592 b
+e 4153171 4153088 a
 e 4154368 4153088 a
-e 4154452 4154312 b
-e 4154452 4154368 a
-e 4155156 592 b
-e 4155156 4153088 a
+e 4154451 4154312 b
+e 4154451 4154368 a
+e 4155155 592 b
+e 4155155 4153088 a
 e 4155648 4153088 a
-e 4155732 4155592 b
-e 4155732 4155648 a
-e 4156436 592 b
-e 4156436 4153088 a
+e 4155731 4155592 b
+e 4155731 4155648 a
+e 4156435 592 b
+e 4156435 4153088 a
 e 4157248 4153088 a
-e 4157332 4157192 b
-e 4157332 4157248 a
-e 4158036 592 b
-e 4158036 4153088 a
+e 4157331 4157192 b
+e 4157331 4157248 a
+e 4158035 592 b
+e 4158035 4153088 a
 e 4158848 4153088 a
-e 4158932 4158792 b
-e 4158932 4158848 a
+e 4158931 4158792 b
+e 4158931 4158848 a
 e 4154312 592 b
 e 4155592 592 b
 e 4157192 592 b
 e 4158792 592 b
 e 4166336 592 a
-e 4166420 592 b
-e 4166420 4166336 a
+e 4166419 592 b
+e 4166419 4166336 a
 e 4168064 4166336 a
-e 4168148 4168008 b
-e 4168148 4168064 a
-e 4168852 592 b
-e 4168852 4166336 a
+e 4168147 4168008 b
+e 4168147 4168064 a
+e 4168851 592 b
+e 4168851 4166336 a
 e 4169728 4166336 a
-e 4169812 4169672 b
-e 4169812 4169728 a
-e 4170516 592 b
-e 4170516 4166336 a
+e 4169811 4169672 b
+e 4169811 4169728 a
+e 4170515 592 b
+e 4170515 4166336 a
 e 4171392 4166336 a
-e 4171476 4171336 b
-e 4171476 4171392 a
+e 4171475 4171336 b
+e 4171475 4171392 a
 e 4168008 592 b
 e 4169672 592 b
 e 4171336 592 b
 e 4177088 592 a
-e 4177172 592 b
-e 4177172 4177088 a
+e 4177171 592 b
+e 4177171 4177088 a
 e 4182784 592 a
-e 4182868 592 b
-e 4182868 4182784 a
+e 4182867 592 b
+e 4182867 4182784 a
 e 4188992 592 a
-e 4189076 592 b
-e 4189076 4188992 a
-e 4192204 592 b
-e 4192260 592 a
-e 4195724 592 b
-e 4195780 592 a
-e 4196492 592 b
-e 4196548 592 a
+e 4189075 592 b
+e 4189075 4188992 a
+e 4192203 592 b
+e 4192259 592 a
+e 4195723 592 b
+e 4195779 592 a
+e 4196491 592 b
+e 4196547 592 a
 e 4213520 592 ba
 e 4215616 4213520 a
-e 4215700 4213520 b
-e 4215700 4215616 a
+e 4215699 4213520 b
+e 4215699 4215616 a
 e 4227280 592 ba
 e 4229248 4227280 a
-e 4229332 4227280 b
-e 4229332 4229248 a
+e 4229331 4227280 b
+e 4229331 4229248 a
 e 4232912 592 ba
 e 4234880 4232912 a
-e 4234964 4232912 b
-e 4234964 4234880 a
+e 4234963 4232912 b
+e 4234963 4234880 a
 e 4240192 592 a
-e 4240276 592 b
-e 4240276 4240192 a
+e 4240275 592 b
+e 4240275 4240192 a
 e 4245504 592 a
-e 4245588 592 b
-e 4245588 4245504 a
+e 4245587 592 b
+e 4245587 4245504 a
 e 4255232 592 a
-e 4255316 592 b
-e 4255316 4255232 a
+e 4255315 592 b
+e 4255315 4255232 a
 e 4260096 4255232 a
-e 4260180 4260040 b
-e 4260180 4260096 a
-e 4260820 592 b
-e 4260820 4255232 a
+e 4260179 4260040 b
+e 4260179 4260096 a
+e 4260819 592 b
+e 4260819 4255232 a
 e 4260040 592 b
 e 4268864 592 a
-e 4268948 592 b
-e 4268948 4268864 a
+e 4268947 592 b
+e 4268947 4268864 a
 e 4279808 592 a
-e 4279892 592 b
-e 4279892 4279808 a
+e 4279891 592 b
+e 4279891 4279808 a
 e 4281088 4279808 a
-e 4281172 4281032 b
-e 4281172 4281088 a
-e 4281812 592 b
-e 4281812 4279808 a
+e 4281171 4281032 b
+e 4281171 4281088 a
+e 4281811 592 b
+e 4281811 4279808 a
 e 4282752 4279808 a
-e 4282836 4282696 b
-e 4282836 4282752 a
+e 4282835 4282696 b
+e 4282835 4282752 a
 e 4281032 592 b
 e 4282696 592 b
 e 4288640 592 a
-e 4288724 592 b
-e 4288724 4288640 a
+e 4288723 592 b
+e 4288723 4288640 a
 e 4294592 592 a
-e 4294676 592 b
-e 4294676 4294592 a
+e 4294675 592 b
+e 4294675 4294592 a
 e 4296320 4294592 a
-e 4296404 4296264 b
-e 4296404 4296320 a
+e 4296403 4296264 b
+e 4296403 4296320 a
 e 4296264 592 b
 e 4302848 592 a
-e 4302932 592 b
-e 4302932 4302848 a
+e 4302931 592 b
+e 4302931 4302848 a
 e 4304256 4302848 a
-e 4304340 4304200 b
-e 4304340 4304256 a
-e 4305044 592 b
-e 4305044 4302848 a
+e 4304339 4304200 b
+e 4304339 4304256 a
+e 4305043 592 b
+e 4305043 4302848 a
 e 4305984 4302848 a
-e 4306068 4305928 b
-e 4306068 4305984 a
+e 4306067 4305928 b
+e 4306067 4305984 a
 e 4304200 592 b
 e 4305928 592 b
 e 4312192 592 a
-e 4312276 592 b
-e 4312276 4312192 a
+e 4312275 592 b
+e 4312275 4312192 a
 e 4313536 4312192 a
-e 4313620 4313480 b
-e 4313620 4313536 a
+e 4313619 4313480 b
+e 4313619 4313536 a
 e 4313480 592 b
 e 4319360 592 a
-e 4319444 592 b
-e 4319444 4319360 a
+e 4319443 592 b
+e 4319443 4319360 a
 e 4326464 592 a
-e 4326548 592 b
-e 4326548 4326464 a
+e 4326547 592 b
+e 4326547 4326464 a
 e 4331408 592 ba
 e 4333248 4331408 a
-e 4333332 4331408 b
-e 4333332 4333248 a
+e 4333331 4331408 b
+e 4333331 4333248 a
 e 4337168 592 ba
 e 4339328 4337168 a
-e 4339412 4337168 b
-e 4339412 4339328 a
+e 4339411 4337168 b
+e 4339411 4339328 a
 e 4344336 592 ba
 e 4346240 4344336 a
-e 4346324 4344336 b
-e 4346324 4346240 a
+e 4346323 4344336 b
+e 4346323 4346240 a
 e 4350288 592 ba
 e 4353792 4350288 a
-e 4353876 4350288 b
-e 4353876 4353792 a
+e 4353875 4350288 b
+e 4353875 4353792 a
 e 4356800 4353792 a
-e 4356884 4356744 b
-e 4356884 4356800 a
+e 4356883 4356744 b
+e 4356883 4356800 a
 e 4356744 4350288 b
 e 4360720 592 ba
 e 4362816 4360720 a
-e 4362900 4360720 b
-e 4362900 4362816 a
+e 4362899 4360720 b
+e 4362899 4362816 a
 e 4367696 592 ba
 e 4368080 4367696 ba
-e 4368140 4368080 b
-e 4368196 4368080 a
-e 4372364 4367696 b
-e 4372996 4367696 a
+e 4368139 4368080 b
+e 4368195 4368080 a
+e 4372363 4367696 b
+e 4372995 4367696 a
 e 4374416 592 ba
 e 4376256 4374416 a
-e 4376340 4374416 b
-e 4376340 4376256 a
+e 4376339 4374416 b
+e 4376339 4376256 a
 e 4384784 592 ba
 e 4386624 4384784 a
-e 4386708 4384784 b
-e 4386708 4386624 a
+e 4386707 4384784 b
+e 4386707 4386624 a
 e 4390224 592 ba
 e 4391936 4390224 a
-e 4392020 4390224 b
-e 4392020 4391936 a
+e 4392019 4390224 b
+e 4392019 4391936 a
 e 4395408 592 ba
 e 4398080 4395408 a
-e 4398164 4395408 b
-e 4398164 4398080 a
+e 4398163 4395408 b
+e 4398163 4398080 a
 e 4399808 4398080 a
-e 4399892 4399752 b
-e 4399892 4399808 a
+e 4399891 4399752 b
+e 4399891 4399808 a
 e 4399752 4395408 b
 e 4403408 592 ba
 e 4403792 4403408 ba
-e 4403916 4403792 b
-e 4404036 4403792 a
-e 4404236 4403792 b
-e 4404292 4403792 a
+e 4403915 4403792 b
+e 4404035 4403792 a
+e 4404235 4403792 b
+e 4404291 4403792 a
 e 4405568 4403408 a
-e 4405652 4403408 b
-e 4405652 4405568 a
-e 4406532 4405568 a
-e 4406612 4403408 b
-e 4406612 4405568 a
-e 4406724 4405568 a
-e 4406804 4403408 b
-e 4406804 4405568 a
-e 4406476 4403408 b
-e 4406668 4403408 b
-e 4408844 4403408 b
-e 4409092 4403408 a
+e 4405651 4403408 b
+e 4405651 4405568 a
+e 4406531 4405568 a
+e 4406611 4403408 b
+e 4406611 4405568 a
+e 4406723 4405568 a
+e 4406803 4403408 b
+e 4406803 4405568 a
+e 4406475 4403408 b
+e 4406667 4403408 b
+e 4408843 4403408 b
+e 4409091 4403408 a
 e 4407696 4403408 ba
-e 4408140 4407696 b
-e 4408196 4407696 a
+e 4408139 4407696 b
+e 4408195 4407696 a
 e 4410192 592 ba
 e 4412288 4410192 a
-e 4412372 4410192 b
-e 4412372 4412288 a
+e 4412371 4410192 b
+e 4412371 4412288 a
 e 4416464 592 ba
 e 4419648 4416464 a
-e 4419732 4416464 b
-e 4419732 4419648 a
+e 4419731 4416464 b
+e 4419731 4419648 a
 e 4420992 4419648 a
-e 4421076 4420936 b
-e 4421076 4420992 a
-e 4421780 4416464 b
-e 4421780 4419648 a
+e 4421075 4420936 b
+e 4421075 4420992 a
+e 4421779 4416464 b
+e 4421779 4419648 a
 e 4422656 4419648 a
-e 4422740 4422600 b
-e 4422740 4422656 a
+e 4422739 4422600 b
+e 4422739 4422656 a
 e 4420936 4416464 b
 e 4422600 4416464 b
 e 4426448 592 ba
 e 4428864 4426448 a
-e 4428948 4426448 b
-e 4428948 4428864 a
+e 4428947 4426448 b
+e 4428947 4428864 a
 e 4438160 592 ba
 e 4440000 4438160 a
-e 4440084 4438160 b
-e 4440084 4440000 a
+e 4440083 4438160 b
+e 4440083 4440000 a
 e 4443600 592 ba
 e 4446272 4443600 a
-e 4446356 4443600 b
-e 4446356 4446272 a
+e 4446355 4443600 b
+e 4446355 4446272 a
 e 4448000 4446272 a
-e 4448084 4447944 b
-e 4448084 4448000 a
+e 4448083 4447944 b
+e 4448083 4448000 a
 e 4447944 4443600 b
 e 4451600 592 ba
 e 4453376 4451600 a
-e 4453460 4451600 b
-e 4453460 4453376 a
+e 4453459 4451600 b
+e 4453459 4453376 a
 e 4456976 592 ba
 e 4459072 4456976 a
-e 4459156 4456976 b
-e 4459156 4459072 a
+e 4459155 4456976 b
+e 4459155 4459072 a
 e 4463248 592 ba
 e 4466432 4463248 a
-e 4466516 4463248 b
-e 4466516 4466432 a
+e 4466515 4463248 b
+e 4466515 4466432 a
 e 4467776 4466432 a
-e 4467860 4467720 b
-e 4467860 4467776 a
-e 4468564 4463248 b
-e 4468564 4466432 a
+e 4467859 4467720 b
+e 4467859 4467776 a
+e 4468563 4463248 b
+e 4468563 4466432 a
 e 4469440 4466432 a
-e 4469524 4469384 b
-e 4469524 4469440 a
+e 4469523 4469384 b
+e 4469523 4469440 a
 e 4467720 4463248 b
 e 4469384 4463248 b
 e 4473232 592 ba
 e 4475648 4473232 a
-e 4475732 4473232 b
-e 4475732 4475648 a
+e 4475731 4473232 b
+e 4475731 4475648 a
 e 4480272 592 ba
 e 4484800 4480272 a
-e 4484884 4480272 b
-e 4484884 4484800 a
+e 4484883 4480272 b
+e 4484883 4484800 a
 e 4489344 4484800 a
-e 4489428 4489288 b
-e 4489428 4489344 a
+e 4489427 4489288 b
+e 4489427 4489344 a
 e 4489288 4480272 b
 e 4493648 592 ba
 e 4494032 4493648 ba
-e 4494156 4494032 b
-e 4494852 4494032 a
+e 4494155 4494032 b
+e 4494851 4494032 a
 e 4497472 4493648 a
-e 4497556 4493648 b
-e 4497556 4497472 a
-e 4498052 4497472 a
-e 4498132 4493648 b
-e 4498132 4497472 a
-e 4497996 4493648 b
-e 4504716 4493648 b
-e 4505540 4493648 a
+e 4497555 4493648 b
+e 4497555 4497472 a
+e 4498051 4497472 a
+e 4498131 4493648 b
+e 4498131 4497472 a
+e 4497995 4493648 b
+e 4504715 4493648 b
+e 4505539 4493648 a
 e 4507216 592 ba
 e 4509184 4507216 a
-e 4509268 4507216 b
-e 4509268 4509184 a
+e 4509267 4507216 b
+e 4509267 4509184 a
 e 4513296 592 ba
 e 4516480 4513296 a
-e 4516564 4513296 b
-e 4516564 4516480 a
+e 4516563 4513296 b
+e 4516563 4516480 a
 e 4518592 4516480 a
-e 4518676 4518536 b
-e 4518676 4518592 a
+e 4518675 4518536 b
+e 4518675 4518592 a
 e 4518536 4513296 b
 e 4522384 592 ba
 e 4526720 4522384 a
-e 4526804 4522384 b
-e 4526804 4526720 a
+e 4526803 4522384 b
+e 4526803 4526720 a
 e 4528896 4526720 a
-e 4528980 4528840 b
-e 4528980 4528896 a
-e 4529684 4522384 b
-e 4529684 4526720 a
+e 4528979 4528840 b
+e 4528979 4528896 a
+e 4529683 4522384 b
+e 4529683 4526720 a
 e 4530560 4526720 a
-e 4530644 4530504 b
-e 4530644 4530560 a
-e 4531348 4522384 b
-e 4531348 4526720 a
+e 4530643 4530504 b
+e 4530643 4530560 a
+e 4531347 4522384 b
+e 4531347 4526720 a
 e 4528840 4522384 b
 e 4530504 4522384 b
 e 4536016 592 ba
 e 4537792 4536016 a
-e 4537876 4536016 b
-e 4537876 4537792 a
+e 4537875 4536016 b
+e 4537875 4537792 a
 e 4541392 592 ba
 e 4543616 4541392 a
-e 4543700 4541392 b
-e 4543700 4543616 a
+e 4543699 4541392 b
+e 4543699 4543616 a
 e 4548304 592 ba
 e 4551488 4548304 a
-e 4551572 4548304 b
-e 4551572 4551488 a
+e 4551571 4548304 b
+e 4551571 4551488 a
 e 4552832 4551488 a
-e 4552916 4552776 b
-e 4552916 4552832 a
-e 4553620 4548304 b
-e 4553620 4551488 a
+e 4552915 4552776 b
+e 4552915 4552832 a
+e 4553619 4548304 b
+e 4553619 4551488 a
 e 4554496 4551488 a
-e 4554580 4554440 b
-e 4554580 4554496 a
+e 4554579 4554440 b
+e 4554579 4554496 a
 e 4552776 4548304 b
 e 4554440 4548304 b
 e 4558288 592 ba
 e 4560704 4558288 a
-e 4560788 4558288 b
-e 4560788 4560704 a
+e 4560787 4558288 b
+e 4560787 4560704 a
 e 4565328 592 ba
 e 4569152 4565328 a
-e 4569236 4565328 b
-e 4569236 4569152 a
+e 4569235 4565328 b
+e 4569235 4569152 a
 e 4570560 4569152 a
-e 4570644 4570504 b
-e 4570644 4570560 a
-e 4571348 4565328 b
-e 4571348 4569152 a
+e 4570643 4570504 b
+e 4570643 4570560 a
+e 4571347 4565328 b
+e 4571347 4569152 a
 e 4572288 4569152 a
-e 4572372 4572232 b
-e 4572372 4572288 a
-e 4573076 4565328 b
-e 4573076 4569152 a
+e 4572371 4572232 b
+e 4572371 4572288 a
+e 4573075 4565328 b
+e 4573075 4569152 a
 e 4573952 4569152 a
-e 4574036 4573896 b
-e 4574036 4573952 a
-e 4574740 4565328 b
-e 4574740 4569152 a
+e 4574035 4573896 b
+e 4574035 4573952 a
+e 4574739 4565328 b
+e 4574739 4569152 a
 e 4570504 4565328 b
 e 4572232 4565328 b
 e 4573896 4565328 b
 e 4578640 592 ba
 e 4583168 4578640 a
-e 4583252 4578640 b
-e 4583252 4583168 a
+e 4583251 4578640 b
+e 4583251 4583168 a
 e 4587840 4583168 a
-e 4587924 4587784 b
-e 4587924 4587840 a
+e 4587923 4587784 b
+e 4587923 4587840 a
 e 4587784 4578640 b
 e 4592208 592 ba
 e 4594880 4592208 a
-e 4594964 4592208 b
-e 4594964 4594880 a
+e 4594963 4592208 b
+e 4594963 4594880 a
 e 4601616 592 ba
 e 4603392 4601616 a
-e 4603476 4601616 b
-e 4603476 4603392 a
+e 4603475 4601616 b
+e 4603475 4603392 a
 e 4611216 592 ba
 e 4613184 4611216 a
-e 4613268 4611216 b
-e 4613268 4613184 a
+e 4613267 4611216 b
+e 4613267 4613184 a
 e 4617296 592 ba
 e 4619136 4617296 a
-e 4619220 4617296 b
-e 4619220 4619136 a
+e 4619219 4617296 b
+e 4619219 4619136 a
 e 4622736 592 ba
 e 4625472 4622736 a
-e 4625556 4622736 b
-e 4625556 4625472 a
+e 4625555 4622736 b
+e 4625555 4625472 a
 e 4632784 592 ba
 e 4634880 4632784 a
-e 4634964 4632784 b
-e 4634964 4634880 a
+e 4634963 4632784 b
+e 4634963 4634880 a
 e 4639120 592 ba
 e 4641024 4639120 a
-e 4641108 4639120 b
-e 4641108 4641024 a
+e 4641107 4639120 b
+e 4641107 4641024 a
 e 4644560 592 ba
 e 4646592 4644560 a
-e 4646676 4644560 b
-e 4646676 4646592 a
+e 4646675 4644560 b
+e 4646675 4646592 a
 e 4651152 592 ba
 e 4657344 4651152 a
-e 4657428 4651152 b
-e 4657428 4657344 a
+e 4657427 4651152 b
+e 4657427 4657344 a
 e 4658688 4657344 a
-e 4658772 4658632 b
-e 4658772 4658688 a
-e 4659476 4651152 b
-e 4659476 4657344 a
+e 4658771 4658632 b
+e 4658771 4658688 a
+e 4659475 4651152 b
+e 4659475 4657344 a
 e 4659904 4657344 a
-e 4659988 4659848 b
-e 4659988 4659904 a
-e 4660628 4651152 b
-e 4660628 4657344 a
+e 4659987 4659848 b
+e 4659987 4659904 a
+e 4660627 4651152 b
+e 4660627 4657344 a
 e 4661056 4657344 a
-e 4661140 4661000 b
-e 4661140 4661056 a
-e 4661780 4651152 b
-e 4661780 4657344 a
+e 4661139 4661000 b
+e 4661139 4661056 a
+e 4661779 4651152 b
+e 4661779 4657344 a
 e 4662656 4657344 a
-e 4662740 4662600 b
-e 4662740 4662656 a
-e 4663444 4651152 b
-e 4663444 4657344 a
+e 4662739 4662600 b
+e 4662739 4662656 a
+e 4663443 4651152 b
+e 4663443 4657344 a
 e 4663872 4657344 a
-e 4663956 4663816 b
-e 4663956 4663872 a
+e 4663955 4663816 b
+e 4663955 4663872 a
 e 4658632 4651152 b
 e 4659848 4651152 b
 e 4661000 4651152 b
@@ -4727,31 +4727,31 @@ e 4662600 4651152 b
 e 4663816 4651152 b
 e 4667856 592 ba
 e 4674048 4667856 a
-e 4674132 4667856 b
-e 4674132 4674048 a
+e 4674131 4667856 b
+e 4674131 4674048 a
 e 4675392 4674048 a
-e 4675476 4675336 b
-e 4675476 4675392 a
-e 4676180 4667856 b
-e 4676180 4674048 a
+e 4675475 4675336 b
+e 4675475 4675392 a
+e 4676179 4667856 b
+e 4676179 4674048 a
 e 4676608 4674048 a
-e 4676692 4676552 b
-e 4676692 4676608 a
-e 4677332 4667856 b
-e 4677332 4674048 a
+e 4676691 4676552 b
+e 4676691 4676608 a
+e 4677331 4667856 b
+e 4677331 4674048 a
 e 4677824 4674048 a
-e 4677908 4677768 b
-e 4677908 4677824 a
-e 4678612 4667856 b
-e 4678612 4674048 a
+e 4677907 4677768 b
+e 4677907 4677824 a
+e 4678611 4667856 b
+e 4678611 4674048 a
 e 4679488 4674048 a
-e 4679572 4679432 b
-e 4679572 4679488 a
-e 4680276 4667856 b
-e 4680276 4674048 a
+e 4679571 4679432 b
+e 4679571 4679488 a
+e 4680275 4667856 b
+e 4680275 4674048 a
 e 4680704 4674048 a
-e 4680788 4680648 b
-e 4680788 4680704 a
+e 4680787 4680648 b
+e 4680787 4680704 a
 e 4675336 4667856 b
 e 4676552 4667856 b
 e 4677768 4667856 b
@@ -4759,55 +4759,55 @@ e 4679432 4667856 b
 e 4680648 4667856 b
 e 4684752 592 ba
 e 4686784 4684752 a
-e 4686868 4684752 b
-e 4686868 4686784 a
+e 4686867 4684752 b
+e 4686867 4686784 a
 e 4696128 592 a
-e 4696212 592 b
-e 4696212 4696128 a
+e 4696211 592 b
+e 4696211 4696128 a
 e 4699008 4696128 a
-e 4699092 4698952 b
-e 4699092 4699008 a
-e 4699796 592 b
-e 4699796 4696128 a
+e 4699091 4698952 b
+e 4699091 4699008 a
+e 4699795 592 b
+e 4699795 4696128 a
 e 4700288 4696128 a
-e 4700372 4700232 b
-e 4700372 4700288 a
-e 4701076 592 b
-e 4701076 4696128 a
+e 4700371 4700232 b
+e 4700371 4700288 a
+e 4701075 592 b
+e 4701075 4696128 a
 e 4701568 4696128 a
-e 4701652 4701512 b
-e 4701652 4701568 a
+e 4701651 4701512 b
+e 4701651 4701568 a
 e 4698952 592 b
 e 4700232 592 b
 e 4701512 592 b
 e 4708352 592 a
-e 4708436 592 b
-e 4708436 4708352 a
+e 4708435 592 b
+e 4708435 4708352 a
 e 4709760 4708352 a
-e 4709844 4709704 b
-e 4709844 4709760 a
+e 4709843 4709704 b
+e 4709843 4709760 a
 e 4709704 592 b
 e 4716160 592 a
-e 4716244 592 b
-e 4716244 4716160 a
+e 4716243 592 b
+e 4716243 4716160 a
 e 4717568 4716160 a
-e 4717652 4717512 b
-e 4717652 4717568 a
+e 4717651 4717512 b
+e 4717651 4717568 a
 e 4717512 592 b
 e 4723712 592 a
-e 4723796 592 b
-e 4723796 4723712 a
+e 4723795 592 b
+e 4723795 4723712 a
 e 4724992 4723712 a
-e 4725076 4724936 b
-e 4725076 4724992 a
+e 4725075 4724936 b
+e 4725075 4724992 a
 e 4724936 592 b
 e 4728528 592 ba
 e 4730496 4728528 a
-e 4730580 4728528 b
-e 4730580 4730496 a
+e 4730579 4728528 b
+e 4730579 4730496 a
 e 4734928 592 ba
 e 4736896 4734928 a
-e 4736980 4734928 b
-e 4736980 4736896 a
+e 4736979 4734928 b
+e 4736979 4736896 a
 
 
diff --git a/src/test/resources/multilinemacros/test/some.lg b/src/test/resources/multilinemacros/test/some.lg
index 6eccb7cc6..98a859634 100644
--- a/src/test/resources/multilinemacros/test/some.lg
+++ b/src/test/resources/multilinemacros/test/some.lg
@@ -1,699 +1,699 @@
 t # Marlin/example_configurations/RigidBot/Configuration.h$$$4502ad348701b87b01aece49ce1830219e3ac665
-v 2 NON_ROOT
-v 131074 NON_CODE
-v 3080194 NON_CODE
-v 4915202 NON_CODE
-v 14614530 NON_CODE
-v 16973826 NON_CODE
-v 20840450 NON_CODE
-v 25296897 REM_CODE
+v 1 NON_ROOT
+v 131073 NON_CODE
+v 3080193 NON_CODE
+v 4915201 NON_CODE
+v 14614529 NON_CODE
+v 16973825 NON_CODE
+v 20840449 NON_CODE
+v 25296896 REM_CODE
 v 25493504 ADD_CODE
-v 25755650 NON_CODE
-v 26279938 NON_CODE
-v 26607618 NON_CODE
-v 27131906 NON_CODE
-v 27394050 NON_CODE
-v 27983874 NON_CODE
-v 28704770 NON_CODE
-v 29818882 NON_CODE
-v 30670850 NON_CODE
-v 31391746 NON_CODE
-v 33554434 NON_CODE
-v 33882114 NON_CODE
-v 34996226 NON_CODE
-v 35586050 NON_CODE
-v 35979266 NON_CODE
-v 38273026 NON_CODE
-v 38666242 NON_CODE
-v 39387138 NON_CODE
-v 39649282 NON_CODE
-v 51970050 NON_CODE
-v 52363266 NON_CODE
-v 65538 NON_IF
-v 2686978 NON_IF
-v 4653058 NON_IF
-v 12976130 NON_IF
-v 16187394 NON_IF
-v 20119554 NON_IF
-v 26214402 NON_IF
-v 27066370 NON_IF
-v 27328514 NON_IF
-v 28573698 NON_IF
-v 29687810 NON_IF
-v 30539778 NON_ELSE
-v 33423362 NON_IF
-v 35520514 NON_IF
-v 38141954 NON_IF
-v 38207490 NON_IF
-v 39321602 NON_IF
-v 51904514 NON_IF
-e 131074 65538 ba
-e 3080194 65538 ba
-e 4915202 65538 ba
-e 14614530 65538 ba
-e 16973826 65538 ba
-e 20840450 65538 ba
-e 25296897 65538 b
-e 25493504 65538 a
-e 25755650 65538 ba
-e 26279938 26214402 ba
-e 26607618 65538 ba
-e 27131906 27066370 ba
-e 27394050 27328514 ba
-e 27983874 65538 ba
-e 28704770 28573698 ba
-e 29818882 29687810 ba
-e 30670850 30539778 ba
-e 31391746 28573698 ba
-e 33554434 33423362 ba
-e 33882114 28573698 ba
-e 34996226 65538 ba
-e 35586050 35520514 ba
-e 35979266 65538 ba
-e 38273026 38207490 ba
-e 38666242 65538 ba
-e 39387138 39321602 ba
-e 39649282 65538 ba
-e 51970050 51904514 ba
-e 52363266 65538 ba
-e 65538 2 ba
-e 2686978 65538 ba
-e 4653058 65538 ba
-e 12976130 65538 ba
-e 16187394 65538 ba
-e 20119554 65538 ba
-e 26214402 65538 ba
-e 27066370 65538 ba
-e 27328514 65538 ba
-e 28573698 65538 ba
-e 29687810 28573698 ba
-e 30539778 29687810 ba
-e 33423362 28573698 ba
-e 35520514 65538 ba
-e 38141954 65538 ba
-e 38207490 38141954 ba
-e 39321602 65538 ba
-e 51904514 65538 ba
+v 25755649 NON_CODE
+v 26279937 NON_CODE
+v 26607617 NON_CODE
+v 27131905 NON_CODE
+v 27394049 NON_CODE
+v 27983873 NON_CODE
+v 28704769 NON_CODE
+v 29818881 NON_CODE
+v 30670849 NON_CODE
+v 31391745 NON_CODE
+v 33554433 NON_CODE
+v 33882113 NON_CODE
+v 34996225 NON_CODE
+v 35586049 NON_CODE
+v 35979265 NON_CODE
+v 38273025 NON_CODE
+v 38666241 NON_CODE
+v 39387137 NON_CODE
+v 39649281 NON_CODE
+v 51970049 NON_CODE
+v 52363265 NON_CODE
+v 65537 NON_IF
+v 2686977 NON_IF
+v 4653057 NON_IF
+v 12976129 NON_IF
+v 16187393 NON_IF
+v 20119553 NON_IF
+v 26214401 NON_IF
+v 27066369 NON_IF
+v 27328513 NON_IF
+v 28573697 NON_IF
+v 29687809 NON_IF
+v 30539777 NON_ELSE
+v 33423361 NON_IF
+v 35520513 NON_IF
+v 38141953 NON_IF
+v 38207489 NON_IF
+v 39321601 NON_IF
+v 51904513 NON_IF
+e 131073 65537 ba
+e 3080193 65537 ba
+e 4915201 65537 ba
+e 14614529 65537 ba
+e 16973825 65537 ba
+e 20840449 65537 ba
+e 25296896 65537 b
+e 25493504 65537 a
+e 25755649 65537 ba
+e 26279937 26214401 ba
+e 26607617 65537 ba
+e 27131905 27066369 ba
+e 27394049 27328513 ba
+e 27983873 65537 ba
+e 28704769 28573697 ba
+e 29818881 29687809 ba
+e 30670849 30539777 ba
+e 31391745 28573697 ba
+e 33554433 33423361 ba
+e 33882113 28573697 ba
+e 34996225 65537 ba
+e 35586049 35520513 ba
+e 35979265 65537 ba
+e 38273025 38207489 ba
+e 38666241 65537 ba
+e 39387137 39321601 ba
+e 39649281 65537 ba
+e 51970049 51904513 ba
+e 52363265 65537 ba
+e 65537 1 ba
+e 2686977 65537 ba
+e 4653057 65537 ba
+e 12976129 65537 ba
+e 16187393 65537 ba
+e 20119553 65537 ba
+e 26214401 65537 ba
+e 27066369 65537 ba
+e 27328513 65537 ba
+e 28573697 65537 ba
+e 29687809 28573697 ba
+e 30539777 29687809 ba
+e 33423361 28573697 ba
+e 35520513 65537 ba
+e 38141953 65537 ba
+e 38207489 38141953 ba
+e 39321601 65537 ba
+e 51904513 65537 ba
 
 
 t # Marlin/example_configurations/RigidBot/Configuration.h$$$5e6580abd8a5d85ded6e6979f454b579a8a1e126
-v 2 NON_ROOT
-v 131074 NON_CODE
-v 3080194 NON_CODE
-v 4915202 NON_CODE
-v 5570561 REM_CODE
+v 1 NON_ROOT
+v 131073 NON_CODE
+v 3080193 NON_CODE
+v 4915201 NON_CODE
+v 5570560 REM_CODE
 v 5636096 ADD_CODE
-v 5767170 NON_CODE
-v 9699329 REM_CODE
+v 5767169 NON_CODE
+v 9699328 REM_CODE
 v 9830400 ADD_CODE
-v 9961474 NON_CODE
-v 10092545 REM_CODE
+v 9961473 NON_CODE
+v 10092544 REM_CODE
 v 10158080 ADD_CODE
-v 10289154 NON_CODE
-v 13303810 NON_CODE
-v 14024705 REM_CODE
+v 10289153 NON_CODE
+v 13303809 NON_CODE
+v 14024704 REM_CODE
 v 14352384 ADD_CODE
-v 15138818 NON_CODE
-v 16842754 NON_CODE
-v 17498114 NON_CODE
-v 19988481 REM_CODE
+v 15138817 NON_CODE
+v 16842753 NON_CODE
+v 17498113 NON_CODE
+v 19988480 REM_CODE
 v 20054016 ADD_CODE
-v 20185090 NON_CODE
-v 20840450 NON_CODE
-v 21495810 NON_CODE
-v 25952257 REM_CODE
+v 20185089 NON_CODE
+v 20840449 NON_CODE
+v 21495809 NON_CODE
+v 25952256 REM_CODE
 v 26148864 ADD_CODE
-v 26411010 NON_CODE
-v 26935298 NON_CODE
-v 27262978 NON_CODE
-v 27787266 NON_CODE
-v 28049410 NON_CODE
-v 28639234 NON_CODE
-v 29360130 NON_CODE
-v 30474242 NON_CODE
-v 31326210 NON_CODE
-v 32047106 NON_CODE
-v 34209794 NON_CODE
-v 34537474 NON_CODE
-v 35651586 NON_CODE
-v 36241410 NON_CODE
-v 36634626 NON_CODE
-v 37027841 REM_CODE
+v 26411009 NON_CODE
+v 26935297 NON_CODE
+v 27262977 NON_CODE
+v 27787265 NON_CODE
+v 28049409 NON_CODE
+v 28639233 NON_CODE
+v 29360129 NON_CODE
+v 30474241 NON_CODE
+v 31326209 NON_CODE
+v 32047105 NON_CODE
+v 34209793 NON_CODE
+v 34537473 NON_CODE
+v 35651585 NON_CODE
+v 36241409 NON_CODE
+v 36634625 NON_CODE
+v 37027840 REM_CODE
 v 37093376 ADD_CODE
-v 37224450 NON_CODE
-v 37355521 REM_CODE
+v 37224449 NON_CODE
+v 37355520 REM_CODE
 v 37552128 ADD_CODE
-v 37879810 NON_CODE
-v 38010881 REM_CODE
+v 37879809 NON_CODE
+v 38010880 REM_CODE
 v 38076416 ADD_CODE
-v 38207490 NON_CODE
-v 39256066 NON_CODE
-v 39649282 NON_CODE
-v 40370178 NON_CODE
+v 38207489 NON_CODE
+v 39256065 NON_CODE
+v 39649281 NON_CODE
+v 40370177 NON_CODE
 v 40632320 ADD_CODE
-v 40960002 NON_CODE
-v 42401793 REM_CODE
+v 40960001 NON_CODE
+v 42401792 REM_CODE
 v 42532864 ADD_CODE
-v 42663938 NON_CODE
-v 53084162 NON_CODE
-v 53477378 NON_CODE
-v 65538 NON_IF
-v 2686978 NON_IF
-v 4653058 NON_IF
-v 13238274 NON_IF
-v 16711682 NON_IF
-v 20709377 REM_IF
+v 42663937 NON_CODE
+v 53084161 NON_CODE
+v 53477377 NON_CODE
+v 65537 NON_IF
+v 2686977 NON_IF
+v 4653057 NON_IF
+v 13238273 NON_IF
+v 16711681 NON_IF
+v 20709376 REM_IF
 v 20774912 ADD_IF
-v 26869762 NON_IF
-v 27721730 NON_IF
-v 27983874 NON_IF
-v 29229058 NON_IF
-v 30343170 NON_IF
-v 31195138 NON_ELSE
-v 34078722 NON_IF
-v 36175874 NON_IF
-v 39124994 NON_IF
-v 39190530 NON_IF
-v 40304642 NON_IF
-v 53018626 NON_IF
-e 131074 65538 ba
-e 3080194 65538 ba
-e 4915202 65538 ba
-e 5570561 65538 b
-e 5636096 65538 a
-e 5767170 65538 ba
-e 9699329 65538 b
-e 9830400 65538 a
-e 9961474 65538 ba
-e 10092545 65538 b
-e 10158080 65538 a
-e 10289154 65538 ba
-e 13303810 13238274 ba
-e 14024705 13238274 b
-e 14352384 13238274 a
-e 15138818 65538 ba
-e 16842754 16711682 ba
-e 17498114 65538 ba
-e 19988481 65538 b
-e 20054016 65538 a
-e 20185090 65538 ba
-e 20840450 20709377 b
-e 20840450 20774912 a
-e 21495810 65538 ba
-e 25952257 65538 b
-e 26148864 65538 a
-e 26411010 65538 ba
-e 26935298 26869762 ba
-e 27262978 65538 ba
-e 27787266 27721730 ba
-e 28049410 27983874 ba
-e 28639234 65538 ba
-e 29360130 29229058 ba
-e 30474242 30343170 ba
-e 31326210 31195138 ba
-e 32047106 29229058 ba
-e 34209794 34078722 ba
-e 34537474 29229058 ba
-e 35651586 65538 ba
-e 36241410 36175874 ba
-e 36634626 65538 ba
-e 37027841 65538 b
-e 37093376 65538 a
-e 37224450 65538 ba
-e 37355521 65538 b
-e 37552128 65538 a
-e 37879810 65538 ba
-e 38010881 65538 b
-e 38076416 65538 a
-e 38207490 65538 ba
-e 39256066 39190530 ba
-e 39649282 65538 ba
-e 40370178 40304642 ba
-e 40632320 65538 a
-e 40960002 65538 ba
-e 42401793 65538 b
-e 42532864 65538 a
-e 42663938 65538 ba
-e 53084162 53018626 ba
-e 53477378 65538 ba
-e 65538 2 ba
-e 2686978 65538 ba
-e 4653058 65538 ba
-e 13238274 65538 ba
-e 16711682 65538 ba
-e 20709377 65538 b
-e 20774912 65538 a
-e 26869762 65538 ba
-e 27721730 65538 ba
-e 27983874 65538 ba
-e 29229058 65538 ba
-e 30343170 29229058 ba
-e 31195138 30343170 ba
-e 34078722 29229058 ba
-e 36175874 65538 ba
-e 39124994 65538 ba
-e 39190530 39124994 ba
-e 40304642 65538 ba
-e 53018626 65538 ba
+v 26869761 NON_IF
+v 27721729 NON_IF
+v 27983873 NON_IF
+v 29229057 NON_IF
+v 30343169 NON_IF
+v 31195137 NON_ELSE
+v 34078721 NON_IF
+v 36175873 NON_IF
+v 39124993 NON_IF
+v 39190529 NON_IF
+v 40304641 NON_IF
+v 53018625 NON_IF
+e 131073 65537 ba
+e 3080193 65537 ba
+e 4915201 65537 ba
+e 5570560 65537 b
+e 5636096 65537 a
+e 5767169 65537 ba
+e 9699328 65537 b
+e 9830400 65537 a
+e 9961473 65537 ba
+e 10092544 65537 b
+e 10158080 65537 a
+e 10289153 65537 ba
+e 13303809 13238273 ba
+e 14024704 13238273 b
+e 14352384 13238273 a
+e 15138817 65537 ba
+e 16842753 16711681 ba
+e 17498113 65537 ba
+e 19988480 65537 b
+e 20054016 65537 a
+e 20185089 65537 ba
+e 20840449 20709376 b
+e 20840449 20774912 a
+e 21495809 65537 ba
+e 25952256 65537 b
+e 26148864 65537 a
+e 26411009 65537 ba
+e 26935297 26869761 ba
+e 27262977 65537 ba
+e 27787265 27721729 ba
+e 28049409 27983873 ba
+e 28639233 65537 ba
+e 29360129 29229057 ba
+e 30474241 30343169 ba
+e 31326209 31195137 ba
+e 32047105 29229057 ba
+e 34209793 34078721 ba
+e 34537473 29229057 ba
+e 35651585 65537 ba
+e 36241409 36175873 ba
+e 36634625 65537 ba
+e 37027840 65537 b
+e 37093376 65537 a
+e 37224449 65537 ba
+e 37355520 65537 b
+e 37552128 65537 a
+e 37879809 65537 ba
+e 38010880 65537 b
+e 38076416 65537 a
+e 38207489 65537 ba
+e 39256065 39190529 ba
+e 39649281 65537 ba
+e 40370177 40304641 ba
+e 40632320 65537 a
+e 40960001 65537 ba
+e 42401792 65537 b
+e 42532864 65537 a
+e 42663937 65537 ba
+e 53084161 53018625 ba
+e 53477377 65537 ba
+e 65537 1 ba
+e 2686977 65537 ba
+e 4653057 65537 ba
+e 13238273 65537 ba
+e 16711681 65537 ba
+e 20709376 65537 b
+e 20774912 65537 a
+e 26869761 65537 ba
+e 27721729 65537 ba
+e 27983873 65537 ba
+e 29229057 65537 ba
+e 30343169 29229057 ba
+e 31195137 30343169 ba
+e 34078721 29229057 ba
+e 36175873 65537 ba
+e 39124993 65537 ba
+e 39190529 39124993 ba
+e 40304641 65537 ba
+e 53018625 65537 ba
 
 
 t # Marlin/example_configurations/RigidBot/Configuration_adv.h$$$5e6580abd8a5d85ded6e6979f454b579a8a1e126
-v 2 NON_ROOT
+v 1 NON_ROOT
 
 
 t # Marlin/cardreader.cpp$$$fe9a5a103a4eb47168242cd912ff12bdd46a6602
-v 2 NON_ROOT
-v 65538 NON_CODE
-v 655362 NON_CODE
-v 1900546 NON_CODE
-v 12713986 NON_CODE
-v 13369346 NON_CODE
-v 13631490 NON_CODE
-v 31719425 REM_CODE
+v 1 NON_ROOT
+v 65537 NON_CODE
+v 655361 NON_CODE
+v 1900545 NON_CODE
+v 12713985 NON_CODE
+v 13369345 NON_CODE
+v 13631489 NON_CODE
+v 31719424 REM_CODE
 v 31850496 ADD_CODE
-v 31981570 NON_CODE
-v 524290 NON_IF
-v 1638402 NON_IF
-v 8585218 NON_IF
-v 12976130 NON_IF
-v 13434882 NON_IF
-e 65538 2 ba
-e 655362 524290 ba
-e 1900546 524290 ba
-e 12713986 524290 ba
-e 13369346 524290 ba
-e 13631490 524290 ba
-e 31719425 524290 b
-e 31850496 524290 a
-e 31981570 524290 ba
-e 524290 2 ba
-e 1638402 524290 ba
-e 8585218 524290 ba
-e 12976130 524290 ba
-e 13434882 524290 ba
+v 31981569 NON_CODE
+v 524289 NON_IF
+v 1638401 NON_IF
+v 8585217 NON_IF
+v 12976129 NON_IF
+v 13434881 NON_IF
+e 65537 1 ba
+e 655361 524289 ba
+e 1900545 524289 ba
+e 12713985 524289 ba
+e 13369345 524289 ba
+e 13631489 524289 ba
+e 31719424 524289 b
+e 31850496 524289 a
+e 31981569 524289 ba
+e 524289 1 ba
+e 1638401 524289 ba
+e 8585217 524289 ba
+e 12976129 524289 ba
+e 13434881 524289 ba
 
 
 t # Marlin/SanityCheck.h$$$1b98577688772dc4ebae5469b918f00bb215d325
-v 2 NON_ROOT
-v 65538 NON_CODE
-v 458754 NON_CODE
-v 1048578 NON_CODE
-v 2031618 NON_CODE
-v 3014658 NON_CODE
-v 3473410 NON_CODE
-v 5242882 NON_CODE
-v 6422530 NON_CODE
-v 6881282 NON_CODE
-v 7340034 NON_CODE
-v 8323074 NON_CODE
-v 13893634 NON_CODE
-v 14352386 NON_CODE
-v 15859714 NON_CODE
-v 16318466 NON_CODE
-v 17301506 NON_CODE
-v 18546690 NON_CODE
-v 22151170 NON_CODE
+v 1 NON_ROOT
+v 65537 NON_CODE
+v 458753 NON_CODE
+v 1048577 NON_CODE
+v 2031617 NON_CODE
+v 3014657 NON_CODE
+v 3473409 NON_CODE
+v 5242881 NON_CODE
+v 6422529 NON_CODE
+v 6881281 NON_CODE
+v 7340033 NON_CODE
+v 8323073 NON_CODE
+v 13893633 NON_CODE
+v 14352385 NON_CODE
+v 15859713 NON_CODE
+v 16318465 NON_CODE
+v 17301505 NON_CODE
+v 18546689 NON_CODE
+v 22151169 NON_CODE
 v 24248320 ADD_CODE
 v 24510464 ADD_CODE
-v 393218 NON_IF
-v 786434 NON_IF
-v 1245186 NON_IF
-v 2228226 NON_IF
-v 3211266 NON_IF
-v 3670018 NON_IF
-v 5439490 NON_IF
-v 5636098 NON_IF
-v 6619138 NON_IF
-v 7077890 NON_IF
-v 7536642 NON_IF
-v 8519682 NON_IF
-v 14090242 NON_IF
-v 14548994 NON_IF
-v 16056322 NON_IF
-v 16515074 NON_IF
-v 17498114 NON_IF
-v 18284546 NON_IF
-v 18743298 NON_IF
-v 20578306 NON_IF
-v 20971522 NON_IF
-v 21495810 NON_IF
-v 22347778 NON_IF
-v 22609922 NON_IF
-v 22872066 NON_IF
-v 23134210 NON_IF
-v 23396354 NON_IF
-v 23658498 NON_IF
-v 23920642 NON_IF
+v 393217 NON_IF
+v 786433 NON_IF
+v 1245185 NON_IF
+v 2228225 NON_IF
+v 3211265 NON_IF
+v 3670017 NON_IF
+v 5439489 NON_IF
+v 5636097 NON_IF
+v 6619137 NON_IF
+v 7077889 NON_IF
+v 7536641 NON_IF
+v 8519681 NON_IF
+v 14090241 NON_IF
+v 14548993 NON_IF
+v 16056321 NON_IF
+v 16515073 NON_IF
+v 17498113 NON_IF
+v 18284545 NON_IF
+v 18743297 NON_IF
+v 20578305 NON_IF
+v 20971521 NON_IF
+v 21495809 NON_IF
+v 22347777 NON_IF
+v 22609921 NON_IF
+v 22872065 NON_IF
+v 23134209 NON_IF
+v 23396353 NON_IF
+v 23658497 NON_IF
+v 23920641 NON_IF
 v 24182784 ADD_IF
 v 24444928 ADD_IF
-e 65538 2 ba
-e 458754 393218 ba
-e 1048578 393218 ba
-e 2031618 393218 ba
-e 3014658 393218 ba
-e 3473410 393218 ba
-e 5242882 393218 ba
-e 6422530 393218 ba
-e 6881282 393218 ba
-e 7340034 393218 ba
-e 8323074 393218 ba
-e 13893634 393218 ba
-e 14352386 393218 ba
-e 15859714 393218 ba
-e 16318466 393218 ba
-e 17301506 393218 ba
-e 18546690 393218 ba
-e 22151170 393218 ba
+e 65537 1 ba
+e 458753 393217 ba
+e 1048577 393217 ba
+e 2031617 393217 ba
+e 3014657 393217 ba
+e 3473409 393217 ba
+e 5242881 393217 ba
+e 6422529 393217 ba
+e 6881281 393217 ba
+e 7340033 393217 ba
+e 8323073 393217 ba
+e 13893633 393217 ba
+e 14352385 393217 ba
+e 15859713 393217 ba
+e 16318465 393217 ba
+e 17301505 393217 ba
+e 18546689 393217 ba
+e 22151169 393217 ba
 e 24248320 24182784 a
 e 24510464 24444928 a
-e 393218 2 ba
-e 786434 393218 ba
-e 1245186 393218 ba
-e 2228226 393218 ba
-e 3211266 393218 ba
-e 3670018 393218 ba
-e 5439490 393218 ba
-e 5636098 393218 ba
-e 6619138 393218 ba
-e 7077890 393218 ba
-e 7536642 393218 ba
-e 8519682 393218 ba
-e 14090242 393218 ba
-e 14548994 393218 ba
-e 16056322 393218 ba
-e 16515074 393218 ba
-e 17498114 393218 ba
-e 18284546 393218 ba
-e 18743298 393218 ba
-e 20578306 393218 ba
-e 20971522 393218 ba
-e 21495810 393218 ba
-e 22347778 393218 ba
-e 22609922 393218 ba
-e 22872066 393218 ba
-e 23134210 393218 ba
-e 23396354 393218 ba
-e 23658498 393218 ba
-e 23920642 393218 ba
-e 24182784 393218 a
-e 24444928 393218 a
+e 393217 1 ba
+e 786433 393217 ba
+e 1245185 393217 ba
+e 2228225 393217 ba
+e 3211265 393217 ba
+e 3670017 393217 ba
+e 5439489 393217 ba
+e 5636097 393217 ba
+e 6619137 393217 ba
+e 7077889 393217 ba
+e 7536641 393217 ba
+e 8519681 393217 ba
+e 14090241 393217 ba
+e 14548993 393217 ba
+e 16056321 393217 ba
+e 16515073 393217 ba
+e 17498113 393217 ba
+e 18284545 393217 ba
+e 18743297 393217 ba
+e 20578305 393217 ba
+e 20971521 393217 ba
+e 21495809 393217 ba
+e 22347777 393217 ba
+e 22609921 393217 ba
+e 22872065 393217 ba
+e 23134209 393217 ba
+e 23396353 393217 ba
+e 23658497 393217 ba
+e 23920641 393217 ba
+e 24182784 393217 a
+e 24444928 393217 a
 
 
 t # Marlin/pins_OMCA_A.h$$$afb8275528815a23a9946ee36e7336169d948dca
-v 2 NON_ROOT
-v 65538 NON_CODE
-v 2293762 NON_CODE
-v 2490369 REM_CODE
+v 1 NON_ROOT
+v 65537 NON_CODE
+v 2293761 NON_CODE
+v 2490368 REM_CODE
 v 2555904 ADD_CODE
-v 2686978 NON_CODE
-v 2883585 REM_CODE
+v 2686977 NON_CODE
+v 2883584 REM_CODE
 v 2949120 ADD_CODE
-v 3080194 NON_CODE
-v 3276801 REM_CODE
+v 3080193 NON_CODE
+v 3276800 REM_CODE
 v 3342336 ADD_CODE
-v 3473409 REM_CODE
+v 3473408 REM_CODE
 v 3670016 ADD_CODE
-v 3932161 REM_CODE
+v 3932160 REM_CODE
 v 4128768 ADD_CODE
-v 4390913 REM_CODE
+v 4390912 REM_CODE
 v 4587520 ADD_CODE
-v 4849666 NON_CODE
-v 5111809 REM_CODE
+v 4849665 NON_CODE
+v 5111808 REM_CODE
 v 5177344 ADD_CODE
-v 5242882 NON_CODE
-v 5439489 REM_CODE
+v 5242881 NON_CODE
+v 5439488 REM_CODE
 v 5505024 ADD_CODE
-v 5570562 NON_CODE
-v 2031618 NON_IF
-e 65538 2 ba
-e 2293762 2 ba
-e 2490369 2 b
-e 2555904 2 a
-e 2686978 2 ba
-e 2883585 2 b
-e 2949120 2 a
-e 3080194 2 ba
-e 3276801 2 b
-e 3342336 2 a
-e 3473409 2 b
-e 3670016 2 a
-e 3932161 2 b
-e 4128768 2 a
-e 4390913 2 b
-e 4587520 2 a
-e 4849666 2 ba
-e 5111809 2 b
-e 5177344 2 a
-e 5242882 2 ba
-e 5439489 2 b
-e 5505024 2 a
-e 5570562 2 ba
-e 2031618 2 ba
+v 5570561 NON_CODE
+v 2031617 NON_IF
+e 65537 1 ba
+e 2293761 1 ba
+e 2490368 1 b
+e 2555904 1 a
+e 2686977 1 ba
+e 2883584 1 b
+e 2949120 1 a
+e 3080193 1 ba
+e 3276800 1 b
+e 3342336 1 a
+e 3473408 1 b
+e 3670016 1 a
+e 3932160 1 b
+e 4128768 1 a
+e 4390912 1 b
+e 4587520 1 a
+e 4849665 1 ba
+e 5111808 1 b
+e 5177344 1 a
+e 5242881 1 ba
+e 5439488 1 b
+e 5505024 1 a
+e 5570561 1 ba
+e 2031617 1 ba
 
 
 t # Marlin/Conditionals.h$$$d3fe3a0962fdbdcd9548abaf765e0cff72d9cf8d
-v 2 NON_ROOT
-v 65538 NON_CODE
-v 851970 NON_CODE
-v 2818050 NON_CODE
-v 5636098 NON_CODE
-v 6488066 NON_CODE
-v 7995394 NON_CODE
-v 8847362 NON_CODE
-v 12976130 NON_CODE
-v 14221314 NON_CODE
-v 14745602 NON_CODE
-v 16121858 NON_CODE
-v 17104898 NON_CODE
-v 18284546 NON_CODE
-v 19005442 NON_CODE
-v 19529730 NON_CODE
-v 20185090 NON_CODE
-v 21233665 REM_CODE
+v 1 NON_ROOT
+v 65537 NON_CODE
+v 851969 NON_CODE
+v 2818049 NON_CODE
+v 5636097 NON_CODE
+v 6488065 NON_CODE
+v 7995393 NON_CODE
+v 8847361 NON_CODE
+v 12976129 NON_CODE
+v 14221313 NON_CODE
+v 14745601 NON_CODE
+v 16121857 NON_CODE
+v 17104897 NON_CODE
+v 18284545 NON_CODE
+v 19005441 NON_CODE
+v 19529729 NON_CODE
+v 20185089 NON_CODE
+v 21233664 REM_CODE
 v 21299200 ADD_CODE
-v 21495810 NON_CODE
-v 21692418 NON_CODE
-v 21889026 NON_CODE
-v 22085634 NON_CODE
-v 22282242 NON_CODE
-v 22675458 NON_CODE
-v 22806530 NON_CODE
-v 22937602 NON_CODE
-v 23134210 NON_CODE
-v 23461890 NON_CODE
-v 23592962 NON_CODE
-v 23789570 NON_CODE
-v 24117250 NON_CODE
-v 24248322 NON_CODE
-v 24444930 NON_CODE
-v 24772610 NON_CODE
-v 24903682 NON_CODE
-v 25100290 NON_CODE
-v 25427970 NON_CODE
-v 25559042 NON_CODE
-v 25755650 NON_CODE
-v 26017794 NON_CODE
-v 26279938 NON_CODE
-v 26411010 NON_CODE
-v 26542082 NON_CODE
-v 26673154 NON_CODE
-v 26869762 NON_CODE
-v 32505858 NON_CODE
-v 32636930 NON_CODE
-v 32768002 NON_CODE
-v 33095682 NON_CODE
-v 33226754 NON_CODE
-v 33423362 NON_CODE
-v 33619970 NON_CODE
-v 33816578 NON_CODE
-v 34078722 NON_CODE
-v 34275330 NON_CODE
-v 34471938 NON_CODE
-v 34668546 NON_CODE
-v 327682 NON_IF
-v 458754 NON_IF
-v 720898 NON_IF
-v 1114114 NON_IF
-v 1638402 NON_IF
-v 2883586 NON_IF
-v 3276802 NON_IF
-v 3604482 NON_IF
-v 3997698 NON_IF
-v 4325378 NON_IF
-v 4653058 NON_IF
-v 5111810 NON_IF
-v 5898242 NON_IF
-v 6553602 NON_IF
-v 8060930 NON_IF
-v 9175042 NON_IF
-v 9568258 NON_IF
-v 11075586 NON_IF
-v 13172738 NON_IF
-v 13434882 NON_IF
-v 14090242 NON_ELSE
-v 14483458 NON_IF
-v 15073282 NON_IF
-v 16777218 NON_IF
-v 17301506 NON_IF
-v 18481154 NON_IF
-v 19333122 NON_IF
-v 19791874 NON_IF
-v 20840450 NON_IF
-v 21168130 NON_IF
-v 21626882 NON_IF
-v 21823490 NON_IF
-v 22020098 NON_ELIF
-v 22609922 NON_IF
-v 22740994 NON_ELIF
-v 22872066 NON_ELIF
-v 23068674 NON_ELIF
-v 23396354 NON_IF
-v 23527426 NON_ELIF
-v 23724034 NON_ELIF
-v 24051714 NON_IF
-v 24182786 NON_ELIF
-v 24379394 NON_ELIF
-v 24707074 NON_IF
-v 24838146 NON_ELIF
-v 25034754 NON_ELIF
-v 25362434 NON_IF
-v 25493506 NON_ELIF
-v 25690114 NON_ELIF
-v 26214402 NON_IF
-v 26345474 NON_ELIF
-v 26476546 NON_ELIF
-v 26607618 NON_ELSE
-v 32440322 NON_IF
-v 32571394 NON_IF
-v 32702466 NON_IF
-v 33030146 NON_IF
-v 33161218 NON_ELSE
-v 33357826 NON_IF
-v 33554434 NON_IF
-v 33947650 NON_IF
-v 34013186 NON_IF
-v 34209794 NON_IF
-v 34406402 NON_IF
-v 34603010 NON_IF
-e 65538 2 ba
-e 851970 720898 ba
-e 2818050 720898 ba
-e 5636098 720898 ba
-e 6488066 720898 ba
-e 7995394 720898 ba
-e 8847362 720898 ba
-e 12976130 720898 ba
-e 14221314 14090242 ba
-e 14745602 14090242 ba
-e 16121858 14090242 ba
-e 17104898 14090242 ba
-e 18284546 14090242 ba
-e 19005442 14090242 ba
-e 19529730 14090242 ba
-e 20185090 14090242 ba
-e 21233665 21168130 b
-e 21299200 21168130 a
-e 21495810 14090242 ba
-e 21692418 21626882 ba
-e 21889026 21823490 ba
-e 22085634 22020098 ba
-e 22282242 14090242 ba
-e 22675458 22609922 ba
-e 22806530 22740994 ba
-e 22937602 22872066 ba
-e 23134210 23068674 ba
-e 23461890 23396354 ba
-e 23592962 23527426 ba
-e 23789570 23724034 ba
-e 24117250 24051714 ba
-e 24248322 24182786 ba
-e 24444930 24379394 ba
-e 24772610 24707074 ba
-e 24903682 24838146 ba
-e 25100290 25034754 ba
-e 25427970 25362434 ba
-e 25559042 25493506 ba
-e 25755650 25690114 ba
-e 26017794 14090242 ba
-e 26279938 26214402 ba
-e 26411010 26345474 ba
-e 26542082 26476546 ba
-e 26673154 26607618 ba
-e 26869762 14090242 ba
-e 32505858 32440322 ba
-e 32636930 32571394 ba
-e 32768002 32702466 ba
-e 33095682 33030146 ba
-e 33226754 33161218 ba
-e 33423362 33357826 ba
-e 33619970 33554434 ba
-e 33816578 14090242 ba
-e 34078722 34013186 ba
-e 34275330 34209794 ba
-e 34471938 34406402 ba
-e 34668546 34603010 ba
-e 327682 2 ba
-e 458754 327682 ba
-e 720898 327682 ba
-e 1114114 720898 ba
-e 1638402 720898 ba
-e 2883586 720898 ba
-e 3276802 720898 ba
-e 3604482 720898 ba
-e 3997698 720898 ba
-e 4325378 720898 ba
-e 4653058 720898 ba
-e 5111810 720898 ba
-e 5898242 720898 ba
-e 6553602 720898 ba
-e 8060930 720898 ba
-e 9175042 720898 ba
-e 9568258 720898 ba
-e 11075586 720898 ba
-e 13172738 720898 ba
-e 13434882 720898 ba
-e 14090242 720898 ba
-e 14483458 14090242 ba
-e 15073282 14090242 ba
-e 16777218 14090242 ba
-e 17301506 14090242 ba
-e 18481154 14090242 ba
-e 19333122 14090242 ba
-e 19791874 14090242 ba
-e 20840450 14090242 ba
-e 21168130 14090242 ba
-e 21626882 14090242 ba
-e 21823490 14090242 ba
-e 22020098 21823490 ba
-e 22609922 14090242 ba
-e 22740994 22609922 ba
-e 22872066 22740994 ba
-e 23068674 22872066 ba
-e 23396354 14090242 ba
-e 23527426 23396354 ba
-e 23724034 23527426 ba
-e 24051714 14090242 ba
-e 24182786 24051714 ba
-e 24379394 24182786 ba
-e 24707074 14090242 ba
-e 24838146 24707074 ba
-e 25034754 24838146 ba
-e 25362434 14090242 ba
-e 25493506 25362434 ba
-e 25690114 25493506 ba
-e 26214402 14090242 ba
-e 26345474 26214402 ba
-e 26476546 26345474 ba
-e 26607618 26476546 ba
-e 32440322 14090242 ba
-e 32571394 32440322 ba
-e 32702466 32571394 ba
-e 33030146 14090242 ba
-e 33161218 33030146 ba
-e 33357826 14090242 ba
-e 33554434 14090242 ba
-e 33947650 14090242 ba
-e 34013186 33947650 ba
-e 34209794 33947650 ba
-e 34406402 33947650 ba
-e 34603010 33947650 ba
\ No newline at end of file
+v 21495809 NON_CODE
+v 21692417 NON_CODE
+v 21889025 NON_CODE
+v 22085633 NON_CODE
+v 22282241 NON_CODE
+v 22675457 NON_CODE
+v 22806529 NON_CODE
+v 22937601 NON_CODE
+v 23134209 NON_CODE
+v 23461889 NON_CODE
+v 23592961 NON_CODE
+v 23789569 NON_CODE
+v 24117249 NON_CODE
+v 24248321 NON_CODE
+v 24444929 NON_CODE
+v 24772609 NON_CODE
+v 24903681 NON_CODE
+v 25100289 NON_CODE
+v 25427969 NON_CODE
+v 25559041 NON_CODE
+v 25755649 NON_CODE
+v 26017793 NON_CODE
+v 26279937 NON_CODE
+v 26411009 NON_CODE
+v 26542081 NON_CODE
+v 26673153 NON_CODE
+v 26869761 NON_CODE
+v 32505857 NON_CODE
+v 32636929 NON_CODE
+v 32768001 NON_CODE
+v 33095681 NON_CODE
+v 33226753 NON_CODE
+v 33423361 NON_CODE
+v 33619969 NON_CODE
+v 33816577 NON_CODE
+v 34078721 NON_CODE
+v 34275329 NON_CODE
+v 34471937 NON_CODE
+v 34668545 NON_CODE
+v 327681 NON_IF
+v 458753 NON_IF
+v 720897 NON_IF
+v 1114113 NON_IF
+v 1638401 NON_IF
+v 2883585 NON_IF
+v 3276801 NON_IF
+v 3604481 NON_IF
+v 3997697 NON_IF
+v 4325377 NON_IF
+v 4653057 NON_IF
+v 5111809 NON_IF
+v 5898241 NON_IF
+v 6553601 NON_IF
+v 8060929 NON_IF
+v 9175041 NON_IF
+v 9568257 NON_IF
+v 11075585 NON_IF
+v 13172737 NON_IF
+v 13434881 NON_IF
+v 14090241 NON_ELSE
+v 14483457 NON_IF
+v 15073281 NON_IF
+v 16777217 NON_IF
+v 17301505 NON_IF
+v 18481153 NON_IF
+v 19333121 NON_IF
+v 19791873 NON_IF
+v 20840449 NON_IF
+v 21168129 NON_IF
+v 21626881 NON_IF
+v 21823489 NON_IF
+v 22020097 NON_ELIF
+v 22609921 NON_IF
+v 22740993 NON_ELIF
+v 22872065 NON_ELIF
+v 23068673 NON_ELIF
+v 23396353 NON_IF
+v 23527425 NON_ELIF
+v 23724033 NON_ELIF
+v 24051713 NON_IF
+v 24182785 NON_ELIF
+v 24379393 NON_ELIF
+v 24707073 NON_IF
+v 24838145 NON_ELIF
+v 25034753 NON_ELIF
+v 25362433 NON_IF
+v 25493505 NON_ELIF
+v 25690113 NON_ELIF
+v 26214401 NON_IF
+v 26345473 NON_ELIF
+v 26476545 NON_ELIF
+v 26607617 NON_ELSE
+v 32440321 NON_IF
+v 32571393 NON_IF
+v 32702465 NON_IF
+v 33030145 NON_IF
+v 33161217 NON_ELSE
+v 33357825 NON_IF
+v 33554433 NON_IF
+v 33947649 NON_IF
+v 34013185 NON_IF
+v 34209793 NON_IF
+v 34406401 NON_IF
+v 34603009 NON_IF
+e 65537 1 ba
+e 851969 720897 ba
+e 2818049 720897 ba
+e 5636097 720897 ba
+e 6488065 720897 ba
+e 7995393 720897 ba
+e 8847361 720897 ba
+e 12976129 720897 ba
+e 14221313 14090241 ba
+e 14745601 14090241 ba
+e 16121857 14090241 ba
+e 17104897 14090241 ba
+e 18284545 14090241 ba
+e 19005441 14090241 ba
+e 19529729 14090241 ba
+e 20185089 14090241 ba
+e 21233664 21168129 b
+e 21299200 21168129 a
+e 21495809 14090241 ba
+e 21692417 21626881 ba
+e 21889025 21823489 ba
+e 22085633 22020097 ba
+e 22282241 14090241 ba
+e 22675457 22609921 ba
+e 22806529 22740993 ba
+e 22937601 22872065 ba
+e 23134209 23068673 ba
+e 23461889 23396353 ba
+e 23592961 23527425 ba
+e 23789569 23724033 ba
+e 24117249 24051713 ba
+e 24248321 24182785 ba
+e 24444929 24379393 ba
+e 24772609 24707073 ba
+e 24903681 24838145 ba
+e 25100289 25034753 ba
+e 25427969 25362433 ba
+e 25559041 25493505 ba
+e 25755649 25690113 ba
+e 26017793 14090241 ba
+e 26279937 26214401 ba
+e 26411009 26345473 ba
+e 26542081 26476545 ba
+e 26673153 26607617 ba
+e 26869761 14090241 ba
+e 32505857 32440321 ba
+e 32636929 32571393 ba
+e 32768001 32702465 ba
+e 33095681 33030145 ba
+e 33226753 33161217 ba
+e 33423361 33357825 ba
+e 33619969 33554433 ba
+e 33816577 14090241 ba
+e 34078721 34013185 ba
+e 34275329 34209793 ba
+e 34471937 34406401 ba
+e 34668545 34603009 ba
+e 327681 1 ba
+e 458753 327681 ba
+e 720897 327681 ba
+e 1114113 720897 ba
+e 1638401 720897 ba
+e 2883585 720897 ba
+e 3276801 720897 ba
+e 3604481 720897 ba
+e 3997697 720897 ba
+e 4325377 720897 ba
+e 4653057 720897 ba
+e 5111809 720897 ba
+e 5898241 720897 ba
+e 6553601 720897 ba
+e 8060929 720897 ba
+e 9175041 720897 ba
+e 9568257 720897 ba
+e 11075585 720897 ba
+e 13172737 720897 ba
+e 13434881 720897 ba
+e 14090241 720897 ba
+e 14483457 14090241 ba
+e 15073281 14090241 ba
+e 16777217 14090241 ba
+e 17301505 14090241 ba
+e 18481153 14090241 ba
+e 19333121 14090241 ba
+e 19791873 14090241 ba
+e 20840449 14090241 ba
+e 21168129 14090241 ba
+e 21626881 14090241 ba
+e 21823489 14090241 ba
+e 22020097 21823489 ba
+e 22609921 14090241 ba
+e 22740993 22609921 ba
+e 22872065 22740993 ba
+e 23068673 22872065 ba
+e 23396353 14090241 ba
+e 23527425 23396353 ba
+e 23724033 23527425 ba
+e 24051713 14090241 ba
+e 24182785 24051713 ba
+e 24379393 24182785 ba
+e 24707073 14090241 ba
+e 24838145 24707073 ba
+e 25034753 24838145 ba
+e 25362433 14090241 ba
+e 25493505 25362433 ba
+e 25690113 25493505 ba
+e 26214401 14090241 ba
+e 26345473 26214401 ba
+e 26476545 26345473 ba
+e 26607617 26476545 ba
+e 32440321 14090241 ba
+e 32571393 32440321 ba
+e 32702465 32571393 ba
+e 33030145 14090241 ba
+e 33161217 33030145 ba
+e 33357825 14090241 ba
+e 33554433 14090241 ba
+e 33947649 14090241 ba
+e 34013185 33947649 ba
+e 34209793 33947649 ba
+e 34406401 33947649 ba
+e 34603009 33947649 ba
diff --git a/src/test/resources/serialize/expected.tex b/src/test/resources/serialize/expected.tex
index 1d957e43f..528ea4595 100644
--- a/src/test/resources/serialize/expected.tex
+++ b/src/test/resources/serialize/expected.tex
@@ -1,40 +1,40 @@
 \begin{tikzpicture}
-	\coordinate (149) at (1.75,0.25);
+	\coordinate (144) at (1.75,0.25);
 	\coordinate (592) at (1.75,1.25);
-	\coordinate (900) at (0.375,2.25);
+	\coordinate (899) at (0.375,2.25);
 	\coordinate (3200) at (1.375,2.25);
-	\coordinate (3284) at (1.375,3.25);
+	\coordinate (3283) at (1.375,3.25);
 	\coordinate (8192) at (2.9306,2.25);
-	\coordinate (8276) at (2.6667,3.25);
+	\coordinate (8275) at (2.6667,3.25);
 
-	\node[annotation, non] (node_149) at (149) {};
-	\node[textbox] at (149) {\verb|1|};
+	\node[annotation, non] (node_144) at (144) {};
+	\node[textbox] at (144) {\verb|1|};
 
 	\node[annotation, non] (node_592) at (592) {};
 	\node[textbox] at (592) {\verb|8|};
 
-	\node[artefact, add] (node_900) at (900) {};
-	\node[textbox] at (900) {\verb|13|};
+	\node[artifact, add] (node_899) at (899) {};
+	\node[textbox] at (899) {\verb|13|};
 
 	\node[annotation, add] (node_3200) at (3200) {};
 	\node[textbox] at (3200) {\verb|49|};
 
-	\node[artefact, non] (node_3284) at (3284) {};
-	\node[textbox] at (3284) {\verb|50|};
+	\node[artifact, non] (node_3283) at (3283) {};
+	\node[textbox] at (3283) {\verb|50|};
 
 	\node[annotation, add] (node_8192) at (8192) {};
 	\node[textbox] at (8192) {\verb|127|};
 
-	\node[artefact, non] (node_8276) at (8276) {};
-	\node[textbox] at (8276) {\verb|128|};
+	\node[artifact, non] (node_8275) at (8275) {};
+	\node[textbox] at (8275) {\verb|128|};
 
 	\draw[vtdarrow]
-		(node_592) edge[before] (node_149)
-		(node_592) edge[after] (node_149)
-		(node_900) edge[after] (node_592)
+		(node_592) edge[before] (node_144)
+		(node_592) edge[after] (node_144)
+		(node_899) edge[after] (node_592)
 		(node_3200) edge[after] (node_592)
-		(node_3284) edge[after] (node_3200)
+		(node_3283) edge[after] (node_3200)
 		(node_8192) edge[after] (node_592)
-		(node_8276) edge[before] (node_592)
-		(node_8276) edge[after] (node_8192);
+		(node_8275) edge[before] (node_592)
+		(node_8275) edge[after] (node_8192);
 \end{tikzpicture}
diff --git a/src/test/resources/serialize/testcase.lg b/src/test/resources/serialize/testcase.lg
index 0b20a7ee3..d07223927 100644
--- a/src/test/resources/serialize/testcase.lg
+++ b/src/test/resources/serialize/testcase.lg
@@ -1,15 +1,15 @@
 t # extract/of/thirdparty/vulkan/include/vulkan/vulkan_structs.hpp$$$fd641ac85c6170c34845db5e345d3bf9cedce8d7
-v 149 NON_ROOT_""
+v 144 NON_ROOT_""
 v 592 NON_IF_"if -VULKAN_STRUCTS_HPP"
-v 900 ADD_CODE_""
+v 899 ADD_CODE_""
 v 3200 ADD_IF_"if -VULKAN_HPP_NO_STRUCT_SETTERS"
-v 3284 NON_CODE_""
+v 3283 NON_CODE_""
 v 8192 ADD_IF_"if -VULKAN_HPP_NO_UNION_CONSTRUCTORS"
-v 8276 NON_CODE_""
-e 592 149 ba
-e 900 592 a
+v 8275 NON_CODE_""
+e 592 144 ba
+e 899 592 a
 e 3200 592 a
-e 3284 3200 a
+e 3283 3200 a
 e 8192 592 a
-e 8276 592 b
-e 8276 8192 a
+e 8275 592 b
+e 8275 8192 a
