import kotlin.String
import kotlin.collections.List

object Day19 {
    private const val MIN_STATES = 1L
    private const val MAX_STATES = 4000L
    private const val ACCEPTED_STATE = "A"
    private const val REJECTED_STATE = "R"
    private const val START_STATE = "in"

    data class Part(val ratings: Map<String, Int>) {
        companion object {
            fun parse(input: String): Part {
                val ratings = input.drop(1).dropLast(1).split(",").map {
                    val (id, rating) = it.split("=")
                    id to rating.toInt()
                }.toMap()
                return Part(ratings)
            }
        }

        fun score(): Int = ratings.values.sum()
    }

    data class Rule(val key: String, val op: String, val value: Int, val nextState: String) {
        fun inverse(): Rule {
            val inverseOp = when (op) {
                "<" -> ">="
                ">" -> "<="
                else -> throw IllegalArgumentException("Cannot inverse op $op")
            }
            return Rule(key, inverseOp, value, nextState)
        }
    }

    data class Condition(val key: String, val op: String, val value: Int) {
        fun toMinAndMax(): MinAndMax {
            return when (op) {
                "<" -> MinAndMax(MIN_STATES, value.toLong() - 1, key)
                "<=" -> MinAndMax(MIN_STATES, value.toLong(), key)
                ">" -> MinAndMax(value.toLong() + 1, MAX_STATES, key)
                ">=" -> MinAndMax(value.toLong(), MAX_STATES, key)
                else -> throw IllegalArgumentException("Cannot inverse op $op")
            }
        }
    }

    data class CompositeCondition(val conditions: List<Condition>, val nextState: String)

    data class PathFinder(val jobs: Map<String, Job>) {
        fun findPathsToRejectedState(): List<Path> {
            val startJob = jobs[START_STATE]!!
            val paths = mutableListOf<Path>()
            paths.addAll(startJob.conditionsLeadingToRejectedState().map { Path(listOf(it)) })
            val nextStates = ArrayDeque(
                startJob.nonTerminalConditions()
                    .map { it to Path(listOf(it)) })
            while (nextStates.isNotEmpty()) {
                val (nextRule, runningPath) = nextStates.removeFirst()
                val nextJob = jobs[nextRule.nextState]!!
                val failureStates = nextJob.conditionsLeadingToRejectedState()
                val failedPaths = failureStates.map { runningPath.with(it) }
                paths.addAll(failedPaths)
                val nonTerminalStates = nextJob.nonTerminalConditions()
                nextStates.addAll(nonTerminalStates.map { it to runningPath.with(it) })
            }
            return paths
        }
    }

    data class Path(val compositeConditions: List<CompositeCondition>) {
        fun with(compositeCondition: CompositeCondition): Path {
            return Path(compositeConditions + compositeCondition)
        }
    }

    data class Job(
        val id: String,
        val rules: List<Pair<(Part) -> Boolean, String>>,
        val endState: String,
        val rawRules: List<Rule>
    ) {

        fun evaluate(part: Part): String {
            return rules.find { (rule, _) -> rule(part) }?.second ?: endState
        }

        fun conditionsLeadingToRejectedState(): List<CompositeCondition> {
            val rejectedRules = mutableListOf<CompositeCondition>()
            if (endState == REJECTED_STATE) {
                val endStateCompositeCondition =
                    CompositeCondition(
                        rawRules.map { it.inverse() }.map { Condition(it.key, it.op, it.value) },
                        REJECTED_STATE
                    )
                rejectedRules.add(endStateCompositeCondition)
            }
            rejectedRules.addAll(rawRules.withIndex().filter { (_, rule) -> rule.nextState == REJECTED_STATE }
                .map { (idx, rule) ->
                    val inversedPreceedingRules =
                        rawRules.subList(0, idx).map { it.inverse() }.map { Condition(it.key, it.op, it.value) }
                    val thisRule = listOf(Condition(rule.key, rule.op, rule.value))
                    CompositeCondition(inversedPreceedingRules + thisRule, rule.nextState)
                })
            return rejectedRules
        }

        fun nonTerminalConditions(): List<CompositeCondition> {
            val nonAcceptedNorRejectedConditions = mutableListOf<CompositeCondition>()
            if (endState != ACCEPTED_STATE && endState != REJECTED_STATE) {
                val endStateCompositeCondition =
                    CompositeCondition(
                        rawRules.map { it.inverse() }.map { Condition(it.key, it.op, it.value) },
                        endState
                    )
                nonAcceptedNorRejectedConditions.add(endStateCompositeCondition)
            }
            nonAcceptedNorRejectedConditions.addAll(
                rawRules.withIndex()
                    .filter { (_, rule) -> rule.nextState != REJECTED_STATE && rule.nextState != ACCEPTED_STATE }
                    .map { (idx, rule) ->
                        val inversedPreceedingRules =
                            rawRules.subList(0, idx).map { it.inverse() }.map { Condition(it.key, it.op, it.value) }
                        val thisRule = listOf(Condition(rule.key, rule.op, rule.value))
                        CompositeCondition(inversedPreceedingRules + thisRule, rule.nextState)
                    })
            return nonAcceptedNorRejectedConditions
        }

        companion object {
            fun parse(input: String): Job {
                val curlyIndex = input.indexOf("{")
                val id = input.substring(0, curlyIndex).trim()
                val rawRules = input.substring(curlyIndex).drop(1).dropLast(1)
                val lastComma = rawRules.lastIndexOf(",")
                val endState = rawRules.substring(lastComma + 1).trim()
                val ops = mapOf("<" to { part: Part, value: Int, key: String -> part.ratings[key]!! < value },
                    ">" to { part: Part, value: Int, key: String -> part.ratings[key]!! > value })
                val rules = rawRules.substring(0, lastComma).split(",").map {
                    val pattern = """(\w+)([<>])(\d+):(\w+)""".toRegex()
                    val matchResult = pattern.matchEntire(it.trim())!!
                    val (key, op, value, nextState) = matchResult.destructured
                    Rule(key, op, value.toInt(), nextState)
                }

                val rulesAsFunctions =
                    rules.map { { part: Part -> ops[it.op]!!(part, it.value, it.key) } to it.nextState }

                return Job(id, rulesAsFunctions, endState, rules)
            }
        }
    }

    data class Workflow(val jobs: Map<String, Job>) {
        fun isAccepted(part: Part): Boolean {
            val startJob = jobs[START_STATE]!!
            var state = startJob.evaluate(part)
            while (state != ACCEPTED_STATE && state != REJECTED_STATE) {
                val job = jobs[state]!!
                state = job.evaluate(part)
            }
            return state == ACCEPTED_STATE
        }
    }

    fun part1(input: List<String>): String {
        val partitionIndex = input.withIndex().find { it.value.isEmpty() }!!.index
        val jobs = input.subList(0, partitionIndex).map { Job.parse(it) }
        val parts = input.subList(partitionIndex + 1, input.size).map { Part.parse(it) }
        val workflow = Workflow(jobs.associateBy { it.id })
        return parts.filter { workflow.isAccepted(it) }.sumOf { it.score() }.toString()
    }

    data class MinAndMax(val min: Long, val max: Long, val key: String) {
        fun coerce(other: MinAndMax): MinAndMax {
            return MinAndMax(min.coerceAtLeast(other.min), max.coerceAtMost(other.max), key)
        }

        fun length(): Long = max - min + 1
    }

    fun part2(input: List<String>): String {
        val partitionIndex = input.withIndex().find { it.value.isEmpty() }!!.index
        val jobs = input.subList(0, partitionIndex).map { Job.parse(it) }
        val rejectedPaths = PathFinder(jobs.associateBy { it.id }).findPathsToRejectedState()
        val minAndMaxes: List<Map<String, MinAndMax>> = rejectedPaths
            .filter { it.compositeConditions.isNotEmpty() }
            .map { path ->
                path.compositeConditions.flatMap { it.conditions }
                    .map { it.toMinAndMax() }.groupBy { it.key }
                    .mapValues { (_, minAndMaxes) -> minAndMaxes.reduce { a, b -> a.coerce(b) } }
            }
        val possibleRejectedStates = minAndMaxes.map { minAndMax ->
            listOf("x", "m", "a", "s").map { minAndMax[it] ?: MinAndMax(1, 4000, it) }
                .map { it.length() }
                .reduce { acc, num -> acc * num }
        }.sum()
        val possibleStates = 4000L * 4000L * 4000L * 4000L
        val delta = possibleStates - possibleRejectedStates
        return delta.toString()
    }
}

Compiled from "Day19.kt"
public final class Day19$Workflow {
  private final java.util.Map<java.lang.String, Day19$Job> jobs;

  public Day19$Workflow(java.util.Map<java.lang.String, Day19$Job>);
    Code:
       0: aload_1
       1: ldc           #10                 // String jobs
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: invokespecial #19                 // Method java/lang/Object."<init>":()V
      10: aload_0
      11: aload_1
      12: putfield      #22                 // Field jobs:Ljava/util/Map;
      15: return

  public final java.util.Map<java.lang.String, Day19$Job> getJobs();
    Code:
       0: aload_0
       1: getfield      #22                 // Field jobs:Ljava/util/Map;
       4: areturn

  public final boolean isAccepted(Day19$Part);
    Code:
       0: aload_1
       1: ldc           #31                 // String part
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: getfield      #22                 // Field jobs:Ljava/util/Map;
      10: ldc           #33                 // String in
      12: invokeinterface #39,  2           // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
      17: dup
      18: invokestatic  #43                 // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
      21: checkcast     #45                 // class Day19$Job
      24: astore_2
      25: aload_2
      26: aload_1
      27: invokevirtual #49                 // Method Day19$Job.evaluate:(LDay19$Part;)Ljava/lang/String;
      30: astore_3
      31: aload_3
      32: ldc           #51                 // String A
      34: invokestatic  #55                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      37: ifne          78
      40: aload_3
      41: ldc           #57                 // String R
      43: invokestatic  #55                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      46: ifne          78
      49: aload_0
      50: getfield      #22                 // Field jobs:Ljava/util/Map;
      53: aload_3
      54: invokeinterface #39,  2           // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
      59: dup
      60: invokestatic  #43                 // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
      63: checkcast     #45                 // class Day19$Job
      66: astore        4
      68: aload         4
      70: aload_1
      71: invokevirtual #49                 // Method Day19$Job.evaluate:(LDay19$Part;)Ljava/lang/String;
      74: astore_3
      75: goto          31
      78: aload_3
      79: ldc           #51                 // String A
      81: invokestatic  #55                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      84: ireturn

  public final java.util.Map<java.lang.String, Day19$Job> component1();
    Code:
       0: aload_0
       1: getfield      #22                 // Field jobs:Ljava/util/Map;
       4: areturn

  public final Day19$Workflow copy(java.util.Map<java.lang.String, Day19$Job>);
    Code:
       0: aload_1
       1: ldc           #10                 // String jobs
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: new           #2                  // class Day19$Workflow
       9: dup
      10: aload_1
      11: invokespecial #71                 // Method "<init>":(Ljava/util/Map;)V
      14: areturn

  public static Day19$Workflow copy$default(Day19$Workflow, java.util.Map, int, java.lang.Object);
    Code:
       0: iload_2
       1: iconst_1
       2: iand
       3: ifeq          11
       6: aload_0
       7: getfield      #22                 // Field jobs:Ljava/util/Map;
      10: astore_1
      11: aload_0
      12: aload_1
      13: invokevirtual #75                 // Method copy:(Ljava/util/Map;)LDay19$Workflow;
      16: areturn

  public java.lang.String toString();
    Code:
       0: new           #79                 // class java/lang/StringBuilder
       3: dup
       4: invokespecial #80                 // Method java/lang/StringBuilder."<init>":()V
       7: ldc           #82                 // String Workflow(jobs=
       9: invokevirtual #86                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      12: aload_0
      13: getfield      #22                 // Field jobs:Ljava/util/Map;
      16: invokevirtual #89                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
      19: bipush        41
      21: invokevirtual #92                 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
      24: invokevirtual #94                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      27: areturn

  public int hashCode();
    Code:
       0: aload_0
       1: getfield      #22                 // Field jobs:Ljava/util/Map;
       4: invokevirtual #98                 // Method java/lang/Object.hashCode:()I
       7: ireturn

  public boolean equals(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: if_acmpne     7
       5: iconst_1
       6: ireturn
       7: aload_1
       8: instanceof    #2                  // class Day19$Workflow
      11: ifne          16
      14: iconst_0
      15: ireturn
      16: aload_1
      17: checkcast     #2                  // class Day19$Workflow
      20: astore_2
      21: aload_0
      22: getfield      #22                 // Field jobs:Ljava/util/Map;
      25: aload_2
      26: getfield      #22                 // Field jobs:Ljava/util/Map;
      29: invokestatic  #55                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      32: ifne          37
      35: iconst_0
      36: ireturn
      37: iconst_1
      38: ireturn
}

Compiled from "Day19.kt"
public final class Day19$MinAndMax {
  private final long min;

  private final long max;

  private final java.lang.String key;

  public Day19$MinAndMax(long, long, java.lang.String);
    Code:
       0: aload         5
       2: ldc           #9                  // String key
       4: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       7: aload_0
       8: invokespecial #18                 // Method java/lang/Object."<init>":()V
      11: aload_0
      12: lload_1
      13: putfield      #22                 // Field min:J
      16: aload_0
      17: lload_3
      18: putfield      #25                 // Field max:J
      21: aload_0
      22: aload         5
      24: putfield      #28                 // Field key:Ljava/lang/String;
      27: return

  public final long getMin();
    Code:
       0: aload_0
       1: getfield      #22                 // Field min:J
       4: lreturn

  public final long getMax();
    Code:
       0: aload_0
       1: getfield      #25                 // Field max:J
       4: lreturn

  public final java.lang.String getKey();
    Code:
       0: aload_0
       1: getfield      #28                 // Field key:Ljava/lang/String;
       4: areturn

  public final Day19$MinAndMax coerce(Day19$MinAndMax);
    Code:
       0: aload_1
       1: ldc           #39                 // String other
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: new           #2                  // class Day19$MinAndMax
       9: dup
      10: aload_0
      11: getfield      #22                 // Field min:J
      14: aload_1
      15: getfield      #22                 // Field min:J
      18: invokestatic  #45                 // Method kotlin/ranges/RangesKt.coerceAtLeast:(JJ)J
      21: aload_0
      22: getfield      #25                 // Field max:J
      25: aload_1
      26: getfield      #25                 // Field max:J
      29: invokestatic  #48                 // Method kotlin/ranges/RangesKt.coerceAtMost:(JJ)J
      32: aload_0
      33: getfield      #28                 // Field key:Ljava/lang/String;
      36: invokespecial #50                 // Method "<init>":(JJLjava/lang/String;)V
      39: areturn

  public final long length();
    Code:
       0: aload_0
       1: getfield      #25                 // Field max:J
       4: aload_0
       5: getfield      #22                 // Field min:J
       8: lsub
       9: lconst_1
      10: ladd
      11: lreturn

  public final long component1();
    Code:
       0: aload_0
       1: getfield      #22                 // Field min:J
       4: lreturn

  public final long component2();
    Code:
       0: aload_0
       1: getfield      #25                 // Field max:J
       4: lreturn

  public final java.lang.String component3();
    Code:
       0: aload_0
       1: getfield      #28                 // Field key:Ljava/lang/String;
       4: areturn

  public final Day19$MinAndMax copy(long, long, java.lang.String);
    Code:
       0: aload         5
       2: ldc           #9                  // String key
       4: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       7: new           #2                  // class Day19$MinAndMax
      10: dup
      11: lload_1
      12: lload_3
      13: aload         5
      15: invokespecial #50                 // Method "<init>":(JJLjava/lang/String;)V
      18: areturn

  public static Day19$MinAndMax copy$default(Day19$MinAndMax, long, long, java.lang.String, int, java.lang.Object);
    Code:
       0: iload         6
       2: iconst_1
       3: iand
       4: ifeq          12
       7: aload_0
       8: getfield      #22                 // Field min:J
      11: lstore_1
      12: iload         6
      14: iconst_2
      15: iand
      16: ifeq          24
      19: aload_0
      20: getfield      #25                 // Field max:J
      23: lstore_3
      24: iload         6
      26: iconst_4
      27: iand
      28: ifeq          37
      31: aload_0
      32: getfield      #28                 // Field key:Ljava/lang/String;
      35: astore        5
      37: aload_0
      38: lload_1
      39: lload_3
      40: aload         5
      42: invokevirtual #60                 // Method copy:(JJLjava/lang/String;)LDay19$MinAndMax;
      45: areturn

  public java.lang.String toString();
    Code:
       0: new           #63                 // class java/lang/StringBuilder
       3: dup
       4: invokespecial #64                 // Method java/lang/StringBuilder."<init>":()V
       7: ldc           #66                 // String MinAndMax(min=
       9: invokevirtual #70                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      12: aload_0
      13: getfield      #22                 // Field min:J
      16: invokevirtual #73                 // Method java/lang/StringBuilder.append:(J)Ljava/lang/StringBuilder;
      19: ldc           #75                 // String , max=
      21: invokevirtual #70                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      24: aload_0
      25: getfield      #25                 // Field max:J
      28: invokevirtual #73                 // Method java/lang/StringBuilder.append:(J)Ljava/lang/StringBuilder;
      31: ldc           #77                 // String , key=
      33: invokevirtual #70                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      36: aload_0
      37: getfield      #28                 // Field key:Ljava/lang/String;
      40: invokevirtual #70                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      43: bipush        41
      45: invokevirtual #80                 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
      48: invokevirtual #82                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      51: areturn

  public int hashCode();
    Code:
       0: aload_0
       1: getfield      #22                 // Field min:J
       4: invokestatic  #89                 // Method java/lang/Long.hashCode:(J)I
       7: istore_1
       8: iload_1
       9: bipush        31
      11: imul
      12: aload_0
      13: getfield      #25                 // Field max:J
      16: invokestatic  #89                 // Method java/lang/Long.hashCode:(J)I
      19: iadd
      20: istore_1
      21: iload_1
      22: bipush        31
      24: imul
      25: aload_0
      26: getfield      #28                 // Field key:Ljava/lang/String;
      29: invokevirtual #93                 // Method java/lang/String.hashCode:()I
      32: iadd
      33: istore_1
      34: iload_1
      35: ireturn

  public boolean equals(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: if_acmpne     7
       5: iconst_1
       6: ireturn
       7: aload_1
       8: instanceof    #2                  // class Day19$MinAndMax
      11: ifne          16
      14: iconst_0
      15: ireturn
      16: aload_1
      17: checkcast     #2                  // class Day19$MinAndMax
      20: astore_2
      21: aload_0
      22: getfield      #22                 // Field min:J
      25: aload_2
      26: getfield      #22                 // Field min:J
      29: lcmp
      30: ifeq          35
      33: iconst_0
      34: ireturn
      35: aload_0
      36: getfield      #25                 // Field max:J
      39: aload_2
      40: getfield      #25                 // Field max:J
      43: lcmp
      44: ifeq          49
      47: iconst_0
      48: ireturn
      49: aload_0
      50: getfield      #28                 // Field key:Ljava/lang/String;
      53: aload_2
      54: getfield      #28                 // Field key:Ljava/lang/String;
      57: invokestatic  #102                // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      60: ifne          65
      63: iconst_0
      64: ireturn
      65: iconst_1
      66: ireturn
}

Compiled from "Day19.kt"
public final class Day19$Job$Companion {
  private Day19$Job$Companion();
    Code:
       0: aload_0
       1: invokespecial #8                  // Method java/lang/Object."<init>":()V
       4: return

  public final Day19$Job parse(java.lang.String);
    Code:
       0: aload_1
       1: ldc           #15                 // String input
       3: invokestatic  #21                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: checkcast     #23                 // class java/lang/CharSequence
      10: ldc           #25                 // String {
      12: iconst_0
      13: iconst_0
      14: bipush        6
      16: aconst_null
      17: invokestatic  #31                 // Method kotlin/text/StringsKt.indexOf$default:(Ljava/lang/CharSequence;Ljava/lang/String;IZILjava/lang/Object;)I
      20: istore_2
      21: nop
      22: aload_1
      23: iconst_0
      24: iload_2
      25: invokevirtual #37                 // Method java/lang/String.substring:(II)Ljava/lang/String;
      28: dup
      29: ldc           #39                 // String substring(...)
      31: invokestatic  #42                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullExpressionValue:(Ljava/lang/Object;Ljava/lang/String;)V
      34: checkcast     #23                 // class java/lang/CharSequence
      37: invokestatic  #46                 // Method kotlin/text/StringsKt.trim:(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
      40: invokevirtual #50                 // Method java/lang/Object.toString:()Ljava/lang/String;
      43: astore_3
      44: aload_1
      45: iload_2
      46: invokevirtual #53                 // Method java/lang/String.substring:(I)Ljava/lang/String;
      49: dup
      50: ldc           #39                 // String substring(...)
      52: invokestatic  #42                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullExpressionValue:(Ljava/lang/Object;Ljava/lang/String;)V
      55: iconst_1
      56: invokestatic  #57                 // Method kotlin/text/StringsKt.drop:(Ljava/lang/String;I)Ljava/lang/String;
      59: iconst_1
      60: invokestatic  #60                 // Method kotlin/text/StringsKt.dropLast:(Ljava/lang/String;I)Ljava/lang/String;
      63: astore        4
      65: aload         4
      67: checkcast     #23                 // class java/lang/CharSequence
      70: ldc           #62                 // String ,
      72: iconst_0
      73: iconst_0
      74: bipush        6
      76: aconst_null
      77: invokestatic  #65                 // Method kotlin/text/StringsKt.lastIndexOf$default:(Ljava/lang/CharSequence;Ljava/lang/String;IZILjava/lang/Object;)I
      80: istore        5
      82: nop
      83: aload         4
      85: iload         5
      87: iconst_1
      88: iadd
      89: invokevirtual #53                 // Method java/lang/String.substring:(I)Ljava/lang/String;
      92: dup
      93: ldc           #39                 // String substring(...)
      95: invokestatic  #42                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullExpressionValue:(Ljava/lang/Object;Ljava/lang/String;)V
      98: checkcast     #23                 // class java/lang/CharSequence
     101: invokestatic  #46                 // Method kotlin/text/StringsKt.trim:(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
     104: invokevirtual #50                 // Method java/lang/Object.toString:()Ljava/lang/String;
     107: astore        6
     109: iconst_2
     110: anewarray     #67                 // class kotlin/Pair
     113: astore        8
     115: aload         8
     117: iconst_0
     118: ldc           #69                 // String <
     120: invokedynamic #89,  0             // InvokeDynamic #0:invoke:()Lkotlin/jvm/functions/Function3;
     125: invokestatic  #95                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     128: aastore
     129: aload         8
     131: iconst_1
     132: ldc           #97                 // String >
     134: invokedynamic #102,  0            // InvokeDynamic #1:invoke:()Lkotlin/jvm/functions/Function3;
     139: invokestatic  #95                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     142: aastore
     143: aload         8
     145: invokestatic  #108                // Method kotlin/collections/MapsKt.mapOf:([Lkotlin/Pair;)Ljava/util/Map;
     148: astore        7
     150: aload         4
     152: iconst_0
     153: iload         5
     155: invokevirtual #37                 // Method java/lang/String.substring:(II)Ljava/lang/String;
     158: dup
     159: ldc           #39                 // String substring(...)
     161: invokestatic  #42                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullExpressionValue:(Ljava/lang/Object;Ljava/lang/String;)V
     164: checkcast     #23                 // class java/lang/CharSequence
     167: iconst_1
     168: anewarray     #33                 // class java/lang/String
     171: astore        9
     173: aload         9
     175: iconst_0
     176: ldc           #62                 // String ,
     178: aastore
     179: aload         9
     181: iconst_0
     182: iconst_0
     183: bipush        6
     185: aconst_null
     186: invokestatic  #112                // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
     189: checkcast     #114                // class java/lang/Iterable
     192: astore        9
     194: iconst_0
     195: istore        10
     197: aload         9
     199: astore        11
     201: new           #116                // class java/util/ArrayList
     204: dup
     205: aload         9
     207: bipush        10
     209: invokestatic  #122                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     212: invokespecial #125                // Method java/util/ArrayList."<init>":(I)V
     215: checkcast     #127                // class java/util/Collection
     218: astore        12
     220: iconst_0
     221: istore        13
     223: aload         11
     225: invokeinterface #131,  1          // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     230: astore        14
     232: aload         14
     234: invokeinterface #137,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     239: ifeq          424
     242: aload         14
     244: invokeinterface #141,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     249: astore        15
     251: aload         12
     253: aload         15
     255: checkcast     #33                 // class java/lang/String
     258: astore        16
     260: astore        25
     262: iconst_0
     263: istore        17
     265: new           #143                // class kotlin/text/Regex
     268: dup
     269: ldc           #145                // String (\\w+)([<>])(\\d+):(\\w+)
     271: invokespecial #148                // Method kotlin/text/Regex."<init>":(Ljava/lang/String;)V
     274: astore        18
     276: aload         18
     278: aload         16
     280: checkcast     #23                 // class java/lang/CharSequence
     283: invokestatic  #46                 // Method kotlin/text/StringsKt.trim:(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
     286: invokevirtual #50                 // Method java/lang/Object.toString:()Ljava/lang/String;
     289: checkcast     #23                 // class java/lang/CharSequence
     292: invokevirtual #152                // Method kotlin/text/Regex.matchEntire:(Ljava/lang/CharSequence;)Lkotlin/text/MatchResult;
     295: dup
     296: invokestatic  #156                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
     299: astore        19
     301: aload         19
     303: invokeinterface #162,  1          // InterfaceMethod kotlin/text/MatchResult.getDestructured:()Lkotlin/text/MatchResult$Destructured;
     308: astore        20
     310: aload         20
     312: invokevirtual #168                // Method kotlin/text/MatchResult$Destructured.getMatch:()Lkotlin/text/MatchResult;
     315: invokeinterface #172,  1          // InterfaceMethod kotlin/text/MatchResult.getGroupValues:()Ljava/util/List;
     320: iconst_1
     321: invokeinterface #178,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     326: checkcast     #33                 // class java/lang/String
     329: astore        21
     331: aload         20
     333: invokevirtual #168                // Method kotlin/text/MatchResult$Destructured.getMatch:()Lkotlin/text/MatchResult;
     336: invokeinterface #172,  1          // InterfaceMethod kotlin/text/MatchResult.getGroupValues:()Ljava/util/List;
     341: iconst_2
     342: invokeinterface #178,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     347: checkcast     #33                 // class java/lang/String
     350: astore        22
     352: aload         20
     354: invokevirtual #168                // Method kotlin/text/MatchResult$Destructured.getMatch:()Lkotlin/text/MatchResult;
     357: invokeinterface #172,  1          // InterfaceMethod kotlin/text/MatchResult.getGroupValues:()Ljava/util/List;
     362: iconst_3
     363: invokeinterface #178,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     368: checkcast     #33                 // class java/lang/String
     371: astore        23
     373: aload         20
     375: invokevirtual #168                // Method kotlin/text/MatchResult$Destructured.getMatch:()Lkotlin/text/MatchResult;
     378: invokeinterface #172,  1          // InterfaceMethod kotlin/text/MatchResult.getGroupValues:()Ljava/util/List;
     383: iconst_4
     384: invokeinterface #178,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     389: checkcast     #33                 // class java/lang/String
     392: astore        24
     394: new           #180                // class Day19$Rule
     397: dup
     398: aload         21
     400: aload         22
     402: aload         23
     404: invokestatic  #186                // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
     407: aload         24
     409: invokespecial #189                // Method Day19$Rule."<init>":(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
     412: aload         25
     414: swap
     415: invokeinterface #193,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     420: pop
     421: goto          232
     424: aload         12
     426: checkcast     #174                // class java/util/List
     429: nop
     430: astore        8
     432: aload         8
     434: checkcast     #114                // class java/lang/Iterable
     437: astore        10
     439: iconst_0
     440: istore        11
     442: aload         10
     444: astore        12
     446: new           #116                // class java/util/ArrayList
     449: dup
     450: aload         10
     452: bipush        10
     454: invokestatic  #122                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     457: invokespecial #125                // Method java/util/ArrayList."<init>":(I)V
     460: checkcast     #127                // class java/util/Collection
     463: astore        13
     465: iconst_0
     466: istore        14
     468: aload         12
     470: invokeinterface #131,  1          // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     475: astore        15
     477: aload         15
     479: invokeinterface #137,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     484: ifeq          539
     487: aload         15
     489: invokeinterface #141,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     494: astore        16
     496: aload         13
     498: aload         16
     500: checkcast     #180                // class Day19$Rule
     503: astore        17
     505: astore        25
     507: iconst_0
     508: istore        18
     510: aload         7
     512: aload         17
     514: invokedynamic #205,  0            // InvokeDynamic #2:invoke:(Ljava/util/Map;LDay19$Rule;)Lkotlin/jvm/functions/Function1;
     519: aload         17
     521: invokevirtual #208                // Method Day19$Rule.getNextState:()Ljava/lang/String;
     524: invokestatic  #95                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     527: aload         25
     529: swap
     530: invokeinterface #193,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     535: pop
     536: goto          477
     539: aload         13
     541: checkcast     #174                // class java/util/List
     544: nop
     545: astore        9
     547: new           #210                // class Day19$Job
     550: dup
     551: aload_3
     552: aload         9
     554: aload         6
     556: aload         8
     558: invokespecial #213                // Method Day19$Job."<init>":(Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/List;)V
     561: areturn

  private static final boolean parse$lambda$0(Day19$Part, int, java.lang.String);
    Code:
       0: aload_0
       1: ldc           #252                // String part
       3: invokestatic  #21                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_2
       7: ldc           #253                // String key
       9: invokestatic  #21                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_0
      13: invokevirtual #259                // Method Day19$Part.getRatings:()Ljava/util/Map;
      16: aload_2
      17: invokeinterface #261,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
      22: dup
      23: invokestatic  #156                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
      26: checkcast     #263                // class java/lang/Number
      29: invokevirtual #267                // Method java/lang/Number.intValue:()I
      32: iload_1
      33: if_icmpge     40
      36: iconst_1
      37: goto          41
      40: iconst_0
      41: ireturn

  private static final boolean parse$lambda$1(Day19$Part, int, java.lang.String);
    Code:
       0: aload_0
       1: ldc           #252                // String part
       3: invokestatic  #21                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_2
       7: ldc           #253                // String key
       9: invokestatic  #21                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_0
      13: invokevirtual #259                // Method Day19$Part.getRatings:()Ljava/util/Map;
      16: aload_2
      17: invokeinterface #261,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
      22: dup
      23: invokestatic  #156                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
      26: checkcast     #263                // class java/lang/Number
      29: invokevirtual #267                // Method java/lang/Number.intValue:()I
      32: iload_1
      33: if_icmple     40
      36: iconst_1
      37: goto          41
      40: iconst_0
      41: ireturn

  private static final boolean parse$lambda$4$lambda$3(java.util.Map, Day19$Rule, Day19$Part);
    Code:
       0: aload_2
       1: ldc           #252                // String part
       3: invokestatic  #21                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: aload_1
       8: invokevirtual #271                // Method Day19$Rule.getOp:()Ljava/lang/String;
      11: invokeinterface #261,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
      16: dup
      17: invokestatic  #156                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
      20: checkcast     #273                // class kotlin/jvm/functions/Function3
      23: aload_2
      24: aload_1
      25: invokevirtual #276                // Method Day19$Rule.getValue:()I
      28: invokestatic  #280                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      31: aload_1
      32: invokevirtual #283                // Method Day19$Rule.getKey:()Ljava/lang/String;
      35: invokeinterface #285,  4          // InterfaceMethod kotlin/jvm/functions/Function3.invoke:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      40: checkcast     #287                // class java/lang/Boolean
      43: invokevirtual #290                // Method java/lang/Boolean.booleanValue:()Z
      46: ireturn

  public Day19$Job$Companion(kotlin.jvm.internal.DefaultConstructorMarker);
    Code:
       0: aload_0
       1: invokespecial #294                // Method "<init>":()V
       4: return
}

Compiled from "Day19.kt"
public final class Day19$Job {
  public static final Day19$Job$Companion Companion;

  private final java.lang.String id;

  private final java.util.List<kotlin.Pair<kotlin.jvm.functions.Function1<Day19$Part, java.lang.Boolean>, java.lang.String>> rules;

  private final java.lang.String endState;

  private final java.util.List<Day19$Rule> rawRules;

  public Day19$Job(java.lang.String, java.util.List<? extends kotlin.Pair<? extends kotlin.jvm.functions.Function1<? super Day19$Part, java.lang.Boolean>, java.lang.String>>, java.lang.String, java.util.List<Day19$Rule>);
    Code:
       0: aload_1
       1: ldc           #10                 // String id
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_2
       7: ldc           #18                 // String rules
       9: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_3
      13: ldc           #20                 // String endState
      15: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      18: aload         4
      20: ldc           #22                 // String rawRules
      22: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      25: aload_0
      26: invokespecial #25                 // Method java/lang/Object."<init>":()V
      29: aload_0
      30: aload_1
      31: putfield      #28                 // Field id:Ljava/lang/String;
      34: aload_0
      35: aload_2
      36: putfield      #31                 // Field rules:Ljava/util/List;
      39: aload_0
      40: aload_3
      41: putfield      #33                 // Field endState:Ljava/lang/String;
      44: aload_0
      45: aload         4
      47: putfield      #35                 // Field rawRules:Ljava/util/List;
      50: return

  public final java.lang.String getId();
    Code:
       0: aload_0
       1: getfield      #28                 // Field id:Ljava/lang/String;
       4: areturn

  public final java.util.List<kotlin.Pair<kotlin.jvm.functions.Function1<Day19$Part, java.lang.Boolean>, java.lang.String>> getRules();
    Code:
       0: aload_0
       1: getfield      #31                 // Field rules:Ljava/util/List;
       4: areturn

  public final java.lang.String getEndState();
    Code:
       0: aload_0
       1: getfield      #33                 // Field endState:Ljava/lang/String;
       4: areturn

  public final java.util.List<Day19$Rule> getRawRules();
    Code:
       0: aload_0
       1: getfield      #35                 // Field rawRules:Ljava/util/List;
       4: areturn

  public final java.lang.String evaluate(Day19$Part);
    Code:
       0: aload_1
       1: ldc           #49                 // String part
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: getfield      #31                 // Field rules:Ljava/util/List;
      10: checkcast     #51                 // class java/lang/Iterable
      13: astore_2
      14: aload_2
      15: invokeinterface #55,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      20: astore_3
      21: aload_3
      22: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      27: ifeq          80
      30: aload_3
      31: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      36: astore        4
      38: aload         4
      40: checkcast     #67                 // class kotlin/Pair
      43: astore        5
      45: iconst_0
      46: istore        6
      48: aload         5
      50: invokevirtual #70                 // Method kotlin/Pair.component1:()Ljava/lang/Object;
      53: checkcast     #72                 // class kotlin/jvm/functions/Function1
      56: astore        7
      58: aload         7
      60: aload_1
      61: invokeinterface #76,  2           // InterfaceMethod kotlin/jvm/functions/Function1.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
      66: checkcast     #78                 // class java/lang/Boolean
      69: invokevirtual #81                 // Method java/lang/Boolean.booleanValue:()Z
      72: ifeq          21
      75: aload         4
      77: goto          81
      80: aconst_null
      81: checkcast     #67                 // class kotlin/Pair
      84: dup
      85: ifnull        98
      88: invokevirtual #84                 // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      91: checkcast     #86                 // class java/lang/String
      94: dup
      95: ifnonnull     103
      98: pop
      99: aload_0
     100: getfield      #33                 // Field endState:Ljava/lang/String;
     103: areturn

  public final java.util.List<Day19$CompositeCondition> conditionsLeadingToRejectedState();
    Code:
       0: new           #95                 // class java/util/ArrayList
       3: dup
       4: invokespecial #96                 // Method java/util/ArrayList."<init>":()V
       7: checkcast     #98                 // class java/util/List
      10: astore_1
      11: aload_0
      12: getfield      #33                 // Field endState:Ljava/lang/String;
      15: ldc           #100                // String R
      17: invokestatic  #104                // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      20: ifeq          263
      23: aload_0
      24: getfield      #35                 // Field rawRules:Ljava/util/List;
      27: checkcast     #51                 // class java/lang/Iterable
      30: astore_3
      31: iconst_0
      32: istore        4
      34: aload_3
      35: astore        5
      37: new           #95                 // class java/util/ArrayList
      40: dup
      41: aload_3
      42: bipush        10
      44: invokestatic  #110                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      47: invokespecial #113                // Method java/util/ArrayList."<init>":(I)V
      50: checkcast     #115                // class java/util/Collection
      53: astore        6
      55: iconst_0
      56: istore        7
      58: aload         5
      60: invokeinterface #55,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      65: astore        8
      67: aload         8
      69: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      74: ifeq          117
      77: aload         8
      79: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      84: astore        9
      86: aload         6
      88: aload         9
      90: checkcast     #117                // class Day19$Rule
      93: astore        10
      95: astore        26
      97: iconst_0
      98: istore        11
     100: aload         10
     102: invokevirtual #121                // Method Day19$Rule.inverse:()LDay19$Rule;
     105: aload         26
     107: swap
     108: invokeinterface #125,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     113: pop
     114: goto          67
     117: aload         6
     119: checkcast     #98                 // class java/util/List
     122: nop
     123: checkcast     #51                 // class java/lang/Iterable
     126: astore_3
     127: nop
     128: iconst_0
     129: istore        4
     131: aload_3
     132: astore        5
     134: new           #95                 // class java/util/ArrayList
     137: dup
     138: aload_3
     139: bipush        10
     141: invokestatic  #110                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     144: invokespecial #113                // Method java/util/ArrayList."<init>":(I)V
     147: checkcast     #115                // class java/util/Collection
     150: astore        6
     152: iconst_0
     153: istore        7
     155: aload         5
     157: invokeinterface #55,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     162: astore        8
     164: aload         8
     166: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     171: ifeq          231
     174: aload         8
     176: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     181: astore        9
     183: aload         6
     185: aload         9
     187: checkcast     #117                // class Day19$Rule
     190: astore        10
     192: astore        26
     194: iconst_0
     195: istore        11
     197: new           #127                // class Day19$Condition
     200: dup
     201: aload         10
     203: invokevirtual #130                // Method Day19$Rule.getKey:()Ljava/lang/String;
     206: aload         10
     208: invokevirtual #133                // Method Day19$Rule.getOp:()Ljava/lang/String;
     211: aload         10
     213: invokevirtual #137                // Method Day19$Rule.getValue:()I
     216: invokespecial #140                // Method Day19$Condition."<init>":(Ljava/lang/String;Ljava/lang/String;I)V
     219: aload         26
     221: swap
     222: invokeinterface #125,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     227: pop
     228: goto          164
     231: aload         6
     233: checkcast     #98                 // class java/util/List
     236: nop
     237: ldc           #100                // String R
     239: astore        27
     241: astore        28
     243: new           #142                // class Day19$CompositeCondition
     246: dup
     247: aload         28
     249: aload         27
     251: invokespecial #145                // Method Day19$CompositeCondition."<init>":(Ljava/util/List;Ljava/lang/String;)V
     254: astore_2
     255: aload_1
     256: aload_2
     257: invokeinterface #146,  2          // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
     262: pop
     263: aload_1
     264: aload_0
     265: getfield      #35                 // Field rawRules:Ljava/util/List;
     268: checkcast     #51                 // class java/lang/Iterable
     271: invokestatic  #150                // Method kotlin/collections/CollectionsKt.withIndex:(Ljava/lang/Iterable;)Ljava/lang/Iterable;
     274: astore_2
     275: astore        24
     277: iconst_0
     278: istore_3
     279: aload_2
     280: astore        4
     282: new           #95                 // class java/util/ArrayList
     285: dup
     286: invokespecial #96                 // Method java/util/ArrayList."<init>":()V
     289: checkcast     #115                // class java/util/Collection
     292: astore        5
     294: iconst_0
     295: istore        6
     297: aload         4
     299: invokeinterface #55,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     304: astore        7
     306: aload         7
     308: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     313: ifeq          371
     316: aload         7
     318: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     323: astore        8
     325: aload         8
     327: checkcast     #152                // class kotlin/collections/IndexedValue
     330: astore        9
     332: iconst_0
     333: istore        10
     335: aload         9
     337: invokevirtual #155                // Method kotlin/collections/IndexedValue.component2:()Ljava/lang/Object;
     340: checkcast     #117                // class Day19$Rule
     343: astore        11
     345: aload         11
     347: invokevirtual #158                // Method Day19$Rule.getNextState:()Ljava/lang/String;
     350: ldc           #100                // String R
     352: invokestatic  #104                // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     355: ifeq          306
     358: aload         5
     360: aload         8
     362: invokeinterface #125,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     367: pop
     368: goto          306
     371: aload         5
     373: checkcast     #98                 // class java/util/List
     376: nop
     377: aload         24
     379: swap
     380: checkcast     #51                 // class java/lang/Iterable
     383: astore_2
     384: astore        24
     386: iconst_0
     387: istore_3
     388: aload_2
     389: astore        4
     391: new           #95                 // class java/util/ArrayList
     394: dup
     395: aload_2
     396: bipush        10
     398: invokestatic  #110                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     401: invokespecial #113                // Method java/util/ArrayList."<init>":(I)V
     404: checkcast     #115                // class java/util/Collection
     407: astore        5
     409: iconst_0
     410: istore        6
     412: aload         4
     414: invokeinterface #55,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     419: astore        7
     421: aload         7
     423: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     428: ifeq          765
     431: aload         7
     433: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     438: astore        8
     440: aload         5
     442: aload         8
     444: checkcast     #152                // class kotlin/collections/IndexedValue
     447: astore        9
     449: astore        25
     451: iconst_0
     452: istore        10
     454: aload         9
     456: invokevirtual #160                // Method kotlin/collections/IndexedValue.component1:()I
     459: istore        11
     461: aload         9
     463: invokevirtual #155                // Method kotlin/collections/IndexedValue.component2:()Ljava/lang/Object;
     466: checkcast     #117                // class Day19$Rule
     469: astore        12
     471: aload_0
     472: getfield      #35                 // Field rawRules:Ljava/util/List;
     475: iconst_0
     476: iload         11
     478: invokeinterface #164,  3          // InterfaceMethod java/util/List.subList:(II)Ljava/util/List;
     483: checkcast     #51                 // class java/lang/Iterable
     486: astore        13
     488: iconst_0
     489: istore        14
     491: aload         13
     493: astore        15
     495: new           #95                 // class java/util/ArrayList
     498: dup
     499: aload         13
     501: bipush        10
     503: invokestatic  #110                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     506: invokespecial #113                // Method java/util/ArrayList."<init>":(I)V
     509: checkcast     #115                // class java/util/Collection
     512: astore        16
     514: iconst_0
     515: istore        17
     517: aload         15
     519: invokeinterface #55,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     524: astore        18
     526: aload         18
     528: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     533: ifeq          576
     536: aload         18
     538: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     543: astore        19
     545: aload         16
     547: aload         19
     549: checkcast     #117                // class Day19$Rule
     552: astore        20
     554: astore        21
     556: iconst_0
     557: istore        22
     559: aload         20
     561: invokevirtual #121                // Method Day19$Rule.inverse:()LDay19$Rule;
     564: aload         21
     566: swap
     567: invokeinterface #125,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     572: pop
     573: goto          526
     576: aload         16
     578: checkcast     #98                 // class java/util/List
     581: nop
     582: checkcast     #51                 // class java/lang/Iterable
     585: astore        13
     587: nop
     588: iconst_0
     589: istore        14
     591: aload         13
     593: astore        15
     595: new           #95                 // class java/util/ArrayList
     598: dup
     599: aload         13
     601: bipush        10
     603: invokestatic  #110                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     606: invokespecial #113                // Method java/util/ArrayList."<init>":(I)V
     609: checkcast     #115                // class java/util/Collection
     612: astore        16
     614: iconst_0
     615: istore        17
     617: aload         15
     619: invokeinterface #55,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     624: astore        18
     626: aload         18
     628: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     633: ifeq          693
     636: aload         18
     638: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     643: astore        19
     645: aload         16
     647: aload         19
     649: checkcast     #117                // class Day19$Rule
     652: astore        20
     654: astore        21
     656: iconst_0
     657: istore        22
     659: new           #127                // class Day19$Condition
     662: dup
     663: aload         20
     665: invokevirtual #130                // Method Day19$Rule.getKey:()Ljava/lang/String;
     668: aload         20
     670: invokevirtual #133                // Method Day19$Rule.getOp:()Ljava/lang/String;
     673: aload         20
     675: invokevirtual #137                // Method Day19$Rule.getValue:()I
     678: invokespecial #140                // Method Day19$Condition."<init>":(Ljava/lang/String;Ljava/lang/String;I)V
     681: aload         21
     683: swap
     684: invokeinterface #125,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     689: pop
     690: goto          626
     693: aload         16
     695: checkcast     #98                 // class java/util/List
     698: nop
     699: astore        23
     701: new           #127                // class Day19$Condition
     704: dup
     705: aload         12
     707: invokevirtual #130                // Method Day19$Rule.getKey:()Ljava/lang/String;
     710: aload         12
     712: invokevirtual #133                // Method Day19$Rule.getOp:()Ljava/lang/String;
     715: aload         12
     717: invokevirtual #137                // Method Day19$Rule.getValue:()I
     720: invokespecial #140                // Method Day19$Condition."<init>":(Ljava/lang/String;Ljava/lang/String;I)V
     723: invokestatic  #168                // Method kotlin/collections/CollectionsKt.listOf:(Ljava/lang/Object;)Ljava/util/List;
     726: astore        13
     728: new           #142                // class Day19$CompositeCondition
     731: dup
     732: aload         23
     734: checkcast     #115                // class java/util/Collection
     737: aload         13
     739: checkcast     #51                 // class java/lang/Iterable
     742: invokestatic  #172                // Method kotlin/collections/CollectionsKt.plus:(Ljava/util/Collection;Ljava/lang/Iterable;)Ljava/util/List;
     745: aload         12
     747: invokevirtual #158                // Method Day19$Rule.getNextState:()Ljava/lang/String;
     750: invokespecial #145                // Method Day19$CompositeCondition."<init>":(Ljava/util/List;Ljava/lang/String;)V
     753: aload         25
     755: swap
     756: invokeinterface #125,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     761: pop
     762: goto          421
     765: aload         5
     767: checkcast     #98                 // class java/util/List
     770: nop
     771: aload         24
     773: swap
     774: checkcast     #115                // class java/util/Collection
     777: invokeinterface #176,  2          // InterfaceMethod java/util/List.addAll:(Ljava/util/Collection;)Z
     782: pop
     783: aload_1
     784: areturn

  public final java.util.List<Day19$CompositeCondition> nonTerminalConditions();
    Code:
       0: new           #95                 // class java/util/ArrayList
       3: dup
       4: invokespecial #96                 // Method java/util/ArrayList."<init>":()V
       7: checkcast     #98                 // class java/util/List
      10: astore_1
      11: aload_0
      12: getfield      #33                 // Field endState:Ljava/lang/String;
      15: ldc           #207                // String A
      17: invokestatic  #104                // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      20: ifne          277
      23: aload_0
      24: getfield      #33                 // Field endState:Ljava/lang/String;
      27: ldc           #100                // String R
      29: invokestatic  #104                // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      32: ifne          277
      35: aload_0
      36: getfield      #35                 // Field rawRules:Ljava/util/List;
      39: checkcast     #51                 // class java/lang/Iterable
      42: astore_3
      43: iconst_0
      44: istore        4
      46: aload_3
      47: astore        5
      49: new           #95                 // class java/util/ArrayList
      52: dup
      53: aload_3
      54: bipush        10
      56: invokestatic  #110                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      59: invokespecial #113                // Method java/util/ArrayList."<init>":(I)V
      62: checkcast     #115                // class java/util/Collection
      65: astore        6
      67: iconst_0
      68: istore        7
      70: aload         5
      72: invokeinterface #55,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      77: astore        8
      79: aload         8
      81: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      86: ifeq          129
      89: aload         8
      91: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      96: astore        9
      98: aload         6
     100: aload         9
     102: checkcast     #117                // class Day19$Rule
     105: astore        10
     107: astore        26
     109: iconst_0
     110: istore        11
     112: aload         10
     114: invokevirtual #121                // Method Day19$Rule.inverse:()LDay19$Rule;
     117: aload         26
     119: swap
     120: invokeinterface #125,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     125: pop
     126: goto          79
     129: aload         6
     131: checkcast     #98                 // class java/util/List
     134: nop
     135: checkcast     #51                 // class java/lang/Iterable
     138: astore_3
     139: nop
     140: iconst_0
     141: istore        4
     143: aload_3
     144: astore        5
     146: new           #95                 // class java/util/ArrayList
     149: dup
     150: aload_3
     151: bipush        10
     153: invokestatic  #110                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     156: invokespecial #113                // Method java/util/ArrayList."<init>":(I)V
     159: checkcast     #115                // class java/util/Collection
     162: astore        6
     164: iconst_0
     165: istore        7
     167: aload         5
     169: invokeinterface #55,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     174: astore        8
     176: aload         8
     178: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     183: ifeq          243
     186: aload         8
     188: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     193: astore        9
     195: aload         6
     197: aload         9
     199: checkcast     #117                // class Day19$Rule
     202: astore        10
     204: astore        26
     206: iconst_0
     207: istore        11
     209: new           #127                // class Day19$Condition
     212: dup
     213: aload         10
     215: invokevirtual #130                // Method Day19$Rule.getKey:()Ljava/lang/String;
     218: aload         10
     220: invokevirtual #133                // Method Day19$Rule.getOp:()Ljava/lang/String;
     223: aload         10
     225: invokevirtual #137                // Method Day19$Rule.getValue:()I
     228: invokespecial #140                // Method Day19$Condition."<init>":(Ljava/lang/String;Ljava/lang/String;I)V
     231: aload         26
     233: swap
     234: invokeinterface #125,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     239: pop
     240: goto          176
     243: aload         6
     245: checkcast     #98                 // class java/util/List
     248: nop
     249: aload_0
     250: getfield      #33                 // Field endState:Ljava/lang/String;
     253: astore        27
     255: astore        28
     257: new           #142                // class Day19$CompositeCondition
     260: dup
     261: aload         28
     263: aload         27
     265: invokespecial #145                // Method Day19$CompositeCondition."<init>":(Ljava/util/List;Ljava/lang/String;)V
     268: astore_2
     269: aload_1
     270: aload_2
     271: invokeinterface #146,  2          // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
     276: pop
     277: aload_1
     278: aload_0
     279: getfield      #35                 // Field rawRules:Ljava/util/List;
     282: checkcast     #51                 // class java/lang/Iterable
     285: invokestatic  #150                // Method kotlin/collections/CollectionsKt.withIndex:(Ljava/lang/Iterable;)Ljava/lang/Iterable;
     288: astore_2
     289: astore        24
     291: iconst_0
     292: istore_3
     293: aload_2
     294: astore        4
     296: new           #95                 // class java/util/ArrayList
     299: dup
     300: invokespecial #96                 // Method java/util/ArrayList."<init>":()V
     303: checkcast     #115                // class java/util/Collection
     306: astore        5
     308: iconst_0
     309: istore        6
     311: aload         4
     313: invokeinterface #55,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     318: astore        7
     320: aload         7
     322: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     327: ifeq          406
     330: aload         7
     332: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     337: astore        8
     339: aload         8
     341: checkcast     #152                // class kotlin/collections/IndexedValue
     344: astore        9
     346: iconst_0
     347: istore        10
     349: aload         9
     351: invokevirtual #155                // Method kotlin/collections/IndexedValue.component2:()Ljava/lang/Object;
     354: checkcast     #117                // class Day19$Rule
     357: astore        11
     359: aload         11
     361: invokevirtual #158                // Method Day19$Rule.getNextState:()Ljava/lang/String;
     364: ldc           #100                // String R
     366: invokestatic  #104                // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     369: ifne          389
     372: aload         11
     374: invokevirtual #158                // Method Day19$Rule.getNextState:()Ljava/lang/String;
     377: ldc           #207                // String A
     379: invokestatic  #104                // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     382: ifne          389
     385: iconst_1
     386: goto          390
     389: iconst_0
     390: ifeq          320
     393: aload         5
     395: aload         8
     397: invokeinterface #125,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     402: pop
     403: goto          320
     406: aload         5
     408: checkcast     #98                 // class java/util/List
     411: nop
     412: aload         24
     414: swap
     415: checkcast     #51                 // class java/lang/Iterable
     418: astore_2
     419: astore        24
     421: iconst_0
     422: istore_3
     423: aload_2
     424: astore        4
     426: new           #95                 // class java/util/ArrayList
     429: dup
     430: aload_2
     431: bipush        10
     433: invokestatic  #110                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     436: invokespecial #113                // Method java/util/ArrayList."<init>":(I)V
     439: checkcast     #115                // class java/util/Collection
     442: astore        5
     444: iconst_0
     445: istore        6
     447: aload         4
     449: invokeinterface #55,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     454: astore        7
     456: aload         7
     458: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     463: ifeq          800
     466: aload         7
     468: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     473: astore        8
     475: aload         5
     477: aload         8
     479: checkcast     #152                // class kotlin/collections/IndexedValue
     482: astore        9
     484: astore        25
     486: iconst_0
     487: istore        10
     489: aload         9
     491: invokevirtual #160                // Method kotlin/collections/IndexedValue.component1:()I
     494: istore        11
     496: aload         9
     498: invokevirtual #155                // Method kotlin/collections/IndexedValue.component2:()Ljava/lang/Object;
     501: checkcast     #117                // class Day19$Rule
     504: astore        12
     506: aload_0
     507: getfield      #35                 // Field rawRules:Ljava/util/List;
     510: iconst_0
     511: iload         11
     513: invokeinterface #164,  3          // InterfaceMethod java/util/List.subList:(II)Ljava/util/List;
     518: checkcast     #51                 // class java/lang/Iterable
     521: astore        13
     523: iconst_0
     524: istore        14
     526: aload         13
     528: astore        15
     530: new           #95                 // class java/util/ArrayList
     533: dup
     534: aload         13
     536: bipush        10
     538: invokestatic  #110                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     541: invokespecial #113                // Method java/util/ArrayList."<init>":(I)V
     544: checkcast     #115                // class java/util/Collection
     547: astore        16
     549: iconst_0
     550: istore        17
     552: aload         15
     554: invokeinterface #55,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     559: astore        18
     561: aload         18
     563: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     568: ifeq          611
     571: aload         18
     573: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     578: astore        19
     580: aload         16
     582: aload         19
     584: checkcast     #117                // class Day19$Rule
     587: astore        20
     589: astore        21
     591: iconst_0
     592: istore        22
     594: aload         20
     596: invokevirtual #121                // Method Day19$Rule.inverse:()LDay19$Rule;
     599: aload         21
     601: swap
     602: invokeinterface #125,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     607: pop
     608: goto          561
     611: aload         16
     613: checkcast     #98                 // class java/util/List
     616: nop
     617: checkcast     #51                 // class java/lang/Iterable
     620: astore        13
     622: nop
     623: iconst_0
     624: istore        14
     626: aload         13
     628: astore        15
     630: new           #95                 // class java/util/ArrayList
     633: dup
     634: aload         13
     636: bipush        10
     638: invokestatic  #110                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     641: invokespecial #113                // Method java/util/ArrayList."<init>":(I)V
     644: checkcast     #115                // class java/util/Collection
     647: astore        16
     649: iconst_0
     650: istore        17
     652: aload         15
     654: invokeinterface #55,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     659: astore        18
     661: aload         18
     663: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     668: ifeq          728
     671: aload         18
     673: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     678: astore        19
     680: aload         16
     682: aload         19
     684: checkcast     #117                // class Day19$Rule
     687: astore        20
     689: astore        21
     691: iconst_0
     692: istore        22
     694: new           #127                // class Day19$Condition
     697: dup
     698: aload         20
     700: invokevirtual #130                // Method Day19$Rule.getKey:()Ljava/lang/String;
     703: aload         20
     705: invokevirtual #133                // Method Day19$Rule.getOp:()Ljava/lang/String;
     708: aload         20
     710: invokevirtual #137                // Method Day19$Rule.getValue:()I
     713: invokespecial #140                // Method Day19$Condition."<init>":(Ljava/lang/String;Ljava/lang/String;I)V
     716: aload         21
     718: swap
     719: invokeinterface #125,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     724: pop
     725: goto          661
     728: aload         16
     730: checkcast     #98                 // class java/util/List
     733: nop
     734: astore        23
     736: new           #127                // class Day19$Condition
     739: dup
     740: aload         12
     742: invokevirtual #130                // Method Day19$Rule.getKey:()Ljava/lang/String;
     745: aload         12
     747: invokevirtual #133                // Method Day19$Rule.getOp:()Ljava/lang/String;
     750: aload         12
     752: invokevirtual #137                // Method Day19$Rule.getValue:()I
     755: invokespecial #140                // Method Day19$Condition."<init>":(Ljava/lang/String;Ljava/lang/String;I)V
     758: invokestatic  #168                // Method kotlin/collections/CollectionsKt.listOf:(Ljava/lang/Object;)Ljava/util/List;
     761: astore        13
     763: new           #142                // class Day19$CompositeCondition
     766: dup
     767: aload         23
     769: checkcast     #115                // class java/util/Collection
     772: aload         13
     774: checkcast     #51                 // class java/lang/Iterable
     777: invokestatic  #172                // Method kotlin/collections/CollectionsKt.plus:(Ljava/util/Collection;Ljava/lang/Iterable;)Ljava/util/List;
     780: aload         12
     782: invokevirtual #158                // Method Day19$Rule.getNextState:()Ljava/lang/String;
     785: invokespecial #145                // Method Day19$CompositeCondition."<init>":(Ljava/util/List;Ljava/lang/String;)V
     788: aload         25
     790: swap
     791: invokeinterface #125,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     796: pop
     797: goto          456
     800: aload         5
     802: checkcast     #98                 // class java/util/List
     805: nop
     806: aload         24
     808: swap
     809: checkcast     #115                // class java/util/Collection
     812: invokeinterface #176,  2          // InterfaceMethod java/util/List.addAll:(Ljava/util/Collection;)Z
     817: pop
     818: aload_1
     819: areturn

  public final java.lang.String component1();
    Code:
       0: aload_0
       1: getfield      #28                 // Field id:Ljava/lang/String;
       4: areturn

  public final java.util.List<kotlin.Pair<kotlin.jvm.functions.Function1<Day19$Part, java.lang.Boolean>, java.lang.String>> component2();
    Code:
       0: aload_0
       1: getfield      #31                 // Field rules:Ljava/util/List;
       4: areturn

  public final java.lang.String component3();
    Code:
       0: aload_0
       1: getfield      #33                 // Field endState:Ljava/lang/String;
       4: areturn

  public final java.util.List<Day19$Rule> component4();
    Code:
       0: aload_0
       1: getfield      #35                 // Field rawRules:Ljava/util/List;
       4: areturn

  public final Day19$Job copy(java.lang.String, java.util.List<? extends kotlin.Pair<? extends kotlin.jvm.functions.Function1<? super Day19$Part, java.lang.Boolean>, java.lang.String>>, java.lang.String, java.util.List<Day19$Rule>);
    Code:
       0: aload_1
       1: ldc           #10                 // String id
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_2
       7: ldc           #18                 // String rules
       9: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_3
      13: ldc           #20                 // String endState
      15: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      18: aload         4
      20: ldc           #22                 // String rawRules
      22: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      25: new           #2                  // class Day19$Job
      28: dup
      29: aload_1
      30: aload_2
      31: aload_3
      32: aload         4
      34: invokespecial #221                // Method "<init>":(Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/List;)V
      37: areturn

  public static Day19$Job copy$default(Day19$Job, java.lang.String, java.util.List, java.lang.String, java.util.List, int, java.lang.Object);
    Code:
       0: iload         5
       2: iconst_1
       3: iand
       4: ifeq          12
       7: aload_0
       8: getfield      #28                 // Field id:Ljava/lang/String;
      11: astore_1
      12: iload         5
      14: iconst_2
      15: iand
      16: ifeq          24
      19: aload_0
      20: getfield      #31                 // Field rules:Ljava/util/List;
      23: astore_2
      24: iload         5
      26: iconst_4
      27: iand
      28: ifeq          36
      31: aload_0
      32: getfield      #33                 // Field endState:Ljava/lang/String;
      35: astore_3
      36: iload         5
      38: bipush        8
      40: iand
      41: ifeq          50
      44: aload_0
      45: getfield      #35                 // Field rawRules:Ljava/util/List;
      48: astore        4
      50: aload_0
      51: aload_1
      52: aload_2
      53: aload_3
      54: aload         4
      56: invokevirtual #225                // Method copy:(Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/List;)LDay19$Job;
      59: areturn

  public java.lang.String toString();
    Code:
       0: new           #228                // class java/lang/StringBuilder
       3: dup
       4: invokespecial #229                // Method java/lang/StringBuilder."<init>":()V
       7: ldc           #231                // String Job(id=
       9: invokevirtual #235                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      12: aload_0
      13: getfield      #28                 // Field id:Ljava/lang/String;
      16: invokevirtual #235                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      19: ldc           #237                // String , rules=
      21: invokevirtual #235                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      24: aload_0
      25: getfield      #31                 // Field rules:Ljava/util/List;
      28: invokevirtual #240                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
      31: ldc           #242                // String , endState=
      33: invokevirtual #235                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      36: aload_0
      37: getfield      #33                 // Field endState:Ljava/lang/String;
      40: invokevirtual #235                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      43: ldc           #244                // String , rawRules=
      45: invokevirtual #235                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      48: aload_0
      49: getfield      #35                 // Field rawRules:Ljava/util/List;
      52: invokevirtual #240                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
      55: bipush        41
      57: invokevirtual #247                // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
      60: invokevirtual #249                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      63: areturn

  public int hashCode();
    Code:
       0: aload_0
       1: getfield      #28                 // Field id:Ljava/lang/String;
       4: invokevirtual #252                // Method java/lang/String.hashCode:()I
       7: istore_1
       8: iload_1
       9: bipush        31
      11: imul
      12: aload_0
      13: getfield      #31                 // Field rules:Ljava/util/List;
      16: invokevirtual #253                // Method java/lang/Object.hashCode:()I
      19: iadd
      20: istore_1
      21: iload_1
      22: bipush        31
      24: imul
      25: aload_0
      26: getfield      #33                 // Field endState:Ljava/lang/String;
      29: invokevirtual #252                // Method java/lang/String.hashCode:()I
      32: iadd
      33: istore_1
      34: iload_1
      35: bipush        31
      37: imul
      38: aload_0
      39: getfield      #35                 // Field rawRules:Ljava/util/List;
      42: invokevirtual #253                // Method java/lang/Object.hashCode:()I
      45: iadd
      46: istore_1
      47: iload_1
      48: ireturn

  public boolean equals(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: if_acmpne     7
       5: iconst_1
       6: ireturn
       7: aload_1
       8: instanceof    #2                  // class Day19$Job
      11: ifne          16
      14: iconst_0
      15: ireturn
      16: aload_1
      17: checkcast     #2                  // class Day19$Job
      20: astore_2
      21: aload_0
      22: getfield      #28                 // Field id:Ljava/lang/String;
      25: aload_2
      26: getfield      #28                 // Field id:Ljava/lang/String;
      29: invokestatic  #104                // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      32: ifne          37
      35: iconst_0
      36: ireturn
      37: aload_0
      38: getfield      #31                 // Field rules:Ljava/util/List;
      41: aload_2
      42: getfield      #31                 // Field rules:Ljava/util/List;
      45: invokestatic  #104                // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      48: ifne          53
      51: iconst_0
      52: ireturn
      53: aload_0
      54: getfield      #33                 // Field endState:Ljava/lang/String;
      57: aload_2
      58: getfield      #33                 // Field endState:Ljava/lang/String;
      61: invokestatic  #104                // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      64: ifne          69
      67: iconst_0
      68: ireturn
      69: aload_0
      70: getfield      #35                 // Field rawRules:Ljava/util/List;
      73: aload_2
      74: getfield      #35                 // Field rawRules:Ljava/util/List;
      77: invokestatic  #104                // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      80: ifne          85
      83: iconst_0
      84: ireturn
      85: iconst_1
      86: ireturn

  static {};
    Code:
       0: new           #260                // class Day19$Job$Companion
       3: dup
       4: aconst_null
       5: invokespecial #263                // Method Day19$Job$Companion."<init>":(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
       8: putstatic     #267                // Field Companion:LDay19$Job$Companion;
      11: return
}

Compiled from "Day19.kt"
public final class Day19$Condition {
  private final java.lang.String key;

  private final java.lang.String op;

  private final int value;

  public Day19$Condition(java.lang.String, java.lang.String, int);
    Code:
       0: aload_1
       1: ldc           #9                  // String key
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_2
       7: ldc           #17                 // String op
       9: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_0
      13: invokespecial #20                 // Method java/lang/Object."<init>":()V
      16: aload_0
      17: aload_1
      18: putfield      #23                 // Field key:Ljava/lang/String;
      21: aload_0
      22: aload_2
      23: putfield      #25                 // Field op:Ljava/lang/String;
      26: aload_0
      27: iload_3
      28: putfield      #29                 // Field value:I
      31: return

  public final java.lang.String getKey();
    Code:
       0: aload_0
       1: getfield      #23                 // Field key:Ljava/lang/String;
       4: areturn

  public final java.lang.String getOp();
    Code:
       0: aload_0
       1: getfield      #25                 // Field op:Ljava/lang/String;
       4: areturn

  public final int getValue();
    Code:
       0: aload_0
       1: getfield      #29                 // Field value:I
       4: ireturn

  public final Day19$MinAndMax toMinAndMax();
    Code:
       0: aload_0
       1: getfield      #25                 // Field op:Ljava/lang/String;
       4: astore_1
       5: aload_1
       6: invokevirtual #43                 // Method java/lang/String.hashCode:()I
       9: lookupswitch  { // 4
                    60: 64
                    62: 76
                  1921: 52
                  1983: 88
               default: 188
          }
      52: aload_1
      53: ldc           #45                 // String <=
      55: invokevirtual #49                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      58: ifne          122
      61: goto          188
      64: aload_1
      65: ldc           #51                 // String <
      67: invokevirtual #49                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      70: ifne          100
      73: goto          188
      76: aload_1
      77: ldc           #53                 // String >
      79: invokevirtual #49                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      82: ifne          142
      85: goto          188
      88: aload_1
      89: ldc           #55                 // String >=
      91: invokevirtual #49                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      94: ifne          166
      97: goto          188
     100: new           #57                 // class Day19$MinAndMax
     103: dup
     104: lconst_1
     105: aload_0
     106: getfield      #29                 // Field value:I
     109: i2l
     110: lconst_1
     111: lsub
     112: aload_0
     113: getfield      #23                 // Field key:Ljava/lang/String;
     116: invokespecial #60                 // Method Day19$MinAndMax."<init>":(JJLjava/lang/String;)V
     119: goto          218
     122: new           #57                 // class Day19$MinAndMax
     125: dup
     126: lconst_1
     127: aload_0
     128: getfield      #29                 // Field value:I
     131: i2l
     132: aload_0
     133: getfield      #23                 // Field key:Ljava/lang/String;
     136: invokespecial #60                 // Method Day19$MinAndMax."<init>":(JJLjava/lang/String;)V
     139: goto          218
     142: new           #57                 // class Day19$MinAndMax
     145: dup
     146: aload_0
     147: getfield      #29                 // Field value:I
     150: i2l
     151: lconst_1
     152: ladd
     153: ldc2_w        #61                 // long 4000l
     156: aload_0
     157: getfield      #23                 // Field key:Ljava/lang/String;
     160: invokespecial #60                 // Method Day19$MinAndMax."<init>":(JJLjava/lang/String;)V
     163: goto          218
     166: new           #57                 // class Day19$MinAndMax
     169: dup
     170: aload_0
     171: getfield      #29                 // Field value:I
     174: i2l
     175: ldc2_w        #61                 // long 4000l
     178: aload_0
     179: getfield      #23                 // Field key:Ljava/lang/String;
     182: invokespecial #60                 // Method Day19$MinAndMax."<init>":(JJLjava/lang/String;)V
     185: goto          218
     188: new           #64                 // class java/lang/IllegalArgumentException
     191: dup
     192: new           #66                 // class java/lang/StringBuilder
     195: dup
     196: invokespecial #67                 // Method java/lang/StringBuilder."<init>":()V
     199: ldc           #69                 // String Cannot inverse op
     201: invokevirtual #73                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
     204: aload_0
     205: getfield      #25                 // Field op:Ljava/lang/String;
     208: invokevirtual #73                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
     211: invokevirtual #76                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
     214: invokespecial #79                 // Method java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
     217: athrow
     218: areturn

  public final java.lang.String component1();
    Code:
       0: aload_0
       1: getfield      #23                 // Field key:Ljava/lang/String;
       4: areturn

  public final java.lang.String component2();
    Code:
       0: aload_0
       1: getfield      #25                 // Field op:Ljava/lang/String;
       4: areturn

  public final int component3();
    Code:
       0: aload_0
       1: getfield      #29                 // Field value:I
       4: ireturn

  public final Day19$Condition copy(java.lang.String, java.lang.String, int);
    Code:
       0: aload_1
       1: ldc           #9                  // String key
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_2
       7: ldc           #17                 // String op
       9: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: new           #2                  // class Day19$Condition
      15: dup
      16: aload_1
      17: aload_2
      18: iload_3
      19: invokespecial #86                 // Method "<init>":(Ljava/lang/String;Ljava/lang/String;I)V
      22: areturn

  public static Day19$Condition copy$default(Day19$Condition, java.lang.String, java.lang.String, int, int, java.lang.Object);
    Code:
       0: iload         4
       2: iconst_1
       3: iand
       4: ifeq          12
       7: aload_0
       8: getfield      #23                 // Field key:Ljava/lang/String;
      11: astore_1
      12: iload         4
      14: iconst_2
      15: iand
      16: ifeq          24
      19: aload_0
      20: getfield      #25                 // Field op:Ljava/lang/String;
      23: astore_2
      24: iload         4
      26: iconst_4
      27: iand
      28: ifeq          36
      31: aload_0
      32: getfield      #29                 // Field value:I
      35: istore_3
      36: aload_0
      37: aload_1
      38: aload_2
      39: iload_3
      40: invokevirtual #90                 // Method copy:(Ljava/lang/String;Ljava/lang/String;I)LDay19$Condition;
      43: areturn

  public java.lang.String toString();
    Code:
       0: new           #66                 // class java/lang/StringBuilder
       3: dup
       4: invokespecial #67                 // Method java/lang/StringBuilder."<init>":()V
       7: ldc           #92                 // String Condition(key=
       9: invokevirtual #73                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      12: aload_0
      13: getfield      #23                 // Field key:Ljava/lang/String;
      16: invokevirtual #73                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      19: ldc           #94                 // String , op=
      21: invokevirtual #73                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      24: aload_0
      25: getfield      #25                 // Field op:Ljava/lang/String;
      28: invokevirtual #73                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      31: ldc           #96                 // String , value=
      33: invokevirtual #73                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      36: aload_0
      37: getfield      #29                 // Field value:I
      40: invokevirtual #99                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
      43: bipush        41
      45: invokevirtual #102                // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
      48: invokevirtual #76                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      51: areturn

  public int hashCode();
    Code:
       0: aload_0
       1: getfield      #23                 // Field key:Ljava/lang/String;
       4: invokevirtual #43                 // Method java/lang/String.hashCode:()I
       7: istore_1
       8: iload_1
       9: bipush        31
      11: imul
      12: aload_0
      13: getfield      #25                 // Field op:Ljava/lang/String;
      16: invokevirtual #43                 // Method java/lang/String.hashCode:()I
      19: iadd
      20: istore_1
      21: iload_1
      22: bipush        31
      24: imul
      25: aload_0
      26: getfield      #29                 // Field value:I
      29: invokestatic  #107                // Method java/lang/Integer.hashCode:(I)I
      32: iadd
      33: istore_1
      34: iload_1
      35: ireturn

  public boolean equals(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: if_acmpne     7
       5: iconst_1
       6: ireturn
       7: aload_1
       8: instanceof    #2                  // class Day19$Condition
      11: ifne          16
      14: iconst_0
      15: ireturn
      16: aload_1
      17: checkcast     #2                  // class Day19$Condition
      20: astore_2
      21: aload_0
      22: getfield      #23                 // Field key:Ljava/lang/String;
      25: aload_2
      26: getfield      #23                 // Field key:Ljava/lang/String;
      29: invokestatic  #113                // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      32: ifne          37
      35: iconst_0
      36: ireturn
      37: aload_0
      38: getfield      #25                 // Field op:Ljava/lang/String;
      41: aload_2
      42: getfield      #25                 // Field op:Ljava/lang/String;
      45: invokestatic  #113                // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      48: ifne          53
      51: iconst_0
      52: ireturn
      53: aload_0
      54: getfield      #29                 // Field value:I
      57: aload_2
      58: getfield      #29                 // Field value:I
      61: if_icmpeq     66
      64: iconst_0
      65: ireturn
      66: iconst_1
      67: ireturn
}

Compiled from "Day19.kt"
public final class Day19$CompositeCondition {
  private final java.util.List<Day19$Condition> conditions;

  private final java.lang.String nextState;

  public Day19$CompositeCondition(java.util.List<Day19$Condition>, java.lang.String);
    Code:
       0: aload_1
       1: ldc           #10                 // String conditions
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_2
       7: ldc           #18                 // String nextState
       9: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_0
      13: invokespecial #21                 // Method java/lang/Object."<init>":()V
      16: aload_0
      17: aload_1
      18: putfield      #24                 // Field conditions:Ljava/util/List;
      21: aload_0
      22: aload_2
      23: putfield      #27                 // Field nextState:Ljava/lang/String;
      26: return

  public final java.util.List<Day19$Condition> getConditions();
    Code:
       0: aload_0
       1: getfield      #24                 // Field conditions:Ljava/util/List;
       4: areturn

  public final java.lang.String getNextState();
    Code:
       0: aload_0
       1: getfield      #27                 // Field nextState:Ljava/lang/String;
       4: areturn

  public final java.util.List<Day19$Condition> component1();
    Code:
       0: aload_0
       1: getfield      #24                 // Field conditions:Ljava/util/List;
       4: areturn

  public final java.lang.String component2();
    Code:
       0: aload_0
       1: getfield      #27                 // Field nextState:Ljava/lang/String;
       4: areturn

  public final Day19$CompositeCondition copy(java.util.List<Day19$Condition>, java.lang.String);
    Code:
       0: aload_1
       1: ldc           #10                 // String conditions
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_2
       7: ldc           #18                 // String nextState
       9: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: new           #2                  // class Day19$CompositeCondition
      15: dup
      16: aload_1
      17: aload_2
      18: invokespecial #41                 // Method "<init>":(Ljava/util/List;Ljava/lang/String;)V
      21: areturn

  public static Day19$CompositeCondition copy$default(Day19$CompositeCondition, java.util.List, java.lang.String, int, java.lang.Object);
    Code:
       0: iload_3
       1: iconst_1
       2: iand
       3: ifeq          11
       6: aload_0
       7: getfield      #24                 // Field conditions:Ljava/util/List;
      10: astore_1
      11: iload_3
      12: iconst_2
      13: iand
      14: ifeq          22
      17: aload_0
      18: getfield      #27                 // Field nextState:Ljava/lang/String;
      21: astore_2
      22: aload_0
      23: aload_1
      24: aload_2
      25: invokevirtual #45                 // Method copy:(Ljava/util/List;Ljava/lang/String;)LDay19$CompositeCondition;
      28: areturn

  public java.lang.String toString();
    Code:
       0: new           #48                 // class java/lang/StringBuilder
       3: dup
       4: invokespecial #49                 // Method java/lang/StringBuilder."<init>":()V
       7: ldc           #51                 // String CompositeCondition(conditions=
       9: invokevirtual #55                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      12: aload_0
      13: getfield      #24                 // Field conditions:Ljava/util/List;
      16: invokevirtual #58                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
      19: ldc           #60                 // String , nextState=
      21: invokevirtual #55                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      24: aload_0
      25: getfield      #27                 // Field nextState:Ljava/lang/String;
      28: invokevirtual #55                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      31: bipush        41
      33: invokevirtual #63                 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
      36: invokevirtual #65                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      39: areturn

  public int hashCode();
    Code:
       0: aload_0
       1: getfield      #24                 // Field conditions:Ljava/util/List;
       4: invokevirtual #69                 // Method java/lang/Object.hashCode:()I
       7: istore_1
       8: iload_1
       9: bipush        31
      11: imul
      12: aload_0
      13: getfield      #27                 // Field nextState:Ljava/lang/String;
      16: invokevirtual #72                 // Method java/lang/String.hashCode:()I
      19: iadd
      20: istore_1
      21: iload_1
      22: ireturn

  public boolean equals(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: if_acmpne     7
       5: iconst_1
       6: ireturn
       7: aload_1
       8: instanceof    #2                  // class Day19$CompositeCondition
      11: ifne          16
      14: iconst_0
      15: ireturn
      16: aload_1
      17: checkcast     #2                  // class Day19$CompositeCondition
      20: astore_2
      21: aload_0
      22: getfield      #24                 // Field conditions:Ljava/util/List;
      25: aload_2
      26: getfield      #24                 // Field conditions:Ljava/util/List;
      29: invokestatic  #81                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      32: ifne          37
      35: iconst_0
      36: ireturn
      37: aload_0
      38: getfield      #27                 // Field nextState:Ljava/lang/String;
      41: aload_2
      42: getfield      #27                 // Field nextState:Ljava/lang/String;
      45: invokestatic  #81                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      48: ifne          53
      51: iconst_0
      52: ireturn
      53: iconst_1
      54: ireturn
}

Compiled from "Day19.kt"
public final class Day19$Part {
  public static final Day19$Part$Companion Companion;

  private final java.util.Map<java.lang.String, java.lang.Integer> ratings;

  public Day19$Part(java.util.Map<java.lang.String, java.lang.Integer>);
    Code:
       0: aload_1
       1: ldc           #10                 // String ratings
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: invokespecial #19                 // Method java/lang/Object."<init>":()V
      10: aload_0
      11: aload_1
      12: putfield      #22                 // Field ratings:Ljava/util/Map;
      15: return

  public final java.util.Map<java.lang.String, java.lang.Integer> getRatings();
    Code:
       0: aload_0
       1: getfield      #22                 // Field ratings:Ljava/util/Map;
       4: areturn

  public final int score();
    Code:
       0: aload_0
       1: getfield      #22                 // Field ratings:Ljava/util/Map;
       4: invokeinterface #35,  1           // InterfaceMethod java/util/Map.values:()Ljava/util/Collection;
       9: checkcast     #37                 // class java/lang/Iterable
      12: invokestatic  #43                 // Method kotlin/collections/CollectionsKt.sumOfInt:(Ljava/lang/Iterable;)I
      15: ireturn

  public final java.util.Map<java.lang.String, java.lang.Integer> component1();
    Code:
       0: aload_0
       1: getfield      #22                 // Field ratings:Ljava/util/Map;
       4: areturn

  public final Day19$Part copy(java.util.Map<java.lang.String, java.lang.Integer>);
    Code:
       0: aload_1
       1: ldc           #10                 // String ratings
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: new           #2                  // class Day19$Part
       9: dup
      10: aload_1
      11: invokespecial #49                 // Method "<init>":(Ljava/util/Map;)V
      14: areturn

  public static Day19$Part copy$default(Day19$Part, java.util.Map, int, java.lang.Object);
    Code:
       0: iload_2
       1: iconst_1
       2: iand
       3: ifeq          11
       6: aload_0
       7: getfield      #22                 // Field ratings:Ljava/util/Map;
      10: astore_1
      11: aload_0
      12: aload_1
      13: invokevirtual #53                 // Method copy:(Ljava/util/Map;)LDay19$Part;
      16: areturn

  public java.lang.String toString();
    Code:
       0: new           #57                 // class java/lang/StringBuilder
       3: dup
       4: invokespecial #58                 // Method java/lang/StringBuilder."<init>":()V
       7: ldc           #60                 // String Part(ratings=
       9: invokevirtual #64                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      12: aload_0
      13: getfield      #22                 // Field ratings:Ljava/util/Map;
      16: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
      19: bipush        41
      21: invokevirtual #70                 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
      24: invokevirtual #72                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      27: areturn

  public int hashCode();
    Code:
       0: aload_0
       1: getfield      #22                 // Field ratings:Ljava/util/Map;
       4: invokevirtual #75                 // Method java/lang/Object.hashCode:()I
       7: ireturn

  public boolean equals(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: if_acmpne     7
       5: iconst_1
       6: ireturn
       7: aload_1
       8: instanceof    #2                  // class Day19$Part
      11: ifne          16
      14: iconst_0
      15: ireturn
      16: aload_1
      17: checkcast     #2                  // class Day19$Part
      20: astore_2
      21: aload_0
      22: getfield      #22                 // Field ratings:Ljava/util/Map;
      25: aload_2
      26: getfield      #22                 // Field ratings:Ljava/util/Map;
      29: invokestatic  #82                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      32: ifne          37
      35: iconst_0
      36: ireturn
      37: iconst_1
      38: ireturn

  static {};
    Code:
       0: new           #87                 // class Day19$Part$Companion
       3: dup
       4: aconst_null
       5: invokespecial #90                 // Method Day19$Part$Companion."<init>":(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
       8: putstatic     #94                 // Field Companion:LDay19$Part$Companion;
      11: return
}

Compiled from "Day19.kt"
public final class Day19$Rule {
  private final java.lang.String key;

  private final java.lang.String op;

  private final int value;

  private final java.lang.String nextState;

  public Day19$Rule(java.lang.String, java.lang.String, int, java.lang.String);
    Code:
       0: aload_1
       1: ldc           #9                  // String key
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_2
       7: ldc           #17                 // String op
       9: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload         4
      14: ldc           #19                 // String nextState
      16: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      19: aload_0
      20: invokespecial #22                 // Method java/lang/Object."<init>":()V
      23: aload_0
      24: aload_1
      25: putfield      #25                 // Field key:Ljava/lang/String;
      28: aload_0
      29: aload_2
      30: putfield      #27                 // Field op:Ljava/lang/String;
      33: aload_0
      34: iload_3
      35: putfield      #31                 // Field value:I
      38: aload_0
      39: aload         4
      41: putfield      #33                 // Field nextState:Ljava/lang/String;
      44: return

  public final java.lang.String getKey();
    Code:
       0: aload_0
       1: getfield      #25                 // Field key:Ljava/lang/String;
       4: areturn

  public final java.lang.String getOp();
    Code:
       0: aload_0
       1: getfield      #27                 // Field op:Ljava/lang/String;
       4: areturn

  public final int getValue();
    Code:
       0: aload_0
       1: getfield      #31                 // Field value:I
       4: ireturn

  public final java.lang.String getNextState();
    Code:
       0: aload_0
       1: getfield      #33                 // Field nextState:Ljava/lang/String;
       4: areturn

  public final Day19$Rule inverse();
    Code:
       0: aload_0
       1: getfield      #27                 // Field op:Ljava/lang/String;
       4: astore_2
       5: aload_2
       6: ldc           #45                 // String <
       8: invokestatic  #49                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      11: ifeq          19
      14: ldc           #51                 // String >=
      16: goto          63
      19: aload_2
      20: ldc           #53                 // String >
      22: invokestatic  #49                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      25: ifeq          33
      28: ldc           #55                 // String <=
      30: goto          63
      33: new           #57                 // class java/lang/IllegalArgumentException
      36: dup
      37: new           #59                 // class java/lang/StringBuilder
      40: dup
      41: invokespecial #60                 // Method java/lang/StringBuilder."<init>":()V
      44: ldc           #62                 // String Cannot inverse op
      46: invokevirtual #66                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      49: aload_0
      50: getfield      #27                 // Field op:Ljava/lang/String;
      53: invokevirtual #66                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      56: invokevirtual #69                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      59: invokespecial #72                 // Method java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
      62: athrow
      63: astore_1
      64: new           #2                  // class Day19$Rule
      67: dup
      68: aload_0
      69: getfield      #25                 // Field key:Ljava/lang/String;
      72: aload_1
      73: aload_0
      74: getfield      #31                 // Field value:I
      77: aload_0
      78: getfield      #33                 // Field nextState:Ljava/lang/String;
      81: invokespecial #74                 // Method "<init>":(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
      84: areturn

  public final java.lang.String component1();
    Code:
       0: aload_0
       1: getfield      #25                 // Field key:Ljava/lang/String;
       4: areturn

  public final java.lang.String component2();
    Code:
       0: aload_0
       1: getfield      #27                 // Field op:Ljava/lang/String;
       4: areturn

  public final int component3();
    Code:
       0: aload_0
       1: getfield      #31                 // Field value:I
       4: ireturn

  public final java.lang.String component4();
    Code:
       0: aload_0
       1: getfield      #33                 // Field nextState:Ljava/lang/String;
       4: areturn

  public final Day19$Rule copy(java.lang.String, java.lang.String, int, java.lang.String);
    Code:
       0: aload_1
       1: ldc           #9                  // String key
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_2
       7: ldc           #17                 // String op
       9: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload         4
      14: ldc           #19                 // String nextState
      16: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      19: new           #2                  // class Day19$Rule
      22: dup
      23: aload_1
      24: aload_2
      25: iload_3
      26: aload         4
      28: invokespecial #74                 // Method "<init>":(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
      31: areturn

  public static Day19$Rule copy$default(Day19$Rule, java.lang.String, java.lang.String, int, java.lang.String, int, java.lang.Object);
    Code:
       0: iload         5
       2: iconst_1
       3: iand
       4: ifeq          12
       7: aload_0
       8: getfield      #25                 // Field key:Ljava/lang/String;
      11: astore_1
      12: iload         5
      14: iconst_2
      15: iand
      16: ifeq          24
      19: aload_0
      20: getfield      #27                 // Field op:Ljava/lang/String;
      23: astore_2
      24: iload         5
      26: iconst_4
      27: iand
      28: ifeq          36
      31: aload_0
      32: getfield      #31                 // Field value:I
      35: istore_3
      36: iload         5
      38: bipush        8
      40: iand
      41: ifeq          50
      44: aload_0
      45: getfield      #33                 // Field nextState:Ljava/lang/String;
      48: astore        4
      50: aload_0
      51: aload_1
      52: aload_2
      53: iload_3
      54: aload         4
      56: invokevirtual #87                 // Method copy:(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)LDay19$Rule;
      59: areturn

  public java.lang.String toString();
    Code:
       0: new           #59                 // class java/lang/StringBuilder
       3: dup
       4: invokespecial #60                 // Method java/lang/StringBuilder."<init>":()V
       7: ldc           #89                 // String Rule(key=
       9: invokevirtual #66                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      12: aload_0
      13: getfield      #25                 // Field key:Ljava/lang/String;
      16: invokevirtual #66                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      19: ldc           #91                 // String , op=
      21: invokevirtual #66                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      24: aload_0
      25: getfield      #27                 // Field op:Ljava/lang/String;
      28: invokevirtual #66                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      31: ldc           #93                 // String , value=
      33: invokevirtual #66                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      36: aload_0
      37: getfield      #31                 // Field value:I
      40: invokevirtual #96                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
      43: ldc           #98                 // String , nextState=
      45: invokevirtual #66                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      48: aload_0
      49: getfield      #33                 // Field nextState:Ljava/lang/String;
      52: invokevirtual #66                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      55: bipush        41
      57: invokevirtual #101                // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
      60: invokevirtual #69                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      63: areturn

  public int hashCode();
    Code:
       0: aload_0
       1: getfield      #25                 // Field key:Ljava/lang/String;
       4: invokevirtual #104                // Method java/lang/String.hashCode:()I
       7: istore_1
       8: iload_1
       9: bipush        31
      11: imul
      12: aload_0
      13: getfield      #27                 // Field op:Ljava/lang/String;
      16: invokevirtual #104                // Method java/lang/String.hashCode:()I
      19: iadd
      20: istore_1
      21: iload_1
      22: bipush        31
      24: imul
      25: aload_0
      26: getfield      #31                 // Field value:I
      29: invokestatic  #109                // Method java/lang/Integer.hashCode:(I)I
      32: iadd
      33: istore_1
      34: iload_1
      35: bipush        31
      37: imul
      38: aload_0
      39: getfield      #33                 // Field nextState:Ljava/lang/String;
      42: invokevirtual #104                // Method java/lang/String.hashCode:()I
      45: iadd
      46: istore_1
      47: iload_1
      48: ireturn

  public boolean equals(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: if_acmpne     7
       5: iconst_1
       6: ireturn
       7: aload_1
       8: instanceof    #2                  // class Day19$Rule
      11: ifne          16
      14: iconst_0
      15: ireturn
      16: aload_1
      17: checkcast     #2                  // class Day19$Rule
      20: astore_2
      21: aload_0
      22: getfield      #25                 // Field key:Ljava/lang/String;
      25: aload_2
      26: getfield      #25                 // Field key:Ljava/lang/String;
      29: invokestatic  #49                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      32: ifne          37
      35: iconst_0
      36: ireturn
      37: aload_0
      38: getfield      #27                 // Field op:Ljava/lang/String;
      41: aload_2
      42: getfield      #27                 // Field op:Ljava/lang/String;
      45: invokestatic  #49                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      48: ifne          53
      51: iconst_0
      52: ireturn
      53: aload_0
      54: getfield      #31                 // Field value:I
      57: aload_2
      58: getfield      #31                 // Field value:I
      61: if_icmpeq     66
      64: iconst_0
      65: ireturn
      66: aload_0
      67: getfield      #33                 // Field nextState:Ljava/lang/String;
      70: aload_2
      71: getfield      #33                 // Field nextState:Ljava/lang/String;
      74: invokestatic  #49                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      77: ifne          82
      80: iconst_0
      81: ireturn
      82: iconst_1
      83: ireturn
}

Compiled from "Day19.kt"
public final class Day19$Path {
  private final java.util.List<Day19$CompositeCondition> compositeConditions;

  public Day19$Path(java.util.List<Day19$CompositeCondition>);
    Code:
       0: aload_1
       1: ldc           #10                 // String compositeConditions
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: invokespecial #19                 // Method java/lang/Object."<init>":()V
      10: aload_0
      11: aload_1
      12: putfield      #22                 // Field compositeConditions:Ljava/util/List;
      15: return

  public final java.util.List<Day19$CompositeCondition> getCompositeConditions();
    Code:
       0: aload_0
       1: getfield      #22                 // Field compositeConditions:Ljava/util/List;
       4: areturn

  public final Day19$Path with(Day19$CompositeCondition);
    Code:
       0: aload_1
       1: ldc           #31                 // String compositeCondition
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: new           #2                  // class Day19$Path
       9: dup
      10: aload_0
      11: getfield      #22                 // Field compositeConditions:Ljava/util/List;
      14: checkcast     #33                 // class java/util/Collection
      17: aload_1
      18: invokestatic  #39                 // Method kotlin/collections/CollectionsKt.plus:(Ljava/util/Collection;Ljava/lang/Object;)Ljava/util/List;
      21: invokespecial #41                 // Method "<init>":(Ljava/util/List;)V
      24: areturn

  public final java.util.List<Day19$CompositeCondition> component1();
    Code:
       0: aload_0
       1: getfield      #22                 // Field compositeConditions:Ljava/util/List;
       4: areturn

  public final Day19$Path copy(java.util.List<Day19$CompositeCondition>);
    Code:
       0: aload_1
       1: ldc           #10                 // String compositeConditions
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: new           #2                  // class Day19$Path
       9: dup
      10: aload_1
      11: invokespecial #41                 // Method "<init>":(Ljava/util/List;)V
      14: areturn

  public static Day19$Path copy$default(Day19$Path, java.util.List, int, java.lang.Object);
    Code:
       0: iload_2
       1: iconst_1
       2: iand
       3: ifeq          11
       6: aload_0
       7: getfield      #22                 // Field compositeConditions:Ljava/util/List;
      10: astore_1
      11: aload_0
      12: aload_1
      13: invokevirtual #50                 // Method copy:(Ljava/util/List;)LDay19$Path;
      16: areturn

  public java.lang.String toString();
    Code:
       0: new           #54                 // class java/lang/StringBuilder
       3: dup
       4: invokespecial #55                 // Method java/lang/StringBuilder."<init>":()V
       7: ldc           #57                 // String Path(compositeConditions=
       9: invokevirtual #61                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      12: aload_0
      13: getfield      #22                 // Field compositeConditions:Ljava/util/List;
      16: invokevirtual #64                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
      19: bipush        41
      21: invokevirtual #67                 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
      24: invokevirtual #69                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      27: areturn

  public int hashCode();
    Code:
       0: aload_0
       1: getfield      #22                 // Field compositeConditions:Ljava/util/List;
       4: invokevirtual #73                 // Method java/lang/Object.hashCode:()I
       7: ireturn

  public boolean equals(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: if_acmpne     7
       5: iconst_1
       6: ireturn
       7: aload_1
       8: instanceof    #2                  // class Day19$Path
      11: ifne          16
      14: iconst_0
      15: ireturn
      16: aload_1
      17: checkcast     #2                  // class Day19$Path
      20: astore_2
      21: aload_0
      22: getfield      #22                 // Field compositeConditions:Ljava/util/List;
      25: aload_2
      26: getfield      #22                 // Field compositeConditions:Ljava/util/List;
      29: invokestatic  #80                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      32: ifne          37
      35: iconst_0
      36: ireturn
      37: iconst_1
      38: ireturn
}

Compiled from "Day19.kt"
public final class Day19$Part$Companion {
  private Day19$Part$Companion();
    Code:
       0: aload_0
       1: invokespecial #8                  // Method java/lang/Object."<init>":()V
       4: return

  public final Day19$Part parse(java.lang.String);
    Code:
       0: aload_1
       1: ldc           #15                 // String input
       3: invokestatic  #21                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: iconst_1
       8: invokestatic  #27                 // Method kotlin/text/StringsKt.drop:(Ljava/lang/String;I)Ljava/lang/String;
      11: iconst_1
      12: invokestatic  #30                 // Method kotlin/text/StringsKt.dropLast:(Ljava/lang/String;I)Ljava/lang/String;
      15: checkcast     #32                 // class java/lang/CharSequence
      18: iconst_1
      19: anewarray     #34                 // class java/lang/String
      22: astore_3
      23: aload_3
      24: iconst_0
      25: ldc           #36                 // String ,
      27: aastore
      28: aload_3
      29: iconst_0
      30: iconst_0
      31: bipush        6
      33: aconst_null
      34: invokestatic  #40                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
      37: checkcast     #42                 // class java/lang/Iterable
      40: astore_3
      41: iconst_0
      42: istore        4
      44: aload_3
      45: astore        5
      47: new           #44                 // class java/util/ArrayList
      50: dup
      51: aload_3
      52: bipush        10
      54: invokestatic  #50                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      57: invokespecial #53                 // Method java/util/ArrayList."<init>":(I)V
      60: checkcast     #55                 // class java/util/Collection
      63: astore        6
      65: iconst_0
      66: istore        7
      68: aload         5
      70: invokeinterface #59,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      75: astore        8
      77: aload         8
      79: invokeinterface #65,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      84: ifeq          190
      87: aload         8
      89: invokeinterface #69,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      94: astore        9
      96: aload         6
      98: aload         9
     100: checkcast     #34                 // class java/lang/String
     103: astore        10
     105: astore        15
     107: iconst_0
     108: istore        11
     110: aload         10
     112: checkcast     #32                 // class java/lang/CharSequence
     115: iconst_1
     116: anewarray     #34                 // class java/lang/String
     119: astore        12
     121: aload         12
     123: iconst_0
     124: ldc           #71                 // String =
     126: aastore
     127: aload         12
     129: iconst_0
     130: iconst_0
     131: bipush        6
     133: aconst_null
     134: invokestatic  #40                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
     137: astore        13
     139: aload         13
     141: iconst_0
     142: invokeinterface #77,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     147: checkcast     #34                 // class java/lang/String
     150: astore        12
     152: aload         13
     154: iconst_1
     155: invokeinterface #77,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     160: checkcast     #34                 // class java/lang/String
     163: astore        14
     165: aload         12
     167: aload         14
     169: invokestatic  #83                 // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
     172: invokestatic  #87                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     175: invokestatic  #93                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     178: aload         15
     180: swap
     181: invokeinterface #97,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     186: pop
     187: goto          77
     190: aload         6
     192: checkcast     #73                 // class java/util/List
     195: nop
     196: checkcast     #42                 // class java/lang/Iterable
     199: invokestatic  #103                // Method kotlin/collections/MapsKt.toMap:(Ljava/lang/Iterable;)Ljava/util/Map;
     202: astore_2
     203: new           #105                // class Day19$Part
     206: dup
     207: aload_2
     208: invokespecial #108                // Method Day19$Part."<init>":(Ljava/util/Map;)V
     211: areturn

  public Day19$Part$Companion(kotlin.jvm.internal.DefaultConstructorMarker);
    Code:
       0: aload_0
       1: invokespecial #127                // Method "<init>":()V
       4: return
}

Compiled from "Day19.kt"
public final class Day19$PathFinder {
  private final java.util.Map<java.lang.String, Day19$Job> jobs;

  public Day19$PathFinder(java.util.Map<java.lang.String, Day19$Job>);
    Code:
       0: aload_1
       1: ldc           #10                 // String jobs
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: invokespecial #19                 // Method java/lang/Object."<init>":()V
      10: aload_0
      11: aload_1
      12: putfield      #22                 // Field jobs:Ljava/util/Map;
      15: return

  public final java.util.Map<java.lang.String, Day19$Job> getJobs();
    Code:
       0: aload_0
       1: getfield      #22                 // Field jobs:Ljava/util/Map;
       4: areturn

  public final java.util.List<Day19$Path> findPathsToRejectedState();
    Code:
       0: aload_0
       1: getfield      #22                 // Field jobs:Ljava/util/Map;
       4: ldc           #32                 // String in
       6: invokeinterface #38,  2           // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
      11: dup
      12: invokestatic  #42                 // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
      15: checkcast     #44                 // class Day19$Job
      18: astore_1
      19: new           #46                 // class java/util/ArrayList
      22: dup
      23: invokespecial #47                 // Method java/util/ArrayList."<init>":()V
      26: checkcast     #49                 // class java/util/List
      29: astore_2
      30: aload_2
      31: aload_1
      32: invokevirtual #52                 // Method Day19$Job.conditionsLeadingToRejectedState:()Ljava/util/List;
      35: checkcast     #54                 // class java/lang/Iterable
      38: astore_3
      39: astore        20
      41: iconst_0
      42: istore        4
      44: aload_3
      45: astore        5
      47: new           #46                 // class java/util/ArrayList
      50: dup
      51: aload_3
      52: bipush        10
      54: invokestatic  #60                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      57: invokespecial #63                 // Method java/util/ArrayList."<init>":(I)V
      60: checkcast     #65                 // class java/util/Collection
      63: astore        6
      65: iconst_0
      66: istore        7
      68: aload         5
      70: invokeinterface #69,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      75: astore        8
      77: aload         8
      79: invokeinterface #75,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      84: ifeq          134
      87: aload         8
      89: invokeinterface #79,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      94: astore        9
      96: aload         6
      98: aload         9
     100: checkcast     #81                 // class Day19$CompositeCondition
     103: astore        10
     105: astore        21
     107: iconst_0
     108: istore        11
     110: new           #83                 // class Day19$Path
     113: dup
     114: aload         10
     116: invokestatic  #87                 // Method kotlin/collections/CollectionsKt.listOf:(Ljava/lang/Object;)Ljava/util/List;
     119: invokespecial #90                 // Method Day19$Path."<init>":(Ljava/util/List;)V
     122: aload         21
     124: swap
     125: invokeinterface #94,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     130: pop
     131: goto          77
     134: aload         6
     136: checkcast     #49                 // class java/util/List
     139: nop
     140: aload         20
     142: swap
     143: checkcast     #65                 // class java/util/Collection
     146: invokeinterface #98,  2           // InterfaceMethod java/util/List.addAll:(Ljava/util/Collection;)Z
     151: pop
     152: aload_1
     153: invokevirtual #101                // Method Day19$Job.nonTerminalConditions:()Ljava/util/List;
     156: checkcast     #54                 // class java/lang/Iterable
     159: astore        4
     161: nop
     162: iconst_0
     163: istore        5
     165: aload         4
     167: astore        6
     169: new           #46                 // class java/util/ArrayList
     172: dup
     173: aload         4
     175: bipush        10
     177: invokestatic  #60                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     180: invokespecial #63                 // Method java/util/ArrayList."<init>":(I)V
     183: checkcast     #65                 // class java/util/Collection
     186: astore        7
     188: iconst_0
     189: istore        8
     191: aload         6
     193: invokeinterface #69,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     198: astore        9
     200: aload         9
     202: invokeinterface #75,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     207: ifeq          262
     210: aload         9
     212: invokeinterface #79,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     217: astore        10
     219: aload         7
     221: aload         10
     223: checkcast     #81                 // class Day19$CompositeCondition
     226: astore        11
     228: astore        22
     230: iconst_0
     231: istore        12
     233: aload         11
     235: new           #83                 // class Day19$Path
     238: dup
     239: aload         11
     241: invokestatic  #87                 // Method kotlin/collections/CollectionsKt.listOf:(Ljava/lang/Object;)Ljava/util/List;
     244: invokespecial #90                 // Method Day19$Path."<init>":(Ljava/util/List;)V
     247: invokestatic  #107                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     250: aload         22
     252: swap
     253: invokeinterface #94,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     258: pop
     259: goto          200
     262: aload         7
     264: checkcast     #49                 // class java/util/List
     267: nop
     268: checkcast     #65                 // class java/util/Collection
     271: astore        23
     273: new           #109                // class kotlin/collections/ArrayDeque
     276: dup
     277: aload         23
     279: invokespecial #112                // Method kotlin/collections/ArrayDeque."<init>":(Ljava/util/Collection;)V
     282: astore_3
     283: aload_3
     284: checkcast     #65                 // class java/util/Collection
     287: invokeinterface #115,  1          // InterfaceMethod java/util/Collection.isEmpty:()Z
     292: ifne          299
     295: iconst_1
     296: goto          300
     299: iconst_0
     300: ifeq          610
     303: aload_3
     304: invokevirtual #118                // Method kotlin/collections/ArrayDeque.removeFirst:()Ljava/lang/Object;
     307: checkcast     #120                // class kotlin/Pair
     310: astore        4
     312: aload         4
     314: invokevirtual #123                // Method kotlin/Pair.component1:()Ljava/lang/Object;
     317: checkcast     #81                 // class Day19$CompositeCondition
     320: astore        5
     322: aload         4
     324: invokevirtual #126                // Method kotlin/Pair.component2:()Ljava/lang/Object;
     327: checkcast     #83                 // class Day19$Path
     330: astore        6
     332: aload_0
     333: getfield      #22                 // Field jobs:Ljava/util/Map;
     336: aload         5
     338: invokevirtual #130                // Method Day19$CompositeCondition.getNextState:()Ljava/lang/String;
     341: invokeinterface #38,  2           // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
     346: dup
     347: invokestatic  #42                 // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
     350: checkcast     #44                 // class Day19$Job
     353: astore        7
     355: aload         7
     357: invokevirtual #52                 // Method Day19$Job.conditionsLeadingToRejectedState:()Ljava/util/List;
     360: astore        8
     362: aload         8
     364: checkcast     #54                 // class java/lang/Iterable
     367: astore        10
     369: iconst_0
     370: istore        11
     372: aload         10
     374: astore        12
     376: new           #46                 // class java/util/ArrayList
     379: dup
     380: aload         10
     382: bipush        10
     384: invokestatic  #60                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     387: invokespecial #63                 // Method java/util/ArrayList."<init>":(I)V
     390: checkcast     #65                 // class java/util/Collection
     393: astore        13
     395: iconst_0
     396: istore        14
     398: aload         12
     400: invokeinterface #69,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     405: astore        15
     407: aload         15
     409: invokeinterface #75,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     414: ifeq          459
     417: aload         15
     419: invokeinterface #79,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     424: astore        16
     426: aload         13
     428: aload         16
     430: checkcast     #81                 // class Day19$CompositeCondition
     433: astore        17
     435: astore        20
     437: iconst_0
     438: istore        18
     440: aload         6
     442: aload         17
     444: invokevirtual #134                // Method Day19$Path.with:(LDay19$CompositeCondition;)LDay19$Path;
     447: aload         20
     449: swap
     450: invokeinterface #94,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     455: pop
     456: goto          407
     459: aload         13
     461: checkcast     #49                 // class java/util/List
     464: nop
     465: astore        9
     467: aload_2
     468: aload         9
     470: checkcast     #65                 // class java/util/Collection
     473: invokeinterface #98,  2           // InterfaceMethod java/util/List.addAll:(Ljava/util/Collection;)Z
     478: pop
     479: aload         7
     481: invokevirtual #101                // Method Day19$Job.nonTerminalConditions:()Ljava/util/List;
     484: astore        10
     486: aload_3
     487: aload         10
     489: checkcast     #54                 // class java/lang/Iterable
     492: astore        11
     494: astore        20
     496: iconst_0
     497: istore        12
     499: aload         11
     501: astore        13
     503: new           #46                 // class java/util/ArrayList
     506: dup
     507: aload         11
     509: bipush        10
     511: invokestatic  #60                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     514: invokespecial #63                 // Method java/util/ArrayList."<init>":(I)V
     517: checkcast     #65                 // class java/util/Collection
     520: astore        14
     522: iconst_0
     523: istore        15
     525: aload         13
     527: invokeinterface #69,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     532: astore        16
     534: aload         16
     536: invokeinterface #75,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     541: ifeq          591
     544: aload         16
     546: invokeinterface #79,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     551: astore        17
     553: aload         14
     555: aload         17
     557: checkcast     #81                 // class Day19$CompositeCondition
     560: astore        18
     562: astore        21
     564: iconst_0
     565: istore        19
     567: aload         18
     569: aload         6
     571: aload         18
     573: invokevirtual #134                // Method Day19$Path.with:(LDay19$CompositeCondition;)LDay19$Path;
     576: invokestatic  #107                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     579: aload         21
     581: swap
     582: invokeinterface #94,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     587: pop
     588: goto          534
     591: aload         14
     593: checkcast     #49                 // class java/util/List
     596: nop
     597: aload         20
     599: swap
     600: checkcast     #65                 // class java/util/Collection
     603: invokevirtual #135                // Method kotlin/collections/ArrayDeque.addAll:(Ljava/util/Collection;)Z
     606: pop
     607: goto          283
     610: aload_2
     611: areturn

  public final java.util.Map<java.lang.String, Day19$Job> component1();
    Code:
       0: aload_0
       1: getfield      #22                 // Field jobs:Ljava/util/Map;
       4: areturn

  public final Day19$PathFinder copy(java.util.Map<java.lang.String, Day19$Job>);
    Code:
       0: aload_1
       1: ldc           #10                 // String jobs
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: new           #2                  // class Day19$PathFinder
       9: dup
      10: aload_1
      11: invokespecial #169                // Method "<init>":(Ljava/util/Map;)V
      14: areturn

  public static Day19$PathFinder copy$default(Day19$PathFinder, java.util.Map, int, java.lang.Object);
    Code:
       0: iload_2
       1: iconst_1
       2: iand
       3: ifeq          11
       6: aload_0
       7: getfield      #22                 // Field jobs:Ljava/util/Map;
      10: astore_1
      11: aload_0
      12: aload_1
      13: invokevirtual #173                // Method copy:(Ljava/util/Map;)LDay19$PathFinder;
      16: areturn

  public java.lang.String toString();
    Code:
       0: new           #176                // class java/lang/StringBuilder
       3: dup
       4: invokespecial #177                // Method java/lang/StringBuilder."<init>":()V
       7: ldc           #179                // String PathFinder(jobs=
       9: invokevirtual #183                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      12: aload_0
      13: getfield      #22                 // Field jobs:Ljava/util/Map;
      16: invokevirtual #186                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
      19: bipush        41
      21: invokevirtual #189                // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
      24: invokevirtual #191                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      27: areturn

  public int hashCode();
    Code:
       0: aload_0
       1: getfield      #22                 // Field jobs:Ljava/util/Map;
       4: invokevirtual #195                // Method java/lang/Object.hashCode:()I
       7: ireturn

  public boolean equals(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: if_acmpne     7
       5: iconst_1
       6: ireturn
       7: aload_1
       8: instanceof    #2                  // class Day19$PathFinder
      11: ifne          16
      14: iconst_0
      15: ireturn
      16: aload_1
      17: checkcast     #2                  // class Day19$PathFinder
      20: astore_2
      21: aload_0
      22: getfield      #22                 // Field jobs:Ljava/util/Map;
      25: aload_2
      26: getfield      #22                 // Field jobs:Ljava/util/Map;
      29: invokestatic  #201                // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      32: ifne          37
      35: iconst_0
      36: ireturn
      37: iconst_1
      38: ireturn
}

Compiled from "Day19.kt"
public final class Day19 {
  public static final Day19 INSTANCE;

  private static final long MIN_STATES;

  private static final long MAX_STATES;

  private static final java.lang.String ACCEPTED_STATE;

  private static final java.lang.String REJECTED_STATE;

  private static final java.lang.String START_STATE;

  private Day19();
    Code:
       0: aload_0
       1: invokespecial #8                  // Method java/lang/Object."<init>":()V
       4: return

  public final java.lang.String part1(java.util.List<java.lang.String>);
    Code:
       0: aload_1
       1: ldc           #16                 // String input
       3: invokestatic  #22                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: checkcast     #24                 // class java/lang/Iterable
      10: invokestatic  #30                 // Method kotlin/collections/CollectionsKt.withIndex:(Ljava/lang/Iterable;)Ljava/lang/Iterable;
      13: astore        4
      15: aload         4
      17: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      22: astore        5
      24: aload         5
      26: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      31: ifeq          83
      34: aload         5
      36: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      41: astore        6
      43: aload         6
      45: checkcast     #46                 // class kotlin/collections/IndexedValue
      48: astore        7
      50: iconst_0
      51: istore        8
      53: aload         7
      55: invokevirtual #49                 // Method kotlin/collections/IndexedValue.getValue:()Ljava/lang/Object;
      58: checkcast     #51                 // class java/lang/CharSequence
      61: invokeinterface #55,  1           // InterfaceMethod java/lang/CharSequence.length:()I
      66: ifne          73
      69: iconst_1
      70: goto          74
      73: iconst_0
      74: nop
      75: ifeq          24
      78: aload         6
      80: goto          84
      83: aconst_null
      84: dup
      85: invokestatic  #59                 // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
      88: checkcast     #46                 // class kotlin/collections/IndexedValue
      91: invokevirtual #62                 // Method kotlin/collections/IndexedValue.getIndex:()I
      94: istore_2
      95: aload_1
      96: iconst_0
      97: iload_2
      98: invokeinterface #68,  3           // InterfaceMethod java/util/List.subList:(II)Ljava/util/List;
     103: checkcast     #24                 // class java/lang/Iterable
     106: astore        4
     108: iconst_0
     109: istore        5
     111: aload         4
     113: astore        6
     115: new           #70                 // class java/util/ArrayList
     118: dup
     119: aload         4
     121: bipush        10
     123: invokestatic  #74                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     126: invokespecial #77                 // Method java/util/ArrayList."<init>":(I)V
     129: checkcast     #79                 // class java/util/Collection
     132: astore        7
     134: iconst_0
     135: istore        8
     137: aload         6
     139: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     144: astore        9
     146: aload         9
     148: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     153: ifeq          199
     156: aload         9
     158: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     163: astore        10
     165: aload         7
     167: aload         10
     169: checkcast     #81                 // class java/lang/String
     172: astore        11
     174: astore        16
     176: iconst_0
     177: istore        12
     179: getstatic     #87                 // Field Day19$Job.Companion:LDay19$Job$Companion;
     182: aload         11
     184: invokevirtual #93                 // Method Day19$Job$Companion.parse:(Ljava/lang/String;)LDay19$Job;
     187: aload         16
     189: swap
     190: invokeinterface #97,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     195: pop
     196: goto          146
     199: aload         7
     201: checkcast     #64                 // class java/util/List
     204: nop
     205: astore_3
     206: aload_1
     207: iload_2
     208: iconst_1
     209: iadd
     210: aload_1
     211: invokeinterface #100,  1          // InterfaceMethod java/util/List.size:()I
     216: invokeinterface #68,  3           // InterfaceMethod java/util/List.subList:(II)Ljava/util/List;
     221: checkcast     #24                 // class java/lang/Iterable
     224: astore        5
     226: iconst_0
     227: istore        6
     229: aload         5
     231: astore        7
     233: new           #70                 // class java/util/ArrayList
     236: dup
     237: aload         5
     239: bipush        10
     241: invokestatic  #74                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     244: invokespecial #77                 // Method java/util/ArrayList."<init>":(I)V
     247: checkcast     #79                 // class java/util/Collection
     250: astore        8
     252: iconst_0
     253: istore        9
     255: aload         7
     257: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     262: astore        10
     264: aload         10
     266: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     271: ifeq          317
     274: aload         10
     276: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     281: astore        11
     283: aload         8
     285: aload         11
     287: checkcast     #81                 // class java/lang/String
     290: astore        12
     292: astore        16
     294: iconst_0
     295: istore        13
     297: getstatic     #105                // Field Day19$Part.Companion:LDay19$Part$Companion;
     300: aload         12
     302: invokevirtual #110                // Method Day19$Part$Companion.parse:(Ljava/lang/String;)LDay19$Part;
     305: aload         16
     307: swap
     308: invokeinterface #97,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     313: pop
     314: goto          264
     317: aload         8
     319: checkcast     #64                 // class java/util/List
     322: nop
     323: astore        4
     325: aload_3
     326: checkcast     #24                 // class java/lang/Iterable
     329: astore        6
     331: iconst_0
     332: istore        7
     334: aload         6
     336: bipush        10
     338: invokestatic  #74                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     341: invokestatic  #116                // Method kotlin/collections/MapsKt.mapCapacity:(I)I
     344: bipush        16
     346: invokestatic  #122                // Method kotlin/ranges/RangesKt.coerceAtLeast:(II)I
     349: istore        8
     351: aload         6
     353: astore        9
     355: new           #124                // class java/util/LinkedHashMap
     358: dup
     359: iload         8
     361: invokespecial #125                // Method java/util/LinkedHashMap."<init>":(I)V
     364: checkcast     #127                // class java/util/Map
     367: astore        10
     369: iconst_0
     370: istore        11
     372: aload         9
     374: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     379: astore        12
     381: aload         12
     383: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     388: ifeq          433
     391: aload         12
     393: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     398: astore        13
     400: aload         10
     402: aload         13
     404: checkcast     #83                 // class Day19$Job
     407: astore        14
     409: astore        18
     411: iconst_0
     412: istore        15
     414: aload         14
     416: invokevirtual #131                // Method Day19$Job.getId:()Ljava/lang/String;
     419: aload         18
     421: swap
     422: aload         13
     424: invokeinterface #135,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     429: pop
     430: goto          381
     433: aload         10
     435: nop
     436: astore        19
     438: new           #137                // class Day19$Workflow
     441: dup
     442: aload         19
     444: invokespecial #140                // Method Day19$Workflow."<init>":(Ljava/util/Map;)V
     447: astore        5
     449: aload         4
     451: checkcast     #24                 // class java/lang/Iterable
     454: astore        6
     456: iconst_0
     457: istore        7
     459: aload         6
     461: astore        8
     463: new           #70                 // class java/util/ArrayList
     466: dup
     467: invokespecial #141                // Method java/util/ArrayList."<init>":()V
     470: checkcast     #79                 // class java/util/Collection
     473: astore        9
     475: iconst_0
     476: istore        10
     478: aload         8
     480: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     485: astore        11
     487: aload         11
     489: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     494: ifeq          539
     497: aload         11
     499: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     504: astore        12
     506: aload         12
     508: checkcast     #102                // class Day19$Part
     511: astore        13
     513: iconst_0
     514: istore        14
     516: aload         5
     518: aload         13
     520: invokevirtual #145                // Method Day19$Workflow.isAccepted:(LDay19$Part;)Z
     523: ifeq          487
     526: aload         9
     528: aload         12
     530: invokeinterface #97,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     535: pop
     536: goto          487
     539: aload         9
     541: checkcast     #64                 // class java/util/List
     544: nop
     545: checkcast     #24                 // class java/lang/Iterable
     548: astore        6
     550: iconst_0
     551: istore        7
     553: aload         6
     555: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     560: astore        8
     562: aload         8
     564: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     569: ifeq          612
     572: aload         8
     574: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     579: astore        9
     581: iload         7
     583: aload         9
     585: checkcast     #102                // class Day19$Part
     588: astore        10
     590: istore        16
     592: iconst_0
     593: istore        11
     595: aload         10
     597: invokevirtual #148                // Method Day19$Part.score:()I
     600: istore        17
     602: iload         16
     604: iload         17
     606: iadd
     607: istore        7
     609: goto          562
     612: iload         7
     614: invokestatic  #152                // Method java/lang/String.valueOf:(I)Ljava/lang/String;
     617: areturn

  public final java.lang.String part2(java.util.List<java.lang.String>);
    Code:
       0: aload_1
       1: ldc           #16                 // String input
       3: invokestatic  #22                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: checkcast     #24                 // class java/lang/Iterable
      10: invokestatic  #30                 // Method kotlin/collections/CollectionsKt.withIndex:(Ljava/lang/Iterable;)Ljava/lang/Iterable;
      13: astore        4
      15: aload         4
      17: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      22: astore        5
      24: aload         5
      26: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      31: ifeq          83
      34: aload         5
      36: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      41: astore        6
      43: aload         6
      45: checkcast     #46                 // class kotlin/collections/IndexedValue
      48: astore        7
      50: iconst_0
      51: istore        8
      53: aload         7
      55: invokevirtual #49                 // Method kotlin/collections/IndexedValue.getValue:()Ljava/lang/Object;
      58: checkcast     #51                 // class java/lang/CharSequence
      61: invokeinterface #55,  1           // InterfaceMethod java/lang/CharSequence.length:()I
      66: ifne          73
      69: iconst_1
      70: goto          74
      73: iconst_0
      74: nop
      75: ifeq          24
      78: aload         6
      80: goto          84
      83: aconst_null
      84: dup
      85: invokestatic  #59                 // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
      88: checkcast     #46                 // class kotlin/collections/IndexedValue
      91: invokevirtual #62                 // Method kotlin/collections/IndexedValue.getIndex:()I
      94: istore_2
      95: aload_1
      96: iconst_0
      97: iload_2
      98: invokeinterface #68,  3           // InterfaceMethod java/util/List.subList:(II)Ljava/util/List;
     103: checkcast     #24                 // class java/lang/Iterable
     106: astore        4
     108: iconst_0
     109: istore        5
     111: aload         4
     113: astore        6
     115: new           #70                 // class java/util/ArrayList
     118: dup
     119: aload         4
     121: bipush        10
     123: invokestatic  #74                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     126: invokespecial #77                 // Method java/util/ArrayList."<init>":(I)V
     129: checkcast     #79                 // class java/util/Collection
     132: astore        7
     134: iconst_0
     135: istore        8
     137: aload         6
     139: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     144: astore        9
     146: aload         9
     148: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     153: ifeq          199
     156: aload         9
     158: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     163: astore        10
     165: aload         7
     167: aload         10
     169: checkcast     #81                 // class java/lang/String
     172: astore        11
     174: astore        40
     176: iconst_0
     177: istore        12
     179: getstatic     #87                 // Field Day19$Job.Companion:LDay19$Job$Companion;
     182: aload         11
     184: invokevirtual #93                 // Method Day19$Job$Companion.parse:(Ljava/lang/String;)LDay19$Job;
     187: aload         40
     189: swap
     190: invokeinterface #97,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     195: pop
     196: goto          146
     199: aload         7
     201: checkcast     #64                 // class java/util/List
     204: nop
     205: astore_3
     206: aload_3
     207: checkcast     #24                 // class java/lang/Iterable
     210: astore        5
     212: iconst_0
     213: istore        6
     215: aload         5
     217: bipush        10
     219: invokestatic  #74                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     222: invokestatic  #116                // Method kotlin/collections/MapsKt.mapCapacity:(I)I
     225: bipush        16
     227: invokestatic  #122                // Method kotlin/ranges/RangesKt.coerceAtLeast:(II)I
     230: istore        7
     232: aload         5
     234: astore        8
     236: new           #124                // class java/util/LinkedHashMap
     239: dup
     240: iload         7
     242: invokespecial #125                // Method java/util/LinkedHashMap."<init>":(I)V
     245: checkcast     #127                // class java/util/Map
     248: astore        9
     250: iconst_0
     251: istore        10
     253: aload         8
     255: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     260: astore        11
     262: aload         11
     264: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     269: ifeq          314
     272: aload         11
     274: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     279: astore        12
     281: aload         9
     283: aload         12
     285: checkcast     #83                 // class Day19$Job
     288: astore        13
     290: astore        41
     292: iconst_0
     293: istore        14
     295: aload         13
     297: invokevirtual #131                // Method Day19$Job.getId:()Ljava/lang/String;
     300: aload         41
     302: swap
     303: aload         12
     305: invokeinterface #135,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     310: pop
     311: goto          262
     314: aload         9
     316: nop
     317: astore        42
     319: new           #193                // class Day19$PathFinder
     322: dup
     323: aload         42
     325: invokespecial #194                // Method Day19$PathFinder."<init>":(Ljava/util/Map;)V
     328: invokevirtual #198                // Method Day19$PathFinder.findPathsToRejectedState:()Ljava/util/List;
     331: astore        4
     333: aload         4
     335: checkcast     #24                 // class java/lang/Iterable
     338: astore        6
     340: nop
     341: iconst_0
     342: istore        7
     344: aload         6
     346: astore        8
     348: new           #70                 // class java/util/ArrayList
     351: dup
     352: invokespecial #141                // Method java/util/ArrayList."<init>":()V
     355: checkcast     #79                 // class java/util/Collection
     358: astore        9
     360: iconst_0
     361: istore        10
     363: aload         8
     365: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     370: astore        11
     372: aload         11
     374: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     379: ifeq          439
     382: aload         11
     384: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     389: astore        12
     391: aload         12
     393: checkcast     #200                // class Day19$Path
     396: astore        13
     398: iconst_0
     399: istore        14
     401: aload         13
     403: invokevirtual #203                // Method Day19$Path.getCompositeConditions:()Ljava/util/List;
     406: checkcast     #79                 // class java/util/Collection
     409: invokeinterface #206,  1          // InterfaceMethod java/util/Collection.isEmpty:()Z
     414: ifne          421
     417: iconst_1
     418: goto          422
     421: iconst_0
     422: nop
     423: ifeq          372
     426: aload         9
     428: aload         12
     430: invokeinterface #97,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     435: pop
     436: goto          372
     439: aload         9
     441: checkcast     #64                 // class java/util/List
     444: nop
     445: checkcast     #24                 // class java/lang/Iterable
     448: astore        6
     450: nop
     451: iconst_0
     452: istore        7
     454: aload         6
     456: astore        8
     458: new           #70                 // class java/util/ArrayList
     461: dup
     462: aload         6
     464: bipush        10
     466: invokestatic  #74                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     469: invokespecial #77                 // Method java/util/ArrayList."<init>":(I)V
     472: checkcast     #79                 // class java/util/Collection
     475: astore        9
     477: iconst_0
     478: istore        10
     480: aload         8
     482: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     487: astore        11
     489: aload         11
     491: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     496: ifeq          1131
     499: aload         11
     501: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     506: astore        12
     508: aload         9
     510: aload         12
     512: checkcast     #200                // class Day19$Path
     515: astore        13
     517: astore        40
     519: iconst_0
     520: istore        14
     522: aload         13
     524: invokevirtual #203                // Method Day19$Path.getCompositeConditions:()Ljava/util/List;
     527: checkcast     #24                 // class java/lang/Iterable
     530: astore        15
     532: iconst_0
     533: istore        16
     535: aload         15
     537: astore        17
     539: new           #70                 // class java/util/ArrayList
     542: dup
     543: invokespecial #141                // Method java/util/ArrayList."<init>":()V
     546: checkcast     #79                 // class java/util/Collection
     549: astore        18
     551: iconst_0
     552: istore        19
     554: aload         17
     556: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     561: astore        20
     563: aload         20
     565: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     570: ifeq          613
     573: aload         20
     575: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     580: astore        21
     582: aload         21
     584: checkcast     #208                // class Day19$CompositeCondition
     587: astore        22
     589: iconst_0
     590: istore        23
     592: aload         22
     594: invokevirtual #211                // Method Day19$CompositeCondition.getConditions:()Ljava/util/List;
     597: checkcast     #24                 // class java/lang/Iterable
     600: astore        22
     602: aload         18
     604: aload         22
     606: invokestatic  #215                // Method kotlin/collections/CollectionsKt.addAll:(Ljava/util/Collection;Ljava/lang/Iterable;)Z
     609: pop
     610: goto          563
     613: aload         18
     615: checkcast     #64                 // class java/util/List
     618: nop
     619: checkcast     #24                 // class java/lang/Iterable
     622: astore        15
     624: nop
     625: iconst_0
     626: istore        16
     628: aload         15
     630: astore        17
     632: new           #70                 // class java/util/ArrayList
     635: dup
     636: aload         15
     638: bipush        10
     640: invokestatic  #74                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     643: invokespecial #77                 // Method java/util/ArrayList."<init>":(I)V
     646: checkcast     #79                 // class java/util/Collection
     649: astore        18
     651: iconst_0
     652: istore        19
     654: aload         17
     656: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     661: astore        20
     663: aload         20
     665: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     670: ifeq          713
     673: aload         20
     675: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     680: astore        21
     682: aload         18
     684: aload         21
     686: checkcast     #217                // class Day19$Condition
     689: astore        22
     691: astore        24
     693: iconst_0
     694: istore        23
     696: aload         22
     698: invokevirtual #221                // Method Day19$Condition.toMinAndMax:()LDay19$MinAndMax;
     701: aload         24
     703: swap
     704: invokeinterface #97,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     709: pop
     710: goto          663
     713: aload         18
     715: checkcast     #64                 // class java/util/List
     718: nop
     719: checkcast     #24                 // class java/lang/Iterable
     722: astore        15
     724: nop
     725: iconst_0
     726: istore        16
     728: aload         15
     730: astore        17
     732: new           #124                // class java/util/LinkedHashMap
     735: dup
     736: invokespecial #222                // Method java/util/LinkedHashMap."<init>":()V
     739: checkcast     #127                // class java/util/Map
     742: astore        18
     744: iconst_0
     745: istore        19
     747: aload         17
     749: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     754: astore        20
     756: aload         20
     758: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     763: ifeq          868
     766: aload         20
     768: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     773: astore        21
     775: aload         21
     777: checkcast     #224                // class Day19$MinAndMax
     780: astore        22
     782: iconst_0
     783: istore        23
     785: aload         22
     787: invokevirtual #227                // Method Day19$MinAndMax.getKey:()Ljava/lang/String;
     790: astore        25
     792: aload         18
     794: astore        26
     796: iconst_0
     797: istore        27
     799: aload         26
     801: aload         25
     803: invokeinterface #231,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
     808: astore        28
     810: aload         28
     812: ifnonnull     847
     815: iconst_0
     816: istore        29
     818: new           #70                 // class java/util/ArrayList
     821: dup
     822: invokespecial #141                // Method java/util/ArrayList."<init>":()V
     825: checkcast     #64                 // class java/util/List
     828: astore        29
     830: aload         26
     832: aload         25
     834: aload         29
     836: invokeinterface #135,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     841: pop
     842: aload         29
     844: goto          849
     847: aload         28
     849: nop
     850: checkcast     #64                 // class java/util/List
     853: astore        22
     855: aload         22
     857: aload         21
     859: invokeinterface #232,  2          // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
     864: pop
     865: goto          756
     868: aload         18
     870: nop
     871: astore        15
     873: nop
     874: iconst_0
     875: istore        16
     877: aload         15
     879: astore        17
     881: new           #124                // class java/util/LinkedHashMap
     884: dup
     885: aload         15
     887: invokeinterface #233,  1          // InterfaceMethod java/util/Map.size:()I
     892: invokestatic  #116                // Method kotlin/collections/MapsKt.mapCapacity:(I)I
     895: invokespecial #125                // Method java/util/LinkedHashMap."<init>":(I)V
     898: checkcast     #127                // class java/util/Map
     901: astore        18
     903: iconst_0
     904: istore        19
     906: aload         17
     908: invokeinterface #237,  1          // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set;
     913: checkcast     #24                 // class java/lang/Iterable
     916: astore        20
     918: iconst_0
     919: istore        21
     921: aload         20
     923: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     928: astore        22
     930: aload         22
     932: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     937: ifeq          1114
     940: aload         22
     942: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     947: astore        23
     949: aload         18
     951: aload         23
     953: checkcast     #239                // class java/util/Map$Entry
     956: astore        25
     958: astore        26
     960: iconst_0
     961: istore        27
     963: aload         25
     965: invokeinterface #241,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     970: aload         26
     972: swap
     973: aload         23
     975: checkcast     #239                // class java/util/Map$Entry
     978: astore        28
     980: astore        30
     982: astore        24
     984: iconst_0
     985: istore        29
     987: aload         28
     989: invokeinterface #242,  1          // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;
     994: checkcast     #64                 // class java/util/List
     997: astore        31
     999: aload         31
    1001: checkcast     #24                 // class java/lang/Iterable
    1004: astore        32
    1006: iconst_0
    1007: istore        33
    1009: aload         32
    1011: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1016: astore        34
    1018: aload         34
    1020: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1025: ifne          1038
    1028: new           #244                // class java/lang/UnsupportedOperationException
    1031: dup
    1032: ldc           #246                // String Empty collection can\'t be reduced.
    1034: invokespecial #249                // Method java/lang/UnsupportedOperationException."<init>":(Ljava/lang/String;)V
    1037: athrow
    1038: aload         34
    1040: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1045: astore        35
    1047: aload         34
    1049: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1054: ifeq          1091
    1057: aload         35
    1059: aload         34
    1061: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1066: checkcast     #224                // class Day19$MinAndMax
    1069: astore        36
    1071: checkcast     #224                // class Day19$MinAndMax
    1074: astore        37
    1076: iconst_0
    1077: istore        38
    1079: aload         37
    1081: aload         36
    1083: invokevirtual #253                // Method Day19$MinAndMax.coerce:(LDay19$MinAndMax;)LDay19$MinAndMax;
    1086: astore        35
    1088: goto          1047
    1091: aload         35
    1093: checkcast     #224                // class Day19$MinAndMax
    1096: nop
    1097: astore        39
    1099: aload         24
    1101: aload         30
    1103: aload         39
    1105: invokeinterface #135,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    1110: pop
    1111: goto          930
    1114: aload         18
    1116: nop
    1117: nop
    1118: nop
    1119: aload         40
    1121: swap
    1122: invokeinterface #97,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    1127: pop
    1128: goto          489
    1131: aload         9
    1133: checkcast     #64                 // class java/util/List
    1136: nop
    1137: astore        5
    1139: aload         5
    1141: checkcast     #24                 // class java/lang/Iterable
    1144: astore        8
    1146: iconst_0
    1147: istore        9
    1149: aload         8
    1151: astore        10
    1153: new           #70                 // class java/util/ArrayList
    1156: dup
    1157: aload         8
    1159: bipush        10
    1161: invokestatic  #74                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
    1164: invokespecial #77                 // Method java/util/ArrayList."<init>":(I)V
    1167: checkcast     #79                 // class java/util/Collection
    1170: astore        11
    1172: iconst_0
    1173: istore        12
    1175: aload         10
    1177: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1182: astore        13
    1184: aload         13
    1186: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1191: ifeq          1604
    1194: aload         13
    1196: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1201: astore        14
    1203: aload         11
    1205: aload         14
    1207: checkcast     #127                // class java/util/Map
    1210: astore        15
    1212: astore        40
    1214: iconst_0
    1215: istore        16
    1217: iconst_4
    1218: anewarray     #81                 // class java/lang/String
    1221: astore        17
    1223: aload         17
    1225: iconst_0
    1226: ldc           #255                // String x
    1228: aastore
    1229: aload         17
    1231: iconst_1
    1232: ldc_w         #257                // String m
    1235: aastore
    1236: aload         17
    1238: iconst_2
    1239: ldc_w         #259                // String a
    1242: aastore
    1243: aload         17
    1245: iconst_3
    1246: ldc_w         #261                // String s
    1249: aastore
    1250: aload         17
    1252: invokestatic  #265                // Method kotlin/collections/CollectionsKt.listOf:([Ljava/lang/Object;)Ljava/util/List;
    1255: checkcast     #24                 // class java/lang/Iterable
    1258: astore        17
    1260: iconst_0
    1261: istore        18
    1263: aload         17
    1265: astore        19
    1267: new           #70                 // class java/util/ArrayList
    1270: dup
    1271: aload         17
    1273: bipush        10
    1275: invokestatic  #74                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
    1278: invokespecial #77                 // Method java/util/ArrayList."<init>":(I)V
    1281: checkcast     #79                 // class java/util/Collection
    1284: astore        20
    1286: iconst_0
    1287: istore        21
    1289: aload         19
    1291: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1296: astore        22
    1298: aload         22
    1300: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1305: ifeq          1373
    1308: aload         22
    1310: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1315: astore        23
    1317: aload         20
    1319: aload         23
    1321: checkcast     #81                 // class java/lang/String
    1324: astore        24
    1326: astore        25
    1328: iconst_0
    1329: istore        26
    1331: aload         15
    1333: aload         24
    1335: invokeinterface #231,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
    1340: checkcast     #224                // class Day19$MinAndMax
    1343: dup
    1344: ifnonnull     1361
    1347: pop
    1348: new           #224                // class Day19$MinAndMax
    1351: dup
    1352: lconst_1
    1353: ldc2_w        #266                // long 4000l
    1356: aload         24
    1358: invokespecial #270                // Method Day19$MinAndMax."<init>":(JJLjava/lang/String;)V
    1361: aload         25
    1363: swap
    1364: invokeinterface #97,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    1369: pop
    1370: goto          1298
    1373: aload         20
    1375: checkcast     #64                 // class java/util/List
    1378: nop
    1379: checkcast     #24                 // class java/lang/Iterable
    1382: astore        17
    1384: nop
    1385: iconst_0
    1386: istore        18
    1388: aload         17
    1390: astore        19
    1392: new           #70                 // class java/util/ArrayList
    1395: dup
    1396: aload         17
    1398: bipush        10
    1400: invokestatic  #74                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
    1403: invokespecial #77                 // Method java/util/ArrayList."<init>":(I)V
    1406: checkcast     #79                 // class java/util/Collection
    1409: astore        20
    1411: iconst_0
    1412: istore        21
    1414: aload         19
    1416: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1421: astore        22
    1423: aload         22
    1425: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1430: ifeq          1476
    1433: aload         22
    1435: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1440: astore        23
    1442: aload         20
    1444: aload         23
    1446: checkcast     #224                // class Day19$MinAndMax
    1449: astore        24
    1451: astore        25
    1453: iconst_0
    1454: istore        26
    1456: aload         24
    1458: invokevirtual #273                // Method Day19$MinAndMax.length:()J
    1461: invokestatic  #278                // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
    1464: aload         25
    1466: swap
    1467: invokeinterface #97,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    1472: pop
    1473: goto          1423
    1476: aload         20
    1478: checkcast     #64                 // class java/util/List
    1481: nop
    1482: checkcast     #24                 // class java/lang/Iterable
    1485: astore        17
    1487: nop
    1488: iconst_0
    1489: istore        18
    1491: aload         17
    1493: invokeinterface #34,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1498: astore        19
    1500: aload         19
    1502: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1507: ifne          1520
    1510: new           #244                // class java/lang/UnsupportedOperationException
    1513: dup
    1514: ldc           #246                // String Empty collection can\'t be reduced.
    1516: invokespecial #249                // Method java/lang/UnsupportedOperationException."<init>":(Ljava/lang/String;)V
    1519: athrow
    1520: aload         19
    1522: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1527: astore        20
    1529: aload         19
    1531: invokeinterface #40,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1536: ifeq          1580
    1539: aload         20
    1541: aload         19
    1543: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1548: checkcast     #280                // class java/lang/Number
    1551: invokevirtual #283                // Method java/lang/Number.longValue:()J
    1554: lstore        27
    1556: checkcast     #280                // class java/lang/Number
    1559: invokevirtual #283                // Method java/lang/Number.longValue:()J
    1562: lstore        29
    1564: iconst_0
    1565: istore        26
    1567: lload         29
    1569: lload         27
    1571: lmul
    1572: invokestatic  #278                // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
    1575: astore        20
    1577: goto          1529
    1580: aload         20
    1582: checkcast     #280                // class java/lang/Number
    1585: invokevirtual #283                // Method java/lang/Number.longValue:()J
    1588: nop
    1589: invokestatic  #278                // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
    1592: aload         40
    1594: swap
    1595: invokeinterface #97,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    1600: pop
    1601: goto          1184
    1604: aload         11
    1606: checkcast     #64                 // class java/util/List
    1609: nop
    1610: checkcast     #24                 // class java/lang/Iterable
    1613: invokestatic  #287                // Method kotlin/collections/CollectionsKt.sumOfLong:(Ljava/lang/Iterable;)J
    1616: lstore        6
    1618: ldc2_w        #288                // long 256000000000000l
    1621: lstore        8
    1623: lload         8
    1625: lload         6
    1627: lsub
    1628: lstore        10
    1630: lload         10
    1632: invokestatic  #292                // Method java/lang/String.valueOf:(J)Ljava/lang/String;
    1635: areturn

  static {};
    Code:
       0: new           #2                  // class Day19
       3: dup
       4: invokespecial #352                // Method "<init>":()V
       7: putstatic     #355                // Field INSTANCE:LDay19;
      10: return
}