<?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>129920</bug_id>
          
          <creation_ts>2014-03-07 14:34:59 -0800</creation_ts>
          <short_desc>MarkedBlocks that are &quot;full enough&quot; shouldn&apos;t be swept after EdenCollections</short_desc>
          <delta_ts>2014-03-12 09:22:19 -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>ggaren</cc>
    
    <cc>jer.noble</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>988355</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-03-07 14:34:59 -0800</bug_when>
    <thetext>Imagine a Heap this is completely full after an EdenCollection. The next allocation could potentially walk every atom of every MarkedBlock that its MarkedAllocator has. To avoid this situation we should ignore MarkedBlocks that are &quot;full enough&quot; so we can avoid this linear cost sweep phase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989463</commentid>
    <comment_count>1</comment_count>
      <attachid>226449</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-03-11 16:50:41 -0700</bug_when>
    <thetext>Created attachment 226449
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989482</commentid>
    <comment_count>2</comment_count>
      <attachid>226458</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-03-11 18:19:38 -0700</bug_when>
    <thetext>Created attachment 226458
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989485</commentid>
    <comment_count>3</comment_count>
      <attachid>226458</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-03-11 18:28:39 -0700</bug_when>
    <thetext>Comment on attachment 226458
Patch

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

r=me

&gt; Source/JavaScriptCore/heap/MarkedSpace.cpp:-317
&gt; -#ifndef NDEBUG
&gt; -    VerifyNewlyAllocated verifyFunctor;
&gt; -    forEachBlock(verifyFunctor);
&gt; -#endif

Why no verify?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989488</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-03-11 18:33:01 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 226458 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=226458&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/heap/MarkedSpace.cpp:-317
&gt; &gt; -#ifndef NDEBUG
&gt; &gt; -    VerifyNewlyAllocated verifyFunctor;
&gt; &gt; -    forEachBlock(verifyFunctor);
&gt; &gt; -#endif
&gt; 
&gt; Why no verify?

I can undo that one. In an older version of the patch I was using m_newlyAllocated but no longer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989493</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-03-11 18:46:33 -0700</bug_when>
    <thetext>Committed r165458: &lt;http://trac.webkit.org/changeset/165458&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989652</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-03-12 09:22:19 -0700</bug_when>
    <thetext>This commit may have caused the fast/workers/worker-gc.html test to begin crashing &lt;https://bugs.webkit.org/show_bug.cgi?id=130135&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226449</attachid>
            <date>2014-03-11 16:50:41 -0700</date>
            <delta_ts>2014-03-11 18:19:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129920-20140311164555.patch</filename>
            <type>text/plain</type>
            <size>12647</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY1NDU0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDE0LTAzLTExICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgTWFya2VkQmxvY2tzIHRoYXQgYXJlICJmdWxsIGVub3VnaCIgc2hvdWxkbid0IGJl
IHN3ZXB0IGFmdGVyIEVkZW5Db2xsZWN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5OTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBub3Rpb24gb2Yg
InJldGlyaW5nIiBNYXJrZWRCbG9ja3MuIFdlIHJldGlyZSBhIE1hcmtlZEJsb2NrCisgICAgICAg
IHdoZW4gdGhlIGFtb3VudCBvZiBmcmVlIHNwYWNlIGluIGEgTWFya2VkQmxvY2sgZHJvcHMgYmVs
b3cgYSBjZXJ0YWluIHRocmVzaG9sZC4KKyAgICAgICAgUmV0aXJlZCBibG9ja3MgYXJlIG5vdCBj
b25zaWRlcmVkIGZvciBzd2VlcGluZy4KKworICAgICAgICBUaGlzIGlzIHByb2ZpdGFibGUgYmVj
YXVzZSBpdCByZWR1Y2VzIGNodXJuIGR1cmluZyBzd2VlcGluZy4gVG8gYnVpbGQgYSBmcmVlIGxp
c3QsIAorICAgICAgICB3ZSBoYXZlIHRvIHNjYW4gdGhyb3VnaCBlYWNoIGNlbGwgaW4gYSBibG9j
ay4gQWZ0ZXIgYSBjb2xsZWN0aW9uLCBhbGwgb2JqZWN0cyB0aGF0IAorICAgICAgICBhcmUgbGl2
ZSBpbiB0aGUgYmxvY2sgd2lsbCByZW1haW4gbGl2ZSB1bnRpbCB0aGUgbmV4dCBGdWxsQ29sbGVj
dGlvbiwgYXQgd2hpY2ggdGltZQorICAgICAgICB3ZSB1bi1yZXRpcmUgYWxsIHByZXZpb3VzbHkg
cmV0aXJlZCBibG9ja3MuIFRodXMsIGEgc21hbGwgbnVtYmVyIG9mIG9iamVjdHMgaW4gYSBibG9j
aworICAgICAgICB0aGF0IGRpZSBkdXJpbmcgZWFjaCBFZGVuQ29sbGVjdGlvbiBjb3VsZCBjYXVz
ZSB1cyB0byBkbyBhIGRpc3Byb3BvcnRpYW50ZSBhbW91bnQgb2YgCisgICAgICAgIHN3ZWVwaW5n
IGZvciBob3cgbXVjaCBmcmVlIG1lbW9yeSB3ZSBnZXQgYmFjay4KKworICAgICAgICBUaGlzIHBh
dGNoIGxvb2tzIGxpa2UgYSBjb25zaXN0ZW50IH4yJSBwcm9ncmVzc2lvbiBvbiBib3llciBhbmQg
aXMgbmV1dHJhbCBldmVyeXdoZXJlIGVsc2UuCisKKyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKyAg
ICAgICAgKEpTQzo6SGVhcDo6ZGlkUmV0aXJlQmxvY2tXaXRoRnJlZUxpc3RTaXplKToKKyAgICAg
ICAgKiBoZWFwL01hcmtlZEFsbG9jYXRvci5jcHA6CisgICAgICAgIChKU0M6Ok1hcmtlZEFsbG9j
YXRvcjo6dHJ5QWxsb2NhdGVIZWxwZXIpOgorICAgICAgICAoSlNDOjpNYXJrZWRBbGxvY2F0b3I6
OnJlbW92ZUJsb2NrKToKKyAgICAgICAgKEpTQzo6TWFya2VkQWxsb2NhdG9yOjpyZXNldCk6Cisg
ICAgICAgICogaGVhcC9NYXJrZWRBbGxvY2F0b3IuaDoKKyAgICAgICAgKEpTQzo6TWFya2VkQWxs
b2NhdG9yOjpNYXJrZWRBbGxvY2F0b3IpOgorICAgICAgICAoSlNDOjpNYXJrZWRBbGxvY2F0b3I6
OmZvckVhY2hCbG9jayk6CisgICAgICAgICogaGVhcC9NYXJrZWRCbG9jay5jcHA6CisgICAgICAg
IChKU0M6Ok1hcmtlZEJsb2NrOjpzd2VlcEhlbHBlcik6CisgICAgICAgIChKU0M6Ok1hcmtlZEJs
b2NrOjpjbGVhck1hcmtzV2l0aENvbGxlY3Rpb25UeXBlKToKKyAgICAgICAgKEpTQzo6TWFya2Vk
QmxvY2s6OmRpZFJldGlyZUJsb2NrKToKKyAgICAgICAgKiBoZWFwL01hcmtlZEJsb2NrLmg6Cisg
ICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjp3aWxsUmVtb3ZlQmxvY2spOgorICAgICAgICAoSlND
OjpNYXJrZWRCbG9jazo6aXNMaXZlKToKKyAgICAgICAgKiBoZWFwL01hcmtlZFNwYWNlLmNwcDoK
KyAgICAgICAgKEpTQzo6TWFya2VkU3BhY2U6OmNsZWFyTmV3bHlBbGxvY2F0ZWQpOgorICAgICAg
ICAoSlNDOjpNYXJrZWRTcGFjZTo6Y2xlYXJNYXJrcyk6CisgICAgICAgICogcnVudGltZS9PcHRp
b25zLmg6CisKIDIwMTQtMDMtMTEgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgog
CiAgICAgICAgIFN0cmVhbWxpbmUgUHJvcGVydHlUYWJsZSBmb3IgbG9va3VwLW9ubHkgYWNjZXNz
LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkocmV2aXNpb24gMTY1NDU0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUs
NiArMTU1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgdm9pZCByZXBvcnRFeHRyYU1l
bW9yeUNvc3Qoc2l6ZV90IGNvc3QpOwogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHJl
cG9ydEFiYW5kb25lZE9iamVjdEdyYXBoKCk7CisgICAgICAgIHZvaWQgZGlkUmV0aXJlQmxvY2tX
aXRoRnJlZUxpc3RTaXplKHNpemVfdCBieXRlcyk7CiAKICAgICAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBwcm90ZWN0KEpTVmFsdWUpOwogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBib29s
IHVucHJvdGVjdChKU1ZhbHVlKTsgLy8gVHJ1ZSB3aGVuIHRoZSBwcm90ZWN0IGNvdW50IGRyb3Bz
IHRvIDAuCkBAIC00NTAsNiArNDUxLDIyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAg
cmVwb3J0RXh0cmFNZW1vcnlDb3N0U2xvd0Nhc2UoY29zdCk7CiAgICAgfQogCisgICAgaW5saW5l
IHZvaWQgSGVhcDo6ZGlkUmV0aXJlQmxvY2tXaXRoRnJlZUxpc3RTaXplKHNpemVfdCBieXRlcykK
KyAgICB7CisgICAgICAgIC8vIFdlIGNhbiB0aGluayBvZiByZXRpcmluZyBhIE1hcmtlZEJsb2Nr
IGFzIGV4aGF1c3RpbmcgdGhlIHJlc3Qgb2YgaXRzCisgICAgICAgIC8vIGZyZWUgbGlzdCB3aXRo
IG9iamVjdHMgdGhhdCB3aWxsIGJlIGNvbnNpZGVyZWQgImxpdmUiIGF0IHRoZSBuZXh0IEVkZW5D
b2xsZWN0aW9uLgorICAgICAgICAvLyBUbyBlbmFibGUgdGhlIGNvbGxlY3RvciB0byBjb3JyZWN0
bHkgYWNjb3VudCBmb3IgdGhlc2UgdW51c2FibGUgYnl0ZXMsCisgICAgICAgIC8vIHdlIHJlcG9y
dCB0aGVtIGhlcmUgYXMgaWYgd2UgaGFkIGFscmVhZHkgdmlzaXRlZCB0aGVtLgorICAgICAgICAv
LworICAgICAgICAvLyAtIElmIHRoZSBuZXh0IGNvbGxlY3Rpb24gZW5kcyB1cCBiZWluZyBhIEZ1
bGxDb2xsZWN0aW9uLCB3ZSB3aWxsIHVuLXJldGlyZSAKKyAgICAgICAgLy8gYWxsIG9mIHRoZSBy
ZXRpcmVkIGJsb2NrcyBhbnl3YXlzLCByZS12aXNpdCB0aGVtLCBhbmQgb3ZlcndyaXRlIHRoZSBv
bGQgCisgICAgICAgIC8vIG1fdG90YWxCeXRlc1Zpc2l0ZWQgdmFsdWUuCisgICAgICAgIC8vCisg
ICAgICAgIC8vIC0gSWYgdGhlIG5leHQgY29sbGVjdGlvbiBpcyBhbiBFZGVuQ29sbGVjdGlvbiwg
d2Ugd2lsbCBjb3JyZWN0bHkgcmVwb3J0IHRoZSBhbW91bnQKKyAgICAgICAgLy8gb2YgdXNhYmxl
IHZzLiB1bnVzYWJsZSBtZW1vcnkgaW4gdGhlIEhlYXAgZm9yIHRoZSBwdXJwb3NlIG9mIHVwZGF0
aW5nIGFsbG9jYXRpb24gbGltaXRzLgorICAgICAgICBtX3RvdGFsQnl0ZXNWaXNpdGVkICs9IGJ5
dGVzOworICAgIH0KKwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IGlubGluZSB0eXBl
bmFtZSBGdW5jdG9yOjpSZXR1cm5UeXBlIEhlYXA6OmZvckVhY2hQcm90ZWN0ZWRDZWxsKEZ1bmN0
b3ImIGZ1bmN0b3IpCiAgICAgewogICAgICAgICBmb3IgKGF1dG8mIHBhaXIgOiBtX3Byb3RlY3Rl
ZFZhbHVlcykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEFsbG9jYXRv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQWxs
b2NhdG9yLmNwcAkocmV2aXNpb24gMTY1NDU0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvTWFya2VkQWxsb2NhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksMTIgKzc5LDEyIEBA
IGlubGluZSB2b2lkKiBNYXJrZWRBbGxvY2F0b3I6OnRyeUFsbG9jYXQKIAogICAgICAgICAgICAg
TWFya2VkQmxvY2s6OkZyZWVMaXN0IGZyZWVMaXN0ID0gYmxvY2stPnN3ZWVwKE1hcmtlZEJsb2Nr
OjpTd2VlcFRvRnJlZUxpc3QpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIWZyZWVM
aXN0LmhlYWQpIHsKLSAgICAgICAgICAgICAgICBibG9jay0+ZGlkQ29uc3VtZUVtcHR5RnJlZUxp
c3QoKTsKKyAgICAgICAgICAgIGRvdWJsZSB1dGlsaXphdGlvbiA9ICgoZG91YmxlKU1hcmtlZEJs
b2NrOjpibG9ja1NpemUgLSAoZG91YmxlKWZyZWVMaXN0LmJ5dGVzKSAvIChkb3VibGUpTWFya2Vk
QmxvY2s6OmJsb2NrU2l6ZTsKKyAgICAgICAgICAgIGlmICh1dGlsaXphdGlvbiA+PSBPcHRpb25z
OjptaW5NYXJrZWRCbG9ja1V0aWxpemF0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQo
ZnJlZUxpc3QuYnl0ZXMgfHwgIWZyZWVMaXN0LmhlYWQpOwogICAgICAgICAgICAgICAgIG1fYmxv
Y2tMaXN0LnJlbW92ZShibG9jayk7Ci0gICAgICAgICAgICAgICAgbV9ibG9ja0xpc3QucHVzaChi
bG9jayk7Ci0gICAgICAgICAgICAgICAgaWYgKCFtX2xhc3RGdWxsQmxvY2spCi0gICAgICAgICAg
ICAgICAgICAgIG1fbGFzdEZ1bGxCbG9jayA9IGJsb2NrOworICAgICAgICAgICAgICAgIG1fcmV0
aXJlZEJsb2Nrcy5wdXNoKGJsb2NrKTsKKyAgICAgICAgICAgICAgICBibG9jay0+ZGlkUmV0aXJl
QmxvY2soZnJlZUxpc3QpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAg
fQogCkBAIC0yMTEsOSArMjExLDcgQEAgdm9pZCBNYXJrZWRBbGxvY2F0b3I6OnJlbW92ZUJsb2Nr
KE1hcmtlZAogICAgIGlmIChtX25leHRCbG9ja1RvU3dlZXAgPT0gYmxvY2spCiAgICAgICAgIG1f
bmV4dEJsb2NrVG9Td2VlcCA9IG1fbmV4dEJsb2NrVG9Td2VlcC0+bmV4dCgpOwogCi0gICAgaWYg
KGJsb2NrID09IG1fbGFzdEZ1bGxCbG9jaykKLSAgICAgICAgbV9sYXN0RnVsbEJsb2NrID0gbV9s
YXN0RnVsbEJsb2NrLT5wcmV2KCk7Ci0gICAgCisgICAgYmxvY2stPndpbGxSZW1vdmVCbG9jaygp
OwogICAgIG1fYmxvY2tMaXN0LnJlbW92ZShibG9jayk7CiB9CiAKQEAgLTIyMywxMiArMjIxLDkg
QEAgdm9pZCBNYXJrZWRBbGxvY2F0b3I6OnJlc2V0KCkKICAgICBtX2N1cnJlbnRCbG9jayA9IDA7
CiAgICAgbV9mcmVlTGlzdCA9IE1hcmtlZEJsb2NrOjpGcmVlTGlzdCgpOwogICAgIGlmIChtX2hl
YXAtPm9wZXJhdGlvbkluUHJvZ3Jlc3MoKSA9PSBGdWxsQ29sbGVjdGlvbikKLSAgICAgICAgbV9s
YXN0RnVsbEJsb2NrID0gMDsKKyAgICAgICAgbV9ibG9ja0xpc3QuYXBwZW5kKG1fcmV0aXJlZEJs
b2Nrcyk7CiAKLSAgICBpZiAobV9sYXN0RnVsbEJsb2NrKQotICAgICAgICBtX25leHRCbG9ja1Rv
U3dlZXAgPSBtX2xhc3RGdWxsQmxvY2stPm5leHQoKSA/IG1fbGFzdEZ1bGxCbG9jay0+bmV4dCgp
IDogbV9sYXN0RnVsbEJsb2NrOwotICAgIGVsc2UKLSAgICAgICAgbV9uZXh0QmxvY2tUb1N3ZWVw
ID0gbV9ibG9ja0xpc3QuaGVhZCgpOworICAgIG1fbmV4dEJsb2NrVG9Td2VlcCA9IG1fYmxvY2tM
aXN0LmhlYWQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYXJrZWRBbGxvY2F0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRBbGxvY2F0b3IuaAkocmV2aXNpb24gMTY1NDU0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQWxsb2NhdG9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU0LDggKzU0LDggQEAgcHJpdmF0ZToKICAgICBNYXJrZWRCbG9jayogbV9jdXJyZW50
QmxvY2s7CiAgICAgTWFya2VkQmxvY2sqIG1fbGFzdEFjdGl2ZUJsb2NrOwogICAgIE1hcmtlZEJs
b2NrKiBtX25leHRCbG9ja1RvU3dlZXA7Ci0gICAgTWFya2VkQmxvY2sqIG1fbGFzdEZ1bGxCbG9j
azsKICAgICBEb3VibHlMaW5rZWRMaXN0PE1hcmtlZEJsb2NrPiBtX2Jsb2NrTGlzdDsKKyAgICBE
b3VibHlMaW5rZWRMaXN0PE1hcmtlZEJsb2NrPiBtX3JldGlyZWRCbG9ja3M7CiAgICAgc2l6ZV90
IG1fY2VsbFNpemU7CiAgICAgTWFya2VkQmxvY2s6OkRlc3RydWN0b3JUeXBlIG1fZGVzdHJ1Y3Rv
clR5cGU7CiAgICAgSGVhcCogbV9oZWFwOwpAQCAtNzEsNyArNzEsNiBAQCBpbmxpbmUgTWFya2Vk
QWxsb2NhdG9yOjpNYXJrZWRBbGxvY2F0b3IoCiAgICAgOiBtX2N1cnJlbnRCbG9jaygwKQogICAg
ICwgbV9sYXN0QWN0aXZlQmxvY2soMCkKICAgICAsIG1fbmV4dEJsb2NrVG9Td2VlcCgwKQotICAg
ICwgbV9sYXN0RnVsbEJsb2NrKDApCiAgICAgLCBtX2NlbGxTaXplKDApCiAgICAgLCBtX2Rlc3Ry
dWN0b3JUeXBlKE1hcmtlZEJsb2NrOjpOb25lKQogICAgICwgbV9oZWFwKDApCkBAIC0xMzYsNiAr
MTM1LDExIEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9yPiBpbmxpbmUgdm9pZCAKICAgICAg
ICAgbmV4dCA9IGJsb2NrLT5uZXh0KCk7CiAgICAgICAgIGZ1bmN0b3IoYmxvY2spOwogICAgIH0K
KworICAgIGZvciAoTWFya2VkQmxvY2sqIGJsb2NrID0gbV9yZXRpcmVkQmxvY2tzLmhlYWQoKTsg
YmxvY2s7IGJsb2NrID0gbmV4dCkgeworICAgICAgICBuZXh0ID0gYmxvY2stPm5leHQoKTsKKyAg
ICAgICAgZnVuY3RvcihibG9jayk7CisgICAgfQogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAJKHJldmlzaW9u
IDE2NTQ1NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTI5LDYgKzEyOSw3IEBAIE1hcmtlZEJsb2NrOjpGcmVlTGlzdCBN
YXJrZWRCbG9jazo6c3dlZXAKICAgICAgICAgLy8gSGFwcGVucyB3aGVuIGEgYmxvY2sgdHJhbnNp
dGlvbnMgdG8gZnVsbHkgYWxsb2NhdGVkLgogICAgICAgICBBU1NFUlQoc3dlZXBNb2RlID09IFN3
ZWVwVG9GcmVlTGlzdCk7CiAgICAgICAgIHJldHVybiBGcmVlTGlzdCgpOworICAgIGNhc2UgUmV0
aXJlZDoKICAgICBjYXNlIEFsbG9jYXRlZDoKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICAgICAgcmV0dXJuIEZyZWVMaXN0KCk7CkBAIC0yMjYsMTEgKzIyNywxNiBA
QCB2b2lkIE1hcmtlZEJsb2NrOjpjbGVhck1hcmtzV2l0aENvbGxlY3RpCiAjaWYgRU5BQkxFKEdH
QykKICAgICAgICAgbV9yZW1lbWJlcmVkU2V0LmNsZWFyQWxsKCk7CiAjZW5kaWYKKyAgICAgICAg
Ly8gVGhpcyB3aWxsIGJlY29tZSB0cnVlIGF0IHRoZSBlbmQgb2YgdGhlIG1hcmsgcGhhc2UuIFdl
IHNldCBpdCBub3cgdG8KKyAgICAgICAgLy8gYXZvaWQgYW4gZXh0cmEgcGFzcyB0byBkbyBzbyBs
YXRlci4KKyAgICAgICAgbV9zdGF0ZSA9IE1hcmtlZDsKKyAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIC8vIFRoaXMgd2lsbCBiZWNvbWUgdHJ1ZSBhdCB0aGUgZW5kIG9mIHRoZSBtYXJrIHBo
YXNlLiBXZSBzZXQgaXQgbm93IHRvCi0gICAgLy8gYXZvaWQgYW4gZXh0cmEgcGFzcyB0byBkbyBz
byBsYXRlci4KLSAgICBtX3N0YXRlID0gTWFya2VkOworICAgIEFTU0VSVChjb2xsZWN0aW9uVHlw
ZSA9PSBFZGVuQ29sbGVjdGlvbik7CisgICAgLy8gSWYgYSBibG9jayB3YXMgcmV0aXJlZCB0aGVu
IHRoZXJlJ3Mgbm8gd2F5IGFuIEVkZW5Db2xsZWN0aW9uIGNhbiB1bi1yZXRpcmUgaXQuCisgICAg
aWYgKG1fc3RhdGUgIT0gUmV0aXJlZCkKKyAgICAgICAgbV9zdGF0ZSA9IE1hcmtlZDsKIH0KIAog
dm9pZCBNYXJrZWRCbG9jazo6bGFzdENoYW5jZVRvRmluYWxpemUoKQpAQCAtMjU4LDQgKzI2NCwy
MyBAQCBNYXJrZWRCbG9jazo6RnJlZUxpc3QgTWFya2VkQmxvY2s6OnJlc3VtCiAgICAgcmV0dXJu
IHN3ZWVwKFN3ZWVwVG9GcmVlTGlzdCk7CiB9CiAKK3ZvaWQgTWFya2VkQmxvY2s6OmRpZFJldGly
ZUJsb2NrKGNvbnN0IEZyZWVMaXN0JiBmcmVlTGlzdCkKK3sKKyAgICBIRUFQX0xPR19CTE9DS19T
VEFURV9UUkFOU0lUSU9OKHRoaXMpOworICAgIEZyZWVDZWxsKiBoZWFkID0gZnJlZUxpc3QuaGVh
ZDsKKworICAgIGhlYXAoKS0+ZGlkUmV0aXJlQmxvY2tXaXRoRnJlZUxpc3RTaXplKGZyZWVMaXN0
LmJ5dGVzKTsKKworICAgIC8vIFdlIG5lZWQgdG8gemFwIHRoZSBmcmVlIGxpc3Qgd2hlbiByZXRp
cmluZyBhIGJsb2NrIHNvIHRoYXQgd2UgZG9uJ3QgdHJ5IHRvIGRlc3Ryb3kgcHJldmlvdXNseQor
ICAgIC8vIGRlc3Ryb3llZCBvYmplY3RzIHdoZW4gd2UgcmUtc3dlZXAgdGhlIGJsb2NrIGluIHRo
ZSBmdXR1cmUuCisgICAgRnJlZUNlbGwqIG5leHQ7CisgICAgZm9yIChGcmVlQ2VsbCogY3VycmVu
dCA9IGhlYWQ7IGN1cnJlbnQ7IGN1cnJlbnQgPSBuZXh0KSB7CisgICAgICAgIG5leHQgPSBjdXJy
ZW50LT5uZXh0OworICAgICAgICByZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KGN1cnJlbnQpLT56
YXAoKTsKKyAgICB9CisKKyAgICBBU1NFUlQobV9zdGF0ZSA9PSBNYXJrZWQpOworICAgIG1fc3Rh
dGUgPSBSZXRpcmVkOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAkocmV2aXNpb24gMTY1NDU0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMTc3
LDYgKzE3Nyw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGNsZWFyTmV3bHlBbGxv
Y2F0ZWQoY29uc3Qgdm9pZCopOwogCiAgICAgICAgIGJvb2wgbmVlZHNTd2VlcGluZygpOworICAg
ICAgICB2b2lkIGRpZFJldGlyZUJsb2NrKGNvbnN0IEZyZWVMaXN0Jik7CisgICAgICAgIHZvaWQg
d2lsbFJlbW92ZUJsb2NrKCk7CiAKICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0b3I+
IHZvaWQgZm9yRWFjaENlbGwoRnVuY3RvciYpOwogICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
RnVuY3Rvcj4gdm9pZCBmb3JFYWNoTGl2ZUNlbGwoRnVuY3RvciYpOwpAQCAtMTg3LDcgKzE4OSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByaXZhdGU6CiAgICAgICAgIHN0YXRpYyBjb25zdCBz
aXplX3QgYXRvbUFsaWdubWVudE1hc2sgPSBhdG9tU2l6ZSAtIDE7IC8vIGF0b21TaXplIG11c3Qg
YmUgYSBwb3dlciBvZiB0d28uCiAKLSAgICAgICAgZW51bSBCbG9ja1N0YXRlIHsgTmV3LCBGcmVl
TGlzdGVkLCBBbGxvY2F0ZWQsIE1hcmtlZCB9OworICAgICAgICBlbnVtIEJsb2NrU3RhdGUgeyBO
ZXcsIEZyZWVMaXN0ZWQsIEFsbG9jYXRlZCwgTWFya2VkLCBSZXRpcmVkIH07CiAgICAgICAgIHRl
bXBsYXRlPERlc3RydWN0b3JUeXBlPiBGcmVlTGlzdCBzd2VlcEhlbHBlcihTd2VlcE1vZGUgPSBT
d2VlcE9ubHkpOwogCiAgICAgICAgIHR5cGVkZWYgY2hhciBBdG9tW2F0b21TaXplXTsKQEAgLTI4
Miw2ICsyODQsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIG1fd2Vha1NldC5yZWFwKCk7
CiAgICAgfQogCisgICAgaW5saW5lIHZvaWQgTWFya2VkQmxvY2s6OndpbGxSZW1vdmVCbG9jaygp
CisgICAgeworICAgICAgICBBU1NFUlQobV9zdGF0ZSAhPSBSZXRpcmVkKTsKKyAgICB9CisKICAg
ICBpbmxpbmUgdm9pZCBNYXJrZWRCbG9jazo6ZGlkQ29uc3VtZUZyZWVMaXN0KCkKICAgICB7CiAg
ICAgICAgIEhFQVBfTE9HX0JMT0NLX1NUQVRFX1RSQU5TSVRJT04odGhpcyk7CkBAIC00MDUsNiAr
NDEyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGNhc2UgQWxsb2NhdGVkOgogICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICAgICAgY2FzZSBSZXRpcmVkOgogICAgICAgICBjYXNl
IE1hcmtlZDoKICAgICAgICAgICAgIHJldHVybiBtX21hcmtzLmdldChhdG9tTnVtYmVyKGNlbGwp
KSB8fCAobV9uZXdseUFsbG9jYXRlZCAmJiBpc05ld2x5QWxsb2NhdGVkKGNlbGwpKTsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNwcAkocmV2aXNpb24g
MTY1NDU0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yODMsMTIgKzI4Myw2IEBAIHN0cnVjdCBDbGVhck5ld2x5QWxsb2Nh
dGVkIDogTWFya2VkQmxvY2sKICAgICB2b2lkIG9wZXJhdG9yKCkoTWFya2VkQmxvY2sqIGJsb2Nr
KSB7IGJsb2NrLT5jbGVhck5ld2x5QWxsb2NhdGVkKCk7IH0KIH07CiAKLSNpZm5kZWYgTkRFQlVH
Ci1zdHJ1Y3QgVmVyaWZ5TmV3bHlBbGxvY2F0ZWQgOiBNYXJrZWRCbG9jazo6Vm9pZEZ1bmN0b3Ig
ewotICAgIHZvaWQgb3BlcmF0b3IoKShNYXJrZWRCbG9jayogYmxvY2spIHsgQVNTRVJUKCFibG9j
ay0+Y2xlYXJOZXdseUFsbG9jYXRlZCgpKTsgfQotfTsKLSNlbmRpZgotCiB2b2lkIE1hcmtlZFNw
YWNlOjpjbGVhck5ld2x5QWxsb2NhdGVkKCkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHByZWNpc2VDb3VudDsgKytpKSB7CkBAIC0zMTAsMTkgKzMwNCw4IEBAIHZvaWQgTWFya2VkU3Bh
Y2U6OmNsZWFyTmV3bHlBbGxvY2F0ZWQoKQogICAgIG1fbm9ybWFsU3BhY2UubGFyZ2VBbGxvY2F0
b3IuZm9yRWFjaEJsb2NrKGZ1bmN0b3IpOwogICAgIG1fbm9ybWFsRGVzdHJ1Y3RvclNwYWNlLmxh
cmdlQWxsb2NhdG9yLmZvckVhY2hCbG9jayhmdW5jdG9yKTsKICAgICBtX2ltbW9ydGFsU3RydWN0
dXJlRGVzdHJ1Y3RvclNwYWNlLmxhcmdlQWxsb2NhdG9yLmZvckVhY2hCbG9jayhmdW5jdG9yKTsK
LQotI2lmbmRlZiBOREVCVUcKLSAgICBWZXJpZnlOZXdseUFsbG9jYXRlZCB2ZXJpZnlGdW5jdG9y
OwotICAgIGZvckVhY2hCbG9jayh2ZXJpZnlGdW5jdG9yKTsKLSNlbmRpZgogfQogCi0jaWZuZGVm
IE5ERUJVRwotc3RydWN0IFZlcmlmeU1hcmtlZCA6IE1hcmtlZEJsb2NrOjpWb2lkRnVuY3RvciB7
Ci0gICAgdm9pZCBvcGVyYXRvcigpKE1hcmtlZEJsb2NrKiBibG9jaykgeyBBU1NFUlQoYmxvY2st
Pm5lZWRzU3dlZXBpbmcoKSk7IH0KLX07Ci0jZW5kaWYKLQogdm9pZCBNYXJrZWRTcGFjZTo6Y2xl
YXJNYXJrcygpCiB7CiAgICAgaWYgKG1faGVhcC0+b3BlcmF0aW9uSW5Qcm9ncmVzcygpID09IEVk
ZW5Db2xsZWN0aW9uKSB7CkBAIC0zMzAsOSArMzEzLDYgQEAgdm9pZCBNYXJrZWRTcGFjZTo6Y2xl
YXJNYXJrcygpCiAgICAgICAgICAgICBtX2Jsb2Nrc1dpdGhOZXdPYmplY3RzW2ldLT5jbGVhck1h
cmtzKCk7CiAgICAgfSBlbHNlCiAgICAgICAgIGZvckVhY2hCbG9jazxDbGVhck1hcmtzPigpOwot
I2lmbmRlZiBOREVCVUcKLSAgICBmb3JFYWNoQmxvY2s8VmVyaWZ5TWFya2VkPigpOwotI2VuZGlm
CiB9CiAKIHZvaWQgTWFya2VkU3BhY2U6OndpbGxTdGFydEl0ZXJhdGluZygpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCShyZXZpc2lvbiAxNjU0NTQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIzOCw2ICsyMzgsNyBAQCB0eXBlZGVmIE9wdGlvblJhbmdlIG9wdGlvblJhbmdlOwogICAgIHYo
dW5zaWduZWQsIG9wYXF1ZVJvb3RNZXJnZVRocmVzaG9sZCwgMTAwMCkgXAogICAgIHYoZG91Ymxl
LCBtaW5IZWFwVXRpbGl6YXRpb24sIDAuOCkgXAogICAgIHYoZG91YmxlLCBtaW5Db3BpZWRCbG9j
a1V0aWxpemF0aW9uLCAwLjkpIFwKKyAgICB2KGRvdWJsZSwgbWluTWFya2VkQmxvY2tVdGlsaXph
dGlvbiwgMC45KSBcCiAgICAgXAogICAgIHYoYm9vbCwgZm9yY2VXZWFrUmFuZG9tU2VlZCwgZmFs
c2UpIFwKICAgICB2KHVuc2lnbmVkLCBmb3JjZWRXZWFrUmFuZG9tU2VlZCwgMCkgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226458</attachid>
            <date>2014-03-11 18:19:38 -0700</date>
            <delta_ts>2014-03-11 18:28:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129920-20140311181449.patch</filename>
            <type>text/plain</type>
            <size>11262</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY1NDU0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDE0LTAzLTExICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgTWFya2VkQmxvY2tzIHRoYXQgYXJlICJmdWxsIGVub3VnaCIgc2hvdWxkbid0IGJl
IHN3ZXB0IGFmdGVyIEVkZW5Db2xsZWN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5OTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBub3Rpb24gb2Yg
InJldGlyaW5nIiBNYXJrZWRCbG9ja3MuIFdlIHJldGlyZSBhIE1hcmtlZEJsb2NrCisgICAgICAg
IHdoZW4gdGhlIGFtb3VudCBvZiBmcmVlIHNwYWNlIGluIGEgTWFya2VkQmxvY2sgZHJvcHMgYmVs
b3cgYSBjZXJ0YWluIHRocmVzaG9sZC4KKyAgICAgICAgUmV0aXJlZCBibG9ja3MgYXJlIG5vdCBj
b25zaWRlcmVkIGZvciBzd2VlcGluZy4KKworICAgICAgICBUaGlzIGlzIHByb2ZpdGFibGUgYmVj
YXVzZSBpdCByZWR1Y2VzIGNodXJuIGR1cmluZyBzd2VlcGluZy4gVG8gYnVpbGQgYSBmcmVlIGxp
c3QsIAorICAgICAgICB3ZSBoYXZlIHRvIHNjYW4gdGhyb3VnaCBlYWNoIGNlbGwgaW4gYSBibG9j
ay4gQWZ0ZXIgYSBjb2xsZWN0aW9uLCBhbGwgb2JqZWN0cyB0aGF0IAorICAgICAgICBhcmUgbGl2
ZSBpbiB0aGUgYmxvY2sgd2lsbCByZW1haW4gbGl2ZSB1bnRpbCB0aGUgbmV4dCBGdWxsQ29sbGVj
dGlvbiwgYXQgd2hpY2ggdGltZQorICAgICAgICB3ZSB1bi1yZXRpcmUgYWxsIHByZXZpb3VzbHkg
cmV0aXJlZCBibG9ja3MuIFRodXMsIGEgc21hbGwgbnVtYmVyIG9mIG9iamVjdHMgaW4gYSBibG9j
aworICAgICAgICB0aGF0IGRpZSBkdXJpbmcgZWFjaCBFZGVuQ29sbGVjdGlvbiBjb3VsZCBjYXVz
ZSB1cyB0byBkbyBhIGRpc3Byb3BvcnRpYW50ZSBhbW91bnQgb2YgCisgICAgICAgIHN3ZWVwaW5n
IGZvciBob3cgbXVjaCBmcmVlIG1lbW9yeSB3ZSBnZXQgYmFjay4KKworICAgICAgICBUaGlzIHBh
dGNoIGxvb2tzIGxpa2UgYSBjb25zaXN0ZW50IH4yJSBwcm9ncmVzc2lvbiBvbiBib3llciBhbmQg
aXMgbmV1dHJhbCBldmVyeXdoZXJlIGVsc2UuCisKKyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKyAg
ICAgICAgKEpTQzo6SGVhcDo6ZGlkUmV0aXJlQmxvY2tXaXRoRnJlZUxpc3RTaXplKToKKyAgICAg
ICAgKiBoZWFwL01hcmtlZEFsbG9jYXRvci5jcHA6CisgICAgICAgIChKU0M6Ok1hcmtlZEFsbG9j
YXRvcjo6dHJ5QWxsb2NhdGVIZWxwZXIpOgorICAgICAgICAoSlNDOjpNYXJrZWRBbGxvY2F0b3I6
OnJlbW92ZUJsb2NrKToKKyAgICAgICAgKEpTQzo6TWFya2VkQWxsb2NhdG9yOjpyZXNldCk6Cisg
ICAgICAgICogaGVhcC9NYXJrZWRBbGxvY2F0b3IuaDoKKyAgICAgICAgKEpTQzo6TWFya2VkQWxs
b2NhdG9yOjpNYXJrZWRBbGxvY2F0b3IpOgorICAgICAgICAoSlNDOjpNYXJrZWRBbGxvY2F0b3I6
OmZvckVhY2hCbG9jayk6CisgICAgICAgICogaGVhcC9NYXJrZWRCbG9jay5jcHA6CisgICAgICAg
IChKU0M6Ok1hcmtlZEJsb2NrOjpzd2VlcEhlbHBlcik6CisgICAgICAgIChKU0M6Ok1hcmtlZEJs
b2NrOjpjbGVhck1hcmtzV2l0aENvbGxlY3Rpb25UeXBlKToKKyAgICAgICAgKEpTQzo6TWFya2Vk
QmxvY2s6OmRpZFJldGlyZUJsb2NrKToKKyAgICAgICAgKiBoZWFwL01hcmtlZEJsb2NrLmg6Cisg
ICAgICAgIChKU0M6Ok1hcmtlZEJsb2NrOjp3aWxsUmVtb3ZlQmxvY2spOgorICAgICAgICAoSlND
OjpNYXJrZWRCbG9jazo6aXNMaXZlKToKKyAgICAgICAgKiBoZWFwL01hcmtlZFNwYWNlLmNwcDoK
KyAgICAgICAgKEpTQzo6TWFya2VkU3BhY2U6OmNsZWFyTmV3bHlBbGxvY2F0ZWQpOgorICAgICAg
ICAoSlNDOjpNYXJrZWRTcGFjZTo6Y2xlYXJNYXJrcyk6CisgICAgICAgICogcnVudGltZS9PcHRp
b25zLmg6CisKIDIwMTQtMDMtMTEgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgog
CiAgICAgICAgIFN0cmVhbWxpbmUgUHJvcGVydHlUYWJsZSBmb3IgbG9va3VwLW9ubHkgYWNjZXNz
LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQWxsb2NhdG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRBbGxvY2F0b3Iu
Y3BwCShyZXZpc2lvbiAxNjU0NTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJr
ZWRBbGxvY2F0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSwxMiArNzksMTIgQEAgaW5saW5l
IHZvaWQqIE1hcmtlZEFsbG9jYXRvcjo6dHJ5QWxsb2NhdAogCiAgICAgICAgICAgICBNYXJrZWRC
bG9jazo6RnJlZUxpc3QgZnJlZUxpc3QgPSBibG9jay0+c3dlZXAoTWFya2VkQmxvY2s6OlN3ZWVw
VG9GcmVlTGlzdCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICghZnJlZUxpc3QuaGVh
ZCkgewotICAgICAgICAgICAgICAgIGJsb2NrLT5kaWRDb25zdW1lRW1wdHlGcmVlTGlzdCgpOwor
ICAgICAgICAgICAgZG91YmxlIHV0aWxpemF0aW9uID0gKChkb3VibGUpTWFya2VkQmxvY2s6OmJs
b2NrU2l6ZSAtIChkb3VibGUpZnJlZUxpc3QuYnl0ZXMpIC8gKGRvdWJsZSlNYXJrZWRCbG9jazo6
YmxvY2tTaXplOworICAgICAgICAgICAgaWYgKHV0aWxpemF0aW9uID49IE9wdGlvbnM6Om1pbk1h
cmtlZEJsb2NrVXRpbGl6YXRpb24oKSkgeworICAgICAgICAgICAgICAgIEFTU0VSVChmcmVlTGlz
dC5ieXRlcyB8fCAhZnJlZUxpc3QuaGVhZCk7CiAgICAgICAgICAgICAgICAgbV9ibG9ja0xpc3Qu
cmVtb3ZlKGJsb2NrKTsKLSAgICAgICAgICAgICAgICBtX2Jsb2NrTGlzdC5wdXNoKGJsb2NrKTsK
LSAgICAgICAgICAgICAgICBpZiAoIW1fbGFzdEZ1bGxCbG9jaykKLSAgICAgICAgICAgICAgICAg
ICAgbV9sYXN0RnVsbEJsb2NrID0gYmxvY2s7CisgICAgICAgICAgICAgICAgbV9yZXRpcmVkQmxv
Y2tzLnB1c2goYmxvY2spOworICAgICAgICAgICAgICAgIGJsb2NrLT5kaWRSZXRpcmVCbG9jayhm
cmVlTGlzdCk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKQEAg
LTIxMSw5ICsyMTEsNyBAQCB2b2lkIE1hcmtlZEFsbG9jYXRvcjo6cmVtb3ZlQmxvY2soTWFya2Vk
CiAgICAgaWYgKG1fbmV4dEJsb2NrVG9Td2VlcCA9PSBibG9jaykKICAgICAgICAgbV9uZXh0Qmxv
Y2tUb1N3ZWVwID0gbV9uZXh0QmxvY2tUb1N3ZWVwLT5uZXh0KCk7CiAKLSAgICBpZiAoYmxvY2sg
PT0gbV9sYXN0RnVsbEJsb2NrKQotICAgICAgICBtX2xhc3RGdWxsQmxvY2sgPSBtX2xhc3RGdWxs
QmxvY2stPnByZXYoKTsKLSAgICAKKyAgICBibG9jay0+d2lsbFJlbW92ZUJsb2NrKCk7CiAgICAg
bV9ibG9ja0xpc3QucmVtb3ZlKGJsb2NrKTsKIH0KIApAQCAtMjIzLDEyICsyMjEsOSBAQCB2b2lk
IE1hcmtlZEFsbG9jYXRvcjo6cmVzZXQoKQogICAgIG1fY3VycmVudEJsb2NrID0gMDsKICAgICBt
X2ZyZWVMaXN0ID0gTWFya2VkQmxvY2s6OkZyZWVMaXN0KCk7CiAgICAgaWYgKG1faGVhcC0+b3Bl
cmF0aW9uSW5Qcm9ncmVzcygpID09IEZ1bGxDb2xsZWN0aW9uKQotICAgICAgICBtX2xhc3RGdWxs
QmxvY2sgPSAwOworICAgICAgICBtX2Jsb2NrTGlzdC5hcHBlbmQobV9yZXRpcmVkQmxvY2tzKTsK
IAotICAgIGlmIChtX2xhc3RGdWxsQmxvY2spCi0gICAgICAgIG1fbmV4dEJsb2NrVG9Td2VlcCA9
IG1fbGFzdEZ1bGxCbG9jay0+bmV4dCgpID8gbV9sYXN0RnVsbEJsb2NrLT5uZXh0KCkgOiBtX2xh
c3RGdWxsQmxvY2s7Ci0gICAgZWxzZQotICAgICAgICBtX25leHRCbG9ja1RvU3dlZXAgPSBtX2Js
b2NrTGlzdC5oZWFkKCk7CisgICAgbV9uZXh0QmxvY2tUb1N3ZWVwID0gbV9ibG9ja0xpc3QuaGVh
ZCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL01hcmtlZEFsbG9jYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL01hcmtlZEFsbG9jYXRvci5oCShyZXZpc2lvbiAxNjU0NTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRBbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAt
NTQsOCArNTQsOCBAQCBwcml2YXRlOgogICAgIE1hcmtlZEJsb2NrKiBtX2N1cnJlbnRCbG9jazsK
ICAgICBNYXJrZWRCbG9jayogbV9sYXN0QWN0aXZlQmxvY2s7CiAgICAgTWFya2VkQmxvY2sqIG1f
bmV4dEJsb2NrVG9Td2VlcDsKLSAgICBNYXJrZWRCbG9jayogbV9sYXN0RnVsbEJsb2NrOwogICAg
IERvdWJseUxpbmtlZExpc3Q8TWFya2VkQmxvY2s+IG1fYmxvY2tMaXN0OworICAgIERvdWJseUxp
bmtlZExpc3Q8TWFya2VkQmxvY2s+IG1fcmV0aXJlZEJsb2NrczsKICAgICBzaXplX3QgbV9jZWxs
U2l6ZTsKICAgICBNYXJrZWRCbG9jazo6RGVzdHJ1Y3RvclR5cGUgbV9kZXN0cnVjdG9yVHlwZTsK
ICAgICBIZWFwKiBtX2hlYXA7CkBAIC03MSw3ICs3MSw2IEBAIGlubGluZSBNYXJrZWRBbGxvY2F0
b3I6Ok1hcmtlZEFsbG9jYXRvcigKICAgICA6IG1fY3VycmVudEJsb2NrKDApCiAgICAgLCBtX2xh
c3RBY3RpdmVCbG9jaygwKQogICAgICwgbV9uZXh0QmxvY2tUb1N3ZWVwKDApCi0gICAgLCBtX2xh
c3RGdWxsQmxvY2soMCkKICAgICAsIG1fY2VsbFNpemUoMCkKICAgICAsIG1fZGVzdHJ1Y3RvclR5
cGUoTWFya2VkQmxvY2s6Ok5vbmUpCiAgICAgLCBtX2hlYXAoMCkKQEAgLTEzNiw2ICsxMzUsMTEg
QEAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0b3I+IGlubGluZSB2b2lkIAogICAgICAgICBuZXh0
ID0gYmxvY2stPm5leHQoKTsKICAgICAgICAgZnVuY3RvcihibG9jayk7CiAgICAgfQorCisgICAg
Zm9yIChNYXJrZWRCbG9jayogYmxvY2sgPSBtX3JldGlyZWRCbG9ja3MuaGVhZCgpOyBibG9jazsg
YmxvY2sgPSBuZXh0KSB7CisgICAgICAgIG5leHQgPSBibG9jay0+bmV4dCgpOworICAgICAgICBm
dW5jdG9yKGJsb2NrKTsKKyAgICB9CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmNwcAkocmV2aXNpb24gMTY1NDU0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkQmxvY2suY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMjksNiArMTI5LDcgQEAgTWFya2VkQmxvY2s6OkZyZWVMaXN0IE1hcmtlZEJs
b2NrOjpzd2VlcAogICAgICAgICAvLyBIYXBwZW5zIHdoZW4gYSBibG9jayB0cmFuc2l0aW9ucyB0
byBmdWxseSBhbGxvY2F0ZWQuCiAgICAgICAgIEFTU0VSVChzd2VlcE1vZGUgPT0gU3dlZXBUb0Zy
ZWVMaXN0KTsKICAgICAgICAgcmV0dXJuIEZyZWVMaXN0KCk7CisgICAgY2FzZSBSZXRpcmVkOgog
ICAgIGNhc2UgQWxsb2NhdGVkOgogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4gRnJlZUxpc3QoKTsKQEAgLTIyNiwxMSArMjI3LDE2IEBAIHZvaWQg
TWFya2VkQmxvY2s6OmNsZWFyTWFya3NXaXRoQ29sbGVjdGkKICNpZiBFTkFCTEUoR0dDKQogICAg
ICAgICBtX3JlbWVtYmVyZWRTZXQuY2xlYXJBbGwoKTsKICNlbmRpZgorICAgICAgICAvLyBUaGlz
IHdpbGwgYmVjb21lIHRydWUgYXQgdGhlIGVuZCBvZiB0aGUgbWFyayBwaGFzZS4gV2Ugc2V0IGl0
IG5vdyB0bworICAgICAgICAvLyBhdm9pZCBhbiBleHRyYSBwYXNzIHRvIGRvIHNvIGxhdGVyLgor
ICAgICAgICBtX3N0YXRlID0gTWFya2VkOworICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
Ly8gVGhpcyB3aWxsIGJlY29tZSB0cnVlIGF0IHRoZSBlbmQgb2YgdGhlIG1hcmsgcGhhc2UuIFdl
IHNldCBpdCBub3cgdG8KLSAgICAvLyBhdm9pZCBhbiBleHRyYSBwYXNzIHRvIGRvIHNvIGxhdGVy
LgotICAgIG1fc3RhdGUgPSBNYXJrZWQ7CisgICAgQVNTRVJUKGNvbGxlY3Rpb25UeXBlID09IEVk
ZW5Db2xsZWN0aW9uKTsKKyAgICAvLyBJZiBhIGJsb2NrIHdhcyByZXRpcmVkIHRoZW4gdGhlcmUn
cyBubyB3YXkgYW4gRWRlbkNvbGxlY3Rpb24gY2FuIHVuLXJldGlyZSBpdC4KKyAgICBpZiAobV9z
dGF0ZSAhPSBSZXRpcmVkKQorICAgICAgICBtX3N0YXRlID0gTWFya2VkOwogfQogCiB2b2lkIE1h
cmtlZEJsb2NrOjpsYXN0Q2hhbmNlVG9GaW5hbGl6ZSgpCkBAIC0yNTgsNCArMjY0LDI3IEBAIE1h
cmtlZEJsb2NrOjpGcmVlTGlzdCBNYXJrZWRCbG9jazo6cmVzdW0KICAgICByZXR1cm4gc3dlZXAo
U3dlZXBUb0ZyZWVMaXN0KTsKIH0KIAordm9pZCBNYXJrZWRCbG9jazo6ZGlkUmV0aXJlQmxvY2so
Y29uc3QgRnJlZUxpc3QmIGZyZWVMaXN0KQoreworICAgIEhFQVBfTE9HX0JMT0NLX1NUQVRFX1RS
QU5TSVRJT04odGhpcyk7CisgICAgRnJlZUNlbGwqIGhlYWQgPSBmcmVlTGlzdC5oZWFkOworCisg
ICAgLy8gQ3VycmVudGx5IHdlIGRvbid0IG5vdGlmeSB0aGUgSGVhcCB0aGF0IHdlJ3JlIGdpdmlu
ZyB1cCBvbiB0aGlzIGJsb2NrLiAKKyAgICAvLyBUaGUgSGVhcCBtaWdodCBiZSBhYmxlIHRvIG1h
a2UgYSBiZXR0ZXIgZGVjaXNpb24gYWJvdXQgaG93IG1hbnkgYnl0ZXMgc2hvdWxkIAorICAgIC8v
IGJlIGFsbG9jYXRlZCBiZWZvcmUgdGhlIG5leHQgY29sbGVjdGlvbiBpZiBpdCBrbmV3IGFib3V0
IHRoaXMgcmV0aXJlZCBibG9jay4KKyAgICAvLyBPbiB0aGUgb3RoZXIgaGFuZCB3ZSdsbCB3YXN0
ZSBhdCBtb3N0IDEwJSBvZiBvdXIgSGVhcCBzcGFjZSBiZXR3ZWVuIEZ1bGxDb2xsZWN0aW9ucyAK
KyAgICAvLyBhbmQgb25seSB1bmRlciBoZWF2eSBmcmFnbWVudGF0aW9uLgorCisgICAgLy8gV2Ug
bmVlZCB0byB6YXAgdGhlIGZyZWUgbGlzdCB3aGVuIHJldGlyaW5nIGEgYmxvY2sgc28gdGhhdCB3
ZSBkb24ndCB0cnkgdG8gZGVzdHJveSAKKyAgICAvLyBwcmV2aW91c2x5IGRlc3Ryb3llZCBvYmpl
Y3RzIHdoZW4gd2UgcmUtc3dlZXAgdGhlIGJsb2NrIGluIHRoZSBmdXR1cmUuCisgICAgRnJlZUNl
bGwqIG5leHQ7CisgICAgZm9yIChGcmVlQ2VsbCogY3VycmVudCA9IGhlYWQ7IGN1cnJlbnQ7IGN1
cnJlbnQgPSBuZXh0KSB7CisgICAgICAgIG5leHQgPSBjdXJyZW50LT5uZXh0OworICAgICAgICBy
ZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KGN1cnJlbnQpLT56YXAoKTsKKyAgICB9CisKKyAgICBB
U1NFUlQobV9zdGF0ZSA9PSBGcmVlTGlzdGVkKTsKKyAgICBtX3N0YXRlID0gUmV0aXJlZDsKK30K
KwogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9N
YXJrZWRCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
cmtlZEJsb2NrLmgJKHJldmlzaW9uIDE2NTQ1NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL01hcmtlZEJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3Nyw2ICsxNzcsOCBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBjbGVhck5ld2x5QWxsb2NhdGVkKGNvbnN0IHZvaWQq
KTsKIAogICAgICAgICBib29sIG5lZWRzU3dlZXBpbmcoKTsKKyAgICAgICAgdm9pZCBkaWRSZXRp
cmVCbG9jayhjb25zdCBGcmVlTGlzdCYpOworICAgICAgICB2b2lkIHdpbGxSZW1vdmVCbG9jaygp
OwogCiAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9yPiB2b2lkIGZvckVhY2hDZWxs
KEZ1bmN0b3ImKTsKICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0b3I+IHZvaWQgZm9y
RWFjaExpdmVDZWxsKEZ1bmN0b3ImKTsKQEAgLTE4Nyw3ICsxODksNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICBwcml2YXRlOgogICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGF0b21BbGlnbm1l
bnRNYXNrID0gYXRvbVNpemUgLSAxOyAvLyBhdG9tU2l6ZSBtdXN0IGJlIGEgcG93ZXIgb2YgdHdv
LgogCi0gICAgICAgIGVudW0gQmxvY2tTdGF0ZSB7IE5ldywgRnJlZUxpc3RlZCwgQWxsb2NhdGVk
LCBNYXJrZWQgfTsKKyAgICAgICAgZW51bSBCbG9ja1N0YXRlIHsgTmV3LCBGcmVlTGlzdGVkLCBB
bGxvY2F0ZWQsIE1hcmtlZCwgUmV0aXJlZCB9OwogICAgICAgICB0ZW1wbGF0ZTxEZXN0cnVjdG9y
VHlwZT4gRnJlZUxpc3Qgc3dlZXBIZWxwZXIoU3dlZXBNb2RlID0gU3dlZXBPbmx5KTsKIAogICAg
ICAgICB0eXBlZGVmIGNoYXIgQXRvbVthdG9tU2l6ZV07CkBAIC0yODIsNiArMjg0LDExIEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBtX3dlYWtTZXQucmVhcCgpOwogICAgIH0KIAorICAgIGlu
bGluZSB2b2lkIE1hcmtlZEJsb2NrOjp3aWxsUmVtb3ZlQmxvY2soKQorICAgIHsKKyAgICAgICAg
QVNTRVJUKG1fc3RhdGUgIT0gUmV0aXJlZCk7CisgICAgfQorCiAgICAgaW5saW5lIHZvaWQgTWFy
a2VkQmxvY2s6OmRpZENvbnN1bWVGcmVlTGlzdCgpCiAgICAgewogICAgICAgICBIRUFQX0xPR19C
TE9DS19TVEFURV9UUkFOU0lUSU9OKHRoaXMpOwpAQCAtNDA1LDYgKzQxMiw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBjYXNlIEFsbG9jYXRlZDoKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogCisgICAgICAgIGNhc2UgUmV0aXJlZDoKICAgICAgICAgY2FzZSBNYXJrZWQ6CiAgICAgICAg
ICAgICByZXR1cm4gbV9tYXJrcy5nZXQoYXRvbU51bWJlcihjZWxsKSkgfHwgKG1fbmV3bHlBbGxv
Y2F0ZWQgJiYgaXNOZXdseUFsbG9jYXRlZChjZWxsKSk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAJKHJldmlzaW9uIDE2NTQ1NCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjgzLDEyICsyODMsNiBAQCBzdHJ1Y3QgQ2xlYXJOZXdseUFsbG9jYXRlZCA6IE1hcmtlZEJsb2Nr
CiAgICAgdm9pZCBvcGVyYXRvcigpKE1hcmtlZEJsb2NrKiBibG9jaykgeyBibG9jay0+Y2xlYXJO
ZXdseUFsbG9jYXRlZCgpOyB9CiB9OwogCi0jaWZuZGVmIE5ERUJVRwotc3RydWN0IFZlcmlmeU5l
d2x5QWxsb2NhdGVkIDogTWFya2VkQmxvY2s6OlZvaWRGdW5jdG9yIHsKLSAgICB2b2lkIG9wZXJh
dG9yKCkoTWFya2VkQmxvY2sqIGJsb2NrKSB7IEFTU0VSVCghYmxvY2stPmNsZWFyTmV3bHlBbGxv
Y2F0ZWQoKSk7IH0KLX07Ci0jZW5kaWYKLQogdm9pZCBNYXJrZWRTcGFjZTo6Y2xlYXJOZXdseUFs
bG9jYXRlZCgpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwcmVjaXNlQ291bnQ7ICsr
aSkgewpAQCAtMzEwLDE5ICszMDQsOCBAQCB2b2lkIE1hcmtlZFNwYWNlOjpjbGVhck5ld2x5QWxs
b2NhdGVkKCkKICAgICBtX25vcm1hbFNwYWNlLmxhcmdlQWxsb2NhdG9yLmZvckVhY2hCbG9jayhm
dW5jdG9yKTsKICAgICBtX25vcm1hbERlc3RydWN0b3JTcGFjZS5sYXJnZUFsbG9jYXRvci5mb3JF
YWNoQmxvY2soZnVuY3Rvcik7CiAgICAgbV9pbW1vcnRhbFN0cnVjdHVyZURlc3RydWN0b3JTcGFj
ZS5sYXJnZUFsbG9jYXRvci5mb3JFYWNoQmxvY2soZnVuY3Rvcik7Ci0KLSNpZm5kZWYgTkRFQlVH
Ci0gICAgVmVyaWZ5TmV3bHlBbGxvY2F0ZWQgdmVyaWZ5RnVuY3RvcjsKLSAgICBmb3JFYWNoQmxv
Y2sodmVyaWZ5RnVuY3Rvcik7Ci0jZW5kaWYKIH0KIAotI2lmbmRlZiBOREVCVUcKLXN0cnVjdCBW
ZXJpZnlNYXJrZWQgOiBNYXJrZWRCbG9jazo6Vm9pZEZ1bmN0b3IgewotICAgIHZvaWQgb3BlcmF0
b3IoKShNYXJrZWRCbG9jayogYmxvY2spIHsgQVNTRVJUKGJsb2NrLT5uZWVkc1N3ZWVwaW5nKCkp
OyB9Ci19OwotI2VuZGlmCi0KIHZvaWQgTWFya2VkU3BhY2U6OmNsZWFyTWFya3MoKQogewogICAg
IGlmIChtX2hlYXAtPm9wZXJhdGlvbkluUHJvZ3Jlc3MoKSA9PSBFZGVuQ29sbGVjdGlvbikgewpA
QCAtMzMwLDkgKzMxMyw2IEBAIHZvaWQgTWFya2VkU3BhY2U6OmNsZWFyTWFya3MoKQogICAgICAg
ICAgICAgbV9ibG9ja3NXaXRoTmV3T2JqZWN0c1tpXS0+Y2xlYXJNYXJrcygpOwogICAgIH0gZWxz
ZQogICAgICAgICBmb3JFYWNoQmxvY2s8Q2xlYXJNYXJrcz4oKTsKLSNpZm5kZWYgTkRFQlVHCi0g
ICAgZm9yRWFjaEJsb2NrPFZlcmlmeU1hcmtlZD4oKTsKLSNlbmRpZgogfQogCiB2b2lkIE1hcmtl
ZFNwYWNlOjp3aWxsU3RhcnRJdGVyYXRpbmcoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMTY1NDU0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzgsNiArMjM4LDcgQEAg
dHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25SYW5nZTsKICAgICB2KHVuc2lnbmVkLCBvcGFxdWVS
b290TWVyZ2VUaHJlc2hvbGQsIDEwMDApIFwKICAgICB2KGRvdWJsZSwgbWluSGVhcFV0aWxpemF0
aW9uLCAwLjgpIFwKICAgICB2KGRvdWJsZSwgbWluQ29waWVkQmxvY2tVdGlsaXphdGlvbiwgMC45
KSBcCisgICAgdihkb3VibGUsIG1pbk1hcmtlZEJsb2NrVXRpbGl6YXRpb24sIDAuOSkgXAogICAg
IFwKICAgICB2KGJvb2wsIGZvcmNlV2Vha1JhbmRvbVNlZWQsIGZhbHNlKSBcCiAgICAgdih1bnNp
Z25lZCwgZm9yY2VkV2Vha1JhbmRvbVNlZWQsIDApIFwK
</data>
<flag name="review"
          id="250692"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>