1*7a7160feSAndroid Build Coastguard Workerpackage { 2*7a7160feSAndroid Build Coastguard Worker default_applicable_licenses: ["external_kotlinx.coroutines_license"], 3*7a7160feSAndroid Build Coastguard Worker default_visibility: ["//visibility:private"], 4*7a7160feSAndroid Build Coastguard Worker} 5*7a7160feSAndroid Build Coastguard Worker 6*7a7160feSAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of 7*7a7160feSAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect 8*7a7160feSAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct. 9*7a7160feSAndroid Build Coastguard Worker// 10*7a7160feSAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory. 11*7a7160feSAndroid Build Coastguard Worker// 12*7a7160feSAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses, 13*7a7160feSAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the 14*7a7160feSAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed. 15*7a7160feSAndroid Build Coastguard Worker// 16*7a7160feSAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private" 17*7a7160feSAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be 18*7a7160feSAndroid Build Coastguard Worker// used in the current project. 19*7a7160feSAndroid Build Coastguard Worker// 20*7a7160feSAndroid Build Coastguard Worker// large-scale-change included anything that looked like it might be a license 21*7a7160feSAndroid Build Coastguard Worker// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. 22*7a7160feSAndroid Build Coastguard Worker// 23*7a7160feSAndroid Build Coastguard Worker// Please consider removing redundant or irrelevant files from 'license_text:'. 24*7a7160feSAndroid Build Coastguard Worker// See: http://go/android-license-faq 25*7a7160feSAndroid Build Coastguard Workerlicense { 26*7a7160feSAndroid Build Coastguard Worker name: "external_kotlinx.coroutines_license", 27*7a7160feSAndroid Build Coastguard Worker visibility: [":__subpackages__"], 28*7a7160feSAndroid Build Coastguard Worker license_kinds: [ 29*7a7160feSAndroid Build Coastguard Worker "SPDX-license-identifier-Apache-2.0", 30*7a7160feSAndroid Build Coastguard Worker "SPDX-license-identifier-MIT", 31*7a7160feSAndroid Build Coastguard Worker ], 32*7a7160feSAndroid Build Coastguard Worker license_text: [ 33*7a7160feSAndroid Build Coastguard Worker "LICENSE", 34*7a7160feSAndroid Build Coastguard Worker "LICENSE.txt", 35*7a7160feSAndroid Build Coastguard Worker "license/**/*", 36*7a7160feSAndroid Build Coastguard Worker ], 37*7a7160feSAndroid Build Coastguard Worker} 38*7a7160feSAndroid Build Coastguard Worker 39*7a7160feSAndroid Build Coastguard Worker// Upstream compiles this lib against the JVM bootclasspath; compiling against the Android 40*7a7160feSAndroid Build Coastguard Worker// bootclasspath will fail. Work around this by defining this as a java_library_host, and use 41*7a7160feSAndroid Build Coastguard Worker// java_host_for_device to expose it to Android targets. 42*7a7160feSAndroid Build Coastguard Workerjava_library_host { 43*7a7160feSAndroid Build Coastguard Worker name: "kotlinx_coroutines-host", 44*7a7160feSAndroid Build Coastguard Worker srcs: ["kotlinx-coroutines-core/jvm/src/**/*.kt"], 45*7a7160feSAndroid Build Coastguard Worker common_srcs: [ 46*7a7160feSAndroid Build Coastguard Worker "kotlinx-coroutines-core/common/src/**/*.kt", 47*7a7160feSAndroid Build Coastguard Worker "kotlinx-coroutines-core/concurrent/src/**/*.kt", 48*7a7160feSAndroid Build Coastguard Worker ], 49*7a7160feSAndroid Build Coastguard Worker exclude_srcs: [ 50*7a7160feSAndroid Build Coastguard Worker "kotlinx-coroutines-core/jvm/src/test_/TestCoroutineContext.kt", 51*7a7160feSAndroid Build Coastguard Worker ], 52*7a7160feSAndroid Build Coastguard Worker java_resource_dirs: ["kotlinx-coroutines-core/jvm/resources"], 53*7a7160feSAndroid Build Coastguard Worker // See https://github.com/Kotlin/kotlinx.coroutines#avoiding-including-the-debug-infrastructure-in-the-resulting-apk 54*7a7160feSAndroid Build Coastguard Worker // This file contains `kotlin.coroutines.jvm.internal.DebugProbesKt` class and is only used 55*7a7160feSAndroid Build Coastguard Worker // by the debugger. 56*7a7160feSAndroid Build Coastguard Worker // This cause issues when generating coverage as Jacoco will fail with 57*7a7160feSAndroid Build Coastguard Worker // `Caused by: java.lang.IllegalStateException: Can't add different class with same name: kotlin/coroutines/jvm/internal/DebugProbesKt` 58*7a7160feSAndroid Build Coastguard Worker // See b/291743544 for more details 59*7a7160feSAndroid Build Coastguard Worker exclude_java_resources: ["kotlinx-coroutines-core/jvm/resources/DebugProbesKt.bin"], 60*7a7160feSAndroid Build Coastguard Worker static_libs: [ 61*7a7160feSAndroid Build Coastguard Worker "kotlinx_atomicfu", 62*7a7160feSAndroid Build Coastguard Worker ], 63*7a7160feSAndroid Build Coastguard Worker libs: [ 64*7a7160feSAndroid Build Coastguard Worker "annotations", // for android.annotation.SuppressLint 65*7a7160feSAndroid Build Coastguard Worker "kotlinx-coroutines-android-annotation-stubs", 66*7a7160feSAndroid Build Coastguard Worker ], 67*7a7160feSAndroid Build Coastguard Worker kotlincflags: [ 68*7a7160feSAndroid Build Coastguard Worker "-Xmulti-platform", 69*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlin.RequiresOptIn", 70*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlin.experimental.ExperimentalTypeInference", 71*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlin.ExperimentalMultiplatform", 72*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlinx.coroutines.DelicateCoroutinesApi", 73*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", 74*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlinx.coroutines.ObsoleteCoroutinesApi", 75*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlinx.coroutines.InternalCoroutinesApi", 76*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlinx.coroutines.FlowPreview", 77*7a7160feSAndroid Build Coastguard Worker ], 78*7a7160feSAndroid Build Coastguard Worker apex_available: [ 79*7a7160feSAndroid Build Coastguard Worker "//apex_available:platform", 80*7a7160feSAndroid Build Coastguard Worker "//apex_available:anyapex", 81*7a7160feSAndroid Build Coastguard Worker ], 82*7a7160feSAndroid Build Coastguard Worker} 83*7a7160feSAndroid Build Coastguard Worker 84*7a7160feSAndroid Build Coastguard Worker// Expose the host library to Android targets. This is generally an unsafe operation; in using 85*7a7160feSAndroid Build Coastguard Worker// this, we are asserting that any host-only code will never be evaluated at runtime on Android. 86*7a7160feSAndroid Build Coastguard Worker// If we're wrong, we will see runtime exceptions. 87*7a7160feSAndroid Build Coastguard Workerjava_host_for_device { 88*7a7160feSAndroid Build Coastguard Worker name: "kotlinx_coroutines-device", 89*7a7160feSAndroid Build Coastguard Worker libs: ["kotlinx_coroutines-host"], 90*7a7160feSAndroid Build Coastguard Worker} 91*7a7160feSAndroid Build Coastguard Worker 92*7a7160feSAndroid Build Coastguard Worker// Combine host and Android libs back into a single target. 93*7a7160feSAndroid Build Coastguard Workerjava_library { 94*7a7160feSAndroid Build Coastguard Worker name: "kotlinx_coroutines", 95*7a7160feSAndroid Build Coastguard Worker host_supported: true, 96*7a7160feSAndroid Build Coastguard Worker sdk_version: "core_current", 97*7a7160feSAndroid Build Coastguard Worker min_sdk_version: "28", 98*7a7160feSAndroid Build Coastguard Worker target: { 99*7a7160feSAndroid Build Coastguard Worker host: { 100*7a7160feSAndroid Build Coastguard Worker static_libs: ["kotlinx_coroutines-host"], 101*7a7160feSAndroid Build Coastguard Worker }, 102*7a7160feSAndroid Build Coastguard Worker android: { 103*7a7160feSAndroid Build Coastguard Worker static_libs: ["kotlinx_coroutines-device"], 104*7a7160feSAndroid Build Coastguard Worker }, 105*7a7160feSAndroid Build Coastguard Worker }, 106*7a7160feSAndroid Build Coastguard Worker apex_available: [ 107*7a7160feSAndroid Build Coastguard Worker "//apex_available:platform", 108*7a7160feSAndroid Build Coastguard Worker "//apex_available:anyapex", 109*7a7160feSAndroid Build Coastguard Worker ], 110*7a7160feSAndroid Build Coastguard Worker visibility: ["//visibility:public"], 111*7a7160feSAndroid Build Coastguard Worker} 112*7a7160feSAndroid Build Coastguard Worker 113*7a7160feSAndroid Build Coastguard Workerjava_library { 114*7a7160feSAndroid Build Coastguard Worker name: "kotlinx_coroutines_android", 115*7a7160feSAndroid Build Coastguard Worker sdk_version: "current", 116*7a7160feSAndroid Build Coastguard Worker min_sdk_version: "28", 117*7a7160feSAndroid Build Coastguard Worker srcs: ["ui/kotlinx-coroutines-android/src/**/*.kt"], 118*7a7160feSAndroid Build Coastguard Worker java_resource_dirs: ["ui/kotlinx-coroutines-android/resources"], 119*7a7160feSAndroid Build Coastguard Worker kotlincflags: [ 120*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlinx.coroutines.InternalCoroutinesApi", 121*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", 122*7a7160feSAndroid Build Coastguard Worker ], 123*7a7160feSAndroid Build Coastguard Worker static_libs: [ 124*7a7160feSAndroid Build Coastguard Worker "kotlinx_coroutines", 125*7a7160feSAndroid Build Coastguard Worker ], 126*7a7160feSAndroid Build Coastguard Worker libs: [ 127*7a7160feSAndroid Build Coastguard Worker "androidx.annotation_annotation", 128*7a7160feSAndroid Build Coastguard Worker ], 129*7a7160feSAndroid Build Coastguard Worker apex_available: [ 130*7a7160feSAndroid Build Coastguard Worker "//apex_available:platform", 131*7a7160feSAndroid Build Coastguard Worker "//apex_available:anyapex", 132*7a7160feSAndroid Build Coastguard Worker ], 133*7a7160feSAndroid Build Coastguard Worker visibility: ["//visibility:public"], 134*7a7160feSAndroid Build Coastguard Worker} 135*7a7160feSAndroid Build Coastguard Worker 136*7a7160feSAndroid Build Coastguard Workerjava_library { 137*7a7160feSAndroid Build Coastguard Worker name: "kotlinx_coroutines_test", 138*7a7160feSAndroid Build Coastguard Worker host_supported: true, 139*7a7160feSAndroid Build Coastguard Worker sdk_version: "core_current", 140*7a7160feSAndroid Build Coastguard Worker srcs: ["kotlinx-coroutines-test/jvm/src/**/*.kt"], 141*7a7160feSAndroid Build Coastguard Worker common_srcs: ["kotlinx-coroutines-test/common/src/**/*.kt"], 142*7a7160feSAndroid Build Coastguard Worker java_resource_dirs: ["kotlinx-coroutines-test/jvm/resources"], 143*7a7160feSAndroid Build Coastguard Worker kotlincflags: [ 144*7a7160feSAndroid Build Coastguard Worker "-Xmulti-platform", 145*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlin.ExperimentalMultiplatform", 146*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlinx.coroutines.InternalCoroutinesApi", 147*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", 148*7a7160feSAndroid Build Coastguard Worker ], 149*7a7160feSAndroid Build Coastguard Worker libs: ["kotlinx_coroutines"], 150*7a7160feSAndroid Build Coastguard Worker apex_available: [ 151*7a7160feSAndroid Build Coastguard Worker "//apex_available:platform", 152*7a7160feSAndroid Build Coastguard Worker "//apex_available:anyapex", 153*7a7160feSAndroid Build Coastguard Worker ], 154*7a7160feSAndroid Build Coastguard Worker visibility: ["//visibility:public"], 155*7a7160feSAndroid Build Coastguard Worker} 156*7a7160feSAndroid Build Coastguard Worker 157*7a7160feSAndroid Build Coastguard Worker// Compile stub implementations of annotations used by kotlinx-coroutines but not present in the 158*7a7160feSAndroid Build Coastguard Worker// Android tree. 159*7a7160feSAndroid Build Coastguard Workerjava_library { 160*7a7160feSAndroid Build Coastguard Worker name: "kotlinx-coroutines-android-annotation-stubs", 161*7a7160feSAndroid Build Coastguard Worker host_supported: true, 162*7a7160feSAndroid Build Coastguard Worker sdk_version: "core_current", 163*7a7160feSAndroid Build Coastguard Worker srcs: ["android-annotation-stubs/src/**/*.java"], 164*7a7160feSAndroid Build Coastguard Worker} 165*7a7160feSAndroid Build Coastguard Worker 166*7a7160feSAndroid Build Coastguard Worker// Temporary aliases for kotlinx-coroutines-core, kotlinx-coroutines-core-jvm and 167*7a7160feSAndroid Build Coastguard Worker// kotlinx-coroutines-android 168*7a7160feSAndroid Build Coastguard Worker 169*7a7160feSAndroid Build Coastguard Workerjava_library { 170*7a7160feSAndroid Build Coastguard Worker name: "kotlinx-coroutines-core", 171*7a7160feSAndroid Build Coastguard Worker host_supported: true, 172*7a7160feSAndroid Build Coastguard Worker sdk_version: "core_current", 173*7a7160feSAndroid Build Coastguard Worker min_sdk_version: "28", 174*7a7160feSAndroid Build Coastguard Worker static_libs: ["kotlinx_coroutines"], 175*7a7160feSAndroid Build Coastguard Worker apex_available: [ 176*7a7160feSAndroid Build Coastguard Worker "//apex_available:platform", 177*7a7160feSAndroid Build Coastguard Worker "//apex_available:anyapex", 178*7a7160feSAndroid Build Coastguard Worker ], 179*7a7160feSAndroid Build Coastguard Worker visibility: ["//visibility:public"], 180*7a7160feSAndroid Build Coastguard Worker} 181*7a7160feSAndroid Build Coastguard Worker 182*7a7160feSAndroid Build Coastguard Workerjava_library { 183*7a7160feSAndroid Build Coastguard Worker name: "kotlinx-coroutines-core-jvm", 184*7a7160feSAndroid Build Coastguard Worker host_supported: true, 185*7a7160feSAndroid Build Coastguard Worker sdk_version: "core_current", 186*7a7160feSAndroid Build Coastguard Worker min_sdk_version: "28", 187*7a7160feSAndroid Build Coastguard Worker static_libs: ["kotlinx_coroutines"], 188*7a7160feSAndroid Build Coastguard Worker apex_available: [ 189*7a7160feSAndroid Build Coastguard Worker "//apex_available:platform", 190*7a7160feSAndroid Build Coastguard Worker "//apex_available:anyapex", 191*7a7160feSAndroid Build Coastguard Worker ], 192*7a7160feSAndroid Build Coastguard Worker visibility: ["//visibility:public"], 193*7a7160feSAndroid Build Coastguard Worker} 194*7a7160feSAndroid Build Coastguard Worker 195*7a7160feSAndroid Build Coastguard Workerjava_library { 196*7a7160feSAndroid Build Coastguard Worker name: "kotlinx-coroutines-android", 197*7a7160feSAndroid Build Coastguard Worker sdk_version: "current", 198*7a7160feSAndroid Build Coastguard Worker min_sdk_version: "28", 199*7a7160feSAndroid Build Coastguard Worker static_libs: [ 200*7a7160feSAndroid Build Coastguard Worker "kotlinx_coroutines_android", 201*7a7160feSAndroid Build Coastguard Worker "kotlinx_coroutines", 202*7a7160feSAndroid Build Coastguard Worker ], 203*7a7160feSAndroid Build Coastguard Worker apex_available: [ 204*7a7160feSAndroid Build Coastguard Worker "//apex_available:platform", 205*7a7160feSAndroid Build Coastguard Worker "//apex_available:anyapex", 206*7a7160feSAndroid Build Coastguard Worker ], 207*7a7160feSAndroid Build Coastguard Worker visibility: ["//visibility:public"], 208*7a7160feSAndroid Build Coastguard Worker} 209*7a7160feSAndroid Build Coastguard Worker 210*7a7160feSAndroid Build Coastguard Workerfilegroup { 211*7a7160feSAndroid Build Coastguard Worker name: "kotlinx-coroutines-play-services", 212*7a7160feSAndroid Build Coastguard Worker srcs: ["integration/kotlinx-coroutines-play-services/src/**/*.kt"], 213*7a7160feSAndroid Build Coastguard Worker visibility: ["//visibility:public"], 214*7a7160feSAndroid Build Coastguard Worker} 215*7a7160feSAndroid Build Coastguard Worker 216*7a7160feSAndroid Build Coastguard Worker// Maven coordinate: org.jetbrains.kotlinx:kotlinx-coroutines-guava 217*7a7160feSAndroid Build Coastguard Workerjava_library { 218*7a7160feSAndroid Build Coastguard Worker name: "kotlinx_coroutines_guava", 219*7a7160feSAndroid Build Coastguard Worker sdk_version: "current", 220*7a7160feSAndroid Build Coastguard Worker min_sdk_version: "28", 221*7a7160feSAndroid Build Coastguard Worker host_supported: true, 222*7a7160feSAndroid Build Coastguard Worker srcs: ["integration/kotlinx-coroutines-guava/src/**/*.kt"], 223*7a7160feSAndroid Build Coastguard Worker kotlincflags: [ 224*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlin.RequiresOptIn", 225*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlinx.coroutines.InternalCoroutinesApi", 226*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", 227*7a7160feSAndroid Build Coastguard Worker ], 228*7a7160feSAndroid Build Coastguard Worker libs: [ 229*7a7160feSAndroid Build Coastguard Worker "kotlinx_coroutines", 230*7a7160feSAndroid Build Coastguard Worker "kotlin-stdlib-jdk8", 231*7a7160feSAndroid Build Coastguard Worker "guava", 232*7a7160feSAndroid Build Coastguard Worker ], 233*7a7160feSAndroid Build Coastguard Worker apex_available: [ 234*7a7160feSAndroid Build Coastguard Worker "//apex_available:platform", 235*7a7160feSAndroid Build Coastguard Worker "//apex_available:anyapex", 236*7a7160feSAndroid Build Coastguard Worker ], 237*7a7160feSAndroid Build Coastguard Worker visibility: ["//visibility:public"], 238*7a7160feSAndroid Build Coastguard Worker} 239*7a7160feSAndroid Build Coastguard Worker 240*7a7160feSAndroid Build Coastguard Worker// Maven coordinate: org.jetbrains.kotlinx:kotlinx-coroutines-reactive 241*7a7160feSAndroid Build Coastguard Workerjava_library { 242*7a7160feSAndroid Build Coastguard Worker name: "kotlinx_coroutines_reactive", 243*7a7160feSAndroid Build Coastguard Worker host_supported: true, 244*7a7160feSAndroid Build Coastguard Worker srcs: ["reactive/kotlinx-coroutines-reactive/src/**/*.kt"], 245*7a7160feSAndroid Build Coastguard Worker kotlincflags: [ 246*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlin.RequiresOptIn", 247*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlinx.coroutines.InternalCoroutinesApi", 248*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", 249*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlin.experimental.ExperimentalTypeInference", 250*7a7160feSAndroid Build Coastguard Worker ], 251*7a7160feSAndroid Build Coastguard Worker libs: [ 252*7a7160feSAndroid Build Coastguard Worker "kotlin-stdlib", 253*7a7160feSAndroid Build Coastguard Worker "kotlinx_coroutines", 254*7a7160feSAndroid Build Coastguard Worker "rxjava", 255*7a7160feSAndroid Build Coastguard Worker ], 256*7a7160feSAndroid Build Coastguard Worker apex_available: [ 257*7a7160feSAndroid Build Coastguard Worker "//apex_available:platform", 258*7a7160feSAndroid Build Coastguard Worker "//apex_available:anyapex", 259*7a7160feSAndroid Build Coastguard Worker ], 260*7a7160feSAndroid Build Coastguard Worker visibility: ["//visibility:public"], 261*7a7160feSAndroid Build Coastguard Worker} 262*7a7160feSAndroid Build Coastguard Worker 263*7a7160feSAndroid Build Coastguard Worker// Maven coordinate: org.jetbrains.kotlinx:kotlinx-coroutines-rx2 264*7a7160feSAndroid Build Coastguard Workerjava_library { 265*7a7160feSAndroid Build Coastguard Worker name: "kotlinx_coroutines_rx2", 266*7a7160feSAndroid Build Coastguard Worker host_supported: true, 267*7a7160feSAndroid Build Coastguard Worker srcs: ["reactive/kotlinx-coroutines-rx2/src/**/*.kt"], 268*7a7160feSAndroid Build Coastguard Worker kotlincflags: [ 269*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlin.RequiresOptIn", 270*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlinx.coroutines.InternalCoroutinesApi", 271*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", 272*7a7160feSAndroid Build Coastguard Worker "-opt-in=kotlin.experimental.ExperimentalTypeInference", 273*7a7160feSAndroid Build Coastguard Worker ], 274*7a7160feSAndroid Build Coastguard Worker libs: [ 275*7a7160feSAndroid Build Coastguard Worker "kotlin-stdlib", 276*7a7160feSAndroid Build Coastguard Worker "kotlinx_coroutines", 277*7a7160feSAndroid Build Coastguard Worker "kotlinx_coroutines_reactive", 278*7a7160feSAndroid Build Coastguard Worker "rxjava", 279*7a7160feSAndroid Build Coastguard Worker ], 280*7a7160feSAndroid Build Coastguard Worker apex_available: [ 281*7a7160feSAndroid Build Coastguard Worker "//apex_available:platform", 282*7a7160feSAndroid Build Coastguard Worker "//apex_available:anyapex", 283*7a7160feSAndroid Build Coastguard Worker ], 284*7a7160feSAndroid Build Coastguard Worker visibility: ["//visibility:public"], 285*7a7160feSAndroid Build Coastguard Worker} 286