<?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>180960</bug_id>
          
          <creation_ts>2017-12-18 17:59:04 -0800</creation_ts>
          <short_desc>[DFG][FTL] NewRegexp shoud be fast</short_desc>
          <delta_ts>2017-12-19 11:39:24 -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>
          
          <blocked>180970</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1383006</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-18 17:59:04 -0800</bug_when>
    <thetext>This patch is one of the series of optimizing the case,

string.match(/regexp/)

thing. When evaluating /regexp/, new RegExpObject is created every time.
However, basically, we do not have much interest on this object. At the end of the patch series, we should make this PhantomNewRegexp in OAS phase.

As a first step of these NewRegexp optimization, we would like to inline it by using allocateJSObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383111</commentid>
    <comment_count>1</comment_count>
      <attachid>329753</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-19 03:53:35 -0800</bug_when>
    <thetext>Created attachment 329753
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383120</commentid>
    <comment_count>2</comment_count>
      <attachid>329756</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-19 04:55:27 -0800</bug_when>
    <thetext>Created attachment 329756
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383195</commentid>
    <comment_count>3</comment_count>
      <attachid>329756</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2017-12-19 11:13:52 -0800</bug_when>
    <thetext>Comment on attachment 329756
Patch

Nice
r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383204</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-19 11:36:36 -0800</bug_when>
    <thetext>(In reply to Michael Saboff from comment #3)
&gt; Comment on attachment 329756 [details]
&gt; Patch
&gt; 
&gt; Nice
&gt; r=me

Thank you for your review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383205</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-12-19 11:38:37 -0800</bug_when>
    <thetext>Committed r226134: &lt;https://trac.webkit.org/changeset/226134&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383207</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-19 11:39:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/36136719&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329753</attachid>
            <date>2017-12-19 03:53:35 -0800</date>
            <delta_ts>2017-12-19 04:55:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180960-20171219205334.patch</filename>
            <type>text/plain</type>
            <size>13019</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZDIwMTFlMThhMDQ1NWYxZDExYzllODFlN2YwMmJhOTk5ODBlNGUwLi40MGY4N2JlZGRlNzNhOTE5
MTA0YjEyYjk4NDkzZjU2OGMzZDU0Y2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAxNy0xMi0xOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbREZHXVtGVExdIE5ld1JlZ2V4cCBzaG91ZCBiZSBmYXN0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5NjAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHdlIGVuY291
bnRlciBSZWdFeHAgbGl0ZXJhbCBsaWtlIC9BQUEvZywgd2UgbmVlZCB0byBjcmVhdGUgYSBSZWdF
eHAgb2JqZWN0LgorICAgICAgICBUeXBpY2FsIGlkaW9tIGxpa2UgYHN0cmluZy5tYXRjaCgvcmVn
ZXhwLylgIHJlcXVpcmVzIFJlZ0V4cCBvYmplY3QgY3JlYXRpb24KKyAgICAgICAgZXZlcnkgdGlt
ZS4KKworICAgICAgICBBcyBhIGZpcnN0IHN0ZXAsIHRoaXMgcGF0Y2ggYWNjZWxlcmF0ZXMgUmVn
RXhwIG9iamVjdCBjcmVhdGlvbiBieSBoYW5kbGluZyBpdAorICAgICAgICBpbiBERkcgYW5kIEZU
TC4gSW4gYSBzdWJzZXF1ZW50IHBhdGNoLCB3ZSB3b3VsZCBsaWtlIHRvIGludHJvZHVjZSBQaGFu
dG9tTmV3UmVnZXhwCisgICAgICAgIHRvIHJlbW92ZSB1bm5lY2Vzc2FyeSBSZWdFeHAgb2JqZWN0
IGNyZWF0aW9ucy4KKworICAgICAgICBUaGlzIHBhdGNoIGltcHJvdmVzIFNpeFNwZWVkL3JlZ2V4
LXUue2VzNSxlczZ9LgorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFz
ZWxpbmUgICAgICAgICAgICAgICAgICBwYXRjaGVkCisKKyAgICAgICAgICAgIHJlZ2V4LXUuZXM1
ICAgICAgICAgIDY5LjI1NzkrLTMuNTI2NCAgICAgXiAgICAgNTIuNTk4MSstNC4yMTAyICAgICAg
ICBeIGRlZmluaXRlbHkgMS4zMTY3eCBmYXN0ZXIKKyAgICAgICAgICAgIHJlZ2V4LXUuZXM2ICAg
ICAgICAgMTIzLjk4MjArLTUuMjE1MSAgICAgXiAgICAxMDUuMzg5OSstMy4zOTE2ICAgICAgICBe
IGRlZmluaXRlbHkgMS4xNzY0eCBmYXN0ZXIKKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdS
ZWdleHApOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnku
aDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRM
OjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5ld1JlZ2V4cCk6CisgICAgICAgICogaml0L0pJ
VE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNwcDoKKyAg
ICAgICAgKEpTQzo6TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKiBydW50
aW1lL1JlZ0V4cE9iamVjdC5oOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6Om9mZnNldE9m
UmVnRXhwKToKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjphbGxvY2F0aW9uU2l6ZSk6CisK
IDIwMTctMTItMTcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAg
ICAgICAgW0ZUTF0gTmV3QXJyYXlCdWZmZXIgc2hvdWxkIGJlIHNpbmtlZCBpZiBpdCBpcyBvbmx5
IHVzZWQgZm9yIHNwcmVhZGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcAppbmRleCBiNzA5OTFhMzgwNmFlYThmYmIxZGJiZmMzMjU1OTk5NjFk
YWE2NzU1Li4wYjVjYzJmOTU2YzQ2OTNjM2ZhN2Y4MDEwMDk5Mzc0MmYzYjUzNGFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtOTEy
Miw2ICs5MTIyLDUwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdUeXBlZEFycmF5
KE5vZGUqIG5vZGUpCiAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwogfQogCit2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3UmVnZXhwKE5vZGUqIG5vZGUpCit7CisgICAgUmVn
RXhwKiByZWdleHAgPSBub2RlLT5jYXN0T3BlcmFuZDxSZWdFeHAqPigpOworCisgICAgLy8gRklY
TUU6IElmIHRoZSBSZWdFeHAgaXMgaW52YWxpZCwgd2Ugc2hvdWxkIGVtaXQgYSBkaWZmZXJlbnQg
Ynl0ZWNvZGUuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MDk3MAorICAgIGlmICghcmVnZXhwLT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgZmx1c2hSZWdp
c3RlcnMoKTsKKyAgICAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOworCisg
ICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uTmV3UmVnZXhwLCByZXN1bHQuZ3ByKCksIHJl
Z2V4cCk7CisgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisKKyAgICAgICAgY2VsbFJl
c3VsdChyZXN1bHQuZ3ByKCksIG5vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
R1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKKyAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaDEodGhp
cyk7CisgICAgR1BSVGVtcG9yYXJ5IHNjcmF0Y2gyKHRoaXMpOworCisgICAgR1BSUmVnIHJlc3Vs
dEdQUiA9IHJlc3VsdC5ncHIoKTsKKyAgICBHUFJSZWcgc2NyYXRjaDFHUFIgPSBzY3JhdGNoMS5n
cHIoKTsKKyAgICBHUFJSZWcgc2NyYXRjaDJHUFIgPSBzY3JhdGNoMi5ncHIoKTsKKworICAgIEpJ
VENvbXBpbGVyOjpKdW1wTGlzdCBzbG93UGF0aDsKKworICAgIGF1dG8gc3RydWN0dXJlID0gbV9q
aXQuZ3JhcGgoKS5yZWdpc3RlclN0cnVjdHVyZShtX2ppdC5ncmFwaCgpLmdsb2JhbE9iamVjdEZv
cihub2RlLT5vcmlnaW4uc2VtYW50aWMpLT5yZWdFeHBTdHJ1Y3R1cmUoKSk7CisgICAgYXV0byBi
dXR0ZXJmbHkgPSBUcnVzdGVkSW1tUHRyKG51bGxwdHIpOworICAgIGF1dG8gbWFzayA9IFRydXN0
ZWRJbW0zMigwKTsKKyAgICBlbWl0QWxsb2NhdGVKU09iamVjdDxSZWdFeHBPYmplY3Q+KHJlc3Vs
dEdQUiwgVHJ1c3RlZEltbVB0cihzdHJ1Y3R1cmUpLCBidXR0ZXJmbHksIG1hc2ssIHNjcmF0Y2gx
R1BSLCBzY3JhdGNoMkdQUiwgc2xvd1BhdGgpOworCisgICAgbV9qaXQuc3RvcmVQdHIoCisgICAg
ICAgIFRydXN0ZWRJbW1QdHIobm9kZS0+Y2VsbE9wZXJhbmQoKSksCisgICAgICAgIENDYWxsSGVs
cGVyczo6QWRkcmVzcyhyZXN1bHRHUFIsIFJlZ0V4cE9iamVjdDo6b2Zmc2V0T2ZSZWdFeHAoKSkp
OworICAgIG1faml0LnN0b3JlVHJ1c3RlZFZhbHVlKGpzTnVtYmVyKDApLCBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MocmVzdWx0R1BSLCBSZWdFeHBPYmplY3Q6Om9mZnNldE9mTGFzdEluZGV4KCkpKTsK
KyAgICBtX2ppdC5zdG9yZTgoVHJ1c3RlZEltbTMyKHRydWUpLCBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MocmVzdWx0R1BSLCBSZWdFeHBPYmplY3Q6Om9mZnNldE9mTGFzdEluZGV4SXNXcml0YWJsZSgp
KSk7CisgICAgbV9qaXQubXV0YXRvckZlbmNlKCptX2ppdC52bSgpKTsKKworICAgIGFkZFNsb3dQ
YXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbChzbG93UGF0aCwgdGhpcywgb3BlcmF0aW9uTmV3UmVn
ZXhwLCByZXN1bHRHUFIsIHN0YXRpY19jYXN0PHZvaWQqPihyZWdleHApKSk7CisKKyAgICBjZWxs
UmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNwZWN1
bGF0ZUNlbGxUeXBlV2l0aG91dFR5cGVGaWx0ZXJpbmcoCiAgICAgRWRnZSBlZGdlLCBHUFJSZWcg
Y2VsbEdQUiwgSlNUeXBlIGpzVHlwZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCA5NzRmYzQxYzg4M2UwZTg3NTFiMTUzYzE3Yzk1YjU5
NzlhZTViOGI2Li40OTdjMjg5YmRjZWU0ZTUxMmFkMWMyYWQxNTg1MmRmODlhYTBjOWYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0yOTk5
LDYgKzI5OTksNyBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIENsYXNzVHlwZT4gdm9pZCBjb21waWxlTmV3RnVuY3Rpb25Db21tb24oR1BSUmVnLCBSZWdp
c3RlcmVkU3RydWN0dXJlLCBHUFJSZWcsIEdQUlJlZywgR1BSUmVnLCBNYWNyb0Fzc2VtYmxlcjo6
SnVtcExpc3QmLCBzaXplX3QsIEZ1bmN0aW9uRXhlY3V0YWJsZSosIHB0cmRpZmZfdCwgcHRyZGlm
Zl90LCBwdHJkaWZmX3QpOwogICAgIHZvaWQgY29tcGlsZU5ld0Z1bmN0aW9uKE5vZGUqKTsKICAg
ICB2b2lkIGNvbXBpbGVTZXRGdW5jdGlvbk5hbWUoTm9kZSopOworICAgIHZvaWQgY29tcGlsZU5l
d1JlZ2V4cChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlRm9yd2FyZFZhcmFyZ3MoTm9kZSopOwog
ICAgIHZvaWQgY29tcGlsZUNyZWF0ZUFjdGl2YXRpb24oTm9kZSopOwogICAgIHZvaWQgY29tcGls
ZUNyZWF0ZURpcmVjdEFyZ3VtZW50cyhOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAzN2YyYWFmODM1NjM2OTM3MTQ5
MTMyZGQzZGU0ZjZiZDZmZmU3YjU2Li4xMjIxNTgzMmRlZjU3YmZmZmU1NmM1ZmE0N2E1MzA0NzAz
MTJhY2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAKQEAgLTQyMjAsMTQgKzQyMjAsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgfQogICAgICAgICAKICAgICBjYXNlIE5ld1JlZ2V4cDog
ewotICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwotICAgICAgICBHUFJGbHVzaGVkQ2FsbFJlc3Vs
dCByZXN1bHQodGhpcyk7Ci0gICAgICAgIAotICAgICAgICBSZWdFeHAqIHJlZ2V4cCA9IG5vZGUt
PmNhc3RPcGVyYW5kPFJlZ0V4cCo+KCk7Ci0gICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
TmV3UmVnZXhwLCByZXN1bHQuZ3ByKCksIHJlZ2V4cCk7Ci0gICAgICAgIG1faml0LmV4Y2VwdGlv
bkNoZWNrKCk7Ci0gICAgICAgIAotICAgICAgICBjZWxsUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9k
ZSk7CisgICAgICAgIGNvbXBpbGVOZXdSZWdleHAobm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhl
YXBSZXBvc2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVh
cFJlcG9zaXRvcnkuaAppbmRleCA1NmM5ODk0MDYyZDdlMzBmOTY5OGM4ZGFiZTIwYWQyYjhiNTI4
ZWZmLi45ODAwY2MzZmIzOTNhNzg3NDkwYzgzNWYzZDIzNWFhZGNkZTcyOTk2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnku
aApAQCAtOTAsNiArOTAsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAg
bWFjcm8oUmVnRXhwQ29uc3RydWN0b3JfY2FjaGVkUmVzdWx0X3Jlc3VsdF9zdGFydCwgUmVnRXhw
Q29uc3RydWN0b3I6Om9mZnNldE9mQ2FjaGVkUmVzdWx0KCkgKyBSZWdFeHBDYWNoZWRSZXN1bHQ6
Om9mZnNldE9mUmVzdWx0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoTWF0Y2hSZXN1bHQsIHN0YXJ0KSkg
XAogICAgIG1hY3JvKFJlZ0V4cENvbnN0cnVjdG9yX2NhY2hlZFJlc3VsdF9yZXN1bHRfZW5kLCBS
ZWdFeHBDb25zdHJ1Y3Rvcjo6b2Zmc2V0T2ZDYWNoZWRSZXN1bHQoKSArIFJlZ0V4cENhY2hlZFJl
c3VsdDo6b2Zmc2V0T2ZSZXN1bHQoKSArIE9CSkVDVF9PRkZTRVRPRihNYXRjaFJlc3VsdCwgZW5k
KSkgXAogICAgIG1hY3JvKFJlZ0V4cENvbnN0cnVjdG9yX2NhY2hlZFJlc3VsdF9yZWlmaWVkLCBS
ZWdFeHBDb25zdHJ1Y3Rvcjo6b2Zmc2V0T2ZDYWNoZWRSZXN1bHQoKSArIFJlZ0V4cENhY2hlZFJl
c3VsdDo6b2Zmc2V0T2ZSZWlmaWVkKCkpIFwKKyAgICBtYWNybyhSZWdFeHBPYmplY3RfcmVnRXhw
LCBSZWdFeHBPYmplY3Q6Om9mZnNldE9mUmVnRXhwKCkpIFwKICAgICBtYWNybyhSZWdFeHBPYmpl
Y3RfbGFzdEluZGV4LCBSZWdFeHBPYmplY3Q6Om9mZnNldE9mTGFzdEluZGV4KCkpIFwKICAgICBt
YWNybyhSZWdFeHBPYmplY3RfbGFzdEluZGV4SXNXcml0YWJsZSwgUmVnRXhwT2JqZWN0OjpvZmZz
ZXRPZkxhc3RJbmRleElzV3JpdGFibGUoKSkgXAogICAgIG1hY3JvKFNoYWRvd0NoaWNrZW5fUGFj
a2V0X2NhbGxlZSwgT0JKRUNUX09GRlNFVE9GKFNoYWRvd0NoaWNrZW46OlBhY2tldCwgY2FsbGVl
KSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmlu
ZGV4IDNlMzFhMjI5MDc2N2Y2NjkxZWQ3Yjk1Y2IzOWM0NDVmOTQ3NzQxNzIuLmQwZjc2OGU0NGEy
YjFmODk4MzIxZTFkMjQzNjQxMGFmYmEwYzM2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTc4LDYgKzc4LDcgQEAKICNpbmNsdWRlICJK
U0xleGljYWxFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIkpTTWFwLmgiCiAjaW5jbHVkZSAiT3Bl
cmFuZHNJbmxpbmVzLmgiCisjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2Nv
cGVkQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NvcGVkQXJndW1lbnRzVGFibGUuaCIKICNpbmNs
dWRlICJTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuaCIKQEAgLTEwMjY1LDEyICsxMDI2Niw0NyBA
QCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgIHsKICAgICAgICAgRnJvemVuVmFsdWUqIHJlZ2V4
cCA9IG1fbm9kZS0+Y2VsbE9wZXJhbmQoKTsKICAgICAgICAgQVNTRVJUKHJlZ2V4cC0+Y2VsbCgp
LT5pbmhlcml0cyh2bSgpLCBSZWdFeHA6OmluZm8oKSkpOwotICAgICAgICBMVmFsdWUgcmVzdWx0
ID0gdm1DYWxsKAotICAgICAgICAgICAgcG9pbnRlclR5cGUoKSwKLSAgICAgICAgICAgIG1fb3V0
Lm9wZXJhdGlvbihvcGVyYXRpb25OZXdSZWdleHApLCBtX2NhbGxGcmFtZSwKLSAgICAgICAgICAg
IGZyb3plblBvaW50ZXIocmVnZXhwKSk7Ci0gICAgICAgIAotICAgICAgICBzZXRKU1ZhbHVlKHJl
c3VsdCk7CisKKyAgICAgICAgLy8gRklYTUU6IElmIHRoZSBSZWdFeHAgaXMgaW52YWxpZCwgd2Ug
c2hvdWxkIGVtaXQgYSBkaWZmZXJlbnQgYnl0ZWNvZGUuCisgICAgICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5NzAKKyAgICAgICAgaWYgKCFtX25vZGUt
PmNhc3RPcGVyYW5kPFJlZ0V4cCo+KCktPmlzVmFsaWQoKSkgeworICAgICAgICAgICAgTFZhbHVl
IHJlc3VsdCA9IHZtQ2FsbCgKKyAgICAgICAgICAgICAgICBwb2ludGVyVHlwZSgpLAorICAgICAg
ICAgICAgICAgIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25OZXdSZWdleHApLCBtX2NhbGxGcmFt
ZSwKKyAgICAgICAgICAgICAgICBmcm96ZW5Qb2ludGVyKHJlZ2V4cCkpOworCisgICAgICAgICAg
ICBzZXRKU1ZhbHVlKHJlc3VsdCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBMQmFzaWNCbG9jayBzbG93Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAg
IExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisKKyAgICAgICAg
TEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5pbnNlcnROZXdCbG9ja3NCZWZvcmUoc2xvd0Nh
c2UpOworCisgICAgICAgIGF1dG8gc3RydWN0dXJlID0gbV9ncmFwaC5yZWdpc3RlclN0cnVjdHVy
ZShtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX25vZGUtPm9yaWdpbi5zZW1hbnRpYyktPnJlZ0V4
cFN0cnVjdHVyZSgpKTsKKyAgICAgICAgTFZhbHVlIGZhc3RSZXN1bHRWYWx1ZSA9IGFsbG9jYXRl
T2JqZWN0PFJlZ0V4cE9iamVjdD4oc3RydWN0dXJlLCBtX291dC5pbnRQdHJaZXJvLCBtX291dC5p
bnQzMlplcm8sIHNsb3dDYXNlKTsKKyAgICAgICAgbV9vdXQuc3RvcmVQdHIoZnJvemVuUG9pbnRl
cihyZWdleHApLCBmYXN0UmVzdWx0VmFsdWUsIG1faGVhcHMuUmVnRXhwT2JqZWN0X3JlZ0V4cCk7
CisgICAgICAgIG1fb3V0LnN0b3JlNjQobV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoMCkpKSwgZmFzdFJlc3VsdFZhbHVlLCBtX2hlYXBzLlJlZ0V4cE9iamVjdF9sYXN0
SW5kZXgpOworICAgICAgICBtX291dC5zdG9yZTMyQXM4KG1fb3V0LmNvbnN0SW50MzIodHJ1ZSks
IG1fb3V0LmFkZHJlc3MoZmFzdFJlc3VsdFZhbHVlLCBtX2hlYXBzLlJlZ0V4cE9iamVjdF9sYXN0
SW5kZXhJc1dyaXRhYmxlKSk7CisgICAgICAgIG11dGF0b3JGZW5jZSgpOworICAgICAgICBWYWx1
ZUZyb21CbG9jayBmYXN0UmVzdWx0ID0gbV9vdXQuYW5jaG9yKGZhc3RSZXN1bHRWYWx1ZSk7Cisg
ICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKworICAgICAgICBtX291dC5hcHBlbmRU
byhzbG93Q2FzZSwgY29udGludWF0aW9uKTsKKyAgICAgICAgVk0mIHZtID0gdGhpcy0+dm0oKTsK
KyAgICAgICAgUmVnRXhwKiByZWdleHBDZWxsID0gcmVnZXhwLT5jYXN0PFJlZ0V4cCo+KCk7Cisg
ICAgICAgIExWYWx1ZSBzbG93UmVzdWx0VmFsdWUgPSBsYXp5U2xvd1BhdGgoCisgICAgICAgICAg
ICBbPSwgJnZtXSAoY29uc3QgVmVjdG9yPExvY2F0aW9uPiYgbG9jYXRpb25zKSAtPiBSZWZQdHI8
TGF6eVNsb3dQYXRoOjpHZW5lcmF0b3I+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRl
TGF6eUNhbGxHZW5lcmF0b3Iodm0sCisgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbk5ld1Jl
Z2V4cCwgbG9jYXRpb25zWzBdLmRpcmVjdEdQUigpLAorICAgICAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIocmVnZXhwQ2VsbCkpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3Ioc2xvd1Jlc3Vs
dFZhbHVlKTsKKyAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworCisgICAgICAgIG1f
b3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICBzZXRKU1ZhbHVl
KG1fb3V0LnBoaShwb2ludGVyVHlwZSgpLCBmYXN0UmVzdWx0LCBzbG93UmVzdWx0KSk7CiAgICAg
fQogCiAgICAgdm9pZCBjb21waWxlU2V0RnVuY3Rpb25OYW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IGZhNTQ0ZDI2MDBlODU0MzhjMzM4NDQw
NGEwNjc3ZGQyZGZlMDBjNGEuLmE3ZTE4Mzg4NTEzMDhmYjdjMDg0OWNjNjk2MzVkNDYzYmI3OWIx
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAt
MTI2Nyw2ICsxMjY3LDkgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25O
ZXdSZWdleHAoRXhlY1N0YXRlKiBleGVjLCB2b2lkKiByZWdleHBQdHIKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBSZWdFeHAqIHJlZ2V4cCA9IHN0YXRp
Y19jYXN0PFJlZ0V4cCo+KHJlZ2V4cFB0cik7CisKKyAgICAvLyBGSVhNRTogSWYgdGhlIFJlZ0V4
cCBpcyBpbnZhbGlkLCB3ZSBzaG91bGQgZW1pdCBhIGRpZmZlcmVudCBieXRlY29kZS4KKyAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwOTcwCiAgICAgaWYg
KCFyZWdleHAtPmlzVmFsaWQoKSkgewogICAgICAgICB0aHJvd0V4Y2VwdGlvbihleGVjLCBzY29w
ZSwgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgcmVnZXhwLT5lcnJvck1lc3NhZ2UoKSkpOwogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggZDdmM2I4N2Y1NDIw
ZWRjOGE3OTQyNjZlMGUyNjVhM2I1NjA5NzEwMi4uODI2NGIzYmY4YTg4MGFiNjRmYTUxMzU1MDNh
ZTczOGU1YThhNDMxMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRT
bG93UGF0aHMuY3BwCkBAIC01NTIsNiArNTUyLDkgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xv
d19wYXRoX25ld19yZWdleHApCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBSZWdFeHAqIHJl
Z0V4cCA9IGV4ZWMtPmNvZGVCbG9jaygpLT5yZWdleHAocGNbMl0udS5vcGVyYW5kKTsKKworICAg
IC8vIEZJWE1FOiBJZiB0aGUgUmVnRXhwIGlzIGludmFsaWQsIHdlIHNob3VsZCBlbWl0IGEgZGlm
ZmVyZW50IGJ5dGVjb2RlLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODA5NzAKICAgICBpZiAoIXJlZ0V4cC0+aXNWYWxpZCgpKQogICAgICAgICBMTElO
VF9USFJPVyhjcmVhdGVTeW50YXhFcnJvcihleGVjLCByZWdFeHAtPmVycm9yTWVzc2FnZSgpKSk7
CiAgICAgTExJTlRfUkVUVVJOKFJlZ0V4cE9iamVjdDo6Y3JlYXRlKHZtLCBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCktPnJlZ0V4cFN0cnVjdHVyZSgpLCByZWdFeHApKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggOGE4ZTliZDBjYzc1NzU4
NzE5OTQyOGFkYTQ1N2JhNDZiODBhZmY0MC4uMWQ1NDM5NzI2Zjg1NTNjMTgyNTEwYjM4ZDI5OGZj
ZTNiOWQ2NGQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2Jq
ZWN0LmgKQEAgLTg4LDYgKzg4LDExIEBAIGNsYXNzIFJlZ0V4cE9iamVjdCA6IHB1YmxpYyBKU05v
bkZpbmFsT2JqZWN0IHsKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oUmVnRXhwT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZS
ZWdFeHAoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihSZWdFeHBPYmpl
Y3QsIG1fcmVnRXhwKTsKKyAgICB9CisKICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mTGFz
dEluZGV4KCkKICAgICB7CiAgICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoUmVnRXhwT2Jq
ZWN0LCBtX2xhc3RJbmRleCk7CkBAIC05OCw2ICsxMDMsMTIgQEAgY2xhc3MgUmVnRXhwT2JqZWN0
IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNF
VE9GKFJlZ0V4cE9iamVjdCwgbV9sYXN0SW5kZXhJc1dyaXRhYmxlKTsKICAgICB9CiAKKyAgICBz
dGF0aWMgc2l6ZV90IGFsbG9jYXRpb25TaXplKENoZWNrZWQ8c2l6ZV90PiBpbmxpbmVDYXBhY2l0
eSkKKyAgICB7CisgICAgICAgIEFTU0VSVF9VTlVTRUQoaW5saW5lQ2FwYWNpdHksICFpbmxpbmVD
YXBhY2l0eSk7CisgICAgICAgIHJldHVybiBzaXplb2YoUmVnRXhwT2JqZWN0KTsKKyAgICB9CisK
ICAgICBzdGF0aWMgdW5zaWduZWQgYWR2YW5jZVN0cmluZ1VuaWNvZGUoU3RyaW5nLCB1bnNpZ25l
ZCBsZW5ndGgsIHVuc2lnbmVkIGN1cnJlbnRJbmRleCk7CiAKIHByb3RlY3RlZDoKQEAgLTExNyw3
ICsxMjgsNyBAQCBjbGFzcyBSZWdFeHBPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7
CiAKICAgICBXcml0ZUJhcnJpZXI8UmVnRXhwPiBtX3JlZ0V4cDsKICAgICBXcml0ZUJhcnJpZXI8
VW5rbm93bj4gbV9sYXN0SW5kZXg7Ci0gICAgYm9vbCBtX2xhc3RJbmRleElzV3JpdGFibGU7Cisg
ICAgdWludDhfdCBtX2xhc3RJbmRleElzV3JpdGFibGU7CiB9OwogCiBSZWdFeHBPYmplY3QqIGFz
UmVnRXhwT2JqZWN0KEpTVmFsdWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329756</attachid>
            <date>2017-12-19 04:55:27 -0800</date>
            <delta_ts>2017-12-19 11:13:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180960-20171219215526.patch</filename>
            <type>text/plain</type>
            <size>18568</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ZDIwMTFlMThhMDQ1NWYxZDExYzllODFlN2YwMmJhOTk5ODBlNGUwLi5jNTk3NmMwYTc4YjlhNGIz
ZTRjZjYyNzM0YzIzOTAyZTY0MjZmNGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAxNy0xMi0xOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbREZHXVtGVExdIE5ld1JlZ2V4cCBzaG91ZCBiZSBmYXN0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5NjAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHdlIGVuY291
bnRlciBSZWdFeHAgbGl0ZXJhbCBsaWtlIC9BQUEvZywgd2UgbmVlZCB0byBjcmVhdGUgYSBSZWdF
eHAgb2JqZWN0LgorICAgICAgICBUeXBpY2FsIGlkaW9tIGxpa2UgYHN0cmluZy5tYXRjaCgvcmVn
ZXhwLylgIHJlcXVpcmVzIFJlZ0V4cCBvYmplY3QgY3JlYXRpb24KKyAgICAgICAgZXZlcnkgdGlt
ZS4KKworICAgICAgICBBcyBhIGZpcnN0IHN0ZXAsIHRoaXMgcGF0Y2ggYWNjZWxlcmF0ZXMgUmVn
RXhwIG9iamVjdCBjcmVhdGlvbiBieSBoYW5kbGluZyBpdAorICAgICAgICBpbiBERkcgYW5kIEZU
TC4gSW4gYSBzdWJzZXF1ZW50IHBhdGNoLCB3ZSB3b3VsZCBsaWtlIHRvIGludHJvZHVjZSBQaGFu
dG9tTmV3UmVnZXhwCisgICAgICAgIHRvIHJlbW92ZSB1bm5lY2Vzc2FyeSBSZWdFeHAgb2JqZWN0
IGNyZWF0aW9ucy4KKworICAgICAgICBUaGlzIHBhdGNoIGltcHJvdmVzIFNpeFNwZWVkL3JlZ2V4
LXUue2VzNSxlczZ9LgorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFz
ZWxpbmUgICAgICAgICAgICAgICAgICBwYXRjaGVkCisKKyAgICAgICAgICAgIHJlZ2V4LXUuZXM1
ICAgICAgICAgIDY5LjY3NTkrLTMuMTk1MSAgICAgXiAgICAgNTMuMTQyNSstMi4wMjkyICAgICAg
ICBeIGRlZmluaXRlbHkgMS4zMTExeCBmYXN0ZXIKKyAgICAgICAgICAgIHJlZ2V4LXUuZXM2ICAg
ICAgICAgMTI5LjU0MTMrLTUuNDQzNyAgICAgXiAgICAxMDcuMjEwNSstNy43Nzc1ICAgICAgICBe
IGRlZmluaXRlbHkgMS4yMDgzeCBmYXN0ZXIKKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdS
ZWdleHApOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAg
KiBmdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oOgorICAgICAgICAqIGZ0bC9GVExMb3dl
ckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21w
aWxlTmV3UmVnZXhwKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJVElu
bGluZXMuaDoKKyAgICAgICAgKEpTQzo6SklUOjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiBq
aXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9uZXdfcmVnZXhw
KToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogaml0L0pJVE9w
ZXJhdGlvbnMuaDoKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5jcHA6CisgICAgICAg
IChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6CisgICAgICAgICogcnVudGltZS9S
ZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpvZmZzZXRPZlJlZ0V4
cCk6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6YWxsb2NhdGlvblNpemUpOgorCiAyMDE3
LTEyLTE3ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAg
IFtGVExdIE5ld0FycmF5QnVmZmVyIHNob3VsZCBiZSBzaW5rZWQgaWYgaXQgaXMgb25seSB1c2Vk
IGZvciBzcHJlYWRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKaW5kZXggYjcwOTkxYTM4MDZhZWE4ZmJiMWRiYmZjMzI1NTk5OTYxZGFhNjc1
NS4uZDYyZDA1MDE4MmNlMThlYzRiYzg4M2I0YjQ3MDgyZTUzNmM0NzQyNyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTkxMjIsNiAr
OTEyMiw1MCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3VHlwZWRBcnJheShOb2Rl
KiBub2RlKQogICAgIGNlbGxSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKIH0KIAordm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZU5ld1JlZ2V4cChOb2RlKiBub2RlKQoreworICAgIFJlZ0V4cCog
cmVnZXhwID0gbm9kZS0+Y2FzdE9wZXJhbmQ8UmVnRXhwKj4oKTsKKworICAgIC8vIEZJWE1FOiBJ
ZiB0aGUgUmVnRXhwIGlzIGludmFsaWQsIHdlIHNob3VsZCBlbWl0IGEgZGlmZmVyZW50IGJ5dGVj
b2RlLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5
NzAKKyAgICBpZiAoIXJlZ2V4cC0+aXNWYWxpZCgpKSB7CisgICAgICAgIGZsdXNoUmVnaXN0ZXJz
KCk7CisgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKKworICAgICAg
ICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbk5ld1JlZ2V4cCwgcmVzdWx0LmdwcigpLCByZWdleHAp
OworICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOworCisgICAgICAgIGNlbGxSZXN1bHQo
cmVzdWx0LmdwcigpLCBub2RlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEdQUlRl
bXBvcmFyeSByZXN1bHQodGhpcyk7CisgICAgR1BSVGVtcG9yYXJ5IHNjcmF0Y2gxKHRoaXMpOwor
ICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoMih0aGlzKTsKKworICAgIEdQUlJlZyByZXN1bHRHUFIg
PSByZXN1bHQuZ3ByKCk7CisgICAgR1BSUmVnIHNjcmF0Y2gxR1BSID0gc2NyYXRjaDEuZ3ByKCk7
CisgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gc2NyYXRjaDIuZ3ByKCk7CisKKyAgICBKSVRDb21w
aWxlcjo6SnVtcExpc3Qgc2xvd1BhdGg7CisKKyAgICBhdXRvIHN0cnVjdHVyZSA9IG1faml0Lmdy
YXBoKCkucmVnaXN0ZXJTdHJ1Y3R1cmUobV9qaXQuZ3JhcGgoKS5nbG9iYWxPYmplY3RGb3Iobm9k
ZS0+b3JpZ2luLnNlbWFudGljKS0+cmVnRXhwU3RydWN0dXJlKCkpOworICAgIGF1dG8gYnV0dGVy
Zmx5ID0gVHJ1c3RlZEltbVB0cihudWxscHRyKTsKKyAgICBhdXRvIG1hc2sgPSBUcnVzdGVkSW1t
MzIoMCk7CisgICAgZW1pdEFsbG9jYXRlSlNPYmplY3Q8UmVnRXhwT2JqZWN0PihyZXN1bHRHUFIs
IFRydXN0ZWRJbW1QdHIoc3RydWN0dXJlKSwgYnV0dGVyZmx5LCBtYXNrLCBzY3JhdGNoMUdQUiwg
c2NyYXRjaDJHUFIsIHNsb3dQYXRoKTsKKworICAgIG1faml0LnN0b3JlUHRyKAorICAgICAgICBU
cnVzdGVkSW1tUHRyKG5vZGUtPmNlbGxPcGVyYW5kKCkpLAorICAgICAgICBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MocmVzdWx0R1BSLCBSZWdFeHBPYmplY3Q6Om9mZnNldE9mUmVnRXhwKCkpKTsKKyAg
ICBtX2ppdC5zdG9yZVRydXN0ZWRWYWx1ZShqc051bWJlcigwKSwgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKHJlc3VsdEdQUiwgUmVnRXhwT2JqZWN0OjpvZmZzZXRPZkxhc3RJbmRleCgpKSk7CisgICAg
bV9qaXQuc3RvcmU4KFRydXN0ZWRJbW0zMih0cnVlKSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHJl
c3VsdEdQUiwgUmVnRXhwT2JqZWN0OjpvZmZzZXRPZkxhc3RJbmRleElzV3JpdGFibGUoKSkpOwor
ICAgIG1faml0Lm11dGF0b3JGZW5jZSgqbV9qaXQudm0oKSk7CisKKyAgICBhZGRTbG93UGF0aEdl
bmVyYXRvcihzbG93UGF0aENhbGwoc2xvd1BhdGgsIHRoaXMsIG9wZXJhdGlvbk5ld1JlZ2V4cCwg
cmVzdWx0R1BSLCByZWdleHApKTsKKworICAgIGNlbGxSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsK
K30KKwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRlQ2VsbFR5cGVXaXRob3V0VHlwZUZp
bHRlcmluZygKICAgICBFZGdlIGVkZ2UsIEdQUlJlZyBjZWxsR1BSLCBKU1R5cGUganNUeXBlKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4
IDk3NGZjNDFjODgzZTBlODc1MWIxNTNjMTdjOTViNTk3OWFlNWI4YjYuLjQ5N2MyODliZGNlZTRl
NTEyYWQxYzJhZDE1ODUyZGY4OWFhMGM5ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTI5OTksNiArMjk5OSw3IEBAIGNsYXNzIFNwZWN1
bGF0aXZlSklUIHsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2xhc3NUeXBlPiB2b2lkIGNvbXBp
bGVOZXdGdW5jdGlvbkNvbW1vbihHUFJSZWcsIFJlZ2lzdGVyZWRTdHJ1Y3R1cmUsIEdQUlJlZywg
R1BSUmVnLCBHUFJSZWcsIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdCYsIHNpemVfdCwgRnVuY3Rp
b25FeGVjdXRhYmxlKiwgcHRyZGlmZl90LCBwdHJkaWZmX3QsIHB0cmRpZmZfdCk7CiAgICAgdm9p
ZCBjb21waWxlTmV3RnVuY3Rpb24oTm9kZSopOwogICAgIHZvaWQgY29tcGlsZVNldEZ1bmN0aW9u
TmFtZShOb2RlKik7CisgICAgdm9pZCBjb21waWxlTmV3UmVnZXhwKE5vZGUqKTsKICAgICB2b2lk
IGNvbXBpbGVGb3J3YXJkVmFyYXJncyhOb2RlKik7CiAgICAgdm9pZCBjb21waWxlQ3JlYXRlQWN0
aXZhdGlvbihOb2RlKik7CiAgICAgdm9pZCBjb21waWxlQ3JlYXRlRGlyZWN0QXJndW1lbnRzKE5v
ZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwCmluZGV4IDkxMzcxN2JmMDVlZTcyY2RkZDU4ZGYwODc3M2JjYjIzY2ExMTIw
ZWMuLjAwN2VkNTA0OTQ0NDM1NDE0ZWZlM2NmMmM1NmRiOGYwYjg0MDNjOTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApA
QCAtNDAwMiwxNiArNDAwMiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSog
bm9kZSkKICAgICB9CiAgICAgICAgIAogICAgIGNhc2UgTmV3UmVnZXhwOiB7Ci0gICAgICAgIGZs
dXNoUmVnaXN0ZXJzKCk7Ci0gICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdFBheWxv
YWQodGhpcyk7Ci0gICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0MiByZXN1bHRUYWcodGhpcyk7
Ci0gICAgICAgIAotICAgICAgICBSZWdFeHAqIHJlZ2V4cCA9IG5vZGUtPmNhc3RPcGVyYW5kPFJl
Z0V4cCo+KCk7Ci0gICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uTmV3UmVnZXhwLCBKU1Zh
bHVlUmVncyhyZXN1bHRUYWcuZ3ByKCksIHJlc3VsdFBheWxvYWQuZ3ByKCkpLCByZWdleHApOwot
ICAgICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOwotICAgICAgICAKLSAgICAgICAgLy8gRklY
TUU6IG1ha2UgdGhlIGNhbGxPcGVyYXRpb24gYWJvdmUgZXhwbGljaXRseSByZXR1cm4gYSBjZWxs
IHJlc3VsdCwgb3Igaml0QXNzZXJ0IHRoZSB0YWcgaXMgYSBjZWxsIHRhZy4KLSAgICAgICAgY2Vs
bFJlc3VsdChyZXN1bHRQYXlsb2FkLmdwcigpLCBub2RlKTsKKyAgICAgICAgY29tcGlsZU5ld1Jl
Z2V4cChub2RlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAzN2YyYWFmODM1NjM2
OTM3MTQ5MTMyZGQzZGU0ZjZiZDZmZmU3YjU2Li4xMjIxNTgzMmRlZjU3YmZmZmU1NmM1ZmE0N2E1
MzA0NzAzMTJhY2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTQyMjAsMTQgKzQyMjAsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgfQogICAgICAgICAKICAgICBjYXNlIE5ld1Jl
Z2V4cDogewotICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwotICAgICAgICBHUFJGbHVzaGVkQ2Fs
bFJlc3VsdCByZXN1bHQodGhpcyk7Ci0gICAgICAgIAotICAgICAgICBSZWdFeHAqIHJlZ2V4cCA9
IG5vZGUtPmNhc3RPcGVyYW5kPFJlZ0V4cCo+KCk7Ci0gICAgICAgIGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uTmV3UmVnZXhwLCByZXN1bHQuZ3ByKCksIHJlZ2V4cCk7Ci0gICAgICAgIG1faml0LmV4
Y2VwdGlvbkNoZWNrKCk7Ci0gICAgICAgIAotICAgICAgICBjZWxsUmVzdWx0KHJlc3VsdC5ncHIo
KSwgbm9kZSk7CisgICAgICAgIGNvbXBpbGVOZXdSZWdleHAobm9kZSk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0
cmFjdEhlYXBSZXBvc2l0b3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3Ry
YWN0SGVhcFJlcG9zaXRvcnkuaAppbmRleCA1NmM5ODk0MDYyZDdlMzBmOTY5OGM4ZGFiZTIwYWQy
YjhiNTI4ZWZmLi45ODAwY2MzZmIzOTNhNzg3NDkwYzgzNWYzZDIzNWFhZGNkZTcyOTk2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRv
cnkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9z
aXRvcnkuaApAQCAtOTAsNiArOTAsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7
CiAgICAgbWFjcm8oUmVnRXhwQ29uc3RydWN0b3JfY2FjaGVkUmVzdWx0X3Jlc3VsdF9zdGFydCwg
UmVnRXhwQ29uc3RydWN0b3I6Om9mZnNldE9mQ2FjaGVkUmVzdWx0KCkgKyBSZWdFeHBDYWNoZWRS
ZXN1bHQ6Om9mZnNldE9mUmVzdWx0KCkgKyBPQkpFQ1RfT0ZGU0VUT0YoTWF0Y2hSZXN1bHQsIHN0
YXJ0KSkgXAogICAgIG1hY3JvKFJlZ0V4cENvbnN0cnVjdG9yX2NhY2hlZFJlc3VsdF9yZXN1bHRf
ZW5kLCBSZWdFeHBDb25zdHJ1Y3Rvcjo6b2Zmc2V0T2ZDYWNoZWRSZXN1bHQoKSArIFJlZ0V4cENh
Y2hlZFJlc3VsdDo6b2Zmc2V0T2ZSZXN1bHQoKSArIE9CSkVDVF9PRkZTRVRPRihNYXRjaFJlc3Vs
dCwgZW5kKSkgXAogICAgIG1hY3JvKFJlZ0V4cENvbnN0cnVjdG9yX2NhY2hlZFJlc3VsdF9yZWlm
aWVkLCBSZWdFeHBDb25zdHJ1Y3Rvcjo6b2Zmc2V0T2ZDYWNoZWRSZXN1bHQoKSArIFJlZ0V4cENh
Y2hlZFJlc3VsdDo6b2Zmc2V0T2ZSZWlmaWVkKCkpIFwKKyAgICBtYWNybyhSZWdFeHBPYmplY3Rf
cmVnRXhwLCBSZWdFeHBPYmplY3Q6Om9mZnNldE9mUmVnRXhwKCkpIFwKICAgICBtYWNybyhSZWdF
eHBPYmplY3RfbGFzdEluZGV4LCBSZWdFeHBPYmplY3Q6Om9mZnNldE9mTGFzdEluZGV4KCkpIFwK
ICAgICBtYWNybyhSZWdFeHBPYmplY3RfbGFzdEluZGV4SXNXcml0YWJsZSwgUmVnRXhwT2JqZWN0
OjpvZmZzZXRPZkxhc3RJbmRleElzV3JpdGFibGUoKSkgXAogICAgIG1hY3JvKFNoYWRvd0NoaWNr
ZW5fUGFja2V0X2NhbGxlZSwgT0JKRUNUX09GRlNFVE9GKFNoYWRvd0NoaWNrZW46OlBhY2tldCwg
Y2FsbGVlKSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCmluZGV4IDNlMzFhMjI5MDc2N2Y2NjkxZWQ3Yjk1Y2IzOWM0NDVmOTQ3NzQxNzIuLmQwZjc2
OGU0NGEyYjFmODk4MzIxZTFkMjQzNjQxMGFmYmEwYzM2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTc4LDYgKzc4LDcgQEAKICNpbmNs
dWRlICJKU0xleGljYWxFbnZpcm9ubWVudC5oIgogI2luY2x1ZGUgIkpTTWFwLmgiCiAjaW5jbHVk
ZSAiT3BlcmFuZHNJbmxpbmVzLmgiCisjaW5jbHVkZSAiUmVnRXhwT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiU2NvcGVkQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NvcGVkQXJndW1lbnRzVGFibGUuaCIK
ICNpbmNsdWRlICJTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IuaCIKQEAgLTEwMjY1LDEyICsxMDI2
Niw0NyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgIHsKICAgICAgICAgRnJvemVuVmFsdWUq
IHJlZ2V4cCA9IG1fbm9kZS0+Y2VsbE9wZXJhbmQoKTsKICAgICAgICAgQVNTRVJUKHJlZ2V4cC0+
Y2VsbCgpLT5pbmhlcml0cyh2bSgpLCBSZWdFeHA6OmluZm8oKSkpOwotICAgICAgICBMVmFsdWUg
cmVzdWx0ID0gdm1DYWxsKAotICAgICAgICAgICAgcG9pbnRlclR5cGUoKSwKLSAgICAgICAgICAg
IG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25OZXdSZWdleHApLCBtX2NhbGxGcmFtZSwKLSAgICAg
ICAgICAgIGZyb3plblBvaW50ZXIocmVnZXhwKSk7Ci0gICAgICAgIAotICAgICAgICBzZXRKU1Zh
bHVlKHJlc3VsdCk7CisKKyAgICAgICAgLy8gRklYTUU6IElmIHRoZSBSZWdFeHAgaXMgaW52YWxp
ZCwgd2Ugc2hvdWxkIGVtaXQgYSBkaWZmZXJlbnQgYnl0ZWNvZGUuCisgICAgICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5NzAKKyAgICAgICAgaWYgKCFt
X25vZGUtPmNhc3RPcGVyYW5kPFJlZ0V4cCo+KCktPmlzVmFsaWQoKSkgeworICAgICAgICAgICAg
TFZhbHVlIHJlc3VsdCA9IHZtQ2FsbCgKKyAgICAgICAgICAgICAgICBwb2ludGVyVHlwZSgpLAor
ICAgICAgICAgICAgICAgIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25OZXdSZWdleHApLCBtX2Nh
bGxGcmFtZSwKKyAgICAgICAgICAgICAgICBmcm96ZW5Qb2ludGVyKHJlZ2V4cCkpOworCisgICAg
ICAgICAgICBzZXRKU1ZhbHVlKHJlc3VsdCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBMQmFzaWNCbG9jayBzbG93Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7Cisg
ICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisKKyAg
ICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291dC5pbnNlcnROZXdCbG9ja3NCZWZvcmUo
c2xvd0Nhc2UpOworCisgICAgICAgIGF1dG8gc3RydWN0dXJlID0gbV9ncmFwaC5yZWdpc3RlclN0
cnVjdHVyZShtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihtX25vZGUtPm9yaWdpbi5zZW1hbnRpYykt
PnJlZ0V4cFN0cnVjdHVyZSgpKTsKKyAgICAgICAgTFZhbHVlIGZhc3RSZXN1bHRWYWx1ZSA9IGFs
bG9jYXRlT2JqZWN0PFJlZ0V4cE9iamVjdD4oc3RydWN0dXJlLCBtX291dC5pbnRQdHJaZXJvLCBt
X291dC5pbnQzMlplcm8sIHNsb3dDYXNlKTsKKyAgICAgICAgbV9vdXQuc3RvcmVQdHIoZnJvemVu
UG9pbnRlcihyZWdleHApLCBmYXN0UmVzdWx0VmFsdWUsIG1faGVhcHMuUmVnRXhwT2JqZWN0X3Jl
Z0V4cCk7CisgICAgICAgIG1fb3V0LnN0b3JlNjQobV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjpl
bmNvZGUoanNOdW1iZXIoMCkpKSwgZmFzdFJlc3VsdFZhbHVlLCBtX2hlYXBzLlJlZ0V4cE9iamVj
dF9sYXN0SW5kZXgpOworICAgICAgICBtX291dC5zdG9yZTMyQXM4KG1fb3V0LmNvbnN0SW50MzIo
dHJ1ZSksIG1fb3V0LmFkZHJlc3MoZmFzdFJlc3VsdFZhbHVlLCBtX2hlYXBzLlJlZ0V4cE9iamVj
dF9sYXN0SW5kZXhJc1dyaXRhYmxlKSk7CisgICAgICAgIG11dGF0b3JGZW5jZSgpOworICAgICAg
ICBWYWx1ZUZyb21CbG9jayBmYXN0UmVzdWx0ID0gbV9vdXQuYW5jaG9yKGZhc3RSZXN1bHRWYWx1
ZSk7CisgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKworICAgICAgICBtX291dC5h
cHBlbmRUbyhzbG93Q2FzZSwgY29udGludWF0aW9uKTsKKyAgICAgICAgVk0mIHZtID0gdGhpcy0+
dm0oKTsKKyAgICAgICAgUmVnRXhwKiByZWdleHBDZWxsID0gcmVnZXhwLT5jYXN0PFJlZ0V4cCo+
KCk7CisgICAgICAgIExWYWx1ZSBzbG93UmVzdWx0VmFsdWUgPSBsYXp5U2xvd1BhdGgoCisgICAg
ICAgICAgICBbPSwgJnZtXSAoY29uc3QgVmVjdG9yPExvY2F0aW9uPiYgbG9jYXRpb25zKSAtPiBS
ZWZQdHI8TGF6eVNsb3dQYXRoOjpHZW5lcmF0b3I+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4g
Y3JlYXRlTGF6eUNhbGxHZW5lcmF0b3Iodm0sCisgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlv
bk5ld1JlZ2V4cCwgbG9jYXRpb25zWzBdLmRpcmVjdEdQUigpLAorICAgICAgICAgICAgICAgICAg
ICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIocmVnZXhwQ2VsbCkpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3Ioc2xv
d1Jlc3VsdFZhbHVlKTsKKyAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworCisgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICBzZXRK
U1ZhbHVlKG1fb3V0LnBoaShwb2ludGVyVHlwZSgpLCBmYXN0UmVzdWx0LCBzbG93UmVzdWx0KSk7
CiAgICAgfQogCiAgICAgdm9pZCBjb21waWxlU2V0RnVuY3Rpb25OYW1lKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5oCmluZGV4IGM4OGNiODJiNWYyYzQ0MTM0ZWUzODYzMjAxNDI4NDM4NmE0NDFhNWIu
LjdiMjg0YmY1ZTBkMTY5ZmVkNTYwYjMxZGJlNzE5NDc2YzIyZmU3ZDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaApAQCAtNzE5LDYgKzcxOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKENfSklUT3BlcmF0aW9uX0VMLCBHUFJS
ZWcpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKENfSklUT3Bl
cmF0aW9uX0VMLCBUcnVzdGVkSW1tUHRyKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihDX0pJVE9wZXJhdGlvbl9FU3QsIFN0cnVjdHVyZSopOworICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKENfSklUT3BlcmF0aW9uX0VDLCBKU0Nl
bGwqKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihDX0pJVE9w
ZXJhdGlvbl9FWiwgaW50MzJfdCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oWl9KSVRPcGVyYXRpb25fRUpaWiwgR1BSUmVnLCBpbnQzMl90LCBpbnQzMl90KTsK
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlv
bl9FLCBpbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxp
bmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAppbmRleCA0YzMx
MTFiYTZlOGUxOGZjZjcxMGJjY2I4Njc2ZTdkZWIzYjQ3YzVlLi5lMzVmZWNlNTcyYjUzODE1NWJm
N2IxM2NkMGYzZmE0NjlkOWZhNTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGlu
ZXMuaApAQCAtMjUzLDYgKzI1MywxMiBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihDX0pJVE9wZXJhdGlvbl9FU3Qgb3BlcmF0aQogICAgIHJl
dHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiB9CiAKK0FMV0FZ
U19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKENfSklUT3Bl
cmF0aW9uX0VDIG9wZXJhdGlvbiwgSlNDZWxsKiBjZWxsKQoreworICAgIHNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tUHRyKGNlbGwpKTsKKyAgICByZXR1cm4gYXBwZW5kQ2Fs
bFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworfQorCiBBTFdBWVNfSU5MSU5FIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihDX0pJVE9wZXJhdGlvbl9FWiBvcGVy
YXRpb24sIGludDMyX3QgYXJnKQogewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShU
cnVzdGVkSW1tMzIoYXJnKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cAppbmRleCA4NGU1NGMxNDAyOThmYzZmMzRlMGVjOWU0YjA1YTFmN2E0ZjE1MGZjLi40M2UzYjFl
ZDcwNmZmYzI5NDIyNjM3MDQ1MDAzYTdlMDMwMTg1MmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTkxMiw3ICs5MTIsOSBAQCB2b2lkIEpJVDo6ZW1pdFNs
b3dfb3BfY2hlY2tfdHJhcHMoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0
ZXJhdG9yJgogCiB2b2lkIEpJVDo6ZW1pdF9vcF9uZXdfcmVnZXhwKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiB7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25OZXdSZWdleHAs
IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIG1fY29kZUJsb2NrLT5yZWdleHAoY3Vy
cmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOworICAgIGludCBkc3QgPSBjdXJyZW50SW5z
dHJ1Y3Rpb25bMV0udS5vcGVyYW5kOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uTmV3UmVn
ZXhwLCBtX2NvZGVCbG9jay0+cmVnZXhwKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQp
KTsKKyAgICBlbWl0U3RvcmVDZWxsKGRzdCwgcmV0dXJuVmFsdWVHUFIpOwogfQogCiB2b2lkIEpJ
VDo6ZW1pdE5ld0Z1bmNDb21tb24oSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IGZhNTQ0ZDI2
MDBlODU0MzhjMzM4NDQwNGEwNjc3ZGQyZGZlMDBjNGEuLjc5ZDNjOWUzY2M0ZDdhYTUyMTMyMzJl
ZjA5NDllMDhmZDgxYWEwMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmNwcApAQCAtMTI1OSw3ICsxMjU5LDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbk5ld09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlKQog
ICAgIHJldHVybiBjb25zdHJ1Y3RFbXB0eU9iamVjdChleGVjLCBzdHJ1Y3R1cmUpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld1JlZ2V4cChFeGVjU3RhdGUq
IGV4ZWMsIHZvaWQqIHJlZ2V4cFB0cikKK0pTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25O
ZXdSZWdleHAoRXhlY1N0YXRlKiBleGVjLCBKU0NlbGwqIHJlZ2V4cFB0cikKIHsKICAgICBTdXBl
clNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKQEAgLTEyNjcsMTIgKzEyNjcsMTUgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25OZXdSZWdleHAoRXhlY1N0YXRlKiBleGVjLCB2b2lkKiByZWdleHBQdHIK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBSZWdFeHAq
IHJlZ2V4cCA9IHN0YXRpY19jYXN0PFJlZ0V4cCo+KHJlZ2V4cFB0cik7CisKKyAgICAvLyBGSVhN
RTogSWYgdGhlIFJlZ0V4cCBpcyBpbnZhbGlkLCB3ZSBzaG91bGQgZW1pdCBhIGRpZmZlcmVudCBi
eXRlY29kZS4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgwOTcwCiAgICAgaWYgKCFyZWdleHAtPmlzVmFsaWQoKSkgewogICAgICAgICB0aHJvd0V4Y2Vw
dGlvbihleGVjLCBzY29wZSwgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgcmVnZXhwLT5lcnJvck1l
c3NhZ2UoKSkpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKFJlZ0V4cE9iamVjdDo6Y3JlYXRlKHZtLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCktPnJlZ0V4cFN0cnVjdHVyZSgpLCByZWdleHApKTsKKyAgICByZXR1cm4gUmVnRXhwT2JqZWN0
OjpjcmVhdGUodm0sIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cmVnRXhwU3RydWN0dXJl
KCksIHJlZ2V4cCk7CiB9CiAKIC8vIFRoZSBvbmx5IHJlYXNvbiBmb3IgcmV0dXJuaW5nIGFuIFVu
dXNlZFB0ciAoaW5zdGVhZCBvZiB2b2lkKSBpcyBzbyB0aGF0IHdlIGNhbiByZXVzZSB0aGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXggNzQ3OTE0NjczOTU3
OTFmYjI4Mjg3ZTdmNzhmMzk2MmM2OTgxYzQ5NS4uZmMwYTE1ZDc2YmQ2NmQ2OTVmMjA5MjMzMzky
OTA4NDJmNWIwN2I2MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmgKQEAgLTQwNCw3ICs0MDQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbk5ld0FzeW5jR2VuZXJhdG9yRnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNTYwogRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdBc3luY0dlbmVyYXRvckZ1bmN0aW9uV2l0
aEludmFsaWRhdGVkUmVhbGxvY2F0aW9uV2F0Y2hwb2ludChFeGVjU3RhdGUqLCBKU1Njb3BlKiwg
SlNDZWxsKikgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNldEZ1
bmN0aW9uTmFtZShFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVS
TkFMOwogSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld09iamVjdChFeGVjU3RhdGUq
LCBTdHJ1Y3R1cmUqKSBXVEZfSU5URVJOQUw7Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbk5ld1JlZ2V4cChFeGVjU3RhdGUqLCB2b2lkKikgV1RGX0lOVEVSTkFMOworSlND
ZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld1JlZ2V4cChFeGVjU3RhdGUqLCBKU0NlbGwq
KSBXVEZfSU5URVJOQUw7CiBVbnVzZWRQdHIgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYW5kbGVU
cmFwcyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVGhyb3coRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25EZWJ1ZyhFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5U
RVJOQUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNw
cAppbmRleCBkN2YzYjg3ZjU0MjBlZGM4YTc5NDI2NmUwZTI2NWEzYjU2MDk3MTAyLi44MjY0YjNi
ZjhhODgwYWI2NGZhNTEzNTUwM2FlNzM4ZTVhOGE0MzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTU1Miw2ICs1NTIsOSBAQCBMTElO
VF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfbmV3X3JlZ2V4cCkKIHsKICAgICBMTElOVF9CRUdJ
TigpOwogICAgIFJlZ0V4cCogcmVnRXhwID0gZXhlYy0+Y29kZUJsb2NrKCktPnJlZ2V4cChwY1sy
XS51Lm9wZXJhbmQpOworCisgICAgLy8gRklYTUU6IElmIHRoZSBSZWdFeHAgaXMgaW52YWxpZCwg
d2Ugc2hvdWxkIGVtaXQgYSBkaWZmZXJlbnQgYnl0ZWNvZGUuCisgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDk3MAogICAgIGlmICghcmVnRXhwLT5pc1Zh
bGlkKCkpCiAgICAgICAgIExMSU5UX1RIUk9XKGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsIHJlZ0V4
cC0+ZXJyb3JNZXNzYWdlKCkpKTsKICAgICBMTElOVF9SRVRVUk4oUmVnRXhwT2JqZWN0OjpjcmVh
dGUodm0sIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cmVnRXhwU3RydWN0dXJlKCksIHJl
Z0V4cCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaApp
bmRleCA4YThlOWJkMGNjNzU3NTg3MTk5NDI4YWRhNDU3YmE0NmI4MGFmZjQwLi4xZDU0Mzk3MjZm
ODU1M2MxODI1MTBiMzhkMjk4ZmNlM2I5ZDY0ZDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBPYmplY3QuaApAQCAtODgsNiArODgsMTEgQEAgY2xhc3MgUmVnRXhw
T2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhSZWdFeHBP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCisgICAgc3RhdGlj
IHB0cmRpZmZfdCBvZmZzZXRPZlJlZ0V4cCgpCisgICAgeworICAgICAgICByZXR1cm4gT0JKRUNU
X09GRlNFVE9GKFJlZ0V4cE9iamVjdCwgbV9yZWdFeHApOworICAgIH0KKwogICAgIHN0YXRpYyBw
dHJkaWZmX3Qgb2Zmc2V0T2ZMYXN0SW5kZXgoKQogICAgIHsKICAgICAgICAgcmV0dXJuIE9CSkVD
VF9PRkZTRVRPRihSZWdFeHBPYmplY3QsIG1fbGFzdEluZGV4KTsKQEAgLTk4LDYgKzEwMywxMiBA
QCBjbGFzcyBSZWdFeHBPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgICAg
IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoUmVnRXhwT2JqZWN0LCBtX2xhc3RJbmRleElzV3JpdGFi
bGUpOwogICAgIH0KIAorICAgIHN0YXRpYyBzaXplX3QgYWxsb2NhdGlvblNpemUoQ2hlY2tlZDxz
aXplX3Q+IGlubGluZUNhcGFjaXR5KQorICAgIHsKKyAgICAgICAgQVNTRVJUX1VOVVNFRChpbmxp
bmVDYXBhY2l0eSwgIWlubGluZUNhcGFjaXR5KTsKKyAgICAgICAgcmV0dXJuIHNpemVvZihSZWdF
eHBPYmplY3QpOworICAgIH0KKwogICAgIHN0YXRpYyB1bnNpZ25lZCBhZHZhbmNlU3RyaW5nVW5p
Y29kZShTdHJpbmcsIHVuc2lnbmVkIGxlbmd0aCwgdW5zaWduZWQgY3VycmVudEluZGV4KTsKIAog
cHJvdGVjdGVkOgpAQCAtMTE3LDcgKzEyOCw3IEBAIGNsYXNzIFJlZ0V4cE9iamVjdCA6IHB1Ymxp
YyBKU05vbkZpbmFsT2JqZWN0IHsKIAogICAgIFdyaXRlQmFycmllcjxSZWdFeHA+IG1fcmVnRXhw
OwogICAgIFdyaXRlQmFycmllcjxVbmtub3duPiBtX2xhc3RJbmRleDsKLSAgICBib29sIG1fbGFz
dEluZGV4SXNXcml0YWJsZTsKKyAgICB1aW50OF90IG1fbGFzdEluZGV4SXNXcml0YWJsZTsKIH07
CiAKIFJlZ0V4cE9iamVjdCogYXNSZWdFeHBPYmplY3QoSlNWYWx1ZSk7Cg==
</data>
<flag name="review"
          id="348803"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>