<?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>32938</bug_id>
          
          <creation_ts>2009-12-25 11:52:49 -0800</creation_ts>
          <short_desc>Cleanup: XSSAuditor passes too many parameters to XSSAuditor::findInRequest</short_desc>
          <delta_ts>2009-12-25 15:33:24 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>XSSAuditor</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>abarth</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>174884</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-25 11:52:49 -0800</bug_when>
    <thetext>Extracted from the changes in the patch for bug #27895.

We should clean up the XSSAuditor so that we don&apos;t need to pass as many parameters around.

Currently, we pass various parameters through to XSSAuditor::findInRequest that are used to determine how to decode the HTTP input parameters so that we can perform a match against the script source.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174885</commentid>
    <comment_count>1</comment_count>
      <attachid>45495</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-25 11:55:46 -0800</bug_when>
    <thetext>Created attachment 45495
Patch

No functionality was changed. So, no new tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174886</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-25 11:59:48 -0800</bug_when>
    <thetext>Attachment 45495 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/page/XSSAuditor.cpp:356:  One space before end of line comments  [whitespace/comments] [5]
WebCore/page/XSSAuditor.cpp:361:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174887</commentid>
    <comment_count>3</comment_count>
      <attachid>45496</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-25 12:02:52 -0800</bug_when>
    <thetext>Created attachment 45496
Patch

Fix style-bot errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174888</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-25 12:05:10 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45496 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174890</commentid>
    <comment_count>5</comment_count>
      <attachid>45496</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-25 12:43:53 -0800</bug_when>
    <thetext>Comment on attachment 45496
Patch

This looks great.  One nit:

 147     task.decodeEntities = true;

You don&apos;t need these assignments because decodeEntities defaults to true.  We needed them originally because the parameters were in a fixed order.

Other than that, looks great.  Thanks Dan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174898</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-25 13:59:42 -0800</bug_when>
    <thetext>Will remove before I land.

(In reply to comment #5)
&gt; (From update of attachment 45496 [details])
&gt; This looks great.  One nit:
&gt; 
&gt;  147     task.decodeEntities = true;
&gt; 
&gt; You don&apos;t need these assignments because decodeEntities defaults to true.  We
&gt; needed them originally because the parameters were in a fixed order.
&gt; 
&gt; Other than that, looks great.  Thanks Dan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174905</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-12-25 15:33:24 -0800</bug_when>
    <thetext>Committed in &lt;http://trac.webkit.org/changeset/52561&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45495</attachid>
            <date>2009-12-25 11:55:46 -0800</date>
            <delta_ts>2009-12-25 12:02:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Bug32938.patch</filename>
            <type>text/plain</type>
            <size>12578</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjU1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMDktMTItMjQgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjkzOAorCisgICAgICAgIENs
ZWFucyB1cCBYU1NBdWRpdG9yLgorCisgICAgICAgIEN1cnJlbnRseSwgd2UgcGFzcyB2YXJpb3Vz
IHBhcmFtZXRlcnMgdGhyb3VnaCB0byBYU1NBdWRpdG9yOjpmaW5kSW5SZXF1ZXN0CisgICAgICAg
IHRoYXQgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIGhvdyB0byBkZWNvZGUgdGhlIEhUVFAgaW5wdXQg
cGFyYW1ldGVycyBzbyB0aGF0CisgICAgICAgIHdlIGNhbiBwZXJmb3JtIGEgbWF0Y2ggYWdhaW5z
dCB0aGUgc2NyaXB0IHNvdXJjZS4gSW5zdGVhZCwgd2UgaGF2ZSBkZWZpbmVkCisgICAgICAgIGEg
c3RydWN0dXJlIFhTU0F1ZGl0b3I6OkZpbmRUYXNrIHRoYXQgY2FuIGhvbGQgYWxsIG9mIHRoZXNl
IHBhcmFtZXRlcnMuCisKKyAgICAgICAgTm8gZnVuY3Rpb25hbGl0eSB3YXMgY2hhbmdlZC4gU28s
IG5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIHBhZ2UvWFNTQXVkaXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpYU1NBdWRpdG9yOjpjYW5FdmFsdWF0ZSk6IE1vZGlmaWVkIHRvIHVzZSBzdHJ1
Y3QKKyAgICAgICAgWFNTQXVkaXRvcjo6RmluZFRhc2suCisgICAgICAgIChXZWJDb3JlOjpYU1NB
dWRpdG9yOjpjYW5FdmFsdWF0ZUphdmFTY3JpcHRVUkwpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlhTU0F1ZGl0b3I6OmNhbkNyZWF0ZUlubGluZUV2ZW50TGlzdGVuZXIpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmNhbkxvYWRFeHRlcm5hbFNjcmlwdEZyb21TcmMp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmNhbkxvYWRPYmplY3QpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmNhblNldEJhc2VFbGVtZW50VVJM
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjpmaW5kSW5SZXF1ZXN0KTog
RGl0dG8uCisgICAgICAgICogcGFnZS9YU1NBdWRpdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpY
U1NBdWRpdG9yOjpGaW5kVGFzazo6RmluZFRhc2spOiBBZGRlZC4KKwogMjAwOS0xMi0yNCAgRGFu
IEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRpbW90
aHkgSGF0Y2hlci4KSW5kZXg6IFdlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5jcHAJKHJldmlzaW9uIDUyNTQzKQorKysgV2Vi
Q29yZS9wYWdlL1hTU0F1ZGl0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNyArMTA1LDEy
IEBAIGJvb2wgWFNTQXVkaXRvcjo6Y2FuRXZhbHVhdGUoY29uc3QgU3RyaW4KICAgICBpZiAoIWlz
RW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChmaW5kSW5SZXF1ZXN0
KGNvZGUsIGZhbHNlLCB0cnVlKSkgeworICAgIEZpbmRUYXNrIHRhc2s7CisgICAgdGFzay5zdHJp
bmcgPSBjb2RlOworICAgIHRhc2suZGVjb2RlRW50aXRpZXMgPSBmYWxzZTsKKyAgICB0YXNrLmFs
bG93UmVxdWVzdElmTm9JbGxlZ2FsVVJJQ2hhcmFjdGVycyA9IHRydWU7CisKKyAgICBpZiAoZmlu
ZEluUmVxdWVzdCh0YXNrKSkgewogICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
Y29uc29sZU1lc3NhZ2UsICgiUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQu
IFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC5cbiIpKTsKICAgICAg
ICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgY29uc29sZU1lc3NhZ2Us
IDEsIFN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTE4LDcgKzEyMywxMyBA
QCBib29sIFhTU0F1ZGl0b3I6OmNhbkV2YWx1YXRlSmF2YVNjcmlwdFVSCiAgICAgaWYgKCFpc0Vu
YWJsZWQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAoZmluZEluUmVxdWVzdChj
b2RlLCB0cnVlLCBmYWxzZSwgdHJ1ZSkpIHsKKyAgICBGaW5kVGFzayB0YXNrOworICAgIHRhc2su
c3RyaW5nID0gY29kZTsKKyAgICB0YXNrLmRlY29kZUVudGl0aWVzID0gdHJ1ZTsKKyAgICB0YXNr
LmFsbG93UmVxdWVzdElmTm9JbGxlZ2FsVVJJQ2hhcmFjdGVycyA9IGZhbHNlOworICAgIHRhc2su
ZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzVHdpY2UgPSB0cnVlOworCisgICAgaWYgKGZpbmRJblJl
cXVlc3QodGFzaykpIHsKICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNv
bGVNZXNzYWdlLCAoIlJlZnVzZWQgdG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBTb3Vy
Y2UgY29kZSBvZiBzY3JpcHQgZm91bmQgd2l0aGluIHJlcXVlc3QuXG4iKSk7CiAgICAgICAgIG1f
ZnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNl
LCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIGNvbnNvbGVNZXNzYWdlLCAxLCBT
dHJpbmcoKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMSw3ICsxNDIsMTIgQEAgYm9v
bCBYU1NBdWRpdG9yOjpjYW5DcmVhdGVJbmxpbmVFdmVudExpcwogICAgIGlmICghaXNFbmFibGVk
KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKGZpbmRJblJlcXVlc3QoY29kZSwg
dHJ1ZSwgdHJ1ZSkpIHsKKyAgICBGaW5kVGFzayB0YXNrOworICAgIHRhc2suc3RyaW5nID0gY29k
ZTsKKyAgICB0YXNrLmRlY29kZUVudGl0aWVzID0gdHJ1ZTsKKyAgICB0YXNrLmFsbG93UmVxdWVz
dElmTm9JbGxlZ2FsVVJJQ2hhcmFjdGVycyA9IHRydWU7CisKKyAgICBpZiAoZmluZEluUmVxdWVz
dCh0YXNrKSkgewogICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1l
c3NhZ2UsICgiUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBj
b2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC5cbiIpKTsKICAgICAgICAgbV9mcmFt
ZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgY29uc29sZU1lc3NhZ2UsIDEsIFN0cmlu
ZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTQ3LDcgKzE2MywxMSBAQCBib29sIFhT
U0F1ZGl0b3I6OmNhbkxvYWRFeHRlcm5hbFNjcmlwdEZyCiAgICAgaWYgKGlzU2FtZU9yaWdpblJl
c291cmNlKHVybCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKGZpbmRJblJlcXVl
c3QoY29udGV4dCArIHVybCkpIHsKKyAgICBGaW5kVGFzayB0YXNrOworICAgIHRhc2suY29udGV4
dCA9IGNvbnRleHQ7CisgICAgdGFzay5zdHJpbmcgPSB1cmw7CisKKyAgICBpZiAoZmluZEluUmVx
dWVzdCh0YXNrKSkgewogICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29s
ZU1lc3NhZ2UsICgiUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJj
ZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC5cbiIpKTsKICAgICAgICAgbV9m
cmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgY29uc29sZU1lc3NhZ2UsIDEsIFN0
cmluZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTYzLDcgKzE4MywxMiBAQCBib29s
IFhTU0F1ZGl0b3I6OmNhbkxvYWRPYmplY3QoY29uc3QgU3RyCiAgICAgaWYgKGlzU2FtZU9yaWdp
blJlc291cmNlKHVybCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKGZpbmRJblJl
cXVlc3QodXJsLCB0cnVlLCB0cnVlKSkgeworICAgIEZpbmRUYXNrIHRhc2s7CisgICAgdGFzay5z
dHJpbmcgPSB1cmw7CisgICAgdGFzay5kZWNvZGVFbnRpdGllcyA9IHRydWU7CisgICAgdGFzay5h
bGxvd1JlcXVlc3RJZk5vSWxsZWdhbFVSSUNoYXJhY3RlcnMgPSB0cnVlOworCisgICAgaWYgKGZp
bmRJblJlcXVlc3QodGFzaykpIHsKICAgICAgICAgU3RyaW5nIGNvbnNvbGVNZXNzYWdlID0gU3Ry
aW5nOjpmb3JtYXQoIlJlZnVzZWQgdG8gbG9hZCBhbiBvYmplY3QuIFVSTCBmb3VuZCB3aXRoaW4g
cmVxdWVzdDogXCIlc1wiLlxuIiwgdXJsLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICBtX2ZyYW1l
LT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9n
TWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBjb25zb2xlTWVzc2FnZSwgMSwgU3RyaW5n
KCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNzksNyArMjA0LDEwIEBAIGJvb2wgWFNT
QXVkaXRvcjo6Y2FuU2V0QmFzZUVsZW1lbnRVUkwoY28KICAgICBpZiAoaXNTYW1lT3JpZ2luUmVz
b3VyY2UodXJsKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAoZmluZEluUmVxdWVz
dCh1cmwpKSB7CisgICAgRmluZFRhc2sgdGFzazsKKyAgICB0YXNrLnN0cmluZyA9IHVybDsKKwor
ICAgIGlmIChmaW5kSW5SZXF1ZXN0KHRhc2spKSB7CiAgICAgICAgIERFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKCJSZWZ1c2VkIHRvIGxvYWQgZnJvbSBkb2N1bWVu
dCBiYXNlIFVSTC4gVVJMIGZvdW5kIHdpdGhpbiByZXF1ZXN0LlxuIikpOwogICAgICAgICBtX2Zy
YW1lLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwg
TG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBjb25zb2xlTWVzc2FnZSwgMSwgU3Ry
aW5nKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNjUsMjAgKzI5MywxOCBAQCBib29s
IFhTU0F1ZGl0b3I6OmlzU2FtZU9yaWdpblJlc291cmNlKGNvCiAgICAgcmV0dXJuIChtX2ZyYW1l
LT5kb2N1bWVudCgpLT51cmwoKS5ob3N0KCkgPT0gcmVzb3VyY2VVUkwuaG9zdCgpICYmIHJlc291
cmNlVVJMLnF1ZXJ5KCkuaXNFbXB0eSgpKTsKIH0KIAotYm9vbCBYU1NBdWRpdG9yOjpmaW5kSW5S
ZXF1ZXN0KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBib29sIGRlY29kZUVudGl0aWVzLCBib29sIGFs
bG93UmVxdWVzdElmTm9JbGxlZ2FsVVJJQ2hhcmFjdGVycywgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYm9vbCBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXNUd2ljZSkgY29uc3QKK2Jv
b2wgWFNTQXVkaXRvcjo6ZmluZEluUmVxdWVzdChjb25zdCBGaW5kVGFzayYgdGFzaykgY29uc3QK
IHsKICAgICBib29sIHJlc3VsdCA9IGZhbHNlOwogICAgIEZyYW1lKiBwYXJlbnRGcmFtZSA9IG1f
ZnJhbWUtPnRyZWUoKS0+cGFyZW50KCk7CiAgICAgaWYgKHBhcmVudEZyYW1lICYmIG1fZnJhbWUt
PmRvY3VtZW50KCktPnVybCgpID09IGJsYW5rVVJMKCkpCi0gICAgICAgIHJlc3VsdCA9IGZpbmRJ
blJlcXVlc3QocGFyZW50RnJhbWUsIHN0cmluZywgZGVjb2RlRW50aXRpZXMsIGFsbG93UmVxdWVz
dElmTm9JbGxlZ2FsVVJJQ2hhcmFjdGVycywgZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzVHdpY2Up
OworICAgICAgICByZXN1bHQgPSBmaW5kSW5SZXF1ZXN0KHBhcmVudEZyYW1lLCB0YXNrKTsKICAg
ICBpZiAoIXJlc3VsdCkKLSAgICAgICAgcmVzdWx0ID0gZmluZEluUmVxdWVzdChtX2ZyYW1lLCBz
dHJpbmcsIGRlY29kZUVudGl0aWVzLCBhbGxvd1JlcXVlc3RJZk5vSWxsZWdhbFVSSUNoYXJhY3Rl
cnMsIGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlc1R3aWNlKTsKKyAgICAgICAgcmVzdWx0ID0gZmlu
ZEluUmVxdWVzdChtX2ZyYW1lLCB0YXNrKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1ib29s
IFhTU0F1ZGl0b3I6OmZpbmRJblJlcXVlc3QoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIHN0
cmluZywgYm9vbCBkZWNvZGVFbnRpdGllcywgYm9vbCBhbGxvd1JlcXVlc3RJZk5vSWxsZWdhbFVS
SUNoYXJhY3RlcnMsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZGVjb2Rl
VVJMRXNjYXBlU2VxdWVuY2VzVHdpY2UpIGNvbnN0Citib29sIFhTU0F1ZGl0b3I6OmZpbmRJblJl
cXVlc3QoRnJhbWUqIGZyYW1lLCBjb25zdCBGaW5kVGFzayYgdGFzaykgY29uc3QKIHsKICAgICBB
U1NFUlQoZnJhbWUtPmRvY3VtZW50KCkpOwogCkBAIC0yODcsMTcgKzMxMywxOSBAQCBib29sIFhT
U0F1ZGl0b3I6OmZpbmRJblJlcXVlc3QoRnJhbWUqIGZyCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKLSAgICBpZiAoc3RyaW5nLmlzRW1wdHkoKSkKKyAgICBpZiAodGFzay5zdHJpbmcu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBGb3JtRGF0YSogZm9ybURh
dGFPYmogPSBmcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCktPm9yaWdpbmFsUmVxdWVz
dCgpLmh0dHBCb2R5KCk7CisgICAgY29uc3QgYm9vbCBoYXNGb3JtRGF0YSA9IGZvcm1EYXRhT2Jq
ICYmICFmb3JtRGF0YU9iai0+aXNFbXB0eSgpOwogICAgIFN0cmluZyBwYWdlVVJMID0gZnJhbWUt
PmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpOwogCi0gICAgaWYgKCFmb3JtRGF0YU9iaiAmJiBz
dHJpbmcubGVuZ3RoKCkgPj0gMiAqIHBhZ2VVUkwubGVuZ3RoKCkpIHsKKyAgICBTdHJpbmcgY2Fu
b25pY2FsaXplZFN0cmluZzsKKyAgICBpZiAoIWhhc0Zvcm1EYXRhICYmIHRhc2suc3RyaW5nLmxl
bmd0aCgpID4gMiAqIHBhZ2VVUkwubGVuZ3RoKCkpIHsKICAgICAgICAgLy8gUTogV2h5IGRvIHdl
IGJvdGhlciB0byBkbyB0aGlzIGNoZWNrIGF0IGFsbD8KICAgICAgICAgLy8gQTogQ2Fub25pY2Fs
aXppbmcgbGFyZ2UgaW5saW5lIHNjcmlwdHMgY2FuIGJlIGV4cGVuc2l2ZS4gIFdlIHdhbnQgdG8K
LSAgICAgICAgLy8gICAgYmFpbCBvdXQgYmVmb3JlIHRoZSBjYWxsIHRvIGNhbm9uaWNhbGl6ZSBi
ZWxvdywgd2hpY2ggY291bGQKLSAgICAgICAgLy8gICAgcmVzdWx0IGluIGFuIHVubmVlZGVkIGFs
bG9jYXRpb24gYW5kIG1lbWNweS4KKyAgICAgICAgLy8gICAgcmVkdWNlIHRoZSBzaXplIG9mIHRo
ZSBzdHJpbmcgYmVmb3JlIHdlIGNhbGwgY2Fub25pY2FsaXplIGJlbG93LAorICAgICAgICAvLyAg
ICBzaW5jZSBpdCBjb3VsZCByZXN1bHQgaW4gYW4gdW5uZWVkZWQgYWxsb2NhdGlvbiBhbmQgbWVt
Y3B5LgogICAgICAgICAvLwogICAgICAgICAvLyBROiBXaHkgZG8gd2UgbXVsdGlwbHkgYnkgdHdv
IGhlcmU/CiAgICAgICAgIC8vIEE6IFdlIGF0dGVtcHQgdG8gZGV0ZWN0IHJlZmxlY3RlZCBYU1Mg
ZXZlbiB3aGVuIHRoZSBzZXJ2ZXIKQEAgLTMwNSwzOSArMzMzLDMyIEBAIGJvb2wgWFNTQXVkaXRv
cjo6ZmluZEluUmVxdWVzdChGcmFtZSogZnIKICAgICAgICAgLy8gICAgYXR0YWNrZXIgY2FuIGRv
IGdldCB0aGUgc2VydmVyIHRvIGluZmxhdGUgaGlzL2hlciBpbnB1dCBieSBhCiAgICAgICAgIC8v
ICAgIGZhY3RvciBvZiB0d28gYnkgc2VuZGluZyAiIGNoYXJhY3RlcnMsIHdoaWNoIHRoZSBzZXJ2
ZXIKICAgICAgICAgLy8gICAgdHJhbnNmb3JtcyB0byBcIi4KLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KKyAgICAgICAgY2Fub25pY2FsaXplZFN0cmluZyA9IHRhc2suc3RyaW5nLnN1YnN0
cmluZygwLCAyICogcGFnZVVSTC5sZW5ndGgoKSk7CisgICAgfSBlbHNlCisgICAgICAgIGNhbm9u
aWNhbGl6ZWRTdHJpbmcgPSB0YXNrLnN0cmluZzsKIAogICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQo
KS0+dXJsKCkucHJvdG9jb2xJcygiZGF0YSIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBTdHJpbmcgY2Fub25pY2FsaXplZFN0cmluZyA9IGNhbm9uaWNhbGl6ZShzdHJpbmcpOworICAg
IGNhbm9uaWNhbGl6ZWRTdHJpbmcgPSBjYW5vbmljYWxpemUoY2Fub25pY2FsaXplZFN0cmluZyk7
CiAgICAgaWYgKGNhbm9uaWNhbGl6ZWRTdHJpbmcuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBpZiAoc3RyaW5nLmxlbmd0aCgpIDwgcGFnZVVSTC5sZW5ndGgoKSkgewot
ICAgICAgICAvLyBUaGUgc3RyaW5nIGNhbiBhY3R1YWxseSBmaXQgaW5zaWRlIHRoZSBwYWdlVVJM
LgotICAgICAgICBTdHJpbmcgZGVjb2RlZFBhZ2VVUkwgPSBtX2NhY2hlLmNhbm9uaWNhbGl6ZVVS
TChwYWdlVVJMLCBmcmFtZS0+ZG9jdW1lbnQoKS0+ZGVjb2RlcigpLT5lbmNvZGluZygpLCBkZWNv
ZGVFbnRpdGllcywgZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzVHdpY2UpOwotCi0gICAgICAgIGlm
IChhbGxvd1JlcXVlc3RJZk5vSWxsZWdhbFVSSUNoYXJhY3RlcnMgJiYgKCFmb3JtRGF0YU9iaiB8
fCBmb3JtRGF0YU9iai0+aXNFbXB0eSgpKSAKLSAgICAgICAgICAgICYmIGRlY29kZWRQYWdlVVJM
LmZpbmQoJmlzSWxsZWdhbFVSSUNoYXJhY3RlciwgMCkgPT0gLTEpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7IC8vIEluamVjdGlvbiBpcyBpbXBvc3NpYmxlIGJlY2F1c2UgdGhlIHJlcXVlc3Qg
ZG9lcyBub3QgY29udGFpbiBhbnkgaWxsZWdhbCBVUkkgY2hhcmFjdGVycy4gCi0KLSAgICAgICAg
aWYgKGRlY29kZWRQYWdlVVJMLmZpbmQoY2Fub25pY2FsaXplZFN0cmluZywgMCwgZmFsc2UpICE9
IC0xKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7ICAvLyBXZSd2ZSBmb3VuZCB0aGUgc21va2lu
ZyBndW4uCi0gICAgfQotCi0gICAgaWYgKGZvcm1EYXRhT2JqICYmICFmb3JtRGF0YU9iai0+aXNF
bXB0eSgpKSB7Ci0gICAgICAgIFN0cmluZyBmb3JtRGF0YSA9IGZvcm1EYXRhT2JqLT5mbGF0dGVu
VG9TdHJpbmcoKTsKLSAgICAgICAgaWYgKHN0cmluZy5sZW5ndGgoKSA8IGZvcm1EYXRhLmxlbmd0
aCgpKSB7Ci0gICAgICAgICAgICAvLyBOb3RpY2UgaXQgaXMgc3VmZmljaWVudCB0byBjb21wYXJl
IHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyB0bwotICAgICAgICAgICAgLy8gdGhlIHVybC1lbmNv
ZGVkIFBPU1QgZGF0YSBiZWNhdXNlIHRoZSBsZW5ndGggb2YgdGhlIHVybC1kZWNvZGVkCi0gICAg
ICAgICAgICAvLyBjb2RlIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgbGVuZ3RoIG9mIHRo
ZSB1cmwtZW5jb2RlZAotICAgICAgICAgICAgLy8gc3RyaW5nLgotICAgICAgICAgICAgU3RyaW5n
IGRlY29kZWRGb3JtRGF0YSA9IG1fY2FjaGUuY2Fub25pY2FsaXplVVJMKGZvcm1EYXRhLCBmcmFt
ZS0+ZG9jdW1lbnQoKS0+ZGVjb2RlcigpLT5lbmNvZGluZygpLCBkZWNvZGVFbnRpdGllcywgZGVj
b2RlVVJMRXNjYXBlU2VxdWVuY2VzVHdpY2UpOwotICAgICAgICAgICAgaWYgKGRlY29kZWRGb3Jt
RGF0YS5maW5kKGNhbm9uaWNhbGl6ZWRTdHJpbmcsIDAsIGZhbHNlKSAhPSAtMSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsgIC8vIFdlIGZvdW5kIHRoZSBzdHJpbmcgaW4gdGhlIFBPU1Qg
ZGF0YS4KLSAgICAgICAgfQorICAgIGlmICghdGFzay5jb250ZXh0LmlzRW1wdHkoKSkKKyAgICAg
ICAgY2Fub25pY2FsaXplZFN0cmluZyA9IHRhc2suY29udGV4dCArIGNhbm9uaWNhbGl6ZWRTdHJp
bmc7CisKKyAgICBTdHJpbmcgZGVjb2RlZFBhZ2VVUkwgPSBtX2NhY2hlLmNhbm9uaWNhbGl6ZVVS
TChwYWdlVVJMLCBmcmFtZS0+ZG9jdW1lbnQoKS0+ZGVjb2RlcigpLT5lbmNvZGluZygpLCB0YXNr
LmRlY29kZUVudGl0aWVzLCB0YXNrLmRlY29kZVVSTEVzY2FwZVNlcXVlbmNlc1R3aWNlKTsKKwor
ICAgIGlmICh0YXNrLmFsbG93UmVxdWVzdElmTm9JbGxlZ2FsVVJJQ2hhcmFjdGVycyAmJiAhaGFz
Rm9ybURhdGEgJiYgZGVjb2RlZFBhZ2VVUkwuZmluZCgmaXNJbGxlZ2FsVVJJQ2hhcmFjdGVyLCAw
KSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBJbmplY3Rpb24gaXMgaW1wb3NzaWJs
ZSBiZWNhdXNlIHRoZSByZXF1ZXN0IGRvZXMgbm90IGNvbnRhaW4gYW55IGlsbGVnYWwgVVJJIGNo
YXJhY3RlcnMuCisKKyAgICBpZiAoZGVjb2RlZFBhZ2VVUkwuZmluZChjYW5vbmljYWxpemVkU3Ry
aW5nLCAwLCBmYWxzZSkgIT0gLTEpCisgICAgICAgIHJldHVybiB0cnVlOyAgLy8gV2UndmUgZm91
bmQgdGhlIHN0cmluZyBpbiB0aGUgR0VUIGRhdGEuCisKKyAgICBpZiAoaGFzRm9ybURhdGEpIHsK
KyAgICAgICAgU3RyaW5nIGRlY29kZWRGb3JtRGF0YSA9IG1fY2FjaGUuY2Fub25pY2FsaXplVVJM
KGZvcm1EYXRhT2JqLT5mbGF0dGVuVG9TdHJpbmcoKSwgZnJhbWUtPmRvY3VtZW50KCktPmRlY29k
ZXIoKS0+ZW5jb2RpbmcoKSwgdGFzay5kZWNvZGVFbnRpdGllcywgdGFzay5kZWNvZGVVUkxFc2Nh
cGVTZXF1ZW5jZXNUd2ljZSk7CisgICAgICAgIGlmIChkZWNvZGVkRm9ybURhdGEuZmluZChjYW5v
bmljYWxpemVkU3RyaW5nLCAwLCBmYWxzZSkgIT0gLTEpCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsgIC8vIFdlIGZvdW5kIHRoZSBzdHJpbmcgaW4gdGhlIFBPU1QgZGF0YS4KICAgICB9CiAKICAg
ICByZXR1cm4gZmFsc2U7CkluZGV4OiBXZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmgJKHJldmlzaW9uIDUyNTQzKQorKysgV2Vi
Q29yZS9wYWdlL1hTU0F1ZGl0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMTIwLDE2ICsxMjAsMjkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgU3RyaW5nIG1fY2FjaGVkQ2Fub25p
Y2FsaXplZFVSTDsKICAgICAgICAgfTsKIAorICAgICAgICBzdHJ1Y3QgRmluZFRhc2sgeworICAg
ICAgICAgICAgRmluZFRhc2soKQorICAgICAgICAgICAgICAgIDogZGVjb2RlRW50aXRpZXModHJ1
ZSkKKyAgICAgICAgICAgICAgICAsIGFsbG93UmVxdWVzdElmTm9JbGxlZ2FsVVJJQ2hhcmFjdGVy
cyhmYWxzZSkKKyAgICAgICAgICAgICAgICAsIGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlc1R3aWNl
KGZhbHNlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTdHJp
bmcgY29udGV4dDsKKyAgICAgICAgICAgIFN0cmluZyBzdHJpbmc7CisgICAgICAgICAgICBib29s
IGRlY29kZUVudGl0aWVzOworICAgICAgICAgICAgYm9vbCBhbGxvd1JlcXVlc3RJZk5vSWxsZWdh
bFVSSUNoYXJhY3RlcnM7CisgICAgICAgICAgICBib29sIGRlY29kZVVSTEVzY2FwZVNlcXVlbmNl
c1R3aWNlOworICAgICAgICB9OworCiAgICAgICAgIHN0YXRpYyBTdHJpbmcgY2Fub25pY2FsaXpl
KGNvbnN0IFN0cmluZyYpOwogICAgICAgICBzdGF0aWMgU3RyaW5nIGRlY29kZVVSTChjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZywgYm9vbCBkZWNvZGVFbnRp
dGllcywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZGVjb2RlVVJMRXNj
YXBlU2VxdWVuY2VzVHdpY2UgPSBmYWxzZSk7CiAgICAgICAgIHN0YXRpYyBTdHJpbmcgZGVjb2Rl
SFRNTEVudGl0aWVzKGNvbnN0IFN0cmluZyYsIGJvb2wgbGVhdmVVbmRlY29kYWJsZUVudGl0aWVz
VW50b3VjaGVkID0gdHJ1ZSk7CiAKICAgICAgICAgYm9vbCBpc1NhbWVPcmlnaW5SZXNvdXJjZShj
b25zdCBTdHJpbmcmIHVybCkgY29uc3Q7Ci0gICAgICAgIGJvb2wgZmluZEluUmVxdWVzdChjb25z
dCBTdHJpbmcmLCBib29sIGRlY29kZUVudGl0aWVzID0gdHJ1ZSwgYm9vbCBhbGxvd1JlcXVlc3RJ
Zk5vSWxsZWdhbFVSSUNoYXJhY3RlcnMgPSBmYWxzZSwgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICBib29sIGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlc1R3aWNlID0gZmFsc2UpIGNvbnN0Owot
ICAgICAgICBib29sIGZpbmRJblJlcXVlc3QoRnJhbWUqLCBjb25zdCBTdHJpbmcmLCBib29sIGRl
Y29kZUVudGl0aWVzID0gdHJ1ZSwgYm9vbCBhbGxvd1JlcXVlc3RJZk5vSWxsZWdhbFVSSUNoYXJh
Y3RlcnMgPSBmYWxzZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGRlY29kZVVS
TEVzY2FwZVNlcXVlbmNlc1R3aWNlID0gZmFsc2UpIGNvbnN0OworICAgICAgICBib29sIGZpbmRJ
blJlcXVlc3QoY29uc3QgRmluZFRhc2smKSBjb25zdDsKKyAgICAgICAgYm9vbCBmaW5kSW5SZXF1
ZXN0KEZyYW1lKiwgY29uc3QgRmluZFRhc2smKSBjb25zdDsKIAogICAgICAgICAvLyBUaGUgZnJh
bWUgdG8gYXVkaXQuCiAgICAgICAgIEZyYW1lKiBtX2ZyYW1lOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45496</attachid>
            <date>2009-12-25 12:02:52 -0800</date>
            <delta_ts>2009-12-25 12:43:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Bug32938.patch</filename>
            <type>text/plain</type>
            <size>12576</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjU1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMDktMTItMjQgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjkzOAorCisgICAgICAgIENs
ZWFucyB1cCBYU1NBdWRpdG9yLgorCisgICAgICAgIEN1cnJlbnRseSwgd2UgcGFzcyB2YXJpb3Vz
IHBhcmFtZXRlcnMgdGhyb3VnaCB0byBYU1NBdWRpdG9yOjpmaW5kSW5SZXF1ZXN0CisgICAgICAg
IHRoYXQgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIGhvdyB0byBkZWNvZGUgdGhlIEhUVFAgaW5wdXQg
cGFyYW1ldGVycyBzbyB0aGF0CisgICAgICAgIHdlIGNhbiBwZXJmb3JtIGEgbWF0Y2ggYWdhaW5z
dCB0aGUgc2NyaXB0IHNvdXJjZS4gSW5zdGVhZCwgd2UgaGF2ZSBkZWZpbmVkCisgICAgICAgIGEg
c3RydWN0dXJlIFhTU0F1ZGl0b3I6OkZpbmRUYXNrIHRoYXQgY2FuIGhvbGQgYWxsIG9mIHRoZXNl
IHBhcmFtZXRlcnMuCisKKyAgICAgICAgTm8gZnVuY3Rpb25hbGl0eSB3YXMgY2hhbmdlZC4gU28s
IG5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIHBhZ2UvWFNTQXVkaXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpYU1NBdWRpdG9yOjpjYW5FdmFsdWF0ZSk6IE1vZGlmaWVkIHRvIHVzZSBzdHJ1
Y3QKKyAgICAgICAgWFNTQXVkaXRvcjo6RmluZFRhc2suCisgICAgICAgIChXZWJDb3JlOjpYU1NB
dWRpdG9yOjpjYW5FdmFsdWF0ZUphdmFTY3JpcHRVUkwpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlhTU0F1ZGl0b3I6OmNhbkNyZWF0ZUlubGluZUV2ZW50TGlzdGVuZXIpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmNhbkxvYWRFeHRlcm5hbFNjcmlwdEZyb21TcmMp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmNhbkxvYWRPYmplY3QpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmNhblNldEJhc2VFbGVtZW50VVJM
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjpmaW5kSW5SZXF1ZXN0KTog
RGl0dG8uCisgICAgICAgICogcGFnZS9YU1NBdWRpdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpY
U1NBdWRpdG9yOjpGaW5kVGFzazo6RmluZFRhc2spOiBBZGRlZC4KKwogMjAwOS0xMi0yNCAgRGFu
IEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRpbW90
aHkgSGF0Y2hlci4KSW5kZXg6IFdlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5jcHAJKHJldmlzaW9uIDUyNTQzKQorKysgV2Vi
Q29yZS9wYWdlL1hTU0F1ZGl0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNyArMTA1LDEy
IEBAIGJvb2wgWFNTQXVkaXRvcjo6Y2FuRXZhbHVhdGUoY29uc3QgU3RyaW4KICAgICBpZiAoIWlz
RW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChmaW5kSW5SZXF1ZXN0
KGNvZGUsIGZhbHNlLCB0cnVlKSkgeworICAgIEZpbmRUYXNrIHRhc2s7CisgICAgdGFzay5zdHJp
bmcgPSBjb2RlOworICAgIHRhc2suZGVjb2RlRW50aXRpZXMgPSBmYWxzZTsKKyAgICB0YXNrLmFs
bG93UmVxdWVzdElmTm9JbGxlZ2FsVVJJQ2hhcmFjdGVycyA9IHRydWU7CisKKyAgICBpZiAoZmlu
ZEluUmVxdWVzdCh0YXNrKSkgewogICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
Y29uc29sZU1lc3NhZ2UsICgiUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQu
IFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC5cbiIpKTsKICAgICAg
ICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgY29uc29sZU1lc3NhZ2Us
IDEsIFN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTE4LDcgKzEyMywxMyBA
QCBib29sIFhTU0F1ZGl0b3I6OmNhbkV2YWx1YXRlSmF2YVNjcmlwdFVSCiAgICAgaWYgKCFpc0Vu
YWJsZWQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAoZmluZEluUmVxdWVzdChj
b2RlLCB0cnVlLCBmYWxzZSwgdHJ1ZSkpIHsKKyAgICBGaW5kVGFzayB0YXNrOworICAgIHRhc2su
c3RyaW5nID0gY29kZTsKKyAgICB0YXNrLmRlY29kZUVudGl0aWVzID0gdHJ1ZTsKKyAgICB0YXNr
LmFsbG93UmVxdWVzdElmTm9JbGxlZ2FsVVJJQ2hhcmFjdGVycyA9IGZhbHNlOworICAgIHRhc2su
ZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzVHdpY2UgPSB0cnVlOworCisgICAgaWYgKGZpbmRJblJl
cXVlc3QodGFzaykpIHsKICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNv
bGVNZXNzYWdlLCAoIlJlZnVzZWQgdG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBTb3Vy
Y2UgY29kZSBvZiBzY3JpcHQgZm91bmQgd2l0aGluIHJlcXVlc3QuXG4iKSk7CiAgICAgICAgIG1f
ZnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNl
LCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIGNvbnNvbGVNZXNzYWdlLCAxLCBT
dHJpbmcoKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEzMSw3ICsxNDIsMTIgQEAgYm9v
bCBYU1NBdWRpdG9yOjpjYW5DcmVhdGVJbmxpbmVFdmVudExpcwogICAgIGlmICghaXNFbmFibGVk
KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKGZpbmRJblJlcXVlc3QoY29kZSwg
dHJ1ZSwgdHJ1ZSkpIHsKKyAgICBGaW5kVGFzayB0YXNrOworICAgIHRhc2suc3RyaW5nID0gY29k
ZTsKKyAgICB0YXNrLmRlY29kZUVudGl0aWVzID0gdHJ1ZTsKKyAgICB0YXNrLmFsbG93UmVxdWVz
dElmTm9JbGxlZ2FsVVJJQ2hhcmFjdGVycyA9IHRydWU7CisKKyAgICBpZiAoZmluZEluUmVxdWVz
dCh0YXNrKSkgewogICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1l
c3NhZ2UsICgiUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBj
b2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC5cbiIpKTsKICAgICAgICAgbV9mcmFt
ZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgY29uc29sZU1lc3NhZ2UsIDEsIFN0cmlu
ZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTQ3LDcgKzE2MywxMSBAQCBib29sIFhT
U0F1ZGl0b3I6OmNhbkxvYWRFeHRlcm5hbFNjcmlwdEZyCiAgICAgaWYgKGlzU2FtZU9yaWdpblJl
c291cmNlKHVybCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKGZpbmRJblJlcXVl
c3QoY29udGV4dCArIHVybCkpIHsKKyAgICBGaW5kVGFzayB0YXNrOworICAgIHRhc2suY29udGV4
dCA9IGNvbnRleHQ7CisgICAgdGFzay5zdHJpbmcgPSB1cmw7CisKKyAgICBpZiAoZmluZEluUmVx
dWVzdCh0YXNrKSkgewogICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29s
ZU1lc3NhZ2UsICgiUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJj
ZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC5cbiIpKTsKICAgICAgICAgbV9m
cmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgY29uc29sZU1lc3NhZ2UsIDEsIFN0
cmluZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTYzLDcgKzE4MywxMiBAQCBib29s
IFhTU0F1ZGl0b3I6OmNhbkxvYWRPYmplY3QoY29uc3QgU3RyCiAgICAgaWYgKGlzU2FtZU9yaWdp
blJlc291cmNlKHVybCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKGZpbmRJblJl
cXVlc3QodXJsLCB0cnVlLCB0cnVlKSkgeworICAgIEZpbmRUYXNrIHRhc2s7CisgICAgdGFzay5z
dHJpbmcgPSB1cmw7CisgICAgdGFzay5kZWNvZGVFbnRpdGllcyA9IHRydWU7CisgICAgdGFzay5h
bGxvd1JlcXVlc3RJZk5vSWxsZWdhbFVSSUNoYXJhY3RlcnMgPSB0cnVlOworCisgICAgaWYgKGZp
bmRJblJlcXVlc3QodGFzaykpIHsKICAgICAgICAgU3RyaW5nIGNvbnNvbGVNZXNzYWdlID0gU3Ry
aW5nOjpmb3JtYXQoIlJlZnVzZWQgdG8gbG9hZCBhbiBvYmplY3QuIFVSTCBmb3VuZCB3aXRoaW4g
cmVxdWVzdDogXCIlc1wiLlxuIiwgdXJsLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICBtX2ZyYW1l
LT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9n
TWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBjb25zb2xlTWVzc2FnZSwgMSwgU3RyaW5n
KCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNzksNyArMjA0LDEwIEBAIGJvb2wgWFNT
QXVkaXRvcjo6Y2FuU2V0QmFzZUVsZW1lbnRVUkwoY28KICAgICBpZiAoaXNTYW1lT3JpZ2luUmVz
b3VyY2UodXJsKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAoZmluZEluUmVxdWVz
dCh1cmwpKSB7CisgICAgRmluZFRhc2sgdGFzazsKKyAgICB0YXNrLnN0cmluZyA9IHVybDsKKwor
ICAgIGlmIChmaW5kSW5SZXF1ZXN0KHRhc2spKSB7CiAgICAgICAgIERFRklORV9TVEFUSUNfTE9D
QUwoU3RyaW5nLCBjb25zb2xlTWVzc2FnZSwgKCJSZWZ1c2VkIHRvIGxvYWQgZnJvbSBkb2N1bWVu
dCBiYXNlIFVSTC4gVVJMIGZvdW5kIHdpdGhpbiByZXF1ZXN0LlxuIikpOwogICAgICAgICBtX2Zy
YW1lLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwg
TG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBjb25zb2xlTWVzc2FnZSwgMSwgU3Ry
aW5nKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNjUsMjAgKzI5MywxOCBAQCBib29s
IFhTU0F1ZGl0b3I6OmlzU2FtZU9yaWdpblJlc291cmNlKGNvCiAgICAgcmV0dXJuIChtX2ZyYW1l
LT5kb2N1bWVudCgpLT51cmwoKS5ob3N0KCkgPT0gcmVzb3VyY2VVUkwuaG9zdCgpICYmIHJlc291
cmNlVVJMLnF1ZXJ5KCkuaXNFbXB0eSgpKTsKIH0KIAotYm9vbCBYU1NBdWRpdG9yOjpmaW5kSW5S
ZXF1ZXN0KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBib29sIGRlY29kZUVudGl0aWVzLCBib29sIGFs
bG93UmVxdWVzdElmTm9JbGxlZ2FsVVJJQ2hhcmFjdGVycywgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYm9vbCBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXNUd2ljZSkgY29uc3QKK2Jv
b2wgWFNTQXVkaXRvcjo6ZmluZEluUmVxdWVzdChjb25zdCBGaW5kVGFzayYgdGFzaykgY29uc3QK
IHsKICAgICBib29sIHJlc3VsdCA9IGZhbHNlOwogICAgIEZyYW1lKiBwYXJlbnRGcmFtZSA9IG1f
ZnJhbWUtPnRyZWUoKS0+cGFyZW50KCk7CiAgICAgaWYgKHBhcmVudEZyYW1lICYmIG1fZnJhbWUt
PmRvY3VtZW50KCktPnVybCgpID09IGJsYW5rVVJMKCkpCi0gICAgICAgIHJlc3VsdCA9IGZpbmRJ
blJlcXVlc3QocGFyZW50RnJhbWUsIHN0cmluZywgZGVjb2RlRW50aXRpZXMsIGFsbG93UmVxdWVz
dElmTm9JbGxlZ2FsVVJJQ2hhcmFjdGVycywgZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzVHdpY2Up
OworICAgICAgICByZXN1bHQgPSBmaW5kSW5SZXF1ZXN0KHBhcmVudEZyYW1lLCB0YXNrKTsKICAg
ICBpZiAoIXJlc3VsdCkKLSAgICAgICAgcmVzdWx0ID0gZmluZEluUmVxdWVzdChtX2ZyYW1lLCBz
dHJpbmcsIGRlY29kZUVudGl0aWVzLCBhbGxvd1JlcXVlc3RJZk5vSWxsZWdhbFVSSUNoYXJhY3Rl
cnMsIGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlc1R3aWNlKTsKKyAgICAgICAgcmVzdWx0ID0gZmlu
ZEluUmVxdWVzdChtX2ZyYW1lLCB0YXNrKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1ib29s
IFhTU0F1ZGl0b3I6OmZpbmRJblJlcXVlc3QoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIHN0
cmluZywgYm9vbCBkZWNvZGVFbnRpdGllcywgYm9vbCBhbGxvd1JlcXVlc3RJZk5vSWxsZWdhbFVS
SUNoYXJhY3RlcnMsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgZGVjb2Rl
VVJMRXNjYXBlU2VxdWVuY2VzVHdpY2UpIGNvbnN0Citib29sIFhTU0F1ZGl0b3I6OmZpbmRJblJl
cXVlc3QoRnJhbWUqIGZyYW1lLCBjb25zdCBGaW5kVGFzayYgdGFzaykgY29uc3QKIHsKICAgICBB
U1NFUlQoZnJhbWUtPmRvY3VtZW50KCkpOwogCkBAIC0yODcsMTcgKzMxMywxOSBAQCBib29sIFhT
U0F1ZGl0b3I6OmZpbmRJblJlcXVlc3QoRnJhbWUqIGZyCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKLSAgICBpZiAoc3RyaW5nLmlzRW1wdHkoKSkKKyAgICBpZiAodGFzay5zdHJpbmcu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBGb3JtRGF0YSogZm9ybURh
dGFPYmogPSBmcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCktPm9yaWdpbmFsUmVxdWVz
dCgpLmh0dHBCb2R5KCk7CisgICAgY29uc3QgYm9vbCBoYXNGb3JtRGF0YSA9IGZvcm1EYXRhT2Jq
ICYmICFmb3JtRGF0YU9iai0+aXNFbXB0eSgpOwogICAgIFN0cmluZyBwYWdlVVJMID0gZnJhbWUt
PmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpOwogCi0gICAgaWYgKCFmb3JtRGF0YU9iaiAmJiBz
dHJpbmcubGVuZ3RoKCkgPj0gMiAqIHBhZ2VVUkwubGVuZ3RoKCkpIHsKKyAgICBTdHJpbmcgY2Fu
b25pY2FsaXplZFN0cmluZzsKKyAgICBpZiAoIWhhc0Zvcm1EYXRhICYmIHRhc2suc3RyaW5nLmxl
bmd0aCgpID4gMiAqIHBhZ2VVUkwubGVuZ3RoKCkpIHsKICAgICAgICAgLy8gUTogV2h5IGRvIHdl
IGJvdGhlciB0byBkbyB0aGlzIGNoZWNrIGF0IGFsbD8KICAgICAgICAgLy8gQTogQ2Fub25pY2Fs
aXppbmcgbGFyZ2UgaW5saW5lIHNjcmlwdHMgY2FuIGJlIGV4cGVuc2l2ZS4gIFdlIHdhbnQgdG8K
LSAgICAgICAgLy8gICAgYmFpbCBvdXQgYmVmb3JlIHRoZSBjYWxsIHRvIGNhbm9uaWNhbGl6ZSBi
ZWxvdywgd2hpY2ggY291bGQKLSAgICAgICAgLy8gICAgcmVzdWx0IGluIGFuIHVubmVlZGVkIGFs
bG9jYXRpb24gYW5kIG1lbWNweS4KKyAgICAgICAgLy8gICAgcmVkdWNlIHRoZSBzaXplIG9mIHRo
ZSBzdHJpbmcgYmVmb3JlIHdlIGNhbGwgY2Fub25pY2FsaXplIGJlbG93LAorICAgICAgICAvLyAg
ICBzaW5jZSBpdCBjb3VsZCByZXN1bHQgaW4gYW4gdW5uZWVkZWQgYWxsb2NhdGlvbiBhbmQgbWVt
Y3B5LgogICAgICAgICAvLwogICAgICAgICAvLyBROiBXaHkgZG8gd2UgbXVsdGlwbHkgYnkgdHdv
IGhlcmU/CiAgICAgICAgIC8vIEE6IFdlIGF0dGVtcHQgdG8gZGV0ZWN0IHJlZmxlY3RlZCBYU1Mg
ZXZlbiB3aGVuIHRoZSBzZXJ2ZXIKQEAgLTMwNSwzOSArMzMzLDMyIEBAIGJvb2wgWFNTQXVkaXRv
cjo6ZmluZEluUmVxdWVzdChGcmFtZSogZnIKICAgICAgICAgLy8gICAgYXR0YWNrZXIgY2FuIGRv
IGdldCB0aGUgc2VydmVyIHRvIGluZmxhdGUgaGlzL2hlciBpbnB1dCBieSBhCiAgICAgICAgIC8v
ICAgIGZhY3RvciBvZiB0d28gYnkgc2VuZGluZyAiIGNoYXJhY3RlcnMsIHdoaWNoIHRoZSBzZXJ2
ZXIKICAgICAgICAgLy8gICAgdHJhbnNmb3JtcyB0byBcIi4KLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KKyAgICAgICAgY2Fub25pY2FsaXplZFN0cmluZyA9IHRhc2suc3RyaW5nLnN1YnN0
cmluZygwLCAyICogcGFnZVVSTC5sZW5ndGgoKSk7CisgICAgfSBlbHNlCisgICAgICAgIGNhbm9u
aWNhbGl6ZWRTdHJpbmcgPSB0YXNrLnN0cmluZzsKIAogICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQo
KS0+dXJsKCkucHJvdG9jb2xJcygiZGF0YSIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBTdHJpbmcgY2Fub25pY2FsaXplZFN0cmluZyA9IGNhbm9uaWNhbGl6ZShzdHJpbmcpOworICAg
IGNhbm9uaWNhbGl6ZWRTdHJpbmcgPSBjYW5vbmljYWxpemUoY2Fub25pY2FsaXplZFN0cmluZyk7
CiAgICAgaWYgKGNhbm9uaWNhbGl6ZWRTdHJpbmcuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBpZiAoc3RyaW5nLmxlbmd0aCgpIDwgcGFnZVVSTC5sZW5ndGgoKSkgewot
ICAgICAgICAvLyBUaGUgc3RyaW5nIGNhbiBhY3R1YWxseSBmaXQgaW5zaWRlIHRoZSBwYWdlVVJM
LgotICAgICAgICBTdHJpbmcgZGVjb2RlZFBhZ2VVUkwgPSBtX2NhY2hlLmNhbm9uaWNhbGl6ZVVS
TChwYWdlVVJMLCBmcmFtZS0+ZG9jdW1lbnQoKS0+ZGVjb2RlcigpLT5lbmNvZGluZygpLCBkZWNv
ZGVFbnRpdGllcywgZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzVHdpY2UpOwotCi0gICAgICAgIGlm
IChhbGxvd1JlcXVlc3RJZk5vSWxsZWdhbFVSSUNoYXJhY3RlcnMgJiYgKCFmb3JtRGF0YU9iaiB8
fCBmb3JtRGF0YU9iai0+aXNFbXB0eSgpKSAKLSAgICAgICAgICAgICYmIGRlY29kZWRQYWdlVVJM
LmZpbmQoJmlzSWxsZWdhbFVSSUNoYXJhY3RlciwgMCkgPT0gLTEpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7IC8vIEluamVjdGlvbiBpcyBpbXBvc3NpYmxlIGJlY2F1c2UgdGhlIHJlcXVlc3Qg
ZG9lcyBub3QgY29udGFpbiBhbnkgaWxsZWdhbCBVUkkgY2hhcmFjdGVycy4gCi0KLSAgICAgICAg
aWYgKGRlY29kZWRQYWdlVVJMLmZpbmQoY2Fub25pY2FsaXplZFN0cmluZywgMCwgZmFsc2UpICE9
IC0xKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7ICAvLyBXZSd2ZSBmb3VuZCB0aGUgc21va2lu
ZyBndW4uCi0gICAgfQotCi0gICAgaWYgKGZvcm1EYXRhT2JqICYmICFmb3JtRGF0YU9iai0+aXNF
bXB0eSgpKSB7Ci0gICAgICAgIFN0cmluZyBmb3JtRGF0YSA9IGZvcm1EYXRhT2JqLT5mbGF0dGVu
VG9TdHJpbmcoKTsKLSAgICAgICAgaWYgKHN0cmluZy5sZW5ndGgoKSA8IGZvcm1EYXRhLmxlbmd0
aCgpKSB7Ci0gICAgICAgICAgICAvLyBOb3RpY2UgaXQgaXMgc3VmZmljaWVudCB0byBjb21wYXJl
IHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyB0bwotICAgICAgICAgICAgLy8gdGhlIHVybC1lbmNv
ZGVkIFBPU1QgZGF0YSBiZWNhdXNlIHRoZSBsZW5ndGggb2YgdGhlIHVybC1kZWNvZGVkCi0gICAg
ICAgICAgICAvLyBjb2RlIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgbGVuZ3RoIG9mIHRo
ZSB1cmwtZW5jb2RlZAotICAgICAgICAgICAgLy8gc3RyaW5nLgotICAgICAgICAgICAgU3RyaW5n
IGRlY29kZWRGb3JtRGF0YSA9IG1fY2FjaGUuY2Fub25pY2FsaXplVVJMKGZvcm1EYXRhLCBmcmFt
ZS0+ZG9jdW1lbnQoKS0+ZGVjb2RlcigpLT5lbmNvZGluZygpLCBkZWNvZGVFbnRpdGllcywgZGVj
b2RlVVJMRXNjYXBlU2VxdWVuY2VzVHdpY2UpOwotICAgICAgICAgICAgaWYgKGRlY29kZWRGb3Jt
RGF0YS5maW5kKGNhbm9uaWNhbGl6ZWRTdHJpbmcsIDAsIGZhbHNlKSAhPSAtMSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsgIC8vIFdlIGZvdW5kIHRoZSBzdHJpbmcgaW4gdGhlIFBPU1Qg
ZGF0YS4KLSAgICAgICAgfQorICAgIGlmICghdGFzay5jb250ZXh0LmlzRW1wdHkoKSkKKyAgICAg
ICAgY2Fub25pY2FsaXplZFN0cmluZyA9IHRhc2suY29udGV4dCArIGNhbm9uaWNhbGl6ZWRTdHJp
bmc7CisKKyAgICBTdHJpbmcgZGVjb2RlZFBhZ2VVUkwgPSBtX2NhY2hlLmNhbm9uaWNhbGl6ZVVS
TChwYWdlVVJMLCBmcmFtZS0+ZG9jdW1lbnQoKS0+ZGVjb2RlcigpLT5lbmNvZGluZygpLCB0YXNr
LmRlY29kZUVudGl0aWVzLCB0YXNrLmRlY29kZVVSTEVzY2FwZVNlcXVlbmNlc1R3aWNlKTsKKwor
ICAgIGlmICh0YXNrLmFsbG93UmVxdWVzdElmTm9JbGxlZ2FsVVJJQ2hhcmFjdGVycyAmJiAhaGFz
Rm9ybURhdGEgJiYgZGVjb2RlZFBhZ2VVUkwuZmluZCgmaXNJbGxlZ2FsVVJJQ2hhcmFjdGVyLCAw
KSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBJbmplY3Rpb24gaXMgaW1wb3NzaWJs
ZSBiZWNhdXNlIHRoZSByZXF1ZXN0IGRvZXMgbm90IGNvbnRhaW4gYW55IGlsbGVnYWwgVVJJIGNo
YXJhY3RlcnMuCisKKyAgICBpZiAoZGVjb2RlZFBhZ2VVUkwuZmluZChjYW5vbmljYWxpemVkU3Ry
aW5nLCAwLCBmYWxzZSkgIT0gLTEpCisgICAgICAgIHJldHVybiB0cnVlOyAvLyBXZSd2ZSBmb3Vu
ZCB0aGUgc3RyaW5nIGluIHRoZSBHRVQgZGF0YS4KKworICAgIGlmIChoYXNGb3JtRGF0YSkgewor
ICAgICAgICBTdHJpbmcgZGVjb2RlZEZvcm1EYXRhID0gbV9jYWNoZS5jYW5vbmljYWxpemVVUkwo
Zm9ybURhdGFPYmotPmZsYXR0ZW5Ub1N0cmluZygpLCBmcmFtZS0+ZG9jdW1lbnQoKS0+ZGVjb2Rl
cigpLT5lbmNvZGluZygpLCB0YXNrLmRlY29kZUVudGl0aWVzLCB0YXNrLmRlY29kZVVSTEVzY2Fw
ZVNlcXVlbmNlc1R3aWNlKTsKKyAgICAgICAgaWYgKGRlY29kZWRGb3JtRGF0YS5maW5kKGNhbm9u
aWNhbGl6ZWRTdHJpbmcsIDAsIGZhbHNlKSAhPSAtMSkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OyAvLyBXZSBmb3VuZCB0aGUgc3RyaW5nIGluIHRoZSBQT1NUIGRhdGEuCiAgICAgfQogCiAgICAg
cmV0dXJuIGZhbHNlOwpJbmRleDogV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5oCShyZXZpc2lvbiA1MjU0MykKKysrIFdlYkNv
cmUvcGFnZS9YU1NBdWRpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMCwxNiArMTIwLDI5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFN0cmluZyBtX2NhY2hlZENhbm9uaWNh
bGl6ZWRVUkw7CiAgICAgICAgIH07CiAKKyAgICAgICAgc3RydWN0IEZpbmRUYXNrIHsKKyAgICAg
ICAgICAgIEZpbmRUYXNrKCkKKyAgICAgICAgICAgICAgICA6IGRlY29kZUVudGl0aWVzKHRydWUp
CisgICAgICAgICAgICAgICAgLCBhbGxvd1JlcXVlc3RJZk5vSWxsZWdhbFVSSUNoYXJhY3RlcnMo
ZmFsc2UpCisgICAgICAgICAgICAgICAgLCBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXNUd2ljZShm
YWxzZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5n
IGNvbnRleHQ7CisgICAgICAgICAgICBTdHJpbmcgc3RyaW5nOworICAgICAgICAgICAgYm9vbCBk
ZWNvZGVFbnRpdGllczsKKyAgICAgICAgICAgIGJvb2wgYWxsb3dSZXF1ZXN0SWZOb0lsbGVnYWxV
UklDaGFyYWN0ZXJzOworICAgICAgICAgICAgYm9vbCBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXNU
d2ljZTsKKyAgICAgICAgfTsKKwogICAgICAgICBzdGF0aWMgU3RyaW5nIGNhbm9uaWNhbGl6ZShj
b25zdCBTdHJpbmcmKTsKICAgICAgICAgc3RhdGljIFN0cmluZyBkZWNvZGVVUkwoY29uc3QgU3Ry
aW5nJiB1cmwsIGNvbnN0IFRleHRFbmNvZGluZyYgZW5jb2RpbmcsIGJvb2wgZGVjb2RlRW50aXRp
ZXMsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGRlY29kZVVSTEVzY2Fw
ZVNlcXVlbmNlc1R3aWNlID0gZmFsc2UpOwogICAgICAgICBzdGF0aWMgU3RyaW5nIGRlY29kZUhU
TUxFbnRpdGllcyhjb25zdCBTdHJpbmcmLCBib29sIGxlYXZlVW5kZWNvZGFibGVFbnRpdGllc1Vu
dG91Y2hlZCA9IHRydWUpOwogCiAgICAgICAgIGJvb2wgaXNTYW1lT3JpZ2luUmVzb3VyY2UoY29u
c3QgU3RyaW5nJiB1cmwpIGNvbnN0OwotICAgICAgICBib29sIGZpbmRJblJlcXVlc3QoY29uc3Qg
U3RyaW5nJiwgYm9vbCBkZWNvZGVFbnRpdGllcyA9IHRydWUsIGJvb2wgYWxsb3dSZXF1ZXN0SWZO
b0lsbGVnYWxVUklDaGFyYWN0ZXJzID0gZmFsc2UsIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYm9vbCBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXNUd2ljZSA9IGZhbHNlKSBjb25zdDsKLSAg
ICAgICAgYm9vbCBmaW5kSW5SZXF1ZXN0KEZyYW1lKiwgY29uc3QgU3RyaW5nJiwgYm9vbCBkZWNv
ZGVFbnRpdGllcyA9IHRydWUsIGJvb2wgYWxsb3dSZXF1ZXN0SWZOb0lsbGVnYWxVUklDaGFyYWN0
ZXJzID0gZmFsc2UsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBkZWNvZGVVUkxF
c2NhcGVTZXF1ZW5jZXNUd2ljZSA9IGZhbHNlKSBjb25zdDsKKyAgICAgICAgYm9vbCBmaW5kSW5S
ZXF1ZXN0KGNvbnN0IEZpbmRUYXNrJikgY29uc3Q7CisgICAgICAgIGJvb2wgZmluZEluUmVxdWVz
dChGcmFtZSosIGNvbnN0IEZpbmRUYXNrJikgY29uc3Q7CiAKICAgICAgICAgLy8gVGhlIGZyYW1l
IHRvIGF1ZGl0LgogICAgICAgICBGcmFtZSogbV9mcmFtZTsK
</data>
<flag name="review"
          id="27543"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="27544"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>