<?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>39447</bug_id>
          
          <creation_ts>2010-05-20 14:01:06 -0700</creation_ts>
          <short_desc>Removed some reliance on callFame[CodeBlock] by storing CodeBlock in a local variable in the Interpreter.</short_desc>
          <delta_ts>2010-05-21 03:50:14 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>loki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>228543</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-05-20 14:01:06 -0700</bug_when>
    <thetext>Removed some reliance on callFame[CodeBlock] by storing CodeBlock in a local variable in the Interpreter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228544</commentid>
    <comment_count>1</comment_count>
      <attachid>56627</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-05-20 14:02:52 -0700</bug_when>
    <thetext>Created attachment 56627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228547</commentid>
    <comment_count>2</comment_count>
      <attachid>56627</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-20 14:04:53 -0700</bug_when>
    <thetext>Comment on attachment 56627
Patch

Any performance data on the effect on the interpreter?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228557</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-05-20 14:15:39 -0700</bug_when>
    <thetext>Slight SunSpider speedup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228563</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2010-05-20 14:20:22 -0700</bug_when>
    <thetext>Committed r59863: &lt;http://trac.webkit.org/changeset/59863&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228829</commentid>
    <comment_count>5</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-05-21 03:08:09 -0700</bug_when>
    <thetext>Geoffrey, did you run run-javascriptcore-tests in interpreter mode? On x86 and ARM there are more than 900 regressions ;) . We should rollout the patch until a proper fix is available (probably the fix will influence the performance data).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228843</commentid>
    <comment_count>6</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2010-05-21 03:50:14 -0700</bug_when>
    <thetext>The fix is in bug 39480.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56627</attachid>
            <date>2010-05-20 14:02:52 -0700</date>
            <delta_ts>2010-05-20 14:04:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39447-20100520140251.patch</filename>
            <type>text/plain</type>
            <size>27137</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU5ODYyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDUtMjAgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwg
KE9PUFMhKQorCisgICAgICAgIFJlbW92ZWQgc29tZSByZWxpYW5jZSBvbiBjYWxsRmFtZVtDb2Rl
QmxvY2tdIGJ5IHN0b3JpbmcgQ29kZUJsb2NrIGluIGEKKyAgICAgICAgbG9jYWwgdmFyaWFibGUg
aW4gdGhlIEludGVycHJldGVyLgorCisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIu
Y3BwOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUpOgorICAgICAg
ICAqIGpzYy5jcHA6CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIwMTAtMDUtMTkgIEdh
dmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE9saXZlciBIdW50LgpJbmRleDogSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0lu
dGVycHJldGVyLmNwcAkocmV2aXNpb24gNTk3OTEpCisrKyBKYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyODAsNyArMTI4MCw4IEBA
IEpTVmFsdWUgSW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKEV4ZWMKICAgICBKU1ZhbHVlIGV4
Y2VwdGlvblZhbHVlOwogICAgIEhhbmRsZXJJbmZvKiBoYW5kbGVyID0gMDsKIAotICAgIEluc3Ry
dWN0aW9uKiB2UEMgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdp
bigpOworICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsK
KyAgICBJbnN0cnVjdGlvbiogdlBDID0gY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigp
OwogICAgIFByb2ZpbGVyKiogZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlID0gUHJvZmlsZXI6OmVu
YWJsZWRQcm9maWxlclJlZmVyZW5jZSgpOwogICAgIHVuc2lnbmVkIHRpY2tDb3VudCA9IGdsb2Jh
bERhdGEtPnRpbWVvdXRDaGVja2VyLnRpY2tzVW50aWxOZXh0Q2hlY2soKTsKIApAQCAtMTMxMiw3
ICsxMzEzLDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUoRXhlYwogI2Vu
ZGlmCiAKICNpZiBIQVZFKENPTVBVVEVEX0dPVE8pCi0gICAgI2RlZmluZSBORVhUX0lOU1RSVUNU
SU9OKCkgU0FNUExFKGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksIHZQQyk7IGdvdG8gKnZQQy0+dS5v
cGNvZGUKKyAgICAjZGVmaW5lIE5FWFRfSU5TVFJVQ1RJT04oKSBTQU1QTEUoY29kZUJsb2NrLCB2
UEMpOyBnb3RvICp2UEMtPnUub3Bjb2RlCiAjaWYgRU5BQkxFKE9QQ09ERV9TVEFUUykKICAgICAj
ZGVmaW5lIERFRklORV9PUENPREUob3Bjb2RlKSBvcGNvZGU6IE9wY29kZVN0YXRzOjpyZWNvcmRJ
bnN0cnVjdGlvbihvcGNvZGUpOwogI2Vsc2UKQEAgLTEzMjAsNyArMTMyMSw3IEBAIEpTVmFsdWUg
SW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKEV4ZWMKICNlbmRpZgogICAgIE5FWFRfSU5TVFJV
Q1RJT04oKTsKICNlbHNlCi0gICAgI2RlZmluZSBORVhUX0lOU1RSVUNUSU9OKCkgU0FNUExFKGNh
bGxGcmFtZS0+Y29kZUJsb2NrKCksIHZQQyk7IGdvdG8gaW50ZXJwcmV0ZXJMb29wU3RhcnQKKyAg
ICAjZGVmaW5lIE5FWFRfSU5TVFJVQ1RJT04oKSBTQU1QTEUoY29kZUJsb2NrLCB2UEMpOyBnb3Rv
IGludGVycHJldGVyTG9vcFN0YXJ0CiAjaWYgRU5BQkxFKE9QQ09ERV9TVEFUUykKICAgICAjZGVm
aW5lIERFRklORV9PUENPREUob3Bjb2RlKSBjYXNlIG9wY29kZTogT3Bjb2RlU3RhdHM6OnJlY29y
ZEluc3RydWN0aW9uKG9wY29kZSk7CiAjZWxzZQpAQCAtMTM2OSw3ICsxMzcwLDcgQEAgSlNWYWx1
ZSBJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUoRXhlYwogICAgICAgICAqLwogICAgICAgICBp
bnQgZHN0ID0gdlBDWzFdLnUub3BlcmFuZDsKICAgICAgICAgaW50IHJlZ0V4cCA9IHZQQ1syXS51
Lm9wZXJhbmQ7Ci0gICAgICAgIGNhbGxGcmFtZS0+cihkc3QpID0gSlNWYWx1ZShuZXcgKGdsb2Jh
bERhdGEpIFJlZ0V4cE9iamVjdChjYWxsRnJhbWUtPnNjb3BlQ2hhaW4oKS0+Z2xvYmFsT2JqZWN0
LT5yZWdFeHBTdHJ1Y3R1cmUoKSwgY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+cmVnZXhwKHJlZ0V4
cCkpKTsKKyAgICAgICAgY2FsbEZyYW1lLT5yKGRzdCkgPSBKU1ZhbHVlKG5ldyAoZ2xvYmFsRGF0
YSkgUmVnRXhwT2JqZWN0KGNhbGxGcmFtZS0+c2NvcGVDaGFpbigpLT5nbG9iYWxPYmplY3QtPnJl
Z0V4cFN0cnVjdHVyZSgpLCBjb2RlQmxvY2stPnJlZ2V4cChyZWdFeHApKSk7CiAKICAgICAgICAg
dlBDICs9IE9QQ09ERV9MRU5HVEgob3BfbmV3X3JlZ2V4cCk7CiAgICAgICAgIE5FWFRfSU5TVFJV
Q1RJT04oKTsKQEAgLTE5NDMsNyArMTk0NCw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OnByaXZh
dGVFeGVjdXRlKEV4ZWMKIAogICAgICAgICBKU1ZhbHVlIGJhc2VWYWwgPSBjYWxsRnJhbWUtPnIo
YmFzZSkuanNWYWx1ZSgpOwogCi0gICAgICAgIGlmIChpc0ludmFsaWRQYXJhbUZvckluc3RhbmNl
T2YoY2FsbEZyYW1lLCBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLCB2UEMsIGJhc2VWYWwsIGV4Y2Vw
dGlvblZhbHVlKSkKKyAgICAgICAgaWYgKGlzSW52YWxpZFBhcmFtRm9ySW5zdGFuY2VPZihjYWxs
RnJhbWUsIGNvZGVCbG9jaywgdlBDLCBiYXNlVmFsLCBleGNlcHRpb25WYWx1ZSkpCiAgICAgICAg
ICAgICBnb3RvIHZtX3Rocm93OwogCiAgICAgICAgIGJvb2wgcmVzdWx0ID0gYXNPYmplY3QoYmFz
ZVZhbCktPmhhc0luc3RhbmNlKGNhbGxGcmFtZSwgY2FsbEZyYW1lLT5yKHZhbHVlKS5qc1ZhbHVl
KCksIGNhbGxGcmFtZS0+cihiYXNlUHJvdG8pLmpzVmFsdWUoKSk7CkBAIC0yMDY1LDcgKzIwNjYs
NyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpwcml2YXRlRXhlY3V0ZShFeGVjCiAgICAgICAgIGlu
dCBiYXNlID0gdlBDWzNdLnUub3BlcmFuZDsKIAogICAgICAgICBKU1ZhbHVlIGJhc2VWYWwgPSBj
YWxsRnJhbWUtPnIoYmFzZSkuanNWYWx1ZSgpOwotICAgICAgICBpZiAoaXNJbnZhbGlkUGFyYW1G
b3JJbihjYWxsRnJhbWUsIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksIHZQQywgYmFzZVZhbCwgZXhj
ZXB0aW9uVmFsdWUpKQorICAgICAgICBpZiAoaXNJbnZhbGlkUGFyYW1Gb3JJbihjYWxsRnJhbWUs
IGNvZGVCbG9jaywgdlBDLCBiYXNlVmFsLCBleGNlcHRpb25WYWx1ZSkpCiAgICAgICAgICAgICBn
b3RvIHZtX3Rocm93OwogCiAgICAgICAgIEpTT2JqZWN0KiBiYXNlT2JqID0gYXNPYmplY3QoYmFz
ZVZhbCk7CkBAIC0yMTgwLDcgKzIxODEsNyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpwcml2YXRl
RXhlY3V0ZShFeGVjCiAgICAgICAgICAqLwogICAgICAgICBpbnQgZHN0ID0gdlBDWzFdLnUub3Bl
cmFuZDsKICAgICAgICAgaW50IGluZGV4ID0gdlBDWzJdLnUub3BlcmFuZDsKLSAgICAgICAgaW50
IHNraXAgPSB2UENbM10udS5vcGVyYW5kICsgY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+bmVlZHNG
dWxsU2NvcGVDaGFpbigpOworICAgICAgICBpbnQgc2tpcCA9IHZQQ1szXS51Lm9wZXJhbmQgKyBj
b2RlQmxvY2stPm5lZWRzRnVsbFNjb3BlQ2hhaW4oKTsKIAogICAgICAgICBTY29wZUNoYWluTm9k
ZSogc2NvcGVDaGFpbiA9IGNhbGxGcmFtZS0+c2NvcGVDaGFpbigpOwogICAgICAgICBTY29wZUNo
YWluSXRlcmF0b3IgaXRlciA9IHNjb3BlQ2hhaW4tPmJlZ2luKCk7CkBAIC0yMjAxLDcgKzIyMDIs
NyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpwcml2YXRlRXhlY3V0ZShFeGVjCiAKICAgICAgICAg
ICovCiAgICAgICAgIGludCBpbmRleCA9IHZQQ1sxXS51Lm9wZXJhbmQ7Ci0gICAgICAgIGludCBz
a2lwID0gdlBDWzJdLnUub3BlcmFuZCArIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPm5lZWRzRnVs
bFNjb3BlQ2hhaW4oKTsKKyAgICAgICAgaW50IHNraXAgPSB2UENbMl0udS5vcGVyYW5kICsgY29k
ZUJsb2NrLT5uZWVkc0Z1bGxTY29wZUNoYWluKCk7CiAgICAgICAgIGludCB2YWx1ZSA9IHZQQ1sz
XS51Lm9wZXJhbmQ7CiAKICAgICAgICAgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4gPSBjYWxs
RnJhbWUtPnNjb3BlQ2hhaW4oKTsKQEAgLTIyNjAsNyArMjI2MSw2IEBAIEpTVmFsdWUgSW50ZXJw
cmV0ZXI6OnByaXZhdGVFeGVjdXRlKEV4ZWMKICAgICAgICAgaW50IGJhc2UgPSB2UENbMl0udS5v
cGVyYW5kOwogICAgICAgICBpbnQgcHJvcGVydHkgPSB2UENbM10udS5vcGVyYW5kOwogCi0gICAg
ICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsKICAgICAg
ICAgSWRlbnRpZmllciYgaWRlbnQgPSBjb2RlQmxvY2stPmlkZW50aWZpZXIocHJvcGVydHkpOwog
ICAgICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IGNhbGxGcmFtZS0+cihiYXNlKS5qc1ZhbHVlKCk7
CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KGJhc2VWYWx1ZSk7CkBAIC0yMjkzLDcgKzIyOTMs
NyBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpwcml2YXRlRXhlY3V0ZShFeGVjCiAgICAgICAgICAg
ICAgICAgaW50IGRzdCA9IHZQQ1sxXS51Lm9wZXJhbmQ7CiAgICAgICAgICAgICAgICAgaW50IG9m
ZnNldCA9IHZQQ1s1XS51Lm9wZXJhbmQ7CiAKLSAgICAgICAgICAgICAgICBBU1NFUlQoYmFzZU9i
amVjdC0+Z2V0KGNhbGxGcmFtZSwgY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aWRlbnRpZmllcih2
UENbM10udS5vcGVyYW5kKSkgPT0gYmFzZU9iamVjdC0+Z2V0RGlyZWN0T2Zmc2V0KG9mZnNldCkp
OworICAgICAgICAgICAgICAgIEFTU0VSVChiYXNlT2JqZWN0LT5nZXQoY2FsbEZyYW1lLCBjb2Rl
QmxvY2stPmlkZW50aWZpZXIodlBDWzNdLnUub3BlcmFuZCkpID09IGJhc2VPYmplY3QtPmdldERp
cmVjdE9mZnNldChvZmZzZXQpKTsKICAgICAgICAgICAgICAgICBjYWxsRnJhbWUtPnIoZHN0KSA9
IEpTVmFsdWUoYmFzZU9iamVjdC0+Z2V0RGlyZWN0T2Zmc2V0KG9mZnNldCkpOwogCiAgICAgICAg
ICAgICAgICAgdlBDICs9IE9QQ09ERV9MRU5HVEgob3BfZ2V0X2J5X2lkX3NlbGYpOwpAQCAtMjMw
MSw3ICsyMzAxLDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6cHJpdmF0ZUV4ZWN1dGUoRXhlYwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgdW5jYWNoZUdldEJ5SUQoY2FsbEZy
YW1lLT5jb2RlQmxvY2soKSwgdlBDKTsKKyAgICAgICAgdW5jYWNoZUdldEJ5SUQoY29kZUJsb2Nr
LCB2UEMpOwogICAgICAgICBORVhUX0lOU1RSVUNUSU9OKCk7CiAgICAgfQogICAgIERFRklORV9P
UENPREUob3BfZ2V0X2J5X2lkX3Byb3RvKSB7CkBAIC0yMzI3LDggKzIzMjcsOCBAQCBKU1ZhbHVl
IEludGVycHJldGVyOjpwcml2YXRlRXhlY3V0ZShFeGVjCiAgICAgICAgICAgICAgICAgICAgIGlu
dCBkc3QgPSB2UENbMV0udS5vcGVyYW5kOwogICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0
ID0gdlBDWzZdLnUub3BlcmFuZDsKIAotICAgICAgICAgICAgICAgICAgICBBU1NFUlQocHJvdG9P
YmplY3QtPmdldChjYWxsRnJhbWUsIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlkZW50aWZpZXIo
dlBDWzNdLnUub3BlcmFuZCkpID09IHByb3RvT2JqZWN0LT5nZXREaXJlY3RPZmZzZXQob2Zmc2V0
KSk7Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVChiYXNlVmFsdWUuZ2V0KGNhbGxGcmFtZSwg
Y2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aWRlbnRpZmllcih2UENbM10udS5vcGVyYW5kKSkgPT0g
cHJvdG9PYmplY3QtPmdldERpcmVjdE9mZnNldChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKHByb3RvT2JqZWN0LT5nZXQoY2FsbEZyYW1lLCBjb2RlQmxvY2stPmlkZW50aWZp
ZXIodlBDWzNdLnUub3BlcmFuZCkpID09IHByb3RvT2JqZWN0LT5nZXREaXJlY3RPZmZzZXQob2Zm
c2V0KSk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVChiYXNlVmFsdWUuZ2V0KGNhbGxGcmFt
ZSwgY29kZUJsb2NrLT5pZGVudGlmaWVyKHZQQ1szXS51Lm9wZXJhbmQpKSA9PSBwcm90b09iamVj
dC0+Z2V0RGlyZWN0T2Zmc2V0KG9mZnNldCkpOwogICAgICAgICAgICAgICAgICAgICBjYWxsRnJh
bWUtPnIoZHN0KSA9IEpTVmFsdWUocHJvdG9PYmplY3QtPmdldERpcmVjdE9mZnNldChvZmZzZXQp
KTsKIAogICAgICAgICAgICAgICAgICAgICB2UEMgKz0gT1BDT0RFX0xFTkdUSChvcF9nZXRfYnlf
aWRfcHJvdG8pOwpAQCAtMjMzNyw3ICsyMzM3LDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6cHJp
dmF0ZUV4ZWN1dGUoRXhlYwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgdW5j
YWNoZUdldEJ5SUQoY2FsbEZyYW1lLT5jb2RlQmxvY2soKSwgdlBDKTsKKyAgICAgICAgdW5jYWNo
ZUdldEJ5SUQoY29kZUJsb2NrLCB2UEMpOwogICAgICAgICBORVhUX0lOU1RSVUNUSU9OKCk7CiAg
ICAgfQogI2lmIEhBVkUoQ09NUFVURURfR09UTykKQEAgLTIzNzksNyArMjM3OSw3IEBAIEpTVmFs
dWUgSW50ZXJwcmV0ZXI6OnByaXZhdGVFeGVjdXRlKEV4ZWMKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgdW5jYWNoZUdldEJ5SUQoY2FsbEZyYW1l
LT5jb2RlQmxvY2soKSwgdlBDKTsKKyAgICAgICAgdW5jYWNoZUdldEJ5SUQoY29kZUJsb2NrLCB2
UEMpOwogICAgICAgICBORVhUX0lOU1RSVUNUSU9OKCk7CiAgICAgfQogI2lmIEhBVkUoQ09NUFVU
RURfR09UTykKQEAgLTI0MTAsNyArMjQxMCw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OnByaXZh
dGVFeGVjdXRlKEV4ZWMKICAgICAgICAgICAgICAgICBpZiAoTElLRUxZKHByb3RvT2JqZWN0LT5z
dHJ1Y3R1cmUoKSA9PSBwcm90b3R5cGVTdHJ1Y3R1cmUpKSB7CiAgICAgICAgICAgICAgICAgICAg
IGludCBkc3QgPSB2UENbMV0udS5vcGVyYW5kOwogICAgICAgICAgICAgICAgICAgICBpbnQgcHJv
cGVydHkgPSB2UENbM10udS5vcGVyYW5kOwotICAgICAgICAgICAgICAgICAgICBJZGVudGlmaWVy
JiBpZGVudCA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlkZW50aWZpZXIocHJvcGVydHkpOwor
ICAgICAgICAgICAgICAgICAgICBJZGVudGlmaWVyJiBpZGVudCA9IGNvZGVCbG9jay0+aWRlbnRp
Zmllcihwcm9wZXJ0eSk7CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBnZXR0ZXIgPSB2UENbNl0udS5nZXR0ZXJGdW5j
OwogICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGdldHRlcihjYWxsRnJhbWUs
IHByb3RvT2JqZWN0LCBpZGVudCk7CkBAIC0yNDIxLDcgKzI0MjEsNyBAQCBKU1ZhbHVlIEludGVy
cHJldGVyOjpwcml2YXRlRXhlY3V0ZShFeGVjCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQogICAgICAgICB9Ci0gICAgICAgIHVuY2FjaGVHZXRCeUlEKGNhbGxGcmFtZS0+Y29kZUJs
b2NrKCksIHZQQyk7CisgICAgICAgIHVuY2FjaGVHZXRCeUlEKGNvZGVCbG9jaywgdlBDKTsKICAg
ICAgICAgTkVYVF9JTlNUUlVDVElPTigpOwogICAgIH0KICNpZiBIQVZFKENPTVBVVEVEX0dPVE8p
CkBAIC0yNDk4LDggKzI0OTgsOCBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpwcml2YXRlRXhlY3V0
ZShFeGVjCiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHN0ID0gdlBDWzFdLnUub3BlcmFu
ZDsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQgPSB2UENbN10udS5vcGVyYW5k
OwogCi0gICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoYmFzZU9iamVjdC0+Z2V0KGNhbGxG
cmFtZSwgY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aWRlbnRpZmllcih2UENbM10udS5vcGVyYW5k
KSkgPT0gYmFzZU9iamVjdC0+Z2V0RGlyZWN0T2Zmc2V0KG9mZnNldCkpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgQVNTRVJUKGJhc2VWYWx1ZS5nZXQoY2FsbEZyYW1lLCBjYWxsRnJhbWUtPmNv
ZGVCbG9jaygpLT5pZGVudGlmaWVyKHZQQ1szXS51Lm9wZXJhbmQpKSA9PSBiYXNlT2JqZWN0LT5n
ZXREaXJlY3RPZmZzZXQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQo
YmFzZU9iamVjdC0+Z2V0KGNhbGxGcmFtZSwgY29kZUJsb2NrLT5pZGVudGlmaWVyKHZQQ1szXS51
Lm9wZXJhbmQpKSA9PSBiYXNlT2JqZWN0LT5nZXREaXJlY3RPZmZzZXQob2Zmc2V0KSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBBU1NFUlQoYmFzZVZhbHVlLmdldChjYWxsRnJhbWUsIGNvZGVC
bG9jay0+aWRlbnRpZmllcih2UENbM10udS5vcGVyYW5kKSkgPT0gYmFzZU9iamVjdC0+Z2V0RGly
ZWN0T2Zmc2V0KG9mZnNldCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgY2FsbEZyYW1lLT5y
KGRzdCkgPSBKU1ZhbHVlKGJhc2VPYmplY3QtPmdldERpcmVjdE9mZnNldChvZmZzZXQpKTsKIAog
ICAgICAgICAgICAgICAgICAgICAgICAgdlBDICs9IE9QQ09ERV9MRU5HVEgob3BfZ2V0X2J5X2lk
X2NoYWluKTsKQEAgLTI1MTIsNyArMjUxMiw3IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OnByaXZh
dGVFeGVjdXRlKEV4ZWMKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIHVuY2Fj
aGVHZXRCeUlEKGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksIHZQQyk7CisgICAgICAgIHVuY2FjaGVH
ZXRCeUlEKGNvZGVCbG9jaywgdlBDKTsKICAgICAgICAgTkVYVF9JTlNUUlVDVElPTigpOwogICAg
IH0KICNpZiBIQVZFKENPTVBVVEVEX0dPVE8pCkBAIC0yNTUyLDcgKzI1NTIsNyBAQCBKU1ZhbHVl
IEludGVycHJldGVyOjpwcml2YXRlRXhlY3V0ZShFeGVjCiAgICAgICAgICAgICAgICAgTkVYVF9J
TlNUUlVDVElPTigpOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIHVuY2FjaGVH
ZXRCeUlEKGNhbGxGcmFtZS0+Y29kZUJsb2NrKCksIHZQQyk7CisgICAgICAgIHVuY2FjaGVHZXRC
eUlEKGNvZGVCbG9jaywgdlBDKTsKICAgICAgICAgTkVYVF9JTlNUUlVDVElPTigpOwogICAgIH0K
ICNpZiBIQVZFKENPTVBVVEVEX0dPVE8pCkBAIC0yNTc5LDcgKzI1NzksNyBAQCBKU1ZhbHVlIElu
dGVycHJldGVyOjpwcml2YXRlRXhlY3V0ZShFeGVjCiAgICAgICAgICAgICAgICAgQVNTRVJUKGJh
c2VDZWxsLT5pc09iamVjdCgpKTsKICAgICAgICAgICAgICAgICBpbnQgZHN0ID0gdlBDWzFdLnUu
b3BlcmFuZDsKICAgICAgICAgICAgICAgICBpbnQgcHJvcGVydHkgPSB2UENbM10udS5vcGVyYW5k
OwotICAgICAgICAgICAgICAgIElkZW50aWZpZXImIGlkZW50ID0gY2FsbEZyYW1lLT5jb2RlQmxv
Y2soKS0+aWRlbnRpZmllcihwcm9wZXJ0eSk7CisgICAgICAgICAgICAgICAgSWRlbnRpZmllciYg
aWRlbnQgPSBjb2RlQmxvY2stPmlkZW50aWZpZXIocHJvcGVydHkpOwogCiAgICAgICAgICAgICAg
ICAgUHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmMgZ2V0dGVyID0gdlBDWzVdLnUuZ2V0dGVyRnVu
YzsKICAgICAgICAgICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IGdldHRlcihjYWxsRnJhbWUsIGJh
c2VWYWx1ZSwgaWRlbnQpOwpAQCAtMjU4OSw3ICsyNTg5LDcgQEAgSlNWYWx1ZSBJbnRlcnByZXRl
cjo6cHJpdmF0ZUV4ZWN1dGUoRXhlYwogICAgICAgICAgICAgICAgIE5FWFRfSU5TVFJVQ1RJT04o
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICB1bmNhY2hlR2V0QnlJRChjYWxs
RnJhbWUtPmNvZGVCbG9jaygpLCB2UEMpOworICAgICAgICB1bmNhY2hlR2V0QnlJRChjb2RlQmxv
Y2ssIHZQQyk7CiAgICAgICAgIE5FWFRfSU5TVFJVQ1RJT04oKTsKICAgICB9CiAjaWYgSEFWRShD
T01QVVRFRF9HT1RPKQpAQCAtMjYwNSw3ICsyNjA1LDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoK
ICAgICAgICAgaW50IGJhc2UgPSB2UENbMl0udS5vcGVyYW5kOwogICAgICAgICBpbnQgcHJvcGVy
dHkgPSB2UENbM10udS5vcGVyYW5kOwogCi0gICAgICAgIElkZW50aWZpZXImIGlkZW50ID0gY2Fs
bEZyYW1lLT5jb2RlQmxvY2soKS0+aWRlbnRpZmllcihwcm9wZXJ0eSk7CisgICAgICAgIElkZW50
aWZpZXImIGlkZW50ID0gY29kZUJsb2NrLT5pZGVudGlmaWVyKHByb3BlcnR5KTsKICAgICAgICAg
SlNWYWx1ZSBiYXNlVmFsdWUgPSBjYWxsRnJhbWUtPnIoYmFzZSkuanNWYWx1ZSgpOwogICAgICAg
ICBQcm9wZXJ0eVNsb3Qgc2xvdChiYXNlVmFsdWUpOwogICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9
IGJhc2VWYWx1ZS5nZXQoY2FsbEZyYW1lLCBpZGVudCwgc2xvdCk7CkBAIC0yNjY0LDcgKzI2NjQs
NyBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0KICAgICAgICAgfQotICAgICAgICB1bmNhY2hlR2V0QnlJRChjYWxsRnJhbWUtPmNvZGVCbG9j
aygpLCB2UEMpOworICAgICAgICB1bmNhY2hlR2V0QnlJRChjb2RlQmxvY2ssIHZQQyk7CiAgICAg
ICAgIE5FWFRfSU5TVFJVQ1RJT04oKTsKICAgICB9CiAjaWYgSEFWRShDT01QVVRFRF9HT1RPKQpA
QCAtMjcwMSw3ICsyNzAxLDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgICAg
ICAgICAgaWYgKCsraXQgPT0gZW5kKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZHN0
ID0gdlBDWzFdLnUub3BlcmFuZDsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwcm9wZXJ0
eSA9IHZQQ1szXS51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICBJZGVudGlmaWVy
JiBpZGVudCA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlkZW50aWZpZXIocHJvcGVydHkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgSWRlbnRpZmllciYgaWRlbnQgPSBjb2RlQmxvY2stPmlk
ZW50aWZpZXIocHJvcGVydHkpOwogICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICBQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBnZXR0ZXIgPSB2UENbN10u
dS5nZXR0ZXJGdW5jOwogICAgICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBn
ZXR0ZXIoY2FsbEZyYW1lLCBiYXNlT2JqZWN0LCBpZGVudCk7CkBAIC0yNzE2LDcgKzI3MTYsNyBA
QCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
ICAgICAgICAgfQotICAgICAgICB1bmNhY2hlR2V0QnlJRChjYWxsRnJhbWUtPmNvZGVCbG9jaygp
LCB2UEMpOworICAgICAgICB1bmNhY2hlR2V0QnlJRChjb2RlQmxvY2ssIHZQQyk7CiAgICAgICAg
IE5FWFRfSU5TVFJVQ1RJT04oKTsKICAgICB9CiAjaWYgSEFWRShDT01QVVRFRF9HT1RPKQpAQCAt
MjczOSw3ICsyNzM5LDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgIE5FWFRf
SU5TVFJVQ1RJT04oKTsKICAgICAgICAgfQogCi0gICAgICAgIHVuY2FjaGVHZXRCeUlEKGNhbGxG
cmFtZS0+Y29kZUJsb2NrKCksIHZQQyk7CisgICAgICAgIHVuY2FjaGVHZXRCeUlEKGNvZGVCbG9j
aywgdlBDKTsKICAgICAgICAgTkVYVF9JTlNUUlVDVElPTigpOwogICAgIH0KICAgICBERUZJTkVf
T1BDT0RFKG9wX2dldF9zdHJpbmdfbGVuZ3RoKSB7CkBAIC0yNzU5LDcgKzI3NTksNyBAQCBza2lw
X2lkX2N1c3RvbV9zZWxmOgogICAgICAgICAgICAgTkVYVF9JTlNUUlVDVElPTigpOwogICAgICAg
ICB9CiAKLSAgICAgICAgdW5jYWNoZUdldEJ5SUQoY2FsbEZyYW1lLT5jb2RlQmxvY2soKSwgdlBD
KTsKKyAgICAgICAgdW5jYWNoZUdldEJ5SUQoY29kZUJsb2NrLCB2UEMpOwogICAgICAgICBORVhU
X0lOU1RSVUNUSU9OKCk7CiAgICAgfQogICAgIERFRklORV9PUENPREUob3BfcHV0X2J5X2lkKSB7
CkBAIC0yNzc2LDcgKzI3NzYsNiBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICBpbnQg
cHJvcGVydHkgPSB2UENbMl0udS5vcGVyYW5kOwogICAgICAgICBpbnQgdmFsdWUgPSB2UENbM10u
dS5vcGVyYW5kOwogCi0gICAgICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY2FsbEZyYW1lLT5j
b2RlQmxvY2soKTsKICAgICAgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBjYWxsRnJhbWUtPnIoYmFz
ZSkuanNWYWx1ZSgpOwogICAgICAgICBJZGVudGlmaWVyJiBpZGVudCA9IGNvZGVCbG9jay0+aWRl
bnRpZmllcihwcm9wZXJ0eSk7CiAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90OwpAQCAtMjgx
Niw3ICsyODE1LDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgICAgICBKU1Zh
bHVlIHByb3RvID0gYmFzZU9iamVjdC0+c3RydWN0dXJlKCktPnByb3RvdHlwZUZvckxvb2t1cChj
YWxsRnJhbWUpOwogICAgICAgICAgICAgICAgIHdoaWxlICghcHJvdG8uaXNOdWxsKCkpIHsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKFVOTElLRUxZKGFzT2JqZWN0KHByb3RvKS0+c3RydWN0dXJl
KCkgIT0gKCppdCkuZ2V0KCkpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1bmNhY2hlUHV0
QnlJRChjYWxsRnJhbWUtPmNvZGVCbG9jaygpLCB2UEMpOworICAgICAgICAgICAgICAgICAgICAg
ICAgdW5jYWNoZVB1dEJ5SUQoY29kZUJsb2NrLCB2UEMpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgTkVYVF9JTlNUUlVDVElPTigpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICsraXQ7CkBAIC0yODI3LDcgKzI4MjYsNyBAQCBza2lwX2lkX2N1c3RvbV9zZWxm
OgogCiAgICAgICAgICAgICAgICAgaW50IHZhbHVlID0gdlBDWzNdLnUub3BlcmFuZDsKICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBvZmZzZXQgPSB2UENbN10udS5vcGVyYW5kOwotICAgICAgICAg
ICAgICAgIEFTU0VSVChiYXNlT2JqZWN0LT5vZmZzZXRGb3JMb2NhdGlvbihiYXNlT2JqZWN0LT5n
ZXREaXJlY3RMb2NhdGlvbihjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5pZGVudGlmaWVyKHZQQ1sy
XS51Lm9wZXJhbmQpKSkgPT0gb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoYmFzZU9i
amVjdC0+b2Zmc2V0Rm9yTG9jYXRpb24oYmFzZU9iamVjdC0+Z2V0RGlyZWN0TG9jYXRpb24oY29k
ZUJsb2NrLT5pZGVudGlmaWVyKHZQQ1syXS51Lm9wZXJhbmQpKSkgPT0gb2Zmc2V0KTsKICAgICAg
ICAgICAgICAgICBiYXNlT2JqZWN0LT5wdXREaXJlY3RPZmZzZXQob2Zmc2V0LCBjYWxsRnJhbWUt
PnIodmFsdWUpLmpzVmFsdWUoKSk7CiAKICAgICAgICAgICAgICAgICB2UEMgKz0gT1BDT0RFX0xF
TkdUSChvcF9wdXRfYnlfaWRfdHJhbnNpdGlvbik7CkBAIC0yODM1LDcgKzI4MzQsNyBAQCBza2lw
X2lkX2N1c3RvbV9zZWxmOgogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIAotICAg
ICAgICB1bmNhY2hlUHV0QnlJRChjYWxsRnJhbWUtPmNvZGVCbG9jaygpLCB2UEMpOworICAgICAg
ICB1bmNhY2hlUHV0QnlJRChjb2RlQmxvY2ssIHZQQyk7CiAgICAgICAgIE5FWFRfSU5TVFJVQ1RJ
T04oKTsKICAgICB9CiAgICAgREVGSU5FX09QQ09ERShvcF9wdXRfYnlfaWRfcmVwbGFjZSkgewpA
QCAtMjg2Miw3ICsyODYxLDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgICAg
ICBpbnQgdmFsdWUgPSB2UENbM10udS5vcGVyYW5kOwogICAgICAgICAgICAgICAgIHVuc2lnbmVk
IG9mZnNldCA9IHZQQ1s1XS51Lm9wZXJhbmQ7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgQVNTRVJUKGJhc2VPYmplY3QtPm9mZnNldEZvckxvY2F0aW9uKGJhc2VPYmplY3QtPmdl
dERpcmVjdExvY2F0aW9uKGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlkZW50aWZpZXIodlBDWzJd
LnUub3BlcmFuZCkpKSA9PSBvZmZzZXQpOworICAgICAgICAgICAgICAgIEFTU0VSVChiYXNlT2Jq
ZWN0LT5vZmZzZXRGb3JMb2NhdGlvbihiYXNlT2JqZWN0LT5nZXREaXJlY3RMb2NhdGlvbihjb2Rl
QmxvY2stPmlkZW50aWZpZXIodlBDWzJdLnUub3BlcmFuZCkpKSA9PSBvZmZzZXQpOwogICAgICAg
ICAgICAgICAgIGJhc2VPYmplY3QtPnB1dERpcmVjdE9mZnNldChvZmZzZXQsIGNhbGxGcmFtZS0+
cih2YWx1ZSkuanNWYWx1ZSgpKTsKIAogICAgICAgICAgICAgICAgIHZQQyArPSBPUENPREVfTEVO
R1RIKG9wX3B1dF9ieV9pZF9yZXBsYWNlKTsKQEAgLTI4NzAsNyArMjg2OSw3IEBAIHNraXBfaWRf
Y3VzdG9tX3NlbGY6CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICB1bmNhY2hl
UHV0QnlJRChjYWxsRnJhbWUtPmNvZGVCbG9jaygpLCB2UEMpOworICAgICAgICB1bmNhY2hlUHV0
QnlJRChjb2RlQmxvY2ssIHZQQyk7CiAgICAgICAgIE5FWFRfSU5TVFJVQ1RJT04oKTsKICAgICB9
CiAgICAgREVGSU5FX09QQ09ERShvcF9wdXRfYnlfaWRfZ2VuZXJpYykgewpAQCAtMjg4Nyw3ICsy
ODg2LDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgaW50IHZhbHVlID0gdlBDWzNd
LnUub3BlcmFuZDsKIAogICAgICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IGNhbGxGcmFtZS0+cihi
YXNlKS5qc1ZhbHVlKCk7Ci0gICAgICAgIElkZW50aWZpZXImIGlkZW50ID0gY2FsbEZyYW1lLT5j
b2RlQmxvY2soKS0+aWRlbnRpZmllcihwcm9wZXJ0eSk7CisgICAgICAgIElkZW50aWZpZXImIGlk
ZW50ID0gY29kZUJsb2NrLT5pZGVudGlmaWVyKHByb3BlcnR5KTsKICAgICAgICAgUHV0UHJvcGVy
dHlTbG90IHNsb3Q7CiAgICAgICAgIGJhc2VWYWx1ZS5wdXQoY2FsbEZyYW1lLCBpZGVudCwgY2Fs
bEZyYW1lLT5yKHZhbHVlKS5qc1ZhbHVlKCksIHNsb3QpOwogICAgICAgICBDSEVDS19GT1JfRVhD
RVBUSU9OKCk7CkBAIC0yOTA4LDcgKzI5MDcsNyBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAg
ICAgICBpbnQgcHJvcGVydHkgPSB2UENbM10udS5vcGVyYW5kOwogCiAgICAgICAgIEpTT2JqZWN0
KiBiYXNlT2JqID0gY2FsbEZyYW1lLT5yKGJhc2UpLmpzVmFsdWUoKS50b09iamVjdChjYWxsRnJh
bWUpOwotICAgICAgICBJZGVudGlmaWVyJiBpZGVudCA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCkt
PmlkZW50aWZpZXIocHJvcGVydHkpOworICAgICAgICBJZGVudGlmaWVyJiBpZGVudCA9IGNvZGVC
bG9jay0+aWRlbnRpZmllcihwcm9wZXJ0eSk7CiAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0ganNC
b29sZWFuKGJhc2VPYmotPmRlbGV0ZVByb3BlcnR5KGNhbGxGcmFtZSwgaWRlbnQpKTsKICAgICAg
ICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTigpOwogICAgICAgICBjYWxsRnJhbWUtPnIoZHN0KSA9IHJl
c3VsdDsKQEAgLTM0MDEsMTIgKzM0MDAsMTIgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAg
ICAgaW50IGRlZmF1bHRPZmZzZXQgPSB2UENbMl0udS5vcGVyYW5kOwogICAgICAgICBKU1ZhbHVl
IHNjcnV0aW5lZSA9IGNhbGxGcmFtZS0+cih2UENbM10udS5vcGVyYW5kKS5qc1ZhbHVlKCk7CiAg
ICAgICAgIGlmIChzY3J1dGluZWUuaXNJbnQzMigpKQotICAgICAgICAgICAgdlBDICs9IGNhbGxG
cmFtZS0+Y29kZUJsb2NrKCktPmltbWVkaWF0ZVN3aXRjaEp1bXBUYWJsZSh0YWJsZUluZGV4KS5v
ZmZzZXRGb3JWYWx1ZShzY3J1dGluZWUuYXNJbnQzMigpLCBkZWZhdWx0T2Zmc2V0KTsKKyAgICAg
ICAgICAgIHZQQyArPSBjb2RlQmxvY2stPmltbWVkaWF0ZVN3aXRjaEp1bXBUYWJsZSh0YWJsZUlu
ZGV4KS5vZmZzZXRGb3JWYWx1ZShzY3J1dGluZWUuYXNJbnQzMigpLCBkZWZhdWx0T2Zmc2V0KTsK
ICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBkb3VibGUgdmFsdWU7CiAgICAgICAgICAgICBp
bnQzMl90IGludFZhbHVlOwogICAgICAgICAgICAgaWYgKHNjcnV0aW5lZS5nZXROdW1iZXIodmFs
dWUpICYmICgoaW50VmFsdWUgPSBzdGF0aWNfY2FzdDxpbnQzMl90Pih2YWx1ZSkpID09IHZhbHVl
KSkKLSAgICAgICAgICAgICAgICB2UEMgKz0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aW1tZWRp
YXRlU3dpdGNoSnVtcFRhYmxlKHRhYmxlSW5kZXgpLm9mZnNldEZvclZhbHVlKGludFZhbHVlLCBk
ZWZhdWx0T2Zmc2V0KTsKKyAgICAgICAgICAgICAgICB2UEMgKz0gY29kZUJsb2NrLT5pbW1lZGlh
dGVTd2l0Y2hKdW1wVGFibGUodGFibGVJbmRleCkub2Zmc2V0Rm9yVmFsdWUoaW50VmFsdWUsIGRl
ZmF1bHRPZmZzZXQpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHZQQyArPSBk
ZWZhdWx0T2Zmc2V0OwogICAgICAgICB9CkBAIC0zNDMxLDcgKzM0MzAsNyBAQCBza2lwX2lkX2N1
c3RvbV9zZWxmOgogICAgICAgICAgICAgaWYgKHZhbHVlLT5sZW5ndGgoKSAhPSAxKQogICAgICAg
ICAgICAgICAgIHZQQyArPSBkZWZhdWx0T2Zmc2V0OwogICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIHZQQyArPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5jaGFyYWN0ZXJTd2l0Y2hK
dW1wVGFibGUodGFibGVJbmRleCkub2Zmc2V0Rm9yVmFsdWUodmFsdWUtPmNoYXJhY3RlcnMoKVsw
XSwgZGVmYXVsdE9mZnNldCk7CisgICAgICAgICAgICAgICAgdlBDICs9IGNvZGVCbG9jay0+Y2hh
cmFjdGVyU3dpdGNoSnVtcFRhYmxlKHRhYmxlSW5kZXgpLm9mZnNldEZvclZhbHVlKHZhbHVlLT5j
aGFyYWN0ZXJzKClbMF0sIGRlZmF1bHRPZmZzZXQpOwogICAgICAgICB9CiAgICAgICAgIE5FWFRf
SU5TVFJVQ1RJT04oKTsKICAgICB9CkBAIC0zNDUwLDcgKzM0NDksNyBAQCBza2lwX2lkX2N1c3Rv
bV9zZWxmOgogICAgICAgICBpZiAoIXNjcnV0aW5lZS5pc1N0cmluZygpKQogICAgICAgICAgICAg
dlBDICs9IGRlZmF1bHRPZmZzZXQ7CiAgICAgICAgIGVsc2UgCi0gICAgICAgICAgICB2UEMgKz0g
Y2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+c3RyaW5nU3dpdGNoSnVtcFRhYmxlKHRhYmxlSW5kZXgp
Lm9mZnNldEZvclZhbHVlKGFzU3RyaW5nKHNjcnV0aW5lZSktPnZhbHVlKGNhbGxGcmFtZSkucmVw
KCksIGRlZmF1bHRPZmZzZXQpOworICAgICAgICAgICAgdlBDICs9IGNvZGVCbG9jay0+c3RyaW5n
U3dpdGNoSnVtcFRhYmxlKHRhYmxlSW5kZXgpLm9mZnNldEZvclZhbHVlKGFzU3RyaW5nKHNjcnV0
aW5lZSktPnZhbHVlKGNhbGxGcmFtZSkucmVwKCksIGRlZmF1bHRPZmZzZXQpOwogICAgICAgICBO
RVhUX0lOU1RSVUNUSU9OKCk7CiAgICAgfQogICAgIERFRklORV9PUENPREUob3BfbmV3X2Z1bmMp
IHsKQEAgLTM0NjQsNyArMzQ2Myw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgIGlu
dCBkc3QgPSB2UENbMV0udS5vcGVyYW5kOwogICAgICAgICBpbnQgZnVuYyA9IHZQQ1syXS51Lm9w
ZXJhbmQ7CiAKLSAgICAgICAgY2FsbEZyYW1lLT5yKGRzdCkgPSBKU1ZhbHVlKGNhbGxGcmFtZS0+
Y29kZUJsb2NrKCktPmZ1bmN0aW9uRGVjbChmdW5jKS0+bWFrZShjYWxsRnJhbWUsIGNhbGxGcmFt
ZS0+c2NvcGVDaGFpbigpKSk7CisgICAgICAgIGNhbGxGcmFtZS0+cihkc3QpID0gSlNWYWx1ZShj
b2RlQmxvY2stPmZ1bmN0aW9uRGVjbChmdW5jKS0+bWFrZShjYWxsRnJhbWUsIGNhbGxGcmFtZS0+
c2NvcGVDaGFpbigpKSk7CiAKICAgICAgICAgdlBDICs9IE9QQ09ERV9MRU5HVEgob3BfbmV3X2Z1
bmMpOwogICAgICAgICBORVhUX0lOU1RSVUNUSU9OKCk7CkBAIC0zNDgwLDcgKzM0NzksNyBAQCBz
a2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICBpbnQgZHN0ID0gdlBDWzFdLnUub3BlcmFuZDsK
ICAgICAgICAgaW50IGZ1bmNJbmRleCA9IHZQQ1syXS51Lm9wZXJhbmQ7CiAKLSAgICAgICAgRnVu
Y3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbiA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmZ1bmN0
aW9uRXhwcihmdW5jSW5kZXgpOworICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9u
ID0gY29kZUJsb2NrLT5mdW5jdGlvbkV4cHIoZnVuY0luZGV4KTsKICAgICAgICAgSlNGdW5jdGlv
biogZnVuYyA9IGZ1bmN0aW9uLT5tYWtlKGNhbGxGcmFtZSwgY2FsbEZyYW1lLT5zY29wZUNoYWlu
KCkpOwogCiAgICAgICAgIC8qIApAQCAtMzU3Myw2ICszNTcyLDggQEAgc2tpcF9pZF9jdXN0b21f
c2VsZjoKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgY2FsbEZyYW1lLT5pbml0KG5ld0Nv
ZGVCbG9jaywgdlBDICsgNSwgY2FsbERhdGFTY29wZUNoYWluLCBwcmV2aW91c0NhbGxGcmFtZSwg
ZHN0LCBhcmdDb3VudCwgYXNGdW5jdGlvbih2KSk7CisgICAgICAgICAgICBjb2RlQmxvY2sgPSBu
ZXdDb2RlQmxvY2s7CisgICAgICAgICAgICBBU1NFUlQoY29kZUJsb2NrID09IGNhbGxGcmFtZS0+
Y29kZUJsb2NrKCkpOwogICAgICAgICAgICAgdlBDID0gbmV3Q29kZUJsb2NrLT5pbnN0cnVjdGlv
bnMoKS5iZWdpbigpOwogCiAjaWYgRU5BQkxFKE9QQ09ERV9TVEFUUykKQEAgLTM2MTAsNyArMzYx
MSw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAKICAgICAgICAgQVNTRVJUKGNhbGxUeXBlID09
IENhbGxUeXBlTm9uZSk7CiAKLSAgICAgICAgZXhjZXB0aW9uVmFsdWUgPSBjcmVhdGVOb3RBRnVu
Y3Rpb25FcnJvcihjYWxsRnJhbWUsIHYsIHZQQyAtIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlu
c3RydWN0aW9ucygpLmJlZ2luKCksIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCkpOworICAgICAgICBl
eGNlcHRpb25WYWx1ZSA9IGNyZWF0ZU5vdEFGdW5jdGlvbkVycm9yKGNhbGxGcmFtZSwgdiwgdlBD
IC0gY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpLCBjb2RlQmxvY2spOwogICAgICAg
ICBnb3RvIHZtX3Rocm93OwogICAgIH0KICAgICBERUZJTkVfT1BDT0RFKG9wX2xvYWRfdmFyYXJn
cykgewpAQCAtMzY0MSw3ICszNjQyLDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAg
ICAgICAgICBhcmdTdG9yZVtpXSA9IGNhbGxGcmFtZS0+cmVnaXN0ZXJzKClbaSAtIFJlZ2lzdGVy
RmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIGV4cGVjdGVkUGFyYW1zIC0gYXJnQ291bnQgLSAx
XTsKICAgICAgICAgfSBlbHNlIGlmICghYXJndW1lbnRzLmlzVW5kZWZpbmVkT3JOdWxsKCkpIHsK
ICAgICAgICAgICAgIGlmICghYXJndW1lbnRzLmlzT2JqZWN0KCkpIHsKLSAgICAgICAgICAgICAg
ICBleGNlcHRpb25WYWx1ZSA9IGNyZWF0ZUludmFsaWRQYXJhbUVycm9yKGNhbGxGcmFtZSwgIkZ1
bmN0aW9uLnByb3RvdHlwZS5hcHBseSIsIGFyZ3VtZW50cywgdlBDIC0gY2FsbEZyYW1lLT5jb2Rl
QmxvY2soKS0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSwgY2FsbEZyYW1lLT5jb2RlQmxvY2soKSk7
CisgICAgICAgICAgICAgICAgZXhjZXB0aW9uVmFsdWUgPSBjcmVhdGVJbnZhbGlkUGFyYW1FcnJv
cihjYWxsRnJhbWUsICJGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkiLCBhcmd1bWVudHMsIHZQQyAt
IGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSwgY29kZUJsb2NrKTsKICAgICAgICAg
ICAgICAgICBnb3RvIHZtX3Rocm93OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGFz
T2JqZWN0KGFyZ3VtZW50cyktPmNsYXNzSW5mbygpID09ICZBcmd1bWVudHM6OmluZm8pIHsKQEAg
LTM2ODAsNyArMzY4MSw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAoIWFyZ3VtZW50cy5p
c09iamVjdCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvblZhbHVlID0gY3JlYXRl
SW52YWxpZFBhcmFtRXJyb3IoY2FsbEZyYW1lLCAiRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5Iiwg
YXJndW1lbnRzLCB2UEMgLSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5i
ZWdpbigpLCBjYWxsRnJhbWUtPmNvZGVCbG9jaygpKTsKKyAgICAgICAgICAgICAgICAgICAgZXhj
ZXB0aW9uVmFsdWUgPSBjcmVhdGVJbnZhbGlkUGFyYW1FcnJvcihjYWxsRnJhbWUsICJGdW5jdGlv
bi5wcm90b3R5cGUuYXBwbHkiLCBhcmd1bWVudHMsIHZQQyAtIGNvZGVCbG9jay0+aW5zdHJ1Y3Rp
b25zKCkuYmVnaW4oKSwgY29kZUJsb2NrKTsKICAgICAgICAgICAgICAgICAgICAgZ290byB2bV90
aHJvdzsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0zNzI3LDYgKzM3Mjgs
OCBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBjYWxsRnJhbWUtPmluaXQobmV3Q29kZUJsb2NrLCB2UEMgKyA1LCBjYWxsRGF0
YVNjb3BlQ2hhaW4sIHByZXZpb3VzQ2FsbEZyYW1lLCBkc3QsIGFyZ0NvdW50LCBhc0Z1bmN0aW9u
KHYpKTsKKyAgICAgICAgICAgIGNvZGVCbG9jayA9IG5ld0NvZGVCbG9jazsKKyAgICAgICAgICAg
IEFTU0VSVChjb2RlQmxvY2sgPT0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKSk7CiAgICAgICAgICAg
ICB2UEMgPSBuZXdDb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCk7CiAgICAgICAgICAg
ICAKICNpZiBFTkFCTEUoT1BDT0RFX1NUQVRTKQpAQCAtMzc2NCw3ICszNzY3LDcgQEAgc2tpcF9p
ZF9jdXN0b21fc2VsZjoKICAgICAgICAgCiAgICAgICAgIEFTU0VSVChjYWxsVHlwZSA9PSBDYWxs
VHlwZU5vbmUpOwogICAgICAgICAKLSAgICAgICAgZXhjZXB0aW9uVmFsdWUgPSBjcmVhdGVOb3RB
RnVuY3Rpb25FcnJvcihjYWxsRnJhbWUsIHYsIHZQQyAtIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCkt
Pmluc3RydWN0aW9ucygpLmJlZ2luKCksIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCkpOworICAgICAg
ICBleGNlcHRpb25WYWx1ZSA9IGNyZWF0ZU5vdEFGdW5jdGlvbkVycm9yKGNhbGxGcmFtZSwgdiwg
dlBDIC0gY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpLCBjb2RlQmxvY2spOwogICAg
ICAgICBnb3RvIHZtX3Rocm93OwogICAgIH0KICAgICBERUZJTkVfT1BDT0RFKG9wX3RlYXJfb2Zm
X2FjdGl2YXRpb24pIHsKQEAgLTM3ODAsNyArMzc4Myw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6
CiAKICAgICAgICAgaW50IHNyYzEgPSB2UENbMV0udS5vcGVyYW5kOwogICAgICAgICBpbnQgc3Jj
MiA9IHZQQ1syXS51Lm9wZXJhbmQ7Ci0gICAgICAgIEFTU0VSVChjYWxsRnJhbWUtPmNvZGVCbG9j
aygpLT5uZWVkc0Z1bGxTY29wZUNoYWluKCkpOworICAgICAgICBBU1NFUlQoY29kZUJsb2NrLT5u
ZWVkc0Z1bGxTY29wZUNoYWluKCkpOwogCiAgICAgICAgIEpTQWN0aXZhdGlvbiogYWN0aXZhdGlv
biA9IGFzQWN0aXZhdGlvbihjYWxsRnJhbWUtPnIoc3JjMSkuanNWYWx1ZSgpKTsKICAgICAgICAg
YWN0aXZhdGlvbi0+Y29weVJlZ2lzdGVycygpOwpAQCAtMzgwNCw3ICszODA3LDcgQEAgc2tpcF9p
ZF9jdXN0b21fc2VsZjoKICAgICAgICAgKi8KIAogICAgICAgICBpbnQgc3JjMSA9IHZQQ1sxXS51
Lm9wZXJhbmQ7Ci0gICAgICAgIEFTU0VSVCghY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+bmVlZHNG
dWxsU2NvcGVDaGFpbigpICYmIGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPnVzZXNBcmd1bWVudHMo
KSk7CisgICAgICAgIEFTU0VSVCghY29kZUJsb2NrLT5uZWVkc0Z1bGxTY29wZUNoYWluKCkgJiYg
Y29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKS0+dXNlc0FyZ3VtZW50cygpKTsKIAogICAgICAg
ICBpZiAoSlNWYWx1ZSBhcmd1bWVudHMgPSBjYWxsRnJhbWUtPnIodW5tb2RpZmllZEFyZ3VtZW50
c1JlZ2lzdGVyKHNyYzEpKS5qc1ZhbHVlKCkpCiAgICAgICAgICAgICBhc0FyZ3VtZW50cyhhcmd1
bWVudHMpLT5jb3B5UmVnaXN0ZXJzKCk7CkBAIC0zODI0LDcgKzM4MjcsNyBAQCBza2lwX2lkX2N1
c3RvbV9zZWxmOgogCiAgICAgICAgIGludCByZXN1bHQgPSB2UENbMV0udS5vcGVyYW5kOwogCi0g
ICAgICAgIGlmIChjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5uZWVkc0Z1bGxTY29wZUNoYWluKCkp
CisgICAgICAgIGlmIChjb2RlQmxvY2stPm5lZWRzRnVsbFNjb3BlQ2hhaW4oKSkKICAgICAgICAg
ICAgIGNhbGxGcmFtZS0+c2NvcGVDaGFpbigpLT5kZXJlZigpOwogCiAgICAgICAgIEpTVmFsdWUg
cmV0dXJuVmFsdWUgPSBjYWxsRnJhbWUtPnIocmVzdWx0KS5qc1ZhbHVlKCk7CkBAIC0zODM3LDYg
KzM4NDAsOCBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICAgICAgcmV0dXJuIHJldHVy
blZhbHVlOwogCiAgICAgICAgIGNhbGxGcmFtZS0+cihkc3QpID0gcmV0dXJuVmFsdWU7CisgICAg
ICAgIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CisgICAgICAgIEFTU0VSVChj
b2RlQmxvY2sgPT0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKSk7CiAKICAgICAgICAgTkVYVF9JTlNU
UlVDVElPTigpOwogICAgIH0KQEAgLTM4NTAsOCArMzg1NSw2IEBAIHNraXBfaWRfY3VzdG9tX3Nl
bGY6CiAgICAgICAgICovCiAKICAgICAgICAgc2l6ZV90IGkgPSAwOwotICAgICAgICBDb2RlQmxv
Y2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7Ci0gICAgICAgIAogICAgICAg
ICBmb3IgKHNpemVfdCBjb3VudCA9IGNvZGVCbG9jay0+bV9udW1WYXJzOyBpIDwgY291bnQ7ICsr
aSkKICAgICAgICAgICAgIGNhbGxGcmFtZS0+cihpKSA9IGpzVW5kZWZpbmVkKCk7CiAKQEAgLTM4
NjgsOCArMzg3MSw2IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAgICAgICAgICovCiAKICAgICAg
ICAgc2l6ZV90IGkgPSAwOwotICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFt
ZS0+Y29kZUJsb2NrKCk7Ci0KICAgICAgICAgZm9yIChzaXplX3QgY291bnQgPSBjb2RlQmxvY2st
Pm1fbnVtVmFyczsgaSA8IGNvdW50OyArK2kpCiAgICAgICAgICAgICBjYWxsRnJhbWUtPnIoaSkg
PSBqc1VuZGVmaW5lZCgpOwogCkBAIC0zOTg0LDYgKzM5ODUsNyBAQCBza2lwX2lkX2N1c3RvbV9z
ZWxmOgogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBjYWxsRnJhbWUtPmluaXQobmV3Q29k
ZUJsb2NrLCB2UEMgKyA3LCBjYWxsRGF0YVNjb3BlQ2hhaW4sIHByZXZpb3VzQ2FsbEZyYW1lLCBk
c3QsIGFyZ0NvdW50LCBhc0Z1bmN0aW9uKHYpKTsKKyAgICAgICAgICAgIGNvZGVCbG9jayA9IG5l
d0NvZGVCbG9jazsKICAgICAgICAgICAgIHZQQyA9IG5ld0NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25z
KCkuYmVnaW4oKTsKIAogI2lmIEVOQUJMRShPUENPREVfU1RBVFMpCkBAIC00MDE0LDcgKzQwMTYs
NyBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogCiAgICAgICAgIEFTU0VSVChjb25zdHJ1Y3RUeXBl
ID09IENvbnN0cnVjdFR5cGVOb25lKTsKIAotICAgICAgICBleGNlcHRpb25WYWx1ZSA9IGNyZWF0
ZU5vdEFDb25zdHJ1Y3RvckVycm9yKGNhbGxGcmFtZSwgdiwgdlBDIC0gY2FsbEZyYW1lLT5jb2Rl
QmxvY2soKS0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSwgY2FsbEZyYW1lLT5jb2RlQmxvY2soKSk7
CisgICAgICAgIGV4Y2VwdGlvblZhbHVlID0gY3JlYXRlTm90QUNvbnN0cnVjdG9yRXJyb3IoY2Fs
bEZyYW1lLCB2LCB2UEMgLSBjb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCksIGNvZGVC
bG9jayk7CiAgICAgICAgIGdvdG8gdm1fdGhyb3c7CiAgICAgfQogICAgIERFRklORV9PUENPREUo
b3BfY29uc3RydWN0X3ZlcmlmeSkgewpAQCAtNDIxMywxMyArNDIxNSwxNCBAQCBza2lwX2lkX2N1
c3RvbV9zZWxmOgogICAgICAgICBpbnQgZXggPSB2UENbMV0udS5vcGVyYW5kOwogICAgICAgICBl
eGNlcHRpb25WYWx1ZSA9IGNhbGxGcmFtZS0+cihleCkuanNWYWx1ZSgpOwogCi0gICAgICAgIGhh
bmRsZXIgPSB0aHJvd0V4Y2VwdGlvbihjYWxsRnJhbWUsIGV4Y2VwdGlvblZhbHVlLCB2UEMgLSBj
YWxsRnJhbWUtPmNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpLCB0cnVlKTsKKyAg
ICAgICAgaGFuZGxlciA9IHRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgZXhjZXB0aW9uVmFsdWUs
IHZQQyAtIGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSwgdHJ1ZSk7CiAgICAgICAg
IGlmICghaGFuZGxlcikgewogICAgICAgICAgICAgKmV4Y2VwdGlvbiA9IGV4Y2VwdGlvblZhbHVl
OwogICAgICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAgICAgICB9CiAKLSAgICAgICAgdlBD
ID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSArIGhhbmRs
ZXItPnRhcmdldDsKKyAgICAgICAgY29kZUJsb2NrID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKTsK
KyAgICAgICAgdlBDID0gY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpICsgaGFuZGxl
ci0+dGFyZ2V0OwogICAgICAgICBORVhUX0lOU1RSVUNUSU9OKCk7CiAgICAgfQogICAgIERFRklO
RV9PUENPREUob3BfbmV3X2Vycm9yKSB7CkBAIC00MjM0LDcgKzQyMzcsNiBAQCBza2lwX2lkX2N1
c3RvbV9zZWxmOgogICAgICAgICBpbnQgdHlwZSA9IHZQQ1syXS51Lm9wZXJhbmQ7CiAgICAgICAg
IGludCBtZXNzYWdlID0gdlBDWzNdLnUub3BlcmFuZDsKIAotICAgICAgICBDb2RlQmxvY2sqIGNv
ZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCk7CiAgICAgICAgIGNhbGxGcmFtZS0+cihk
c3QpID0gSlNWYWx1ZShFcnJvcjo6Y3JlYXRlKGNhbGxGcmFtZSwgKEVycm9yVHlwZSl0eXBlLCBj
YWxsRnJhbWUtPnIobWVzc2FnZSkuanNWYWx1ZSgpLnRvU3RyaW5nKGNhbGxGcmFtZSksIGNvZGVC
bG9jay0+bGluZU51bWJlckZvckJ5dGVjb2RlT2Zmc2V0KGNhbGxGcmFtZSwgdlBDIC0gY29kZUJs
b2NrLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpKSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUo
KS0+c291cmNlSUQoKSwgY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKS0+c291cmNlVVJMKCkp
KTsKIAogICAgICAgICB2UEMgKz0gT1BDT0RFX0xFTkdUSChvcF9uZXdfZXJyb3IpOwpAQCAtNDI0
Nyw3ICs0MjQ5LDcgQEAgc2tpcF9pZF9jdXN0b21fc2VsZjoKICAgICAgICAgICAgcHJvZ3JhbS4g
UmV0dXJuIGNvbnRyb2wgdG8gdGhlIGNhbGxpbmcgbmF0aXZlIGNvZGUuCiAgICAgICAgICovCiAK
LSAgICAgICAgaWYgKGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPm5lZWRzRnVsbFNjb3BlQ2hhaW4o
KSkgeworICAgICAgICBpZiAoY29kZUJsb2NrLT5uZWVkc0Z1bGxTY29wZUNoYWluKCkpIHsKICAg
ICAgICAgICAgIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluID0gY2FsbEZyYW1lLT5zY29wZUNo
YWluKCk7CiAgICAgICAgICAgICBBU1NFUlQoc2NvcGVDaGFpbi0+cmVmQ291bnQgPiAxKTsKICAg
ICAgICAgICAgIHNjb3BlQ2hhaW4tPmRlcmVmKCk7CkBAIC00MjcyLDcgKzQyNzQsNyBAQCBza2lw
X2lkX2N1c3RvbV9zZWxmOgogCiAgICAgICAgIEFTU0VSVChjYWxsRnJhbWUtPnIoYmFzZSkuanNW
YWx1ZSgpLmlzT2JqZWN0KCkpOwogICAgICAgICBKU09iamVjdCogYmFzZU9iaiA9IGFzT2JqZWN0
KGNhbGxGcmFtZS0+cihiYXNlKS5qc1ZhbHVlKCkpOwotICAgICAgICBJZGVudGlmaWVyJiBpZGVu
dCA9IGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlkZW50aWZpZXIocHJvcGVydHkpOworICAgICAg
ICBJZGVudGlmaWVyJiBpZGVudCA9IGNvZGVCbG9jay0+aWRlbnRpZmllcihwcm9wZXJ0eSk7CiAg
ICAgICAgIEFTU0VSVChjYWxsRnJhbWUtPnIoZnVuY3Rpb24pLmpzVmFsdWUoKS5pc09iamVjdCgp
KTsKICAgICAgICAgYmFzZU9iai0+ZGVmaW5lR2V0dGVyKGNhbGxGcmFtZSwgaWRlbnQsIGFzT2Jq
ZWN0KGNhbGxGcmFtZS0+cihmdW5jdGlvbikuanNWYWx1ZSgpKSk7CiAKQEAgLTQyOTYsNyArNDI5
OCw3IEBAIHNraXBfaWRfY3VzdG9tX3NlbGY6CiAKICAgICAgICAgQVNTRVJUKGNhbGxGcmFtZS0+
cihiYXNlKS5qc1ZhbHVlKCkuaXNPYmplY3QoKSk7CiAgICAgICAgIEpTT2JqZWN0KiBiYXNlT2Jq
ID0gYXNPYmplY3QoY2FsbEZyYW1lLT5yKGJhc2UpLmpzVmFsdWUoKSk7Ci0gICAgICAgIElkZW50
aWZpZXImIGlkZW50ID0gY2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+aWRlbnRpZmllcihwcm9wZXJ0
eSk7CisgICAgICAgIElkZW50aWZpZXImIGlkZW50ID0gY29kZUJsb2NrLT5pZGVudGlmaWVyKHBy
b3BlcnR5KTsKICAgICAgICAgQVNTRVJUKGNhbGxGcmFtZS0+cihmdW5jdGlvbikuanNWYWx1ZSgp
LmlzT2JqZWN0KCkpOwogICAgICAgICBiYXNlT2JqLT5kZWZpbmVTZXR0ZXIoY2FsbEZyYW1lLCBp
ZGVudCwgYXNPYmplY3QoY2FsbEZyYW1lLT5yKGZ1bmN0aW9uKS5qc1ZhbHVlKCkpLCAwKTsKIApA
QCAtNDM4MSwxMyArNDM4MywxNCBAQCBza2lwX2lkX2N1c3RvbV9zZWxmOgogICAgICAgICAgICAg
Ly8gY2Fubm90IGZhdGhvbSBpZiB3ZSBkb24ndCBhc3NpZ24gdG8gdGhlIGV4Y2VwdGlvblZhbHVl
IGJlZm9yZSBicmFuY2hpbmcpCiAgICAgICAgICAgICBleGNlcHRpb25WYWx1ZSA9IGNyZWF0ZUlu
dGVycnVwdGVkRXhlY3V0aW9uRXhjZXB0aW9uKGdsb2JhbERhdGEpOwogICAgICAgICB9Ci0gICAg
ICAgIGhhbmRsZXIgPSB0aHJvd0V4Y2VwdGlvbihjYWxsRnJhbWUsIGV4Y2VwdGlvblZhbHVlLCB2
UEMgLSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpLCBmYWxz
ZSk7CisgICAgICAgIGhhbmRsZXIgPSB0aHJvd0V4Y2VwdGlvbihjYWxsRnJhbWUsIGV4Y2VwdGlv
blZhbHVlLCB2UEMgLSBjb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCksIGZhbHNlKTsK
ICAgICAgICAgaWYgKCFoYW5kbGVyKSB7CiAgICAgICAgICAgICAqZXhjZXB0aW9uID0gZXhjZXB0
aW9uVmFsdWU7CiAgICAgICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAgICAgICAgIH0KIAotICAg
ICAgICB2UEMgPSBjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigp
ICsgaGFuZGxlci0+dGFyZ2V0OworICAgICAgICBjb2RlQmxvY2sgPSBjYWxsRnJhbWUtPmNvZGVC
bG9jaygpOworICAgICAgICB2UEMgPSBjb2RlQmxvY2stPmluc3RydWN0aW9ucygpLmJlZ2luKCkg
KyBoYW5kbGVyLT50YXJnZXQ7CiAgICAgICAgIE5FWFRfSU5TVFJVQ1RJT04oKTsKICAgICB9CiAg
ICAgfQo=
</data>
<flag name="review"
          id="41084"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>