<?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>154979</bug_id>
          
          <creation_ts>2016-03-03 12:53:06 -0800</creation_ts>
          <short_desc>DFG should be able to compile StringReplace</short_desc>
          <delta_ts>2016-03-03 15:31:03 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1170306</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-03 12:53:06 -0800</bug_when>
    <thetext>Initially I implemented StringReplace only in the FTL.  This adds it to the DFG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170308</commentid>
    <comment_count>1</comment_count>
      <attachid>272770</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-03 12:53:36 -0800</bug_when>
    <thetext>Created attachment 272770
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170325</commentid>
    <comment_count>2</comment_count>
      <attachid>272776</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-03 14:18:07 -0800</bug_when>
    <thetext>Created attachment 272776
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170339</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-03 15:31:03 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/197520</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272770</attachid>
            <date>2016-03-03 12:53:36 -0800</date>
            <delta_ts>2016-03-03 14:18:07 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>10549</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwCShyZXZpc2lvbiAxOTc1MTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE5MCwxMiArMjE5MCw2IEBAIGJv
b2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJpbnNpY0NhbGwKICAgICB9CiAKICAgICBjYXNl
IFN0cmluZ1Byb3RvdHlwZVJlcGxhY2VJbnRyaW5zaWM6IHsKLSAgICAgICAgaWYgKCFpc0ZUTCht
X2dyYXBoLm1fcGxhbi5tb2RlKSkgewotICAgICAgICAgICAgLy8gVGhpcyBpcyBhIG1hcmdpbmFs
bHkgcHJvZml0YWJsZSBpbnRyaW5zaWMuIFdlJ3ZlIG9ubHkgdGhlIHdvcmsgdG8gbWFrZSBpdCBh
bgotICAgICAgICAgICAgLy8gaW50cmluc2ljIG9uIHRoZSBmb3VydGggdGllci4KLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCiAgICAgICAgIGlmIChhcmd1bWVudENvdW50
SW5jbHVkaW5nVGhpcyAhPSAzKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJ
KHJldmlzaW9uIDE5NzUxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRl
ICJPYmplY3RQcm90b3R5cGUuaCIKICNpbmNsdWRlICJTZXR1cFZhcmFyZ3NGcmFtZS5oIgogI2lu
Y2x1ZGUgIlNwaWxsUmVnaXN0ZXJzTW9kZS5oIgorI2luY2x1ZGUgIlN0cmluZ1Byb3RvdHlwZS5o
IgogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgogI2luY2x1ZGUgIldhdGNoZG9nLmgiCiAK
QEAgLTMwMjUsNiArMzAyNiw2NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUq
IG5vZGUpCiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0LmdwcigpLCBub2RlLCBEYXRhRm9y
bWF0SlNCb29sZWFuKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorCisgICAgY2FzZSBTdHJpbmdS
ZXBsYWNlOiB7CisgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gU3RyaW5n
VXNlCisgICAgICAgICAgICAmJiBub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkgPT0gUmVnRXhwT2Jq
ZWN0VXNlCisgICAgICAgICAgICAmJiBub2RlLT5jaGlsZDMoKS51c2VLaW5kKCkgPT0gU3RyaW5n
VXNlKSB7CisgICAgICAgICAgICBpZiAoSlNTdHJpbmcqIHJlcGxhY2UgPSBub2RlLT5jaGlsZDMo
KS0+ZHluYW1pY0Nhc3RDb25zdGFudDxKU1N0cmluZyo+KCkpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoIXJlcGxhY2UtPmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIFNwZWN1bGF0ZUNl
bGxPcGVyYW5kIHN0cmluZyh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICAgICAg
ICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIHJlZ0V4cCh0aGlzLCBub2RlLT5jaGlsZDIoKSk7Cisg
ICAgICAgICAgICAgICAgICAgIEdQUlJlZyBzdHJpbmdHUFIgPSBzdHJpbmcuZ3ByKCk7CisgICAg
ICAgICAgICAgICAgICAgIEdQUlJlZyByZWdFeHBHUFIgPSByZWdFeHAuZ3ByKCk7CisgICAgICAg
ICAgICAgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhub2RlLT5jaGlsZDEoKSwgc3RyaW5nR1BSKTsK
KyAgICAgICAgICAgICAgICAgICAgc3BlY3VsYXRlUmVnRXhwT2JqZWN0KG5vZGUtPmNoaWxkMigp
LCByZWdFeHBHUFIpOworCisgICAgICAgICAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7Cisg
ICAgICAgICAgICAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKKyAg
ICAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAg
IG9wZXJhdGlvblN0cmluZ1Byb3RvRnVuY1JlcGxhY2VSZWdFeHBFbXB0eVN0ciwgcmVzdWx0Lmdw
cigpLCBzdHJpbmdHUFIsCisgICAgICAgICAgICAgICAgICAgICAgICByZWdFeHBHUFIpOworICAg
ICAgICAgICAgICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOworICAgICAgICAgICAgICAg
ICAgICBjZWxsUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgc3RyaW5nKHRoaXMsIG5vZGUtPmNoaWxk
MSgpKTsKKyAgICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIHJlZ0V4cCh0aGlzLCBub2Rl
LT5jaGlsZDIoKSk7CisgICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCByZXBsYWNlKHRo
aXMsIG5vZGUtPmNoaWxkMygpKTsKKyAgICAgICAgICAgIEdQUlJlZyBzdHJpbmdHUFIgPSBzdHJp
bmcuZ3ByKCk7CisgICAgICAgICAgICBHUFJSZWcgcmVnRXhwR1BSID0gcmVnRXhwLmdwcigpOwor
ICAgICAgICAgICAgR1BSUmVnIHJlcGxhY2VHUFIgPSByZXBsYWNlLmdwcigpOworICAgICAgICAg
ICAgc3BlY3VsYXRlU3RyaW5nKG5vZGUtPmNoaWxkMSgpLCBzdHJpbmdHUFIpOworICAgICAgICAg
ICAgc3BlY3VsYXRlUmVnRXhwT2JqZWN0KG5vZGUtPmNoaWxkMigpLCByZWdFeHBHUFIpOworICAg
ICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKG5vZGUtPmNoaWxkMygpLCByZXBsYWNlR1BSKTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICAgICAgICAgIEdQ
UkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKKyAgICAgICAgICAgIGNhbGxPcGVyYXRp
b24oCisgICAgICAgICAgICAgICAgb3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZVJlZ0V4
cFN0cmluZywgcmVzdWx0LmdwcigpLCBzdHJpbmdHUFIsIHJlZ0V4cEdQUiwKKyAgICAgICAgICAg
ICAgICByZXBsYWNlR1BSKTsKKyAgICAgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7Cisg
ICAgICAgICAgICBjZWxsUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgc3RyaW5n
KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgcmVnRXhwKHRo
aXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgcmVwbGFjZSh0aGlz
LCBub2RlLT5jaGlsZDMoKSk7CisgICAgICAgIEdQUlJlZyBzdHJpbmdHUFIgPSBzdHJpbmcuZ3By
KCk7CisgICAgICAgIEdQUlJlZyByZWdFeHBHUFIgPSByZWdFeHAuZ3ByKCk7CisgICAgICAgIEdQ
UlJlZyByZXBsYWNlR1BSID0gcmVwbGFjZS5ncHIoKTsKKyAgICAgICAgCisgICAgICAgIGZsdXNo
UmVnaXN0ZXJzKCk7CisgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsK
KyAgICAgICAgY2FsbE9wZXJhdGlvbigKKyAgICAgICAgICAgIG9wZXJhdGlvblN0cmluZ1Byb3Rv
RnVuY1JlcGxhY2VHZW5lcmljLCByZXN1bHQuZ3ByKCksIHN0cmluZ0dQUiwgcmVnRXhwR1BSLAor
ICAgICAgICAgICAgcmVwbGFjZUdQUik7CisgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7
CisgICAgICAgIGNlbGxSZXN1bHQocmVzdWx0LmdwcigpLCBub2RlKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQogICAgICAgICAKICAgICBjYXNlIEFycmF5UHVzaDogewogICAgICAgICBBU1NFUlQo
bm9kZS0+YXJyYXlNb2RlKCkuaXNKU0FycmF5KCkpOwpAQCAtNDkxNiw3ICs0OTc4LDYgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgUHV0U3RhY2s6
CiAgICAgY2FzZSBLaWxsU3RhY2s6CiAgICAgY2FzZSBHZXRTdGFjazoKLSAgICBjYXNlIFN0cmlu
Z1JlcGxhY2U6CiAgICAgICAgIERGR19DUkFTSChtX2ppdC5ncmFwaCgpLCBub2RlLCAiVW5leHBl
Y3RlZCBub2RlIik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAxOTc1MTIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjYyMywxMyArNjYyMywxOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpz
cGVjdWxhdGVGaW5hbE9iamVjCiAgICAgc3BlY3VsYXRlQ2VsbFR5cGUoZWRnZSwgb3BlcmFuZC5n
cHIoKSwgU3BlY0ZpbmFsT2JqZWN0LCBGaW5hbE9iamVjdFR5cGUpOwogfQogCit2b2lkIFNwZWN1
bGF0aXZlSklUOjpzcGVjdWxhdGVSZWdFeHBPYmplY3QoRWRnZSBlZGdlLCBHUFJSZWcgY2VsbCkK
K3sKKyAgICBzcGVjdWxhdGVDZWxsVHlwZShlZGdlLCBjZWxsLCBTcGVjUmVnRXhwT2JqZWN0LCBS
ZWdFeHBPYmplY3RUeXBlKTsKK30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlUmVn
RXhwT2JqZWN0KEVkZ2UgZWRnZSkKIHsKICAgICBpZiAoIW5lZWRzVHlwZUNoZWNrKGVkZ2UsIFNw
ZWNSZWdFeHBPYmplY3QpKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgU3BlY3VsYXRlQ2Vs
bE9wZXJhbmQgb3BlcmFuZCh0aGlzLCBlZGdlKTsKLSAgICBzcGVjdWxhdGVDZWxsVHlwZShlZGdl
LCBvcGVyYW5kLmdwcigpLCBTcGVjUmVnRXhwT2JqZWN0LCBSZWdFeHBPYmplY3RUeXBlKTsKKyAg
ICBzcGVjdWxhdGVSZWdFeHBPYmplY3QoZWRnZSwgb3BlcmFuZC5ncHIoKSk7CiB9CiAKIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU9iamVjdE9yT3RoZXIoRWRnZSBlZGdlKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNp
b24gMTk3NTEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcyLDYgKzEyNzIsMTYgQEAgcHVibGljOgogICAgICAg
ICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMik7CiAgICAgICAg
IHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKICAgICB9Cisg
ICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSnNzUmVv
IG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyKQorICAg
IHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIp
OworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7
CisgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRp
b25fRUpzc1Jlb0pzcyBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJS
ZWcgYXJnMiwgR1BSUmVnIGFyZzMpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50
c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgYXJnMyk7CisgICAgICAgIHJldHVybiBhcHBlbmRD
YWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKKyAgICB9CiAgICAgSklUQ29tcGlsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSnNzWiBvcGVyYXRpb24sIEdQUlJl
ZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKICAgICB7CiAgICAgICAgIG1faml0
LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyKTsKQEAgLTE0MzUsMjAgKzE0
NDUsMjUgQEAgcHVibGljOgogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3Rh
dGUoYXJnMSwgYXJnMik7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJh
dGlvbiwgcmVzdWx0KTsKICAgICB9Ci0gICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bihKX0pJVE9wZXJhdGlvbl9FSkogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJn
MSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBpbW0pCisgICAgSklUQ29tcGlsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkogb3BlcmF0aW9uLCBHUFJSZWcgcmVz
dWx0LCBHUFJSZWcgYXJnMSwgaW50MzJfdCBpbW0pCiAgICAgewotICAgICAgICBtX2ppdC5zZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW02
NChKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoaW1tLm1fdmFsdWUpKSkpOworICAgICAgICBtX2pp
dC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoaW1tKSkpKTsKICAgICAgICAgcmV0dXJu
IGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOwogICAgIH0KLSAgICBKSVRD
b21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSiBvcGVyYXRpb24s
IEdQUlJlZyByZXN1bHQsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgaW1tLCBHUFJSZWcg
YXJnMikKKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9u
X0VKSiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIGludDMyX3QgaW1tLCBHUFJSZWcgYXJnMikK
ICAgICB7Ci0gICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVuY29kZShqc051bWJlcihpbW0ubV92YWx1
ZSkpKSwgYXJnMik7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVuY29kZShqc051bWJlcihpbW0p
KSksIGFyZzIpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24s
IHJlc3VsdCk7CiAgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9K
SVRPcGVyYXRpb25fRUpKIG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKU1ZhbHVlUmVn
cyBhcmcxLCBKU1ZhbHVlUmVncyBhcmcyKQogICAgIHsKICAgICAgICAgcmV0dXJuIGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uLCByZXN1bHQucGF5bG9hZEdQUigpLCBhcmcxLnBheWxvYWRHUFIoKSwg
YXJnMi5wYXlsb2FkR1BSKCkpOwogICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJS
ZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczKQorICAgIHsKKyAgICAgICAgbV9qaXQu
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgICAgICBy
ZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CisgICAgfQogICAg
IEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUNDIG9wZXJh
dGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyKQogICAgIHsKICAg
ICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIpOwpAQCAt
MjQ3MCw2ICsyNDg1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc3BlY3VsYXRlT2JqZWN0KEVkZ2Up
OwogICAgIHZvaWQgc3BlY3VsYXRlRnVuY3Rpb24oRWRnZSk7CiAgICAgdm9pZCBzcGVjdWxhdGVG
aW5hbE9iamVjdChFZGdlKTsKKyAgICB2b2lkIHNwZWN1bGF0ZVJlZ0V4cE9iamVjdChFZGdlLCBH
UFJSZWcgY2VsbCk7CiAgICAgdm9pZCBzcGVjdWxhdGVSZWdFeHBPYmplY3QoRWRnZSk7CiAgICAg
dm9pZCBzcGVjdWxhdGVPYmplY3RPck90aGVyKEVkZ2UpOwogICAgIHZvaWQgc3BlY3VsYXRlU3Ry
aW5nKEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmgJKHJldmlzaW9uIDE5NzUxMikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3
IEBAIGNsYXNzIEpTQXJyYXk7CiBjbGFzcyBKU0Z1bmN0aW9uOwogY2xhc3MgSlNMZXhpY2FsRW52
aXJvbm1lbnQ7CiBjbGFzcyBKU1Njb3BlOworY2xhc3MgUmVnRXhwT2JqZWN0OwogY2xhc3MgUmVn
aXN0ZXI7CiBjbGFzcyBTdHJ1Y3R1cmVTdHViSW5mbzsKIGNsYXNzIFN5bWJvbFRhYmxlOwpAQCAt
OTQsNiArOTUsNyBAQCB0eXBlZGVmIGNoYXIqIFVudXNlZFB0cjsKICAgICBQYzogSW5zdHJ1Y3Rp
b24qIGkuZS4gYnl0ZWNvZGUgUEMKICAgICBROiBpbnQ2NF90CiAgICAgUjogUmVnaXN0ZXIKKyAg
ICBSZW86IFJlZ0V4cE9iamVjdCoKICAgICBTOiBzaXplX3QKICAgICBTcHJ0OiBTbG93UGF0aFJl
dHVyblR5cGUKICAgICBTc2k6IFN0cnVjdHVyZVN0dWJJbmZvKgpAQCAtMTI4LDkgKzEzMCwxMyBA
QCB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKCiB0eXBlZGVmIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkkpKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlLCBVbmlxdWVkU3RyaW5nSW1wbCopOwogdHlwZWRlZiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpJZGMpKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7Cit0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkpKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSkFwKShFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEFycmF5UHJvZmlsZSopOwogdHlwZWRlZiBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpKQnkpKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgQnlWYWxJbmZvKik7Cit0eXBlZGVmIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkpKKShFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKIHR5
cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKc3Na
KShFeGVjU3RhdGUqLCBKU1N0cmluZyosIGludDMyX3QpOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpzc1JlbykoRXhlY1N0YXRlKiwgSlNT
dHJpbmcqLCBSZWdFeHBPYmplY3QqKTsKK3R5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiAoKkpfSklUT3BlcmF0aW9uX0VKc3NSZW9Kc3MpKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwg
UmVnRXhwT2JqZWN0KiwgSlNTdHJpbmcqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKUCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IHZvaWQqKTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3Bl
cmF0aW9uX0VQKShFeGVjU3RhdGUqLCB2b2lkKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FUFApKEV4ZWNTdGF0ZSosIHZvaWQqLCB2b2lk
Kik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272776</attachid>
            <date>2016-03-03 14:18:07 -0800</date>
            <delta_ts>2016-03-03 14:24:41 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>20274</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk3NTE5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDE2LTAzLTAzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHNob3VsZCBiZSBhYmxlIHRvIGNvbXBpbGUgU3RyaW5nUmVwbGFjZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0OTc5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBzdXBwb3J0IGZvciBTdHJp
bmdSZXBsYWNlIHRvIHRoZSBERkcgdGllci4gVGhpcyBpcyBhIDMlIHNwZWVkLXVwIG9uIE9jdGFu
ZS9yZWdleHAuCisKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKToKKyAgICAg
ICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpzcGVjdWxhdGVGaW5hbE9iamVjdCk6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVJlZ0V4cE9iamVjdCk6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZU9iamVjdE9yT3RoZXIpOgorICAgICAgICAqIGRmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
YWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDoKKwogMjAx
Ni0wMy0wMyAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbW1Nl
dFByb3RvdHlwZU9mXV0gaXNuJ3QgcHJvcGVybHkgaW1wbGVtZW50ZWQgZXZlcnl3aGVyZQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJ
KHJldmlzaW9uIDE5NzUxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTkwLDEyICsyMTkwLDYgQEAgYm9vbCBC
eXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbAogICAgIH0KIAogICAgIGNhc2UgU3Ry
aW5nUHJvdG90eXBlUmVwbGFjZUludHJpbnNpYzogewotICAgICAgICBpZiAoIWlzRlRMKG1fZ3Jh
cGgubV9wbGFuLm1vZGUpKSB7Ci0gICAgICAgICAgICAvLyBUaGlzIGlzIGEgbWFyZ2luYWxseSBw
cm9maXRhYmxlIGludHJpbnNpYy4gV2UndmUgb25seSB0aGUgd29yayB0byBtYWtlIGl0IGFuCi0g
ICAgICAgICAgICAvLyBpbnRyaW5zaWMgb24gdGhlIGZvdXJ0aCB0aWVyLgotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KICAgICAgICAgaWYgKGFyZ3VtZW50Q291bnRJbmNs
dWRpbmdUaGlzICE9IDMpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cAkocmV2aXNpb24gMTk3NTEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkwMiw2ICsyOTAyLDc0IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYm9vbGVh
blJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CisKKyAg
ICBjYXNlIFN0cmluZ1JlcGxhY2U6IHsKKyAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtp
bmQoKSA9PSBTdHJpbmdVc2UKKyAgICAgICAgICAgICYmIG5vZGUtPmNoaWxkMigpLnVzZUtpbmQo
KSA9PSBSZWdFeHBPYmplY3RVc2UKKyAgICAgICAgICAgICYmIG5vZGUtPmNoaWxkMygpLnVzZUtp
bmQoKSA9PSBTdHJpbmdVc2UpIHsKKyAgICAgICAgICAgIGlmIChKU1N0cmluZyogcmVwbGFjZSA9
IG5vZGUtPmNoaWxkMygpLT5keW5hbWljQ2FzdENvbnN0YW50PEpTU3RyaW5nKj4oKSkgeworICAg
ICAgICAgICAgICAgIGlmICghcmVwbGFjZS0+bGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgc3RyaW5nKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAg
ICAgICAgICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgcmVnRXhwKHRoaXMsIG5vZGUt
PmNoaWxkMigpKTsKKyAgICAgICAgICAgICAgICAgICAgR1BSUmVnIHN0cmluZ0dQUiA9IHN0cmlu
Zy5ncHIoKTsKKyAgICAgICAgICAgICAgICAgICAgR1BSUmVnIHJlZ0V4cEdQUiA9IHJlZ0V4cC5n
cHIoKTsKKyAgICAgICAgICAgICAgICAgICAgc3BlY3VsYXRlU3RyaW5nKG5vZGUtPmNoaWxkMSgp
LCBzdHJpbmdHUFIpOworICAgICAgICAgICAgICAgICAgICBzcGVjdWxhdGVSZWdFeHBPYmplY3Qo
bm9kZS0+Y2hpbGQyKCksIHJlZ0V4cEdQUik7CisKKyAgICAgICAgICAgICAgICAgICAgZmx1c2hS
ZWdpc3RlcnMoKTsKKyAgICAgICAgICAgICAgICAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQyIHJl
c3VsdFRhZyh0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQg
cmVzdWx0UGF5bG9hZCh0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbigK
KyAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvblN0cmluZ1Byb3RvRnVuY1JlcGxhY2VS
ZWdFeHBFbXB0eVN0ciwgcmVzdWx0VGFnLmdwcigpLAorICAgICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0UGF5bG9hZC5ncHIoKSwgc3RyaW5nR1BSLCByZWdFeHBHUFIpOworICAgICAgICAgICAg
ICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOworICAgICAgICAgICAgICAgICAgICBjZWxs
UmVzdWx0KHJlc3VsdFBheWxvYWQuZ3ByKCksIG5vZGUpOworICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIHN0cmluZyh0aGlzLCBub2RlLT5jaGlsZDEo
KSk7CisgICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCByZWdFeHAodGhpcywgbm9kZS0+
Y2hpbGQyKCkpOworICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgcmVwbGFjZSh0aGlz
LCBub2RlLT5jaGlsZDMoKSk7CisgICAgICAgICAgICBHUFJSZWcgc3RyaW5nR1BSID0gc3RyaW5n
LmdwcigpOworICAgICAgICAgICAgR1BSUmVnIHJlZ0V4cEdQUiA9IHJlZ0V4cC5ncHIoKTsKKyAg
ICAgICAgICAgIEdQUlJlZyByZXBsYWNlR1BSID0gcmVwbGFjZS5ncHIoKTsKKyAgICAgICAgICAg
IHNwZWN1bGF0ZVN0cmluZyhub2RlLT5jaGlsZDEoKSwgc3RyaW5nR1BSKTsKKyAgICAgICAgICAg
IHNwZWN1bGF0ZVJlZ0V4cE9iamVjdChub2RlLT5jaGlsZDIoKSwgcmVnRXhwR1BSKTsKKyAgICAg
ICAgICAgIHNwZWN1bGF0ZVN0cmluZyhub2RlLT5jaGlsZDMoKSwgcmVwbGFjZUdQUik7CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgICAgICAgICBHUFJG
bHVzaGVkQ2FsbFJlc3VsdDIgcmVzdWx0VGFnKHRoaXMpOworICAgICAgICAgICAgR1BSRmx1c2hl
ZENhbGxSZXN1bHQgcmVzdWx0UGF5bG9hZCh0aGlzKTsKKyAgICAgICAgICAgIGNhbGxPcGVyYXRp
b24oCisgICAgICAgICAgICAgICAgb3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZVJlZ0V4
cFN0cmluZywgcmVzdWx0VGFnLmdwcigpLCByZXN1bHRQYXlsb2FkLmdwcigpLAorICAgICAgICAg
ICAgICAgIHN0cmluZ0dQUiwgcmVnRXhwR1BSLCByZXBsYWNlR1BSKTsKKyAgICAgICAgICAgIG1f
aml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgICAgICAgICBjZWxsUmVzdWx0KHJlc3VsdFBheWxv
YWQuZ3ByKCksIG5vZGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIEpTVmFsdWVPcGVyYW5kIHN0cmluZyh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Cisg
ICAgICAgIEpTVmFsdWVPcGVyYW5kIHJlZ0V4cCh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CisgICAg
ICAgIEpTVmFsdWVPcGVyYW5kIHJlcGxhY2UodGhpcywgbm9kZS0+Y2hpbGQzKCkpOworICAgICAg
ICBHUFJSZWcgc3RyaW5nVGFnR1BSID0gc3RyaW5nLnRhZ0dQUigpOworICAgICAgICBHUFJSZWcg
c3RyaW5nUGF5bG9hZEdQUiA9IHN0cmluZy5wYXlsb2FkR1BSKCk7CisgICAgICAgIEdQUlJlZyBy
ZWdFeHBUYWdHUFIgPSByZWdFeHAudGFnR1BSKCk7CisgICAgICAgIEdQUlJlZyByZWdFeHBQYXls
b2FkR1BSID0gcmVnRXhwLnBheWxvYWRHUFIoKTsKKyAgICAgICAgR1BSUmVnIHJlcGxhY2VUYWdH
UFIgPSByZXBsYWNlLnRhZ0dQUigpOworICAgICAgICBHUFJSZWcgcmVwbGFjZVBheWxvYWRHUFIg
PSByZXBsYWNlLnBheWxvYWRHUFIoKTsKKyAgICAgICAgCisgICAgICAgIGZsdXNoUmVnaXN0ZXJz
KCk7CisgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0MiByZXN1bHRUYWcodGhpcyk7CisgICAg
ICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdFBheWxvYWQodGhpcyk7CisgICAgICAgIGNh
bGxPcGVyYXRpb24oCisgICAgICAgICAgICBvcGVyYXRpb25TdHJpbmdQcm90b0Z1bmNSZXBsYWNl
R2VuZXJpYywgcmVzdWx0VGFnLmdwcigpLCByZXN1bHRQYXlsb2FkLmdwcigpLAorICAgICAgICAg
ICAgc3RyaW5nVGFnR1BSLCBzdHJpbmdQYXlsb2FkR1BSLCByZWdFeHBUYWdHUFIsIHJlZ0V4cFBh
eWxvYWRHUFIsIHJlcGxhY2VUYWdHUFIsCisgICAgICAgICAgICByZXBsYWNlUGF5bG9hZEdQUik7
CisgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgICAgIGNlbGxSZXN1bHQocmVz
dWx0UGF5bG9hZC5ncHIoKSwgbm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICAgICAg
CiAgICAgY2FzZSBBcnJheVB1c2g6IHsKICAgICAgICAgQVNTRVJUKG5vZGUtPmFycmF5TW9kZSgp
LmlzSlNBcnJheSgpKTsKQEAgLTQ4NjQsNyArNDkzMiw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIEtpbGxTdGFjazoKICAgICBjYXNlIEdldFN0
YWNrOgogICAgIGNhc2UgR2V0TXlBcmd1bWVudEJ5VmFsOgotICAgIGNhc2UgU3RyaW5nUmVwbGFj
ZToKICAgICAgICAgREZHX0NSQVNIKG1faml0LmdyYXBoKCksIG5vZGUsICJ1bmV4cGVjdGVkIG5v
ZGUgaW4gREZHIGJhY2tlbmQiKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZp
c2lvbiAxOTc1MTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiT2Jq
ZWN0UHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiU2V0dXBWYXJhcmdzRnJhbWUuaCIKICNpbmNsdWRl
ICJTcGlsbFJlZ2lzdGVyc01vZGUuaCIKKyNpbmNsdWRlICJTdHJpbmdQcm90b3R5cGUuaCIKICNp
bmNsdWRlICJUeXBlUHJvZmlsZXJMb2cuaCIKICNpbmNsdWRlICJXYXRjaGRvZy5oIgogCkBAIC0z
MDI1LDYgKzMwMjYsNjcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2Rl
KQogICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSwgRGF0YUZvcm1hdEpT
Qm9vbGVhbik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KKworICAgIGNhc2UgU3RyaW5nUmVwbGFj
ZTogeworICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFN0cmluZ1VzZQor
ICAgICAgICAgICAgJiYgbm9kZS0+Y2hpbGQyKCkudXNlS2luZCgpID09IFJlZ0V4cE9iamVjdFVz
ZQorICAgICAgICAgICAgJiYgbm9kZS0+Y2hpbGQzKCkudXNlS2luZCgpID09IFN0cmluZ1VzZSkg
eworICAgICAgICAgICAgaWYgKEpTU3RyaW5nKiByZXBsYWNlID0gbm9kZS0+Y2hpbGQzKCktPmR5
bmFtaWNDYXN0Q29uc3RhbnQ8SlNTdHJpbmcqPigpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFy
ZXBsYWNlLT5sZW5ndGgoKSkgeworICAgICAgICAgICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3Bl
cmFuZCBzdHJpbmcodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgICAgICAgICBT
cGVjdWxhdGVDZWxsT3BlcmFuZCByZWdFeHAodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworICAgICAg
ICAgICAgICAgICAgICBHUFJSZWcgc3RyaW5nR1BSID0gc3RyaW5nLmdwcigpOworICAgICAgICAg
ICAgICAgICAgICBHUFJSZWcgcmVnRXhwR1BSID0gcmVnRXhwLmdwcigpOworICAgICAgICAgICAg
ICAgICAgICBzcGVjdWxhdGVTdHJpbmcobm9kZS0+Y2hpbGQxKCksIHN0cmluZ0dQUik7CisgICAg
ICAgICAgICAgICAgICAgIHNwZWN1bGF0ZVJlZ0V4cE9iamVjdChub2RlLT5jaGlsZDIoKSwgcmVn
RXhwR1BSKTsKKworICAgICAgICAgICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygpOworICAgICAg
ICAgICAgICAgICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CisgICAgICAg
ICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICBvcGVy
YXRpb25TdHJpbmdQcm90b0Z1bmNSZXBsYWNlUmVnRXhwRW1wdHlTdHIsIHJlc3VsdC5ncHIoKSwg
c3RyaW5nR1BSLAorICAgICAgICAgICAgICAgICAgICAgICAgcmVnRXhwR1BSKTsKKyAgICAgICAg
ICAgICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKyAgICAgICAgICAgICAgICAgICAg
Y2VsbFJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUpOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIHN0cmluZyh0aGlzLCBub2RlLT5jaGlsZDEoKSk7
CisgICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCByZWdFeHAodGhpcywgbm9kZS0+Y2hp
bGQyKCkpOworICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgcmVwbGFjZSh0aGlzLCBu
b2RlLT5jaGlsZDMoKSk7CisgICAgICAgICAgICBHUFJSZWcgc3RyaW5nR1BSID0gc3RyaW5nLmdw
cigpOworICAgICAgICAgICAgR1BSUmVnIHJlZ0V4cEdQUiA9IHJlZ0V4cC5ncHIoKTsKKyAgICAg
ICAgICAgIEdQUlJlZyByZXBsYWNlR1BSID0gcmVwbGFjZS5ncHIoKTsKKyAgICAgICAgICAgIHNw
ZWN1bGF0ZVN0cmluZyhub2RlLT5jaGlsZDEoKSwgc3RyaW5nR1BSKTsKKyAgICAgICAgICAgIHNw
ZWN1bGF0ZVJlZ0V4cE9iamVjdChub2RlLT5jaGlsZDIoKSwgcmVnRXhwR1BSKTsKKyAgICAgICAg
ICAgIHNwZWN1bGF0ZVN0cmluZyhub2RlLT5jaGlsZDMoKSwgcmVwbGFjZUdQUik7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgICAgICAgICBHUFJGbHVz
aGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CisgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKAor
ICAgICAgICAgICAgICAgIG9wZXJhdGlvblN0cmluZ1Byb3RvRnVuY1JlcGxhY2VSZWdFeHBTdHJp
bmcsIHJlc3VsdC5ncHIoKSwgc3RyaW5nR1BSLCByZWdFeHBHUFIsCisgICAgICAgICAgICAgICAg
cmVwbGFjZUdQUik7CisgICAgICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOworICAgICAg
ICAgICAgY2VsbFJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEpTVmFsdWVPcGVyYW5kIHN0cmluZyh0aGlz
LCBub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIEpTVmFsdWVPcGVyYW5kIHJlZ0V4cCh0aGlzLCBu
b2RlLT5jaGlsZDIoKSk7CisgICAgICAgIEpTVmFsdWVPcGVyYW5kIHJlcGxhY2UodGhpcywgbm9k
ZS0+Y2hpbGQzKCkpOworICAgICAgICBHUFJSZWcgc3RyaW5nR1BSID0gc3RyaW5nLmdwcigpOwor
ICAgICAgICBHUFJSZWcgcmVnRXhwR1BSID0gcmVnRXhwLmdwcigpOworICAgICAgICBHUFJSZWcg
cmVwbGFjZUdQUiA9IHJlcGxhY2UuZ3ByKCk7CisgICAgICAgIAorICAgICAgICBmbHVzaFJlZ2lz
dGVycygpOworICAgICAgICBHUFJGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CisgICAg
ICAgIGNhbGxPcGVyYXRpb24oCisgICAgICAgICAgICBvcGVyYXRpb25TdHJpbmdQcm90b0Z1bmNS
ZXBsYWNlR2VuZXJpYywgcmVzdWx0LmdwcigpLCBzdHJpbmdHUFIsIHJlZ0V4cEdQUiwKKyAgICAg
ICAgICAgIHJlcGxhY2VHUFIpOworICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOworICAg
ICAgICBjZWxsUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSk7CisgICAgICAgIGJyZWFrOworICAg
IH0KICAgICAgICAgCiAgICAgY2FzZSBBcnJheVB1c2g6IHsKICAgICAgICAgQVNTRVJUKG5vZGUt
PmFycmF5TW9kZSgpLmlzSlNBcnJheSgpKTsKQEAgLTQ5MTYsNyArNDk3OCw2IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIFB1dFN0YWNrOgogICAg
IGNhc2UgS2lsbFN0YWNrOgogICAgIGNhc2UgR2V0U3RhY2s6Ci0gICAgY2FzZSBTdHJpbmdSZXBs
YWNlOgogICAgICAgICBERkdfQ1JBU0gobV9qaXQuZ3JhcGgoKSwgbm9kZSwgIlVuZXhwZWN0ZWQg
bm9kZSIpOwogICAgICAgICBicmVhazsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gMTk3NTEyKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY2MjMsMTMgKzY2MjMsMTggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3Vs
YXRlRmluYWxPYmplYwogICAgIHNwZWN1bGF0ZUNlbGxUeXBlKGVkZ2UsIG9wZXJhbmQuZ3ByKCks
IFNwZWNGaW5hbE9iamVjdCwgRmluYWxPYmplY3RUeXBlKTsKIH0KIAordm9pZCBTcGVjdWxhdGl2
ZUpJVDo6c3BlY3VsYXRlUmVnRXhwT2JqZWN0KEVkZ2UgZWRnZSwgR1BSUmVnIGNlbGwpCit7Cisg
ICAgc3BlY3VsYXRlQ2VsbFR5cGUoZWRnZSwgY2VsbCwgU3BlY1JlZ0V4cE9iamVjdCwgUmVnRXhw
T2JqZWN0VHlwZSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1bGF0ZVJlZ0V4cE9i
amVjdChFZGdlIGVkZ2UpCiB7CiAgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhlZGdlLCBTcGVjUmVn
RXhwT2JqZWN0KSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIG9wZXJhbmQodGhpcywgZWRnZSk7Ci0gICAgc3BlY3VsYXRlQ2VsbFR5cGUoZWRnZSwgb3Bl
cmFuZC5ncHIoKSwgU3BlY1JlZ0V4cE9iamVjdCwgUmVnRXhwT2JqZWN0VHlwZSk7CisgICAgc3Bl
Y3VsYXRlUmVnRXhwT2JqZWN0KGVkZ2UsIG9wZXJhbmQuZ3ByKCkpOwogfQogCiB2b2lkIFNwZWN1
bGF0aXZlSklUOjpzcGVjdWxhdGVPYmplY3RPck90aGVyKEVkZ2UgZWRnZSkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJKHJldmlzaW9uIDE5
NzUxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAko
d29ya2luZyBjb3B5KQpAQCAtMTI3Miw2ICsxMjcyLDE2IEBAIHB1YmxpYzoKICAgICAgICAgbV9q
aXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIpOwogICAgICAgICByZXR1
cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CiAgICAgfQorICAgIEpJ
VENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpzc1JlbyBvcGVy
YXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKKyAgICB7Cisg
ICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyKTsKKyAg
ICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOworICAg
IH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VK
c3NSZW9Kc3Mgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFy
ZzIsIEdQUlJlZyBhcmczKQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRo
RXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNl
dFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CisgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxs
IGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpzc1ogb3BlcmF0aW9uLCBHUFJSZWcgcmVz
dWx0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIpCiAgICAgewogICAgICAgICBtX2ppdC5zZXR1
cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMik7CkBAIC0xNDM1LDIwICsxNDQ1LDI1
IEBAIHB1YmxpYzoKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFy
ZzEsIGFyZzIpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24s
IHJlc3VsdCk7CiAgICAgfQotICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9K
SVRPcGVyYXRpb25fRUpKIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEsIE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIgaW1tKQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpKIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwg
R1BSUmVnIGFyZzEsIGludDMyX3QgaW1tKQogICAgIHsKLSAgICAgICAgbV9qaXQuc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tNjQoSlNW
YWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGltbS5tX3ZhbHVlKSkpKTsKKyAgICAgICAgbV9qaXQuc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
NjQoSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGltbSkpKSk7CiAgICAgICAgIHJldHVybiBhcHBl
bmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKICAgICB9Ci0gICAgSklUQ29tcGls
ZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkogb3BlcmF0aW9uLCBHUFJS
ZWcgcmVzdWx0LCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIGltbSwgR1BSUmVnIGFyZzIp
CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FSkog
b3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBpbnQzMl90IGltbSwgR1BSUmVnIGFyZzIpCiAgICAg
ewotICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoaW1tLm1fdmFsdWUpKSks
IGFyZzIpOworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoTWFjcm9B
c3NlbWJsZXI6OlRydXN0ZWRJbW02NChKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoaW1tKSkpLCBh
cmcyKTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1
bHQpOwogICAgIH0KICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3Bl
cmF0aW9uX0VKSiBvcGVyYXRpb24sIEpTVmFsdWVSZWdzIHJlc3VsdCwgSlNWYWx1ZVJlZ3MgYXJn
MSwgSlNWYWx1ZVJlZ3MgYXJnMikKICAgICB7CiAgICAgICAgIHJldHVybiBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvbiwgcmVzdWx0LnBheWxvYWRHUFIoKSwgYXJnMS5wYXlsb2FkR1BSKCksIGFyZzIu
cGF5bG9hZEdQUigpKTsKICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bihKX0pJVE9wZXJhdGlvbl9FSkpKIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFy
ZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnMykKKyAgICB7CisgICAgICAgIG1faml0LnNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICAgICAgcmV0dXJu
IGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOworICAgIH0KICAgICBKSVRD
b21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VDQyBvcGVyYXRpb24s
IEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKICAgICB7CiAgICAgICAg
IG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyKTsKQEAgLTE2MzQs
NiArMTY0OSwxNiBAQCBwdWJsaWM6CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShhcmcxLCBhcmcyKTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQo
b3BlcmF0aW9uLCByZXN1bHRQYXlsb2FkLCByZXN1bHRUYWcpOwogICAgIH0KKyAgICBKSVRDb21w
aWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKc3NSZW8gb3BlcmF0aW9u
LCBHUFJSZWcgcmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0UGF5bG9hZCwgR1BSUmVnIGFyZzEsIEdQ
UlJlZyBhcmcyKQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKGFyZzEsIGFyZzIpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVy
YXRpb24sIHJlc3VsdFBheWxvYWQsIHJlc3VsdFRhZyk7CisgICAgfQorICAgIEpJVENvbXBpbGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRUpzc1Jlb0pzcyBvcGVyYXRpb24s
IEdQUlJlZyByZXN1bHRUYWcsIEdQUlJlZyByZXN1bHRQYXlsb2FkLCBHUFJSZWcgYXJnMSwgR1BS
UmVnIGFyZzIsIEdQUlJlZyBhcmczKQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgICAgICByZXR1cm4gYXBwZW5k
Q2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdFBheWxvYWQsIHJlc3VsdFRhZyk7CisgICAg
fQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRVBT
IG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdFRhZywgR1BSUmVnIHJlc3VsdFBheWxvYWQsIHZvaWQq
IHBvaW50ZXIsIHNpemVfdCBzaXplKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW1QdHIocG9pbnRlciksIFRydXN0ZWRJbW1QdHIoc2l6
ZSkpOwpAQCAtMTc5MSw2ICsxODE2LDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVy
biBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgcmVzdWx0LnRhZ0dQUigpLCByZXN1bHQucGF5bG9h
ZEdQUigpLCBhcmcxLnRhZ0dQUigpLCBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMi50YWdHUFIoKSwg
YXJnMi5wYXlsb2FkR1BSKCkpOwogICAgIH0KKyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3Bl
cmF0aW9uKEpfSklUT3BlcmF0aW9uX0VKSkogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFnLCBH
UFJSZWcgcmVzdWx0UGF5bG9hZCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwg
R1BSUmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcyUGF5bG9hZCwgR1BSUmVnIGFyZzNUYWcsIEdQUlJl
ZyBhcmczUGF5bG9hZCkKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgYXJnMlBh
eWxvYWQsIGFyZzJUYWcsIGFyZzNQYXlsb2FkLCBhcmczVGFnKTsKKyAgICAgICAgcmV0dXJuIGFw
cGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHRQYXlsb2FkLCByZXN1bHRUYWcpOwor
ICAgIH0KIAogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRp
b25fRUNKIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdFRhZywgR1BSUmVnIHJlc3VsdFBheWxvYWQs
IEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkKQogICAgIHsK
QEAgLTI0NzAsNiArMjUwMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNwZWN1bGF0ZU9iamVjdChF
ZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0ZUZ1bmN0aW9uKEVkZ2UpOwogICAgIHZvaWQgc3BlY3Vs
YXRlRmluYWxPYmplY3QoRWRnZSk7CisgICAgdm9pZCBzcGVjdWxhdGVSZWdFeHBPYmplY3QoRWRn
ZSwgR1BSUmVnIGNlbGwpOwogICAgIHZvaWQgc3BlY3VsYXRlUmVnRXhwT2JqZWN0KEVkZ2UpOwog
ICAgIHZvaWQgc3BlY3VsYXRlT2JqZWN0T3JPdGhlcihFZGdlKTsKICAgICB2b2lkIHNwZWN1bGF0
ZVN0cmluZyhFZGdlIGVkZ2UsIEdQUlJlZyBjZWxsKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAxOTc1MTIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiAr
NDUsNyBAQCBjbGFzcyBKU0FycmF5OwogY2xhc3MgSlNGdW5jdGlvbjsKIGNsYXNzIEpTTGV4aWNh
bEVudmlyb25tZW50OwogY2xhc3MgSlNTY29wZTsKK2NsYXNzIFJlZ0V4cE9iamVjdDsKIGNsYXNz
IFJlZ2lzdGVyOwogY2xhc3MgU3RydWN0dXJlU3R1YkluZm87CiBjbGFzcyBTeW1ib2xUYWJsZTsK
QEAgLTk0LDYgKzk1LDcgQEAgdHlwZWRlZiBjaGFyKiBVbnVzZWRQdHI7CiAgICAgUGM6IEluc3Ry
dWN0aW9uKiBpLmUuIGJ5dGVjb2RlIFBDCiAgICAgUTogaW50NjRfdAogICAgIFI6IFJlZ2lzdGVy
CisgICAgUmVvOiBSZWdFeHBPYmplY3QqCiAgICAgUzogc2l6ZV90CiAgICAgU3BydDogU2xvd1Bh
dGhSZXR1cm5UeXBlCiAgICAgU3NpOiBTdHJ1Y3R1cmVTdHViSW5mbyoKQEAgLTEyOCw5ICsxMzAs
MTMgQEAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSgogdHlwZWRlZiBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpJKShFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqKTsKIHR5cGVkZWYgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSWRjKShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciopOwogdHlwZWRlZiBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpKKShFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiB0eXBlZGVmIEVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSkpBcCkoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBBcnJheVByb2ZpbGUqKTsKIHR5cGVkZWYgRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKSkJ5KShFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEJ5VmFsSW5mbyopOwordHlwZWRl
ZiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRUpKSikoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7
CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9F
SnNzWikoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBpbnQzMl90KTsKK3R5cGVkZWYgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VKc3NSZW8pKEV4ZWNTdGF0ZSos
IEpTU3RyaW5nKiwgUmVnRXhwT2JqZWN0Kik7Cit0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSnNzUmVvSnNzKShFeGVjU3RhdGUqLCBKU1N0cmlu
ZyosIFJlZ0V4cE9iamVjdCosIEpTU3RyaW5nKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gKCpKX0pJVE9wZXJhdGlvbl9FSlApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCB2b2lkKik7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJ
VE9wZXJhdGlvbl9FUCkoRXhlY1N0YXRlKiwgdm9pZCopOwogdHlwZWRlZiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OICgqSl9KSVRPcGVyYXRpb25fRVBQKShFeGVjU3RhdGUqLCB2b2lkKiwg
dm9pZCopOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTk3NTE5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTYtMDMtMDMgIEZpbGlwIFBp
emxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBERkcgc2hvdWxkIGJlIGFibGUgdG8g
Y29tcGlsZSBTdHJpbmdSZXBsYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTQ5NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgYSBtaWNyb2JlbmNobWFyayBmb3IgYSBjYXNlIG9mIFN0cmluZ1Jl
cGxhY2UgdGhhdCB3ZSBoYWRuJ3QgY292ZXJlZCB3aXRoIGEgbWljcm9iZW5jaG1hcmsKKyAgICAg
ICAgeWV0OiB1c2luZyBzb21ldGhpbmcgYWJzdXJkIGZvciB0aGUgcmVwbGFjZSB2YWx1ZS4gVGhp
cyBpcyBpbnRlcmVzdGluZyBmb3IgaW1wbGVtZW50aW5nIHRoZQorICAgICAgICAzMl82NCB2ZXJz
aW9uIG9mIFN0cmluZ1JlcGxhY2UsIHdoaWNoIGdldHMgcmVhbGx5IHdlaXJkIGluIHRoZSBhYnN1
cmQgY2FzZSBiZWNhdXNlIG9mIGhvdyBpdAorICAgICAgICBjb25zdW1lcyB0aGUgZW50aXJlIHJl
Z2lzdGVyIGZpbGUgd2hpbGUgbWFraW5nIHRoZSBjYWxsLgorCisgICAgICAgICoganMvcmVncmVz
cy9zY3JpcHQtdGVzdHMvc3RyaW5nLXJlcGxhY2UtZ2VuZXJpYy5qczogQWRkZWQuCisgICAgICAg
ICoganMvcmVncmVzcy9zdHJpbmctcmVwbGFjZS1nZW5lcmljLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICoganMvcmVncmVzcy9zdHJpbmctcmVwbGFjZS1nZW5lcmljLmh0bWw6IEFkZGVk
LgorCiAyMDE2LTAzLTAzICBEYXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBzdXBwb3J0IGZvciB0aGUgImxhc3QiIHZhbHVlIG9mIGhhbmdpbmctcHVuY3R1YXRpb24K
SW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXJlcGxhY2UtZ2VuZXJpYy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctcmVw
bGFjZS1nZW5lcmljLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3Mvc3RyaW5nLXJlcGxhY2UtZ2VuZXJpYy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL3N0cmluZy1yZXBsYWNlLWdlbmVyaWMKKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXJlcGxhY2UtZ2VuZXJpYy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc3RyaW5nLXJlcGxhY2UtZ2VuZXJpYy5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zdHJpbmctcmVwbGFj
ZS1nZW5lcmljLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3RyaW5nLXJlcGxhY2UtZ2Vu
ZXJpYy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9zdHJpbmctcmVwbGFjZS1nZW5lcmljLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL3N0cmluZy1yZXBsYWNl
LWdlbmVyaWMuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9zdHJpbmctcmVwbGFjZS1nZW5lcmljLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsOCBAQAorKGZ1bmN0aW9uKCkgeworICAgIHZhciByZXN1bHQ7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCA0MDAwMDA7ICsraSkgeworICAgICAgICByZXN1bHQgPSAiZm9vIi5yZXBsYWNlKC9m
L2csIDQyKTsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAhPSAiNDJvbyIpCisgICAgICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdDogIisgcmVzdWx0OworfSkoKTsK
</data>
<flag name="review"
          id="297544"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>