<?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>133947</bug_id>
          
          <creation_ts>2014-06-16 12:31:10 -0700</creation_ts>
          <short_desc>[ftlopt] DFG constant folding shouldn&apos;t have the silly setFoundConstants() compilation time optimization</short_desc>
          <delta_ts>2014-06-16 16:44:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>
          
          <blocked>133918</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1015929</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-06-16 12:31:10 -0700</bug_when>
    <thetext>It&apos;s probably not effective anymore and it constrains the amount of constant folding we can do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015930</commentid>
    <comment_count>1</comment_count>
      <attachid>233171</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-06-16 12:34:31 -0700</bug_when>
    <thetext>Created attachment 233171
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016003</commentid>
    <comment_count>2</comment_count>
      <attachid>233171</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-06-16 16:04:34 -0700</bug_when>
    <thetext>Comment on attachment 233171
the patch

Turns out this is a 1% SunSpider regression.  I guess I&apos;ll keep the optimization.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233171</attachid>
            <date>2014-06-16 12:34:31 -0700</date>
            <delta_ts>2014-06-16 16:04:34 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>22428</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTcwMDIyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBA
CisyMDE0LTA2LTE2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
W2Z0bG9wdF0gREZHIGNvbnN0YW50IGZvbGRpbmcgc2hvdWxkbid0IGhhdmUgdGhlIHNpbGx5IHNl
dEZvdW5kQ29uc3RhbnRzKCkgY29tcGlsYXRpb24gdGltZSBvcHRpbWl6YXRpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzk0NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXIuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyOjpz
ZXRDb25zdGFudCk6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjo6c2V0
QnVpbHRJbkNvbnN0YW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVy
PEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOiBObyBuZWVkIHRvIHNheSB3aGVu
IHdlIGZpbmQgY29uc3RhbnRzLgorICAgICAgICAqIGRmZy9ERkdBZGphY2VuY3lMaXN0Lmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6QWRqYWNlbmN5TGlzdDo6aXNFbXB0eSk6IENvbnZlbmllbmNlIGZ1
bmN0aW9uLgorICAgICAgICAqIGRmZy9ERkdBdFRhaWxBYnN0cmFjdFN0YXRlLmg6CisgICAgICAg
IChKU0M6OkRGRzo6QXRUYWlsQWJzdHJhY3RTdGF0ZTo6c2V0QnJhbmNoRGlyZWN0aW9uKToKKyAg
ICAgICAgKEpTQzo6REZHOjpBdFRhaWxBYnN0cmFjdFN0YXRlOjpzZXRGb3VuZENvbnN0YW50cyk6
IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR0Jhc2ljQmxvY2suY3BwOgorICAgICAgICAoSlND
OjpERkc6OkJhc2ljQmxvY2s6OkJhc2ljQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdCYXNpY0Js
b2NrLmg6IFJlbW92ZSB0aGUgcmVsZXZhbnQgZmllbGRzLgorICAgICAgICAqIGRmZy9ERkdDb25z
dGFudEZvbGRpbmdQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Q29uc3RhbnRGb2xkaW5n
UGhhc2U6OnJ1bik6CisgICAgICAgIChKU0M6OkRGRzo6Q29uc3RhbnRGb2xkaW5nUGhhc2U6OmZv
bGRDb25zdGFudHMpOgorICAgICAgICAoSlNDOjpERkc6OkNvbnN0YW50Rm9sZGluZ1BoYXNlOjpm
aXhVcHNpbG9ucyk6IEl0IHR1cm5zIG91dCB0aGF0IHdlIG5vdyBmb2xkIFBoaXMuIFRoaXMgcmVx
dWlyZXMgc29tZSBmdW5ueSBmaXh1cC4KKyAgICAgICAgKiBkZmcvREZHSW5QbGFjZUFic3RyYWN0
U3RhdGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkluUGxhY2VBYnN0cmFjdFN0YXRlOjpiZWdp
bkJhc2ljQmxvY2spOgorICAgICAgICAoSlNDOjpERkc6OkluUGxhY2VBYnN0cmFjdFN0YXRlOjpp
bml0aWFsaXplKToKKyAgICAgICAgKEpTQzo6REZHOjpJblBsYWNlQWJzdHJhY3RTdGF0ZTo6ZW5k
QmFzaWNCbG9jayk6CisgICAgICAgICogZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6SW5QbGFjZUFic3RyYWN0U3RhdGU6OnNldEJyYW5jaERpcmVjdGlv
bik6CisgICAgICAgIChKU0M6OkRGRzo6SW5QbGFjZUFic3RyYWN0U3RhdGU6OnNldEZvdW5kQ29u
c3RhbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHTElDTVBoYXNlLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpMSUNNUGhhc2U6OnJ1bik6CisgICAgICAgIChKU0M6OkRGRzo6TElDTVBo
YXNlOjphdHRlbXB0SG9pc3QpOiBNb3JlIGZ1bm55IGZpeHVwIGZvciBmb2xkZWQgUGhpcy4KKyAg
ICAgICAgKiBkZmcvREZHVmFsaWRhdGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlZhbGlkYXRl
Ojp2YWxpZGF0ZSk6IEFkZCBzb21lIHVzZWZ1bCB2YWxpZGF0aW9uIC0gaWYgY2hpbGQxIGlzIGVt
cHR5IHRoZW4gdGhlIHJlc3QgaXMgZW1wdHkgYWxzby4KKwogMjAxNC0wNi0xNSAgRmlsaXAgUGl6
bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFtmdGxvcHRdIFJlbW92ZSB0aGUgREZH
IG9wdGltaXphdGlvbiBmaXhwb2ludCBhbmQgcmVtb3ZlIHNvbWUgb2J2aW91cyByZWFzb25zIHdo
eSB3ZSBwcmV2aW91c2x5IGJlbmVmaXRlZCBmcm9tIGl0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXIuaAkocmV2aXNpb24gMTcw
MDE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NSwxOSArMTY1LDEzIEBAIHByaXZhdGU6CiAgICAgfTsK
ICAgICBCb29sZWFuUmVzdWx0IGJvb2xlYW5SZXN1bHQoTm9kZSosIEFic3RyYWN0VmFsdWUmKTsK
ICAgICAKLSAgICB2b2lkIHNldEJ1aWx0SW5Db25zdGFudChOb2RlKiBub2RlLCBGcm96ZW5WYWx1
ZSB2YWx1ZSkKKyAgICB2b2lkIHNldENvbnN0YW50KE5vZGUqIG5vZGUsIEZyb3plblZhbHVlIHZh
bHVlKQogICAgIHsKICAgICAgICAgQWJzdHJhY3RWYWx1ZSYgYWJzdHJhY3RWYWx1ZSA9IGZvck5v
ZGUobm9kZSk7CiAgICAgICAgIGFic3RyYWN0VmFsdWUuc2V0KG1fZ3JhcGgsIHZhbHVlLCBtX3N0
YXRlLnN0cnVjdHVyZUNsb2JiZXJTdGF0ZSgpKTsKICAgICAgICAgYWJzdHJhY3RWYWx1ZS5maXhU
eXBlRm9yUmVwcmVzZW50YXRpb24obm9kZSk7CiAgICAgfQogICAgIAotICAgIHZvaWQgc2V0Q29u
c3RhbnQoTm9kZSogbm9kZSwgRnJvemVuVmFsdWUgdmFsdWUpCi0gICAgewotICAgICAgICBzZXRC
dWlsdEluQ29uc3RhbnQobm9kZSwgdmFsdWUpOwotICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29u
c3RhbnRzKHRydWUpOwotICAgIH0KLSAgICAKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgZmlsdGVy
QnlUeXBlKE5vZGUqIG5vZGUsIEVkZ2UmIGVkZ2UsIFNwZWN1bGF0ZWRUeXBlIHR5cGUpCiAgICAg
ewogICAgICAgICBBYnN0cmFjdFZhbHVlJiB2YWx1ZSA9IGZvck5vZGUoZWRnZSk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oCShyZXZpc2lvbiAxNzAwMTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEzOCw3ICsxMzgsNyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5
CiAgICAgY2FzZSBEb3VibGVDb25zdGFudDoKICAgICBjYXNlIEludDUyQ29uc3RhbnQ6CiAgICAg
Y2FzZSBQaGFudG9tQXJndW1lbnRzOiB7Ci0gICAgICAgIHNldEJ1aWx0SW5Db25zdGFudChub2Rl
LCAqbm9kZS0+Y29uc3RhbnQoKSk7CisgICAgICAgIHNldENvbnN0YW50KG5vZGUsICpub2RlLT5j
b25zdGFudCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgICAgICAKQEAgLTE4MCwxNyAr
MTgwLDEyIEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAg
ICAgICAgIGlmICh2YWx1ZS5pc0NsZWFyKCkpCiAgICAgICAgICAgICAgICAgbm9kZS0+c2V0Q2Fu
RXhpdCh0cnVlKTsKICAgICAgICAgfQotICAgICAgICBpZiAodmFsdWUudmFsdWUoKSkKLSAgICAg
ICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CiAgICAgICAgIGZvck5vZGUo
bm9kZSkgPSB2YWx1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgICAgICAKICAgICBjYXNl
IEdldExvY2FsVW5saW5rZWQ6IHsKLSAgICAgICAgQWJzdHJhY3RWYWx1ZSB2YWx1ZSA9IG1fc3Rh
dGUudmFyaWFibGVzKCkub3BlcmFuZChub2RlLT51bmxpbmtlZExvY2FsKCkub2Zmc2V0KCkpOwot
ICAgICAgICBpZiAodmFsdWUudmFsdWUoKSkKLSAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRD
b25zdGFudHModHJ1ZSk7Ci0gICAgICAgIGZvck5vZGUobm9kZSkgPSB2YWx1ZTsKKyAgICAgICAg
Zm9yTm9kZShub2RlKSA9IG1fc3RhdGUudmFyaWFibGVzKCkub3BlcmFuZChub2RlLT51bmxpbmtl
ZExvY2FsKCkub2Zmc2V0KCkpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgICAgIApAQCAt
MTIxNiw3ICsxMjExLDYgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVU
eQogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAoIShmb3JOb2RlKG5vZGUtPmNoaWxk
MSgpKS5tX3R5cGUgJiB+KFNwZWNGdWxsTnVtYmVyIHwgU3BlY0Jvb2xlYW4gfCBTcGVjU3RyaW5n
KSkpIHsKLSAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CiAgICAg
ICAgICAgICBmb3JOb2RlKG5vZGUpID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTM0NiwxMiArMTM0MCw3IEBAIGJvb2wgQWJzdHJh
Y3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNl
IENoZWNrQXJndW1lbnRzTm90Q3JlYXRlZDoKLSAgICAgICAgaWYgKGlzRW1wdHlTcGVjdWxhdGlv
bigKLSAgICAgICAgICAgICAgICBtX3N0YXRlLnZhcmlhYmxlcygpLm9wZXJhbmQoCi0gICAgICAg
ICAgICAgICAgICAgIG1fZ3JhcGguYXJndW1lbnRzUmVnaXN0ZXJGb3Iobm9kZS0+b3JpZ2luLnNl
bWFudGljKS5vZmZzZXQoKSkubV90eXBlKSkKLSAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRD
b25zdGFudHModHJ1ZSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG5vZGUtPnNldENhbkV4
aXQodHJ1ZSk7CisgICAgICAgIG5vZGUtPnNldENhbkV4aXQodHJ1ZSk7CiAgICAgICAgIGJyZWFr
OwogICAgICAgICAKICAgICBjYXNlIEdldE15QXJndW1lbnRzTGVuZ3RoOgpAQCAtMTM5MSw3ICsx
MzgwLDYgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgICAg
ICAgICAgICAgIGZvck5vZGUobm9kZSkgPSBtX3N0YXRlLnZhcmlhYmxlcygpLm9wZXJhbmQoCiAg
ICAgICAgICAgICAgICAgICAgIGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKwogICAgICAg
ICAgICAgICAgICAgICBtX2dyYXBoLmJhc2VsaW5lQ29kZUJsb2NrRm9yKGlubGluZUNhbGxGcmFt
ZSktPmFyZ3VtZW50SW5kZXhBZnRlckNhcHR1cmUoaW5kZXgpKTsKLSAgICAgICAgICAgICAgICBt
X3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xNDEyLDEwICsxNDAwLDggQEAgYm9vbCBBYnN0
cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgICAgICBBYnN0cmFjdFZhbHVlJiB2
YWx1ZSA9IGZvck5vZGUobm9kZSk7CiAgICAgICAgIHZhbHVlID0gZm9yTm9kZShub2RlLT5jaGls
ZDEoKSk7CiAgICAgICAgIAotICAgICAgICBpZiAoISh2YWx1ZS5tX3R5cGUgJiBTcGVjRW1wdHkp
KSB7Ci0gICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAg
ICBpZiAoISh2YWx1ZS5tX3R5cGUgJiBTcGVjRW1wdHkpKQogICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KIAogICAgICAgICB2YWx1ZS5zZXRUeXBlKCh2YWx1ZS5tX3R5cGUgJiB+U3BlY0Vt
cHR5KSB8IFNwZWNGdW5jdGlvbik7CiAgICAgICAgIGJyZWFrOwpAQCAtMTQ5NCw4ICsxNDgwLDYg
QEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIGZvck5vZGUobm9kZSkubWFr
ZUhlYXBUb3AoKTsKICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKG5vZGUtPmNoaWxkMSgpLCBz
dGF0dXNbMF0uc3RydWN0dXJlU2V0KCkpOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMTUy
MywyMCArMTUwNyw5IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkK
ICAgICAgICAgQWJzdHJhY3RWYWx1ZSYgdmFsdWUgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKTsK
ICAgICAgICAgQVNTRVJUKCEodmFsdWUubV90eXBlICYgflNwZWNDZWxsKSk7IC8vIEVkZ2UgZmls
dGVyaW5nIHNob3VsZCBoYXZlIGFscmVhZHkgZW5zdXJlZCB0aGlzLgogCi0gICAgICAgIFN0cnVj
dHVyZVNldCYgc2V0ID0gbm9kZS0+c3RydWN0dXJlU2V0KCk7Ci0gICAgICAgIAotICAgICAgICAv
LyBJdCdzIGludGVyZXN0aW5nIHRoYXQgd2UgY291bGQgaGF2ZSBwcm92ZW4gdGhhdCB0aGUgb2Jq
ZWN0IGhhcyBhIGxhcmdlciBzdHJ1Y3R1cmUgc2V0Ci0gICAgICAgIC8vIHRoYXQgaW5jbHVkZXMg
dGhlIHNldCB3ZSdyZSB0ZXN0aW5nLiBJbiB0aGF0IGNhc2Ugd2UgY291bGQgbWFrZSB0aGUgc3Ry
dWN0dXJlIGNoZWNrCi0gICAgICAgIC8vIG1vcmUgZWZmaWNpZW50LiBXZSBjdXJyZW50bHkgZG9u
J3QuCi0gICAgICAgIAotICAgICAgICBpZiAodmFsdWUubV9zdHJ1Y3R1cmUuaXNTdWJzZXRPZihz
ZXQpKSB7Ci0gICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQogICAgICAgICBub2RlLT5zZXRDYW5FeGl0KHRy
dWUpOwogCi0gICAgICAgIGZpbHRlcih2YWx1ZSwgc2V0KTsKKyAgICAgICAgZmlsdGVyKHZhbHVl
LCBub2RlLT5zdHJ1Y3R1cmVTZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAg
CkBAIC0xNTU0LDEwICsxNTI3LDYgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0
U3RhdGVUeQogICAgICAgICBmb3JOb2RlKG5vZGUpLmNsZWFyKCk7IC8vIFRoZSByZXN1bHQgaXMg
bm90IGEgSlMgdmFsdWUuCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2hlY2tBcnJheTogewot
ICAgICAgICBpZiAobm9kZS0+YXJyYXlNb2RlKCkuYWxyZWFkeUNoZWNrZWQobV9ncmFwaCwgbm9k
ZSwgZm9yTm9kZShub2RlLT5jaGlsZDEoKSkpKSB7Ci0gICAgICAgICAgICBtX3N0YXRlLnNldEZv
dW5kQ29uc3RhbnRzKHRydWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KICAgICAg
ICAgbm9kZS0+c2V0Q2FuRXhpdCh0cnVlKTsgLy8gTGllcywgYnV0IHRoaXMgaXMgZm9sbG93ZWQg
Ynkgb3BlcmF0aW9ucyAobGlrZSBHZXRCeVZhbCkgdGhhdCBhbHdheXMgZXhpdCwgc28gdGhlcmUg
aXMgbm8gcG9pbnQgaW4gdXMgdHJ5aW5nIHRvIGJlIGNsZXZlciBoZXJlLgogICAgICAgICBzd2l0
Y2ggKG5vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgewogICAgICAgICBjYXNlIEFycmF5OjpTdHJp
bmc6CkBAIC0xNjA3LDEwICsxNTc2LDggQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3Ry
YWN0U3RhdGVUeQogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBBcnJheWlmeTogewot
ICAgICAgICBpZiAobm9kZS0+YXJyYXlNb2RlKCkuYWxyZWFkeUNoZWNrZWQobV9ncmFwaCwgbm9k
ZSwgZm9yTm9kZShub2RlLT5jaGlsZDEoKSkpKSB7Ci0gICAgICAgICAgICBtX3N0YXRlLnNldEZv
dW5kQ29uc3RhbnRzKHRydWUpOworICAgICAgICBpZiAobm9kZS0+YXJyYXlNb2RlKCkuYWxyZWFk
eUNoZWNrZWQobV9ncmFwaCwgbm9kZSwgZm9yTm9kZShub2RlLT5jaGlsZDEoKSkpKQogICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIH0KICAgICAgICAgQVNTRVJUKG5vZGUtPmFycmF5TW9kZSgp
LmNvbnZlcnNpb24oKSA9PSBBcnJheTo6Q29udmVydAogICAgICAgICAgICAgfHwgbm9kZS0+YXJy
YXlNb2RlKCkuY29udmVyc2lvbigpID09IEFycmF5OjpSYWdlQ29udmVydCk7CiAgICAgICAgIG5v
ZGUtPnNldENhbkV4aXQodHJ1ZSk7CkBAIC0xNjIxLDcgKzE1ODgsNyBAQCBib29sIEFic3RyYWN0
SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJl
OiB7CiAgICAgICAgIEFic3RyYWN0VmFsdWUmIHZhbHVlID0gZm9yTm9kZShub2RlLT5jaGlsZDEo
KSk7CiAgICAgICAgIGlmICh2YWx1ZS5tX3N0cnVjdHVyZS5pc1N1YnNldE9mKFN0cnVjdHVyZVNl
dChub2RlLT5zdHJ1Y3R1cmUoKSkpKQotICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0
YW50cyh0cnVlKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBub2RlLT5zZXRDYW5FeGl0
KHRydWUpOwogICAgICAgICBjbG9iYmVyU3RydWN0dXJlcyhjbG9iYmVyTGltaXQpOwogICAgICAg
ICAKQEAgLTE2OTYsNyArMTY2Myw2IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFj
dFN0YXRlVHkKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBmaWx0ZXIodmFsdWUs
IHN0cnVjdHVyZSk7CiAgICAgICAgICAgICAgICAgZm9yTm9kZShub2RlKS5tYWtlSGVhcFRvcCgp
OwotICAgICAgICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CiAgICAg
ICAgICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICB9CkBAIC0xNzM1LDcgKzE3MDEsNiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJz
dHJhY3RTdGF0ZVR5CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKHZhcmlh
bnQua2luZCgpID09IFB1dEJ5SWRWYXJpYW50OjpSZXBsYWNlKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGZpbHRlcihub2RlLT5jaGlsZDEoKSwgc3RydWN0dXJlKTsKLSAgICAgICAgICAgICAgICAg
ICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVlKTsKICAgICAgICAgICAgICAgICAgICAg
ZG9uZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IH0KQEAgLTE3NDMsNyArMTcwOCw2IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFj
dFN0YXRlVHkKICAgICAgICAgICAgICAgICBBU1NFUlQodmFyaWFudC5raW5kKCkgPT0gUHV0QnlJ
ZFZhcmlhbnQ6OlRyYW5zaXRpb24pOwogICAgICAgICAgICAgICAgIGNsb2JiZXJTdHJ1Y3R1cmVz
KGNsb2JiZXJMaW1pdCk7CiAgICAgICAgICAgICAgICAgZm9yTm9kZShub2RlLT5jaGlsZDEoKSku
c2V0KG1fZ3JhcGgsIHZhcmlhbnQubmV3U3RydWN0dXJlKCkpOwotICAgICAgICAgICAgICAgIG1f
c3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CiAgICAgICAgICAgICAgICAgZG9uZSA9IHRy
dWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0xNzc1LDcgKzE3
MzksNiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgY2Fz
ZSBDaGVja0Z1bmN0aW9uOiB7CiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBmb3JOb2RlKG5vZGUt
PmNoaWxkMSgpKS52YWx1ZSgpOwogICAgICAgICBpZiAodmFsdWUgPT0gbm9kZS0+ZnVuY3Rpb24o
KS0+dmFsdWUoKSkgewotICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0cnVl
KTsKICAgICAgICAgICAgIEFTU0VSVCh2YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQpAQCAtMTc4OSwxMCArMTc1Miw4IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0
cmFjdFN0YXRlVHkKICAgICAgICAgSlNWYWx1ZSBsZWZ0ID0gZm9yTm9kZShub2RlLT5jaGlsZDEo
KSkudmFsdWUoKTsKICAgICAgICAgSlNWYWx1ZSByaWdodCA9IGZvck5vZGUobm9kZS0+Y2hpbGQy
KCkpLnZhbHVlKCk7CiAgICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0ICYmIGxlZnQuaXNJbnQzMigp
ICYmIHJpZ2h0LmlzSW50MzIoKQotICAgICAgICAgICAgJiYgc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KGxlZnQuYXNJbnQzMigpKSA8IHN0YXRpY19jYXN0PHVpbnQzMl90PihyaWdodC5hc0ludDMyKCkp
KSB7Ci0gICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOworICAgICAg
ICAgICAgJiYgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGxlZnQuYXNJbnQzMigpKSA8IHN0YXRpY19j
YXN0PHVpbnQzMl90PihyaWdodC5hc0ludDMyKCkpKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KICAgICAgICAgCiAgICAgICAgIG5vZGUtPnNldENhbkV4aXQodHJ1ZSk7CiAgICAgICAg
IGJyZWFrOwpAQCAtMTgxNyw3ICsxNzc4LDYgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFi
c3RyYWN0U3RhdGVUeQogICAgICAgICAgICAgaWYgKHN0YXR1cy5pc1NpbXBsZSgpICYmIHN0YXR1
cy5udW1WYXJpYW50cygpID09IDEpIHsKICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzWzBdLmtp
bmQoKSA9PSBQdXRCeUlkVmFyaWFudDo6UmVwbGFjZSkgewogICAgICAgICAgICAgICAgICAgICBm
aWx0ZXIobm9kZS0+Y2hpbGQxKCksIHN0cnVjdHVyZSk7Ci0gICAgICAgICAgICAgICAgICAgIG1f
c3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzWzBdLmtpbmQo
KSA9PSBQdXRCeUlkVmFyaWFudDo6VHJhbnNpdGlvbgpAQCAtMTgyNSw3ICsxNzg1LDYgQEAgYm9v
bCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgICAgICAgICAgICAgICAg
ICBtX2dyYXBoLndhdGNocG9pbnRzKCkuY29uc2lkZXIoc3RhdHVzWzBdLm5ld1N0cnVjdHVyZSgp
KTsKICAgICAgICAgICAgICAgICAgICAgY2xvYmJlclN0cnVjdHVyZXMoY2xvYmJlckxpbWl0KTsK
ICAgICAgICAgICAgICAgICAgICAgZm9yTm9kZShub2RlLT5jaGlsZDEoKSkuc2V0KG1fZ3JhcGgs
IHN0YXR1c1swXS5uZXdTdHJ1Y3R1cmUoKSk7Ci0gICAgICAgICAgICAgICAgICAgIG1fc3RhdGUu
c2V0Rm91bmRDb25zdGFudHModHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQWRqYWNlbmN5TGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQWRqYWNlbmN5TGlzdC5oCShyZXZpc2lvbiAxNzAwMTcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0FkamFjZW5jeUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAt
NjUsNiArNjUsOCBAQCBwdWJsaWM6CiAgICAgICAgIHNldE51bUNoaWxkcmVuKG51bUNoaWxkcmVu
KTsKICAgICB9CiAgICAgCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gIWNoaWxk
MSgpOyB9CisgICAgCiAgICAgY29uc3QgRWRnZSYgY2hpbGQodW5zaWduZWQgaSkgY29uc3QKICAg
ICB7CiAgICAgICAgIEFTU0VSVChpIDwgU2l6ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0F0VGFpbEFic3RyYWN0U3RhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0F0VGFpbEFic3RyYWN0U3RhdGUuaAkocmV2aXNpb24gMTcwMDE3
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBdFRhaWxBYnN0cmFjdFN0YXRlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3Ry
dWN0dXJlQ2xvYmJlclN0YXRlKFN0cnVjdHVyZUNsb2JiZXJTdGF0ZSBzdGF0ZSkgeyBSRUxFQVNF
X0FTU0VSVChzdGF0ZSA9PSBtX2Jsb2NrLT5jZmFTdHJ1Y3R1cmVDbG9iYmVyU3RhdGVBdFRhaWwp
OyB9CiAgICAgdm9pZCBzZXRJc1ZhbGlkKGJvb2wgaXNWYWxpZCkgeyBtX2Jsb2NrLT5jZmFEaWRG
aW5pc2ggPSBpc1ZhbGlkOyB9CiAgICAgdm9pZCBzZXRCcmFuY2hEaXJlY3Rpb24oQnJhbmNoRGly
ZWN0aW9uKSB7IH0KLSAgICB2b2lkIHNldEZvdW5kQ29uc3RhbnRzKGJvb2wpIHsgfQogCiBwcml2
YXRlOgogICAgIEdyYXBoJiBtX2dyYXBoOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCYXNpY0Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Jhc2ljQmxvY2suY3BwCShyZXZpc2lvbiAxNzAwMTcpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Jhc2ljQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICsz
OSw2IEBAIEJhc2ljQmxvY2s6OkJhc2ljQmxvY2soCiAgICAgLCBpc09TUlRhcmdldChmYWxzZSkK
ICAgICAsIGNmYUhhc1Zpc2l0ZWQoZmFsc2UpCiAgICAgLCBjZmFTaG91bGRSZXZpc2l0KGZhbHNl
KQotICAgICwgY2ZhRm91bmRDb25zdGFudHMoZmFsc2UpCiAgICAgLCBjZmFEaWRGaW5pc2godHJ1
ZSkKICAgICAsIGNmYVN0cnVjdHVyZUNsb2JiZXJTdGF0ZUF0SGVhZChTdHJ1Y3R1cmVzQXJlV2F0
Y2hlZCkKICAgICAsIGNmYVN0cnVjdHVyZUNsb2JiZXJTdGF0ZUF0VGFpbChTdHJ1Y3R1cmVzQXJl
V2F0Y2hlZCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmFzaWNCbG9jay5o
CShyZXZpc2lvbiAxNzAwMTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Jhc2lj
QmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMTE1LDcgKzExNSw2IEBAIHN0cnVjdCBCYXNpY0Js
b2NrIDogUmVmQ291bnRlZDxCYXNpY0Jsb2MKICAgICBib29sIGlzT1NSVGFyZ2V0OwogICAgIGJv
b2wgY2ZhSGFzVmlzaXRlZDsKICAgICBib29sIGNmYVNob3VsZFJldmlzaXQ7Ci0gICAgYm9vbCBj
ZmFGb3VuZENvbnN0YW50czsKICAgICBib29sIGNmYURpZEZpbmlzaDsKICAgICBTdHJ1Y3R1cmVD
bG9iYmVyU3RhdGUgY2ZhU3RydWN0dXJlQ2xvYmJlclN0YXRlQXRIZWFkOwogICAgIFN0cnVjdHVy
ZUNsb2JiZXJTdGF0ZSBjZmFTdHJ1Y3R1cmVDbG9iYmVyU3RhdGVBdFRhaWw7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNl
LmNwcAkocmV2aXNpb24gMTcwMDE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
b25zdGFudEZvbGRpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDggKzU4LDE3IEBA
IHB1YmxpYzoKICAgICAgICAgICAgIEJhc2ljQmxvY2sqIGJsb2NrID0gbV9ncmFwaC5ibG9jayhi
bG9ja0luZGV4KTsKICAgICAgICAgICAgIGlmICghYmxvY2spCiAgICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICBpZiAoYmxvY2stPmNmYUZvdW5kQ29uc3RhbnRzKQotICAgICAg
ICAgICAgICAgIGNoYW5nZWQgfD0gZm9sZENvbnN0YW50cyhibG9jayk7CisgICAgICAgICAgICBj
aGFuZ2VkIHw9IGZvbGRDb25zdGFudHMoYmxvY2spOworICAgICAgICB9CisgICAgICAgIAorICAg
ICAgICBpZiAoY2hhbmdlZCAmJiBtX2dyYXBoLm1fZm9ybSA9PSBTU0EpIHsKKyAgICAgICAgICAg
IC8vIEl0J3Mgbm93IHBvc3NpYmxlIHRoYXQgd2UgaGF2ZSBVcHNpbG9ucyBwb2ludGVkIGF0IEpT
Q29uc3RhbnRzLiBGaXggdGhhdC4KKyAgICAgICAgICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0lu
ZGV4ID0gbV9ncmFwaC5udW1CbG9ja3MoKTsgYmxvY2tJbmRleC0tOykgeworICAgICAgICAgICAg
ICAgIEJhc2ljQmxvY2sqIGJsb2NrID0gbV9ncmFwaC5ibG9jayhibG9ja0luZGV4KTsKKyAgICAg
ICAgICAgICAgICBpZiAoIWJsb2NrKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgICAgICBmaXhVcHNpbG9ucyhibG9jayk7CisgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICAgICAgCiAgICAgICAgIHJldHVybiBjaGFuZ2VkOwpAQCAtMzEzLDggKzMyMiwxMCBA
QCBwcml2YXRlOgogICAgICAgICAgICAgQWRqYWNlbmN5TGlzdCBjaGlsZHJlbiA9IG5vZGUtPmNo
aWxkcmVuOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBtX2dyYXBoLmNvbnZlcnRUb0NvbnN0
YW50KG5vZGUsIHZhbHVlKTsKLSAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUo
Ci0gICAgICAgICAgICAgICAgaW5kZXhJbkJsb2NrLCBTcGVjTm9uZSwgUGhhbnRvbSwgb3JpZ2lu
LCBjaGlsZHJlbik7CisgICAgICAgICAgICBpZiAoIWNoaWxkcmVuLmlzRW1wdHkoKSkgeworICAg
ICAgICAgICAgICAgIG1faW5zZXJ0aW9uU2V0Lmluc2VydE5vZGUoCisgICAgICAgICAgICAgICAg
ICAgIGluZGV4SW5CbG9jaywgU3BlY05vbmUsIFBoYW50b20sIG9yaWdpbiwgY2hpbGRyZW4pOwor
ICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsK
ICAgICAgICAgfQpAQCAtNDY1LDYgKzQ3NiwyNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgT3BJ
bmZvKG1fZ3JhcGguYWRkU3RydWN0dXJlU2V0KHN0cnVjdHVyZSkpLCBFZGdlKHdlYWtDb25zdGFu
dCwgQ2VsbFVzZSkpOwogICAgIH0KICAgICAKKyAgICB2b2lkIGZpeFVwc2lsb25zKEJhc2ljQmxv
Y2sqIGJsb2NrKQorICAgIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBub2RlSW5kZXggPSBibG9j
ay0+c2l6ZSgpOyBub2RlSW5kZXgtLTspIHsKKyAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBibG9j
ay0+YXQobm9kZUluZGV4KTsKKyAgICAgICAgICAgIGlmIChub2RlLT5vcCgpICE9IFVwc2lsb24p
CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPnBo
aSgpLT5vcCgpKSB7CisgICAgICAgICAgICBjYXNlIFBoaToKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgSlNDb25zdGFudDoKKyAgICAgICAgICAgIGNhc2UgRG91Ymxl
Q29uc3RhbnQ6CisgICAgICAgICAgICBjYXNlIEludDUyQ29uc3RhbnQ6CisgICAgICAgICAgICAg
ICAgbm9kZS0+Y29udmVydFRvUGhhbnRvbSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBERkdfQ1JBU0gobV9ncmFwaCwgbm9k
ZSwgIkJhZCBVcHNpbG9uIHBoaSgpIHBvaW50ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKICAgICBJblBsYWNlQWJzdHJh
Y3RTdGF0ZSBtX3N0YXRlOwogICAgIEFic3RyYWN0SW50ZXJwcmV0ZXI8SW5QbGFjZUFic3RyYWN0
U3RhdGU+IG1faW50ZXJwcmV0ZXI7CiAgICAgSW5zZXJ0aW9uU2V0IG1faW5zZXJ0aW9uU2V0OwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJz
dHJhY3RTdGF0ZS5jcHAJKHJldmlzaW9uIDE3MDAxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MSw3
ICs3MSw2IEBAIHZvaWQgSW5QbGFjZUFic3RyYWN0U3RhdGU6OmJlZ2luQmFzaWNCbG8KICAgICBi
YXNpY0Jsb2NrLT5jZmFIYXNWaXNpdGVkID0gdHJ1ZTsKICAgICBtX2Jsb2NrID0gYmFzaWNCbG9j
azsKICAgICBtX2lzVmFsaWQgPSB0cnVlOwotICAgIG1fZm91bmRDb25zdGFudHMgPSBmYWxzZTsK
ICAgICBtX2JyYW5jaERpcmVjdGlvbiA9IEludmFsaWRCcmFuY2hEaXJlY3Rpb247CiAgICAgbV9z
dHJ1Y3R1cmVDbG9iYmVyU3RhdGUgPSBiYXNpY0Jsb2NrLT5jZmFTdHJ1Y3R1cmVDbG9iYmVyU3Rh
dGVBdEhlYWQ7CiB9CkBAIC05MSw3ICs5MCw2IEBAIHZvaWQgSW5QbGFjZUFic3RyYWN0U3RhdGU6
OmluaXRpYWxpemUoKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBtX2dyYXBoLmJsb2NrKDApOwog
ICAgIHJvb3QtPmNmYVNob3VsZFJldmlzaXQgPSB0cnVlOwogICAgIHJvb3QtPmNmYUhhc1Zpc2l0
ZWQgPSBmYWxzZTsKLSAgICByb290LT5jZmFGb3VuZENvbnN0YW50cyA9IGZhbHNlOwogICAgIHJv
b3QtPmNmYVN0cnVjdHVyZUNsb2JiZXJTdGF0ZUF0SGVhZCA9IFN0cnVjdHVyZXNBcmVXYXRjaGVk
OwogICAgIHJvb3QtPmNmYVN0cnVjdHVyZUNsb2JiZXJTdGF0ZUF0VGFpbCA9IFN0cnVjdHVyZXNB
cmVXYXRjaGVkOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcm9vdC0+dmFsdWVzQXRIZWFk
Lm51bWJlck9mQXJndW1lbnRzKCk7ICsraSkgewpAQCAtMTM0LDcgKzEzMiw2IEBAIHZvaWQgSW5Q
bGFjZUFic3RyYWN0U3RhdGU6OmluaXRpYWxpemUoKQogICAgICAgICBBU1NFUlQoYmxvY2stPmlz
UmVhY2hhYmxlKTsKICAgICAgICAgYmxvY2stPmNmYVNob3VsZFJldmlzaXQgPSBmYWxzZTsKICAg
ICAgICAgYmxvY2stPmNmYUhhc1Zpc2l0ZWQgPSBmYWxzZTsKLSAgICAgICAgYmxvY2stPmNmYUZv
dW5kQ29uc3RhbnRzID0gZmFsc2U7CiAgICAgICAgIGJsb2NrLT5jZmFTdHJ1Y3R1cmVDbG9iYmVy
U3RhdGVBdEhlYWQgPSBTdHJ1Y3R1cmVzQXJlV2F0Y2hlZDsKICAgICAgICAgYmxvY2stPmNmYVN0
cnVjdHVyZUNsb2JiZXJTdGF0ZUF0VGFpbCA9IFN0cnVjdHVyZXNBcmVXYXRjaGVkOwogICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGJsb2NrLT52YWx1ZXNBdEhlYWQubnVtYmVyT2ZBcmd1
bWVudHMoKTsgKytpKSB7CkBAIC0xODMsNyArMTgwLDYgQEAgYm9vbCBJblBsYWNlQWJzdHJhY3RT
dGF0ZTo6ZW5kQmFzaWNCbG9jawogICAgIAogICAgIEJhc2ljQmxvY2sqIGJsb2NrID0gbV9ibG9j
azsgLy8gU2F2ZSB0aGUgYmxvY2sgZm9yIHN1Y2Nlc3NvciBtZXJnaW5nLgogICAgIAotICAgIGJs
b2NrLT5jZmFGb3VuZENvbnN0YW50cyA9IG1fZm91bmRDb25zdGFudHM7CiAgICAgYmxvY2stPmNm
YURpZEZpbmlzaCA9IG1faXNWYWxpZDsKICAgICBibG9jay0+Y2ZhQnJhbmNoRGlyZWN0aW9uID0g
bV9icmFuY2hEaXJlY3Rpb247CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oCShyZXZpc2lvbiAxNzAwMTcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEyOCw4ICsxMjgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTdHJ1
Y3R1cmVDbG9iYmVyU3RhdGUoU3RydWN0dXJlQ2xvYmJlclN0YXRlIHZhbHVlKSB7IG1fc3RydWN0
dXJlQ2xvYmJlclN0YXRlID0gdmFsdWU7IH0KICAgICB2b2lkIHNldElzVmFsaWQoYm9vbCBpc1Zh
bGlkKSB7IG1faXNWYWxpZCA9IGlzVmFsaWQ7IH0KICAgICB2b2lkIHNldEJyYW5jaERpcmVjdGlv
bihCcmFuY2hEaXJlY3Rpb24gYnJhbmNoRGlyZWN0aW9uKSB7IG1fYnJhbmNoRGlyZWN0aW9uID0g
YnJhbmNoRGlyZWN0aW9uOyB9Ci0gICAgdm9pZCBzZXRGb3VuZENvbnN0YW50cyhib29sIGZvdW5k
Q29uc3RhbnRzKSB7IG1fZm91bmRDb25zdGFudHMgPSBmb3VuZENvbnN0YW50czsgfQotCiBwcml2
YXRlOgogICAgIGJvb2wgbWVyZ2VTdGF0ZUF0VGFpbChBYnN0cmFjdFZhbHVlJiBkZXN0aW5hdGlv
biwgQWJzdHJhY3RWYWx1ZSYgaW5WYXJpYWJsZSwgTm9kZSopOwogCkBAIC0xNDAsOCArMTM4LDYg
QEAgcHJpdmF0ZToKICAgICBPcGVyYW5kczxBYnN0cmFjdFZhbHVlPiBtX3ZhcmlhYmxlczsKICAg
ICBCYXNpY0Jsb2NrKiBtX2Jsb2NrOwogICAgIAotICAgIGJvb2wgbV9mb3VuZENvbnN0YW50czsK
LSAgICAKICAgICBib29sIG1faXNWYWxpZDsKICAgICBib29sIG1fZGlkQ2xvYmJlcjsKICAgICBT
dHJ1Y3R1cmVDbG9iYmVyU3RhdGUgbV9zdHJ1Y3R1cmVDbG9iYmVyU3RhdGU7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0xJQ01QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdMSUNNUGhhc2UuY3BwCShyZXZpc2lvbiAxNzAwMTcp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0xJQ01QaGFzZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAgIAogICAgIGJvb2wgcnVuKCkKICAg
ICB7Ci0gICAgICAgIEFTU0VSVChtX2dyYXBoLm1fZm9ybSA9PSBTU0EpOworICAgICAgICBERkdf
QVNTRVJUKG1fZ3JhcGgsIG51bGxwdHIsIG1fZ3JhcGgubV9mb3JtID09IFNTQSk7CiAgICAgICAg
IAogICAgICAgICBtX2dyYXBoLm1fZG9taW5hdG9ycy5jb21wdXRlSWZOZWNlc3NhcnkobV9ncmFw
aCk7CiAgICAgICAgIG1fZ3JhcGgubV9uYXR1cmFsTG9vcHMuY29tcHV0ZUlmTmVjZXNzYXJ5KG1f
Z3JhcGgpOwpAQCAtMTI0LDExICsxMjQsMTEgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIEJh
c2ljQmxvY2sqIHByZWRlY2Vzc29yID0gaGVhZGVyLT5wcmVkZWNlc3NvcnNbaV07CiAgICAgICAg
ICAgICAgICAgaWYgKG1fZ3JhcGgubV9kb21pbmF0b3JzLmRvbWluYXRlcyhoZWFkZXIsIHByZWRl
Y2Vzc29yKSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlQoIXByZUhlYWRlciB8fCBwcmVIZWFkZXIgPT0gcHJlZGVjZXNzb3IpOwor
ICAgICAgICAgICAgICAgIERGR19BU1NFUlQobV9ncmFwaCwgbnVsbHB0ciwgIXByZUhlYWRlciB8
fCBwcmVIZWFkZXIgPT0gcHJlZGVjZXNzb3IpOwogICAgICAgICAgICAgICAgIHByZUhlYWRlciA9
IHByZWRlY2Vzc29yOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVChwcmVIZWFkZXItPmxhc3QoKS0+b3AoKSA9PSBKdW1wKTsKKyAgICAgICAg
ICAgIERGR19BU1NFUlQobV9ncmFwaCwgcHJlSGVhZGVyLT5sYXN0KCksIHByZUhlYWRlci0+bGFz
dCgpLT5vcCgpID09IEp1bXApOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBkYXRhLnByZUhl
YWRlciA9IHByZUhlYWRlcjsKICAgICAgICAgfQpAQCAtMjQ3LDYgKzI0NywxNyBAQCBwcml2YXRl
OgogICAgICAgICBkYXRhLnByZUhlYWRlci0+aW5zZXJ0QmVmb3JlTGFzdChub2RlKTsKICAgICAg
ICAgbm9kZS0+bWlzYy5vd25lciA9IGRhdGEucHJlSGVhZGVyOwogICAgICAgICBOb2RlT3JpZ2lu
IG9yaWdpbmFsT3JpZ2luID0gbm9kZS0+b3JpZ2luOworICAgICAgICBpZiAoIW5vZGUtPm9yaWdp
bi5zZW1hbnRpYy5pc1NldCgpKSB7CisgICAgICAgICAgICAvLyBUaGlzIGlzIGEgZ29vZnkgaGFj
ayB0byBwbGFjYXRlIE5vZGVPcmlnaW4gdmFsaWRhdGlvbi4gV2UgcmVxdWlyZQorICAgICAgICAg
ICAgLy8gdGhhdCBhIGJsb2NrIHN0YXJ0cyBvdXQgd2l0aCBhIHNlcXVlbmNlIG9mIG5vZGVzIHRo
YXQgaGF2ZSBubyBvcmlnaW4KKyAgICAgICAgICAgIC8vIGZvbGxvd2VkIGJ5IG5vZGVzIHRoYXQg
ZG8gaGF2ZSBhbiBvcmlnaW4uIFRoZSBwb2ludCBpcyB0aGF0IHRoZQorICAgICAgICAgICAgLy8g
b3JpZ2lubGVzcyBub2RlcyBjYW5ub3QgaGF2ZSBleGl0cyBpbnNlcnRlZCBpbnRvIHRoZW0gb3Ig
YmVmb3JlIHRoZW0uCisgICAgICAgICAgICAvLyBCdXQgd2UgbWF5IGNvbnN0YW50LWZvbGQgYSBQ
aGkgYW5kIHRoZW4gaG9pc3QgdGhlIGNvbnN0YW50LiBUaGVuIHRoZQorICAgICAgICAgICAgLy8g
aG9pc3Rpbmcgb2YgdGhlIGNvbnN0YW50IG1heSBsZWF2ZSBiZWhpbmQgYSBQaGFudG9tLiBUaGVu
IGF0IHNvbWUgcG9pbnQKKyAgICAgICAgICAgIC8vIHdlIGdldCBoZXJlLiBJdCdzIHByZXR0eSB3
ZWlyZCBidXQgYWxzbyB0b3RhbGx5IGhhcm1sZXNzLgorICAgICAgICAgICAgREZHX0FTU0VSVCht
X2dyYXBoLCBub2RlLCBub2RlLT5pc0NvbnN0YW50KCkgfHwgbm9kZS0+b3AoKSA9PSBQaGFudG9t
KTsKKyAgICAgICAgICAgIG5vZGUtPm9yaWdpbi5zZW1hbnRpYyA9IGRhdGEucHJlSGVhZGVyLT5s
YXN0KCktPm9yaWdpbi5zZW1hbnRpYzsKKyAgICAgICAgfQogICAgICAgICBub2RlLT5vcmlnaW4u
Zm9yRXhpdCA9IGRhdGEucHJlSGVhZGVyLT5sYXN0KCktPm9yaWdpbi5mb3JFeGl0OwogICAgICAg
ICAKICAgICAgICAgLy8gTW9kaWZ5IHRoZSBzdGF0ZXMgYXQgdGhlIGVuZCBvZiB0aGUgcHJlSGVh
ZGVyIG9mIHRoZSBsb29wIHdlIGhvaXN0ZWQgdG8sCkBAIC0yNjgsNyArMjc5LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgLy8gSXQganVzdCBzbyBoYXBwZW5zIHRoYXQgYWxsIG9mIHRoZSBub2RlcyB3
ZSBjdXJyZW50bHkga25vdyBob3cgdG8gaG9pc3QKICAgICAgICAgLy8gZG9uJ3QgaGF2ZSB2YXIt
YXJnIGNoaWxkcmVuLiBUaGF0IG1heSBjaGFuZ2UgYW5kIHRoZW4gd2UgY2FuIGZpeCB0aGlzCiAg
ICAgICAgIC8vIGNvZGUuIEJ1dCBmb3Igbm93IHdlIGp1c3QgYXNzZXJ0IHRoYXQncyB0aGUgY2Fz
ZS4KLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoIShub2RlLT5mbGFncygpICYgTm9kZUhhc1ZhckFy
Z3MpKTsKKyAgICAgICAgREZHX0FTU0VSVChtX2dyYXBoLCBub2RlLCAhKG5vZGUtPmZsYWdzKCkg
JiBOb2RlSGFzVmFyQXJncykpOwogICAgICAgICAKICAgICAgICAgbm9kZVJlZiA9IG1fZ3JhcGgu
YWRkTm9kZShTcGVjTm9uZSwgUGhhbnRvbSwgb3JpZ2luYWxPcmlnaW4sIG5vZGUtPmNoaWxkcmVu
KTsKICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhbGlkYXRl
LmNwcAkocmV2aXNpb24gMTcwMDE3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdW
YWxpZGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMyw2ICsyMDMsMTMgQEAgcHVibGljOgog
ICAgICAgICAgICAgICAgIGlmIChub2RlLT5oYXNGdW5jdGlvbigpKQogICAgICAgICAgICAgICAg
ICAgICBWQUxJREFURSgobm9kZSksIG5vZGUtPmZ1bmN0aW9uKCktPnZhbHVlKCkuaXNGdW5jdGlv
bigpKTsKICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoIShub2RlLT5mbGFn
cygpICYgTm9kZUhhc1ZhckFyZ3MpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghbm9kZS0+
Y2hpbGQyKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBWQUxJREFURSgobm9kZSksICFub2Rl
LT5jaGlsZDMoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmICghbm9kZS0+Y2hpbGQxKCkpCisg
ICAgICAgICAgICAgICAgICAgICAgICBWQUxJREFURSgobm9kZSksICFub2RlLT5jaGlsZDIoKSk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIHN3
aXRjaCAobm9kZS0+b3AoKSkgewogICAgICAgICAgICAgICAgIGNhc2UgTWFrZVJvcGU6CiAgICAg
ICAgICAgICAgICAgY2FzZSBWYWx1ZUFkZDoK
</data>

          </attachment>
      

    </bug>

</bugzilla>