From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.7 required=3.0 tests=FROM_LOCAL_HEX, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DA127C10F13 for ; Tue, 16 Apr 2019 16:19:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 93D902087C for ; Tue, 16 Apr 2019 16:19:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729985AbfDPQTD (ORCPT ); Tue, 16 Apr 2019 12:19:03 -0400 Received: from mail-io1-f72.google.com ([209.85.166.72]:34249 "EHLO mail-io1-f72.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727052AbfDPQTC (ORCPT ); Tue, 16 Apr 2019 12:19:02 -0400 Received: by mail-io1-f72.google.com with SMTP id y13so17153643iol.1 for ; Tue, 16 Apr 2019 09:19:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:date:in-reply-to:message-id:subject :from:to; bh=ztS70Oh1RnCMIr2pF0j3Y68eKrfInzGtiHiQwDvxXZU=; b=OPxz50DkCQYI75FZhGnfNDmc6Y7WjDKrGzqvISvu4x6pMj+GddAjCT96zsO9BHNJhb D+n8aFZI5lNixXkpyk2/8Q58MDgn2n4zUgV5jZYNoMd0e6mQmwJ5VwDhWFJ8RxDKyr4r NiEH95wlOn4um1wbHcOQgQ4/S17TKTt13DmQbu1whNEJ6o0dPAsHd6WISLCaxfl8WGkb URUM5ZomhyseWxNBVBxttzOQTd4q1mJ8k33UEvkeH9EZnQ29bR6hM0RwzrUdjA+tKA/H AvWGFh8If0Hq8r5F1jJAOGP735DggH8Sb86JUhjSTNMGamD/xk/CZ6lCNe131D0rFUkY nI/Q== X-Gm-Message-State: APjAAAUPGGStwZJ7Q1AyzTUEfIONLsTcUN48RFtSkwyua3xDIv+cbOH3 wSkP+1wLJ3FFu8woehGAAT4xVagAEPk6YxYI/wRAQx793o0i X-Google-Smtp-Source: APXvYqyPeIRPwDDbPmxo91ABHc32TGFLHhWCfxAyIGv/kmYrinqfqycQTENjOSifrEZlF4kl9GBM1feDA83PUOq9Gepk15uABi17 MIME-Version: 1.0 X-Received: by 2002:a24:5508:: with SMTP id e8mr2303403itb.1.1555431540617; Tue, 16 Apr 2019 09:19:00 -0700 (PDT) Date: Tue, 16 Apr 2019 09:19:00 -0700 In-Reply-To: X-Google-Appengine-App-Id: s~syzkaller X-Google-Appengine-App-Id-Alias: syzkaller Message-ID: <0000000000007380f90586a82005@google.com> Subject: Re: INFO: task hung in usb_kill_urb From: syzbot To: andreyknvl@google.com, gregkh@linuxfoundation.org, gustavo@embeddedor.com, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, stern@rowland.harvard.edu, syzkaller-bugs@googlegroups.com Content-Type: text/plain; charset="UTF-8"; format=flowed; delsp=yes Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, syzbot has tested the proposed patch but the reproducer still triggered crash: INFO: task hung in usb_kill_urb usb-fuzzer-gadget dummy_udc.4: failed to start USB fuzzer: -22 dummy_udc dummy_udc.4: dummy_udc_start dummy_udc dummy_udc.3: dummy_udc_stop usb-fuzzer-gadget dummy_udc.3: failed to start USB fuzzer: -22 dummy_udc dummy_udc.3: dummy_udc_start INFO: task kworker/1:1:21 blocked for more than 143 seconds. Not tainted 5.1.0-rc4-g9a33b36-dirty #1 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. kworker/1:1 D26616 21 2 0x80000000 Workqueue: usb_hub_wq hub_event Call Trace: schedule+0x8f/0x180 kernel/sched/core.c:3562 usb_kill_urb drivers/usb/core/urb.c:695 [inline] usb_kill_urb+0x22a/0x2c0 drivers/usb/core/urb.c:687 usb_start_wait_urb+0x257/0x4d0 drivers/usb/core/message.c:63 usb_internal_control_msg drivers/usb/core/message.c:101 [inline] usb_control_msg+0x321/0x4a0 drivers/usb/core/message.c:152 hub_port_init+0x81d/0x2d30 drivers/usb/core/hub.c:4655 hub_port_connect drivers/usb/core/hub.c:5021 [inline] hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] port_event drivers/usb/core/hub.c:5350 [inline] hub_event+0x11b8/0x3b00 drivers/usb/core/hub.c:5432 process_one_work+0x90f/0x1580 kernel/workqueue.c:2269 worker_thread+0x9b/0xe20 kernel/workqueue.c:2415 kthread+0x313/0x420 kernel/kthread.c:253 ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352 INFO: task kworker/1:2:533 blocked for more than 143 seconds. Not tainted 5.1.0-rc4-g9a33b36-dirty #1 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. kworker/1:2 D25760 533 2 0x80000000 Workqueue: usb_hub_wq hub_event Call Trace: schedule+0x8f/0x180 kernel/sched/core.c:3562 usb_kill_urb drivers/usb/core/urb.c:695 [inline] usb_kill_urb+0x22a/0x2c0 drivers/usb/core/urb.c:687 usb_start_wait_urb+0x257/0x4d0 drivers/usb/core/message.c:63 usb_internal_control_msg drivers/usb/core/message.c:101 [inline] usb_control_msg+0x321/0x4a0 drivers/usb/core/message.c:152 hub_port_init+0x81d/0x2d30 drivers/usb/core/hub.c:4655 hub_port_connect drivers/usb/core/hub.c:5021 [inline] hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] port_event drivers/usb/core/hub.c:5350 [inline] hub_event+0x11b8/0x3b00 drivers/usb/core/hub.c:5432 process_one_work+0x90f/0x1580 kernel/workqueue.c:2269 dummy_udc dummy_udc.2: dummy_udc_stop worker_thread+0x9b/0xe20 kernel/workqueue.c:2415 kthread+0x313/0x420 kernel/kthread.c:253 ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352 INFO: task kworker/0:4:6014 blocked for more than 143 seconds. Not tainted 5.1.0-rc4-g9a33b36-dirty #1 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. kworker/0:4 D27752 6014 2 0x80000000 Workqueue: usb_hub_wq hub_event Call Trace: usb-fuzzer-gadget dummy_udc.2: failed to start USB fuzzer: -22 schedule+0x8f/0x180 kernel/sched/core.c:3562 usb_kill_urb drivers/usb/core/urb.c:695 [inline] usb_kill_urb+0x22a/0x2c0 drivers/usb/core/urb.c:687 usb_start_wait_urb+0x257/0x4d0 drivers/usb/core/message.c:63 dummy_udc dummy_udc.5: dummy_udc_stop usb_internal_control_msg drivers/usb/core/message.c:101 [inline] usb_control_msg+0x321/0x4a0 drivers/usb/core/message.c:152 hub_port_init+0x81d/0x2d30 drivers/usb/core/hub.c:4655 hub_port_connect drivers/usb/core/hub.c:5021 [inline] hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] port_event drivers/usb/core/hub.c:5350 [inline] hub_event+0x11b8/0x3b00 drivers/usb/core/hub.c:5432 process_one_work+0x90f/0x1580 kernel/workqueue.c:2269 usb-fuzzer-gadget dummy_udc.5: failed to start USB fuzzer: -22 worker_thread+0x9b/0xe20 kernel/workqueue.c:2415 kthread+0x313/0x420 kernel/kthread.c:253 dummy_udc dummy_udc.1: dummy_udc_stop ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352 dummy_udc dummy_udc.2: dummy_udc_start INFO: task kworker/0:5:6019 blocked for more than 143 seconds. Not tainted 5.1.0-rc4-g9a33b36-dirty #1 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. usb-fuzzer-gadget dummy_udc.1: failed to start USB fuzzer: -22 kworker/0:5 D27752 6019 2 0x80000000 Workqueue: usb_hub_wq hub_event Call Trace: schedule+0x8f/0x180 kernel/sched/core.c:3562 usb_kill_urb drivers/usb/core/urb.c:695 [inline] usb_kill_urb+0x22a/0x2c0 drivers/usb/core/urb.c:687 dummy_udc dummy_udc.5: dummy_udc_start dummy_udc dummy_udc.1: dummy_udc_start usb_start_wait_urb+0x257/0x4d0 drivers/usb/core/message.c:63 dummy_udc dummy_udc.0: dummy_udc_stop usb_internal_control_msg drivers/usb/core/message.c:101 [inline] usb_control_msg+0x321/0x4a0 drivers/usb/core/message.c:152 hub_port_init+0x81d/0x2d30 drivers/usb/core/hub.c:4655 hub_port_connect drivers/usb/core/hub.c:5021 [inline] hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] port_event drivers/usb/core/hub.c:5350 [inline] hub_event+0x11b8/0x3b00 drivers/usb/core/hub.c:5432 process_one_work+0x90f/0x1580 kernel/workqueue.c:2269 usb-fuzzer-gadget dummy_udc.0: failed to start USB fuzzer: -22 worker_thread+0x9b/0xe20 kernel/workqueue.c:2415 kthread+0x313/0x420 kernel/kthread.c:253 ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352 INFO: task kworker/1:4:6060 blocked for more than 144 seconds. Not tainted 5.1.0-rc4-g9a33b36-dirty #1 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. kworker/1:4 D27752 6060 2 0x80000000 dummy_udc dummy_udc.0: dummy_udc_start Workqueue: usb_hub_wq hub_event Call Trace: schedule+0x8f/0x180 kernel/sched/core.c:3562 usb_kill_urb drivers/usb/core/urb.c:695 [inline] usb_kill_urb+0x22a/0x2c0 drivers/usb/core/urb.c:687 usb_start_wait_urb+0x257/0x4d0 drivers/usb/core/message.c:63 usb_internal_control_msg drivers/usb/core/message.c:101 [inline] usb_control_msg+0x321/0x4a0 drivers/usb/core/message.c:152 hub_port_init+0x81d/0x2d30 drivers/usb/core/hub.c:4655 hub_port_connect drivers/usb/core/hub.c:5021 [inline] hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] port_event drivers/usb/core/hub.c:5350 [inline] hub_event+0x11b8/0x3b00 drivers/usb/core/hub.c:5432 process_one_work+0x90f/0x1580 kernel/workqueue.c:2269 worker_thread+0x9b/0xe20 kernel/workqueue.c:2415 kthread+0x313/0x420 kernel/kthread.c:253 ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352 Showing all locks held in the system: 5 locks held by kworker/1:1/21: dummy_udc dummy_udc.4: dummy_udc_stop #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: __write_once_size include/linux/compiler.h:220 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: atomic64_set include/asm-generic/atomic-instrumented.h:855 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: atomic_long_set include/asm-generic/atomic-long.h:40 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: set_work_data kernel/workqueue.c:619 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: set_work_pool_and_clear_pending kernel/workqueue.c:646 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: process_one_work+0x81f/0x1580 kernel/workqueue.c:2240 #1: 00000000bef12525 ((work_completion)(&hub->events)){+.+.}, at: process_one_work+0x853/0x1580 kernel/workqueue.c:2244 #2: 000000009a337b20 (&dev->mutex){....}, at: device_lock include/linux/device.h:1207 [inline] #2: 000000009a337b20 (&dev->mutex){....}, at: hub_event+0x18a/0x3b00 drivers/usb/core/hub.c:5378 #3: 00000000449599d5 (&port_dev->status_lock){+.+.}, at: usb_lock_port drivers/usb/core/hub.c:2994 [inline] #3: 00000000449599d5 (&port_dev->status_lock){+.+.}, at: hub_port_connect drivers/usb/core/hub.c:5020 [inline] #3: 00000000449599d5 (&port_dev->status_lock){+.+.}, at: hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] #3: 00000000449599d5 (&port_dev->status_lock){+.+.}, at: port_event drivers/usb/core/hub.c:5350 [inline] #3: 00000000449599d5 (&port_dev->status_lock){+.+.}, at: hub_event+0x11a3/0x3b00 drivers/usb/core/hub.c:5432 usb-fuzzer-gadget dummy_udc.4: failed to start USB fuzzer: -22 #4: 00000000bd693e6d (hcd->address0_mutex){+.+.}, at: hub_port_init+0x1bb/0x2d30 drivers/usb/core/hub.c:4529 1 lock held by khungtaskd/23: #0: 00000000c249679f (rcu_read_lock){....}, at: debug_show_all_locks+0x53/0x269 kernel/locking/lockdep.c:5059 5 locks held by kworker/1:2/533: #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: __write_once_size include/linux/compiler.h:220 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: atomic64_set include/asm-generic/atomic-instrumented.h:855 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: atomic_long_set include/asm-generic/atomic-long.h:40 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: set_work_data kernel/workqueue.c:619 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: set_work_pool_and_clear_pending kernel/workqueue.c:646 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: process_one_work+0x81f/0x1580 kernel/workqueue.c:2240 dummy_udc dummy_udc.3: dummy_udc_stop #1: 000000000b2c3268 ((work_completion)(&hub->events)){+.+.}, at: process_one_work+0x853/0x1580 kernel/workqueue.c:2244 #2: 000000005e422e33 (&dev->mutex){....}, at: device_lock include/linux/device.h:1207 [inline] #2: 000000005e422e33 (&dev->mutex){....}, at: hub_event+0x18a/0x3b00 drivers/usb/core/hub.c:5378 dummy_udc dummy_udc.4: dummy_udc_start #3: 00000000a7ffda5b (&port_dev->status_lock){+.+.}, at: usb_lock_port drivers/usb/core/hub.c:2994 [inline] #3: 00000000a7ffda5b (&port_dev->status_lock){+.+.}, at: hub_port_connect drivers/usb/core/hub.c:5020 [inline] #3: 00000000a7ffda5b (&port_dev->status_lock){+.+.}, at: hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] #3: 00000000a7ffda5b (&port_dev->status_lock){+.+.}, at: port_event drivers/usb/core/hub.c:5350 [inline] #3: 00000000a7ffda5b (&port_dev->status_lock){+.+.}, at: hub_event+0x11a3/0x3b00 drivers/usb/core/hub.c:5432 #4: 0000000040171de2 (hcd->address0_mutex){+.+.}, at: hub_port_init+0x1bb/0x2d30 drivers/usb/core/hub.c:4529 1 lock held by rsyslogd/5663: #0: 00000000eb497534 (&f->f_pos_lock){+.+.}, at: __fdget_pos+0xe8/0x100 fs/file.c:801 2 locks held by getty/5753: usb-fuzzer-gadget dummy_udc.3: failed to start USB fuzzer: -22 #0: 0000000060cabbb9 (&tty->ldisc_sem){++++}, at: tty_ldisc_ref_wait+0x27/0x80 drivers/tty/tty_ldisc.c:272 #1: 00000000c554441b (&ldata->atomic_read_lock){+.+.}, at: n_tty_read+0x21c/0x1a60 drivers/tty/n_tty.c:2156 2 locks held by getty/5754: #0: 00000000bc2e3243 (&tty->ldisc_sem){++++}, at: tty_ldisc_ref_wait+0x27/0x80 drivers/tty/tty_ldisc.c:272 #1: 00000000c105aa12 (&ldata->atomic_read_lock){+.+.}, at: n_tty_read+0x21c/0x1a60 drivers/tty/n_tty.c:2156 2 locks held by getty/5755: #0: 00000000e6d82cc9 (&tty->ldisc_sem){++++}, at: tty_ldisc_ref_wait+0x27/0x80 drivers/tty/tty_ldisc.c:272 #1: 000000007478c77a (&ldata->atomic_read_lock){+.+.}, at: n_tty_read+0x21c/0x1a60 drivers/tty/n_tty.c:2156 dummy_udc dummy_udc.3: dummy_udc_start 2 locks held by getty/5756: #0: 00000000bdf7f201 (&tty->ldisc_sem){++++}, at: tty_ldisc_ref_wait+0x27/0x80 drivers/tty/tty_ldisc.c:272 #1: 0000000027b0060b (&ldata->atomic_read_lock){+.+.}, at: n_tty_read+0x21c/0x1a60 drivers/tty/n_tty.c:2156 2 locks held by getty/5757: #0: 00000000ea25225e (&tty->ldisc_sem){++++}, at: tty_ldisc_ref_wait+0x27/0x80 drivers/tty/tty_ldisc.c:272 #1: 0000000033c7c6b0 (&ldata->atomic_read_lock){+.+.}, at: n_tty_read+0x21c/0x1a60 drivers/tty/n_tty.c:2156 2 locks held by getty/5758: #0: 0000000026e22b8e (&tty->ldisc_sem){++++}, at: tty_ldisc_ref_wait+0x27/0x80 drivers/tty/tty_ldisc.c:272 #1: 00000000cc9d99b6 (&ldata->atomic_read_lock){+.+.}, at: n_tty_read+0x21c/0x1a60 drivers/tty/n_tty.c:2156 2 locks held by getty/5759: #0: 000000000c56f37f (&tty->ldisc_sem){++++}, at: tty_ldisc_ref_wait+0x27/0x80 drivers/tty/tty_ldisc.c:272 #1: 0000000096b5ec30 (&ldata->atomic_read_lock){+.+.}, at: n_tty_read+0x21c/0x1a60 drivers/tty/n_tty.c:2156 5 locks held by kworker/0:4/6014: #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: __write_once_size include/linux/compiler.h:220 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: atomic64_set include/asm-generic/atomic-instrumented.h:855 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: atomic_long_set include/asm-generic/atomic-long.h:40 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: set_work_data kernel/workqueue.c:619 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: set_work_pool_and_clear_pending kernel/workqueue.c:646 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: process_one_work+0x81f/0x1580 kernel/workqueue.c:2240 #1: 000000008858d04f ((work_completion)(&hub->events)){+.+.}, at: process_one_work+0x853/0x1580 kernel/workqueue.c:2244 #2: 0000000035fa4a95 (&dev->mutex){....}, at: device_lock include/linux/device.h:1207 [inline] #2: 0000000035fa4a95 (&dev->mutex){....}, at: hub_event+0x18a/0x3b00 drivers/usb/core/hub.c:5378 #3: 00000000b9e8bc7b (&port_dev->status_lock){+.+.}, at: usb_lock_port drivers/usb/core/hub.c:2994 [inline] #3: 00000000b9e8bc7b (&port_dev->status_lock){+.+.}, at: hub_port_connect drivers/usb/core/hub.c:5020 [inline] #3: 00000000b9e8bc7b (&port_dev->status_lock){+.+.}, at: hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] #3: 00000000b9e8bc7b (&port_dev->status_lock){+.+.}, at: port_event drivers/usb/core/hub.c:5350 [inline] #3: 00000000b9e8bc7b (&port_dev->status_lock){+.+.}, at: hub_event+0x11a3/0x3b00 drivers/usb/core/hub.c:5432 #4: 0000000029c7e38f (hcd->address0_mutex){+.+.}, at: hub_port_init+0x1bb/0x2d30 drivers/usb/core/hub.c:4529 5 locks held by kworker/0:5/6019: #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: __write_once_size include/linux/compiler.h:220 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: atomic64_set include/asm-generic/atomic-instrumented.h:855 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: atomic_long_set include/asm-generic/atomic-long.h:40 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: set_work_data kernel/workqueue.c:619 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: set_work_pool_and_clear_pending kernel/workqueue.c:646 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: process_one_work+0x81f/0x1580 kernel/workqueue.c:2240 #1: 00000000406d5ccc ((work_completion)(&hub->events)){+.+.}, at: process_one_work+0x853/0x1580 kernel/workqueue.c:2244 #2: 00000000a0e74d96 (&dev->mutex){....}, at: device_lock include/linux/device.h:1207 [inline] #2: 00000000a0e74d96 (&dev->mutex){....}, at: hub_event+0x18a/0x3b00 drivers/usb/core/hub.c:5378 #3: 00000000f7d2af58 (&port_dev->status_lock){+.+.}, at: usb_lock_port drivers/usb/core/hub.c:2994 [inline] #3: 00000000f7d2af58 (&port_dev->status_lock){+.+.}, at: hub_port_connect drivers/usb/core/hub.c:5020 [inline] #3: 00000000f7d2af58 (&port_dev->status_lock){+.+.}, at: hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] #3: 00000000f7d2af58 (&port_dev->status_lock){+.+.}, at: port_event drivers/usb/core/hub.c:5350 [inline] #3: 00000000f7d2af58 (&port_dev->status_lock){+.+.}, at: hub_event+0x11a3/0x3b00 drivers/usb/core/hub.c:5432 #4: 00000000f0b5cba1 (hcd->address0_mutex){+.+.}, at: hub_port_init+0x1bb/0x2d30 drivers/usb/core/hub.c:4529 5 locks held by kworker/0:6/6023: #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: __write_once_size include/linux/compiler.h:220 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: atomic64_set include/asm-generic/atomic-instrumented.h:855 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: atomic_long_set include/asm-generic/atomic-long.h:40 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: set_work_data kernel/workqueue.c:619 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: set_work_pool_and_clear_pending kernel/workqueue.c:646 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: process_one_work+0x81f/0x1580 kernel/workqueue.c:2240 #1: 00000000f6fcfe1c ((work_completion)(&hub->events)){+.+.}, at: process_one_work+0x853/0x1580 kernel/workqueue.c:2244 #2: 00000000c3342998 (&dev->mutex){....}, at: device_lock include/linux/device.h:1207 [inline] #2: 00000000c3342998 (&dev->mutex){....}, at: hub_event+0x18a/0x3b00 drivers/usb/core/hub.c:5378 #3: 000000004d7e0c6e (&port_dev->status_lock){+.+.}, at: usb_lock_port drivers/usb/core/hub.c:2994 [inline] #3: 000000004d7e0c6e (&port_dev->status_lock){+.+.}, at: hub_port_connect drivers/usb/core/hub.c:5020 [inline] #3: 000000004d7e0c6e (&port_dev->status_lock){+.+.}, at: hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] #3: 000000004d7e0c6e (&port_dev->status_lock){+.+.}, at: port_event drivers/usb/core/hub.c:5350 [inline] #3: 000000004d7e0c6e (&port_dev->status_lock){+.+.}, at: hub_event+0x11a3/0x3b00 drivers/usb/core/hub.c:5432 #4: 00000000f25b0237 (hcd->address0_mutex){+.+.}, at: hub_port_init+0x1bb/0x2d30 drivers/usb/core/hub.c:4529 5 locks held by kworker/1:4/6060: #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: __write_once_size include/linux/compiler.h:220 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: atomic64_set include/asm-generic/atomic-instrumented.h:855 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: atomic_long_set include/asm-generic/atomic-long.h:40 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: set_work_data kernel/workqueue.c:619 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: set_work_pool_and_clear_pending kernel/workqueue.c:646 [inline] #0: 00000000469d4ddc ((wq_completion)usb_hub_wq){+.+.}, at: process_one_work+0x81f/0x1580 kernel/workqueue.c:2240 #1: 00000000a61f1995 ((work_completion)(&hub->events)){+.+.}, at: process_one_work+0x853/0x1580 kernel/workqueue.c:2244 #2: 00000000fd9214fe (&dev->mutex){....}, at: device_lock include/linux/device.h:1207 [inline] #2: 00000000fd9214fe (&dev->mutex){....}, at: hub_event+0x18a/0x3b00 drivers/usb/core/hub.c:5378 #3: 000000000baf27f8 (&port_dev->status_lock){+.+.}, at: usb_lock_port drivers/usb/core/hub.c:2994 [inline] #3: 000000000baf27f8 (&port_dev->status_lock){+.+.}, at: hub_port_connect drivers/usb/core/hub.c:5020 [inline] #3: 000000000baf27f8 (&port_dev->status_lock){+.+.}, at: hub_port_connect_change drivers/usb/core/hub.c:5204 [inline] #3: 000000000baf27f8 (&port_dev->status_lock){+.+.}, at: port_event drivers/usb/core/hub.c:5350 [inline] #3: 000000000baf27f8 (&port_dev->status_lock){+.+.}, at: hub_event+0x11a3/0x3b00 drivers/usb/core/hub.c:5432 #4: 000000006e962192 (hcd->address0_mutex){+.+.}, at: hub_port_init+0x1bb/0x2d30 drivers/usb/core/hub.c:4529 ============================================= NMI backtrace for cpu 1 CPU: 1 PID: 23 Comm: khungtaskd Not tainted 5.1.0-rc4-g9a33b36-dirty #1 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0xe8/0x16e lib/dump_stack.c:113 nmi_cpu_backtrace.cold+0x48/0x87 lib/nmi_backtrace.c:101 nmi_trigger_cpumask_backtrace+0x1a6/0x1bd lib/nmi_backtrace.c:62 trigger_all_cpu_backtrace include/linux/nmi.h:146 [inline] check_hung_uninterruptible_tasks kernel/hung_task.c:204 [inline] watchdog+0x98e/0xe20 kernel/hung_task.c:288 kthread+0x313/0x420 kernel/kthread.c:253 ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352 Sending NMI from CPU 1 to CPUs 0: NMI backtrace for cpu 0 CPU: 0 PID: 5881 Comm: syz-executor.0 Not tainted 5.1.0-rc4-g9a33b36-dirty #1 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 RIP: 0010:__read_once_size include/linux/compiler.h:193 [inline] RIP: 0010:lookup_chain_cache kernel/locking/lockdep.c:2612 [inline] RIP: 0010:lookup_chain_cache_add kernel/locking/lockdep.c:2631 [inline] RIP: 0010:validate_chain kernel/locking/lockdep.c:2685 [inline] RIP: 0010:__lock_acquire+0xfb0/0x37c0 kernel/locking/lockdep.c:3701 Code: 5d 4c 8b 64 24 20 4d 89 cd 48 bd 00 00 00 00 00 fc ff df eb 06 48 83 eb 08 74 40 48 8d 7b 18 48 89 f8 48 c1 e8 03 80 3c 28 00 <0f> 85 f1 18 00 00 48 8b 43 18 49 39 c4 0f 84 73 f9 ff ff 48 8d 7b RSP: 0018:ffff88809908fa50 EFLAGS: 00000046 RAX: 1ffffffff2c188b3 RBX: ffffffff960c4580 RCX: 0000000000001872 RDX: 1ffffffff2cd93fa RSI: ffff88808be80840 RDI: ffffffff960c4598 RBP: dffffc0000000000 R08: 00000000d4b587bd R09: ffffffff966c9fd0 R10: ffff88808be80840 R11: ffff88808be80000 R12: e085ce875e243443 R13: ffffffff966c9fd0 R14: ffffffff93cb0714 R15: 0000000000000001 FS: 0000000000a57940(0000) GS:ffff8880ad000000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fbda8a77000 CR3: 0000000095e60000 CR4: 00000000001406f0 Call Trace: lock_acquire+0x10d/0x2f0 kernel/locking/lockdep.c:4211 __raw_read_lock include/linux/rwlock_api_smp.h:149 [inline] _raw_read_lock+0x2f/0x40 kernel/locking/spinlock.c:216 do_wait+0x38b/0x940 kernel/exit.c:1523 kernel_wait4+0x151/0x260 kernel/exit.c:1668 __do_sys_wait4+0x147/0x160 kernel/exit.c:1680 do_syscall_64+0xcf/0x4f0 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x412c6a Code: 0f 83 6a 18 00 00 c3 66 0f 1f 84 00 00 00 00 00 8b 05 2e 36 64 00 85 c0 75 36 45 31 d2 48 63 d2 48 63 ff b8 3d 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 06 c3 0f 1f 44 00 00 48 c7 c2 d4 ff ff ff f7 RSP: 002b:00007fff92403508 EFLAGS: 00000246 ORIG_RAX: 000000000000003d RAX: ffffffffffffffda RBX: 000000000003d770 RCX: 0000000000412c6a RDX: 0000000040000001 RSI: 00007fff92403540 RDI: ffffffffffffffff RBP: 00000000000000ad R08: 0000000000000001 R09: 0000000000a57940 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001 R13: 00007fff92403540 R14: 000000000003d752 R15: 00007fff92403550 Tested on: commit: 9a33b369 usb-fuzzer: main usb gadget fuzzer driver git tree: https://github.com/google/kasan/tree/usb-fuzzer console output: https://syzkaller.appspot.com/x/log.txt?x=111e62cb200000 kernel config: https://syzkaller.appspot.com/x/.config?x=23e37f59d94ddd15 compiler: gcc (GCC) 9.0.0 20181231 (experimental) patch: https://syzkaller.appspot.com/x/patch.diff?x=1207901d200000 From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: INFO: task hung in usb_kill_urb From: syzbot Message-Id: <0000000000007380f90586a82005@google.com> Date: Tue, 16 Apr 2019 09:19:00 -0700 To: andreyknvl@google.com, gregkh@linuxfoundation.org, gustavo@embeddedor.com, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, stern@rowland.harvard.edu, syzkaller-bugs@googlegroups.com List-ID: SGVsbG8sCgpzeXpib3QgaGFzIHRlc3RlZCB0aGUgcHJvcG9zZWQgcGF0Y2ggYnV0IHRoZSByZXBy b2R1Y2VyIHN0aWxsIHRyaWdnZXJlZCAgCmNyYXNoOgpJTkZPOiB0YXNrIGh1bmcgaW4gdXNiX2tp bGxfdXJiCgp1c2ItZnV6emVyLWdhZGdldCBkdW1teV91ZGMuNDogZmFpbGVkIHRvIHN0YXJ0IFVT QiBmdXp6ZXI6IC0yMgpkdW1teV91ZGMgZHVtbXlfdWRjLjQ6IGR1bW15X3VkY19zdGFydApkdW1t eV91ZGMgZHVtbXlfdWRjLjM6IGR1bW15X3VkY19zdG9wCnVzYi1mdXp6ZXItZ2FkZ2V0IGR1bW15 X3VkYy4zOiBmYWlsZWQgdG8gc3RhcnQgVVNCIGZ1enplcjogLTIyCmR1bW15X3VkYyBkdW1teV91 ZGMuMzogZHVtbXlfdWRjX3N0YXJ0CklORk86IHRhc2sga3dvcmtlci8xOjE6MjEgYmxvY2tlZCBm b3IgbW9yZSB0aGFuIDE0MyBzZWNvbmRzLgogICAgICAgTm90IHRhaW50ZWQgNS4xLjAtcmM0LWc5 YTMzYjM2LWRpcnR5ICMxCiJlY2hvIDAgPiAvcHJvYy9zeXMva2VybmVsL2h1bmdfdGFza190aW1l b3V0X3NlY3MiIGRpc2FibGVzIHRoaXMgbWVzc2FnZS4Ka3dvcmtlci8xOjEgICAgIEQyNjYxNiAg ICAyMSAgICAgIDIgMHg4MDAwMDAwMApXb3JrcXVldWU6IHVzYl9odWJfd3EgaHViX2V2ZW50CkNh bGwgVHJhY2U6CiAgc2NoZWR1bGUrMHg4Zi8weDE4MCBrZXJuZWwvc2NoZWQvY29yZS5jOjM1NjIK ICB1c2Jfa2lsbF91cmIgZHJpdmVycy91c2IvY29yZS91cmIuYzo2OTUgW2lubGluZV0KICB1c2Jf a2lsbF91cmIrMHgyMmEvMHgyYzAgZHJpdmVycy91c2IvY29yZS91cmIuYzo2ODcKICB1c2Jfc3Rh cnRfd2FpdF91cmIrMHgyNTcvMHg0ZDAgZHJpdmVycy91c2IvY29yZS9tZXNzYWdlLmM6NjMKICB1 c2JfaW50ZXJuYWxfY29udHJvbF9tc2cgZHJpdmVycy91c2IvY29yZS9tZXNzYWdlLmM6MTAxIFtp bmxpbmVdCiAgdXNiX2NvbnRyb2xfbXNnKzB4MzIxLzB4NGEwIGRyaXZlcnMvdXNiL2NvcmUvbWVz c2FnZS5jOjE1MgogIGh1Yl9wb3J0X2luaXQrMHg4MWQvMHgyZDMwIGRyaXZlcnMvdXNiL2NvcmUv aHViLmM6NDY1NQogIGh1Yl9wb3J0X2Nvbm5lY3QgZHJpdmVycy91c2IvY29yZS9odWIuYzo1MDIx IFtpbmxpbmVdCiAgaHViX3BvcnRfY29ubmVjdF9jaGFuZ2UgZHJpdmVycy91c2IvY29yZS9odWIu Yzo1MjA0IFtpbmxpbmVdCiAgcG9ydF9ldmVudCBkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjUzNTAg W2lubGluZV0KICBodWJfZXZlbnQrMHgxMWI4LzB4M2IwMCBkcml2ZXJzL3VzYi9jb3JlL2h1Yi5j OjU0MzIKICBwcm9jZXNzX29uZV93b3JrKzB4OTBmLzB4MTU4MCBrZXJuZWwvd29ya3F1ZXVlLmM6 MjI2OQogIHdvcmtlcl90aHJlYWQrMHg5Yi8weGUyMCBrZXJuZWwvd29ya3F1ZXVlLmM6MjQxNQog IGt0aHJlYWQrMHgzMTMvMHg0MjAga2VybmVsL2t0aHJlYWQuYzoyNTMKICByZXRfZnJvbV9mb3Jr KzB4M2EvMHg1MCBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TOjM1MgpJTkZPOiB0YXNrIGt3b3Jr ZXIvMToyOjUzMyBibG9ja2VkIGZvciBtb3JlIHRoYW4gMTQzIHNlY29uZHMuCiAgICAgICBOb3Qg dGFpbnRlZCA1LjEuMC1yYzQtZzlhMzNiMzYtZGlydHkgIzEKImVjaG8gMCA+IC9wcm9jL3N5cy9r ZXJuZWwvaHVuZ190YXNrX3RpbWVvdXRfc2VjcyIgZGlzYWJsZXMgdGhpcyBtZXNzYWdlLgprd29y a2VyLzE6MiAgICAgRDI1NzYwICAgNTMzICAgICAgMiAweDgwMDAwMDAwCldvcmtxdWV1ZTogdXNi X2h1Yl93cSBodWJfZXZlbnQKQ2FsbCBUcmFjZToKICBzY2hlZHVsZSsweDhmLzB4MTgwIGtlcm5l bC9zY2hlZC9jb3JlLmM6MzU2MgogIHVzYl9raWxsX3VyYiBkcml2ZXJzL3VzYi9jb3JlL3VyYi5j OjY5NSBbaW5saW5lXQogIHVzYl9raWxsX3VyYisweDIyYS8weDJjMCBkcml2ZXJzL3VzYi9jb3Jl L3VyYi5jOjY4NwogIHVzYl9zdGFydF93YWl0X3VyYisweDI1Ny8weDRkMCBkcml2ZXJzL3VzYi9j b3JlL21lc3NhZ2UuYzo2MwogIHVzYl9pbnRlcm5hbF9jb250cm9sX21zZyBkcml2ZXJzL3VzYi9j b3JlL21lc3NhZ2UuYzoxMDEgW2lubGluZV0KICB1c2JfY29udHJvbF9tc2crMHgzMjEvMHg0YTAg ZHJpdmVycy91c2IvY29yZS9tZXNzYWdlLmM6MTUyCiAgaHViX3BvcnRfaW5pdCsweDgxZC8weDJk MzAgZHJpdmVycy91c2IvY29yZS9odWIuYzo0NjU1CiAgaHViX3BvcnRfY29ubmVjdCBkcml2ZXJz L3VzYi9jb3JlL2h1Yi5jOjUwMjEgW2lubGluZV0KICBodWJfcG9ydF9jb25uZWN0X2NoYW5nZSBk cml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjUyMDQgW2lubGluZV0KICBwb3J0X2V2ZW50IGRyaXZlcnMv dXNiL2NvcmUvaHViLmM6NTM1MCBbaW5saW5lXQogIGh1Yl9ldmVudCsweDExYjgvMHgzYjAwIGRy aXZlcnMvdXNiL2NvcmUvaHViLmM6NTQzMgogIHByb2Nlc3Nfb25lX3dvcmsrMHg5MGYvMHgxNTgw IGtlcm5lbC93b3JrcXVldWUuYzoyMjY5CmR1bW15X3VkYyBkdW1teV91ZGMuMjogZHVtbXlfdWRj X3N0b3AKICB3b3JrZXJfdGhyZWFkKzB4OWIvMHhlMjAga2VybmVsL3dvcmtxdWV1ZS5jOjI0MTUK ICBrdGhyZWFkKzB4MzEzLzB4NDIwIGtlcm5lbC9rdGhyZWFkLmM6MjUzCiAgcmV0X2Zyb21fZm9y aysweDNhLzB4NTAgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzozNTIKSU5GTzogdGFzayBrd29y a2VyLzA6NDo2MDE0IGJsb2NrZWQgZm9yIG1vcmUgdGhhbiAxNDMgc2Vjb25kcy4KICAgICAgIE5v dCB0YWludGVkIDUuMS4wLXJjNC1nOWEzM2IzNi1kaXJ0eSAjMQoiZWNobyAwID4gL3Byb2Mvc3lz L2tlcm5lbC9odW5nX3Rhc2tfdGltZW91dF9zZWNzIiBkaXNhYmxlcyB0aGlzIG1lc3NhZ2UuCmt3 b3JrZXIvMDo0ICAgICBEMjc3NTIgIDYwMTQgICAgICAyIDB4ODAwMDAwMDAKV29ya3F1ZXVlOiB1 c2JfaHViX3dxIGh1Yl9ldmVudApDYWxsIFRyYWNlOgp1c2ItZnV6emVyLWdhZGdldCBkdW1teV91 ZGMuMjogZmFpbGVkIHRvIHN0YXJ0IFVTQiBmdXp6ZXI6IC0yMgogIHNjaGVkdWxlKzB4OGYvMHgx ODAga2VybmVsL3NjaGVkL2NvcmUuYzozNTYyCiAgdXNiX2tpbGxfdXJiIGRyaXZlcnMvdXNiL2Nv cmUvdXJiLmM6Njk1IFtpbmxpbmVdCiAgdXNiX2tpbGxfdXJiKzB4MjJhLzB4MmMwIGRyaXZlcnMv dXNiL2NvcmUvdXJiLmM6Njg3CiAgdXNiX3N0YXJ0X3dhaXRfdXJiKzB4MjU3LzB4NGQwIGRyaXZl cnMvdXNiL2NvcmUvbWVzc2FnZS5jOjYzCmR1bW15X3VkYyBkdW1teV91ZGMuNTogZHVtbXlfdWRj X3N0b3AKICB1c2JfaW50ZXJuYWxfY29udHJvbF9tc2cgZHJpdmVycy91c2IvY29yZS9tZXNzYWdl LmM6MTAxIFtpbmxpbmVdCiAgdXNiX2NvbnRyb2xfbXNnKzB4MzIxLzB4NGEwIGRyaXZlcnMvdXNi L2NvcmUvbWVzc2FnZS5jOjE1MgogIGh1Yl9wb3J0X2luaXQrMHg4MWQvMHgyZDMwIGRyaXZlcnMv dXNiL2NvcmUvaHViLmM6NDY1NQogIGh1Yl9wb3J0X2Nvbm5lY3QgZHJpdmVycy91c2IvY29yZS9o dWIuYzo1MDIxIFtpbmxpbmVdCiAgaHViX3BvcnRfY29ubmVjdF9jaGFuZ2UgZHJpdmVycy91c2Iv Y29yZS9odWIuYzo1MjA0IFtpbmxpbmVdCiAgcG9ydF9ldmVudCBkcml2ZXJzL3VzYi9jb3JlL2h1 Yi5jOjUzNTAgW2lubGluZV0KICBodWJfZXZlbnQrMHgxMWI4LzB4M2IwMCBkcml2ZXJzL3VzYi9j b3JlL2h1Yi5jOjU0MzIKICBwcm9jZXNzX29uZV93b3JrKzB4OTBmLzB4MTU4MCBrZXJuZWwvd29y a3F1ZXVlLmM6MjI2OQp1c2ItZnV6emVyLWdhZGdldCBkdW1teV91ZGMuNTogZmFpbGVkIHRvIHN0 YXJ0IFVTQiBmdXp6ZXI6IC0yMgogIHdvcmtlcl90aHJlYWQrMHg5Yi8weGUyMCBrZXJuZWwvd29y a3F1ZXVlLmM6MjQxNQogIGt0aHJlYWQrMHgzMTMvMHg0MjAga2VybmVsL2t0aHJlYWQuYzoyNTMK ZHVtbXlfdWRjIGR1bW15X3VkYy4xOiBkdW1teV91ZGNfc3RvcAogIHJldF9mcm9tX2ZvcmsrMHgz YS8weDUwIGFyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlM6MzUyCmR1bW15X3VkYyBkdW1teV91ZGMu MjogZHVtbXlfdWRjX3N0YXJ0CklORk86IHRhc2sga3dvcmtlci8wOjU6NjAxOSBibG9ja2VkIGZv ciBtb3JlIHRoYW4gMTQzIHNlY29uZHMuCiAgICAgICBOb3QgdGFpbnRlZCA1LjEuMC1yYzQtZzlh MzNiMzYtZGlydHkgIzEKImVjaG8gMCA+IC9wcm9jL3N5cy9rZXJuZWwvaHVuZ190YXNrX3RpbWVv dXRfc2VjcyIgZGlzYWJsZXMgdGhpcyBtZXNzYWdlLgp1c2ItZnV6emVyLWdhZGdldCBkdW1teV91 ZGMuMTogZmFpbGVkIHRvIHN0YXJ0IFVTQiBmdXp6ZXI6IC0yMgprd29ya2VyLzA6NSAgICAgRDI3 NzUyICA2MDE5ICAgICAgMiAweDgwMDAwMDAwCldvcmtxdWV1ZTogdXNiX2h1Yl93cSBodWJfZXZl bnQKQ2FsbCBUcmFjZToKICBzY2hlZHVsZSsweDhmLzB4MTgwIGtlcm5lbC9zY2hlZC9jb3JlLmM6 MzU2MgogIHVzYl9raWxsX3VyYiBkcml2ZXJzL3VzYi9jb3JlL3VyYi5jOjY5NSBbaW5saW5lXQog IHVzYl9raWxsX3VyYisweDIyYS8weDJjMCBkcml2ZXJzL3VzYi9jb3JlL3VyYi5jOjY4NwpkdW1t eV91ZGMgZHVtbXlfdWRjLjU6IGR1bW15X3VkY19zdGFydApkdW1teV91ZGMgZHVtbXlfdWRjLjE6 IGR1bW15X3VkY19zdGFydAogIHVzYl9zdGFydF93YWl0X3VyYisweDI1Ny8weDRkMCBkcml2ZXJz L3VzYi9jb3JlL21lc3NhZ2UuYzo2MwpkdW1teV91ZGMgZHVtbXlfdWRjLjA6IGR1bW15X3VkY19z dG9wCiAgdXNiX2ludGVybmFsX2NvbnRyb2xfbXNnIGRyaXZlcnMvdXNiL2NvcmUvbWVzc2FnZS5j OjEwMSBbaW5saW5lXQogIHVzYl9jb250cm9sX21zZysweDMyMS8weDRhMCBkcml2ZXJzL3VzYi9j b3JlL21lc3NhZ2UuYzoxNTIKICBodWJfcG9ydF9pbml0KzB4ODFkLzB4MmQzMCBkcml2ZXJzL3Vz Yi9jb3JlL2h1Yi5jOjQ2NTUKICBodWJfcG9ydF9jb25uZWN0IGRyaXZlcnMvdXNiL2NvcmUvaHVi LmM6NTAyMSBbaW5saW5lXQogIGh1Yl9wb3J0X2Nvbm5lY3RfY2hhbmdlIGRyaXZlcnMvdXNiL2Nv cmUvaHViLmM6NTIwNCBbaW5saW5lXQogIHBvcnRfZXZlbnQgZHJpdmVycy91c2IvY29yZS9odWIu Yzo1MzUwIFtpbmxpbmVdCiAgaHViX2V2ZW50KzB4MTFiOC8weDNiMDAgZHJpdmVycy91c2IvY29y ZS9odWIuYzo1NDMyCiAgcHJvY2Vzc19vbmVfd29yaysweDkwZi8weDE1ODAga2VybmVsL3dvcmtx dWV1ZS5jOjIyNjkKdXNiLWZ1enplci1nYWRnZXQgZHVtbXlfdWRjLjA6IGZhaWxlZCB0byBzdGFy dCBVU0IgZnV6emVyOiAtMjIKICB3b3JrZXJfdGhyZWFkKzB4OWIvMHhlMjAga2VybmVsL3dvcmtx dWV1ZS5jOjI0MTUKICBrdGhyZWFkKzB4MzEzLzB4NDIwIGtlcm5lbC9rdGhyZWFkLmM6MjUzCiAg cmV0X2Zyb21fZm9yaysweDNhLzB4NTAgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzozNTIKSU5G TzogdGFzayBrd29ya2VyLzE6NDo2MDYwIGJsb2NrZWQgZm9yIG1vcmUgdGhhbiAxNDQgc2Vjb25k cy4KICAgICAgIE5vdCB0YWludGVkIDUuMS4wLXJjNC1nOWEzM2IzNi1kaXJ0eSAjMQoiZWNobyAw ID4gL3Byb2Mvc3lzL2tlcm5lbC9odW5nX3Rhc2tfdGltZW91dF9zZWNzIiBkaXNhYmxlcyB0aGlz IG1lc3NhZ2UuCmt3b3JrZXIvMTo0ICAgICBEMjc3NTIgIDYwNjAgICAgICAyIDB4ODAwMDAwMDAK ZHVtbXlfdWRjIGR1bW15X3VkYy4wOiBkdW1teV91ZGNfc3RhcnQKV29ya3F1ZXVlOiB1c2JfaHVi X3dxIGh1Yl9ldmVudApDYWxsIFRyYWNlOgogIHNjaGVkdWxlKzB4OGYvMHgxODAga2VybmVsL3Nj aGVkL2NvcmUuYzozNTYyCiAgdXNiX2tpbGxfdXJiIGRyaXZlcnMvdXNiL2NvcmUvdXJiLmM6Njk1 IFtpbmxpbmVdCiAgdXNiX2tpbGxfdXJiKzB4MjJhLzB4MmMwIGRyaXZlcnMvdXNiL2NvcmUvdXJi LmM6Njg3CiAgdXNiX3N0YXJ0X3dhaXRfdXJiKzB4MjU3LzB4NGQwIGRyaXZlcnMvdXNiL2NvcmUv bWVzc2FnZS5jOjYzCiAgdXNiX2ludGVybmFsX2NvbnRyb2xfbXNnIGRyaXZlcnMvdXNiL2NvcmUv bWVzc2FnZS5jOjEwMSBbaW5saW5lXQogIHVzYl9jb250cm9sX21zZysweDMyMS8weDRhMCBkcml2 ZXJzL3VzYi9jb3JlL21lc3NhZ2UuYzoxNTIKICBodWJfcG9ydF9pbml0KzB4ODFkLzB4MmQzMCBk cml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjQ2NTUKICBodWJfcG9ydF9jb25uZWN0IGRyaXZlcnMvdXNi L2NvcmUvaHViLmM6NTAyMSBbaW5saW5lXQogIGh1Yl9wb3J0X2Nvbm5lY3RfY2hhbmdlIGRyaXZl cnMvdXNiL2NvcmUvaHViLmM6NTIwNCBbaW5saW5lXQogIHBvcnRfZXZlbnQgZHJpdmVycy91c2Iv Y29yZS9odWIuYzo1MzUwIFtpbmxpbmVdCiAgaHViX2V2ZW50KzB4MTFiOC8weDNiMDAgZHJpdmVy cy91c2IvY29yZS9odWIuYzo1NDMyCiAgcHJvY2Vzc19vbmVfd29yaysweDkwZi8weDE1ODAga2Vy bmVsL3dvcmtxdWV1ZS5jOjIyNjkKICB3b3JrZXJfdGhyZWFkKzB4OWIvMHhlMjAga2VybmVsL3dv cmtxdWV1ZS5jOjI0MTUKICBrdGhyZWFkKzB4MzEzLzB4NDIwIGtlcm5lbC9rdGhyZWFkLmM6MjUz CiAgcmV0X2Zyb21fZm9yaysweDNhLzB4NTAgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzozNTIK ClNob3dpbmcgYWxsIGxvY2tzIGhlbGQgaW4gdGhlIHN5c3RlbToKNSBsb2NrcyBoZWxkIGJ5IGt3 b3JrZXIvMToxLzIxOgpkdW1teV91ZGMgZHVtbXlfdWRjLjQ6IGR1bW15X3VkY19zdG9wCiAgIzA6 IDAwMDAwMDAwNDY5ZDRkZGMgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDog IApfX3dyaXRlX29uY2Vfc2l6ZSBpbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmg6MjIwIFtpbmxpbmVd CiAgIzA6IDAwMDAwMDAwNDY5ZDRkZGMgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59 LCBhdDogIAphcmNoX2F0b21pYzY0X3NldCBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82 NC5oOjM0IFtpbmxpbmVdCiAgIzA6IDAwMDAwMDAwNDY5ZDRkZGMgKCh3cV9jb21wbGV0aW9uKXVz Yl9odWJfd3EpeysuKy59LCBhdDogYXRvbWljNjRfc2V0ICAKaW5jbHVkZS9hc20tZ2VuZXJpYy9h dG9taWMtaW5zdHJ1bWVudGVkLmg6ODU1IFtpbmxpbmVdCiAgIzA6IDAwMDAwMDAwNDY5ZDRkZGMg KCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDogIAphdG9taWNfbG9uZ19zZXQg aW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtbG9uZy5oOjQwIFtpbmxpbmVdCiAgIzA6IDAwMDAw MDAwNDY5ZDRkZGMgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDogc2V0X3dv cmtfZGF0YSAgCmtlcm5lbC93b3JrcXVldWUuYzo2MTkgW2lubGluZV0KICAjMDogMDAwMDAwMDA0 NjlkNGRkYyAoKHdxX2NvbXBsZXRpb24pdXNiX2h1Yl93cSl7Ky4rLn0sIGF0OiAgCnNldF93b3Jr X3Bvb2xfYW5kX2NsZWFyX3BlbmRpbmcga2VybmVsL3dvcmtxdWV1ZS5jOjY0NiBbaW5saW5lXQog ICMwOiAwMDAwMDAwMDQ2OWQ0ZGRjICgod3FfY29tcGxldGlvbil1c2JfaHViX3dxKXsrLisufSwg YXQ6ICAKcHJvY2Vzc19vbmVfd29yaysweDgxZi8weDE1ODAga2VybmVsL3dvcmtxdWV1ZS5jOjIy NDAKICAjMTogMDAwMDAwMDBiZWYxMjUyNSAoKHdvcmtfY29tcGxldGlvbikoJmh1Yi0+ZXZlbnRz KSl7Ky4rLn0sIGF0OiAgCnByb2Nlc3Nfb25lX3dvcmsrMHg4NTMvMHgxNTgwIGtlcm5lbC93b3Jr cXVldWUuYzoyMjQ0CiAgIzI6IDAwMDAwMDAwOWEzMzdiMjAgKCZkZXYtPm11dGV4KXsuLi4ufSwg YXQ6IGRldmljZV9sb2NrICAKaW5jbHVkZS9saW51eC9kZXZpY2UuaDoxMjA3IFtpbmxpbmVdCiAg IzI6IDAwMDAwMDAwOWEzMzdiMjAgKCZkZXYtPm11dGV4KXsuLi4ufSwgYXQ6IGh1Yl9ldmVudCsw eDE4YS8weDNiMDAgIApkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjUzNzgKICAjMzogMDAwMDAwMDA0 NDk1OTlkNSAoJnBvcnRfZGV2LT5zdGF0dXNfbG9jayl7Ky4rLn0sIGF0OiB1c2JfbG9ja19wb3J0 ICAKZHJpdmVycy91c2IvY29yZS9odWIuYzoyOTk0IFtpbmxpbmVdCiAgIzM6IDAwMDAwMDAwNDQ5 NTk5ZDUgKCZwb3J0X2Rldi0+c3RhdHVzX2xvY2speysuKy59LCBhdDogaHViX3BvcnRfY29ubmVj dCAgCmRyaXZlcnMvdXNiL2NvcmUvaHViLmM6NTAyMCBbaW5saW5lXQogICMzOiAwMDAwMDAwMDQ0 OTU5OWQ1ICgmcG9ydF9kZXYtPnN0YXR1c19sb2NrKXsrLisufSwgYXQ6ICAKaHViX3BvcnRfY29u bmVjdF9jaGFuZ2UgZHJpdmVycy91c2IvY29yZS9odWIuYzo1MjA0IFtpbmxpbmVdCiAgIzM6IDAw MDAwMDAwNDQ5NTk5ZDUgKCZwb3J0X2Rldi0+c3RhdHVzX2xvY2speysuKy59LCBhdDogcG9ydF9l dmVudCAgCmRyaXZlcnMvdXNiL2NvcmUvaHViLmM6NTM1MCBbaW5saW5lXQogICMzOiAwMDAwMDAw MDQ0OTU5OWQ1ICgmcG9ydF9kZXYtPnN0YXR1c19sb2NrKXsrLisufSwgYXQ6ICAKaHViX2V2ZW50 KzB4MTFhMy8weDNiMDAgZHJpdmVycy91c2IvY29yZS9odWIuYzo1NDMyCnVzYi1mdXp6ZXItZ2Fk Z2V0IGR1bW15X3VkYy40OiBmYWlsZWQgdG8gc3RhcnQgVVNCIGZ1enplcjogLTIyCiAgIzQ6IDAw MDAwMDAwYmQ2OTNlNmQgKGhjZC0+YWRkcmVzczBfbXV0ZXgpeysuKy59LCBhdDogIApodWJfcG9y dF9pbml0KzB4MWJiLzB4MmQzMCBkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjQ1MjkKMSBsb2NrIGhl bGQgYnkga2h1bmd0YXNrZC8yMzoKICAjMDogMDAwMDAwMDBjMjQ5Njc5ZiAocmN1X3JlYWRfbG9j ayl7Li4uLn0sIGF0OiAgCmRlYnVnX3Nob3dfYWxsX2xvY2tzKzB4NTMvMHgyNjkga2VybmVsL2xv Y2tpbmcvbG9ja2RlcC5jOjUwNTkKNSBsb2NrcyBoZWxkIGJ5IGt3b3JrZXIvMToyLzUzMzoKICAj MDogMDAwMDAwMDA0NjlkNGRkYyAoKHdxX2NvbXBsZXRpb24pdXNiX2h1Yl93cSl7Ky4rLn0sIGF0 OiAgCl9fd3JpdGVfb25jZV9zaXplIGluY2x1ZGUvbGludXgvY29tcGlsZXIuaDoyMjAgW2lubGlu ZV0KICAjMDogMDAwMDAwMDA0NjlkNGRkYyAoKHdxX2NvbXBsZXRpb24pdXNiX2h1Yl93cSl7Ky4r Ln0sIGF0OiAgCmFyY2hfYXRvbWljNjRfc2V0IGFyY2gveDg2L2luY2x1ZGUvYXNtL2F0b21pYzY0 XzY0Lmg6MzQgW2lubGluZV0KICAjMDogMDAwMDAwMDA0NjlkNGRkYyAoKHdxX2NvbXBsZXRpb24p dXNiX2h1Yl93cSl7Ky4rLn0sIGF0OiBhdG9taWM2NF9zZXQgIAppbmNsdWRlL2FzbS1nZW5lcmlj L2F0b21pYy1pbnN0cnVtZW50ZWQuaDo4NTUgW2lubGluZV0KICAjMDogMDAwMDAwMDA0NjlkNGRk YyAoKHdxX2NvbXBsZXRpb24pdXNiX2h1Yl93cSl7Ky4rLn0sIGF0OiAgCmF0b21pY19sb25nX3Nl dCBpbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy1sb25nLmg6NDAgW2lubGluZV0KICAjMDogMDAw MDAwMDA0NjlkNGRkYyAoKHdxX2NvbXBsZXRpb24pdXNiX2h1Yl93cSl7Ky4rLn0sIGF0OiBzZXRf d29ya19kYXRhICAKa2VybmVsL3dvcmtxdWV1ZS5jOjYxOSBbaW5saW5lXQogICMwOiAwMDAwMDAw MDQ2OWQ0ZGRjICgod3FfY29tcGxldGlvbil1c2JfaHViX3dxKXsrLisufSwgYXQ6ICAKc2V0X3dv cmtfcG9vbF9hbmRfY2xlYXJfcGVuZGluZyBrZXJuZWwvd29ya3F1ZXVlLmM6NjQ2IFtpbmxpbmVd CiAgIzA6IDAwMDAwMDAwNDY5ZDRkZGMgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59 LCBhdDogIApwcm9jZXNzX29uZV93b3JrKzB4ODFmLzB4MTU4MCBrZXJuZWwvd29ya3F1ZXVlLmM6 MjI0MApkdW1teV91ZGMgZHVtbXlfdWRjLjM6IGR1bW15X3VkY19zdG9wCiAgIzE6IDAwMDAwMDAw MGIyYzMyNjggKCh3b3JrX2NvbXBsZXRpb24pKCZodWItPmV2ZW50cykpeysuKy59LCBhdDogIApw cm9jZXNzX29uZV93b3JrKzB4ODUzLzB4MTU4MCBrZXJuZWwvd29ya3F1ZXVlLmM6MjI0NAogICMy OiAwMDAwMDAwMDVlNDIyZTMzICgmZGV2LT5tdXRleCl7Li4uLn0sIGF0OiBkZXZpY2VfbG9jayAg CmluY2x1ZGUvbGludXgvZGV2aWNlLmg6MTIwNyBbaW5saW5lXQogICMyOiAwMDAwMDAwMDVlNDIy ZTMzICgmZGV2LT5tdXRleCl7Li4uLn0sIGF0OiBodWJfZXZlbnQrMHgxOGEvMHgzYjAwICAKZHJp dmVycy91c2IvY29yZS9odWIuYzo1Mzc4CmR1bW15X3VkYyBkdW1teV91ZGMuNDogZHVtbXlfdWRj X3N0YXJ0CiAgIzM6IDAwMDAwMDAwYTdmZmRhNWIgKCZwb3J0X2Rldi0+c3RhdHVzX2xvY2speysu Ky59LCBhdDogdXNiX2xvY2tfcG9ydCAgCmRyaXZlcnMvdXNiL2NvcmUvaHViLmM6Mjk5NCBbaW5s aW5lXQogICMzOiAwMDAwMDAwMGE3ZmZkYTViICgmcG9ydF9kZXYtPnN0YXR1c19sb2NrKXsrLisu fSwgYXQ6IGh1Yl9wb3J0X2Nvbm5lY3QgIApkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjUwMjAgW2lu bGluZV0KICAjMzogMDAwMDAwMDBhN2ZmZGE1YiAoJnBvcnRfZGV2LT5zdGF0dXNfbG9jayl7Ky4r Ln0sIGF0OiAgCmh1Yl9wb3J0X2Nvbm5lY3RfY2hhbmdlIGRyaXZlcnMvdXNiL2NvcmUvaHViLmM6 NTIwNCBbaW5saW5lXQogICMzOiAwMDAwMDAwMGE3ZmZkYTViICgmcG9ydF9kZXYtPnN0YXR1c19s b2NrKXsrLisufSwgYXQ6IHBvcnRfZXZlbnQgIApkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjUzNTAg W2lubGluZV0KICAjMzogMDAwMDAwMDBhN2ZmZGE1YiAoJnBvcnRfZGV2LT5zdGF0dXNfbG9jayl7 Ky4rLn0sIGF0OiAgCmh1Yl9ldmVudCsweDExYTMvMHgzYjAwIGRyaXZlcnMvdXNiL2NvcmUvaHVi LmM6NTQzMgogICM0OiAwMDAwMDAwMDQwMTcxZGUyIChoY2QtPmFkZHJlc3MwX211dGV4KXsrLisu fSwgYXQ6ICAKaHViX3BvcnRfaW5pdCsweDFiYi8weDJkMzAgZHJpdmVycy91c2IvY29yZS9odWIu Yzo0NTI5CjEgbG9jayBoZWxkIGJ5IHJzeXNsb2dkLzU2NjM6CiAgIzA6IDAwMDAwMDAwZWI0OTc1 MzQgKCZmLT5mX3Bvc19sb2NrKXsrLisufSwgYXQ6IF9fZmRnZXRfcG9zKzB4ZTgvMHgxMDAgIApm cy9maWxlLmM6ODAxCjIgbG9ja3MgaGVsZCBieSBnZXR0eS81NzUzOgp1c2ItZnV6emVyLWdhZGdl dCBkdW1teV91ZGMuMzogZmFpbGVkIHRvIHN0YXJ0IFVTQiBmdXp6ZXI6IC0yMgogICMwOiAwMDAw MDAwMDYwY2FiYmI5ICgmdHR5LT5sZGlzY19zZW0peysrKyt9LCBhdDogIAp0dHlfbGRpc2NfcmVm X3dhaXQrMHgyNy8weDgwIGRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jOjI3MgogICMxOiAwMDAwMDAw MGM1NTQ0NDFiICgmbGRhdGEtPmF0b21pY19yZWFkX2xvY2speysuKy59LCBhdDogIApuX3R0eV9y ZWFkKzB4MjFjLzB4MWE2MCBkcml2ZXJzL3R0eS9uX3R0eS5jOjIxNTYKMiBsb2NrcyBoZWxkIGJ5 IGdldHR5LzU3NTQ6CiAgIzA6IDAwMDAwMDAwYmMyZTMyNDMgKCZ0dHktPmxkaXNjX3NlbSl7Kysr K30sIGF0OiAgCnR0eV9sZGlzY19yZWZfd2FpdCsweDI3LzB4ODAgZHJpdmVycy90dHkvdHR5X2xk aXNjLmM6MjcyCiAgIzE6IDAwMDAwMDAwYzEwNWFhMTIgKCZsZGF0YS0+YXRvbWljX3JlYWRfbG9j ayl7Ky4rLn0sIGF0OiAgCm5fdHR5X3JlYWQrMHgyMWMvMHgxYTYwIGRyaXZlcnMvdHR5L25fdHR5 LmM6MjE1NgoyIGxvY2tzIGhlbGQgYnkgZ2V0dHkvNTc1NToKICAjMDogMDAwMDAwMDBlNmQ4MmNj OSAoJnR0eS0+bGRpc2Nfc2VtKXsrKysrfSwgYXQ6ICAKdHR5X2xkaXNjX3JlZl93YWl0KzB4Mjcv MHg4MCBkcml2ZXJzL3R0eS90dHlfbGRpc2MuYzoyNzIKICAjMTogMDAwMDAwMDA3NDc4Yzc3YSAo JmxkYXRhLT5hdG9taWNfcmVhZF9sb2NrKXsrLisufSwgYXQ6ICAKbl90dHlfcmVhZCsweDIxYy8w eDFhNjAgZHJpdmVycy90dHkvbl90dHkuYzoyMTU2CmR1bW15X3VkYyBkdW1teV91ZGMuMzogZHVt bXlfdWRjX3N0YXJ0CjIgbG9ja3MgaGVsZCBieSBnZXR0eS81NzU2OgogICMwOiAwMDAwMDAwMGJk ZjdmMjAxICgmdHR5LT5sZGlzY19zZW0peysrKyt9LCBhdDogIAp0dHlfbGRpc2NfcmVmX3dhaXQr MHgyNy8weDgwIGRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jOjI3MgogICMxOiAwMDAwMDAwMDI3YjAw NjBiICgmbGRhdGEtPmF0b21pY19yZWFkX2xvY2speysuKy59LCBhdDogIApuX3R0eV9yZWFkKzB4 MjFjLzB4MWE2MCBkcml2ZXJzL3R0eS9uX3R0eS5jOjIxNTYKMiBsb2NrcyBoZWxkIGJ5IGdldHR5 LzU3NTc6CiAgIzA6IDAwMDAwMDAwZWEyNTIyNWUgKCZ0dHktPmxkaXNjX3NlbSl7KysrK30sIGF0 OiAgCnR0eV9sZGlzY19yZWZfd2FpdCsweDI3LzB4ODAgZHJpdmVycy90dHkvdHR5X2xkaXNjLmM6 MjcyCiAgIzE6IDAwMDAwMDAwMzNjN2M2YjAgKCZsZGF0YS0+YXRvbWljX3JlYWRfbG9jayl7Ky4r Ln0sIGF0OiAgCm5fdHR5X3JlYWQrMHgyMWMvMHgxYTYwIGRyaXZlcnMvdHR5L25fdHR5LmM6MjE1 NgoyIGxvY2tzIGhlbGQgYnkgZ2V0dHkvNTc1ODoKICAjMDogMDAwMDAwMDAyNmUyMmI4ZSAoJnR0 eS0+bGRpc2Nfc2VtKXsrKysrfSwgYXQ6ICAKdHR5X2xkaXNjX3JlZl93YWl0KzB4MjcvMHg4MCBk cml2ZXJzL3R0eS90dHlfbGRpc2MuYzoyNzIKICAjMTogMDAwMDAwMDBjYzlkOTliNiAoJmxkYXRh LT5hdG9taWNfcmVhZF9sb2NrKXsrLisufSwgYXQ6ICAKbl90dHlfcmVhZCsweDIxYy8weDFhNjAg ZHJpdmVycy90dHkvbl90dHkuYzoyMTU2CjIgbG9ja3MgaGVsZCBieSBnZXR0eS81NzU5OgogICMw OiAwMDAwMDAwMDBjNTZmMzdmICgmdHR5LT5sZGlzY19zZW0peysrKyt9LCBhdDogIAp0dHlfbGRp c2NfcmVmX3dhaXQrMHgyNy8weDgwIGRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jOjI3MgogICMxOiAw MDAwMDAwMDk2YjVlYzMwICgmbGRhdGEtPmF0b21pY19yZWFkX2xvY2speysuKy59LCBhdDogIApu X3R0eV9yZWFkKzB4MjFjLzB4MWE2MCBkcml2ZXJzL3R0eS9uX3R0eS5jOjIxNTYKNSBsb2NrcyBo ZWxkIGJ5IGt3b3JrZXIvMDo0LzYwMTQ6CiAgIzA6IDAwMDAwMDAwNDY5ZDRkZGMgKCh3cV9jb21w bGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDogIApfX3dyaXRlX29uY2Vfc2l6ZSBpbmNsdWRl L2xpbnV4L2NvbXBpbGVyLmg6MjIwIFtpbmxpbmVdCiAgIzA6IDAwMDAwMDAwNDY5ZDRkZGMgKCh3 cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDogIAphcmNoX2F0b21pYzY0X3NldCBh cmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5oOjM0IFtpbmxpbmVdCiAgIzA6IDAwMDAw MDAwNDY5ZDRkZGMgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDogYXRvbWlj NjRfc2V0ICAKaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmg6ODU1IFtp bmxpbmVdCiAgIzA6IDAwMDAwMDAwNDY5ZDRkZGMgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3Ep eysuKy59LCBhdDogIAphdG9taWNfbG9uZ19zZXQgaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMt bG9uZy5oOjQwIFtpbmxpbmVdCiAgIzA6IDAwMDAwMDAwNDY5ZDRkZGMgKCh3cV9jb21wbGV0aW9u KXVzYl9odWJfd3EpeysuKy59LCBhdDogc2V0X3dvcmtfZGF0YSAgCmtlcm5lbC93b3JrcXVldWUu Yzo2MTkgW2lubGluZV0KICAjMDogMDAwMDAwMDA0NjlkNGRkYyAoKHdxX2NvbXBsZXRpb24pdXNi X2h1Yl93cSl7Ky4rLn0sIGF0OiAgCnNldF93b3JrX3Bvb2xfYW5kX2NsZWFyX3BlbmRpbmcga2Vy bmVsL3dvcmtxdWV1ZS5jOjY0NiBbaW5saW5lXQogICMwOiAwMDAwMDAwMDQ2OWQ0ZGRjICgod3Ff Y29tcGxldGlvbil1c2JfaHViX3dxKXsrLisufSwgYXQ6ICAKcHJvY2Vzc19vbmVfd29yaysweDgx Zi8weDE1ODAga2VybmVsL3dvcmtxdWV1ZS5jOjIyNDAKICAjMTogMDAwMDAwMDA4ODU4ZDA0ZiAo KHdvcmtfY29tcGxldGlvbikoJmh1Yi0+ZXZlbnRzKSl7Ky4rLn0sIGF0OiAgCnByb2Nlc3Nfb25l X3dvcmsrMHg4NTMvMHgxNTgwIGtlcm5lbC93b3JrcXVldWUuYzoyMjQ0CiAgIzI6IDAwMDAwMDAw MzVmYTRhOTUgKCZkZXYtPm11dGV4KXsuLi4ufSwgYXQ6IGRldmljZV9sb2NrICAKaW5jbHVkZS9s aW51eC9kZXZpY2UuaDoxMjA3IFtpbmxpbmVdCiAgIzI6IDAwMDAwMDAwMzVmYTRhOTUgKCZkZXYt Pm11dGV4KXsuLi4ufSwgYXQ6IGh1Yl9ldmVudCsweDE4YS8weDNiMDAgIApkcml2ZXJzL3VzYi9j b3JlL2h1Yi5jOjUzNzgKICAjMzogMDAwMDAwMDBiOWU4YmM3YiAoJnBvcnRfZGV2LT5zdGF0dXNf bG9jayl7Ky4rLn0sIGF0OiB1c2JfbG9ja19wb3J0ICAKZHJpdmVycy91c2IvY29yZS9odWIuYzoy OTk0IFtpbmxpbmVdCiAgIzM6IDAwMDAwMDAwYjllOGJjN2IgKCZwb3J0X2Rldi0+c3RhdHVzX2xv Y2speysuKy59LCBhdDogaHViX3BvcnRfY29ubmVjdCAgCmRyaXZlcnMvdXNiL2NvcmUvaHViLmM6 NTAyMCBbaW5saW5lXQogICMzOiAwMDAwMDAwMGI5ZThiYzdiICgmcG9ydF9kZXYtPnN0YXR1c19s b2NrKXsrLisufSwgYXQ6ICAKaHViX3BvcnRfY29ubmVjdF9jaGFuZ2UgZHJpdmVycy91c2IvY29y ZS9odWIuYzo1MjA0IFtpbmxpbmVdCiAgIzM6IDAwMDAwMDAwYjllOGJjN2IgKCZwb3J0X2Rldi0+ c3RhdHVzX2xvY2speysuKy59LCBhdDogcG9ydF9ldmVudCAgCmRyaXZlcnMvdXNiL2NvcmUvaHVi LmM6NTM1MCBbaW5saW5lXQogICMzOiAwMDAwMDAwMGI5ZThiYzdiICgmcG9ydF9kZXYtPnN0YXR1 c19sb2NrKXsrLisufSwgYXQ6ICAKaHViX2V2ZW50KzB4MTFhMy8weDNiMDAgZHJpdmVycy91c2Iv Y29yZS9odWIuYzo1NDMyCiAgIzQ6IDAwMDAwMDAwMjljN2UzOGYgKGhjZC0+YWRkcmVzczBfbXV0 ZXgpeysuKy59LCBhdDogIApodWJfcG9ydF9pbml0KzB4MWJiLzB4MmQzMCBkcml2ZXJzL3VzYi9j b3JlL2h1Yi5jOjQ1MjkKNSBsb2NrcyBoZWxkIGJ5IGt3b3JrZXIvMDo1LzYwMTk6CiAgIzA6IDAw MDAwMDAwNDY5ZDRkZGMgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDogIApf X3dyaXRlX29uY2Vfc2l6ZSBpbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmg6MjIwIFtpbmxpbmVdCiAg IzA6IDAwMDAwMDAwNDY5ZDRkZGMgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBh dDogIAphcmNoX2F0b21pYzY0X3NldCBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5o OjM0IFtpbmxpbmVdCiAgIzA6IDAwMDAwMDAwNDY5ZDRkZGMgKCh3cV9jb21wbGV0aW9uKXVzYl9o dWJfd3EpeysuKy59LCBhdDogYXRvbWljNjRfc2V0ICAKaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9t aWMtaW5zdHJ1bWVudGVkLmg6ODU1IFtpbmxpbmVdCiAgIzA6IDAwMDAwMDAwNDY5ZDRkZGMgKCh3 cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDogIAphdG9taWNfbG9uZ19zZXQgaW5j bHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtbG9uZy5oOjQwIFtpbmxpbmVdCiAgIzA6IDAwMDAwMDAw NDY5ZDRkZGMgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDogc2V0X3dvcmtf ZGF0YSAgCmtlcm5lbC93b3JrcXVldWUuYzo2MTkgW2lubGluZV0KICAjMDogMDAwMDAwMDA0Njlk NGRkYyAoKHdxX2NvbXBsZXRpb24pdXNiX2h1Yl93cSl7Ky4rLn0sIGF0OiAgCnNldF93b3JrX3Bv b2xfYW5kX2NsZWFyX3BlbmRpbmcga2VybmVsL3dvcmtxdWV1ZS5jOjY0NiBbaW5saW5lXQogICMw OiAwMDAwMDAwMDQ2OWQ0ZGRjICgod3FfY29tcGxldGlvbil1c2JfaHViX3dxKXsrLisufSwgYXQ6 ICAKcHJvY2Vzc19vbmVfd29yaysweDgxZi8weDE1ODAga2VybmVsL3dvcmtxdWV1ZS5jOjIyNDAK ICAjMTogMDAwMDAwMDA0MDZkNWNjYyAoKHdvcmtfY29tcGxldGlvbikoJmh1Yi0+ZXZlbnRzKSl7 Ky4rLn0sIGF0OiAgCnByb2Nlc3Nfb25lX3dvcmsrMHg4NTMvMHgxNTgwIGtlcm5lbC93b3JrcXVl dWUuYzoyMjQ0CiAgIzI6IDAwMDAwMDAwYTBlNzRkOTYgKCZkZXYtPm11dGV4KXsuLi4ufSwgYXQ6 IGRldmljZV9sb2NrICAKaW5jbHVkZS9saW51eC9kZXZpY2UuaDoxMjA3IFtpbmxpbmVdCiAgIzI6 IDAwMDAwMDAwYTBlNzRkOTYgKCZkZXYtPm11dGV4KXsuLi4ufSwgYXQ6IGh1Yl9ldmVudCsweDE4 YS8weDNiMDAgIApkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjUzNzgKICAjMzogMDAwMDAwMDBmN2Qy YWY1OCAoJnBvcnRfZGV2LT5zdGF0dXNfbG9jayl7Ky4rLn0sIGF0OiB1c2JfbG9ja19wb3J0ICAK ZHJpdmVycy91c2IvY29yZS9odWIuYzoyOTk0IFtpbmxpbmVdCiAgIzM6IDAwMDAwMDAwZjdkMmFm NTggKCZwb3J0X2Rldi0+c3RhdHVzX2xvY2speysuKy59LCBhdDogaHViX3BvcnRfY29ubmVjdCAg CmRyaXZlcnMvdXNiL2NvcmUvaHViLmM6NTAyMCBbaW5saW5lXQogICMzOiAwMDAwMDAwMGY3ZDJh ZjU4ICgmcG9ydF9kZXYtPnN0YXR1c19sb2NrKXsrLisufSwgYXQ6ICAKaHViX3BvcnRfY29ubmVj dF9jaGFuZ2UgZHJpdmVycy91c2IvY29yZS9odWIuYzo1MjA0IFtpbmxpbmVdCiAgIzM6IDAwMDAw MDAwZjdkMmFmNTggKCZwb3J0X2Rldi0+c3RhdHVzX2xvY2speysuKy59LCBhdDogcG9ydF9ldmVu dCAgCmRyaXZlcnMvdXNiL2NvcmUvaHViLmM6NTM1MCBbaW5saW5lXQogICMzOiAwMDAwMDAwMGY3 ZDJhZjU4ICgmcG9ydF9kZXYtPnN0YXR1c19sb2NrKXsrLisufSwgYXQ6ICAKaHViX2V2ZW50KzB4 MTFhMy8weDNiMDAgZHJpdmVycy91c2IvY29yZS9odWIuYzo1NDMyCiAgIzQ6IDAwMDAwMDAwZjBi NWNiYTEgKGhjZC0+YWRkcmVzczBfbXV0ZXgpeysuKy59LCBhdDogIApodWJfcG9ydF9pbml0KzB4 MWJiLzB4MmQzMCBkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjQ1MjkKNSBsb2NrcyBoZWxkIGJ5IGt3 b3JrZXIvMDo2LzYwMjM6CiAgIzA6IDAwMDAwMDAwNDY5ZDRkZGMgKCh3cV9jb21wbGV0aW9uKXVz Yl9odWJfd3EpeysuKy59LCBhdDogIApfX3dyaXRlX29uY2Vfc2l6ZSBpbmNsdWRlL2xpbnV4L2Nv bXBpbGVyLmg6MjIwIFtpbmxpbmVdCiAgIzA6IDAwMDAwMDAwNDY5ZDRkZGMgKCh3cV9jb21wbGV0 aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDogIAphcmNoX2F0b21pYzY0X3NldCBhcmNoL3g4Ni9p bmNsdWRlL2FzbS9hdG9taWM2NF82NC5oOjM0IFtpbmxpbmVdCiAgIzA6IDAwMDAwMDAwNDY5ZDRk ZGMgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDogYXRvbWljNjRfc2V0ICAK aW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1bWVudGVkLmg6ODU1IFtpbmxpbmVdCiAg IzA6IDAwMDAwMDAwNDY5ZDRkZGMgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBh dDogIAphdG9taWNfbG9uZ19zZXQgaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtbG9uZy5oOjQw IFtpbmxpbmVdCiAgIzA6IDAwMDAwMDAwNDY5ZDRkZGMgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJf d3EpeysuKy59LCBhdDogc2V0X3dvcmtfZGF0YSAgCmtlcm5lbC93b3JrcXVldWUuYzo2MTkgW2lu bGluZV0KICAjMDogMDAwMDAwMDA0NjlkNGRkYyAoKHdxX2NvbXBsZXRpb24pdXNiX2h1Yl93cSl7 Ky4rLn0sIGF0OiAgCnNldF93b3JrX3Bvb2xfYW5kX2NsZWFyX3BlbmRpbmcga2VybmVsL3dvcmtx dWV1ZS5jOjY0NiBbaW5saW5lXQogICMwOiAwMDAwMDAwMDQ2OWQ0ZGRjICgod3FfY29tcGxldGlv bil1c2JfaHViX3dxKXsrLisufSwgYXQ6ICAKcHJvY2Vzc19vbmVfd29yaysweDgxZi8weDE1ODAg a2VybmVsL3dvcmtxdWV1ZS5jOjIyNDAKICAjMTogMDAwMDAwMDBmNmZjZmUxYyAoKHdvcmtfY29t cGxldGlvbikoJmh1Yi0+ZXZlbnRzKSl7Ky4rLn0sIGF0OiAgCnByb2Nlc3Nfb25lX3dvcmsrMHg4 NTMvMHgxNTgwIGtlcm5lbC93b3JrcXVldWUuYzoyMjQ0CiAgIzI6IDAwMDAwMDAwYzMzNDI5OTgg KCZkZXYtPm11dGV4KXsuLi4ufSwgYXQ6IGRldmljZV9sb2NrICAKaW5jbHVkZS9saW51eC9kZXZp Y2UuaDoxMjA3IFtpbmxpbmVdCiAgIzI6IDAwMDAwMDAwYzMzNDI5OTggKCZkZXYtPm11dGV4KXsu Li4ufSwgYXQ6IGh1Yl9ldmVudCsweDE4YS8weDNiMDAgIApkcml2ZXJzL3VzYi9jb3JlL2h1Yi5j OjUzNzgKICAjMzogMDAwMDAwMDA0ZDdlMGM2ZSAoJnBvcnRfZGV2LT5zdGF0dXNfbG9jayl7Ky4r Ln0sIGF0OiB1c2JfbG9ja19wb3J0ICAKZHJpdmVycy91c2IvY29yZS9odWIuYzoyOTk0IFtpbmxp bmVdCiAgIzM6IDAwMDAwMDAwNGQ3ZTBjNmUgKCZwb3J0X2Rldi0+c3RhdHVzX2xvY2speysuKy59 LCBhdDogaHViX3BvcnRfY29ubmVjdCAgCmRyaXZlcnMvdXNiL2NvcmUvaHViLmM6NTAyMCBbaW5s aW5lXQogICMzOiAwMDAwMDAwMDRkN2UwYzZlICgmcG9ydF9kZXYtPnN0YXR1c19sb2NrKXsrLisu fSwgYXQ6ICAKaHViX3BvcnRfY29ubmVjdF9jaGFuZ2UgZHJpdmVycy91c2IvY29yZS9odWIuYzo1 MjA0IFtpbmxpbmVdCiAgIzM6IDAwMDAwMDAwNGQ3ZTBjNmUgKCZwb3J0X2Rldi0+c3RhdHVzX2xv Y2speysuKy59LCBhdDogcG9ydF9ldmVudCAgCmRyaXZlcnMvdXNiL2NvcmUvaHViLmM6NTM1MCBb aW5saW5lXQogICMzOiAwMDAwMDAwMDRkN2UwYzZlICgmcG9ydF9kZXYtPnN0YXR1c19sb2NrKXsr LisufSwgYXQ6ICAKaHViX2V2ZW50KzB4MTFhMy8weDNiMDAgZHJpdmVycy91c2IvY29yZS9odWIu Yzo1NDMyCiAgIzQ6IDAwMDAwMDAwZjI1YjAyMzcgKGhjZC0+YWRkcmVzczBfbXV0ZXgpeysuKy59 LCBhdDogIApodWJfcG9ydF9pbml0KzB4MWJiLzB4MmQzMCBkcml2ZXJzL3VzYi9jb3JlL2h1Yi5j OjQ1MjkKNSBsb2NrcyBoZWxkIGJ5IGt3b3JrZXIvMTo0LzYwNjA6CiAgIzA6IDAwMDAwMDAwNDY5 ZDRkZGMgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDogIApfX3dyaXRlX29u Y2Vfc2l6ZSBpbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmg6MjIwIFtpbmxpbmVdCiAgIzA6IDAwMDAw MDAwNDY5ZDRkZGMgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDogIAphcmNo X2F0b21pYzY0X3NldCBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9hdG9taWM2NF82NC5oOjM0IFtpbmxp bmVdCiAgIzA6IDAwMDAwMDAwNDY5ZDRkZGMgKCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3Epeysu Ky59LCBhdDogYXRvbWljNjRfc2V0ICAKaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMtaW5zdHJ1 bWVudGVkLmg6ODU1IFtpbmxpbmVdCiAgIzA6IDAwMDAwMDAwNDY5ZDRkZGMgKCh3cV9jb21wbGV0 aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDogIAphdG9taWNfbG9uZ19zZXQgaW5jbHVkZS9hc20t Z2VuZXJpYy9hdG9taWMtbG9uZy5oOjQwIFtpbmxpbmVdCiAgIzA6IDAwMDAwMDAwNDY5ZDRkZGMg KCh3cV9jb21wbGV0aW9uKXVzYl9odWJfd3EpeysuKy59LCBhdDogc2V0X3dvcmtfZGF0YSAgCmtl cm5lbC93b3JrcXVldWUuYzo2MTkgW2lubGluZV0KICAjMDogMDAwMDAwMDA0NjlkNGRkYyAoKHdx X2NvbXBsZXRpb24pdXNiX2h1Yl93cSl7Ky4rLn0sIGF0OiAgCnNldF93b3JrX3Bvb2xfYW5kX2Ns ZWFyX3BlbmRpbmcga2VybmVsL3dvcmtxdWV1ZS5jOjY0NiBbaW5saW5lXQogICMwOiAwMDAwMDAw MDQ2OWQ0ZGRjICgod3FfY29tcGxldGlvbil1c2JfaHViX3dxKXsrLisufSwgYXQ6ICAKcHJvY2Vz c19vbmVfd29yaysweDgxZi8weDE1ODAga2VybmVsL3dvcmtxdWV1ZS5jOjIyNDAKICAjMTogMDAw MDAwMDBhNjFmMTk5NSAoKHdvcmtfY29tcGxldGlvbikoJmh1Yi0+ZXZlbnRzKSl7Ky4rLn0sIGF0 OiAgCnByb2Nlc3Nfb25lX3dvcmsrMHg4NTMvMHgxNTgwIGtlcm5lbC93b3JrcXVldWUuYzoyMjQ0 CiAgIzI6IDAwMDAwMDAwZmQ5MjE0ZmUgKCZkZXYtPm11dGV4KXsuLi4ufSwgYXQ6IGRldmljZV9s b2NrICAKaW5jbHVkZS9saW51eC9kZXZpY2UuaDoxMjA3IFtpbmxpbmVdCiAgIzI6IDAwMDAwMDAw ZmQ5MjE0ZmUgKCZkZXYtPm11dGV4KXsuLi4ufSwgYXQ6IGh1Yl9ldmVudCsweDE4YS8weDNiMDAg IApkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjUzNzgKICAjMzogMDAwMDAwMDAwYmFmMjdmOCAoJnBv cnRfZGV2LT5zdGF0dXNfbG9jayl7Ky4rLn0sIGF0OiB1c2JfbG9ja19wb3J0ICAKZHJpdmVycy91 c2IvY29yZS9odWIuYzoyOTk0IFtpbmxpbmVdCiAgIzM6IDAwMDAwMDAwMGJhZjI3ZjggKCZwb3J0 X2Rldi0+c3RhdHVzX2xvY2speysuKy59LCBhdDogaHViX3BvcnRfY29ubmVjdCAgCmRyaXZlcnMv dXNiL2NvcmUvaHViLmM6NTAyMCBbaW5saW5lXQogICMzOiAwMDAwMDAwMDBiYWYyN2Y4ICgmcG9y dF9kZXYtPnN0YXR1c19sb2NrKXsrLisufSwgYXQ6ICAKaHViX3BvcnRfY29ubmVjdF9jaGFuZ2Ug ZHJpdmVycy91c2IvY29yZS9odWIuYzo1MjA0IFtpbmxpbmVdCiAgIzM6IDAwMDAwMDAwMGJhZjI3 ZjggKCZwb3J0X2Rldi0+c3RhdHVzX2xvY2speysuKy59LCBhdDogcG9ydF9ldmVudCAgCmRyaXZl cnMvdXNiL2NvcmUvaHViLmM6NTM1MCBbaW5saW5lXQogICMzOiAwMDAwMDAwMDBiYWYyN2Y4ICgm cG9ydF9kZXYtPnN0YXR1c19sb2NrKXsrLisufSwgYXQ6ICAKaHViX2V2ZW50KzB4MTFhMy8weDNi MDAgZHJpdmVycy91c2IvY29yZS9odWIuYzo1NDMyCiAgIzQ6IDAwMDAwMDAwNmU5NjIxOTIgKGhj ZC0+YWRkcmVzczBfbXV0ZXgpeysuKy59LCBhdDogIApodWJfcG9ydF9pbml0KzB4MWJiLzB4MmQz MCBkcml2ZXJzL3VzYi9jb3JlL2h1Yi5jOjQ1MjkKCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQoKTk1JIGJhY2t0cmFjZSBmb3IgY3B1IDEKQ1BVOiAxIFBJRDog MjMgQ29tbToga2h1bmd0YXNrZCBOb3QgdGFpbnRlZCA1LjEuMC1yYzQtZzlhMzNiMzYtZGlydHkg IzEKSGFyZHdhcmUgbmFtZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29t cHV0ZSBFbmdpbmUsIEJJT1MgIApHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogIF9fZHVt cF9zdGFjayBsaWIvZHVtcF9zdGFjay5jOjc3IFtpbmxpbmVdCiAgZHVtcF9zdGFjaysweGU4LzB4 MTZlIGxpYi9kdW1wX3N0YWNrLmM6MTEzCiAgbm1pX2NwdV9iYWNrdHJhY2UuY29sZCsweDQ4LzB4 ODcgbGliL25taV9iYWNrdHJhY2UuYzoxMDEKICBubWlfdHJpZ2dlcl9jcHVtYXNrX2JhY2t0cmFj ZSsweDFhNi8weDFiZCBsaWIvbm1pX2JhY2t0cmFjZS5jOjYyCiAgdHJpZ2dlcl9hbGxfY3B1X2Jh Y2t0cmFjZSBpbmNsdWRlL2xpbnV4L25taS5oOjE0NiBbaW5saW5lXQogIGNoZWNrX2h1bmdfdW5p bnRlcnJ1cHRpYmxlX3Rhc2tzIGtlcm5lbC9odW5nX3Rhc2suYzoyMDQgW2lubGluZV0KICB3YXRj aGRvZysweDk4ZS8weGUyMCBrZXJuZWwvaHVuZ190YXNrLmM6Mjg4CiAga3RocmVhZCsweDMxMy8w eDQyMCBrZXJuZWwva3RocmVhZC5jOjI1MwogIHJldF9mcm9tX2ZvcmsrMHgzYS8weDUwIGFyY2gv eDg2L2VudHJ5L2VudHJ5XzY0LlM6MzUyClNlbmRpbmcgTk1JIGZyb20gQ1BVIDEgdG8gQ1BVcyAw OgpOTUkgYmFja3RyYWNlIGZvciBjcHUgMApDUFU6IDAgUElEOiA1ODgxIENvbW06IHN5ei1leGVj dXRvci4wIE5vdCB0YWludGVkIDUuMS4wLXJjNC1nOWEzM2IzNi1kaXJ0eSAgCiMxCkhhcmR3YXJl IG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5l LCBCSU9TICAKR29vZ2xlIDAxLzAxLzIwMTEKUklQOiAwMDEwOl9fcmVhZF9vbmNlX3NpemUgaW5j bHVkZS9saW51eC9jb21waWxlci5oOjE5MyBbaW5saW5lXQpSSVA6IDAwMTA6bG9va3VwX2NoYWlu X2NhY2hlIGtlcm5lbC9sb2NraW5nL2xvY2tkZXAuYzoyNjEyIFtpbmxpbmVdClJJUDogMDAxMDps b29rdXBfY2hhaW5fY2FjaGVfYWRkIGtlcm5lbC9sb2NraW5nL2xvY2tkZXAuYzoyNjMxIFtpbmxp bmVdClJJUDogMDAxMDp2YWxpZGF0ZV9jaGFpbiBrZXJuZWwvbG9ja2luZy9sb2NrZGVwLmM6MjY4 NSBbaW5saW5lXQpSSVA6IDAwMTA6X19sb2NrX2FjcXVpcmUrMHhmYjAvMHgzN2MwIGtlcm5lbC9s b2NraW5nL2xvY2tkZXAuYzozNzAxCkNvZGU6IDVkIDRjIDhiIDY0IDI0IDIwIDRkIDg5IGNkIDQ4 IGJkIDAwIDAwIDAwIDAwIDAwIGZjIGZmIGRmIGViIDA2IDQ4IDgzICAKZWIgMDggNzQgNDAgNDgg OGQgN2IgMTggNDggODkgZjggNDggYzEgZTggMDMgODAgM2MgMjggMDAgPDBmPiA4NSBmMSAxOCAw MCAgCjAwIDQ4IDhiIDQzIDE4IDQ5IDM5IGM0IDBmIDg0IDczIGY5IGZmIGZmIDQ4IDhkIDdiClJT UDogMDAxODpmZmZmODg4MDk5MDhmYTUwIEVGTEFHUzogMDAwMDAwNDYKUkFYOiAxZmZmZmZmZmYy YzE4OGIzIFJCWDogZmZmZmZmZmY5NjBjNDU4MCBSQ1g6IDAwMDAwMDAwMDAwMDE4NzIKUkRYOiAx ZmZmZmZmZmYyY2Q5M2ZhIFJTSTogZmZmZjg4ODA4YmU4MDg0MCBSREk6IGZmZmZmZmZmOTYwYzQ1 OTgKUkJQOiBkZmZmZmMwMDAwMDAwMDAwIFIwODogMDAwMDAwMDBkNGI1ODdiZCBSMDk6IGZmZmZm ZmZmOTY2YzlmZDAKUjEwOiBmZmZmODg4MDhiZTgwODQwIFIxMTogZmZmZjg4ODA4YmU4MDAwMCBS MTI6IGUwODVjZTg3NWUyNDM0NDMKUjEzOiBmZmZmZmZmZjk2NmM5ZmQwIFIxNDogZmZmZmZmZmY5 M2NiMDcxNCBSMTU6IDAwMDAwMDAwMDAwMDAwMDEKRlM6ICAwMDAwMDAwMDAwYTU3OTQwKDAwMDAp IEdTOmZmZmY4ODgwYWQwMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApDUzogIDAw MTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCkNSMjogMDAwMDdmYmRh OGE3NzAwMCBDUjM6IDAwMDAwMDAwOTVlNjAwMDAgQ1I0OiAwMDAwMDAwMDAwMTQwNmYwCkNhbGwg VHJhY2U6CiAgbG9ja19hY3F1aXJlKzB4MTBkLzB4MmYwIGtlcm5lbC9sb2NraW5nL2xvY2tkZXAu Yzo0MjExCiAgX19yYXdfcmVhZF9sb2NrIGluY2x1ZGUvbGludXgvcndsb2NrX2FwaV9zbXAuaDox NDkgW2lubGluZV0KICBfcmF3X3JlYWRfbG9jaysweDJmLzB4NDAga2VybmVsL2xvY2tpbmcvc3Bp bmxvY2suYzoyMTYKICBkb193YWl0KzB4MzhiLzB4OTQwIGtlcm5lbC9leGl0LmM6MTUyMwogIGtl cm5lbF93YWl0NCsweDE1MS8weDI2MCBrZXJuZWwvZXhpdC5jOjE2NjgKICBfX2RvX3N5c193YWl0 NCsweDE0Ny8weDE2MCBrZXJuZWwvZXhpdC5jOjE2ODAKICBkb19zeXNjYWxsXzY0KzB4Y2YvMHg0 ZjAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6MjkwCiAgZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9o d2ZyYW1lKzB4NDkvMHhiZQpSSVA6IDAwMzM6MHg0MTJjNmEKQ29kZTogMGYgODMgNmEgMTggMDAg MDAgYzMgNjYgMGYgMWYgODQgMDAgMDAgMDAgMDAgMDAgOGIgMDUgMmUgMzYgNjQgMDAgODUgIApj MCA3NSAzNiA0NSAzMSBkMiA0OCA2MyBkMiA0OCA2MyBmZiBiOCAzZCAwMCAwMCAwMCAwZiAwNSA8 NDg+IDNkIDAwIGYwIGZmICAKZmYgNzcgMDYgYzMgMGYgMWYgNDQgMDAgMDAgNDggYzcgYzIgZDQg ZmYgZmYgZmYgZjcKUlNQOiAwMDJiOjAwMDA3ZmZmOTI0MDM1MDggRUZMQUdTOiAwMDAwMDI0NiBP UklHX1JBWDogMDAwMDAwMDAwMDAwMDAzZApSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAw MDAwMDAwMDNkNzcwIFJDWDogMDAwMDAwMDAwMDQxMmM2YQpSRFg6IDAwMDAwMDAwNDAwMDAwMDEg UlNJOiAwMDAwN2ZmZjkyNDAzNTQwIFJESTogZmZmZmZmZmZmZmZmZmZmZgpSQlA6IDAwMDAwMDAw MDAwMDAwYWQgUjA4OiAwMDAwMDAwMDAwMDAwMDAxIFIwOTogMDAwMDAwMDAwMGE1Nzk0MApSMTA6 IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAwMDAwMDAw MDAwMQpSMTM6IDAwMDA3ZmZmOTI0MDM1NDAgUjE0OiAwMDAwMDAwMDAwMDNkNzUyIFIxNTogMDAw MDdmZmY5MjQwMzU1MAoKClRlc3RlZCBvbjoKCmNvbW1pdDogICAgICAgICA5YTMzYjM2OSB1c2It ZnV6emVyOiBtYWluIHVzYiBnYWRnZXQgZnV6emVyIGRyaXZlcgpnaXQgdHJlZTogICAgICAgaHR0 cHM6Ly9naXRodWIuY29tL2dvb2dsZS9rYXNhbi90cmVlL3VzYi1mdXp6ZXIKY29uc29sZSBvdXRw dXQ6IGh0dHBzOi8vc3l6a2FsbGVyLmFwcHNwb3QuY29tL3gvbG9nLnR4dD94PTExMWU2MmNiMjAw MDAwCmtlcm5lbCBjb25maWc6ICBodHRwczovL3N5emthbGxlci5hcHBzcG90LmNvbS94Ly5jb25m aWc/eD0yM2UzN2Y1OWQ5NGRkZDE1CmNvbXBpbGVyOiAgICAgICBnY2MgKEdDQykgOS4wLjAgMjAx ODEyMzEgKGV4cGVyaW1lbnRhbCkKcGF0Y2g6ICAgICAgICAgIGh0dHBzOi8vc3l6a2FsbGVyLmFw cHNwb3QuY29tL3gvcGF0Y2guZGlmZj94PTEyMDc5MDFkMjAwMDAwCg==