distriqt / ANE-Adverts-Mediation

Mediation adapters for the Adverts ANE
https://airnativeextensions.com/extension/com.distriqt.Adverts
12 stars 0 forks source link

App Crashing! #50

Closed Shaunmax closed 1 year ago

Shaunmax commented 2 years ago

Hello,

After updating the ane my app is crashing :- please find the crash log below : -

10-18 17:13:03.030 9566 9566 D AndroidRuntime: Shutting down VM 10-18 17:13:03.031 9566 9566 E AndroidRuntime: FATAL EXCEPTION: main 10-18 17:13:03.031 9566 9566 E AndroidRuntime: Process: air.com.company.appname, PID: 9566 10-18 17:13:03.031 9566 9566 E AndroidRuntime: java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/jvm/internal/Intrinsics; 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at com.adcolony.sdk.c1.d(SourceFile:3) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at com.adcolony.sdk.j.i(SourceFile:7) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at com.adcolony.sdk.l$f.a(SourceFile:1) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at com.adcolony.sdk.l.b(Unknown Source:2) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at com.adcolony.sdk.i0$a.run(SourceFile:15) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at com.adcolony.sdk.z0.b(SourceFile:35) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at com.adcolony.sdk.i0.a(SourceFile:21) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at com.adcolony.sdk.k.L(SourceFile:1) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at com.adcolony.sdk.k.g(SourceFile:1) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at com.adcolony.sdk.k$o.run(SourceFile:1) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:938) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:226) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at android.os.Looper.loop(Looper.java:313) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:8663) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:567) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "kotlin.jvm.internal.Intrinsics" on path: DexPathList[[zip file "/data/app/l2-MWAGWlBLsvqpRzGN12Q==/air.com.company.appname-byViekFzCc_N0sM5WKh5Sg==/base.apk"],nativeLibraryDirectories=[/data/app/l2-MWAGWlBLsvqpRzGN12Q==/air.com.company.appname-byViekFzCc_N0sM5WKh5Sg==/lib/arm64, /data/app/~~l2-MWAGWlBLsvqpRzGN12Q==/air.com.company.appname-byViekFzCc_N0sM5WKh5Sg==/base.apk!/lib/arm64-v8a, /system/lib64, /system/system_ext/lib64]] 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:379) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:312) 10-18 17:13:03.031 9566 9566 E AndroidRuntime: ... 18 more

Shaunmax commented 2 years ago

Here is application descriptor file : -

<?xml version="1.0" encoding="utf-8" ?>
<application xmlns="http://ns.adobe.com/air/application/33.1" >
  <id>com.company.appname</id>
  <versionNumber>0.0.1</versionNumber>
  <filename>AppName</filename>
  <name>App Name</name>
  <initialWindow>
    <content>AppName.swf</content>
    <depthAndStencil>true</depthAndStencil>
    <systemChrome>standard</systemChrome>
    <transparent>false</transparent>
    <visible>true</visible>
    <fullScreen>true</fullScreen>
    <autoOrients>true</autoOrients>
    <aspectRatio>landscape</aspectRatio>
    <renderMode>direct</renderMode>
    <requestedDisplayResolution>high</requestedDisplayResolution>
  </initialWindow>
  <icon>
    <image36x36>icons/Icon-36.png</image36x36>
    <image48x48>icons/Icon-48.png</image48x48>
    <image72x72>icons/Icon-72.png</image72x72>
    <image96x96>icons/Icon-96.png</image96x96>
    <image144x144>icons/Icon-144.png</image144x144>
    <image192x192>icons/Icon-192.png</image192x192>
    <image512x512>icons/Icon-512.png</image512x512>
  </icon>
  <android>
    <containsVideo>true</containsVideo>
    <manifestAdditions><![CDATA[<manifest android:installLocation="auto" >
  <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="30"/>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  <!-- Include required permissions for Google Mobile Ads to run -->
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
  <!-- Android package visibility setting -->
  <queries>
    <!-- For browser content -->
    <intent>
      <action android:name="android.intent.action.VIEW"/>
      <category android:name="android.intent.category.BROWSABLE"/>
      <data android:scheme="https"/>
    </intent>
    <!-- End of browser content -->
    <!-- For CustomTabsService -->
    <intent>
      <action android:name="android.support.customtabs.action.CustomTabsService"/>
    </intent>
    <!-- End of CustomTabsService -->
    <package android:name="com.android.vending"/>
    <package android:name="com.amazon.venezia"/>
    <package android:name="com.sec.android.app.samsungapps"/>
    <package android:name="com.huawei.appmarket"/>
  </queries>
  <uses-permission android:name="com.android.vending.BILLING"/>
  <!-- Permission will be merged into the manifest of the hosting app. -->
  <!-- Is required to launch foreground extraction service for targetSdkVersion 28+. -->
  <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
  <uses-permission android:name="android.permission.WAKE_LOCK"/>
  <uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"/>
  <!-- Required by older versions of Google Play services to create IID tokens -->
  <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  <!-- Optional: AUTO START -->
  <!-- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> -->
  <!-- <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> -->
  <!-- To control the screen brightness setting -->
  <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
  <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
  <application android:appComponentFactory="androidx.core.app.CoreComponentFactory">
    <meta-data android:name="android.max_aspect" android:value="2.5"/>
    <meta-data android:name="android.notch_support" android:value="true"/>
    <service android:name="androidx.room.MultiInstanceInvalidationService" android:directBootAware="true" android:exported="false"/>
    <provider android:name="androidx.startup.InitializationProvider" android:authorities="air.com.company.appname.androidx-startup" android:exported="false">
      <meta-data android:name="androidx.lifecycle.ProcessLifecycleInitializer" android:value="androidx.startup"/>
      <meta-data android:name="androidx.work.WorkManagerInitializer" android:value="androidx.startup"/>
    </provider>
    <!-- Include the AdActivity and InAppPurchaseActivity configChanges and themes. -->
    <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:exported="false" android:theme="@android:style/Theme.Translucent"/>
    <provider android:name="com.google.android.gms.ads.MobileAdsInitProvider" android:authorities="air.com.company.appname.mobileadsinitprovider" android:exported="false" android:initOrder="100"/>
    <service android:name="com.google.android.gms.ads.AdService" android:enabled="true" android:exported="false"/>
    <activity android:name="com.distriqt.extension.inappbilling.activities.ProductViewActivity" android:exported="false" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
    <meta-data android:name="com.google.android.play.billingclient.version" android:value="5.0.0"/>
    <activity android:name="com.android.billingclient.api.ProxyBillingActivity" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:exported="false" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
    <!-- The activities will be merged into the manifest of the hosting app. -->
    <activity android:name="com.google.android.play.core.missingsplits.PlayCoreMissingSplitsActivity" android:enabled="false" android:exported="false" android:launchMode="singleInstance" android:process=":playcore_missing_splits_activity" android:stateNotNeeded="true"/>
    <activity android:name="com.google.android.play.core.common.PlayCoreDialogWrapperActivity" android:exported="false" android:stateNotNeeded="true" android:theme="@style/Theme.PlayCore.Transparent"/>
    <!-- The services will be merged into the manifest of the hosting app. -->
    <service android:name="com.google.android.play.core.assetpacks.AssetPackExtractionService" android:enabled="false" android:exported="true">
      <meta-data android:name="com.google.android.play.core.assetpacks.versionCode" android:value="11001"/>
    </service>
    <service android:name="com.google.android.play.core.assetpacks.ExtractionForegroundService" android:enabled="false" android:exported="false"/>
    <meta-data android:name="google_analytics_automatic_screen_reporting_enabled" android:value="false"/>
    <receiver android:name="com.google.android.gms.measurement.AppMeasurementReceiver" android:enabled="true" android:exported="false"/>
    <service android:name="com.google.android.gms.measurement.AppMeasurementService" android:enabled="true" android:exported="false"/>
    <service android:name="com.google.android.gms.measurement.AppMeasurementJobService" android:enabled="true" android:exported="false" android:permission="android.permission.BIND_JOB_SERVICE"/>
    <service android:name="com.google.firebase.components.ComponentDiscoveryService" android:directBootAware="true" android:exported="false">
      <meta-data android:name="com.google.firebase.components:com.google.firebase.analytics.connector.internal.AnalyticsConnectorRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
      <meta-data android:name="com.google.firebase.components:com.google.firebase.storage.StorageRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
      <meta-data android:name="com.google.firebase.components:com.google.firebase.auth.FirebaseAuthRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
      <meta-data android:name="com.google.firebase.components:com.google.firebase.firestore.FirestoreRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
      <meta-data android:name="com.google.firebase.components:com.google.firebase.installations.FirebaseInstallationsRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
      <meta-data android:name="com.google.firebase.components:com.google.firebase.abt.component.AbtRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
      <meta-data android:name="com.google.firebase.components:com.google.firebase.iid.Registrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
      <meta-data android:name="com.google.firebase.components:com.google.firebase.datatransport.TransportRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
      <meta-data android:name="com.google.firebase.components:com.google.firebase.database.DatabaseRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
      <meta-data android:name="com.google.firebase.components:com.google.firebase.remoteconfig.RemoteConfigRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
    </service>
    <activity android:name="com.google.android.gms.common.api.GoogleApiActivity" android:exported="false" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
    <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
    <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-XXXXXXXXX~YYYYYYYYYY"/>
    <!-- AUTO START and ALARM MANAGER -->
    <receiver android:name="com.distriqt.extension.application.receivers.ApplicationStartupReceiver" android:enabled="true" android:exported="false" android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
      <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
        <action android:name="android.intent.action.QUICKBOOT_POWERON"/>
        <action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/>
        <category android:name="android.intent.category.DEFAULT"/>
      </intent-filter>
    </receiver>
    <!-- AUTHORISATION -->
    <activity android:name="com.distriqt.extension.application.permissions.AuthorisationActivity" android:exported="false" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
    <!-- ALARM MANAGER -->
    <receiver android:name="com.distriqt.extension.application.alarms.AlarmReceiver" android:enabled="true" android:exported="false"/>
    <activity android:name="com.distriqt.extension.application.alarms.AlarmActivity" android:exported="false" android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
    <!-- SETTINGS -->
    <activity android:name="com.distriqt.extension.application.settings.SettingsActivity" android:exported="false" android:label="Settings"/>
    <activity android:name="com.adcolony.sdk.AdColonyInterstitialActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="false" android:hardwareAccelerated="true"/>
    <activity android:name="com.adcolony.sdk.AdColonyAdViewActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:hardwareAccelerated="true"/>
    <service android:name="androidx.work.impl.background.systemalarm.SystemAlarmService" android:directBootAware="false" android:enabled="@bool/enable_system_alarm_service_default" android:exported="false"/>
    <service android:name="androidx.work.impl.background.systemjob.SystemJobService" android:directBootAware="false" android:enabled="@bool/enable_system_job_service_default" android:exported="true" android:permission="android.permission.BIND_JOB_SERVICE"/>
    <service android:name="androidx.work.impl.foreground.SystemForegroundService" android:directBootAware="false" android:enabled="@bool/enable_system_foreground_service_default" android:exported="false"/>
    <receiver android:name="androidx.work.impl.utils.ForceStopRunnable$BroadcastReceiver" android:directBootAware="false" android:enabled="true" android:exported="false"/>
    <receiver android:name="androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryChargingProxy" android:directBootAware="false" android:enabled="false" android:exported="false">
      <intent-filter>
        <action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
        <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
      </intent-filter>
    </receiver>
    <receiver android:name="androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryNotLowProxy" android:directBootAware="false" android:enabled="false" android:exported="false">
      <intent-filter>
        <action android:name="android.intent.action.BATTERY_OKAY"/>
        <action android:name="android.intent.action.BATTERY_LOW"/>
      </intent-filter>
    </receiver>
    <receiver android:name="androidx.work.impl.background.systemalarm.ConstraintProxy$StorageNotLowProxy" android:directBootAware="false" android:enabled="false" android:exported="false">
      <intent-filter>
        <action android:name="android.intent.action.DEVICE_STORAGE_LOW"/>
        <action android:name="android.intent.action.DEVICE_STORAGE_OK"/>
      </intent-filter>
    </receiver>
    <receiver android:name="androidx.work.impl.background.systemalarm.ConstraintProxy$NetworkStateProxy" android:directBootAware="false" android:enabled="false" android:exported="false">
      <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
      </intent-filter>
    </receiver>
    <receiver android:name="androidx.work.impl.background.systemalarm.RescheduleReceiver" android:directBootAware="false" android:enabled="false" android:exported="false">
      <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
        <action android:name="android.intent.action.TIME_SET"/>
        <action android:name="android.intent.action.TIMEZONE_CHANGED"/>
      </intent-filter>
    </receiver>
    <receiver android:name="androidx.work.impl.background.systemalarm.ConstraintProxyUpdateReceiver" android:directBootAware="false" android:enabled="@bool/enable_system_alarm_service_default" android:exported="false">
      <intent-filter>
        <action android:name="androidx.work.impl.background.systemalarm.UpdateProxies"/>
      </intent-filter>
    </receiver>
    <receiver android:name="androidx.work.impl.diagnostics.DiagnosticsReceiver" android:directBootAware="false" android:enabled="true" android:exported="true" android:permission="android.permission.DUMP">
      <intent-filter>
        <action android:name="androidx.work.diagnostics.REQUEST_DIAGNOSTICS"/>
      </intent-filter>
    </receiver>
    <service android:name="com.google.android.datatransport.runtime.scheduling.jobscheduling.JobInfoSchedulerService" android:exported="false" android:permission="android.permission.BIND_JOB_SERVICE"/>
    <receiver android:name="com.google.android.datatransport.runtime.scheduling.jobscheduling.AlarmManagerSchedulerBroadcastReceiver" android:exported="false"/>
    <service android:name="com.google.android.datatransport.runtime.backends.TransportBackendDiscovery" android:exported="false">
      <meta-data android:name="backend:com.google.android.datatransport.cct.CctBackendFactory" android:value="cct"/>
    </service>
    <activity android:name="com.google.firebase.auth.internal.GenericIdpActivity" android:excludeFromRecents="true" android:exported="true" android:launchMode="singleTask" android:theme="@android:style/Theme.Translucent.NoTitleBar">
      <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
        <data android:host="firebase.auth" android:path="/" android:scheme="genericidp"/>
      </intent-filter>
    </activity>
    <activity android:name="com.google.firebase.auth.internal.RecaptchaActivity" android:excludeFromRecents="true" android:exported="true" android:launchMode="singleTask" android:theme="@android:style/Theme.Translucent.NoTitleBar">
      <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
        <data android:host="firebase.auth" android:path="/" android:scheme="recaptcha"/>
      </intent-filter>
    </activity>
    <service android:name="com.google.firebase.auth.api.fallback.service.FirebaseAuthFallbackService" android:enabled="true" android:exported="false">
      <intent-filter>
        <action android:name="com.google.firebase.auth.api.gms.service.START"/>
        <category android:name="android.intent.category.DEFAULT"/>
      </intent-filter>
    </service>
    <provider android:name="com.google.firebase.provider.FirebaseInitProvider" android:authorities="air.com.company.appname.firebaseinitprovider" android:directBootAware="true" android:exported="false" android:initOrder="100"/>
  </application>
</manifest>
]]></manifestAdditions>
  </android>
  <resdir>res</resdir>
  <iPhone>
    <requestedDisplayResolution>high</requestedDisplayResolution>
    <InfoAdditions><![CDATA[
<key>NSUserTrackingUsageDescription</key>
<string>Allows us to deliver personalized ads for you.</string>
<key>FirebaseAppDelegateProxyEnabled</key>
<false/>
<key>FirebaseAutomaticScreenReportingEnabled</key>
<false/>
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-XXXXXXXXXXXXXXXX~YYYYYYYYYYY</string>
<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
  <key>NSAllowsArbitraryLoadsForMedia</key>
  <true/>
  <key>NSAllowsArbitraryLoadsInWebContent</key>
  <true/>
</dict>
<key>SKAdNetworkItems</key>
<array>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>cstr6suwn9.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4pfyvq9l8r.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>6g9af3uyq4.skadnetwork</string>
  </dict>
</array>]]></InfoAdditions>
    <Entitlements/>
  </iPhone>
  <extensions>
    <extensionID>com.distriqt.IDFA</extensionID>
    <extensionID>androidx.core</extensionID>
    <extensionID>com.distriqt.playservices.Base</extensionID>
    <extensionID>com.distriqt.playservices.AdsIdentifier</extensionID>
    <extensionID>com.distriqt.Core</extensionID>
    <extensionID>com.distriqt.Application</extensionID>
    <extensionID>com.digitalstrawberry.nativeExtensions.ANESounds</extensionID>
    <extensionID>com.distriqt.ZipUtils</extensionID>
    <extensionID>io.grpc</extensionID>
    <extensionID>com.distriqt.Firebase</extensionID>
    <extensionID>com.google.protobuflite</extensionID>
    <extensionID>androidx.browser</extensionID>
    <extensionID>com.distriqt.firebase.Storage</extensionID>
    <extensionID>com.distriqt.square.okhttp</extensionID>
    <extensionID>com.google.android.datatransport</extensionID>
    <extensionID>com.distriqt.firebase.Auth</extensionID>
    <extensionID>com.distriqt.firebase.Firestore</extensionID>
    <extensionID>com.google.firebase.core</extensionID>
    <extensionID>com.distriqt.playservices.CloudMessaging</extensionID>
    <extensionID>com.distriqt.firebase.Database</extensionID>
    <extensionID>com.distriqt.firebase.RemoteConfig</extensionID>
    <extensionID>com.google.guava</extensionID>
    <extensionID>androidx.room</extensionID>
    <extensionID>com.distriqt.playservices.Ads</extensionID>
    <extensionID>androidx.vectordrawable</extensionID>
    <extensionID>com.distriqt.Adverts</extensionID>
    <extensionID>com.google.code.gson</extensionID>
    <extensionID>androidx.appcompat</extensionID>
    <extensionID>androidx.work</extensionID>
    <extensionID>androidx.constraintlayout</extensionID>
    <extensionID>com.distriqt.InAppBilling</extensionID>
    <extensionID>com.google.android.play</extensionID>
    <extensionID>com.distriqt.admob.AdColony</extensionID>
    <extensionID>com.distriqt.playservices.AppSet</extensionID>
  </extensions>
</application>
marchbold commented 2 years ago

Try adding the kotlin extension. Seems we may have missed them adding this dependency

apm install com.jetbrains.kotlin

I'll make sure the package gets updated.