<?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>173332</bug_id>
          
          <creation_ts>2017-06-13 14:48:26 -0700</creation_ts>
          <short_desc>HTML5 audio .ended event not fired when app in background or phone screen is off</short_desc>
          <delta_ts>2024-01-18 15:34:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>Safari 10</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 10</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://bitshuvafiles01.com/iOSAudioBugRepro/audioError.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HTML5, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Judah Gabriel Himango">judahgabriel</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>beidson</cc>
    
    <cc>brad</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmawebsite</cc>
    
    <cc>commit-queue</cc>
    
    <cc>contact</cc>
    
    <cc>craigwharding</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jond</cc>
    
    <cc>jonlee</cc>
    
    <cc>mathiasrechtzigel</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tobias.gerhardsson</cc>
    
    <cc>vikas</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1318831</commentid>
    <comment_count>0</comment_count>
    <who name="Judah Gabriel Himango">judahgabriel</who>
    <bug_when>2017-06-13 14:48:26 -0700</bug_when>
    <thetext>When HTML5 audio finishes playing, the .ended event doesn&apos;t fire if the web app is running in the background or if the screen is off. 

Here&apos;s a simple page that demonstrates the problem: http://bitshuvafiles01.com/iOSAudioBugRepro/audioError.html

Steps to reproduce: 

1. Create web page with a single &lt;audio&gt; element.
2. In JavaScript, set audio.src = &quot;song1.mp3&quot;, and .play();
3. Add an .ended event handler to the audio element. In the .ended event handler, set audio.src = &quot;song2.mp3&quot;, and .play().
4. While song1.mp3 is playing, turn off the phone screen.
5. Wait for the audio to finish. When it finishes, audio will stop; song2.mp3 will never.

Expected results: The audio.ended event fires and the next song starts playing.

Actual results: The audio.ended event never fires because the screen is off or because Safari is in the background; JS execution is suspended.

Additional info: While suspending JS execution is wise for battery life reasons, it harms the user experience when listening to audio on the web. Either don&apos;t suspend JS execution for tabs playing audio, or at least fire the .ended event so we can play the next song.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318981</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-06-13 20:11:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/32757402&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319126</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-06-14 08:26:30 -0700</bug_when>
    <thetext>The web proces, normally suspended when in the background, is kept alive while playing audio (and for a few other reasons). The &apos;ended&apos; event is fired asynchronously, so while the event is scheduled immediately when playback finishes, the task is suspended before the next runloop so the event doesn&apos;t fire until the process resumes. 

We should probably postpone suspension for a few cycles when playback stops to give scripts an opportunity to restart playback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319180</commentid>
    <comment_count>3</comment_count>
    <who name="Judah Gabriel Himango">judahgabriel</who>
    <bug_when>2017-06-14 09:53:29 -0700</bug_when>
    <thetext>&gt;&gt; &quot;We should probably postpone suspension for a few cycles when playback stops to give scripts an opportunity to restart playback.&quot;

Ah, that would wonderful and would fix the problem perfectly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337861</commentid>
    <comment_count>4</comment_count>
    <who name="">craigwharding</who>
    <bug_when>2017-08-11 04:29:31 -0700</bug_when>
    <thetext>Hi any idea when this could be committed and it starts to hit upstream?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337879</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-08-11 06:50:23 -0700</bug_when>
    <thetext>(In reply to craigwharding from comment #4)
&gt; Hi any idea when this could be committed and it starts to hit upstream?

There&apos;s nothing to be committed because there&apos;s no patch yet.

(This is an open source project)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391640</commentid>
    <comment_count>6</comment_count>
    <who name="Judah Gabriel Himango">judahgabriel</who>
    <bug_when>2018-01-22 08:25:22 -0800</bug_when>
    <thetext>This morning I received more reports of this same bug from my users on iOS. Any chance we get this fixed in 2018?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495924</commentid>
    <comment_count>7</comment_count>
    <who name="Mathias Rechtzigel">mathiasrechtzigel</who>
    <bug_when>2019-01-18 10:45:15 -0800</bug_when>
    <thetext>Confirmed still an issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590001</commentid>
    <comment_count>8</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-11-13 12:53:01 -0800</bug_when>
    <thetext>*** Bug 204080 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590037</commentid>
    <comment_count>9</comment_count>
      <attachid>383493</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-11-13 14:07:44 -0800</bug_when>
    <thetext>Created attachment 383493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590232</commentid>
    <comment_count>10</comment_count>
      <attachid>383493</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-11-14 05:12:42 -0800</bug_when>
    <thetext>Comment on attachment 383493
Patch

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

r=me once the bots are happy

&gt; LayoutTests/media/audio-background-playback-playlist-expected.txt:2
&gt; +RUN(internals.setMediaElementRestrictions(audio, &quot;RequireUserGestureForAudioRateChange&quot;))

Oops, look like you need to regenerate this file.

&gt; LayoutTests/media/audio-background-playback-playlist.html:20
&gt; +        run(&apos;audio.load()&apos;);
&gt; +        testExpected(&apos;internals.bestMediaElementForShowingPlaybackControlsManager(&quot;NowPlaying&quot;)&apos;, audio);

It would be better to test for NowPlaying status after a delay, e.g. after an &apos;emptied&apos; event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590686</commentid>
    <comment_count>11</comment_count>
      <attachid>383656</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-11-15 15:07:09 -0800</bug_when>
    <thetext>Created attachment 383656
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592050</commentid>
    <comment_count>12</comment_count>
      <attachid>383656</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-20 10:32:09 -0800</bug_when>
    <thetext>Comment on attachment 383656
Patch for landing

Clearing flags on attachment: 383656

Committed r252692: &lt;https://trac.webkit.org/changeset/252692&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592051</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-20 10:32:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856266</commentid>
    <comment_count>14</comment_count>
    <who name="">craigwharding</who>
    <bug_when>2022-03-29 18:18:07 -0700</bug_when>
    <thetext>I’m getting this bug in iOS 15.3.1. It was fixed for me in iOS 14. Should I add info to this bug or open a new one and reference this bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860585</commentid>
    <comment_count>15</comment_count>
    <who name="Vikas Singh">vikas</who>
    <bug_when>2022-04-11 23:32:41 -0700</bug_when>
    <thetext>Hi, I am getting this bug again too in Safari in iOS 15. After screenlock, the JS execution is still continuing after the ended event on the audio element as console.log pumps out text.

I set new src and call .play(). The promise for .play() resolves without errors, but audio does not play. The Media Sessions API also sets the correct track name/title.

An example is here (not mine as mine is behind a paywall but I can create a minimum reproducible example if required): https://codepen.io/craigstroman/pen/aOyRYx

To reproduce using the above example link:
1) Play the first track
2) Lock the screen
3) Wait around 3 minutes for the track to end

Expected result: The next track should play automatically after ended event.

Actual result: The next track does not play in iOS 15 Safari. Works fine in Android/Windows Chrome.

What I have tried: changing the src and calling the play event directly inside the audio element&apos;s ended event. But all this only works when Safari is in focus, bot when in another app, or screen is locked.

Would appreciate any help on this - I am at my wits end. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862465</commentid>
    <comment_count>16</comment_count>
    <who name="tobeyg">tobias.gerhardsson</who>
    <bug_when>2022-04-19 01:54:52 -0700</bug_when>
    <thetext>I&apos;m still experiencing this in iOS 15.4.1. Both in browser and when running a site as a &quot;home screen bookmark&quot;. 

Initially I got it working by having a function (initTrack()) that ran each time the user pressed played manually. The &quot;ended&quot; event listener was added within that function and all it did was to run initTrack() again. But all of a sudden it stopped working.

The audio widget seems to reset it&apos;s currentTime and the Media Session API is changing the metadata, but before the new track starts playing, it seems like the sessions gets suspended.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867299</commentid>
    <comment_count>17</comment_count>
    <who name="">cmawebsite</who>
    <bug_when>2022-05-06 12:01:26 -0700</bug_when>
    <thetext>I just want to add my experience with this too (on 15.4.1). My experience is slightly different than the bug title, because when the track ends, mine does appear to briefly switch to the next track and update the new mediaSession MediaMetaData, though fails to actually start playing that track and the new track goes away in less than a second.

So I suspect that the _ended_ event _does_ fire, but it maybe doesn&apos;t seem to have permission to play() the next track?

Also, when testing, I once found that my track stopped playing after a half-hour. I haven&apos;t done more testing to see if that always happens or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867330</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-05-06 13:57:34 -0700</bug_when>
    <thetext>The inability to begin playing in the background on iOS 15 should be fixed by the changes for 239812.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867331</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-05-06 13:58:28 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #18)
&gt; The inability to begin playing in the background on iOS 15 should be fixed
&gt; by the changes for 239812.

Rather by r293530, bug https://bugs.webkit.org/show_bug.cgi?id=239812</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867393</commentid>
    <comment_count>20</comment_count>
    <who name="">craigwharding</who>
    <bug_when>2022-05-06 16:38:46 -0700</bug_when>
    <thetext>Thanks Eric! Do you know what iOS 15 release this will merged into?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867694</commentid>
    <comment_count>21</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-05-09 10:37:08 -0700</bug_when>
    <thetext>(In reply to craigwharding from comment #20)
&gt; Thanks Eric! Do you know what iOS 15 release this will merged into?

Sorry, I don&apos;t know. I will try to remember to add a note here when a build with this fix is available.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2004595</commentid>
    <comment_count>22</comment_count>
    <who name="Judah Gabriel Himango">judahgabriel</who>
    <bug_when>2024-01-11 18:53:49 -0800</bug_when>
    <thetext>It appears this bug has been reintroduced in iOS 17.2.1. Here&apos;s a simple repro: https://judahtemp.b-cdn.net/ios-webkit-audio-bug/bug.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2005248</commentid>
    <comment_count>23</comment_count>
    <who name="">contact</who>
    <bug_when>2024-01-16 05:42:43 -0800</bug_when>
    <thetext>(In reply to Judah Gabriel Himango from comment #22)
&gt; It appears this bug has been reintroduced in iOS 17.2.1. Here&apos;s a simple
&gt; repro: https://judahtemp.b-cdn.net/ios-webkit-audio-bug/bug.html

I&apos;m also facing a very similar issue that player can not play next track after ended in background.

But on my side (17.2), it is not cause by &apos;ended&apos; event not triggered.

After playing stucked, I turn back to foreground and saw:
player shows up the new track .duration, but old .currentTime

In console I could see &apos;ended&apos; triggered, new track &apos;canplay&apos;  triggerd, &apos;onplay&apos; triggered, but audio does&apos;t play.

I think my issue was more likely to https://bugs.webkit.org/show_bug.cgi?id=173332#c15


https://files.catbox.moe/fh3z47.png
https://files.catbox.moe/xqlqjz.png</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2005976</commentid>
    <comment_count>24</comment_count>
    <who name="Judah Gabriel Himango">judahgabriel</who>
    <bug_when>2024-01-18 14:58:24 -0800</bug_when>
    <thetext>The above commenter (https://bugs.webkit.org/show_bug.cgi?id=173332#c23) is correct. The .ended event fires - great! And I can even call .play(). But no audio is heard.

Bottom line: the issue isn&apos;t that ended event is not fired. It&apos;s that audio.play() does nothing when the app is in the background or the screen is locked.

I&apos;ve updated my repro to show the events that get fired: https://judahtemp.b-cdn.net/ios-webkit-audio-bug/bug.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2005988</commentid>
    <comment_count>25</comment_count>
    <who name="Judah Gabriel Himango">judahgabriel</who>
    <bug_when>2024-01-18 15:34:00 -0800</bug_when>
    <thetext>Since the issue isn&apos;t .ended event being fired, I&apos;m closing this. Instead, let&apos;s move the discussion over to this bug, which seems to be the real issue: https://bugs.webkit.org/show_bug.cgi?id=261554</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383493</attachid>
            <date>2019-11-13 14:07:44 -0800</date>
            <delta_ts>2019-11-15 15:07:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173332-20191113140743.patch</filename>
            <type>text/plain</type>
            <size>12166</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZhODgwZWYyM2Y4ZDA4
Mzk5MTJjYzc3YjE4YTIwZWM1MzJiZmYwZS4uMDNjZmU4MzczNTRhNTY0OTMzNDEzMjNlZmJlNmNi
OGUwMGNmYzkxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE5LTExLTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEhUTUw1IGF1ZGlvIC5lbmRl
ZCBldmVudCBub3QgZmlyZWQgd2hlbiBhcHAgaW4gYmFja2dyb3VuZCBvciBwaG9uZSBzY3JlZW4g
aXMgb2ZmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzMzMzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNzU3NDAyPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL2F1ZGlvLWJhY2tn
cm91bmQtcGxheWJhY2stcGxheWxpc3QuaHRtbAorCisgICAgICAgIEluIGFkZGl0aW9uIHRvIHRo
ZSBuZWNlc3NhcnkgV2ViS2l0IHBhcnQgb2YgdGhpcyBwYXRjaCwgdGhlcmUgYXJlIGJlaGF2aW9y
cyB3aGljaCBwcmV2ZW50CisgICAgICAgIHdlYnNpdGVzIGZyb20gZW5xdWV1aW5nIG5ldyBwbGF5
YmFjayB3aGlsZSBpbiB0aGUgYmFja2dyb3VuZC4gTmFtZWx5LCB0aGUgcGxhdGZvcm0gd2lsbAor
ICAgICAgICBwcmV2ZW50IGJhY2tncm91bmQgcGxheWJhY2sgZnJvbSBhbnkgYXBwbGljYXRpb24g
d2hpY2ggaXMgbm90IGN1cnJlbnRseSB0aGUgIk5vdyBQbGF5aW5nIgorICAgICAgICBhcHBsaWNh
dGlvbiwgc28gaW4gb3JkZXIgdG8gYWxsb3cgcGFnZXMgdG8gc3dpdGNoIHNvdXJjZXMsIHdlIG11
c3QgZW5zdXJlIHdlIGRvIG5vdCBnaXZlCisgICAgICAgIHVwICJOb3cgUGxheWluZyIgc3RhdHVz
LiBUbyBkbyBzbywgd2Ugd2lsbCBjaGFuZ2UgdGhlIGltcGxlbWVudGF0aW9uIG9mIGNhblByb2R1
Y2VBdWRpbygpCisgICAgICAgIHRvIGluY2x1ZGUgYW55IG1lZGlhIGVsZW1lbnQgd2hpY2ggcHJl
dmlvdXNseSBjb3VsZCBwcm9kdWNlIGF1ZGlvIGJ1dCBjdXJyZW50bHkgaGFzIG5vCisgICAgICAg
IHNvdXJjZS4KKworICAgICAgICBBbHNvLCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29u
dHJvbHNNYW5hZ2VyKCkgd2lsbCBiZSBtb2RpZmllZCB0byBvbmx5IGNoZWNrIGZvcgorICAgICAg
ICBhIFJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlciByZXN0cmljdGlv
biBpZiB0aGUgcHVycG9zZSBwYXNzZWQgaW4gaXMKKyAgICAgICAgaXMgIkNvbnRyb2xzTWFuYWdl
ciIgYW5kIG5vdCAiTm93UGxheWluZyIuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y2FuUHJvZHVjZUF1
ZGlvIGNvbnN0KToKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRyb2xzTWFuYWdl
ciBjb25zdCk6CisKIDIwMTktMTEtMDYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CiAKICAgICAgICAgU2NyZWVuIGxvY2tzIHdoaWxlIHdhdGNoaW5nIHByZXZpb3VzbHktbXV0ZWQt
dGhlbi11bm11dGVkIHZpZGVvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIzYWU0ZGFiOTBhM2YzZWI4YjMxMWZiOWJh
NGJkODkyZTM4ZDExY2YuLjk1Y2ExYjVkZGJjZmJmNDg2ODEzZmI4ZmQwZWE4ZTg3MGM3MWM4MGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMTEtMTMgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgSFRNTDUgYXVkaW8gLmVuZGVkIGV2ZW50IG5vdCBm
aXJlZCB3aGVuIGFwcCBpbiBiYWNrZ3JvdW5kIG9yIHBob25lIHNjcmVlbiBpcyBvZmYKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzMzMgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzI3NTc0MDI+CisKKyAgICAgICAgV2hlbiBhIFdlYlBhZ2UgZ29l
cyBmcm9tIGF1ZGlibGUgdG8gaW5hdWRpYmxlLCBhbGxvdyBhIHNob3J0IGdyYWNlIHBlcmlvZCBi
ZWZvcmUgcmVtb3ZpbmcKKyAgICAgICAgdGhlIGFjdGl2aXR5IHRva2VuLCB0byBnaXZlIHRoZSBw
YWdlIGEgY2hhbmNlIHRvIChlLmcuKSBtb3ZlIHRvIHRoZSBuZXh0IGl0ZW0gaW4gYSBwbGF5bGlz
dAorICAgICAgICBiZWZvcmUgdGhlIHByb2Nlc3MgaXMgc3VzcGVuZGVkIHdoZW4gaW4gdGhlIGJh
Y2tncm91bmQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6dXBkYXRlVGhyb3R0bGVTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6Y2xlYXJBdWRpYmxlQWN0aXZpdHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKwogMjAxOS0xMS0wNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gSW1wbGVtZW50IHN1cHBvcnQgZm9yIFBvaW50ZXIg
TG9jayBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDNk
NDhkYTE5M2Q5ZTFkZGFkMmVmNmVmZjE0ZjY2NGYzM2NhN2U5MDkuLjUwNzAyZDg2NDEyOWE1Nzhh
YTgxMDkyZWU0Y2IyYTllODJiNTU5NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcApAQCAtNzYwNiw3ICs3NjA2LDEwIEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6
Y2FuUHJvZHVjZUF1ZGlvKCkgY29uc3QKICAgICBpZiAobXV0ZWQoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgcmV0dXJuIG1fcGxheWVyICYmIG1fcmVhZHlTdGF0ZSA+PSBIQVZFX01F
VEFEQVRBICYmIGhhc0F1ZGlvKCk7CisgICAgaWYgKG1fcGxheWVyICYmIG1fcmVhZHlTdGF0ZSA+
PSBIQVZFX01FVEFEQVRBKQorICAgICAgICByZXR1cm4gaGFzQXVkaW8oKTsKKworICAgIHJldHVy
biBoYXNFdmVySGFkQXVkaW8oKTsKIH0KIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc1N1c3Bl
bmRlZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVu
dFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNw
cAppbmRleCA1M2Y1M2JmYWY3MjAyYzAwNTNmMTA1OGFlNzE3MWZkNjEzOGI0MWJiLi40YzE3MjY4
MDdiMjFmOTAwZjlkODRiMjY2YmIwN2M1NDIwNjJmN2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTQzNiw3ICs0MzYsNyBAQCBib29sIE1lZGlh
RWxlbWVudFNlc3Npb246OmNhblNob3dDb250cm9sc01hbmFnZXIoUGxheWJhY2tDb250cm9sc1B1
cnBvc2UgcHVycG9zZQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAoY2xp
ZW50KCkucHJlc2VudGF0aW9uVHlwZSgpID09IEF1ZGlvKSB7CisgICAgaWYgKGNsaWVudCgpLnBy
ZXNlbnRhdGlvblR5cGUoKSA9PSBBdWRpbyAmJiBwdXJwb3NlID09IFBsYXliYWNrQ29udHJvbHNQ
dXJwb3NlOjpDb250cm9sc01hbmFnZXIpIHsKICAgICAgICAgaWYgKCFoYXNCZWhhdmlvclJlc3Ry
aWN0aW9uKFJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlcikgfHwgbV9l
bGVtZW50LmRvY3VtZW50KCkucHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkgewogICAg
ICAgICAgICAgSU5GT19MT0coTE9HSURFTlRJRklFUiwgInJldHVybmluZyBUUlVFOiBhdWRpbyBl
bGVtZW50IHdpdGggdXNlciBnZXN0dXJlIik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDhlYzhmYWU3NGUzZjc5
MmMwY2Y2NzA4OGRiZTYyMGMzMTVjZDgwYWYuLjBkMmVkMjUwZDg4NWJhNDE4MTExYWJlM2QwNmVk
ZGQwYmI4ZmU2NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApA
QCAtMjY5LDYgKzI2OSw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB3aGVlbEV2ZW50UXVldWVT
aXplVGhyZXNob2xkID0gMTA7CiAKIHN0YXRpYyBjb25zdCBTZWNvbmRzIHJlc2V0UmVjZW50Q3Jh
c2hDb3VudERlbGF5ID0gMzBfczsKIHN0YXRpYyB1bnNpZ25lZCBtYXhpbXVtV2ViUHJvY2Vzc1Jl
bGF1bmNoQXR0ZW1wdHMgPSAxOworc3RhdGljIGNvbnN0IFNlY29uZHMgYXVkaWJsZUFjdGl2aXR5
Q2xlYXJEZWxheSA9IDEwX3M7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC00MjksNiArNDMwLDcgQEAgV2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHko
UGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBSZWYKICAg
ICAsIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCp0aGlzKQogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgLCBtX2Fsd2F5c1J1bnNBdEZvcmVncm91bmRQcmlvcml0
eShtX2NvbmZpZ3VyYXRpb24tPmFsd2F5c1J1bnNBdEZvcmVncm91bmRQcmlvcml0eSgpKQorICAg
ICwgbV9hdWRpYmxlQWN0aXZpdHlUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZXZWJQYWdl
UHJveHk6OmNsZWFyQXVkaWJsZUFjdGl2aXR5KQogI2VuZGlmCiAgICAgLCBtX2luaXRpYWxDYXBp
dGFsaXphdGlvbkVuYWJsZWQobV9jb25maWd1cmF0aW9uLT5pbml0aWFsQ2FwaXRhbGl6YXRpb25F
bmFibGVkKCkpCiAgICAgLCBtX2NwdUxpbWl0KG1fY29uZmlndXJhdGlvbi0+Y3B1TGltaXQoKSkK
QEAgLTEwNTksNiArMTA2MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbG9zZSgpCiAgICAgbV9p
c0F1ZGlibGVBY3Rpdml0eSA9IG51bGxwdHI7CiAgICAgbV9pc0NhcHR1cmluZ0FjdGl2aXR5ID0g
bnVsbHB0cjsKICAgICBtX2Fsd2F5c1J1bnNBdEZvcmVncm91bmRQcmlvcml0eUFjdGl2aXR5ID0g
bnVsbHB0cjsKKyAgICBtX2F1ZGlibGVBY3Rpdml0eVRpbWVyLnN0b3AoKTsKICNlbmRpZgogCiAg
ICAgc3RvcEFsbFVSTFNjaGVtZVRhc2tzKCk7CkBAIC0xOTQ4LDkgKzE5NTEsMTEgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnVwZGF0ZVRocm90dGxlU3RhdGUoKQogICAgICAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRChQcm9jZXNzU3VzcGVuc2lvbiwgInVwZGF0ZVRocm90dGxlU3RhdGU6IFVJ
UHJvY2VzcyBpcyB0YWtpbmcgYSBmb3JlZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHdlIGFyZSBw
bGF5aW5nIGF1ZGlvIik7CiAgICAgICAgICAgICBtX2lzQXVkaWJsZUFjdGl2aXR5ID0gbV9wcm9j
ZXNzLT50aHJvdHRsZXIoKS5mb3JlZ3JvdW5kQWN0aXZpdHkoIlZpZXcgaXMgcGxheWluZyBhdWRp
byJfcykubW92ZVRvVW5pcXVlUHRyKCk7CiAgICAgICAgIH0KKyAgICAgICAgbV9hdWRpYmxlQWN0
aXZpdHlUaW1lci5zdG9wKCk7CiAgICAgfSBlbHNlIGlmIChtX2lzQXVkaWJsZUFjdGl2aXR5KSB7
Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N1c3BlbnNpb24sICJ1cGRh
dGVUaHJvdHRsZVN0YXRlOiBVSVByb2Nlc3MgaXMgcmVsZWFzaW5nIGEgZm9yZWdyb3VuZCBhc3Nl
cnRpb24gYmVjYXVzZSB3ZSBhcmUgbm8gbG9uZ2VyIHBsYXlpbmcgYXVkaW8iKTsKLSAgICAgICAg
bV9pc0F1ZGlibGVBY3Rpdml0eSA9IG51bGxwdHI7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoUHJvY2Vzc1N1c3BlbnNpb24sICJ1cGRhdGVUaHJvdHRsZVN0YXRlOiBVSVByb2Nlc3Mg
d2lsbCByZWxlYXNlIGEgZm9yZWdyb3VuZCBhc3NlcnRpb24gaW4gJWcgc2Vjb25kcyBiZWNhdXNl
IHdlIGFyZSBubyBsb25nZXIgcGxheWluZyBhdWRpbyIsIGF1ZGlibGVBY3Rpdml0eUNsZWFyRGVs
YXkuc2Vjb25kcygpKTsKKyAgICAgICAgaWYgKCFtX2F1ZGlibGVBY3Rpdml0eVRpbWVyLmlzQWN0
aXZlKCkpCisgICAgICAgICAgICBtX2F1ZGlibGVBY3Rpdml0eVRpbWVyLnN0YXJ0T25lU2hvdChh
dWRpYmxlQWN0aXZpdHlDbGVhckRlbGF5KTsKICAgICB9CiAKICAgICBib29sIGlzQ2FwdHVyaW5n
TWVkaWEgPSBtX2FjdGl2aXR5U3RhdGUuY29udGFpbnMoQWN0aXZpdHlTdGF0ZTo6SXNDYXB0dXJp
bmdNZWRpYSk7CkBAIC0xOTc2LDYgKzE5ODEsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0
ZVRocm90dGxlU3RhdGUoKQogI2VuZGlmCiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
dm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyQXVkaWJsZUFjdGl2aXR5KCkKK3sKKyAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKFByb2Nlc3NTdXNwZW5zaW9uLCAidXBkYXRlVGhyb3R0bGVTdGF0ZTog
VUlQcm9jZXNzIGlzIHJlbGVhc2luZyBhIGZvcmVncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2Ugd2Ug
YXJlIG5vIGxvbmdlciBwbGF5aW5nIGF1ZGlvIik7CisgICAgbV9pc0F1ZGlibGVBY3Rpdml0eSA9
IG51bGxwdHI7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZUhpZGRlblBh
Z2VUaHJvdHRsaW5nQXV0b0luY3JlYXNlcygpCiB7CiAgICAgaWYgKCFtX3ByZWZlcmVuY2VzLT5o
aWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNlcygpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBiODRmYjllMGVmMzk1ZTZmNmQ5MmNiNzA0MGI1
ZjA1ZDhhZGJiZDQ1Li5mMDJiZjg1ZjU5OTgzYjFhYWJhMWNhYjM5NjJkODk3MjYwZWNmMmVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjE2Myw2ICsyMTYzLDcg
QEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgc3RhdGljIGJvb2wg
aXNJbkhhcmR3YXJlS2V5Ym9hcmRNb2RlKCk7CisgICAgdm9pZCBjbGVhckF1ZGlibGVBY3Rpdml0
eSgpOwogI2VuZGlmCiAKICAgICB2b2lkIG1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3Qg
Y3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJl
bnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKHVpbnQ2NF90KT4mJik7CkBAIC0yMjk0LDYgKzIyOTUsNyBAQCBwcml2YXRlOgogICAg
IHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzVGhyb3R0bGVyOjpGb3JlZ3JvdW5kQWN0aXZpdHk+IG1f
aXNBdWRpYmxlQWN0aXZpdHk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NUaHJvdHRsZXI6
OkZvcmVncm91bmRBY3Rpdml0eT4gbV9pc0NhcHR1cmluZ0FjdGl2aXR5OwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxQcm9jZXNzVGhyb3R0bGVyOjpGb3JlZ3JvdW5kQWN0aXZpdHk+IG1fYWx3YXlzUnVu
c0F0Rm9yZWdyb3VuZFByaW9yaXR5QWN0aXZpdHk7CisgICAgUnVuTG9vcDo6VGltZXI8V2ViUGFn
ZVByb3h5PiBtX2F1ZGlibGVBY3Rpdml0eVRpbWVyOwogI2VuZGlmCiAgICAgYm9vbCBtX2luaXRp
YWxDYXBpdGFsaXphdGlvbkVuYWJsZWQgeyBmYWxzZSB9OwogICAgIE9wdGlvbmFsPGRvdWJsZT4g
bV9jcHVMaW1pdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBlOGUyYzJlMWUxZTQ3MGU2MmQwNjYyNWFlNmFhMDFmODc1MTA1
MmZiLi40YTlhNDVlM2Y4NzZkZmNlNTIzNmZjNjk5NDE5YWRiNzQxMzdiODdlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTktMTEtMTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgSFRNTDUgYXVkaW8gLmVuZGVkIGV2ZW50IG5vdCBmaXJlZCB3aGVuIGFwcCBp
biBiYWNrZ3JvdW5kIG9yIHBob25lIHNjcmVlbiBpcyBvZmYKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzMzMgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzI3NTc0MDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBtZWRpYS9hdWRpby1iYWNrZ3JvdW5kLXBsYXliYWNrLXBsYXlsaXN0LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvYXVkaW8tYmFja2dyb3VuZC1wbGF5YmFjay1w
bGF5bGlzdC5odG1sOiBBZGRlZC4KKwogMjAxOS0xMS0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBTY3JlZW4gbG9ja3Mgd2hpbGUgd2F0Y2hpbmcgcHJldmlv
dXNseS1tdXRlZC10aGVuLXVubXV0ZWQgdmlkZW8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL2F1ZGlvLWJhY2tncm91bmQtcGxheWJhY2stcGxheWxpc3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvbWVkaWEvYXVkaW8tYmFja2dyb3VuZC1wbGF5YmFjay1wbGF5bGlzdC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzgwYTBlYjkzNmQ3NDUyMjhiNmI2N2JjYWYxMzdhODIzYmMxYzM3
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLWJhY2tncm91bmQt
cGxheWJhY2stcGxheWxpc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKKworUlVOKGlu
dGVybmFscy5zZXRNZWRpYUVsZW1lbnRSZXN0cmljdGlvbnMoYXVkaW8sICJSZXF1aXJlVXNlckdl
c3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UiKSkKK1JVTihhdWRpby5zcmMgPSBmaW5kTWVkaWFGaWxl
KCJhdWRpbyIsICJjb250ZW50L3Rlc3QiKSkKK0VWRU5UKGNhbnBsYXl0aHJvdWdoKQorUlVOKGF1
ZGlvLnBsYXkoKSkKK0VWRU5UKHBsYXlpbmcpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmJlc3RNZWRp
YUVsZW1lbnRGb3JTaG93aW5nUGxheWJhY2tDb250cm9sc01hbmFnZXIoIk5vd1BsYXlpbmciKSA9
PSAnW29iamVjdCBIVE1MQXVkaW9FbGVtZW50XScpIE9LCitSVU4oaW50ZXJuYWxzLmFwcGxpY2F0
aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKHRydWUpKQorUlVOKGF1ZGlvLmN1cnJlbnRUaW1lID0gYXVk
aW8uZHVyYXRpb24gLSAwLjEpCitFVkVOVChlbmRlZCkKK1JVTihhdWRpby5zcmMgPSAiIikKK1JV
TihhdWRpby5sb2FkKCkpCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmJlc3RNZWRpYUVsZW1lbnRGb3JT
aG93aW5nUGxheWJhY2tDb250cm9sc01hbmFnZXIoIk5vd1BsYXlpbmciKSA9PSAnW29iamVjdCBI
VE1MQXVkaW9FbGVtZW50XScpIE9LCitSVU4oYXVkaW8uc3JjID0gZmluZE1lZGlhRmlsZSgiYXVk
aW8iLCAiY29udGVudC90ZXN0IikpCitSVU4oYXVkaW8ubG9hZCgpKQorRVZFTlQoY2FucGxheXRo
cm91Z2gpCitSVU4oYXVkaW8ucGxheSgpKQorRVZFTlQocGxheWluZykKK0VYUEVDVEVEIChpbnRl
cm5hbHMuYmVzdE1lZGlhRWxlbWVudEZvclNob3dpbmdQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigi
Tm93UGxheWluZyIpID09ICdbb2JqZWN0IEhUTUxBdWRpb0VsZW1lbnRdJykgT0sKK0VORCBPRiBU
RVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLWJhY2tncm91bmQtcGxh
eWJhY2stcGxheWxpc3QuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLWJhY2tncm91bmQt
cGxheWJhY2stcGxheWxpc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzI5MTI2YjI0NGUwOWM1NzU3MWRj
NjMyZjdhZmQzOTIzZmY5ZmQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
YXVkaW8tYmFja2dyb3VuZC1wbGF5YmFjay1wbGF5bGlzdC5odG1sCkBAIC0wLDAgKzEsMzUgQEAK
KzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz12aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+Cisg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyBldmVudCA9PiB7CisgICAg
ICAgIHdpbmRvdy5hdWRpbyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2F1ZGlvJyk7CisgICAg
ICAgIHJ1bignaW50ZXJuYWxzLnNldE1lZGlhRWxlbWVudFJlc3RyaWN0aW9ucyhhdWRpbywgIlJl
cXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSxSZXF1aXJlVXNlckdlc3R1cmVUb0Nv
bnRyb2xDb250cm9sc01hbmFnZXIiKScpOworICAgICAgICBydW4oJ2F1ZGlvLnNyYyA9IGZpbmRN
ZWRpYUZpbGUoImF1ZGlvIiwgImNvbnRlbnQvdGVzdCIpJyk7CisKKyAgICAgICAgYXdhaXQgd2Fp
dEZvcihhdWRpbywgJ2NhbnBsYXl0aHJvdWdoJyk7CisgICAgICAgIHJ1bldpdGhLZXlEb3duKCdh
dWRpby5wbGF5KCknKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcihhdWRpbywgJ3BsYXlpbmcnKTsK
KyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5hbHMuYmVzdE1lZGlhRWxlbWVudEZvclNob3dp
bmdQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigiTm93UGxheWluZyIpJywgYXVkaW8pOworICAgICAg
ICBydW4oJ2ludGVybmFscy5hcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCh0cnVlKScpOwor
ICAgICAgICBydW4oJ2F1ZGlvLmN1cnJlbnRUaW1lID0gYXVkaW8uZHVyYXRpb24gLSAwLjEnKQor
ICAgICAgICBhd2FpdCB3YWl0Rm9yKGF1ZGlvLCAnZW5kZWQnKTsKKyAgICAgICAgcnVuKCdhdWRp
by5zcmMgPSAiIicpOworICAgICAgICBydW4oJ2F1ZGlvLmxvYWQoKScpOworICAgICAgICB0ZXN0
RXhwZWN0ZWQoJ2ludGVybmFscy5iZXN0TWVkaWFFbGVtZW50Rm9yU2hvd2luZ1BsYXliYWNrQ29u
dHJvbHNNYW5hZ2VyKCJOb3dQbGF5aW5nIiknLCBhdWRpbyk7CisgICAgICAgIHJ1bignYXVkaW8u
c3JjID0gZmluZE1lZGlhRmlsZSgiYXVkaW8iLCAiY29udGVudC90ZXN0IiknKTsKKyAgICAgICAg
cnVuKCdhdWRpby5sb2FkKCknKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcihhdWRpbywgJ2NhbnBs
YXl0aHJvdWdoJyk7CisgICAgICAgIHJ1bignYXVkaW8ucGxheSgpJyk7CisgICAgICAgIGF3YWl0
IHdhaXRGb3IoYXVkaW8sICdwbGF5aW5nJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW50ZXJu
YWxzLmJlc3RNZWRpYUVsZW1lbnRGb3JTaG93aW5nUGxheWJhY2tDb250cm9sc01hbmFnZXIoIk5v
d1BsYXlpbmciKScsIGF1ZGlvKTsKKyAgICAgICAgZW5kVGVzdCgpOyAgICAgICAgCisgICAgfSk7
CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5PgorICAgIDxhdWRpbyBjb250cm9scz48
YXVkaW8+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383656</attachid>
            <date>2019-11-15 15:07:09 -0800</date>
            <delta_ts>2019-11-20 10:32:09 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-173332-20191115150708.patch</filename>
            <type>text/plain</type>
            <size>12222</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ5MmFjNTEyYmM3ZWYx
YmUwNDFjNTA0NDgyNDAwMTIyNWZhYTg5OS4uN2I2NmY3OTRkNDdjMTFmMjMwYTliODJlMjZlYTVm
YjBkZGY5YmRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE5LTExLTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEhUTUw1IGF1ZGlvIC5lbmRl
ZCBldmVudCBub3QgZmlyZWQgd2hlbiBhcHAgaW4gYmFja2dyb3VuZCBvciBwaG9uZSBzY3JlZW4g
aXMgb2ZmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzMzMzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNzU3NDAyPgorCisgICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBUZXN0OiBtZWRpYS9hdWRpby1iYWNrZ3Jv
dW5kLXBsYXliYWNrLXBsYXlsaXN0Lmh0bWwKKworICAgICAgICBJbiBhZGRpdGlvbiB0byB0aGUg
bmVjZXNzYXJ5IFdlYktpdCBwYXJ0IG9mIHRoaXMgcGF0Y2gsIHRoZXJlIGFyZSBiZWhhdmlvcnMg
d2hpY2ggcHJldmVudAorICAgICAgICB3ZWJzaXRlcyBmcm9tIGVucXVldWluZyBuZXcgcGxheWJh
Y2sgd2hpbGUgaW4gdGhlIGJhY2tncm91bmQuIE5hbWVseSwgdGhlIHBsYXRmb3JtIHdpbGwKKyAg
ICAgICAgcHJldmVudCBiYWNrZ3JvdW5kIHBsYXliYWNrIGZyb20gYW55IGFwcGxpY2F0aW9uIHdo
aWNoIGlzIG5vdCBjdXJyZW50bHkgdGhlICJOb3cgUGxheWluZyIKKyAgICAgICAgYXBwbGljYXRp
b24sIHNvIGluIG9yZGVyIHRvIGFsbG93IHBhZ2VzIHRvIHN3aXRjaCBzb3VyY2VzLCB3ZSBtdXN0
IGVuc3VyZSB3ZSBkbyBub3QgZ2l2ZQorICAgICAgICB1cCAiTm93IFBsYXlpbmciIHN0YXR1cy4g
VG8gZG8gc28sIHdlIHdpbGwgY2hhbmdlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBjYW5Qcm9kdWNl
QXVkaW8oKQorICAgICAgICB0byBpbmNsdWRlIGFueSBtZWRpYSBlbGVtZW50IHdoaWNoIHByZXZp
b3VzbHkgY291bGQgcHJvZHVjZSBhdWRpbyBidXQgY3VycmVudGx5IGhhcyBubworICAgICAgICBz
b3VyY2UuCisKKyAgICAgICAgQWxzbywgTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRy
b2xzTWFuYWdlcigpIHdpbGwgYmUgbW9kaWZpZWQgdG8gb25seSBjaGVjayBmb3IKKyAgICAgICAg
YSBSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250cm9sc01hbmFnZXIgcmVzdHJpY3Rpb24g
aWYgdGhlIHB1cnBvc2UgcGFzc2VkIGluIGlzCisgICAgICAgIGlzICJDb250cm9sc01hbmFnZXIi
IGFuZCBub3QgIk5vd1BsYXlpbmciLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmNhblByb2R1Y2VBdWRp
byBjb25zdCk6CisgICAgICAgICogaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhRWxlbWVudFNlc3Npb246OmNhblNob3dDb250cm9sc01hbmFnZXIg
Y29uc3QpOgorCiAyMDE5LTExLTE1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgTW9qYXZlIGJ1aWxkIGZpeCBhZnRlciByMjUyNTAxOyB3cmFw
IGNhbGxzIHRvIEFWQ29udGVudEtleVJlcXVlc3Qub3B0aW9ucyBpbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjOTQ1
ZTY3YzA3MGQzNGJlNjEyZGMxMjdhNTkxNjNlYmI2ZGE1Y2FkLi5hOTc1NDJiOTljMjQ2ZjhhNDhm
MjRlYjFlZTJkMjRlYzVkY2NmZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTEx
LTEzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEhUTUw1IGF1
ZGlvIC5lbmRlZCBldmVudCBub3QgZmlyZWQgd2hlbiBhcHAgaW4gYmFja2dyb3VuZCBvciBwaG9u
ZSBzY3JlZW4gaXMgb2ZmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzMzMzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNzU3NDAyPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBXaGVuIGEgV2ViUGFnZSBn
b2VzIGZyb20gYXVkaWJsZSB0byBpbmF1ZGlibGUsIGFsbG93IGEgc2hvcnQgZ3JhY2UgcGVyaW9k
IGJlZm9yZSByZW1vdmluZworICAgICAgICB0aGUgYWN0aXZpdHkgdG9rZW4sIHRvIGdpdmUgdGhl
IHBhZ2UgYSBjaGFuY2UgdG8gKGUuZy4pIG1vdmUgdG8gdGhlIG5leHQgaXRlbSBpbiBhIHBsYXls
aXN0CisgICAgICAgIGJlZm9yZSB0aGUgcHJvY2VzcyBpcyBzdXNwZW5kZWQgd2hlbiBpbiB0aGUg
YmFja2dyb3VuZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5Ojp1cGRhdGVUaHJvdHRsZVN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpjbGVhckF1ZGlibGVBY3Rpdml0eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oOgorCiAyMDE5LTExLTE1ICBCZW5qYW1pbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIFNQSSB0byBjbGVhciB3ZWIgcHJvY2VzcyBjYWNoZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZWRkZDI4NzNiZTQ2YzM2MWRlY2Ri
M2UxZGMwMTNjMWQ0MmUyZmY1Yi4uZjRlN2Q1MWNmMGUyY2JkMTRmZjZmZTg3YjMxYmVmOGY2MWUx
NTIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03NjAx
LDcgKzc2MDEsMTAgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpjYW5Qcm9kdWNlQXVkaW8oKSBj
b25zdAogICAgIGlmIChtdXRlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1
cm4gbV9wbGF5ZXIgJiYgbV9yZWFkeVN0YXRlID49IEhBVkVfTUVUQURBVEEgJiYgaGFzQXVkaW8o
KTsKKyAgICBpZiAobV9wbGF5ZXIgJiYgbV9yZWFkeVN0YXRlID49IEhBVkVfTUVUQURBVEEpCisg
ICAgICAgIHJldHVybiBoYXNBdWRpbygpOworCisgICAgcmV0dXJuIGhhc0V2ZXJIYWRBdWRpbygp
OwogfQogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmlzU3VzcGVuZGVkKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCmluZGV4IDUzZjUzYmZhZjcy
MDJjMDA1M2YxMDU4YWU3MTcxZmQ2MTM4YjQxYmIuLjRjMTcyNjgwN2IyMWY5MDBmOWQ4NGIyNjZi
YjA3YzU0MjA2MmY3Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVt
ZW50U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNz
aW9uLmNwcApAQCAtNDM2LDcgKzQzNiw3IEBAIGJvb2wgTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2Fu
U2hvd0NvbnRyb2xzTWFuYWdlcihQbGF5YmFja0NvbnRyb2xzUHVycG9zZSBwdXJwb3NlCiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIGlmIChjbGllbnQoKS5wcmVzZW50YXRpb25U
eXBlKCkgPT0gQXVkaW8pIHsKKyAgICBpZiAoY2xpZW50KCkucHJlc2VudGF0aW9uVHlwZSgpID09
IEF1ZGlvICYmIHB1cnBvc2UgPT0gUGxheWJhY2tDb250cm9sc1B1cnBvc2U6OkNvbnRyb2xzTWFu
YWdlcikgewogICAgICAgICBpZiAoIWhhc0JlaGF2aW9yUmVzdHJpY3Rpb24oUmVxdWlyZVVzZXJH
ZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKSB8fCBtX2VsZW1lbnQuZG9jdW1lbnQoKS5w
cm9jZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpKSB7CiAgICAgICAgICAgICBJTkZPX0xPRyhM
T0dJREVOVElGSUVSLCAicmV0dXJuaW5nIFRSVUU6IGF1ZGlvIGVsZW1lbnQgd2l0aCB1c2VyIGdl
c3R1cmUiKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMDk4YjI5ZGYzNTBiNzljOWVhN2JjZDU1N2U2ZjliYWVj
NTM4OThhMy4uNzk4NTVmOGIzMjEzOTIwZjBkNGRhMDcyMTI5NTc2YmIyZDA3OTIzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yNjksNiArMjY5LDcgQEAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIHdoZWVsRXZlbnRRdWV1ZVNpemVUaHJlc2hvbGQgPSAxMDsK
IAogc3RhdGljIGNvbnN0IFNlY29uZHMgcmVzZXRSZWNlbnRDcmFzaENvdW50RGVsYXkgPSAzMF9z
Owogc3RhdGljIHVuc2lnbmVkIG1heGltdW1XZWJQcm9jZXNzUmVsYXVuY2hBdHRlbXB0cyA9IDE7
CitzdGF0aWMgY29uc3QgU2Vjb25kcyBhdWRpYmxlQWN0aXZpdHlDbGVhckRlbGF5ID0gMTBfczsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTQyOSw2
ICs0MzAsNyBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xp
ZW50LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFJlZgogICAgICwgbV9ub3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKnRoaXMpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICAsIG1fYWx3YXlzUnVuc0F0Rm9yZWdyb3VuZFByaW9yaXR5KG1fY29uZmlndXJhdGlvbi0+
YWx3YXlzUnVuc0F0Rm9yZWdyb3VuZFByaW9yaXR5KCkpCisgICAgLCBtX2F1ZGlibGVBY3Rpdml0
eVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJldlYlBhZ2VQcm94eTo6Y2xlYXJBdWRpYmxl
QWN0aXZpdHkpCiAjZW5kaWYKICAgICAsIG1faW5pdGlhbENhcGl0YWxpemF0aW9uRW5hYmxlZCht
X2NvbmZpZ3VyYXRpb24tPmluaXRpYWxDYXBpdGFsaXphdGlvbkVuYWJsZWQoKSkKICAgICAsIG1f
Y3B1TGltaXQobV9jb25maWd1cmF0aW9uLT5jcHVMaW1pdCgpKQpAQCAtMTA1OSw2ICsxMDYxLDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsb3NlKCkKICAgICBtX2lzQXVkaWJsZUFjdGl2aXR5ID0g
bnVsbHB0cjsKICAgICBtX2lzQ2FwdHVyaW5nQWN0aXZpdHkgPSBudWxscHRyOwogICAgIG1fYWx3
YXlzUnVuc0F0Rm9yZWdyb3VuZFByaW9yaXR5QWN0aXZpdHkgPSBudWxscHRyOworICAgIG1fYXVk
aWJsZUFjdGl2aXR5VGltZXIuc3RvcCgpOwogI2VuZGlmCiAKICAgICBzdG9wQWxsVVJMU2NoZW1l
VGFza3MoKTsKQEAgLTE5NDksOSArMTk1MiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRl
VGhyb3R0bGVTdGF0ZSgpCiAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nl
c3NTdXNwZW5zaW9uLCAidXBkYXRlVGhyb3R0bGVTdGF0ZTogVUlQcm9jZXNzIGlzIHRha2luZyBh
IGZvcmVncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2Ugd2UgYXJlIHBsYXlpbmcgYXVkaW8iKTsKICAg
ICAgICAgICAgIG1faXNBdWRpYmxlQWN0aXZpdHkgPSBtX3Byb2Nlc3MtPnRocm90dGxlcigpLmZv
cmVncm91bmRBY3Rpdml0eSgiVmlldyBpcyBwbGF5aW5nIGF1ZGlvIl9zKS5tb3ZlVG9VbmlxdWVQ
dHIoKTsKICAgICAgICAgfQorICAgICAgICBtX2F1ZGlibGVBY3Rpdml0eVRpbWVyLnN0b3AoKTsK
ICAgICB9IGVsc2UgaWYgKG1faXNBdWRpYmxlQWN0aXZpdHkpIHsKLSAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRChQcm9jZXNzU3VzcGVuc2lvbiwgInVwZGF0ZVRocm90dGxlU3RhdGU6IFVJ
UHJvY2VzcyBpcyByZWxlYXNpbmcgYSBmb3JlZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIHdlIGFy
ZSBubyBsb25nZXIgcGxheWluZyBhdWRpbyIpOwotICAgICAgICBtX2lzQXVkaWJsZUFjdGl2aXR5
ID0gbnVsbHB0cjsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3VzcGVu
c2lvbiwgInVwZGF0ZVRocm90dGxlU3RhdGU6IFVJUHJvY2VzcyB3aWxsIHJlbGVhc2UgYSBmb3Jl
Z3JvdW5kIGFzc2VydGlvbiBpbiAlZyBzZWNvbmRzIGJlY2F1c2Ugd2UgYXJlIG5vIGxvbmdlciBw
bGF5aW5nIGF1ZGlvIiwgYXVkaWJsZUFjdGl2aXR5Q2xlYXJEZWxheS5zZWNvbmRzKCkpOworICAg
ICAgICBpZiAoIW1fYXVkaWJsZUFjdGl2aXR5VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAg
IG1fYXVkaWJsZUFjdGl2aXR5VGltZXIuc3RhcnRPbmVTaG90KGF1ZGlibGVBY3Rpdml0eUNsZWFy
RGVsYXkpOwogICAgIH0KIAogICAgIGJvb2wgaXNDYXB0dXJpbmdNZWRpYSA9IG1fYWN0aXZpdHlT
dGF0ZS5jb250YWlucyhBY3Rpdml0eVN0YXRlOjpJc0NhcHR1cmluZ01lZGlhKTsKQEAgLTE5Nzcs
NiArMTk4MiwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlVGhyb3R0bGVTdGF0ZSgpCiAj
ZW5kaWYKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIFdlYlBhZ2VQcm94eTo6
Y2xlYXJBdWRpYmxlQWN0aXZpdHkoKQoreworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJv
Y2Vzc1N1c3BlbnNpb24sICJ1cGRhdGVUaHJvdHRsZVN0YXRlOiBVSVByb2Nlc3MgaXMgcmVsZWFz
aW5nIGEgZm9yZWdyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSB3ZSBhcmUgbm8gbG9uZ2VyIHBsYXlp
bmcgYXVkaW8iKTsKKyAgICBtX2lzQXVkaWJsZUFjdGl2aXR5ID0gbnVsbHB0cjsKK30KKyNlbmRp
ZgorCiB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5j
cmVhc2VzKCkKIHsKICAgICBpZiAoIW1fcHJlZmVyZW5jZXMtPmhpZGRlblBhZ2VET01UaW1lclRo
cm90dGxpbmdBdXRvSW5jcmVhc2VzKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IDY2Yzk1MzkzMmVlZjQxYjkxMmQ0Yzc5ZTE0ZGExMmZiMjQ1ZTRhMGQuLjQ4OGFj
ODAzMDZkNTliZGQ2NWM0YzFiZDM0NjhmM2MwOTg5YjMyMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yMTY5LDYgKzIxNjksNyBAQCBwcml2YXRlOgogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBzdGF0aWMgYm9vbCBpc0luSGFyZHdhcmVLZXlib2Fy
ZE1vZGUoKTsKKyAgICB2b2lkIGNsZWFyQXVkaWJsZUFjdGl2aXR5KCk7CiAjZW5kaWYKIAogICAg
IHZvaWQgbWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1l
LCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2
NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVp
bnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYm
KTsKQEAgLTIzMDAsNiArMjMwMSw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBy
b2Nlc3NUaHJvdHRsZXI6OkZvcmVncm91bmRBY3Rpdml0eT4gbV9pc0F1ZGlibGVBY3Rpdml0eTsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc1Rocm90dGxlcjo6Rm9yZWdyb3VuZEFjdGl2aXR5
PiBtX2lzQ2FwdHVyaW5nQWN0aXZpdHk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NUaHJv
dHRsZXI6OkZvcmVncm91bmRBY3Rpdml0eT4gbV9hbHdheXNSdW5zQXRGb3JlZ3JvdW5kUHJpb3Jp
dHlBY3Rpdml0eTsKKyAgICBSdW5Mb29wOjpUaW1lcjxXZWJQYWdlUHJveHk+IG1fYXVkaWJsZUFj
dGl2aXR5VGltZXI7CiAjZW5kaWYKICAgICBib29sIG1faW5pdGlhbENhcGl0YWxpemF0aW9uRW5h
YmxlZCB7IGZhbHNlIH07CiAgICAgT3B0aW9uYWw8ZG91YmxlPiBtX2NwdUxpbWl0OwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDk4ODk3YzBlYmZiMGIzMWY3YTFhYzk2ODAxNTg4ZDEyMDg3NGRjYmEuLjgxOWJkYjAwZjgwZjNi
YjhkNGZjZWIzY2Y3MjRmNjgwNmE5ZjkzZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0x
MS0xMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBIVE1MNSBh
dWRpbyAuZW5kZWQgZXZlbnQgbm90IGZpcmVkIHdoZW4gYXBwIGluIGJhY2tncm91bmQgb3IgcGhv
bmUgc2NyZWVuIGlzIG9mZgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTczMzMyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjc1NzQwMj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBtZWRpYS9hdWRpby1i
YWNrZ3JvdW5kLXBsYXliYWNrLXBsYXlsaXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogbWVkaWEvYXVkaW8tYmFja2dyb3VuZC1wbGF5YmFjay1wbGF5bGlzdC5odG1sOiBBZGRlZC4K
KwogMjAxOS0xMS0xNSAgUGFibG8gU2FhdmVkcmEgIDxwc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbV1BFXVtHVEtdIEdhcmRlbmluZyBhZnRlciByMjUyNDg3CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS9hdWRpby1iYWNrZ3JvdW5kLXBsYXliYWNrLXBsYXlsaXN0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLWJhY2tncm91bmQtcGxheWJhY2stcGxh
eWxpc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkMzQ0YjNkOTkzODhhOTdmNTM0YmUxNTU5
MjllZjQ5NjIwYmVhZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9hdWRp
by1iYWNrZ3JvdW5kLXBsYXliYWNrLXBsYXlsaXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIx
IEBACisKK1JVTihpbnRlcm5hbHMuc2V0TWVkaWFFbGVtZW50UmVzdHJpY3Rpb25zKGF1ZGlvLCAi
UmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlLFJlcXVpcmVVc2VyR2VzdHVyZVRv
Q29udHJvbENvbnRyb2xzTWFuYWdlciIpKQorUlVOKGF1ZGlvLnNyYyA9IGZpbmRNZWRpYUZpbGUo
ImF1ZGlvIiwgImNvbnRlbnQvdGVzdCIpKQorRVZFTlQoY2FucGxheXRocm91Z2gpCitSVU4oYXVk
aW8ucGxheSgpKQorRVZFTlQocGxheWluZykKK0VYUEVDVEVEIChpbnRlcm5hbHMuYmVzdE1lZGlh
RWxlbWVudEZvclNob3dpbmdQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigiTm93UGxheWluZyIpID09
ICdbb2JqZWN0IEhUTUxBdWRpb0VsZW1lbnRdJykgT0sKK1JVTihpbnRlcm5hbHMuYXBwbGljYXRp
b25EaWRFbnRlckJhY2tncm91bmQodHJ1ZSkpCitSVU4oYXVkaW8uY3VycmVudFRpbWUgPSBhdWRp
by5kdXJhdGlvbiAtIDAuMSkKK0VWRU5UKGVuZGVkKQorUlVOKGF1ZGlvLnNyYyA9ICIiKQorUlVO
KGF1ZGlvLmxvYWQoKSkKK0VYUEVDVEVEIChpbnRlcm5hbHMuYmVzdE1lZGlhRWxlbWVudEZvclNo
b3dpbmdQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigiTm93UGxheWluZyIpID09ICdbb2JqZWN0IEhU
TUxBdWRpb0VsZW1lbnRdJykgT0sKK1JVTihhdWRpby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJhdWRp
byIsICJjb250ZW50L3Rlc3QiKSkKK1JVTihhdWRpby5sb2FkKCkpCitFVkVOVChjYW5wbGF5dGhy
b3VnaCkKK1JVTihhdWRpby5wbGF5KCkpCitFVkVOVChwbGF5aW5nKQorRVhQRUNURUQgKGludGVy
bmFscy5iZXN0TWVkaWFFbGVtZW50Rm9yU2hvd2luZ1BsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCJO
b3dQbGF5aW5nIikgPT0gJ1tvYmplY3QgSFRNTEF1ZGlvRWxlbWVudF0nKSBPSworRU5EIE9GIFRF
U1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tYmFja2dyb3VuZC1wbGF5
YmFjay1wbGF5bGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tYmFja2dyb3VuZC1w
bGF5YmFjay1wbGF5bGlzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3MjkxMjZiMjQ0ZTA5YzU3NTcxZGM2
MzJmN2FmZDM5MjNmZjlmZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9h
dWRpby1iYWNrZ3JvdW5kLXBsYXliYWNrLXBsYXlsaXN0Lmh0bWwKQEAgLTAsMCArMSwzNSBAQAor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz1tZWRpYS1maWxlLmpzPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPXZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50ID0+IHsKKyAgICAg
ICAgd2luZG93LmF1ZGlvID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYXVkaW8nKTsKKyAgICAg
ICAgcnVuKCdpbnRlcm5hbHMuc2V0TWVkaWFFbGVtZW50UmVzdHJpY3Rpb25zKGF1ZGlvLCAiUmVx
dWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlLFJlcXVpcmVVc2VyR2VzdHVyZVRvQ29u
dHJvbENvbnRyb2xzTWFuYWdlciIpJyk7CisgICAgICAgIHJ1bignYXVkaW8uc3JjID0gZmluZE1l
ZGlhRmlsZSgiYXVkaW8iLCAiY29udGVudC90ZXN0IiknKTsKKworICAgICAgICBhd2FpdCB3YWl0
Rm9yKGF1ZGlvLCAnY2FucGxheXRocm91Z2gnKTsKKyAgICAgICAgcnVuV2l0aEtleURvd24oJ2F1
ZGlvLnBsYXkoKScpOworICAgICAgICBhd2FpdCB3YWl0Rm9yKGF1ZGlvLCAncGxheWluZycpOwor
ICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2ludGVybmFscy5iZXN0TWVkaWFFbGVtZW50Rm9yU2hvd2lu
Z1BsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCJOb3dQbGF5aW5nIiknLCBhdWRpbyk7CisgICAgICAg
IHJ1bignaW50ZXJuYWxzLmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKHRydWUpJyk7Cisg
ICAgICAgIHJ1bignYXVkaW8uY3VycmVudFRpbWUgPSBhdWRpby5kdXJhdGlvbiAtIDAuMScpCisg
ICAgICAgIGF3YWl0IHdhaXRGb3IoYXVkaW8sICdlbmRlZCcpOworICAgICAgICBydW4oJ2F1ZGlv
LnNyYyA9ICIiJyk7CisgICAgICAgIHJ1bignYXVkaW8ubG9hZCgpJyk7CisgICAgICAgIHRlc3RF
eHBlY3RlZCgnaW50ZXJuYWxzLmJlc3RNZWRpYUVsZW1lbnRGb3JTaG93aW5nUGxheWJhY2tDb250
cm9sc01hbmFnZXIoIk5vd1BsYXlpbmciKScsIGF1ZGlvKTsKKyAgICAgICAgcnVuKCdhdWRpby5z
cmMgPSBmaW5kTWVkaWFGaWxlKCJhdWRpbyIsICJjb250ZW50L3Rlc3QiKScpOworICAgICAgICBy
dW4oJ2F1ZGlvLmxvYWQoKScpOworICAgICAgICBhd2FpdCB3YWl0Rm9yKGF1ZGlvLCAnY2FucGxh
eXRocm91Z2gnKTsKKyAgICAgICAgcnVuKCdhdWRpby5wbGF5KCknKTsKKyAgICAgICAgYXdhaXQg
d2FpdEZvcihhdWRpbywgJ3BsYXlpbmcnKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbnRlcm5h
bHMuYmVzdE1lZGlhRWxlbWVudEZvclNob3dpbmdQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigiTm93
UGxheWluZyIpJywgYXVkaW8pOworICAgICAgICBlbmRUZXN0KCk7ICAgICAgICAKKyAgICB9KTsK
KyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+CisgICAgPGF1ZGlvIGNvbnRyb2xzPjxh
dWRpbz4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>