<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>160985</bug_id>
          
          <creation_ts>2016-08-18 17:01:28 -0700</creation_ts>
          <short_desc>REGRESSION (r204477): Running LayoutTests on ios-simulator became ~15 minutes slower</short_desc>
          <delta_ts>2016-08-20 10:31:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryan Haddad">ryanhaddad</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1221257</commentid>
    <comment_count>0</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-08-18 17:01:28 -0700</bug_when>
    <thetext>Running LayoutTests on ios-simulator became ~15 minutes slower between r204473 - r204483</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221259</commentid>
    <comment_count>1</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-08-18 17:02:49 -0700</bug_when>
    <thetext>I have not verified that it is the regression point, but https://trac.webkit.org/changeset/204477 seems like a suspect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221264</commentid>
    <comment_count>2</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-08-18 17:12:10 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Running LayoutTests on ios-simulator became ~15 minutes slower between
&gt; r204473 - r204483

https://trac.webkit.org/log/?verbose=on&amp;rev=204483&amp;stop_rev=204473</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221320</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-08-18 21:29:34 -0700</bug_when>
    <thetext>Happens because I removed a @memoized</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221322</commentid>
    <comment_count>4</comment_count>
      <attachid>286437</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-08-18 21:53:34 -0700</bug_when>
    <thetext>Created attachment 286437
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221326</commentid>
    <comment_count>5</comment_count>
      <attachid>286437</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-08-18 22:18:05 -0700</bug_when>
    <thetext>Comment on attachment 286437
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=286437&amp;action=review

Seems OK as a quick fix, r=me pending EWS.

&gt; Tools/Scripts/webkitpy/port/base.py:43
&gt; +import traceback

?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221327</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-08-18 22:26:21 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 286437 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=286437&amp;action=review
&gt; 
&gt; Seems OK as a quick fix, r=me pending EWS.

Quick fix? Seems like a good long-term direction to me!

&gt; &gt; Tools/Scripts/webkitpy/port/base.py:43
&gt; &gt; +import traceback
&gt; 
&gt; ?

Was for debugging. Weill remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221330</commentid>
    <comment_count>7</comment_count>
      <attachid>286439</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-08-18 22:57:42 -0700</bug_when>
    <thetext>Created attachment 286439
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221361</commentid>
    <comment_count>8</comment_count>
      <attachid>286453</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-08-19 07:50:48 -0700</bug_when>
    <thetext>Created attachment 286453
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221377</commentid>
    <comment_count>9</comment_count>
      <attachid>286453</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-08-19 09:26:24 -0700</bug_when>
    <thetext>Comment on attachment 286453
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=286453&amp;action=review

Still seems to not work, per EWS.

&gt; Tools/Scripts/webkitpy/layout_tests/views/printing.py:51
&gt; -        optparse.make_option(&apos;--debug-rwt-logging&apos;, action=&apos;store_true&apos;, default=False,
&gt; +        optparse.make_option(&apos;--debug-rwt-logging&apos;, action=&apos;store_true&apos;, default=True,

?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221386</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-08-19 10:16:06 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Comment on attachment 286453 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=286453&amp;action=review
&gt; 
&gt; Still seems to not work, per EWS.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/views/printing.py:51
&gt; &gt; -        optparse.make_option(&apos;--debug-rwt-logging&apos;, action=&apos;store_true&apos;, default=False,
&gt; &gt; +        optparse.make_option(&apos;--debug-rwt-logging&apos;, action=&apos;store_true&apos;, default=True,
&gt; 
&gt; ?

Just trying to get more data from EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221389</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-08-19 10:20:45 -0700</bug_when>
    <thetext>This is the current state of ews125 - no simulators are running.

== Device Types ==
iPhone 4s (com.apple.CoreSimulator.SimDeviceType.iPhone-4s)
iPhone 5 (com.apple.CoreSimulator.SimDeviceType.iPhone-5)
iPhone 5s (com.apple.CoreSimulator.SimDeviceType.iPhone-5s)
iPhone 6 (com.apple.CoreSimulator.SimDeviceType.iPhone-6)
iPhone 6 Plus (com.apple.CoreSimulator.SimDeviceType.iPhone-6-Plus)
iPhone 6s (com.apple.CoreSimulator.SimDeviceType.iPhone-6s)
iPhone 6s Plus (com.apple.CoreSimulator.SimDeviceType.iPhone-6s-Plus)
iPad 2 (com.apple.CoreSimulator.SimDeviceType.iPad-2)
iPad Retina (com.apple.CoreSimulator.SimDeviceType.iPad-Retina)
iPad Air (com.apple.CoreSimulator.SimDeviceType.iPad-Air)
iPad Air 2 (com.apple.CoreSimulator.SimDeviceType.iPad-Air-2)
iPad Pro (com.apple.CoreSimulator.SimDeviceType.iPad-Pro)
Apple TV 1080p (com.apple.CoreSimulator.SimDeviceType.Apple-TV-1080p)
Apple Watch - 38mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-38mm)
Apple Watch - 42mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-42mm)
== Runtimes ==
iOS 9.3 (9.3 - 13E230) (com.apple.CoreSimulator.SimRuntime.iOS-9-3)
tvOS 9.2 (9.2 - 13Y227) (com.apple.CoreSimulator.SimRuntime.tvOS-9-2)
watchOS 2.2 (2.2 - 13V143) (com.apple.CoreSimulator.SimRuntime.watchOS-2-2)
== Devices ==
-- iOS 9.3 --
    iPhone 4s (83B9CBEF-DFE1-49ED-ADE6-8A2B1EEDC8E0) (Shutdown)
    iPhone 5 (FD7F1ADC-EC11-4CC7-9068-DA72F55623D2) (Shutdown)
    iPhone 5s (0ACB0ECB-9E0B-4FC5-9468-833E7F06A0DC) (Shutdown)
    iPhone 5s WebKit Tester0 (E5F27726-990D-49C8-846A-F5B58AD8854F) (Shutdown)
    iPhone 5s WebKit Tester1 (E82550EA-1636-4A39-A9E9-C0D596C5BFAE) (Shutdown)
    iPhone 5s WebKit Tester10 (7143A314-7F75-4177-9714-0334BD600C83) (Shutdown)
    iPhone 5s WebKit Tester11 (933B4084-BCDF-49F0-BE66-4222B2445A7D) (Shutdown)
    iPhone 5s WebKit Tester2 (709358B7-66C2-4FF9-9C9E-F7CF36A35EE9) (Shutdown)
    iPhone 5s WebKit Tester3 (BFBEA99B-782D-47CB-82A2-FF743F16BD1E) (Shutdown)
    iPhone 5s WebKit Tester4 (BD292BE8-FD72-43C6-90F1-781394EAD50C) (Shutdown)
    iPhone 5s WebKit Tester5 (B9FA4497-A16F-4344-A280-7A383958397E) (Shutdown)
    iPhone 5s WebKit Tester6 (C1F2311B-B143-4533-8D0D-0225AA752CA1) (Shutdown)
    iPhone 5s WebKit Tester7 (B0404AA8-015F-436D-99E9-7B6CC5096260) (Shutdown)
    iPhone 5s WebKit Tester8 (EB313F85-2B4D-43DE-8CCC-5870194EC637) (Shutdown)
    iPhone 5s WebKit Tester9 (5880BD0D-6C46-4ABF-A947-56DB7EF2C1B6) (Shutdown)
    iPhone 6 (203852CE-F118-4969-B3ED-251ACAA21502) (Shutdown)
    iPhone 6 Plus (C6F962E8-B96C-4464-8566-865A90F5A9A4) (Shutdown)
    iPhone 6s (DD1DC7A5-5C01-4B33-87C6-D05F104B05FD) (Shutdown)
    iPhone 6s Plus (4E269DE9-1F1E-44E1-AABD-4B024B9B3BEA) (Shutdown)
    iPad 2 (77567788-B685-42F8-89CB-46AD6BFDF8E0) (Shutdown)
    iPad Retina (0F339C3B-7D9A-4B01-8764-55F131BB3C5D) (Shutdown)
    iPad Air (5F2023DA-6A45-4ABE-B5C0-33475CA0E4F4) (Shutdown)
    iPad Air 2 (57646313-2838-428F-929F-0F8A30A2B298) (Shutdown)
    iPad Pro (9D51701E-8E4E-488E-8CA5-548C3A8BB718) (Shutdown)
-- tvOS 9.2 --
    Apple TV 1080p (DFFCCBBE-AC89-462C-BA9B-930684E691D6) (Shutdown)
-- watchOS 2.2 --
    Apple Watch - 38mm (B6C6C969-F0E9-4C82-9493-F91B47EB9DB1) (Shutdown)
    Apple Watch - 42mm (F3C10B08-4CB2-4E6C-A493-02C6A3D4BF5E) (Shutdown)
-- Unavailable: com.apple.CoreSimulator.SimRuntime.iOS-8-1 --
    iPhone 4s (8B292CBA-49C7-4ECB-9E82-12E39491E67B) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5 (08C0C496-6BA5-4BD2-A4B1-3B8B5B02631A) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s (8644BA8C-046F-4103-A3A4-2739F4CD3729) (Shutdown) (unavailable, runtime profile not found)
    iPhone 6 (111501E6-628A-4750-A2E2-19E7DE276E35) (Shutdown) (unavailable, runtime profile not found)
    iPhone 6 Plus (5E825F3F-280D-4F3A-931D-DB09855CD2CA) (Shutdown) (unavailable, runtime profile not found)
    iPad 2 (CF3C6F15-390F-4867-9EAE-7E8B771936FF) (Shutdown) (unavailable, runtime profile not found)
    iPad Retina (473D44A3-A089-4F57-BE70-F8971D4CA663) (Shutdown) (unavailable, runtime profile not found)
    iPad Air (10D99810-DB63-489D-93B5-B7A07B51A5A9) (Shutdown) (unavailable, runtime profile not found)
    Resizable iPad (1B0E493D-0D7E-4A61-BC31-A369452C4597) (Shutdown) (unavailable, runtime profile not found)
    Resizable iPhone (FFA4B3B3-0FE4-4FC0-A6FE-8E21A79EA0E9) (Shutdown) (unavailable, runtime profile not found)
-- Unavailable: com.apple.CoreSimulator.SimRuntime.iOS-8-3 --
    iPhone 4s (DAAFF837-C4FA-47BF-B408-93FD7726B07C) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5 (6E44A334-F69B-4413-BD36-D979A18BD657) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s (A85E861A-C6E6-4EEC-89BA-446B5F491F3D) (Shutdown) (unavailable, runtime profile not found)
    iPhone 6 (FFB4C290-7DB7-4C11-87DA-92D5C2A85184) (Shutdown) (unavailable, runtime profile not found)
    iPhone 6 Plus (13813494-1317-4139-8073-9D0C8F61CC5A) (Shutdown) (unavailable, runtime profile not found)
    iPad 2 (665C1FAC-1202-4E99-8065-C92EDCCAA495) (Shutdown) (unavailable, runtime profile not found)
    iPad Retina (A353E090-0900-4D9B-B627-F16DB5503333) (Shutdown) (unavailable, runtime profile not found)
    iPad Air (6787B04E-59B2-4062-B64F-BC4A918931AE) (Shutdown) (unavailable, runtime profile not found)
    Resizable iPad (5D71BC25-ACEE-4158-9937-AAA82AFFF1FB) (Shutdown) (unavailable, runtime profile not found)
    Resizable iPhone (DA3187BA-ABEF-4969-8E4B-57AF64A1C667) (Shutdown) (unavailable, runtime profile not found)
-- Unavailable: com.apple.CoreSimulator.SimRuntime.iOS-8-4 --
    iPhone 4s (7BD1F4C4-EE5C-4D6D-B372-8C1C30843199) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5 (3044E55F-5DFC-40D4-B048-DDC3997D6972) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s (122B15DA-734B-446B-9F79-E54F36B74675) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s For WebKit Development (86E43F77-6B8E-4FB9-8C0E-0CAF0C2A9DDC) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s WebKit Tester (4D8F842A-9723-474B-9AD8-DC38B301339A) (Shutdown) (unavailable, runtime profile not found)
    iPhone 6 (C204DAD5-AE3B-474E-BEA0-02834759F652) (Shutdown) (unavailable, runtime profile not found)
    iPhone 6 Plus (FF45F1DB-945F-4A89-93CF-26998EAC2819) (Shutdown) (unavailable, runtime profile not found)
    iPad 2 (57C99C31-B74E-42E4-A252-217A16C7F6EB) (Shutdown) (unavailable, runtime profile not found)
    iPad Retina (8CDAD1FF-5883-4E71-B671-30585A8F0C0C) (Shutdown) (unavailable, runtime profile not found)
    iPad Air (AB4C2357-0D04-405E-BD44-B9FE80EB610F) (Shutdown) (unavailable, runtime profile not found)
    Resizable iPad (25E3B72F-53A8-48DA-AF65-38795C85D694) (Shutdown) (unavailable, runtime profile not found)
    Resizable iPhone (AEA70BA4-3350-4A99-89AA-89BAB9F7C6C6) (Shutdown) (unavailable, runtime profile not found)
-- Unavailable: com.apple.CoreSimulator.SimRuntime.iOS-9-0 --
    iPhone 4s (6E8ED0A6-4294-48CF-B70F-2BC63DB20552) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5 (18C215D6-C53C-45FA-8EA1-F8D923A44AB0) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s (9932D775-7EFD-480D-85D4-7707E33156AC) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s For WebKit Development (D8CE947E-34B0-4A6F-BFE5-650470C3EDAC) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s WebKit Tester (11F1268E-E5F1-4D63-8275-A6222F051594) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s WebKit Tester0 (648B521A-CA80-4BEC-8B22-39829CFF76E1) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s WebKit Tester1 (980261D6-F1F6-4257-9168-2C05036B3C96) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s WebKit Tester10 (D40A812C-C8DA-44E0-B623-2DED9527678B) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s WebKit Tester2 (A98A6C9A-C7ED-4F08-98A1-3BB7AD1E8849) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s WebKit Tester3 (74069935-BAC6-40A0-8093-332D4C0792E2) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s WebKit Tester4 (59C85241-A2F2-4F0C-8EB4-87CADF09C7B8) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s WebKit Tester5 (1003CE74-D8F6-41B3-AEAB-B525A052FE5C) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s WebKit Tester6 (2B02AE8C-19DB-41C6-A1AA-8690CA3E7FD4) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s WebKit Tester7 (7D7170AF-6588-495D-9791-A17230218BDE) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s WebKit Tester8 (9F32DA9E-9AFE-47AA-8198-E948E795F630) (Shutdown) (unavailable, runtime profile not found)
    iPhone 5s WebKit Tester9 (ED7480EB-9DEA-47CD-8FA0-51500A871BEF) (Shutdown) (unavailable, runtime profile not found)
    iPhone 6 (1A76F377-20A8-486F-9CC4-4FB400B9235B) (Shutdown) (unavailable, runtime profile not found)
    iPhone 6 Plus (06355E16-D584-4A4C-9526-BD44B560CD15) (Shutdown) (unavailable, runtime profile not found)
    iPhone 6s (9D6B6384-1FF9-4DF1-8CF5-011D12111409) (Shutdown) (unavailable, runtime profile not found)
    iPhone 6s Plus (C6F64325-A053-4985-913C-3927B8941019) (Shutdown) (unavailable, runtime profile not found)
    iPad 2 (435187DA-2E97-443F-BD6B-986D68F17953) (Shutdown) (unavailable, runtime profile not found)
    iPad Retina (BEB25059-F6D3-4152-B71E-0A8CF84AE470) (Shutdown) (unavailable, runtime profile not found)
    iPad Air (781E4C50-6E5E-4823-B870-F57DD29C7581) (Shutdown) (unavailable, runtime profile not found)
    iPad Air 2 (8E4B6AB0-F6D0-4762-967F-AFB6EA5C502B) (Shutdown) (unavailable, runtime profile not found)
-- Unavailable: com.apple.CoreSimulator.SimRuntime.watchOS-2-0 --
    Apple Watch - 38mm (883B45D5-0FCC-47C2-B6A1-C0BE1DCD99C1) (Shutdown) (unavailable, runtime profile not found)
    Apple Watch - 42mm (7C3F94B5-1540-46E3-AF58-EA3ED042D069) (Shutdown) (unavailable, runtime profile not found)
== Device Pairs ==
34D921D6-ECFD-4A23-8BEA-DF5547CF4C93 (active, disconnected)
    Watch: Apple Watch - 38mm (B6C6C969-F0E9-4C82-9493-F91B47EB9DB1) (Shutdown)
    Phone: iPhone 6s (DD1DC7A5-5C01-4B33-87C6-D05F104B05FD) (Shutdown)
C55D40F2-C98C-4067-8666-B7E40C4FFDB0 (active, disconnected)
    Watch: Apple Watch - 42mm (F3C10B08-4CB2-4E6C-A493-02C6A3D4BF5E) (Shutdown)
    Phone: iPhone 6s Plus (4E269DE9-1F1E-44E1-AABD-4B024B9B3BEA) (Shutdown)
EC2BF4ED-4CA5-4FC4-9726-3E1303213958 (unavailable)
    Watch: Apple Watch - 38mm (883B45D5-0FCC-47C2-B6A1-C0BE1DCD99C1) (Shutdown)
    Phone: iPhone 6 (1A76F377-20A8-486F-9CC4-4FB400B9235B) (Shutdown)
B667E539-594D-481D-B825-3399EB35C78C (unavailable)
    Watch: Apple Watch - 42mm (7C3F94B5-1540-46E3-AF58-EA3ED042D069) (Shutdown)
    Phone: iPhone 6 Plus (06355E16-D584-4A4C-9526-BD44B560CD15) (Shutdown)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221450</commentid>
    <comment_count>12</comment_count>
      <attachid>286471</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-08-19 13:12:21 -0700</bug_when>
    <thetext>Created attachment 286471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221453</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-19 13:16:42 -0700</bug_when>
    <thetext>Attachment 286471 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/layout_tests/views/printing.py:51:  at least two spaces before inline comment  [pep8/E261] [5]
ERROR: Tools/Scripts/webkitpy/xcode/simulator.py:306:  whitespace before &apos;]&apos;  [pep8/E202] [5]
Total errors found: 2 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221476</commentid>
    <comment_count>14</comment_count>
      <attachid>286478</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-08-19 14:25:23 -0700</bug_when>
    <thetext>Created attachment 286478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221483</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-19 14:35:48 -0700</bug_when>
    <thetext>Attachment 286478 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/layout_tests/views/printing.py:51:  at least two spaces before inline comment  [pep8/E261] [5]
ERROR: Tools/Scripts/webkitpy/xcode/simulator.py:321:  whitespace before &apos;]&apos;  [pep8/E202] [5]
Total errors found: 2 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221507</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-08-19 15:15:15 -0700</bug_when>
    <thetext>https://trac.webkit.org/r204659</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221588</commentid>
    <comment_count>17</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-08-19 19:31:22 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; https://trac.webkit.org/r204659

It looks like this change may have caused simulator tests to fail during shutdown:

15:51:52.256 24455 xcrun simctl shutdown A187C905-270B-4587-89AD-1E612052A49B
An error was encountered processing the command (domain=com.apple.CoreSimulator.SimError, code=159):
Unable to shutdown device in current state: Shutdown

RuntimeError raised: &quot;xcrun simctl shutdown&quot; failed
Traceback (most recent call last):
  File &quot;/Volumes/Data/slave/ios-simulator-9-release-tests-wk2/build/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py&quot;, line 81, in main
    run_details = run(port, options, args, stderr)
  File &quot;/Volumes/Data/slave/ios-simulator-9-release-tests-wk2/build/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py&quot;, line 415, in run
    run_details = manager.run(args)
  File &quot;/Volumes/Data/slave/ios-simulator-9-release-tests-wk2/build/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py&quot;, line 233, in run
    initial_results, retry_results, enabled_pixel_tests_in_retry = self._run_test_subset(default_device_tests, tests_to_skip)
  File &quot;/Volumes/Data/slave/ios-simulator-9-release-tests-wk2/build/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py&quot;, line 274, in _run_test_subset
    self._clean_up_run()
  File &quot;/Volumes/Data/slave/ios-simulator-9-release-tests-wk2/build/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py&quot;, line 327, in _clean_up_run
    self._port.clean_up_test_run()
  File &quot;/Volumes/Data/slave/ios-simulator-9-release-tests-wk2/build/Tools/Scripts/webkitpy/port/ios.py&quot;, line 299, in clean_up_test_run
    self._remove_device(i)
  File &quot;/Volumes/Data/slave/ios-simulator-9-release-tests-wk2/build/Tools/Scripts/webkitpy/port/ios.py&quot;, line 388, in _remove_device
    Simulator.remove_device(number)
  File &quot;/Volumes/Data/slave/ios-simulator-9-release-tests-wk2/build/Tools/Scripts/webkitpy/xcode/simulator.py&quot;, line 338, in remove_device
    Simulator.delete_device(device_udid)
  File &quot;/Volumes/Data/slave/ios-simulator-9-release-tests-wk2/build/Tools/Scripts/webkitpy/xcode/simulator.py&quot;, line 394, in delete_device
    Device.delete(udid)
  File &quot;/Volumes/Data/slave/ios-simulator-9-release-tests-wk2/build/Tools/Scripts/webkitpy/xcode/simulator.py&quot;, line 244, in delete
    Device.shutdown(udid)
  File &quot;/Volumes/Data/slave/ios-simulator-9-release-tests-wk2/build/Tools/Scripts/webkitpy/xcode/simulator.py&quot;, line 233, in shutdown
    raise RuntimeError(&apos;&quot;xcrun simctl shutdown&quot; failed&apos;)
RuntimeError: &quot;xcrun simctl shutdown&quot; failed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221589</commentid>
    <comment_count>18</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-08-19 19:31:42 -0700</bug_when>
    <thetext>https://build.webkit.org/builders/Apple%20iOS%209%20Simulator%20Release%20WK2%20%28Tests%29/builds/8332</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221596</commentid>
    <comment_count>19</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-08-19 19:54:42 -0700</bug_when>
    <thetext>Reverted r204659 for reason:

This change appears to have caused ios-simulator LayoutTests to fail when shutting down the simulator

Committed r204672: &lt;http://trac.webkit.org/changeset/204672&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221608</commentid>
    <comment_count>20</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-08-19 21:07:22 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Reverted r204659 for reason:
&gt; 
&gt; This change appears to have caused ios-simulator LayoutTests to fail when
&gt; shutting down the simulator
&gt; 
&gt; Committed r204672: &lt;http://trac.webkit.org/changeset/204672&gt;

The rollout resolved the issue:
https://build.webkit.org/builders/Apple%20iOS%209%20Simulator%20Release%20WK2%20%28Tests%29/builds/8339</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221614</commentid>
    <comment_count>21</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-08-19 21:47:56 -0700</bug_when>
    <thetext>15:51:51.331 24455 _quit_ios_simulator killing all Simulator processes
15:51:52.255 24455 removing device 0 A187C905-270B-4587-89AD-1E612052A49B
15:51:52.256 24455 xcrun simctl shutdown A187C905-270B-4587-89AD-1E612052A49B
An error was encountered processing the command (domain=com.apple.CoreSimulator.SimError, code=159):
Unable to shutdown device in current state: Shutdown

I should probably just not raise an error if the &apos;xcrun simctl shutdown&apos; fails. Looks like it&apos;s racing with simulator quitting, since I do check the device state before issuing the shutdown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221651</commentid>
    <comment_count>22</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-08-20 10:31:24 -0700</bug_when>
    <thetext>I re-landed after changing the check_call(&apos;xcrun simctl shutdown&apos;) to a call().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221652</commentid>
    <comment_count>23</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-08-20 10:31:40 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/204680</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286437</attachid>
            <date>2016-08-18 21:53:34 -0700</date>
            <delta_ts>2016-08-19 13:12:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160985-20160818215143.patch</filename>
            <type>text/plain</type>
            <size>13011</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NTU5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmI1NTVlZjFjM2JlNGIzZDhhNzFkNTdkMjhhZTk3NWRk
MmQyZTE0OC4uZWJiZTZmYjBhZmZkZmNiYzc0NDNjNjhmMzA1ZDRjOGRlMTY4ODdlZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0
IEBACisyMDE2LTA4LTE4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFJFR1JFU1NJT04gKHIyMDQ0NzcpOiBSdW5uaW5nIExheW91dFRlc3RzIG9uIGlv
cy1zaW11bGF0b3IgYmVjYW1lIH4xNSBtaW51dGVzIHNsb3dlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwOTg1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICByMjA0NDc3IHJlbW92ZWQgQG1l
bW9pemVkIG9uIGEgY291cGxlIG9mIGlvcy5weSBmdW5jdGlvbnMsIGNhdXNpbmcgdGhlbSB0byBp
bnN0YW50aWF0ZQorICAgICAgICBhIFNpbXVsYXRvcigpIG9uIGV2ZXJ5IGNhbGwsIHdoaWNoIGNh
dXNlcyAneGNydW4gc2ltY3RsIGxpc3QnIHRvIHJ1bi4gVGhlIGZ1bmN0aW9ucworICAgICAgICBt
dXN0IG5vdCBiZSBAbWVtb2l6ZWQsIGJlY2F1c2UgdGhlaXIgcmV0dXJuIHZhbHVlIGRlcGVuZHMg
b24gdGhlIHZhbHVlIG9mIHNpbXVsYXRvcl9kZXZpY2VfdHlwZSgpLgorICAgICAgICAKKyAgICAg
ICAgRml4IGJ5IGFkZGluZyBzb21lIGdsb2JhbCBzdGF0ZSBpbiBzaW11bGF0b3IucHkgdGhhdCB0
cmFja3MgdGhlIGNyZWF0ZWQgZGV2aWNlcyAKKyAgICAgICAgaW4gYSB3b3JrZXIgbnVtYmVyIC0+
IERldmljZSBkaWN0aW9uYXJ5LiBFeHBsaWNpdGx5IGNyZWF0ZSBkZXZpY2VzIGluIF9jcmVhdGVf
c2ltdWxhdG9ycygpLAorICAgICAgICBhbmQgZGVsZXRlIHRoZW0gaW4gY2xlYW5fdXBfdGVzdF9y
dW4oKS4KKyAgICAgICAgCisgICAgICAgIFNpbXVsYXRvciB0cmFja3MgdGhlIGRldmljZXMgaW4g
YSBnbG9iYWwgZGljdGlvbmFyeSwgc2luY2Ugc3RhdGUgbmVlZHMgdG8gcGVyc2lzdAorICAgICAg
ICBhY3Jvc3MgZGlmZmVyZW50IGluc3RhbmNlcyBvZiBJT1NTaW11bGF0b3JQb3J0LgorICAgICAg
ICAKKyAgICAgICAgQW5ub3lpbmdseSwgdGhlICJDb21tYW5kIGxpbmU6IiBkdW1waW5nIHRyaWVk
IHRvIGFjY2VzcyBhIGRldmljZSBiZWZvcmUgd2UnZCBkb25lCisgICAgICAgIGFueSBzZXR1cC4g
UmF0aGVyIHRoYW4gaW1wbGljaXRseSBjcmVhdGluZyBhIGRldmljZSBoZXJlICh3aGljaCB0aGUg
b2xkIGNvZGUgZGlkKSwKKyAgICAgICAgb3ZlcnJpZGUgdGhlIG1vcmUgY2xlYXJseSBuYW1lZCBk
cml2ZXJfY21kX2xpbmVfZm9yX2xvZ2dpbmcoKSBpbiBJT1NTaW11bGF0b3JQb3J0CisgICAgICAg
IGFuZCBzZXQgZmxhZyB0byBzYXkgdGhhdCBkZXZpY2VfaWRfZm9yX3dvcmtlcl9udW1iZXIoKSBk
b2Vzbid0IG5lZWQgdG8gcmV0dXJuIGEgcmVhbAorICAgICAgICBkZXZpY2UgaWQuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weToKKyAg
ICAgICAgKFByaW50ZXIucHJpbnRfY29uZmlnKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3BvcnQvYmFzZS5weToKKyAgICAgICAgKFBvcnQuZHJpdmVyX2NtZF9saW5lX2Zvcl9sb2dnaW5n
KToKKyAgICAgICAgKFBvcnQuZHJpdmVyX2NtZF9saW5lKTogRGVsZXRlZC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5OgorICAgICAgICAoSU9TU2ltdWxhdG9yRHJp
dmVyLmNtZF9saW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5Ogor
ICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC5fX2luaXRfXyk6CisgICAgICAgIChJT1NTaW11bGF0
b3JQb3J0LmRyaXZlcl9jbWRfbGluZV9mb3JfbG9nZ2luZyk6CisgICAgICAgIChJT1NTaW11bGF0
b3JQb3J0Ll9jcmVhdGVfc2ltdWxhdG9ycyk6CisgICAgICAgIChJT1NTaW11bGF0b3JQb3J0LnNl
dHVwX3Rlc3RfcnVuKToKKyAgICAgICAgKElPU1NpbXVsYXRvclBvcnQuY2xlYW5fdXBfdGVzdF9y
dW4pOgorICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC5fY3JlYXRlX2RldmljZSk6CisgICAgICAg
IChJT1NTaW11bGF0b3JQb3J0Ll9yZW1vdmVfZGV2aWNlKToKKyAgICAgICAgKElPU1NpbXVsYXRv
clBvcnQuX3Rlc3RpbmdfZGV2aWNlKToKKyAgICAgICAgKElPU1NpbXVsYXRvclBvcnQuZGV2aWNl
X2lkX2Zvcl93b3JrZXJfbnVtYmVyKToKKyAgICAgICAgKElPU1NpbXVsYXRvclBvcnQuX3NldF9k
ZXZpY2VfY2xhc3MpOiBEZWxldGVkLgorICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC50ZXN0aW5n
X2RldmljZSk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRf
dGVzdGNhc2UucHk6CisgICAgICAgIChQb3J0VGVzdENhc2UudGVzdF9kcml2ZXJfY21kX2xpbmUp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdG9yLnB5OgorICAgICAg
ICAoU2ltdWxhdG9yKToKKyAgICAgICAgKFNpbXVsYXRvci5jcmVhdGVfZGV2aWNlKToKKyAgICAg
ICAgKFNpbXVsYXRvci5yZW1vdmVfZGV2aWNlKToKKyAgICAgICAgKFNpbXVsYXRvci5kZXZpY2Vf
bnVtYmVyKToKKwogMjAxNi0wOC0xNyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQG5hdmVy
Y29ycC5jb20+CiAKICAgICAgICAgW0VGTF0gQnVtcCBlZmwgdmVyc2lvbiBmcm9tIDEuMTcgdG8g
MS4xOApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmll
d3MvcHJpbnRpbmcucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3
cy9wcmludGluZy5weQppbmRleCA2NWM3OTU3MThiYzBmODVkYmZmOGNjNTU3YWM0NTJiZGMyMThl
ZmQ3Li4wZGVjOWM4MWFjNGQ0Nzg1ZDEwYTc2NzMwM2Y3MzE5ODczYTM5YTJlIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5w
eQpAQCAtOTQsNyArOTQsNyBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYu
X3ByaW50X2RlZmF1bHQoIlJlZ3VsYXIgdGltZW91dDogJXMsIHNsb3cgdGVzdCB0aW1lb3V0OiAl
cyIgJQogICAgICAgICAgICAgICAgICAgKHNlbGYuX29wdGlvbnMudGltZV9vdXRfbXMsIHNlbGYu
X29wdGlvbnMuc2xvd190aW1lX291dF9tcykpCiAKLSAgICAgICAgc2VsZi5fcHJpbnRfZGVmYXVs
dCgnQ29tbWFuZCBsaW5lOiAnICsgJyAnLmpvaW4oc2VsZi5fcG9ydC5kcml2ZXJfY21kX2xpbmUo
KSkpCisgICAgICAgIHNlbGYuX3ByaW50X2RlZmF1bHQoJ0NvbW1hbmQgbGluZTogJyArICcgJy5q
b2luKHNlbGYuX3BvcnQuZHJpdmVyX2NtZF9saW5lX2Zvcl9sb2dnaW5nKCkpKQogICAgICAgICBz
ZWxmLl9wcmludF9kZWZhdWx0KCcnKQogCiAgICAgZGVmIHByaW50X2ZvdW5kKHNlbGYsIG51bV9h
bGxfdGVzdF9maWxlcywgbnVtX3RvX3J1biwgcmVwZWF0X2VhY2gsIGl0ZXJhdGlvbnMpOgpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQppbmRleCBiNjQ1YTUzZTkxNzMwMDViZDY0OWQwYjI5
MGZmYjExMDMyMjEyY2IyLi41MGMwNmFhMmZjOTkyOTJmNzI5YzYzYmZkNjU1MTA0Zjg5N2M1YzEz
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQpAQCAtNDAsNiArNDAsNyBAQCBpbXBv
cnQgb3BlcmF0b3IKIGltcG9ydCBvcHRwYXJzZQogaW1wb3J0IHJlCiBpbXBvcnQgc3lzCitpbXBv
cnQgdHJhY2ViYWNrCiAKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0CiAKQEAg
LTY1OCw3ICs2NTksNyBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgICAgICByZXR1cm4g
dGVzdF9uYW1lICsgJy8nCiAgICAgICAgIHJldHVybiB0ZXN0X25hbWUKIAotICAgIGRlZiBkcml2
ZXJfY21kX2xpbmUoc2VsZik6CisgICAgZGVmIGRyaXZlcl9jbWRfbGluZV9mb3JfbG9nZ2luZyhz
ZWxmKToKICAgICAgICAgIiIiUHJpbnRzIHRoZSBEUlQgY29tbWFuZCBsaW5lIHRoYXQgd2lsbCBi
ZSB1c2VkLiIiIgogICAgICAgICBkcml2ZXIgPSBzZWxmLmNyZWF0ZV9kcml2ZXIoMCkKICAgICAg
ICAgcmV0dXJuIGRyaXZlci5jbWRfbGluZShzZWxmLmdldF9vcHRpb24oJ3BpeGVsX3Rlc3RzJyks
IFtdKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkKaW5kZXggYTUzOTk0YjQ2NmI1
Mzc0ODUwYjMxNTFkYWQ4ZDI3YzRhMWQyMWI5MS4uYjMzNDMwYzVjMThhMmQ1MmM5NjY0OWJlMGI3
ZDQ0MDZkZWQzNzc2NSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Ry
aXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5CkBAIC01
OTksNyArNTk5LDcgQEAgY2xhc3MgSU9TU2ltdWxhdG9yRHJpdmVyKERyaXZlcik6CiAgICAgICAg
IGR1bXBfdG9vbF9hcmdzID0gY21kWzE6XQogICAgICAgICBwcm9kdWN0X2RpciA9IHNlbGYuX3Bv
cnQuX2J1aWxkX3BhdGgoKQogICAgICAgICByZWxheV9hcmdzID0gWwotICAgICAgICAgICAgJy11
ZGlkJywgc2VsZi5fcG9ydC50ZXN0aW5nX2RldmljZShzZWxmLl93b3JrZXJfbnVtYmVyKS51ZGlk
LAorICAgICAgICAgICAgJy11ZGlkJywgc2VsZi5fcG9ydC5kZXZpY2VfaWRfZm9yX3dvcmtlcl9u
dW1iZXIoc2VsZi5fd29ya2VyX251bWJlciksCiAgICAgICAgICAgICAnLXByb2R1Y3REaXInLCBw
cm9kdWN0X2RpciwKICAgICAgICAgICAgICctYXBwJywgZHVtcF90b29sLAogICAgICAgICBdCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9wb3J0L2lvcy5weQppbmRleCAwOTg1YWI0NWI3OTk5OGJkOTMzMDA3MmI1
YzkyMGM1NmQ5NTc1YjEzLi5kM2Q5YzYwZjc1Yjg0MmViMTc1ODkyN2IwYmY2YmFmMGY4OTllNDg3
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3MucHkKQEAgLTk4LDYgKzk4LDcgQEAgY2xhc3Mg
SU9TU2ltdWxhdG9yUG9ydChBcHBsZVBvcnQpOgogICAgICAgICBzdXBlcihJT1NTaW11bGF0b3JQ
b3J0LCBzZWxmKS5fX2luaXRfXyhob3N0LCBwb3J0X25hbWUsICoqa3dhcmdzKQogCiAgICAgICAg
IG9wdGlvbmFsX2RldmljZV9jbGFzcyA9IHNlbGYuZ2V0X29wdGlvbignZGV2aWNlX2NsYXNzJykK
KyAgICAgICAgc2VsZi5fcHJpbnRpbmdfY21kX2xpbmUgPSBGYWxzZQogICAgICAgICBzZWxmLl9k
ZXZpY2VfY2xhc3MgPSBvcHRpb25hbF9kZXZpY2VfY2xhc3MgaWYgb3B0aW9uYWxfZGV2aWNlX2Ns
YXNzIGVsc2Ugc2VsZi5ERUZBVUxUX0RFVklDRV9DTEFTUwogICAgICAgICBfbG9nLmRlYnVnKCdJ
T1NTaW11bGF0b3JQb3J0IF9kZXZpY2VfY2xhc3MgaXMgJXMnLCBzZWxmLl9kZXZpY2VfY2xhc3Mp
CiAKQEAgLTEwOCw2ICsxMDksMTMgQEAgY2xhc3MgSU9TU2ltdWxhdG9yUG9ydChBcHBsZVBvcnQp
OgogICAgICAgICAgICAgcmV0dXJuICdXZWJLaXRUZXN0UnVubmVyQXBwLmFwcCcKICAgICAgICAg
cmV0dXJuICdEdW1wUmVuZGVyVHJlZS5hcHAnCiAKKyAgICBkZWYgZHJpdmVyX2NtZF9saW5lX2Zv
cl9sb2dnaW5nKHNlbGYpOgorICAgICAgICAjIEF2b2lkIHNwaW5uaW5nIHVwIGRldmljZXMganVz
dCBmb3IgbG9nZ2luZyB0aGUgY29tbWFuZGxpbmUuCisgICAgICAgIHNlbGYuX3ByaW50aW5nX2Nt
ZF9saW5lID0gVHJ1ZQorICAgICAgICByZXN1bHQgPSBzdXBlcihJT1NTaW11bGF0b3JQb3J0LCBz
ZWxmKS5kcml2ZXJfY21kX2xpbmVfZm9yX2xvZ2dpbmcoKQorICAgICAgICBzZWxmLl9wcmludGlu
Z19jbWRfbGluZSA9IEZhbHNlCisgICAgICAgIHJldHVybiByZXN1bHQKKwogICAgIEBwcm9wZXJ0
eQogICAgIEBtZW1vaXplZAogICAgIGRlZiBzaW11bGF0b3JfcnVudGltZShzZWxmKToKQEAgLTIy
NCw3ICsyMzIsNiBAQCBjbGFzcyBJT1NTaW11bGF0b3JQb3J0KEFwcGxlUG9ydCk6CiAgICAgICAg
IHJldHVybiBsaXN0KHJldmVyc2VkKFtzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fd2Via2l0
X2Jhc2VsaW5lX3BhdGgocCksICdUZXN0RXhwZWN0YXRpb25zJykgZm9yIHAgaW4gc2VsZi5iYXNl
bGluZV9zZWFyY2hfcGF0aCgpXSkpCiAKICAgICBkZWYgX3NldF9kZXZpY2VfY2xhc3Moc2VsZiwg
ZGV2aWNlX2NsYXNzKToKLSAgICAgICAgIyBJZGVhbGx5IHdlJ2QgZW5zdXJlIHRoYXQgbm8gc2lt
dWxhdG9ycyBhcmUgcnVubmluZyB3aGVuIHRoaXMgaXMgY2FsbGVkLgogICAgICAgICBzZWxmLl9k
ZXZpY2VfY2xhc3MgPSBkZXZpY2VfY2xhc3MgaWYgZGV2aWNlX2NsYXNzIGVsc2Ugc2VsZi5ERUZB
VUxUX0RFVklDRV9DTEFTUwogCiAgICAgZGVmIF9jcmVhdGVfc2ltdWxhdG9ycyhzZWxmKToKQEAg
LTIzNiw4ICsyNDMsMTIgQEAgY2xhc3MgSU9TU2ltdWxhdG9yUG9ydChBcHBsZVBvcnQpOgogICAg
ICAgICBzZWxmLl9jcmVhdGVTaW11bGF0b3JBcHBzKCkKIAogICAgICAgICBmb3IgaSBpbiB4cmFu
Z2Uoc2VsZi5jaGlsZF9wcm9jZXNzZXMoKSk6Ci0gICAgICAgICAgICBTaW11bGF0b3Iud2FpdF91
bnRpbF9kZXZpY2VfaXNfaW5fc3RhdGUoc2VsZi50ZXN0aW5nX2RldmljZShpKS51ZGlkLCBTaW11
bGF0b3IuRGV2aWNlU3RhdGUuU0hVVERPV04pCi0gICAgICAgICAgICBTaW11bGF0b3IucmVzZXRf
ZGV2aWNlKHNlbGYudGVzdGluZ19kZXZpY2UoaSkudWRpZCkKKyAgICAgICAgICAgIHNlbGYuX2Ny
ZWF0ZV9kZXZpY2UoaSkKKworICAgICAgICBmb3IgaSBpbiB4cmFuZ2Uoc2VsZi5jaGlsZF9wcm9j
ZXNzZXMoKSk6CisgICAgICAgICAgICBkZXZpY2VfdWRpZCA9IHNlbGYuX3Rlc3RpbmdfZGV2aWNl
KGkpLnVkaWQKKyAgICAgICAgICAgIFNpbXVsYXRvci53YWl0X3VudGlsX2RldmljZV9pc19pbl9z
dGF0ZShkZXZpY2VfdWRpZCwgU2ltdWxhdG9yLkRldmljZVN0YXRlLlNIVVRET1dOKQorICAgICAg
ICAgICAgU2ltdWxhdG9yLnJlc2V0X2RldmljZShkZXZpY2VfdWRpZCkKIAogICAgIGRlZiBzZXR1
cF90ZXN0X3J1bihzZWxmLCBkZXZpY2VfY2xhc3M9Tm9uZSk6CiAgICAgICAgIG1hY19vc192ZXJz
aW9uID0gc2VsZi5ob3N0LnBsYXRmb3JtLm9zX3ZlcnNpb24KQEAgLTI1MCw3ICsyNjEsNyBAQCBj
bGFzcyBJT1NTaW11bGF0b3JQb3J0KEFwcGxlUG9ydCk6CiAgICAgICAgIHNlbGYuX2NyZWF0ZV9z
aW11bGF0b3JzKCkKIAogICAgICAgICBmb3IgaSBpbiB4cmFuZ2Uoc2VsZi5jaGlsZF9wcm9jZXNz
ZXMoKSk6Ci0gICAgICAgICAgICBkZXZpY2VfdWRpZCA9IHNlbGYudGVzdGluZ19kZXZpY2UoaSku
dWRpZAorICAgICAgICAgICAgZGV2aWNlX3VkaWQgPSBzZWxmLl90ZXN0aW5nX2RldmljZShpKS51
ZGlkCiAgICAgICAgICAgICBfbG9nLmRlYnVnKCd0ZXN0aW5nIGRldmljZSAlcyBoYXMgdWRpZCAl
cycsIGksIGRldmljZV91ZGlkKQogCiAgICAgICAgICAgICAjIEZJWE1FOiA8cmRhcjovL3Byb2Js
ZW0vMjA5MTYxNDA+IFN3aXRjaCB0byB1c2luZyBDb3JlU2ltdWxhdG9yLmZyYW1ld29yayBmb3Ig
bGF1bmNoaW5nIGFuZCBxdWl0dGluZyBpT1MgU2ltdWxhdG9yCkBAIC0yNjMsNyArMjc0LDcgQEAg
Y2xhc3MgSU9TU2ltdWxhdG9yUG9ydChBcHBsZVBvcnQpOgogCiAgICAgICAgIF9sb2cuaW5mbygn
V2FpdGluZyBmb3IgYWxsIGlPUyBTaW11bGF0b3JzIHRvIGZpbmlzaCBib290aW5nLicpCiAgICAg
ICAgIGZvciBpIGluIHhyYW5nZShzZWxmLmNoaWxkX3Byb2Nlc3NlcygpKToKLSAgICAgICAgICAg
IFNpbXVsYXRvci53YWl0X3VudGlsX2RldmljZV9pc19ib290ZWQoc2VsZi50ZXN0aW5nX2Rldmlj
ZShpKS51ZGlkKQorICAgICAgICAgICAgU2ltdWxhdG9yLndhaXRfdW50aWxfZGV2aWNlX2lzX2Jv
b3RlZChzZWxmLl90ZXN0aW5nX2RldmljZShpKS51ZGlkKQogCiAgICAgZGVmIF9xdWl0X2lvc19z
aW11bGF0b3Ioc2VsZik6CiAgICAgICAgIF9sb2cuZGVidWcoIl9xdWl0X2lvc19zaW11bGF0b3Ii
KQpAQCAtMjg0LDcgKzI5NSw5IEBAIGNsYXNzIElPU1NpbXVsYXRvclBvcnQoQXBwbGVQb3J0KToK
IAogICAgICAgICBmb3IgaSBpbiB4cmFuZ2Uoc2VsZi5jaGlsZF9wcm9jZXNzZXMoKSk6CiAgICAg
ICAgICAgICBzaW11bGF0b3JfcGF0aCA9IHNlbGYuZ2V0X3NpbXVsYXRvcl9wYXRoKGkpCi0gICAg
ICAgICAgICBkZXZpY2VfdWRpZCA9IHNlbGYudGVzdGluZ19kZXZpY2UoaSkudWRpZAorICAgICAg
ICAgICAgZGV2aWNlX3VkaWQgPSBzZWxmLl90ZXN0aW5nX2RldmljZShpKS51ZGlkCisgICAgICAg
ICAgICBzZWxmLl9yZW1vdmVfZGV2aWNlKGkpCisKICAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRo
LmV4aXN0cyhzaW11bGF0b3JfcGF0aCk6CiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAg
ICAgICAgIHRyeToKQEAgLTMwMSw3ICszMTQsNiBAQCBjbGFzcyBJT1NTaW11bGF0b3JQb3J0KEFw
cGxlUG9ydCk6CiAgICAgICAgICAgICAgICAgX2xvZy5kZWJ1Zygncm10cmVlICVzJywgc2F2ZWRf
c3RhdGVfcGF0aCkKICAgICAgICAgICAgICAgICBzZWxmLl9maWxlc3lzdGVtLnJtdHJlZShzYXZl
ZF9zdGF0ZV9wYXRoKQogCi0gICAgICAgICAgICAgICAgU2ltdWxhdG9yKCkuZGVsZXRlX2Rldmlj
ZShkZXZpY2VfdWRpZCkKICAgICAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgICAgICBfbG9n
Lndhcm5pbmcoJ1VuYWJsZSB0byByZW1vdmUgU2ltdWxhdG9yJyArIHN0cihpKSkKIApAQCAtMzY5
LDEyICszODEsMjAgQEAgY2xhc3MgSU9TU2ltdWxhdG9yUG9ydChBcHBsZVBvcnQpOgogICAgICAg
ICAgICAgcmV0dXJuIHN0ZGVyciwgTm9uZQogICAgICAgICByZXR1cm4gc3RkZXJyLCBjcmFzaF9s
b2cKIAotICAgIGRlZiB0ZXN0aW5nX2RldmljZShzZWxmLCBudW1iZXIpOgotICAgICAgICAjIEZJ
WE1FOiByYXRoZXIgdGhhbiBjYWxsaW5nIGxvb2t1cF9vcl9jcmVhdGVfZGV2aWNlIGV2ZXJ5IHRp
bWUsIHdlIHNob3VsZCBqdXN0IHN0b3JlIGEgbWFwcGluZyBvZgotICAgICAgICAjIG51bWJlciB0
byBkZXZpY2VfdWRpZC4KLSAgICAgICAgZGV2aWNlX3R5cGUgPSBzZWxmLnNpbXVsYXRvcl9kZXZp
Y2VfdHlwZSgpCi0gICAgICAgIF9sb2cuZGVidWcoJyB0ZXN0aW5nX2RldmljZSAlcyB1c2luZyBk
ZXZpY2VfdHlwZSAlcycsIG51bWJlciwgZGV2aWNlX3R5cGUpCi0gICAgICAgIHJldHVybiBTaW11
bGF0b3IoKS5sb29rdXBfb3JfY3JlYXRlX2RldmljZShkZXZpY2VfdHlwZS5uYW1lICsgJyBXZWJL
aXQgVGVzdGVyJyArIHN0cihudW1iZXIpLCBkZXZpY2VfdHlwZSwgc2VsZi5zaW11bGF0b3JfcnVu
dGltZSkKKyAgICBkZWYgX2NyZWF0ZV9kZXZpY2Uoc2VsZiwgbnVtYmVyKToKKyAgICAgICAgcmV0
dXJuIFNpbXVsYXRvci5jcmVhdGVfZGV2aWNlKG51bWJlciwgc2VsZi5zaW11bGF0b3JfZGV2aWNl
X3R5cGUoKSwgc2VsZi5zaW11bGF0b3JfcnVudGltZSkKKworICAgIGRlZiBfcmVtb3ZlX2Rldmlj
ZShzZWxmLCBudW1iZXIpOgorICAgICAgICBTaW11bGF0b3IucmVtb3ZlX2RldmljZShudW1iZXIp
CisKKyAgICBkZWYgX3Rlc3RpbmdfZGV2aWNlKHNlbGYsIG51bWJlcik6CisgICAgICAgIHJldHVy
biBTaW11bGF0b3IuZGV2aWNlX251bWJlcihudW1iZXIpCisKKyAgICAjIFRoaXMgaXMgb25seSBl
eHBvc2VkIHNvIHRoYXQgSU9TU2ltdWxhdG9yRHJpdmVyIGNhbiB1c2UgaXQuCisgICAgZGVmIGRl
dmljZV9pZF9mb3Jfd29ya2VyX251bWJlcihzZWxmLCBudW1iZXIpOgorICAgICAgICBpZiBzZWxm
Ll9wcmludGluZ19jbWRfbGluZToKKyAgICAgICAgICAgIHJldHVybiAnPGR1bW15IGlkPicKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RpbmdfZGV2aWNlKG51bWJlcikudWRpZAogCiAgICAgZGVm
IGdldF9zaW11bGF0b3JfcGF0aChzZWxmLCBzdWZmaXg9IiIpOgogICAgICAgICByZXR1cm4gb3Mu
cGF0aC5qb2luKHNlbGYuU0lNVUxBVE9SX0RJUkVDVE9SWSwgIlNpbXVsYXRvciIgKyBzdHIoc3Vm
Zml4KSArICIuYXBwIikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9w
b3J0X3Rlc3RjYXNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRfdGVzdGNh
c2UucHkKaW5kZXggNjgwZDgwOWZhMDljZTY5YTdmYmZkZDk3MjVjOGMwZTQwZDdiMDEwMi4uNzgz
MDgzOTAwYzMxOTI5ZTUzODUwOGMwYzU5NmRkYzY5MDVjYjQzZiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRfdGVzdGNhc2UucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wb3J0L3BvcnRfdGVzdGNhc2UucHkKQEAgLTEwMCwxMSArMTAwLDExIEBAIGNs
YXNzIFBvcnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9kcml2
ZXJfY21kX2xpbmUoc2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShsZW4ocG9ydC5kcml2ZXJfY21kX2xpbmUoKSkpCisgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShsZW4ocG9ydC5kcml2ZXJfY21kX2xpbmVfZm9yX2xvZ2dpbmcoKSkp
CiAKICAgICAgICAgb3B0aW9ucyA9IE1vY2tPcHRpb25zKGFkZGl0aW9uYWxfZHJ0X2ZsYWc9Wyct
LWZvbz1iYXInLCAnLS1mb289YmF6J10pCiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydChv
cHRpb25zPW9wdGlvbnMpCi0gICAgICAgIGNtZF9saW5lID0gcG9ydC5kcml2ZXJfY21kX2xpbmUo
KQorICAgICAgICBjbWRfbGluZSA9IHBvcnQuZHJpdmVyX2NtZF9saW5lX2Zvcl9sb2dnaW5nKCkK
ICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCctLWZvbz1iYXInIGluIGNtZF9saW5lKQogICAgICAg
ICBzZWxmLmFzc2VydFRydWUoJy0tZm9vPWJheicgaW4gY21kX2xpbmUpCiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdG9yLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS94Y29kZS9zaW11bGF0b3IucHkKaW5kZXggZmI2ZDQxZmY0Yjg1ZGM0YTUyMmZj
OGQ4NmY1YjM3ZTk2ZjUyNmVjYy4uMDRmMmIyZDFjY2YwOTlmZDVmMDVmZmRmZTU1YzA1ODUxNWYx
N2M2NiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS94Y29kZS9zaW11bGF0b3Iu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS94Y29kZS9zaW11bGF0b3IucHkKQEAgLTI4
MSw2ICsyODEsOCBAQCBjbGFzcyBTaW11bGF0b3Iob2JqZWN0KToKICAgICBkZXZpY2VzX3JlID0g
cmUuY29tcGlsZSgKICAgICAgICAgJ1xzKig/UDxuYW1lPlteKF0rIClcKCg/UDx1ZGlkPlteKV0r
KVwpIFwoKD9QPHN0YXRlPlteKV0rKVwpKCBcKCg/UDxhdmFpbGFiaWxpdHk+W14pXSspXCkpPycp
CiAKKyAgICBfbWFuYWdlZF9kZXZpY2VzID0ge30KKwogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBo
b3N0PU5vbmUpOgogICAgICAgICBzZWxmLl9ob3N0ID0gaG9zdCBvciBIb3N0KCkKICAgICAgICAg
c2VsZi5ydW50aW1lcyA9IFtdCkBAIC0yOTcsNiArMjk5LDI2IEBAIGNsYXNzIFNpbXVsYXRvcihv
YmplY3QpOgogICAgICAgICBTSFVUVElOR19ET1dOID0gNAogCiAgICAgQHN0YXRpY21ldGhvZAor
ICAgIGRlZiBjcmVhdGVfZGV2aWNlKG51bWJlciwgZGV2aWNlX3R5cGUsIHJ1bnRpbWUpOgorICAg
ICAgICBkZXZpY2UgPSBTaW11bGF0b3IoKS5sb29rdXBfb3JfY3JlYXRlX2RldmljZShkZXZpY2Vf
dHlwZS5uYW1lICsgJyBXZWJLaXQgVGVzdGVyJyArIHN0cihudW1iZXIpLCBkZXZpY2VfdHlwZSwg
cnVudGltZSkKKyAgICAgICAgX2xvZy5kZWJ1ZygnY3JlYXRlZCBkZXZpY2Uge30ge30nLmZvcm1h
dChudW1iZXIsIGRldmljZSkpCisgICAgICAgIGFzc2VydChsZW4oU2ltdWxhdG9yLl9tYW5hZ2Vk
X2RldmljZXMpID09IG51bWJlcikKKyAgICAgICAgU2ltdWxhdG9yLl9tYW5hZ2VkX2RldmljZXNb
bnVtYmVyXSA9IGRldmljZQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiByZW1vdmVfZGV2
aWNlKG51bWJlcik6CisgICAgICAgIGlmIG5vdCBTaW11bGF0b3IuX21hbmFnZWRfZGV2aWNlc1tu
dW1iZXJdOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIF9sb2cuZGVidWcoJ3JlbW92aW5n
IGRldmljZSB7fScuZm9ybWF0KG51bWJlcikpCisgICAgICAgIGRldmljZV91ZGlkID0gU2ltdWxh
dG9yLl9tYW5hZ2VkX2RldmljZXNbbnVtYmVyXS51ZGlkCisgICAgICAgIGRlbCBTaW11bGF0b3Iu
X21hbmFnZWRfZGV2aWNlc1tudW1iZXJdCisgICAgICAgIFNpbXVsYXRvci5kZWxldGVfZGV2aWNl
KGRldmljZV91ZGlkKQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBkZXZpY2VfbnVtYmVy
KG51bWJlcik6CisgICAgICAgIHJldHVybiBTaW11bGF0b3IuX21hbmFnZWRfZGV2aWNlc1tudW1i
ZXJdCisKKyAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIHdhaXRfdW50aWxfZGV2aWNlX2lzX2Jv
b3RlZCh1ZGlkLCB0aW1lb3V0X3NlY29uZHM9NjAgKiA1KToKICAgICAgICAgU2ltdWxhdG9yLndh
aXRfdW50aWxfZGV2aWNlX2lzX2luX3N0YXRlKHVkaWQsIFNpbXVsYXRvci5EZXZpY2VTdGF0ZS5C
T09URUQsIHRpbWVvdXRfc2Vjb25kcykKICAgICAgICAgd2l0aCB0aW1lb3V0KHNlY29uZHM9dGlt
ZW91dF9zZWNvbmRzKToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286439</attachid>
            <date>2016-08-18 22:57:42 -0700</date>
            <delta_ts>2016-08-19 13:12:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160985-20160818225551.patch</filename>
            <type>text/plain</type>
            <size>12878</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NTU5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmI1NTVlZjFjM2JlNGIzZDhhNzFkNTdkMjhhZTk3NWRk
MmQyZTE0OC4uZWJiZTZmYjBhZmZkZmNiYzc0NDNjNjhmMzA1ZDRjOGRlMTY4ODdlZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0
IEBACisyMDE2LTA4LTE4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFJFR1JFU1NJT04gKHIyMDQ0NzcpOiBSdW5uaW5nIExheW91dFRlc3RzIG9uIGlv
cy1zaW11bGF0b3IgYmVjYW1lIH4xNSBtaW51dGVzIHNsb3dlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwOTg1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICByMjA0NDc3IHJlbW92ZWQgQG1l
bW9pemVkIG9uIGEgY291cGxlIG9mIGlvcy5weSBmdW5jdGlvbnMsIGNhdXNpbmcgdGhlbSB0byBp
bnN0YW50aWF0ZQorICAgICAgICBhIFNpbXVsYXRvcigpIG9uIGV2ZXJ5IGNhbGwsIHdoaWNoIGNh
dXNlcyAneGNydW4gc2ltY3RsIGxpc3QnIHRvIHJ1bi4gVGhlIGZ1bmN0aW9ucworICAgICAgICBt
dXN0IG5vdCBiZSBAbWVtb2l6ZWQsIGJlY2F1c2UgdGhlaXIgcmV0dXJuIHZhbHVlIGRlcGVuZHMg
b24gdGhlIHZhbHVlIG9mIHNpbXVsYXRvcl9kZXZpY2VfdHlwZSgpLgorICAgICAgICAKKyAgICAg
ICAgRml4IGJ5IGFkZGluZyBzb21lIGdsb2JhbCBzdGF0ZSBpbiBzaW11bGF0b3IucHkgdGhhdCB0
cmFja3MgdGhlIGNyZWF0ZWQgZGV2aWNlcyAKKyAgICAgICAgaW4gYSB3b3JrZXIgbnVtYmVyIC0+
IERldmljZSBkaWN0aW9uYXJ5LiBFeHBsaWNpdGx5IGNyZWF0ZSBkZXZpY2VzIGluIF9jcmVhdGVf
c2ltdWxhdG9ycygpLAorICAgICAgICBhbmQgZGVsZXRlIHRoZW0gaW4gY2xlYW5fdXBfdGVzdF9y
dW4oKS4KKyAgICAgICAgCisgICAgICAgIFNpbXVsYXRvciB0cmFja3MgdGhlIGRldmljZXMgaW4g
YSBnbG9iYWwgZGljdGlvbmFyeSwgc2luY2Ugc3RhdGUgbmVlZHMgdG8gcGVyc2lzdAorICAgICAg
ICBhY3Jvc3MgZGlmZmVyZW50IGluc3RhbmNlcyBvZiBJT1NTaW11bGF0b3JQb3J0LgorICAgICAg
ICAKKyAgICAgICAgQW5ub3lpbmdseSwgdGhlICJDb21tYW5kIGxpbmU6IiBkdW1waW5nIHRyaWVk
IHRvIGFjY2VzcyBhIGRldmljZSBiZWZvcmUgd2UnZCBkb25lCisgICAgICAgIGFueSBzZXR1cC4g
UmF0aGVyIHRoYW4gaW1wbGljaXRseSBjcmVhdGluZyBhIGRldmljZSBoZXJlICh3aGljaCB0aGUg
b2xkIGNvZGUgZGlkKSwKKyAgICAgICAgb3ZlcnJpZGUgdGhlIG1vcmUgY2xlYXJseSBuYW1lZCBk
cml2ZXJfY21kX2xpbmVfZm9yX2xvZ2dpbmcoKSBpbiBJT1NTaW11bGF0b3JQb3J0CisgICAgICAg
IGFuZCBzZXQgZmxhZyB0byBzYXkgdGhhdCBkZXZpY2VfaWRfZm9yX3dvcmtlcl9udW1iZXIoKSBk
b2Vzbid0IG5lZWQgdG8gcmV0dXJuIGEgcmVhbAorICAgICAgICBkZXZpY2UgaWQuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weToKKyAg
ICAgICAgKFByaW50ZXIucHJpbnRfY29uZmlnKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3BvcnQvYmFzZS5weToKKyAgICAgICAgKFBvcnQuZHJpdmVyX2NtZF9saW5lX2Zvcl9sb2dnaW5n
KToKKyAgICAgICAgKFBvcnQuZHJpdmVyX2NtZF9saW5lKTogRGVsZXRlZC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5OgorICAgICAgICAoSU9TU2ltdWxhdG9yRHJp
dmVyLmNtZF9saW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5Ogor
ICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC5fX2luaXRfXyk6CisgICAgICAgIChJT1NTaW11bGF0
b3JQb3J0LmRyaXZlcl9jbWRfbGluZV9mb3JfbG9nZ2luZyk6CisgICAgICAgIChJT1NTaW11bGF0
b3JQb3J0Ll9jcmVhdGVfc2ltdWxhdG9ycyk6CisgICAgICAgIChJT1NTaW11bGF0b3JQb3J0LnNl
dHVwX3Rlc3RfcnVuKToKKyAgICAgICAgKElPU1NpbXVsYXRvclBvcnQuY2xlYW5fdXBfdGVzdF9y
dW4pOgorICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC5fY3JlYXRlX2RldmljZSk6CisgICAgICAg
IChJT1NTaW11bGF0b3JQb3J0Ll9yZW1vdmVfZGV2aWNlKToKKyAgICAgICAgKElPU1NpbXVsYXRv
clBvcnQuX3Rlc3RpbmdfZGV2aWNlKToKKyAgICAgICAgKElPU1NpbXVsYXRvclBvcnQuZGV2aWNl
X2lkX2Zvcl93b3JrZXJfbnVtYmVyKToKKyAgICAgICAgKElPU1NpbXVsYXRvclBvcnQuX3NldF9k
ZXZpY2VfY2xhc3MpOiBEZWxldGVkLgorICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC50ZXN0aW5n
X2RldmljZSk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRf
dGVzdGNhc2UucHk6CisgICAgICAgIChQb3J0VGVzdENhc2UudGVzdF9kcml2ZXJfY21kX2xpbmUp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdG9yLnB5OgorICAgICAg
ICAoU2ltdWxhdG9yKToKKyAgICAgICAgKFNpbXVsYXRvci5jcmVhdGVfZGV2aWNlKToKKyAgICAg
ICAgKFNpbXVsYXRvci5yZW1vdmVfZGV2aWNlKToKKyAgICAgICAgKFNpbXVsYXRvci5kZXZpY2Vf
bnVtYmVyKToKKwogMjAxNi0wOC0xNyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQG5hdmVy
Y29ycC5jb20+CiAKICAgICAgICAgW0VGTF0gQnVtcCBlZmwgdmVyc2lvbiBmcm9tIDEuMTcgdG8g
MS4xOApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmll
d3MvcHJpbnRpbmcucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3
cy9wcmludGluZy5weQppbmRleCA2NWM3OTU3MThiYzBmODVkYmZmOGNjNTU3YWM0NTJiZGMyMThl
ZmQ3Li4wZGVjOWM4MWFjNGQ0Nzg1ZDEwYTc2NzMwM2Y3MzE5ODczYTM5YTJlIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5w
eQpAQCAtOTQsNyArOTQsNyBAQCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYu
X3ByaW50X2RlZmF1bHQoIlJlZ3VsYXIgdGltZW91dDogJXMsIHNsb3cgdGVzdCB0aW1lb3V0OiAl
cyIgJQogICAgICAgICAgICAgICAgICAgKHNlbGYuX29wdGlvbnMudGltZV9vdXRfbXMsIHNlbGYu
X29wdGlvbnMuc2xvd190aW1lX291dF9tcykpCiAKLSAgICAgICAgc2VsZi5fcHJpbnRfZGVmYXVs
dCgnQ29tbWFuZCBsaW5lOiAnICsgJyAnLmpvaW4oc2VsZi5fcG9ydC5kcml2ZXJfY21kX2xpbmUo
KSkpCisgICAgICAgIHNlbGYuX3ByaW50X2RlZmF1bHQoJ0NvbW1hbmQgbGluZTogJyArICcgJy5q
b2luKHNlbGYuX3BvcnQuZHJpdmVyX2NtZF9saW5lX2Zvcl9sb2dnaW5nKCkpKQogICAgICAgICBz
ZWxmLl9wcmludF9kZWZhdWx0KCcnKQogCiAgICAgZGVmIHByaW50X2ZvdW5kKHNlbGYsIG51bV9h
bGxfdGVzdF9maWxlcywgbnVtX3RvX3J1biwgcmVwZWF0X2VhY2gsIGl0ZXJhdGlvbnMpOgpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQppbmRleCBiNjQ1YTUzZTkxNzMwMDViZDY0OWQwYjI5
MGZmYjExMDMyMjEyY2IyLi4zNjg2OWYzMzU4MjkxNGM1MTExMjI1NTc2Y2RmYWQzNmI2NjNiZTUx
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQpAQCAtNjU4LDcgKzY1OCw3IEBAIGNs
YXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgICAgIHJldHVybiB0ZXN0X25hbWUgKyAnLycKICAg
ICAgICAgcmV0dXJuIHRlc3RfbmFtZQogCi0gICAgZGVmIGRyaXZlcl9jbWRfbGluZShzZWxmKToK
KyAgICBkZWYgZHJpdmVyX2NtZF9saW5lX2Zvcl9sb2dnaW5nKHNlbGYpOgogICAgICAgICAiIiJQ
cmludHMgdGhlIERSVCBjb21tYW5kIGxpbmUgdGhhdCB3aWxsIGJlIHVzZWQuIiIiCiAgICAgICAg
IGRyaXZlciA9IHNlbGYuY3JlYXRlX2RyaXZlcigwKQogICAgICAgICByZXR1cm4gZHJpdmVyLmNt
ZF9saW5lKHNlbGYuZ2V0X29wdGlvbigncGl4ZWxfdGVzdHMnKSwgW10pCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2RyaXZlci5weQppbmRleCBhNTM5OTRiNDY2YjUzNzQ4NTBiMzE1MWRhZDhkMjdj
NGExZDIxYjkxLi5iMzM0MzBjNWMxOGEyZDUyYzk2NjQ5YmUwYjdkNDQwNmRlZDM3NzY1IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkKQEAgLTU5OSw3ICs1OTksNyBAQCBjbGFz
cyBJT1NTaW11bGF0b3JEcml2ZXIoRHJpdmVyKToKICAgICAgICAgZHVtcF90b29sX2FyZ3MgPSBj
bWRbMTpdCiAgICAgICAgIHByb2R1Y3RfZGlyID0gc2VsZi5fcG9ydC5fYnVpbGRfcGF0aCgpCiAg
ICAgICAgIHJlbGF5X2FyZ3MgPSBbCi0gICAgICAgICAgICAnLXVkaWQnLCBzZWxmLl9wb3J0LnRl
c3RpbmdfZGV2aWNlKHNlbGYuX3dvcmtlcl9udW1iZXIpLnVkaWQsCisgICAgICAgICAgICAnLXVk
aWQnLCBzZWxmLl9wb3J0LmRldmljZV9pZF9mb3Jfd29ya2VyX251bWJlcihzZWxmLl93b3JrZXJf
bnVtYmVyKSwKICAgICAgICAgICAgICctcHJvZHVjdERpcicsIHByb2R1Y3RfZGlyLAogICAgICAg
ICAgICAgJy1hcHAnLCBkdW1wX3Rvb2wsCiAgICAgICAgIF0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9pb3MucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQv
aW9zLnB5CmluZGV4IDA5ODVhYjQ1Yjc5OTk4YmQ5MzMwMDcyYjVjOTIwYzU2ZDk1NzViMTMuLmQz
ZDljNjBmNzViODQyZWIxNzU4OTI3YjBiZjZiYWYwZjg5OWU0ODcgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3MucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2lvcy5weQpAQCAtOTgsNiArOTgsNyBAQCBjbGFzcyBJT1NTaW11bGF0b3JQb3J0KEFw
cGxlUG9ydCk6CiAgICAgICAgIHN1cGVyKElPU1NpbXVsYXRvclBvcnQsIHNlbGYpLl9faW5pdF9f
KGhvc3QsIHBvcnRfbmFtZSwgKiprd2FyZ3MpCiAKICAgICAgICAgb3B0aW9uYWxfZGV2aWNlX2Ns
YXNzID0gc2VsZi5nZXRfb3B0aW9uKCdkZXZpY2VfY2xhc3MnKQorICAgICAgICBzZWxmLl9wcmlu
dGluZ19jbWRfbGluZSA9IEZhbHNlCiAgICAgICAgIHNlbGYuX2RldmljZV9jbGFzcyA9IG9wdGlv
bmFsX2RldmljZV9jbGFzcyBpZiBvcHRpb25hbF9kZXZpY2VfY2xhc3MgZWxzZSBzZWxmLkRFRkFV
TFRfREVWSUNFX0NMQVNTCiAgICAgICAgIF9sb2cuZGVidWcoJ0lPU1NpbXVsYXRvclBvcnQgX2Rl
dmljZV9jbGFzcyBpcyAlcycsIHNlbGYuX2RldmljZV9jbGFzcykKIApAQCAtMTA4LDYgKzEwOSwx
MyBAQCBjbGFzcyBJT1NTaW11bGF0b3JQb3J0KEFwcGxlUG9ydCk6CiAgICAgICAgICAgICByZXR1
cm4gJ1dlYktpdFRlc3RSdW5uZXJBcHAuYXBwJwogICAgICAgICByZXR1cm4gJ0R1bXBSZW5kZXJU
cmVlLmFwcCcKIAorICAgIGRlZiBkcml2ZXJfY21kX2xpbmVfZm9yX2xvZ2dpbmcoc2VsZik6Cisg
ICAgICAgICMgQXZvaWQgc3Bpbm5pbmcgdXAgZGV2aWNlcyBqdXN0IGZvciBsb2dnaW5nIHRoZSBj
b21tYW5kbGluZS4KKyAgICAgICAgc2VsZi5fcHJpbnRpbmdfY21kX2xpbmUgPSBUcnVlCisgICAg
ICAgIHJlc3VsdCA9IHN1cGVyKElPU1NpbXVsYXRvclBvcnQsIHNlbGYpLmRyaXZlcl9jbWRfbGlu
ZV9mb3JfbG9nZ2luZygpCisgICAgICAgIHNlbGYuX3ByaW50aW5nX2NtZF9saW5lID0gRmFsc2UK
KyAgICAgICAgcmV0dXJuIHJlc3VsdAorCiAgICAgQHByb3BlcnR5CiAgICAgQG1lbW9pemVkCiAg
ICAgZGVmIHNpbXVsYXRvcl9ydW50aW1lKHNlbGYpOgpAQCAtMjI0LDcgKzIzMiw2IEBAIGNsYXNz
IElPU1NpbXVsYXRvclBvcnQoQXBwbGVQb3J0KToKICAgICAgICAgcmV0dXJuIGxpc3QocmV2ZXJz
ZWQoW3NlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aChwKSwg
J1Rlc3RFeHBlY3RhdGlvbnMnKSBmb3IgcCBpbiBzZWxmLmJhc2VsaW5lX3NlYXJjaF9wYXRoKCld
KSkKIAogICAgIGRlZiBfc2V0X2RldmljZV9jbGFzcyhzZWxmLCBkZXZpY2VfY2xhc3MpOgotICAg
ICAgICAjIElkZWFsbHkgd2UnZCBlbnN1cmUgdGhhdCBubyBzaW11bGF0b3JzIGFyZSBydW5uaW5n
IHdoZW4gdGhpcyBpcyBjYWxsZWQuCiAgICAgICAgIHNlbGYuX2RldmljZV9jbGFzcyA9IGRldmlj
ZV9jbGFzcyBpZiBkZXZpY2VfY2xhc3MgZWxzZSBzZWxmLkRFRkFVTFRfREVWSUNFX0NMQVNTCiAK
ICAgICBkZWYgX2NyZWF0ZV9zaW11bGF0b3JzKHNlbGYpOgpAQCAtMjM2LDggKzI0MywxMiBAQCBj
bGFzcyBJT1NTaW11bGF0b3JQb3J0KEFwcGxlUG9ydCk6CiAgICAgICAgIHNlbGYuX2NyZWF0ZVNp
bXVsYXRvckFwcHMoKQogCiAgICAgICAgIGZvciBpIGluIHhyYW5nZShzZWxmLmNoaWxkX3Byb2Nl
c3NlcygpKToKLSAgICAgICAgICAgIFNpbXVsYXRvci53YWl0X3VudGlsX2RldmljZV9pc19pbl9z
dGF0ZShzZWxmLnRlc3RpbmdfZGV2aWNlKGkpLnVkaWQsIFNpbXVsYXRvci5EZXZpY2VTdGF0ZS5T
SFVURE9XTikKLSAgICAgICAgICAgIFNpbXVsYXRvci5yZXNldF9kZXZpY2Uoc2VsZi50ZXN0aW5n
X2RldmljZShpKS51ZGlkKQorICAgICAgICAgICAgc2VsZi5fY3JlYXRlX2RldmljZShpKQorCisg
ICAgICAgIGZvciBpIGluIHhyYW5nZShzZWxmLmNoaWxkX3Byb2Nlc3NlcygpKToKKyAgICAgICAg
ICAgIGRldmljZV91ZGlkID0gc2VsZi5fdGVzdGluZ19kZXZpY2UoaSkudWRpZAorICAgICAgICAg
ICAgU2ltdWxhdG9yLndhaXRfdW50aWxfZGV2aWNlX2lzX2luX3N0YXRlKGRldmljZV91ZGlkLCBT
aW11bGF0b3IuRGV2aWNlU3RhdGUuU0hVVERPV04pCisgICAgICAgICAgICBTaW11bGF0b3IucmVz
ZXRfZGV2aWNlKGRldmljZV91ZGlkKQogCiAgICAgZGVmIHNldHVwX3Rlc3RfcnVuKHNlbGYsIGRl
dmljZV9jbGFzcz1Ob25lKToKICAgICAgICAgbWFjX29zX3ZlcnNpb24gPSBzZWxmLmhvc3QucGxh
dGZvcm0ub3NfdmVyc2lvbgpAQCAtMjUwLDcgKzI2MSw3IEBAIGNsYXNzIElPU1NpbXVsYXRvclBv
cnQoQXBwbGVQb3J0KToKICAgICAgICAgc2VsZi5fY3JlYXRlX3NpbXVsYXRvcnMoKQogCiAgICAg
ICAgIGZvciBpIGluIHhyYW5nZShzZWxmLmNoaWxkX3Byb2Nlc3NlcygpKToKLSAgICAgICAgICAg
IGRldmljZV91ZGlkID0gc2VsZi50ZXN0aW5nX2RldmljZShpKS51ZGlkCisgICAgICAgICAgICBk
ZXZpY2VfdWRpZCA9IHNlbGYuX3Rlc3RpbmdfZGV2aWNlKGkpLnVkaWQKICAgICAgICAgICAgIF9s
b2cuZGVidWcoJ3Rlc3RpbmcgZGV2aWNlICVzIGhhcyB1ZGlkICVzJywgaSwgZGV2aWNlX3VkaWQp
CiAKICAgICAgICAgICAgICMgRklYTUU6IDxyZGFyOi8vcHJvYmxlbS8yMDkxNjE0MD4gU3dpdGNo
IHRvIHVzaW5nIENvcmVTaW11bGF0b3IuZnJhbWV3b3JrIGZvciBsYXVuY2hpbmcgYW5kIHF1aXR0
aW5nIGlPUyBTaW11bGF0b3IKQEAgLTI2Myw3ICsyNzQsNyBAQCBjbGFzcyBJT1NTaW11bGF0b3JQ
b3J0KEFwcGxlUG9ydCk6CiAKICAgICAgICAgX2xvZy5pbmZvKCdXYWl0aW5nIGZvciBhbGwgaU9T
IFNpbXVsYXRvcnMgdG8gZmluaXNoIGJvb3RpbmcuJykKICAgICAgICAgZm9yIGkgaW4geHJhbmdl
KHNlbGYuY2hpbGRfcHJvY2Vzc2VzKCkpOgotICAgICAgICAgICAgU2ltdWxhdG9yLndhaXRfdW50
aWxfZGV2aWNlX2lzX2Jvb3RlZChzZWxmLnRlc3RpbmdfZGV2aWNlKGkpLnVkaWQpCisgICAgICAg
ICAgICBTaW11bGF0b3Iud2FpdF91bnRpbF9kZXZpY2VfaXNfYm9vdGVkKHNlbGYuX3Rlc3Rpbmdf
ZGV2aWNlKGkpLnVkaWQpCiAKICAgICBkZWYgX3F1aXRfaW9zX3NpbXVsYXRvcihzZWxmKToKICAg
ICAgICAgX2xvZy5kZWJ1ZygiX3F1aXRfaW9zX3NpbXVsYXRvciIpCkBAIC0yODQsNyArMjk1LDkg
QEAgY2xhc3MgSU9TU2ltdWxhdG9yUG9ydChBcHBsZVBvcnQpOgogCiAgICAgICAgIGZvciBpIGlu
IHhyYW5nZShzZWxmLmNoaWxkX3Byb2Nlc3NlcygpKToKICAgICAgICAgICAgIHNpbXVsYXRvcl9w
YXRoID0gc2VsZi5nZXRfc2ltdWxhdG9yX3BhdGgoaSkKLSAgICAgICAgICAgIGRldmljZV91ZGlk
ID0gc2VsZi50ZXN0aW5nX2RldmljZShpKS51ZGlkCisgICAgICAgICAgICBkZXZpY2VfdWRpZCA9
IHNlbGYuX3Rlc3RpbmdfZGV2aWNlKGkpLnVkaWQKKyAgICAgICAgICAgIHNlbGYuX3JlbW92ZV9k
ZXZpY2UoaSkKKwogICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHNpbXVsYXRvcl9w
YXRoKToKICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgdHJ5OgpAQCAtMzAx
LDcgKzMxNCw2IEBAIGNsYXNzIElPU1NpbXVsYXRvclBvcnQoQXBwbGVQb3J0KToKICAgICAgICAg
ICAgICAgICBfbG9nLmRlYnVnKCdybXRyZWUgJXMnLCBzYXZlZF9zdGF0ZV9wYXRoKQogICAgICAg
ICAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ucm10cmVlKHNhdmVkX3N0YXRlX3BhdGgpCiAKLSAg
ICAgICAgICAgICAgICBTaW11bGF0b3IoKS5kZWxldGVfZGV2aWNlKGRldmljZV91ZGlkKQogICAg
ICAgICAgICAgZXhjZXB0OgogICAgICAgICAgICAgICAgIF9sb2cud2FybmluZygnVW5hYmxlIHRv
IHJlbW92ZSBTaW11bGF0b3InICsgc3RyKGkpKQogCkBAIC0zNjksMTIgKzM4MSwyMCBAQCBjbGFz
cyBJT1NTaW11bGF0b3JQb3J0KEFwcGxlUG9ydCk6CiAgICAgICAgICAgICByZXR1cm4gc3RkZXJy
LCBOb25lCiAgICAgICAgIHJldHVybiBzdGRlcnIsIGNyYXNoX2xvZwogCi0gICAgZGVmIHRlc3Rp
bmdfZGV2aWNlKHNlbGYsIG51bWJlcik6Ci0gICAgICAgICMgRklYTUU6IHJhdGhlciB0aGFuIGNh
bGxpbmcgbG9va3VwX29yX2NyZWF0ZV9kZXZpY2UgZXZlcnkgdGltZSwgd2Ugc2hvdWxkIGp1c3Qg
c3RvcmUgYSBtYXBwaW5nIG9mCi0gICAgICAgICMgbnVtYmVyIHRvIGRldmljZV91ZGlkLgotICAg
ICAgICBkZXZpY2VfdHlwZSA9IHNlbGYuc2ltdWxhdG9yX2RldmljZV90eXBlKCkKLSAgICAgICAg
X2xvZy5kZWJ1ZygnIHRlc3RpbmdfZGV2aWNlICVzIHVzaW5nIGRldmljZV90eXBlICVzJywgbnVt
YmVyLCBkZXZpY2VfdHlwZSkKLSAgICAgICAgcmV0dXJuIFNpbXVsYXRvcigpLmxvb2t1cF9vcl9j
cmVhdGVfZGV2aWNlKGRldmljZV90eXBlLm5hbWUgKyAnIFdlYktpdCBUZXN0ZXInICsgc3RyKG51
bWJlciksIGRldmljZV90eXBlLCBzZWxmLnNpbXVsYXRvcl9ydW50aW1lKQorICAgIGRlZiBfY3Jl
YXRlX2RldmljZShzZWxmLCBudW1iZXIpOgorICAgICAgICByZXR1cm4gU2ltdWxhdG9yLmNyZWF0
ZV9kZXZpY2UobnVtYmVyLCBzZWxmLnNpbXVsYXRvcl9kZXZpY2VfdHlwZSgpLCBzZWxmLnNpbXVs
YXRvcl9ydW50aW1lKQorCisgICAgZGVmIF9yZW1vdmVfZGV2aWNlKHNlbGYsIG51bWJlcik6Cisg
ICAgICAgIFNpbXVsYXRvci5yZW1vdmVfZGV2aWNlKG51bWJlcikKKworICAgIGRlZiBfdGVzdGlu
Z19kZXZpY2Uoc2VsZiwgbnVtYmVyKToKKyAgICAgICAgcmV0dXJuIFNpbXVsYXRvci5kZXZpY2Vf
bnVtYmVyKG51bWJlcikKKworICAgICMgVGhpcyBpcyBvbmx5IGV4cG9zZWQgc28gdGhhdCBJT1NT
aW11bGF0b3JEcml2ZXIgY2FuIHVzZSBpdC4KKyAgICBkZWYgZGV2aWNlX2lkX2Zvcl93b3JrZXJf
bnVtYmVyKHNlbGYsIG51bWJlcik6CisgICAgICAgIGlmIHNlbGYuX3ByaW50aW5nX2NtZF9saW5l
OgorICAgICAgICAgICAgcmV0dXJuICc8ZHVtbXkgaWQ+JworICAgICAgICByZXR1cm4gc2VsZi5f
dGVzdGluZ19kZXZpY2UobnVtYmVyKS51ZGlkCiAKICAgICBkZWYgZ2V0X3NpbXVsYXRvcl9wYXRo
KHNlbGYsIHN1ZmZpeD0iIik6CiAgICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oc2VsZi5TSU1V
TEFUT1JfRElSRUNUT1JZLCAiU2ltdWxhdG9yIiArIHN0cihzdWZmaXgpICsgIi5hcHAiKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRfdGVzdGNhc2UucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5weQppbmRleCA2ODBkODA5
ZmEwOWNlNjlhN2ZiZmRkOTcyNWM4YzBlNDBkN2IwMTAyLi43ODMwODM5MDBjMzE5MjllNTM4NTA4
YzBjNTk2ZGRjNjkwNWNiNDNmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvcG9ydF90ZXN0Y2FzZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvcG9y
dF90ZXN0Y2FzZS5weQpAQCAtMTAwLDExICsxMDAsMTEgQEAgY2xhc3MgUG9ydFRlc3RDYXNlKHVu
aXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2RyaXZlcl9jbWRfbGluZShzZWxmKToK
ICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KGxlbihwb3J0LmRyaXZlcl9jbWRfbGluZSgpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxl
bihwb3J0LmRyaXZlcl9jbWRfbGluZV9mb3JfbG9nZ2luZygpKSkKIAogICAgICAgICBvcHRpb25z
ID0gTW9ja09wdGlvbnMoYWRkaXRpb25hbF9kcnRfZmxhZz1bJy0tZm9vPWJhcicsICctLWZvbz1i
YXonXSkKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KG9wdGlvbnM9b3B0aW9ucykKLSAg
ICAgICAgY21kX2xpbmUgPSBwb3J0LmRyaXZlcl9jbWRfbGluZSgpCisgICAgICAgIGNtZF9saW5l
ID0gcG9ydC5kcml2ZXJfY21kX2xpbmVfZm9yX2xvZ2dpbmcoKQogICAgICAgICBzZWxmLmFzc2Vy
dFRydWUoJy0tZm9vPWJhcicgaW4gY21kX2xpbmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgn
LS1mb289YmF6JyBpbiBjbWRfbGluZSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS94Y29kZS9zaW11bGF0b3IucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3Np
bXVsYXRvci5weQppbmRleCBmYjZkNDFmZjRiODVkYzRhNTIyZmM4ZDg2ZjViMzdlOTZmNTI2ZWNj
Li4wNGYyYjJkMWNjZjA5OWZkNWYwNWZmZGZlNTVjMDU4NTE1ZjE3YzY2IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRvci5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRvci5weQpAQCAtMjgxLDYgKzI4MSw4IEBAIGNsYXNz
IFNpbXVsYXRvcihvYmplY3QpOgogICAgIGRldmljZXNfcmUgPSByZS5jb21waWxlKAogICAgICAg
ICAnXHMqKD9QPG5hbWU+W14oXSsgKVwoKD9QPHVkaWQ+W14pXSspXCkgXCgoP1A8c3RhdGU+W14p
XSspXCkoIFwoKD9QPGF2YWlsYWJpbGl0eT5bXildKylcKSk/JykKIAorICAgIF9tYW5hZ2VkX2Rl
dmljZXMgPSB7fQorCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3Q9Tm9uZSk6CiAgICAgICAg
IHNlbGYuX2hvc3QgPSBob3N0IG9yIEhvc3QoKQogICAgICAgICBzZWxmLnJ1bnRpbWVzID0gW10K
QEAgLTI5Nyw2ICsyOTksMjYgQEAgY2xhc3MgU2ltdWxhdG9yKG9iamVjdCk6CiAgICAgICAgIFNI
VVRUSU5HX0RPV04gPSA0CiAKICAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGNyZWF0ZV9kZXZp
Y2UobnVtYmVyLCBkZXZpY2VfdHlwZSwgcnVudGltZSk6CisgICAgICAgIGRldmljZSA9IFNpbXVs
YXRvcigpLmxvb2t1cF9vcl9jcmVhdGVfZGV2aWNlKGRldmljZV90eXBlLm5hbWUgKyAnIFdlYktp
dCBUZXN0ZXInICsgc3RyKG51bWJlciksIGRldmljZV90eXBlLCBydW50aW1lKQorICAgICAgICBf
bG9nLmRlYnVnKCdjcmVhdGVkIGRldmljZSB7fSB7fScuZm9ybWF0KG51bWJlciwgZGV2aWNlKSkK
KyAgICAgICAgYXNzZXJ0KGxlbihTaW11bGF0b3IuX21hbmFnZWRfZGV2aWNlcykgPT0gbnVtYmVy
KQorICAgICAgICBTaW11bGF0b3IuX21hbmFnZWRfZGV2aWNlc1tudW1iZXJdID0gZGV2aWNlCisK
KyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHJlbW92ZV9kZXZpY2UobnVtYmVyKToKKyAgICAg
ICAgaWYgbm90IFNpbXVsYXRvci5fbWFuYWdlZF9kZXZpY2VzW251bWJlcl06CisgICAgICAgICAg
ICByZXR1cm4KKyAgICAgICAgX2xvZy5kZWJ1ZygncmVtb3ZpbmcgZGV2aWNlIHt9Jy5mb3JtYXQo
bnVtYmVyKSkKKyAgICAgICAgZGV2aWNlX3VkaWQgPSBTaW11bGF0b3IuX21hbmFnZWRfZGV2aWNl
c1tudW1iZXJdLnVkaWQKKyAgICAgICAgZGVsIFNpbXVsYXRvci5fbWFuYWdlZF9kZXZpY2VzW251
bWJlcl0KKyAgICAgICAgU2ltdWxhdG9yLmRlbGV0ZV9kZXZpY2UoZGV2aWNlX3VkaWQpCisKKyAg
ICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGRldmljZV9udW1iZXIobnVtYmVyKToKKyAgICAgICAg
cmV0dXJuIFNpbXVsYXRvci5fbWFuYWdlZF9kZXZpY2VzW251bWJlcl0KKworICAgIEBzdGF0aWNt
ZXRob2QKICAgICBkZWYgd2FpdF91bnRpbF9kZXZpY2VfaXNfYm9vdGVkKHVkaWQsIHRpbWVvdXRf
c2Vjb25kcz02MCAqIDUpOgogICAgICAgICBTaW11bGF0b3Iud2FpdF91bnRpbF9kZXZpY2VfaXNf
aW5fc3RhdGUodWRpZCwgU2ltdWxhdG9yLkRldmljZVN0YXRlLkJPT1RFRCwgdGltZW91dF9zZWNv
bmRzKQogICAgICAgICB3aXRoIHRpbWVvdXQoc2Vjb25kcz10aW1lb3V0X3NlY29uZHMpOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286453</attachid>
            <date>2016-08-19 07:50:48 -0700</date>
            <delta_ts>2016-08-19 13:12:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160985-20160819074857.patch</filename>
            <type>text/plain</type>
            <size>13465</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NTU5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmI1NTVlZjFjM2JlNGIzZDhhNzFkNTdkMjhhZTk3NWRk
MmQyZTE0OC4uZWJiZTZmYjBhZmZkZmNiYzc0NDNjNjhmMzA1ZDRjOGRlMTY4ODdlZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0
IEBACisyMDE2LTA4LTE4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFJFR1JFU1NJT04gKHIyMDQ0NzcpOiBSdW5uaW5nIExheW91dFRlc3RzIG9uIGlv
cy1zaW11bGF0b3IgYmVjYW1lIH4xNSBtaW51dGVzIHNsb3dlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwOTg1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICByMjA0NDc3IHJlbW92ZWQgQG1l
bW9pemVkIG9uIGEgY291cGxlIG9mIGlvcy5weSBmdW5jdGlvbnMsIGNhdXNpbmcgdGhlbSB0byBp
bnN0YW50aWF0ZQorICAgICAgICBhIFNpbXVsYXRvcigpIG9uIGV2ZXJ5IGNhbGwsIHdoaWNoIGNh
dXNlcyAneGNydW4gc2ltY3RsIGxpc3QnIHRvIHJ1bi4gVGhlIGZ1bmN0aW9ucworICAgICAgICBt
dXN0IG5vdCBiZSBAbWVtb2l6ZWQsIGJlY2F1c2UgdGhlaXIgcmV0dXJuIHZhbHVlIGRlcGVuZHMg
b24gdGhlIHZhbHVlIG9mIHNpbXVsYXRvcl9kZXZpY2VfdHlwZSgpLgorICAgICAgICAKKyAgICAg
ICAgRml4IGJ5IGFkZGluZyBzb21lIGdsb2JhbCBzdGF0ZSBpbiBzaW11bGF0b3IucHkgdGhhdCB0
cmFja3MgdGhlIGNyZWF0ZWQgZGV2aWNlcyAKKyAgICAgICAgaW4gYSB3b3JrZXIgbnVtYmVyIC0+
IERldmljZSBkaWN0aW9uYXJ5LiBFeHBsaWNpdGx5IGNyZWF0ZSBkZXZpY2VzIGluIF9jcmVhdGVf
c2ltdWxhdG9ycygpLAorICAgICAgICBhbmQgZGVsZXRlIHRoZW0gaW4gY2xlYW5fdXBfdGVzdF9y
dW4oKS4KKyAgICAgICAgCisgICAgICAgIFNpbXVsYXRvciB0cmFja3MgdGhlIGRldmljZXMgaW4g
YSBnbG9iYWwgZGljdGlvbmFyeSwgc2luY2Ugc3RhdGUgbmVlZHMgdG8gcGVyc2lzdAorICAgICAg
ICBhY3Jvc3MgZGlmZmVyZW50IGluc3RhbmNlcyBvZiBJT1NTaW11bGF0b3JQb3J0LgorICAgICAg
ICAKKyAgICAgICAgQW5ub3lpbmdseSwgdGhlICJDb21tYW5kIGxpbmU6IiBkdW1waW5nIHRyaWVk
IHRvIGFjY2VzcyBhIGRldmljZSBiZWZvcmUgd2UnZCBkb25lCisgICAgICAgIGFueSBzZXR1cC4g
UmF0aGVyIHRoYW4gaW1wbGljaXRseSBjcmVhdGluZyBhIGRldmljZSBoZXJlICh3aGljaCB0aGUg
b2xkIGNvZGUgZGlkKSwKKyAgICAgICAgb3ZlcnJpZGUgdGhlIG1vcmUgY2xlYXJseSBuYW1lZCBk
cml2ZXJfY21kX2xpbmVfZm9yX2xvZ2dpbmcoKSBpbiBJT1NTaW11bGF0b3JQb3J0CisgICAgICAg
IGFuZCBzZXQgZmxhZyB0byBzYXkgdGhhdCBkZXZpY2VfaWRfZm9yX3dvcmtlcl9udW1iZXIoKSBk
b2Vzbid0IG5lZWQgdG8gcmV0dXJuIGEgcmVhbAorICAgICAgICBkZXZpY2UgaWQuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weToKKyAg
ICAgICAgKFByaW50ZXIucHJpbnRfY29uZmlnKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3BvcnQvYmFzZS5weToKKyAgICAgICAgKFBvcnQuZHJpdmVyX2NtZF9saW5lX2Zvcl9sb2dnaW5n
KToKKyAgICAgICAgKFBvcnQuZHJpdmVyX2NtZF9saW5lKTogRGVsZXRlZC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5OgorICAgICAgICAoSU9TU2ltdWxhdG9yRHJp
dmVyLmNtZF9saW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5Ogor
ICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC5fX2luaXRfXyk6CisgICAgICAgIChJT1NTaW11bGF0
b3JQb3J0LmRyaXZlcl9jbWRfbGluZV9mb3JfbG9nZ2luZyk6CisgICAgICAgIChJT1NTaW11bGF0
b3JQb3J0Ll9jcmVhdGVfc2ltdWxhdG9ycyk6CisgICAgICAgIChJT1NTaW11bGF0b3JQb3J0LnNl
dHVwX3Rlc3RfcnVuKToKKyAgICAgICAgKElPU1NpbXVsYXRvclBvcnQuY2xlYW5fdXBfdGVzdF9y
dW4pOgorICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC5fY3JlYXRlX2RldmljZSk6CisgICAgICAg
IChJT1NTaW11bGF0b3JQb3J0Ll9yZW1vdmVfZGV2aWNlKToKKyAgICAgICAgKElPU1NpbXVsYXRv
clBvcnQuX3Rlc3RpbmdfZGV2aWNlKToKKyAgICAgICAgKElPU1NpbXVsYXRvclBvcnQuZGV2aWNl
X2lkX2Zvcl93b3JrZXJfbnVtYmVyKToKKyAgICAgICAgKElPU1NpbXVsYXRvclBvcnQuX3NldF9k
ZXZpY2VfY2xhc3MpOiBEZWxldGVkLgorICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC50ZXN0aW5n
X2RldmljZSk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRf
dGVzdGNhc2UucHk6CisgICAgICAgIChQb3J0VGVzdENhc2UudGVzdF9kcml2ZXJfY21kX2xpbmUp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdG9yLnB5OgorICAgICAg
ICAoU2ltdWxhdG9yKToKKyAgICAgICAgKFNpbXVsYXRvci5jcmVhdGVfZGV2aWNlKToKKyAgICAg
ICAgKFNpbXVsYXRvci5yZW1vdmVfZGV2aWNlKToKKyAgICAgICAgKFNpbXVsYXRvci5kZXZpY2Vf
bnVtYmVyKToKKwogMjAxNi0wOC0xNyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQG5hdmVy
Y29ycC5jb20+CiAKICAgICAgICAgW0VGTF0gQnVtcCBlZmwgdmVyc2lvbiBmcm9tIDEuMTcgdG8g
MS4xOApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmll
d3MvcHJpbnRpbmcucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3
cy9wcmludGluZy5weQppbmRleCA2NWM3OTU3MThiYzBmODVkYmZmOGNjNTU3YWM0NTJiZGMyMThl
ZmQ3Li5iM2ZmODc3ZjcxNTEyYzIzMDZmZGU3MmU3ODM0NjczNzcxMTczZjNjIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5w
eQpAQCAtNDgsNyArNDgsNyBAQCBkZWYgcHJpbnRfb3B0aW9ucygpOgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSdwcmludCBhIHN1bW1hcml6ZWQgcmVzdWx0IGZvciBldmVyeSB0
ZXN0IChvbmUgbGluZSBwZXIgdGVzdCknKSwKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24o
Jy0tZGV0YWlscycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3ByaW50IGRldGFpbGVkIHJlc3VsdHMgZm9yIGV2
ZXJ5IHRlc3QnKSwKLSAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tZGVidWctcnd0LWxv
Z2dpbmcnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICBvcHRw
YXJzZS5tYWtlX29wdGlvbignLS1kZWJ1Zy1yd3QtbG9nZ2luZycsIGFjdGlvbj0nc3RvcmVfdHJ1
ZScsIGRlZmF1bHQ9VHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ncHJp
bnQgdGltZXN0YW1wcyBhbmQgZGVidWcgaW5mb3JtYXRpb24gZm9yIHJ1bi13ZWJraXQtdGVzdHMg
aXRzZWxmJyksCiAgICAgXQogCkBAIC05NCw3ICs5NCw3IEBAIGNsYXNzIFByaW50ZXIob2JqZWN0
KToKICAgICAgICAgc2VsZi5fcHJpbnRfZGVmYXVsdCgiUmVndWxhciB0aW1lb3V0OiAlcywgc2xv
dyB0ZXN0IHRpbWVvdXQ6ICVzIiAlCiAgICAgICAgICAgICAgICAgICAoc2VsZi5fb3B0aW9ucy50
aW1lX291dF9tcywgc2VsZi5fb3B0aW9ucy5zbG93X3RpbWVfb3V0X21zKSkKIAotICAgICAgICBz
ZWxmLl9wcmludF9kZWZhdWx0KCdDb21tYW5kIGxpbmU6ICcgKyAnICcuam9pbihzZWxmLl9wb3J0
LmRyaXZlcl9jbWRfbGluZSgpKSkKKyAgICAgICAgc2VsZi5fcHJpbnRfZGVmYXVsdCgnQ29tbWFu
ZCBsaW5lOiAnICsgJyAnLmpvaW4oc2VsZi5fcG9ydC5kcml2ZXJfY21kX2xpbmVfZm9yX2xvZ2dp
bmcoKSkpCiAgICAgICAgIHNlbGYuX3ByaW50X2RlZmF1bHQoJycpCiAKICAgICBkZWYgcHJpbnRf
Zm91bmQoc2VsZiwgbnVtX2FsbF90ZXN0X2ZpbGVzLCBudW1fdG9fcnVuLCByZXBlYXRfZWFjaCwg
aXRlcmF0aW9ucyk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFz
ZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CmluZGV4IGI2NDVhNTNl
OTE3MzAwNWJkNjQ5ZDBiMjkwZmZiMTEwMzIyMTJjYjIuLjM2ODY5ZjMzNTgyOTE0YzUxMTEyMjU1
NzZjZGZhZDM2YjY2M2JlNTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC9iYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CkBAIC02
NTgsNyArNjU4LDcgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIHRl
c3RfbmFtZSArICcvJwogICAgICAgICByZXR1cm4gdGVzdF9uYW1lCiAKLSAgICBkZWYgZHJpdmVy
X2NtZF9saW5lKHNlbGYpOgorICAgIGRlZiBkcml2ZXJfY21kX2xpbmVfZm9yX2xvZ2dpbmcoc2Vs
Zik6CiAgICAgICAgICIiIlByaW50cyB0aGUgRFJUIGNvbW1hbmQgbGluZSB0aGF0IHdpbGwgYmUg
dXNlZC4iIiIKICAgICAgICAgZHJpdmVyID0gc2VsZi5jcmVhdGVfZHJpdmVyKDApCiAgICAgICAg
IHJldHVybiBkcml2ZXIuY21kX2xpbmUoc2VsZi5nZXRfb3B0aW9uKCdwaXhlbF90ZXN0cycpLCBb
XSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5CmluZGV4IGE1Mzk5NGI0NjZiNTM3
NDg1MGIzMTUxZGFkOGQyN2M0YTFkMjFiOTEuLmIzMzQzMGM1YzE4YTJkNTJjOTY2NDliZTBiN2Q0
NDA2ZGVkMzc3NjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2
ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQpAQCAtNTk5
LDcgKzU5OSw3IEBAIGNsYXNzIElPU1NpbXVsYXRvckRyaXZlcihEcml2ZXIpOgogICAgICAgICBk
dW1wX3Rvb2xfYXJncyA9IGNtZFsxOl0KICAgICAgICAgcHJvZHVjdF9kaXIgPSBzZWxmLl9wb3J0
Ll9idWlsZF9wYXRoKCkKICAgICAgICAgcmVsYXlfYXJncyA9IFsKLSAgICAgICAgICAgICctdWRp
ZCcsIHNlbGYuX3BvcnQudGVzdGluZ19kZXZpY2Uoc2VsZi5fd29ya2VyX251bWJlcikudWRpZCwK
KyAgICAgICAgICAgICctdWRpZCcsIHNlbGYuX3BvcnQuZGV2aWNlX2lkX2Zvcl93b3JrZXJfbnVt
YmVyKHNlbGYuX3dvcmtlcl9udW1iZXIpLAogICAgICAgICAgICAgJy1wcm9kdWN0RGlyJywgcHJv
ZHVjdF9kaXIsCiAgICAgICAgICAgICAnLWFwcCcsIGR1bXBfdG9vbCwKICAgICAgICAgXQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2lvcy5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9pb3MucHkKaW5kZXggMDk4NWFiNDViNzk5OThiZDkzMzAwNzJiNWM5
MjBjNTZkOTU3NWIxMy4uZDNkOWM2MGY3NWI4NDJlYjE3NTg5MjdiMGJmNmJhZjBmODk5ZTQ4NyAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2lvcy5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5CkBAIC05OCw2ICs5OCw3IEBAIGNsYXNzIElP
U1NpbXVsYXRvclBvcnQoQXBwbGVQb3J0KToKICAgICAgICAgc3VwZXIoSU9TU2ltdWxhdG9yUG9y
dCwgc2VsZikuX19pbml0X18oaG9zdCwgcG9ydF9uYW1lLCAqKmt3YXJncykKIAogICAgICAgICBv
cHRpb25hbF9kZXZpY2VfY2xhc3MgPSBzZWxmLmdldF9vcHRpb24oJ2RldmljZV9jbGFzcycpCisg
ICAgICAgIHNlbGYuX3ByaW50aW5nX2NtZF9saW5lID0gRmFsc2UKICAgICAgICAgc2VsZi5fZGV2
aWNlX2NsYXNzID0gb3B0aW9uYWxfZGV2aWNlX2NsYXNzIGlmIG9wdGlvbmFsX2RldmljZV9jbGFz
cyBlbHNlIHNlbGYuREVGQVVMVF9ERVZJQ0VfQ0xBU1MKICAgICAgICAgX2xvZy5kZWJ1ZygnSU9T
U2ltdWxhdG9yUG9ydCBfZGV2aWNlX2NsYXNzIGlzICVzJywgc2VsZi5fZGV2aWNlX2NsYXNzKQog
CkBAIC0xMDgsNiArMTA5LDEzIEBAIGNsYXNzIElPU1NpbXVsYXRvclBvcnQoQXBwbGVQb3J0KToK
ICAgICAgICAgICAgIHJldHVybiAnV2ViS2l0VGVzdFJ1bm5lckFwcC5hcHAnCiAgICAgICAgIHJl
dHVybiAnRHVtcFJlbmRlclRyZWUuYXBwJwogCisgICAgZGVmIGRyaXZlcl9jbWRfbGluZV9mb3Jf
bG9nZ2luZyhzZWxmKToKKyAgICAgICAgIyBBdm9pZCBzcGlubmluZyB1cCBkZXZpY2VzIGp1c3Qg
Zm9yIGxvZ2dpbmcgdGhlIGNvbW1hbmRsaW5lLgorICAgICAgICBzZWxmLl9wcmludGluZ19jbWRf
bGluZSA9IFRydWUKKyAgICAgICAgcmVzdWx0ID0gc3VwZXIoSU9TU2ltdWxhdG9yUG9ydCwgc2Vs
ZikuZHJpdmVyX2NtZF9saW5lX2Zvcl9sb2dnaW5nKCkKKyAgICAgICAgc2VsZi5fcHJpbnRpbmdf
Y21kX2xpbmUgPSBGYWxzZQorICAgICAgICByZXR1cm4gcmVzdWx0CisKICAgICBAcHJvcGVydHkK
ICAgICBAbWVtb2l6ZWQKICAgICBkZWYgc2ltdWxhdG9yX3J1bnRpbWUoc2VsZik6CkBAIC0yMjQs
NyArMjMyLDYgQEAgY2xhc3MgSU9TU2ltdWxhdG9yUG9ydChBcHBsZVBvcnQpOgogICAgICAgICBy
ZXR1cm4gbGlzdChyZXZlcnNlZChbc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX3dlYmtpdF9i
YXNlbGluZV9wYXRoKHApLCAnVGVzdEV4cGVjdGF0aW9ucycpIGZvciBwIGluIHNlbGYuYmFzZWxp
bmVfc2VhcmNoX3BhdGgoKV0pKQogCiAgICAgZGVmIF9zZXRfZGV2aWNlX2NsYXNzKHNlbGYsIGRl
dmljZV9jbGFzcyk6Ci0gICAgICAgICMgSWRlYWxseSB3ZSdkIGVuc3VyZSB0aGF0IG5vIHNpbXVs
YXRvcnMgYXJlIHJ1bm5pbmcgd2hlbiB0aGlzIGlzIGNhbGxlZC4KICAgICAgICAgc2VsZi5fZGV2
aWNlX2NsYXNzID0gZGV2aWNlX2NsYXNzIGlmIGRldmljZV9jbGFzcyBlbHNlIHNlbGYuREVGQVVM
VF9ERVZJQ0VfQ0xBU1MKIAogICAgIGRlZiBfY3JlYXRlX3NpbXVsYXRvcnMoc2VsZik6CkBAIC0y
MzYsOCArMjQzLDEyIEBAIGNsYXNzIElPU1NpbXVsYXRvclBvcnQoQXBwbGVQb3J0KToKICAgICAg
ICAgc2VsZi5fY3JlYXRlU2ltdWxhdG9yQXBwcygpCiAKICAgICAgICAgZm9yIGkgaW4geHJhbmdl
KHNlbGYuY2hpbGRfcHJvY2Vzc2VzKCkpOgotICAgICAgICAgICAgU2ltdWxhdG9yLndhaXRfdW50
aWxfZGV2aWNlX2lzX2luX3N0YXRlKHNlbGYudGVzdGluZ19kZXZpY2UoaSkudWRpZCwgU2ltdWxh
dG9yLkRldmljZVN0YXRlLlNIVVRET1dOKQotICAgICAgICAgICAgU2ltdWxhdG9yLnJlc2V0X2Rl
dmljZShzZWxmLnRlc3RpbmdfZGV2aWNlKGkpLnVkaWQpCisgICAgICAgICAgICBzZWxmLl9jcmVh
dGVfZGV2aWNlKGkpCisKKyAgICAgICAgZm9yIGkgaW4geHJhbmdlKHNlbGYuY2hpbGRfcHJvY2Vz
c2VzKCkpOgorICAgICAgICAgICAgZGV2aWNlX3VkaWQgPSBzZWxmLl90ZXN0aW5nX2RldmljZShp
KS51ZGlkCisgICAgICAgICAgICBTaW11bGF0b3Iud2FpdF91bnRpbF9kZXZpY2VfaXNfaW5fc3Rh
dGUoZGV2aWNlX3VkaWQsIFNpbXVsYXRvci5EZXZpY2VTdGF0ZS5TSFVURE9XTikKKyAgICAgICAg
ICAgIFNpbXVsYXRvci5yZXNldF9kZXZpY2UoZGV2aWNlX3VkaWQpCiAKICAgICBkZWYgc2V0dXBf
dGVzdF9ydW4oc2VsZiwgZGV2aWNlX2NsYXNzPU5vbmUpOgogICAgICAgICBtYWNfb3NfdmVyc2lv
biA9IHNlbGYuaG9zdC5wbGF0Zm9ybS5vc192ZXJzaW9uCkBAIC0yNTAsNyArMjYxLDcgQEAgY2xh
c3MgSU9TU2ltdWxhdG9yUG9ydChBcHBsZVBvcnQpOgogICAgICAgICBzZWxmLl9jcmVhdGVfc2lt
dWxhdG9ycygpCiAKICAgICAgICAgZm9yIGkgaW4geHJhbmdlKHNlbGYuY2hpbGRfcHJvY2Vzc2Vz
KCkpOgotICAgICAgICAgICAgZGV2aWNlX3VkaWQgPSBzZWxmLnRlc3RpbmdfZGV2aWNlKGkpLnVk
aWQKKyAgICAgICAgICAgIGRldmljZV91ZGlkID0gc2VsZi5fdGVzdGluZ19kZXZpY2UoaSkudWRp
ZAogICAgICAgICAgICAgX2xvZy5kZWJ1ZygndGVzdGluZyBkZXZpY2UgJXMgaGFzIHVkaWQgJXMn
LCBpLCBkZXZpY2VfdWRpZCkKIAogICAgICAgICAgICAgIyBGSVhNRTogPHJkYXI6Ly9wcm9ibGVt
LzIwOTE2MTQwPiBTd2l0Y2ggdG8gdXNpbmcgQ29yZVNpbXVsYXRvci5mcmFtZXdvcmsgZm9yIGxh
dW5jaGluZyBhbmQgcXVpdHRpbmcgaU9TIFNpbXVsYXRvcgpAQCAtMjYzLDcgKzI3NCw3IEBAIGNs
YXNzIElPU1NpbXVsYXRvclBvcnQoQXBwbGVQb3J0KToKIAogICAgICAgICBfbG9nLmluZm8oJ1dh
aXRpbmcgZm9yIGFsbCBpT1MgU2ltdWxhdG9ycyB0byBmaW5pc2ggYm9vdGluZy4nKQogICAgICAg
ICBmb3IgaSBpbiB4cmFuZ2Uoc2VsZi5jaGlsZF9wcm9jZXNzZXMoKSk6Ci0gICAgICAgICAgICBT
aW11bGF0b3Iud2FpdF91bnRpbF9kZXZpY2VfaXNfYm9vdGVkKHNlbGYudGVzdGluZ19kZXZpY2Uo
aSkudWRpZCkKKyAgICAgICAgICAgIFNpbXVsYXRvci53YWl0X3VudGlsX2RldmljZV9pc19ib290
ZWQoc2VsZi5fdGVzdGluZ19kZXZpY2UoaSkudWRpZCkKIAogICAgIGRlZiBfcXVpdF9pb3Nfc2lt
dWxhdG9yKHNlbGYpOgogICAgICAgICBfbG9nLmRlYnVnKCJfcXVpdF9pb3Nfc2ltdWxhdG9yIikK
QEAgLTI4NCw3ICsyOTUsOSBAQCBjbGFzcyBJT1NTaW11bGF0b3JQb3J0KEFwcGxlUG9ydCk6CiAK
ICAgICAgICAgZm9yIGkgaW4geHJhbmdlKHNlbGYuY2hpbGRfcHJvY2Vzc2VzKCkpOgogICAgICAg
ICAgICAgc2ltdWxhdG9yX3BhdGggPSBzZWxmLmdldF9zaW11bGF0b3JfcGF0aChpKQotICAgICAg
ICAgICAgZGV2aWNlX3VkaWQgPSBzZWxmLnRlc3RpbmdfZGV2aWNlKGkpLnVkaWQKKyAgICAgICAg
ICAgIGRldmljZV91ZGlkID0gc2VsZi5fdGVzdGluZ19kZXZpY2UoaSkudWRpZAorICAgICAgICAg
ICAgc2VsZi5fcmVtb3ZlX2RldmljZShpKQorCiAgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5l
eGlzdHMoc2ltdWxhdG9yX3BhdGgpOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAg
ICAgICB0cnk6CkBAIC0zMDEsNyArMzE0LDYgQEAgY2xhc3MgSU9TU2ltdWxhdG9yUG9ydChBcHBs
ZVBvcnQpOgogICAgICAgICAgICAgICAgIF9sb2cuZGVidWcoJ3JtdHJlZSAlcycsIHNhdmVkX3N0
YXRlX3BhdGgpCiAgICAgICAgICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbS5ybXRyZWUoc2F2ZWRf
c3RhdGVfcGF0aCkKIAotICAgICAgICAgICAgICAgIFNpbXVsYXRvcigpLmRlbGV0ZV9kZXZpY2Uo
ZGV2aWNlX3VkaWQpCiAgICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICAgICAgX2xvZy53
YXJuaW5nKCdVbmFibGUgdG8gcmVtb3ZlIFNpbXVsYXRvcicgKyBzdHIoaSkpCiAKQEAgLTM2OSwx
MiArMzgxLDIwIEBAIGNsYXNzIElPU1NpbXVsYXRvclBvcnQoQXBwbGVQb3J0KToKICAgICAgICAg
ICAgIHJldHVybiBzdGRlcnIsIE5vbmUKICAgICAgICAgcmV0dXJuIHN0ZGVyciwgY3Jhc2hfbG9n
CiAKLSAgICBkZWYgdGVzdGluZ19kZXZpY2Uoc2VsZiwgbnVtYmVyKToKLSAgICAgICAgIyBGSVhN
RTogcmF0aGVyIHRoYW4gY2FsbGluZyBsb29rdXBfb3JfY3JlYXRlX2RldmljZSBldmVyeSB0aW1l
LCB3ZSBzaG91bGQganVzdCBzdG9yZSBhIG1hcHBpbmcgb2YKLSAgICAgICAgIyBudW1iZXIgdG8g
ZGV2aWNlX3VkaWQuCi0gICAgICAgIGRldmljZV90eXBlID0gc2VsZi5zaW11bGF0b3JfZGV2aWNl
X3R5cGUoKQotICAgICAgICBfbG9nLmRlYnVnKCcgdGVzdGluZ19kZXZpY2UgJXMgdXNpbmcgZGV2
aWNlX3R5cGUgJXMnLCBudW1iZXIsIGRldmljZV90eXBlKQotICAgICAgICByZXR1cm4gU2ltdWxh
dG9yKCkubG9va3VwX29yX2NyZWF0ZV9kZXZpY2UoZGV2aWNlX3R5cGUubmFtZSArICcgV2ViS2l0
IFRlc3RlcicgKyBzdHIobnVtYmVyKSwgZGV2aWNlX3R5cGUsIHNlbGYuc2ltdWxhdG9yX3J1bnRp
bWUpCisgICAgZGVmIF9jcmVhdGVfZGV2aWNlKHNlbGYsIG51bWJlcik6CisgICAgICAgIHJldHVy
biBTaW11bGF0b3IuY3JlYXRlX2RldmljZShudW1iZXIsIHNlbGYuc2ltdWxhdG9yX2RldmljZV90
eXBlKCksIHNlbGYuc2ltdWxhdG9yX3J1bnRpbWUpCisKKyAgICBkZWYgX3JlbW92ZV9kZXZpY2Uo
c2VsZiwgbnVtYmVyKToKKyAgICAgICAgU2ltdWxhdG9yLnJlbW92ZV9kZXZpY2UobnVtYmVyKQor
CisgICAgZGVmIF90ZXN0aW5nX2RldmljZShzZWxmLCBudW1iZXIpOgorICAgICAgICByZXR1cm4g
U2ltdWxhdG9yLmRldmljZV9udW1iZXIobnVtYmVyKQorCisgICAgIyBUaGlzIGlzIG9ubHkgZXhw
b3NlZCBzbyB0aGF0IElPU1NpbXVsYXRvckRyaXZlciBjYW4gdXNlIGl0LgorICAgIGRlZiBkZXZp
Y2VfaWRfZm9yX3dvcmtlcl9udW1iZXIoc2VsZiwgbnVtYmVyKToKKyAgICAgICAgaWYgc2VsZi5f
cHJpbnRpbmdfY21kX2xpbmU6CisgICAgICAgICAgICByZXR1cm4gJzxkdW1teSBpZD4nCisgICAg
ICAgIHJldHVybiBzZWxmLl90ZXN0aW5nX2RldmljZShudW1iZXIpLnVkaWQKIAogICAgIGRlZiBn
ZXRfc2ltdWxhdG9yX3BhdGgoc2VsZiwgc3VmZml4PSIiKToKICAgICAgICAgcmV0dXJuIG9zLnBh
dGguam9pbihzZWxmLlNJTVVMQVRPUl9ESVJFQ1RPUlksICJTaW11bGF0b3IiICsgc3RyKHN1ZmZp
eCkgKyAiLmFwcCIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvcG9y
dF90ZXN0Y2FzZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNl
LnB5CmluZGV4IDY4MGQ4MDlmYTA5Y2U2OWE3ZmJmZGQ5NzI1YzhjMGU0MGQ3YjAxMDIuLjc4MzA4
MzkwMGMzMTkyOWU1Mzg1MDhjMGM1OTZkZGM2OTA1Y2I0M2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CkBAIC0xMDAsMTEgKzEwMCwxMSBAQCBjbGFz
cyBQb3J0VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfZHJpdmVy
X2NtZF9saW5lKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUobGVuKHBvcnQuZHJpdmVyX2NtZF9saW5lKCkpKQorICAgICAgICBz
ZWxmLmFzc2VydFRydWUobGVuKHBvcnQuZHJpdmVyX2NtZF9saW5lX2Zvcl9sb2dnaW5nKCkpKQog
CiAgICAgICAgIG9wdGlvbnMgPSBNb2NrT3B0aW9ucyhhZGRpdGlvbmFsX2RydF9mbGFnPVsnLS1m
b289YmFyJywgJy0tZm9vPWJheiddKQogICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQob3B0
aW9ucz1vcHRpb25zKQotICAgICAgICBjbWRfbGluZSA9IHBvcnQuZHJpdmVyX2NtZF9saW5lKCkK
KyAgICAgICAgY21kX2xpbmUgPSBwb3J0LmRyaXZlcl9jbWRfbGluZV9mb3JfbG9nZ2luZygpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnLS1mb289YmFyJyBpbiBjbWRfbGluZSkKICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKCctLWZvbz1iYXonIGluIGNtZF9saW5lKQogCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRvci5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkveGNvZGUvc2ltdWxhdG9yLnB5CmluZGV4IGZiNmQ0MWZmNGI4NWRjNGE1MjJmYzhk
ODZmNWIzN2U5NmY1MjZlY2MuLjA0ZjJiMmQxY2NmMDk5ZmQ1ZjA1ZmZkZmU1NWMwNTg1MTVmMTdj
NjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdG9yLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdG9yLnB5CkBAIC0yODEs
NiArMjgxLDggQEAgY2xhc3MgU2ltdWxhdG9yKG9iamVjdCk6CiAgICAgZGV2aWNlc19yZSA9IHJl
LmNvbXBpbGUoCiAgICAgICAgICdccyooP1A8bmFtZT5bXihdKyApXCgoP1A8dWRpZD5bXildKylc
KSBcKCg/UDxzdGF0ZT5bXildKylcKSggXCgoP1A8YXZhaWxhYmlsaXR5PlteKV0rKVwpKT8nKQog
CisgICAgX21hbmFnZWRfZGV2aWNlcyA9IHt9CisKICAgICBkZWYgX19pbml0X18oc2VsZiwgaG9z
dD1Ob25lKToKICAgICAgICAgc2VsZi5faG9zdCA9IGhvc3Qgb3IgSG9zdCgpCiAgICAgICAgIHNl
bGYucnVudGltZXMgPSBbXQpAQCAtMjk3LDYgKzI5OSwyNiBAQCBjbGFzcyBTaW11bGF0b3Iob2Jq
ZWN0KToKICAgICAgICAgU0hVVFRJTkdfRE9XTiA9IDQKIAogICAgIEBzdGF0aWNtZXRob2QKKyAg
ICBkZWYgY3JlYXRlX2RldmljZShudW1iZXIsIGRldmljZV90eXBlLCBydW50aW1lKToKKyAgICAg
ICAgZGV2aWNlID0gU2ltdWxhdG9yKCkubG9va3VwX29yX2NyZWF0ZV9kZXZpY2UoZGV2aWNlX3R5
cGUubmFtZSArICcgV2ViS2l0IFRlc3RlcicgKyBzdHIobnVtYmVyKSwgZGV2aWNlX3R5cGUsIHJ1
bnRpbWUpCisgICAgICAgIF9sb2cuZGVidWcoJ2NyZWF0ZWQgZGV2aWNlIHt9IHt9Jy5mb3JtYXQo
bnVtYmVyLCBkZXZpY2UpKQorICAgICAgICBhc3NlcnQobGVuKFNpbXVsYXRvci5fbWFuYWdlZF9k
ZXZpY2VzKSA9PSBudW1iZXIpCisgICAgICAgIFNpbXVsYXRvci5fbWFuYWdlZF9kZXZpY2VzW251
bWJlcl0gPSBkZXZpY2UKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgcmVtb3ZlX2Rldmlj
ZShudW1iZXIpOgorICAgICAgICBpZiBub3QgU2ltdWxhdG9yLl9tYW5hZ2VkX2RldmljZXNbbnVt
YmVyXToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBfbG9nLmRlYnVnKCdyZW1vdmluZyBk
ZXZpY2Uge30nLmZvcm1hdChudW1iZXIpKQorICAgICAgICBkZXZpY2VfdWRpZCA9IFNpbXVsYXRv
ci5fbWFuYWdlZF9kZXZpY2VzW251bWJlcl0udWRpZAorICAgICAgICBkZWwgU2ltdWxhdG9yLl9t
YW5hZ2VkX2RldmljZXNbbnVtYmVyXQorICAgICAgICBTaW11bGF0b3IuZGVsZXRlX2RldmljZShk
ZXZpY2VfdWRpZCkKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgZGV2aWNlX251bWJlcihu
dW1iZXIpOgorICAgICAgICByZXR1cm4gU2ltdWxhdG9yLl9tYW5hZ2VkX2RldmljZXNbbnVtYmVy
XQorCisgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiB3YWl0X3VudGlsX2RldmljZV9pc19ib290
ZWQodWRpZCwgdGltZW91dF9zZWNvbmRzPTYwICogNSk6CiAgICAgICAgIFNpbXVsYXRvci53YWl0
X3VudGlsX2RldmljZV9pc19pbl9zdGF0ZSh1ZGlkLCBTaW11bGF0b3IuRGV2aWNlU3RhdGUuQk9P
VEVELCB0aW1lb3V0X3NlY29uZHMpCiAgICAgICAgIHdpdGggdGltZW91dChzZWNvbmRzPXRpbWVv
dXRfc2Vjb25kcyk6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286471</attachid>
            <date>2016-08-19 13:12:21 -0700</date>
            <delta_ts>2016-08-19 14:25:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160985-20160819131029.patch</filename>
            <type>text/plain</type>
            <size>15201</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NTU5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmI1NTVlZjFjM2JlNGIzZDhhNzFkNTdkMjhhZTk3NWRk
MmQyZTE0OC4uZWJiZTZmYjBhZmZkZmNiYzc0NDNjNjhmMzA1ZDRjOGRlMTY4ODdlZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0
IEBACisyMDE2LTA4LTE4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFJFR1JFU1NJT04gKHIyMDQ0NzcpOiBSdW5uaW5nIExheW91dFRlc3RzIG9uIGlv
cy1zaW11bGF0b3IgYmVjYW1lIH4xNSBtaW51dGVzIHNsb3dlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwOTg1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICByMjA0NDc3IHJlbW92ZWQgQG1l
bW9pemVkIG9uIGEgY291cGxlIG9mIGlvcy5weSBmdW5jdGlvbnMsIGNhdXNpbmcgdGhlbSB0byBp
bnN0YW50aWF0ZQorICAgICAgICBhIFNpbXVsYXRvcigpIG9uIGV2ZXJ5IGNhbGwsIHdoaWNoIGNh
dXNlcyAneGNydW4gc2ltY3RsIGxpc3QnIHRvIHJ1bi4gVGhlIGZ1bmN0aW9ucworICAgICAgICBt
dXN0IG5vdCBiZSBAbWVtb2l6ZWQsIGJlY2F1c2UgdGhlaXIgcmV0dXJuIHZhbHVlIGRlcGVuZHMg
b24gdGhlIHZhbHVlIG9mIHNpbXVsYXRvcl9kZXZpY2VfdHlwZSgpLgorICAgICAgICAKKyAgICAg
ICAgRml4IGJ5IGFkZGluZyBzb21lIGdsb2JhbCBzdGF0ZSBpbiBzaW11bGF0b3IucHkgdGhhdCB0
cmFja3MgdGhlIGNyZWF0ZWQgZGV2aWNlcyAKKyAgICAgICAgaW4gYSB3b3JrZXIgbnVtYmVyIC0+
IERldmljZSBkaWN0aW9uYXJ5LiBFeHBsaWNpdGx5IGNyZWF0ZSBkZXZpY2VzIGluIF9jcmVhdGVf
c2ltdWxhdG9ycygpLAorICAgICAgICBhbmQgZGVsZXRlIHRoZW0gaW4gY2xlYW5fdXBfdGVzdF9y
dW4oKS4KKyAgICAgICAgCisgICAgICAgIFNpbXVsYXRvciB0cmFja3MgdGhlIGRldmljZXMgaW4g
YSBnbG9iYWwgZGljdGlvbmFyeSwgc2luY2Ugc3RhdGUgbmVlZHMgdG8gcGVyc2lzdAorICAgICAg
ICBhY3Jvc3MgZGlmZmVyZW50IGluc3RhbmNlcyBvZiBJT1NTaW11bGF0b3JQb3J0LgorICAgICAg
ICAKKyAgICAgICAgQW5ub3lpbmdseSwgdGhlICJDb21tYW5kIGxpbmU6IiBkdW1waW5nIHRyaWVk
IHRvIGFjY2VzcyBhIGRldmljZSBiZWZvcmUgd2UnZCBkb25lCisgICAgICAgIGFueSBzZXR1cC4g
UmF0aGVyIHRoYW4gaW1wbGljaXRseSBjcmVhdGluZyBhIGRldmljZSBoZXJlICh3aGljaCB0aGUg
b2xkIGNvZGUgZGlkKSwKKyAgICAgICAgb3ZlcnJpZGUgdGhlIG1vcmUgY2xlYXJseSBuYW1lZCBk
cml2ZXJfY21kX2xpbmVfZm9yX2xvZ2dpbmcoKSBpbiBJT1NTaW11bGF0b3JQb3J0CisgICAgICAg
IGFuZCBzZXQgZmxhZyB0byBzYXkgdGhhdCBkZXZpY2VfaWRfZm9yX3dvcmtlcl9udW1iZXIoKSBk
b2Vzbid0IG5lZWQgdG8gcmV0dXJuIGEgcmVhbAorICAgICAgICBkZXZpY2UgaWQuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weToKKyAg
ICAgICAgKFByaW50ZXIucHJpbnRfY29uZmlnKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3BvcnQvYmFzZS5weToKKyAgICAgICAgKFBvcnQuZHJpdmVyX2NtZF9saW5lX2Zvcl9sb2dnaW5n
KToKKyAgICAgICAgKFBvcnQuZHJpdmVyX2NtZF9saW5lKTogRGVsZXRlZC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5OgorICAgICAgICAoSU9TU2ltdWxhdG9yRHJp
dmVyLmNtZF9saW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5Ogor
ICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC5fX2luaXRfXyk6CisgICAgICAgIChJT1NTaW11bGF0
b3JQb3J0LmRyaXZlcl9jbWRfbGluZV9mb3JfbG9nZ2luZyk6CisgICAgICAgIChJT1NTaW11bGF0
b3JQb3J0Ll9jcmVhdGVfc2ltdWxhdG9ycyk6CisgICAgICAgIChJT1NTaW11bGF0b3JQb3J0LnNl
dHVwX3Rlc3RfcnVuKToKKyAgICAgICAgKElPU1NpbXVsYXRvclBvcnQuY2xlYW5fdXBfdGVzdF9y
dW4pOgorICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC5fY3JlYXRlX2RldmljZSk6CisgICAgICAg
IChJT1NTaW11bGF0b3JQb3J0Ll9yZW1vdmVfZGV2aWNlKToKKyAgICAgICAgKElPU1NpbXVsYXRv
clBvcnQuX3Rlc3RpbmdfZGV2aWNlKToKKyAgICAgICAgKElPU1NpbXVsYXRvclBvcnQuZGV2aWNl
X2lkX2Zvcl93b3JrZXJfbnVtYmVyKToKKyAgICAgICAgKElPU1NpbXVsYXRvclBvcnQuX3NldF9k
ZXZpY2VfY2xhc3MpOiBEZWxldGVkLgorICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC50ZXN0aW5n
X2RldmljZSk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRf
dGVzdGNhc2UucHk6CisgICAgICAgIChQb3J0VGVzdENhc2UudGVzdF9kcml2ZXJfY21kX2xpbmUp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdG9yLnB5OgorICAgICAg
ICAoU2ltdWxhdG9yKToKKyAgICAgICAgKFNpbXVsYXRvci5jcmVhdGVfZGV2aWNlKToKKyAgICAg
ICAgKFNpbXVsYXRvci5yZW1vdmVfZGV2aWNlKToKKyAgICAgICAgKFNpbXVsYXRvci5kZXZpY2Vf
bnVtYmVyKToKKwogMjAxNi0wOC0xNyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQG5hdmVy
Y29ycC5jb20+CiAKICAgICAgICAgW0VGTF0gQnVtcCBlZmwgdmVyc2lvbiBmcm9tIDEuMTcgdG8g
MS4xOApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmll
d3MvcHJpbnRpbmcucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3
cy9wcmludGluZy5weQppbmRleCA2NWM3OTU3MThiYzBmODVkYmZmOGNjNTU3YWM0NTJiZGMyMThl
ZmQ3Li40NzlmNWNlNjc2N2YyZDc1MjhhM2MwZGY4N2ZmMzNkZTFjNjVlNjkwIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5w
eQpAQCAtNDgsNyArNDgsNyBAQCBkZWYgcHJpbnRfb3B0aW9ucygpOgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSdwcmludCBhIHN1bW1hcml6ZWQgcmVzdWx0IGZvciBldmVyeSB0
ZXN0IChvbmUgbGluZSBwZXIgdGVzdCknKSwKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24o
Jy0tZGV0YWlscycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3ByaW50IGRldGFpbGVkIHJlc3VsdHMgZm9yIGV2
ZXJ5IHRlc3QnKSwKLSAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tZGVidWctcnd0LWxv
Z2dpbmcnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICBvcHRw
YXJzZS5tYWtlX29wdGlvbignLS1kZWJ1Zy1yd3QtbG9nZ2luZycsIGFjdGlvbj0nc3RvcmVfdHJ1
ZScsIGRlZmF1bHQ9VHJ1ZSwgIyB0ZW1wb3JhcnkgZm9yIGdldHRpbmcgRVdTIGRhdGEKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ncHJpbnQgdGltZXN0YW1wcyBhbmQgZGVidWcg
aW5mb3JtYXRpb24gZm9yIHJ1bi13ZWJraXQtdGVzdHMgaXRzZWxmJyksCiAgICAgXQogCkBAIC05
NCw3ICs5NCw3IEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fcHJpbnRf
ZGVmYXVsdCgiUmVndWxhciB0aW1lb3V0OiAlcywgc2xvdyB0ZXN0IHRpbWVvdXQ6ICVzIiAlCiAg
ICAgICAgICAgICAgICAgICAoc2VsZi5fb3B0aW9ucy50aW1lX291dF9tcywgc2VsZi5fb3B0aW9u
cy5zbG93X3RpbWVfb3V0X21zKSkKIAotICAgICAgICBzZWxmLl9wcmludF9kZWZhdWx0KCdDb21t
YW5kIGxpbmU6ICcgKyAnICcuam9pbihzZWxmLl9wb3J0LmRyaXZlcl9jbWRfbGluZSgpKSkKKyAg
ICAgICAgc2VsZi5fcHJpbnRfZGVmYXVsdCgnQ29tbWFuZCBsaW5lOiAnICsgJyAnLmpvaW4oc2Vs
Zi5fcG9ydC5kcml2ZXJfY21kX2xpbmVfZm9yX2xvZ2dpbmcoKSkpCiAgICAgICAgIHNlbGYuX3By
aW50X2RlZmF1bHQoJycpCiAKICAgICBkZWYgcHJpbnRfZm91bmQoc2VsZiwgbnVtX2FsbF90ZXN0
X2ZpbGVzLCBudW1fdG9fcnVuLCByZXBlYXRfZWFjaCwgaXRlcmF0aW9ucyk6CmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9iYXNlLnB5CmluZGV4IGI2NDVhNTNlOTE3MzAwNWJkNjQ5ZDBiMjkwZmZiMTEw
MzIyMTJjYjIuLjM2ODY5ZjMzNTgyOTE0YzUxMTEyMjU1NzZjZGZhZDM2YjY2M2JlNTEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CkBAIC02NTgsNyArNjU4LDcgQEAgY2xhc3MgUG9y
dChvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIHRlc3RfbmFtZSArICcvJwogICAgICAgICBy
ZXR1cm4gdGVzdF9uYW1lCiAKLSAgICBkZWYgZHJpdmVyX2NtZF9saW5lKHNlbGYpOgorICAgIGRl
ZiBkcml2ZXJfY21kX2xpbmVfZm9yX2xvZ2dpbmcoc2VsZik6CiAgICAgICAgICIiIlByaW50cyB0
aGUgRFJUIGNvbW1hbmQgbGluZSB0aGF0IHdpbGwgYmUgdXNlZC4iIiIKICAgICAgICAgZHJpdmVy
ID0gc2VsZi5jcmVhdGVfZHJpdmVyKDApCiAgICAgICAgIHJldHVybiBkcml2ZXIuY21kX2xpbmUo
c2VsZi5nZXRfb3B0aW9uKCdwaXhlbF90ZXN0cycpLCBbXSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvZHJpdmVyLnB5CmluZGV4IGE1Mzk5NGI0NjZiNTM3NDg1MGIzMTUxZGFkOGQyN2M0YTFkMjFi
OTEuLmIzMzQzMGM1YzE4YTJkNTJjOTY2NDliZTBiN2Q0NDA2ZGVkMzc3NjUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQpAQCAtNTk5LDcgKzU5OSw3IEBAIGNsYXNzIElPU1Np
bXVsYXRvckRyaXZlcihEcml2ZXIpOgogICAgICAgICBkdW1wX3Rvb2xfYXJncyA9IGNtZFsxOl0K
ICAgICAgICAgcHJvZHVjdF9kaXIgPSBzZWxmLl9wb3J0Ll9idWlsZF9wYXRoKCkKICAgICAgICAg
cmVsYXlfYXJncyA9IFsKLSAgICAgICAgICAgICctdWRpZCcsIHNlbGYuX3BvcnQudGVzdGluZ19k
ZXZpY2Uoc2VsZi5fd29ya2VyX251bWJlcikudWRpZCwKKyAgICAgICAgICAgICctdWRpZCcsIHNl
bGYuX3BvcnQuZGV2aWNlX2lkX2Zvcl93b3JrZXJfbnVtYmVyKHNlbGYuX3dvcmtlcl9udW1iZXIp
LAogICAgICAgICAgICAgJy1wcm9kdWN0RGlyJywgcHJvZHVjdF9kaXIsCiAgICAgICAgICAgICAn
LWFwcCcsIGR1bXBfdG9vbCwKICAgICAgICAgXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L2lvcy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3MucHkK
aW5kZXggMDk4NWFiNDViNzk5OThiZDkzMzAwNzJiNWM5MjBjNTZkOTU3NWIxMy4uZDNkOWM2MGY3
NWI4NDJlYjE3NTg5MjdiMGJmNmJhZjBmODk5ZTQ4NyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wb3J0L2lvcy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQv
aW9zLnB5CkBAIC05OCw2ICs5OCw3IEBAIGNsYXNzIElPU1NpbXVsYXRvclBvcnQoQXBwbGVQb3J0
KToKICAgICAgICAgc3VwZXIoSU9TU2ltdWxhdG9yUG9ydCwgc2VsZikuX19pbml0X18oaG9zdCwg
cG9ydF9uYW1lLCAqKmt3YXJncykKIAogICAgICAgICBvcHRpb25hbF9kZXZpY2VfY2xhc3MgPSBz
ZWxmLmdldF9vcHRpb24oJ2RldmljZV9jbGFzcycpCisgICAgICAgIHNlbGYuX3ByaW50aW5nX2Nt
ZF9saW5lID0gRmFsc2UKICAgICAgICAgc2VsZi5fZGV2aWNlX2NsYXNzID0gb3B0aW9uYWxfZGV2
aWNlX2NsYXNzIGlmIG9wdGlvbmFsX2RldmljZV9jbGFzcyBlbHNlIHNlbGYuREVGQVVMVF9ERVZJ
Q0VfQ0xBU1MKICAgICAgICAgX2xvZy5kZWJ1ZygnSU9TU2ltdWxhdG9yUG9ydCBfZGV2aWNlX2Ns
YXNzIGlzICVzJywgc2VsZi5fZGV2aWNlX2NsYXNzKQogCkBAIC0xMDgsNiArMTA5LDEzIEBAIGNs
YXNzIElPU1NpbXVsYXRvclBvcnQoQXBwbGVQb3J0KToKICAgICAgICAgICAgIHJldHVybiAnV2Vi
S2l0VGVzdFJ1bm5lckFwcC5hcHAnCiAgICAgICAgIHJldHVybiAnRHVtcFJlbmRlclRyZWUuYXBw
JwogCisgICAgZGVmIGRyaXZlcl9jbWRfbGluZV9mb3JfbG9nZ2luZyhzZWxmKToKKyAgICAgICAg
IyBBdm9pZCBzcGlubmluZyB1cCBkZXZpY2VzIGp1c3QgZm9yIGxvZ2dpbmcgdGhlIGNvbW1hbmRs
aW5lLgorICAgICAgICBzZWxmLl9wcmludGluZ19jbWRfbGluZSA9IFRydWUKKyAgICAgICAgcmVz
dWx0ID0gc3VwZXIoSU9TU2ltdWxhdG9yUG9ydCwgc2VsZikuZHJpdmVyX2NtZF9saW5lX2Zvcl9s
b2dnaW5nKCkKKyAgICAgICAgc2VsZi5fcHJpbnRpbmdfY21kX2xpbmUgPSBGYWxzZQorICAgICAg
ICByZXR1cm4gcmVzdWx0CisKICAgICBAcHJvcGVydHkKICAgICBAbWVtb2l6ZWQKICAgICBkZWYg
c2ltdWxhdG9yX3J1bnRpbWUoc2VsZik6CkBAIC0yMjQsNyArMjMyLDYgQEAgY2xhc3MgSU9TU2lt
dWxhdG9yUG9ydChBcHBsZVBvcnQpOgogICAgICAgICByZXR1cm4gbGlzdChyZXZlcnNlZChbc2Vs
Zi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKHApLCAnVGVzdEV4
cGVjdGF0aW9ucycpIGZvciBwIGluIHNlbGYuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKV0pKQogCiAg
ICAgZGVmIF9zZXRfZGV2aWNlX2NsYXNzKHNlbGYsIGRldmljZV9jbGFzcyk6Ci0gICAgICAgICMg
SWRlYWxseSB3ZSdkIGVuc3VyZSB0aGF0IG5vIHNpbXVsYXRvcnMgYXJlIHJ1bm5pbmcgd2hlbiB0
aGlzIGlzIGNhbGxlZC4KICAgICAgICAgc2VsZi5fZGV2aWNlX2NsYXNzID0gZGV2aWNlX2NsYXNz
IGlmIGRldmljZV9jbGFzcyBlbHNlIHNlbGYuREVGQVVMVF9ERVZJQ0VfQ0xBU1MKIAogICAgIGRl
ZiBfY3JlYXRlX3NpbXVsYXRvcnMoc2VsZik6CkBAIC0yMzYsOCArMjQzLDEyIEBAIGNsYXNzIElP
U1NpbXVsYXRvclBvcnQoQXBwbGVQb3J0KToKICAgICAgICAgc2VsZi5fY3JlYXRlU2ltdWxhdG9y
QXBwcygpCiAKICAgICAgICAgZm9yIGkgaW4geHJhbmdlKHNlbGYuY2hpbGRfcHJvY2Vzc2VzKCkp
OgotICAgICAgICAgICAgU2ltdWxhdG9yLndhaXRfdW50aWxfZGV2aWNlX2lzX2luX3N0YXRlKHNl
bGYudGVzdGluZ19kZXZpY2UoaSkudWRpZCwgU2ltdWxhdG9yLkRldmljZVN0YXRlLlNIVVRET1dO
KQotICAgICAgICAgICAgU2ltdWxhdG9yLnJlc2V0X2RldmljZShzZWxmLnRlc3RpbmdfZGV2aWNl
KGkpLnVkaWQpCisgICAgICAgICAgICBzZWxmLl9jcmVhdGVfZGV2aWNlKGkpCisKKyAgICAgICAg
Zm9yIGkgaW4geHJhbmdlKHNlbGYuY2hpbGRfcHJvY2Vzc2VzKCkpOgorICAgICAgICAgICAgZGV2
aWNlX3VkaWQgPSBzZWxmLl90ZXN0aW5nX2RldmljZShpKS51ZGlkCisgICAgICAgICAgICBTaW11
bGF0b3Iud2FpdF91bnRpbF9kZXZpY2VfaXNfaW5fc3RhdGUoZGV2aWNlX3VkaWQsIFNpbXVsYXRv
ci5EZXZpY2VTdGF0ZS5TSFVURE9XTikKKyAgICAgICAgICAgIFNpbXVsYXRvci5yZXNldF9kZXZp
Y2UoZGV2aWNlX3VkaWQpCiAKICAgICBkZWYgc2V0dXBfdGVzdF9ydW4oc2VsZiwgZGV2aWNlX2Ns
YXNzPU5vbmUpOgogICAgICAgICBtYWNfb3NfdmVyc2lvbiA9IHNlbGYuaG9zdC5wbGF0Zm9ybS5v
c192ZXJzaW9uCkBAIC0yNTAsNyArMjYxLDcgQEAgY2xhc3MgSU9TU2ltdWxhdG9yUG9ydChBcHBs
ZVBvcnQpOgogICAgICAgICBzZWxmLl9jcmVhdGVfc2ltdWxhdG9ycygpCiAKICAgICAgICAgZm9y
IGkgaW4geHJhbmdlKHNlbGYuY2hpbGRfcHJvY2Vzc2VzKCkpOgotICAgICAgICAgICAgZGV2aWNl
X3VkaWQgPSBzZWxmLnRlc3RpbmdfZGV2aWNlKGkpLnVkaWQKKyAgICAgICAgICAgIGRldmljZV91
ZGlkID0gc2VsZi5fdGVzdGluZ19kZXZpY2UoaSkudWRpZAogICAgICAgICAgICAgX2xvZy5kZWJ1
ZygndGVzdGluZyBkZXZpY2UgJXMgaGFzIHVkaWQgJXMnLCBpLCBkZXZpY2VfdWRpZCkKIAogICAg
ICAgICAgICAgIyBGSVhNRTogPHJkYXI6Ly9wcm9ibGVtLzIwOTE2MTQwPiBTd2l0Y2ggdG8gdXNp
bmcgQ29yZVNpbXVsYXRvci5mcmFtZXdvcmsgZm9yIGxhdW5jaGluZyBhbmQgcXVpdHRpbmcgaU9T
IFNpbXVsYXRvcgpAQCAtMjYzLDcgKzI3NCw3IEBAIGNsYXNzIElPU1NpbXVsYXRvclBvcnQoQXBw
bGVQb3J0KToKIAogICAgICAgICBfbG9nLmluZm8oJ1dhaXRpbmcgZm9yIGFsbCBpT1MgU2ltdWxh
dG9ycyB0byBmaW5pc2ggYm9vdGluZy4nKQogICAgICAgICBmb3IgaSBpbiB4cmFuZ2Uoc2VsZi5j
aGlsZF9wcm9jZXNzZXMoKSk6Ci0gICAgICAgICAgICBTaW11bGF0b3Iud2FpdF91bnRpbF9kZXZp
Y2VfaXNfYm9vdGVkKHNlbGYudGVzdGluZ19kZXZpY2UoaSkudWRpZCkKKyAgICAgICAgICAgIFNp
bXVsYXRvci53YWl0X3VudGlsX2RldmljZV9pc19ib290ZWQoc2VsZi5fdGVzdGluZ19kZXZpY2Uo
aSkudWRpZCkKIAogICAgIGRlZiBfcXVpdF9pb3Nfc2ltdWxhdG9yKHNlbGYpOgogICAgICAgICBf
bG9nLmRlYnVnKCJfcXVpdF9pb3Nfc2ltdWxhdG9yIikKQEAgLTI4NCw3ICsyOTUsOSBAQCBjbGFz
cyBJT1NTaW11bGF0b3JQb3J0KEFwcGxlUG9ydCk6CiAKICAgICAgICAgZm9yIGkgaW4geHJhbmdl
KHNlbGYuY2hpbGRfcHJvY2Vzc2VzKCkpOgogICAgICAgICAgICAgc2ltdWxhdG9yX3BhdGggPSBz
ZWxmLmdldF9zaW11bGF0b3JfcGF0aChpKQotICAgICAgICAgICAgZGV2aWNlX3VkaWQgPSBzZWxm
LnRlc3RpbmdfZGV2aWNlKGkpLnVkaWQKKyAgICAgICAgICAgIGRldmljZV91ZGlkID0gc2VsZi5f
dGVzdGluZ19kZXZpY2UoaSkudWRpZAorICAgICAgICAgICAgc2VsZi5fcmVtb3ZlX2RldmljZShp
KQorCiAgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoc2ltdWxhdG9yX3BhdGgpOgog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICB0cnk6CkBAIC0zMDEsNyArMzE0
LDYgQEAgY2xhc3MgSU9TU2ltdWxhdG9yUG9ydChBcHBsZVBvcnQpOgogICAgICAgICAgICAgICAg
IF9sb2cuZGVidWcoJ3JtdHJlZSAlcycsIHNhdmVkX3N0YXRlX3BhdGgpCiAgICAgICAgICAgICAg
ICAgc2VsZi5fZmlsZXN5c3RlbS5ybXRyZWUoc2F2ZWRfc3RhdGVfcGF0aCkKIAotICAgICAgICAg
ICAgICAgIFNpbXVsYXRvcigpLmRlbGV0ZV9kZXZpY2UoZGV2aWNlX3VkaWQpCiAgICAgICAgICAg
ICBleGNlcHQ6CiAgICAgICAgICAgICAgICAgX2xvZy53YXJuaW5nKCdVbmFibGUgdG8gcmVtb3Zl
IFNpbXVsYXRvcicgKyBzdHIoaSkpCiAKQEAgLTM2OSwxMiArMzgxLDIwIEBAIGNsYXNzIElPU1Np
bXVsYXRvclBvcnQoQXBwbGVQb3J0KToKICAgICAgICAgICAgIHJldHVybiBzdGRlcnIsIE5vbmUK
ICAgICAgICAgcmV0dXJuIHN0ZGVyciwgY3Jhc2hfbG9nCiAKLSAgICBkZWYgdGVzdGluZ19kZXZp
Y2Uoc2VsZiwgbnVtYmVyKToKLSAgICAgICAgIyBGSVhNRTogcmF0aGVyIHRoYW4gY2FsbGluZyBs
b29rdXBfb3JfY3JlYXRlX2RldmljZSBldmVyeSB0aW1lLCB3ZSBzaG91bGQganVzdCBzdG9yZSBh
IG1hcHBpbmcgb2YKLSAgICAgICAgIyBudW1iZXIgdG8gZGV2aWNlX3VkaWQuCi0gICAgICAgIGRl
dmljZV90eXBlID0gc2VsZi5zaW11bGF0b3JfZGV2aWNlX3R5cGUoKQotICAgICAgICBfbG9nLmRl
YnVnKCcgdGVzdGluZ19kZXZpY2UgJXMgdXNpbmcgZGV2aWNlX3R5cGUgJXMnLCBudW1iZXIsIGRl
dmljZV90eXBlKQotICAgICAgICByZXR1cm4gU2ltdWxhdG9yKCkubG9va3VwX29yX2NyZWF0ZV9k
ZXZpY2UoZGV2aWNlX3R5cGUubmFtZSArICcgV2ViS2l0IFRlc3RlcicgKyBzdHIobnVtYmVyKSwg
ZGV2aWNlX3R5cGUsIHNlbGYuc2ltdWxhdG9yX3J1bnRpbWUpCisgICAgZGVmIF9jcmVhdGVfZGV2
aWNlKHNlbGYsIG51bWJlcik6CisgICAgICAgIHJldHVybiBTaW11bGF0b3IuY3JlYXRlX2Rldmlj
ZShudW1iZXIsIHNlbGYuc2ltdWxhdG9yX2RldmljZV90eXBlKCksIHNlbGYuc2ltdWxhdG9yX3J1
bnRpbWUpCisKKyAgICBkZWYgX3JlbW92ZV9kZXZpY2Uoc2VsZiwgbnVtYmVyKToKKyAgICAgICAg
U2ltdWxhdG9yLnJlbW92ZV9kZXZpY2UobnVtYmVyKQorCisgICAgZGVmIF90ZXN0aW5nX2Rldmlj
ZShzZWxmLCBudW1iZXIpOgorICAgICAgICByZXR1cm4gU2ltdWxhdG9yLmRldmljZV9udW1iZXIo
bnVtYmVyKQorCisgICAgIyBUaGlzIGlzIG9ubHkgZXhwb3NlZCBzbyB0aGF0IElPU1NpbXVsYXRv
ckRyaXZlciBjYW4gdXNlIGl0LgorICAgIGRlZiBkZXZpY2VfaWRfZm9yX3dvcmtlcl9udW1iZXIo
c2VsZiwgbnVtYmVyKToKKyAgICAgICAgaWYgc2VsZi5fcHJpbnRpbmdfY21kX2xpbmU6CisgICAg
ICAgICAgICByZXR1cm4gJzxkdW1teSBpZD4nCisgICAgICAgIHJldHVybiBzZWxmLl90ZXN0aW5n
X2RldmljZShudW1iZXIpLnVkaWQKIAogICAgIGRlZiBnZXRfc2ltdWxhdG9yX3BhdGgoc2VsZiwg
c3VmZml4PSIiKToKICAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihzZWxmLlNJTVVMQVRPUl9E
SVJFQ1RPUlksICJTaW11bGF0b3IiICsgc3RyKHN1ZmZpeCkgKyAiLmFwcCIpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CmluZGV4IDY4MGQ4MDlmYTA5Y2U2
OWE3ZmJmZGQ5NzI1YzhjMGU0MGQ3YjAxMDIuLjc4MzA4MzkwMGMzMTkyOWU1Mzg1MDhjMGM1OTZk
ZGM2OTA1Y2I0M2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9wb3J0
X3Rlc3RjYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9wb3J0X3Rlc3Rj
YXNlLnB5CkBAIC0xMDAsMTEgKzEwMCwxMSBAQCBjbGFzcyBQb3J0VGVzdENhc2UodW5pdHRlc3Qu
VGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfZHJpdmVyX2NtZF9saW5lKHNlbGYpOgogICAgICAg
ICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQotICAgICAgICBzZWxmLmFzc2VydFRydWUobGVuKHBv
cnQuZHJpdmVyX2NtZF9saW5lKCkpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobGVuKHBvcnQu
ZHJpdmVyX2NtZF9saW5lX2Zvcl9sb2dnaW5nKCkpKQogCiAgICAgICAgIG9wdGlvbnMgPSBNb2Nr
T3B0aW9ucyhhZGRpdGlvbmFsX2RydF9mbGFnPVsnLS1mb289YmFyJywgJy0tZm9vPWJheiddKQog
ICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQob3B0aW9ucz1vcHRpb25zKQotICAgICAgICBj
bWRfbGluZSA9IHBvcnQuZHJpdmVyX2NtZF9saW5lKCkKKyAgICAgICAgY21kX2xpbmUgPSBwb3J0
LmRyaXZlcl9jbWRfbGluZV9mb3JfbG9nZ2luZygpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgn
LS1mb289YmFyJyBpbiBjbWRfbGluZSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCctLWZvbz1i
YXonIGluIGNtZF9saW5lKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3hj
b2RlL3NpbXVsYXRvci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdG9y
LnB5CmluZGV4IGZiNmQ0MWZmNGI4NWRjNGE1MjJmYzhkODZmNWIzN2U5NmY1MjZlY2MuLmRmNWEy
MzVlNzJhODlkNWY2ODNjZmQzYzUyY2M0NGM3ODI4OTk4YTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdG9yLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkveGNvZGUvc2ltdWxhdG9yLnB5CkBAIC0yODEsNiArMjgxLDggQEAgY2xhc3MgU2ltdWxh
dG9yKG9iamVjdCk6CiAgICAgZGV2aWNlc19yZSA9IHJlLmNvbXBpbGUoCiAgICAgICAgICdccyoo
P1A8bmFtZT5bXihdKyApXCgoP1A8dWRpZD5bXildKylcKSBcKCg/UDxzdGF0ZT5bXildKylcKSgg
XCgoP1A8YXZhaWxhYmlsaXR5PlteKV0rKVwpKT8nKQogCisgICAgX21hbmFnZWRfZGV2aWNlcyA9
IHt9CisKICAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdD1Ob25lKToKICAgICAgICAgc2VsZi5f
aG9zdCA9IGhvc3Qgb3IgSG9zdCgpCiAgICAgICAgIHNlbGYucnVudGltZXMgPSBbXQpAQCAtMjk2
LDYgKzI5OCw0MCBAQCBjbGFzcyBTaW11bGF0b3Iob2JqZWN0KToKICAgICAgICAgQk9PVEVEID0g
MwogICAgICAgICBTSFVUVElOR19ET1dOID0gNAogCisgICAgTkFNRV9GT1JfU1RBVEUgPSBbCisg
ICAgICAgICdDUkVBVElORycsCisgICAgICAgICdTSFVURE9XTicsCisgICAgICAgICdCT09USU5H
JywKKyAgICAgICAgJ0JPT1RFRCcsCisgICAgICAgICdTSFVUVElOR19ET1dOJworICAgIF0KKwor
ICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgY3JlYXRlX2RldmljZShudW1iZXIsIGRldmljZV90
eXBlLCBydW50aW1lKToKKyAgICAgICAgZGV2aWNlID0gU2ltdWxhdG9yKCkubG9va3VwX29yX2Ny
ZWF0ZV9kZXZpY2UoZGV2aWNlX3R5cGUubmFtZSArICcgV2ViS2l0IFRlc3RlcicgKyBzdHIobnVt
YmVyKSwgZGV2aWNlX3R5cGUsIHJ1bnRpbWUpCisgICAgICAgIF9sb2cuZGVidWcoJ2NyZWF0ZWQg
ZGV2aWNlIHt9IHt9Jy5mb3JtYXQobnVtYmVyLCBkZXZpY2UpKQorICAgICAgICBhc3NlcnQobGVu
KFNpbXVsYXRvci5fbWFuYWdlZF9kZXZpY2VzKSA9PSBudW1iZXIpCisgICAgICAgIFNpbXVsYXRv
ci5fbWFuYWdlZF9kZXZpY2VzW251bWJlcl0gPSBkZXZpY2UKKworICAgIEBzdGF0aWNtZXRob2QK
KyAgICBkZWYgcmVtb3ZlX2RldmljZShudW1iZXIpOgorICAgICAgICBpZiBub3QgU2ltdWxhdG9y
Ll9tYW5hZ2VkX2RldmljZXNbbnVtYmVyXToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBk
ZXZpY2VfdWRpZCA9IFNpbXVsYXRvci5fbWFuYWdlZF9kZXZpY2VzW251bWJlcl0udWRpZAorICAg
ICAgICBfbG9nLmRlYnVnKCdyZW1vdmluZyBkZXZpY2Uge30ge30nLmZvcm1hdChudW1iZXIsIGRl
dmljZV91ZGlkKSkKKyAgICAgICAgZGVsIFNpbXVsYXRvci5fbWFuYWdlZF9kZXZpY2VzW251bWJl
cl0KKyAgICAgICAgU2ltdWxhdG9yLmRlbGV0ZV9kZXZpY2UoZGV2aWNlX3VkaWQpCisKKyAgICBA
c3RhdGljbWV0aG9kCisgICAgZGVmIGRldmljZV9udW1iZXIobnVtYmVyKToKKyAgICAgICAgcmV0
dXJuIFNpbXVsYXRvci5fbWFuYWdlZF9kZXZpY2VzW251bWJlcl0KKworICAgIEBzdGF0aWNtZXRo
b2QKKyAgICBkZWYgZGV2aWNlX3N0YXRlX2Rlc2NyaXB0aW9uKHN0YXRlKToKKyAgICAgICAgaWYg
KHN0YXRlID09IFNpbXVsYXRvci5EZXZpY2VTdGF0ZS5ET0VTX05PVF9FWElTVCk6CisgICAgICAg
ICAgICByZXR1cm4gJ0RPRVNfTk9UX0VYSVNUJworICAgICAgICByZXR1cm4gU2ltdWxhdG9yLk5B
TUVfRk9SX1NUQVRFW3N0YXRlXQorCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiB3YWl0X3Vu
dGlsX2RldmljZV9pc19ib290ZWQodWRpZCwgdGltZW91dF9zZWNvbmRzPTYwICogNSk6CiAgICAg
ICAgIFNpbXVsYXRvci53YWl0X3VudGlsX2RldmljZV9pc19pbl9zdGF0ZSh1ZGlkLCBTaW11bGF0
b3IuRGV2aWNlU3RhdGUuQk9PVEVELCB0aW1lb3V0X3NlY29uZHMpCkBAIC0zMTUsMTcgKzM1MSwx
NyBAQCBjbGFzcyBTaW11bGF0b3Iob2JqZWN0KToKIAogICAgIEBzdGF0aWNtZXRob2QKICAgICBk
ZWYgd2FpdF91bnRpbF9kZXZpY2VfaXNfaW5fc3RhdGUodWRpZCwgd2FpdF91bnRpbF9zdGF0ZSwg
dGltZW91dF9zZWNvbmRzPTYwICogNSk6Ci0gICAgICAgIF9sb2cuZGVidWcoJ3dhaXRpbmcgZm9y
IGRldmljZSAlcyB0byBlbnRlciBzdGF0ZSAlcyB3aXRoIHRpbWVvdXQgJXMnLCB1ZGlkLCB3YWl0
X3VudGlsX3N0YXRlLCB0aW1lb3V0X3NlY29uZHMpCisgICAgICAgIF9sb2cuZGVidWcoJ3dhaXRp
bmcgZm9yIGRldmljZSAlcyB0byBlbnRlciBzdGF0ZSAlcyB3aXRoIHRpbWVvdXQgJXMnLCB1ZGlk
LCBTaW11bGF0b3IuZGV2aWNlX3N0YXRlX2Rlc2NyaXB0aW9uKHdhaXRfdW50aWxfc3RhdGUpLCB0
aW1lb3V0X3NlY29uZHMpCiAgICAgICAgIHdpdGggdGltZW91dChzZWNvbmRzPXRpbWVvdXRfc2Vj
b25kcyk6CiAgICAgICAgICAgICBkZXZpY2Vfc3RhdGUgPSBTaW11bGF0b3IuZGV2aWNlX3N0YXRl
KHVkaWQpCiAgICAgICAgICAgICB3aGlsZSAoZGV2aWNlX3N0YXRlICE9IHdhaXRfdW50aWxfc3Rh
dGUpOgogICAgICAgICAgICAgICAgIGRldmljZV9zdGF0ZSA9IFNpbXVsYXRvci5kZXZpY2Vfc3Rh
dGUodWRpZCkKLSAgICAgICAgICAgICAgICBfbG9nLmRlYnVnKCcgZGV2aWNlIHN0YXRlICVzJywg
ZGV2aWNlX3N0YXRlKQorICAgICAgICAgICAgICAgIF9sb2cuZGVidWcoJyBkZXZpY2Ugc3RhdGUg
JXMnLCBTaW11bGF0b3IuZGV2aWNlX3N0YXRlX2Rlc2NyaXB0aW9uKGRldmljZV9zdGF0ZSkpCiAg
ICAgICAgICAgICAgICAgdGltZS5zbGVlcCgwLjUpCiAKICAgICAgICAgZW5kX3N0YXRlID0gU2lt
dWxhdG9yLmRldmljZV9zdGF0ZSh1ZGlkKQogICAgICAgICBpZiAoZW5kX3N0YXRlICE9IHdhaXRf
dW50aWxfc3RhdGUpOgotICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdUaW1lZCBvdXQg
d2FpdGluZyBmb3Igc2ltdWxhdG9yIGRldmljZSB0byBlbnRlciBzdGF0ZSB7MH07IGN1cnJlbnQg
c3RhdGUgaXMgezF9Jy5mb3JtYXQod2FpdF91bnRpbF9zdGF0ZSwgZW5kX3N0YXRlKSkKKyAgICAg
ICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignVGltZWQgb3V0IHdhaXRpbmcgZm9yIHNpbXVsYXRv
ciBkZXZpY2UgdG8gZW50ZXIgc3RhdGUgezB9OyBjdXJyZW50IHN0YXRlIGlzIHsxfScuZm9ybWF0
KFNpbXVsYXRvci5kZXZpY2Vfc3RhdGVfZGVzY3JpcHRpb24od2FpdF91bnRpbF9zdGF0ZSksIFNp
bXVsYXRvci5kZXZpY2Vfc3RhdGVfZGVzY3JpcHRpb24oZW5kX3N0YXRlKSkpCiAKICAgICBAc3Rh
dGljbWV0aG9kCiAgICAgZGVmIGRldmljZV9zdGF0ZSh1ZGlkKToK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286478</attachid>
            <date>2016-08-19 14:25:23 -0700</date>
            <delta_ts>2016-08-19 14:25:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160985-20160819142331.patch</filename>
            <type>text/plain</type>
            <size>16966</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NTU5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmI1NTVlZjFjM2JlNGIzZDhhNzFkNTdkMjhhZTk3NWRk
MmQyZTE0OC4uZWJiZTZmYjBhZmZkZmNiYzc0NDNjNjhmMzA1ZDRjOGRlMTY4ODdlZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0
IEBACisyMDE2LTA4LTE4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFJFR1JFU1NJT04gKHIyMDQ0NzcpOiBSdW5uaW5nIExheW91dFRlc3RzIG9uIGlv
cy1zaW11bGF0b3IgYmVjYW1lIH4xNSBtaW51dGVzIHNsb3dlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwOTg1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICByMjA0NDc3IHJlbW92ZWQgQG1l
bW9pemVkIG9uIGEgY291cGxlIG9mIGlvcy5weSBmdW5jdGlvbnMsIGNhdXNpbmcgdGhlbSB0byBp
bnN0YW50aWF0ZQorICAgICAgICBhIFNpbXVsYXRvcigpIG9uIGV2ZXJ5IGNhbGwsIHdoaWNoIGNh
dXNlcyAneGNydW4gc2ltY3RsIGxpc3QnIHRvIHJ1bi4gVGhlIGZ1bmN0aW9ucworICAgICAgICBt
dXN0IG5vdCBiZSBAbWVtb2l6ZWQsIGJlY2F1c2UgdGhlaXIgcmV0dXJuIHZhbHVlIGRlcGVuZHMg
b24gdGhlIHZhbHVlIG9mIHNpbXVsYXRvcl9kZXZpY2VfdHlwZSgpLgorICAgICAgICAKKyAgICAg
ICAgRml4IGJ5IGFkZGluZyBzb21lIGdsb2JhbCBzdGF0ZSBpbiBzaW11bGF0b3IucHkgdGhhdCB0
cmFja3MgdGhlIGNyZWF0ZWQgZGV2aWNlcyAKKyAgICAgICAgaW4gYSB3b3JrZXIgbnVtYmVyIC0+
IERldmljZSBkaWN0aW9uYXJ5LiBFeHBsaWNpdGx5IGNyZWF0ZSBkZXZpY2VzIGluIF9jcmVhdGVf
c2ltdWxhdG9ycygpLAorICAgICAgICBhbmQgZGVsZXRlIHRoZW0gaW4gY2xlYW5fdXBfdGVzdF9y
dW4oKS4KKyAgICAgICAgCisgICAgICAgIFNpbXVsYXRvciB0cmFja3MgdGhlIGRldmljZXMgaW4g
YSBnbG9iYWwgZGljdGlvbmFyeSwgc2luY2Ugc3RhdGUgbmVlZHMgdG8gcGVyc2lzdAorICAgICAg
ICBhY3Jvc3MgZGlmZmVyZW50IGluc3RhbmNlcyBvZiBJT1NTaW11bGF0b3JQb3J0LgorICAgICAg
ICAKKyAgICAgICAgQW5ub3lpbmdseSwgdGhlICJDb21tYW5kIGxpbmU6IiBkdW1waW5nIHRyaWVk
IHRvIGFjY2VzcyBhIGRldmljZSBiZWZvcmUgd2UnZCBkb25lCisgICAgICAgIGFueSBzZXR1cC4g
UmF0aGVyIHRoYW4gaW1wbGljaXRseSBjcmVhdGluZyBhIGRldmljZSBoZXJlICh3aGljaCB0aGUg
b2xkIGNvZGUgZGlkKSwKKyAgICAgICAgb3ZlcnJpZGUgdGhlIG1vcmUgY2xlYXJseSBuYW1lZCBk
cml2ZXJfY21kX2xpbmVfZm9yX2xvZ2dpbmcoKSBpbiBJT1NTaW11bGF0b3JQb3J0CisgICAgICAg
IGFuZCBzZXQgZmxhZyB0byBzYXkgdGhhdCBkZXZpY2VfaWRfZm9yX3dvcmtlcl9udW1iZXIoKSBk
b2Vzbid0IG5lZWQgdG8gcmV0dXJuIGEgcmVhbAorICAgICAgICBkZXZpY2UgaWQuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weToKKyAg
ICAgICAgKFByaW50ZXIucHJpbnRfY29uZmlnKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3BvcnQvYmFzZS5weToKKyAgICAgICAgKFBvcnQuZHJpdmVyX2NtZF9saW5lX2Zvcl9sb2dnaW5n
KToKKyAgICAgICAgKFBvcnQuZHJpdmVyX2NtZF9saW5lKTogRGVsZXRlZC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5OgorICAgICAgICAoSU9TU2ltdWxhdG9yRHJp
dmVyLmNtZF9saW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zLnB5Ogor
ICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC5fX2luaXRfXyk6CisgICAgICAgIChJT1NTaW11bGF0
b3JQb3J0LmRyaXZlcl9jbWRfbGluZV9mb3JfbG9nZ2luZyk6CisgICAgICAgIChJT1NTaW11bGF0
b3JQb3J0Ll9jcmVhdGVfc2ltdWxhdG9ycyk6CisgICAgICAgIChJT1NTaW11bGF0b3JQb3J0LnNl
dHVwX3Rlc3RfcnVuKToKKyAgICAgICAgKElPU1NpbXVsYXRvclBvcnQuY2xlYW5fdXBfdGVzdF9y
dW4pOgorICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC5fY3JlYXRlX2RldmljZSk6CisgICAgICAg
IChJT1NTaW11bGF0b3JQb3J0Ll9yZW1vdmVfZGV2aWNlKToKKyAgICAgICAgKElPU1NpbXVsYXRv
clBvcnQuX3Rlc3RpbmdfZGV2aWNlKToKKyAgICAgICAgKElPU1NpbXVsYXRvclBvcnQuZGV2aWNl
X2lkX2Zvcl93b3JrZXJfbnVtYmVyKToKKyAgICAgICAgKElPU1NpbXVsYXRvclBvcnQuX3NldF9k
ZXZpY2VfY2xhc3MpOiBEZWxldGVkLgorICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC50ZXN0aW5n
X2RldmljZSk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRf
dGVzdGNhc2UucHk6CisgICAgICAgIChQb3J0VGVzdENhc2UudGVzdF9kcml2ZXJfY21kX2xpbmUp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdG9yLnB5OgorICAgICAg
ICAoU2ltdWxhdG9yKToKKyAgICAgICAgKFNpbXVsYXRvci5jcmVhdGVfZGV2aWNlKToKKyAgICAg
ICAgKFNpbXVsYXRvci5yZW1vdmVfZGV2aWNlKToKKyAgICAgICAgKFNpbXVsYXRvci5kZXZpY2Vf
bnVtYmVyKToKKwogMjAxNi0wOC0xNyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQG5hdmVy
Y29ycC5jb20+CiAKICAgICAgICAgW0VGTF0gQnVtcCBlZmwgdmVyc2lvbiBmcm9tIDEuMTcgdG8g
MS4xOApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvdmll
d3MvcHJpbnRpbmcucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3
cy9wcmludGluZy5weQppbmRleCA2NWM3OTU3MThiYzBmODVkYmZmOGNjNTU3YWM0NTJiZGMyMThl
ZmQ3Li40NzlmNWNlNjc2N2YyZDc1MjhhM2MwZGY4N2ZmMzNkZTFjNjVlNjkwIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy92aWV3cy9wcmludGluZy5w
eQpAQCAtNDgsNyArNDgsNyBAQCBkZWYgcHJpbnRfb3B0aW9ucygpOgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSdwcmludCBhIHN1bW1hcml6ZWQgcmVzdWx0IGZvciBldmVyeSB0
ZXN0IChvbmUgbGluZSBwZXIgdGVzdCknKSwKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24o
Jy0tZGV0YWlscycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3ByaW50IGRldGFpbGVkIHJlc3VsdHMgZm9yIGV2
ZXJ5IHRlc3QnKSwKLSAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tZGVidWctcnd0LWxv
Z2dpbmcnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICBvcHRw
YXJzZS5tYWtlX29wdGlvbignLS1kZWJ1Zy1yd3QtbG9nZ2luZycsIGFjdGlvbj0nc3RvcmVfdHJ1
ZScsIGRlZmF1bHQ9VHJ1ZSwgIyB0ZW1wb3JhcnkgZm9yIGdldHRpbmcgRVdTIGRhdGEKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ncHJpbnQgdGltZXN0YW1wcyBhbmQgZGVidWcg
aW5mb3JtYXRpb24gZm9yIHJ1bi13ZWJraXQtdGVzdHMgaXRzZWxmJyksCiAgICAgXQogCkBAIC05
NCw3ICs5NCw3IEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fcHJpbnRf
ZGVmYXVsdCgiUmVndWxhciB0aW1lb3V0OiAlcywgc2xvdyB0ZXN0IHRpbWVvdXQ6ICVzIiAlCiAg
ICAgICAgICAgICAgICAgICAoc2VsZi5fb3B0aW9ucy50aW1lX291dF9tcywgc2VsZi5fb3B0aW9u
cy5zbG93X3RpbWVfb3V0X21zKSkKIAotICAgICAgICBzZWxmLl9wcmludF9kZWZhdWx0KCdDb21t
YW5kIGxpbmU6ICcgKyAnICcuam9pbihzZWxmLl9wb3J0LmRyaXZlcl9jbWRfbGluZSgpKSkKKyAg
ICAgICAgc2VsZi5fcHJpbnRfZGVmYXVsdCgnQ29tbWFuZCBsaW5lOiAnICsgJyAnLmpvaW4oc2Vs
Zi5fcG9ydC5kcml2ZXJfY21kX2xpbmVfZm9yX2xvZ2dpbmcoKSkpCiAgICAgICAgIHNlbGYuX3By
aW50X2RlZmF1bHQoJycpCiAKICAgICBkZWYgcHJpbnRfZm91bmQoc2VsZiwgbnVtX2FsbF90ZXN0
X2ZpbGVzLCBudW1fdG9fcnVuLCByZXBlYXRfZWFjaCwgaXRlcmF0aW9ucyk6CmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9iYXNlLnB5CmluZGV4IGI2NDVhNTNlOTE3MzAwNWJkNjQ5ZDBiMjkwZmZiMTEw
MzIyMTJjYjIuLjM2ODY5ZjMzNTgyOTE0YzUxMTEyMjU1NzZjZGZhZDM2YjY2M2JlNTEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CkBAIC02NTgsNyArNjU4LDcgQEAgY2xhc3MgUG9y
dChvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIHRlc3RfbmFtZSArICcvJwogICAgICAgICBy
ZXR1cm4gdGVzdF9uYW1lCiAKLSAgICBkZWYgZHJpdmVyX2NtZF9saW5lKHNlbGYpOgorICAgIGRl
ZiBkcml2ZXJfY21kX2xpbmVfZm9yX2xvZ2dpbmcoc2VsZik6CiAgICAgICAgICIiIlByaW50cyB0
aGUgRFJUIGNvbW1hbmQgbGluZSB0aGF0IHdpbGwgYmUgdXNlZC4iIiIKICAgICAgICAgZHJpdmVy
ID0gc2VsZi5jcmVhdGVfZHJpdmVyKDApCiAgICAgICAgIHJldHVybiBkcml2ZXIuY21kX2xpbmUo
c2VsZi5nZXRfb3B0aW9uKCdwaXhlbF90ZXN0cycpLCBbXSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvZHJpdmVyLnB5CmluZGV4IGE1Mzk5NGI0NjZiNTM3NDg1MGIzMTUxZGFkOGQyN2M0YTFkMjFi
OTEuLmIzMzQzMGM1YzE4YTJkNTJjOTY2NDliZTBiN2Q0NDA2ZGVkMzc3NjUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQpAQCAtNTk5LDcgKzU5OSw3IEBAIGNsYXNzIElPU1Np
bXVsYXRvckRyaXZlcihEcml2ZXIpOgogICAgICAgICBkdW1wX3Rvb2xfYXJncyA9IGNtZFsxOl0K
ICAgICAgICAgcHJvZHVjdF9kaXIgPSBzZWxmLl9wb3J0Ll9idWlsZF9wYXRoKCkKICAgICAgICAg
cmVsYXlfYXJncyA9IFsKLSAgICAgICAgICAgICctdWRpZCcsIHNlbGYuX3BvcnQudGVzdGluZ19k
ZXZpY2Uoc2VsZi5fd29ya2VyX251bWJlcikudWRpZCwKKyAgICAgICAgICAgICctdWRpZCcsIHNl
bGYuX3BvcnQuZGV2aWNlX2lkX2Zvcl93b3JrZXJfbnVtYmVyKHNlbGYuX3dvcmtlcl9udW1iZXIp
LAogICAgICAgICAgICAgJy1wcm9kdWN0RGlyJywgcHJvZHVjdF9kaXIsCiAgICAgICAgICAgICAn
LWFwcCcsIGR1bXBfdG9vbCwKICAgICAgICAgXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L2lvcy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3MucHkK
aW5kZXggMDk4NWFiNDViNzk5OThiZDkzMzAwNzJiNWM5MjBjNTZkOTU3NWIxMy4uZDNkOWM2MGY3
NWI4NDJlYjE3NTg5MjdiMGJmNmJhZjBmODk5ZTQ4NyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wb3J0L2lvcy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQv
aW9zLnB5CkBAIC05OCw2ICs5OCw3IEBAIGNsYXNzIElPU1NpbXVsYXRvclBvcnQoQXBwbGVQb3J0
KToKICAgICAgICAgc3VwZXIoSU9TU2ltdWxhdG9yUG9ydCwgc2VsZikuX19pbml0X18oaG9zdCwg
cG9ydF9uYW1lLCAqKmt3YXJncykKIAogICAgICAgICBvcHRpb25hbF9kZXZpY2VfY2xhc3MgPSBz
ZWxmLmdldF9vcHRpb24oJ2RldmljZV9jbGFzcycpCisgICAgICAgIHNlbGYuX3ByaW50aW5nX2Nt
ZF9saW5lID0gRmFsc2UKICAgICAgICAgc2VsZi5fZGV2aWNlX2NsYXNzID0gb3B0aW9uYWxfZGV2
aWNlX2NsYXNzIGlmIG9wdGlvbmFsX2RldmljZV9jbGFzcyBlbHNlIHNlbGYuREVGQVVMVF9ERVZJ
Q0VfQ0xBU1MKICAgICAgICAgX2xvZy5kZWJ1ZygnSU9TU2ltdWxhdG9yUG9ydCBfZGV2aWNlX2Ns
YXNzIGlzICVzJywgc2VsZi5fZGV2aWNlX2NsYXNzKQogCkBAIC0xMDgsNiArMTA5LDEzIEBAIGNs
YXNzIElPU1NpbXVsYXRvclBvcnQoQXBwbGVQb3J0KToKICAgICAgICAgICAgIHJldHVybiAnV2Vi
S2l0VGVzdFJ1bm5lckFwcC5hcHAnCiAgICAgICAgIHJldHVybiAnRHVtcFJlbmRlclRyZWUuYXBw
JwogCisgICAgZGVmIGRyaXZlcl9jbWRfbGluZV9mb3JfbG9nZ2luZyhzZWxmKToKKyAgICAgICAg
IyBBdm9pZCBzcGlubmluZyB1cCBkZXZpY2VzIGp1c3QgZm9yIGxvZ2dpbmcgdGhlIGNvbW1hbmRs
aW5lLgorICAgICAgICBzZWxmLl9wcmludGluZ19jbWRfbGluZSA9IFRydWUKKyAgICAgICAgcmVz
dWx0ID0gc3VwZXIoSU9TU2ltdWxhdG9yUG9ydCwgc2VsZikuZHJpdmVyX2NtZF9saW5lX2Zvcl9s
b2dnaW5nKCkKKyAgICAgICAgc2VsZi5fcHJpbnRpbmdfY21kX2xpbmUgPSBGYWxzZQorICAgICAg
ICByZXR1cm4gcmVzdWx0CisKICAgICBAcHJvcGVydHkKICAgICBAbWVtb2l6ZWQKICAgICBkZWYg
c2ltdWxhdG9yX3J1bnRpbWUoc2VsZik6CkBAIC0yMjQsNyArMjMyLDYgQEAgY2xhc3MgSU9TU2lt
dWxhdG9yUG9ydChBcHBsZVBvcnQpOgogICAgICAgICByZXR1cm4gbGlzdChyZXZlcnNlZChbc2Vs
Zi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKHApLCAnVGVzdEV4
cGVjdGF0aW9ucycpIGZvciBwIGluIHNlbGYuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKV0pKQogCiAg
ICAgZGVmIF9zZXRfZGV2aWNlX2NsYXNzKHNlbGYsIGRldmljZV9jbGFzcyk6Ci0gICAgICAgICMg
SWRlYWxseSB3ZSdkIGVuc3VyZSB0aGF0IG5vIHNpbXVsYXRvcnMgYXJlIHJ1bm5pbmcgd2hlbiB0
aGlzIGlzIGNhbGxlZC4KICAgICAgICAgc2VsZi5fZGV2aWNlX2NsYXNzID0gZGV2aWNlX2NsYXNz
IGlmIGRldmljZV9jbGFzcyBlbHNlIHNlbGYuREVGQVVMVF9ERVZJQ0VfQ0xBU1MKIAogICAgIGRl
ZiBfY3JlYXRlX3NpbXVsYXRvcnMoc2VsZik6CkBAIC0yMzYsOCArMjQzLDEyIEBAIGNsYXNzIElP
U1NpbXVsYXRvclBvcnQoQXBwbGVQb3J0KToKICAgICAgICAgc2VsZi5fY3JlYXRlU2ltdWxhdG9y
QXBwcygpCiAKICAgICAgICAgZm9yIGkgaW4geHJhbmdlKHNlbGYuY2hpbGRfcHJvY2Vzc2VzKCkp
OgotICAgICAgICAgICAgU2ltdWxhdG9yLndhaXRfdW50aWxfZGV2aWNlX2lzX2luX3N0YXRlKHNl
bGYudGVzdGluZ19kZXZpY2UoaSkudWRpZCwgU2ltdWxhdG9yLkRldmljZVN0YXRlLlNIVVRET1dO
KQotICAgICAgICAgICAgU2ltdWxhdG9yLnJlc2V0X2RldmljZShzZWxmLnRlc3RpbmdfZGV2aWNl
KGkpLnVkaWQpCisgICAgICAgICAgICBzZWxmLl9jcmVhdGVfZGV2aWNlKGkpCisKKyAgICAgICAg
Zm9yIGkgaW4geHJhbmdlKHNlbGYuY2hpbGRfcHJvY2Vzc2VzKCkpOgorICAgICAgICAgICAgZGV2
aWNlX3VkaWQgPSBzZWxmLl90ZXN0aW5nX2RldmljZShpKS51ZGlkCisgICAgICAgICAgICBTaW11
bGF0b3Iud2FpdF91bnRpbF9kZXZpY2VfaXNfaW5fc3RhdGUoZGV2aWNlX3VkaWQsIFNpbXVsYXRv
ci5EZXZpY2VTdGF0ZS5TSFVURE9XTikKKyAgICAgICAgICAgIFNpbXVsYXRvci5yZXNldF9kZXZp
Y2UoZGV2aWNlX3VkaWQpCiAKICAgICBkZWYgc2V0dXBfdGVzdF9ydW4oc2VsZiwgZGV2aWNlX2Ns
YXNzPU5vbmUpOgogICAgICAgICBtYWNfb3NfdmVyc2lvbiA9IHNlbGYuaG9zdC5wbGF0Zm9ybS5v
c192ZXJzaW9uCkBAIC0yNTAsNyArMjYxLDcgQEAgY2xhc3MgSU9TU2ltdWxhdG9yUG9ydChBcHBs
ZVBvcnQpOgogICAgICAgICBzZWxmLl9jcmVhdGVfc2ltdWxhdG9ycygpCiAKICAgICAgICAgZm9y
IGkgaW4geHJhbmdlKHNlbGYuY2hpbGRfcHJvY2Vzc2VzKCkpOgotICAgICAgICAgICAgZGV2aWNl
X3VkaWQgPSBzZWxmLnRlc3RpbmdfZGV2aWNlKGkpLnVkaWQKKyAgICAgICAgICAgIGRldmljZV91
ZGlkID0gc2VsZi5fdGVzdGluZ19kZXZpY2UoaSkudWRpZAogICAgICAgICAgICAgX2xvZy5kZWJ1
ZygndGVzdGluZyBkZXZpY2UgJXMgaGFzIHVkaWQgJXMnLCBpLCBkZXZpY2VfdWRpZCkKIAogICAg
ICAgICAgICAgIyBGSVhNRTogPHJkYXI6Ly9wcm9ibGVtLzIwOTE2MTQwPiBTd2l0Y2ggdG8gdXNp
bmcgQ29yZVNpbXVsYXRvci5mcmFtZXdvcmsgZm9yIGxhdW5jaGluZyBhbmQgcXVpdHRpbmcgaU9T
IFNpbXVsYXRvcgpAQCAtMjYzLDcgKzI3NCw3IEBAIGNsYXNzIElPU1NpbXVsYXRvclBvcnQoQXBw
bGVQb3J0KToKIAogICAgICAgICBfbG9nLmluZm8oJ1dhaXRpbmcgZm9yIGFsbCBpT1MgU2ltdWxh
dG9ycyB0byBmaW5pc2ggYm9vdGluZy4nKQogICAgICAgICBmb3IgaSBpbiB4cmFuZ2Uoc2VsZi5j
aGlsZF9wcm9jZXNzZXMoKSk6Ci0gICAgICAgICAgICBTaW11bGF0b3Iud2FpdF91bnRpbF9kZXZp
Y2VfaXNfYm9vdGVkKHNlbGYudGVzdGluZ19kZXZpY2UoaSkudWRpZCkKKyAgICAgICAgICAgIFNp
bXVsYXRvci53YWl0X3VudGlsX2RldmljZV9pc19ib290ZWQoc2VsZi5fdGVzdGluZ19kZXZpY2Uo
aSkudWRpZCkKIAogICAgIGRlZiBfcXVpdF9pb3Nfc2ltdWxhdG9yKHNlbGYpOgogICAgICAgICBf
bG9nLmRlYnVnKCJfcXVpdF9pb3Nfc2ltdWxhdG9yIikKQEAgLTI4NCw3ICsyOTUsOSBAQCBjbGFz
cyBJT1NTaW11bGF0b3JQb3J0KEFwcGxlUG9ydCk6CiAKICAgICAgICAgZm9yIGkgaW4geHJhbmdl
KHNlbGYuY2hpbGRfcHJvY2Vzc2VzKCkpOgogICAgICAgICAgICAgc2ltdWxhdG9yX3BhdGggPSBz
ZWxmLmdldF9zaW11bGF0b3JfcGF0aChpKQotICAgICAgICAgICAgZGV2aWNlX3VkaWQgPSBzZWxm
LnRlc3RpbmdfZGV2aWNlKGkpLnVkaWQKKyAgICAgICAgICAgIGRldmljZV91ZGlkID0gc2VsZi5f
dGVzdGluZ19kZXZpY2UoaSkudWRpZAorICAgICAgICAgICAgc2VsZi5fcmVtb3ZlX2RldmljZShp
KQorCiAgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoc2ltdWxhdG9yX3BhdGgpOgog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICB0cnk6CkBAIC0zMDEsNyArMzE0
LDYgQEAgY2xhc3MgSU9TU2ltdWxhdG9yUG9ydChBcHBsZVBvcnQpOgogICAgICAgICAgICAgICAg
IF9sb2cuZGVidWcoJ3JtdHJlZSAlcycsIHNhdmVkX3N0YXRlX3BhdGgpCiAgICAgICAgICAgICAg
ICAgc2VsZi5fZmlsZXN5c3RlbS5ybXRyZWUoc2F2ZWRfc3RhdGVfcGF0aCkKIAotICAgICAgICAg
ICAgICAgIFNpbXVsYXRvcigpLmRlbGV0ZV9kZXZpY2UoZGV2aWNlX3VkaWQpCiAgICAgICAgICAg
ICBleGNlcHQ6CiAgICAgICAgICAgICAgICAgX2xvZy53YXJuaW5nKCdVbmFibGUgdG8gcmVtb3Zl
IFNpbXVsYXRvcicgKyBzdHIoaSkpCiAKQEAgLTM2OSwxMiArMzgxLDIwIEBAIGNsYXNzIElPU1Np
bXVsYXRvclBvcnQoQXBwbGVQb3J0KToKICAgICAgICAgICAgIHJldHVybiBzdGRlcnIsIE5vbmUK
ICAgICAgICAgcmV0dXJuIHN0ZGVyciwgY3Jhc2hfbG9nCiAKLSAgICBkZWYgdGVzdGluZ19kZXZp
Y2Uoc2VsZiwgbnVtYmVyKToKLSAgICAgICAgIyBGSVhNRTogcmF0aGVyIHRoYW4gY2FsbGluZyBs
b29rdXBfb3JfY3JlYXRlX2RldmljZSBldmVyeSB0aW1lLCB3ZSBzaG91bGQganVzdCBzdG9yZSBh
IG1hcHBpbmcgb2YKLSAgICAgICAgIyBudW1iZXIgdG8gZGV2aWNlX3VkaWQuCi0gICAgICAgIGRl
dmljZV90eXBlID0gc2VsZi5zaW11bGF0b3JfZGV2aWNlX3R5cGUoKQotICAgICAgICBfbG9nLmRl
YnVnKCcgdGVzdGluZ19kZXZpY2UgJXMgdXNpbmcgZGV2aWNlX3R5cGUgJXMnLCBudW1iZXIsIGRl
dmljZV90eXBlKQotICAgICAgICByZXR1cm4gU2ltdWxhdG9yKCkubG9va3VwX29yX2NyZWF0ZV9k
ZXZpY2UoZGV2aWNlX3R5cGUubmFtZSArICcgV2ViS2l0IFRlc3RlcicgKyBzdHIobnVtYmVyKSwg
ZGV2aWNlX3R5cGUsIHNlbGYuc2ltdWxhdG9yX3J1bnRpbWUpCisgICAgZGVmIF9jcmVhdGVfZGV2
aWNlKHNlbGYsIG51bWJlcik6CisgICAgICAgIHJldHVybiBTaW11bGF0b3IuY3JlYXRlX2Rldmlj
ZShudW1iZXIsIHNlbGYuc2ltdWxhdG9yX2RldmljZV90eXBlKCksIHNlbGYuc2ltdWxhdG9yX3J1
bnRpbWUpCisKKyAgICBkZWYgX3JlbW92ZV9kZXZpY2Uoc2VsZiwgbnVtYmVyKToKKyAgICAgICAg
U2ltdWxhdG9yLnJlbW92ZV9kZXZpY2UobnVtYmVyKQorCisgICAgZGVmIF90ZXN0aW5nX2Rldmlj
ZShzZWxmLCBudW1iZXIpOgorICAgICAgICByZXR1cm4gU2ltdWxhdG9yLmRldmljZV9udW1iZXIo
bnVtYmVyKQorCisgICAgIyBUaGlzIGlzIG9ubHkgZXhwb3NlZCBzbyB0aGF0IElPU1NpbXVsYXRv
ckRyaXZlciBjYW4gdXNlIGl0LgorICAgIGRlZiBkZXZpY2VfaWRfZm9yX3dvcmtlcl9udW1iZXIo
c2VsZiwgbnVtYmVyKToKKyAgICAgICAgaWYgc2VsZi5fcHJpbnRpbmdfY21kX2xpbmU6CisgICAg
ICAgICAgICByZXR1cm4gJzxkdW1teSBpZD4nCisgICAgICAgIHJldHVybiBzZWxmLl90ZXN0aW5n
X2RldmljZShudW1iZXIpLnVkaWQKIAogICAgIGRlZiBnZXRfc2ltdWxhdG9yX3BhdGgoc2VsZiwg
c3VmZml4PSIiKToKICAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihzZWxmLlNJTVVMQVRPUl9E
SVJFQ1RPUlksICJTaW11bGF0b3IiICsgc3RyKHN1ZmZpeCkgKyAiLmFwcCIpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CmluZGV4IDY4MGQ4MDlmYTA5Y2U2
OWE3ZmJmZGQ5NzI1YzhjMGU0MGQ3YjAxMDIuLjc4MzA4MzkwMGMzMTkyOWU1Mzg1MDhjMGM1OTZk
ZGM2OTA1Y2I0M2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9wb3J0
X3Rlc3RjYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9wb3J0X3Rlc3Rj
YXNlLnB5CkBAIC0xMDAsMTEgKzEwMCwxMSBAQCBjbGFzcyBQb3J0VGVzdENhc2UodW5pdHRlc3Qu
VGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfZHJpdmVyX2NtZF9saW5lKHNlbGYpOgogICAgICAg
ICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQotICAgICAgICBzZWxmLmFzc2VydFRydWUobGVuKHBv
cnQuZHJpdmVyX2NtZF9saW5lKCkpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobGVuKHBvcnQu
ZHJpdmVyX2NtZF9saW5lX2Zvcl9sb2dnaW5nKCkpKQogCiAgICAgICAgIG9wdGlvbnMgPSBNb2Nr
T3B0aW9ucyhhZGRpdGlvbmFsX2RydF9mbGFnPVsnLS1mb289YmFyJywgJy0tZm9vPWJheiddKQog
ICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQob3B0aW9ucz1vcHRpb25zKQotICAgICAgICBj
bWRfbGluZSA9IHBvcnQuZHJpdmVyX2NtZF9saW5lKCkKKyAgICAgICAgY21kX2xpbmUgPSBwb3J0
LmRyaXZlcl9jbWRfbGluZV9mb3JfbG9nZ2luZygpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgn
LS1mb289YmFyJyBpbiBjbWRfbGluZSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCctLWZvbz1i
YXonIGluIGNtZF9saW5lKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3hj
b2RlL3NpbXVsYXRvci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdG9y
LnB5CmluZGV4IGZiNmQ0MWZmNGI4NWRjNGE1MjJmYzhkODZmNWIzN2U5NmY1MjZlY2MuLmI0ZmQ4
YjYwYzI5YTU5ZDQ2NmFhNjkwYTlkMTk2M2IzYWNlOWRkMjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdG9yLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkveGNvZGUvc2ltdWxhdG9yLnB5CkBAIC0yMTgsMTQgKzIxOCwzMCBAQCBjbGFzcyBEZXZp
Y2Uob2JqZWN0KToKICAgICAgICAgcmV0dXJuIFNpbXVsYXRvcigpLmZpbmRfZGV2aWNlX2J5X3Vk
aWQoZGV2aWNlX3VkaWQpCiAKICAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgc2h1dGRvd24oY2xz
LCB1ZGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFNodXQgZG93biB0aGUgZ2l2ZW4gQ29yZVNp
bXVsYXRvciBkZXZpY2UuCisgICAgICAgIDpwYXJhbSB1ZGlkOiBUaGUgdWRpZCBvZiB0aGUgZGV2
aWNlLgorICAgICAgICA6dHlwZSB1ZGlkOiBzdHIKKyAgICAgICAgIiIiCisgICAgICAgIGRldmlj
ZV9zdGF0ZSA9IFNpbXVsYXRvci5kZXZpY2Vfc3RhdGUodWRpZCkKKyAgICAgICAgaWYgZGV2aWNl
X3N0YXRlID09IFNpbXVsYXRvci5EZXZpY2VTdGF0ZS5CT09USU5HIG9yIGRldmljZV9zdGF0ZSA9
PSBTaW11bGF0b3IuRGV2aWNlU3RhdGUuQk9PVEVEOgorICAgICAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgICAgIF9sb2cuZGVidWcoJ3hjcnVuIHNpbWN0bCBzaHV0ZG93biAlcycsIHVkaWQpCisg
ICAgICAgICAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKFsneGNydW4nLCAnc2ltY3RsJywg
J3NodXRkb3duJywgdWRpZF0pCisgICAgICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQ
cm9jZXNzRXJyb3I6CisgICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCcieGNydW4g
c2ltY3RsIHNodXRkb3duIiBmYWlsZWQnKQorCisgICAgICAgIFNpbXVsYXRvci53YWl0X3VudGls
X2RldmljZV9pc19pbl9zdGF0ZSh1ZGlkLCBTaW11bGF0b3IuRGV2aWNlU3RhdGUuU0hVVERPV04p
CisKKyAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgZGVsZXRlKGNscywgdWRpZCk6CiAgICAgICAg
ICIiIgogICAgICAgICBEZWxldGUgdGhlIGdpdmVuIENvcmVTaW11bGF0b3IgZGV2aWNlLgogICAg
ICAgICA6cGFyYW0gdWRpZDogVGhlIHVkaWQgb2YgdGhlIGRldmljZS4KICAgICAgICAgOnR5cGUg
dWRpZDogc3RyCiAgICAgICAgICIiIgotICAgICAgICBfbG9nLmRlYnVnKCdkZWxldGluZyBkZXZp
Y2UgJXMnLCB1ZGlkKQotICAgICAgICBTaW11bGF0b3Iud2FpdF91bnRpbF9kZXZpY2VfaXNfaW5f
c3RhdGUodWRpZCwgU2ltdWxhdG9yLkRldmljZVN0YXRlLlNIVVRET1dOKQorICAgICAgICBEZXZp
Y2Uuc2h1dGRvd24odWRpZCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgX2xvZy5kZWJ1Zygn
eGNydW4gc2ltY3RsIGRlbGV0ZSAlcycsIHVkaWQpCiAgICAgICAgICAgICBzdWJwcm9jZXNzLmNo
ZWNrX2NhbGwoWyd4Y3J1bicsICdzaW1jdGwnLCAnZGVsZXRlJywgdWRpZF0pCkBAIC0yMzksOCAr
MjU1LDcgQEAgY2xhc3MgRGV2aWNlKG9iamVjdCk6CiAgICAgICAgIDpwYXJhbSB1ZGlkOiBUaGUg
dWRpZCBvZiB0aGUgZGV2aWNlLgogICAgICAgICA6dHlwZSB1ZGlkOiBzdHIKICAgICAgICAgIiIi
Ci0gICAgICAgIF9sb2cuZGVidWcoJ3Jlc2V0dGluZyBkZXZpY2UgJXMnLCB1ZGlkKQotICAgICAg
ICBTaW11bGF0b3Iud2FpdF91bnRpbF9kZXZpY2VfaXNfaW5fc3RhdGUodWRpZCwgU2ltdWxhdG9y
LkRldmljZVN0YXRlLlNIVVRET1dOKQorICAgICAgICBEZXZpY2Uuc2h1dGRvd24odWRpZCkKICAg
ICAgICAgdHJ5OgogICAgICAgICAgICAgX2xvZy5kZWJ1ZygneGNydW4gc2ltY3RsIGVyYXNlICVz
JywgdWRpZCkKICAgICAgICAgICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbChbJ3hjcnVuJywgJ3Np
bWN0bCcsICdlcmFzZScsIHVkaWRdKQpAQCAtMjgxLDYgKzI5Niw4IEBAIGNsYXNzIFNpbXVsYXRv
cihvYmplY3QpOgogICAgIGRldmljZXNfcmUgPSByZS5jb21waWxlKAogICAgICAgICAnXHMqKD9Q
PG5hbWU+W14oXSsgKVwoKD9QPHVkaWQ+W14pXSspXCkgXCgoP1A8c3RhdGU+W14pXSspXCkoIFwo
KD9QPGF2YWlsYWJpbGl0eT5bXildKylcKSk/JykKIAorICAgIF9tYW5hZ2VkX2RldmljZXMgPSB7
fQorCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3Q9Tm9uZSk6CiAgICAgICAgIHNlbGYuX2hv
c3QgPSBob3N0IG9yIEhvc3QoKQogICAgICAgICBzZWxmLnJ1bnRpbWVzID0gW10KQEAgLTI5Niw2
ICszMTMsNDAgQEAgY2xhc3MgU2ltdWxhdG9yKG9iamVjdCk6CiAgICAgICAgIEJPT1RFRCA9IDMK
ICAgICAgICAgU0hVVFRJTkdfRE9XTiA9IDQKIAorICAgIE5BTUVfRk9SX1NUQVRFID0gWworICAg
ICAgICAnQ1JFQVRJTkcnLAorICAgICAgICAnU0hVVERPV04nLAorICAgICAgICAnQk9PVElORycs
CisgICAgICAgICdCT09URUQnLAorICAgICAgICAnU0hVVFRJTkdfRE9XTicKKyAgICBdCisKKyAg
ICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGNyZWF0ZV9kZXZpY2UobnVtYmVyLCBkZXZpY2VfdHlw
ZSwgcnVudGltZSk6CisgICAgICAgIGRldmljZSA9IFNpbXVsYXRvcigpLmxvb2t1cF9vcl9jcmVh
dGVfZGV2aWNlKGRldmljZV90eXBlLm5hbWUgKyAnIFdlYktpdCBUZXN0ZXInICsgc3RyKG51bWJl
ciksIGRldmljZV90eXBlLCBydW50aW1lKQorICAgICAgICBfbG9nLmRlYnVnKCdjcmVhdGVkIGRl
dmljZSB7fSB7fScuZm9ybWF0KG51bWJlciwgZGV2aWNlKSkKKyAgICAgICAgYXNzZXJ0KGxlbihT
aW11bGF0b3IuX21hbmFnZWRfZGV2aWNlcykgPT0gbnVtYmVyKQorICAgICAgICBTaW11bGF0b3Iu
X21hbmFnZWRfZGV2aWNlc1tudW1iZXJdID0gZGV2aWNlCisKKyAgICBAc3RhdGljbWV0aG9kCisg
ICAgZGVmIHJlbW92ZV9kZXZpY2UobnVtYmVyKToKKyAgICAgICAgaWYgbm90IFNpbXVsYXRvci5f
bWFuYWdlZF9kZXZpY2VzW251bWJlcl06CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZGV2
aWNlX3VkaWQgPSBTaW11bGF0b3IuX21hbmFnZWRfZGV2aWNlc1tudW1iZXJdLnVkaWQKKyAgICAg
ICAgX2xvZy5kZWJ1ZygncmVtb3ZpbmcgZGV2aWNlIHt9IHt9Jy5mb3JtYXQobnVtYmVyLCBkZXZp
Y2VfdWRpZCkpCisgICAgICAgIGRlbCBTaW11bGF0b3IuX21hbmFnZWRfZGV2aWNlc1tudW1iZXJd
CisgICAgICAgIFNpbXVsYXRvci5kZWxldGVfZGV2aWNlKGRldmljZV91ZGlkKQorCisgICAgQHN0
YXRpY21ldGhvZAorICAgIGRlZiBkZXZpY2VfbnVtYmVyKG51bWJlcik6CisgICAgICAgIHJldHVy
biBTaW11bGF0b3IuX21hbmFnZWRfZGV2aWNlc1tudW1iZXJdCisKKyAgICBAc3RhdGljbWV0aG9k
CisgICAgZGVmIGRldmljZV9zdGF0ZV9kZXNjcmlwdGlvbihzdGF0ZSk6CisgICAgICAgIGlmIChz
dGF0ZSA9PSBTaW11bGF0b3IuRGV2aWNlU3RhdGUuRE9FU19OT1RfRVhJU1QpOgorICAgICAgICAg
ICAgcmV0dXJuICdET0VTX05PVF9FWElTVCcKKyAgICAgICAgcmV0dXJuIFNpbXVsYXRvci5OQU1F
X0ZPUl9TVEFURVtzdGF0ZV0KKwogICAgIEBzdGF0aWNtZXRob2QKICAgICBkZWYgd2FpdF91bnRp
bF9kZXZpY2VfaXNfYm9vdGVkKHVkaWQsIHRpbWVvdXRfc2Vjb25kcz02MCAqIDUpOgogICAgICAg
ICBTaW11bGF0b3Iud2FpdF91bnRpbF9kZXZpY2VfaXNfaW5fc3RhdGUodWRpZCwgU2ltdWxhdG9y
LkRldmljZVN0YXRlLkJPT1RFRCwgdGltZW91dF9zZWNvbmRzKQpAQCAtMzE1LDE3ICszNjYsMTcg
QEAgY2xhc3MgU2ltdWxhdG9yKG9iamVjdCk6CiAKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVm
IHdhaXRfdW50aWxfZGV2aWNlX2lzX2luX3N0YXRlKHVkaWQsIHdhaXRfdW50aWxfc3RhdGUsIHRp
bWVvdXRfc2Vjb25kcz02MCAqIDUpOgotICAgICAgICBfbG9nLmRlYnVnKCd3YWl0aW5nIGZvciBk
ZXZpY2UgJXMgdG8gZW50ZXIgc3RhdGUgJXMgd2l0aCB0aW1lb3V0ICVzJywgdWRpZCwgd2FpdF91
bnRpbF9zdGF0ZSwgdGltZW91dF9zZWNvbmRzKQorICAgICAgICBfbG9nLmRlYnVnKCd3YWl0aW5n
IGZvciBkZXZpY2UgJXMgdG8gZW50ZXIgc3RhdGUgJXMgd2l0aCB0aW1lb3V0ICVzJywgdWRpZCwg
U2ltdWxhdG9yLmRldmljZV9zdGF0ZV9kZXNjcmlwdGlvbih3YWl0X3VudGlsX3N0YXRlKSwgdGlt
ZW91dF9zZWNvbmRzKQogICAgICAgICB3aXRoIHRpbWVvdXQoc2Vjb25kcz10aW1lb3V0X3NlY29u
ZHMpOgogICAgICAgICAgICAgZGV2aWNlX3N0YXRlID0gU2ltdWxhdG9yLmRldmljZV9zdGF0ZSh1
ZGlkKQogICAgICAgICAgICAgd2hpbGUgKGRldmljZV9zdGF0ZSAhPSB3YWl0X3VudGlsX3N0YXRl
KToKICAgICAgICAgICAgICAgICBkZXZpY2Vfc3RhdGUgPSBTaW11bGF0b3IuZGV2aWNlX3N0YXRl
KHVkaWQpCi0gICAgICAgICAgICAgICAgX2xvZy5kZWJ1ZygnIGRldmljZSBzdGF0ZSAlcycsIGRl
dmljZV9zdGF0ZSkKKyAgICAgICAgICAgICAgICBfbG9nLmRlYnVnKCcgZGV2aWNlIHN0YXRlICVz
JywgU2ltdWxhdG9yLmRldmljZV9zdGF0ZV9kZXNjcmlwdGlvbihkZXZpY2Vfc3RhdGUpKQogICAg
ICAgICAgICAgICAgIHRpbWUuc2xlZXAoMC41KQogCiAgICAgICAgIGVuZF9zdGF0ZSA9IFNpbXVs
YXRvci5kZXZpY2Vfc3RhdGUodWRpZCkKICAgICAgICAgaWYgKGVuZF9zdGF0ZSAhPSB3YWl0X3Vu
dGlsX3N0YXRlKToKLSAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignVGltZWQgb3V0IHdh
aXRpbmcgZm9yIHNpbXVsYXRvciBkZXZpY2UgdG8gZW50ZXIgc3RhdGUgezB9OyBjdXJyZW50IHN0
YXRlIGlzIHsxfScuZm9ybWF0KHdhaXRfdW50aWxfc3RhdGUsIGVuZF9zdGF0ZSkpCisgICAgICAg
ICAgICByYWlzZSBSdW50aW1lRXJyb3IoJ1RpbWVkIG91dCB3YWl0aW5nIGZvciBzaW11bGF0b3Ig
ZGV2aWNlIHRvIGVudGVyIHN0YXRlIHswfTsgY3VycmVudCBzdGF0ZSBpcyB7MX0nLmZvcm1hdChT
aW11bGF0b3IuZGV2aWNlX3N0YXRlX2Rlc2NyaXB0aW9uKHdhaXRfdW50aWxfc3RhdGUpLCBTaW11
bGF0b3IuZGV2aWNlX3N0YXRlX2Rlc2NyaXB0aW9uKGVuZF9zdGF0ZSkpKQogCiAgICAgQHN0YXRp
Y21ldGhvZAogICAgIGRlZiBkZXZpY2Vfc3RhdGUodWRpZCk6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>