<?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>116748</bug_id>
          
          <creation_ts>2013-05-24 16:49:51 -0700</creation_ts>
          <short_desc>fourthTier: cti_optimize shouldn&apos;t allow GCs to get in the way of it seeing the state of its CodeBlock</short_desc>
          <delta_ts>2013-05-26 11:44:42 -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>JavaScriptCore</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>112836</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>893509</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-05-24 16:49:51 -0700</bug_when>
    <thetext>Instead, cti_optimize should discover the state of its code block in a more racy way, using other available data.

This should fix crashes I&apos;m seeing in Octane.  Those crashes trip on an important RELEASE_ASSERT in the current code, and removing that assertion would not be safe.  That assertion is saying that if we think that we&apos;re compiling the code then we shouldn&apos;t have an optimized replacement.  Except that we might have *thought* that we were compiling code prior to a GC and then the GC synchronously completed the compilation.

That&apos;s why we need to have a way of sort of re-asking whether we ought to be:

- waiting for compilation to finish
- initiating a new compile
- OSRing into an old compile
- OSRing into a newly finished compile
- etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893510</commentid>
    <comment_count>1</comment_count>
      <attachid>202866</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-05-24 16:50:44 -0700</bug_when>
    <thetext>Created attachment 202866
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893544</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-05-24 19:39:00 -0700</bug_when>
    <thetext>I think I have a better way of doing this.  We just need to defer GC some more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893619</commentid>
    <comment_count>3</comment_count>
      <attachid>202889</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-05-25 09:28:17 -0700</bug_when>
    <thetext>Created attachment 202889
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893800</commentid>
    <comment_count>4</comment_count>
      <attachid>202889</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-05-26 11:42:13 -0700</bug_when>
    <thetext>Comment on attachment 202889
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893801</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-05-26 11:44:42 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/150721</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202866</attachid>
            <date>2013-05-24 16:50:44 -0700</date>
            <delta_ts>2013-05-25 09:28:17 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>14724</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUwNjY3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDEzLTA1LTI0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Zm91cnRoVGllcjogY3RpX29wdGltaXplIHNob3VsZCBub3QgcmVseSBvbiBXb3JrbGlzdDo6Y29t
cGxldGVBbGxSZWFkeVBsYW5zRm9yVk0gdGVsbGluZyBpdCB0aGUgZXhhY3QgY29tcGlsYXRpb24g
c3RhdGUgb2YgdGhlIHJlcXVlc3RlZCBjb2RlIGJsb2NrIGluIGEgdG90YWxseSB0aHJlYWQtc2Fm
ZSB3YXksIGJlY2F1c2UgdGhlcmUncyBubyBnb29kIHdheSBvZiBndWFyYW50ZWVpbmcgdGhhdCB0
aGUgR0Mgd29uJ3QgZ2V0IGluIHRoZSB3YXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExNjc0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorICAgICAgICAKKyAgICAgICAgV29yayBpbiBwcm9ncmVzcy4KKworICAgICAgICAq
IGRmZy9ERkdXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6Oldvcmts
aXN0KToKKyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6Y29tcGxldGVBbGxSZWFkeVBsYW5z
Rm9yVk0pOgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5oOgorICAgICAgICAqIGppdC9KSVRT
dHVicy5jcHA6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNUSU9OKToKKwogMjAxMy0w
NS0yNCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIGZvdXJ0aFRp
ZXI6IEZUTCBib29saWZ5IHNob3VsZCBzdXBwb3J0IE9iamVjdE9yT3RoZXJVc2UKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCShyZXZpc2lvbiAxNTA2NjAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzYsNiArMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAK
IFdvcmtsaXN0OjpXb3JrbGlzdCgpCiAgICAgOiBtX251bWJlck9mQWN0aXZlVGhyZWFkcygwKQor
ICAgICwgbV9hbHJlYWR5Q29tcGxldGluZyhmYWxzZSkKIHsKIH0KIApAQCAtMTQ4LDYgKzE0OSwx
NSBAQCB2b2lkIFdvcmtsaXN0OjpyZW1vdmVBbGxSZWFkeVBsYW5zRm9yVk0oCiAKIFdvcmtsaXN0
OjpTdGF0ZSBXb3JrbGlzdDo6Y29tcGxldGVBbGxSZWFkeVBsYW5zRm9yVk0oVk0mIHZtLCBDb2Rl
QmxvY2sqIHJlcXVlc3RlZFByb2ZpbGVkQmxvY2spCiB7CisgICAgaWYgKE9wdGlvbnM6OnZlcmJv
c2VDb21waWxhdGlvblF1ZXVlKCkpIHsKKyAgICAgICAgZGF0YUxvZygKKyAgICAgICAgICAgICp0
aGlzLCAiOiBDb21wbGV0aW5nIGFsbCByZWFkeSBwbGFucyBmb3IgVk0gZHVlIHRvIHJlcXVlc3Qg
ZnJvbSAiLAorICAgICAgICAgICAgcG9pbnRlckR1bXAocmVxdWVzdGVkUHJvZmlsZWRCbG9jayks
ICJcbiIpOworICAgIH0KKyAgICAKKyAgICBSRUxFQVNFX0FTU0VSVCghbV9hbHJlYWR5Q29tcGxl
dGluZyk7CisgICAgbV9hbHJlYWR5Q29tcGxldGluZyA9IHRydWU7CisgICAgCiAgICAgRGVmZXJH
QyBkZWZlckdDKHZtLmhlYXApOwogICAgIFZlY3RvcjxSZWZQdHI8UGxhbj4sIDg+IG15UmVhZHlQ
bGFuczsKICAgICAKQEAgLTE3OSw2ICsxODksOCBAQCBXb3JrbGlzdDo6U3RhdGUgV29ya2xpc3Q6
OmNvbXBsZXRlQWxsUmVhCiAgICAgICAgICAgICByZXN1bHRpbmdTdGF0ZSA9IENvbXBpbGluZzsK
ICAgICB9CiAgICAgCisgICAgbV9hbHJlYWR5Q29tcGxldGluZyA9IGZhbHNlOworICAgIAogICAg
IHJldHVybiByZXN1bHRpbmdTdGF0ZTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdXb3JrbGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHV29ya2xpc3QuaAkocmV2aXNpb24gMTUwNjYwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdXb3JrbGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGNvbXBsZXRlQWxsUGxhbnNGb3JWTShWTSYpOwogICAgIAogICAgIHZv
aWQgd2FpdFVudGlsQWxsUGxhbnNGb3JWTUFyZVJlYWR5KFZNJik7Ci0gICAgU3RhdGUgY29tcGxl
dGVBbGxSZWFkeVBsYW5zRm9yVk0oVk0mLCBDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2sgPSAwKTsK
KyAgICBTdGF0ZSBjb21wbGV0ZUFsbFJlYWR5UGxhbnNGb3JWTShWTSYpOwogICAgIHZvaWQgcmVt
b3ZlQWxsUmVhZHlQbGFuc0ZvclZNKFZNJik7CiAgICAgCiAgICAgU3RhdGUgY29tcGlsYXRpb25T
dGF0ZShDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2spOwpAQCAtOTMsNiArOTMsNyBAQCBwcml2YXRl
OgogICAgIFRocmVhZENvbmRpdGlvbiBtX3BsYW5Db21waWxlZDsKICAgICBWZWN0b3I8VGhyZWFk
SWRlbnRpZmllcj4gbV90aHJlYWRzOwogICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZBY3RpdmVUaHJl
YWRzOworICAgIGJvb2wgbV9hbHJlYWR5Q29tcGxldGluZzsKIH07CiAKIC8vIEZvciBub3cgd2Ug
dXNlIGEgc2luZ2xlIGdsb2JhbCB3b3JrbGlzdC4gSXQncyBub3QgY2xlYXIgdGhhdCB0aGlzCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2aXNpb24gMTUwNjYw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTk0Nyw1OSArOTQ3LDExIEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wdGlt
aXplKQogICAgICAgICAhc3RhY2tGcmFtZS52bS0+d29ya2xpc3QKICAgICAgICAgfHwgIShzdGFj
a0ZyYW1lLnZtLT53b3JrbGlzdC0+Y29tcGlsYXRpb25TdGF0ZShjb2RlQmxvY2spICE9IERGRzo6
V29ya2xpc3Q6Ok5vdEtub3duCiAgICAgICAgICAgICAgJiYgY29kZUJsb2NrLT5oYXNPcHRpbWl6
ZWRSZXBsYWNlbWVudCgpKSk7Ci0gICAgCi0gICAgREZHOjpXb3JrbGlzdDo6U3RhdGUgd29ya2xp
c3RTdGF0ZTsKLSAgICBpZiAoc3RhY2tGcmFtZS52bS0+d29ya2xpc3QpIHsKLSAgICAgICAgLy8g
VGhlIGNhbGwgdG8gREZHOjpXb3JrbGlzdDo6Y29tcGxldGVBbGxSZWFkeVBsYW5zRm9yVk0oKSB3
aWxsIGNvbXBsZXRlIGFsbCByZWFkeQotICAgICAgICAvLyAoaS5lLiBjb21waWxlZCkgY29kZSBi
bG9ja3MuIEJ1dCBpZiBpdCBjb21wbGV0ZXMgb3Vycywgd2UgYWxzbyBuZWVkIHRvIGtub3cKLSAg
ICAgICAgLy8gd2hhdCB0aGUgcmVzdWx0IHdhcyBzbyB0aGF0IHdlIGRvbid0IHBsb3cgYWhlYWQg
YW5kIGF0dGVtcHQgT1NSIG9yIGltbWVkaWF0ZQotICAgICAgICAvLyByZW9wdGltaXphdGlvbi4g
VGhpcyB3aWxsIGhhdmUgYWxyZWFkeSBhbHNvIHNldCB0aGUgYXBwcm9wcmlhdGUgSklUIGV4ZWN1
dGlvbgotICAgICAgICAvLyBjb3VudCB0aHJlc2hvbGQgZGVwZW5kaW5nIG9uIHdoYXQgaGFwcGVu
ZWQsIHNvIGlmIHRoZSBjb21waWxhdGlvbiB3YXMgYW55dGhpbmcKLSAgICAgICAgLy8gYnV0IHN1
Y2Nlc3NmdWwgd2UganVzdCB3YW50IHRvIHJldHVybiBlYXJseS4gU2VlIHRoZSBjYXNlIGZvciB3
b3JrbGlzdFN0YXRlID09Ci0gICAgICAgIC8vIERGRzo6V29ya2xpc3Q6OkNvbXBpbGVkLCBiZWxv
dy4KLSAgICAgICAgCi0gICAgICAgIC8vIE5vdGUgdGhhdCB3ZSBjb3VsZCBoYXZlIGFsdGVybmF0
aXZlbHkganVzdCBjYWxsZWQgV29ya2xpc3Q6OmNvbXBpbGF0aW9uU3RhdGUoKQotICAgICAgICAv
LyBoZXJlLCBhbmQgaWYgaXQgcmV0dXJuZWQgQ29tcGlsZWQsIHdlIGNvdWxkIGhhdmUgdGhlbiBj
YWxsZWQKLSAgICAgICAgLy8gY29tcGxldGVBbmRTY2hlZHVsZU9TUigpIGJlbG93LiBCdXQgdGhh
dCB3b3VsZCBoYXZlIG1lYW50IHRoYXQgaXQgY291bGQgdGFrZQotICAgICAgICAvLyBsb25nZXIg
Zm9yIGNvZGUgYmxvY2tzIHRvIGJlIGNvbXBsZXRlZDogdGhleSB3b3VsZCBvbmx5IGNvbXBsZXRl
IHdoZW4gKnRoZWlyKgotICAgICAgICAvLyBleGVjdXRpb24gY291bnQgdHJpZ2dlciBmaXJlZDsg
YnV0IHRoYXQgY291bGQgdGFrZSBhIHdoaWxlIHNpbmNlIHRoZSBmaXJpbmcgaXMKLSAgICAgICAg
Ly8gcmFjeS4gSXQgY291bGQgYWxzbyBtZWFuIHRoYXQgY29kZSBibG9ja3MgdGhhdCBuZXZlciBy
dW4gYWdhaW4gYWZ0ZXIgYmVpbmcKLSAgICAgICAgLy8gY29tcGlsZWQgd291bGQgc2l0IG9uIHRo
ZSB3b3JrbGlzdCB1bnRpbCBuZXh0IEdDLiBUaGF0J3MgZmluZSwgYnV0IGl0J3MKLSAgICAgICAg
Ly8gcHJvYmFibHkgYSB3YXN0ZSBvZiBtZW1vcnkuIE91ciBnb2FsIGhlcmUgaXMgdG8gY29tcGxl
dGUgY29kZSBibG9ja3MgYXMgc29vbiBhcwotICAgICAgICAvLyBwb3NzaWJsZSBpbiBvcmRlciB0
byBtaW5pbWl6ZSB0aGUgY2hhbmNlcyBvZiB1cyBleGVjdXRpbmcgYmFzZWxpbmUgY29kZSBhZnRl
cgotICAgICAgICAvLyBvcHRpbWl6ZWQgY29kZSBpcyBhbHJlYWR5IGF2YWlsYWJsZS4KLSAgICAg
ICAgCi0gICAgICAgIHdvcmtsaXN0U3RhdGUgPQotICAgICAgICAgICAgc3RhY2tGcmFtZS52bS0+
d29ya2xpc3QtPmNvbXBsZXRlQWxsUmVhZHlQbGFuc0ZvclZNKCpzdGFja0ZyYW1lLnZtLCBjb2Rl
QmxvY2spOwotICAgIH0gZWxzZQotICAgICAgICB3b3JrbGlzdFN0YXRlID0gREZHOjpXb3JrbGlz
dDo6Tm90S25vd247Ci0gICAgCi0gICAgaWYgKHdvcmtsaXN0U3RhdGUgPT0gREZHOjpXb3JrbGlz
dDo6Q29tcGlsaW5nKSB7Ci0gICAgICAgIC8vIFdlIGNhbm5vdCBiZSBpbiB0aGUgcHJvY2VzcyBv
ZiBhc3luY2hyb25vdXMgY29tcGlsYXRpb24gYW5kIGFsc28gaGF2ZSBhbiBvcHRpbWl6ZWQKLSAg
ICAgICAgLy8gcmVwbGFjZW1lbnQuCi0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCFjb2RlQmxvY2st
Pmhhc09wdGltaXplZFJlcGxhY2VtZW50KCkpOwotICAgICAgICBjb2RlQmxvY2stPnNldE9wdGlt
aXphdGlvblRocmVzaG9sZEJhc2VkT25Db21waWxhdGlvblJlc3VsdChDb21waWxhdGlvbkRlZmVy
cmVkKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICBpZiAod29ya2xpc3RTdGF0
ZSA9PSBERkc6OldvcmtsaXN0OjpDb21waWxlZCkgewotICAgICAgICAvLyBJZiB3ZSBkb24ndCBo
YXZlIGFuIG9wdGltaXplZCByZXBsYWNlbWVudCBidXQgd2UgZGlkIGp1c3QgZ2V0IGNvbXBpbGVk
LCB0aGVuCi0gICAgICAgIC8vIGVpdGhlciBvZiB0aGUgZm9sbG93aW5nIGhhcHBlbmVkOgotICAg
ICAgICAvLyAtIFRoZSBjb21waWxhdGlvbiBmYWlsZWQgb3Igd2FzIGludmFsaWRhdGVkLCBpbiB3
aGljaCBjYXNlIHRoZSBleGVjdXRpb24gY291bnQKLSAgICAgICAgLy8gICB0aHJlc2hvbGRzIGhh
dmUgYWxyZWFkeSBiZWVuIHNldCBhcHByb3ByaWF0ZWx5IGJ5Ci0gICAgICAgIC8vICAgQ29kZUJs
b2NrOjpzZXRPcHRpbWl6YXRpb25UaHJlc2hvbGRCYXNlZE9uQ29tcGlsYXRpb25SZXN1bHQoKSBh
bmQgd2UgaGF2ZQotICAgICAgICAvLyAgIG5vdGhpbmcgbGVmdCB0byBkby4KLSAgICAgICAgLy8g
LSBHQyByYW4gYWZ0ZXIgREZHOjpXb3JrbGlzdDo6Y29tcGxldGVBbGxSZWFkeVBsYW5zRm9yVk0o
KSBhbmQgamV0dGlzb25lZCBvdXIKLSAgICAgICAgLy8gICBjb2RlIGJsb2NrLiBPYnZpb3VzbHkg
dGhhdCdzIHVuZm9ydHVuYXRlIGFuZCB3ZSdkIHJhdGhlciBub3QgaGF2ZSB0aGF0Ci0gICAgICAg
IC8vICAgaGFwcGVuLCBidXQgaXQgY2FuIGhhcHBlbiwgYW5kIGlmIGl0IGRpZCB0aGVuIHRoZSBq
ZXR0aXNvbmluZyBsb2dpYyB3aWxsCi0gICAgICAgIC8vICAgaGF2ZSBzZXQgb3VyIHRocmVzaG9s
ZCBhcHByb3ByaWF0ZWx5IGFuZCB3ZSBoYXZlIG5vdGhpbmcgbGVmdCB0byBkby4KLSAgICAgICAg
aWYgKCFjb2RlQmxvY2stPmhhc09wdGltaXplZFJlcGxhY2VtZW50KCkpIHsKLSAgICAgICAgICAg
IGNvZGVCbG9jay0+dXBkYXRlQWxsUHJlZGljdGlvbnMoKTsKLSAgICAgICAgICAgIGlmIChPcHRp
b25zOjp2ZXJib3NlT1NSKCkpCi0gICAgICAgICAgICAgICAgZGF0YUxvZygiQ29kZSBibG9jayAi
LCAqY29kZUJsb2NrLCAiIHdhcyBjb21waWxlZCBidXQgaXQgZG9lc24ndCBoYXZlIGFuIG9wdGlt
aXplZCByZXBsYWNlbWVudC5cbiIpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0g
ICAgfSBlbHNlIGlmIChjb2RlQmxvY2stPmhhc09wdGltaXplZFJlcGxhY2VtZW50KCkpIHsKKwor
ICAgIC8vIEZpcnN0IGNoZWNrIGlmIHdlJ3JlIHRyeWluZyB0byBPU1IgaW50byBzb21ldGhpbmcg
dGhhdCBoYXMgYWxyZWFkeSBwcmV2aW91c2x5IGJlZW4gY29tcGlsZWQuCisgICAgLy8gVGhpcyBj
b3VsZCBtZWFuIHRoYXQgd2UgaGFkIGFscmVhZHkgZW50ZXJlZCBpbnRvIHRoYXQgb3B0aW1pemVk
IGNvZGUgYmxvY2ssIHRoZW4gZXhpdGVkIGZyb20KKyAgICAvLyBpdCwgYW5kIHdlJ3JlIG5vdCBy
ZWVudGVyaW5nLgorICAgIGlmIChjb2RlQmxvY2stPmhhc09wdGltaXplZFJlcGxhY2VtZW50KCkp
IHsKICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAgICAgICAgIGRhdGFM
b2coIkNvbnNpZGVyaW5nIE9TUiAiLCAqY29kZUJsb2NrLCAiIC0+ICIsICpjb2RlQmxvY2stPnJl
cGxhY2VtZW50KCksICIuXG4iKTsKICAgICAgICAgLy8gSWYgd2UgaGF2ZSBhbiBvcHRpbWl6ZWQg
cmVwbGFjZW1lbnQsIHRoZW4gaXQgbXVzdCBiZSB0aGUgY2FzZSB0aGF0IHdlIGVudGVyZWQKQEAg
LTEwMjQsMzEgKzk3NiwxMjAgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3B0aW1pemUp
CiAgICAgICAgICAgICBjb2RlQmxvY2stPnJlb3B0aW1pemUoKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICghY29kZUJsb2NrLT5zaG91
bGRPcHRpbWl6ZU5vdygpKSB7Ci0gICAgICAgICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZU9TUigp
KSB7Ci0gICAgICAgICAgICAgICAgZGF0YUxvZygKLSAgICAgICAgICAgICAgICAgICAgIkRlbGF5
aW5nIG9wdGltaXphdGlvbiBmb3IgIiwgKmNvZGVCbG9jaywKLSAgICAgICAgICAgICAgICAgICAg
IiBiZWNhdXNlIG9mIGluc3VmZmljaWVudCBwcm9maWxpbmcuXG4iKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKE9w
dGlvbnM6OnZlcmJvc2VPU1IoKSkKLSAgICAgICAgICAgIGRhdGFMb2coIlRyaWdnZXJpbmcgb3B0
aW1pemVkIGNvbXBpbGF0aW9uIG9mICIsICpjb2RlQmxvY2ssICJcbiIpOworICAgICAgICAvLyBG
YWxsIHRocm91Z2ggdG8gT1NSIGVudHJ5LgorICAgIH0gZWxzZSB7CisgICAgICAgIGJvb2wgc2hv
dWxkSW5pdGlhdGVDb21waWxlOwogICAgICAgICAKLSAgICAgICAgSlNTY29wZSogc2NvcGUgPSBj
YWxsRnJhbWUtPnNjb3BlKCk7Ci0gICAgICAgIENvbXBpbGF0aW9uUmVzdWx0IHJlc3VsdDsKLSAg
ICAgICAgSlNPYmplY3QqIGVycm9yID0gY29kZUJsb2NrLT5jb21waWxlT3B0aW1pemVkKGNhbGxG
cmFtZSwgc2NvcGUsIHJlc3VsdCwgYnl0ZWNvZGVJbmRleCk7Ci0gICAgICAgIGlmIChPcHRpb25z
Ojp2ZXJib3NlT1NSKCkpIHsKLSAgICAgICAgICAgIGRhdGFMb2coIk9wdGltaXppbmcgY29tcGls
YXRpb24gb2YgIiwgKmNvZGVCbG9jaywgIiByZXN1bHQ6ICIsIHJlc3VsdCwgIlxuIik7Ci0gICAg
ICAgICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAgICAgICAgZGF0YUxvZygiV0FSTklORzogb3B0
aW1pemVkIGNvbXBpbGF0aW9uIGZhaWxlZCB3aXRoIGEgSlMgZXJyb3IuXG4iKTsKLSAgICAgICAg
fQorICAgICAgICBpZiAoREZHOjpXb3JrbGlzdCogd29ya2xpc3QgPSBzdGFja0ZyYW1lLnZtLT53
b3JrbGlzdCkgeworICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBrbm93IHdoYXQgb3VyIHdvcmts
aXN0IHN0YXRlIGlzIGF0IHRoZSB0aW1lIHRoYXQgd2UgZW50ZXIgY3RpX29wdGltaXplLgorICAg
ICAgICAgICAgLy8gSGVuY2UgeW91IHdpbGwgbm90ZSB0aGF0IHRoZSBwYXRoIGZyb20gdGhlIGVu
dHJ5IG9mIGN0aV9vcHRpbWl6ZSB0byBoZXJlIGhhcyBubworICAgICAgICAgICAgLy8gY2hhbmNl
IG9mIEdDLCBhbmQgbm8gY2hhbmNlIG9mIGRvaW5nIGFueXRoaW5nIGVsc2UgdGhhdCB3b3VsZCBp
bnN0YWxsIGNvZGUuIEhlcmUgYXJlCisgICAgICAgICAgICAvLyB0aGUgcG9zc2liaWxpdGllczoK
KyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyBVbmtub3duIHRvIHdvcmtsaXN0IG9uIGVu
dHJ5OgorICAgICAgICAgICAgLy8gICAgIEVpdGhlciB3ZSdyZSBlbnRlcmluZyBoZXJlIGJlY2F1
c2Ugb2YgdGhlIGluaXRpYWwgY29tcGlsYXRpb24gdHJpZ2dlciwgb3Igc29tZW9uZQorICAgICAg
ICAgICAgLy8gICAgIGVsc2UgYWxyZWFkeSB0cmllZCB0byBpbnN0YWxsIGEgY29uY3VycmVudGx5
IGNvbXBpbGVkIGNvZGUgYmxvY2sgZm9yIHVzLCBidXQgdGhlCisgICAgICAgICAgICAvLyAgICAg
Y29tcGlsYXRpb24gaGFkIGJlZW4gaW52YWxpZGF0ZWQsIGFuZCBjb25zZXF1ZW50bHkgdGhleSBy
ZXNldCB0aGUgdGhyZXNob2xkcyBhbmQKKyAgICAgICAgICAgIC8vICAgICB3ZSdyZSByZWVudGVy
aW5nIGhlcmUuIEhlbmNlLCBlaXRoZXIgd2F5LCBpZiB3ZSdyZSB1bmtub3duIHRvIHRoZSB3b3Jr
bGlzdCBvbgorICAgICAgICAgICAgLy8gICAgIGVudHJ5LCB0aGVuIHdlIHNob3VsZCBmb3JrIG9m
ZiBhIGRlZmVycmVkIGNvbXBpbGF0aW9uIHJpZ2h0IG5vdy4KKyAgICAgICAgICAgIC8vCisgICAg
ICAgICAgICAvLyBLbm93biB0byB3b3JrbGlzdCBvbiBlbnRyeToKKyAgICAgICAgICAgIC8vICAg
ICBXZSBtdXN0IGF0dGVtcHQgdG8gY29tcGxldGUgYWxsIHJlYWR5IHBsYW5zLiBBZnRlciBkb2lu
ZyB0aGlzIHdlIHdpbGwgZWl0aGVyCisgICAgICAgICAgICAvLyAgICAgc3RpbGwgYmUga25vd24g
dG8gdGhlIHdvcmtsaXN0LCBvciBub3Q7IGlmIHdlJ3JlIG5vdCB0aGVuIHdlIGtub3cgdGhhdCB0
aGUKKyAgICAgICAgICAgIC8vICAgICBjb21wbGV0aW9uIGFscmVhZHkgZWl0aGVyIGluc3RhbGxl
ZCBhbiBvcHRpbWl6ZWQgY29kZSBibG9jayBvciBpdCByZXNldCBvdXIKKyAgICAgICAgICAgIC8v
ICAgICB0aHJlc2hvbGRzLiBIZW5jZToKKyAgICAgICAgICAgIC8vCisgICAgICAgICAgICAvLyAg
ICAgSWYgd2UncmUgc3RpbGwgb24gdGhlIHdvcmtsaXN0OgorICAgICAgICAgICAgLy8gICAgICAg
ICBDb21waWxhdGlvbiBkaWRuJ3QgZmluaXNoLCB3ZSBjYW5ub3QgaGF2ZSBhbiBvcHRpbWl6ZWQg
cmVwbGFjZW1lbnQsIGFuZAorICAgICAgICAgICAgLy8gICAgICAgICBub2JvZHkgY2hhbmdlZCBv
dXIgY291bnQgdGhyZXNob2xkcy4gU2V0IHRoZSBjb3VudCB0aHJlc2hvbGRzIGZvciB0aGUgb25l
cworICAgICAgICAgICAgLy8gICAgICAgICB0aGF0IGFyZSBhcHByb3ByaWF0ZSBmb3IgQ29tcGls
YXRpb25EZWZlcnJlZCBhbmQgdGhlbiByZXR1cm4uCisgICAgICAgICAgICAvLworICAgICAgICAg
ICAgLy8gICAgIElmIHdlJ3JlIG5vdCBzdGlsbCBvbiB0aGUgd29ya2xpc3Q6CisgICAgICAgICAg
ICAvLyAgICAgICAgIEVpdGhlciB3ZSBoYXZlIGFuIG9wdGltaXplZCByZXBsYWNlbWVudCBvciBu
b3QuIElmIHdlIGRvLCB0aGVuIHRoaXMgd2lsbCBiZQorICAgICAgICAgICAgLy8gICAgICAgICBv
dXIgZmlyc3QgYXR0ZW1wdCB0byBPU1IgaW50byBpdC4gSWYgd2UgZG9uJ3QsIHRoZW4gYXNzdW1l
IHRoYXQgb3VyCisgICAgICAgICAgICAvLyAgICAgICAgIHRocmVzaG9sZHMgaGF2ZSBhbHJlYWR5
IGJlZW4gc2V0IGNvcnJlY3RseSwgYW5kIHJldHVybi4KKworICAgICAgICAgICAgaWYgKHdvcmts
aXN0LT5jb21waWxhdGlvblN0YXRlKGNvZGVCbG9jaykgPT0gREZHOjpXb3JrbGlzdDo6VW5rbm93
bikKKyAgICAgICAgICAgICAgICBzaG91bGRJbml0aWF0ZUNvbXBpbGUgPSB0cnVlOworICAgICAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgc2hvdWxkSW5pdGlhdGVDb21waWxlID0gZmFs
c2U7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAg
ICAgICAgICAgICAgICAvLyBTaW5jZSB3ZSBoYXZlIGEgd29ya2xpc3QsIGZpcnN0IGRvIGV2ZXJ5
b25lIGEgZmF2b3IgYW5kIHRyeSB0byBpbnN0YWxsIHNvbWUKKyAgICAgICAgICAgICAgICAgICAg
Ly8gb3B0aW1pemVkIGNvZGUuCisgICAgICAgICAgICAgICAgICAgIHdvcmtsaXN0LT5jb21wbGV0
ZUFsbFJlYWR5UGxhbnNGb3JWTSgqc3RhY2tGcmFtZS52bSk7CisgICAgICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgICAgICBERkc6OldvcmtsaXN0OjpTdGF0ZSBzdGF0ZSA9IHdvcmts
aXN0LT5jb21waWxhdGlvblN0YXRlKGNvZGVCbG9jayk7CisgICAgICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgICAgICAvLyBBcyBiZWZvcmUsIHdlIGNhbm5vdCBiZSBpbiB0aGUgcHJv
Y2VzcyBvZiBhc3luY2hyb25vdXMgY29tcGlsYXRpb24gYW5kIGFsc28gaGF2ZQorICAgICAgICAg
ICAgICAgICAgICAvLyBhbiBvcHRpbWl6ZWQgcmVwbGFjZW1lbnQuCisgICAgICAgICAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKAorICAgICAgICAgICAgICAgICAgICAgICAgIShzdGF0ZSAhPSBE
Rkc6OldvcmtsaXN0OjpVbmtub3duICYmIGNvZGVCbG9jay0+aGFzT3B0aW1pemVkUmVwbGFjZW1l
bnQoKSkpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgLy8gSWYg
d2UncmUgY29tcGlsZWQsIHRoZW4gZ28gYXJvdW5kIGFnYWluIGFuZCB0cnkgdG8gaW5zdGFsbC4g
VGhpcyBpcyBhIHJhcmUgcmFjZSwKKyAgICAgICAgICAgICAgICAgICAgLy8gYnV0IGl0J3Mgd29y
dGggaXQgdG8gdHJ5IHRvIGRvIHRpbWVseSBpbnN0YWxsYXRpb24gaW4gdGhhdCBjYXNlLgorICAg
ICAgICAgICAgICAgICAgICBpZiAoc3RhdGUgPT0gREZHOjpXb3JrbGlzdDo6Q29tcGlsZWQpCisg
ICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgICAgIC8vIElmIHdlJ3JlIGluIHRoZSBwcm9jZXNzIG9mIGNvbXBpbGlu
ZyB0aGlzIGNvZGUgYmxvY2sgcmlnaHQgbm93LCB0aGVuIGRlZmVyLiBOb3RlIHRoYXQKKyAgICAg
ICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBpbmhlcmVudGx5IHJhY3k6IGp1c3QgYXMgd2UgZG8g
dGhlIGNoZWNrLCB0aGUgY29tcGlsYXRpb24gY291bGQgY29tcGxldGU7IG1vcmUKKyAgICAgICAg
ICAgICAgICAgICAgLy8gaW50ZXJlc3RpbmdseSwgd2hlbiBpdCBkb2VzIHNvIGJvdGggd2UgYW5k
IHRoZSBjb21waWxlciB0aHJlYWQgd2lsbCBhdHRlbXB0IHRvIHNldCBvdXIKKyAgICAgICAgICAg
ICAgICAgICAgLy8gZXhlY3V0aW9uIGNvdW50ZXIuIEl0IGRvZXNuJ3QgbXVjaCBtYXR0ZXIgd2hv
IHdpbnM7IGVpdGhlciB3YXkgd2Ugd2lsbCBlbmQgdXAgaW4gdGhpcworICAgICAgICAgICAgICAg
ICAgICAvLyBmdW5jdGlvbiBpbiB0aGUgZnV0dXJlLgorICAgICAgICAgICAgICAgICAgICBpZiAo
c3RhdGUgPT0gREZHOjpXb3JrbGlzdDo6Q29tcGlsaW5nKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBjb2RlQmxvY2stPnNldE9wdGltaXphdGlvblRocmVzaG9sZEJhc2VkT25Db21waWxhdGlv
blJlc3VsdChDb21waWxhdGlvbkRlZmVycmVkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoc3RhdGUgPT0gREZHOjpXb3JrbGlzdDo6VW5r
bm93bik7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAvLyBJZiB0
aGUgd29ya2xpc3QgZG9lc24ndCBrbm93IGFueXRoaW5nIGFib3V0IHVzIGFueW1vcmUgdGhlbiB3
ZSBjYW4gYmUgc3VyZSB0aGF0CisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjb2RlIGJsb2Nr
IGNvbXBpbGF0aW9uIGZpbmlzaGVkIGFuZCBpdCB3YXMgaW5zdGFsbGVkLCBhbmQgYWxsIHRocmVz
aG9sZHMgaGF2ZQorICAgICAgICAgICAgICAgICAgICAvLyBiZWVuIHJlc2V0IGFwcHJvcHJpYXRl
bHkuIEhlbmNlIGVpdGhlciB3ZSBmYWxsIHRocm91Z2ggdG8gdGhlIE9TUiBlbnRyeSBhdHRlbXB0
CisgICAgICAgICAgICAgICAgICAgIC8vIGlmIHRoZXJlIGlzIGFuIG9wdGltaXplZCByZXBsYWNl
bWVudCwgb3Igd2UgcmV0dXJuLgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgc2hv
dWxkSW5pdGlhdGVDb21waWxlID0gdHJ1ZTsKICAgICAgICAgCi0gICAgICAgIGNvZGVCbG9jay0+
c2V0T3B0aW1pemF0aW9uVGhyZXNob2xkQmFzZWRPbkNvbXBpbGF0aW9uUmVzdWx0KHJlc3VsdCk7
Ci0gICAgICAgIGlmIChyZXN1bHQgIT0gQ29tcGlsYXRpb25TdWNjZXNzZnVsKQorICAgICAgICBp
ZiAoY29kZUJsb2NrLT5oYXNPcHRpbWl6ZWRSZXBsYWNlbWVudCgpKSB7CisgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVCghc2hvdWxkSW5pdGlhdGVDb21waWxlKTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgLy8gVGhpcyB3aWxsIGJlIHRoZSBmaXJzdCBPU1IgaW50byB0aGUgbmV3bHkgY29t
cGlsZWQgY29kZSBibG9jay4gRmFsbCB0aHJvdWdoIHRvIHRoZSBPU1IKKyAgICAgICAgICAgIC8v
IGNvZGUuCisgICAgICAgIH0gZWxzZSBpZiAoIXNob3VsZEluaXRpYXRlQ29tcGlsZSkgeworICAg
ICAgICAgICAgLy8gVGhpcyBtZWFucyB0aGF0IGEgcHJldmlvdXMgY29tcGlsZSBmaW5pc2hlZCBi
dXQgd2FzIHVuc3VjY2Vzc2Z1bCwgYW5kIGhhZCBzZXQgdGhlCisgICAgICAgICAgICAvLyB0aHJl
c2hvbGRzIGFwcHJvcHJpYXRlbHkuIEp1c3QgcmV0dXJuLgogICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gTm93IHdlIGtub3cgdGhhdCB3ZSBjYW4g
Zm9yayBvZmYgYSBjb21waWxhdGlvbi4KKyAgICAgICAgICAgIGlmICghY29kZUJsb2NrLT5zaG91
bGRPcHRpbWl6ZU5vdygpKSB7CisgICAgICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VP
U1IoKSkgeworICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKAorICAgICAgICAgICAgICAgICAg
ICAgICAgIkRlbGF5aW5nIG9wdGltaXphdGlvbiBmb3IgIiwgKmNvZGVCbG9jaywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICIgYmVjYXVzZSBvZiBpbnN1ZmZpY2llbnQgcHJvZmlsaW5nLlxuIik7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkK
KyAgICAgICAgICAgICAgICBkYXRhTG9nKCJUcmlnZ2VyaW5nIG9wdGltaXplZCBjb21waWxhdGlv
biBvZiAiLCAqY29kZUJsb2NrLCAiXG4iKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgSlNT
Y29wZSogc2NvcGUgPSBjYWxsRnJhbWUtPnNjb3BlKCk7CisgICAgICAgICAgICBDb21waWxhdGlv
blJlc3VsdCByZXN1bHQ7CisgICAgICAgICAgICBKU09iamVjdCogZXJyb3IgPSBjb2RlQmxvY2st
PmNvbXBpbGVPcHRpbWl6ZWQoY2FsbEZyYW1lLCBzY29wZSwgcmVzdWx0LCBieXRlY29kZUluZGV4
KTsKKyAgICAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpIHsKKyAgICAgICAgICAg
ICAgICBkYXRhTG9nKCJPcHRpbWl6aW5nIGNvbXBpbGF0aW9uIG9mICIsICpjb2RlQmxvY2ssICIg
cmVzdWx0OiAiLCByZXN1bHQsICJcbiIpOworICAgICAgICAgICAgICAgIGlmIChlcnJvcikKKyAg
ICAgICAgICAgICAgICAgICAgZGF0YUxvZygiV0FSTklORzogb3B0aW1pemVkIGNvbXBpbGF0aW9u
IGZhaWxlZCB3aXRoIGEgSlMgZXJyb3IuXG4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IAorICAgICAgICAgICAgY29kZUJsb2NrLT5zZXRPcHRpbWl6YXRpb25UaHJlc2hvbGRCYXNlZE9u
Q29tcGlsYXRpb25SZXN1bHQocmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gQ29t
cGlsYXRpb25TdWNjZXNzZnVsKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQog
ICAgIH0KICAgICAKICAgICBDb2RlQmxvY2sqIG9wdGltaXplZENvZGVCbG9jayA9IGNvZGVCbG9j
ay0+cmVwbGFjZW1lbnQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202889</attachid>
            <date>2013-05-25 09:28:17 -0700</date>
            <delta_ts>2013-05-26 11:42:12 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>4731</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUwNjg3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBA
CisyMDEzLTA1LTI1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Zm91cnRoVGllcjogY3RpX29wdGltaXplIHNob3VsZG4ndCBhbGxvdyBHQ3MgdG8gZ2V0IGluIHRo
ZSB3YXkgb2YgaXQgc2VlaW5nIHRoZSBzdGF0ZSBvZiBpdHMgQ29kZUJsb2NrCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTY3NDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgZml4ZXMg
dGhlIGZvbGxvd2luZyByYWNlOiBhbiBvcHRpbWl6ZWQgdmVyc2lvbiBvZiBvdXIgY29kZSBibG9j
ayBjb3VsZCBiZSBpbnN0YWxsZWQKKyAgICAgICAgYnkgdGhlIEdDIGp1c3QgYXMgd2UgcmV0dXJu
IGZyb20gY29tcGxldGVBbGxSZWFkeVBsYW5zRm9yVk0oKSwgbGVhZGluZyB1cyB0byBiZWxpZXZl
CisgICAgICAgIHRoYXQgdGhlIGNvZGUgYmxvY2sgaXNuJ3QgcmVhZHkgeWV0IGV2ZW4gdGhvdWdo
IGl0IGlzLiBDdXJyZW50bHkgdGhpcyB0cmlnZ2VycyBhCisgICAgICAgIFJFTEVBU0VfQVNTRVJU
LiBXZSBjb3VsZCByZW1vdmUgdGhhdCBhc3NlcnRpb24sIGJ1dCB0aGVuIHRoaXMgY2FzZSB3b3Vs
ZCBsZWFkIHRvIHRoZQorICAgICAgICBjb2RlIGluIHF1ZXN0aW9uIGVudGVyaW5nIGludG8gb3B0
aW1pemVBZnRlcldhcm1VcCBtb2RlLiBUaGF0IHNlZW1zIHByZXR0eSB3YXN0ZWZ1bC4KKyAgICAg
ICAgCisgICAgICAgIEZpeCB0aGUgYnVnLCBhbmQgaG9wZWZ1bGx5IGNsb3NlIHRoZSBkb29yIG9u
IHRoZXNlIGJ1Z3MgZm9yIGEgd2hpbGUsIGJ5IHdyYXBwaW5nCisgICAgICAgIGN0aV9vcHRpbWl6
ZSBpbiBhIERlZmVyR0MuIFRoZXJlIGlzIGxpdHRsZSBkb3duc2lkZSB0byBkb2luZyBzbyBzaW5j
ZSB0aGUgb25seQorICAgICAgICAiYWxsb2NhdGlvbnMiIGluIGN0aV9vcHRpbWl6ZSBhcmUgdGhl
IG9uZXMgd2hlcmUgd2UgaW5mb3JtIHRoZSBHQyBhYm91dCBleHRyYSBtZW1vcnkKKyAgICAgICAg
dXNhZ2UuCisgICAgICAgIAorICAgICAgICBJIGhhZCBhIG1vcmUgY29tcHJlaGVuc2l2ZSBzb2x1
dGlvbiAoc2VlIHRoZSBidWcsICJ3b3JrIGluIHByb2dyZXNzIiBwYXRjaCkgYnV0IHRoYXQKKyAg
ICAgICAgb25lIGludm9sdmVkIGFkZGluZyAqbW9yZSogcmFjaW5lc3MgdG8gY3RpX29wdGltaXpl
LiBJIGRlY2lkZWQgdGhhdCB3YXMgYSBsZXNzIGdvb2QKKyAgICAgICAgYXBwcm9hY2ggb25jZSBJ
IGNhbWUgdG8gYXBwcmVjaWF0ZSB0aGUgc2ltcGxpY2l0eSBvZiBqdXN0IHVzaW5nIERlZmVyR0Mu
CisKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RV
Ql9GVU5DVElPTik6CisKIDIwMTMtMDUtMjQgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNv
bT4KIAogICAgICAgICBmb3VydGhUaWVyOiBGVEwgYm9vbGlmeSBzaG91bGQgc3VwcG9ydCBPYmpl
Y3RPck90aGVyVXNlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAko
cmV2aXNpb24gMTUwNjc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJERkdPU1JFbnRy
eS5oIgogI2luY2x1ZGUgIkRGR1dvcmtsaXN0LmgiCiAjaW5jbHVkZSAiRGVidWdnZXIuaCIKKyNp
bmNsdWRlICJEZWZlckdDLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgogI2luY2x1
ZGUgIkdldHRlclNldHRlci5oIgogI2luY2x1ZGUgIkhlYXAuaCIKQEAgLTkwMyw2ICs5MDQsMjYg
QEAgREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3B0aW1pemUpCiB7CiAgICAgU1RVQl9JTklU
X1NUQUNLX0ZSQU1FKHN0YWNrRnJhbWUpOwogICAgIAorICAgIC8vIERlZmVyIEdDIHNvIHRoYXQg
aXQgZG9lc24ndCBydW4gYmV0d2VlbiB3aGVuIHdlIGVudGVyIGludG8gdGhpcyBzbG93IHBhdGgg
YW5kCisgICAgLy8gd2hlbiB3ZSBmaWd1cmUgb3V0IHRoZSBzdGF0ZSBvZiBvdXIgY29kZSBibG9j
ay4gVGhpcyBwcmV2ZW50cyBhIG51bWJlciBvZgorICAgIC8vIGF3a3dhcmQgcmVlbnRyYW5jeSBz
Y2VuYXJpb3MsIGluY2x1ZGluZzoKKyAgICAvLworICAgIC8vIC0gVGhlIG9wdGltaXplZCB2ZXJz
aW9uIG9mIG91ciBjb2RlIGJsb2NrIGJlaW5nIGpldHRpc29uZWQgYnkgR0MgcmlnaHQgYWZ0ZXIK
KyAgICAvLyAgIHdlIGNvbmNsdWRlZCB0aGF0IHdlIHdhbnRlZCB0byB1c2UgaXQuCisgICAgLy8K
KyAgICAvLyAtIEFuIG9wdGltaXplZCB2ZXJzaW9uIG9mIG91ciBjb2RlIGJsb2NrIGJlaW5nIGlu
c3RhbGxlZCBqdXN0IGFzIHdlIGRlY2lkZWQKKyAgICAvLyAgIHRoYXQgaXQgd2Fzbid0IHJlYWR5
IHlldC4KKyAgICAvLworICAgIC8vIFRoaXMgc3RpbGwgbGVhdmVzIHRoZSBmb2xsb3dpbmc6IGFu
eXRpbWUgd2UgcmV0dXJuIGZyb20gY3RpX29wdGltaXplLCB3ZSBtYXkKKyAgICAvLyBHQywgYW5k
IHRoZSBHQyBtYXkgZWl0aGVyIGpldHRpc29uIHRoZSBvcHRpbWl6ZWQgdmVyc2lvbiBvZiBvdXIg
Y29kZSBibG9jaywKKyAgICAvLyBvciBpdCBtYXkgaW5zdGFsbCB0aGUgb3B0aW1pemVkIHZlcnNp
b24gb2Ygb3VyIGNvZGUgYmxvY2sgZXZlbiB0aG91Z2ggd2UKKyAgICAvLyBjb25jbHVkZWQgdGhh
dCBpdCB3YXNuJ3QgcmVhZHkgeWV0LgorICAgIC8vCisgICAgLy8gTm90ZSB0aGF0IGpldHRpc29u
aW5nIHdvbid0IGhhcHBlbiBpZiB3ZSBhbHJlYWR5IGluaXRpYXRlZCBPU1IsIGJlY2F1c2UgaW4K
KyAgICAvLyB0aGF0IGNhc2Ugd2Ugd291bGQgaGF2ZSBhbHJlYWR5IHBsYW50ZWQgdGhlIG9wdGlt
aXplZCBjb2RlIGJsb2NrIGludG8gdGhlIEpTCisgICAgLy8gc3RhY2suCisgICAgRGVmZXJHQyBk
ZWZlckdDKHN0YWNrRnJhbWUudm0tPmhlYXApOworICAgIAogICAgIENhbGxGcmFtZSogY2FsbEZy
YW1lID0gc3RhY2tGcmFtZS5jYWxsRnJhbWU7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2sgPSBj
YWxsRnJhbWUtPmNvZGVCbG9jaygpOwogICAgIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXggPSBzdGFj
a0ZyYW1lLmFyZ3NbMF0uaW50MzIoKTsKQEAgLTk4NCwxNSArMTAwNSwxMCBAQCBERUZJTkVfU1RV
Ql9GVU5DVElPTih2b2lkLCBvcHRpbWl6ZSkKICAgICAKICAgICBpZiAod29ya2xpc3RTdGF0ZSA9
PSBERkc6OldvcmtsaXN0OjpDb21waWxlZCkgewogICAgICAgICAvLyBJZiB3ZSBkb24ndCBoYXZl
IGFuIG9wdGltaXplZCByZXBsYWNlbWVudCBidXQgd2UgZGlkIGp1c3QgZ2V0IGNvbXBpbGVkLCB0
aGVuCi0gICAgICAgIC8vIGVpdGhlciBvZiB0aGUgZm9sbG93aW5nIGhhcHBlbmVkOgotICAgICAg
ICAvLyAtIFRoZSBjb21waWxhdGlvbiBmYWlsZWQgb3Igd2FzIGludmFsaWRhdGVkLCBpbiB3aGlj
aCBjYXNlIHRoZSBleGVjdXRpb24gY291bnQKLSAgICAgICAgLy8gICB0aHJlc2hvbGRzIGhhdmUg
YWxyZWFkeSBiZWVuIHNldCBhcHByb3ByaWF0ZWx5IGJ5Ci0gICAgICAgIC8vICAgQ29kZUJsb2Nr
OjpzZXRPcHRpbWl6YXRpb25UaHJlc2hvbGRCYXNlZE9uQ29tcGlsYXRpb25SZXN1bHQoKSBhbmQg
d2UgaGF2ZQotICAgICAgICAvLyAgIG5vdGhpbmcgbGVmdCB0byBkby4KLSAgICAgICAgLy8gLSBH
QyByYW4gYWZ0ZXIgREZHOjpXb3JrbGlzdDo6Y29tcGxldGVBbGxSZWFkeVBsYW5zRm9yVk0oKSBh
bmQgamV0dGlzb25lZCBvdXIKLSAgICAgICAgLy8gICBjb2RlIGJsb2NrLiBPYnZpb3VzbHkgdGhh
dCdzIHVuZm9ydHVuYXRlIGFuZCB3ZSdkIHJhdGhlciBub3QgaGF2ZSB0aGF0Ci0gICAgICAgIC8v
ICAgaGFwcGVuLCBidXQgaXQgY2FuIGhhcHBlbiwgYW5kIGlmIGl0IGRpZCB0aGVuIHRoZSBqZXR0
aXNvbmluZyBsb2dpYyB3aWxsCi0gICAgICAgIC8vICAgaGF2ZSBzZXQgb3VyIHRocmVzaG9sZCBh
cHByb3ByaWF0ZWx5IGFuZCB3ZSBoYXZlIG5vdGhpbmcgbGVmdCB0byBkby4KKyAgICAgICAgLy8g
dGhlIGNvbXBpbGF0aW9uIGZhaWxlZCBvciB3YXMgaW52YWxpZGF0ZWQsIGluIHdoaWNoIGNhc2Ug
dGhlIGV4ZWN1dGlvbiBjb3VudAorICAgICAgICAvLyB0aHJlc2hvbGRzIGhhdmUgYWxyZWFkeSBi
ZWVuIHNldCBhcHByb3ByaWF0ZWx5IGJ5CisgICAgICAgIC8vIENvZGVCbG9jazo6c2V0T3B0aW1p
emF0aW9uVGhyZXNob2xkQmFzZWRPbkNvbXBpbGF0aW9uUmVzdWx0KCkgYW5kIHdlIGhhdmUKKyAg
ICAgICAgLy8gbm90aGluZyBsZWZ0IHRvIGRvLgogICAgICAgICBpZiAoIWNvZGVCbG9jay0+aGFz
T3B0aW1pemVkUmVwbGFjZW1lbnQoKSkgewogICAgICAgICAgICAgY29kZUJsb2NrLT51cGRhdGVB
bGxQcmVkaWN0aW9ucygpOwogICAgICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkK
</data>
<flag name="review"
          id="224307"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>