<?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>27533</bug_id>
          
          <creation_ts>2009-07-22 01:14:38 -0700</creation_ts>
          <short_desc>[V8] Fix isolated world wrappers for event handlers</short_desc>
          <delta_ts>2009-07-29 01:11:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>27698</blocked>
    
    <blocked>27703</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>ager</cc>
    
    <cc>dglazkov</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>133723</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-22 01:14:38 -0700</bug_when>
    <thetext>Currently the event handlers are using V8Proxy::context(m_frame), which leads to the wrong context for event listeners from isolated worlds.  Basically all clients of that function must die, but we&apos;re going to take it slow.  Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133724</commentid>
    <comment_count>1</comment_count>
      <attachid>33248</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-22 01:26:15 -0700</bug_when>
    <thetext>Created attachment 33248
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133725</commentid>
    <comment_count>2</comment_count>
      <attachid>33248</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-22 01:30:21 -0700</bug_when>
    <thetext>Comment on attachment 33248
patch

Actually, there might be some interaction with workers that I need to think though.  Clearing the review flag for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133810</commentid>
    <comment_count>3</comment_count>
      <attachid>33271</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-22 11:08:11 -0700</bug_when>
    <thetext>Created attachment 33271
Slightly better patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133812</commentid>
    <comment_count>4</comment_count>
      <attachid>33273</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-22 11:10:43 -0700</bug_when>
    <thetext>Created attachment 33273
patch with less trailing whitespace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135471</commentid>
    <comment_count>5</comment_count>
      <attachid>33273</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-07-28 20:55:52 -0700</bug_when>
    <thetext>Comment on attachment 33273
patch with less trailing whitespace

ok. I wonder if OwnHandler would rather live in v8 namespace? It seems like a useful primitive and not very WebCore-specific.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135509</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-29 00:32:14 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; ok. I wonder if OwnHandler would rather live in v8 namespace? It seems like a
&gt; useful primitive and not very WebCore-specific.

I asked Ager about that, but he didn&apos;t seem too receptive.  He hadn&apos;t seen use for the concept.  We can demonstrate the use cases in the bindings and then ask again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135524</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-29 01:11:13 -0700</bug_when>
    <thetext>Sending        LayoutTests/ChangeLog
Adding         LayoutTests/http/tests/security/isolatedWorld/click-event-expected.txt
Adding         LayoutTests/http/tests/security/isolatedWorld/click-event.html
Sending        LayoutTests/platform/gtk/Skipped
Sending        LayoutTests/platform/mac/Skipped
Sending        LayoutTests/platform/qt/Skipped
Sending        LayoutTests/platform/win/Skipped
Sending        WebCore/ChangeLog
Sending        WebCore/WebCore.gypi
Adding         WebCore/bindings/v8/OwnHandle.h
Sending        WebCore/bindings/v8/V8AbstractEventListener.cpp
Sending        WebCore/bindings/v8/V8AbstractEventListener.h
Transmitting file data ............
Committed revision 46529.
http://trac.webkit.org/changeset/46529</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33248</attachid>
            <date>2009-07-22 01:26:15 -0700</date>
            <delta_ts>2009-07-22 11:08:03 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-27533-20090722012615.patch</filename>
            <type>text/plain</type>
            <size>11307</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjIxOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMDktMDctMjIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbVjhd
IEZpeCBpc29sYXRlZCB3b3JsZCB3cmFwcGVycyBmb3IgZXZlbnQgaGFuZGxlcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NTMzCisKKyAgICAgICAg
SW5zdGVhZCBvZiBnZXR0aW5nIHRoZSBjb250ZXh0IGZyb20gdGhlIGZyYW1lLCB3ZSBjYWNoZSB0
aGUgY29udGV4dAorICAgICAgICB3aGVuIHRoZSBsaXN0ZW5lciBpcyBjcmVhdGVkIHNvIHRoYXQg
d2UgZ2V0IHRoZSBjb250ZXh0IGZvciB0aGUgcmlnaHQKKyAgICAgICAgd29ybGQuCisKKyAgICAg
ICAgVGVzdDogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2NsaWNrLWV2ZW50Lmh0
bWwKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Pd25I
YW5kbGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpPd25IYW5kbGU6Ok93bkhhbmRsZSk6
CisgICAgICAgIChXZWJDb3JlOjpPd25IYW5kbGU6On5Pd25IYW5kbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6T3duSGFuZGxlOjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6T3duSGFuZGxlOjpzZXQp
OgorICAgICAgICAoV2ViQ29yZTo6T3duSGFuZGxlOjpyZWxlYXNlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok93bkhhbmRsZTo6YWRvcHQpOgorICAgICAgICAoV2ViQ29yZTo6T3duSGFuZGxlOjpzd2Fw
KToKKyAgICAgICAgKFdlYkNvcmU6Ok93bkhhbmRsZTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29y
ZTo6T3duSGFuZGxlOjptYWtlV2Vhayk6CisgICAgICAgIChXZWJDb3JlOjpPd25IYW5kbGU6Ondl
YWtDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVu
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhBYnN0cmFjdEV2ZW50TGlzdGVuZXI6OlY4QWJz
dHJhY3RFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4QWJzdHJhY3RFdmVudExp
c3RlbmVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2
ZW50TGlzdGVuZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaDoKKwog
MjAwOS0wNy0yMiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgQXR0
ZW1wdCB0byBmaXggdGhlIEdUSysgYnVpbGQuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNDYxNTIpCisrKyBX
ZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtNjYwLDYgKzY2MCw3IEBACiAg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvRE9NT2JqZWN0c0luY2x1ZGUuaCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4
L05QVjhPYmplY3QuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvT3duSGFuZGxlLmgnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5oJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9TY3JpcHRDYWNoZWRGcmFtZURhdGEuaCcsCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4
L093bkhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvT3duSGFuZGxl
LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L093bkhhbmRsZS5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBPd25IYW5kbGVfaAorI2RlZmluZSBPd25I
YW5kbGVfaAorCisjaW5jbHVkZSA8djguaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBjbGFzcyBPd25IYW5kbGUgeworICAgIHB1YmxpYzoK
KyAgICAgICAgT3duSGFuZGxlKCkgeyB9CisgICAgICAgIGV4cGxpY2l0IE93bkhhbmRsZSh2ODo6
SGFuZGxlPFQ+IGhhbmRsZSkgOiBtX2hhbmRsZSh2ODo6UGVyc2lzdGVudDxUPjo6TmV3KGhhbmRs
ZSkpIHsgfQorICAgICAgICB+T3duSGFuZGxlKCkgeyBjbGVhcigpOyB9CisKKyAgICAgICAgdjg6
OkhhbmRsZTxUPiBnZXQoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZTsgfQorICAgICAgICB2b2lk
IHNldCh2ODo6SGFuZGxlPFQ+IGhhbmRsZSkgeyBjbGVhcigpOyBtX2hhbmRsZSA9IHY4OjpQZXJz
aXN0ZW50PFQ+OjpOZXcoaGFuZGxlKTsgfQorCisgICAgICAgIHY4OjpQZXJzaXN0ZW50PFQ+IHJl
bGVhc2UoKSB7IHY4OjpQZXJzaXN0ZW50PFQ+IHJlc3VsdCA9IG1faGFuZGxlOyBtX2hhbmRsZS5D
bGVhcigpOyByZXR1cm4gcmVzdWx0OyB9CisgICAgICAgIHZvaWQgYWRvcHQodjg6OlBlcnNpc3Rl
bnQ8VD4gaGFuZGxlKSB7IGNsZWFyKCk7IG1faGFuZGxlID0gaGFuZGxlOyB9CisKKyAgICAgICAg
dm9pZCBzd2FwKE93bkhhbmRsZSYgb3RoZXIpIHsgc3RkOjpzd2FwKG1faGFuZGxlLCBvdGhlci5t
X2hhbmRsZSk7IH0KKworICAgICAgICAvLyBOb3RlOiBUaGlzIGlzIGNsZWFyIGluIHRoZSBPd25Q
dHIgc2Vuc2UsIG5vdCB0aGUgdjg6OkhhbmRsZSBzZW5zZS4KKyAgICAgICAgdm9pZCBjbGVhcigp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChtX2hhbmRsZS5Jc0VtcHR5KCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9oYW5kbGUuRGlzcG9zZSgpOworICAgICAg
ICAgICAgbV9oYW5kbGUuQ2xlYXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE1ha2UgdGhl
IHVuZGVybHlpbmcgaGFuZGxlIHdlYWsuICBUaGUgY2xpZW50IGRvZXNuJ3QgZ2V0IGEgY2FsbGJh
Y2ssCisgICAgICAgIC8vIHdlIGp1c3QgbWFrZSB0aGUgaGFuZGxlIGVtcHR5LgorICAgICAgICB2
b2lkIG1ha2VXZWFrKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1faGFuZGxlLklzRW1w
dHkoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2hhbmRsZS5NYWtl
V2Vhayh0aGlzLCAmT3duSGFuZGxlPFQ+Ojp3ZWFrQ2FsbGJhY2spOworICAgICAgICB9CisKKyAg
ICBwcml2YXRlOgorICAgICAgICBzdGF0aWMgdm9pZCB3ZWFrQ2FsbGJhY2sodjg6OlBlcnNpc3Rl
bnQ8djg6OlZhbHVlPiBvYmplY3QsIHZvaWQqIG93bkhhbmRsZSkKKyAgICAgICAgeworICAgICAg
ICAgICAgT3duSGFuZGxlPFQ+KiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxPd25IYW5kbGU8VD4qPihv
d25IYW5kbGUpOworICAgICAgICAgICAgaGFuZGxlLT5jbGVhcigpOworICAgICAgICB9CisKKyAg
ICAgICAgdjg6OlBlcnNpc3RlbnQ8VD4gbV9oYW5kbGU7CisgICAgfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gT3duSGFuZGxlX2gKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIuY3BwCShyZXZpc2lvbiA0NjE1MikK
KysrIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OCw2ICs0OCw5IEBAIFY4QWJzdHJhY3RFdmVudExpc3RlbmVyOjpWOEFi
c3RyYWN0RXZlbnQKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1f
Y29udGV4dC5zZXQoVjhET01XcmFwcGVyOjpnZXRXcmFwcGVyQ29udGV4dChtX2ZyYW1lKSk7Cisg
ICAgbV9jb250ZXh0Lm1ha2VXZWFrKCk7CisKICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIGluIHRo
ZSBzb3VyY2UgaWYgYW55LgogICAgIGlmIChtX2lzQXR0cmlidXRlICYmIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPnRva2VuaXplcigpKSB7CiAgICAgICAgIG1fbGluZU51bWJlciA9IG1fZnJhbWUtPmRv
Y3VtZW50KCktPnRva2VuaXplcigpLT5saW5lTnVtYmVyKCk7CkBAIC0xMTIsNyArMTE1LDcgQEAg
dm9pZCBWOEFic3RyYWN0RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbgogCiAgICAgdjg6OkhhbmRs
ZVNjb3BlIGhhbmRsZVNjb3BlOwogCi0gICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gdjhDb250
ZXh0ID0gVjhQcm94eTo6Y29udGV4dChtX2ZyYW1lKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250
ZXh0PiB2OENvbnRleHQgPSBtX2NvbnRleHQuZ2V0KCk7CiAgICAgaWYgKHY4Q29udGV4dC5Jc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybjsKIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9WOEFi
c3RyYWN0RXZlbnRMaXN0ZW5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvdjgv
VjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIuaAkocmV2aXNpb24gNDYxNTIpCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4QWJzdHJhY3RFdmVudExpc3RlbmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDYgKzMyLDcgQEAKICNkZWZpbmUgVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXJfaAogCiAjaW5jbHVk
ZSAiRXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIk93bkhhbmRsZS5oIgogI2luY2x1ZGUgPHY4
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDExICs0MCwxNCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgY2xhc3MgRXZlbnQ7CiAgICAgY2xhc3MgRnJhbWU7CiAKLSAgICAvLyBU
aGVyZSBhcmUgdHdvIGtpbmRzIG9mIGV2ZW50IGxpc3RlbmVyczogSFRNTCBvciBub24tSE1UTC4g
b25sb2FkLCBvbmZvY3VzLCBldGMgKGF0dHJpYnV0ZXMpIGFyZSBhbHdheXMgSFRNTCBldmVudCBo
YW5kbGVyIHR5cGU7Ci0gICAgLy8gRXZlbnQgbGlzdGVuZXJzIGFkZGVkIGJ5IFdpbmRvdy5hZGRF
dmVudExpc3RlbmVyIG9yIEV2ZW50VGFyZ2V0Tm9kZTo6YWRkRXZlbnRMaXN0ZW5lciBhcmUgbm9u
LUhUTUwgdHlwZS4KKyAgICAvLyBUaGVyZSBhcmUgdHdvIGtpbmRzIG9mIGV2ZW50IGxpc3RlbmVy
czogSFRNTCBvciBub24tSE1UTC4gb25sb2FkLAorICAgIC8vIG9uZm9jdXMsIGV0YyAoYXR0cmli
dXRlcykgYXJlIGFsd2F5cyBIVE1MIGV2ZW50IGhhbmRsZXIgdHlwZTsgRXZlbnQKKyAgICAvLyBs
aXN0ZW5lcnMgYWRkZWQgYnkgV2luZG93LmFkZEV2ZW50TGlzdGVuZXIgb3IKKyAgICAvLyBFdmVu
dFRhcmdldE5vZGU6OmFkZEV2ZW50TGlzdGVuZXIgYXJlIG5vbi1IVE1MIHR5cGUuCiAgICAgLy8K
ICAgICAvLyBXaHkgZG9lcyB0aGlzIG1hdHRlcj8KLSAgICAvLyBXZWJLaXQgZG9lcyBub3QgYWxs
b3cgZHVwbGljYXRlZCBIVE1MIGV2ZW50IGhhbmRsZXJzIG9mIHRoZSBzYW1lIHR5cGUsIGJ1dCBB
TExPV3MgZHVwbGljYXRlZCBub24tSFRNTCBldmVudCBoYW5kbGVycy4KKyAgICAvLyBXZWJLaXQg
ZG9lcyBub3QgYWxsb3cgZHVwbGljYXRlZCBIVE1MIGV2ZW50IGhhbmRsZXJzIG9mIHRoZSBzYW1l
IHR5cGUsCisgICAgLy8gYnV0IEFMTE9XcyBkdXBsaWNhdGVkIG5vbi1IVE1MIGV2ZW50IGhhbmRs
ZXJzLgogICAgIGNsYXNzIFY4QWJzdHJhY3RFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlz
dGVuZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+VjhBYnN0cmFjdEV2ZW50TGlz
dGVuZXIoKSB7IH0KQEAgLTgzLDYgKzg3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICAvLyBkZWxldGVkLiBTZWUgZmFzdC9kb20vcmVwbGFjZUNoaWxkLmh0bWwKICAgICAgICAgLy8g
RklYTUU6IHRoaXMgY291bGQgaG9sZCBtX2ZyYW1lIGxpdmUgdW50aWwgdGhlIGV2ZW50IGxpc3Rl
bmVyIGlzIGRlbGV0ZWQuCiAgICAgICAgIEZyYW1lKiBtX2ZyYW1lOworICAgICAgICBPd25IYW5k
bGU8djg6OkNvbnRleHQ+IG1fY29udGV4dDsKIAogICAgICAgICAvLyBQb3NpdGlvbiBpbiB0aGUg
SFRNTCBzb3VyY2UgZm9yIEhUTUwgZXZlbnQgbGlzdGVuZXJzLgogICAgICAgICBpbnQgbV9saW5l
TnVtYmVyOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oCShyZXZpc2lvbiA0NjE1
MikKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTg4LDYgKzg4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgVjhET01X
cmFwcGVyIHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpDb250
ZXh0PiBnZXRXcmFwcGVyQ29udGV4dChGcmFtZSopOworICAgICAgICAKICNpZm5kZWYgTkRFQlVH
CiAgICAgICAgIC8vIENoZWNrcyBpZiBhIHY4IHZhbHVlIGNhbiBiZSBhIERPTSB3cmFwcGVyCiAg
ICAgICAgIHN0YXRpYyBib29sIG1heWJlRE9NV3JhcHBlcih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4p
OwpAQCAtMjE5LDcgKzIyMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0U1ZHRWxlbWVudEluc3RhbmNlVG9WOE9iamVj
dChTVkdFbGVtZW50SW5zdGFuY2UqKTsKICAgICAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBjb252ZXJ0U1ZHT2JqZWN0V2l0aENvbnRleHRUb1Y4T2JqZWN0KFY4Q2xhc3NJbmRleDo6
VjhXcmFwcGVyVHlwZSwgdm9pZCopOwogI2VuZGlmCi0KKyAgICAgICAgCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgLy8gU2V0IGhpZGRlbiByZWZlcmVuY2VzIGluIGEgRE9NV2luZG93IG9iamVjdCBv
ZiBhIGZyYW1lLgogICAgICAgICBzdGF0aWMgdm9pZCBzZXRIaWRkZW5XaW5kb3dSZWZlcmVuY2Uo
RnJhbWUqLCBjb25zdCBpbnQgaW50ZXJuYWxJbmRleCwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pik7
CkBAIC0yNDksOCArMjUxLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB9CiAKICAg
ICAgICAgc3RhdGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBpbnN0YW50aWF0ZVY4T2JqZWN0KFY4
UHJveHkqLCBWOENsYXNzSW5kZXg6OlY4V3JhcHBlclR5cGUsIFY4Q2xhc3NJbmRleDo6VjhXcmFw
cGVyVHlwZSwgdm9pZCopOwotCi0gICAgICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpDb250ZXh0
PiBnZXRXcmFwcGVyQ29udGV4dChGcmFtZSopOwogICAgIH07CiAKIH0KSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDQ2MjE4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMDktMDctMjIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbVjhdIEZp
eCBpc29sYXRlZCB3b3JsZCB3cmFwcGVycyBmb3IgZXZlbnQgaGFuZGxlcnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NTMzCisKKyAgICAgICAgVGVz
dCB0aGF0IHdlIGdldCB0aGUgd3JhcHBlcnMgZnJvbSB0aGUgcmlnaHQgd29ybGQgd2hlbiBoYW5k
bGluZworICAgICAgICBldmVudHMuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lz
b2xhdGVkV29ybGQvY2xpY2stZXZlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvY2xpY2stZXZlbnQuaHRtbDogQWRkZWQu
CisKIDIwMDktMDctMjEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9pc29sYXRlZFdvcmxkL2NsaWNrLWV2ZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvY2xpY2st
ZXZlbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2NsaWNrLWV2ZW50LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwyIEBACitJc29sYXRlZAorU3RlcCAxCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvY2xpY2stZXZlbnQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQv
Y2xpY2stZXZlbnQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9jbGljay1ldmVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8ZGl2IGlkPSJj
b25zb2xlIj5XYWl0aW5nLi4uPC9kaXY+Cis8YnV0dG9uIGlkPSJidG4xIj5TdGVwIDE8L2J1dHRv
bj4KKzxzY3JpcHQgaWQ9Imlzb2xhdGVkU2NyaXB0IiB0eXBlPSJpc29sYXRlZC93b3JsZCI+Citk
b2N1bWVudC5ib2R5LndvcmxkID0gJ0lzb2xhdGVkJzsKK3ZhciBidCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdidG4xJyk7CitidC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9u
KCkgeworICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9IGRv
Y3VtZW50LmJvZHkud29ybGQ7Cit9LCBmYWxzZSk7CitidC5jbGljaygpOworPC9zY3JpcHQ+Cis8
c2NyaXB0PgorZG9jdW1lbnQuYm9keS53b3JsZCA9ICdNYWluJzsKK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaXNvbGF0ZWRTY3JpcHQnKS5pbm5lckhUTUwpOworfQorPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33271</attachid>
            <date>2009-07-22 11:08:11 -0700</date>
            <delta_ts>2009-07-22 11:10:37 -0700</delta_ts>
            <desc>Slightly better patch</desc>
            <filename>bug-27533-20090722110810.patch</filename>
            <type>text/plain</type>
            <size>11397</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjIxOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMDktMDctMjIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbVjhd
IEZpeCBpc29sYXRlZCB3b3JsZCB3cmFwcGVycyBmb3IgZXZlbnQgaGFuZGxlcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NTMzCisKKyAgICAgICAg
SW5zdGVhZCBvZiBnZXR0aW5nIHRoZSBjb250ZXh0IGZyb20gdGhlIGZyYW1lLCB3ZSBjYWNoZSB0
aGUgY29udGV4dAorICAgICAgICB3aGVuIHRoZSBsaXN0ZW5lciBpcyBjcmVhdGVkIHNvIHRoYXQg
d2UgZ2V0IHRoZSBjb250ZXh0IGZvciB0aGUgcmlnaHQKKyAgICAgICAgd29ybGQuCisKKyAgICAg
ICAgVGVzdDogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2NsaWNrLWV2ZW50Lmh0
bWwKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Pd25I
YW5kbGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpPd25IYW5kbGU6Ok93bkhhbmRsZSk6
CisgICAgICAgIChXZWJDb3JlOjpPd25IYW5kbGU6On5Pd25IYW5kbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6T3duSGFuZGxlOjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6T3duSGFuZGxlOjpzZXQp
OgorICAgICAgICAoV2ViQ29yZTo6T3duSGFuZGxlOjpyZWxlYXNlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok93bkhhbmRsZTo6YWRvcHQpOgorICAgICAgICAoV2ViQ29yZTo6T3duSGFuZGxlOjpzd2Fw
KToKKyAgICAgICAgKFdlYkNvcmU6Ok93bkhhbmRsZTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29y
ZTo6T3duSGFuZGxlOjptYWtlV2Vhayk6CisgICAgICAgIChXZWJDb3JlOjpPd25IYW5kbGU6Ondl
YWtDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVu
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhBYnN0cmFjdEV2ZW50TGlzdGVuZXI6OlY4QWJz
dHJhY3RFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4QWJzdHJhY3RFdmVudExp
c3RlbmVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2
ZW50TGlzdGVuZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaDoKKwog
MjAwOS0wNy0yMiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgQXR0
ZW1wdCB0byBmaXggdGhlIEdUSysgYnVpbGQuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNDYxNTIpCisrKyBX
ZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtNjYwLDYgKzY2MCw3IEBACiAg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvRE9NT2JqZWN0c0luY2x1ZGUuaCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4
L05QVjhPYmplY3QuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvT3duSGFuZGxlLmgnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5oJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9TY3JpcHRDYWNoZWRGcmFtZURhdGEuaCcsCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4
L093bkhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvT3duSGFuZGxl
LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L093bkhhbmRsZS5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBPd25IYW5kbGVfaAorI2RlZmluZSBPd25I
YW5kbGVfaAorCisjaW5jbHVkZSA8djguaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBjbGFzcyBPd25IYW5kbGUgeworICAgIHB1YmxpYzoK
KyAgICAgICAgT3duSGFuZGxlKCkgeyB9CisgICAgICAgIGV4cGxpY2l0IE93bkhhbmRsZSh2ODo6
SGFuZGxlPFQ+IGhhbmRsZSkgOiBtX2hhbmRsZSh2ODo6UGVyc2lzdGVudDxUPjo6TmV3KGhhbmRs
ZSkpIHsgfQorICAgICAgICB+T3duSGFuZGxlKCkgeyBjbGVhcigpOyB9CisKKyAgICAgICAgdjg6
OkhhbmRsZTxUPiBnZXQoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZTsgfQorICAgICAgICB2b2lk
IHNldCh2ODo6SGFuZGxlPFQ+IGhhbmRsZSkgeyBjbGVhcigpOyBtX2hhbmRsZSA9IHY4OjpQZXJz
aXN0ZW50PFQ+OjpOZXcoaGFuZGxlKTsgfQorCisgICAgICAgIHY4OjpQZXJzaXN0ZW50PFQ+IHJl
bGVhc2UoKSB7IHY4OjpQZXJzaXN0ZW50PFQ+IHJlc3VsdCA9IG1faGFuZGxlOyBtX2hhbmRsZS5D
bGVhcigpOyByZXR1cm4gcmVzdWx0OyB9CisgICAgICAgIHZvaWQgYWRvcHQodjg6OlBlcnNpc3Rl
bnQ8VD4gaGFuZGxlKSB7IGNsZWFyKCk7IG1faGFuZGxlID0gaGFuZGxlOyB9CisKKyAgICAgICAg
dm9pZCBzd2FwKE93bkhhbmRsZSYgb3RoZXIpIHsgc3RkOjpzd2FwKG1faGFuZGxlLCBvdGhlci5t
X2hhbmRsZSk7IH0KKworICAgICAgICAvLyBOb3RlOiBUaGlzIGlzIGNsZWFyIGluIHRoZSBPd25Q
dHIgc2Vuc2UsIG5vdCB0aGUgdjg6OkhhbmRsZSBzZW5zZS4KKyAgICAgICAgdm9pZCBjbGVhcigp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChtX2hhbmRsZS5Jc0VtcHR5KCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9oYW5kbGUuRGlzcG9zZSgpOworICAgICAg
ICAgICAgbV9oYW5kbGUuQ2xlYXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE1ha2UgdGhl
IHVuZGVybHlpbmcgaGFuZGxlIHdlYWsuICBUaGUgY2xpZW50IGRvZXNuJ3QgZ2V0IGEgY2FsbGJh
Y2ssCisgICAgICAgIC8vIHdlIGp1c3QgbWFrZSB0aGUgaGFuZGxlIGVtcHR5LgorICAgICAgICB2
b2lkIG1ha2VXZWFrKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1faGFuZGxlLklzRW1w
dHkoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2hhbmRsZS5NYWtl
V2Vhayh0aGlzLCAmT3duSGFuZGxlPFQ+Ojp3ZWFrQ2FsbGJhY2spOworICAgICAgICB9CisKKyAg
ICBwcml2YXRlOgorICAgICAgICBzdGF0aWMgdm9pZCB3ZWFrQ2FsbGJhY2sodjg6OlBlcnNpc3Rl
bnQ8djg6OlZhbHVlPiBvYmplY3QsIHZvaWQqIG93bkhhbmRsZSkKKyAgICAgICAgeworICAgICAg
ICAgICAgT3duSGFuZGxlPFQ+KiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxPd25IYW5kbGU8VD4qPihv
d25IYW5kbGUpOworICAgICAgICAgICAgaGFuZGxlLT5jbGVhcigpOworICAgICAgICB9CisKKyAg
ICAgICAgdjg6OlBlcnNpc3RlbnQ8VD4gbV9oYW5kbGU7CisgICAgfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gT3duSGFuZGxlX2gKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIuY3BwCShyZXZpc2lvbiA0NjE1MikK
KysrIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OCw2ICs0OCwxMiBAQCBWOEFic3RyYWN0RXZlbnRMaXN0ZW5lcjo6VjhB
YnN0cmFjdEV2ZW50CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm47CiAKKyAgICAv
LyBXZSBtaWdodCBiZSBjYWxsZWQgZGlyZWN0bHkgZnJvbSB0aGUgcGFyc2VyLgorICAgIHY4OjpI
YW5kbGVTY29wZSBoYW5kbGVTY29wZTsKKworICAgIG1fY29udGV4dC5zZXQoVjhET01XcmFwcGVy
OjpnZXRXcmFwcGVyQ29udGV4dChtX2ZyYW1lKSk7CisgICAgbV9jb250ZXh0Lm1ha2VXZWFrKCk7
CisKICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIGluIHRoZSBzb3VyY2UgaWYgYW55LgogICAgIGlm
IChtX2lzQXR0cmlidXRlICYmIG1fZnJhbWUtPmRvY3VtZW50KCktPnRva2VuaXplcigpKSB7CiAg
ICAgICAgIG1fbGluZU51bWJlciA9IG1fZnJhbWUtPmRvY3VtZW50KCktPnRva2VuaXplcigpLT5s
aW5lTnVtYmVyKCk7CkBAIC0xMTIsNyArMTE4LDcgQEAgdm9pZCBWOEFic3RyYWN0RXZlbnRMaXN0
ZW5lcjo6aGFuZGxlRXZlbgogCiAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwogCi0g
ICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gVjhQcm94eTo6Y29udGV4dCht
X2ZyYW1lKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSBtX2NvbnRl
eHQuZ2V0KCk7CiAgICAgaWYgKHY4Q29udGV4dC5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsK
IApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9WOEFic3RyYWN0RXZlbnRMaXN0ZW5lci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIu
aAkocmV2aXNpb24gNDYxNTIpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QWJzdHJhY3RFdmVu
dExpc3RlbmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgVjhB
YnN0cmFjdEV2ZW50TGlzdGVuZXJfaAogCiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgorI2lu
Y2x1ZGUgIk93bkhhbmRsZS5oIgogI2luY2x1ZGUgPHY4Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTM5LDExICs0MCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRXZl
bnQ7CiAgICAgY2xhc3MgRnJhbWU7CiAKLSAgICAvLyBUaGVyZSBhcmUgdHdvIGtpbmRzIG9mIGV2
ZW50IGxpc3RlbmVyczogSFRNTCBvciBub24tSE1UTC4gb25sb2FkLCBvbmZvY3VzLCBldGMgKGF0
dHJpYnV0ZXMpIGFyZSBhbHdheXMgSFRNTCBldmVudCBoYW5kbGVyIHR5cGU7Ci0gICAgLy8gRXZl
bnQgbGlzdGVuZXJzIGFkZGVkIGJ5IFdpbmRvdy5hZGRFdmVudExpc3RlbmVyIG9yIEV2ZW50VGFy
Z2V0Tm9kZTo6YWRkRXZlbnRMaXN0ZW5lciBhcmUgbm9uLUhUTUwgdHlwZS4KKyAgICAvLyBUaGVy
ZSBhcmUgdHdvIGtpbmRzIG9mIGV2ZW50IGxpc3RlbmVyczogSFRNTCBvciBub24tSE1UTC4gb25s
b2FkLAorICAgIC8vIG9uZm9jdXMsIGV0YyAoYXR0cmlidXRlcykgYXJlIGFsd2F5cyBIVE1MIGV2
ZW50IGhhbmRsZXIgdHlwZTsgRXZlbnQKKyAgICAvLyBsaXN0ZW5lcnMgYWRkZWQgYnkgV2luZG93
LmFkZEV2ZW50TGlzdGVuZXIgb3IKKyAgICAvLyBFdmVudFRhcmdldE5vZGU6OmFkZEV2ZW50TGlz
dGVuZXIgYXJlIG5vbi1IVE1MIHR5cGUuCiAgICAgLy8KICAgICAvLyBXaHkgZG9lcyB0aGlzIG1h
dHRlcj8KLSAgICAvLyBXZWJLaXQgZG9lcyBub3QgYWxsb3cgZHVwbGljYXRlZCBIVE1MIGV2ZW50
IGhhbmRsZXJzIG9mIHRoZSBzYW1lIHR5cGUsIGJ1dCBBTExPV3MgZHVwbGljYXRlZCBub24tSFRN
TCBldmVudCBoYW5kbGVycy4KKyAgICAvLyBXZWJLaXQgZG9lcyBub3QgYWxsb3cgZHVwbGljYXRl
ZCBIVE1MIGV2ZW50IGhhbmRsZXJzIG9mIHRoZSBzYW1lIHR5cGUsCisgICAgLy8gYnV0IEFMTE9X
cyBkdXBsaWNhdGVkIG5vbi1IVE1MIGV2ZW50IGhhbmRsZXJzLgogICAgIGNsYXNzIFY4QWJzdHJh
Y3RFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlzdGVuZXIgewogICAgIHB1YmxpYzoKICAg
ICAgICAgdmlydHVhbCB+VjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIoKSB7IH0KQEAgLTgzLDYgKzg3
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBkZWxldGVkLiBTZWUgZmFzdC9k
b20vcmVwbGFjZUNoaWxkLmh0bWwKICAgICAgICAgLy8gRklYTUU6IHRoaXMgY291bGQgaG9sZCBt
X2ZyYW1lIGxpdmUgdW50aWwgdGhlIGV2ZW50IGxpc3RlbmVyIGlzIGRlbGV0ZWQuCiAgICAgICAg
IEZyYW1lKiBtX2ZyYW1lOworICAgICAgICBPd25IYW5kbGU8djg6OkNvbnRleHQ+IG1fY29udGV4
dDsKIAogICAgICAgICAvLyBQb3NpdGlvbiBpbiB0aGUgSFRNTCBzb3VyY2UgZm9yIEhUTUwgZXZl
bnQgbGlzdGVuZXJzLgogICAgICAgICBpbnQgbV9saW5lTnVtYmVyOwpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4RE9NV3JhcHBlci5oCShyZXZpc2lvbiA0NjE1MikKKysrIFdlYkNvcmUvYmluZGluZ3Mv
djgvVjhET01XcmFwcGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTg4LDYgKzg4LDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgVjhET01XcmFwcGVyIHsKICAgICBwdWJsaWM6Cisg
ICAgICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBnZXRXcmFwcGVyQ29udGV4dChG
cmFtZSopOworICAgICAgICAKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgIC8vIENoZWNrcyBpZiBh
IHY4IHZhbHVlIGNhbiBiZSBhIERPTSB3cmFwcGVyCiAgICAgICAgIHN0YXRpYyBib29sIG1heWJl
RE9NV3JhcHBlcih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4pOwpAQCAtMjE5LDcgKzIyMSw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBj
b252ZXJ0U1ZHRWxlbWVudEluc3RhbmNlVG9WOE9iamVjdChTVkdFbGVtZW50SW5zdGFuY2UqKTsK
ICAgICAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb252ZXJ0U1ZHT2JqZWN0V2l0
aENvbnRleHRUb1Y4T2JqZWN0KFY4Q2xhc3NJbmRleDo6VjhXcmFwcGVyVHlwZSwgdm9pZCopOwog
I2VuZGlmCi0KKyAgICAgICAgCiAgICAgcHJpdmF0ZToKICAgICAgICAgLy8gU2V0IGhpZGRlbiBy
ZWZlcmVuY2VzIGluIGEgRE9NV2luZG93IG9iamVjdCBvZiBhIGZyYW1lLgogICAgICAgICBzdGF0
aWMgdm9pZCBzZXRIaWRkZW5XaW5kb3dSZWZlcmVuY2UoRnJhbWUqLCBjb25zdCBpbnQgaW50ZXJu
YWxJbmRleCwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pik7CkBAIC0yNDksOCArMjUxLDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIHY4OjpMb2NhbDx2
ODo6T2JqZWN0PiBpbnN0YW50aWF0ZVY4T2JqZWN0KFY4UHJveHkqLCBWOENsYXNzSW5kZXg6OlY4
V3JhcHBlclR5cGUsIFY4Q2xhc3NJbmRleDo6VjhXcmFwcGVyVHlwZSwgdm9pZCopOwotCi0gICAg
ICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBnZXRXcmFwcGVyQ29udGV4dChGcmFt
ZSopOwogICAgIH07CiAKIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ2MjE4KQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMDctMjIg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbVjhdIEZpeCBpc29sYXRlZCB3b3JsZCB3cmFwcGVy
cyBmb3IgZXZlbnQgaGFuZGxlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI3NTMzCisKKyAgICAgICAgVGVzdCB0aGF0IHdlIGdldCB0aGUgd3JhcHBl
cnMgZnJvbSB0aGUgcmlnaHQgd29ybGQgd2hlbiBoYW5kbGluZworICAgICAgICBldmVudHMuCisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvY2xpY2stZXZlbnQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xh
dGVkV29ybGQvY2xpY2stZXZlbnQuaHRtbDogQWRkZWQuCisKIDIwMDktMDctMjEgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWlu
LgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2Ns
aWNrLWV2ZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvY2xpY2stZXZlbnQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxk
L2NsaWNrLWV2ZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyIEBACitJ
c29sYXRlZAorU3RlcCAxCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lz
b2xhdGVkV29ybGQvY2xpY2stZXZlbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvY2xpY2stZXZlbnQuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9j
bGljay1ldmVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj5XYWl0aW5nLi4uPC9kaXY+
Cis8YnV0dG9uIGlkPSJidG4xIj5TdGVwIDE8L2J1dHRvbj4KKzxzY3JpcHQgaWQ9Imlzb2xhdGVk
U2NyaXB0IiB0eXBlPSJpc29sYXRlZC93b3JsZCI+Citkb2N1bWVudC5ib2R5LndvcmxkID0gJ0lz
b2xhdGVkJzsKK3ZhciBidCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4xJyk7CitidC5h
ZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgeworICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnY29uc29sZScpLmlubmVySFRNTCA9IGRvY3VtZW50LmJvZHkud29ybGQ7Cit9LCBm
YWxzZSk7CitidC5jbGljaygpOworPC9zY3JpcHQ+Cis8c2NyaXB0PgorZG9jdW1lbnQuYm9keS53
b3JsZCA9ICdNYWluJzsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICBsYXlvdXRUZXN0Q29udHJvbGxlci5x
dWV1ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaXNvbGF0
ZWRTY3JpcHQnKS5pbm5lckhUTUwpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33273</attachid>
            <date>2009-07-22 11:10:43 -0700</date>
            <delta_ts>2009-07-28 20:55:52 -0700</delta_ts>
            <desc>patch with less trailing whitespace</desc>
            <filename>bug-27533-20090722111042.patch</filename>
            <type>text/plain</type>
            <size>10942</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjIxOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMDktMDctMjIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbVjhd
IEZpeCBpc29sYXRlZCB3b3JsZCB3cmFwcGVycyBmb3IgZXZlbnQgaGFuZGxlcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NTMzCisKKyAgICAgICAg
SW5zdGVhZCBvZiBnZXR0aW5nIHRoZSBjb250ZXh0IGZyb20gdGhlIGZyYW1lLCB3ZSBjYWNoZSB0
aGUgY29udGV4dAorICAgICAgICB3aGVuIHRoZSBsaXN0ZW5lciBpcyBjcmVhdGVkIHNvIHRoYXQg
d2UgZ2V0IHRoZSBjb250ZXh0IGZvciB0aGUgcmlnaHQKKyAgICAgICAgd29ybGQuCisKKyAgICAg
ICAgVGVzdDogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2NsaWNrLWV2ZW50Lmh0
bWwKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Pd25I
YW5kbGUuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpPd25IYW5kbGU6Ok93bkhhbmRsZSk6
CisgICAgICAgIChXZWJDb3JlOjpPd25IYW5kbGU6On5Pd25IYW5kbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6T3duSGFuZGxlOjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6T3duSGFuZGxlOjpzZXQp
OgorICAgICAgICAoV2ViQ29yZTo6T3duSGFuZGxlOjpyZWxlYXNlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok93bkhhbmRsZTo6YWRvcHQpOgorICAgICAgICAoV2ViQ29yZTo6T3duSGFuZGxlOjpzd2Fw
KToKKyAgICAgICAgKFdlYkNvcmU6Ok93bkhhbmRsZTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29y
ZTo6T3duSGFuZGxlOjptYWtlV2Vhayk6CisgICAgICAgIChXZWJDb3JlOjpPd25IYW5kbGU6Ondl
YWtDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVu
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhBYnN0cmFjdEV2ZW50TGlzdGVuZXI6OlY4QWJz
dHJhY3RFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4QWJzdHJhY3RFdmVudExp
c3RlbmVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2
ZW50TGlzdGVuZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaDoKKwog
MjAwOS0wNy0yMiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgQXR0
ZW1wdCB0byBmaXggdGhlIEdUSysgYnVpbGQuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNDYxNTIpCisrKyBX
ZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtNjYwLDYgKzY2MCw3IEBACiAg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvRE9NT2JqZWN0c0luY2x1ZGUuaCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvTlBWOE9iamVjdC5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4
L05QVjhPYmplY3QuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvT3duSGFuZGxlLmgnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L1NjaGVkdWxlZEFjdGlvbi5oJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9TY3JpcHRDYWNoZWRGcmFtZURhdGEuaCcsCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4
L093bkhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvT3duSGFuZGxl
LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L093bkhhbmRsZS5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBPd25IYW5kbGVfaAorI2RlZmluZSBPd25I
YW5kbGVfaAorCisjaW5jbHVkZSA8djguaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICBjbGFzcyBPd25IYW5kbGUgeworICAgIHB1YmxpYzoK
KyAgICAgICAgT3duSGFuZGxlKCkgeyB9CisgICAgICAgIGV4cGxpY2l0IE93bkhhbmRsZSh2ODo6
SGFuZGxlPFQ+IGhhbmRsZSkgOiBtX2hhbmRsZSh2ODo6UGVyc2lzdGVudDxUPjo6TmV3KGhhbmRs
ZSkpIHsgfQorICAgICAgICB+T3duSGFuZGxlKCkgeyBjbGVhcigpOyB9CisKKyAgICAgICAgdjg6
OkhhbmRsZTxUPiBnZXQoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZTsgfQorICAgICAgICB2b2lk
IHNldCh2ODo6SGFuZGxlPFQ+IGhhbmRsZSkgeyBjbGVhcigpOyBtX2hhbmRsZSA9IHY4OjpQZXJz
aXN0ZW50PFQ+OjpOZXcoaGFuZGxlKTsgfQorCisgICAgICAgIHY4OjpQZXJzaXN0ZW50PFQ+IHJl
bGVhc2UoKSB7IHY4OjpQZXJzaXN0ZW50PFQ+IHJlc3VsdCA9IG1faGFuZGxlOyBtX2hhbmRsZS5D
bGVhcigpOyByZXR1cm4gcmVzdWx0OyB9CisgICAgICAgIHZvaWQgYWRvcHQodjg6OlBlcnNpc3Rl
bnQ8VD4gaGFuZGxlKSB7IGNsZWFyKCk7IG1faGFuZGxlID0gaGFuZGxlOyB9CisKKyAgICAgICAg
dm9pZCBzd2FwKE93bkhhbmRsZSYgb3RoZXIpIHsgc3RkOjpzd2FwKG1faGFuZGxlLCBvdGhlci5t
X2hhbmRsZSk7IH0KKworICAgICAgICAvLyBOb3RlOiBUaGlzIGlzIGNsZWFyIGluIHRoZSBPd25Q
dHIgc2Vuc2UsIG5vdCB0aGUgdjg6OkhhbmRsZSBzZW5zZS4KKyAgICAgICAgdm9pZCBjbGVhcigp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChtX2hhbmRsZS5Jc0VtcHR5KCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgbV9oYW5kbGUuRGlzcG9zZSgpOworICAgICAg
ICAgICAgbV9oYW5kbGUuQ2xlYXIoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE1ha2UgdGhl
IHVuZGVybHlpbmcgaGFuZGxlIHdlYWsuICBUaGUgY2xpZW50IGRvZXNuJ3QgZ2V0IGEgY2FsbGJh
Y2ssCisgICAgICAgIC8vIHdlIGp1c3QgbWFrZSB0aGUgaGFuZGxlIGVtcHR5LgorICAgICAgICB2
b2lkIG1ha2VXZWFrKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1faGFuZGxlLklzRW1w
dHkoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBtX2hhbmRsZS5NYWtl
V2Vhayh0aGlzLCAmT3duSGFuZGxlPFQ+Ojp3ZWFrQ2FsbGJhY2spOworICAgICAgICB9CisKKyAg
ICBwcml2YXRlOgorICAgICAgICBzdGF0aWMgdm9pZCB3ZWFrQ2FsbGJhY2sodjg6OlBlcnNpc3Rl
bnQ8djg6OlZhbHVlPiBvYmplY3QsIHZvaWQqIG93bkhhbmRsZSkKKyAgICAgICAgeworICAgICAg
ICAgICAgT3duSGFuZGxlPFQ+KiBoYW5kbGUgPSBzdGF0aWNfY2FzdDxPd25IYW5kbGU8VD4qPihv
d25IYW5kbGUpOworICAgICAgICAgICAgaGFuZGxlLT5jbGVhcigpOworICAgICAgICB9CisKKyAg
ICAgICAgdjg6OlBlcnNpc3RlbnQ8VD4gbV9oYW5kbGU7CisgICAgfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gT3duSGFuZGxlX2gKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIuY3BwCShyZXZpc2lvbiA0NjE1MikK
KysrIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OCw2ICs0OCwxMiBAQCBWOEFic3RyYWN0RXZlbnRMaXN0ZW5lcjo6VjhB
YnN0cmFjdEV2ZW50CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm47CiAKKyAgICAv
LyBXZSBtaWdodCBiZSBjYWxsZWQgZGlyZWN0bHkgZnJvbSB0aGUgcGFyc2VyLgorICAgIHY4OjpI
YW5kbGVTY29wZSBoYW5kbGVTY29wZTsKKworICAgIG1fY29udGV4dC5zZXQoVjhET01XcmFwcGVy
OjpnZXRXcmFwcGVyQ29udGV4dChtX2ZyYW1lKSk7CisgICAgbV9jb250ZXh0Lm1ha2VXZWFrKCk7
CisKICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIGluIHRoZSBzb3VyY2UgaWYgYW55LgogICAgIGlm
IChtX2lzQXR0cmlidXRlICYmIG1fZnJhbWUtPmRvY3VtZW50KCktPnRva2VuaXplcigpKSB7CiAg
ICAgICAgIG1fbGluZU51bWJlciA9IG1fZnJhbWUtPmRvY3VtZW50KCktPnRva2VuaXplcigpLT5s
aW5lTnVtYmVyKCk7CkBAIC0xMTIsNyArMTE4LDcgQEAgdm9pZCBWOEFic3RyYWN0RXZlbnRMaXN0
ZW5lcjo6aGFuZGxlRXZlbgogCiAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwogCi0g
ICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gVjhQcm94eTo6Y29udGV4dCht
X2ZyYW1lKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSBtX2NvbnRl
eHQuZ2V0KCk7CiAgICAgaWYgKHY4Q29udGV4dC5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsK
IApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9WOEFic3RyYWN0RXZlbnRMaXN0ZW5lci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIu
aAkocmV2aXNpb24gNDYxNTIpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QWJzdHJhY3RFdmVu
dExpc3RlbmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgVjhB
YnN0cmFjdEV2ZW50TGlzdGVuZXJfaAogCiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgorI2lu
Y2x1ZGUgIk93bkhhbmRsZS5oIgogI2luY2x1ZGUgPHY4Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTM5LDExICs0MCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRXZl
bnQ7CiAgICAgY2xhc3MgRnJhbWU7CiAKLSAgICAvLyBUaGVyZSBhcmUgdHdvIGtpbmRzIG9mIGV2
ZW50IGxpc3RlbmVyczogSFRNTCBvciBub24tSE1UTC4gb25sb2FkLCBvbmZvY3VzLCBldGMgKGF0
dHJpYnV0ZXMpIGFyZSBhbHdheXMgSFRNTCBldmVudCBoYW5kbGVyIHR5cGU7Ci0gICAgLy8gRXZl
bnQgbGlzdGVuZXJzIGFkZGVkIGJ5IFdpbmRvdy5hZGRFdmVudExpc3RlbmVyIG9yIEV2ZW50VGFy
Z2V0Tm9kZTo6YWRkRXZlbnRMaXN0ZW5lciBhcmUgbm9uLUhUTUwgdHlwZS4KKyAgICAvLyBUaGVy
ZSBhcmUgdHdvIGtpbmRzIG9mIGV2ZW50IGxpc3RlbmVyczogSFRNTCBvciBub24tSE1UTC4gb25s
b2FkLAorICAgIC8vIG9uZm9jdXMsIGV0YyAoYXR0cmlidXRlcykgYXJlIGFsd2F5cyBIVE1MIGV2
ZW50IGhhbmRsZXIgdHlwZTsgRXZlbnQKKyAgICAvLyBsaXN0ZW5lcnMgYWRkZWQgYnkgV2luZG93
LmFkZEV2ZW50TGlzdGVuZXIgb3IKKyAgICAvLyBFdmVudFRhcmdldE5vZGU6OmFkZEV2ZW50TGlz
dGVuZXIgYXJlIG5vbi1IVE1MIHR5cGUuCiAgICAgLy8KICAgICAvLyBXaHkgZG9lcyB0aGlzIG1h
dHRlcj8KLSAgICAvLyBXZWJLaXQgZG9lcyBub3QgYWxsb3cgZHVwbGljYXRlZCBIVE1MIGV2ZW50
IGhhbmRsZXJzIG9mIHRoZSBzYW1lIHR5cGUsIGJ1dCBBTExPV3MgZHVwbGljYXRlZCBub24tSFRN
TCBldmVudCBoYW5kbGVycy4KKyAgICAvLyBXZWJLaXQgZG9lcyBub3QgYWxsb3cgZHVwbGljYXRl
ZCBIVE1MIGV2ZW50IGhhbmRsZXJzIG9mIHRoZSBzYW1lIHR5cGUsCisgICAgLy8gYnV0IEFMTE9X
cyBkdXBsaWNhdGVkIG5vbi1IVE1MIGV2ZW50IGhhbmRsZXJzLgogICAgIGNsYXNzIFY4QWJzdHJh
Y3RFdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlzdGVuZXIgewogICAgIHB1YmxpYzoKICAg
ICAgICAgdmlydHVhbCB+VjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIoKSB7IH0KQEAgLTgzLDYgKzg3
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBkZWxldGVkLiBTZWUgZmFzdC9k
b20vcmVwbGFjZUNoaWxkLmh0bWwKICAgICAgICAgLy8gRklYTUU6IHRoaXMgY291bGQgaG9sZCBt
X2ZyYW1lIGxpdmUgdW50aWwgdGhlIGV2ZW50IGxpc3RlbmVyIGlzIGRlbGV0ZWQuCiAgICAgICAg
IEZyYW1lKiBtX2ZyYW1lOworICAgICAgICBPd25IYW5kbGU8djg6OkNvbnRleHQ+IG1fY29udGV4
dDsKIAogICAgICAgICAvLyBQb3NpdGlvbiBpbiB0aGUgSFRNTCBzb3VyY2UgZm9yIEhUTUwgZXZl
bnQgbGlzdGVuZXJzLgogICAgICAgICBpbnQgbV9saW5lTnVtYmVyOwpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4RE9NV3JhcHBlci5oCShyZXZpc2lvbiA0NjE1MikKKysrIFdlYkNvcmUvYmluZGluZ3Mv
djgvVjhET01XcmFwcGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTg4LDYgKzg4LDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgVjhET01XcmFwcGVyIHsKICAgICBwdWJsaWM6Cisg
ICAgICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBnZXRXcmFwcGVyQ29udGV4dChG
cmFtZSopOworICAgICAgICAKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgIC8vIENoZWNrcyBpZiBh
IHY4IHZhbHVlIGNhbiBiZSBhIERPTSB3cmFwcGVyCiAgICAgICAgIHN0YXRpYyBib29sIG1heWJl
RE9NV3JhcHBlcih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4pOwpAQCAtMjQ5LDggKzI1MSw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyB2ODo6TG9jYWw8
djg6Ok9iamVjdD4gaW5zdGFudGlhdGVWOE9iamVjdChWOFByb3h5KiwgVjhDbGFzc0luZGV4OjpW
OFdyYXBwZXJUeXBlLCBWOENsYXNzSW5kZXg6OlY4V3JhcHBlclR5cGUsIHZvaWQqKTsKLQotICAg
ICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gZ2V0V3JhcHBlckNvbnRleHQoRnJh
bWUqKTsKICAgICB9OwogCiB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NjIxOCkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDA5LTA3LTIy
ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1Y4XSBGaXggaXNvbGF0ZWQgd29ybGQgd3JhcHBl
cnMgZm9yIGV2ZW50IGhhbmRsZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNzUzMworCisgICAgICAgIFRlc3QgdGhhdCB3ZSBnZXQgdGhlIHdyYXBw
ZXJzIGZyb20gdGhlIHJpZ2h0IHdvcmxkIHdoZW4gaGFuZGxpbmcKKyAgICAgICAgZXZlbnRzLgor
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2NsaWNrLWV2ZW50
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9pc29s
YXRlZFdvcmxkL2NsaWNrLWV2ZW50Lmh0bWw6IEFkZGVkLgorCiAyMDA5LTA3LTIxICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVp
bi4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9j
bGljay1ldmVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2NsaWNrLWV2ZW50LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3Js
ZC9jbGljay1ldmVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMiBAQAor
SXNvbGF0ZWQKK1N0ZXAgMQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9p
c29sYXRlZFdvcmxkL2NsaWNrLWV2ZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2NsaWNrLWV2ZW50Lmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQv
Y2xpY2stZXZlbnQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+V2FpdGluZy4uLjwvZGl2
PgorPGJ1dHRvbiBpZD0iYnRuMSI+U3RlcCAxPC9idXR0b24+Cis8c2NyaXB0IGlkPSJpc29sYXRl
ZFNjcmlwdCIgdHlwZT0iaXNvbGF0ZWQvd29ybGQiPgorZG9jdW1lbnQuYm9keS53b3JsZCA9ICdJ
c29sYXRlZCc7Cit2YXIgYnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuMScpOworYnQu
YWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKKyAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lckhUTUwgPSBkb2N1bWVudC5ib2R5LndvcmxkOworfSwg
ZmFsc2UpOworYnQuY2xpY2soKTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2RvY3VtZW50LmJvZHku
d29ybGQgPSAnTWFpbic7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
cXVldWVTY3JpcHRJbklzb2xhdGVkV29ybGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lzb2xh
dGVkU2NyaXB0JykuaW5uZXJIVE1MKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPg==
</data>
<flag name="review"
          id="17579"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>