package days

import java.io.File

fun <T> List<List<T>>.transpose(): List<List<T>> = when {
    this.first().isEmpty() -> listOf()
    else -> listOf(this.map { it.first() }) + this.map { it.drop(1) }.transpose()
}

fun day8part1() = File("input/08.txt").readLines()
        .mapIndexed { i, e1 ->  e1.mapIndexed { j, e2 -> (i to j) to e2.digitToInt() }}
        .let { it to it.reversed().map { c -> c.reversed() } }
        .let { (mat, matRev) -> mat + matRev + mat.transpose() + matRev.transpose() }
        .map { it.fold(setOf<Pair<Pair<Int, Int>, Int>>()) { acc, c ->
            if (acc.isNotEmpty() && acc.maxOf { ac -> ac.second } >= c.second) acc
            else acc.plus(c)
        } }
        .flatten().toSet()
        .count()

fun <T> List<T>.takeWhileInclusive(pred: (T) -> Boolean): List<T> {
    var shouldContinue = true
    return takeWhile {
        val result = shouldContinue
        shouldContinue = pred(it)
        result
    }
}

fun day8part2() = File("input/08.txt").readLines()
        .mapIndexed { i, e1 -> e1.mapIndexed { j, e2 -> (i to j) to e2.digitToInt() } }
        .let { it to it.reversed().map { c -> c.reversed() } }
        .let { (mat, matRev) -> mat + matRev + mat.transpose() + matRev.transpose() }
        .fold(mutableMapOf<Pair<Pair<Int, Int>, Int>, List<List<Pair<Pair<Int, Int>, Int>>>>()) { acc, p ->
            p.forEachIndexed { index, pair ->
                if (acc.containsKey(pair)) acc[pair] = acc[pair]!!.plus(listOf(p.subList(index + 1, p.size)))
                else acc[pair] = listOf(p.subList(index + 1, p.size))
            }
            acc
        }.entries
        .map { it.key.second to it.value.map { lp -> lp.map { p -> p.second } } }
        .map { (element, neighbours) -> neighbours.map { it.takeWhileInclusive { tree -> tree < element }.count() } }
        .maxOf { it.reduce { acc, i -> acc * i } }

Compiled from "day08.kt"
public final class days.Day08Kt {
  public static final <T> java.util.List<java.util.List<T>> transpose(java.util.List<? extends java.util.List<? extends T>>);
    Code:
       0: aload_0
       1: ldc           #10                 // String <this>
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: nop
       7: aload_0
       8: invokestatic  #22                 // Method kotlin/collections/CollectionsKt.first:(Ljava/util/List;)Ljava/lang/Object;
      11: checkcast     #24                 // class java/util/List
      14: invokeinterface #28,  1           // InterfaceMethod java/util/List.isEmpty:()Z
      19: ifeq          28
      22: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.emptyList:()Ljava/util/List;
      25: goto          240
      28: aload_0
      29: checkcast     #34                 // class java/lang/Iterable
      32: astore_1
      33: iconst_0
      34: istore_2
      35: aload_1
      36: astore_3
      37: new           #36                 // class java/util/ArrayList
      40: dup
      41: aload_1
      42: bipush        10
      44: invokestatic  #40                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      47: invokespecial #44                 // Method java/util/ArrayList."<init>":(I)V
      50: checkcast     #46                 // class java/util/Collection
      53: astore        4
      55: iconst_0
      56: istore        5
      58: aload_3
      59: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      64: astore        6
      66: aload         6
      68: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      73: ifeq          116
      76: aload         6
      78: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      83: astore        7
      85: aload         4
      87: aload         7
      89: checkcast     #24                 // class java/util/List
      92: astore        8
      94: astore        10
      96: iconst_0
      97: istore        9
      99: aload         8
     101: invokestatic  #22                 // Method kotlin/collections/CollectionsKt.first:(Ljava/util/List;)Ljava/lang/Object;
     104: aload         10
     106: swap
     107: invokeinterface #63,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     112: pop
     113: goto          66
     116: aload         4
     118: checkcast     #24                 // class java/util/List
     121: nop
     122: invokestatic  #67                 // Method kotlin/collections/CollectionsKt.listOf:(Ljava/lang/Object;)Ljava/util/List;
     125: checkcast     #46                 // class java/util/Collection
     128: aload_0
     129: checkcast     #34                 // class java/lang/Iterable
     132: astore_1
     133: astore        10
     135: iconst_0
     136: istore_2
     137: aload_1
     138: astore_3
     139: new           #36                 // class java/util/ArrayList
     142: dup
     143: aload_1
     144: bipush        10
     146: invokestatic  #40                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     149: invokespecial #44                 // Method java/util/ArrayList."<init>":(I)V
     152: checkcast     #46                 // class java/util/Collection
     155: astore        4
     157: iconst_0
     158: istore        5
     160: aload_3
     161: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     166: astore        6
     168: aload         6
     170: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     175: ifeq          222
     178: aload         6
     180: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     185: astore        7
     187: aload         4
     189: aload         7
     191: checkcast     #24                 // class java/util/List
     194: astore        8
     196: astore        11
     198: iconst_0
     199: istore        9
     201: aload         8
     203: checkcast     #34                 // class java/lang/Iterable
     206: iconst_1
     207: invokestatic  #71                 // Method kotlin/collections/CollectionsKt.drop:(Ljava/lang/Iterable;I)Ljava/util/List;
     210: aload         11
     212: swap
     213: invokeinterface #63,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     218: pop
     219: goto          168
     222: aload         4
     224: checkcast     #24                 // class java/util/List
     227: nop
     228: aload         10
     230: swap
     231: invokestatic  #73                 // Method transpose:(Ljava/util/List;)Ljava/util/List;
     234: checkcast     #34                 // class java/lang/Iterable
     237: invokestatic  #77                 // Method kotlin/collections/CollectionsKt.plus:(Ljava/util/Collection;Ljava/lang/Iterable;)Ljava/util/List;
     240: areturn

  public static final int day8part1();
    Code:
       0: new           #96                 // class java/io/File
       3: dup
       4: ldc           #98                 // String input/08.txt
       6: invokespecial #101                // Method java/io/File."<init>":(Ljava/lang/String;)V
       9: aconst_null
      10: iconst_1
      11: aconst_null
      12: invokestatic  #107                // Method kotlin/io/FilesKt.readLines$default:(Ljava/io/File;Ljava/nio/charset/Charset;ILjava/lang/Object;)Ljava/util/List;
      15: checkcast     #34                 // class java/lang/Iterable
      18: astore_0
      19: nop
      20: iconst_0
      21: istore_1
      22: aload_0
      23: astore_2
      24: new           #36                 // class java/util/ArrayList
      27: dup
      28: aload_0
      29: bipush        10
      31: invokestatic  #40                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      34: invokespecial #44                 // Method java/util/ArrayList."<init>":(I)V
      37: checkcast     #46                 // class java/util/Collection
      40: astore_3
      41: iconst_0
      42: istore        4
      44: iconst_0
      45: istore        5
      47: aload_2
      48: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      53: astore        6
      55: aload         6
      57: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      62: ifeq          247
      65: aload         6
      67: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      72: astore        7
      74: aload_3
      75: iload         5
      77: iinc          5, 1
      80: istore        8
      82: iload         8
      84: ifge          90
      87: invokestatic  #111                // Method kotlin/collections/CollectionsKt.throwIndexOverflow:()V
      90: iload         8
      92: aload         7
      94: checkcast     #113                // class java/lang/String
      97: astore        9
      99: istore        10
     101: astore        24
     103: iconst_0
     104: istore        11
     106: aload         9
     108: checkcast     #115                // class java/lang/CharSequence
     111: astore        12
     113: iconst_0
     114: istore        13
     116: aload         12
     118: astore        14
     120: new           #36                 // class java/util/ArrayList
     123: dup
     124: aload         12
     126: invokeinterface #118,  1          // InterfaceMethod java/lang/CharSequence.length:()I
     131: invokespecial #44                 // Method java/util/ArrayList."<init>":(I)V
     134: checkcast     #46                 // class java/util/Collection
     137: astore        15
     139: iconst_0
     140: istore        16
     142: iconst_0
     143: istore        17
     145: iconst_0
     146: istore        18
     148: iload         18
     150: aload         14
     152: invokeinterface #118,  1          // InterfaceMethod java/lang/CharSequence.length:()I
     157: if_icmpge     228
     160: aload         14
     162: iload         18
     164: invokeinterface #122,  2          // InterfaceMethod java/lang/CharSequence.charAt:(I)C
     169: istore        19
     171: aload         15
     173: iload         17
     175: iinc          17, 1
     178: iload         19
     180: istore        20
     182: istore        21
     184: astore        22
     186: iconst_0
     187: istore        23
     189: iload         10
     191: invokestatic  #128                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     194: iload         21
     196: invokestatic  #128                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     199: invokestatic  #134                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     202: iload         20
     204: invokestatic  #140                // Method kotlin/text/CharsKt.digitToInt:(C)I
     207: invokestatic  #128                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     210: invokestatic  #134                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     213: aload         22
     215: swap
     216: invokeinterface #63,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     221: pop
     222: iinc          18, 1
     225: goto          148
     228: aload         15
     230: checkcast     #24                 // class java/util/List
     233: nop
     234: nop
     235: aload         24
     237: swap
     238: invokeinterface #63,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     243: pop
     244: goto          55
     247: aload_3
     248: checkcast     #24                 // class java/util/List
     251: nop
     252: astore_1
     253: iconst_0
     254: istore_2
     255: aload_1
     256: aload_1
     257: checkcast     #34                 // class java/lang/Iterable
     260: invokestatic  #144                // Method kotlin/collections/CollectionsKt.reversed:(Ljava/lang/Iterable;)Ljava/util/List;
     263: checkcast     #34                 // class java/lang/Iterable
     266: astore_3
     267: astore        4
     269: iconst_0
     270: istore        5
     272: aload_3
     273: astore        6
     275: new           #36                 // class java/util/ArrayList
     278: dup
     279: aload_3
     280: bipush        10
     282: invokestatic  #40                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     285: invokespecial #44                 // Method java/util/ArrayList."<init>":(I)V
     288: checkcast     #46                 // class java/util/Collection
     291: astore        7
     293: iconst_0
     294: istore        8
     296: aload         6
     298: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     303: astore        9
     305: aload         9
     307: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     312: ifeq          358
     315: aload         9
     317: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     322: astore        10
     324: aload         7
     326: aload         10
     328: checkcast     #24                 // class java/util/List
     331: astore        11
     333: astore        12
     335: iconst_0
     336: istore        13
     338: aload         11
     340: checkcast     #34                 // class java/lang/Iterable
     343: invokestatic  #144                // Method kotlin/collections/CollectionsKt.reversed:(Ljava/lang/Iterable;)Ljava/util/List;
     346: aload         12
     348: swap
     349: invokeinterface #63,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     354: pop
     355: goto          305
     358: aload         7
     360: checkcast     #24                 // class java/util/List
     363: nop
     364: aload         4
     366: swap
     367: invokestatic  #134                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     370: nop
     371: astore_1
     372: iconst_0
     373: istore_2
     374: aload_1
     375: invokevirtual #149                // Method kotlin/Pair.component1:()Ljava/lang/Object;
     378: checkcast     #24                 // class java/util/List
     381: astore_3
     382: aload_1
     383: invokevirtual #152                // Method kotlin/Pair.component2:()Ljava/lang/Object;
     386: checkcast     #24                 // class java/util/List
     389: astore        4
     391: aload_3
     392: checkcast     #46                 // class java/util/Collection
     395: aload         4
     397: checkcast     #34                 // class java/lang/Iterable
     400: invokestatic  #77                 // Method kotlin/collections/CollectionsKt.plus:(Ljava/util/Collection;Ljava/lang/Iterable;)Ljava/util/List;
     403: checkcast     #46                 // class java/util/Collection
     406: aload_3
     407: invokestatic  #73                 // Method transpose:(Ljava/util/List;)Ljava/util/List;
     410: checkcast     #34                 // class java/lang/Iterable
     413: invokestatic  #77                 // Method kotlin/collections/CollectionsKt.plus:(Ljava/util/Collection;Ljava/lang/Iterable;)Ljava/util/List;
     416: checkcast     #46                 // class java/util/Collection
     419: aload         4
     421: invokestatic  #73                 // Method transpose:(Ljava/util/List;)Ljava/util/List;
     424: checkcast     #34                 // class java/lang/Iterable
     427: invokestatic  #77                 // Method kotlin/collections/CollectionsKt.plus:(Ljava/util/Collection;Ljava/lang/Iterable;)Ljava/util/List;
     430: checkcast     #34                 // class java/lang/Iterable
     433: astore_0
     434: nop
     435: iconst_0
     436: istore_1
     437: aload_0
     438: astore_2
     439: new           #36                 // class java/util/ArrayList
     442: dup
     443: aload_0
     444: bipush        10
     446: invokestatic  #40                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     449: invokespecial #44                 // Method java/util/ArrayList."<init>":(I)V
     452: checkcast     #46                 // class java/util/Collection
     455: astore_3
     456: iconst_0
     457: istore        4
     459: aload_2
     460: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     465: astore        5
     467: aload         5
     469: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     474: ifeq          740
     477: aload         5
     479: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     484: astore        6
     486: aload_3
     487: aload         6
     489: checkcast     #24                 // class java/util/List
     492: astore        7
     494: astore        24
     496: iconst_0
     497: istore        8
     499: aload         7
     501: checkcast     #34                 // class java/lang/Iterable
     504: astore        9
     506: invokestatic  #158                // Method kotlin/collections/SetsKt.emptySet:()Ljava/util/Set;
     509: astore        10
     511: nop
     512: iconst_0
     513: istore        11
     515: aload         10
     517: astore        12
     519: aload         9
     521: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     526: astore        13
     528: aload         13
     530: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     535: ifeq          725
     538: aload         13
     540: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     545: astore        14
     547: aload         12
     549: aload         14
     551: checkcast     #146                // class kotlin/Pair
     554: astore        15
     556: astore        16
     558: iconst_0
     559: istore        17
     561: aload         16
     563: checkcast     #46                 // class java/util/Collection
     566: invokeinterface #159,  1          // InterfaceMethod java/util/Collection.isEmpty:()Z
     571: ifne          578
     574: iconst_1
     575: goto          579
     578: iconst_0
     579: ifeq          713
     582: aload         16
     584: checkcast     #34                 // class java/lang/Iterable
     587: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     592: astore        18
     594: aload         18
     596: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     601: ifne          612
     604: new           #161                // class java/util/NoSuchElementException
     607: dup
     608: invokespecial #163                // Method java/util/NoSuchElementException."<init>":()V
     611: athrow
     612: aload         18
     614: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     619: checkcast     #146                // class kotlin/Pair
     622: astore        19
     624: iconst_0
     625: istore        20
     627: aload         19
     629: invokevirtual #166                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     632: checkcast     #168                // class java/lang/Number
     635: invokevirtual #171                // Method java/lang/Number.intValue:()I
     638: istore        19
     640: aload         18
     642: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     647: ifeq          692
     650: aload         18
     652: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     657: checkcast     #146                // class kotlin/Pair
     660: astore        20
     662: iconst_0
     663: istore        21
     665: aload         20
     667: invokevirtual #166                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     670: checkcast     #168                // class java/lang/Number
     673: invokevirtual #171                // Method java/lang/Number.intValue:()I
     676: istore        20
     678: iload         19
     680: iload         20
     682: if_icmpge     640
     685: iload         20
     687: istore        19
     689: goto          640
     692: iload         19
     694: aload         15
     696: invokevirtual #166                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     699: checkcast     #168                // class java/lang/Number
     702: invokevirtual #171                // Method java/lang/Number.intValue:()I
     705: if_icmplt     713
     708: aload         16
     710: goto          720
     713: aload         16
     715: aload         15
     717: invokestatic  #174                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Object;)Ljava/util/Set;
     720: astore        12
     722: goto          528
     725: aload         12
     727: nop
     728: aload         24
     730: swap
     731: invokeinterface #63,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     736: pop
     737: goto          467
     740: aload_3
     741: checkcast     #24                 // class java/util/List
     744: nop
     745: checkcast     #34                 // class java/lang/Iterable
     748: invokestatic  #177                // Method kotlin/collections/CollectionsKt.flatten:(Ljava/lang/Iterable;)Ljava/util/List;
     751: checkcast     #34                 // class java/lang/Iterable
     754: invokestatic  #181                // Method kotlin/collections/CollectionsKt.toSet:(Ljava/lang/Iterable;)Ljava/util/Set;
     757: checkcast     #46                 // class java/util/Collection
     760: invokeinterface #184,  1          // InterfaceMethod java/util/Collection.size:()I
     765: ireturn

  public static final <T> java.util.List<T> takeWhileInclusive(java.util.List<? extends T>, kotlin.jvm.functions.Function1<? super T, java.lang.Boolean>);
    Code:
       0: aload_0
       1: ldc           #10                 // String <this>
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: ldc           #223                // String pred
       9: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: iconst_0
      13: istore_2
      14: iconst_1
      15: istore_2
      16: aload_0
      17: checkcast     #34                 // class java/lang/Iterable
      20: astore_3
      21: iconst_0
      22: istore        4
      24: new           #36                 // class java/util/ArrayList
      27: dup
      28: invokespecial #224                // Method java/util/ArrayList."<init>":()V
      31: astore        5
      33: aload_3
      34: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      39: astore        6
      41: aload         6
      43: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      48: ifeq          104
      51: aload         6
      53: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      58: astore        7
      60: aload         7
      62: astore        8
      64: iconst_0
      65: istore        9
      67: iload_2
      68: istore        10
      70: aload_1
      71: aload         8
      73: invokeinterface #230,  2          // InterfaceMethod kotlin/jvm/functions/Function1.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
      78: checkcast     #232                // class java/lang/Boolean
      81: invokevirtual #235                // Method java/lang/Boolean.booleanValue:()Z
      84: istore_2
      85: iload         10
      87: ifne          93
      90: goto          104
      93: aload         5
      95: aload         7
      97: invokevirtual #236                // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
     100: pop
     101: goto          41
     104: aload         5
     106: checkcast     #24                 // class java/util/List
     109: areturn

  public static final int day8part2();
    Code:
       0: new           #96                 // class java/io/File
       3: dup
       4: ldc           #98                 // String input/08.txt
       6: invokespecial #101                // Method java/io/File."<init>":(Ljava/lang/String;)V
       9: aconst_null
      10: iconst_1
      11: aconst_null
      12: invokestatic  #107                // Method kotlin/io/FilesKt.readLines$default:(Ljava/io/File;Ljava/nio/charset/Charset;ILjava/lang/Object;)Ljava/util/List;
      15: checkcast     #34                 // class java/lang/Iterable
      18: astore_0
      19: nop
      20: iconst_0
      21: istore_1
      22: aload_0
      23: astore_2
      24: new           #36                 // class java/util/ArrayList
      27: dup
      28: aload_0
      29: bipush        10
      31: invokestatic  #40                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      34: invokespecial #44                 // Method java/util/ArrayList."<init>":(I)V
      37: checkcast     #46                 // class java/util/Collection
      40: astore_3
      41: iconst_0
      42: istore        4
      44: iconst_0
      45: istore        5
      47: aload_2
      48: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      53: astore        6
      55: aload         6
      57: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      62: ifeq          247
      65: aload         6
      67: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      72: astore        7
      74: aload_3
      75: iload         5
      77: iinc          5, 1
      80: istore        8
      82: iload         8
      84: ifge          90
      87: invokestatic  #111                // Method kotlin/collections/CollectionsKt.throwIndexOverflow:()V
      90: iload         8
      92: aload         7
      94: checkcast     #113                // class java/lang/String
      97: astore        9
      99: istore        10
     101: astore        30
     103: iconst_0
     104: istore        11
     106: aload         9
     108: checkcast     #115                // class java/lang/CharSequence
     111: astore        12
     113: iconst_0
     114: istore        13
     116: aload         12
     118: astore        14
     120: new           #36                 // class java/util/ArrayList
     123: dup
     124: aload         12
     126: invokeinterface #118,  1          // InterfaceMethod java/lang/CharSequence.length:()I
     131: invokespecial #44                 // Method java/util/ArrayList."<init>":(I)V
     134: checkcast     #46                 // class java/util/Collection
     137: astore        15
     139: iconst_0
     140: istore        16
     142: iconst_0
     143: istore        17
     145: iconst_0
     146: istore        18
     148: iload         18
     150: aload         14
     152: invokeinterface #118,  1          // InterfaceMethod java/lang/CharSequence.length:()I
     157: if_icmpge     228
     160: aload         14
     162: iload         18
     164: invokeinterface #122,  2          // InterfaceMethod java/lang/CharSequence.charAt:(I)C
     169: istore        19
     171: aload         15
     173: iload         17
     175: iinc          17, 1
     178: iload         19
     180: istore        20
     182: istore        21
     184: astore        22
     186: iconst_0
     187: istore        23
     189: iload         10
     191: invokestatic  #128                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     194: iload         21
     196: invokestatic  #128                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     199: invokestatic  #134                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     202: iload         20
     204: invokestatic  #140                // Method kotlin/text/CharsKt.digitToInt:(C)I
     207: invokestatic  #128                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     210: invokestatic  #134                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     213: aload         22
     215: swap
     216: invokeinterface #63,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     221: pop
     222: iinc          18, 1
     225: goto          148
     228: aload         15
     230: checkcast     #24                 // class java/util/List
     233: nop
     234: nop
     235: aload         30
     237: swap
     238: invokeinterface #63,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     243: pop
     244: goto          55
     247: aload_3
     248: checkcast     #24                 // class java/util/List
     251: nop
     252: astore_1
     253: iconst_0
     254: istore_2
     255: aload_1
     256: aload_1
     257: checkcast     #34                 // class java/lang/Iterable
     260: invokestatic  #144                // Method kotlin/collections/CollectionsKt.reversed:(Ljava/lang/Iterable;)Ljava/util/List;
     263: checkcast     #34                 // class java/lang/Iterable
     266: astore_3
     267: astore        4
     269: iconst_0
     270: istore        5
     272: aload_3
     273: astore        6
     275: new           #36                 // class java/util/ArrayList
     278: dup
     279: aload_3
     280: bipush        10
     282: invokestatic  #40                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     285: invokespecial #44                 // Method java/util/ArrayList."<init>":(I)V
     288: checkcast     #46                 // class java/util/Collection
     291: astore        7
     293: iconst_0
     294: istore        8
     296: aload         6
     298: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     303: astore        9
     305: aload         9
     307: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     312: ifeq          358
     315: aload         9
     317: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     322: astore        10
     324: aload         7
     326: aload         10
     328: checkcast     #24                 // class java/util/List
     331: astore        11
     333: astore        12
     335: iconst_0
     336: istore        13
     338: aload         11
     340: checkcast     #34                 // class java/lang/Iterable
     343: invokestatic  #144                // Method kotlin/collections/CollectionsKt.reversed:(Ljava/lang/Iterable;)Ljava/util/List;
     346: aload         12
     348: swap
     349: invokeinterface #63,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     354: pop
     355: goto          305
     358: aload         7
     360: checkcast     #24                 // class java/util/List
     363: nop
     364: aload         4
     366: swap
     367: invokestatic  #134                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     370: nop
     371: astore_1
     372: iconst_0
     373: istore_2
     374: aload_1
     375: invokevirtual #149                // Method kotlin/Pair.component1:()Ljava/lang/Object;
     378: checkcast     #24                 // class java/util/List
     381: astore_3
     382: aload_1
     383: invokevirtual #152                // Method kotlin/Pair.component2:()Ljava/lang/Object;
     386: checkcast     #24                 // class java/util/List
     389: astore        4
     391: aload_3
     392: checkcast     #46                 // class java/util/Collection
     395: aload         4
     397: checkcast     #34                 // class java/lang/Iterable
     400: invokestatic  #77                 // Method kotlin/collections/CollectionsKt.plus:(Ljava/util/Collection;Ljava/lang/Iterable;)Ljava/util/List;
     403: checkcast     #46                 // class java/util/Collection
     406: aload_3
     407: invokestatic  #73                 // Method transpose:(Ljava/util/List;)Ljava/util/List;
     410: checkcast     #34                 // class java/lang/Iterable
     413: invokestatic  #77                 // Method kotlin/collections/CollectionsKt.plus:(Ljava/util/Collection;Ljava/lang/Iterable;)Ljava/util/List;
     416: checkcast     #46                 // class java/util/Collection
     419: aload         4
     421: invokestatic  #73                 // Method transpose:(Ljava/util/List;)Ljava/util/List;
     424: checkcast     #34                 // class java/lang/Iterable
     427: invokestatic  #77                 // Method kotlin/collections/CollectionsKt.plus:(Ljava/util/Collection;Ljava/lang/Iterable;)Ljava/util/List;
     430: checkcast     #34                 // class java/lang/Iterable
     433: astore_0
     434: new           #250                // class java/util/LinkedHashMap
     437: dup
     438: invokespecial #251                // Method java/util/LinkedHashMap."<init>":()V
     441: checkcast     #253                // class java/util/Map
     444: astore_1
     445: nop
     446: iconst_0
     447: istore_2
     448: aload_1
     449: astore_3
     450: aload_0
     451: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     456: astore        4
     458: aload         4
     460: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     465: ifeq          671
     468: aload         4
     470: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     475: astore        5
     477: aload_3
     478: aload         5
     480: checkcast     #24                 // class java/util/List
     483: astore        6
     485: astore        7
     487: iconst_0
     488: istore        8
     490: aload         6
     492: checkcast     #34                 // class java/lang/Iterable
     495: astore        9
     497: iconst_0
     498: istore        10
     500: iconst_0
     501: istore        11
     503: aload         9
     505: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     510: astore        12
     512: aload         12
     514: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     519: ifeq          664
     522: aload         12
     524: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     529: astore        13
     531: iload         11
     533: iinc          11, 1
     536: istore        14
     538: iload         14
     540: ifge          546
     543: invokestatic  #111                // Method kotlin/collections/CollectionsKt.throwIndexOverflow:()V
     546: iload         14
     548: aload         13
     550: checkcast     #146                // class kotlin/Pair
     553: astore        15
     555: istore        16
     557: iconst_0
     558: istore        17
     560: aload         7
     562: aload         15
     564: invokeinterface #256,  2          // InterfaceMethod java/util/Map.containsKey:(Ljava/lang/Object;)Z
     569: ifeq          628
     572: aload         7
     574: aload         15
     576: aload         7
     578: aload         15
     580: invokeinterface #259,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
     585: dup
     586: invokestatic  #263                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
     589: checkcast     #46                 // class java/util/Collection
     592: aload         6
     594: iload         16
     596: iconst_1
     597: iadd
     598: aload         6
     600: invokeinterface #264,  1          // InterfaceMethod java/util/List.size:()I
     605: invokeinterface #268,  3          // InterfaceMethod java/util/List.subList:(II)Ljava/util/List;
     610: invokestatic  #67                 // Method kotlin/collections/CollectionsKt.listOf:(Ljava/lang/Object;)Ljava/util/List;
     613: checkcast     #34                 // class java/lang/Iterable
     616: invokestatic  #77                 // Method kotlin/collections/CollectionsKt.plus:(Ljava/util/Collection;Ljava/lang/Iterable;)Ljava/util/List;
     619: invokeinterface #272,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     624: pop
     625: goto          659
     628: aload         7
     630: aload         15
     632: aload         6
     634: iload         16
     636: iconst_1
     637: iadd
     638: aload         6
     640: invokeinterface #264,  1          // InterfaceMethod java/util/List.size:()I
     645: invokeinterface #268,  3          // InterfaceMethod java/util/List.subList:(II)Ljava/util/List;
     650: invokestatic  #67                 // Method kotlin/collections/CollectionsKt.listOf:(Ljava/lang/Object;)Ljava/util/List;
     653: invokeinterface #272,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     658: pop
     659: nop
     660: nop
     661: goto          512
     664: nop
     665: aload         7
     667: astore_3
     668: goto          458
     671: aload_3
     672: invokeinterface #275,  1          // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set;
     677: checkcast     #34                 // class java/lang/Iterable
     680: astore_0
     681: nop
     682: iconst_0
     683: istore_1
     684: aload_0
     685: astore_2
     686: new           #36                 // class java/util/ArrayList
     689: dup
     690: aload_0
     691: bipush        10
     693: invokestatic  #40                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     696: invokespecial #44                 // Method java/util/ArrayList."<init>":(I)V
     699: checkcast     #46                 // class java/util/Collection
     702: astore_3
     703: iconst_0
     704: istore        4
     706: aload_2
     707: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     712: astore        5
     714: aload         5
     716: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     721: ifeq          991
     724: aload         5
     726: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     731: astore        6
     733: aload_3
     734: aload         6
     736: checkcast     #277                // class java/util/Map$Entry
     739: astore        7
     741: astore        30
     743: iconst_0
     744: istore        8
     746: aload         7
     748: invokeinterface #280,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;
     753: checkcast     #146                // class kotlin/Pair
     756: invokevirtual #166                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     759: aload         7
     761: invokeinterface #283,  1          // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;
     766: checkcast     #34                 // class java/lang/Iterable
     769: astore        9
     771: astore        10
     773: iconst_0
     774: istore        11
     776: aload         9
     778: astore        12
     780: new           #36                 // class java/util/ArrayList
     783: dup
     784: aload         9
     786: bipush        10
     788: invokestatic  #40                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     791: invokespecial #44                 // Method java/util/ArrayList."<init>":(I)V
     794: checkcast     #46                 // class java/util/Collection
     797: astore        13
     799: iconst_0
     800: istore        14
     802: aload         12
     804: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     809: astore        15
     811: aload         15
     813: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     818: ifeq          967
     821: aload         15
     823: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     828: astore        16
     830: aload         13
     832: aload         16
     834: checkcast     #24                 // class java/util/List
     837: astore        17
     839: astore        18
     841: iconst_0
     842: istore        19
     844: aload         17
     846: checkcast     #34                 // class java/lang/Iterable
     849: astore        20
     851: iconst_0
     852: istore        21
     854: aload         20
     856: astore        22
     858: new           #36                 // class java/util/ArrayList
     861: dup
     862: aload         20
     864: bipush        10
     866: invokestatic  #40                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     869: invokespecial #44                 // Method java/util/ArrayList."<init>":(I)V
     872: checkcast     #46                 // class java/util/Collection
     875: astore        23
     877: iconst_0
     878: istore        24
     880: aload         22
     882: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     887: astore        25
     889: aload         25
     891: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     896: ifeq          948
     899: aload         25
     901: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     906: astore        26
     908: aload         23
     910: aload         26
     912: checkcast     #146                // class kotlin/Pair
     915: astore        27
     917: astore        28
     919: iconst_0
     920: istore        29
     922: aload         27
     924: invokevirtual #166                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     927: checkcast     #168                // class java/lang/Number
     930: invokevirtual #171                // Method java/lang/Number.intValue:()I
     933: invokestatic  #128                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     936: aload         28
     938: swap
     939: invokeinterface #63,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     944: pop
     945: goto          889
     948: aload         23
     950: checkcast     #24                 // class java/util/List
     953: nop
     954: nop
     955: aload         18
     957: swap
     958: invokeinterface #63,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     963: pop
     964: goto          811
     967: aload         13
     969: checkcast     #24                 // class java/util/List
     972: nop
     973: aload         10
     975: swap
     976: invokestatic  #134                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     979: aload         30
     981: swap
     982: invokeinterface #63,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     987: pop
     988: goto          714
     991: aload_3
     992: checkcast     #24                 // class java/util/List
     995: nop
     996: checkcast     #34                 // class java/lang/Iterable
     999: astore_0
    1000: nop
    1001: iconst_0
    1002: istore_1
    1003: aload_0
    1004: astore_2
    1005: new           #36                 // class java/util/ArrayList
    1008: dup
    1009: aload_0
    1010: bipush        10
    1012: invokestatic  #40                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
    1015: invokespecial #44                 // Method java/util/ArrayList."<init>":(I)V
    1018: checkcast     #46                 // class java/util/Collection
    1021: astore_3
    1022: iconst_0
    1023: istore        4
    1025: aload_2
    1026: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1031: astore        5
    1033: aload         5
    1035: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1040: ifeq          1221
    1043: aload         5
    1045: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1050: astore        6
    1052: aload_3
    1053: aload         6
    1055: checkcast     #146                // class kotlin/Pair
    1058: astore        7
    1060: astore        30
    1062: iconst_0
    1063: istore        8
    1065: aload         7
    1067: invokevirtual #149                // Method kotlin/Pair.component1:()Ljava/lang/Object;
    1070: checkcast     #168                // class java/lang/Number
    1073: invokevirtual #171                // Method java/lang/Number.intValue:()I
    1076: istore        9
    1078: aload         7
    1080: invokevirtual #152                // Method kotlin/Pair.component2:()Ljava/lang/Object;
    1083: checkcast     #24                 // class java/util/List
    1086: astore        10
    1088: aload         10
    1090: checkcast     #34                 // class java/lang/Iterable
    1093: astore        11
    1095: iconst_0
    1096: istore        12
    1098: aload         11
    1100: astore        13
    1102: new           #36                 // class java/util/ArrayList
    1105: dup
    1106: aload         11
    1108: bipush        10
    1110: invokestatic  #40                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
    1113: invokespecial #44                 // Method java/util/ArrayList."<init>":(I)V
    1116: checkcast     #46                 // class java/util/Collection
    1119: astore        14
    1121: iconst_0
    1122: istore        15
    1124: aload         13
    1126: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1131: astore        16
    1133: aload         16
    1135: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1140: ifeq          1202
    1143: aload         16
    1145: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1150: astore        17
    1152: aload         14
    1154: aload         17
    1156: checkcast     #24                 // class java/util/List
    1159: astore        18
    1161: astore        19
    1163: iconst_0
    1164: istore        20
    1166: aload         18
    1168: iload         9
    1170: invokedynamic #301,  0            // InvokeDynamic #0:invoke:(I)Lkotlin/jvm/functions/Function1;
    1175: invokestatic  #303                // Method takeWhileInclusive:(Ljava/util/List;Lkotlin/jvm/functions/Function1;)Ljava/util/List;
    1178: checkcast     #46                 // class java/util/Collection
    1181: invokeinterface #184,  1          // InterfaceMethod java/util/Collection.size:()I
    1186: nop
    1187: invokestatic  #128                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1190: aload         19
    1192: swap
    1193: invokeinterface #63,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    1198: pop
    1199: goto          1133
    1202: aload         14
    1204: checkcast     #24                 // class java/util/List
    1207: nop
    1208: nop
    1209: aload         30
    1211: swap
    1212: invokeinterface #63,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    1217: pop
    1218: goto          1033
    1221: aload_3
    1222: checkcast     #24                 // class java/util/List
    1225: nop
    1226: checkcast     #34                 // class java/lang/Iterable
    1229: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1234: astore_1
    1235: aload_1
    1236: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1241: ifne          1252
    1244: new           #161                // class java/util/NoSuchElementException
    1247: dup
    1248: invokespecial #163                // Method java/util/NoSuchElementException."<init>":()V
    1251: athrow
    1252: aload_1
    1253: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1258: checkcast     #24                 // class java/util/List
    1261: astore_2
    1262: iconst_0
    1263: istore_3
    1264: aload_2
    1265: checkcast     #34                 // class java/lang/Iterable
    1268: astore        4
    1270: iconst_0
    1271: istore        5
    1273: aload         4
    1275: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1280: astore        6
    1282: aload         6
    1284: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1289: ifne          1303
    1292: new           #305                // class java/lang/UnsupportedOperationException
    1295: dup
    1296: ldc_w         #307                // String Empty collection can\'t be reduced.
    1299: invokespecial #308                // Method java/lang/UnsupportedOperationException."<init>":(Ljava/lang/String;)V
    1302: athrow
    1303: aload         6
    1305: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1310: astore        7
    1312: aload         6
    1314: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1319: ifeq          1363
    1322: aload         7
    1324: aload         6
    1326: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1331: checkcast     #168                // class java/lang/Number
    1334: invokevirtual #171                // Method java/lang/Number.intValue:()I
    1337: istore        8
    1339: checkcast     #168                // class java/lang/Number
    1342: invokevirtual #171                // Method java/lang/Number.intValue:()I
    1345: istore        9
    1347: iconst_0
    1348: istore        10
    1350: iload         9
    1352: iload         8
    1354: imul
    1355: invokestatic  #128                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1358: astore        7
    1360: goto          1312
    1363: aload         7
    1365: checkcast     #168                // class java/lang/Number
    1368: invokevirtual #171                // Method java/lang/Number.intValue:()I
    1371: nop
    1372: istore_2
    1373: aload_1
    1374: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1379: ifeq          1514
    1382: aload_1
    1383: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1388: checkcast     #24                 // class java/util/List
    1391: astore_3
    1392: iconst_0
    1393: istore        4
    1395: aload_3
    1396: checkcast     #34                 // class java/lang/Iterable
    1399: astore        5
    1401: iconst_0
    1402: istore        6
    1404: aload         5
    1406: invokeinterface #50,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1411: astore        7
    1413: aload         7
    1415: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1420: ifne          1434
    1423: new           #305                // class java/lang/UnsupportedOperationException
    1426: dup
    1427: ldc_w         #307                // String Empty collection can\'t be reduced.
    1430: invokespecial #308                // Method java/lang/UnsupportedOperationException."<init>":(Ljava/lang/String;)V
    1433: athrow
    1434: aload         7
    1436: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1441: astore        8
    1443: aload         7
    1445: invokeinterface #55,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1450: ifeq          1494
    1453: aload         8
    1455: aload         7
    1457: invokeinterface #59,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1462: checkcast     #168                // class java/lang/Number
    1465: invokevirtual #171                // Method java/lang/Number.intValue:()I
    1468: istore        9
    1470: checkcast     #168                // class java/lang/Number
    1473: invokevirtual #171                // Method java/lang/Number.intValue:()I
    1476: istore        10
    1478: iconst_0
    1479: istore        11
    1481: iload         10
    1483: iload         9
    1485: imul
    1486: invokestatic  #128                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
    1489: astore        8
    1491: goto          1443
    1494: aload         8
    1496: checkcast     #168                // class java/lang/Number
    1499: invokevirtual #171                // Method java/lang/Number.intValue:()I
    1502: nop
    1503: istore_3
    1504: iload_2
    1505: iload_3
    1506: if_icmpge     1373
    1509: iload_3
    1510: istore_2
    1511: goto          1373
    1514: iload_2
    1515: ireturn

  private static final boolean day8part2$lambda$23$lambda$22$lambda$21(int, int);
    Code:
       0: iload_1
       1: iload_0
       2: if_icmpge     9
       5: iconst_1
       6: goto          10
       9: iconst_0
      10: ireturn
}