<?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>101989</bug_id>
          
          <creation_ts>2012-11-12 14:19:41 -0800</creation_ts>
          <short_desc>JSC: JSEventListener&apos;s m_jsFunction should be a weak ref</short_desc>
          <delta_ts>2012-11-14 17:03:59 -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>WebCore JavaScript</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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>ggaren</cc>
    
    <cc>philn</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>764820</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-11-12 14:19:41 -0800</bug_when>
    <thetext>The GC can collect the JSFunction object without JSEventListener&apos;s knowledge.  Hence, JSEventListener&apos;s m_jsFunction ref should be a weak ref to reflect this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765046</commentid>
    <comment_count>1</comment_count>
      <attachid>173774</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-11-12 17:49:36 -0800</bug_when>
    <thetext>Created attachment 173774
1st draft.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765050</commentid>
    <comment_count>2</comment_count>
      <attachid>173774</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-12 17:56:24 -0800</bug_when>
    <thetext>Comment on attachment 173774
1st draft.

Attachment 173774 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14810697</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765065</commentid>
    <comment_count>3</comment_count>
      <attachid>173777</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-11-12 18:03:07 -0800</bug_when>
    <thetext>Created attachment 173777
2nd draft: added missing file from last patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765082</commentid>
    <comment_count>4</comment_count>
      <attachid>173777</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-12 18:11:16 -0800</bug_when>
    <thetext>Comment on attachment 173777
2nd draft: added missing file from last patch.

Attachment 173777 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14810702</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765084</commentid>
    <comment_count>5</comment_count>
      <attachid>173777</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-12 18:11:58 -0800</bug_when>
    <thetext>Comment on attachment 173777
2nd draft: added missing file from last patch.

Attachment 173777 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14809661</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765101</commentid>
    <comment_count>6</comment_count>
      <attachid>173777</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-11-12 18:31:02 -0800</bug_when>
    <thetext>Comment on attachment 173777
2nd draft: added missing file from last patch.

Something is fishy.  Why is it not building?  Will investigate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765145</commentid>
    <comment_count>7</comment_count>
      <attachid>173801</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-11-12 19:57:56 -0800</bug_when>
    <thetext>Created attachment 173801
3rd time&apos;s the charm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765158</commentid>
    <comment_count>8</comment_count>
      <attachid>173801</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-11-12 20:27:17 -0800</bug_when>
    <thetext>Comment on attachment 173801
3rd time&apos;s the charm.

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

You mentioned that you saw problems on websites with an earlier version of this patch. Does this patch fix those problems?

&gt; Source/JavaScriptCore/heap/SlotVisitor.h:61
&gt; +    void appendUnbarrieredWeakRef(Weak&lt;T&gt;*);

We don&apos;t usually use the abbreviation &quot;Ref&quot; outside of CoreFoundation classes. How about just calling this &quot;appendUnbarrieredWeak&quot; or &quot;appendUnbarriered&quot;?

&gt; Source/JavaScriptCore/heap/SlotVisitorInlines.h:73
&gt; +    if (weakRef &amp;&amp; *weakRef)

I don&apos;t think weakRef can ever be NULL here.

Instead of the *weakRef test, I think you either need a call to .get() or a call to operator!(). It&apos;s an error to use operator*() after a weak pointer has been collected.

&gt; Source/JavaScriptCore/heap/Weak.h:160
&gt; +template&lt;typename T&gt; inline JSValue Weak&lt;T&gt;::referee()
&gt; +{
&gt; +    return m_impl ? m_impl-&gt;jsValue() : JSValue();
&gt; +}

Why do we need this function, when we already have operator*() and .get()?

&gt; Source/WebCore/bindings/js/JSEventListener.cpp:69
&gt; +    // JSEventListener may outlive its m_jsFunction. In this case, we will
&gt; +    // m_jsFunction to be 0.

&quot;we will&quot;: seems like you meant something else here.

There&apos;s a lot of commentary about m_jsFunction here, but this function doesn&apos;t use that data member. Does any of this explain why the base class implementation of initializeJSFunction() should return 0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765172</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-11-12 20:46:00 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 173801 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173801&amp;action=review
&gt; 
&gt; You mentioned that you saw problems on websites with an earlier version of this patch. Does this patch fix those problems?

Unfortunately not.  Just presenting it to let you have a look in case I made some major mistake.

&gt; &gt; Source/JavaScriptCore/heap/SlotVisitor.h:61
&gt; &gt; +    void appendUnbarrieredWeakRef(Weak&lt;T&gt;*);
&gt; 
&gt; We don&apos;t usually use the abbreviation &quot;Ref&quot; outside of CoreFoundation classes. How about just calling this &quot;appendUnbarrieredWeak&quot; or &quot;appendUnbarriered&quot;?

OK, will change to &quot;appendUnbarrieredWeak&quot; to be consistent (plus it&apos;s easier to grep for when we don&apos;t use overloaded names).  There are already 2 other pre-existing &quot;appendUnbarrieredX&quot; functions.

&gt; &gt; Source/JavaScriptCore/heap/SlotVisitorInlines.h:73
&gt; &gt; +    if (weakRef &amp;&amp; *weakRef)
&gt; 
&gt; I don&apos;t think weakRef can ever be NULL here.
&gt; 
&gt; Instead of the *weakRef test, I think you either need a call to .get() or a call to operator!(). It&apos;s an error to use operator*() after a weak pointer has been collected.

Thanks.  Will fix and change to .get().

&gt; &gt; Source/JavaScriptCore/heap/Weak.h:160
&gt; &gt; +template&lt;typename T&gt; inline JSValue Weak&lt;T&gt;::referee()
&gt; &gt; +{
&gt; &gt; +    return m_impl ? m_impl-&gt;jsValue() : JSValue();
&gt; &gt; +}
&gt; 
&gt; Why do we need this function, when we already have operator*() and .get()?

It&apos;s a remnant from when I was still trying to understand this code.  I should be able to change it to use .get() and remove this.

&gt; &gt; Source/WebCore/bindings/js/JSEventListener.cpp:69
&gt; &gt; +    // JSEventListener may outlive its m_jsFunction. In this case, we will
&gt; &gt; +    // m_jsFunction to be 0.
&gt; 
&gt; &quot;we will&quot;: seems like you meant something else here.
&gt; 
&gt; There&apos;s a lot of commentary about m_jsFunction here, but this function doesn&apos;t use that data member. Does any of this explain why the base class implementation of initializeJSFunction() should return 0?

There used to be an assertion here that was invalidated by the change to use weak refs.  This comment was meant to explain the circumstances behind why the assertion should not be there, but appears to be incomplete (my thought was probably interrupted in mid edit).  After making the change to check if m_wrapper is 0 at the top of JSEventListener::jsFunction(), the change is no longer necessary and can be reverted.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766366</commentid>
    <comment_count>10</comment_count>
      <attachid>174061</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-11-13 20:51:22 -0800</bug_when>
    <thetext>Created attachment 174061
Fix.

All the issues that Geoff pointed out has been addressed.  The website rendering issue turned out to be because the Weak implementation did not have an operation==() implementation.  As a result, when we changed m_jsFunction to be a Weak ref, JSEventListener::operator==() (which was comparing m_jsFunctions) was getting the wrong result.  This is now fixed by providing an implementation of operator==(const Weak&lt;T&gt;&amp;, const Weak&lt;T&gt;&amp;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767217</commentid>
    <comment_count>11</comment_count>
      <attachid>174061</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-11-14 13:07:22 -0800</bug_when>
    <thetext>Comment on attachment 174061
Fix.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767491</commentid>
    <comment_count>12</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2012-11-14 17:03:59 -0800</bug_when>
    <thetext>Fix landed in r134697: &lt;http://trac.webkit.org/changeset/134697&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173774</attachid>
            <date>2012-11-12 17:49:36 -0800</date>
            <delta_ts>2012-11-12 17:57:11 -0800</delta_ts>
            <desc>1st draft.</desc>
            <filename>bug-101989.patch</filename>
            <type>text/plain</type>
            <size>9209</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM0MzMxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDEyLTExLTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBD
aGFuZ2UgSlNFdmVudExpc3RlbmVyOjptX2pzRnVuY3Rpb24gdG8gYmUgYSB3ZWFrIHJlZi4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTk4OS4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBpbmZy
YXN0cnVjdHVyZSBmb3Igc2Nhbm5pbmcgd2VhayByZWYgc2xvdHMuCisKKyAgICAgICAgKiBoZWFw
L1Nsb3RWaXNpdG9yLmNwcDoKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9yLmg6CisgICAgICAg
IChTbG90VmlzaXRvcik6IEFkZGVkIFNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXJlZFdlYWtS
ZWYoKS4KKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5oOgorICAgICAgICAoSlND
OjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRXZWFrUmVmKToKKyAgICAgICAgKiBoZWFw
L1dlYWsuaDoKKyAgICAgICAgKEpTQzo6V2VhazxUPjo6cmVmZXJlZSk6CisgICAgICAgICogcnVu
dGltZS9KU0NlbGwuaDoKKwogMjAxMi0xMS0xMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUu
Y29tPgogCiAgICAgICAgIERGRyBBcml0aE11bCBvdmVyZmxvdyBjaGVjayBlbGltaW5hdGlvbiBp
cyB0b28gYWdncmVzc2l2ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZp
c2l0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RW
aXNpdG9yLmNwcAkocmV2aXNpb24gMTM0MzA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvU2xvdFZpc2l0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgiCisjaW5jbHVkZSAiU2xvdFZp
c2l0b3JJbmxpbmVzLmgiCiAKICNpbmNsdWRlICJDb25zZXJ2YXRpdmVSb290cy5oIgogI2luY2x1
ZGUgIkNvcGllZFNwYWNlLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90
VmlzaXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RW
aXNpdG9yLmgJKHJldmlzaW9uIDEzNDMwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L1Nsb3RWaXNpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiBjbGFzcyBDb25zZXJ2YXRpdmVSb290czsKIGNsYXNzIEdDVGhyZWFkU2hhcmVkRGF0
YTsKIGNsYXNzIEhlYXA7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBXZWFrOwogdGVtcGxh
dGU8dHlwZW5hbWUgVD4gY2xhc3MgV3JpdGVCYXJyaWVyQmFzZTsKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IGNsYXNzIEpJVFdyaXRlQmFycmllcjsKIApAQCAtNTYsNiArNTcsOCBAQCBwdWJsaWM6CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICB2b2lkIGFwcGVuZFVuYmFycmllcmVkUG9pbnRl
cihUKiopOwogICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRWYWx1ZShKU1ZhbHVlKik7CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkIGFwcGVuZFVuYmFycmllcmVkV2Vha1JlZihX
ZWFrPFQ+Kik7CiAgICAgCiAgICAgdm9pZCBhZGRPcGFxdWVSb290KHZvaWQqKTsKICAgICBib29s
IGNvbnRhaW5zT3BhcXVlUm9vdCh2b2lkKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9TbG90VmlzaXRvcklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaAkocmV2aXNpb24gMTM0MzA1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNp
bmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiU2xvdFZpc2l0b3IuaCIKKyNpbmNsdWRlICJX
ZWFrLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC02Niw2ICs2NywxMyBAQCBBTFdBWVNfSU5M
SU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZChKCiAgICAgaW50ZXJuYWxBcHBlbmQoKnNsb3Qp
OwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorQUxXQVlTX0lOTElORSB2b2lkIFNsb3RWaXNp
dG9yOjphcHBlbmRVbmJhcnJpZXJlZFdlYWtSZWYoV2VhazxUPiogd2Vha1JlZikKK3sKKyAgICBp
ZiAod2Vha1JlZiAmJiAqd2Vha1JlZikKKyAgICAgICAgaW50ZXJuYWxBcHBlbmQod2Vha1JlZi0+
cmVmZXJlZSgpKTsKK30KKwogQUxXQVlTX0lOTElORSB2b2lkIFNsb3RWaXNpdG9yOjppbnRlcm5h
bEFwcGVuZChKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICghdmFsdWUgfHwgIXZhbHVlLmlzQ2Vs
bCgpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vhay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWsuaAkocmV2aXNpb24gMTM0MzA1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vhay5oCSh3b3JraW5nIGNvcHkpCkBAIC02
NSw4ICs2NSwxMSBAQCBwdWJsaWM6CiAgICAgCiBwcml2YXRlOgogICAgIHN0YXRpYyBXZWFrSW1w
bCogaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7CisgICAgSlNWYWx1ZSByZWZlcmVlKCk7CiAKICAg
ICBXZWFrSW1wbCogbV9pbXBsOworCisgICAgZnJpZW5kIGNsYXNzIFNsb3RWaXNpdG9yOwogfTsK
IAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFdlYWs8VD46OldlYWsoKQpAQCAtMTUxLDYg
KzE1NCwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgV2Vha0ltcGwqIFdlCiAgICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2Vha0ltcGwqPigtMSk7CiB9CiAKK3RlbXBsYXRlPHR5
cGVuYW1lIFQ+IGlubGluZSBKU1ZhbHVlIFdlYWs8VD46OnJlZmVyZWUoKQoreworICAgIHJldHVy
biBtX2ltcGwgPyBtX2ltcGwtPmpzVmFsdWUoKSA6IEpTVmFsdWUoKTsKK30KKwogLy8gVGhpcyBm
dW5jdGlvbiBoZWxwcyBhdm9pZCBtb2RpZnlpbmcgYSB3ZWFrIHRhYmxlIHdoaWxlIGhvbGRpbmcg
YW4gaXRlcmF0b3IgaW50byBpdC4gKE9iamVjdCBhbGxvY2F0aW9uCiAvLyBjYW4gcnVuIGEgZmlu
YWxpemVyIHRoYXQgbW9kaWZpZXMgdGhlIHRhYmxlLiBXZSBhdm9pZCB0aGF0IGJ5IHJlcXVpcmlu
ZyBhIHByZS1jb25zdHJ1Y3RlZCBvYmplY3QgYXMgb3VyIHZhbHVlLikKIHRlbXBsYXRlPHR5cGVu
YW1lIE1hcCwgdHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZT4gaW5saW5lIHZvaWQgd2Vha0Fk
ZChNYXAmIG1hcCwgY29uc3QgS2V5JiBrZXksIFZhbHVlIHZhbHVlKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgJKHJldmlzaW9uIDEzNDMwNSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICsz
MCw2IEBACiAjaW5jbHVkZSAiSlNMb2NrLmgiCiAjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJTbG90VmlzaXRvci5oIgotI2luY2x1ZGUgIlNsb3RWaXNpdG9ySW5saW5lcy5o
IgogI2luY2x1ZGUgIlR5cGVkQXJyYXlEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJy
aWVyLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxMzQzMzEpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyMSBAQAorMjAxMi0xMS0xMiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5j
b20+CisKKyAgICAgICAgQ2hhbmdlIEpTRXZlbnRMaXN0ZW5lcjo6bV9qc0Z1bmN0aW9uIHRvIGJl
IGEgd2VhayByZWYuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDE5ODkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5n
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTRXZlbnRMaXN0ZW5lcjo6SlNFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkpTRXZlbnRMaXN0ZW5lcjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SlNFdmVudExpc3RlbmVyOjp2aXNpdEpTRnVuY3Rpb24pOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oOgorICAgICAgICAoSlNFdmVudExpc3RlbmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTRXZlbnRMaXN0ZW5lcjo6anNGdW5jdGlvbik6CisKIDIwMTIt
MTEtMTIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAg
Rml4IGZpbHRlciBkaXJ0eSByZWN0IHJlZ3Jlc3Npb24gZnJvbSByMTM0MzExCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAkocmV2aXNpb24gMTM0MzA1KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNs
dWRlICJTdHlsZVByb3BlcnR5U2V0LmgiCiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgorI2lu
Y2x1ZGUgPGhlYXAvU2xvdFZpc2l0b3IuaD4KICNpbmNsdWRlIDxoZWFwL1dlYWsuaD4KICNpbmNs
dWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlw
ZS5oPgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVu
ZXIuY3BwCShyZXZpc2lvbiAxMzQzMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V2ZW50TGlzdGVuZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw5ICs0MSwxMCBAQCBKU0V2
ZW50TGlzdGVuZXI6OkpTRXZlbnRMaXN0ZW5lcihKU09iamVjCiAgICAgLCBtX2lzQXR0cmlidXRl
KGlzQXR0cmlidXRlKQogICAgICwgbV9pc29sYXRlZFdvcmxkKGlzb2xhdGVkV29ybGQpCiB7Ci0g
ICAgaWYgKHdyYXBwZXIpCi0gICAgICAgIG1fanNGdW5jdGlvbi5zZXRNYXlCZU51bGwoKm1faXNv
bGF0ZWRXb3JsZC0+Z2xvYmFsRGF0YSgpLCB3cmFwcGVyLCBmdW5jdGlvbik7Ci0gICAgZWxzZQor
ICAgIGlmICh3cmFwcGVyKSB7CisgICAgICAgIEpTQzo6SGVhcDo6d3JpdGVCYXJyaWVyKHdyYXBw
ZXIsIGZ1bmN0aW9uKTsKKyAgICAgICAgbV9qc0Z1bmN0aW9uID0gSlNDOjpQYXNzV2VhazxKU0M6
OkpTT2JqZWN0PihmdW5jdGlvbik7CisgICAgfSBlbHNlCiAgICAgICAgIEFTU0VSVCghZnVuY3Rp
b24pOwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgVGhyZWFkTG9jYWxJbnNwZWN0b3JDb3Vu
dGVyczo6Y3VycmVudCgpLmluY3JlbWVudENvdW50ZXIoVGhyZWFkTG9jYWxJbnNwZWN0b3JDb3Vu
dGVyczo6SlNFdmVudExpc3RlbmVyQ291bnRlcik7CkBAIC01OSwxNCArNjAsMjAgQEAgSlNFdmVu
dExpc3RlbmVyOjp+SlNFdmVudExpc3RlbmVyKCkKIAogSlNPYmplY3QqIEpTRXZlbnRMaXN0ZW5l
cjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIGNvbnN0CiB7
Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgLy8gbV9qc0Z1bmN0aW9uIGlzIGEgd2Vh
ayByZWYgdG8gdGhlIEpTRnVuY3Rpb24gb2JqZWN0IHRoYXQgaXMgb25seSBrZXB0CisgICAgLy8g
YWxpdmUgaWYgdGhlIGNvcnJlc3BvbmRpbmcgbV93cmFwcGVyIG9iamVjdCBpcyBhbGl2ZS4KKyAg
ICAvLworICAgIC8vIFdoZW4gYSBET01XcmFwcGVyV29ybGQgaXMgdG9ybiBkb3duLCBpdCBjdXJy
ZW50bHkgZG9lc24ndCBrbm93IGhvdyB0bworICAgIC8vIGNsZWFuIHVwIGFsbCB0aGUgZXZlbnQg
bGlzdGVuZXJzIHRoYXQgd2VyZSAiYWRkZWQgYnkgaXQiLiBIZW5jZSwgdGhlCisgICAgLy8gSlNF
dmVudExpc3RlbmVyIG1heSBvdXRsaXZlIGl0cyBtX2pzRnVuY3Rpb24uIEluIHRoaXMgY2FzZSwg
d2Ugd2lsbAorICAgIC8vIG1fanNGdW5jdGlvbiB0byBiZSAwLgorCiAgICAgcmV0dXJuIDA7CiB9
CiAKIHZvaWQgSlNFdmVudExpc3RlbmVyOjp2aXNpdEpTRnVuY3Rpb24oU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCiB7Ci0gICAgaWYgKG1fanNGdW5jdGlvbikKLSAgICAgICAgdmlzaXRvci5hcHBlbmQo
Jm1fanNGdW5jdGlvbik7CisgICAgdmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFdlYWtSZWYoJm1f
anNGdW5jdGlvbik7CiB9CiAKIHZvaWQgSlNFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBFdmVudCogZXZlbnQp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaAko
cmV2aXNpb24gMTM0MzA1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExp
c3RlbmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTY2LDcgKzY2LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIEV2ZW50Kik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBtdXRhYmxlIEpTQzo6V3Jp
dGVCYXJyaWVyPEpTQzo6SlNPYmplY3Q+IG1fanNGdW5jdGlvbjsKKyAgICAgICAgbXV0YWJsZSBK
U0M6OldlYWs8SlNDOjpKU09iamVjdD4gbV9qc0Z1bmN0aW9uOwogICAgICAgICBtdXRhYmxlIEpT
Qzo6V2VhazxKU0M6OkpTT2JqZWN0PiBtX3dyYXBwZXI7CiAKICAgICAgICAgYm9vbCBtX2lzQXR0
cmlidXRlOwpAQCAtNzUsNiArNzUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBpbmxp
bmUgSlNDOjpKU09iamVjdCogSlNFdmVudExpc3RlbmVyOjpqc0Z1bmN0aW9uKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIGNvbnN0CiAgICAgeworICAgICAg
ICBpZiAoIW1fd3JhcHBlcikKKyAgICAgICAgICAgIHJldHVybiAwOworCiAgICAgICAgIC8vIGlu
aXRpYWxpemVKU0Z1bmN0aW9uIGNhbiB0cmlnZ2VyIGNvZGUgdGhhdCBkZWxldGVzIHRoaXMgZXZl
bnQgbGlzdGVuZXIKICAgICAgICAgLy8gYmVmb3JlIHdlJ3JlIGRvbmUuIEl0IHNob3VsZCBhbHdh
eXMgcmV0dXJuIDAgaW4gdGhpcyBjYXNlLgogICAgICAgICBSZWZQdHI8SlNFdmVudExpc3RlbmVy
PiBwcm90ZWN0KGNvbnN0X2Nhc3Q8SlNFdmVudExpc3RlbmVyKj4odGhpcykpOwpAQCAtODIsMTQg
Kzg1LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBpZiAoIW1fanNGdW5jdGlv
bikgewogICAgICAgICAgICAgSlNDOjpKU09iamVjdCogZnVuY3Rpb24gPSBpbml0aWFsaXplSlNG
dW5jdGlvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICAgICAgICAgIG1fanNGdW5jdGlv
bi5zZXRNYXlCZU51bGwoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmdsb2JhbERhdGEoKSwgbV93
cmFwcGVyLmdldCgpLCBmdW5jdGlvbik7CisgICAgICAgICAgICBKU0M6OkhlYXA6OndyaXRlQmFy
cmllcihtX3dyYXBwZXIuZ2V0KCksIGZ1bmN0aW9uKTsKKyAgICAgICAgICAgIG1fanNGdW5jdGlv
biA9IEpTQzo6UGFzc1dlYWs8SlNDOjpKU09iamVjdD4oZnVuY3Rpb24pOwogICAgICAgICB9CiAK
ICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgd2UgaGF2ZSBhIHZhbGlkIHdyYXBwZXIgcHJvdGVjdGlu
ZyBvdXIgZnVuY3Rpb24gZnJvbQogICAgICAgICAvLyBnYXJiYWdlIGNvbGxlY3Rpb24uCiAgICAg
ICAgIEFTU0VSVChtX3dyYXBwZXIgfHwgIW1fanNGdW5jdGlvbik7Ci0gICAgICAgIGlmICghbV93
cmFwcGVyKQotICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAgLy8gVHJ5IHRvIHZlcmlm
eSB0aGF0IG1fanNGdW5jdGlvbiB3YXNuJ3QgcmVjeWNsZWQuIChOb3QgZXhhY3QsIHNpbmNlIGFu
CiAgICAgICAgIC8vIGV2ZW50IGxpc3RlbmVyIGNhbiBiZSBhbG1vc3QgYW55dGhpbmcsIGJ1dCB0
aGlzIG1ha2VzIHRlc3Qtd3JpdGluZyBlYXNpZXIpLgo=
</data>
<flag name="commit-queue"
          id="188580"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173777</attachid>
            <date>2012-11-12 18:03:07 -0800</date>
            <delta_ts>2012-11-12 18:31:02 -0800</delta_ts>
            <desc>2nd draft: added missing file from last patch.</desc>
            <filename>bug-101989.patch</filename>
            <type>text/plain</type>
            <size>11016</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM0MzMxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDEyLTExLTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBD
aGFuZ2UgSlNFdmVudExpc3RlbmVyOjptX2pzRnVuY3Rpb24gdG8gYmUgYSB3ZWFrIHJlZi4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTk4OS4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBpbmZy
YXN0cnVjdHVyZSBmb3Igc2Nhbm5pbmcgd2VhayByZWYgc2xvdHMuCisKKyAgICAgICAgKiBoZWFw
L1Nsb3RWaXNpdG9yLmNwcDoKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9yLmg6CisgICAgICAg
IChTbG90VmlzaXRvcik6IEFkZGVkIFNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXJlZFdlYWtS
ZWYoKS4KKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5oOgorICAgICAgICAoSlND
OjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRXZWFrUmVmKToKKyAgICAgICAgKiBoZWFw
L1dlYWsuaDoKKyAgICAgICAgKEpTQzo6V2VhazxUPjo6cmVmZXJlZSk6CisgICAgICAgICogcnVu
dGltZS9KU0NlbGwuaDoKKwogMjAxMi0xMS0xMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUu
Y29tPgogCiAgICAgICAgIERGRyBBcml0aE11bCBvdmVyZmxvdyBjaGVjayBlbGltaW5hdGlvbiBp
cyB0b28gYWdncmVzc2l2ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZp
c2l0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RW
aXNpdG9yLmNwcAkocmV2aXNpb24gMTM0MzA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvU2xvdFZpc2l0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgiCisjaW5jbHVkZSAiU2xvdFZp
c2l0b3JJbmxpbmVzLmgiCiAKICNpbmNsdWRlICJDb25zZXJ2YXRpdmVSb290cy5oIgogI2luY2x1
ZGUgIkNvcGllZFNwYWNlLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90
VmlzaXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RW
aXNpdG9yLmgJKHJldmlzaW9uIDEzNDMwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L1Nsb3RWaXNpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiBjbGFzcyBDb25zZXJ2YXRpdmVSb290czsKIGNsYXNzIEdDVGhyZWFkU2hhcmVkRGF0
YTsKIGNsYXNzIEhlYXA7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBXZWFrOwogdGVtcGxh
dGU8dHlwZW5hbWUgVD4gY2xhc3MgV3JpdGVCYXJyaWVyQmFzZTsKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IGNsYXNzIEpJVFdyaXRlQmFycmllcjsKIApAQCAtNTYsNiArNTcsOCBAQCBwdWJsaWM6CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICB2b2lkIGFwcGVuZFVuYmFycmllcmVkUG9pbnRl
cihUKiopOwogICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRWYWx1ZShKU1ZhbHVlKik7CisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkIGFwcGVuZFVuYmFycmllcmVkV2Vha1JlZihX
ZWFrPFQ+Kik7CiAgICAgCiAgICAgdm9pZCBhZGRPcGFxdWVSb290KHZvaWQqKTsKICAgICBib29s
IGNvbnRhaW5zT3BhcXVlUm9vdCh2b2lkKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9TbG90VmlzaXRvcklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaAkocmV2aXNpb24gMTM0MzA1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlubGluZXMuaCIKICNp
bmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiU2xvdFZpc2l0b3IuaCIKKyNpbmNsdWRlICJX
ZWFrLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC02Niw2ICs2NywxMyBAQCBBTFdBWVNfSU5M
SU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZChKCiAgICAgaW50ZXJuYWxBcHBlbmQoKnNsb3Qp
OwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorQUxXQVlTX0lOTElORSB2b2lkIFNsb3RWaXNp
dG9yOjphcHBlbmRVbmJhcnJpZXJlZFdlYWtSZWYoV2VhazxUPiogd2Vha1JlZikKK3sKKyAgICBp
ZiAod2Vha1JlZiAmJiAqd2Vha1JlZikKKyAgICAgICAgaW50ZXJuYWxBcHBlbmQod2Vha1JlZi0+
cmVmZXJlZSgpKTsKK30KKwogQUxXQVlTX0lOTElORSB2b2lkIFNsb3RWaXNpdG9yOjppbnRlcm5h
bEFwcGVuZChKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICghdmFsdWUgfHwgIXZhbHVlLmlzQ2Vs
bCgpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vhay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWsuaAkocmV2aXNpb24gMTM0MzA1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vhay5oCSh3b3JraW5nIGNvcHkpCkBAIC02
NSw4ICs2NSwxMSBAQCBwdWJsaWM6CiAgICAgCiBwcml2YXRlOgogICAgIHN0YXRpYyBXZWFrSW1w
bCogaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7CisgICAgSlNWYWx1ZSByZWZlcmVlKCk7CiAKICAg
ICBXZWFrSW1wbCogbV9pbXBsOworCisgICAgZnJpZW5kIGNsYXNzIFNsb3RWaXNpdG9yOwogfTsK
IAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFdlYWs8VD46OldlYWsoKQpAQCAtMTUxLDYg
KzE1NCwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgV2Vha0ltcGwqIFdlCiAgICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2Vha0ltcGwqPigtMSk7CiB9CiAKK3RlbXBsYXRlPHR5
cGVuYW1lIFQ+IGlubGluZSBKU1ZhbHVlIFdlYWs8VD46OnJlZmVyZWUoKQoreworICAgIHJldHVy
biBtX2ltcGwgPyBtX2ltcGwtPmpzVmFsdWUoKSA6IEpTVmFsdWUoKTsKK30KKwogLy8gVGhpcyBm
dW5jdGlvbiBoZWxwcyBhdm9pZCBtb2RpZnlpbmcgYSB3ZWFrIHRhYmxlIHdoaWxlIGhvbGRpbmcg
YW4gaXRlcmF0b3IgaW50byBpdC4gKE9iamVjdCBhbGxvY2F0aW9uCiAvLyBjYW4gcnVuIGEgZmlu
YWxpemVyIHRoYXQgbW9kaWZpZXMgdGhlIHRhYmxlLiBXZSBhdm9pZCB0aGF0IGJ5IHJlcXVpcmlu
ZyBhIHByZS1jb25zdHJ1Y3RlZCBvYmplY3QgYXMgb3VyIHZhbHVlLikKIHRlbXBsYXRlPHR5cGVu
YW1lIE1hcCwgdHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZT4gaW5saW5lIHZvaWQgd2Vha0Fk
ZChNYXAmIG1hcCwgY29uc3QgS2V5JiBrZXksIFZhbHVlIHZhbHVlKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgJKHJldmlzaW9uIDEzNDMwNSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICsz
MCw2IEBACiAjaW5jbHVkZSAiSlNMb2NrLmgiCiAjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJTbG90VmlzaXRvci5oIgotI2luY2x1ZGUgIlNsb3RWaXNpdG9ySW5saW5lcy5o
IgogI2luY2x1ZGUgIlR5cGVkQXJyYXlEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJy
aWVyLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxMzQzMzEpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyMSBAQAorMjAxMi0xMS0xMiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5j
b20+CisKKyAgICAgICAgQ2hhbmdlIEpTRXZlbnRMaXN0ZW5lcjo6bV9qc0Z1bmN0aW9uIHRvIGJl
IGEgd2VhayByZWYuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDE5ODkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5n
Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTRXZlbnRMaXN0ZW5lcjo6SlNFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkpTRXZlbnRMaXN0ZW5lcjo6aW5pdGlhbGl6ZUpTRnVuY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SlNFdmVudExpc3RlbmVyOjp2aXNpdEpTRnVuY3Rpb24pOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oOgorICAgICAgICAoSlNFdmVudExpc3RlbmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTRXZlbnRMaXN0ZW5lcjo6anNGdW5jdGlvbik6CisKIDIwMTIt
MTEtMTIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAg
Rml4IGZpbHRlciBkaXJ0eSByZWN0IHJlZ3Jlc3Npb24gZnJvbSByMTM0MzExCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9oZWFwL1Nsb3RWaXNpdG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvaGVhcC9TbG90VmlzaXRvci5o
CShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvaGVhcC9T
bG90VmlzaXRvci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgV2ViQ29yZV9GV0RfU2xv
dFZpc2l0b3JfaAorI2RlZmluZSBXZWJDb3JlX0ZXRF9TbG90VmlzaXRvcl9oCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvU2xvdFZpc2l0b3IuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9T
bG90VmlzaXRvcklubGluZXMuaD4KKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmgJKHJldmlzaW9uIDEzNDMwNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3
IEBACiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0
eVNldC5oIgogI2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIKKyNpbmNsdWRlIDxoZWFwL1Nsb3RW
aXNpdG9yLmg+CiAjaW5jbHVkZSA8aGVhcC9XZWFrLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FcnJv
ci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAkocmV2aXNpb24g
MTM0MzA1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDEsOSArNDEsMTAgQEAgSlNFdmVudExpc3RlbmVyOjpKU0V2
ZW50TGlzdGVuZXIoSlNPYmplYwogICAgICwgbV9pc0F0dHJpYnV0ZShpc0F0dHJpYnV0ZSkKICAg
ICAsIG1faXNvbGF0ZWRXb3JsZChpc29sYXRlZFdvcmxkKQogewotICAgIGlmICh3cmFwcGVyKQot
ICAgICAgICBtX2pzRnVuY3Rpb24uc2V0TWF5QmVOdWxsKCptX2lzb2xhdGVkV29ybGQtPmdsb2Jh
bERhdGEoKSwgd3JhcHBlciwgZnVuY3Rpb24pOwotICAgIGVsc2UKKyAgICBpZiAod3JhcHBlcikg
eworICAgICAgICBKU0M6OkhlYXA6OndyaXRlQmFycmllcih3cmFwcGVyLCBmdW5jdGlvbik7Cisg
ICAgICAgIG1fanNGdW5jdGlvbiA9IEpTQzo6UGFzc1dlYWs8SlNDOjpKU09iamVjdD4oZnVuY3Rp
b24pOworICAgIH0gZWxzZQogICAgICAgICBBU1NFUlQoIWZ1bmN0aW9uKTsKICNpZiBFTkFCTEUo
SU5TUEVDVE9SKQogICAgIFRocmVhZExvY2FsSW5zcGVjdG9yQ291bnRlcnM6OmN1cnJlbnQoKS5p
bmNyZW1lbnRDb3VudGVyKFRocmVhZExvY2FsSW5zcGVjdG9yQ291bnRlcnM6OkpTRXZlbnRMaXN0
ZW5lckNvdW50ZXIpOwpAQCAtNTksMTQgKzYwLDIwIEBAIEpTRXZlbnRMaXN0ZW5lcjo6fkpTRXZl
bnRMaXN0ZW5lcigpCiAKIEpTT2JqZWN0KiBKU0V2ZW50TGlzdGVuZXI6OmluaXRpYWxpemVKU0Z1
bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBjb25zdAogewotICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIC8vIG1fanNGdW5jdGlvbiBpcyBhIHdlYWsgcmVmIHRvIHRoZSBKU0Z1
bmN0aW9uIG9iamVjdCB0aGF0IGlzIG9ubHkga2VwdAorICAgIC8vIGFsaXZlIGlmIHRoZSBjb3Jy
ZXNwb25kaW5nIG1fd3JhcHBlciBvYmplY3QgaXMgYWxpdmUuCisgICAgLy8KKyAgICAvLyBXaGVu
IGEgRE9NV3JhcHBlcldvcmxkIGlzIHRvcm4gZG93biwgaXQgY3VycmVudGx5IGRvZXNuJ3Qga25v
dyBob3cgdG8KKyAgICAvLyBjbGVhbiB1cCBhbGwgdGhlIGV2ZW50IGxpc3RlbmVycyB0aGF0IHdl
cmUgImFkZGVkIGJ5IGl0Ii4gSGVuY2UsIHRoZQorICAgIC8vIEpTRXZlbnRMaXN0ZW5lciBtYXkg
b3V0bGl2ZSBpdHMgbV9qc0Z1bmN0aW9uLiBJbiB0aGlzIGNhc2UsIHdlIHdpbGwKKyAgICAvLyBt
X2pzRnVuY3Rpb24gdG8gYmUgMC4KKwogICAgIHJldHVybiAwOwogfQogCiB2b2lkIEpTRXZlbnRM
aXN0ZW5lcjo6dmlzaXRKU0Z1bmN0aW9uKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewotICAgIGlm
IChtX2pzRnVuY3Rpb24pCi0gICAgICAgIHZpc2l0b3IuYXBwZW5kKCZtX2pzRnVuY3Rpb24pOwor
ICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRXZWFrUmVmKCZtX2pzRnVuY3Rpb24pOwogfQog
CiB2b2lkIEpTRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgRXZlbnQqIGV2ZW50KQpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgJKHJldmlzaW9uIDEzNDMwNSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oCSh3b3JraW5n
IGNvcHkpCkBAIC02Niw3ICs2Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmly
dHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCopOwog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgbXV0YWJsZSBKU0M6OldyaXRlQmFycmllcjxKU0M6OkpT
T2JqZWN0PiBtX2pzRnVuY3Rpb247CisgICAgICAgIG11dGFibGUgSlNDOjpXZWFrPEpTQzo6SlNP
YmplY3Q+IG1fanNGdW5jdGlvbjsKICAgICAgICAgbXV0YWJsZSBKU0M6OldlYWs8SlNDOjpKU09i
amVjdD4gbV93cmFwcGVyOwogCiAgICAgICAgIGJvb2wgbV9pc0F0dHJpYnV0ZTsKQEAgLTc1LDYg
Kzc1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgaW5saW5lIEpTQzo6SlNPYmplY3Qq
IEpTRXZlbnRMaXN0ZW5lcjo6anNGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KSBjb25zdAogICAgIHsKKyAgICAgICAgaWYgKCFtX3dyYXBwZXIp
CisgICAgICAgICAgICByZXR1cm4gMDsKKwogICAgICAgICAvLyBpbml0aWFsaXplSlNGdW5jdGlv
biBjYW4gdHJpZ2dlciBjb2RlIHRoYXQgZGVsZXRlcyB0aGlzIGV2ZW50IGxpc3RlbmVyCiAgICAg
ICAgIC8vIGJlZm9yZSB3ZSdyZSBkb25lLiBJdCBzaG91bGQgYWx3YXlzIHJldHVybiAwIGluIHRo
aXMgY2FzZS4KICAgICAgICAgUmVmUHRyPEpTRXZlbnRMaXN0ZW5lcj4gcHJvdGVjdChjb25zdF9j
YXN0PEpTRXZlbnRMaXN0ZW5lcio+KHRoaXMpKTsKQEAgLTgyLDE0ICs4NSwxMyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgaWYgKCFtX2pzRnVuY3Rpb24pIHsKICAgICAgICAgICAg
IEpTQzo6SlNPYmplY3QqIGZ1bmN0aW9uID0gaW5pdGlhbGl6ZUpTRnVuY3Rpb24oc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCk7Ci0gICAgICAgICAgICBtX2pzRnVuY3Rpb24uc2V0TWF5QmVOdWxsKCpz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LT5nbG9iYWxEYXRhKCksIG1fd3JhcHBlci5nZXQoKSwgZnVu
Y3Rpb24pOworICAgICAgICAgICAgSlNDOjpIZWFwOjp3cml0ZUJhcnJpZXIobV93cmFwcGVyLmdl
dCgpLCBmdW5jdGlvbik7CisgICAgICAgICAgICBtX2pzRnVuY3Rpb24gPSBKU0M6OlBhc3NXZWFr
PEpTQzo6SlNPYmplY3Q+KGZ1bmN0aW9uKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIFZlcmlm
eSB0aGF0IHdlIGhhdmUgYSB2YWxpZCB3cmFwcGVyIHByb3RlY3Rpbmcgb3VyIGZ1bmN0aW9uIGZy
b20KICAgICAgICAgLy8gZ2FyYmFnZSBjb2xsZWN0aW9uLgogICAgICAgICBBU1NFUlQobV93cmFw
cGVyIHx8ICFtX2pzRnVuY3Rpb24pOwotICAgICAgICBpZiAoIW1fd3JhcHBlcikKLSAgICAgICAg
ICAgIHJldHVybiAwOwogCiAgICAgICAgIC8vIFRyeSB0byB2ZXJpZnkgdGhhdCBtX2pzRnVuY3Rp
b24gd2Fzbid0IHJlY3ljbGVkLiAoTm90IGV4YWN0LCBzaW5jZSBhbgogICAgICAgICAvLyBldmVu
dCBsaXN0ZW5lciBjYW4gYmUgYWxtb3N0IGFueXRoaW5nLCBidXQgdGhpcyBtYWtlcyB0ZXN0LXdy
aXRpbmcgZWFzaWVyKS4K
</data>
<flag name="commit-queue"
          id="188587"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173801</attachid>
            <date>2012-11-12 19:57:56 -0800</date>
            <delta_ts>2012-11-13 20:51:22 -0800</delta_ts>
            <desc>3rd time&apos;s the charm.</desc>
            <filename>bug-101989.patch</filename>
            <type>text/plain</type>
            <size>11559</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM0MzQxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDEyLTExLTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBD
aGFuZ2UgSlNFdmVudExpc3RlbmVyOjptX2pzRnVuY3Rpb24gdG8gYmUgYSB3ZWFrIHJlZi4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTk4OS4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBpbmZy
YXN0cnVjdHVyZSBmb3Igc2Nhbm5pbmcgd2VhayByZWYgc2xvdHMuCisKKyAgICAgICAgKiBoZWFw
L1Nsb3RWaXNpdG9yLmNwcDoKKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9yLmg6CisgICAgICAg
IChTbG90VmlzaXRvcik6IEFkZGVkIFNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXJlZFdlYWtS
ZWYoKS4KKyAgICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5oOgorICAgICAgICAoSlND
OjpTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRXZWFrUmVmKToKKyAgICAgICAgKiBoZWFw
L1dlYWsuaDoKKyAgICAgICAgKEpTQzo6V2VhazxUPjo6cmVmZXJlZSk6CisgICAgICAgICogcnVu
dGltZS9KU0NlbGwuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisKIDIwMTItMTEt
MTIgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXRjaGluZyBv
ZiBqdW1wcyB0byBzdHVicyBzaG91bGQgdXNlIGp1bXAgcmVwbGFjZW1lbnQgcmF0aGVyIHRoYW4g
YnJhbmNoIGRlc3RpbmF0aW9uIG92ZXJ3cml0ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvU2xvdFZpc2l0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAkocmV2aXNpb24gMTM0MzA1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNsb3RWaXNpdG9yLmgiCisjaW5j
bHVkZSAiU2xvdFZpc2l0b3JJbmxpbmVzLmgiCiAKICNpbmNsdWRlICJDb25zZXJ2YXRpdmVSb290
cy5oIgogI2luY2x1ZGUgIkNvcGllZFNwYWNlLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9TbG90VmlzaXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL1Nsb3RWaXNpdG9yLmgJKHJldmlzaW9uIDEzNDMwNSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBDb25zZXJ2YXRpdmVSb290czsKIGNsYXNzIEdDVGhy
ZWFkU2hhcmVkRGF0YTsKIGNsYXNzIEhlYXA7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBX
ZWFrOwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgV3JpdGVCYXJyaWVyQmFzZTsKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IGNsYXNzIEpJVFdyaXRlQmFycmllcjsKIApAQCAtNTYsNiArNTcsOCBA
QCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICB2b2lkIGFwcGVuZFVuYmFy
cmllcmVkUG9pbnRlcihUKiopOwogICAgIHZvaWQgYXBwZW5kVW5iYXJyaWVyZWRWYWx1ZShKU1Zh
bHVlKik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkIGFwcGVuZFVuYmFycmll
cmVkV2Vha1JlZihXZWFrPFQ+Kik7CiAgICAgCiAgICAgdm9pZCBhZGRPcGFxdWVSb290KHZvaWQq
KTsKICAgICBib29sIGNvbnRhaW5zT3BhcXVlUm9vdCh2b2lkKik7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvcklubGluZXMuaAkocmV2aXNpb24gMTM0
MzA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDb3BpZWRTcGFjZUlu
bGluZXMuaCIKICNpbmNsdWRlICJPcHRpb25zLmgiCiAjaW5jbHVkZSAiU2xvdFZpc2l0b3IuaCIK
KyNpbmNsdWRlICJXZWFrLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC02Niw2ICs2NywxMyBA
QCBBTFdBWVNfSU5MSU5FIHZvaWQgU2xvdFZpc2l0b3I6OmFwcGVuZChKCiAgICAgaW50ZXJuYWxB
cHBlbmQoKnNsb3QpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorQUxXQVlTX0lOTElORSB2
b2lkIFNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXJlZFdlYWtSZWYoV2VhazxUPiogd2Vha1Jl
ZikKK3sKKyAgICBpZiAod2Vha1JlZiAmJiAqd2Vha1JlZikKKyAgICAgICAgaW50ZXJuYWxBcHBl
bmQod2Vha1JlZi0+cmVmZXJlZSgpKTsKK30KKwogQUxXQVlTX0lOTElORSB2b2lkIFNsb3RWaXNp
dG9yOjppbnRlcm5hbEFwcGVuZChKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICghdmFsdWUgfHwg
IXZhbHVlLmlzQ2VsbCgpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vhay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1dlYWsuaAkocmV2aXNp
b24gMTM0MzA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vhay5oCSh3b3JraW5n
IGNvcHkpCkBAIC02NSw4ICs2NSwxMSBAQCBwdWJsaWM6CiAgICAgCiBwcml2YXRlOgogICAgIHN0
YXRpYyBXZWFrSW1wbCogaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7CisgICAgSlNWYWx1ZSByZWZl
cmVlKCk7CiAKICAgICBXZWFrSW1wbCogbV9pbXBsOworCisgICAgZnJpZW5kIGNsYXNzIFNsb3RW
aXNpdG9yOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFdlYWs8VD46OldlYWso
KQpAQCAtMTUxLDYgKzE1NCwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgV2Vha0lt
cGwqIFdlCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2Vha0ltcGwqPigtMSk7CiB9CiAK
K3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBKU1ZhbHVlIFdlYWs8VD46OnJlZmVyZWUoKQor
eworICAgIHJldHVybiBtX2ltcGwgPyBtX2ltcGwtPmpzVmFsdWUoKSA6IEpTVmFsdWUoKTsKK30K
KwogLy8gVGhpcyBmdW5jdGlvbiBoZWxwcyBhdm9pZCBtb2RpZnlpbmcgYSB3ZWFrIHRhYmxlIHdo
aWxlIGhvbGRpbmcgYW4gaXRlcmF0b3IgaW50byBpdC4gKE9iamVjdCBhbGxvY2F0aW9uCiAvLyBj
YW4gcnVuIGEgZmluYWxpemVyIHRoYXQgbW9kaWZpZXMgdGhlIHRhYmxlLiBXZSBhdm9pZCB0aGF0
IGJ5IHJlcXVpcmluZyBhIHByZS1jb25zdHJ1Y3RlZCBvYmplY3QgYXMgb3VyIHZhbHVlLikKIHRl
bXBsYXRlPHR5cGVuYW1lIE1hcCwgdHlwZW5hbWUgS2V5LCB0eXBlbmFtZSBWYWx1ZT4gaW5saW5l
IHZvaWQgd2Vha0FkZChNYXAmIG1hcCwgY29uc3QgS2V5JiBrZXksIFZhbHVlIHZhbHVlKQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgJKHJldmlzaW9uIDEzNDMwNSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiSlNMb2NrLmgiCiAjaW5jbHVkZSAiSlNWYWx1
ZUlubGluZXMuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvci5oIgotI2luY2x1ZGUgIlNsb3RWaXNp
dG9ySW5saW5lcy5oIgogI2luY2x1ZGUgIlR5cGVkQXJyYXlEZXNjcmlwdG9yLmgiCiAjaW5jbHVk
ZSAiV3JpdGVCYXJyaWVyLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgJKHJldmlzaW9uIDEzNDMwNSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKICNpbmNsdWRlICJK
U0dsb2JhbERhdGEuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIlNsb3RWaXNp
dG9ySW5saW5lcy5oIgogI2luY2x1ZGUgIlNwYXJzZUFycmF5VmFsdWVNYXAuaCIKICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDM0MSkK
KysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIy
IEBACisyMDEyLTExLTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAg
ICBDaGFuZ2UgSlNFdmVudExpc3RlbmVyOjptX2pzRnVuY3Rpb24gdG8gYmUgYSB3ZWFrIHJlZi4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTk4OS4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcg
dGVzdHMuCisKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9oZWFwL1Nsb3RWaXNpdG9yLmg6
IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0V2
ZW50TGlzdGVuZXI6OkpTRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpKU0V2ZW50
TGlzdGVuZXI6OmluaXRpYWxpemVKU0Z1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRXZl
bnRMaXN0ZW5lcjo6dmlzaXRKU0Z1bmN0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2
ZW50TGlzdGVuZXIuaDoKKyAgICAgICAgKEpTRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpKU0V2ZW50TGlzdGVuZXI6OmpzRnVuY3Rpb24pOgorCiAyMDEyLTExLTEyICBBbmRlcnMg
Q2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIExlb3BhcmQg
b25seSBncmFkaWVudCBjb2RlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVy
cy9oZWFwL1Nsb3RWaXNpdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvaGVhcC9TbG90VmlzaXRvci5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvaGVhcC9TbG90VmlzaXRvci5oCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgV2ViQ29yZV9GV0RfU2xvdFZpc2l0b3JfaAorI2RlZmluZSBXZWJDb3Jl
X0ZXRF9TbG90VmlzaXRvcl9oCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU2xvdFZpc2l0b3Iu
aD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRvcklubGluZXMuaD4KKyNlbmRp
ZgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgJKHJldmlz
aW9uIDEzNDMwNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBh
YmxlLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNldC5oIgogI2luY2x1ZGUgIlN0eWxlZEVs
ZW1lbnQuaCIKKyNpbmNsdWRlIDxoZWFwL1Nsb3RWaXNpdG9yLmg+CiAjaW5jbHVkZSA8aGVhcC9X
ZWFrLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRnVu
Y3Rpb25Qcm90b3R5cGUuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZl
bnRMaXN0ZW5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNFdmVudExpc3RlbmVyLmNwcAkocmV2aXNpb24gMTM0MzA1KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsOSAr
NDEsMTAgQEAgSlNFdmVudExpc3RlbmVyOjpKU0V2ZW50TGlzdGVuZXIoSlNPYmplYwogICAgICwg
bV9pc0F0dHJpYnV0ZShpc0F0dHJpYnV0ZSkKICAgICAsIG1faXNvbGF0ZWRXb3JsZChpc29sYXRl
ZFdvcmxkKQogewotICAgIGlmICh3cmFwcGVyKQotICAgICAgICBtX2pzRnVuY3Rpb24uc2V0TWF5
QmVOdWxsKCptX2lzb2xhdGVkV29ybGQtPmdsb2JhbERhdGEoKSwgd3JhcHBlciwgZnVuY3Rpb24p
OwotICAgIGVsc2UKKyAgICBpZiAod3JhcHBlcikgeworICAgICAgICBKU0M6OkhlYXA6OndyaXRl
QmFycmllcih3cmFwcGVyLCBmdW5jdGlvbik7CisgICAgICAgIG1fanNGdW5jdGlvbiA9IEpTQzo6
UGFzc1dlYWs8SlNDOjpKU09iamVjdD4oZnVuY3Rpb24pOworICAgIH0gZWxzZQogICAgICAgICBB
U1NFUlQoIWZ1bmN0aW9uKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIFRocmVhZExvY2Fs
SW5zcGVjdG9yQ291bnRlcnM6OmN1cnJlbnQoKS5pbmNyZW1lbnRDb3VudGVyKFRocmVhZExvY2Fs
SW5zcGVjdG9yQ291bnRlcnM6OkpTRXZlbnRMaXN0ZW5lckNvdW50ZXIpOwpAQCAtNTksMTQgKzYw
LDIwIEBAIEpTRXZlbnRMaXN0ZW5lcjo6fkpTRXZlbnRMaXN0ZW5lcigpCiAKIEpTT2JqZWN0KiBK
U0V2ZW50TGlzdGVuZXI6OmluaXRpYWxpemVKU0Z1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqKSBjb25zdAogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIC8vIG1fanNGdW5j
dGlvbiBpcyBhIHdlYWsgcmVmIHRvIHRoZSBKU0Z1bmN0aW9uIG9iamVjdCB0aGF0IGlzIG9ubHkg
a2VwdAorICAgIC8vIGFsaXZlIGlmIHRoZSBjb3JyZXNwb25kaW5nIG1fd3JhcHBlciBvYmplY3Qg
aXMgYWxpdmUuCisgICAgLy8KKyAgICAvLyBXaGVuIGEgRE9NV3JhcHBlcldvcmxkIGlzIHRvcm4g
ZG93biwgaXQgY3VycmVudGx5IGRvZXNuJ3Qga25vdyBob3cgdG8KKyAgICAvLyBjbGVhbiB1cCBh
bGwgdGhlIGV2ZW50IGxpc3RlbmVycyB0aGF0IHdlcmUgImFkZGVkIGJ5IGl0Ii4gSGVuY2UsIHRo
ZQorICAgIC8vIEpTRXZlbnRMaXN0ZW5lciBtYXkgb3V0bGl2ZSBpdHMgbV9qc0Z1bmN0aW9uLiBJ
biB0aGlzIGNhc2UsIHdlIHdpbGwKKyAgICAvLyBtX2pzRnVuY3Rpb24gdG8gYmUgMC4KKwogICAg
IHJldHVybiAwOwogfQogCiB2b2lkIEpTRXZlbnRMaXN0ZW5lcjo6dmlzaXRKU0Z1bmN0aW9uKFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQogewotICAgIGlmIChtX2pzRnVuY3Rpb24pCi0gICAgICAgIHZp
c2l0b3IuYXBwZW5kKCZtX2pzRnVuY3Rpb24pOworICAgIHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVy
ZWRXZWFrUmVmKCZtX2pzRnVuY3Rpb24pOwogfQogCiB2b2lkIEpTRXZlbnRMaXN0ZW5lcjo6aGFu
ZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwg
RXZlbnQqIGV2ZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExp
c3RlbmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVu
dExpc3RlbmVyLmgJKHJldmlzaW9uIDEzNDMwNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRXZlbnRMaXN0ZW5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCopOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgbXV0
YWJsZSBKU0M6OldyaXRlQmFycmllcjxKU0M6OkpTT2JqZWN0PiBtX2pzRnVuY3Rpb247CisgICAg
ICAgIG11dGFibGUgSlNDOjpXZWFrPEpTQzo6SlNPYmplY3Q+IG1fanNGdW5jdGlvbjsKICAgICAg
ICAgbXV0YWJsZSBKU0M6OldlYWs8SlNDOjpKU09iamVjdD4gbV93cmFwcGVyOwogCiAgICAgICAg
IGJvb2wgbV9pc0F0dHJpYnV0ZTsKQEAgLTc1LDYgKzc1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgaW5saW5lIEpTQzo6SlNPYmplY3QqIEpTRXZlbnRMaXN0ZW5lcjo6anNGdW5jdGlv
bihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KSBjb25zdAog
ICAgIHsKKyAgICAgICAgaWYgKCFtX3dyYXBwZXIpCisgICAgICAgICAgICByZXR1cm4gMDsKKwog
ICAgICAgICAvLyBpbml0aWFsaXplSlNGdW5jdGlvbiBjYW4gdHJpZ2dlciBjb2RlIHRoYXQgZGVs
ZXRlcyB0aGlzIGV2ZW50IGxpc3RlbmVyCiAgICAgICAgIC8vIGJlZm9yZSB3ZSdyZSBkb25lLiBJ
dCBzaG91bGQgYWx3YXlzIHJldHVybiAwIGluIHRoaXMgY2FzZS4KICAgICAgICAgUmVmUHRyPEpT
RXZlbnRMaXN0ZW5lcj4gcHJvdGVjdChjb25zdF9jYXN0PEpTRXZlbnRMaXN0ZW5lcio+KHRoaXMp
KTsKQEAgLTgyLDE0ICs4NSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgaWYg
KCFtX2pzRnVuY3Rpb24pIHsKICAgICAgICAgICAgIEpTQzo6SlNPYmplY3QqIGZ1bmN0aW9uID0g
aW5pdGlhbGl6ZUpTRnVuY3Rpb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgICAgICAg
ICBtX2pzRnVuY3Rpb24uc2V0TWF5QmVOdWxsKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5nbG9i
YWxEYXRhKCksIG1fd3JhcHBlci5nZXQoKSwgZnVuY3Rpb24pOworICAgICAgICAgICAgSlNDOjpI
ZWFwOjp3cml0ZUJhcnJpZXIobV93cmFwcGVyLmdldCgpLCBmdW5jdGlvbik7CisgICAgICAgICAg
ICBtX2pzRnVuY3Rpb24gPSBKU0M6OlBhc3NXZWFrPEpTQzo6SlNPYmplY3Q+KGZ1bmN0aW9uKTsK
ICAgICAgICAgfQogCiAgICAgICAgIC8vIFZlcmlmeSB0aGF0IHdlIGhhdmUgYSB2YWxpZCB3cmFw
cGVyIHByb3RlY3Rpbmcgb3VyIGZ1bmN0aW9uIGZyb20KICAgICAgICAgLy8gZ2FyYmFnZSBjb2xs
ZWN0aW9uLgogICAgICAgICBBU1NFUlQobV93cmFwcGVyIHx8ICFtX2pzRnVuY3Rpb24pOwotICAg
ICAgICBpZiAoIW1fd3JhcHBlcikKLSAgICAgICAgICAgIHJldHVybiAwOwogCiAgICAgICAgIC8v
IFRyeSB0byB2ZXJpZnkgdGhhdCBtX2pzRnVuY3Rpb24gd2Fzbid0IHJlY3ljbGVkLiAoTm90IGV4
YWN0LCBzaW5jZSBhbgogICAgICAgICAvLyBldmVudCBsaXN0ZW5lciBjYW4gYmUgYWxtb3N0IGFu
eXRoaW5nLCBidXQgdGhpcyBtYWtlcyB0ZXN0LXdyaXRpbmcgZWFzaWVyKS4K
</data>
<flag name="review"
          id="188619"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174061</attachid>
            <date>2012-11-13 20:51:22 -0800</date>
            <delta_ts>2012-11-14 13:07:21 -0800</delta_ts>
            <desc>Fix.</desc>
            <filename>bug-101989.patch</filename>
            <type>text/plain</type>
            <size>10216</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM0NTI4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDEyLTExLTEzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBD
aGFuZ2UgSlNFdmVudExpc3RlbmVyOjptX2pzRnVuY3Rpb24gdG8gYmUgYSB3ZWFrIHJlZi4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTk4OS4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBpbmZy
YXN0cnVjdHVyZSBmb3Igc2Nhbm5pbmcgd2VhayByZWYgc2xvdHMuCisKKyAgICAgICAgKiBoZWFw
L1Nsb3RWaXNpdG9yLmNwcDogQWRkZWQgI2luY2x1ZGUgIlNsb3RWaXNpdG9ySW5saW5lcy5oIi4K
KyAgICAgICAgKiBoZWFwL1Nsb3RWaXNpdG9yLmg6CisgICAgICAgIChTbG90VmlzaXRvcik6IEFk
ZGVkIFNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXJlZFdlYWsoKS4KKyAgICAgICAgKiBoZWFw
L1Nsb3RWaXNpdG9ySW5saW5lcy5oOiAgQWRkZWQgI2luY2x1ZGUgIldlYWsuaCIuCisgICAgICAg
IChKU0M6OlNsb3RWaXNpdG9yOjphcHBlbmRVbmJhcnJpZXJlZFdlYWspOiBBZGRlZC4KKyAgICAg
ICAgKiBoZWFwL1dlYWsuaDoKKyAgICAgICAgKEpTQzo6b3BlcmF0b3I9PSk6IEFkZGVkIG9wZXJh
dG9yPT0oKSBmb3IgV2Vhay4KKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOiBSZW1vdmVkICNp
bmNsdWRlICJTbG90VmlzaXRvcklubGluZXMuaCIuCisgICAgICAgICogcnVudGltZS9KU09iamVj
dC5oOiBBZGRlZCAjaW5jbHVkZSAiU2xvdFZpc2l0b3JJbmxpbmVzLmgiLgorCiAyMDEyLTExLTEz
ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgSlNGdW5jdGlvbiBh
bmQgaXRzIGRlc2NlbmRhbnRzIHNob3VsZCBiZSBkZXN0cnVjdGlibGUKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAJKHJldmlzaW9uIDEzNDUxMSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTbG90Vmlz
aXRvci5oIgorI2luY2x1ZGUgIlNsb3RWaXNpdG9ySW5saW5lcy5oIgogCiAjaW5jbHVkZSAiQ29u
c2VydmF0aXZlUm9vdHMuaCIKICNpbmNsdWRlICJDb3BpZWRTcGFjZS5oIgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCShyZXZpc2lvbiAxMzQ1MTEpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiw2ICszNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgQ29uc2VydmF0aXZlUm9vdHM7
CiBjbGFzcyBHQ1RocmVhZFNoYXJlZERhdGE7CiBjbGFzcyBIZWFwOwordGVtcGxhdGU8dHlwZW5h
bWUgVD4gY2xhc3MgV2VhazsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFdyaXRlQmFycmll
ckJhc2U7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBKSVRXcml0ZUJhcnJpZXI7CiAKQEAg
LTU2LDYgKzU3LDggQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgdm9p
ZCBhcHBlbmRVbmJhcnJpZXJlZFBvaW50ZXIoVCoqKTsKICAgICB2b2lkIGFwcGVuZFVuYmFycmll
cmVkVmFsdWUoSlNWYWx1ZSopOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBh
cHBlbmRVbmJhcnJpZXJlZFdlYWsoV2VhazxUPiopOwogICAgIAogICAgIHZvaWQgYWRkT3BhcXVl
Um9vdCh2b2lkKik7CiAgICAgYm9vbCBjb250YWluc09wYXF1ZVJvb3Qodm9pZCopOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgJKHJl
dmlzaW9uIDEzNDUxMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9y
SW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ29w
aWVkU3BhY2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogI2luY2x1ZGUgIlNsb3RW
aXNpdG9yLmgiCisjaW5jbHVkZSAiV2Vhay5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNjYs
NiArNjcsMTQgQEAgQUxXQVlTX0lOTElORSB2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmQoSgogICAg
IGludGVybmFsQXBwZW5kKCpzbG90KTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVD4KK0FMV0FZ
U19JTkxJTkUgdm9pZCBTbG90VmlzaXRvcjo6YXBwZW5kVW5iYXJyaWVyZWRXZWFrKFdlYWs8VD4q
IHdlYWspCit7CisgICAgQVNTRVJUKHdlYWspOworICAgIGlmICh3ZWFrLT5nZXQoKSkKKyAgICAg
ICAgaW50ZXJuYWxBcHBlbmQod2Vhay0+Z2V0KCkpOworfQorCiBBTFdBWVNfSU5MSU5FIHZvaWQg
U2xvdFZpc2l0b3I6OmludGVybmFsQXBwZW5kKEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKCF2
YWx1ZSB8fCAhdmFsdWUuaXNDZWxsKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9XZWFrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvV2Vhay5o
CShyZXZpc2lvbiAxMzQ1MTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9XZWFrLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE1MSw2ICsxNTEsMTEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4g
aW5saW5lIFdlYWtJbXBsKiBXZQogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdlYWtJbXBs
Kj4oLTEpOwogfQogCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBXZWFrPFQ+JiBsaHMsIGNvbnN0IFdlYWs8VD4mIHJocykKK3sKKyAgICByZXR1cm4g
bGhzLmdldCgpID09IHJocy5nZXQoKTsKK30KKwogLy8gVGhpcyBmdW5jdGlvbiBoZWxwcyBhdm9p
ZCBtb2RpZnlpbmcgYSB3ZWFrIHRhYmxlIHdoaWxlIGhvbGRpbmcgYW4gaXRlcmF0b3IgaW50byBp
dC4gKE9iamVjdCBhbGxvY2F0aW9uCiAvLyBjYW4gcnVuIGEgZmluYWxpemVyIHRoYXQgbW9kaWZp
ZXMgdGhlIHRhYmxlLiBXZSBhdm9pZCB0aGF0IGJ5IHJlcXVpcmluZyBhIHByZS1jb25zdHJ1Y3Rl
ZCBvYmplY3QgYXMgb3VyIHZhbHVlLikKIHRlbXBsYXRlPHR5cGVuYW1lIE1hcCwgdHlwZW5hbWUg
S2V5LCB0eXBlbmFtZSBWYWx1ZT4gaW5saW5lIHZvaWQgd2Vha0FkZChNYXAmIG1hcCwgY29uc3Qg
S2V5JiBrZXksIFZhbHVlIHZhbHVlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDZWxsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDZWxsLmgJKHJldmlzaW9uIDEzNDUxMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ2VsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAi
SlNMb2NrLmgiCiAjaW5jbHVkZSAiSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJTbG90Vmlz
aXRvci5oIgotI2luY2x1ZGUgIlNsb3RWaXNpdG9ySW5saW5lcy5oIgogI2luY2x1ZGUgIlR5cGVk
QXJyYXlEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgiCiAjaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmgJKHJldmlzaW9uIDEzNDUxMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRl
ICJTdHJ1Y3R1cmUuaCIKICNpbmNsdWRlICJKU0dsb2JhbERhdGEuaCIKICNpbmNsdWRlICJKU1N0
cmluZy5oIgorI2luY2x1ZGUgIlNsb3RWaXNpdG9ySW5saW5lcy5oIgogI2luY2x1ZGUgIlNwYXJz
ZUFycmF5VmFsdWVNYXAuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEzNDUyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEyLTExLTEzICBNYXJrIExhbSAgPG1h
cmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBDaGFuZ2UgSlNFdmVudExpc3RlbmVyOjptX2pz
RnVuY3Rpb24gdG8gYmUgYSB3ZWFrIHJlZi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMTk4OS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBGb3J3YXJkaW5n
SGVhZGVycy9oZWFwL1Nsb3RWaXNpdG9yLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NQmluZGluZy5oOiBBZGRlZCAjaW5jbHVkZSA8aGVhcC9TbG90VmlzaXRvci5oPgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU0V2ZW50TGlzdGVuZXI6OkpTRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpK
U0V2ZW50TGlzdGVuZXI6OnZpc2l0SlNGdW5jdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNFdmVudExpc3RlbmVyLmg6CisgICAgICAgIChKU0V2ZW50TGlzdGVuZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SlNFdmVudExpc3RlbmVyOjpqc0Z1bmN0aW9uKToKKwogMjAxMi0xMS0xMyAgRWxs
aW90dCBTcHJlaG4gIDxlc3ByZWhuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBEaXNhYmxlIGZy
YW1lIGxvYWRpbmcgaW5zdGVhZCBvZiB0aHJvd2luZyBleGNlcHRpb25zIG9uIHN1YnRyZWUgbW9k
aWZpY2F0aW9ucyBpbiBDaGlsZEZyYW1lRGlzY29ubmVjdG9yCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy9oZWFwL1Nsb3RWaXNpdG9yLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvaGVhcC9TbG90VmlzaXRvci5oCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvaGVhcC9TbG90VmlzaXRv
ci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgV2ViQ29yZV9GV0RfU2xvdFZpc2l0b3Jf
aAorI2RlZmluZSBXZWJDb3JlX0ZXRF9TbG90VmlzaXRvcl9oCisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvU2xvdFZpc2l0b3IuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TbG90VmlzaXRv
cklubGluZXMuaD4KKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01CaW5kaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01CaW5kaW5nLmgJKHJldmlzaW9uIDEzNDUxMSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5j
bHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNldC5oIgog
I2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIKKyNpbmNsdWRlIDxoZWFwL1Nsb3RWaXNpdG9yLmg+
CiAjaW5jbHVkZSA8aGVhcC9XZWFrLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAkocmV2aXNpb24gMTM0NTExKQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDEsOSArNDEsMTAgQEAgSlNFdmVudExpc3RlbmVyOjpKU0V2ZW50TGlzdGVu
ZXIoSlNPYmplYwogICAgICwgbV9pc0F0dHJpYnV0ZShpc0F0dHJpYnV0ZSkKICAgICAsIG1faXNv
bGF0ZWRXb3JsZChpc29sYXRlZFdvcmxkKQogewotICAgIGlmICh3cmFwcGVyKQotICAgICAgICBt
X2pzRnVuY3Rpb24uc2V0TWF5QmVOdWxsKCptX2lzb2xhdGVkV29ybGQtPmdsb2JhbERhdGEoKSwg
d3JhcHBlciwgZnVuY3Rpb24pOwotICAgIGVsc2UKKyAgICBpZiAod3JhcHBlcikgeworICAgICAg
ICBKU0M6OkhlYXA6OndyaXRlQmFycmllcih3cmFwcGVyLCBmdW5jdGlvbik7CisgICAgICAgIG1f
anNGdW5jdGlvbiA9IEpTQzo6UGFzc1dlYWs8SlNDOjpKU09iamVjdD4oZnVuY3Rpb24pOworICAg
IH0gZWxzZQogICAgICAgICBBU1NFUlQoIWZ1bmN0aW9uKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogICAgIFRocmVhZExvY2FsSW5zcGVjdG9yQ291bnRlcnM6OmN1cnJlbnQoKS5pbmNyZW1lbnRD
b3VudGVyKFRocmVhZExvY2FsSW5zcGVjdG9yQ291bnRlcnM6OkpTRXZlbnRMaXN0ZW5lckNvdW50
ZXIpOwpAQCAtNjgsOCArNjksNyBAQCB2b2lkIEpTRXZlbnRMaXN0ZW5lcjo6dmlzaXRKU0Z1bmN0
aW9uKFNsCiAgICAgaWYgKCFtX3dyYXBwZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICht
X2pzRnVuY3Rpb24pCi0gICAgICAgIHZpc2l0b3IuYXBwZW5kKCZtX2pzRnVuY3Rpb24pOworICAg
IHZpc2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRXZWFrKCZtX2pzRnVuY3Rpb24pOwogfQogCiB2b2lk
IEpTRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCwgRXZlbnQqIGV2ZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmgJKHJldmlzaW9uIDEzNDUxMSkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oCSh3b3JraW5nIGNvcHkp
CkBAIC02Niw3ICs2Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2
b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCopOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgbXV0YWJsZSBKU0M6OldyaXRlQmFycmllcjxKU0M6OkpTT2JqZWN0
PiBtX2pzRnVuY3Rpb247CisgICAgICAgIG11dGFibGUgSlNDOjpXZWFrPEpTQzo6SlNPYmplY3Q+
IG1fanNGdW5jdGlvbjsKICAgICAgICAgbXV0YWJsZSBKU0M6OldlYWs8SlNDOjpKU09iamVjdD4g
bV93cmFwcGVyOwogCiAgICAgICAgIGJvb2wgbV9pc0F0dHJpYnV0ZTsKQEAgLTgyLDcgKzgyLDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGlmICghbV9qc0Z1bmN0aW9uKSB7CiAg
ICAgICAgICAgICBKU0M6OkpTT2JqZWN0KiBmdW5jdGlvbiA9IGluaXRpYWxpemVKU0Z1bmN0aW9u
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwotICAgICAgICAgICAgbV9qc0Z1bmN0aW9uLnNldE1h
eUJlTnVsbCgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+Z2xvYmFsRGF0YSgpLCBtX3dyYXBwZXIu
Z2V0KCksIGZ1bmN0aW9uKTsKKyAgICAgICAgICAgIEpTQzo6SGVhcDo6d3JpdGVCYXJyaWVyKG1f
d3JhcHBlci5nZXQoKSwgZnVuY3Rpb24pOworICAgICAgICAgICAgbV9qc0Z1bmN0aW9uID0gSlND
OjpQYXNzV2VhazxKU0M6OkpTT2JqZWN0PihmdW5jdGlvbik7CiAgICAgICAgIH0KIAogICAgICAg
ICAvLyBWZXJpZnkgdGhhdCB3ZSBoYXZlIGEgdmFsaWQgd3JhcHBlciBwcm90ZWN0aW5nIG91ciBm
dW5jdGlvbiBmcm9tCg==
</data>
<flag name="review"
          id="188960"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>