import java.io.File

class AOC8 {

    var maxScore = 0

    fun process() {
        val input = File("/home/ben/aoc/input-8.txt")
        val sample = input.useLines { it.toList() }
        val matrix = sample.map { it.toCharArray() }.toTypedArray()
        var count = 0

        matrix.mapIndexed { y, row ->
            row.mapIndexed { x, _ ->
                if (isVisible(x, y, matrix)) {
                    count++
                }
                scoreTree(x, y, matrix)
            }
        }

        println("Part 1 Answer: $count")
        println("Part 2 Answer: $maxScore")

    }

    private fun scoreTree(x: Int, y: Int, matrix: Array<CharArray>)  : Int {
        if (x == 0 || x == matrix.size -1 || y == 0 || y == matrix.size -1) {
            return 0
        }

        val a = matrix[y][x].digitToInt()

        val right = matrix[y].takeWhile { it.digitToInt() < a }.count()
        val left = matrix[y].reversed().takeWhile { it.digitToInt() < a }.count()
        val down = matrix.takeWhile { it[x].digitToInt() < a }.count()
        val up = matrix.reversed().takeWhile { it[x].digitToInt() < a }.count()

        val score = up * down * left * right

        if (score > maxScore) {
            maxScore = score
        }

        return score
    }

    private fun isVisible(x: Int, y: Int, matrix: Array<CharArray>) : Boolean {
        if (x == 0 || x == matrix.size -1 || y == 0 || y == matrix.size -1) {
            return true
        }

        val a = matrix[y][x].digitToInt()

        val right = matrix[y].takeWhile { it.digitToInt() < a }.count()
        val left = matrix[y].reversed().takeWhile { it.digitToInt() < a }.count()
        val down = matrix.takeWhile { it[x].digitToInt() < a }.count()
        val up = matrix.reversed().takeWhile { it[x].digitToInt() < a }.count()

        return right == 0 || left == 0 || down == 0 || up == 0
    }

}

Compiled from "AOC8.kt"
public final class AOC8 {
  private int maxScore;

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

  public final int getMaxScore();
    Code:
       0: aload_0
       1: getfield      #16                 // Field maxScore:I
       4: ireturn

  public final void setMaxScore(int);
    Code:
       0: aload_0
       1: iload_1
       2: putfield      #16                 // Field maxScore:I
       5: return

  public final void process();
    Code:
       0: new           #24                 // class java/io/File
       3: dup
       4: ldc           #26                 // String /home/ben/aoc/input-8.txt
       6: invokespecial #29                 // Method java/io/File."<init>":(Ljava/lang/String;)V
       9: astore_1
      10: aload_1
      11: astore_3
      12: getstatic     #35                 // Field kotlin/text/Charsets.UTF_8:Ljava/nio/charset/Charset;
      15: astore        4
      17: iconst_0
      18: istore        5
      20: aload_3
      21: astore        6
      23: sipush        8192
      26: istore        7
      28: aload         6
      30: astore        8
      32: new           #37                 // class java/io/InputStreamReader
      35: dup
      36: new           #39                 // class java/io/FileInputStream
      39: dup
      40: aload         8
      42: invokespecial #42                 // Method java/io/FileInputStream."<init>":(Ljava/io/File;)V
      45: checkcast     #44                 // class java/io/InputStream
      48: aload         4
      50: invokespecial #47                 // Method java/io/InputStreamReader."<init>":(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
      53: checkcast     #49                 // class java/io/Reader
      56: astore        8
      58: aload         8
      60: instanceof    #51                 // class java/io/BufferedReader
      63: ifeq          74
      66: aload         8
      68: checkcast     #51                 // class java/io/BufferedReader
      71: goto          85
      74: new           #51                 // class java/io/BufferedReader
      77: dup
      78: aload         8
      80: iload         7
      82: invokespecial #54                 // Method java/io/BufferedReader."<init>":(Ljava/io/Reader;I)V
      85: checkcast     #56                 // class java/io/Closeable
      88: astore        6
      90: aconst_null
      91: astore        7
      93: nop
      94: aload         6
      96: checkcast     #51                 // class java/io/BufferedReader
      99: astore        8
     101: iconst_0
     102: istore        9
     104: aload         8
     106: invokestatic  #62                 // Method kotlin/io/TextStreamsKt.lineSequence:(Ljava/io/BufferedReader;)Lkotlin/sequences/Sequence;
     109: astore        10
     111: iconst_0
     112: istore        11
     114: aload         10
     116: invokestatic  #68                 // Method kotlin/sequences/SequencesKt.toList:(Lkotlin/sequences/Sequence;)Ljava/util/List;
     119: astore        8
     121: aload         6
     123: aload         7
     125: invokestatic  #74                 // Method kotlin/io/CloseableKt.closeFinally:(Ljava/io/Closeable;Ljava/lang/Throwable;)V
     128: aload         8
     130: goto          154
     133: astore        9
     135: aload         9
     137: astore        7
     139: aload         9
     141: athrow
     142: astore        9
     144: aload         6
     146: aload         7
     148: invokestatic  #74                 // Method kotlin/io/CloseableKt.closeFinally:(Ljava/io/Closeable;Ljava/lang/Throwable;)V
     151: aload         9
     153: athrow
     154: nop
     155: astore_2
     156: aload_2
     157: checkcast     #76                 // class java/lang/Iterable
     160: astore        4
     162: iconst_0
     163: istore        5
     165: aload         4
     167: astore        6
     169: new           #78                 // class java/util/ArrayList
     172: dup
     173: aload         4
     175: bipush        10
     177: invokestatic  #84                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     180: invokespecial #86                 // Method java/util/ArrayList."<init>":(I)V
     183: checkcast     #88                 // class java/util/Collection
     186: astore        7
     188: iconst_0
     189: istore        8
     191: aload         6
     193: invokeinterface #92,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     198: astore        9
     200: aload         9
     202: invokeinterface #98,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     207: ifeq          257
     210: aload         9
     212: invokeinterface #102,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     217: astore        10
     219: aload         7
     221: aload         10
     223: checkcast     #104                // class java/lang/String
     226: astore        11
     228: astore        29
     230: iconst_0
     231: istore        12
     233: aload         11
     235: invokevirtual #108                // Method java/lang/String.toCharArray:()[C
     238: dup
     239: ldc           #110                // String toCharArray(...)
     241: invokestatic  #116                // Method kotlin/jvm/internal/Intrinsics.checkNotNullExpressionValue:(Ljava/lang/Object;Ljava/lang/String;)V
     244: nop
     245: aload         29
     247: swap
     248: invokeinterface #120,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     253: pop
     254: goto          200
     257: aload         7
     259: checkcast     #122                // class java/util/List
     262: nop
     263: checkcast     #88                 // class java/util/Collection
     266: astore        4
     268: nop
     269: iconst_0
     270: istore        5
     272: aload         4
     274: astore        6
     276: aload         6
     278: iconst_0
     279: anewarray     #124                // class "[C"
     282: invokeinterface #128,  2          // InterfaceMethod java/util/Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
     287: checkcast     #130                // class "[[C"
     290: astore_3
     291: iconst_0
     292: istore        4
     294: aload_3
     295: checkcast     #132                // class "[Ljava/lang/Object;"
     298: astore        5
     300: iconst_0
     301: istore        6
     303: aload         5
     305: astore        7
     307: new           #78                 // class java/util/ArrayList
     310: dup
     311: aload         5
     313: arraylength
     314: invokespecial #86                 // Method java/util/ArrayList."<init>":(I)V
     317: checkcast     #88                 // class java/util/Collection
     320: astore        8
     322: iconst_0
     323: istore        9
     325: iconst_0
     326: istore        10
     328: iconst_0
     329: istore        11
     331: aload         7
     333: arraylength
     334: istore        12
     336: iload         11
     338: iload         12
     340: if_icmpge     506
     343: aload         7
     345: iload         11
     347: aaload
     348: astore        13
     350: aload         8
     352: iload         10
     354: iinc          10, 1
     357: aload         13
     359: checkcast     #124                // class "[C"
     362: astore        14
     364: istore        15
     366: astore        29
     368: iconst_0
     369: istore        16
     371: aload         14
     373: astore        17
     375: iconst_0
     376: istore        18
     378: aload         17
     380: astore        19
     382: new           #78                 // class java/util/ArrayList
     385: dup
     386: aload         17
     388: arraylength
     389: invokespecial #86                 // Method java/util/ArrayList."<init>":(I)V
     392: checkcast     #88                 // class java/util/Collection
     395: astore        20
     397: iconst_0
     398: istore        21
     400: iconst_0
     401: istore        22
     403: iconst_0
     404: istore        23
     406: aload         19
     408: arraylength
     409: istore        24
     411: iload         23
     413: iload         24
     415: if_icmpge     484
     418: aload         19
     420: iload         23
     422: caload
     423: istore        25
     425: aload         20
     427: iload         22
     429: iinc          22, 1
     432: istore        26
     434: astore        27
     436: iconst_0
     437: istore        28
     439: aload_0
     440: iload         26
     442: iload         15
     444: aload_3
     445: invokespecial #136                // Method isVisible:(II[[C)Z
     448: ifeq          457
     451: iload         4
     453: iconst_1
     454: iadd
     455: istore        4
     457: aload_0
     458: iload         26
     460: iload         15
     462: aload_3
     463: invokespecial #140                // Method scoreTree:(II[[C)I
     466: invokestatic  #146                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     469: aload         27
     471: swap
     472: invokeinterface #120,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     477: pop
     478: iinc          23, 1
     481: goto          411
     484: aload         20
     486: checkcast     #122                // class java/util/List
     489: nop
     490: nop
     491: aload         29
     493: swap
     494: invokeinterface #120,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     499: pop
     500: iinc          11, 1
     503: goto          336
     506: aload         8
     508: checkcast     #122                // class java/util/List
     511: nop
     512: pop
     513: new           #148                // class java/lang/StringBuilder
     516: dup
     517: invokespecial #149                // Method java/lang/StringBuilder."<init>":()V
     520: ldc           #151                // String Part 1 Answer:
     522: invokevirtual #155                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
     525: iload         4
     527: invokevirtual #158                // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
     530: invokevirtual #162                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
     533: getstatic     #168                // Field java/lang/System.out:Ljava/io/PrintStream;
     536: swap
     537: invokevirtual #174                // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
     540: new           #148                // class java/lang/StringBuilder
     543: dup
     544: invokespecial #149                // Method java/lang/StringBuilder."<init>":()V
     547: ldc           #176                // String Part 2 Answer:
     549: invokevirtual #155                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
     552: aload_0
     553: getfield      #16                 // Field maxScore:I
     556: invokevirtual #158                // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
     559: invokevirtual #162                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
     562: getstatic     #168                // Field java/lang/System.out:Ljava/io/PrintStream;
     565: swap
     566: invokevirtual #174                // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
     569: return
    Exception table:
       from    to  target type
          93   121   133   Class java/lang/Throwable
          93   121   142   any
         133   142   142   any
         142   144   142   any

  private final int scoreTree(int, int, char[][]);
    Code:
       0: iload_1
       1: ifeq          30
       4: iload_1
       5: aload_3
       6: checkcast     #132                // class "[Ljava/lang/Object;"
       9: arraylength
      10: iconst_1
      11: isub
      12: if_icmpeq     30
      15: iload_2
      16: ifeq          30
      19: iload_2
      20: aload_3
      21: checkcast     #132                // class "[Ljava/lang/Object;"
      24: arraylength
      25: iconst_1
      26: isub
      27: if_icmpne     32
      30: iconst_0
      31: ireturn
      32: aload_3
      33: iload_2
      34: aaload
      35: iload_1
      36: caload
      37: invokestatic  #226                // Method kotlin/text/CharsKt.digitToInt:(C)I
      40: istore        4
      42: aload_3
      43: iload_2
      44: aaload
      45: astore        6
      47: iconst_0
      48: istore        7
      50: new           #78                 // class java/util/ArrayList
      53: dup
      54: invokespecial #227                // Method java/util/ArrayList."<init>":()V
      57: astore        8
      59: iconst_0
      60: istore        9
      62: aload         6
      64: arraylength
      65: istore        10
      67: iload         9
      69: iload         10
      71: if_icmpge     126
      74: aload         6
      76: iload         9
      78: caload
      79: istore        11
      81: iload         11
      83: istore        12
      85: iconst_0
      86: istore        13
      88: iload         12
      90: invokestatic  #226                // Method kotlin/text/CharsKt.digitToInt:(C)I
      93: iload         4
      95: if_icmpge     102
      98: iconst_1
      99: goto          103
     102: iconst_0
     103: ifne          109
     106: goto          126
     109: aload         8
     111: iload         11
     113: invokestatic  #232                // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
     116: invokevirtual #233                // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
     119: pop
     120: iinc          9, 1
     123: goto          67
     126: aload         8
     128: checkcast     #122                // class java/util/List
     131: checkcast     #88                 // class java/util/Collection
     134: invokeinterface #236,  1          // InterfaceMethod java/util/Collection.size:()I
     139: istore        5
     141: aload_3
     142: iload_2
     143: aaload
     144: invokestatic  #242                // Method kotlin/collections/ArraysKt.reversed:([C)Ljava/util/List;
     147: checkcast     #76                 // class java/lang/Iterable
     150: astore        7
     152: iconst_0
     153: istore        8
     155: new           #78                 // class java/util/ArrayList
     158: dup
     159: invokespecial #227                // Method java/util/ArrayList."<init>":()V
     162: astore        9
     164: aload         7
     166: invokeinterface #92,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     171: astore        10
     173: aload         10
     175: invokeinterface #98,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     180: ifeq          237
     183: aload         10
     185: invokeinterface #102,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     190: astore        11
     192: aload         11
     194: checkcast     #229                // class java/lang/Character
     197: invokevirtual #246                // Method java/lang/Character.charValue:()C
     200: istore        12
     202: iconst_0
     203: istore        13
     205: iload         12
     207: invokestatic  #226                // Method kotlin/text/CharsKt.digitToInt:(C)I
     210: iload         4
     212: if_icmpge     219
     215: iconst_1
     216: goto          220
     219: iconst_0
     220: ifne          226
     223: goto          237
     226: aload         9
     228: aload         11
     230: invokevirtual #233                // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
     233: pop
     234: goto          173
     237: aload         9
     239: checkcast     #122                // class java/util/List
     242: checkcast     #88                 // class java/util/Collection
     245: invokeinterface #236,  1          // InterfaceMethod java/util/Collection.size:()I
     250: istore        6
     252: aload_3
     253: checkcast     #132                // class "[Ljava/lang/Object;"
     256: astore        8
     258: iconst_0
     259: istore        9
     261: new           #78                 // class java/util/ArrayList
     264: dup
     265: invokespecial #227                // Method java/util/ArrayList."<init>":()V
     268: astore        10
     270: iconst_0
     271: istore        11
     273: aload         8
     275: arraylength
     276: istore        12
     278: iload         11
     280: iload         12
     282: if_icmpge     339
     285: aload         8
     287: iload         11
     289: aaload
     290: astore        13
     292: aload         13
     294: checkcast     #124                // class "[C"
     297: astore        14
     299: iconst_0
     300: istore        15
     302: aload         14
     304: iload_1
     305: caload
     306: invokestatic  #226                // Method kotlin/text/CharsKt.digitToInt:(C)I
     309: iload         4
     311: if_icmpge     318
     314: iconst_1
     315: goto          319
     318: iconst_0
     319: ifne          325
     322: goto          339
     325: aload         10
     327: aload         13
     329: invokevirtual #233                // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
     332: pop
     333: iinc          11, 1
     336: goto          278
     339: aload         10
     341: checkcast     #122                // class java/util/List
     344: checkcast     #88                 // class java/util/Collection
     347: invokeinterface #236,  1          // InterfaceMethod java/util/Collection.size:()I
     352: istore        7
     354: aload_3
     355: checkcast     #132                // class "[Ljava/lang/Object;"
     358: invokestatic  #249                // Method kotlin/collections/ArraysKt.reversed:([Ljava/lang/Object;)Ljava/util/List;
     361: checkcast     #76                 // class java/lang/Iterable
     364: astore        9
     366: iconst_0
     367: istore        10
     369: new           #78                 // class java/util/ArrayList
     372: dup
     373: invokespecial #227                // Method java/util/ArrayList."<init>":()V
     376: astore        11
     378: aload         9
     380: invokeinterface #92,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     385: astore        12
     387: aload         12
     389: invokeinterface #98,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     394: ifeq          450
     397: aload         12
     399: invokeinterface #102,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     404: astore        13
     406: aload         13
     408: checkcast     #124                // class "[C"
     411: astore        14
     413: iconst_0
     414: istore        15
     416: aload         14
     418: iload_1
     419: caload
     420: invokestatic  #226                // Method kotlin/text/CharsKt.digitToInt:(C)I
     423: iload         4
     425: if_icmpge     432
     428: iconst_1
     429: goto          433
     432: iconst_0
     433: ifne          439
     436: goto          450
     439: aload         11
     441: aload         13
     443: invokevirtual #233                // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
     446: pop
     447: goto          387
     450: aload         11
     452: checkcast     #122                // class java/util/List
     455: checkcast     #88                 // class java/util/Collection
     458: invokeinterface #236,  1          // InterfaceMethod java/util/Collection.size:()I
     463: istore        8
     465: iload         8
     467: iload         7
     469: imul
     470: iload         6
     472: imul
     473: iload         5
     475: imul
     476: istore        9
     478: iload         9
     480: aload_0
     481: getfield      #16                 // Field maxScore:I
     484: if_icmple     493
     487: aload_0
     488: iload         9
     490: putfield      #16                 // Field maxScore:I
     493: iload         9
     495: ireturn

  private final boolean isVisible(int, int, char[][]);
    Code:
       0: iload_1
       1: ifeq          30
       4: iload_1
       5: aload_3
       6: checkcast     #132                // class "[Ljava/lang/Object;"
       9: arraylength
      10: iconst_1
      11: isub
      12: if_icmpeq     30
      15: iload_2
      16: ifeq          30
      19: iload_2
      20: aload_3
      21: checkcast     #132                // class "[Ljava/lang/Object;"
      24: arraylength
      25: iconst_1
      26: isub
      27: if_icmpne     32
      30: iconst_1
      31: ireturn
      32: aload_3
      33: iload_2
      34: aaload
      35: iload_1
      36: caload
      37: invokestatic  #226                // Method kotlin/text/CharsKt.digitToInt:(C)I
      40: istore        4
      42: aload_3
      43: iload_2
      44: aaload
      45: astore        6
      47: iconst_0
      48: istore        7
      50: new           #78                 // class java/util/ArrayList
      53: dup
      54: invokespecial #227                // Method java/util/ArrayList."<init>":()V
      57: astore        8
      59: iconst_0
      60: istore        9
      62: aload         6
      64: arraylength
      65: istore        10
      67: iload         9
      69: iload         10
      71: if_icmpge     126
      74: aload         6
      76: iload         9
      78: caload
      79: istore        11
      81: iload         11
      83: istore        12
      85: iconst_0
      86: istore        13
      88: iload         12
      90: invokestatic  #226                // Method kotlin/text/CharsKt.digitToInt:(C)I
      93: iload         4
      95: if_icmpge     102
      98: iconst_1
      99: goto          103
     102: iconst_0
     103: ifne          109
     106: goto          126
     109: aload         8
     111: iload         11
     113: invokestatic  #232                // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
     116: invokevirtual #233                // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
     119: pop
     120: iinc          9, 1
     123: goto          67
     126: aload         8
     128: checkcast     #122                // class java/util/List
     131: checkcast     #88                 // class java/util/Collection
     134: invokeinterface #236,  1          // InterfaceMethod java/util/Collection.size:()I
     139: istore        5
     141: aload_3
     142: iload_2
     143: aaload
     144: invokestatic  #242                // Method kotlin/collections/ArraysKt.reversed:([C)Ljava/util/List;
     147: checkcast     #76                 // class java/lang/Iterable
     150: astore        7
     152: iconst_0
     153: istore        8
     155: new           #78                 // class java/util/ArrayList
     158: dup
     159: invokespecial #227                // Method java/util/ArrayList."<init>":()V
     162: astore        9
     164: aload         7
     166: invokeinterface #92,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     171: astore        10
     173: aload         10
     175: invokeinterface #98,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     180: ifeq          237
     183: aload         10
     185: invokeinterface #102,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     190: astore        11
     192: aload         11
     194: checkcast     #229                // class java/lang/Character
     197: invokevirtual #246                // Method java/lang/Character.charValue:()C
     200: istore        12
     202: iconst_0
     203: istore        13
     205: iload         12
     207: invokestatic  #226                // Method kotlin/text/CharsKt.digitToInt:(C)I
     210: iload         4
     212: if_icmpge     219
     215: iconst_1
     216: goto          220
     219: iconst_0
     220: ifne          226
     223: goto          237
     226: aload         9
     228: aload         11
     230: invokevirtual #233                // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
     233: pop
     234: goto          173
     237: aload         9
     239: checkcast     #122                // class java/util/List
     242: checkcast     #88                 // class java/util/Collection
     245: invokeinterface #236,  1          // InterfaceMethod java/util/Collection.size:()I
     250: istore        6
     252: aload_3
     253: checkcast     #132                // class "[Ljava/lang/Object;"
     256: astore        8
     258: iconst_0
     259: istore        9
     261: new           #78                 // class java/util/ArrayList
     264: dup
     265: invokespecial #227                // Method java/util/ArrayList."<init>":()V
     268: astore        10
     270: iconst_0
     271: istore        11
     273: aload         8
     275: arraylength
     276: istore        12
     278: iload         11
     280: iload         12
     282: if_icmpge     339
     285: aload         8
     287: iload         11
     289: aaload
     290: astore        13
     292: aload         13
     294: checkcast     #124                // class "[C"
     297: astore        14
     299: iconst_0
     300: istore        15
     302: aload         14
     304: iload_1
     305: caload
     306: invokestatic  #226                // Method kotlin/text/CharsKt.digitToInt:(C)I
     309: iload         4
     311: if_icmpge     318
     314: iconst_1
     315: goto          319
     318: iconst_0
     319: ifne          325
     322: goto          339
     325: aload         10
     327: aload         13
     329: invokevirtual #233                // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
     332: pop
     333: iinc          11, 1
     336: goto          278
     339: aload         10
     341: checkcast     #122                // class java/util/List
     344: checkcast     #88                 // class java/util/Collection
     347: invokeinterface #236,  1          // InterfaceMethod java/util/Collection.size:()I
     352: istore        7
     354: aload_3
     355: checkcast     #132                // class "[Ljava/lang/Object;"
     358: invokestatic  #249                // Method kotlin/collections/ArraysKt.reversed:([Ljava/lang/Object;)Ljava/util/List;
     361: checkcast     #76                 // class java/lang/Iterable
     364: astore        9
     366: iconst_0
     367: istore        10
     369: new           #78                 // class java/util/ArrayList
     372: dup
     373: invokespecial #227                // Method java/util/ArrayList."<init>":()V
     376: astore        11
     378: aload         9
     380: invokeinterface #92,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     385: astore        12
     387: aload         12
     389: invokeinterface #98,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     394: ifeq          450
     397: aload         12
     399: invokeinterface #102,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     404: astore        13
     406: aload         13
     408: checkcast     #124                // class "[C"
     411: astore        14
     413: iconst_0
     414: istore        15
     416: aload         14
     418: iload_1
     419: caload
     420: invokestatic  #226                // Method kotlin/text/CharsKt.digitToInt:(C)I
     423: iload         4
     425: if_icmpge     432
     428: iconst_1
     429: goto          433
     432: iconst_0
     433: ifne          439
     436: goto          450
     439: aload         11
     441: aload         13
     443: invokevirtual #233                // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
     446: pop
     447: goto          387
     450: aload         11
     452: checkcast     #122                // class java/util/List
     455: checkcast     #88                 // class java/util/Collection
     458: invokeinterface #236,  1          // InterfaceMethod java/util/Collection.size:()I
     463: istore        8
     465: iload         5
     467: ifeq          485
     470: iload         6
     472: ifeq          485
     475: iload         7
     477: ifeq          485
     480: iload         8
     482: ifne          489
     485: iconst_1
     486: goto          490
     489: iconst_0
     490: ireturn
}


import java.util.stream.Collectors
import java.util.stream.IntStream
import java.util.stream.Stream

fun main(args: Array<String>) {
    println("Examples foreach, list, array, collection ....")
    println()

    val list1 = listOf("one", "two", "three")
    foreachList(list1)
    val list2 = list1 + listOf("four", "five", "six")
    streamForeachList(list2)
    translateNumbers(list2)
    sum(list2)
    sumParallel(list2)
    sumAdvanced(list2)
    evenOdd(list2)

    simulateForeach(list2) {
        println(it)
    }
}

fun foreachList(vals: List<String>) {
    println("[foreach] on list")
    vals.forEach { println(it) }
}

fun streamForeachList(vals: List<String>) {
    println("[stream.foreach] on list")
    vals.stream().forEach { println(it) }
}

fun simulateForeach(vals: List<String>, body: (String) -> Unit) {
    println("Foreach simulated by inline fun")
    for (s in vals) {
        body(s)
    }
}

fun translateNumbers(vals: List<String>) {
    println("[stream.mapToInt.foreach] on list")
    vals.stream().mapToInt {
        when (it) {
            "one" -> 1
            "two" -> 2
            "three" -> 3
            "four" -> 4
            "five" -> 5
            "six" -> 6
            else -> -1
        }
    }.forEach { println(it) }
}

fun sum(vals: List<String>) {
    println("[stream.mapToInt.sum] on list")
    vals.stream().filter({
        if (vals.indexOf(it) == vals.size - 1) print(it + " = ") else print(it + " + ")
        true
    }).mapToInt {
        when (it) {
            "one" -> 1
            "two" -> 2
            "three" -> 3
            "four" -> 4
            "five" -> 5
            "six" -> 6
            else -> -1
        }
    }.sum().let { println(it) }
}

fun sumParallel(vals: List<String>) {
    println("[stream.mapToInt.parallel.sum] on list")
    vals.stream().parallel().filter({
        if (vals.indexOf(it) == vals.size - 1) print(it + " = ") else print(it + " + ")
        true
    }).mapToInt {
        when (it) {
            "one" -> 1
            "two" -> 2
            "three" -> 3
            "four" -> 4
            "five" -> 5
            "six" -> 6
            else -> -1
        }
    }.sum().let { println(it) }
}

fun sumAdvanced(vals: List<String>) {
    println("[stream + stream] on list")
    vals.stream().flatMapToInt {
        Stream.of(
            when (it) {
                "one" -> Pair(1, 1)//index or position, value
                "two" -> Pair(2, 2)
                "three" -> Pair(3, 3)
                "four" -> Pair(4, 4)
                "five" -> Pair(5, 5)
                "six" -> Pair(6, 7)
                else -> null
            }
        ).filter {
            if (it!!.first == vals.size) print(it.first.toString() + " = ") else print(it.first.toString() + " + ")
            true
        }.flatMapToInt { IntStream.of(it!!.second) }
    }.sum().let { println(it) }

}

fun evenOdd(vals: List<String>) {
    println("[stream + collect + partitioningBy] on list")
    val collect = vals.stream().collect(Collectors.partitioningBy({
        val num = when (it) {
            "one" -> 1
            "two" -> 2
            "three" -> 3
            "four" -> 4
            "five" -> 5
            "six" -> 6
            else -> -1
        }
        num.rem(2) == 0
    }))
    println("even:")
    println(collect[true])
    println("odd:")
    println(collect[false])
}

Compiled from "main0.kt"
public final class Main0Kt {
  public static final void main(java.lang.String[]);
    Code:
       0: aload_0
       1: ldc           #9                  // String args
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: ldc           #17                 // String Examples foreach, list, array, collection ....
       8: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      11: swap
      12: invokevirtual #29                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
      15: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      18: invokevirtual #32                 // Method java/io/PrintStream.println:()V
      21: iconst_3
      22: anewarray     #34                 // class java/lang/String
      25: astore_2
      26: aload_2
      27: iconst_0
      28: ldc           #36                 // String one
      30: aastore
      31: aload_2
      32: iconst_1
      33: ldc           #38                 // String two
      35: aastore
      36: aload_2
      37: iconst_2
      38: ldc           #40                 // String three
      40: aastore
      41: aload_2
      42: invokestatic  #46                 // Method kotlin/collections/CollectionsKt.listOf:([Ljava/lang/Object;)Ljava/util/List;
      45: astore_1
      46: aload_1
      47: invokestatic  #50                 // Method foreachList:(Ljava/util/List;)V
      50: aload_1
      51: checkcast     #52                 // class java/util/Collection
      54: iconst_3
      55: anewarray     #34                 // class java/lang/String
      58: astore_3
      59: aload_3
      60: iconst_0
      61: ldc           #54                 // String four
      63: aastore
      64: aload_3
      65: iconst_1
      66: ldc           #56                 // String five
      68: aastore
      69: aload_3
      70: iconst_2
      71: ldc           #58                 // String six
      73: aastore
      74: aload_3
      75: invokestatic  #46                 // Method kotlin/collections/CollectionsKt.listOf:([Ljava/lang/Object;)Ljava/util/List;
      78: checkcast     #60                 // class java/lang/Iterable
      81: invokestatic  #64                 // Method kotlin/collections/CollectionsKt.plus:(Ljava/util/Collection;Ljava/lang/Iterable;)Ljava/util/List;
      84: astore_2
      85: aload_2
      86: invokestatic  #67                 // Method streamForeachList:(Ljava/util/List;)V
      89: aload_2
      90: invokestatic  #70                 // Method translateNumbers:(Ljava/util/List;)V
      93: aload_2
      94: invokestatic  #73                 // Method sum:(Ljava/util/List;)V
      97: aload_2
      98: invokestatic  #76                 // Method sumParallel:(Ljava/util/List;)V
     101: aload_2
     102: invokestatic  #79                 // Method sumAdvanced:(Ljava/util/List;)V
     105: aload_2
     106: invokestatic  #82                 // Method evenOdd:(Ljava/util/List;)V
     109: aload_2
     110: invokedynamic #101,  0            // InvokeDynamic #0:invoke:()Lkotlin/jvm/functions/Function1;
     115: invokestatic  #105                // Method simulateForeach:(Ljava/util/List;Lkotlin/jvm/functions/Function1;)V
     118: return

  public static final void foreachList(java.util.List<java.lang.String>);
    Code:
       0: aload_0
       1: ldc           #112                // String vals
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: ldc           #114                // String [foreach] on list
       8: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      11: swap
      12: invokevirtual #29                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
      15: aload_0
      16: checkcast     #60                 // class java/lang/Iterable
      19: astore_1
      20: iconst_0
      21: istore_2
      22: aload_1
      23: invokeinterface #118,  1          // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      28: astore_3
      29: aload_3
      30: invokeinterface #124,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      35: ifeq          69
      38: aload_3
      39: invokeinterface #128,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      44: astore        4
      46: aload         4
      48: checkcast     #34                 // class java/lang/String
      51: astore        5
      53: iconst_0
      54: istore        6
      56: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      59: aload         5
      61: invokevirtual #29                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
      64: nop
      65: nop
      66: goto          29
      69: nop
      70: return

  public static final void streamForeachList(java.util.List<java.lang.String>);
    Code:
       0: aload_0
       1: ldc           #112                // String vals
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: ldc           #139                // String [stream.foreach] on list
       8: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      11: swap
      12: invokevirtual #29                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
      15: aload_0
      16: invokeinterface #145,  1          // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;
      21: invokedynamic #150,  0            // InvokeDynamic #1:invoke:()Lkotlin/jvm/functions/Function1;
      26: invokedynamic #160,  0            // InvokeDynamic #2:accept:(Lkotlin/jvm/functions/Function1;)Ljava/util/function/Consumer;
      31: invokeinterface #166,  2          // InterfaceMethod java/util/stream/Stream.forEach:(Ljava/util/function/Consumer;)V
      36: return

  public static final void simulateForeach(java.util.List<java.lang.String>, kotlin.jvm.functions.Function1<? super java.lang.String, kotlin.Unit>);
    Code:
       0: aload_0
       1: ldc           #112                // String vals
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: ldc           #169                // String body
       9: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: ldc           #171                // String Foreach simulated by inline fun
      14: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      17: swap
      18: invokevirtual #29                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
      21: aload_0
      22: invokeinterface #172,  1          // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
      27: astore_2
      28: aload_2
      29: invokeinterface #124,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      34: ifeq          58
      37: aload_2
      38: invokeinterface #128,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      43: checkcast     #34                 // class java/lang/String
      46: astore_3
      47: aload_1
      48: aload_3
      49: invokeinterface #176,  2          // InterfaceMethod kotlin/jvm/functions/Function1.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
      54: pop
      55: goto          28
      58: return

  public static final void translateNumbers(java.util.List<java.lang.String>);
    Code:
       0: aload_0
       1: ldc           #112                // String vals
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: ldc           #180                // String [stream.mapToInt.foreach] on list
       8: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      11: swap
      12: invokevirtual #29                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
      15: aload_0
      16: invokeinterface #145,  1          // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;
      21: invokedynamic #188,  0            // InvokeDynamic #3:invoke:()Lkotlin/jvm/functions/Function1;
      26: invokedynamic #199,  0            // InvokeDynamic #4:applyAsInt:(Lkotlin/jvm/functions/Function1;)Ljava/util/function/ToIntFunction;
      31: invokeinterface #203,  2          // InterfaceMethod java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;
      36: invokedynamic #212,  0            // InvokeDynamic #5:accept:()Ljava/util/function/IntConsumer;
      41: invokeinterface #217,  2          // InterfaceMethod java/util/stream/IntStream.forEach:(Ljava/util/function/IntConsumer;)V
      46: return

  public static final void sum(java.util.List<java.lang.String>);
    Code:
       0: aload_0
       1: ldc           #112                // String vals
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: ldc           #219                // String [stream.mapToInt.sum] on list
       8: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      11: swap
      12: invokevirtual #29                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
      15: aload_0
      16: invokeinterface #145,  1          // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;
      21: aload_0
      22: invokedynamic #229,  0            // InvokeDynamic #6:invoke:(Ljava/util/List;)Lkotlin/jvm/functions/Function1;
      27: invokedynamic #240,  0            // InvokeDynamic #7:test:(Lkotlin/jvm/functions/Function1;)Ljava/util/function/Predicate;
      32: invokeinterface #244,  2          // InterfaceMethod java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
      37: invokedynamic #249,  0            // InvokeDynamic #8:invoke:()Lkotlin/jvm/functions/Function1;
      42: invokedynamic #254,  0            // InvokeDynamic #9:applyAsInt:(Lkotlin/jvm/functions/Function1;)Ljava/util/function/ToIntFunction;
      47: invokeinterface #203,  2          // InterfaceMethod java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;
      52: invokeinterface #257,  1          // InterfaceMethod java/util/stream/IntStream.sum:()I
      57: istore_1
      58: iconst_0
      59: istore_2
      60: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      63: iload_1
      64: invokevirtual #259                // Method java/io/PrintStream.println:(I)V
      67: nop
      68: nop
      69: return

  public static final void sumParallel(java.util.List<java.lang.String>);
    Code:
       0: aload_0
       1: ldc           #112                // String vals
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: ldc_w         #262                // String [stream.mapToInt.parallel.sum] on list
       9: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      12: swap
      13: invokevirtual #29                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
      16: aload_0
      17: invokeinterface #145,  1          // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;
      22: invokeinterface #266,  1          // InterfaceMethod java/util/stream/Stream.parallel:()Ljava/util/stream/BaseStream;
      27: checkcast     #162                // class java/util/stream/Stream
      30: aload_0
      31: invokedynamic #271,  0            // InvokeDynamic #10:invoke:(Ljava/util/List;)Lkotlin/jvm/functions/Function1;
      36: invokedynamic #276,  0            // InvokeDynamic #11:test:(Lkotlin/jvm/functions/Function1;)Ljava/util/function/Predicate;
      41: invokeinterface #244,  2          // InterfaceMethod java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
      46: invokedynamic #281,  0            // InvokeDynamic #12:invoke:()Lkotlin/jvm/functions/Function1;
      51: invokedynamic #286,  0            // InvokeDynamic #13:applyAsInt:(Lkotlin/jvm/functions/Function1;)Ljava/util/function/ToIntFunction;
      56: invokeinterface #203,  2          // InterfaceMethod java/util/stream/Stream.mapToInt:(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream;
      61: invokeinterface #257,  1          // InterfaceMethod java/util/stream/IntStream.sum:()I
      66: istore_1
      67: iconst_0
      68: istore_2
      69: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      72: iload_1
      73: invokevirtual #259                // Method java/io/PrintStream.println:(I)V
      76: nop
      77: nop
      78: return

  public static final void sumAdvanced(java.util.List<java.lang.String>);
    Code:
       0: aload_0
       1: ldc           #112                // String vals
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: ldc_w         #289                // String [stream + stream] on list
       9: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      12: swap
      13: invokevirtual #29                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
      16: aload_0
      17: invokeinterface #145,  1          // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;
      22: aload_0
      23: invokedynamic #297,  0            // InvokeDynamic #14:invoke:(Ljava/util/List;)Lkotlin/jvm/functions/Function1;
      28: invokedynamic #308,  0            // InvokeDynamic #15:apply:(Lkotlin/jvm/functions/Function1;)Ljava/util/function/Function;
      33: invokeinterface #312,  2          // InterfaceMethod java/util/stream/Stream.flatMapToInt:(Ljava/util/function/Function;)Ljava/util/stream/IntStream;
      38: invokeinterface #257,  1          // InterfaceMethod java/util/stream/IntStream.sum:()I
      43: istore_1
      44: iconst_0
      45: istore_2
      46: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      49: iload_1
      50: invokevirtual #259                // Method java/io/PrintStream.println:(I)V
      53: nop
      54: nop
      55: return

  public static final void evenOdd(java.util.List<java.lang.String>);
    Code:
       0: aload_0
       1: ldc           #112                // String vals
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: ldc_w         #315                // String [stream + collect + partitioningBy] on list
       9: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      12: swap
      13: invokevirtual #29                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
      16: aload_0
      17: invokeinterface #145,  1          // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;
      22: invokedynamic #321,  0            // InvokeDynamic #16:invoke:()Lkotlin/jvm/functions/Function1;
      27: invokedynamic #326,  0            // InvokeDynamic #17:test:(Lkotlin/jvm/functions/Function1;)Ljava/util/function/Predicate;
      32: invokestatic  #332                // Method java/util/stream/Collectors.partitioningBy:(Ljava/util/function/Predicate;)Ljava/util/stream/Collector;
      35: invokeinterface #336,  2          // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
      40: checkcast     #338                // class java/util/Map
      43: astore_1
      44: ldc_w         #340                // String even:
      47: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      50: swap
      51: invokevirtual #29                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
      54: aload_1
      55: iconst_1
      56: invokestatic  #346                // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
      59: invokeinterface #349,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
      64: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      67: swap
      68: invokevirtual #29                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
      71: ldc_w         #351                // String odd:
      74: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      77: swap
      78: invokevirtual #29                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
      81: aload_1
      82: iconst_0
      83: invokestatic  #346                // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
      86: invokeinterface #349,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
      91: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      94: swap
      95: invokevirtual #29                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
      98: return

  private static final kotlin.Unit main$lambda$0(java.lang.String);
    Code:
       0: aload_0
       1: ldc_w         #353                // String it
       4: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       7: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      10: aload_0
      11: invokevirtual #29                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
      14: getstatic     #359                // Field kotlin/Unit.INSTANCE:Lkotlin/Unit;
      17: areturn

  private static final kotlin.Unit streamForeachList$lambda$2(java.lang.String);
    Code:
       0: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
       3: aload_0
       4: invokevirtual #29                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
       7: getstatic     #359                // Field kotlin/Unit.INSTANCE:Lkotlin/Unit;
      10: areturn

  private static final void streamForeachList$lambda$3(kotlin.jvm.functions.Function1, java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: invokeinterface #176,  2          // InterfaceMethod kotlin/jvm/functions/Function1.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
       7: pop
       8: return

  private static final int translateNumbers$lambda$4(java.lang.String);
    Code:
       0: aload_0
       1: astore_1
       2: aload_1
       3: ifnull        165
       6: aload_1
       7: invokevirtual #364                // Method java/lang/String.hashCode:()I
      10: lookupswitch  { // 6
                110182: 92
                113890: 68
                115276: 104
               3143346: 128
               3149094: 80
             110339486: 116
               default: 165
          }
      68: aload_1
      69: ldc           #58                 // String six
      71: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      74: ifne          160
      77: goto          165
      80: aload_1
      81: ldc           #54                 // String four
      83: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      86: ifne          152
      89: goto          165
      92: aload_1
      93: ldc           #36                 // String one
      95: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      98: ifne          140
     101: goto          165
     104: aload_1
     105: ldc           #38                 // String two
     107: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
     110: ifne          144
     113: goto          165
     116: aload_1
     117: ldc           #40                 // String three
     119: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
     122: ifne          148
     125: goto          165
     128: aload_1
     129: ldc           #56                 // String five
     131: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
     134: ifne          156
     137: goto          165
     140: iconst_1
     141: goto          166
     144: iconst_2
     145: goto          166
     148: iconst_3
     149: goto          166
     152: iconst_4
     153: goto          166
     156: iconst_5
     157: goto          166
     160: bipush        6
     162: goto          166
     165: iconst_m1
     166: ireturn

  private static final int translateNumbers$lambda$5(kotlin.jvm.functions.Function1, java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: invokeinterface #176,  2          // InterfaceMethod kotlin/jvm/functions/Function1.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
       7: checkcast     #369                // class java/lang/Number
      10: invokevirtual #372                // Method java/lang/Number.intValue:()I
      13: ireturn

  private static final void translateNumbers$lambda$6(int);
    Code:
       0: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
       3: iload_0
       4: invokevirtual #259                // Method java/io/PrintStream.println:(I)V
       7: return

  private static final boolean sum$lambda$7(java.util.List, java.lang.String);
    Code:
       0: aload_0
       1: aload_1
       2: invokeinterface #375,  2          // InterfaceMethod java/util/List.indexOf:(Ljava/lang/Object;)I
       7: aload_0
       8: invokeinterface #378,  1          // InterfaceMethod java/util/List.size:()I
      13: iconst_1
      14: isub
      15: if_icmpne     48
      18: new           #380                // class java/lang/StringBuilder
      21: dup
      22: invokespecial #383                // Method java/lang/StringBuilder."<init>":()V
      25: aload_1
      26: invokevirtual #387                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      29: ldc_w         #389                // String  =
      32: invokevirtual #387                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      35: invokevirtual #393                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      38: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      41: swap
      42: invokevirtual #396                // Method java/io/PrintStream.print:(Ljava/lang/Object;)V
      45: goto          75
      48: new           #380                // class java/lang/StringBuilder
      51: dup
      52: invokespecial #383                // Method java/lang/StringBuilder."<init>":()V
      55: aload_1
      56: invokevirtual #387                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      59: ldc_w         #398                // String  +
      62: invokevirtual #387                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      65: invokevirtual #393                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      68: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      71: swap
      72: invokevirtual #396                // Method java/io/PrintStream.print:(Ljava/lang/Object;)V
      75: iconst_1
      76: ireturn

  private static final boolean sum$lambda$8(kotlin.jvm.functions.Function1, java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: invokeinterface #176,  2          // InterfaceMethod kotlin/jvm/functions/Function1.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
       7: checkcast     #342                // class java/lang/Boolean
      10: invokevirtual #402                // Method java/lang/Boolean.booleanValue:()Z
      13: ireturn

  private static final int sum$lambda$9(java.lang.String);
    Code:
       0: aload_0
       1: astore_1
       2: aload_1
       3: ifnull        165
       6: aload_1
       7: invokevirtual #364                // Method java/lang/String.hashCode:()I
      10: lookupswitch  { // 6
                110182: 92
                113890: 68
                115276: 104
               3143346: 128
               3149094: 80
             110339486: 116
               default: 165
          }
      68: aload_1
      69: ldc           #58                 // String six
      71: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      74: ifne          160
      77: goto          165
      80: aload_1
      81: ldc           #54                 // String four
      83: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      86: ifne          152
      89: goto          165
      92: aload_1
      93: ldc           #36                 // String one
      95: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      98: ifne          140
     101: goto          165
     104: aload_1
     105: ldc           #38                 // String two
     107: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
     110: ifne          144
     113: goto          165
     116: aload_1
     117: ldc           #40                 // String three
     119: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
     122: ifne          148
     125: goto          165
     128: aload_1
     129: ldc           #56                 // String five
     131: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
     134: ifne          156
     137: goto          165
     140: iconst_1
     141: goto          166
     144: iconst_2
     145: goto          166
     148: iconst_3
     149: goto          166
     152: iconst_4
     153: goto          166
     156: iconst_5
     157: goto          166
     160: bipush        6
     162: goto          166
     165: iconst_m1
     166: ireturn

  private static final int sum$lambda$10(kotlin.jvm.functions.Function1, java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: invokeinterface #176,  2          // InterfaceMethod kotlin/jvm/functions/Function1.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
       7: checkcast     #369                // class java/lang/Number
      10: invokevirtual #372                // Method java/lang/Number.intValue:()I
      13: ireturn

  private static final boolean sumParallel$lambda$12(java.util.List, java.lang.String);
    Code:
       0: aload_0
       1: aload_1
       2: invokeinterface #375,  2          // InterfaceMethod java/util/List.indexOf:(Ljava/lang/Object;)I
       7: aload_0
       8: invokeinterface #378,  1          // InterfaceMethod java/util/List.size:()I
      13: iconst_1
      14: isub
      15: if_icmpne     48
      18: new           #380                // class java/lang/StringBuilder
      21: dup
      22: invokespecial #383                // Method java/lang/StringBuilder."<init>":()V
      25: aload_1
      26: invokevirtual #387                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      29: ldc_w         #389                // String  =
      32: invokevirtual #387                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      35: invokevirtual #393                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      38: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      41: swap
      42: invokevirtual #396                // Method java/io/PrintStream.print:(Ljava/lang/Object;)V
      45: goto          75
      48: new           #380                // class java/lang/StringBuilder
      51: dup
      52: invokespecial #383                // Method java/lang/StringBuilder."<init>":()V
      55: aload_1
      56: invokevirtual #387                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      59: ldc_w         #398                // String  +
      62: invokevirtual #387                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      65: invokevirtual #393                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      68: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      71: swap
      72: invokevirtual #396                // Method java/io/PrintStream.print:(Ljava/lang/Object;)V
      75: iconst_1
      76: ireturn

  private static final boolean sumParallel$lambda$13(kotlin.jvm.functions.Function1, java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: invokeinterface #176,  2          // InterfaceMethod kotlin/jvm/functions/Function1.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
       7: checkcast     #342                // class java/lang/Boolean
      10: invokevirtual #402                // Method java/lang/Boolean.booleanValue:()Z
      13: ireturn

  private static final int sumParallel$lambda$14(java.lang.String);
    Code:
       0: aload_0
       1: astore_1
       2: aload_1
       3: ifnull        165
       6: aload_1
       7: invokevirtual #364                // Method java/lang/String.hashCode:()I
      10: lookupswitch  { // 6
                110182: 92
                113890: 68
                115276: 104
               3143346: 128
               3149094: 80
             110339486: 116
               default: 165
          }
      68: aload_1
      69: ldc           #58                 // String six
      71: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      74: ifne          160
      77: goto          165
      80: aload_1
      81: ldc           #54                 // String four
      83: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      86: ifne          152
      89: goto          165
      92: aload_1
      93: ldc           #36                 // String one
      95: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      98: ifne          140
     101: goto          165
     104: aload_1
     105: ldc           #38                 // String two
     107: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
     110: ifne          144
     113: goto          165
     116: aload_1
     117: ldc           #40                 // String three
     119: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
     122: ifne          148
     125: goto          165
     128: aload_1
     129: ldc           #56                 // String five
     131: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
     134: ifne          156
     137: goto          165
     140: iconst_1
     141: goto          166
     144: iconst_2
     145: goto          166
     148: iconst_3
     149: goto          166
     152: iconst_4
     153: goto          166
     156: iconst_5
     157: goto          166
     160: bipush        6
     162: goto          166
     165: iconst_m1
     166: ireturn

  private static final int sumParallel$lambda$15(kotlin.jvm.functions.Function1, java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: invokeinterface #176,  2          // InterfaceMethod kotlin/jvm/functions/Function1.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
       7: checkcast     #369                // class java/lang/Number
      10: invokevirtual #372                // Method java/lang/Number.intValue:()I
      13: ireturn

  private static final boolean sumAdvanced$lambda$21$lambda$17(java.util.List, kotlin.Pair);
    Code:
       0: aload_1
       1: dup
       2: invokestatic  #407                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
       5: invokevirtual #412                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
       8: checkcast     #369                // class java/lang/Number
      11: invokevirtual #372                // Method java/lang/Number.intValue:()I
      14: aload_0
      15: invokeinterface #378,  1          // InterfaceMethod java/util/List.size:()I
      20: if_icmpne     62
      23: new           #380                // class java/lang/StringBuilder
      26: dup
      27: invokespecial #383                // Method java/lang/StringBuilder."<init>":()V
      30: aload_1
      31: invokevirtual #412                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      34: checkcast     #369                // class java/lang/Number
      37: invokevirtual #372                // Method java/lang/Number.intValue:()I
      40: invokevirtual #415                // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
      43: ldc_w         #389                // String  =
      46: invokevirtual #387                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      49: invokevirtual #393                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      52: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      55: swap
      56: invokevirtual #396                // Method java/io/PrintStream.print:(Ljava/lang/Object;)V
      59: goto          98
      62: new           #380                // class java/lang/StringBuilder
      65: dup
      66: invokespecial #383                // Method java/lang/StringBuilder."<init>":()V
      69: aload_1
      70: invokevirtual #412                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      73: checkcast     #369                // class java/lang/Number
      76: invokevirtual #372                // Method java/lang/Number.intValue:()I
      79: invokevirtual #415                // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
      82: ldc_w         #398                // String  +
      85: invokevirtual #387                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      88: invokevirtual #393                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      91: getstatic     #23                 // Field java/lang/System.out:Ljava/io/PrintStream;
      94: swap
      95: invokevirtual #396                // Method java/io/PrintStream.print:(Ljava/lang/Object;)V
      98: iconst_1
      99: ireturn

  private static final boolean sumAdvanced$lambda$21$lambda$18(kotlin.jvm.functions.Function1, java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: invokeinterface #176,  2          // InterfaceMethod kotlin/jvm/functions/Function1.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
       7: checkcast     #342                // class java/lang/Boolean
      10: invokevirtual #402                // Method java/lang/Boolean.booleanValue:()Z
      13: ireturn

  private static final java.util.stream.IntStream sumAdvanced$lambda$21$lambda$19(kotlin.Pair);
    Code:
       0: aload_0
       1: dup
       2: invokestatic  #407                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
       5: invokevirtual #422                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
       8: checkcast     #369                // class java/lang/Number
      11: invokevirtual #372                // Method java/lang/Number.intValue:()I
      14: invokestatic  #426                // InterfaceMethod java/util/stream/IntStream.of:(I)Ljava/util/stream/IntStream;
      17: areturn

  private static final java.util.stream.IntStream sumAdvanced$lambda$21$lambda$20(kotlin.jvm.functions.Function1, java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: invokeinterface #176,  2          // InterfaceMethod kotlin/jvm/functions/Function1.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
       7: checkcast     #214                // class java/util/stream/IntStream
      10: areturn

  private static final java.util.stream.IntStream sumAdvanced$lambda$21(java.util.List, java.lang.String);
    Code:
       0: aload_1
       1: astore_2
       2: aload_2
       3: ifnull        250
       6: aload_2
       7: invokevirtual #364                // Method java/lang/String.hashCode:()I
      10: lookupswitch  { // 6
                110182: 92
                113890: 68
                115276: 104
               3143346: 128
               3149094: 80
             110339486: 116
               default: 250
          }
      68: aload_2
      69: ldc           #58                 // String six
      71: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      74: ifne          230
      77: goto          250
      80: aload_2
      81: ldc           #54                 // String four
      83: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      86: ifne          194
      89: goto          250
      92: aload_2
      93: ldc           #36                 // String one
      95: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      98: ifne          140
     101: goto          250
     104: aload_2
     105: ldc           #38                 // String two
     107: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
     110: ifne          158
     113: goto          250
     116: aload_2
     117: ldc           #40                 // String three
     119: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
     122: ifne          176
     125: goto          250
     128: aload_2
     129: ldc           #56                 // String five
     131: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
     134: ifne          212
     137: goto          250
     140: new           #409                // class kotlin/Pair
     143: dup
     144: iconst_1
     145: invokestatic  #432                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     148: iconst_1
     149: invokestatic  #432                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     152: invokespecial #435                // Method kotlin/Pair."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
     155: goto          251
     158: new           #409                // class kotlin/Pair
     161: dup
     162: iconst_2
     163: invokestatic  #432                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     166: iconst_2
     167: invokestatic  #432                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     170: invokespecial #435                // Method kotlin/Pair."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
     173: goto          251
     176: new           #409                // class kotlin/Pair
     179: dup
     180: iconst_3
     181: invokestatic  #432                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     184: iconst_3
     185: invokestatic  #432                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     188: invokespecial #435                // Method kotlin/Pair."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
     191: goto          251
     194: new           #409                // class kotlin/Pair
     197: dup
     198: iconst_4
     199: invokestatic  #432                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     202: iconst_4
     203: invokestatic  #432                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     206: invokespecial #435                // Method kotlin/Pair."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
     209: goto          251
     212: new           #409                // class kotlin/Pair
     215: dup
     216: iconst_5
     217: invokestatic  #432                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     220: iconst_5
     221: invokestatic  #432                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     224: invokespecial #435                // Method kotlin/Pair."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
     227: goto          251
     230: new           #409                // class kotlin/Pair
     233: dup
     234: bipush        6
     236: invokestatic  #432                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     239: bipush        7
     241: invokestatic  #432                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     244: invokespecial #435                // Method kotlin/Pair."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
     247: goto          251
     250: aconst_null
     251: invokestatic  #438                // InterfaceMethod java/util/stream/Stream.of:(Ljava/lang/Object;)Ljava/util/stream/Stream;
     254: aload_0
     255: invokedynamic #444,  0            // InvokeDynamic #18:invoke:(Ljava/util/List;)Lkotlin/jvm/functions/Function1;
     260: invokedynamic #448,  0            // InvokeDynamic #19:test:(Lkotlin/jvm/functions/Function1;)Ljava/util/function/Predicate;
     265: invokeinterface #244,  2          // InterfaceMethod java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
     270: invokedynamic #453,  0            // InvokeDynamic #20:invoke:()Lkotlin/jvm/functions/Function1;
     275: invokedynamic #457,  0            // InvokeDynamic #21:apply:(Lkotlin/jvm/functions/Function1;)Ljava/util/function/Function;
     280: invokeinterface #312,  2          // InterfaceMethod java/util/stream/Stream.flatMapToInt:(Ljava/util/function/Function;)Ljava/util/stream/IntStream;
     285: areturn

  private static final java.util.stream.IntStream sumAdvanced$lambda$22(kotlin.jvm.functions.Function1, java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: invokeinterface #176,  2          // InterfaceMethod kotlin/jvm/functions/Function1.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
       7: checkcast     #214                // class java/util/stream/IntStream
      10: areturn

  private static final boolean evenOdd$lambda$24(java.lang.String);
    Code:
       0: aload_0
       1: astore_2
       2: aload_2
       3: ifnull        165
       6: aload_2
       7: invokevirtual #364                // Method java/lang/String.hashCode:()I
      10: lookupswitch  { // 6
                110182: 92
                113890: 68
                115276: 104
               3143346: 128
               3149094: 80
             110339486: 116
               default: 165
          }
      68: aload_2
      69: ldc           #58                 // String six
      71: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      74: ifne          160
      77: goto          165
      80: aload_2
      81: ldc           #54                 // String four
      83: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      86: ifne          152
      89: goto          165
      92: aload_2
      93: ldc           #36                 // String one
      95: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      98: ifne          140
     101: goto          165
     104: aload_2
     105: ldc           #38                 // String two
     107: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
     110: ifne          144
     113: goto          165
     116: aload_2
     117: ldc           #40                 // String three
     119: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
     122: ifne          148
     125: goto          165
     128: aload_2
     129: ldc           #56                 // String five
     131: invokevirtual #367                // Method java/lang/String.equals:(Ljava/lang/Object;)Z
     134: ifne          156
     137: goto          165
     140: iconst_1
     141: goto          166
     144: iconst_2
     145: goto          166
     148: iconst_3
     149: goto          166
     152: iconst_4
     153: goto          166
     156: iconst_5
     157: goto          166
     160: bipush        6
     162: goto          166
     165: iconst_m1
     166: istore_1
     167: iload_1
     168: iconst_2
     169: irem
     170: ifne          177
     173: iconst_1
     174: goto          178
     177: iconst_0
     178: ireturn

  private static final boolean evenOdd$lambda$25(kotlin.jvm.functions.Function1, java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: invokeinterface #176,  2          // InterfaceMethod kotlin/jvm/functions/Function1.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
       7: checkcast     #342                // class java/lang/Boolean
      10: invokevirtual #402                // Method java/lang/Boolean.booleanValue:()Z
      13: ireturn
}