From nobody@FreeBSD.org  Mon Jan  9 08:55:43 2012
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 7974A1065675
	for <freebsd-gnats-submit@FreeBSD.org>; Mon,  9 Jan 2012 08:55:43 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22])
	by mx1.freebsd.org (Postfix) with ESMTP id 685CA8FC20
	for <freebsd-gnats-submit@FreeBSD.org>; Mon,  9 Jan 2012 08:55:43 +0000 (UTC)
Received: from red.freebsd.org (localhost [127.0.0.1])
	by red.freebsd.org (8.14.4/8.14.4) with ESMTP id q098thcb020413
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 9 Jan 2012 08:55:43 GMT
	(envelope-from nobody@red.freebsd.org)
Received: (from nobody@localhost)
	by red.freebsd.org (8.14.4/8.14.4/Submit) id q098thIL020412;
	Mon, 9 Jan 2012 08:55:43 GMT
	(envelope-from nobody)
Message-Id: <201201090855.q098thIL020412@red.freebsd.org>
Date: Mon, 9 Jan 2012 08:55:43 GMT
From: Kevin McAleavey <kevin.mcaleavey@knosproject.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: Python incompatibility on ports: deskutils/calibre
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         163948
>Category:       ports
>Synopsis:       Python incompatibility on ports: deskutils/calibre
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-ports-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jan 09 09:00:27 UTC 2012
>Closed-Date:    Fri Feb 17 20:11:47 UTC 2012
>Last-Modified:  Fri Feb 17 20:11:47 UTC 2012
>Originator:     Kevin McAleavey
>Release:        9.0-RC3, but *any*
>Organization:
KNOS Project
>Environment:
Not required here
>Description:
Calibre uses Python 2.7. However, many ports/packages are now using Python 3.x. Calibre is not compatible with 3.x versions of python, and when packages/ports are added which use Python 3, the default scripts in calibre want to use python 3.2 (currently) which are hopelessly incompatible with code written for 2.7 as is calibre and likely others as well. Calibre is broken when 3.x version of python is in the environment.


>How-To-Repeat:
Install anything which adds Python 3.2 such as /graphics/blender and calibre no longer loads with dyntax errors in python 3.2.
>Fix:
Spoke to Kovid Goyal, developer of calibre and he *insists* that his /usr/bin/python scripts all have "#!/usr/bin/env python2" in the scripts that he generates. In BSD however, each script is marked with "#!/usr/bin/env python" instead, which by default will call 3.2 and break.

Obviously "python2" was modified for BSD since "python2" will not call the 2.7 python which is shipped with this port/package. Kovid suggests the following:

calibre uses #!/usr/bin/env python2
It has for a long time. How did you get a version that uses bare python? I'm afraid I don't maintain the BSD calibre packages, you should contact Rusty. I will say that having a python2 symlink pointing to the latest python2 binary is good practice and should be encouraged. See http://www.python.org/dev/peps/pep-0394/

Attempted to edit the offending calls, and "python2" fails, however "python2.7" *works* and calls properly where that is in the header. Since python2.7 is shipped with the port/package, HIGHLY recommend modifying those files to call python2.7 in the header so long as PY27 is shipped WITH the port/package.

Lovid has *NO* intentions of supporting PY3.x in the near future, so this would be a long-term solution for this port.



>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->freebsd-ports-bugs 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Tue Jan 10 00:09:41 UTC 2012 
Responsible-Changed-Why:  
ports PR. 

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

From: Rusty Nejdl <rnejdl@ringofsaturn.com>
To: <bug-followup@freebsd.org>, <kevin.mcaleavey@knosproject.com>
Cc:  
Subject: Re: ports/163948: Python incompatibility on ports: deskutils/calibre
Date: Tue, 07 Feb 2012 02:35:08 -0600

 Kevin,
 
 Thanks for the heads up.  Yes indeed I had to switch out the call to 
 python2 as that is incompatible with FreeBSD.  I only have python 2.7 
 installed and do indeed see that I have "python2.7" available so this is 
 an easy fix.  I am submitting an update anyways for the latest calibre 
 which includes 2 patches we submitted upstream and I will include this 
 fix there.
 
 Sincerely,
 Rusty Nejdl

From: Rusty Nejdl <rnejdl@ringofsaturn.com>
To: <bug-followup@freebsd.org>, <kevin.mcaleavey@knosproject.com>
Cc:  
Subject: Re: ports/163948: Python incompatibility on ports: deskutils/calibre
Date: Tue, 07 Feb 2012 03:39:20 -0600

 --=_78dda784d221cdc06ad170d4fe3645dd
 Content-Transfer-Encoding: 7bit
 Content-Type: text/plain; charset=UTF-8;
  format=flowed
 
 (I couldn't sleep.)
 
 Here's the fix and I'll submit a PR to have this updated.
 
 Rusty Nejdl
 --=_78dda784d221cdc06ad170d4fe3645dd
 Content-Transfer-Encoding: base64
 Content-Type: application/octet-stream;
  name=patch-calibre-0.8.38
 Content-Disposition: attachment;
  filename=patch-calibre-0.8.38
 
 ZGlmZiAtcnVOIGNhbGlicmUvTWFrZWZpbGUgY2FsaWJyZS5uZXcvTWFrZWZpbGUKLS0tIGNhbGli
 cmUvTWFrZWZpbGUJMjAxMi0wMi0wNCAxOTowOTo0OS4wMDAwMDAwMDAgLTA2MDAKKysrIGNhbGli
 cmUubmV3L01ha2VmaWxlCTIwMTItMDItMDcgMDM6MzE6MzQuMDAwMDAwMDAwIC0wNjAwCkBAIC02
 LDcgKzYsNyBAQAogIwogCiBQT1JUTkFNRT0JY2FsaWJyZQotUE9SVFZFUlNJT049CTAuOC4zNwor
 UE9SVFZFUlNJT049CTAuOC4zOAogQ0FURUdPUklFUz0JZGVza3V0aWxzIHB5dGhvbgogTUFTVEVS
 X1NJVEVTPQlTRi8ke1BPUlROQU1FfS8ke1BPUlRWRVJTSU9OfS8KIApkaWZmIC1ydU4gY2FsaWJy
 ZS9kaXN0aW5mbyBjYWxpYnJlLm5ldy9kaXN0aW5mbwotLS0gY2FsaWJyZS9kaXN0aW5mbwkyMDEy
 LTAyLTA0IDE5OjA5OjQ5LjAwMDAwMDAwMCAtMDYwMAorKysgY2FsaWJyZS5uZXcvZGlzdGluZm8J
 MjAxMi0wMi0wNyAwMzozMjo1NS4wMDAwMDAwMDAgLTA2MDAKQEAgLTEsMiArMSwyIEBACi1TSEEy
 NTYgKGNhbGlicmUtMC44LjM3LnRhci54eikgPSBlZWRkZTgxMjRmMGU2ODhkODI2ZGUwMDEzZGFi
 ZjJmMTZmZjVmYTA2MjFkZjg5ZjA4OTdmZDM4NDhiYzhkNTlkCi1TSVpFIChjYWxpYnJlLTAuOC4z
 Ny50YXIueHopID0gMjM2MTQ3NDAKK1NIQTI1NiAoY2FsaWJyZS0wLjguMzgudGFyLnh6KSA9IDYz
 MTc2ZGM1Y2IxNGZiMmY1YTJjNDUxOTY5MDRiOTc4ODEwNmQ2YjBjNmQ5OTc2ZDQ1YjRhN2ZlYzEw
 ZTNiOTkKK1NJWkUgKGNhbGlicmUtMC44LjM4LnRhci54eikgPSAyMzY4MDkxNgpkaWZmIC1ydU4g
 Y2FsaWJyZS9maWxlcy9wYXRjaC1zZXR1cF9pbnN0YWxsLnB5IGNhbGlicmUubmV3L2ZpbGVzL3Bh
 dGNoLXNldHVwX2luc3RhbGwucHkKLS0tIGNhbGlicmUvZmlsZXMvcGF0Y2gtc2V0dXBfaW5zdGFs
 bC5weQkyMDExLTA2LTE5IDEzOjA4OjA5LjAwMDAwMDAwMCAtMDUwMAorKysgY2FsaWJyZS5uZXcv
 ZmlsZXMvcGF0Y2gtc2V0dXBfaW5zdGFsbC5weQkyMDEyLTAyLTA3IDAzOjMxOjQ2LjAwMDAwMDAw
 MCAtMDYwMApAQCAtNSw3ICs1LDcgQEAKICAKICBIRUFERVIgPSAnJydcCiAtIyEvdXNyL2Jpbi9l
 bnYgcHl0aG9uMgotKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorKyMhL3Vzci9iaW4vZW52IHB5dGhv
 bjI3CiAgCiAgIiIiCiAgVGhpcyBpcyB0aGUgc3RhbmRhcmQgcnVuc2NyaXB0IGZvciBhbGwgb2Yg
 Y2FsaWJyZSdzIHRvb2xzLgpkaWZmIC1ydU4gY2FsaWJyZS9maWxlcy9wYXRjaC1zcmNfY2FsaWJy
 ZV9kZXZpY2VzX3NjYW5uZXIucHkgY2FsaWJyZS5uZXcvZmlsZXMvcGF0Y2gtc3JjX2NhbGlicmVf
 ZGV2aWNlc19zY2FubmVyLnB5Ci0tLSBjYWxpYnJlL2ZpbGVzL3BhdGNoLXNyY19jYWxpYnJlX2Rl
 dmljZXNfc2Nhbm5lci5weQkyMDEyLTAxLTIxIDE1OjE5OjM4LjAwMDAwMDAwMCAtMDYwMAorKysg
 Y2FsaWJyZS5uZXcvZmlsZXMvcGF0Y2gtc3JjX2NhbGlicmVfZGV2aWNlc19zY2FubmVyLnB5CTE5
 NjktMTItMzEgMTg6MDA6MDAuMDAwMDAwMDAwIC0wNjAwCkBAIC0xLDkzICswLDAgQEAKLS0tLSBz
 cmMvY2FsaWJyZS9kZXZpY2VzL3NjYW5uZXIucHkub3JpZwkyMDExLTExLTExIDIwOjIyOjM0LjAw
 MDAwMDAwMCAtMDgwMAotKysrIHNyYy9jYWxpYnJlL2RldmljZXMvc2Nhbm5lci5weQkyMDExLTEy
 LTMwIDE2OjMyOjMyLjAwMDAwMDAwMCAtMDgwMAotQEAgLTgsNyArOCw3IEBACi0gaW1wb3J0IHN5
 cywgb3MsIHJlCi0gZnJvbSB0aHJlYWRpbmcgaW1wb3J0IFJMb2NrCi0gCi0tZnJvbSBjYWxpYnJl
 LmNvbnN0YW50cyBpbXBvcnQgaXN3aW5kb3dzLCBpc29zeCwgcGx1Z2lucywgaXNsaW51eAotK2Zy
 b20gY2FsaWJyZS5jb25zdGFudHMgaW1wb3J0IGlzd2luZG93cywgaXNvc3gsIHBsdWdpbnMsIGlz
 bGludXgsIGlzZnJlZWJzZAotIAotIG9zeF9zY2FubmVyID0gd2luX3NjYW5uZXIgPSBsaW51eF9z
 Y2FubmVyID0gTm9uZQotIAotQEAgLTE1NSwxNyArMTU1LDgwIEBACi0gICAgICAgICAgICAgYW5z
 LmFkZCh0dXBsZShkZXYpKQotICAgICAgICAgcmV0dXJuIGFucwotIAotK2NsYXNzIEZyZWVCU0RT
 Y2FubmVyKG9iamVjdCk6Ci0rCi0rICAgIGRlZiBfX2NhbGxfXyhzZWxmKToKLSsgICAgICAgIGFu
 cyA9IHNldChbXSkKLSsgICAgICAgIGltcG9ydCBkYnVzCi0rICAgICAgICBkZXZzID0gW10KLSsK
 LSsgICAgICAgIHRyeToKLSsgICAgICAgICAgIGJ1cyA9IGRidXMuU3lzdGVtQnVzKCkKLSsgICAg
 ICAgICAgIG1hbmFnZXIgPSBkYnVzLkludGVyZmFjZShidXMuZ2V0X29iamVjdCgnb3JnLmZyZWVk
 ZXNrdG9wLkhhbCcsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICcvb3JnL2ZyZWVkZXNrdG9w
 L0hhbC9NYW5hZ2VyJyksICdvcmcuZnJlZWRlc2t0b3AuSGFsLk1hbmFnZXInKQotKyAgICAgICAg
 ICAgcGF0aHMgPSBtYW5hZ2VyLkZpbmREZXZpY2VTdHJpbmdNYXRjaCgnZnJlZWJzZC5kcml2ZXIn
 LCdkYScpCi0rICAgICAgICAgICBmb3IgcGF0aCBpbiBwYXRoczoKLSsgICAgICAgICAgICAgIG9i
 aiA9IGJ1cy5nZXRfb2JqZWN0KCdvcmcuZnJlZWRlc2t0b3AuSGFsJywgcGF0aCkKLSsgICAgICAg
 ICAgICAgIG9iamlmID0gZGJ1cy5JbnRlcmZhY2Uob2JqLCAnb3JnLmZyZWVkZXNrdG9wLkhhbC5E
 ZXZpY2UnKQotKyAgICAgICAgICAgICAgZGV2aWYgPSBvYmppZgotKyAgICAgICAgICAgICAgcGFy
 ZW50ZHJpdmVyID0gTm9uZQotKyAgICAgICAgICAgICAgd2hpbGUgcGFyZW50ZHJpdmVyICE9ICd1
 bWFzcyc6Ci0rICAgICAgICAgICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgICAgICAgICBvYmog
 PSBidXMuZ2V0X29iamVjdCgnb3JnLmZyZWVkZXNrdG9wLkhhbCcsCi0rICAgICAgICAgICAgICAg
 ICAgICAgICAgICBvYmppZi5HZXRQcm9wZXJ0eSgnaW5mby5wYXJlbnQnKSkKLSsgICAgICAgICAg
 ICAgICAgICAgIG9iamlmID0gZGJ1cy5JbnRlcmZhY2Uob2JqLCAnb3JnLmZyZWVkZXNrdG9wLkhh
 bC5EZXZpY2UnKQotKyAgICAgICAgICAgICAgICAgICAgdHJ5OgotKyAgICAgICAgICAgICAgICAg
 ICAgICAgcGFyZW50ZHJpdmVyID0gb2JqaWYuR2V0UHJvcGVydHkoJ2ZyZWVic2QuZHJpdmVyJykK
 LSsgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBkYnVzLmV4Y2VwdGlvbnMuREJ1c0V4Y2VwdGlv
 biwgZToKLSsgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0rICAgICAgICAgICAgICAg
 ICBleGNlcHQgZGJ1cy5leGNlcHRpb25zLkRCdXNFeGNlcHRpb24sIGU6Ci0rICAgICAgICAgICAg
 ICAgICAgICBicmVhawotKyAgICAgICAgICAgICAgaWYgcGFyZW50ZHJpdmVyICE9ICd1bWFzcyc6
 Ci0rICAgICAgICAgICAgICAgICAgY29udGludWUKLSsgICAgICAgICAgICAgIGRldiA9IFtdCi0r
 ICAgICAgICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgICAgICBkZXYuYXBwZW5kKG9iamlmLkdl
 dFByb3BlcnR5KCd1c2IudmVuZG9yX2lkJykpCi0rICAgICAgICAgICAgICAgICBkZXYuYXBwZW5k
 KG9iamlmLkdldFByb3BlcnR5KCd1c2IucHJvZHVjdF9pZCcpKQotKyAgICAgICAgICAgICAgICAg
 ZGV2LmFwcGVuZChvYmppZi5HZXRQcm9wZXJ0eSgndXNiLmRldmljZV9yZXZpc2lvbl9iY2QnKSkK
 LSsgICAgICAgICAgICAgIGV4Y2VwdCBkYnVzLmV4Y2VwdGlvbnMuREJ1c0V4Y2VwdGlvbiwgZToK
 LSsgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0rICAgICAgICAgICAgICB0cnk6Ci0rICAgICAg
 ICAgICAgICAgICBkZXYuYXBwZW5kKG9iamlmLkdldFByb3BlcnR5KCdpbmZvLnZlbmRvcicpKQot
 KyAgICAgICAgICAgICAgZXhjZXB0OgotKyAgICAgICAgICAgICAgICAgZGV2LmFwcGVuZCgnJykK
 LSsgICAgICAgICAgICAgIHRyeToKLSsgICAgICAgICAgICAgICAgIGRldi5hcHBlbmQob2JqaWYu
 R2V0UHJvcGVydHkoJ2luZm8ucHJvZHVjdCcpKQotKyAgICAgICAgICAgICAgZXhjZXB0OgotKyAg
 ICAgICAgICAgICAgICAgZGV2LmFwcGVuZCgnJykKLSsgICAgICAgICAgICAgIHRyeToKLSsgICAg
 ICAgICAgICAgICAgIGRldi5hcHBlbmQob2JqaWYuR2V0UHJvcGVydHkoJ3VzYi5zZXJpYWwnKSkK
 LSsgICAgICAgICAgICAgIGV4Y2VwdDoKLSsgICAgICAgICAgICAgICAgIGRldi5hcHBlbmQoJycp
 Ci0rICAgICAgICAgICAgICBkZXYuYXBwZW5kKHBhdGgpCi0rICAgICAgICAgICAgICBhbnMuYWRk
 KHR1cGxlKGRldikpCi0rICAgICAgICBleGNlcHQgZGJ1cy5leGNlcHRpb25zLkRCdXNFeGNlcHRp
 b24sIGU6Ci0rICAgICAgICAgICBwcmludCA+PnN5cy5zdGRlcnIsICJFeGVjdXRpb24gZmFpbGVk
 OiIsIGUKLSsgICAgICAgIHJldHVybiBhbnMKLSsKLSsKLSsKLSBsaW51eF9zY2FubmVyID0gTm9u
 ZQotIAotIGlmIGlzbGludXg6Ci0gICAgIGxpbnV4X3NjYW5uZXIgPSBMaW51eFNjYW5uZXIoKQot
 IAotK2ZyZWVic2Rfc2Nhbm5lciA9IE5vbmUKLSsKLStpZiBpc2ZyZWVic2Q6Ci0rICAgIGZyZWVi
 c2Rfc2Nhbm5lciA9IEZyZWVCU0RTY2FubmVyKCkKLSsKLSsKLSBjbGFzcyBEZXZpY2VTY2FubmVy
 KG9iamVjdCk6Ci0gCi0gICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncyk6Ci0gICAgICAgICBp
 ZiBpc29zeCBhbmQgb3N4X3NjYW5uZXIgaXMgTm9uZToKLSAgICAgICAgICAgICByYWlzZSBSdW50
 aW1lRXJyb3IoJ1RoZSBQeXRob24gZXh0ZW5zaW9uIHVzYm9ic2VydmVyIG11c3QgYmUgYXZhaWxh
 YmxlIG9uIE9TIFguJykKLS0gICAgICAgIHNlbGYuc2Nhbm5lciA9IHdpbl9zY2FubmVyIGlmIGlz
 d2luZG93cyBlbHNlIG9zeF9zY2FubmVyIGlmIGlzb3N4IGVsc2UgbGludXhfc2Nhbm5lcgotKyAg
 ICAgICAgc2VsZi5zY2FubmVyID0gd2luX3NjYW5uZXIgaWYgaXN3aW5kb3dzIGVsc2Ugb3N4X3Nj
 YW5uZXIgaWYgaXNvc3ggZWxzZSBmcmVlYnNkX3NjYW5uZXIgaWYgaXNmcmVlYnNkIGVsc2UgbGlu
 dXhfc2Nhbm5lcgotICAgICAgICAgc2VsZi5kZXZpY2VzID0gW10KLSAKLSAgICAgZGVmIHNjYW4o
 c2VsZik6CmRpZmYgLXJ1TiBjYWxpYnJlL2ZpbGVzL3BhdGNoLXNyY19jYWxpYnJlX2RldmljZXNf
 dXNibXNfZGV2aWNlLnB5IGNhbGlicmUubmV3L2ZpbGVzL3BhdGNoLXNyY19jYWxpYnJlX2Rldmlj
 ZXNfdXNibXNfZGV2aWNlLnB5Ci0tLSBjYWxpYnJlL2ZpbGVzL3BhdGNoLXNyY19jYWxpYnJlX2Rl
 dmljZXNfdXNibXNfZGV2aWNlLnB5CTIwMTItMDEtMjEgMTM6NDg6MDYuMDAwMDAwMDAwIC0wNjAw
 CisrKyBjYWxpYnJlLm5ldy9maWxlcy9wYXRjaC1zcmNfY2FsaWJyZV9kZXZpY2VzX3VzYm1zX2Rl
 dmljZS5weQkxOTY5LTEyLTMxIDE4OjAwOjAwLjAwMDAwMDAwMCAtMDYwMApAQCAtMSwyOTkgKzAs
 MCBAQAotLS0tIHNyYy9jYWxpYnJlL2RldmljZXMvdXNibXMvZGV2aWNlLnB5Lm9yaWcJMjAxMS0x
 Mi0yOSAyMDowMDozOC4wMDAwMDAwMDAgLTA4MDAKLSsrKyBzcmMvY2FsaWJyZS9kZXZpY2VzL3Vz
 Ym1zL2RldmljZS5weQkyMDEyLTAxLTAxIDE0OjA5OjAwLjAwMDAwMDAwMCAtMDgwMAotQEAgLTY5
 NywxOSArNjk3LDIxIEBACi0gICAgICAgICAgICAgc2VsZi5fY2FyZF9hX3ByZWZpeCA9IHNlbGYu
 X2NhcmRfYl9wcmVmaXgKLSAgICAgICAgICAgICBzZWxmLl9jYXJkX2JfcHJlZml4ID0gTm9uZQot
 IAotKwotICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 LS0tLS0tCi0gIwotICMgIG9wZW4gZm9yIEZyZWVCU0QKLS0jICAgZmluZCB0aGUgZGV2aWNlIG5v
 ZGUgb3Igbm9kZXMgdGhhdCBtYXRjaCB0aGUgUy9OIHdlIGFscmVhZHkgaGF2ZSBmcm9tIHRoZSBz
 Y2FubmVyCi0tIyAgIGFuZCBhdHRlbXB0IHRvIG1vdW50IGVhY2ggb25lCi0tIyAgICAgICAxLiAg
 Z2V0IGxpc3Qgb2YgZGlzayBkZXZpY2VzIGZyb20gc3lzY3RsCi0tIyAgICAgICAyLiAgY29tcGFy
 ZSB0aGF0IGxpc3Qgd2l0aCB0aGUgb25lIGZyb20gY2FtY29udHJvbAotLSMgICAgICAgMy4gIGFu
 ZCBzZWUgaWYgaXQgaGFzIGEgbWF0Y2hpbmcgcy9uCi0tIyAgICAgICA2LiAgZmluZCBhbnkgcGFy
 dGl0aW9ucy9zbGljZXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggbm9kZQotLSMgICAgICAgNy4gIGF0
 dGVtcHQgdG8gbW91bnQsIHVzaW5nIGNhbGlicmUtbW91bnQtaGVscGVyLCBlYWNoIG9uZQotLSMg
 ICAgICAgOC4gIHdoZW4gZmluaXNoZWQsIHdlIGhhdmUgYSBsaXN0IG9mIG1vdW50IHBvaW50cyBh
 bmQgYXNzb2NpYXRlZCBkZXZpY2Ugbm9kZXMKLSsjICAgICAgZmluZCB0aGUgZGV2aWNlIG5vZGUg
 b3Igbm9kZXMgdGhhdCBtYXRjaCB0aGUgUy9OIHdlIGFscmVhZHkgaGF2ZSBmcm9tIHRoZSBzY2Fu
 bmVyCi0rIyAgICAgIGFuZCBhdHRlbXB0IHRvIG1vdW50IGVhY2ggb25lCi0rIyAgICAgICAgICAg
 ICAgMS4gIGdldCBsaXN0IG9mIGRldmljZXMgaW4gL2RldiB3aXRoIG1hdGNoaW5nIHMvbiBldGMu
 Ci0rIyAgICAgICAgICAgICAgMi4gIGdldCBsaXN0IG9mIHZvbHVtZXMgYXNzb2NpYXRlZCB3aXRo
 IGVhY2gKLSsjICAgICAgICAgICAgICAzLiAgYXR0ZW1wdCB0byBtb3VudCBlYWNoIG9uZSB1c2lu
 ZyBIYWwKLSsjICAgICAgICAgICAgICA0LiAgd2hlbiBmaW5pc2hlZCwgd2UgaGF2ZSBhIGxpc3Qg
 b2YgbW91bnQgcG9pbnRzIGFuZCBhc3NvY2lhdGVkIGRidXMgbm9kZXMKLSAjCi0gICAgIGRlZiBv
 cGVuX2ZyZWVic2Qoc2VsZik6Ci0rICAgICAgICBpbXBvcnQgZGJ1cwotKyAgICAgICAgIyBUaGVy
 ZSBzaG91bGQgYmUgc29tZSB3YXkgdG8gYWNjZXNzIHRoZSAtdiBhcmcuLi4KLSsgICAgICAgIHZl
 cmJvc2UgPSBGYWxzZQotIAotICAgICAgICAgIyB0aGlzIGdpdmVzIHVzIGFjY2VzcyB0byB0aGUg
 Uy9OLCBldGMuIG9mIHRoZSByZWFkZXIgdGhhdCB0aGUgc2Nhbm5lciBoYXMgZm91bmQKLSAgICAg
 ICAgICMgYW5kIHRoZSBtYXRjaCByb3V0aW5lcyBmb3Igc29tZSBvZiB0aGF0IGRhdGEsIGxpa2Ug
 cy9uLCB2ZW5kb3IgSUQsIGV0Yy4KLUBAIC03MTgsMTI5ICs3MjAsMTQ5IEBACi0gICAgICAgICBp
 ZiBub3QgZC5zZXJpYWw6Ci0gICAgICAgICAgICAgcmFpc2UgRGV2aWNlRXJyb3IoIkRldmljZSBo
 YXMgbm8gUy9OLiAgQ2FuJ3QgY29udGludWUiKQotICAgICAgICAgICAgIHJldHVybiBGYWxzZQot
 LQotLSAgICAgICAgZGV2cz17fQotLSAgICAgICAgZGk9MAotLSAgICAgICAgbmRldnM9NCAgICAg
 IyBudW1iZXIgb2YgcG9zc2libGUgZGV2aWNlcyBwZXIgcmVhZGVyIChtYWluLCBjYXJkYSwgY2Fy
 ZGIsIGxhdW5jaGVyKQotLQotLSAgICAgICAgI2dldCBsaXN0IG9mIGRpc2sgZGV2aWNlcwotLSAg
 ICAgICAgcD1zdWJwcm9jZXNzLlBvcGVuKFsic3lzY3RsIiwgImtlcm4uZGlza3MiXSwgc3Rkb3V0
 PXN1YnByb2Nlc3MuUElQRSkKLS0gICAgICAgIGtkc2tzPXN1YnByb2Nlc3MuUG9wZW4oWyJzZWQi
 LCAicy9rZXJuLmRpc2tzOiAvLyJdLCBzdGRpbj1wLnN0ZG91dCwgc3Rkb3V0PXN1YnByb2Nlc3Mu
 UElQRSkuY29tbXVuaWNhdGUoKVswXQotLSAgICAgICAgcC5zdGRvdXQuY2xvc2UoKQotLSAgICAg
 ICAgI3ByaW50IGtkc2tzCi0tICAgICAgICBmb3IgZHZjIGluIGtkc2tzLnNwbGl0KCk6Ci0tICAg
 ICAgICAgICAgIyBmb3IgZWFjaCBvbmUgdGhhdCdzIGFsc28gaW4gdGhlIGxpc3Qgb2YgY2FtIGRl
 dmljZXMgLi4uCi0tICAgICAgICAgICAgcD1zdWJwcm9jZXNzLlBvcGVuKFsiY2FtY29udHJvbCIs
 ICJkZXZsaXN0Il0sIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCi0tICAgICAgICAgICAgZGV2bWF0
 Y2g9c3VicHJvY2Vzcy5Qb3BlbihbImdyZXAiLCBkdmNdLCBzdGRpbj1wLnN0ZG91dCwgc3Rkb3V0
 PXN1YnByb2Nlc3MuUElQRSkuY29tbXVuaWNhdGUoKVswXQotLSAgICAgICAgICAgIHAuc3Rkb3V0
 LmNsb3NlKCkKLS0gICAgICAgICAgICBpZiBkZXZtYXRjaDoKLS0gICAgICAgICAgICAgICAgI3By
 aW50ICJDaGVja2luZyAiLCBkZXZtYXRjaAotLSAgICAgICAgICAgICAgICAjIC4uLiBzZWUgaWYg
 d2UgY2FuIGdldCBhIFMvTiBmcm9tIHRoZSBhY3R1YWwgZGV2aWNlIG5vZGUKLS0gICAgICAgICAg
 ICAgICAgc249c3VicHJvY2Vzcy5Qb3BlbihbImNhbWNvbnRyb2wiLCAiaW5xdWlyeSIsIGR2Yywg
 Ii1TIl0sIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpLmNvbW11bmljYXRlKClbMF0KLS0gICAgICAg
 ICAgICAgICAgc249c25bMDotMV0gICAgICAgICAgICAgIyBkcm9wIHRoZSB0cmFpbGluZyBuZXds
 aW5lCi0tICAgICAgICAgICAgICAgICNwcmludCAiUy9OID0gIiwgc24KLS0gICAgICAgICAgICAg
 ICAgaWYgc24gYW5kIGQubWF0Y2hfc2VyaWFsKHNuKToKLS0gICAgICAgICAgICAgICAgICAgICMg
 d2UgaGF2ZSBhIG1hdGNoaW5nIHMvbiwgcmVjb3JkIHRoaXMgZGV2aWNlIG5vZGUKLS0gICAgICAg
 ICAgICAgICAgICAgICNwcmludCAibWF0Y2ggZm91bmQ6ICIsIGR2YwotLSAgICAgICAgICAgICAg
 ICAgICAgZGV2c1tkaV09ZHZjCi0tICAgICAgICAgICAgICAgICAgICBkaSArPSAxCi0tCi0tICAg
 ICAgICAjIHNvcnQgdGhlIGxpc3Qgb2YgZGV2aWNlcwotLSAgICAgICAgZm9yIGkgaW4gcmFuZ2Uo
 MSxuZGV2cysxKToKLS0gICAgICAgICAgICBmb3IgaiBpbiByZXZlcnNlZChyYW5nZSgxLGkpKToK
 LS0gICAgICAgICAgICAgICAgaWYgZGV2c1tqLTFdID4gZGV2c1tqXToKLS0gICAgICAgICAgICAg
 ICAgICAgIHg9ZGV2c1tqLTFdCi0tICAgICAgICAgICAgICAgICAgICBkZXZzW2otMV09ZGV2c1tq
 XQotLSAgICAgICAgICAgICAgICAgICAgZGV2c1tqXT14Ci0tICAgICAgICAjcHJpbnQgZGV2cwot
 LQotLSAgICAgICAgIyBub3cgd2UgbmVlZCB0byBzZWUgaWYgYW55IG9mIHRoZXNlIGhhdmUgc2xp
 Y2VzL3BhcnRpdGlvbnMKLSsgICAgICAgIAotKyAgICAgICAgdm9scz1bXQotKyAgICAgICAgCi0r
 ICAgICAgICBidXMgPSBkYnVzLlN5c3RlbUJ1cygpCi0rICAgICAgICBtYW5hZ2VyID0gZGJ1cy5J
 bnRlcmZhY2UoYnVzLmdldF9vYmplY3QoJ29yZy5mcmVlZGVza3RvcC5IYWwnLAotKyAgICAgICAg
 ICAgICAgICAgICAgICAnL29yZy9mcmVlZGVza3RvcC9IYWwvTWFuYWdlcicpLCAnb3JnLmZyZWVk
 ZXNrdG9wLkhhbC5NYW5hZ2VyJykKLSsgICAgICAgIHBhdGhzID0gbWFuYWdlci5GaW5kRGV2aWNl
 U3RyaW5nTWF0Y2goJ3VzYi5zZXJpYWwnLGQuc2VyaWFsKQotKyAgICAgICAgZm9yIHBhdGggaW4g
 cGF0aHM6Ci0rICAgICAgICAgICAgb2JqaWYgPSBkYnVzLkludGVyZmFjZShidXMuZ2V0X29iamVj
 dCgnb3JnLmZyZWVkZXNrdG9wLkhhbCcsIHBhdGgpLCAnb3JnLmZyZWVkZXNrdG9wLkhhbC5EZXZp
 Y2UnKQotKyAgICAgICAgICAgICMgRXh0cmEgcGFyYW5vaWEuLi4KLSsgICAgICAgICAgICB0cnk6
 Ci0rICAgICAgICAgICAgICAgIGlmIGQuaWRWZW5kb3IgPT0gb2JqaWYuR2V0UHJvcGVydHkoJ3Vz
 Yi52ZW5kb3JfaWQnKSBhbmQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgIGQuaWRQcm9kdWN0
 ID09IG9iamlmLkdldFByb3BlcnR5KCd1c2IucHJvZHVjdF9pZCcpIGFuZCBcCi0rICAgICAgICAg
 ICAgICAgICAgICAgICAgZC5tYW51ZmFjdHVyZXIgPT0gb2JqaWYuR2V0UHJvcGVydHkoJ3VzYi52
 ZW5kb3InKSBhbmQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgIGQucHJvZHVjdCA9PSBvYmpp
 Zi5HZXRQcm9wZXJ0eSgndXNiLnByb2R1Y3QnKSBhbmQgXAotKyAgICAgICAgICAgICAgICAgICAg
 ICAgIGQuc2VyaWFsID09IG9iamlmLkdldFByb3BlcnR5KCd1c2Iuc2VyaWFsJyk6Ci0rICAgICAg
 ICAgICAgICAgICAgICBkcGF0aHMgPSBtYW5hZ2VyLkZpbmREZXZpY2VTdHJpbmdNYXRjaCgnc3Rv
 cmFnZS5vcmlnaW5hdGluZ19kZXZpY2UnLCBwYXRoKQotKyAgICAgICAgICAgICAgICAgICAgZm9y
 IGRwYXRoIGluIGRwYXRoczoKLSsgICAgICAgICAgICAgICAgICAgICAgICBkZXZpZiA9IGRidXMu
 SW50ZXJmYWNlKGJ1cy5nZXRfb2JqZWN0KCdvcmcuZnJlZWRlc2t0b3AuSGFsJywgZHBhdGgpLCAn
 b3JnLmZyZWVkZXNrdG9wLkhhbC5EZXZpY2UnKQotKyAgICAgICAgICAgICAgICAgICAgICAgIHRy
 eToKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnBhdGhzID0gbWFuYWdlci5GaW5kRGV2
 aWNlU3RyaW5nTWF0Y2goJ2Jsb2NrLnN0b3JhZ2VfZGV2aWNlJywgZHBhdGgpCi0rICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgIGZvciB2cGF0aCBpbiB2cGF0aHM6Ci0rICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgdmRldmlmID0gZGJ1cy5JbnRlcmZhY2UoYnVzLmdldF9vYmplY3QoJ29yZy5mcmVlZGVza3Rv
 cC5IYWwnLCB2cGF0aCksICdvcmcuZnJlZWRlc2t0b3AuSGFsLkRldmljZScpCi0rICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IHZkZXZpZi5HZXRQcm9wZXJ0eSgnYmxv
 Y2suaXNfdm9sdW1lJyk6Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
 IGNvbnRpbnVlCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdmRldmlm
 LkdldFByb3BlcnR5KCd2b2x1bWUuZnN1c2FnZScpICE9ICdmaWxlc3lzdGVtJzoKLSsgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSsgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICB2b2xpZiA9IGRidXMuSW50ZXJmYWNlKGJ1cy5nZXRfb2Jq
 ZWN0KCdvcmcuZnJlZWRlc2t0b3AuSGFsJywgdnBhdGgpLCAnb3JnLmZyZWVkZXNrdG9wLkhhbC5E
 ZXZpY2UuVm9sdW1lJykKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZGV2
 aWYgPSBkYnVzLkludGVyZmFjZShidXMuZ2V0X29iamVjdCgnb3JnLmZyZWVkZXNrdG9wLkhhbCcs
 IHZkZXZpZi5HZXRQcm9wZXJ0eSgnaW5mby5wYXJlbnQnKSksICdvcmcuZnJlZWRlc2t0b3AuSGFs
 LkRldmljZScpCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9sID0geydu
 b2RlJzogcGRldmlmLkdldFByb3BlcnR5KCdibG9jay5kZXZpY2UnKSwKLSsgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXYnOiB2ZGV2aWYsCi0rICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndm9sJzogdm9saWYsCi0rICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGFiZWwnOiB2ZGV2aWYuR2V0
 UHJvcGVydHkoJ3ZvbHVtZS5sYWJlbCcpfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgIHZvbHMuYXBwZW5kKHZvbCkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
 IGV4Y2VwdCBkYnVzLmV4Y2VwdGlvbnMuREJ1c0V4Y2VwdGlvbiwgZToKLSsgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICBwcmludCBlCi0rICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgY29udGludWUKLSsgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQgZGJ1
 cy5leGNlcHRpb25zLkRCdXNFeGNlcHRpb24sIGU6Ci0rICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgIHByaW50IGUKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSsgICAg
 ICAgICAgICBleGNlcHQgZGJ1cy5leGNlcHRpb25zLkRCdXNFeGNlcHRpb24sIGU6Ci0rICAgICAg
 ICAgICAgICAgIGNvbnRpbnVlCi0rCi0rICAgICAgICBkZWYgb2NtcCh4LHkpOgotKyAgICAgICAg
 ICAgIGlmIHhbJ25vZGUnXSA8IHlbJ25vZGUnXToKLSsgICAgICAgICAgICAgICAgcmV0dXJuIC0x
 Ci0rICAgICAgICAgICAgaWYgeFsnbm9kZSddID4geVsnbm9kZSddOgotKyAgICAgICAgICAgICAg
 ICByZXR1cm4gMQotKyAgICAgICAgICAgIHJldHVybiAwCi0rCi0rICAgICAgICB2b2xzLnNvcnQo
 Y21wPW9jbXApCi0rCi0rICAgICAgICBpZiB2ZXJib3NlOgotKyAgICAgICAgICAgIHByaW50ICJG
 QlNEOgkiLCB2b2xzCi0rICAgICAgICAKLSAgICAgICAgIG10ZD0wCi0tICAgICAgICBsYWJlbD0i
 UkVBREVSIiAgICAgICMgY291bGQgdXNlIHNvbWV0aGluZyBtb3JlIHVuaXF1ZSwgbGlrZSBTL04g
 b3IgcHJvZHVjdElELi4uCi0tICAgICAgICBjbWQgPSAnL3Vzci9sb2NhbC9iaW4vY2FsaWJyZS1t
 b3VudC1oZWxwZXInCi0tICAgICAgICBjbWQgPSBbY21kLCAnbW91bnQnXQotLSAgICAgICAgZm9y
 IGkgaW4gcmFuZ2UoMCxuZGV2cyk6Ci0tICAgICAgICAgICAgY21kMj0ibHMgL2Rldi8iK2RldnNb
 aV0rIioiCi0tICAgICAgICAgICAgcD1zdWJwcm9jZXNzLlBvcGVuKGNtZDIsIHNoZWxsPVRydWUs
 IHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCi0tICAgICAgICAgICAgZGV2c1tpXT1zdWJwcm9jZXNz
 LlBvcGVuKFsiY3V0IiwgIi1kIiwgIi8iLCAiLWYiICIzIl0sIHN0ZGluPXAuc3Rkb3V0LCBzdGRv
 dXQ9c3VicHJvY2Vzcy5QSVBFKS5jb21tdW5pY2F0ZSgpWzBdCi0tICAgICAgICAgICAgcC5zdGRv
 dXQuY2xvc2UoKQotLQotLSAgICAgICAgICAgICMgdHJ5IGFsbCB0aGUgbm9kZXMgdG8gc2VlIHdo
 YXQgd2UgY2FuIG1vdW50Ci0tICAgICAgICAgICAgZm9yIGRldiBpbiBkZXZzW2ldLnNwbGl0KCk6
 Ci0tICAgICAgICAgICAgICAgIG1wPScvbWVkaWEvJytsYWJlbCsnLScrZGV2Ci0tICAgICAgICAg
 ICAgICAgIG1tcCA9IG1wCi0tICAgICAgICAgICAgICAgIGlmIG1tcC5lbmRzd2l0aCgnLycpOgot
 LSAgICAgICAgICAgICAgICAgICAgbW1wID0gbW1wWzotMV0KLS0gICAgICAgICAgICAgICAgI3By
 aW50ICJ0cnlpbmcgIiwgZGV2LCAib24iLCBtcAotLSAgICAgICAgICAgICAgICB0cnk6Ci0tICAg
 ICAgICAgICAgICAgICAgICBwID0gc3VicHJvY2Vzcy5Qb3BlbihjbWQgKyBbIi9kZXYvIitkZXYs
 IG1tcF0pCi0tICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgotLSAgICAgICAgICAgICAg
 ICAgICAgcmFpc2UgRGV2aWNlRXJyb3IoXygnQ291bGQgbm90IGZpbmQgbW91bnQgaGVscGVyOiAl
 cy4nKSVjbWRbMF0pCi0tICAgICAgICAgICAgICAgIHdoaWxlIHAucG9sbCgpIGlzIE5vbmU6Ci0t
 ICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDAuMSkKLS0KLS0gICAgICAgICAgICAgICAg
 aWYgcC5yZXR1cm5jb2RlID09IDA6Ci0tICAgICAgICAgICAgICAgICAgICAjcHJpbnQgIiAgbW91
 bnRlZCIsIGRldgotLSAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAwOgotLSAgICAgICAgICAg
 ICAgICAgICAgICAgIHNlbGYuX21haW5fcHJlZml4ID0gbXAKLS0gICAgICAgICAgICAgICAgICAg
 ICAgICBzZWxmLl9tYWluX2RldiA9ICIvZGV2LyIrZGV2Ci0tICAgICAgICAgICAgICAgICAgICAg
 ICAgI3ByaW50ICJtYWluID0gIiwgc2VsZi5fbWFpbl9kZXYsIHNlbGYuX21haW5fcHJlZml4Ci0t
 ICAgICAgICAgICAgICAgICAgICBpZiBpID09IDE6Ci0tICAgICAgICAgICAgICAgICAgICAgICAg
 c2VsZi5fY2FyZF9hX3ByZWZpeCA9IG1wCi0tICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
 Y2FyZF9hX2RldiA9ICIvZGV2LyIrZGV2Ci0tICAgICAgICAgICAgICAgICAgICAgICAgI3ByaW50
 ICJjYXJkIGEgPSAiLCBzZWxmLl9jYXJkX2FfZGV2LCBzZWxmLl9jYXJkX2FfcHJlZml4Ci0tICAg
 ICAgICAgICAgICAgICAgICBpZiBpID09IDI6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
 Zi5fY2FyZF9iX3ByZWZpeCA9IG1wCi0tICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY2Fy
 ZF9iX2RldiA9ICIvZGV2LyIrZGV2Ci0tICAgICAgICAgICAgICAgICAgICAgICAgI3ByaW50ICJj
 YXJkIGIgPSAiLCBzZWxmLl9jYXJkX2JfZGV2LCBzZWxmLl9jYXJkX2JfcHJlZml4Ci0gCi0tICAg
 ICAgICAgICAgICAgICAgICBtdGQgKz0gMQotLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSsg
 ICAgICAgIGZvciB2b2wgaW4gdm9sczoKLSsgICAgICAgICAgICBtcCA9ICcnCi0rICAgICAgICAg
 ICAgaWYgdm9sWydkZXYnXS5HZXRQcm9wZXJ0eSgndm9sdW1lLmlzX21vdW50ZWQnKToKLSsgICAg
 ICAgICAgICAgICAgbXAgPSB2b2xbJ2RldiddLkdldFByb3BlcnR5KCd2b2x1bWUubW91bnRfcG9p
 bnQnKQotKyAgICAgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgICAgIGlmIHZlcmJvc2U6Ci0r
 ICAgICAgICAgICAgICAgICAgICBwcmludCAiRkJTRDoJdHJ5aW5nICIsIHZvbFsnbGFiZWwnXSwg
 Im9uIiwgJ0NhbGlicmUtJytsYWJlbHNbaV0KLSsgICAgICAgICAgICAgICAgdHJ5OgotKyAgICAg
 ICAgICAgICAgICAgICAgdm9sWyd2b2wnXS5Nb3VudCgnQ2FsaWJyZS0nK3ZvbFsnbGFiZWwnXSwK
 LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9sWydkZXYnXS5HZXRQcm9wZXJ0eSgndm9s
 dW1lLmZzdHlwZScpLCBbXSkKLSsgICAgICAgICAgICAgICAgICAgIGxvb3BzID0gMAotKyAgICAg
 ICAgICAgICAgICAgICAgd2hpbGUgbm90IHZvbFsnZGV2J10uR2V0UHJvcGVydHkoJ3ZvbHVtZS5p
 c19tb3VudGVkJyk6Ci0rICAgICAgICAgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgxKQotKyAg
 ICAgICAgICAgICAgICAgICAgICAgIGxvb3BzICs9IDEKLSsgICAgICAgICAgICAgICAgICAgICAg
 ICBpZiBsb29wcyA+IDEwMDoKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgIkVS
 Uk9SOiBUaW1lb3V0IHdhaXRpbmcgZm9yIG1vdW50IHRvIGNvbXBsZXRlIgotKyAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICBjb250aW51ZQotKyAgICAgICAgICAgICAgICAgICAgbXAgPSB2b2xb
 J2RldiddLkdldFByb3BlcnR5KCd2b2x1bWUubW91bnRfcG9pbnQnKQotKyAgICAgICAgICAgICAg
 ICBleGNlcHQgZGJ1cy5leGNlcHRpb25zLkRCdXNFeGNlcHRpb24sIGU6Ci0rICAgICAgICAgICAg
 ICAgICAgICBwcmludCAiRmFpbGVkIHRvIG1vdW50ICIsIGUKLSsgICAgICAgICAgICAgICAgICAg
 IGNvbnRpbnVlCi0rCi0rICAgICAgICAgICAgIyBNb3VudCBQb2ludCBiZWNvbWVzIE1vdW50IFBh
 dGgKLSsgICAgICAgICAgICBtcCArPSAnLycKLSsKLSsgICAgICAgICAgICBpZiB2ZXJib3NlOgot
 KyAgICAgICAgICAgICAgICBwcmludCAiRkJTRDoJICBtb3VudGVkIiwgdm9sWydsYWJlbCddLCAi
 b24iLCBtcAotKyAgICAgICAgICAgIGlmIG10ZCA9PSAwOgotKyAgICAgICAgICAgICAgICBzZWxm
 Ll9tYWluX3ByZWZpeCA9IG1wCi0rICAgICAgICAgICAgICAgIHNlbGYuX21haW5fdm9sID0gdm9s
 Wyd2b2wnXQotKyAgICAgICAgICAgICAgICBpZiB2ZXJib3NlOgotKyAgICAgICAgICAgICAgICAg
 ICAgcHJpbnQgIkZCU0Q6CW1haW4gPSAiLCBzZWxmLl9tYWluX3ByZWZpeAotKyAgICAgICAgICAg
 IGlmIG10ZCA9PSAxOgotKyAgICAgICAgICAgICAgICBzZWxmLl9jYXJkX2FfcHJlZml4ID0gbXAK
 LSsgICAgICAgICAgICAgICAgc2VsZi5fY2FyZF9hX3ZvbCA9IHZvbFsndm9sJ10KLSsgICAgICAg
 ICAgICAgICAgaWYgdmVyYm9zZToKLSsgICAgICAgICAgICAgICAgICAgIHByaW50ICJGQlNEOglj
 YXJkIGEgPSAiLCBzZWxmLl9jYXJkX2FfcHJlZml4Ci0rICAgICAgICAgICAgaWYgbXRkID09IDI6
 Ci0rICAgICAgICAgICAgICAgIHNlbGYuX2NhcmRfYl9wcmVmaXggPSBtcAotKyAgICAgICAgICAg
 ICAgICBzZWxmLl9jYXJkX2Jfdm9sID0gdm9sWyd2b2wnXQotKyAgICAgICAgICAgICAgICBpZiB2
 ZXJib3NlOgotKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgIkZCU0Q6CWNhcmQgYiA9ICIsIHNl
 bGYuX2NhcmRfYl9wcmVmaXgKLSsgICAgICAgICAgICAgICAgIyBOb3RlIHRoYXQgbXRkIGlzIHVz
 ZWQgYXMgYSBib29sLi4uIG5vdCBpbmNyZW1lbnRpbmcgaXMgZmluZS4KLSsgICAgICAgICAgICAg
 ICAgYnJlYWsKLSsgICAgICAgICAgICBtdGQgKz0gMQotIAotICAgICAgICAgaWYgbXRkID4gMDoK
 LSAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotLSAgICAgICAgZWxzZSA6Ci0tICAgICAgICAgICAg
 cmV0dXJuIEZhbHNlCi0rICAgICAgICByYWlzZSBEZXZpY2VFcnJvcihfKCdVbmFibGUgdG8gbW91
 bnQgdGhlIGRldmljZScpKQotKwotICMKLSAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICMKLS0jICAgdGhpcyBvbmUgaXMgcHJldHR5IHNp
 bXBsZToKLS0jICAgICAgIGp1c3QgdW1vdW50IGVhY2ggb2YgdGhlIHByZXZpb3VzbHkKLS0jICAg
 ICAgIG1vdW50ZWQgZmlsZXN5c3RlbXMsIHVzaW5nIHRoZSBtb3VudCBoZWxwZXIKLSsjICAgIHRo
 aXMgb25lIGlzIHByZXR0eSBzaW1wbGU6Ci0rIyAgICAgICAganVzdCB1bW91bnQgZWFjaCBvZiB0
 aGUgcHJldmlvdXNseQotKyMgICAgICAgIG1vdW50ZWQgZmlsZXN5c3RlbXMsIHVzaW5nIHRoZSBz
 dG9yZWQgdm9sdW1lIG9iamVjdAotICMKLSAgICAgZGVmIGVqZWN0X2ZyZWVic2Qoc2VsZik6Ci0t
 ICAgICAgICBjbWQgPSAnL3Vzci9sb2NhbC9iaW4vY2FsaWJyZS1tb3VudC1oZWxwZXInCi0tICAg
 ICAgICBjbWQgPSBbY21kLCAnZWplY3QnXQotKyAgICAgICAgaW1wb3J0IGRidXMKLSsgICAgICAg
 ICMgVGhlcmUgc2hvdWxkIGJlIHNvbWUgd2F5IHRvIGFjY2VzcyB0aGUgLXYgYXJnLi4uCi0rICAg
 ICAgICB2ZXJib3NlID0gRmFsc2UKLSAKLSAgICAgICAgIGlmIHNlbGYuX21haW5fcHJlZml4Ogot
 LSAgICAgICAgICAgICNwcmludCAidW1vdW50IG1haW46IiwgY21kLCBzZWxmLl9tYWluX2Rldiwg
 c2VsZi5fbWFpbl9wcmVmaXgKLSsgICAgICAgICAgICBpZiB2ZXJib3NlOgotKyAgICAgICAgICAg
 ICAgICBwcmludCAiRkJTRDoJdW1vdW50IG1haW46Iiwgc2VsZi5fbWFpbl9wcmVmaXgKLSAgICAg
 ICAgICAgICB0cnk6Ci0tICAgICAgICAgICAgICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCAr
 IFtzZWxmLl9tYWluX2Rldiwgc2VsZi5fbWFpbl9wcmVmaXhdKQotLSAgICAgICAgICAgIGV4Y2Vw
 dCBPU0Vycm9yOgotLSAgICAgICAgICAgICAgICByYWlzZSBEZXZpY2VFcnJvcigKLS0gICAgICAg
 ICAgICAgICAgXygnQ291bGQgbm90IGZpbmQgbW91bnQgaGVscGVyOiAlcy4nKSVjbWRbMF0pCi0t
 ICAgICAgICAgICAgd2hpbGUgcC5wb2xsKCkgaXMgTm9uZToKLS0gICAgICAgICAgICAgICAgdGlt
 ZS5zbGVlcCgwLjEpCi0rICAgICAgICAgICAgICAgIHNlbGYuX21haW5fdm9sLlVubW91bnQoW10p
 Ci0rICAgICAgICAgICAgZXhjZXB0IGRidXMuZXhjZXB0aW9ucy5EQnVzRXhjZXB0aW9uLCBlOgot
 KyAgICAgICAgICAgICAgICBwcmludCAnVW5hYmxlIHRvIGVqZWN0ICcsIGUKLSAKLSAgICAgICAg
 IGlmIHNlbGYuX2NhcmRfYV9wcmVmaXg6Ci0tICAgICAgICAgICAgI3ByaW50ICJ1bW91bnQgY2Fy
 ZCBhOiIsIGNtZCwgc2VsZi5fY2FyZF9hX2Rldiwgc2VsZi5fY2FyZF9hX3ByZWZpeAotKyAgICAg
 ICAgICAgIGlmIHZlcmJvc2U6Ci0rICAgICAgICAgICAgICAgIHByaW50ICJGQlNEOgl1bW91bnQg
 Y2FyZCBhOiIsIHNlbGYuX2NhcmRfYV9wcmVmaXgKLSAgICAgICAgICAgICB0cnk6Ci0tICAgICAg
 ICAgICAgICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCArIFtzZWxmLl9jYXJkX2FfZGV2LCAg
 c2VsZi5fY2FyZF9hX3ByZWZpeF0pCi0tICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6Ci0tICAg
 ICAgICAgICAgICAgIHJhaXNlIERldmljZUVycm9yKAotLSAgICAgICAgICAgICAgICBfKCdDb3Vs
 ZCBub3QgZmluZCBtb3VudCBoZWxwZXI6ICVzLicpJWNtZFswXSkKLS0gICAgICAgICAgICB3aGls
 ZSBwLnBvbGwoKSBpcyBOb25lOgotLSAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDAuMSkKLSsg
 ICAgICAgICAgICAgICAgc2VsZi5fY2FyZF9hX3ZvbC5Vbm1vdW50KFtdKQotKyAgICAgICAgICAg
 IGV4Y2VwdCBkYnVzLmV4Y2VwdGlvbnMuREJ1c0V4Y2VwdGlvbiwgZToKLSsgICAgICAgICAgICAg
 ICAgcHJpbnQgJ1VuYWJsZSB0byBlamVjdCAnLCBlCi0gCi0gICAgICAgICBpZiBzZWxmLl9jYXJk
 X2JfcHJlZml4OgotLSAgICAgICAgICAgICNwcmludCAidW1vdW50IGNhcmQgYjoiLCBjbWQsIHNl
 bGYuX2NhcmRfYl9kZXYsIHNlbGYuX2NhcmRfYl9wcmVmaXgKLSsgICAgICAgICAgICBpZiB2ZXJi
 b3NlOgotKyAgICAgICAgICAgICAgICBwcmludCAiRkJTRDoJdW1vdW50IGNhcmQgYjoiLCBzZWxm
 Ll9jYXJkX2JfcHJlZml4Ci0gICAgICAgICAgICAgdHJ5OgotLSAgICAgICAgICAgICAgICBwID0g
 c3VicHJvY2Vzcy5Qb3BlbihjbWQgKyBbc2VsZi5fY2FyZF9iX2Rldiwgc2VsZi5fY2FyZF9iX3By
 ZWZpeF0pCi0tICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6Ci0tICAgICAgICAgICAgICAgIHJh
 aXNlIERldmljZUVycm9yKAotLSAgICAgICAgICAgICAgICBfKCdDb3VsZCBub3QgZmluZCBtb3Vu
 dCBoZWxwZXI6ICVzLicpJWNtZFswXSkKLS0gICAgICAgICAgICB3aGlsZSBwLnBvbGwoKSBpcyBO
 b25lOgotLSAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDAuMSkKLSsgICAgICAgICAgICAgICAg
 c2VsZi5fY2FyZF9iX3ZvbC5Vbm1vdW50KFtdKQotKyAgICAgICAgICAgIGV4Y2VwdCBkYnVzLmV4
 Y2VwdGlvbnMuREJ1c0V4Y2VwdGlvbiwgZToKLSsgICAgICAgICAgICAgICAgcHJpbnQgJ1VuYWJs
 ZSB0byBlamVjdCAnLCBlCi0gCi0gICAgICAgICBzZWxmLl9tYWluX3ByZWZpeCA9IE5vbmUKLSAg
 ICAgICAgIHNlbGYuX2NhcmRfYV9wcmVmaXggPSBOb25lCi1AQCAtODU5LDExICs4ODEsMTAgQEAK
 LSAgICAgICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoNykKLSAgICAgICAgICAgICAgICAgICAg
 IHNlbGYub3Blbl9saW51eCgpCi0gICAgICAgICAgICAgaWYgaXNmcmVlYnNkOgotLSAgICAgICAg
 ICAgICAgICBzZWxmLl9tYWluX2RldiA9IHNlbGYuX2NhcmRfYV9kZXYgPSBzZWxmLl9jYXJkX2Jf
 ZGV2ID0gTm9uZQotKyAgICAgICAgICAgICAgICBzZWxmLl9tYWluX3ZvbCA9IHNlbGYuX2NhcmRf
 YV92b2wgPSBzZWxmLl9jYXJkX2Jfdm9sID0gTm9uZQotICAgICAgICAgICAgICAgICB0cnk6Ci0g
 ICAgICAgICAgICAgICAgICAgICBzZWxmLm9wZW5fZnJlZWJzZCgpCi0gICAgICAgICAgICAgICAg
 IGV4Y2VwdCBEZXZpY2VFcnJvcjoKLS0gICAgICAgICAgICAgICAgICAgIHN1YnByb2Nlc3MuUG9w
 ZW4oWyJjYW1jb250cm9sIiwgInJlc2NhbiIsICJhbGwiXSkKLSAgICAgICAgICAgICAgICAgICAg
 IHRpbWUuc2xlZXAoMikKLSAgICAgICAgICAgICAgICAgICAgIHNlbGYub3Blbl9mcmVlYnNkKCkK
 LSAgICAgICAgICAgICBpZiBpc3dpbmRvd3M6CmRpZmYgLXJ1TiBjYWxpYnJlL3BrZy1wbGlzdCBj
 YWxpYnJlLm5ldy9wa2ctcGxpc3QKLS0tIGNhbGlicmUvcGtnLXBsaXN0CTIwMTItMDItMDQgMTk6
 MDk6NDkuMDAwMDAwMDAwIC0wNjAwCisrKyBjYWxpYnJlLm5ldy9wa2ctcGxpc3QJMjAxMi0wMi0w
 NyAwMzozNzozNC4wMDAwMDAwMDAgLTA2MDAKQEAgLTUwMyw2ICs1MDMsNyBAQAogbGliL2NhbGli
 cmUvY2FsaWJyZS9ndWkyL2FkZF93aXphcmQvX19pbml0X18ucHkKIGxpYi9jYWxpYnJlL2NhbGli
 cmUvZ3VpMi9hZGRfd2l6YXJkL3NjYW5fdWkucHkKIGxpYi9jYWxpYnJlL2NhbGlicmUvZ3VpMi9h
 ZGRfd2l6YXJkL3dlbGNvbWVfdWkucHkKK2xpYi9jYWxpYnJlL2NhbGlicmUvZ3VpMi9hdXRvX2Fk
 ZC5weQogbGliL2NhbGlicmUvY2FsaWJyZS9ndWkyL2JhcnMucHkKIGxpYi9jYWxpYnJlL2NhbGli
 cmUvZ3VpMi9ib29rX2RldGFpbHMucHkKIGxpYi9jYWxpYnJlL2NhbGlicmUvZ3VpMi9jYXRhbG9n
 L19faW5pdF9fLnB5Cg==
 --=_78dda784d221cdc06ad170d4fe3645dd--
 

From: Rusty Nejdl <rnejdl@ringofsaturn.com>
To: <bug-followup@freebsd.org>, <kevin.mcaleavey@knosproject.com>
Cc:  
Subject: Re: ports/163948: Python incompatibility on ports: deskutils/calibre
Date: Tue, 07 Feb 2012 03:51:13 -0600

 --=_839a74137ce3451b24301eabc0bf56af
 Content-Transfer-Encoding: 7bit
 Content-Type: text/plain; charset=UTF-8;
  format=flowed
 
 Sorry for the second post.  Here's the corrected DIFF which has been 
 submitted to be updated.
 
 
 --=_839a74137ce3451b24301eabc0bf56af
 Content-Transfer-Encoding: base64
 Content-Type: application/octet-stream;
  name=patch-calibre-0.8.38
 Content-Disposition: attachment;
  filename=patch-calibre-0.8.38
 
 ZGlmZiAtcnVOIGNhbGlicmUvTWFrZWZpbGUgY2FsaWJyZS5uZXcvTWFrZWZpbGUKLS0tIGNhbGli
 cmUvTWFrZWZpbGUJMjAxMi0wMi0wNCAxOTowOTo0OS4wMDAwMDAwMDAgLTA2MDAKKysrIGNhbGli
 cmUubmV3L01ha2VmaWxlCTIwMTItMDItMDcgMDM6NDQ6MzMuMDAwMDAwMDAwIC0wNjAwCkBAIC02
 LDcgKzYsNyBAQAogIwogCiBQT1JUTkFNRT0JY2FsaWJyZQotUE9SVFZFUlNJT049CTAuOC4zNwor
 UE9SVFZFUlNJT049CTAuOC4zOAogQ0FURUdPUklFUz0JZGVza3V0aWxzIHB5dGhvbgogTUFTVEVS
 X1NJVEVTPQlTRi8ke1BPUlROQU1FfS8ke1BPUlRWRVJTSU9OfS8KIApAQCAtNDcsNyArNDcsNyBA
 QAogT1BUSU9OUz0JUE9ET0ZPCSJQREYgc3VwcG9ydCB2aWEgUG9Eb0ZvIGxpYnJhcnkiIG9uCiAK
 IFVTRV9YWj0JCXllcwotVVNFX1BZVEhPTj0JMi43KworVVNFX1BZVEhPTj0JMi43CiBVU0VfUVRf
 VkVSPQk0CiBRVF9DT01QT05FTlRTPQlxbWFrZV9idWlsZCBtb2NfYnVpbGQKIElOU1RBTExTX0lD
 T05TPQl5ZXMKZGlmZiAtcnVOIGNhbGlicmUvZGlzdGluZm8gY2FsaWJyZS5uZXcvZGlzdGluZm8K
 LS0tIGNhbGlicmUvZGlzdGluZm8JMjAxMi0wMi0wNCAxOTowOTo0OS4wMDAwMDAwMDAgLTA2MDAK
 KysrIGNhbGlicmUubmV3L2Rpc3RpbmZvCTIwMTItMDItMDcgMDM6MzI6NTUuMDAwMDAwMDAwIC0w
 NjAwCkBAIC0xLDIgKzEsMiBAQAotU0hBMjU2IChjYWxpYnJlLTAuOC4zNy50YXIueHopID0gZWVk
 ZGU4MTI0ZjBlNjg4ZDgyNmRlMDAxM2RhYmYyZjE2ZmY1ZmEwNjIxZGY4OWYwODk3ZmQzODQ4YmM4
 ZDU5ZAotU0laRSAoY2FsaWJyZS0wLjguMzcudGFyLnh6KSA9IDIzNjE0NzQwCitTSEEyNTYgKGNh
 bGlicmUtMC44LjM4LnRhci54eikgPSA2MzE3NmRjNWNiMTRmYjJmNWEyYzQ1MTk2OTA0Yjk3ODgx
 MDZkNmIwYzZkOTk3NmQ0NWI0YTdmZWMxMGUzYjk5CitTSVpFIChjYWxpYnJlLTAuOC4zOC50YXIu
 eHopID0gMjM2ODA5MTYKZGlmZiAtcnVOIGNhbGlicmUvZmlsZXMvcGF0Y2gtc2V0dXBfaW5zdGFs
 bC5weSBjYWxpYnJlLm5ldy9maWxlcy9wYXRjaC1zZXR1cF9pbnN0YWxsLnB5Ci0tLSBjYWxpYnJl
 L2ZpbGVzL3BhdGNoLXNldHVwX2luc3RhbGwucHkJMjAxMS0wNi0xOSAxMzowODowOS4wMDAwMDAw
 MDAgLTA1MDAKKysrIGNhbGlicmUubmV3L2ZpbGVzL3BhdGNoLXNldHVwX2luc3RhbGwucHkJMjAx
 Mi0wMi0wNyAwMzo0NzozNC4wMDAwMDAwMDAgLTA2MDAKQEAgLTUsNyArNSw3IEBACiAgCiAgSEVB
 REVSID0gJycnXAogLSMhL3Vzci9iaW4vZW52IHB5dGhvbjIKLSsjIS91c3IvYmluL2VudiBweXRo
 b24KKysjIS91c3IvYmluL2VudiBweXRob24yLjcKICAKICAiIiIKICBUaGlzIGlzIHRoZSBzdGFu
 ZGFyZCBydW5zY3JpcHQgZm9yIGFsbCBvZiBjYWxpYnJlJ3MgdG9vbHMuCmRpZmYgLXJ1TiBjYWxp
 YnJlL2ZpbGVzL3BhdGNoLXNyY19jYWxpYnJlX2RldmljZXNfc2Nhbm5lci5weSBjYWxpYnJlLm5l
 dy9maWxlcy9wYXRjaC1zcmNfY2FsaWJyZV9kZXZpY2VzX3NjYW5uZXIucHkKLS0tIGNhbGlicmUv
 ZmlsZXMvcGF0Y2gtc3JjX2NhbGlicmVfZGV2aWNlc19zY2FubmVyLnB5CTIwMTItMDEtMjEgMTU6
 MTk6MzguMDAwMDAwMDAwIC0wNjAwCisrKyBjYWxpYnJlLm5ldy9maWxlcy9wYXRjaC1zcmNfY2Fs
 aWJyZV9kZXZpY2VzX3NjYW5uZXIucHkJMTk2OS0xMi0zMSAxODowMDowMC4wMDAwMDAwMDAgLTA2
 MDAKQEAgLTEsOTMgKzAsMCBAQAotLS0tIHNyYy9jYWxpYnJlL2RldmljZXMvc2Nhbm5lci5weS5v
 cmlnCTIwMTEtMTEtMTEgMjA6MjI6MzQuMDAwMDAwMDAwIC0wODAwCi0rKysgc3JjL2NhbGlicmUv
 ZGV2aWNlcy9zY2FubmVyLnB5CTIwMTEtMTItMzAgMTY6MzI6MzIuMDAwMDAwMDAwIC0wODAwCi1A
 QCAtOCw3ICs4LDcgQEAKLSBpbXBvcnQgc3lzLCBvcywgcmUKLSBmcm9tIHRocmVhZGluZyBpbXBv
 cnQgUkxvY2sKLSAKLS1mcm9tIGNhbGlicmUuY29uc3RhbnRzIGltcG9ydCBpc3dpbmRvd3MsIGlz
 b3N4LCBwbHVnaW5zLCBpc2xpbnV4Ci0rZnJvbSBjYWxpYnJlLmNvbnN0YW50cyBpbXBvcnQgaXN3
 aW5kb3dzLCBpc29zeCwgcGx1Z2lucywgaXNsaW51eCwgaXNmcmVlYnNkCi0gCi0gb3N4X3NjYW5u
 ZXIgPSB3aW5fc2Nhbm5lciA9IGxpbnV4X3NjYW5uZXIgPSBOb25lCi0gCi1AQCAtMTU1LDE3ICsx
 NTUsODAgQEAKLSAgICAgICAgICAgICBhbnMuYWRkKHR1cGxlKGRldikpCi0gICAgICAgICByZXR1
 cm4gYW5zCi0gCi0rY2xhc3MgRnJlZUJTRFNjYW5uZXIob2JqZWN0KToKLSsKLSsgICAgZGVmIF9f
 Y2FsbF9fKHNlbGYpOgotKyAgICAgICAgYW5zID0gc2V0KFtdKQotKyAgICAgICAgaW1wb3J0IGRi
 dXMKLSsgICAgICAgIGRldnMgPSBbXQotKwotKyAgICAgICAgdHJ5OgotKyAgICAgICAgICAgYnVz
 ID0gZGJ1cy5TeXN0ZW1CdXMoKQotKyAgICAgICAgICAgbWFuYWdlciA9IGRidXMuSW50ZXJmYWNl
 KGJ1cy5nZXRfb2JqZWN0KCdvcmcuZnJlZWRlc2t0b3AuSGFsJywKLSsgICAgICAgICAgICAgICAg
 ICAgICAgICAgJy9vcmcvZnJlZWRlc2t0b3AvSGFsL01hbmFnZXInKSwgJ29yZy5mcmVlZGVza3Rv
 cC5IYWwuTWFuYWdlcicpCi0rICAgICAgICAgICBwYXRocyA9IG1hbmFnZXIuRmluZERldmljZVN0
 cmluZ01hdGNoKCdmcmVlYnNkLmRyaXZlcicsJ2RhJykKLSsgICAgICAgICAgIGZvciBwYXRoIGlu
 IHBhdGhzOgotKyAgICAgICAgICAgICAgb2JqID0gYnVzLmdldF9vYmplY3QoJ29yZy5mcmVlZGVz
 a3RvcC5IYWwnLCBwYXRoKQotKyAgICAgICAgICAgICAgb2JqaWYgPSBkYnVzLkludGVyZmFjZShv
 YmosICdvcmcuZnJlZWRlc2t0b3AuSGFsLkRldmljZScpCi0rICAgICAgICAgICAgICBkZXZpZiA9
 IG9iamlmCi0rICAgICAgICAgICAgICBwYXJlbnRkcml2ZXIgPSBOb25lCi0rICAgICAgICAgICAg
 ICB3aGlsZSBwYXJlbnRkcml2ZXIgIT0gJ3VtYXNzJzoKLSsgICAgICAgICAgICAgICAgIHRyeToK
 LSsgICAgICAgICAgICAgICAgICAgIG9iaiA9IGJ1cy5nZXRfb2JqZWN0KCdvcmcuZnJlZWRlc2t0
 b3AuSGFsJywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamlmLkdldFByb3BlcnR5KCdp
 bmZvLnBhcmVudCcpKQotKyAgICAgICAgICAgICAgICAgICAgb2JqaWYgPSBkYnVzLkludGVyZmFj
 ZShvYmosICdvcmcuZnJlZWRlc2t0b3AuSGFsLkRldmljZScpCi0rICAgICAgICAgICAgICAgICAg
 ICB0cnk6Ci0rICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRkcml2ZXIgPSBvYmppZi5HZXRQ
 cm9wZXJ0eSgnZnJlZWJzZC5kcml2ZXInKQotKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IGRi
 dXMuZXhjZXB0aW9ucy5EQnVzRXhjZXB0aW9uLCBlOgotKyAgICAgICAgICAgICAgICAgICAgICAg
 Y29udGludWUKLSsgICAgICAgICAgICAgICAgIGV4Y2VwdCBkYnVzLmV4Y2VwdGlvbnMuREJ1c0V4
 Y2VwdGlvbiwgZToKLSsgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0rICAgICAgICAgICAgICBp
 ZiBwYXJlbnRkcml2ZXIgIT0gJ3VtYXNzJzoKLSsgICAgICAgICAgICAgICAgICBjb250aW51ZQot
 KyAgICAgICAgICAgICAgZGV2ID0gW10KLSsgICAgICAgICAgICAgIHRyeToKLSsgICAgICAgICAg
 ICAgICAgIGRldi5hcHBlbmQob2JqaWYuR2V0UHJvcGVydHkoJ3VzYi52ZW5kb3JfaWQnKSkKLSsg
 ICAgICAgICAgICAgICAgIGRldi5hcHBlbmQob2JqaWYuR2V0UHJvcGVydHkoJ3VzYi5wcm9kdWN0
 X2lkJykpCi0rICAgICAgICAgICAgICAgICBkZXYuYXBwZW5kKG9iamlmLkdldFByb3BlcnR5KCd1
 c2IuZGV2aWNlX3JldmlzaW9uX2JjZCcpKQotKyAgICAgICAgICAgICAgZXhjZXB0IGRidXMuZXhj
 ZXB0aW9ucy5EQnVzRXhjZXB0aW9uLCBlOgotKyAgICAgICAgICAgICAgICAgY29udGludWUKLSsg
 ICAgICAgICAgICAgIHRyeToKLSsgICAgICAgICAgICAgICAgIGRldi5hcHBlbmQob2JqaWYuR2V0
 UHJvcGVydHkoJ2luZm8udmVuZG9yJykpCi0rICAgICAgICAgICAgICBleGNlcHQ6Ci0rICAgICAg
 ICAgICAgICAgICBkZXYuYXBwZW5kKCcnKQotKyAgICAgICAgICAgICAgdHJ5OgotKyAgICAgICAg
 ICAgICAgICAgZGV2LmFwcGVuZChvYmppZi5HZXRQcm9wZXJ0eSgnaW5mby5wcm9kdWN0JykpCi0r
 ICAgICAgICAgICAgICBleGNlcHQ6Ci0rICAgICAgICAgICAgICAgICBkZXYuYXBwZW5kKCcnKQot
 KyAgICAgICAgICAgICAgdHJ5OgotKyAgICAgICAgICAgICAgICAgZGV2LmFwcGVuZChvYmppZi5H
 ZXRQcm9wZXJ0eSgndXNiLnNlcmlhbCcpKQotKyAgICAgICAgICAgICAgZXhjZXB0OgotKyAgICAg
 ICAgICAgICAgICAgZGV2LmFwcGVuZCgnJykKLSsgICAgICAgICAgICAgIGRldi5hcHBlbmQocGF0
 aCkKLSsgICAgICAgICAgICAgIGFucy5hZGQodHVwbGUoZGV2KSkKLSsgICAgICAgIGV4Y2VwdCBk
 YnVzLmV4Y2VwdGlvbnMuREJ1c0V4Y2VwdGlvbiwgZToKLSsgICAgICAgICAgIHByaW50ID4+c3lz
 LnN0ZGVyciwgIkV4ZWN1dGlvbiBmYWlsZWQ6IiwgZQotKyAgICAgICAgcmV0dXJuIGFucwotKwot
 KwotKwotIGxpbnV4X3NjYW5uZXIgPSBOb25lCi0gCi0gaWYgaXNsaW51eDoKLSAgICAgbGludXhf
 c2Nhbm5lciA9IExpbnV4U2Nhbm5lcigpCi0gCi0rZnJlZWJzZF9zY2FubmVyID0gTm9uZQotKwot
 K2lmIGlzZnJlZWJzZDoKLSsgICAgZnJlZWJzZF9zY2FubmVyID0gRnJlZUJTRFNjYW5uZXIoKQot
 KwotKwotIGNsYXNzIERldmljZVNjYW5uZXIob2JqZWN0KToKLSAKLSAgICAgZGVmIF9faW5pdF9f
 KHNlbGYsICphcmdzKToKLSAgICAgICAgIGlmIGlzb3N4IGFuZCBvc3hfc2Nhbm5lciBpcyBOb25l
 OgotICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignVGhlIFB5dGhvbiBleHRlbnNpb24g
 dXNib2JzZXJ2ZXIgbXVzdCBiZSBhdmFpbGFibGUgb24gT1MgWC4nKQotLSAgICAgICAgc2VsZi5z
 Y2FubmVyID0gd2luX3NjYW5uZXIgaWYgaXN3aW5kb3dzIGVsc2Ugb3N4X3NjYW5uZXIgaWYgaXNv
 c3ggZWxzZSBsaW51eF9zY2FubmVyCi0rICAgICAgICBzZWxmLnNjYW5uZXIgPSB3aW5fc2Nhbm5l
 ciBpZiBpc3dpbmRvd3MgZWxzZSBvc3hfc2Nhbm5lciBpZiBpc29zeCBlbHNlIGZyZWVic2Rfc2Nh
 bm5lciBpZiBpc2ZyZWVic2QgZWxzZSBsaW51eF9zY2FubmVyCi0gICAgICAgICBzZWxmLmRldmlj
 ZXMgPSBbXQotIAotICAgICBkZWYgc2NhbihzZWxmKToKZGlmZiAtcnVOIGNhbGlicmUvZmlsZXMv
 cGF0Y2gtc3JjX2NhbGlicmVfZGV2aWNlc191c2Jtc19kZXZpY2UucHkgY2FsaWJyZS5uZXcvZmls
 ZXMvcGF0Y2gtc3JjX2NhbGlicmVfZGV2aWNlc191c2Jtc19kZXZpY2UucHkKLS0tIGNhbGlicmUv
 ZmlsZXMvcGF0Y2gtc3JjX2NhbGlicmVfZGV2aWNlc191c2Jtc19kZXZpY2UucHkJMjAxMi0wMS0y
 MSAxMzo0ODowNi4wMDAwMDAwMDAgLTA2MDAKKysrIGNhbGlicmUubmV3L2ZpbGVzL3BhdGNoLXNy
 Y19jYWxpYnJlX2RldmljZXNfdXNibXNfZGV2aWNlLnB5CTE5NjktMTItMzEgMTg6MDA6MDAuMDAw
 MDAwMDAwIC0wNjAwCkBAIC0xLDI5OSArMCwwIEBACi0tLS0gc3JjL2NhbGlicmUvZGV2aWNlcy91
 c2Jtcy9kZXZpY2UucHkub3JpZwkyMDExLTEyLTI5IDIwOjAwOjM4LjAwMDAwMDAwMCAtMDgwMAot
 KysrIHNyYy9jYWxpYnJlL2RldmljZXMvdXNibXMvZGV2aWNlLnB5CTIwMTItMDEtMDEgMTQ6MDk6
 MDAuMDAwMDAwMDAwIC0wODAwCi1AQCAtNjk3LDE5ICs2OTcsMjEgQEAKLSAgICAgICAgICAgICBz
 ZWxmLl9jYXJkX2FfcHJlZml4ID0gc2VsZi5fY2FyZF9iX3ByZWZpeAotICAgICAgICAgICAgIHNl
 bGYuX2NhcmRfYl9wcmVmaXggPSBOb25lCi0gCi0rCi0gIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAjCi0gIyAgb3BlbiBmb3IgRnJlZUJT
 RAotLSMgICBmaW5kIHRoZSBkZXZpY2Ugbm9kZSBvciBub2RlcyB0aGF0IG1hdGNoIHRoZSBTL04g
 d2UgYWxyZWFkeSBoYXZlIGZyb20gdGhlIHNjYW5uZXIKLS0jICAgYW5kIGF0dGVtcHQgdG8gbW91
 bnQgZWFjaCBvbmUKLS0jICAgICAgIDEuICBnZXQgbGlzdCBvZiBkaXNrIGRldmljZXMgZnJvbSBz
 eXNjdGwKLS0jICAgICAgIDIuICBjb21wYXJlIHRoYXQgbGlzdCB3aXRoIHRoZSBvbmUgZnJvbSBj
 YW1jb250cm9sCi0tIyAgICAgICAzLiAgYW5kIHNlZSBpZiBpdCBoYXMgYSBtYXRjaGluZyBzL24K
 LS0jICAgICAgIDYuICBmaW5kIGFueSBwYXJ0aXRpb25zL3NsaWNlcyBhc3NvY2lhdGVkIHdpdGgg
 ZWFjaCBub2RlCi0tIyAgICAgICA3LiAgYXR0ZW1wdCB0byBtb3VudCwgdXNpbmcgY2FsaWJyZS1t
 b3VudC1oZWxwZXIsIGVhY2ggb25lCi0tIyAgICAgICA4LiAgd2hlbiBmaW5pc2hlZCwgd2UgaGF2
 ZSBhIGxpc3Qgb2YgbW91bnQgcG9pbnRzIGFuZCBhc3NvY2lhdGVkIGRldmljZSBub2RlcwotKyMg
 ICAgICBmaW5kIHRoZSBkZXZpY2Ugbm9kZSBvciBub2RlcyB0aGF0IG1hdGNoIHRoZSBTL04gd2Ug
 YWxyZWFkeSBoYXZlIGZyb20gdGhlIHNjYW5uZXIKLSsjICAgICAgYW5kIGF0dGVtcHQgdG8gbW91
 bnQgZWFjaCBvbmUKLSsjICAgICAgICAgICAgICAxLiAgZ2V0IGxpc3Qgb2YgZGV2aWNlcyBpbiAv
 ZGV2IHdpdGggbWF0Y2hpbmcgcy9uIGV0Yy4KLSsjICAgICAgICAgICAgICAyLiAgZ2V0IGxpc3Qg
 b2Ygdm9sdW1lcyBhc3NvY2lhdGVkIHdpdGggZWFjaAotKyMgICAgICAgICAgICAgIDMuICBhdHRl
 bXB0IHRvIG1vdW50IGVhY2ggb25lIHVzaW5nIEhhbAotKyMgICAgICAgICAgICAgIDQuICB3aGVu
 IGZpbmlzaGVkLCB3ZSBoYXZlIGEgbGlzdCBvZiBtb3VudCBwb2ludHMgYW5kIGFzc29jaWF0ZWQg
 ZGJ1cyBub2RlcwotICMKLSAgICAgZGVmIG9wZW5fZnJlZWJzZChzZWxmKToKLSsgICAgICAgIGlt
 cG9ydCBkYnVzCi0rICAgICAgICAjIFRoZXJlIHNob3VsZCBiZSBzb21lIHdheSB0byBhY2Nlc3Mg
 dGhlIC12IGFyZy4uLgotKyAgICAgICAgdmVyYm9zZSA9IEZhbHNlCi0gCi0gICAgICAgICAjIHRo
 aXMgZ2l2ZXMgdXMgYWNjZXNzIHRvIHRoZSBTL04sIGV0Yy4gb2YgdGhlIHJlYWRlciB0aGF0IHRo
 ZSBzY2FubmVyIGhhcyBmb3VuZAotICAgICAgICAgIyBhbmQgdGhlIG1hdGNoIHJvdXRpbmVzIGZv
 ciBzb21lIG9mIHRoYXQgZGF0YSwgbGlrZSBzL24sIHZlbmRvciBJRCwgZXRjLgotQEAgLTcxOCwx
 MjkgKzcyMCwxNDkgQEAKLSAgICAgICAgIGlmIG5vdCBkLnNlcmlhbDoKLSAgICAgICAgICAgICBy
 YWlzZSBEZXZpY2VFcnJvcigiRGV2aWNlIGhhcyBubyBTL04uICBDYW4ndCBjb250aW51ZSIpCi0g
 ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0tCi0tICAgICAgICBkZXZzPXt9Ci0tICAgICAgICBk
 aT0wCi0tICAgICAgICBuZGV2cz00ICAgICAjIG51bWJlciBvZiBwb3NzaWJsZSBkZXZpY2VzIHBl
 ciByZWFkZXIgKG1haW4sIGNhcmRhLCBjYXJkYiwgbGF1bmNoZXIpCi0tCi0tICAgICAgICAjZ2V0
 IGxpc3Qgb2YgZGlzayBkZXZpY2VzCi0tICAgICAgICBwPXN1YnByb2Nlc3MuUG9wZW4oWyJzeXNj
 dGwiLCAia2Vybi5kaXNrcyJdLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQotLSAgICAgICAga2Rz
 a3M9c3VicHJvY2Vzcy5Qb3BlbihbInNlZCIsICJzL2tlcm4uZGlza3M6IC8vIl0sIHN0ZGluPXAu
 c3Rkb3V0LCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKS5jb21tdW5pY2F0ZSgpWzBdCi0tICAgICAg
 ICBwLnN0ZG91dC5jbG9zZSgpCi0tICAgICAgICAjcHJpbnQga2Rza3MKLS0gICAgICAgIGZvciBk
 dmMgaW4ga2Rza3Muc3BsaXQoKToKLS0gICAgICAgICAgICAjIGZvciBlYWNoIG9uZSB0aGF0J3Mg
 YWxzbyBpbiB0aGUgbGlzdCBvZiBjYW0gZGV2aWNlcyAuLi4KLS0gICAgICAgICAgICBwPXN1YnBy
 b2Nlc3MuUG9wZW4oWyJjYW1jb250cm9sIiwgImRldmxpc3QiXSwgc3Rkb3V0PXN1YnByb2Nlc3Mu
 UElQRSkKLS0gICAgICAgICAgICBkZXZtYXRjaD1zdWJwcm9jZXNzLlBvcGVuKFsiZ3JlcCIsIGR2
 Y10sIHN0ZGluPXAuc3Rkb3V0LCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKS5jb21tdW5pY2F0ZSgp
 WzBdCi0tICAgICAgICAgICAgcC5zdGRvdXQuY2xvc2UoKQotLSAgICAgICAgICAgIGlmIGRldm1h
 dGNoOgotLSAgICAgICAgICAgICAgICAjcHJpbnQgIkNoZWNraW5nICIsIGRldm1hdGNoCi0tICAg
 ICAgICAgICAgICAgICMgLi4uIHNlZSBpZiB3ZSBjYW4gZ2V0IGEgUy9OIGZyb20gdGhlIGFjdHVh
 bCBkZXZpY2Ugbm9kZQotLSAgICAgICAgICAgICAgICBzbj1zdWJwcm9jZXNzLlBvcGVuKFsiY2Ft
 Y29udHJvbCIsICJpbnF1aXJ5IiwgZHZjLCAiLVMiXSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSku
 Y29tbXVuaWNhdGUoKVswXQotLSAgICAgICAgICAgICAgICBzbj1zblswOi0xXSAgICAgICAgICAg
 ICAjIGRyb3AgdGhlIHRyYWlsaW5nIG5ld2xpbmUKLS0gICAgICAgICAgICAgICAgI3ByaW50ICJT
 L04gPSAiLCBzbgotLSAgICAgICAgICAgICAgICBpZiBzbiBhbmQgZC5tYXRjaF9zZXJpYWwoc24p
 OgotLSAgICAgICAgICAgICAgICAgICAgIyB3ZSBoYXZlIGEgbWF0Y2hpbmcgcy9uLCByZWNvcmQg
 dGhpcyBkZXZpY2Ugbm9kZQotLSAgICAgICAgICAgICAgICAgICAgI3ByaW50ICJtYXRjaCBmb3Vu
 ZDogIiwgZHZjCi0tICAgICAgICAgICAgICAgICAgICBkZXZzW2RpXT1kdmMKLS0gICAgICAgICAg
 ICAgICAgICAgIGRpICs9IDEKLS0KLS0gICAgICAgICMgc29ydCB0aGUgbGlzdCBvZiBkZXZpY2Vz
 Ci0tICAgICAgICBmb3IgaSBpbiByYW5nZSgxLG5kZXZzKzEpOgotLSAgICAgICAgICAgIGZvciBq
 IGluIHJldmVyc2VkKHJhbmdlKDEsaSkpOgotLSAgICAgICAgICAgICAgICBpZiBkZXZzW2otMV0g
 PiBkZXZzW2pdOgotLSAgICAgICAgICAgICAgICAgICAgeD1kZXZzW2otMV0KLS0gICAgICAgICAg
 ICAgICAgICAgIGRldnNbai0xXT1kZXZzW2pdCi0tICAgICAgICAgICAgICAgICAgICBkZXZzW2pd
 PXgKLS0gICAgICAgICNwcmludCBkZXZzCi0tCi0tICAgICAgICAjIG5vdyB3ZSBuZWVkIHRvIHNl
 ZSBpZiBhbnkgb2YgdGhlc2UgaGF2ZSBzbGljZXMvcGFydGl0aW9ucwotKyAgICAgICAgCi0rICAg
 ICAgICB2b2xzPVtdCi0rICAgICAgICAKLSsgICAgICAgIGJ1cyA9IGRidXMuU3lzdGVtQnVzKCkK
 LSsgICAgICAgIG1hbmFnZXIgPSBkYnVzLkludGVyZmFjZShidXMuZ2V0X29iamVjdCgnb3JnLmZy
 ZWVkZXNrdG9wLkhhbCcsCi0rICAgICAgICAgICAgICAgICAgICAgICcvb3JnL2ZyZWVkZXNrdG9w
 L0hhbC9NYW5hZ2VyJyksICdvcmcuZnJlZWRlc2t0b3AuSGFsLk1hbmFnZXInKQotKyAgICAgICAg
 cGF0aHMgPSBtYW5hZ2VyLkZpbmREZXZpY2VTdHJpbmdNYXRjaCgndXNiLnNlcmlhbCcsZC5zZXJp
 YWwpCi0rICAgICAgICBmb3IgcGF0aCBpbiBwYXRoczoKLSsgICAgICAgICAgICBvYmppZiA9IGRi
 dXMuSW50ZXJmYWNlKGJ1cy5nZXRfb2JqZWN0KCdvcmcuZnJlZWRlc2t0b3AuSGFsJywgcGF0aCks
 ICdvcmcuZnJlZWRlc2t0b3AuSGFsLkRldmljZScpCi0rICAgICAgICAgICAgIyBFeHRyYSBwYXJh
 bm9pYS4uLgotKyAgICAgICAgICAgIHRyeToKLSsgICAgICAgICAgICAgICAgaWYgZC5pZFZlbmRv
 ciA9PSBvYmppZi5HZXRQcm9wZXJ0eSgndXNiLnZlbmRvcl9pZCcpIGFuZCBcCi0rICAgICAgICAg
 ICAgICAgICAgICAgICAgZC5pZFByb2R1Y3QgPT0gb2JqaWYuR2V0UHJvcGVydHkoJ3VzYi5wcm9k
 dWN0X2lkJykgYW5kIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICBkLm1hbnVmYWN0dXJlciA9
 PSBvYmppZi5HZXRQcm9wZXJ0eSgndXNiLnZlbmRvcicpIGFuZCBcCi0rICAgICAgICAgICAgICAg
 ICAgICAgICAgZC5wcm9kdWN0ID09IG9iamlmLkdldFByb3BlcnR5KCd1c2IucHJvZHVjdCcpIGFu
 ZCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgZC5zZXJpYWwgPT0gb2JqaWYuR2V0UHJvcGVy
 dHkoJ3VzYi5zZXJpYWwnKToKLSsgICAgICAgICAgICAgICAgICAgIGRwYXRocyA9IG1hbmFnZXIu
 RmluZERldmljZVN0cmluZ01hdGNoKCdzdG9yYWdlLm9yaWdpbmF0aW5nX2RldmljZScsIHBhdGgp
 Ci0rICAgICAgICAgICAgICAgICAgICBmb3IgZHBhdGggaW4gZHBhdGhzOgotKyAgICAgICAgICAg
 ICAgICAgICAgICAgIGRldmlmID0gZGJ1cy5JbnRlcmZhY2UoYnVzLmdldF9vYmplY3QoJ29yZy5m
 cmVlZGVza3RvcC5IYWwnLCBkcGF0aCksICdvcmcuZnJlZWRlc2t0b3AuSGFsLkRldmljZScpCi0r
 ICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgotKyAgICAgICAgICAgICAgICAgICAgICAgICAg
 ICB2cGF0aHMgPSBtYW5hZ2VyLkZpbmREZXZpY2VTdHJpbmdNYXRjaCgnYmxvY2suc3RvcmFnZV9k
 ZXZpY2UnLCBkcGF0aCkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHZwYXRoIGlu
 IHZwYXRoczoKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeToKLSsgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZGV2aWYgPSBkYnVzLkludGVyZmFjZShidXMu
 Z2V0X29iamVjdCgnb3JnLmZyZWVkZXNrdG9wLkhhbCcsIHZwYXRoKSwgJ29yZy5mcmVlZGVza3Rv
 cC5IYWwuRGV2aWNlJykKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBu
 b3QgdmRldmlmLkdldFByb3BlcnR5KCdibG9jay5pc192b2x1bWUnKToKLSsgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSsgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICBpZiB2ZGV2aWYuR2V0UHJvcGVydHkoJ3ZvbHVtZS5mc3VzYWdlJykg
 IT0gJ2ZpbGVzeXN0ZW0nOgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
 ICBjb250aW51ZQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvbGlmID0g
 ZGJ1cy5JbnRlcmZhY2UoYnVzLmdldF9vYmplY3QoJ29yZy5mcmVlZGVza3RvcC5IYWwnLCB2cGF0
 aCksICdvcmcuZnJlZWRlc2t0b3AuSGFsLkRldmljZS5Wb2x1bWUnKQotKyAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgIHBkZXZpZiA9IGRidXMuSW50ZXJmYWNlKGJ1cy5nZXRfb2Jq
 ZWN0KCdvcmcuZnJlZWRlc2t0b3AuSGFsJywgdmRldmlmLkdldFByb3BlcnR5KCdpbmZvLnBhcmVu
 dCcpKSwgJ29yZy5mcmVlZGVza3RvcC5IYWwuRGV2aWNlJykKLSsgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICB2b2wgPSB7J25vZGUnOiBwZGV2aWYuR2V0UHJvcGVydHkoJ2Jsb2Nr
 LmRldmljZScpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
 J2Rldic6IHZkZXZpZiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgICd2b2wnOiB2b2xpZiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgICdsYWJlbCc6IHZkZXZpZi5HZXRQcm9wZXJ0eSgndm9sdW1lLmxhYmVsJyl9Ci0rICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9scy5hcHBlbmQodm9sKQotKyAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IGRidXMuZXhjZXB0aW9ucy5EQnVzRXhj
 ZXB0aW9uLCBlOgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IGUK
 LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotKyAgICAgICAg
 ICAgICAgICAgICAgICAgIGV4Y2VwdCBkYnVzLmV4Y2VwdGlvbnMuREJ1c0V4Y2VwdGlvbiwgZToK
 LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgZQotKyAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICBjb250aW51ZQotKyAgICAgICAgICAgIGV4Y2VwdCBkYnVzLmV4Y2VwdGlvbnMu
 REJ1c0V4Y2VwdGlvbiwgZToKLSsgICAgICAgICAgICAgICAgY29udGludWUKLSsKLSsgICAgICAg
 IGRlZiBvY21wKHgseSk6Ci0rICAgICAgICAgICAgaWYgeFsnbm9kZSddIDwgeVsnbm9kZSddOgot
 KyAgICAgICAgICAgICAgICByZXR1cm4gLTEKLSsgICAgICAgICAgICBpZiB4Wydub2RlJ10gPiB5
 Wydub2RlJ106Ci0rICAgICAgICAgICAgICAgIHJldHVybiAxCi0rICAgICAgICAgICAgcmV0dXJu
 IDAKLSsKLSsgICAgICAgIHZvbHMuc29ydChjbXA9b2NtcCkKLSsKLSsgICAgICAgIGlmIHZlcmJv
 c2U6Ci0rICAgICAgICAgICAgcHJpbnQgIkZCU0Q6CSIsIHZvbHMKLSsgICAgICAgIAotICAgICAg
 ICAgbXRkPTAKLS0gICAgICAgIGxhYmVsPSJSRUFERVIiICAgICAgIyBjb3VsZCB1c2Ugc29tZXRo
 aW5nIG1vcmUgdW5pcXVlLCBsaWtlIFMvTiBvciBwcm9kdWN0SUQuLi4KLS0gICAgICAgIGNtZCA9
 ICcvdXNyL2xvY2FsL2Jpbi9jYWxpYnJlLW1vdW50LWhlbHBlcicKLS0gICAgICAgIGNtZCA9IFtj
 bWQsICdtb3VudCddCi0tICAgICAgICBmb3IgaSBpbiByYW5nZSgwLG5kZXZzKToKLS0gICAgICAg
 ICAgICBjbWQyPSJscyAvZGV2LyIrZGV2c1tpXSsiKiIKLS0gICAgICAgICAgICBwPXN1YnByb2Nl
 c3MuUG9wZW4oY21kMiwgc2hlbGw9VHJ1ZSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKLS0gICAg
 ICAgICAgICBkZXZzW2ldPXN1YnByb2Nlc3MuUG9wZW4oWyJjdXQiLCAiLWQiLCAiLyIsICItZiIg
 IjMiXSwgc3RkaW49cC5zdGRvdXQsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpLmNvbW11bmljYXRl
 KClbMF0KLS0gICAgICAgICAgICBwLnN0ZG91dC5jbG9zZSgpCi0tCi0tICAgICAgICAgICAgIyB0
 cnkgYWxsIHRoZSBub2RlcyB0byBzZWUgd2hhdCB3ZSBjYW4gbW91bnQKLS0gICAgICAgICAgICBm
 b3IgZGV2IGluIGRldnNbaV0uc3BsaXQoKToKLS0gICAgICAgICAgICAgICAgbXA9Jy9tZWRpYS8n
 K2xhYmVsKyctJytkZXYKLS0gICAgICAgICAgICAgICAgbW1wID0gbXAKLS0gICAgICAgICAgICAg
 ICAgaWYgbW1wLmVuZHN3aXRoKCcvJyk6Ci0tICAgICAgICAgICAgICAgICAgICBtbXAgPSBtbXBb
 Oi0xXQotLSAgICAgICAgICAgICAgICAjcHJpbnQgInRyeWluZyAiLCBkZXYsICJvbiIsIG1wCi0t
 ICAgICAgICAgICAgICAgIHRyeToKLS0gICAgICAgICAgICAgICAgICAgIHAgPSBzdWJwcm9jZXNz
 LlBvcGVuKGNtZCArIFsiL2Rldi8iK2RldiwgbW1wXSkKLS0gICAgICAgICAgICAgICAgZXhjZXB0
 IE9TRXJyb3I6Ci0tICAgICAgICAgICAgICAgICAgICByYWlzZSBEZXZpY2VFcnJvcihfKCdDb3Vs
 ZCBub3QgZmluZCBtb3VudCBoZWxwZXI6ICVzLicpJWNtZFswXSkKLS0gICAgICAgICAgICAgICAg
 d2hpbGUgcC5wb2xsKCkgaXMgTm9uZToKLS0gICAgICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAo
 MC4xKQotLQotLSAgICAgICAgICAgICAgICBpZiBwLnJldHVybmNvZGUgPT0gMDoKLS0gICAgICAg
 ICAgICAgICAgICAgICNwcmludCAiICBtb3VudGVkIiwgZGV2Ci0tICAgICAgICAgICAgICAgICAg
 ICBpZiBpID09IDA6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbWFpbl9wcmVmaXgg
 PSBtcAotLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX21haW5fZGV2ID0gIi9kZXYvIitk
 ZXYKLS0gICAgICAgICAgICAgICAgICAgICAgICAjcHJpbnQgIm1haW4gPSAiLCBzZWxmLl9tYWlu
 X2Rldiwgc2VsZi5fbWFpbl9wcmVmaXgKLS0gICAgICAgICAgICAgICAgICAgIGlmIGkgPT0gMToK
 LS0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9jYXJkX2FfcHJlZml4ID0gbXAKLS0gICAg
 ICAgICAgICAgICAgICAgICAgICBzZWxmLl9jYXJkX2FfZGV2ID0gIi9kZXYvIitkZXYKLS0gICAg
 ICAgICAgICAgICAgICAgICAgICAjcHJpbnQgImNhcmQgYSA9ICIsIHNlbGYuX2NhcmRfYV9kZXYs
 IHNlbGYuX2NhcmRfYV9wcmVmaXgKLS0gICAgICAgICAgICAgICAgICAgIGlmIGkgPT0gMjoKLS0g
 ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9jYXJkX2JfcHJlZml4ID0gbXAKLS0gICAgICAg
 ICAgICAgICAgICAgICAgICBzZWxmLl9jYXJkX2JfZGV2ID0gIi9kZXYvIitkZXYKLS0gICAgICAg
 ICAgICAgICAgICAgICAgICAjcHJpbnQgImNhcmQgYiA9ICIsIHNlbGYuX2NhcmRfYl9kZXYsIHNl
 bGYuX2NhcmRfYl9wcmVmaXgKLSAKLS0gICAgICAgICAgICAgICAgICAgIG10ZCArPSAxCi0tICAg
 ICAgICAgICAgICAgICAgICBicmVhawotKyAgICAgICAgZm9yIHZvbCBpbiB2b2xzOgotKyAgICAg
 ICAgICAgIG1wID0gJycKLSsgICAgICAgICAgICBpZiB2b2xbJ2RldiddLkdldFByb3BlcnR5KCd2
 b2x1bWUuaXNfbW91bnRlZCcpOgotKyAgICAgICAgICAgICAgICBtcCA9IHZvbFsnZGV2J10uR2V0
 UHJvcGVydHkoJ3ZvbHVtZS5tb3VudF9wb2ludCcpCi0rICAgICAgICAgICAgZWxzZToKLSsgICAg
 ICAgICAgICAgICAgaWYgdmVyYm9zZToKLSsgICAgICAgICAgICAgICAgICAgIHByaW50ICJGQlNE
 Ogl0cnlpbmcgIiwgdm9sWydsYWJlbCddLCAib24iLCAnQ2FsaWJyZS0nK2xhYmVsc1tpXQotKyAg
 ICAgICAgICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgICAgICAgICB2b2xbJ3ZvbCddLk1vdW50
 KCdDYWxpYnJlLScrdm9sWydsYWJlbCddLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
 b2xbJ2RldiddLkdldFByb3BlcnR5KCd2b2x1bWUuZnN0eXBlJyksIFtdKQotKyAgICAgICAgICAg
 ICAgICAgICAgbG9vcHMgPSAwCi0rICAgICAgICAgICAgICAgICAgICB3aGlsZSBub3Qgdm9sWydk
 ZXYnXS5HZXRQcm9wZXJ0eSgndm9sdW1lLmlzX21vdW50ZWQnKToKLSsgICAgICAgICAgICAgICAg
 ICAgICAgICB0aW1lLnNsZWVwKDEpCi0rICAgICAgICAgICAgICAgICAgICAgICAgbG9vcHMgKz0g
 MQotKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGxvb3BzID4gMTAwOgotKyAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICBwcmludCAiRVJST1I6IFRpbWVvdXQgd2FpdGluZyBmb3IgbW91bnQg
 dG8gY29tcGxldGUiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0rICAg
 ICAgICAgICAgICAgICAgICBtcCA9IHZvbFsnZGV2J10uR2V0UHJvcGVydHkoJ3ZvbHVtZS5tb3Vu
 dF9wb2ludCcpCi0rICAgICAgICAgICAgICAgIGV4Y2VwdCBkYnVzLmV4Y2VwdGlvbnMuREJ1c0V4
 Y2VwdGlvbiwgZToKLSsgICAgICAgICAgICAgICAgICAgIHByaW50ICJGYWlsZWQgdG8gbW91bnQg
 IiwgZQotKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSsKLSsgICAgICAgICAgICAjIE1v
 dW50IFBvaW50IGJlY29tZXMgTW91bnQgUGF0aAotKyAgICAgICAgICAgIG1wICs9ICcvJwotKwot
 KyAgICAgICAgICAgIGlmIHZlcmJvc2U6Ci0rICAgICAgICAgICAgICAgIHByaW50ICJGQlNEOgkg
 IG1vdW50ZWQiLCB2b2xbJ2xhYmVsJ10sICJvbiIsIG1wCi0rICAgICAgICAgICAgaWYgbXRkID09
 IDA6Ci0rICAgICAgICAgICAgICAgIHNlbGYuX21haW5fcHJlZml4ID0gbXAKLSsgICAgICAgICAg
 ICAgICAgc2VsZi5fbWFpbl92b2wgPSB2b2xbJ3ZvbCddCi0rICAgICAgICAgICAgICAgIGlmIHZl
 cmJvc2U6Ci0rICAgICAgICAgICAgICAgICAgICBwcmludCAiRkJTRDoJbWFpbiA9ICIsIHNlbGYu
 X21haW5fcHJlZml4Ci0rICAgICAgICAgICAgaWYgbXRkID09IDE6Ci0rICAgICAgICAgICAgICAg
 IHNlbGYuX2NhcmRfYV9wcmVmaXggPSBtcAotKyAgICAgICAgICAgICAgICBzZWxmLl9jYXJkX2Ff
 dm9sID0gdm9sWyd2b2wnXQotKyAgICAgICAgICAgICAgICBpZiB2ZXJib3NlOgotKyAgICAgICAg
 ICAgICAgICAgICAgcHJpbnQgIkZCU0Q6CWNhcmQgYSA9ICIsIHNlbGYuX2NhcmRfYV9wcmVmaXgK
 LSsgICAgICAgICAgICBpZiBtdGQgPT0gMjoKLSsgICAgICAgICAgICAgICAgc2VsZi5fY2FyZF9i
 X3ByZWZpeCA9IG1wCi0rICAgICAgICAgICAgICAgIHNlbGYuX2NhcmRfYl92b2wgPSB2b2xbJ3Zv
 bCddCi0rICAgICAgICAgICAgICAgIGlmIHZlcmJvc2U6Ci0rICAgICAgICAgICAgICAgICAgICBw
 cmludCAiRkJTRDoJY2FyZCBiID0gIiwgc2VsZi5fY2FyZF9iX3ByZWZpeAotKyAgICAgICAgICAg
 ICAgICAjIE5vdGUgdGhhdCBtdGQgaXMgdXNlZCBhcyBhIGJvb2wuLi4gbm90IGluY3JlbWVudGlu
 ZyBpcyBmaW5lLgotKyAgICAgICAgICAgICAgICBicmVhawotKyAgICAgICAgICAgIG10ZCArPSAx
 Ci0gCi0gICAgICAgICBpZiBtdGQgPiAwOgotICAgICAgICAgICAgIHJldHVybiBUcnVlCi0tICAg
 ICAgICBlbHNlIDoKLS0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLSsgICAgICAgIHJhaXNlIERl
 dmljZUVycm9yKF8oJ1VuYWJsZSB0byBtb3VudCB0aGUgZGV2aWNlJykpCi0rCi0gIwotICMgLS0t
 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gIwot
 LSMgICB0aGlzIG9uZSBpcyBwcmV0dHkgc2ltcGxlOgotLSMgICAgICAganVzdCB1bW91bnQgZWFj
 aCBvZiB0aGUgcHJldmlvdXNseQotLSMgICAgICAgbW91bnRlZCBmaWxlc3lzdGVtcywgdXNpbmcg
 dGhlIG1vdW50IGhlbHBlcgotKyMgICAgdGhpcyBvbmUgaXMgcHJldHR5IHNpbXBsZToKLSsjICAg
 ICAgICBqdXN0IHVtb3VudCBlYWNoIG9mIHRoZSBwcmV2aW91c2x5Ci0rIyAgICAgICAgbW91bnRl
 ZCBmaWxlc3lzdGVtcywgdXNpbmcgdGhlIHN0b3JlZCB2b2x1bWUgb2JqZWN0Ci0gIwotICAgICBk
 ZWYgZWplY3RfZnJlZWJzZChzZWxmKToKLS0gICAgICAgIGNtZCA9ICcvdXNyL2xvY2FsL2Jpbi9j
 YWxpYnJlLW1vdW50LWhlbHBlcicKLS0gICAgICAgIGNtZCA9IFtjbWQsICdlamVjdCddCi0rICAg
 ICAgICBpbXBvcnQgZGJ1cwotKyAgICAgICAgIyBUaGVyZSBzaG91bGQgYmUgc29tZSB3YXkgdG8g
 YWNjZXNzIHRoZSAtdiBhcmcuLi4KLSsgICAgICAgIHZlcmJvc2UgPSBGYWxzZQotIAotICAgICAg
 ICAgaWYgc2VsZi5fbWFpbl9wcmVmaXg6Ci0tICAgICAgICAgICAgI3ByaW50ICJ1bW91bnQgbWFp
 bjoiLCBjbWQsIHNlbGYuX21haW5fZGV2LCBzZWxmLl9tYWluX3ByZWZpeAotKyAgICAgICAgICAg
 IGlmIHZlcmJvc2U6Ci0rICAgICAgICAgICAgICAgIHByaW50ICJGQlNEOgl1bW91bnQgbWFpbjoi
 LCBzZWxmLl9tYWluX3ByZWZpeAotICAgICAgICAgICAgIHRyeToKLS0gICAgICAgICAgICAgICAg
 cCA9IHN1YnByb2Nlc3MuUG9wZW4oY21kICsgW3NlbGYuX21haW5fZGV2LCBzZWxmLl9tYWluX3By
 ZWZpeF0pCi0tICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6Ci0tICAgICAgICAgICAgICAgIHJh
 aXNlIERldmljZUVycm9yKAotLSAgICAgICAgICAgICAgICBfKCdDb3VsZCBub3QgZmluZCBtb3Vu
 dCBoZWxwZXI6ICVzLicpJWNtZFswXSkKLS0gICAgICAgICAgICB3aGlsZSBwLnBvbGwoKSBpcyBO
 b25lOgotLSAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDAuMSkKLSsgICAgICAgICAgICAgICAg
 c2VsZi5fbWFpbl92b2wuVW5tb3VudChbXSkKLSsgICAgICAgICAgICBleGNlcHQgZGJ1cy5leGNl
 cHRpb25zLkRCdXNFeGNlcHRpb24sIGU6Ci0rICAgICAgICAgICAgICAgIHByaW50ICdVbmFibGUg
 dG8gZWplY3QgJywgZQotIAotICAgICAgICAgaWYgc2VsZi5fY2FyZF9hX3ByZWZpeDoKLS0gICAg
 ICAgICAgICAjcHJpbnQgInVtb3VudCBjYXJkIGE6IiwgY21kLCBzZWxmLl9jYXJkX2FfZGV2LCBz
 ZWxmLl9jYXJkX2FfcHJlZml4Ci0rICAgICAgICAgICAgaWYgdmVyYm9zZToKLSsgICAgICAgICAg
 ICAgICAgcHJpbnQgIkZCU0Q6CXVtb3VudCBjYXJkIGE6Iiwgc2VsZi5fY2FyZF9hX3ByZWZpeAot
 ICAgICAgICAgICAgIHRyeToKLS0gICAgICAgICAgICAgICAgcCA9IHN1YnByb2Nlc3MuUG9wZW4o
 Y21kICsgW3NlbGYuX2NhcmRfYV9kZXYsICBzZWxmLl9jYXJkX2FfcHJlZml4XSkKLS0gICAgICAg
 ICAgICBleGNlcHQgT1NFcnJvcjoKLS0gICAgICAgICAgICAgICAgcmFpc2UgRGV2aWNlRXJyb3Io
 Ci0tICAgICAgICAgICAgICAgIF8oJ0NvdWxkIG5vdCBmaW5kIG1vdW50IGhlbHBlcjogJXMuJykl
 Y21kWzBdKQotLSAgICAgICAgICAgIHdoaWxlIHAucG9sbCgpIGlzIE5vbmU6Ci0tICAgICAgICAg
 ICAgICAgIHRpbWUuc2xlZXAoMC4xKQotKyAgICAgICAgICAgICAgICBzZWxmLl9jYXJkX2Ffdm9s
 LlVubW91bnQoW10pCi0rICAgICAgICAgICAgZXhjZXB0IGRidXMuZXhjZXB0aW9ucy5EQnVzRXhj
 ZXB0aW9uLCBlOgotKyAgICAgICAgICAgICAgICBwcmludCAnVW5hYmxlIHRvIGVqZWN0ICcsIGUK
 LSAKLSAgICAgICAgIGlmIHNlbGYuX2NhcmRfYl9wcmVmaXg6Ci0tICAgICAgICAgICAgI3ByaW50
 ICJ1bW91bnQgY2FyZCBiOiIsIGNtZCwgc2VsZi5fY2FyZF9iX2Rldiwgc2VsZi5fY2FyZF9iX3By
 ZWZpeAotKyAgICAgICAgICAgIGlmIHZlcmJvc2U6Ci0rICAgICAgICAgICAgICAgIHByaW50ICJG
 QlNEOgl1bW91bnQgY2FyZCBiOiIsIHNlbGYuX2NhcmRfYl9wcmVmaXgKLSAgICAgICAgICAgICB0
 cnk6Ci0tICAgICAgICAgICAgICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCArIFtzZWxmLl9j
 YXJkX2JfZGV2LCBzZWxmLl9jYXJkX2JfcHJlZml4XSkKLS0gICAgICAgICAgICBleGNlcHQgT1NF
 cnJvcjoKLS0gICAgICAgICAgICAgICAgcmFpc2UgRGV2aWNlRXJyb3IoCi0tICAgICAgICAgICAg
 ICAgIF8oJ0NvdWxkIG5vdCBmaW5kIG1vdW50IGhlbHBlcjogJXMuJyklY21kWzBdKQotLSAgICAg
 ICAgICAgIHdoaWxlIHAucG9sbCgpIGlzIE5vbmU6Ci0tICAgICAgICAgICAgICAgIHRpbWUuc2xl
 ZXAoMC4xKQotKyAgICAgICAgICAgICAgICBzZWxmLl9jYXJkX2Jfdm9sLlVubW91bnQoW10pCi0r
 ICAgICAgICAgICAgZXhjZXB0IGRidXMuZXhjZXB0aW9ucy5EQnVzRXhjZXB0aW9uLCBlOgotKyAg
 ICAgICAgICAgICAgICBwcmludCAnVW5hYmxlIHRvIGVqZWN0ICcsIGUKLSAKLSAgICAgICAgIHNl
 bGYuX21haW5fcHJlZml4ID0gTm9uZQotICAgICAgICAgc2VsZi5fY2FyZF9hX3ByZWZpeCA9IE5v
 bmUKLUBAIC04NTksMTEgKzg4MSwxMCBAQAotICAgICAgICAgICAgICAgICAgICAgdGltZS5zbGVl
 cCg3KQotICAgICAgICAgICAgICAgICAgICAgc2VsZi5vcGVuX2xpbnV4KCkKLSAgICAgICAgICAg
 ICBpZiBpc2ZyZWVic2Q6Ci0tICAgICAgICAgICAgICAgIHNlbGYuX21haW5fZGV2ID0gc2VsZi5f
 Y2FyZF9hX2RldiA9IHNlbGYuX2NhcmRfYl9kZXYgPSBOb25lCi0rICAgICAgICAgICAgICAgIHNl
 bGYuX21haW5fdm9sID0gc2VsZi5fY2FyZF9hX3ZvbCA9IHNlbGYuX2NhcmRfYl92b2wgPSBOb25l
 Ci0gICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgIHNlbGYub3Blbl9m
 cmVlYnNkKCkKLSAgICAgICAgICAgICAgICAgZXhjZXB0IERldmljZUVycm9yOgotLSAgICAgICAg
 ICAgICAgICAgICAgc3VicHJvY2Vzcy5Qb3BlbihbImNhbWNvbnRyb2wiLCAicmVzY2FuIiwgImFs
 bCJdKQotICAgICAgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgyKQotICAgICAgICAgICAgICAg
 ICAgICAgc2VsZi5vcGVuX2ZyZWVic2QoKQotICAgICAgICAgICAgIGlmIGlzd2luZG93czoKZGlm
 ZiAtcnVOIGNhbGlicmUvcGtnLXBsaXN0IGNhbGlicmUubmV3L3BrZy1wbGlzdAotLS0gY2FsaWJy
 ZS9wa2ctcGxpc3QJMjAxMi0wMi0wNCAxOTowOTo0OS4wMDAwMDAwMDAgLTA2MDAKKysrIGNhbGli
 cmUubmV3L3BrZy1wbGlzdAkyMDEyLTAyLTA3IDAzOjM3OjM0LjAwMDAwMDAwMCAtMDYwMApAQCAt
 NTAzLDYgKzUwMyw3IEBACiBsaWIvY2FsaWJyZS9jYWxpYnJlL2d1aTIvYWRkX3dpemFyZC9fX2lu
 aXRfXy5weQogbGliL2NhbGlicmUvY2FsaWJyZS9ndWkyL2FkZF93aXphcmQvc2Nhbl91aS5weQog
 bGliL2NhbGlicmUvY2FsaWJyZS9ndWkyL2FkZF93aXphcmQvd2VsY29tZV91aS5weQorbGliL2Nh
 bGlicmUvY2FsaWJyZS9ndWkyL2F1dG9fYWRkLnB5CiBsaWIvY2FsaWJyZS9jYWxpYnJlL2d1aTIv
 YmFycy5weQogbGliL2NhbGlicmUvY2FsaWJyZS9ndWkyL2Jvb2tfZGV0YWlscy5weQogbGliL2Nh
 bGlicmUvY2FsaWJyZS9ndWkyL2NhdGFsb2cvX19pbml0X18ucHkK
 --=_839a74137ce3451b24301eabc0bf56af--
 
State-Changed-From-To: open->closed 
State-Changed-By: scheidell 
State-Changed-When: Fri Feb 17 20:11:46 UTC 2012 
State-Changed-Why:  
Duplicate of 164841 

http://www.freebsd.org/cgi/query-pr.cgi?pr=163948 
>Unformatted:
