<?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>62831</bug_id>
          
          <creation_ts>2011-06-16 15:55:38 -0700</creation_ts>
          <short_desc>[Chromium] Add WebDocument APIs for the functions moving from WebFrame</short_desc>
          <delta_ts>2011-06-22 17:39:28 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>422303</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-16 15:55:38 -0700</bug_when>
    <thetext>[Chromium] Add WebDocument APIs for the functions moving from WebFrame</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422305</commentid>
    <comment_count>1</comment_count>
      <attachid>97516</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-16 16:01:06 -0700</bug_when>
    <thetext>Created attachment 97516
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422764</commentid>
    <comment_count>2</comment_count>
      <attachid>97516</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-06-17 11:16:15 -0700</bug_when>
    <thetext>Comment on attachment 97516
Patch

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

&gt; Source/WebCore/dom/Document.cpp:3952
&gt; +    // FIXME: Why do only top-level frames have openSearchDescriptionURLs?

If this condition matters to Chromium, then I think we should move it to Chromium.
It definitely doesn&apos;t make sense here.

&gt; Source/WebCore/dom/Document.cpp:3956
&gt; +    // FIXME: Why do we need to wait for FrameStateComplete?

I don&apos;t know the history of this check, but if Chromium cares to know the loading state before querying this field,
then that also seems like something Chromium should do on its own.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422768</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-17 11:19:24 -0700</bug_when>
    <thetext>When I move the callers of the APIs over to the new location, I&apos;ll get to look at all of them and that will give us a good sense for whether / how to lift these restrictions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422781</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-06-17 11:26:33 -0700</bug_when>
    <thetext>OK... you might also consider keeping the restrictions in WebDocument.cpp since they seem at best a Chromium specific quirk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422783</commentid>
    <comment_count>5</comment_count>
      <attachid>97516</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-17 11:27:10 -0700</bug_when>
    <thetext>Comment on attachment 97516
Patch

Ok.  Will do before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425583</commentid>
    <comment_count>6</comment_count>
      <attachid>97516</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-22 14:20:40 -0700</bug_when>
    <thetext>Comment on attachment 97516
Patch

Chromium try job success.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425777</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-22 17:37:32 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 97516:

fast/filesystem/filesystem-uri-origin.html bug 63206 (author: adamk@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425781</commentid>
    <comment_count>8</comment_count>
      <attachid>97516</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-22 17:39:24 -0700</bug_when>
    <thetext>Comment on attachment 97516
Patch

Clearing flags on attachment: 97516

Committed r89504: &lt;http://trac.webkit.org/changeset/89504&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425782</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-22 17:39:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97516</attachid>
            <date>2011-06-16 16:01:06 -0700</date>
            <delta_ts>2011-06-22 17:39:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62831-20110616160105.patch</filename>
            <type>text/plain</type>
            <size>18331</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5MDc3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDYtMTYgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIEFkZCBXZWJEb2N1bWVudCBBUElzIGZvciB0aGUg
ZnVuY3Rpb25zIG1vdmluZyBmcm9tIFdlYkZyYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjgzMQorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpvcGVuU2VhcmNoRGVzY3JpcHRpb25VUkwp
OgorICAgICAgICAgICAgLSBUaGlzIGZ1bmN0aW9uIGV4aXN0cyB0byBzZXJ2aWNlIGEgQ2hyb21p
dW0gV2ViS2l0IEFQSSwgYnV0IGl0J3MKKyAgICAgICAgICAgICAgZ2VuZXJhbGx5IHB1cnBvc2Ug
YW5kIG1pZ2h0IGJlIHVzZWZ1bCB0byBvdGhlciBwb3J0cy4gIFRoZQorICAgICAgICAgICAgICBh
bGdvcml0aG0gaGFzIHNvbWUgc3RyYW5nZSBlYXJseSBleGl0cywgd2hpY2ggSSd2ZSBtYXJrZWQg
d2l0aAorICAgICAgICAgICAgICBGSVhNRSBjb21tZW50cy4KKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuaDoKKwogMjAxMS0wNi0xNiAgRGF3aXQgQWxlbWF5ZWh1ICA8YWRhd2l0QGtkZS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgQW50b25pbyBHb21lcy4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAkocmV2aXNpb24gODkwNjgpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTQ0LDYgKzM5NDQsMzcgQEAgU3RyaW5nIERvY3VtZW50
OjpxdWVyeUNvbW1hbmRWYWx1ZShjb25zdAogICAgIHJldHVybiBjb21tYW5kKHRoaXMsIGNvbW1h
bmROYW1lKS52YWx1ZSgpOwogfQogCitLVVJMIERvY3VtZW50OjpvcGVuU2VhcmNoRGVzY3JpcHRp
b25VUkwoKQoreworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBvcGVuU2VhcmNoTUlNRVR5
cGUgPSAiYXBwbGljYXRpb24vb3BlbnNlYXJjaGRlc2NyaXB0aW9uK3htbCI7CisgICAgc3RhdGlj
IGNvbnN0IGNoYXIqIGNvbnN0IG9wZW5TZWFyY2hSZWxhdGlvbiA9ICJzZWFyY2giOworCisgICAg
Ly8gRklYTUU6IFdoeSBkbyBvbmx5IHRvcC1sZXZlbCBmcmFtZXMgaGF2ZSBvcGVuU2VhcmNoRGVz
Y3JpcHRpb25VUkxzPworICAgIGlmICghZnJhbWUoKSB8fCBmcmFtZSgpLT50cmVlKCktPnBhcmVu
dCgpKQorICAgICAgICByZXR1cm4gS1VSTCgpOworCisgICAgLy8gRklYTUU6IFdoeSBkbyB3ZSBu
ZWVkIHRvIHdhaXQgZm9yIEZyYW1lU3RhdGVDb21wbGV0ZT8KKyAgICBpZiAoZnJhbWUoKS0+bG9h
ZGVyKCktPnN0YXRlKCkgIT0gRnJhbWVTdGF0ZUNvbXBsZXRlKQorICAgICAgICByZXR1cm4gS1VS
TCgpOworCisgICAgaWYgKCFoZWFkKCkpCisgICAgICAgIHJldHVybiBLVVJMKCk7CisKKyAgICBS
ZWZQdHI8SFRNTENvbGxlY3Rpb24+IGNoaWxkcmVuID0gaGVhZCgpLT5jaGlsZHJlbigpOworICAg
IGZvciAoTm9kZSogY2hpbGQgPSBjaGlsZHJlbi0+Zmlyc3RJdGVtKCk7IGNoaWxkOyBjaGlsZCA9
IGNoaWxkcmVuLT5uZXh0SXRlbSgpKSB7CisgICAgICAgIGlmICghY2hpbGQtPmlzSFRNTEVsZW1l
bnQoKSB8fCAhc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihjaGlsZCktPmhhc1RhZ05hbWUobGlu
a1RhZykpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgSFRNTExpbmtFbGVtZW50KiBs
aW5rRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxMaW5rRWxlbWVudCo+KGNoaWxkKTsKKyAgICAg
ICAgaWYgKCFlcXVhbElnbm9yaW5nQ2FzZShsaW5rRWxlbWVudC0+dHlwZSgpLCBvcGVuU2VhcmNo
TUlNRVR5cGUpIHx8ICFlcXVhbElnbm9yaW5nQ2FzZShsaW5rRWxlbWVudC0+cmVsKCksIG9wZW5T
ZWFyY2hSZWxhdGlvbikpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKGxpbmtF
bGVtZW50LT5ocmVmKCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IHJldHVybiBsaW5rRWxlbWVudC0+aHJlZigpOworICAgIH0KKworICAgIHJldHVybiBLVVJMKCk7
Cit9CisKICNpZiBFTkFCTEUoWFNMVCkKIAogdm9pZCBEb2N1bWVudDo6YXBwbHlYU0xUcmFuc2Zv
cm0oUHJvY2Vzc2luZ0luc3RydWN0aW9uKiBwaSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCShy
ZXZpc2lvbiA4OTA2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC04NjAsNyArODYwLDkgQEAgcHVibGljOgogICAgIGJvb2wgcXVlcnlDb21tYW5k
U3RhdGUoY29uc3QgU3RyaW5nJiBjb21tYW5kKTsKICAgICBib29sIHF1ZXJ5Q29tbWFuZFN1cHBv
cnRlZChjb25zdCBTdHJpbmcmIGNvbW1hbmQpOwogICAgIFN0cmluZyBxdWVyeUNvbW1hbmRWYWx1
ZShjb25zdCBTdHJpbmcmIGNvbW1hbmQpOwotICAgIAorCisgICAgS1VSTCBvcGVuU2VhcmNoRGVz
Y3JpcHRpb25VUkwoKTsKKwogICAgIC8vIGRlc2lnbk1vZGUgc3VwcG9ydAogICAgIGVudW0gSW5o
ZXJpdGVkQm9vbCB7IG9mZiA9IGZhbHNlLCBvbiA9IHRydWUsIGluaGVyaXQgfTsgICAgCiAgICAg
dm9pZCBzZXREZXNpZ25Nb2RlKEluaGVyaXRlZEJvb2wgdmFsdWUpOwpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg5MDc3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MyBAQAorMjAxMS0wNi0xNiAg
QWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRkIFdlYkRvY3VtZW50IEFQSXMg
Zm9yIHRoZSBmdW5jdGlvbnMgbW92aW5nIGZyb20gV2ViRnJhbWUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyODMxCisKKyAgICAgICAgVGhlIG5leHQg
cGhhc2Ugd2lsbCBiZSB0byBjaGFuZ2UgYWxsIHRoZSBjYWxsZXJzIGFuZCB0aGVuIHJlbW92ZSBh
bGwKKyAgICAgICAgdGhlIGNvZGUgaW5zaWRlIHRoZSBpZmRlZi4KKworICAgICAgICAqIHB1Ymxp
Yy9XZWJEb2N1bWVudC5oOgorICAgICAgICAgICAgLSBBZGQgbmV3IEFQSXMuCisgICAgICAgICog
cHVibGljL1dlYkZyYW1lLmg6CisgICAgICAgICAgICAtIFRoZXNlIHR3byBBUElzIHdlcmUgdG9v
IGRpc2d1c3RpbmcuICBJIGNvdWxkIG5vdCwgaW4gZ29vZAorICAgICAgICAgICAgICBjb25zY2ll
bmNlLCB0b3VjaCB0aGVtLgorICAgICAgICAqIHB1YmxpYy9XZWJTZWN1cml0eU9yaWdpbi5oOgor
ICAgICAgICAgICAgLSBUdXJucyBvdXQgdGhpcyBBUEkgaXMgc3VwcG9zZWQgdG8gYmUgb24gV2Vi
U2VjdXJpdHlPcmlnaW4sIG5vdAorICAgICAgICAgICAgICBXZWJEb2N1bWVudC4KKyAgICAgICAg
KiBzcmMvV2ViRG9jdW1lbnQuY3BwOgorICAgICAgICAgICAgLSBJbXBsZW1lbnQgdGhlIEFQSXMu
CisgICAgICAgIChXZWJLaXQ6OldlYkRvY3VtZW50Ojp1cmwpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJEb2N1bWVudDo6c2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJEb2N1bWVu
dDo6ZW5jb2RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJEb2N1bWVudDo6b3BlblNlYXJjaERl
c2NyaXB0aW9uVVJMKToKKyAgICAgICAgKFdlYktpdDo6V2ViRG9jdW1lbnQ6OmZvcm1zKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRG9jdW1lbnQ6Omluc2VydFN0eWxlVGV4dCk6CisgICAgICAgICog
c3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAgICAgICAgICAtIENoYW5nZSB0aGVzZSBpbXBsZW1l
bnRzIHRvIGp1c3QgYmUgc3R1YnMgdGhhdCBjYWxsIGludG8gdGhlIHJlYWwKKyAgICAgICAgICAg
ICAgaW1wbGVtZW50YXRpb25zIGluIFdlYkRvY3VtZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJG
cmFtZUltcGw6OnVybCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6b3BlblNlYXJj
aERlc2NyaXB0aW9uVVJMKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjplbmNvZGlu
Zyk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6Zm9ybXMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUltcGw6OnNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
RnJhbWVJbXBsOjpncmFudFVuaXZlcnNhbEFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkZy
YW1lSW1wbDo6aW5zZXJ0U3R5bGVUZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBs
Ojpjb250ZW50QXNNYXJrdXApOgorICAgICAgICAqIHNyYy9XZWJTZWN1cml0eU9yaWdpbi5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luOjpncmFudFVuaXZlcnNhbEFjY2Vz
cyk6CisKIDIwMTEtMDYtMTYgIFNhaWxlc2ggQWdyYXdhbCAgPHNhaWxAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IE1paGFpIFBhcnBhcml0YS4KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkRvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRG9jdW1lbnQuaAkocmV2aXNpb24gODkwNjgpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEb2N1bWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSw3ICszMSw5IEBACiAjaWZuZGVmIFdlYkRvY3VtZW50X2gKICNkZWZpbmUgV2ViRG9j
dW1lbnRfaAogCisjaW5jbHVkZSAiV2ViRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJOb2Rl
LmgiCisjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIKIAogI2lmIFdFQktJVF9JTVBMRU1F
TlRBVElPTgogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjQsNiArNjYsMTUgQEAgcHVibGljOgog
ICAgIH0KICAgICB2b2lkIGFzc2lnbihjb25zdCBXZWJEb2N1bWVudCYgZSkgeyBXZWJOb2RlOjph
c3NpZ24oZSk7IH0KIAorICAgIFdFQktJVF9BUEkgV2ViVVJMIHVybCgpIGNvbnN0OworICAgIC8v
IE5vdGU6IFNlY3VyaXR5IGNoZWNrcyBzaG91bGQgdXNlIHRoZSBzZWN1cml0eU9yaWdpbigpLCBu
b3QgdXJsKCkuCisgICAgV0VCS0lUX0FQSSBXZWJTZWN1cml0eU9yaWdpbiBzZWN1cml0eU9yaWdp
bigpIGNvbnN0OworCisgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgZW5jb2RpbmcoKSBjb25zdDsK
KworICAgIC8vIFRoZSB1cmwgb2YgdGhlIE9wZW5TZWFyY2ggRGVzcmlwdGlvbiBEb2N1bWVudCAo
aWYgYW55KS4KKyAgICBXRUJLSVRfQVBJIFdlYlVSTCBvcGVuU2VhcmNoRGVzY3JpcHRpb25VUkwo
KSBjb25zdDsKKwogICAgIC8vIFJldHVybnMgdGhlIGZyYW1lIHRoZSBkb2N1bWVudCBiZWxvbmdz
IHRvIG9yIDAgaWYgdGhlIGRvY3VtZW50IGlzIGZyYW1lbGVzcy4KICAgICBXRUJLSVRfQVBJIFdl
YkZyYW1lKiBmcmFtZSgpIGNvbnN0OwogICAgIFdFQktJVF9BUEkgYm9vbCBpc0hUTUxEb2N1bWVu
dCgpIGNvbnN0OwpAQCAtNzYsMTIgKzg3LDIwIEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIFdl
YkVsZW1lbnQgaGVhZCgpOwogICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIHRpdGxlKCkgY29uc3Q7
CiAgICAgV0VCS0lUX0FQSSBXZWJOb2RlQ29sbGVjdGlvbiBhbGwoKTsKKyAgICBXRUJLSVRfQVBJ
IHZvaWQgZm9ybXMoV2ViVmVjdG9yPFdlYkZvcm1FbGVtZW50PiYpIGNvbnN0OwogICAgIFdFQktJ
VF9BUEkgV2ViVVJMIGNvbXBsZXRlVVJMKGNvbnN0IFdlYlN0cmluZyYpIGNvbnN0OwogICAgIFdF
QktJVF9BUEkgV2ViRWxlbWVudCBnZXRFbGVtZW50QnlJZChjb25zdCBXZWJTdHJpbmcmKSBjb25z
dDsKICAgICBXRUJLSVRfQVBJIFdlYk5vZGUgZm9jdXNlZE5vZGUoKSBjb25zdDsKICAgICBXRUJL
SVRfQVBJIFdlYkRvY3VtZW50VHlwZSBkb2N0eXBlKCkgY29uc3Q7CiAgICAgV0VCS0lUX0FQSSBX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0IGFjY2Vzc2liaWxpdHlPYmplY3QoKSBjb25zdDsKIAorICAg
IC8vIEluc2VydCB0aGUgZ2l2ZW4gdGV4dCBhcyBhIFNUWUxFIGVsZW1lbnQgYXQgdGhlIGJlZ2lu
bmluZyBvZiB0aGUKKyAgICAvLyBkb2N1bWVudC4gfGVsZW1lbnRJZHwgY2FuIGJlIGVtcHR5LCBi
dXQgaWYgc3BlY2lmaWVkIHRoZW4gaXQgaXMgdXNlZAorICAgIC8vIGFzIHRoZSBpZCBmb3IgdGhl
IG5ld2x5IGluc2VydGVkIGVsZW1lbnQgKHJlcGxhY2luZyBhbiBleGlzdGluZyBvbmUKKyAgICAv
LyB3aXRoIHRoZSBzYW1lIGlkLCBpZiBhbnkpLgorICAgIFdFQktJVF9BUEkgYm9vbCBpbnNlcnRT
dHlsZVRleHQoY29uc3QgV2ViU3RyaW5nJiBzdHlsZVRleHQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBXZWJTdHJpbmcmIGVsZW1lbnRJZCk7CisKICNpZiBXRUJL
SVRfSU1QTEVNRU5UQVRJT04KICAgICBXZWJEb2N1bWVudChjb25zdCBXVEY6OlBhc3NSZWZQdHI8
V2ViQ29yZTo6RG9jdW1lbnQ+Jik7CiAgICAgV2ViRG9jdW1lbnQmIG9wZXJhdG9yPShjb25zdCBX
VEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnQ+Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgJKHJldmlzaW9uIDg5MDY4KQorKysgU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtNTc1LDcg
KzU3NSw2IEBAIHB1YmxpYzoKIAogICAgIC8vIFV0aWxpdHkgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0jaWYgIWRlZmluZWQo
V0VCS0lUX0ZSQU1FX1RPX0RPQ1VNRU5UX0FQSV9NT1ZFKQogICAgIC8vIFJldHVybnMgdGhlIGNv
bnRlbnRzIG9mIHRoaXMgZnJhbWUgYXMgYSBzdHJpbmcuICBJZiB0aGUgdGV4dCBpcwogICAgIC8v
IGxvbmdlciB0aGFuIG1heENoYXJzLCBpdCB3aWxsIGJlIGNsaXBwZWQgdG8gdGhhdCBsZW5ndGgu
ICBXQVJOSU5HOgogICAgIC8vIFRoaXMgZnVuY3Rpb24gbWF5IGJlIHNsb3cgZGVwZW5kaW5nIG9u
IHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycwpAQCAtNTg5LDcgKzU4OCw2IEBAIHB1YmxpYzoKICAg
ICAvLyBSZXR1cm5zIEhUTUwgdGV4dCBmb3IgdGhlIGNvbnRlbnRzIG9mIHRoaXMgZnJhbWUuICBU
aGlzIGlzIGdlbmVyYXRlZAogICAgIC8vIGZyb20gdGhlIERPTS4KICAgICB2aXJ0dWFsIFdlYlN0
cmluZyBjb250ZW50QXNNYXJrdXAoKSBjb25zdCA9IDA7Ci0jZW5kaWYKIAogICAgIC8vIFJldHVy
bnMgYSB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSByZW5kZXIgdHJlZS4gIFRoaXMgbWV0aG9k
IGlzIHVzZWQKICAgICAvLyB0byBzdXBwb3J0IGxheW91dCB0ZXN0cy4KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNlY3VyaXR5T3JpZ2luLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2VjdXJpdHlPcmlnaW4uaAkocmV2aXNp
b24gODkwNjgpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZWN1cml0eU9y
aWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC05Niw2ICs5NiwxMCBAQCBwdWJsaWM6CiAgICAgLy8g
cGFzc3dvcmRzIHN0b3JlZCBpbiBwYXNzd29yZCBtYW5hZ2VyLgogICAgIFdFQktJVF9BUEkgYm9v
bCBjYW5BY2Nlc3NQYXNzd29yZE1hbmFnZXIoKSBjb25zdDsKIAorICAgIC8vIFRoaXMgZ3JhbnRz
IHRoZSBhc3NvY2lhdGVkIGRvY3VtZW50IGFjY2VzcyB0byBhbGwgc2VjdXJpdHkKKyAgICAvLyBv
cmlnaW5zIChpbmNsdWRpbmcgZmlsZSBVUkxzKS4gVXNlIHdpdGggY2FyZS4KKyAgICBXRUJLSVRf
QVBJIHZvaWQgZ3JhbnRVbml2ZXJzYWxBY2Nlc3MoKTsKKwogI2lmIFdFQktJVF9JTVBMRU1FTlRB
VElPTgogICAgIFdlYlNlY3VyaXR5T3JpZ2luKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4mKTsKICAgICBXZWJTZWN1cml0eU9yaWdpbiYgb3BlcmF0b3I9KGNv
bnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEb2N1bWVudC5jcHAJKHJldmlzaW9uIDg5MDY4
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRG9jdW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMywxMyArMzMsMTYgQEAKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxBbGxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk5vZGVMaXN0LmgiCiAKICNpbmNsdWRlICJXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgiCkBAIC01Niw2ICs1OSwyOCBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK1dlYlVSTCBXZWJEb2N1bWVudDo6dXJs
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RVbndyYXA8RG9jdW1lbnQ+KCktPnVybCgpOwor
fQorCitXZWJTZWN1cml0eU9yaWdpbiBXZWJEb2N1bWVudDo6c2VjdXJpdHlPcmlnaW4oKSBjb25z
dCAKK3sKKyAgICBpZiAoIWNvbnN0VW53cmFwPERvY3VtZW50PigpKQorICAgICAgICByZXR1cm4g
V2ViU2VjdXJpdHlPcmlnaW4oKTsKKyAgICByZXR1cm4gV2ViU2VjdXJpdHlPcmlnaW4oY29uc3RV
bndyYXA8RG9jdW1lbnQ+KCktPnNlY3VyaXR5T3JpZ2luKCkpOworfQorCitXZWJTdHJpbmcgV2Vi
RG9jdW1lbnQ6OmVuY29kaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RVbndyYXA8RG9j
dW1lbnQ+KCktPmxvYWRlcigpLT53cml0ZXIoKS0+ZW5jb2RpbmcoKTsKK30KKworV2ViVVJMIFdl
YkRvY3VtZW50OjpvcGVuU2VhcmNoRGVzY3JpcHRpb25VUkwoKSBjb25zdAoreworICAgIHJldHVy
biBjb25zdF9jYXN0PERvY3VtZW50Kj4oY29uc3RVbndyYXA8RG9jdW1lbnQ+KCkpLT5vcGVuU2Vh
cmNoRGVzY3JpcHRpb25VUkwoKTsKK30KKwogV2ViRnJhbWUqIFdlYkRvY3VtZW50OjpmcmFtZSgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIFdlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKGNvbnN0VW53cmFw
PERvY3VtZW50PigpLT5mcmFtZSgpKTsKQEAgLTExMSw2ICsxMzYsMjEgQEAgV2ViTm9kZUNvbGxl
Y3Rpb24gV2ViRG9jdW1lbnQ6OmFsbCgpCiAgICAgcmV0dXJuIFdlYk5vZGVDb2xsZWN0aW9uKHVu
d3JhcDxEb2N1bWVudD4oKS0+YWxsKCkpOwogfQogCit2b2lkIFdlYkRvY3VtZW50Ojpmb3JtcyhX
ZWJWZWN0b3I8V2ViRm9ybUVsZW1lbnQ+JiByZXN1bHRzKSBjb25zdAoreworICAgIFJlZlB0cjxI
VE1MQ29sbGVjdGlvbj4gZm9ybXMgPSBjb25zdF9jYXN0PERvY3VtZW50Kj4oY29uc3RVbndyYXA8
RG9jdW1lbnQ+KCkpLT5mb3JtcygpOworICAgIHNpemVfdCBzb3VyY2VMZW5ndGggPSBmb3Jtcy0+
bGVuZ3RoKCk7CisgICAgVmVjdG9yPFdlYkZvcm1FbGVtZW50PiB0ZW1wOworICAgIHRlbXAucmVz
ZXJ2ZUNhcGFjaXR5KHNvdXJjZUxlbmd0aCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBz
b3VyY2VMZW5ndGg7ICsraSkgeworICAgICAgICBOb2RlKiBub2RlID0gZm9ybXMtPml0ZW0oaSk7
CisgICAgICAgIC8vIFN0cmFuZ2UgYnV0IHRydWUsIHNvbWV0aW1lcyBub2RlIGNhbiBiZSAwLgor
ICAgICAgICBpZiAobm9kZSAmJiBub2RlLT5pc0hUTUxFbGVtZW50KCkpCisgICAgICAgICAgICB0
ZW1wLmFwcGVuZChXZWJGb3JtRWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRm9ybUVsZW1lbnQqPihu
b2RlKSkpOworICAgIH0KKyAgICByZXN1bHRzLmFzc2lnbih0ZW1wKTsKK30KKwogV2ViVVJMIFdl
YkRvY3VtZW50Ojpjb21wbGV0ZVVSTChjb25zdCBXZWJTdHJpbmcmIHBhcnRpYWxVUkwpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIGNvbnN0VW53cmFwPERvY3VtZW50PigpLT5jb21wbGV0ZVVSTChwYXJ0
aWFsVVJMKTsKQEAgLTEzOCw2ICsxNzgsMzUgQEAgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCBXZWJE
b2N1bWVudDo6YWNjZQogICAgICAgICBkb2N1bWVudC0+YXhPYmplY3RDYWNoZSgpLT5nZXRPckNy
ZWF0ZShkb2N1bWVudC0+cmVuZGVyZXIoKSkpOwogfQogCitib29sIFdlYkRvY3VtZW50OjppbnNl
cnRTdHlsZVRleHQoY29uc3QgV2ViU3RyaW5nJiBzdHlsZVRleHQsIGNvbnN0IFdlYlN0cmluZyYg
ZWxlbWVudElkKQoreworICAgIFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQgPSB1bndyYXA8RG9j
dW1lbnQ+KCk7CisgICAgUmVmUHRyPEVsZW1lbnQ+IGRvY3VtZW50RWxlbWVudCA9IGRvY3VtZW50
LT5kb2N1bWVudEVsZW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50RWxlbWVudCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgRXhjZXB0aW9uQ29kZSBlcnIgPSAwOworCisgICAgaWYgKCFl
bGVtZW50SWQuaXNFbXB0eSgpKSB7CisgICAgICAgIEVsZW1lbnQqIG9sZEVsZW1lbnQgPSBkb2N1
bWVudC0+Z2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgaWYgKG9sZEVsZW1lbnQp
IHsKKyAgICAgICAgICAgIE5vZGUqIHBhcmVudCA9IG9sZEVsZW1lbnQtPnBhcmVudE5vZGUoKTsK
KyAgICAgICAgICAgIGlmICghcGFyZW50KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgICAgIHBhcmVudC0+cmVtb3ZlQ2hpbGQob2xkRWxlbWVudCwgZXJyKTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIFJlZlB0cjxFbGVtZW50PiBzdHlsZXNoZWV0ID0gZG9jdW1lbnQt
PmNyZWF0ZUVsZW1lbnQoSFRNTE5hbWVzOjpzdHlsZVRhZywgZmFsc2UpOworICAgIGlmICghZWxl
bWVudElkLmlzRW1wdHkoKSkKKyAgICAgICAgc3R5bGVzaGVldC0+c2V0QXR0cmlidXRlKEhUTUxO
YW1lczo6aWRBdHRyLCBlbGVtZW50SWQpOworICAgIHN0eWxlc2hlZXQtPnNldFRleHRDb250ZW50
KHN0eWxlVGV4dCwgZXJyKTsKKyAgICBBU1NFUlQoIWVycik7CisgICAgYm9vbCBzdWNjZXNzID0g
ZG9jdW1lbnRFbGVtZW50LT5pbnNlcnRCZWZvcmUoc3R5bGVzaGVldCwgZG9jdW1lbnRFbGVtZW50
LT5maXJzdENoaWxkKCksIGVycik7CisgICAgQVNTRVJUKHN1Y2Nlc3MpOworICAgIHJldHVybiBz
dWNjZXNzOworfQorCiBXZWJEb2N1bWVudDo6V2ViRG9jdW1lbnQoY29uc3QgUGFzc1JlZlB0cjxE
b2N1bWVudD4mIGVsZW0pCiAgICAgOiBXZWJOb2RlKGVsZW0pCiB7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHJldmlzaW9uIDg5MDY4KQorKysg
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTg3LDkgKzE4Nyw2IEBAIHN0YXRpYyBpbnQgZnJhbWVDb3VudCA9IDA7CiAvLyBLZXkg
Zm9yIGEgU3RhdHNDb3VudGVyIHRyYWNraW5nIGhvdyBtYW55IFdlYkZyYW1lcyBhcmUgYWN0aXZl
Lgogc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHdlYkZyYW1lQWN0aXZlQ291bnQgPSAiV2ViRnJh
bWVBY3RpdmVDb3VudCI7CiAKLXN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBvc2RUeXBlID0gImFw
cGxpY2F0aW9uL29wZW5zZWFyY2hkZXNjcmlwdGlvbit4bWwiOwotc3RhdGljIGNvbnN0IGNoYXIq
IGNvbnN0IG9zZFJlbCA9ICJzZWFyY2giOwotCiAvLyBCYWNrZW5kIGZvciBjb250ZW50QXNQbGFp
blRleHQsIHRoaXMgaXMgYSByZWN1cnNpdmUgZnVuY3Rpb24gdGhhdCBnZXRzCiAvLyB0aGUgdGV4
dCBmb3IgdGhlIGN1cnJlbnQgZnJhbWUgYW5kIGFsbCBvZiBpdHMgc3ViZnJhbWVzLiBJdCB3aWxs
IGFwcGVuZAogLy8gdGhlIHRleHQgb2YgZWFjaCBmcmFtZSBpbiB0dXJuIHRvIHRoZSB8b3V0cHV0
fCB1cCB0byB8bWF4Q2hhcnN8IGxlbmd0aC4KQEAgLTUyMSw3ICs1MTgsNyBAQCBsb25nIGxvbmcg
V2ViRnJhbWVJbXBsOjppZGVudGlmaWVyKCkgY29uCiAjaWYgIWRlZmluZWQoV0VCS0lUX0ZSQU1F
X1RPX0RPQ1VNRU5UX0FQSV9NT1ZFKQogV2ViVVJMIFdlYkZyYW1lSW1wbDo6dXJsKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCk7CisgICAgcmV0dXJuIGRv
Y3VtZW50KCkudXJsKCk7CiB9CiAjZW5kaWYKIApAQCAtNTM4LDI5ICs1MzUsMTIgQEAgV2ViVmVj
dG9yPFdlYkljb25VUkw+IFdlYkZyYW1lSW1wbDo6aWNvbgogI2lmICFkZWZpbmVkKFdFQktJVF9G
UkFNRV9UT19ET0NVTUVOVF9BUElfTU9WRSkKIFdlYlVSTCBXZWJGcmFtZUltcGw6Om9wZW5TZWFy
Y2hEZXNjcmlwdGlvblVSTCgpIGNvbnN0CiB7Ci0gICAgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVy
ID0gbV9mcmFtZS0+bG9hZGVyKCk7Ci0gICAgaWYgKGZyYW1lTG9hZGVyLT5zdGF0ZSgpID09IEZy
YW1lU3RhdGVDb21wbGV0ZQotICAgICAgICAmJiBtX2ZyYW1lLT5kb2N1bWVudCgpICYmIG1fZnJh
bWUtPmRvY3VtZW50KCktPmhlYWQoKQotICAgICAgICAmJiAhbV9mcmFtZS0+dHJlZSgpLT5wYXJl
bnQoKSkgewotICAgICAgICBIVE1MSGVhZEVsZW1lbnQqIGhlYWQgPSBtX2ZyYW1lLT5kb2N1bWVu
dCgpLT5oZWFkKCk7Ci0gICAgICAgIGlmIChoZWFkKSB7Ci0gICAgICAgICAgICBSZWZQdHI8SFRN
TENvbGxlY3Rpb24+IGNoaWxkcmVuID0gaGVhZC0+Y2hpbGRyZW4oKTsKLSAgICAgICAgICAgIGZv
ciAoTm9kZSogY2hpbGQgPSBjaGlsZHJlbi0+Zmlyc3RJdGVtKCk7IGNoaWxkOyBjaGlsZCA9IGNo
aWxkcmVuLT5uZXh0SXRlbSgpKSB7Ci0gICAgICAgICAgICAgICAgSFRNTExpbmtFbGVtZW50KiBs
aW5rRWxlbWVudCA9IHRvSFRNTExpbmtFbGVtZW50KGNoaWxkKTsKLSAgICAgICAgICAgICAgICBp
ZiAobGlua0VsZW1lbnQKLSAgICAgICAgICAgICAgICAgICAgJiYgbGlua0VsZW1lbnQtPnR5cGUo
KSA9PSBvc2RUeXBlCi0gICAgICAgICAgICAgICAgICAgICYmIGxpbmtFbGVtZW50LT5yZWwoKSA9
PSBvc2RSZWwKLSAgICAgICAgICAgICAgICAgICAgJiYgIWxpbmtFbGVtZW50LT5ocmVmKCkuaXNF
bXB0eSgpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGlua0VsZW1lbnQtPmhyZWYoKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gV2ViVVJMKCk7Cisg
ICAgcmV0dXJuIGRvY3VtZW50KCkub3BlblNlYXJjaERlc2NyaXB0aW9uVVJMKCk7CiB9CiAKIFdl
YlN0cmluZyBXZWJGcmFtZUltcGw6OmVuY29kaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZnJh
bWUoKS0+ZG9jdW1lbnQoKS0+bG9hZGVyKCktPndyaXRlcigpLT5lbmNvZGluZygpOworICAgIHJl
dHVybiBkb2N1bWVudCgpLmVuY29kaW5nKCk7CiB9CiAjZW5kaWYKIApAQCAtNzA5LDIwICs2ODks
NyBAQCBXZWJEb2N1bWVudCBXZWJGcmFtZUltcGw6OmRvY3VtZW50KCkgY29uCiAjaWYgIWRlZmlu
ZWQoV0VCS0lUX0ZSQU1FX1RPX0RPQ1VNRU5UX0FQSV9NT1ZFKQogdm9pZCBXZWJGcmFtZUltcGw6
OmZvcm1zKFdlYlZlY3RvcjxXZWJGb3JtRWxlbWVudD4mIHJlc3VsdHMpIGNvbnN0CiB7Ci0gICAg
aWYgKCFtX2ZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZWZQdHI8SFRNTENvbGxlY3Rp
b24+IGZvcm1zID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Zm9ybXMoKTsKLSAgICBzaXplX3Qgc291
cmNlTGVuZ3RoID0gZm9ybXMtPmxlbmd0aCgpOwotICAgIFZlY3RvcjxXZWJGb3JtRWxlbWVudD4g
dGVtcDsKLSAgICB0ZW1wLnJlc2VydmVDYXBhY2l0eShzb3VyY2VMZW5ndGgpOwotICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgc291cmNlTGVuZ3RoOyArK2kpIHsKLSAgICAgICAgTm9kZSogbm9k
ZSA9IGZvcm1zLT5pdGVtKGkpOwotICAgICAgICAvLyBTdHJhbmdlIGJ1dCB0cnVlLCBzb21ldGlt
ZXMgbm9kZSBjYW4gYmUgMC4KLSAgICAgICAgaWYgKG5vZGUgJiYgbm9kZS0+aXNIVE1MRWxlbWVu
dCgpKQotICAgICAgICAgICAgdGVtcC5hcHBlbmQoV2ViRm9ybUVsZW1lbnQoc3RhdGljX2Nhc3Q8
SFRNTEZvcm1FbGVtZW50Kj4obm9kZSkpKTsKLSAgICB9Ci0gICAgcmVzdWx0cy5hc3NpZ24odGVt
cCk7CisgICAgZG9jdW1lbnQoKS5mb3JtcyhyZXN1bHRzKTsKIH0KICNlbmRpZgogCkBAIC03NDIs
MTcgKzcwOSwxMiBAQCBXZWJQZXJmb3JtYW5jZSBXZWJGcmFtZUltcGw6OnBlcmZvcm1hbmNlCiAj
aWYgIWRlZmluZWQoV0VCS0lUX0ZSQU1FX1RPX0RPQ1VNRU5UX0FQSV9NT1ZFKQogV2ViU2VjdXJp
dHlPcmlnaW4gV2ViRnJhbWVJbXBsOjpzZWN1cml0eU9yaWdpbigpIGNvbnN0CiB7Ci0gICAgaWYg
KCFtX2ZyYW1lIHx8ICFtX2ZyYW1lLT5kb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gV2ViU2Vj
dXJpdHlPcmlnaW4oKTsKLQotICAgIHJldHVybiBXZWJTZWN1cml0eU9yaWdpbihtX2ZyYW1lLT5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKTsKKyAgICByZXR1cm4gZG9jdW1lbnQoKS5zZWN1
cml0eU9yaWdpbigpOwogfQogCiB2b2lkIFdlYkZyYW1lSW1wbDo6Z3JhbnRVbml2ZXJzYWxBY2Nl
c3MoKQogewotICAgIEFTU0VSVChtX2ZyYW1lICYmIG1fZnJhbWUtPmRvY3VtZW50KCkpOwotICAg
IGlmIChtX2ZyYW1lICYmIG1fZnJhbWUtPmRvY3VtZW50KCkpCi0gICAgICAgIG1fZnJhbWUtPmRv
Y3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmdyYW50VW5pdmVyc2FsQWNjZXNzKCk7CisgICAg
ZG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigpLmdyYW50VW5pdmVyc2FsQWNjZXNzKCk7CiB9CiAj
ZW5kaWYKIApAQCAtODg2LDM3ICs4NDgsOSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gV2ViRnJh
bWVJbXBsOjpjcmVhCiAjZW5kaWYKIAogI2lmICFkZWZpbmVkKFdFQktJVF9GUkFNRV9UT19ET0NV
TUVOVF9BUElfTU9WRSkKLWJvb2wgV2ViRnJhbWVJbXBsOjppbnNlcnRTdHlsZVRleHQoCi0gICAg
Y29uc3QgV2ViU3RyaW5nJiBjc3MsIGNvbnN0IFdlYlN0cmluZyYgaWQpIHsKLSAgICBEb2N1bWVu
dCogZG9jdW1lbnQgPSBmcmFtZSgpLT5kb2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBFbGVtZW50KiBkb2N1bWVudEVsZW1lbnQgPSBkb2N1
bWVudC0+ZG9jdW1lbnRFbGVtZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVudEVsZW1lbnQpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIEV4Y2VwdGlvbkNvZGUgZXJyID0gMDsKLQotICAgIGlm
ICghaWQuaXNFbXB0eSgpKSB7Ci0gICAgICAgIEVsZW1lbnQqIG9sZEVsZW1lbnQgPSBkb2N1bWVu
dC0+Z2V0RWxlbWVudEJ5SWQoaWQpOwotICAgICAgICBpZiAob2xkRWxlbWVudCkgewotICAgICAg
ICAgICAgTm9kZSogcGFyZW50ID0gb2xkRWxlbWVudC0+cGFyZW50Tm9kZSgpOwotICAgICAgICAg
ICAgaWYgKCFwYXJlbnQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAg
ICAgcGFyZW50LT5yZW1vdmVDaGlsZChvbGRFbGVtZW50LCBlcnIpOwotICAgICAgICB9Ci0gICAg
fQotCi0gICAgUmVmUHRyPEVsZW1lbnQ+IHN0eWxlc2hlZXQgPSBkb2N1bWVudC0+Y3JlYXRlRWxl
bWVudCgKLSAgICAgICAgSFRNTE5hbWVzOjpzdHlsZVRhZywgZmFsc2UpOwotICAgIGlmICghaWQu
aXNFbXB0eSgpKQotICAgICAgICBzdHlsZXNoZWV0LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpp
ZEF0dHIsIGlkKTsKLSAgICBzdHlsZXNoZWV0LT5zZXRUZXh0Q29udGVudChjc3MsIGVycik7Ci0g
ICAgQVNTRVJUKCFlcnIpOwotICAgIE5vZGUqIGZpcnN0ID0gZG9jdW1lbnRFbGVtZW50LT5maXJz
dENoaWxkKCk7Ci0gICAgYm9vbCBzdWNjZXNzID0gZG9jdW1lbnRFbGVtZW50LT5pbnNlcnRCZWZv
cmUoc3R5bGVzaGVldCwgZmlyc3QsIGVycik7Ci0gICAgQVNTRVJUKHN1Y2Nlc3MpOwotICAgIHJl
dHVybiBzdWNjZXNzOworYm9vbCBXZWJGcmFtZUltcGw6Omluc2VydFN0eWxlVGV4dChjb25zdCBX
ZWJTdHJpbmcmIHN0eWxlVGV4dCwgY29uc3QgV2ViU3RyaW5nJiBlbGVtZW50SWQpCit7CisgICAg
cmV0dXJuIGRvY3VtZW50KCkuaW5zZXJ0U3R5bGVUZXh0KHN0eWxlVGV4dCwgZWxlbWVudElkKTsK
IH0KICNlbmRpZgogCkBAIC0xODE2LDcgKzE3NTAsNiBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6cmVz
ZXRNYXRjaENvdW50KCkKICAgICBtX2ZyYW1lc1Njb3BpbmdDb3VudCA9IDA7CiB9CiAKLSNpZiAh
ZGVmaW5lZChXRUJLSVRfRlJBTUVfVE9fRE9DVU1FTlRfQVBJX01PVkUpCiBXZWJTdHJpbmcgV2Vi
RnJhbWVJbXBsOjpjb250ZW50QXNUZXh0KHNpemVfdCBtYXhDaGFycykgY29uc3QKIHsKICAgICBp
ZiAoIW1fZnJhbWUpCkBAIC0xODMxLDcgKzE3NjQsNiBAQCBXZWJTdHJpbmcgV2ViRnJhbWVJbXBs
Ojpjb250ZW50QXNNYXJrdXAoCiB7CiAgICAgcmV0dXJuIGNyZWF0ZUZ1bGxNYXJrdXAobV9mcmFt
ZS0+ZG9jdW1lbnQoKSk7CiB9Ci0jZW5kaWYKIAogV2ViU3RyaW5nIFdlYkZyYW1lSW1wbDo6cmVu
ZGVyVHJlZUFzVGV4dChib29sIHNob3dEZWJ1Z0luZm8pIGNvbnN0CiB7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZWN1cml0eU9yaWdpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2VjdXJpdHlPcmlnaW4uY3BwCShyZXZpc2lv
biA4OTA2OCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlY3VyaXR5T3JpZ2lu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI3LDYgKzEyNywxMiBAQCBib29sIFdlYlNlY3VyaXR5
T3JpZ2luOjpjYW5BY2Nlc3NQYXNzd29yCiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+Y2FuQWNjZXNz
UGFzc3dvcmRNYW5hZ2VyKCk7CiB9CiAKK3ZvaWQgV2ViU2VjdXJpdHlPcmlnaW46OmdyYW50VW5p
dmVyc2FsQWNjZXNzKCkKK3sKKyAgICBBU1NFUlQobV9wcml2YXRlKTsKKyAgICBtX3ByaXZhdGUt
PmdyYW50VW5pdmVyc2FsQWNjZXNzKCk7Cit9CisKIFdlYlNlY3VyaXR5T3JpZ2luOjpXZWJTZWN1
cml0eU9yaWdpbihjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiBvcmlnaW4pCiAgICAgOiBtX3ByaXZhdGUoc3RhdGljX2Nhc3Q8V2ViU2VjdXJpdHlPcmlnaW5Q
cml2YXRlKj4ob3JpZ2luLnJlbGVhc2VSZWYoKSkpCiB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>