<?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>213242</bug_id>
          
          <creation_ts>2020-06-16 03:55:56 -0700</creation_ts>
          <short_desc>Web Inspector: Add setScreenSizeOverride API to the Page agent</short_desc>
          <delta_ts>2020-10-29 19:11:43 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=218367</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>bburg</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>macpherson</cc>
    
    <cc>mark.lam</cc>
    
    <cc>menard</cc>
    
    <cc>msaboff</cc>
    
    <cc>pfeldman</cc>
    
    <cc>philipj</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1663035</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-06-16 03:55:56 -0700</bug_when>
    <thetext>For automation purposes it would be great to allow the page agent to override the screen size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663036</commentid>
    <comment_count>1</comment_count>
      <attachid>401993</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-06-16 04:21:38 -0700</bug_when>
    <thetext>Created attachment 401993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663037</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-06-16 04:22:18 -0700</bug_when>
    <thetext>This patch modifies the inspector protocol. Please ensure that any frontend changes appropriately use feature checks for new protocol features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663038</commentid>
    <comment_count>3</comment_count>
      <attachid>401994</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-06-16 04:25:52 -0700</bug_when>
    <thetext>Created attachment 401994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663045</commentid>
    <comment_count>4</comment_count>
      <attachid>401996</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-06-16 05:10:48 -0700</bug_when>
    <thetext>Created attachment 401996
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663048</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-06-16 05:23:49 -0700</bug_when>
    <thetext>I wonder if it would make sense to expose a WebInspectorUI remote device setting about this. Something similar to the user-agent override for instance. Any thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663066</commentid>
    <comment_count>6</comment_count>
      <attachid>401996</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-06-16 07:24:07 -0700</bug_when>
    <thetext>Comment on attachment 401996
Patch

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

&gt; Source/JavaScriptCore/inspector/protocol/Page.json:314
&gt; +                { &quot;name&quot;: &quot;width&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Screen width&quot; },
&gt; +                { &quot;name&quot;: &quot;height&quot;, &quot;type&quot;: &quot;integer&quot;, &quot;description&quot;: &quot;Screen height&quot; }

Might be good to make those optional, so that we can reset to the non-overridden screen size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663090</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-06-16 08:17:02 -0700</bug_when>
    <thetext>I&apos;ve prototyped a web-inspector UI for this, https://cloud.igalia.com/s/HPN3etE9mMALodT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663235</commentid>
    <comment_count>8</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-06-16 14:14:13 -0700</bug_when>
    <thetext>Hi Philippe, I don&apos;t quite understand the use case. If this is for automation, why is this needed? WKTR can resize the browser window. WebDriver allows to set window size via its API, and this affects the physical window. Neither injects overridden values for window.screen, because it doesn&apos;t materially affect layout.

Why is your approach needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663237</commentid>
    <comment_count>9</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-06-16 14:14:50 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #7)
&gt; I&apos;ve prototyped a web-inspector UI for this,
&gt; https://cloud.igalia.com/s/HPN3etE9mMALodT

Additionally, I don&apos;t know how to view this file. Can you please encode it using H.264 or something widely available?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663467</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-06-17 07:33:17 -0700</bug_when>
    <thetext>I&apos;ve prototyped a web-inspector UI for this, https://cloud.igalia.com/s/HPN3etE9mMALodT(In reply to Brian Burg from comment #9)
&gt; (In reply to Philippe Normand from comment #7)
&gt; &gt; I&apos;ve prototyped a web-inspector UI for this,
&gt; &gt; https://cloud.igalia.com/s/HPN3etE9mMALodT
&gt; 
&gt; Additionally, I don&apos;t know how to view this file. Can you please encode it
&gt; using H.264 or something widely available?

WebM is quite widely available and supported in browser nowadays. Safari is the only browser not supporting it. Anyway, here&apos;s the same video encoded in H.264... https://cloud.igalia.com/s/Rq55z855xD2ejMp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663880</commentid>
    <comment_count>11</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-06-18 08:48:21 -0700</bug_when>
    <thetext>(In reply to Brian Burg from comment #8)
&gt; Hi Philippe, I don&apos;t quite understand the use case. If this is for
&gt; automation, why is this needed? WKTR can resize the browser window.
&gt; WebDriver allows to set window size via its API, and this affects the
&gt; physical window. Neither injects overridden values for window.screen,
&gt; because it doesn&apos;t materially affect layout.
&gt; 
&gt; Why is your approach needed?

Having a way to override the screen size would be useful for CSS media queries such as max-device-{width,height}.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663901</commentid>
    <comment_count>12</comment_count>
      <attachid>402213</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-06-18 09:51:28 -0700</bug_when>
    <thetext>Created attachment 402213
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663903</commentid>
    <comment_count>13</comment_count>
      <attachid>402214</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-06-18 09:52:18 -0700</bug_when>
    <thetext>Created attachment 402214
Additional patch for the WebInspector UI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664965</commentid>
    <comment_count>14</comment_count>
      <attachid>402454</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-06-22 02:16:42 -0700</bug_when>
    <thetext>Created attachment 402454
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664966</commentid>
    <comment_count>15</comment_count>
      <attachid>402455</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-06-22 02:18:07 -0700</bug_when>
    <thetext>Created attachment 402455
WebInspector UI addition</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665030</commentid>
    <comment_count>16</comment_count>
      <attachid>402454</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-22 08:05:06 -0700</bug_when>
    <thetext>Comment on attachment 402454
Patch

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

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:391
&gt; +    auto size = frame.page()-&gt;screenSize();

What guarantees page is not null here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665040</commentid>
    <comment_count>17</comment_count>
      <attachid>402454</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-06-22 08:20:32 -0700</bug_when>
    <thetext>Comment on attachment 402454
Patch

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

&gt;&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:391
&gt;&gt; +    auto size = frame.page()-&gt;screenSize();
&gt; 
&gt; What guarantees page is not null here?

Good point. This needs to be revisited indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665053</commentid>
    <comment_count>18</comment_count>
      <attachid>402480</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-06-22 09:02:52 -0700</bug_when>
    <thetext>Created attachment 402480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668257</commentid>
    <comment_count>19</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-07-02 09:04:04 -0700</bug_when>
    <thetext>About the win EWS failure, I suspect the issue is that there&apos;s dependency between InspectorPageAgent.cpp (with its header) and the generated DerivedSources/ForwardingHeaders/WebCore/InspectorPageAgent.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668258</commentid>
    <comment_count>20</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-07-02 09:04:32 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #19)
&gt; About the win EWS failure, I suspect the issue is that there&apos;s dependency
&gt; between InspectorPageAgent.cpp (with its header) and the generated
&gt; DerivedSources/ForwardingHeaders/WebCore/InspectorPageAgent.h

NO dependency, I mean :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673004</commentid>
    <comment_count>21</comment_count>
      <attachid>404702</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-07-20 01:46:53 -0700</bug_when>
    <thetext>Created attachment 404702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675585</commentid>
    <comment_count>22</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-07-28 06:21:45 -0700</bug_when>
    <thetext>Ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675688</commentid>
    <comment_count>23</comment_count>
      <attachid>404702</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-07-28 11:07:52 -0700</bug_when>
    <thetext>Comment on attachment 404702
Patch

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

The code changes seem straightforward.

I don&apos;t think it&apos;s a good solution for automation. It will not actually simulate the screen being of a different dimension on any Cocoa platform. For example, if the size is overridden to 720p and a webview is on a left-of-center display, screen-relative coordinates for input events will be incorrect. Changing screen size on a mobile device seems nonsensical as well–if a device has a different screen size this would materially affect layout, but this approach does not affect layout or viewport sizing at all.

Perhaps none of these criticisms apply to the GTK implementation. If you wish to proceed down this route, the patch needs to:

1) be present in WebInspectorUI
2) conditionally not shown when inspecting Cocoa targets (mac, iOS, tv, watch, etc.)
3) conditionally not shown for older targets

Thanks for doing (1), I think it&apos;s a reasonable place to add the UI. For (2) and (3), there needs to be a runtime check to see if the protocol method exists.

(2) can be handled at the protocol level by adding `condition: !(defined(WTF_PLATFORM_COCOA) &amp;&amp; WTF_PLATFORM_COCOA)`

(3) should be a runtime check, such as `if (InspectorBackend.hasCommand(&quot;Page.setScreenSizeOverride&quot;))`

As a result of (2) you&apos;ll need to similarly conditionalize the backend agent implementation and add platform-specific test expectations. It would be clearest to add a separate ENABLE flag rather than baking WTF_PLATFORM_COCOA into everything.

&gt; Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:93
&gt; +localizedStrings[&quot;1080P&quot;] = &quot;1080P&quot;;

Nit: 1080p and 720p are more common.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682946</commentid>
    <comment_count>24</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-08-26 02:15:15 -0700</bug_when>
    <thetext>(In reply to Brian Burg from comment #23)
&gt; Comment on attachment 404702 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=404702&amp;action=review
&gt; 
&gt; The code changes seem straightforward.
&gt; 
&gt; I don&apos;t think it&apos;s a good solution for automation. It will not actually
&gt; simulate the screen being of a different dimension on any Cocoa platform.
&gt; For example, if the size is overridden to 720p and a webview is on a
&gt; left-of-center display, screen-relative coordinates for input events will be
&gt; incorrect. Changing screen size on a mobile device seems nonsensical as
&gt; well–if a device has a different screen size this would materially affect
&gt; layout, but this approach does not affect layout or viewport sizing at all.
&gt; 
&gt; Perhaps none of these criticisms apply to the GTK implementation.

The same would happen in GTK indeed, the events coming from gtk will use the actual screen coordinates. Conversion to/from screen coords happens in the UI process, which is unaware of the override, again using the actual screen coordinates.

&gt; If you
&gt; wish to proceed down this route, the patch needs to:
&gt; 
&gt; 1) be present in WebInspectorUI
&gt; 2) conditionally not shown when inspecting Cocoa targets (mac, iOS, tv,
&gt; watch, etc.)
&gt; 3) conditionally not shown for older targets
&gt; 
&gt; Thanks for doing (1), I think it&apos;s a reasonable place to add the UI. For (2)
&gt; and (3), there needs to be a runtime check to see if the protocol method
&gt; exists.
&gt; 
&gt; (2) can be handled at the protocol level by adding `condition:
&gt; !(defined(WTF_PLATFORM_COCOA) &amp;&amp; WTF_PLATFORM_COCOA)`
&gt; 
&gt; (3) should be a runtime check, such as `if
&gt; (InspectorBackend.hasCommand(&quot;Page.setScreenSizeOverride&quot;))`
&gt; 
&gt; As a result of (2) you&apos;ll need to similarly conditionalize the backend agent
&gt; implementation and add platform-specific test expectations. It would be
&gt; clearest to add a separate ENABLE flag rather than baking WTF_PLATFORM_COCOA
&gt; into everything.
&gt; 
&gt; &gt; Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:93
&gt; &gt; +localizedStrings[&quot;1080P&quot;] = &quot;1080P&quot;;
&gt; 
&gt; Nit: 1080p and 720p are more common.

I think this would be useful to be able to test media queries on different screen sizes, to check the layout is done correctly for every case. Maybe we can limit the screen size override to only the media queries, if that&apos;s the goal of this patch. So, something like emulateScreenSizeForMediaQueries() that doesn&apos;t change the value returned by PlatformScreen, and it&apos;s only used on the media queries impl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697212</commentid>
    <comment_count>25</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-10-13 03:20:58 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #24)
&gt; (In reply to Brian Burg from comment #23)
&gt; &gt; Comment on attachment 404702 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=404702&amp;action=review
&gt; &gt; 
&gt; &gt; The code changes seem straightforward.
&gt; &gt; 
&gt; &gt; I don&apos;t think it&apos;s a good solution for automation. It will not actually
&gt; &gt; simulate the screen being of a different dimension on any Cocoa platform.
&gt; &gt; For example, if the size is overridden to 720p and a webview is on a
&gt; &gt; left-of-center display, screen-relative coordinates for input events will be
&gt; &gt; incorrect. Changing screen size on a mobile device seems nonsensical as
&gt; &gt; well–if a device has a different screen size this would materially affect
&gt; &gt; layout, but this approach does not affect layout or viewport sizing at all.
&gt; &gt; 
&gt; &gt; Perhaps none of these criticisms apply to the GTK implementation.
&gt; 
&gt; The same would happen in GTK indeed, the events coming from gtk will use the
&gt; actual screen coordinates. Conversion to/from screen coords happens in the
&gt; UI process, which is unaware of the override, again using the actual screen
&gt; coordinates.

After checking this again, I&apos;ve realized that the patch affects Screen.cpp but not PlatformScreen.cpp, so it&apos;s only the size exposed to the DOM, not the internal screen size used for coordinate conversions. So, this shouldn&apos;t affect the events at all.

&gt; &gt; If you
&gt; &gt; wish to proceed down this route, the patch needs to:
&gt; &gt; 
&gt; &gt; 1) be present in WebInspectorUI
&gt; &gt; 2) conditionally not shown when inspecting Cocoa targets (mac, iOS, tv,
&gt; &gt; watch, etc.)
&gt; &gt; 3) conditionally not shown for older targets
&gt; &gt;
&gt; &gt; Thanks for doing (1), I think it&apos;s a reasonable place to add the UI. For (2)
&gt; &gt; and (3), there needs to be a runtime check to see if the protocol method
&gt; &gt; exists.
&gt; &gt; 
&gt; &gt; (2) can be handled at the protocol level by adding `condition:
&gt; &gt; !(defined(WTF_PLATFORM_COCOA) &amp;&amp; WTF_PLATFORM_COCOA)`
&gt; &gt; 
&gt; &gt; (3) should be a runtime check, such as `if
&gt; &gt; (InspectorBackend.hasCommand(&quot;Page.setScreenSizeOverride&quot;))`
&gt; &gt; 
&gt; &gt; As a result of (2) you&apos;ll need to similarly conditionalize the backend agent
&gt; &gt; implementation and add platform-specific test expectations. It would be
&gt; &gt; clearest to add a separate ENABLE flag rather than baking WTF_PLATFORM_COCOA
&gt; &gt; into everything.
&gt; &gt; 
&gt; &gt; &gt; Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:93
&gt; &gt; &gt; +localizedStrings[&quot;1080P&quot;] = &quot;1080P&quot;;
&gt; &gt; 
&gt; &gt; Nit: 1080p and 720p are more common.
&gt; 
&gt; I think this would be useful to be able to test media queries on different
&gt; screen sizes, to check the layout is done correctly for every case. Maybe we
&gt; can limit the screen size override to only the media queries, if that&apos;s the
&gt; goal of this patch. So, something like emulateScreenSizeForMediaQueries()
&gt; that doesn&apos;t change the value returned by PlatformScreen, and it&apos;s only used
&gt; on the media queries impl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697652</commentid>
    <comment_count>26</comment_count>
      <attachid>411308</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-10-14 02:59:58 -0700</bug_when>
    <thetext>Created attachment 411308
Patch

Rebased and updated following Brian&apos;s suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697843</commentid>
    <comment_count>27</comment_count>
      <attachid>411308</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-14 13:01:00 -0700</bug_when>
    <thetext>Comment on attachment 411308
Patch

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

&gt; Source/WebCore/inspector/agents/InspectorPageAgent.h:124
&gt; +#if !PLATFORM(COCOA)
&gt; +    Inspector::Protocol::ErrorStringOr&lt;void&gt; setScreenSizeOverride(Optional&lt;int&gt;&amp;&amp; width, Optional&lt;int&gt;&amp;&amp; height) override;
&gt; +#endif

This is not compiling on Windows, so it seems the conditional here is not correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697853</commentid>
    <comment_count>28</comment_count>
      <attachid>411308</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-14 13:39:39 -0700</bug_when>
    <thetext>Comment on attachment 411308
Patch

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

&gt; LayoutTests/inspector/page/setScreenSizeOverride.html:3
&gt; +    &lt;head&gt;

NIT: we normally only indent the descendants of the immediate children of `&lt;head&gt;`/`&lt;body&gt;` so that there&apos;s less whitespace :)
```
    &lt;html&gt;
    &lt;head&gt;
    &lt;script src=&quot;../../http/tests/inspector/resources/inspector-test.js&quot;&gt;&lt;/script&gt;
    &lt;style&gt;
    @media only screen and (max-device-width: 1000px) {
        body {
    ... 
```

&gt; LayoutTests/inspector/page/setScreenSizeOverride.html:6
&gt; +         @media only screen and (max-device-width: 1000px) {

extra leading space

&gt; LayoutTests/inspector/page/setScreenSizeOverride.html:8
&gt; +                 color: lightblue;

perhaps use a simpler color (e.g. `red`) so that it&apos;s easier to compare below?

&gt; LayoutTests/inspector/page/setScreenSizeOverride.html:13
&gt; +         function test()

ditto (:6)

&gt; LayoutTests/inspector/page/setScreenSizeOverride.html:23
&gt; +                     InspectorTest.log(&quot;Current screen size: &quot; + originalScreenWidth + &quot;x&quot; + originalScreenHeight);

Rather than log the original screen size (which could change depending on the test machine), perhaps just save those values and compare them with the new ones to make sure they&apos;ve changed?
```
    InspectorTest.expectNotEqual(newScreenWidth, originalScreenWidth, &quot;Should change screen width.&quot;);
```

&gt; LayoutTests/inspector/page/setScreenSizeOverride.html:26
&gt; +                     InspectorTest.expectEqual(currentBackgroundColor, &quot;rgb(0, 0, 0)&quot;, &quot;Body should be white&quot;);

Style: expectation comments should be sentences, so please include an ending &quot;.&quot; :)

&gt; LayoutTests/inspector/page/setScreenSizeOverride.html:38
&gt; +

Style: unnecessary newline

&gt; LayoutTests/inspector/page/setScreenSizeOverride.html:52
&gt; +             WI.domManager.requestDocument((node) =&gt; {

Why is this needed?

&gt; Source/JavaScriptCore/inspector/protocol/Page.json:310
&gt; +            &quot;description&quot;: &quot;Overrides screen size with provided values.&quot;,

Please be more specific about what you mean by &quot;screen&quot; here (this appears to only affect `window.screen` and device media queries, not anything in the UIProcess).  Maybe it should have a more specific name if it really only does override things exposed to JavaScript/CSS 🤔

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:393
&gt; -    auto size = screenRect(frame.mainFrame().view()).size();
&gt; +    auto size = frame.screenSize();

Why was the `.mainFrame()` removed?

&gt; Source/WebCore/inspector/agents/InspectorPageAgent.h:123
&gt; +    Inspector::Protocol::ErrorStringOr&lt;void&gt; setScreenSizeOverride(Optional&lt;int&gt;&amp;&amp; width, Optional&lt;int&gt;&amp;&amp; height) override;

NIT: the `override` isn&apos;t necessary since this class is `final`

&gt;&gt; Source/WebCore/inspector/agents/InspectorPageAgent.h:124
&gt;&gt; +#endif
&gt; 
&gt; This is not compiling on Windows, so it seems the conditional here is not correct.

The windows bot sometimes has issues regenerating the backend dispatcher classes (in this case `PageBackendDispatcherHandler`) from the protocol JSON.  I think this is probably fine.

&gt; Source/WebCore/page/Frame.h:379
&gt; +    Optional&lt;int&gt; m_overrideScreenWidth;
&gt; +    Optional&lt;int&gt; m_overrideScreenHeight;

Rather than use two `Optional&lt;int&gt;`, why not use an `IntSize`/`FloatSize`?  You could use `isEmpty` as the &quot;not set&quot; value.

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:2217
&gt; +                        console.error(error);

please use `WI.reportInternalError` so that this is surfaced in engineering builds, thereby making it more likely that issues are reported

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:2231
&gt; +                        console.error(error);

ditto (:2217)

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:2257
&gt; +                { name: WI.UIString(&quot;Default&quot;), value: &quot;default&quot; },

Style: we normally don&apos;t add leading/trailing spaces for inline objects/arrays

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:2290
&gt; +            let defaultSize = window.screen.width + &quot;x&quot; + window.screen.height;

I&apos;m not sure if an equivalent concept exists outside of iOS devices (&lt;https://webkit.org/web-inspector/enabling-web-inspector/#ios-device&gt;), but this won&apos;t work for remote device inspection :(

NIT: i&apos;d just inline this
```
    WI._overridenDeviceScreenSize || (window.screen.width + &quot;x&quot; + window.screen.height)
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698041</commentid>
    <comment_count>29</comment_count>
      <attachid>411419</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-10-15 02:23:50 -0700</bug_when>
    <thetext>Created attachment 411419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698806</commentid>
    <comment_count>30</comment_count>
      <attachid>411419</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-16 16:04:36 -0700</bug_when>
    <thetext>Comment on attachment 411419
Patch

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

r=me with a few fixes

&gt; Source/WebCore/page/Frame.cpp:1069
&gt; +    if (!m_overrideScreenSize.isZero())

I think `isEmpty` is probably enough (and simpler), but I don&apos;t have a strong preference.

&gt; Source/WebCore/page/Frame.h:380
&gt; +    Optional&lt;int&gt; m_overrideScreenWidth;
&gt; +    Optional&lt;int&gt; m_overrideScreenHeight;

these don&apos;t appear to be necessary anymore

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:2290
&gt; +            screenSizeValueInput.value = screenSizeValueInput.placeholder = WI._overridenDeviceScreenSize || window.screen.width + &quot;x&quot; + window.screen.height;

NIT: I&apos;d add `(` `)` around the stuff after the `||` so it&apos;s explicitly clear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699231</commentid>
    <comment_count>31</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-10-19 05:54:15 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #30)
&gt; Comment on attachment 411419 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=411419&amp;action=review
&gt; 
&gt; r=me with a few fixes
&gt; 
&gt; &gt; Source/WebCore/page/Frame.cpp:1069
&gt; &gt; +    if (!m_overrideScreenSize.isZero())
&gt; 
&gt; I think `isEmpty` is probably enough (and simpler), but I don&apos;t have a
&gt; strong preference.

Ok, me neither.

&gt; &gt; Source/WebCore/page/Frame.h:380
&gt; &gt; +    Optional&lt;int&gt; m_overrideScreenWidth;
&gt; &gt; +    Optional&lt;int&gt; m_overrideScreenHeight;
&gt; 
&gt; these don&apos;t appear to be necessary anymore

Right, I forgot to remove them.

&gt; &gt; Source/WebInspectorUI/UserInterface/Base/Main.js:2290
&gt; &gt; +            screenSizeValueInput.value = screenSizeValueInput.placeholder = WI._overridenDeviceScreenSize || window.screen.width + &quot;x&quot; + window.screen.height;
&gt; 
&gt; NIT: I&apos;d add `(` `)` around the stuff after the `||` so it&apos;s explicitly clear

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699232</commentid>
    <comment_count>32</comment_count>
      <attachid>411741</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-10-19 05:56:09 -0700</bug_when>
    <thetext>Created attachment 411741
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699633</commentid>
    <comment_count>33</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-20 01:00:59 -0700</bug_when>
    <thetext>Committed r268716: &lt;https://trac.webkit.org/changeset/268716&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411741.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699634</commentid>
    <comment_count>34</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-20 01:01:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/70474647&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699859</commentid>
    <comment_count>35</comment_count>
      <attachid>411741</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-20 11:39:37 -0700</bug_when>
    <thetext>Comment on attachment 411741
Patch for landing

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

&gt; Source/WebCore/page/Screen.cpp:61
&gt; -    long height = static_cast&lt;long&gt;(screenRect(frame-&gt;view()).height());
&gt; +    long height = static_cast&lt;long&gt;(frame-&gt;screenSize().height());
&gt;      return static_cast&lt;unsigned&gt;(height);

I don’t understand the value of converting float to *long* and then to unsigned. Why is long involved?

&gt; Source/WebCore/page/Screen.cpp:72
&gt; -    long width = static_cast&lt;long&gt;(screenRect(frame-&gt;view()).width());
&gt; +    long width = static_cast&lt;long&gt;(frame-&gt;screenSize().width());
&gt;      return static_cast&lt;unsigned&gt;(width);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700125</commentid>
    <comment_count>36</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-10-21 02:41:20 -0700</bug_when>
    <thetext>Following up with Darin&apos;s feedback in https://bugs.webkit.org/show_bug.cgi?id=218013</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401993</attachid>
            <date>2020-06-16 04:21:38 -0700</date>
            <delta_ts>2020-06-16 04:25:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213242-20200616042136.patch</filename>
            <type>text/plain</type>
            <size>13689</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
OTE3MTMwNzhlZjkzMGFjOWM3YzllMWYxNDI3MTI5NGMzZjY3ZGM2Li5jZDc4YmNhMzQ1Mjk2MTky
NzU2ZGExMGQxNzBmNzIwOWY4ODBjZjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAyMC0wNi0xNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxp
YS5jb20+IGFuZCBQYXZlbCBGZWxkbWFuIDxwYXZlbC5mZWxkbWFuQGdtYWlsLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0aGUg
UGFnZSBhZ2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEzMjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uOiBBZGQgYSBuZXcgc2V0U2NyZWVuU2l6
ZU92ZXJyaWRlIEFQSSBpbiB0aGUgUGFnZSBhZ2VudC4KKwogMjAyMC0wNi0xNiAgTWFyayBMYW0g
IDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFNJR0FCUlQgaGFuZGxlciBmb3Ig
bm9uIE9TKERBUldJTikgYnVpbGRzIHRvIHRoZSBqc2Mgc2hlbGwgd2l0aCB0aGUgLXMgb3B0aW9u
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDhhZWJkNDc3ZmIyYjE3MmVkMDgyNGIxZTEwYWUwYjE0NjU4NzRlZDUu
LjNkZjZhZmI3M2FkZjRkOGYxNzk2NzdkMWJlMWEzM2YxZTZhMDY4MzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMiBAQAorMjAyMC0wNi0xNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGln
YWxpYS5jb20+IGFuZCBQYXZlbCBGZWxkbWFuIDxwYXZlbC5mZWxkbWFuQGdtYWlsLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0
aGUgUGFnZSBhZ2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjEzMjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWxsb3cgdGhlIFdlYkluc3BlY3RvciBQYWdlIGFnZW50IHRvIG92ZXJyaWRlIHRoZSBT
Y3JlZW4gc2l6ZS4gVGhpcyBpcyB1c2VmdWwgZm9yIGF1dG9tYXRpb24KKyAgICAgICAgcHVycG9z
ZXMuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRl
Lmh0bWwKKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDogVXNlIHRoZSBQ
YWdlOjpzY3JlZW5TaXplKCkgbWV0aG9kIHRvIHF1ZXJ5IHRoZSBzY3JlZW4gZGltZW5zaW9ucy4K
KyAgICAgICAgKFdlYkNvcmU6OmRldmljZUFzcGVjdFJhdGlvRXZhbHVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6ZGV2aWNlSGVpZ2h0RXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6ZGV2aWNl
V2lkdGhFdmFsdWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpzZXRTY3Jl
ZW5TaXplT3ZlcnJpZGUpOiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV3IEFQSSBob29raW5nCisg
ICAgICAgIGludG8gdGhlIFdlYkNvcmU6OlBhZ2U6OnNldE92ZXJyaWRlU2NyZWVuU2l6ZSgpIG1l
dGhvZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzY3JlZW5T
aXplKTogTmV3IGVudHJ5IHBvaW50IHRvIHF1ZXJ5IHRoZSBzY3JlZW4gc2l6ZSwgdGhpcyB0YWtl
cyBpbnRvCisgICAgICAgIGFjY291bnQgdGhlIG9wdGlvbmFsIG92ZXJyaWRlbiBzY3JlZW4gc2l6
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldE92ZXJyaWRlU2NyZWVuU2l6ZSk6IEFQSSB1
c2VkIGJ5IHRoZSBQYWdlIGFnZW50IHRvIGZha2UgYSBuZXcgc2NyZWVuIHNpemUuCisgICAgICAg
ICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9TY3JlZW4uY3BwOiBVc2UgdGhlIFBhZ2U6
OnNjcmVlblNpemUoKSBtZXRob2QgdG8gcXVlcnkgdGhlIHNjcmVlbiBkaW1lbnNpb25zLgorICAg
ICAgICAoV2ViQ29yZTo6U2NyZWVuOjpoZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2NyZWVuOjp3aWR0aCBjb25zdCk6CisKIDIwMjAtMDYtMTYgIHlvdWVubiBmYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc3VyZSBNZWRpYVJlY29yZGVyLnJlcXVlc3RE
YXRhIHJldHVybnMgZGF0YSB3aXRoIHRoZSBuZXcgd3JpdGVyIGJhY2tlbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb24KaW5kZXggM2I4
ZmExOGJkN2U4ZDk1ZDdlOGY5NWI0NDJhZmM2M2U1NTBjZTYzYS4uNDNiZmU3MDgzNDJlY2RiZjY2
NzQ2Y2RhZWMyNTQwNTFiNDBkY2QxYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb24KQEAgLTMwNCw2ICszMDQsMTUgQEAKICAgICAg
ICAgICAgICJyZXR1cm5zIjogWwogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGF0YSIsICJ0
eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJCYXNlNjQtZW5jb2RlZCB3ZWIgYXJjaGl2
ZS4iIH0KICAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
Im5hbWUiOiAic2V0U2NyZWVuU2l6ZU92ZXJyaWRlIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJPdmVycmlkZXMgc2NyZWVuIHNpemUgd2l0aCBwcm92aWRlZCB2YWx1ZXMuIiwKKyAgICAg
ICAgICAgICJ0YXJnZXRUeXBlcyI6IFsicGFnZSJdLAorICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3aWR0aCIsICJ0eXBlIjogImludGVnZXIi
LCAiZGVzY3JpcHRpb24iOiAiU2NyZWVuIHdpZHRoIiB9LAorICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiaGVpZ2h0IiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJTY3JlZW4g
aGVpZ2h0IiB9CisgICAgICAgICAgICBdCiAgICAgICAgIH0KICAgICBdLAogICAgICJldmVudHMi
OiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKaW5kZXggODEx
OGI3YWIzYzUwYjNjZWQ4MTIwZmMxMDZkY2U5YzczMTQxYWZlNC4uMmFlYTNiYTA3ZWFlMmEyM2I2
MzY0MDc0ZDI1MzM1NjE2NTc1NzU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01l
ZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcApAQCAtMzg4LDcgKzM4OCw3IEBAIHN0YXRpYyBib29sIGRldmljZUFzcGVj
dFJhdGlvRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNp
CiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBhdXRvIHNpemUg
PSBzY3JlZW5SZWN0KGZyYW1lLm1haW5GcmFtZSgpLnZpZXcoKSkuc2l6ZSgpOworICAgIGF1dG8g
c2l6ZSA9IGZyYW1lLnBhZ2UoKS0+c2NyZWVuU2l6ZSgpOwogICAgIGJvb2wgcmVzdWx0ID0gY29t
cGFyZUFzcGVjdFJhdGlvVmFsdWUodmFsdWUsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwg
b3ApOwogICAgIExPR19XSVRIX1NUUkVBTShNZWRpYVF1ZXJpZXMsIHN0cmVhbSA8PCAiICBkZXZp
Y2VBc3BlY3RSYXRpb0V2YWx1YXRlOiAiIDw8IG9wIDw8ICIgIiA8PCBhc3BlY3RSYXRpb1ZhbHVl
QXNTdHJpbmcodmFsdWUpIDw8ICIgYWN0dWFsIHNjcmVlbiBzaXplICIgPDwgc2l6ZSA8PCAiOiAi
IDw8IHJlc3VsdCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTUwNiw3ICs1MDYsNyBAQCBzdGF0
aWMgYm9vbCBkZXZpY2VIZWlnaHRFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdAogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIGludCBsZW5ndGg7Ci0gICAgYXV0byBoZWlnaHQgPSBzY3JlZW5SZWN0KGZyYW1lLm1h
aW5GcmFtZSgpLnZpZXcoKSkuaGVpZ2h0KCk7CisgICAgYXV0byBoZWlnaHQgPSBmcmFtZS5wYWdl
KCktPnNjcmVlblNpemUoKS5oZWlnaHQoKTsKICAgICBpZiAoIWNvbXB1dGVMZW5ndGgodmFsdWUs
ICFmcmFtZS5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSwgY29udmVyc2lvbkRhdGEsIGxlbmd0
aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNTIxLDggKzUyMSwxMCBAQCBzdGF0aWMg
Ym9vbCBkZXZpY2VXaWR0aEV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YQogICAgIC8vIGFzc3VtZSBpZiB3ZSBoYXZlIGEgZGV2aWNlLCBhc3N1
bWUgbm9uLXplcm8KICAgICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBp
ZiAoIWZyYW1lLm1haW5GcmFtZSgpLnZpZXcoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGludCBsZW5ndGg7Ci0gICAgYXV0byB3aWR0aCA9IHNjcmVlblJlY3QoZnJhbWUubWFpbkZyYW1l
KCkudmlldygpKS53aWR0aCgpOworICAgIGF1dG8gd2lkdGggPSBmcmFtZS5wYWdlKCktPnNjcmVl
blNpemUoKS53aWR0aCgpOwogICAgIGlmICghY29tcHV0ZUxlbmd0aCh2YWx1ZSwgIWZyYW1lLmRv
Y3VtZW50KCktPmluUXVpcmtzTW9kZSgpLCBjb252ZXJzaW9uRGF0YSwgbGVuZ3RoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggNTM5ZTgxMDViNjZlN2IyYTZhMDU1
NzFhMWUxYzhjZDZiZGYyN2M5MC4uNThjZjU5NjAyZGI2ZTRhYmVmZWJiYjkwMjc1MjRlNGU3ZmIw
YTNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMTA4Nyw0ICsxMDg3LDE0IEBAIHZvaWQgSW5zcGVjdG9y
UGFnZUFnZW50OjphcmNoaXZlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgU3RyaW5nKiBkYXRh
KQogfQogI2VuZGlmCiAKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpzZXRTY3JlZW5TaXplT3Zl
cnJpZGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCit7
CisgICAgaWYgKHdpZHRoIDw9IDAgfHwgaGVpZ2h0IDw9IDApIHsKKyAgICAgICAgZXJyb3JTdHJp
bmcgPSAiU2NyZWVuIHNpemUgb3ZlcnJpZGUgc2hvdWxkIGJlIHBvc2l0aXZlIGludGVnZXJzIl9z
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9pbnNwZWN0ZWRQYWdlLnNldE92ZXJy
aWRlU2NyZWVuU2l6ZShtYWtlT3B0aW9uYWwoRmxvYXRTaXplKHdpZHRoLCBoZWlnaHQpKSk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IDNiY2QwNDg3Y2ZjODc2NmJh
YTAxYzc4MDQxNzNhMTU3NDdiNDdiMmQuLjBiMzNkODVlMDcyOGY4NjMxYTRiYzQ2MDQ3Y2RmZDAx
MWQzYWEwOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JQYWdlQWdlbnQuaApAQCAtMTIyLDYgKzEyMiw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IGFyY2hpdmUoRXJyb3JTdHJpbmcmLCBTdHJpbmcqIGRhdGEpIG92ZXJyaWRlOwogI2VuZGlmCiAK
KyAgICB2b2lkIHNldFNjcmVlblNpemVPdmVycmlkZShFcnJvclN0cmluZyYsIGludCB3aWR0aCwg
aW50IGhlaWdodCkgb3ZlcnJpZGU7CisKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24K
ICAgICB2b2lkIGRvbUNvbnRlbnRFdmVudEZpcmVkKCk7CiAgICAgdm9pZCBsb2FkRXZlbnRGaXJl
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZGRhYjA2ZDhjMTM1OGUxNjBkN2IyNWNmM2Q5NmNh
YjkwZGMyOTFhNi4uNzdkYjcxMmYyMzI2MWYwNDYwN2I4ZTRmMmM0MzQ1MDE3NWVhMWM0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCkBAIC05MCw2ICs5MCw3IEBACiAjaW5jbHVkZSAiUGVyZm9ybWFuY2VM
b2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2VNb25pdG9yLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TY3Jl
ZW4uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJQbHVnSW5D
bGllbnQuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCkBAIC00MjksNiArNDMwLDIxIEBAIHZv
aWQgUGFnZTo6c2V0T3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBPcHRpb25hbDxWaWV3
cG9ydEFyZ3VtZW50cz4mIHZpZXdwCiAgICAgICAgIGRvY3VtZW50LT51cGRhdGVWaWV3cG9ydEFy
Z3VtZW50cygpOwogfQogCitGbG9hdFNpemUgUGFnZTo6c2NyZWVuU2l6ZSgpCit7CisgICAgcmV0
dXJuIG1fb3ZlcnJpZGVTY3JlZW5TaXplLnZhbHVlT3Ioc2NyZWVuUmVjdChtYWluRnJhbWUoKS52
aWV3KCkpLnNpemUoKSk7Cit9CisKK3ZvaWQgUGFnZTo6c2V0T3ZlcnJpZGVTY3JlZW5TaXplKE9w
dGlvbmFsPEZsb2F0U2l6ZT4gc2l6ZSkKK3sKKyAgICBpZiAoc2l6ZSA9PSBtX292ZXJyaWRlU2Ny
ZWVuU2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9vdmVycmlkZVNjcmVlblNpemUgPSBz
aXplOworICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IG1haW5GcmFtZSgpLmRvY3VtZW50KCkpCisg
ICAgICAgIGRvY3VtZW50LT51cGRhdGVWaWV3cG9ydEFyZ3VtZW50cygpOworfQorCiBTY3JvbGxp
bmdDb29yZGluYXRvciogUGFnZTo6c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKQogewogICAgIGlmICgh
bV9zY3JvbGxpbmdDb29yZGluYXRvciAmJiBtX3NldHRpbmdzLT5zY3JvbGxpbmdDb29yZGluYXRv
ckVuYWJsZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCAxMDFhMjY1ZjQ3MGNkYjYzYjI2MTFlNjRk
MGUxMzFlMzkyYzIzNmRlLi4yMTJjNmQ2ZGY4MmRmMzRlMjU4ZjljZDNkYzVlZWU5YWIyOWM0YmVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaApAQCAtMTk1LDYgKzE5NSw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBP
cHRpb25hbDxWaWV3cG9ydEFyZ3VtZW50cz4mIG92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMoKSBj
b25zdCB7IHJldHVybiBtX292ZXJyaWRlVmlld3BvcnRBcmd1bWVudHM7IH0KICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldE92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMoY29uc3QgT3B0aW9uYWw8
Vmlld3BvcnRBcmd1bWVudHM+Jik7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBGbG9hdFNpemUgc2Ny
ZWVuU2l6ZSgpOworICAgIHZvaWQgc2V0T3ZlcnJpZGVTY3JlZW5TaXplKE9wdGlvbmFsPEZsb2F0
U2l6ZT4gc2l6ZSk7CisKICAgICBzdGF0aWMgdm9pZCByZWZyZXNoUGx1Z2lucyhib29sIHJlbG9h
ZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgUGx1Z2luRGF0YSYgcGx1Z2luRGF0YSgpOwogICAgIHZv
aWQgY2xlYXJQbHVnaW5EYXRhKCk7CkBAIC0xMDM5LDYgKzEwNDIsOCBAQCBwcml2YXRlOgogI2Vu
ZGlmCiAKICAgICBPcHRpb25hbDxWaWV3cG9ydEFyZ3VtZW50cz4gbV9vdmVycmlkZVZpZXdwb3J0
QXJndW1lbnRzOworICAgIE9wdGlvbmFsPEZsb2F0U2l6ZT4gbV9vdmVycmlkZVNjcmVlblNpemU7
CisKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAgICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI+IG1fZGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2NyZWVuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcAppbmRleCBhOWQy
MjhjYTQwNDkxODg2MGM0MDY1MTk5NGRiNzhhMWU3NmRiNWNhLi4xZmMzYzM0NTMwOGRmZWQ4Mzg0
ZDFjMDIzMzRmMjAzMGU4NzkzODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nj
cmVlbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCkBAIC0zMiw2ICsz
Miw3IEBACiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1T
Y3JlZW4uaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIgogI2luY2x1ZGUgIlJ1
bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKQEAgLTUzLDcgKzU0LDcgQEAgdW5zaWduZWQgU2NyZWVu
OjpoZWlnaHQoKSBjb25zdAogICAgICAgICByZXR1cm4gMDsKICAgICBpZiAoUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJBUElTdGF0aXN0aWNzRW5hYmxlZCgpKQog
ICAgICAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkKCkubG9nU2NyZWVuQVBJQWNjZXNz
ZWQoKmZyYW1lLT5kb2N1bWVudCgpLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpTY3JlZW5BUEk6
OkhlaWdodCk7Ci0gICAgbG9uZyBoZWlnaHQgPSBzdGF0aWNfY2FzdDxsb25nPihzY3JlZW5SZWN0
KGZyYW1lLT52aWV3KCkpLmhlaWdodCgpKTsKKyAgICBsb25nIGhlaWdodCA9IHN0YXRpY19jYXN0
PGxvbmc+KGZyYW1lLT5wYWdlKCktPnNjcmVlblNpemUoKS5oZWlnaHQoKSk7CiAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihoZWlnaHQpOwogfQogCkBAIC02NCw3ICs2NSw3IEBAIHVu
c2lnbmVkIFNjcmVlbjo6d2lkdGgoKSBjb25zdAogICAgICAgICByZXR1cm4gMDsKICAgICBpZiAo
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJBUElTdGF0aXN0aWNz
RW5hYmxlZCgpKQogICAgICAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkKCkubG9nU2Ny
ZWVuQVBJQWNjZXNzZWQoKmZyYW1lLT5kb2N1bWVudCgpLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
OjpTY3JlZW5BUEk6OldpZHRoKTsKLSAgICBsb25nIHdpZHRoID0gc3RhdGljX2Nhc3Q8bG9uZz4o
c2NyZWVuUmVjdChmcmFtZS0+dmlldygpKS53aWR0aCgpKTsKKyAgICBsb25nIHdpZHRoID0gc3Rh
dGljX2Nhc3Q8bG9uZz4oZnJhbWUtPnBhZ2UoKS0+c2NyZWVuU2l6ZSgpLndpZHRoKCkpOwogICAg
IHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4od2lkdGgpOwogfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTQ5Yjdl
MjE3OWQzMjk3OTQ4NGJiMTU3YTJhOTE3Njc5Y2JkZjI2ZS4uYTk3NWIzOWIxYzY2NDU4YmM3MWY3
Y2MyNTU0ZDY2ZjQyYzcyZjdkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA2LTE2ICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4gYW5kIFBhdmVsIEZlbGRtYW4g
PHBhdmVsLmZlbGRtYW5AZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBz
ZXRTY3JlZW5TaXplT3ZlcnJpZGUgQVBJIHRvIHRoZSBQYWdlIGFnZW50CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMyNDIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9wYWdlL3NldFNj
cmVlblNpemVPdmVycmlkZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rv
ci9wYWdlL3NldFNjcmVlblNpemVPdmVycmlkZS5odG1sOiBBZGRlZC4KKwogMjAyMC0wNi0xNiAg
eW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBzdXJlIE1l
ZGlhUmVjb3JkZXIucmVxdWVzdERhdGEgcmV0dXJucyBkYXRhIHdpdGggdGhlIG5ldyB3cml0ZXIg
YmFja2VuZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVu
U2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3Nl
dFNjcmVlblNpemVPdmVycmlkZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y2NmE1Y2QzMTg4
MTMwODAxMjQ3ZWUxNmQ1MjEzYjZlNDRjN2Q4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVPdmVycmlkZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw5IEBACisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUGFnZS5zZXRTY3JlZW5TaXpl
T3ZlcnJpZGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBTY3JlZW5TaXplT3ZlcnJpZGVPdmVycmlk
ZQorUEFTUzogRGVmYXVsdCBzY3JlZW4gd2lkdGggc2hvdWxkIGJlIDEwMjQKK1BBU1M6IERlZmF1
bHQgc2NyZWVuIGhlaWdodCBzaG91bGQgYmUgNzY4CitPdmVycmlkaW5nIHNjcmVlbiBzaXplIHRv
IDEwMDB4NTAwCitQQVNTOiBEZWZhdWx0IHNjcmVlbiB3aWR0aCBzaG91bGQgYmUgMTAwMAorUEFT
UzogRGVmYXVsdCBzY3JlZW4gaGVpZ2h0IHNob3VsZCBiZSA1MDAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNzE4YjJmODY4ODBiOTdhODZiOWVmYWMzNWMzZjkxMjM4N2Y3Njg5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRl
Lmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAg
ICAgICBmdW5jdGlvbiB0ZXN0KCkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBsZXQgc3VpdGUg
PSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlBhZ2Uuc2V0U2NyZWVuU2l6ZU92ZXJy
aWRlIik7CisKKyAgICAgICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICAg
ICAgIG5hbWU6ICJTY3JlZW5TaXplT3ZlcnJpZGVPdmVycmlkZSIsCisgICAgICAgICAgICAgICAg
IGRlc2NyaXB0aW9uOiAiVmVyaWZ5IHRoYXQgdGhlIGluc3BlY3RvciBjYW4gb3ZlcnJpZGUgdGhl
IHNjcmVlbiBzaXplLiIsCisgICAgICAgICAgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAg
ICAgICAgICAgICAgICBsZXQgY3VycmVudFNjcmVlbldpZHRoID0gYXdhaXQgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZShgd2luZG93LnNjcmVlbi53aWR0aGApOworICAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChjdXJyZW50U2NyZWVuV2lkdGgsIDEwMjQs
ICJEZWZhdWx0IHNjcmVlbiB3aWR0aCBzaG91bGQgYmUgMTAyNCIpOworICAgICAgICAgICAgICAg
ICAgICAgbGV0IGN1cnJlbnRTY3JlZW5IZWlnaHQgPSBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKGB3aW5kb3cuc2NyZWVuLmhlaWdodGApOworICAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChjdXJyZW50U2NyZWVuSGVpZ2h0LCA3NjgsICJEZWZh
dWx0IHNjcmVlbiBoZWlnaHQgc2hvdWxkIGJlIDc2OCIpOworCisgICAgICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiT3ZlcnJpZGluZyBzY3JlZW4gc2l6ZSB0byAxMDAweDUwMCIp
OworICAgICAgICAgICAgICAgICAgICAgYXdhaXQgUGFnZUFnZW50LnNldFNjcmVlblNpemVPdmVy
cmlkZSgxMDAwLCA1MDApOworCisgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3U2NyZWVuV2lk
dGggPSBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuc2NyZWVuLndp
ZHRoYCk7CisgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG5l
d1NjcmVlbldpZHRoLCAxMDAwLCAiRGVmYXVsdCBzY3JlZW4gd2lkdGggc2hvdWxkIGJlIDEwMDAi
KTsKKyAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdTY3JlZW5IZWlnaHQgPSBhd2FpdCBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuc2NyZWVuLmhlaWdodGApOworICAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChuZXdTY3JlZW5IZWlnaHQs
IDUwMCwgIkRlZmF1bHQgc2NyZWVuIGhlaWdodCBzaG91bGQgYmUgNTAwIik7CisgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIu
cmVxdWVzdERvY3VtZW50KChub2RlKSA9PiB7CisgICAgICAgICAgICAgICAgIHN1aXRlLnJ1blRl
c3RDYXNlc0FuZEZpbmlzaCgpOworICAgICAgICAgICAgIH0pOworICAgICAgICAgfQorICAgICAg
ICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiLz4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401994</attachid>
            <date>2020-06-16 04:25:52 -0700</date>
            <delta_ts>2020-06-16 05:10:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213242-20200616042550.patch</filename>
            <type>text/plain</type>
            <size>13696</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
OTE3MTMwNzhlZjkzMGFjOWM3YzllMWYxNDI3MTI5NGMzZjY3ZGM2Li5jZDc4YmNhMzQ1Mjk2MTky
NzU2ZGExMGQxNzBmNzIwOWY4ODBjZjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAyMC0wNi0xNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxp
YS5jb20+IGFuZCBQYXZlbCBGZWxkbWFuIDxwYXZlbC5mZWxkbWFuQGdtYWlsLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0aGUg
UGFnZSBhZ2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEzMjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uOiBBZGQgYSBuZXcgc2V0U2NyZWVuU2l6
ZU92ZXJyaWRlIEFQSSBpbiB0aGUgUGFnZSBhZ2VudC4KKwogMjAyMC0wNi0xNiAgTWFyayBMYW0g
IDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFNJR0FCUlQgaGFuZGxlciBmb3Ig
bm9uIE9TKERBUldJTikgYnVpbGRzIHRvIHRoZSBqc2Mgc2hlbGwgd2l0aCB0aGUgLXMgb3B0aW9u
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDhhZWJkNDc3ZmIyYjE3MmVkMDgyNGIxZTEwYWUwYjE0NjU4NzRlZDUu
LjNkZjZhZmI3M2FkZjRkOGYxNzk2NzdkMWJlMWEzM2YxZTZhMDY4MzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMiBAQAorMjAyMC0wNi0xNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGln
YWxpYS5jb20+IGFuZCBQYXZlbCBGZWxkbWFuIDxwYXZlbC5mZWxkbWFuQGdtYWlsLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0
aGUgUGFnZSBhZ2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjEzMjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWxsb3cgdGhlIFdlYkluc3BlY3RvciBQYWdlIGFnZW50IHRvIG92ZXJyaWRlIHRoZSBT
Y3JlZW4gc2l6ZS4gVGhpcyBpcyB1c2VmdWwgZm9yIGF1dG9tYXRpb24KKyAgICAgICAgcHVycG9z
ZXMuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRl
Lmh0bWwKKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDogVXNlIHRoZSBQ
YWdlOjpzY3JlZW5TaXplKCkgbWV0aG9kIHRvIHF1ZXJ5IHRoZSBzY3JlZW4gZGltZW5zaW9ucy4K
KyAgICAgICAgKFdlYkNvcmU6OmRldmljZUFzcGVjdFJhdGlvRXZhbHVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6ZGV2aWNlSGVpZ2h0RXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6ZGV2aWNl
V2lkdGhFdmFsdWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpzZXRTY3Jl
ZW5TaXplT3ZlcnJpZGUpOiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV3IEFQSSBob29raW5nCisg
ICAgICAgIGludG8gdGhlIFdlYkNvcmU6OlBhZ2U6OnNldE92ZXJyaWRlU2NyZWVuU2l6ZSgpIG1l
dGhvZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzY3JlZW5T
aXplKTogTmV3IGVudHJ5IHBvaW50IHRvIHF1ZXJ5IHRoZSBzY3JlZW4gc2l6ZSwgdGhpcyB0YWtl
cyBpbnRvCisgICAgICAgIGFjY291bnQgdGhlIG9wdGlvbmFsIG92ZXJyaWRlbiBzY3JlZW4gc2l6
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldE92ZXJyaWRlU2NyZWVuU2l6ZSk6IEFQSSB1
c2VkIGJ5IHRoZSBQYWdlIGFnZW50IHRvIGZha2UgYSBuZXcgc2NyZWVuIHNpemUuCisgICAgICAg
ICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9TY3JlZW4uY3BwOiBVc2UgdGhlIFBhZ2U6
OnNjcmVlblNpemUoKSBtZXRob2QgdG8gcXVlcnkgdGhlIHNjcmVlbiBkaW1lbnNpb25zLgorICAg
ICAgICAoV2ViQ29yZTo6U2NyZWVuOjpoZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2NyZWVuOjp3aWR0aCBjb25zdCk6CisKIDIwMjAtMDYtMTYgIHlvdWVubiBmYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc3VyZSBNZWRpYVJlY29yZGVyLnJlcXVlc3RE
YXRhIHJldHVybnMgZGF0YSB3aXRoIHRoZSBuZXcgd3JpdGVyIGJhY2tlbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb24KaW5kZXggM2I4
ZmExOGJkN2U4ZDk1ZDdlOGY5NWI0NDJhZmM2M2U1NTBjZTYzYS4uNDNiZmU3MDgzNDJlY2RiZjY2
NzQ2Y2RhZWMyNTQwNTFiNDBkY2QxYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb24KQEAgLTMwNCw2ICszMDQsMTUgQEAKICAgICAg
ICAgICAgICJyZXR1cm5zIjogWwogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGF0YSIsICJ0
eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJCYXNlNjQtZW5jb2RlZCB3ZWIgYXJjaGl2
ZS4iIH0KICAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
Im5hbWUiOiAic2V0U2NyZWVuU2l6ZU92ZXJyaWRlIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJPdmVycmlkZXMgc2NyZWVuIHNpemUgd2l0aCBwcm92aWRlZCB2YWx1ZXMuIiwKKyAgICAg
ICAgICAgICJ0YXJnZXRUeXBlcyI6IFsicGFnZSJdLAorICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3aWR0aCIsICJ0eXBlIjogImludGVnZXIi
LCAiZGVzY3JpcHRpb24iOiAiU2NyZWVuIHdpZHRoIiB9LAorICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiaGVpZ2h0IiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJTY3JlZW4g
aGVpZ2h0IiB9CisgICAgICAgICAgICBdCiAgICAgICAgIH0KICAgICBdLAogICAgICJldmVudHMi
OiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKaW5kZXggODEx
OGI3YWIzYzUwYjNjZWQ4MTIwZmMxMDZkY2U5YzczMTQxYWZlNC4uMmFlYTNiYTA3ZWFlMmEyM2I2
MzY0MDc0ZDI1MzM1NjE2NTc1NzU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01l
ZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcApAQCAtMzg4LDcgKzM4OCw3IEBAIHN0YXRpYyBib29sIGRldmljZUFzcGVj
dFJhdGlvRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNp
CiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBhdXRvIHNpemUg
PSBzY3JlZW5SZWN0KGZyYW1lLm1haW5GcmFtZSgpLnZpZXcoKSkuc2l6ZSgpOworICAgIGF1dG8g
c2l6ZSA9IGZyYW1lLnBhZ2UoKS0+c2NyZWVuU2l6ZSgpOwogICAgIGJvb2wgcmVzdWx0ID0gY29t
cGFyZUFzcGVjdFJhdGlvVmFsdWUodmFsdWUsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwg
b3ApOwogICAgIExPR19XSVRIX1NUUkVBTShNZWRpYVF1ZXJpZXMsIHN0cmVhbSA8PCAiICBkZXZp
Y2VBc3BlY3RSYXRpb0V2YWx1YXRlOiAiIDw8IG9wIDw8ICIgIiA8PCBhc3BlY3RSYXRpb1ZhbHVl
QXNTdHJpbmcodmFsdWUpIDw8ICIgYWN0dWFsIHNjcmVlbiBzaXplICIgPDwgc2l6ZSA8PCAiOiAi
IDw8IHJlc3VsdCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTUwNiw3ICs1MDYsNyBAQCBzdGF0
aWMgYm9vbCBkZXZpY2VIZWlnaHRFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdAogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIGludCBsZW5ndGg7Ci0gICAgYXV0byBoZWlnaHQgPSBzY3JlZW5SZWN0KGZyYW1lLm1h
aW5GcmFtZSgpLnZpZXcoKSkuaGVpZ2h0KCk7CisgICAgYXV0byBoZWlnaHQgPSBmcmFtZS5wYWdl
KCktPnNjcmVlblNpemUoKS5oZWlnaHQoKTsKICAgICBpZiAoIWNvbXB1dGVMZW5ndGgodmFsdWUs
ICFmcmFtZS5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSwgY29udmVyc2lvbkRhdGEsIGxlbmd0
aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNTIxLDggKzUyMSwxMCBAQCBzdGF0aWMg
Ym9vbCBkZXZpY2VXaWR0aEV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YQogICAgIC8vIGFzc3VtZSBpZiB3ZSBoYXZlIGEgZGV2aWNlLCBhc3N1
bWUgbm9uLXplcm8KICAgICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBp
ZiAoIWZyYW1lLm1haW5GcmFtZSgpLnZpZXcoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGludCBsZW5ndGg7Ci0gICAgYXV0byB3aWR0aCA9IHNjcmVlblJlY3QoZnJhbWUubWFpbkZyYW1l
KCkudmlldygpKS53aWR0aCgpOworICAgIGF1dG8gd2lkdGggPSBmcmFtZS5wYWdlKCktPnNjcmVl
blNpemUoKS53aWR0aCgpOwogICAgIGlmICghY29tcHV0ZUxlbmd0aCh2YWx1ZSwgIWZyYW1lLmRv
Y3VtZW50KCktPmluUXVpcmtzTW9kZSgpLCBjb252ZXJzaW9uRGF0YSwgbGVuZ3RoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggNTM5ZTgxMDViNjZlN2IyYTZhMDU1
NzFhMWUxYzhjZDZiZGYyN2M5MC4uNThjZjU5NjAyZGI2ZTRhYmVmZWJiYjkwMjc1MjRlNGU3ZmIw
YTNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMTA4Nyw0ICsxMDg3LDE0IEBAIHZvaWQgSW5zcGVjdG9y
UGFnZUFnZW50OjphcmNoaXZlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgU3RyaW5nKiBkYXRh
KQogfQogI2VuZGlmCiAKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpzZXRTY3JlZW5TaXplT3Zl
cnJpZGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCit7
CisgICAgaWYgKHdpZHRoIDw9IDAgfHwgaGVpZ2h0IDw9IDApIHsKKyAgICAgICAgZXJyb3JTdHJp
bmcgPSAiU2NyZWVuIHNpemUgb3ZlcnJpZGUgc2hvdWxkIGJlIHBvc2l0aXZlIGludGVnZXJzIl9z
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9pbnNwZWN0ZWRQYWdlLnNldE92ZXJy
aWRlU2NyZWVuU2l6ZShtYWtlT3B0aW9uYWwoRmxvYXRTaXplKHdpZHRoLCBoZWlnaHQpKSk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IDNiY2QwNDg3Y2ZjODc2NmJh
YTAxYzc4MDQxNzNhMTU3NDdiNDdiMmQuLjBiMzNkODVlMDcyOGY4NjMxYTRiYzQ2MDQ3Y2RmZDAx
MWQzYWEwOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JQYWdlQWdlbnQuaApAQCAtMTIyLDYgKzEyMiw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IGFyY2hpdmUoRXJyb3JTdHJpbmcmLCBTdHJpbmcqIGRhdGEpIG92ZXJyaWRlOwogI2VuZGlmCiAK
KyAgICB2b2lkIHNldFNjcmVlblNpemVPdmVycmlkZShFcnJvclN0cmluZyYsIGludCB3aWR0aCwg
aW50IGhlaWdodCkgb3ZlcnJpZGU7CisKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24K
ICAgICB2b2lkIGRvbUNvbnRlbnRFdmVudEZpcmVkKCk7CiAgICAgdm9pZCBsb2FkRXZlbnRGaXJl
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZGRhYjA2ZDhjMTM1OGUxNjBkN2IyNWNmM2Q5NmNh
YjkwZGMyOTFhNi4uYzQ1OTBmMzljNDVhN2I2ZWY1NGY0ZWQzMTNiZWU4YWY1NTBkZjFmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCkBAIC05MCw2ICs5MCw3IEBACiAjaW5jbHVkZSAiUGVyZm9ybWFuY2VM
b2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2VNb25pdG9yLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TY3Jl
ZW4uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJQbHVnSW5D
bGllbnQuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCkBAIC00MjksNiArNDMwLDIxIEBAIHZv
aWQgUGFnZTo6c2V0T3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBPcHRpb25hbDxWaWV3
cG9ydEFyZ3VtZW50cz4mIHZpZXdwCiAgICAgICAgIGRvY3VtZW50LT51cGRhdGVWaWV3cG9ydEFy
Z3VtZW50cygpOwogfQogCitGbG9hdFNpemUgUGFnZTo6c2NyZWVuU2l6ZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fb3ZlcnJpZGVTY3JlZW5TaXplLnZhbHVlT3Ioc2NyZWVuUmVjdChtYWluRnJh
bWUoKS52aWV3KCkpLnNpemUoKSk7Cit9CisKK3ZvaWQgUGFnZTo6c2V0T3ZlcnJpZGVTY3JlZW5T
aXplKE9wdGlvbmFsPEZsb2F0U2l6ZT4gc2l6ZSkKK3sKKyAgICBpZiAoc2l6ZSA9PSBtX292ZXJy
aWRlU2NyZWVuU2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9vdmVycmlkZVNjcmVlblNp
emUgPSBzaXplOworICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IG1haW5GcmFtZSgpLmRvY3VtZW50
KCkpCisgICAgICAgIGRvY3VtZW50LT51cGRhdGVWaWV3cG9ydEFyZ3VtZW50cygpOworfQorCiBT
Y3JvbGxpbmdDb29yZGluYXRvciogUGFnZTo6c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKQogewogICAg
IGlmICghbV9zY3JvbGxpbmdDb29yZGluYXRvciAmJiBtX3NldHRpbmdzLT5zY3JvbGxpbmdDb29y
ZGluYXRvckVuYWJsZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCAxMDFhMjY1ZjQ3MGNkYjYzYjI2
MTFlNjRkMGUxMzFlMzkyYzIzNmRlLi5mYmEwNTljMmVjY2UzMTIxZmM1YzRkOTQ0MGE1OGFjNGZk
NjQyNzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTk1LDYgKzE5NSw5IEBAIHB1YmxpYzoKICAgICBj
b25zdCBPcHRpb25hbDxWaWV3cG9ydEFyZ3VtZW50cz4mIG92ZXJyaWRlVmlld3BvcnRBcmd1bWVu
dHMoKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRlVmlld3BvcnRBcmd1bWVudHM7IH0KICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldE92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMoY29uc3QgT3B0
aW9uYWw8Vmlld3BvcnRBcmd1bWVudHM+Jik7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBGbG9hdFNp
emUgc2NyZWVuU2l6ZSgpIGNvbnN0OworICAgIHZvaWQgc2V0T3ZlcnJpZGVTY3JlZW5TaXplKE9w
dGlvbmFsPEZsb2F0U2l6ZT4pOworCiAgICAgc3RhdGljIHZvaWQgcmVmcmVzaFBsdWdpbnMoYm9v
bCByZWxvYWQpOwogICAgIFdFQkNPUkVfRVhQT1JUIFBsdWdpbkRhdGEmIHBsdWdpbkRhdGEoKTsK
ICAgICB2b2lkIGNsZWFyUGx1Z2luRGF0YSgpOwpAQCAtMTAzOSw2ICsxMDQyLDggQEAgcHJpdmF0
ZToKICNlbmRpZgogCiAgICAgT3B0aW9uYWw8Vmlld3BvcnRBcmd1bWVudHM+IG1fb3ZlcnJpZGVW
aWV3cG9ydEFyZ3VtZW50czsKKyAgICBPcHRpb25hbDxGbG9hdFNpemU+IG1fb3ZlcnJpZGVTY3Jl
ZW5TaXplOworCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyPiBt
X2RldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NjcmVlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKaW5k
ZXggYTlkMjI4Y2E0MDQ5MTg4NjBjNDA2NTE5OTRkYjc4YTFlNzZkYjVjYS4uMWZjM2MzNDUzMDhk
ZmVkODM4NGQxYzAyMzM0ZjIwMzBlODc5MzgzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TY3JlZW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcApAQCAt
MzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCIKICNpbmNs
dWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCkBAIC01Myw3ICs1NCw3IEBAIHVuc2lnbmVk
IFNjcmVlbjo6aGVpZ2h0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIDA7CiAgICAgaWYgKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQVBJU3RhdGlzdGljc0VuYWJs
ZWQoKSkKICAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLmxvZ1NjcmVlbkFQ
SUFjY2Vzc2VkKCpmcmFtZS0+ZG9jdW1lbnQoKSwgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6U2Ny
ZWVuQVBJOjpIZWlnaHQpOwotICAgIGxvbmcgaGVpZ2h0ID0gc3RhdGljX2Nhc3Q8bG9uZz4oc2Ny
ZWVuUmVjdChmcmFtZS0+dmlldygpKS5oZWlnaHQoKSk7CisgICAgbG9uZyBoZWlnaHQgPSBzdGF0
aWNfY2FzdDxsb25nPihmcmFtZS0+cGFnZSgpLT5zY3JlZW5TaXplKCkuaGVpZ2h0KCkpOwogICAg
IHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaGVpZ2h0KTsKIH0KIApAQCAtNjQsNyArNjUs
NyBAQCB1bnNpZ25lZCBTY3JlZW46OndpZHRoKCkgY29uc3QKICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQVBJU3Rh
dGlzdGljc0VuYWJsZWQoKSkKICAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgp
LmxvZ1NjcmVlbkFQSUFjY2Vzc2VkKCpmcmFtZS0+ZG9jdW1lbnQoKSwgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljczo6U2NyZWVuQVBJOjpXaWR0aCk7Ci0gICAgbG9uZyB3aWR0aCA9IHN0YXRpY19jYXN0
PGxvbmc+KHNjcmVlblJlY3QoZnJhbWUtPnZpZXcoKSkud2lkdGgoKSk7CisgICAgbG9uZyB3aWR0
aCA9IHN0YXRpY19jYXN0PGxvbmc+KGZyYW1lLT5wYWdlKCktPnNjcmVlblNpemUoKS53aWR0aCgp
KTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHdpZHRoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGU0OWI3ZTIxNzlkMzI5Nzk0ODRiYjE1N2EyYTkxNzY3OWNiZGYyNmUuLmE5NzViMzliMWM2NjQ1
OGJjNzFmN2NjMjU1NGQ2NmY0MmM3MmY3ZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0w
Ni0xNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+IGFuZCBQYXZlbCBG
ZWxkbWFuIDxwYXZlbC5mZWxkbWFuQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBBZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0aGUgUGFnZSBhZ2VudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMjQyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcGFn
ZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUuaHRtbDogQWRkZWQuCisKIDIwMjAt
MDYtMTYgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ug
c3VyZSBNZWRpYVJlY29yZGVyLnJlcXVlc3REYXRhIHJldHVybnMgZGF0YSB3aXRoIHRoZSBuZXcg
d3JpdGVyIGJhY2tlbmQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3Nl
dFNjcmVlblNpemVPdmVycmlkZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmNjZh
NWNkMzE4ODEzMDgwMTI0N2VlMTZkNTIxM2I2ZTQ0YzdkOGYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsOSBAQAorCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFBhZ2Uuc2V0U2Ny
ZWVuU2l6ZU92ZXJyaWRlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogU2NyZWVuU2l6ZU92ZXJyaWRl
T3ZlcnJpZGUKK1BBU1M6IERlZmF1bHQgc2NyZWVuIHdpZHRoIHNob3VsZCBiZSAxMDI0CitQQVNT
OiBEZWZhdWx0IHNjcmVlbiBoZWlnaHQgc2hvdWxkIGJlIDc2OAorT3ZlcnJpZGluZyBzY3JlZW4g
c2l6ZSB0byAxMDAweDUwMAorUEFTUzogRGVmYXVsdCBzY3JlZW4gd2lkdGggc2hvdWxkIGJlIDEw
MDAKK1BBU1M6IERlZmF1bHQgc2NyZWVuIGhlaWdodCBzaG91bGQgYmUgNTAwCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVPdmVycmlkZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzcxOGIyZjg2ODgwYjk3YTg2YjllZmFjMzVjM2Y5MTIzODdmNzY4OQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVP
dmVycmlkZS5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cisg
ICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
PgorICAgICAgICAgZnVuY3Rpb24gdGVzdCgpCisgICAgICAgICB7CisgICAgICAgICAgICAgbGV0
IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJQYWdlLnNldFNjcmVlblNp
emVPdmVycmlkZSIpOworCisgICAgICAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAg
ICAgICAgICAgICBuYW1lOiAiU2NyZWVuU2l6ZU92ZXJyaWRlT3ZlcnJpZGUiLAorICAgICAgICAg
ICAgICAgICBkZXNjcmlwdGlvbjogIlZlcmlmeSB0aGF0IHRoZSBpbnNwZWN0b3IgY2FuIG92ZXJy
aWRlIHRoZSBzY3JlZW4gc2l6ZS4iLAorICAgICAgICAgICAgICAgICBhc3luYyB0ZXN0KCkgewor
ICAgICAgICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRTY3JlZW5XaWR0aCA9IGF3YWl0IEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5zY3JlZW4ud2lkdGhgKTsKKyAgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoY3VycmVudFNjcmVlbldpZHRo
LCAxMDI0LCAiRGVmYXVsdCBzY3JlZW4gd2lkdGggc2hvdWxkIGJlIDEwMjQiKTsKKyAgICAgICAg
ICAgICAgICAgICAgIGxldCBjdXJyZW50U2NyZWVuSGVpZ2h0ID0gYXdhaXQgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZShgd2luZG93LnNjcmVlbi5oZWlnaHRgKTsKKyAgICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoY3VycmVudFNjcmVlbkhlaWdodCwgNzY4
LCAiRGVmYXVsdCBzY3JlZW4gaGVpZ2h0IHNob3VsZCBiZSA3NjgiKTsKKworICAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIk92ZXJyaWRpbmcgc2NyZWVuIHNpemUgdG8gMTAw
MHg1MDAiKTsKKyAgICAgICAgICAgICAgICAgICAgIGF3YWl0IFBhZ2VBZ2VudC5zZXRTY3JlZW5T
aXplT3ZlcnJpZGUoMTAwMCwgNTAwKTsKKworICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1Nj
cmVlbldpZHRoID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LnNj
cmVlbi53aWR0aGApOworICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbChuZXdTY3JlZW5XaWR0aCwgMTAwMCwgIkRlZmF1bHQgc2NyZWVuIHdpZHRoIHNob3VsZCBi
ZSAxMDAwIik7CisgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3U2NyZWVuSGVpZ2h0ID0gYXdh
aXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LnNjcmVlbi5oZWlnaHRgKTsK
KyAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwobmV3U2NyZWVu
SGVpZ2h0LCA1MDAsICJEZWZhdWx0IHNjcmVlbiBoZWlnaHQgc2hvdWxkIGJlIDUwMCIpOworICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICBXSS5kb21N
YW5hZ2VyLnJlcXVlc3REb2N1bWVudCgobm9kZSkgPT4geworICAgICAgICAgICAgICAgICBzdWl0
ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKKyAgICAgICAgICAgICB9KTsKKyAgICAgICAgIH0K
KyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIi8+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401996</attachid>
            <date>2020-06-16 05:10:48 -0700</date>
            <delta_ts>2020-06-18 09:51:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213242-20200616051046.patch</filename>
            <type>text/plain</type>
            <size>14856</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
OTE3MTMwNzhlZjkzMGFjOWM3YzllMWYxNDI3MTI5NGMzZjY3ZGM2Li5jZDc4YmNhMzQ1Mjk2MTky
NzU2ZGExMGQxNzBmNzIwOWY4ODBjZjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAyMC0wNi0xNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxp
YS5jb20+IGFuZCBQYXZlbCBGZWxkbWFuIDxwYXZlbC5mZWxkbWFuQGdtYWlsLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0aGUg
UGFnZSBhZ2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEzMjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uOiBBZGQgYSBuZXcgc2V0U2NyZWVuU2l6
ZU92ZXJyaWRlIEFQSSBpbiB0aGUgUGFnZSBhZ2VudC4KKwogMjAyMC0wNi0xNiAgTWFyayBMYW0g
IDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFNJR0FCUlQgaGFuZGxlciBmb3Ig
bm9uIE9TKERBUldJTikgYnVpbGRzIHRvIHRoZSBqc2Mgc2hlbGwgd2l0aCB0aGUgLXMgb3B0aW9u
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDhhZWJkNDc3ZmIyYjE3MmVkMDgyNGIxZTEwYWUwYjE0NjU4NzRlZDUu
LjNkZjZhZmI3M2FkZjRkOGYxNzk2NzdkMWJlMWEzM2YxZTZhMDY4MzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMiBAQAorMjAyMC0wNi0xNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGln
YWxpYS5jb20+IGFuZCBQYXZlbCBGZWxkbWFuIDxwYXZlbC5mZWxkbWFuQGdtYWlsLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0
aGUgUGFnZSBhZ2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjEzMjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWxsb3cgdGhlIFdlYkluc3BlY3RvciBQYWdlIGFnZW50IHRvIG92ZXJyaWRlIHRoZSBT
Y3JlZW4gc2l6ZS4gVGhpcyBpcyB1c2VmdWwgZm9yIGF1dG9tYXRpb24KKyAgICAgICAgcHVycG9z
ZXMuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRl
Lmh0bWwKKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDogVXNlIHRoZSBQ
YWdlOjpzY3JlZW5TaXplKCkgbWV0aG9kIHRvIHF1ZXJ5IHRoZSBzY3JlZW4gZGltZW5zaW9ucy4K
KyAgICAgICAgKFdlYkNvcmU6OmRldmljZUFzcGVjdFJhdGlvRXZhbHVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6ZGV2aWNlSGVpZ2h0RXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6ZGV2aWNl
V2lkdGhFdmFsdWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpzZXRTY3Jl
ZW5TaXplT3ZlcnJpZGUpOiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV3IEFQSSBob29raW5nCisg
ICAgICAgIGludG8gdGhlIFdlYkNvcmU6OlBhZ2U6OnNldE92ZXJyaWRlU2NyZWVuU2l6ZSgpIG1l
dGhvZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzY3JlZW5T
aXplKTogTmV3IGVudHJ5IHBvaW50IHRvIHF1ZXJ5IHRoZSBzY3JlZW4gc2l6ZSwgdGhpcyB0YWtl
cyBpbnRvCisgICAgICAgIGFjY291bnQgdGhlIG9wdGlvbmFsIG92ZXJyaWRlbiBzY3JlZW4gc2l6
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldE92ZXJyaWRlU2NyZWVuU2l6ZSk6IEFQSSB1
c2VkIGJ5IHRoZSBQYWdlIGFnZW50IHRvIGZha2UgYSBuZXcgc2NyZWVuIHNpemUuCisgICAgICAg
ICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9TY3JlZW4uY3BwOiBVc2UgdGhlIFBhZ2U6
OnNjcmVlblNpemUoKSBtZXRob2QgdG8gcXVlcnkgdGhlIHNjcmVlbiBkaW1lbnNpb25zLgorICAg
ICAgICAoV2ViQ29yZTo6U2NyZWVuOjpoZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2NyZWVuOjp3aWR0aCBjb25zdCk6CisKIDIwMjAtMDYtMTYgIHlvdWVubiBmYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc3VyZSBNZWRpYVJlY29yZGVyLnJlcXVlc3RE
YXRhIHJldHVybnMgZGF0YSB3aXRoIHRoZSBuZXcgd3JpdGVyIGJhY2tlbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb24KaW5kZXggM2I4
ZmExOGJkN2U4ZDk1ZDdlOGY5NWI0NDJhZmM2M2U1NTBjZTYzYS4uNDNiZmU3MDgzNDJlY2RiZjY2
NzQ2Y2RhZWMyNTQwNTFiNDBkY2QxYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb24KQEAgLTMwNCw2ICszMDQsMTUgQEAKICAgICAg
ICAgICAgICJyZXR1cm5zIjogWwogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGF0YSIsICJ0
eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJCYXNlNjQtZW5jb2RlZCB3ZWIgYXJjaGl2
ZS4iIH0KICAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
Im5hbWUiOiAic2V0U2NyZWVuU2l6ZU92ZXJyaWRlIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJPdmVycmlkZXMgc2NyZWVuIHNpemUgd2l0aCBwcm92aWRlZCB2YWx1ZXMuIiwKKyAgICAg
ICAgICAgICJ0YXJnZXRUeXBlcyI6IFsicGFnZSJdLAorICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3aWR0aCIsICJ0eXBlIjogImludGVnZXIi
LCAiZGVzY3JpcHRpb24iOiAiU2NyZWVuIHdpZHRoIiB9LAorICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiaGVpZ2h0IiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJTY3JlZW4g
aGVpZ2h0IiB9CisgICAgICAgICAgICBdCiAgICAgICAgIH0KICAgICBdLAogICAgICJldmVudHMi
OiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKaW5kZXggODEx
OGI3YWIzYzUwYjNjZWQ4MTIwZmMxMDZkY2U5YzczMTQxYWZlNC4uMmFlYTNiYTA3ZWFlMmEyM2I2
MzY0MDc0ZDI1MzM1NjE2NTc1NzU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01l
ZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcApAQCAtMzg4LDcgKzM4OCw3IEBAIHN0YXRpYyBib29sIGRldmljZUFzcGVj
dFJhdGlvRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNp
CiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBhdXRvIHNpemUg
PSBzY3JlZW5SZWN0KGZyYW1lLm1haW5GcmFtZSgpLnZpZXcoKSkuc2l6ZSgpOworICAgIGF1dG8g
c2l6ZSA9IGZyYW1lLnBhZ2UoKS0+c2NyZWVuU2l6ZSgpOwogICAgIGJvb2wgcmVzdWx0ID0gY29t
cGFyZUFzcGVjdFJhdGlvVmFsdWUodmFsdWUsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwg
b3ApOwogICAgIExPR19XSVRIX1NUUkVBTShNZWRpYVF1ZXJpZXMsIHN0cmVhbSA8PCAiICBkZXZp
Y2VBc3BlY3RSYXRpb0V2YWx1YXRlOiAiIDw8IG9wIDw8ICIgIiA8PCBhc3BlY3RSYXRpb1ZhbHVl
QXNTdHJpbmcodmFsdWUpIDw8ICIgYWN0dWFsIHNjcmVlbiBzaXplICIgPDwgc2l6ZSA8PCAiOiAi
IDw8IHJlc3VsdCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTUwNiw3ICs1MDYsNyBAQCBzdGF0
aWMgYm9vbCBkZXZpY2VIZWlnaHRFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdAogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIGludCBsZW5ndGg7Ci0gICAgYXV0byBoZWlnaHQgPSBzY3JlZW5SZWN0KGZyYW1lLm1h
aW5GcmFtZSgpLnZpZXcoKSkuaGVpZ2h0KCk7CisgICAgYXV0byBoZWlnaHQgPSBmcmFtZS5wYWdl
KCktPnNjcmVlblNpemUoKS5oZWlnaHQoKTsKICAgICBpZiAoIWNvbXB1dGVMZW5ndGgodmFsdWUs
ICFmcmFtZS5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSwgY29udmVyc2lvbkRhdGEsIGxlbmd0
aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNTIxLDggKzUyMSwxMCBAQCBzdGF0aWMg
Ym9vbCBkZXZpY2VXaWR0aEV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YQogICAgIC8vIGFzc3VtZSBpZiB3ZSBoYXZlIGEgZGV2aWNlLCBhc3N1
bWUgbm9uLXplcm8KICAgICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBp
ZiAoIWZyYW1lLm1haW5GcmFtZSgpLnZpZXcoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGludCBsZW5ndGg7Ci0gICAgYXV0byB3aWR0aCA9IHNjcmVlblJlY3QoZnJhbWUubWFpbkZyYW1l
KCkudmlldygpKS53aWR0aCgpOworICAgIGF1dG8gd2lkdGggPSBmcmFtZS5wYWdlKCktPnNjcmVl
blNpemUoKS53aWR0aCgpOwogICAgIGlmICghY29tcHV0ZUxlbmd0aCh2YWx1ZSwgIWZyYW1lLmRv
Y3VtZW50KCktPmluUXVpcmtzTW9kZSgpLCBjb252ZXJzaW9uRGF0YSwgbGVuZ3RoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggNTM5ZTgxMDViNjZlN2IyYTZhMDU1
NzFhMWUxYzhjZDZiZGYyN2M5MC4uNThjZjU5NjAyZGI2ZTRhYmVmZWJiYjkwMjc1MjRlNGU3ZmIw
YTNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMTA4Nyw0ICsxMDg3LDE0IEBAIHZvaWQgSW5zcGVjdG9y
UGFnZUFnZW50OjphcmNoaXZlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgU3RyaW5nKiBkYXRh
KQogfQogI2VuZGlmCiAKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpzZXRTY3JlZW5TaXplT3Zl
cnJpZGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCit7
CisgICAgaWYgKHdpZHRoIDw9IDAgfHwgaGVpZ2h0IDw9IDApIHsKKyAgICAgICAgZXJyb3JTdHJp
bmcgPSAiU2NyZWVuIHNpemUgb3ZlcnJpZGUgc2hvdWxkIGJlIHBvc2l0aXZlIGludGVnZXJzIl9z
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9pbnNwZWN0ZWRQYWdlLnNldE92ZXJy
aWRlU2NyZWVuU2l6ZShtYWtlT3B0aW9uYWwoRmxvYXRTaXplKHdpZHRoLCBoZWlnaHQpKSk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IDNiY2QwNDg3Y2ZjODc2NmJh
YTAxYzc4MDQxNzNhMTU3NDdiNDdiMmQuLjBiMzNkODVlMDcyOGY4NjMxYTRiYzQ2MDQ3Y2RmZDAx
MWQzYWEwOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JQYWdlQWdlbnQuaApAQCAtMTIyLDYgKzEyMiw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IGFyY2hpdmUoRXJyb3JTdHJpbmcmLCBTdHJpbmcqIGRhdGEpIG92ZXJyaWRlOwogI2VuZGlmCiAK
KyAgICB2b2lkIHNldFNjcmVlblNpemVPdmVycmlkZShFcnJvclN0cmluZyYsIGludCB3aWR0aCwg
aW50IGhlaWdodCkgb3ZlcnJpZGU7CisKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24K
ICAgICB2b2lkIGRvbUNvbnRlbnRFdmVudEZpcmVkKCk7CiAgICAgdm9pZCBsb2FkRXZlbnRGaXJl
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZGRhYjA2ZDhjMTM1OGUxNjBkN2IyNWNmM2Q5NmNh
YjkwZGMyOTFhNi4uYzQ1OTBmMzljNDVhN2I2ZWY1NGY0ZWQzMTNiZWU4YWY1NTBkZjFmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCkBAIC05MCw2ICs5MCw3IEBACiAjaW5jbHVkZSAiUGVyZm9ybWFuY2VM
b2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2VNb25pdG9yLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TY3Jl
ZW4uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJQbHVnSW5D
bGllbnQuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCkBAIC00MjksNiArNDMwLDIxIEBAIHZv
aWQgUGFnZTo6c2V0T3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBPcHRpb25hbDxWaWV3
cG9ydEFyZ3VtZW50cz4mIHZpZXdwCiAgICAgICAgIGRvY3VtZW50LT51cGRhdGVWaWV3cG9ydEFy
Z3VtZW50cygpOwogfQogCitGbG9hdFNpemUgUGFnZTo6c2NyZWVuU2l6ZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fb3ZlcnJpZGVTY3JlZW5TaXplLnZhbHVlT3Ioc2NyZWVuUmVjdChtYWluRnJh
bWUoKS52aWV3KCkpLnNpemUoKSk7Cit9CisKK3ZvaWQgUGFnZTo6c2V0T3ZlcnJpZGVTY3JlZW5T
aXplKE9wdGlvbmFsPEZsb2F0U2l6ZT4gc2l6ZSkKK3sKKyAgICBpZiAoc2l6ZSA9PSBtX292ZXJy
aWRlU2NyZWVuU2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9vdmVycmlkZVNjcmVlblNp
emUgPSBzaXplOworICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IG1haW5GcmFtZSgpLmRvY3VtZW50
KCkpCisgICAgICAgIGRvY3VtZW50LT51cGRhdGVWaWV3cG9ydEFyZ3VtZW50cygpOworfQorCiBT
Y3JvbGxpbmdDb29yZGluYXRvciogUGFnZTo6c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKQogewogICAg
IGlmICghbV9zY3JvbGxpbmdDb29yZGluYXRvciAmJiBtX3NldHRpbmdzLT5zY3JvbGxpbmdDb29y
ZGluYXRvckVuYWJsZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCAxMDFhMjY1ZjQ3MGNkYjYzYjI2
MTFlNjRkMGUxMzFlMzkyYzIzNmRlLi5mYmEwNTljMmVjY2UzMTIxZmM1YzRkOTQ0MGE1OGFjNGZk
NjQyNzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTk1LDYgKzE5NSw5IEBAIHB1YmxpYzoKICAgICBj
b25zdCBPcHRpb25hbDxWaWV3cG9ydEFyZ3VtZW50cz4mIG92ZXJyaWRlVmlld3BvcnRBcmd1bWVu
dHMoKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRlVmlld3BvcnRBcmd1bWVudHM7IH0KICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldE92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMoY29uc3QgT3B0
aW9uYWw8Vmlld3BvcnRBcmd1bWVudHM+Jik7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBGbG9hdFNp
emUgc2NyZWVuU2l6ZSgpIGNvbnN0OworICAgIHZvaWQgc2V0T3ZlcnJpZGVTY3JlZW5TaXplKE9w
dGlvbmFsPEZsb2F0U2l6ZT4pOworCiAgICAgc3RhdGljIHZvaWQgcmVmcmVzaFBsdWdpbnMoYm9v
bCByZWxvYWQpOwogICAgIFdFQkNPUkVfRVhQT1JUIFBsdWdpbkRhdGEmIHBsdWdpbkRhdGEoKTsK
ICAgICB2b2lkIGNsZWFyUGx1Z2luRGF0YSgpOwpAQCAtMTAzOSw2ICsxMDQyLDggQEAgcHJpdmF0
ZToKICNlbmRpZgogCiAgICAgT3B0aW9uYWw8Vmlld3BvcnRBcmd1bWVudHM+IG1fb3ZlcnJpZGVW
aWV3cG9ydEFyZ3VtZW50czsKKyAgICBPcHRpb25hbDxGbG9hdFNpemU+IG1fb3ZlcnJpZGVTY3Jl
ZW5TaXplOworCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyPiBt
X2RldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NjcmVlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKaW5k
ZXggYTlkMjI4Y2E0MDQ5MTg4NjBjNDA2NTE5OTRkYjc4YTFlNzZkYjVjYS4uMWZjM2MzNDUzMDhk
ZmVkODM4NGQxYzAyMzM0ZjIwMzBlODc5MzgzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TY3JlZW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcApAQCAt
MzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCIKICNpbmNs
dWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCkBAIC01Myw3ICs1NCw3IEBAIHVuc2lnbmVk
IFNjcmVlbjo6aGVpZ2h0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIDA7CiAgICAgaWYgKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQVBJU3RhdGlzdGljc0VuYWJs
ZWQoKSkKICAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLmxvZ1NjcmVlbkFQ
SUFjY2Vzc2VkKCpmcmFtZS0+ZG9jdW1lbnQoKSwgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6U2Ny
ZWVuQVBJOjpIZWlnaHQpOwotICAgIGxvbmcgaGVpZ2h0ID0gc3RhdGljX2Nhc3Q8bG9uZz4oc2Ny
ZWVuUmVjdChmcmFtZS0+dmlldygpKS5oZWlnaHQoKSk7CisgICAgbG9uZyBoZWlnaHQgPSBzdGF0
aWNfY2FzdDxsb25nPihmcmFtZS0+cGFnZSgpLT5zY3JlZW5TaXplKCkuaGVpZ2h0KCkpOwogICAg
IHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaGVpZ2h0KTsKIH0KIApAQCAtNjQsNyArNjUs
NyBAQCB1bnNpZ25lZCBTY3JlZW46OndpZHRoKCkgY29uc3QKICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQVBJU3Rh
dGlzdGljc0VuYWJsZWQoKSkKICAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgp
LmxvZ1NjcmVlbkFQSUFjY2Vzc2VkKCpmcmFtZS0+ZG9jdW1lbnQoKSwgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljczo6U2NyZWVuQVBJOjpXaWR0aCk7Ci0gICAgbG9uZyB3aWR0aCA9IHN0YXRpY19jYXN0
PGxvbmc+KHNjcmVlblJlY3QoZnJhbWUtPnZpZXcoKSkud2lkdGgoKSk7CisgICAgbG9uZyB3aWR0
aCA9IHN0YXRpY19jYXN0PGxvbmc+KGZyYW1lLT5wYWdlKCktPnNjcmVlblNpemUoKS53aWR0aCgp
KTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHdpZHRoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGU0OWI3ZTIxNzlkMzI5Nzk0ODRiYjE1N2EyYTkxNzY3OWNiZGYyNmUuLmE5NzViMzliMWM2NjQ1
OGJjNzFmN2NjMjU1NGQ2NmY0MmM3MmY3ZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0w
Ni0xNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+IGFuZCBQYXZlbCBG
ZWxkbWFuIDxwYXZlbC5mZWxkbWFuQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBBZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0aGUgUGFnZSBhZ2VudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMjQyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcGFn
ZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUuaHRtbDogQWRkZWQuCisKIDIwMjAt
MDYtMTYgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ug
c3VyZSBNZWRpYVJlY29yZGVyLnJlcXVlc3REYXRhIHJldHVybnMgZGF0YSB3aXRoIHRoZSBuZXcg
d3JpdGVyIGJhY2tlbmQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3Nl
dFNjcmVlblNpemVPdmVycmlkZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2V0
U2NyZWVuU2l6ZU92ZXJyaWRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzhiMTUyZWU2MjI3YjhkYjc4ODg0
ZDdlZmJkMjE1ZjZjMTQ1N2E4NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wYWdlL3NldFNjcmVlblNpemVPdmVycmlkZS5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgZnVuY3Rpb24gdGVzdCgpCisgICAg
ICAgICB7CisgICAgICAgICAgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3lu
Y1N1aXRlKCJQYWdlLnNldFNjcmVlblNpemVPdmVycmlkZSIpOworCisgICAgICAgICAgICAgc3Vp
dGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgICAgICBuYW1lOiAiU2NyZWVuU2l6ZU92ZXJy
aWRlT3ZlcnJpZGUiLAorICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlZlcmlmeSB0aGF0
IHRoZSBpbnNwZWN0b3IgY2FuIG92ZXJyaWRlIHRoZSBzY3JlZW4gc2l6ZS4iLAorICAgICAgICAg
ICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRT
Y3JlZW5XaWR0aCA9IGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5z
Y3JlZW4ud2lkdGhgKTsKKyAgICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50U2NyZWVuSGVp
Z2h0ID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LnNjcmVlbi5o
ZWlnaHRgKTsKKyAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDdXJyZW50
IHNjcmVlbiBzaXplOiAiICsgY3VycmVudFNjcmVlbldpZHRoICsgIngiICsgY3VycmVudFNjcmVl
bkhlaWdodCk7CisKKyAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJPdmVy
cmlkaW5nIHNjcmVlbiBzaXplIHRvIDEwMDB4NTAwIik7CisgICAgICAgICAgICAgICAgICAgICBh
d2FpdCBQYWdlQWdlbnQuc2V0U2NyZWVuU2l6ZU92ZXJyaWRlKDEwMDAsIDUwMCk7CisKKyAgICAg
ICAgICAgICAgICAgICAgIGxldCBuZXdTY3JlZW5XaWR0aCA9IGF3YWl0IEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5zY3JlZW4ud2lkdGhgKTsKKyAgICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwobmV3U2NyZWVuV2lkdGgsIDEwMDAsICJEZWZh
dWx0IHNjcmVlbiB3aWR0aCBzaG91bGQgYmUgMTAwMCIpOworICAgICAgICAgICAgICAgICAgICAg
bGV0IG5ld1NjcmVlbkhlaWdodCA9IGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
YHdpbmRvdy5zY3JlZW4uaGVpZ2h0YCk7CisgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdEVxdWFsKG5ld1NjcmVlbkhlaWdodCwgNTAwLCAiRGVmYXVsdCBzY3JlZW4gaGVp
Z2h0IHNob3VsZCBiZSA1MDAiKTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoKG5vZGUpID0+
IHsKKyAgICAgICAgICAgICAgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CisgICAg
ICAgICAgICAgfSk7CisgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4K
KyAgICA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSIvPgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVPdmVycmlk
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvaW5zcGVjdG9yL3BhZ2Uv
c2V0U2NyZWVuU2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjhjN2JhNWE0
OGMxYWEwNjdhZjcwY2I5OTVlMzM4M2I1NDdkODU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVPdmVycmlkZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUGFn
ZS5zZXRTY3JlZW5TaXplT3ZlcnJpZGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBTY3JlZW5TaXpl
T3ZlcnJpZGVPdmVycmlkZQorQ3VycmVudCBzY3JlZW4gc2l6ZTogMTAyNHg3NjgKK092ZXJyaWRp
bmcgc2NyZWVuIHNpemUgdG8gMTAwMHg1MDAKK1BBU1M6IERlZmF1bHQgc2NyZWVuIHdpZHRoIHNo
b3VsZCBiZSAxMDAwCitQQVNTOiBEZWZhdWx0IHNjcmVlbiBoZWlnaHQgc2hvdWxkIGJlIDUwMAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvaW5zcGVjdG9yL3BhZ2Uvc2V0
U2NyZWVuU2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9pbnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU1YTJmYTg1ODVlNWI1YzNlYjlmNDMwYzBiMjYwNjc3ODJlYWY3OGMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2Ny
ZWVuU2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKKworPT0gUnVubmlu
ZyB0ZXN0IHN1aXRlOiBQYWdlLnNldFNjcmVlblNpemVPdmVycmlkZQorLS0gUnVubmluZyB0ZXN0
IGNhc2U6IFNjcmVlblNpemVPdmVycmlkZU92ZXJyaWRlCitDdXJyZW50IHNjcmVlbiBzaXplOiAx
OTIweDEwODAKK092ZXJyaWRpbmcgc2NyZWVuIHNpemUgdG8gMTAwMHg1MDAKK1BBU1M6IERlZmF1
bHQgc2NyZWVuIHdpZHRoIHNob3VsZCBiZSAxMDAwCitQQVNTOiBEZWZhdWx0IHNjcmVlbiBoZWln
aHQgc2hvdWxkIGJlIDUwMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUv
aW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dwZS9pbnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiOGM3YmE1YTQ4YzFhYTA2N2FmNzBjYjk5NWUzMzgz
YjU0N2Q4NTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaW5z
cGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDggQEAKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBQYWdlLnNldFNjcmVlblNpemVPdmVycmlk
ZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFNjcmVlblNpemVPdmVycmlkZU92ZXJyaWRlCitDdXJy
ZW50IHNjcmVlbiBzaXplOiAxMDI0eDc2OAorT3ZlcnJpZGluZyBzY3JlZW4gc2l6ZSB0byAxMDAw
eDUwMAorUEFTUzogRGVmYXVsdCBzY3JlZW4gd2lkdGggc2hvdWxkIGJlIDEwMDAKK1BBU1M6IERl
ZmF1bHQgc2NyZWVuIGhlaWdodCBzaG91bGQgYmUgNTAwCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402213</attachid>
            <date>2020-06-18 09:51:28 -0700</date>
            <delta_ts>2020-06-22 02:16:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213242-20200618095126.patch</filename>
            <type>text/plain</type>
            <size>15259</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
NTkzMmU0MTE2M2Y2NWNjM2FlYTFmNDA2N2I1ODVlYjZiNzI4YjQyLi5kNDhmNjQ2YzdiYTY4ZGE5
YWFlZjBmMWJmMTBjZmVlYzFjM2NiNjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAyMC0wNi0xNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxp
YS5jb20+IGFuZCBQYXZlbCBGZWxkbWFuIDxwYXZlbC5mZWxkbWFuQGdtYWlsLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0aGUg
UGFnZSBhZ2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEzMjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uOiBBZGQgYSBuZXcgc2V0U2NyZWVuU2l6
ZU92ZXJyaWRlIEFQSSBpbiB0aGUgUGFnZSBhZ2VudC4KKwogMjAyMC0wNi0xNyAgTWFyayBMYW0g
IDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBKU0M6OkZyZWVMaXN0IGxp
bmtlZCBsaXN0IHdpdGggYSBCaXRtYXAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzcyY2Q0ZWRjZmVjZDY1MTY0
YmI3ZjMzYTU5YzA4ODRiOTI5M2M2YS4uNmE3NzlkOTRjOTY2ZWRjZDBlYWVlYmY5ZjE2M2IwMjRj
ZDI4MTcwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTA2LTE2ICBQaGlsaXBw
ZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4gYW5kIFBhdmVsIEZlbGRtYW4gPHBhdmVs
LmZlbGRtYW5AZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBzZXRTY3Jl
ZW5TaXplT3ZlcnJpZGUgQVBJIHRvIHRoZSBQYWdlIGFnZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMyNDIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvdyB0aGUgV2ViSW5zcGVjdG9yIFBhZ2Ug
YWdlbnQgdG8gb3ZlcnJpZGUgdGhlIFNjcmVlbiBzaXplLiBUaGlzIGlzIHVzZWZ1bCBmb3IgYXV0
b21hdGlvbgorICAgICAgICBwdXJwb3Nlcy4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvcGFn
ZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUuaHRtbAorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlF
dmFsdWF0b3IuY3BwOiBVc2UgdGhlIFBhZ2U6OnNjcmVlblNpemUoKSBtZXRob2QgdG8gcXVlcnkg
dGhlIHNjcmVlbiBkaW1lbnNpb25zLgorICAgICAgICAoV2ViQ29yZTo6ZGV2aWNlQXNwZWN0UmF0
aW9FdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpkZXZpY2VIZWlnaHRFdmFsdWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpkZXZpY2VXaWR0aEV2YWx1YXRlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JQYWdlQWdlbnQ6OnNldFNjcmVlblNpemVPdmVycmlkZSk6IEltcGxlbWVudGF0aW9uIG9m
IHRoZSBuZXcgQVBJIGhvb2tpbmcKKyAgICAgICAgaW50byB0aGUgV2ViQ29yZTo6UGFnZTo6c2V0
T3ZlcnJpZGVTY3JlZW5TaXplKCkgbWV0aG9kLgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yUGFnZUFnZW50Lmg6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2U6OnNjcmVlblNpemUpOiBOZXcgZW50cnkgcG9pbnQgdG8gcXVlcnkgdGhl
IHNjcmVlbiBzaXplLCB0aGlzIHRha2VzIGludG8KKyAgICAgICAgYWNjb3VudCB0aGUgb3B0aW9u
YWwgb3ZlcnJpZGVuIHNjcmVlbiBzaXplLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0T3Zl
cnJpZGVTY3JlZW5TaXplKTogQVBJIHVzZWQgYnkgdGhlIFBhZ2UgYWdlbnQgdG8gZmFrZSBhIG5l
dyBzY3JlZW4gc2l6ZS4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKiBwYWdlL1Nj
cmVlbi5jcHA6IFVzZSB0aGUgUGFnZTo6c2NyZWVuU2l6ZSgpIG1ldGhvZCB0byBxdWVyeSB0aGUg
c2NyZWVuIGRpbWVuc2lvbnMuCisgICAgICAgIChXZWJDb3JlOjpTY3JlZW46OmhlaWdodCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW46OndpZHRoIGNvbnN0KToKKwogMjAyMC0wNi0x
NyAgQ2xhcmsgV2FuZyAgPGNsYXJrX3dhbmdAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGVkIG1p
c3Npbmcgb3JpZW50YXRpb24gYXR0cmlidXRlcyB0byBQYW5uZXJOb2RlCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1BhZ2UuanNvbiBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uCmluZGV4IDNiOGZh
MThiZDdlOGQ5NWQ3ZThmOTViNDQyYWZjNjNlNTUwY2U2M2EuLjQzYmZlNzA4MzQyZWNkYmY2Njc0
NmNkYWVjMjU0MDUxYjQwZGNkMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uCkBAIC0zMDQsNiArMzA0LDE1IEBACiAgICAgICAg
ICAgICAicmV0dXJucyI6IFsKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRhdGEiLCAidHlw
ZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiQmFzZTY0LWVuY29kZWQgd2ViIGFyY2hpdmUu
IiB9CiAgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJu
YW1lIjogInNldFNjcmVlblNpemVPdmVycmlkZSIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiT3ZlcnJpZGVzIHNjcmVlbiBzaXplIHdpdGggcHJvdmlkZWQgdmFsdWVzLiIsCisgICAgICAg
ICAgICAidGFyZ2V0VHlwZXMiOiBbInBhZ2UiXSwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAid2lkdGgiLCAidHlwZSI6ICJpbnRlZ2VyIiwg
ImRlc2NyaXB0aW9uIjogIlNjcmVlbiB3aWR0aCIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImhlaWdodCIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiU2NyZWVuIGhl
aWdodCIgfQorICAgICAgICAgICAgXQogICAgICAgICB9CiAgICAgXSwKICAgICAiZXZlbnRzIjog
WwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IDgxMThi
N2FiM2M1MGIzY2VkODEyMGZjMTA2ZGNlOWM3MzE0MWFmZTQuLjJhZWEzYmEwN2VhZTJhMjNiNjM2
NDA3NGQyNTMzNTYxNjU3NTc1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2
YWx1YXRvci5jcHAKQEAgLTM4OCw3ICszODgsNyBAQCBzdGF0aWMgYm9vbCBkZXZpY2VBc3BlY3RS
YXRpb0V2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaQog
ICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgYXV0byBzaXplID0g
c2NyZWVuUmVjdChmcmFtZS5tYWluRnJhbWUoKS52aWV3KCkpLnNpemUoKTsKKyAgICBhdXRvIHNp
emUgPSBmcmFtZS5wYWdlKCktPnNjcmVlblNpemUoKTsKICAgICBib29sIHJlc3VsdCA9IGNvbXBh
cmVBc3BlY3RSYXRpb1ZhbHVlKHZhbHVlLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCksIG9w
KTsKICAgICBMT0dfV0lUSF9TVFJFQU0oTWVkaWFRdWVyaWVzLCBzdHJlYW0gPDwgIiAgZGV2aWNl
QXNwZWN0UmF0aW9FdmFsdWF0ZTogIiA8PCBvcCA8PCAiICIgPDwgYXNwZWN0UmF0aW9WYWx1ZUFz
U3RyaW5nKHZhbHVlKSA8PCAiIGFjdHVhbCBzY3JlZW4gc2l6ZSAiIDw8IHNpemUgPDwgIjogIiA8
PCByZXN1bHQpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC01MDYsNyArNTA2LDcgQEAgc3RhdGlj
IGJvb2wgZGV2aWNlSGVpZ2h0RXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXQKICAgICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICBpbnQgbGVuZ3RoOwotICAgIGF1dG8gaGVpZ2h0ID0gc2NyZWVuUmVjdChmcmFtZS5tYWlu
RnJhbWUoKS52aWV3KCkpLmhlaWdodCgpOworICAgIGF1dG8gaGVpZ2h0ID0gZnJhbWUucGFnZSgp
LT5zY3JlZW5TaXplKCkuaGVpZ2h0KCk7CiAgICAgaWYgKCFjb21wdXRlTGVuZ3RoKHZhbHVlLCAh
ZnJhbWUuZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCksIGNvbnZlcnNpb25EYXRhLCBsZW5ndGgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTUyMSw4ICs1MjEsMTAgQEAgc3RhdGljIGJv
b2wgZGV2aWNlV2lkdGhFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEKICAgICAvLyBhc3N1bWUgaWYgd2UgaGF2ZSBhIGRldmljZSwgYXNzdW1l
IG5vbi16ZXJvCiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYg
KCFmcmFtZS5tYWluRnJhbWUoKS52aWV3KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBp
bnQgbGVuZ3RoOwotICAgIGF1dG8gd2lkdGggPSBzY3JlZW5SZWN0KGZyYW1lLm1haW5GcmFtZSgp
LnZpZXcoKSkud2lkdGgoKTsKKyAgICBhdXRvIHdpZHRoID0gZnJhbWUucGFnZSgpLT5zY3JlZW5T
aXplKCkud2lkdGgoKTsKICAgICBpZiAoIWNvbXB1dGVMZW5ndGgodmFsdWUsICFmcmFtZS5kb2N1
bWVudCgpLT5pblF1aXJrc01vZGUoKSwgY29udmVyc2lvbkRhdGEsIGxlbmd0aCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDUzOWU4MTA1YjY2ZTdiMmE2YTA1NTcx
YTFlMWM4Y2Q2YmRmMjdjOTAuLjU4Y2Y1OTYwMmRiNmU0YWJlZmViYmI5MDI3NTI0ZTRlN2ZiMGEz
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclBhZ2VBZ2VudC5jcHAKQEAgLTEwODcsNCArMTA4NywxNCBAQCB2b2lkIEluc3BlY3RvclBh
Z2VBZ2VudDo6YXJjaGl2ZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIFN0cmluZyogZGF0YSkK
IH0KICNlbmRpZgogCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6c2V0U2NyZWVuU2l6ZU92ZXJy
aWRlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQorewor
ICAgIGlmICh3aWR0aCA8PSAwIHx8IGhlaWdodCA8PSAwKSB7CisgICAgICAgIGVycm9yU3RyaW5n
ID0gIlNjcmVlbiBzaXplIG92ZXJyaWRlIHNob3VsZCBiZSBwb3NpdGl2ZSBpbnRlZ2VycyJfczsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1faW5zcGVjdGVkUGFnZS5zZXRPdmVycmlk
ZVNjcmVlblNpemUobWFrZU9wdGlvbmFsKEZsb2F0U2l6ZSh3aWR0aCwgaGVpZ2h0KSkpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuaAppbmRleCAzYmNkMDQ4N2NmYzg3NjZiYWEw
MWM3ODA0MTczYTE1NzQ3YjQ3YjJkLi4wYjMzZDg1ZTA3MjhmODYzMWE0YmM0NjA0N2NkZmQwMTFk
M2FhMDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvclBhZ2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yUGFnZUFnZW50LmgKQEAgLTEyMiw2ICsxMjIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBh
cmNoaXZlKEVycm9yU3RyaW5nJiwgU3RyaW5nKiBkYXRhKSBvdmVycmlkZTsKICNlbmRpZgogCisg
ICAgdm9pZCBzZXRTY3JlZW5TaXplT3ZlcnJpZGUoRXJyb3JTdHJpbmcmLCBpbnQgd2lkdGgsIGlu
dCBoZWlnaHQpIG92ZXJyaWRlOworCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAg
ICAgdm9pZCBkb21Db250ZW50RXZlbnRGaXJlZCgpOwogICAgIHZvaWQgbG9hZEV2ZW50RmlyZWQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGRkYWIwNmQ4YzEzNThlMTYwZDdiMjVjZjNkOTZjYWI5
MGRjMjkxYTYuLmM0NTkwZjM5YzQ1YTdiNmVmNTRmNGVkMzEzYmVlOGFmNTUwZGYxZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcApAQCAtOTAsNiArOTAsNyBAQAogI2luY2x1ZGUgIlBlcmZvcm1hbmNlTG9n
Z2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlTW9uaXRvci5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVu
LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiUGx1Z0luQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgpAQCAtNDI5LDYgKzQzMCwyMSBAQCB2b2lk
IFBhZ2U6OnNldE92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMoY29uc3QgT3B0aW9uYWw8Vmlld3Bv
cnRBcmd1bWVudHM+JiB2aWV3cAogICAgICAgICBkb2N1bWVudC0+dXBkYXRlVmlld3BvcnRBcmd1
bWVudHMoKTsKIH0KIAorRmxvYXRTaXplIFBhZ2U6OnNjcmVlblNpemUoKSBjb25zdAoreworICAg
IHJldHVybiBtX292ZXJyaWRlU2NyZWVuU2l6ZS52YWx1ZU9yKHNjcmVlblJlY3QobWFpbkZyYW1l
KCkudmlldygpKS5zaXplKCkpOworfQorCit2b2lkIFBhZ2U6OnNldE92ZXJyaWRlU2NyZWVuU2l6
ZShPcHRpb25hbDxGbG9hdFNpemU+IHNpemUpCit7CisgICAgaWYgKHNpemUgPT0gbV9vdmVycmlk
ZVNjcmVlblNpemUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fb3ZlcnJpZGVTY3JlZW5TaXpl
ID0gc2l6ZTsKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBtYWluRnJhbWUoKS5kb2N1bWVudCgp
KQorICAgICAgICBkb2N1bWVudC0+dXBkYXRlVmlld3BvcnRBcmd1bWVudHMoKTsKK30KKwogU2Ny
b2xsaW5nQ29vcmRpbmF0b3IqIFBhZ2U6OnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkKIHsKICAgICBp
ZiAoIW1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IgJiYgbV9zZXR0aW5ncy0+c2Nyb2xsaW5nQ29vcmRp
bmF0b3JFbmFibGVkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMTAxYTI2NWY0NzBjZGI2M2IyNjEx
ZTY0ZDBlMTMxZTM5MmMyMzZkZS4uZmJhMDU5YzJlY2NlMzEyMWZjNWM0ZDk0NDBhNThhYzRmZDY0
MjcwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTE5NSw2ICsxOTUsOSBAQCBwdWJsaWM6CiAgICAgY29u
c3QgT3B0aW9uYWw8Vmlld3BvcnRBcmd1bWVudHM+JiBvdmVycmlkZVZpZXdwb3J0QXJndW1lbnRz
KCkgY29uc3QgeyByZXR1cm4gbV9vdmVycmlkZVZpZXdwb3J0QXJndW1lbnRzOyB9CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRPdmVycmlkZVZpZXdwb3J0QXJndW1lbnRzKGNvbnN0IE9wdGlv
bmFsPFZpZXdwb3J0QXJndW1lbnRzPiYpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgRmxvYXRTaXpl
IHNjcmVlblNpemUoKSBjb25zdDsKKyAgICB2b2lkIHNldE92ZXJyaWRlU2NyZWVuU2l6ZShPcHRp
b25hbDxGbG9hdFNpemU+KTsKKwogICAgIHN0YXRpYyB2b2lkIHJlZnJlc2hQbHVnaW5zKGJvb2wg
cmVsb2FkKTsKICAgICBXRUJDT1JFX0VYUE9SVCBQbHVnaW5EYXRhJiBwbHVnaW5EYXRhKCk7CiAg
ICAgdm9pZCBjbGVhclBsdWdpbkRhdGEoKTsKQEAgLTEwMzksNiArMTA0Miw4IEBAIHByaXZhdGU6
CiAjZW5kaWYKIAogICAgIE9wdGlvbmFsPFZpZXdwb3J0QXJndW1lbnRzPiBtX292ZXJyaWRlVmll
d3BvcnRBcmd1bWVudHM7CisgICAgT3B0aW9uYWw8RmxvYXRTaXplPiBtX292ZXJyaWRlU2NyZWVu
U2l6ZTsKKwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcj4gbV9k
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TY3JlZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCmluZGV4
IGE5ZDIyOGNhNDA0OTE4ODYwYzQwNjUxOTk0ZGI3OGExZTc2ZGI1Y2EuLjFmYzNjMzQ1MzA4ZGZl
ZDgzODRkMWMwMjMzNGYyMDMwZTg3OTM4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2NyZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZE9ic2VydmVyLmgiCiAjaW5jbHVk
ZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgpAQCAtNTMsNyArNTQsNyBAQCB1bnNpZ25lZCBT
Y3JlZW46OmhlaWdodCgpIGNvbnN0CiAgICAgICAgIHJldHVybiAwOwogICAgIGlmIChSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkFQSVN0YXRpc3RpY3NFbmFibGVk
KCkpCiAgICAgICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5sb2dTY3JlZW5BUElB
Y2Nlc3NlZCgqZnJhbWUtPmRvY3VtZW50KCksIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OlNjcmVl
bkFQSTo6SGVpZ2h0KTsKLSAgICBsb25nIGhlaWdodCA9IHN0YXRpY19jYXN0PGxvbmc+KHNjcmVl
blJlY3QoZnJhbWUtPnZpZXcoKSkuaGVpZ2h0KCkpOworICAgIGxvbmcgaGVpZ2h0ID0gc3RhdGlj
X2Nhc3Q8bG9uZz4oZnJhbWUtPnBhZ2UoKS0+c2NyZWVuU2l6ZSgpLmhlaWdodCgpKTsKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGhlaWdodCk7CiB9CiAKQEAgLTY0LDcgKzY1LDcg
QEAgdW5zaWduZWQgU2NyZWVuOjp3aWR0aCgpIGNvbnN0CiAgICAgICAgIHJldHVybiAwOwogICAg
IGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkFQSVN0YXRp
c3RpY3NFbmFibGVkKCkpCiAgICAgICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5s
b2dTY3JlZW5BUElBY2Nlc3NlZCgqZnJhbWUtPmRvY3VtZW50KCksIFJlc291cmNlTG9hZFN0YXRp
c3RpY3M6OlNjcmVlbkFQSTo6V2lkdGgpOwotICAgIGxvbmcgd2lkdGggPSBzdGF0aWNfY2FzdDxs
b25nPihzY3JlZW5SZWN0KGZyYW1lLT52aWV3KCkpLndpZHRoKCkpOworICAgIGxvbmcgd2lkdGgg
PSBzdGF0aWNfY2FzdDxsb25nPihmcmFtZS0+cGFnZSgpLT5zY3JlZW5TaXplKCkud2lkdGgoKSk7
CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPih3aWR0aCk7CiB9CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBl
MDM5OGNhZmI1N2JiZGVhODgyZDI5MmRkMDFhODk5YzU5NWZmMDI2Li5lMTI2NzUyMGY0ZWNhOWJk
NzFmYmMwN2I4OGRiZTA0ODE0NWE4OWQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDYt
MTYgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPiBhbmQgUGF2ZWwgRmVs
ZG1hbiA8cGF2ZWwuZmVsZG1hbkBnbWFpbC5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
QWRkIHNldFNjcmVlblNpemVPdmVycmlkZSBBUEkgdG8gdGhlIFBhZ2UgYWdlbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzI0MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3BhZ2Uv
c2V0U2NyZWVuU2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5z
cGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA2
LTE4ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dU
S10gVW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZy4gUmVtb3ZlIHN0YWxlIGZsYWt5IGZhaWx1cmVz
IGFmdGVyIHIyNjMyMDUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9z
ZXRTY3JlZW5TaXplT3ZlcnJpZGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3Nl
dFNjcmVlblNpemVPdmVycmlkZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczMmU3OGRmNTc3NWYwZmViOGE1
ZGZkZjI0NzJiZDUxYmJhNjMyZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUuaHRtbApAQCAtMCwwICsxLDU2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFu
ZCAobWF4LWRldmljZS13aWR0aDogMTAwMHB4KSB7CisgICAgICAgICAgICAgYm9keSB7CisgICAg
ICAgICAgICAgICAgIGNvbG9yOiBsaWdodGJsdWU7CisgICAgICAgICAgICAgfQorICAgICAgICAg
fQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgbGV0IG1lZGlh
UXVlcnlMaXN0ID0gd2luZG93Lm1hdGNoTWVkaWEoIm1heC1kZXZpY2Utd2lkdGgiKTsKKyAgICAg
ICAgIG1lZGlhUXVlcnlMaXN0LmFkZExpc3RlbmVyKGZ1bmN0aW9uKGFNZWRpYVF1ZXJ5TGlzdCkg
eworICAgICAgICAgICAgIFRlc3RQYWdlLmFkZFJlc3VsdCgiUEFTUzogTWVkaWFRdWVyeUxpc3Qg
bGlzdGVuZXIgZmlyZWQuIik7CisgICAgICAgICB9KTsKKworICAgICAgICAgZnVuY3Rpb24gdGVz
dCgpCisgICAgICAgICB7CisgICAgICAgICAgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5j
cmVhdGVBc3luY1N1aXRlKCJQYWdlLnNldFNjcmVlblNpemVPdmVycmlkZSIpOworCisgICAgICAg
ICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgICAgICBuYW1lOiAiU2NyZWVu
U2l6ZU92ZXJyaWRlT3ZlcnJpZGUiLAorICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIlZl
cmlmeSB0aGF0IHRoZSBpbnNwZWN0b3IgY2FuIG92ZXJyaWRlIHRoZSBzY3JlZW4gc2l6ZS4iLAor
ICAgICAgICAgICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgICAgICAgICAgbGV0
IGN1cnJlbnRTY3JlZW5XaWR0aCA9IGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
YHdpbmRvdy5zY3JlZW4ud2lkdGhgKTsKKyAgICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50
U2NyZWVuSGVpZ2h0ID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93
LnNjcmVlbi5oZWlnaHRgKTsKKyAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJDdXJyZW50IHNjcmVlbiBzaXplOiAiICsgY3VycmVudFNjcmVlbldpZHRoICsgIngiICsgY3Vy
cmVudFNjcmVlbkhlaWdodCk7CisKKyAgICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50QmFj
a2dyb3VuZENvbG9yID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5jb2xvciIpOworICAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChjdXJyZW50QmFja2dyb3VuZENvbG9yLCAicmdiKDAs
IDAsIDApIiwgIkJvZHkgc2hvdWxkIGJlIHdoaXRlIik7CisKKyAgICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJPdmVycmlkaW5nIHNjcmVlbiBzaXplIHRvIDEwMDB4NTAwIik7
CisgICAgICAgICAgICAgICAgICAgICBhd2FpdCBQYWdlQWdlbnQuc2V0U2NyZWVuU2l6ZU92ZXJy
aWRlKDEwMDAsIDUwMCk7CisgICAgICAgICAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKGBsb2NhdGlvbi5yZWxvYWQoKWApOworCisgICAgICAgICAgICAgICAg
ICAgICBsZXQgbmV3U2NyZWVuV2lkdGggPSBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Q
YWdlKGB3aW5kb3cuc2NyZWVuLndpZHRoYCk7CisgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdEVxdWFsKG5ld1NjcmVlbldpZHRoLCAxMDAwLCAiRGVmYXVsdCBzY3JlZW4g
d2lkdGggc2hvdWxkIGJlIDEwMDAiKTsKKyAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdTY3Jl
ZW5IZWlnaHQgPSBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuc2Ny
ZWVuLmhlaWdodGApOworICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbChuZXdTY3JlZW5IZWlnaHQsIDUwMCwgIkRlZmF1bHQgc2NyZWVuIGhlaWdodCBzaG91bGQg
YmUgNTAwIik7CisKKyAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdCYWNrZ3JvdW5kQ29sb3Ig
PSBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LmJvZHkpLmNvbG9yIik7CisKKyAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0RXF1YWwobmV3QmFja2dyb3VuZENvbG9yLCAicmdiKDE3MywgMjE2LCAyMzApIiwg
IkJvZHkgc2hvdWxkIGJlIGxpZ2h0Ymx1ZSIpOworCisgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICB9KTsKKworICAgICAgICAgICAgIFdJLmRvbU1hbmFnZXIucmVxdWVzdERvY3VtZW50
KChub2RlKSA9PiB7CisgICAgICAgICAgICAgICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlz
aCgpOworICAgICAgICAgICAgIH0pOworICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAg
ICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiLz4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVu
U2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvaW5z
cGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zMzUzNDY5YTY0YmY2OWM5ZTNhZDBmMWFlY2Q2M2I0Yzg4NWMwY2YyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9pbnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5T
aXplT3ZlcnJpZGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworPT0gUnVubmluZyB0
ZXN0IHN1aXRlOiBQYWdlLnNldFNjcmVlblNpemVPdmVycmlkZQorLS0gUnVubmluZyB0ZXN0IGNh
c2U6IFNjcmVlblNpemVPdmVycmlkZU92ZXJyaWRlCitDdXJyZW50IHNjcmVlbiBzaXplOiAxMDI0
eDc2OAorUEFTUzogQm9keSBzaG91bGQgYmUgd2hpdGUKK092ZXJyaWRpbmcgc2NyZWVuIHNpemUg
dG8gMTAwMHg1MDAKK1BBU1M6IERlZmF1bHQgc2NyZWVuIHdpZHRoIHNob3VsZCBiZSAxMDAwCitQ
QVNTOiBEZWZhdWx0IHNjcmVlbiBoZWlnaHQgc2hvdWxkIGJlIDUwMAorUEFTUzogQm9keSBzaG91
bGQgYmUgbGlnaHRibHVlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9p
bnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVPdmVycmlkZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NiNTA2NzFiMWM0YTk3YWUxZTMwMjY4MzA5NTU2NGY0
NjRjOTQ5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9pbnNw
ZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBQYWdlLnNldFNjcmVlblNpemVPdmVycmlk
ZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFNjcmVlblNpemVPdmVycmlkZU92ZXJyaWRlCitDdXJy
ZW50IHNjcmVlbiBzaXplOiAxOTIweDEwODAKK1BBU1M6IEJvZHkgc2hvdWxkIGJlIHdoaXRlCitP
dmVycmlkaW5nIHNjcmVlbiBzaXplIHRvIDEwMDB4NTAwCitQQVNTOiBEZWZhdWx0IHNjcmVlbiB3
aWR0aCBzaG91bGQgYmUgMTAwMAorUEFTUzogRGVmYXVsdCBzY3JlZW4gaGVpZ2h0IHNob3VsZCBi
ZSA1MDAKK1BBU1M6IEJvZHkgc2hvdWxkIGJlIGxpZ2h0Ymx1ZQorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402214</attachid>
            <date>2020-06-18 09:52:18 -0700</date>
            <delta_ts>2020-06-22 02:16:36 -0700</delta_ts>
            <desc>Additional patch for the WebInspector UI</desc>
            <filename>0001-WebInspectorUI-proof-of-concept-for-screen-size-over.patch</filename>
            <type>text/plain</type>
            <size>11149</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA3M2I0ZmVhMDE1NGU5OGE2YTk3ZTcyYmZkNmI1M2FiY2MxMzUyZjdmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDE2IEp1biAyMDIwIDE2OjIyOjU5ICswMTAwClN1YmplY3Q6IFtQQVRDSCB4
c2VydmVyXSBXZWJJbnNwZWN0b3JVSTogcHJvb2Ytb2YtY29uY2VwdCBmb3Igc2NyZWVuIHNpemUK
IG92ZXJyaWRlCgotLS0KIC4uLi9pbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uICAgICAgICAg
ICAgICB8ICAgNCArLQogLi4uL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNw
cCAgIHwgIDE1ICsrLQogLi4uL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50Lmgg
ICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwICAgICAgICAgICAgICAg
ICAgfCAgMTAgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oICAgICAgICAgICAgICAgICAg
ICB8ICAgNiArLQogLi4uL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgICAgICAgICAgICAg
IHwgICAzICsKIC4uLi9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcyB8
IDExNyArKysrKysrKysrKysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgMTQzIGluc2VydGlvbnMo
KyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9QYWdlLmpzb24KaW5kZXggNDNiZmU3MDgzNDJlLi45NGQzZDNkZDJkZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUGFn
ZS5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUGFn
ZS5qc29uCkBAIC0zMTAsOCArMzEwLDggQEAKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJP
dmVycmlkZXMgc2NyZWVuIHNpemUgd2l0aCBwcm92aWRlZCB2YWx1ZXMuIiwKICAgICAgICAgICAg
ICJ0YXJnZXRUeXBlcyI6IFsicGFnZSJdLAogICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0g
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3aWR0aCIsICJ0eXBlIjogImludGVnZXIiLCAiZGVz
Y3JpcHRpb24iOiAiU2NyZWVuIHdpZHRoIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
aGVpZ2h0IiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJTY3JlZW4gaGVpZ2h0
IiB9CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3aWR0aCIsICJ0eXBlIjogImludGVnZXIi
LCAiZGVzY3JpcHRpb24iOiAiU2NyZWVuIHdpZHRoIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGVpZ2h0IiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNj
cmlwdGlvbiI6ICJTY3JlZW4gaGVpZ2h0IiwgIm9wdGlvbmFsIjogdHJ1ZSB9CiAgICAgICAgICAg
ICBdCiAgICAgICAgIH0KICAgICBdLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDU4Y2Y1OTYwMmRiNi4uZmI5
NTM0YjQ5ZGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC0xMDg3LDE0ICsxMDg3LDIxIEBAIHZvaWQgSW5z
cGVjdG9yUGFnZUFnZW50OjphcmNoaXZlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgU3RyaW5n
KiBkYXRhKQogfQogI2VuZGlmCiAKLXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpzZXRTY3JlZW5T
aXplT3ZlcnJpZGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgd2lkdGgsIGludCBoZWln
aHQpCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6c2V0U2NyZWVuU2l6ZU92ZXJyaWRlKEVycm9y
U3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgaW50KiB3aWR0aCwgY29uc3QgaW50KiBoZWlnaHQp
CiB7Ci0gICAgaWYgKHdpZHRoIDw9IDAgfHwgaGVpZ2h0IDw9IDApIHsKLSAgICAgICAgZXJyb3JT
dHJpbmcgPSAiU2NyZWVuIHNpemUgb3ZlcnJpZGUgc2hvdWxkIGJlIHBvc2l0aXZlIGludGVnZXJz
Il9zOworICAgIGlmICh3aWR0aCAmJiAqd2lkdGggPD0gMCkgeworICAgICAgICBlcnJvclN0cmlu
ZyA9ICJTY3JlZW4gd2lkdGggb3ZlcnJpZGUgc2hvdWxkIGJlIGEgcG9zaXRpdmUgaW50ZWdlciJf
czsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1faW5zcGVjdGVkUGFnZS5zZXRPdmVy
cmlkZVNjcmVlblNpemUobWFrZU9wdGlvbmFsKEZsb2F0U2l6ZSh3aWR0aCwgaGVpZ2h0KSkpOwor
ICAgIGlmIChoZWlnaHQgJiYgKmhlaWdodCA8PSAwKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0g
IlNjcmVlbiBoZWlnaHQgb3ZlcnJpZGUgc2hvdWxkIGJlIGEgcG9zaXRpdmUgaW50ZWdlciJfczsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIE9wdGlvbmFsPGludD4gd2lkdGhPdmVycmlk
ZSA9IHdpZHRoID8gbWFrZU9wdGlvbmFsKCp3aWR0aCkgOiBXVEY6Om51bGxvcHQ7CisgICAgT3B0
aW9uYWw8aW50PiBoZWlnaHRPdmVycmlkZSA9IGhlaWdodCA/IG1ha2VPcHRpb25hbCgqaGVpZ2h0
KSA6IFdURjo6bnVsbG9wdDsKKyAgICBtX2luc3BlY3RlZFBhZ2Uuc2V0T3ZlcnJpZGVTY3JlZW5T
aXplKHdpZHRoT3ZlcnJpZGUsIGhlaWdodE92ZXJyaWRlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yUGFnZUFnZW50LmgKaW5kZXggMGIzM2Q4NWUwNzI4Li43ZDNmYzFhMjA0ZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQu
aApAQCAtMTIyLDcgKzEyMiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFyY2hpdmUoRXJyb3JTdHJp
bmcmLCBTdHJpbmcqIGRhdGEpIG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICB2b2lkIHNldFNjcmVl
blNpemVPdmVycmlkZShFcnJvclN0cmluZyYsIGludCB3aWR0aCwgaW50IGhlaWdodCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzZXRTY3JlZW5TaXplT3ZlcnJpZGUoRXJyb3JTdHJpbmcmLCBjb25zdCBp
bnQqIHdpZHRoLCBjb25zdCBpbnQqIGhlaWdodCkgb3ZlcnJpZGU7CiAKICAgICAvLyBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIGRvbUNvbnRlbnRFdmVudEZpcmVkKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAppbmRleCBjNDU5MGYzOWM0NWEuLmU1ZWU3ZDljZTU5MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCkBAIC00MzIsMTUgKzQzMiwxNyBAQCB2b2lkIFBhZ2U6OnNldE92ZXJyaWRlVmlld3Bv
cnRBcmd1bWVudHMoY29uc3QgT3B0aW9uYWw8Vmlld3BvcnRBcmd1bWVudHM+JiB2aWV3cAogCiBG
bG9hdFNpemUgUGFnZTo6c2NyZWVuU2l6ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fb3ZlcnJp
ZGVTY3JlZW5TaXplLnZhbHVlT3Ioc2NyZWVuUmVjdChtYWluRnJhbWUoKS52aWV3KCkpLnNpemUo
KSk7CisgICAgY29uc3QgYXV0byYgcmVhbFNpemUgPSBzY3JlZW5SZWN0KG1haW5GcmFtZSgpLnZp
ZXcoKSkuc2l6ZSgpOworICAgIHJldHVybiBGbG9hdFNpemUobV9vdmVycmlkZVNjcmVlbldpZHRo
LnZhbHVlT3IocmVhbFNpemUud2lkdGgoKSksIG1fb3ZlcnJpZGVTY3JlZW5IZWlnaHQudmFsdWVP
cihyZWFsU2l6ZS5oZWlnaHQoKSkpOwogfQogCi12b2lkIFBhZ2U6OnNldE92ZXJyaWRlU2NyZWVu
U2l6ZShPcHRpb25hbDxGbG9hdFNpemU+IHNpemUpCit2b2lkIFBhZ2U6OnNldE92ZXJyaWRlU2Ny
ZWVuU2l6ZShPcHRpb25hbDxpbnQ+IHdpZHRoLCBPcHRpb25hbDxpbnQ+IGhlaWdodCkKIHsKLSAg
ICBpZiAoc2l6ZSA9PSBtX292ZXJyaWRlU2NyZWVuU2l6ZSkKKyAgICBpZiAod2lkdGggPT0gbV9v
dmVycmlkZVNjcmVlbldpZHRoICYmIGhlaWdodCA9PSBtX292ZXJyaWRlU2NyZWVuSGVpZ2h0KQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtX292ZXJyaWRlU2NyZWVuU2l6ZSA9IHNpemU7CisgICAg
bV9vdmVycmlkZVNjcmVlbldpZHRoID0gd2lkdGg7CisgICAgbV9vdmVycmlkZVNjcmVlbkhlaWdo
dCA9IGhlaWdodDsKICAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBtYWluRnJhbWUoKS5kb2N1bWVu
dCgpKQogICAgICAgICBkb2N1bWVudC0+dXBkYXRlVmlld3BvcnRBcmd1bWVudHMoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKaW5kZXggZmJhMDU5YzJlY2NlLi5jMDhhYzM4MjlmNGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CkBAIC0xOTYsNyArMTk2LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
T3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBPcHRpb25hbDxWaWV3cG9ydEFyZ3VtZW50
cz4mKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIEZsb2F0U2l6ZSBzY3JlZW5TaXplKCkgY29uc3Q7
Ci0gICAgdm9pZCBzZXRPdmVycmlkZVNjcmVlblNpemUoT3B0aW9uYWw8RmxvYXRTaXplPik7Cisg
ICAgdm9pZCBzZXRPdmVycmlkZVNjcmVlblNpemUoT3B0aW9uYWw8aW50PiwgT3B0aW9uYWw8aW50
Pik7CiAKICAgICBzdGF0aWMgdm9pZCByZWZyZXNoUGx1Z2lucyhib29sIHJlbG9hZCk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgUGx1Z2luRGF0YSYgcGx1Z2luRGF0YSgpOwpAQCAtMTA0Miw4ICsxMDQy
LDggQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgT3B0aW9uYWw8Vmlld3BvcnRBcmd1bWVudHM+
IG1fb3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50czsKLSAgICBPcHRpb25hbDxGbG9hdFNpemU+IG1f
b3ZlcnJpZGVTY3JlZW5TaXplOwotCisgICAgT3B0aW9uYWw8aW50PiBtX292ZXJyaWRlU2NyZWVu
V2lkdGg7CisgICAgT3B0aW9uYWw8aW50PiBtX292ZXJyaWRlU2NyZWVuSGVpZ2h0OwogCiAjaWYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBS
ZWZQdHI8RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcj4gbV9kZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2Fs
aXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggMDUy
YzQzYWYyMDdkLi41MDYzNDhmMTY3M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5q
cwpAQCAtOTAsNiArOTAsOSBAQCBsb2NhbGl6ZWRTdHJpbmdzWyIsICJdID0gIiwgIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIjAgQ29uc29sZSBlcnJvcnMiXSA9ICIwIENvbnNvbGUgZXJyb3JzIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIjAgQ29uc29sZSB3YXJuaW5ncyJdID0gIjAgQ29uc29sZSB3YXJuaW5n
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyIxIG1hdGNoIl0gPSAiMSBtYXRjaCI7Citsb2NhbGl6ZWRT
dHJpbmdzWyIxMDgwUCJdID0gIjEwODBQIjsKK2xvY2FsaXplZFN0cmluZ3NbIjcyMFAiXSA9ICI3
MjBQIjsKK2xvY2FsaXplZFN0cmluZ3NbIlNjcmVlbiBzaXplOiJdID0gIlNjcmVlbiBzaXplOiI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyIyRCJdID0gIjJEIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFjY2Vz
c2liaWxpdHkiXSA9ICJBY2Nlc3NpYmlsaXR5IjsKIGxvY2FsaXplZFN0cmluZ3NbIkFjdGlvbiJd
ID0gIkFjdGlvbiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9CYXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
YXNlL01haW4uanMKaW5kZXggYmM2MTI5ZDUzMDZmLi4xM2VmYzlkYjI3MWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKQEAgLTE5NCw2
ICsxOTQsNyBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgV0kudmlzaWJsZSA9IGZhbHNl
OwogICAgIFdJLl93aW5kb3dLZXlkb3duTGlzdGVuZXJzID0gW107CiAgICAgV0kuX292ZXJyaWRl
bkRldmljZVVzZXJBZ2VudCA9IG51bGw7CisgICAgV0kuX292ZXJyaWRlbkRldmljZVNjcmVlblNp
emUgPSBudWxsOwogICAgIFdJLl9vdmVycmlkZW5EZXZpY2VTZXR0aW5ncyA9IG5ldyBNYXA7CiAK
ICAgICAvLyBUYXJnZXRzLgpAQCAtMjI2MCw2ICsyMjYxLDEyMiBAQCBXSS5faGFuZGxlRGV2aWNl
U2V0dGluZ3NUYWJCYXJCdXR0b25DbGlja2VkID0gZnVuY3Rpb24oZXZlbnQpCiAgICAgICAgIH0K
ICAgICB9KTsKIAorICAgIGZ1bmN0aW9uIGFwcGx5T3ZlcnJpZGRlblNjcmVlblNpemUodmFsdWUs
IGZvcmNlKSB7CisgICAgICAgIGlmICh2YWx1ZSA9PT0gV0kuX292ZXJyaWRlbkRldmljZVNjcmVl
blNpemUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKCFmb3JjZSAmJiAoIXZh
bHVlIHx8IHZhbHVlID09PSAiZGVmYXVsdCIpKSB7CisgICAgICAgICAgICB0YXJnZXQuUGFnZUFn
ZW50LnNldFNjcmVlblNpemVPdmVycmlkZSgoZXJyb3IpID0+IHsKKyAgICAgICAgICAgICAgICBp
ZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICBXSS5fb3ZlcnJpZGVuRGV2aWNlU2NyZWVuU2l6ZSA9IG51bGw7CisgICAgICAgICAg
ICAgICAgdXBkYXRlQWN0aXZhdGVkU3RhdGUoKTsKKyAgICAgICAgICAgICAgICB0YXJnZXQuUGFn
ZUFnZW50LnJlbG9hZCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBsZXQgdG9rZW5zID0gdmFsdWUuc3BsaXQoIngiKTsKKyAgICAgICAgICAgIGxldCB3
aWR0aCA9IHBhcnNlSW50KHRva2Vuc1swXSk7CisgICAgICAgICAgICBsZXQgaGVpZ2h0ID0gcGFy
c2VJbnQodG9rZW5zWzFdKTsKKyAgICAgICAgICAgIHRhcmdldC5QYWdlQWdlbnQuc2V0U2NyZWVu
U2l6ZU92ZXJyaWRlKHdpZHRoLCBoZWlnaHQsIChlcnJvcikgPT4geworICAgICAgICAgICAgICAg
IGlmIChlcnJvcikgeworICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTsK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICAgIFdJLl9vdmVycmlkZW5EZXZpY2VTY3JlZW5TaXplID0gdmFsdWU7CisgICAgICAg
ICAgICAgICAgdXBkYXRlQWN0aXZhdGVkU3RhdGUoKTsKKyAgICAgICAgICAgICAgICB0YXJnZXQu
UGFnZUFnZW50LnJlbG9hZCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisK
KworICAgIGxldCBzY3JlZW5TaXplUm93ID0gdGFibGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgidHIiKSk7CisKKyAgICBsZXQgc2NyZWVuU2l6ZVRpdGxlID0gc2NyZWVuU2l6
ZVJvdy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpKTsKKyAgICBzY3Jl
ZW5TaXplVGl0bGUudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiU2NyZWVuIHNpemU6Iik7CisK
KyAgICBsZXQgc2NyZWVuU2l6ZVZhbHVlID0gc2NyZWVuU2l6ZVJvdy5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpKTsKKyAgICBzY3JlZW5TaXplVmFsdWUuY2xhc3NMaXN0
LmFkZCgic2NyZWVuLXNpemUiKTsKKworICAgIGxldCBzY3JlZW5TaXplVmFsdWVTZWxlY3QgPSBz
Y3JlZW5TaXplVmFsdWUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2VsZWN0
IikpOworCisgICAgbGV0IHNjcmVlblNpemVWYWx1ZUlucHV0ID0gbnVsbDsKKworICAgIGNvbnN0
IHNjcmVlblNpemVzID0gWworICAgICAgICBbCisgICAgICAgICAgICB7IG5hbWU6IFdJLlVJU3Ry
aW5nKCJEZWZhdWx0IiksIHZhbHVlOiAiZGVmYXVsdCIgfSwKKyAgICAgICAgXSwKKyAgICAgICAg
WworICAgICAgICAgICAgeyBuYW1lOiBXSS5VSVN0cmluZygiMTA4MFAiKSwgdmFsdWU6ICIxOTIw
eDEwODAifSwKKyAgICAgICAgICAgIHsgbmFtZTogV0kuVUlTdHJpbmcoIjcyMFAiKSwgdmFsdWU6
ICIxMjgweDcyMCJ9CisgICAgICAgIF0sCisgICAgICAgIFsKKyAgICAgICAgICAgIHsgbmFtZTog
V0kuVUlTdHJpbmcoIk90aGVyXHUyMDI2IiksIHZhbHVlOiAib3RoZXIiIH0sCisgICAgICAgIF0s
CisgICAgXTsKKworICAgIGxldCBzZWxlY3RlZFNjcmVlblNpemVPcHRpb25FbGVtZW50ID0gbnVs
bDsKKworICAgIGZvciAobGV0IGdyb3VwIG9mIHNjcmVlblNpemVzKSB7CisgICAgICAgIGZvciAo
bGV0IHtuYW1lLCB2YWx1ZX0gb2YgZ3JvdXApIHsKKyAgICAgICAgICAgIGxldCBvcHRpb25FbGVt
ZW50ID0gc2NyZWVuU2l6ZVZhbHVlU2VsZWN0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoIm9wdGlvbiIpKTsKKyAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQudmFsdWUgPSB2YWx1
ZTsKKyAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBuYW1lOworCisgICAg
ICAgICAgICBpZiAodmFsdWUgPT09IFdJLl9vdmVycmlkZW5EZXZpY2VTY3JlZW5TaXplKQorICAg
ICAgICAgICAgICAgIHNlbGVjdGVkU2NyZWVuU2l6ZU9wdGlvbkVsZW1lbnQgPSBvcHRpb25FbGVt
ZW50OworICAgICAgICB9CisKKyAgICAgICAgaWYgKGdyb3VwICE9PSBzY3JlZW5TaXplcy5sYXN0
VmFsdWUpCisgICAgICAgICAgICBzY3JlZW5TaXplVmFsdWVTZWxlY3QuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaHIiKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2hvd1Nj
cmVlblNpemVJbnB1dCgpIHsKKyAgICAgICAgaWYgKHNjcmVlblNpemVWYWx1ZUlucHV0KQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHNjcmVlblNpemVWYWx1ZUlucHV0ID0gc2NyZWVu
U2l6ZVZhbHVlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IikpOwor
ICAgICAgICBzY3JlZW5TaXplVmFsdWVJbnB1dC5zcGVsbGNoZWNrID0gZmFsc2U7CisgICAgICAg
IGxldCBkZWZhdWx0U2l6ZSA9IHdpbmRvdy5zY3JlZW4ud2lkdGggKyAieCIgKyB3aW5kb3cuc2Ny
ZWVuLmhlaWdodDsKKyAgICAgICAgc2NyZWVuU2l6ZVZhbHVlSW5wdXQudmFsdWUgPSBzY3JlZW5T
aXplVmFsdWVJbnB1dC5wbGFjZWhvbGRlciA9IFdJLl9vdmVycmlkZW5EZXZpY2VTY3JlZW5TaXpl
IHx8IGRlZmF1bHRTaXplOworICAgICAgICBzY3JlZW5TaXplVmFsdWVJbnB1dC5hZGRFdmVudExp
c3RlbmVyKCJjbGljayIsIChjbGlja0V2ZW50KSA9PiB7CisgICAgICAgICAgICBjbGlja0V2ZW50
LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgIH0pOworICAgICAgICBzY3JlZW5TaXplVmFsdWVJ
bnB1dC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCAoaW5wdXRFdmVudCkgPT4geworICAgICAg
ICAgICAgYXBwbHlPdmVycmlkZGVuU2NyZWVuU2l6ZShzY3JlZW5TaXplVmFsdWVJbnB1dC52YWx1
ZSwgdHJ1ZSk7CisgICAgICAgIH0pOworCisgICAgICAgIFdJLl9kZXZpY2VTZXR0aW5nc1BvcG92
ZXIudXBkYXRlKCk7CisgICAgfQorCisgICAgaWYgKHNlbGVjdGVkU2NyZWVuU2l6ZU9wdGlvbkVs
ZW1lbnQpCisgICAgICAgIHNjcmVlblNpemVWYWx1ZVNlbGVjdC52YWx1ZSA9IHNlbGVjdGVkU2Ny
ZWVuU2l6ZU9wdGlvbkVsZW1lbnQudmFsdWU7CisgICAgZWxzZSBpZiAoV0kuX292ZXJyaWRlbkRl
dmljZVNjcmVlblNpemUpIHsKKyAgICAgICAgc2NyZWVuU2l6ZVZhbHVlU2VsZWN0LnZhbHVlID0g
Im90aGVyIjsKKyAgICAgICAgc2hvd1NjcmVlblNpemVJbnB1dCgpOworICAgIH0KKworICAgIHNj
cmVlblNpemVWYWx1ZVNlbGVjdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCAoKSA9PiB7Cisg
ICAgICAgIGxldCB2YWx1ZSA9IHNjcmVlblNpemVWYWx1ZVNlbGVjdC52YWx1ZTsKKyAgICAgICAg
aWYgKHZhbHVlID09PSAib3RoZXIiKSB7CisgICAgICAgICAgICBzaG93U2NyZWVuU2l6ZUlucHV0
KCk7CisgICAgICAgICAgICBzY3JlZW5TaXplVmFsdWVJbnB1dC5zZWxlY3QoKTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzY3JlZW5TaXplVmFsdWVJbnB1dCkgeworICAgICAg
ICAgICAgICAgIHNjcmVlblNpemVWYWx1ZUlucHV0LnJlbW92ZSgpOworICAgICAgICAgICAgICAg
IHNjcmVlblNpemVWYWx1ZUlucHV0ID0gbnVsbDsKKworICAgICAgICAgICAgICAgIFdJLl9kZXZp
Y2VTZXR0aW5nc1BvcG92ZXIudXBkYXRlKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGFwcGx5T3ZlcnJpZGRlblNjcmVlblNpemUodmFsdWUpOworICAgICAgICB9CisgICAgfSk7CisK
ICAgICBjb25zdCBzZXR0aW5ncyA9IFsKICAgICAgICAgewogICAgICAgICAgICAgbmFtZTogV0ku
VUlTdHJpbmcoIkRpc2FibGU6IiksCi0tIAoyLjI2LjIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402454</attachid>
            <date>2020-06-22 02:16:42 -0700</date>
            <delta_ts>2020-06-22 09:02:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213242-20200622021640.patch</filename>
            <type>text/plain</type>
            <size>16620</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
YzY5NGQwOTU2ODgzZWEzODQyNzBiZWVhNmE0YWI5ZDllZjRmY2NiLi5kY2FjMzZiMTQ2Yjk0ZDAz
MDA3ODNmYmU4ZmM0ZjA3NjhkMzk2YThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAyMC0wNi0xNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxp
YS5jb20+IGFuZCBQYXZlbCBGZWxkbWFuIDxwYXZlbC5mZWxkbWFuQGdtYWlsLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0aGUg
UGFnZSBhZ2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEzMjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uOiBBZGQgYSBuZXcgc2V0U2NyZWVuU2l6
ZU92ZXJyaWRlIEFQSSBpbiB0aGUgUGFnZSBhZ2VudC4KKwogMjAyMC0wNi0xOCAgTWFyayBMYW0g
IDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5pZnkgQml0bWFwIG1hdGggbG9vcHMg
aW4gTWFya2VkQmxvY2s6OkhhbmRsZTo6c3BlY2lhbGl6ZWRTd2VlcCgpLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGNkZjk2ZmZhNDM0YjYwNzE2NjA1MzAyOWY3NDZmMTliZTBmMGIyMDMuLmMyNDIzZDRkZDlhNDY2
N2FjYzMwNzQ4MTg2ZmE3M2QwMzMyZTI1MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAor
MjAyMC0wNi0xNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+IGFuZCBQ
YXZlbCBGZWxkbWFuIDxwYXZlbC5mZWxkbWFuQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBBZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0aGUgUGFnZSBhZ2VudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMjQyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgdGhl
IFdlYkluc3BlY3RvciBQYWdlIGFnZW50IHRvIG92ZXJyaWRlIHRoZSBTY3JlZW4gc2l6ZS4gVGhp
cyBpcyB1c2VmdWwgZm9yIGF1dG9tYXRpb24KKyAgICAgICAgcHVycG9zZXMuCisKKyAgICAgICAg
VGVzdDogaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLmh0bWwKKworICAgICAg
ICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDogVXNlIHRoZSBQYWdlOjpzY3JlZW5TaXpl
KCkgbWV0aG9kIHRvIHF1ZXJ5IHRoZSBzY3JlZW4gZGltZW5zaW9ucy4KKyAgICAgICAgKFdlYkNv
cmU6OmRldmljZUFzcGVjdFJhdGlvRXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6ZGV2aWNl
SGVpZ2h0RXZhbHVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6ZGV2aWNlV2lkdGhFdmFsdWF0ZSk6
CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpzZXRTY3JlZW5TaXplT3ZlcnJpZGUp
OiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV3IEFQSSBob29raW5nCisgICAgICAgIGludG8gdGhl
IFdlYkNvcmU6OlBhZ2U6OnNldE92ZXJyaWRlU2NyZWVuU2l6ZSgpIG1ldGhvZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzY3JlZW5TaXplKTogTmV3IGVudHJ5
IHBvaW50IHRvIHF1ZXJ5IHRoZSBzY3JlZW4gc2l6ZSwgdGhpcyB0YWtlcyBpbnRvCisgICAgICAg
IGFjY291bnQgdGhlIG9wdGlvbmFsIG92ZXJyaWRlbiBzY3JlZW4gc2l6ZS4KKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OnNldE92ZXJyaWRlU2NyZWVuU2l6ZSk6IEFQSSB1c2VkIGJ5IHRoZSBQYWdl
IGFnZW50IHRvIGZha2UgYSBuZXcgc2NyZWVuIHNpemUuCisgICAgICAgICogcGFnZS9QYWdlLmg6
CisgICAgICAgICogcGFnZS9TY3JlZW4uY3BwOiBVc2UgdGhlIFBhZ2U6OnNjcmVlblNpemUoKSBt
ZXRob2QgdG8gcXVlcnkgdGhlIHNjcmVlbiBkaW1lbnNpb25zLgorICAgICAgICAoV2ViQ29yZTo6
U2NyZWVuOjpoZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuOjp3aWR0aCBj
b25zdCk6CisKIDIwMjAtMDYtMTAgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW1dlYlhSXSB1bnNpZ25lZCBsb25nIGluIElETCBzaG91bGQgYmUg
dHJhbnNsYXRlZCBhcyB1bnNpZ25lZCBpbiBDKysgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb24gYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1BhZ2UuanNvbgppbmRleCAzYjhmYTE4YmQ3ZThk
OTVkN2U4Zjk1YjQ0MmFmYzYzZTU1MGNlNjNhLi45NGQzZDNkZDJkZmI5MGYyOTdhMzU2YmE4Mjlm
NGRkYmFmZGY2ZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3Byb3RvY29sL1BhZ2UuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3Byb3RvY29sL1BhZ2UuanNvbgpAQCAtMzA0LDYgKzMwNCwxNSBAQAogICAgICAgICAgICAgInJl
dHVybnMiOiBbCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkYXRhIiwgInR5cGUiOiAic3Ry
aW5nIiwgImRlc2NyaXB0aW9uIjogIkJhc2U2NC1lbmNvZGVkIHdlYiBhcmNoaXZlLiIgfQogICAg
ICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJz
ZXRTY3JlZW5TaXplT3ZlcnJpZGUiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk92ZXJy
aWRlcyBzY3JlZW4gc2l6ZSB3aXRoIHByb3ZpZGVkIHZhbHVlcy4iLAorICAgICAgICAgICAgInRh
cmdldFR5cGVzIjogWyJwYWdlIl0sCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIndpZHRoIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlw
dGlvbiI6ICJTY3JlZW4gd2lkdGgiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJoZWlnaHQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjog
IlNjcmVlbiBoZWlnaHQiLCAib3B0aW9uYWwiOiB0cnVlIH0KKyAgICAgICAgICAgIF0KICAgICAg
ICAgfQogICAgIF0sCiAgICAgImV2ZW50cyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCA4MTE4YjdhYjNjNTBiM2NlZDgxMjBmYzEwNmRjZTljNzMx
NDFhZmU0Li4yYWVhM2JhMDdlYWUyYTIzYjYzNjQwNzRkMjUzMzU2MTY1NzU3NTQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC0zODgsNyArMzg4LDcg
QEAgc3RhdGljIGJvb2wgZGV2aWNlQXNwZWN0UmF0aW9FdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUs
IGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2kKICAgICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAotICAgIGF1dG8gc2l6ZSA9IHNjcmVlblJlY3QoZnJhbWUubWFpbkZyYW1lKCku
dmlldygpKS5zaXplKCk7CisgICAgYXV0byBzaXplID0gZnJhbWUucGFnZSgpLT5zY3JlZW5TaXpl
KCk7CiAgICAgYm9vbCByZXN1bHQgPSBjb21wYXJlQXNwZWN0UmF0aW9WYWx1ZSh2YWx1ZSwgc2l6
ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCBvcCk7CiAgICAgTE9HX1dJVEhfU1RSRUFNKE1lZGlh
UXVlcmllcywgc3RyZWFtIDw8ICIgIGRldmljZUFzcGVjdFJhdGlvRXZhbHVhdGU6ICIgPDwgb3Ag
PDwgIiAiIDw8IGFzcGVjdFJhdGlvVmFsdWVBc1N0cmluZyh2YWx1ZSkgPDwgIiBhY3R1YWwgc2Ny
ZWVuIHNpemUgIiA8PCBzaXplIDw8ICI6ICIgPDwgcmVzdWx0KTsKICAgICByZXR1cm4gcmVzdWx0
OwpAQCAtNTA2LDcgKzUwNiw3IEBAIHN0YXRpYyBib29sIGRldmljZUhlaWdodEV2YWx1YXRlKENT
U1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0CiAgICAgaWYgKCF2
YWx1ZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaW50IGxlbmd0aDsKLSAgICBhdXRvIGhl
aWdodCA9IHNjcmVlblJlY3QoZnJhbWUubWFpbkZyYW1lKCkudmlldygpKS5oZWlnaHQoKTsKKyAg
ICBhdXRvIGhlaWdodCA9IGZyYW1lLnBhZ2UoKS0+c2NyZWVuU2l6ZSgpLmhlaWdodCgpOwogICAg
IGlmICghY29tcHV0ZUxlbmd0aCh2YWx1ZSwgIWZyYW1lLmRvY3VtZW50KCktPmluUXVpcmtzTW9k
ZSgpLCBjb252ZXJzaW9uRGF0YSwgbGVuZ3RoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBA
IC01MjEsOCArNTIxLDEwIEBAIHN0YXRpYyBib29sIGRldmljZVdpZHRoRXZhbHVhdGUoQ1NTVmFs
dWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhCiAgICAgLy8gYXNzdW1l
IGlmIHdlIGhhdmUgYSBkZXZpY2UsIGFzc3VtZSBub24temVybwogICAgIGlmICghdmFsdWUpCiAg
ICAgICAgIHJldHVybiB0cnVlOworICAgIGlmICghZnJhbWUubWFpbkZyYW1lKCkudmlldygpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaW50IGxlbmd0aDsKLSAgICBhdXRvIHdpZHRoID0g
c2NyZWVuUmVjdChmcmFtZS5tYWluRnJhbWUoKS52aWV3KCkpLndpZHRoKCk7CisgICAgYXV0byB3
aWR0aCA9IGZyYW1lLnBhZ2UoKS0+c2NyZWVuU2l6ZSgpLndpZHRoKCk7CiAgICAgaWYgKCFjb21w
dXRlTGVuZ3RoKHZhbHVlLCAhZnJhbWUuZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCksIGNvbnZl
cnNpb25EYXRhLCBsZW5ndGgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApp
bmRleCA1MzllODEwNWI2NmU3YjJhNmEwNTU3MWExZTFjOGNkNmJkZjI3YzkwLi5mYjk1MzRiNDlk
YWQyN2IzY2I0OTdjZDUyZWY0NzUxYjExNDMxMzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC0xMDg3LDQg
KzEwODcsMjEgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmFyY2hpdmUoRXJyb3JTdHJpbmcm
IGVycm9yU3RyaW5nLCBTdHJpbmcqIGRhdGEpCiB9CiAjZW5kaWYKIAordm9pZCBJbnNwZWN0b3JQ
YWdlQWdlbnQ6OnNldFNjcmVlblNpemVPdmVycmlkZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcs
IGNvbnN0IGludCogd2lkdGgsIGNvbnN0IGludCogaGVpZ2h0KQoreworICAgIGlmICh3aWR0aCAm
JiAqd2lkdGggPD0gMCkgeworICAgICAgICBlcnJvclN0cmluZyA9ICJTY3JlZW4gd2lkdGggb3Zl
cnJpZGUgc2hvdWxkIGJlIGEgcG9zaXRpdmUgaW50ZWdlciJfczsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmIChoZWlnaHQgJiYgKmhlaWdodCA8PSAwKSB7CisgICAgICAgIGVycm9y
U3RyaW5nID0gIlNjcmVlbiBoZWlnaHQgb3ZlcnJpZGUgc2hvdWxkIGJlIGEgcG9zaXRpdmUgaW50
ZWdlciJfczsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIE9wdGlvbmFsPGludD4gd2lk
dGhPdmVycmlkZSA9IHdpZHRoID8gbWFrZU9wdGlvbmFsKCp3aWR0aCkgOiBXVEY6Om51bGxvcHQ7
CisgICAgT3B0aW9uYWw8aW50PiBoZWlnaHRPdmVycmlkZSA9IGhlaWdodCA/IG1ha2VPcHRpb25h
bCgqaGVpZ2h0KSA6IFdURjo6bnVsbG9wdDsKKyAgICBtX2luc3BlY3RlZFBhZ2Uuc2V0T3ZlcnJp
ZGVTY3JlZW5TaXplKHdpZHRoT3ZlcnJpZGUsIGhlaWdodE92ZXJyaWRlKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yUGFnZUFnZW50LmgKaW5kZXggM2JjZDA0ODdjZmM4NzY2YmFhMDFjNzgwNDE3
M2ExNTc0N2I0N2IyZC4uN2QzZmMxYTIwNGQ3OGRkYjMzNzYwNWM2YTFhMDI5YmFkM2UxYTk0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdl
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBh
Z2VBZ2VudC5oCkBAIC0xMjIsNiArMTIyLDggQEAgcHVibGljOgogICAgIHZvaWQgYXJjaGl2ZShF
cnJvclN0cmluZyYsIFN0cmluZyogZGF0YSkgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZvaWQg
c2V0U2NyZWVuU2l6ZU92ZXJyaWRlKEVycm9yU3RyaW5nJiwgY29uc3QgaW50KiB3aWR0aCwgY29u
c3QgaW50KiBoZWlnaHQpIG92ZXJyaWRlOworCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uCiAgICAgdm9pZCBkb21Db250ZW50RXZlbnRGaXJlZCgpOwogICAgIHZvaWQgbG9hZEV2ZW50
RmlyZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGRkYWIwNmQ4YzEzNThlMTYwZDdiMjVjZjNk
OTZjYWI5MGRjMjkxYTYuLmU1ZWU3ZDljZTU5MDU4ZmExZTA0YjE4MTFlNmQ3NDkwMjcwM2IwN2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtOTAsNiArOTAsNyBAQAogI2luY2x1ZGUgIlBlcmZvcm1h
bmNlTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlTW9uaXRvci5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIlBsYXRmb3Jt
U2NyZWVuLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiUGx1
Z0luQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgpAQCAtNDI5LDYgKzQzMCwyMyBA
QCB2b2lkIFBhZ2U6OnNldE92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMoY29uc3QgT3B0aW9uYWw8
Vmlld3BvcnRBcmd1bWVudHM+JiB2aWV3cAogICAgICAgICBkb2N1bWVudC0+dXBkYXRlVmlld3Bv
cnRBcmd1bWVudHMoKTsKIH0KIAorRmxvYXRTaXplIFBhZ2U6OnNjcmVlblNpemUoKSBjb25zdAor
eworICAgIGNvbnN0IGF1dG8mIHJlYWxTaXplID0gc2NyZWVuUmVjdChtYWluRnJhbWUoKS52aWV3
KCkpLnNpemUoKTsKKyAgICByZXR1cm4gRmxvYXRTaXplKG1fb3ZlcnJpZGVTY3JlZW5XaWR0aC52
YWx1ZU9yKHJlYWxTaXplLndpZHRoKCkpLCBtX292ZXJyaWRlU2NyZWVuSGVpZ2h0LnZhbHVlT3Io
cmVhbFNpemUuaGVpZ2h0KCkpKTsKK30KKwordm9pZCBQYWdlOjpzZXRPdmVycmlkZVNjcmVlblNp
emUoT3B0aW9uYWw8aW50PiB3aWR0aCwgT3B0aW9uYWw8aW50PiBoZWlnaHQpCit7CisgICAgaWYg
KHdpZHRoID09IG1fb3ZlcnJpZGVTY3JlZW5XaWR0aCAmJiBoZWlnaHQgPT0gbV9vdmVycmlkZVNj
cmVlbkhlaWdodCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9vdmVycmlkZVNjcmVlbldpZHRo
ID0gd2lkdGg7CisgICAgbV9vdmVycmlkZVNjcmVlbkhlaWdodCA9IGhlaWdodDsKKyAgICBpZiAo
YXV0byogZG9jdW1lbnQgPSBtYWluRnJhbWUoKS5kb2N1bWVudCgpKQorICAgICAgICBkb2N1bWVu
dC0+dXBkYXRlVmlld3BvcnRBcmd1bWVudHMoKTsKK30KKwogU2Nyb2xsaW5nQ29vcmRpbmF0b3Iq
IFBhZ2U6OnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkKIHsKICAgICBpZiAoIW1fc2Nyb2xsaW5nQ29v
cmRpbmF0b3IgJiYgbV9zZXR0aW5ncy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFibGVkKCkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKaW5kZXggMTAxYTI2NWY0NzBjZGI2M2IyNjExZTY0ZDBlMTMxZTM5MmMyMzZk
ZS4uYzA4YWMzODI5ZjRjZDk5NDNkYjMyYmVmNmI4ODcwMzhmZjI4NDEzMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmgKQEAgLTE5NSw2ICsxOTUsOSBAQCBwdWJsaWM6CiAgICAgY29uc3QgT3B0aW9uYWw8Vmlld3Bv
cnRBcmd1bWVudHM+JiBvdmVycmlkZVZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3QgeyByZXR1cm4g
bV9vdmVycmlkZVZpZXdwb3J0QXJndW1lbnRzOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRPdmVycmlkZVZpZXdwb3J0QXJndW1lbnRzKGNvbnN0IE9wdGlvbmFsPFZpZXdwb3J0QXJndW1l
bnRzPiYpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgRmxvYXRTaXplIHNjcmVlblNpemUoKSBjb25z
dDsKKyAgICB2b2lkIHNldE92ZXJyaWRlU2NyZWVuU2l6ZShPcHRpb25hbDxpbnQ+LCBPcHRpb25h
bDxpbnQ+KTsKKwogICAgIHN0YXRpYyB2b2lkIHJlZnJlc2hQbHVnaW5zKGJvb2wgcmVsb2FkKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBQbHVnaW5EYXRhJiBwbHVnaW5EYXRhKCk7CiAgICAgdm9pZCBj
bGVhclBsdWdpbkRhdGEoKTsKQEAgLTEwMzksNiArMTA0Miw4IEBAIHByaXZhdGU6CiAjZW5kaWYK
IAogICAgIE9wdGlvbmFsPFZpZXdwb3J0QXJndW1lbnRzPiBtX292ZXJyaWRlVmlld3BvcnRBcmd1
bWVudHM7CisgICAgT3B0aW9uYWw8aW50PiBtX292ZXJyaWRlU2NyZWVuV2lkdGg7CisgICAgT3B0
aW9uYWw8aW50PiBtX292ZXJyaWRlU2NyZWVuSGVpZ2h0OwogCiAjaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBSZWZQdHI8RGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlcj4gbV9kZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TY3JlZW4uY3BwCmluZGV4IGE5ZDIyOGNhNDA0OTE4ODYwYzQwNjUxOTk0ZGI3
OGExZTc2ZGI1Y2EuLjFmYzNjMzQ1MzA4ZGZlZDgzODRkMWMwMjMzNGYyMDMwZTg3OTM4M2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NjcmVlbi5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJGbG9hdFJl
Y3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlJlc291
cmNlTG9hZE9ic2VydmVyLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgpA
QCAtNTMsNyArNTQsNyBAQCB1bnNpZ25lZCBTY3JlZW46OmhlaWdodCgpIGNvbnN0CiAgICAgICAg
IHJldHVybiAwOwogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLndlYkFQSVN0YXRpc3RpY3NFbmFibGVkKCkpCiAgICAgICAgIFJlc291cmNlTG9hZE9ic2Vy
dmVyOjpzaGFyZWQoKS5sb2dTY3JlZW5BUElBY2Nlc3NlZCgqZnJhbWUtPmRvY3VtZW50KCksIFJl
c291cmNlTG9hZFN0YXRpc3RpY3M6OlNjcmVlbkFQSTo6SGVpZ2h0KTsKLSAgICBsb25nIGhlaWdo
dCA9IHN0YXRpY19jYXN0PGxvbmc+KHNjcmVlblJlY3QoZnJhbWUtPnZpZXcoKSkuaGVpZ2h0KCkp
OworICAgIGxvbmcgaGVpZ2h0ID0gc3RhdGljX2Nhc3Q8bG9uZz4oZnJhbWUtPnBhZ2UoKS0+c2Ny
ZWVuU2l6ZSgpLmhlaWdodCgpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGhl
aWdodCk7CiB9CiAKQEAgLTY0LDcgKzY1LDcgQEAgdW5zaWduZWQgU2NyZWVuOjp3aWR0aCgpIGNv
bnN0CiAgICAgICAgIHJldHVybiAwOwogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLndlYkFQSVN0YXRpc3RpY3NFbmFibGVkKCkpCiAgICAgICAgIFJlc291
cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5sb2dTY3JlZW5BUElBY2Nlc3NlZCgqZnJhbWUtPmRv
Y3VtZW50KCksIFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OlNjcmVlbkFQSTo6V2lkdGgpOwotICAg
IGxvbmcgd2lkdGggPSBzdGF0aWNfY2FzdDxsb25nPihzY3JlZW5SZWN0KGZyYW1lLT52aWV3KCkp
LndpZHRoKCkpOworICAgIGxvbmcgd2lkdGggPSBzdGF0aWNfY2FzdDxsb25nPihmcmFtZS0+cGFn
ZSgpLT5zY3JlZW5TaXplKCkud2lkdGgoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2ln
bmVkPih3aWR0aCk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwYTNmODBkZmM5NTMyN2I0YjljNDA3M2M4Y2E3ZDA1
YzA3MWU5MThlLi4yNDYxMTFiMzc5YzFkYTZjMjNlMDlhMTIwOTFlZWMzYWRkOGRmYTJjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDYtMTYgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFu
ZEBpZ2FsaWEuY29tPiBhbmQgUGF2ZWwgRmVsZG1hbiA8cGF2ZWwuZmVsZG1hbkBnbWFpbC5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIHNldFNjcmVlblNpemVPdmVycmlkZSBBUEkg
dG8gdGhlIFBhZ2UgYWdlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxMzI0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJy
aWRlLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA2LTE5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhm
aWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBVbmlmeSAiZm9udDoiIENTUyBzaG9y
dGhhbmQgdmFsdWVzIGJldHdlZW4gbWFjT1MgYW5kIGlPUyBmYW1pbHkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVPdmVycmlkZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjdmZGE3ZjYzNDk5ZWNmMzM2MWNmZjA0MWE5YmQ5MTQxM2I5ODBkYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVPdmVycmlk
ZS5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhl
YWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c3R5bGU+CisgICAg
ICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLXdpZHRoOiAxMDAwcHgpIHsK
KyAgICAgICAgICAgICBib2R5IHsKKyAgICAgICAgICAgICAgICAgY29sb3I6IGxpZ2h0Ymx1ZTsK
KyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxz
Y3JpcHQ+CisgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkKKyAgICAgICAgIHsKKyAgICAgICAgICAg
ICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlBhZ2Uuc2V0U2Ny
ZWVuU2l6ZU92ZXJyaWRlIik7CisKKyAgICAgICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Cisg
ICAgICAgICAgICAgICAgIG5hbWU6ICJTY3JlZW5TaXplT3ZlcnJpZGVPdmVycmlkZSIsCisgICAg
ICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiVmVyaWZ5IHRoYXQgdGhlIGluc3BlY3RvciBjYW4g
b3ZlcnJpZGUgdGhlIHNjcmVlbiBzaXplLiIsCisgICAgICAgICAgICAgICAgIGFzeW5jIHRlc3Qo
KSB7CisgICAgICAgICAgICAgICAgICAgICBsZXQgb3JpZ2luYWxTY3JlZW5XaWR0aCA9IGF3YWl0
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5zY3JlZW4ud2lkdGhgKTsKKyAg
ICAgICAgICAgICAgICAgICAgIGxldCBvcmlnaW5hbFNjcmVlbkhlaWdodCA9IGF3YWl0IEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5zY3JlZW4uaGVpZ2h0YCk7CisgICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ3VycmVudCBzY3JlZW4gc2l6ZTogIiAr
IG9yaWdpbmFsU2NyZWVuV2lkdGggKyAieCIgKyBvcmlnaW5hbFNjcmVlbkhlaWdodCk7CisKKyAg
ICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50QmFja2dyb3VuZENvbG9yID0gYXdhaXQgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5
KS5jb2xvciIpOworICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVh
bChjdXJyZW50QmFja2dyb3VuZENvbG9yLCAicmdiKDAsIDAsIDApIiwgIkJvZHkgc2hvdWxkIGJl
IHdoaXRlIik7CisKKyAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJPdmVy
cmlkaW5nIHNjcmVlbiBzaXplIHRvIDEwMDB4NTAwIik7CisgICAgICAgICAgICAgICAgICAgICBh
d2FpdCBQYWdlQWdlbnQuc2V0U2NyZWVuU2l6ZU92ZXJyaWRlKDEwMDAsIDUwMCk7CisgICAgICAg
ICAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBsb2NhdGlv
bi5yZWxvYWQoKWApOworCisgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3U2NyZWVuV2lkdGgg
PSBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuc2NyZWVuLndpZHRo
YCk7CisgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG5ld1Nj
cmVlbldpZHRoLCAxMDAwLCAiRGVmYXVsdCBzY3JlZW4gd2lkdGggc2hvdWxkIGJlIDEwMDAiKTsK
KyAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdTY3JlZW5IZWlnaHQgPSBhd2FpdCBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuc2NyZWVuLmhlaWdodGApOworICAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChuZXdTY3JlZW5IZWlnaHQsIDUw
MCwgIkRlZmF1bHQgc2NyZWVuIGhlaWdodCBzaG91bGQgYmUgNTAwIik7CisKKyAgICAgICAgICAg
ICAgICAgICAgIGxldCBuZXdCYWNrZ3JvdW5kQ29sb3IgPSBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2
YWx1YXRlSW5QYWdlKCJnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmNvbG9yIik7CisK
KyAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwobmV3QmFja2dy
b3VuZENvbG9yLCAicmdiKDE3MywgMjE2LCAyMzApIiwgIkJvZHkgc2hvdWxkIGJlIGxpZ2h0Ymx1
ZSIpOworCisgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUmVtb3Zpbmcg
c2NyZWVuIHNpemUgb3ZlcnJpZGUiKTsKKyAgICAgICAgICAgICAgICAgICAgIGF3YWl0IFBhZ2VB
Z2VudC5zZXRTY3JlZW5TaXplT3ZlcnJpZGUoKTsKKyAgICAgICAgICAgICAgICAgICAgIGF3YWl0
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGxvY2F0aW9uLnJlbG9hZCgpYCk7CisKKyAg
ICAgICAgICAgICAgICAgICAgIG5ld1NjcmVlbldpZHRoID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5l
dmFsdWF0ZUluUGFnZShgd2luZG93LnNjcmVlbi53aWR0aGApOworICAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChuZXdTY3JlZW5XaWR0aCwgb3JpZ2luYWxTY3Jl
ZW5XaWR0aCwgIlNjcmVlbiB3aWR0aCBvdmVycmlkZSBzaG91bGQgYmUgcmVtb3ZlZCIpOworICAg
ICAgICAgICAgICAgICAgICAgbmV3U2NyZWVuSGVpZ2h0ID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5l
dmFsdWF0ZUluUGFnZShgd2luZG93LnNjcmVlbi5oZWlnaHRgKTsKKyAgICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwobmV3U2NyZWVuSGVpZ2h0LCBvcmlnaW5hbFNj
cmVlbkhlaWdodCwgIlNjcmVlbiBoZWlnaHQgb3ZlcnJpZGUgc2hvdWxkIGJlIHJlbW92ZWQiKTsK
KyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgV0ku
ZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoKG5vZGUpID0+IHsKKyAgICAgICAgICAgICAgICAg
c3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CisgICAgICAgICAgICAgfSk7CisgICAgICAg
ICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSIvPgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xp
Yi9pbnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9pbnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJp
ZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkZjI2ODY3ZDgzNTMwZDk5MjkzMGQ2ZDcxMTYw
ODAxMDE4NmM5ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGli
L2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVPdmVycmlkZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMyBAQAorCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFBhZ2Uuc2V0U2NyZWVuU2l6ZU92
ZXJyaWRlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogU2NyZWVuU2l6ZU92ZXJyaWRlT3ZlcnJpZGUK
K0N1cnJlbnQgc2NyZWVuIHNpemU6IDEwMjR4NzY4CitQQVNTOiBCb2R5IHNob3VsZCBiZSB3aGl0
ZQorT3ZlcnJpZGluZyBzY3JlZW4gc2l6ZSB0byAxMDAweDUwMAorUEFTUzogRGVmYXVsdCBzY3Jl
ZW4gd2lkdGggc2hvdWxkIGJlIDEwMDAKK1BBU1M6IERlZmF1bHQgc2NyZWVuIGhlaWdodCBzaG91
bGQgYmUgNTAwCitQQVNTOiBCb2R5IHNob3VsZCBiZSBsaWdodGJsdWUKK1JlbW92aW5nIHNjcmVl
biBzaXplIG92ZXJyaWRlCitQQVNTOiBTY3JlZW4gd2lkdGggb3ZlcnJpZGUgc2hvdWxkIGJlIHJl
bW92ZWQKK1BBU1M6IFNjcmVlbiBoZWlnaHQgb3ZlcnJpZGUgc2hvdWxkIGJlIHJlbW92ZWQKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2luc3BlY3Rvci9wYWdlL3NldFNj
cmVlblNpemVPdmVycmlkZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
aW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xZGVjMDEwNmIxZTQzODY4M2Y4OGM2ZTdkMTUxN2Y4YjdhZWJhODk1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2luc3BlY3Rvci9wYWdlL3NldFNjcmVl
blNpemVPdmVycmlkZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorCis9PSBSdW5uaW5n
IHRlc3Qgc3VpdGU6IFBhZ2Uuc2V0U2NyZWVuU2l6ZU92ZXJyaWRlCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogU2NyZWVuU2l6ZU92ZXJyaWRlT3ZlcnJpZGUKK0N1cnJlbnQgc2NyZWVuIHNpemU6IDE5
MjB4MTA4MAorUEFTUzogQm9keSBzaG91bGQgYmUgd2hpdGUKK092ZXJyaWRpbmcgc2NyZWVuIHNp
emUgdG8gMTAwMHg1MDAKK1BBU1M6IERlZmF1bHQgc2NyZWVuIHdpZHRoIHNob3VsZCBiZSAxMDAw
CitQQVNTOiBEZWZhdWx0IHNjcmVlbiBoZWlnaHQgc2hvdWxkIGJlIDUwMAorUEFTUzogQm9keSBz
aG91bGQgYmUgbGlnaHRibHVlCitSZW1vdmluZyBzY3JlZW4gc2l6ZSBvdmVycmlkZQorUEFTUzog
U2NyZWVuIHdpZHRoIG92ZXJyaWRlIHNob3VsZCBiZSByZW1vdmVkCitQQVNTOiBTY3JlZW4gaGVp
Z2h0IG92ZXJyaWRlIHNob3VsZCBiZSByZW1vdmVkCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402455</attachid>
            <date>2020-06-22 02:18:07 -0700</date>
            <delta_ts>2020-07-20 01:46:44 -0700</delta_ts>
            <desc>WebInspector UI addition</desc>
            <filename>bug-213242-20200622021806.patch</filename>
            <type>text/plain</type>
            <size>5731</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5q
cwppbmRleCA4ZjA4MjUxYmExZTYyZmQ0MjBmOGNkMGMyNjM3YWUzN2MyYjA2N2Y1Li5mYWZlMzg2
OGExMjA1MGVlOTVjNmJmYmFlYjAxZTJkM2E4MWRlOWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXpl
ZFN0cmluZ3MuanMKQEAgLTkwLDYgKzkwLDkgQEAgbG9jYWxpemVkU3RyaW5nc1siLCAiXSA9ICIs
ICI7CiBsb2NhbGl6ZWRTdHJpbmdzWyIwIENvbnNvbGUgZXJyb3JzIl0gPSAiMCBDb25zb2xlIGVy
cm9ycyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyIwIENvbnNvbGUgd2FybmluZ3MiXSA9ICIwIENvbnNv
bGUgd2FybmluZ3MiOwogbG9jYWxpemVkU3RyaW5nc1siMSBtYXRjaCJdID0gIjEgbWF0Y2giOwor
bG9jYWxpemVkU3RyaW5nc1siMTA4MFAiXSA9ICIxMDgwUCI7Citsb2NhbGl6ZWRTdHJpbmdzWyI3
MjBQIl0gPSAiNzIwUCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJTY3JlZW4gc2l6ZToiXSA9ICJTY3Jl
ZW4gc2l6ZToiOwogbG9jYWxpemVkU3RyaW5nc1siMkQiXSA9ICIyRCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJBY2Nlc3NpYmlsaXR5Il0gPSAiQWNjZXNzaWJpbGl0eSI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJBY3Rpb24iXSA9ICJBY3Rpb24iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQmFzZS9NYWluLmpzCmluZGV4IGJjNjEyOWQ1MzA2ZjNhZmI5MzRkNDZhMTkyMjRj
NmUyNmQ4YzM5YTUuLjEzZWZjOWRiMjcxYTVmNWUyMjNkZWE1ZjYwMTZmYmY5NTU3YjhiMTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMK
QEAgLTE5NCw2ICsxOTQsNyBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgV0kudmlzaWJs
ZSA9IGZhbHNlOwogICAgIFdJLl93aW5kb3dLZXlkb3duTGlzdGVuZXJzID0gW107CiAgICAgV0ku
X292ZXJyaWRlbkRldmljZVVzZXJBZ2VudCA9IG51bGw7CisgICAgV0kuX292ZXJyaWRlbkRldmlj
ZVNjcmVlblNpemUgPSBudWxsOwogICAgIFdJLl9vdmVycmlkZW5EZXZpY2VTZXR0aW5ncyA9IG5l
dyBNYXA7CiAKICAgICAvLyBUYXJnZXRzLgpAQCAtMjI2MCw2ICsyMjYxLDEyMiBAQCBXSS5faGFu
ZGxlRGV2aWNlU2V0dGluZ3NUYWJCYXJCdXR0b25DbGlja2VkID0gZnVuY3Rpb24oZXZlbnQpCiAg
ICAgICAgIH0KICAgICB9KTsKIAorICAgIGZ1bmN0aW9uIGFwcGx5T3ZlcnJpZGRlblNjcmVlblNp
emUodmFsdWUsIGZvcmNlKSB7CisgICAgICAgIGlmICh2YWx1ZSA9PT0gV0kuX292ZXJyaWRlbkRl
dmljZVNjcmVlblNpemUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKCFmb3Jj
ZSAmJiAoIXZhbHVlIHx8IHZhbHVlID09PSAiZGVmYXVsdCIpKSB7CisgICAgICAgICAgICB0YXJn
ZXQuUGFnZUFnZW50LnNldFNjcmVlblNpemVPdmVycmlkZSgoZXJyb3IpID0+IHsKKyAgICAgICAg
ICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihl
cnJvcik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICBXSS5fb3ZlcnJpZGVuRGV2aWNlU2NyZWVuU2l6ZSA9IG51bGw7Cisg
ICAgICAgICAgICAgICAgdXBkYXRlQWN0aXZhdGVkU3RhdGUoKTsKKyAgICAgICAgICAgICAgICB0
YXJnZXQuUGFnZUFnZW50LnJlbG9hZCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBsZXQgdG9rZW5zID0gdmFsdWUuc3BsaXQoIngiKTsKKyAgICAgICAg
ICAgIGxldCB3aWR0aCA9IHBhcnNlSW50KHRva2Vuc1swXSk7CisgICAgICAgICAgICBsZXQgaGVp
Z2h0ID0gcGFyc2VJbnQodG9rZW5zWzFdKTsKKyAgICAgICAgICAgIHRhcmdldC5QYWdlQWdlbnQu
c2V0U2NyZWVuU2l6ZU92ZXJyaWRlKHdpZHRoLCBoZWlnaHQsIChlcnJvcikgPT4geworICAgICAg
ICAgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9y
KGVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICAgIFdJLl9vdmVycmlkZW5EZXZpY2VTY3JlZW5TaXplID0gdmFsdWU7
CisgICAgICAgICAgICAgICAgdXBkYXRlQWN0aXZhdGVkU3RhdGUoKTsKKyAgICAgICAgICAgICAg
ICB0YXJnZXQuUGFnZUFnZW50LnJlbG9hZCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KyAgICB9CisKKworICAgIGxldCBzY3JlZW5TaXplUm93ID0gdGFibGUuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKSk7CisKKyAgICBsZXQgc2NyZWVuU2l6ZVRpdGxlID0g
c2NyZWVuU2l6ZVJvdy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpKTsK
KyAgICBzY3JlZW5TaXplVGl0bGUudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiU2NyZWVuIHNp
emU6Iik7CisKKyAgICBsZXQgc2NyZWVuU2l6ZVZhbHVlID0gc2NyZWVuU2l6ZVJvdy5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpKTsKKyAgICBzY3JlZW5TaXplVmFsdWUu
Y2xhc3NMaXN0LmFkZCgic2NyZWVuLXNpemUiKTsKKworICAgIGxldCBzY3JlZW5TaXplVmFsdWVT
ZWxlY3QgPSBzY3JlZW5TaXplVmFsdWUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic2VsZWN0IikpOworCisgICAgbGV0IHNjcmVlblNpemVWYWx1ZUlucHV0ID0gbnVsbDsKKwor
ICAgIGNvbnN0IHNjcmVlblNpemVzID0gWworICAgICAgICBbCisgICAgICAgICAgICB7IG5hbWU6
IFdJLlVJU3RyaW5nKCJEZWZhdWx0IiksIHZhbHVlOiAiZGVmYXVsdCIgfSwKKyAgICAgICAgXSwK
KyAgICAgICAgWworICAgICAgICAgICAgeyBuYW1lOiBXSS5VSVN0cmluZygiMTA4MFAiKSwgdmFs
dWU6ICIxOTIweDEwODAifSwKKyAgICAgICAgICAgIHsgbmFtZTogV0kuVUlTdHJpbmcoIjcyMFAi
KSwgdmFsdWU6ICIxMjgweDcyMCJ9CisgICAgICAgIF0sCisgICAgICAgIFsKKyAgICAgICAgICAg
IHsgbmFtZTogV0kuVUlTdHJpbmcoIk90aGVyXHUyMDI2IiksIHZhbHVlOiAib3RoZXIiIH0sCisg
ICAgICAgIF0sCisgICAgXTsKKworICAgIGxldCBzZWxlY3RlZFNjcmVlblNpemVPcHRpb25FbGVt
ZW50ID0gbnVsbDsKKworICAgIGZvciAobGV0IGdyb3VwIG9mIHNjcmVlblNpemVzKSB7CisgICAg
ICAgIGZvciAobGV0IHtuYW1lLCB2YWx1ZX0gb2YgZ3JvdXApIHsKKyAgICAgICAgICAgIGxldCBv
cHRpb25FbGVtZW50ID0gc2NyZWVuU2l6ZVZhbHVlU2VsZWN0LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpKTsKKyAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQudmFs
dWUgPSB2YWx1ZTsKKyAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBuYW1l
OworCisgICAgICAgICAgICBpZiAodmFsdWUgPT09IFdJLl9vdmVycmlkZW5EZXZpY2VTY3JlZW5T
aXplKQorICAgICAgICAgICAgICAgIHNlbGVjdGVkU2NyZWVuU2l6ZU9wdGlvbkVsZW1lbnQgPSBv
cHRpb25FbGVtZW50OworICAgICAgICB9CisKKyAgICAgICAgaWYgKGdyb3VwICE9PSBzY3JlZW5T
aXplcy5sYXN0VmFsdWUpCisgICAgICAgICAgICBzY3JlZW5TaXplVmFsdWVTZWxlY3QuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaHIiKSk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gc2hvd1NjcmVlblNpemVJbnB1dCgpIHsKKyAgICAgICAgaWYgKHNjcmVlblNpemVWYWx1ZUlu
cHV0KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHNjcmVlblNpemVWYWx1ZUlucHV0
ID0gc2NyZWVuU2l6ZVZhbHVlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlu
cHV0IikpOworICAgICAgICBzY3JlZW5TaXplVmFsdWVJbnB1dC5zcGVsbGNoZWNrID0gZmFsc2U7
CisgICAgICAgIGxldCBkZWZhdWx0U2l6ZSA9IHdpbmRvdy5zY3JlZW4ud2lkdGggKyAieCIgKyB3
aW5kb3cuc2NyZWVuLmhlaWdodDsKKyAgICAgICAgc2NyZWVuU2l6ZVZhbHVlSW5wdXQudmFsdWUg
PSBzY3JlZW5TaXplVmFsdWVJbnB1dC5wbGFjZWhvbGRlciA9IFdJLl9vdmVycmlkZW5EZXZpY2VT
Y3JlZW5TaXplIHx8IGRlZmF1bHRTaXplOworICAgICAgICBzY3JlZW5TaXplVmFsdWVJbnB1dC5h
ZGRFdmVudExpc3RlbmVyKCJjbGljayIsIChjbGlja0V2ZW50KSA9PiB7CisgICAgICAgICAgICBj
bGlja0V2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgIH0pOworICAgICAgICBzY3JlZW5T
aXplVmFsdWVJbnB1dC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCAoaW5wdXRFdmVudCkgPT4g
eworICAgICAgICAgICAgYXBwbHlPdmVycmlkZGVuU2NyZWVuU2l6ZShzY3JlZW5TaXplVmFsdWVJ
bnB1dC52YWx1ZSwgdHJ1ZSk7CisgICAgICAgIH0pOworCisgICAgICAgIFdJLl9kZXZpY2VTZXR0
aW5nc1BvcG92ZXIudXBkYXRlKCk7CisgICAgfQorCisgICAgaWYgKHNlbGVjdGVkU2NyZWVuU2l6
ZU9wdGlvbkVsZW1lbnQpCisgICAgICAgIHNjcmVlblNpemVWYWx1ZVNlbGVjdC52YWx1ZSA9IHNl
bGVjdGVkU2NyZWVuU2l6ZU9wdGlvbkVsZW1lbnQudmFsdWU7CisgICAgZWxzZSBpZiAoV0kuX292
ZXJyaWRlbkRldmljZVNjcmVlblNpemUpIHsKKyAgICAgICAgc2NyZWVuU2l6ZVZhbHVlU2VsZWN0
LnZhbHVlID0gIm90aGVyIjsKKyAgICAgICAgc2hvd1NjcmVlblNpemVJbnB1dCgpOworICAgIH0K
KworICAgIHNjcmVlblNpemVWYWx1ZVNlbGVjdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCAo
KSA9PiB7CisgICAgICAgIGxldCB2YWx1ZSA9IHNjcmVlblNpemVWYWx1ZVNlbGVjdC52YWx1ZTsK
KyAgICAgICAgaWYgKHZhbHVlID09PSAib3RoZXIiKSB7CisgICAgICAgICAgICBzaG93U2NyZWVu
U2l6ZUlucHV0KCk7CisgICAgICAgICAgICBzY3JlZW5TaXplVmFsdWVJbnB1dC5zZWxlY3QoKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzY3JlZW5TaXplVmFsdWVJbnB1dCkg
eworICAgICAgICAgICAgICAgIHNjcmVlblNpemVWYWx1ZUlucHV0LnJlbW92ZSgpOworICAgICAg
ICAgICAgICAgIHNjcmVlblNpemVWYWx1ZUlucHV0ID0gbnVsbDsKKworICAgICAgICAgICAgICAg
IFdJLl9kZXZpY2VTZXR0aW5nc1BvcG92ZXIudXBkYXRlKCk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGFwcGx5T3ZlcnJpZGRlblNjcmVlblNpemUodmFsdWUpOworICAgICAgICB9Cisg
ICAgfSk7CisKICAgICBjb25zdCBzZXR0aW5ncyA9IFsKICAgICAgICAgewogICAgICAgICAgICAg
bmFtZTogV0kuVUlTdHJpbmcoIkRpc2FibGU6IiksCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402480</attachid>
            <date>2020-06-22 09:02:52 -0700</date>
            <delta_ts>2020-07-20 01:46:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213242-20200622090250.patch</filename>
            <type>text/plain</type>
            <size>16344</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZDQwMDcwOGYwM2FjOTNjMDAyMjIyOGZlYWM4NjRmZTYwMjY0NzMxLi42MjUwOTI1NDM4MzU1MzEx
ZGQ2ODBlYTRhOGM1ZGZmYTk4ZjFlMTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAyMC0wNi0xNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxp
YS5jb20+IGFuZCBQYXZlbCBGZWxkbWFuIDxwYXZlbC5mZWxkbWFuQGdtYWlsLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0aGUg
UGFnZSBhZ2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEzMjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uOiBBZGQgYSBuZXcgc2V0U2NyZWVuU2l6
ZU92ZXJyaWRlIEFQSSBpbiB0aGUgUGFnZSBhZ2VudC4KKwogMjAyMC0wNi0xOSAgWXVzdWtlIFN1
enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIENoZWNrIEdpZ2FjYWdl
IHVzYWdlIGJlZm9yZSBsYXVuY2hpbmcgVk0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxYTcyYTVhOWQzNjY5OTIx
ZTVlNDViMTFlZTcwMmRlNGY0MjhiMTc2Li4zOTMyMTg4NDNhZjBjZGJlZmE5OTAyOWY3MTZlNzdm
YWRhNzk5YTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDYtMTYgIFBoaWxp
cHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPiBhbmQgUGF2ZWwgRmVsZG1hbiA8cGF2
ZWwuZmVsZG1hbkBnbWFpbC5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIHNldFNj
cmVlblNpemVPdmVycmlkZSBBUEkgdG8gdGhlIFBhZ2UgYWdlbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzI0MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IHRoZSBXZWJJbnNwZWN0b3IgUGFn
ZSBhZ2VudCB0byBvdmVycmlkZSB0aGUgU2NyZWVuIHNpemUuIFRoaXMgaXMgdXNlZnVsIGZvciBh
dXRvbWF0aW9uCisgICAgICAgIHB1cnBvc2VzLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9w
YWdlL3NldFNjcmVlblNpemVPdmVycmlkZS5odG1sCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVy
eUV2YWx1YXRvci5jcHA6IFVzZSB0aGUgUGFnZTo6c2NyZWVuU2l6ZSgpIG1ldGhvZCB0byBxdWVy
eSB0aGUgc2NyZWVuIGRpbWVuc2lvbnMuCisgICAgICAgIChXZWJDb3JlOjpkZXZpY2VBc3BlY3RS
YXRpb0V2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmRldmljZUhlaWdodEV2YWx1YXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OmRldmljZVdpZHRoRXZhbHVhdGUpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclBhZ2VBZ2VudDo6c2V0U2NyZWVuU2l6ZU92ZXJyaWRlKTogSW1wbGVtZW50YXRpb24g
b2YgdGhlIG5ldyBBUEkgaG9va2luZworICAgICAgICBpbnRvIHRoZSBXZWJDb3JlOjpQYWdlOjpz
ZXRPdmVycmlkZVNjcmVlblNpemUoKSBtZXRob2QuCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6c2NyZWVuU2l6ZSk6IE5ldyBlbnRyeSBwb2ludCB0byBxdWVyeSB0
aGUgc2NyZWVuIHNpemUsIHRoaXMgdGFrZXMgaW50bworICAgICAgICBhY2NvdW50IHRoZSBvcHRp
b25hbCBvdmVycmlkZW4gc2NyZWVuIHNpemUuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRP
dmVycmlkZVNjcmVlblNpemUpOiBBUEkgdXNlZCBieSB0aGUgUGFnZSBhZ2VudCB0byBmYWtlIGEg
bmV3IHNjcmVlbiBzaXplLgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAqIHBhZ2Uv
U2NyZWVuLmNwcDogVXNlIHRoZSBQYWdlOjpzY3JlZW5TaXplKCkgbWV0aG9kIHRvIHF1ZXJ5IHRo
ZSBzY3JlZW4gZGltZW5zaW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbjo6aGVpZ2h0IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbjo6d2lkdGggY29uc3QpOgorCiAyMDIwLTA2
LTEwICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtXZWJYUl0gQWRkIGEgcHJlbGltaW5hcnkgaW1wbGVtZW50YXRpb24gb2YgWFJXZWJHTExheWVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1Bh
Z2UuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5q
c29uCmluZGV4IDNiOGZhMThiZDdlOGQ5NWQ3ZThmOTViNDQyYWZjNjNlNTUwY2U2M2EuLjk0ZDNk
M2RkMmRmYjkwZjI5N2EzNTZiYTgyOWY0ZGRiYWZkZjZkNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uCkBAIC0zMDQsNiArMzA0
LDE1IEBACiAgICAgICAgICAgICAicmV0dXJucyI6IFsKICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImRhdGEiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiQmFzZTY0LWVuY29k
ZWQgd2ViIGFyY2hpdmUuIiB9CiAgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICAgICJuYW1lIjogInNldFNjcmVlblNpemVPdmVycmlkZSIsCisgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiT3ZlcnJpZGVzIHNjcmVlbiBzaXplIHdpdGggcHJvdmlkZWQgdmFs
dWVzLiIsCisgICAgICAgICAgICAidGFyZ2V0VHlwZXMiOiBbInBhZ2UiXSwKKyAgICAgICAgICAg
ICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAid2lkdGgiLCAidHlw
ZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIlNjcmVlbiB3aWR0aCIsICJvcHRpb25hbCI6
IHRydWUgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhlaWdodCIsICJ0eXBlIjogImlu
dGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiU2NyZWVuIGhlaWdodCIsICJvcHRpb25hbCI6IHRydWUg
fQorICAgICAgICAgICAgXQogICAgICAgICB9CiAgICAgXSwKICAgICAiZXZlbnRzIjogWwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IDgxMThiN2FiM2M1
MGIzY2VkODEyMGZjMTA2ZGNlOWM3MzE0MWFmZTQuLjc3NTI3MzIwYmRiYzJlZjEzOWM3NmRjNWQ5
YTcyMzBjZjMyNmYwMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRv
ci5jcHAKQEAgLTM4OCw3ICszODgsNyBAQCBzdGF0aWMgYm9vbCBkZXZpY2VBc3BlY3RSYXRpb0V2
YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaQogICAgIGlm
ICghdmFsdWUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgYXV0byBzaXplID0gc2NyZWVu
UmVjdChmcmFtZS5tYWluRnJhbWUoKS52aWV3KCkpLnNpemUoKTsKKyAgICBhdXRvIHNpemUgPSBm
cmFtZS5zY3JlZW5TaXplKCk7CiAgICAgYm9vbCByZXN1bHQgPSBjb21wYXJlQXNwZWN0UmF0aW9W
YWx1ZSh2YWx1ZSwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCBvcCk7CiAgICAgTE9HX1dJ
VEhfU1RSRUFNKE1lZGlhUXVlcmllcywgc3RyZWFtIDw8ICIgIGRldmljZUFzcGVjdFJhdGlvRXZh
bHVhdGU6ICIgPDwgb3AgPDwgIiAiIDw8IGFzcGVjdFJhdGlvVmFsdWVBc1N0cmluZyh2YWx1ZSkg
PDwgIiBhY3R1YWwgc2NyZWVuIHNpemUgIiA8PCBzaXplIDw8ICI6ICIgPDwgcmVzdWx0KTsKICAg
ICByZXR1cm4gcmVzdWx0OwpAQCAtNTA2LDcgKzUwNiw3IEBAIHN0YXRpYyBib29sIGRldmljZUhl
aWdodEV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9u
RGF0CiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaW50IGxlbmd0
aDsKLSAgICBhdXRvIGhlaWdodCA9IHNjcmVlblJlY3QoZnJhbWUubWFpbkZyYW1lKCkudmlldygp
KS5oZWlnaHQoKTsKKyAgICBhdXRvIGhlaWdodCA9IGZyYW1lLnNjcmVlblNpemUoKS5oZWlnaHQo
KTsKICAgICBpZiAoIWNvbXB1dGVMZW5ndGgodmFsdWUsICFmcmFtZS5kb2N1bWVudCgpLT5pblF1
aXJrc01vZGUoKSwgY29udmVyc2lvbkRhdGEsIGxlbmd0aCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIApAQCAtNTIyLDcgKzUyMiw3IEBAIHN0YXRpYyBib29sIGRldmljZVdpZHRoRXZhbHVhdGUo
Q1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhCiAgICAgaWYg
KCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaW50IGxlbmd0aDsKLSAgICBhdXRv
IHdpZHRoID0gc2NyZWVuUmVjdChmcmFtZS5tYWluRnJhbWUoKS52aWV3KCkpLndpZHRoKCk7Cisg
ICAgYXV0byB3aWR0aCA9IGZyYW1lLnNjcmVlblNpemUoKS53aWR0aCgpOwogICAgIGlmICghY29t
cHV0ZUxlbmd0aCh2YWx1ZSwgIWZyYW1lLmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpLCBjb252
ZXJzaW9uRGF0YSwgbGVuZ3RoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAK
aW5kZXggNTM5ZTgxMDViNjZlN2IyYTZhMDU1NzFhMWUxYzhjZDZiZGYyN2M5MC4uYTgwYTFjZDA1
NzAzZjFlZDIyYzc4NzY5NTU3M2M3MmVlN2EwYzk0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMTA4Nyw0
ICsxMDg3LDIxIEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjphcmNoaXZlKEVycm9yU3RyaW5n
JiBlcnJvclN0cmluZywgU3RyaW5nKiBkYXRhKQogfQogI2VuZGlmCiAKK3ZvaWQgSW5zcGVjdG9y
UGFnZUFnZW50OjpzZXRTY3JlZW5TaXplT3ZlcnJpZGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
LCBjb25zdCBpbnQqIHdpZHRoLCBjb25zdCBpbnQqIGhlaWdodCkKK3sKKyAgICBpZiAod2lkdGgg
JiYgKndpZHRoIDw9IDApIHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSAiU2NyZWVuIHdpZHRoIG92
ZXJyaWRlIHNob3VsZCBiZSBhIHBvc2l0aXZlIGludGVnZXIiX3M7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAoaGVpZ2h0ICYmICpoZWlnaHQgPD0gMCkgeworICAgICAgICBlcnJv
clN0cmluZyA9ICJTY3JlZW4gaGVpZ2h0IG92ZXJyaWRlIHNob3VsZCBiZSBhIHBvc2l0aXZlIGlu
dGVnZXIiX3M7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBPcHRpb25hbDxpbnQ+IHdp
ZHRoT3ZlcnJpZGUgPSB3aWR0aCA/IG1ha2VPcHRpb25hbCgqd2lkdGgpIDogV1RGOjpudWxsb3B0
OworICAgIE9wdGlvbmFsPGludD4gaGVpZ2h0T3ZlcnJpZGUgPSBoZWlnaHQgPyBtYWtlT3B0aW9u
YWwoKmhlaWdodCkgOiBXVEY6Om51bGxvcHQ7CisgICAgbV9pbnNwZWN0ZWRQYWdlLm1haW5GcmFt
ZSgpLnNldE92ZXJyaWRlU2NyZWVuU2l6ZSh3aWR0aE92ZXJyaWRlLCBoZWlnaHRPdmVycmlkZSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IDNiY2QwNDg3Y2ZjODc2
NmJhYTAxYzc4MDQxNzNhMTU3NDdiNDdiMmQuLjdkM2ZjMWEyMDRkNzhkZGIzMzc2MDVjNmExYTAy
OWJhZDNlMWE5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JQYWdlQWdlbnQuaApAQCAtMTIyLDYgKzEyMiw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIGFyY2hpdmUoRXJyb3JTdHJpbmcmLCBTdHJpbmcqIGRhdGEpIG92ZXJyaWRlOwogI2VuZGlm
CiAKKyAgICB2b2lkIHNldFNjcmVlblNpemVPdmVycmlkZShFcnJvclN0cmluZyYsIGNvbnN0IGlu
dCogd2lkdGgsIGNvbnN0IGludCogaGVpZ2h0KSBvdmVycmlkZTsKKwogICAgIC8vIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbgogICAgIHZvaWQgZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKICAgICB2
b2lkIGxvYWRFdmVudEZpcmVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IGQwNGZhMGMzOWUw
ZWI5YTgzY2NkODY0ZTQyYWUzMDQyYjk5MjgzMDguLmY1Mjc4ZjE0NDIyNjk0Nzg1ZGQ4OWFlYmU1
MWU2ODgyOTNlN2NmZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0xMDYzLDYgKzEwNjMsMjMg
QEAgYm9vbCBGcmFtZTo6bWF5UHJld2FybUxvY2FsU3RvcmFnZSgpIGNvbnN0CiAgICAgcmV0dXJu
IG1fbG9jYWxTdG9yYWdlUHJld2FybWluZ0NvdW50IDwgbWF4bG9jYWxTdG9yYWdlUHJld2FybWlu
Z0NvdW50OwogfQogCitGbG9hdFNpemUgRnJhbWU6OnNjcmVlblNpemUoKSBjb25zdAoreworICAg
IGNvbnN0IGF1dG8mIHJlYWxTaXplID0gc2NyZWVuUmVjdCh2aWV3KCkpLnNpemUoKTsKKyAgICBy
ZXR1cm4gRmxvYXRTaXplKG1fb3ZlcnJpZGVTY3JlZW5XaWR0aC52YWx1ZU9yKHJlYWxTaXplLndp
ZHRoKCkpLCBtX292ZXJyaWRlU2NyZWVuSGVpZ2h0LnZhbHVlT3IocmVhbFNpemUuaGVpZ2h0KCkp
KTsKK30KKwordm9pZCBGcmFtZTo6c2V0T3ZlcnJpZGVTY3JlZW5TaXplKE9wdGlvbmFsPGludD4g
d2lkdGgsIE9wdGlvbmFsPGludD4gaGVpZ2h0KQoreworICAgIGlmICh3aWR0aCA9PSBtX292ZXJy
aWRlU2NyZWVuV2lkdGggJiYgaGVpZ2h0ID09IG1fb3ZlcnJpZGVTY3JlZW5IZWlnaHQpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fb3ZlcnJpZGVTY3JlZW5XaWR0aCA9IHdpZHRoOworICAgIG1f
b3ZlcnJpZGVTY3JlZW5IZWlnaHQgPSBoZWlnaHQ7CisgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0g
dGhpcy0+ZG9jdW1lbnQoKSkKKyAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZVZpZXdwb3J0QXJndW1l
bnRzKCk7Cit9CisKIHZvaWQgRnJhbWU6OnNlbGZPbmx5UmVmKCkKIHsKICAgICBBU1NFUlQoaXNN
YWluRnJhbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKaW5kZXggNDU0NDBhYzFhYWYwNzM3MWMzNTJmMThk
YjQxNjk2MWY4ZjE0MWI2Mi4uZmM5N2NmNmRhNTM2MWIxNjRhMzYzMmMzYmMzN2JkMmZhY2JhMWFj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtMzA4LDYgKzMwOCw5IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgaW52YWxpZGF0ZUNvbnRlbnRFdmVudFJlZ2lvbnNJZk5lZWRlZCgpOwogCisgICAgV0VCQ09S
RV9FWFBPUlQgRmxvYXRTaXplIHNjcmVlblNpemUoKSBjb25zdDsKKyAgICB2b2lkIHNldE92ZXJy
aWRlU2NyZWVuU2l6ZShPcHRpb25hbDxpbnQ+LCBPcHRpb25hbDxpbnQ+KTsKKwogLy8gPT09PT09
PT0KIAogICAgIHZvaWQgc2VsZk9ubHlSZWYoKTsKQEAgLTM3MCw2ICszNzMsOSBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9oYXNIYWRVc2VySW50ZXJhY3Rpb24geyBmYWxzZSB9OwogICAgIHVuc2ln
bmVkIG1fbG9jYWxTdG9yYWdlUHJld2FybWluZ0NvdW50IHsgMCB9OwogCisgICAgT3B0aW9uYWw8
aW50PiBtX292ZXJyaWRlU2NyZWVuV2lkdGg7CisgICAgT3B0aW9uYWw8aW50PiBtX292ZXJyaWRl
U2NyZWVuSGVpZ2h0OworCiAgICAgVW5pcXVlUmVmPEV2ZW50SGFuZGxlcj4gbV9ldmVudEhhbmRs
ZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBkZGFiMDZkOGMxMzU4ZTE2MGQ3YjI1Y2Yz
ZDk2Y2FiOTBkYzI5MWE2Li4yOTkzZWJkZDlhOTMxYjgyMjNjYzc1ODljMTA4NmZlMTNmZTkzZjVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTkwLDYgKzkwLDcgQEAKICNpbmNsdWRlICJQZXJmb3Jt
YW5jZUxvZ2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJQZXJmb3JtYW5jZU1vbml0b3IuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9y
bVNjcmVlbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlBs
dWdJbkNsaWVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNw
cAppbmRleCBhOWQyMjhjYTQwNDkxODg2MGM0MDY1MTk5NGRiNzhhMWU3NmRiNWNhLi42ZTQ1ZDlk
ZjE0NGVjNzNlM2YyZTA3MGIwZGM1ZTIzYmFjNDBjNDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NjcmVlbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3Bw
CkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIgog
I2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKQEAgLTUzLDcgKzU0LDcgQEAgdW5z
aWduZWQgU2NyZWVuOjpoZWlnaHQoKSBjb25zdAogICAgICAgICByZXR1cm4gMDsKICAgICBpZiAo
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJBUElTdGF0aXN0aWNz
RW5hYmxlZCgpKQogICAgICAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkKCkubG9nU2Ny
ZWVuQVBJQWNjZXNzZWQoKmZyYW1lLT5kb2N1bWVudCgpLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
OjpTY3JlZW5BUEk6OkhlaWdodCk7Ci0gICAgbG9uZyBoZWlnaHQgPSBzdGF0aWNfY2FzdDxsb25n
PihzY3JlZW5SZWN0KGZyYW1lLT52aWV3KCkpLmhlaWdodCgpKTsKKyAgICBsb25nIGhlaWdodCA9
IHN0YXRpY19jYXN0PGxvbmc+KGZyYW1lLT5zY3JlZW5TaXplKCkuaGVpZ2h0KCkpOwogICAgIHJl
dHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaGVpZ2h0KTsKIH0KIApAQCAtNjQsNyArNjUsNyBA
QCB1bnNpZ25lZCBTY3JlZW46OndpZHRoKCkgY29uc3QKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
aWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQVBJU3RhdGlz
dGljc0VuYWJsZWQoKSkKICAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLmxv
Z1NjcmVlbkFQSUFjY2Vzc2VkKCpmcmFtZS0+ZG9jdW1lbnQoKSwgUmVzb3VyY2VMb2FkU3RhdGlz
dGljczo6U2NyZWVuQVBJOjpXaWR0aCk7Ci0gICAgbG9uZyB3aWR0aCA9IHN0YXRpY19jYXN0PGxv
bmc+KHNjcmVlblJlY3QoZnJhbWUtPnZpZXcoKSkud2lkdGgoKSk7CisgICAgbG9uZyB3aWR0aCA9
IHN0YXRpY19jYXN0PGxvbmc+KGZyYW1lLT5zY3JlZW5TaXplKCkud2lkdGgoKSk7CiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPih3aWR0aCk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxMzhmOWQ1Y2Zi
NWE0OTRjYzAxODViZjk4MTdiNGVmYmIxZmYxNTczLi5jNjliYzU5MDg4YWJlNmNkZDI1NDhjMWNk
MGQ5NGU1MTUzMWI5NjFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDYtMTYgIFBoaWxp
cHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPiBhbmQgUGF2ZWwgRmVsZG1hbiA8cGF2
ZWwuZmVsZG1hbkBnbWFpbC5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIHNldFNj
cmVlblNpemVPdmVycmlkZSBBUEkgdG8gdGhlIFBhZ2UgYWdlbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzI0MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVu
U2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3Bh
Z2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA2LTIyICBKYWNv
YiBVcGhvZmYgIDxqYWNvYl91cGhvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFsgbWFjT1MgaU9T
IF0gUkVHUkVTU0lPTjogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhIG10cmFjay12aWRlby1m
cmFtZVJhdGUtY2xvbiBlLWluY3JlYXNpbmcuaHRtbCBpcyBhIGZsYWt5IGZhaWx1cmUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVPdmVycmlkZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjdmZGE3ZjYzNDk5ZWNmMzM2MWNmZjA0MWE5YmQ5MTQxM2I5ODBkYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNp
emVPdmVycmlkZS5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c3R5
bGU+CisgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLXdpZHRoOiAx
MDAwcHgpIHsKKyAgICAgICAgICAgICBib2R5IHsKKyAgICAgICAgICAgICAgICAgY29sb3I6IGxp
Z2h0Ymx1ZTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+Cisg
ICAgICAgIDxzY3JpcHQ+CisgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkKKyAgICAgICAgIHsKKyAg
ICAgICAgICAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlBh
Z2Uuc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIik7CisKKyAgICAgICAgICAgICBzdWl0ZS5hZGRUZXN0
Q2FzZSh7CisgICAgICAgICAgICAgICAgIG5hbWU6ICJTY3JlZW5TaXplT3ZlcnJpZGVPdmVycmlk
ZSIsCisgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiVmVyaWZ5IHRoYXQgdGhlIGluc3Bl
Y3RvciBjYW4gb3ZlcnJpZGUgdGhlIHNjcmVlbiBzaXplLiIsCisgICAgICAgICAgICAgICAgIGFz
eW5jIHRlc3QoKSB7CisgICAgICAgICAgICAgICAgICAgICBsZXQgb3JpZ2luYWxTY3JlZW5XaWR0
aCA9IGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5zY3JlZW4ud2lk
dGhgKTsKKyAgICAgICAgICAgICAgICAgICAgIGxldCBvcmlnaW5hbFNjcmVlbkhlaWdodCA9IGF3
YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5zY3JlZW4uaGVpZ2h0YCk7
CisgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ3VycmVudCBzY3JlZW4g
c2l6ZTogIiArIG9yaWdpbmFsU2NyZWVuV2lkdGggKyAieCIgKyBvcmlnaW5hbFNjcmVlbkhlaWdo
dCk7CisKKyAgICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50QmFja2dyb3VuZENvbG9yID0g
YXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5ib2R5KS5jb2xvciIpOworICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChjdXJyZW50QmFja2dyb3VuZENvbG9yLCAicmdiKDAsIDAsIDApIiwgIkJvZHkg
c2hvdWxkIGJlIHdoaXRlIik7CisKKyAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJPdmVycmlkaW5nIHNjcmVlbiBzaXplIHRvIDEwMDB4NTAwIik7CisgICAgICAgICAgICAg
ICAgICAgICBhd2FpdCBQYWdlQWdlbnQuc2V0U2NyZWVuU2l6ZU92ZXJyaWRlKDEwMDAsIDUwMCk7
CisgICAgICAgICAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdl
KGBsb2NhdGlvbi5yZWxvYWQoKWApOworCisgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3U2Ny
ZWVuV2lkdGggPSBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuc2Ny
ZWVuLndpZHRoYCk7CisgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVx
dWFsKG5ld1NjcmVlbldpZHRoLCAxMDAwLCAiRGVmYXVsdCBzY3JlZW4gd2lkdGggc2hvdWxkIGJl
IDEwMDAiKTsKKyAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdTY3JlZW5IZWlnaHQgPSBhd2Fp
dCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuc2NyZWVuLmhlaWdodGApOwor
ICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChuZXdTY3JlZW5I
ZWlnaHQsIDUwMCwgIkRlZmF1bHQgc2NyZWVuIGhlaWdodCBzaG91bGQgYmUgNTAwIik7CisKKyAg
ICAgICAgICAgICAgICAgICAgIGxldCBuZXdCYWNrZ3JvdW5kQ29sb3IgPSBhd2FpdCBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmNv
bG9yIik7CisKKyAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwo
bmV3QmFja2dyb3VuZENvbG9yLCAicmdiKDE3MywgMjE2LCAyMzApIiwgIkJvZHkgc2hvdWxkIGJl
IGxpZ2h0Ymx1ZSIpOworCisgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
UmVtb3Zpbmcgc2NyZWVuIHNpemUgb3ZlcnJpZGUiKTsKKyAgICAgICAgICAgICAgICAgICAgIGF3
YWl0IFBhZ2VBZ2VudC5zZXRTY3JlZW5TaXplT3ZlcnJpZGUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGxvY2F0aW9uLnJlbG9hZCgp
YCk7CisKKyAgICAgICAgICAgICAgICAgICAgIG5ld1NjcmVlbldpZHRoID0gYXdhaXQgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LnNjcmVlbi53aWR0aGApOworICAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChuZXdTY3JlZW5XaWR0aCwgb3Jp
Z2luYWxTY3JlZW5XaWR0aCwgIlNjcmVlbiB3aWR0aCBvdmVycmlkZSBzaG91bGQgYmUgcmVtb3Zl
ZCIpOworICAgICAgICAgICAgICAgICAgICAgbmV3U2NyZWVuSGVpZ2h0ID0gYXdhaXQgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LnNjcmVlbi5oZWlnaHRgKTsKKyAgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwobmV3U2NyZWVuSGVpZ2h0LCBv
cmlnaW5hbFNjcmVlbkhlaWdodCwgIlNjcmVlbiBoZWlnaHQgb3ZlcnJpZGUgc2hvdWxkIGJlIHJl
bW92ZWQiKTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0pOworCisgICAgICAg
ICAgICAgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoKG5vZGUpID0+IHsKKyAgICAgICAg
ICAgICAgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CisgICAgICAgICAgICAgfSk7
CisgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSIvPgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ2xpYi9pbnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9pbnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5T
aXplT3ZlcnJpZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkZjI2ODY3ZDgzNTMwZDk5Mjkz
MGQ2ZDcxMTYwODAxMDE4NmM5ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9nbGliL2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVPdmVycmlkZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMyBAQAorCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFBhZ2Uuc2V0U2Ny
ZWVuU2l6ZU92ZXJyaWRlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogU2NyZWVuU2l6ZU92ZXJyaWRl
T3ZlcnJpZGUKK0N1cnJlbnQgc2NyZWVuIHNpemU6IDEwMjR4NzY4CitQQVNTOiBCb2R5IHNob3Vs
ZCBiZSB3aGl0ZQorT3ZlcnJpZGluZyBzY3JlZW4gc2l6ZSB0byAxMDAweDUwMAorUEFTUzogRGVm
YXVsdCBzY3JlZW4gd2lkdGggc2hvdWxkIGJlIDEwMDAKK1BBU1M6IERlZmF1bHQgc2NyZWVuIGhl
aWdodCBzaG91bGQgYmUgNTAwCitQQVNTOiBCb2R5IHNob3VsZCBiZSBsaWdodGJsdWUKK1JlbW92
aW5nIHNjcmVlbiBzaXplIG92ZXJyaWRlCitQQVNTOiBTY3JlZW4gd2lkdGggb3ZlcnJpZGUgc2hv
dWxkIGJlIHJlbW92ZWQKK1BBU1M6IFNjcmVlbiBoZWlnaHQgb3ZlcnJpZGUgc2hvdWxkIGJlIHJl
bW92ZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2luc3BlY3Rvci9w
YWdlL3NldFNjcmVlblNpemVPdmVycmlkZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xZGVjMDEwNmIxZTQzODY4M2Y4OGM2ZTdkMTUxN2Y4YjdhZWJhODk1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2luc3BlY3Rvci9wYWdl
L3NldFNjcmVlblNpemVPdmVycmlkZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorCis9
PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFBhZ2Uuc2V0U2NyZWVuU2l6ZU92ZXJyaWRlCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogU2NyZWVuU2l6ZU92ZXJyaWRlT3ZlcnJpZGUKK0N1cnJlbnQgc2NyZWVu
IHNpemU6IDE5MjB4MTA4MAorUEFTUzogQm9keSBzaG91bGQgYmUgd2hpdGUKK092ZXJyaWRpbmcg
c2NyZWVuIHNpemUgdG8gMTAwMHg1MDAKK1BBU1M6IERlZmF1bHQgc2NyZWVuIHdpZHRoIHNob3Vs
ZCBiZSAxMDAwCitQQVNTOiBEZWZhdWx0IHNjcmVlbiBoZWlnaHQgc2hvdWxkIGJlIDUwMAorUEFT
UzogQm9keSBzaG91bGQgYmUgbGlnaHRibHVlCitSZW1vdmluZyBzY3JlZW4gc2l6ZSBvdmVycmlk
ZQorUEFTUzogU2NyZWVuIHdpZHRoIG92ZXJyaWRlIHNob3VsZCBiZSByZW1vdmVkCitQQVNTOiBT
Y3JlZW4gaGVpZ2h0IG92ZXJyaWRlIHNob3VsZCBiZSByZW1vdmVkCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404702</attachid>
            <date>2020-07-20 01:46:53 -0700</date>
            <delta_ts>2020-10-14 02:59:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213242-20200720014651.patch</filename>
            <type>text/plain</type>
            <size>22856</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MzRmOTg2OWEwOTc5MGJmNWM2ODM4ZGIyNTc4NDIxNjE4MzhlYmY3Li45MDY2MTY3YTJhOGJmY2Y2
OTFjNDI5NzFkNzNjNjBjNTRhNWNkMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAyMC0wNy0yMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxp
YS5jb20+IGFuZCBQYXZlbCBGZWxkbWFuIDxwYXZlbC5mZWxkbWFuQGdtYWlsLmNvbT4KKworICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0aGUg
UGFnZSBhZ2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEzMjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uOiBBZGQgYSBuZXcgc2V0U2NyZWVuU2l6
ZU92ZXJyaWRlIEFQSSBpbiB0aGUgUGFnZSBhZ2VudC4KKwogMjAyMC0wNy0xOSAgRnVqaWkgSGly
b25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIG5v
bi11bmlmaWVkIHNvdXJjZSBidWlsZCBmaXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2Yjg4ZDc1NDhjYzUyZDI1
MTBhMzE5YWJjMWE5M2E3MGNmMzUxYTE1Li45N2NjZDM0ZjEwZjVlNDRjMTJkYzIzMjY2NGVjMzIw
YmQ3OWY0OWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDctMjAgIFBoaWxp
cHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPiBhbmQgUGF2ZWwgRmVsZG1hbiA8cGF2
ZWwuZmVsZG1hbkBnbWFpbC5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIHNldFNj
cmVlblNpemVPdmVycmlkZSBBUEkgdG8gdGhlIFBhZ2UgYWdlbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzI0MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IHRoZSBXZWJJbnNwZWN0b3IgUGFn
ZSBhZ2VudCB0byBvdmVycmlkZSB0aGUgU2NyZWVuIHNpemUuIFRoaXMgaXMgdXNlZnVsIGZvciBh
dXRvbWF0aW9uCisgICAgICAgIHB1cnBvc2VzLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9w
YWdlL3NldFNjcmVlblNpemVPdmVycmlkZS5odG1sCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVy
eUV2YWx1YXRvci5jcHA6IFVzZSB0aGUgUGFnZTo6c2NyZWVuU2l6ZSgpIG1ldGhvZCB0byBxdWVy
eSB0aGUgc2NyZWVuIGRpbWVuc2lvbnMuCisgICAgICAgIChXZWJDb3JlOjpkZXZpY2VBc3BlY3RS
YXRpb0V2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmRldmljZUhlaWdodEV2YWx1YXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OmRldmljZVdpZHRoRXZhbHVhdGUpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvclBhZ2VBZ2VudDo6c2V0U2NyZWVuU2l6ZU92ZXJyaWRlKTogSW1wbGVtZW50YXRpb24g
b2YgdGhlIG5ldyBBUEkgaG9va2luZworICAgICAgICBpbnRvIHRoZSBXZWJDb3JlOjpQYWdlOjpz
ZXRPdmVycmlkZVNjcmVlblNpemUoKSBtZXRob2QuCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6c2NyZWVuU2l6ZSk6IE5ldyBlbnRyeSBwb2ludCB0byBxdWVyeSB0
aGUgc2NyZWVuIHNpemUsIHRoaXMgdGFrZXMgaW50bworICAgICAgICBhY2NvdW50IHRoZSBvcHRp
b25hbCBvdmVycmlkZW4gc2NyZWVuIHNpemUuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRP
dmVycmlkZVNjcmVlblNpemUpOiBBUEkgdXNlZCBieSB0aGUgUGFnZSBhZ2VudCB0byBmYWtlIGEg
bmV3IHNjcmVlbiBzaXplLgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAqIHBhZ2Uv
U2NyZWVuLmNwcDogVXNlIHRoZSBQYWdlOjpzY3JlZW5TaXplKCkgbWV0aG9kIHRvIHF1ZXJ5IHRo
ZSBzY3JlZW4gZGltZW5zaW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbjo6aGVpZ2h0IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbjo6d2lkdGggY29uc3QpOgorCiAyMDIwLTA3
LTIwICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAg
IFVzZSBmb3J3YXJkIHRlbXBsYXRlIGRlY2xhcmF0aW9ucyBmb3IgQ29sb3JDb21wb25lbnRzIGlu
c3RlYWQgb2YgaW5jbHVkaW5nIENvbG9yQ29tcG9uZW50cy5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
ZwppbmRleCA2MmU4M2EzNzQ0NDJjY2JjZWQzMDVmYjQwMGFmNmRkMzllMmRhYTI2Li41YmY0YmI0
N2JhZTg4MDQ3YmNlMDE0MzZhNGM0YmE4ZTRkMDc5N2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wNy0yMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3Jt
YW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIHNldFNjcmVlblNp
emVPdmVycmlkZSBBUEkgdG8gdGhlIFBhZ2UgYWdlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzI0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6
ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzOgorICAg
ICAgICAoV0kubG9hZGVkKTogQWRkIGEgbmV3IGRyb3AtZG93biBtZW51IGFsbG93aW5nIHRvIG92
ZXJyaWRlIHRoZSBkZXZpY2Ugc2NyZWVuIHNpemUuCisKIDIwMjAtMDctMTUgIE5pa2l0YSBWYXNp
bHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogVGFi
IGJhciBjb2xvcnMgb2YgdW5kb2NrZWQgSW5zcGVjdG9yIHNob3VsZCBtYXRjaCBTYWZhcmkgaW4g
QmlnIFN1cgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90
b2NvbC9QYWdlLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29s
L1BhZ2UuanNvbgppbmRleCAzYjhmYTE4YmQ3ZThkOTVkN2U4Zjk1YjQ0MmFmYzYzZTU1MGNlNjNh
Li45NGQzZDNkZDJkZmI5MGYyOTdhMzU2YmE4MjlmNGRkYmFmZGY2ZDQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1BhZ2UuanNvbgorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1BhZ2UuanNvbgpAQCAtMzA0
LDYgKzMwNCwxNSBAQAogICAgICAgICAgICAgInJldHVybnMiOiBbCiAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJkYXRhIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkJhc2U2
NC1lbmNvZGVkIHdlYiBhcmNoaXZlLiIgfQogICAgICAgICAgICAgXQorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJzZXRTY3JlZW5TaXplT3ZlcnJpZGUiLAorICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIk92ZXJyaWRlcyBzY3JlZW4gc2l6ZSB3aXRoIHByb3Zp
ZGVkIHZhbHVlcy4iLAorICAgICAgICAgICAgInRhcmdldFR5cGVzIjogWyJwYWdlIl0sCisgICAg
ICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIndpZHRo
IiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJTY3JlZW4gd2lkdGgiLCAib3B0
aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoZWlnaHQiLCAidHlw
ZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIlNjcmVlbiBoZWlnaHQiLCAib3B0aW9uYWwi
OiB0cnVlIH0KKyAgICAgICAgICAgIF0KICAgICAgICAgfQogICAgIF0sCiAgICAgImV2ZW50cyI6
IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCA4MTE4
YjdhYjNjNTBiM2NlZDgxMjBmYzEwNmRjZTljNzMxNDFhZmU0Li43NzUyNzMyMGJkYmMyZWYxMzlj
NzZkYzVkOWE3MjMwY2YzMjZmMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlF
dmFsdWF0b3IuY3BwCkBAIC0zODgsNyArMzg4LDcgQEAgc3RhdGljIGJvb2wgZGV2aWNlQXNwZWN0
UmF0aW9FdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2kK
ICAgICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGF1dG8gc2l6ZSA9
IHNjcmVlblJlY3QoZnJhbWUubWFpbkZyYW1lKCkudmlldygpKS5zaXplKCk7CisgICAgYXV0byBz
aXplID0gZnJhbWUuc2NyZWVuU2l6ZSgpOwogICAgIGJvb2wgcmVzdWx0ID0gY29tcGFyZUFzcGVj
dFJhdGlvVmFsdWUodmFsdWUsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgb3ApOwogICAg
IExPR19XSVRIX1NUUkVBTShNZWRpYVF1ZXJpZXMsIHN0cmVhbSA8PCAiICBkZXZpY2VBc3BlY3RS
YXRpb0V2YWx1YXRlOiAiIDw8IG9wIDw8ICIgIiA8PCBhc3BlY3RSYXRpb1ZhbHVlQXNTdHJpbmco
dmFsdWUpIDw8ICIgYWN0dWFsIHNjcmVlbiBzaXplICIgPDwgc2l6ZSA8PCAiOiAiIDw8IHJlc3Vs
dCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTUwNiw3ICs1MDYsNyBAQCBzdGF0aWMgYm9vbCBk
ZXZpY2VIZWlnaHRFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29u
dmVyc2lvbkRhdAogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlu
dCBsZW5ndGg7Ci0gICAgYXV0byBoZWlnaHQgPSBzY3JlZW5SZWN0KGZyYW1lLm1haW5GcmFtZSgp
LnZpZXcoKSkuaGVpZ2h0KCk7CisgICAgYXV0byBoZWlnaHQgPSBmcmFtZS5zY3JlZW5TaXplKCku
aGVpZ2h0KCk7CiAgICAgaWYgKCFjb21wdXRlTGVuZ3RoKHZhbHVlLCAhZnJhbWUuZG9jdW1lbnQo
KS0+aW5RdWlya3NNb2RlKCksIGNvbnZlcnNpb25EYXRhLCBsZW5ndGgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKQEAgLTUyMiw3ICs1MjIsNyBAQCBzdGF0aWMgYm9vbCBkZXZpY2VXaWR0aEV2
YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YQog
ICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGludCBsZW5ndGg7Ci0g
ICAgYXV0byB3aWR0aCA9IHNjcmVlblJlY3QoZnJhbWUubWFpbkZyYW1lKCkudmlldygpKS53aWR0
aCgpOworICAgIGF1dG8gd2lkdGggPSBmcmFtZS5zY3JlZW5TaXplKCkud2lkdGgoKTsKICAgICBp
ZiAoIWNvbXB1dGVMZW5ndGgodmFsdWUsICFmcmFtZS5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUo
KSwgY29udmVyc2lvbkRhdGEsIGxlbmd0aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwCmluZGV4IDUzOWU4MTA1YjY2ZTdiMmE2YTA1NTcxYTFlMWM4Y2Q2YmRmMjdjOTAuLmE4
MGExY2QwNTcwM2YxZWQyMmM3ODc2OTU1NzNjNzJlZTdhMGM5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAg
LTEwODcsNCArMTA4NywyMSBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6YXJjaGl2ZShFcnJv
clN0cmluZyYgZXJyb3JTdHJpbmcsIFN0cmluZyogZGF0YSkKIH0KICNlbmRpZgogCit2b2lkIElu
c3BlY3RvclBhZ2VBZ2VudDo6c2V0U2NyZWVuU2l6ZU92ZXJyaWRlKEVycm9yU3RyaW5nJiBlcnJv
clN0cmluZywgY29uc3QgaW50KiB3aWR0aCwgY29uc3QgaW50KiBoZWlnaHQpCit7CisgICAgaWYg
KHdpZHRoICYmICp3aWR0aCA8PSAwKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gIlNjcmVlbiB3
aWR0aCBvdmVycmlkZSBzaG91bGQgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIl9zOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKGhlaWdodCAmJiAqaGVpZ2h0IDw9IDApIHsKKyAgICAg
ICAgZXJyb3JTdHJpbmcgPSAiU2NyZWVuIGhlaWdodCBvdmVycmlkZSBzaG91bGQgYmUgYSBwb3Np
dGl2ZSBpbnRlZ2VyIl9zOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgT3B0aW9uYWw8
aW50PiB3aWR0aE92ZXJyaWRlID0gd2lkdGggPyBtYWtlT3B0aW9uYWwoKndpZHRoKSA6IFdURjo6
bnVsbG9wdDsKKyAgICBPcHRpb25hbDxpbnQ+IGhlaWdodE92ZXJyaWRlID0gaGVpZ2h0ID8gbWFr
ZU9wdGlvbmFsKCpoZWlnaHQpIDogV1RGOjpudWxsb3B0OworICAgIG1faW5zcGVjdGVkUGFnZS5t
YWluRnJhbWUoKS5zZXRPdmVycmlkZVNjcmVlblNpemUod2lkdGhPdmVycmlkZSwgaGVpZ2h0T3Zl
cnJpZGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuaAppbmRleCAzYmNkMDQ4
N2NmYzg3NjZiYWEwMWM3ODA0MTczYTE1NzQ3YjQ3YjJkLi43ZDNmYzFhMjA0ZDc4ZGRiMzM3NjA1
YzZhMWEwMjliYWQzZTFhOTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmgKQEAgLTEyMiw2ICsxMjIsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBhcmNoaXZlKEVycm9yU3RyaW5nJiwgU3RyaW5nKiBkYXRhKSBvdmVycmlkZTsK
ICNlbmRpZgogCisgICAgdm9pZCBzZXRTY3JlZW5TaXplT3ZlcnJpZGUoRXJyb3JTdHJpbmcmLCBj
b25zdCBpbnQqIHdpZHRoLCBjb25zdCBpbnQqIGhlaWdodCkgb3ZlcnJpZGU7CisKICAgICAvLyBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24KICAgICB2b2lkIGRvbUNvbnRlbnRFdmVudEZpcmVkKCk7
CiAgICAgdm9pZCBsb2FkRXZlbnRGaXJlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCA0ZDAz
NGYzYmQyYmZhOWFhYWQwZTZlMmE0OTQzODRkM2FjMzJhZWVhLi5kYWJhNzExM2E3OWMzNWUzOGI5
YmM4YjI5ZDkwMGY2NjEzNGYwZjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMTA2MCw2ICsx
MDYwLDIzIEBAIGJvb2wgRnJhbWU6Om1heVByZXdhcm1Mb2NhbFN0b3JhZ2UoKSBjb25zdAogICAg
IHJldHVybiBtX2xvY2FsU3RvcmFnZVByZXdhcm1pbmdDb3VudCA8IG1heGxvY2FsU3RvcmFnZVBy
ZXdhcm1pbmdDb3VudDsKIH0KIAorRmxvYXRTaXplIEZyYW1lOjpzY3JlZW5TaXplKCkgY29uc3QK
K3sKKyAgICBjb25zdCBhdXRvJiByZWFsU2l6ZSA9IHNjcmVlblJlY3QodmlldygpKS5zaXplKCk7
CisgICAgcmV0dXJuIEZsb2F0U2l6ZShtX292ZXJyaWRlU2NyZWVuV2lkdGgudmFsdWVPcihyZWFs
U2l6ZS53aWR0aCgpKSwgbV9vdmVycmlkZVNjcmVlbkhlaWdodC52YWx1ZU9yKHJlYWxTaXplLmhl
aWdodCgpKSk7Cit9CisKK3ZvaWQgRnJhbWU6OnNldE92ZXJyaWRlU2NyZWVuU2l6ZShPcHRpb25h
bDxpbnQ+IHdpZHRoLCBPcHRpb25hbDxpbnQ+IGhlaWdodCkKK3sKKyAgICBpZiAod2lkdGggPT0g
bV9vdmVycmlkZVNjcmVlbldpZHRoICYmIGhlaWdodCA9PSBtX292ZXJyaWRlU2NyZWVuSGVpZ2h0
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX292ZXJyaWRlU2NyZWVuV2lkdGggPSB3aWR0aDsK
KyAgICBtX292ZXJyaWRlU2NyZWVuSGVpZ2h0ID0gaGVpZ2h0OworICAgIGlmIChhdXRvKiBkb2N1
bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCisgICAgICAgIGRvY3VtZW50LT51cGRhdGVWaWV3cG9y
dEFyZ3VtZW50cygpOworfQorCiB2b2lkIEZyYW1lOjpzZWxmT25seVJlZigpCiB7CiAgICAgQVNT
RVJUKGlzTWFpbkZyYW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IDQ1NDQwYWMxYWFmMDczNzFj
MzUyZjE4ZGI0MTY5NjFmOGYxNDFiNjIuLmZjOTdjZjZkYTUzNjFiMTY0YTM2MzJjM2JjMzdiZDJm
YWNiYTFhYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTMwOCw2ICszMDgsOSBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGludmFsaWRhdGVDb250ZW50RXZlbnRSZWdpb25zSWZOZWVkZWQoKTsKIAorICAg
IFdFQkNPUkVfRVhQT1JUIEZsb2F0U2l6ZSBzY3JlZW5TaXplKCkgY29uc3Q7CisgICAgdm9pZCBz
ZXRPdmVycmlkZVNjcmVlblNpemUoT3B0aW9uYWw8aW50PiwgT3B0aW9uYWw8aW50Pik7CisKIC8v
ID09PT09PT09CiAKICAgICB2b2lkIHNlbGZPbmx5UmVmKCk7CkBAIC0zNzAsNiArMzczLDkgQEAg
cHJpdmF0ZToKICAgICBib29sIG1faGFzSGFkVXNlckludGVyYWN0aW9uIHsgZmFsc2UgfTsKICAg
ICB1bnNpZ25lZCBtX2xvY2FsU3RvcmFnZVByZXdhcm1pbmdDb3VudCB7IDAgfTsKIAorICAgIE9w
dGlvbmFsPGludD4gbV9vdmVycmlkZVNjcmVlbldpZHRoOworICAgIE9wdGlvbmFsPGludD4gbV9v
dmVycmlkZVNjcmVlbkhlaWdodDsKKwogICAgIFVuaXF1ZVJlZjxFdmVudEhhbmRsZXI+IG1fZXZl
bnRIYW5kbGVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNTQ1YmVjMWNlYjFmYzEwZGRj
NjZmM2E3YWZjMzRjYzg3MDkyYjM5Zi4uNjQ2YTVkYzk1NTVjMjhiZjAyNzI5MWQ4NWI5OGY4Mjg0
Y2Q5ZmM0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC05MCw2ICs5MCw3IEBACiAjaW5jbHVkZSAi
UGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2VNb25pdG9y
LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1TY3JlZW4uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNs
dWRlICJQbHVnSW5DbGllbnQuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nj
cmVlbi5jcHAKaW5kZXggYTlkMjI4Y2E0MDQ5MTg4NjBjNDA2NTE5OTRkYjc4YTFlNzZkYjVjYS4u
NmU0NWQ5ZGYxNDRlYzczZTNmMmUwNzBiMGRjNWUyM2JhYzQwYzQxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Ny
ZWVuLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkT2JzZXJ2
ZXIuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCkBAIC01Myw3ICs1NCw3
IEBAIHVuc2lnbmVkIFNjcmVlbjo6aGVpZ2h0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQVBJU3Rh
dGlzdGljc0VuYWJsZWQoKSkKICAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgp
LmxvZ1NjcmVlbkFQSUFjY2Vzc2VkKCpmcmFtZS0+ZG9jdW1lbnQoKSwgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljczo6U2NyZWVuQVBJOjpIZWlnaHQpOwotICAgIGxvbmcgaGVpZ2h0ID0gc3RhdGljX2Nh
c3Q8bG9uZz4oc2NyZWVuUmVjdChmcmFtZS0+dmlldygpKS5oZWlnaHQoKSk7CisgICAgbG9uZyBo
ZWlnaHQgPSBzdGF0aWNfY2FzdDxsb25nPihmcmFtZS0+c2NyZWVuU2l6ZSgpLmhlaWdodCgpKTsK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGhlaWdodCk7CiB9CiAKQEAgLTY0LDcg
KzY1LDcgQEAgdW5zaWduZWQgU2NyZWVuOjp3aWR0aCgpIGNvbnN0CiAgICAgICAgIHJldHVybiAw
OwogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkFQ
SVN0YXRpc3RpY3NFbmFibGVkKCkpCiAgICAgICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFy
ZWQoKS5sb2dTY3JlZW5BUElBY2Nlc3NlZCgqZnJhbWUtPmRvY3VtZW50KCksIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3M6OlNjcmVlbkFQSTo6V2lkdGgpOwotICAgIGxvbmcgd2lkdGggPSBzdGF0aWNf
Y2FzdDxsb25nPihzY3JlZW5SZWN0KGZyYW1lLT52aWV3KCkpLndpZHRoKCkpOworICAgIGxvbmcg
d2lkdGggPSBzdGF0aWNfY2FzdDxsb25nPihmcmFtZS0+c2NyZWVuU2l6ZSgpLndpZHRoKCkpOwog
ICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4od2lkdGgpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ov
bG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCBjNWYzNTgxZjUyZTE1NGI2MGM2MjIwNWQzNjE2ZjZj
YmVjZTI0YTY4Li5iOGE0ZWIwYzg5NDJlMjljZWM5ZmNiMzRmZWQ0MzExY2ZhODNlYTlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25z
L2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKQEAgLTkwLDYgKzkwLDkgQEAgbG9jYWxpemVk
U3RyaW5nc1siLCAiXSA9ICIsICI7CiBsb2NhbGl6ZWRTdHJpbmdzWyIwIENvbnNvbGUgZXJyb3Jz
Il0gPSAiMCBDb25zb2xlIGVycm9ycyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyIwIENvbnNvbGUgd2Fy
bmluZ3MiXSA9ICIwIENvbnNvbGUgd2FybmluZ3MiOwogbG9jYWxpemVkU3RyaW5nc1siMSBtYXRj
aCJdID0gIjEgbWF0Y2giOworbG9jYWxpemVkU3RyaW5nc1siMTA4MFAiXSA9ICIxMDgwUCI7Cits
b2NhbGl6ZWRTdHJpbmdzWyI3MjBQIl0gPSAiNzIwUCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJTY3Jl
ZW4gc2l6ZToiXSA9ICJTY3JlZW4gc2l6ZToiOwogbG9jYWxpemVkU3RyaW5nc1siMkQiXSA9ICIy
RCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBY2Nlc3NpYmlsaXR5Il0gPSAiQWNjZXNzaWJpbGl0eSI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJBY3Rpb24iXSA9ICJBY3Rpb24iOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCmluZGV4IGJjNjEyOWQ1MzA2
ZjNhZmI5MzRkNDZhMTkyMjRjNmUyNmQ4YzM5YTUuLjEzZWZjOWRiMjcxYTVmNWUyMjNkZWE1ZjYw
MTZmYmY5NTU3YjhiMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0Jhc2UvTWFpbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9CYXNlL01haW4uanMKQEAgLTE5NCw2ICsxOTQsNyBAQCBXSS5sb2FkZWQgPSBmdW5jdGlv
bigpCiAgICAgV0kudmlzaWJsZSA9IGZhbHNlOwogICAgIFdJLl93aW5kb3dLZXlkb3duTGlzdGVu
ZXJzID0gW107CiAgICAgV0kuX292ZXJyaWRlbkRldmljZVVzZXJBZ2VudCA9IG51bGw7CisgICAg
V0kuX292ZXJyaWRlbkRldmljZVNjcmVlblNpemUgPSBudWxsOwogICAgIFdJLl9vdmVycmlkZW5E
ZXZpY2VTZXR0aW5ncyA9IG5ldyBNYXA7CiAKICAgICAvLyBUYXJnZXRzLgpAQCAtMjI2MCw2ICsy
MjYxLDEyMiBAQCBXSS5faGFuZGxlRGV2aWNlU2V0dGluZ3NUYWJCYXJCdXR0b25DbGlja2VkID0g
ZnVuY3Rpb24oZXZlbnQpCiAgICAgICAgIH0KICAgICB9KTsKIAorICAgIGZ1bmN0aW9uIGFwcGx5
T3ZlcnJpZGRlblNjcmVlblNpemUodmFsdWUsIGZvcmNlKSB7CisgICAgICAgIGlmICh2YWx1ZSA9
PT0gV0kuX292ZXJyaWRlbkRldmljZVNjcmVlblNpemUpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgaWYgKCFmb3JjZSAmJiAoIXZhbHVlIHx8IHZhbHVlID09PSAiZGVmYXVsdCIpKSB7
CisgICAgICAgICAgICB0YXJnZXQuUGFnZUFnZW50LnNldFNjcmVlblNpemVPdmVycmlkZSgoZXJy
b3IpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICAg
ICAgY29uc29sZS5lcnJvcihlcnJvcik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBXSS5fb3ZlcnJpZGVuRGV2aWNlU2Ny
ZWVuU2l6ZSA9IG51bGw7CisgICAgICAgICAgICAgICAgdXBkYXRlQWN0aXZhdGVkU3RhdGUoKTsK
KyAgICAgICAgICAgICAgICB0YXJnZXQuUGFnZUFnZW50LnJlbG9hZCgpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsZXQgdG9rZW5zID0gdmFsdWUuc3Bs
aXQoIngiKTsKKyAgICAgICAgICAgIGxldCB3aWR0aCA9IHBhcnNlSW50KHRva2Vuc1swXSk7Cisg
ICAgICAgICAgICBsZXQgaGVpZ2h0ID0gcGFyc2VJbnQodG9rZW5zWzFdKTsKKyAgICAgICAgICAg
IHRhcmdldC5QYWdlQWdlbnQuc2V0U2NyZWVuU2l6ZU92ZXJyaWRlKHdpZHRoLCBoZWlnaHQsIChl
cnJvcikgPT4geworICAgICAgICAgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgICAg
ICAgICBjb25zb2xlLmVycm9yKGVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIFdJLl9vdmVycmlkZW5EZXZpY2VT
Y3JlZW5TaXplID0gdmFsdWU7CisgICAgICAgICAgICAgICAgdXBkYXRlQWN0aXZhdGVkU3RhdGUo
KTsKKyAgICAgICAgICAgICAgICB0YXJnZXQuUGFnZUFnZW50LnJlbG9hZCgpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIGxldCBzY3JlZW5TaXplUm93ID0gdGFi
bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKSk7CisKKyAgICBsZXQg
c2NyZWVuU2l6ZVRpdGxlID0gc2NyZWVuU2l6ZVJvdy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJ0ZCIpKTsKKyAgICBzY3JlZW5TaXplVGl0bGUudGV4dENvbnRlbnQgPSBXSS5V
SVN0cmluZygiU2NyZWVuIHNpemU6Iik7CisKKyAgICBsZXQgc2NyZWVuU2l6ZVZhbHVlID0gc2Ny
ZWVuU2l6ZVJvdy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpKTsKKyAg
ICBzY3JlZW5TaXplVmFsdWUuY2xhc3NMaXN0LmFkZCgic2NyZWVuLXNpemUiKTsKKworICAgIGxl
dCBzY3JlZW5TaXplVmFsdWVTZWxlY3QgPSBzY3JlZW5TaXplVmFsdWUuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic2VsZWN0IikpOworCisgICAgbGV0IHNjcmVlblNpemVWYWx1
ZUlucHV0ID0gbnVsbDsKKworICAgIGNvbnN0IHNjcmVlblNpemVzID0gWworICAgICAgICBbCisg
ICAgICAgICAgICB7IG5hbWU6IFdJLlVJU3RyaW5nKCJEZWZhdWx0IiksIHZhbHVlOiAiZGVmYXVs
dCIgfSwKKyAgICAgICAgXSwKKyAgICAgICAgWworICAgICAgICAgICAgeyBuYW1lOiBXSS5VSVN0
cmluZygiMTA4MFAiKSwgdmFsdWU6ICIxOTIweDEwODAifSwKKyAgICAgICAgICAgIHsgbmFtZTog
V0kuVUlTdHJpbmcoIjcyMFAiKSwgdmFsdWU6ICIxMjgweDcyMCJ9CisgICAgICAgIF0sCisgICAg
ICAgIFsKKyAgICAgICAgICAgIHsgbmFtZTogV0kuVUlTdHJpbmcoIk90aGVyXHUyMDI2IiksIHZh
bHVlOiAib3RoZXIiIH0sCisgICAgICAgIF0sCisgICAgXTsKKworICAgIGxldCBzZWxlY3RlZFNj
cmVlblNpemVPcHRpb25FbGVtZW50ID0gbnVsbDsKKworICAgIGZvciAobGV0IGdyb3VwIG9mIHNj
cmVlblNpemVzKSB7CisgICAgICAgIGZvciAobGV0IHtuYW1lLCB2YWx1ZX0gb2YgZ3JvdXApIHsK
KyAgICAgICAgICAgIGxldCBvcHRpb25FbGVtZW50ID0gc2NyZWVuU2l6ZVZhbHVlU2VsZWN0LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpKTsKKyAgICAgICAgICAg
IG9wdGlvbkVsZW1lbnQudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQu
dGV4dENvbnRlbnQgPSBuYW1lOworCisgICAgICAgICAgICBpZiAodmFsdWUgPT09IFdJLl9vdmVy
cmlkZW5EZXZpY2VTY3JlZW5TaXplKQorICAgICAgICAgICAgICAgIHNlbGVjdGVkU2NyZWVuU2l6
ZU9wdGlvbkVsZW1lbnQgPSBvcHRpb25FbGVtZW50OworICAgICAgICB9CisKKyAgICAgICAgaWYg
KGdyb3VwICE9PSBzY3JlZW5TaXplcy5sYXN0VmFsdWUpCisgICAgICAgICAgICBzY3JlZW5TaXpl
VmFsdWVTZWxlY3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaHIiKSk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gc2hvd1NjcmVlblNpemVJbnB1dCgpIHsKKyAgICAgICAgaWYg
KHNjcmVlblNpemVWYWx1ZUlucHV0KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHNj
cmVlblNpemVWYWx1ZUlucHV0ID0gc2NyZWVuU2l6ZVZhbHVlLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlucHV0IikpOworICAgICAgICBzY3JlZW5TaXplVmFsdWVJbnB1dC5z
cGVsbGNoZWNrID0gZmFsc2U7CisgICAgICAgIGxldCBkZWZhdWx0U2l6ZSA9IHdpbmRvdy5zY3Jl
ZW4ud2lkdGggKyAieCIgKyB3aW5kb3cuc2NyZWVuLmhlaWdodDsKKyAgICAgICAgc2NyZWVuU2l6
ZVZhbHVlSW5wdXQudmFsdWUgPSBzY3JlZW5TaXplVmFsdWVJbnB1dC5wbGFjZWhvbGRlciA9IFdJ
Ll9vdmVycmlkZW5EZXZpY2VTY3JlZW5TaXplIHx8IGRlZmF1bHRTaXplOworICAgICAgICBzY3Jl
ZW5TaXplVmFsdWVJbnB1dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIChjbGlja0V2ZW50KSA9
PiB7CisgICAgICAgICAgICBjbGlja0V2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgIH0p
OworICAgICAgICBzY3JlZW5TaXplVmFsdWVJbnB1dC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2Ui
LCAoaW5wdXRFdmVudCkgPT4geworICAgICAgICAgICAgYXBwbHlPdmVycmlkZGVuU2NyZWVuU2l6
ZShzY3JlZW5TaXplVmFsdWVJbnB1dC52YWx1ZSwgdHJ1ZSk7CisgICAgICAgIH0pOworCisgICAg
ICAgIFdJLl9kZXZpY2VTZXR0aW5nc1BvcG92ZXIudXBkYXRlKCk7CisgICAgfQorCisgICAgaWYg
KHNlbGVjdGVkU2NyZWVuU2l6ZU9wdGlvbkVsZW1lbnQpCisgICAgICAgIHNjcmVlblNpemVWYWx1
ZVNlbGVjdC52YWx1ZSA9IHNlbGVjdGVkU2NyZWVuU2l6ZU9wdGlvbkVsZW1lbnQudmFsdWU7Cisg
ICAgZWxzZSBpZiAoV0kuX292ZXJyaWRlbkRldmljZVNjcmVlblNpemUpIHsKKyAgICAgICAgc2Ny
ZWVuU2l6ZVZhbHVlU2VsZWN0LnZhbHVlID0gIm90aGVyIjsKKyAgICAgICAgc2hvd1NjcmVlblNp
emVJbnB1dCgpOworICAgIH0KKworICAgIHNjcmVlblNpemVWYWx1ZVNlbGVjdC5hZGRFdmVudExp
c3RlbmVyKCJjaGFuZ2UiLCAoKSA9PiB7CisgICAgICAgIGxldCB2YWx1ZSA9IHNjcmVlblNpemVW
YWx1ZVNlbGVjdC52YWx1ZTsKKyAgICAgICAgaWYgKHZhbHVlID09PSAib3RoZXIiKSB7CisgICAg
ICAgICAgICBzaG93U2NyZWVuU2l6ZUlucHV0KCk7CisgICAgICAgICAgICBzY3JlZW5TaXplVmFs
dWVJbnB1dC5zZWxlY3QoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzY3Jl
ZW5TaXplVmFsdWVJbnB1dCkgeworICAgICAgICAgICAgICAgIHNjcmVlblNpemVWYWx1ZUlucHV0
LnJlbW92ZSgpOworICAgICAgICAgICAgICAgIHNjcmVlblNpemVWYWx1ZUlucHV0ID0gbnVsbDsK
KworICAgICAgICAgICAgICAgIFdJLl9kZXZpY2VTZXR0aW5nc1BvcG92ZXIudXBkYXRlKCk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGFwcGx5T3ZlcnJpZGRlblNjcmVlblNpemUodmFs
dWUpOworICAgICAgICB9CisgICAgfSk7CisKICAgICBjb25zdCBzZXR0aW5ncyA9IFsKICAgICAg
ICAgewogICAgICAgICAgICAgbmFtZTogV0kuVUlTdHJpbmcoIkRpc2FibGU6IiksCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NjMxNDBhODU4M2FmZDVhMjJjNmIwNzUwYzBkMmJjYzMwYmM5YjgxOC4uN2U0YjM4ODQ5Y2I5ZWJk
MWRlNjMzOGNiN2E4MTJiMWI0MWU4YzEwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA3
LTIwICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4gYW5kIFBhdmVsIEZl
bGRtYW4gPHBhdmVsLmZlbGRtYW5AZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IEFkZCBzZXRTY3JlZW5TaXplT3ZlcnJpZGUgQVBJIHRvIHRoZSBQYWdlIGFnZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMyNDIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9wYWdl
L3NldFNjcmVlblNpemVPdmVycmlkZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVPdmVycmlkZS5odG1sOiBBZGRlZC4KKwogMjAyMC0w
Ny0xOSAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtX
UEVdIFJlbW92ZSBzb21lIGRlcHJlY2F0ZWQgZXhwZWN0YXRpb24gZmlsZXMgYW5kIGdhcmRlbiBm
YWlsdXJlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVu
U2l6ZU92ZXJyaWRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5T
aXplT3ZlcnJpZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yN2ZkYTdmNjM0OTllY2YzMzYxY2ZmMDQxYTli
ZDkxNDEzYjk4MGRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Bh
Z2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC1k
ZXZpY2Utd2lkdGg6IDEwMDBweCkgeworICAgICAgICAgICAgIGJvZHkgeworICAgICAgICAgICAg
ICAgICBjb2xvcjogbGlnaHRibHVlOworICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAg
ICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKQor
ICAgICAgICAgeworICAgICAgICAgICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRl
QXN5bmNTdWl0ZSgiUGFnZS5zZXRTY3JlZW5TaXplT3ZlcnJpZGUiKTsKKworICAgICAgICAgICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgICAgICAgbmFtZTogIlNjcmVlblNpemVP
dmVycmlkZU92ZXJyaWRlIiwKKyAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICJWZXJpZnkg
dGhhdCB0aGUgaW5zcGVjdG9yIGNhbiBvdmVycmlkZSB0aGUgc2NyZWVuIHNpemUuIiwKKyAgICAg
ICAgICAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgICAgICAgICAgIGxldCBvcmln
aW5hbFNjcmVlbldpZHRoID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2lu
ZG93LnNjcmVlbi53aWR0aGApOworICAgICAgICAgICAgICAgICAgICAgbGV0IG9yaWdpbmFsU2Ny
ZWVuSGVpZ2h0ID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LnNj
cmVlbi5oZWlnaHRgKTsKKyAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJD
dXJyZW50IHNjcmVlbiBzaXplOiAiICsgb3JpZ2luYWxTY3JlZW5XaWR0aCArICJ4IiArIG9yaWdp
bmFsU2NyZWVuSGVpZ2h0KTsKKworICAgICAgICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRCYWNr
Z3JvdW5kQ29sb3IgPSBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJnZXRDb21w
dXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmNvbG9yIik7CisgICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGN1cnJlbnRCYWNrZ3JvdW5kQ29sb3IsICJyZ2IoMCwg
MCwgMCkiLCAiQm9keSBzaG91bGQgYmUgd2hpdGUiKTsKKworICAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coIk92ZXJyaWRpbmcgc2NyZWVuIHNpemUgdG8gMTAwMHg1MDAiKTsK
KyAgICAgICAgICAgICAgICAgICAgIGF3YWl0IFBhZ2VBZ2VudC5zZXRTY3JlZW5TaXplT3ZlcnJp
ZGUoMTAwMCwgNTAwKTsKKyAgICAgICAgICAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoYGxvY2F0aW9uLnJlbG9hZCgpYCk7CisKKyAgICAgICAgICAgICAgICAg
ICAgIGxldCBuZXdTY3JlZW5XaWR0aCA9IGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoYHdpbmRvdy5zY3JlZW4ud2lkdGhgKTsKKyAgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwobmV3U2NyZWVuV2lkdGgsIDEwMDAsICJEZWZhdWx0IHNjcmVlbiB3
aWR0aCBzaG91bGQgYmUgMTAwMCIpOworICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1NjcmVl
bkhlaWdodCA9IGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5zY3Jl
ZW4uaGVpZ2h0YCk7CisgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVx
dWFsKG5ld1NjcmVlbkhlaWdodCwgNTAwLCAiRGVmYXVsdCBzY3JlZW4gaGVpZ2h0IHNob3VsZCBi
ZSA1MDAiKTsKKworICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld0JhY2tncm91bmRDb2xvciA9
IGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuYm9keSkuY29sb3IiKTsKKworICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RFcXVhbChuZXdCYWNrZ3JvdW5kQ29sb3IsICJyZ2IoMTczLCAyMTYsIDIzMCkiLCAi
Qm9keSBzaG91bGQgYmUgbGlnaHRibHVlIik7CisKKyAgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJSZW1vdmluZyBzY3JlZW4gc2l6ZSBvdmVycmlkZSIpOworICAgICAgICAg
ICAgICAgICAgICAgYXdhaXQgUGFnZUFnZW50LnNldFNjcmVlblNpemVPdmVycmlkZSgpOworICAg
ICAgICAgICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgbG9j
YXRpb24ucmVsb2FkKClgKTsKKworICAgICAgICAgICAgICAgICAgICAgbmV3U2NyZWVuV2lkdGgg
PSBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuc2NyZWVuLndpZHRo
YCk7CisgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG5ld1Nj
cmVlbldpZHRoLCBvcmlnaW5hbFNjcmVlbldpZHRoLCAiU2NyZWVuIHdpZHRoIG92ZXJyaWRlIHNo
b3VsZCBiZSByZW1vdmVkIik7CisgICAgICAgICAgICAgICAgICAgICBuZXdTY3JlZW5IZWlnaHQg
PSBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuc2NyZWVuLmhlaWdo
dGApOworICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChuZXdT
Y3JlZW5IZWlnaHQsIG9yaWdpbmFsU2NyZWVuSGVpZ2h0LCAiU2NyZWVuIGhlaWdodCBvdmVycmlk
ZSBzaG91bGQgYmUgcmVtb3ZlZCIpOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
fSk7CisKKyAgICAgICAgICAgICBXSS5kb21NYW5hZ2VyLnJlcXVlc3REb2N1bWVudCgobm9kZSkg
PT4geworICAgICAgICAgICAgICAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKKyAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFk
PgorICAgIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIi8+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVPdmVy
cmlkZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2luc3BlY3Rvci9w
YWdlL3NldFNjcmVlblNpemVPdmVycmlkZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmRmMjY4
NjdkODM1MzBkOTkyOTMwZDZkNzExNjA4MDEwMTg2YzllZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJy
aWRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0
ZTogUGFnZS5zZXRTY3JlZW5TaXplT3ZlcnJpZGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBTY3Jl
ZW5TaXplT3ZlcnJpZGVPdmVycmlkZQorQ3VycmVudCBzY3JlZW4gc2l6ZTogMTAyNHg3NjgKK1BB
U1M6IEJvZHkgc2hvdWxkIGJlIHdoaXRlCitPdmVycmlkaW5nIHNjcmVlbiBzaXplIHRvIDEwMDB4
NTAwCitQQVNTOiBEZWZhdWx0IHNjcmVlbiB3aWR0aCBzaG91bGQgYmUgMTAwMAorUEFTUzogRGVm
YXVsdCBzY3JlZW4gaGVpZ2h0IHNob3VsZCBiZSA1MDAKK1BBU1M6IEJvZHkgc2hvdWxkIGJlIGxp
Z2h0Ymx1ZQorUmVtb3Zpbmcgc2NyZWVuIHNpemUgb3ZlcnJpZGUKK1BBU1M6IFNjcmVlbiB3aWR0
aCBvdmVycmlkZSBzaG91bGQgYmUgcmVtb3ZlZAorUEFTUzogU2NyZWVuIGhlaWdodCBvdmVycmlk
ZSBzaG91bGQgYmUgcmVtb3ZlZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9pbnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJp
ZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkZWMwMTA2YjFlNDM4NjgzZjg4YzZlN2QxNTE3
ZjhiN2FlYmE4OTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
aW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEzIEBACisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUGFnZS5zZXRTY3JlZW5TaXplT3Zl
cnJpZGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBTY3JlZW5TaXplT3ZlcnJpZGVPdmVycmlkZQor
Q3VycmVudCBzY3JlZW4gc2l6ZTogMTkyMHgxMDgwCitQQVNTOiBCb2R5IHNob3VsZCBiZSB3aGl0
ZQorT3ZlcnJpZGluZyBzY3JlZW4gc2l6ZSB0byAxMDAweDUwMAorUEFTUzogRGVmYXVsdCBzY3Jl
ZW4gd2lkdGggc2hvdWxkIGJlIDEwMDAKK1BBU1M6IERlZmF1bHQgc2NyZWVuIGhlaWdodCBzaG91
bGQgYmUgNTAwCitQQVNTOiBCb2R5IHNob3VsZCBiZSBsaWdodGJsdWUKK1JlbW92aW5nIHNjcmVl
biBzaXplIG92ZXJyaWRlCitQQVNTOiBTY3JlZW4gd2lkdGggb3ZlcnJpZGUgc2hvdWxkIGJlIHJl
bW92ZWQKK1BBU1M6IFNjcmVlbiBoZWlnaHQgb3ZlcnJpZGUgc2hvdWxkIGJlIHJlbW92ZWQKKwo=
</data>
<flag name="review"
          id="420083"
          type_id="1"
          status="-"
          setter="bburg"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411308</attachid>
            <date>2020-10-14 02:59:58 -0700</date>
            <delta_ts>2020-10-15 02:23:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wi-screen-size.diff</filename>
            <type>text/plain</type>
            <size>22783</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5YjEwZjQ4MTdkYTkuLmU4NmYzNWFhY2M4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDIwLTEwLTE0ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4gYW5k
IFBhdmVsIEZlbGRtYW4gPHBhdmVsLmZlbGRtYW5AZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IEFkZCBzZXRTY3JlZW5TaXplT3ZlcnJpZGUgQVBJIHRvIHRoZSBQYWdlIGFnZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMyNDIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJy
aWRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVP
dmVycmlkZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDIwLTEwLTEyICBaYWxhbiBCdWp0YXMg
IDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2ODI5NCk6IFsgaU9T
IHdrMiBdIGltcG9ydGVkL2JsaW5rL2Zhc3QvY3NzL3pvb21lZC1pbnRyaW5zaWMtd2lkdGguaHRt
bCBpcyBhIGNvbnN0YW50IGltYWdlIGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGYxZmQ4
YmUwYmM4OC4uNzIzMGE2MjUwNzMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc2LDYgKzc2LDcg
QEAgZWRpdGluZy9wYXN0ZWJvYXJkL2RvbS1wYXN0ZSBbIFNraXAgXQogZWRpdGluZy9wYXN0ZWJv
YXJkL21hYyBbIFNraXAgXQogZmFzdC9tZWRpYS9pb3MgWyBTa2lwIF0KIGZhc3QvZG9tL1Jhbmdl
L21hYyBbIFNraXAgXQoraW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLmh0bWwg
WyBTa2lwIF0KIAogIyBSZXF1aXJlcyBhc3luYyBvdmVyZmxvdyBzY3JvbGxpbmcKIGNvbXBvc2l0
aW5nL3NoYXJlZC1iYWNraW5nL292ZXJmbG93LXNjcm9sbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjI3ZmRhN2Y2MzQ5OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVPdmVy
cmlkZS5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAg
PGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c3R5bGU+Cisg
ICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLXdpZHRoOiAxMDAwcHgp
IHsKKyAgICAgICAgICAgICBib2R5IHsKKyAgICAgICAgICAgICAgICAgY29sb3I6IGxpZ2h0Ymx1
ZTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgICAg
IDxzY3JpcHQ+CisgICAgICAgICBmdW5jdGlvbiB0ZXN0KCkKKyAgICAgICAgIHsKKyAgICAgICAg
ICAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlBhZ2Uuc2V0
U2NyZWVuU2l6ZU92ZXJyaWRlIik7CisKKyAgICAgICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7
CisgICAgICAgICAgICAgICAgIG5hbWU6ICJTY3JlZW5TaXplT3ZlcnJpZGVPdmVycmlkZSIsCisg
ICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiVmVyaWZ5IHRoYXQgdGhlIGluc3BlY3RvciBj
YW4gb3ZlcnJpZGUgdGhlIHNjcmVlbiBzaXplLiIsCisgICAgICAgICAgICAgICAgIGFzeW5jIHRl
c3QoKSB7CisgICAgICAgICAgICAgICAgICAgICBsZXQgb3JpZ2luYWxTY3JlZW5XaWR0aCA9IGF3
YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5zY3JlZW4ud2lkdGhgKTsK
KyAgICAgICAgICAgICAgICAgICAgIGxldCBvcmlnaW5hbFNjcmVlbkhlaWdodCA9IGF3YWl0IElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5zY3JlZW4uaGVpZ2h0YCk7CisgICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ3VycmVudCBzY3JlZW4gc2l6ZTog
IiArIG9yaWdpbmFsU2NyZWVuV2lkdGggKyAieCIgKyBvcmlnaW5hbFNjcmVlbkhlaWdodCk7CisK
KyAgICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50QmFja2dyb3VuZENvbG9yID0gYXdhaXQg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5i
b2R5KS5jb2xvciIpOworICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbChjdXJyZW50QmFja2dyb3VuZENvbG9yLCAicmdiKDAsIDAsIDApIiwgIkJvZHkgc2hvdWxk
IGJlIHdoaXRlIik7CisKKyAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJP
dmVycmlkaW5nIHNjcmVlbiBzaXplIHRvIDEwMDB4NTAwIik7CisgICAgICAgICAgICAgICAgICAg
ICBhd2FpdCBQYWdlQWdlbnQuc2V0U2NyZWVuU2l6ZU92ZXJyaWRlKDEwMDAsIDUwMCk7CisgICAg
ICAgICAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBsb2Nh
dGlvbi5yZWxvYWQoKWApOworCisgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3U2NyZWVuV2lk
dGggPSBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuc2NyZWVuLndp
ZHRoYCk7CisgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG5l
d1NjcmVlbldpZHRoLCAxMDAwLCAiRGVmYXVsdCBzY3JlZW4gd2lkdGggc2hvdWxkIGJlIDEwMDAi
KTsKKyAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdTY3JlZW5IZWlnaHQgPSBhd2FpdCBJbnNw
ZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuc2NyZWVuLmhlaWdodGApOworICAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChuZXdTY3JlZW5IZWlnaHQs
IDUwMCwgIkRlZmF1bHQgc2NyZWVuIGhlaWdodCBzaG91bGQgYmUgNTAwIik7CisKKyAgICAgICAg
ICAgICAgICAgICAgIGxldCBuZXdCYWNrZ3JvdW5kQ29sb3IgPSBhd2FpdCBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmNvbG9yIik7
CisKKyAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwobmV3QmFj
a2dyb3VuZENvbG9yLCAicmdiKDE3MywgMjE2LCAyMzApIiwgIkJvZHkgc2hvdWxkIGJlIGxpZ2h0
Ymx1ZSIpOworCisgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUmVtb3Zp
bmcgc2NyZWVuIHNpemUgb3ZlcnJpZGUiKTsKKyAgICAgICAgICAgICAgICAgICAgIGF3YWl0IFBh
Z2VBZ2VudC5zZXRTY3JlZW5TaXplT3ZlcnJpZGUoKTsKKyAgICAgICAgICAgICAgICAgICAgIGF3
YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGxvY2F0aW9uLnJlbG9hZCgpYCk7CisK
KyAgICAgICAgICAgICAgICAgICAgIG5ld1NjcmVlbldpZHRoID0gYXdhaXQgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZShgd2luZG93LnNjcmVlbi53aWR0aGApOworICAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChuZXdTY3JlZW5XaWR0aCwgb3JpZ2luYWxT
Y3JlZW5XaWR0aCwgIlNjcmVlbiB3aWR0aCBvdmVycmlkZSBzaG91bGQgYmUgcmVtb3ZlZCIpOwor
ICAgICAgICAgICAgICAgICAgICAgbmV3U2NyZWVuSGVpZ2h0ID0gYXdhaXQgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZShgd2luZG93LnNjcmVlbi5oZWlnaHRgKTsKKyAgICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwobmV3U2NyZWVuSGVpZ2h0LCBvcmlnaW5h
bFNjcmVlbkhlaWdodCwgIlNjcmVlbiBoZWlnaHQgb3ZlcnJpZGUgc2hvdWxkIGJlIHJlbW92ZWQi
KTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAg
V0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoKG5vZGUpID0+IHsKKyAgICAgICAgICAgICAg
ICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7CisgICAgICAgICAgICAgfSk7CisgICAg
ICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSIvPgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z2xpYi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDc5NWU2NDhlNzNhNC4uODI1MDI1NGY2MmRmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMDE3LDYgKzEwMTcsOCBAQCBp
bXBvcnRlZC9tb3ppbGxhL3N2Zy9ibGVuZC1oYXJkLWxpZ2h0LnN2ZyBbIFBhc3MgXQogaW1wb3J0
ZWQvbW96aWxsYS9zdmcvZHluYW1pYy10ZXh0UGF0aC0wMi5zdmcgWyBQYXNzIF0KIGltcG9ydGVk
L21vemlsbGEvc3ZnL2ltYWdlL2ltYWdlLWZpbHRlci0wMS5zdmcgWyBQYXNzIF0KIAoraW5zcGVj
dG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLmh0bWwgWyBQYXNzIF0KKwogIy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIG9mIFBBU1NJTkcgdGVzdHMuCiAjLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ2xpYi9pbnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9pbnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXpl
T3ZlcnJpZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMC4uYmRmMjY4NjdkODM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ2xpYi9pbnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTMgQEAKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBQYWdlLnNldFNjcmVl
blNpemVPdmVycmlkZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFNjcmVlblNpemVPdmVycmlkZU92
ZXJyaWRlCitDdXJyZW50IHNjcmVlbiBzaXplOiAxMDI0eDc2OAorUEFTUzogQm9keSBzaG91bGQg
YmUgd2hpdGUKK092ZXJyaWRpbmcgc2NyZWVuIHNpemUgdG8gMTAwMHg1MDAKK1BBU1M6IERlZmF1
bHQgc2NyZWVuIHdpZHRoIHNob3VsZCBiZSAxMDAwCitQQVNTOiBEZWZhdWx0IHNjcmVlbiBoZWln
aHQgc2hvdWxkIGJlIDUwMAorUEFTUzogQm9keSBzaG91bGQgYmUgbGlnaHRibHVlCitSZW1vdmlu
ZyBzY3JlZW4gc2l6ZSBvdmVycmlkZQorUEFTUzogU2NyZWVuIHdpZHRoIG92ZXJyaWRlIHNob3Vs
ZCBiZSByZW1vdmVkCitQQVNTOiBTY3JlZW4gaGVpZ2h0IG92ZXJyaWRlIHNob3VsZCBiZSByZW1v
dmVkCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGEyMjkzMDliNmUwMi4uYTJiZjM5ZGVk
ZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0xMC0x
NCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+IGFuZCBQYXZlbCBGZWxk
bWFuIDxwYXZlbC5mZWxkbWFuQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBB
ZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0aGUgUGFnZSBhZ2VudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMjQyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9j
b2wvUGFnZS5qc29uOiBBZGQgYSBuZXcgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSBpbiB0aGUg
UGFnZSBhZ2VudC4KKwogMjAyMC0xMC0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgogCiAgICAgICAgIEpJVCBvcGVyYXRpb25zIGRvIG5vdCBuZWVkIGV4dGVybiAiQyIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5q
c29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb24K
aW5kZXggZmRlNGY2OTY0ZDQwLi45ZjVhNjJmYjc2YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uCkBAIC0zMDQsNiArMzA0LDE2
IEBACiAgICAgICAgICAgICAicmV0dXJucyI6IFsKICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImRhdGEiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiQmFzZTY0LWVuY29kZWQg
d2ViIGFyY2hpdmUuIiB9CiAgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJuYW1lIjogInNldFNjcmVlblNpemVPdmVycmlkZSIsCisgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiT3ZlcnJpZGVzIHNjcmVlbiBzaXplIHdpdGggcHJvdmlkZWQgdmFsdWVz
LiIsCisgICAgICAgICAgICAiY29uZGl0aW9uIjogIiEoZGVmaW5lZChXVEZfUExBVEZPUk1fQ09D
T0EpICYmIFdURl9QTEFURk9STV9DT0NPQSkiLAorICAgICAgICAgICAgInRhcmdldFR5cGVzIjog
WyJwYWdlIl0sCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogIndpZHRoIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJTY3Jl
ZW4gd2lkdGgiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJoZWlnaHQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIlNjcmVlbiBoZWln
aHQiLCAib3B0aW9uYWwiOiB0cnVlIH0KKyAgICAgICAgICAgIF0KICAgICAgICAgfQogICAgIF0s
CiAgICAgImV2ZW50cyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1YjZkYzI1MTExYWYuLjk4OGViNmEzOTM2
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTEwLTE0ICBQaGlsaXBwZSBOb3Jt
YW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4gYW5kIFBhdmVsIEZlbGRtYW4gPHBhdmVsLmZlbGRt
YW5AZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBzZXRTY3JlZW5TaXpl
T3ZlcnJpZGUgQVBJIHRvIHRoZSBQYWdlIGFnZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMyNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvdyB0aGUgV2ViSW5zcGVjdG9yIFBhZ2UgYWdlbnQg
dG8gb3ZlcnJpZGUgdGhlIFNjcmVlbiBzaXplIGZvciBtZWRpYSBxdWVyaWVzLgorCisgICAgICAg
IFRlc3Q6IGluc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVPdmVycmlkZS5odG1sCisKKyAgICAg
ICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6IFVzZSB0aGUgRnJhbWU6OnNjcmVlblNp
emUoKSBtZXRob2QgdG8gcXVlcnkgdGhlIHNjcmVlbiBkaW1lbnNpb25zLgorICAgICAgICAoV2Vi
Q29yZTo6ZGV2aWNlQXNwZWN0UmF0aW9FdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpkZXZp
Y2VIZWlnaHRFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpkZXZpY2VXaWR0aEV2YWx1YXRl
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OnNldFNjcmVlblNpemVPdmVycmlk
ZSk6IEltcGxlbWVudGF0aW9uIG9mIHRoZSBuZXcgQVBJIGhvb2tpbmcKKyAgICAgICAgaW50byB0
aGUgV2ViQ29yZTo6RnJhbWU6OnNldE92ZXJyaWRlU2NyZWVuU2l6ZSgpIG1ldGhvZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oOgorICAgICAgICAqIHBh
Z2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OnNjcmVlblNpemUgY29uc3Qp
OiBOZXcgZW50cnkgcG9pbnQgdG8gcXVlcnkgdGhlIHNjcmVlbiBzaXplLCB0aGlzIHRha2VzIGlu
dG8gYWNjb3VudCB0aGUKKyAgICAgICAgb3B0aW9uYWwgb3ZlcnJpZGVuIHNjcmVlbiBzaXplLgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OnNldE92ZXJyaWRlU2NyZWVuU2l6ZSk6IEFQSSB1c2Vk
IGJ5IHRoZSBQYWdlIGFnZW50IHRvIGZha2UgYSBuZXcgc2NyZWVuIHNpemUuCisgICAgICAgICog
cGFnZS9GcmFtZS5oOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgICogcGFnZS9T
Y3JlZW4uY3BwOiBVc2UgdGhlIEZyYW1lOjpzY3JlZW5TaXplKCkgbWV0aG9kIHRvIHF1ZXJ5IHRo
ZSBzY3JlZW4gZGltZW5zaW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbjo6aGVpZ2h0IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbjo6d2lkdGggY29uc3QpOgorCiAyMDIwLTEw
LTEzICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ29j
b2E6IE1ha2UgV2ViR0xMYXllciBub3QgZGVwZW5kZW50IG9uICBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IGM4
YTg0OWQ5OGQwNC4uZTAwNDljMzQwYjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVl
cnlFdmFsdWF0b3IuY3BwCkBAIC0zOTAsNyArMzkwLDcgQEAgc3RhdGljIGJvb2wgZGV2aWNlQXNw
ZWN0UmF0aW9FdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVy
c2kKICAgICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGF1dG8gc2l6
ZSA9IHNjcmVlblJlY3QoZnJhbWUubWFpbkZyYW1lKCkudmlldygpKS5zaXplKCk7CisgICAgYXV0
byBzaXplID0gZnJhbWUuc2NyZWVuU2l6ZSgpOwogICAgIGJvb2wgcmVzdWx0ID0gY29tcGFyZUFz
cGVjdFJhdGlvVmFsdWUodmFsdWUsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgb3ApOwog
ICAgIExPR19XSVRIX1NUUkVBTShNZWRpYVF1ZXJpZXMsIHN0cmVhbSA8PCAiICBkZXZpY2VBc3Bl
Y3RSYXRpb0V2YWx1YXRlOiAiIDw8IG9wIDw8ICIgIiA8PCBhc3BlY3RSYXRpb1ZhbHVlQXNTdHJp
bmcodmFsdWUpIDw8ICIgYWN0dWFsIHNjcmVlbiBzaXplICIgPDwgc2l6ZSA8PCAiOiAiIDw8IHJl
c3VsdCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTUwOCw3ICs1MDgsNyBAQCBzdGF0aWMgYm9v
bCBkZXZpY2VIZWlnaHRFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdAogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IGludCBsZW5ndGg7Ci0gICAgYXV0byBoZWlnaHQgPSBzY3JlZW5SZWN0KGZyYW1lLm1haW5GcmFt
ZSgpLnZpZXcoKSkuaGVpZ2h0KCk7CisgICAgYXV0byBoZWlnaHQgPSBmcmFtZS5zY3JlZW5TaXpl
KCkuaGVpZ2h0KCk7CiAgICAgaWYgKCFjb21wdXRlTGVuZ3RoKHZhbHVlLCAhZnJhbWUuZG9jdW1l
bnQoKS0+aW5RdWlya3NNb2RlKCksIGNvbnZlcnNpb25EYXRhLCBsZW5ndGgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKQEAgLTUyNCw3ICs1MjQsNyBAQCBzdGF0aWMgYm9vbCBkZXZpY2VXaWR0
aEV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0
YQogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGludCBsZW5ndGg7
Ci0gICAgYXV0byB3aWR0aCA9IHNjcmVlblJlY3QoZnJhbWUubWFpbkZyYW1lKCkudmlldygpKS53
aWR0aCgpOworICAgIGF1dG8gd2lkdGggPSBmcmFtZS5zY3JlZW5TaXplKCkud2lkdGgoKTsKICAg
ICBpZiAoIWNvbXB1dGVMZW5ndGgodmFsdWUsICFmcmFtZS5kb2N1bWVudCgpLT5pblF1aXJrc01v
ZGUoKSwgY29udmVyc2lvbkRhdGEsIGxlbmd0aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwCmluZGV4IGUxMDA4ZWRmMWM2ZC4uODEyYzhiNWJmMTJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuY3Bw
CkBAIC0xMTA2LDQgKzExMDYsMTggQEAgUHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8U3RyaW5nPiBJ
bnNwZWN0b3JQYWdlQWdlbnQ6OmFyY2hpdmUoKQogfQogI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0o
Q09DT0EpCitQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBJbnNwZWN0b3JQYWdlQWdlbnQ6
OnNldFNjcmVlblNpemVPdmVycmlkZShPcHRpb25hbDxpbnQ+JiYgd2lkdGgsIE9wdGlvbmFsPGlu
dD4mJiBoZWlnaHQpCit7CisgICAgaWYgKHdpZHRoICYmICp3aWR0aCA8PSAwKQorICAgICAgICBy
ZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIlNjcmVlbiB3aWR0aCBvdmVycmlkZSBzaG91bGQgYmUgYSBw
b3NpdGl2ZSBpbnRlZ2VyIl9zKTsKKworICAgIGlmIChoZWlnaHQgJiYgKmhlaWdodCA8PSAwKQor
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIlNjcmVlbiBoZWlnaHQgb3ZlcnJpZGUgc2hv
dWxkIGJlIGEgcG9zaXRpdmUgaW50ZWdlciJfcyk7CisKKyAgICBtX2luc3BlY3RlZFBhZ2UubWFp
bkZyYW1lKCkuc2V0T3ZlcnJpZGVTY3JlZW5TaXplKHdpZHRoLCBoZWlnaHQpOworICAgIHJldHVy
biB7IH07Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmgKaW5kZXgg
ZDJiMDY1ZTEzNjUxLi4yZjQxZmI5M2EyODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuaApAQCAtMTE5LDYgKzExOSw5IEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoV0VCX0FSQ0hJVkUpICYmIFVTRShDRikKICAgICBJbnNwZWN0
b3I6OlByb3RvY29sOjpFcnJvclN0cmluZ09yPFN0cmluZz4gYXJjaGl2ZSgpOwogI2VuZGlmCisj
aWYgIVBMQVRGT1JNKENPQ09BKQorICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5n
T3I8dm9pZD4gc2V0U2NyZWVuU2l6ZU92ZXJyaWRlKE9wdGlvbmFsPGludD4mJiB3aWR0aCwgT3B0
aW9uYWw8aW50PiYmIGhlaWdodCkgb3ZlcnJpZGU7CisjZW5kaWYKIAogICAgIC8vIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbgogICAgIHZvaWQgZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAKaW5kZXggY2FhOTRjNGJiMjg3Li5jYzU0NzQwODM4OWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuY3BwCkBAIC0xMDY0LDYgKzEwNjQsMjMgQEAgYm9vbCBGcmFtZTo6bWF5UHJld2FybUxv
Y2FsU3RvcmFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fbG9jYWxTdG9yYWdlUHJld2FybWluZ0Nv
dW50IDwgbWF4bG9jYWxTdG9yYWdlUHJld2FybWluZ0NvdW50OwogfQogCitGbG9hdFNpemUgRnJh
bWU6OnNjcmVlblNpemUoKSBjb25zdAoreworICAgIGNvbnN0IGF1dG8mIHJlYWxTaXplID0gc2Ny
ZWVuUmVjdCh2aWV3KCkpLnNpemUoKTsKKyAgICByZXR1cm4gRmxvYXRTaXplKG1fb3ZlcnJpZGVT
Y3JlZW5XaWR0aC52YWx1ZU9yKHJlYWxTaXplLndpZHRoKCkpLCBtX292ZXJyaWRlU2NyZWVuSGVp
Z2h0LnZhbHVlT3IocmVhbFNpemUuaGVpZ2h0KCkpKTsKK30KKwordm9pZCBGcmFtZTo6c2V0T3Zl
cnJpZGVTY3JlZW5TaXplKE9wdGlvbmFsPGludD4gd2lkdGgsIE9wdGlvbmFsPGludD4gaGVpZ2h0
KQoreworICAgIGlmICh3aWR0aCA9PSBtX292ZXJyaWRlU2NyZWVuV2lkdGggJiYgaGVpZ2h0ID09
IG1fb3ZlcnJpZGVTY3JlZW5IZWlnaHQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fb3ZlcnJp
ZGVTY3JlZW5XaWR0aCA9IHdpZHRoOworICAgIG1fb3ZlcnJpZGVTY3JlZW5IZWlnaHQgPSBoZWln
aHQ7CisgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKSkKKyAgICAgICAg
ZG9jdW1lbnQtPnVwZGF0ZVZpZXdwb3J0QXJndW1lbnRzKCk7Cit9CisKIHZvaWQgRnJhbWU6OnNl
bGZPbmx5UmVmKCkKIHsKICAgICBBU1NFUlQoaXNNYWluRnJhbWUoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgK
aW5kZXggNTBjNjVmNWU1YjA3Li4zM2Q4YmZjMjMxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTMw
OSw2ICszMDksOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGludmFsaWRhdGVDb250ZW50RXZlbnRS
ZWdpb25zSWZOZWVkZWQoKTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIEZsb2F0U2l6ZSBzY3JlZW5T
aXplKCkgY29uc3Q7CisgICAgdm9pZCBzZXRPdmVycmlkZVNjcmVlblNpemUoT3B0aW9uYWw8aW50
PiwgT3B0aW9uYWw8aW50Pik7CisKIC8vID09PT09PT09CiAKICAgICB2b2lkIHNlbGZPbmx5UmVm
KCk7CkBAIC0zNzIsNiArMzc1LDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzSGFkVXNlcklu
dGVyYWN0aW9uIHsgZmFsc2UgfTsKICAgICB1bnNpZ25lZCBtX2xvY2FsU3RvcmFnZVByZXdhcm1p
bmdDb3VudCB7IDAgfTsKIAorICAgIE9wdGlvbmFsPGludD4gbV9vdmVycmlkZVNjcmVlbldpZHRo
OworICAgIE9wdGlvbmFsPGludD4gbV9vdmVycmlkZVNjcmVlbkhlaWdodDsKKwogICAgIFVuaXF1
ZVJlZjxFdmVudEhhbmRsZXI+IG1fZXZlbnRIYW5kbGVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
aW5kZXggNWIwOTMyYWNiYmIxLi5jZmNiNDhlYmY0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAt
ODksNiArODksNyBAQAogI2luY2x1ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5oIgogI2lu
Y2x1ZGUgIlBlcmZvcm1hbmNlTW9uaXRvci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiUGx1Z0luQ2xpZW50LmgiCiAjaW5jbHVkZSAi
UGx1Z2luRGF0YS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCmluZGV4IGI0ZjdmZTBkMTVlZS4uNzA0
Yjc0NjVmNTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5j
bHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZp
ZXcuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNp
bmNsdWRlICJRdWlya3MuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIgpAQCAt
NTYsNyArNTcsNyBAQCB1bnNpZ25lZCBTY3JlZW46OmhlaWdodCgpIGNvbnN0CiAgICAgICAgIHJl
dHVybiAwOwogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LndlYkFQSVN0YXRpc3RpY3NFbmFibGVkKCkpCiAgICAgICAgIFJlc291cmNlTG9hZE9ic2VydmVy
OjpzaGFyZWQoKS5sb2dTY3JlZW5BUElBY2Nlc3NlZCgqZnJhbWUtPmRvY3VtZW50KCksIFJlc291
cmNlTG9hZFN0YXRpc3RpY3M6OlNjcmVlbkFQSTo6SGVpZ2h0KTsKLSAgICBsb25nIGhlaWdodCA9
IHN0YXRpY19jYXN0PGxvbmc+KHNjcmVlblJlY3QoZnJhbWUtPnZpZXcoKSkuaGVpZ2h0KCkpOwor
ICAgIGxvbmcgaGVpZ2h0ID0gc3RhdGljX2Nhc3Q8bG9uZz4oZnJhbWUtPnNjcmVlblNpemUoKS5o
ZWlnaHQoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihoZWlnaHQpOwogfQog
CkBAIC02Nyw3ICs2OCw3IEBAIHVuc2lnbmVkIFNjcmVlbjo6d2lkdGgoKSBjb25zdAogICAgICAg
ICByZXR1cm4gMDsKICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS53ZWJBUElTdGF0aXN0aWNzRW5hYmxlZCgpKQogICAgICAgICBSZXNvdXJjZUxvYWRPYnNl
cnZlcjo6c2hhcmVkKCkubG9nU2NyZWVuQVBJQWNjZXNzZWQoKmZyYW1lLT5kb2N1bWVudCgpLCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpTY3JlZW5BUEk6OldpZHRoKTsKLSAgICBsb25nIHdpZHRo
ID0gc3RhdGljX2Nhc3Q8bG9uZz4oc2NyZWVuUmVjdChmcmFtZS0+dmlldygpKS53aWR0aCgpKTsK
KyAgICBsb25nIHdpZHRoID0gc3RhdGljX2Nhc3Q8bG9uZz4oZnJhbWUtPnNjcmVlblNpemUoKS53
aWR0aCgpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHdpZHRoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggNDAzYTU0ZmUzNmVkLi40NzFkZmQ3NDg3OGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTEwLTE0ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBBZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0aGUgUGFnZSBhZ2VudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMjQyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBMb2NhbGl6YXRp
b25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogVXNlckludGVyZmFj
ZS9CYXNlL01haW4uanM6CisgICAgICAgIChXSS5sb2FkZWQpOiBBZGQgYSBuZXcgZHJvcC1kb3du
IG1lbnUgYWxsb3dpbmcgdG8gb3ZlcnJpZGUgdGhlIGRldmljZSBzY3JlZW4gc2l6ZS4KKwogMjAy
MC0xMC0xMiAgTHVtaW5nIFlpbiAgPGx1bWluZ195aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtt
YWNPU10gV29ya2Fyb3VuZCBmb3IgTUFDX09TX1hfVkVSU0lPTl9NQUpPUiBpbmNvcnJlY3RseSBp
bmNsdWRpbmcgbWlub3IgdmVyc2lvbiB3aGVuIGJ1aWxkaW5nIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXpl
ZFN0cmluZ3MuanMKaW5kZXggM2MxOWM2MWY5ZWQyLi5kYmViZmM4Yzk2YmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0
cmluZ3MuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHBy
b2ovbG9jYWxpemVkU3RyaW5ncy5qcwpAQCAtOTAsNiArOTAsOSBAQCBsb2NhbGl6ZWRTdHJpbmdz
WyIsICJdID0gIiwgIjsKIGxvY2FsaXplZFN0cmluZ3NbIjAgQ29uc29sZSBlcnJvcnMiXSA9ICIw
IENvbnNvbGUgZXJyb3JzIjsKIGxvY2FsaXplZFN0cmluZ3NbIjAgQ29uc29sZSB3YXJuaW5ncyJd
ID0gIjAgQ29uc29sZSB3YXJuaW5ncyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyIxIG1hdGNoIl0gPSAi
MSBtYXRjaCI7Citsb2NhbGl6ZWRTdHJpbmdzWyIxMDgwcCJdID0gIjEwODBwIjsKK2xvY2FsaXpl
ZFN0cmluZ3NbIjcyMHAiXSA9ICI3MjBwIjsKK2xvY2FsaXplZFN0cmluZ3NbIlNjcmVlbiBzaXpl
OiJdID0gIlNjcmVlbiBzaXplOiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyIyRCJdID0gIjJEIjsKIGxv
Y2FsaXplZFN0cmluZ3NbIkFjY2Vzc2liaWxpdHkiXSA9ICJBY2Nlc3NpYmlsaXR5IjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkFjdGlvbiJdID0gIkFjdGlvbiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKaW5kZXggZjYyZjA3NWU3MzhjLi44OTc1
MTkzYzI4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0Jhc2UvTWFpbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
YXNlL01haW4uanMKQEAgLTE2Nyw2ICsxNjcsNyBAQCBXSS5sb2FkZWQgPSBmdW5jdGlvbigpCiAg
ICAgV0kudmlzaWJsZSA9IGZhbHNlOwogICAgIFdJLl93aW5kb3dLZXlkb3duTGlzdGVuZXJzID0g
W107CiAgICAgV0kuX292ZXJyaWRlbkRldmljZVVzZXJBZ2VudCA9IG51bGw7CisgICAgV0kuX292
ZXJyaWRlbkRldmljZVNjcmVlblNpemUgPSBudWxsOwogICAgIFdJLl9vdmVycmlkZW5EZXZpY2VT
ZXR0aW5ncyA9IG5ldyBNYXA7CiAKICAgICAvLyBUYXJnZXRzLgpAQCAtMjIwNSw2ICsyMjA2LDEy
NCBAQCBXSS5faGFuZGxlRGV2aWNlU2V0dGluZ3NUYWJCYXJCdXR0b25DbGlja2VkID0gZnVuY3Rp
b24oZXZlbnQpCiAgICAgICAgIH0KICAgICB9KTsKIAorICAgIGlmIChJbnNwZWN0b3JCYWNrZW5k
Lmhhc0NvbW1hbmQoIlBhZ2Uuc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIikpIHsKKyAgICAgICAgZnVu
Y3Rpb24gYXBwbHlPdmVycmlkZGVuU2NyZWVuU2l6ZSh2YWx1ZSwgZm9yY2UpIHsKKyAgICAgICAg
ICAgIGlmICh2YWx1ZSA9PT0gV0kuX292ZXJyaWRlbkRldmljZVNjcmVlblNpemUpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoIWZvcmNlICYmICghdmFsdWUgfHwg
dmFsdWUgPT09ICJkZWZhdWx0IikpIHsKKyAgICAgICAgICAgICAgICB0YXJnZXQuUGFnZUFnZW50
LnNldFNjcmVlblNpemVPdmVycmlkZSgoZXJyb3IpID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9y
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgICAgIFdJLl9vdmVycmlkZW5EZXZpY2VTY3JlZW5TaXplID0g
bnVsbDsKKyAgICAgICAgICAgICAgICAgICAgdXBkYXRlQWN0aXZhdGVkU3RhdGUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgdGFyZ2V0LlBhZ2VBZ2VudC5yZWxvYWQoKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbGV0IHRva2VucyA9
IHZhbHVlLnNwbGl0KCJ4Iik7CisgICAgICAgICAgICAgICAgbGV0IHdpZHRoID0gcGFyc2VJbnQo
dG9rZW5zWzBdKTsKKyAgICAgICAgICAgICAgICBsZXQgaGVpZ2h0ID0gcGFyc2VJbnQodG9rZW5z
WzFdKTsKKyAgICAgICAgICAgICAgICB0YXJnZXQuUGFnZUFnZW50LnNldFNjcmVlblNpemVPdmVy
cmlkZSh3aWR0aCwgaGVpZ2h0LCAoZXJyb3IpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGVycm9yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgICAgIFdJLl9vdmVycmlkZW5EZXZpY2VTY3JlZW5TaXplID0gdmFs
dWU7CisgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUFjdGl2YXRlZFN0YXRlKCk7CisgICAgICAg
ICAgICAgICAgICAgIHRhcmdldC5QYWdlQWdlbnQucmVsb2FkKCk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworCisgICAgICAgIGxldCBzY3JlZW5TaXpl
Um93ID0gdGFibGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKSk7CisK
KyAgICAgICAgbGV0IHNjcmVlblNpemVUaXRsZSA9IHNjcmVlblNpemVSb3cuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQiKSk7CisgICAgICAgIHNjcmVlblNpemVUaXRsZS50
ZXh0Q29udGVudCA9IFdJLlVJU3RyaW5nKCJTY3JlZW4gc2l6ZToiKTsKKworICAgICAgICBsZXQg
c2NyZWVuU2l6ZVZhbHVlID0gc2NyZWVuU2l6ZVJvdy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJ0ZCIpKTsKKyAgICAgICAgc2NyZWVuU2l6ZVZhbHVlLmNsYXNzTGlzdC5hZGQo
InNjcmVlbi1zaXplIik7CisKKyAgICAgICAgbGV0IHNjcmVlblNpemVWYWx1ZVNlbGVjdCA9IHNj
cmVlblNpemVWYWx1ZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWxlY3Qi
KSk7CisKKyAgICAgICAgbGV0IHNjcmVlblNpemVWYWx1ZUlucHV0ID0gbnVsbDsKKworICAgICAg
ICBjb25zdCBzY3JlZW5TaXplcyA9IFsKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICB7
IG5hbWU6IFdJLlVJU3RyaW5nKCJEZWZhdWx0IiksIHZhbHVlOiAiZGVmYXVsdCIgfSwKKyAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgeyBuYW1lOiBXSS5VSVN0
cmluZygiMTA4MHAiKSwgdmFsdWU6ICIxOTIweDEwODAifSwKKyAgICAgICAgICAgICAgICB7IG5h
bWU6IFdJLlVJU3RyaW5nKCI3MjBwIiksIHZhbHVlOiAiMTI4MHg3MjAifQorICAgICAgICAgICAg
XSwKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICB7IG5hbWU6IFdJLlVJU3RyaW5nKCJP
dGhlclx1MjAyNiIpLCB2YWx1ZTogIm90aGVyIiB9LAorICAgICAgICAgICAgXSwKKyAgICAgICAg
XTsKKworICAgICAgICBsZXQgc2VsZWN0ZWRTY3JlZW5TaXplT3B0aW9uRWxlbWVudCA9IG51bGw7
CisKKyAgICAgICAgZm9yIChsZXQgZ3JvdXAgb2Ygc2NyZWVuU2l6ZXMpIHsKKyAgICAgICAgICAg
IGZvciAobGV0IHtuYW1lLCB2YWx1ZX0gb2YgZ3JvdXApIHsKKyAgICAgICAgICAgICAgICBsZXQg
b3B0aW9uRWxlbWVudCA9IHNjcmVlblNpemVWYWx1ZVNlbGVjdC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKSk7CisgICAgICAgICAgICAgICAgb3B0aW9uRWxlbWVu
dC52YWx1ZSA9IHZhbHVlOworICAgICAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQudGV4dENvbnRl
bnQgPSBuYW1lOworCisgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSBXSS5fb3ZlcnJpZGVu
RGV2aWNlU2NyZWVuU2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRTY3JlZW5TaXpl
T3B0aW9uRWxlbWVudCA9IG9wdGlvbkVsZW1lbnQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGlmIChncm91cCAhPT0gc2NyZWVuU2l6ZXMubGFzdFZhbHVlKQorICAgICAgICAgICAgICAg
IHNjcmVlblNpemVWYWx1ZVNlbGVjdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJociIpKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNob3dTY3JlZW5TaXplSW5w
dXQoKSB7CisgICAgICAgICAgICBpZiAoc2NyZWVuU2l6ZVZhbHVlSW5wdXQpCisgICAgICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBzY3JlZW5TaXplVmFsdWVJbnB1dCA9IHNjcmVl
blNpemVWYWx1ZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKTsK
KyAgICAgICAgICAgIHNjcmVlblNpemVWYWx1ZUlucHV0LnNwZWxsY2hlY2sgPSBmYWxzZTsKKyAg
ICAgICAgICAgIGxldCBkZWZhdWx0U2l6ZSA9IHdpbmRvdy5zY3JlZW4ud2lkdGggKyAieCIgKyB3
aW5kb3cuc2NyZWVuLmhlaWdodDsKKyAgICAgICAgICAgIHNjcmVlblNpemVWYWx1ZUlucHV0LnZh
bHVlID0gc2NyZWVuU2l6ZVZhbHVlSW5wdXQucGxhY2Vob2xkZXIgPSBXSS5fb3ZlcnJpZGVuRGV2
aWNlU2NyZWVuU2l6ZSB8fCBkZWZhdWx0U2l6ZTsKKyAgICAgICAgICAgIHNjcmVlblNpemVWYWx1
ZUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKGNsaWNrRXZlbnQpID0+IHsKKyAgICAg
ICAgICAgICAgICBjbGlja0V2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIHNjcmVlblNpemVWYWx1ZUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5n
ZSIsIChpbnB1dEV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgYXBwbHlPdmVycmlkZGVuU2Ny
ZWVuU2l6ZShzY3JlZW5TaXplVmFsdWVJbnB1dC52YWx1ZSwgdHJ1ZSk7CisgICAgICAgICAgICB9
KTsKKworICAgICAgICAgICAgV0kuX2RldmljZVNldHRpbmdzUG9wb3Zlci51cGRhdGUoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChzZWxlY3RlZFNjcmVlblNpemVPcHRpb25FbGVtZW50KQor
ICAgICAgICAgICAgc2NyZWVuU2l6ZVZhbHVlU2VsZWN0LnZhbHVlID0gc2VsZWN0ZWRTY3JlZW5T
aXplT3B0aW9uRWxlbWVudC52YWx1ZTsKKyAgICAgICAgZWxzZSBpZiAoV0kuX292ZXJyaWRlbkRl
dmljZVNjcmVlblNpemUpIHsKKyAgICAgICAgICAgIHNjcmVlblNpemVWYWx1ZVNlbGVjdC52YWx1
ZSA9ICJvdGhlciI7CisgICAgICAgICAgICBzaG93U2NyZWVuU2l6ZUlucHV0KCk7CisgICAgICAg
IH0KKworICAgICAgICBzY3JlZW5TaXplVmFsdWVTZWxlY3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hh
bmdlIiwgKCkgPT4geworICAgICAgICAgICAgbGV0IHZhbHVlID0gc2NyZWVuU2l6ZVZhbHVlU2Vs
ZWN0LnZhbHVlOworICAgICAgICAgICAgaWYgKHZhbHVlID09PSAib3RoZXIiKSB7CisgICAgICAg
ICAgICAgICAgc2hvd1NjcmVlblNpemVJbnB1dCgpOworICAgICAgICAgICAgICAgIHNjcmVlblNp
emVWYWx1ZUlucHV0LnNlbGVjdCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBpZiAoc2NyZWVuU2l6ZVZhbHVlSW5wdXQpIHsKKyAgICAgICAgICAgICAgICAgICAgc2Ny
ZWVuU2l6ZVZhbHVlSW5wdXQucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgICAgIHNjcmVlblNp
emVWYWx1ZUlucHV0ID0gbnVsbDsKKworICAgICAgICAgICAgICAgICAgICBXSS5fZGV2aWNlU2V0
dGluZ3NQb3BvdmVyLnVwZGF0ZSgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgIGFwcGx5T3ZlcnJpZGRlblNjcmVlblNpemUodmFsdWUpOworICAgICAgICAgICAgfQorICAg
ICAgICB9KTsKKyAgICB9CisKICAgICBjb25zdCBzZXR0aW5ncyA9IFsKICAgICAgICAgewogICAg
ICAgICAgICAgbmFtZTogV0kuVUlTdHJpbmcoIkRpc2FibGU6IiksCg==
</data>
<flag name="commit-queue"
          id="427479"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411419</attachid>
            <date>2020-10-15 02:23:50 -0700</date>
            <delta_ts>2020-10-19 05:56:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wi-screen-size.diff</filename>
            <type>text/plain</type>
            <size>22351</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5YjEwZjQ4MTdkYTkuLmU4NmYzNWFhY2M4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDIwLTEwLTE0ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4gYW5k
IFBhdmVsIEZlbGRtYW4gPHBhdmVsLmZlbGRtYW5AZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IEFkZCBzZXRTY3JlZW5TaXplT3ZlcnJpZGUgQVBJIHRvIHRoZSBQYWdlIGFnZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMyNDIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJy
aWRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVP
dmVycmlkZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDIwLTEwLTEyICBaYWxhbiBCdWp0YXMg
IDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2ODI5NCk6IFsgaU9T
IHdrMiBdIGltcG9ydGVkL2JsaW5rL2Zhc3QvY3NzL3pvb21lZC1pbnRyaW5zaWMtd2lkdGguaHRt
bCBpcyBhIGNvbnN0YW50IGltYWdlIGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGYxZmQ4
YmUwYmM4OC4uNzIzMGE2MjUwNzMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc2LDYgKzc2LDcg
QEAgZWRpdGluZy9wYXN0ZWJvYXJkL2RvbS1wYXN0ZSBbIFNraXAgXQogZWRpdGluZy9wYXN0ZWJv
YXJkL21hYyBbIFNraXAgXQogZmFzdC9tZWRpYS9pb3MgWyBTa2lwIF0KIGZhc3QvZG9tL1Jhbmdl
L21hYyBbIFNraXAgXQoraW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLmh0bWwg
WyBTa2lwIF0KIAogIyBSZXF1aXJlcyBhc3luYyBvdmVyZmxvdyBzY3JvbGxpbmcKIGNvbXBvc2l0
aW5nL3NoYXJlZC1iYWNraW5nL292ZXJmbG93LXNjcm9sbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmRiMzY4YThjN2ViMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVPdmVy
cmlkZS5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorQG1lZGlhIG9ubHkgc2NyZWVuIGFu
ZCAobWF4LWRldmljZS13aWR0aDogMTAwMHB4KSB7CisgICAgYm9keSB7CisgICAgICAgIGNvbG9y
OiByZWQ7CisgICAgfQorfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkgewor
ICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUGFnZS5zZXRT
Y3JlZW5TaXplT3ZlcnJpZGUiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAg
bmFtZTogIlNjcmVlblNpemVPdmVycmlkZU92ZXJyaWRlIiwKKyAgICAgICAgZGVzY3JpcHRpb246
ICJWZXJpZnkgdGhhdCB0aGUgaW5zcGVjdG9yIGNhbiBvdmVycmlkZSB0aGUgc2NyZWVuIHNpemUu
IiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBvcmlnaW5hbFNjcmVl
bldpZHRoID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LnNjcmVl
bi53aWR0aGApOworICAgICAgICAgICAgbGV0IG9yaWdpbmFsU2NyZWVuSGVpZ2h0ID0gYXdhaXQg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LnNjcmVlbi5oZWlnaHRgKTsKKwor
ICAgICAgICAgICAgbGV0IGN1cnJlbnRCYWNrZ3JvdW5kQ29sb3IgPSBhd2FpdCBJbnNwZWN0b3JU
ZXN0LmV2YWx1YXRlSW5QYWdlKCJnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmNvbG9y
Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGN1cnJlbnRCYWNrZ3Jv
dW5kQ29sb3IsICJyZ2IoMCwgMCwgMCkiLCAiQm9keSBzaG91bGQgYmUgd2hpdGUuIik7CisKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJPdmVycmlkaW5nIHNjcmVlbiBzaXplIHRvIDEw
MDB4NTAwIik7CisgICAgICAgICAgICBhd2FpdCBQYWdlQWdlbnQuc2V0U2NyZWVuU2l6ZU92ZXJy
aWRlKDEwMDAsIDUwMCk7CisgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKGBsb2NhdGlvbi5yZWxvYWQoKWApOworCisgICAgICAgICAgICBsZXQgbmV3U2NyZWVu
V2lkdGggPSBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuc2NyZWVu
LndpZHRoYCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG5ld1NjcmVl
bldpZHRoLCAxMDAwLCAiRGVmYXVsdCBzY3JlZW4gd2lkdGggc2hvdWxkIGJlIDEwMDAuIik7Cisg
ICAgICAgICAgICBsZXQgbmV3U2NyZWVuSGVpZ2h0ID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFs
dWF0ZUluUGFnZShgd2luZG93LnNjcmVlbi5oZWlnaHRgKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwobmV3U2NyZWVuSGVpZ2h0LCA1MDAsICJEZWZhdWx0IHNjcmVlbiBo
ZWlnaHQgc2hvdWxkIGJlIDUwMC4iKTsKKworICAgICAgICAgICAgbGV0IG5ld0JhY2tncm91bmRD
b2xvciA9IGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuYm9keSkuY29sb3IiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwobmV3QmFja2dyb3VuZENvbG9yLCAicmdiKDI1NSwgMCwgMCkiLCAiQm9keSBzaG91
bGQgYmUgcmVkLiIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUmVtb3Zpbmcg
c2NyZWVuIHNpemUgb3ZlcnJpZGUiKTsKKyAgICAgICAgICAgIGF3YWl0IFBhZ2VBZ2VudC5zZXRT
Y3JlZW5TaXplT3ZlcnJpZGUoKTsKKyAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZh
bHVhdGVJblBhZ2UoYGxvY2F0aW9uLnJlbG9hZCgpYCk7CisKKyAgICAgICAgICAgIG5ld1NjcmVl
bldpZHRoID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LnNjcmVl
bi53aWR0aGApOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChuZXdTY3Jl
ZW5XaWR0aCwgb3JpZ2luYWxTY3JlZW5XaWR0aCwgIlNjcmVlbiB3aWR0aCBvdmVycmlkZSBzaG91
bGQgYmUgcmVtb3ZlZC4iKTsKKyAgICAgICAgICAgIG5ld1NjcmVlbkhlaWdodCA9IGF3YWl0IElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5zY3JlZW4uaGVpZ2h0YCk7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG5ld1NjcmVlbkhlaWdodCwgb3JpZ2lu
YWxTY3JlZW5IZWlnaHQsICJTY3JlZW4gaGVpZ2h0IG92ZXJyaWRlIHNob3VsZCBiZSByZW1vdmVk
LiIpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBXSS5kb21NYW5hZ2VyLnJlcXVlc3REb2N1
bWVudCgobm9kZSkgPT4geworICAgICAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsK
KyAgICB9KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
Lz4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA3OTVlNjQ4ZTczYTQuLjgyNTAyNTRmNjJkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ2xpYi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2dsaWIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTAxNyw2ICsxMDE3LDggQEAgaW1wb3J0ZWQvbW96
aWxsYS9zdmcvYmxlbmQtaGFyZC1saWdodC5zdmcgWyBQYXNzIF0KIGltcG9ydGVkL21vemlsbGEv
c3ZnL2R5bmFtaWMtdGV4dFBhdGgtMDIuc3ZnIFsgUGFzcyBdCiBpbXBvcnRlZC9tb3ppbGxhL3N2
Zy9pbWFnZS9pbWFnZS1maWx0ZXItMDEuc3ZnIFsgUGFzcyBdCiAKK2luc3BlY3Rvci9wYWdlL3Nl
dFNjcmVlblNpemVPdmVycmlkZS5odG1sIFsgUGFzcyBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCiAjIEVuZCBvZiBQQVNTSU5HIHRlc3RzLgogIy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvaW5z
cGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2dsaWIvaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ0Mjky
NDMwZjQ2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvaW5z
cGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEyIEBACisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUGFnZS5zZXRTY3JlZW5TaXplT3ZlcnJp
ZGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBTY3JlZW5TaXplT3ZlcnJpZGVPdmVycmlkZQorUEFT
UzogQm9keSBzaG91bGQgYmUgd2hpdGUuCitPdmVycmlkaW5nIHNjcmVlbiBzaXplIHRvIDEwMDB4
NTAwCitQQVNTOiBEZWZhdWx0IHNjcmVlbiB3aWR0aCBzaG91bGQgYmUgMTAwMC4KK1BBU1M6IERl
ZmF1bHQgc2NyZWVuIGhlaWdodCBzaG91bGQgYmUgNTAwLgorUEFTUzogQm9keSBzaG91bGQgYmUg
cmVkLgorUmVtb3Zpbmcgc2NyZWVuIHNpemUgb3ZlcnJpZGUKK1BBU1M6IFNjcmVlbiB3aWR0aCBv
dmVycmlkZSBzaG91bGQgYmUgcmVtb3ZlZC4KK1BBU1M6IFNjcmVlbiBoZWlnaHQgb3ZlcnJpZGUg
c2hvdWxkIGJlIHJlbW92ZWQuCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGEyMjkzMDli
NmUwMi4uYTJiZjM5ZGVkZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAyMC0xMC0xNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+
IGFuZCBQYXZlbCBGZWxkbWFuIDxwYXZlbC5mZWxkbWFuQGdtYWlsLmNvbT4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBBZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0aGUgUGFnZSBh
Z2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEz
MjQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uOiBBZGQgYSBuZXcgc2V0U2NyZWVuU2l6ZU92ZXJy
aWRlIEFQSSBpbiB0aGUgUGFnZSBhZ2VudC4KKwogMjAyMC0xMC0xMiAgWXVzdWtlIFN1enVraSAg
PHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIEpJVCBvcGVyYXRpb25zIGRvIG5vdCBuZWVk
IGV4dGVybiAiQyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cHJvdG9jb2wvUGFnZS5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90
b2NvbC9QYWdlLmpzb24KaW5kZXggZmRlNGY2OTY0ZDQwLi44MjUyNzkyNjQ5NTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uCkBA
IC0zMDQsNiArMzA0LDE2IEBACiAgICAgICAgICAgICAicmV0dXJucyI6IFsKICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImRhdGEiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAi
QmFzZTY0LWVuY29kZWQgd2ViIGFyY2hpdmUuIiB9CiAgICAgICAgICAgICBdCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInNldFNjcmVlblNpemVPdmVycmlkZSIs
CisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT3ZlcnJpZGVzIHNjcmVlbiBzaXplIGV4cG9z
ZWQgdG8gRE9NIGFuZCB1c2VkIGluIG1lZGlhIHF1ZXJpZXMgZm9yIHRlc3Rpbmcgd2l0aCBwcm92
aWRlZCB2YWx1ZXMuIiwKKyAgICAgICAgICAgICJjb25kaXRpb24iOiAiIShkZWZpbmVkKFdURl9Q
TEFURk9STV9DT0NPQSkgJiYgV1RGX1BMQVRGT1JNX0NPQ09BKSIsCisgICAgICAgICAgICAidGFy
Z2V0VHlwZXMiOiBbInBhZ2UiXSwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAid2lkdGgiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0
aW9uIjogIlNjcmVlbiB3aWR0aCIsICJvcHRpb25hbCI6IHRydWUgfSwKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImhlaWdodCIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAi
U2NyZWVuIGhlaWdodCIsICJvcHRpb25hbCI6IHRydWUgfQorICAgICAgICAgICAgXQogICAgICAg
ICB9CiAgICAgXSwKICAgICAiZXZlbnRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDViNmRjMjUxMTFhZi4u
OTg4ZWI2YTM5MzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMTAtMTQgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPiBhbmQgUGF2ZWwgRmVsZG1hbiA8
cGF2ZWwuZmVsZG1hbkBnbWFpbC5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIHNl
dFNjcmVlblNpemVPdmVycmlkZSBBUEkgdG8gdGhlIFBhZ2UgYWdlbnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzI0MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IHRoZSBXZWJJbnNwZWN0b3Ig
UGFnZSBhZ2VudCB0byBvdmVycmlkZSB0aGUgU2NyZWVuIHNpemUgZm9yIG1lZGlhIHF1ZXJpZXMu
CisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLmh0
bWwKKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDogVXNlIHRoZSBGcmFt
ZTo6c2NyZWVuU2l6ZSgpIG1ldGhvZCB0byBxdWVyeSB0aGUgc2NyZWVuIGRpbWVuc2lvbnMuCisg
ICAgICAgIChXZWJDb3JlOjpkZXZpY2VBc3BlY3RSYXRpb0V2YWx1YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OmRldmljZUhlaWdodEV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmRldmljZVdp
ZHRoRXZhbHVhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6c2V0U2NyZWVu
U2l6ZU92ZXJyaWRlKTogSW1wbGVtZW50YXRpb24gb2YgdGhlIG5ldyBBUEkgaG9va2luZworICAg
ICAgICBpbnRvIHRoZSBXZWJDb3JlOjpGcmFtZTo6c2V0T3ZlcnJpZGVTY3JlZW5TaXplKCkgbWV0
aG9kLgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50Lmg6Cisg
ICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6c2NyZWVu
U2l6ZSBjb25zdCk6IE5ldyBlbnRyeSBwb2ludCB0byBxdWVyeSB0aGUgc2NyZWVuIHNpemUsIHRo
aXMgdGFrZXMgaW50byBhY2NvdW50IHRoZQorICAgICAgICBvcHRpb25hbCBvdmVycmlkZW4gc2Ny
ZWVuIHNpemUuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6c2V0T3ZlcnJpZGVTY3JlZW5TaXpl
KTogQVBJIHVzZWQgYnkgdGhlIFBhZ2UgYWdlbnQgdG8gZmFrZSBhIG5ldyBzY3JlZW4gc2l6ZS4K
KyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAg
ICAgKiBwYWdlL1NjcmVlbi5jcHA6IFVzZSB0aGUgRnJhbWU6OnNjcmVlblNpemUoKSBtZXRob2Qg
dG8gcXVlcnkgdGhlIHNjcmVlbiBkaW1lbnNpb25zLgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVu
OjpoZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuOjp3aWR0aCBjb25zdCk6
CisKIDIwMjAtMTAtMTMgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBDb2NvYTogTWFrZSBXZWJHTExheWVyIG5vdCBkZXBlbmRlbnQgb24gIEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV2YWx1YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5j
cHAKaW5kZXggYzhhODQ5ZDk4ZDA0Li5mMTkxOTk0YTI4NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTM5MCw3ICszOTAsNyBAQCBzdGF0aWMgYm9v
bCBkZXZpY2VBc3BlY3RSYXRpb0V2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9M
ZW5ndGhDb252ZXJzaQogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0g
ICAgYXV0byBzaXplID0gc2NyZWVuUmVjdChmcmFtZS5tYWluRnJhbWUoKS52aWV3KCkpLnNpemUo
KTsKKyAgICBhdXRvIHNpemUgPSBmcmFtZS5tYWluRnJhbWUoKS5zY3JlZW5TaXplKCk7CiAgICAg
Ym9vbCByZXN1bHQgPSBjb21wYXJlQXNwZWN0UmF0aW9WYWx1ZSh2YWx1ZSwgc2l6ZS53aWR0aCgp
LCBzaXplLmhlaWdodCgpLCBvcCk7CiAgICAgTE9HX1dJVEhfU1RSRUFNKE1lZGlhUXVlcmllcywg
c3RyZWFtIDw8ICIgIGRldmljZUFzcGVjdFJhdGlvRXZhbHVhdGU6ICIgPDwgb3AgPDwgIiAiIDw8
IGFzcGVjdFJhdGlvVmFsdWVBc1N0cmluZyh2YWx1ZSkgPDwgIiBhY3R1YWwgc2NyZWVuIHNpemUg
IiA8PCBzaXplIDw8ICI6ICIgPDwgcmVzdWx0KTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtNTA4
LDcgKzUwOCw3IEBAIHN0YXRpYyBib29sIGRldmljZUhlaWdodEV2YWx1YXRlKENTU1ZhbHVlKiB2
YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0CiAgICAgaWYgKCF2YWx1ZSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgaW50IGxlbmd0aDsKLSAgICBhdXRvIGhlaWdodCA9IHNj
cmVlblJlY3QoZnJhbWUubWFpbkZyYW1lKCkudmlldygpKS5oZWlnaHQoKTsKKyAgICBhdXRvIGhl
aWdodCA9IGZyYW1lLm1haW5GcmFtZSgpLnNjcmVlblNpemUoKS5oZWlnaHQoKTsKICAgICBpZiAo
IWNvbXB1dGVMZW5ndGgodmFsdWUsICFmcmFtZS5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSwg
Y29udmVyc2lvbkRhdGEsIGxlbmd0aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNTI0
LDcgKzUyNCw3IEBAIHN0YXRpYyBib29sIGRldmljZVdpZHRoRXZhbHVhdGUoQ1NTVmFsdWUqIHZh
bHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhCiAgICAgaWYgKCF2YWx1ZSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgaW50IGxlbmd0aDsKLSAgICBhdXRvIHdpZHRoID0gc2Ny
ZWVuUmVjdChmcmFtZS5tYWluRnJhbWUoKS52aWV3KCkpLndpZHRoKCk7CisgICAgYXV0byB3aWR0
aCA9IGZyYW1lLm1haW5GcmFtZSgpLnNjcmVlblNpemUoKS53aWR0aCgpOwogICAgIGlmICghY29t
cHV0ZUxlbmd0aCh2YWx1ZSwgIWZyYW1lLmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpLCBjb252
ZXJzaW9uRGF0YSwgbGVuZ3RoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAK
aW5kZXggZTEwMDhlZGYxYzZkLi5iMzYwNTNhOWY2MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTExMDYs
NCArMTEwNiwyMSBAQCBQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjxTdHJpbmc+IEluc3BlY3RvclBh
Z2VBZ2VudDo6YXJjaGl2ZSgpCiB9CiAjZW5kaWYKIAorI2lmICFQTEFURk9STShDT0NPQSkKK1By
b3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IEluc3BlY3RvclBhZ2VBZ2VudDo6c2V0U2NyZWVu
U2l6ZU92ZXJyaWRlKE9wdGlvbmFsPGludD4mJiB3aWR0aCwgT3B0aW9uYWw8aW50PiYmIGhlaWdo
dCkKK3sKKyAgICBpZiAod2lkdGguaGFzVmFsdWUoKSAhPSBoZWlnaHQuaGFzVmFsdWUoKSkKKyAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKCJTY3JlZW4gd2lkdGggYW5kIGhlaWdodCBvdmVy
cmlkZSBzaG91bGQgYmUgYm90aCBzcGVjaWZpZWQgb3Igb21pdHRlZCJfcyk7CisKKyAgICBpZiAo
d2lkdGggJiYgKndpZHRoIDw9IDApCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCgiU2Ny
ZWVuIHdpZHRoIG92ZXJyaWRlIHNob3VsZCBiZSBhIHBvc2l0aXZlIGludGVnZXIiX3MpOworCisg
ICAgaWYgKGhlaWdodCAmJiAqaGVpZ2h0IDw9IDApCisgICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZCgiU2NyZWVuIGhlaWdodCBvdmVycmlkZSBzaG91bGQgYmUgYSBwb3NpdGl2ZSBpbnRlZ2Vy
Il9zKTsKKworICAgIG1faW5zcGVjdGVkUGFnZS5tYWluRnJhbWUoKS5zZXRPdmVycmlkZVNjcmVl
blNpemUoRmxvYXRTaXplKHdpZHRoLnZhbHVlT3IoMCksIGhlaWdodC52YWx1ZU9yKDApKSk7Cisg
ICAgcmV0dXJuIHsgfTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQu
aAppbmRleCBkMmIwNjVlMTM2NTEuLmJmODgzNDUyNTNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0xMTksNiAr
MTE5LDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShXRUJfQVJDSElWRSkgJiYgVVNFKENGKQogICAg
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8U3RyaW5nPiBhcmNoaXZlKCk7CiAj
ZW5kaWYKKyNpZiAhUExBVEZPUk0oQ09DT0EpCisgICAgSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJy
b3JTdHJpbmdPcjx2b2lkPiBzZXRTY3JlZW5TaXplT3ZlcnJpZGUoT3B0aW9uYWw8aW50PiYmIHdp
ZHRoLCBPcHRpb25hbDxpbnQ+JiYgaGVpZ2h0KTsKKyNlbmRpZgogCiAgICAgLy8gSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uCiAgICAgdm9pZCBkb21Db250ZW50RXZlbnRGaXJlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcAppbmRleCBjYWE5NGM0YmIyODcuLjkwNmFhMTI3YzdlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5jcHAKQEAgLTEwNjQsNiArMTA2NCwyMyBAQCBib29sIEZyYW1lOjptYXlQcmV3YXJtTG9j
YWxTdG9yYWdlKCkgY29uc3QKICAgICByZXR1cm4gbV9sb2NhbFN0b3JhZ2VQcmV3YXJtaW5nQ291
bnQgPCBtYXhsb2NhbFN0b3JhZ2VQcmV3YXJtaW5nQ291bnQ7CiB9CiAKK0Zsb2F0U2l6ZSBGcmFt
ZTo6c2NyZWVuU2l6ZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX292ZXJyaWRlU2NyZWVuU2l6ZS5p
c1plcm8oKSkKKyAgICAgICAgcmV0dXJuIG1fb3ZlcnJpZGVTY3JlZW5TaXplOworICAgIHJldHVy
biBzY3JlZW5SZWN0KHZpZXcoKSkuc2l6ZSgpOworfQorCit2b2lkIEZyYW1lOjpzZXRPdmVycmlk
ZVNjcmVlblNpemUoRmxvYXRTaXplJiYgc2NyZWVuU2l6ZSkKK3sKKyAgICBpZiAobV9vdmVycmlk
ZVNjcmVlblNpemUgPT0gc2NyZWVuU2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9vdmVy
cmlkZVNjcmVlblNpemUgPSBXVEZNb3ZlKHNjcmVlblNpemUpOworICAgIGlmIChhdXRvKiBkb2N1
bWVudCA9IHRoaXMtPmRvY3VtZW50KCkpCisgICAgICAgIGRvY3VtZW50LT51cGRhdGVWaWV3cG9y
dEFyZ3VtZW50cygpOworfQorCiB2b2lkIEZyYW1lOjpzZWxmT25seVJlZigpCiB7CiAgICAgQVNT
RVJUKGlzTWFpbkZyYW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IDUwYzY1ZjVlNWIwNy4uYmJk
NmRlYWQ2MjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC0zMDksNiArMzA5LDkgQEAgcHVibGljOgog
CiAgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudEV2ZW50UmVnaW9uc0lmTmVlZGVkKCk7CiAKKyAg
ICBXRUJDT1JFX0VYUE9SVCBGbG9hdFNpemUgc2NyZWVuU2l6ZSgpIGNvbnN0OworICAgIHZvaWQg
c2V0T3ZlcnJpZGVTY3JlZW5TaXplKEZsb2F0U2l6ZSYmKTsKKwogLy8gPT09PT09PT0KIAogICAg
IHZvaWQgc2VsZk9ubHlSZWYoKTsKQEAgLTM3Miw2ICszNzUsMTAgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faGFzSGFkVXNlckludGVyYWN0aW9uIHsgZmFsc2UgfTsKICAgICB1bnNpZ25lZCBtX2xv
Y2FsU3RvcmFnZVByZXdhcm1pbmdDb3VudCB7IDAgfTsKIAorICAgIEZsb2F0U2l6ZSBtX292ZXJy
aWRlU2NyZWVuU2l6ZTsKKyAgICBPcHRpb25hbDxpbnQ+IG1fb3ZlcnJpZGVTY3JlZW5XaWR0aDsK
KyAgICBPcHRpb25hbDxpbnQ+IG1fb3ZlcnJpZGVTY3JlZW5IZWlnaHQ7CisKICAgICBVbmlxdWVS
ZWY8RXZlbnRIYW5kbGVyPiBtX2V2ZW50SGFuZGxlcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmlu
ZGV4IDViMDkzMmFjYmJiMS4uY2ZjYjQ4ZWJmNDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTg5
LDYgKzg5LDcgQEAKICNpbmNsdWRlICJQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuaCIKICNpbmNs
dWRlICJQZXJmb3JtYW5jZU1vbml0b3IuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlBsdWdJbkNsaWVudC5oIgogI2luY2x1ZGUgIlBs
dWdpbkRhdGEuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcAppbmRleCBiNGY3ZmUwZDE1ZWUuLjcwNGI3
NDY1ZjU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1
ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3
LmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5j
bHVkZSAiUXVpcmtzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCIKQEAgLTU2
LDcgKzU3LDcgQEAgdW5zaWduZWQgU2NyZWVuOjpoZWlnaHQoKSBjb25zdAogICAgICAgICByZXR1
cm4gMDsKICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53
ZWJBUElTdGF0aXN0aWNzRW5hYmxlZCgpKQogICAgICAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6
c2hhcmVkKCkubG9nU2NyZWVuQVBJQWNjZXNzZWQoKmZyYW1lLT5kb2N1bWVudCgpLCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzOjpTY3JlZW5BUEk6OkhlaWdodCk7Ci0gICAgbG9uZyBoZWlnaHQgPSBz
dGF0aWNfY2FzdDxsb25nPihzY3JlZW5SZWN0KGZyYW1lLT52aWV3KCkpLmhlaWdodCgpKTsKKyAg
ICBsb25nIGhlaWdodCA9IHN0YXRpY19jYXN0PGxvbmc+KGZyYW1lLT5zY3JlZW5TaXplKCkuaGVp
Z2h0KCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaGVpZ2h0KTsKIH0KIApA
QCAtNjcsNyArNjgsNyBAQCB1bnNpZ25lZCBTY3JlZW46OndpZHRoKCkgY29uc3QKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkud2ViQVBJU3RhdGlzdGljc0VuYWJsZWQoKSkKICAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2
ZXI6OnNoYXJlZCgpLmxvZ1NjcmVlbkFQSUFjY2Vzc2VkKCpmcmFtZS0+ZG9jdW1lbnQoKSwgUmVz
b3VyY2VMb2FkU3RhdGlzdGljczo6U2NyZWVuQVBJOjpXaWR0aCk7Ci0gICAgbG9uZyB3aWR0aCA9
IHN0YXRpY19jYXN0PGxvbmc+KHNjcmVlblJlY3QoZnJhbWUtPnZpZXcoKSkud2lkdGgoKSk7Cisg
ICAgbG9uZyB3aWR0aCA9IHN0YXRpY19jYXN0PGxvbmc+KGZyYW1lLT5zY3JlZW5TaXplKCkud2lk
dGgoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPih3aWR0aCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDQwM2E1NGZlMzZlZC4uNDcxZGZkNzQ4NzhjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0xMC0xNCAgUGhpbGlw
cGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogQWRkIHNldFNjcmVlblNpemVPdmVycmlkZSBBUEkgdG8gdGhlIFBhZ2UgYWdlbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzI0MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTG9jYWxpemF0aW9u
cy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
QmFzZS9NYWluLmpzOgorICAgICAgICAoV0kubG9hZGVkKTogQWRkIGEgbmV3IGRyb3AtZG93biBt
ZW51IGFsbG93aW5nIHRvIG92ZXJyaWRlIHRoZSBkZXZpY2Ugc2NyZWVuIHNpemUuCisKIDIwMjAt
MTAtMTIgIEx1bWluZyBZaW4gIDxsdW1pbmdfeWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFj
T1NdIFdvcmthcm91bmQgZm9yIE1BQ19PU19YX1ZFUlNJT05fTUFKT1IgaW5jb3JyZWN0bHkgaW5j
bHVkaW5nIG1pbm9yIHZlcnNpb24gd2hlbiBidWlsZGluZyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzCmluZGV4IDNjMTljNjFmOWVkMi4uZGJlYmZjOGM5NmJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJp
bmdzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9q
L2xvY2FsaXplZFN0cmluZ3MuanMKQEAgLTkwLDYgKzkwLDkgQEAgbG9jYWxpemVkU3RyaW5nc1si
LCAiXSA9ICIsICI7CiBsb2NhbGl6ZWRTdHJpbmdzWyIwIENvbnNvbGUgZXJyb3JzIl0gPSAiMCBD
b25zb2xlIGVycm9ycyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyIwIENvbnNvbGUgd2FybmluZ3MiXSA9
ICIwIENvbnNvbGUgd2FybmluZ3MiOwogbG9jYWxpemVkU3RyaW5nc1siMSBtYXRjaCJdID0gIjEg
bWF0Y2giOworbG9jYWxpemVkU3RyaW5nc1siMTA4MHAiXSA9ICIxMDgwcCI7Citsb2NhbGl6ZWRT
dHJpbmdzWyI3MjBwIl0gPSAiNzIwcCI7Citsb2NhbGl6ZWRTdHJpbmdzWyJTY3JlZW4gc2l6ZToi
XSA9ICJTY3JlZW4gc2l6ZToiOwogbG9jYWxpemVkU3RyaW5nc1siMkQiXSA9ICIyRCI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJBY2Nlc3NpYmlsaXR5Il0gPSAiQWNjZXNzaWJpbGl0eSI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJBY3Rpb24iXSA9ICJBY3Rpb24iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCmluZGV4IGY2MmYwNzVlNzM4Yy4uNGYyMjBh
MzI4OTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
YXNlL01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFz
ZS9NYWluLmpzCkBAIC0xNjcsNiArMTY3LDcgQEAgV0kubG9hZGVkID0gZnVuY3Rpb24oKQogICAg
IFdJLnZpc2libGUgPSBmYWxzZTsKICAgICBXSS5fd2luZG93S2V5ZG93bkxpc3RlbmVycyA9IFtd
OwogICAgIFdJLl9vdmVycmlkZW5EZXZpY2VVc2VyQWdlbnQgPSBudWxsOworICAgIFdJLl9vdmVy
cmlkZW5EZXZpY2VTY3JlZW5TaXplID0gbnVsbDsKICAgICBXSS5fb3ZlcnJpZGVuRGV2aWNlU2V0
dGluZ3MgPSBuZXcgTWFwOwogCiAgICAgLy8gVGFyZ2V0cy4KQEAgLTIyMDUsNiArMjIwNiwxMjMg
QEAgV0kuX2hhbmRsZURldmljZVNldHRpbmdzVGFiQmFyQnV0dG9uQ2xpY2tlZCA9IGZ1bmN0aW9u
KGV2ZW50KQogICAgICAgICB9CiAgICAgfSk7CiAKKyAgICBpZiAoSW5zcGVjdG9yQmFja2VuZC5o
YXNDb21tYW5kKCJQYWdlLnNldFNjcmVlblNpemVPdmVycmlkZSIpKSB7CisgICAgICAgIGZ1bmN0
aW9uIGFwcGx5T3ZlcnJpZGRlblNjcmVlblNpemUodmFsdWUsIGZvcmNlKSB7CisgICAgICAgICAg
ICBpZiAodmFsdWUgPT09IFdJLl9vdmVycmlkZW5EZXZpY2VTY3JlZW5TaXplKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYgKCFmb3JjZSAmJiAoIXZhbHVlIHx8IHZh
bHVlID09PSAiZGVmYXVsdCIpKSB7CisgICAgICAgICAgICAgICAgdGFyZ2V0LlBhZ2VBZ2VudC5z
ZXRTY3JlZW5TaXplT3ZlcnJpZGUoKGVycm9yKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGlm
IChlcnJvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgV0kucmVwb3J0SW50ZXJuYWxFcnJv
cihlcnJvcik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBXSS5fb3ZlcnJpZGVuRGV2aWNlU2NyZWVu
U2l6ZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUFjdGl2YXRlZFN0YXRlKCk7
CisgICAgICAgICAgICAgICAgICAgIHRhcmdldC5QYWdlQWdlbnQucmVsb2FkKCk7CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGxldCB0
b2tlbnMgPSB2YWx1ZS5zcGxpdCgieCIpOworICAgICAgICAgICAgICAgIGxldCB3aWR0aCA9IHBh
cnNlSW50KHRva2Vuc1swXSk7CisgICAgICAgICAgICAgICAgbGV0IGhlaWdodCA9IHBhcnNlSW50
KHRva2Vuc1sxXSk7CisgICAgICAgICAgICAgICAgdGFyZ2V0LlBhZ2VBZ2VudC5zZXRTY3JlZW5T
aXplT3ZlcnJpZGUod2lkdGgsIGhlaWdodCwgKGVycm9yKSA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgV0kucmVwb3J0SW50ZXJu
YWxFcnJvcihlcnJvcik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBXSS5fb3ZlcnJpZGVuRGV2aWNl
U2NyZWVuU2l6ZSA9IHZhbHVlOworICAgICAgICAgICAgICAgICAgICB1cGRhdGVBY3RpdmF0ZWRT
dGF0ZSgpOworICAgICAgICAgICAgICAgICAgICB0YXJnZXQuUGFnZUFnZW50LnJlbG9hZCgpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKworICAgICAg
ICBsZXQgc2NyZWVuU2l6ZVJvdyA9IHRhYmxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInRyIikpOworCisgICAgICAgIGxldCBzY3JlZW5TaXplVGl0bGUgPSBzY3JlZW5TaXpl
Um93LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIikpOworICAgICAgICBz
Y3JlZW5TaXplVGl0bGUudGV4dENvbnRlbnQgPSBXSS5VSVN0cmluZygiU2NyZWVuIHNpemU6Iik7
CisKKyAgICAgICAgbGV0IHNjcmVlblNpemVWYWx1ZSA9IHNjcmVlblNpemVSb3cuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQiKSk7CisgICAgICAgIHNjcmVlblNpemVWYWx1
ZS5jbGFzc0xpc3QuYWRkKCJzY3JlZW4tc2l6ZSIpOworCisgICAgICAgIGxldCBzY3JlZW5TaXpl
VmFsdWVTZWxlY3QgPSBzY3JlZW5TaXplVmFsdWUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgic2VsZWN0IikpOworCisgICAgICAgIGxldCBzY3JlZW5TaXplVmFsdWVJbnB1dCA9
IG51bGw7CisKKyAgICAgICAgY29uc3Qgc2NyZWVuU2l6ZXMgPSBbCisgICAgICAgICAgICBbCisg
ICAgICAgICAgICAgICAge25hbWU6IFdJLlVJU3RyaW5nKCJEZWZhdWx0IiksIHZhbHVlOiAiZGVm
YXVsdCJ9LAorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICB7
bmFtZTogV0kuVUlTdHJpbmcoIjEwODBwIiksIHZhbHVlOiAiMTkyMHgxMDgwIn0sCisgICAgICAg
ICAgICAgICAge25hbWU6IFdJLlVJU3RyaW5nKCI3MjBwIiksIHZhbHVlOiAiMTI4MHg3MjAifSwK
KyAgICAgICAgICAgIF0sCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAge25hbWU6IFdJ
LlVJU3RyaW5nKCJPdGhlclx1MjAyNiIpLCB2YWx1ZTogIm90aGVyIn0sCisgICAgICAgICAgICBd
LAorICAgICAgICBdOworCisgICAgICAgIGxldCBzZWxlY3RlZFNjcmVlblNpemVPcHRpb25FbGVt
ZW50ID0gbnVsbDsKKworICAgICAgICBmb3IgKGxldCBncm91cCBvZiBzY3JlZW5TaXplcykgewor
ICAgICAgICAgICAgZm9yIChsZXQge25hbWUsIHZhbHVlfSBvZiBncm91cCkgeworICAgICAgICAg
ICAgICAgIGxldCBvcHRpb25FbGVtZW50ID0gc2NyZWVuU2l6ZVZhbHVlU2VsZWN0LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpKTsKKyAgICAgICAgICAgICAgICBv
cHRpb25FbGVtZW50LnZhbHVlID0gdmFsdWU7CisgICAgICAgICAgICAgICAgb3B0aW9uRWxlbWVu
dC50ZXh0Q29udGVudCA9IG5hbWU7CisKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IFdJ
Ll9vdmVycmlkZW5EZXZpY2VTY3JlZW5TaXplKQorICAgICAgICAgICAgICAgICAgICBzZWxlY3Rl
ZFNjcmVlblNpemVPcHRpb25FbGVtZW50ID0gb3B0aW9uRWxlbWVudDsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgaWYgKGdyb3VwICE9PSBzY3JlZW5TaXplcy5sYXN0VmFsdWUpCisgICAg
ICAgICAgICAgICAgc2NyZWVuU2l6ZVZhbHVlU2VsZWN0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImhyIikpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc2hvd1Nj
cmVlblNpemVJbnB1dCgpIHsKKyAgICAgICAgICAgIGlmIChzY3JlZW5TaXplVmFsdWVJbnB1dCkK
KyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIHNjcmVlblNpemVWYWx1ZUlu
cHV0ID0gc2NyZWVuU2l6ZVZhbHVlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImlucHV0IikpOworICAgICAgICAgICAgc2NyZWVuU2l6ZVZhbHVlSW5wdXQuc3BlbGxjaGVjayA9
IGZhbHNlOworICAgICAgICAgICAgc2NyZWVuU2l6ZVZhbHVlSW5wdXQudmFsdWUgPSBzY3JlZW5T
aXplVmFsdWVJbnB1dC5wbGFjZWhvbGRlciA9IFdJLl9vdmVycmlkZW5EZXZpY2VTY3JlZW5TaXpl
IHx8IHdpbmRvdy5zY3JlZW4ud2lkdGggKyAieCIgKyB3aW5kb3cuc2NyZWVuLmhlaWdodDsKKyAg
ICAgICAgICAgIHNjcmVlblNpemVWYWx1ZUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwg
KGNsaWNrRXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBjbGlja0V2ZW50LnByZXZlbnREZWZh
dWx0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHNjcmVlblNpemVWYWx1ZUlucHV0
LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIChpbnB1dEV2ZW50KSA9PiB7CisgICAgICAgICAg
ICAgICAgYXBwbHlPdmVycmlkZGVuU2NyZWVuU2l6ZShzY3JlZW5TaXplVmFsdWVJbnB1dC52YWx1
ZSwgdHJ1ZSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgV0kuX2RldmljZVNldHRp
bmdzUG9wb3Zlci51cGRhdGUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzZWxlY3RlZFNj
cmVlblNpemVPcHRpb25FbGVtZW50KQorICAgICAgICAgICAgc2NyZWVuU2l6ZVZhbHVlU2VsZWN0
LnZhbHVlID0gc2VsZWN0ZWRTY3JlZW5TaXplT3B0aW9uRWxlbWVudC52YWx1ZTsKKyAgICAgICAg
ZWxzZSBpZiAoV0kuX292ZXJyaWRlbkRldmljZVNjcmVlblNpemUpIHsKKyAgICAgICAgICAgIHNj
cmVlblNpemVWYWx1ZVNlbGVjdC52YWx1ZSA9ICJvdGhlciI7CisgICAgICAgICAgICBzaG93U2Ny
ZWVuU2l6ZUlucHV0KCk7CisgICAgICAgIH0KKworICAgICAgICBzY3JlZW5TaXplVmFsdWVTZWxl
Y3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgKCkgPT4geworICAgICAgICAgICAgbGV0IHZh
bHVlID0gc2NyZWVuU2l6ZVZhbHVlU2VsZWN0LnZhbHVlOworICAgICAgICAgICAgaWYgKHZhbHVl
ID09PSAib3RoZXIiKSB7CisgICAgICAgICAgICAgICAgc2hvd1NjcmVlblNpemVJbnB1dCgpOwor
ICAgICAgICAgICAgICAgIHNjcmVlblNpemVWYWx1ZUlucHV0LnNlbGVjdCgpOworICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoc2NyZWVuU2l6ZVZhbHVlSW5wdXQpIHsK
KyAgICAgICAgICAgICAgICAgICAgc2NyZWVuU2l6ZVZhbHVlSW5wdXQucmVtb3ZlKCk7CisgICAg
ICAgICAgICAgICAgICAgIHNjcmVlblNpemVWYWx1ZUlucHV0ID0gbnVsbDsKKworICAgICAgICAg
ICAgICAgICAgICBXSS5fZGV2aWNlU2V0dGluZ3NQb3BvdmVyLnVwZGF0ZSgpOworICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgIGFwcGx5T3ZlcnJpZGRlblNjcmVlblNpemUodmFs
dWUpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKICAgICBjb25zdCBzZXR0
aW5ncyA9IFsKICAgICAgICAgewogICAgICAgICAgICAgbmFtZTogV0kuVUlTdHJpbmcoIkRpc2Fi
bGU6IiksCg==
</data>
<flag name="review"
          id="427612"
          type_id="1"
          status="+"
          setter="hi"
    />
    <flag name="commit-queue"
          id="427889"
          type_id="3"
          status="-"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411741</attachid>
            <date>2020-10-19 05:56:09 -0700</date>
            <delta_ts>2020-10-20 01:01:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wi-screen-size.diff</filename>
            <type>text/plain</type>
            <size>22207</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhYTdkMTY3ZjY5NzQuLjllZDE2MGMwYmRiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDIwLTEwLTE5ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4gYW5k
IFBhdmVsIEZlbGRtYW4gPHBhdmVsLmZlbGRtYW5AZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IEFkZCBzZXRTY3JlZW5TaXplT3ZlcnJpZGUgQVBJIHRvIHRoZSBQYWdlIGFnZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMyNDIK
KworICAgICAgICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAgKiBUZXN0RXhw
ZWN0YXRpb25zOgorICAgICAgICAqIGluc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVPdmVycmlk
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL1Rlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9pbnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3Zl
cnJpZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAyMC0xMC0xMyAgU2VyZ2lvIFZpbGxhciBT
ZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBTYW5pdGl6ZSB0aGUgdXNhZ2Ug
b2Ygb3ZlcnJpZGUgc2l6ZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDE3ZWQ5MGFlNmViOC4uMzdj
ZWE2YjMyNjYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc2LDYgKzc2LDcgQEAgZWRpdGluZy9w
YXN0ZWJvYXJkL2RvbS1wYXN0ZSBbIFNraXAgXQogZWRpdGluZy9wYXN0ZWJvYXJkL21hYyBbIFNr
aXAgXQogZmFzdC9tZWRpYS9pb3MgWyBTa2lwIF0KIGZhc3QvZG9tL1JhbmdlL21hYyBbIFNraXAg
XQoraW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLmh0bWwgWyBTa2lwIF0KIAog
IyBSZXF1aXJlcyBhc3luYyBvdmVyZmxvdyBzY3JvbGxpbmcKIGNvbXBvc2l0aW5nL3NoYXJlZC1i
YWNraW5nL292ZXJmbG93LXNjcm9sbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcGFnZS9zZXRTY3JlZW5TaXplT3ZlcnJpZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmRiMzY4YThjN2ViMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVPdmVycmlkZS5odG1sCkBA
IC0wLDAgKzEsNTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHN0eWxlPgorQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LWRldmlj
ZS13aWR0aDogMTAwMHB4KSB7CisgICAgYm9keSB7CisgICAgICAgIGNvbG9yOiByZWQ7CisgICAg
fQorfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkgeworICAgIGxldCBzdWl0
ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUGFnZS5zZXRTY3JlZW5TaXplT3Zl
cnJpZGUiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlNjcmVl
blNpemVPdmVycmlkZU92ZXJyaWRlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJWZXJpZnkgdGhh
dCB0aGUgaW5zcGVjdG9yIGNhbiBvdmVycmlkZSB0aGUgc2NyZWVuIHNpemUuIiwKKyAgICAgICAg
YXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBvcmlnaW5hbFNjcmVlbldpZHRoID0gYXdh
aXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LnNjcmVlbi53aWR0aGApOwor
ICAgICAgICAgICAgbGV0IG9yaWdpbmFsU2NyZWVuSGVpZ2h0ID0gYXdhaXQgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZShgd2luZG93LnNjcmVlbi5oZWlnaHRgKTsKKworICAgICAgICAgICAg
bGV0IGN1cnJlbnRCYWNrZ3JvdW5kQ29sb3IgPSBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKCJnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmNvbG9yIik7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGN1cnJlbnRCYWNrZ3JvdW5kQ29sb3IsICJy
Z2IoMCwgMCwgMCkiLCAiQm9keSBzaG91bGQgYmUgd2hpdGUuIik7CisKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJPdmVycmlkaW5nIHNjcmVlbiBzaXplIHRvIDEwMDB4NTAwIik7Cisg
ICAgICAgICAgICBhd2FpdCBQYWdlQWdlbnQuc2V0U2NyZWVuU2l6ZU92ZXJyaWRlKDEwMDAsIDUw
MCk7CisgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBsb2Nh
dGlvbi5yZWxvYWQoKWApOworCisgICAgICAgICAgICBsZXQgbmV3U2NyZWVuV2lkdGggPSBhd2Fp
dCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGB3aW5kb3cuc2NyZWVuLndpZHRoYCk7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG5ld1NjcmVlbldpZHRoLCAxMDAw
LCAiRGVmYXVsdCBzY3JlZW4gd2lkdGggc2hvdWxkIGJlIDEwMDAuIik7CisgICAgICAgICAgICBs
ZXQgbmV3U2NyZWVuSGVpZ2h0ID0gYXdhaXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShg
d2luZG93LnNjcmVlbi5oZWlnaHRgKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
RXF1YWwobmV3U2NyZWVuSGVpZ2h0LCA1MDAsICJEZWZhdWx0IHNjcmVlbiBoZWlnaHQgc2hvdWxk
IGJlIDUwMC4iKTsKKworICAgICAgICAgICAgbGV0IG5ld0JhY2tncm91bmRDb2xvciA9IGF3YWl0
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Ym9keSkuY29sb3IiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwobmV3
QmFja2dyb3VuZENvbG9yLCAicmdiKDI1NSwgMCwgMCkiLCAiQm9keSBzaG91bGQgYmUgcmVkLiIp
OworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUmVtb3Zpbmcgc2NyZWVuIHNpemUg
b3ZlcnJpZGUiKTsKKyAgICAgICAgICAgIGF3YWl0IFBhZ2VBZ2VudC5zZXRTY3JlZW5TaXplT3Zl
cnJpZGUoKTsKKyAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
YGxvY2F0aW9uLnJlbG9hZCgpYCk7CisKKyAgICAgICAgICAgIG5ld1NjcmVlbldpZHRoID0gYXdh
aXQgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgd2luZG93LnNjcmVlbi53aWR0aGApOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChuZXdTY3JlZW5XaWR0aCwgb3Jp
Z2luYWxTY3JlZW5XaWR0aCwgIlNjcmVlbiB3aWR0aCBvdmVycmlkZSBzaG91bGQgYmUgcmVtb3Zl
ZC4iKTsKKyAgICAgICAgICAgIG5ld1NjcmVlbkhlaWdodCA9IGF3YWl0IEluc3BlY3RvclRlc3Qu
ZXZhbHVhdGVJblBhZ2UoYHdpbmRvdy5zY3JlZW4uaGVpZ2h0YCk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVxdWFsKG5ld1NjcmVlbkhlaWdodCwgb3JpZ2luYWxTY3JlZW5IZWln
aHQsICJTY3JlZW4gaGVpZ2h0IG92ZXJyaWRlIHNob3VsZCBiZSByZW1vdmVkLiIpOworICAgICAg
ICB9CisgICAgfSk7CisKKyAgICBXSS5kb21NYW5hZ2VyLnJlcXVlc3REb2N1bWVudCgobm9kZSkg
PT4geworICAgICAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKKyAgICB9KTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiLz4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4MzQ1NWNm
YjI1NTYuLjE4OGMwMGEyNTdiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xp
Yi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMTAxOSw2ICsxMDE5LDggQEAgaW1wb3J0ZWQvbW96aWxsYS9zdmcvYmxl
bmQtaGFyZC1saWdodC5zdmcgWyBQYXNzIF0KIGltcG9ydGVkL21vemlsbGEvc3ZnL2R5bmFtaWMt
dGV4dFBhdGgtMDIuc3ZnIFsgUGFzcyBdCiBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9pbWFnZS9pbWFn
ZS1maWx0ZXItMDEuc3ZnIFsgUGFzcyBdCiAKK2luc3BlY3Rvci9wYWdlL3NldFNjcmVlblNpemVP
dmVycmlkZS5odG1sIFsgUGFzcyBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CiAjIEVuZCBvZiBQQVNTSU5HIHRlc3RzLgogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvaW5zcGVjdG9yL3BhZ2Uv
c2V0U2NyZWVuU2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2dsaWIvaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ0MjkyNDMwZjQ2NgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvaW5zcGVjdG9yL3BhZ2Uv
c2V0U2NyZWVuU2l6ZU92ZXJyaWRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACisKKz09
IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUGFnZS5zZXRTY3JlZW5TaXplT3ZlcnJpZGUKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBTY3JlZW5TaXplT3ZlcnJpZGVPdmVycmlkZQorUEFTUzogQm9keSBzaG91
bGQgYmUgd2hpdGUuCitPdmVycmlkaW5nIHNjcmVlbiBzaXplIHRvIDEwMDB4NTAwCitQQVNTOiBE
ZWZhdWx0IHNjcmVlbiB3aWR0aCBzaG91bGQgYmUgMTAwMC4KK1BBU1M6IERlZmF1bHQgc2NyZWVu
IGhlaWdodCBzaG91bGQgYmUgNTAwLgorUEFTUzogQm9keSBzaG91bGQgYmUgcmVkLgorUmVtb3Zp
bmcgc2NyZWVuIHNpemUgb3ZlcnJpZGUKK1BBU1M6IFNjcmVlbiB3aWR0aCBvdmVycmlkZSBzaG91
bGQgYmUgcmVtb3ZlZC4KK1BBU1M6IFNjcmVlbiBoZWlnaHQgb3ZlcnJpZGUgc2hvdWxkIGJlIHJl
bW92ZWQuCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGI4ZTdiZmM0N2I0OC4uMzk2YWMx
MzJkNTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0x
MC0xOSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+IGFuZCBQYXZlbCBG
ZWxkbWFuIDxwYXZlbC5mZWxkbWFuQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBBZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0aGUgUGFnZSBhZ2VudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMjQyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3Rv
Y29sL1BhZ2UuanNvbjogQWRkIGEgbmV3IHNldFNjcmVlblNpemVPdmVycmlkZSBBUEkgaW4gdGhl
IFBhZ2UgYWdlbnQuCisKIDIwMjAtMTAtMTggIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxl
LmNvbT4KIAogICAgICAgICBGaXggLVdkZXByZWNhdGVkLWNvcHkgd2FybmluZ3MgaW4gV1RGIGFu
ZCBKYXZhU2NyaXB0Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9QYWdlLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3Byb3RvY29sL1BhZ2UuanNvbgppbmRleCBmZGU0ZjY5NjRkNDAuLjgyNTI3OTI2NDk1NCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpz
b24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpz
b24KQEAgLTMwNCw2ICszMDQsMTYgQEAKICAgICAgICAgICAgICJyZXR1cm5zIjogWwogICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiZGF0YSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlv
biI6ICJCYXNlNjQtZW5jb2RlZCB3ZWIgYXJjaGl2ZS4iIH0KICAgICAgICAgICAgIF0KKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAic2V0U2NyZWVuU2l6ZU92ZXJy
aWRlIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJPdmVycmlkZXMgc2NyZWVuIHNpemUg
ZXhwb3NlZCB0byBET00gYW5kIHVzZWQgaW4gbWVkaWEgcXVlcmllcyBmb3IgdGVzdGluZyB3aXRo
IHByb3ZpZGVkIHZhbHVlcy4iLAorICAgICAgICAgICAgImNvbmRpdGlvbiI6ICIhKGRlZmluZWQo
V1RGX1BMQVRGT1JNX0NPQ09BKSAmJiBXVEZfUExBVEZPUk1fQ09DT0EpIiwKKyAgICAgICAgICAg
ICJ0YXJnZXRUeXBlcyI6IFsicGFnZSJdLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ3aWR0aCIsICJ0eXBlIjogImludGVnZXIiLCAiZGVz
Y3JpcHRpb24iOiAiU2NyZWVuIHdpZHRoIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiaGVpZ2h0IiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlv
biI6ICJTY3JlZW4gaGVpZ2h0IiwgIm9wdGlvbmFsIjogdHJ1ZSB9CisgICAgICAgICAgICBdCiAg
ICAgICAgIH0KICAgICBdLAogICAgICJldmVudHMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdkMThmM2My
MGEyLi5mNDEwNmQ3ODM1MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMC0xMC0x
OSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+IGFuZCBQYXZlbCBGZWxk
bWFuIDxwYXZlbC5mZWxkbWFuQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBB
ZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0aGUgUGFnZSBhZ2VudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMjQyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIEFsbG93IHRoZSBXZWJJbnNwZWN0
b3IgUGFnZSBhZ2VudCB0byBvdmVycmlkZSB0aGUgU2NyZWVuIHNpemUgZm9yIG1lZGlhIHF1ZXJp
ZXMuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL3BhZ2Uvc2V0U2NyZWVuU2l6ZU92ZXJyaWRl
Lmh0bWwKKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDogVXNlIHRoZSBG
cmFtZTo6c2NyZWVuU2l6ZSgpIG1ldGhvZCB0byBxdWVyeSB0aGUgc2NyZWVuIGRpbWVuc2lvbnMu
CisgICAgICAgIChXZWJDb3JlOjpkZXZpY2VBc3BlY3RSYXRpb0V2YWx1YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OmRldmljZUhlaWdodEV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmRldmlj
ZVdpZHRoRXZhbHVhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFn
ZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6c2V0U2Ny
ZWVuU2l6ZU92ZXJyaWRlKTogSW1wbGVtZW50YXRpb24gb2YgdGhlIG5ldyBBUEkgaG9va2luZwor
ICAgICAgICBpbnRvIHRoZSBXZWJDb3JlOjpGcmFtZTo6c2V0T3ZlcnJpZGVTY3JlZW5TaXplKCkg
bWV0aG9kLgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUGFnZUFnZW50Lmg6
CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6c2Ny
ZWVuU2l6ZSBjb25zdCk6IE5ldyBlbnRyeSBwb2ludCB0byBxdWVyeSB0aGUgc2NyZWVuIHNpemUs
IHRoaXMgdGFrZXMgaW50byBhY2NvdW50IHRoZQorICAgICAgICBvcHRpb25hbCBvdmVycmlkZW4g
c2NyZWVuIHNpemUuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6c2V0T3ZlcnJpZGVTY3JlZW5T
aXplKTogQVBJIHVzZWQgYnkgdGhlIFBhZ2UgYWdlbnQgdG8gZmFrZSBhIG5ldyBzY3JlZW4gc2l6
ZS4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAg
ICAgICAgKiBwYWdlL1NjcmVlbi5jcHA6IFVzZSB0aGUgRnJhbWU6OnNjcmVlblNpemUoKSBtZXRo
b2QgdG8gcXVlcnkgdGhlIHNjcmVlbiBkaW1lbnNpb25zLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
ZWVuOjpoZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuOjp3aWR0aCBjb25z
dCk6CisKIDIwMjAtMTAtMTMgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5j
b20+CiAKICAgICAgICAgU2FuaXRpemUgdGhlIHVzYWdlIG9mIG92ZXJyaWRlIHNpemVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKaW5kZXggYzhhODQ5ZDk4ZDA0
Li5mMTkxOTk0YTI4NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRv
ci5jcHAKQEAgLTM5MCw3ICszOTAsNyBAQCBzdGF0aWMgYm9vbCBkZXZpY2VBc3BlY3RSYXRpb0V2
YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaQogICAgIGlm
ICghdmFsdWUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgYXV0byBzaXplID0gc2NyZWVu
UmVjdChmcmFtZS5tYWluRnJhbWUoKS52aWV3KCkpLnNpemUoKTsKKyAgICBhdXRvIHNpemUgPSBm
cmFtZS5tYWluRnJhbWUoKS5zY3JlZW5TaXplKCk7CiAgICAgYm9vbCByZXN1bHQgPSBjb21wYXJl
QXNwZWN0UmF0aW9WYWx1ZSh2YWx1ZSwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCBvcCk7
CiAgICAgTE9HX1dJVEhfU1RSRUFNKE1lZGlhUXVlcmllcywgc3RyZWFtIDw8ICIgIGRldmljZUFz
cGVjdFJhdGlvRXZhbHVhdGU6ICIgPDwgb3AgPDwgIiAiIDw8IGFzcGVjdFJhdGlvVmFsdWVBc1N0
cmluZyh2YWx1ZSkgPDwgIiBhY3R1YWwgc2NyZWVuIHNpemUgIiA8PCBzaXplIDw8ICI6ICIgPDwg
cmVzdWx0KTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtNTA4LDcgKzUwOCw3IEBAIHN0YXRpYyBi
b29sIGRldmljZUhlaWdodEV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0CiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgaW50IGxlbmd0aDsKLSAgICBhdXRvIGhlaWdodCA9IHNjcmVlblJlY3QoZnJhbWUubWFpbkZy
YW1lKCkudmlldygpKS5oZWlnaHQoKTsKKyAgICBhdXRvIGhlaWdodCA9IGZyYW1lLm1haW5GcmFt
ZSgpLnNjcmVlblNpemUoKS5oZWlnaHQoKTsKICAgICBpZiAoIWNvbXB1dGVMZW5ndGgodmFsdWUs
ICFmcmFtZS5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSwgY29udmVyc2lvbkRhdGEsIGxlbmd0
aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNTI0LDcgKzUyNCw3IEBAIHN0YXRpYyBi
b29sIGRldmljZVdpZHRoRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhCiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgaW50IGxlbmd0aDsKLSAgICBhdXRvIHdpZHRoID0gc2NyZWVuUmVjdChmcmFtZS5tYWluRnJh
bWUoKS52aWV3KCkpLndpZHRoKCk7CisgICAgYXV0byB3aWR0aCA9IGZyYW1lLm1haW5GcmFtZSgp
LnNjcmVlblNpemUoKS53aWR0aCgpOwogICAgIGlmICghY29tcHV0ZUxlbmd0aCh2YWx1ZSwgIWZy
YW1lLmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpLCBjb252ZXJzaW9uRGF0YSwgbGVuZ3RoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggZTEwMDhlZGYxYzZkLi5i
MzYwNTNhOWY2MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTExMDYsNCArMTEwNiwyMSBAQCBQcm90b2Nv
bDo6RXJyb3JTdHJpbmdPcjxTdHJpbmc+IEluc3BlY3RvclBhZ2VBZ2VudDo6YXJjaGl2ZSgpCiB9
CiAjZW5kaWYKIAorI2lmICFQTEFURk9STShDT0NPQSkKK1Byb3RvY29sOjpFcnJvclN0cmluZ09y
PHZvaWQ+IEluc3BlY3RvclBhZ2VBZ2VudDo6c2V0U2NyZWVuU2l6ZU92ZXJyaWRlKE9wdGlvbmFs
PGludD4mJiB3aWR0aCwgT3B0aW9uYWw8aW50PiYmIGhlaWdodCkKK3sKKyAgICBpZiAod2lkdGgu
aGFzVmFsdWUoKSAhPSBoZWlnaHQuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKCJTY3JlZW4gd2lkdGggYW5kIGhlaWdodCBvdmVycmlkZSBzaG91bGQgYmUgYm90aCBz
cGVjaWZpZWQgb3Igb21pdHRlZCJfcyk7CisKKyAgICBpZiAod2lkdGggJiYgKndpZHRoIDw9IDAp
CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCgiU2NyZWVuIHdpZHRoIG92ZXJyaWRlIHNo
b3VsZCBiZSBhIHBvc2l0aXZlIGludGVnZXIiX3MpOworCisgICAgaWYgKGhlaWdodCAmJiAqaGVp
Z2h0IDw9IDApCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCgiU2NyZWVuIGhlaWdodCBv
dmVycmlkZSBzaG91bGQgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIl9zKTsKKworICAgIG1faW5zcGVj
dGVkUGFnZS5tYWluRnJhbWUoKS5zZXRPdmVycmlkZVNjcmVlblNpemUoRmxvYXRTaXplKHdpZHRo
LnZhbHVlT3IoMCksIGhlaWdodC52YWx1ZU9yKDApKSk7CisgICAgcmV0dXJuIHsgfTsKK30KKyNl
bmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JQYWdlQWdlbnQuaAppbmRleCBkMmIwNjVlMTM2NTEu
LmJmODgzNDUyNTNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0xMTksNiArMTE5LDkgQEAgcHVibGljOgogI2lm
IEVOQUJMRShXRUJfQVJDSElWRSkgJiYgVVNFKENGKQogICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkVycm9yU3RyaW5nT3I8U3RyaW5nPiBhcmNoaXZlKCk7CiAjZW5kaWYKKyNpZiAhUExBVEZPUk0o
Q09DT0EpCisgICAgSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBzZXRT
Y3JlZW5TaXplT3ZlcnJpZGUoT3B0aW9uYWw8aW50PiYmIHdpZHRoLCBPcHRpb25hbDxpbnQ+JiYg
aGVpZ2h0KTsKKyNlbmRpZgogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAg
dm9pZCBkb21Db250ZW50RXZlbnRGaXJlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBlNzZl
MmE5NTQyN2EuLmVhN2NhNGM1M2VmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTEwNjcsNiAr
MTA2NywyMyBAQCBib29sIEZyYW1lOjptYXlQcmV3YXJtTG9jYWxTdG9yYWdlKCkgY29uc3QKICAg
ICByZXR1cm4gbV9sb2NhbFN0b3JhZ2VQcmV3YXJtaW5nQ291bnQgPCBtYXhsb2NhbFN0b3JhZ2VQ
cmV3YXJtaW5nQ291bnQ7CiB9CiAKK0Zsb2F0U2l6ZSBGcmFtZTo6c2NyZWVuU2l6ZSgpIGNvbnN0
Cit7CisgICAgaWYgKCFtX292ZXJyaWRlU2NyZWVuU2l6ZS5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiBtX292ZXJyaWRlU2NyZWVuU2l6ZTsKKyAgICByZXR1cm4gc2NyZWVuUmVjdCh2aWV3KCkp
LnNpemUoKTsKK30KKwordm9pZCBGcmFtZTo6c2V0T3ZlcnJpZGVTY3JlZW5TaXplKEZsb2F0U2l6
ZSYmIHNjcmVlblNpemUpCit7CisgICAgaWYgKG1fb3ZlcnJpZGVTY3JlZW5TaXplID09IHNjcmVl
blNpemUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fb3ZlcnJpZGVTY3JlZW5TaXplID0gV1RG
TW92ZShzY3JlZW5TaXplKTsKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVu
dCgpKQorICAgICAgICBkb2N1bWVudC0+dXBkYXRlVmlld3BvcnRBcmd1bWVudHMoKTsKK30KKwog
dm9pZCBGcmFtZTo6c2VsZk9ubHlSZWYoKQogewogICAgIEFTU0VSVChpc01haW5GcmFtZSgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuaAppbmRleCA1MGM2NWY1ZTViMDcuLjk0YzA1YjIwNWQzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuaApAQCAtMzA5LDYgKzMwOSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaW52YWxpZGF0
ZUNvbnRlbnRFdmVudFJlZ2lvbnNJZk5lZWRlZCgpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgRmxv
YXRTaXplIHNjcmVlblNpemUoKSBjb25zdDsKKyAgICB2b2lkIHNldE92ZXJyaWRlU2NyZWVuU2l6
ZShGbG9hdFNpemUmJik7CisKIC8vID09PT09PT09CiAKICAgICB2b2lkIHNlbGZPbmx5UmVmKCk7
CkBAIC0zNzIsNiArMzc1LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzSGFkVXNlckludGVy
YWN0aW9uIHsgZmFsc2UgfTsKICAgICB1bnNpZ25lZCBtX2xvY2FsU3RvcmFnZVByZXdhcm1pbmdD
b3VudCB7IDAgfTsKIAorICAgIEZsb2F0U2l6ZSBtX292ZXJyaWRlU2NyZWVuU2l6ZTsKKwogICAg
IFVuaXF1ZVJlZjxFdmVudEhhbmRsZXI+IG1fZXZlbnRIYW5kbGVyOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKaW5kZXggNWIwOTMyYWNiYmIxLi5jZmNiNDhlYmY0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cApAQCAtODksNiArODksNyBAQAogI2luY2x1ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5o
IgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlTW9uaXRvci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiUGx1Z0luQ2xpZW50LmgiCiAjaW5j
bHVkZSAiUGx1Z2luRGF0YS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3Jl
ZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCmluZGV4IGI0ZjdmZTBkMTVl
ZS4uNzA0Yjc0NjVmNTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4u
aCIKICNpbmNsdWRlICJRdWlya3MuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRPYnNlcnZlci5o
IgpAQCAtNTYsNyArNTcsNyBAQCB1bnNpZ25lZCBTY3JlZW46OmhlaWdodCgpIGNvbnN0CiAgICAg
ICAgIHJldHVybiAwOwogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLndlYkFQSVN0YXRpc3RpY3NFbmFibGVkKCkpCiAgICAgICAgIFJlc291cmNlTG9hZE9i
c2VydmVyOjpzaGFyZWQoKS5sb2dTY3JlZW5BUElBY2Nlc3NlZCgqZnJhbWUtPmRvY3VtZW50KCks
IFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OlNjcmVlbkFQSTo6SGVpZ2h0KTsKLSAgICBsb25nIGhl
aWdodCA9IHN0YXRpY19jYXN0PGxvbmc+KHNjcmVlblJlY3QoZnJhbWUtPnZpZXcoKSkuaGVpZ2h0
KCkpOworICAgIGxvbmcgaGVpZ2h0ID0gc3RhdGljX2Nhc3Q8bG9uZz4oZnJhbWUtPnNjcmVlblNp
emUoKS5oZWlnaHQoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihoZWlnaHQp
OwogfQogCkBAIC02Nyw3ICs2OCw3IEBAIHVuc2lnbmVkIFNjcmVlbjo6d2lkdGgoKSBjb25zdAog
ICAgICAgICByZXR1cm4gMDsKICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS53ZWJBUElTdGF0aXN0aWNzRW5hYmxlZCgpKQogICAgICAgICBSZXNvdXJjZUxv
YWRPYnNlcnZlcjo6c2hhcmVkKCkubG9nU2NyZWVuQVBJQWNjZXNzZWQoKmZyYW1lLT5kb2N1bWVu
dCgpLCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpTY3JlZW5BUEk6OldpZHRoKTsKLSAgICBsb25n
IHdpZHRoID0gc3RhdGljX2Nhc3Q8bG9uZz4oc2NyZWVuUmVjdChmcmFtZS0+dmlldygpKS53aWR0
aCgpKTsKKyAgICBsb25nIHdpZHRoID0gc3RhdGljX2Nhc3Q8bG9uZz4oZnJhbWUtPnNjcmVlblNp
emUoKS53aWR0aCgpKTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHdpZHRoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggN2I1ZGNhMTA2NjJhLi45ZDgwZGViYTQ1
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTEwLTE5
ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBBZGQgc2V0U2NyZWVuU2l6ZU92ZXJyaWRlIEFQSSB0byB0aGUgUGFnZSBhZ2Vu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMjQy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgICogTG9jYWxp
emF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvQmFzZS9NYWluLmpzOgorICAgICAgICAoV0kubG9hZGVkKTogQWRkIGEgbmV3IGRyb3At
ZG93biBtZW51IGFsbG93aW5nIHRvIG92ZXJyaWRlIHRoZSBkZXZpY2Ugc2NyZWVuIHNpemUuCisK
IDIwMjAtMTAtMTYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IFJFR1JFU1NJT04ocjI2NjY2OSk6IERPTUJyZWFrcG9pbnQuanM6MTA2
OjIzOiBDT05TT0xFIEFTU0VSVCBFUlJPUiBkb21Ob2RlIHNob3VsZCBub3QgY2hhbmdlIG9uY2Ug
c2V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5s
cHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXph
dGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCAzYzE5YzYxZjllZDIuLmRi
ZWJmYzhjOTZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlv
bnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC05MCw2ICs5
MCw5IEBAIGxvY2FsaXplZFN0cmluZ3NbIiwgIl0gPSAiLCAiOwogbG9jYWxpemVkU3RyaW5nc1si
MCBDb25zb2xlIGVycm9ycyJdID0gIjAgQ29uc29sZSBlcnJvcnMiOwogbG9jYWxpemVkU3RyaW5n
c1siMCBDb25zb2xlIHdhcm5pbmdzIl0gPSAiMCBDb25zb2xlIHdhcm5pbmdzIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIjEgbWF0Y2giXSA9ICIxIG1hdGNoIjsKK2xvY2FsaXplZFN0cmluZ3NbIjEwODBw
Il0gPSAiMTA4MHAiOworbG9jYWxpemVkU3RyaW5nc1siNzIwcCJdID0gIjcyMHAiOworbG9jYWxp
emVkU3RyaW5nc1siU2NyZWVuIHNpemU6Il0gPSAiU2NyZWVuIHNpemU6IjsKIGxvY2FsaXplZFN0
cmluZ3NbIjJEIl0gPSAiMkQiOwogbG9jYWxpemVkU3RyaW5nc1siQWNjZXNzaWJpbGl0eSJdID0g
IkFjY2Vzc2liaWxpdHkiOwogbG9jYWxpemVkU3RyaW5nc1siQWN0aW9uIl0gPSAiQWN0aW9uIjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFp
bi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpp
bmRleCBjMTM3MTUzOWMxNzcuLjM5YTllZjUzZmM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtMTY3LDYgKzE2Nyw3IEBAIFdJ
LmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICBXSS52aXNpYmxlID0gZmFsc2U7CiAgICAgV0kuX3dp
bmRvd0tleWRvd25MaXN0ZW5lcnMgPSBbXTsKICAgICBXSS5fb3ZlcnJpZGVuRGV2aWNlVXNlckFn
ZW50ID0gbnVsbDsKKyAgICBXSS5fb3ZlcnJpZGVuRGV2aWNlU2NyZWVuU2l6ZSA9IG51bGw7CiAg
ICAgV0kuX292ZXJyaWRlbkRldmljZVNldHRpbmdzID0gbmV3IE1hcDsKIAogICAgIC8vIFRhcmdl
dHMuCkBAIC0yMjAyLDYgKzIyMDMsMTIzIEBAIFdJLl9oYW5kbGVEZXZpY2VTZXR0aW5nc1RhYkJh
ckJ1dHRvbkNsaWNrZWQgPSBmdW5jdGlvbihldmVudCkKICAgICAgICAgfQogICAgIH0pOwogCisg
ICAgaWYgKEluc3BlY3RvckJhY2tlbmQuaGFzQ29tbWFuZCgiUGFnZS5zZXRTY3JlZW5TaXplT3Zl
cnJpZGUiKSkgeworICAgICAgICBmdW5jdGlvbiBhcHBseU92ZXJyaWRkZW5TY3JlZW5TaXplKHZh
bHVlLCBmb3JjZSkgeworICAgICAgICAgICAgaWYgKHZhbHVlID09PSBXSS5fb3ZlcnJpZGVuRGV2
aWNlU2NyZWVuU2l6ZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGlm
ICghZm9yY2UgJiYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gImRlZmF1bHQiKSkgeworICAgICAgICAg
ICAgICAgIHRhcmdldC5QYWdlQWdlbnQuc2V0U2NyZWVuU2l6ZU92ZXJyaWRlKChlcnJvcikgPT4g
eworICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIFdJLnJlcG9ydEludGVybmFsRXJyb3IoZXJyb3IpOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAg
V0kuX292ZXJyaWRlbkRldmljZVNjcmVlblNpemUgPSBudWxsOworICAgICAgICAgICAgICAgICAg
ICB1cGRhdGVBY3RpdmF0ZWRTdGF0ZSgpOworICAgICAgICAgICAgICAgICAgICB0YXJnZXQuUGFn
ZUFnZW50LnJlbG9hZCgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICBsZXQgdG9rZW5zID0gdmFsdWUuc3BsaXQoIngiKTsKKyAgICAg
ICAgICAgICAgICBsZXQgd2lkdGggPSBwYXJzZUludCh0b2tlbnNbMF0pOworICAgICAgICAgICAg
ICAgIGxldCBoZWlnaHQgPSBwYXJzZUludCh0b2tlbnNbMV0pOworICAgICAgICAgICAgICAgIHRh
cmdldC5QYWdlQWdlbnQuc2V0U2NyZWVuU2l6ZU92ZXJyaWRlKHdpZHRoLCBoZWlnaHQsIChlcnJv
cikgPT4geworICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIFdJLnJlcG9ydEludGVybmFsRXJyb3IoZXJyb3IpOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICAgICAgV0kuX292ZXJyaWRlbkRldmljZVNjcmVlblNpemUgPSB2YWx1ZTsKKyAgICAgICAgICAg
ICAgICAgICAgdXBkYXRlQWN0aXZhdGVkU3RhdGUoKTsKKyAgICAgICAgICAgICAgICAgICAgdGFy
Z2V0LlBhZ2VBZ2VudC5yZWxvYWQoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisKKyAgICAgICAgbGV0IHNjcmVlblNpemVSb3cgPSB0YWJsZS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpKTsKKworICAgICAgICBsZXQgc2Ny
ZWVuU2l6ZVRpdGxlID0gc2NyZWVuU2l6ZVJvdy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJ0ZCIpKTsKKyAgICAgICAgc2NyZWVuU2l6ZVRpdGxlLnRleHRDb250ZW50ID0gV0ku
VUlTdHJpbmcoIlNjcmVlbiBzaXplOiIpOworCisgICAgICAgIGxldCBzY3JlZW5TaXplVmFsdWUg
PSBzY3JlZW5TaXplUm93LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIikp
OworICAgICAgICBzY3JlZW5TaXplVmFsdWUuY2xhc3NMaXN0LmFkZCgic2NyZWVuLXNpemUiKTsK
KworICAgICAgICBsZXQgc2NyZWVuU2l6ZVZhbHVlU2VsZWN0ID0gc2NyZWVuU2l6ZVZhbHVlLmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpKTsKKworICAgICAgICBs
ZXQgc2NyZWVuU2l6ZVZhbHVlSW5wdXQgPSBudWxsOworCisgICAgICAgIGNvbnN0IHNjcmVlblNp
emVzID0gWworICAgICAgICAgICAgWworICAgICAgICAgICAgICAgIHtuYW1lOiBXSS5VSVN0cmlu
ZygiRGVmYXVsdCIpLCB2YWx1ZTogImRlZmF1bHQifSwKKyAgICAgICAgICAgIF0sCisgICAgICAg
ICAgICBbCisgICAgICAgICAgICAgICAge25hbWU6IFdJLlVJU3RyaW5nKCIxMDgwcCIpLCB2YWx1
ZTogIjE5MjB4MTA4MCJ9LAorICAgICAgICAgICAgICAgIHtuYW1lOiBXSS5VSVN0cmluZygiNzIw
cCIpLCB2YWx1ZTogIjEyODB4NzIwIn0sCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgWwor
ICAgICAgICAgICAgICAgIHtuYW1lOiBXSS5VSVN0cmluZygiT3RoZXJcdTIwMjYiKSwgdmFsdWU6
ICJvdGhlciJ9LAorICAgICAgICAgICAgXSwKKyAgICAgICAgXTsKKworICAgICAgICBsZXQgc2Vs
ZWN0ZWRTY3JlZW5TaXplT3B0aW9uRWxlbWVudCA9IG51bGw7CisKKyAgICAgICAgZm9yIChsZXQg
Z3JvdXAgb2Ygc2NyZWVuU2l6ZXMpIHsKKyAgICAgICAgICAgIGZvciAobGV0IHtuYW1lLCB2YWx1
ZX0gb2YgZ3JvdXApIHsKKyAgICAgICAgICAgICAgICBsZXQgb3B0aW9uRWxlbWVudCA9IHNjcmVl
blNpemVWYWx1ZVNlbGVjdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRp
b24iKSk7CisgICAgICAgICAgICAgICAgb3B0aW9uRWxlbWVudC52YWx1ZSA9IHZhbHVlOworICAg
ICAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBuYW1lOworCisgICAgICAg
ICAgICAgICAgaWYgKHZhbHVlID09PSBXSS5fb3ZlcnJpZGVuRGV2aWNlU2NyZWVuU2l6ZSkKKyAg
ICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRTY3JlZW5TaXplT3B0aW9uRWxlbWVudCA9IG9wdGlv
bkVsZW1lbnQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChncm91cCAhPT0gc2Ny
ZWVuU2l6ZXMubGFzdFZhbHVlKQorICAgICAgICAgICAgICAgIHNjcmVlblNpemVWYWx1ZVNlbGVj
dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJociIpKTsKKyAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIHNob3dTY3JlZW5TaXplSW5wdXQoKSB7CisgICAgICAgICAgICBp
ZiAoc2NyZWVuU2l6ZVZhbHVlSW5wdXQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgICAgICBzY3JlZW5TaXplVmFsdWVJbnB1dCA9IHNjcmVlblNpemVWYWx1ZS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKTsKKyAgICAgICAgICAgIHNjcmVlblNp
emVWYWx1ZUlucHV0LnNwZWxsY2hlY2sgPSBmYWxzZTsKKyAgICAgICAgICAgIHNjcmVlblNpemVW
YWx1ZUlucHV0LnZhbHVlID0gc2NyZWVuU2l6ZVZhbHVlSW5wdXQucGxhY2Vob2xkZXIgPSBXSS5f
b3ZlcnJpZGVuRGV2aWNlU2NyZWVuU2l6ZSB8fCAod2luZG93LnNjcmVlbi53aWR0aCArICJ4IiAr
IHdpbmRvdy5zY3JlZW4uaGVpZ2h0KTsKKyAgICAgICAgICAgIHNjcmVlblNpemVWYWx1ZUlucHV0
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKGNsaWNrRXZlbnQpID0+IHsKKyAgICAgICAgICAg
ICAgICBjbGlja0V2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHNjcmVlblNpemVWYWx1ZUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIChp
bnB1dEV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgYXBwbHlPdmVycmlkZGVuU2NyZWVuU2l6
ZShzY3JlZW5TaXplVmFsdWVJbnB1dC52YWx1ZSwgdHJ1ZSk7CisgICAgICAgICAgICB9KTsKKwor
ICAgICAgICAgICAgV0kuX2RldmljZVNldHRpbmdzUG9wb3Zlci51cGRhdGUoKTsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChzZWxlY3RlZFNjcmVlblNpemVPcHRpb25FbGVtZW50KQorICAgICAg
ICAgICAgc2NyZWVuU2l6ZVZhbHVlU2VsZWN0LnZhbHVlID0gc2VsZWN0ZWRTY3JlZW5TaXplT3B0
aW9uRWxlbWVudC52YWx1ZTsKKyAgICAgICAgZWxzZSBpZiAoV0kuX292ZXJyaWRlbkRldmljZVNj
cmVlblNpemUpIHsKKyAgICAgICAgICAgIHNjcmVlblNpemVWYWx1ZVNlbGVjdC52YWx1ZSA9ICJv
dGhlciI7CisgICAgICAgICAgICBzaG93U2NyZWVuU2l6ZUlucHV0KCk7CisgICAgICAgIH0KKwor
ICAgICAgICBzY3JlZW5TaXplVmFsdWVTZWxlY3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwg
KCkgPT4geworICAgICAgICAgICAgbGV0IHZhbHVlID0gc2NyZWVuU2l6ZVZhbHVlU2VsZWN0LnZh
bHVlOworICAgICAgICAgICAgaWYgKHZhbHVlID09PSAib3RoZXIiKSB7CisgICAgICAgICAgICAg
ICAgc2hvd1NjcmVlblNpemVJbnB1dCgpOworICAgICAgICAgICAgICAgIHNjcmVlblNpemVWYWx1
ZUlucHV0LnNlbGVjdCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBp
ZiAoc2NyZWVuU2l6ZVZhbHVlSW5wdXQpIHsKKyAgICAgICAgICAgICAgICAgICAgc2NyZWVuU2l6
ZVZhbHVlSW5wdXQucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgICAgIHNjcmVlblNpemVWYWx1
ZUlucHV0ID0gbnVsbDsKKworICAgICAgICAgICAgICAgICAgICBXSS5fZGV2aWNlU2V0dGluZ3NQ
b3BvdmVyLnVwZGF0ZSgpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGFw
cGx5T3ZlcnJpZGRlblNjcmVlblNpemUodmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICB9
KTsKKyAgICB9CisKICAgICBjb25zdCBzZXR0aW5ncyA9IFsKICAgICAgICAgewogICAgICAgICAg
ICAgbmFtZTogV0kuVUlTdHJpbmcoIkRpc2FibGU6IiksCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>