From nobody@FreeBSD.org  Mon Jun 14 20:43:03 2010
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 9A7E0106564A
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 14 Jun 2010 20:43:03 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21])
	by mx1.freebsd.org (Postfix) with ESMTP id 89C978FC18
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 14 Jun 2010 20:43:03 +0000 (UTC)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.3/8.14.3) with ESMTP id o5EKh3lj081918
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 14 Jun 2010 20:43:03 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.3/8.14.3/Submit) id o5EKh3Ga081917;
	Mon, 14 Jun 2010 20:43:03 GMT
	(envelope-from nobody)
Message-Id: <201006142043.o5EKh3Ga081917@www.freebsd.org>
Date: Mon, 14 Jun 2010 20:43:03 GMT
From: Maciej Suszko <maciej@suszko.eu>
To: freebsd-gnats-submit@FreeBSD.org
Subject: acpi_hp not working when loaded via loader.conf
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         147858
>Category:       kern
>Synopsis:       [acpi] acpi_hp not working when loaded via loader.conf
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    avg
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jun 14 20:50:01 UTC 2010
>Closed-Date:    Sat Sep 18 07:17:38 UTC 2010
>Last-Modified:  Sat Sep 18 07:20:05 UTC 2010
>Originator:     Maciej Suszko
>Release:        8.1-RC1
>Organization:
>Environment:
FreeBSD arsenic 8.1-RC1 FreeBSD 8.1-RC1 #0: Mon Jun 14 12:01:46 CEST 2010     root@arsenic:/usr/obj/usr/src/sys/ARSENIC  amd64
>Description:
This bug is present on my two laptops - HP nx7300, one running earlier 8.1-PRERELEASE, another 8.1-RC1 (both amd64). If I remember correctly, acpi_hp worked on 8.0-RELEASE.
When loaded via loader.conf, there is no /dev/hpcmi, sysctl dev.acpi_hp returns 0 lines. Unloading and loading the module make it work again. I've already tried to build a custom kernel with both acpi_wmi and acpi_hp compiled in - same problem as loaded on boot.

>How-To-Repeat:
Boot the machine with acpi_hp_load="YES" in loader.conf:
- no device entry /dev/hpcmi
- empty output of sysctl dev.acpi_hp

then, reload the module:
kldunload acpi_hp && kldload acpi_hp
- /dev/hpcmi present and readable
- sysctl dev.acpi_hp returns values described in acpi_hp(4)


>Fix:


>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->feedback 
State-Changed-By: vwe 
State-Changed-When: Thu Aug 19 21:08:41 UTC 2010 
State-Changed-Why:  
Maciej, 
please provide a verbose boot dmesg when acpi_hp is loaded from loader(8) 


Responsible-Changed-From-To: freebsd-bugs->freebsd-acpi 
Responsible-Changed-By: vwe 
Responsible-Changed-When: Thu Aug 19 21:08:41 UTC 2010 
Responsible-Changed-Why:  
Over to maintainer(s). 

http://www.freebsd.org/cgi/query-pr.cgi?pr=147858 

From: Andriy Gapon <avg@freebsd.org>
To: bug-followup@freebsd.org, maciej@suszko.eu
Cc:  
Subject: Re: kern/147858: [acpi] acpi_hp not working when loaded via loader.conf
Date: Wed, 01 Sep 2010 20:18:36 +0300

 Hm, acpi_hp seems to be quite bad in newbus department.
 It doesn't have an identify method to create a device_t for its use and its probe
 method would claim any device_t passed in.
 So, it doesn't have any actual provision to get probed/attached after acpi_wmi and
 it can potentially wrek havoc by claiming device_t which should be handled by some
 other driver.
 
 I guess that I "broke" this driver when I removed second pass of probe+attach of
 acpi bus children, but it is the driver that should be fixed.
 
 -- 
 Andriy Gapon

From: Andriy Gapon <avg@icyb.net.ua>
To: bug-followup@FreeBSD.org, maciej@suszko.eu
Cc: Rui Paulo <rpaulo@FreeBSD.org>
Subject: Re: kern/147858: [acpi] acpi_hp not working when loaded via loader.conf
Date: Fri, 03 Sep 2010 10:55:50 +0300

 This is a multi-part message in MIME format.
 --------------080100030005090509050807
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 7bit
 
 
 Could originator and other people having the problem please test the attached
 patch and followup to the PR?
 Thanks!
 
 The patch is only compile-tested by me, because I don't have the hardware.
 So you might experience crashes or other surprising behavior.
 But I hope that you won't.
 
 -- 
 Andriy Gapon
 
 --------------080100030005090509050807
 Content-Type: text/plain;
  name="acpi_hp.diff"
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment;
  filename="acpi_hp.diff"
 
 ZGlmZiAtLWdpdCBhL3N5cy9kZXYvYWNwaV9zdXBwb3J0L2FjcGlfaHAuYyBiL3N5cy9kZXYv
 YWNwaV9zdXBwb3J0L2FjcGlfaHAuYwppbmRleCBiMGU4NWJlLi4yNWY5OTJjIDEwMDY0NAot
 LS0gYS9zeXMvZGV2L2FjcGlfc3VwcG9ydC9hY3BpX2hwLmMKKysrIGIvc3lzL2Rldi9hY3Bp
 X3N1cHBvcnQvYWNwaV9ocC5jCkBAIC00OSw2ICs0OSw3IEBAIF9fRkJTRElEKCIkRnJlZUJT
 RCQiKTsKICNpbmNsdWRlIDxzeXMvdWlvLmg+CiAjaW5jbHVkZSA8c3lzL3Byb2MuaD4KICNp
 bmNsdWRlIDxzeXMva2VybmVsLmg+CisjaW5jbHVkZSA8c3lzL2xpbWl0cy5oPgogI2luY2x1
 ZGUgPHN5cy9idXMuaD4KICNpbmNsdWRlIDxzeXMvc2J1Zi5oPgogI2luY2x1ZGUgPHN5cy9t
 b2R1bGUuaD4KQEAgLTExNiw3ICsxMTcsNiBAQCBzdHJ1Y3QgYWNwaV9ocF9pbnN0X3NlcV9w
 YWlyIHsKIAogc3RydWN0IGFjcGlfaHBfc29mdGMgewogCWRldmljZV90CWRldjsKLQlBQ1BJ
 X0hBTkRMRQloYW5kbGU7CiAJZGV2aWNlX3QJd21pX2RldjsKIAlpbnQJCWhhc19ub3RpZnk7
 CQkvKiBub3RpZmljYXRpb24gR1VJRCBmb3VuZCAqLwogCWludAkJaGFzX2NtaTsJCS8qIENN
 SSBHVUlEIGZvdW5kICovCkBAIC0yODksNiArMjg5LDcgQEAgc3RhdGljIHN0cnVjdCB7CiAK
 IEFDUElfU0VSSUFMX0RFQ0woaHAsICJIUCBBQ1BJLVdNSSBNYXBwaW5nIik7CiAKK3N0YXRp
 YyB2b2lkCWFjcGlfaHBfaWRlbnRpZnkoZHJpdmVyX3QgKmRyaXZlciwgZGV2aWNlX3QgcGFy
 ZW50KTsKIHN0YXRpYyBpbnQJYWNwaV9ocF9wcm9iZShkZXZpY2VfdCBkZXYpOwogc3RhdGlj
 IGludAlhY3BpX2hwX2F0dGFjaChkZXZpY2VfdCBkZXYpOwogc3RhdGljIGludAlhY3BpX2hw
 X2RldGFjaChkZXZpY2VfdCBkZXYpOwpAQCAtMzIwLDYgKzMyMSw3IEBAIHN0YXRpYyBzdHJ1
 Y3QgY2RldnN3IGhwY21pX2NkZXZzdyA9IHsKIH07CiAKIHN0YXRpYyBkZXZpY2VfbWV0aG9k
 X3QgYWNwaV9ocF9tZXRob2RzW10gPSB7CisJREVWTUVUSE9EKGRldmljZV9pZGVudGlmeSwg
 YWNwaV9ocF9pZGVudGlmeSksCiAJREVWTUVUSE9EKGRldmljZV9wcm9iZSwgYWNwaV9ocF9w
 cm9iZSksCiAJREVWTUVUSE9EKGRldmljZV9hdHRhY2gsIGFjcGlfaHBfYXR0YWNoKSwKIAlE
 RVZNRVRIT0QoZGV2aWNlX2RldGFjaCwgYWNwaV9ocF9kZXRhY2gpLApAQCAtNDA1LDcgKzQw
 Nyw3IEBAIGFjcGlfaHBfZXZhbHVhdGVfYXV0b19vbl9vZmYoc3RydWN0IGFjcGlfaHBfc29m
 dGMgKnNjKQogCQkJICAgIAkgICAgIldMQU4gb24gYWlyIGNoYW5nZWQgdG8gJWkgIgogCQkJ
 ICAgIAkgICAgIihuZXdfd2xhbl9zdGF0dXMgaXMgJWkpXG4iLAogCQkJICAgIAkgICAgc2Mt
 Pndhc193bGFuX29uX2FpciwgbmV3X3dsYW5fc3RhdHVzKTsKLQkJCWFjcGlfVXNlck5vdGlm
 eSgiSFAiLCBzYy0+aGFuZGxlLAorCQkJYWNwaV9Vc2VyTm90aWZ5KCJIUCIsIEFDUElfUk9P
 VF9PQkpFQ1QsCiAJCQkgICAgMHhjMCtzYy0+d2FzX3dsYW5fb25fYWlyKTsKIAkJfQogCX0K
 QEAgLTQyMCw3ICs0MjIsNyBAQCBhY3BpX2hwX2V2YWx1YXRlX2F1dG9fb25fb2ZmKHN0cnVj
 dCBhY3BpX2hwX3NvZnRjICpzYykKIAkJCQkgICAgIiB0byAlaSAobmV3X2JsdWV0b290aF9z
 dGF0dXMgaXMgJWkpXG4iLAogCQkJCSAgICBzYy0+d2FzX2JsdWV0b290aF9vbl9haXIsCiAJ
 CQkJICAgIG5ld19ibHVldG9vdGhfc3RhdHVzKTsKLQkJCWFjcGlfVXNlck5vdGlmeSgiSFAi
 LCBzYy0+aGFuZGxlLAorCQkJYWNwaV9Vc2VyTm90aWZ5KCJIUCIsIEFDUElfUk9PVF9PQkpF
 Q1QsCiAJCQkgICAgMHhkMCtzYy0+d2FzX2JsdWV0b290aF9vbl9haXIpOwogCQl9CiAJfQpA
 QCAtNDMzLDE2ICs0MzUsNDMgQEAgYWNwaV9ocF9ldmFsdWF0ZV9hdXRvX29uX29mZihzdHJ1
 Y3QgYWNwaV9ocF9zb2Z0YyAqc2MpCiAJCQkJICAgICJXV0FOIG9uIGFpciBjaGFuZ2VkIHRv
 ICVpIgogCQkJICAgIAkgICAgIiAobmV3X3d3YW5fc3RhdHVzIGlzICVpKVxuIiwKIAkJCQkg
 ICAgc2MtPndhc193d2FuX29uX2FpciwgbmV3X3d3YW5fc3RhdHVzKTsKLQkJCWFjcGlfVXNl
 ck5vdGlmeSgiSFAiLCBzYy0+aGFuZGxlLAorCQkJYWNwaV9Vc2VyTm90aWZ5KCJIUCIsIEFD
 UElfUk9PVF9PQkpFQ1QsCiAJCQkgICAgMHhlMCtzYy0+d2FzX3d3YW5fb25fYWlyKTsKIAkJ
 fQogCX0KIH0KIAorc3RhdGljIHZvaWQKK2FjcGlfaHBfaWRlbnRpZnkoZHJpdmVyX3QgKmRy
 aXZlciwgZGV2aWNlX3QgcGFyZW50KQoreworCisJLyogRG9uJ3QgZG8gYW55dGhpbmcgaWYg
 ZHJpdmVyIGlzIGRpc2FibGVkLiAqLworCWlmIChhY3BpX2Rpc2FibGVkKCJocCIpKQorCQly
 ZXR1cm47CisKKwkvKiBBZGQgb25seSBhIHNpbmdsZSBkZXZpY2UgaW5zdGFuY2UuICovCisJ
 aWYgKGRldmljZV9maW5kX2NoaWxkKHBhcmVudCwgImFjcGlfaHAiLCAtMSkgIT0gTlVMTCkK
 KwkJcmV0dXJuOworCisJLyogTWFrZSBzdXJlIGFjcGlfd21pIGRyaXZlciBpcyBwcmVzZW50
 LiAqLworCWlmIChkZXZjbGFzc19maW5kKCJhY3BpX3dtaSIpID09IE5VTEwpCisJCXJldHVy
 bjsKKworCS8qCisJICogQWRkIG91ciBkZXZpY2Ugd2l0aCBsYXRlIG9yZGVyLCBzbyB0aGF0
 IGl0IGlzIGhvcGVmdWxseQorCSAqIHByb2JlZCBhZnRlciBhY3BpX3dtaS4KKwkgKiBYWFgg
 VXNlciBwcm9wZXIgY29uc3RhbnQgaW5zdGVhZCBvZiBVQ0hBUl9NQVggZm9yIG9yZGVyLgor
 CSAqLworCWlmIChCVVNfQUREX0NISUxEKHBhcmVudCwgVUNIQVJfTUFYLCAiYWNwaV9ocCIs
 IC0xKSA9PSBOVUxMKQorCQlkZXZpY2VfcHJpbnRmKHBhcmVudCwgImFkZCBhY3BpX2hwIGNo
 aWxkIGZhaWxlZFxuIik7Cit9CisKIHN0YXRpYyBpbnQKIGFjcGlfaHBfcHJvYmUoZGV2aWNl
 X3QgZGV2KQogewotCWlmIChhY3BpX2Rpc2FibGVkKCJocCIpIHx8IGRldmljZV9nZXRfdW5p
 dChkZXYpICE9IDApCisKKwkvKiBTa2lwIGF1dG8tZW51bWVyYXRlZCBkZXZpY2VzIGZyb20g
 QUNQSSBuYW1lc3BhY2UuICovCisJaWYgKGFjcGlfZ2V0X2hhbmRsZShkZXYpICE9IE5VTEwp
 CiAJCXJldHVybiAoRU5YSU8pOwogCWRldmljZV9zZXRfZGVzYyhkZXYsICJIUCBBQ1BJLVdN
 SSBNYXBwaW5nIik7CiAKQEAgLTQ2MCw3ICs0ODksNiBAQCBhY3BpX2hwX2F0dGFjaChkZXZp
 Y2VfdCBkZXYpCiAKIAlzYyA9IGRldmljZV9nZXRfc29mdGMoZGV2KTsKIAlzYy0+ZGV2ID0g
 ZGV2OwotCXNjLT5oYW5kbGUgPSBhY3BpX2dldF9oYW5kbGUoZGV2KTsKIAlzYy0+aGFzX25v
 dGlmeSA9IDA7CiAJc2MtPmhhc19jbWkgPSAwOwogCXNjLT5ibHVldG9vdGhfZW5hYmxlX2lm
 X3JhZGlvX29uID0gMDsKQEAgLTQ3Nyw3ICs1MDUsNyBAQCBhY3BpX2hwX2F0dGFjaChkZXZp
 Y2VfdCBkZXYpCiAJc2MtPnZlcmJvc2UgPSAwOwogCW1lbXNldChzYy0+Y21pX29yZGVyLCAw
 LCBzaXplb2Yoc2MtPmNtaV9vcmRlcikpOwogCi0JaWYgKCEod21pX2RldmNsYXNzID0gZGV2
 Y2xhc3NfZmluZCAoImFjcGlfd21pIikpKSB7CisJaWYgKCEod21pX2RldmNsYXNzID0gZGV2
 Y2xhc3NfZmluZCgiYWNwaV93bWkiKSkpIHsKIAkJZGV2aWNlX3ByaW50ZihkZXYsICJDb3Vs
 ZG4ndCBmaW5kIGFjcGlfd21pIGRldmNsYXNzXG4iKTsKIAkJcmV0dXJuIChFSU5WQUwpOwog
 CX0K
 --------------080100030005090509050807--

From: Andriy Gapon <avg@icyb.net.ua>
To: Maciej Suszko <maciej@suszko.eu>
Cc: bug-followup@FreeBSD.org, Rui Paulo <rpaulo@FreeBSD.org>
Subject: Re: kern/147858: [acpi] acpi_hp not working when loaded via loader.conf
Date: Sat, 04 Sep 2010 22:49:30 +0300

 on 04/09/2010 22:33 Maciej Suszko said the following:
 > Andriy Gapon <avg@icyb.net.ua> wrote:
 >>
 >> Could originator and other people having the problem please test the
 >> attached patch and followup to the PR?
 >> Thanks!
 >>
 >> The patch is only compile-tested by me, because I don't have the
 >> hardware. So you might experience crashes or other surprising
 >> behavior. But I hope that you won't.
 > 
 > Thanks, now it's working again. Device is present and readable, no
 > crashes or any unexpected behavior... at least for now.
 
 Thank you very much for testing!
 Could you please share verbose dmesg just in case?
 Thanks!
 -- 
 Andriy Gapon

From: Maciej Suszko <maciej@suszko.eu>
To: Andriy Gapon <avg@icyb.net.ua>
Cc: bug-followup@FreeBSD.org, Rui Paulo <rpaulo@FreeBSD.org>
Subject: Re: kern/147858: [acpi] acpi_hp not working when loaded via
 loader.conf
Date: Sat, 4 Sep 2010 21:33:16 +0200

 --Sig_//dG2huTlxyh_cbariZK2kDE
 Content-Type: text/plain; charset=US-ASCII
 Content-Transfer-Encoding: quoted-printable
 
 Andriy Gapon <avg@icyb.net.ua> wrote:
 >=20
 > Could originator and other people having the problem please test the
 > attached patch and followup to the PR?
 > Thanks!
 >=20
 > The patch is only compile-tested by me, because I don't have the
 > hardware. So you might experience crashes or other surprising
 > behavior. But I hope that you won't.
 
 Thanks, now it's working again. Device is present and readable, no
 crashes or any unexpected behavior... at least for now.
 --=20
 regards, Maciej Suszko.
 
 --Sig_//dG2huTlxyh_cbariZK2kDE
 Content-Type: application/pgp-signature; name=signature.asc
 Content-Disposition: attachment; filename=signature.asc
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.16 (FreeBSD)
 
 iEYEARECAAYFAkyCnwAACgkQCikUk0l7iGr/dQCfSYnFzuSyAlomgvhx0IDQ68my
 bugAn1qbs3AYiwgsfgE6a296n4xUbMdt
 =MoN7
 -----END PGP SIGNATURE-----
 
 --Sig_//dG2huTlxyh_cbariZK2kDE--

From: Maciej Suszko <maciej@suszko.eu>
To: Andriy Gapon <avg@icyb.net.ua>
Cc: bug-followup@FreeBSD.org, Rui Paulo <rpaulo@FreeBSD.org>
Subject: Re: kern/147858: [acpi] acpi_hp not working when loaded via
 loader.conf
Date: Sat, 4 Sep 2010 22:29:34 +0200

 --Sig_/aUx2RBkDgZ/Agz5kb/wPcDD
 Content-Type: multipart/mixed; boundary="MP_/zdVsl0JXJ+RX/EQ.T4Gr24T"
 
 --MP_/zdVsl0JXJ+RX/EQ.T4Gr24T
 Content-Type: text/plain; charset=US-ASCII
 Content-Transfer-Encoding: quoted-printable
 Content-Disposition: inline
 
 Andriy Gapon <avg@icyb.net.ua> wrote:
 > on 04/09/2010 22:33 Maciej Suszko said the following:
 > > Andriy Gapon <avg@icyb.net.ua> wrote:
 > >>
 > >> Could originator and other people having the problem please test
 > >> the attached patch and followup to the PR?
 > >> Thanks!
 > >>
 > >> The patch is only compile-tested by me, because I don't have the
 > >> hardware. So you might experience crashes or other surprising
 > >> behavior. But I hope that you won't.
 > >=20
 > > Thanks, now it's working again. Device is present and readable, no
 > > crashes or any unexpected behavior... at least for now.
 >=20
 > Thank you very much for testing!
 > Could you please share verbose dmesg just in case?
 > Thanks!
 
 No problem, dmesg.boot attached.
 --=20
 regards, Maciej Suszko.
 
 --MP_/zdVsl0JXJ+RX/EQ.T4Gr24T
 Content-Type: application/octet-stream; name=dmesg.boot
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment; filename=dmesg.boot
 
 Q29weXJpZ2h0IChjKSAxOTkyLTIwMTAgVGhlIEZyZWVCU0QgUHJvamVjdC4KQ29weXJpZ2h0IChj
 KSAxOTc5LCAxOTgwLCAxOTgzLCAxOTg2LCAxOTg4LCAxOTg5LCAxOTkxLCAxOTkyLCAxOTkzLCAx
 OTk0CglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiBBbGwgcmln
 aHRzIHJlc2VydmVkLgpGcmVlQlNEIGlzIGEgcmVnaXN0ZXJlZCB0cmFkZW1hcmsgb2YgVGhlIEZy
 ZWVCU0QgRm91bmRhdGlvbi4KRnJlZUJTRCA4LjEtUkVMRUFTRSAjMDogU2F0IEp1bCAyNCAxNjox
 NDozOCBDRVNUIDIwMTAKICAgIHJvb3RAYXJzZW5pYzovdXNyL29iai91c3Ivc3JjL3N5cy9BUlNF
 TklDIGFtZDY0ClByZWxvYWRlZCBlbGYga2VybmVsICIvYm9vdC9rZXJuZWwva2VybmVsIiBhdCAw
 eGZmZmZmZmZmODBjMzAwMDAuClByZWxvYWRlZCBlbGYgb2JqIG1vZHVsZSAiL2Jvb3Qva2VybmVs
 L3pmcy5rbyIgYXQgMHhmZmZmZmZmZjgwYzMwMjIwLgpQcmVsb2FkZWQgZWxmIG9iaiBtb2R1bGUg
 Ii9ib290L2tlcm5lbC9vcGVuc29sYXJpcy5rbyIgYXQgMHhmZmZmZmZmZjgwYzMwODg4LgpQcmVs
 b2FkZWQgZWxmIG9iaiBtb2R1bGUgIi9ib290L2tlcm5lbC9pZl90YXAua28iIGF0IDB4ZmZmZmZm
 ZmY4MGMzMGU3OC4KUHJlbG9hZGVkIGVsZiBvYmogbW9kdWxlICIvYm9vdC9rZXJuZWwvc291bmQu
 a28iIGF0IDB4ZmZmZmZmZmY4MGMzMTQ2MC4KUHJlbG9hZGVkIGVsZiBvYmogbW9kdWxlICIvYm9v
 dC9rZXJuZWwvc25kX2hkYS5rbyIgYXQgMHhmZmZmZmZmZjgwYzMxYWM4LgpQcmVsb2FkZWQgZWxm
 IG9iaiBtb2R1bGUgIi9ib290L2tlcm5lbC9jb3JldGVtcC5rbyIgYXQgMHhmZmZmZmZmZjgwYzMy
 MGIwLgpQcmVsb2FkZWQgL2Jvb3QvemZzL3pwb29sLmNhY2hlICIvYm9vdC96ZnMvenBvb2wuY2Fj
 aGUiIGF0IDB4ZmZmZmZmZmY4MGMzMjVhMC4KUHJlbG9hZGVkIGVsZiBvYmogbW9kdWxlICIvYm9v
 dC9rZXJuZWwvYWhjaS5rbyIgYXQgMHhmZmZmZmZmZjgwYzMyNjAwLgpQcmVsb2FkZWQgZWxmIG9i
 aiBtb2R1bGUgIi9ib290L2tlcm5lbC9hdGFwaWNhbS5rbyIgYXQgMHhmZmZmZmZmZjgwYzMyYmU4
 LgpQcmVsb2FkZWQgZWxmIG9iaiBtb2R1bGUgIi9ib290L2tlcm5lbC9hY3BpX3dtaS5rbyIgYXQg
 MHhmZmZmZmZmZjgwYzMzMWQ4LgpQcmVsb2FkZWQgZWxmIG9iaiBtb2R1bGUgIi9ib290L2tlcm5l
 bC9hY3BpX2hwLmtvIiBhdCAweGZmZmZmZmZmODBjMzM3ODguClByZWxvYWRlZCBlbGYgb2JqIG1v
 ZHVsZSAiL2Jvb3QvbW9kdWxlcy92Ym94ZHJ2LmtvIiBhdCAweGZmZmZmZmZmODBjMzNkNzAuClRp
 bWVjb3VudGVyICJpODI1NCIgZnJlcXVlbmN5IDExOTMxODIgSHogcXVhbGl0eSAwCkNhbGlicmF0
 aW5nIFRTQyBjbG9jayAuLi4gVFNDIGNsb2NrOiAxOTk1MDE2MDgwIEh6CkNQVTogSW50ZWwoUikg
 Q29yZShUTSkyIENQVSAgICAgICAgIFQ3MjAwICBAIDIuMDBHSHogKDE5OTUuMDItTUh6IEs4LWNs
 YXNzIENQVSkKICBPcmlnaW4gPSAiR2VudWluZUludGVsIiAgSWQgPSAweDZmNiAgRmFtaWx5ID0g
 NiAgTW9kZWwgPSBmICBTdGVwcGluZyA9IDYKICBGZWF0dXJlcz0weGJmZWJmYmZmPEZQVSxWTUUs
 REUsUFNFLFRTQyxNU1IsUEFFLE1DRSxDWDgsQVBJQyxTRVAsTVRSUixQR0UsTUNBLENNT1YsUEFU
 LFBTRTM2LENMRkxVU0gsRFRTLEFDUEksTU1YLEZYU1IsU1NFLFNTRTIsU1MsSFRULFRNLFBCRT4K
 ICBGZWF0dXJlczI9MHhlM2JkPFNTRTMsRFRFUzY0LE1PTixEU19DUEwsVk1YLEVTVCxUTTIsU1NT
 RTMsQ1gxNix4VFBSLFBEQ00+CiAgQU1EIEZlYXR1cmVzPTB4MjAwMDA4MDA8U1lTQ0FMTCxMTT4K
 ICBBTUQgRmVhdHVyZXMyPTB4MTxMQUhGPgogIFRTQzogUC1zdGF0ZSBpbnZhcmlhbnQKcmVhbCBt
 ZW1vcnkgID0gMzIyMTIyNTQ3MiAoMzA3MiBNQikKUGh5c2ljYWwgbWVtb3J5IGNodW5rKHMpOgow
 eDAwMDAwMDAwMDAwMDEwMDAgLSAweDAwMDAwMDAwMDAwOWJmZmYsIDYzNDg4MCBieXRlcyAoMTU1
 IHBhZ2VzKQoweDAwMDAwMDAwMDBjNjIwMDAgLSAweDAwMDAwMDAwYjlkOWNmZmYsIDMxMDUwNzUy
 MDAgYnl0ZXMgKDc1ODA3NSBwYWdlcykKYXZhaWwgbWVtb3J5ID0gMzA3OTc3ODMwNCAoMjkzNyBN
 QikKQUNQSSBBUElDIFRhYmxlOiA8SFAgICAgIDMwQTIgICAgPgpJTlRSOiBBZGRpbmcgbG9jYWwg
 QVBJQyAxIGFzIGEgdGFyZ2V0CkZyZWVCU0QvU01QOiBNdWx0aXByb2Nlc3NvciBTeXN0ZW0gRGV0
 ZWN0ZWQ6IDIgQ1BVcwpGcmVlQlNEL1NNUDogMSBwYWNrYWdlKHMpIHggMiBjb3JlKHMpCiBjcHUw
 IChCU1ApOiBBUElDIElEOiAgMAogY3B1MSAoQVApOiBBUElDIElEOiAgMQp4ODZiaW9zOiAgIElW
 VCAweDAwMDAwMC0weDAwMDRmZiBhdCAweGZmZmZmZjAwMDAwMDAwMDAKeDg2YmlvczogIFNTRUcg
 MHgwMTAwMDAtMHgwMWZmZmYgYXQgMHhmZmZmZmY4MDAwMDE0MDAwCng4NmJpb3M6ICBFQkRBIDB4
 MDlmMDAwLTB4MDlmZmZmIGF0IDB4ZmZmZmZmMDAwMDA5ZjAwMAp4ODZiaW9zOiAgIFJPTSAweDBh
 MDAwMC0weDBlZmZmZiBhdCAweGZmZmZmZjAwMDAwYTAwMDAKQVBJQzogQ1BVIDAgaGFzIEFDUEkg
 SUQgMQpBUElDOiBDUFUgMSBoYXMgQUNQSSBJRCAyClVMRTogc2V0dXAgY3B1IDAKVUxFOiBzZXR1
 cCBjcHUgMQpBQ1BJOiBSU0RQIDB4ZjdjMDAgMDAwMjQgKHYyIEhQICAgICkKQUNQSTogWFNEVCAw
 eGJmN2U1N2M0IDAwMDc0ICh2MSBIUFFPRU0gU0xJQy1NUEMgMDAwMDAwMDEgSFAgICAwMDAwMDAw
 MSkKQUNQSTogRkFDUCAweGJmN2U1Njg0IDAwMEY0ICh2NCBIUCAgICAgMzBBMiAgICAgMDAwMDAw
 MDMgSFAgICAwMDAwMDAwMSkKQUNQSTogRFNEVCAweGJmN2U1YWMwIDBGOUM4ICh2MSBIUCAgICAg
 ICBueDc0MDAgMDAwMTAwMDAgTVNGVCAwMTAwMDAwRSkKQUNQSTogRkFDUyAweGJmN2Y3ZTgwIDAw
 MDQwCkFDUEk6IFNMSUMgMHhiZjdlNTgzOCAwMDE3NiAodjEgSFBRT0VNIFNMSUMtTVBDIDAwMDAw
 MDAxIEhQICAgMDAwMDAwMDEpCkFDUEk6IEhQRVQgMHhiZjdlNTliMCAwMDAzOCAodjEgSFAgICAg
 IDMwQTIgICAgIDAwMDAwMDAxIEhQICAgMDAwMDAwMDEpCkFDUEk6IEFQSUMgMHhiZjdlNTllOCAw
 MDA2OCAodjEgSFAgICAgIDMwQTIgICAgIDAwMDAwMDAxIEhQICAgMDAwMDAwMDEpCkFDUEk6IE1D
 RkcgMHhiZjdlNWE1MCAwMDAzQyAodjEgSFAgICAgIDMwQTIgICAgIDAwMDAwMDAxIEhQICAgMDAw
 MDAwMDEpCkFDUEk6IFRDUEEgMHhiZjdlNWE4YyAwMDAzMiAodjIgSFAgICAgIDMwQTIgICAgIDAw
 MDAwMDAxIEhQICAgMDAwMDAwMDEpCkFDUEk6IFNTRFQgMHhiZjdmNTQ4OCAwMDMyNiAodjEgSFAg
 ICAgICAgSFBRU0FUIDAwMDAwMDAxIE1TRlQgMDEwMDAwMEUpCkFDUEk6IFNTRFQgMHhiZjdmNjAw
 MyAwMDI1RiAodjEgSFAgICAgICBDcHUwVHN0IDAwMDAzMDAwIElOVEwgMjAwNjAzMTcpCkFDUEk6
 IFNTRFQgMHhiZjdmNjI2MiAwMDBBNiAodjEgSFAgICAgICBDcHUxVHN0IDAwMDAzMDAwIElOVEwg
 MjAwNjAzMTcpCkFDUEk6IFNTRFQgMHhiZjdmNjMwOCAwMDRENyAodjEgSFAgICAgICAgIENwdVBt
 IDAwMDAzMDAwIElOVEwgMjAwNjAzMTcpCk1BRFQ6IEZvdW5kIElPIEFQSUMgSUQgMSwgSW50ZXJy
 dXB0IDAgYXQgMHhmZWMwMDAwMAppb2FwaWMwOiBDaGFuZ2luZyBBUElDIElEIHRvIDEKaW9hcGlj
 MDogUm91dGluZyBleHRlcm5hbCA4MjU5QSdzIC0+IGludHBpbiAwCk1BRFQ6IEludGVycnVwdCBv
 dmVycmlkZTogc291cmNlIDAsIGlycSAyCmlvYXBpYzA6IFJvdXRpbmcgSVJRIDAgLT4gaW50cGlu
 IDIKTUFEVDogSW50ZXJydXB0IG92ZXJyaWRlOiBzb3VyY2UgOSwgaXJxIDkKaW9hcGljMDogaW50
 cGluIDkgdHJpZ2dlcjogbGV2ZWwKbGFwaWMwOiBSb3V0aW5nIE5NSSAtPiBMSU5UMQpsYXBpYzA6
 IExJTlQxIHRyaWdnZXI6IGVkZ2UKbGFwaWMwOiBMSU5UMSBwb2xhcml0eTogaGlnaApsYXBpYzE6
 IFJvdXRpbmcgTk1JIC0+IExJTlQxCmxhcGljMTogTElOVDEgdHJpZ2dlcjogZWRnZQpsYXBpYzE6
 IExJTlQxIHBvbGFyaXR5OiBoaWdoCmlvYXBpYzAgPFZlcnNpb24gMi4wPiBpcnFzIDAtMjMgb24g
 bW90aGVyYm9hcmQKY3B1MCBCU1A6CiAgICAgSUQ6IDB4MDAwMDAwMDAgICBWRVI6IDB4MDAwNTAw
 MTQgTERSOiAweDAwMDAwMDAwIERGUjogMHhmZmZmZmZmZgogIGxpbnQwOiAweDAwMDEwNzAwIGxp
 bnQxOiAweDAwMDAwNDAwIFRQUjogMHgwMDAwMDAwMCBTVlI6IDB4MDAwMDAxZmYKICB0aW1lcjog
 MHgwMDAxMDBlZiB0aGVybTogMHgwMDAwMDIwMCBlcnI6IDB4MDAwMDAwZjAgcG1jOiAweDAwMDEw
 NDAwCndsYW46IDw4MDIuMTEgTGluayBMYXllcj4Kc25kX3VuaXRfaW5pdCgpIHU9MHgwMGZmODAw
 MCBbNTEyXSBkPTB4MDAwMDdjMDAgWzMyXSBjPTB4MDAwMDAzZmYgWzEwMjRdCmZlZWRlcl9yZWdp
 c3Rlcjogc25kX3VuaXQ9LTEgc25kX21heGF1dG92Y2hhbnM9MTYgbGF0ZW5jeT01IGZlZWRlcl9y
 YXRlX21pbj0xIGZlZWRlcl9yYXRlX21heD0yMDE2MDAwIGZlZWRlcl9yYXRlX3JvdW5kPTI1CnJh
 bmRvbTogPGVudHJvcHkgc291cmNlLCBTb2Z0d2FyZSwgWWFycm93PgppbzogPEkvTz4Ka2JkOiBu
 ZXcgYXJyYXkgc2l6ZSA0CmtiZDEgYXQga2JkbXV4MAptZW06IDxtZW1vcnk+Cm5mc2xvY2s6IHBz
 ZXVkby1kZXZpY2UKbnVsbDogPG51bGwgZGV2aWNlLCB6ZXJvIGRldmljZT4KYWNwaTA6IDxIUFFP
 RU0gU0xJQy1NUEM+IG9uIG1vdGhlcmJvYXJkClBDSWU6IE1lbW9yeSBNYXBwZWQgY29uZmlndXJh
 dGlvbiBiYXNlIEAgMHhmODAwMDAwMAppb2FwaWMwOiByb3V0aW5nIGludHBpbiA5IChJU0EgSVJR
 IDkpIHRvIGxhcGljIDAgdmVjdG9yIDQ4CmFjcGkwOiBbTVBTQUZFXQphY3BpMDogW0lUSFJFQURd
 CmFjcGlfYnVzX251bWJlcjogcm9vdCBidXMgaGFzIG5vIF9CQk4sIGFzc3VtaW5nIDAKQWNwaU9z
 RGVyaXZlUGNpSWQ6IFxcX1NCXy5DMDAyLkMwODcgLT4gYnVzIDAgZGV2IDAgZnVuYyAwCmFjcGlf
 YnVzX251bWJlcjogcm9vdCBidXMgaGFzIG5vIF9CQk4sIGFzc3VtaW5nIDAKQWNwaU9zRGVyaXZl
 UGNpSWQ6IFxcX1NCXy5DMDAyLkMwOTguQzIyMC5DMjIxIC0+IGJ1cyAyIGRldiA2IGZ1bmMgMAph
 Y3BpMDogUG93ZXIgQnV0dG9uIChmaXhlZCkKYWNwaTA6IHdha2V1cCBjb2RlIHZhIDB4ZmZmZmZm
 ODAwMDAwOTAwMCBwYSAweDQwMDAKYWNwaV9idXNfbnVtYmVyOiByb290IGJ1cyBoYXMgbm8gX0JC
 TiwgYXNzdW1pbmcgMApBY3BpT3NEZXJpdmVQY2lJZDogXFxfU0JfLkMwMDIuQzAwMy5DMEEyIC0+
 IGJ1cyAwIGRldiAzMSBmdW5jIDAKYWNwaTA6IHJlc2VydmF0aW9uIG9mIDAsIGEwMDAwICgzKSBm
 YWlsZWQKYWNwaTA6IHJlc2VydmF0aW9uIG9mIDEwMDAwMCwgYmY3MDAwMDAgKDMpIGZhaWxlZApB
 Q1BJIHRpbWVyOiAxLzEgMC83OTEzIDEvMSAxLzEgMS8xIDEvMSAxLzEgMS8xIDEvMSAxLzEgLT4g
 OQpUaW1lY291bnRlciAiQUNQSS1zYWZlIiBmcmVxdWVuY3kgMzU3OTU0NSBIeiBxdWFsaXR5IDg1
 MAphY3BpX3RpbWVyMDogPDI0LWJpdCB0aW1lciBhdCAzLjU3OTU0NU1Iej4gcG9ydCAweDEwMDgt
 MHgxMDBiIG9uIGFjcGkwCmNwdTA6IDxBQ1BJIENQVT4gb24gYWNwaTAKQUNQSTogU1NEVCAweGJm
 N2Y1ODc2IDAwMjNEICh2MSBIUCAgICAgIENwdTBJc3QgMDAwMDMwMDAgSU5UTCAyMDA2MDMxNykK
 QUNQSTogU1NEVCAweGJmN2Y1YjM4IDAwNENCICh2MSBIUCAgICAgIENwdTBDc3QgMDAwMDMwMDEg
 SU5UTCAyMDA2MDMxNykKY3B1MTogPEFDUEkgQ1BVPiBvbiBhY3BpMApBQ1BJOiBTU0RUIDB4YmY3
 ZjU3YWUgMDAwQzggKHYxIEhQICAgICAgQ3B1MUlzdCAwMDAwMzAwMCBJTlRMIDIwMDYwMzE3KQpB
 Q1BJOiBTU0RUIDB4YmY3ZjVhYjMgMDAwODUgKHYxIEhQICAgICAgQ3B1MUNzdCAwMDAwMzAwMCBJ
 TlRMIDIwMDYwMzE3KQphY3BpX2VjMDogPEVtYmVkZGVkIENvbnRyb2xsZXI6IEdQRSAweDE2PiBw
 b3J0IDB4NjIsMHg2NiBvbiBhY3BpMApwY2lfbGluazA6ICAgICAgICBJbmRleCAgSVJRICBSdGQg
 IFJlZiAgSVJRcwogIEluaXRpYWwgUHJvYmUgICAgICAgMCAgIDEwICAgTiAgICAgMCAgMTAgMTEK
 ICBWYWxpZGF0aW9uICAgICAgICAgIDAgICAxMCAgIE4gICAgIDAgIDEwIDExCiAgQWZ0ZXIgRGlz
 YWJsZSAgICAgICAwICAyNTUgICBOICAgICAwICAxMCAxMQpwY2lfbGluazE6ICAgICAgICBJbmRl
 eCAgSVJRICBSdGQgIFJlZiAgSVJRcwogIEluaXRpYWwgUHJvYmUgICAgICAgMCAgIDEwICAgTiAg
 ICAgMCAgMTAgMTEKICBWYWxpZGF0aW9uICAgICAgICAgIDAgICAxMCAgIE4gICAgIDAgIDEwIDEx
 CiAgQWZ0ZXIgRGlzYWJsZSAgICAgICAwICAyNTUgICBOICAgICAwICAxMCAxMQpwY2lfbGluazI6
 ICAgICAgICBJbmRleCAgSVJRICBSdGQgIFJlZiAgSVJRcwogIEluaXRpYWwgUHJvYmUgICAgICAg
 MCAgIDExICAgTiAgICAgMCAgMTAgMTEKICBWYWxpZGF0aW9uICAgICAgICAgIDAgICAxMSAgIE4g
 ICAgIDAgIDEwIDExCiAgQWZ0ZXIgRGlzYWJsZSAgICAgICAwICAyNTUgICBOICAgICAwICAxMCAx
 MQpwY2lfbGluazM6ICAgICAgICBJbmRleCAgSVJRICBSdGQgIFJlZiAgSVJRcwogIEluaXRpYWwg
 UHJvYmUgICAgICAgMCAgIDEwICAgTiAgICAgMCAgMTAgMTEKICBWYWxpZGF0aW9uICAgICAgICAg
 IDAgICAxMCAgIE4gICAgIDAgIDEwIDExCiAgQWZ0ZXIgRGlzYWJsZSAgICAgICAwICAyNTUgICBO
 ICAgICAwICAxMCAxMQpwY2lfbGluazQ6ICAgICAgICBJbmRleCAgSVJRICBSdGQgIFJlZiAgSVJR
 cwogIEluaXRpYWwgUHJvYmUgICAgICAgMCAgIDEwICAgTiAgICAgMCAgMTAgMTEKICBWYWxpZGF0
 aW9uICAgICAgICAgIDAgICAxMCAgIE4gICAgIDAgIDEwIDExCiAgQWZ0ZXIgRGlzYWJsZSAgICAg
 ICAwICAyNTUgICBOICAgICAwICAxMCAxMQpwY2lfbGluazU6ICAgICAgICBJbmRleCAgSVJRICBS
 dGQgIFJlZiAgSVJRcwogIEluaXRpYWwgUHJvYmUgICAgICAgMCAgMjU1ICAgTiAgICAgMCAgMTAg
 MTEKICBWYWxpZGF0aW9uICAgICAgICAgIDAgIDI1NSAgIE4gICAgIDAgIDEwIDExCiAgQWZ0ZXIg
 RGlzYWJsZSAgICAgICAwICAyNTUgICBOICAgICAwICAxMCAxMQpwY2lfbGluazY6ICAgICAgICBJ
 bmRleCAgSVJRICBSdGQgIFJlZiAgSVJRcwogIEluaXRpYWwgUHJvYmUgICAgICAgMCAgMjU1ICAg
 TiAgICAgMCAgMTAgMTEKICBWYWxpZGF0aW9uICAgICAgICAgIDAgIDI1NSAgIE4gICAgIDAgIDEw
 IDExCiAgQWZ0ZXIgRGlzYWJsZSAgICAgICAwICAyNTUgICBOICAgICAwICAxMCAxMQpwY2lfbGlu
 azc6ICAgICAgICBJbmRleCAgSVJRICBSdGQgIFJlZiAgSVJRcwogIEluaXRpYWwgUHJvYmUgICAg
 ICAgMCAgMjU1ICAgTiAgICAgMCAgbm9uZQogIFZhbGlkYXRpb24gICAgICAgICAgMCAgMjU1ICAg
 TiAgICAgMCAgbm9uZQogIEFmdGVyIERpc2FibGUgICAgICAgMCAgMjU1ICAgTiAgICAgMCAgbm9u
 ZQphY3BpX2hwZXQwOiA8SGlnaCBQcmVjaXNpb24gRXZlbnQgVGltZXI+IGlvbWVtIDB4ZmVkMDAw
 MDAtMHhmZWQwMDNmZiBvbiBhY3BpMAphY3BpX2hwZXQwOiB2ZW5kOiAweDgwODYgcmV2OiAweDEg
 bnVtOiAzIGh6OiAxNDMxODE4MCBvcHRzOiBsZWdhY3lfcm91dGUgNjQtYml0ClRpbWVjb3VudGVy
 ICJIUEVUIiBmcmVxdWVuY3kgMTQzMTgxODAgSHogcXVhbGl0eSA5MDAKcGNpYjA6IDxBQ1BJIEhv
 c3QtUENJIGJyaWRnZT4gcG9ydCAweGNmOC0weGNmZiBvbiBhY3BpMApwY2kwOiA8QUNQSSBQQ0kg
 YnVzPiBvbiBwY2liMApwY2kwOiBkb21haW49MCwgcGh5c2ljYWwgYnVzPTAKZm91bmQtPgl2ZW5k
 b3I9MHg4MDg2LCBkZXY9MHgyN2EwLCByZXZpZD0weDAzCglkb21haW49MCwgYnVzPTAsIHNsb3Q9
 MCwgZnVuYz0wCgljbGFzcz0wNi0wMC0wMCwgaGRydHlwZT0weDAwLCBtZmRldj0wCgljbWRyZWc9
 MHgwMDA2LCBzdGF0cmVnPTB4MjA5MCwgY2FjaGVsbnN6PTAgKGR3b3JkcykKCWxhdHRpbWVyPTB4
 MDAgKDAgbnMpLCBtaW5nbnQ9MHgwMCAoMCBucyksIG1heGxhdD0weDAwICgwIG5zKQpmb3VuZC0+
 CXZlbmRvcj0weDgwODYsIGRldj0weDI3YTIsIHJldmlkPTB4MDMKCWRvbWFpbj0wLCBidXM9MCwg
 c2xvdD0yLCBmdW5jPTAKCWNsYXNzPTAzLTAwLTAwLCBoZHJ0eXBlPTB4MDAsIG1mZGV2PTEKCWNt
 ZHJlZz0weDAwMDMsIHN0YXRyZWc9MHgwMDkwLCBjYWNoZWxuc3o9MCAoZHdvcmRzKQoJbGF0dGlt
 ZXI9MHgwMCAoMCBucyksIG1pbmdudD0weDAwICgwIG5zKSwgbWF4bGF0PTB4MDAgKDAgbnMpCglp
 bnRwaW49YSwgaXJxPTEwCglwb3dlcnNwZWMgMiAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAK
 CU1TSSBzdXBwb3J0cyAxIG1lc3NhZ2UKCW1hcFsxMF06IHR5cGUgTWVtb3J5LCByYW5nZSAzMiwg
 YmFzZSAweGY0NDAwMDAwLCBzaXplIDE5LCBlbmFibGVkCgltYXBbMTRdOiB0eXBlIEkvTyBQb3J0
 LCByYW5nZSAzMiwgYmFzZSAweDQwMDAsIHNpemUgIDMsIGVuYWJsZWQKCW1hcFsxOF06IHR5cGUg
 UHJlZmV0Y2hhYmxlIE1lbW9yeSwgcmFuZ2UgMzIsIGJhc2UgMHhlMDAwMDAwMCwgc2l6ZSAyOCwg
 ZW5hYmxlZAoJbWFwWzFjXTogdHlwZSBNZW1vcnksIHJhbmdlIDMyLCBiYXNlIDB4ZjQ0ODAwMDAs
 IHNpemUgMTgsIGVuYWJsZWQKcGNpYjA6IG1hdGNoZWQgZW50cnkgZm9yIDAuMi5JTlRBCnBjaWIw
 OiBzbG90IDIgSU5UQSBoYXJkd2lyZWQgdG8gSVJRIDE2CmZvdW5kLT4JdmVuZG9yPTB4ODA4Niwg
 ZGV2PTB4MjdhNiwgcmV2aWQ9MHgwMwoJZG9tYWluPTAsIGJ1cz0wLCBzbG90PTIsIGZ1bmM9MQoJ
 Y2xhc3M9MDMtODAtMDAsIGhkcnR5cGU9MHgwMCwgbWZkZXY9MQoJY21kcmVnPTB4MDAwNywgc3Rh
 dHJlZz0weDAwOTAsIGNhY2hlbG5zej0wIChkd29yZHMpCglsYXR0aW1lcj0weDAwICgwIG5zKSwg
 bWluZ250PTB4MDAgKDAgbnMpLCBtYXhsYXQ9MHgwMCAoMCBucykKCXBvd2Vyc3BlYyAyICBzdXBw
 b3J0cyBEMCBEMyAgY3VycmVudCBEMAoJbWFwWzEwXTogdHlwZSBNZW1vcnksIHJhbmdlIDMyLCBi
 YXNlIDB4ZjQ1MDAwMDAsIHNpemUgMTksIGVuYWJsZWQKZm91bmQtPgl2ZW5kb3I9MHg4MDg2LCBk
 ZXY9MHgyN2Q4LCByZXZpZD0weDAxCglkb21haW49MCwgYnVzPTAsIHNsb3Q9MjcsIGZ1bmM9MAoJ
 Y2xhc3M9MDQtMDMtMDAsIGhkcnR5cGU9MHgwMCwgbWZkZXY9MAoJY21kcmVnPTB4MDAwNiwgc3Rh
 dHJlZz0weDAwMTAsIGNhY2hlbG5zej0xNiAoZHdvcmRzKQoJbGF0dGltZXI9MHgwMCAoMCBucyks
 IG1pbmdudD0weDAwICgwIG5zKSwgbWF4bGF0PTB4MDAgKDAgbnMpCglpbnRwaW49YSwgaXJxPTEw
 Cglwb3dlcnNwZWMgMiAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKCU1TSSBzdXBwb3J0cyAx
 IG1lc3NhZ2UsIDY0IGJpdAoJbWFwWzEwXTogdHlwZSBNZW1vcnksIHJhbmdlIDY0LCBiYXNlIDB4
 ZjQ1ODAwMDAsIHNpemUgMTQsIGVuYWJsZWQKcGNpYjA6IG1hdGNoZWQgZW50cnkgZm9yIDAuMjcu
 SU5UQQpwY2liMDogc2xvdCAyNyBJTlRBIGhhcmR3aXJlZCB0byBJUlEgMTYKZm91bmQtPgl2ZW5k
 b3I9MHg4MDg2LCBkZXY9MHgyN2QwLCByZXZpZD0weDAxCglkb21haW49MCwgYnVzPTAsIHNsb3Q9
 MjgsIGZ1bmM9MAoJY2xhc3M9MDYtMDQtMDAsIGhkcnR5cGU9MHgwMSwgbWZkZXY9MQoJY21kcmVn
 PTB4MDAwNywgc3RhdHJlZz0weDAwMTAsIGNhY2hlbG5zej0xNiAoZHdvcmRzKQoJbGF0dGltZXI9
 MHgwMCAoMCBucyksIG1pbmdudD0weDA0ICgxMDAwIG5zKSwgbWF4bGF0PTB4MDAgKDAgbnMpCglp
 bnRwaW49YSwgaXJxPTEwCglwb3dlcnNwZWMgMiAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAK
 CU1TSSBzdXBwb3J0cyAxIG1lc3NhZ2UKcGNpYjA6IG1hdGNoZWQgZW50cnkgZm9yIDAuMjguSU5U
 QQpwY2liMDogc2xvdCAyOCBJTlRBIGhhcmR3aXJlZCB0byBJUlEgMTYKZm91bmQtPgl2ZW5kb3I9
 MHg4MDg2LCBkZXY9MHgyN2QyLCByZXZpZD0weDAxCglkb21haW49MCwgYnVzPTAsIHNsb3Q9Mjgs
 IGZ1bmM9MQoJY2xhc3M9MDYtMDQtMDAsIGhkcnR5cGU9MHgwMSwgbWZkZXY9MQoJY21kcmVnPTB4
 MDAwNywgc3RhdHJlZz0weDAwMTAsIGNhY2hlbG5zej0xNiAoZHdvcmRzKQoJbGF0dGltZXI9MHgw
 MCAoMCBucyksIG1pbmdudD0weDA0ICgxMDAwIG5zKSwgbWF4bGF0PTB4MDAgKDAgbnMpCglpbnRw
 aW49YiwgaXJxPTExCglwb3dlcnNwZWMgMiAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKCU1T
 SSBzdXBwb3J0cyAxIG1lc3NhZ2UKcGNpYjA6IG1hdGNoZWQgZW50cnkgZm9yIDAuMjguSU5UQgpw
 Y2liMDogc2xvdCAyOCBJTlRCIGhhcmR3aXJlZCB0byBJUlEgMTcKZm91bmQtPgl2ZW5kb3I9MHg4
 MDg2LCBkZXY9MHgyN2Q2LCByZXZpZD0weDAxCglkb21haW49MCwgYnVzPTAsIHNsb3Q9MjgsIGZ1
 bmM9MwoJY2xhc3M9MDYtMDQtMDAsIGhkcnR5cGU9MHgwMSwgbWZkZXY9MQoJY21kcmVnPTB4MDAw
 Nywgc3RhdHJlZz0weDAwMTAsIGNhY2hlbG5zej0xNiAoZHdvcmRzKQoJbGF0dGltZXI9MHgwMCAo
 MCBucyksIG1pbmdudD0weDA0ICgxMDAwIG5zKSwgbWF4bGF0PTB4MDAgKDAgbnMpCglpbnRwaW49
 ZCwgaXJxPTEwCglwb3dlcnNwZWMgMiAgc3VwcG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKCU1TSSBz
 dXBwb3J0cyAxIG1lc3NhZ2UKcGNpYjA6IG1hdGNoZWQgZW50cnkgZm9yIDAuMjguSU5URApwY2li
 MDogc2xvdCAyOCBJTlREIGhhcmR3aXJlZCB0byBJUlEgMTkKZm91bmQtPgl2ZW5kb3I9MHg4MDg2
 LCBkZXY9MHgyN2M4LCByZXZpZD0weDAxCglkb21haW49MCwgYnVzPTAsIHNsb3Q9MjksIGZ1bmM9
 MAoJY2xhc3M9MGMtMDMtMDAsIGhkcnR5cGU9MHgwMCwgbWZkZXY9MQoJY21kcmVnPTB4MDAwNSwg
 c3RhdHJlZz0weDAyODAsIGNhY2hlbG5zej0wIChkd29yZHMpCglsYXR0aW1lcj0weDAwICgwIG5z
 KSwgbWluZ250PTB4MDAgKDAgbnMpLCBtYXhsYXQ9MHgwMCAoMCBucykKCWludHBpbj1hLCBpcnE9
 MTAKCW1hcFsyMF06IHR5cGUgSS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4NDAyMCwgc2l6ZSAg
 NSwgZW5hYmxlZApwY2liMDogbWF0Y2hlZCBlbnRyeSBmb3IgMC4yOS5JTlRBCnBjaWIwOiBzbG90
 IDI5IElOVEEgaGFyZHdpcmVkIHRvIElSUSAyMAp1bmtub3duOiBSZXNlcnZlZCAweDIwIGJ5dGVz
 IGZvciByaWQgMHgyMCB0eXBlIDQgYXQgMHg0MDIwCmZvdW5kLT4JdmVuZG9yPTB4ODA4NiwgZGV2
 PTB4MjdjOSwgcmV2aWQ9MHgwMQoJZG9tYWluPTAsIGJ1cz0wLCBzbG90PTI5LCBmdW5jPTEKCWNs
 YXNzPTBjLTAzLTAwLCBoZHJ0eXBlPTB4MDAsIG1mZGV2PTAKCWNtZHJlZz0weDAwMDUsIHN0YXRy
 ZWc9MHgwMjgwLCBjYWNoZWxuc3o9MCAoZHdvcmRzKQoJbGF0dGltZXI9MHgwMCAoMCBucyksIG1p
 bmdudD0weDAwICgwIG5zKSwgbWF4bGF0PTB4MDAgKDAgbnMpCglpbnRwaW49YiwgaXJxPTExCglt
 YXBbMjBdOiB0eXBlIEkvTyBQb3J0LCByYW5nZSAzMiwgYmFzZSAweDQwNDAsIHNpemUgIDUsIGVu
 YWJsZWQKcGNpYjA6IG1hdGNoZWQgZW50cnkgZm9yIDAuMjkuSU5UQgpwY2liMDogc2xvdCAyOSBJ
 TlRCIGhhcmR3aXJlZCB0byBJUlEgMTcKdW5rbm93bjogUmVzZXJ2ZWQgMHgyMCBieXRlcyBmb3Ig
 cmlkIDB4MjAgdHlwZSA0IGF0IDB4NDA0MApmb3VuZC0+CXZlbmRvcj0weDgwODYsIGRldj0weDI3
 Y2EsIHJldmlkPTB4MDEKCWRvbWFpbj0wLCBidXM9MCwgc2xvdD0yOSwgZnVuYz0yCgljbGFzcz0w
 Yy0wMy0wMCwgaGRydHlwZT0weDAwLCBtZmRldj0wCgljbWRyZWc9MHgwMDA1LCBzdGF0cmVnPTB4
 MDI4MCwgY2FjaGVsbnN6PTAgKGR3b3JkcykKCWxhdHRpbWVyPTB4MDAgKDAgbnMpLCBtaW5nbnQ9
 MHgwMCAoMCBucyksIG1heGxhdD0weDAwICgwIG5zKQoJaW50cGluPWMsIGlycT0xMQoJbWFwWzIw
 XTogdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJhc2UgMHg0MDYwLCBzaXplICA1LCBlbmFibGVk
 CnBjaWIwOiBtYXRjaGVkIGVudHJ5IGZvciAwLjI5LklOVEMKcGNpYjA6IHNsb3QgMjkgSU5UQyBo
 YXJkd2lyZWQgdG8gSVJRIDE4CnVua25vd246IFJlc2VydmVkIDB4MjAgYnl0ZXMgZm9yIHJpZCAw
 eDIwIHR5cGUgNCBhdCAweDQwNjAKZm91bmQtPgl2ZW5kb3I9MHg4MDg2LCBkZXY9MHgyN2NiLCBy
 ZXZpZD0weDAxCglkb21haW49MCwgYnVzPTAsIHNsb3Q9MjksIGZ1bmM9MwoJY2xhc3M9MGMtMDMt
 MDAsIGhkcnR5cGU9MHgwMCwgbWZkZXY9MAoJY21kcmVnPTB4MDAwNSwgc3RhdHJlZz0weDAyODAs
 IGNhY2hlbG5zej0wIChkd29yZHMpCglsYXR0aW1lcj0weDAwICgwIG5zKSwgbWluZ250PTB4MDAg
 KDAgbnMpLCBtYXhsYXQ9MHgwMCAoMCBucykKCWludHBpbj1kLCBpcnE9MTAKCW1hcFsyMF06IHR5
 cGUgSS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4NDA4MCwgc2l6ZSAgNSwgZW5hYmxlZApwY2li
 MDogbWF0Y2hlZCBlbnRyeSBmb3IgMC4yOS5JTlRECnBjaWIwOiBzbG90IDI5IElOVEQgaGFyZHdp
 cmVkIHRvIElSUSAxOQp1bmtub3duOiBSZXNlcnZlZCAweDIwIGJ5dGVzIGZvciByaWQgMHgyMCB0
 eXBlIDQgYXQgMHg0MDgwCmZvdW5kLT4JdmVuZG9yPTB4ODA4NiwgZGV2PTB4MjdjYywgcmV2aWQ9
 MHgwMQoJZG9tYWluPTAsIGJ1cz0wLCBzbG90PTI5LCBmdW5jPTcKCWNsYXNzPTBjLTAzLTIwLCBo
 ZHJ0eXBlPTB4MDAsIG1mZGV2PTAKCWNtZHJlZz0weDAwMDYsIHN0YXRyZWc9MHgwMjkwLCBjYWNo
 ZWxuc3o9MCAoZHdvcmRzKQoJbGF0dGltZXI9MHgwMCAoMCBucyksIG1pbmdudD0weDAwICgwIG5z
 KSwgbWF4bGF0PTB4MDAgKDAgbnMpCglpbnRwaW49YSwgaXJxPTEwCglwb3dlcnNwZWMgMiAgc3Vw
 cG9ydHMgRDAgRDMgIGN1cnJlbnQgRDAKCW1hcFsxMF06IHR5cGUgTWVtb3J5LCByYW5nZSAzMiwg
 YmFzZSAweGY0NTg0MDAwLCBzaXplIDEwLCBlbmFibGVkCnBjaWIwOiBtYXRjaGVkIGVudHJ5IGZv
 ciAwLjI5LklOVEEKcGNpYjA6IHNsb3QgMjkgSU5UQSBoYXJkd2lyZWQgdG8gSVJRIDIwCnVua25v
 d246IFJlc2VydmVkIDB4NDAwIGJ5dGVzIGZvciByaWQgMHgxMCB0eXBlIDMgYXQgMHhmNDU4NDAw
 MApmb3VuZC0+CXZlbmRvcj0weDgwODYsIGRldj0weDI0NDgsIHJldmlkPTB4ZTEKCWRvbWFpbj0w
 LCBidXM9MCwgc2xvdD0zMCwgZnVuYz0wCgljbGFzcz0wNi0wNC0wMSwgaGRydHlwZT0weDAxLCBt
 ZmRldj0wCgljbWRyZWc9MHgwMTA3LCBzdGF0cmVnPTB4MDAxMCwgY2FjaGVsbnN6PTAgKGR3b3Jk
 cykKCWxhdHRpbWVyPTB4MDAgKDAgbnMpLCBtaW5nbnQ9MHgwNiAoMTUwMCBucyksIG1heGxhdD0w
 eDAwICgwIG5zKQpmb3VuZC0+CXZlbmRvcj0weDgwODYsIGRldj0weDI3YjksIHJldmlkPTB4MDEK
 CWRvbWFpbj0wLCBidXM9MCwgc2xvdD0zMSwgZnVuYz0wCgljbGFzcz0wNi0wMS0wMCwgaGRydHlw
 ZT0weDAwLCBtZmRldj0xCgljbWRyZWc9MHgwMTA3LCBzdGF0cmVnPTB4MDIxMCwgY2FjaGVsbnN6
 PTAgKGR3b3JkcykKCWxhdHRpbWVyPTB4MDAgKDAgbnMpLCBtaW5nbnQ9MHgwMCAoMCBucyksIG1h
 eGxhdD0weDAwICgwIG5zKQpmb3VuZC0+CXZlbmRvcj0weDgwODYsIGRldj0weDI3ZGYsIHJldmlk
 PTB4MDEKCWRvbWFpbj0wLCBidXM9MCwgc2xvdD0zMSwgZnVuYz0xCgljbGFzcz0wMS0wMS04YSwg
 aGRydHlwZT0weDAwLCBtZmRldj0wCgljbWRyZWc9MHgwMDA1LCBzdGF0cmVnPTB4MDI4MCwgY2Fj
 aGVsbnN6PTAgKGR3b3JkcykKCWxhdHRpbWVyPTB4MDAgKDAgbnMpLCBtaW5nbnQ9MHgwMCAoMCBu
 cyksIG1heGxhdD0weDAwICgwIG5zKQoJaW50cGluPWEsIGlycT0xMAoJbWFwWzIwXTogdHlwZSBJ
 L08gUG9ydCwgcmFuZ2UgMzIsIGJhc2UgMHg0MGEwLCBzaXplICA0LCBlbmFibGVkCnBjaWIwOiBt
 YXRjaGVkIGVudHJ5IGZvciAwLjMxLklOVEEKcGNpYjA6IHNsb3QgMzEgSU5UQSBoYXJkd2lyZWQg
 dG8gSVJRIDE2CmZvdW5kLT4JdmVuZG9yPTB4ODA4NiwgZGV2PTB4MjdjNSwgcmV2aWQ9MHgwMQoJ
 ZG9tYWluPTAsIGJ1cz0wLCBzbG90PTMxLCBmdW5jPTIKCWNsYXNzPTAxLTA2LTAxLCBoZHJ0eXBl
 PTB4MDAsIG1mZGV2PTAKCWNtZHJlZz0weDAwMDcsIHN0YXRyZWc9MHgwMmIwLCBjYWNoZWxuc3o9
 MCAoZHdvcmRzKQoJbGF0dGltZXI9MHgwMCAoMCBucyksIG1pbmdudD0weDAwICgwIG5zKSwgbWF4
 bGF0PTB4MDAgKDAgbnMpCglpbnRwaW49YiwgaXJxPTEwCglwb3dlcnNwZWMgMiAgc3VwcG9ydHMg
 RDAgRDMgIGN1cnJlbnQgRDAKCU1TSSBzdXBwb3J0cyAxIG1lc3NhZ2UKCW1hcFsxMF06IHR5cGUg
 SS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4MTNmMCwgc2l6ZSAgMywgZW5hYmxlZAoJbWFwWzE0
 XTogdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJhc2UgMHgxNWY0LCBzaXplICAyLCBlbmFibGVk
 CgltYXBbMThdOiB0eXBlIEkvTyBQb3J0LCByYW5nZSAzMiwgYmFzZSAweDEzNzAsIHNpemUgIDMs
 IGVuYWJsZWQKCW1hcFsxY106IHR5cGUgSS9PIFBvcnQsIHJhbmdlIDMyLCBiYXNlIDB4MTU3NCwg
 c2l6ZSAgMiwgZW5hYmxlZAoJbWFwWzIwXTogdHlwZSBJL08gUG9ydCwgcmFuZ2UgMzIsIGJhc2Ug
 MHg0MGQwLCBzaXplICA0LCBlbmFibGVkCgltYXBbMjRdOiB0eXBlIE1lbW9yeSwgcmFuZ2UgMzIs
 IGJhc2UgMHhmNDU4NTAwMCwgc2l6ZSAxMCwgZW5hYmxlZApwY2liMDogbWF0Y2hlZCBlbnRyeSBm
 b3IgMC4zMS5JTlRCCnBjaWIwOiBzbG90IDMxIElOVEIgaGFyZHdpcmVkIHRvIElSUSAxNwp2Z2Fw
 Y2kwOiA8VkdBLWNvbXBhdGlibGUgZGlzcGxheT4gcG9ydCAweDQwMDAtMHg0MDA3IG1lbSAweGY0
 NDAwMDAwLTB4ZjQ0N2ZmZmYsMHhlMDAwMDAwMC0weGVmZmZmZmZmLDB4ZjQ0ODAwMDAtMHhmNDRi
 ZmZmZiBpcnEgMTYgYXQgZGV2aWNlIDIuMCBvbiBwY2kwCmFncDA6IDxJbnRlbCA4Mjk0NUdNICg5
 NDVHTSBHTUNIKSBTVkdBIGNvbnRyb2xsZXI+IG9uIHZnYXBjaTAKdmdhcGNpMDogUmVzZXJ2ZWQg
 MHgxMDAwMDAwMCBieXRlcyBmb3IgcmlkIDB4MTggdHlwZSAzIGF0IDB4ZTAwMDAwMDAKdmdhcGNp
 MDogUmVzZXJ2ZWQgMHg4MDAwMCBieXRlcyBmb3IgcmlkIDB4MTAgdHlwZSAzIGF0IDB4ZjQ0MDAw
 MDAKdmdhcGNpMDogUmVzZXJ2ZWQgMHg0MDAwMCBieXRlcyBmb3IgcmlkIDB4MWMgdHlwZSAzIGF0
 IDB4ZjQ0ODAwMDAKYWdwMDogZGV0ZWN0ZWQgNzkzMmsgc3RvbGVuIG1lbW9yeQphZ3AwOiBhcGVy
 dHVyZSBzaXplIGlzIDI1Nk0KdmdhcGNpMTogPFZHQS1jb21wYXRpYmxlIGRpc3BsYXk+IG1lbSAw
 eGY0NTAwMDAwLTB4ZjQ1N2ZmZmYgYXQgZGV2aWNlIDIuMSBvbiBwY2kwCmhkYWMwOiA8SW50ZWwg
 ODI4MDFHIEhpZ2ggRGVmaW5pdGlvbiBBdWRpbyBDb250cm9sbGVyPiBtZW0gMHhmNDU4MDAwMC0w
 eGY0NTgzZmZmIGlycSAxNiBhdCBkZXZpY2UgMjcuMCBvbiBwY2kwCmhkYWMwOiBIREEgRHJpdmVy
 IFJldmlzaW9uOiAyMDEwMDIyNl8wMTQyCmhkYWMwOiBSZXNlcnZlZCAweDQwMDAgYnl0ZXMgZm9y
 IHJpZCAweDEwIHR5cGUgMyBhdCAweGY0NTgwMDAwCmhkYWMwOiBhdHRlbXB0aW5nIHRvIGFsbG9j
 YXRlIDEgTVNJIHZlY3RvcnMgKDEgc3VwcG9ydGVkKQptc2k6IHJvdXRpbmcgTVNJIElSUSAyNTYg
 dG8gbG9jYWwgQVBJQyAwIHZlY3RvciA0OQpoZGFjMDogdXNpbmcgSVJRIDI1NiBmb3IgTVNJCmhk
 YWMwOiBbTVBTQUZFXQpoZGFjMDogW0lUSFJFQURdCmhkYWMwOiBDYXBzOiBPU1MgNCwgSVNTIDQs
 IEJTUyAwLCBOU0RPIDEsIDY0Yml0LCBDT1JCIDI1NiwgUklSQiAyNTYKcGNpYjE6IDxBQ1BJIFBD
 SS1QQ0kgYnJpZGdlPiBpcnEgMTYgYXQgZGV2aWNlIDI4LjAgb24gcGNpMApwY2liMTogICBkb21h
 aW4gICAgICAgICAgICAwCnBjaWIxOiAgIHNlY29uZGFyeSBidXMgICAgIDgKcGNpYjE6ICAgc3Vi
 b3JkaW5hdGUgYnVzICAgOApwY2liMTogICBJL08gZGVjb2RlICAgICAgICAweGYwMDAtMHhmZmYK
 cGNpYjE6ICAgbm8gcHJlZmV0Y2hlZCBkZWNvZGUKcGNpODogPEFDUEkgUENJIGJ1cz4gb24gcGNp
 YjEKcGNpODogZG9tYWluPTAsIHBoeXNpY2FsIGJ1cz04CnBjaWIyOiA8QUNQSSBQQ0ktUENJIGJy
 aWRnZT4gaXJxIDE3IGF0IGRldmljZSAyOC4xIG9uIHBjaTAKcGNpYjI6ICAgZG9tYWluICAgICAg
 ICAgICAgMApwY2liMjogICBzZWNvbmRhcnkgYnVzICAgICAxNgpwY2liMjogICBzdWJvcmRpbmF0
 ZSBidXMgICAxNgpwY2liMjogICBJL08gZGVjb2RlICAgICAgICAweGYwMDAtMHhmZmYKcGNpYjI6
 ICAgbWVtb3J5IGRlY29kZSAgICAgMHhmNDAwMDAwMC0weGY0MGZmZmZmCnBjaWIyOiAgIG5vIHBy
 ZWZldGNoZWQgZGVjb2RlCnBjaTE2OiA8QUNQSSBQQ0kgYnVzPiBvbiBwY2liMgpwY2kxNjogZG9t
 YWluPTAsIHBoeXNpY2FsIGJ1cz0xNgpmb3VuZC0+CXZlbmRvcj0weDgwODYsIGRldj0weDQyMjIs
 IHJldmlkPTB4MDIKCWRvbWFpbj0wLCBidXM9MTYsIHNsb3Q9MCwgZnVuYz0wCgljbGFzcz0wMi04
 MC0wMCwgaGRydHlwZT0weDAwLCBtZmRldj0wCgljbWRyZWc9MHgwMDA2LCBzdGF0cmVnPTB4MDAx
 MCwgY2FjaGVsbnN6PTE2IChkd29yZHMpCglsYXR0aW1lcj0weDAwICgwIG5zKSwgbWluZ250PTB4
 MDAgKDAgbnMpLCBtYXhsYXQ9MHgwMCAoMCBucykKCWludHBpbj1hLCBpcnE9MTEKCXBvd2Vyc3Bl
 YyAyICBzdXBwb3J0cyBEMCBEMyAgY3VycmVudCBEMAoJTVNJIHN1cHBvcnRzIDEgbWVzc2FnZSwg
 NjQgYml0CgltYXBbMTBdOiB0eXBlIE1lbW9yeSwgcmFuZ2UgMzIsIGJhc2UgMHhmNDAwMDAwMCwg
 c2l6ZSAxMiwgZW5hYmxlZApwY2liMjogcmVxdWVzdGVkIG1lbW9yeSByYW5nZSAweGY0MDAwMDAw
 LTB4ZjQwMDBmZmY6IGdvb2QKcGNpYjI6IG1hdGNoZWQgZW50cnkgZm9yIDE2LjAuSU5UQQpwY2li
 Mjogc2xvdCAwIElOVEEgaGFyZHdpcmVkIHRvIElSUSAxNwpwY2kxNjogPG5ldHdvcms+IGF0IGRl
 dmljZSAwLjAgKG5vIGRyaXZlciBhdHRhY2hlZCkKcGNpYjM6IDxBQ1BJIFBDSS1QQ0kgYnJpZGdl
 PiBpcnEgMTkgYXQgZGV2aWNlIDI4LjMgb24gcGNpMApwY2liMzogICBkb21haW4gICAgICAgICAg
 ICAwCnBjaWIzOiAgIHNlY29uZGFyeSBidXMgICAgIDMyCnBjaWIzOiAgIHN1Ym9yZGluYXRlIGJ1
 cyAgIDMyCnBjaWIzOiAgIEkvTyBkZWNvZGUgICAgICAgIDB4MjAwMC0weDNmZmYKcGNpYjM6ICAg
 bWVtb3J5IGRlY29kZSAgICAgMHhmMDAwMDAwMC0weGYzZmZmZmZmCnBjaWIzOiAgIG5vIHByZWZl
 dGNoZWQgZGVjb2RlCnBjaTMyOiA8QUNQSSBQQ0kgYnVzPiBvbiBwY2liMwpwY2kzMjogZG9tYWlu
 PTAsIHBoeXNpY2FsIGJ1cz0zMgp1aGNpMDogPEludGVsIDgyODAxRyAoSUNINykgVVNCIGNvbnRy
 b2xsZXIgVVNCLUE+IHBvcnQgMHg0MDIwLTB4NDAzZiBpcnEgMjAgYXQgZGV2aWNlIDI5LjAgb24g
 cGNpMAppb2FwaWMwOiByb3V0aW5nIGludHBpbiAyMCAoUENJIElSUSAyMCkgdG8gbGFwaWMgMCB2
 ZWN0b3IgNTAKdWhjaTA6IFtNUFNBRkVdCnVoY2kwOiBbSVRIUkVBRF0KdWhjaTA6IExlZ1N1cCA9
 IDB4MmYwMAp1c2J1czA6IDxJbnRlbCA4MjgwMUcgKElDSDcpIFVTQiBjb250cm9sbGVyIFVTQi1B
 PiBvbiB1aGNpMAp1aGNpMTogPEludGVsIDgyODAxRyAoSUNINykgVVNCIGNvbnRyb2xsZXIgVVNC
 LUI+IHBvcnQgMHg0MDQwLTB4NDA1ZiBpcnEgMTcgYXQgZGV2aWNlIDI5LjEgb24gcGNpMAppb2Fw
 aWMwOiByb3V0aW5nIGludHBpbiAxNyAoUENJIElSUSAxNykgdG8gbGFwaWMgMCB2ZWN0b3IgNTEK
 dWhjaTE6IFtNUFNBRkVdCnVoY2kxOiBbSVRIUkVBRF0KdWhjaTE6IExlZ1N1cCA9IDB4MmYwMAp1
 c2J1czE6IDxJbnRlbCA4MjgwMUcgKElDSDcpIFVTQiBjb250cm9sbGVyIFVTQi1CPiBvbiB1aGNp
 MQp1aGNpMjogPEludGVsIDgyODAxRyAoSUNINykgVVNCIGNvbnRyb2xsZXIgVVNCLUM+IHBvcnQg
 MHg0MDYwLTB4NDA3ZiBpcnEgMTggYXQgZGV2aWNlIDI5LjIgb24gcGNpMAppb2FwaWMwOiByb3V0
 aW5nIGludHBpbiAxOCAoUENJIElSUSAxOCkgdG8gbGFwaWMgMCB2ZWN0b3IgNTIKdWhjaTI6IFtN
 UFNBRkVdCnVoY2kyOiBbSVRIUkVBRF0KdWhjaTI6IExlZ1N1cCA9IDB4MmYwMAp1c2J1czI6IDxJ
 bnRlbCA4MjgwMUcgKElDSDcpIFVTQiBjb250cm9sbGVyIFVTQi1DPiBvbiB1aGNpMgp1aGNpMzog
 PEludGVsIDgyODAxRyAoSUNINykgVVNCIGNvbnRyb2xsZXIgVVNCLUQ+IHBvcnQgMHg0MDgwLTB4
 NDA5ZiBpcnEgMTkgYXQgZGV2aWNlIDI5LjMgb24gcGNpMAppb2FwaWMwOiByb3V0aW5nIGludHBp
 biAxOSAoUENJIElSUSAxOSkgdG8gbGFwaWMgMCB2ZWN0b3IgNTMKdWhjaTM6IFtNUFNBRkVdCnVo
 Y2kzOiBbSVRIUkVBRF0KdWhjaTM6IExlZ1N1cCA9IDB4MmYwMAp1c2J1czM6IDxJbnRlbCA4Mjgw
 MUcgKElDSDcpIFVTQiBjb250cm9sbGVyIFVTQi1EPiBvbiB1aGNpMwplaGNpMDogPEludGVsIDgy
 ODAxR0IvUiAoSUNINykgVVNCIDIuMCBjb250cm9sbGVyPiBtZW0gMHhmNDU4NDAwMC0weGY0NTg0
 M2ZmIGlycSAyMCBhdCBkZXZpY2UgMjkuNyBvbiBwY2kwCmVoY2kwOiBbTVBTQUZFXQplaGNpMDog
 W0lUSFJFQURdCnVzYnVzNDogRUhDSSB2ZXJzaW9uIDEuMAp1c2J1czQ6IDxJbnRlbCA4MjgwMUdC
 L1IgKElDSDcpIFVTQiAyLjAgY29udHJvbGxlcj4gb24gZWhjaTAKcGNpYjQ6IDxBQ1BJIFBDSS1Q
 Q0kgYnJpZGdlPiBhdCBkZXZpY2UgMzAuMCBvbiBwY2kwCnBjaWI0OiAgIGRvbWFpbiAgICAgICAg
 ICAgIDAKcGNpYjQ6ICAgc2Vjb25kYXJ5IGJ1cyAgICAgMgpwY2liNDogICBzdWJvcmRpbmF0ZSBi
 dXMgICAzCnBjaWI0OiAgIEkvTyBkZWNvZGUgICAgICAgIDB4ZjAwMC0weGZmZgpwY2liNDogICBt
 ZW1vcnkgZGVjb2RlICAgICAweGY0MTAwMDAwLTB4ZjQzZmZmZmYKcGNpYjQ6ICAgbm8gcHJlZmV0
 Y2hlZCBkZWNvZGUKcGNpYjQ6ICAgU3VidHJhY3RpdmVseSBkZWNvZGVkIGJyaWRnZS4KcGNpMjog
 PEFDUEkgUENJIGJ1cz4gb24gcGNpYjQKcGNpMjogZG9tYWluPTAsIHBoeXNpY2FsIGJ1cz0yCmZv
 dW5kLT4JdmVuZG9yPTB4MTA0YywgZGV2PTB4ODAzOSwgcmV2aWQ9MHgwMAoJZG9tYWluPTAsIGJ1
 cz0yLCBzbG90PTYsIGZ1bmM9MAoJY2xhc3M9MDYtMDctMDAsIGhkcnR5cGU9MHgwMiwgbWZkZXY9
 MQoJY21kcmVnPTB4MDAwNywgc3RhdHJlZz0weDAyMTAsIGNhY2hlbG5zej0xNiAoZHdvcmRzKQoJ
 bGF0dGltZXI9MHg0MCAoMTkyMCBucyksIG1pbmdudD0weGM0ICg0OTAwMCBucyksIG1heGxhdD0w
 eDAzICg3NTAgbnMpCglpbnRwaW49YSwgaXJxPTExCglwb3dlcnNwZWMgMiAgc3VwcG9ydHMgRDAg
 RDEgRDIgRDMgIGN1cnJlbnQgRDAKCW1hcFsxMF06IHR5cGUgTWVtb3J5LCByYW5nZSAzMiwgYmFz
 ZSAweGY0MTAwMDAwLCBzaXplIDEyLCBlbmFibGVkCnBjaWI0OiByZXF1ZXN0ZWQgbWVtb3J5IHJh
 bmdlIDB4ZjQxMDAwMDAtMHhmNDEwMGZmZjogZ29vZApwY2liNDogbWF0Y2hlZCBlbnRyeSBmb3Ig
 Mi42LklOVEEKcGNpYjQ6IHNsb3QgNiBJTlRBIGhhcmR3aXJlZCB0byBJUlEgMTgKZm91bmQtPgl2
 ZW5kb3I9MHgxNGU0LCBkZXY9MHgxNzBjLCByZXZpZD0weDAyCglkb21haW49MCwgYnVzPTIsIHNs
 b3Q9MTQsIGZ1bmM9MAoJY2xhc3M9MDItMDAtMDAsIGhkcnR5cGU9MHgwMCwgbWZkZXY9MAoJY21k
 cmVnPTB4MDAwNiwgc3RhdHJlZz0weDAwMTAsIGNhY2hlbG5zej0wIChkd29yZHMpCglsYXR0aW1l
 cj0weDQwICgxOTIwIG5zKSwgbWluZ250PTB4MDAgKDAgbnMpLCBtYXhsYXQ9MHgwMCAoMCBucykK
 CWludHBpbj1hLCBpcnE9MTAKCXBvd2Vyc3BlYyAyICBzdXBwb3J0cyBEMCBEMSBEMiBEMyAgY3Vy
 cmVudCBEMAoJbWFwWzEwXTogdHlwZSBNZW1vcnksIHJhbmdlIDMyLCBiYXNlIDB4ZjQxMDgwMDAs
 IHNpemUgMTMsIGVuYWJsZWQKcGNpYjQ6IHJlcXVlc3RlZCBtZW1vcnkgcmFuZ2UgMHhmNDEwODAw
 MC0weGY0MTA5ZmZmOiBnb29kCnBjaWI0OiBtYXRjaGVkIGVudHJ5IGZvciAyLjE0LklOVEEKcGNp
 YjQ6IHNsb3QgMTQgSU5UQSBoYXJkd2lyZWQgdG8gSVJRIDE2CmNiYjA6IDxQQ0ktQ2FyZEJ1cyBC
 cmlkZ2U+IG1lbSAweGY0MTAwMDAwLTB4ZjQxMDBmZmYgaXJxIDE4IGF0IGRldmljZSA2LjAgb24g
 cGNpMgpjYmIwOiBSZXNlcnZlZCAweDEwMDAgYnl0ZXMgZm9yIHJpZCAweDEwIHR5cGUgMyBhdCAw
 eGY0MTAwMDAwCmNhcmRidXMwOiA8Q2FyZEJ1cyBidXM+IG9uIGNiYjAKcGNjYXJkMDogPDE2LWJp
 dCBQQ0NhcmQgYnVzPiBvbiBjYmIwCmNiYjA6IFtNUFNBRkVdCmNiYjA6IFtGSUxURVJdCmNiYjA6
 IFBDSSBDb25maWd1cmF0aW9uIHNwYWNlOgogIDB4MDA6IDB4ODAzOTEwNGMgMHgwMjEwMDAwNyAw
 eDA2MDcwMDAwIDB4MDA4MjQwMTAgCiAgMHgxMDogMHhmNDEwMDAwMCAweDAyMDAwMGEwIDB4MjAw
 MzAzMDIgMHhmZmZmZjAwMCAKICAweDIwOiAweDAwMDAwMDAwIDB4ZmZmZmYwMDAgMHgwMDAwMDAw
 MCAweGZmZmZmZmZjIAogIDB4MzA6IDB4MDAwMDAwMDAgMHhmZmZmZmZmYyAweDAwMDAwMDAwIDB4
 MDc0NDAxMTIgCiAgMHg0MDogMHgzMGEyMTAzYyAweDAwMDAwMDAxIDB4MDAwMDAwMDAgMHgwMDAw
 MDAwMCAKICAweDUwOiAweDAwMDAwMDAwIDB4MDAwMDAwMDAgMHgwMDAwMDAwMCAweDAwMDAwMDAw
 IAogIDB4NjA6IDB4MDAwMDAwMDAgMHgwMDAwMDAwMCAweDAwMDAwMDAwIDB4MDAwMDAwMDAgCiAg
 MHg3MDogMHgwMDAwMDAwMCAweDAwMDAwMDAwIDB4MDAwMDAwMDAgMHgwMDAwMDAwMCAKICAweDgw
 OiAweDA4NDQxMDYwIDB4MDFhYjAwMTkgMHgwMDE3MDAwMCAweDAxMDExYjIyIAogIDB4OTA6IDB4
 NDA2NDAyYzAgMHgwMDAwMDAwMCAweDAwMDAwMDAwIDB4MDAwMDAwMDAgCiAgMHhhMDogMHg3ZTAy
 MDAwMSAweDAwYzAwMDAwIDB4MDAwMDAwMDAgMHgwMDAwMDAwMCAKICAweGIwOiAweDAwMDAwMDAw
 IDB4MDAwMDAwMDAgMHgwMDAwMDAwMCAweDAwMDAwMDAwIAogIDB4YzA6IDB4MDAwMDAwMDAgMHgw
 MDAwMDAwMCAweDAwMDAwMDAwIDB4MDAwMDAwMDAgCiAgMHhkMDogMHgwMDAwMDAwMCAweDAwMDAw
 MDAwIDB4MDAwMDAwMDAgMHgwMDAwMDAwMCAKICAweGUwOiAweDAwMDAwMDAwIDB4MDAwMDAwMDAg
 MHgwMDAwMDAwMCAweDAwMDAwMDAwIAogIDB4ZjA6IDB4YzM4MTI5MjQgMHgxZDAxOTdmOSAweDAw
 MDAwMDAwIDB4MDAwMDAwMDAgCmJmZTA6IDxCcm9hZGNvbSBCQ000NDAxLUIwIEZhc3QgRXRoZXJu
 ZXQ+IG1lbSAweGY0MTA4MDAwLTB4ZjQxMDlmZmYgaXJxIDE2IGF0IGRldmljZSAxNC4wIG9uIHBj
 aTIKYmZlMDogUmVzZXJ2ZWQgMHgyMDAwIGJ5dGVzIGZvciByaWQgMHgxMCB0eXBlIDMgYXQgMHhm
 NDEwODAwMAptaWlidXMwOiA8TUlJIGJ1cz4gb24gYmZlMApibXRwaHkwOiA8QkNNNDQwMSAxMC8x
 MDBiYXNlVFggUEhZPiBQSFkgMSBvbiBtaWlidXMwCmJtdHBoeTA6ICAxMGJhc2VULCAxMGJhc2VU
 LUZEWCwgMTAwYmFzZVRYLCAxMDBiYXNlVFgtRkRYLCBhdXRvCmJmZTA6IGJwZiBhdHRhY2hlZApi
 ZmUwOiBFdGhlcm5ldCBhZGRyZXNzOiAwMDoxNzphNDpkOToyZjo5MQppb2FwaWMwOiByb3V0aW5n
 IGludHBpbiAxNiAoUENJIElSUSAxNikgdG8gbGFwaWMgMCB2ZWN0b3IgNTQKYmZlMDogW01QU0FG
 RV0KYmZlMDogW0lUSFJFQURdCmlzYWIwOiA8UENJLUlTQSBicmlkZ2U+IGF0IGRldmljZSAzMS4w
 IG9uIHBjaTAKaXNhMDogPElTQSBidXM+IG9uIGlzYWIwCmF0YXBjaTA6IDxJbnRlbCBJQ0g3IFVE
 TUExMDAgY29udHJvbGxlcj4gcG9ydCAweDFmMC0weDFmNywweDNmNiwweDE3MC0weDE3NywweDM3
 NiwweDQwYTAtMHg0MGFmIGlycSAxNiBhdCBkZXZpY2UgMzEuMSBvbiBwY2kwCmF0YXBjaTA6IFJl
 c2VydmVkIDB4MTAgYnl0ZXMgZm9yIHJpZCAweDIwIHR5cGUgNCBhdCAweDQwYTAKYXRhMDogPEFU
 QSBjaGFubmVsIDA+IG9uIGF0YXBjaTAKYXRhcGNpMDogUmVzZXJ2ZWQgMHg4IGJ5dGVzIGZvciBy
 aWQgMHgxMCB0eXBlIDQgYXQgMHgxZjAKYXRhcGNpMDogUmVzZXJ2ZWQgMHgxIGJ5dGVzIGZvciBy
 aWQgMHgxNCB0eXBlIDQgYXQgMHgzZjYKYXRhMDogcmVzZXQgdHAxIG1hc2s9MDMgb3N0YXQwPTUw
 IG9zdGF0MT0wMAphdGEwOiBzdGF0MD0weDAwIGVycj0weDAxIGxzYj0weDE0IG1zYj0weGViCmF0
 YTA6IHN0YXQxPTB4MDAgZXJyPTB4MDAgbHNiPTB4MDAgbXNiPTB4MDAKYXRhMDogcmVzZXQgdHAy
 IHN0YXQwPTAwIHN0YXQxPTAwIGRldmljZXM9MHgxMDAwMAppb2FwaWMwOiByb3V0aW5nIGludHBp
 biAxNCAoSVNBIElSUSAxNCkgdG8gbGFwaWMgMCB2ZWN0b3IgNTUKYXRhMDogW01QU0FGRV0KYXRh
 MDogW0lUSFJFQURdCmFoY2kwOiA8SW50ZWwgSUNIN00gQUhDSSBTQVRBIGNvbnRyb2xsZXI+IHBv
 cnQgMHgxM2YwLTB4MTNmNywweDE1ZjQtMHgxNWY3LDB4MTM3MC0weDEzNzcsMHgxNTc0LTB4MTU3
 NywweDQwZDAtMHg0MGRmIG1lbSAweGY0NTg1MDAwLTB4ZjQ1ODUzZmYgaXJxIDE3IGF0IGRldmlj
 ZSAzMS4yIG9uIHBjaTAKYWhjaTA6IFJlc2VydmVkIDB4NDAwIGJ5dGVzIGZvciByaWQgMHgyNCB0
 eXBlIDMgYXQgMHhmNDU4NTAwMAphaGNpMDogYXR0ZW1wdGluZyB0byBhbGxvY2F0ZSAxIE1TSSB2
 ZWN0b3JzICgxIHN1cHBvcnRlZCkKbXNpOiByb3V0aW5nIE1TSSBJUlEgMjU3IHRvIGxvY2FsIEFQ
 SUMgMCB2ZWN0b3IgNTYKYWhjaTA6IHVzaW5nIElSUSAyNTcgZm9yIE1TSQphaGNpMDogW01QU0FG
 RV0KYWhjaTA6IFtJVEhSRUFEXQphaGNpMDogQUhDSSB2MS4xMCB3aXRoIDQgMS41R2JwcyBwb3J0
 cywgUG9ydCBNdWx0aXBsaWVyIHN1cHBvcnRlZAphaGNpMDogQ2FwczogNjRiaXQgTkNRIE1QUyBT
 UyBBTFAgQUwgQ0xPIDEuNUdicHMgUE0gUE1EIFNTQyBQU0MgMzJjbWQgNHBvcnRzCmFoY2kwOiBD
 YXBzMjoKYWhjaWNoMDogPEFIQ0kgY2hhbm5lbD4gYXQgY2hhbm5lbCAwIG9uIGFoY2kwCmFoY2lj
 aDA6IFtNUFNBRkVdCmFoY2ljaDA6IFtJVEhSRUFEXQphaGNpY2gwOiBDYXBzOgpiYXR0ZXJ5MDog
 PEFDUEkgQ29udHJvbCBNZXRob2QgQmF0dGVyeT4gb24gYWNwaTAKYmF0dGVyeTE6IDxBQ1BJIENv
 bnRyb2wgTWV0aG9kIEJhdHRlcnk+IG9uIGFjcGkwCmFjcGlfYWNhZDA6IDxBQyBBZGFwdGVyPiBv
 biBhY3BpMAphY3BpX2J1dHRvbjA6IDxTbGVlcCBCdXR0b24+IG9uIGFjcGkwCmFjcGlfbGlkMDog
 PENvbnRyb2wgTWV0aG9kIExpZCBTd2l0Y2g+IG9uIGFjcGkwCmFjcGlfd21pMDogPEFDUEktV01J
 IG1hcHBpbmc+IG9uIGFjcGkwCmFjcGlfdHowOiA8VGhlcm1hbCBab25lPiBvbiBhY3BpMAphY3Bp
 X3R6MDogX0NSVCB2YWx1ZSBpcyBhYnN1cmQsIGlnbm9yZWQgKDI1Ni4wQykKYWNwaV90ejE6IDxU
 aGVybWFsIFpvbmU+IG9uIGFjcGkwCmFjcGlfdHoyOiA8VGhlcm1hbCBab25lPiBvbiBhY3BpMAph
 Y3BpX3R6MzogPFRoZXJtYWwgWm9uZT4gb24gYWNwaTAKYWNwaV90ejQ6IDxUaGVybWFsIFpvbmU+
 IG9uIGFjcGkwCmF0cnRjMDogPEFUIHJlYWx0aW1lIGNsb2NrPiBwb3J0IDB4NzAtMHg3MSwweDcy
 LTB4NzMgaXJxIDggb24gYWNwaTAKYXRydGMwOiByZWdpc3RlcmVkIGFzIGEgdGltZS1vZi1kYXkg
 Y2xvY2sgKHJlc29sdXRpb24gMTAwMDAwMHVzKQphdGtiZGMwOiA8S2V5Ym9hcmQgY29udHJvbGxl
 ciAoaTgwNDIpPiBwb3J0IDB4NjAsMHg2NCBpcnEgMSBvbiBhY3BpMAphdGtiZDA6IDxBVCBLZXli
 b2FyZD4gaXJxIDEgb24gYXRrYmRjMAphdGtiZDogdGhlIGN1cnJlbnQga2JkIGNvbnRyb2xsZXIg
 Y29tbWFuZCBieXRlIDAwNjUKYXRrYmQ6IGtleWJvYXJkIElEIDB4NDFhYiAoMikKa2JkMCBhdCBh
 dGtiZDAKa2JkMDogYXRrYmQwLCBBVCAxMDEvMTAyICgyKSwgY29uZmlnOjB4MCwgZmxhZ3M6MHgz
 ZDAwMDAKaW9hcGljMDogcm91dGluZyBpbnRwaW4gMSAoSVNBIElSUSAxKSB0byBsYXBpYyAwIHZl
 Y3RvciA1NwphdGtiZDA6IFtHSUFOVC1MT0NLRURdCmF0a2JkMDogW0lUSFJFQURdCnBzbTA6IHVu
 YWJsZSB0byBhbGxvY2F0ZSBJUlEKcHNtY3BucDA6IDxQUy8yIG1vdXNlIHBvcnQ+IGlycSAxMiBv
 biBhY3BpMApwc20wOiBjdXJyZW50IGNvbW1hbmQgYnl0ZTowMDY1CnBzbTA6IDxQUy8yIE1vdXNl
 PiBpcnEgMTIgb24gYXRrYmRjMAppb2FwaWMwOiByb3V0aW5nIGludHBpbiAxMiAoSVNBIElSUSAx
 MikgdG8gbGFwaWMgMCB2ZWN0b3IgNTgKcHNtMDogW0dJQU5ULUxPQ0tFRF0KcHNtMDogW0lUSFJF
 QURdCnBzbTA6IG1vZGVsIEludGVsbGlNb3VzZSwgZGV2aWNlIElEIDMtMDAsIDMgYnV0dG9ucwpw
 c20wOiBjb25maWc6MDAwMDAwMDAsIGZsYWdzOjAwMDAwMDA4LCBwYWNrZXQgc2l6ZTo0CnBzbTA6
 IHN5bmNtYXNrOjA4LCBzeW5jYml0czowMAphY3BpX2hwMDogPEhQIEFDUEktV01JIE1hcHBpbmc+
 IG9uIGFjcGkwCmFjcGlfaHAwOiBIUCBldmVudCBHVUlEIGRldGVjdGVkLCBpbnN0YWxsaW5nIGV2
 ZW50IGhhbmRsZXIKYWNwaV9ocDA6IEhQIENNSSBHVUlEIGRldGVjdGVkCmlzYV9wcm9iZV9jaGls
 ZHJlbjogZGlzYWJsaW5nIFBuUCBkZXZpY2VzCmF0a2JkYzogYXRrYmRjMCBhbHJlYWR5IGV4aXN0
 czsgc2tpcHBpbmcgaXQKYXRydGM6IGF0cnRjMCBhbHJlYWR5IGV4aXN0czsgc2tpcHBpbmcgaXQK
 c2M6IHNjMCBhbHJlYWR5IGV4aXN0czsgc2tpcHBpbmcgaXQKaXNhX3Byb2JlX2NoaWxkcmVuOiBw
 cm9iaW5nIG5vbi1QblAgZGV2aWNlcwpvcm0wOiA8SVNBIE9wdGlvbiBST00+IGF0IGlvbWVtIDB4
 YzAwMDAtMHhjZmZmZiBvbiBpc2EwCnNjMDogPFN5c3RlbSBjb25zb2xlPiBhdCBmbGFncyAweDEw
 MCBvbiBpc2EwCnNjMDogVkdBIDwxNiB2aXJ0dWFsIGNvbnNvbGVzLCBmbGFncz0weDMwMD4Kc2Mw
 OiBmYjAsIGtiZDEsIHRlcm1pbmFsIGVtdWxhdG9yOiBzY3Rla2VuICh0ZWtlbiB0ZXJtaW5hbCkK
 dmdhMDogPEdlbmVyaWMgSVNBIFZHQT4gYXQgcG9ydCAweDNjMC0weDNkZiBpb21lbSAweGEwMDAw
 LTB4YmZmZmYgb24gaXNhMApmZGMwIGZhaWxlZCB0byBwcm9iZSBhdCBwb3J0IDB4M2YwLTB4M2Y1
 LDB4M2Y3IGlycSA2IGRycSAyIG9uIGlzYTAKcHBjMDogY2Fubm90IHJlc2VydmUgSS9PIHBvcnQg
 cmFuZ2UKcHBjMDogPFBhcmFsbGVsIHBvcnQ+IGZhaWxlZCB0byBwcm9iZSBhdCBpcnEgNyBvbiBp
 c2EwCnVhcnQwOiA8bnM4MjUwPiBmYWlsZWQgdG8gcHJvYmUgYXQgcG9ydCAweDNmOC0weDNmZiBp
 cnEgNCBvbiBpc2EwCnVhcnQxOiA8bnM4MjUwPiBmYWlsZWQgdG8gcHJvYmUgYXQgcG9ydCAweDJm
 OC0weDJmZiBpcnEgMyBvbiBpc2EwCmlzYV9wcm9iZV9jaGlsZHJlbjogcHJvYmluZyBQblAgZGV2
 aWNlcwpjb3JldGVtcDA6IDxDUFUgT24tRGllIFRoZXJtYWwgU2Vuc29ycz4gb24gY3B1MAplc3Qw
 OiA8RW5oYW5jZWQgU3BlZWRTdGVwIEZyZXF1ZW5jeSBDb250cm9sPiBvbiBjcHUwCnA0dGNjMDog
 PENQVSBGcmVxdWVuY3kgVGhlcm1hbCBDb250cm9sPiBvbiBjcHUwCmNvcmV0ZW1wMTogPENQVSBP
 bi1EaWUgVGhlcm1hbCBTZW5zb3JzPiBvbiBjcHUxCmVzdDE6IDxFbmhhbmNlZCBTcGVlZFN0ZXAg
 RnJlcXVlbmN5IENvbnRyb2w+IG9uIGNwdTEKcDR0Y2MxOiA8Q1BVIEZyZXF1ZW5jeSBUaGVybWFs
 IENvbnRyb2w+IG9uIGNwdTEKRGV2aWNlIGNvbmZpZ3VyYXRpb24gZmluaXNoZWQuClJlZHVjaW5n
 IGtlcm4ubWF4dm5vZGVzIDE5NTcyMSAtPiAxMDAwMDAKcHJvY2ZzIHJlZ2lzdGVyZWQKWkZTIGZp
 bGVzeXN0ZW0gdmVyc2lvbiAzClpGUyBzdG9yYWdlIHBvb2wgdmVyc2lvbiAxNApsYXBpYzogRGl2
 aXNvciAyLCBGcmVxdWVuY3kgODMxMjU2NzMgSHoKVGltZWNvdW50ZXIgIlRTQyIgZnJlcXVlbmN5
 IDE5OTUwMTYwODAgSHogcXVhbGl0eSAtMTAwClRpbWVjb3VudGVycyB0aWNrIGV2ZXJ5IDEuMDAw
 IG1zZWMKdmJveGRydjogZkFzeW5jPTAgb2ZmTWluPTB4MTE0IG9mZk1heD0weDM4NApsbzA6IGJw
 ZiBhdHRhY2hlZAphdGEwOiBJZGVudGlmeWluZyBkZXZpY2VzOiAwMDAxMDAwMAphdGEwOiBOZXcg
 ZGV2aWNlczogMDAwMTAwMDAKdXNidXMwOiAxMk1icHMgRnVsbCBTcGVlZCBVU0IgdjEuMAp1c2J1
 czE6IDEyTWJwcyBGdWxsIFNwZWVkIFVTQiB2MS4wCnVzYnVzMjogMTJNYnBzIEZ1bGwgU3BlZWQg
 VVNCIHYxLjAKdXNidXMzOiAxMk1icHMgRnVsbCBTcGVlZCBVU0IgdjEuMAp1c2J1czQ6IDQ4ME1i
 cHMgSGlnaCBTcGVlZCBVU0IgdjIuMAp1Z2VuMC4xOiA8SW50ZWw+IGF0IHVzYnVzMAp1aHViMDog
 PEludGVsIFVIQ0kgcm9vdCBIVUIsIGNsYXNzIDkvMCwgcmV2IDEuMDAvMS4wMCwgYWRkciAxPiBv
 biB1c2J1czAKdWdlbjEuMTogPEludGVsPiBhdCB1c2J1czEKdWh1YjE6IDxJbnRlbCBVSENJIHJv
 b3QgSFVCLCBjbGFzcyA5LzAsIHJldiAxLjAwLzEuMDAsIGFkZHIgMT4gb24gdXNidXMxCnVnZW4y
 LjE6IDxJbnRlbD4gYXQgdXNidXMyCnVodWIyOiA8SW50ZWwgVUhDSSByb290IEhVQiwgY2xhc3Mg
 OS8wLCByZXYgMS4wMC8xLjAwLCBhZGRyIDE+IG9uIHVzYnVzMgp1Z2VuMy4xOiA8SW50ZWw+IGF0
 IHVzYnVzMwp1aHViMzogPEludGVsIFVIQ0kgcm9vdCBIVUIsIGNsYXNzIDkvMCwgcmV2IDEuMDAv
 MS4wMCwgYWRkciAxPiBvbiB1c2J1czMKdWdlbjQuMTogPEludGVsPiBhdCB1c2J1czQKdWh1YjQ6
 IDxJbnRlbCBFSENJIHJvb3QgSFVCLCBjbGFzcyA5LzAsIHJldiAyLjAwLzEuMDAsIGFkZHIgMT4g
 b24gdXNidXM0CmJhdHRlcnkwOiBiYXR0ZXJ5IGluaXRpYWxpemF0aW9uIHN0YXJ0CmJhdHRlcnkx
 OiBiYXR0ZXJ5IGluaXRpYWxpemF0aW9uIHN0YXJ0CmFjcGlfYWNhZDA6IGFjbGluZSBpbml0aWFs
 aXphdGlvbiBzdGFydAphdGEwLW1hc3RlcjogcGlvPVBJTzQgd2RtYT1XRE1BMiB1ZG1hPVVETUEz
 MyBjYWJsZT00MCB3aXJlCmFjZDA6IHNldHRpbmcgVURNQTMzCmFjcGlfdHowOiBfQUMzOiB0ZW1w
 ZXJhdHVyZSA3NS4wID49IHNldHBvaW50IDUwLjAKYWNwaV90ejA6IF9BQzI6IHRlbXBlcmF0dXJl
 IDc1LjAgPj0gc2V0cG9pbnQgNjAuMAphY3BpX3R6MDogX0FDMTogdGVtcGVyYXR1cmUgNzUuMCA+
 PSBzZXRwb2ludCA3NS4wCmFjcGlfdHowOiBzd2l0Y2hlZCBmcm9tIE5PTkUgdG8gX0FDMTogNzUu
 MEMKYWNkMDogPEhMLURULVNUIERWRFJBTSBHU0EtVDQwTi9KUTAxPiBEVkRSIGRyaXZlIGF0IGF0
 YTAgYXMgbWFzdGVyCmFjZDA6IHJlYWQgNDEzNEtCL3MgKDQxMzRLQi9zKSB3cml0ZSA0MTM0S0Iv
 cyAoNDEzNEtCL3MpLCAyMDQ4S0IgYnVmZmVyLCBVRE1BMzMgCmFjZDA6IFJlYWRzOiBDRFIsIENE
 UlcsIENEREEgc3RyZWFtLCBEVkRST00sIERWRFIsIERWRFJBTSwgcGFja2V0CmFjZDA6IFdyaXRl
 czogQ0RSLCBDRFJXLCBEVkRSLCBEVkRSQU0sIHRlc3Qgd3JpdGUsIGJ1cm5wcm9vZgphY2QwOiBB
 dWRpbzogcGxheSwgMjU2IHZvbHVtZSBsZXZlbHMKYWNkMDogTWVjaGFuaXNtOiBlamVjdGFibGUg
 dHJheSwgdW5sb2NrZWQKYWNkMDogTWVkaXVtOiBuby9ibGFuayBkaXNjCmhkYWMwOiBQcm9iaW5n
 IGNvZGVjICMwLi4uCmhkYWMwOiBIREEgQ29kZWMgIzA6IEFuYWxvZyBEZXZpY2VzIEFEMTk4MUhE
 CmhkYWMwOiAgSERBIENvZGVjIElEOiAweDExZDQxOTgxCmhkYWMwOiAgICAgICAgVmVuZG9yOiAw
 eDExZDQKaGRhYzA6ICAgICAgICBEZXZpY2U6IDB4MTk4MQpoZGFjMDogICAgICBSZXZpc2lvbjog
 MHgwMgpoZGFjMDogICAgICBTdGVwcGluZzogMHgwMApoZGFjMDogUENJIFN1YnZlbmRvcjogMHgz
 MGEyMTAzYwpoZGFjMDogCUZvdW5kIGF1ZGlvIEZHIG5pZD0xIHN0YXJ0bm9kZT0yIGVuZG5vZGU9
 MzIgdG90YWw9MzAKaGRhYzA6IFByb2JpbmcgY29kZWMgIzEuLi4KaGRhYzA6IEhEQSBDb2RlYyAj
 MTogTHVjZW50L0FnZXJlIFN5c3RlbXMgKFVua25vd24pCmhkYWMwOiAgSERBIENvZGVjIElEOiAw
 eDExYzExMDQwCmhkYWMwOiAgICAgICAgVmVuZG9yOiAweDExYzEKaGRhYzA6ICAgICAgICBEZXZp
 Y2U6IDB4MTA0MApoZGFjMDogICAgICBSZXZpc2lvbjogMHgwMgpoZGFjMDogICAgICBTdGVwcGlu
 ZzogMHgwMApoZGFjMDogUENJIFN1YnZlbmRvcjogMHgzMGEyMTAzYwpoZGFjMDogCUZvdW5kIG1v
 ZGVtIEZHIG5pZD0xIHN0YXJ0bm9kZT0yIGVuZG5vZGU9MTI3IHRvdGFsPTEyNQpoZGFjMDogCmhk
 YWMwOiBQcm9jZXNzaW5nIGF1ZGlvIEZHIGNhZD0wIG5pZD0xLi4uCmhkYWMwOiBHUElPOiAweDQw
 MDAwMDA0IE51bUdQSU89NCBOdW1HUE89MCBOdW1HUEk9MCBHUElXYWtlPTAgR1BJVW5zb2w9MQpo
 ZGFjMDogR0hPU1Q6IG5pZD0yIGo9MCBlbnRudW09NCBpbmRleD0wIHJlcz0weDAwMDAwNDAxCmhk
 YWMwOiAgbmlkIDUgMHg5MjE3NDExMCBhcyAgMSBzZXEgIDAgICAgICAgU3BlYWtlciBGaXhlZCBq
 YWNrICA3IGxvYyAxOCBjb2xvciAgIEdyZWVuIG1pc2MgMQpoZGFjMDogIG5pZCA2IDB4MDQyMTIw
 MWYgYXMgIDEgc2VxIDE1ICAgIEhlYWRwaG9uZXMgIEphY2sgamFjayAgMSBsb2MgIDQgY29sb3Ig
 ICAgR3JleSBtaXNjIDAKaGRhYzA6ICBuaWQgNyAweDQxMDcxMGYwIGFzIDE1IHNlcSAgMCAgICAg
 IExpbmUtb3V0ICBOb25lIGphY2sgIDcgbG9jICAxIGNvbG9yICAgQmxhY2sgbWlzYyAwCmhkYWMw
 OiAgbmlkIDggMHgwNGExMjAyMCBhcyAgMiBzZXEgIDAgICAgICAgICAgIE1pYyAgSmFjayBqYWNr
 ICAxIGxvYyAgNCBjb2xvciAgICBHcmV5IG1pc2MgMApoZGFjMDogIG5pZCA5IDB4MDE4MTMwMmUg
 YXMgIDIgc2VxIDE0ICAgICAgIExpbmUtaW4gIEphY2sgamFjayAgMSBsb2MgIDEgY29sb3IgICAg
 Qmx1ZSBtaXNjIDAKaGRhYzA6ICBuaWQgMTAgMHg0MTQ1ZjBmMCBhcyAxNSBzZXEgIDAgICAgIFNQ
 RElGLW91dCAgTm9uZSBqYWNrICA1IGxvYyAgMSBjb2xvciAgIE90aGVyIG1pc2MgMApoZGFjMDog
 IG5pZCAyMiAweDk5NTcxMWYwIGFzIDE1IHNlcSAgMCAgIERpZ2l0YWwtb3V0IEZpeGVkIGphY2sg
 IDcgbG9jIDI1IGNvbG9yICAgQmxhY2sgbWlzYyAxCmhkYWMwOiAgbmlkIDIzIDB4NTk5M2UwZjAg
 YXMgMTUgc2VxICAwICAgICAgICAgICBBVVggIE5vbmUgamFjayAgMyBsb2MgMjUgY29sb3IgICBX
 aGl0ZSBtaXNjIDAKaGRhYzA6ICBuaWQgMjQgMHg1OWE3OTBmMCBhcyAxNSBzZXEgIDAgICAgICAg
 ICAgIE1pYyAgTm9uZSBqYWNrICA3IGxvYyAyNSBjb2xvciAgICBQaW5rIG1pc2MgMApoZGFjMDog
 IG5pZCAyNSAweDU5MzMxMGYwIGFzIDE1IHNlcSAgMCAgICAgICAgICAgIENEICBOb25lIGphY2sg
 IDMgbG9jIDI1IGNvbG9yICAgQmxhY2sgbWlzYyAwCmhkYWMwOiBQYXRjaGVkIHBpbnMgY29uZmln
 dXJhdGlvbjoKaGRhYzA6ICBuaWQgNSAweDkyMTc0MTEwIGFzICAxIHNlcSAgMCAgICAgICBTcGVh
 a2VyIEZpeGVkIGphY2sgIDcgbG9jIDE4IGNvbG9yICAgR3JlZW4gbWlzYyAxCmhkYWMwOiAgbmlk
 IDYgMHgwNDIxMjAxZiBhcyAgMSBzZXEgMTUgICAgSGVhZHBob25lcyAgSmFjayBqYWNrICAxIGxv
 YyAgNCBjb2xvciAgICBHcmV5IG1pc2MgMApoZGFjMDogIG5pZCA3IDB4NDEwNzEwZjAgYXMgMTUg
 c2VxICAwICAgICAgTGluZS1vdXQgIE5vbmUgamFjayAgNyBsb2MgIDEgY29sb3IgICBCbGFjayBt
 aXNjIDAgW0RJU0FCTEVEXQpoZGFjMDogIG5pZCA4IDB4MDRhMTIwMjAgYXMgIDIgc2VxICAwICAg
 ICAgICAgICBNaWMgIEphY2sgamFjayAgMSBsb2MgIDQgY29sb3IgICAgR3JleSBtaXNjIDAKaGRh
 YzA6ICBuaWQgOSAweDAxODEzMDJlIGFzICAyIHNlcSAxNCAgICAgICBMaW5lLWluICBKYWNrIGph
 Y2sgIDEgbG9jICAxIGNvbG9yICAgIEJsdWUgbWlzYyAwCmhkYWMwOiAgbmlkIDEwIDB4NDE0NWYw
 ZjAgYXMgMTUgc2VxICAwICAgICBTUERJRi1vdXQgIE5vbmUgamFjayAgNSBsb2MgIDEgY29sb3Ig
 ICBPdGhlciBtaXNjIDAgW0RJU0FCTEVEXQpoZGFjMDogIG5pZCAyMiAweDk5NTcxMWYwIGFzIDE1
 IHNlcSAgMCAgIERpZ2l0YWwtb3V0IEZpeGVkIGphY2sgIDcgbG9jIDI1IGNvbG9yICAgQmxhY2sg
 bWlzYyAxCmhkYWMwOiAgbmlkIDIzIDB4NTk5M2UwZjAgYXMgMTUgc2VxICAwICAgICAgICAgICBB
 VVggIE5vbmUgamFjayAgMyBsb2MgMjUgY29sb3IgICBXaGl0ZSBtaXNjIDAgW0RJU0FCTEVEXQpo
 ZGFjMDogIG5pZCAyNCAweDU5YTc5MGYwIGFzIDE1IHNlcSAgMCAgICAgICAgICAgTWljICBOb25l
 IGphY2sgIDcgbG9jIDI1IGNvbG9yICAgIFBpbmsgbWlzYyAwIFtESVNBQkxFRF0KaGRhYzA6ICBu
 aWQgMjUgMHg1OTMzMTBmMCBhcyAxNSBzZXEgIDAgICAgICAgICAgICBDRCAgTm9uZSBqYWNrICAz
 IGxvYyAyNSBjb2xvciAgIEJsYWNrIG1pc2MgMCBbRElTQUJMRURdCmhkYWMwOiAzIGFzc29jaWF0
 aW9ucyBmb3VuZDoKaGRhYzA6IEFzc29jaWF0aW9uIDAgKDEpIG91dDoKaGRhYzA6ICBQaW4gbmlk
 PTUgc2VxPTAKaGRhYzA6ICBQaW4gbmlkPTYgc2VxPTE1CmhkYWMwOiBBc3NvY2lhdGlvbiAxICgy
 KSBpbjoKaGRhYzA6ICBQaW4gbmlkPTggc2VxPTAKaGRhYzA6ICBQaW4gbmlkPTkgc2VxPTE0Cmhk
 YWMwOiBBc3NvY2lhdGlvbiAyICgxNSkgb3V0OgpoZGFjMDogIFBpbiBuaWQ9MjIgc2VxPTAKaGRh
 YzA6IFRyYWNpbmcgYXNzb2NpYXRpb24gMCAoMSkKaGRhYzA6ICBQaW4gNSB0cmFjZWQgdG8gREFD
 IDMKaGRhYzA6ICBQaW4gNiB0cmFjZWQgdG8gREFDIDMgYW5kIGhwcmVkaXIgMApoZGFjMDogQXNz
 b2NpYXRpb24gMCAoMSkgdHJhY2Ugc3VjY2VlZGVkCmhkYWMwOiBUcmFjaW5nIGFzc29jaWF0aW9u
 IDEgKDIpCmhkYWMwOiAgUGluIDggdHJhY2VkIHRvIEFEQyA0CmhkYWMwOiAgUGluIDkgdHJhY2Vk
 IHRvIEFEQyA0CmhkYWMwOiBBc3NvY2lhdGlvbiAxICgyKSB0cmFjZSBzdWNjZWVkZWQKaGRhYzA6
 IFRyYWNpbmcgYXNzb2NpYXRpb24gMiAoMTUpCmhkYWMwOiAgVW5hYmxlIHRvIHRyYWNlIHBpbiAy
 MiBzZXEgMCB3aXRoIG1pbiBuaWQgMApoZGFjMDogQXNzb2NpYXRpb24gMiAoMTUpIHRyYWNlIGZh
 aWxlZApoZGFjMDogVHJhY2luZyBpbnB1dCBtb25pdG9yCmhkYWMwOiAgVHJhY2luZyBuaWQgMTIg
 dG8gb3V0CmhkYWMwOiBUcmFjaW5nIG90aGVyIGlucHV0IG1vbml0b3JzCmhkYWMwOiAgVHJhY2lu
 ZyBuaWQgOCB0byBvdXQKaGRhYzA6ICBuaWQgOCBpcyBpbnB1dCBtb25pdG9yCmhkYWMwOiAgVHJh
 Y2luZyBuaWQgOSB0byBvdXQKaGRhYzA6ICBuaWQgOSBpcyBpbnB1dCBtb25pdG9yCmhkYWMwOiBU
 cmFjaW5nIGJlZXBlcgpoZGFjMDogIG5pZCAxNiB0cmFjZWQgdG8gb3V0CmhkYWMwOiBFbmFibGlu
 ZyBoZWFkcGhvbmUvc3BlYWtlciBhdWRpbyByb3V0aW5nIHN3aXRjaGluZzoKaGRhYzA6IAlhcz0w
 IHNlbnNlIG5pZD02IFtVTlNPTF0KaGRhYzA6IFBpbiBzZW5zZTogbmlkPTYgcmVzPTB4ODAwMGRm
 ZGYKaGRhYzA6IEZHIGNvbmZpZy9xdWlya3M6IGZvcmNlc3RlcmVvIGl2cmVmNTAgaXZyZWY4MCBp
 dnJlZjEwMCBpdnJlZgpoZGFjMDogCmhkYWMwOiArLS0tLS0tLS0tLS0tLS0tLS0tLSsKaGRhYzA6
 IHwgRFVNUElORyBIREEgTk9ERVMgfApoZGFjMDogKy0tLS0tLS0tLS0tLS0tLS0tLS0rCmhkYWMw
 OiAKaGRhYzA6IERlZmF1bHQgUGFyYW1ldGVyCmhkYWMwOiAtLS0tLS0tLS0tLS0tLS0tLQpoZGFj
 MDogICAgICBTdHJlYW0gY2FwOiAweDAwMDAwMDAxCmhkYWMwOiAgICAgICAgICAgICAgICAgIFBD
 TQpoZGFjMDogICAgICAgICBQQ00gY2FwOiAweDAwMGUwMDdmCmhkYWMwOiAgICAgICAgICAgICAg
 ICAgIDE2IDIwIDI0IGJpdHMsIDggMTEgMTYgMjIgMzIgNDQgNDggS0h6CmhkYWMwOiAgICAgICAg
 ICBJTiBhbXA6IDB4MDAyNzAzMDAKaGRhYzA6ICAgICAgICAgT1VUIGFtcDogMHg4MDA1M2YzZApo
 ZGFjMDogCmhkYWMwOiAgICAgICAgICAgICBuaWQ6IDIgW0RJU0FCTEVEXQpoZGFjMDogICAgICAg
 ICAgICBOYW1lOiBhdWRpbyBvdXRwdXQKaGRhYzA6ICAgICAgV2lkZ2V0IGNhcDogMHgwMDAzMDMx
 MQpoZGFjMDogICAgICAgICAgICAgICAgICBESUdJVEFMIFNURVJFTwpoZGFjMDogICAgICBTdHJl
 YW0gY2FwOiAweDAwMDAwMDA1CmhkYWMwOiAgICAgICAgICAgICAgICAgIEFDMyBQQ00KaGRhYzA6
 ICAgICAgICAgUENNIGNhcDogMHgwMDAyMDA2MApoZGFjMDogICAgICAgICAgICAgICAgICAxNiBi
 aXRzLCA0NCA0OCBLSHoKaGRhYzA6ICAgICBjb25uZWN0aW9uczogMgpoZGFjMDogICAgICAgICAg
 IHwKaGRhYzA6ICAgICAgICAgICArIFtESVNBQkxFRF0gPC0gbmlkPTEgW0dIT1NUIV0gW1VOS05P
 V05dIChzZWxlY3RlZCkKaGRhYzA6ICAgICAgICAgICArIDwtIG5pZD00IFthdWRpbyBpbnB1dF0K
 aGRhYzA6IApoZGFjMDogICAgICAgICAgICAgbmlkOiAzCmhkYWMwOiAgICAgICAgICAgIE5hbWU6
 IGF1ZGlvIG91dHB1dApoZGFjMDogICAgICBXaWRnZXQgY2FwOiAweDAwMDAwNDQxCmhkYWMwOiAg
 ICAgICAgICAgICAgICAgIFBXUiBQUk9DIFNURVJFTwpoZGFjMDogICAgIEFzc29jaWF0aW9uOiAw
 ICgweDAwMDA4MDAxKQpoZGFjMDogICAgICAgICAgICAgT1NTOiBwY20gKHBjbSkKaGRhYzA6ICAg
 ICAgU3RyZWFtIGNhcDogMHgwMDAwMDAwMQpoZGFjMDogICAgICAgICAgICAgICAgICBQQ00KaGRh
 YzA6ICAgICAgICAgUENNIGNhcDogMHgwMDBlMDA3ZgpoZGFjMDogICAgICAgICAgICAgICAgICAx
 NiAyMCAyNCBiaXRzLCA4IDExIDE2IDIyIDMyIDQ0IDQ4IEtIegpoZGFjMDogCmhkYWMwOiAgICAg
 ICAgICAgICBuaWQ6IDQKaGRhYzA6ICAgICAgICAgICAgTmFtZTogYXVkaW8gaW5wdXQKaGRhYzA6
 ICAgICAgV2lkZ2V0IGNhcDogMHgwMDEwMDUxMQpoZGFjMDogICAgICAgICAgICAgICAgICBQV1Ig
 U1RFUkVPCmhkYWMwOiAgICAgQXNzb2NpYXRpb246IDEgKDB4MDAwMDQwMDEpCmhkYWMwOiAgICAg
 IFN0cmVhbSBjYXA6IDB4MDAwMDAwMDEKaGRhYzA6ICAgICAgICAgICAgICAgICAgUENNCmhkYWMw
 OiAgICAgICAgIFBDTSBjYXA6IDB4MDAwNjAwN2YKaGRhYzA6ICAgICAgICAgICAgICAgICAgMTYg
 MjAgYml0cywgOCAxMSAxNiAyMiAzMiA0NCA0OCBLSHoKaGRhYzA6ICAgICBjb25uZWN0aW9uczog
 MQpoZGFjMDogICAgICAgICAgIHwKaGRhYzA6ICAgICAgICAgICArIDwtIG5pZD0yMSBbYXVkaW8g
 c2VsZWN0b3JdCmhkYWMwOiAKaGRhYzA6ICAgICAgICAgICAgIG5pZDogNQpoZGFjMDogICAgICAg
 ICAgICBOYW1lOiBwaW46IFNwZWFrZXIgKEZpeGVkKQpoZGFjMDogICAgICBXaWRnZXQgY2FwOiAw
 eDAwNDAwMTg3CmhkYWMwOiAgICAgICAgICAgICAgICAgIFVOU09MIFNURVJFTwpoZGFjMDogICAg
 IEFzc29jaWF0aW9uOiAwICgweDAwMDAwMDAxKQpoZGFjMDogICAgICAgICBQaW4gY2FwOiAweDAw
 MDExNzNmCmhkYWMwOiAgICAgICAgICAgICAgICAgIElTQyBUUlFEIFBEQyBIUCBPVVQgSU4gVlJF
 RlsgNTAgODAgR1JPVU5EIEhJWiBdIEVBUEQKaGRhYzA6ICAgICAgUGluIGNvbmZpZzogMHg5MjE3
 NDExMApoZGFjMDogICAgIFBpbiBjb250cm9sOiAweDAwMDAwMDQwIE9VVApoZGFjMDogICAgICAg
 ICAgICBFQVBEOiAweDAwMDAwMDAyCmhkYWMwOiAgICAgIE91dHB1dCBhbXA6IDB4ODAwNTNmM2QK
 aGRhYzA6ICAgICAgICAgICAgICAgICAgbXV0ZT0xIHN0ZXA9NjMgc2l6ZT01IG9mZnNldD02MQpo
 ZGFjMDogICAgICAgSW5wdXQgYW1wOiAweDAwMjcwMzAwCmhkYWMwOiAgICAgICAgICAgICAgICAg
 IG11dGU9MCBzdGVwPTMgc2l6ZT0zOSBvZmZzZXQ9MApoZGFjMDogICAgIGNvbm5lY3Rpb25zOiAy
 CmhkYWMwOiAgICAgICAgICAgfApoZGFjMDogICAgICAgICAgICsgW0RJU0FCTEVEXSA8LSBuaWQ9
 MyBbYXVkaW8gb3V0cHV0XQpoZGFjMDogICAgICAgICAgICsgPC0gbmlkPTE0IFthdWRpbyBtaXhl
 cl0gKHNlbGVjdGVkKQpoZGFjMDogCmhkYWMwOiAgICAgICAgICAgICBuaWQ6IDYKaGRhYzA6ICAg
 ICAgICAgICAgTmFtZTogcGluOiBIZWFkcGhvbmVzIChHcmV5IEphY2spCmhkYWMwOiAgICAgIFdp
 ZGdldCBjYXA6IDB4MDA0MDAxODUKaGRhYzA6ICAgICAgICAgICAgICAgICAgVU5TT0wgU1RFUkVP
 CmhkYWMwOiAgICAgQXNzb2NpYXRpb246IDAgKDB4MDAwMDgwMDApCmhkYWMwOiAgICAgICAgIFBp
 biBjYXA6IDB4MDAwMDAwMWYKaGRhYzA6ICAgICAgICAgICAgICAgICAgSVNDIFRSUUQgUERDIEhQ
 IE9VVApoZGFjMDogICAgICBQaW4gY29uZmlnOiAweDA0MjEyMDFmCmhkYWMwOiAgICAgUGluIGNv
 bnRyb2w6IDB4MDAwMDAwYzAgSFAgT1VUCmhkYWMwOiAgICAgIE91dHB1dCBhbXA6IDB4ODAwNTNm
 M2QKaGRhYzA6ICAgICAgICAgICAgICAgICAgbXV0ZT0xIHN0ZXA9NjMgc2l6ZT01IG9mZnNldD02
 MQpoZGFjMDogICAgIGNvbm5lY3Rpb25zOiAyCmhkYWMwOiAgICAgICAgICAgfApoZGFjMDogICAg
 ICAgICAgICsgW0RJU0FCTEVEXSA8LSBuaWQ9MyBbYXVkaW8gb3V0cHV0XQpoZGFjMDogICAgICAg
 ICAgICsgPC0gbmlkPTE0IFthdWRpbyBtaXhlcl0gKHNlbGVjdGVkKQpoZGFjMDogCmhkYWMwOiAg
 ICAgICAgICAgICBuaWQ6IDcgW0RJU0FCTEVEXQpoZGFjMDogICAgICAgICAgICBOYW1lOiBwaW46
 IExpbmUtb3V0IChOb25lKQpoZGFjMDogICAgICBXaWRnZXQgY2FwOiAweDAwNDAwMTA0CmhkYWMw
 OiAgICAgICAgIFBpbiBjYXA6IDB4MDAwMDAwMTAKaGRhYzA6ICAgICAgICAgICAgICAgICAgT1VU
 CmhkYWMwOiAgICAgIFBpbiBjb25maWc6IDB4NDEwNzEwZjAKaGRhYzA6ICAgICBQaW4gY29udHJv
 bDogMHgwMDAwMDAwMApoZGFjMDogICAgICBPdXRwdXQgYW1wOiAweDgwMDUzZjNkCmhkYWMwOiAg
 ICAgICAgICAgICAgICAgIG11dGU9MSBzdGVwPTYzIHNpemU9NSBvZmZzZXQ9NjEKaGRhYzA6ICAg
 ICBjb25uZWN0aW9uczogMQpoZGFjMDogICAgICAgICAgIHwKaGRhYzA6ICAgICAgICAgICArIFtE
 SVNBQkxFRF0gPC0gbmlkPTE1IFthdWRpbyBtaXhlcl0gW0RJU0FCTEVEXQpoZGFjMDogCmhkYWMw
 OiAgICAgICAgICAgICBuaWQ6IDgKaGRhYzA6ICAgICAgICAgICAgTmFtZTogcGluOiBNaWMgKEdy
 ZXkgSmFjaykKaGRhYzA6ICAgICAgV2lkZ2V0IGNhcDogMHgwMDQwMDA4MwpoZGFjMDogICAgICAg
 ICAgICAgICAgICBVTlNPTCBTVEVSRU8KaGRhYzA6ICAgICBBc3NvY2lhdGlvbjogMSAoMHgwMDAw
 MDAwMSkKaGRhYzA6ICAgICAgICAgICAgIE9TUzogbWljIChtaWMpCmhkYWMwOiAgICAgICAgIFBp
 biBjYXA6IDB4MDAwMDE3MjcKaGRhYzA6ICAgICAgICAgICAgICAgICAgSVNDIFRSUUQgUERDIElO
 IFZSRUZbIDUwIDgwIEdST1VORCBISVogXQpoZGFjMDogICAgICBQaW4gY29uZmlnOiAweDA0YTEy
 MDIwCmhkYWMwOiAgICAgUGluIGNvbnRyb2w6IDB4MDAwMDAwMjQgSU4gVlJFRnMKaGRhYzA6ICAg
 ICAgIElucHV0IGFtcDogMHgwMDI3MDMwMApoZGFjMDogICAgICAgICAgICAgICAgICBtdXRlPTAg
 c3RlcD0zIHNpemU9Mzkgb2Zmc2V0PTAKaGRhYzA6IApoZGFjMDogICAgICAgICAgICAgbmlkOiA5
 CmhkYWMwOiAgICAgICAgICAgIE5hbWU6IHBpbjogTGluZS1pbiAoQmx1ZSBKYWNrKQpoZGFjMDog
 ICAgICBXaWRnZXQgY2FwOiAweDAwNDAwMTg3CmhkYWMwOiAgICAgICAgICAgICAgICAgIFVOU09M
 IFNURVJFTwpoZGFjMDogICAgIEFzc29jaWF0aW9uOiAxICgweDAwMDA0MDAwKQpoZGFjMDogICAg
 ICAgICAgICAgT1NTOiBsaW5lIChsaW5lKQpoZGFjMDogICAgICAgICBQaW4gY2FwOiAweDAwMDAx
 NzM3CmhkYWMwOiAgICAgICAgICAgICAgICAgIElTQyBUUlFEIFBEQyBPVVQgSU4gVlJFRlsgNTAg
 ODAgR1JPVU5EIEhJWiBdCmhkYWMwOiAgICAgIFBpbiBjb25maWc6IDB4MDE4MTMwMmUKaGRhYzA6
 ICAgICBQaW4gY29udHJvbDogMHgwMDAwMDAyNCBJTiBWUkVGcwpoZGFjMDogICAgICBPdXRwdXQg
 YW1wOiAweDgwMDUzZjNkCmhkYWMwOiAgICAgICAgICAgICAgICAgIG11dGU9MSBzdGVwPTYzIHNp
 emU9NSBvZmZzZXQ9NjEKaGRhYzA6ICAgICAgIElucHV0IGFtcDogMHgwMDI3MDMwMApoZGFjMDog
 ICAgICAgICAgICAgICAgICBtdXRlPTAgc3RlcD0zIHNpemU9Mzkgb2Zmc2V0PTAKaGRhYzA6ICAg
 ICBjb25uZWN0aW9uczogMgpoZGFjMDogICAgICAgICAgIHwKaGRhYzA6ICAgICAgICAgICArIFtE
 SVNBQkxFRF0gPC0gbmlkPTMgW2F1ZGlvIG91dHB1dF0gKHNlbGVjdGVkKQpoZGFjMDogICAgICAg
 ICAgICsgW0RJU0FCTEVEXSA8LSBuaWQ9MTQgW2F1ZGlvIG1peGVyXQpoZGFjMDogCmhkYWMwOiAg
 ICAgICAgICAgICBuaWQ6IDEwIFtESVNBQkxFRF0KaGRhYzA6ICAgICAgICAgICAgTmFtZTogcGlu
 OiBTUERJRi1vdXQgKE5vbmUpCmhkYWMwOiAgICAgIFdpZGdldCBjYXA6IDB4MDA0MDAzMDEKaGRh
 YzA6ICAgICAgICAgICAgICAgICAgRElHSVRBTCBTVEVSRU8KaGRhYzA6ICAgICAgICAgUGluIGNh
 cDogMHgwMDAwMDAxMApoZGFjMDogICAgICAgICAgICAgICAgICBPVVQKaGRhYzA6ICAgICAgUGlu
 IGNvbmZpZzogMHg0MTQ1ZjBmMApoZGFjMDogICAgIFBpbiBjb250cm9sOiAweDAwMDAwMDAwCmhk
 YWMwOiAgICAgY29ubmVjdGlvbnM6IDEKaGRhYzA6ICAgICAgICAgICB8CmhkYWMwOiAgICAgICAg
 ICAgKyA8LSBuaWQ9MiBbYXVkaW8gb3V0cHV0XSBbRElTQUJMRURdCmhkYWMwOiAKaGRhYzA6ICAg
 ICAgICAgICAgIG5pZDogMTEgW0RJU0FCTEVEXQpoZGFjMDogICAgICAgICAgICBOYW1lOiBhdWRp
 byBzZWxlY3RvcgpoZGFjMDogICAgICBXaWRnZXQgY2FwOiAweDAwMzAwMTAxCmhkYWMwOiAgICAg
 ICAgICAgICAgICAgIFNURVJFTwpoZGFjMDogICAgIGNvbm5lY3Rpb25zOiA2CmhkYWMwOiAgICAg
 ICAgICAgfApoZGFjMDogICAgICAgICAgICsgPC0gbmlkPTMgW2F1ZGlvIG91dHB1dF0gKHNlbGVj
 dGVkKQpoZGFjMDogICAgICAgICAgICsgPC0gbmlkPTEyIFthdWRpbyBtaXhlcl0KaGRhYzA6ICAg
 ICAgICAgICArIDwtIG5pZD05IFtwaW46IExpbmUtaW4gKEJsdWUgSmFjayldCmhkYWMwOiAgICAg
 ICAgICAgKyA8LSBuaWQ9MTQgW2F1ZGlvIG1peGVyXQpoZGFjMDogICAgICAgICAgICsgPC0gbmlk
 PTUgW3BpbjogU3BlYWtlciAoRml4ZWQpXQpoZGFjMDogICAgICAgICAgICsgW0RJU0FCTEVEXSA8
 LSBuaWQ9MjQgW3BpbjogTWljIChOb25lKV0gW0RJU0FCTEVEXQpoZGFjMDogCmhkYWMwOiAgICAg
 ICAgICAgICBuaWQ6IDEyCmhkYWMwOiAgICAgICAgICAgIE5hbWU6IGF1ZGlvIG1peGVyCmhkYWMw
 OiAgICAgIFdpZGdldCBjYXA6IDB4MDAyMDAxMDEKaGRhYzA6ICAgICAgICAgICAgICAgICAgU1RF
 UkVPCmhkYWMwOiAgICAgQXNzb2NpYXRpb246IDEgKDB4MDAwMDAwMDEpCmhkYWMwOiAgICAgICAg
 ICAgICBPU1M6IG1pYwpoZGFjMDogICAgIGNvbm5lY3Rpb25zOiAyCmhkYWMwOiAgICAgICAgICAg
 fApoZGFjMDogICAgICAgICAgICsgPC0gbmlkPTMwIFthdWRpbyBzZWxlY3Rvcl0KaGRhYzA6ICAg
 ICAgICAgICArIFtESVNBQkxFRF0gPC0gbmlkPTMxIFthdWRpbyBzZWxlY3Rvcl0gW0RJU0FCTEVE
 XQpoZGFjMDogCmhkYWMwOiAgICAgICAgICAgICBuaWQ6IDEzCmhkYWMwOiAgICAgICAgICAgIE5h
 bWU6IGF1ZGlvIHNlbGVjdG9yCmhkYWMwOiAgICAgIFdpZGdldCBjYXA6IDB4MDAzMDAxMGMKaGRh
 YzA6ICAgICBBc3NvY2lhdGlvbjogLTIgKDB4MDAwMDAwMDApCmhkYWMwOiAgICAgICAgICAgICBP
 U1M6IHNwZWFrZXIKaGRhYzA6ICAgICAgT3V0cHV0IGFtcDogMHg4MDBiMGYwZgpoZGFjMDogICAg
 ICAgICAgICAgICAgICBtdXRlPTEgc3RlcD0xNSBzaXplPTExIG9mZnNldD0xNQpoZGFjMDogICAg
 IGNvbm5lY3Rpb25zOiAyCmhkYWMwOiAgICAgICAgICAgfApoZGFjMDogICAgICAgICAgICsgPC0g
 bmlkPTE2IFtiZWVwIHdpZGdldF0gKHNlbGVjdGVkKQpoZGFjMDogICAgICAgICAgICsgW0RJU0FC
 TEVEXSA8LSBuaWQ9MjIgW3BpbjogRGlnaXRhbC1vdXQgKEZpeGVkKV0gW0RJU0FCTEVEXQpoZGFj
 MDogCmhkYWMwOiAgICAgICAgICAgICBuaWQ6IDE0CmhkYWMwOiAgICAgICAgICAgIE5hbWU6IGF1
 ZGlvIG1peGVyCmhkYWMwOiAgICAgIFdpZGdldCBjYXA6IDB4MDAyMDAxMDEKaGRhYzA6ICAgICAg
 ICAgICAgICAgICAgU1RFUkVPCmhkYWMwOiAgICAgQXNzb2NpYXRpb246IDAgKDB4MDAwMDgwMDEp
 CmhkYWMwOiAgICAgICAgICAgICBPU1M6IHBjbSwgc3BlYWtlciwgbGluZSwgbWljCmhkYWMwOiAg
 ICAgY29ubmVjdGlvbnM6IDgKaGRhYzA6ICAgICAgICAgICB8CmhkYWMwOiAgICAgICAgICAgKyA8
 LSBuaWQ9MTMgW2F1ZGlvIHNlbGVjdG9yXQpoZGFjMDogICAgICAgICAgICsgPC0gbmlkPTE3IFth
 dWRpbyBzZWxlY3Rvcl0KaGRhYzA6ICAgICAgICAgICArIDwtIG5pZD0xOCBbYXVkaW8gc2VsZWN0
 b3JdCmhkYWMwOiAgICAgICAgICAgKyA8LSBuaWQ9MTkgW2F1ZGlvIHNlbGVjdG9yXQpoZGFjMDog
 ICAgICAgICAgICsgW0RJU0FCTEVEXSA8LSBuaWQ9MjYgW2F1ZGlvIHNlbGVjdG9yXSBbRElTQUJM
 RURdCmhkYWMwOiAgICAgICAgICAgKyBbRElTQUJMRURdIDwtIG5pZD0yNyBbYXVkaW8gc2VsZWN0
 b3JdIFtESVNBQkxFRF0KaGRhYzA6ICAgICAgICAgICArIFtESVNBQkxFRF0gPC0gbmlkPTI4IFth
 dWRpbyBzZWxlY3Rvcl0gW0RJU0FCTEVEXQpoZGFjMDogICAgICAgICAgICsgW0RJU0FCTEVEXSA8
 LSBuaWQ9MjkgW2F1ZGlvIHNlbGVjdG9yXSBbRElTQUJMRURdCmhkYWMwOiAKaGRhYzA6ICAgICAg
 ICAgICAgIG5pZDogMTUgW0RJU0FCTEVEXQpoZGFjMDogICAgICAgICAgICBOYW1lOiBhdWRpbyBt
 aXhlcgpoZGFjMDogICAgICBXaWRnZXQgY2FwOiAweDAwMjAwMTAwCmhkYWMwOiAgICAgY29ubmVj
 dGlvbnM6IDEKaGRhYzA6ICAgICAgICAgICB8CmhkYWMwOiAgICAgICAgICAgKyA8LSBuaWQ9MTEg
 W2F1ZGlvIHNlbGVjdG9yXSBbRElTQUJMRURdCmhkYWMwOiAKaGRhYzA6ICAgICAgICAgICAgIG5p
 ZDogMTYKaGRhYzA6ICAgICAgICAgICAgTmFtZTogYmVlcCB3aWRnZXQKaGRhYzA6ICAgICAgV2lk
 Z2V0IGNhcDogMHgwMDcwMDAwMApoZGFjMDogICAgIEFzc29jaWF0aW9uOiAtMiAoMHgwMDAwMDAw
 MCkKaGRhYzA6ICAgICAgICAgICAgIE9TUzogc3BlYWtlciAoc3BlYWtlcikKaGRhYzA6IApoZGFj
 MDogICAgICAgICAgICAgbmlkOiAxNwpoZGFjMDogICAgICAgICAgICBOYW1lOiBhdWRpbyBzZWxl
 Y3RvcgpoZGFjMDogICAgICBXaWRnZXQgY2FwOiAweDAwMzAwMTBkCmhkYWMwOiAgICAgICAgICAg
 ICAgICAgIFNURVJFTwpoZGFjMDogICAgIEFzc29jaWF0aW9uOiAwICgweDAwMDA4MDAxKQpoZGFj
 MDogICAgICAgICAgICAgT1NTOiBwY20KaGRhYzA6ICAgICAgT3V0cHV0IGFtcDogMHg4MDA1MWYx
 NwpoZGFjMDogICAgICAgICAgICAgICAgICBtdXRlPTEgc3RlcD0zMSBzaXplPTUgb2Zmc2V0PTIz
 CmhkYWMwOiAgICAgY29ubmVjdGlvbnM6IDEKaGRhYzA6ICAgICAgICAgICB8CmhkYWMwOiAgICAg
 ICAgICAgKyA8LSBuaWQ9MyBbYXVkaW8gb3V0cHV0XQpoZGFjMDogCmhkYWMwOiAgICAgICAgICAg
 ICBuaWQ6IDE4CmhkYWMwOiAgICAgICAgICAgIE5hbWU6IGF1ZGlvIHNlbGVjdG9yCmhkYWMwOiAg
 ICAgIFdpZGdldCBjYXA6IDB4MDAzMDAxMGQKaGRhYzA6ICAgICAgICAgICAgICAgICAgU1RFUkVP
 CmhkYWMwOiAgICAgQXNzb2NpYXRpb246IC0yICgweDAwMDAwMDAwKQpoZGFjMDogICAgICAgICAg
 ICAgT1NTOiBtaWMKaGRhYzA6ICAgICAgT3V0cHV0IGFtcDogMHg4MDA1MWYxNwpoZGFjMDogICAg
 ICAgICAgICAgICAgICBtdXRlPTEgc3RlcD0zMSBzaXplPTUgb2Zmc2V0PTIzCmhkYWMwOiAgICAg
 Y29ubmVjdGlvbnM6IDEKaGRhYzA6ICAgICAgICAgICB8CmhkYWMwOiAgICAgICAgICAgKyA8LSBu
 aWQ9OCBbcGluOiBNaWMgKEdyZXkgSmFjayldCmhkYWMwOiAKaGRhYzA6ICAgICAgICAgICAgIG5p
 ZDogMTkKaGRhYzA6ICAgICAgICAgICAgTmFtZTogYXVkaW8gc2VsZWN0b3IKaGRhYzA6ICAgICAg
 V2lkZ2V0IGNhcDogMHgwMDMwMDEwZApoZGFjMDogICAgICAgICAgICAgICAgICBTVEVSRU8KaGRh
 YzA6ICAgICBBc3NvY2lhdGlvbjogLTIgKDB4MDAwMDAwMDApCmhkYWMwOiAgICAgICAgICAgICBP
 U1M6IGxpbmUKaGRhYzA6ICAgICAgT3V0cHV0IGFtcDogMHg4MDA1MWYxNwpoZGFjMDogICAgICAg
 ICAgICAgICAgICBtdXRlPTEgc3RlcD0zMSBzaXplPTUgb2Zmc2V0PTIzCmhkYWMwOiAgICAgY29u
 bmVjdGlvbnM6IDEKaGRhYzA6ICAgICAgICAgICB8CmhkYWMwOiAgICAgICAgICAgKyA8LSBuaWQ9
 OSBbcGluOiBMaW5lLWluIChCbHVlIEphY2spXQpoZGFjMDogCmhkYWMwOiAgICAgICAgICAgICBu
 aWQ6IDIwIFtESVNBQkxFRF0KaGRhYzA6ICAgICAgICAgICAgTmFtZTogcG93ZXIgd2lkZ2V0Cmhk
 YWMwOiAgICAgIFdpZGdldCBjYXA6IDB4MDA1MDA1MDAKaGRhYzA6ICAgICAgICAgICAgICAgICAg
 UFdSCmhkYWMwOiAgICAgY29ubmVjdGlvbnM6IDEzCmhkYWMwOiAgICAgICAgICAgfApoZGFjMDog
 ICAgICAgICAgICsgPC0gbmlkPTEzIFthdWRpbyBzZWxlY3Rvcl0gKHNlbGVjdGVkKQpoZGFjMDog
 ICAgICAgICAgICsgPC0gbmlkPTE0IFthdWRpbyBtaXhlcl0KaGRhYzA6ICAgICAgICAgICArIDwt
 IG5pZD0xNSBbYXVkaW8gbWl4ZXJdIFtESVNBQkxFRF0KaGRhYzA6ICAgICAgICAgICArIDwtIG5p
 ZD0xNiBbYmVlcCB3aWRnZXRdCmhkYWMwOiAgICAgICAgICAgKyA8LSBuaWQ9MTkgW2F1ZGlvIHNl
 bGVjdG9yXQpoZGFjMDogICAgICAgICAgICsgPC0gbmlkPTIwIFtwb3dlciB3aWRnZXRdIFtESVNB
 QkxFRF0KaGRhYzA6ICAgICAgICAgICArIDwtIG5pZD0yMSBbYXVkaW8gc2VsZWN0b3JdCmhkYWMw
 OiAgICAgICAgICAgKyA8LSBuaWQ9MjIgW3BpbjogRGlnaXRhbC1vdXQgKEZpeGVkKV0gW0RJU0FC
 TEVEXQpoZGFjMDogICAgICAgICAgICsgPC0gbmlkPTIzIFtwaW46IEFVWCAoTm9uZSldIFtESVNB
 QkxFRF0KaGRhYzA6ICAgICAgICAgICArIDwtIG5pZD0yNCBbcGluOiBNaWMgKE5vbmUpXSBbRElT
 QUJMRURdCmhkYWMwOiAgICAgICAgICAgKyA8LSBuaWQ9MjUgW3BpbjogQ0QgKE5vbmUpXSBbRElT
 QUJMRURdCmhkYWMwOiAgICAgICAgICAgKyA8LSBuaWQ9MjYgW2F1ZGlvIHNlbGVjdG9yXSBbRElT
 QUJMRURdCmhkYWMwOiAgICAgICAgICAgKyA8LSBuaWQ9MjkgW2F1ZGlvIHNlbGVjdG9yXSBbRElT
 QUJMRURdCmhkYWMwOiAKaGRhYzA6ICAgICAgICAgICAgIG5pZDogMjEKaGRhYzA6ICAgICAgICAg
 ICAgTmFtZTogYXVkaW8gc2VsZWN0b3IKaGRhYzA6ICAgICAgV2lkZ2V0IGNhcDogMHgwMDMwMDEw
 ZApoZGFjMDogICAgICAgICAgICAgICAgICBTVEVSRU8KaGRhYzA6ICAgICBBc3NvY2lhdGlvbjog
 MSAoMHgwMDAwNDAwMSkKaGRhYzA6ICAgICAgICAgICAgIE9TUzogbGluZSwgbWljCmhkYWMwOiAg
 ICAgIE91dHB1dCBhbXA6IDB4ODAwNTBmMDAKaGRhYzA6ICAgICAgICAgICAgICAgICAgbXV0ZT0x
 IHN0ZXA9MTUgc2l6ZT01IG9mZnNldD0wCmhkYWMwOiAgICAgY29ubmVjdGlvbnM6IDgKaGRhYzA6
 ICAgICAgICAgICB8CmhkYWMwOiAgICAgICAgICAgKyA8LSBuaWQ9MTIgW2F1ZGlvIG1peGVyXSAo
 c2VsZWN0ZWQpCmhkYWMwOiAgICAgICAgICAgKyA8LSBuaWQ9OSBbcGluOiBMaW5lLWluIChCbHVl
 IEphY2spXQpoZGFjMDogICAgICAgICAgICsgW0RJU0FCTEVEXSA8LSBuaWQ9MTQgW2F1ZGlvIG1p
 eGVyXQpoZGFjMDogICAgICAgICAgICsgW0RJU0FCTEVEXSA8LSBuaWQ9MTUgW2F1ZGlvIG1peGVy
 XSBbRElTQUJMRURdCmhkYWMwOiAgICAgICAgICAgKyBbRElTQUJMRURdIDwtIG5pZD0yNSBbcGlu
 OiBDRCAoTm9uZSldIFtESVNBQkxFRF0KaGRhYzA6ICAgICAgICAgICArIFtESVNBQkxFRF0gPC0g
 bmlkPTUgW3BpbjogU3BlYWtlciAoRml4ZWQpXQpoZGFjMDogICAgICAgICAgICsgW0RJU0FCTEVE
 XSA8LSBuaWQ9MjQgW3BpbjogTWljIChOb25lKV0gW0RJU0FCTEVEXQpoZGFjMDogICAgICAgICAg
 ICsgW0RJU0FCTEVEXSA8LSBuaWQ9MjMgW3BpbjogQVVYIChOb25lKV0gW0RJU0FCTEVEXQpoZGFj
 MDogCmhkYWMwOiAgICAgICAgICAgICBuaWQ6IDIyIFtESVNBQkxFRF0KaGRhYzA6ICAgICAgICAg
 ICAgTmFtZTogcGluOiBEaWdpdGFsLW91dCAoRml4ZWQpCmhkYWMwOiAgICAgIFdpZGdldCBjYXA6
 IDB4MDA0MDAwMDAKaGRhYzA6ICAgICAgICAgUGluIGNhcDogMHgwMDAwMDAyMApoZGFjMDogICAg
 ICAgICAgICAgICAgICBJTgpoZGFjMDogICAgICBQaW4gY29uZmlnOiAweDk5NTcxMWYwCmhkYWMw
 OiAgICAgUGluIGNvbnRyb2w6IDB4MDAwMDAwMDAKaGRhYzA6IApoZGFjMDogICAgICAgICAgICAg
 bmlkOiAyMyBbRElTQUJMRURdCmhkYWMwOiAgICAgICAgICAgIE5hbWU6IHBpbjogQVVYIChOb25l
 KQpoZGFjMDogICAgICBXaWRnZXQgY2FwOiAweDAwNDAwMDgxCmhkYWMwOiAgICAgICAgICAgICAg
 ICAgIFVOU09MIFNURVJFTwpoZGFjMDogICAgICAgICBQaW4gY2FwOiAweDAwMDAwMDI3CmhkYWMw
 OiAgICAgICAgICAgICAgICAgIElTQyBUUlFEIFBEQyBJTgpoZGFjMDogICAgICBQaW4gY29uZmln
 OiAweDU5OTNlMGYwCmhkYWMwOiAgICAgUGluIGNvbnRyb2w6IDB4MDAwMDAwMDAKaGRhYzA6IApo
 ZGFjMDogICAgICAgICAgICAgbmlkOiAyNCBbRElTQUJMRURdCmhkYWMwOiAgICAgICAgICAgIE5h
 bWU6IHBpbjogTWljIChOb25lKQpoZGFjMDogICAgICBXaWRnZXQgY2FwOiAweDAwNDAwMTg3Cmhk
 YWMwOiAgICAgICAgICAgICAgICAgIFVOU09MIFNURVJFTwpoZGFjMDogICAgICAgICBQaW4gY2Fw
 OiAweDAwMDAxNzM3CmhkYWMwOiAgICAgICAgICAgICAgICAgIElTQyBUUlFEIFBEQyBPVVQgSU4g
 VlJFRlsgNTAgODAgR1JPVU5EIEhJWiBdCmhkYWMwOiAgICAgIFBpbiBjb25maWc6IDB4NTlhNzkw
 ZjAKaGRhYzA6ICAgICBQaW4gY29udHJvbDogMHgwMDAwMDAwMApoZGFjMDogICAgICBPdXRwdXQg
 YW1wOiAweDgwMDUzZjNkCmhkYWMwOiAgICAgICAgICAgICAgICAgIG11dGU9MSBzdGVwPTYzIHNp
 emU9NSBvZmZzZXQ9NjEKaGRhYzA6ICAgICAgIElucHV0IGFtcDogMHgwMDI3MDMwMApoZGFjMDog
 ICAgICAgICAgICAgICAgICBtdXRlPTAgc3RlcD0zIHNpemU9Mzkgb2Zmc2V0PTAKaGRhYzA6ICAg
 ICBjb25uZWN0aW9uczogMgpoZGFjMDogICAgICAgICAgIHwKaGRhYzA6ICAgICAgICAgICArIFtE
 SVNBQkxFRF0gPC0gbmlkPTMgW2F1ZGlvIG91dHB1dF0gKHNlbGVjdGVkKQpoZGFjMDogICAgICAg
 ICAgICsgPC0gbmlkPTE0IFthdWRpbyBtaXhlcl0KaGRhYzA6IApoZGFjMDogICAgICAgICAgICAg
 bmlkOiAyNSBbRElTQUJMRURdCmhkYWMwOiAgICAgICAgICAgIE5hbWU6IHBpbjogQ0QgKE5vbmUp
 CmhkYWMwOiAgICAgIFdpZGdldCBjYXA6IDB4MDA0MDAwMDEKaGRhYzA6ICAgICAgICAgICAgICAg
 ICAgU1RFUkVPCmhkYWMwOiAgICAgICAgIFBpbiBjYXA6IDB4MDAwMDAwMjAKaGRhYzA6ICAgICAg
 ICAgICAgICAgICAgSU4KaGRhYzA6ICAgICAgUGluIGNvbmZpZzogMHg1OTMzMTBmMApoZGFjMDog
 ICAgIFBpbiBjb250cm9sOiAweDAwMDAwMDAwCmhkYWMwOiAKaGRhYzA6ICAgICAgICAgICAgIG5p
 ZDogMjYgW0RJU0FCTEVEXQpoZGFjMDogICAgICAgICAgICBOYW1lOiBhdWRpbyBzZWxlY3Rvcgpo
 ZGFjMDogICAgICBXaWRnZXQgY2FwOiAweDAwMzAwMTBkCmhkYWMwOiAgICAgICAgICAgICAgICAg
 IFNURVJFTwpoZGFjMDogICAgICBPdXRwdXQgYW1wOiAweDgwMDUxZjE3CmhkYWMwOiAgICAgICAg
 ICAgICAgICAgIG11dGU9MSBzdGVwPTMxIHNpemU9NSBvZmZzZXQ9MjMKaGRhYzA6ICAgICBjb25u
 ZWN0aW9uczogMQpoZGFjMDogICAgICAgICAgIHwKaGRhYzA6ICAgICAgICAgICArIDwtIG5pZD01
 IFtwaW46IFNwZWFrZXIgKEZpeGVkKV0KaGRhYzA6IApoZGFjMDogICAgICAgICAgICAgbmlkOiAy
 NyBbRElTQUJMRURdCmhkYWMwOiAgICAgICAgICAgIE5hbWU6IGF1ZGlvIHNlbGVjdG9yCmhkYWMw
 OiAgICAgIFdpZGdldCBjYXA6IDB4MDAzMDAxMGQKaGRhYzA6ICAgICAgICAgICAgICAgICAgU1RF
 UkVPCmhkYWMwOiAgICAgIE91dHB1dCBhbXA6IDB4ODAwNTFmMTcKaGRhYzA6ICAgICAgICAgICAg
 ICAgICAgbXV0ZT0xIHN0ZXA9MzEgc2l6ZT01IG9mZnNldD0yMwpoZGFjMDogICAgIGNvbm5lY3Rp
 b25zOiAxCmhkYWMwOiAgICAgICAgICAgfApoZGFjMDogICAgICAgICAgICsgW0RJU0FCTEVEXSA8
 LSBuaWQ9MjMgW3BpbjogQVVYIChOb25lKV0gW0RJU0FCTEVEXQpoZGFjMDogCmhkYWMwOiAgICAg
 ICAgICAgICBuaWQ6IDI4IFtESVNBQkxFRF0KaGRhYzA6ICAgICAgICAgICAgTmFtZTogYXVkaW8g
 c2VsZWN0b3IKaGRhYzA6ICAgICAgV2lkZ2V0IGNhcDogMHgwMDMwMDEwZApoZGFjMDogICAgICAg
 ICAgICAgICAgICBTVEVSRU8KaGRhYzA6ICAgICAgT3V0cHV0IGFtcDogMHg4MDA1MWYxNwpoZGFj
 MDogICAgICAgICAgICAgICAgICBtdXRlPTEgc3RlcD0zMSBzaXplPTUgb2Zmc2V0PTIzCmhkYWMw
 OiAgICAgY29ubmVjdGlvbnM6IDEKaGRhYzA6ICAgICAgICAgICB8CmhkYWMwOiAgICAgICAgICAg
 KyBbRElTQUJMRURdIDwtIG5pZD0yNCBbcGluOiBNaWMgKE5vbmUpXSBbRElTQUJMRURdCmhkYWMw
 OiAKaGRhYzA6ICAgICAgICAgICAgIG5pZDogMjkgW0RJU0FCTEVEXQpoZGFjMDogICAgICAgICAg
 ICBOYW1lOiBhdWRpbyBzZWxlY3RvcgpoZGFjMDogICAgICBXaWRnZXQgY2FwOiAweDAwMzAwMTBk
 CmhkYWMwOiAgICAgICAgICAgICAgICAgIFNURVJFTwpoZGFjMDogICAgICBPdXRwdXQgYW1wOiAw
 eDgwMDUxZjE3CmhkYWMwOiAgICAgICAgICAgICAgICAgIG11dGU9MSBzdGVwPTMxIHNpemU9NSBv
 ZmZzZXQ9MjMKaGRhYzA6ICAgICBjb25uZWN0aW9uczogMQpoZGFjMDogICAgICAgICAgIHwKaGRh
 YzA6ICAgICAgICAgICArIFtESVNBQkxFRF0gPC0gbmlkPTI1IFtwaW46IENEIChOb25lKV0gW0RJ
 U0FCTEVEXQpoZGFjMDogCmhkYWMwOiAgICAgICAgICAgICBuaWQ6IDMwCmhkYWMwOiAgICAgICAg
 ICAgIE5hbWU6IGF1ZGlvIHNlbGVjdG9yCmhkYWMwOiAgICAgIFdpZGdldCBjYXA6IDB4MDAzMDAx
 MGQKaGRhYzA6ICAgICAgICAgICAgICAgICAgU1RFUkVPCmhkYWMwOiAgICAgQXNzb2NpYXRpb246
 IDEgKDB4MDAwMDAwMDEpCmhkYWMwOiAgICAgICAgICAgICBPU1M6IG1pYwpoZGFjMDogICAgICBP
 dXRwdXQgYW1wOiAweDgwMDAwMDAwCmhkYWMwOiAgICAgICAgICAgICAgICAgIG11dGU9MSBzdGVw
 PTAgc2l6ZT0wIG9mZnNldD0wCmhkYWMwOiAgICAgY29ubmVjdGlvbnM6IDEKaGRhYzA6ICAgICAg
 ICAgICB8CmhkYWMwOiAgICAgICAgICAgKyA8LSBuaWQ9OCBbcGluOiBNaWMgKEdyZXkgSmFjayld
 CmhkYWMwOiAKaGRhYzA6ICAgICAgICAgICAgIG5pZDogMzEgW0RJU0FCTEVEXQpoZGFjMDogICAg
 ICAgICAgICBOYW1lOiBhdWRpbyBzZWxlY3RvcgpoZGFjMDogICAgICBXaWRnZXQgY2FwOiAweDAw
 MzAwMTBkCmhkYWMwOiAgICAgICAgICAgICAgICAgIFNURVJFTwpoZGFjMDogICAgICBPdXRwdXQg
 YW1wOiAweDgwMDAwMDAwCmhkYWMwOiAgICAgICAgICAgICAgICAgIG11dGU9MSBzdGVwPTAgc2l6
 ZT0wIG9mZnNldD0wCmhkYWMwOiAgICAgY29ubmVjdGlvbnM6IDEKaGRhYzA6ICAgICAgICAgICB8
 CmhkYWMwOiAgICAgICAgICAgKyA8LSBuaWQ9MjQgW3BpbjogTWljIChOb25lKV0gW0RJU0FCTEVE
 XQpoZGFjMDogCmhkYWMwOiBQcm9jZXNzaW5nIG1vZGVtIEZHIGNhZD0xIG5pZD0xLi4uCmhkYWMw
 OiAKcGNtMDogPEhEQSBBbmFsb2cgRGV2aWNlcyBBRDE5ODFIRCBQQ00gIzAgQW5hbG9nPiBhdCBj
 YWQgMCBuaWQgMSBvbiBoZGFjMApwY20wOiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 LS0tLS0tLS0rCnBjbTA6IHwgRFVNUElORyBQQ00gUGxheWJhY2svUmVjb3JkIENoYW5uZWxzIHwK
 cGNtMDogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwpwY20wOiAKcGNt
 MDogUGxheWJhY2s6CnBjbTA6IApwY20wOiAgICAgIFN0cmVhbSBjYXA6IDB4MDAwMDAwMDEKcGNt
 MDogICAgICAgICAgICAgICAgICBQQ00KcGNtMDogICAgICAgICBQQ00gY2FwOiAweDAwMGUwMDdm
 CnBjbTA6ICAgICAgICAgICAgICAgICAgMTYgMjAgMjQgYml0cywgOCAxMSAxNiAyMiAzMiA0NCA0
 OCBLSHoKcGNtMDogICAgICAgICAgICAgREFDOiAzCnBjbTA6IApwY20wOiBSZWNvcmQ6CnBjbTA6
 IApwY20wOiAgICAgIFN0cmVhbSBjYXA6IDB4MDAwMDAwMDEKcGNtMDogICAgICAgICAgICAgICAg
 ICBQQ00KcGNtMDogICAgICAgICBQQ00gY2FwOiAweDAwMDYwMDdmCnBjbTA6ICAgICAgICAgICAg
 ICAgICAgMTYgMjAgYml0cywgOCAxMSAxNiAyMiAzMiA0NCA0OCBLSHoKcGNtMDogICAgICAgICAg
 ICAgQURDOiA0CnBjbTA6IApwY20wOiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK
 cGNtMDogfCBEVU1QSU5HIFBsYXliYWNrL1JlY29yZCBQYXRocyB8CnBjbTA6ICstLS0tLS0tLS0t
 LS0tLS0tLS0tLS0tLS0tLS0tLS0tKwpwY20wOiAKcGNtMDogUGxheWJhY2s6CnBjbTA6IApwY20w
 OiAgICAgbmlkPTUgW3BpbjogU3BlYWtlciAoRml4ZWQpXQpwY20wOiAgICAgICB8CnBjbTA6ICAg
 ICAgICsgPC0gbmlkPTE0IFthdWRpbyBtaXhlcl0gW3NyYzogcGNtLCBzcGVha2VyLCBsaW5lLCBt
 aWNdCnBjbTA6ICAgICAgICAgICAgICB8CnBjbTA6ICAgICAgICAgICAgICArIDwtIG5pZD0xMyBb
 YXVkaW8gc2VsZWN0b3JdIFtzcmM6IHNwZWFrZXJdCnBjbTA6ICAgICAgICAgICAgICAgICAgICAg
 fApwY20wOiAgICAgICAgICAgICAgICAgICAgICsgPC0gbmlkPTE2IFtiZWVwIHdpZGdldF0gW3Ny
 Yzogc3BlYWtlcl0KcGNtMDogICAgICAgICAgICAgICsgPC0gbmlkPTE3IFthdWRpbyBzZWxlY3Rv
 cl0gW3NyYzogcGNtXQpwY20wOiAgICAgICAgICAgICAgICAgICAgIHwKcGNtMDogICAgICAgICAg
 ICAgICAgICAgICArIDwtIG5pZD0zIFthdWRpbyBvdXRwdXRdIFtzcmM6IHBjbV0KcGNtMDogICAg
 ICAgICAgICAgICsgPC0gbmlkPTE4IFthdWRpbyBzZWxlY3Rvcl0gW3NyYzogbWljXQpwY20wOiAg
 ICAgICAgICAgICAgICAgICAgIHwKcGNtMDogICAgICAgICAgICAgICAgICAgICArIDwtIG5pZD04
 IFtwaW46IE1pYyAoR3JleSBKYWNrKV0gW3NyYzogbWljXQpwY20wOiAgICAgICAgICAgICAgKyA8
 LSBuaWQ9MTkgW2F1ZGlvIHNlbGVjdG9yXSBbc3JjOiBsaW5lXQpwY20wOiAgICAgICAgICAgICAg
 ICAgICAgIHwKcGNtMDogICAgICAgICAgICAgICAgICAgICArIDwtIG5pZD05IFtwaW46IExpbmUt
 aW4gKEJsdWUgSmFjayldIFtzcmM6IGxpbmVdCnBjbTA6IApwY20wOiAgICAgbmlkPTYgW3Bpbjog
 SGVhZHBob25lcyAoR3JleSBKYWNrKV0KcGNtMDogICAgICAgfApwY20wOiAgICAgICArIDwtIG5p
 ZD0xNCBbYXVkaW8gbWl4ZXJdIFtzcmM6IHBjbSwgc3BlYWtlciwgbGluZSwgbWljXQpwY20wOiAg
 ICAgICAgICAgICAgfApwY20wOiAgICAgICAgICAgICAgKyA8LSBuaWQ9MTMgW2F1ZGlvIHNlbGVj
 dG9yXSBbc3JjOiBzcGVha2VyXQpwY20wOiAgICAgICAgICAgICAgICAgICAgIHwKcGNtMDogICAg
 ICAgICAgICAgICAgICAgICArIDwtIG5pZD0xNiBbYmVlcCB3aWRnZXRdIFtzcmM6IHNwZWFrZXJd
 CnBjbTA6ICAgICAgICAgICAgICArIDwtIG5pZD0xNyBbYXVkaW8gc2VsZWN0b3JdIFtzcmM6IHBj
 bV0KcGNtMDogICAgICAgICAgICAgICAgICAgICB8CnBjbTA6ICAgICAgICAgICAgICAgICAgICAg
 KyA8LSBuaWQ9MyBbYXVkaW8gb3V0cHV0XSBbc3JjOiBwY21dCnBjbTA6ICAgICAgICAgICAgICAr
 IDwtIG5pZD0xOCBbYXVkaW8gc2VsZWN0b3JdIFtzcmM6IG1pY10KcGNtMDogICAgICAgICAgICAg
 ICAgICAgICB8CnBjbTA6ICAgICAgICAgICAgICAgICAgICAgKyA8LSBuaWQ9OCBbcGluOiBNaWMg
 KEdyZXkgSmFjayldIFtzcmM6IG1pY10KcGNtMDogICAgICAgICAgICAgICsgPC0gbmlkPTE5IFth
 dWRpbyBzZWxlY3Rvcl0gW3NyYzogbGluZV0KcGNtMDogICAgICAgICAgICAgICAgICAgICB8CnBj
 bTA6ICAgICAgICAgICAgICAgICAgICAgKyA8LSBuaWQ9OSBbcGluOiBMaW5lLWluIChCbHVlIEph
 Y2spXSBbc3JjOiBsaW5lXQpwY20wOiAKcGNtMDogUmVjb3JkOgpwY20wOiAKcGNtMDogICAgIG5p
 ZD00IFthdWRpbyBpbnB1dF0KcGNtMDogICAgICAgfApwY20wOiAgICAgICArIDwtIG5pZD0yMSBb
 YXVkaW8gc2VsZWN0b3JdIFtzcmM6IGxpbmUsIG1pY10KcGNtMDogICAgICAgICAgICAgIHwKcGNt
 MDogICAgICAgICAgICAgICsgPC0gbmlkPTEyIFthdWRpbyBtaXhlcl0gW3NyYzogbWljXQpwY20w
 OiAgICAgICAgICAgICAgICAgICAgIHwKcGNtMDogICAgICAgICAgICAgICAgICAgICArIDwtIG5p
 ZD0zMCBbYXVkaW8gc2VsZWN0b3JdIFtzcmM6IG1pY10KcGNtMDogICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgfApwY20wOiAgICAgICAgICAgICAgICAgICAgICAgICAgICArIDwtIG5pZD04IFtw
 aW46IE1pYyAoR3JleSBKYWNrKV0gW3NyYzogbWljXQpwY20wOiAgICAgICAgICAgICAgKyA8LSBu
 aWQ9OSBbcGluOiBMaW5lLWluIChCbHVlIEphY2spXSBbc3JjOiBsaW5lXQpwY20wOiAKcGNtMDog
 Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCnBjbTA6IHwgRFVNUElORyBWb2x1bWUgQ29udHJv
 bHMgfApwY20wOiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKcGNtMDogCnBjbTA6IE1hc3Rl
 ciBWb2x1bWUgKE9TUzogdm9sKQpwY20wOiAgICB8CnBjbTA6ICAgICstIGN0bCAgMSAobmlkICAg
 NSBpbiApOiAgICAtOTEvM2RCICg2NCBzdGVwcykgKyBtdXRlCnBjbTA6ICAgICstIGN0bCAgMyAo
 bmlkICAgNiBpbiApOiAgICAtOTEvM2RCICg2NCBzdGVwcykgKyBtdXRlCnBjbTA6IApwY20wOiBQ
 Q00gVm9sdW1lIChPU1M6IHBjbSkKcGNtMDogICAgfApwY20wOiAgICArLSBjdGwgIDkgKG5pZCAg
 MTcgb3V0KTogICAgLTM0LzEyZEIgKDMyIHN0ZXBzKSArIG11dGUKcGNtMDogCnBjbTA6IE1pY3Jv
 cGhvbmUgVm9sdW1lIChPU1M6IG1pYykKcGNtMDogICAgfApwY20wOiAgICArLSBjdGwgIDUgKG5p
 ZCAgIDggb3V0KTogICAgMC8zMGRCICg0IHN0ZXBzKQpwY20wOiAgICArLSBjdGwgMTkgKG5pZCAg
 MzAgb3V0KTogICAgbXV0ZQpwY20wOiAKcGNtMDogTGluZS1pbiBWb2x1bWUgKE9TUzogbGluZSkK
 cGNtMDogICAgfApwY20wOiAgICArLSBjdGwgIDcgKG5pZCAgIDkgb3V0KTogICAgMC8zMGRCICg0
 IHN0ZXBzKQpwY20wOiAKcGNtMDogU3BlYWtlci9CZWVwIFZvbHVtZSAoT1NTOiBzcGVha2VyKQpw
 Y20wOiAgICB8CnBjbTA6ICAgICstIGN0bCAgOCAobmlkICAxMyBvdXQpOiAgICAtNDUvMGRCICgx
 NiBzdGVwcykgKyBtdXRlCnBjbTA6IApwY20wOiBSZWNvcmRpbmcgTGV2ZWwgKE9TUzogcmVjKQpw
 Y20wOiAgICB8CnBjbTA6ICAgICstIGN0bCAxMiAobmlkICAyMSBvdXQpOiAgICAwLzIyZEIgKDE2
 IHN0ZXBzKSArIG11dGUKcGNtMDogICAgKy0gY3RsIDE5IChuaWQgIDMwIG91dCk6ICAgIG11dGUK
 cGNtMDogCnBjbTA6IElucHV0IE1vbml0b3JpbmcgTGV2ZWwgKE9TUzogaWdhaW4pCnBjbTA6ICAg
 IHwKcGNtMDogICAgKy0gY3RsICA4IChuaWQgIDEzIG91dCk6ICAgIC00NS8wZEIgKDE2IHN0ZXBz
 KSArIG11dGUKcGNtMDogICAgKy0gY3RsIDEwIChuaWQgIDE4IG91dCk6ICAgIC0zNC8xMmRCICgz
 MiBzdGVwcykgKyBtdXRlCnBjbTA6ICAgICstIGN0bCAxMSAobmlkICAxOSBvdXQpOiAgICAtMzQv
 MTJkQiAoMzIgc3RlcHMpICsgbXV0ZQpwY20wOiAKcGNtMDogTWl4ZXIgInZvbCI6CnBjbTA6IE1p
 eGVyICJwY20iOgpwY20wOiBNaXhlciAic3BlYWtlciI6CnBjbTA6IE1peGVyICJsaW5lIjoKcGNt
 MDogTWl4ZXIgIm1pYyI6CnBjbTA6IE1peGVyICJyZWMiOgpwY20wOiBNaXhlciAiaWdhaW4iOgpw
 Y20wOiBNaXhlciAib2dhaW4iOgpwY20wOiBjbG9uZSBtYW5hZ2VyOiBkZWFkbGluZT03NTBtcyBm
 bGFncz0weDgwMDAwMDFlCnBjbTA6IHNuZGJ1Zl9zZXRtYXAgNGQ5MDAwMCwgNDAwMDsgMHhmZmZm
 ZmY4MTQ4M2U3MDAwIC0+IDRkOTAwMDAKcGNtMDogc25kYnVmX3NldG1hcCA0ZGEwMDAwLCA0MDAw
 OyAweGZmZmZmZjgxNDgzZjcwMDAgLT4gNGRhMDAwMAphaGNpY2gwOiBBSENJIHJlc2V0Li4uCmFj
 cGlfYWNhZDA6IE9uIExpbmUKYWNwaV9hY2FkMDogYWNsaW5lIGluaXRpYWxpemF0aW9uIGRvbmUs
 IHRyaWVkIDEgdGltZXMKYWNwaV90ejA6IF9BQzM6IHRlbXBlcmF0dXJlIDc1LjAgPj0gc2V0cG9p
 bnQgNTAuMAphY3BpX3R6MDogX0FDMjogdGVtcGVyYXR1cmUgNzUuMCA+PSBzZXRwb2ludCA2MC4w
 CmFjcGlfdHowOiBfQ1JUIHZhbHVlIGlzIGFic3VyZCwgaWdub3JlZCAoMjU2LjBDKQphY3BpX3R6
 MDogX0FDMzogdGVtcGVyYXR1cmUgNzUuMCA+PSBzZXRwb2ludCA0NS4wCmFjcGlfdHowOiBfQUMy
 OiB0ZW1wZXJhdHVyZSA3NS4wID49IHNldHBvaW50IDUwLjAKYWhjaWNoMDogU0FUQSBjb25uZWN0
 IHRpbWU9MG1zIHN0YXR1cz0wMDAwMDExMwphaGNpY2gwOiByZWFkeSB3YWl0IHRpbWU9Mm1zCmFo
 Y2ljaDA6IEFIQ0kgcmVzZXQgZG9uZTogZGV2aWNlIGZvdW5kCihhcHJvYmUwOmFoY2ljaDA6MDox
 NTowKTogU0lHTkFUVVJFOiAwMDAwCihhcHJvYmUwOmFoY2ljaDA6MDowOjApOiBTSUdOQVRVUkU6
 IDAwMDAKYmF0dGVyeTA6IGJhdHRlcnkgaW5pdGlhbGl6YXRpb24gZG9uZSwgdHJpZWQgMSB0aW1l
 cwp1aHViMDogMiBwb3J0cyB3aXRoIDIgcmVtb3ZhYmxlLCBzZWxmIHBvd2VyZWQKdWh1YjE6IDIg
 cG9ydHMgd2l0aCAyIHJlbW92YWJsZSwgc2VsZiBwb3dlcmVkCnVodWIyOiAyIHBvcnRzIHdpdGgg
 MiByZW1vdmFibGUsIHNlbGYgcG93ZXJlZAp1aHViMzogMiBwb3J0cyB3aXRoIDIgcmVtb3ZhYmxl
 LCBzZWxmIHBvd2VyZWQKdWh1YjQ6IDggcG9ydHMgd2l0aCA4IHJlbW92YWJsZSwgc2VsZiBwb3dl
 cmVkCmFjZDA6IEZBSUxVUkUgLSBJTlFVSVJZIElMTEVHQUwgUkVRVUVTVCBhc2M9MHgyNCBhc2Nx
 PTB4MDAgc2tzPTB4NDAgMHgwMCAweDAxCihwcm9iZTA6YXRhMDowOjA6MCk6IFNDU0kgc3RhdHVz
 IGVycm9yCihwcm9iZTA6YXRhMDowOjA6MCk6IElOUVVJUlkuIENEQjogMTIgMSAwIDAgZmYgMCAK
 KHByb2JlMDphdGEwOjA6MDowKTogQ0FNIHN0YXR1czogU0NTSSBTdGF0dXMgRXJyb3IKKHByb2Jl
 MDphdGEwOjA6MDowKTogU0NTSSBzdGF0dXM6IENoZWNrIENvbmRpdGlvbgoocHJvYmUwOmF0YTA6
 MDowOjApOiBTQ1NJIHNlbnNlOiBJTExFR0FMIFJFUVVFU1QgY3NpOjEyLDEsMCwwIGFzYzoyNCww
 IChJbnZhbGlkIGZpZWxkIGluIENEQik6IENvbW1hbmQgYnl0ZSAxIGlzIGludmFsaWQKKHByb2Jl
 MDphdGEwOjA6MDowKTogRXJyb3IgMjIsIFVucmV0cnlhYmxlIGVycm9yCihwcm9iZTA6YXRhMDow
 OjA6MCk6IERvd24gcmV2aW5nIFByb3RvY29sIFZlcnNpb24gZnJvbSAyIHRvIDA/Cihwcm9iZTA6
 YXRhMDowOjA6MCk6IFNDU0kgc3RhdHVzIGVycm9yCihwcm9iZTA6YXRhMDowOjA6MCk6IFRFU1Qg
 VU5JVCBSRUFEWS4gQ0RCOiAwIDAgMCAwIDAgMCAKKHByb2JlMDphdGEwOjA6MDowKTogQ0FNIHN0
 YXR1czogU0NTSSBTdGF0dXMgRXJyb3IKKHByb2JlMDphdGEwOjA6MDowKTogU0NTSSBzdGF0dXM6
 IENoZWNrIENvbmRpdGlvbgoocHJvYmUwOmF0YTA6MDowOjApOiBTQ1NJIHNlbnNlOiBOT1QgUkVB
 RFkgY3NpOjAsMCxiYiwwIGFzYzozYSwwIChNZWRpdW0gbm90IHByZXNlbnQpCihwcm9iZTA6YXRh
 MDowOjA6MCk6IEVycm9yIDYsIFVucmV0cnlhYmxlIGVycm9yCnBhc3MwIGF0IGFoY2ljaDAgYnVz
 IDAgc2NidXMwIHRhcmdldCAwIGx1biAwCnBhc3MwOiA8U0FNU1VORyBITTY0MUpJIDJBSjEwMDAx
 PiBBVEEtOCBTQVRBIDIueCBkZXZpY2UKcGFzczA6IFNlcmlhbCBOdW1iZXIgUzIzVEpEUVoyMDA0
 OTcKcGFzczA6IDE1MC4wMDBNQi9zIHRyYW5zZmVycyAoU0FUQSAxLngsIFVETUE2LCBQSU8gODE5
 MmJ5dGVzKQpwYXNzMDogQ29tbWFuZCBRdWV1ZWluZyBlbmFibGVkCnBhc3MxIGF0IGF0YTAgYnVz
 IDAgc2NidXMxIHRhcmdldCAwIGx1biAwCnBhc3MxOiA8SEwtRFQtU1QgRFZEUkFNIEdTQS1UNDBO
 IEpRMDE+IFJlbW92YWJsZSBDRC1ST00gU0NTSS0wIGRldmljZSAKcGFzczE6IDMzLjAwME1CL3Mg
 dHJhbnNmZXJzCmFkYTAgYXQgYWhjaWNoMCBidXMgMCBzY2J1czAgdGFyZ2V0IDAgbHVuIDAKYWRh
 MDogPFNBTVNVTkcgSE02NDFKSSAyQUoxMDAwMT4gQVRBLTggU0FUQSAyLnggZGV2aWNlCmFkYTA6
 IFNlcmlhbCBOdW1iZXIgUzIzVEpEUVoyMDA0OTcKYWRhMDogMTUwLjAwME1CL3MgdHJhbnNmZXJz
 IChTQVRBIDEueCwgVURNQTYsIFBJTyA4MTkyYnl0ZXNHRU9NOiBuZXcgZGlzayBjZDAKR0VPTTog
 bmV3IGRpc2sgYWRhMAopCmFkYTA6IENvbW1hbmQgUXVldWVpbmcgZW5hYmxlZAphZGEwOiA2MTA0
 ODBNQiAoMTI1MDI2MzcyOCA1MTIgYnl0ZSBzZWN0b3JzOiAxNUggNjNTL1QgMTYzODNDKQooY2Qw
 OmF0YTA6MDowOjApOiBTQ1NJIHN0YXR1cyBlcnJvcgooY2QwOmF0YTA6MDowOjApOiBSRUFEIENB
 UEFDSVRZLiBDREI6IDI1IDAgMCAwIDAgMCAwIDAgMCAwIAooY2QwOmF0YTA6MDowOjApOiBDQU0g
 c3RhdHVzOiBTQ1NJIFN0YXR1cyBFcnJvcgooY2QwOmF0YTA6MDowOjApOiBTQ1NJIHN0YXR1czog
 Q2hlY2sgQ29uZGl0aW9uCihjZDA6YXRhMDowOjA6MCk6IFNDU0kgc2Vuc2U6IE5PVCBSRUFEWSBj
 c2k6MCwwLGJiLDAgYXNjOjNhLDAgKE1lZGl1bSBub3QgcHJlc2VudCkKKGNkMDphdGEwOjA6MDow
 KTogRXJyb3IgNiwgVW5yZXRyeWFibGUgZXJyb3IKY2QwIGF0IGF0YTAgYnVzIDAgc2NidXMxIHRh
 cmdldCAwIGx1biAwCmNkMDogPEhMLURULVNUIERWRFJBTSBHU0EtVDQwTiBKUTAxPiBSZW1vdmFi
 bGUgQ0QtUk9NIFNDU0ktMCBkZXZpY2UgCmNkMDogMzMuMDAwTUIvcyB0cmFuc2ZlcnMKY2QwOiBB
 dHRlbXB0IHRvIHF1ZXJ5IGRldmljZSBzaXplIGZhaWxlZDogTk9UIFJFQURZLCBNZWRpdW0gbm90
 IHByZXNlbnQKU01QOiBBUCBDUFUgIzEgTGF1bmNoZWQhCmNwdTEgQVA6CiAgICAgSUQ6IDB4MDEw
 MDAwMDAgICBWRVI6IDB4MDAwNTAwMTQgTERSOiAweDAwMDAwMDAwIERGUjogMHhmZmZmZmZmZgog
 IGxpbnQwOiAweDAwMDEwNzAwIGxpbnQxOiAweDAwMDAwNDAwIFRQUjogMHgwMDAwMDAwMCBTVlI6
 IDB4MDAwMDAxZmYKICB0aW1lcjogMHgwMDAyMDBlZiB0aGVybTogMHgwMDAxMDIwMCBlcnI6IDB4
 MDAwMDAwZjAgcG1jOiAweDAwMDEwNDAwCmlvYXBpYzA6IHJvdXRpbmcgaW50cGluIDkgKElTQSBJ
 UlEgOSkgdG8gbGFwaWMgMSB2ZWN0b3IgNDgKaW9hcGljMDogcm91dGluZyBpbnRwaW4gMTQgKElT
 QSBJUlEgMTQpIHRvIGxhcGljIDEgdmVjdG9yIDQ5CmlvYXBpYzA6IHJvdXRpbmcgaW50cGluIDE3
 IChQQ0kgSVJRIDE3KSB0byBsYXBpYyAxIHZlY3RvciA1MAppb2FwaWMwOiByb3V0aW5nIGludHBp
 biAxOSAoUENJIElSUSAxOSkgdG8gbGFwaWMgMSB2ZWN0b3IgNTEKbXNpOiBBc3NpZ25pbmcgTVNJ
 IElSUSAyNTYgdG8gbG9jYWwgQVBJQyAxIHZlY3RvciA1MgooY2QwOmF0YTA6MDowOjApOiBTQ1NJ
 IHN0YXR1cyBlcnJvcgooY2QwOmF0YTA6MDowOjApOiBSRUFEIENBUEFDSVRZLiBDREI6IDI1IDAg
 MCAwIDAgMCAwIDAgMCAwIAooY2QwOmF0YTA6MDowOjApOiBDQU0gc3RhdHVzOiBTQ1NJIFN0YXR1
 cyBFcnJvcgooY2QwOmF0YTA6MDowOjApOiBTQ1NJIHN0YXR1czogQ2hlY2sgQ29uZGl0aW9uCihj
 ZDA6YXRhMDowOjA6MCk6IFNDU0kgc2Vuc2U6IE5PVCBSRUFEWSBjc2k6MCwwLGJiLDAgYXNjOjNh
 LDAgKE1lZGl1bSBub3QgcHJlc2VudCkKKGNkMDphdGEwOjA6MDowKTogRXJyb3IgNiwgVW5yZXRy
 eWFibGUgZXJyb3IKKGNkMDphdGEwOjA6MDowKTogU0NTSSBzdGF0dXMgZXJyb3IKKGNkMDphdGEw
 OjA6MDowKTogUkVBRCBDQVBBQ0lUWS4gQ0RCOiAyNSAwIDAgMCAwIDAgMCAwIDAgMCAKKGNkMDph
 dGEwOjA6MDowKTogQ0FNIHN0YXR1czogU0NTSSBTdGF0dXMgRXJyb3IKKGNkMDphdGEwOjA6MDow
 KTogU0NTSSBzdGF0dXM6IENoZWNrIENvbmRpdGlvbgooY2QwOmF0YTA6MDowOjApOiBTQ1NJIHNl
 bnNlOiBOT1QgUkVBRFkgY3NpOjAsMCxiYiwwIGFzYzozYSwwIChNZWRpdW0gbm90IHByZXNlbnQp
 CihjZDA6YXRhMDowOjA6MCk6IEVycm9yIDYsIFVucmV0cnlhYmxlIGVycm9yClRyeWluZyB0byBt
 b3VudCByb290IGZyb20gemZzOnRhbmsvUk9PVC9mcmVlYnNkLTgxCnVnZW4yLjI6IDxMb2dpdGVj
 aD4gYXQgdXNidXMyCnVtczA6IDxMb2dpdGVjaCBVU0IgT3B0aWNhbCBNb3VzZSwgY2xhc3MgMC8w
 LCByZXYgMi4wMC81NC4wMCwgYWRkciAyPiBvbiB1c2J1czIKdW1zMDogOCBidXR0b25zIGFuZCBb
 WFlaVF0gY29vcmRpbmF0ZXMgSUQ9MApjdF90b190cyhbMjAxMC0wOS0wNCAyMjoyMzo1NF0pID0g
 MTI4MzYzOTAzNC4wMDAwMDAwMDAKc3RhcnRfaW5pdDogdHJ5aW5nIC9zYmluL2luaXQKTGludXgg
 RUxGIGV4ZWMgaGFuZGxlciBpbnN0YWxsZWQKbGlucHJvY2ZzIHJlZ2lzdGVyZWQKbGluc3lzZnMg
 cmVnaXN0ZXJlZAphY3BpX3R6MDogX0FDMzogdGVtcGVyYXR1cmUgNzUuMCA+PSBzZXRwb2ludCA0
 NS4wCmFjcGlfdHowOiBfQUMyOiB0ZW1wZXJhdHVyZSA3NS4wID49IHNldHBvaW50IDUwLjAKdmJv
 eG5ldDA6IGJwZiBhdHRhY2hlZAp2Ym94bmV0MDogRXRoZXJuZXQgYWRkcmVzczogMGE6MDA6Mjc6
 MDA6MDA6MDAKYmZlMDogbGluayBzdGF0ZSBjaGFuZ2VkIHRvIFVQCg==
 
 --MP_/zdVsl0JXJ+RX/EQ.T4Gr24T--
 
 --Sig_/aUx2RBkDgZ/Agz5kb/wPcDD
 Content-Type: application/pgp-signature; name=signature.asc
 Content-Disposition: attachment; filename=signature.asc
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.16 (FreeBSD)
 
 iEYEARECAAYFAkyCrDEACgkQCikUk0l7iGpqtwCeJNiYN0UkgCRBuByXdwhdBadM
 wWgAn0b88ttUmcliOvnZ/0TXx1dILnCU
 =T6rL
 -----END PGP SIGNATURE-----
 
 --Sig_/aUx2RBkDgZ/Agz5kb/wPcDD--

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/147858: commit references a PR
Date: Mon,  6 Sep 2010 07:34:42 +0000 (UTC)

 Author: avg
 Date: Mon Sep  6 07:34:32 2010
 New Revision: 212251
 URL: http://svn.freebsd.org/changeset/base/212251
 
 Log:
   acpi_hp: fix bus attachment code
   
   - add identify method to create driver's own device_t
   - successfully probe only driver's own device_t instead of any device_t
   - (ab)use device order to hopefully be probed/attached after acpi_wmi
   
   PR:		kern/147858
   Tested by:	Maciej Suszko <maciej@suszko.eu>
   MFC after:	1 week
 
 Modified:
   head/sys/dev/acpi_support/acpi_hp.c
 
 Modified: head/sys/dev/acpi_support/acpi_hp.c
 ==============================================================================
 --- head/sys/dev/acpi_support/acpi_hp.c	Mon Sep  6 07:24:43 2010	(r212250)
 +++ head/sys/dev/acpi_support/acpi_hp.c	Mon Sep  6 07:34:32 2010	(r212251)
 @@ -49,6 +49,7 @@ __FBSDID("$FreeBSD$");
  #include <sys/uio.h>
  #include <sys/proc.h>
  #include <sys/kernel.h>
 +#include <sys/limits.h>
  #include <sys/bus.h>
  #include <sys/sbuf.h>
  #include <sys/module.h>
 @@ -116,7 +117,6 @@ struct acpi_hp_inst_seq_pair {
  
  struct acpi_hp_softc {
  	device_t	dev;
 -	ACPI_HANDLE	handle;
  	device_t	wmi_dev;
  	int		has_notify;		/* notification GUID found */
  	int		has_cmi;		/* CMI GUID found */
 @@ -289,6 +289,7 @@ static struct {
  
  ACPI_SERIAL_DECL(hp, "HP ACPI-WMI Mapping");
  
 +static void	acpi_hp_identify(driver_t *driver, device_t parent);
  static int	acpi_hp_probe(device_t dev);
  static int	acpi_hp_attach(device_t dev);
  static int	acpi_hp_detach(device_t dev);
 @@ -320,6 +321,7 @@ static struct cdevsw hpcmi_cdevsw = {
  };
  
  static device_method_t acpi_hp_methods[] = {
 +	DEVMETHOD(device_identify, acpi_hp_identify),
  	DEVMETHOD(device_probe, acpi_hp_probe),
  	DEVMETHOD(device_attach, acpi_hp_attach),
  	DEVMETHOD(device_detach, acpi_hp_detach),
 @@ -405,7 +407,7 @@ acpi_hp_evaluate_auto_on_off(struct acpi
  			    	    "WLAN on air changed to %i "
  			    	    "(new_wlan_status is %i)\n",
  			    	    sc->was_wlan_on_air, new_wlan_status);
 -			acpi_UserNotify("HP", sc->handle,
 +			acpi_UserNotify("HP", ACPI_ROOT_OBJECT,
  			    0xc0+sc->was_wlan_on_air);
  		}
  	}
 @@ -420,7 +422,7 @@ acpi_hp_evaluate_auto_on_off(struct acpi
  				    " to %i (new_bluetooth_status is %i)\n",
  				    sc->was_bluetooth_on_air,
  				    new_bluetooth_status);
 -			acpi_UserNotify("HP", sc->handle,
 +			acpi_UserNotify("HP", ACPI_ROOT_OBJECT,
  			    0xd0+sc->was_bluetooth_on_air);
  		}
  	}
 @@ -433,16 +435,43 @@ acpi_hp_evaluate_auto_on_off(struct acpi
  				    "WWAN on air changed to %i"
  			    	    " (new_wwan_status is %i)\n",
  				    sc->was_wwan_on_air, new_wwan_status);
 -			acpi_UserNotify("HP", sc->handle,
 +			acpi_UserNotify("HP", ACPI_ROOT_OBJECT,
  			    0xe0+sc->was_wwan_on_air);
  		}
  	}
  }
  
 +static void
 +acpi_hp_identify(driver_t *driver, device_t parent)
 +{
 +
 +	/* Don't do anything if driver is disabled. */
 +	if (acpi_disabled("hp"))
 +		return;
 +
 +	/* Add only a single device instance. */
 +	if (device_find_child(parent, "acpi_hp", -1) != NULL)
 +		return;
 +
 +	/* Make sure acpi_wmi driver is present. */
 +	if (devclass_find("acpi_wmi") == NULL)
 +		return;
 +
 +	/*
 +	 * Add our device with late order, so that it is hopefully
 +	 * probed after acpi_wmi.
 +	 * XXX User proper constant instead of UINT_MAX for order.
 +	 */
 +	if (BUS_ADD_CHILD(parent, UINT_MAX, "acpi_hp", -1) == NULL)
 +		device_printf(parent, "add acpi_hp child failed\n");
 +}
 +
  static int
  acpi_hp_probe(device_t dev)
  {
 -	if (acpi_disabled("hp") || device_get_unit(dev) != 0)
 +
 +	/* Skip auto-enumerated devices from ACPI namespace. */
 +	if (acpi_get_handle(dev) != NULL)
  		return (ENXIO);
  	device_set_desc(dev, "HP ACPI-WMI Mapping");
  
 @@ -460,7 +489,6 @@ acpi_hp_attach(device_t dev)
  
  	sc = device_get_softc(dev);
  	sc->dev = dev;
 -	sc->handle = acpi_get_handle(dev);
  	sc->has_notify = 0;
  	sc->has_cmi = 0;
  	sc->bluetooth_enable_if_radio_on = 0;
 @@ -477,7 +505,7 @@ acpi_hp_attach(device_t dev)
  	sc->verbose = 0;
  	memset(sc->cmi_order, 0, sizeof(sc->cmi_order));
  
 -	if (!(wmi_devclass = devclass_find ("acpi_wmi"))) {
 +	if (!(wmi_devclass = devclass_find("acpi_wmi"))) {
  		device_printf(dev, "Couldn't find acpi_wmi devclass\n");
  		return (EINVAL);
  	}
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 

From: Andriy Gapon <avg@icyb.net.ua>
To: Maciej Suszko <maciej@suszko.eu>
Cc: bug-followup@FreeBSD.org
Subject: Re: kern/147858: [acpi] acpi_hp not working when loaded via loader.conf
Date: Mon, 06 Sep 2010 10:36:52 +0300

 on 04/09/2010 23:29 Maciej Suszko said the following:
 > No problem, dmesg.boot attached.
 
 Well, it's usually better to upload such a big file to some site/service and
 post a link.
 The attachment looks quite garbled on the PR web-page too.
 
 But, still, thanks!
 
 -- 
 Andriy Gapon
State-Changed-From-To: feedback->analyzed 
State-Changed-By: avg 
State-Changed-When: Wed Sep 8 16:39:39 UTC 2010 
State-Changed-Why:  
Taking this one. 
The issue is patched in head, but I am working 
on a better patch. 


Responsible-Changed-From-To: freebsd-acpi->avg 
Responsible-Changed-By: avg 
Responsible-Changed-When: Wed Sep 8 16:39:39 UTC 2010 
Responsible-Changed-Why:  
Taking this one. 
The issue is patched in head, but I am working 
on a better patch. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=147858 

From: Andriy Gapon <avg@freebsd.org>
To: Maciej Suszko <maciej@suszko.eu>
Cc: bug-followup@freebsd.org
Subject: Re: kern/147858: [acpi] acpi_hp not working when loaded via loader.conf
Date: Wed, 08 Sep 2010 20:00:32 +0300

 Maciej,
 
 would you be willing to test a different, hopefully better, patch?
 The patch is here:
 http://people.freebsd.org/~avg/acpi_hp2.diff
 The patch is against clean source tree (i.e. previous patch would need to be
 reverted).
 
 This time you would need to rebuild both acpi_hp and acpi_wmi modules.
 As usual, could you please post a link to verbose dmesg after the patch?
 
 Thanks a lot for your help!
 -- 
 Andriy Gapon

From: Maciej Suszko <maciej@suszko.eu>
To: Andriy Gapon <avg@freebsd.org>
Cc: bug-followup@freebsd.org
Subject: Re: kern/147858: [acpi] acpi_hp not working when loaded via
 loader.conf
Date: Thu, 9 Sep 2010 21:36:14 +0200

 --Sig_/vYdjfxQgP_SEWCRNgZcBHSY
 Content-Type: text/plain; charset=US-ASCII
 Content-Transfer-Encoding: quoted-printable
 
 Andriy Gapon <avg@freebsd.org> wrote:
 > Maciej,
 >=20
 > would you be willing to test a different, hopefully better, patch?
 > The patch is here:
 > http://people.freebsd.org/~avg/acpi_hp2.diff
 > The patch is against clean source tree (i.e. previous patch would
 > need to be reverted).
 
 I tried to apply this patch against fresh RELENG_8_1 and RELENG_8
 sources - it does not apply cleanly on acpi_hp.c.
 
 Here's what is left in acpi_hp.c.rej (patched against RELENG_8):
 ***************
 *** 453,466 ****
   acpi_hp_attach(device_t dev)
   {
         struct acpi_hp_softc    *sc;
 -       devclass_t              wmi_devclass;
         int                     arg;
  =20
         ACPI_FUNCTION_TRACE((char *)(uintptr_t) __func__);
  =20
         sc =3D device_get_softc(dev);
         sc->dev =3D dev;
 -       sc->handle =3D acpi_get_handle(dev);
         sc->has_notify =3D 0;
         sc->has_cmi =3D 0;
         sc->bluetooth_enable_if_radio_on =3D 0;
 --- 468,479 ----
   acpi_hp_attach(device_t dev)
   {
         struct acpi_hp_softc    *sc;
         int                     arg;
  =20
         ACPI_FUNCTION_TRACE((char *)(uintptr_t) __func__);
  =20
         sc =3D device_get_softc(dev);
         sc->dev =3D dev;
         sc->has_notify =3D 0;
         sc->has_cmi =3D 0;
         sc->bluetooth_enable_if_radio_on =3D 0;
 
 
 I tried to edit source file manualy, compiled both modules but the
 result was as on clean sources - acpi_hp/wmi not working when loaded
 during boot.
 
 > This time you would need to rebuild both acpi_hp and acpi_wmi modules.
 > As usual, could you please post a link to verbose dmesg after the
 > patch?
 >=20
 > Thanks a lot for your help!
 --=20
 regards, Maciej Suszko.
 
 --Sig_/vYdjfxQgP_SEWCRNgZcBHSY
 Content-Type: application/pgp-signature; name=signature.asc
 Content-Disposition: attachment; filename=signature.asc
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.16 (FreeBSD)
 
 iEYEARECAAYFAkyJNzIACgkQCikUk0l7iGp//gCdHrmYKAN30wSrvVSK+wzz7eUj
 xAcAnRY2HkOUAB2GLlH2WQo1qS+cufIz
 =Tm7O
 -----END PGP SIGNATURE-----
 
 --Sig_/vYdjfxQgP_SEWCRNgZcBHSY--

From: Andriy Gapon <avg@freebsd.org>
To: Maciej Suszko <maciej@suszko.eu>
Cc: bug-followup@freebsd.org
Subject: Re: kern/147858: [acpi] acpi_hp not working when loaded via loader.conf
Date: Fri, 10 Sep 2010 08:34:47 +0300

 on 09/09/2010 22:36 Maciej Suszko said the following:
 > I tried to apply this patch against fresh RELENG_8_1 and RELENG_8
 > sources - it does not apply cleanly on acpi_hp.c.
 
 Sorry about this, I overlooked that some changes in head were not MFC-ed to
 stable/8.
 Here's a better patch:
 
 > I tried to edit source file manualy, compiled both modules but the
 > result was as on clean sources - acpi_hp/wmi not working when loaded
 > during boot.
 
 I hope you just removed those two lines.
 Even if it did not succeed, could you still please provide a link to the verbose
 dmesg, so that I could analyze what went wrong?
 Thanks!
 
 -- 
 Andriy Gapon

From: Maciej Suszko <maciej@suszko.eu>
To: Andriy Gapon <avg@freebsd.org>
Cc: bug-followup@freebsd.org
Subject: Re: kern/147858: [acpi] acpi_hp not working when loaded via
 loader.conf
Date: Fri, 10 Sep 2010 16:59:16 +0200

 --Sig_/jCKCyalv8U=Vk_XcBlfMG=0
 Content-Type: text/plain; charset=US-ASCII
 Content-Transfer-Encoding: quoted-printable
 
 Andriy Gapon <avg@freebsd.org> wrote:
 > on 09/09/2010 22:36 Maciej Suszko said the following:
 > > I tried to apply this patch against fresh RELENG_8_1 and RELENG_8
 > > sources - it does not apply cleanly on acpi_hp.c.
 >=20
 > Sorry about this, I overlooked that some changes in head were not
 > MFC-ed to stable/8.
 > Here's a better patch:
 
 Did you forget to paste it?=20
 
 > > I tried to edit source file manualy, compiled both modules but the
 > > result was as on clean sources - acpi_hp/wmi not working when loaded
 > > during boot.
 >=20
 > I hope you just removed those two lines.
 > Even if it did not succeed, could you still please provide a link to
 > the verbose dmesg, so that I could analyze what went wrong?
 > Thanks!
 
 Anyway - I just patched RELENG_8 sources with acpi_hp2.diff and removed
 those two lines. Full dmesg is available here:
 
 http://pastebin.com/kdVsn1SR
 --=20
 regards, Maciej Suszko.
 
 --Sig_/jCKCyalv8U=Vk_XcBlfMG=0
 Content-Type: application/pgp-signature; name=signature.asc
 Content-Disposition: attachment; filename=signature.asc
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.16 (FreeBSD)
 
 iEYEARECAAYFAkyKR8kACgkQCikUk0l7iGpzqgCginYtgLs/ICBOqZI11qLdG/k7
 vjsAnjxHLKyUeN+xhDrDqDOBN7aKyyHZ
 =y5BL
 -----END PGP SIGNATURE-----
 
 --Sig_/jCKCyalv8U=Vk_XcBlfMG=0--

From: Andriy Gapon <avg@freebsd.org>
To: Maciej Suszko <maciej@suszko.eu>
Cc: bug-followup@freebsd.org
Subject: Re: kern/147858: [acpi] acpi_hp not working when loaded via loader.conf
Date: Fri, 10 Sep 2010 20:34:48 +0300

 on 10/09/2010 17:59 Maciej Suszko said the following:
 > Andriy Gapon <avg@freebsd.org> wrote:
 >> on 09/09/2010 22:36 Maciej Suszko said the following:
 >>> I tried to apply this patch against fresh RELENG_8_1 and RELENG_8
 >>> sources - it does not apply cleanly on acpi_hp.c.
 >>
 >> Sorry about this, I overlooked that some changes in head were not
 >> MFC-ed to stable/8.
 >> Here's a better patch:
 > 
 > Did you forget to paste it? 
 
 Oh my, yes I did.
 Here is the link:
 http://people.freebsd.org/~avg/acpi_hp3.diff
 
 >>> I tried to edit source file manualy, compiled both modules but the
 >>> result was as on clean sources - acpi_hp/wmi not working when loaded
 >>> during boot.
 >>
 >> I hope you just removed those two lines.
 >> Even if it did not succeed, could you still please provide a link to
 >> the verbose dmesg, so that I could analyze what went wrong?
 >> Thanks!
 > 
 > Anyway - I just patched RELENG_8 sources with acpi_hp2.diff and removed
 > those two lines. Full dmesg is available here:
 > 
 > http://pastebin.com/kdVsn1SR
 
 I just have to ask this, are you positive that you have acpi_wmi.c patched, and
 acpi_wmi.ko rebuilt and reinstalled?
 
 -- 
 Andriy Gapon

From: Maciej Suszko <maciej@suszko.eu>
To: Andriy Gapon <avg@freebsd.org>
Cc: bug-followup@freebsd.org
Subject: Re: kern/147858: [acpi] acpi_hp not working when loaded via
 loader.conf
Date: Fri, 10 Sep 2010 20:12:52 +0200

 --Sig_/R=K.uc7y0k5uo=/mEl25g.w
 Content-Type: text/plain; charset=US-ASCII
 Content-Transfer-Encoding: quoted-printable
 
 Andriy Gapon <avg@freebsd.org> wrote:
 > on 10/09/2010 17:59 Maciej Suszko said the following:
 > > Andriy Gapon <avg@freebsd.org> wrote:
 > >> on 09/09/2010 22:36 Maciej Suszko said the following:
 > >>> I tried to apply this patch against fresh RELENG_8_1 and RELENG_8
 > >>> sources - it does not apply cleanly on acpi_hp.c.
 > >>
 > >> Sorry about this, I overlooked that some changes in head were not
 > >> MFC-ed to stable/8.
 > >> Here's a better patch:
 > >=20
 > > Did you forget to paste it?=20
 >=20
 > Oh my, yes I did.
 > Here is the link:
 > http://people.freebsd.org/~avg/acpi_hp3.diff
 
 Thanks for then next patch - it applies cleanly right now.
 
 > >>> I tried to edit source file manualy, compiled both modules but the
 > >>> result was as on clean sources - acpi_hp/wmi not working when
 > >>> loaded during boot.
 > >>
 > >> I hope you just removed those two lines.
 > >> Even if it did not succeed, could you still please provide a link
 > >> to the verbose dmesg, so that I could analyze what went wrong?
 > >> Thanks!
 > >=20
 > > Anyway - I just patched RELENG_8 sources with acpi_hp2.diff and
 > > removed those two lines. Full dmesg is available here:
 > >=20
 > > http://pastebin.com/kdVsn1SR
 >=20
 > I just have to ask this, are you positive that you have acpi_wmi.c
 > patched, and acpi_wmi.ko rebuilt and reinstalled?
 
 If it's not more than doing make obj depend && make && make install in
 sys/modules/acpi_(wmi|hp) - yes, I'm sure of that. Here's the next
 dmesg.boot after applying acpi_hp3.diff, unfortunately still not
 working as it should:
 
 http://pastebin.com/68sauZNe
 --=20
 regards, Maciej Suszko.
 
 --Sig_/R=K.uc7y0k5uo=/mEl25g.w
 Content-Type: application/pgp-signature; name=signature.asc
 Content-Disposition: attachment; filename=signature.asc
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.16 (FreeBSD)
 
 iEYEARECAAYFAkyKdScACgkQCikUk0l7iGolMQCeIqAJPIEQQ2+E5FxF4vjPgDmd
 fY0An1FAX1UIJrGRAvc9fnneK60cM3r6
 =IdG3
 -----END PGP SIGNATURE-----
 
 --Sig_/R=K.uc7y0k5uo=/mEl25g.w--

From: Andriy Gapon <avg@freebsd.org>
To: Maciej Suszko <maciej@suszko.eu>
Cc: bug-followup@freebsd.org
Subject: Re: kern/147858: [acpi] acpi_hp not working when loaded via loader.conf
Date: Fri, 10 Sep 2010 21:37:36 +0300

 on 10/09/2010 21:12 Maciej Suszko said the following:
 > If it's not more than doing make obj depend && make && make install in
 > sys/modules/acpi_(wmi|hp) - yes, I'm sure of that. Here's the next
 > dmesg.boot after applying acpi_hp3.diff, unfortunately still not
 > working as it should:
 
 Hmm, I am puzzled.
 Can you please add printfs in acpi_wmi_attach before and after calls to
 bus_generic_probe and bus_generic_attach?
 And also at the start and the end of acpi_hp_identify.
 And then check which of the messages get printed and which are not?
 
 -- 
 Andriy Gapon

From: Andriy Gapon <avg@freebsd.org>
To: Maciej Suszko <maciej@suszko.eu>
Cc: bug-followup@freebsd.org
Subject: Re: kern/147858: [acpi] acpi_hp not working when loaded via loader.conf
Date: Fri, 10 Sep 2010 22:12:15 +0300

 on 10/09/2010 21:37 Andriy Gapon said the following:
 > on 10/09/2010 21:12 Maciej Suszko said the following:
 >> If it's not more than doing make obj depend && make && make install in
 >> sys/modules/acpi_(wmi|hp) - yes, I'm sure of that. Here's the next
 >> dmesg.boot after applying acpi_hp3.diff, unfortunately still not
 >> working as it should:
 > 
 > Hmm, I am puzzled.
 > Can you please add printfs in acpi_wmi_attach before and after calls to
 > bus_generic_probe and bus_generic_attach?
 > And also at the start and the end of acpi_hp_identify.
 > And then check which of the messages get printed and which are not?
 > 
 
 Oh, and when you do this, could you please also add the following three lines to
 acpi_wmi_methods[] after "Device interface" block and before "acpi_wmi
 interface" block?
 
         /* bus interface */
         DEVMETHOD(bus_add_child,        bus_generic_add_child),
         DEVMETHOD(bus_print_child,      bus_generic_print_child),
 
 I think that this could be the culprit.
 
 -- 
 Andriy Gapon

From: Maciej Suszko <maciej@suszko.eu>
To: Andriy Gapon <avg@freebsd.org>
Cc: bug-followup@freebsd.org
Subject: Re: kern/147858: [acpi] acpi_hp not working when loaded via
 loader.conf
Date: Sat, 11 Sep 2010 09:31:12 +0200

 --Sig_/+bg_7mrgxUHOAQx82A9ic=v
 Content-Type: text/plain; charset=US-ASCII
 Content-Transfer-Encoding: quoted-printable
 
 Andriy Gapon <avg@freebsd.org> wrote:
 > on 10/09/2010 21:37 Andriy Gapon said the following:
 > > on 10/09/2010 21:12 Maciej Suszko said the following:
 > >> If it's not more than doing make obj depend && make && make
 > >> install in sys/modules/acpi_(wmi|hp) - yes, I'm sure of that.
 > >> Here's the next dmesg.boot after applying acpi_hp3.diff,
 > >> unfortunately still not working as it should:
 > >=20
 > > Hmm, I am puzzled.
 > > Can you please add printfs in acpi_wmi_attach before and after
 > > calls to bus_generic_probe and bus_generic_attach?
 > > And also at the start and the end of acpi_hp_identify.
 > > And then check which of the messages get printed and which are not?
 
 I added printf("PRINTF:...") in places you ask me to. Here's the next
 dmesg after rebuilding and reinstalling those modules - all additional
 printfs are present:
 
 http://pastebin.com/J2bPdKMz
 
 > Oh, and when you do this, could you please also add the following
 > three lines to acpi_wmi_methods[] after "Device interface" block and
 > before "acpi_wmi interface" block?
 >=20
 >         /* bus interface */
 >         DEVMETHOD(bus_add_child,        bus_generic_add_child),
 >         DEVMETHOD(bus_print_child,      bus_generic_print_child),
 >=20
 > I think that this could be the culprit.
 
 Probably, yes. Now it looks like working fine.
 --=20
 regards, Maciej Suszko.
 
 --Sig_/+bg_7mrgxUHOAQx82A9ic=v
 Content-Type: application/pgp-signature; name=signature.asc
 Content-Disposition: attachment; filename=signature.asc
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.16 (FreeBSD)
 
 iEYEARECAAYFAkyLMEMACgkQCikUk0l7iGrwEACaAjb7xSgdEIoZg1XDVgLG6a+5
 sdUAn3tiYBAQ45DUHwisd7whpX88ROC9
 =yMFQ
 -----END PGP SIGNATURE-----
 
 --Sig_/+bg_7mrgxUHOAQx82A9ic=v--

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/147858: commit references a PR
Date: Sat, 11 Sep 2010 08:09:20 +0000 (UTC)

 Author: avg
 Date: Sat Sep 11 08:09:14 2010
 New Revision: 212457
 URL: http://svn.freebsd.org/changeset/base/212457
 
 Log:
   make acpi_hp device a child of acpi_wmi
   
   to properly reflect dependency between the devices/drivers
   
   PR:		kern/147858
   Suggested by:	jhb
   Tested by:	Maciej Suszko <maciej@suszko.eu>
   MFC after:	1 week
 
 Modified:
   head/sys/dev/acpi_support/acpi_hp.c
   head/sys/dev/acpi_support/acpi_wmi.c
 
 Modified: head/sys/dev/acpi_support/acpi_hp.c
 ==============================================================================
 --- head/sys/dev/acpi_support/acpi_hp.c	Sat Sep 11 07:24:10 2010	(r212456)
 +++ head/sys/dev/acpi_support/acpi_hp.c	Sat Sep 11 08:09:14 2010	(r212457)
 @@ -49,7 +49,6 @@ __FBSDID("$FreeBSD$");
  #include <sys/uio.h>
  #include <sys/proc.h>
  #include <sys/kernel.h>
 -#include <sys/limits.h>
  #include <sys/bus.h>
  #include <sys/sbuf.h>
  #include <sys/module.h>
 @@ -336,7 +335,7 @@ static driver_t	acpi_hp_driver = {
  
  static devclass_t acpi_hp_devclass;
  
 -DRIVER_MODULE(acpi_hp, acpi, acpi_hp_driver, acpi_hp_devclass,
 +DRIVER_MODULE(acpi_hp, acpi_wmi, acpi_hp_driver, acpi_hp_devclass,
  		0, 0);
  MODULE_DEPEND(acpi_hp, acpi_wmi, 1, 1, 1);
  MODULE_DEPEND(acpi_hp, acpi, 1, 1, 1);
 @@ -453,16 +452,7 @@ acpi_hp_identify(driver_t *driver, devic
  	if (device_find_child(parent, "acpi_hp", -1) != NULL)
  		return;
  
 -	/* Make sure acpi_wmi driver is present. */
 -	if (devclass_find("acpi_wmi") == NULL)
 -		return;
 -
 -	/*
 -	 * Add our device with late order, so that it is hopefully
 -	 * probed after acpi_wmi.
 -	 * XXX User proper constant instead of UINT_MAX for order.
 -	 */
 -	if (BUS_ADD_CHILD(parent, UINT_MAX, "acpi_hp", -1) == NULL)
 +	if (BUS_ADD_CHILD(parent, 0, "acpi_hp", -1) == NULL)
  		device_printf(parent, "add acpi_hp child failed\n");
  }
  
 @@ -470,11 +460,7 @@ static int
  acpi_hp_probe(device_t dev)
  {
  
 -	/* Skip auto-enumerated devices from ACPI namespace. */
 -	if (acpi_get_handle(dev) != NULL)
 -		return (ENXIO);
  	device_set_desc(dev, "HP ACPI-WMI Mapping");
 -
  	return (0);
  }
  
 @@ -482,7 +468,6 @@ static int
  acpi_hp_attach(device_t dev)
  {
  	struct acpi_hp_softc	*sc;
 -	devclass_t		wmi_devclass;
  	int			arg;
  
  	ACPI_FUNCTION_TRACE((char *)(uintptr_t) __func__);
 @@ -505,14 +490,7 @@ acpi_hp_attach(device_t dev)
  	sc->verbose = 0;
  	memset(sc->cmi_order, 0, sizeof(sc->cmi_order));
  
 -	if (!(wmi_devclass = devclass_find("acpi_wmi"))) {
 -		device_printf(dev, "Couldn't find acpi_wmi devclass\n");
 -		return (EINVAL);
 -	}
 -	if (!(sc->wmi_dev = devclass_get_device(wmi_devclass, 0))) {
 -		device_printf(dev, "Couldn't find acpi_wmi device\n");
 -		return (EINVAL);
 -	}
 +	sc->wmi_dev = device_get_parent(dev);
  	if (!ACPI_WMI_PROVIDES_GUID_STRING(sc->wmi_dev,
  	    ACPI_HP_WMI_BIOS_GUID)) {
  		device_printf(dev,
 
 Modified: head/sys/dev/acpi_support/acpi_wmi.c
 ==============================================================================
 --- head/sys/dev/acpi_support/acpi_wmi.c	Sat Sep 11 07:24:10 2010	(r212456)
 +++ head/sys/dev/acpi_support/acpi_wmi.c	Sat Sep 11 08:09:14 2010	(r212457)
 @@ -173,6 +173,10 @@ static device_method_t acpi_wmi_methods[
  	DEVMETHOD(device_attach, acpi_wmi_attach),
  	DEVMETHOD(device_detach, acpi_wmi_detach),
  
 +	/* bus interface */
 +	DEVMETHOD(bus_add_child,	bus_generic_add_child),
 +	DEVMETHOD(bus_print_child,	bus_generic_print_child),
 +
  	/* acpi_wmi interface */
  	DEVMETHOD(acpi_wmi_provides_guid_string,
  		    acpi_wmi_provides_guid_string_method),
 @@ -269,6 +273,11 @@ acpi_wmi_attach(device_t dev)
  	}
  	ACPI_SERIAL_END(acpi_wmi);
  
 +	if (ret == 0) {
 +		bus_generic_probe(dev);
 +		ret = bus_generic_attach(dev);
 +	}
 +
  	return (ret);
  }
  
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: analyzed->patched 
State-Changed-By: avg 
State-Changed-When: Sat Sep 11 08:18:09 UTC 2010 
State-Changed-Why:  
The issue is fixed in head. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=147858 
State-Changed-From-To: patched->closed 
State-Changed-By: avg 
State-Changed-When: Sat Sep 18 07:16:57 UTC 2010 
State-Changed-Why:  
The fix is MFC-ed to stable/8. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=147858 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/147858: commit references a PR
Date: Sat, 18 Sep 2010 07:16:44 +0000 (UTC)

 Author: avg
 Date: Sat Sep 18 07:16:38 2010
 New Revision: 212810
 URL: http://svn.freebsd.org/changeset/base/212810
 
 Log:
   MFC r212251,212457: make acpi_hp device a child of acpi_wmi
   
   PR:		kern/147858
 
 Modified:
   stable/8/sys/dev/acpi_support/acpi_hp.c
   stable/8/sys/dev/acpi_support/acpi_wmi.c
 Directory Properties:
   stable/8/sys/   (props changed)
   stable/8/sys/amd64/include/xen/   (props changed)
   stable/8/sys/cddl/contrib/opensolaris/   (props changed)
   stable/8/sys/contrib/dev/acpica/   (props changed)
   stable/8/sys/contrib/pf/   (props changed)
   stable/8/sys/dev/xen/xenpci/   (props changed)
 
 Modified: stable/8/sys/dev/acpi_support/acpi_hp.c
 ==============================================================================
 --- stable/8/sys/dev/acpi_support/acpi_hp.c	Sat Sep 18 00:58:44 2010	(r212809)
 +++ stable/8/sys/dev/acpi_support/acpi_hp.c	Sat Sep 18 07:16:38 2010	(r212810)
 @@ -116,7 +116,6 @@ struct acpi_hp_inst_seq_pair {
  
  struct acpi_hp_softc {
  	device_t	dev;
 -	ACPI_HANDLE	handle;
  	device_t	wmi_dev;
  	int		has_notify;		/* notification GUID found */
  	int		has_cmi;		/* CMI GUID found */
 @@ -289,6 +288,7 @@ static struct {
  
  ACPI_SERIAL_DECL(hp, "HP ACPI-WMI Mapping");
  
 +static void	acpi_hp_identify(driver_t *driver, device_t parent);
  static int	acpi_hp_probe(device_t dev);
  static int	acpi_hp_attach(device_t dev);
  static int	acpi_hp_detach(device_t dev);
 @@ -320,6 +320,7 @@ static struct cdevsw hpcmi_cdevsw = {
  };
  
  static device_method_t acpi_hp_methods[] = {
 +	DEVMETHOD(device_identify, acpi_hp_identify),
  	DEVMETHOD(device_probe, acpi_hp_probe),
  	DEVMETHOD(device_attach, acpi_hp_attach),
  	DEVMETHOD(device_detach, acpi_hp_detach),
 @@ -334,7 +335,7 @@ static driver_t	acpi_hp_driver = {
  
  static devclass_t acpi_hp_devclass;
  
 -DRIVER_MODULE(acpi_hp, acpi, acpi_hp_driver, acpi_hp_devclass,
 +DRIVER_MODULE(acpi_hp, acpi_wmi, acpi_hp_driver, acpi_hp_devclass,
  		0, 0);
  MODULE_DEPEND(acpi_hp, acpi_wmi, 1, 1, 1);
  MODULE_DEPEND(acpi_hp, acpi, 1, 1, 1);
 @@ -405,7 +406,7 @@ acpi_hp_evaluate_auto_on_off(struct acpi
  			    	    "WLAN on air changed to %i "
  			    	    "(new_wlan_status is %i)\n",
  			    	    sc->was_wlan_on_air, new_wlan_status);
 -			acpi_UserNotify("HP", sc->handle,
 +			acpi_UserNotify("HP", ACPI_ROOT_OBJECT,
  			    0xc0+sc->was_wlan_on_air);
  		}
  	}
 @@ -420,7 +421,7 @@ acpi_hp_evaluate_auto_on_off(struct acpi
  				    " to %i (new_bluetooth_status is %i)\n",
  				    sc->was_bluetooth_on_air,
  				    new_bluetooth_status);
 -			acpi_UserNotify("HP", sc->handle,
 +			acpi_UserNotify("HP", ACPI_ROOT_OBJECT,
  			    0xd0+sc->was_bluetooth_on_air);
  		}
  	}
 @@ -433,19 +434,33 @@ acpi_hp_evaluate_auto_on_off(struct acpi
  				    "WWAN on air changed to %i"
  			    	    " (new_wwan_status is %i)\n",
  				    sc->was_wwan_on_air, new_wwan_status);
 -			acpi_UserNotify("HP", sc->handle,
 +			acpi_UserNotify("HP", ACPI_ROOT_OBJECT,
  			    0xe0+sc->was_wwan_on_air);
  		}
  	}
  }
  
 +static void
 +acpi_hp_identify(driver_t *driver, device_t parent)
 +{
 +
 +	/* Don't do anything if driver is disabled. */
 +	if (acpi_disabled("hp"))
 +		return;
 +
 +	/* Add only a single device instance. */
 +	if (device_find_child(parent, "acpi_hp", -1) != NULL)
 +		return;
 +
 +	if (BUS_ADD_CHILD(parent, 0, "acpi_hp", -1) == NULL)
 +		device_printf(parent, "add acpi_hp child failed\n");
 +}
 +
  static int
  acpi_hp_probe(device_t dev)
  {
 -	if (acpi_disabled("hp") || device_get_unit(dev) != 0)
 -		return (ENXIO);
 -	device_set_desc(dev, "HP ACPI-WMI Mapping");
  
 +	device_set_desc(dev, "HP ACPI-WMI Mapping");
  	return (0);
  }
  
 @@ -453,14 +468,12 @@ static int
  acpi_hp_attach(device_t dev)
  {
  	struct acpi_hp_softc	*sc;
 -	devclass_t		wmi_devclass;
  	int			arg;
  
  	ACPI_FUNCTION_TRACE((char *)(uintptr_t) __func__);
  
  	sc = device_get_softc(dev);
  	sc->dev = dev;
 -	sc->handle = acpi_get_handle(dev);
  	sc->has_notify = 0;
  	sc->has_cmi = 0;
  	sc->bluetooth_enable_if_radio_on = 0;
 @@ -477,14 +490,7 @@ acpi_hp_attach(device_t dev)
  	sc->verbose = 0;
  	memset(sc->cmi_order, 0, sizeof(sc->cmi_order));
  
 -	if (!(wmi_devclass = devclass_find ("acpi_wmi"))) {
 -		device_printf(dev, "Couldn't find acpi_wmi devclass\n");
 -		return (EINVAL);
 -	}
 -	if (!(sc->wmi_dev = devclass_get_device(wmi_devclass, 0))) {
 -		device_printf(dev, "Couldn't find acpi_wmi device\n");
 -		return (EINVAL);
 -	}
 +	sc->wmi_dev = device_get_parent(dev);
  	if (!ACPI_WMI_PROVIDES_GUID_STRING(sc->wmi_dev,
  	    ACPI_HP_WMI_BIOS_GUID)) {
  		device_printf(dev,
 
 Modified: stable/8/sys/dev/acpi_support/acpi_wmi.c
 ==============================================================================
 --- stable/8/sys/dev/acpi_support/acpi_wmi.c	Sat Sep 18 00:58:44 2010	(r212809)
 +++ stable/8/sys/dev/acpi_support/acpi_wmi.c	Sat Sep 18 07:16:38 2010	(r212810)
 @@ -173,6 +173,10 @@ static device_method_t acpi_wmi_methods[
  	DEVMETHOD(device_attach, acpi_wmi_attach),
  	DEVMETHOD(device_detach, acpi_wmi_detach),
  
 +	/* bus interface */
 +	DEVMETHOD(bus_add_child,	bus_generic_add_child),
 +	DEVMETHOD(bus_print_child,	bus_generic_print_child),
 +
  	/* acpi_wmi interface */
  	DEVMETHOD(acpi_wmi_provides_guid_string,
  		    acpi_wmi_provides_guid_string_method),
 @@ -269,6 +273,11 @@ acpi_wmi_attach(device_t dev)
  	}
  	ACPI_SERIAL_END(acpi_wmi);
  
 +	if (ret == 0) {
 +		bus_generic_probe(dev);
 +		ret = bus_generic_attach(dev);
 +	}
 +
  	return (ret);
  }
  
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
>Unformatted:
