// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath (
                'com.android.tools.build:gradle:1.5.0',
                'com.github.dcendents:android-maven-gradle-plugin:1.3',
                'com.jakewharton.sdkmanager:gradle-plugin:0.12.0',
                'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6',
                'me.tatarka:gradle-retrolambda:3.2.4'
        )

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        mavenCentral()
    }
}
