<?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>275702</bug_id>
          
          <creation_ts>2024-06-20 11:45:24 -0700</creation_ts>
          <short_desc>window.location.replace does not emit page lifecycle events on iOS</short_desc>
          <delta_ts>2024-06-24 01:38:37 -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>Page Loading</component>
          <version>Safari 17</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 17</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>BrowserCompat, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>rbeitra</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annevk</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>karlcow</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2042266</commentid>
    <comment_count>0</comment_count>
      <attachid>471715</attachid>
    <who name="">rbeitra</who>
    <bug_when>2024-06-20 11:45:24 -0700</bug_when>
    <thetext>Created attachment 471715
page lifecycle events test

Summary:
- Navigation via window.location.replace seems to not emit any page lifecycle events (pagehide, unload, visibilitychange) on iOS Safari
- This behavior seems inconsistent with MacOS Safari and other browsers, and other navigation methods (window.location.assign, window.location.reload, window.location.href=, clicking links).

Steps to reproduce:
- Open attached test html in a new tab on iOS Safari.
- Click the window.location.replace button.
- Close tab (don&apos;t use the back button).
- Open this page again in a new tab.
- Check the event table to see the events emitted from the previous page load.

Expected:
- There should be a pagehide event after the window.location.replace.
- There should be a visibilitychange event after the window.location.replace, and document.visibilityState === &quot;hidden&quot;.
- There should be a unload event after the window.location.replace.

Observed:
- There is no pagehide event after the window.location.replace.
- There is no visibilitychange event after the window.location.replace, and no change to document.visiblityState.
- There is no unload event after the window.location.replace.

Further Notes:
- Testing the same behavior in Safari (Desktop) emits pagehide+visibilitychange+unload.
- Testing the same behavior in Chrome (Desktop &amp; Mobile) emits beforeunload+pagehide+visibilitychange+unload.
- Testing the same behavior in Firefox (Desktop) triggers beforeunload+pagehide+visibilitychange+blur+unload.
- Testing other navigation methods in Safari (iPhone) (window.location.assign, window.location.reload, window.location.href=, clicking links) emits pagehide+visibilitychange+unload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2042337</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-06-20 16:11:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/130238744&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2042717</commentid>
    <comment_count>2</comment_count>
    <who name="Karl Dubost">karlcow</who>
    <bug_when>2024-06-24 01:20:44 -0700</bug_when>
    <thetext>macOS Safari STP 176

Page Load	Page Event Sequence	Type	Visibility State	Date
2 (current)	5	event: blur	visible	2024-06-24T08:01:47.979Z
2 (current)	4	event: focus	visible	2024-06-24T08:01:26.965Z
2 (current)	3	event: focus	visible	2024-06-24T08:01:26.964Z
2 (current)	2	event: pageshow	visible	2024-06-24T08:01:26.909Z
2 (current)	1	event: load	visible	2024-06-24T08:01:26.909Z
1 (previous)	8	event: unload	hidden	2024-06-24T08:01:14.209Z
1 (previous)	7	event: visibilitychange	hidden	2024-06-24T08:01:14.208Z
1 (previous)	6	event: pagehide	visible	2024-06-24T08:01:14.208Z
1 (previous)	5	triggered: window.location.replace	visible	2024-06-24T08:01:13.882Z
1 (previous)	4	event: focus	visible	2024-06-24T08:01:11.055Z
1 (previous)	3	event: focus	visible	2024-06-24T08:01:11.055Z
1 (previous)	2	event: pageshow	visible	2024-06-24T08:01:10.985Z
1 (previous)	1	event: load	visible	2024-06-24T08:01:10.984Z


macOS Firefox Nightly 129.0a1 (2024-06-23) (64-bit)

Page Load	Page Event Sequence	Type	Visibility State	Date
2 (current)	5	event: focus	visible	2024-06-24T08:06:27.442Z
2 (current)	4	event: blur	visible	2024-06-24T08:03:59.339Z
2 (current)	3	event: focus	visible	2024-06-24T08:03:24.931Z
2 (current)	2	event: pageshow	visible	2024-06-24T08:03:24.929Z
2 (current)	1	event: load	visible	2024-06-24T08:03:24.928Z
1 (previous)	9	event: unload	hidden	2024-06-24T08:03:14.588Z
1 (previous)	8	event: blur	hidden	2024-06-24T08:03:14.588Z
1 (previous)	7	event: visibilitychange	hidden	2024-06-24T08:03:14.579Z
1 (previous)	5	event: beforeunload	visible	2024-06-24T08:03:14.389Z
1 (previous)	4	triggered: window.location.replace	visible	2024-06-24T08:03:14.388Z
1 (previous)	3	event: focus	visible	2024-06-24T08:03:11.812Z
1 (previous)	2	event: pageshow	visible	2024-06-24T08:03:11.811Z
1 (previous)	1	event: load	visible	2024-06-24T08:03:11.811Z



macOS Chrome Canary Version 128.0.6548.0 (Official Build) canary (arm64)

Page Load	Page Event Sequence	Type	Visibility State	Date
2 (current)	8	event: focus	visible	2024-06-24T08:05:27.084Z
2 (current)	7	event: visibilitychange	visible	2024-06-24T08:05:27.082Z
2 (current)	6	event: visibilitychange	hidden	2024-06-24T08:05:13.388Z
2 (current)	5	event: blur	visible	2024-06-24T08:05:13.386Z
2 (current)	4	event: focus	visible	2024-06-24T08:05:10.371Z
2 (current)	3	event: blur	visible	2024-06-24T08:02:41.585Z
2 (current)	2	event: pageshow	visible	2024-06-24T08:02:14.373Z
2 (current)	1	event: load	visible	2024-06-24T08:02:14.373Z
1 (previous)	7	event: unload	hidden	2024-06-24T08:02:09.141Z
1 (previous)	6	event: visibilitychange	hidden	2024-06-24T08:02:09.141Z
1 (previous)	5	event: pagehide	visible	2024-06-24T08:02:09.140Z
1 (previous)	4	event: beforeunload	visible	2024-06-24T08:02:08.671Z
1 (previous)	3	triggered: window.location.replace	visible	2024-06-24T08:02:08.670Z
1 (previous)	2	event: pageshow	visible	2024-06-24T08:02:05.296Z
1 (previous)	1	event: load	visible	2024-06-24T08:02:05.295Z



iOS Safari 18

Page Load	Page Event Sequence	Type	Visibility State	Date
2 (current)	6	event: focus	visible	2024-06-24T08:09:29.836Z
2 (current)	5	event: blur	visible	2024-06-24T08:09:19.573Z
2 (current)	4	event: focus	visible	2024-06-24T08:09:19.558Z
2 (current)	3	event: focus	visible	2024-06-24T08:09:19.558Z
2 (current)	2	event: pageshow	visible	2024-06-24T08:09:19.553Z
2 (current)	1	event: load	visible	2024-06-24T08:09:19.553Z
1 (previous)	5	triggered: window.location.replace	visible	2024-06-24T08:08:14.919Z
1 (previous)	4	event: focus	visible	2024-06-24T08:08:04.975Z
1 (previous)	3	event: focus	visible	2024-06-24T08:08:04.975Z
1 (previous)	2	event: pageshow	visible	2024-06-24T08:08:04.959Z
1 (previous)	1	event: load	visible	2024-06-24T08:08:04.959Z


Android 14 Firefox Nightly 128.0a1
Page Load    Page  Event Sequence          Type Visibility State Date
2 (current)  3     event: pageshow         visible       2024-06-24T08:14:48.034Z
2 (current)  2     event: load             visible       2024-06-24T08:14:48.031Z
2 (current)  1     event: focus            visible       2024-06-24T08:14:48.020Z
1 (previous) 7     event: visibilitychange hidden        2024-06-24T08:14:32.916Z
1 (previous) 6     event: pagehide         visible       2024-06-24T08:14:32.914Z
1 (previous) 5     event: beforeunload     visible       2024-06-24T08:14:32.696Z
1 (previous) 4     triggered: window.location.replace visible 2024-06-24T08:14:32.691Z
1 (previous) 3     event: pageshow         visible       2024-06-24T08:14:30.113Z
1 (previous) 2     event: load             visible       2024-06-24T08:14:30.111Z
1 (previous) 1     event: focus            visible       2024-06-24T08:14:30.095Z</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2042719</commentid>
    <comment_count>3</comment_count>
    <who name="Karl Dubost">karlcow</who>
    <bug_when>2024-06-24 01:35:58 -0700</bug_when>
    <thetext>To make it more visible and putting them on a horizontal scale.

Event Start = window.location.replace

```
macOS    STP 176   start → pagehide............... → visibilitychange ...... → unload → load → pageshow ...... → focus
macOS    Ffx 129   start → beforeunload........... → visibilitychange → blur → unload → load → pageshow ...... → focus 
macOS    Chr 128   start → beforeunload → pagehide → visibilitychange ...... → unload → load → pageshow → blur → focus 
iOS      Sfr 18    start ............................................................ → load → pageshow ...... → focus 
Android  Ffx 128   start → beforeunload → pagehide → visibilitychange ...... → unload → load → pageshow → blur → focus 
```</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>471715</attachid>
            <date>2024-06-20 11:45:24 -0700</date>
            <delta_ts>2024-06-20 11:45:24 -0700</delta_ts>
            <desc>page lifecycle events test</desc>
            <filename>events_test.html</filename>
            <type>text/html</type>
            <size>7756</size>
            <attacher>rbeitra</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgoKPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
CiAgICA8dGl0bGU+UGFnZSBMaWZlY3ljbGUgRXZlbnRzIFRlc3Q8L3RpdGxlPgogICAgPHN0eWxl
PgogICAgICAgIGEsCiAgICAgICAgYnV0dG9uIHsKICAgICAgICAgICAgcGFkZGluZzogNXB4Owog
ICAgICAgICAgICBtYXJnaW46IDEwcHg7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDsKICAg
ICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5OwogICAgICAgICAgICBib3JkZXI6
IDFweCBzb2xpZCBncmV5OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICAgICAg
fQoKICAgICAgICB0ZCt0ZCwKICAgICAgICB0aCt0aCB7CiAgICAgICAgICAgIHBhZGRpbmctbGVm
dDogMzBweDsKICAgICAgICB9CgogICAgICAgIC5jdXJyZW50IHsKICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogI2RlZjsKICAgICAgICB9CgogICAgICAgIC5wcmV2aW91cyB7CiAgICAgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6ICNmZGU7CiAgICAgICAgfQoKICAgICAgICAub3RoZXIub2Rk
IHsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsKICAgICAgICB9CgogICAgICAg
IC5vdGhlci5ldmVuIHsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDsKICAgICAg
ICB9CiAgICA8L3N0eWxlPgo8L2hlYWQ+Cgo8Ym9keT4KICAgIDxkaXYgaWQ9Imluc3RydWN0aW9u
cyI+CiAgICAgICAgPGgxPlBhZ2UgTGlmZWN5Y2xlIEV2ZW50cyBUZXN0PC9oMT4KICAgICAgICA8
aDM+U3RlcHMgdG8gcmVwcm9kdWNlPC9oMz4KICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT5P
cGVuIHRoaXMgcGFnZSBpbiBhIG5ldyB0YWIgb24gaU9TIFNhZmFyaS48L2xpPgogICAgICAgICAg
ICA8bGk+Q2xpY2sgdGhlIDxzdHJvbmc+d2luZG93LmxvY2F0aW9uLnJlcGxhY2U8L3N0cm9uZz4g
YnV0dG9uLjwvbGk+CiAgICAgICAgICAgIDxsaT5DbG9zZSB0YWIgKGRvbid0IHVzZSB0aGUgYmFj
ayBidXR0b24pLjwvbGk+CiAgICAgICAgICAgIDxsaT5PcGVuIHRoaXMgcGFnZSBhZ2FpbiBpbiBh
IG5ldyB0YWIuPC9saT4KICAgICAgICAgICAgPGxpPkNoZWNrIHRoZSBldmVudCB0YWJsZSB0byBz
ZWUgdGhlIGV2ZW50cyBlbWl0dGVkIGZyb20gdGhlIDxzcGFuIGNsYXNzPSJwcmV2aW91cyI+cHJl
dmlvdXMgcGFnZSBsb2FkLjwvc3Bhbj4KICAgICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgog
ICAgICAgIDxoMz5FeHBlY3RlZDo8L2gzPgogICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPlRo
ZXJlIHNob3VsZCBiZSBhIHBhZ2VoaWRlIGV2ZW50IGFmdGVyIHRoZSB3aW5kb3cubG9jYXRpb24u
cmVwbGFjZS48L2xpPgogICAgICAgICAgICA8bGk+VGhlcmUgc2hvdWxkIGJlIGEgdmlzaWJpbGl0
eWNoYW5nZSBldmVudCBhZnRlciB0aGUgd2luZG93LmxvY2F0aW9uLnJlcGxhY2UsIGFuZCBkb2N1
bWVudC52aXNpYmlsaXR5U3RhdGUKICAgICAgICAgICAgICAgID09PSAiaGlkZGVuIi48L2xpPgog
ICAgICAgICAgICA8bGk+VGhlcmUgc2hvdWxkIGJlIGEgdW5sb2FkIGV2ZW50IGFmdGVyIHRoZSB3
aW5kb3cubG9jYXRpb24ucmVwbGFjZS48L2xpPgogICAgICAgIDwvdWw+CiAgICAgICAgPGgzPk9i
c2VydmVkOjwvaDM+CiAgICAgICAgPHVsPgogICAgICAgICAgICA8bGk+VGhlcmUgaXMgbm8gcGFn
ZWhpZGUgZXZlbnQgYWZ0ZXIgdGhlIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlLjwvbGk+CiAgICAg
ICAgICAgIDxsaT5UaGVyZSBpcyBubyB2aXNpYmlsaXR5Y2hhbmdlIGV2ZW50IGFmdGVyIHRoZSB3
aW5kb3cubG9jYXRpb24ucmVwbGFjZSwgYW5kIG5vIGNoYW5nZSB0bwogICAgICAgICAgICAgICAg
ZG9jdW1lbnQudmlzaWJsaXR5U3RhdGUuPC9saT4KICAgICAgICAgICAgPGxpPlRoZXJlIGlzIG5v
IHVubG9hZCBldmVudCBhZnRlciB0aGUgd2luZG93LmxvY2F0aW9uLnJlcGxhY2UuPC9saT4KICAg
ICAgICA8L3VsPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJidXR0b25zIj4KICAgICAgICA8YnV0
dG9uIG9uY2xpY2s9InJlcGxhY2UoKSIgc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyI+d2luZG93
LmxvY2F0aW9uLnJlcGxhY2U8L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImFzc2ln
bigpIj53aW5kb3cubG9jYXRpb24uYXNzaWduPC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBvbmNs
aWNrPSJocmVmRXF1YWxzKCkiPndpbmRvdy5sb2NhdGlvbi5ocmVmPTwvYnV0dG9uPgogICAgICAg
IDxidXR0b24gb25jbGljaz0icmVsb2FkKCkiPndpbmRvdy5sb2NhdGlvbi5yZWxvYWQ8L2J1dHRv
bj4KICAgICAgICA8YSBocmVmPSJodHRwczovL2FwcGxlLmNvbSIKICAgICAgICAgICAgb25jbGlj
az0ibG9nRXZlbnQoJ3RyaWdnZXJlZDogYSB0YWcgbGluayBjbGljaycsIG51bGwpOyI+Jmx0O2Em
Z3Q7Jm5ic3A7dGFnJm5ic3A7bGluazwvYT4KICAgICAgICA8YnV0dG9uIG9uY2xpY2s9ImNsZWFy
TG9nKCkiPkNsZWFyIExvZzwvYnV0dG9uPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwYWdlTG9h
ZElkcyI+PC9kaXY+CiAgICA8aDM+RXZlbnRzIEhpc3Rvcnk6PC9oMz4KICAgIDx0YWJsZSBpZD0i
bG9ndGFibGUiPjwvdGFibGU+CiAgICA8c2NyaXB0PgogICAgICAgIGxldCBjdXJyZW50UGFnZUxv
YWRJZCA9IDA7CiAgICAgICAgbGV0IGN1cnJlbnRFdmVudFNlcXVlbmNlSWQgPSAwOwoKICAgICAg
ICBmdW5jdGlvbiBsb2dFdmVudChldmVudFR5cGUsIGV2ZW50KSB7CiAgICAgICAgICAgICsrY3Vy
cmVudEV2ZW50U2VxdWVuY2VJZDsKICAgICAgICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKS50
b0lTT1N0cmluZygpOwogICAgICAgICAgICBsZXQgdW5pcXVlS2V5ID0gYCR7bm93fV8ke2N1cnJl
bnRFdmVudFNlcXVlbmNlSWR9XyR7ZXZlbnRUeXBlfWA7CiAgICAgICAgICAgIGxldCB2YWx1ZSA9
IHsKICAgICAgICAgICAgICAgIHR5cGU6IGV2ZW50VHlwZSwKICAgICAgICAgICAgICAgIGRhdGU6
IG5vdywKICAgICAgICAgICAgICAgIGV2ZW50U2VxdWVuY2VJZDogY3VycmVudEV2ZW50U2VxdWVu
Y2VJZCwKICAgICAgICAgICAgICAgIHBhZ2VMb2FkSWQ6IGN1cnJlbnRQYWdlTG9hZElkLAogICAg
ICAgICAgICAgICAgdmlzaWJpbGl0eVN0YXRlOiBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUKICAg
ICAgICAgICAgfTsKICAgICAgICAgICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKHVuaXF1
ZUtleSwgSlNPTi5zdHJpbmdpZnkodmFsdWUpKTsKICAgICAgICAgICAgY29uc29sZS5sb2coZXZl
bnRUeXBlLCBldmVudCk7CiAgICAgICAgICAgIHJlYWRMb2dUb1RhYmxlKCk7CiAgICAgICAgfTsK
CiAgICAgICAgZnVuY3Rpb24gYWRkRXZlbnRIYW5kbGVyKHRhcmdldCwgZXZlbnRUeXBlKSB7CiAg
ICAgICAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgKGV2ZW50KSA9PiB7
CiAgICAgICAgICAgICAgICBsb2dFdmVudCgiZXZlbnQ6ICIgKyBldmVudFR5cGUsIGV2ZW50KTsK
ICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKCiAgICAgICAgZnVuY3Rpb24gcmVwbGFjZSgpIHsK
ICAgICAgICAgICAgbG9nRXZlbnQoInRyaWdnZXJlZDogd2luZG93LmxvY2F0aW9uLnJlcGxhY2Ui
LCBudWxsKTsKICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlcGxhY2UoImh0dHBzOi8vYXBw
bGUuY29tIik7CiAgICAgICAgfTsKCiAgICAgICAgZnVuY3Rpb24gYXNzaWduKCkgewogICAgICAg
ICAgICBsb2dFdmVudCgidHJpZ2dlcmVkOiB3aW5kb3cubG9jYXRpb24uYXNzaWduIiwgbnVsbCk7
CiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24oImh0dHBzOi8vYXBwbGUuY29tIik7
CiAgICAgICAgfTsKCiAgICAgICAgZnVuY3Rpb24gaHJlZkVxdWFscygpIHsKICAgICAgICAgICAg
bG9nRXZlbnQoInRyaWdnZXJlZDogd2luZG93LmxvY2F0aW9uLmhyZWY9IiwgbnVsbCk7CiAgICAg
ICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gImh0dHBzOi8vYXBwbGUuY29tIjsKICAgICAg
ICB9OwoKICAgICAgICBmdW5jdGlvbiByZWxvYWQoKSB7CiAgICAgICAgICAgIGxvZ0V2ZW50KCJ0
cmlnZ2VyZWQ6IHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQiLCBudWxsKTsKICAgICAgICAgICAgd2lu
ZG93LmxvY2F0aW9uLnJlbG9hZCgpOwogICAgICAgIH07CgogICAgICAgIGZ1bmN0aW9uIHJlc2V0
VGFibGUoKSB7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2d0YWJsZScp
LmlubmVySFRNTCA9ICI8dGhlYWQ+PHRyPjx0aD5QYWdlIExvYWQ8L3RoPjx0aD5QYWdlIEV2ZW50
IFNlcXVlbmNlPC90aD48dGg+VHlwZTwvdGg+PHRoPlZpc2liaWxpdHkgU3RhdGU8L3RoPjx0aD5E
YXRlPC90aD48L3RyPjwvdGhlYWQ+IjsKICAgICAgICB9OwoKICAgICAgICBmdW5jdGlvbiByZWFk
TWF4UGFnZUxvYWRJZCgpIHsKICAgICAgICAgICAgY29uc3QgcGFnZUxvYWRJZHMgPSBbXTsKICAg
ICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsb2NhbFN0b3JhZ2UubGVuZ3RoOyBpKyspIHsK
ICAgICAgICAgICAgICAgIHBhZ2VMb2FkSWRzLnB1c2goSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2Uu
Z2V0SXRlbShsb2NhbFN0b3JhZ2Uua2V5KGkpKSkucGFnZUxvYWRJZCB8fCAwKTsKICAgICAgICAg
ICAgfQogICAgICAgICAgICBjb25zdCBwcmV2aW91c1BhZ2VMb2FkSWQgPSBNYXRoLm1heCgwLCAu
Li5wYWdlTG9hZElkcyk7CiAgICAgICAgICAgIGN1cnJlbnRQYWdlTG9hZElkID0gcHJldmlvdXNQ
YWdlTG9hZElkICsgMTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhZ2VM
b2FkSWRzJykuaW5uZXJIVE1MID0gYDxzcGFuIGNsYXNzPSJjdXJyZW50Ij5DdXJyZW50IFBhZ2Ug
TG9hZDogJHtjdXJyZW50UGFnZUxvYWRJZH08L3NwYW4+IDxzcGFuIGNsYXNzPSJwcmV2aW91cyI+
UHJldmlvdXMgUGFnZSBMb2FkOiAke3ByZXZpb3VzUGFnZUxvYWRJZH08L3NwYW4+YDsKICAgICAg
ICB9OwoKICAgICAgICBmdW5jdGlvbiByZWFkTG9nVG9UYWJsZSgpIHsKICAgICAgICAgICAgcmVz
ZXRUYWJsZSgpOwogICAgICAgICAgICBjb25zdCBsb2dUYWJsZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdsb2d0YWJsZScpOwogICAgICAgICAgICBjb25zdCB0Qm9keSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3Rib2R5Jyk7CiAgICAgICAgICAgIGNvbnN0IGtleXMgPSBbXTsKICAgICAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsb2NhbFN0b3JhZ2UubGVuZ3RoOyBpKyspIHsKICAg
ICAgICAgICAgICAgIGtleXMucHVzaChsb2NhbFN0b3JhZ2Uua2V5KGkpKTsKICAgICAgICAgICAg
fQogICAgICAgICAgICBrZXlzLnNvcnQoKGtleUEsIGtleUIpID0+IHsKICAgICAgICAgICAgICAg
IGNvbnN0IGEgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleUEpKTsKICAgICAg
ICAgICAgICAgIGNvbnN0IGIgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleUIp
KTsKICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VMb2FkQSA9IHBhcnNlSW50KGEucGFnZUxvYWRJ
ZCk7CiAgICAgICAgICAgICAgICBjb25zdCBwYWdlTG9hZEIgPSBwYXJzZUludChiLnBhZ2VMb2Fk
SWQpOwogICAgICAgICAgICAgICAgaWYgKHBhZ2VMb2FkQSAtIHBhZ2VMb2FkQiAhPT0gMCkgewog
ICAgICAgICAgICAgICAgICAgIHJldHVybiBwYWdlTG9hZEIgLSBwYWdlTG9hZEE7CiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICBjb25zdCBldmVudFNlcXVlbmNlQSA9IHBhcnNlSW50
KGEuZXZlbnRTZXF1ZW5jZUlkKTsKICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50U2VxdWVuY2VC
ID0gcGFyc2VJbnQoYi5ldmVudFNlcXVlbmNlSWQpOwogICAgICAgICAgICAgICAgcmV0dXJuIGV2
ZW50U2VxdWVuY2VCIC0gZXZlbnRTZXF1ZW5jZUE7CiAgICAgICAgICAgIH0pOwogICAgICAgICAg
ICBjb25zdCBpdGVtcyA9IGtleXMubWFwKGtleSA9PiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5n
ZXRJdGVtKGtleSkpKTsKICAgICAgICAgICAgY29uc3QgcHJldmlvdXNQYWdlTG9hZElkcyA9IFsu
Li5uZXcgU2V0KGl0ZW1zLm1hcChpdGVtID0+IGl0ZW0ucGFnZUxvYWRJZCkpXS5maWx0ZXIoaWQg
PT4gaWQgIT09IGN1cnJlbnRQYWdlTG9hZElkKTsKCiAgICAgICAgICAgIGtleXMuZm9yRWFjaChr
ZXkgPT4gewogICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IEpTT04ucGFyc2UobG9jYWxTdG9y
YWdlLmdldEl0ZW0oa2V5KSk7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhrZXksIGl0ZW0p
OwogICAgICAgICAgICAgICAgbGV0IHBhZ2VMb2FkQ2xhc3MgPSAnb3RoZXInICsgKHByZXZpb3Vz
UGFnZUxvYWRJZHMuaW5kZXhPZihpdGVtLnBhZ2VMb2FkSWQpICUgMiA/ICcgb2RkJyA6ICcgZXZl
bicpOwogICAgICAgICAgICAgICAgaWYgKGl0ZW0ucGFnZUxvYWRJZCA9PT0gY3VycmVudFBhZ2VM
b2FkSWQpIHsKICAgICAgICAgICAgICAgICAgICBwYWdlTG9hZENsYXNzID0gJ2N1cnJlbnQnOwog
ICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLnBhZ2VMb2FkSWQgPT09IHByZXZpb3VzUGFn
ZUxvYWRJZHNbMF0pIHsKICAgICAgICAgICAgICAgICAgICBwYWdlTG9hZENsYXNzID0gJ3ByZXZp
b3VzJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VMb2FkU3Vm
Zml4ID0gcGFnZUxvYWRDbGFzcy5pbmNsdWRlcygnb3RoZXInKSA/ICcnIDogYCAoJHtwYWdlTG9h
ZENsYXNzfSlgOwogICAgICAgICAgICAgICAgdEJvZHkuaW5uZXJIVE1MICs9IGA8dHIgY2xhc3M9
IiR7cGFnZUxvYWRDbGFzc30iPjx0ZD4ke2l0ZW0ucGFnZUxvYWRJZH0ke3BhZ2VMb2FkU3VmZml4
fTwvdGQ+PHRkPiR7aXRlbS5ldmVudFNlcXVlbmNlSWR9PC90ZD48dGQ+JHtpdGVtLnR5cGV9PC90
ZD48dGQ+JHtpdGVtLnZpc2liaWxpdHlTdGF0ZX08L3RkPjx0ZD4ke2l0ZW0uZGF0ZX08L3RkPjwv
dHI+YDsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGxvZ1RhYmxlLmFwcGVuZENoaWxkKHRC
b2R5KTsKICAgICAgICB9OwoKICAgICAgICBmdW5jdGlvbiBjbGVhckxvZygpIHsKICAgICAgICAg
ICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7CiAgICAgICAgICAgIHJlYWRNYXhQYWdlTG9hZElkKCk7
CiAgICAgICAgICAgIHJlYWRMb2dUb1RhYmxlKCk7CiAgICAgICAgfTsKCiAgICAgICAgcmVhZE1h
eFBhZ2VMb2FkSWQoKTsKICAgICAgICByZWFkTG9nVG9UYWJsZSgpOwogICAgICAgIGFkZEV2ZW50
SGFuZGxlcih3aW5kb3csICdsb2FkJyk7CiAgICAgICAgYWRkRXZlbnRIYW5kbGVyKHdpbmRvdywg
J2JlZm9yZXVubG9hZCcpOwogICAgICAgIGFkZEV2ZW50SGFuZGxlcih3aW5kb3csICd1bmxvYWQn
KTsKICAgICAgICBhZGRFdmVudEhhbmRsZXIod2luZG93LCAnYmx1cicpOwogICAgICAgIGFkZEV2
ZW50SGFuZGxlcih3aW5kb3csICdmb2N1cycpOwogICAgICAgIGFkZEV2ZW50SGFuZGxlcih3aW5k
b3csICdmcmVlemUnKTsKICAgICAgICBhZGRFdmVudEhhbmRsZXIod2luZG93LCAncmVzdW1lJyk7
CiAgICAgICAgYWRkRXZlbnRIYW5kbGVyKHdpbmRvdywgJ3BhZ2VoaWRlJyk7CiAgICAgICAgYWRk
RXZlbnRIYW5kbGVyKHdpbmRvdywgJ3BhZ2VzaG93Jyk7CiAgICAgICAgYWRkRXZlbnRIYW5kbGVy
KHdpbmRvdywgJ3Zpc2liaWxpdHljaGFuZ2UnKTsKCiAgICA8L3NjcmlwdD4KPC9ib2R5PgoKPC9o
dG1sPg==
</data>

          </attachment>
      

    </bug>

</bugzilla>