<?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>135129</bug_id>
          
          <creation_ts>2014-07-21 13:33:22 -0700</creation_ts>
          <short_desc>Assertion failure in WebPage::reload (!m_pendingNavigationID) when reloading after a same-document back navigation</short_desc>
          <delta_ts>2017-03-20 15:20:56 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=169894</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>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1023772</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-07-21 13:33:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/17593701&gt;

To reproduce: navigate to data:text/html,&lt;a%20href=&quot;#&quot;&gt;link&lt;/a&gt; then tap the link, go back, and reload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023777</commentid>
    <comment_count>1</comment_count>
      <attachid>235245</attachid>
    <who name="">mitz</who>
    <bug_when>2014-07-21 13:49:34 -0700</bug_when>
    <thetext>Created attachment 235245
Don&apos;t create new navigations for same-document back-forward navigations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023806</commentid>
    <comment_count>2</comment_count>
      <attachid>235245</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-07-21 16:58:50 -0700</bug_when>
    <thetext>Comment on attachment 235245
Don&apos;t create new navigations for same-document back-forward navigations

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

&gt; Source/WebKit2/Shared/WebBackForwardListItem.cpp:74
&gt; +    for (const auto&amp; child : a.children) {
&gt; +        const FrameState* otherChild = childItemWithDocumentSequenceNumber(b, child.documentSequenceNumber);
&gt; +        if (!otherChild || !documentTreesAreEqual(child, *otherChild))
&gt; +            return false;
&gt; +    }

Too bad this is n^2 the number of children at each level of the tree, and recursive.

It also unnecessarily compares every document sequence number during the recursion even though it finds each child by sequence number.

I could imagine a more version that copied and sorted the vectors of children to avoid the n^2.

And we might be able to cleanly avoid the recursion by using a Deque to keep track of children to compare.

But I’m not sure either of these changes would actually be an improvement.

&gt; Source/WebKit2/Shared/WebBackForwardListItem.cpp:84
&gt; +    // The following logic must be kept in sync with WebCore::HistoryItem::shouldDoSameDocumentNavigationTo.

I find the logic below utterly mysterious. Maybe the “why” comments are in shouldDoSameDocumentNavigationTo?

&gt; Source/WebKit2/Shared/WebBackForwardListItem.cpp:95
&gt; +    WebCore::URL url = WebCore::URL(WebCore::ParsedURLString, mainFrameState.urlString);
&gt; +    WebCore::URL otherURL = WebCore::URL(WebCore::ParsedURLString, otherMainFrameState.urlString);
&gt; +
&gt; +    if ((url.hasFragmentIdentifier() || otherURL.hasFragmentIdentifier()) &amp;&amp; equalIgnoringFragmentIdentifier(url, otherURL))

Seems a real shame we have to reconstitute the URL objects just to find the &quot;#&quot; characters in them. I am pretty sure this can be done more efficiently without fully re-parsing the URLs, but it might make the code harder to maintain so I guess we can leave it like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024728</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-07-24 18:33:12 -0700</bug_when>
    <thetext>Fixed in &lt;http://trac.webkit.org/r171574&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235245</attachid>
            <date>2014-07-21 13:49:34 -0700</date>
            <delta_ts>2014-07-21 16:58:50 -0700</delta_ts>
            <desc>Don&apos;t create new navigations for same-document back-forward navigations</desc>
            <filename>bug-135129-20140721134919.patch</filename>
            <type>text/plain</type>
            <size>8993</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MTMwMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE0LTA3LTIxICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViQ29yZSBwYXJ0IG9mIDxyZGFy
Oi8vcHJvYmxlbS8xNzU5MzcwMT4gQXNzZXJ0aW9uIGZhaWx1cmUgaW4gV2ViUGFnZTo6cmVsb2Fk
ICghbV9wZW5kaW5nTmF2aWdhdGlvbklEKSB3aGVuIHJlbG9hZGluZyBhZnRlciBhIHNhbWUtZG9j
dW1lbnQgYmFjayBuYXZpZ2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzUxMjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBFeHBvcnRlZCBlcXVhbElnbm9yaW5nRnJh
Z21lbnRJZGVudGlmaWVyKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYpLgorCiAyMDE0LTA3LTIxICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIGEg
UGF1c2VkIG1lZGlhIHNlc3Npb24gaXMgbm90IGFjdGl2ZQpJbmRleDogU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4JKHJldmlzaW9uIDE3MTMwMCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDU4LDYgKzEwNTgsNyBAQCBfX1pON1dlYkNvcmUzMGhvc3ROYW1l
TmVlZHNFbmNvZGluZ1dpdGhSCiBfX1pON1dlYkNvcmUzMG92ZXJyaWRlVXNlclByZWZlcnJlZExh
bmd1YWdlc0VSS04zV1RGNlZlY3RvcklOUzBfNlN0cmluZ0VMbTBFTlMwXzE1Q3Jhc2hPbk92ZXJm
bG93RUVFCiBfX1pON1dlYkNvcmUzMUNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU1ZW1w
dHlFdgogX19aTjdXZWJDb3JlMzFDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlNnNoYXJl
ZEV2CitfX1pON1dlYkNvcmUzMWVxdWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZpZXJFUktOU18z
VVJMRVMyXwogX19aTjdXZWJDb3JlMzNkZWxldGVBbGxDb29raWVzTW9kaWZpZWRBZnRlckRhdGVF
UktOU18yMU5ldHdvcmtTdG9yYWdlU2Vzc2lvbkVkCiBfX1pON1dlYkNvcmUzM3N0cmlwTGVhZGlu
Z0FuZFRyYWlsaW5nSFRNTFNwYWNlc0VSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTM2c3Rh
bmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25OYW1lRVJLTjNXVEY2U3RyaW5nRVMzXwpAQCAt
Mjk2MSw2ICsyOTYyLDE3IEBAIF93a1NldFJlcXVlc3RTdG9yYWdlU2Vzc2lvbgogX19aTjdXZWJD
b3JlMTRSZXNvdXJjZUhhbmRsZTI1Y29udGludWVXaWxsQ2FjaGVSZXNwb25zZUVQMTlOU0NhY2hl
ZFVSTFJlc3BvbnNlCiAjZW5kaWYKIAorI2lmIFVTRShDT05URU5UX0ZJTFRFUklORykKK19fWk43
V2ViQ29yZTEzQ29udGVudEZpbHRlcjZkZWNvZGVFUDE3TlNLZXllZFVuYXJjaGl2ZXJSUzBfCitf
X1pON1dlYkNvcmUxM0NvbnRlbnRGaWx0ZXJDMUV2CitfX1pON1dlYkNvcmUxM0NvbnRlbnRGaWx0
ZXJEMUV2CitfX1pOSzdXZWJDb3JlMTNDb250ZW50RmlsdGVyNmVuY29kZUVQMTVOU0tleWVkQXJj
aGl2ZXIKKyNlbmRpZgorCisjaWYgVVNFKENPTlRFTlRfRklMVEVSSU5HKSAmJiBQTEFURk9STShJ
T1MpCitfX1pON1dlYkNvcmUxM0NvbnRlbnRGaWx0ZXI0M2hhbmRsZVVuYmxvY2tSZXF1ZXN0QW5k
RGlzcGF0Y2hJZlN1Y2Nlc3NmdWxFUktOU18xNVJlc291cmNlUmVxdWVzdEVOU3QzX18xOGZ1bmN0
aW9uSUZ2dkVFRQorI2VuZGlmCisKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIF9fWk43V2Vi
Q29yZTExQ29udGV4dE1lbnUyMnNldFBsYXRmb3JtRGVzY3JpcHRpb25FUDE0TlNNdXRhYmxlQXJy
YXkKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMjBzZW5kQ29udGV4dE1lbnVFdmVudEVSS05T
XzE4UGxhdGZvcm1Nb3VzZUV2ZW50RQpAQCAtMzQ2MywxMyArMzQ3NSwzIEBAIF9fWk43V2ViQ29y
ZTlQYWdlR3JvdXAxOGNhcHRpb25QcmVmZXJlbmMKICNpZiBFTkFCTEUoVklFV19NT0RFX0NTU19N
RURJQSkKIF9fWk43V2ViQ29yZTRQYWdlMTFzZXRWaWV3TW9kZUVOUzBfOFZpZXdNb2RlRQogI2Vu
ZGlmCi0KLSNpZiBVU0UoQ09OVEVOVF9GSUxURVJJTkcpCi0jaWYgUExBVEZPUk0oSU9TKQotX19a
TjdXZWJDb3JlMTNDb250ZW50RmlsdGVyNDNoYW5kbGVVbmJsb2NrUmVxdWVzdEFuZERpc3BhdGNo
SWZTdWNjZXNzZnVsRVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFTlN0M19fMThmdW5jdGlvbklGdnZF
RUUKLSNlbmRpZgotX19aTjdXZWJDb3JlMTNDb250ZW50RmlsdGVyNmRlY29kZUVQMTdOU0tleWVk
VW5hcmNoaXZlclJTMF8KLV9fWk43V2ViQ29yZTEzQ29udGVudEZpbHRlckMxRXYKLV9fWk43V2Vi
Q29yZTEzQ29udGVudEZpbHRlckQxRXYKLV9fWk5LN1dlYkNvcmUxM0NvbnRlbnRGaWx0ZXI2ZW5j
b2RlRVAxNU5TS2V5ZWRBcmNoaXZlcgotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
NzEzMDApCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyNSBAQAorMjAxNC0wNy0yMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgor
CisgICAgICAgIFdlYktpdDIgcGFydCBvZiA8cmRhcjovL3Byb2JsZW0vMTc1OTM3MDE+IEFzc2Vy
dGlvbiBmYWlsdXJlIGluIFdlYlBhZ2U6OnJlbG9hZCAoIW1fcGVuZGluZ05hdmlnYXRpb25JRCkg
d2hlbiByZWxvYWRpbmcgYWZ0ZXIgYSBzYW1lLWRvY3VtZW50IGJhY2sgbmF2aWdhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MTI5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNoaWxkSXRlbVdpdGhE
b2N1bWVudFNlcXVlbmNlTnVtYmVyKTogTmV3IGhlbHBlciBmdW5jdGlvbiBiYXNlZCBvbgorICAg
ICAgICBXZWJDb3JlOjpIaXN0b3J5SXRlbTo6Y2hpbGRJdGVtV2l0aERvY3VtZW50U2VxdWVuY2VO
dW1iZXIuCisgICAgICAgIChXZWJLaXQ6OmRvY3VtZW50VHJlZXNBcmVFcXVhbCk6IE5ldyBoZWxw
ZXIgZnVuY3Rpb24gYmFzZWQgb24KKyAgICAgICAgV2ViQ29yZTo6SGlzdG9yeUl0ZW06Omhhc1Nh
bWVEb2N1bWVudFRyZWUuCisgICAgICAgIChXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdEl0ZW06
Oml0ZW1Jc0luU2FtZURvY3VtZW50KTogQWRkZWQuIEJhc2VkIG9uCisgICAgICAgIFdlYkNvcmU6
Okhpc3RvcnlJdGVtOjpzaG91bGREb1NhbWVEb2N1bWVudE5hdmlnYXRpb25Uby4KKyAgICAgICAg
KiBTaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oOgorCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z29Gb3J3
YXJkKTogRG9u4oCZdCBhc3NpZ24gYSBuZXcgbmF2aWdhdGlvbiBJRCBpZiB0aGUgYmFjay1mb3J3
YXJkCisgICAgICAgIG5hdmlnYXRpb24gaXMgYSBzYW1lLWRvY3VtZW50IG5hdmlnYXRpb24uCisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z29CYWNrKTogRGl0dG8uCisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSk6IERpdHRvLgorCiAyMDE0
LTA3LTIwICBLd2FuZ0h5dWsgS2ltICA8aHl1a2kua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAg
IEZpeCB3YXJuaW5ncyBjYXVzZWQgYnkgdW51c2VkIHBhcmFtZXRlci4KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJCYWNrRm9yd2FyZExpc3RJdGVtLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAJKHJldmlzaW9u
IDE3MTMwMCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYWNrRm9yd2FyZExpc3RJdGVt
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKIAorI2luY2x1ZGUgPFdlYkNv
cmUvVVJMLmg+CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdGF0aWMgdWludDY0X3QgaGlnaGVz
dFVzZWRJdGVtSUQgPSAwOwpAQCAtNDcsNiArNDksNTUgQEAgV2ViQmFja0ZvcndhcmRMaXN0SXRl
bTo6fldlYkJhY2tGb3J3YXJkTAogewogfQogCitzdGF0aWMgY29uc3QgRnJhbWVTdGF0ZSogY2hp
bGRJdGVtV2l0aERvY3VtZW50U2VxdWVuY2VOdW1iZXIoY29uc3QgRnJhbWVTdGF0ZSYgZnJhbWVT
dGF0ZSwgaW50NjRfdCBudW1iZXIpCit7CisgICAgZm9yIChjb25zdCBhdXRvJiBjaGlsZCA6IGZy
YW1lU3RhdGUuY2hpbGRyZW4pIHsKKyAgICAgICAgaWYgKGNoaWxkLmRvY3VtZW50U2VxdWVuY2VO
dW1iZXIgPT0gbnVtYmVyKQorICAgICAgICAgICAgcmV0dXJuICZjaGlsZDsKKyAgICB9CisKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworc3RhdGljIGJvb2wgZG9jdW1lbnRUcmVlc0FyZUVxdWFs
KGNvbnN0IEZyYW1lU3RhdGUmIGEsIGNvbnN0IEZyYW1lU3RhdGUmIGIpCit7CisgICAgaWYgKGEu
ZG9jdW1lbnRTZXF1ZW5jZU51bWJlciAhPSBiLmRvY3VtZW50U2VxdWVuY2VOdW1iZXIpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChhLmNoaWxkcmVuLnNpemUoKSAhPSBiLmNoaWxk
cmVuLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9yIChjb25zdCBhdXRv
JiBjaGlsZCA6IGEuY2hpbGRyZW4pIHsKKyAgICAgICAgY29uc3QgRnJhbWVTdGF0ZSogb3RoZXJD
aGlsZCA9IGNoaWxkSXRlbVdpdGhEb2N1bWVudFNlcXVlbmNlTnVtYmVyKGIsIGNoaWxkLmRvY3Vt
ZW50U2VxdWVuY2VOdW1iZXIpOworICAgICAgICBpZiAoIW90aGVyQ2hpbGQgfHwgIWRvY3VtZW50
VHJlZXNBcmVFcXVhbChjaGlsZCwgKm90aGVyQ2hpbGQpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW06Oml0ZW1Jc0luU2FtZURvY3VtZW50KGNvbnN0IFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0mIG90aGVyKSBjb25zdAoreworICAgIGlmIChtX3BhZ2VJRCAhPSBvdGhlci5tX3BhZ2VJRCkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gVGhlIGZvbGxvd2luZyBsb2dpYyBtdXN0
IGJlIGtlcHQgaW4gc3luYyB3aXRoIFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpzaG91bGREb1NhbWVE
b2N1bWVudE5hdmlnYXRpb25Uby4KKworICAgIGNvbnN0IEZyYW1lU3RhdGUmIG1haW5GcmFtZVN0
YXRlID0gbV9pdGVtU3RhdGUucGFnZVN0YXRlLm1haW5GcmFtZVN0YXRlOworICAgIGNvbnN0IEZy
YW1lU3RhdGUmIG90aGVyTWFpbkZyYW1lU3RhdGUgPSBvdGhlci5tX2l0ZW1TdGF0ZS5wYWdlU3Rh
dGUubWFpbkZyYW1lU3RhdGU7CisKKyAgICBpZiAobWFpbkZyYW1lU3RhdGUuc3RhdGVPYmplY3RE
YXRhIHx8IG90aGVyTWFpbkZyYW1lU3RhdGUuc3RhdGVPYmplY3REYXRhKQorICAgICAgICByZXR1
cm4gbWFpbkZyYW1lU3RhdGUuZG9jdW1lbnRTZXF1ZW5jZU51bWJlciA9PSBvdGhlck1haW5GcmFt
ZVN0YXRlLmRvY3VtZW50U2VxdWVuY2VOdW1iZXI7CisKKyAgICBXZWJDb3JlOjpVUkwgdXJsID0g
V2ViQ29yZTo6VVJMKFdlYkNvcmU6OlBhcnNlZFVSTFN0cmluZywgbWFpbkZyYW1lU3RhdGUudXJs
U3RyaW5nKTsKKyAgICBXZWJDb3JlOjpVUkwgb3RoZXJVUkwgPSBXZWJDb3JlOjpVUkwoV2ViQ29y
ZTo6UGFyc2VkVVJMU3RyaW5nLCBvdGhlck1haW5GcmFtZVN0YXRlLnVybFN0cmluZyk7CisKKyAg
ICBpZiAoKHVybC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSB8fCBvdGhlclVSTC5oYXNGcmFnbWVu
dElkZW50aWZpZXIoKSkgJiYgZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcih1cmwsIG90
aGVyVVJMKSkKKyAgICAgICAgcmV0dXJuIG1haW5GcmFtZVN0YXRlLmRvY3VtZW50U2VxdWVuY2VO
dW1iZXIgPT0gb3RoZXJNYWluRnJhbWVTdGF0ZS5kb2N1bWVudFNlcXVlbmNlTnVtYmVyOworCisg
ICAgcmV0dXJuIGRvY3VtZW50VHJlZXNBcmVFcXVhbChtYWluRnJhbWVTdGF0ZSwgb3RoZXJNYWlu
RnJhbWVTdGF0ZSk7Cit9CisKIHVpbnQ2NF90IFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW06OmhpZ2hl
ZFVzZWRJdGVtSUQoKQogewogICAgIHJldHVybiBoaWdoZXN0VXNlZEl0ZW1JRDsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaAkocmV2aXNp
b24gMTcxMzAwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsOCBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
U3RyaW5nJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX2l0ZW1TdGF0ZS5wYWdlU3RhdGUubWFpbkZy
YW1lU3RhdGUudXJsU3RyaW5nOyB9CiAgICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNvbnN0IHsg
cmV0dXJuIG1faXRlbVN0YXRlLnBhZ2VTdGF0ZS50aXRsZTsgfQogCisgICAgYm9vbCBpdGVtSXNJ
blNhbWVEb2N1bWVudChjb25zdCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikgY29uc3Q7CisKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICBWaWV3U25hcHNob3QqIHNuYXBzaG90KCkgY29uc3QgeyBy
ZXR1cm4gbV9pdGVtU3RhdGUuc25hcHNob3QuZ2V0KCk7IH0KICAgICB2b2lkIHNldFNuYXBzaG90
KFBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiBzbmFwc2hvdCkgeyBtX2l0ZW1TdGF0ZS5zbmFwc2hv
dCA9IHNuYXBzaG90OyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAkocmV2aXNpb24gMTcxMzAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkwMCw3ICs5MDAsNyBAQCB1aW50NjRf
dCBXZWJQYWdlUHJveHk6OmdvRm9yd2FyZCgpCiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAg
IHJldHVybiByZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKGZvcndhcmRJdGVtKTsKIAotICAg
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCA9IGdlbmVyYXRlTmF2aWdhdGlvbklEKCk7CisgICAgdWlu
dDY0X3QgbmF2aWdhdGlvbklEID0gbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCktPml0
ZW1Jc0luU2FtZURvY3VtZW50KCpmb3J3YXJkSXRlbSkgPyAwIDogZ2VuZXJhdGVOYXZpZ2F0aW9u
SUQoKTsKIAogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Gb3J3YXJk
KG5hdmlnYXRpb25JRCwgZm9yd2FyZEl0ZW0tPml0ZW1JRCgpKSwgbV9wYWdlSUQpOwogICAgIG1f
cHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdGFydCgpOwpAQCAtOTIxLDcgKzkyMSw3
IEBAIHVpbnQ2NF90IFdlYlBhZ2VQcm94eTo6Z29CYWNrKCkKICAgICBpZiAoIWlzVmFsaWQoKSkK
ICAgICAgICAgcmV0dXJuIHJlYXR0YWNoVG9XZWJQcm9jZXNzV2l0aEl0ZW0oYmFja0l0ZW0pOwog
Ci0gICAgdWludDY0X3QgbmF2aWdhdGlvbklEID0gZ2VuZXJhdGVOYXZpZ2F0aW9uSUQoKTsKKyAg
ICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQgPSBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0o
KS0+aXRlbUlzSW5TYW1lRG9jdW1lbnQoKmJhY2tJdGVtKSA/IDAgOiBnZW5lcmF0ZU5hdmlnYXRp
b25JRCgpOwogCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb0JhY2so
bmF2aWdhdGlvbklELCBiYWNrSXRlbS0+aXRlbUlEKCkpLCBtX3BhZ2VJRCk7CiAgICAgbV9wcm9j
ZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0YXJ0KCk7CkBAIC05MzgsNyArOTM4LDcgQEAg
dWludDY0X3QgV2ViUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdAogCiAgICAgbV9wYWdlTG9h
ZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0VVJMKHRyYW5zYWN0aW9uLCBpdGVtLT51cmwoKSk7
CiAKLSAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQgPSBnZW5lcmF0ZU5hdmlnYXRpb25JRCgpOwor
ICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCA9IG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRl
bSgpLT5pdGVtSXNJblNhbWVEb2N1bWVudCgqaXRlbSkgPyAwIDogZ2VuZXJhdGVOYXZpZ2F0aW9u
SUQoKTsKIAogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tG
b3J3YXJkSXRlbShuYXZpZ2F0aW9uSUQsIGl0ZW0tPml0ZW1JRCgpKSwgbV9wYWdlSUQpOwogICAg
IG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdGFydCgpOwo=
</data>
<flag name="review"
          id="259801"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>