<?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>220219</bug_id>
          
          <creation_ts>2021-01-01 04:08:03 -0800</creation_ts>
          <short_desc>[JSC] Remove unnecessary mov bytecodes when performing simple object pattern destructuring to variables</short_desc>
          <delta_ts>2021-01-02 12:47:15 -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>New Bugs</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>220204</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1716950</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-01 04:08:03 -0800</bug_when>
    <thetext>[JSC] Remove unnecessary mov bytecodes when performing simple object pattern destructuring to variables</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716951</commentid>
    <comment_count>1</comment_count>
      <attachid>416879</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-01 04:13:27 -0800</bug_when>
    <thetext>Created attachment 416879
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716953</commentid>
    <comment_count>2</comment_count>
      <attachid>416880</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-01 04:22:16 -0800</bug_when>
    <thetext>Created attachment 416880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716961</commentid>
    <comment_count>3</comment_count>
      <attachid>416884</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-01 13:21:04 -0800</bug_when>
    <thetext>Created attachment 416884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716966</commentid>
    <comment_count>4</comment_count>
      <attachid>416885</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-01 13:54:14 -0800</bug_when>
    <thetext>Created attachment 416885
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716967</commentid>
    <comment_count>5</comment_count>
      <attachid>416885</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-01-01 13:56:17 -0800</bug_when>
    <thetext>Comment on attachment 416885
Patch

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

r=me, great change!

&gt; JSTests/stress/object-pattern-simple-fast-path.js:102
&gt; +}());

Would it be reasonable to add more tests for guards in writableDirectBindingIfPossible()? Like `var`, global object property that is non-writable or accessor, WithStatement?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717007</commentid>
    <comment_count>6</comment_count>
      <attachid>416885</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-02 12:40:25 -0800</bug_when>
    <thetext>Comment on attachment 416885
Patch

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

&gt;&gt; JSTests/stress/object-pattern-simple-fast-path.js:102
&gt;&gt; +}());
&gt; 
&gt; Would it be reasonable to add more tests for guards in writableDirectBindingIfPossible()? Like `var`, global object property that is non-writable or accessor, WithStatement?

Nice! Added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717008</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-02 12:46:50 -0800</bug_when>
    <thetext>Committed r271121: &lt;https://trac.webkit.org/changeset/271121&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1717009</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-02 12:47:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/72771576&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416879</attachid>
            <date>2021-01-01 04:13:27 -0800</date>
            <delta_ts>2021-01-01 04:22:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220219-20210101041326.patch</filename>
            <type>text/plain</type>
            <size>12434</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NTExMThmMjcwMDE2MzY3OTlkYjhlMzhhYjQ2YzkxZGM2OGNhMDlkLi5kMDdmZTQwYzFlYjhhMDQ3
ZDc5NDM4ZjM1MDNhNDE2YzE2MzRhMmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAyMS0wMS0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlbW92ZSB1bm5lY2Vzc2FyeSBtb3YgYnl0ZWNvZGVzIHdoZW4g
cGVyZm9ybWluZyBzaW1wbGUgb2JqZWN0IHBhdHRlcm4gZGVzdHJ1Y3R1cmluZyB0byB2YXJpYWJs
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIx
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJl
bnRseSwgd2UgYXJlIGZpcnN0IHB1dHMgb2JqZWN0IHBhdHRlcm4ncyBleHByZXNzaW9uIGludG8g
dGVtcG9yYXJ5IHZhcmlhYmxlLCBhbmQgdGhlbiwgd2Ugc3RvcmUgaXQgaW50byBsb2NhbCB2YXJp
YWJsZSByZWdpc3Rlci4KKworICAgICAgICBUaGUgZm9sbG93aW5nIGNvZGUKKworICAgICAgICAg
ICAgKHsgZGF0YSB9ID0gb2JqZWN0KTsKKworICAgICAgICBlbWl0cyB0aGlzIGtpbmQgb2YgYnl0
ZWNvZGUuCisKKyAgICAgICAgICAgIGdldF9ieV9pZCAgICAgICAgICBkc3Q6bG9jMTAsIGJhc2U6
bG9jOSwgcHJvcGVydHk6MAorICAgICAgICAgICAgbW92ICAgICAgICAgICAgICAgIGRzdDpsb2M2
LCBzcmM6bG9jMTAKKworICAgICAgICBIb3dldmVyLCB0aGlzIHNob3VsZCBiZQorCisgICAgICAg
ICAgICBnZXRfYnlfaWQgICAgICAgICAgZHN0OmxvYzYsIGJhc2U6bG9jOSwgcHJvcGVydHk6MAor
CisgICAgICAgIFdlIGFyZSBlbWl0dGluZyBtYW55IHVubmVjZXNzYXJ5IG1vdnMgc2luY2UgdGhp
cyBkZXN0cnVjdHVyaW5nIHBhdHRlcm4gaXMgY29tbW9uLiBJbmNyZWFzaW5nIGFtb3VudCBvZiBt
b3YgKDEpIGRpc2NvdXJhZ2VzIGlubGluaW5nIHVubmVjZXNzYXJpbHkgYW5kICgyKSBzaW1wbHkg
bWFrZXMKKyAgICAgICAgYnl0ZWNvZGUgbWVtb3J5IGxhcmdlLiBTaW5jZSB0aGlzIGlzIHZlcnkg
Y29tbW9uIHBhdHRlcm4sIHdlIHNob3VsZCBjYXJlZnVsbHkgb3B0aW1pemUgaXQgdG8gcmVtb3Zl
IHN1Y2ggdW5uZWNlc3NhcnkgbW92cy4KKworICAgICAgICBUaGlzIHBhdGNoIGxvb2tzIGludG8g
cGF0dGVybiB3aGVuIHBlcmZvcm1pbmcgb2JqZWN0IHBhdHRlcm4gZGVzdHJ1Y3R1cmluZy4gQW5k
IGF2b2lkIGVtaXR0aW5nIG1vdiB3aGVuIGl0IGlzIHBvc3NpYmxlLiBUaGVyZSBhcmUgc29tZSBj
YXNlcyB3ZSBjYW5ub3QgcmVtb3ZlIG1vdnMsIHNvCisgICAgICAgIHRoaXMgcGF0Y2gncyB3cml0
YWJsZURpcmVjdEJpbmRpbmdJZlBvc3NpYmxlIGxvb2tzIGludG8gd2hldGhlciB0aGlzIGlzIHBv
c3NpYmxlICgmIHByb2ZpdGFibGUpLgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdFBhdHRlcm5Ob2RlOjpiaW5kVmFsdWUgY29u
c3QpOgorICAgICAgICAoSlNDOjpCaW5kaW5nTm9kZTo6d3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQ
b3NzaWJsZSBjb25zdCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdOb2RlOjpmaW5pc2hEaXJlY3RC
aW5kaW5nQXNzaWdubWVudCBjb25zdCk6CisgICAgICAgIChKU0M6OkFzc2lnbm1lbnRFbGVtZW50
Tm9kZTo6d3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQb3NzaWJsZSBjb25zdCk6CisgICAgICAgIChK
U0M6OkFzc2lnbm1lbnRFbGVtZW50Tm9kZTo6ZmluaXNoRGlyZWN0QmluZGluZ0Fzc2lnbm1lbnQg
Y29uc3QpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAoSlNDOjpEZXN0cnVj
dHVyaW5nUGF0dGVybk5vZGU6OndyaXRhYmxlRGlyZWN0QmluZGluZ0lmUG9zc2libGUgY29uc3Qp
OgorICAgICAgICAoSlNDOjpEZXN0cnVjdHVyaW5nUGF0dGVybk5vZGU6OmZpbmlzaERpcmVjdEJp
bmRpbmdBc3NpZ25tZW50IGNvbnN0KToKKwogMjAyMC0xMi0zMSAgQWxleGV5IFNodmF5a2EgIDxz
aHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgSlNGdW5jdGlvbjo6ZGVsZXRlUHJvcGVy
dHkoKSBmYWlscyB0byBkZWxldGUgYSBub24tZXhpc3RlbnQgInByb3RvdHlwZSIgcHJvcGVydHkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2Rl
Z2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2Vu
LmNwcAppbmRleCBkNGE4OWI0NGQzNjdiYzI2OWZkOWI4NGNlMzIxNjQ1MzM5ZmU2OTNhLi44OWJi
MDJlM2ZkYjM5NWU4ZmU3MWY3ODk1MzU4ZmYzMjc0ZDlhZTgwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC01MjY0LDcg
KzUyNjQsMjAgQEAgdm9pZCBPYmplY3RQYXR0ZXJuTm9kZTo6YmluZFZhbHVlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIHJocykKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG1fdGFyZ2V0UGF0dGVybnMuc2l6ZSgpOyBpKyspIHsKICAgICAgICAgY29uc3QgYXV0
byYgdGFyZ2V0ID0gbV90YXJnZXRQYXR0ZXJuc1tpXTsKICAgICAgICAgaWYgKHRhcmdldC5iaW5k
aW5nVHlwZSA9PSBCaW5kaW5nVHlwZTo6RWxlbWVudCkgewotICAgICAgICAgICAgUmVmUHRyPFJl
Z2lzdGVySUQ+IHRlbXAgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7CisgICAgICAgICAgICAv
LyBJZiB0aGUgZGVzdHJ1Y3R1cmluZyBiZWNvbWVzIGdldF9ieV9pZCBhbmQgbW92LCB0aGVuIHdl
IHNob3VsZCBzdG9yZSByZXN1bHRzIGRpcmVjdGx5IHRvIHRoZSBsb2NhbCdzIGJpbmRpbmcuCisg
ICAgICAgICAgICAvLyBGcm9tCisgICAgICAgICAgICAvLyAgICAgZ2V0X2J5X2lkICAgICAgICAg
IGRzdDpsb2MxMCwgYmFzZTpsb2M5LCBwcm9wZXJ0eTowCisgICAgICAgICAgICAvLyAgICAgbW92
ICAgICAgICAgICAgICAgIGRzdDpsb2M2LCBzcmM6bG9jMTAKKyAgICAgICAgICAgIC8vIFRvCisg
ICAgICAgICAgICAvLyAgICAgZ2V0X2J5X2lkICAgICAgICAgIGRzdDpsb2M2LCBiYXNlOmxvYzks
IHByb3BlcnR5OjAKKworICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHRlbXA7CisgICAg
ICAgICAgICBSZWdpc3RlcklEKiBkaXJlY3RCaW5kaW5nID0gdGFyZ2V0LnBhdHRlcm4tPndyaXRh
YmxlRGlyZWN0QmluZGluZ0lmUG9zc2libGUoZ2VuZXJhdG9yKTsKKyAgICAgICAgICAgIGlmIChk
aXJlY3RCaW5kaW5nKQorICAgICAgICAgICAgICAgIHRlbXAgPSBkaXJlY3RCaW5kaW5nOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlbXAgPSBnZW5lcmF0b3IubmV3VGVtcG9y
YXJ5KCk7CisKICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm9wZXJ0eU5hbWU7CiAg
ICAgICAgICAgICBpZiAoIXRhcmdldC5wcm9wZXJ0eUV4cHJlc3Npb24pIHsKICAgICAgICAgICAg
ICAgICBPcHRpb25hbDx1aW50MzJfdD4gb3B0aW9uYWxJbmRleCA9IHBhcnNlSW5kZXgodGFyZ2V0
LnByb3BlcnR5TmFtZSk7CkBAIC01Mjc5LDYgKzUyOTIsOCBAQCB2b2lkIE9iamVjdFBhdHRlcm5O
b2RlOjpiaW5kVmFsdWUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCog
cmhzKQogICAgICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0R2V0QnlWYWwodGVtcC5nZXQoKSwg
cmhzLCBwcm9wZXJ0eU5hbWUuZ2V0KCkpOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICAv
LyBBZnRlciBzZXR0aW5nIHx0ZW1wfCwgd2UgbXVzdCBub3QgZXhlY3V0ZSBleHByZXNzaW9uIHRo
YXQgY2FuIGNoYW5nZSB8dGVtcHwgKHRlbXAgY2FuIGJlIGEgbG9jYWwgUmVnaXN0ZXJJRCopLgor
ICAgICAgICAgICAgLy8gQW55IGZ1bmN0aW9uIGNhbGxzIGNhbm5vdCBjaGFuZ2UgbG9jYWxzLiBB
bmQgZW1pdFRvUHJvcGVydHlLZXkgaXMgdXNpbmcgdGVtcERlc3RpbmF0aW9uIHNvIGl0IG5ldmVy
IGNoYW5nZXMgfHRlbXB8LgogICAgICAgICAgICAgaWYgKG1fY29udGFpbnNSZXN0RWxlbWVudCkg
ewogICAgICAgICAgICAgICAgIGlmIChtX2NvbnRhaW5zQ29tcHV0ZWRQcm9wZXJ0eSkgewogICAg
ICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0LnByb3BlcnR5RXhwcmVzc2lvbikKQEAgLTUyOTYs
NyArNTMxMSwxMCBAQCB2b2lkIE9iamVjdFBhdHRlcm5Ob2RlOjpiaW5kVmFsdWUoQnl0ZWNvZGVH
ZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogcmhzKQogCiAgICAgICAgICAgICBpZiAo
dGFyZ2V0LmRlZmF1bHRWYWx1ZSkKICAgICAgICAgICAgICAgICBhc3NpZ25EZWZhdWx0VmFsdWVJ
ZlVuZGVmaW5lZChnZW5lcmF0b3IsIHRlbXAuZ2V0KCksIHRhcmdldC5kZWZhdWx0VmFsdWUpOwot
ICAgICAgICAgICAgdGFyZ2V0LnBhdHRlcm4tPmJpbmRWYWx1ZShnZW5lcmF0b3IsIHRlbXAuZ2V0
KCkpOworICAgICAgICAgICAgaWYgKGRpcmVjdEJpbmRpbmcpCisgICAgICAgICAgICAgICAgdGFy
Z2V0LnBhdHRlcm4tPmZpbmlzaERpcmVjdEJpbmRpbmdBc3NpZ25tZW50KGdlbmVyYXRvcik7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGFyZ2V0LnBhdHRlcm4tPmJpbmRWYWx1
ZShnZW5lcmF0b3IsIHRlbXAuZ2V0KCkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
QVNTRVJUKHRhcmdldC5iaW5kaW5nVHlwZSA9PSBCaW5kaW5nVHlwZTo6UmVzdEVsZW1lbnQpOwog
ICAgICAgICAgICAgQVNTRVJUKGkgPT0gbV90YXJnZXRQYXR0ZXJucy5zaXplKCkgLSAxKTsKQEAg
LTUzMzEsNiArNTM0OSwyOSBAQCB2b2lkIE9iamVjdFBhdHRlcm5Ob2RlOjpjb2xsZWN0Qm91bmRJ
ZGVudGlmaWVycyhWZWN0b3I8SWRlbnRpZmllcj4mIGlkZW50aWZpZXJzKQogICAgICAgICBtX3Rh
cmdldFBhdHRlcm5zW2ldLnBhdHRlcm4tPmNvbGxlY3RCb3VuZElkZW50aWZpZXJzKGlkZW50aWZp
ZXJzKTsKIH0KIAorUmVnaXN0ZXJJRCogQmluZGluZ05vZGU6OndyaXRhYmxlRGlyZWN0QmluZGlu
Z0lmUG9zc2libGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvcikgY29uc3QKK3sKKyAgICBW
YXJpYWJsZSB2YXIgPSBnZW5lcmF0b3IudmFyaWFibGUobV9ib3VuZFByb3BlcnR5KTsKKyAgICBi
b29sIGlzUmVhZE9ubHkgPSB2YXIuaXNSZWFkT25seSgpICYmIG1fYmluZGluZ0NvbnRleHQgIT0g
QXNzaWdubWVudENvbnRleHQ6OkNvbnN0RGVjbGFyYXRpb25TdGF0ZW1lbnQ7CisgICAgaWYgKFJl
Z2lzdGVySUQqIGxvY2FsID0gdmFyLmxvY2FsKCkpIHsKKyAgICAgICAgaWYgKG1fYmluZGluZ0Nv
bnRleHQgPT0gQXNzaWdubWVudENvbnRleHQ6OkFzc2lnbm1lbnRFeHByZXNzaW9uKSB7CisgICAg
ICAgICAgICBpZiAoZ2VuZXJhdG9yLm5lZWRzVERaQ2hlY2sodmFyKSkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNSZWFkT25seSkKKyAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gbG9jYWw7CisgICAgfQor
ICAgIHJldHVybiBudWxscHRyOworfQorCit2b2lkIEJpbmRpbmdOb2RlOjpmaW5pc2hEaXJlY3RC
aW5kaW5nQXNzaWdubWVudChCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yKSBjb25zdAorewor
ICAgIEFTU0VSVCh3cml0YWJsZURpcmVjdEJpbmRpbmdJZlBvc3NpYmxlKGdlbmVyYXRvcikpOwor
ICAgIGlmIChtX2JpbmRpbmdDb250ZXh0ID09IEFzc2lnbm1lbnRDb250ZXh0OjpEZWNsYXJhdGlv
blN0YXRlbWVudCB8fCBtX2JpbmRpbmdDb250ZXh0ID09IEFzc2lnbm1lbnRDb250ZXh0OjpDb25z
dERlY2xhcmF0aW9uU3RhdGVtZW50KQorICAgICAgICBnZW5lcmF0b3IubGlmdFREWkNoZWNrSWZQ
b3NzaWJsZShnZW5lcmF0b3IudmFyaWFibGUobV9ib3VuZFByb3BlcnR5KSk7Cit9CisKIHZvaWQg
QmluZGluZ05vZGU6OmJpbmRWYWx1ZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdp
c3RlcklEKiB2YWx1ZSkgY29uc3QKIHsKICAgICBWYXJpYWJsZSB2YXIgPSBnZW5lcmF0b3IudmFy
aWFibGUobV9ib3VuZFByb3BlcnR5KTsKQEAgLTUzNzUsNiArNTQxNiwyOCBAQCB2b2lkIEJpbmRp
bmdOb2RlOjpjb2xsZWN0Qm91bmRJZGVudGlmaWVycyhWZWN0b3I8SWRlbnRpZmllcj4mIGlkZW50
aWZpZXJzKSBjb25zdAogICAgIGlkZW50aWZpZXJzLmFwcGVuZChtX2JvdW5kUHJvcGVydHkpOwog
fQogCitSZWdpc3RlcklEKiBBc3NpZ25tZW50RWxlbWVudE5vZGU6OndyaXRhYmxlRGlyZWN0Qmlu
ZGluZ0lmUG9zc2libGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvcikgY29uc3QKK3sKKyAg
ICBpZiAoIW1fYXNzaWdubWVudFRhcmdldC0+aXNSZXNvbHZlTm9kZSgpKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICBSZXNvbHZlTm9kZSogbGhzID0gc3RhdGljX2Nhc3Q8UmVzb2x2ZU5v
ZGUqPihtX2Fzc2lnbm1lbnRUYXJnZXQpOworICAgIFZhcmlhYmxlIHZhciA9IGdlbmVyYXRvci52
YXJpYWJsZShsaHMtPmlkZW50aWZpZXIoKSk7CisgICAgYm9vbCBpc1JlYWRPbmx5ID0gdmFyLmlz
UmVhZE9ubHkoKTsKKyAgICBpZiAoUmVnaXN0ZXJJRCogbG9jYWwgPSB2YXIubG9jYWwoKSkgewor
ICAgICAgICBpZiAoZ2VuZXJhdG9yLm5lZWRzVERaQ2hlY2sodmFyKSkKKyAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICBpZiAoaXNSZWFkT25seSkKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOworICAgICAgICByZXR1cm4gbG9jYWw7CisgICAgfQorICAgIHJldHVybiBudWxs
cHRyOworfQorCit2b2lkIEFzc2lnbm1lbnRFbGVtZW50Tm9kZTo6ZmluaXNoRGlyZWN0QmluZGlu
Z0Fzc2lnbm1lbnQoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvcikgY29uc3QKK3sKKyAgICBB
U1NFUlRfVU5VU0VEKGdlbmVyYXRvciwgd3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQb3NzaWJsZShn
ZW5lcmF0b3IpKTsKK30KKwogdm9pZCBBc3NpZ25tZW50RWxlbWVudE5vZGU6OmNvbGxlY3RCb3Vu
ZElkZW50aWZpZXJzKFZlY3RvcjxJZGVudGlmaWVyPiYpIGNvbnN0CiB7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggMTcwOTdlYTlmMjcwNTM2MjY1ZTEzYWE5MTQ5YmY5
M2Q5NDJlMjFhNy4uZDJkN2Q1ZTg4MTE1MWFiNmQwYWUxOGExMjU2NWVlYzI3YjVlYjA3YiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAtMjM3NCw2ICsyMzc0LDkgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0Fzc2lnbm1lbnRFbGVtZW50Tm9k
ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1Jlc3RQ
YXJhbWV0ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIFJlZ2lz
dGVySUQqIGVtaXREaXJlY3RCaW5kaW5nKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCos
IEV4cHJlc3Npb25Ob2RlKikgeyByZXR1cm4gbnVsbHB0cjsgfQorCisgICAgICAgIHZpcnR1YWwg
UmVnaXN0ZXJJRCogd3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQb3NzaWJsZShCeXRlY29kZUdlbmVy
YXRvciYpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGZp
bmlzaERpcmVjdEJpbmRpbmdBc3NpZ25tZW50KEJ5dGVjb2RlR2VuZXJhdG9yJikgY29uc3QgeyB9
CiAgICAgICAgIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgRGVzdHJ1Y3R1cmluZ1BhdHRlcm5O
b2RlKCk7CkBAIC0yNDYwLDYgKzI0NjMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fZGl2b3RT
dGFydDsgfQogICAgICAgICBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQoKSBjb25zdCB7
IHJldHVybiBtX2Rpdm90RW5kOyB9CisKKyAgICAgICAgUmVnaXN0ZXJJRCogd3JpdGFibGVEaXJl
Y3RCaW5kaW5nSWZQb3NzaWJsZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0IGZpbmFsOworICAg
ICAgICB2b2lkIGZpbmlzaERpcmVjdEJpbmRpbmdBc3NpZ25tZW50KEJ5dGVjb2RlR2VuZXJhdG9y
JikgY29uc3Q7CiAgICAgICAgIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgY29sbGVjdEJv
dW5kSWRlbnRpZmllcnMoVmVjdG9yPElkZW50aWZpZXI+JikgY29uc3QgZmluYWw7CkBAIC0yNDk5
LDYgKzI1MDUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90U3RhcnQoKSBjb25zdCB7IHJldHVybiBtX2Rpdm90U3RhcnQ7IH0KICAgICAgICAg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKCkgY29uc3QgeyByZXR1cm4gbV9kaXZvdEVu
ZDsgfQogCisgICAgICAgIFJlZ2lzdGVySUQqIHdyaXRhYmxlRGlyZWN0QmluZGluZ0lmUG9zc2li
bGUoQnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdCBmaW5hbDsKKyAgICAgICAgdm9pZCBmaW5pc2hE
aXJlY3RCaW5kaW5nQXNzaWdubWVudChCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0OworCiAgICAg
cHJpdmF0ZToKICAgICAgICAgdm9pZCBjb2xsZWN0Qm91bmRJZGVudGlmaWVycyhWZWN0b3I8SWRl
bnRpZmllcj4mKSBjb25zdCBmaW5hbDsKICAgICAgICAgdm9pZCBiaW5kVmFsdWUoQnl0ZWNvZGVH
ZW5lcmF0b3ImLCBSZWdpc3RlcklEKikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU2ZGFiNGRhZGNkOGI2YWYyNzEz
ODA5NTAwN2M1ZDJlM2U5MmQ1MDkuLjEzOTA2MmI0MDg5MDU3MGE3ZDkyOWNmMzFjNzcxYjkyODA2
NGMwNTEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDEtMDEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtp
QGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBSZW1vdmUgdW5uZWNlc3NhcnkgbW92IGJ5dGVj
b2RlcyB3aGVuIHBlcmZvcm1pbmcgc2ltcGxlIG9iamVjdCBwYXR0ZXJuIGRlc3RydWN0dXJpbmcg
dG8gdmFyaWFibGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjAyMTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHN0cmVzcy9vYmplY3QtcGF0dGVybi1zaW1wbGUtZmFzdC1wYXRoLmpzOiBBZGRlZC4K
KyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHNob3VsZFRocm93KToKKyAgICAgICAgKHRl
c3QxKToKKwogMjAyMC0xMi0zMSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5j
b20+CiAKICAgICAgICAgSlNGdW5jdGlvbjo6ZGVsZXRlUHJvcGVydHkoKSBmYWlscyB0byBkZWxl
dGUgYSBub24tZXhpc3RlbnQgInByb3RvdHlwZSIgcHJvcGVydHkKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL29iamVjdC1wYXR0ZXJuLXNpbXBsZS1mYXN0LXBhdGguanMgYi9KU1Rlc3RzL3N0
cmVzcy9vYmplY3QtcGF0dGVybi1zaW1wbGUtZmFzdC1wYXRoLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1MGE4
YmQzNWZhNjI3ZjI0NGMzNzBlOTUyNWY3YTcxYjVkNjcwNDQKLS0tIC9kZXYvbnVsbAorKysgYi9K
U1Rlc3RzL3N0cmVzcy9vYmplY3QtcGF0dGVybi1zaW1wbGUtZmFzdC1wYXRoLmpzCkBAIC0wLDAg
KzEsMTAwIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYg
KGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVl
OiAnICsgYWN0dWFsKTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JNZXNz
YWdlKSB7CisgICAgdmFyIGVycm9yVGhyb3duID0gZmFsc2U7CisgICAgdmFyIGVycm9yID0gbnVs
bDsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAg
ICBlcnJvclRocm93biA9IHRydWU7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgaWYg
KCFlcnJvclRocm93bikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdub3QgdGhyb3duJyk7Cisg
ICAgaWYgKFN0cmluZyhlcnJvcikgIT09IGVycm9yTWVzc2FnZSkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKGBiYWQgZXJyb3I6ICR7U3RyaW5nKGVycm9yKX1gKTsKK30KKworZnVuY3Rpb24gdGVz
dDEoeyBkYXRhIH0pIHsKKyAgICByZXR1cm4gZGF0YTsKK30KKworc2hvdWxkQmUodGVzdDEoeyBk
YXRhOiA0MiB9KSwgNDIpOworCitzaG91bGRUaHJvdygoKSA9PiB7CisgICAgY29uc3QgZGF0YSA9
IDQyOworICAgICh7IGRhdGEgfSA9IHsgZGF0YTogNTAgfSk7Cit9LCBgVHlwZUVycm9yOiBBdHRl
bXB0ZWQgdG8gYXNzaWduIHRvIHJlYWRvbmx5IHByb3BlcnR5LmApOworCisoZnVuY3Rpb24gKCkg
eworICAgIGNvbnN0IHsgZGF0YSB9ID0geyBkYXRhOiA1MCB9OworICAgIHNob3VsZEJlKGRhdGEs
IDUwKTsKK30oKSk7CisKK3Nob3VsZFRocm93KCgpID0+IHsKKyAgICBjb25zdCB7IGRhdGEgfSA9
IGRhdGE7Cit9LCBgUmVmZXJlbmNlRXJyb3I6IENhbm5vdCBhY2Nlc3MgdW5pbml0aWFsaXplZCB2
YXJpYWJsZS5gKTsKKworc2hvdWxkVGhyb3coKCkgPT4geworICAgIGNvbnN0IHsgW3Rocm93aW5n
KCldOiBkYXRhIH0gPSB7IGRhdGE6IDUwIH07CisgICAgZnVuY3Rpb24gdGhyb3dpbmcoKSB7Cisg
ICAgICAgIGRhdGE7CisgICAgfQorfSwgYFJlZmVyZW5jZUVycm9yOiBDYW5ub3QgYWNjZXNzIHVu
aW5pdGlhbGl6ZWQgdmFyaWFibGUuYCk7CisKKyhmdW5jdGlvbiAoKSB7CisgICAgbGV0IGRhdGEg
PSA0MjsKKyAgICAoeyBkYXRhIH0gPSB7IGRhdGE6IDUwIH0pOworICAgIHNob3VsZEJlKGRhdGEs
IDUwKTsKK30oKSk7CisKKyhmdW5jdGlvbiAoKSB7CisgICAgbGV0IHsgZGF0YSB9ID0geyBkYXRh
OiA1MCB9OworICAgIHNob3VsZEJlKGRhdGEsIDUwKTsKK30oKSk7CisKK3Nob3VsZFRocm93KCgp
ID0+IHsKKyAgICBsZXQgeyBkYXRhIH0gPSBkYXRhOworfSwgYFJlZmVyZW5jZUVycm9yOiBDYW5u
b3QgYWNjZXNzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUuYCk7CisKK3Nob3VsZFRocm93KCgpID0+
IHsKKyAgICBsZXQgeyBbdGhyb3dpbmcoKV06IGRhdGEgfSA9IHsgZGF0YTogNTAgfTsKKyAgICBm
dW5jdGlvbiB0aHJvd2luZygpIHsKKyAgICAgICAgZGF0YTsKKyAgICB9Cit9LCBgUmVmZXJlbmNl
RXJyb3I6IENhbm5vdCBhY2Nlc3MgdW5pbml0aWFsaXplZCB2YXJpYWJsZS5gKTsKKworKGZ1bmN0
aW9uICgpIHsKKyAgICBsZXQgeyBbNDNdOiBkYXRhIH0gPSB7IDQzOiA1MCB9OworICAgIHNob3Vs
ZEJlKGRhdGEsIDUwKTsKK30oKSk7CisKKyhmdW5jdGlvbiAoKSB7CisgICAgbGV0IGNhbGxlZDEg
PSBmYWxzZTsKKyAgICBsZXQgY2FsbGVkMiA9IGZhbHNlOworICAgIGxldCBkYXRhID0gNDI7Cisg
ICAgKHsgW3Rocm93aW5nKCldOiBkYXRhLCAuLi5vayB9ID0geyBkYXRhOiA1MCB9KTsKKyAgICBm
dW5jdGlvbiB0aHJvd2luZygpIHsKKyAgICAgICAgY2FsbGVkMSA9IHRydWU7CisgICAgICAgIHNo
b3VsZEJlKGRhdGEsIDQyKTsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIHRvU3RyaW5n
KCkgeworICAgICAgICAgICAgICAgIGNhbGxlZDIgPSB0cnVlOworICAgICAgICAgICAgICAgIHNo
b3VsZEJlKGRhdGEsIDQyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gJ2RhdGEnOworICAgICAg
ICAgICAgfQorICAgICAgICB9OworICAgIH0KKyAgICBzaG91bGRCZShkYXRhLCA1MCk7CisgICAg
c2hvdWxkQmUoY2FsbGVkMSwgdHJ1ZSk7CisgICAgc2hvdWxkQmUoY2FsbGVkMiwgdHJ1ZSk7Cit9
KCkpOworCisoZnVuY3Rpb24gKCkgeworICAgIGxldCBkYXRhID0gJ29rJzsKKyAgICAoeyBbZGF0
YV06IGRhdGEsIC4uLm9rIH0gPSB7IG9rOiA1MCB9KTsKKyAgICBzaG91bGRCZShkYXRhLCA1MCk7
Cit9KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416880</attachid>
            <date>2021-01-01 04:22:16 -0800</date>
            <delta_ts>2021-01-01 13:21:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220219-20210101042215.patch</filename>
            <type>text/plain</type>
            <size>12674</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NTExMThmMjcwMDE2MzY3OTlkYjhlMzhhYjQ2YzkxZGM2OGNhMDlkLi5kMDdmZTQwYzFlYjhhMDQ3
ZDc5NDM4ZjM1MDNhNDE2YzE2MzRhMmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAyMS0wMS0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlbW92ZSB1bm5lY2Vzc2FyeSBtb3YgYnl0ZWNvZGVzIHdoZW4g
cGVyZm9ybWluZyBzaW1wbGUgb2JqZWN0IHBhdHRlcm4gZGVzdHJ1Y3R1cmluZyB0byB2YXJpYWJs
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIx
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJl
bnRseSwgd2UgYXJlIGZpcnN0IHB1dHMgb2JqZWN0IHBhdHRlcm4ncyBleHByZXNzaW9uIGludG8g
dGVtcG9yYXJ5IHZhcmlhYmxlLCBhbmQgdGhlbiwgd2Ugc3RvcmUgaXQgaW50byBsb2NhbCB2YXJp
YWJsZSByZWdpc3Rlci4KKworICAgICAgICBUaGUgZm9sbG93aW5nIGNvZGUKKworICAgICAgICAg
ICAgKHsgZGF0YSB9ID0gb2JqZWN0KTsKKworICAgICAgICBlbWl0cyB0aGlzIGtpbmQgb2YgYnl0
ZWNvZGUuCisKKyAgICAgICAgICAgIGdldF9ieV9pZCAgICAgICAgICBkc3Q6bG9jMTAsIGJhc2U6
bG9jOSwgcHJvcGVydHk6MAorICAgICAgICAgICAgbW92ICAgICAgICAgICAgICAgIGRzdDpsb2M2
LCBzcmM6bG9jMTAKKworICAgICAgICBIb3dldmVyLCB0aGlzIHNob3VsZCBiZQorCisgICAgICAg
ICAgICBnZXRfYnlfaWQgICAgICAgICAgZHN0OmxvYzYsIGJhc2U6bG9jOSwgcHJvcGVydHk6MAor
CisgICAgICAgIFdlIGFyZSBlbWl0dGluZyBtYW55IHVubmVjZXNzYXJ5IG1vdnMgc2luY2UgdGhp
cyBkZXN0cnVjdHVyaW5nIHBhdHRlcm4gaXMgY29tbW9uLiBJbmNyZWFzaW5nIGFtb3VudCBvZiBt
b3YgKDEpIGRpc2NvdXJhZ2VzIGlubGluaW5nIHVubmVjZXNzYXJpbHkgYW5kICgyKSBzaW1wbHkg
bWFrZXMKKyAgICAgICAgYnl0ZWNvZGUgbWVtb3J5IGxhcmdlLiBTaW5jZSB0aGlzIGlzIHZlcnkg
Y29tbW9uIHBhdHRlcm4sIHdlIHNob3VsZCBjYXJlZnVsbHkgb3B0aW1pemUgaXQgdG8gcmVtb3Zl
IHN1Y2ggdW5uZWNlc3NhcnkgbW92cy4KKworICAgICAgICBUaGlzIHBhdGNoIGxvb2tzIGludG8g
cGF0dGVybiB3aGVuIHBlcmZvcm1pbmcgb2JqZWN0IHBhdHRlcm4gZGVzdHJ1Y3R1cmluZy4gQW5k
IGF2b2lkIGVtaXR0aW5nIG1vdiB3aGVuIGl0IGlzIHBvc3NpYmxlLiBUaGVyZSBhcmUgc29tZSBj
YXNlcyB3ZSBjYW5ub3QgcmVtb3ZlIG1vdnMsIHNvCisgICAgICAgIHRoaXMgcGF0Y2gncyB3cml0
YWJsZURpcmVjdEJpbmRpbmdJZlBvc3NpYmxlIGxvb2tzIGludG8gd2hldGhlciB0aGlzIGlzIHBv
c3NpYmxlICgmIHByb2ZpdGFibGUpLgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdFBhdHRlcm5Ob2RlOjpiaW5kVmFsdWUgY29u
c3QpOgorICAgICAgICAoSlNDOjpCaW5kaW5nTm9kZTo6d3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQ
b3NzaWJsZSBjb25zdCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdOb2RlOjpmaW5pc2hEaXJlY3RC
aW5kaW5nQXNzaWdubWVudCBjb25zdCk6CisgICAgICAgIChKU0M6OkFzc2lnbm1lbnRFbGVtZW50
Tm9kZTo6d3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQb3NzaWJsZSBjb25zdCk6CisgICAgICAgIChK
U0M6OkFzc2lnbm1lbnRFbGVtZW50Tm9kZTo6ZmluaXNoRGlyZWN0QmluZGluZ0Fzc2lnbm1lbnQg
Y29uc3QpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAoSlNDOjpEZXN0cnVj
dHVyaW5nUGF0dGVybk5vZGU6OndyaXRhYmxlRGlyZWN0QmluZGluZ0lmUG9zc2libGUgY29uc3Qp
OgorICAgICAgICAoSlNDOjpEZXN0cnVjdHVyaW5nUGF0dGVybk5vZGU6OmZpbmlzaERpcmVjdEJp
bmRpbmdBc3NpZ25tZW50IGNvbnN0KToKKwogMjAyMC0xMi0zMSAgQWxleGV5IFNodmF5a2EgIDxz
aHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgSlNGdW5jdGlvbjo6ZGVsZXRlUHJvcGVy
dHkoKSBmYWlscyB0byBkZWxldGUgYSBub24tZXhpc3RlbnQgInByb3RvdHlwZSIgcHJvcGVydHkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2Rl
Z2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2Vu
LmNwcAppbmRleCBkNGE4OWI0NGQzNjdiYzI2OWZkOWI4NGNlMzIxNjQ1MzM5ZmU2OTNhLi4yNTZk
NjU2MDBhZGQxMGRhOTU4MTI4YmM1Zjc3ZmZiNDhmYTllZjczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC01MjY0LDcg
KzUyNjQsMzMgQEAgdm9pZCBPYmplY3RQYXR0ZXJuTm9kZTo6YmluZFZhbHVlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIHJocykKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG1fdGFyZ2V0UGF0dGVybnMuc2l6ZSgpOyBpKyspIHsKICAgICAgICAgY29uc3QgYXV0
byYgdGFyZ2V0ID0gbV90YXJnZXRQYXR0ZXJuc1tpXTsKICAgICAgICAgaWYgKHRhcmdldC5iaW5k
aW5nVHlwZSA9PSBCaW5kaW5nVHlwZTo6RWxlbWVudCkgewotICAgICAgICAgICAgUmVmUHRyPFJl
Z2lzdGVySUQ+IHRlbXAgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7CisgICAgICAgICAgICAv
LyBJZiB0aGUgZGVzdHJ1Y3R1cmluZyBiZWNvbWVzIGdldF9ieV9pZCBhbmQgbW92LCB0aGVuIHdl
IHNob3VsZCBzdG9yZSByZXN1bHRzIGRpcmVjdGx5IHRvIHRoZSBsb2NhbCdzIGJpbmRpbmcuCisg
ICAgICAgICAgICAvLyBGcm9tCisgICAgICAgICAgICAvLyAgICAgZ2V0X2J5X2lkICAgICAgICAg
IGRzdDpsb2MxMCwgYmFzZTpsb2M5LCBwcm9wZXJ0eTowCisgICAgICAgICAgICAvLyAgICAgbW92
ICAgICAgICAgICAgICAgIGRzdDpsb2M2LCBzcmM6bG9jMTAKKyAgICAgICAgICAgIC8vIFRvCisg
ICAgICAgICAgICAvLyAgICAgZ2V0X2J5X2lkICAgICAgICAgIGRzdDpsb2M2LCBiYXNlOmxvYzks
IHByb3BlcnR5OjAKKyAgICAgICAgICAgIGF1dG8gd3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQb3Nz
aWJsZSA9IFsmXSgpIC0+IFJlZ2lzdGVySUQqIHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgZm9s
bG93aW5nIHBhdHRlcm4gaXMgcG9zc2libGUuIEluIHRoYXQgY2FzZSwgYWZ0ZXIgc2V0dGluZyB8
ZGF0YXwgbG9jYWwgdmFyaWFibGUsIHdlIG5lZWQgdG8gc3RvcmUgcHJvcGVydHkgbmFtZSBpbnRv
IHRoZSBzZXQuCisgICAgICAgICAgICAgICAgLy8gU28sIG9sZCBwcm9wZXJ0eSBuYW1lIHxkYXRh
fCByZXN1bHQgbXVzdCBiZSBrZXB0IGJlZm9yZSBzZXR0aW5nIGl0IGludG8gfGRhdGF8LgorICAg
ICAgICAgICAgICAgIC8vICh7IFtkYXRhXTogZGF0YSwgLi4ub2JqIH0gPSBvYmplY3QpOworICAg
ICAgICAgICAgICAgIGlmIChtX2NvbnRhaW5zUmVzdEVsZW1lbnQgJiYgbV9jb250YWluc0NvbXB1
dGVkUHJvcGVydHkgJiYgdGFyZ2V0LnByb3BlcnR5RXhwcmVzc2lvbikKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5wYXR0
ZXJuLT53cml0YWJsZURpcmVjdEJpbmRpbmdJZlBvc3NpYmxlKGdlbmVyYXRvcik7CisgICAgICAg
ICAgICB9OworCisgICAgICAgICAgICBhdXRvIGZpbmlzaERpcmVjdEJpbmRpbmdBc3NpZ25tZW50
ID0gWyZdKCkgeworICAgICAgICAgICAgICAgIEFTU0VSVCh3cml0YWJsZURpcmVjdEJpbmRpbmdJ
ZlBvc3NpYmxlKCkpOworICAgICAgICAgICAgICAgIHRhcmdldC5wYXR0ZXJuLT5maW5pc2hEaXJl
Y3RCaW5kaW5nQXNzaWdubWVudChnZW5lcmF0b3IpOworICAgICAgICAgICAgfTsKKworICAgICAg
ICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHRlbXA7CisgICAgICAgICAgICBSZWdpc3RlcklEKiBk
aXJlY3RCaW5kaW5nID0gd3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQb3NzaWJsZSgpOworICAgICAg
ICAgICAgaWYgKGRpcmVjdEJpbmRpbmcpCisgICAgICAgICAgICAgICAgdGVtcCA9IGRpcmVjdEJp
bmRpbmc7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVtcCA9IGdlbmVyYXRv
ci5uZXdUZW1wb3JhcnkoKTsKKwogICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb3Bl
cnR5TmFtZTsKICAgICAgICAgICAgIGlmICghdGFyZ2V0LnByb3BlcnR5RXhwcmVzc2lvbikgewog
ICAgICAgICAgICAgICAgIE9wdGlvbmFsPHVpbnQzMl90PiBvcHRpb25hbEluZGV4ID0gcGFyc2VJ
bmRleCh0YXJnZXQucHJvcGVydHlOYW1lKTsKQEAgLTUyOTYsNyArNTMyMiwxMCBAQCB2b2lkIE9i
amVjdFBhdHRlcm5Ob2RlOjpiaW5kVmFsdWUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwg
UmVnaXN0ZXJJRCogcmhzKQogCiAgICAgICAgICAgICBpZiAodGFyZ2V0LmRlZmF1bHRWYWx1ZSkK
ICAgICAgICAgICAgICAgICBhc3NpZ25EZWZhdWx0VmFsdWVJZlVuZGVmaW5lZChnZW5lcmF0b3Is
IHRlbXAuZ2V0KCksIHRhcmdldC5kZWZhdWx0VmFsdWUpOwotICAgICAgICAgICAgdGFyZ2V0LnBh
dHRlcm4tPmJpbmRWYWx1ZShnZW5lcmF0b3IsIHRlbXAuZ2V0KCkpOworICAgICAgICAgICAgaWYg
KGRpcmVjdEJpbmRpbmcpCisgICAgICAgICAgICAgICAgZmluaXNoRGlyZWN0QmluZGluZ0Fzc2ln
bm1lbnQoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0YXJnZXQucGF0dGVy
bi0+YmluZFZhbHVlKGdlbmVyYXRvciwgdGVtcC5nZXQoKSk7CiAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICBBU1NFUlQodGFyZ2V0LmJpbmRpbmdUeXBlID09IEJpbmRpbmdUeXBlOjpSZXN0
RWxlbWVudCk7CiAgICAgICAgICAgICBBU1NFUlQoaSA9PSBtX3RhcmdldFBhdHRlcm5zLnNpemUo
KSAtIDEpOwpAQCAtNTMzMSw2ICs1MzYwLDI5IEBAIHZvaWQgT2JqZWN0UGF0dGVybk5vZGU6OmNv
bGxlY3RCb3VuZElkZW50aWZpZXJzKFZlY3RvcjxJZGVudGlmaWVyPiYgaWRlbnRpZmllcnMpCiAg
ICAgICAgIG1fdGFyZ2V0UGF0dGVybnNbaV0ucGF0dGVybi0+Y29sbGVjdEJvdW5kSWRlbnRpZmll
cnMoaWRlbnRpZmllcnMpOwogfQogCitSZWdpc3RlcklEKiBCaW5kaW5nTm9kZTo6d3JpdGFibGVE
aXJlY3RCaW5kaW5nSWZQb3NzaWJsZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yKSBjb25z
dAoreworICAgIFZhcmlhYmxlIHZhciA9IGdlbmVyYXRvci52YXJpYWJsZShtX2JvdW5kUHJvcGVy
dHkpOworICAgIGJvb2wgaXNSZWFkT25seSA9IHZhci5pc1JlYWRPbmx5KCkgJiYgbV9iaW5kaW5n
Q29udGV4dCAhPSBBc3NpZ25tZW50Q29udGV4dDo6Q29uc3REZWNsYXJhdGlvblN0YXRlbWVudDsK
KyAgICBpZiAoUmVnaXN0ZXJJRCogbG9jYWwgPSB2YXIubG9jYWwoKSkgeworICAgICAgICBpZiAo
bV9iaW5kaW5nQ29udGV4dCA9PSBBc3NpZ25tZW50Q29udGV4dDo6QXNzaWdubWVudEV4cHJlc3Np
b24pIHsKKyAgICAgICAgICAgIGlmIChnZW5lcmF0b3IubmVlZHNURFpDaGVjayh2YXIpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisgICAgICAgIGlmIChpc1Jl
YWRPbmx5KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBsb2Nh
bDsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgQmluZGluZ05vZGU6OmZp
bmlzaERpcmVjdEJpbmRpbmdBc3NpZ25tZW50KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3Ip
IGNvbnN0Cit7CisgICAgQVNTRVJUKHdyaXRhYmxlRGlyZWN0QmluZGluZ0lmUG9zc2libGUoZ2Vu
ZXJhdG9yKSk7CisgICAgaWYgKG1fYmluZGluZ0NvbnRleHQgPT0gQXNzaWdubWVudENvbnRleHQ6
OkRlY2xhcmF0aW9uU3RhdGVtZW50IHx8IG1fYmluZGluZ0NvbnRleHQgPT0gQXNzaWdubWVudENv
bnRleHQ6OkNvbnN0RGVjbGFyYXRpb25TdGF0ZW1lbnQpCisgICAgICAgIGdlbmVyYXRvci5saWZ0
VERaQ2hlY2tJZlBvc3NpYmxlKGdlbmVyYXRvci52YXJpYWJsZShtX2JvdW5kUHJvcGVydHkpKTsK
K30KKwogdm9pZCBCaW5kaW5nTm9kZTo6YmluZFZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5l
cmF0b3IsIFJlZ2lzdGVySUQqIHZhbHVlKSBjb25zdAogewogICAgIFZhcmlhYmxlIHZhciA9IGdl
bmVyYXRvci52YXJpYWJsZShtX2JvdW5kUHJvcGVydHkpOwpAQCAtNTM3NSw2ICs1NDI3LDI4IEBA
IHZvaWQgQmluZGluZ05vZGU6OmNvbGxlY3RCb3VuZElkZW50aWZpZXJzKFZlY3RvcjxJZGVudGlm
aWVyPiYgaWRlbnRpZmllcnMpIGNvbnN0CiAgICAgaWRlbnRpZmllcnMuYXBwZW5kKG1fYm91bmRQ
cm9wZXJ0eSk7CiB9CiAKK1JlZ2lzdGVySUQqIEFzc2lnbm1lbnRFbGVtZW50Tm9kZTo6d3JpdGFi
bGVEaXJlY3RCaW5kaW5nSWZQb3NzaWJsZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yKSBj
b25zdAoreworICAgIGlmICghbV9hc3NpZ25tZW50VGFyZ2V0LT5pc1Jlc29sdmVOb2RlKCkpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIFJlc29sdmVOb2RlKiBsaHMgPSBzdGF0aWNfY2Fz
dDxSZXNvbHZlTm9kZSo+KG1fYXNzaWdubWVudFRhcmdldCk7CisgICAgVmFyaWFibGUgdmFyID0g
Z2VuZXJhdG9yLnZhcmlhYmxlKGxocy0+aWRlbnRpZmllcigpKTsKKyAgICBib29sIGlzUmVhZE9u
bHkgPSB2YXIuaXNSZWFkT25seSgpOworICAgIGlmIChSZWdpc3RlcklEKiBsb2NhbCA9IHZhci5s
b2NhbCgpKSB7CisgICAgICAgIGlmIChnZW5lcmF0b3IubmVlZHNURFpDaGVjayh2YXIpKQorICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGlmIChpc1JlYWRPbmx5KQorICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBsb2NhbDsKKyAgICB9CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgQXNzaWdubWVudEVsZW1lbnROb2RlOjpmaW5pc2hE
aXJlY3RCaW5kaW5nQXNzaWdubWVudChCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yKSBjb25z
dAoreworICAgIEFTU0VSVF9VTlVTRUQoZ2VuZXJhdG9yLCB3cml0YWJsZURpcmVjdEJpbmRpbmdJ
ZlBvc3NpYmxlKGdlbmVyYXRvcikpOworfQorCiB2b2lkIEFzc2lnbm1lbnRFbGVtZW50Tm9kZTo6
Y29sbGVjdEJvdW5kSWRlbnRpZmllcnMoVmVjdG9yPElkZW50aWZpZXI+JikgY29uc3QKIHsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCAxNzA5N2VhOWYyNzA1MzYyNjVl
MTNhYTkxNDliZjkzZDk0MmUyMWE3Li5kMmQ3ZDVlODgxMTUxYWI2ZDBhZTE4YTEyNTY1ZWVjMjdi
NWViMDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC0yMzc0LDYgKzIz
NzQsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGlzQXNzaWdubWVu
dEVsZW1lbnROb2RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgdmlydHVhbCBi
b29sIGlzUmVzdFBhcmFtZXRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIHZp
cnR1YWwgUmVnaXN0ZXJJRCogZW1pdERpcmVjdEJpbmRpbmcoQnl0ZWNvZGVHZW5lcmF0b3ImLCBS
ZWdpc3RlcklEKiwgRXhwcmVzc2lvbk5vZGUqKSB7IHJldHVybiBudWxscHRyOyB9CisKKyAgICAg
ICAgdmlydHVhbCBSZWdpc3RlcklEKiB3cml0YWJsZURpcmVjdEJpbmRpbmdJZlBvc3NpYmxlKEJ5
dGVjb2RlR2VuZXJhdG9yJikgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgICAgICB2aXJ0
dWFsIHZvaWQgZmluaXNoRGlyZWN0QmluZGluZ0Fzc2lnbm1lbnQoQnl0ZWNvZGVHZW5lcmF0b3Im
KSBjb25zdCB7IH0KICAgICAgICAgCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBEZXN0cnVjdHVy
aW5nUGF0dGVybk5vZGUoKTsKQEAgLTI0NjAsNiArMjQ2Myw5IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgICAgIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0KCkgY29uc3QgeyByZXR1
cm4gbV9kaXZvdFN0YXJ0OyB9CiAgICAgICAgIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVu
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGl2b3RFbmQ7IH0KKworICAgICAgICBSZWdpc3RlcklEKiB3
cml0YWJsZURpcmVjdEJpbmRpbmdJZlBvc3NpYmxlKEJ5dGVjb2RlR2VuZXJhdG9yJikgY29uc3Qg
ZmluYWw7CisgICAgICAgIHZvaWQgZmluaXNoRGlyZWN0QmluZGluZ0Fzc2lnbm1lbnQoQnl0ZWNv
ZGVHZW5lcmF0b3ImKSBjb25zdDsKICAgICAgICAgCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9p
ZCBjb2xsZWN0Qm91bmRJZGVudGlmaWVycyhWZWN0b3I8SWRlbnRpZmllcj4mKSBjb25zdCBmaW5h
bDsKQEAgLTI0OTksNiArMjUwNSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fZGl2b3RTdGFydDsg
fQogICAgICAgICBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQoKSBjb25zdCB7IHJldHVy
biBtX2Rpdm90RW5kOyB9CiAKKyAgICAgICAgUmVnaXN0ZXJJRCogd3JpdGFibGVEaXJlY3RCaW5k
aW5nSWZQb3NzaWJsZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0IGZpbmFsOworICAgICAgICB2
b2lkIGZpbmlzaERpcmVjdEJpbmRpbmdBc3NpZ25tZW50KEJ5dGVjb2RlR2VuZXJhdG9yJikgY29u
c3Q7CisKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGNvbGxlY3RCb3VuZElkZW50aWZpZXJz
KFZlY3RvcjxJZGVudGlmaWVyPiYpIGNvbnN0IGZpbmFsOwogICAgICAgICB2b2lkIGJpbmRWYWx1
ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTZkYWI0ZGFk
Y2Q4YjZhZjI3MTM4MDk1MDA3YzVkMmUzZTkyZDUwOS4uMTM5MDYyYjQwODkwNTcwYTdkOTI5Y2Yz
MWM3NzFiOTI4MDY0YzA1MSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMS0wMSAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIFJlbW92ZSB1bm5lY2Vzc2Fy
eSBtb3YgYnl0ZWNvZGVzIHdoZW4gcGVyZm9ybWluZyBzaW1wbGUgb2JqZWN0IHBhdHRlcm4gZGVz
dHJ1Y3R1cmluZyB0byB2YXJpYWJsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMDIxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3RyZXNzL29iamVjdC1wYXR0ZXJuLXNpbXBsZS1mYXN0LXBhdGgu
anM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoc2hvdWxkVGhyb3cpOgor
ICAgICAgICAodGVzdDEpOgorCiAyMDIwLTEyLTMxICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2Fs
ZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBKU0Z1bmN0aW9uOjpkZWxldGVQcm9wZXJ0eSgpIGZh
aWxzIHRvIGRlbGV0ZSBhIG5vbi1leGlzdGVudCAicHJvdG90eXBlIiBwcm9wZXJ0eQpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3Mvb2JqZWN0LXBhdHRlcm4tc2ltcGxlLWZhc3QtcGF0aC5qcyBi
L0pTVGVzdHMvc3RyZXNzL29iamVjdC1wYXR0ZXJuLXNpbXBsZS1mYXN0LXBhdGguanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjZmMTIzM2ExMzkzNWZkMDdjNjAyYWI1MGFmOWI0YTllYjgwMWQ0NwotLS0gL2Rldi9u
dWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL29iamVjdC1wYXR0ZXJuLXNpbXBsZS1mYXN0LXBhdGgu
anMKQEAgLTAsMCArMSwxMDIgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQp
IHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5j
LCBlcnJvck1lc3NhZ2UpIHsKKyAgICB2YXIgZXJyb3JUaHJvd24gPSBmYWxzZTsKKyAgICB2YXIg
ZXJyb3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIGVycm9yVGhyb3duID0gdHJ1ZTsKKyAgICAgICAgZXJyb3IgPSBlOworICAg
IH0KKyAgICBpZiAoIWVycm9yVGhyb3duKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCB0
aHJvd24nKTsKKyAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gZXJyb3JNZXNzYWdlKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoYGJhZCBlcnJvcjogJHtTdHJpbmcoZXJyb3IpfWApOworfQorCitm
dW5jdGlvbiB0ZXN0MSh7IGRhdGEgfSkgeworICAgIHJldHVybiBkYXRhOworfQorCitzaG91bGRC
ZSh0ZXN0MSh7IGRhdGE6IDQyIH0pLCA0Mik7CisKK3Nob3VsZFRocm93KCgpID0+IHsKKyAgICBj
b25zdCBkYXRhID0gNDI7CisgICAgKHsgZGF0YSB9ID0geyBkYXRhOiA1MCB9KTsKK30sIGBUeXBl
RXJyb3I6IEF0dGVtcHRlZCB0byBhc3NpZ24gdG8gcmVhZG9ubHkgcHJvcGVydHkuYCk7CisKKyhm
dW5jdGlvbiAoKSB7CisgICAgY29uc3QgeyBkYXRhIH0gPSB7IGRhdGE6IDUwIH07CisgICAgc2hv
dWxkQmUoZGF0YSwgNTApOworfSgpKTsKKworc2hvdWxkVGhyb3coKCkgPT4geworICAgIGNvbnN0
IHsgZGF0YSB9ID0gZGF0YTsKK30sIGBSZWZlcmVuY2VFcnJvcjogQ2Fubm90IGFjY2VzcyB1bmlu
aXRpYWxpemVkIHZhcmlhYmxlLmApOworCitzaG91bGRUaHJvdygoKSA9PiB7CisgICAgY29uc3Qg
eyBbdGhyb3dpbmcoKV06IGRhdGEgfSA9IHsgZGF0YTogNTAgfTsKKyAgICBmdW5jdGlvbiB0aHJv
d2luZygpIHsKKyAgICAgICAgZGF0YTsKKyAgICB9Cit9LCBgUmVmZXJlbmNlRXJyb3I6IENhbm5v
dCBhY2Nlc3MgdW5pbml0aWFsaXplZCB2YXJpYWJsZS5gKTsKKworKGZ1bmN0aW9uICgpIHsKKyAg
ICBsZXQgZGF0YSA9IDQyOworICAgICh7IGRhdGEgfSA9IHsgZGF0YTogNTAgfSk7CisgICAgc2hv
dWxkQmUoZGF0YSwgNTApOworfSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICBsZXQgeyBkYXRh
IH0gPSB7IGRhdGE6IDUwIH07CisgICAgc2hvdWxkQmUoZGF0YSwgNTApOworfSgpKTsKKworc2hv
dWxkVGhyb3coKCkgPT4geworICAgIGxldCB7IGRhdGEgfSA9IGRhdGE7Cit9LCBgUmVmZXJlbmNl
RXJyb3I6IENhbm5vdCBhY2Nlc3MgdW5pbml0aWFsaXplZCB2YXJpYWJsZS5gKTsKKworc2hvdWxk
VGhyb3coKCkgPT4geworICAgIGxldCB7IFt0aHJvd2luZygpXTogZGF0YSB9ID0geyBkYXRhOiA1
MCB9OworICAgIGZ1bmN0aW9uIHRocm93aW5nKCkgeworICAgICAgICBkYXRhOworICAgIH0KK30s
IGBSZWZlcmVuY2VFcnJvcjogQ2Fubm90IGFjY2VzcyB1bmluaXRpYWxpemVkIHZhcmlhYmxlLmAp
OworCisoZnVuY3Rpb24gKCkgeworICAgIGxldCB7IFs0M106IGRhdGEgfSA9IHsgNDM6IDUwIH07
CisgICAgc2hvdWxkQmUoZGF0YSwgNTApOworfSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICBs
ZXQgY2FsbGVkMSA9IGZhbHNlOworICAgIGxldCBjYWxsZWQyID0gZmFsc2U7CisgICAgbGV0IGRh
dGEgPSA0MjsKKyAgICAoeyBbdGhyb3dpbmcoKV06IGRhdGEsIC4uLm9rIH0gPSB7IGRhdGE6IDUw
IH0pOworICAgIGZ1bmN0aW9uIHRocm93aW5nKCkgeworICAgICAgICBjYWxsZWQxID0gdHJ1ZTsK
KyAgICAgICAgc2hvdWxkQmUoZGF0YSwgNDIpOworICAgICAgICByZXR1cm4geworICAgICAgICAg
ICAgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICAgICAgY2FsbGVkMiA9IHRydWU7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmUoZGF0YSwgNDIpOworICAgICAgICAgICAgICAgIHJldHVybiAnZGF0
YSc7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIHNob3VsZEJlKGRhdGEs
IDUwKTsKKyAgICBzaG91bGRCZShjYWxsZWQxLCB0cnVlKTsKKyAgICBzaG91bGRCZShjYWxsZWQy
LCB0cnVlKTsKK30oKSk7CisKKyhmdW5jdGlvbiAoKSB7CisgICAgbGV0IGRhdGEgPSAnb2snOwor
ICAgIGxldCBvYmo7CisgICAgKHsgW2RhdGFdOiBkYXRhLCAuLi5vYmogfSA9IHsgb2s6ICdiYWQn
LCBiYWQ6IDQyIH0pOworICAgIHNob3VsZEJlKGRhdGEsICdiYWQnKTsKKyAgICBzaG91bGRCZShv
YmouYmFkLCA0Mik7Cit9KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416884</attachid>
            <date>2021-01-01 13:21:04 -0800</date>
            <delta_ts>2021-01-01 13:54:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220219-20210101132103.patch</filename>
            <type>text/plain</type>
            <size>13094</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NTExMThmMjcwMDE2MzY3OTlkYjhlMzhhYjQ2YzkxZGM2OGNhMDlkLi5kMDdmZTQwYzFlYjhhMDQ3
ZDc5NDM4ZjM1MDNhNDE2YzE2MzRhMmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAyMS0wMS0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlbW92ZSB1bm5lY2Vzc2FyeSBtb3YgYnl0ZWNvZGVzIHdoZW4g
cGVyZm9ybWluZyBzaW1wbGUgb2JqZWN0IHBhdHRlcm4gZGVzdHJ1Y3R1cmluZyB0byB2YXJpYWJs
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIx
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJl
bnRseSwgd2UgYXJlIGZpcnN0IHB1dHMgb2JqZWN0IHBhdHRlcm4ncyBleHByZXNzaW9uIGludG8g
dGVtcG9yYXJ5IHZhcmlhYmxlLCBhbmQgdGhlbiwgd2Ugc3RvcmUgaXQgaW50byBsb2NhbCB2YXJp
YWJsZSByZWdpc3Rlci4KKworICAgICAgICBUaGUgZm9sbG93aW5nIGNvZGUKKworICAgICAgICAg
ICAgKHsgZGF0YSB9ID0gb2JqZWN0KTsKKworICAgICAgICBlbWl0cyB0aGlzIGtpbmQgb2YgYnl0
ZWNvZGUuCisKKyAgICAgICAgICAgIGdldF9ieV9pZCAgICAgICAgICBkc3Q6bG9jMTAsIGJhc2U6
bG9jOSwgcHJvcGVydHk6MAorICAgICAgICAgICAgbW92ICAgICAgICAgICAgICAgIGRzdDpsb2M2
LCBzcmM6bG9jMTAKKworICAgICAgICBIb3dldmVyLCB0aGlzIHNob3VsZCBiZQorCisgICAgICAg
ICAgICBnZXRfYnlfaWQgICAgICAgICAgZHN0OmxvYzYsIGJhc2U6bG9jOSwgcHJvcGVydHk6MAor
CisgICAgICAgIFdlIGFyZSBlbWl0dGluZyBtYW55IHVubmVjZXNzYXJ5IG1vdnMgc2luY2UgdGhp
cyBkZXN0cnVjdHVyaW5nIHBhdHRlcm4gaXMgY29tbW9uLiBJbmNyZWFzaW5nIGFtb3VudCBvZiBt
b3YgKDEpIGRpc2NvdXJhZ2VzIGlubGluaW5nIHVubmVjZXNzYXJpbHkgYW5kICgyKSBzaW1wbHkg
bWFrZXMKKyAgICAgICAgYnl0ZWNvZGUgbWVtb3J5IGxhcmdlLiBTaW5jZSB0aGlzIGlzIHZlcnkg
Y29tbW9uIHBhdHRlcm4sIHdlIHNob3VsZCBjYXJlZnVsbHkgb3B0aW1pemUgaXQgdG8gcmVtb3Zl
IHN1Y2ggdW5uZWNlc3NhcnkgbW92cy4KKworICAgICAgICBUaGlzIHBhdGNoIGxvb2tzIGludG8g
cGF0dGVybiB3aGVuIHBlcmZvcm1pbmcgb2JqZWN0IHBhdHRlcm4gZGVzdHJ1Y3R1cmluZy4gQW5k
IGF2b2lkIGVtaXR0aW5nIG1vdiB3aGVuIGl0IGlzIHBvc3NpYmxlLiBUaGVyZSBhcmUgc29tZSBj
YXNlcyB3ZSBjYW5ub3QgcmVtb3ZlIG1vdnMsIHNvCisgICAgICAgIHRoaXMgcGF0Y2gncyB3cml0
YWJsZURpcmVjdEJpbmRpbmdJZlBvc3NpYmxlIGxvb2tzIGludG8gd2hldGhlciB0aGlzIGlzIHBv
c3NpYmxlICgmIHByb2ZpdGFibGUpLgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdFBhdHRlcm5Ob2RlOjpiaW5kVmFsdWUgY29u
c3QpOgorICAgICAgICAoSlNDOjpCaW5kaW5nTm9kZTo6d3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQ
b3NzaWJsZSBjb25zdCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdOb2RlOjpmaW5pc2hEaXJlY3RC
aW5kaW5nQXNzaWdubWVudCBjb25zdCk6CisgICAgICAgIChKU0M6OkFzc2lnbm1lbnRFbGVtZW50
Tm9kZTo6d3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQb3NzaWJsZSBjb25zdCk6CisgICAgICAgIChK
U0M6OkFzc2lnbm1lbnRFbGVtZW50Tm9kZTo6ZmluaXNoRGlyZWN0QmluZGluZ0Fzc2lnbm1lbnQg
Y29uc3QpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAoSlNDOjpEZXN0cnVj
dHVyaW5nUGF0dGVybk5vZGU6OndyaXRhYmxlRGlyZWN0QmluZGluZ0lmUG9zc2libGUgY29uc3Qp
OgorICAgICAgICAoSlNDOjpEZXN0cnVjdHVyaW5nUGF0dGVybk5vZGU6OmZpbmlzaERpcmVjdEJp
bmRpbmdBc3NpZ25tZW50IGNvbnN0KToKKwogMjAyMC0xMi0zMSAgQWxleGV5IFNodmF5a2EgIDxz
aHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgSlNGdW5jdGlvbjo6ZGVsZXRlUHJvcGVy
dHkoKSBmYWlscyB0byBkZWxldGUgYSBub24tZXhpc3RlbnQgInByb3RvdHlwZSIgcHJvcGVydHkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2Rl
Z2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2Vu
LmNwcAppbmRleCBkNGE4OWI0NGQzNjdiYzI2OWZkOWI4NGNlMzIxNjQ1MzM5ZmU2OTNhLi4yNjcx
MDIxYzNhZmQwM2U2NzA1NmUyNTQzN2QyZTY2NjA2OTExNTEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC01MjY0LDcg
KzUyNjQsMzkgQEAgdm9pZCBPYmplY3RQYXR0ZXJuTm9kZTo6YmluZFZhbHVlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIHJocykKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG1fdGFyZ2V0UGF0dGVybnMuc2l6ZSgpOyBpKyspIHsKICAgICAgICAgY29uc3QgYXV0
byYgdGFyZ2V0ID0gbV90YXJnZXRQYXR0ZXJuc1tpXTsKICAgICAgICAgaWYgKHRhcmdldC5iaW5k
aW5nVHlwZSA9PSBCaW5kaW5nVHlwZTo6RWxlbWVudCkgewotICAgICAgICAgICAgUmVmUHRyPFJl
Z2lzdGVySUQ+IHRlbXAgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7CisgICAgICAgICAgICAv
LyBJZiB0aGUgZGVzdHJ1Y3R1cmluZyBiZWNvbWVzIGdldF9ieV9pZCBhbmQgbW92LCB0aGVuIHdl
IHNob3VsZCBzdG9yZSByZXN1bHRzIGRpcmVjdGx5IHRvIHRoZSBsb2NhbCdzIGJpbmRpbmcuCisg
ICAgICAgICAgICAvLyBGcm9tCisgICAgICAgICAgICAvLyAgICAgZ2V0X2J5X2lkICAgICAgICAg
IGRzdDpsb2MxMCwgYmFzZTpsb2M5LCBwcm9wZXJ0eTowCisgICAgICAgICAgICAvLyAgICAgbW92
ICAgICAgICAgICAgICAgIGRzdDpsb2M2LCBzcmM6bG9jMTAKKyAgICAgICAgICAgIC8vIFRvCisg
ICAgICAgICAgICAvLyAgICAgZ2V0X2J5X2lkICAgICAgICAgIGRzdDpsb2M2LCBiYXNlOmxvYzks
IHByb3BlcnR5OjAKKyAgICAgICAgICAgIGF1dG8gd3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQb3Nz
aWJsZSA9IFsmXSgpIC0+IFJlZ2lzdGVySUQqIHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgZm9s
bG93aW5nIHBhdHRlcm4gaXMgcG9zc2libGUuIEluIHRoYXQgY2FzZSwgYWZ0ZXIgc2V0dGluZyB8
ZGF0YXwgbG9jYWwgdmFyaWFibGUsIHdlIG5lZWQgdG8gc3RvcmUgcHJvcGVydHkgbmFtZSBpbnRv
IHRoZSBzZXQuCisgICAgICAgICAgICAgICAgLy8gU28sIG9sZCBwcm9wZXJ0eSBuYW1lIHxkYXRh
fCByZXN1bHQgbXVzdCBiZSBrZXB0IGJlZm9yZSBzZXR0aW5nIGl0IGludG8gfGRhdGF8LgorICAg
ICAgICAgICAgICAgIC8vICAgICAoeyBbZGF0YV06IGRhdGEsIC4uLm9iaiB9ID0gb2JqZWN0KTsK
KyAgICAgICAgICAgICAgICBpZiAobV9jb250YWluc1Jlc3RFbGVtZW50ICYmIG1fY29udGFpbnND
b21wdXRlZFByb3BlcnR5ICYmIHRhcmdldC5wcm9wZXJ0eUV4cHJlc3Npb24pCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgdmFs
dWUgY2FuIGluY2x1ZGUgYSByZWZlcmVuY2UgdG8gbG9jYWwgdmFyaWFibGUuIFNvIGZpbGxpbmcg
dmFsdWUgdG8gYSBsb2NhbCB2YXJpYWJsZSBjYW4gZGlmZmVyIHJlc3VsdC4KKyAgICAgICAgICAg
ICAgICAvLyBXZSBnaXZlIHVwIGZhc3QgcGF0aCBpZiBkZWZhdWx0IHZhbHVlIGluY2x1ZGVzIG5v
biBjb25zdGFudC4KKyAgICAgICAgICAgICAgICAvLyBGb3IgZXhhbXBsZSwKKyAgICAgICAgICAg
ICAgICAvLyAgICAgKHsgZGF0YSA9IGRhdGEgfSA9IG9iamVjdCk7CisgICAgICAgICAgICAgICAg
aWYgKHRhcmdldC5kZWZhdWx0VmFsdWUgJiYgIXRhcmdldC5kZWZhdWx0VmFsdWUtPmlzQ29uc3Rh
bnQoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHRhcmdldC5wYXR0ZXJuLT53cml0YWJsZURpcmVjdEJpbmRpbmdJZlBvc3NpYmxl
KGdlbmVyYXRvcik7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBhdXRvIGZpbmlzaERp
cmVjdEJpbmRpbmdBc3NpZ25tZW50ID0gWyZdKCkgeworICAgICAgICAgICAgICAgIEFTU0VSVCh3
cml0YWJsZURpcmVjdEJpbmRpbmdJZlBvc3NpYmxlKCkpOworICAgICAgICAgICAgICAgIHRhcmdl
dC5wYXR0ZXJuLT5maW5pc2hEaXJlY3RCaW5kaW5nQXNzaWdubWVudChnZW5lcmF0b3IpOworICAg
ICAgICAgICAgfTsKKworICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHRlbXA7CisgICAg
ICAgICAgICBSZWdpc3RlcklEKiBkaXJlY3RCaW5kaW5nID0gd3JpdGFibGVEaXJlY3RCaW5kaW5n
SWZQb3NzaWJsZSgpOworICAgICAgICAgICAgaWYgKGRpcmVjdEJpbmRpbmcpCisgICAgICAgICAg
ICAgICAgdGVtcCA9IGRpcmVjdEJpbmRpbmc7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgdGVtcCA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKKwogICAgICAgICAgICAgUmVm
UHRyPFJlZ2lzdGVySUQ+IHByb3BlcnR5TmFtZTsKICAgICAgICAgICAgIGlmICghdGFyZ2V0LnBy
b3BlcnR5RXhwcmVzc2lvbikgewogICAgICAgICAgICAgICAgIE9wdGlvbmFsPHVpbnQzMl90PiBv
cHRpb25hbEluZGV4ID0gcGFyc2VJbmRleCh0YXJnZXQucHJvcGVydHlOYW1lKTsKQEAgLTUyOTYs
NyArNTMyOCwxMCBAQCB2b2lkIE9iamVjdFBhdHRlcm5Ob2RlOjpiaW5kVmFsdWUoQnl0ZWNvZGVH
ZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogcmhzKQogCiAgICAgICAgICAgICBpZiAo
dGFyZ2V0LmRlZmF1bHRWYWx1ZSkKICAgICAgICAgICAgICAgICBhc3NpZ25EZWZhdWx0VmFsdWVJ
ZlVuZGVmaW5lZChnZW5lcmF0b3IsIHRlbXAuZ2V0KCksIHRhcmdldC5kZWZhdWx0VmFsdWUpOwot
ICAgICAgICAgICAgdGFyZ2V0LnBhdHRlcm4tPmJpbmRWYWx1ZShnZW5lcmF0b3IsIHRlbXAuZ2V0
KCkpOworICAgICAgICAgICAgaWYgKGRpcmVjdEJpbmRpbmcpCisgICAgICAgICAgICAgICAgZmlu
aXNoRGlyZWN0QmluZGluZ0Fzc2lnbm1lbnQoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICB0YXJnZXQucGF0dGVybi0+YmluZFZhbHVlKGdlbmVyYXRvciwgdGVtcC5nZXQoKSk7
CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlQodGFyZ2V0LmJpbmRpbmdUeXBl
ID09IEJpbmRpbmdUeXBlOjpSZXN0RWxlbWVudCk7CiAgICAgICAgICAgICBBU1NFUlQoaSA9PSBt
X3RhcmdldFBhdHRlcm5zLnNpemUoKSAtIDEpOwpAQCAtNTMzMSw2ICs1MzY2LDI5IEBAIHZvaWQg
T2JqZWN0UGF0dGVybk5vZGU6OmNvbGxlY3RCb3VuZElkZW50aWZpZXJzKFZlY3RvcjxJZGVudGlm
aWVyPiYgaWRlbnRpZmllcnMpCiAgICAgICAgIG1fdGFyZ2V0UGF0dGVybnNbaV0ucGF0dGVybi0+
Y29sbGVjdEJvdW5kSWRlbnRpZmllcnMoaWRlbnRpZmllcnMpOwogfQogCitSZWdpc3RlcklEKiBC
aW5kaW5nTm9kZTo6d3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQb3NzaWJsZShCeXRlY29kZUdlbmVy
YXRvciYgZ2VuZXJhdG9yKSBjb25zdAoreworICAgIFZhcmlhYmxlIHZhciA9IGdlbmVyYXRvci52
YXJpYWJsZShtX2JvdW5kUHJvcGVydHkpOworICAgIGJvb2wgaXNSZWFkT25seSA9IHZhci5pc1Jl
YWRPbmx5KCkgJiYgbV9iaW5kaW5nQ29udGV4dCAhPSBBc3NpZ25tZW50Q29udGV4dDo6Q29uc3RE
ZWNsYXJhdGlvblN0YXRlbWVudDsKKyAgICBpZiAoUmVnaXN0ZXJJRCogbG9jYWwgPSB2YXIubG9j
YWwoKSkgeworICAgICAgICBpZiAobV9iaW5kaW5nQ29udGV4dCA9PSBBc3NpZ25tZW50Q29udGV4
dDo6QXNzaWdubWVudEV4cHJlc3Npb24pIHsKKyAgICAgICAgICAgIGlmIChnZW5lcmF0b3IubmVl
ZHNURFpDaGVjayh2YXIpKQorICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAg
ICB9CisgICAgICAgIGlmIChpc1JlYWRPbmx5KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgICAgIHJldHVybiBsb2NhbDsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K3ZvaWQgQmluZGluZ05vZGU6OmZpbmlzaERpcmVjdEJpbmRpbmdBc3NpZ25tZW50KEJ5dGVjb2Rl
R2VuZXJhdG9yJiBnZW5lcmF0b3IpIGNvbnN0Cit7CisgICAgQVNTRVJUKHdyaXRhYmxlRGlyZWN0
QmluZGluZ0lmUG9zc2libGUoZ2VuZXJhdG9yKSk7CisgICAgaWYgKG1fYmluZGluZ0NvbnRleHQg
PT0gQXNzaWdubWVudENvbnRleHQ6OkRlY2xhcmF0aW9uU3RhdGVtZW50IHx8IG1fYmluZGluZ0Nv
bnRleHQgPT0gQXNzaWdubWVudENvbnRleHQ6OkNvbnN0RGVjbGFyYXRpb25TdGF0ZW1lbnQpCisg
ICAgICAgIGdlbmVyYXRvci5saWZ0VERaQ2hlY2tJZlBvc3NpYmxlKGdlbmVyYXRvci52YXJpYWJs
ZShtX2JvdW5kUHJvcGVydHkpKTsKK30KKwogdm9pZCBCaW5kaW5nTm9kZTo6YmluZFZhbHVlKEJ5
dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIHZhbHVlKSBjb25zdAogewog
ICAgIFZhcmlhYmxlIHZhciA9IGdlbmVyYXRvci52YXJpYWJsZShtX2JvdW5kUHJvcGVydHkpOwpA
QCAtNTM3NSw2ICs1NDMzLDI4IEBAIHZvaWQgQmluZGluZ05vZGU6OmNvbGxlY3RCb3VuZElkZW50
aWZpZXJzKFZlY3RvcjxJZGVudGlmaWVyPiYgaWRlbnRpZmllcnMpIGNvbnN0CiAgICAgaWRlbnRp
ZmllcnMuYXBwZW5kKG1fYm91bmRQcm9wZXJ0eSk7CiB9CiAKK1JlZ2lzdGVySUQqIEFzc2lnbm1l
bnRFbGVtZW50Tm9kZTo6d3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQb3NzaWJsZShCeXRlY29kZUdl
bmVyYXRvciYgZ2VuZXJhdG9yKSBjb25zdAoreworICAgIGlmICghbV9hc3NpZ25tZW50VGFyZ2V0
LT5pc1Jlc29sdmVOb2RlKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIFJlc29sdmVO
b2RlKiBsaHMgPSBzdGF0aWNfY2FzdDxSZXNvbHZlTm9kZSo+KG1fYXNzaWdubWVudFRhcmdldCk7
CisgICAgVmFyaWFibGUgdmFyID0gZ2VuZXJhdG9yLnZhcmlhYmxlKGxocy0+aWRlbnRpZmllcigp
KTsKKyAgICBib29sIGlzUmVhZE9ubHkgPSB2YXIuaXNSZWFkT25seSgpOworICAgIGlmIChSZWdp
c3RlcklEKiBsb2NhbCA9IHZhci5sb2NhbCgpKSB7CisgICAgICAgIGlmIChnZW5lcmF0b3IubmVl
ZHNURFpDaGVjayh2YXIpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGlm
IChpc1JlYWRPbmx5KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVy
biBsb2NhbDsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgQXNzaWdubWVu
dEVsZW1lbnROb2RlOjpmaW5pc2hEaXJlY3RCaW5kaW5nQXNzaWdubWVudChCeXRlY29kZUdlbmVy
YXRvciYgZ2VuZXJhdG9yKSBjb25zdAoreworICAgIEFTU0VSVF9VTlVTRUQoZ2VuZXJhdG9yLCB3
cml0YWJsZURpcmVjdEJpbmRpbmdJZlBvc3NpYmxlKGdlbmVyYXRvcikpOworfQorCiB2b2lkIEFz
c2lnbm1lbnRFbGVtZW50Tm9kZTo6Y29sbGVjdEJvdW5kSWRlbnRpZmllcnMoVmVjdG9yPElkZW50
aWZpZXI+JikgY29uc3QKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTm9kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRl
eCAxNzA5N2VhOWYyNzA1MzYyNjVlMTNhYTkxNDliZjkzZDk0MmUyMWE3Li5kMmQ3ZDVlODgxMTUx
YWI2ZDBhZTE4YTEyNTY1ZWVjMjdiNWViMDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2Rlcy5oCkBAIC0yMzc0LDYgKzIzNzQsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmly
dHVhbCBib29sIGlzQXNzaWdubWVudEVsZW1lbnROb2RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICAgICAgdmlydHVhbCBib29sIGlzUmVzdFBhcmFtZXRlcigpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdERpcmVjdEJpbmRpbmco
Qnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiwgRXhwcmVzc2lvbk5vZGUqKSB7IHJldHVy
biBudWxscHRyOyB9CisKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiB3cml0YWJsZURpcmVj
dEJpbmRpbmdJZlBvc3NpYmxlKEJ5dGVjb2RlR2VuZXJhdG9yJikgY29uc3QgeyByZXR1cm4gbnVs
bHB0cjsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoRGlyZWN0QmluZGluZ0Fzc2lnbm1l
bnQoQnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdCB7IH0KICAgICAgICAgCiAgICAgcHJvdGVjdGVk
OgogICAgICAgICBEZXN0cnVjdHVyaW5nUGF0dGVybk5vZGUoKTsKQEAgLTI0NjAsNiArMjQ2Myw5
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZv
dFN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9kaXZvdFN0YXJ0OyB9CiAgICAgICAgIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdEVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGl2b3RFbmQ7IH0KKwor
ICAgICAgICBSZWdpc3RlcklEKiB3cml0YWJsZURpcmVjdEJpbmRpbmdJZlBvc3NpYmxlKEJ5dGVj
b2RlR2VuZXJhdG9yJikgY29uc3QgZmluYWw7CisgICAgICAgIHZvaWQgZmluaXNoRGlyZWN0Qmlu
ZGluZ0Fzc2lnbm1lbnQoQnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdDsKICAgICAgICAgCiAgICAg
cHJpdmF0ZToKICAgICAgICAgdm9pZCBjb2xsZWN0Qm91bmRJZGVudGlmaWVycyhWZWN0b3I8SWRl
bnRpZmllcj4mKSBjb25zdCBmaW5hbDsKQEAgLTI0OTksNiArMjUwNSw5IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCgpIGNvbnN0IHsg
cmV0dXJuIG1fZGl2b3RTdGFydDsgfQogICAgICAgICBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3RFbmQoKSBjb25zdCB7IHJldHVybiBtX2Rpdm90RW5kOyB9CiAKKyAgICAgICAgUmVnaXN0ZXJJ
RCogd3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQb3NzaWJsZShCeXRlY29kZUdlbmVyYXRvciYpIGNv
bnN0IGZpbmFsOworICAgICAgICB2b2lkIGZpbmlzaERpcmVjdEJpbmRpbmdBc3NpZ25tZW50KEJ5
dGVjb2RlR2VuZXJhdG9yJikgY29uc3Q7CisKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGNv
bGxlY3RCb3VuZElkZW50aWZpZXJzKFZlY3RvcjxJZGVudGlmaWVyPiYpIGNvbnN0IGZpbmFsOwog
ICAgICAgICB2b2lkIGJpbmRWYWx1ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqKSBj
b25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNTZkYWI0ZGFkY2Q4YjZhZjI3MTM4MDk1MDA3YzVkMmUzZTkyZDUwOS4uMTM5
MDYyYjQwODkwNTcwYTdkOTI5Y2YzMWM3NzFiOTI4MDY0YzA1MSAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAy
MS0wMS0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtK
U0NdIFJlbW92ZSB1bm5lY2Vzc2FyeSBtb3YgYnl0ZWNvZGVzIHdoZW4gcGVyZm9ybWluZyBzaW1w
bGUgb2JqZWN0IHBhdHRlcm4gZGVzdHJ1Y3R1cmluZyB0byB2YXJpYWJsZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIxOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL29iamVjdC1wYXR0
ZXJuLXNpbXBsZS1mYXN0LXBhdGguanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAg
ICAgICAoc2hvdWxkVGhyb3cpOgorICAgICAgICAodGVzdDEpOgorCiAyMDIwLTEyLTMxICBBbGV4
ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBKU0Z1bmN0aW9u
OjpkZWxldGVQcm9wZXJ0eSgpIGZhaWxzIHRvIGRlbGV0ZSBhIG5vbi1leGlzdGVudCAicHJvdG90
eXBlIiBwcm9wZXJ0eQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3Mvb2JqZWN0LXBhdHRlcm4t
c2ltcGxlLWZhc3QtcGF0aC5qcyBiL0pTVGVzdHMvc3RyZXNzL29iamVjdC1wYXR0ZXJuLXNpbXBs
ZS1mYXN0LXBhdGguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjZmMTIzM2ExMzkzNWZkMDdjNjAyYWI1MGFmOWI0
YTllYjgwMWQ0NwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL29iamVjdC1wYXR0
ZXJuLXNpbXBsZS1mYXN0LXBhdGguanMKQEAgLTAsMCArMSwxMDIgQEAKK2Z1bmN0aW9uIHNob3Vs
ZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5j
dGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvck1lc3NhZ2UpIHsKKyAgICB2YXIgZXJyb3JUaHJv
d24gPSBmYWxzZTsKKyAgICB2YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAgIGZ1
bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yVGhyb3duID0gdHJ1ZTsKKyAg
ICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICBpZiAoIWVycm9yVGhyb3duKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoJ25vdCB0aHJvd24nKTsKKyAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0g
ZXJyb3JNZXNzYWdlKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGJhZCBlcnJvcjogJHtTdHJp
bmcoZXJyb3IpfWApOworfQorCitmdW5jdGlvbiB0ZXN0MSh7IGRhdGEgfSkgeworICAgIHJldHVy
biBkYXRhOworfQorCitzaG91bGRCZSh0ZXN0MSh7IGRhdGE6IDQyIH0pLCA0Mik7CisKK3Nob3Vs
ZFRocm93KCgpID0+IHsKKyAgICBjb25zdCBkYXRhID0gNDI7CisgICAgKHsgZGF0YSB9ID0geyBk
YXRhOiA1MCB9KTsKK30sIGBUeXBlRXJyb3I6IEF0dGVtcHRlZCB0byBhc3NpZ24gdG8gcmVhZG9u
bHkgcHJvcGVydHkuYCk7CisKKyhmdW5jdGlvbiAoKSB7CisgICAgY29uc3QgeyBkYXRhIH0gPSB7
IGRhdGE6IDUwIH07CisgICAgc2hvdWxkQmUoZGF0YSwgNTApOworfSgpKTsKKworc2hvdWxkVGhy
b3coKCkgPT4geworICAgIGNvbnN0IHsgZGF0YSB9ID0gZGF0YTsKK30sIGBSZWZlcmVuY2VFcnJv
cjogQ2Fubm90IGFjY2VzcyB1bmluaXRpYWxpemVkIHZhcmlhYmxlLmApOworCitzaG91bGRUaHJv
dygoKSA9PiB7CisgICAgY29uc3QgeyBbdGhyb3dpbmcoKV06IGRhdGEgfSA9IHsgZGF0YTogNTAg
fTsKKyAgICBmdW5jdGlvbiB0aHJvd2luZygpIHsKKyAgICAgICAgZGF0YTsKKyAgICB9Cit9LCBg
UmVmZXJlbmNlRXJyb3I6IENhbm5vdCBhY2Nlc3MgdW5pbml0aWFsaXplZCB2YXJpYWJsZS5gKTsK
KworKGZ1bmN0aW9uICgpIHsKKyAgICBsZXQgZGF0YSA9IDQyOworICAgICh7IGRhdGEgfSA9IHsg
ZGF0YTogNTAgfSk7CisgICAgc2hvdWxkQmUoZGF0YSwgNTApOworfSgpKTsKKworKGZ1bmN0aW9u
ICgpIHsKKyAgICBsZXQgeyBkYXRhIH0gPSB7IGRhdGE6IDUwIH07CisgICAgc2hvdWxkQmUoZGF0
YSwgNTApOworfSgpKTsKKworc2hvdWxkVGhyb3coKCkgPT4geworICAgIGxldCB7IGRhdGEgfSA9
IGRhdGE7Cit9LCBgUmVmZXJlbmNlRXJyb3I6IENhbm5vdCBhY2Nlc3MgdW5pbml0aWFsaXplZCB2
YXJpYWJsZS5gKTsKKworc2hvdWxkVGhyb3coKCkgPT4geworICAgIGxldCB7IFt0aHJvd2luZygp
XTogZGF0YSB9ID0geyBkYXRhOiA1MCB9OworICAgIGZ1bmN0aW9uIHRocm93aW5nKCkgeworICAg
ICAgICBkYXRhOworICAgIH0KK30sIGBSZWZlcmVuY2VFcnJvcjogQ2Fubm90IGFjY2VzcyB1bmlu
aXRpYWxpemVkIHZhcmlhYmxlLmApOworCisoZnVuY3Rpb24gKCkgeworICAgIGxldCB7IFs0M106
IGRhdGEgfSA9IHsgNDM6IDUwIH07CisgICAgc2hvdWxkQmUoZGF0YSwgNTApOworfSgpKTsKKwor
KGZ1bmN0aW9uICgpIHsKKyAgICBsZXQgY2FsbGVkMSA9IGZhbHNlOworICAgIGxldCBjYWxsZWQy
ID0gZmFsc2U7CisgICAgbGV0IGRhdGEgPSA0MjsKKyAgICAoeyBbdGhyb3dpbmcoKV06IGRhdGEs
IC4uLm9rIH0gPSB7IGRhdGE6IDUwIH0pOworICAgIGZ1bmN0aW9uIHRocm93aW5nKCkgeworICAg
ICAgICBjYWxsZWQxID0gdHJ1ZTsKKyAgICAgICAgc2hvdWxkQmUoZGF0YSwgNDIpOworICAgICAg
ICByZXR1cm4geworICAgICAgICAgICAgdG9TdHJpbmcoKSB7CisgICAgICAgICAgICAgICAgY2Fs
bGVkMiA9IHRydWU7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoZGF0YSwgNDIpOworICAgICAg
ICAgICAgICAgIHJldHVybiAnZGF0YSc7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAg
fQorICAgIHNob3VsZEJlKGRhdGEsIDUwKTsKKyAgICBzaG91bGRCZShjYWxsZWQxLCB0cnVlKTsK
KyAgICBzaG91bGRCZShjYWxsZWQyLCB0cnVlKTsKK30oKSk7CisKKyhmdW5jdGlvbiAoKSB7Cisg
ICAgbGV0IGRhdGEgPSAnb2snOworICAgIGxldCBvYmo7CisgICAgKHsgW2RhdGFdOiBkYXRhLCAu
Li5vYmogfSA9IHsgb2s6ICdiYWQnLCBiYWQ6IDQyIH0pOworICAgIHNob3VsZEJlKGRhdGEsICdi
YWQnKTsKKyAgICBzaG91bGRCZShvYmouYmFkLCA0Mik7Cit9KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416885</attachid>
            <date>2021-01-01 13:54:14 -0800</date>
            <delta_ts>2021-01-01 13:56:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220219-20210101135413.patch</filename>
            <type>text/plain</type>
            <size>13460</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NTExMThmMjcwMDE2MzY3OTlkYjhlMzhhYjQ2YzkxZGM2OGNhMDlkLi5kMDdmZTQwYzFlYjhhMDQ3
ZDc5NDM4ZjM1MDNhNDE2YzE2MzRhMmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAyMS0wMS0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlbW92ZSB1bm5lY2Vzc2FyeSBtb3YgYnl0ZWNvZGVzIHdoZW4g
cGVyZm9ybWluZyBzaW1wbGUgb2JqZWN0IHBhdHRlcm4gZGVzdHJ1Y3R1cmluZyB0byB2YXJpYWJs
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDIx
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJl
bnRseSwgd2UgYXJlIGZpcnN0IHB1dHMgb2JqZWN0IHBhdHRlcm4ncyBleHByZXNzaW9uIGludG8g
dGVtcG9yYXJ5IHZhcmlhYmxlLCBhbmQgdGhlbiwgd2Ugc3RvcmUgaXQgaW50byBsb2NhbCB2YXJp
YWJsZSByZWdpc3Rlci4KKworICAgICAgICBUaGUgZm9sbG93aW5nIGNvZGUKKworICAgICAgICAg
ICAgKHsgZGF0YSB9ID0gb2JqZWN0KTsKKworICAgICAgICBlbWl0cyB0aGlzIGtpbmQgb2YgYnl0
ZWNvZGUuCisKKyAgICAgICAgICAgIGdldF9ieV9pZCAgICAgICAgICBkc3Q6bG9jMTAsIGJhc2U6
bG9jOSwgcHJvcGVydHk6MAorICAgICAgICAgICAgbW92ICAgICAgICAgICAgICAgIGRzdDpsb2M2
LCBzcmM6bG9jMTAKKworICAgICAgICBIb3dldmVyLCB0aGlzIHNob3VsZCBiZQorCisgICAgICAg
ICAgICBnZXRfYnlfaWQgICAgICAgICAgZHN0OmxvYzYsIGJhc2U6bG9jOSwgcHJvcGVydHk6MAor
CisgICAgICAgIFdlIGFyZSBlbWl0dGluZyBtYW55IHVubmVjZXNzYXJ5IG1vdnMgc2luY2UgdGhp
cyBkZXN0cnVjdHVyaW5nIHBhdHRlcm4gaXMgY29tbW9uLiBJbmNyZWFzaW5nIGFtb3VudCBvZiBt
b3YgKDEpIGRpc2NvdXJhZ2VzIGlubGluaW5nIHVubmVjZXNzYXJpbHkgYW5kICgyKSBzaW1wbHkg
bWFrZXMKKyAgICAgICAgYnl0ZWNvZGUgbWVtb3J5IGxhcmdlLiBTaW5jZSB0aGlzIGlzIHZlcnkg
Y29tbW9uIHBhdHRlcm4sIHdlIHNob3VsZCBjYXJlZnVsbHkgb3B0aW1pemUgaXQgdG8gcmVtb3Zl
IHN1Y2ggdW5uZWNlc3NhcnkgbW92cy4KKworICAgICAgICBUaGlzIHBhdGNoIGxvb2tzIGludG8g
cGF0dGVybiB3aGVuIHBlcmZvcm1pbmcgb2JqZWN0IHBhdHRlcm4gZGVzdHJ1Y3R1cmluZy4gQW5k
IGF2b2lkIGVtaXR0aW5nIG1vdiB3aGVuIGl0IGlzIHBvc3NpYmxlLiBUaGVyZSBhcmUgc29tZSBj
YXNlcyB3ZSBjYW5ub3QgcmVtb3ZlIG1vdnMsIHNvCisgICAgICAgIHRoaXMgcGF0Y2gncyB3cml0
YWJsZURpcmVjdEJpbmRpbmdJZlBvc3NpYmxlIGxvb2tzIGludG8gd2hldGhlciB0aGlzIGlzIHBv
c3NpYmxlICgmIHByb2ZpdGFibGUpLgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdFBhdHRlcm5Ob2RlOjpiaW5kVmFsdWUgY29u
c3QpOgorICAgICAgICAoSlNDOjpCaW5kaW5nTm9kZTo6d3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQ
b3NzaWJsZSBjb25zdCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdOb2RlOjpmaW5pc2hEaXJlY3RC
aW5kaW5nQXNzaWdubWVudCBjb25zdCk6CisgICAgICAgIChKU0M6OkFzc2lnbm1lbnRFbGVtZW50
Tm9kZTo6d3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQb3NzaWJsZSBjb25zdCk6CisgICAgICAgIChK
U0M6OkFzc2lnbm1lbnRFbGVtZW50Tm9kZTo6ZmluaXNoRGlyZWN0QmluZGluZ0Fzc2lnbm1lbnQg
Y29uc3QpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAoSlNDOjpEZXN0cnVj
dHVyaW5nUGF0dGVybk5vZGU6OndyaXRhYmxlRGlyZWN0QmluZGluZ0lmUG9zc2libGUgY29uc3Qp
OgorICAgICAgICAoSlNDOjpEZXN0cnVjdHVyaW5nUGF0dGVybk5vZGU6OmZpbmlzaERpcmVjdEJp
bmRpbmdBc3NpZ25tZW50IGNvbnN0KToKKwogMjAyMC0xMi0zMSAgQWxleGV5IFNodmF5a2EgIDxz
aHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgSlNGdW5jdGlvbjo6ZGVsZXRlUHJvcGVy
dHkoKSBmYWlscyB0byBkZWxldGUgYSBub24tZXhpc3RlbnQgInByb3RvdHlwZSIgcHJvcGVydHkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2Rl
Z2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2Vu
LmNwcAppbmRleCBkNGE4OWI0NGQzNjdiYzI2OWZkOWI4NGNlMzIxNjQ1MzM5ZmU2OTNhLi4zZTc0
MTEzNmIyYWE0ODQ4YmVkMDE0NTI2ODMxZDcxMjViYmQ1NmVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC01MjY0LDcg
KzUyNjQsMzkgQEAgdm9pZCBPYmplY3RQYXR0ZXJuTm9kZTo6YmluZFZhbHVlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIHJocykKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG1fdGFyZ2V0UGF0dGVybnMuc2l6ZSgpOyBpKyspIHsKICAgICAgICAgY29uc3QgYXV0
byYgdGFyZ2V0ID0gbV90YXJnZXRQYXR0ZXJuc1tpXTsKICAgICAgICAgaWYgKHRhcmdldC5iaW5k
aW5nVHlwZSA9PSBCaW5kaW5nVHlwZTo6RWxlbWVudCkgewotICAgICAgICAgICAgUmVmUHRyPFJl
Z2lzdGVySUQ+IHRlbXAgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7CisgICAgICAgICAgICAv
LyBJZiB0aGUgZGVzdHJ1Y3R1cmluZyBiZWNvbWVzIGdldF9ieV9pZCBhbmQgbW92LCB0aGVuIHdl
IHNob3VsZCBzdG9yZSByZXN1bHRzIGRpcmVjdGx5IHRvIHRoZSBsb2NhbCdzIGJpbmRpbmcuCisg
ICAgICAgICAgICAvLyBGcm9tCisgICAgICAgICAgICAvLyAgICAgZ2V0X2J5X2lkICAgICAgICAg
IGRzdDpsb2MxMCwgYmFzZTpsb2M5LCBwcm9wZXJ0eTowCisgICAgICAgICAgICAvLyAgICAgbW92
ICAgICAgICAgICAgICAgIGRzdDpsb2M2LCBzcmM6bG9jMTAKKyAgICAgICAgICAgIC8vIFRvCisg
ICAgICAgICAgICAvLyAgICAgZ2V0X2J5X2lkICAgICAgICAgIGRzdDpsb2M2LCBiYXNlOmxvYzks
IHByb3BlcnR5OjAKKyAgICAgICAgICAgIGF1dG8gd3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQb3Nz
aWJsZSA9IFsmXSgpIC0+IFJlZ2lzdGVySUQqIHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgZm9s
bG93aW5nIHBhdHRlcm4gaXMgcG9zc2libGUuIEluIHRoYXQgY2FzZSwgYWZ0ZXIgc2V0dGluZyB8
ZGF0YXwgbG9jYWwgdmFyaWFibGUsIHdlIG5lZWQgdG8gc3RvcmUgcHJvcGVydHkgbmFtZSBpbnRv
IHRoZSBzZXQuCisgICAgICAgICAgICAgICAgLy8gU28sIG9sZCBwcm9wZXJ0eSBuYW1lIHxkYXRh
fCByZXN1bHQgbXVzdCBiZSBrZXB0IGJlZm9yZSBzZXR0aW5nIGl0IGludG8gfGRhdGF8LgorICAg
ICAgICAgICAgICAgIC8vICAgICAoeyBbZGF0YV06IGRhdGEsIC4uLm9iaiB9ID0gb2JqZWN0KTsK
KyAgICAgICAgICAgICAgICBpZiAobV9jb250YWluc1Jlc3RFbGVtZW50ICYmIG1fY29udGFpbnND
b21wdXRlZFByb3BlcnR5ICYmIHRhcmdldC5wcm9wZXJ0eUV4cHJlc3Npb24pCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgdmFs
dWUgY2FuIGluY2x1ZGUgYSByZWZlcmVuY2UgdG8gbG9jYWwgdmFyaWFibGUuIFNvIGZpbGxpbmcg
dmFsdWUgdG8gYSBsb2NhbCB2YXJpYWJsZSBjYW4gZGlmZmVyIHJlc3VsdC4KKyAgICAgICAgICAg
ICAgICAvLyBXZSBnaXZlIHVwIGZhc3QgcGF0aCBpZiBkZWZhdWx0IHZhbHVlIGluY2x1ZGVzIG5v
biBjb25zdGFudC4KKyAgICAgICAgICAgICAgICAvLyBGb3IgZXhhbXBsZSwKKyAgICAgICAgICAg
ICAgICAvLyAgICAgKHsgZGF0YSA9IGRhdGEgfSA9IG9iamVjdCk7CisgICAgICAgICAgICAgICAg
aWYgKHRhcmdldC5kZWZhdWx0VmFsdWUgJiYgIXRhcmdldC5kZWZhdWx0VmFsdWUtPmlzQ29uc3Rh
bnQoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHRhcmdldC5wYXR0ZXJuLT53cml0YWJsZURpcmVjdEJpbmRpbmdJZlBvc3NpYmxl
KGdlbmVyYXRvcik7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBhdXRvIGZpbmlzaERp
cmVjdEJpbmRpbmdBc3NpZ25tZW50ID0gWyZdKCkgeworICAgICAgICAgICAgICAgIEFTU0VSVCh3
cml0YWJsZURpcmVjdEJpbmRpbmdJZlBvc3NpYmxlKCkpOworICAgICAgICAgICAgICAgIHRhcmdl
dC5wYXR0ZXJuLT5maW5pc2hEaXJlY3RCaW5kaW5nQXNzaWdubWVudChnZW5lcmF0b3IpOworICAg
ICAgICAgICAgfTsKKworICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHRlbXA7CisgICAg
ICAgICAgICBSZWdpc3RlcklEKiBkaXJlY3RCaW5kaW5nID0gd3JpdGFibGVEaXJlY3RCaW5kaW5n
SWZQb3NzaWJsZSgpOworICAgICAgICAgICAgaWYgKGRpcmVjdEJpbmRpbmcpCisgICAgICAgICAg
ICAgICAgdGVtcCA9IGRpcmVjdEJpbmRpbmc7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgdGVtcCA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKKwogICAgICAgICAgICAgUmVm
UHRyPFJlZ2lzdGVySUQ+IHByb3BlcnR5TmFtZTsKICAgICAgICAgICAgIGlmICghdGFyZ2V0LnBy
b3BlcnR5RXhwcmVzc2lvbikgewogICAgICAgICAgICAgICAgIE9wdGlvbmFsPHVpbnQzMl90PiBv
cHRpb25hbEluZGV4ID0gcGFyc2VJbmRleCh0YXJnZXQucHJvcGVydHlOYW1lKTsKQEAgLTUyOTYs
NyArNTMyOCwxMCBAQCB2b2lkIE9iamVjdFBhdHRlcm5Ob2RlOjpiaW5kVmFsdWUoQnl0ZWNvZGVH
ZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogcmhzKQogCiAgICAgICAgICAgICBpZiAo
dGFyZ2V0LmRlZmF1bHRWYWx1ZSkKICAgICAgICAgICAgICAgICBhc3NpZ25EZWZhdWx0VmFsdWVJ
ZlVuZGVmaW5lZChnZW5lcmF0b3IsIHRlbXAuZ2V0KCksIHRhcmdldC5kZWZhdWx0VmFsdWUpOwot
ICAgICAgICAgICAgdGFyZ2V0LnBhdHRlcm4tPmJpbmRWYWx1ZShnZW5lcmF0b3IsIHRlbXAuZ2V0
KCkpOworICAgICAgICAgICAgaWYgKGRpcmVjdEJpbmRpbmcpCisgICAgICAgICAgICAgICAgZmlu
aXNoRGlyZWN0QmluZGluZ0Fzc2lnbm1lbnQoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICB0YXJnZXQucGF0dGVybi0+YmluZFZhbHVlKGdlbmVyYXRvciwgdGVtcC5nZXQoKSk7
CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlQodGFyZ2V0LmJpbmRpbmdUeXBl
ID09IEJpbmRpbmdUeXBlOjpSZXN0RWxlbWVudCk7CiAgICAgICAgICAgICBBU1NFUlQoaSA9PSBt
X3RhcmdldFBhdHRlcm5zLnNpemUoKSAtIDEpOwpAQCAtNTMzMSw2ICs1MzY2LDMyIEBAIHZvaWQg
T2JqZWN0UGF0dGVybk5vZGU6OmNvbGxlY3RCb3VuZElkZW50aWZpZXJzKFZlY3RvcjxJZGVudGlm
aWVyPiYgaWRlbnRpZmllcnMpCiAgICAgICAgIG1fdGFyZ2V0UGF0dGVybnNbaV0ucGF0dGVybi0+
Y29sbGVjdEJvdW5kSWRlbnRpZmllcnMoaWRlbnRpZmllcnMpOwogfQogCitSZWdpc3RlcklEKiBC
aW5kaW5nTm9kZTo6d3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQb3NzaWJsZShCeXRlY29kZUdlbmVy
YXRvciYgZ2VuZXJhdG9yKSBjb25zdAoreworICAgIFZhcmlhYmxlIHZhciA9IGdlbmVyYXRvci52
YXJpYWJsZShtX2JvdW5kUHJvcGVydHkpOworICAgIGJvb2wgaXNSZWFkT25seSA9IHZhci5pc1Jl
YWRPbmx5KCkgJiYgbV9iaW5kaW5nQ29udGV4dCAhPSBBc3NpZ25tZW50Q29udGV4dDo6Q29uc3RE
ZWNsYXJhdGlvblN0YXRlbWVudDsKKyAgICBpZiAoUmVnaXN0ZXJJRCogbG9jYWwgPSB2YXIubG9j
YWwoKSkgeworICAgICAgICBpZiAobV9iaW5kaW5nQ29udGV4dCA9PSBBc3NpZ25tZW50Q29udGV4
dDo6QXNzaWdubWVudEV4cHJlc3Npb24pIHsKKyAgICAgICAgICAgIGlmIChnZW5lcmF0b3IubmVl
ZHNURFpDaGVjayh2YXIpKQorICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAg
ICB9CisgICAgICAgIGlmIChpc1JlYWRPbmx5KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgICAgIHJldHVybiBsb2NhbDsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K3ZvaWQgQmluZGluZ05vZGU6OmZpbmlzaERpcmVjdEJpbmRpbmdBc3NpZ25tZW50KEJ5dGVjb2Rl
R2VuZXJhdG9yJiBnZW5lcmF0b3IpIGNvbnN0Cit7CisgICAgQVNTRVJUKHdyaXRhYmxlRGlyZWN0
QmluZGluZ0lmUG9zc2libGUoZ2VuZXJhdG9yKSk7CisgICAgVmFyaWFibGUgdmFyID0gZ2VuZXJh
dG9yLnZhcmlhYmxlKG1fYm91bmRQcm9wZXJ0eSk7CisgICAgUmVnaXN0ZXJJRCogbG9jYWwgPSB2
YXIubG9jYWwoKTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKGxvY2FsLCB2YXIsIGRp
dm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgaWYgKG1fYmluZGluZ0NvbnRleHQgPT0gQXNz
aWdubWVudENvbnRleHQ6OkRlY2xhcmF0aW9uU3RhdGVtZW50IHx8IG1fYmluZGluZ0NvbnRleHQg
PT0gQXNzaWdubWVudENvbnRleHQ6OkNvbnN0RGVjbGFyYXRpb25TdGF0ZW1lbnQpCisgICAgICAg
IGdlbmVyYXRvci5saWZ0VERaQ2hlY2tJZlBvc3NpYmxlKHZhcik7Cit9CisKIHZvaWQgQmluZGlu
Z05vZGU6OmJpbmRWYWx1ZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklE
KiB2YWx1ZSkgY29uc3QKIHsKICAgICBWYXJpYWJsZSB2YXIgPSBnZW5lcmF0b3IudmFyaWFibGUo
bV9ib3VuZFByb3BlcnR5KTsKQEAgLTUzNzUsNiArNTQzNiwzMiBAQCB2b2lkIEJpbmRpbmdOb2Rl
Ojpjb2xsZWN0Qm91bmRJZGVudGlmaWVycyhWZWN0b3I8SWRlbnRpZmllcj4mIGlkZW50aWZpZXJz
KSBjb25zdAogICAgIGlkZW50aWZpZXJzLmFwcGVuZChtX2JvdW5kUHJvcGVydHkpOwogfQogCitS
ZWdpc3RlcklEKiBBc3NpZ25tZW50RWxlbWVudE5vZGU6OndyaXRhYmxlRGlyZWN0QmluZGluZ0lm
UG9zc2libGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvcikgY29uc3QKK3sKKyAgICBpZiAo
IW1fYXNzaWdubWVudFRhcmdldC0+aXNSZXNvbHZlTm9kZSgpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICBSZXNvbHZlTm9kZSogbGhzID0gc3RhdGljX2Nhc3Q8UmVzb2x2ZU5vZGUqPiht
X2Fzc2lnbm1lbnRUYXJnZXQpOworICAgIFZhcmlhYmxlIHZhciA9IGdlbmVyYXRvci52YXJpYWJs
ZShsaHMtPmlkZW50aWZpZXIoKSk7CisgICAgYm9vbCBpc1JlYWRPbmx5ID0gdmFyLmlzUmVhZE9u
bHkoKTsKKyAgICBpZiAoUmVnaXN0ZXJJRCogbG9jYWwgPSB2YXIubG9jYWwoKSkgeworICAgICAg
ICBpZiAoZ2VuZXJhdG9yLm5lZWRzVERaQ2hlY2sodmFyKSkKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICBpZiAoaXNSZWFkT25seSkKKyAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICByZXR1cm4gbG9jYWw7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOwor
fQorCit2b2lkIEFzc2lnbm1lbnRFbGVtZW50Tm9kZTo6ZmluaXNoRGlyZWN0QmluZGluZ0Fzc2ln
bm1lbnQoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvcikgY29uc3QKK3sKKyAgICBBU1NFUlRf
VU5VU0VEKGdlbmVyYXRvciwgd3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQb3NzaWJsZShnZW5lcmF0
b3IpKTsKKyAgICBSZXNvbHZlTm9kZSogbGhzID0gc3RhdGljX2Nhc3Q8UmVzb2x2ZU5vZGUqPiht
X2Fzc2lnbm1lbnRUYXJnZXQpOworICAgIFZhcmlhYmxlIHZhciA9IGdlbmVyYXRvci52YXJpYWJs
ZShsaHMtPmlkZW50aWZpZXIoKSk7CisgICAgUmVnaXN0ZXJJRCogbG9jYWwgPSB2YXIubG9jYWwo
KTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKGxvY2FsLCBkaXZvdFN0YXJ0KCksIGRp
dm90RW5kKCkpOworfQorCiB2b2lkIEFzc2lnbm1lbnRFbGVtZW50Tm9kZTo6Y29sbGVjdEJvdW5k
SWRlbnRpZmllcnMoVmVjdG9yPElkZW50aWZpZXI+JikgY29uc3QKIHsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCAxNzA5N2VhOWYyNzA1MzYyNjVlMTNhYTkxNDliZjkz
ZDk0MmUyMWE3Li5kMmQ3ZDVlODgxMTUxYWI2ZDBhZTE4YTEyNTY1ZWVjMjdiNWViMDdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC0yMzc0LDYgKzIzNzQsOSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGlzQXNzaWdubWVudEVsZW1lbnROb2Rl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgdmlydHVhbCBib29sIGlzUmVzdFBh
cmFtZXRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0
ZXJJRCogZW1pdERpcmVjdEJpbmRpbmcoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiwg
RXhwcmVzc2lvbk5vZGUqKSB7IHJldHVybiBudWxscHRyOyB9CisKKyAgICAgICAgdmlydHVhbCBS
ZWdpc3RlcklEKiB3cml0YWJsZURpcmVjdEJpbmRpbmdJZlBvc3NpYmxlKEJ5dGVjb2RlR2VuZXJh
dG9yJikgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZmlu
aXNoRGlyZWN0QmluZGluZ0Fzc2lnbm1lbnQoQnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdCB7IH0K
ICAgICAgICAgCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBEZXN0cnVjdHVyaW5nUGF0dGVybk5v
ZGUoKTsKQEAgLTI0NjAsNiArMjQ2Myw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9kaXZvdFN0
YXJ0OyB9CiAgICAgICAgIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZGl2b3RFbmQ7IH0KKworICAgICAgICBSZWdpc3RlcklEKiB3cml0YWJsZURpcmVj
dEJpbmRpbmdJZlBvc3NpYmxlKEJ5dGVjb2RlR2VuZXJhdG9yJikgY29uc3QgZmluYWw7CisgICAg
ICAgIHZvaWQgZmluaXNoRGlyZWN0QmluZGluZ0Fzc2lnbm1lbnQoQnl0ZWNvZGVHZW5lcmF0b3Im
KSBjb25zdDsKICAgICAgICAgCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBjb2xsZWN0Qm91
bmRJZGVudGlmaWVycyhWZWN0b3I8SWRlbnRpZmllcj4mKSBjb25zdCBmaW5hbDsKQEAgLTI0OTks
NiArMjUwNSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBKU1RleHRQb3NpdGlv
biYgZGl2b3RTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fZGl2b3RTdGFydDsgfQogICAgICAgICBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQoKSBjb25zdCB7IHJldHVybiBtX2Rpdm90RW5k
OyB9CiAKKyAgICAgICAgUmVnaXN0ZXJJRCogd3JpdGFibGVEaXJlY3RCaW5kaW5nSWZQb3NzaWJs
ZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0IGZpbmFsOworICAgICAgICB2b2lkIGZpbmlzaERp
cmVjdEJpbmRpbmdBc3NpZ25tZW50KEJ5dGVjb2RlR2VuZXJhdG9yJikgY29uc3Q7CisKICAgICBw
cml2YXRlOgogICAgICAgICB2b2lkIGNvbGxlY3RCb3VuZElkZW50aWZpZXJzKFZlY3RvcjxJZGVu
dGlmaWVyPiYpIGNvbnN0IGZpbmFsOwogICAgICAgICB2b2lkIGJpbmRWYWx1ZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
Q2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTZkYWI0ZGFkY2Q4YjZhZjI3MTM4
MDk1MDA3YzVkMmUzZTkyZDUwOS4uMTM5MDYyYjQwODkwNTcwYTdkOTI5Y2YzMWM3NzFiOTI4MDY0
YzA1MSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wMS0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lA
YXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIFJlbW92ZSB1bm5lY2Vzc2FyeSBtb3YgYnl0ZWNv
ZGVzIHdoZW4gcGVyZm9ybWluZyBzaW1wbGUgb2JqZWN0IHBhdHRlcm4gZGVzdHJ1Y3R1cmluZyB0
byB2YXJpYWJsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyMDIxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogc3RyZXNzL29iamVjdC1wYXR0ZXJuLXNpbXBsZS1mYXN0LXBhdGguanM6IEFkZGVkLgor
ICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAoc2hvdWxkVGhyb3cpOgorICAgICAgICAodGVz
dDEpOgorCiAyMDIwLTEyLTMxICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNv
bT4KIAogICAgICAgICBKU0Z1bmN0aW9uOjpkZWxldGVQcm9wZXJ0eSgpIGZhaWxzIHRvIGRlbGV0
ZSBhIG5vbi1leGlzdGVudCAicHJvdG90eXBlIiBwcm9wZXJ0eQpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3Mvb2JqZWN0LXBhdHRlcm4tc2ltcGxlLWZhc3QtcGF0aC5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL29iamVjdC1wYXR0ZXJuLXNpbXBsZS1mYXN0LXBhdGguanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjZmMTIz
M2ExMzkzNWZkMDdjNjAyYWI1MGFmOWI0YTllYjgwMWQ0NwotLS0gL2Rldi9udWxsCisrKyBiL0pT
VGVzdHMvc3RyZXNzL29iamVjdC1wYXR0ZXJuLXNpbXBsZS1mYXN0LXBhdGguanMKQEAgLTAsMCAr
MSwxMDIgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAo
YWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6
ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvck1lc3Nh
Z2UpIHsKKyAgICB2YXIgZXJyb3JUaHJvd24gPSBmYWxzZTsKKyAgICB2YXIgZXJyb3IgPSBudWxs
OworICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAg
IGVycm9yVGhyb3duID0gdHJ1ZTsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICBpZiAo
IWVycm9yVGhyb3duKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCB0aHJvd24nKTsKKyAg
ICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gZXJyb3JNZXNzYWdlKQorICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoYGJhZCBlcnJvcjogJHtTdHJpbmcoZXJyb3IpfWApOworfQorCitmdW5jdGlvbiB0ZXN0
MSh7IGRhdGEgfSkgeworICAgIHJldHVybiBkYXRhOworfQorCitzaG91bGRCZSh0ZXN0MSh7IGRh
dGE6IDQyIH0pLCA0Mik7CisKK3Nob3VsZFRocm93KCgpID0+IHsKKyAgICBjb25zdCBkYXRhID0g
NDI7CisgICAgKHsgZGF0YSB9ID0geyBkYXRhOiA1MCB9KTsKK30sIGBUeXBlRXJyb3I6IEF0dGVt
cHRlZCB0byBhc3NpZ24gdG8gcmVhZG9ubHkgcHJvcGVydHkuYCk7CisKKyhmdW5jdGlvbiAoKSB7
CisgICAgY29uc3QgeyBkYXRhIH0gPSB7IGRhdGE6IDUwIH07CisgICAgc2hvdWxkQmUoZGF0YSwg
NTApOworfSgpKTsKKworc2hvdWxkVGhyb3coKCkgPT4geworICAgIGNvbnN0IHsgZGF0YSB9ID0g
ZGF0YTsKK30sIGBSZWZlcmVuY2VFcnJvcjogQ2Fubm90IGFjY2VzcyB1bmluaXRpYWxpemVkIHZh
cmlhYmxlLmApOworCitzaG91bGRUaHJvdygoKSA9PiB7CisgICAgY29uc3QgeyBbdGhyb3dpbmco
KV06IGRhdGEgfSA9IHsgZGF0YTogNTAgfTsKKyAgICBmdW5jdGlvbiB0aHJvd2luZygpIHsKKyAg
ICAgICAgZGF0YTsKKyAgICB9Cit9LCBgUmVmZXJlbmNlRXJyb3I6IENhbm5vdCBhY2Nlc3MgdW5p
bml0aWFsaXplZCB2YXJpYWJsZS5gKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICBsZXQgZGF0YSA9
IDQyOworICAgICh7IGRhdGEgfSA9IHsgZGF0YTogNTAgfSk7CisgICAgc2hvdWxkQmUoZGF0YSwg
NTApOworfSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICBsZXQgeyBkYXRhIH0gPSB7IGRhdGE6
IDUwIH07CisgICAgc2hvdWxkQmUoZGF0YSwgNTApOworfSgpKTsKKworc2hvdWxkVGhyb3coKCkg
PT4geworICAgIGxldCB7IGRhdGEgfSA9IGRhdGE7Cit9LCBgUmVmZXJlbmNlRXJyb3I6IENhbm5v
dCBhY2Nlc3MgdW5pbml0aWFsaXplZCB2YXJpYWJsZS5gKTsKKworc2hvdWxkVGhyb3coKCkgPT4g
eworICAgIGxldCB7IFt0aHJvd2luZygpXTogZGF0YSB9ID0geyBkYXRhOiA1MCB9OworICAgIGZ1
bmN0aW9uIHRocm93aW5nKCkgeworICAgICAgICBkYXRhOworICAgIH0KK30sIGBSZWZlcmVuY2VF
cnJvcjogQ2Fubm90IGFjY2VzcyB1bmluaXRpYWxpemVkIHZhcmlhYmxlLmApOworCisoZnVuY3Rp
b24gKCkgeworICAgIGxldCB7IFs0M106IGRhdGEgfSA9IHsgNDM6IDUwIH07CisgICAgc2hvdWxk
QmUoZGF0YSwgNTApOworfSgpKTsKKworKGZ1bmN0aW9uICgpIHsKKyAgICBsZXQgY2FsbGVkMSA9
IGZhbHNlOworICAgIGxldCBjYWxsZWQyID0gZmFsc2U7CisgICAgbGV0IGRhdGEgPSA0MjsKKyAg
ICAoeyBbdGhyb3dpbmcoKV06IGRhdGEsIC4uLm9rIH0gPSB7IGRhdGE6IDUwIH0pOworICAgIGZ1
bmN0aW9uIHRocm93aW5nKCkgeworICAgICAgICBjYWxsZWQxID0gdHJ1ZTsKKyAgICAgICAgc2hv
dWxkQmUoZGF0YSwgNDIpOworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgdG9TdHJpbmco
KSB7CisgICAgICAgICAgICAgICAgY2FsbGVkMiA9IHRydWU7CisgICAgICAgICAgICAgICAgc2hv
dWxkQmUoZGF0YSwgNDIpOworICAgICAgICAgICAgICAgIHJldHVybiAnZGF0YSc7CisgICAgICAg
ICAgICB9CisgICAgICAgIH07CisgICAgfQorICAgIHNob3VsZEJlKGRhdGEsIDUwKTsKKyAgICBz
aG91bGRCZShjYWxsZWQxLCB0cnVlKTsKKyAgICBzaG91bGRCZShjYWxsZWQyLCB0cnVlKTsKK30o
KSk7CisKKyhmdW5jdGlvbiAoKSB7CisgICAgbGV0IGRhdGEgPSAnb2snOworICAgIGxldCBvYmo7
CisgICAgKHsgW2RhdGFdOiBkYXRhLCAuLi5vYmogfSA9IHsgb2s6ICdiYWQnLCBiYWQ6IDQyIH0p
OworICAgIHNob3VsZEJlKGRhdGEsICdiYWQnKTsKKyAgICBzaG91bGRCZShvYmouYmFkLCA0Mik7
Cit9KCkpOwo=
</data>
<flag name="review"
          id="434491"
          type_id="1"
          status="+"
          setter="ashvayka"
    />
          </attachment>
      

    </bug>

</bugzilla>