<?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>22397</bug_id>
          
          <creation_ts>2008-11-21 02:48:50 -0800</creation_ts>
          <short_desc>Worker threads are not destroyed if running a tight loop</short_desc>
          <delta_ts>2008-11-21 23:43:25 -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>Mac</rep_platform>
          <op_sys>OS X 10.5</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>99627</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-21 02:48:50 -0800</bug_when>
    <thetext>Worker threads need to be destroyed when their Worker object is destroyed. Currently, this doesn&apos;t happen if the thread in running a JS loop, because the event loop in not entered in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99630</commentid>
    <comment_count>1</comment_count>
      <attachid>25345</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-21 02:58:13 -0800</bug_when>
    <thetext>Created attachment 25345
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99633</commentid>
    <comment_count>2</comment_count>
      <attachid>25347</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-21 04:30:06 -0800</bug_when>
    <thetext>Created attachment 25347
proposed fix

Removed access to possibly already destroyed &quot;this&quot; object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99688</commentid>
    <comment_count>3</comment_count>
      <attachid>25347</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-11-21 13:26:38 -0800</bug_when>
    <thetext>Comment on attachment 25347
proposed fix

&gt; +    m_globalData-&gt;interpreter-&gt;setTimeoutTime(1);

What does this &quot;1&quot; mean? Is it a magic constant of some sort? 1 second perhaps?

&gt; +    // The thread object may be already destroyed from notification now, don&apos;t try to access &quot;this&quot;.

I don&apos;t think this comment makes it clear enough that it was the assignment m_workerContext = 0 that could trigger the notification. I had to study the code for a while to understand why the previous line could access &quot;this&quot; without a problem, until I realized that it was the previous line that was the trigger.

&gt; +    // FIXME: rudely killing the thread won&apos;t work when we allow nested workers, because they will try to post notifications of their destruction.
&gt; +    m_messageQueue.kill();

Please capitalize &quot;rudely&quot;.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99689</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-21 13:36:22 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 25347 [review])
&gt; &gt; +    m_globalData-&gt;interpreter-&gt;setTimeoutTime(1);
&gt; 
&gt; What does this &quot;1&quot; mean? Is it a magic constant of some sort? 1 second perhaps?

This is 1 millisecond, which is the minimal value that can be passed to this function (0 is magic, and means no timeout).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99768</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-21 23:43:25 -0800</bug_when>
    <thetext>Committed revision 38689. Re-worded the comments a bit for clarity.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25345</attachid>
            <date>2008-11-21 02:58:13 -0800</date>
            <delta_ts>2008-11-21 04:30:06 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>InterruptJS.txt</filename>
            <type>text/plain</type>
            <size>7799</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODY1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMDgtMTEtMjEgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM5NworICAgICAgICBX
b3JrZXIgdGhyZWFkcyBhcmUgbm90IGRlc3Ryb3llZCBpZiBydW5uaW5nIGEgSlMgbG9vcAorCisg
ICAgICAgIFNpbmNlIHRoZSBldmVudCBsb29wIGlzIG5vdCBldmVyIGVudGVyZWQgYWdhaW4gaW4g
dGhpcyBjYXNlLCB0aGUgZml4IG5lY2Vzc2FyaWx5IGludm9sdmVzCisgICAgICAgIHNvbWUgc2hh
cmVkIGRhdGEgaGFja2VyeS4KKworICAgICAgICAqIGRvbS9Xb3JrZXJUaHJlYWQuY3BwOiAoV2Vi
Q29yZTo6V29ya2VyVGhyZWFkOjpzdG9wKToKKyAgICAgICAgKiBkb20vV29ya2VyVGhyZWFkLmg6
CisgICAgICAgIEFkZGVkIGEgc3RvcCgpIG1ldGhvZCwgd2hpY2ggYXNrcyB0aGUgdGhyZWFkIHRv
IGV4aXQgYXMgc29vbiBhcyBwb3NzaWJsZS4gSW4gdGhlIGZ1dHVyZSwgaXQKKyAgICAgICAgbWF5
IG5lZWQgdG8gYWJvcnQgb3RoZXIga2luZHMgb2Ygc3luY2hyb25vdXMgcHJvY2Vzc2luZywgc3Vj
aCBhcyBpbXBvcnRTY3JpcHRzIG9yIFhIUi4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtl
clNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29u
dHJvbGxlcjo6V29ya2VyU2NyaXB0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJT
Y3JpcHRDb250cm9sbGVyOjpmb3JiaWRFeGVjdXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgQWRkZWQgYSBmb3JiaWRFeGVjdXRp
b24oKSBtZXRob2QsIHdoaWNoIGludGVycnVwdHMgY3VycmVudGx5IHJ1bm5pbmcgSlMsIGFuZCBt
YWtlcyBhbnkKKyAgICAgICAgZnV0dXJlIGNhbGxzIHRvIGV2YWx1YXRlKCkgcmV0dXJuIGltbWVk
aWF0ZWx5LgorCisgICAgICAgICogZG9tL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDogKFdlYkNv
cmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojp3b3JrZXJPYmplY3REZXN0cm95ZWQpOgorICAgICAg
ICBDYWxsIFdvcmtlclRocmVhZDo6c3RvcCgpLgorCiAyMDA4LTExLTIwICBTYW0gV2VpbmlnICA8
c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAJ
KHJldmlzaW9uIDM4NjU0KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250
cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIldv
cmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXJNZXNzYWdpbmdQcm94eS5oIgogI2luY2x1
ZGUgIldvcmtlclRocmVhZC5oIgorI2luY2x1ZGUgPGludGVycHJldGVyL0ludGVycHJldGVyLmg+
CiAjaW5jbHVkZSA8cGFyc2VyL1NvdXJjZUNvZGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0NvbXBs
ZXRpb24uaD4KICNpbmNsdWRlIDxydW50aW1lL0NvbXBsZXRpb24uaD4KQEAgLTQ3LDYgKzQ4LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6V29ya2VyU2Ny
aXB0Q29udHJvbGxlcihXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0KQogICAgIDogbV9nbG9i
YWxEYXRhKEpTR2xvYmFsRGF0YTo6Y3JlYXRlKCkpCiAgICAgLCBtX3dvcmtlckNvbnRleHQod29y
a2VyQ29udGV4dCkKKyAgICAsIG1fZXhlY3V0aW9uRm9yYmlkZGVkKGZhbHNlKQogewogfQogCkBA
IC03MCw2ICs3MiwxMiBAQCB2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHQo
CiAKIEpTVmFsdWUqIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IEpTQzo6
U291cmNlQ29kZSYgc291cmNlQ29kZSkKIHsKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2sobV9zaGFyZWREYXRhTXV0ZXgpOworICAgICAgICBpZiAobV9leGVjdXRpb25Gb3JiaWRkZWQp
CisgICAgICAgICAgICByZXR1cm4gbm9WYWx1ZSgpOworICAgIH0KKwogICAgIGluaXRTY3JpcHRJ
Zk5lZWRlZCgpOwogICAgIEpTTG9jayBsb2NrKGZhbHNlKTsKIApAQCAtODgsNiArOTYsMTcgQEAg
SlNWYWx1ZSogV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdAogICAgIHJldHVybiBub1Zh
bHVlKCk7CiB9CiAKK3ZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6Zm9yYmlkRXhlY3V0aW9u
KCkKK3sKKyAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIGFub3RoZXIgdGhyZWFk
LgorICAgIC8vIE11dGV4IHByb3RlY3Rpb24gZm9yIG1fZXhlY3V0aW9uRm9yYmlkZGVkIGlzIG5l
ZWRlZCB0byBndWFyYW50ZWUgdGhhdCB0aGUgdmFsdWUgaXMgc3luY2hyb25pemVkIGJldHdlZW4g
cHJvY2Vzc29ycywgYmVjYXVzZQorICAgIC8vIGlmIGl0IHdlcmUgbm90LCB0aGUgd29ya2VyIGNv
dWxkIHJlLWVudGVyIEpTQzo6ZXZhbHVhdGUoKSwgYnV0IHdpdGggdGltZW91dCBhbHJlYWR5IHJl
c2V0LgorICAgIC8vIEl0IGlzIG5vdCBjcml0aWNhbCBmb3IgSW50ZXJwcmV0ZXI6Om1fdGltZW91
dFRpbWUgdG8gYmUgc3luY2hyb25pemVkLCB3ZSBqdXN0IHJlbHkgb24gaXQgcmVhY2hpbmcgdGhl
IHdvcmtlciB0aHJlYWQncyBwcm9jZXNzb3Igc29vbmVyIG9yIGxhdGVyLgorICAgIE11dGV4TG9j
a2VyIGxvY2sobV9zaGFyZWREYXRhTXV0ZXgpOworICAgIG1fZXhlY3V0aW9uRm9yYmlkZGVkID0g
dHJ1ZTsKKyAgICBtX2dsb2JhbERhdGEtPmludGVycHJldGVyLT5zZXRUaW1lb3V0VGltZSgxKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdPUktFUlMp
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAko
cmV2aXNpb24gMzg2NTQpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRy
b2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSA8cnVu
dGltZS9Qcm90ZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8
d3RmL1RocmVhZGluZy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBKU0dsb2JhbERh
dGE7CkBAIC01Nyw2ICs1OCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBKU0M6
OkpTVmFsdWUqIGV2YWx1YXRlKGNvbnN0IEpTQzo6U291cmNlQ29kZSYpOwogCisgICAgICAgIHZv
aWQgZm9yYmlkRXhlY3V0aW9uKCk7CisKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGluaXRT
Y3JpcHRJZk5lZWRlZCgpCiAgICAgICAgIHsKQEAgLTY4LDYgKzcxLDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBSZWZQdHI8SlNDOjpKU0dsb2JhbERhdGE+IG1fZ2xvYmFsRGF0YTsK
ICAgICAgICAgV29ya2VyQ29udGV4dCogbV93b3JrZXJDb250ZXh0OwogICAgICAgICBKU0M6OlBy
b3RlY3RlZFB0cjxKU1dvcmtlckNvbnRleHQ+IG1fd29ya2VyQ29udGV4dFdyYXBwZXI7CisKKyAg
ICAgICAgTXV0ZXggbV9zaGFyZWREYXRhTXV0ZXg7CisgICAgICAgIGJvb2wgbV9leGVjdXRpb25G
b3JiaWRkZWQ7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29y
ZS9kb20vV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9t
L1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAkocmV2aXNpb24gMzg2NTQpCisrKyBXZWJDb3JlL2Rv
bS9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzOCw3ICsyMzgs
NyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp3b3JrZXJPYmplY3RECiB7CiAgICAgbV93
b3JrZXJPYmplY3QgPSAwOwogICAgIGlmIChtX3dvcmtlclRocmVhZCkKLSAgICAgICAgbV93b3Jr
ZXJUaHJlYWQtPm1lc3NhZ2VRdWV1ZSgpLmtpbGwoKTsgLy8gRklYTUU6ICgxKSBydWRlbHkga2ls
bGluZyBhIHRocmVhZCB3b24ndCB3b3JrIHdoZW4gd2UgYWxsb3cgbmVzdGVkIHdvcmtlcnM7ICgy
KSBuZWVkIHRvIGludGVycnVwdCBjdXJyZW50bHkgcnVubmluZyBKUy4KKyAgICAgICAgbV93b3Jr
ZXJUaHJlYWQtPnN0b3AoKTsKICAgICBlbHNlCiAgICAgICAgIHdvcmtlckNvbnRleHREZXN0cm95
ZWRJbnRlcm5hbCgpOyAvLyBJdCBuZXZlciBleGlzdGVkLCBqdXN0IGRvIG91ciBjbGVhbnVwLgog
fQpJbmRleDogV2ViQ29yZS9kb20vV29ya2VyVGhyZWFkLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2RvbS9Xb3JrZXJUaHJlYWQuY3BwCShyZXZpc2lvbiAzODY1NCkKKysrIFdlYkNvcmUvZG9t
L1dvcmtlclRocmVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1LDMwICs3NSwzOSBAQCB2b2lk
KiBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZFN0YXJ0KHZvCiAKIHZvaWQqIFdvcmtlclRocmVh
ZDo6d29ya2VyVGhyZWFkKCkKIHsKLSAgICBSZWZQdHI8V29ya2VyQ29udGV4dD4gd29ya2VyQ29u
dGV4dCA9IFdvcmtlckNvbnRleHQ6OmNyZWF0ZShLVVJMKG1fc2NyaXB0VVJMKSwgdGhpcyk7Ci0g
ICAgV29ya2VyU2NyaXB0Q29udHJvbGxlciogc2NyaXB0ID0gd29ya2VyQ29udGV4dC0+c2NyaXB0
KCk7CisgICAgbV93b3JrZXJDb250ZXh0ID0gV29ya2VyQ29udGV4dDo6Y3JlYXRlKEtVUkwobV9z
Y3JpcHRVUkwpLCB0aGlzKTsKKyAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQgPSBt
X3dvcmtlckNvbnRleHQtPnNjcmlwdCgpOwogCiAgICAgc2NyaXB0LT5ldmFsdWF0ZShtYWtlU291
cmNlKG1fc291cmNlQ29kZSwgbV9zY3JpcHRVUkwpKTsKLSAgICBtX21lc3NhZ2luZ1Byb3h5LT5j
b25maXJtV29ya2VyVGhyZWFkTWVzc2FnZSh3b3JrZXJDb250ZXh0LT5oYXNQZW5kaW5nQWN0aXZp
dHkoKSk7IC8vIFRoaXMgd2Fzbid0IHJlYWxseSBhIG1lc3NhZ2UsIGJ1dCBpdCBjb3VudHMgYXMg
b25lIGZvciBHQy4KKyAgICBtX21lc3NhZ2luZ1Byb3h5LT5jb25maXJtV29ya2VyVGhyZWFkTWVz
c2FnZShtX3dvcmtlckNvbnRleHQtPmhhc1BlbmRpbmdBY3Rpdml0eSgpKTsgLy8gVGhpcyB3YXNu
J3QgcmVhbGx5IGEgbWVzc2FnZSwgYnV0IGl0IGNvdW50cyBhcyBvbmUgZm9yIEdDLgogCiAgICAg
d2hpbGUgKHRydWUpIHsKICAgICAgICAgUmVmUHRyPFdvcmtlclRhc2s+IHRhc2s7CiAgICAgICAg
IGlmICghbV9tZXNzYWdlUXVldWUud2FpdEZvck1lc3NhZ2UodGFzaykpCiAgICAgICAgICAgICBi
cmVhazsKIAotICAgICAgICB0YXNrLT5wZXJmb3JtVGFzayh3b3JrZXJDb250ZXh0LmdldCgpKTsK
KyAgICAgICAgdGFzay0+cGVyZm9ybVRhc2sobV93b3JrZXJDb250ZXh0LmdldCgpKTsKICAgICB9
CiAKLSAgICB3b3JrZXJDb250ZXh0LT5jbGVhclNjcmlwdCgpOwotICAgIEFTU0VSVCh3b3JrZXJD
b250ZXh0LT5oYXNPbmVSZWYoKSk7CisgICAgbV93b3JrZXJDb250ZXh0LT5jbGVhclNjcmlwdCgp
OworICAgIEFTU0VSVChtX3dvcmtlckNvbnRleHQtPmhhc09uZVJlZigpKTsKICAgICAvLyBEZXN0
cm95aW5nIHRoZSBjb250ZXh0IHdpbGwgbm90aWZ5IG1lc3NhZ2luZyBwcm94eS4KICAgICAvLyBX
ZSBjYW5ub3QgbGV0IGFueSBvYmplY3RzIHN1cnZpdmUgcGFzdCB0aHJlYWQgZXhpdCwgYmVjYXVz
ZSBubyBvdGhlciB0aHJlYWQgd2lsbCBydW4gR0Mgb3Igb3RoZXJ3aXNlIGRlc3Ryb3kgdGhlbS4K
LSAgICB3b3JrZXJDb250ZXh0ID0gMDsKKyAgICBtX3dvcmtlckNvbnRleHQgPSAwOwogICAgIG1f
dGhyZWFkSUQgPSAwOwogCiAgICAgcmV0dXJuIDA7CiB9CiAKK3ZvaWQgV29ya2VyVGhyZWFkOjpz
dG9wKCkKK3sKKyAgICAvLyBFbnN1cmUgdGhhdCB0YXNrcyBhcmUgYmVpbmcgaGFuZGxlZCBieSB0
aHJlYWQgZXZlbnQgbG9vcC4gSWYgc2NyaXB0IGV4ZWN1dGlvbiB3ZXJlbid0IGZvcmJpZGRlbiwg
YSB3aGlsZSgxKSBsb29wIGluIEpTIGNvdWxkIGtlZXAgdGhlIHRocmVhZCBhbGl2ZSBmb3JldmVy
LgorICAgIG1fd29ya2VyQ29udGV4dC0+c2NyaXB0KCktPmZvcmJpZEV4ZWN1dGlvbigpOworCisg
ICAgLy8gRklYTUU6IHJ1ZGVseSBraWxsaW5nIHRoZSB0aHJlYWQgd29uJ3Qgd29yayB3aGVuIHdl
IGFsbG93IG5lc3RlZCB3b3JrZXJzLCBiZWNhdXNlIHRoZXkgd2lsbCB0cnkgdG8gcG9zdCBub3Rp
ZmljYXRpb25zIG9mIHRoZWlyIGRlc3RydWN0aW9uLgorICAgIG1fbWVzc2FnZVF1ZXVlLmtpbGwo
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdPUktF
UlMpCkluZGV4OiBXZWJDb3JlL2RvbS9Xb3JrZXJUaHJlYWQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2RvbS9Xb3JrZXJUaHJlYWQuaAkocmV2aXNpb24gMzg2NTQpCisrKyBXZWJDb3JlL2RvbS9X
b3JrZXJUaHJlYWQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgY2xhc3MgS1VSTDsKKyAgICBjbGFzcyBXb3JrZXJDb250ZXh0Owog
ICAgIGNsYXNzIFdvcmtlck1lc3NhZ2luZ1Byb3h5OwogICAgIGNsYXNzIFdvcmtlclRhc2s7CiAK
QEAgLTQ1LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB+V29ya2VyVGhy
ZWFkKCk7CiAKICAgICAgICAgYm9vbCBzdGFydCgpOworICAgICAgICB2b2lkIHN0b3AoKTsKIAog
ICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElEKCkgY29uc3QgeyByZXR1cm4gbV90aHJl
YWRJRDsgfQogICAgICAgICBNZXNzYWdlUXVldWU8UmVmUHRyPFdvcmtlclRhc2s+ID4mIG1lc3Nh
Z2VRdWV1ZSgpIHsgcmV0dXJuIG1fbWVzc2FnZVF1ZXVlOyB9CkBAIC02Myw2ICs2NSw4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgU3RyaW5nIG1fc291cmNlQ29kZTsKICAgICAgICAg
V29ya2VyTWVzc2FnaW5nUHJveHkqIG1fbWVzc2FnaW5nUHJveHk7CiAKKyAgICAgICAgUmVmUHRy
PFdvcmtlckNvbnRleHQ+IG1fd29ya2VyQ29udGV4dDsKKwogICAgICAgICBNZXNzYWdlUXVldWU8
UmVmUHRyPFdvcmtlclRhc2s+ID4gbV9tZXNzYWdlUXVldWU7CiAgICAgfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25347</attachid>
            <date>2008-11-21 04:30:06 -0800</date>
            <delta_ts>2008-11-21 13:26:38 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>InterruptJS.txt</filename>
            <type>text/plain</type>
            <size>7907</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODY1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMDgtMTEtMjEgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM5NworICAgICAgICBX
b3JrZXIgdGhyZWFkcyBhcmUgbm90IGRlc3Ryb3llZCBpZiBydW5uaW5nIGEgSlMgbG9vcAorCisg
ICAgICAgIFNpbmNlIHRoZSBldmVudCBsb29wIGlzIG5vdCBldmVyIGVudGVyZWQgYWdhaW4gaW4g
dGhpcyBjYXNlLCB0aGUgZml4IG5lY2Vzc2FyaWx5IGludm9sdmVzCisgICAgICAgIHNvbWUgc2hh
cmVkIGRhdGEgaGFja2VyeS4KKworICAgICAgICAqIGRvbS9Xb3JrZXJUaHJlYWQuY3BwOiAoV2Vi
Q29yZTo6V29ya2VyVGhyZWFkOjpzdG9wKToKKyAgICAgICAgKiBkb20vV29ya2VyVGhyZWFkLmg6
CisgICAgICAgIEFkZGVkIGEgc3RvcCgpIG1ldGhvZCwgd2hpY2ggYXNrcyB0aGUgdGhyZWFkIHRv
IGV4aXQgYXMgc29vbiBhcyBwb3NzaWJsZS4gSW4gdGhlIGZ1dHVyZSwgaXQKKyAgICAgICAgbWF5
IG5lZWQgdG8gYWJvcnQgb3RoZXIga2luZHMgb2Ygc3luY2hyb25vdXMgcHJvY2Vzc2luZywgc3Vj
aCBhcyBpbXBvcnRTY3JpcHRzIG9yIFhIUi4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtl
clNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29u
dHJvbGxlcjo6V29ya2VyU2NyaXB0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJT
Y3JpcHRDb250cm9sbGVyOjpmb3JiaWRFeGVjdXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgQWRkZWQgYSBmb3JiaWRFeGVjdXRp
b24oKSBtZXRob2QsIHdoaWNoIGludGVycnVwdHMgY3VycmVudGx5IHJ1bm5pbmcgSlMsIGFuZCBt
YWtlcyBhbnkKKyAgICAgICAgZnV0dXJlIGNhbGxzIHRvIGV2YWx1YXRlKCkgcmV0dXJuIGltbWVk
aWF0ZWx5LgorCisgICAgICAgICogZG9tL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDogKFdlYkNv
cmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojp3b3JrZXJPYmplY3REZXN0cm95ZWQpOgorICAgICAg
ICBDYWxsIFdvcmtlclRocmVhZDo6c3RvcCgpLgorCiAyMDA4LTExLTIwICBTYW0gV2VpbmlnICA8
c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCklu
ZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAJ
KHJldmlzaW9uIDM4NjU0KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250
cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIldv
cmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXJNZXNzYWdpbmdQcm94eS5oIgogI2luY2x1
ZGUgIldvcmtlclRocmVhZC5oIgorI2luY2x1ZGUgPGludGVycHJldGVyL0ludGVycHJldGVyLmg+
CiAjaW5jbHVkZSA8cGFyc2VyL1NvdXJjZUNvZGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0NvbXBs
ZXRpb24uaD4KICNpbmNsdWRlIDxydW50aW1lL0NvbXBsZXRpb24uaD4KQEAgLTQ3LDYgKzQ4LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6V29ya2VyU2Ny
aXB0Q29udHJvbGxlcihXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0KQogICAgIDogbV9nbG9i
YWxEYXRhKEpTR2xvYmFsRGF0YTo6Y3JlYXRlKCkpCiAgICAgLCBtX3dvcmtlckNvbnRleHQod29y
a2VyQ29udGV4dCkKKyAgICAsIG1fZXhlY3V0aW9uRm9yYmlkZGVkKGZhbHNlKQogewogfQogCkBA
IC03MCw2ICs3MiwxMiBAQCB2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHQo
CiAKIEpTVmFsdWUqIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IEpTQzo6
U291cmNlQ29kZSYgc291cmNlQ29kZSkKIHsKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2sobV9zaGFyZWREYXRhTXV0ZXgpOworICAgICAgICBpZiAobV9leGVjdXRpb25Gb3JiaWRkZWQp
CisgICAgICAgICAgICByZXR1cm4gbm9WYWx1ZSgpOworICAgIH0KKwogICAgIGluaXRTY3JpcHRJ
Zk5lZWRlZCgpOwogICAgIEpTTG9jayBsb2NrKGZhbHNlKTsKIApAQCAtODgsNiArOTYsMTcgQEAg
SlNWYWx1ZSogV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdAogICAgIHJldHVybiBub1Zh
bHVlKCk7CiB9CiAKK3ZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6Zm9yYmlkRXhlY3V0aW9u
KCkKK3sKKyAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIGFub3RoZXIgdGhyZWFk
LgorICAgIC8vIE11dGV4IHByb3RlY3Rpb24gZm9yIG1fZXhlY3V0aW9uRm9yYmlkZGVkIGlzIG5l
ZWRlZCB0byBndWFyYW50ZWUgdGhhdCB0aGUgdmFsdWUgaXMgc3luY2hyb25pemVkIGJldHdlZW4g
cHJvY2Vzc29ycywgYmVjYXVzZQorICAgIC8vIGlmIGl0IHdlcmUgbm90LCB0aGUgd29ya2VyIGNv
dWxkIHJlLWVudGVyIEpTQzo6ZXZhbHVhdGUoKSwgYnV0IHdpdGggdGltZW91dCBhbHJlYWR5IHJl
c2V0LgorICAgIC8vIEl0IGlzIG5vdCBjcml0aWNhbCBmb3IgSW50ZXJwcmV0ZXI6Om1fdGltZW91
dFRpbWUgdG8gYmUgc3luY2hyb25pemVkLCB3ZSBqdXN0IHJlbHkgb24gaXQgcmVhY2hpbmcgdGhl
IHdvcmtlciB0aHJlYWQncyBwcm9jZXNzb3Igc29vbmVyIG9yIGxhdGVyLgorICAgIE11dGV4TG9j
a2VyIGxvY2sobV9zaGFyZWREYXRhTXV0ZXgpOworICAgIG1fZXhlY3V0aW9uRm9yYmlkZGVkID0g
dHJ1ZTsKKyAgICBtX2dsb2JhbERhdGEtPmludGVycHJldGVyLT5zZXRUaW1lb3V0VGltZSgxKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdPUktFUlMp
CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAko
cmV2aXNpb24gMzg2NTQpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRy
b2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSA8cnVu
dGltZS9Qcm90ZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8
d3RmL1RocmVhZGluZy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBKU0dsb2JhbERh
dGE7CkBAIC01Nyw2ICs1OCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBKU0M6
OkpTVmFsdWUqIGV2YWx1YXRlKGNvbnN0IEpTQzo6U291cmNlQ29kZSYpOwogCisgICAgICAgIHZv
aWQgZm9yYmlkRXhlY3V0aW9uKCk7CisKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGluaXRT
Y3JpcHRJZk5lZWRlZCgpCiAgICAgICAgIHsKQEAgLTY4LDYgKzcxLDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBSZWZQdHI8SlNDOjpKU0dsb2JhbERhdGE+IG1fZ2xvYmFsRGF0YTsK
ICAgICAgICAgV29ya2VyQ29udGV4dCogbV93b3JrZXJDb250ZXh0OwogICAgICAgICBKU0M6OlBy
b3RlY3RlZFB0cjxKU1dvcmtlckNvbnRleHQ+IG1fd29ya2VyQ29udGV4dFdyYXBwZXI7CisKKyAg
ICAgICAgTXV0ZXggbV9zaGFyZWREYXRhTXV0ZXg7CisgICAgICAgIGJvb2wgbV9leGVjdXRpb25G
b3JiaWRkZWQ7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29y
ZS9kb20vV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9t
L1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAkocmV2aXNpb24gMzg2NTQpCisrKyBXZWJDb3JlL2Rv
bS9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzOCw3ICsyMzgs
NyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp3b3JrZXJPYmplY3RECiB7CiAgICAgbV93
b3JrZXJPYmplY3QgPSAwOwogICAgIGlmIChtX3dvcmtlclRocmVhZCkKLSAgICAgICAgbV93b3Jr
ZXJUaHJlYWQtPm1lc3NhZ2VRdWV1ZSgpLmtpbGwoKTsgLy8gRklYTUU6ICgxKSBydWRlbHkga2ls
bGluZyBhIHRocmVhZCB3b24ndCB3b3JrIHdoZW4gd2UgYWxsb3cgbmVzdGVkIHdvcmtlcnM7ICgy
KSBuZWVkIHRvIGludGVycnVwdCBjdXJyZW50bHkgcnVubmluZyBKUy4KKyAgICAgICAgbV93b3Jr
ZXJUaHJlYWQtPnN0b3AoKTsKICAgICBlbHNlCiAgICAgICAgIHdvcmtlckNvbnRleHREZXN0cm95
ZWRJbnRlcm5hbCgpOyAvLyBJdCBuZXZlciBleGlzdGVkLCBqdXN0IGRvIG91ciBjbGVhbnVwLgog
fQpJbmRleDogV2ViQ29yZS9kb20vV29ya2VyVGhyZWFkLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2RvbS9Xb3JrZXJUaHJlYWQuY3BwCShyZXZpc2lvbiAzODY1NCkKKysrIFdlYkNvcmUvZG9t
L1dvcmtlclRocmVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1LDMwICs3NSw0MCBAQCB2b2lk
KiBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZFN0YXJ0KHZvCiAKIHZvaWQqIFdvcmtlclRocmVh
ZDo6d29ya2VyVGhyZWFkKCkKIHsKLSAgICBSZWZQdHI8V29ya2VyQ29udGV4dD4gd29ya2VyQ29u
dGV4dCA9IFdvcmtlckNvbnRleHQ6OmNyZWF0ZShLVVJMKG1fc2NyaXB0VVJMKSwgdGhpcyk7Ci0g
ICAgV29ya2VyU2NyaXB0Q29udHJvbGxlciogc2NyaXB0ID0gd29ya2VyQ29udGV4dC0+c2NyaXB0
KCk7CisgICAgbV93b3JrZXJDb250ZXh0ID0gV29ya2VyQ29udGV4dDo6Y3JlYXRlKEtVUkwobV9z
Y3JpcHRVUkwpLCB0aGlzKTsKKyAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQgPSBt
X3dvcmtlckNvbnRleHQtPnNjcmlwdCgpOwogCiAgICAgc2NyaXB0LT5ldmFsdWF0ZShtYWtlU291
cmNlKG1fc291cmNlQ29kZSwgbV9zY3JpcHRVUkwpKTsKLSAgICBtX21lc3NhZ2luZ1Byb3h5LT5j
b25maXJtV29ya2VyVGhyZWFkTWVzc2FnZSh3b3JrZXJDb250ZXh0LT5oYXNQZW5kaW5nQWN0aXZp
dHkoKSk7IC8vIFRoaXMgd2Fzbid0IHJlYWxseSBhIG1lc3NhZ2UsIGJ1dCBpdCBjb3VudHMgYXMg
b25lIGZvciBHQy4KKyAgICBtX21lc3NhZ2luZ1Byb3h5LT5jb25maXJtV29ya2VyVGhyZWFkTWVz
c2FnZShtX3dvcmtlckNvbnRleHQtPmhhc1BlbmRpbmdBY3Rpdml0eSgpKTsgLy8gVGhpcyB3YXNu
J3QgcmVhbGx5IGEgbWVzc2FnZSwgYnV0IGl0IGNvdW50cyBhcyBvbmUgZm9yIEdDLgogCiAgICAg
d2hpbGUgKHRydWUpIHsKICAgICAgICAgUmVmUHRyPFdvcmtlclRhc2s+IHRhc2s7CiAgICAgICAg
IGlmICghbV9tZXNzYWdlUXVldWUud2FpdEZvck1lc3NhZ2UodGFzaykpCiAgICAgICAgICAgICBi
cmVhazsKIAotICAgICAgICB0YXNrLT5wZXJmb3JtVGFzayh3b3JrZXJDb250ZXh0LmdldCgpKTsK
KyAgICAgICAgdGFzay0+cGVyZm9ybVRhc2sobV93b3JrZXJDb250ZXh0LmdldCgpKTsKICAgICB9
CiAKLSAgICB3b3JrZXJDb250ZXh0LT5jbGVhclNjcmlwdCgpOwotICAgIEFTU0VSVCh3b3JrZXJD
b250ZXh0LT5oYXNPbmVSZWYoKSk7CisgICAgbV93b3JrZXJDb250ZXh0LT5jbGVhclNjcmlwdCgp
OworICAgIEFTU0VSVChtX3dvcmtlckNvbnRleHQtPmhhc09uZVJlZigpKTsKICAgICAvLyBEZXN0
cm95aW5nIHRoZSBjb250ZXh0IHdpbGwgbm90aWZ5IG1lc3NhZ2luZyBwcm94eS4KICAgICAvLyBX
ZSBjYW5ub3QgbGV0IGFueSBvYmplY3RzIHN1cnZpdmUgcGFzdCB0aHJlYWQgZXhpdCwgYmVjYXVz
ZSBubyBvdGhlciB0aHJlYWQgd2lsbCBydW4gR0Mgb3Igb3RoZXJ3aXNlIGRlc3Ryb3kgdGhlbS4K
LSAgICB3b3JrZXJDb250ZXh0ID0gMDsKLSAgICBtX3RocmVhZElEID0gMDsKKyAgICBtX3dvcmtl
ckNvbnRleHQgPSAwOworICAgIAorICAgIC8vIFRoZSB0aHJlYWQgb2JqZWN0IG1heSBiZSBhbHJl
YWR5IGRlc3Ryb3llZCBmcm9tIG5vdGlmaWNhdGlvbiBub3csIGRvbid0IHRyeSB0byBhY2Nlc3Mg
InRoaXMiLgogCiAgICAgcmV0dXJuIDA7CiB9CiAKK3ZvaWQgV29ya2VyVGhyZWFkOjpzdG9wKCkK
K3sKKyAgICAvLyBFbnN1cmUgdGhhdCB0YXNrcyBhcmUgYmVpbmcgaGFuZGxlZCBieSB0aHJlYWQg
ZXZlbnQgbG9vcC4gSWYgc2NyaXB0IGV4ZWN1dGlvbiB3ZXJlbid0IGZvcmJpZGRlbiwgYSB3aGls
ZSgxKSBsb29wIGluIEpTIGNvdWxkIGtlZXAgdGhlIHRocmVhZCBhbGl2ZSBmb3JldmVyLgorICAg
IG1fd29ya2VyQ29udGV4dC0+c2NyaXB0KCktPmZvcmJpZEV4ZWN1dGlvbigpOworCisgICAgLy8g
RklYTUU6IHJ1ZGVseSBraWxsaW5nIHRoZSB0aHJlYWQgd29uJ3Qgd29yayB3aGVuIHdlIGFsbG93
IG5lc3RlZCB3b3JrZXJzLCBiZWNhdXNlIHRoZXkgd2lsbCB0cnkgdG8gcG9zdCBub3RpZmljYXRp
b25zIG9mIHRoZWlyIGRlc3RydWN0aW9uLgorICAgIG1fbWVzc2FnZVF1ZXVlLmtpbGwoKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdPUktFUlMpCklu
ZGV4OiBXZWJDb3JlL2RvbS9Xb3JrZXJUaHJlYWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9Xb3JrZXJUaHJlYWQuaAkocmV2aXNpb24gMzg2NTQpCisrKyBXZWJDb3JlL2RvbS9Xb3JrZXJU
aHJlYWQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgY2xhc3MgS1VSTDsKKyAgICBjbGFzcyBXb3JrZXJDb250ZXh0OwogICAgIGNs
YXNzIFdvcmtlck1lc3NhZ2luZ1Byb3h5OwogICAgIGNsYXNzIFdvcmtlclRhc2s7CiAKQEAgLTQ1
LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB+V29ya2VyVGhyZWFkKCk7
CiAKICAgICAgICAgYm9vbCBzdGFydCgpOworICAgICAgICB2b2lkIHN0b3AoKTsKIAogICAgICAg
ICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElEKCkgY29uc3QgeyByZXR1cm4gbV90aHJlYWRJRDsg
fQogICAgICAgICBNZXNzYWdlUXVldWU8UmVmUHRyPFdvcmtlclRhc2s+ID4mIG1lc3NhZ2VRdWV1
ZSgpIHsgcmV0dXJuIG1fbWVzc2FnZVF1ZXVlOyB9CkBAIC02Myw2ICs2NSw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgU3RyaW5nIG1fc291cmNlQ29kZTsKICAgICAgICAgV29ya2Vy
TWVzc2FnaW5nUHJveHkqIG1fbWVzc2FnaW5nUHJveHk7CiAKKyAgICAgICAgUmVmUHRyPFdvcmtl
ckNvbnRleHQ+IG1fd29ya2VyQ29udGV4dDsKKwogICAgICAgICBNZXNzYWdlUXVldWU8UmVmUHRy
PFdvcmtlclRhc2s+ID4gbV9tZXNzYWdlUXVldWU7CiAgICAgfTsKIAo=
</data>
<flag name="review"
          id="11739"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>