[17:33:30.518] New invocation is queued and will start shortly
[17:33:34.802] Starting the invocation (attempt 1)
[17:33:34.894] Preparing PubSub topic for "https://cr-buildbucket.appspot.com"
[17:33:34.895] PubSub topic is "projects/luci-scheduler/topics/scheduler.buildbucket.cr-buildbucket~appspot.gserviceaccount.com"
[17:33:34.895] Buildbucket request:
{
"bucket": "luci.boringssl.ci",
"client_operation_id": "9045735701696241504",
"parameters_json": "{\"builder_name\":\"android_aarch64\",\"properties\":{\"$recipe_engine/scheduler\":{\"hostname\":\"luci-scheduler.appspot.com\",\"triggers\":[{\"gitiles\":{\"ref\":\"refs/heads/master\",\"repo\":\"https://boringssl.googlesource.com/boringssl\",\"revision\":\"9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\"},\"id\":\"https://boringssl.googlesource.com/boringssl/+/refs/heads/master@9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\",\"title\":\"9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\",\"url\":\"https://boringssl.googlesource.com/boringssl/+/9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\"}]},\"branch\":\"refs/heads/master\",\"repository\":\"https://boringssl.googlesource.com/boringssl\",\"revision\":\"9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\"}}",
"pubsub_callback": {
"auth_token": "...",
"topic": "projects/luci-scheduler/topics/scheduler.buildbucket.cr-buildbucket~appspot.gserviceaccount.com"
},
"tags": [
"builder:android_aarch64",
"scheduler_invocation_id:9045735701696241504",
"scheduler_job_id:boringssl/android_aarch64",
"user_agent:luci-scheduler",
"buildset:commit/git/9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f",
"buildset:commit/gitiles/boringssl.googlesource.com/boringssl/+/9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f",
"gitiles_ref:refs/heads/master"
]
}
[17:33:35.941] Buildbucket response:
{
"build": {
"bucket": "luci.boringssl.ci",
"canary_preference": "PROD",
"created_by": "project:boringssl",
"created_ts": "1589477615031936",
"id": "8880305636299002992",
"parameters_json": "{\"builder_name\": \"android_aarch64\", \"properties\": {\"$recipe_engine/scheduler\": {\"hostname\": \"luci-scheduler.appspot.com\", \"triggers\": [{\"gitiles\": {\"ref\": \"refs/heads/master\", \"repo\": \"https://boringssl.googlesource.com/boringssl\", \"revision\": \"9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\"}, \"id\": \"https://boringssl.googlesource.com/boringssl/+/refs/heads/master@9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\", \"title\": \"9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\", \"url\": \"https://boringssl.googlesource.com/boringssl/+/9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\"}]}, \"branch\": \"refs/heads/master\", \"repository\": \"https://boringssl.googlesource.com/boringssl\", \"revision\": \"9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\"}}",
"project": "boringssl",
"result_details_json": "{\"properties\": {}}",
"service_account": "boringssl-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
"status": "SCHEDULED",
"status_changed_ts": "1589477615639302",
"tags": [
"builder:android_aarch64",
"buildset:commit/git/9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f",
"buildset:commit/gitiles/boringssl.googlesource.com/boringssl/+/9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f",
"gitiles_ref:refs/heads/master",
"scheduler_invocation_id:9045735701696241504",
"scheduler_job_id:boringssl/android_aarch64",
"swarming_hostname:chromium-swarm.appspot.com",
"swarming_tag:log_location:logdog://logs.chromium.org/boringssl/buildbucket/cr-buildbucket.appspot.com/8880305636299002992/+/annotations",
"swarming_tag:luci_project:boringssl",
"swarming_tag:recipe_name:boringssl",
"swarming_tag:recipe_package:infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",
"swarming_task_id:",
"user_agent:luci-scheduler"
],
"updated_ts": "1589477615639442",
"url": "https://ci.chromium.org/b/8880305636299002992",
"utcnow_ts": "1589477615922792"
}
}
[17:33:35.941] Task URL: https://ci.chromium.org/b/8880305636299002992
[17:33:35.941] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:2:0) after 1m0s
[17:33:59.145] Received PubSub notification, asking Buildbucket for the build status
[17:33:59.303] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:34:36.094] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:2:0)
[17:34:36.094] Timer tick, asking Buildbucket for the build status
[17:34:36.181] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:34:36.181] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:4:0) after 1m0s
[17:35:36.229] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:4:0)
[17:35:36.229] Timer tick, asking Buildbucket for the build status
[17:35:36.383] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:35:36.383] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:5:0) after 1m0s
[17:36:36.418] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:5:0)
[17:36:36.418] Timer tick, asking Buildbucket for the build status
[17:36:36.900] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:36:36.900] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:6:0) after 1m0s
[17:37:36.872] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:6:0)
[17:37:36.872] Timer tick, asking Buildbucket for the build status
[17:37:38.134] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:37:38.134] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:7:0) after 1m0s
[17:38:38.250] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:7:0)
[17:38:38.250] Timer tick, asking Buildbucket for the build status
[17:38:38.492] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:38:38.492] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:8:0) after 1m0s
[17:39:38.581] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:8:0)
[17:39:38.581] Timer tick, asking Buildbucket for the build status
[17:39:38.937] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:39:38.937] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:9:0) after 1m0s
[17:40:39.069] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:9:0)
[17:40:39.069] Timer tick, asking Buildbucket for the build status
[17:40:39.208] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:40:39.208] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:10:0) after 1m0s
[17:41:39.327] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:10:0)
[17:41:39.327] Timer tick, asking Buildbucket for the build status
[17:41:39.505] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:41:39.506] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:11:0) after 1m0s
[17:42:39.510] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:11:0)
[17:42:39.510] Timer tick, asking Buildbucket for the build status
[17:42:39.673] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:42:39.673] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:12:0) after 1m0s
[17:43:39.699] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:12:0)
[17:43:39.699] Timer tick, asking Buildbucket for the build status
[17:43:39.826] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:43:39.826] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:13:0) after 1m0s
[17:44:39.982] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:13:0)
[17:44:39.982] Timer tick, asking Buildbucket for the build status
[17:44:40.292] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:44:40.292] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:14:0) after 1m0s
[17:45:40.365] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:14:0)
[17:45:40.365] Timer tick, asking Buildbucket for the build status
[17:45:40.522] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:45:40.522] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:15:0) after 1m0s
[17:46:40.583] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:15:0)
[17:46:40.583] Timer tick, asking Buildbucket for the build status
[17:46:40.712] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:46:40.712] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:16:0) after 1m0s
[17:47:40.800] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:16:0)
[17:47:40.800] Timer tick, asking Buildbucket for the build status
[17:47:41.038] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:47:41.038] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:17:0) after 1m0s
[17:48:41.107] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:17:0)
[17:48:41.107] Timer tick, asking Buildbucket for the build status
[17:48:41.370] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:48:41.370] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:18:0) after 1m0s
[17:49:41.415] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:18:0)
[17:49:41.415] Timer tick, asking Buildbucket for the build status
[17:49:41.566] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:49:41.567] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:19:0) after 1m0s
[17:50:41.590] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:19:0)
[17:50:41.590] Timer tick, asking Buildbucket for the build status
[17:50:41.729] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:50:41.729] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:20:0) after 1m0s
[17:51:41.787] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:20:0)
[17:51:41.787] Timer tick, asking Buildbucket for the build status
[17:51:42.078] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:51:42.078] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:21:0) after 1m0s
[17:52:42.128] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:21:0)
[17:52:42.128] Timer tick, asking Buildbucket for the build status
[17:52:42.266] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:52:42.266] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:22:0) after 1m0s
[17:53:42.290] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:22:0)
[17:53:42.290] Timer tick, asking Buildbucket for the build status
[17:53:42.502] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:53:42.502] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:23:0) after 1m0s
[17:54:42.670] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:23:0)
[17:54:42.670] Timer tick, asking Buildbucket for the build status
[17:54:43.305] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:54:43.305] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:24:0) after 1m0s
[17:55:43.357] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:24:0)
[17:55:43.358] Timer tick, asking Buildbucket for the build status
[17:55:43.661] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:55:43.661] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:25:0) after 1m0s
[17:56:43.725] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:25:0)
[17:56:43.725] Timer tick, asking Buildbucket for the build status
[17:56:45.022] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:56:45.022] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:26:0) after 1m0s
[17:57:45.075] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:26:0)
[17:57:45.075] Timer tick, asking Buildbucket for the build status
[17:57:45.365] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:57:45.365] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:27:0) after 1m0s
[17:58:45.342] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:27:0)
[17:58:45.343] Timer tick, asking Buildbucket for the build status
[17:58:45.718] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:58:45.718] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:28:0) after 1m0s
[17:59:45.697] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:28:0)
[17:59:45.697] Timer tick, asking Buildbucket for the build status
[17:59:45.808] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[17:59:45.808] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:29:0) after 1m0s
[18:00:45.861] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:29:0)
[18:00:45.861] Timer tick, asking Buildbucket for the build status
[18:00:46.471] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:00:46.471] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:30:0) after 1m0s
[18:01:46.602] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:30:0)
[18:01:46.602] Timer tick, asking Buildbucket for the build status
[18:01:47.117] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:01:47.117] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:31:0) after 1m0s
[18:02:47.285] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:31:0)
[18:02:47.285] Timer tick, asking Buildbucket for the build status
[18:02:47.463] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:02:47.463] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:32:0) after 1m0s
[18:03:47.506] Handling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:32:0)
[18:03:47.506] Timer tick, asking Buildbucket for the build status
[18:03:47.666] Build 8880305636299002992: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:03:47.666] Scheduling timer "check-buildbucket-build-status" (boringssl/android_aarch64:9045735701696241504:33:0) after 1m0s
[18:04:36.358] Received PubSub notification, asking Buildbucket for the build status
[18:04:37.263] Build 8880305636299002992: status "COMPLETED", result "SUCCESS", failure_reason "", cancelation_reason ""
[18:04:37.263] Buildbucket build:
{
"build": {
"bucket": "luci.boringssl.ci",
"canary_preference": "PROD",
"completed_ts": "1589479475315983",
"created_by": "project:boringssl",
"created_ts": "1589477615031936",
"id": "8880305636299002992",
"parameters_json": "{\"builder_name\": \"android_aarch64\", \"properties\": {\"$recipe_engine/scheduler\": {\"hostname\": \"luci-scheduler.appspot.com\", \"triggers\": [{\"gitiles\": {\"ref\": \"refs/heads/master\", \"repo\": \"https://boringssl.googlesource.com/boringssl\", \"revision\": \"9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\"}, \"id\": \"https://boringssl.googlesource.com/boringssl/+/refs/heads/master@9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\", \"title\": \"9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\", \"url\": \"https://boringssl.googlesource.com/boringssl/+/9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\"}]}, \"branch\": \"refs/heads/master\", \"repository\": \"https://boringssl.googlesource.com/boringssl\", \"revision\": \"9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\"}}",
"project": "boringssl",
"result": "SUCCESS",
"result_details_json": "{\"properties\": {\"$gatekeeper\": {\"group\": \"client.boringssl\"}, \"$recipe_engine/path\": {\"cache_dir\": \"/b/swarming/w/ir/cache\", \"temp_dir\": \"/b/swarming/w/ir/tmp/rt\"}, \"$recipe_engine/runtime\": {\"is_experimental\": false, \"is_luci\": true}, \"$recipe_engine/scheduler\": {\"hostname\": \"luci-scheduler.appspot.com\", \"triggers\": [{\"gitiles\": {\"ref\": \"refs/heads/master\", \"repo\": \"https://boringssl.googlesource.com/boringssl\", \"revision\": \"9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\"}, \"id\": \"https://boringssl.googlesource.com/boringssl/+/refs/heads/master@9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\", \"title\": \"9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\", \"url\": \"https://boringssl.googlesource.com/boringssl/+/9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\"}]}, \"bot_id\": \"build6-b9--device7\", \"branch\": \"refs/heads/master\", \"buildername\": \"android_aarch64\", \"got_revision\": \"9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\", \"path_config\": \"generic\", \"recipe\": \"boringssl\", \"repository\": \"https://boringssl.googlesource.com/boringssl\", \"revision\": \"9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f\"}, \"swarming\": {\"bot_dimensions\": {\"android_devices\": [\"1\"], \"caches\": [\"builder_5b9cd88744bfae3d9565569b6a1686a75b49d5955824f5187531cbb8e9e7cdf8_v2\", \"git\", \"vpython\"], \"device_gms_core_version\": [\"8.1.86\"], \"device_os\": [\"M\", \"MMB29Q\"], \"device_os_flavor\": [\"google\"], \"device_os_type\": [\"userdebug\"], \"device_playstore_version\": [\"5.12.7\"], \"device_type\": [\"bullhead\"], \"gce\": [\"0\"], \"id\": [\"build6-b9--device7\"], \"inside_docker\": [\"1\", \"stock\"], \"locale\": [\"en_US.UTF-8\"], \"os\": [\"Android\"], \"pool\": [\"luci.flex.ci\"], \"python\": [\"2.7.12\"], \"server_version\": [\"5086-72f8a5a\"], \"temp_band\": [\"\u003c30\"], \"zone\": [\"us\", \"us-mtv\", \"us-mtv-chops\", \"us-mtv-chops-b9\"]}}}",
"service_account": "boringssl-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
"started_ts": "1589477637788123",
"status": "COMPLETED",
"status_changed_ts": "1589479475959442",
"tags": [
"builder:android_aarch64",
"buildset:commit/git/9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f",
"buildset:commit/gitiles/boringssl.googlesource.com/boringssl/+/9cf9d3eb0681e0522db89ef5178c7bf8d5e7977f",
"gitiles_ref:refs/heads/master",
"scheduler_invocation_id:9045735701696241504",
"scheduler_job_id:boringssl/android_aarch64",
"swarming_hostname:chromium-swarm.appspot.com",
"swarming_tag:log_location:logdog://logs.chromium.org/boringssl/buildbucket/cr-buildbucket.appspot.com/8880305636299002992/+/annotations",
"swarming_tag:luci_project:boringssl",
"swarming_tag:os:Android",
"swarming_tag:recipe_name:boringssl",
"swarming_tag:recipe_package:infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",
"swarming_task_id:4c2d1145c8199410",
"user_agent:luci-scheduler"
],
"updated_ts": "1589479475975071",
"url": "https://ci.chromium.org/b/8880305636299002992",
"utcnow_ts": "1589479477229904"
}
}
[18:04:37.263] Invocation finished in 31m6.762141986s with status SUCCEEDED