<?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>128883</bug_id>
          
          <creation_ts>2014-02-15 21:34:01 -0800</creation_ts>
          <short_desc>DFG::prepareOSREntry should be nice to the stack</short_desc>
          <delta_ts>2014-03-21 09:47:25 -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>
          <dependson>130539</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>981258</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-15 21:34:01 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981259</commentid>
    <comment_count>1</comment_count>
      <attachid>224315</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-15 21:34:35 -0800</bug_when>
    <thetext>Created attachment 224315
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981300</commentid>
    <comment_count>2</comment_count>
      <attachid>224324</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-16 14:54:54 -0800</bug_when>
    <thetext>Created attachment 224324
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981322</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-16 22:20:08 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/164205</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981435</commentid>
    <comment_count>4</comment_count>
      <attachid>224324</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2014-02-17 07:08:25 -0800</bug_when>
    <thetext>Comment on attachment 224324
the patch

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

&gt; Source/JavaScriptCore/dfg/DFGOSREntry.h:70
&gt; +// Returns a pointer to a data buffer that the OSR entry thunk will recognize and
&gt; +// parse. If this returns null, it means 

Unfinished comment.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224315</attachid>
            <date>2014-02-15 21:34:35 -0800</date>
            <delta_ts>2014-02-16 14:54:54 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>5835</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCShyZXZpc2lv
biAxNjQxODgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTk4LDYgKzE5OCw0OCBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnko
RXhlY1N0YXRlKiBleGVjLCBDCiAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAg
ICAgZGF0YUxvZ0YoIiAgICBPU1Igc2hvdWxkIHN1Y2NlZWQuXG4iKTsKICAgICAKKyAgICAvLyAz
KSBTZXQgdXAgdGhlIGRhdGEgaW4gdGhlIHNjcmF0Y2ggYnVmZmVyIGFuZCBwZXJmb3JtIGRhdGEg
Zm9ybWF0IGNvbnZlcnNpb25zLgorCisgICAgUmVnaXN0ZXIqIHNjcmF0Y2ggPSBiaXR3aXNlX2Nh
c3Q8UmVnaXN0ZXIqPih2bS0+c2NyYXRjaEJ1ZmZlckZvclNpemUoc2l6ZW9mKFJlZ2lzdGVyKSAq
ICgyICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIGZyYW1lU2l6ZSkpLT5kYXRhQnVm
ZmVyKCkpOworICAgIAorICAgICpiaXR3aXNlX2Nhc3Q8c2l6ZV90Kj4oc2NyYXRjaCArIDApID0g
ZnJhbWVTaXplOworICAgICpiaXR3aXNlX2Nhc3Q8dm9pZCo+KHNjcmF0Y2ggKyAxKSA9IGNvZGVC
bG9jay0+aml0Q29kZSgpLT5leGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KGVudHJ5LT5tX21hY2hp
bmVDb2RlT2Zmc2V0KTsKKyAgICAKKyAgICBSZWdpc3RlciogcGl2b3QgPSBzY3JhdGNoICsgMiAr
IEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemU7CisgICAgCisgICAgZm9yIChpbnQgaW5kZXgg
PSAtSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsgaW5kZXggPCBzdGF0aWNfY2FzdDxpbnQ+
KGZyYW1lU2l6ZSk7ICsraW5kZXgpIHsKKyAgICAgICAgVmlydHVhbFJlZ2lzdGVyIHJlZygtMSAt
IGluZGV4KTsKKyAgICAgICAgCisgICAgICAgIGlmIChyZWcuaXNMb2NhbCgpKSB7CisgICAgICAg
ICAgICBpZiAoZW50cnktPm1fbG9jYWxzRm9yY2VkRG91YmxlLmdldChyZWcudG9Mb2NhbCgpKSkg
eworICAgICAgICAgICAgICAgICpiaXR3aXNlX2Nhc3Q8ZG91YmxlKj4ocGl2b3QgKyBpbmRleCkg
PSBleGVjLT5yZWdpc3RlcnMoKVtyZWcudG9PZmZzZXQoKV0uanNWYWx1ZSgpLmFzTnVtYmVyKCk7
CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIGlmIChlbnRyeS0+bV9sb2NhbHNGb3JjZWRNYWNoaW5lSW50LmdldChyZWcu
dG9Mb2NhbCgpKSkgeworICAgICAgICAgICAgICAgICpiaXR3aXNlX2Nhc3Q8aW50NjRfdCo+KHBp
dm90ICsgaW5kZXgpID0gZXhlYy0+cmVnaXN0ZXJzKClbcmVnLnRvT2Zmc2V0KCldLmpzVmFsdWUo
KS5hc01hY2hpbmVJbnQoKSA8PCBKU1ZhbHVlOjppbnQ1MlNoaWZ0QW1vdW50OworICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAg
ICAgICBwaXZvdFtpbmRleF0gPSBleGVjLT5yZWdpc3RlcnMoKVtyZWcudG9PZmZzZXQoKV0uanNW
YWx1ZSgpOworICAgIH0KKyAgICAKKyAgICAvLyA0KSBSZXNodWZmbGUgdGhvc2UgcmVnaXN0ZXJz
IHRoYXQgbmVlZCByZXNodWZmbGluZy4KKyAgICBWZWN0b3I8RW5jb2RlZEpTVmFsdWU+IHRlbXBv
cmFyeUxvY2FscyhlbnRyeS0+bV9yZXNodWZmbGluZ3Muc2l6ZSgpKTsKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSBlbnRyeS0+bV9yZXNodWZmbGluZ3Muc2l6ZSgpOyBpLS07KQorICAgICAgICB0ZW1w
b3JhcnlMb2NhbHNbaV0gPSBwaXZvdFtWaXJ0dWFsUmVnaXN0ZXIoZW50cnktPm1fcmVzaHVmZmxp
bmdzW2ldLmZyb21PZmZzZXQpLnRvTG9jYWwoKV07CisgICAgZm9yICh1bnNpZ25lZCBpID0gZW50
cnktPm1fcmVzaHVmZmxpbmdzLnNpemUoKTsgaS0tOykKKyAgICAgICAgcGl2b3RbVmlydHVhbFJl
Z2lzdGVyKGVudHJ5LT5tX3Jlc2h1ZmZsaW5nc1tpXS50b09mZnNldCkudG9Mb2NhbCgpXSA9IHRl
bXBvcmFyeUxvY2Fsc1tpXTsKKyAgICAKKyAgICAvLyA1KSBDbGVhciB0aG9zZSBwYXJ0cyBvZiB0
aGUgY2FsbCBmcmFtZSB0aGF0IHRoZSBERkcgYWluJ3QgdXNpbmcuIFRoaXMgaGVscHMgR0Mgb24K
KyAgICAvLyAgICBzb21lIHByb2dyYW1zIGJ5IGVsaW1pbmF0aW5nIHNvbWUgc3RhbGUgcG9pbnRl
ciBwYXRob2xvZ2llcy4KKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBmcmFtZVNpemU7IGktLTspIHsK
KyAgICAgICAgaWYgKGVudHJ5LT5tX21hY2hpbmVTdGFja1VzZWQuZ2V0KGkpKQorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIHBpdm90W2ldID0gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUo
KSk7CisgICAgfQorICAgIAogICAgIC8vIDMpIFBlcmZvcm0gZGF0YSBmb3JtYXQgY29udmVyc2lv
bnMuCiAgICAgZm9yIChzaXplX3QgbG9jYWwgPSAwOyBsb2NhbCA8IGVudHJ5LT5tX2V4cGVjdGVk
VmFsdWVzLm51bWJlck9mTG9jYWxzKCk7ICsrbG9jYWwpIHsKICAgICAgICAgaWYgKGVudHJ5LT5t
X2xvY2Fsc0ZvcmNlZERvdWJsZS5nZXQobG9jYWwpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdUaHVua3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHVGh1bmtzLmNwcAkocmV2aXNpb24gMTY0MTg4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdUaHVua3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Niw2ICs5NiwzOSBA
QCBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3NyRXhpdEdlbmVyYXRpb25UCiAgICAgcmV0dXJuIEZJ
TkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsICgiREZHIE9TUiBleGl0IGdlbmVyYXRpb24gdGh1bmsi
KSk7CiB9CiAKK01hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFbnRyeVRodW5rR2VuZXJhdG9yKFZN
KiB2bSkKK3sKKyAgICBNYWNyb0Fzc2VtYmxlciBqaXQ7CisgICAgCisgICAgLy8gV2UgZ2V0IHBh
c3NlZCB0aGUgYWRkcmVzcyBvZiBhIHNjcmF0Y2ggYnVmZmVyLiBUaGUgZmlyc3QgOC1ieXRlIHNs
b3Qgb2YgdGhlIGJ1ZmZlcgorICAgIC8vIGlzIHRoZSBmcmFtZSBzaXplLiBUaGUgc2Vjb25kIDgt
Ynl0ZSBzbG90IGlzIHRoZSBwb2ludGVyIHRvIHdoZXJlIHdlIGFyZSBzdXBwb3NlZCB0bworICAg
IC8vIGp1bXAuIFRoZSByZW1haW5pbmcgYnl0ZXMgYXJlIHRoZSBuZXcgY2FsbCBmcmFtZSBoZWFk
ZXIgZm9sbG93ZWQgYnkgdGhlIGxvY2Fscy4KKyAgICAKKyAgICBwdHJkaWZmX3Qgb2Zmc2V0T2ZG
cmFtZVNpemUgPSAwOworICAgIHB0cmRpZmZfdCBvZmZzZXRPZlRhcmdldFBDID0gb2Zmc2V0T2ZG
cmFtZVNpemUgKyBzaXplb2YoRW5jb2RlZEpTVmFsdWUpOworICAgIHB0cmRpZmZfdCBvZmZzZXRP
ZlBheWxvYWQgPSBvZmZzZXRPZlRhcmdldFBDICsgc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKTsKKyAg
ICBwdHJkaWZmX3Qgb2Zmc2V0T2ZMb2NhbHMgPSBvZmZzZXRPZlBheWxvYWQgKyBzaXplb2YoUmVn
aXN0ZXIpICogSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsKKyAgICAKKyAgICBqaXQubW92
ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUjIsIEdQUkluZm86OnJlZ1QwKTsKKyAgICBqaXQubG9h
ZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgb2Zmc2V0T2ZGcmFt
ZVNpemUpLCBHUFJJbmZvOjpyZWdUMSk7IC8vIExvYWQgdGhlIGZyYW1lIHNpemUuCisgICAgCisg
ICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGxvb3A7CisgICAgaml0LnN1YlB0cihNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbTMyKDEpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgaml0Lm1vdmUoR1BS
SW5mbzo6cmVnVDEsIEdQUkluZm86OnJlZ1Q0KTsKKyAgICBqaXQubmVnUHRyKEdQUkluZm86OnJl
Z1Q0KTsKKyAgICBqaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoR1BSSW5mbzo6
cmVnVDAsIEdQUkluZm86OnJlZ1QxLCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgb2Zmc2V0
T2ZMb2NhbHMpLCBHUFJJbmZvOjpyZWdUMik7CisgICAgaml0LmxvYWQzMihNYWNyb0Fzc2VtYmxl
cjo6QmFzZUluZGV4KEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwgTWFjcm9Bc3NlbWJs
ZXI6OlRpbWVzRWlnaHQsIG9mZnNldE9mTG9jYWxzICsgc2l6ZW9mKGludDMyX3QpKSwgR1BSSW5m
bzo6cmVnVDMpOworICAgIGppdC5zdG9yZTMyKEdQUkluZm86OnJlZ1QyLCBNYWNyb0Fzc2VtYmxl
cjo6QmFzZUluZGV4KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUNCwg
TWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIHNpemVvZihSZWdpc3RlcikpKTsKKyAgICBqaXQu
c3RvcmUzMihHUFJJbmZvOjpyZWdUMywgTWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChHUFJJbmZv
OjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDQsIE1hY3JvQXNzZW1ibGVyOjpUaW1l
c0VpZ2h0LCBzaXplb2YoUmVnaXN0ZXIpICsgc2l6ZW9mKGludDMyX3QpKSk7CisgICAgaml0LmJy
YW5jaFB0cihOb3RFcXVhbCwgR1BSSW5mbzo6cmVnVDEsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tUHRyKC1zdGF0aWNfY2FzdDxpbnRwdHJfdD4oSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6
ZSkpKS5saW5rVG8obG9vcCwgJmppdCk7CisgICAgCisgICAgaml0LmxvYWRQdHIoTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIG9mZnNldE9mVGFyZ2V0UEMpLCBHUFJJbmZv
OjpyZWdUMCk7CisgICAgaml0Lmp1bXAoR1BSSW5mbzo6cmVnVDApOworICAgIAorICAgIExpbmtC
dWZmZXIgcGF0Y2hCdWZmZXIoKnZtLCAmaml0LCBHTE9CQUxfVEhVTktfSUQpOworICAgIHJldHVy
biBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCAoIkRGRyBPU1IgZW50cnkgdGh1bmsiKSk7Cit9
CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAogI2VuZGlmIC8vIEVOQUJMRShERkdfSklU
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHVua3MuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RodW5rcy5oCShyZXZpc2lvbiAxNjQx
ODgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RodW5rcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zOSw2ICszOSw3IEBAIGNsYXNzIFZNOwogbmFtZXNwYWNlIERGRyB7CiAKIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBvc3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKFZNKik7CitNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgb3NyRW50cnlUaHVua0dlbmVyYXRvcihWTSopOwogCiB9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6REZHCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224324</attachid>
            <date>2014-02-16 14:54:54 -0800</date>
            <delta_ts>2014-02-17 07:08:25 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>14592</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY0MTk3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDE0LTAyLTE2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHOjpwcmVwYXJlT1NSRW50cnkgc2hvdWxkIGJlIG5pY2UgdG8gdGhlIHN0YWNrCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg4ODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFByZXZpb3Vz
bHkgT1NSIGVudHJ5IGhhZCBzb21lIEZJWE1FJ3MgYW5kIHNvbWUgcmVhbGx5IGJhZGx5IGNvbW1l
bnRlZC1vdXQgY29kZSBmb3IKKyAgICAgICAgY2xlYXJpbmcgc3RhY2sgZW50cmllcyB0byBoZWxw
IEdDLiBJdCBhbHNvIGRpZCBzb21lIHBlcm11dGF0aW9ucyBvbiBhIHN0YWNrIGZyYW1lCisgICAg
ICAgIGFib3ZlIHVzLCBpbiBzdWNoIGEgd2F5IHRoYXQgaXQgd2Fzbid0IG9idmlvdXNseSB0aGF0
IHdlIHdvdWxkbid0IGNsb2JiZXIgb3VyIG93bgorICAgICAgICBzdGFjayBmcmFtZS4gVGhpcyBm
dW5jdGlvbiBhbHNvIGNyYXNoZWQgaW4gQVNhbi4KKyAgICAgICAgCisgICAgICAgIEl0IGp1c3Qg
c2VlbXMgbGlrZSB0aGVyZSB3YXMgdG9vIG11Y2ggYmFkbmVzcyB0byB0aGUgd2hvbGUgaWRlYSBv
ZiBwcmVwYXJlT1NSRW50cnkKKyAgICAgICAgZGlyZWN0bHkgZWRpdGluZyB0aGUgc3RhY2suIFNv
LCBJIGNoYW5nZWQgaXQgdG8gY3JlYXRlIGEgc3RhY2sgZnJhbWUgaW4gYSBzY3JhdGNoCisgICAg
ICAgIGJ1ZmZlciBvbiB0aGUgc2lkZSBhbmQgdGhlbiBoYXZlIHNvbWUgYXNzZW1ibHkgY29kZSBq
dXN0IGNvcHkgaXQgaW50byBwbGFjZS4gVGhpcworICAgICAgICB3b3JrcyBmaW5lLCBmaXhlcyBh
IEZJWE1FLCBwb3NzaWJseSBmaXhlcyBzb21lIHN0YWNrIGNsb2JiZXJpbmcsIGFuZCBtaWdodCBo
ZWxwIHVzCisgICAgICAgIG1ha2UgbW9yZSBwcm9ncmVzcyB3aXRoIEFTYW4uCisKKyAgICAgICAg
KiBkZmcvREZHT1NSRW50cnkuY3BwOgorICAgICAgICAoSlNDOjpERkc6OnByZXBhcmVPU1JFbnRy
eSk6CisgICAgICAgICogZGZnL0RGR09TUkVudHJ5Lmg6CisgICAgICAgICogZGZnL0RGR1RodW5r
cy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6b3NyRW50cnlUaHVua0dlbmVyYXRvcik6CisgICAg
ICAgICogZGZnL0RGR1RodW5rcy5oOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAg
ICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9sb29wX2hpbnQpOgorICAgICAgICAqIGppdC9K
SVRPcGVyYXRpb25zLmNwcDoKKwogMjAxNC0wMi0xNSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBw
bGUuY29tPgogCiAgICAgICAgIFZlY3RvciB3aXRoIGlubGluZSBjYXBhY2l0eSBzaG91bGQgd29y
ayB3aXRoIG5vbi1QT0RzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVu
dHJ5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVu
dHJ5LmNwcAkocmV2aXNpb24gMTY0MTg4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPU1JFbnRyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDExLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMSwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE4OCw4ICsxODgsOCBA
QCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoRXhlY1N0YXRlKiBleGVjLCBDCiAgICAgLy8gICAgaXQg
c2VlbXMgc2lsbHk6IHlvdSdkIGJlIGRpdmVydGluZyB0aGUgcHJvZ3JhbSB0byBlcnJvciBoYW5k
bGluZyB3aGVuIGl0CiAgICAgLy8gICAgd291bGQgaGF2ZSBvdGhlcndpc2UganVzdCBrZXB0IHJ1
bm5pbmcgYWxiZWl0IGxlc3MgcXVpY2tseS4KICAgICAKLSAgICB1bnNpZ25lZCBmcmFtZVNpemUg
PSBqaXRDb2RlLT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhlY3V0aW9uQW5kRXhp
dCgpOwotICAgIGlmICghdm0tPmludGVycHJldGVyLT5zdGFjaygpLmVuc3VyZUNhcGFjaXR5Rm9y
KCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVNpemUgLSAx
KS5vZmZzZXQoKV0pKSB7CisgICAgdW5zaWduZWQgZnJhbWVTaXplRm9yQ2hlY2sgPSBqaXRDb2Rl
LT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhlY3V0aW9uQW5kRXhpdCgpOworICAg
IGlmICghdm0tPmludGVycHJldGVyLT5zdGFjaygpLmVuc3VyZUNhcGFjaXR5Rm9yKCZleGVjLT5y
ZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVNpemVGb3JDaGVjayAtIDEp
Lm9mZnNldCgpXSkpIHsKICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAg
ICAgICAgIGRhdGFMb2dGKCIgICAgT1NSIGZhaWxlZCBiZWNhdXNlIHN0YWNrIGdyb3d0aCBmYWls
ZWQuXG4iKTsKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xOTcsNDcgKzE5Nyw2OCBAQCB2b2lkKiBw
cmVwYXJlT1NSRW50cnkoRXhlY1N0YXRlKiBleGVjLCBDCiAgICAgCiAgICAgaWYgKE9wdGlvbnM6
OnZlcmJvc2VPU1IoKSkKICAgICAgICAgZGF0YUxvZ0YoIiAgICBPU1Igc2hvdWxkIHN1Y2NlZWQu
XG4iKTsKKworICAgIC8vIEF0IHRoaXMgcG9pbnQgd2UncmUgY29tbWl0dGVkIHRvIGVudGVyaW5n
LiBXZSB3aWxsIGRvIHNvbWUgd29yayB0byBzZXQgdGhpbmdzIHVwLAorICAgIC8vIGJ1dCB3ZSBh
bHNvIHJlbHkgb24gb3VyIGNhbGxlciByZWNvZ25pemluZyB0aGF0IHdoZW4gd2UgcmV0dXJuIGEg
bm9uLW51bGwgcG9pbnRlciwKKyAgICAvLyB0aGF0IG1lYW5zIHRoYXQgd2UncmUgYWxyZWFkeSBw
YXN0IHRoZSBwb2ludCBvZiBubyByZXR1cm4gYW5kIHdlIG11c3Qgc3VjY2VlZCBhdAorICAgIC8v
IGVudGVyaW5nLgogICAgIAotICAgIC8vIDMpIFBlcmZvcm0gZGF0YSBmb3JtYXQgY29udmVyc2lv
bnMuCi0gICAgZm9yIChzaXplX3QgbG9jYWwgPSAwOyBsb2NhbCA8IGVudHJ5LT5tX2V4cGVjdGVk
VmFsdWVzLm51bWJlck9mTG9jYWxzKCk7ICsrbG9jYWwpIHsKLSAgICAgICAgaWYgKGVudHJ5LT5t
X2xvY2Fsc0ZvcmNlZERvdWJsZS5nZXQobG9jYWwpKQotICAgICAgICAgICAgKmJpdHdpc2VfY2Fz
dDxkb3VibGUqPihleGVjLT5yZWdpc3RlcnMoKSArIHZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGxv
Y2FsKS5vZmZzZXQoKSkgPSBleGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2Nh
bChsb2NhbCkub2Zmc2V0KCldLmpzVmFsdWUoKS5hc051bWJlcigpOwotICAgICAgICBpZiAoZW50
cnktPm1fbG9jYWxzRm9yY2VkTWFjaGluZUludC5nZXQobG9jYWwpKQotICAgICAgICAgICAgKmJp
dHdpc2VfY2FzdDxpbnQ2NF90Kj4oZXhlYy0+cmVnaXN0ZXJzKCkgKyB2aXJ0dWFsUmVnaXN0ZXJG
b3JMb2NhbChsb2NhbCkub2Zmc2V0KCkpID0gZXhlYy0+cmVnaXN0ZXJzKClbdmlydHVhbFJlZ2lz
dGVyRm9yTG9jYWwobG9jYWwpLm9mZnNldCgpXS5qc1ZhbHVlKCkuYXNNYWNoaW5lSW50KCkgPDwg
SlNWYWx1ZTo6aW50NTJTaGlmdEFtb3VudDsKKyAgICAvLyAzKSBTZXQgdXAgdGhlIGRhdGEgaW4g
dGhlIHNjcmF0Y2ggYnVmZmVyIGFuZCBwZXJmb3JtIGRhdGEgZm9ybWF0IGNvbnZlcnNpb25zLgor
CisgICAgdW5zaWduZWQgZnJhbWVTaXplID0gaml0Q29kZS0+Y29tbW9uLmZyYW1lUmVnaXN0ZXJD
b3VudDsKKyAgICAKKyAgICBSZWdpc3Rlciogc2NyYXRjaCA9IGJpdHdpc2VfY2FzdDxSZWdpc3Rl
cio+KHZtLT5zY3JhdGNoQnVmZmVyRm9yU2l6ZShzaXplb2YoUmVnaXN0ZXIpICogKDIgKyBKU1N0
YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplICsgZnJhbWVTaXplKSktPmRhdGFCdWZmZXIoKSk7Cisg
ICAgCisgICAgKmJpdHdpc2VfY2FzdDxzaXplX3QqPihzY3JhdGNoICsgMCkgPSBmcmFtZVNpemU7
CisgICAgCisgICAgdm9pZCogdGFyZ2V0UEMgPSBjb2RlQmxvY2stPmppdENvZGUoKS0+ZXhlY3V0
YWJsZUFkZHJlc3NBdE9mZnNldChlbnRyeS0+bV9tYWNoaW5lQ29kZU9mZnNldCk7CisgICAgaWYg
KE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKKyAgICAgICAgZGF0YUxvZ0YoIiAgICBPU1IgdXNpbmcg
dGFyZ2V0IFBDICVwLlxuIiwgdGFyZ2V0UEMpOworICAgIFJFTEVBU0VfQVNTRVJUKHRhcmdldFBD
KTsKKyAgICAqYml0d2lzZV9jYXN0PHZvaWQqKj4oc2NyYXRjaCArIDEpID0gdGFyZ2V0UEM7Cisg
ICAgCisgICAgUmVnaXN0ZXIqIHBpdm90ID0gc2NyYXRjaCArIDIgKyBKU1N0YWNrOjpDYWxsRnJh
bWVIZWFkZXJTaXplOworICAgIAorICAgIGZvciAoaW50IGluZGV4ID0gLUpTU3RhY2s6OkNhbGxG
cmFtZUhlYWRlclNpemU7IGluZGV4IDwgc3RhdGljX2Nhc3Q8aW50PihmcmFtZVNpemUpOyArK2lu
ZGV4KSB7CisgICAgICAgIFZpcnR1YWxSZWdpc3RlciByZWcoLTEgLSBpbmRleCk7CisgICAgICAg
IAorICAgICAgICBpZiAocmVnLmlzTG9jYWwoKSkgeworICAgICAgICAgICAgaWYgKGVudHJ5LT5t
X2xvY2Fsc0ZvcmNlZERvdWJsZS5nZXQocmVnLnRvTG9jYWwoKSkpIHsKKyAgICAgICAgICAgICAg
ICAqYml0d2lzZV9jYXN0PGRvdWJsZSo+KHBpdm90ICsgaW5kZXgpID0gZXhlYy0+cmVnaXN0ZXJz
KClbcmVnLm9mZnNldCgpXS5qc1ZhbHVlKCkuYXNOdW1iZXIoKTsKKyAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGVu
dHJ5LT5tX2xvY2Fsc0ZvcmNlZE1hY2hpbmVJbnQuZ2V0KHJlZy50b0xvY2FsKCkpKSB7CisgICAg
ICAgICAgICAgICAgKmJpdHdpc2VfY2FzdDxpbnQ2NF90Kj4ocGl2b3QgKyBpbmRleCkgPSBleGVj
LT5yZWdpc3RlcnMoKVtyZWcub2Zmc2V0KCldLmpzVmFsdWUoKS5hc01hY2hpbmVJbnQoKSA8PCBK
U1ZhbHVlOjppbnQ1MlNoaWZ0QW1vdW50OworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBwaXZvdFtpbmRleF0gPSBl
eGVjLT5yZWdpc3RlcnMoKVtyZWcub2Zmc2V0KCldLmpzVmFsdWUoKTsKICAgICB9CiAgICAgCiAg
ICAgLy8gNCkgUmVzaHVmZmxlIHRob3NlIHJlZ2lzdGVycyB0aGF0IG5lZWQgcmVzaHVmZmxpbmcu
Ci0gICAgCi0gICAgVmVjdG9yPEVuY29kZWRKU1ZhbHVlPiB0ZW1wb3JhcnlMb2NhbHMoZW50cnkt
Pm1fcmVzaHVmZmxpbmdzLnNpemUoKSk7Ci0gICAgRW5jb2RlZEpTVmFsdWUqIHJlZ2lzdGVycyA9
IGJpdHdpc2VfY2FzdDxFbmNvZGVkSlNWYWx1ZSo+KGV4ZWMtPnJlZ2lzdGVycygpKTsKKyAgICBW
ZWN0b3I8SlNWYWx1ZT4gdGVtcG9yYXJ5TG9jYWxzKGVudHJ5LT5tX3Jlc2h1ZmZsaW5ncy5zaXpl
KCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IGVudHJ5LT5tX3Jlc2h1ZmZsaW5ncy5zaXplKCk7
IGktLTspCi0gICAgICAgIHRlbXBvcmFyeUxvY2Fsc1tpXSA9IHJlZ2lzdGVyc1tlbnRyeS0+bV9y
ZXNodWZmbGluZ3NbaV0uZnJvbU9mZnNldF07CisgICAgICAgIHRlbXBvcmFyeUxvY2Fsc1tpXSA9
IHBpdm90W1ZpcnR1YWxSZWdpc3RlcihlbnRyeS0+bV9yZXNodWZmbGluZ3NbaV0uZnJvbU9mZnNl
dCkudG9Mb2NhbCgpXS5qc1ZhbHVlKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gZW50cnktPm1f
cmVzaHVmZmxpbmdzLnNpemUoKTsgaS0tOykKLSAgICAgICAgcmVnaXN0ZXJzW2VudHJ5LT5tX3Jl
c2h1ZmZsaW5nc1tpXS50b09mZnNldF0gPSB0ZW1wb3JhcnlMb2NhbHNbaV07CisgICAgICAgIHBp
dm90W1ZpcnR1YWxSZWdpc3RlcihlbnRyeS0+bV9yZXNodWZmbGluZ3NbaV0udG9PZmZzZXQpLnRv
TG9jYWwoKV0gPSB0ZW1wb3JhcnlMb2NhbHNbaV07CiAgICAgCi0gICAgLy8gNSkgQ2xlYXIgdGhv
c2UgcGFydHMgb2YgdGhlIGNhbGwgZnJhbWUgdGhhdCB0aGUgREZHIGFpbid0IHVzaW5nLiBUaGlz
IGhlbHBzIEdDIG9uIHNvbWUKLSAgICAvLyAgICBwcm9ncmFtcyBieSBlbGltaW5hdGluZyBzb21l
IHN0YWxlIHBvaW50ZXIgcGF0aG9sb2dpZXMuCi0KLSNpZiAwIC8vIEZJWE1FOiBDU3RhY2sgLSBU
aGlzIG5lZWRzIHRvIGJlIHZlcmlmaWVkIGJlZm9yZSBiZWluZyBlbmFibGVkCisgICAgLy8gNSkg
Q2xlYXIgdGhvc2UgcGFydHMgb2YgdGhlIGNhbGwgZnJhbWUgdGhhdCB0aGUgREZHIGFpbid0IHVz
aW5nLiBUaGlzIGhlbHBzIEdDIG9uCisgICAgLy8gICAgc29tZSBwcm9ncmFtcyBieSBlbGltaW5h
dGluZyBzb21lIHN0YWxlIHBvaW50ZXIgcGF0aG9sb2dpZXMuCiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gZnJhbWVTaXplOyBpLS07KSB7CiAgICAgICAgIGlmIChlbnRyeS0+bV9tYWNoaW5lU3RhY2tV
c2VkLmdldChpKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICByZWdpc3RlcnNbdmly
dHVhbFJlZ2lzdGVyRm9yTG9jYWwoaSkub2Zmc2V0KCldID0gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFs
dWUoKSk7CisgICAgICAgIHBpdm90W2ldID0gSlNWYWx1ZSgpOwogICAgIH0KLSNlbmRpZgotICAg
IAotICAgIC8vIDYpIEZpeCB0aGUgY2FsbCBmcmFtZS4KICAgICAKLSAgICBleGVjLT5zZXRDb2Rl
QmxvY2soY29kZUJsb2NrKTsKKyAgICAvLyA2KSBGaXggdGhlIGNhbGwgZnJhbWUgdG8gaGF2ZSB0
aGUgcmlnaHQgY29kZSBibG9jay4KICAgICAKLSAgICAvLyA3KSBGaW5kIGFuZCByZXR1cm4gdGhl
IGRlc3RpbmF0aW9uIG1hY2hpbmUgY29kZSBhZGRyZXNzLgotICAgIAotICAgIHZvaWQqIHJlc3Vs
dCA9IGNvZGVCbG9jay0+aml0Q29kZSgpLT5leGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KGVudHJ5
LT5tX21hY2hpbmVDb2RlT2Zmc2V0KTsKKyAgICAqYml0d2lzZV9jYXN0PENvZGVCbG9jayoqPihw
aXZvdCAtIDEgLSBKU1N0YWNrOjpDb2RlQmxvY2spID0gY29kZUJsb2NrOwogICAgIAogICAgIGlm
IChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCi0gICAgICAgIGRhdGFMb2dGKCIgICAgT1NSIHJldHVy
bmluZyBtYWNoaW5lIGNvZGUgYWRkcmVzcyAlcC5cbiIsIHJlc3VsdCk7Ci0gICAgCi0gICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICAgZGF0YUxvZ0YoIiAgICBPU1IgcmV0dXJuaW5nIGRhdGEgYnVm
ZmVyICVwLlxuIiwgc2NyYXRjaCk7CisgICAgcmV0dXJuIHNjcmF0Y2g7CiB9CiAKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpERkcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NS
RW50cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVu
dHJ5LmgJKHJldmlzaW9uIDE2NDE4OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRW50cnkuaAkod29ya2luZyBjb3B5KQpAQCAtNjcsNiArNjcsOCBAQCBpbmxpbmUgdW5zaWdu
ZWQgZ2V0T1NSRW50cnlEYXRhQnl0ZWNvZGVJCiAgICAgcmV0dXJuIG9zckVudHJ5RGF0YS0+bV9i
eXRlY29kZUluZGV4OwogfQogCisvLyBSZXR1cm5zIGEgcG9pbnRlciB0byBhIGRhdGEgYnVmZmVy
IHRoYXQgdGhlIE9TUiBlbnRyeSB0aHVuayB3aWxsIHJlY29nbml6ZSBhbmQKKy8vIHBhcnNlLiBJ
ZiB0aGlzIHJldHVybnMgbnVsbCwgaXQgbWVhbnMgCiB2b2lkKiBwcmVwYXJlT1NSRW50cnkoRXhl
Y1N0YXRlKiwgQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCk7CiAjZWxzZQogaW5s
aW5lIHZvaWQqIHByZXBhcmVPU1JFbnRyeShFeGVjU3RhdGUqLCBDb2RlQmxvY2sqLCB1bnNpZ25l
ZCkgeyByZXR1cm4gMDsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHVu
a3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtz
LmNwcAkocmV2aXNpb24gMTY0MTg4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdU
aHVua3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05Niw2ICs5Niw0NiBAQCBNYWNyb0Fzc2VtYmxlckNv
ZGVSZWYgb3NyRXhpdEdlbmVyYXRpb25UCiAgICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hC
dWZmZXIsICgiREZHIE9TUiBleGl0IGdlbmVyYXRpb24gdGh1bmsiKSk7CiB9CiAKK01hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBvc3JFbnRyeVRodW5rR2VuZXJhdG9yKFZNKiB2bSkKK3sKKyAgICBNYWNy
b0Fzc2VtYmxlciBqaXQ7CisgICAgCisgICAgLy8gV2UgZ2V0IHBhc3NlZCB0aGUgYWRkcmVzcyBv
ZiBhIHNjcmF0Y2ggYnVmZmVyLiBUaGUgZmlyc3QgOC1ieXRlIHNsb3Qgb2YgdGhlIGJ1ZmZlcgor
ICAgIC8vIGlzIHRoZSBmcmFtZSBzaXplLiBUaGUgc2Vjb25kIDgtYnl0ZSBzbG90IGlzIHRoZSBw
b2ludGVyIHRvIHdoZXJlIHdlIGFyZSBzdXBwb3NlZCB0bworICAgIC8vIGp1bXAuIFRoZSByZW1h
aW5pbmcgYnl0ZXMgYXJlIHRoZSBuZXcgY2FsbCBmcmFtZSBoZWFkZXIgZm9sbG93ZWQgYnkgdGhl
IGxvY2Fscy4KKyAgICAKKyAgICBwdHJkaWZmX3Qgb2Zmc2V0T2ZGcmFtZVNpemUgPSAwOyAvLyBU
aGlzIGlzIHRoZSBERkcgZnJhbWUgY291bnQuCisgICAgcHRyZGlmZl90IG9mZnNldE9mVGFyZ2V0
UEMgPSBvZmZzZXRPZkZyYW1lU2l6ZSArIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CisgICAgcHRy
ZGlmZl90IG9mZnNldE9mUGF5bG9hZCA9IG9mZnNldE9mVGFyZ2V0UEMgKyBzaXplb2YoRW5jb2Rl
ZEpTVmFsdWUpOworICAgIHB0cmRpZmZfdCBvZmZzZXRPZkxvY2FscyA9IG9mZnNldE9mUGF5bG9h
ZCArIHNpemVvZihSZWdpc3RlcikgKiBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplOworICAg
IAorICAgIGppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSMiwgR1BSSW5mbzo6cmVnVDAp
OworICAgIGppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKEdQUkluZm86OnJlZ1Qw
LCBvZmZzZXRPZkZyYW1lU2l6ZSksIEdQUkluZm86OnJlZ1QxKTsgLy8gTG9hZCB0aGUgZnJhbWUg
c2l6ZS4KKyAgICBqaXQubW92ZShHUFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6cmVnVDIpOworICAg
IGppdC5sc2hpZnRQdHIoTWFjcm9Bc3NlbWJsZXI6OkltbTMyKDMpLCBHUFJJbmZvOjpyZWdUMik7
CisgICAgaml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVy
OjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CisgICAgaml0LnN1YlB0cihHUFJJbmZvOjpyZWdUMiwg
TWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAKKyAgICBNYWNyb0Fz
c2VtYmxlcjo6TGFiZWwgbG9vcCA9IGppdC5sYWJlbCgpOworICAgIGppdC5zdWJQdHIoTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW0zMigxKSwgR1BSSW5mbzo6cmVnVDEpOworICAgIGppdC5tb3Zl
KEdQUkluZm86OnJlZ1QxLCBHUFJJbmZvOjpyZWdUNCk7CisgICAgaml0Lm5lZ1B0cihHUFJJbmZv
OjpyZWdUNCk7CisgICAgaml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KEdQUklu
Zm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIG9m
ZnNldE9mTG9jYWxzKSwgR1BSSW5mbzo6cmVnVDIpOworICAgIGppdC5sb2FkMzIoTWFjcm9Bc3Nl
bWJsZXI6OkJhc2VJbmRleChHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEsIE1hY3JvQXNz
ZW1ibGVyOjpUaW1lc0VpZ2h0LCBvZmZzZXRPZkxvY2FscyArIHNpemVvZihpbnQzMl90KSksIEdQ
UkluZm86OnJlZ1QzKTsKKyAgICBqaXQuc3RvcmUzMihHUFJJbmZvOjpyZWdUMiwgTWFjcm9Bc3Nl
bWJsZXI6OkJhc2VJbmRleChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6cmVn
VDQsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCAtc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KHNp
emVvZihSZWdpc3RlcikpKSk7CisgICAgaml0LnN0b3JlMzIoR1BSSW5mbzo6cmVnVDMsIE1hY3Jv
QXNzZW1ibGVyOjpCYXNlSW5kZXgoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86
OnJlZ1Q0LCBNYWNyb0Fzc2VtYmxlcjo6VGltZXNFaWdodCwgLXN0YXRpY19jYXN0PGludHB0cl90
PihzaXplb2YoUmVnaXN0ZXIpKSArIHN0YXRpY19jYXN0PGludHB0cl90PihzaXplb2YoaW50MzJf
dCkpKSk7CisgICAgaml0LmJyYW5jaFB0cihNYWNyb0Fzc2VtYmxlcjo6Tm90RXF1YWwsIEdQUklu
Zm86OnJlZ1QxLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihiaXR3aXNlX2Nhc3Q8dm9p
ZCo+KC1zdGF0aWNfY2FzdDxpbnRwdHJfdD4oSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSkp
KSkubGlua1RvKGxvb3AsICZqaXQpOworICAgIAorICAgIGppdC5sb2FkUHRyKE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QwLCBvZmZzZXRPZlRhcmdldFBDKSwgR1BSSW5mbzo6
cmVnVDEpOworICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG9rID0gaml0LmJyYW5jaFB0cihNYWNy
b0Fzc2VtYmxlcjo6QWJvdmUsIEdQUkluZm86OnJlZ1QxLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3Rl
ZEltbVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PGludHB0cl90PigxMDAwKSkp
KTsKKyAgICBqaXQuYnJlYWtwb2ludCgpOworICAgIG9rLmxpbmsoJmppdCk7CisgICAgaml0Lmp1
bXAoR1BSSW5mbzo6cmVnVDEpOworICAgIAorICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoKnZt
LCAmaml0LCBHTE9CQUxfVEhVTktfSUQpOworICAgIHJldHVybiBGSU5BTElaRV9DT0RFKHBhdGNo
QnVmZmVyLCAoIkRGRyBPU1IgZW50cnkgdGh1bmsiKSk7Cit9CisKIH0gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpERkcKIAogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdUaHVua3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1RodW5rcy5oCShyZXZpc2lvbiAxNjQxODgpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1RodW5rcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOSw2ICszOSw3IEBAIGNs
YXNzIFZNOwogbmFtZXNwYWNlIERGRyB7CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBvc3JFeGl0
R2VuZXJhdGlvblRodW5rR2VuZXJhdG9yKFZNKik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWYgb3Ny
RW50cnlUaHVua0dlbmVyYXRvcihWTSopOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAkocmV2aXNpb24g
MTY0MTg4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTEwNiw3ICsxMTA2LDExIEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9s
b29wX2hpbnQoSW5zdHJ1Y3QKICAgICAgICAgCiAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0
aW9uT3B0aW1pemUsIG1fYnl0ZWNvZGVPZmZzZXQpOwogICAgICAgICBKdW1wIG5vT3B0aW1pemVk
RW50cnkgPSBicmFuY2hUZXN0UHRyKFplcm8sIHJldHVyblZhbHVlR1BSKTsKLSAgICAgICAgbW92
ZShyZXR1cm5WYWx1ZUdQUjIsIHN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAgaWYgKCFB
U1NFUlRfRElTQUJMRUQpIHsKKyAgICAgICAgICAgIEp1bXAgb2sgPSBicmFuY2hQdHIoTWFjcm9B
c3NlbWJsZXI6OkFib3ZlLCByZWdUMCwgVHJ1c3RlZEltbVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+
KHN0YXRpY19jYXN0PGludHB0cl90PigxMDAwKSkpKTsKKyAgICAgICAgICAgIGJyZWFrcG9pbnQo
KTsKKyAgICAgICAgICAgIG9rLmxpbmsodGhpcyk7CisgICAgICAgIH0KICAgICAgICAganVtcChy
ZXR1cm5WYWx1ZUdQUik7CiAgICAgICAgIG5vT3B0aW1pemVkRW50cnkubGluayh0aGlzKTsKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCShyZXZp
c2lvbiAxNjQxODgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiREZHQ29tcGls
YXRpb25Nb2RlLmgiCiAjaW5jbHVkZSAiREZHRHJpdmVyLmgiCiAjaW5jbHVkZSAiREZHT1NSRW50
cnkuaCIKKyNpbmNsdWRlICJERkdUaHVua3MuaCIKICNpbmNsdWRlICJERkdXb3JrbGlzdC5oIgog
I2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiRXJyb3JIYW5kbGluZ1Njb3BlLmgiCkBAIC0x
MTg5LDE2ICsxMTkwLDE0IEBAIFNsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGkKICAgICBDb2RlQmxvY2sqIG9wdGltaXplZENvZGVCbG9jayA9IGNvZGVCbG9jay0+cmVwbGFj
ZW1lbnQoKTsKICAgICBBU1NFUlQoSklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKG9wdGltaXplZENv
ZGVCbG9jay0+aml0VHlwZSgpKSk7CiAgICAgCi0gICAgaWYgKHZvaWQqIGFkZHJlc3MgPSBERkc6
OnByZXBhcmVPU1JFbnRyeShleGVjLCBvcHRpbWl6ZWRDb2RlQmxvY2ssIGJ5dGVjb2RlSW5kZXgp
KSB7CisgICAgaWYgKHZvaWQqIGRhdGFCdWZmZXIgPSBERkc6OnByZXBhcmVPU1JFbnRyeShleGVj
LCBvcHRpbWl6ZWRDb2RlQmxvY2ssIGJ5dGVjb2RlSW5kZXgpKSB7CiAgICAgICAgIGlmIChPcHRp
b25zOjp2ZXJib3NlT1NSKCkpIHsKICAgICAgICAgICAgIGRhdGFMb2coCi0gICAgICAgICAgICAg
ICAgIlBlcmZvcm1pbmcgT1NSICIsICpjb2RlQmxvY2ssICIgLT4gIiwgKm9wdGltaXplZENvZGVC
bG9jaywgIiwgYWRkcmVzcyAiLAotICAgICAgICAgICAgICAgIFJhd1BvaW50ZXIoT1VSX1JFVFVS
Tl9BRERSRVNTKSwgIiAtPiAiLCBSYXdQb2ludGVyKGFkZHJlc3MpLCAiLlxuIik7CisgICAgICAg
ICAgICAgICAgIlBlcmZvcm1pbmcgT1NSICIsICpjb2RlQmxvY2ssICIgLT4gIiwgKm9wdGltaXpl
ZENvZGVCbG9jaywgIi5cbiIpOwogICAgICAgICB9CiAKICAgICAgICAgY29kZUJsb2NrLT5vcHRp
bWl6ZVNvb24oKTsKLSAgICAgICAgQVNTRVJUKGV4ZWMtPmNvZGVCbG9jaygpID09IG9wdGltaXpl
ZENvZGVCbG9jayk7Ci0gICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoYWRkcmVzcywgZXhlYy0+
dG9wT2ZGcmFtZSgpKTsKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCh2bS5nZXRDVElTdHVi
KERGRzo6b3NyRW50cnlUaHVua0dlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCks
IGRhdGFCdWZmZXIpOwogICAgIH0KIAogICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpIHsK
</data>
<flag name="review"
          id="248416"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>