<?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>232260</bug_id>
          
          <creation_ts>2021-10-25 12:11:20 -0700</creation_ts>
          <short_desc>[JSC] Don&apos;t branch around register allocation in DFG enumerator get by val</short_desc>
          <delta_ts>2021-10-25 17:18:02 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</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>1808514</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-25 12:11:20 -0700</bug_when>
    <thetext>[JSC] Don&apos;t branch around register allocation in DFG enumerator get by val</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808515</commentid>
    <comment_count>1</comment_count>
      <attachid>442394</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-25 12:11:52 -0700</bug_when>
    <thetext>Created attachment 442394
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808516</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-25 12:11:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/84544469&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808518</commentid>
    <comment_count>3</comment_count>
      <attachid>442396</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-25 12:14:36 -0700</bug_when>
    <thetext>Created attachment 442396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808522</commentid>
    <comment_count>4</comment_count>
      <attachid>442398</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-25 12:25:05 -0700</bug_when>
    <thetext>Created attachment 442398
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808527</commentid>
    <comment_count>5</comment_count>
      <attachid>442399</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-25 12:29:36 -0700</bug_when>
    <thetext>Created attachment 442399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808681</commentid>
    <comment_count>6</comment_count>
      <attachid>442399</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-25 17:12:08 -0700</bug_when>
    <thetext>Comment on attachment 442399
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808692</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-25 17:17:59 -0700</bug_when>
    <thetext>Committed r284851 (243528@main): &lt;https://commits.webkit.org/243528@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442399.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442394</attachid>
            <date>2021-10-25 12:11:52 -0700</date>
            <delta_ts>2021-10-25 12:14:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232260-20211025121151.patch</filename>
            <type>text/plain</type>
            <size>22203</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0Nzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
Y2Y4MDVkN2U4NDk0NDQwZTlhN2RmNWY2NTI0NGFkZTNmMzAxNjE5Li5jMGI1NjEwYmM0YTUwNDgx
NGZlMzY0YWY3ZjBmNjUzOWY4MTE3ZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMS0xMC0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIERvbid0IGJyYW5jaCBhcm91bmQgcmVnaXN0ZXIgYWxsb2NhdGlv
biBpbiBERkcgZW51bWVyYXRvciBnZXQgYnkgdmFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIyNjAKKyAgICAgICAgcmRhcjovLzg0NTQ0NDY5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0QnlWYWxPblN0cmluZyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRCeVZhbE9uSW50VHlwZWRBcnJheSk6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uRmxvYXRUeXBlZEFycmF5KToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0
aFN0cmluZyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRC
eVZhbEZvck9iamVjdFdpdGhTeW1ib2wpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU2NvcGVkQXJndW1lbnRzKToKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUVudW1lcmF0b3JHZXRCeVZh
bCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgICogZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlR2V0QnlWYWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlKToKKwogMjAyMS0xMC0yNSAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtKU0NdWzMyYml0XSBEb24ndCBzcGVjdWxhdGUgQ2VsbCBvbiBQ
dXRCeVZhbApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAppbmRleCA1MWJkMWI3YjNlZDk0OTRiZDNhNDBiN2Y5MjlhNjVhZjcwYjNhNDgyLi5hM2I4
NTRkMTlkMjM3ZmUxNzA0MzMzN2Y4YzAzMzJkOTJmZTBhMzFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMjU5Myw3ICsyNTkzLDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldENoYXJDb2RlQXQoTm9kZSogbm9kZSkK
ICAgICBzdHJpY3RJbnQzMlJlc3VsdChzY3JhdGNoUmVnLCBtX2N1cnJlbnROb2RlKTsKIH0KIAot
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25TdHJpbmcoTm9kZSogbm9kZSwg
Y29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERh
dGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCkKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVHZXRCeVZhbE9uU3RyaW5nKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxz
dGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1h
dCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQogewogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5k
IGJhc2UodGhpcywgbV9ncmFwaC5jaGlsZChub2RlLCAwKSk7CiAgICAgU3BlY3VsYXRlU3RyaWN0
SW50MzJPcGVyYW5kIHByb3BlcnR5KHRoaXMsIG1fZ3JhcGguY2hpbGQobm9kZSwgMSkpOwpAQCAt
MjYwNCw3ICsyNjA0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25T
dHJpbmcoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDoKIAogICAgIEpTVmFsdWVS
ZWdzIHJlc3VsdFJlZ3M7CiAgICAgRGF0YUZvcm1hdCBmb3JtYXQ7Ci0gICAgc3RkOjp0aWUocmVz
dWx0UmVncywgZm9ybWF0KSA9IHByZWZpeChub2RlLT5hcnJheU1vZGUoKS5pc091dE9mQm91bmRz
KCkgPyBEYXRhRm9ybWF0SlMgOiBEYXRhRm9ybWF0Q2VsbCk7CisgICAgc3RkOjp0aWUocmVzdWx0
UmVncywgZm9ybWF0LCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgobm9kZS0+YXJyYXlNb2RlKCkuaXNP
dXRPZkJvdW5kcygpID8gRGF0YUZvcm1hdEpTIDogRGF0YUZvcm1hdENlbGwpOwogICAgIEdQUlJl
ZyBzY3JhdGNoUmVnID0gcmVzdWx0UmVncy5wYXlsb2FkR1BSKCk7CiAKICAgICAvLyB1bnNpZ25l
ZCBjb21wYXJpc29uIHNvIHdlIGNhbiBmaWx0ZXIgb3V0IG5lZ2F0aXZlIGluZGljZXMgYW5kIGlu
ZGljZXMgdGhhdCBhcmUgdG9vIGxhcmdlCkBAIC0zMzg4LDcgKzMzODgsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpzZXRJbnRUeXBlZEFycmF5TG9hZFJlc3VsdChOb2RlKiBub2RlLCBKU1ZhbHVl
UmVncyByZXN1bHRSZQogICAgIGRvdWJsZVJlc3VsdChyZXN1bHRGUFIsIG5vZGUpOwogfQogCi12
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkludFR5cGVkQXJyYXkoTm9kZSog
bm9kZSwgVHlwZWRBcnJheVR5cGUgdHlwZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8
SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHBy
ZWZpeCkKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uSW50VHlwZWRBcnJh
eShOb2RlKiBub2RlLCBUeXBlZEFycmF5VHlwZSB0eXBlLCBjb25zdCBTY29wZWRMYW1iZGE8c3Rk
Ojp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERhdGFGb3JtYXQg
cHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCkKIHsKICAgICBBU1NFUlQoaXNJbnQodHlwZSkpOwog
ICAgIApAQCAtMzQxMSw3ICszNDExLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdl
dEJ5VmFsT25JbnRUeXBlZEFycmF5KE5vZGUqIG5vZGUsIFR5cGVkQXJyYXlUeXBlIHQKIAogICAg
IEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3M7CiAgICAgRGF0YUZvcm1hdCBmb3JtYXQ7Ci0gICAgc3Rk
Ojp0aWUocmVzdWx0UmVncywgZm9ybWF0KSA9IHByZWZpeChEYXRhRm9ybWF0SW50MzIpOworICAg
IHN0ZDo6dGllKHJlc3VsdFJlZ3MsIGZvcm1hdCwgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFG
b3JtYXRJbnQzMik7CiAgICAgYm9vbCBzaG91bGRCb3ggPSBmb3JtYXQgPT0gRGF0YUZvcm1hdEpT
OwogCiAgICAgZW1pdFR5cGVkQXJyYXlCb3VuZHNDaGVjayhub2RlLCBiYXNlUmVnLCBwcm9wZXJ0
eVJlZywgc2NyYXRjaEdQUik7CkBAIC0zNjU2LDcgKzM2NTYsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KEdQUlJlZyBiYXNlLCBHUFJSZWcg
cHJvcGVydAogICAgIG5vUmVzdWx0KG5vZGUpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0QnlWYWxPbkZsb2F0VHlwZWRBcnJheShOb2RlKiBub2RlLCBUeXBlZEFycmF5VHlw
ZSB0eXBlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZv
cm1hdD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQordm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25GbG9hdFR5cGVkQXJyYXkoTm9kZSogbm9kZSwgVHlw
ZWRBcnJheVR5cGUgdHlwZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJl
Z3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+
JiBwcmVmaXgpCiB7CiAgICAgQVNTRVJUKGlzRmxvYXQodHlwZSkpOwogICAgIApAQCAtMzY2NCwx
OCArMzY2NCwxOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkZsb2F0
VHlwZWRBcnJheShOb2RlKiBub2RlLCBUeXBlZEFycmF5VHlwZQogICAgIFNwZWN1bGF0ZVN0cmlj
dEludDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEp
KTsKICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQo
bm9kZSwgMikpOwogICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMpOworICAgIEZQUlRlbXBv
cmFyeSByZXN1bHQodGhpcyk7CiAKICAgICBHUFJSZWcgYmFzZVJlZyA9IGJhc2UuZ3ByKCk7CiAg
ICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7CiAgICAgR1BSUmVnIHN0b3Jh
Z2VSZWcgPSBzdG9yYWdlLmdwcigpOwogICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gc2NyYXRjaC5n
cHIoKTsKKyAgICBGUFJSZWcgcmVzdWx0UmVnID0gcmVzdWx0LmZwcigpOwogCiAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVnczsKICAgICBEYXRhRm9ybWF0IGZvcm1hdDsKLSAgICBzdGQ6OnRpZShy
ZXN1bHRSZWdzLCBmb3JtYXQpID0gcHJlZml4KERhdGFGb3JtYXREb3VibGUpOworICAgIHN0ZDo6
dGllKHJlc3VsdFJlZ3MsIGZvcm1hdCwgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRE
b3VibGUpOwogCi0gICAgRlBSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKLSAgICBGUFJSZWcgcmVz
dWx0UmVnID0gcmVzdWx0LmZwcigpOwogICAgIGVtaXRUeXBlZEFycmF5Qm91bmRzQ2hlY2sobm9k
ZSwgYmFzZVJlZywgcHJvcGVydHlSZWcsIHNjcmF0Y2hHUFIpOwogICAgIHN3aXRjaCAoZWxlbWVu
dFNpemUodHlwZSkpIHsKICAgICBjYXNlIDQ6CkBAIC0zNzM3LDcgKzM3MzcsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkoR1BSUmVnIGJh
c2UsIEdQUlJlZyBwcm9wZQogICAgIG5vUmVzdWx0KG5vZGUpOwogfQogCi12b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3RyaW5nKE5vZGUqIG5vZGUsIGNv
bnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRh
Rm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3RyaW5nKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3Bl
ZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4o
RGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQogewogICAgIFNwZWN1bGF0ZUNl
bGxPcGVyYW5kIGFyZzEodGhpcywgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKSk7CiAgICAg
U3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJnMih0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUs
IDEpKTsKQEAgLTM3NDYsMTkgKzM3NDYsMjUgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN0cmluZyhOb2RlKiBub2RlLCBjb25zdCBTY29wZWQKICAg
ICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7CiAKICAgICBKU1ZhbHVlUmVncyByZXN1bHRS
ZWdzOwotICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlKSA9IHByZWZpeChEYXRh
Rm9ybWF0SlMpOworICAgIENhblVzZUZsdXNoIGNhblVzZUZsdXNoID0gQ2FuVXNlRmx1c2g6Olll
czsKKyAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBzdGQ6Omlnbm9yZSwgY2FuVXNlRmx1c2gpID0g
cHJlZml4KERhdGFGb3JtYXRKUyk7CiAKICAgICBzcGVjdWxhdGVPYmplY3QobV9ncmFwaC52YXJB
cmdDaGlsZChub2RlLCAwKSwgYXJnMUdQUik7CiAgICAgc3BlY3VsYXRlU3RyaW5nKG1fZ3JhcGgu
dmFyQXJnQ2hpbGQobm9kZSwgMSksIGFyZzJHUFIpOwogCi0gICAgZmx1c2hSZWdpc3RlcnMoKTsK
KyAgICBpZiAoY2FuVXNlRmx1c2ggPT0gQ2FuVXNlRmx1c2g6Ok5vKQorICAgICAgICBzaWxlbnRT
cGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRSZWdzKTsKKyAgICBlbHNlCisgICAgICAgIGZsdXNoUmVn
aXN0ZXJzKCk7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25HZXRCeVZhbE9iamVjdFN0cmlu
ZywgcmVzdWx0UmVncywgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFw
aC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGFyZzFHUFIsIGFyZzJH
UFIpOworICAgIGlmIChjYW5Vc2VGbHVzaCA9PSBDYW5Vc2VGbHVzaDo6Tm8pCisgICAgICAgIHNp
bGVudEZpbGxBbGxSZWdpc3RlcnMoKTsKICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOwogCiAg
ICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN5bWJvbChOb2RlKiBub2RlLCBjb25z
dCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdD4oRGF0YUZv
cm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN5bWJvbChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRM
YW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERh
dGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCkKIHsKICAgICBTcGVjdWxhdGVDZWxs
T3BlcmFuZCBhcmcxKHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkpOwogICAgIFNw
ZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzIodGhpcywgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAx
KSk7CkBAIC0zNzY3LDEzICszNzczLDE5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRCeVZhbEZvck9iamVjdFdpdGhTeW1ib2woTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkCiAgICAg
R1BSUmVnIGFyZzJHUFIgPSBhcmcyLmdwcigpOwogCiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVn
czsKLSAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZv
cm1hdEpTKTsKKyAgICBDYW5Vc2VGbHVzaCBjYW5Vc2VGbHVzaCA9IENhblVzZUZsdXNoOjpZZXM7
CisgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUsIGNhblVzZUZsdXNoKSA9IHBy
ZWZpeChEYXRhRm9ybWF0SlMpOwogCiAgICAgc3BlY3VsYXRlT2JqZWN0KG1fZ3JhcGgudmFyQXJn
Q2hpbGQobm9kZSwgMCksIGFyZzFHUFIpOwogICAgIHNwZWN1bGF0ZVN5bWJvbChtX2dyYXBoLnZh
ckFyZ0NoaWxkKG5vZGUsIDEpLCBhcmcyR1BSKTsKIAotICAgIGZsdXNoUmVnaXN0ZXJzKCk7Cisg
ICAgaWYgKGNhblVzZUZsdXNoID09IENhblVzZUZsdXNoOjpObykKKyAgICAgICAgc2lsZW50U3Bp
bGxBbGxSZWdpc3RlcnMocmVzdWx0UmVncyk7CisgICAgZWxzZQorICAgICAgICBmbHVzaFJlZ2lz
dGVycygpOwogICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uR2V0QnlWYWxPYmplY3RTeW1ib2ws
IHJlc3VsdFJlZ3MsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGgu
Z2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBhcmcxR1BSLCBhcmcyR1BS
KTsKKyAgICBpZiAoY2FuVXNlRmx1c2ggPT0gQ2FuVXNlRmx1c2g6Ok5vKQorICAgICAgICBzaWxl
bnRGaWxsQWxsUmVnaXN0ZXJzKCk7CiAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKIAogICAg
IGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CkBAIC04MTEwLDcgKzgxMjIsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0VHlwZWRBcnJheUJ5dGVPZmZzZXQoTm9kZSog
bm9kZSkKICAgICBzdHJpY3RJbnQzMlJlc3VsdCh2ZWN0b3JHUFIsIG5vZGUpOwogfQogCi12b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyhOb2RlKiBu
b2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1h
dD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQordm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25EaXJlY3RBcmd1bWVudHMoTm9kZSogbm9kZSwgY29uc3Qg
U2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENhblVzZUZs
dXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpCiB7CiAgICAgU3BlY3Vs
YXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsK
ICAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywgbV9ncmFwaC52
YXJBcmdDaGlsZChub2RlLCAxKSk7CkBAIC04MTE5LDcgKzgxMzEsNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyhOb2RlKiBub2RlLCBjb25z
dCBTY29wZWRMYQogICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwogCiAg
ICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKLSAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBzdGQ6
Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKKyAgICBzdGQ6OnRpZShyZXN1bHRSZWdz
LCBzdGQ6Omlnbm9yZSwgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CiAgICAg
R1BSUmVnIHNjcmF0Y2hSZWcgPSByZXN1bHRSZWdzLnBheWxvYWRHUFIoKTsKICAgICAKICAgICBp
ZiAoIW1fY29tcGlsZU9rYXkpCkBAIC04MTUxLDcgKzgxNjMsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyhOb2RlKiBub2RlLCBjb25zdCBT
Y29wZWRMYQogICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiB9CiAKLXZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU2NvcGVkQXJndW1lbnRzKE5vZGUqIG5v
ZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0
PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpCit2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0QnlWYWxPblNjb3BlZEFyZ3VtZW50cyhOb2RlKiBub2RlLCBjb25zdCBT
Y29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1
c2g+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCkKIHsKICAgICBTcGVjdWxh
dGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkpOwog
ICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2dyYXBoLnZh
ckFyZ0NoaWxkKG5vZGUsIDEpKTsKQEAgLTgxNjcsNyArODE3OSw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU2NvcGVkQXJndW1lbnRzKE5vZGUqIG5vZGUsIGNvbnN0
IFNjb3BlZExhCiAgICAgICAgIHJldHVybjsKIAogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3M7
Ci0gICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3Jt
YXRKUyk7CisgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUsIHN0ZDo6aWdub3Jl
KSA9IHByZWZpeChEYXRhRm9ybWF0SlMpOwogICAgIAogICAgIG1faml0LmxvYWRQdHIoCiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIFNjb3BlZEFyZ3VtZW50czo6b2Zm
c2V0T2ZTdG9yYWdlKCkpLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CkBAIC0xNTg2NSw3ICsx
NTg3Nyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yR2V0QnlWYWwo
Tm9kZSogbm9kZSkKICAgICAgICAgR1BSUmVnIGVudW1lcmF0b3JHUFI7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIGJhZFN0cnVjdHVyZVNsb3dQYXRoOwogCi0gICAgICAgIGNvbXBpbGVH
ZXRCeVZhbChub2RlLCBzY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZv
cm1hdD4oRGF0YUZvcm1hdCk+KFsmXSAoRGF0YUZvcm1hdCkgeworICAgICAgICBjb21waWxlR2V0
QnlWYWwobm9kZSwgc2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3Jt
YXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0KT4oWyZdIChEYXRhRm9ybWF0KSB7CiAgICAgICAg
ICAgICBFZGdlIHN0b3JhZ2VFZGdlID0gbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAyKTsKICAg
ICAgICAgICAgIFN0b3JhZ2VPcGVyYW5kIHN0b3JhZ2U7CiAgICAgICAgICAgICBpZiAoc3RvcmFn
ZUVkZ2UpCkBAIC0xNTkzOCw3ICsxNTk1MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVFbnVtZXJhdG9yR2V0QnlWYWwoTm9kZSogbm9kZSkKICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgbm90RmFzdE5hbWVkQ2FzZXMubGluaygmbV9qaXQpOwotICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV9wYWlyKHJlc3VsdFJlZ3MsIERhdGFGb3JtYXRKUyk7CisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjp0dXBsZSB7IHJlc3VsdFJlZ3MsIERhdGFGb3JtYXRKUywgQ2FuVXNlRmx1c2g6
Ok5vIH07CiAgICAgICAgIH0pKTsKIAogICAgICAgICAvLyBXZSByZWx5IG9uIGNvbXBpbGVHZXRC
eVZhbCB0byBjYWxsIGpzVmFsdWVSZXN1bHQgZm9yIHVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDA0OWJjZjdlNmZkYjc5MmFkNmE1ODkx
MDdhOGQxYTI3MWMxZTE5MDIuLmMxODNlMTgzM2Q1NjliYzE3NTU1ZThmNzc4MDEwZjJkZTE1YzQ1
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgK
QEAgLTEzNTgsMTQgKzEzNTgsMTUgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIH0KICAg
ICAKICAgICAvLyBXZSB1c2UgYSBzY29wZWRMYW1iZGEgdG8gcGxhY2F0ZSByZWdpc3RlciBhbGxv
Y2F0aW9uIHZhbGlkYXRpb24uCi0gICAgdm9pZCBjb21waWxlR2V0QnlWYWwoTm9kZSosIGNvbnN0
IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9y
bWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOworICAgIGVudW0gY2xhc3MgQ2FuVXNlRmx1
c2ggeyBZZXMsIE5vIH07CisgICAgdm9pZCBjb21waWxlR2V0QnlWYWwoTm9kZSosIGNvbnN0IFNj
b3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVz
aD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KTsKIAogICAgIHZvaWQgY29t
cGlsZUdldENoYXJDb2RlQXQoTm9kZSopOwotICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsT25TdHJp
bmcoTm9kZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRh
Rm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOworICAgIHZvaWQg
Y29tcGlsZUdldEJ5VmFsT25TdHJpbmcoTm9kZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1
cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVm
ZXJyZWRGb3JtYXQpPiYgcHJlZml4KTsKICAgICB2b2lkIGNvbXBpbGVGcm9tQ2hhckNvZGUoTm9k
ZSopOyAKIAotICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsT25EaXJlY3RBcmd1bWVudHMoTm9kZSos
IGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihE
YXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOwotICAgIHZvaWQgY29tcGlsZUdl
dEJ5VmFsT25TY29wZWRBcmd1bWVudHMoTm9kZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1
cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+
JiBwcmVmaXgpOworICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsT25EaXJlY3RBcmd1bWVudHMoTm9k
ZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0
LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KTsKKyAg
ICB2b2lkIGNvbXBpbGVHZXRCeVZhbE9uU2NvcGVkQXJndW1lbnRzKE5vZGUqLCBjb25zdCBTY29w
ZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+
KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CiAKICAgICB2b2lkIGNvbXBp
bGVHZXRQcml2YXRlTmFtZShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlR2V0UHJpdmF0ZU5hbWVC
eUlkKE5vZGUqKTsKQEAgLTE0NDUsMTIgKzE0NDYsMTIgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQg
ewogI2lmIFVTRShMQVJHRV9UWVBFRF9BUlJBWVMpCiAgICAgdm9pZCBjb21waWxlR2V0VHlwZWRB
cnJheUJ5dGVPZmZzZXRBc0ludDUyKE5vZGUqKTsKICNlbmRpZgotICAgIHZvaWQgY29tcGlsZUdl
dEJ5VmFsT25JbnRUeXBlZEFycmF5KE5vZGUqLCBUeXBlZEFycmF5VHlwZSwgY29uc3QgU2NvcGVk
TGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJl
ZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CisgICAgdm9pZCBjb21waWxlR2V0QnlWYWxPbkludFR5
cGVkQXJyYXkoTm9kZSosIFR5cGVkQXJyYXlUeXBlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0
dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERhdGFGb3JtYXQgcHJl
ZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CiAgICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JJbnRU
eXBlZEFycmF5KEdQUlJlZyBiYXNlLCBHUFJSZWcgcHJvcGVydHksIE5vZGUqLCBUeXBlZEFycmF5
VHlwZSk7Ci0gICAgdm9pZCBjb21waWxlR2V0QnlWYWxPbkZsb2F0VHlwZWRBcnJheShOb2RlKiwg
VHlwZWRBcnJheVR5cGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdz
LCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOworICAg
IHZvaWQgY29tcGlsZUdldEJ5VmFsT25GbG9hdFR5cGVkQXJyYXkoTm9kZSosIFR5cGVkQXJyYXlU
eXBlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1h
dCwgQ2FuVXNlRmx1c2g+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CiAg
ICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkoR1BSUmVnIGJhc2UsIEdQ
UlJlZyBwcm9wZXJ0eSwgTm9kZSosIFR5cGVkQXJyYXlUeXBlKTsKLSAgICB2b2lkIGNvbXBpbGVH
ZXRCeVZhbEZvck9iamVjdFdpdGhTdHJpbmcoTm9kZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6
OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1h
dCk+JiBwcmVmaXgpOwotICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN5bWJv
bChOb2RlKiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFG
b3JtYXQ+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CisgICAgdm9pZCBj
b21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3RyaW5nKE5vZGUqLCBjb25zdCBTY29wZWRMYW1i
ZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERhdGFG
b3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CisgICAgdm9pZCBjb21waWxlR2V0QnlW
YWxGb3JPYmplY3RXaXRoU3ltYm9sKE5vZGUqLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBs
ZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERhdGFGb3JtYXQgcHJlZmVy
cmVkRm9ybWF0KT4mIHByZWZpeCk7CiAgICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0
aFN0cmluZyhOb2RlKiwgRWRnZSYgY2hpbGQxLCBFZGdlJiBjaGlsZDIsIEVkZ2UmIGNoaWxkMyk7
CiAgICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN5bWJvbChOb2RlKiwgRWRnZSYg
Y2hpbGQxLCBFZGdlJiBjaGlsZDIsIEVkZ2UmIGNoaWxkMyk7CiAgICAgdm9pZCBjb21waWxlR2V0
QnlWYWxXaXRoVGhpcyhOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAxNGE1MDc2MWZkOWE2NTJjM2YwZTM5MTBhYTY5
ZWVlMTEzZmYxM2RjLi4yMjY2YzQ2MDc5MDc3NDRhZGFhZDRmZjA1OWI5Mjc4MjBhYzA3ZDEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKQEAgLTIzMzAsNyArMjMzMCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRCcmFuY2go
Tm9kZSogbm9kZSkKICAgICB9CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRC
eVZhbChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVn
cywgRGF0YUZvcm1hdD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQordm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3Bl
ZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4o
RGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQogewogICAgIHN3aXRjaCAobm9k
ZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7CiAgICAgY2FzZSBBcnJheTo6QW55VHlwZWRBcnJheToK
QEAgLTIzNDUsNyArMjM0NSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZh
bChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAgICAgICAgIEdQ
UlJlZyBpbmRleEdQUiA9IGluZGV4LmdwcigpOwogCiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3Vs
dFJlZ3M7Ci0gICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlKSA9IHByZWZp
eChEYXRhRm9ybWF0SlMpOworICAgICAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBzdGQ6Omlnbm9y
ZSwgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CiAKICAgICAgICAgc3BlY3Vs
YXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbm9kZSwKICAgICAgICAgICAg
IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpMZXNzVGhhbiwgaW5kZXhHUFIsIE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMCkpKTsKQEAgLTIzNzcsMTAgKzIzNzcsMTYgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3Bl
ZExhbWJkYTxzdGQ6OnR1cGxlPEoKICAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eUdQUiA9IHBy
b3BlcnR5LmdwcigpOwogCiAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwotICAg
ICAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFG
b3JtYXRKUyk7CisgICAgICAgICAgICBDYW5Vc2VGbHVzaCBjYW5Vc2VGbHVzaCA9IENhblVzZUZs
dXNoOjpZZXM7CisgICAgICAgICAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBzdGQ6Omlnbm9yZSwg
Y2FuVXNlRmx1c2gpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CiAKLSAgICAgICAgICAgIGZsdXNo
UmVnaXN0ZXJzKCk7CisgICAgICAgICAgICBpZiAoY2FuVXNlRmx1c2ggPT0gQ2FuVXNlRmx1c2g6
Ok5vKQorICAgICAgICAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFJlZ3Mp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAg
ICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkdldEJ5VmFsLCByZXN1bHRSZWdzLCBU
cnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZv
cihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZUdQUiwgcHJvcGVydHlHUFIpOworICAgICAg
ICAgICAgaWYgKGNhblVzZUZsdXNoID09IENhblVzZUZsdXNoOjpObykKKyAgICAgICAgICAgICAg
ICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgICAgICBtX2ppdC5leGNlcHRpb25D
aGVjaygpOwogCiAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwpA
QCAtMjQwMyw3ICsyNDA5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFs
KE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEoKICAgICAgICAgc3Bl
Y3VsYXRlKG5vZGUsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpOwogCiAgICAgICAgIEpT
VmFsdWVSZWdzIHJlc3VsdFJlZ3M7Ci0gICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6
aWdub3JlKSA9IHByZWZpeChEYXRhRm9ybWF0SlMpOworICAgICAgICBzdGQ6OnRpZShyZXN1bHRS
ZWdzLCBzdGQ6Omlnbm9yZSwgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CiAg
ICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHRSZWdzLmdwcigpOwogCiAgICAgICAgIENv
ZGVPcmlnaW4gY29kZU9yaWdpbiA9IG5vZGUtPm9yaWdpbi5zZW1hbnRpYzsKQEAgLTI0NjEsNyAr
MjQ2Nyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBub2Rl
LCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAKICAgICAgICAgICAgIEpTVmFsdWVS
ZWdzIHJlc3VsdFJlZ3M7CiAgICAgICAgICAgICBEYXRhRm9ybWF0IGZvcm1hdDsKLSAgICAgICAg
ICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIGZvcm1hdCkgPSBwcmVmaXgobm9kZS0+YXJyYXlNb2Rl
KCkudHlwZSgpID09IEFycmF5OjpJbnQzMiA/IERhdGFGb3JtYXRKU0ludDMyIDogRGF0YUZvcm1h
dEpTKTsKKyAgICAgICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIGZvcm1hdCwgc3RkOjppZ25v
cmUpID0gcHJlZml4KG5vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSA9PSBBcnJheTo6SW50MzIgPyBE
YXRhRm9ybWF0SlNJbnQzMiA6IERhdGFGb3JtYXRKUyk7CiAgICAgICAgICAgICBHUFJSZWcgcmVz
dWx0ID0gcmVzdWx0UmVncy5ncHIoKTsKIAogICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhP
dXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwgbV9qaXQuYnJhbmNoMzIoTWFjcm9B
c3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpKTsKQEAg
LTI0OTMsNyArMjQ5OSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChO
b2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAgICAgICAgICAgICBy
ZXR1cm47CiAKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKLSAgICAgICAgc3RkOjp0
aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CisgICAg
ICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlLCBzdGQ6Omlnbm9yZSkgPSBwcmVm
aXgoRGF0YUZvcm1hdEpTKTsKICAgICAgICAgR1BSUmVnIHJlc3VsdFJlZyA9IHJlc3VsdFJlZ3Mu
Z3ByKCk7CiAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKQEAg
LTI1MzcsNyArMjU0Myw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChO
b2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAKICAgICAgICAgICAg
IEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3M7CiAgICAgICAgICAgICBEYXRhRm9ybWF0IGZvcm1hdDsK
LSAgICAgICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIGZvcm1hdCkgPSBwcmVmaXgoRGF0YUZv
cm1hdERvdWJsZSk7CisgICAgICAgICAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBmb3JtYXQsIHN0
ZDo6aWdub3JlKSA9IHByZWZpeChEYXRhRm9ybWF0RG91YmxlKTsKIAogICAgICAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwgbV9qaXQu
YnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNM
ZW5ndGgoKSkpKTsKIApAQCAtMjU3Miw3ICsyNTc4LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxl
PEoKIAogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwogICAgICAgICBEYXRhRm9ybWF0
IGZvcm1hdDsKLSAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgZm9ybWF0KSA9IHByZWZpeChy
ZXN1bHRJc1VuYm94ZWQgPyBEYXRhRm9ybWF0RG91YmxlIDogRGF0YUZvcm1hdEpTKTsKKyAgICAg
ICAgc3RkOjp0aWUocmVzdWx0UmVncywgZm9ybWF0LCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgocmVz
dWx0SXNVbmJveGVkID8gRGF0YUZvcm1hdERvdWJsZSA6IERhdGFGb3JtYXRKUyk7CiAKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKIApAQCAtMjYyNSw3ICsyNjMx
LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNv
bnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEoKICAgICAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3M7Ci0gICAgICAgICAgICBzdGQ6OnRp
ZShyZXN1bHRSZWdzLCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKKyAgICAg
ICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlLCBzdGQ6Omlnbm9yZSkgPSBw
cmVmaXgoRGF0YUZvcm1hdEpTKTsKICAgICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1
bHRSZWdzLmdwcigpOwogCiAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91bmRz
LCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6
QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFn
ZVJlZywgQXJyYXlTdG9yYWdlOjp2ZWN0b3JMZW5ndGhPZmZzZXQoKSkpKTsKQEAgLTI2NTAsNyAr
MjY1Niw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBub2Rl
LCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKLSAgICAgICAgc3RkOjp0aWUocmVzdWx0
UmVncywgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CisgICAgICAgIHN0ZDo6
dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlLCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZv
cm1hdEpTKTsKICAgICAgICAgR1BSUmVnIHJlc3VsdFJlZyA9IHJlc3VsdFJlZ3MuZ3ByKCk7CiAK
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKQEAgLTMyNDIsMTAg
KzMyNDgsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAg
IGNhc2UgU3RyaW5nQ2hhckF0OiB7CiAgICAgICAgIC8vIFJlbGllcyBvbiBTdHJpbmdDaGFyQXQg
bm9kZSBoYXZpbmcgc2FtZSBiYXNpYyBsYXlvdXQgYXMgR2V0QnlWYWwKICAgICAgICAgSlNWYWx1
ZVJlZ3NUZW1wb3JhcnkgcmVzdWx0OwotICAgICAgICBjb21waWxlR2V0QnlWYWxPblN0cmluZyhu
b2RlLCBzY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdD4oRGF0
YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPihbJl0gKERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0
KSB7CisgICAgICAgIGNvbXBpbGVHZXRCeVZhbE9uU3RyaW5nKG5vZGUsIHNjb3BlZExhbWJkYTxz
dGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1h
dCBwcmVmZXJyZWRGb3JtYXQpPihbJl0gKERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KSB7CiAg
ICAgICAgICAgICByZXN1bHQgPSBKU1ZhbHVlUmVnc1RlbXBvcmFyeSh0aGlzKTsKICAgICAgICAg
ICAgIEFTU0VSVChwcmVmZXJyZWRGb3JtYXQgPT0gRGF0YUZvcm1hdEpTIHx8IHByZWZlcnJlZEZv
cm1hdCA9PSBEYXRhRm9ybWF0Q2VsbCk7Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3Bh
aXIocmVzdWx0LnJlZ3MoKSwgcHJlZmVycmVkRm9ybWF0KTsKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6OnR1cGxlIHsgcmVzdWx0LnJlZ3MoKSwgcHJlZmVycmVkRm9ybWF0LCBDYW5Vc2VGbHVzaDo6
WWVzIH07CiAgICAgICAgIH0pKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMzI4NCw3ICsz
MjkwLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogCiAgICAg
Y2FzZSBHZXRCeVZhbDogewogICAgICAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQ7Ci0g
ICAgICAgIGNvbXBpbGVHZXRCeVZhbChub2RlLCBzY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1Zh
bHVlUmVncywgRGF0YUZvcm1hdD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPihbJl0gKERh
dGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KSB7CisgICAgICAgIGNvbXBpbGVHZXRCeVZhbChub2Rl
LCBzY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNl
Rmx1c2g+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4oWyZdIChEYXRhRm9ybWF0IHByZWZl
cnJlZEZvcm1hdCkgewogICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKICAgICAg
ICAgICAgIHN3aXRjaCAocHJlZmVycmVkRm9ybWF0KSB7CiAgICAgICAgICAgICBjYXNlIERhdGFG
b3JtYXREb3VibGU6CkBAIC0zMjk1LDcgKzMzMDEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9OwotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKHJlc3Vs
dFJlZ3MsIHByZWZlcnJlZEZvcm1hdCk7CisgICAgICAgICAgICByZXR1cm4gc3RkOjp0dXBsZSB7
IHJlc3VsdFJlZ3MsIHByZWZlcnJlZEZvcm1hdCwgQ2FuVXNlRmx1c2g6OlllcyB9OwogICAgICAg
ICB9KSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442396</attachid>
            <date>2021-10-25 12:14:36 -0700</date>
            <delta_ts>2021-10-25 12:25:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232260-20211025121435.patch</filename>
            <type>text/plain</type>
            <size>23452</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0Nzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
Y2Y4MDVkN2U4NDk0NDQwZTlhN2RmNWY2NTI0NGFkZTNmMzAxNjE5Li5jMGI1NjEwYmM0YTUwNDgx
NGZlMzY0YWY3ZjBmNjUzOWY4MTE3ZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMS0xMC0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIERvbid0IGJyYW5jaCBhcm91bmQgcmVnaXN0ZXIgYWxsb2NhdGlv
biBpbiBERkcgZW51bWVyYXRvciBnZXQgYnkgdmFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIyNjAKKyAgICAgICAgcmRhcjovLzg0NTQ0NDY5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0QnlWYWxPblN0cmluZyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRCeVZhbE9uSW50VHlwZWRBcnJheSk6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uRmxvYXRUeXBlZEFycmF5KToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0
aFN0cmluZyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRC
eVZhbEZvck9iamVjdFdpdGhTeW1ib2wpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU2NvcGVkQXJndW1lbnRzKToKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUVudW1lcmF0b3JHZXRCeVZh
bCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgICogZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlR2V0QnlWYWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlKToKKwogMjAyMS0xMC0yNSAgTWlraGFpbCBSLiBHYWRlbGhhICA8bWlraGFpbEBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtKU0NdWzMyYml0XSBEb24ndCBzcGVjdWxhdGUgQ2VsbCBvbiBQ
dXRCeVZhbApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAppbmRleCA1MWJkMWI3YjNlZDk0OTRiZDNhNDBiN2Y5MjlhNjVhZjcwYjNhNDgyLi5hM2I4
NTRkMTlkMjM3ZmUxNzA0MzMzN2Y4YzAzMzJkOTJmZTBhMzFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMjU5Myw3ICsyNTkzLDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldENoYXJDb2RlQXQoTm9kZSogbm9kZSkK
ICAgICBzdHJpY3RJbnQzMlJlc3VsdChzY3JhdGNoUmVnLCBtX2N1cnJlbnROb2RlKTsKIH0KIAot
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25TdHJpbmcoTm9kZSogbm9kZSwg
Y29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERh
dGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCkKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVHZXRCeVZhbE9uU3RyaW5nKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxz
dGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1h
dCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQogewogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5k
IGJhc2UodGhpcywgbV9ncmFwaC5jaGlsZChub2RlLCAwKSk7CiAgICAgU3BlY3VsYXRlU3RyaWN0
SW50MzJPcGVyYW5kIHByb3BlcnR5KHRoaXMsIG1fZ3JhcGguY2hpbGQobm9kZSwgMSkpOwpAQCAt
MjYwNCw3ICsyNjA0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25T
dHJpbmcoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDoKIAogICAgIEpTVmFsdWVS
ZWdzIHJlc3VsdFJlZ3M7CiAgICAgRGF0YUZvcm1hdCBmb3JtYXQ7Ci0gICAgc3RkOjp0aWUocmVz
dWx0UmVncywgZm9ybWF0KSA9IHByZWZpeChub2RlLT5hcnJheU1vZGUoKS5pc091dE9mQm91bmRz
KCkgPyBEYXRhRm9ybWF0SlMgOiBEYXRhRm9ybWF0Q2VsbCk7CisgICAgc3RkOjp0aWUocmVzdWx0
UmVncywgZm9ybWF0LCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgobm9kZS0+YXJyYXlNb2RlKCkuaXNP
dXRPZkJvdW5kcygpID8gRGF0YUZvcm1hdEpTIDogRGF0YUZvcm1hdENlbGwpOwogICAgIEdQUlJl
ZyBzY3JhdGNoUmVnID0gcmVzdWx0UmVncy5wYXlsb2FkR1BSKCk7CiAKICAgICAvLyB1bnNpZ25l
ZCBjb21wYXJpc29uIHNvIHdlIGNhbiBmaWx0ZXIgb3V0IG5lZ2F0aXZlIGluZGljZXMgYW5kIGlu
ZGljZXMgdGhhdCBhcmUgdG9vIGxhcmdlCkBAIC0zMzg4LDcgKzMzODgsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpzZXRJbnRUeXBlZEFycmF5TG9hZFJlc3VsdChOb2RlKiBub2RlLCBKU1ZhbHVl
UmVncyByZXN1bHRSZQogICAgIGRvdWJsZVJlc3VsdChyZXN1bHRGUFIsIG5vZGUpOwogfQogCi12
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkludFR5cGVkQXJyYXkoTm9kZSog
bm9kZSwgVHlwZWRBcnJheVR5cGUgdHlwZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8
SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHBy
ZWZpeCkKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uSW50VHlwZWRBcnJh
eShOb2RlKiBub2RlLCBUeXBlZEFycmF5VHlwZSB0eXBlLCBjb25zdCBTY29wZWRMYW1iZGE8c3Rk
Ojp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERhdGFGb3JtYXQg
cHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCkKIHsKICAgICBBU1NFUlQoaXNJbnQodHlwZSkpOwog
ICAgIApAQCAtMzQxMSw3ICszNDExLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdl
dEJ5VmFsT25JbnRUeXBlZEFycmF5KE5vZGUqIG5vZGUsIFR5cGVkQXJyYXlUeXBlIHQKIAogICAg
IEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3M7CiAgICAgRGF0YUZvcm1hdCBmb3JtYXQ7Ci0gICAgc3Rk
Ojp0aWUocmVzdWx0UmVncywgZm9ybWF0KSA9IHByZWZpeChEYXRhRm9ybWF0SW50MzIpOworICAg
IHN0ZDo6dGllKHJlc3VsdFJlZ3MsIGZvcm1hdCwgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFG
b3JtYXRJbnQzMik7CiAgICAgYm9vbCBzaG91bGRCb3ggPSBmb3JtYXQgPT0gRGF0YUZvcm1hdEpT
OwogCiAgICAgZW1pdFR5cGVkQXJyYXlCb3VuZHNDaGVjayhub2RlLCBiYXNlUmVnLCBwcm9wZXJ0
eVJlZywgc2NyYXRjaEdQUik7CkBAIC0zNjU2LDcgKzM2NTYsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KEdQUlJlZyBiYXNlLCBHUFJSZWcg
cHJvcGVydAogICAgIG5vUmVzdWx0KG5vZGUpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0QnlWYWxPbkZsb2F0VHlwZWRBcnJheShOb2RlKiBub2RlLCBUeXBlZEFycmF5VHlw
ZSB0eXBlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZv
cm1hdD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQordm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25GbG9hdFR5cGVkQXJyYXkoTm9kZSogbm9kZSwgVHlw
ZWRBcnJheVR5cGUgdHlwZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJl
Z3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+
JiBwcmVmaXgpCiB7CiAgICAgQVNTRVJUKGlzRmxvYXQodHlwZSkpOwogICAgIApAQCAtMzY2NCwx
OCArMzY2NCwxOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkZsb2F0
VHlwZWRBcnJheShOb2RlKiBub2RlLCBUeXBlZEFycmF5VHlwZQogICAgIFNwZWN1bGF0ZVN0cmlj
dEludDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEp
KTsKICAgICBTdG9yYWdlT3BlcmFuZCBzdG9yYWdlKHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQo
bm9kZSwgMikpOwogICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMpOworICAgIEZQUlRlbXBv
cmFyeSByZXN1bHQodGhpcyk7CiAKICAgICBHUFJSZWcgYmFzZVJlZyA9IGJhc2UuZ3ByKCk7CiAg
ICAgR1BSUmVnIHByb3BlcnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7CiAgICAgR1BSUmVnIHN0b3Jh
Z2VSZWcgPSBzdG9yYWdlLmdwcigpOwogICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gc2NyYXRjaC5n
cHIoKTsKKyAgICBGUFJSZWcgcmVzdWx0UmVnID0gcmVzdWx0LmZwcigpOwogCiAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVnczsKICAgICBEYXRhRm9ybWF0IGZvcm1hdDsKLSAgICBzdGQ6OnRpZShy
ZXN1bHRSZWdzLCBmb3JtYXQpID0gcHJlZml4KERhdGFGb3JtYXREb3VibGUpOworICAgIHN0ZDo6
dGllKHJlc3VsdFJlZ3MsIGZvcm1hdCwgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRE
b3VibGUpOwogCi0gICAgRlBSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKLSAgICBGUFJSZWcgcmVz
dWx0UmVnID0gcmVzdWx0LmZwcigpOwogICAgIGVtaXRUeXBlZEFycmF5Qm91bmRzQ2hlY2sobm9k
ZSwgYmFzZVJlZywgcHJvcGVydHlSZWcsIHNjcmF0Y2hHUFIpOwogICAgIHN3aXRjaCAoZWxlbWVu
dFNpemUodHlwZSkpIHsKICAgICBjYXNlIDQ6CkBAIC0zNzM3LDcgKzM3MzcsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkoR1BSUmVnIGJh
c2UsIEdQUlJlZyBwcm9wZQogICAgIG5vUmVzdWx0KG5vZGUpOwogfQogCi12b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3RyaW5nKE5vZGUqIG5vZGUsIGNv
bnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRh
Rm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3RyaW5nKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3Bl
ZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4o
RGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQogewogICAgIFNwZWN1bGF0ZUNl
bGxPcGVyYW5kIGFyZzEodGhpcywgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKSk7CiAgICAg
U3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJnMih0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUs
IDEpKTsKQEAgLTM3NDYsMTkgKzM3NDYsMjUgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN0cmluZyhOb2RlKiBub2RlLCBjb25zdCBTY29wZWQKICAg
ICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7CiAKICAgICBKU1ZhbHVlUmVncyByZXN1bHRS
ZWdzOwotICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlKSA9IHByZWZpeChEYXRh
Rm9ybWF0SlMpOworICAgIENhblVzZUZsdXNoIGNhblVzZUZsdXNoID0gQ2FuVXNlRmx1c2g6Olll
czsKKyAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBzdGQ6Omlnbm9yZSwgY2FuVXNlRmx1c2gpID0g
cHJlZml4KERhdGFGb3JtYXRKUyk7CiAKICAgICBzcGVjdWxhdGVPYmplY3QobV9ncmFwaC52YXJB
cmdDaGlsZChub2RlLCAwKSwgYXJnMUdQUik7CiAgICAgc3BlY3VsYXRlU3RyaW5nKG1fZ3JhcGgu
dmFyQXJnQ2hpbGQobm9kZSwgMSksIGFyZzJHUFIpOwogCi0gICAgZmx1c2hSZWdpc3RlcnMoKTsK
KyAgICBpZiAoY2FuVXNlRmx1c2ggPT0gQ2FuVXNlRmx1c2g6Ok5vKQorICAgICAgICBzaWxlbnRT
cGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRSZWdzKTsKKyAgICBlbHNlCisgICAgICAgIGZsdXNoUmVn
aXN0ZXJzKCk7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25HZXRCeVZhbE9iamVjdFN0cmlu
ZywgcmVzdWx0UmVncywgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFw
aC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGFyZzFHUFIsIGFyZzJH
UFIpOworICAgIGlmIChjYW5Vc2VGbHVzaCA9PSBDYW5Vc2VGbHVzaDo6Tm8pCisgICAgICAgIHNp
bGVudEZpbGxBbGxSZWdpc3RlcnMoKTsKICAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOwogCiAg
ICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN5bWJvbChOb2RlKiBub2RlLCBjb25z
dCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdD4oRGF0YUZv
cm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN5bWJvbChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRM
YW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERh
dGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCkKIHsKICAgICBTcGVjdWxhdGVDZWxs
T3BlcmFuZCBhcmcxKHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkpOwogICAgIFNw
ZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzIodGhpcywgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAx
KSk7CkBAIC0zNzY3LDEzICszNzczLDE5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRCeVZhbEZvck9iamVjdFdpdGhTeW1ib2woTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkCiAgICAg
R1BSUmVnIGFyZzJHUFIgPSBhcmcyLmdwcigpOwogCiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVn
czsKLSAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZv
cm1hdEpTKTsKKyAgICBDYW5Vc2VGbHVzaCBjYW5Vc2VGbHVzaCA9IENhblVzZUZsdXNoOjpZZXM7
CisgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUsIGNhblVzZUZsdXNoKSA9IHBy
ZWZpeChEYXRhRm9ybWF0SlMpOwogCiAgICAgc3BlY3VsYXRlT2JqZWN0KG1fZ3JhcGgudmFyQXJn
Q2hpbGQobm9kZSwgMCksIGFyZzFHUFIpOwogICAgIHNwZWN1bGF0ZVN5bWJvbChtX2dyYXBoLnZh
ckFyZ0NoaWxkKG5vZGUsIDEpLCBhcmcyR1BSKTsKIAotICAgIGZsdXNoUmVnaXN0ZXJzKCk7Cisg
ICAgaWYgKGNhblVzZUZsdXNoID09IENhblVzZUZsdXNoOjpObykKKyAgICAgICAgc2lsZW50U3Bp
bGxBbGxSZWdpc3RlcnMocmVzdWx0UmVncyk7CisgICAgZWxzZQorICAgICAgICBmbHVzaFJlZ2lz
dGVycygpOwogICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uR2V0QnlWYWxPYmplY3RTeW1ib2ws
IHJlc3VsdFJlZ3MsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGgu
Z2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBhcmcxR1BSLCBhcmcyR1BS
KTsKKyAgICBpZiAoY2FuVXNlRmx1c2ggPT0gQ2FuVXNlRmx1c2g6Ok5vKQorICAgICAgICBzaWxl
bnRGaWxsQWxsUmVnaXN0ZXJzKCk7CiAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKIAogICAg
IGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CkBAIC04MTEwLDcgKzgxMjIsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0VHlwZWRBcnJheUJ5dGVPZmZzZXQoTm9kZSog
bm9kZSkKICAgICBzdHJpY3RJbnQzMlJlc3VsdCh2ZWN0b3JHUFIsIG5vZGUpOwogfQogCi12b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyhOb2RlKiBu
b2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1h
dD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQordm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25EaXJlY3RBcmd1bWVudHMoTm9kZSogbm9kZSwgY29uc3Qg
U2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENhblVzZUZs
dXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpCiB7CiAgICAgU3BlY3Vs
YXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsK
ICAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywgbV9ncmFwaC52
YXJBcmdDaGlsZChub2RlLCAxKSk7CkBAIC04MTE5LDcgKzgxMzEsNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyhOb2RlKiBub2RlLCBjb25z
dCBTY29wZWRMYQogICAgIEdQUlJlZyBwcm9wZXJ0eVJlZyA9IHByb3BlcnR5LmdwcigpOwogCiAg
ICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKLSAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBzdGQ6
Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKKyAgICBzdGQ6OnRpZShyZXN1bHRSZWdz
LCBzdGQ6Omlnbm9yZSwgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CiAgICAg
R1BSUmVnIHNjcmF0Y2hSZWcgPSByZXN1bHRSZWdzLnBheWxvYWRHUFIoKTsKICAgICAKICAgICBp
ZiAoIW1fY29tcGlsZU9rYXkpCkBAIC04MTUxLDcgKzgxNjMsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyhOb2RlKiBub2RlLCBjb25zdCBT
Y29wZWRMYQogICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiB9CiAKLXZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU2NvcGVkQXJndW1lbnRzKE5vZGUqIG5v
ZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0
PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpCit2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0QnlWYWxPblNjb3BlZEFyZ3VtZW50cyhOb2RlKiBub2RlLCBjb25zdCBT
Y29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1
c2g+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCkKIHsKICAgICBTcGVjdWxh
dGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkpOwog
ICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2dyYXBoLnZh
ckFyZ0NoaWxkKG5vZGUsIDEpKTsKQEAgLTgxNjcsNyArODE3OSw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU2NvcGVkQXJndW1lbnRzKE5vZGUqIG5vZGUsIGNvbnN0
IFNjb3BlZExhCiAgICAgICAgIHJldHVybjsKIAogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3M7
Ci0gICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3Jt
YXRKUyk7CisgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUsIHN0ZDo6aWdub3Jl
KSA9IHByZWZpeChEYXRhRm9ybWF0SlMpOwogICAgIAogICAgIG1faml0LmxvYWRQdHIoCiAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIFNjb3BlZEFyZ3VtZW50czo6b2Zm
c2V0T2ZTdG9yYWdlKCkpLCByZXN1bHRSZWdzLnBheWxvYWRHUFIoKSk7CkBAIC0xNTg2NSw3ICsx
NTg3Nyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yR2V0QnlWYWwo
Tm9kZSogbm9kZSkKICAgICAgICAgR1BSUmVnIGVudW1lcmF0b3JHUFI7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIGJhZFN0cnVjdHVyZVNsb3dQYXRoOwogCi0gICAgICAgIGNvbXBpbGVH
ZXRCeVZhbChub2RlLCBzY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZv
cm1hdD4oRGF0YUZvcm1hdCk+KFsmXSAoRGF0YUZvcm1hdCkgeworICAgICAgICBjb21waWxlR2V0
QnlWYWwobm9kZSwgc2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3Jt
YXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0KT4oWyZdIChEYXRhRm9ybWF0KSB7CiAgICAgICAg
ICAgICBFZGdlIHN0b3JhZ2VFZGdlID0gbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAyKTsKICAg
ICAgICAgICAgIFN0b3JhZ2VPcGVyYW5kIHN0b3JhZ2U7CiAgICAgICAgICAgICBpZiAoc3RvcmFn
ZUVkZ2UpCkBAIC0xNTkzOCw3ICsxNTk1MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVFbnVtZXJhdG9yR2V0QnlWYWwoTm9kZSogbm9kZSkKICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgbm90RmFzdE5hbWVkQ2FzZXMubGluaygmbV9qaXQpOwotICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV9wYWlyKHJlc3VsdFJlZ3MsIERhdGFGb3JtYXRKUyk7CisgICAgICAgICAgICBy
ZXR1cm4gc3RkOjp0dXBsZSB7IHJlc3VsdFJlZ3MsIERhdGFGb3JtYXRKUywgQ2FuVXNlRmx1c2g6
Ok5vIH07CiAgICAgICAgIH0pKTsKIAogICAgICAgICAvLyBXZSByZWx5IG9uIGNvbXBpbGVHZXRC
eVZhbCB0byBjYWxsIGpzVmFsdWVSZXN1bHQgZm9yIHVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDA0OWJjZjdlNmZkYjc5MmFkNmE1ODkx
MDdhOGQxYTI3MWMxZTE5MDIuLmMxODNlMTgzM2Q1NjliYzE3NTU1ZThmNzc4MDEwZjJkZTE1YzQ1
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgK
QEAgLTEzNTgsMTQgKzEzNTgsMTUgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQgewogICAgIH0KICAg
ICAKICAgICAvLyBXZSB1c2UgYSBzY29wZWRMYW1iZGEgdG8gcGxhY2F0ZSByZWdpc3RlciBhbGxv
Y2F0aW9uIHZhbGlkYXRpb24uCi0gICAgdm9pZCBjb21waWxlR2V0QnlWYWwoTm9kZSosIGNvbnN0
IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9y
bWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOworICAgIGVudW0gY2xhc3MgQ2FuVXNlRmx1
c2ggeyBZZXMsIE5vIH07CisgICAgdm9pZCBjb21waWxlR2V0QnlWYWwoTm9kZSosIGNvbnN0IFNj
b3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVz
aD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KTsKIAogICAgIHZvaWQgY29t
cGlsZUdldENoYXJDb2RlQXQoTm9kZSopOwotICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsT25TdHJp
bmcoTm9kZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRh
Rm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOworICAgIHZvaWQg
Y29tcGlsZUdldEJ5VmFsT25TdHJpbmcoTm9kZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1
cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVm
ZXJyZWRGb3JtYXQpPiYgcHJlZml4KTsKICAgICB2b2lkIGNvbXBpbGVGcm9tQ2hhckNvZGUoTm9k
ZSopOyAKIAotICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsT25EaXJlY3RBcmd1bWVudHMoTm9kZSos
IGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihE
YXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOwotICAgIHZvaWQgY29tcGlsZUdl
dEJ5VmFsT25TY29wZWRBcmd1bWVudHMoTm9kZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1
cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+
JiBwcmVmaXgpOworICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsT25EaXJlY3RBcmd1bWVudHMoTm9k
ZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0
LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KTsKKyAg
ICB2b2lkIGNvbXBpbGVHZXRCeVZhbE9uU2NvcGVkQXJndW1lbnRzKE5vZGUqLCBjb25zdCBTY29w
ZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+
KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CiAKICAgICB2b2lkIGNvbXBp
bGVHZXRQcml2YXRlTmFtZShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlR2V0UHJpdmF0ZU5hbWVC
eUlkKE5vZGUqKTsKQEAgLTE0NDUsMTIgKzE0NDYsMTIgQEAgY2xhc3MgU3BlY3VsYXRpdmVKSVQg
ewogI2lmIFVTRShMQVJHRV9UWVBFRF9BUlJBWVMpCiAgICAgdm9pZCBjb21waWxlR2V0VHlwZWRB
cnJheUJ5dGVPZmZzZXRBc0ludDUyKE5vZGUqKTsKICNlbmRpZgotICAgIHZvaWQgY29tcGlsZUdl
dEJ5VmFsT25JbnRUeXBlZEFycmF5KE5vZGUqLCBUeXBlZEFycmF5VHlwZSwgY29uc3QgU2NvcGVk
TGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJl
ZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CisgICAgdm9pZCBjb21waWxlR2V0QnlWYWxPbkludFR5
cGVkQXJyYXkoTm9kZSosIFR5cGVkQXJyYXlUeXBlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0
dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERhdGFGb3JtYXQgcHJl
ZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CiAgICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JJbnRU
eXBlZEFycmF5KEdQUlJlZyBiYXNlLCBHUFJSZWcgcHJvcGVydHksIE5vZGUqLCBUeXBlZEFycmF5
VHlwZSk7Ci0gICAgdm9pZCBjb21waWxlR2V0QnlWYWxPbkZsb2F0VHlwZWRBcnJheShOb2RlKiwg
VHlwZWRBcnJheVR5cGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdz
LCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOworICAg
IHZvaWQgY29tcGlsZUdldEJ5VmFsT25GbG9hdFR5cGVkQXJyYXkoTm9kZSosIFR5cGVkQXJyYXlU
eXBlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1h
dCwgQ2FuVXNlRmx1c2g+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CiAg
ICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JGbG9hdFR5cGVkQXJyYXkoR1BSUmVnIGJhc2UsIEdQ
UlJlZyBwcm9wZXJ0eSwgTm9kZSosIFR5cGVkQXJyYXlUeXBlKTsKLSAgICB2b2lkIGNvbXBpbGVH
ZXRCeVZhbEZvck9iamVjdFdpdGhTdHJpbmcoTm9kZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6
OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1h
dCk+JiBwcmVmaXgpOwotICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN5bWJv
bChOb2RlKiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFG
b3JtYXQ+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CisgICAgdm9pZCBj
b21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3RyaW5nKE5vZGUqLCBjb25zdCBTY29wZWRMYW1i
ZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERhdGFG
b3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CisgICAgdm9pZCBjb21waWxlR2V0QnlW
YWxGb3JPYmplY3RXaXRoU3ltYm9sKE5vZGUqLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBs
ZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERhdGFGb3JtYXQgcHJlZmVy
cmVkRm9ybWF0KT4mIHByZWZpeCk7CiAgICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0
aFN0cmluZyhOb2RlKiwgRWRnZSYgY2hpbGQxLCBFZGdlJiBjaGlsZDIsIEVkZ2UmIGNoaWxkMyk7
CiAgICAgdm9pZCBjb21waWxlUHV0QnlWYWxGb3JDZWxsV2l0aFN5bWJvbChOb2RlKiwgRWRnZSYg
Y2hpbGQxLCBFZGdlJiBjaGlsZDIsIEVkZ2UmIGNoaWxkMyk7CiAgICAgdm9pZCBjb21waWxlR2V0
QnlWYWxXaXRoVGhpcyhOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAxNGE1MDc2MWZkOWE2NTJjM2YwZTM5MTBhYTY5
ZWVlMTEzZmYxM2RjLi4yMjY2YzQ2MDc5MDc3NDRhZGFhZDRmZjA1OWI5Mjc4MjBhYzA3ZDEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKQEAgLTIzMzAsNyArMjMzMCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRCcmFuY2go
Tm9kZSogbm9kZSkKICAgICB9CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRC
eVZhbChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVn
cywgRGF0YUZvcm1hdD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQordm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3Bl
ZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4o
RGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQogewogICAgIHN3aXRjaCAobm9k
ZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7CiAgICAgY2FzZSBBcnJheTo6QW55VHlwZWRBcnJheToK
QEAgLTIzNDUsNyArMjM0NSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZh
bChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAgICAgICAgIEdQ
UlJlZyBpbmRleEdQUiA9IGluZGV4LmdwcigpOwogCiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3Vs
dFJlZ3M7Ci0gICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlKSA9IHByZWZp
eChEYXRhRm9ybWF0SlMpOworICAgICAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBzdGQ6Omlnbm9y
ZSwgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CiAKICAgICAgICAgc3BlY3Vs
YXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbm9kZSwKICAgICAgICAgICAg
IG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpMZXNzVGhhbiwgaW5kZXhHUFIsIE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMCkpKTsKQEAgLTIzNzcsMTAgKzIzNzcsMTYgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3Bl
ZExhbWJkYTxzdGQ6OnR1cGxlPEoKICAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eUdQUiA9IHBy
b3BlcnR5LmdwcigpOwogCiAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwotICAg
ICAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFG
b3JtYXRKUyk7CisgICAgICAgICAgICBDYW5Vc2VGbHVzaCBjYW5Vc2VGbHVzaCA9IENhblVzZUZs
dXNoOjpZZXM7CisgICAgICAgICAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBzdGQ6Omlnbm9yZSwg
Y2FuVXNlRmx1c2gpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CiAKLSAgICAgICAgICAgIGZsdXNo
UmVnaXN0ZXJzKCk7CisgICAgICAgICAgICBpZiAoY2FuVXNlRmx1c2ggPT0gQ2FuVXNlRmx1c2g6
Ok5vKQorICAgICAgICAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFJlZ3Mp
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAg
ICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkdldEJ5VmFsLCByZXN1bHRSZWdzLCBU
cnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZv
cihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZUdQUiwgcHJvcGVydHlHUFIpOworICAgICAg
ICAgICAgaWYgKGNhblVzZUZsdXNoID09IENhblVzZUZsdXNoOjpObykKKyAgICAgICAgICAgICAg
ICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgICAgICBtX2ppdC5leGNlcHRpb25D
aGVjaygpOwogCiAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwpA
QCAtMjQwMyw3ICsyNDA5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFs
KE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEoKICAgICAgICAgc3Bl
Y3VsYXRlKG5vZGUsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpOwogCiAgICAgICAgIEpT
VmFsdWVSZWdzIHJlc3VsdFJlZ3M7Ci0gICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6
aWdub3JlKSA9IHByZWZpeChEYXRhRm9ybWF0SlMpOworICAgICAgICBzdGQ6OnRpZShyZXN1bHRS
ZWdzLCBzdGQ6Omlnbm9yZSwgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CiAg
ICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHRSZWdzLmdwcigpOwogCiAgICAgICAgIENv
ZGVPcmlnaW4gY29kZU9yaWdpbiA9IG5vZGUtPm9yaWdpbi5zZW1hbnRpYzsKQEAgLTI0NjEsNyAr
MjQ2Nyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBub2Rl
LCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAKICAgICAgICAgICAgIEpTVmFsdWVS
ZWdzIHJlc3VsdFJlZ3M7CiAgICAgICAgICAgICBEYXRhRm9ybWF0IGZvcm1hdDsKLSAgICAgICAg
ICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIGZvcm1hdCkgPSBwcmVmaXgobm9kZS0+YXJyYXlNb2Rl
KCkudHlwZSgpID09IEFycmF5OjpJbnQzMiA/IERhdGFGb3JtYXRKU0ludDMyIDogRGF0YUZvcm1h
dEpTKTsKKyAgICAgICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIGZvcm1hdCwgc3RkOjppZ25v
cmUpID0gcHJlZml4KG5vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSA9PSBBcnJheTo6SW50MzIgPyBE
YXRhRm9ybWF0SlNJbnQzMiA6IERhdGFGb3JtYXRKUyk7CiAgICAgICAgICAgICBHUFJSZWcgcmVz
dWx0ID0gcmVzdWx0UmVncy5ncHIoKTsKIAogICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVjayhP
dXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwgbV9qaXQuYnJhbmNoMzIoTWFjcm9B
c3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpBZGRy
ZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpKTsKQEAg
LTI0OTMsNyArMjQ5OSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChO
b2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAgICAgICAgICAgICBy
ZXR1cm47CiAKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKLSAgICAgICAgc3RkOjp0
aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CisgICAg
ICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlLCBzdGQ6Omlnbm9yZSkgPSBwcmVm
aXgoRGF0YUZvcm1hdEpTKTsKICAgICAgICAgR1BSUmVnIHJlc3VsdFJlZyA9IHJlc3VsdFJlZ3Mu
Z3ByKCk7CiAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKQEAg
LTI1MzcsNyArMjU0Myw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChO
b2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAKICAgICAgICAgICAg
IEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3M7CiAgICAgICAgICAgICBEYXRhRm9ybWF0IGZvcm1hdDsK
LSAgICAgICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIGZvcm1hdCkgPSBwcmVmaXgoRGF0YUZv
cm1hdERvdWJsZSk7CisgICAgICAgICAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBmb3JtYXQsIHN0
ZDo6aWdub3JlKSA9IHByZWZpeChEYXRhRm9ybWF0RG91YmxlKTsKIAogICAgICAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwgbV9qaXQu
YnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNM
ZW5ndGgoKSkpKTsKIApAQCAtMjU3Miw3ICsyNTc4LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxl
PEoKIAogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwogICAgICAgICBEYXRhRm9ybWF0
IGZvcm1hdDsKLSAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgZm9ybWF0KSA9IHByZWZpeChy
ZXN1bHRJc1VuYm94ZWQgPyBEYXRhRm9ybWF0RG91YmxlIDogRGF0YUZvcm1hdEpTKTsKKyAgICAg
ICAgc3RkOjp0aWUocmVzdWx0UmVncywgZm9ybWF0LCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgocmVz
dWx0SXNVbmJveGVkID8gRGF0YUZvcm1hdERvdWJsZSA6IERhdGFGb3JtYXRKUyk7CiAKICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKIApAQCAtMjYyNSw3ICsyNjMx
LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNv
bnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEoKICAgICAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3M7Ci0gICAgICAgICAgICBzdGQ6OnRp
ZShyZXN1bHRSZWdzLCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKKyAgICAg
ICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlLCBzdGQ6Omlnbm9yZSkgPSBw
cmVmaXgoRGF0YUZvcm1hdEpTKTsKICAgICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1
bHRSZWdzLmdwcigpOwogCiAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91bmRz
LCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6
QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RvcmFn
ZVJlZywgQXJyYXlTdG9yYWdlOjp2ZWN0b3JMZW5ndGhPZmZzZXQoKSkpKTsKQEAgLTI2NTAsNyAr
MjY1Niw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBub2Rl
LCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKLSAgICAgICAgc3RkOjp0aWUocmVzdWx0
UmVncywgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CisgICAgICAgIHN0ZDo6
dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlLCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZv
cm1hdEpTKTsKICAgICAgICAgR1BSUmVnIHJlc3VsdFJlZyA9IHJlc3VsdFJlZ3MuZ3ByKCk7CiAK
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKQEAgLTMyNDIsMTAg
KzMyNDgsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAg
IGNhc2UgU3RyaW5nQ2hhckF0OiB7CiAgICAgICAgIC8vIFJlbGllcyBvbiBTdHJpbmdDaGFyQXQg
bm9kZSBoYXZpbmcgc2FtZSBiYXNpYyBsYXlvdXQgYXMgR2V0QnlWYWwKICAgICAgICAgSlNWYWx1
ZVJlZ3NUZW1wb3JhcnkgcmVzdWx0OwotICAgICAgICBjb21waWxlR2V0QnlWYWxPblN0cmluZyhu
b2RlLCBzY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdD4oRGF0
YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPihbJl0gKERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0
KSB7CisgICAgICAgIGNvbXBpbGVHZXRCeVZhbE9uU3RyaW5nKG5vZGUsIHNjb3BlZExhbWJkYTxz
dGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1h
dCBwcmVmZXJyZWRGb3JtYXQpPihbJl0gKERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KSB7CiAg
ICAgICAgICAgICByZXN1bHQgPSBKU1ZhbHVlUmVnc1RlbXBvcmFyeSh0aGlzKTsKICAgICAgICAg
ICAgIEFTU0VSVChwcmVmZXJyZWRGb3JtYXQgPT0gRGF0YUZvcm1hdEpTIHx8IHByZWZlcnJlZEZv
cm1hdCA9PSBEYXRhRm9ybWF0Q2VsbCk7Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3Bh
aXIocmVzdWx0LnJlZ3MoKSwgcHJlZmVycmVkRm9ybWF0KTsKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6OnR1cGxlIHsgcmVzdWx0LnJlZ3MoKSwgcHJlZmVycmVkRm9ybWF0LCBDYW5Vc2VGbHVzaDo6
WWVzIH07CiAgICAgICAgIH0pKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMzI4NCw3ICsz
MjkwLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogCiAgICAg
Y2FzZSBHZXRCeVZhbDogewogICAgICAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQ7Ci0g
ICAgICAgIGNvbXBpbGVHZXRCeVZhbChub2RlLCBzY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1Zh
bHVlUmVncywgRGF0YUZvcm1hdD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPihbJl0gKERh
dGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KSB7CisgICAgICAgIGNvbXBpbGVHZXRCeVZhbChub2Rl
LCBzY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNl
Rmx1c2g+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4oWyZdIChEYXRhRm9ybWF0IHByZWZl
cnJlZEZvcm1hdCkgewogICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKICAgICAg
ICAgICAgIHN3aXRjaCAocHJlZmVycmVkRm9ybWF0KSB7CiAgICAgICAgICAgICBjYXNlIERhdGFG
b3JtYXREb3VibGU6CkBAIC0zMjk1LDcgKzMzMDEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9OwotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKHJlc3Vs
dFJlZ3MsIHByZWZlcnJlZEZvcm1hdCk7CisgICAgICAgICAgICByZXR1cm4gc3RkOjp0dXBsZSB7
IHJlc3VsdFJlZ3MsIHByZWZlcnJlZEZvcm1hdCwgQ2FuVXNlRmx1c2g6OlllcyB9OwogICAgICAg
ICB9KSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdl
TG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2QxNjNmNmM2MzRmYjVkNjAwNjUxNzk0NmJl
YTIwMzBmOTYwZDFkYi4uODMxM2JhYzBiZDI2OGY3NGUyMjVmZWUxOTc0YTJiYWYwZTBjODQwNSAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAyMS0xMC0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgorCisgICAgICAgIFtKU0NdIERvbid0IGJyYW5jaCBhcm91bmQgcmVnaXN0ZXIgYWxsb2Nh
dGlvbiBpbiBERkcgZW51bWVyYXRvciBnZXQgYnkgdmFsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIyNjAKKyAgICAgICAgcmRhcjovLzg0NTQ0NDY5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJl
c3MvZG9udC1icmFuY2gtYXJvdW5kLXJlZ2FsbG9jLWVudW1lcmF0b3ItZ2V0LWJ5LXZhbC1mbG9h
dC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorCiAyMDIxLTEwLTI0ICBBbGV4ZXkgU2h2YXlr
YSAgPGFzaHZheWthQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRlcm5hbEZ1bmN0aW9uOjpjcmVh
dGVTdWJjbGFzc1N0cnVjdHVyZSgpIHNob3VsZCB1c2UgcHJvdG90eXBlJ3MgZ2xvYmFsIG9iamVj
dApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZG9udC1icmFuY2gtYXJvdW5kLXJlZ2FsbG9j
LWVudW1lcmF0b3ItZ2V0LWJ5LXZhbC1mbG9hdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RvbnQtYnJh
bmNoLWFyb3VuZC1yZWdhbGxvYy1lbnVtZXJhdG9yLWdldC1ieS12YWwtZmxvYXQuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjc3NjY3NTE3MTk5YzRkMWNmNTgzNTI2ZThmMTU4YTQ0ZDFjYTEzNwotLS0gL2Rldi9u
dWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RvbnQtYnJhbmNoLWFyb3VuZC1yZWdhbGxvYy1lbnVt
ZXJhdG9yLWdldC1ieS12YWwtZmxvYXQuanMKQEAgLTAsMCArMSwxMCBAQAorZnVuY3Rpb24gZm9v
KG8pIHsKKyAgZm9yIChsZXQgcCBpbiBvKSB7CisgICAgb1twXTsKKyAgfQorfQorCitmb3IgKGxl
dCBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsKKyAgZm9vKG5ldyBGbG9hdDMyQXJyYXkoKSk7Cisg
IGZvbyh7bzogdW5kZWZpbmVkfSk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442398</attachid>
            <date>2021-10-25 12:25:05 -0700</date>
            <delta_ts>2021-10-25 12:29:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232260-20211025122504.patch</filename>
            <type>text/plain</type>
            <size>30456</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0Nzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
Y2Y4MDVkN2U4NDk0NDQwZTlhN2RmNWY2NTI0NGFkZTNmMzAxNjE5Li40MmI4MmRiMzk5NWEzMjJm
Y2Q1N2ZmOTE5MGUwODZiZWZlYTZlNGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAyMS0xMC0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIERvbid0IGJyYW5jaCBhcm91bmQgcmVnaXN0ZXIgYWxsb2NhdGlv
biBpbiBERkcgZW51bWVyYXRvciBnZXQgYnkgdmFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIyNjAKKyAgICAgICAgcmRhcjovLzg0NTQ0NDY5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0QnlWYWxPblN0cmluZyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRCeVZhbE9uSW50VHlwZWRBcnJheSk6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uRmxvYXRUeXBlZEFycmF5KToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0
aFN0cmluZyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRC
eVZhbEZvck9iamVjdFdpdGhTeW1ib2wpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU2NvcGVkQXJndW1lbnRzKToKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUVudW1lcmF0b3JHZXRCeVZh
bCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgICogZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0QnlWYWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbCk6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorCiAyMDIxLTEwLTI1ICBNaWto
YWlsIFIuIEdhZGVsaGEgIDxtaWtoYWlsQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0pTQ11bMzJi
aXRdIERvbid0IHNwZWN1bGF0ZSBDZWxsIG9uIFB1dEJ5VmFsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDUxYmQxYjdiM2VkOTQ5NGJk
M2E0MGI3ZjkyOWE2NWFmNzBiM2E0ODIuLmEzYjg1NGQxOWQyMzdmZTE3MDQzMzM3ZjhjMDMzMmQ5
MmZlMGEzMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCkBAIC0yNTkzLDcgKzI1OTMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlR2V0Q2hhckNvZGVBdChOb2RlKiBub2RlKQogICAgIHN0cmljdEludDMyUmVzdWx0KHNjcmF0
Y2hSZWcsIG1fY3VycmVudE5vZGUpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
R2V0QnlWYWxPblN0cmluZyhOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBs
ZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYg
cHJlZml4KQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25TdHJpbmcoTm9k
ZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFG
b3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgp
CiB7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBtX2dyYXBoLmNoaWxkKG5v
ZGUsIDApKTsKICAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywg
bV9ncmFwaC5jaGlsZChub2RlLCAxKSk7CkBAIC0yNjA0LDcgKzI2MDQsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPblN0cmluZyhOb2RlKiBub2RlLCBjb25zdCBTY29w
ZWRMYW1iZGE8c3RkOgogCiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKICAgICBEYXRhRm9y
bWF0IGZvcm1hdDsKLSAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBmb3JtYXQpID0gcHJlZml4KG5v
ZGUtPmFycmF5TW9kZSgpLmlzT3V0T2ZCb3VuZHMoKSA/IERhdGFGb3JtYXRKUyA6IERhdGFGb3Jt
YXRDZWxsKTsKKyAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBmb3JtYXQsIHN0ZDo6aWdub3JlKSA9
IHByZWZpeChub2RlLT5hcnJheU1vZGUoKS5pc091dE9mQm91bmRzKCkgPyBEYXRhRm9ybWF0SlMg
OiBEYXRhRm9ybWF0Q2VsbCk7CiAgICAgR1BSUmVnIHNjcmF0Y2hSZWcgPSByZXN1bHRSZWdzLnBh
eWxvYWRHUFIoKTsKIAogICAgIC8vIHVuc2lnbmVkIGNvbXBhcmlzb24gc28gd2UgY2FuIGZpbHRl
ciBvdXQgbmVnYXRpdmUgaW5kaWNlcyBhbmQgaW5kaWNlcyB0aGF0IGFyZSB0b28gbGFyZ2UKQEAg
LTMzODgsNyArMzM4OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNldEludFR5cGVkQXJyYXlM
b2FkUmVzdWx0KE5vZGUqIG5vZGUsIEpTVmFsdWVSZWdzIHJlc3VsdFJlCiAgICAgZG91YmxlUmVz
dWx0KHJlc3VsdEZQUiwgbm9kZSk7CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRCeVZhbE9uSW50VHlwZWRBcnJheShOb2RlKiBub2RlLCBUeXBlZEFycmF5VHlwZSB0eXBlLCBj
b25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdD4oRGF0
YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldEJ5VmFsT25JbnRUeXBlZEFycmF5KE5vZGUqIG5vZGUsIFR5cGVkQXJyYXlUeXBl
IHR5cGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9y
bWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQog
ewogICAgIEFTU0VSVChpc0ludCh0eXBlKSk7CiAgICAgCkBAIC0zNDExLDcgKzM0MTEsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkludFR5cGVkQXJyYXkoTm9kZSog
bm9kZSwgVHlwZWRBcnJheVR5cGUgdAogCiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKICAg
ICBEYXRhRm9ybWF0IGZvcm1hdDsKLSAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBmb3JtYXQpID0g
cHJlZml4KERhdGFGb3JtYXRJbnQzMik7CisgICAgc3RkOjp0aWUocmVzdWx0UmVncywgZm9ybWF0
LCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdEludDMyKTsKICAgICBib29sIHNob3Vs
ZEJveCA9IGZvcm1hdCA9PSBEYXRhRm9ybWF0SlM7CiAKICAgICBlbWl0VHlwZWRBcnJheUJvdW5k
c0NoZWNrKG5vZGUsIGJhc2VSZWcsIHByb3BlcnR5UmVnLCBzY3JhdGNoR1BSKTsKQEAgLTM2NTYs
NyArMzY1Niw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckludFR5
cGVkQXJyYXkoR1BSUmVnIGJhc2UsIEdQUlJlZyBwcm9wZXJ0CiAgICAgbm9SZXN1bHQobm9kZSk7
CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uRmxvYXRUeXBlZEFy
cmF5KE5vZGUqIG5vZGUsIFR5cGVkQXJyYXlUeXBlIHR5cGUsIGNvbnN0IFNjb3BlZExhbWJkYTxz
dGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZv
cm1hdCk+JiBwcmVmaXgpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkZs
b2F0VHlwZWRBcnJheShOb2RlKiBub2RlLCBUeXBlZEFycmF5VHlwZSB0eXBlLCBjb25zdCBTY29w
ZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+
KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCkKIHsKICAgICBBU1NFUlQoaXNG
bG9hdCh0eXBlKSk7CiAgICAgCkBAIC0zNjY0LDE4ICszNjY0LDE4IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uRmxvYXRUeXBlZEFycmF5KE5vZGUqIG5vZGUsIFR5cGVk
QXJyYXlUeXBlCiAgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIHByb3BlcnR5KHRoaXMs
IG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpOwogICAgIFN0b3JhZ2VPcGVyYW5kIHN0b3Jh
Z2UodGhpcywgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAyKSk7CiAgICAgR1BSVGVtcG9yYXJ5
IHNjcmF0Y2godGhpcyk7CisgICAgRlBSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKIAogICAgIEdQ
UlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKICAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9w
ZXJ0eS5ncHIoKTsKICAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7CiAgICAg
R1BSUmVnIHNjcmF0Y2hHUFIgPSBzY3JhdGNoLmdwcigpOworICAgIEZQUlJlZyByZXN1bHRSZWcg
PSByZXN1bHQuZnByKCk7CiAKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwogICAgIERhdGFG
b3JtYXQgZm9ybWF0OwotICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIGZvcm1hdCkgPSBwcmVmaXgo
RGF0YUZvcm1hdERvdWJsZSk7CisgICAgc3RkOjp0aWUocmVzdWx0UmVncywgZm9ybWF0LCBzdGQ6
Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdERvdWJsZSk7CiAKLSAgICBGUFJUZW1wb3Jhcnkg
cmVzdWx0KHRoaXMpOwotICAgIEZQUlJlZyByZXN1bHRSZWcgPSByZXN1bHQuZnByKCk7CiAgICAg
ZW1pdFR5cGVkQXJyYXlCb3VuZHNDaGVjayhub2RlLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgc2Ny
YXRjaEdQUik7CiAgICAgc3dpdGNoIChlbGVtZW50U2l6ZSh0eXBlKSkgewogICAgIGNhc2UgNDoK
QEAgLTM3MzcsNyArMzczNyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZh
bEZvckZsb2F0VHlwZWRBcnJheShHUFJSZWcgYmFzZSwgR1BSUmVnIHByb3BlCiAgICAgbm9SZXN1
bHQobm9kZSk7CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbEZvck9i
amVjdFdpdGhTdHJpbmcoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8
SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHBy
ZWZpeCkKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbEZvck9iamVjdFdpdGhT
dHJpbmcoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJl
Z3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+
JiBwcmVmaXgpCiB7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJnMSh0aGlzLCBtX2dyYXBo
LnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBhcmcyKHRo
aXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpOwpAQCAtMzc0NiwxOSArMzc0NiwyNSBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3RyaW5n
KE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZAogICAgIEdQUlJlZyBhcmcyR1BSID0gYXJnMi5ncHIo
KTsKIAogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3M7Ci0gICAgc3RkOjp0aWUocmVzdWx0UmVn
cywgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CisgICAgQ2FuVXNlRmx1c2gg
Y2FuVXNlRmx1c2ggPSBDYW5Vc2VGbHVzaDo6WWVzOworICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3Ms
IHN0ZDo6aWdub3JlLCBjYW5Vc2VGbHVzaCkgPSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKIAogICAg
IHNwZWN1bGF0ZU9iamVjdChtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApLCBhcmcxR1BSKTsK
ICAgICBzcGVjdWxhdGVTdHJpbmcobV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKSwgYXJnMkdQ
Uik7CiAKLSAgICBmbHVzaFJlZ2lzdGVycygpOworICAgIGlmIChjYW5Vc2VGbHVzaCA9PSBDYW5V
c2VGbHVzaDo6Tm8pCisgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFJlZ3Mp
OworICAgIGVsc2UKKyAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0U3RyaW5nLCByZXN1bHRSZWdzLCBUcnVzdGVkSW1tUHRy
Ojp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmln
aW4uc2VtYW50aWMpKSwgYXJnMUdQUiwgYXJnMkdQUik7CisgICAgaWYgKGNhblVzZUZsdXNoID09
IENhblVzZUZsdXNoOjpObykKKyAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycygpOwogICAg
IG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CiAKICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3Ms
IG5vZGUpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxGb3JPYmpl
Y3RXaXRoU3ltYm9sKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpT
VmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVm
aXgpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3lt
Ym9sKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdz
LCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYg
cHJlZml4KQogewogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzEodGhpcywgbV9ncmFwaC52
YXJBcmdDaGlsZChub2RlLCAwKSk7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJnMih0aGlz
LCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKQEAgLTM3NjcsMTMgKzM3NzMsMTkgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN5bWJvbChO
b2RlKiBub2RlLCBjb25zdCBTY29wZWQKICAgICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7
CiAKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwotICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3Ms
IHN0ZDo6aWdub3JlKSA9IHByZWZpeChEYXRhRm9ybWF0SlMpOworICAgIENhblVzZUZsdXNoIGNh
blVzZUZsdXNoID0gQ2FuVXNlRmx1c2g6OlllczsKKyAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBz
dGQ6Omlnbm9yZSwgY2FuVXNlRmx1c2gpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CiAKICAgICBz
cGVjdWxhdGVPYmplY3QobV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKSwgYXJnMUdQUik7CiAg
ICAgc3BlY3VsYXRlU3ltYm9sKG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSksIGFyZzJHUFIp
OwogCi0gICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICBpZiAoY2FuVXNlRmx1c2ggPT0gQ2FuVXNl
Rmx1c2g6Ok5vKQorICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRSZWdzKTsK
KyAgICBlbHNlCisgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgY2FsbE9wZXJhdGlvbihv
cGVyYXRpb25HZXRCeVZhbE9iamVjdFN5bWJvbCwgcmVzdWx0UmVncywgVHJ1c3RlZEltbVB0cjo6
d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2lu
LnNlbWFudGljKSksIGFyZzFHUFIsIGFyZzJHUFIpOworICAgIGlmIChjYW5Vc2VGbHVzaCA9PSBD
YW5Vc2VGbHVzaDo6Tm8pCisgICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMoKTsKICAgICBt
X2ppdC5leGNlcHRpb25DaGVjaygpOwogCiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBu
b2RlKTsKQEAgLTgxMTAsNyArODEyMiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRUeXBlZEFycmF5Qnl0ZU9mZnNldChOb2RlKiBub2RlKQogICAgIHN0cmljdEludDMyUmVzdWx0
KHZlY3RvckdQUiwgbm9kZSk7CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRC
eVZhbE9uRGlyZWN0QXJndW1lbnRzKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6
OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1h
dCk+JiBwcmVmaXgpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkRpcmVj
dEFyZ3VtZW50cyhOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1Zh
bHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9y
bWF0KT4mIHByZWZpeCkKIHsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1f
Z3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkpOwogICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3Bl
cmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKQEAgLTgx
MTksNyArODEzMSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uRGly
ZWN0QXJndW1lbnRzKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhCiAgICAgR1BSUmVnIHByb3Bl
cnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7CiAKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwot
ICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlKSA9IHByZWZpeChEYXRhRm9ybWF0
SlMpOworICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlLCBzdGQ6Omlnbm9yZSkg
PSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKICAgICBHUFJSZWcgc2NyYXRjaFJlZyA9IHJlc3VsdFJl
Z3MucGF5bG9hZEdQUigpOwogICAgIAogICAgIGlmICghbV9jb21waWxlT2theSkKQEAgLTgxNTEs
NyArODE2Myw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uRGlyZWN0
QXJndW1lbnRzKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhCiAgICAganNWYWx1ZVJlc3VsdChy
ZXN1bHRSZWdzLCBub2RlKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5
VmFsT25TY29wZWRBcmd1bWVudHMoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6
dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0
KT4mIHByZWZpeCkKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU2NvcGVk
QXJndW1lbnRzKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFs
dWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3Jt
YXQpPiYgcHJlZml4KQogewogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbV9n
cmFwaC52YXJBcmdDaGlsZChub2RlLCAwKSk7CiAgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVy
YW5kIHByb3BlcnR5KHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpOwpAQCAtODE2
Nyw3ICs4MTc5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25TY29w
ZWRBcmd1bWVudHMoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGEKICAgICAgICAgcmV0dXJuOwog
CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKLSAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBz
dGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKKyAgICBzdGQ6OnRpZShyZXN1bHRS
ZWdzLCBzdGQ6Omlnbm9yZSwgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CiAg
ICAgCiAgICAgbV9qaXQubG9hZFB0cigKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
YmFzZVJlZywgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlN0b3JhZ2UoKSksIHJlc3VsdFJlZ3Mu
cGF5bG9hZEdQUigpKTsKQEAgLTE1ODY1LDcgKzE1ODc3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUVudW1lcmF0b3JHZXRCeVZhbChOb2RlKiBub2RlKQogICAgICAgICBHUFJSZWcg
ZW51bWVyYXRvckdQUjsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgYmFkU3RydWN0dXJl
U2xvd1BhdGg7CiAKLSAgICAgICAgY29tcGlsZUdldEJ5VmFsKG5vZGUsIHNjb3BlZExhbWJkYTxz
dGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0KT4oWyZdIChEYXRh
Rm9ybWF0KSB7CisgICAgICAgIGNvbXBpbGVHZXRCeVZhbChub2RlLCBzY29wZWRMYW1iZGE8c3Rk
Ojp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERhdGFGb3JtYXQp
PihbJl0gKERhdGFGb3JtYXQpIHsKICAgICAgICAgICAgIEVkZ2Ugc3RvcmFnZUVkZ2UgPSBtX2dy
YXBoLnZhckFyZ0NoaWxkKG5vZGUsIDIpOwogICAgICAgICAgICAgU3RvcmFnZU9wZXJhbmQgc3Rv
cmFnZTsKICAgICAgICAgICAgIGlmIChzdG9yYWdlRWRnZSkKQEAgLTE1OTM4LDcgKzE1OTUwLDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUVudW1lcmF0b3JHZXRCeVZhbChOb2RlKiBu
b2RlKQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBub3RGYXN0TmFtZWRDYXNlcy5saW5r
KCZtX2ppdCk7Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIocmVzdWx0UmVncywg
RGF0YUZvcm1hdEpTKTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6OnR1cGxlIHsgcmVzdWx0UmVn
cywgRGF0YUZvcm1hdEpTLCBDYW5Vc2VGbHVzaDo6Tm8gfTsKICAgICAgICAgfSkpOwogCiAgICAg
ICAgIC8vIFdlIHJlbHkgb24gY29tcGlsZUdldEJ5VmFsIHRvIGNhbGwganNWYWx1ZVJlc3VsdCBm
b3IgdXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgK
aW5kZXggMDQ5YmNmN2U2ZmRiNzkyYWQ2YTU4OTEwN2E4ZDFhMjcxYzFlMTkwMi4uYzE4M2UxODMz
ZDU2OWJjMTc1NTVlOGY3NzgwMTBmMmRlMTVjNDViZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMTM1OCwxNCArMTM1OCwxNSBAQCBjbGFz
cyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgfQogICAgIAogICAgIC8vIFdlIHVzZSBhIHNjb3BlZExh
bWJkYSB0byBwbGFjYXRlIHJlZ2lzdGVyIGFsbG9jYXRpb24gdmFsaWRhdGlvbi4KLSAgICB2b2lk
IGNvbXBpbGVHZXRCeVZhbChOb2RlKiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNW
YWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZp
eCk7CisgICAgZW51bSBjbGFzcyBDYW5Vc2VGbHVzaCB7IFllcywgTm8gfTsKKyAgICB2b2lkIGNv
bXBpbGVHZXRCeVZhbChOb2RlKiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1
ZVJlZ3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1h
dCk+JiBwcmVmaXgpOwogCiAgICAgdm9pZCBjb21waWxlR2V0Q2hhckNvZGVBdChOb2RlKik7Ci0g
ICAgdm9pZCBjb21waWxlR2V0QnlWYWxPblN0cmluZyhOb2RlKiwgY29uc3QgU2NvcGVkTGFtYmRh
PHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJlZmVycmVk
Rm9ybWF0KT4mIHByZWZpeCk7CisgICAgdm9pZCBjb21waWxlR2V0QnlWYWxPblN0cmluZyhOb2Rl
KiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQs
IENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOwogICAg
IHZvaWQgY29tcGlsZUZyb21DaGFyQ29kZShOb2RlKik7IAogCi0gICAgdm9pZCBjb21waWxlR2V0
QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyhOb2RlKiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVw
bGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4m
IHByZWZpeCk7Ci0gICAgdm9pZCBjb21waWxlR2V0QnlWYWxPblNjb3BlZEFyZ3VtZW50cyhOb2Rl
KiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+
KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CisgICAgdm9pZCBjb21waWxl
R2V0QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyhOb2RlKiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6
dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHBy
ZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOworICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsT25TY29w
ZWRBcmd1bWVudHMoTm9kZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVS
ZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQp
PiYgcHJlZml4KTsKIAogICAgIHZvaWQgY29tcGlsZUdldFByaXZhdGVOYW1lKE5vZGUqKTsKICAg
ICB2b2lkIGNvbXBpbGVHZXRQcml2YXRlTmFtZUJ5SWQoTm9kZSopOwpAQCAtMTQ0NSwxMiArMTQ0
NiwxMiBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAjaWYgVVNFKExBUkdFX1RZUEVEX0FSUkFZ
UykKICAgICB2b2lkIGNvbXBpbGVHZXRUeXBlZEFycmF5Qnl0ZU9mZnNldEFzSW50NTIoTm9kZSop
OwogI2VuZGlmCi0gICAgdm9pZCBjb21waWxlR2V0QnlWYWxPbkludFR5cGVkQXJyYXkoTm9kZSos
IFR5cGVkQXJyYXlUeXBlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVn
cywgRGF0YUZvcm1hdD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KTsKKyAg
ICB2b2lkIGNvbXBpbGVHZXRCeVZhbE9uSW50VHlwZWRBcnJheShOb2RlKiwgVHlwZWRBcnJheVR5
cGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0
LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KTsKICAg
ICB2b2lkIGNvbXBpbGVQdXRCeVZhbEZvckludFR5cGVkQXJyYXkoR1BSUmVnIGJhc2UsIEdQUlJl
ZyBwcm9wZXJ0eSwgTm9kZSosIFR5cGVkQXJyYXlUeXBlKTsKLSAgICB2b2lkIGNvbXBpbGVHZXRC
eVZhbE9uRmxvYXRUeXBlZEFycmF5KE5vZGUqLCBUeXBlZEFycmF5VHlwZSwgY29uc3QgU2NvcGVk
TGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJl
ZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CisgICAgdm9pZCBjb21waWxlR2V0QnlWYWxPbkZsb2F0
VHlwZWRBcnJheShOb2RlKiwgVHlwZWRBcnJheVR5cGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6
OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBw
cmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KTsKICAgICB2b2lkIGNvbXBpbGVQdXRCeVZhbEZvckZs
b2F0VHlwZWRBcnJheShHUFJSZWcgYmFzZSwgR1BSUmVnIHByb3BlcnR5LCBOb2RlKiwgVHlwZWRB
cnJheVR5cGUpOwotICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN0cmluZyhO
b2RlKiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3Jt
YXQ+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7Ci0gICAgdm9pZCBjb21w
aWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3ltYm9sKE5vZGUqLCBjb25zdCBTY29wZWRMYW1iZGE8
c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRG
b3JtYXQpPiYgcHJlZml4KTsKKyAgICB2b2lkIGNvbXBpbGVHZXRCeVZhbEZvck9iamVjdFdpdGhT
dHJpbmcoTm9kZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBE
YXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJl
Zml4KTsKKyAgICB2b2lkIGNvbXBpbGVHZXRCeVZhbEZvck9iamVjdFdpdGhTeW1ib2woTm9kZSos
IGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBD
YW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KTsKICAgICB2
b2lkIGNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3RyaW5nKE5vZGUqLCBFZGdlJiBjaGlsZDEs
IEVkZ2UmIGNoaWxkMiwgRWRnZSYgY2hpbGQzKTsKICAgICB2b2lkIGNvbXBpbGVQdXRCeVZhbEZv
ckNlbGxXaXRoU3ltYm9sKE5vZGUqLCBFZGdlJiBjaGlsZDEsIEVkZ2UmIGNoaWxkMiwgRWRnZSYg
Y2hpbGQzKTsKICAgICB2b2lkIGNvbXBpbGVHZXRCeVZhbFdpdGhUaGlzKE5vZGUqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
CmluZGV4IDA3NDU2YTc0MjFhODEzMWE4YzBhNjczYjE1YjFmZGE2YmM2YmFlMWEuLjI4OTlkYTYy
MWYzMmEzZTYyMjI1ZDY1Nzg4Y2MxMDkyOWM2MTJmN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtMTgxNSw3ICsx
ODE1LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZhbChO
b2RlKiBub2RlLCBCYXNlT3BlcmFuZFR5cGUmIGJhc2UKICAgICBub1Jlc3VsdChub2RlLCBVc2VD
aGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOyAgICAKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxl
PEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBw
cmVmaXgpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwg
Y29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENh
blVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpCiB7CiAgICAg
c3dpdGNoIChub2RlLT5hcnJheU1vZGUoKS50eXBlKCkpIHsKICAgICBjYXNlIEFycmF5OjpBbnlU
eXBlZEFycmF5OgpAQCAtMTgzMyw3ICsxODMzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEoK
ICAgICAgICAgR1BSUmVnIGluZGV4R1BSID0gaW5kZXguZ3ByKCk7CiAKICAgICAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVnczsKLSAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25v
cmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CisgICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3Ms
IHN0ZDo6aWdub3JlLCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKIAogICAg
ICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygpLCBub2RlLAog
ICAgICAgICAgICAgbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Okxlc3NUaGFuLCBpbmRl
eEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigwKSkpOwpAQCAtMTg2MywxMCArMTg2
MywxNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwg
Y29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SgogICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mg
cHJvcGVydHlSZWdzID0gcHJvcGVydHkuanNWYWx1ZVJlZ3MoKTsKIAogICAgICAgICAgICAgSlNW
YWx1ZVJlZ3MgcmVzdWx0UmVnczsKLSAgICAgICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0
ZDo6aWdub3JlKSA9IHByZWZpeChEYXRhRm9ybWF0SlMpOworICAgICAgICAgICAgQ2FuVXNlRmx1
c2ggY2FuVXNlRmx1c2ggPSBDYW5Vc2VGbHVzaDo6WWVzOworICAgICAgICAgICAgc3RkOjp0aWUo
cmVzdWx0UmVncywgc3RkOjppZ25vcmUsIGNhblVzZUZsdXNoKSA9IHByZWZpeChEYXRhRm9ybWF0
SlMpOwogCi0gICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygpOworICAgICAgICAgICAgaWYgKGNh
blVzZUZsdXNoID09IENhblVzZUZsdXNoOjpObykKKyAgICAgICAgICAgICAgICBzaWxlbnRTcGls
bEFsbFJlZ2lzdGVycyhyZXN1bHRSZWdzKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRp
b25HZXRCeVZhbCwgcmVzdWx0UmVncywgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFw
aCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VH
UFIsIHByb3BlcnR5UmVncyk7CisgICAgICAgICAgICBpZiAoY2FuVXNlRmx1c2ggPT0gQ2FuVXNl
Rmx1c2g6Ok5vKQorICAgICAgICAgICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMoKTsKICAg
ICAgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CiAKICAgICAgICAgICAgIGpzVmFsdWVS
ZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CkBAIC0xODc5LDcgKzE4ODUsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRh
PHN0ZDo6dHVwbGU8SgogCiAgICAgICAgIGF1dG8gZ2VuZXJhdGUgPSBbJl0gKEpTVmFsdWVSZWdz
IGJhc2VSZWdzKSB7CiAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwotICAgICAg
ICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3Jt
YXRKUyk7CisgICAgICAgICAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBzdGQ6Omlnbm9yZSwgc3Rk
OjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CiAKICAgICAgICAgICAgIENvZGVPcmln
aW4gY29kZU9yaWdpbiA9IG5vZGUtPm9yaWdpbi5zZW1hbnRpYzsKICAgICAgICAgICAgIENhbGxT
aXRlSW5kZXggY2FsbFNpdGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0ZUFuZEdlbmVyYXRlRXhjZXB0
aW9uSGFuZGxpbmdPU1JFeGl0SWZOZWVkZWQoY29kZU9yaWdpbiwgbV9zdHJlYW0tPnNpemUoKSk7
CkBAIC0xOTQ2LDcgKzE5NTIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlW
YWwoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SgogCiAgICAgICAg
ICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwogICAgICAgICAgICAgRGF0YUZvcm1hdCBmb3Jt
YXQ7Ci0gICAgICAgICAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBmb3JtYXQpID0gcHJlZml4KG5v
ZGUtPmFycmF5TW9kZSgpLnR5cGUoKSA9PSBBcnJheTo6SW50MzIgPyBEYXRhRm9ybWF0SW50MzIg
OiBEYXRhRm9ybWF0SlMpOworICAgICAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgZm9ybWF0
LCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgobm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpID09IEFycmF5
OjpJbnQzMiA/IERhdGFGb3JtYXRJbnQzMiA6IERhdGFGb3JtYXRKUyk7CiAKICAgICAgICAgICAg
IHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCksIG51bGxwdHIsIG1f
aml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVi
bGljTGVuZ3RoKCkpKSk7CiAKQEAgLTIwMDMsNyArMjAwOSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0
dXBsZTxKCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0
UmVnczsKLSAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUpID0gcHJlZml4
KERhdGFGb3JtYXRKUyk7CisgICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3Jl
LCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKIAogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwogCkBAIC0yMDM2LDcgKzIwNDIsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVk
TGFtYmRhPHN0ZDo6dHVwbGU8SgogCiAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdz
OwogICAgICAgICAgICAgRGF0YUZvcm1hdCBmb3JtYXQ7Ci0gICAgICAgICAgICBzdGQ6OnRpZShy
ZXN1bHRSZWdzLCBmb3JtYXQpID0gcHJlZml4KERhdGFGb3JtYXREb3VibGUpOworICAgICAgICAg
ICAgc3RkOjp0aWUocmVzdWx0UmVncywgZm9ybWF0LCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0
YUZvcm1hdERvdWJsZSk7CiAKICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3Vu
ZHMsIEpTVmFsdWVSZWdzKCksIG51bGxwdHIsIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVy
OjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9y
YWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKSk7CiAKQEAgLTIwNjgs
NyArMjA3NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBu
b2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAgICAgICAgIEZQUlJlZyB0ZW1w
UmVnID0gdGVtcC5mcHIoKTsKIAogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwotICAg
ICAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1h
dEpTKTsKKyAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUsIHN0ZDo6aWdu
b3JlKSA9IHByZWZpeChEYXRhRm9ybWF0SlMpOwogCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpK
dW1wTGlzdCBzbG93Q2FzZXM7CiAKQEAgLTIwOTgsNyArMjEwNCw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3Rk
Ojp0dXBsZTxKCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBKU1ZhbHVl
UmVncyByZXN1bHRSZWdzOwotICAgICAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjpp
Z25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CisgICAgICAgICAgICBzdGQ6OnRpZShyZXN1
bHRSZWdzLCBzdGQ6Omlnbm9yZSwgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7
CiAKICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdz
KCksIG51bGxwdHIsIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWws
IHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0
b3JhZ2U6OnZlY3Rvckxlbmd0aE9mZnNldCgpKSkpOwogCkBAIC0yMTIyLDcgKzIxMjgsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwgY29uc3QgU2Nv
cGVkTGFtYmRhPHN0ZDo6dHVwbGU8SgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIEpT
VmFsdWVSZWdzIHJlc3VsdFJlZ3M7Ci0gICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6
aWdub3JlKSA9IHByZWZpeChEYXRhRm9ybWF0SlMpOworICAgICAgICBzdGQ6OnRpZShyZXN1bHRS
ZWdzLCBzdGQ6Omlnbm9yZSwgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CiAK
ICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBtX2ppdC5icmFuY2gzMigK
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLApA
QCAtMjU5NCwxMCArMjYwMCwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUq
IG5vZGUpCiAgICAgY2FzZSBTdHJpbmdDaGFyQXQ6IHsKICAgICAgICAgLy8gUmVsaWVzIG9uIFN0
cmluZ0NoYXJBdCBub2RlIGhhdmluZyBzYW1lIGJhc2ljIGxheW91dCBhcyBHZXRCeVZhbAogICAg
ICAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQ7Ci0gICAgICAgIGNvbXBpbGVHZXRCeVZh
bE9uU3RyaW5nKG5vZGUsIHNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRh
Rm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+KFsmXSAoRGF0YUZvcm1hdCBwcmVm
ZXJyZWRGb3JtYXQpIHsKKyAgICAgICAgY29tcGlsZUdldEJ5VmFsT25TdHJpbmcobm9kZSwgc2Nv
cGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNo
PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+KFsmXSAoRGF0YUZvcm1hdCBwcmVmZXJyZWRG
b3JtYXQpIHsKICAgICAgICAgICAgIHJlc3VsdCA9IEpTVmFsdWVSZWdzVGVtcG9yYXJ5KHRoaXMp
OwogICAgICAgICAgICAgQVNTRVJUKHByZWZlcnJlZEZvcm1hdCA9PSBEYXRhRm9ybWF0SlMgfHwg
cHJlZmVycmVkRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKTsKLSAgICAgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfcGFpcihyZXN1bHQucmVncygpLCBwcmVmZXJyZWRGb3JtYXQpOworICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6dHVwbGUgeyByZXN1bHQucmVncygpLCBwcmVmZXJyZWRGb3JtYXQsIENh
blVzZUZsdXNoOjpZZXMgfTsKICAgICAgICAgfSkpOwogICAgICAgICBicmVhazsKICAgICB9CkBA
IC0yNjUzLDcgKzI2NTksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5v
ZGUpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
OwotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKHJlc3VsdFJlZ3MsIHByZWZlcnJl
ZEZvcm1hdCk7CisgICAgICAgICAgICByZXR1cm4gc3RkOjp0dXBsZSB7IHJlc3VsdFJlZ3MsIHBy
ZWZlcnJlZEZvcm1hdCwgQ2FuVXNlRmx1c2g6OlllcyB9OwogICAgICAgICB9KSk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCmluZGV4IDE0YTUwNzYxZmQ5YTY1MmMzZjBlMzkxMGFhNjllZWUxMTNm
ZjEzZGMuLjIyNjZjNDYwNzkwNzc0NGFkYWFkNGZmMDU5YjkyNzgyMGFjMDdkMTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAt
MjMzMCw3ICsyMzMwLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdEJyYW5jaChOb2RlKiBu
b2RlKQogICAgIH0KIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKE5v
ZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRh
Rm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpCit2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRh
PHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9y
bWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpCiB7CiAgICAgc3dpdGNoIChub2RlLT5hcnJh
eU1vZGUoKS50eXBlKCkpIHsKICAgICBjYXNlIEFycmF5OjpBbnlUeXBlZEFycmF5OgpAQCAtMjM0
NSw3ICsyMzQ1LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKE5vZGUq
IG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEoKICAgICAgICAgR1BSUmVnIGlu
ZGV4R1BSID0gaW5kZXguZ3ByKCk7CiAKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsK
LSAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFG
b3JtYXRKUyk7CisgICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlLCBzdGQ6
Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKIAogICAgICAgICBzcGVjdWxhdGlvbkNo
ZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygpLCBub2RlLAogICAgICAgICAgICAgbV9qaXQu
YnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Okxlc3NUaGFuLCBpbmRleEdQUiwgTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW0zMigwKSkpOwpAQCAtMjM3NywxMCArMjM3NywxNiBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRh
PHN0ZDo6dHVwbGU8SgogICAgICAgICAgICAgR1BSUmVnIHByb3BlcnR5R1BSID0gcHJvcGVydHku
Z3ByKCk7CiAKICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3M7Ci0gICAgICAgICAg
ICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdEpT
KTsKKyAgICAgICAgICAgIENhblVzZUZsdXNoIGNhblVzZUZsdXNoID0gQ2FuVXNlRmx1c2g6Olll
czsKKyAgICAgICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlLCBjYW5Vc2VG
bHVzaCkgPSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKIAotICAgICAgICAgICAgZmx1c2hSZWdpc3Rl
cnMoKTsKKyAgICAgICAgICAgIGlmIChjYW5Vc2VGbHVzaCA9PSBDYW5Vc2VGbHVzaDo6Tm8pCisg
ICAgICAgICAgICAgICAgc2lsZW50U3BpbGxBbGxSZWdpc3RlcnMocmVzdWx0UmVncyk7CisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAgICAg
ICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uR2V0QnlWYWwsIHJlc3VsdFJlZ3MsIFRydXN0ZWRJ
bW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUt
Pm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlR1BSLCBwcm9wZXJ0eUdQUik7CisgICAgICAgICAgICBp
ZiAoY2FuVXNlRmx1c2ggPT0gQ2FuVXNlRmx1c2g6Ok5vKQorICAgICAgICAgICAgICAgIHNpbGVu
dEZpbGxBbGxSZWdpc3RlcnMoKTsKICAgICAgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7
CiAKICAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CkBAIC0yNDAz
LDcgKzI0MDksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSog
bm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SgogICAgICAgICBzcGVjdWxhdGUo
bm9kZSwgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKSk7CiAKICAgICAgICAgSlNWYWx1ZVJl
Z3MgcmVzdWx0UmVnczsKLSAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUp
ID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CisgICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0
ZDo6aWdub3JlLCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKICAgICAgICAg
R1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdFJlZ3MuZ3ByKCk7CiAKICAgICAgICAgQ29kZU9yaWdp
biBjb2RlT3JpZ2luID0gbm9kZS0+b3JpZ2luLnNlbWFudGljOwpAQCAtMjQ2MSw3ICsyNDY3LDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNvbnN0
IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEoKIAogICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVz
dWx0UmVnczsKICAgICAgICAgICAgIERhdGFGb3JtYXQgZm9ybWF0OwotICAgICAgICAgICAgc3Rk
Ojp0aWUocmVzdWx0UmVncywgZm9ybWF0KSA9IHByZWZpeChub2RlLT5hcnJheU1vZGUoKS50eXBl
KCkgPT0gQXJyYXk6OkludDMyID8gRGF0YUZvcm1hdEpTSW50MzIgOiBEYXRhRm9ybWF0SlMpOwor
ICAgICAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgZm9ybWF0LCBzdGQ6Omlnbm9yZSkgPSBw
cmVmaXgobm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpID09IEFycmF5OjpJbnQzMiA/IERhdGFGb3Jt
YXRKU0ludDMyIDogRGF0YUZvcm1hdEpTKTsKICAgICAgICAgICAgIEdQUlJlZyByZXN1bHQgPSBy
ZXN1bHRSZWdzLmdwcigpOwogCiAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91
bmRzLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxl
cjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3Rv
cmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSkpOwpAQCAtMjQ5Myw3
ICsyNDk5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5v
ZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEoKICAgICAgICAgICAgIHJldHVybjsK
IAogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwotICAgICAgICBzdGQ6OnRpZShyZXN1
bHRSZWdzLCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKKyAgICAgICAgc3Rk
Ojp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUsIHN0ZDo6aWdub3JlKSA9IHByZWZpeChEYXRh
Rm9ybWF0SlMpOwogICAgICAgICBHUFJSZWcgcmVzdWx0UmVnID0gcmVzdWx0UmVncy5ncHIoKTsK
IAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwpAQCAtMjUzNyw3
ICsyNTQzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5v
ZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEoKIAogICAgICAgICAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVnczsKICAgICAgICAgICAgIERhdGFGb3JtYXQgZm9ybWF0OwotICAgICAg
ICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgZm9ybWF0KSA9IHByZWZpeChEYXRhRm9ybWF0RG91
YmxlKTsKKyAgICAgICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIGZvcm1hdCwgc3RkOjppZ25v
cmUpID0gcHJlZml4KERhdGFGb3JtYXREb3VibGUpOwogCiAgICAgICAgICAgICBzcGVjdWxhdGlv
bkNoZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBtX2ppdC5icmFuY2gz
MihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3Moc3RvcmFnZVJlZywgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgp
KSkpOwogCkBAIC0yNTcyLDcgKzI1NzgsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
R2V0QnlWYWwoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SgogCiAg
ICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3M7CiAgICAgICAgIERhdGFGb3JtYXQgZm9ybWF0
OwotICAgICAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBmb3JtYXQpID0gcHJlZml4KHJlc3VsdElz
VW5ib3hlZCA/IERhdGFGb3JtYXREb3VibGUgOiBEYXRhRm9ybWF0SlMpOworICAgICAgICBzdGQ6
OnRpZShyZXN1bHRSZWdzLCBmb3JtYXQsIHN0ZDo6aWdub3JlKSA9IHByZWZpeChyZXN1bHRJc1Vu
Ym94ZWQgPyBEYXRhRm9ybWF0RG91YmxlIDogRGF0YUZvcm1hdEpTKTsKIAogICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwogCkBAIC0yNjI1LDcgKzI2MzEsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwgY29uc3QgU2Nv
cGVkTGFtYmRhPHN0ZDo6dHVwbGU8SgogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAg
ICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKLSAgICAgICAgICAgIHN0ZDo6dGllKHJlc3Vs
dFJlZ3MsIHN0ZDo6aWdub3JlKSA9IHByZWZpeChEYXRhRm9ybWF0SlMpOworICAgICAgICAgICAg
c3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUsIHN0ZDo6aWdub3JlKSA9IHByZWZpeChE
YXRhRm9ybWF0SlMpOwogICAgICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdFJlZ3Mu
Z3ByKCk7CiAKICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFs
dWVSZWdzKCksIG51bGxwdHIsIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9y
RXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBB
cnJheVN0b3JhZ2U6OnZlY3Rvckxlbmd0aE9mZnNldCgpKSkpOwpAQCAtMjY1MCw3ICsyNjU2LDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNvbnN0
IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEoKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAg
ICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwotICAgICAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBz
dGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKKyAgICAgICAgc3RkOjp0aWUocmVz
dWx0UmVncywgc3RkOjppZ25vcmUsIHN0ZDo6aWdub3JlKSA9IHByZWZpeChEYXRhRm9ybWF0SlMp
OwogICAgICAgICBHUFJSZWcgcmVzdWx0UmVnID0gcmVzdWx0UmVncy5ncHIoKTsKIAogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwpAQCAtMzI0MiwxMCArMzI0OCwx
MCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBT
dHJpbmdDaGFyQXQ6IHsKICAgICAgICAgLy8gUmVsaWVzIG9uIFN0cmluZ0NoYXJBdCBub2RlIGhh
dmluZyBzYW1lIGJhc2ljIGxheW91dCBhcyBHZXRCeVZhbAogICAgICAgICBKU1ZhbHVlUmVnc1Rl
bXBvcmFyeSByZXN1bHQ7Ci0gICAgICAgIGNvbXBpbGVHZXRCeVZhbE9uU3RyaW5nKG5vZGUsIHNj
b3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0
IHByZWZlcnJlZEZvcm1hdCk+KFsmXSAoRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpIHsKKyAg
ICAgICAgY29tcGlsZUdldEJ5VmFsT25TdHJpbmcobm9kZSwgc2NvcGVkTGFtYmRhPHN0ZDo6dHVw
bGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZl
cnJlZEZvcm1hdCk+KFsmXSAoRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpIHsKICAgICAgICAg
ICAgIHJlc3VsdCA9IEpTVmFsdWVSZWdzVGVtcG9yYXJ5KHRoaXMpOwogICAgICAgICAgICAgQVNT
RVJUKHByZWZlcnJlZEZvcm1hdCA9PSBEYXRhRm9ybWF0SlMgfHwgcHJlZmVycmVkRm9ybWF0ID09
IERhdGFGb3JtYXRDZWxsKTsKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihyZXN1
bHQucmVncygpLCBwcmVmZXJyZWRGb3JtYXQpOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6dHVw
bGUgeyByZXN1bHQucmVncygpLCBwcmVmZXJyZWRGb3JtYXQsIENhblVzZUZsdXNoOjpZZXMgfTsK
ICAgICAgICAgfSkpOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC0zMjg0LDcgKzMyOTAsNyBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAKICAgICBjYXNlIEdl
dEJ5VmFsOiB7CiAgICAgICAgIEpTVmFsdWVSZWdzVGVtcG9yYXJ5IHJlc3VsdDsKLSAgICAgICAg
Y29tcGlsZUdldEJ5VmFsKG5vZGUsIHNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdz
LCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+KFsmXSAoRGF0YUZvcm1h
dCBwcmVmZXJyZWRGb3JtYXQpIHsKKyAgICAgICAgY29tcGlsZUdldEJ5VmFsKG5vZGUsIHNjb3Bl
ZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4o
RGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPihbJl0gKERhdGFGb3JtYXQgcHJlZmVycmVkRm9y
bWF0KSB7CiAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwogICAgICAgICAgICAg
c3dpdGNoIChwcmVmZXJyZWRGb3JtYXQpIHsKICAgICAgICAgICAgIGNhc2UgRGF0YUZvcm1hdERv
dWJsZToKQEAgLTMyOTUsNyArMzMwMSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUo
Tm9kZSogbm9kZSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH07Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIocmVzdWx0UmVncywg
cHJlZmVycmVkRm9ybWF0KTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6OnR1cGxlIHsgcmVzdWx0
UmVncywgcHJlZmVycmVkRm9ybWF0LCBDYW5Vc2VGbHVzaDo6WWVzIH07CiAgICAgICAgIH0pKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9K
U1Rlc3RzL0NoYW5nZUxvZwppbmRleCA3ZDE2M2Y2YzYzNGZiNWQ2MDA2NTE3OTQ2YmVhMjAzMGY5
NjBkMWRiLi44MzEzYmFjMGJkMjY4Zjc0ZTIyNWZlZTE5NzRhMmJhZjBlMGM4NDA1IDEwMDY0NAot
LS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDIxLTEwLTI1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisK
KyAgICAgICAgW0pTQ10gRG9uJ3QgYnJhbmNoIGFyb3VuZCByZWdpc3RlciBhbGxvY2F0aW9uIGlu
IERGRyBlbnVtZXJhdG9yIGdldCBieSB2YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMjI2MAorICAgICAgICByZGFyOi8vODQ1NDQ0NjkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9kb250
LWJyYW5jaC1hcm91bmQtcmVnYWxsb2MtZW51bWVyYXRvci1nZXQtYnktdmFsLWZsb2F0LmpzOiBB
ZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIwMjEtMTAtMjQgIEFsZXhleSBTaHZheWthICA8YXNo
dmF5a2FAYXBwbGUuY29tPgogCiAgICAgICAgIEludGVybmFsRnVuY3Rpb246OmNyZWF0ZVN1YmNs
YXNzU3RydWN0dXJlKCkgc2hvdWxkIHVzZSBwcm90b3R5cGUncyBnbG9iYWwgb2JqZWN0CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kb250LWJyYW5jaC1hcm91bmQtcmVnYWxsb2MtZW51bWVy
YXRvci1nZXQtYnktdmFsLWZsb2F0LmpzIGIvSlNUZXN0cy9zdHJlc3MvZG9udC1icmFuY2gtYXJv
dW5kLXJlZ2FsbG9jLWVudW1lcmF0b3ItZ2V0LWJ5LXZhbC1mbG9hdC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
Nzc2Njc1MTcxOTljNGQxY2Y1ODM1MjZlOGYxNThhNDRkMWNhMTM3Ci0tLSAvZGV2L251bGwKKysr
IGIvSlNUZXN0cy9zdHJlc3MvZG9udC1icmFuY2gtYXJvdW5kLXJlZ2FsbG9jLWVudW1lcmF0b3It
Z2V0LWJ5LXZhbC1mbG9hdC5qcwpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiBmb28obykgewor
ICBmb3IgKGxldCBwIGluIG8pIHsKKyAgICBvW3BdOworICB9Cit9CisKK2ZvciAobGV0IGkgPSAw
OyBpIDwgMTAwMDA7IGkrKykgeworICBmb28obmV3IEZsb2F0MzJBcnJheSgpKTsKKyAgZm9vKHtv
OiB1bmRlZmluZWR9KTsKK30K
</data>
<flag name="commit-queue"
          id="466889"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442399</attachid>
            <date>2021-10-25 12:29:36 -0700</date>
            <delta_ts>2021-10-25 17:18:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232260-20211025122935.patch</filename>
            <type>text/plain</type>
            <size>31036</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0Nzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
Y2Y4MDVkN2U4NDk0NDQwZTlhN2RmNWY2NTI0NGFkZTNmMzAxNjE5Li40MmI4MmRiMzk5NWEzMjJm
Y2Q1N2ZmOTE5MGUwODZiZWZlYTZlNGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAyMS0xMC0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIERvbid0IGJyYW5jaCBhcm91bmQgcmVnaXN0ZXIgYWxsb2NhdGlv
biBpbiBERkcgZW51bWVyYXRvciBnZXQgYnkgdmFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIyNjAKKyAgICAgICAgcmRhcjovLzg0NTQ0NDY5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0QnlWYWxPblN0cmluZyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRCeVZhbE9uSW50VHlwZWRBcnJheSk6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uRmxvYXRUeXBlZEFycmF5KToKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0
aFN0cmluZyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRC
eVZhbEZvck9iamVjdFdpdGhTeW1ib2wpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OkRG
Rzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU2NvcGVkQXJndW1lbnRzKToKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUVudW1lcmF0b3JHZXRCeVZh
bCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgICogZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlR2V0QnlWYWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbCk6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorCiAyMDIxLTEwLTI1ICBNaWto
YWlsIFIuIEdhZGVsaGEgIDxtaWtoYWlsQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0pTQ11bMzJi
aXRdIERvbid0IHNwZWN1bGF0ZSBDZWxsIG9uIFB1dEJ5VmFsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDUxYmQxYjdiM2VkOTQ5NGJk
M2E0MGI3ZjkyOWE2NWFmNzBiM2E0ODIuLmEzYjg1NGQxOWQyMzdmZTE3MDQzMzM3ZjhjMDMzMmQ5
MmZlMGEzMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCkBAIC0yNTkzLDcgKzI1OTMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlR2V0Q2hhckNvZGVBdChOb2RlKiBub2RlKQogICAgIHN0cmljdEludDMyUmVzdWx0KHNjcmF0
Y2hSZWcsIG1fY3VycmVudE5vZGUpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
R2V0QnlWYWxPblN0cmluZyhOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBs
ZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYg
cHJlZml4KQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25TdHJpbmcoTm9k
ZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFG
b3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgp
CiB7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBtX2dyYXBoLmNoaWxkKG5v
ZGUsIDApKTsKICAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgcHJvcGVydHkodGhpcywg
bV9ncmFwaC5jaGlsZChub2RlLCAxKSk7CkBAIC0yNjA0LDcgKzI2MDQsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPblN0cmluZyhOb2RlKiBub2RlLCBjb25zdCBTY29w
ZWRMYW1iZGE8c3RkOgogCiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKICAgICBEYXRhRm9y
bWF0IGZvcm1hdDsKLSAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBmb3JtYXQpID0gcHJlZml4KG5v
ZGUtPmFycmF5TW9kZSgpLmlzT3V0T2ZCb3VuZHMoKSA/IERhdGFGb3JtYXRKUyA6IERhdGFGb3Jt
YXRDZWxsKTsKKyAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBmb3JtYXQsIHN0ZDo6aWdub3JlKSA9
IHByZWZpeChub2RlLT5hcnJheU1vZGUoKS5pc091dE9mQm91bmRzKCkgPyBEYXRhRm9ybWF0SlMg
OiBEYXRhRm9ybWF0Q2VsbCk7CiAgICAgR1BSUmVnIHNjcmF0Y2hSZWcgPSByZXN1bHRSZWdzLnBh
eWxvYWRHUFIoKTsKIAogICAgIC8vIHVuc2lnbmVkIGNvbXBhcmlzb24gc28gd2UgY2FuIGZpbHRl
ciBvdXQgbmVnYXRpdmUgaW5kaWNlcyBhbmQgaW5kaWNlcyB0aGF0IGFyZSB0b28gbGFyZ2UKQEAg
LTMzODgsNyArMzM4OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OnNldEludFR5cGVkQXJyYXlM
b2FkUmVzdWx0KE5vZGUqIG5vZGUsIEpTVmFsdWVSZWdzIHJlc3VsdFJlCiAgICAgZG91YmxlUmVz
dWx0KHJlc3VsdEZQUiwgbm9kZSk7CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRCeVZhbE9uSW50VHlwZWRBcnJheShOb2RlKiBub2RlLCBUeXBlZEFycmF5VHlwZSB0eXBlLCBj
b25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdD4oRGF0
YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldEJ5VmFsT25JbnRUeXBlZEFycmF5KE5vZGUqIG5vZGUsIFR5cGVkQXJyYXlUeXBl
IHR5cGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9y
bWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQog
ewogICAgIEFTU0VSVChpc0ludCh0eXBlKSk7CiAgICAgCkBAIC0zNDExLDcgKzM0MTEsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkludFR5cGVkQXJyYXkoTm9kZSog
bm9kZSwgVHlwZWRBcnJheVR5cGUgdAogCiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKICAg
ICBEYXRhRm9ybWF0IGZvcm1hdDsKLSAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBmb3JtYXQpID0g
cHJlZml4KERhdGFGb3JtYXRJbnQzMik7CisgICAgc3RkOjp0aWUocmVzdWx0UmVncywgZm9ybWF0
LCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdEludDMyKTsKICAgICBib29sIHNob3Vs
ZEJveCA9IGZvcm1hdCA9PSBEYXRhRm9ybWF0SlM7CiAKICAgICBlbWl0VHlwZWRBcnJheUJvdW5k
c0NoZWNrKG5vZGUsIGJhc2VSZWcsIHByb3BlcnR5UmVnLCBzY3JhdGNoR1BSKTsKQEAgLTM2NTYs
NyArMzY1Niw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZhbEZvckludFR5
cGVkQXJyYXkoR1BSUmVnIGJhc2UsIEdQUlJlZyBwcm9wZXJ0CiAgICAgbm9SZXN1bHQobm9kZSk7
CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uRmxvYXRUeXBlZEFy
cmF5KE5vZGUqIG5vZGUsIFR5cGVkQXJyYXlUeXBlIHR5cGUsIGNvbnN0IFNjb3BlZExhbWJkYTxz
dGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZv
cm1hdCk+JiBwcmVmaXgpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkZs
b2F0VHlwZWRBcnJheShOb2RlKiBub2RlLCBUeXBlZEFycmF5VHlwZSB0eXBlLCBjb25zdCBTY29w
ZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+
KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCkKIHsKICAgICBBU1NFUlQoaXNG
bG9hdCh0eXBlKSk7CiAgICAgCkBAIC0zNjY0LDE4ICszNjY0LDE4IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uRmxvYXRUeXBlZEFycmF5KE5vZGUqIG5vZGUsIFR5cGVk
QXJyYXlUeXBlCiAgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIHByb3BlcnR5KHRoaXMs
IG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpOwogICAgIFN0b3JhZ2VPcGVyYW5kIHN0b3Jh
Z2UodGhpcywgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAyKSk7CiAgICAgR1BSVGVtcG9yYXJ5
IHNjcmF0Y2godGhpcyk7CisgICAgRlBSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKIAogICAgIEdQ
UlJlZyBiYXNlUmVnID0gYmFzZS5ncHIoKTsKICAgICBHUFJSZWcgcHJvcGVydHlSZWcgPSBwcm9w
ZXJ0eS5ncHIoKTsKICAgICBHUFJSZWcgc3RvcmFnZVJlZyA9IHN0b3JhZ2UuZ3ByKCk7CiAgICAg
R1BSUmVnIHNjcmF0Y2hHUFIgPSBzY3JhdGNoLmdwcigpOworICAgIEZQUlJlZyByZXN1bHRSZWcg
PSByZXN1bHQuZnByKCk7CiAKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwogICAgIERhdGFG
b3JtYXQgZm9ybWF0OwotICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIGZvcm1hdCkgPSBwcmVmaXgo
RGF0YUZvcm1hdERvdWJsZSk7CisgICAgc3RkOjp0aWUocmVzdWx0UmVncywgZm9ybWF0LCBzdGQ6
Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdERvdWJsZSk7CiAKLSAgICBGUFJUZW1wb3Jhcnkg
cmVzdWx0KHRoaXMpOwotICAgIEZQUlJlZyByZXN1bHRSZWcgPSByZXN1bHQuZnByKCk7CiAgICAg
ZW1pdFR5cGVkQXJyYXlCb3VuZHNDaGVjayhub2RlLCBiYXNlUmVnLCBwcm9wZXJ0eVJlZywgc2Ny
YXRjaEdQUik7CiAgICAgc3dpdGNoIChlbGVtZW50U2l6ZSh0eXBlKSkgewogICAgIGNhc2UgNDoK
QEAgLTM3MzcsNyArMzczNyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeVZh
bEZvckZsb2F0VHlwZWRBcnJheShHUFJSZWcgYmFzZSwgR1BSUmVnIHByb3BlCiAgICAgbm9SZXN1
bHQobm9kZSk7CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbEZvck9i
amVjdFdpdGhTdHJpbmcoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8
SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHBy
ZWZpeCkKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbEZvck9iamVjdFdpdGhT
dHJpbmcoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJl
Z3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+
JiBwcmVmaXgpCiB7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJnMSh0aGlzLCBtX2dyYXBo
LnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBhcmcyKHRo
aXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpOwpAQCAtMzc0NiwxOSArMzc0NiwyNSBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3RyaW5n
KE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZAogICAgIEdQUlJlZyBhcmcyR1BSID0gYXJnMi5ncHIo
KTsKIAogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3M7Ci0gICAgc3RkOjp0aWUocmVzdWx0UmVn
cywgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CisgICAgQ2FuVXNlRmx1c2gg
Y2FuVXNlRmx1c2ggPSBDYW5Vc2VGbHVzaDo6WWVzOworICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3Ms
IHN0ZDo6aWdub3JlLCBjYW5Vc2VGbHVzaCkgPSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKIAogICAg
IHNwZWN1bGF0ZU9iamVjdChtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApLCBhcmcxR1BSKTsK
ICAgICBzcGVjdWxhdGVTdHJpbmcobV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKSwgYXJnMkdQ
Uik7CiAKLSAgICBmbHVzaFJlZ2lzdGVycygpOworICAgIGlmIChjYW5Vc2VGbHVzaCA9PSBDYW5V
c2VGbHVzaDo6Tm8pCisgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFJlZ3Mp
OworICAgIGVsc2UKKyAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvbkdldEJ5VmFsT2JqZWN0U3RyaW5nLCByZXN1bHRSZWdzLCBUcnVzdGVkSW1tUHRy
Ojp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmln
aW4uc2VtYW50aWMpKSwgYXJnMUdQUiwgYXJnMkdQUik7CisgICAgaWYgKGNhblVzZUZsdXNoID09
IENhblVzZUZsdXNoOjpObykKKyAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycygpOwogICAg
IG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CiAKICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3Ms
IG5vZGUpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxGb3JPYmpl
Y3RXaXRoU3ltYm9sKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpT
VmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVm
aXgpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3lt
Ym9sKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdz
LCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYg
cHJlZml4KQogewogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGFyZzEodGhpcywgbV9ncmFwaC52
YXJBcmdDaGlsZChub2RlLCAwKSk7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYXJnMih0aGlz
LCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKQEAgLTM3NjcsMTMgKzM3NzMsMTkgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN5bWJvbChO
b2RlKiBub2RlLCBjb25zdCBTY29wZWQKICAgICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7
CiAKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwotICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3Ms
IHN0ZDo6aWdub3JlKSA9IHByZWZpeChEYXRhRm9ybWF0SlMpOworICAgIENhblVzZUZsdXNoIGNh
blVzZUZsdXNoID0gQ2FuVXNlRmx1c2g6OlllczsKKyAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBz
dGQ6Omlnbm9yZSwgY2FuVXNlRmx1c2gpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CiAKICAgICBz
cGVjdWxhdGVPYmplY3QobV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKSwgYXJnMUdQUik7CiAg
ICAgc3BlY3VsYXRlU3ltYm9sKG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSksIGFyZzJHUFIp
OwogCi0gICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICBpZiAoY2FuVXNlRmx1c2ggPT0gQ2FuVXNl
Rmx1c2g6Ok5vKQorICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhyZXN1bHRSZWdzKTsK
KyAgICBlbHNlCisgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CiAgICAgY2FsbE9wZXJhdGlvbihv
cGVyYXRpb25HZXRCeVZhbE9iamVjdFN5bWJvbCwgcmVzdWx0UmVncywgVHJ1c3RlZEltbVB0cjo6
d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2lu
LnNlbWFudGljKSksIGFyZzFHUFIsIGFyZzJHUFIpOworICAgIGlmIChjYW5Vc2VGbHVzaCA9PSBD
YW5Vc2VGbHVzaDo6Tm8pCisgICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMoKTsKICAgICBt
X2ppdC5leGNlcHRpb25DaGVjaygpOwogCiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBu
b2RlKTsKQEAgLTgxMTAsNyArODEyMiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRUeXBlZEFycmF5Qnl0ZU9mZnNldChOb2RlKiBub2RlKQogICAgIHN0cmljdEludDMyUmVzdWx0
KHZlY3RvckdQUiwgbm9kZSk7CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRC
eVZhbE9uRGlyZWN0QXJndW1lbnRzKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6
OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1h
dCk+JiBwcmVmaXgpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkRpcmVj
dEFyZ3VtZW50cyhOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1Zh
bHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9y
bWF0KT4mIHByZWZpeCkKIHsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1f
Z3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkpOwogICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3Bl
cmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKQEAgLTgx
MTksNyArODEzMSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uRGly
ZWN0QXJndW1lbnRzKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhCiAgICAgR1BSUmVnIHByb3Bl
cnR5UmVnID0gcHJvcGVydHkuZ3ByKCk7CiAKICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwot
ICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlKSA9IHByZWZpeChEYXRhRm9ybWF0
SlMpOworICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlLCBzdGQ6Omlnbm9yZSkg
PSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKICAgICBHUFJSZWcgc2NyYXRjaFJlZyA9IHJlc3VsdFJl
Z3MucGF5bG9hZEdQUigpOwogICAgIAogICAgIGlmICghbV9jb21waWxlT2theSkKQEAgLTgxNTEs
NyArODE2Myw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uRGlyZWN0
QXJndW1lbnRzKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhCiAgICAganNWYWx1ZVJlc3VsdChy
ZXN1bHRSZWdzLCBub2RlKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5
VmFsT25TY29wZWRBcmd1bWVudHMoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6
dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0
KT4mIHByZWZpeCkKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uU2NvcGVk
QXJndW1lbnRzKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFs
dWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3Jt
YXQpPiYgcHJlZml4KQogewogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbV9n
cmFwaC52YXJBcmdDaGlsZChub2RlLCAwKSk7CiAgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVy
YW5kIHByb3BlcnR5KHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpOwpAQCAtODE2
Nyw3ICs4MTc5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25TY29w
ZWRBcmd1bWVudHMoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGEKICAgICAgICAgcmV0dXJuOwog
CiAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKLSAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBz
dGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKKyAgICBzdGQ6OnRpZShyZXN1bHRS
ZWdzLCBzdGQ6Omlnbm9yZSwgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CiAg
ICAgCiAgICAgbV9qaXQubG9hZFB0cigKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
YmFzZVJlZywgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlN0b3JhZ2UoKSksIHJlc3VsdFJlZ3Mu
cGF5bG9hZEdQUigpKTsKQEAgLTE1ODY1LDcgKzE1ODc3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUVudW1lcmF0b3JHZXRCeVZhbChOb2RlKiBub2RlKQogICAgICAgICBHUFJSZWcg
ZW51bWVyYXRvckdQUjsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgYmFkU3RydWN0dXJl
U2xvd1BhdGg7CiAKLSAgICAgICAgY29tcGlsZUdldEJ5VmFsKG5vZGUsIHNjb3BlZExhbWJkYTxz
dGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0KT4oWyZdIChEYXRh
Rm9ybWF0KSB7CisgICAgICAgIGNvbXBpbGVHZXRCeVZhbChub2RlLCBzY29wZWRMYW1iZGE8c3Rk
Ojp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2FuVXNlRmx1c2g+KERhdGFGb3JtYXQp
PihbJl0gKERhdGFGb3JtYXQpIHsKICAgICAgICAgICAgIEVkZ2Ugc3RvcmFnZUVkZ2UgPSBtX2dy
YXBoLnZhckFyZ0NoaWxkKG5vZGUsIDIpOwogICAgICAgICAgICAgU3RvcmFnZU9wZXJhbmQgc3Rv
cmFnZTsKICAgICAgICAgICAgIGlmIChzdG9yYWdlRWRnZSkKQEAgLTE1OTM4LDcgKzE1OTUwLDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUVudW1lcmF0b3JHZXRCeVZhbChOb2RlKiBu
b2RlKQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBub3RGYXN0TmFtZWRDYXNlcy5saW5r
KCZtX2ppdCk7Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIocmVzdWx0UmVncywg
RGF0YUZvcm1hdEpTKTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6OnR1cGxlIHsgcmVzdWx0UmVn
cywgRGF0YUZvcm1hdEpTLCBDYW5Vc2VGbHVzaDo6Tm8gfTsKICAgICAgICAgfSkpOwogCiAgICAg
ICAgIC8vIFdlIHJlbHkgb24gY29tcGlsZUdldEJ5VmFsIHRvIGNhbGwganNWYWx1ZVJlc3VsdCBm
b3IgdXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgK
aW5kZXggMDQ5YmNmN2U2ZmRiNzkyYWQ2YTU4OTEwN2E4ZDFhMjcxYzFlMTkwMi4uYzE4M2UxODMz
ZDU2OWJjMTc1NTVlOGY3NzgwMTBmMmRlMTVjNDViZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMTM1OCwxNCArMTM1OCwxNSBAQCBjbGFz
cyBTcGVjdWxhdGl2ZUpJVCB7CiAgICAgfQogICAgIAogICAgIC8vIFdlIHVzZSBhIHNjb3BlZExh
bWJkYSB0byBwbGFjYXRlIHJlZ2lzdGVyIGFsbG9jYXRpb24gdmFsaWRhdGlvbi4KLSAgICB2b2lk
IGNvbXBpbGVHZXRCeVZhbChOb2RlKiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNW
YWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZp
eCk7CisgICAgZW51bSBjbGFzcyBDYW5Vc2VGbHVzaCB7IFllcywgTm8gfTsKKyAgICB2b2lkIGNv
bXBpbGVHZXRCeVZhbChOb2RlKiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1
ZVJlZ3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1h
dCk+JiBwcmVmaXgpOwogCiAgICAgdm9pZCBjb21waWxlR2V0Q2hhckNvZGVBdChOb2RlKik7Ci0g
ICAgdm9pZCBjb21waWxlR2V0QnlWYWxPblN0cmluZyhOb2RlKiwgY29uc3QgU2NvcGVkTGFtYmRh
PHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJlZmVycmVk
Rm9ybWF0KT4mIHByZWZpeCk7CisgICAgdm9pZCBjb21waWxlR2V0QnlWYWxPblN0cmluZyhOb2Rl
KiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQs
IENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOwogICAg
IHZvaWQgY29tcGlsZUZyb21DaGFyQ29kZShOb2RlKik7IAogCi0gICAgdm9pZCBjb21waWxlR2V0
QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyhOb2RlKiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVw
bGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4m
IHByZWZpeCk7Ci0gICAgdm9pZCBjb21waWxlR2V0QnlWYWxPblNjb3BlZEFyZ3VtZW50cyhOb2Rl
KiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+
KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CisgICAgdm9pZCBjb21waWxl
R2V0QnlWYWxPbkRpcmVjdEFyZ3VtZW50cyhOb2RlKiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6
dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNoPihEYXRhRm9ybWF0IHBy
ZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpOworICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsT25TY29w
ZWRBcmd1bWVudHMoTm9kZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVS
ZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQp
PiYgcHJlZml4KTsKIAogICAgIHZvaWQgY29tcGlsZUdldFByaXZhdGVOYW1lKE5vZGUqKTsKICAg
ICB2b2lkIGNvbXBpbGVHZXRQcml2YXRlTmFtZUJ5SWQoTm9kZSopOwpAQCAtMTQ0NSwxMiArMTQ0
NiwxMiBAQCBjbGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAjaWYgVVNFKExBUkdFX1RZUEVEX0FSUkFZ
UykKICAgICB2b2lkIGNvbXBpbGVHZXRUeXBlZEFycmF5Qnl0ZU9mZnNldEFzSW50NTIoTm9kZSop
OwogI2VuZGlmCi0gICAgdm9pZCBjb21waWxlR2V0QnlWYWxPbkludFR5cGVkQXJyYXkoTm9kZSos
IFR5cGVkQXJyYXlUeXBlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVn
cywgRGF0YUZvcm1hdD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KTsKKyAg
ICB2b2lkIGNvbXBpbGVHZXRCeVZhbE9uSW50VHlwZWRBcnJheShOb2RlKiwgVHlwZWRBcnJheVR5
cGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0
LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KTsKICAg
ICB2b2lkIGNvbXBpbGVQdXRCeVZhbEZvckludFR5cGVkQXJyYXkoR1BSUmVnIGJhc2UsIEdQUlJl
ZyBwcm9wZXJ0eSwgTm9kZSosIFR5cGVkQXJyYXlUeXBlKTsKLSAgICB2b2lkIGNvbXBpbGVHZXRC
eVZhbE9uRmxvYXRUeXBlZEFycmF5KE5vZGUqLCBUeXBlZEFycmF5VHlwZSwgY29uc3QgU2NvcGVk
TGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJl
ZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7CisgICAgdm9pZCBjb21waWxlR2V0QnlWYWxPbkZsb2F0
VHlwZWRBcnJheShOb2RlKiwgVHlwZWRBcnJheVR5cGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6
OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBw
cmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KTsKICAgICB2b2lkIGNvbXBpbGVQdXRCeVZhbEZvckZs
b2F0VHlwZWRBcnJheShHUFJSZWcgYmFzZSwgR1BSUmVnIHByb3BlcnR5LCBOb2RlKiwgVHlwZWRB
cnJheVR5cGUpOwotICAgIHZvaWQgY29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN0cmluZyhO
b2RlKiwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3Jt
YXQ+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4mIHByZWZpeCk7Ci0gICAgdm9pZCBjb21w
aWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3ltYm9sKE5vZGUqLCBjb25zdCBTY29wZWRMYW1iZGE8
c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRG
b3JtYXQpPiYgcHJlZml4KTsKKyAgICB2b2lkIGNvbXBpbGVHZXRCeVZhbEZvck9iamVjdFdpdGhT
dHJpbmcoTm9kZSosIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBE
YXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJl
Zml4KTsKKyAgICB2b2lkIGNvbXBpbGVHZXRCeVZhbEZvck9iamVjdFdpdGhTeW1ib2woTm9kZSos
IGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBD
YW5Vc2VGbHVzaD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KTsKICAgICB2
b2lkIGNvbXBpbGVQdXRCeVZhbEZvckNlbGxXaXRoU3RyaW5nKE5vZGUqLCBFZGdlJiBjaGlsZDEs
IEVkZ2UmIGNoaWxkMiwgRWRnZSYgY2hpbGQzKTsKICAgICB2b2lkIGNvbXBpbGVQdXRCeVZhbEZv
ckNlbGxXaXRoU3ltYm9sKE5vZGUqLCBFZGdlJiBjaGlsZDEsIEVkZ2UmIGNoaWxkMiwgRWRnZSYg
Y2hpbGQzKTsKICAgICB2b2lkIGNvbXBpbGVHZXRCeVZhbFdpdGhUaGlzKE5vZGUqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
CmluZGV4IDA3NDU2YTc0MjFhODEzMWE4YzBhNjczYjE1YjFmZGE2YmM2YmFlMWEuLjE4ODY2OTgy
YjU2NjI4ZjJiMWFlZDRiOTUwZDgyYzE1ZWE0MzUzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtMTgxNSw3ICsx
ODE1LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNvbnRpZ3VvdXNQdXRCeVZhbChO
b2RlKiBub2RlLCBCYXNlT3BlcmFuZFR5cGUmIGJhc2UKICAgICBub1Jlc3VsdChub2RlLCBVc2VD
aGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOyAgICAKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxl
PEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBw
cmVmaXgpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwg
Y29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENh
blVzZUZsdXNoPihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+JiBwcmVmaXgpCiB7CiAgICAg
c3dpdGNoIChub2RlLT5hcnJheU1vZGUoKS50eXBlKCkpIHsKICAgICBjYXNlIEFycmF5OjpBbnlU
eXBlZEFycmF5OgpAQCAtMTgzMyw3ICsxODMzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEoK
ICAgICAgICAgR1BSUmVnIGluZGV4R1BSID0gaW5kZXguZ3ByKCk7CiAKICAgICAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVnczsKLSAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25v
cmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CisgICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3Ms
IHN0ZDo6aWdub3JlLCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKIAogICAg
ICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91bmRzLCBKU1ZhbHVlUmVncygpLCBub2RlLAog
ICAgICAgICAgICAgbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Okxlc3NUaGFuLCBpbmRl
eEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigwKSkpOwpAQCAtMTg2MywxMCArMTg2
MywxNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwg
Y29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SgogICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mg
cHJvcGVydHlSZWdzID0gcHJvcGVydHkuanNWYWx1ZVJlZ3MoKTsKIAogICAgICAgICAgICAgSlNW
YWx1ZVJlZ3MgcmVzdWx0UmVnczsKLSAgICAgICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0
ZDo6aWdub3JlKSA9IHByZWZpeChEYXRhRm9ybWF0SlMpOworICAgICAgICAgICAgQ2FuVXNlRmx1
c2ggY2FuVXNlRmx1c2ggPSBDYW5Vc2VGbHVzaDo6WWVzOworICAgICAgICAgICAgc3RkOjp0aWUo
cmVzdWx0UmVncywgc3RkOjppZ25vcmUsIGNhblVzZUZsdXNoKSA9IHByZWZpeChEYXRhRm9ybWF0
SlMpOwogCi0gICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygpOworICAgICAgICAgICAgaWYgKGNh
blVzZUZsdXNoID09IENhblVzZUZsdXNoOjpObykKKyAgICAgICAgICAgICAgICBzaWxlbnRTcGls
bEFsbFJlZ2lzdGVycyhyZXN1bHRSZWdzKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRp
b25HZXRCeVZhbCwgcmVzdWx0UmVncywgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFw
aCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VH
UFIsIHByb3BlcnR5UmVncyk7CisgICAgICAgICAgICBpZiAoY2FuVXNlRmx1c2ggPT0gQ2FuVXNl
Rmx1c2g6Ok5vKQorICAgICAgICAgICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMoKTsKICAg
ICAgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CiAKICAgICAgICAgICAgIGpzVmFsdWVS
ZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CkBAIC0xODc5LDcgKzE4ODUsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRh
PHN0ZDo6dHVwbGU8SgogCiAgICAgICAgIGF1dG8gZ2VuZXJhdGUgPSBbJl0gKEpTVmFsdWVSZWdz
IGJhc2VSZWdzKSB7CiAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwotICAgICAg
ICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3Jt
YXRKUyk7CisgICAgICAgICAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBzdGQ6Omlnbm9yZSwgc3Rk
OjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CiAKICAgICAgICAgICAgIENvZGVPcmln
aW4gY29kZU9yaWdpbiA9IG5vZGUtPm9yaWdpbi5zZW1hbnRpYzsKICAgICAgICAgICAgIENhbGxT
aXRlSW5kZXggY2FsbFNpdGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0ZUFuZEdlbmVyYXRlRXhjZXB0
aW9uSGFuZGxpbmdPU1JFeGl0SWZOZWVkZWQoY29kZU9yaWdpbiwgbV9zdHJlYW0tPnNpemUoKSk7
CkBAIC0xOTQ2LDcgKzE5NTIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlW
YWwoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SgogCiAgICAgICAg
ICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwogICAgICAgICAgICAgRGF0YUZvcm1hdCBmb3Jt
YXQ7Ci0gICAgICAgICAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBmb3JtYXQpID0gcHJlZml4KG5v
ZGUtPmFycmF5TW9kZSgpLnR5cGUoKSA9PSBBcnJheTo6SW50MzIgPyBEYXRhRm9ybWF0SW50MzIg
OiBEYXRhRm9ybWF0SlMpOworICAgICAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgZm9ybWF0
LCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgobm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpID09IEFycmF5
OjpJbnQzMiA/IERhdGFGb3JtYXRJbnQzMiA6IERhdGFGb3JtYXRKUyk7CiAKICAgICAgICAgICAg
IHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdzKCksIG51bGxwdHIsIG1f
aml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVi
bGljTGVuZ3RoKCkpKSk7CiAKQEAgLTIwMDMsNyArMjAwOSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0
dXBsZTxKCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0
UmVnczsKLSAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUpID0gcHJlZml4
KERhdGFGb3JtYXRKUyk7CisgICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3Jl
LCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKIAogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwogCkBAIC0yMDM2LDcgKzIwNDIsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwgY29uc3QgU2NvcGVk
TGFtYmRhPHN0ZDo6dHVwbGU8SgogCiAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdz
OwogICAgICAgICAgICAgRGF0YUZvcm1hdCBmb3JtYXQ7Ci0gICAgICAgICAgICBzdGQ6OnRpZShy
ZXN1bHRSZWdzLCBmb3JtYXQpID0gcHJlZml4KERhdGFGb3JtYXREb3VibGUpOworICAgICAgICAg
ICAgc3RkOjp0aWUocmVzdWx0UmVncywgZm9ybWF0LCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0
YUZvcm1hdERvdWJsZSk7CiAKICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3Vu
ZHMsIEpTVmFsdWVSZWdzKCksIG51bGxwdHIsIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVy
OjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9y
YWdlUmVnLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKSk7CiAKQEAgLTIwNjgs
NyArMjA3NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBu
b2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAgICAgICAgIEZQUlJlZyB0ZW1w
UmVnID0gdGVtcC5mcHIoKTsKIAogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwotICAg
ICAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1h
dEpTKTsKKyAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUsIHN0ZDo6aWdu
b3JlKSA9IHByZWZpeChEYXRhRm9ybWF0SlMpOwogCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpK
dW1wTGlzdCBzbG93Q2FzZXM7CiAKQEAgLTIwOTgsNyArMjEwNCw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3Rk
Ojp0dXBsZTxKCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBKU1ZhbHVl
UmVncyByZXN1bHRSZWdzOwotICAgICAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjpp
Z25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CisgICAgICAgICAgICBzdGQ6OnRpZShyZXN1
bHRSZWdzLCBzdGQ6Omlnbm9yZSwgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7
CiAKICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soT3V0T2ZCb3VuZHMsIEpTVmFsdWVSZWdz
KCksIG51bGxwdHIsIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWws
IHByb3BlcnR5UmVnLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlUmVnLCBBcnJheVN0
b3JhZ2U6OnZlY3Rvckxlbmd0aE9mZnNldCgpKSkpOwogCkBAIC0yMTIyLDcgKzIxMjgsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwoTm9kZSogbm9kZSwgY29uc3QgU2Nv
cGVkTGFtYmRhPHN0ZDo6dHVwbGU8SgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIEpT
VmFsdWVSZWdzIHJlc3VsdFJlZ3M7Ci0gICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6
aWdub3JlKSA9IHByZWZpeChEYXRhRm9ybWF0SlMpOworICAgICAgICBzdGQ6OnRpZShyZXN1bHRS
ZWdzLCBzdGQ6Omlnbm9yZSwgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CiAK
ICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgb3V0T2ZCb3VuZHMgPSBtX2ppdC5icmFuY2gzMigK
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLApA
QCAtMjU5NCwxMCArMjYwMCwxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUq
IG5vZGUpCiAgICAgY2FzZSBTdHJpbmdDaGFyQXQ6IHsKICAgICAgICAgLy8gUmVsaWVzIG9uIFN0
cmluZ0NoYXJBdCBub2RlIGhhdmluZyBzYW1lIGJhc2ljIGxheW91dCBhcyBHZXRCeVZhbAogICAg
ICAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQ7Ci0gICAgICAgIGNvbXBpbGVHZXRCeVZh
bE9uU3RyaW5nKG5vZGUsIHNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRh
Rm9ybWF0PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+KFsmXSAoRGF0YUZvcm1hdCBwcmVm
ZXJyZWRGb3JtYXQpIHsKKyAgICAgICAgY29tcGlsZUdldEJ5VmFsT25TdHJpbmcobm9kZSwgc2Nv
cGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNo
PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+KFsmXSAoRGF0YUZvcm1hdCBwcmVmZXJyZWRG
b3JtYXQpIHsKICAgICAgICAgICAgIHJlc3VsdCA9IEpTVmFsdWVSZWdzVGVtcG9yYXJ5KHRoaXMp
OwogICAgICAgICAgICAgQVNTRVJUKHByZWZlcnJlZEZvcm1hdCA9PSBEYXRhRm9ybWF0SlMgfHwg
cHJlZmVycmVkRm9ybWF0ID09IERhdGFGb3JtYXRDZWxsKTsKLSAgICAgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfcGFpcihyZXN1bHQucmVncygpLCBwcmVmZXJyZWRGb3JtYXQpOworICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6dHVwbGUgeyByZXN1bHQucmVncygpLCBwcmVmZXJyZWRGb3JtYXQsIENh
blVzZUZsdXNoOjpZZXMgfTsKICAgICAgICAgfSkpOwogICAgICAgICBicmVhazsKICAgICB9CkBA
IC0yNjM2LDcgKzI2NDIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5v
ZGUpCiAgICAgY2FzZSBHZXRCeVZhbDogewogICAgICAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSBq
c1ZhbHVlUmVzdWx0OwogICAgICAgICBHUFJUZW1wb3Jhcnkgb25lUmVnUmVzdWx0OwotICAgICAg
ICBjb21waWxlR2V0QnlWYWwobm9kZSwgc2NvcGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJl
Z3MsIERhdGFGb3JtYXQ+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4oWyZdIChEYXRhRm9y
bWF0IHByZWZlcnJlZEZvcm1hdCkgeworICAgICAgICBjb21waWxlR2V0QnlWYWwobm9kZSwgc2Nv
cGVkTGFtYmRhPHN0ZDo6dHVwbGU8SlNWYWx1ZVJlZ3MsIERhdGFGb3JtYXQsIENhblVzZUZsdXNo
PihEYXRhRm9ybWF0IHByZWZlcnJlZEZvcm1hdCk+KFsmXSAoRGF0YUZvcm1hdCBwcmVmZXJyZWRG
b3JtYXQpIHsKICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3M7CiAgICAgICAgICAg
ICBzd2l0Y2ggKHByZWZlcnJlZEZvcm1hdCkgewogICAgICAgICAgICAgY2FzZSBEYXRhRm9ybWF0
RG91YmxlOgpAQCAtMjY1Myw3ICsyNjU5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZShOb2RlKiBub2RlKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfTsKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihyZXN1bHRSZWdz
LCBwcmVmZXJyZWRGb3JtYXQpOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6dHVwbGUgeyByZXN1
bHRSZWdzLCBwcmVmZXJyZWRGb3JtYXQsIENhblVzZUZsdXNoOjpZZXMgfTsKICAgICAgICAgfSkp
OwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAxNGE1MDc2MWZkOWE2NTJjM2YwZTM5MTBh
YTY5ZWVlMTEzZmYxM2RjLi4yMjY2YzQ2MDc5MDc3NDRhZGFhZDRmZjA1OWI5Mjc4MjBhYzA3ZDEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKQEAgLTIzMzAsNyArMjMzMCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRCcmFu
Y2goTm9kZSogbm9kZSkKICAgICB9CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVH
ZXRCeVZhbChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVl
UmVncywgRGF0YUZvcm1hdD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQor
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNvbnN0IFNj
b3BlZExhbWJkYTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVz
aD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPiYgcHJlZml4KQogewogICAgIHN3aXRjaCAo
bm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7CiAgICAgY2FzZSBBcnJheTo6QW55VHlwZWRBcnJh
eToKQEAgLTIzNDUsNyArMjM0NSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRC
eVZhbChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAgICAgICAg
IEdQUlJlZyBpbmRleEdQUiA9IGluZGV4LmdwcigpOwogCiAgICAgICAgIEpTVmFsdWVSZWdzIHJl
c3VsdFJlZ3M7Ci0gICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlKSA9IHBy
ZWZpeChEYXRhRm9ybWF0SlMpOworICAgICAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBzdGQ6Omln
bm9yZSwgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CiAKICAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbm9kZSwKICAgICAgICAg
ICAgIG1faml0LmJyYW5jaDMyKE1hY3JvQXNzZW1ibGVyOjpMZXNzVGhhbiwgaW5kZXhHUFIsIE1h
Y3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMCkpKTsKQEAgLTIzNzcsMTAgKzIzNzcsMTYgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNvbnN0IFNj
b3BlZExhbWJkYTxzdGQ6OnR1cGxlPEoKICAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eUdQUiA9
IHByb3BlcnR5LmdwcigpOwogCiAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwot
ICAgICAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUpID0gcHJlZml4KERh
dGFGb3JtYXRKUyk7CisgICAgICAgICAgICBDYW5Vc2VGbHVzaCBjYW5Vc2VGbHVzaCA9IENhblVz
ZUZsdXNoOjpZZXM7CisgICAgICAgICAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBzdGQ6Omlnbm9y
ZSwgY2FuVXNlRmx1c2gpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CiAKLSAgICAgICAgICAgIGZs
dXNoUmVnaXN0ZXJzKCk7CisgICAgICAgICAgICBpZiAoY2FuVXNlRmx1c2ggPT0gQ2FuVXNlRmx1
c2g6Ok5vKQorICAgICAgICAgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdFJl
Z3MpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7
CiAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkdldEJ5VmFsLCByZXN1bHRSZWdz
LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVj
dEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZUdQUiwgcHJvcGVydHlHUFIpOworICAg
ICAgICAgICAgaWYgKGNhblVzZUZsdXNoID09IENhblVzZUZsdXNoOjpObykKKyAgICAgICAgICAg
ICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKCk7CiAgICAgICAgICAgICBtX2ppdC5leGNlcHRp
b25DaGVjaygpOwogCiAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUp
OwpAQCAtMjQwMyw3ICsyNDA5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5
VmFsKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEoKICAgICAgICAg
c3BlY3VsYXRlKG5vZGUsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpOwogCiAgICAgICAg
IEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3M7Ci0gICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0
ZDo6aWdub3JlKSA9IHByZWZpeChEYXRhRm9ybWF0SlMpOworICAgICAgICBzdGQ6OnRpZShyZXN1
bHRSZWdzLCBzdGQ6Omlnbm9yZSwgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7
CiAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHRSZWdzLmdwcigpOwogCiAgICAgICAg
IENvZGVPcmlnaW4gY29kZU9yaWdpbiA9IG5vZGUtPm9yaWdpbi5zZW1hbnRpYzsKQEAgLTI0NjEs
NyArMjQ2Nyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBu
b2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAKICAgICAgICAgICAgIEpTVmFs
dWVSZWdzIHJlc3VsdFJlZ3M7CiAgICAgICAgICAgICBEYXRhRm9ybWF0IGZvcm1hdDsKLSAgICAg
ICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIGZvcm1hdCkgPSBwcmVmaXgobm9kZS0+YXJyYXlN
b2RlKCkudHlwZSgpID09IEFycmF5OjpJbnQzMiA/IERhdGFGb3JtYXRKU0ludDMyIDogRGF0YUZv
cm1hdEpTKTsKKyAgICAgICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIGZvcm1hdCwgc3RkOjpp
Z25vcmUpID0gcHJlZml4KG5vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSA9PSBBcnJheTo6SW50MzIg
PyBEYXRhRm9ybWF0SlNJbnQzMiA6IERhdGFGb3JtYXRKUyk7CiAgICAgICAgICAgICBHUFJSZWcg
cmVzdWx0ID0gcmVzdWx0UmVncy5ncHIoKTsKIAogICAgICAgICAgICAgc3BlY3VsYXRpb25DaGVj
ayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwgbV9qaXQuYnJhbmNoMzIoTWFj
cm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpKTsK
QEAgLTI0OTMsNyArMjQ5OSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZh
bChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKLSAgICAgICAgc3Rk
Ojp0aWUocmVzdWx0UmVncywgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7Cisg
ICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlLCBzdGQ6Omlnbm9yZSkgPSBw
cmVmaXgoRGF0YUZvcm1hdEpTKTsKICAgICAgICAgR1BSUmVnIHJlc3VsdFJlZyA9IHJlc3VsdFJl
Z3MuZ3ByKCk7CiAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsK
QEAgLTI1MzcsNyArMjU0Myw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZh
bChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAKICAgICAgICAg
ICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3M7CiAgICAgICAgICAgICBEYXRhRm9ybWF0IGZvcm1h
dDsKLSAgICAgICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIGZvcm1hdCkgPSBwcmVmaXgoRGF0
YUZvcm1hdERvdWJsZSk7CisgICAgICAgICAgICBzdGQ6OnRpZShyZXN1bHRSZWdzLCBmb3JtYXQs
IHN0ZDo6aWdub3JlKSA9IHByZWZpeChEYXRhRm9ybWF0RG91YmxlKTsKIAogICAgICAgICAgICAg
c3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5kcywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwgbV9q
aXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsIE1h
Y3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2VSZWcsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJs
aWNMZW5ndGgoKSkpKTsKIApAQCAtMjU3Miw3ICsyNTc4LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUsIGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1
cGxlPEoKIAogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzOwogICAgICAgICBEYXRhRm9y
bWF0IGZvcm1hdDsKLSAgICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgZm9ybWF0KSA9IHByZWZp
eChyZXN1bHRJc1VuYm94ZWQgPyBEYXRhRm9ybWF0RG91YmxlIDogRGF0YUZvcm1hdEpTKTsKKyAg
ICAgICAgc3RkOjp0aWUocmVzdWx0UmVncywgZm9ybWF0LCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgo
cmVzdWx0SXNVbmJveGVkID8gRGF0YUZvcm1hdERvdWJsZSA6IERhdGFGb3JtYXRKUyk7CiAKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKIApAQCAtMjYyNSw3ICsy
NjMxLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKE5vZGUqIG5vZGUs
IGNvbnN0IFNjb3BlZExhbWJkYTxzdGQ6OnR1cGxlPEoKICAgICAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3M7Ci0gICAgICAgICAgICBzdGQ6
OnRpZShyZXN1bHRSZWdzLCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKKyAg
ICAgICAgICAgIHN0ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlLCBzdGQ6Omlnbm9yZSkg
PSBwcmVmaXgoRGF0YUZvcm1hdEpTKTsKICAgICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSBy
ZXN1bHRSZWdzLmdwcigpOwogCiAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE91dE9mQm91
bmRzLCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxl
cjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3Rv
cmFnZVJlZywgQXJyYXlTdG9yYWdlOjp2ZWN0b3JMZW5ndGhPZmZzZXQoKSkpKTsKQEAgLTI2NTAs
NyArMjY1Niw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBu
b2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKLSAgICAgICAgc3RkOjp0aWUocmVz
dWx0UmVncywgc3RkOjppZ25vcmUpID0gcHJlZml4KERhdGFGb3JtYXRKUyk7CisgICAgICAgIHN0
ZDo6dGllKHJlc3VsdFJlZ3MsIHN0ZDo6aWdub3JlLCBzdGQ6Omlnbm9yZSkgPSBwcmVmaXgoRGF0
YUZvcm1hdEpTKTsKICAgICAgICAgR1BSUmVnIHJlc3VsdFJlZyA9IHJlc3VsdFJlZ3MuZ3ByKCk7
CiAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKQEAgLTMyNDIs
MTAgKzMyNDgsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQog
ICAgIGNhc2UgU3RyaW5nQ2hhckF0OiB7CiAgICAgICAgIC8vIFJlbGllcyBvbiBTdHJpbmdDaGFy
QXQgbm9kZSBoYXZpbmcgc2FtZSBiYXNpYyBsYXlvdXQgYXMgR2V0QnlWYWwKICAgICAgICAgSlNW
YWx1ZVJlZ3NUZW1wb3JhcnkgcmVzdWx0OwotICAgICAgICBjb21waWxlR2V0QnlWYWxPblN0cmlu
Zyhub2RlLCBzY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdD4o
RGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPihbJl0gKERhdGFGb3JtYXQgcHJlZmVycmVkRm9y
bWF0KSB7CisgICAgICAgIGNvbXBpbGVHZXRCeVZhbE9uU3RyaW5nKG5vZGUsIHNjb3BlZExhbWJk
YTxzdGQ6OnR1cGxlPEpTVmFsdWVSZWdzLCBEYXRhRm9ybWF0LCBDYW5Vc2VGbHVzaD4oRGF0YUZv
cm1hdCBwcmVmZXJyZWRGb3JtYXQpPihbJl0gKERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KSB7
CiAgICAgICAgICAgICByZXN1bHQgPSBKU1ZhbHVlUmVnc1RlbXBvcmFyeSh0aGlzKTsKICAgICAg
ICAgICAgIEFTU0VSVChwcmVmZXJyZWRGb3JtYXQgPT0gRGF0YUZvcm1hdEpTIHx8IHByZWZlcnJl
ZEZvcm1hdCA9PSBEYXRhRm9ybWF0Q2VsbCk7Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjptYWtl
X3BhaXIocmVzdWx0LnJlZ3MoKSwgcHJlZmVycmVkRm9ybWF0KTsKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6OnR1cGxlIHsgcmVzdWx0LnJlZ3MoKSwgcHJlZmVycmVkRm9ybWF0LCBDYW5Vc2VGbHVz
aDo6WWVzIH07CiAgICAgICAgIH0pKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMzI4NCw3
ICszMjkwLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogCiAg
ICAgY2FzZSBHZXRCeVZhbDogewogICAgICAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQ7
Ci0gICAgICAgIGNvbXBpbGVHZXRCeVZhbChub2RlLCBzY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxK
U1ZhbHVlUmVncywgRGF0YUZvcm1hdD4oRGF0YUZvcm1hdCBwcmVmZXJyZWRGb3JtYXQpPihbJl0g
KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KSB7CisgICAgICAgIGNvbXBpbGVHZXRCeVZhbChu
b2RlLCBzY29wZWRMYW1iZGE8c3RkOjp0dXBsZTxKU1ZhbHVlUmVncywgRGF0YUZvcm1hdCwgQ2Fu
VXNlRmx1c2g+KERhdGFGb3JtYXQgcHJlZmVycmVkRm9ybWF0KT4oWyZdIChEYXRhRm9ybWF0IHBy
ZWZlcnJlZEZvcm1hdCkgewogICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVnczsKICAg
ICAgICAgICAgIHN3aXRjaCAocHJlZmVycmVkRm9ybWF0KSB7CiAgICAgICAgICAgICBjYXNlIERh
dGFGb3JtYXREb3VibGU6CkBAIC0zMjk1LDcgKzMzMDEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9OwotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKHJl
c3VsdFJlZ3MsIHByZWZlcnJlZEZvcm1hdCk7CisgICAgICAgICAgICByZXR1cm4gc3RkOjp0dXBs
ZSB7IHJlc3VsdFJlZ3MsIHByZWZlcnJlZEZvcm1hdCwgQ2FuVXNlRmx1c2g6OlllcyB9OwogICAg
ICAgICB9KSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hh
bmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2QxNjNmNmM2MzRmYjVkNjAwNjUxNzk0
NmJlYTIwMzBmOTYwZDFkYi4uODMxM2JhYzBiZDI2OGY3NGUyMjVmZWUxOTc0YTJiYWYwZTBjODQw
NSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAyMS0xMC0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBw
bGUuY29tPgorCisgICAgICAgIFtKU0NdIERvbid0IGJyYW5jaCBhcm91bmQgcmVnaXN0ZXIgYWxs
b2NhdGlvbiBpbiBERkcgZW51bWVyYXRvciBnZXQgYnkgdmFsCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIyNjAKKyAgICAgICAgcmRhcjovLzg0NTQ0
NDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBz
dHJlc3MvZG9udC1icmFuY2gtYXJvdW5kLXJlZ2FsbG9jLWVudW1lcmF0b3ItZ2V0LWJ5LXZhbC1m
bG9hdC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorCiAyMDIxLTEwLTI0ICBBbGV4ZXkgU2h2
YXlrYSAgPGFzaHZheWthQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRlcm5hbEZ1bmN0aW9uOjpj
cmVhdGVTdWJjbGFzc1N0cnVjdHVyZSgpIHNob3VsZCB1c2UgcHJvdG90eXBlJ3MgZ2xvYmFsIG9i
amVjdApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvZG9udC1icmFuY2gtYXJvdW5kLXJlZ2Fs
bG9jLWVudW1lcmF0b3ItZ2V0LWJ5LXZhbC1mbG9hdC5qcyBiL0pTVGVzdHMvc3RyZXNzL2RvbnQt
YnJhbmNoLWFyb3VuZC1yZWdhbGxvYy1lbnVtZXJhdG9yLWdldC1ieS12YWwtZmxvYXQuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjc3NjY3NTE3MTk5YzRkMWNmNTgzNTI2ZThmMTU4YTQ0ZDFjYTEzNwotLS0gL2Rl
di9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2RvbnQtYnJhbmNoLWFyb3VuZC1yZWdhbGxvYy1l
bnVtZXJhdG9yLWdldC1ieS12YWwtZmxvYXQuanMKQEAgLTAsMCArMSwxMCBAQAorZnVuY3Rpb24g
Zm9vKG8pIHsKKyAgZm9yIChsZXQgcCBpbiBvKSB7CisgICAgb1twXTsKKyAgfQorfQorCitmb3Ig
KGxldCBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsKKyAgZm9vKG5ldyBGbG9hdDMyQXJyYXkoKSk7
CisgIGZvbyh7bzogdW5kZWZpbmVkfSk7Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>