buildscript {
  repositories {
    google()
    jcenter()
  }
  dependencies {
    classpath <warning>'com.android.tools.build:gradle:4.2.0'</warning>
  }
}

allprojects {
  repositories {
    jcenter()
  }
}
