Update Kotlin to 2.4.0-RC
diff --git a/MODULE.bazel b/MODULE.bazel
index f5461bd..f2b0914 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -10,7 +10,7 @@
 
 proto_module_version = ".".join(proto_version_parts[-2:])  # Last 2 parts
 
-kotlin_version = "2.3.20"
+kotlin_version = "2.4.0-RC"
 
 bazel_dep(name = "protobuf", version = proto_module_version, repo_name = "com_google_protobuf")
 bazel_dep(name = "rules_cc", version = "0.2.18")
@@ -129,7 +129,7 @@
         "com.google.dagger:dagger:2.57.2",
         "com.google.dagger:dagger-compiler:2.57.2",
         "com.google.dagger:dagger-producers:2.57.2",
-        "org.jetbrains.kotlin:kotlin-metadata-jvm:2.3.21",
+        "org.jetbrains.kotlin:kotlin-metadata-jvm:2.4.0-RC",
         "javax.annotation:javax.annotation-api:1.3.2",
         "javax.inject:javax.inject:1",
         "org.apache.commons:commons-compress:1.26.2",
diff --git a/MODULE.release.bazel b/MODULE.release.bazel
index d83c6c2..6c5e2f6 100644
--- a/MODULE.release.bazel
+++ b/MODULE.release.bazel
@@ -3,7 +3,7 @@
     version = "1.9.0",
     repo_name = "rules_kotlin",
 )
-kotlin_version = "2.3.20"
+kotlin_version = "2.4.0-RC"
 
 bazel_dep(name = "platforms", version = "0.0.11")
 bazel_dep(name = "bazel_skylib", version = "1.7.1")
diff --git a/rules_kotlin_maven_dev_install.json b/rules_kotlin_maven_dev_install.json
index 42e6984..0dc9be1 100755
--- a/rules_kotlin_maven_dev_install.json
+++ b/rules_kotlin_maven_dev_install.json
@@ -7,7 +7,6 @@
     "com.google.auto.value:auto-value": 1146221104,
     "com.google.auto.value:auto-value-annotations": -1101276935,
     "com.google.code.findbugs:jsr305": 495355163,
-    "com.google.code.gson:gson": -1146526807,
     "com.google.dagger:dagger": 1304516772,
     "com.google.dagger:dagger-compiler": 1028126946,
     "com.google.dagger:dagger-producers": -860209456,
@@ -24,15 +23,13 @@
     "javax.inject:javax.inject": -297932879,
     "junit:junit": 373369075,
     "org.apache.commons:commons-compress": -1310119682,
-    "org.codehaus.plexus:plexus-utils": 1634344571,
-    "org.jetbrains.kotlin:kotlin-metadata-jvm": 17228464,
-    "org.jetbrains.kotlinx:kotlinx-coroutines-core": 1254427323,
+    "org.jetbrains.kotlin:kotlin-metadata-jvm": 261759038,
     "repositories": 582576641
   },
   "__RESOLVED_ARTIFACTS_HASH": {
     "com.eed3si9n.jarjar:jarjar": 1838835399,
     "com.eed3si9n.jarjar:jarjar:jar:sources": 903276703,
-    "com.google.auto.service:auto-service": -1487611887,
+    "com.google.auto.service:auto-service": -1912507896,
     "com.google.auto.service:auto-service-annotations": 262983930,
     "com.google.auto.service:auto-service-annotations:jar:sources": -1392999316,
     "com.google.auto.service:auto-service:jar:sources": -1296332334,
@@ -40,64 +37,64 @@
     "com.google.auto.value:auto-value-annotations": 641018093,
     "com.google.auto.value:auto-value-annotations:jar:sources": -315473772,
     "com.google.auto.value:auto-value:jar:sources": 1982175049,
-    "com.google.auto:auto-common": -1425245725,
+    "com.google.auto:auto-common": -1667883792,
     "com.google.auto:auto-common:jar:sources": -542679945,
     "com.google.code.findbugs:jsr305": 870839855,
     "com.google.code.findbugs:jsr305:jar:sources": -935881202,
-    "com.google.code.gson:gson": 50257904,
-    "com.google.code.gson:gson:jar:sources": 275910111,
+    "com.google.code.gson:gson": -1575757252,
+    "com.google.code.gson:gson:jar:sources": -350708227,
     "com.google.dagger:dagger": 875179613,
-    "com.google.dagger:dagger-compiler": 1511246626,
+    "com.google.dagger:dagger-compiler": -1789364175,
     "com.google.dagger:dagger-compiler:jar:sources": 671838778,
-    "com.google.dagger:dagger-producers": 56284338,
+    "com.google.dagger:dagger-producers": 701525829,
     "com.google.dagger:dagger-producers:jar:sources": 118085986,
-    "com.google.dagger:dagger-spi": -1445247775,
+    "com.google.dagger:dagger-spi": 181481294,
     "com.google.dagger:dagger-spi:jar:sources": 799959681,
     "com.google.dagger:dagger:jar:sources": 758099566,
-    "com.google.devtools.ksp:symbol-processing-api": -1919668222,
+    "com.google.devtools.ksp:symbol-processing-api": 596274367,
     "com.google.devtools.ksp:symbol-processing-api:jar:sources": 858565805,
-    "com.google.errorprone:error_prone_annotations": -140447182,
-    "com.google.errorprone:error_prone_annotations:jar:sources": 1162312431,
+    "com.google.errorprone:error_prone_annotations": 98076041,
+    "com.google.errorprone:error_prone_annotations:jar:sources": -976208747,
     "com.google.errorprone:javac-shaded": 1621944613,
     "com.google.errorprone:javac-shaded:jar:sources": 1578813588,
-    "com.google.googlejavaformat:google-java-format": 395640802,
+    "com.google.googlejavaformat:google-java-format": 153002735,
     "com.google.googlejavaformat:google-java-format:jar:sources": 409931302,
     "com.google.guava:failureaccess": -718864417,
     "com.google.guava:failureaccess:jar:sources": -527872939,
-    "com.google.guava:guava": -1228437618,
-    "com.google.guava:guava:jar:sources": -2127214593,
+    "com.google.guava:guava": -1322848894,
+    "com.google.guava:guava:jar:sources": 1675478802,
     "com.google.guava:listenablefuture": 1079558157,
-    "com.google.j2objc:j2objc-annotations": -404209759,
-    "com.google.j2objc:j2objc-annotations:jar:sources": 1852793670,
+    "com.google.j2objc:j2objc-annotations": 248818742,
+    "com.google.j2objc:j2objc-annotations:jar:sources": -378364028,
     "com.google.protobuf:protobuf-java": 1957269082,
-    "com.google.protobuf:protobuf-java-util": -2063472123,
+    "com.google.protobuf:protobuf-java-util": -444395857,
     "com.google.protobuf:protobuf-java-util:jar:sources": 1148567382,
     "com.google.protobuf:protobuf-java:jar:sources": 1812626912,
-    "com.google.truth:truth": -905038776,
+    "com.google.truth:truth": 1931779524,
     "com.google.truth:truth:jar:sources": 1518815563,
     "com.googlecode.java-diff-utils:diffutils": -799723261,
     "com.googlecode.java-diff-utils:diffutils:jar:sources": -1898874389,
-    "com.squareup.moshi:moshi": 742282205,
-    "com.squareup.moshi:moshi-kotlin": 1555345853,
-    "com.squareup.moshi:moshi-kotlin-codegen": 1314034399,
+    "com.squareup.moshi:moshi": 575896037,
+    "com.squareup.moshi:moshi-kotlin": -1497744021,
+    "com.squareup.moshi:moshi-kotlin-codegen": -576429670,
     "com.squareup.moshi:moshi-kotlin-codegen:jar:sources": 1601805489,
     "com.squareup.moshi:moshi-kotlin:jar:sources": -948970528,
     "com.squareup.moshi:moshi:jar:sources": 121064118,
-    "com.squareup.okio:okio-jvm": -1591357752,
+    "com.squareup.okio:okio-jvm": 1652953145,
     "com.squareup.okio:okio-jvm:jar:sources": -528986820,
     "com.squareup:javapoet": -2135371934,
     "com.squareup:javapoet:jar:sources": -54658965,
-    "com.squareup:kotlinpoet": -956847095,
-    "com.squareup:kotlinpoet-jvm": 1558438132,
+    "com.squareup:kotlinpoet": -1923622366,
+    "com.squareup:kotlinpoet-jvm": -1311591444,
     "com.squareup:kotlinpoet-jvm:jar:sources": -1772502751,
-    "com.squareup:kotlinpoet-ksp": 501046869,
+    "com.squareup:kotlinpoet-ksp": 117692857,
     "com.squareup:kotlinpoet-ksp:jar:sources": -1001181557,
-    "com.squareup:kotlinpoet:jar:sources": -826803759,
+    "com.squareup:kotlinpoet:jar:sources": 969482478,
     "commons-codec:commons-codec": -1161719307,
     "commons-codec:commons-codec:jar:sources": 963281664,
     "commons-io:commons-io": -807333807,
     "commons-io:commons-io:jar:sources": -1339271077,
-    "dev.zacsweers.autoservice:auto-service-ksp": 2067104670,
+    "dev.zacsweers.autoservice:auto-service-ksp": -1873710640,
     "dev.zacsweers.autoservice:auto-service-ksp:jar:sources": 537498971,
     "jakarta.inject:jakarta.inject-api": 188991469,
     "jakarta.inject:jakarta.inject-api:jar:sources": -1584622703,
@@ -115,26 +112,20 @@
     "org.apache.commons:commons-lang3:jar:sources": -1567774740,
     "org.checkerframework:checker-compat-qual": -1467856161,
     "org.checkerframework:checker-compat-qual:jar:sources": 896082574,
-    "org.checkerframework:checker-qual": -778702181,
-    "org.checkerframework:checker-qual:jar:sources": 358883619,
-    "org.codehaus.plexus:plexus-utils": 612567575,
-    "org.codehaus.plexus:plexus-utils:jar:sources": -1161470753,
+    "org.checkerframework:checker-qual": 628949150,
+    "org.checkerframework:checker-qual:jar:sources": -309007815,
     "org.hamcrest:hamcrest-core": 649657847,
     "org.hamcrest:hamcrest-core:jar:sources": -1646511374,
-    "org.jetbrains.kotlin:kotlin-metadata-jvm": 317900594,
-    "org.jetbrains.kotlin:kotlin-metadata-jvm:jar:sources": -1351155643,
-    "org.jetbrains.kotlin:kotlin-reflect": 633705220,
-    "org.jetbrains.kotlin:kotlin-reflect:jar:sources": 681255358,
-    "org.jetbrains.kotlin:kotlin-stdlib": 7230454,
-    "org.jetbrains.kotlin:kotlin-stdlib-common": -1695006459,
-    "org.jetbrains.kotlin:kotlin-stdlib-common:jar:sources": 1871613908,
-    "org.jetbrains.kotlin:kotlin-stdlib-jdk7": -1550210296,
+    "org.jetbrains.kotlin:kotlin-metadata-jvm": -156611443,
+    "org.jetbrains.kotlin:kotlin-metadata-jvm:jar:sources": 2087143251,
+    "org.jetbrains.kotlin:kotlin-reflect": 261707901,
+    "org.jetbrains.kotlin:kotlin-reflect:jar:sources": 1553214411,
+    "org.jetbrains.kotlin:kotlin-stdlib": -596863732,
+    "org.jetbrains.kotlin:kotlin-stdlib-jdk7": -883831815,
     "org.jetbrains.kotlin:kotlin-stdlib-jdk7:jar:sources": -1337794929,
-    "org.jetbrains.kotlin:kotlin-stdlib-jdk8": -1415041167,
+    "org.jetbrains.kotlin:kotlin-stdlib-jdk8": 988683174,
     "org.jetbrains.kotlin:kotlin-stdlib-jdk8:jar:sources": 1198294854,
-    "org.jetbrains.kotlin:kotlin-stdlib:jar:sources": -1886221917,
-    "org.jetbrains.kotlinx:kotlinx-coroutines-core": -916025741,
-    "org.jetbrains.kotlinx:kotlinx-coroutines-core:jar:sources": -1493138165,
+    "org.jetbrains.kotlin:kotlin-stdlib:jar:sources": 1119042874,
     "org.jetbrains:annotations": 554168982,
     "org.jetbrains:annotations:jar:sources": 1226441379,
     "org.jspecify:jspecify": 117231129,
@@ -146,10 +137,6 @@
     "org.ow2.asm:asm-tree:jar:sources": -9096772,
     "org.ow2.asm:asm:jar:sources": 2137835992
   },
-  "conflict_resolution": {
-    "com.google.errorprone:error_prone_annotations:2.23.0": "com.google.errorprone:error_prone_annotations:2.26.1",
-    "com.google.guava:guava:33.0.0-jre": "com.google.guava:guava:33.2.1-jre"
-  },
   "artifacts": {
     "com.eed3si9n.jarjar:jarjar": {
       "shasums": {
@@ -202,10 +189,10 @@
     },
     "com.google.code.gson:gson": {
       "shasums": {
-        "jar": "4241c14a7727c34feea6507ec801318a3d4a90f070e4525681079fb94ee4c593",
-        "sources": "eee1cc5c1f4267ee194cc245777e68084738ef390acd763354ce0ff6bfb7bcc1"
+        "jar": "d3999291855de495c94c743761b8ab5176cfeabe281a5ab0d8e8d45326fd703e",
+        "sources": "ba5bddb1a89eb721fcca39f3b34294532060f851e2407a82d82134a41eec4719"
       },
-      "version": "2.10.1"
+      "version": "2.8.9"
     },
     "com.google.dagger:dagger": {
       "shasums": {
@@ -244,10 +231,10 @@
     },
     "com.google.errorprone:error_prone_annotations": {
       "shasums": {
-        "jar": "de25f2d9a2156529bd765f51d8efdfc0dfa7301e04efb9cc75b7f10cf5d0e0fb",
-        "sources": "32b1720fa97a3d7f24fc017014e285d812ff66a5b6c5c1819e165bfe6fdc2110"
+        "jar": "ec6f39f068b6ff9ac323c68e28b9299f8c0a80ca512dccb1d4a70f40ac3ec054",
+        "sources": "5b4504609bb93d3c24b87cd839cf0bb7d878135d0a917a05081d0dc9b2a9973f"
       },
-      "version": "2.26.1"
+      "version": "2.23.0"
     },
     "com.google.errorprone:javac-shaded": {
       "shasums": {
@@ -272,10 +259,10 @@
     },
     "com.google.guava:guava": {
       "shasums": {
-        "jar": "452b2d9787b7d366fa8cf5ed9a1c40404542d05effa7a598da03bbbbb76d9f31",
-        "sources": "cce2aba265b7e1260c21f37af6d074bc2c322743dcedc27c573bc342b2d99c79"
+        "jar": "f4d85c3e4d411694337cb873abea09b242b664bb013320be6105327c45991537",
+        "sources": "0c17d911785e8a606d091aa6740d6d520f307749c2bddf6e35066d52fe0036e5"
       },
-      "version": "33.2.1-jre"
+      "version": "33.0.0-jre"
     },
     "com.google.guava:listenablefuture": {
       "shasums": {
@@ -285,10 +272,10 @@
     },
     "com.google.j2objc:j2objc-annotations": {
       "shasums": {
-        "jar": "88241573467ddca44ffd4d74aa04c2bbfd11bf7c17e0c342c94c9de7a70a7c64",
-        "sources": "bd60019a0423c3a025ef6ab24fe0761f5f45ffb48a8cca74a01b678de1105d38"
+        "jar": "f02a95fa1a5e95edb3ed859fd0fb7df709d121a35290eff8b74dce2ab7f4d6ed",
+        "sources": "7413eed41f111453a08837f5ac680edded7faed466cbd35745e402e13f4cc3f5"
       },
-      "version": "3.0.0"
+      "version": "2.8"
     },
     "com.google.protobuf:protobuf-java": {
       "shasums": {
@@ -355,10 +342,10 @@
     },
     "com.squareup:kotlinpoet": {
       "shasums": {
-        "jar": "7cbf7f4330170f9459d15c105fae6e13784cb37855fd68cf2826dfa0b5deb676",
-        "sources": "57313a605d93021318e6dd3aad20758183783644311732de4afa19b94a269664"
+        "jar": "2887ada1ca03dd83baa2758640d87e840d1907564db0ef88d2289c868a980492",
+        "sources": "240a885acd6e3f3852644dc9e5820f4330fa2656b2c2c68ce67b04ae829dc89d"
       },
-      "version": "1.13.2"
+      "version": "1.11.0"
     },
     "com.squareup:kotlinpoet-jvm": {
       "shasums": {
@@ -453,17 +440,10 @@
     },
     "org.checkerframework:checker-qual": {
       "shasums": {
-        "jar": "ccaedd33af0b7894d9f2f3b644f4d19e43928e32902e61ac4d10777830f5aac7",
-        "sources": "efb65eb479f61f53c6dcafbd42ed59dad09b0a0d5a7f44b7bc68df25c2dcf8fd"
+        "jar": "2f9f245bf68e4259d610894f2406dc1f6363dc639302bd566e8272e4f4541172",
+        "sources": "8308220bbdd4e12b49fa06a91de685faf9cc1a376464478c80845be3e87b7d4f"
       },
-      "version": "3.42.0"
-    },
-    "org.codehaus.plexus:plexus-utils": {
-      "shasums": {
-        "jar": "83ee748b12d06afb0ad4050a591132b3e8025fbb1990f1ed002e8b73293e69b4",
-        "sources": "ec01853bc765eddc0accf19993482c14ab0aa59dccec4efd361ef23649153935"
-      },
-      "version": "3.0.24"
+      "version": "3.41.0"
     },
     "org.hamcrest:hamcrest-core": {
       "shasums": {
@@ -474,31 +454,24 @@
     },
     "org.jetbrains.kotlin:kotlin-metadata-jvm": {
       "shasums": {
-        "jar": "00590f26a5a768777f04252c6cf93c016a3361a6bc93636df67375ad4d19557d",
-        "sources": "2ededf948f1afd503217a772c95718a41494e757762206216f4c1b42ada64585"
+        "jar": "2de0a3133f1d4f640de4977309efb422b0a80331b4ff6dd0f8f52489c2ce17a9",
+        "sources": "5ddad3d64871b6dbfdab3b5a65adb5541dcc6f71f5ef67036dfab4f7796b2e67"
       },
-      "version": "2.3.21"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-reflect": {
       "shasums": {
-        "jar": "a65166445bb85ef816cde127279fe0017d2b7cc439b3b972390e1b736d64e94c",
-        "sources": "ca0683bab01b6ce2ad97d9fa7575ad6204b32d3814dc722b9519bcdfc7315abf"
+        "jar": "8a6cd5a3cf092acee274ce2c444dc36eefdb631579859dd4d857b3309a529c91",
+        "sources": "3b1b29047a65940f2da4e2e71f969e2e2de343e69dce00c6fe9e333b99565d44"
       },
-      "version": "1.9.24"
+      "version": "1.8.21"
     },
     "org.jetbrains.kotlin:kotlin-stdlib": {
       "shasums": {
-        "jar": "6f64eac736db9434dd6925b4a518b9d1d17177652320c37916cf9ba3ce7d7d7a",
-        "sources": "8693386ae174f7e4a91eb82c5c632d169d236704da24f78b9c8c84d87af2fd64"
+        "jar": "263bdc679e1f62012db7b091796279b6d71cf36f4797a98ff1ace05835f201c8",
+        "sources": "c05e6ead31a9bc17a6fbd5029c4824307992a012546aafb3800f27d1c7ee42be"
       },
-      "version": "2.3.21"
-    },
-    "org.jetbrains.kotlin:kotlin-stdlib-common": {
-      "shasums": {
-        "jar": "8601e004d74d4be5e871f6c43a730b482ce4dff45082b08924d5d69d33c9f7d1",
-        "sources": "61a4a7b3a7664ac64020e3a87627207413ce9f28e5ffb54452c546e69fbab8eb"
-      },
-      "version": "1.4.0"
+      "version": "2.1.21"
     },
     "org.jetbrains.kotlin:kotlin-stdlib-jdk7": {
       "shasums": {
@@ -514,13 +487,6 @@
       },
       "version": "1.8.21"
     },
-    "org.jetbrains.kotlinx:kotlinx-coroutines-core": {
-      "shasums": {
-        "jar": "4cd24a06b2a253110d8afd250e9eec6c6faafea6463d740824743d637e761f12",
-        "sources": "37131e26d85c4d8c7e16b05e524ce00998aee543e6d77b6f0351a475f9f6815e"
-      },
-      "version": "1.4.2"
-    },
     "org.jetbrains:annotations": {
       "shasums": {
         "jar": "ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478",
@@ -557,6 +523,22 @@
       "version": "9.8"
     }
   },
+  "conflict_resolution": {
+    "com.squareup:kotlinpoet:1.13.2": "com.squareup:kotlinpoet:1.11.0",
+    "org.apache.commons:commons-lang3:3.8.1": "org.apache.commons:commons-lang3:3.14.0",
+    "org.checkerframework:checker-compat-qual:2.5.3": "org.checkerframework:checker-compat-qual:2.5.5",
+    "org.jetbrains.kotlin:kotlin-reflect:1.6.10": "org.jetbrains.kotlin:kotlin-reflect:1.8.21",
+    "org.jetbrains.kotlin:kotlin-reflect:1.9.24": "org.jetbrains.kotlin:kotlin-reflect:1.8.21",
+    "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10": "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21",
+    "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0": "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21",
+    "org.jetbrains.kotlin:kotlin-stdlib:1.8.21": "org.jetbrains.kotlin:kotlin-stdlib:2.1.21",
+    "org.jetbrains.kotlin:kotlin-stdlib:1.9.21": "org.jetbrains.kotlin:kotlin-stdlib:2.1.21",
+    "org.jetbrains.kotlin:kotlin-stdlib:1.9.24": "org.jetbrains.kotlin:kotlin-stdlib:2.1.21",
+    "org.jetbrains.kotlin:kotlin-stdlib:2.0.0": "org.jetbrains.kotlin:kotlin-stdlib:2.1.21",
+    "org.jetbrains.kotlin:kotlin-stdlib:2.1.20": "org.jetbrains.kotlin:kotlin-stdlib:2.1.21",
+    "org.jetbrains.kotlin:kotlin-stdlib:2.4.0-RC": "org.jetbrains.kotlin:kotlin-stdlib:2.1.21",
+    "org.ow2.asm:asm:9.3": "org.ow2.asm:asm:9.8"
+  },
   "dependencies": {
     "com.eed3si9n.jarjar:jarjar": [
       "org.apache.commons:commons-lang3",
@@ -701,10 +683,6 @@
       "org.jetbrains.kotlin:kotlin-stdlib",
       "org.jetbrains.kotlin:kotlin-stdlib-jdk7"
     ],
-    "org.jetbrains.kotlinx:kotlinx-coroutines-core": [
-      "org.jetbrains.kotlin:kotlin-stdlib",
-      "org.jetbrains.kotlin:kotlin-stdlib-common"
-    ],
     "org.ow2.asm:asm-commons": [
       "org.ow2.asm:asm",
       "org.ow2.asm:asm-tree"
@@ -1143,22 +1121,11 @@
       "org.checkerframework.common.reflection.qual",
       "org.checkerframework.common.returnsreceiver.qual",
       "org.checkerframework.common.subtyping.qual",
-      "org.checkerframework.common.util.count.report.qual",
+      "org.checkerframework.common.util.report.qual",
       "org.checkerframework.common.value.qual",
       "org.checkerframework.dataflow.qual",
       "org.checkerframework.framework.qual"
     ],
-    "org.codehaus.plexus:plexus-utils": [
-      "org.codehaus.plexus.util",
-      "org.codehaus.plexus.util.cli",
-      "org.codehaus.plexus.util.cli.shell",
-      "org.codehaus.plexus.util.dag",
-      "org.codehaus.plexus.util.introspection",
-      "org.codehaus.plexus.util.io",
-      "org.codehaus.plexus.util.reflection",
-      "org.codehaus.plexus.util.xml",
-      "org.codehaus.plexus.util.xml.pull"
-    ],
     "org.hamcrest:hamcrest-core": [
       "org.hamcrest",
       "org.hamcrest.core",
@@ -1242,8 +1209,7 @@
       "kotlin.reflect.jvm.internal.impl.util",
       "kotlin.reflect.jvm.internal.impl.util.capitalizeDecapitalize",
       "kotlin.reflect.jvm.internal.impl.util.collectionUtils",
-      "kotlin.reflect.jvm.internal.impl.utils",
-      "kotlin.reflect.jvm.internal.impl.utils.addToStdlib"
+      "kotlin.reflect.jvm.internal.impl.utils"
     ],
     "org.jetbrains.kotlin:kotlin-stdlib": [
       "kotlin",
@@ -1293,20 +1259,6 @@
       "kotlin.time.jdk8",
       "kotlin.uuid"
     ],
-    "org.jetbrains.kotlinx:kotlinx-coroutines-core": [
-      "kotlinx.coroutines",
-      "kotlinx.coroutines.channels",
-      "kotlinx.coroutines.debug",
-      "kotlinx.coroutines.debug.internal",
-      "kotlinx.coroutines.flow",
-      "kotlinx.coroutines.flow.internal",
-      "kotlinx.coroutines.internal",
-      "kotlinx.coroutines.intrinsics",
-      "kotlinx.coroutines.scheduling",
-      "kotlinx.coroutines.selects",
-      "kotlinx.coroutines.sync",
-      "kotlinx.coroutines.test"
-    ],
     "org.jetbrains:annotations": [
       "org.intellij.lang.annotations",
       "org.jetbrains.annotations"
@@ -1327,77 +1279,17 @@
   },
   "repositories": {
     "https://maven-central.storage.googleapis.com/repos/central/data/": [
-      "com.eed3si9n.jarjar:jarjar",
-      "com.eed3si9n.jarjar:jarjar:jar:sources",
-      "com.google.auto.service:auto-service",
-      "com.google.auto.service:auto-service-annotations",
-      "com.google.auto.service:auto-service-annotations:jar:sources",
-      "com.google.auto.service:auto-service:jar:sources",
-      "com.google.auto.value:auto-value",
-      "com.google.auto.value:auto-value-annotations",
-      "com.google.auto.value:auto-value-annotations:jar:sources",
-      "com.google.auto.value:auto-value:jar:sources",
-      "com.google.auto:auto-common",
-      "com.google.auto:auto-common:jar:sources",
       "com.google.code.findbugs:jsr305",
       "com.google.code.findbugs:jsr305:jar:sources",
-      "com.google.code.gson:gson",
-      "com.google.code.gson:gson:jar:sources",
-      "com.google.dagger:dagger",
-      "com.google.dagger:dagger-compiler",
-      "com.google.dagger:dagger-compiler:jar:sources",
-      "com.google.dagger:dagger-producers",
-      "com.google.dagger:dagger-producers:jar:sources",
-      "com.google.dagger:dagger-spi",
-      "com.google.dagger:dagger-spi:jar:sources",
-      "com.google.dagger:dagger:jar:sources",
-      "com.google.devtools.ksp:symbol-processing-api",
-      "com.google.devtools.ksp:symbol-processing-api:jar:sources",
-      "com.google.errorprone:error_prone_annotations",
-      "com.google.errorprone:error_prone_annotations:jar:sources",
       "com.google.errorprone:javac-shaded",
       "com.google.errorprone:javac-shaded:jar:sources",
       "com.google.googlejavaformat:google-java-format",
       "com.google.googlejavaformat:google-java-format:jar:sources",
-      "com.google.guava:failureaccess",
-      "com.google.guava:failureaccess:jar:sources",
-      "com.google.guava:guava",
-      "com.google.guava:guava:jar:sources",
       "com.google.guava:listenablefuture",
-      "com.google.j2objc:j2objc-annotations",
-      "com.google.j2objc:j2objc-annotations:jar:sources",
-      "com.google.protobuf:protobuf-java",
-      "com.google.protobuf:protobuf-java-util",
-      "com.google.protobuf:protobuf-java-util:jar:sources",
-      "com.google.protobuf:protobuf-java:jar:sources",
       "com.google.truth:truth",
       "com.google.truth:truth:jar:sources",
       "com.googlecode.java-diff-utils:diffutils",
       "com.googlecode.java-diff-utils:diffutils:jar:sources",
-      "com.squareup.moshi:moshi",
-      "com.squareup.moshi:moshi-kotlin",
-      "com.squareup.moshi:moshi-kotlin-codegen",
-      "com.squareup.moshi:moshi-kotlin-codegen:jar:sources",
-      "com.squareup.moshi:moshi-kotlin:jar:sources",
-      "com.squareup.moshi:moshi:jar:sources",
-      "com.squareup.okio:okio-jvm",
-      "com.squareup.okio:okio-jvm:jar:sources",
-      "com.squareup:javapoet",
-      "com.squareup:javapoet:jar:sources",
-      "com.squareup:kotlinpoet",
-      "com.squareup:kotlinpoet-jvm",
-      "com.squareup:kotlinpoet-jvm:jar:sources",
-      "com.squareup:kotlinpoet-ksp",
-      "com.squareup:kotlinpoet-ksp:jar:sources",
-      "com.squareup:kotlinpoet:jar:sources",
-      "commons-codec:commons-codec",
-      "commons-codec:commons-codec:jar:sources",
-      "commons-io:commons-io",
-      "commons-io:commons-io:jar:sources",
-      "dev.zacsweers.autoservice:auto-service-ksp",
-      "dev.zacsweers.autoservice:auto-service-ksp:jar:sources",
-      "jakarta.inject:jakarta.inject-api",
-      "jakarta.inject:jakarta.inject-api:jar:sources",
       "javax.annotation:javax.annotation-api",
       "javax.annotation:javax.annotation-api:jar:sources",
       "javax.inject:javax.inject",
@@ -1406,160 +1298,14 @@
       "junit:junit:jar:sources",
       "net.ltgt.gradle.incap:incap",
       "net.ltgt.gradle.incap:incap:jar:sources",
-      "org.apache.commons:commons-compress",
-      "org.apache.commons:commons-compress:jar:sources",
-      "org.apache.commons:commons-lang3",
-      "org.apache.commons:commons-lang3:jar:sources",
       "org.checkerframework:checker-compat-qual",
       "org.checkerframework:checker-compat-qual:jar:sources",
-      "org.checkerframework:checker-qual",
-      "org.checkerframework:checker-qual:jar:sources",
-      "org.codehaus.plexus:plexus-utils",
-      "org.codehaus.plexus:plexus-utils:jar:sources",
       "org.hamcrest:hamcrest-core",
       "org.hamcrest:hamcrest-core:jar:sources",
-      "org.jetbrains.kotlin:kotlin-metadata-jvm",
-      "org.jetbrains.kotlin:kotlin-metadata-jvm:jar:sources",
-      "org.jetbrains.kotlin:kotlin-reflect",
-      "org.jetbrains.kotlin:kotlin-reflect:jar:sources",
-      "org.jetbrains.kotlin:kotlin-stdlib",
-      "org.jetbrains.kotlin:kotlin-stdlib-common",
-      "org.jetbrains.kotlin:kotlin-stdlib-common:jar:sources",
-      "org.jetbrains.kotlin:kotlin-stdlib-jdk7",
-      "org.jetbrains.kotlin:kotlin-stdlib-jdk7:jar:sources",
-      "org.jetbrains.kotlin:kotlin-stdlib-jdk8",
-      "org.jetbrains.kotlin:kotlin-stdlib-jdk8:jar:sources",
-      "org.jetbrains.kotlin:kotlin-stdlib:jar:sources",
-      "org.jetbrains.kotlinx:kotlinx-coroutines-core",
-      "org.jetbrains.kotlinx:kotlinx-coroutines-core:jar:sources",
       "org.jetbrains:annotations",
-      "org.jetbrains:annotations:jar:sources",
-      "org.jspecify:jspecify",
-      "org.jspecify:jspecify:jar:sources",
-      "org.ow2.asm:asm",
-      "org.ow2.asm:asm-commons",
-      "org.ow2.asm:asm-commons:jar:sources",
-      "org.ow2.asm:asm-tree",
-      "org.ow2.asm:asm-tree:jar:sources",
-      "org.ow2.asm:asm:jar:sources"
+      "org.jetbrains:annotations:jar:sources"
     ],
-    "https://maven.google.com/": [
-      "com.eed3si9n.jarjar:jarjar",
-      "com.eed3si9n.jarjar:jarjar:jar:sources",
-      "com.google.auto.service:auto-service",
-      "com.google.auto.service:auto-service-annotations",
-      "com.google.auto.service:auto-service-annotations:jar:sources",
-      "com.google.auto.service:auto-service:jar:sources",
-      "com.google.auto.value:auto-value",
-      "com.google.auto.value:auto-value-annotations",
-      "com.google.auto.value:auto-value-annotations:jar:sources",
-      "com.google.auto.value:auto-value:jar:sources",
-      "com.google.auto:auto-common",
-      "com.google.auto:auto-common:jar:sources",
-      "com.google.code.findbugs:jsr305",
-      "com.google.code.findbugs:jsr305:jar:sources",
-      "com.google.code.gson:gson",
-      "com.google.code.gson:gson:jar:sources",
-      "com.google.dagger:dagger",
-      "com.google.dagger:dagger-compiler",
-      "com.google.dagger:dagger-compiler:jar:sources",
-      "com.google.dagger:dagger-producers",
-      "com.google.dagger:dagger-producers:jar:sources",
-      "com.google.dagger:dagger-spi",
-      "com.google.dagger:dagger-spi:jar:sources",
-      "com.google.dagger:dagger:jar:sources",
-      "com.google.devtools.ksp:symbol-processing-api",
-      "com.google.devtools.ksp:symbol-processing-api:jar:sources",
-      "com.google.errorprone:error_prone_annotations",
-      "com.google.errorprone:error_prone_annotations:jar:sources",
-      "com.google.errorprone:javac-shaded",
-      "com.google.errorprone:javac-shaded:jar:sources",
-      "com.google.googlejavaformat:google-java-format",
-      "com.google.googlejavaformat:google-java-format:jar:sources",
-      "com.google.guava:failureaccess",
-      "com.google.guava:failureaccess:jar:sources",
-      "com.google.guava:guava",
-      "com.google.guava:guava:jar:sources",
-      "com.google.guava:listenablefuture",
-      "com.google.j2objc:j2objc-annotations",
-      "com.google.j2objc:j2objc-annotations:jar:sources",
-      "com.google.protobuf:protobuf-java",
-      "com.google.protobuf:protobuf-java-util",
-      "com.google.protobuf:protobuf-java-util:jar:sources",
-      "com.google.protobuf:protobuf-java:jar:sources",
-      "com.google.truth:truth",
-      "com.google.truth:truth:jar:sources",
-      "com.googlecode.java-diff-utils:diffutils",
-      "com.googlecode.java-diff-utils:diffutils:jar:sources",
-      "com.squareup.moshi:moshi",
-      "com.squareup.moshi:moshi-kotlin",
-      "com.squareup.moshi:moshi-kotlin-codegen",
-      "com.squareup.moshi:moshi-kotlin-codegen:jar:sources",
-      "com.squareup.moshi:moshi-kotlin:jar:sources",
-      "com.squareup.moshi:moshi:jar:sources",
-      "com.squareup.okio:okio-jvm",
-      "com.squareup.okio:okio-jvm:jar:sources",
-      "com.squareup:javapoet",
-      "com.squareup:javapoet:jar:sources",
-      "com.squareup:kotlinpoet",
-      "com.squareup:kotlinpoet-jvm",
-      "com.squareup:kotlinpoet-jvm:jar:sources",
-      "com.squareup:kotlinpoet-ksp",
-      "com.squareup:kotlinpoet-ksp:jar:sources",
-      "com.squareup:kotlinpoet:jar:sources",
-      "commons-codec:commons-codec",
-      "commons-codec:commons-codec:jar:sources",
-      "commons-io:commons-io",
-      "commons-io:commons-io:jar:sources",
-      "dev.zacsweers.autoservice:auto-service-ksp",
-      "dev.zacsweers.autoservice:auto-service-ksp:jar:sources",
-      "jakarta.inject:jakarta.inject-api",
-      "jakarta.inject:jakarta.inject-api:jar:sources",
-      "javax.annotation:javax.annotation-api",
-      "javax.annotation:javax.annotation-api:jar:sources",
-      "javax.inject:javax.inject",
-      "javax.inject:javax.inject:jar:sources",
-      "junit:junit",
-      "junit:junit:jar:sources",
-      "net.ltgt.gradle.incap:incap",
-      "net.ltgt.gradle.incap:incap:jar:sources",
-      "org.apache.commons:commons-compress",
-      "org.apache.commons:commons-compress:jar:sources",
-      "org.apache.commons:commons-lang3",
-      "org.apache.commons:commons-lang3:jar:sources",
-      "org.checkerframework:checker-compat-qual",
-      "org.checkerframework:checker-compat-qual:jar:sources",
-      "org.checkerframework:checker-qual",
-      "org.checkerframework:checker-qual:jar:sources",
-      "org.codehaus.plexus:plexus-utils",
-      "org.codehaus.plexus:plexus-utils:jar:sources",
-      "org.hamcrest:hamcrest-core",
-      "org.hamcrest:hamcrest-core:jar:sources",
-      "org.jetbrains.kotlin:kotlin-metadata-jvm",
-      "org.jetbrains.kotlin:kotlin-metadata-jvm:jar:sources",
-      "org.jetbrains.kotlin:kotlin-reflect",
-      "org.jetbrains.kotlin:kotlin-reflect:jar:sources",
-      "org.jetbrains.kotlin:kotlin-stdlib",
-      "org.jetbrains.kotlin:kotlin-stdlib-common",
-      "org.jetbrains.kotlin:kotlin-stdlib-common:jar:sources",
-      "org.jetbrains.kotlin:kotlin-stdlib-jdk7",
-      "org.jetbrains.kotlin:kotlin-stdlib-jdk7:jar:sources",
-      "org.jetbrains.kotlin:kotlin-stdlib-jdk8",
-      "org.jetbrains.kotlin:kotlin-stdlib-jdk8:jar:sources",
-      "org.jetbrains.kotlin:kotlin-stdlib:jar:sources",
-      "org.jetbrains.kotlinx:kotlinx-coroutines-core",
-      "org.jetbrains.kotlinx:kotlinx-coroutines-core:jar:sources",
-      "org.jetbrains:annotations",
-      "org.jetbrains:annotations:jar:sources",
-      "org.jspecify:jspecify",
-      "org.jspecify:jspecify:jar:sources",
-      "org.ow2.asm:asm",
-      "org.ow2.asm:asm-commons",
-      "org.ow2.asm:asm-commons:jar:sources",
-      "org.ow2.asm:asm-tree",
-      "org.ow2.asm:asm-tree:jar:sources",
-      "org.ow2.asm:asm:jar:sources"
-    ],
+    "https://maven.google.com/": [],
     "https://repo1.maven.org/maven2/": [
       "com.eed3si9n.jarjar:jarjar",
       "com.eed3si9n.jarjar:jarjar:jar:sources",
@@ -1648,8 +1394,6 @@
       "org.checkerframework:checker-compat-qual:jar:sources",
       "org.checkerframework:checker-qual",
       "org.checkerframework:checker-qual:jar:sources",
-      "org.codehaus.plexus:plexus-utils",
-      "org.codehaus.plexus:plexus-utils:jar:sources",
       "org.hamcrest:hamcrest-core",
       "org.hamcrest:hamcrest-core:jar:sources",
       "org.jetbrains.kotlin:kotlin-metadata-jvm",
@@ -1657,15 +1401,11 @@
       "org.jetbrains.kotlin:kotlin-reflect",
       "org.jetbrains.kotlin:kotlin-reflect:jar:sources",
       "org.jetbrains.kotlin:kotlin-stdlib",
-      "org.jetbrains.kotlin:kotlin-stdlib-common",
-      "org.jetbrains.kotlin:kotlin-stdlib-common:jar:sources",
       "org.jetbrains.kotlin:kotlin-stdlib-jdk7",
       "org.jetbrains.kotlin:kotlin-stdlib-jdk7:jar:sources",
       "org.jetbrains.kotlin:kotlin-stdlib-jdk8",
       "org.jetbrains.kotlin:kotlin-stdlib-jdk8:jar:sources",
       "org.jetbrains.kotlin:kotlin-stdlib:jar:sources",
-      "org.jetbrains.kotlinx:kotlinx-coroutines-core",
-      "org.jetbrains.kotlinx:kotlinx-coroutines-core:jar:sources",
       "org.jetbrains:annotations",
       "org.jetbrains:annotations:jar:sources",
       "org.jspecify:jspecify",
@@ -1684,11 +1424,6 @@
         "com.google.auto.service.processor.AutoServiceProcessor"
       ]
     },
-    "com.google.auto.service:auto-service:jar:sources": {
-      "javax.annotation.processing.Processor": [
-        "com.google.auto.service.processor.AutoServiceProcessor"
-      ]
-    },
     "com.google.auto.value:auto-value": {
       "com.google.auto.value.extension.AutoValueExtension": [
         "com.google.auto.value.extension.memoized.processor.MemoizeExtension",
@@ -1739,11 +1474,6 @@
         "kotlin.metadata.jvm.internal.JvmMetadataExtensions"
       ]
     },
-    "org.jetbrains.kotlin:kotlin-metadata-jvm:jar:sources": {
-      "kotlin.metadata.internal.extensions.MetadataExtensions": [
-        "kotlin.metadata.jvm.internal.JvmMetadataExtensions"
-      ]
-    },
     "org.jetbrains.kotlin:kotlin-reflect": {
       "kotlin.reflect.jvm.internal.impl.builtins.BuiltInsLoader": [
         "kotlin.reflect.jvm.internal.impl.serialization.deserialization.builtins.BuiltInsLoaderImpl"
@@ -1755,5 +1485,6 @@
       ]
     }
   },
+  "skipped": [],
   "version": "3"
 }
diff --git a/rules_kotlin_maven_install.json b/rules_kotlin_maven_install.json
index b589af4..66fb6ce 100755
--- a/rules_kotlin_maven_install.json
+++ b/rules_kotlin_maven_install.json
@@ -4,24 +4,24 @@
     "com.google.devtools.ksp:symbol-processing-aa": 1974172210,
     "com.google.devtools.ksp:symbol-processing-api": -1189957684,
     "com.google.devtools.ksp:symbol-processing-common-deps": -1141520232,
-    "org.jetbrains.kotlin:jvm-abi-gen": -1077091937,
-    "org.jetbrains.kotlin:kotlin-allopen-compiler-plugin": -935951927,
-    "org.jetbrains.kotlin:kotlin-annotation-processing": -1211069509,
-    "org.jetbrains.kotlin:kotlin-annotation-processing-embeddable": 1866845197,
-    "org.jetbrains.kotlin:kotlin-build-tools-api": 233215763,
-    "org.jetbrains.kotlin:kotlin-build-tools-compat": 1465024159,
-    "org.jetbrains.kotlin:kotlin-build-tools-impl": 368217661,
-    "org.jetbrains.kotlin:kotlin-compiler": -1140536117,
-    "org.jetbrains.kotlin:kotlin-daemon-client": 333923006,
-    "org.jetbrains.kotlin:kotlin-noarg-compiler-plugin": -693058413,
-    "org.jetbrains.kotlin:kotlin-parcelize-compiler": 504849901,
-    "org.jetbrains.kotlin:kotlin-parcelize-runtime": 815600704,
-    "org.jetbrains.kotlin:kotlin-reflect": -1996849849,
-    "org.jetbrains.kotlin:kotlin-sam-with-receiver-compiler-plugin": 605684230,
-    "org.jetbrains.kotlin:kotlin-script-runtime": 1968261250,
-    "org.jetbrains.kotlin:kotlin-serialization-compiler-plugin": 2042916302,
-    "org.jetbrains.kotlin:kotlin-stdlib": 1989385006,
-    "org.jetbrains.kotlin:kotlin-test": 958876286,
+    "org.jetbrains.kotlin:jvm-abi-gen": -910110162,
+    "org.jetbrains.kotlin:kotlin-allopen-compiler-plugin": 1581453272,
+    "org.jetbrains.kotlin:kotlin-annotation-processing": -813537974,
+    "org.jetbrains.kotlin:kotlin-annotation-processing-embeddable": 2124994844,
+    "org.jetbrains.kotlin:kotlin-build-tools-api": -129828190,
+    "org.jetbrains.kotlin:kotlin-build-tools-compat": -1772933330,
+    "org.jetbrains.kotlin:kotlin-build-tools-impl": 757976908,
+    "org.jetbrains.kotlin:kotlin-compiler": -1750424998,
+    "org.jetbrains.kotlin:kotlin-daemon-client": -2134415475,
+    "org.jetbrains.kotlin:kotlin-noarg-compiler-plugin": -1221081054,
+    "org.jetbrains.kotlin:kotlin-parcelize-compiler": -1082426628,
+    "org.jetbrains.kotlin:kotlin-parcelize-runtime": 1196351631,
+    "org.jetbrains.kotlin:kotlin-reflect": -34200618,
+    "org.jetbrains.kotlin:kotlin-sam-with-receiver-compiler-plugin": 1330083029,
+    "org.jetbrains.kotlin:kotlin-script-runtime": 801573969,
+    "org.jetbrains.kotlin:kotlin-serialization-compiler-plugin": -469365091,
+    "org.jetbrains.kotlin:kotlin-stdlib": -373332995,
+    "org.jetbrains.kotlin:kotlin-test": 1445232461,
     "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": 65903440,
     "org.jetbrains.kotlinx:kotlinx-serialization-core-jvm": -522427585,
     "org.jetbrains.kotlinx:kotlinx-serialization-json-jvm": -1040437304,
@@ -29,69 +29,69 @@
     "repositories": 582576641
   },
   "__RESOLVED_ARTIFACTS_HASH": {
-    "com.google.devtools.ksp:symbol-processing-aa": -1318006025,
+    "com.google.devtools.ksp:symbol-processing-aa": -1910395881,
     "com.google.devtools.ksp:symbol-processing-aa:jar:sources": -842299336,
-    "com.google.devtools.ksp:symbol-processing-api": 1735307880,
+    "com.google.devtools.ksp:symbol-processing-api": -1332691691,
     "com.google.devtools.ksp:symbol-processing-api:jar:sources": -474784713,
-    "com.google.devtools.ksp:symbol-processing-common-deps": 1266232402,
+    "com.google.devtools.ksp:symbol-processing-common-deps": -1801767169,
     "com.google.devtools.ksp:symbol-processing-common-deps:jar:sources": 676378417,
-    "org.jetbrains.intellij.deps.kotlinx:kotlinx-coroutines-core-jvm": -2081928242,
+    "org.jetbrains.intellij.deps.kotlinx:kotlinx-coroutines-core-jvm": -856332933,
     "org.jetbrains.intellij.deps.kotlinx:kotlinx-coroutines-core-jvm:jar:sources": -587895121,
-    "org.jetbrains.kotlin:jvm-abi-gen": -1592450969,
-    "org.jetbrains.kotlin:jvm-abi-gen:jar:sources": 2026927367,
-    "org.jetbrains.kotlin:kotlin-allopen-compiler-plugin": 699815493,
-    "org.jetbrains.kotlin:kotlin-allopen-compiler-plugin:jar:sources": 363984864,
-    "org.jetbrains.kotlin:kotlin-annotation-processing": -1984445825,
-    "org.jetbrains.kotlin:kotlin-annotation-processing-embeddable": -1861729404,
-    "org.jetbrains.kotlin:kotlin-annotation-processing-embeddable:jar:sources": -746723362,
-    "org.jetbrains.kotlin:kotlin-annotation-processing:jar:sources": -1609044949,
-    "org.jetbrains.kotlin:kotlin-build-tools-api": -1848415644,
-    "org.jetbrains.kotlin:kotlin-build-tools-api:jar:sources": 610056615,
-    "org.jetbrains.kotlin:kotlin-build-tools-compat": 938612618,
-    "org.jetbrains.kotlin:kotlin-build-tools-compat:jar:sources": 2108547241,
-    "org.jetbrains.kotlin:kotlin-build-tools-cri-impl": 757496386,
-    "org.jetbrains.kotlin:kotlin-build-tools-cri-impl:jar:sources": -1910270712,
-    "org.jetbrains.kotlin:kotlin-build-tools-impl": 1432209759,
-    "org.jetbrains.kotlin:kotlin-build-tools-impl:jar:sources": 1958146998,
-    "org.jetbrains.kotlin:kotlin-compiler": 211921497,
-    "org.jetbrains.kotlin:kotlin-compiler-embeddable": -1040404024,
-    "org.jetbrains.kotlin:kotlin-compiler-embeddable:jar:sources": -1805281762,
-    "org.jetbrains.kotlin:kotlin-compiler-runner": -1855277681,
-    "org.jetbrains.kotlin:kotlin-compiler-runner:jar:sources": -1654333798,
-    "org.jetbrains.kotlin:kotlin-compiler:jar:sources": -1821386141,
-    "org.jetbrains.kotlin:kotlin-daemon-client": -699972166,
-    "org.jetbrains.kotlin:kotlin-daemon-client:jar:sources": -298190908,
-    "org.jetbrains.kotlin:kotlin-daemon-embeddable": 1085542005,
-    "org.jetbrains.kotlin:kotlin-daemon-embeddable:jar:sources": 1382872099,
-    "org.jetbrains.kotlin:kotlin-noarg-compiler-plugin": 335679056,
-    "org.jetbrains.kotlin:kotlin-noarg-compiler-plugin:jar:sources": 980787815,
-    "org.jetbrains.kotlin:kotlin-parcelize-compiler": 1533948819,
-    "org.jetbrains.kotlin:kotlin-parcelize-compiler:jar:sources": 994601451,
-    "org.jetbrains.kotlin:kotlin-parcelize-runtime": -135735944,
-    "org.jetbrains.kotlin:kotlin-parcelize-runtime:jar:sources": 994601451,
-    "org.jetbrains.kotlin:kotlin-reflect": -995031280,
-    "org.jetbrains.kotlin:kotlin-reflect:jar:sources": 992770884,
-    "org.jetbrains.kotlin:kotlin-sam-with-receiver-compiler-plugin": -1301367981,
-    "org.jetbrains.kotlin:kotlin-sam-with-receiver-compiler-plugin:jar:sources": -249215637,
-    "org.jetbrains.kotlin:kotlin-script-runtime": -803233219,
-    "org.jetbrains.kotlin:kotlin-script-runtime:jar:sources": -1980091510,
-    "org.jetbrains.kotlin:kotlin-serialization-compiler-plugin": 804606820,
-    "org.jetbrains.kotlin:kotlin-serialization-compiler-plugin:jar:sources": 500518518,
-    "org.jetbrains.kotlin:kotlin-stdlib": 1982993890,
-    "org.jetbrains.kotlin:kotlin-stdlib-jdk7": -1726649762,
-    "org.jetbrains.kotlin:kotlin-stdlib-jdk7:jar:sources": -1933962397,
-    "org.jetbrains.kotlin:kotlin-stdlib-jdk8": 415976216,
-    "org.jetbrains.kotlin:kotlin-stdlib-jdk8:jar:sources": -1382309490,
-    "org.jetbrains.kotlin:kotlin-stdlib:jar:sources": -107163053,
-    "org.jetbrains.kotlin:kotlin-test": 1679587631,
-    "org.jetbrains.kotlin:kotlin-test:jar:sources": 542413593,
-    "org.jetbrains.kotlin:kotlin-tooling-core": -13727018,
-    "org.jetbrains.kotlin:kotlin-tooling-core:jar:sources": 1243292659,
-    "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": 998661838,
+    "org.jetbrains.kotlin:jvm-abi-gen": 2033617671,
+    "org.jetbrains.kotlin:jvm-abi-gen:jar:sources": 1516584064,
+    "org.jetbrains.kotlin:kotlin-allopen-compiler-plugin": -743076553,
+    "org.jetbrains.kotlin:kotlin-allopen-compiler-plugin:jar:sources": 798097502,
+    "org.jetbrains.kotlin:kotlin-annotation-processing": 2086428967,
+    "org.jetbrains.kotlin:kotlin-annotation-processing-embeddable": -2035696211,
+    "org.jetbrains.kotlin:kotlin-annotation-processing-embeddable:jar:sources": 1516332591,
+    "org.jetbrains.kotlin:kotlin-annotation-processing:jar:sources": 1817324586,
+    "org.jetbrains.kotlin:kotlin-build-tools-api": -1363603163,
+    "org.jetbrains.kotlin:kotlin-build-tools-api:jar:sources": 306267275,
+    "org.jetbrains.kotlin:kotlin-build-tools-compat": -1200734965,
+    "org.jetbrains.kotlin:kotlin-build-tools-compat:jar:sources": -2062902692,
+    "org.jetbrains.kotlin:kotlin-build-tools-cri-impl": 761261463,
+    "org.jetbrains.kotlin:kotlin-build-tools-cri-impl:jar:sources": 312696791,
+    "org.jetbrains.kotlin:kotlin-build-tools-impl": -1826120943,
+    "org.jetbrains.kotlin:kotlin-build-tools-impl:jar:sources": 1912056616,
+    "org.jetbrains.kotlin:kotlin-compiler": -770693349,
+    "org.jetbrains.kotlin:kotlin-compiler-embeddable": -437161253,
+    "org.jetbrains.kotlin:kotlin-compiler-embeddable:jar:sources": -1185283767,
+    "org.jetbrains.kotlin:kotlin-compiler-runner": -130627398,
+    "org.jetbrains.kotlin:kotlin-compiler-runner:jar:sources": 1160946334,
+    "org.jetbrains.kotlin:kotlin-compiler:jar:sources": 470614369,
+    "org.jetbrains.kotlin:kotlin-daemon-client": 1527694169,
+    "org.jetbrains.kotlin:kotlin-daemon-client:jar:sources": 1759047262,
+    "org.jetbrains.kotlin:kotlin-daemon-embeddable": -2083467796,
+    "org.jetbrains.kotlin:kotlin-daemon-embeddable:jar:sources": 373004167,
+    "org.jetbrains.kotlin:kotlin-noarg-compiler-plugin": 2079522937,
+    "org.jetbrains.kotlin:kotlin-noarg-compiler-plugin:jar:sources": 987578319,
+    "org.jetbrains.kotlin:kotlin-parcelize-compiler": -2135893514,
+    "org.jetbrains.kotlin:kotlin-parcelize-compiler:jar:sources": -1077398342,
+    "org.jetbrains.kotlin:kotlin-parcelize-runtime": 760856384,
+    "org.jetbrains.kotlin:kotlin-parcelize-runtime:jar:sources": -1077398342,
+    "org.jetbrains.kotlin:kotlin-reflect": -1692811616,
+    "org.jetbrains.kotlin:kotlin-reflect:jar:sources": -1350219917,
+    "org.jetbrains.kotlin:kotlin-sam-with-receiver-compiler-plugin": -497137061,
+    "org.jetbrains.kotlin:kotlin-sam-with-receiver-compiler-plugin:jar:sources": -1904781378,
+    "org.jetbrains.kotlin:kotlin-script-runtime": 1867112944,
+    "org.jetbrains.kotlin:kotlin-script-runtime:jar:sources": 242875993,
+    "org.jetbrains.kotlin:kotlin-serialization-compiler-plugin": 1450668355,
+    "org.jetbrains.kotlin:kotlin-serialization-compiler-plugin:jar:sources": -116218091,
+    "org.jetbrains.kotlin:kotlin-stdlib": 2133113807,
+    "org.jetbrains.kotlin:kotlin-stdlib-jdk7": 2133965790,
+    "org.jetbrains.kotlin:kotlin-stdlib-jdk7:jar:sources": 289005106,
+    "org.jetbrains.kotlin:kotlin-stdlib-jdk8": -1058312564,
+    "org.jetbrains.kotlin:kotlin-stdlib-jdk8:jar:sources": 840658013,
+    "org.jetbrains.kotlin:kotlin-stdlib:jar:sources": 2035611947,
+    "org.jetbrains.kotlin:kotlin-test": 2130877442,
+    "org.jetbrains.kotlin:kotlin-test:jar:sources": -551514052,
+    "org.jetbrains.kotlin:kotlin-tooling-core": -1901081734,
+    "org.jetbrains.kotlin:kotlin-tooling-core:jar:sources": -1994803624,
+    "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": -2070710149,
     "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:jar:sources": 1967060403,
-    "org.jetbrains.kotlinx:kotlinx-serialization-core-jvm": 370806968,
+    "org.jetbrains.kotlinx:kotlinx-serialization-core-jvm": 1597774693,
     "org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:jar:sources": -1103833809,
-    "org.jetbrains.kotlinx:kotlinx-serialization-json-jvm": 385616031,
+    "org.jetbrains.kotlinx:kotlinx-serialization-json-jvm": -1324776555,
     "org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:jar:sources": -1635775494,
     "org.jetbrains:annotations": 554168982,
     "org.jetbrains:annotations:jar:sources": 1226441379
@@ -127,178 +127,178 @@
     },
     "org.jetbrains.kotlin:jvm-abi-gen": {
       "shasums": {
-        "jar": "3f1c157c2473a0fba7f86907a98bc92f07678c38e9d97e4508c4072d3445d3db",
-        "sources": "c7f0c4f6f8825d591aebd4198285976f5156acdba41c6b5519a882d6a69659a7"
+        "jar": "b1b3ea99a16ad98db73a0d87a80b1974bb960bdafbe518a56f1b8f4287a91804",
+        "sources": "94737b25c6fd10ac9095fb00c03b4478a92d7ef4a0b11a17026fa7575adc25bd"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-allopen-compiler-plugin": {
       "shasums": {
-        "jar": "4816d18985b54ef4091d146639cbaa3b3d31e957616b0c49f9654997f7c9067c",
-        "sources": "ee12348b0f478fb6ceda6cee343d4c123e8cd11ce3aa63615a045f865e4e5d22"
+        "jar": "fca77d83a880c56c9e920791de563db3fb54b46125ecf2320c0097c22a4a9e78",
+        "sources": "cdcde297875748299de6f6facef4c9c17db8008e58582f70d9bd5a8b0e3cc560"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-annotation-processing": {
       "shasums": {
-        "jar": "c37b5216adf8b1a2afad78df0b2db93d9279b6514831919b83bed8d1c24acd2d",
-        "sources": "7db77ab90f7ff39e70086d9db6d8b2ad83fa943c0a109f106ead4d94a17644a3"
+        "jar": "3524d0f76b4076bc8597f00c1dd89c132e95a44904c54e70fc7178644d85d55d",
+        "sources": "0a3d2264b2119c4dbb5f53fdfb18fb689752c78c9f9f1c01f85fcfe9efc4e847"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-annotation-processing-embeddable": {
       "shasums": {
-        "jar": "0be28c39e03f910cd07d9cea264bf1e6e734e999ba3af90f924c9a1dcd49a0d3",
-        "sources": "455b88b78d991f74e468531497fb405b6f2471b0842663fa5304571cbc275cf8"
+        "jar": "568473e7c995539aa7d0b336474f2771dc37dd92e39afa94356bb9127d3d8c22",
+        "sources": "b39a04c10c2eb3a8ca9cfc85a80fe7ce62bddc6528fe72745bcd3d95fbed4362"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-build-tools-api": {
       "shasums": {
-        "jar": "22f1ab223854b949099f6b259cef541d5b58a3643df9a49c4577c63c416e843b",
-        "sources": "7e13326bfd85d1612a542c9923446248976389b389c955ec3d52e572076a14dc"
+        "jar": "6e58a7cf226b0410bae6f7a4130d99604701736560013e9305a000240fa1ecec",
+        "sources": "1b5101e1156a08c0d4d020aca63221d5a27e95c08b710022853e7a2bf80cf1fe"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-build-tools-compat": {
       "shasums": {
-        "jar": "44c307b4edd4cac51f960a8134112d664c93076700cda5e866e94d9a4296340e",
-        "sources": "964bc6f00a2e6793a2b2009cdfc0aeec237b71a23c12be610c80ccc127ae58de"
+        "jar": "3387b026d8213d7ac51823c23acd3bf2e72a621315595766a178c71a8bce50cd",
+        "sources": "ae906a20bae9f33854c491b19f59d2de1d2f43e487431e6da65770bc07db49be"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-build-tools-cri-impl": {
       "shasums": {
-        "jar": "54eced630f28124ccfe2e464e6cacc281e528a8a50a89725721554c9693548fe",
+        "jar": "cfc54cb3774e29b612e19a2ecc1b5423d0c20839044d452c7c76cdd6a7c29291",
         "sources": "e37ee4d03e1afac684f9dba6f159a00e3da5e52251b754f0a78421152e35f4f1"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-build-tools-impl": {
       "shasums": {
-        "jar": "9681bc2164a8bd9f6ddf4c085cf4a836b92d27506667d73bab9f6d855336c910",
-        "sources": "70811a3216c3d8a1a7f5312d66e08fdd27ac3c94c970dca7c51c884901c5e8d3"
+        "jar": "94a2c2c82d2cfa677725e73771f271d03c3db2616728b1c75f62cb6851da9383",
+        "sources": "665c1e7d6a81db2e92486d2940e0c33502ce7aa51aad57c28511e3c1a772e65d"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-compiler": {
       "shasums": {
-        "jar": "4198518f6d840f2f665b2e3c8319a854281f6af43790aca563e3f6b9c46bca68",
-        "sources": "1db90abfc3ef50f5c6e1addb9d8e1996fe4bd4e1cc7de15097b9a5e05f44d2ce"
+        "jar": "657cdfad3340fed02fe8dd27f864bfbde715bdb19d58650279c603898de6d507",
+        "sources": "4f9de270a79e910673e503fc67130b78d41fc708bb0f1cb724704b19bfbdcabb"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-compiler-embeddable": {
       "shasums": {
-        "jar": "976f989d0b5f5d80e8e8a8ad4b73da0bfc27fdd965b9fa38362b2be79ecc1337",
-        "sources": "58fc34a5212c86e78af142c056b35e1682128fff1a66a9b59369de5a2575fc63"
+        "jar": "f2d0a10ac32702f217f53a3d760c33a51451fd1f233c38e58a275d740a270339",
+        "sources": "e3e1fbaa1c8fc155b596ad486a720d63c606f7f700c6c5eeff50f544b09155db"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-compiler-runner": {
       "shasums": {
-        "jar": "c069f30a403be70c8152f8aa9f25eccba188eead54263ae02af14421437a2208",
-        "sources": "67a07d0bf582dd860e3ca0d0959bbfb3a71ee3162231292ccd5f2f23a66e120a"
+        "jar": "9db80559df00b1f24c0adb14791cbd0fc6ac0d35a684ee99a24d37bd8b1187d7",
+        "sources": "1cb4641dbaed635d216418079bc7beacfeae284c239f09d31eb76580c39da5fb"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-daemon-client": {
       "shasums": {
-        "jar": "c71a7c1be8fbff04e0af45c9ee8cb7a61d8953bca6b8bf225a5719c725a90b44",
-        "sources": "130e946436f3244b1fdc83b9c7d7b21c57319f50ed9deac110e16116beed55bd"
+        "jar": "1ffb2a9105061fbbe4179409b2c6986deb543a4f1a1435a2e9feab32695a39ab",
+        "sources": "2e33d85e2dde473c8969ffbaf7d78a11d9f74377981bfcfb3f122058d369bfa0"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-daemon-embeddable": {
       "shasums": {
-        "jar": "8870bab840b8087c96c4ddc06088b4aedf5131c408af3674306304f1f96af3f4",
-        "sources": "0d70bf1b805fab1822dbe49514c8522087b6bb62213f5ae2e487b537beef9b6d"
+        "jar": "9d9c3ef8d7af638d93780fe9cad38147442f3378533eb35648f8d958374a19da",
+        "sources": "46634117180c04e8cbaf38b55a8db7350d681a881c05545e7d8d90024e87e502"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-noarg-compiler-plugin": {
       "shasums": {
-        "jar": "1ef20a13e78b5577b5bb85e8b4299314893783d998f3c621dc449d447961e218",
-        "sources": "31c2346a4396e1c09cd9568e6f100450a5a222ce68cb2186108110aa243973ae"
+        "jar": "3ee451fcc5fbd7c5159ca50a83e49b48258eab6a2b4ba4ebef96065ac4451ada",
+        "sources": "f063f4f2562fd68fdcf1184e419050b3a2bb862344a8d7ca61702be6c45763a2"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-parcelize-compiler": {
       "shasums": {
-        "jar": "abfeabf066cf8b2cd51986ca3b660a38bf174562b59c5e97ee7b4ccf8dc72ce6",
+        "jar": "bf645dfbad3852f20c70e5e90492f82a267351a84ad4191011ff20b936122ce5",
         "sources": "f98535d3558a8e0b08ed7c993a3559c1b89ad12c335824172485fe05ebb8f606"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-parcelize-runtime": {
       "shasums": {
-        "jar": "ca84154e2701ebe146c832163d708d1d703159b910b9f611a10fb25c5ba90279",
+        "jar": "08a5df6675185b0d45906b1eed67ff73ffb0a6417c3ad813a52b0187ef19a2e2",
         "sources": "f98535d3558a8e0b08ed7c993a3559c1b89ad12c335824172485fe05ebb8f606"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-reflect": {
       "shasums": {
-        "jar": "e346fa3c3ff4451f5f707a312887fd4c8555da48cc15fa9db2ba93c33f89f813",
-        "sources": "8cbdca65092aa6888901e23c08c7d69d141544107a9bcc9aa47b5453d4dbcf7e"
+        "jar": "399101ad45a8056d5235e74f865a2a0a358c8960badf24013fee0d0428549f5e",
+        "sources": "ff246d790aad39f55779f44e410b477228999cd3c352585c73b56ea5df36549e"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-sam-with-receiver-compiler-plugin": {
       "shasums": {
-        "jar": "1cf954af92ab6974f5ad510d1f76fff86c7a7d2c1ef4ab4ba22c2913ffa4bc9b",
-        "sources": "3e381b9ad759061de0955b991df577154a9f55b95c33acc760c4b5ff65a2fe0e"
+        "jar": "b1a307621958644e44130410df0f897e2dc4f5a3424527acd8b6b71705a982bf",
+        "sources": "7dff564561e680877a172cc05dbc2626d3d0934168318444e7a01efa1b551b96"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-script-runtime": {
       "shasums": {
-        "jar": "6fcdb7da6e65cf8cc43e5aabab94bdcc48825e7933686f8a1bf694eb88f8e00e",
+        "jar": "273bc0050cb5bc00c932d7e14df0ba05621e46879e1f8b8f9acef2bb3092b4aa",
         "sources": "275d90c0c92e9680aff9c013394f3f395bc46dc23762107c4fdccd9887a58561"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-serialization-compiler-plugin": {
       "shasums": {
-        "jar": "2c8c84a9902d04541828c77c1ddf953c8ea67a1d77d9aeefa8a063187165b2a5",
-        "sources": "85934fdd0e2ec1136a80b1e6b8abbfdb09eddeb59be38df4d0c56e49f4740fba"
+        "jar": "03298f0bbed1a9a5929fa7c0f8487a0bba06d81d50f8adad08c0c6f186163ff7",
+        "sources": "48003cd331693d09855fd236cb8c4e7db147d87bd57eddd89d4915c1b471087d"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-stdlib": {
       "shasums": {
-        "jar": "0ae12504a5040ebaf37703908483420d1a5624dd1d93f357665f8c77c848a01e",
-        "sources": "5c9707bb04725260c2c03d88a218dd4ea87749aefcc4663e71afa9559430f661"
+        "jar": "1e82cede50272c5d6ee3b5e2d174b691b858464b82840655037b45d5b0908665",
+        "sources": "bca27f834e278d08c1b85a40e636450867e8251c284fd4c24e9879bb99e301c5"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-stdlib-jdk7": {
       "shasums": {
-        "jar": "18231e75c68026d90f5487c8dc753be307c273a5eed574cee5a7118dfb04bc14",
+        "jar": "17e7640d76bf34c66aef3933c29b2b41907a5e44741cfe5f05871b7f35bfaa21",
         "sources": "2534c8908432e06de73177509903d405b55f423dd4c2f747e16b92a2162611e6"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-stdlib-jdk8": {
       "shasums": {
-        "jar": "4d2f1d22a64efd04554108ba71297e10ff399fc0d61f56feb7a9266104be757d",
+        "jar": "d400e35237ea48deb4bbe162782ef51638c058857aa8c2fc8b9607cdf8be24f3",
         "sources": "3cb6895054a0985bba591c165503fe4dd63a215af53263b67a071ccdc242bf6e"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-test": {
       "shasums": {
-        "jar": "d6c9ccf82f67e6cf7fdaf9e0cea419dac4dfa58620a1653d3dba45f544a289ac",
-        "sources": "bce4ebcf90507cc14ea3857f65088d10fd1a305616da62a6e5b6be0735ccb456"
+        "jar": "a54bbf3d0aa5618547db5a52e780d111a57d5a2462f80b9eeb2c5754949ab544",
+        "sources": "5872d95764647025277d207c29e9e8e816763a509f77ca24a3bea3241afb392f"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlin:kotlin-tooling-core": {
       "shasums": {
-        "jar": "367142781299bc0f9120c1deec0e62934a1af9ea7f01aaa9c5a5354dc5d8d7d9",
-        "sources": "a19867e8faa77b57dea45b2c7d458cea3e3875641d47c2816854cff7e1f680b9"
+        "jar": "59ea305372e3a2b7417764dcfecf645066a0d9b1792ab40afd15c1cc8535b58a",
+        "sources": "7ec2d9257b4e01295bda3eea3e85c98191d1d99cfefb55054e6d29a43b55783f"
       },
-      "version": "2.3.20"
+      "version": "2.4.0-RC"
     },
     "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm": {
       "shasums": {
@@ -361,12 +361,14 @@
       "org.jetbrains.kotlin:kotlin-stdlib"
     ],
     "org.jetbrains.kotlin:kotlin-compiler": [
+      "org.jetbrains.kotlin:kotlin-build-tools-api",
       "org.jetbrains.kotlin:kotlin-reflect",
       "org.jetbrains.kotlin:kotlin-script-runtime",
       "org.jetbrains.kotlin:kotlin-stdlib-jdk8",
       "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm"
     ],
     "org.jetbrains.kotlin:kotlin-compiler-embeddable": [
+      "org.jetbrains.kotlin:kotlin-build-tools-api",
       "org.jetbrains.kotlin:kotlin-daemon-embeddable",
       "org.jetbrains.kotlin:kotlin-reflect",
       "org.jetbrains.kotlin:kotlin-script-runtime",
@@ -1718,6 +1720,8 @@
     ],
     "org.jetbrains.kotlin:kotlin-build-tools-api": [
       "org.jetbrains.kotlin.buildtools.api",
+      "org.jetbrains.kotlin.buildtools.api.abi",
+      "org.jetbrains.kotlin.buildtools.api.abi.operations",
       "org.jetbrains.kotlin.buildtools.api.arguments",
       "org.jetbrains.kotlin.buildtools.api.arguments.enums",
       "org.jetbrains.kotlin.buildtools.api.cri",
@@ -1745,7 +1749,41 @@
       "org.jetbrains.kotlin.buildtools.internal.serialization.protobuf.schema"
     ],
     "org.jetbrains.kotlin:kotlin-build-tools-impl": [
+      "com.github.difflib",
+      "com.github.difflib.algorithm",
+      "com.github.difflib.algorithm.myers",
+      "com.github.difflib.patch",
+      "com.github.difflib.text",
+      "com.github.difflib.unifieddiff",
+      "kotlin.metadata",
+      "kotlin.metadata.internal",
+      "kotlin.metadata.internal.common",
+      "kotlin.metadata.internal.extensions",
+      "kotlin.metadata.internal.metadata",
+      "kotlin.metadata.internal.metadata.builtins",
+      "kotlin.metadata.internal.metadata.deserialization",
+      "kotlin.metadata.internal.metadata.jvm",
+      "kotlin.metadata.internal.metadata.jvm.deserialization",
+      "kotlin.metadata.internal.metadata.jvm.serialization",
+      "kotlin.metadata.internal.metadata.serialization",
+      "kotlin.metadata.internal.protobuf",
+      "kotlin.metadata.jvm",
+      "kotlin.metadata.jvm.internal",
+      "org.jetbrains.kotlin.abi.tools",
+      "org.jetbrains.kotlin.abi.tools.impl",
+      "org.jetbrains.kotlin.abi.tools.impl.filtering",
+      "org.jetbrains.kotlin.abi.tools.impl.jvm",
+      "org.jetbrains.kotlin.abi.tools.impl.klib",
+      "org.jetbrains.kotlin.abi.tools.impl.naming",
+      "org.jetbrains.kotlin.abi.tools.org.objectweb.asm",
+      "org.jetbrains.kotlin.abi.tools.org.objectweb.asm.commons",
+      "org.jetbrains.kotlin.abi.tools.org.objectweb.asm.signature",
+      "org.jetbrains.kotlin.abi.tools.org.objectweb.asm.tree",
+      "org.jetbrains.kotlin.abi.tools.org.objectweb.asm.tree.analysis",
+      "org.jetbrains.kotlin.abi.tools.org.objectweb.asm.util",
       "org.jetbrains.kotlin.buildtools.internal",
+      "org.jetbrains.kotlin.buildtools.internal.abi",
+      "org.jetbrains.kotlin.buildtools.internal.abi.operations",
       "org.jetbrains.kotlin.buildtools.internal.arguments",
       "org.jetbrains.kotlin.buildtools.internal.cri",
       "org.jetbrains.kotlin.buildtools.internal.jvm",
@@ -1888,7 +1926,6 @@
       "com.intellij.patterns",
       "com.intellij.patterns.compiler",
       "com.intellij.platform.backend.navigation",
-      "com.intellij.platform.util.coroutines",
       "com.intellij.pom",
       "com.intellij.pom.core.impl",
       "com.intellij.pom.event",
@@ -2075,7 +2112,7 @@
       "org.jetbrains.kotlin.analysis.utils.collections",
       "org.jetbrains.kotlin.analysis.utils.errors",
       "org.jetbrains.kotlin.analysis.utils.printer",
-      "org.jetbrains.kotlin.analysis.utils.relfection",
+      "org.jetbrains.kotlin.analysis.utils.reflection",
       "org.jetbrains.kotlin.analyzer",
       "org.jetbrains.kotlin.analyzer.common",
       "org.jetbrains.kotlin.asJava",
@@ -2150,16 +2187,6 @@
       "org.jetbrains.kotlin.build.report.statistics",
       "org.jetbrains.kotlin.build.report.statistics.file",
       "org.jetbrains.kotlin.build.report.statistics.json",
-      "org.jetbrains.kotlin.buildtools.api",
-      "org.jetbrains.kotlin.buildtools.api.arguments",
-      "org.jetbrains.kotlin.buildtools.api.arguments.enums",
-      "org.jetbrains.kotlin.buildtools.api.cri",
-      "org.jetbrains.kotlin.buildtools.api.internal",
-      "org.jetbrains.kotlin.buildtools.api.internal.wrappers",
-      "org.jetbrains.kotlin.buildtools.api.jvm",
-      "org.jetbrains.kotlin.buildtools.api.jvm.operations",
-      "org.jetbrains.kotlin.buildtools.api.trackers",
-      "org.jetbrains.kotlin.buildtools.internal",
       "org.jetbrains.kotlin.builtins",
       "org.jetbrains.kotlin.builtins.functions",
       "org.jetbrains.kotlin.builtins.jvm",
@@ -2197,7 +2224,6 @@
       "org.jetbrains.kotlin.cli.jvm.compiler.legacy.pipeline",
       "org.jetbrains.kotlin.cli.jvm.config",
       "org.jetbrains.kotlin.cli.jvm.index",
-      "org.jetbrains.kotlin.cli.jvm.javac",
       "org.jetbrains.kotlin.cli.jvm.modules",
       "org.jetbrains.kotlin.cli.jvm.plugins",
       "org.jetbrains.kotlin.cli.metadata",
@@ -2268,6 +2294,7 @@
       "org.jetbrains.kotlin.fir.analysis.checkers.config",
       "org.jetbrains.kotlin.fir.analysis.checkers.context",
       "org.jetbrains.kotlin.fir.analysis.checkers.declaration",
+      "org.jetbrains.kotlin.fir.analysis.checkers.declaration.crv",
       "org.jetbrains.kotlin.fir.analysis.checkers.experimental",
       "org.jetbrains.kotlin.fir.analysis.checkers.expression",
       "org.jetbrains.kotlin.fir.analysis.checkers.extra",
@@ -2434,6 +2461,8 @@
       "org.jetbrains.kotlin.ir.expressions",
       "org.jetbrains.kotlin.ir.expressions.impl",
       "org.jetbrains.kotlin.ir.inline",
+      "org.jetbrains.kotlin.ir.inline.checkers",
+      "org.jetbrains.kotlin.ir.inline.diagnostics",
       "org.jetbrains.kotlin.ir.inline.konan",
       "org.jetbrains.kotlin.ir.interpreter",
       "org.jetbrains.kotlin.ir.interpreter.builtins",
@@ -2498,11 +2527,13 @@
       "org.jetbrains.kotlin.kdoc.psi.api",
       "org.jetbrains.kotlin.kdoc.psi.impl",
       "org.jetbrains.kotlin.konan",
+      "org.jetbrains.kotlin.konan.config",
       "org.jetbrains.kotlin.konan.exec",
       "org.jetbrains.kotlin.konan.file",
       "org.jetbrains.kotlin.konan.library",
       "org.jetbrains.kotlin.konan.library.components",
       "org.jetbrains.kotlin.konan.library.impl",
+      "org.jetbrains.kotlin.konan.library.writer",
       "org.jetbrains.kotlin.konan.properties",
       "org.jetbrains.kotlin.konan.target",
       "org.jetbrains.kotlin.konan.util",
@@ -2520,6 +2551,7 @@
       "org.jetbrains.kotlin.library.metadata.impl",
       "org.jetbrains.kotlin.library.metadata.resolver",
       "org.jetbrains.kotlin.library.metadata.resolver.impl",
+      "org.jetbrains.kotlin.library.writer",
       "org.jetbrains.kotlin.load.java",
       "org.jetbrains.kotlin.load.java.components",
       "org.jetbrains.kotlin.load.java.descriptors",
@@ -2718,7 +2750,7 @@
       "org.jetbrains.kotlin.analysis.utils.collections",
       "org.jetbrains.kotlin.analysis.utils.errors",
       "org.jetbrains.kotlin.analysis.utils.printer",
-      "org.jetbrains.kotlin.analysis.utils.relfection",
+      "org.jetbrains.kotlin.analysis.utils.reflection",
       "org.jetbrains.kotlin.analyzer",
       "org.jetbrains.kotlin.analyzer.common",
       "org.jetbrains.kotlin.asJava",
@@ -2793,16 +2825,6 @@
       "org.jetbrains.kotlin.build.report.statistics",
       "org.jetbrains.kotlin.build.report.statistics.file",
       "org.jetbrains.kotlin.build.report.statistics.json",
-      "org.jetbrains.kotlin.buildtools.api",
-      "org.jetbrains.kotlin.buildtools.api.arguments",
-      "org.jetbrains.kotlin.buildtools.api.arguments.enums",
-      "org.jetbrains.kotlin.buildtools.api.cri",
-      "org.jetbrains.kotlin.buildtools.api.internal",
-      "org.jetbrains.kotlin.buildtools.api.internal.wrappers",
-      "org.jetbrains.kotlin.buildtools.api.jvm",
-      "org.jetbrains.kotlin.buildtools.api.jvm.operations",
-      "org.jetbrains.kotlin.buildtools.api.trackers",
-      "org.jetbrains.kotlin.buildtools.internal",
       "org.jetbrains.kotlin.builtins",
       "org.jetbrains.kotlin.builtins.functions",
       "org.jetbrains.kotlin.builtins.jvm",
@@ -2840,7 +2862,6 @@
       "org.jetbrains.kotlin.cli.jvm.compiler.legacy.pipeline",
       "org.jetbrains.kotlin.cli.jvm.config",
       "org.jetbrains.kotlin.cli.jvm.index",
-      "org.jetbrains.kotlin.cli.jvm.javac",
       "org.jetbrains.kotlin.cli.jvm.modules",
       "org.jetbrains.kotlin.cli.jvm.plugins",
       "org.jetbrains.kotlin.cli.metadata",
@@ -2976,7 +2997,6 @@
       "org.jetbrains.kotlin.com.intellij.patterns",
       "org.jetbrains.kotlin.com.intellij.patterns.compiler",
       "org.jetbrains.kotlin.com.intellij.platform.backend.navigation",
-      "org.jetbrains.kotlin.com.intellij.platform.util.coroutines",
       "org.jetbrains.kotlin.com.intellij.pom",
       "org.jetbrains.kotlin.com.intellij.pom.core.impl",
       "org.jetbrains.kotlin.com.intellij.pom.event",
@@ -3121,6 +3141,7 @@
       "org.jetbrains.kotlin.fir.analysis.checkers.config",
       "org.jetbrains.kotlin.fir.analysis.checkers.context",
       "org.jetbrains.kotlin.fir.analysis.checkers.declaration",
+      "org.jetbrains.kotlin.fir.analysis.checkers.declaration.crv",
       "org.jetbrains.kotlin.fir.analysis.checkers.experimental",
       "org.jetbrains.kotlin.fir.analysis.checkers.expression",
       "org.jetbrains.kotlin.fir.analysis.checkers.extra",
@@ -3297,6 +3318,8 @@
       "org.jetbrains.kotlin.ir.expressions",
       "org.jetbrains.kotlin.ir.expressions.impl",
       "org.jetbrains.kotlin.ir.inline",
+      "org.jetbrains.kotlin.ir.inline.checkers",
+      "org.jetbrains.kotlin.ir.inline.diagnostics",
       "org.jetbrains.kotlin.ir.inline.konan",
       "org.jetbrains.kotlin.ir.interpreter",
       "org.jetbrains.kotlin.ir.interpreter.builtins",
@@ -3372,11 +3395,13 @@
       "org.jetbrains.kotlin.kdoc.psi.api",
       "org.jetbrains.kotlin.kdoc.psi.impl",
       "org.jetbrains.kotlin.konan",
+      "org.jetbrains.kotlin.konan.config",
       "org.jetbrains.kotlin.konan.exec",
       "org.jetbrains.kotlin.konan.file",
       "org.jetbrains.kotlin.konan.library",
       "org.jetbrains.kotlin.konan.library.components",
       "org.jetbrains.kotlin.konan.library.impl",
+      "org.jetbrains.kotlin.konan.library.writer",
       "org.jetbrains.kotlin.konan.properties",
       "org.jetbrains.kotlin.konan.target",
       "org.jetbrains.kotlin.konan.util",
@@ -3401,6 +3426,7 @@
       "org.jetbrains.kotlin.library.metadata.impl",
       "org.jetbrains.kotlin.library.metadata.resolver",
       "org.jetbrains.kotlin.library.metadata.resolver.impl",
+      "org.jetbrains.kotlin.library.writer",
       "org.jetbrains.kotlin.load.java",
       "org.jetbrains.kotlin.load.java.components",
       "org.jetbrains.kotlin.load.java.descriptors",
@@ -3947,9 +3973,6 @@
       ],
       "org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar": [
         "org.jetbrains.kotlin.kapt.KaptCompilerPluginRegistrar"
-      ],
-      "org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar": [
-        "org.jetbrains.kotlin.kapt.KaptComponentRegistrar"
       ]
     },
     "org.jetbrains.kotlin:kotlin-annotation-processing-embeddable": {
@@ -3958,12 +3981,15 @@
       ],
       "org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar": [
         "org.jetbrains.kotlin.kapt.KaptCompilerPluginRegistrar"
-      ],
-      "org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar": [
-        "org.jetbrains.kotlin.kapt.KaptComponentRegistrar"
       ]
     },
     "org.jetbrains.kotlin:kotlin-build-tools-impl": {
+      "kotlin.metadata.internal.extensions.MetadataExtensions": [
+        "kotlin.metadata.jvm.internal.JvmMetadataExtensions"
+      ],
+      "org.jetbrains.kotlin.abi.tools.AbiToolsFactory": [
+        "org.jetbrains.kotlin.abi.tools.impl.AbiToolsFactoryImpl"
+      ],
       "org.jetbrains.kotlin.buildtools.api.CompilationService": [
         "org.jetbrains.kotlin.buildtools.internal.CompilationServiceProxy"
       ],
diff --git a/src/main/kotlin/io/bazel/kotlin/builder/tasks/jvm/btapi/BtapiCompiler.kt b/src/main/kotlin/io/bazel/kotlin/builder/tasks/jvm/btapi/BtapiCompiler.kt
index e107c76..a7cf13f 100644
--- a/src/main/kotlin/io/bazel/kotlin/builder/tasks/jvm/btapi/BtapiCompiler.kt
+++ b/src/main/kotlin/io/bazel/kotlin/builder/tasks/jvm/btapi/BtapiCompiler.kt
@@ -182,20 +182,29 @@
         fieldName = "kotlin_language_version",
       )
 
-    val classpath =
-      BtapiClasspathResolver
-        .computeClasspath(task)
-        .map { File(it).absolutePath }
-    if (classpath.isNotEmpty()) {
-      args[JvmCompilerArguments.CLASSPATH] = classpath.joinToString(File.pathSeparator)
-    }
+    val pathArgumentStrings = mutableListOf<String>()
+    BtapiClasspathResolver
+      .computeClasspath(task)
+      .map { Path.of(it).toAbsolutePath().toString() }
+      .takeIf { it.isNotEmpty() }
+      ?.let {
+        pathArgumentStrings.add("-classpath")
+        pathArgumentStrings.add(it.joinToString(File.pathSeparator))
+      }
 
-    // Friend paths (for internal visibility)
-    if (task.info.friendPathsList.isNotEmpty()) {
-      args[JvmCompilerArguments.X_FRIEND_PATHS] =
-        task.info.friendPathsList
-          .map { File(it).absolutePath }
-          .toTypedArray()
+    task.info.friendPathsList
+      .map { Path.of(it).toAbsolutePath().toString() }
+      .takeIf { it.isNotEmpty() }
+      ?.let {
+        pathArgumentStrings.add("-Xfriend-paths=${it.joinToString(File.pathSeparator)}")
+      }
+
+    if (pathArgumentStrings.isNotEmpty()) {
+      try {
+        args.applyArgumentStrings(pathArgumentStrings)
+      } catch (e: CompilerArgumentsParseException) {
+        throw IllegalArgumentException("Invalid classpath or friend path arguments: ${e.message}", e)
+      }
     }
   }
 
diff --git a/src/main/kotlin/io/bazel/kotlin/plugin/jdeps/BaseJdepsGenExtension.kt b/src/main/kotlin/io/bazel/kotlin/plugin/jdeps/BaseJdepsGenExtension.kt
index a000823..33b30d4 100644
--- a/src/main/kotlin/io/bazel/kotlin/plugin/jdeps/BaseJdepsGenExtension.kt
+++ b/src/main/kotlin/io/bazel/kotlin/plugin/jdeps/BaseJdepsGenExtension.kt
@@ -99,7 +99,7 @@
   }
 
   private fun doWriteJdeps(
-    directDeps: MutableList<String>,
+    directDeps: List<String>,
     targetLabel: String,
     explicitDeps: Map<String, List<String>>,
     implicitClassesCanonicalPaths: Set<String>,
@@ -144,7 +144,7 @@
   private fun doStrictDeps(
     compilerConfiguration: CompilerConfiguration,
     targetLabel: String,
-    directDeps: MutableList<String>,
+    directDeps: List<String>,
     explicitDeps: Map<String, List<String>>,
   ) {
     when (compilerConfiguration.getNotNull(JdepsGenConfigurationKeys.STRICT_KOTLIN_DEPS)) {
diff --git a/src/main/starlark/core/repositories/versions.bzl b/src/main/starlark/core/repositories/versions.bzl
index 39c820c..88567d5 100644
--- a/src/main/starlark/core/repositories/versions.bzl
+++ b/src/main/starlark/core/repositories/versions.bzl
@@ -67,11 +67,11 @@
     ),
     # Used for bootstrapping only
     KOTLIN_CURRENT_COMPILER_RELEASE = version(
-        version = "2.3.21",
+        version = "2.4.0-RC",
         url_templates = [
             "https://github.com/JetBrains/kotlin/releases/download/v{version}/kotlin-compiler-{version}.zip",
         ],
-        sha256 = "a8cfc1d62cd4d0de4d04f42575e40135bd620588c17d568a20eb9c7c259af14f",
+        sha256 = "5c3699980e09a65328d56a16aa8896ba0a421ce97865ca287c623897bf20a98e",
     ),
     KSP_CURRENT_COMPILER_PLUGIN_RELEASE = version(
         version = "2.3.7",
@@ -81,11 +81,11 @@
         sha256 = "9c6df9fc16708ba3e6a2cc0040a9b8520710b7d8ef4d6f79dca5092d256535d1",
     ),
     KOTLIN_BUILD_TOOLS_IMPL = version(
-        version = "2.3.21",
+        version = "2.4.0-RC",
         url_templates = [
             "https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-impl/{version}/kotlin-build-tools-impl-{version}.jar",
         ],
-        sha256 = "2cd70396404a0e43c05aaf79a8b35ff3a8ff2e296aedf770f6e5923fbfacae3b",
+        sha256 = "94a2c2c82d2cfa677725e73771f271d03c3db2616728b1c75f62cb6851da9383",
     ),
     RULES_ANDROID = version(
         version = "0.7.0",
diff --git a/src/test/kotlin/io/bazel/kotlin/builder/tasks/jvm/KotlinBuilderBuildTest.kt b/src/test/kotlin/io/bazel/kotlin/builder/tasks/jvm/KotlinBuilderBuildTest.kt
index 838afde..d8ab87d 100644
--- a/src/test/kotlin/io/bazel/kotlin/builder/tasks/jvm/KotlinBuilderBuildTest.kt
+++ b/src/test/kotlin/io/bazel/kotlin/builder/tasks/jvm/KotlinBuilderBuildTest.kt
@@ -18,14 +18,15 @@
 
 import com.google.common.truth.Truth.assertThat
 import io.bazel.kotlin.builder.Deps
+import io.bazel.kotlin.builder.KotlinAbstractTestBuilder
 import io.bazel.kotlin.builder.tasks.KotlinBuilder
+import io.bazel.kotlin.builder.tasks.jvm.btapi.KotlinBtapiJvmTaskExecutor
 import io.bazel.kotlin.builder.toolchain.KotlinToolchain
 import io.bazel.worker.Status
 import io.bazel.worker.WorkerContext
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.junit.runners.JUnit4
-import java.io.File
 import java.nio.file.Files
 
 @RunWith(JUnit4::class)
@@ -41,7 +42,7 @@
     WorkerContext.run(named = "test") {
       doTask("build", sandboxDir = root) { taskContext ->
         exitCode =
-          KotlinBuilder(jvmTaskExecutor()).build(
+          KotlinBuilder(jvmTaskExecutor(), KotlinBtapiJvmTaskExecutor()).build(
             taskContext,
             args =
               listOf(
@@ -83,35 +84,10 @@
   }
 
   private fun jvmTaskExecutor(): KotlinJvmTaskExecutor {
-    val toolchain =
-      KotlinToolchain.createToolchain(
-        File(Deps.Dep.fromLabel("//kotlin/compiler:kotlin-compiler").singleCompileJar()),
-        File(Deps.Dep.fromLabel("@kotlin_build_tools_impl//file").singleCompileJar()),
-        File(
-          Deps.Dep
-            .fromLabel("//src/main/kotlin/io/bazel/kotlin/compiler:compiler.jar")
-            .singleCompileJar(),
-        ),
-        File(Deps.Dep.fromLabel("//kotlin/compiler:jvm-abi-gen").singleCompileJar()),
-        File(Deps.Dep.fromLabel("//src/main/kotlin:skip-code-gen").singleCompileJar()),
-        File(Deps.Dep.fromLabel("//src/main/kotlin:jdeps-gen").singleCompileJar()),
-        File(
-          Deps.Dep
-            .fromLabel("//kotlin/compiler:kotlin-annotation-processing")
-            .singleCompileJar(),
-        ),
-        File(Deps.Dep.fromLabel("@kotlinx_serialization_core_jvm//file").singleCompileJar()),
-        File(Deps.Dep.fromLabel("@kotlinx_serialization_json//file").singleCompileJar()),
-        File(Deps.Dep.fromLabel("@kotlinx_serialization_json_jvm//file").singleCompileJar()),
-      )
+    val toolchain = KotlinAbstractTestBuilder.toolchainForTest()
     return KotlinJvmTaskExecutor(
       KotlinToolchain.KotlincInvokerBuilder(toolchain),
-      InternalCompilerPlugins(
-        toolchain.jvmAbiGen,
-        toolchain.skipCodeGen,
-        toolchain.kapt3Plugin,
-        toolchain.jdepsGen,
-      ),
+      KotlinAbstractTestBuilder.internalPluginsForTest(),
     )
   }
 }