<?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>20984</bug_id>
          
          <creation_ts>2008-09-21 21:33:37 -0700</creation_ts>
          <short_desc>convert masqueradeAsUndefined from a virtual function to a TypeInfo flag</short_desc>
          <delta_ts>2008-09-22 06:31:23 -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>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>20823</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>20813</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>mjs</cc>
    
    <cc>zwarich</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>92076</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-09-21 21:33:37 -0700</bug_when>
    <thetext>We will convert masqueradeAsUndefined from a virtual function to a TypeInfo flag. Then we can make operations involving the flag faster.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92077</commentid>
    <comment_count>1</comment_count>
      <attachid>23640</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-09-21 21:34:25 -0700</bug_when>
    <thetext>Created attachment 23640
work in progress

Patch seems to work, but is not a speedup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92108</commentid>
    <comment_count>2</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2008-09-22 04:42:35 -0700</bug_when>
    <thetext>We can probably turn this into a speedup by using it to allow us to JIT generate eq_null / neq_null.

This is implemented in https://bugs.webkit.org/show_bug.cgi?id=20862 using a vptr hack – but broke a test in the webkit tests (never debugged – I&apos;m guessing someone does subclass StringObjectThatMasqueradesAsUndefined, or there is another subclass that implements &apos;masqueradeAsUndefined()&apos; – in which case the vptr hack won&apos;t have been safe).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92113</commentid>
    <comment_count>3</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-09-22 06:31:23 -0700</bug_when>
    <thetext>did a version of this with the JIT logic, see bug 20823

*** This bug has been marked as a duplicate of 20823 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23640</attachid>
            <date>2008-09-21 21:34:25 -0700</date>
            <delta_ts>2008-09-21 21:34:25 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>MasqueradePatch.txt</filename>
            <type>text/plain</type>
            <size>17430</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL1ZNL01hY2hpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL1ZNL01hY2hpbmUuY3BwCShyZXZpc2lvbiAzNjc1NSkKKysrIEphdmFTY3JpcHRD
b3JlL1ZNL01hY2hpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDYsNyArMjQ2LDcgQEAgc3Rh
dGljIEpTVmFsdWUqIGpzVHlwZVN0cmluZ0ZvclZhbHVlKEV4ZQogICAgIGlmICh2LT5pc09iamVj
dCgpKSB7CiAgICAgICAgIC8vIFJldHVybiAidW5kZWZpbmVkIiBmb3Igb2JqZWN0cyB0aGF0IHNo
b3VsZCBiZSB0cmVhdGVkCiAgICAgICAgIC8vIGFzIG51bGwgd2hlbiBkb2luZyBjb21wYXJpc29u
cy4KLSAgICAgICAgaWYgKHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4odiktPm1hc3F1ZXJhZGVBc1Vu
ZGVmaW5lZCgpKQorICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8SlNPYmplY3QqPih2KS0+c3RydWN0
dXJlSUQoKS0+dHlwZUluZm8oKS5zaG91bGRNYXNxdWVyYWRlQXNVbmRlZmluZWQoKSkKICAgICAg
ICAgICAgIHJldHVybiBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgInVuZGVmaW5lZCIpOwogICAg
ICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKICAgICAgICAgaWYgKHN0YXRpY19jYXN0PEpTT2JqZWN0
Kj4odiktPmdldENhbGxEYXRhKGNhbGxEYXRhKSAhPSBDYWxsVHlwZU5vbmUpCkBAIC0yNjQsNyAr
MjY0LDcgQEAgc3RhdGljIGJvb2wganNJc09iamVjdFR5cGUoSlNWYWx1ZSogdikKICAgICBpZiAo
dHlwZSA9PSBOdW1iZXJUeXBlIHx8IHR5cGUgPT0gU3RyaW5nVHlwZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIGlmICh0eXBlID09IE9iamVjdFR5cGUpIHsKLSAgICAgICAgaWYgKHN0YXRp
Y19jYXN0PEpTT2JqZWN0Kj4odiktPm1hc3F1ZXJhZGVBc1VuZGVmaW5lZCgpKQorICAgICAgICBp
ZiAoc3RhdGljX2Nhc3Q8SlNPYmplY3QqPih2KS0+c3RydWN0dXJlSUQoKS0+dHlwZUluZm8oKS5z
aG91bGRNYXNxdWVyYWRlQXNVbmRlZmluZWQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgQ2FsbERhdGEgY2FsbERhdGE7CiAgICAgICAgIGlmIChzdGF0aWNfY2FzdDxKU09i
amVjdCo+KHYpLT5nZXRDYWxsRGF0YShjYWxsRGF0YSkgIT0gQ2FsbFR5cGVOb25lKQpAQCAtMTU2
NSw3ICsxNTY1LDcgQEAgSlNWYWx1ZSogTWFjaGluZTo6cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aQog
ICAgICAgICAgICAgTkVYVF9PUENPREU7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHJb
ZHN0XSA9IGpzQm9vbGVhbighSlNJbW1lZGlhdGU6OmlzSW1tZWRpYXRlKHNyYykgJiYgc3RhdGlj
X2Nhc3Q8SlNDZWxsKj4oc3JjKS0+bWFzcXVlcmFkZUFzVW5kZWZpbmVkKCkpOworICAgICAgICBy
W2RzdF0gPSBqc0Jvb2xlYW4oIUpTSW1tZWRpYXRlOjppc0ltbWVkaWF0ZShzcmMpICYmIHNyYy0+
YXNDZWxsKCktPnN0cnVjdHVyZUlEKCktPnR5cGVJbmZvKCkuc2hvdWxkTWFzcXVlcmFkZUFzVW5k
ZWZpbmVkKCkpOwogICAgICAgICArK3ZQQzsKICAgICAgICAgTkVYVF9PUENPREU7CiAgICAgfQpA
QCAtMTYwNSw3ICsxNjA1LDcgQEAgSlNWYWx1ZSogTWFjaGluZTo6cHJpdmF0ZUV4ZWN1dGUoRXhl
Y3V0aQogICAgICAgICAgICAgTkVYVF9PUENPREU7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAg
ICAgIHJbZHN0XSA9IGpzQm9vbGVhbihKU0ltbWVkaWF0ZTo6aXNJbW1lZGlhdGUoc3JjKSB8fCAh
c3RhdGljX2Nhc3Q8SlNDZWxsKj4oc3JjKS0+bWFzcXVlcmFkZUFzVW5kZWZpbmVkKCkpOworICAg
ICAgICByW2RzdF0gPSBqc0Jvb2xlYW4oSlNJbW1lZGlhdGU6OmlzSW1tZWRpYXRlKHNyYykgfHwg
IXN0YXRpY19jYXN0PEpTQ2VsbCo+KHNyYyktPmFzQ2VsbCgpLT5zdHJ1Y3R1cmVJRCgpLT50eXBl
SW5mbygpLnNob3VsZE1hc3F1ZXJhZGVBc1VuZGVmaW5lZCgpKTsKICAgICAgICAgKyt2UEM7CiAg
ICAgICAgIE5FWFRfT1BDT0RFOwogICAgIH0KQEAgLTIxNTEsNyArMjE1MSw3IEBAIEpTVmFsdWUq
IE1hY2hpbmU6OnByaXZhdGVFeGVjdXRlKEV4ZWN1dGkKICAgICAgICAgaW50IGRzdCA9ICgrK3ZQ
QyktPnUub3BlcmFuZDsKICAgICAgICAgaW50IHNyYyA9ICgrK3ZQQyktPnUub3BlcmFuZDsKICAg
ICAgICAgSlNWYWx1ZSogdiA9IHJbc3JjXS5qc1ZhbHVlKGV4ZWMpOwotICAgICAgICByW2RzdF0g
PSBqc0Jvb2xlYW4odi0+aXNVbmRlZmluZWQoKSB8fCAodi0+aXNPYmplY3QoKSAmJiBzdGF0aWNf
Y2FzdDxKU09iamVjdCo+KHYpLT5tYXNxdWVyYWRlQXNVbmRlZmluZWQoKSkpOworICAgICAgICBy
W2RzdF0gPSBqc0Jvb2xlYW4oSlNJbW1lZGlhdGU6OmlzSW1tZWRpYXRlKHYpID8gdi0+aXNVbmRl
ZmluZWQoKSA6IHYtPmFzQ2VsbCgpLT5zdHJ1Y3R1cmVJRCgpLT50eXBlSW5mbygpLnNob3VsZE1h
c3F1ZXJhZGVBc1VuZGVmaW5lZCgpKTsKIAogICAgICAgICArK3ZQQzsKICAgICAgICAgTkVYVF9P
UENPREU7CkBAIC01MjY0LDcgKzUyNjQsNyBAQCBKU1ZhbHVlKiBNYWNoaW5lOjpjdGlfb3BfdHlw
ZW9mKENUSV9BUkdTCiBKU1ZhbHVlKiBNYWNoaW5lOjpjdGlfb3BfaXNfdW5kZWZpbmVkKENUSV9B
UkdTKQogewogICAgIEpTVmFsdWUqIHYgPSBBUkdfc3JjMTsKLSAgICByZXR1cm4ganNCb29sZWFu
KHYtPmlzVW5kZWZpbmVkKCkgfHwgKHYtPmlzT2JqZWN0KCkgJiYgc3RhdGljX2Nhc3Q8SlNPYmpl
Y3QqPih2KS0+bWFzcXVlcmFkZUFzVW5kZWZpbmVkKCkpKTsKKyAgICByZXR1cm4ganNCb29sZWFu
KEpTSW1tZWRpYXRlOjppc0ltbWVkaWF0ZSh2KSA/IHYtPmlzVW5kZWZpbmVkKCkgOiB2LT5hc0Nl
bGwoKS0+c3RydWN0dXJlSUQoKS0+dHlwZUluZm8oKS5zaG91bGRNYXNxdWVyYWRlQXNVbmRlZmlu
ZWQoKSk7CiB9CiAKIEpTVmFsdWUqIE1hY2hpbmU6OmN0aV9vcF9pc19ib29sZWFuKENUSV9BUkdT
KQpAQCAtNTUwNywyMCArNTUwNywxNiBAQCB2b2lkIE1hY2hpbmU6OmN0aV9vcF9kZWJ1ZyhDVElf
QVJHUykKIAogSlNWYWx1ZSogTWFjaGluZTo6Y3RpX29wX2VxX251bGwoQ1RJX0FSR1MpCiB7Ci0g
ICAgSlNWYWx1ZSogc3JjID0gQVJHX3NyYzE7Ci0gICAgaWYgKHNyYy0+aXNVbmRlZmluZWRPck51
bGwoKSkKLSAgICAgICAgcmV0dXJuIGpzQm9vbGVhbih0cnVlKTsKKyAgICBKU1ZhbHVlKiB2ID0g
QVJHX3NyYzE7CiAKLSAgICByZXR1cm4ganNCb29sZWFuKCFKU0ltbWVkaWF0ZTo6aXNJbW1lZGlh
dGUoc3JjKSAmJiBzdGF0aWNfY2FzdDxKU0NlbGwqPihzcmMpLT5tYXNxdWVyYWRlQXNVbmRlZmlu
ZWQoKSk7CisgICAgcmV0dXJuIGpzQm9vbGVhbihKU0ltbWVkaWF0ZTo6aXNJbW1lZGlhdGUodikg
PyB2LT5pc1VuZGVmaW5lZE9yTnVsbCgpIDogdi0+YXNDZWxsKCktPnN0cnVjdHVyZUlEKCktPnR5
cGVJbmZvKCkuc2hvdWxkTWFzcXVlcmFkZUFzVW5kZWZpbmVkKCkpOwogfQogCiBKU1ZhbHVlKiBN
YWNoaW5lOjpjdGlfb3BfbmVxX251bGwoQ1RJX0FSR1MpCiB7Ci0gICAgSlNWYWx1ZSogc3JjID0g
QVJHX3NyYzE7Ci0gICAgaWYgKHNyYy0+aXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgcmV0
dXJuIGpzQm9vbGVhbihmYWxzZSk7CisgICAgSlNWYWx1ZSogdiA9IEFSR19zcmMxOwogCi0gICAg
cmV0dXJuIGpzQm9vbGVhbihKU0ltbWVkaWF0ZTo6aXNJbW1lZGlhdGUoc3JjKSB8fCAhc3RhdGlj
X2Nhc3Q8SlNDZWxsKj4oc3JjKS0+bWFzcXVlcmFkZUFzVW5kZWZpbmVkKCkpOworICAgIHJldHVy
biBqc0Jvb2xlYW4oSlNJbW1lZGlhdGU6OmlzSW1tZWRpYXRlKHYpID8gIXYtPmlzVW5kZWZpbmVk
T3JOdWxsKCkgOiAhdi0+YXNDZWxsKCktPnN0cnVjdHVyZUlEKCktPnR5cGVJbmZvKCkuc2hvdWxk
TWFzcXVlcmFkZUFzVW5kZWZpbmVkKCkpOwogfQogCiB2b2lkKiBNYWNoaW5lOjpjdGlfdm1fdGhy
b3coQ1RJX0FSR1MpCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvSlNDZWxsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL0pTQ2VsbC5oCShyZXZpc2lvbiAzNjc1NSkKKysrIEph
dmFTY3JpcHRDb3JlL2tqcy9KU0NlbGwuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsOSArNzcsNiBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNT
dGF0ZSopIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCBKU09iamVjdCogdG9PYmplY3QoRXhl
Y1N0YXRlKikgY29uc3QgPSAwOwogCi0gICAgICAgIC8vIFdlYkNvcmUgdXNlcyB0aGlzIHRvIG1h
a2UgZG9jdW1lbnQuYWxsIGFuZCBzdHlsZS5maWx0ZXIgdW5kZXRlY3RhYmxlCi0gICAgICAgIHZp
cnR1YWwgYm9vbCBtYXNxdWVyYWRlQXNVbmRlZmluZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQotCiAgICAgICAgIC8vIEdhcmJhZ2UgY29sbGVjdGlvbi4KICAgICAgICAgdm9pZCogb3BlcmF0
b3IgbmV3KHNpemVfdCwgRXhlY1N0YXRlKik7CiAgICAgICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhz
aXplX3QsIHZvaWQqIHBsYWNlbWVudE5ld0Rlc3RpbmF0aW9uKSB7IHJldHVybiBwbGFjZW1lbnRO
ZXdEZXN0aW5hdGlvbjsgfQpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL0pTVmFsdWUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvSlNWYWx1ZS5oCShyZXZpc2lvbiAzNjc1NSkK
KysrIEphdmFTY3JpcHRDb3JlL2tqcy9KU1ZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDgg
KzU2LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICovCiAgICAgY2xhc3MgSlNWYWx1ZSA6IE5v
bmNvcHlhYmxlIHsKICAgICAgICAgZnJpZW5kIGNsYXNzIEpTQ2VsbDsgLy8gc28gaXQgY2FuIGRl
cml2ZSBmcm9tIHRoaXMgY2xhc3MKLSAgICAgICAgZnJpZW5kIGNsYXNzIEhlYXA7IC8vIHNvIGl0
IGNhbiBjYWxsIGFzQ2VsbCgpCi0gICAgICAgIGZyaWVuZCBjbGFzcyBNYWNoaW5lOyAvLyBzbyBp
dCBjYW4gY2FsbCBhc0NlbGwoKQogICAgIHByaXZhdGU6CiAgICAgICAgIEpTVmFsdWUoKTsKICAg
ICAgICAgdmlydHVhbCB+SlNWYWx1ZSgpOwpAQCAtMTQ1LDE1ICsxNDMsMTQgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgSlNWYWx1ZSogZ2V0SlNOdW1iZXIoKTsgLy8gMCBpZiB0aGlzIGlz
IG5vdCBhIEpTTnVtYmVyIG9yIG51bWJlciBvYmplY3QKIAorICAgICAgICBKU0NlbGwqIGFzQ2Vs
bCgpOworICAgICAgICBjb25zdCBKU0NlbGwqIGFzQ2VsbCgpIGNvbnN0OworCiAgICAgcHJpdmF0
ZToKICAgICAgICAgYm9vbCBnZXRQcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgYm9vbCBnZXRQcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgaW50MzJfdCB0b0ludDMyU2xvd0Nhc2UoRXhlY1N0YXRlKiwgYm9vbCYgb2sp
IGNvbnN0OwogICAgICAgICB1aW50MzJfdCB0b1VJbnQzMlNsb3dDYXNlKEV4ZWNTdGF0ZSosIGJv
b2wmIG9rKSBjb25zdDsKLQotICAgICAgICAvLyBJbXBsZW1lbnRhdGlvbiBkZXRhaWxzLgotICAg
ICAgICBKU0NlbGwqIGFzQ2VsbCgpOwotICAgICAgICBjb25zdCBKU0NlbGwqIGFzQ2VsbCgpIGNv
bnN0OwogICAgIH07CiAKICAgICBpbmxpbmUgSlNWYWx1ZTo6SlNWYWx1ZSgpCkluZGV4OiBKYXZh
U2NyaXB0Q29yZS9ranMvU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJh
ZGVzQXNVbmRlZmluZWQuaAkocmV2aXNpb24gMzY3NTUpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMv
U3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaAkod29ya2luZyBjb3B5KQpA
QCAtMjEsNiArMjEsNyBAQAogI2lmbmRlZiBTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZF9oCiAjZGVmaW5lIFN0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVk
X2gKIAorI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiU3RyaW5nT2JqZWN0
LmgiCiAjaW5jbHVkZSAidXN0cmluZy5oIgogCkBAIC0yOSwxMiArMzAsMjUgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgLy8gV2ViQ29yZSB1c2VzIHRoaXMgdG8gbWFrZSBzdHlsZS5maWx0ZXIgdW5k
ZXRlY3RhYmxlCiAgICAgY2xhc3MgU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmlu
ZWQgOiBwdWJsaWMgU3RyaW5nT2JqZWN0IHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBT
dHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCogY3JlYXRlKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgVVN0cmluZyYgc3RyaW5nKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4gbmV3IChleGVjKSBTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZChleGVj
LAorICAgICAgICAgICAgICAgIGNyZWF0ZVN0cnVjdHVyZUlEKGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKS0+c3RyaW5nUHJvdG90eXBlKCkpLCBzdHJpbmcpOworICAgICAgICB9CisKKyAgICBw
cml2YXRlOgogICAgICAgICBTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZChF
eGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8U3RydWN0dXJlSUQ+IHN0cnVjdHVyZSwgY29uc3Qg
VVN0cmluZyYgc3RyaW5nKQogICAgICAgICAgICAgOiBTdHJpbmdPYmplY3QoZXhlYywgc3RydWN0
dXJlLCBzdHJpbmcpCiAgICAgICAgIHsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgYm9v
bCBtYXNxdWVyYWRlQXNVbmRlZmluZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZUlEPiBjcmVhdGVTdHJ1Y3R1cmVJRChKU1ZhbHVl
KiBwcm90b3R5cGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIFJlZlB0cjxTdHJ1Y3R1cmVJRD4g
c3RydWN0dXJlID0gU3RyaW5nT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmVJRChwcm90b3R5cGUpOwor
ICAgICAgICAgICAgc3RydWN0dXJlLT5tdXRhYmxlVHlwZUluZm8oKS5zZXRTaG91bGRNYXNxdWVy
YWRlQXNVbmRlZmluZWQoKTsKKyAgICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmUucmVsZWFzZSgp
OworICAgICAgICB9CisKICAgICAgICAgdmlydHVhbCBib29sIHRvQm9vbGVhbihFeGVjU3RhdGUq
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIH07CiAgCkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS9ranMvU3RydWN0dXJlSUQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvU3Ry
dWN0dXJlSUQuaAkocmV2aXNpb24gMzY3NTUpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvU3RydWN0
dXJlSUQuaAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDYgKzEwMCw5IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgICAgIGNvbnN0IFR5cGVJbmZvJiB0eXBlSW5mbygpIGNvbnN0IHsgcmV0dXJuIG1f
dHlwZUluZm87IH0KIAorICAgICAgICAvLyBGb3IgdXNlIHdoZW4gZmlyc3QgY3JlYXRpbmcgYSBu
ZXcgc3RydWN0dXJlLgorICAgICAgICBUeXBlSW5mbyYgbXV0YWJsZVR5cGVJbmZvKCkgeyByZXR1
cm4gbV90eXBlSW5mbzsgfQorCiAgICAgICAgIEpTVmFsdWUqIHN0b3JlZFByb3RvdHlwZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcHJvdG90eXBlOyB9CiAgICAgICAgIEpTVmFsdWUqIHByb3RvdHlwZUZv
ckxvb2t1cChFeGVjU3RhdGUqKTsgCiAKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9UeXBlSW5m
by5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9UeXBlSW5mby5oCShyZXZpc2lv
biAzNjc1NSkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9UeXBlSW5mby5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCwxMiArMzQsMjIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgVHlwZUluZm8g
ewogICAgICAgICBmcmllbmQgY2xhc3MgQ1RJOwogICAgIHB1YmxpYzoKLSAgICAgICAgVHlwZUlu
Zm8oSlNUeXBlIHR5cGUpIDogbV90eXBlKHR5cGUpIHsgfQotICAgICAgICAKKyAgICAgICAgVHlw
ZUluZm8oSlNUeXBlIHR5cGUpIDogbV90eXBlKHR5cGUpLCBtX2ZsYWdzKDApIHsgfQorCiAgICAg
ICAgIEpTVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAKKyAgICAgICAgLy8g
V2ViQ29yZSB1c2VzIHRoaXMgdG8gbWFrZSBkb2N1bWVudC5hbGwgYW5kIHN0eWxlLmZpbHRlciB1
bmRldGVjdGFibGUuCisgICAgICAgIHZvaWQgc2V0U2hvdWxkTWFzcXVlcmFkZUFzVW5kZWZpbmVk
KCkKKyAgICAgICAgeworICAgICAgICAgICAgbV9mbGFncyB8PSBNYXNxdWVyYWRlQXNVbmRlZmlu
ZWRGbGFnOworICAgICAgICB9CisgICAgICAgIGJvb2wgc2hvdWxkTWFzcXVlcmFkZUFzVW5kZWZp
bmVkKCkgY29uc3QgeyByZXR1cm4gbV9mbGFncyAmIE1hc3F1ZXJhZGVBc1VuZGVmaW5lZEZsYWc7
IH0KKwogICAgIHByaXZhdGU6CisgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBNYXNxdWVy
YWRlQXNVbmRlZmluZWRGbGFnID0gMHgxOworCiAgICAgICAgIEpTVHlwZSBtX3R5cGU7CisgICAg
ICAgIHVuc2lnbmVkIG1fZmxhZ3M7CiAgICAgfTsKIAogfQpJbmRleDogSmF2YVNjcmlwdENvcmUv
a2pzL29wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9vcGVy
YXRpb25zLmNwcAkocmV2aXNpb24gMzY3NTUpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvb3BlcmF0
aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDE1ICs1MywxNSBAQCBzdGFydE92ZXI6CiAg
ICAgaWYgKHYxLT5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7CiAgICAgICAgIGlmICh2Mi0+aXNVbmRl
ZmluZWRPck51bGwoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAoIXYy
LT5pc09iamVjdCgpKQorICAgICAgICBpZiAoSlNJbW1lZGlhdGU6OmlzSW1tZWRpYXRlKHYyKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpT
T2JqZWN0Kj4odjIpLT5tYXNxdWVyYWRlQXNVbmRlZmluZWQoKTsKKyAgICAgICAgcmV0dXJuIHYy
LT5hc0NlbGwoKS0+c3RydWN0dXJlSUQoKS0+dHlwZUluZm8oKS5zaG91bGRNYXNxdWVyYWRlQXNV
bmRlZmluZWQoKTsKICAgICB9CiAKICAgICBpZiAodjItPmlzVW5kZWZpbmVkT3JOdWxsKCkpIHsK
LSAgICAgICAgaWYgKCF2MS0+aXNPYmplY3QoKSkKKyAgICAgICAgaWYgKEpTSW1tZWRpYXRlOjpp
c0ltbWVkaWF0ZSh2MSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxKU09iamVjdCo+KHYxKS0+bWFzcXVlcmFkZUFzVW5kZWZpbmVkKCk7Cisg
ICAgICAgIHJldHVybiB2MS0+YXNDZWxsKCktPnN0cnVjdHVyZUlEKCktPnR5cGVJbmZvKCkuc2hv
dWxkTWFzcXVlcmFkZUFzVW5kZWZpbmVkKCk7CiAgICAgfQogCiAgICAgaWYgKHYxLT5pc09iamVj
dCgpKSB7CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gMzY3NTUpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTc1Myw2ICsxNzUzLDcgQEAKIAkJOTM0RjcxNDIwRDVB
NkY0NDAwMDE4RDY5IC8qIFJlc291cmNlRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEY3MTQxMEQ1QTZGNDQwMDAxOEQ2OSAvKiBSZXNvdXJj
ZUVycm9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTM0RjcxNDQwRDVBNkY1MzAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRGNzE0MzBE
NUE2RjUzMDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzRGRTlFNTBCNUNBNTM5MDAz
RTRBNzMgLyogRmlsZUNob29zZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM0RkU5RTQwQjVDQTUzOTAwM0U0QTczIC8qIEZpbGVDaG9vc2VyLmNw
cCAqLzsgfTsKKwkJOTM1MEU3MEQwRTg3NTAwQjAwMTg5RkZGIC8qIEpTSFRNTEFsbENvbGxlY3Rp
b24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1
MEU3MEMwRTg3NTAwQjAwMTg5RkZGIC8qIEpTSFRNTEFsbENvbGxlY3Rpb24uY3BwICovOyB9Owog
CQk5MzUyMDcxOTA5QkQzQkE1MDBGMjAzOEQgLyogU3RhdGljQ29uc3RydWN0b3JzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzUyMDcxNzA5QkQzQkE1
MDBGMjAzOEQgLyogU3RhdGljQ29uc3RydWN0b3JzLmggKi87IH07CiAJCTkzNTIwN0JFMDlCRDQx
MEEwMEYyMDM4RCAvKiBMb2NhbGl6ZWRTdHJpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzUyMDdCRDA5QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxp
emVkU3RyaW5ncy5oICovOyB9OwogCQk5MzUyMDdDMDA5QkQ0MTIxMDBGMjAzOEQgLyogTG9jYWxp
emVkU3RyaW5nc01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzNTIwN0JGMDlCRDQxMjAwMEYyMDM4RCAvKiBMb2NhbGl6ZWRTdHJpbmdzTWFjLm1t
ICovOyB9OwpAQCAtNjM5Niw2ICs2Mzk3LDcgQEAKIAkJOTM0RjcxNDEwRDVBNkY0NDAwMDE4RDY5
IC8qIFJlc291cmNlRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
c291cmNlRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0RjcxNDMwRDVB
NkY1MzAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5MzRGRTlFNDBCNUNBNTM5MDAzRTRBNzMgLyogRmlsZUNob29z
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZUNob29zZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzUwRTcwQzBFODc1MDBCMDAxODlG
RkYgLyogSlNIVE1MQWxsQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0hUTUxBbGxDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTM1MjA3MTcwOUJEM0JBNTAwRjIwMzhEIC8qIFN0YXRpY0NvbnN0cnVjdG9ycy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGF0aWNDb25zdHJ1Y3RvcnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1MjA3QkQwOUJENDEwQTAwRjIwMzhEIC8q
IExvY2FsaXplZFN0cmluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9j
YWxpemVkU3RyaW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzUyMDdCRjA5
QkQ0MTIwMDBGMjAzOEQgLyogTG9jYWxpemVkU3RyaW5nc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsaXplZFN0cmluZ3NNYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjY1Miw2ICsxMjY1NCw3IEBACiAJCQkJQkNEOUMyNkEw
QzE3QUE4MTAwNUM5MEEyIC8qIEpTRXZlbnRUYXJnZXROb2RlLmNwcCAqLywKIAkJCQlCQ0Q5QzI2
QjBDMTdBQTgxMDA1QzkwQTIgLyogSlNFdmVudFRhcmdldE5vZGUuaCAqLywKIAkJCQlCQzZEQzdB
MDBDMUE0QkZBMDA0RTIwMTcgLyogSlNIVE1MQWxsQ29sbGVjdGlvbi5oICovLAorCQkJCTkzNTBF
NzBDMEU4NzUwMEIwMDE4OUZGRiAvKiBKU0hUTUxBbGxDb2xsZWN0aW9uLmNwcCAqLywKIAkJCQlB
ODBFN0U2NDBBMUE4MkVDMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5jcHAgKi8s
CiAJCQkJQTgwRTdFNjMwQTFBODJFQzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVudEJhc2Uu
aCAqLywKIAkJCQlBODI2RThBRDBBMUE4RjIzMDBDRDFCQjYgLyogSlNIVE1MT3B0aW9uRWxlbWVu
dENvbnN0cnVjdG9yLmNwcCAqLywKQEAgLTE3NjkwLDYgKzE3NjkzLDcgQEAKIAkJCQlCMkYzNEZF
OTBFODJGODI3MDBGNjI3Q0QgLyogRE5TQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNF
Rjg2OUYwRTg0NEU5RDAwQTg1Q0Q1IC8qIFNjcm9sbGJhclRoZW1lTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTkzNTBFNzBEMEU4NzUwMEIwMDE4OUZGRiAvKiBKU0hUTUxBbGxDb2xs
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NT
U1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAkocmV2aXNpb24gMzY3NTUpCisr
KyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE1MCw5ICsxNTAsNyBAQCBKU1ZhbHVlKiBKU0NTU1N0eWxlRGVjbGFy
YXRpb246Om5hbWVHZXR0CiAKICAgICAvLyBNYWtlIHRoZSBTVkcgJ2ZpbHRlcicgYXR0cmlidXRl
IHVuZGV0ZWN0YWJsZSwgdG8gYXZvaWQgY29uZnVzaW9uIHdpdGggdGhlIElFICdmaWx0ZXInIGF0
dHJpYnV0ZS4KICAgICBpZiAocHJvcGVydHlOYW1lID09ICJmaWx0ZXIiKQotICAgICAgICByZXR1
cm4gbmV3IChleGVjKSBTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZChleGVj
LAotICAgICAgICAgICAgU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQ6OmNy
ZWF0ZVN0cnVjdHVyZUlEKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+c3RyaW5nUHJvdG90
eXBlKCkpLAotICAgICAgICAgICAgdGhpc09iai0+aW1wbCgpLT5nZXRQcm9wZXJ0eVZhbHVlKHBy
b3ApKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZp
bmVkOjpjcmVhdGUoZXhlYywgdGhpc09iai0+aW1wbCgpLT5nZXRQcm9wZXJ0eVZhbHVlKHByb3Ap
KTsKIAogICAgIHJldHVybiBqc1N0cmluZyhleGVjLCB0aGlzT2JqLT5pbXBsKCktPmdldFByb3Bl
cnR5VmFsdWUocHJvcCkpOwogfQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBbGxD
b2xsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEFs
bENvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxBbGxDb2xsZWN0aW9uLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTSFRNTEFsbENvbGxlY3Rpb24uaCIK
KwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25zdCBD
bGFzc0luZm8gSlNIVE1MQWxsQ29sbGVjdGlvbjo6c19pbmZvID0geyAiSFRNTEFsbENvbGxlY3Rp
b24iLCAwLCAwLCAwIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKClByb3BlcnR5IGNoYW5n
ZXMgb246IFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQWxsQ29sbGVjdGlvbi5jcHAKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpOYW1lOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDM2NzU1KQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDYgKzI2LDcgQEAKICNpZm5kZWYgSlNIVE1MQWxsQ29sbGVjdGlvbl9oCiAjZGVmaW5lIEpTSFRN
TEFsbENvbGxlY3Rpb25faAogCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRl
ICJKU0hUTUxDb2xsZWN0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDggKzQw
LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgewogICAgICAgICB9CiAKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmVJRD4gY3JlYXRlU3RydWN0dXJlSUQo
SlNDOjpKU1ZhbHVlKiBwcm90b3R5cGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIFJlZlB0cjxK
U0M6OlN0cnVjdHVyZUlEPiBzdHJ1Y3R1cmUgPSBKU0hUTUxDb2xsZWN0aW9uOjpjcmVhdGVTdHJ1
Y3R1cmVJRChwcm90b3R5cGUpOworICAgICAgICAgICAgc3RydWN0dXJlLT5tdXRhYmxlVHlwZUlu
Zm8oKS5zZXRTaG91bGRNYXNxdWVyYWRlQXNVbmRlZmluZWQoKTsKKyAgICAgICAgICAgIHJldHVy
biBzdHJ1Y3R1cmUucmVsZWFzZSgpOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIGNvbnN0
IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKKworICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCB0b0Jvb2xlYW4oSlNDOjpFeGVjU3RhdGUqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQot
ICAgICAgICB2aXJ0dWFsIGJvb2wgbWFzcXVlcmFkZUFzVW5kZWZpbmVkKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>