<?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>96047</bug_id>
          
          <creation_ts>2012-09-06 17:52:37 -0700</creation_ts>
          <short_desc>JSC should have a zombie mode</short_desc>
          <delta_ts>2012-09-07 10:15:11 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>ap</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>713926</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-09-06 17:52:37 -0700</bug_when>
    <thetext>To aid client of JSC as well as the developers of JSC, we should add a zombie mode that scribbles into objects in the MarkedSpace after they are found to be dead to prevent a sort of &quot;use after free&quot; situation. As a first cut we should support a mode that just scribbles on objects prior to their being reused (i.e. while they are &quot;zombies&quot;) and a mode in which, in addition to scribbling on zombies, once an object has been marked its mark bit will never be cleared, thus giving us &quot;immortal&quot; zombies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713934</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-09-06 17:54:48 -0700</bug_when>
    <thetext>I should also mention that these two modes will be enabled through the use of environment variables. For now these will be &quot;JSZombieEnabled&quot; and &quot;JSImmortalZombieEnabled&quot;. Setting them to any value will result in the use of the appropriate mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713943</commentid>
    <comment_count>2</comment_count>
      <attachid>162633</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-09-06 18:05:11 -0700</bug_when>
    <thetext>Created attachment 162633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713954</commentid>
    <comment_count>3</comment_count>
      <attachid>162633</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-06 18:14:25 -0700</bug_when>
    <thetext>Comment on attachment 162633
Patch

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

Looks good, but you have a bug.

&gt; Source/JavaScriptCore/heap/Heap.cpp:850
&gt; +class ZombifyCellFunctor : public MarkedBlock::VoidFunctor {

Add a data member that causes us optionally set the mark bit as we zombify, if in immortal mode.

&gt; Source/JavaScriptCore/heap/MarkedBlock.h:313
&gt; +    inline void MarkedBlock::zombieClearMarks()

Remove this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713963</commentid>
    <comment_count>4</comment_count>
      <attachid>162638</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-09-06 18:27:39 -0700</bug_when>
    <thetext>Created attachment 162638
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713967</commentid>
    <comment_count>5</comment_count>
      <attachid>162638</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-06 18:29:52 -0700</bug_when>
    <thetext>Comment on attachment 162638
Patch

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

&gt; Source/JavaScriptCore/heap/Heap.cpp:741
&gt; +    if (Options::useZombieMode() || sweepToggle == DoSweep) {

Looking at this again, I don&apos;t think you can piggy-back on this for zombies. If the call to shrink unmaps some blocks, they may remap into the heap later, failing to be immortal zombies.

I think you should just add a call to sweep() inside zombifyDeadObjects().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713976</commentid>
    <comment_count>6</comment_count>
      <attachid>162642</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-09-06 18:36:14 -0700</bug_when>
    <thetext>Created attachment 162642
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713987</commentid>
    <comment_count>7</comment_count>
      <attachid>162642</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-06 18:43:41 -0700</bug_when>
    <thetext>Comment on attachment 162642
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714139</commentid>
    <comment_count>8</comment_count>
      <attachid>162642</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 22:53:02 -0700</bug_when>
    <thetext>Comment on attachment 162642
Patch

Clearing flags on attachment: 162642

Committed r127829: &lt;http://trac.webkit.org/changeset/127829&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714140</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 22:53:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714669</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-09-07 10:15:11 -0700</bug_when>
    <thetext>This seems worth a blog post, or at very least a webkit-dev one.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162633</attachid>
            <date>2012-09-06 18:05:11 -0700</date>
            <delta_ts>2012-09-06 18:27:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96047-20120906180452.patch</filename>
            <type>text/plain</type>
            <size>9660</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI3ODA2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBA
CisyMDEyLTA5LTA2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSlNDIHNob3VsZCBoYXZlIGEgem9tYmllIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDQ3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gYWlkIGNsaWVudHMgb2YgSlNDIHdoaWxl
IHRoZXkgYXJlIGRlYnVnZ2luZyBtZW1vcnkgaXNzdWVzLCB3ZSBzaG91bGQgYWRkIGEgem9tYmll
IAorICAgICAgICBtb2RlIHRoYXQgc2NyaWJibGVzIGludG8gb2JqZWN0cyBpbiB0aGUgTWFya2Vk
U3BhY2UgYWZ0ZXIgdGhleSBhcmUgZm91bmQgdG8gYmUgZGVhZCAKKyAgICAgICAgdG8gcHJldmVu
dCBhIHNvcnQgb2YgInVzZSBhZnRlciBmcmVlIiBzaXR1YXRpb24uIEFzIGEgZmlyc3QgY3V0IHdl
IHNob3VsZCBzdXBwb3J0IGEgCisgICAgICAgIG1vZGUgdGhhdCBqdXN0IHNjcmliYmxlcyBvbiBv
YmplY3RzIHByaW9yIHRvIHRoZWlyIGJlaW5nIHJldXNlZCAoaS5lLiB3aGlsZSB0aGV5IGFyZSAK
KyAgICAgICAgInpvbWJpZXMiKSBhbmQgYSBtb2RlIGluIHdoaWNoLCBpbiBhZGRpdGlvbiB0byBz
Y3JpYmJsaW5nIG9uIHpvbWJpZXMsIG9uY2UgYW4gb2JqZWN0IAorICAgICAgICBoYXMgYmVlbiBt
YXJrZWQgaXRzIG1hcmsgYml0IHdpbGwgbmV2ZXIgYmUgY2xlYXJlZCwgdGh1cyBnaXZpbmcgdXMg
ImltbW9ydGFsIiB6b21iaWVzLgorCisgICAgICAgIFRoZXNlIHR3byBtb2RlcyB3aWxsIGJlIGVu
YWJsZWQgdGhyb3VnaCB0aGUgdXNlIG9mIGVudmlyb25tZW50IHZhcmlhYmxlcy4gRm9yIG5vdyB0
aGVzZSAKKyAgICAgICAgd2lsbCBiZSAiSlNab21iaWVFbmFibGVkIiBhbmQgIkpTSW1tb3J0YWxa
b21iaWVFbmFibGVkIi4gU2V0dGluZyB0aGVtIHRvIGFueSB2YWx1ZSB3aWxsIAorICAgICAgICBy
ZXN1bHQgaW4gdGhlIHVzZSBvZiB0aGUgYXBwcm9wcmlhdGUgbW9kZS4KKworICAgICAgICAqIGhl
YXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OmNvbGxlY3QpOiBXZSBuZWVkIHRvIGVh
Z2VybHkgc3dlZXAgd2hlbiB3ZSdyZSBpbiB6b21iaWUgbW9kZSBzbyB3ZSBkb24ndCBzY3JldyB1
cCAKKyAgICAgICAgdGhlIG9iamVjdHMgYmVmb3JlIHRoZXkgaGF2ZSBhIGNoYW5jZSB0byBiZSBm
aW5hbGl6ZWQvZGVzdHJveWVkLgorICAgICAgICAoWm9tYmlmeUNlbGxGdW5jdG9yKToKKyAgICAg
ICAgKEpTQzo6Wm9tYmlmeUNlbGxGdW5jdG9yOjpab21iaWZ5Q2VsbEZ1bmN0b3IpOiBTY3JpYmJs
ZXMgMHhiYmFkYmVlZiB0aHJvdWdob3V0IHRoZSBlbnRpcmUgY2VsbC4KKyAgICAgICAgKEpTQzo6
Wm9tYmlmeUNlbGxGdW5jdG9yOjpvcGVyYXRvcigpKToKKyAgICAgICAgKEpTQyk6CisgICAgICAg
IChab21iaWZ5QmxvY2tGdW5jdG9yKToKKyAgICAgICAgKEpTQzo6Wm9tYmlmeUJsb2NrRnVuY3Rv
cjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OkhlYXA6OnpvbWJpZnlEZWFkT2JqZWN0cyk6
IENhbGxlZCBhZnRlciB0aGUgY29tcGxldGlvbiBvZiBlYWNoIGdhcmJhZ2UgY29sbGVjdGlvbiB3
aGVuIHpvbWJpZQorICAgICAgICBtb2RlIGlzIGVuYWJsZWQuCisgICAgICAgICogaGVhcC9IZWFw
Lmg6CisgICAgICAgIChIZWFwKToKKyAgICAgICAgKiBoZWFwL01hcmtlZEJsb2NrLmg6CisgICAg
ICAgIChNYXJrZWRCbG9jayk6CisgICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjp6b21iaWVDbGVh
ck1hcmtzKTogVXNlZCBzbyB0aGF0IHdlIHNldCB0aGUgc3RhdGUgb2YgdGhlIGJsb2NrIHByb3Bl
cmx5LCBidXQgCisgICAgICAgIHdlIGRvbid0IGFjdHVhbGx5IGNsZWFyIGFueSBtYXJrIGJpdHMu
CisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpNYXJrZWRCbG9jazo6Zm9yRWFjaERlYWRD
ZWxsKTogU2FtZSBhcyBmb3JFYWNoQ2VsbCwgYnV0IG9ubHkgcGFzc2VzIGRlYWQgY2VsbHMgdG8g
dGhlIGZ1bmN0b3IuCisgICAgICAgICogaGVhcC9NYXJrZWRTcGFjZS5oOgorICAgICAgICAoSlND
Ojpab21iaWVDbGVhck1hcmtzOjpvcGVyYXRvcigpKTogVXNlZCBpbiBwbGFjZSBvZiB0aGUgbm9y
bWFsIENsZWFyTWFya3MgZnVuY3RvciB3aGVuIHdlJ3JlIGluIAorICAgICAgICBpbW1vcnRhbCB6
b21iaWUgbW9kZS4KKyAgICAgICAgKEpTQyk6CisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjpj
bGVhck1hcmtzKTogVXNlcyB3aGV0aGVyIHdlJ3JlIGluIGltbW9ydGFsIHpvbWJpZSBtb2RlIHRv
IGNob29zZSBiZXR3ZWVuIHVzaW5nIGEKKyAgICAgICAgbm9ybWFsIENsZWFyTWFya3MgZnVuY3Rv
ciBvciBhIFpvbWJpZUNsZWFyTWFya3MgZnVuY3Rvci4KKyAgICAgICAgKiBydW50aW1lL09wdGlv
bnMuY3BwOgorICAgICAgICAoSlNDOjpPcHRpb25zOjppbml0aWFsaXplKTogR3JhYiB0aGUgdmFs
dWVzIG9mIHRoZSB0d28gem9tYmllLXJlbGF0ZWQgZmxhZ3MgZnJvbSB0aGUgZW52aXJvbm1lbnQu
CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmg6CisgICAgICAgIChKU0MpOgorCiAyMDEyLTA5
LTA2ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBKUyB0ZXN0IHN1aXRlIHB1dHMgaW5jb3JyZWN0IGxpbWl0YXRpb25zIG9uIEZ1bmN0aW9uLnRv
U3RyaW5nKCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAx
Mjc3OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzM4LDcgKzczOCw3IEBAIHZvaWQgSGVhcDo6Y29sbGVjdChTd2VlcFRvZ2dsZSBz
d2VlcFRvZ2cKICAgICAgICAgZGVsZXRlVW5tYXJrZWRDb21waWxlZENvZGUoKTsKICAgICB9CiAK
LSAgICBpZiAoc3dlZXBUb2dnbGUgPT0gRG9Td2VlcCkgeworICAgIGlmIChPcHRpb25zOjp1c2Va
b21iaWVNb2RlKCkgfHwgc3dlZXBUb2dnbGUgPT0gRG9Td2VlcCkgewogICAgICAgICBTYW1wbGlu
Z1JlZ2lvbiBzYW1wbGluZ1JlZ2lvbigiR2FyYmFnZSBDb2xsZWN0aW9uOiBTd2VlcGluZyIpOwog
ICAgICAgICBHQ1BIQVNFKFN3ZWVwaW5nKTsKICAgICAgICAgbV9vYmplY3RTcGFjZS5zd2VlcCgp
OwpAQCAtNzUzLDYgKzc1Myw5IEBAIHZvaWQgSGVhcDo6Y29sbGVjdChTd2VlcFRvZ2dsZSBzd2Vl
cFRvZ2cKICAgICAgICAgbV9vYmplY3RTcGFjZS5yZXNldEFsbG9jYXRvcnMoKTsKICAgICB9CiAg
ICAgCisgICAgaWYgKE9wdGlvbnM6OnVzZVpvbWJpZU1vZGUoKSkKKyAgICAgICAgem9tYmlmeURl
YWRPYmplY3RzKCk7CisKICAgICBzaXplX3QgY3VycmVudEhlYXBTaXplID0gc2l6ZSgpOwogICAg
IGlmIChmdWxsR0MpIHsKICAgICAgICAgbV9zaXplQWZ0ZXJMYXN0Q29sbGVjdCA9IGN1cnJlbnRI
ZWFwU2l6ZTsKQEAgLTg0NCw0ICs4NDcsNDQgQEAgdm9pZCBIZWFwOjpkaWRTdGFydFZNU2h1dGRv
d24oKQogICAgIGxhc3RDaGFuY2VUb0ZpbmFsaXplKCk7CiB9CiAKK2NsYXNzIFpvbWJpZnlDZWxs
RnVuY3RvciA6IHB1YmxpYyBNYXJrZWRCbG9jazo6Vm9pZEZ1bmN0b3IgeworcHVibGljOgorICAg
IFpvbWJpZnlDZWxsRnVuY3RvcihzaXplX3QgY2VsbFNpemUpCisgICAgICAgIDogbV9jZWxsU2l6
ZShjZWxsU2l6ZSkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBvcGVyYXRvcigpKEpTQ2VsbCog
Y2VsbCkKKyAgICB7CisgICAgICAgIHZvaWQqKiBjdXJyZW50ID0gcmVpbnRlcnByZXRfY2FzdDx2
b2lkKio+KGNlbGwpOworCisgICAgICAgIC8vIFdlIHdhbnQgdG8gbWFpbnRhaW4gemFwcGVkLW5l
c3MgYmVjYXVzZSB0aGF0J3MgaG93IHdlIGtub3cgaWYgd2UndmUgY2FsbGVkIAorICAgICAgICAv
LyB0aGUgZGVzdHJ1Y3Rvci4KKyAgICAgICAgaWYgKGNlbGwtPmlzWmFwcGVkKCkpCisgICAgICAg
ICAgICBjdXJyZW50Kys7CisKKyAgICAgICAgdm9pZCogbGltaXQgPSBzdGF0aWNfY2FzdDx2b2lk
Kj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY2VsbCkgKyBtX2NlbGxTaXplKTsKKyAgICAgICAg
Zm9yICg7IGN1cnJlbnQgPCBsaW1pdDsgY3VycmVudCsrKQorICAgICAgICAgICAgKmN1cnJlbnQg
PSByZWludGVycHJldF9jYXN0PHZvaWQqPigweGJiYWRiZWVmKTsKKyAgICB9CisKK3ByaXZhdGU6
CisgICAgc2l6ZV90IG1fY2VsbFNpemU7Cit9OworCitjbGFzcyBab21iaWZ5QmxvY2tGdW5jdG9y
IDogcHVibGljIE1hcmtlZEJsb2NrOjpWb2lkRnVuY3RvciB7CitwdWJsaWM6CisgICAgdm9pZCBv
cGVyYXRvcigpKE1hcmtlZEJsb2NrKiBibG9jaykKKyAgICB7CisgICAgICAgIFpvbWJpZnlDZWxs
RnVuY3RvciBmdW5jdG9yKGJsb2NrLT5jZWxsU2l6ZSgpKTsKKyAgICAgICAgYmxvY2stPmZvckVh
Y2hEZWFkQ2VsbChmdW5jdG9yKTsKKyAgICB9Cit9OworCit2b2lkIEhlYXA6OnpvbWJpZnlEZWFk
T2JqZWN0cygpCit7CisgICAgWm9tYmlmeUJsb2NrRnVuY3RvciBmdW5jdG9yOworICAgIG1fb2Jq
ZWN0U3BhY2UuZm9yRWFjaEJsb2NrKGZ1bmN0b3IpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHJldmlzaW9uIDEyNzc5MCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMjAzLDcg
KzIwMyw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGhhcnZlc3RXZWFrUmVmZXJl
bmNlcygpOwogICAgICAgICB2b2lkIGZpbmFsaXplVW5jb25kaXRpb25hbEZpbmFsaXplcnMoKTsK
ICAgICAgICAgdm9pZCBkZWxldGVVbm1hcmtlZENvbXBpbGVkQ29kZSgpOwotICAgICAgICAKKyAg
ICAgICAgdm9pZCB6b21iaWZ5RGVhZE9iamVjdHMoKTsKKyAKICAgICAgICAgUmVnaXN0ZXJGaWxl
JiByZWdpc3RlckZpbGUoKTsKICAgICAgICAgQmxvY2tBbGxvY2F0b3ImIGJsb2NrQWxsb2NhdG9y
KCk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAkocmV2
aXNpb24gMTI3NzkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2su
aAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDYgKzEzOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICB2b2lkIHphcEZyZWVMaXN0KGNvbnN0IEZyZWVMaXN0Jik7IC8vIENhbGwgdGhpcyB0byB1
bmRvIHRoZSBmcmVlIGxpc3QuCiAKICAgICAgICAgdm9pZCBjbGVhck1hcmtzKCk7CisgICAgICAg
IHZvaWQgem9tYmllQ2xlYXJNYXJrcygpOwogICAgICAgICBzaXplX3QgbWFya0NvdW50KCk7CiAg
ICAgICAgIGJvb2wgaXNFbXB0eSgpOwogCkBAIC0xODYsNiArMTg3LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAjZW5kaWYKIAogICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rvcj4gdm9pZCBm
b3JFYWNoQ2VsbChGdW5jdG9yJik7CisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9y
PiB2b2lkIGZvckVhY2hEZWFkQ2VsbChGdW5jdG9yJik7CiAKICAgICBwcml2YXRlOgogICAgICAg
ICBzdGF0aWMgY29uc3Qgc2l6ZV90IGF0b21BbGlnbm1lbnRNYXNrID0gYXRvbVNpemUgLSAxOyAv
LyBhdG9tU2l6ZSBtdXN0IGJlIGEgcG93ZXIgb2YgdHdvLgpAQCAtMzA4LDYgKzMxMCwxNSBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgbV9zdGF0ZSA9IE1hcmtlZDsKICAgICB9CiAKKyAgICBp
bmxpbmUgdm9pZCBNYXJrZWRCbG9jazo6em9tYmllQ2xlYXJNYXJrcygpCisgICAgeworICAgICAg
ICBIRUFQX0xPR19CTE9DS19TVEFURV9UUkFOU0lUSU9OKHRoaXMpOworICAgICAgICBBU1NFUlQo
bV9zdGF0ZSAhPSBOZXcgJiYgbV9zdGF0ZSAhPSBGcmVlTGlzdGVkKTsKKyAgICAgICAgLy8gVGhp
cyB3aWxsIGJlY29tZSB0cnVlIGF0IHRoZSBlbmQgb2YgdGhlIG1hcmsgcGhhc2UuIFdlIHNldCBp
dCBub3cgdG8KKyAgICAgICAgLy8gYXZvaWQgYW4gZXh0cmEgcGFzcyB0byBkbyBzbyBsYXRlci4K
KyAgICAgICAgbV9zdGF0ZSA9IE1hcmtlZDsKKyAgICB9CisKICAgICBpbmxpbmUgc2l6ZV90IE1h
cmtlZEJsb2NrOjptYXJrQ291bnQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1fbWFya3MuY291
bnQoKTsKQEAgLTQxNyw2ICs0MjgsMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KICAg
ICB9CiAKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rvcj4gaW5saW5lIHZvaWQgTWFya2Vk
QmxvY2s6OmZvckVhY2hEZWFkQ2VsbChGdW5jdG9yJiBmdW5jdG9yKQorICAgIHsKKyAgICAgICAg
Zm9yIChzaXplX3QgaSA9IGZpcnN0QXRvbSgpOyBpIDwgbV9lbmRBdG9tOyBpICs9IG1fYXRvbXNQ
ZXJDZWxsKSB7CisgICAgICAgICAgICBKU0NlbGwqIGNlbGwgPSByZWludGVycHJldF9jYXN0X3B0
cjxKU0NlbGwqPigmYXRvbXMoKVtpXSk7CisgICAgICAgICAgICBpZiAoaXNMaXZlKGNlbGwpKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBmdW5jdG9yKGNlbGwpOwor
ICAgICAgICB9CisgICAgfQorCiAgICAgaW5saW5lIGJvb2wgTWFya2VkQmxvY2s6Om5lZWRzU3dl
ZXBpbmcoKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1fc3RhdGUgPT0gTWFya2VkIHx8IG1fc3Rh
dGUgPT0gWmFwcGVkOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3Bh
Y2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFj
ZS5oCShyZXZpc2lvbiAxMjc3OTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJr
ZWRTcGFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiTWFy
a2VkQWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAiTWFya2VkQmxvY2suaCIKICNpbmNsdWRlICJNYXJr
ZWRCbG9ja1NldC5oIgorI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlIDx3dGYvUGFnZUFs
bG9jYXRpb25BbGlnbmVkLmg+CiAjaW5jbHVkZSA8d3RmL0JpdG1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9Eb3VibHlMaW5rZWRMaXN0Lmg+CkBAIC00OSw2ICs1MCwxMCBAQCBzdHJ1Y3QgQ2xlYXJNYXJr
cyA6IE1hcmtlZEJsb2NrOjpWb2lkRnVuCiAgICAgdm9pZCBvcGVyYXRvcigpKE1hcmtlZEJsb2Nr
KiBibG9jaykgeyBibG9jay0+Y2xlYXJNYXJrcygpOyB9CiB9OwogCitzdHJ1Y3QgWm9tYmllQ2xl
YXJNYXJrcyA6IE1hcmtlZEJsb2NrOjpWb2lkRnVuY3RvciB7CisgICAgdm9pZCBvcGVyYXRvcigp
KE1hcmtlZEJsb2NrKiBibG9jaykgeyBibG9jay0+em9tYmllQ2xlYXJNYXJrcygpOyB9Cit9Owor
CiBzdHJ1Y3QgU3dlZXAgOiBNYXJrZWRCbG9jazo6Vm9pZEZ1bmN0b3IgewogICAgIHZvaWQgb3Bl
cmF0b3IoKShNYXJrZWRCbG9jayogYmxvY2spIHsgYmxvY2stPnN3ZWVwKCk7IH0KIH07CkBAIC0y
MzIsNyArMjM3LDEwIEBAIGlubGluZSB2b2lkIE1hcmtlZFNwYWNlOjpkaWRBZGRCbG9jayhNYXIK
IAogaW5saW5lIHZvaWQgTWFya2VkU3BhY2U6OmNsZWFyTWFya3MoKQogewotICAgIGZvckVhY2hC
bG9jazxDbGVhck1hcmtzPigpOworICAgIGlmIChPcHRpb25zOjp6b21iaWVzQXJlSW1tb3J0YWwo
KSkKKyAgICAgICAgZm9yRWFjaEJsb2NrPFpvbWJpZUNsZWFyTWFya3M+KCk7CisgICAgZWxzZQor
ICAgICAgICBmb3JFYWNoQmxvY2s8Q2xlYXJNYXJrcz4oKTsKIH0KIAogaW5saW5lIHNpemVfdCBN
YXJrZWRTcGFjZTo6b2JqZWN0Q291bnQoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5jcHAJKHJldmlzaW9uIDEyNzc5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDYsNiArMTQ2LDEx
IEBAIHZvaWQgT3B0aW9uczo6aW5pdGlhbGl6ZSgpCiAgICAgdXNlUmVnRXhwSklUKCkgPSBmYWxz
ZTsKICNlbmRpZgogCisjaWYgVVNFKENGKSB8fCBPUyhVTklYKQorICAgIHpvbWJpZXNBcmVJbW1v
cnRhbCgpID0gISFnZXRlbnYoIkpTSW1tb3J0YWxab21iaWVFbmFibGVkIik7CisgICAgdXNlWm9t
YmllTW9kZSgpID0gem9tYmllc0FyZUltbW9ydGFsKCkgfHwgISFnZXRlbnYoIkpTWm9tYmllRW5h
YmxlZCIpOworI2VuZGlmCisKICAgICAvLyBEbyByYW5nZSBjaGVja3Mgd2hlcmUgbmVlZGVkIGFu
ZCBtYWtlIGNvcnJlY3Rpb25zIHRvIHRoZSBvcHRpb25zOgogICAgIEFTU0VSVCh0aHJlc2hvbGRG
b3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCgpID49IHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJX
YXJtVXAoKSk7CiAgICAgQVNTRVJUKHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJXYXJtVXAoKSA+
PSB0aHJlc2hvbGRGb3JPcHRpbWl6ZVNvb24oKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5oCShyZXZpc2lvbiAxMjc3OTApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgsMTAg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgdih1bnNpZ25lZCwgb3BhcXVlUm9vdE1lcmdlVGhyZXNo
b2xkLCAxMDAwKSBcCiAgICAgXAogICAgIHYoYm9vbCwgZm9yY2VXZWFrUmFuZG9tU2VlZCwgZmFs
c2UpIFwKLSAgICB2KHVuc2lnbmVkLCBmb3JjZWRXZWFrUmFuZG9tU2VlZCwgMCkKKyAgICB2KHVu
c2lnbmVkLCBmb3JjZWRXZWFrUmFuZG9tU2VlZCwgMCkgXAorICAgIFwKKyAgICB2KGJvb2wsIHVz
ZVpvbWJpZU1vZGUsIGZhbHNlKSBcCisgICAgdihib29sLCB6b21iaWVzQXJlSW1tb3J0YWwsIGZh
bHNlKSAKIAogCiBjbGFzcyBPcHRpb25zIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162638</attachid>
            <date>2012-09-06 18:27:39 -0700</date>
            <delta_ts>2012-09-06 18:36:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96047-20120906182720.patch</filename>
            <type>text/plain</type>
            <size>7225</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI3ODA3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBA
CisyMDEyLTA5LTA2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSlNDIHNob3VsZCBoYXZlIGEgem9tYmllIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDQ3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gYWlkIGNsaWVudHMgb2YgSlNDIHdoaWxl
IHRoZXkgYXJlIGRlYnVnZ2luZyBtZW1vcnkgaXNzdWVzLCB3ZSBzaG91bGQgYWRkIGEgem9tYmll
IAorICAgICAgICBtb2RlIHRoYXQgc2NyaWJibGVzIGludG8gb2JqZWN0cyBpbiB0aGUgTWFya2Vk
U3BhY2UgYWZ0ZXIgdGhleSBhcmUgZm91bmQgdG8gYmUgZGVhZCAKKyAgICAgICAgdG8gcHJldmVu
dCBhIHNvcnQgb2YgInVzZSBhZnRlciBmcmVlIiBzaXR1YXRpb24uIEFzIGEgZmlyc3QgY3V0IHdl
IHNob3VsZCBzdXBwb3J0IGEgCisgICAgICAgIG1vZGUgdGhhdCBqdXN0IHNjcmliYmxlcyBvbiBv
YmplY3RzIHByaW9yIHRvIHRoZWlyIGJlaW5nIHJldXNlZCAoaS5lLiB3aGlsZSB0aGV5IGFyZSAK
KyAgICAgICAgInpvbWJpZXMiKSBhbmQgYSBtb2RlIGluIHdoaWNoLCBpbiBhZGRpdGlvbiB0byBz
Y3JpYmJsaW5nIG9uIHpvbWJpZXMsIG9uY2UgYW4gb2JqZWN0IAorICAgICAgICBoYXMgYmVlbiBt
YXJrZWQgaXRzIG1hcmsgYml0IHdpbGwgbmV2ZXIgYmUgY2xlYXJlZCwgdGh1cyBnaXZpbmcgdXMg
ImltbW9ydGFsIiB6b21iaWVzLgorCisgICAgICAgIFRoZXNlIHR3byBtb2RlcyB3aWxsIGJlIGVu
YWJsZWQgdGhyb3VnaCB0aGUgdXNlIG9mIGVudmlyb25tZW50IHZhcmlhYmxlcy4gRm9yIG5vdyB0
aGVzZSAKKyAgICAgICAgd2lsbCBiZSAiSlNab21iaWVFbmFibGVkIiBhbmQgIkpTSW1tb3J0YWxa
b21iaWVFbmFibGVkIi4gU2V0dGluZyB0aGVtIHRvIGFueSB2YWx1ZSB3aWxsIAorICAgICAgICBy
ZXN1bHQgaW4gdGhlIHVzZSBvZiB0aGUgYXBwcm9wcmlhdGUgbW9kZS4KKworICAgICAgICAqIGhl
YXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OmNvbGxlY3QpOiBFYWdlcmx5IHN3ZWVw
cyBhbmQgdGhlbiB6b21iaWZpZXMgZGVhZCBvYmplY3RzIGF0IHRoZSBlbmQgb2YgY29sbGVjdGlv
biBpZiB6b21iaWUgbW9kZSBpcyBlbmFibGVkLgorICAgICAgICAoWm9tYmlmeUNlbGxGdW5jdG9y
KToKKyAgICAgICAgKEpTQzo6Wm9tYmlmeUNlbGxGdW5jdG9yOjpab21iaWZ5Q2VsbEZ1bmN0b3Ip
OiBTZXRzIG1hcmtlZCBiaXRzIGZvciBkZWFkIG9iamVjdHMgaWYgaW4gaW1tb3J0YWwgbW9kZSBh
bmQgd3JpdGVzIDB4YmJhZGJlZWYgaW50byB0aGVtLgorICAgICAgICAoSlNDOjpab21iaWZ5Q2Vs
bEZ1bmN0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKFpvbWJpZnlC
bG9ja0Z1bmN0b3IpOgorICAgICAgICAoSlNDOjpab21iaWZ5QmxvY2tGdW5jdG9yOjpvcGVyYXRv
cigpKToKKyAgICAgICAgKEpTQzo6SGVhcDo6em9tYmlmeURlYWRPYmplY3RzKToKKyAgICAgICAg
KiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKEhlYXApOgorICAgICAgICAqIGhlYXAvTWFya2VkQmxv
Y2suaDoKKyAgICAgICAgKE1hcmtlZEJsb2NrKToKKyAgICAgICAgKEpTQzo6TWFya2VkQmxvY2s6
OmZvckVhY2hEZWFkQ2VsbCk6IFVzZWQgdG8gaXRlcmF0ZSBvdmVyIGRlYWQgY2VsbHMgYXQgdGhl
IGVuZCBvZiBjb2xsZWN0aW9uIGlmIHpvbWJpZSBtb2RlIGlzIGVuYWJsZWQuCisgICAgICAgIChK
U0MpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Ok9wdGlv
bnM6OmluaXRpYWxpemUpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAo
SlNDKToKKwogMjAxMi0wOS0wNiAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgSlMgdGVzdCBzdWl0ZSBwdXRzIGluY29ycmVjdCBsaW1pdGF0aW9u
cyBvbiBGdW5jdGlvbi50b1N0cmluZygpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFw
LmNwcAkocmV2aXNpb24gMTI3NzkwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczOCw3ICs3MzgsNyBAQCB2b2lkIEhlYXA6OmNvbGxl
Y3QoU3dlZXBUb2dnbGUgc3dlZXBUb2dnCiAgICAgICAgIGRlbGV0ZVVubWFya2VkQ29tcGlsZWRD
b2RlKCk7CiAgICAgfQogCi0gICAgaWYgKHN3ZWVwVG9nZ2xlID09IERvU3dlZXApIHsKKyAgICBp
ZiAoT3B0aW9uczo6dXNlWm9tYmllTW9kZSgpIHx8IHN3ZWVwVG9nZ2xlID09IERvU3dlZXApIHsK
ICAgICAgICAgU2FtcGxpbmdSZWdpb24gc2FtcGxpbmdSZWdpb24oIkdhcmJhZ2UgQ29sbGVjdGlv
bjogU3dlZXBpbmciKTsKICAgICAgICAgR0NQSEFTRShTd2VlcGluZyk7CiAgICAgICAgIG1fb2Jq
ZWN0U3BhY2Uuc3dlZXAoKTsKQEAgLTc1Myw2ICs3NTMsOSBAQCB2b2lkIEhlYXA6OmNvbGxlY3Qo
U3dlZXBUb2dnbGUgc3dlZXBUb2dnCiAgICAgICAgIG1fb2JqZWN0U3BhY2UucmVzZXRBbGxvY2F0
b3JzKCk7CiAgICAgfQogICAgIAorICAgIGlmIChPcHRpb25zOjp1c2Vab21iaWVNb2RlKCkpCisg
ICAgICAgIHpvbWJpZnlEZWFkT2JqZWN0cygpOworCiAgICAgc2l6ZV90IGN1cnJlbnRIZWFwU2l6
ZSA9IHNpemUoKTsKICAgICBpZiAoZnVsbEdDKSB7CiAgICAgICAgIG1fc2l6ZUFmdGVyTGFzdENv
bGxlY3QgPSBjdXJyZW50SGVhcFNpemU7CkBAIC04NDQsNCArODQ3LDQ3IEBAIHZvaWQgSGVhcDo6
ZGlkU3RhcnRWTVNodXRkb3duKCkKICAgICBsYXN0Q2hhbmNlVG9GaW5hbGl6ZSgpOwogfQogCitj
bGFzcyBab21iaWZ5Q2VsbEZ1bmN0b3IgOiBwdWJsaWMgTWFya2VkQmxvY2s6OlZvaWRGdW5jdG9y
IHsKK3B1YmxpYzoKKyAgICBab21iaWZ5Q2VsbEZ1bmN0b3Ioc2l6ZV90IGNlbGxTaXplKQorICAg
ICAgICA6IG1fY2VsbFNpemUoY2VsbFNpemUpCisgICAgeworICAgIH0KKworICAgIHZvaWQgb3Bl
cmF0b3IoKShKU0NlbGwqIGNlbGwpCisgICAgeworICAgICAgICBpZiAoT3B0aW9uczo6em9tYmll
c0FyZUltbW9ydGFsKCkpCisgICAgICAgICAgICBNYXJrZWRCbG9jazo6YmxvY2tGb3IoY2VsbCkt
PnNldE1hcmtlZChjZWxsKTsKKworICAgICAgICB2b2lkKiogY3VycmVudCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCoqPihjZWxsKTsKKworICAgICAgICAvLyBXZSB3YW50IHRvIG1haW50YWluIHph
cHBlZC1uZXNzIGJlY2F1c2UgdGhhdCdzIGhvdyB3ZSBrbm93IGlmIHdlJ3ZlIGNhbGxlZCAKKyAg
ICAgICAgLy8gdGhlIGRlc3RydWN0b3IuCisgICAgICAgIGlmIChjZWxsLT5pc1phcHBlZCgpKQor
ICAgICAgICAgICAgY3VycmVudCsrOworCisgICAgICAgIHZvaWQqIGxpbWl0ID0gc3RhdGljX2Nh
c3Q8dm9pZCo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNlbGwpICsgbV9jZWxsU2l6ZSk7Cisg
ICAgICAgIGZvciAoOyBjdXJyZW50IDwgbGltaXQ7IGN1cnJlbnQrKykKKyAgICAgICAgICAgICpj
dXJyZW50ID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oMHhiYmFkYmVlZik7CisgICAgfQorCitw
cml2YXRlOgorICAgIHNpemVfdCBtX2NlbGxTaXplOworfTsKKworY2xhc3MgWm9tYmlmeUJsb2Nr
RnVuY3RvciA6IHB1YmxpYyBNYXJrZWRCbG9jazo6Vm9pZEZ1bmN0b3IgeworcHVibGljOgorICAg
IHZvaWQgb3BlcmF0b3IoKShNYXJrZWRCbG9jayogYmxvY2spCisgICAgeworICAgICAgICBab21i
aWZ5Q2VsbEZ1bmN0b3IgZnVuY3RvcihibG9jay0+Y2VsbFNpemUoKSk7CisgICAgICAgIGJsb2Nr
LT5mb3JFYWNoRGVhZENlbGwoZnVuY3Rvcik7CisgICAgfQorfTsKKwordm9pZCBIZWFwOjp6b21i
aWZ5RGVhZE9iamVjdHMoKQoreworICAgIFpvbWJpZnlCbG9ja0Z1bmN0b3IgZnVuY3RvcjsKKyAg
ICBtX29iamVjdFNwYWNlLmZvckVhY2hCbG9jayhmdW5jdG9yKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCShyZXZpc2lvbiAxMjc3OTAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIwMyw3ICsyMDMsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBoYXJ2ZXN0V2Vh
a1JlZmVyZW5jZXMoKTsKICAgICAgICAgdm9pZCBmaW5hbGl6ZVVuY29uZGl0aW9uYWxGaW5hbGl6
ZXJzKCk7CiAgICAgICAgIHZvaWQgZGVsZXRlVW5tYXJrZWRDb21waWxlZENvZGUoKTsKLSAgICAg
ICAgCisgICAgICAgIHZvaWQgem9tYmlmeURlYWRPYmplY3RzKCk7CisgCiAgICAgICAgIFJlZ2lz
dGVyRmlsZSYgcmVnaXN0ZXJGaWxlKCk7CiAgICAgICAgIEJsb2NrQWxsb2NhdG9yJiBibG9ja0Fs
bG9jYXRvcigpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9j
ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2Nr
LmgJKHJldmlzaW9uIDEyNzc5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtl
ZEJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4Niw2ICsxODYsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICNlbmRpZgogCiAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9yPiB2b2lkIGZv
ckVhY2hDZWxsKEZ1bmN0b3ImKTsKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0b3I+
IHZvaWQgZm9yRWFjaERlYWRDZWxsKEZ1bmN0b3ImKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IHN0YXRpYyBjb25zdCBzaXplX3QgYXRvbUFsaWdubWVudE1hc2sgPSBhdG9tU2l6ZSAtIDE7IC8v
IGF0b21TaXplIG11c3QgYmUgYSBwb3dlciBvZiB0d28uCkBAIC00MTcsNiArNDE4LDE3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICB9CiAgICAgfQogCisgICAgdGVtcGxhdGUgPHR5cGVuYW1l
IEZ1bmN0b3I+IGlubGluZSB2b2lkIE1hcmtlZEJsb2NrOjpmb3JFYWNoRGVhZENlbGwoRnVuY3Rv
ciYgZnVuY3RvcikKKyAgICB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSBmaXJzdEF0b20oKTsg
aSA8IG1fZW5kQXRvbTsgaSArPSBtX2F0b21zUGVyQ2VsbCkgeworICAgICAgICAgICAgSlNDZWxs
KiBjZWxsID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8SlNDZWxsKj4oJmF0b21zKClbaV0pOworICAg
ICAgICAgICAgaWYgKGlzTGl2ZShjZWxsKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKwor
ICAgICAgICAgICAgZnVuY3RvcihjZWxsKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlubGlu
ZSBib29sIE1hcmtlZEJsb2NrOjpuZWVkc1N3ZWVwaW5nKCkKICAgICB7CiAgICAgICAgIHJldHVy
biBtX3N0YXRlID09IE1hcmtlZCB8fCBtX3N0YXRlID09IFphcHBlZDsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCShyZXZpc2lvbiAxMjc3OTApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTQ2LDYgKzE0NiwxMSBAQCB2b2lkIE9wdGlvbnM6OmluaXRpYWxpemUoKQogICAgIHVzZVJl
Z0V4cEpJVCgpID0gZmFsc2U7CiAjZW5kaWYKIAorI2lmIFVTRShDRikgfHwgT1MoVU5JWCkKKyAg
ICB6b21iaWVzQXJlSW1tb3J0YWwoKSA9ICEhZ2V0ZW52KCJKU0ltbW9ydGFsWm9tYmllRW5hYmxl
ZCIpOworICAgIHVzZVpvbWJpZU1vZGUoKSA9IHpvbWJpZXNBcmVJbW1vcnRhbCgpIHx8ICEhZ2V0
ZW52KCJKU1pvbWJpZUVuYWJsZWQiKTsKKyNlbmRpZgorCiAgICAgLy8gRG8gcmFuZ2UgY2hlY2tz
IHdoZXJlIG5lZWRlZCBhbmQgbWFrZSBjb3JyZWN0aW9ucyB0byB0aGUgb3B0aW9uczoKICAgICBB
U1NFUlQodGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSA+PSB0aHJlc2hvbGRG
b3JPcHRpbWl6ZUFmdGVyV2FybVVwKCkpOwogICAgIEFTU0VSVCh0aHJlc2hvbGRGb3JPcHRpbWl6
ZUFmdGVyV2FybVVwKCkgPj0gdGhyZXNob2xkRm9yT3B0aW1pemVTb29uKCkpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMTI3NzkwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTgsNyArMTE4LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHYodW5zaWduZWQsIG9wYXF1
ZVJvb3RNZXJnZVRocmVzaG9sZCwgMTAwMCkgXAogICAgIFwKICAgICB2KGJvb2wsIGZvcmNlV2Vh
a1JhbmRvbVNlZWQsIGZhbHNlKSBcCi0gICAgdih1bnNpZ25lZCwgZm9yY2VkV2Vha1JhbmRvbVNl
ZWQsIDApCisgICAgdih1bnNpZ25lZCwgZm9yY2VkV2Vha1JhbmRvbVNlZWQsIDApIFwKKyAgICBc
CisgICAgdihib29sLCB1c2Vab21iaWVNb2RlLCBmYWxzZSkgXAorICAgIHYoYm9vbCwgem9tYmll
c0FyZUltbW9ydGFsLCBmYWxzZSkgCiAKIAogY2xhc3MgT3B0aW9ucyB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162642</attachid>
            <date>2012-09-06 18:36:14 -0700</date>
            <delta_ts>2012-09-06 22:53:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96047-20120906183555.patch</filename>
            <type>text/plain</type>
            <size>6997</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI3ODA3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBA
CisyMDEyLTA5LTA2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSlNDIHNob3VsZCBoYXZlIGEgem9tYmllIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MDQ3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gYWlkIGNsaWVudHMgb2YgSlNDIHdoaWxl
IHRoZXkgYXJlIGRlYnVnZ2luZyBtZW1vcnkgaXNzdWVzLCB3ZSBzaG91bGQgYWRkIGEgem9tYmll
IAorICAgICAgICBtb2RlIHRoYXQgc2NyaWJibGVzIGludG8gb2JqZWN0cyBpbiB0aGUgTWFya2Vk
U3BhY2UgYWZ0ZXIgdGhleSBhcmUgZm91bmQgdG8gYmUgZGVhZCAKKyAgICAgICAgdG8gcHJldmVu
dCBhIHNvcnQgb2YgInVzZSBhZnRlciBmcmVlIiBzaXR1YXRpb24uIEFzIGEgZmlyc3QgY3V0IHdl
IHNob3VsZCBzdXBwb3J0IGEgCisgICAgICAgIG1vZGUgdGhhdCBqdXN0IHNjcmliYmxlcyBvbiBv
YmplY3RzIHByaW9yIHRvIHRoZWlyIGJlaW5nIHJldXNlZCAoaS5lLiB3aGlsZSB0aGV5IGFyZSAK
KyAgICAgICAgInpvbWJpZXMiKSBhbmQgYSBtb2RlIGluIHdoaWNoLCBpbiBhZGRpdGlvbiB0byBz
Y3JpYmJsaW5nIG9uIHpvbWJpZXMsIG9uY2UgYW4gb2JqZWN0IAorICAgICAgICBoYXMgYmVlbiBt
YXJrZWQgaXRzIG1hcmsgYml0IHdpbGwgbmV2ZXIgYmUgY2xlYXJlZCwgdGh1cyBnaXZpbmcgdXMg
ImltbW9ydGFsIiB6b21iaWVzLgorCisgICAgICAgIFRoZXNlIHR3byBtb2RlcyB3aWxsIGJlIGVu
YWJsZWQgdGhyb3VnaCB0aGUgdXNlIG9mIGVudmlyb25tZW50IHZhcmlhYmxlcy4gRm9yIG5vdyB0
aGVzZSAKKyAgICAgICAgd2lsbCBiZSAiSlNab21iaWVFbmFibGVkIiBhbmQgIkpTSW1tb3J0YWxa
b21iaWVFbmFibGVkIi4gU2V0dGluZyB0aGVtIHRvIGFueSB2YWx1ZSB3aWxsIAorICAgICAgICBy
ZXN1bHQgaW4gdGhlIHVzZSBvZiB0aGUgYXBwcm9wcmlhdGUgbW9kZS4KKworICAgICAgICAqIGhl
YXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OmNvbGxlY3QpOiBab21iaWZpZXMgZGVh
ZCBvYmplY3RzIGF0IHRoZSBlbmQgb2YgY29sbGVjdGlvbiBpZiB6b21iaWUgbW9kZSBpcyBlbmFi
bGVkLgorICAgICAgICAoWm9tYmlmeUNlbGxGdW5jdG9yKToKKyAgICAgICAgKEpTQzo6Wm9tYmlm
eUNlbGxGdW5jdG9yOjpab21iaWZ5Q2VsbEZ1bmN0b3IpOiBTZXRzIG1hcmtlZCBiaXRzIGZvciBk
ZWFkIG9iamVjdHMgaWYgaW4gaW1tb3J0YWwgbW9kZSBhbmQgd3JpdGVzIDB4YmJhZGJlZWYgaW50
byB0aGVtLgorICAgICAgICAoSlNDOjpab21iaWZ5Q2VsbEZ1bmN0b3I6Om9wZXJhdG9yKCkpOgor
ICAgICAgICAoSlNDKToKKyAgICAgICAgKFpvbWJpZnlCbG9ja0Z1bmN0b3IpOgorICAgICAgICAo
SlNDOjpab21iaWZ5QmxvY2tGdW5jdG9yOjpvcGVyYXRvcigpKToKKyAgICAgICAgKEpTQzo6SGVh
cDo6em9tYmlmeURlYWRPYmplY3RzKTogRWFnZXJseSBzd2VlcHMgc28gdGhhdCB3ZSBkb24ndCB3
cml0ZSBnYXJiYWdlIGludG8gYW4gb2JqZWN0IGJlZm9yZSBpdCAKKyAgICAgICAgaXMgZmluYWxp
emVkL2Rlc3Ryb3llZC4KKyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKEhlYXApOgor
ICAgICAgICAqIGhlYXAvTWFya2VkQmxvY2suaDoKKyAgICAgICAgKE1hcmtlZEJsb2NrKToKKyAg
ICAgICAgKEpTQzo6TWFya2VkQmxvY2s6OmZvckVhY2hEZWFkQ2VsbCk6IFVzZWQgdG8gaXRlcmF0
ZSBvdmVyIGRlYWQgY2VsbHMgYXQgdGhlIGVuZCBvZiBjb2xsZWN0aW9uIGlmIHpvbWJpZSBtb2Rl
IGlzIGVuYWJsZWQuCisgICAgICAgIChKU0MpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5j
cHA6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OmluaXRpYWxpemUpOgorICAgICAgICAqIHJ1bnRp
bWUvT3B0aW9ucy5oOgorICAgICAgICAoSlNDKToKKwogMjAxMi0wOS0wNiAgR2F2aW4gQmFycmFj
bG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgSlMgdGVzdCBzdWl0ZSBw
dXRzIGluY29ycmVjdCBsaW1pdGF0aW9ucyBvbiBGdW5jdGlvbi50b1N0cmluZygpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMTI3NzkwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1Myw2ICs3
NTMsOSBAQCB2b2lkIEhlYXA6OmNvbGxlY3QoU3dlZXBUb2dnbGUgc3dlZXBUb2dnCiAgICAgICAg
IG1fb2JqZWN0U3BhY2UucmVzZXRBbGxvY2F0b3JzKCk7CiAgICAgfQogICAgIAorICAgIGlmIChP
cHRpb25zOjp1c2Vab21iaWVNb2RlKCkpCisgICAgICAgIHpvbWJpZnlEZWFkT2JqZWN0cygpOwor
CiAgICAgc2l6ZV90IGN1cnJlbnRIZWFwU2l6ZSA9IHNpemUoKTsKICAgICBpZiAoZnVsbEdDKSB7
CiAgICAgICAgIG1fc2l6ZUFmdGVyTGFzdENvbGxlY3QgPSBjdXJyZW50SGVhcFNpemU7CkBAIC04
NDQsNCArODQ3LDQ5IEBAIHZvaWQgSGVhcDo6ZGlkU3RhcnRWTVNodXRkb3duKCkKICAgICBsYXN0
Q2hhbmNlVG9GaW5hbGl6ZSgpOwogfQogCitjbGFzcyBab21iaWZ5Q2VsbEZ1bmN0b3IgOiBwdWJs
aWMgTWFya2VkQmxvY2s6OlZvaWRGdW5jdG9yIHsKK3B1YmxpYzoKKyAgICBab21iaWZ5Q2VsbEZ1
bmN0b3Ioc2l6ZV90IGNlbGxTaXplKQorICAgICAgICA6IG1fY2VsbFNpemUoY2VsbFNpemUpCisg
ICAgeworICAgIH0KKworICAgIHZvaWQgb3BlcmF0b3IoKShKU0NlbGwqIGNlbGwpCisgICAgewor
ICAgICAgICBpZiAoT3B0aW9uczo6em9tYmllc0FyZUltbW9ydGFsKCkpCisgICAgICAgICAgICBN
YXJrZWRCbG9jazo6YmxvY2tGb3IoY2VsbCktPnNldE1hcmtlZChjZWxsKTsKKworICAgICAgICB2
b2lkKiogY3VycmVudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihjZWxsKTsKKworICAgICAg
ICAvLyBXZSB3YW50IHRvIG1haW50YWluIHphcHBlZC1uZXNzIGJlY2F1c2UgdGhhdCdzIGhvdyB3
ZSBrbm93IGlmIHdlJ3ZlIGNhbGxlZCAKKyAgICAgICAgLy8gdGhlIGRlc3RydWN0b3IuCisgICAg
ICAgIGlmIChjZWxsLT5pc1phcHBlZCgpKQorICAgICAgICAgICAgY3VycmVudCsrOworCisgICAg
ICAgIHZvaWQqIGxpbWl0ID0gc3RhdGljX2Nhc3Q8dm9pZCo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KGNlbGwpICsgbV9jZWxsU2l6ZSk7CisgICAgICAgIGZvciAoOyBjdXJyZW50IDwgbGltaXQ7
IGN1cnJlbnQrKykKKyAgICAgICAgICAgICpjdXJyZW50ID0gcmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4oMHhiYmFkYmVlZik7CisgICAgfQorCitwcml2YXRlOgorICAgIHNpemVfdCBtX2NlbGxTaXpl
OworfTsKKworY2xhc3MgWm9tYmlmeUJsb2NrRnVuY3RvciA6IHB1YmxpYyBNYXJrZWRCbG9jazo6
Vm9pZEZ1bmN0b3IgeworcHVibGljOgorICAgIHZvaWQgb3BlcmF0b3IoKShNYXJrZWRCbG9jayog
YmxvY2spCisgICAgeworICAgICAgICBab21iaWZ5Q2VsbEZ1bmN0b3IgZnVuY3RvcihibG9jay0+
Y2VsbFNpemUoKSk7CisgICAgICAgIGJsb2NrLT5mb3JFYWNoRGVhZENlbGwoZnVuY3Rvcik7Cisg
ICAgfQorfTsKKwordm9pZCBIZWFwOjp6b21iaWZ5RGVhZE9iamVjdHMoKQoreworICAgIG1fb2Jq
ZWN0U3BhY2Uuc3dlZXAoKTsKKworICAgIFpvbWJpZnlCbG9ja0Z1bmN0b3IgZnVuY3RvcjsKKyAg
ICBtX29iamVjdFNwYWNlLmZvckVhY2hCbG9jayhmdW5jdG9yKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCShyZXZpc2lvbiAxMjc3OTAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIwMyw3ICsyMDMsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBoYXJ2ZXN0V2Vh
a1JlZmVyZW5jZXMoKTsKICAgICAgICAgdm9pZCBmaW5hbGl6ZVVuY29uZGl0aW9uYWxGaW5hbGl6
ZXJzKCk7CiAgICAgICAgIHZvaWQgZGVsZXRlVW5tYXJrZWRDb21waWxlZENvZGUoKTsKLSAgICAg
ICAgCisgICAgICAgIHZvaWQgem9tYmlmeURlYWRPYmplY3RzKCk7CisgCiAgICAgICAgIFJlZ2lz
dGVyRmlsZSYgcmVnaXN0ZXJGaWxlKCk7CiAgICAgICAgIEJsb2NrQWxsb2NhdG9yJiBibG9ja0Fs
bG9jYXRvcigpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9j
ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2Nr
LmgJKHJldmlzaW9uIDEyNzc5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtl
ZEJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4Niw2ICsxODYsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICNlbmRpZgogCiAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9yPiB2b2lkIGZv
ckVhY2hDZWxsKEZ1bmN0b3ImKTsKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0b3I+
IHZvaWQgZm9yRWFjaERlYWRDZWxsKEZ1bmN0b3ImKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IHN0YXRpYyBjb25zdCBzaXplX3QgYXRvbUFsaWdubWVudE1hc2sgPSBhdG9tU2l6ZSAtIDE7IC8v
IGF0b21TaXplIG11c3QgYmUgYSBwb3dlciBvZiB0d28uCkBAIC00MTcsNiArNDE4LDE3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICB9CiAgICAgfQogCisgICAgdGVtcGxhdGUgPHR5cGVuYW1l
IEZ1bmN0b3I+IGlubGluZSB2b2lkIE1hcmtlZEJsb2NrOjpmb3JFYWNoRGVhZENlbGwoRnVuY3Rv
ciYgZnVuY3RvcikKKyAgICB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSBmaXJzdEF0b20oKTsg
aSA8IG1fZW5kQXRvbTsgaSArPSBtX2F0b21zUGVyQ2VsbCkgeworICAgICAgICAgICAgSlNDZWxs
KiBjZWxsID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8SlNDZWxsKj4oJmF0b21zKClbaV0pOworICAg
ICAgICAgICAgaWYgKGlzTGl2ZShjZWxsKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKwor
ICAgICAgICAgICAgZnVuY3RvcihjZWxsKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlubGlu
ZSBib29sIE1hcmtlZEJsb2NrOjpuZWVkc1N3ZWVwaW5nKCkKICAgICB7CiAgICAgICAgIHJldHVy
biBtX3N0YXRlID09IE1hcmtlZCB8fCBtX3N0YXRlID09IFphcHBlZDsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCShyZXZpc2lvbiAxMjc3OTApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTQ2LDYgKzE0NiwxMSBAQCB2b2lkIE9wdGlvbnM6OmluaXRpYWxpemUoKQogICAgIHVzZVJl
Z0V4cEpJVCgpID0gZmFsc2U7CiAjZW5kaWYKIAorI2lmIFVTRShDRikgfHwgT1MoVU5JWCkKKyAg
ICB6b21iaWVzQXJlSW1tb3J0YWwoKSA9ICEhZ2V0ZW52KCJKU0ltbW9ydGFsWm9tYmllRW5hYmxl
ZCIpOworICAgIHVzZVpvbWJpZU1vZGUoKSA9IHpvbWJpZXNBcmVJbW1vcnRhbCgpIHx8ICEhZ2V0
ZW52KCJKU1pvbWJpZUVuYWJsZWQiKTsKKyNlbmRpZgorCiAgICAgLy8gRG8gcmFuZ2UgY2hlY2tz
IHdoZXJlIG5lZWRlZCBhbmQgbWFrZSBjb3JyZWN0aW9ucyB0byB0aGUgb3B0aW9uczoKICAgICBB
U1NFUlQodGhyZXNob2xkRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAoKSA+PSB0aHJlc2hvbGRG
b3JPcHRpbWl6ZUFmdGVyV2FybVVwKCkpOwogICAgIEFTU0VSVCh0aHJlc2hvbGRGb3JPcHRpbWl6
ZUFmdGVyV2FybVVwKCkgPj0gdGhyZXNob2xkRm9yT3B0aW1pemVTb29uKCkpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMTI3NzkwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTgsNyArMTE4LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHYodW5zaWduZWQsIG9wYXF1
ZVJvb3RNZXJnZVRocmVzaG9sZCwgMTAwMCkgXAogICAgIFwKICAgICB2KGJvb2wsIGZvcmNlV2Vh
a1JhbmRvbVNlZWQsIGZhbHNlKSBcCi0gICAgdih1bnNpZ25lZCwgZm9yY2VkV2Vha1JhbmRvbVNl
ZWQsIDApCisgICAgdih1bnNpZ25lZCwgZm9yY2VkV2Vha1JhbmRvbVNlZWQsIDApIFwKKyAgICBc
CisgICAgdihib29sLCB1c2Vab21iaWVNb2RlLCBmYWxzZSkgXAorICAgIHYoYm9vbCwgem9tYmll
c0FyZUltbW9ydGFsLCBmYWxzZSkgCiAKIAogY2xhc3MgT3B0aW9ucyB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>