From owner-soc-status@FreeBSD.ORG Fri Apr 19 17:47:26 2013 Return-Path: Delivered-To: soc-status@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 96D2C648; Fri, 19 Apr 2013 17:47:26 +0000 (UTC) (envelope-from gbtju85@gmail.com) Received: from mail-bk0-x232.google.com (mail-bk0-x232.google.com [IPv6:2a00:1450:4008:c01::232]) by mx1.freebsd.org (Postfix) with ESMTP id DBA8A835; Fri, 19 Apr 2013 17:47:25 +0000 (UTC) Received: by mail-bk0-f50.google.com with SMTP id jg9so153301bkc.9 for ; Fri, 19 Apr 2013 10:47:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=I2eVe9ePJPeheb+75xEykA3Eky+23oScgavThe2Pc30=; b=GlSkMDvweWoGF1HJ5SArNUWDvvxSt9IJbcAmnOdnRk46zHiJGW0Y+V9MucTGLO4XU9 WXGk57zZOsW0BqHTX4ltuYi+3Olt1bU7WtC05ofHLxk8lxCtXMuoom9lOB5JK4yixWT3 qYFtxWVyX/yngUYtBBiHmW0XZH04tzjDlVG4kTkMjcupkddQYyUoBXK6mpoE1xPR9lwP zkTNQvLeckr88ANJd1DHHrO2nxqUwdFGPqGLaCOu7hy/y59dZErguaF5hLj4v8gk7cG9 d08NaT+ILlzZ4OHJc3MCPULXeeBETNxxP9uiwvpLhwY//YnMKY2uWQW+fZbUxG/MoQBI Wa1Q== MIME-Version: 1.0 X-Received: by 10.204.167.144 with SMTP id q16mr6189636bky.25.1366393181573; Fri, 19 Apr 2013 10:39:41 -0700 (PDT) Received: by 10.205.114.141 with HTTP; Fri, 19 Apr 2013 10:39:41 -0700 (PDT) In-Reply-To: References: <920A79FE-8C56-4D26-8611-3CD48602FC3B@freebsd.org> <7AB96913-9118-4298-B183-A3D5EBC6F209@freebsd.org> Date: Sat, 20 Apr 2013 01:39:41 +0800 Message-ID: Subject: =?GB2312?Q?Re=3A_Mentor_of_the_Project_=22PCI_frontend_XEN_PV_drive?= =?GB2312?Q?r=22=A3=BF?= From: Bei Guan To: "Justin T. Gibbs" Content-Type: multipart/mixed; boundary=bcaec52c69633653f504daba344a X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: soc-status X-BeenThere: soc-status@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Summer of Code Status Reports and Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Apr 2013 17:47:26 -0000 --bcaec52c69633653f504daba344a Content-Type: text/plain; charset=ISO-8859-1 2013/4/19 Justin T. Gibbs > On Apr 18, 2013, at 7:14 AM, Bei Guan wrote: > > 2013/4/16 Justin T. Gibbs > >> On Apr 12, 2013, at 3:02 AM, Bei Guan wrote: >> >> > Thank you for your reply. >> > >> > I think it's also a good project for me to write a SCSI or USB PV >> frontend for FreeBSD. I'm interest in Xen and have done some development >> about Xen PV and HVM, but I didn't do any development on FreeBSD. As to >> this project, where should I start? Is there any other similar FreeBSD >> project I can refer to? >> >> Front-end drivers for network, block, and control already exist and >> should serve as a good starting point for the creation of another PV driver. >> >> I've also updated the ideas page to include more information about our >> existing XEN implementation and what will be required for these projects. >> >> > In order to write a SCSI or USB PV driver, do we need the Xen PV >> drivers in FreeBSD, such as event channel, hypercalls, xenbus, and so on? >> >> Yes, FreeBSD already has support for all XenBus APIs needed to write >> these drivers. See "sys/xen" and "sys/dev/xen" in the FreeBSD kernel >> source tree. >> >> > You said the "drivers can be developed using an HVM guest", can you >> give me more information about it? >> >> Typically, you install FreeBSD using standard install media as a full HVM >> guest on a system running Xen. Then compile a custom kernel using the >> XENHVM config file in order to activate the existing PV drivers. >> > Hi Justin, > > Does this project need to provide USB/SCSI PV drivers to both 32-bit and > 64-bit FreeBSD? > > > Idealy, yes. > > I've compiled the FreeBSD 8.3 (i386) as Xen DomU with the XENHVM config. > But, It cannot boot successfully. The screenshot is attached. > According to the page https://wiki.freebsd.org/FreeBSD/Xen , 32-bit > FreeBSD should work when compiled with XENHVM config. > > > I have never tried a 32bit XENHVM configuration, but I know of no reasons > why it should not work. The issue shown by your screen shot (in your other > email) is probably due to a PV driver failing to fully attach, or a mistake > in the merge of SVN changeset 211236 to releng-8. I would suggest > instrumenting sys/xen/xenbus/xenbusb.c to determine the driver that is > still holding up the root mount process and then go from there. See > xenbusb_attach() and xenbusb_nop_confighook_cb() for details. > > You may also want to invest in changing your Xen configuration to use a > serial console. This will allow you to properly log and examine all kernel > messages emitted during your test runs. > Hi Justin, The 64bit FreeBSD 8.3 with the XENHVM configure also cannot boot. I have got the boot log using a serial console. All the two logs are attached. My environment is Xen-4.2 + ubuntu10.04 (Dom0 installed with the package : linux-image-2.6.32-5-xen-amd64_2.6.32-35_amd64.deb). I will inspect it more tomorrow. Thanks for your information. > I will try the 64-bit FreeBSD. However, if the FreeBSD boot successfully > (compiled with XENHVM config), how can we know it really uses the PV > drivers instead of the native drivers? > > > Your configuration is definitely using PV drivers. xenbusb_front, xn, and > xbd, are all PV drivers. > > -- > Justin > -- Best Regards, Bei Guan --bcaec52c69633653f504daba344a Content-Type: application/octet-stream; name="freebsd64_xenhvm_bootError.log" Content-Disposition: attachment; filename="freebsd64_xenhvm_bootError.log" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hfpn7cqy0 Q29weXJpZ2h0IChjKSAxOTc5LCAxOTgwLCAxOTgzLCAxOTg2LCAxOTg4LCAxOTg5LCAxOTkxLCAx OTkyLCAxOTkzLCAxOTk0DQ0KCVRoZSBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlm b3JuaWEuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQ0KRnJlZUJTRCBpcyBhIHJlZ2lzdGVyZWQgdHJh ZGVtYXJrIG9mIFRoZSBGcmVlQlNEIEZvdW5kYXRpb24uDQ0KRnJlZUJTRCA4LjMtUkVMRUFTRSAj MDogU2F0IEFwciAyMCAwMToyOTozMSBDU1QgMjAxMw0NCiAgICByb290QGZyZWVic2QuaXNjYXM6 L3Vzci9vYmovdXNyL3NyYy9zeXMvWEVOSFZNIGFtZDY0DQ0KVGltZWNvdW50ZXIgImk4MjU0IiBm cmVxdWVuY3kgMTE5MzE4MiBIeiBxdWFsaXR5IDANDQpDUFU6IEludGVsKFIpIENvcmUoVE0pIGk3 LTI2MDAgQ1BVIEAgMy40MEdIeiAoMzM5Mi4zMS1NSHogSzgtY2xhc3MgQ1BVKQ0NCiAgT3JpZ2lu ID0gIkdlbnVpbmVJbnRlbCIgIElkID0gMHgyMDZhNyAgRmFtaWx5ID0gNiAgTW9kZWwgPSAyYSAg U3RlcHBpbmcgPSA3DQ0KICBGZWF0dXJlcz0weDE3ODNmYmZmPEZQVSxWTUUsREUsUFNFLFRTQyxN U1IsUEFFLE1DRSxDWDgsQVBJQyxTRVAsTVRSUixQR0UsTUNBLENNT1YsUEFULFBTRTM2LE1NWCxG WFNSLFNTRSxTU0UyLEhUVD4NDQogIEZlYXR1cmVzMj0weDk3YmEyMjAzPFNTRTMsUENMTVVMUURR LFNTU0UzLENYMTYsUENJRCxTU0U0LjEsU1NFNC4yLHgyQVBJQyxQT1BDTlQsVFNDRExULEFFU05J LFhTQVZFLEFWWCxIVj4NDQogIEFNRCBGZWF0dXJlcz0weDI4MTAwODAwPFNZU0NBTEwsTlgsUkRU U0NQLExNPg0NCiAgQU1EIEZlYXR1cmVzMj0weDE8TEFIRj4NDQogIFRTQzogUC1zdGF0ZSBpbnZh cmlhbnQNDQpyZWFsIG1lbW9yeSAgPSAxMDY1MzUzMjE2ICgxMDE2IE1CKQ0NCmF2YWlsIG1lbW9y eSA9IDEwMDgwNzg4NDggKDk2MSBNQikNDQpBQ1BJIEFQSUMgVGFibGU6IDxYZW4gSFZNPg0NCmlv YXBpYzA6IENoYW5naW5nIEFQSUMgSUQgdG8gMQ0NCk1BRFQ6IEZvcmNpbmcgYWN0aXZlLWxvdyBw b2xhcml0eSBhbmQgbGV2ZWwgdHJpZ2dlciBmb3IgU0NJDQ0KaW9hcGljMCA8VmVyc2lvbiAxLjE+ IGlycXMgMC00NyBvbiBtb3RoZXJib2FyZA0NCmtiZDEgYXQga2JkbXV4MA0NCmFjcGkwOiA8WGVu PiBvbiBtb3RoZXJib2FyZA0NCmFjcGkwOiBbSVRIUkVBRF0NDQphY3BpMDogUG93ZXIgQnV0dG9u IChmaXhlZCkNDQphY3BpMDogU2xlZXAgQnV0dG9uIChmaXhlZCkNDQpUaW1lY291bnRlciAiQUNQ SS1zYWZlIiBmcmVxdWVuY3kgMzU3OTU0NSBIeiBxdWFsaXR5IDg1MA0NCmFjcGlfdGltZXIwOiA8 MzItYml0IHRpbWVyIGF0IDMuNTc5NTQ1TUh6PiBwb3J0IDB4YjAwOC0weGIwMGIgb24gYWNwaTAN DQpjcHUwOiA8QUNQSSBDUFU+IG9uIGFjcGkwDQ0KcGNpYjA6IDxBQ1BJIEhvc3QtUENJIGJyaWRn ZT4gcG9ydCAweGNmOC0weGNmZiBvbiBhY3BpMA0NCnBjaTA6IDxBQ1BJIFBDSSBidXM+IG9uIHBj aWIwDQ0KaXNhYjA6IDxQQ0ktSVNBIGJyaWRnZT4gYXQgZGV2aWNlIDEuMCBvbiBwY2kwDQ0KaXNh MDogPElTQSBidXM+IG9uIGlzYWIwDQ0KYXRhcGNpMDogPEludGVsIFBJSVgzIFdETUEyIGNvbnRy b2xsZXI+IHBvcnQgMHgxZjAtMHgxZjcsMHgzZjYsMHgxNzAtMHgxNzcsMHgzNzYsMHhjMjIwLTB4 YzIyZiBhdCBkZXZpY2UgMS4xIG9uIHBjaTANDQphdGEwOiA8QVRBIGNoYW5uZWw+IGF0IGNoYW5u ZWwgMCBvbiBhdGFwY2kwDQ0KYXRhMDogW0lUSFJFQURdDQ0KYXRhMTogPEFUQSBjaGFubmVsPiBh dCBjaGFubmVsIDEgb24gYXRhcGNpMA0NCmF0YTE6IFtJVEhSRUFEXQ0NCnVoY2kwOiA8SW50ZWwg ODIzNzFTQiAoUElJWDMpIFVTQiBjb250cm9sbGVyPiBwb3J0IDB4YzIwMC0weGMyMWYgaXJxIDIz IGF0IGRldmljZSAxLjIgb24gcGNpMA0NCnVoY2kwOiBbSVRIUkVBRF0NDQp1c2J1czA6IGNvbnRy b2xsZXIgZGlkIG5vdCBzdG9wDQ0KdXNidXMwOiA8SW50ZWwgODIzNzFTQiAoUElJWDMpIFVTQiBj b250cm9sbGVyPiBvbiB1aGNpMA0NCnBjaTA6IDxicmlkZ2U+IGF0IGRldmljZSAxLjMgKG5vIGRy aXZlciBhdHRhY2hlZCkNDQp2Z2FwY2kwOiA8VkdBLWNvbXBhdGlibGUgZGlzcGxheT4gbWVtIDB4 ZjAwMDAwMDAtMHhmMWZmZmZmZiwweGYzMDAwMDAwLTB4ZjMwMDBmZmYgYXQgZGV2aWNlIDIuMCBv biBwY2kwDQ0KeGVucGNpMDogPFhlbiBQbGF0Zm9ybSBEZXZpY2U+IHBvcnQgMHhjMDAwLTB4YzBm ZiBtZW0gMHhmMjAwMDAwMC0weGYyZmZmZmZmIGlycSAyOCBhdCBkZXZpY2UgMy4wIG9uIHBjaTAN DQp4ZW5zdG9yZTA6IDxYZW5TdG9yZT4gb24geGVucGNpMA0NCmFjcGlfaHBldDA6IDxIaWdoIFBy ZWNpc2lvbiBFdmVudCBUaW1lcj4gaW9tZW0gMHhmZWQwMDAwMC0weGZlZDAwM2ZmIG9uIGFjcGkw DQ0KVGltZWNvdW50ZXIgIkhQRVQiIGZyZXF1ZW5jeSA2MjUwMDAwMCBIeiBxdWFsaXR5IDkwMA0N CmF0cnRjMDogPEFUIHJlYWx0aW1lIGNsb2NrPiBwb3J0IDB4NzAtMHg3MSBpcnEgOCBvbiBhY3Bp MA0NCmF0a2JkYzA6IDxLZXlib2FyZCBjb250cm9sbGVyIChpODA0Mik+IHBvcnQgMHg2MCwweDY0 IGlycSAxIG9uIGFjcGkwDQ0KYXRrYmQwOiA8QVQgS2V5Ym9hcmQ+IGlycSAxIG9uIGF0a2JkYzAN DQprYmQwIGF0IGF0a2JkMA0NCmF0a2JkMDogW0dJQU5ULUxPQ0tFRF0NDQphdGtiZDA6IFtJVEhS RUFEXQ0NCnBzbTA6IDxQUy8yIE1vdXNlPiBpcnEgMTIgb24gYXRrYmRjMA0NCnBzbTA6IFtHSUFO VC1MT0NLRURdDQ0KcHNtMDogW0lUSFJFQURdDQ0KcHNtMDogbW9kZWwgSW50ZWxsaU1vdXNlIEV4 cGxvcmVyLCBkZXZpY2UgSUQgNA0NCmZkYzA6IDxmbG9wcHkgZHJpdmUgY29udHJvbGxlcj4gcG9y dCAweDNmMC0weDNmNSwweDNmNyBpcnEgNiBkcnEgMiBvbiBhY3BpMA0NCmZkYzA6IGRvZXMgbm90 IHJlc3BvbmQNDQpkZXZpY2VfYXR0YWNoOiBmZGMwIGF0dGFjaCByZXR1cm5lZCA2DQ0KdWFydDA6 IDwxNjU1MCBvciBjb21wYXRpYmxlPiBwb3J0IDB4M2Y4LTB4M2ZmIGlycSA0IGZsYWdzIDB4MTAg b24gYWNwaTANDQp1YXJ0MDogW0ZJTFRFUl0NDQp1YXJ0MDogY29uc29sZSAoOTYwMCxuLDgsMSkN DQpwcGMwOiA8UGFyYWxsZWwgcG9ydD4gcG9ydCAweDM3OC0weDM3ZiBpcnEgNyBvbiBhY3BpMA0N CnBwYzA6IEdlbmVyaWMgY2hpcHNldCAoTklCQkxFLW9ubHkpIGluIENPTVBBVElCTEUgbW9kZQ0N CnBwYzA6IFtJVEhSRUFEXQ0NCnBwYnVzMDogPFBhcmFsbGVsIHBvcnQgYnVzPiBvbiBwcGMwDQ0K cGxpcDA6IDxQTElQIG5ldHdvcmsgaW50ZXJmYWNlPiBvbiBwcGJ1czANDQpwbGlwMDogW0lUSFJF QURdDQ0KbHB0MDogPFByaW50ZXI+IG9uIHBwYnVzMA0NCmxwdDA6IFtJVEhSRUFEXQ0NCmxwdDA6 IEludGVycnVwdC1kcml2ZW4gcG9ydA0NCnBwaTA6IDxQYXJhbGxlbCBJL08+IG9uIHBwYnVzMA0N CnNjMDogPFN5c3RlbSBjb25zb2xlPiBhdCBmbGFncyAweDEwMCBvbiBpc2EwDQ0Kc2MwOiBWR0Eg PDE2IHZpcnR1YWwgY29uc29sZXMsIGZsYWdzPTB4MzAwPg0NCnZnYTA6IDxHZW5lcmljIElTQSBW R0E+IGF0IHBvcnQgMHgzYzAtMHgzZGYgaW9tZW0gMHhhMDAwMC0weGJmZmZmIG9uIGlzYTANDQpU aW1lY291bnRlciAiVFNDIiBmcmVxdWVuY3kgMzM5MjMwODc0NSBIeiBxdWFsaXR5IDgwMA0NClRp bWVjb3VudGVycyB0aWNrIGV2ZXJ5IDEwLjAwMCBtc2VjDQ0KdXNidXMwOiAxMk1icHMgRnVsbCBT cGVlZCBVU0IgdjEuMA0NCmFjZDA6IENEUk9NIDxRRU1VIERWRC1ST00vMC4xMC4yPiBhdCBhdGEx LW1hc3RlciBXRE1BMiANDQp4ZW5idXNiX2Zyb250MDogPFhlbiBGcm9udGVuZCBEZXZpY2VzPiBv biB4ZW5zdG9yZTANDQoNDQoNDQpGYXRhbCB0cmFwIDEyOiBwYWdlIGZhdWx0IHdoaWxlIGluIGtl cm5lbCBtb2RlDQ0KY3B1aWQgPSAwOyBhcGljIGlkID0gMDANDQpmYXVsdCB2aXJ0dWFsIGFkZHJl c3MJPSAweGZmZmZmZjAxMDE2N2Q5NWYNDQpmYXVsdCBjb2RlCQk9IHN1cGVydmlzb3Igd3JpdGUg ZGF0YSwgcGFnZSBub3QgcHJlc2VudA0NCmluc3RydWN0aW9uIHBvaW50ZXIJPSAweDIwOjB4ZmZm ZmZmZmY4MDg4NWQzOA0NCnN0YWNrIHBvaW50ZXIJICAgICAgICA9IDB4Mjg6MHhmZmZmZmZmZjgw ZjlkOWYwDQ0KZnJhbWUgcG9pbnRlcgkgICAgICAgID0gMHgyODoweGZmZmZmZmZmODBmOWRhMzAN DQpjb2RlIHNlZ21lbnQJCT0gYmFzZSAweDAsIGxpbWl0IDB4ZmZmZmYsIHR5cGUgMHgxYg0NCgkJ CT0gRFBMIDAsIHByZXMgMSwgbG9uZyAxLCBkZWYzMiAwLCBncmFuIDENDQpwcm9jZXNzb3IgZWZs YWdzCT0gaW50ZXJydXB0IGVuYWJsZWQsIHJlc3VtZSwgSU9QTCA9IDANDQpjdXJyZW50IHByb2Nl c3MJCT0gMCAoc3dhcHBlcikNDQp0cmFwIG51bWJlcgkJPSAxMg0NCnBhbmljOiBwYWdlIGZhdWx0 DQ0KY3B1aWQgPSAwDQ0KS0RCOiBzdGFjayBiYWNrdHJhY2U6DQ0KIzAgMHhmZmZmZmZmZjgwNjNl ZDllIGF0IGtkYl9iYWNrdHJhY2UrMHg1ZQ0NCiMxIDB4ZmZmZmZmZmY4MDYwYzI0NyBhdCBwYW5p YysweDE4Nw0NCiMyIDB4ZmZmZmZmZmY4MDkyMmZlMCBhdCB0cmFwX2ZhdGFsKzB4MjkwDQ0KIzMg MHhmZmZmZmZmZjgwOTIzMzMxIGF0IHRyYXBfcGZhdWx0KzB4MjAxDQ0KIzQgMHhmZmZmZmZmZjgw OTIzN2VmIGF0IHRyYXArMHgzZGYNDQojNSAweGZmZmZmZmZmODA5MGFkMTQgYXQgY2FsbHRyYXAr MHg4DQ0KIzYgMHhmZmZmZmZmZjgwODg3YmRhIGF0IHhzX2RpcmVjdG9yeSsweDdhDQ0KIzcgMHhm ZmZmZmZmZjgwODg3ZTM1IGF0IHhzX2V4aXN0cysweDE1DQ0KIzggMHhmZmZmZmZmZjgwODgzZmRj IGF0IHhlbmJ1c2JfYWRkX2RldmljZSsweDljDQ0KIzkgMHhmZmZmZmZmZjgwODg1MjViIGF0IHhl bmJ1c2JfZnJvbnRfZW51bWVyYXRlX3R5cGUrMHg1Yg0NCiMxMCAweGZmZmZmZmZmODA4ODUwMWUg YXQgeGVuYnVzYl9hdHRhY2grMHhmZQ0NCiMxMSAweGZmZmZmZmZmODA2Mzg4YzkgYXQgZGV2aWNl X2F0dGFjaCsweDY5DQ0KIzEyIDB4ZmZmZmZmZmY4MDYzYTA5YSBhdCBidXNfZ2VuZXJpY19hdHRh Y2grMHgxYQ0NCiMxMyAweGZmZmZmZmZmODA4ODVkMDEgYXQgeHNfYXR0YWNoX2RlZmVycmVkKzB4 MjENDQojMTQgMHhmZmZmZmZmZjgwNjMzZWJiIGF0IHJ1bl9pbnRlcnJ1cHRfZHJpdmVuX2NvbmZp Z19ob29rcysweGFiDQ0KIzE1IDB4ZmZmZmZmZmY4MDYzNDIyYyBhdCBib290X3J1bl9pbnRlcnJ1 cHRfZHJpdmVuX2NvbmZpZ19ob29rcysweDJjDQ0KIzE2IDB4ZmZmZmZmZmY4MDVjNDA5NyBhdCBt aV9zdGFydHVwKzB4NzcNDQojMTcgMHhmZmZmZmZmZjgwMWExMDdjIGF0IGJ0ZXh0KzB4MmMNDQpV cHRpbWU6IDFzDQ0KQ2Fubm90IGR1bXAuIERldmljZSBub3QgZGVmaW5lZCBvciB1bmF2YWlsYWJs ZS4NDQpBdXRvbWF0aWMgcmVib290IGluIDE1IHNlY29uZHMgLSBwcmVzcyBhIGtleSBvbiB0aGUg Y29uc29sZSB0byBhYm9ydA0NCi0tPiBQcmVzcyBhIGtleSBvbiB0aGUgY29uc29sZSB0byByZWJv b3QsDQ0KLS0+IG9yIHN3aXRjaCBvZmYgdGhlIHN5c3RlbSBub3cuDQ0K --bcaec52c69633653f504daba344a Content-Type: application/octet-stream; name="freebsd32_xenhvm_bootError.log" Content-Disposition: attachment; filename="freebsd32_xenhvm_bootError.log" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hfpn7hmq1 VXNpbmcgY29uZmlnIGZpbGUgIi4vZnJlZWJzZC5odm0iLgpTdGFydGVkIGRvbWFpbiBmcmVlYnNk LTguMyAoaWQ9NDIpCkNvcHlyaWdodCAoYykgMTk3OSwgMTk4MCwgMTk4MywgMTk4NiwgMTk4OCwg MTk4OSwgMTk5MSwgMTk5MiwgMTk5MywgMTk5NA0NCglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVy c2l0eSBvZiBDYWxpZm9ybmlhLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0NCkZyZWVCU0QgaXMgYSBy ZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBUaGUgRnJlZUJTRCBGb3VuZGF0aW9uLg0NCkZyZWVCU0Qg OC4zLVJFTEVBU0UgIzA6IEZyaSBBcHIgMTkgMTY6MzQ6NTAgQ1NUIDIwMTMNDQogICAgcm9vdEBm cmVlYnNkLmlzY2FzOi91c3Ivb2JqL3Vzci9zcmMvc3lzL1hFTkhWTSBpMzg2DQ0KVGltZWNvdW50 ZXIgImk4MjU0IiBmcmVxdWVuY3kgMTE5MzE4MiBIeiBxdWFsaXR5IDANDQpDUFU6IEludGVsKFIp IENvcmUoVE0pMiBRdWFkIENQVSAgICBROTQwMCAgQCAyLjY2R0h6ICgyNjU5Ljc0LU1IeiA2ODYt Y2xhc3MgQ1BVKQ0NCiAgT3JpZ2luID0gIkdlbnVpbmVJbnRlbCIgIElkID0gMHgxMDY3YSAgRmFt aWx5ID0gNiAgTW9kZWwgPSAxNyAgU3RlcHBpbmcgPSAxMA0NCiAgRmVhdHVyZXM9MHgxNzgxZmJm ZjxGUFUsVk1FLERFLFBTRSxUU0MsTVNSLFBBRSxNQ0UsQ1g4LEFQSUMsU0VQLE1UUlIsUEdFLE1D QSxDTU9WLFBBVCxNTVgsRlhTUixTU0UsU1NFMixIVFQ+DQ0KICBGZWF0dXJlczI9MHg4MTI4MjIw MTxTU0UzLFNTU0UzLENYMTYsU1NFNC4xLHgyQVBJQyxUU0NETFQsSFY+DQ0KICBBTUQgRmVhdHVy ZXM9MHgxMDAwMDA8Tlg+DQ0KICBUU0M6IFAtc3RhdGUgaW52YXJpYW50DQ0KcmVhbCBtZW1vcnkg ID0gMTA3Mzc0MTgyNCAoMTAyNCBNQikNDQphdmFpbCBtZW1vcnkgPSAxMDMyMTIyMzY4ICg5ODQg TUIpDQ0KQUNQSSBBUElDIFRhYmxlOiA8WGVuIEhWTT4NDQppb2FwaWMwOiBDaGFuZ2luZyBBUElD IElEIHRvIDENDQpNQURUOiBGb3JjaW5nIGFjdGl2ZS1sb3cgcG9sYXJpdHkgYW5kIGxldmVsIHRy aWdnZXIgZm9yIFNDSQ0NCmlvYXBpYzAgPFZlcnNpb24gMS4xPiBpcnFzIDAtNDcgb24gbW90aGVy Ym9hcmQNDQprYmQxIGF0IGtiZG11eDANDQphY3BpMDogPFhlbj4gb24gbW90aGVyYm9hcmQNDQph Y3BpMDogW0lUSFJFQURdDQ0KYWNwaTA6IFBvd2VyIEJ1dHRvbiAoZml4ZWQpDQ0KYWNwaTA6IFNs ZWVwIEJ1dHRvbiAoZml4ZWQpDQ0KVGltZWNvdW50ZXIgIkFDUEktc2FmZSIgZnJlcXVlbmN5IDM1 Nzk1NDUgSHogcXVhbGl0eSA4NTANDQphY3BpX3RpbWVyMDogPDMyLWJpdCB0aW1lciBhdCAzLjU3 OTU0NU1Iej4gcG9ydCAweGIwMDgtMHhiMDBiIG9uIGFjcGkwDQ0KY3B1MDogPEFDUEkgQ1BVPiBv biBhY3BpMA0NCnBjaWIwOiA8QUNQSSBIb3N0LVBDSSBicmlkZ2U+IHBvcnQgMHhjZjgtMHhjZmYg b24gYWNwaTANDQpwY2kwOiA8QUNQSSBQQ0kgYnVzPiBvbiBwY2liMA0NCmlzYWIwOiA8UENJLUlT QSBicmlkZ2U+IGF0IGRldmljZSAxLjAgb24gcGNpMA0NCmlzYTA6IDxJU0EgYnVzPiBvbiBpc2Fi MA0NCmF0YXBjaTA6IDxJbnRlbCBQSUlYMyBXRE1BMiBjb250cm9sbGVyPiBwb3J0IDB4MWYwLTB4 MWY3LDB4M2Y2LDB4MTcwLTB4MTc3LDB4Mzc2LDB4YzIyMC0weGMyMmYgYXQgZGV2aWNlIDEuMSBv biBwY2kwDQ0KYXRhMDogPEFUQSBjaGFubmVsPiBhdCBjaGFubmVsIDAgb24gYXRhcGNpMA0NCmF0 YTA6IFtJVEhSRUFEXQ0NCmF0YTE6IDxBVEEgY2hhbm5lbD4gYXQgY2hhbm5lbCAxIG9uIGF0YXBj aTANDQphdGExOiBbSVRIUkVBRF0NDQp1aGNpMDogPEludGVsIDgyMzcxU0IgKFBJSVgzKSBVU0Ig Y29udHJvbGxlcj4gcG9ydCAweGMyMDAtMHhjMjFmIGlycSAyMyBhdCBkZXZpY2UgMS4yIG9uIHBj aTANDQp1aGNpMDogW0lUSFJFQURdDQ0KdXNidXMwOiBjb250cm9sbGVyIGRpZCBub3Qgc3RvcA0N CnVzYnVzMDogPEludGVsIDgyMzcxU0IgKFBJSVgzKSBVU0IgY29udHJvbGxlcj4gb24gdWhjaTAN DQpwY2kwOiA8YnJpZGdlPiBhdCBkZXZpY2UgMS4zIChubyBkcml2ZXIgYXR0YWNoZWQpDQ0Kdmdh cGNpMDogPFZHQS1jb21wYXRpYmxlIGRpc3BsYXk+IG1lbSAweGYwMDAwMDAwLTB4ZjFmZmZmZmYs MHhmMzAwMDAwMC0weGYzMDAwZmZmIGF0IGRldmljZSAyLjAgb24gcGNpMA0NCnhlbnBjaTA6IDxY ZW4gUGxhdGZvcm0gRGV2aWNlPiBwb3J0IDB4YzAwMC0weGMwZmYgbWVtIDB4ZjIwMDAwMDAtMHhm MmZmZmZmZiBpcnEgMjggYXQgZGV2aWNlIDMuMCBvbiBwY2kwDQ0KeGVuc3RvcmUwOiA8WGVuU3Rv cmU+IG9uIHhlbnBjaTANDQpyZTA6IDxSZWFsVGVrIDgxMzlDKyAxMC8xMDBCYXNlVFg+IHBvcnQg MHhjMTAwLTB4YzFmZiBtZW0gMHhmMzAwMTAwMC0weGYzMDAxMGZmIGlycSAzMiBhdCBkZXZpY2Ug NC4wIG9uIHBjaTANDQpyZTA6IENoaXAgcmV2LiAweDc0ODAwMDAwDQ0KcmUwOiBNQUMgcmV2LiAw eDAwMDAwMDAwDQ0KbWlpYnVzMDogPE1JSSBidXM+IG9uIHJlMA0NCnJscGh5MDogPFJlYWxUZWsg aW50ZXJuYWwgbWVkaWEgaW50ZXJmYWNlPiBQSFkgMCBvbiBtaWlidXMwDQ0KcmxwaHkwOiAgMTBi YXNlVCwgMTBiYXNlVC1GRFgsIDEwMGJhc2VUWCwgMTAwYmFzZVRYLUZEWCwgYXV0bywgYXV0by1m bG93DQ0KcmUwOiBFdGhlcm5ldCBhZGRyZXNzOiAwMDoxNjozZTo1NTpkYjpmZA0NCnJlMDogW0ZJ TFRFUl0NDQphdHJ0YzA6IDxBVCByZWFsdGltZSBjbG9jaz4gcG9ydCAweDcwLTB4NzEgaXJxIDgg b24gYWNwaTANDQphdGtiZGMwOiA8S2V5Ym9hcmQgY29udHJvbGxlciAoaTgwNDIpPiBwb3J0IDB4 NjAsMHg2NCBpcnEgMSBvbiBhY3BpMA0NCmF0a2JkMDogPEFUIEtleWJvYXJkPiBpcnEgMSBvbiBh dGtiZGMwDQ0Ka2JkMCBhdCBhdGtiZDANDQphdGtiZDA6IFtHSUFOVC1MT0NLRURdDQ0KYXRrYmQw OiBbSVRIUkVBRF0NDQpwc20wOiA8UFMvMiBNb3VzZT4gaXJxIDEyIG9uIGF0a2JkYzANDQpwc20w OiBbR0lBTlQtTE9DS0VEXQ0NCnBzbTA6IFtJVEhSRUFEXQ0NCnBzbTA6IG1vZGVsIEludGVsbGlN b3VzZSBFeHBsb3JlciwgZGV2aWNlIElEIDQNDQpmZGMwOiA8ZmxvcHB5IGRyaXZlIGNvbnRyb2xs ZXI+IHBvcnQgMHgzZjAtMHgzZjUsMHgzZjcgaXJxIDYgZHJxIDIgb24gYWNwaTANDQpmZGMwOiBk b2VzIG5vdCByZXNwb25kDQ0KZGV2aWNlX2F0dGFjaDogZmRjMCBhdHRhY2ggcmV0dXJuZWQgNg0N CnVhcnQwOiA8MTY1NTAgb3IgY29tcGF0aWJsZT4gcG9ydCAweDNmOC0weDNmZiBpcnEgNCBmbGFn cyAweDEwIG9uIGFjcGkwDQ0KdWFydDA6IFtGSUxURVJdDQ0KdWFydDA6IGNvbnNvbGUgKDk2MDAs biw4LDEpDQ0KcHBjMDogPFBhcmFsbGVsIHBvcnQ+IHBvcnQgMHgzNzgtMHgzN2YgaXJxIDcgb24g YWNwaTANDQpwcGMwOiBHZW5lcmljIGNoaXBzZXQgKE5JQkJMRS1vbmx5KSBpbiBDT01QQVRJQkxF IG1vZGUNDQpwcGMwOiBbSVRIUkVBRF0NDQpwcGJ1czA6IDxQYXJhbGxlbCBwb3J0IGJ1cz4gb24g cHBjMA0NCnBsaXAwOiA8UExJUCBuZXR3b3JrIGludGVyZmFjZT4gb24gcHBidXMwDQ0KcGxpcDA6 IFtJVEhSRUFEXQ0NCmxwdDA6IDxQcmludGVyPiBvbiBwcGJ1czANDQpscHQwOiBbSVRIUkVBRF0N DQpscHQwOiBJbnRlcnJ1cHQtZHJpdmVuIHBvcnQNDQpwcGkwOiA8UGFyYWxsZWwgSS9PPiBvbiBw cGJ1czANDQpwbXRpbWVyMCBvbiBpc2EwDQ0Kb3JtMDogPElTQSBPcHRpb24gUk9NPiBhdCBpb21l bSAweGM5MDAwLTB4Yzk3ZmYgcG5waWQgT1JNMDAwMCBvbiBpc2EwDQ0Kc2MwOiA8U3lzdGVtIGNv bnNvbGU+IGF0IGZsYWdzIDB4MTAwIG9uIGlzYTANDQpzYzA6IFZHQSA8MTYgdmlydHVhbCBjb25z b2xlcywgZmxhZ3M9MHgzMDA+DQ0KdmdhMDogPEdlbmVyaWMgSVNBIFZHQT4gYXQgcG9ydCAweDNj MC0weDNkZiBpb21lbSAweGEwMDAwLTB4YmZmZmYgb24gaXNhMA0NClRpbWVjb3VudGVyICJUU0Mi IGZyZXF1ZW5jeSAyNjU5NzM4NjAyIEh6IHF1YWxpdHkgODAwDQ0KVGltZWNvdW50ZXJzIHRpY2sg ZXZlcnkgMTAuMDAwIG1zZWMNDQp1c2J1czA6IDEyTWJwcyBGdWxsIFNwZWVkIFVTQiB2MS4wDQ0K YWQwOiAyNTAwME1CIDxRRU1VIEhBUkRESVNLIDAuMTAuMj4gYXQgYXRhMC1tYXN0ZXIgV0RNQTIg DQ0KdWdlbjAuMTogPEludGVsPiBhdCB1c2J1czANDQp1aHViMDogPEludGVsIFVIQ0kgcm9vdCBI VUIsIGNsYXNzIDkvMCwgcmV2IDEuMDAvMS4wMCwgYWRkciAxPiBvbiB1c2J1czANDQphY2QwOiBD RFJPTSA8UUVNVSBEVkQtUk9NLzAuMTAuMj4gYXQgYXRhMS1tYXN0ZXIgV0RNQTIgDQ0KeGVuYnVz Yl9mcm9udDA6IDxYZW4gRnJvbnRlbmQgRGV2aWNlcz4gb24geGVuc3RvcmUwDQ0KeG4wOiA8Vmly dHVhbCBOZXR3b3JrIEludGVyZmFjZT4gYXQgZGV2aWNlL3ZpZi8wIG9uIHhlbmJ1c2JfZnJvbnQw DQ0KeG4wOiBFdGhlcm5ldCBhZGRyZXNzOiAwMDoxNjozZTo1NTpkYjpmZA0NCnhlbmJ1c2JfYmFj azA6IDxYZW4gQmFja2VuZCBEZXZpY2VzPiBvbiB4ZW5zdG9yZTANDQp4Y3RybDA6IDxYZW4gQ29u dHJvbCBEZXZpY2U+IG9uIHhlbnN0b3JlMA0NCnhuMDogYmFja2VuZCBmZWF0dXJlczogZmVhdHVy ZS1zZyBmZWF0dXJlLWdzby10Y3A0DQ0KeGJkMDogMjUwMDBNQiA8VmlydHVhbCBCbG9jayBEZXZp Y2U+IGF0IGRldmljZS92YmQvNzY4IG9uIHhlbmJ1c2JfZnJvbnQwDQ0KeGJkMDogYXR0YWNoaW5n IGFzIGFkMA0NCmNhbid0IHJlLXVzZSBhIGxlYWYgKGxlZCkhDQ0KR0VPTTogYWQwczE6IGdlb21l dHJ5IGRvZXMgbm90IG1hdGNoIGxhYmVsICgxNmgsNjNzICE9IDI1NWgsNjNzKS4NDQp1aHViMDog MiBwb3J0cyB3aXRoIDIgcmVtb3ZhYmxlLCBzZWxmIHBvd2VyZWQNDQp1Z2VuMC4yOiA8UUVNVSAw LjEwLjI+IGF0IHVzYnVzMA0NCnVtczA6IDxFbmRwb2ludDEgSW50ZXJydXB0IFBpcGU+IG9uIHVz YnVzMA0NCnVtczA6IDMgYnV0dG9ucyBhbmQgW1pdIGNvb3JkaW5hdGVzIElEPTANDQpydW5faW50 ZXJydXB0X2RyaXZlbl9ob29rczogc3RpbGwgd2FpdGluZyBhZnRlciA2MCBzZWNvbmRzIGZvciB4 ZW5idXNiX25vcF9jb25maWdob29rX2NiDQ0KcnVuX2ludGVycnVwdF9kcml2ZW5faG9va3M6IHN0 aWxsIHdhaXRpbmcgYWZ0ZXIgMTIwIHNlY29uZHMgZm9yIHhlbmJ1c2Jfbm9wX2NvbmZpZ2hvb2tf Y2INDQpydW5faW50ZXJydXB0X2RyaXZlbl9ob29rczogc3RpbGwgd2FpdGluZyBhZnRlciAxODAg c2Vjb25kcyBmb3IgeGVuYnVzYl9ub3BfY29uZmlnaG9va19jYg0NCnJ1bl9pbnRlcnJ1cHRfZHJp dmVuX2hvb2tzOiBzdGlsbCB3YWl0aW5nIGFmdGVyIDI0MCBzZWNvbmRzIGZvciB4ZW5idXNiX25v cF9jb25maWdob29rX2NiDQ0KcnVuX2ludGVycnVwdF9kcml2ZW5faG9va3M6IHN0aWxsIHdhaXRp bmcgYWZ0ZXIgMzAwIHNlY29uZHMgZm9yIHhlbmJ1c2Jfbm9wX2NvbmZpZ2hvb2tfY2INDQo= --bcaec52c69633653f504daba344a--