<?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>204244</bug_id>
          
          <creation_ts>2019-11-15 13:50:54 -0800</creation_ts>
          <short_desc>Rename InPlaceAbstractState&apos;s m_foundConstant to m_shouldTryConstantFolding.</short_desc>
          <delta_ts>2019-11-15 14:11:20 -0800</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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1590636</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-15 13:50:54 -0800</bug_when>
    <thetext>m_shouldTryConstantFolding is a more accurate description of what this flag really means i.e. that we may benefit from constant folding, and therefore, should attempt it.  It doesn&apos;t always  mean that we found constants to be folded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590647</commentid>
    <comment_count>1</comment_count>
      <attachid>383646</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-15 13:56:25 -0800</bug_when>
    <thetext>Created attachment 383646
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590655</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-15 14:10:58 -0800</bug_when>
    <thetext>Thanks for the review.  Landed in r252502: &lt;http://trac.webkit.org/r252502&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590656</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-15 14:11:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/57239831&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383646</attachid>
            <date>2019-11-15 13:56:25 -0800</date>
            <delta_ts>2019-11-15 14:00:43 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-204244.patch</filename>
            <type>text/plain</type>
            <size>29919</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjUyNDk5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDE5LTExLTE1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW5hbWUgSW5QbGFjZUFic3RyYWN0U3RhdGUncyBtX2ZvdW5kQ29uc3RhbnQgdG8gbV9zaG91bGRU
cnlDb25zdGFudEZvbGRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQyNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBtX3Nob3VsZFRyeUNvbnN0YW50Rm9sZGluZyBpcyBhIG1vcmUgYWNjdXJhdGUg
ZGVzY3JpcHRpb24gb2Ygd2hhdCB0aGlzIGZsYWcgcmVhbGx5CisgICAgICAgIG1lYW5zIGkuZS4g
dGhhdCB0aGUgQWJzdHJhY3RJbnRlcnByZXRlciB0aGlua3MgdGhhdCB3ZSBtYXkgYmVuZWZpdCBm
cm9tIGNvbnN0YW50CisgICAgICAgIGZvbGRpbmcsIGFuZCB0aGVyZWZvcmUsIHNob3VsZCBhdHRl
bXB0IGl0LiAgSXQgZG9lc24ndCBhbHdheXMgbWVhbiB0aGF0IGl0IGZvdW5kCisgICAgICAgIGNv
bnN0YW50cyB0byBiZSBmb2xkZWQuICBJdCBhbHNvIGRvZXNuJ3QgZ3VhcmFudGVlIHRoYXQgdGhl
IGNvbnN0YW50IGZvbGRpbmcgcGhhc2UKKyAgICAgICAgd2lsbCBzdWNjZWVkIGluIGZvbGRpbmcg
YW55IGNvbnN0YW50cy4KKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVyLmg6
CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjo6c2V0Q29uc3RhbnQpOgor
ICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAo
SlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRl
RWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0F0VGFpbEFic3RyYWN0U3RhdGUuaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpBdFRhaWxBYnN0cmFjdFN0YXRlOjpzZXRTaG91bGRUcnlDb25zdGFudEZv
bGRpbmcpOgorICAgICAgICAoSlNDOjpERkc6OkF0VGFpbEFic3RyYWN0U3RhdGU6OnNldEZvdW5k
Q29uc3RhbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHQmFzaWNCbG9jay5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6QmFzaWNCbG9jazo6QmFzaWNCbG9jayk6CisgICAgICAgICogZGZn
L0RGR0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2Uu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkNvbnN0YW50Rm9sZGluZ1BoYXNlOjpydW4pOgorICAg
ICAgICAqIGRmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6SW5QbGFjZUFic3RyYWN0U3RhdGU6OmJlZ2luQmFzaWNCbG9jayk6CisgICAgICAgIChKU0M6
OkRGRzo6SW5QbGFjZUFic3RyYWN0U3RhdGU6OmluaXRpYWxpemUpOgorICAgICAgICAoSlNDOjpE
Rkc6OkluUGxhY2VBYnN0cmFjdFN0YXRlOjplbmRCYXNpY0Jsb2NrKToKKyAgICAgICAgKiBkZmcv
REZHSW5QbGFjZUFic3RyYWN0U3RhdGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpJblBsYWNlQWJz
dHJhY3RTdGF0ZTo6c2V0U2hvdWxkVHJ5Q29uc3RhbnRGb2xkaW5nKToKKyAgICAgICAgKEpTQzo6
REZHOjpJblBsYWNlQWJzdHJhY3RTdGF0ZTo6c2V0Rm91bmRDb25zdGFudHMpOiBEZWxldGVkLgor
CiAyMDE5LTExLTE0ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAg
IE1ha2UgZ2NTYWZlTWVtY3B5L2djU2FmZU1lbW1vdmUvZ2NTYWZlWmVyb01lbW9yeSB3b3JrIHBy
b3Blcmx5IG9uIGFybTY0XzMyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXIuaAkocmV2aXNpb24gMjUyNDk4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI0Nyw3ICsyNDcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0Q29uc3RhbnQoTm9k
ZSogbm9kZSwgRnJvemVuVmFsdWUgdmFsdWUpCiAgICAgewogICAgICAgICBzZXRCdWlsdEluQ29u
c3RhbnQobm9kZSwgdmFsdWUpOwotICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRy
dWUpOworICAgICAgICBtX3N0YXRlLnNldFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZyh0cnVlKTsK
ICAgICB9CiAgICAgCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIGZpbHRlckJ5VHlwZShFZGdlJiBl
ZGdlLCBTcGVjdWxhdGVkVHlwZSB0eXBlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHJldmlz
aW9uIDI1MjQ5OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzY5LDcgKzM2OSw3IEBAIGJvb2wg
QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICBjYXNlIElkZW50aXR5OiB7
CiAgICAgICAgIHNldEZvck5vZGUobm9kZSwgZm9yTm9kZShub2RlLT5jaGlsZDEoKSkpOwogICAg
ICAgICBpZiAoZm9yTm9kZShub2RlKS52YWx1ZSgpKQotICAgICAgICAgICAgbV9zdGF0ZS5zZXRG
b3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29u
c3RhbnRGb2xkaW5nKHRydWUpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgICAgIApAQCAt
Mzg1LDcgKzM4NSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkK
ICAgICAgICAgLy8gVGhlIHZhbHVlIGluIHRoZSBsb2NhbCBzaG91bGQgYWxyZWFkeSBiZSBjaGVj
a2VkLgogICAgICAgICBERkdfQVNTRVJUKG1fZ3JhcGgsIG5vZGUsIHZhbHVlLmlzVHlwZSh0eXBl
RmlsdGVyRm9yKHZhcmlhYmxlQWNjZXNzRGF0YS0+Zmx1c2hGb3JtYXQoKSkpKTsKICAgICAgICAg
aWYgKHZhbHVlLnZhbHVlKCkpCi0gICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRz
KHRydWUpOworICAgICAgICAgICAgbV9zdGF0ZS5zZXRTaG91bGRUcnlDb25zdGFudEZvbGRpbmco
dHJ1ZSk7CiAgICAgICAgIHNldEZvck5vZGUobm9kZSwgdmFsdWUpOwogICAgICAgICBicmVhazsK
ICAgICB9CkBAIC0zOTYsNyArMzk2LDcgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3Ry
YWN0U3RhdGVUeQogICAgICAgICAvLyBUaGUgdmFsdWUgaW4gdGhlIGxvY2FsIHNob3VsZCBhbHJl
YWR5IGJlIGNoZWNrZWQuCiAgICAgICAgIERGR19BU1NFUlQobV9ncmFwaCwgbm9kZSwgdmFsdWUu
aXNUeXBlKHR5cGVGaWx0ZXJGb3IoZGF0YS0+Zm9ybWF0KSkpOwogICAgICAgICBpZiAodmFsdWUu
dmFsdWUoKSkKLSAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7Cisg
ICAgICAgICAgICBtX3N0YXRlLnNldFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZyh0cnVlKTsKICAg
ICAgICAgc2V0Rm9yTm9kZShub2RlLCB2YWx1ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAg
LTU5Nyw3ICs1OTcsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5
CiAgICAgICAgIEFic3RyYWN0VmFsdWUmIHZhbHVlID0gZm9yTm9kZShub2RlKTsKICAgICAgICAg
dmFsdWUgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgaWYgKG5vZGUtPmNoaWxk
MSgpLnVzZUtpbmQoKSA9PSBVbnR5cGVkVXNlICYmICEodmFsdWUubV90eXBlICYgflNwZWNCb29s
ZWFuKSkKLSAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CisgICAg
ICAgICAgICBtX3N0YXRlLnNldFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZyh0cnVlKTsKICAgICAg
ICAgaWYgKHZhbHVlLm1fdHlwZSAmIFNwZWNCb29sZWFuKSB7CiAgICAgICAgICAgICB2YWx1ZS5t
ZXJnZShTcGVjQm9vbEludDMyKTsKICAgICAgICAgICAgIHZhbHVlLmZpbHRlcih+U3BlY0Jvb2xl
YW4pOwpAQCAtODE5LDcgKzgxOSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFj
dFN0YXRlVHkKICAgICAgICAgfQogCiAgICAgICAgIGlmIChudW1iZXJPZlJlbW92ZWRDaGlsZHJl
bikKLSAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CisgICAgICAg
ICAgICBtX3N0YXRlLnNldFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZyh0cnVlKTsKICAgICAgICAg
c2V0Rm9yTm9kZShub2RlLCBtX3ZtLnN0cmluZ1N0cnVjdHVyZS5nZXQoKSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KQEAgLTEyNzEsNyArMTI3MSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRl
cjxBYnN0cmFjdFN0YXRlVHkKIAogICAgICAgICBTcGVjdWxhdGVkVHlwZSB0eXBlTWF5YmVOb3Jt
YWxpemVkID0gKFNwZWNGdWxsTnVtYmVyICYgflNwZWNJbnQzMk9ubHkpOwogICAgICAgICBpZiAo
IShmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5tX3R5cGUgJiB0eXBlTWF5YmVOb3JtYWxpemVkKSkg
ewotICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAgICAg
ICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29uc3RhbnRGb2xkaW5nKHRydWUpOwogICAgICAgICAg
ICAgZm9yTm9kZShub2RlKSA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KQEAgLTE5MDMsNyArMTkwMyw3IEBAIGJvb2wgQWJzdHJhY3RJbnRl
cnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAgICAgIH07CiAKICAgICAgICAgICAgIGlm
IChpc05vblN0cmluZ0NlbGxDb25zdGFudChsZWZ0KSB8fCBpc05vblN0cmluZ0NlbGxDb25zdGFu
dChyaWdodCkpIHsKLSAgICAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRy
dWUpOworICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29uc3RhbnRGb2xkaW5n
KHRydWUpOwogICAgICAgICAgICAgICAgIHNldE5vbkNlbGxUeXBlRm9yTm9kZShub2RlLCBTcGVj
Qm9vbGVhbik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0yMzM0
LDEzICsyMzM0LDEzIEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkK
ICAgICAgICAgICAgICAgICAgICAgaWYgKGFyZ3VtZW50SW5kZXggPCBpbmxpbmVDYWxsRnJhbWUt
PmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzIC0gMSkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0Rm9yTm9kZShub2RlLCBtX3N0YXRlLm9wZXJhbmQoCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoYXJndW1lbnRJbmRleCArIDEpICsg
aW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAgICAg
bV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29uc3RhbnRGb2xkaW5nKHRydWUpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBpZiAoYXJndW1lbnRJbmRleCA8IG1fc3Rh
dGUubnVtYmVyT2ZBcmd1bWVudHMoKSAtIDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHNl
dEZvck5vZGUobm9kZSwgbV9zdGF0ZS5hcmd1bWVudChhcmd1bWVudEluZGV4ICsgMSkpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29uc3RhbnRGb2xkaW5n
KHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICB9CkBAIC0yMzYxLDcgKzIzNjEsNyBAQCBib29sIEFic3Ry
YWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgICAgICAgICAgICAgcmVzdWx0Lm1l
cmdlKFNwZWNPdGhlcik7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChyZXN1bHQudmFs
dWUoKSkKLSAgICAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOwor
ICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29uc3RhbnRGb2xkaW5nKHRydWUp
OwogICAgICAgICAgICAgCiAgICAgICAgICAgICBzZXRGb3JOb2RlKG5vZGUsIHJlc3VsdCk7CiAg
ICAgICAgICAgICBicmVhazsKQEAgLTI0NzksNyArMjQ3OSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRl
cnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAgQVNTRVJUKG5vZGUtPmNoaWxkMSgpLnVz
ZUtpbmQoKSA9PSBVbnR5cGVkVXNlKTsKICAgICAgICAgCiAgICAgICAgIGlmICghKGZvck5vZGUo
bm9kZS0+Y2hpbGQxKCkpLm1fdHlwZSAmIH4oU3BlY0Z1bGxOdW1iZXIgfCBTcGVjQm9vbGVhbiB8
IFNwZWNTdHJpbmcgfCBTcGVjU3ltYm9sIHwgU3BlY0JpZ0ludCkpKSB7Ci0gICAgICAgICAgICBt
X3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAgICAgICAgbV9zdGF0ZS5zZXRT
aG91bGRUcnlDb25zdGFudEZvbGRpbmcodHJ1ZSk7CiAgICAgICAgICAgICBkaWRGb2xkQ2xvYmJl
cldvcmxkKCk7CiAgICAgICAgICAgICBzZXRGb3JOb2RlKG5vZGUsIGZvck5vZGUobm9kZS0+Y2hp
bGQxKCkpKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjUwMiw3ICsyNTAyLDcgQEAgYm9vbCBB
YnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgICAgICBBU1NFUlQobm9kZS0+
Y2hpbGQxKCkudXNlS2luZCgpID09IFVudHlwZWRVc2UpOwogCiAgICAgICAgIGlmICghKGZvck5v
ZGUobm9kZS0+Y2hpbGQxKCkpLm1fdHlwZSAmIH5TcGVjQnl0ZWNvZGVOdW1iZXIpKSB7Ci0gICAg
ICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAgICAgICAgbV9z
dGF0ZS5zZXRTaG91bGRUcnlDb25zdGFudEZvbGRpbmcodHJ1ZSk7CiAgICAgICAgICAgICBkaWRG
b2xkQ2xvYmJlcldvcmxkKCk7CiAgICAgICAgICAgICBzZXRGb3JOb2RlKG5vZGUsIGZvck5vZGUo
bm9kZS0+Y2hpbGQxKCkpKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjU0MCw3ICsyNTQwLDcg
QEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgICAgICBpZiAo
cmFkaXhWYWx1ZSAmJiByYWRpeFZhbHVlLmlzSW50MzIoKSkgewogICAgICAgICAgICAgaW50MzJf
dCByYWRpeCA9IHJhZGl4VmFsdWUuYXNJbnQzMigpOwogICAgICAgICAgICAgaWYgKDIgPD0gcmFk
aXggJiYgcmFkaXggPD0gMzYpIHsKLSAgICAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29u
c3RhbnRzKHRydWUpOworICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29uc3Rh
bnRGb2xkaW5nKHRydWUpOwogICAgICAgICAgICAgICAgIGRpZEZvbGRDbG9iYmVyV29ybGQoKTsK
ICAgICAgICAgICAgICAgICBzZXRGb3JOb2RlKG5vZGUsIG1fZ3JhcGgubV92bS5zdHJpbmdTdHJ1
Y3R1cmUuZ2V0KCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjY0MSwxNCArMjY0MSwx
NCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgICAgIFRv
VGhpc1Jlc3VsdCByZXN1bHQgPSBpc1RvVGhpc0FuSWRlbnRpdHkobV92bSwgc3RyaWN0TW9kZSwg
c291cmNlKTsKICAgICAgICAgc3dpdGNoIChyZXN1bHQpIHsKICAgICAgICAgY2FzZSBUb1RoaXNS
ZXN1bHQ6OklkZW50aXR5OgotICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0
cnVlKTsKKyAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29uc3RhbnRGb2xkaW5nKHRy
dWUpOwogICAgICAgICAgICAgZGVzdGluYXRpb24gPSBzb3VyY2U7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBUb1RoaXNSZXN1bHQ6OlVuZGVmaW5lZDoKICAgICAgICAgICAgIHNl
dENvbnN0YW50KG5vZGUsIGpzVW5kZWZpbmVkKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgVG9UaGlzUmVzdWx0OjpHbG9iYWxUaGlzOgotICAgICAgICAgICAgbV9zdGF0ZS5z
ZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5
Q29uc3RhbnRGb2xkaW5nKHRydWUpOwogICAgICAgICAgICAgZGVzdGluYXRpb24uc2V0VHlwZSht
X2dyYXBoLCBTcGVjT2JqZWN0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFRv
VGhpc1Jlc3VsdDo6RHluYW1pYzoKQEAgLTI2NzEsNyArMjY3MSw3IEBAIGJvb2wgQWJzdHJhY3RJ
bnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHJhcmVEYXRhLT5vYmplY3RBbGxvY2F0aW9uU3RydWN0dXJl
KCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLmZyZWV6ZShyYXJlRGF0
YSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9ncmFwaC53YXRjaHBvaW50cygpLmFk
ZExhemlseShyYXJlRGF0YS0+YWxsb2NhdGlvblByb2ZpbGVXYXRjaHBvaW50U2V0KCkpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zdGF0ZS5zZXRTaG91bGRUcnlDb25zdGFu
dEZvbGRpbmcodHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRm9sZENsb2Ji
ZXJXb3JsZCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEZvck5vZGUobm9kZSwg
c3RydWN0dXJlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI2ODks
NyArMjY4OSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAg
ICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0
Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CiAgICAgICAgIGlmIChKU1ZhbHVlIGJhc2UgPSBm
b3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5tX3ZhbHVlKSB7CiAgICAgICAgICAgICBpZiAoYmFzZSA9
PSAobm9kZS0+aXNJbnRlcm5hbFByb21pc2UoKSA/IGdsb2JhbE9iamVjdC0+aW50ZXJuYWxQcm9t
aXNlQ29uc3RydWN0b3IoKSA6IGdsb2JhbE9iamVjdC0+cHJvbWlzZUNvbnN0cnVjdG9yKCkpKSB7
Ci0gICAgICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAg
ICAgICAgICAgICBtX3N0YXRlLnNldFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZyh0cnVlKTsKICAg
ICAgICAgICAgICAgICBkaWRGb2xkQ2xvYmJlcldvcmxkKCk7CiAgICAgICAgICAgICAgICAgc2V0
Rm9yTm9kZShub2RlLCBub2RlLT5pc0ludGVybmFsUHJvbWlzZSgpID8gZ2xvYmFsT2JqZWN0LT5p
bnRlcm5hbFByb21pc2VTdHJ1Y3R1cmUoKSA6IGdsb2JhbE9iamVjdC0+cHJvbWlzZVN0cnVjdHVy
ZSgpKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI3MDQsNyArMjcwNCw3IEBAIGJvb2wg
QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmJiByYXJlRGF0YS0+YWxsb2NhdGlvblByb2ZpbGVXYXRjaHBvaW50U2V0KCkuaXNT
dGlsbFZhbGlkKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLmZyZWV6
ZShyYXJlRGF0YSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9ncmFwaC53YXRjaHBv
aW50cygpLmFkZExhemlseShyYXJlRGF0YS0+YWxsb2NhdGlvblByb2ZpbGVXYXRjaHBvaW50U2V0
KCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFu
dHModHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zdGF0ZS5zZXRTaG91bGRU
cnlDb25zdGFudEZvbGRpbmcodHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlk
Rm9sZENsb2JiZXJXb3JsZCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEZvck5v
ZGUobm9kZSwgc3RydWN0dXJlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
QEAgLTI3MzMsNyArMjczMyw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0
YXRlVHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgcmFyZURhdGEtPmFsbG9j
YXRpb25Qcm9maWxlV2F0Y2hwb2ludFNldCgpLmlzU3RpbGxWYWxpZCgpKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGguZnJlZXplKHJhcmVEYXRhKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9ncmFwaC53YXRjaHBvaW50cygpLmFkZExhemlseShy
YXJlRGF0YS0+YWxsb2NhdGlvblByb2ZpbGVXYXRjaHBvaW50U2V0KCkpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3N0YXRlLnNldFNob3VsZFRyeUNvbnN0YW50
Rm9sZGluZyh0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRm9sZENs
b2JiZXJXb3JsZCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRGb3JOb2Rl
KG5vZGUsIHN0cnVjdHVyZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwpAQCAtMjc5MCw3ICsyNzkwLDcgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFi
c3RyYWN0U3RhdGVUeQogICAgICAgICAgICAgICAgIHN0cnVjdHVyZSA9IG1fdm0uc3RydWN0dXJl
Q2FjaGUuZW1wdHlPYmplY3RTdHJ1Y3R1cmVDb25jdXJyZW50bHkoZ2xvYmFsT2JqZWN0LCBiYXNl
LmdldE9iamVjdCgpLCBKU0ZpbmFsT2JqZWN0OjpkZWZhdWx0SW5saW5lQ2FwYWNpdHkoKSk7CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChzdHJ1Y3R1cmUpIHsKLSAgICAgICAgICAgICAg
ICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAgICAgICAgICAgIG1fc3Rh
dGUuc2V0U2hvdWxkVHJ5Q29uc3RhbnRGb2xkaW5nKHRydWUpOwogICAgICAgICAgICAgICAgIGlm
IChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gVW50eXBlZFVzZSkKICAgICAgICAgICAgICAg
ICAgICAgZGlkRm9sZENsb2JiZXJXb3JsZCgpOwogICAgICAgICAgICAgICAgIHNldEZvck5vZGUo
bm9kZSwgc3RydWN0dXJlKTsKQEAgLTI4MTEsNyArMjgxMSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRl
cnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAgICAgICAgICBpZiAoYXV0byogcmFyZURh
dGEgPSBzdHJ1Y3R1cmUtPnJhcmVEYXRhQ29uY3VycmVudGx5KCkpIHsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKCEhcmFyZURhdGEtPmNhY2hlZE93bktleXNDb25jdXJyZW50bHkoKSkgewogICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKG1fZ3JhcGguaXNXYXRjaGluZ0hhdmluZ0FCYWRUaW1l
V2F0Y2hwb2ludChub2RlKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUu
c2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9z
dGF0ZS5zZXRTaG91bGRUcnlDb25zdGFudEZvbGRpbmcodHJ1ZSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGlkRm9sZENsb2JiZXJXb3JsZCgpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNldFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNBcnJheSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CkBAIC0yODMyLDcgKzI4MzIsNyBAQCBib29sIEFic3RyYWN0SW50
ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgICAgIEFic3RyYWN0VmFsdWUmIGRlc3RpbmF0
aW9uID0gZm9yTm9kZShub2RlKTsKIAogICAgICAgICBpZiAoIShzb3VyY2UubV90eXBlICYgflNw
ZWNPYmplY3QpKSB7Ci0gICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUp
OworICAgICAgICAgICAgbV9zdGF0ZS5zZXRTaG91bGRUcnlDb25zdGFudEZvbGRpbmcodHJ1ZSk7
CiAgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBUb09iamVjdCkKICAgICAgICAgICAgICAg
ICBkaWRGb2xkQ2xvYmJlcldvcmxkKCk7CiAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IHNvdXJj
ZTsKQEAgLTMwOTEsNyArMzA5MSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFj
dFN0YXRlVHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwgc3RhdHVzW2ldLm9m
ZnNldCgpLCBtX3N0YXRlLnN0cnVjdHVyZUNsb2JiZXJTdGF0ZSgpKSk7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0
YW50cyh0cnVlKTsKKyAgICAgICAgICAgICAgICBtX3N0YXRlLnNldFNob3VsZFRyeUNvbnN0YW50
Rm9sZGluZyh0cnVlKTsKICAgICAgICAgICAgICAgICBkaWRGb2xkQ2xvYmJlcldvcmxkKCk7CiAg
ICAgICAgICAgICAgICAgZm9yTm9kZShub2RlKSA9IHJlc3VsdDsKICAgICAgICAgICAgICAgICBi
cmVhazsKQEAgLTMxNDQsNyArMzE0NCw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0
cmFjdFN0YXRlVHkKICAgICAgICAgLy8gbW9yZSBlZmZpY2llbnQuIFdlIGN1cnJlbnRseSBkb24n
dC4KICAgICAgICAgCiAgICAgICAgIGlmICh2YWx1ZS5tX3N0cnVjdHVyZS5pc1N1YnNldE9mKHNl
dCkpCi0gICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAg
ICAgICAgbV9zdGF0ZS5zZXRTaG91bGRUcnlDb25zdGFudEZvbGRpbmcodHJ1ZSk7CiAKICAgICAg
ICAgU3BlY3VsYXRlZFR5cGUgYWRtaXR0ZWRUeXBlcyA9IFNwZWNOb25lOwogICAgICAgICBzd2l0
Y2ggKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSkgewpAQCAtMzE2OSw3ICszMTY5LDcgQEAgYm9v
bCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogCiAgICAgICAgIGJvb2wgbWF5
QmVFbXB0eSA9IHZhbHVlLm1fdHlwZSAmIFNwZWNFbXB0eTsKICAgICAgICAgaWYgKCFtYXlCZUVt
cHR5KQotICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAg
ICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29uc3RhbnRGb2xkaW5nKHRydWUpOwogCiAgICAg
ICAgIFNwZWN1bGF0ZWRUeXBlIGFkbWl0dGVkVHlwZXMgPSBtYXlCZUVtcHR5ID8gU3BlY0VtcHR5
IDogU3BlY05vbmU7CiAgICAgICAgIGZpbHRlcih2YWx1ZSwgbm9kZS0+c3RydWN0dXJlU2V0KCks
IGFkbWl0dGVkVHlwZXMpOwpAQCAtMzE4Niw3ICszMTg2LDcgQEAgYm9vbCBBYnN0cmFjdEludGVy
cHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgICAgICBpZiAodmFsdWUudmFsdWUoKSkgewogICAg
ICAgICAgICAgaWYgKFN0cnVjdHVyZSogc3RydWN0dXJlID0ganNEeW5hbWljQ2FzdDxTdHJ1Y3R1
cmUqPihtX3ZtLCB2YWx1ZS52YWx1ZSgpKSkgewogICAgICAgICAgICAgICAgIGlmIChzZXQuY29u
dGFpbnMobV9ncmFwaC5yZWdpc3RlclN0cnVjdHVyZShzdHJ1Y3R1cmUpKSkgewotICAgICAgICAg
ICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAgICAgICAg
ICAgICAgICBtX3N0YXRlLnNldFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZyh0cnVlKTsKICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpA
QCAtMzIwNiw3ICszMjA2LDcgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3Rh
dGVUeQogICAgICAgICAgICAgICAgICAgICBhbGxHb29kID0gZmFsc2U7CiAgICAgICAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgICBpZiAoYWxsR29vZCkgewotICAgICAgICAgICAgICAgIG1fc3Rh
dGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CisgICAgICAgICAgICAgICAgbV9zdGF0ZS5zZXRT
aG91bGRUcnlDb25zdGFudEZvbGRpbmcodHJ1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTMyMjQsNyArMzIyNCw3IEBAIGJvb2wgQWJzdHJh
Y3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAgaWYgKCFmb3JOb2RlKG5vZGUt
PmNoaWxkMSgpKS5tX3N0cnVjdHVyZS5pc0NsZWFyKCkpIHsKICAgICAgICAgICAgIGlmIChmb3JO
b2RlKG5vZGUtPmNoaWxkMSgpKS5tX3N0cnVjdHVyZS5vbmx5U3RydWN0dXJlKCkgPT0gbm9kZS0+
dHJhbnNpdGlvbigpLT5uZXh0KSB7CiAgICAgICAgICAgICAgICAgZGlkRm9sZENsb2JiZXJTdHJ1
Y3R1cmVzKCk7Ci0gICAgICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVl
KTsKKyAgICAgICAgICAgICAgICBtX3N0YXRlLnNldFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZyh0
cnVlKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgb2JzZXJ2ZVRyYW5z
aXRpb24oCiAgICAgICAgICAgICAgICAgICAgIGNsb2JiZXJMaW1pdCwgbm9kZS0+dHJhbnNpdGlv
bigpLT5wcmV2aW91cywgbm9kZS0+dHJhbnNpdGlvbigpLT5uZXh0KTsKQEAgLTMyNDksNyArMzI0
OSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAg
SlNWYWx1ZSBjb25zdGFudCA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CiAgICAg
ICAgIGlmIChjb25zdGFudCkgewogICAgICAgICAgICAgaWYgKGNvbnN0YW50LmlzQ2VsbCgpICYm
IGNvbnN0YW50LmFzQ2VsbCgpLT5pbmhlcml0cyhtX3ZtLCBub2RlLT5jbGFzc0luZm8oKSkpIHsK
LSAgICAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAg
ICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29uc3RhbnRGb2xkaW5nKHRydWUpOwogICAg
ICAgICAgICAgICAgIEFTU0VSVChjb25zdGFudCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICB9CkBAIC0zMjU4LDcgKzMyNTgsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0
ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgICAgIEFic3RyYWN0VmFsdWUmIHZhbHVlID0gZm9yTm9k
ZShub2RlLT5jaGlsZDEoKSk7CiAKICAgICAgICAgaWYgKHZhbHVlLm1fc3RydWN0dXJlLmlzU3Vi
Q2xhc3NPZihub2RlLT5jbGFzc0luZm8oKSkpCi0gICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5k
Q29uc3RhbnRzKHRydWUpOworICAgICAgICAgICAgbV9zdGF0ZS5zZXRTaG91bGRUcnlDb25zdGFu
dEZvbGRpbmcodHJ1ZSk7CiAKICAgICAgICAgZmlsdGVyQ2xhc3NJbmZvKHZhbHVlLCBub2RlLT5j
bGFzc0luZm8oKSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMzI4Myw3ICszMjgzLDcgQEAgYm9vbCBB
YnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgIH0KICAgICBjYXNlIENoZWNr
QXJyYXk6IHsKICAgICAgICAgaWYgKG5vZGUtPmFycmF5TW9kZSgpLmFscmVhZHlDaGVja2VkKG1f
Z3JhcGgsIG5vZGUsIGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpKSkgewotICAgICAgICAgICAgbV9z
dGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hv
dWxkVHJ5Q29uc3RhbnRGb2xkaW5nKHRydWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgc3dpdGNoIChub2RlLT5hcnJheU1vZGUoKS50eXBlKCkpIHsKQEAgLTMzNDMs
NyArMzM0Myw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAg
ICBjYXNlIEFycmF5aWZ5OiB7CiAgICAgICAgIGlmIChub2RlLT5hcnJheU1vZGUoKS5hbHJlYWR5
Q2hlY2tlZChtX2dyYXBoLCBub2RlLCBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKSkpIHsKICAgICAg
ICAgICAgIGRpZEZvbGRDbG9iYmVyU3RydWN0dXJlcygpOwotICAgICAgICAgICAgbV9zdGF0ZS5z
ZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5
Q29uc3RhbnRGb2xkaW5nKHRydWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgQVNTRVJUKG5vZGUtPmFycmF5TW9kZSgpLmNvbnZlcnNpb24oKSA9PSBBcnJheTo6Q29u
dmVydCk7CkBAIC0zMzU0LDcgKzMzNTQsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJz
dHJhY3RTdGF0ZVR5CiAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOiB7CiAgICAgICAgIEFi
c3RyYWN0VmFsdWUmIHZhbHVlID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIGlm
ICh2YWx1ZS5tX3N0cnVjdHVyZS5pc1N1YnNldE9mKFJlZ2lzdGVyZWRTdHJ1Y3R1cmVTZXQobm9k
ZS0+c3RydWN0dXJlKCkpKSkKLSAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHMo
dHJ1ZSk7CisgICAgICAgICAgICBtX3N0YXRlLnNldFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZyh0
cnVlKTsKICAgICAgICAgY2xvYmJlclN0cnVjdHVyZXMoKTsKICAgICAgICAgCiAgICAgICAgIC8v
IFdlIGhhdmUgYSBidW5jaCBvZiBvcHRpb25zIG9mIGhvdyB0byBleHByZXNzIHRoZSBhYnN0cmFj
dCBzZXQgYXQgdGhpcyBwb2ludC4gTGV0IHNldCBTCkBAIC0zMzkxLDcgKzMzOTEsNyBAQCBib29s
IEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgICAgIEpTQXJyYXlCdWZm
ZXJWaWV3KiB2aWV3ID0gbV9ncmFwaC50cnlHZXRGb2xkYWJsZVZpZXcoCiAgICAgICAgICAgICBm
b3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5tX3ZhbHVlLCBub2RlLT5hcnJheU1vZGUoKSk7CiAgICAg
ICAgIGlmICh2aWV3KQotICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVl
KTsKKyAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29uc3RhbnRGb2xkaW5nKHRydWUp
OwogICAgICAgICBjbGVhckZvck5vZGUobm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAg
LTM0ODIsNyArMzQ4Miw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRl
VHkKIAogICAgICAgICBzZXRGb3JOb2RlKG5vZGUsIHZhbHVlKTsKICAgICAgICAgaWYgKHZhbHVl
Lm1fdmFsdWUpCi0gICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOwor
ICAgICAgICAgICAgbV9zdGF0ZS5zZXRTaG91bGRUcnlDb25zdGFudEZvbGRpbmcodHJ1ZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCkBAIC0zNTA5LDkgKzM1MDksOSBAQCBib29s
IEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgICAgIC8vIGNvbnRyYWRp
Y3Rpb24gdGhlbiB0aGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbnRyYWRpY3Rpb24gZXZlbiBpZiBz
dWJzZXF1ZW50IHBhc3NlcyBkb24ndAogICAgICAgICAvLyByZWFsaXplIGl0LiBUaGlzIGlzIHRo
ZSBjYXNlIGhlcmUuCiAgICAgICAgIAotICAgICAgICAvLyBPcmRpbmFyaWx5IHlvdSBoYXZlIHRv
IGJlIGNhcmVmdWwgd2l0aCBjYWxsaW5nIHNldEZvdW5kQ29uc3RhbnRzKCkKKyAgICAgICAgLy8g
T3JkaW5hcmlseSB5b3UgaGF2ZSB0byBiZSBjYXJlZnVsIHdpdGggY2FsbGluZyBzZXRTaG91bGRU
cnlDb25zdGFudEZvbGRpbmcoKQogICAgICAgICAvLyBiZWNhdXNlIG9mIHRoZSBlZmZlY3Qgb24g
Y29tcGlsZSB0aW1lcywgYnV0IHRoaXMgbm9kZSBpcyBGVEwtb25seS4KLSAgICAgICAgbV9zdGF0
ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAgICAgbV9zdGF0ZS5zZXRTaG91bGRUcnlD
b25zdGFudEZvbGRpbmcodHJ1ZSk7CiAgICAgICAgIAogICAgICAgICBBYnN0cmFjdFZhbHVlIGJh
c2UgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgUmVnaXN0ZXJlZFN0cnVjdHVy
ZVNldCBiYXNlU2V0OwpAQCAtMzU1NSw5ICszNTU1LDkgQEAgYm9vbCBBYnN0cmFjdEludGVycHJl
dGVyPEFic3RyYWN0U3RhdGVUeQogICAgICAgICBSZWdpc3RlcmVkU3RydWN0dXJlU2V0IG5ld1Nl
dDsKICAgICAgICAgVHJhbnNpdGlvblZlY3RvciB0cmFuc2l0aW9uczsKICAgICAgICAgCi0gICAg
ICAgIC8vIE9yZGluYXJpbHkgeW91IGhhdmUgdG8gYmUgY2FyZWZ1bCB3aXRoIGNhbGxpbmcgc2V0
Rm91bmRDb25zdGFudHMoKQorICAgICAgICAvLyBPcmRpbmFyaWx5IHlvdSBoYXZlIHRvIGJlIGNh
cmVmdWwgd2l0aCBjYWxsaW5nIHNldFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZygpCiAgICAgICAg
IC8vIGJlY2F1c2Ugb2YgdGhlIGVmZmVjdCBvbiBjb21waWxlIHRpbWVzLCBidXQgdGhpcyBub2Rl
IGlzIEZUTC1vbmx5LgotICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOwor
ICAgICAgICBtX3N0YXRlLnNldFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZyh0cnVlKTsKICAgICAg
ICAgCiAgICAgICAgIEFic3RyYWN0VmFsdWUgYmFzZSA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkp
OwogICAgICAgICBBYnN0cmFjdFZhbHVlIG9yaWdpbmFsVmFsdWUgPSBmb3JOb2RlKG5vZGUtPmNo
aWxkMigpKTsKQEAgLTM2MTksNyArMzYxOSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxB
YnN0cmFjdFN0YXRlVHkKICAgICBjYXNlIENoZWNrQ2VsbDogewogICAgICAgICBKU1ZhbHVlIHZh
bHVlID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgaWYgKHZhbHVl
ID09IG5vZGUtPmNlbGxPcGVyYW5kKCktPnZhbHVlKCkpIHsKLSAgICAgICAgICAgIG1fc3RhdGUu
c2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CisgICAgICAgICAgICBtX3N0YXRlLnNldFNob3VsZFRy
eUNvbnN0YW50Rm9sZGluZyh0cnVlKTsKICAgICAgICAgICAgIEFTU0VSVCh2YWx1ZSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMzYzMSw3ICszNjMxLDcgQEAgYm9vbCBBYnN0
cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgIGNhc2UgQ2hlY2tOb3RFbXB0eTog
ewogICAgICAgICBBYnN0cmFjdFZhbHVlJiB2YWx1ZSA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkp
OwogICAgICAgICBpZiAoISh2YWx1ZS5tX3R5cGUgJiBTcGVjRW1wdHkpKSB7Ci0gICAgICAgICAg
ICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAgICAgICAgbV9zdGF0ZS5z
ZXRTaG91bGRUcnlDb25zdGFudEZvbGRpbmcodHJ1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICAKQEAgLTM2NDgsNyArMzY0OCw3IEBAIGJvb2wgQWJzdHJhY3RJbnRl
cnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAgaWYgKGNoaWxkQ29uc3RhbnQpIHsKICAg
ICAgICAgICAgIEFTU0VSVChjaGlsZENvbnN0YW50LmlzU3RyaW5nKCkpOwogICAgICAgICAgICAg
aWYgKGFzU3RyaW5nKGNoaWxkQ29uc3RhbnQpLT50cnlHZXRWYWx1ZUltcGwoKSA9PSB1aWQpIHsK
LSAgICAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAg
ICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29uc3RhbnRGb2xkaW5nKHRydWUpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0zNjYxLDcg
KzM2NjEsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAg
ICAgIEpTVmFsdWUgbGVmdCA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CiAgICAg
ICAgIEpTVmFsdWUgcmlnaHQgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMigpKS52YWx1ZSgpOwogICAg
ICAgICBpZiAobGVmdCAmJiByaWdodCAmJiBsZWZ0LmlzSW50MzIoKSAmJiByaWdodC5pc0ludDMy
KCkgJiYgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGxlZnQuYXNJbnQzMigpKSA8IHN0YXRpY19jYXN0
PHVpbnQzMl90PihyaWdodC5hc0ludDMyKCkpKQotICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3Vu
ZENvbnN0YW50cyh0cnVlKTsKKyAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29uc3Rh
bnRGb2xkaW5nKHRydWUpOwogCiAgICAgICAgIC8vIFdlIGNsYWltIHdlIHJlc3VsdCBpbiBJbnQz
Mi4gSXQncyBub3QgcmVhbGx5IGltcG9ydGFudCB3aGF0IG91ciByZXN1bHQgaXMgKHRob3VnaCB3
ZQogICAgICAgICAvLyBkb24ndCB3YW50IHRvIGNsYWltIHdlIG1heSByZXN1bHQgaW4gdGhlIGVt
cHR5IHZhbHVlKSwgb3RoZXIgbm9kZXMgd2l0aCBkYXRhIGZsb3cgZWRnZXMKQEAgLTM3MDMsNyAr
MzcwMyw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzLm51bVZhcmlhbnRzKCkg
PT0gMSB8fCBtX2dyYXBoLm1fcGxhbi5pc0ZUTCgpKQotICAgICAgICAgICAgICAgICAgICBtX3N0
YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAgICAgICAgICAgICAgICBtX3N0YXRl
LnNldFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZyh0cnVlKTsKICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICBkaWRGb2xkQ2xvYmJlcldvcmxkKCk7CiAgICAgICAgICAgICAgICAgb2Jz
ZXJ2ZVRyYW5zaXRpb25zKGNsb2JiZXJMaW1pdCwgdHJhbnNpdGlvbnMpOwpAQCAtMzc1Miw3ICsz
NzUyLDcgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgICAg
ICAgICAgICAgIEpTU3RyaW5nKiBzdHJpbmcgPSBhc1N0cmluZyhjb25zdGFudCk7CiAgICAgICAg
ICAgICAgICAgY29uc3QgU3RyaW5nSW1wbCogaW1wbCA9IHN0cmluZy0+dHJ5R2V0VmFsdWVJbXBs
KCk7CiAgICAgICAgICAgICAgICAgaWYgKGltcGwgJiYgaW1wbC0+aXNBdG9tKCkpCi0gICAgICAg
ICAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CisgICAgICAgICAg
ICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29uc3RhbnRGb2xkaW5nKHRydWUpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAKQEAgLTM4NzcsNyArMzg3Nyw3IEBAIGJvb2wgQWJzdHJh
Y3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAgZm9yIChNYXRjaFN0cnVjdHVy
ZVZhcmlhbnQmIHZhcmlhbnQgOiBub2RlLT5tYXRjaFN0cnVjdHVyZURhdGEoKS52YXJpYW50cykg
ewogICAgICAgICAgICAgUmVnaXN0ZXJlZFN0cnVjdHVyZSBzdHJ1Y3R1cmUgPSB2YXJpYW50LnN0
cnVjdHVyZTsKICAgICAgICAgICAgIGlmICghYmFzZS5jb250YWlucyhzdHJ1Y3R1cmUpKSB7Ci0g
ICAgICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAgICAg
ICAgICAgICBtX3N0YXRlLnNldFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZyh0cnVlKTsKICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtMzkw
OSw3ICszOTA5LDcgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQog
ICAgICAgICAvLyBUaGUgc3RhdGUgb2YgdGhpcyBub2RlIHdvdWxkIGhhdmUgYWxyZWFkeSBiZWVu
IGRlY2lkZWQsIGJ1dCBpdCBtYXkgaGF2ZSBiZWNvbWUgYQogICAgICAgICAvLyBjb25zdGFudCwg
aW4gd2hpY2ggY2FzZSB3ZSdkIGxpa2UgdG8ga25vdy4KICAgICAgICAgaWYgKGZvck5vZGUobm9k
ZSkubV92YWx1ZSkKLSAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7
CisgICAgICAgICAgICBtX3N0YXRlLnNldFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZyh0cnVlKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIAogICAgIGNhc2UgVXBzaWxvbjogewpAQCAtMzk4Nyw3
ICszOTg3LDcgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAg
ICAgICBBU1NFUlQoYml0cyk7CiAgICAgICAgIGlmIChiaXRzID09IEltcGxlbWVudHNEZWZhdWx0
SGFzSW5zdGFuY2UpIHsKICAgICAgICAgICAgIGlmIChhYnN0cmFjdFZhbHVlLm1fdHlwZSA9PSBT
cGVjRnVuY3Rpb25XaXRoRGVmYXVsdEhhc0luc3RhbmNlKSB7Ci0gICAgICAgICAgICAgICAgbV9z
dGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAgICAgICAgICAgICBtX3N0YXRlLnNl
dFNob3VsZFRyeUNvbnN0YW50Rm9sZGluZyh0cnVlKTsKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMzk5OCw3ICszOTk4LDcgQEAgYm9vbCBBYnN0
cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgICAgICAgICAgICAgIC8vIGFuZCB3
ZSBjYW4gcmVhZCBpdHMgaW5saW5lIHR5cGUgaW5mbyBmbGFncy4gVGhlc2UgZmxhZ3MgZG9uJ3Qg
Y2hhbmdlIG92ZXIgdGhlCiAgICAgICAgICAgICAgICAgLy8gb2JqZWN0J3MgbGlmZXRpbWUuCiAg
ICAgICAgICAgICAgICAgaWYgKCh2YWx1ZS5hc0NlbGwoKS0+aW5saW5lVHlwZUZsYWdzKCkgJiBi
aXRzKSA9PSBiaXRzKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25z
dGFudHModHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29u
c3RhbnRGb2xkaW5nKHRydWUpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC00MDEwLDcgKzQwMTAsNyBAQCBib29sIEFic3Ry
YWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgICAgICAgICAgICAgb2sgJj0gKHN0
cnVjdHVyZS0+dHlwZUluZm8oKS5pbmxpbmVUeXBlRmxhZ3MoKSAmIGJpdHMpID09IGJpdHM7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgICAgIGlmIChvaykgewotICAgICAgICAgICAgICAgIG1f
c3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CisgICAgICAgICAgICAgICAgbV9zdGF0ZS5z
ZXRTaG91bGRUcnlDb25zdGFudEZvbGRpbmcodHJ1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTQwMjksNyArNDAyOSw3IEBAIGJvb2wgQWJz
dHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKIAogICAgICAgICAgICAgaWYgKHJhZGl4
LmlzTnVtYmVyKCkKICAgICAgICAgICAgICAgICAmJiAocmFkaXguYXNOdW1iZXIoKSA9PSAwIHx8
IHJhZGl4LmFzTnVtYmVyKCkgPT0gMTApKSB7Ci0gICAgICAgICAgICAgICAgbV9zdGF0ZS5zZXRG
b3VuZENvbnN0YW50cyh0cnVlKTsKKyAgICAgICAgICAgICAgICBtX3N0YXRlLnNldFNob3VsZFRy
eUNvbnN0YW50Rm9sZGluZyh0cnVlKTsKICAgICAgICAgICAgICAgICBpZiAobm9kZS0+Y2hpbGQx
KCkudXNlS2luZCgpID09IFVudHlwZWRVc2UpCiAgICAgICAgICAgICAgICAgICAgIGRpZEZvbGRD
bG9iYmVyV29ybGQoKTsKICAgICAgICAgICAgICAgICBzZXROb25DZWxsVHlwZUZvck5vZGUobm9k
ZSwgU3BlY0ludDMyT25seSk7CkBAIC00MDYxLDcgKzQwNjEsNyBAQCBib29sIEFic3RyYWN0SW50
ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgICAgICAgICBpZiAoIWVkZ2UpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgaWYgKGVkZ2UuaXNQcm92ZWQoKSB8fCBlZGdl
LndpbGxOb3RIYXZlQ2hlY2soKSkKLSAgICAgICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29u
c3RhbnRzKHRydWUpOworICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0U2hvdWxkVHJ5Q29uc3Rh
bnRGb2xkaW5nKHRydWUpOwogICAgICAgICB9KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBdFRhaWxBYnN0cmFjdFN0YXRlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBdFRhaWxBYnN0cmFjdFN0
YXRlLmgJKHJldmlzaW9uIDI1MjQ5OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QXRUYWlsQWJzdHJhY3RTdGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsNyArMTY1LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0U3RydWN0dXJlQ2xvYmJlclN0YXRlKFN0cnVjdHVyZUNsb2Ji
ZXJTdGF0ZSBzdGF0ZSkgeyBSRUxFQVNFX0FTU0VSVChzdGF0ZSA9PSBtX2Jsb2NrLT5jZmFTdHJ1
Y3R1cmVDbG9iYmVyU3RhdGVBdFRhaWwpOyB9CiAgICAgdm9pZCBzZXRJc1ZhbGlkKGJvb2wgaXNW
YWxpZCkgeyBtX2Jsb2NrLT5jZmFEaWRGaW5pc2ggPSBpc1ZhbGlkOyB9CiAgICAgdm9pZCBzZXRC
cmFuY2hEaXJlY3Rpb24oQnJhbmNoRGlyZWN0aW9uKSB7IH0KLSAgICB2b2lkIHNldEZvdW5kQ29u
c3RhbnRzKGJvb2wpIHsgfQorICAgIHZvaWQgc2V0U2hvdWxkVHJ5Q29uc3RhbnRGb2xkaW5nKGJv
b2wpIHsgfQogCiAgICAgdm9pZCB0cnVzdEVkZ2VQcm9vZnMoKSB7IG1fdHJ1c3RFZGdlUHJvb2Zz
ID0gdHJ1ZTsgfQogICAgIHZvaWQgZG9udFRydXN0RWRnZVByb29mcygpIHsgbV90cnVzdEVkZ2VQ
cm9vZnMgPSBmYWxzZTsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCYXNp
Y0Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Jh
c2ljQmxvY2suY3BwCShyZXZpc2lvbiAyNTI0OTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Jhc2ljQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw2IEBAIEJh
c2ljQmxvY2s6OkJhc2ljQmxvY2soQnl0ZWNvZGVJbmRleCBieXQKICAgICAsIGNmYUJyYW5jaERp
cmVjdGlvbihJbnZhbGlkQnJhbmNoRGlyZWN0aW9uKQogICAgICwgY2ZhSGFzVmlzaXRlZChmYWxz
ZSkKICAgICAsIGNmYVNob3VsZFJldmlzaXQoZmFsc2UpCi0gICAgLCBjZmFGb3VuZENvbnN0YW50
cyhmYWxzZSkKICAgICAsIGNmYURpZEZpbmlzaCh0cnVlKQogICAgICwgaW50ZXJzZWN0aW9uT2ZD
RkFIYXNWaXNpdGVkKHRydWUpCiAgICAgLCBpc09TUlRhcmdldChmYWxzZSkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5oCShyZXZpc2lvbiAyNTI0OTgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Jhc2ljQmxvY2suaAkod29ya2luZyBjb3B5
KQpAQCAtMTg3LDcgKzE4Nyw3IEBAIHN0cnVjdCBCYXNpY0Jsb2NrIDogUmVmQ291bnRlZDxCYXNp
Y0Jsb2MKICAgICBCcmFuY2hEaXJlY3Rpb24gY2ZhQnJhbmNoRGlyZWN0aW9uOwogICAgIGJvb2wg
Y2ZhSGFzVmlzaXRlZDsKICAgICBib29sIGNmYVNob3VsZFJldmlzaXQ7Ci0gICAgYm9vbCBjZmFG
b3VuZENvbnN0YW50czsKKyAgICBib29sIGNmYVRoaW5rc1Nob3VsZFRyeUNvbnN0YW50Rm9sZGlu
ZyB7IGZhbHNlIH07CiAgICAgYm9vbCBjZmFEaWRGaW5pc2g7CiAgICAgYm9vbCBpbnRlcnNlY3Rp
b25PZkNGQUhhc1Zpc2l0ZWQ7CiAgICAgYm9vbCBpc09TUlRhcmdldDsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3Bw
CShyZXZpc2lvbiAyNTI0OTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0
YW50Rm9sZGluZ1BoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOwogCiAgICAgICAgIGZvciAoQmFzaWNC
bG9jayogYmxvY2sgOiBtX2dyYXBoLmJsb2Nrc0luTmF0dXJhbE9yZGVyKCkpIHsKLSAgICAgICAg
ICAgIGlmIChibG9jay0+Y2ZhRm91bmRDb25zdGFudHMpCisgICAgICAgICAgICBpZiAoYmxvY2st
PmNmYVRoaW5rc1Nob3VsZFRyeUNvbnN0YW50Rm9sZGluZykKICAgICAgICAgICAgICAgICBjaGFu
Z2VkIHw9IGZvbGRDb25zdGFudHMoYmxvY2spOwogICAgICAgICB9CiAgICAgICAgIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RT
dGF0ZS5jcHAJKHJldmlzaW9uIDI1MjQ5OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw3
IEBAIHZvaWQgSW5QbGFjZUFic3RyYWN0U3RhdGU6OmJlZ2luQmFzaWNCbG8KICAgICBiYXNpY0Js
b2NrLT5jZmFTaG91bGRSZXZpc2l0ID0gZmFsc2U7CiAgICAgYmFzaWNCbG9jay0+Y2ZhSGFzVmlz
aXRlZCA9IHRydWU7CiAgICAgbV9pc1ZhbGlkID0gdHJ1ZTsKLSAgICBtX2ZvdW5kQ29uc3RhbnRz
ID0gZmFsc2U7CisgICAgbV9zaG91bGRUcnlDb25zdGFudEZvbGRpbmcgPSBmYWxzZTsKICAgICBt
X2JyYW5jaERpcmVjdGlvbiA9IEludmFsaWRCcmFuY2hEaXJlY3Rpb247CiAgICAgbV9zdHJ1Y3R1
cmVDbG9iYmVyU3RhdGUgPSBiYXNpY0Jsb2NrLT5jZmFTdHJ1Y3R1cmVDbG9iYmVyU3RhdGVBdEhl
YWQ7CiB9CkBAIC0xMTQsNyArMTE0LDcgQEAgdm9pZCBJblBsYWNlQWJzdHJhY3RTdGF0ZTo6aW5p
dGlhbGl6ZSgpCiAgICAgZm9yIChCYXNpY0Jsb2NrKiBlbnRyeXBvaW50IDogbV9ncmFwaC5tX3Jv
b3RzKSB7CiAgICAgICAgIGVudHJ5cG9pbnQtPmNmYVNob3VsZFJldmlzaXQgPSB0cnVlOwogICAg
ICAgICBlbnRyeXBvaW50LT5jZmFIYXNWaXNpdGVkID0gZmFsc2U7Ci0gICAgICAgIGVudHJ5cG9p
bnQtPmNmYUZvdW5kQ29uc3RhbnRzID0gZmFsc2U7CisgICAgICAgIGVudHJ5cG9pbnQtPmNmYVRo
aW5rc1Nob3VsZFRyeUNvbnN0YW50Rm9sZGluZyA9IGZhbHNlOwogICAgICAgICBlbnRyeXBvaW50
LT5jZmFTdHJ1Y3R1cmVDbG9iYmVyU3RhdGVBdEhlYWQgPSBTdHJ1Y3R1cmVzQXJlV2F0Y2hlZDsK
ICAgICAgICAgZW50cnlwb2ludC0+Y2ZhU3RydWN0dXJlQ2xvYmJlclN0YXRlQXRUYWlsID0gU3Ry
dWN0dXJlc0FyZVdhdGNoZWQ7CiAKQEAgLTE3Miw3ICsxNzIsNyBAQCB2b2lkIEluUGxhY2VBYnN0
cmFjdFN0YXRlOjppbml0aWFsaXplKCkKICAgICAgICAgQVNTRVJUKGJsb2NrLT5pc1JlYWNoYWJs
ZSk7CiAgICAgICAgIGJsb2NrLT5jZmFTaG91bGRSZXZpc2l0ID0gZmFsc2U7CiAgICAgICAgIGJs
b2NrLT5jZmFIYXNWaXNpdGVkID0gZmFsc2U7Ci0gICAgICAgIGJsb2NrLT5jZmFGb3VuZENvbnN0
YW50cyA9IGZhbHNlOworICAgICAgICBibG9jay0+Y2ZhVGhpbmtzU2hvdWxkVHJ5Q29uc3RhbnRG
b2xkaW5nID0gZmFsc2U7CiAgICAgICAgIGJsb2NrLT5jZmFTdHJ1Y3R1cmVDbG9iYmVyU3RhdGVB
dEhlYWQgPSBTdHJ1Y3R1cmVzQXJlV2F0Y2hlZDsKICAgICAgICAgYmxvY2stPmNmYVN0cnVjdHVy
ZUNsb2JiZXJTdGF0ZUF0VGFpbCA9IFN0cnVjdHVyZXNBcmVXYXRjaGVkOwogICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGJsb2NrLT52YWx1ZXNBdEhlYWQubnVtYmVyT2ZBcmd1bWVudHMo
KTsgKytpKSB7CkBAIC0yMDIsNyArMjAyLDcgQEAgYm9vbCBJblBsYWNlQWJzdHJhY3RTdGF0ZTo6
ZW5kQmFzaWNCbG9jawogICAgIAogICAgIEJhc2ljQmxvY2sqIGJsb2NrID0gbV9ibG9jazsgLy8g
U2F2ZSB0aGUgYmxvY2sgZm9yIHN1Y2Nlc3NvciBtZXJnaW5nLgogICAgIAotICAgIGJsb2NrLT5j
ZmFGb3VuZENvbnN0YW50cyA9IG1fZm91bmRDb25zdGFudHM7CisgICAgYmxvY2stPmNmYVRoaW5r
c1Nob3VsZFRyeUNvbnN0YW50Rm9sZGluZyA9IG1fc2hvdWxkVHJ5Q29uc3RhbnRGb2xkaW5nOwog
ICAgIGJsb2NrLT5jZmFEaWRGaW5pc2ggPSBtX2lzVmFsaWQ7CiAgICAgYmxvY2stPmNmYUJyYW5j
aERpcmVjdGlvbiA9IG1fYnJhbmNoRGlyZWN0aW9uOwogICAgIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuaAkocmV2aXNp
b24gMjUyNDk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJh
Y3RTdGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTcsNyArMjU3LDcgQEAgcHVibGljOgogICAg
IC8vIGJsb2NrLiBCdXQsIHRoZSBsYXN0IHRpbWUgd2UgZGlkIGl0LCBpdCB3YXMgYSAxJSBTdW5T
cGlkZXIgcmVncmVzc2lvbjoKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTMzOTQ3CiAgICAgLy8gU28sIHdlIHNob3VsZCBwcm9iYWJseSBrZWVwIHRoaXMg
bWV0aG9kLgotICAgIHZvaWQgc2V0Rm91bmRDb25zdGFudHMoYm9vbCBmb3VuZENvbnN0YW50cykg
eyBtX2ZvdW5kQ29uc3RhbnRzID0gZm91bmRDb25zdGFudHM7IH0KKyAgICB2b2lkIHNldFNob3Vs
ZFRyeUNvbnN0YW50Rm9sZGluZyhib29sIHRyeUNvbnN0YW50Rm9sZGluZykgeyBtX3Nob3VsZFRy
eUNvbnN0YW50Rm9sZGluZyA9IHRyeUNvbnN0YW50Rm9sZGluZzsgfQogCiAgICAgdm9pZCBzZXRQ
cm9vZlN0YXR1cyhFZGdlJiBlZGdlLCBQcm9vZlN0YXR1cyBzdGF0dXMpCiAgICAgewpAQCAtMjgy
LDkgKzI4Miw5IEBAIHByaXZhdGU6CiAgICAgT3BlcmFuZHM8QWJzdHJhY3RWYWx1ZT4gbV92YXJp
YWJsZXM7CiAgICAgRmFzdEJpdFZlY3RvciBtX2FjdGl2ZVZhcmlhYmxlczsKICAgICBCYXNpY0Js
b2NrKiBtX2Jsb2NrOwotICAgIAotICAgIGJvb2wgbV9mb3VuZENvbnN0YW50czsKLSAgICAKKwor
ICAgIGJvb2wgbV9zaG91bGRUcnlDb25zdGFudEZvbGRpbmc7CisKICAgICBib29sIG1faXNWYWxp
ZDsKICAgICBBYnN0cmFjdEludGVycHJldGVyQ2xvYmJlclN0YXRlIG1fY2xvYmJlclN0YXRlOwog
ICAgIFN0cnVjdHVyZUNsb2JiZXJTdGF0ZSBtX3N0cnVjdHVyZUNsb2JiZXJTdGF0ZTsK
</data>
<flag name="review"
          id="399394"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>