<?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>230311</bug_id>
          
          <creation_ts>2021-09-15 11:03:24 -0700</creation_ts>
          <short_desc>Use std::optional for truncation</short_desc>
          <delta_ts>2021-09-16 03:33:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1793758</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-15 11:03:24 -0700</bug_when>
    <thetext>Remove constants</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793768</commentid>
    <comment_count>1</comment_count>
      <attachid>438262</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-15 11:17:47 -0700</bug_when>
    <thetext>Created attachment 438262
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793771</commentid>
    <comment_count>2</comment_count>
      <attachid>438263</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-15 11:19:55 -0700</bug_when>
    <thetext>Created attachment 438263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793792</commentid>
    <comment_count>3</comment_count>
      <attachid>438263</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-09-15 11:55:20 -0700</bug_when>
    <thetext>Comment on attachment 438263
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=438263&amp;action=review

&gt; Source/WebCore/rendering/LegacyInlineTextBox.h:70
&gt; +    auto truncation() const { return m_truncation; }

🤯</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793968</commentid>
    <comment_count>4</comment_count>
      <attachid>438323</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-16 00:35:17 -0700</bug_when>
    <thetext>Created attachment 438323
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793995</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-16 03:32:34 -0700</bug_when>
    <thetext>Committed r282530 (241741@main): &lt;https://commits.webkit.org/241741@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438323.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793996</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-16 03:33:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/83190577&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438262</attachid>
            <date>2021-09-15 11:17:47 -0700</date>
            <delta_ts>2021-09-15 11:19:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230311-20210915211746.patch</filename>
            <type>text/plain</type>
            <size>16379</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNDUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWJkM2Y1M2Q4MDNkMjk2
YjEwNThmZTgyYzAwMTQ4ZjdlMWFiMmVkYS4uNTE2YjVjMDdiMWVkMWNiZmJiZGQwYTM3ZWY0YTdi
NWFiZGEwYzk4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIxLTA5LTE1ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc3RkOjpvcHRpb25h
bCBmb3IgdHJ1bmNhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMwMzExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVwbGFjZSB0aGUgY29uc3RhbnRzLgorICAgICAgICBVc2UgMCB0cnVuY2F0aW9u
IHZhbHVlIGZvciAiZnVsbCIgdHJ1bmNhdGlvbi4KKworICAgICAgICAqIHJlbmRlcmluZy9MZWdh
Y3lFbGxpcHNpc0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lFbGxpcHNpc0JveDo6
c2VsZWN0aW9uU3RhdGUgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9MZWdhY3lJbmxpbmVU
ZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUlubGluZVRleHRCb3g6OnBsYWNl
RWxsaXBzaXNCb3gpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5SW5saW5lVGV4dEJveDo6bm9k
ZUF0UG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5SW5saW5lVGV4dEJveDo6cGFpbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5SW5saW5lVGV4dEJveDo6c2VsZWN0YWJsZVJhbmdl
IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvTGVnYWN5SW5saW5lVGV4dEJveC5oOgorICAg
ICAgICAoV2ViQ29yZTo6TGVnYWN5SW5saW5lVGV4dEJveDo6dHJ1bmNhdGlvbiBjb25zdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZWxs
aXBzaXNSZWN0Rm9yVGV4dFJ1bik6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRCb3hQYWludGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRCb3hQYWludGVyOjpwYWludEZvcmVncm91bmRB
bmREZWNvcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Qm94UGFpbnRlcjo6cGFpbnRE
ZWNvcmF0aW9uKToKKworICAgICAgICBSZW1vdmUgdmFyaW91cyBmdWxsIHRydW5jYXRpb24gY2hl
Y2tzLiBaZXJvIHRydW5jYXRpb24gdmFsdWUgd2lsbCBtYWtlIHRoZW0gbm90IHBhaW50IHdpdGhv
dXQgbmVlZGluZyBleHRyYSBjaGVja3MuCisKKyAgICAgICAgKFdlYkNvcmU6OlRleHRCb3hQYWlu
dGVyOjpwYWludENvbXBvc2l0aW9uVW5kZXJsaW5lcyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
Qm94UGFpbnRlcjo6cGFpbnRDb21wb3NpdGlvblVuZGVybGluZSk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0Qm94UGFpbnRlcjo6cGFpbnRQbGF0Zm9ybURvY3VtZW50TWFya2VyKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRCb3hQYWludGVyOjpjb21wdXRlUGFpbnRSZWN0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
SW5saW5lVGV4dEJveDo6cGFpbnRTZWxlY3Rpb25CYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0lubGluZVRleHRCb3g6OnBhaW50KToKKwogMjAyMS0wOS0xNSAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIFRleHRC
b3hTZWxlY3RhYmxlUmFuZ2U6OmFkZGl0aW9uYWxMZW5ndGhBdEVuZCBtaXNjb21wdXRlZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUVsbGlwc2lzQm94LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lFbGxpcHNpc0JveC5jcHAKaW5kZXggZWZm
MmYyNTE5MGUxYzM3Y2Q3ZTRiZjgxY2JjZDhhM2Q1Mzk3MTQyOC4uMTgwYjZkYjU2ZTViZDhjYWRl
NDFiOWEzNTY5MWI4NTNmNTkxY2FmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xlZ2FjeUVsbGlwc2lzQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
TGVnYWN5RWxsaXBzaXNCb3guY3BwCkBAIC0xNzgsOCArMTc4LDEyIEBAIFJlbmRlck9iamVjdDo6
SGlnaGxpZ2h0U3RhdGUgTGVnYWN5RWxsaXBzaXNCb3g6OnNlbGVjdGlvblN0YXRlKCkgY29uc3QK
IAogICAgIGF1dG8mIHRleHRCb3ggPSBkb3duY2FzdDxMZWdhY3lJbmxpbmVUZXh0Qm94PigqbGFz
dFNlbGVjdGVkQm94KTsKIAorICAgIGF1dG8gdHJ1bmNhdGlvbk9mZnNldCA9IHRleHRCb3gudHJ1
bmNhdGlvbigpOworICAgIGlmICghdHJ1bmNhdGlvbk9mZnNldCB8fCAhKnRydW5jYXRpb25PZmZz
ZXQpCisgICAgICAgIHJldHVybiBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpOb25lOwor
CiAgICAgYXV0byBbc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZF0gPSB0ZXh0Qm94LnNlbGVj
dGlvblN0YXJ0RW5kKCk7Ci0gICAgaWYgKHNlbGVjdGlvbkVuZCA+PSB0ZXh0Qm94LnRydW5jYXRp
b24oKSAmJiBzZWxlY3Rpb25TdGFydCA8PSB0ZXh0Qm94LnRydW5jYXRpb24oKSkKKyAgICBpZiAo
c2VsZWN0aW9uRW5kID49ICp0cnVuY2F0aW9uT2Zmc2V0ICYmIHNlbGVjdGlvblN0YXJ0IDw9ICp0
cnVuY2F0aW9uT2Zmc2V0KQogICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRT
dGF0ZTo6SW5zaWRlOwogCiAgICAgcmV0dXJuIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6
Ok5vbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5l
VGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lVGV4dEJv
eC5jcHAKaW5kZXggNTZkYzBmYzA3ZTI5MDZmNzBlZjRkNjJkNTk5MmIxYmI0ODQ5NjQ2Zi4uMWZk
MWIzZmYwY2U2OTVmY2NiZGQ5ZjBhOTljNWQyM2NjMTNjM2EwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVUZXh0Qm94LmNwcApAQCAtNjksOSArNjksOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoTGVnYWN5
SW5saW5lVGV4dEJveCk7CiAKIHN0cnVjdCBTYW1lU2l6ZUFzTGVnYWN5SW5saW5lVGV4dEJveCA6
IHB1YmxpYyBMZWdhY3lJbmxpbmVCb3ggewotICAgIHVuc2lnbmVkIHZhcmlhYmxlc1sxXTsKLSAg
ICB1bnNpZ25lZCBzaG9ydCB2YXJpYWJsZXMyWzJdOwogICAgIHZvaWQqIHBvaW50ZXJzWzJdOwor
ICAgIHVuc2lnbmVkIHZhcmlhYmxlc1syXTsKKyAgICB1bnNpZ25lZCBzaG9ydCB2YXJpYWJsZXMy
OwogfTsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKExlZ2FjeUlubGluZVRleHRCb3gpID09IHNp
emVvZihTYW1lU2l6ZUFzTGVnYWN5SW5saW5lVGV4dEJveCksIExlZ2FjeUlubGluZVRleHRCb3hf
c2hvdWxkX3N0YXlfc21hbGwpOwpAQCAtMjM0LDcgKzIzNCw3IEBAIHZvaWQgTGVnYWN5SW5saW5l
VGV4dEJveDo6YXR0YWNoTGluZSgpCiBmbG9hdCBMZWdhY3lJbmxpbmVUZXh0Qm94OjpwbGFjZUVs
bGlwc2lzQm94KGJvb2wgZmxvd0lzTFRSLCBmbG9hdCB2aXNpYmxlTGVmdEVkZ2UsIGZsb2F0IHZp
c2libGVSaWdodEVkZ2UsIGZsb2F0IGVsbGlwc2lzV2lkdGgsIGZsb2F0ICZ0cnVuY2F0ZWRXaWR0
aCwgYm9vbCYgZm91bmRCb3gpCiB7CiAgICAgaWYgKGZvdW5kQm94KSB7Ci0gICAgICAgIG1fdHJ1
bmNhdGlvbiA9IGNGdWxsVHJ1bmNhdGlvbjsKKyAgICAgICAgbV90cnVuY2F0aW9uID0gMDsKICAg
ICAgICAgcmV0dXJuIC0xOwogICAgIH0KIApAQCAtMjQ4LDcgKzI0OCw3IEBAIGZsb2F0IExlZ2Fj
eUlubGluZVRleHRCb3g6OnBsYWNlRWxsaXBzaXNCb3goYm9vbCBmbG93SXNMVFIsIGZsb2F0IHZp
c2libGVMZWZ0RWRnCiAgICAgYm9vbCBydGxGdWxsVHJ1bmNhdGlvbiA9ICFmbG93SXNMVFIgJiYg
ZWxsaXBzaXNYID49IGxlZnQoKSArIGxvZ2ljYWxXaWR0aCgpOwogICAgIGlmIChsdHJGdWxsVHJ1
bmNhdGlvbiB8fCBydGxGdWxsVHJ1bmNhdGlvbikgewogICAgICAgICAvLyBUb28gZmFyLiBKdXN0
IHNldCBmdWxsIHRydW5jYXRpb24sIGJ1dCByZXR1cm4gLTEgYW5kIGxldCB0aGUgZWxsaXBzaXMg
anVzdCBiZSBwbGFjZWQgYXQgdGhlIGVkZ2Ugb2YgdGhlIGJveC4KLSAgICAgICAgbV90cnVuY2F0
aW9uID0gY0Z1bGxUcnVuY2F0aW9uOworICAgICAgICBtX3RydW5jYXRpb24gPSAwOwogICAgICAg
ICBmb3VuZEJveCA9IHRydWU7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CkBAIC0yNzIsNyAr
MjcyLDcgQEAgZmxvYXQgTGVnYWN5SW5saW5lVGV4dEJveDo6cGxhY2VFbGxpcHNpc0JveChib29s
IGZsb3dJc0xUUiwgZmxvYXQgdmlzaWJsZUxlZnRFZGcKICAgICAgICAgaWYgKCFvZmZzZXQpIHsK
ICAgICAgICAgICAgIC8vIE5vIGNoYXJhY3RlcnMgc2hvdWxkIGJlIHJlbmRlcmVkLiBTZXQgb3Vy
c2VsdmVzIHRvIGZ1bGwgdHJ1bmNhdGlvbiBhbmQgcGxhY2UgdGhlIGVsbGlwc2lzIGF0IHRoZSBt
aW4gb2Ygb3VyIHN0YXJ0CiAgICAgICAgICAgICAvLyBhbmQgdGhlIGVsbGlwc2lzIGVkZ2UuCi0g
ICAgICAgICAgICBtX3RydW5jYXRpb24gPSBjRnVsbFRydW5jYXRpb247CisgICAgICAgICAgICBt
X3RydW5jYXRpb24gPSAwOwogICAgICAgICAgICAgdHJ1bmNhdGVkV2lkdGggKz0gZWxsaXBzaXNX
aWR0aDsKICAgICAgICAgICAgIHJldHVybiBmbG93SXNMVFIgPyBzdGQ6Om1pbihlbGxpcHNpc1gs
IHgoKSkgOiBzdGQ6Om1heChlbGxpcHNpc1gsIHJpZ2h0KCkgLSBlbGxpcHNpc1dpZHRoKTsKICAg
ICAgICAgfQpAQCAtMzEzLDEzICszMTMsMTMgQEAgYm9vbCBMZWdhY3lJbmxpbmVUZXh0Qm94Ojpu
b2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3UKICAg
ICBpZiAoaXNMaW5lQnJlYWsoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG1f
dHJ1bmNhdGlvbiA9PSBjRnVsbFRydW5jYXRpb24pCisgICAgaWYgKG1fdHJ1bmNhdGlvbiAmJiAh
Km1fdHJ1bmNhdGlvbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgRmxvYXRSZWN0IHJl
Y3QobG9jYXRpb25JbmNsdWRpbmdGbGlwcGluZygpLCBzaXplKCkpOwogICAgIC8vIE1ha2Ugc3Vy
ZSB0cnVuY2F0ZWQgdGV4dCBpcyBpZ25vcmVkIHdoaWxlIGhpdHRlc3RpbmcuCi0gICAgaWYgKG1f
dHJ1bmNhdGlvbiAhPSBjTm9UcnVuY2F0aW9uKSB7Ci0gICAgICAgIExheW91dFVuaXQgd2lkdGhP
ZlZpc2libGVUZXh0IHsgcmVuZGVyZXIoKS53aWR0aChtX3N0YXJ0LCBtX3RydW5jYXRpb24sIHRl
eHRQb3MoKSwgaXNGaXJzdExpbmUoKSkgfTsKKyAgICBpZiAobV90cnVuY2F0aW9uKSB7CisgICAg
ICAgIExheW91dFVuaXQgd2lkdGhPZlZpc2libGVUZXh0IHsgcmVuZGVyZXIoKS53aWR0aChtX3N0
YXJ0LCAqbV90cnVuY2F0aW9uLCB0ZXh0UG9zKCksIGlzRmlyc3RMaW5lKCkpIH07CiAKICAgICAg
ICAgaWYgKGlzSG9yaXpvbnRhbCgpKQogICAgICAgICAgICAgcmVuZGVyZXIoKS5zdHlsZSgpLmlz
TGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IHJlY3Quc2V0V2lkdGgod2lkdGhPZlZpc2libGVUZXh0
KSA6IHJlY3Quc2hpZnRYRWRnZVRvKHJpZ2h0KCkgLSB3aWR0aE9mVmlzaWJsZVRleHQpOwpAQCAt
MzgxLDcgKzM4MSw3IEBAIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gTGVnYWN5SW5saW5lVGV4dEJveDo6
ZW1waGFzaXNNYXJrRXhpc3RzQW5kSXNBYm92ZShjb25zdCBSZW5kCiB2b2lkIExlZ2FjeUlubGlu
ZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYg
cGFpbnRPZmZzZXQsIExheW91dFVuaXQgLypsaW5lVG9wKi8sIExheW91dFVuaXQgLypsaW5lQm90
dG9tKi8pCiB7CiAgICAgaWYgKGlzTGluZUJyZWFrKCkgfHwgIXBhaW50SW5mby5zaG91bGRQYWlu
dFdpdGhpblJvb3QocmVuZGVyZXIoKSkgfHwgcmVuZGVyZXIoKS5zdHlsZSgpLnZpc2liaWxpdHko
KSAhPSBWaXNpYmlsaXR5OjpWaXNpYmxlCi0gICAgICAgIHx8IG1fdHJ1bmNhdGlvbiA9PSBjRnVs
bFRydW5jYXRpb24gfHwgcGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2U6Ok91dGxpbmUgfHwg
IWhhc1RleHRDb250ZW50KCkpCisgICAgICAgIHx8IChtX3RydW5jYXRpb24gJiYgISptX3RydW5j
YXRpb24pIHx8IHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlOjpPdXRsaW5lIHx8ICFoYXNU
ZXh0Q29udGVudCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQocGFpbnRJbmZvLnBo
YXNlICE9IFBhaW50UGhhc2U6OlNlbGZPdXRsaW5lICYmIHBhaW50SW5mby5waGFzZSAhPSBQYWlu
dFBoYXNlOjpDaGlsZE91dGxpbmVzKTsKQEAgLTQxNCwyMCArNDE0LDEyIEBAIFRleHRCb3hTZWxl
Y3RhYmxlUmFuZ2UgTGVnYWN5SW5saW5lVGV4dEJveDo6c2VsZWN0YWJsZVJhbmdlKCkgY29uc3QK
ICAgICAgICAgcmV0dXJuIDB1OwogICAgIH0oKTsKIAotICAgIGF1dG8gdHJ1bmNhdGlvbiA9IFsm
XSgpIC0+IHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IHsKLSAgICAgICAgaWYgKG1fdHJ1bmNhdGlv
biA9PSBjTm9UcnVuY2F0aW9uKQotICAgICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICAgICAgaWYg
KG1fdHJ1bmNhdGlvbiA9PSBjRnVsbFRydW5jYXRpb24pCi0gICAgICAgICAgICByZXR1cm4gc3Rk
OjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpOwotICAgICAgICByZXR1cm4gbV90cnVu
Y2F0aW9uOwotICAgIH0oKTsKLQogICAgIHJldHVybiB7CiAgICAgICAgIG1fc3RhcnQsCiAgICAg
ICAgIG1fbGVuLAogICAgICAgICBhZGRpdGlvbmFsTGVuZ3RoQXRFbmQsCiAgICAgICAgIGlzTGlu
ZUJyZWFrKCksCi0gICAgICAgIHRydW5jYXRpb24KKyAgICAgICAgbV90cnVuY2F0aW9uCiAgICAg
fTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlubGlu
ZVRleHRCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVUZXh0Qm94
LmgKaW5kZXggYWZjMjljYTdjMjUxYWQzNGRkM2M4YTZjMjcxMGQ1Y2U2Nzg3OTdiZS4uZDVhOTRj
YjA5MTE5OTMzY2I2YjIzOWZjYWIyZTcwNjAwNjk0YjJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlubGluZVRleHRCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lVGV4dEJveC5oCkBAIC0zMSw5ICszMSw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyQ29tYmluZVRleHQ7CiAKLWNvbnN0IHVuc2ln
bmVkIHNob3J0IGNOb1RydW5jYXRpb24gPSBVU0hSVF9NQVg7Ci1jb25zdCB1bnNpZ25lZCBzaG9y
dCBjRnVsbFRydW5jYXRpb24gPSBVU0hSVF9NQVggLSAxOwotCiBjbGFzcyBMZWdhY3lJbmxpbmVU
ZXh0Qm94IDogcHVibGljIExlZ2FjeUlubGluZUJveCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9D
QVRFRChMZWdhY3lJbmxpbmVUZXh0Qm94KTsKIHB1YmxpYzoKQEAgLTcwLDcgKzY3LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBvZmZzZXRSdW4oaW50IGQpIHsgQVNTRVJUKCFpc0RpcnR5KCkpOyBB
U1NFUlQoZCA+IDAgfHwgbV9zdGFydCA+PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oLWQpKTsgbV9z
dGFydCArPSBkOyB9CiAKLSAgICB1bnNpZ25lZCBzaG9ydCB0cnVuY2F0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV90cnVuY2F0aW9uOyB9CisgICAgYXV0byB0cnVuY2F0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV90cnVuY2F0aW9uOyB9CiAKICAgICBUZXh0Qm94U2VsZWN0YWJsZVJhbmdlIHNlbGVjdGFi
bGVSYW5nZSgpIGNvbnN0OwogCkBAIC0xMzAsNyArMTI3LDcgQEAgcHVibGljOgogICAgIFJlbmRl
ck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgc2VsZWN0aW9uU3RhdGUoKSBjb25zdCBmaW5hbDsKIAog
cHJpdmF0ZToKLSAgICB2b2lkIGNsZWFyVHJ1bmNhdGlvbigpIGZpbmFsIHsgbV90cnVuY2F0aW9u
ID0gY05vVHJ1bmNhdGlvbjsgfQorICAgIHZvaWQgY2xlYXJUcnVuY2F0aW9uKCkgZmluYWwgeyBt
X3RydW5jYXRpb24gPSB7IH07IH0KICAgICBmbG9hdCBwbGFjZUVsbGlwc2lzQm94KGJvb2wgZmxv
d0lzTFRSLCBmbG9hdCB2aXNpYmxlTGVmdEVkZ2UsIGZsb2F0IHZpc2libGVSaWdodEVkZ2UsIGZs
b2F0IGVsbGlwc2lzV2lkdGgsIGZsb2F0ICZ0cnVuY2F0ZWRXaWR0aCwgYm9vbCYgZm91bmRCb3gp
IGZpbmFsOwogCiBwdWJsaWM6CkBAIC0xNzIsMTIgKzE2OSwxMSBAQCBwcml2YXRlOgogICAgIExl
Z2FjeUlubGluZVRleHRCb3gqIG1fcHJldlRleHRCb3ggeyBudWxscHRyIH07IC8vIFRoZSBwcmV2
aW91cyBib3ggdGhhdCBhbHNvIHVzZXMgb3VyIFJlbmRlck9iamVjdAogICAgIExlZ2FjeUlubGlu
ZVRleHRCb3gqIG1fbmV4dFRleHRCb3ggeyBudWxscHRyIH07IC8vIFRoZSBuZXh0IGJveCB0aGF0
IGFsc28gdXNlcyBvdXIgUmVuZGVyT2JqZWN0CiAKKyAgICAvLyBXaGVyZSB0byB0cnVuY2F0ZSB3
aGVuIHRleHQgb3ZlcmZsb3cgaXMgYXBwbGllZC4KKyAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVk
IHNob3J0PiBtX3RydW5jYXRpb247CisKICAgICB1bnNpZ25lZCBtX3N0YXJ0IHsgMCB9OwogICAg
IHVuc2lnbmVkIHNob3J0IG1fbGVuIHsgMCB9OwotCi0gICAgLy8gV2hlcmUgdG8gdHJ1bmNhdGUg
d2hlbiB0ZXh0IG92ZXJmbG93IGlzIGFwcGxpZWQuIFdlIHVzZSBzcGVjaWFsIGNvbnN0YW50cyB0
bwotICAgIC8vIGRlbm90ZSBubyB0cnVuY2F0aW9uICh0aGUgd2hvbGUgcnVuIHBhaW50cykgYW5k
IGZ1bGwgdHJ1bmNhdGlvbiAobm90aGluZyBwYWludHMgYXQgYWxsKS4KLSAgICB1bnNpZ25lZCBz
aG9ydCBtX3RydW5jYXRpb24geyBjTm9UcnVuY2F0aW9uIH07CiB9OwogCiBMYXlvdXRSZWN0IHNu
YXBwZWRTZWxlY3Rpb25SZWN0KGNvbnN0IExheW91dFJlY3QmLCBmbG9hdCBsb2dpY2FsUmlnaHQs
IGZsb2F0IHNlbGVjdGlvblRvcCwgZmxvYXQgc2VsZWN0aW9uSGVpZ2h0LCBib29sIGlzSG9yaXpv
bnRhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXggZDE4N2Zh
MzE3YzUzNGFkOWU5ZDA4YjM2N2U0MTYzOTNiNjlkZDBiYi4uMzUyNzk2NmM2YjllZjI4M2Y5YTQx
ODY3ZDYwZjA4MjBjMWRkMWQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
LmNwcApAQCAtNDAyLDggKzQwMiw4IEBAIHN0YXRpYyBJbnRSZWN0IGVsbGlwc2lzUmVjdEZvclRl
eHRSdW4oY29uc3QgTGF5b3V0SW50ZWdyYXRpb246OlBhdGhUZXh0UnVuJiBydW4sCiAKICAgICBh
dXRvJiBib3ggPSAqcnVuLmxlZ2FjeUlubGluZUJveCgpOwogCi0gICAgdW5zaWduZWQgc2hvcnQg
dHJ1bmNhdGlvbiA9IGJveC50cnVuY2F0aW9uKCk7Ci0gICAgaWYgKHRydW5jYXRpb24gPT0gY05v
VHJ1bmNhdGlvbikKKyAgICBhdXRvIHRydW5jYXRpb24gPSBib3gudHJ1bmNhdGlvbigpOworICAg
IGlmICghdHJ1bmNhdGlvbikKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIGF1dG8gZWxsaXBz
aXMgPSBib3gucm9vdCgpLmVsbGlwc2lzQm94KCk7CkBAIC00MTYsNyArNDE2LDcgQEAgc3RhdGlj
IEludFJlY3QgZWxsaXBzaXNSZWN0Rm9yVGV4dFJ1bihjb25zdCBMYXlvdXRJbnRlZ3JhdGlvbjo6
UGF0aFRleHRSdW4mIHJ1biwKICAgICAvLyBUaGUgZWxsaXBzaXMgc2hvdWxkIGJlIGNvbnNpZGVy
ZWQgdG8gYmUgc2VsZWN0ZWQgaWYgdGhlIGVuZCBvZgogICAgIC8vIHRoZSBzZWxlY3Rpb24gaXMg
cGFzdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0cnVuY2F0aW9uIGFuZCB0aGUKICAgICAvLyBiZWdp
bm5pbmcgb2YgdGhlIHNlbGVjdGlvbiBpcyBiZWZvcmUgb3IgYXQgdGhlIGJlZ2lubmluZyBvZiB0
aGUgdHJ1bmNhdGlvbi4KLSAgICBpZiAoZWxsaXBzaXNFbmRQb3NpdGlvbiA8IHRydW5jYXRpb24g
JiYgZWxsaXBzaXNTdGFydFBvc2l0aW9uID4gdHJ1bmNhdGlvbikKKyAgICBpZiAoZWxsaXBzaXNF
bmRQb3NpdGlvbiA8ICp0cnVuY2F0aW9uICYmIGVsbGlwc2lzU3RhcnRQb3NpdGlvbiA+ICp0cnVu
Y2F0aW9uKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgcmV0dXJuIGVsbGlwc2lzLT5zZWxl
Y3Rpb25SZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEJv
eFBhaW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRCb3hQYWludGVyLmNw
cAppbmRleCBiYWZhMmNhYjQwNjIyMmE2MWI2ODg4MDU5ZTIxZWZhODc3NDY4NDE2Li4wZDIxZTcx
NzM1NTA1M2YxMWMzZDJhZDQxYzU0MTA1ODgwNWRkNTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvVGV4dEJveFBhaW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9UZXh0Qm94UGFpbnRlci5jcHAKQEAgLTE3OSw5ICsxNzksNyBAQCB2b2lkIFRleHRC
b3hQYWludGVyOjpwYWludEZvcmVncm91bmRBbmREZWNvcmF0aW9ucygpCiAgICAgYm9vbCBsaW5l
RGVjb3JhdGlvbnMgPSAhdGV4dERlY29yYXRpb25zLmlzRW1wdHkoKTsKICAgICBpZiAoKGxpbmVE
ZWNvcmF0aW9ucyB8fCBoaWdobGlnaHREZWNvcmF0aW9ucykgJiYgbV9wYWludEluZm8ucGhhc2Ug
IT0gUGFpbnRQaGFzZTo6U2VsZWN0aW9uKSB7CiAgICAgICAgIFRleHRSdW4gdGV4dFJ1biA9IG1f
dGV4dEJveC5jcmVhdGVUZXh0UnVuKCk7Ci0gICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IHRleHRS
dW4ubGVuZ3RoKCk7Ci0gICAgICAgIGlmIChtX3RleHRCb3gudHJ1bmNhdGlvbigpICE9IGNOb1Ry
dW5jYXRpb24pCi0gICAgICAgICAgICBsZW5ndGggPSBtX3RleHRCb3gudHJ1bmNhdGlvbigpOwor
ICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBtX3RleHRCb3gudHJ1bmNhdGlvbigpLnZhbHVlX29y
KHRleHRSdW4ubGVuZ3RoKCkpOwogICAgICAgICB1bnNpZ25lZCBzZWxlY3Rpb25TdGFydCA9IDA7
CiAgICAgICAgIHVuc2lnbmVkIHNlbGVjdGlvbkVuZCA9IDA7CiAgICAgICAgIGlmIChtX2hhdmVT
ZWxlY3Rpb24pCkBAIC0zMjcsNyArMzI1LDEwIEBAIHZvaWQgVGV4dEJveFBhaW50ZXI6OnBhaW50
Rm9yZWdyb3VuZChjb25zdCBTdHlsZWRNYXJrZWRUZXh0JiBtYXJrZWRUZXh0KQogCiB2b2lkIFRl
eHRCb3hQYWludGVyOjpwYWludERlY29yYXRpb24oY29uc3QgU3R5bGVkTWFya2VkVGV4dCYgbWFy
a2VkVGV4dCwgY29uc3QgRmxvYXRSZWN0JiBjbGlwT3V0UmVjdCkKIHsKLSAgICBpZiAobV90ZXh0
Qm94LnRydW5jYXRpb24oKSA9PSBjRnVsbFRydW5jYXRpb24pCisgICAgLy8gMS4gQ29tcHV0ZSB0
ZXh0IHNlbGVjdGlvbgorICAgIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0ID0gbWFya2VkVGV4dC5zdGFy
dE9mZnNldDsKKyAgICB1bnNpZ25lZCBlbmRPZmZzZXQgPSBtYXJrZWRUZXh0LmVuZE9mZnNldDsK
KyAgICBpZiAoc3RhcnRPZmZzZXQgPj0gZW5kT2Zmc2V0KQogICAgICAgICByZXR1cm47CiAKICAg
ICBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQgPSBtX3BhaW50SW5mby5jb250ZXh0KCk7CkBAIC0z
NDAsMTIgKzM0MSw2IEBAIHZvaWQgVGV4dEJveFBhaW50ZXI6OnBhaW50RGVjb3JhdGlvbihjb25z
dCBTdHlsZWRNYXJrZWRUZXh0JiBtYXJrZWRUZXh0LCBjb25zdCBGCiAgICAgaWYgKGlzQ29tYmlu
ZWRUZXh0KQogICAgICAgICBjb250ZXh0LmNvbmNhdENUTShyb3RhdGlvbihtX3BhaW50UmVjdCwg
Q2xvY2t3aXNlKSk7CiAKLSAgICAvLyAxLiBDb21wdXRlIHRleHQgc2VsZWN0aW9uCi0gICAgdW5z
aWduZWQgc3RhcnRPZmZzZXQgPSBtYXJrZWRUZXh0LnN0YXJ0T2Zmc2V0OwotICAgIHVuc2lnbmVk
IGVuZE9mZnNldCA9IG1hcmtlZFRleHQuZW5kT2Zmc2V0OwotICAgIGlmIChzdGFydE9mZnNldCA+
PSBlbmRPZmZzZXQpCi0gICAgICAgIHJldHVybjsKLQogICAgIC8vIE5vdGUgdGhhdCBpZiB0aGUg
dGV4dCBpcyB0cnVuY2F0ZWQsIHdlIGxldCB0aGUgdGhpbmcgYmVpbmcgcGFpbnRlZCBpbiB0aGUg
dHJ1bmNhdGlvbgogICAgIC8vIGRyYXcgaXRzIG93biBkZWNvcmF0aW9uLgogICAgIFRleHRSdW4g
dGV4dFJ1biA9IG1fdGV4dEJveC5jcmVhdGVUZXh0UnVuKCk7CkBAIC0zOTAsOSArMzg1LDYgQEAg
dm9pZCBUZXh0Qm94UGFpbnRlcjo6cGFpbnREZWNvcmF0aW9uKGNvbnN0IFN0eWxlZE1hcmtlZFRl
eHQmIG1hcmtlZFRleHQsIGNvbnN0IEYKIAogdm9pZCBUZXh0Qm94UGFpbnRlcjo6cGFpbnRDb21w
b3NpdGlvblVuZGVybGluZXMoKQogewotICAgIGlmIChtX3RleHRCb3gudHJ1bmNhdGlvbigpID09
IGNGdWxsVHJ1bmNhdGlvbikKLSAgICAgICAgcmV0dXJuOwotCiAgICAgZm9yIChhdXRvJiB1bmRl
cmxpbmUgOiBtX3JlbmRlcmVyLmZyYW1lKCkuZWRpdG9yKCkuY3VzdG9tQ29tcG9zaXRpb25VbmRl
cmxpbmVzKCkpIHsKICAgICAgICAgaWYgKHVuZGVybGluZS5lbmRPZmZzZXQgPD0gbV90ZXh0Qm94
LnN0YXJ0KCkpIHsKICAgICAgICAgICAgIC8vIFVuZGVybGluZSBpcyBjb21wbGV0ZWx5IGJlZm9y
ZSB0aGlzIHJ1bi4gVGhpcyBtaWdodCBiZSBhbiB1bmRlcmxpbmUgdGhhdCBzaXRzCkBAIC00MzUs
OCArNDI3LDggQEAgdm9pZCBUZXh0Qm94UGFpbnRlcjo6cGFpbnRDb21wb3NpdGlvblVuZGVybGlu
ZShjb25zdCBDb21wb3NpdGlvblVuZGVybGluZSYgdW5kZXIKICAgICAgICAgcGFpbnRFbmQgPSBz
dGQ6Om1pbihwYWludEVuZCwgKHVuc2lnbmVkKXVuZGVybGluZS5lbmRPZmZzZXQpOwogICAgICAg
ICB1c2VXaG9sZVdpZHRoID0gZmFsc2U7CiAgICAgfQotICAgIGlmIChtX3RleHRCb3gudHJ1bmNh
dGlvbigpICE9IGNOb1RydW5jYXRpb24pIHsKLSAgICAgICAgcGFpbnRFbmQgPSBzdGQ6Om1pbihw
YWludEVuZCwgbV90ZXh0Qm94LnN0YXJ0KCkgKyBtX3RleHRCb3gudHJ1bmNhdGlvbigpKTsKKyAg
ICBpZiAobV90ZXh0Qm94LnRydW5jYXRpb24oKSkgeworICAgICAgICBwYWludEVuZCA9IHN0ZDo6
bWluKHBhaW50RW5kLCBtX3RleHRCb3guc3RhcnQoKSArICptX3RleHRCb3gudHJ1bmNhdGlvbigp
KTsKICAgICAgICAgdXNlV2hvbGVXaWR0aCA9IGZhbHNlOwogICAgIH0KICAgICBpZiAoIXVzZVdo
b2xlV2lkdGgpIHsKQEAgLTQ4OSw5ICs0ODEsNiBAQCB2b2lkIFRleHRCb3hQYWludGVyOjpwYWlu
dFBsYXRmb3JtRG9jdW1lbnRNYXJrZXIoY29uc3QgTWFya2VkVGV4dCYgbWFya2VkVGV4dCkKICAg
ICBpZiAobV9kb2N1bWVudC5wcmludGluZygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAo
bV90ZXh0Qm94LnRydW5jYXRpb24oKSA9PSBjRnVsbFRydW5jYXRpb24pCi0gICAgICAgIHJldHVy
bjsKLQogICAgIGF1dG8gYm91bmRzID0gY2FsY3VsYXRlRG9jdW1lbnRNYXJrZXJCb3VuZHMobV90
ZXh0Qm94LCBtYXJrZWRUZXh0KTsKIAogICAgIGF1dG8gbGluZVN0eWxlRm9yTWFya2VkVGV4dFR5
cGUgPSBbJl0oKSAtPiBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSB7CkBAIC01MjQsNyArNTEzLDcg
QEAgRmxvYXRSZWN0IFRleHRCb3hQYWludGVyOjpjb21wdXRlUGFpbnRSZWN0KGNvbnN0IExlZ2Fj
eUlubGluZVRleHRCb3gmIHRleHRCb3gsIGMKIHsKICAgICBGbG9hdFBvaW50IGxvY2FsUGFpbnRP
ZmZzZXQocGFpbnRPZmZzZXQpOwogCi0gICAgaWYgKHRleHRCb3gudHJ1bmNhdGlvbigpICE9IGNO
b1RydW5jYXRpb24pIHsKKyAgICBpZiAodGV4dEJveC50cnVuY2F0aW9uKCkpIHsKICAgICAgICAg
YXV0byYgcmVuZGVyZXIgPSB0ZXh0Qm94LnJlbmRlcmVyKCk7CiAgICAgICAgIGlmIChyZW5kZXJl
ci5jb250YWluaW5nQmxvY2soKS0+c3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgIT0g
dGV4dEJveC5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpIHsKICAgICAgICAgICAgIC8vIE1ha2Ug
dGhlIHZpc2libGUgZnJhZ21lbnQgb2YgdGV4dCBodWcgdGhlIGVkZ2UgY2xvc2VzdCB0byB0aGUg
cmVzdCBvZiB0aGUgcnVuIGJ5IG1vdmluZyB0aGUgb3JpZ2luCkBAIC01MzUsNyArNTI0LDcgQEAg
RmxvYXRSZWN0IFRleHRCb3hQYWludGVyOjpjb21wdXRlUGFpbnRSZWN0KGNvbnN0IExlZ2FjeUlu
bGluZVRleHRCb3gmIHRleHRCb3gsIGMKICAgICAgICAgICAgIC8vIGZhcnRoZXIgdG8gdGhlIHJp
Z2h0LgogICAgICAgICAgICAgLy8gTk9URTogV2ViS2l0J3MgYmVoYXZpb3IgZGlmZmVycyBmcm9t
IHRoYXQgb2YgSUUgd2hpY2ggYXBwZWFycyB0byBqdXN0IG92ZXJsYXkgdGhlIGVsbGlwc2lzIG9u
IHRvcCBvZiB0aGUKICAgICAgICAgICAgIC8vIHRydW5jYXRlZCBzdHJpbmcgaS5lLiAgfEhlbGxv
fENCQXwgLT4gfC4uLmxvfENCQXwKLSAgICAgICAgICAgIExheW91dFVuaXQgd2lkdGhPZlZpc2li
bGVUZXh0IHsgcmVuZGVyZXIud2lkdGgodGV4dEJveC5zdGFydCgpLCB0ZXh0Qm94LnRydW5jYXRp
b24oKSwgdGV4dEJveC50ZXh0UG9zKCksIHRleHRCb3guaXNGaXJzdExpbmUoKSkgfTsKKyAgICAg
ICAgICAgIExheW91dFVuaXQgd2lkdGhPZlZpc2libGVUZXh0IHsgcmVuZGVyZXIud2lkdGgodGV4
dEJveC5zdGFydCgpLCAqdGV4dEJveC50cnVuY2F0aW9uKCksIHRleHRCb3gudGV4dFBvcygpLCB0
ZXh0Qm94LmlzRmlyc3RMaW5lKCkpIH07CiAgICAgICAgICAgICBMYXlvdXRVbml0IHdpZHRoT2ZI
aWRkZW5UZXh0IHsgdGV4dEJveC5sb2dpY2FsV2lkdGgoKSAtIHdpZHRoT2ZWaXNpYmxlVGV4dCB9
OwogICAgICAgICAgICAgTGF5b3V0U2l6ZSB0cnVuY2F0aW9uT2Zmc2V0KHRleHRCb3guaXNMZWZ0
VG9SaWdodERpcmVjdGlvbigpID8gd2lkdGhPZkhpZGRlblRleHQgOiAtd2lkdGhPZkhpZGRlblRl
eHQsIDBfbHUpOwogICAgICAgICAgICAgbG9jYWxQYWludE9mZnNldC5tb3ZlKHRleHRCb3guaXNI
b3Jpem9udGFsKCkgPyB0cnVuY2F0aW9uT2Zmc2V0IDogdHJ1bmNhdGlvbk9mZnNldC50cmFuc3Bv
c2VkU2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
SW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGlu
ZVRleHRCb3guY3BwCmluZGV4IGM5MWVkY2M2MzhiNTVjMGZkYmQyNzkwMmMwYWM2Yjk0NjZlNzRh
NWMuLjM5MDMxNWUwZmE3NTM1NGVjZDI1NjUwYjM4N2E1Yzk1YTY4ZjkzZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcApAQCAtMTgw
LDcgKzE4MCw3IEBAIHZvaWQgU1ZHSW5saW5lVGV4dEJveDo6cGFpbnRTZWxlY3Rpb25CYWNrZ3Jv
dW5kKFBhaW50SW5mbyYgcGFpbnRJbmZvKQogewogICAgIEFTU0VSVChwYWludEluZm8uc2hvdWxk
UGFpbnRXaXRoaW5Sb290KHJlbmRlcmVyKCkpKTsKICAgICBBU1NFUlQocGFpbnRJbmZvLnBoYXNl
ID09IFBhaW50UGhhc2U6OkZvcmVncm91bmQgfHwgcGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhh
c2U6OlNlbGVjdGlvbik7Ci0gICAgQVNTRVJUKHRydW5jYXRpb24oKSA9PSBjTm9UcnVuY2F0aW9u
KTsKKyAgICBBU1NFUlQoIXRydW5jYXRpb24oKSk7CiAKICAgICBpZiAocmVuZGVyZXIoKS5zdHls
ZSgpLnZpc2liaWxpdHkoKSAhPSBWaXNpYmlsaXR5OjpWaXNpYmxlKQogICAgICAgICByZXR1cm47
CkBAIC0yMzYsNyArMjM2LDcgQEAgdm9pZCBTVkdJbmxpbmVUZXh0Qm94OjpwYWludChQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2UKIHsKICAgICBBU1NF
UlQocGFpbnRJbmZvLnNob3VsZFBhaW50V2l0aGluUm9vdChyZW5kZXJlcigpKSk7CiAgICAgQVNT
RVJUKHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlOjpGb3JlZ3JvdW5kIHx8IHBhaW50SW5m
by5waGFzZSA9PSBQYWludFBoYXNlOjpTZWxlY3Rpb24pOwotICAgIEFTU0VSVCh0cnVuY2F0aW9u
KCkgPT0gY05vVHJ1bmNhdGlvbik7CisgICAgQVNTRVJUKCF0cnVuY2F0aW9uKCkpOwogCiAgICAg
aWYgKHJlbmRlcmVyKCkuc3R5bGUoKS52aXNpYmlsaXR5KCkgIT0gVmlzaWJpbGl0eTo6VmlzaWJs
ZSkKICAgICAgICAgcmV0dXJuOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438263</attachid>
            <date>2021-09-15 11:19:55 -0700</date>
            <delta_ts>2021-09-16 00:35:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230311-20210915211954.patch</filename>
            <type>text/plain</type>
            <size>16349</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNDUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWJkM2Y1M2Q4MDNkMjk2
YjEwNThmZTgyYzAwMTQ4ZjdlMWFiMmVkYS4uNTE2YjVjMDdiMWVkMWNiZmJiZGQwYTM3ZWY0YTdi
NWFiZGEwYzk4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIxLTA5LTE1ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc3RkOjpvcHRpb25h
bCBmb3IgdHJ1bmNhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMwMzExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVwbGFjZSB0aGUgY29uc3RhbnRzLgorICAgICAgICBVc2UgMCB0cnVuY2F0aW9u
IHZhbHVlIGZvciAiZnVsbCIgdHJ1bmNhdGlvbi4KKworICAgICAgICAqIHJlbmRlcmluZy9MZWdh
Y3lFbGxpcHNpc0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lFbGxpcHNpc0JveDo6
c2VsZWN0aW9uU3RhdGUgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9MZWdhY3lJbmxpbmVU
ZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUlubGluZVRleHRCb3g6OnBsYWNl
RWxsaXBzaXNCb3gpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5SW5saW5lVGV4dEJveDo6bm9k
ZUF0UG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5SW5saW5lVGV4dEJveDo6cGFpbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5SW5saW5lVGV4dEJveDo6c2VsZWN0YWJsZVJhbmdl
IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvTGVnYWN5SW5saW5lVGV4dEJveC5oOgorICAg
ICAgICAoV2ViQ29yZTo6TGVnYWN5SW5saW5lVGV4dEJveDo6dHJ1bmNhdGlvbiBjb25zdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZWxs
aXBzaXNSZWN0Rm9yVGV4dFJ1bik6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRCb3hQYWludGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRCb3hQYWludGVyOjpwYWludEZvcmVncm91bmRB
bmREZWNvcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Qm94UGFpbnRlcjo6cGFpbnRE
ZWNvcmF0aW9uKToKKworICAgICAgICBSZW1vdmUgdmFyaW91cyBmdWxsIHRydW5jYXRpb24gY2hl
Y2tzLiBaZXJvIHRydW5jYXRpb24gdmFsdWUgd2lsbCBtYWtlIHRoZW0gbm90IHBhaW50IHdpdGhv
dXQgbmVlZGluZyBleHRyYSBjaGVja3MuCisKKyAgICAgICAgKFdlYkNvcmU6OlRleHRCb3hQYWlu
dGVyOjpwYWludENvbXBvc2l0aW9uVW5kZXJsaW5lcyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
Qm94UGFpbnRlcjo6cGFpbnRDb21wb3NpdGlvblVuZGVybGluZSk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0Qm94UGFpbnRlcjo6cGFpbnRQbGF0Zm9ybURvY3VtZW50TWFya2VyKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRCb3hQYWludGVyOjpjb21wdXRlUGFpbnRSZWN0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
SW5saW5lVGV4dEJveDo6cGFpbnRTZWxlY3Rpb25CYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0lubGluZVRleHRCb3g6OnBhaW50KToKKwogMjAyMS0wOS0xNSAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIFRleHRC
b3hTZWxlY3RhYmxlUmFuZ2U6OmFkZGl0aW9uYWxMZW5ndGhBdEVuZCBtaXNjb21wdXRlZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUVsbGlwc2lzQm94LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lFbGxpcHNpc0JveC5jcHAKaW5kZXggZWZm
MmYyNTE5MGUxYzM3Y2Q3ZTRiZjgxY2JjZDhhM2Q1Mzk3MTQyOC4uYzRmNzNjY2QxNjg3NTg4YTM1
ZDU5MGYzYmY5NzYwMDQwNDlmY2VjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xlZ2FjeUVsbGlwc2lzQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
TGVnYWN5RWxsaXBzaXNCb3guY3BwCkBAIC0xNzgsOCArMTc4LDEyIEBAIFJlbmRlck9iamVjdDo6
SGlnaGxpZ2h0U3RhdGUgTGVnYWN5RWxsaXBzaXNCb3g6OnNlbGVjdGlvblN0YXRlKCkgY29uc3QK
IAogICAgIGF1dG8mIHRleHRCb3ggPSBkb3duY2FzdDxMZWdhY3lJbmxpbmVUZXh0Qm94PigqbGFz
dFNlbGVjdGVkQm94KTsKIAorICAgIGF1dG8gdHJ1bmNhdGlvbiA9IHRleHRCb3gudHJ1bmNhdGlv
bigpOworICAgIGlmICghdHJ1bmNhdGlvbiB8fCAhKnRydW5jYXRpb24pCisgICAgICAgIHJldHVy
biBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpOb25lOworCiAgICAgYXV0byBbc2VsZWN0
aW9uU3RhcnQsIHNlbGVjdGlvbkVuZF0gPSB0ZXh0Qm94LnNlbGVjdGlvblN0YXJ0RW5kKCk7Ci0g
ICAgaWYgKHNlbGVjdGlvbkVuZCA+PSB0ZXh0Qm94LnRydW5jYXRpb24oKSAmJiBzZWxlY3Rpb25T
dGFydCA8PSB0ZXh0Qm94LnRydW5jYXRpb24oKSkKKyAgICBpZiAoc2VsZWN0aW9uRW5kID49ICp0
cnVuY2F0aW9uICYmIHNlbGVjdGlvblN0YXJ0IDw9ICp0cnVuY2F0aW9uKQogICAgICAgICByZXR1
cm4gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6SW5zaWRlOwogCiAgICAgcmV0dXJuIFJl
bmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6Ok5vbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvTGVnYWN5SW5saW5lVGV4dEJveC5jcHAKaW5kZXggNTZkYzBmYzA3ZTI5MDZmNzBl
ZjRkNjJkNTk5MmIxYmI0ODQ5NjQ2Zi4uMWZkMWIzZmYwY2U2OTVmY2NiZGQ5ZjBhOTljNWQyM2Nj
MTNjM2EwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlubGlu
ZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVU
ZXh0Qm94LmNwcApAQCAtNjksOSArNjksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoTGVnYWN5SW5saW5lVGV4dEJveCk7CiAKIHN0cnVjdCBTYW1l
U2l6ZUFzTGVnYWN5SW5saW5lVGV4dEJveCA6IHB1YmxpYyBMZWdhY3lJbmxpbmVCb3ggewotICAg
IHVuc2lnbmVkIHZhcmlhYmxlc1sxXTsKLSAgICB1bnNpZ25lZCBzaG9ydCB2YXJpYWJsZXMyWzJd
OwogICAgIHZvaWQqIHBvaW50ZXJzWzJdOworICAgIHVuc2lnbmVkIHZhcmlhYmxlc1syXTsKKyAg
ICB1bnNpZ25lZCBzaG9ydCB2YXJpYWJsZXMyOwogfTsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9m
KExlZ2FjeUlubGluZVRleHRCb3gpID09IHNpemVvZihTYW1lU2l6ZUFzTGVnYWN5SW5saW5lVGV4
dEJveCksIExlZ2FjeUlubGluZVRleHRCb3hfc2hvdWxkX3N0YXlfc21hbGwpOwpAQCAtMjM0LDcg
KzIzNCw3IEBAIHZvaWQgTGVnYWN5SW5saW5lVGV4dEJveDo6YXR0YWNoTGluZSgpCiBmbG9hdCBM
ZWdhY3lJbmxpbmVUZXh0Qm94OjpwbGFjZUVsbGlwc2lzQm94KGJvb2wgZmxvd0lzTFRSLCBmbG9h
dCB2aXNpYmxlTGVmdEVkZ2UsIGZsb2F0IHZpc2libGVSaWdodEVkZ2UsIGZsb2F0IGVsbGlwc2lz
V2lkdGgsIGZsb2F0ICZ0cnVuY2F0ZWRXaWR0aCwgYm9vbCYgZm91bmRCb3gpCiB7CiAgICAgaWYg
KGZvdW5kQm94KSB7Ci0gICAgICAgIG1fdHJ1bmNhdGlvbiA9IGNGdWxsVHJ1bmNhdGlvbjsKKyAg
ICAgICAgbV90cnVuY2F0aW9uID0gMDsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIApAQCAt
MjQ4LDcgKzI0OCw3IEBAIGZsb2F0IExlZ2FjeUlubGluZVRleHRCb3g6OnBsYWNlRWxsaXBzaXNC
b3goYm9vbCBmbG93SXNMVFIsIGZsb2F0IHZpc2libGVMZWZ0RWRnCiAgICAgYm9vbCBydGxGdWxs
VHJ1bmNhdGlvbiA9ICFmbG93SXNMVFIgJiYgZWxsaXBzaXNYID49IGxlZnQoKSArIGxvZ2ljYWxX
aWR0aCgpOwogICAgIGlmIChsdHJGdWxsVHJ1bmNhdGlvbiB8fCBydGxGdWxsVHJ1bmNhdGlvbikg
ewogICAgICAgICAvLyBUb28gZmFyLiBKdXN0IHNldCBmdWxsIHRydW5jYXRpb24sIGJ1dCByZXR1
cm4gLTEgYW5kIGxldCB0aGUgZWxsaXBzaXMganVzdCBiZSBwbGFjZWQgYXQgdGhlIGVkZ2Ugb2Yg
dGhlIGJveC4KLSAgICAgICAgbV90cnVuY2F0aW9uID0gY0Z1bGxUcnVuY2F0aW9uOworICAgICAg
ICBtX3RydW5jYXRpb24gPSAwOwogICAgICAgICBmb3VuZEJveCA9IHRydWU7CiAgICAgICAgIHJl
dHVybiAtMTsKICAgICB9CkBAIC0yNzIsNyArMjcyLDcgQEAgZmxvYXQgTGVnYWN5SW5saW5lVGV4
dEJveDo6cGxhY2VFbGxpcHNpc0JveChib29sIGZsb3dJc0xUUiwgZmxvYXQgdmlzaWJsZUxlZnRF
ZGcKICAgICAgICAgaWYgKCFvZmZzZXQpIHsKICAgICAgICAgICAgIC8vIE5vIGNoYXJhY3RlcnMg
c2hvdWxkIGJlIHJlbmRlcmVkLiBTZXQgb3Vyc2VsdmVzIHRvIGZ1bGwgdHJ1bmNhdGlvbiBhbmQg
cGxhY2UgdGhlIGVsbGlwc2lzIGF0IHRoZSBtaW4gb2Ygb3VyIHN0YXJ0CiAgICAgICAgICAgICAv
LyBhbmQgdGhlIGVsbGlwc2lzIGVkZ2UuCi0gICAgICAgICAgICBtX3RydW5jYXRpb24gPSBjRnVs
bFRydW5jYXRpb247CisgICAgICAgICAgICBtX3RydW5jYXRpb24gPSAwOwogICAgICAgICAgICAg
dHJ1bmNhdGVkV2lkdGggKz0gZWxsaXBzaXNXaWR0aDsKICAgICAgICAgICAgIHJldHVybiBmbG93
SXNMVFIgPyBzdGQ6Om1pbihlbGxpcHNpc1gsIHgoKSkgOiBzdGQ6Om1heChlbGxpcHNpc1gsIHJp
Z2h0KCkgLSBlbGxpcHNpc1dpZHRoKTsKICAgICAgICAgfQpAQCAtMzEzLDEzICszMTMsMTMgQEAg
Ym9vbCBMZWdhY3lJbmxpbmVUZXh0Qm94Ojpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVz
dCYgcmVxdWVzdCwgSGl0VGVzdFJlc3UKICAgICBpZiAoaXNMaW5lQnJlYWsoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG1fdHJ1bmNhdGlvbiA9PSBjRnVsbFRydW5jYXRpb24p
CisgICAgaWYgKG1fdHJ1bmNhdGlvbiAmJiAhKm1fdHJ1bmNhdGlvbikKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgRmxvYXRSZWN0IHJlY3QobG9jYXRpb25JbmNsdWRpbmdGbGlwcGluZygp
LCBzaXplKCkpOwogICAgIC8vIE1ha2Ugc3VyZSB0cnVuY2F0ZWQgdGV4dCBpcyBpZ25vcmVkIHdo
aWxlIGhpdHRlc3RpbmcuCi0gICAgaWYgKG1fdHJ1bmNhdGlvbiAhPSBjTm9UcnVuY2F0aW9uKSB7
Ci0gICAgICAgIExheW91dFVuaXQgd2lkdGhPZlZpc2libGVUZXh0IHsgcmVuZGVyZXIoKS53aWR0
aChtX3N0YXJ0LCBtX3RydW5jYXRpb24sIHRleHRQb3MoKSwgaXNGaXJzdExpbmUoKSkgfTsKKyAg
ICBpZiAobV90cnVuY2F0aW9uKSB7CisgICAgICAgIExheW91dFVuaXQgd2lkdGhPZlZpc2libGVU
ZXh0IHsgcmVuZGVyZXIoKS53aWR0aChtX3N0YXJ0LCAqbV90cnVuY2F0aW9uLCB0ZXh0UG9zKCks
IGlzRmlyc3RMaW5lKCkpIH07CiAKICAgICAgICAgaWYgKGlzSG9yaXpvbnRhbCgpKQogICAgICAg
ICAgICAgcmVuZGVyZXIoKS5zdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IHJlY3Qu
c2V0V2lkdGgod2lkdGhPZlZpc2libGVUZXh0KSA6IHJlY3Quc2hpZnRYRWRnZVRvKHJpZ2h0KCkg
LSB3aWR0aE9mVmlzaWJsZVRleHQpOwpAQCAtMzgxLDcgKzM4MSw3IEBAIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4gTGVnYWN5SW5saW5lVGV4dEJveDo6ZW1waGFzaXNNYXJrRXhpc3RzQW5kSXNBYm92ZShj
b25zdCBSZW5kCiB2b2lkIExlZ2FjeUlubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIExheW91dFVuaXQgLypsaW5l
VG9wKi8sIExheW91dFVuaXQgLypsaW5lQm90dG9tKi8pCiB7CiAgICAgaWYgKGlzTGluZUJyZWFr
KCkgfHwgIXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJvb3QocmVuZGVyZXIoKSkgfHwgcmVu
ZGVyZXIoKS5zdHlsZSgpLnZpc2liaWxpdHkoKSAhPSBWaXNpYmlsaXR5OjpWaXNpYmxlCi0gICAg
ICAgIHx8IG1fdHJ1bmNhdGlvbiA9PSBjRnVsbFRydW5jYXRpb24gfHwgcGFpbnRJbmZvLnBoYXNl
ID09IFBhaW50UGhhc2U6Ok91dGxpbmUgfHwgIWhhc1RleHRDb250ZW50KCkpCisgICAgICAgIHx8
IChtX3RydW5jYXRpb24gJiYgISptX3RydW5jYXRpb24pIHx8IHBhaW50SW5mby5waGFzZSA9PSBQ
YWludFBoYXNlOjpPdXRsaW5lIHx8ICFoYXNUZXh0Q29udGVudCgpKQogICAgICAgICByZXR1cm47
CiAKICAgICBBU1NFUlQocGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2U6OlNlbGZPdXRsaW5l
ICYmIHBhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlOjpDaGlsZE91dGxpbmVzKTsKQEAgLTQx
NCwyMCArNDE0LDEyIEBAIFRleHRCb3hTZWxlY3RhYmxlUmFuZ2UgTGVnYWN5SW5saW5lVGV4dEJv
eDo6c2VsZWN0YWJsZVJhbmdlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIDB1OwogICAgIH0oKTsK
IAotICAgIGF1dG8gdHJ1bmNhdGlvbiA9IFsmXSgpIC0+IHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+
IHsKLSAgICAgICAgaWYgKG1fdHJ1bmNhdGlvbiA9PSBjTm9UcnVuY2F0aW9uKQotICAgICAgICAg
ICAgcmV0dXJuIHsgfTsKLSAgICAgICAgaWYgKG1fdHJ1bmNhdGlvbiA9PSBjRnVsbFRydW5jYXRp
b24pCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1h
eCgpOwotICAgICAgICByZXR1cm4gbV90cnVuY2F0aW9uOwotICAgIH0oKTsKLQogICAgIHJldHVy
biB7CiAgICAgICAgIG1fc3RhcnQsCiAgICAgICAgIG1fbGVuLAogICAgICAgICBhZGRpdGlvbmFs
TGVuZ3RoQXRFbmQsCiAgICAgICAgIGlzTGluZUJyZWFrKCksCi0gICAgICAgIHRydW5jYXRpb24K
KyAgICAgICAgbV90cnVuY2F0aW9uCiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlubGluZVRleHRCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9MZWdhY3lJbmxpbmVUZXh0Qm94LmgKaW5kZXggYWZjMjljYTdjMjUxYWQzNGRkM2M4
YTZjMjcxMGQ1Y2U2Nzg3OTdiZS4uZDVhOTRjYjA5MTE5OTMzY2I2YjIzOWZjYWIyZTcwNjAwNjk0
YjJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlubGluZVRl
eHRCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lVGV4dEJv
eC5oCkBAIC0zMSw5ICszMSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVy
Q29tYmluZVRleHQ7CiAKLWNvbnN0IHVuc2lnbmVkIHNob3J0IGNOb1RydW5jYXRpb24gPSBVU0hS
VF9NQVg7Ci1jb25zdCB1bnNpZ25lZCBzaG9ydCBjRnVsbFRydW5jYXRpb24gPSBVU0hSVF9NQVgg
LSAxOwotCiBjbGFzcyBMZWdhY3lJbmxpbmVUZXh0Qm94IDogcHVibGljIExlZ2FjeUlubGluZUJv
eCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChMZWdhY3lJbmxpbmVUZXh0Qm94KTsKIHB1
YmxpYzoKQEAgLTcwLDcgKzY3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBvZmZzZXRSdW4oaW50
IGQpIHsgQVNTRVJUKCFpc0RpcnR5KCkpOyBBU1NFUlQoZCA+IDAgfHwgbV9zdGFydCA+PSBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oLWQpKTsgbV9zdGFydCArPSBkOyB9CiAKLSAgICB1bnNpZ25lZCBz
aG9ydCB0cnVuY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90cnVuY2F0aW9uOyB9CisgICAgYXV0
byB0cnVuY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90cnVuY2F0aW9uOyB9CiAKICAgICBUZXh0
Qm94U2VsZWN0YWJsZVJhbmdlIHNlbGVjdGFibGVSYW5nZSgpIGNvbnN0OwogCkBAIC0xMzAsNyAr
MTI3LDcgQEAgcHVibGljOgogICAgIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgc2VsZWN0
aW9uU3RhdGUoKSBjb25zdCBmaW5hbDsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGNsZWFyVHJ1bmNh
dGlvbigpIGZpbmFsIHsgbV90cnVuY2F0aW9uID0gY05vVHJ1bmNhdGlvbjsgfQorICAgIHZvaWQg
Y2xlYXJUcnVuY2F0aW9uKCkgZmluYWwgeyBtX3RydW5jYXRpb24gPSB7IH07IH0KICAgICBmbG9h
dCBwbGFjZUVsbGlwc2lzQm94KGJvb2wgZmxvd0lzTFRSLCBmbG9hdCB2aXNpYmxlTGVmdEVkZ2Us
IGZsb2F0IHZpc2libGVSaWdodEVkZ2UsIGZsb2F0IGVsbGlwc2lzV2lkdGgsIGZsb2F0ICZ0cnVu
Y2F0ZWRXaWR0aCwgYm9vbCYgZm91bmRCb3gpIGZpbmFsOwogCiBwdWJsaWM6CkBAIC0xNzIsMTIg
KzE2OSwxMSBAQCBwcml2YXRlOgogICAgIExlZ2FjeUlubGluZVRleHRCb3gqIG1fcHJldlRleHRC
b3ggeyBudWxscHRyIH07IC8vIFRoZSBwcmV2aW91cyBib3ggdGhhdCBhbHNvIHVzZXMgb3VyIFJl
bmRlck9iamVjdAogICAgIExlZ2FjeUlubGluZVRleHRCb3gqIG1fbmV4dFRleHRCb3ggeyBudWxs
cHRyIH07IC8vIFRoZSBuZXh0IGJveCB0aGF0IGFsc28gdXNlcyBvdXIgUmVuZGVyT2JqZWN0CiAK
KyAgICAvLyBXaGVyZSB0byB0cnVuY2F0ZSB3aGVuIHRleHQgb3ZlcmZsb3cgaXMgYXBwbGllZC4K
KyAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkIHNob3J0PiBtX3RydW5jYXRpb247CisKICAgICB1
bnNpZ25lZCBtX3N0YXJ0IHsgMCB9OwogICAgIHVuc2lnbmVkIHNob3J0IG1fbGVuIHsgMCB9Owot
Ci0gICAgLy8gV2hlcmUgdG8gdHJ1bmNhdGUgd2hlbiB0ZXh0IG92ZXJmbG93IGlzIGFwcGxpZWQu
IFdlIHVzZSBzcGVjaWFsIGNvbnN0YW50cyB0bwotICAgIC8vIGRlbm90ZSBubyB0cnVuY2F0aW9u
ICh0aGUgd2hvbGUgcnVuIHBhaW50cykgYW5kIGZ1bGwgdHJ1bmNhdGlvbiAobm90aGluZyBwYWlu
dHMgYXQgYWxsKS4KLSAgICB1bnNpZ25lZCBzaG9ydCBtX3RydW5jYXRpb24geyBjTm9UcnVuY2F0
aW9uIH07CiB9OwogCiBMYXlvdXRSZWN0IHNuYXBwZWRTZWxlY3Rpb25SZWN0KGNvbnN0IExheW91
dFJlY3QmLCBmbG9hdCBsb2dpY2FsUmlnaHQsIGZsb2F0IHNlbGVjdGlvblRvcCwgZmxvYXQgc2Vs
ZWN0aW9uSGVpZ2h0LCBib29sIGlzSG9yaXpvbnRhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5jcHAKaW5kZXggZDE4N2ZhMzE3YzUzNGFkOWU5ZDA4YjM2N2U0MTYzOTNiNjlk
ZDBiYi4uMzUyNzk2NmM2YjllZjI4M2Y5YTQxODY3ZDYwZjA4MjBjMWRkMWQ1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtNDAyLDggKzQwMiw4IEBAIHN0YXRp
YyBJbnRSZWN0IGVsbGlwc2lzUmVjdEZvclRleHRSdW4oY29uc3QgTGF5b3V0SW50ZWdyYXRpb246
OlBhdGhUZXh0UnVuJiBydW4sCiAKICAgICBhdXRvJiBib3ggPSAqcnVuLmxlZ2FjeUlubGluZUJv
eCgpOwogCi0gICAgdW5zaWduZWQgc2hvcnQgdHJ1bmNhdGlvbiA9IGJveC50cnVuY2F0aW9uKCk7
Ci0gICAgaWYgKHRydW5jYXRpb24gPT0gY05vVHJ1bmNhdGlvbikKKyAgICBhdXRvIHRydW5jYXRp
b24gPSBib3gudHJ1bmNhdGlvbigpOworICAgIGlmICghdHJ1bmNhdGlvbikKICAgICAgICAgcmV0
dXJuIHsgfTsKIAogICAgIGF1dG8gZWxsaXBzaXMgPSBib3gucm9vdCgpLmVsbGlwc2lzQm94KCk7
CkBAIC00MTYsNyArNDE2LDcgQEAgc3RhdGljIEludFJlY3QgZWxsaXBzaXNSZWN0Rm9yVGV4dFJ1
bihjb25zdCBMYXlvdXRJbnRlZ3JhdGlvbjo6UGF0aFRleHRSdW4mIHJ1biwKICAgICAvLyBUaGUg
ZWxsaXBzaXMgc2hvdWxkIGJlIGNvbnNpZGVyZWQgdG8gYmUgc2VsZWN0ZWQgaWYgdGhlIGVuZCBv
ZgogICAgIC8vIHRoZSBzZWxlY3Rpb24gaXMgcGFzdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0cnVu
Y2F0aW9uIGFuZCB0aGUKICAgICAvLyBiZWdpbm5pbmcgb2YgdGhlIHNlbGVjdGlvbiBpcyBiZWZv
cmUgb3IgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgdHJ1bmNhdGlvbi4KLSAgICBpZiAoZWxsaXBz
aXNFbmRQb3NpdGlvbiA8IHRydW5jYXRpb24gJiYgZWxsaXBzaXNTdGFydFBvc2l0aW9uID4gdHJ1
bmNhdGlvbikKKyAgICBpZiAoZWxsaXBzaXNFbmRQb3NpdGlvbiA8ICp0cnVuY2F0aW9uICYmIGVs
bGlwc2lzU3RhcnRQb3NpdGlvbiA+ICp0cnVuY2F0aW9uKQogICAgICAgICByZXR1cm4geyB9Owog
CiAgICAgcmV0dXJuIGVsbGlwc2lzLT5zZWxlY3Rpb25SZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEJveFBhaW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1RleHRCb3hQYWludGVyLmNwcAppbmRleCBiYWZhMmNhYjQwNjIyMmE2MWI2ODg4
MDU5ZTIxZWZhODc3NDY4NDE2Li4wZDIxZTcxNzM1NTA1M2YxMWMzZDJhZDQxYzU0MTA1ODgwNWRk
NTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEJveFBhaW50ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Qm94UGFpbnRlci5jcHAKQEAg
LTE3OSw5ICsxNzksNyBAQCB2b2lkIFRleHRCb3hQYWludGVyOjpwYWludEZvcmVncm91bmRBbmRE
ZWNvcmF0aW9ucygpCiAgICAgYm9vbCBsaW5lRGVjb3JhdGlvbnMgPSAhdGV4dERlY29yYXRpb25z
LmlzRW1wdHkoKTsKICAgICBpZiAoKGxpbmVEZWNvcmF0aW9ucyB8fCBoaWdobGlnaHREZWNvcmF0
aW9ucykgJiYgbV9wYWludEluZm8ucGhhc2UgIT0gUGFpbnRQaGFzZTo6U2VsZWN0aW9uKSB7CiAg
ICAgICAgIFRleHRSdW4gdGV4dFJ1biA9IG1fdGV4dEJveC5jcmVhdGVUZXh0UnVuKCk7Ci0gICAg
ICAgIHVuc2lnbmVkIGxlbmd0aCA9IHRleHRSdW4ubGVuZ3RoKCk7Ci0gICAgICAgIGlmIChtX3Rl
eHRCb3gudHJ1bmNhdGlvbigpICE9IGNOb1RydW5jYXRpb24pCi0gICAgICAgICAgICBsZW5ndGgg
PSBtX3RleHRCb3gudHJ1bmNhdGlvbigpOworICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBtX3Rl
eHRCb3gudHJ1bmNhdGlvbigpLnZhbHVlX29yKHRleHRSdW4ubGVuZ3RoKCkpOwogICAgICAgICB1
bnNpZ25lZCBzZWxlY3Rpb25TdGFydCA9IDA7CiAgICAgICAgIHVuc2lnbmVkIHNlbGVjdGlvbkVu
ZCA9IDA7CiAgICAgICAgIGlmIChtX2hhdmVTZWxlY3Rpb24pCkBAIC0zMjcsNyArMzI1LDEwIEBA
IHZvaWQgVGV4dEJveFBhaW50ZXI6OnBhaW50Rm9yZWdyb3VuZChjb25zdCBTdHlsZWRNYXJrZWRU
ZXh0JiBtYXJrZWRUZXh0KQogCiB2b2lkIFRleHRCb3hQYWludGVyOjpwYWludERlY29yYXRpb24o
Y29uc3QgU3R5bGVkTWFya2VkVGV4dCYgbWFya2VkVGV4dCwgY29uc3QgRmxvYXRSZWN0JiBjbGlw
T3V0UmVjdCkKIHsKLSAgICBpZiAobV90ZXh0Qm94LnRydW5jYXRpb24oKSA9PSBjRnVsbFRydW5j
YXRpb24pCisgICAgLy8gMS4gQ29tcHV0ZSB0ZXh0IHNlbGVjdGlvbgorICAgIHVuc2lnbmVkIHN0
YXJ0T2Zmc2V0ID0gbWFya2VkVGV4dC5zdGFydE9mZnNldDsKKyAgICB1bnNpZ25lZCBlbmRPZmZz
ZXQgPSBtYXJrZWRUZXh0LmVuZE9mZnNldDsKKyAgICBpZiAoc3RhcnRPZmZzZXQgPj0gZW5kT2Zm
c2V0KQogICAgICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQgPSBt
X3BhaW50SW5mby5jb250ZXh0KCk7CkBAIC0zNDAsMTIgKzM0MSw2IEBAIHZvaWQgVGV4dEJveFBh
aW50ZXI6OnBhaW50RGVjb3JhdGlvbihjb25zdCBTdHlsZWRNYXJrZWRUZXh0JiBtYXJrZWRUZXh0
LCBjb25zdCBGCiAgICAgaWYgKGlzQ29tYmluZWRUZXh0KQogICAgICAgICBjb250ZXh0LmNvbmNh
dENUTShyb3RhdGlvbihtX3BhaW50UmVjdCwgQ2xvY2t3aXNlKSk7CiAKLSAgICAvLyAxLiBDb21w
dXRlIHRleHQgc2VsZWN0aW9uCi0gICAgdW5zaWduZWQgc3RhcnRPZmZzZXQgPSBtYXJrZWRUZXh0
LnN0YXJ0T2Zmc2V0OwotICAgIHVuc2lnbmVkIGVuZE9mZnNldCA9IG1hcmtlZFRleHQuZW5kT2Zm
c2V0OwotICAgIGlmIChzdGFydE9mZnNldCA+PSBlbmRPZmZzZXQpCi0gICAgICAgIHJldHVybjsK
LQogICAgIC8vIE5vdGUgdGhhdCBpZiB0aGUgdGV4dCBpcyB0cnVuY2F0ZWQsIHdlIGxldCB0aGUg
dGhpbmcgYmVpbmcgcGFpbnRlZCBpbiB0aGUgdHJ1bmNhdGlvbgogICAgIC8vIGRyYXcgaXRzIG93
biBkZWNvcmF0aW9uLgogICAgIFRleHRSdW4gdGV4dFJ1biA9IG1fdGV4dEJveC5jcmVhdGVUZXh0
UnVuKCk7CkBAIC0zOTAsOSArMzg1LDYgQEAgdm9pZCBUZXh0Qm94UGFpbnRlcjo6cGFpbnREZWNv
cmF0aW9uKGNvbnN0IFN0eWxlZE1hcmtlZFRleHQmIG1hcmtlZFRleHQsIGNvbnN0IEYKIAogdm9p
ZCBUZXh0Qm94UGFpbnRlcjo6cGFpbnRDb21wb3NpdGlvblVuZGVybGluZXMoKQogewotICAgIGlm
IChtX3RleHRCb3gudHJ1bmNhdGlvbigpID09IGNGdWxsVHJ1bmNhdGlvbikKLSAgICAgICAgcmV0
dXJuOwotCiAgICAgZm9yIChhdXRvJiB1bmRlcmxpbmUgOiBtX3JlbmRlcmVyLmZyYW1lKCkuZWRp
dG9yKCkuY3VzdG9tQ29tcG9zaXRpb25VbmRlcmxpbmVzKCkpIHsKICAgICAgICAgaWYgKHVuZGVy
bGluZS5lbmRPZmZzZXQgPD0gbV90ZXh0Qm94LnN0YXJ0KCkpIHsKICAgICAgICAgICAgIC8vIFVu
ZGVybGluZSBpcyBjb21wbGV0ZWx5IGJlZm9yZSB0aGlzIHJ1bi4gVGhpcyBtaWdodCBiZSBhbiB1
bmRlcmxpbmUgdGhhdCBzaXRzCkBAIC00MzUsOCArNDI3LDggQEAgdm9pZCBUZXh0Qm94UGFpbnRl
cjo6cGFpbnRDb21wb3NpdGlvblVuZGVybGluZShjb25zdCBDb21wb3NpdGlvblVuZGVybGluZSYg
dW5kZXIKICAgICAgICAgcGFpbnRFbmQgPSBzdGQ6Om1pbihwYWludEVuZCwgKHVuc2lnbmVkKXVu
ZGVybGluZS5lbmRPZmZzZXQpOwogICAgICAgICB1c2VXaG9sZVdpZHRoID0gZmFsc2U7CiAgICAg
fQotICAgIGlmIChtX3RleHRCb3gudHJ1bmNhdGlvbigpICE9IGNOb1RydW5jYXRpb24pIHsKLSAg
ICAgICAgcGFpbnRFbmQgPSBzdGQ6Om1pbihwYWludEVuZCwgbV90ZXh0Qm94LnN0YXJ0KCkgKyBt
X3RleHRCb3gudHJ1bmNhdGlvbigpKTsKKyAgICBpZiAobV90ZXh0Qm94LnRydW5jYXRpb24oKSkg
eworICAgICAgICBwYWludEVuZCA9IHN0ZDo6bWluKHBhaW50RW5kLCBtX3RleHRCb3guc3RhcnQo
KSArICptX3RleHRCb3gudHJ1bmNhdGlvbigpKTsKICAgICAgICAgdXNlV2hvbGVXaWR0aCA9IGZh
bHNlOwogICAgIH0KICAgICBpZiAoIXVzZVdob2xlV2lkdGgpIHsKQEAgLTQ4OSw5ICs0ODEsNiBA
QCB2b2lkIFRleHRCb3hQYWludGVyOjpwYWludFBsYXRmb3JtRG9jdW1lbnRNYXJrZXIoY29uc3Qg
TWFya2VkVGV4dCYgbWFya2VkVGV4dCkKICAgICBpZiAobV9kb2N1bWVudC5wcmludGluZygpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV90ZXh0Qm94LnRydW5jYXRpb24oKSA9PSBjRnVs
bFRydW5jYXRpb24pCi0gICAgICAgIHJldHVybjsKLQogICAgIGF1dG8gYm91bmRzID0gY2FsY3Vs
YXRlRG9jdW1lbnRNYXJrZXJCb3VuZHMobV90ZXh0Qm94LCBtYXJrZWRUZXh0KTsKIAogICAgIGF1
dG8gbGluZVN0eWxlRm9yTWFya2VkVGV4dFR5cGUgPSBbJl0oKSAtPiBEb2N1bWVudE1hcmtlckxp
bmVTdHlsZSB7CkBAIC01MjQsNyArNTEzLDcgQEAgRmxvYXRSZWN0IFRleHRCb3hQYWludGVyOjpj
b21wdXRlUGFpbnRSZWN0KGNvbnN0IExlZ2FjeUlubGluZVRleHRCb3gmIHRleHRCb3gsIGMKIHsK
ICAgICBGbG9hdFBvaW50IGxvY2FsUGFpbnRPZmZzZXQocGFpbnRPZmZzZXQpOwogCi0gICAgaWYg
KHRleHRCb3gudHJ1bmNhdGlvbigpICE9IGNOb1RydW5jYXRpb24pIHsKKyAgICBpZiAodGV4dEJv
eC50cnVuY2F0aW9uKCkpIHsKICAgICAgICAgYXV0byYgcmVuZGVyZXIgPSB0ZXh0Qm94LnJlbmRl
cmVyKCk7CiAgICAgICAgIGlmIChyZW5kZXJlci5jb250YWluaW5nQmxvY2soKS0+c3R5bGUoKS5p
c0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgIT0gdGV4dEJveC5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9u
KCkpIHsKICAgICAgICAgICAgIC8vIE1ha2UgdGhlIHZpc2libGUgZnJhZ21lbnQgb2YgdGV4dCBo
dWcgdGhlIGVkZ2UgY2xvc2VzdCB0byB0aGUgcmVzdCBvZiB0aGUgcnVuIGJ5IG1vdmluZyB0aGUg
b3JpZ2luCkBAIC01MzUsNyArNTI0LDcgQEAgRmxvYXRSZWN0IFRleHRCb3hQYWludGVyOjpjb21w
dXRlUGFpbnRSZWN0KGNvbnN0IExlZ2FjeUlubGluZVRleHRCb3gmIHRleHRCb3gsIGMKICAgICAg
ICAgICAgIC8vIGZhcnRoZXIgdG8gdGhlIHJpZ2h0LgogICAgICAgICAgICAgLy8gTk9URTogV2Vi
S2l0J3MgYmVoYXZpb3IgZGlmZmVycyBmcm9tIHRoYXQgb2YgSUUgd2hpY2ggYXBwZWFycyB0byBq
dXN0IG92ZXJsYXkgdGhlIGVsbGlwc2lzIG9uIHRvcCBvZiB0aGUKICAgICAgICAgICAgIC8vIHRy
dW5jYXRlZCBzdHJpbmcgaS5lLiAgfEhlbGxvfENCQXwgLT4gfC4uLmxvfENCQXwKLSAgICAgICAg
ICAgIExheW91dFVuaXQgd2lkdGhPZlZpc2libGVUZXh0IHsgcmVuZGVyZXIud2lkdGgodGV4dEJv
eC5zdGFydCgpLCB0ZXh0Qm94LnRydW5jYXRpb24oKSwgdGV4dEJveC50ZXh0UG9zKCksIHRleHRC
b3guaXNGaXJzdExpbmUoKSkgfTsKKyAgICAgICAgICAgIExheW91dFVuaXQgd2lkdGhPZlZpc2li
bGVUZXh0IHsgcmVuZGVyZXIud2lkdGgodGV4dEJveC5zdGFydCgpLCAqdGV4dEJveC50cnVuY2F0
aW9uKCksIHRleHRCb3gudGV4dFBvcygpLCB0ZXh0Qm94LmlzRmlyc3RMaW5lKCkpIH07CiAgICAg
ICAgICAgICBMYXlvdXRVbml0IHdpZHRoT2ZIaWRkZW5UZXh0IHsgdGV4dEJveC5sb2dpY2FsV2lk
dGgoKSAtIHdpZHRoT2ZWaXNpYmxlVGV4dCB9OwogICAgICAgICAgICAgTGF5b3V0U2l6ZSB0cnVu
Y2F0aW9uT2Zmc2V0KHRleHRCb3guaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gd2lkdGhPZkhp
ZGRlblRleHQgOiAtd2lkdGhPZkhpZGRlblRleHQsIDBfbHUpOwogICAgICAgICAgICAgbG9jYWxQ
YWludE9mZnNldC5tb3ZlKHRleHRCb3guaXNIb3Jpem9udGFsKCkgPyB0cnVuY2F0aW9uT2Zmc2V0
IDogdHJ1bmNhdGlvbk9mZnNldC50cmFuc3Bvc2VkU2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwCmluZGV4IGM5MWVkY2M2Mzhi
NTVjMGZkYmQyNzkwMmMwYWM2Yjk0NjZlNzRhNWMuLjM5MDMxNWUwZmE3NTM1NGVjZDI1NjUwYjM4
N2E1Yzk1YTY4ZjkzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdJbmxpbmVUZXh0Qm94LmNwcApAQCAtMTgwLDcgKzE4MCw3IEBAIHZvaWQgU1ZHSW5saW5lVGV4
dEJveDo6cGFpbnRTZWxlY3Rpb25CYWNrZ3JvdW5kKFBhaW50SW5mbyYgcGFpbnRJbmZvKQogewog
ICAgIEFTU0VSVChwYWludEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KHJlbmRlcmVyKCkpKTsK
ICAgICBBU1NFUlQocGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2U6OkZvcmVncm91bmQgfHwg
cGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2U6OlNlbGVjdGlvbik7Ci0gICAgQVNTRVJUKHRy
dW5jYXRpb24oKSA9PSBjTm9UcnVuY2F0aW9uKTsKKyAgICBBU1NFUlQoIXRydW5jYXRpb24oKSk7
CiAKICAgICBpZiAocmVuZGVyZXIoKS5zdHlsZSgpLnZpc2liaWxpdHkoKSAhPSBWaXNpYmlsaXR5
OjpWaXNpYmxlKQogICAgICAgICByZXR1cm47CkBAIC0yMzYsNyArMjM2LDcgQEAgdm9pZCBTVkdJ
bmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9p
bnQmIHBhaW50T2Zmc2UKIHsKICAgICBBU1NFUlQocGFpbnRJbmZvLnNob3VsZFBhaW50V2l0aGlu
Um9vdChyZW5kZXJlcigpKSk7CiAgICAgQVNTRVJUKHBhaW50SW5mby5waGFzZSA9PSBQYWludFBo
YXNlOjpGb3JlZ3JvdW5kIHx8IHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlOjpTZWxlY3Rp
b24pOwotICAgIEFTU0VSVCh0cnVuY2F0aW9uKCkgPT0gY05vVHJ1bmNhdGlvbik7CisgICAgQVNT
RVJUKCF0cnVuY2F0aW9uKCkpOwogCiAgICAgaWYgKHJlbmRlcmVyKCkuc3R5bGUoKS52aXNpYmls
aXR5KCkgIT0gVmlzaWJpbGl0eTo6VmlzaWJsZSkKICAgICAgICAgcmV0dXJuOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438323</attachid>
            <date>2021-09-16 00:35:17 -0700</date>
            <delta_ts>2021-09-16 03:32:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230311-20210916103515.patch</filename>
            <type>text/plain</type>
            <size>17288</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNDUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWJkM2Y1M2Q4MDNkMjk2
YjEwNThmZTgyYzAwMTQ4ZjdlMWFiMmVkYS4uNTIzMGFmOTI2MjE0OGExODc4ZDFkZjc1YTZjMjIz
M2FkYmYyODMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTA5LTE1ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc3RkOjpvcHRpb25h
bCBmb3IgdHJ1bmNhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMwMzExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTXlsZXMgTWF4ZmllbGQuCisK
KyAgICAgICAgUmVwbGFjZSB0aGUgY29uc3RhbnRzLgorICAgICAgICBVc2UgMCB0cnVuY2F0aW9u
IHZhbHVlIGZvciAiZnVsbCIgdHJ1bmNhdGlvbi4KKworICAgICAgICAqIHJlbmRlcmluZy9MZWdh
Y3lFbGxpcHNpc0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lFbGxpcHNpc0JveDo6
c2VsZWN0aW9uU3RhdGUgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9MZWdhY3lJbmxpbmVU
ZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUlubGluZVRleHRCb3g6OnBsYWNl
RWxsaXBzaXNCb3gpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5SW5saW5lVGV4dEJveDo6bm9k
ZUF0UG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5SW5saW5lVGV4dEJveDo6cGFpbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5SW5saW5lVGV4dEJveDo6c2VsZWN0YWJsZVJhbmdl
IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvTGVnYWN5SW5saW5lVGV4dEJveC5oOgorICAg
ICAgICAoV2ViQ29yZTo6TGVnYWN5SW5saW5lVGV4dEJveDo6dHJ1bmNhdGlvbiBjb25zdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZWxs
aXBzaXNSZWN0Rm9yVGV4dFJ1bik6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRCb3hQYWludGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRCb3hQYWludGVyOjpwYWludEZvcmVncm91bmRB
bmREZWNvcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Qm94UGFpbnRlcjo6cGFpbnRE
ZWNvcmF0aW9uKToKKworICAgICAgICBSZW1vdmUgdmFyaW91cyBmdWxsIHRydW5jYXRpb24gY2hl
Y2tzLiBaZXJvIHRydW5jYXRpb24gdmFsdWUgd2lsbCBtYWtlIHRoZW0gbm90IHBhaW50IHdpdGhv
dXQgbmVlZGluZyBleHRyYSBjaGVja3MuCisKKyAgICAgICAgKFdlYkNvcmU6OlRleHRCb3hQYWlu
dGVyOjpwYWludENvbXBvc2l0aW9uVW5kZXJsaW5lcyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
Qm94UGFpbnRlcjo6cGFpbnRDb21wb3NpdGlvblVuZGVybGluZSk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0Qm94UGFpbnRlcjo6cGFpbnRQbGF0Zm9ybURvY3VtZW50TWFya2VyKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRCb3hQYWludGVyOjpjb21wdXRlUGFpbnRSZWN0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvVGV4dEJveFNlbGVjdGFibGVSYW5nZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dEJveFNlbGVjdGFibGVSYW5nZTo6Y2xhbXAgY29uc3QpOgorCisgICAgICAgIE1haW50YWluIHRo
ZSBiZWhhdmlvciB3aGVyZSBmdWxseSB0cnVuY2F0ZWQgdGV4dCBpcyBzZWxlY3RhYmxlIHNvIGZh
c3QvdGV4dC9zY3JvbGwtdGV4dC1vdmVyZmxvdy1lbGxpcHNpcy5odG1sIGtlZXBzIHBhc3Npbmcu
CisKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHSW5saW5lVGV4dEJveDo6cGFpbnRTZWxlY3Rpb25CYWNrZ3JvdW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0lubGluZVRleHRCb3g6OnBhaW50KToKKwogMjAyMS0wOS0x
NSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50
ZWdyYXRpb25dIFRleHRCb3hTZWxlY3RhYmxlUmFuZ2U6OmFkZGl0aW9uYWxMZW5ndGhBdEVuZCBt
aXNjb21wdXRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUVs
bGlwc2lzQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lFbGxpcHNpc0Jv
eC5jcHAKaW5kZXggZWZmMmYyNTE5MGUxYzM3Y2Q3ZTRiZjgxY2JjZDhhM2Q1Mzk3MTQyOC4uYWRm
NDdiNzZjYzM0NzcyMDZhNDgzYzIwNDVjZWNlYzhmZTFhNzg5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUVsbGlwc2lzQm94LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvTGVnYWN5RWxsaXBzaXNCb3guY3BwCkBAIC0xNzgsOCArMTc4LDEwIEBA
IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgTGVnYWN5RWxsaXBzaXNCb3g6OnNlbGVjdGlv
blN0YXRlKCkgY29uc3QKIAogICAgIGF1dG8mIHRleHRCb3ggPSBkb3duY2FzdDxMZWdhY3lJbmxp
bmVUZXh0Qm94PigqbGFzdFNlbGVjdGVkQm94KTsKIAorICAgIGF1dG8gdHJ1bmNhdGlvbiA9IHRl
eHRCb3gudHJ1bmNhdGlvbigpOwogICAgIGF1dG8gW3NlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25F
bmRdID0gdGV4dEJveC5zZWxlY3Rpb25TdGFydEVuZCgpOwotICAgIGlmIChzZWxlY3Rpb25FbmQg
Pj0gdGV4dEJveC50cnVuY2F0aW9uKCkgJiYgc2VsZWN0aW9uU3RhcnQgPD0gdGV4dEJveC50cnVu
Y2F0aW9uKCkpCisKKyAgICBpZiAodHJ1bmNhdGlvbiAmJiBzZWxlY3Rpb25FbmQgPj0gKnRydW5j
YXRpb24gJiYgc2VsZWN0aW9uU3RhcnQgPD0gKnRydW5jYXRpb24pCiAgICAgICAgIHJldHVybiBS
ZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpJbnNpZGU7CiAKICAgICByZXR1cm4gUmVuZGVy
T2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6Tm9uZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9MZWdhY3lJbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9MZWdhY3lJbmxpbmVUZXh0Qm94LmNwcAppbmRleCA1NmRjMGZjMDdlMjkwNmY3MGVmNGQ2
MmQ1OTkyYjFiYjQ4NDk2NDZmLi4xZmQxYjNmZjBjZTY5NWZjY2JkZDlmMGE5OWM1ZDIzY2MxM2Mz
YTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lVGV4
dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlubGluZVRleHRC
b3guY3BwCkBAIC02OSw5ICs2OSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChMZWdhY3lJbmxpbmVUZXh0Qm94KTsKIAogc3RydWN0IFNhbWVTaXpl
QXNMZWdhY3lJbmxpbmVUZXh0Qm94IDogcHVibGljIExlZ2FjeUlubGluZUJveCB7Ci0gICAgdW5z
aWduZWQgdmFyaWFibGVzWzFdOwotICAgIHVuc2lnbmVkIHNob3J0IHZhcmlhYmxlczJbMl07CiAg
ICAgdm9pZCogcG9pbnRlcnNbMl07CisgICAgdW5zaWduZWQgdmFyaWFibGVzWzJdOworICAgIHVu
c2lnbmVkIHNob3J0IHZhcmlhYmxlczI7CiB9OwogCiBDT01QSUxFX0FTU0VSVChzaXplb2YoTGVn
YWN5SW5saW5lVGV4dEJveCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNMZWdhY3lJbmxpbmVUZXh0Qm94
KSwgTGVnYWN5SW5saW5lVGV4dEJveF9zaG91bGRfc3RheV9zbWFsbCk7CkBAIC0yMzQsNyArMjM0
LDcgQEAgdm9pZCBMZWdhY3lJbmxpbmVUZXh0Qm94OjphdHRhY2hMaW5lKCkKIGZsb2F0IExlZ2Fj
eUlubGluZVRleHRCb3g6OnBsYWNlRWxsaXBzaXNCb3goYm9vbCBmbG93SXNMVFIsIGZsb2F0IHZp
c2libGVMZWZ0RWRnZSwgZmxvYXQgdmlzaWJsZVJpZ2h0RWRnZSwgZmxvYXQgZWxsaXBzaXNXaWR0
aCwgZmxvYXQgJnRydW5jYXRlZFdpZHRoLCBib29sJiBmb3VuZEJveCkKIHsKICAgICBpZiAoZm91
bmRCb3gpIHsKLSAgICAgICAgbV90cnVuY2F0aW9uID0gY0Z1bGxUcnVuY2F0aW9uOworICAgICAg
ICBtX3RydW5jYXRpb24gPSAwOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCkBAIC0yNDgs
NyArMjQ4LDcgQEAgZmxvYXQgTGVnYWN5SW5saW5lVGV4dEJveDo6cGxhY2VFbGxpcHNpc0JveChi
b29sIGZsb3dJc0xUUiwgZmxvYXQgdmlzaWJsZUxlZnRFZGcKICAgICBib29sIHJ0bEZ1bGxUcnVu
Y2F0aW9uID0gIWZsb3dJc0xUUiAmJiBlbGxpcHNpc1ggPj0gbGVmdCgpICsgbG9naWNhbFdpZHRo
KCk7CiAgICAgaWYgKGx0ckZ1bGxUcnVuY2F0aW9uIHx8IHJ0bEZ1bGxUcnVuY2F0aW9uKSB7CiAg
ICAgICAgIC8vIFRvbyBmYXIuIEp1c3Qgc2V0IGZ1bGwgdHJ1bmNhdGlvbiwgYnV0IHJldHVybiAt
MSBhbmQgbGV0IHRoZSBlbGxpcHNpcyBqdXN0IGJlIHBsYWNlZCBhdCB0aGUgZWRnZSBvZiB0aGUg
Ym94LgotICAgICAgICBtX3RydW5jYXRpb24gPSBjRnVsbFRydW5jYXRpb247CisgICAgICAgIG1f
dHJ1bmNhdGlvbiA9IDA7CiAgICAgICAgIGZvdW5kQm94ID0gdHJ1ZTsKICAgICAgICAgcmV0dXJu
IC0xOwogICAgIH0KQEAgLTI3Miw3ICsyNzIsNyBAQCBmbG9hdCBMZWdhY3lJbmxpbmVUZXh0Qm94
OjpwbGFjZUVsbGlwc2lzQm94KGJvb2wgZmxvd0lzTFRSLCBmbG9hdCB2aXNpYmxlTGVmdEVkZwog
ICAgICAgICBpZiAoIW9mZnNldCkgewogICAgICAgICAgICAgLy8gTm8gY2hhcmFjdGVycyBzaG91
bGQgYmUgcmVuZGVyZWQuIFNldCBvdXJzZWx2ZXMgdG8gZnVsbCB0cnVuY2F0aW9uIGFuZCBwbGFj
ZSB0aGUgZWxsaXBzaXMgYXQgdGhlIG1pbiBvZiBvdXIgc3RhcnQKICAgICAgICAgICAgIC8vIGFu
ZCB0aGUgZWxsaXBzaXMgZWRnZS4KLSAgICAgICAgICAgIG1fdHJ1bmNhdGlvbiA9IGNGdWxsVHJ1
bmNhdGlvbjsKKyAgICAgICAgICAgIG1fdHJ1bmNhdGlvbiA9IDA7CiAgICAgICAgICAgICB0cnVu
Y2F0ZWRXaWR0aCArPSBlbGxpcHNpc1dpZHRoOwogICAgICAgICAgICAgcmV0dXJuIGZsb3dJc0xU
UiA/IHN0ZDo6bWluKGVsbGlwc2lzWCwgeCgpKSA6IHN0ZDo6bWF4KGVsbGlwc2lzWCwgcmlnaHQo
KSAtIGVsbGlwc2lzV2lkdGgpOwogICAgICAgICB9CkBAIC0zMTMsMTMgKzMxMywxMyBAQCBib29s
IExlZ2FjeUlubGluZVRleHRCb3g6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiBy
ZXF1ZXN0LCBIaXRUZXN0UmVzdQogICAgIGlmIChpc0xpbmVCcmVhaygpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBpZiAobV90cnVuY2F0aW9uID09IGNGdWxsVHJ1bmNhdGlvbikKKyAg
ICBpZiAobV90cnVuY2F0aW9uICYmICEqbV90cnVuY2F0aW9uKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBGbG9hdFJlY3QgcmVjdChsb2NhdGlvbkluY2x1ZGluZ0ZsaXBwaW5nKCksIHNp
emUoKSk7CiAgICAgLy8gTWFrZSBzdXJlIHRydW5jYXRlZCB0ZXh0IGlzIGlnbm9yZWQgd2hpbGUg
aGl0dGVzdGluZy4KLSAgICBpZiAobV90cnVuY2F0aW9uICE9IGNOb1RydW5jYXRpb24pIHsKLSAg
ICAgICAgTGF5b3V0VW5pdCB3aWR0aE9mVmlzaWJsZVRleHQgeyByZW5kZXJlcigpLndpZHRoKG1f
c3RhcnQsIG1fdHJ1bmNhdGlvbiwgdGV4dFBvcygpLCBpc0ZpcnN0TGluZSgpKSB9OworICAgIGlm
IChtX3RydW5jYXRpb24pIHsKKyAgICAgICAgTGF5b3V0VW5pdCB3aWR0aE9mVmlzaWJsZVRleHQg
eyByZW5kZXJlcigpLndpZHRoKG1fc3RhcnQsICptX3RydW5jYXRpb24sIHRleHRQb3MoKSwgaXNG
aXJzdExpbmUoKSkgfTsKIAogICAgICAgICBpZiAoaXNIb3Jpem9udGFsKCkpCiAgICAgICAgICAg
ICByZW5kZXJlcigpLnN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gcmVjdC5zZXRX
aWR0aCh3aWR0aE9mVmlzaWJsZVRleHQpIDogcmVjdC5zaGlmdFhFZGdlVG8ocmlnaHQoKSAtIHdp
ZHRoT2ZWaXNpYmxlVGV4dCk7CkBAIC0zODEsNyArMzgxLDcgQEAgc3RkOjpvcHRpb25hbDxib29s
PiBMZWdhY3lJbmxpbmVUZXh0Qm94OjplbXBoYXNpc01hcmtFeGlzdHNBbmRJc0Fib3ZlKGNvbnN0
IFJlbmQKIHZvaWQgTGVnYWN5SW5saW5lVGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgTGF5b3V0VW5pdCAvKmxpbmVUb3Aq
LywgTGF5b3V0VW5pdCAvKmxpbmVCb3R0b20qLykKIHsKICAgICBpZiAoaXNMaW5lQnJlYWsoKSB8
fCAhcGFpbnRJbmZvLnNob3VsZFBhaW50V2l0aGluUm9vdChyZW5kZXJlcigpKSB8fCByZW5kZXJl
cigpLnN0eWxlKCkudmlzaWJpbGl0eSgpICE9IFZpc2liaWxpdHk6OlZpc2libGUKLSAgICAgICAg
fHwgbV90cnVuY2F0aW9uID09IGNGdWxsVHJ1bmNhdGlvbiB8fCBwYWludEluZm8ucGhhc2UgPT0g
UGFpbnRQaGFzZTo6T3V0bGluZSB8fCAhaGFzVGV4dENvbnRlbnQoKSkKKyAgICAgICAgfHwgKG1f
dHJ1bmNhdGlvbiAmJiAhKm1fdHJ1bmNhdGlvbikgfHwgcGFpbnRJbmZvLnBoYXNlID09IFBhaW50
UGhhc2U6Ok91dGxpbmUgfHwgIWhhc1RleHRDb250ZW50KCkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIEFTU0VSVChwYWludEluZm8ucGhhc2UgIT0gUGFpbnRQaGFzZTo6U2VsZk91dGxpbmUgJiYg
cGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2U6OkNoaWxkT3V0bGluZXMpOwpAQCAtNDE0LDIw
ICs0MTQsMTIgQEAgVGV4dEJveFNlbGVjdGFibGVSYW5nZSBMZWdhY3lJbmxpbmVUZXh0Qm94Ojpz
ZWxlY3RhYmxlUmFuZ2UoKSBjb25zdAogICAgICAgICByZXR1cm4gMHU7CiAgICAgfSgpOwogCi0g
ICAgYXV0byB0cnVuY2F0aW9uID0gWyZdKCkgLT4gc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gewot
ICAgICAgICBpZiAobV90cnVuY2F0aW9uID09IGNOb1RydW5jYXRpb24pCi0gICAgICAgICAgICBy
ZXR1cm4geyB9OwotICAgICAgICBpZiAobV90cnVuY2F0aW9uID09IGNGdWxsVHJ1bmNhdGlvbikK
LSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCk7
Ci0gICAgICAgIHJldHVybiBtX3RydW5jYXRpb247Ci0gICAgfSgpOwotCiAgICAgcmV0dXJuIHsK
ICAgICAgICAgbV9zdGFydCwKICAgICAgICAgbV9sZW4sCiAgICAgICAgIGFkZGl0aW9uYWxMZW5n
dGhBdEVuZCwKICAgICAgICAgaXNMaW5lQnJlYWsoKSwKLSAgICAgICAgdHJ1bmNhdGlvbgorICAg
ICAgICBtX3RydW5jYXRpb24KICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lVGV4dEJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xlZ2FjeUlubGluZVRleHRCb3guaAppbmRleCBhZmMyOWNhN2MyNTFhZDM0ZGQzYzhhNmMy
NzEwZDVjZTY3ODc5N2JlLi5kNWE5NGNiMDkxMTk5MzNjYjZiMjM5ZmNhYjJlNzA2MDA2OTRiMmM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lVGV4dEJv
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVUZXh0Qm94LmgK
QEAgLTMxLDkgKzMxLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW5kZXJDb21i
aW5lVGV4dDsKIAotY29uc3QgdW5zaWduZWQgc2hvcnQgY05vVHJ1bmNhdGlvbiA9IFVTSFJUX01B
WDsKLWNvbnN0IHVuc2lnbmVkIHNob3J0IGNGdWxsVHJ1bmNhdGlvbiA9IFVTSFJUX01BWCAtIDE7
Ci0KIGNsYXNzIExlZ2FjeUlubGluZVRleHRCb3ggOiBwdWJsaWMgTGVnYWN5SW5saW5lQm94IHsK
ICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKExlZ2FjeUlubGluZVRleHRCb3gpOwogcHVibGlj
OgpAQCAtNzAsNyArNjcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG9mZnNldFJ1bihpbnQgZCkg
eyBBU1NFUlQoIWlzRGlydHkoKSk7IEFTU0VSVChkID4gMCB8fCBtX3N0YXJ0ID49IHN0YXRpY19j
YXN0PHVuc2lnbmVkPigtZCkpOyBtX3N0YXJ0ICs9IGQ7IH0KIAotICAgIHVuc2lnbmVkIHNob3J0
IHRydW5jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3RydW5jYXRpb247IH0KKyAgICBhdXRvIHRy
dW5jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3RydW5jYXRpb247IH0KIAogICAgIFRleHRCb3hT
ZWxlY3RhYmxlUmFuZ2Ugc2VsZWN0YWJsZVJhbmdlKCkgY29uc3Q7CiAKQEAgLTEzMCw3ICsxMjcs
NyBAQCBwdWJsaWM6CiAgICAgUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZSBzZWxlY3Rpb25T
dGF0ZSgpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgotICAgIHZvaWQgY2xlYXJUcnVuY2F0aW9u
KCkgZmluYWwgeyBtX3RydW5jYXRpb24gPSBjTm9UcnVuY2F0aW9uOyB9CisgICAgdm9pZCBjbGVh
clRydW5jYXRpb24oKSBmaW5hbCB7IG1fdHJ1bmNhdGlvbiA9IHsgfTsgfQogICAgIGZsb2F0IHBs
YWNlRWxsaXBzaXNCb3goYm9vbCBmbG93SXNMVFIsIGZsb2F0IHZpc2libGVMZWZ0RWRnZSwgZmxv
YXQgdmlzaWJsZVJpZ2h0RWRnZSwgZmxvYXQgZWxsaXBzaXNXaWR0aCwgZmxvYXQgJnRydW5jYXRl
ZFdpZHRoLCBib29sJiBmb3VuZEJveCkgZmluYWw7CiAKIHB1YmxpYzoKQEAgLTE3MiwxMiArMTY5
LDExIEBAIHByaXZhdGU6CiAgICAgTGVnYWN5SW5saW5lVGV4dEJveCogbV9wcmV2VGV4dEJveCB7
IG51bGxwdHIgfTsgLy8gVGhlIHByZXZpb3VzIGJveCB0aGF0IGFsc28gdXNlcyBvdXIgUmVuZGVy
T2JqZWN0CiAgICAgTGVnYWN5SW5saW5lVGV4dEJveCogbV9uZXh0VGV4dEJveCB7IG51bGxwdHIg
fTsgLy8gVGhlIG5leHQgYm94IHRoYXQgYWxzbyB1c2VzIG91ciBSZW5kZXJPYmplY3QKIAorICAg
IC8vIFdoZXJlIHRvIHRydW5jYXRlIHdoZW4gdGV4dCBvdmVyZmxvdyBpcyBhcHBsaWVkLgorICAg
IHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQgc2hvcnQ+IG1fdHJ1bmNhdGlvbjsKKwogICAgIHVuc2ln
bmVkIG1fc3RhcnQgeyAwIH07CiAgICAgdW5zaWduZWQgc2hvcnQgbV9sZW4geyAwIH07Ci0KLSAg
ICAvLyBXaGVyZSB0byB0cnVuY2F0ZSB3aGVuIHRleHQgb3ZlcmZsb3cgaXMgYXBwbGllZC4gV2Ug
dXNlIHNwZWNpYWwgY29uc3RhbnRzIHRvCi0gICAgLy8gZGVub3RlIG5vIHRydW5jYXRpb24gKHRo
ZSB3aG9sZSBydW4gcGFpbnRzKSBhbmQgZnVsbCB0cnVuY2F0aW9uIChub3RoaW5nIHBhaW50cyBh
dCBhbGwpLgotICAgIHVuc2lnbmVkIHNob3J0IG1fdHJ1bmNhdGlvbiB7IGNOb1RydW5jYXRpb24g
fTsKIH07CiAKIExheW91dFJlY3Qgc25hcHBlZFNlbGVjdGlvblJlY3QoY29uc3QgTGF5b3V0UmVj
dCYsIGZsb2F0IGxvZ2ljYWxSaWdodCwgZmxvYXQgc2VsZWN0aW9uVG9wLCBmbG9hdCBzZWxlY3Rp
b25IZWlnaHQsIGJvb2wgaXNIb3Jpem9udGFsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcAppbmRleCBkMTg3ZmEzMTdjNTM0YWQ5ZTlkMDhiMzY3ZTQxNjM5M2I2OWRkMGJi
Li4zNTI3OTY2YzZiOWVmMjgzZjlhNDE4NjdkNjBmMDgyMGMxZGQxZDUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC00MDIsOCArNDAyLDggQEAgc3RhdGljIElu
dFJlY3QgZWxsaXBzaXNSZWN0Rm9yVGV4dFJ1bihjb25zdCBMYXlvdXRJbnRlZ3JhdGlvbjo6UGF0
aFRleHRSdW4mIHJ1biwKIAogICAgIGF1dG8mIGJveCA9ICpydW4ubGVnYWN5SW5saW5lQm94KCk7
CiAKLSAgICB1bnNpZ25lZCBzaG9ydCB0cnVuY2F0aW9uID0gYm94LnRydW5jYXRpb24oKTsKLSAg
ICBpZiAodHJ1bmNhdGlvbiA9PSBjTm9UcnVuY2F0aW9uKQorICAgIGF1dG8gdHJ1bmNhdGlvbiA9
IGJveC50cnVuY2F0aW9uKCk7CisgICAgaWYgKCF0cnVuY2F0aW9uKQogICAgICAgICByZXR1cm4g
eyB9OwogCiAgICAgYXV0byBlbGxpcHNpcyA9IGJveC5yb290KCkuZWxsaXBzaXNCb3goKTsKQEAg
LTQxNiw3ICs0MTYsNyBAQCBzdGF0aWMgSW50UmVjdCBlbGxpcHNpc1JlY3RGb3JUZXh0UnVuKGNv
bnN0IExheW91dEludGVncmF0aW9uOjpQYXRoVGV4dFJ1biYgcnVuLAogICAgIC8vIFRoZSBlbGxp
cHNpcyBzaG91bGQgYmUgY29uc2lkZXJlZCB0byBiZSBzZWxlY3RlZCBpZiB0aGUgZW5kIG9mCiAg
ICAgLy8gdGhlIHNlbGVjdGlvbiBpcyBwYXN0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRydW5jYXRp
b24gYW5kIHRoZQogICAgIC8vIGJlZ2lubmluZyBvZiB0aGUgc2VsZWN0aW9uIGlzIGJlZm9yZSBv
ciBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0cnVuY2F0aW9uLgotICAgIGlmIChlbGxpcHNpc0Vu
ZFBvc2l0aW9uIDwgdHJ1bmNhdGlvbiAmJiBlbGxpcHNpc1N0YXJ0UG9zaXRpb24gPiB0cnVuY2F0
aW9uKQorICAgIGlmIChlbGxpcHNpc0VuZFBvc2l0aW9uIDwgKnRydW5jYXRpb24gJiYgZWxsaXBz
aXNTdGFydFBvc2l0aW9uID4gKnRydW5jYXRpb24pCiAgICAgICAgIHJldHVybiB7IH07CiAKICAg
ICByZXR1cm4gZWxsaXBzaXMtPnNlbGVjdGlvblJlY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9UZXh0Qm94UGFpbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvVGV4dEJveFBhaW50ZXIuY3BwCmluZGV4IGJhZmEyY2FiNDA2MjIyYTYxYjY4ODgwNTll
MjFlZmE4Nzc0Njg0MTYuLjBkMjFlNzE3MzU1MDUzZjExYzNkMmFkNDFjNTQxMDU4ODA1ZGQ1OTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Qm94UGFpbnRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRCb3hQYWludGVyLmNwcApAQCAtMTc5
LDkgKzE3OSw3IEBAIHZvaWQgVGV4dEJveFBhaW50ZXI6OnBhaW50Rm9yZWdyb3VuZEFuZERlY29y
YXRpb25zKCkKICAgICBib29sIGxpbmVEZWNvcmF0aW9ucyA9ICF0ZXh0RGVjb3JhdGlvbnMuaXNF
bXB0eSgpOwogICAgIGlmICgobGluZURlY29yYXRpb25zIHx8IGhpZ2hsaWdodERlY29yYXRpb25z
KSAmJiBtX3BhaW50SW5mby5waGFzZSAhPSBQYWludFBoYXNlOjpTZWxlY3Rpb24pIHsKICAgICAg
ICAgVGV4dFJ1biB0ZXh0UnVuID0gbV90ZXh0Qm94LmNyZWF0ZVRleHRSdW4oKTsKLSAgICAgICAg
dW5zaWduZWQgbGVuZ3RoID0gdGV4dFJ1bi5sZW5ndGgoKTsKLSAgICAgICAgaWYgKG1fdGV4dEJv
eC50cnVuY2F0aW9uKCkgIT0gY05vVHJ1bmNhdGlvbikKLSAgICAgICAgICAgIGxlbmd0aCA9IG1f
dGV4dEJveC50cnVuY2F0aW9uKCk7CisgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IG1fdGV4dEJv
eC50cnVuY2F0aW9uKCkudmFsdWVfb3IodGV4dFJ1bi5sZW5ndGgoKSk7CiAgICAgICAgIHVuc2ln
bmVkIHNlbGVjdGlvblN0YXJ0ID0gMDsKICAgICAgICAgdW5zaWduZWQgc2VsZWN0aW9uRW5kID0g
MDsKICAgICAgICAgaWYgKG1faGF2ZVNlbGVjdGlvbikKQEAgLTMyNyw3ICszMjUsMTAgQEAgdm9p
ZCBUZXh0Qm94UGFpbnRlcjo6cGFpbnRGb3JlZ3JvdW5kKGNvbnN0IFN0eWxlZE1hcmtlZFRleHQm
IG1hcmtlZFRleHQpCiAKIHZvaWQgVGV4dEJveFBhaW50ZXI6OnBhaW50RGVjb3JhdGlvbihjb25z
dCBTdHlsZWRNYXJrZWRUZXh0JiBtYXJrZWRUZXh0LCBjb25zdCBGbG9hdFJlY3QmIGNsaXBPdXRS
ZWN0KQogewotICAgIGlmIChtX3RleHRCb3gudHJ1bmNhdGlvbigpID09IGNGdWxsVHJ1bmNhdGlv
bikKKyAgICAvLyAxLiBDb21wdXRlIHRleHQgc2VsZWN0aW9uCisgICAgdW5zaWduZWQgc3RhcnRP
ZmZzZXQgPSBtYXJrZWRUZXh0LnN0YXJ0T2Zmc2V0OworICAgIHVuc2lnbmVkIGVuZE9mZnNldCA9
IG1hcmtlZFRleHQuZW5kT2Zmc2V0OworICAgIGlmIChzdGFydE9mZnNldCA+PSBlbmRPZmZzZXQp
CiAgICAgICAgIHJldHVybjsKIAogICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCA9IG1fcGFp
bnRJbmZvLmNvbnRleHQoKTsKQEAgLTM0MCwxMiArMzQxLDYgQEAgdm9pZCBUZXh0Qm94UGFpbnRl
cjo6cGFpbnREZWNvcmF0aW9uKGNvbnN0IFN0eWxlZE1hcmtlZFRleHQmIG1hcmtlZFRleHQsIGNv
bnN0IEYKICAgICBpZiAoaXNDb21iaW5lZFRleHQpCiAgICAgICAgIGNvbnRleHQuY29uY2F0Q1RN
KHJvdGF0aW9uKG1fcGFpbnRSZWN0LCBDbG9ja3dpc2UpKTsKIAotICAgIC8vIDEuIENvbXB1dGUg
dGV4dCBzZWxlY3Rpb24KLSAgICB1bnNpZ25lZCBzdGFydE9mZnNldCA9IG1hcmtlZFRleHQuc3Rh
cnRPZmZzZXQ7Ci0gICAgdW5zaWduZWQgZW5kT2Zmc2V0ID0gbWFya2VkVGV4dC5lbmRPZmZzZXQ7
Ci0gICAgaWYgKHN0YXJ0T2Zmc2V0ID49IGVuZE9mZnNldCkKLSAgICAgICAgcmV0dXJuOwotCiAg
ICAgLy8gTm90ZSB0aGF0IGlmIHRoZSB0ZXh0IGlzIHRydW5jYXRlZCwgd2UgbGV0IHRoZSB0aGlu
ZyBiZWluZyBwYWludGVkIGluIHRoZSB0cnVuY2F0aW9uCiAgICAgLy8gZHJhdyBpdHMgb3duIGRl
Y29yYXRpb24uCiAgICAgVGV4dFJ1biB0ZXh0UnVuID0gbV90ZXh0Qm94LmNyZWF0ZVRleHRSdW4o
KTsKQEAgLTM5MCw5ICszODUsNiBAQCB2b2lkIFRleHRCb3hQYWludGVyOjpwYWludERlY29yYXRp
b24oY29uc3QgU3R5bGVkTWFya2VkVGV4dCYgbWFya2VkVGV4dCwgY29uc3QgRgogCiB2b2lkIFRl
eHRCb3hQYWludGVyOjpwYWludENvbXBvc2l0aW9uVW5kZXJsaW5lcygpCiB7Ci0gICAgaWYgKG1f
dGV4dEJveC50cnVuY2F0aW9uKCkgPT0gY0Z1bGxUcnVuY2F0aW9uKQotICAgICAgICByZXR1cm47
Ci0KICAgICBmb3IgKGF1dG8mIHVuZGVybGluZSA6IG1fcmVuZGVyZXIuZnJhbWUoKS5lZGl0b3Io
KS5jdXN0b21Db21wb3NpdGlvblVuZGVybGluZXMoKSkgewogICAgICAgICBpZiAodW5kZXJsaW5l
LmVuZE9mZnNldCA8PSBtX3RleHRCb3guc3RhcnQoKSkgewogICAgICAgICAgICAgLy8gVW5kZXJs
aW5lIGlzIGNvbXBsZXRlbHkgYmVmb3JlIHRoaXMgcnVuLiBUaGlzIG1pZ2h0IGJlIGFuIHVuZGVy
bGluZSB0aGF0IHNpdHMKQEAgLTQzNSw4ICs0MjcsOCBAQCB2b2lkIFRleHRCb3hQYWludGVyOjpw
YWludENvbXBvc2l0aW9uVW5kZXJsaW5lKGNvbnN0IENvbXBvc2l0aW9uVW5kZXJsaW5lJiB1bmRl
cgogICAgICAgICBwYWludEVuZCA9IHN0ZDo6bWluKHBhaW50RW5kLCAodW5zaWduZWQpdW5kZXJs
aW5lLmVuZE9mZnNldCk7CiAgICAgICAgIHVzZVdob2xlV2lkdGggPSBmYWxzZTsKICAgICB9Ci0g
ICAgaWYgKG1fdGV4dEJveC50cnVuY2F0aW9uKCkgIT0gY05vVHJ1bmNhdGlvbikgewotICAgICAg
ICBwYWludEVuZCA9IHN0ZDo6bWluKHBhaW50RW5kLCBtX3RleHRCb3guc3RhcnQoKSArIG1fdGV4
dEJveC50cnVuY2F0aW9uKCkpOworICAgIGlmIChtX3RleHRCb3gudHJ1bmNhdGlvbigpKSB7Cisg
ICAgICAgIHBhaW50RW5kID0gc3RkOjptaW4ocGFpbnRFbmQsIG1fdGV4dEJveC5zdGFydCgpICsg
Km1fdGV4dEJveC50cnVuY2F0aW9uKCkpOwogICAgICAgICB1c2VXaG9sZVdpZHRoID0gZmFsc2U7
CiAgICAgfQogICAgIGlmICghdXNlV2hvbGVXaWR0aCkgewpAQCAtNDg5LDkgKzQ4MSw2IEBAIHZv
aWQgVGV4dEJveFBhaW50ZXI6OnBhaW50UGxhdGZvcm1Eb2N1bWVudE1hcmtlcihjb25zdCBNYXJr
ZWRUZXh0JiBtYXJrZWRUZXh0KQogICAgIGlmIChtX2RvY3VtZW50LnByaW50aW5nKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGlmIChtX3RleHRCb3gudHJ1bmNhdGlvbigpID09IGNGdWxsVHJ1
bmNhdGlvbikKLSAgICAgICAgcmV0dXJuOwotCiAgICAgYXV0byBib3VuZHMgPSBjYWxjdWxhdGVE
b2N1bWVudE1hcmtlckJvdW5kcyhtX3RleHRCb3gsIG1hcmtlZFRleHQpOwogCiAgICAgYXV0byBs
aW5lU3R5bGVGb3JNYXJrZWRUZXh0VHlwZSA9IFsmXSgpIC0+IERvY3VtZW50TWFya2VyTGluZVN0
eWxlIHsKQEAgLTUyNCw3ICs1MTMsNyBAQCBGbG9hdFJlY3QgVGV4dEJveFBhaW50ZXI6OmNvbXB1
dGVQYWludFJlY3QoY29uc3QgTGVnYWN5SW5saW5lVGV4dEJveCYgdGV4dEJveCwgYwogewogICAg
IEZsb2F0UG9pbnQgbG9jYWxQYWludE9mZnNldChwYWludE9mZnNldCk7CiAKLSAgICBpZiAodGV4
dEJveC50cnVuY2F0aW9uKCkgIT0gY05vVHJ1bmNhdGlvbikgeworICAgIGlmICh0ZXh0Qm94LnRy
dW5jYXRpb24oKSkgewogICAgICAgICBhdXRvJiByZW5kZXJlciA9IHRleHRCb3gucmVuZGVyZXIo
KTsKICAgICAgICAgaWYgKHJlbmRlcmVyLmNvbnRhaW5pbmdCbG9jaygpLT5zdHlsZSgpLmlzTGVm
dFRvUmlnaHREaXJlY3Rpb24oKSAhPSB0ZXh0Qm94LmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkg
ewogICAgICAgICAgICAgLy8gTWFrZSB0aGUgdmlzaWJsZSBmcmFnbWVudCBvZiB0ZXh0IGh1ZyB0
aGUgZWRnZSBjbG9zZXN0IHRvIHRoZSByZXN0IG9mIHRoZSBydW4gYnkgbW92aW5nIHRoZSBvcmln
aW4KQEAgLTUzNSw3ICs1MjQsNyBAQCBGbG9hdFJlY3QgVGV4dEJveFBhaW50ZXI6OmNvbXB1dGVQ
YWludFJlY3QoY29uc3QgTGVnYWN5SW5saW5lVGV4dEJveCYgdGV4dEJveCwgYwogICAgICAgICAg
ICAgLy8gZmFydGhlciB0byB0aGUgcmlnaHQuCiAgICAgICAgICAgICAvLyBOT1RFOiBXZWJLaXQn
cyBiZWhhdmlvciBkaWZmZXJzIGZyb20gdGhhdCBvZiBJRSB3aGljaCBhcHBlYXJzIHRvIGp1c3Qg
b3ZlcmxheSB0aGUgZWxsaXBzaXMgb24gdG9wIG9mIHRoZQogICAgICAgICAgICAgLy8gdHJ1bmNh
dGVkIHN0cmluZyBpLmUuICB8SGVsbG98Q0JBfCAtPiB8Li4ubG98Q0JBfAotICAgICAgICAgICAg
TGF5b3V0VW5pdCB3aWR0aE9mVmlzaWJsZVRleHQgeyByZW5kZXJlci53aWR0aCh0ZXh0Qm94LnN0
YXJ0KCksIHRleHRCb3gudHJ1bmNhdGlvbigpLCB0ZXh0Qm94LnRleHRQb3MoKSwgdGV4dEJveC5p
c0ZpcnN0TGluZSgpKSB9OworICAgICAgICAgICAgTGF5b3V0VW5pdCB3aWR0aE9mVmlzaWJsZVRl
eHQgeyByZW5kZXJlci53aWR0aCh0ZXh0Qm94LnN0YXJ0KCksICp0ZXh0Qm94LnRydW5jYXRpb24o
KSwgdGV4dEJveC50ZXh0UG9zKCksIHRleHRCb3guaXNGaXJzdExpbmUoKSkgfTsKICAgICAgICAg
ICAgIExheW91dFVuaXQgd2lkdGhPZkhpZGRlblRleHQgeyB0ZXh0Qm94LmxvZ2ljYWxXaWR0aCgp
IC0gd2lkdGhPZlZpc2libGVUZXh0IH07CiAgICAgICAgICAgICBMYXlvdXRTaXplIHRydW5jYXRp
b25PZmZzZXQodGV4dEJveC5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyB3aWR0aE9mSGlkZGVu
VGV4dCA6IC13aWR0aE9mSGlkZGVuVGV4dCwgMF9sdSk7CiAgICAgICAgICAgICBsb2NhbFBhaW50
T2Zmc2V0Lm1vdmUodGV4dEJveC5pc0hvcml6b250YWwoKSA/IHRydW5jYXRpb25PZmZzZXQgOiB0
cnVuY2F0aW9uT2Zmc2V0LnRyYW5zcG9zZWRTaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1RleHRCb3hTZWxlY3RhYmxlUmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9UZXh0Qm94U2VsZWN0YWJsZVJhbmdlLmgKaW5kZXggNjZkMmE3YTU2MjFmY2Qx
MzM4OWM1MTM1ODNmMjRiOWI3ZjJiMTBkNS4uN2ExYzEwMzRiOGIzOTE5M2U5MjgzNWYyZTNmMjU0
ZTUzZGFiMjk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRCb3hT
ZWxlY3RhYmxlUmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEJveFNl
bGVjdGFibGVSYW5nZS5oCkBAIC0zOSw3ICszOSw4IEBAIHN0cnVjdCBUZXh0Qm94U2VsZWN0YWJs
ZVJhbmdlIHsKICAgICB7CiAgICAgICAgIGF1dG8gY2xhbXBlZE9mZnNldCA9IHN0ZDo6Y2xhbXAo
b2Zmc2V0LCBzdGFydCwgc3RhcnQgKyBsZW5ndGgpIC0gc3RhcnQ7CiAKLSAgICAgICAgaWYgKHRy
dW5jYXRpb24pCisgICAgICAgIC8vIEZJWE1FOiBGb3Igc29tZSByZWFzb24gd2UgYWxsb3cgdGhl
IGNhcmV0IG1vdmUgdG8gKGludmlzaWJsZSkgZnVsbHkgdHJ1bmNhdGVkIHRleHQuIFRoZSB6ZXJv
IHRlc3QgaXMgdG8ga2VlcCB0aGF0IGJlaGF2aW9yLgorICAgICAgICBpZiAodHJ1bmNhdGlvbiAm
JiAqdHJ1bmNhdGlvbikKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om1pbjx1bnNpZ25lZD4oY2xh
bXBlZE9mZnNldCwgKnRydW5jYXRpb24pOwogCiAgICAgICAgIGlmIChjbGFtcGVkT2Zmc2V0ID09
IGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5s
aW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRl
eHRCb3guY3BwCmluZGV4IGM5MWVkY2M2MzhiNTVjMGZkYmQyNzkwMmMwYWM2Yjk0NjZlNzRhNWMu
LjM5MDMxNWUwZmE3NTM1NGVjZDI1NjUwYjM4N2E1Yzk1YTY4ZjkzZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcApAQCAtMTgwLDcg
KzE4MCw3IEBAIHZvaWQgU1ZHSW5saW5lVGV4dEJveDo6cGFpbnRTZWxlY3Rpb25CYWNrZ3JvdW5k
KFBhaW50SW5mbyYgcGFpbnRJbmZvKQogewogICAgIEFTU0VSVChwYWludEluZm8uc2hvdWxkUGFp
bnRXaXRoaW5Sb290KHJlbmRlcmVyKCkpKTsKICAgICBBU1NFUlQocGFpbnRJbmZvLnBoYXNlID09
IFBhaW50UGhhc2U6OkZvcmVncm91bmQgfHwgcGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2U6
OlNlbGVjdGlvbik7Ci0gICAgQVNTRVJUKHRydW5jYXRpb24oKSA9PSBjTm9UcnVuY2F0aW9uKTsK
KyAgICBBU1NFUlQoIXRydW5jYXRpb24oKSk7CiAKICAgICBpZiAocmVuZGVyZXIoKS5zdHlsZSgp
LnZpc2liaWxpdHkoKSAhPSBWaXNpYmlsaXR5OjpWaXNpYmxlKQogICAgICAgICByZXR1cm47CkBA
IC0yMzYsNyArMjM2LDcgQEAgdm9pZCBTVkdJbmxpbmVUZXh0Qm94OjpwYWludChQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2UKIHsKICAgICBBU1NFUlQo
cGFpbnRJbmZvLnNob3VsZFBhaW50V2l0aGluUm9vdChyZW5kZXJlcigpKSk7CiAgICAgQVNTRVJU
KHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlOjpGb3JlZ3JvdW5kIHx8IHBhaW50SW5mby5w
aGFzZSA9PSBQYWludFBoYXNlOjpTZWxlY3Rpb24pOwotICAgIEFTU0VSVCh0cnVuY2F0aW9uKCkg
PT0gY05vVHJ1bmNhdGlvbik7CisgICAgQVNTRVJUKCF0cnVuY2F0aW9uKCkpOwogCiAgICAgaWYg
KHJlbmRlcmVyKCkuc3R5bGUoKS52aXNpYmlsaXR5KCkgIT0gVmlzaWJpbGl0eTo6VmlzaWJsZSkK
ICAgICAgICAgcmV0dXJuOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>