<?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>313115</bug_id>
          
          <creation_ts>2026-04-23 01:47:07 -0700</creation_ts>
          <short_desc>REGRESSION(311796@main): Broke JetStream3</short_desc>
          <delta_ts>2026-04-23 01:56:13 -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>
          
          <blocked>312794</blocked>
    
    <blocked>312826</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ccarley2</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2203590</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2026-04-23 01:47:07 -0700</bug_when>
    <thetext>https://commits.webkit.org/311796@main introduced a regression:
Broke JetStream3

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2203593</commentid>
    <comment_count>1</comment_count>
      <attachid>479263</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2026-04-23 01:47:14 -0700</bug_when>
    <thetext>Created attachment 479263
REVERT of 311796@main

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2203597</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2026-04-23 01:55:11 -0700</bug_when>
    <thetext>Committed 311837@main (c63a29174071): &lt;https://commits.webkit.org/311837@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 479263.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2203598</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-04-23 01:56:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/175408797&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479263</attachid>
            <date>2026-04-23 01:47:14 -0700</date>
            <delta_ts>2026-04-23 01:55:12 -0700</delta_ts>
            <desc>REVERT of 311796@main</desc>
            <filename>bug-313115-20260423084713.patch</filename>
            <type>text/plain</type>
            <size>96585</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSA3YWZlYjAwNjA4NjM4NTc1YWZlNWY5ZjY4OWI5N2RhOTVjMDE3M2RkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBUaHUsIDIzIEFwciAyMDI2IDA4OjQ3OjEyICswMDAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIDMxMTc5NkBtYWluIGFuZCAzMTE4MTJAbWFpbi4KIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTMxMTUKCkJyb2tlIEpldFN0cmVh
bTMKClJldmVydGVkIGNoYW5nZXNldHM6CgoiTWVtb3J5NjQgYnVsayBtZW1vcnkgb3BlcmF0aW9u
cyBpbiBPTUcgdGllciIKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMx
Mjc5NApodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy8zMTE3OTZAbWFpbgoKIk1lbW9yeTY0IGF0
b21pYyBvcGVyYXRpb25zIgpodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzEyODI2Cmh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnLzMxMTgxMkBtYWluCi0tLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUUpJVC5jcHAgICAgIHwgIDM2ICstLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUUpJVC5oICAgICAgIHwgIDY3ICsrLS0tCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRSklUNjQuY3BwICAgfCAgIDYgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFKSVQ2NC5oICAgICB8ICAxMSArLQogLi4uL3dh
c20vV2FzbUNvbnN0RXhwckdlbmVyYXRvci5jcHAgICAgICAgICAgIHwgIDEyICstCiAuLi4vSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaCAgfCAgODUgKystLS0tCiAuLi4v
d2FzbS9XYXNtSVBJbnRHZW5lcmF0b3IuY3BwICAgICAgICAgICAgICAgfCAgMjQgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwICAgICB8ICAyMyArLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1lbW9yeS5oICAgICAgIHwgICA0ICstCiAuLi4vd2Fz
bS9XYXNtT01HSVJHZW5lcmF0b3IuY3BwICAgICAgICAgICAgICAgfCAxMDUgKysrLS0tLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwIHwgIDEyICstCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5oICAgfCAgMTIgKy0KIC4uLi93
YXNtL1dhc21PcGVyYXRpb25zSW5saW5lcy5oICAgICAgICAgICAgICB8ICAzOCArLS0KIEpTVGVz
dHMvd2FzbS9zdHJlc3MvbWVtb3J5NjQtYXRvbWljcy5qcyAgICAgICB8IDI2NSArLS0tLS0tLS0t
LS0tLS0tLS0KIEpTVGVzdHMvd2FzbS9zdHJlc3MvbWVtb3J5NjQtYnVsay1tZW1vcnkuanMgICB8
ICAgMiArLQogSlNUZXN0cy93YXNtL3N0cmVzcy9tZW1vcnk2NC1vdmVyZmxvdy5qcyAgICAgIHwg
MjQzIC0tLS0tLS0tLS0tLS0tLS0KIDE2IGZpbGVzIGNoYW5nZWQsIDE1MyBpbnNlcnRpb25zKCsp
LCA3OTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUJCUUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRSklU
LmNwcAppbmRleCBhY2Y2ZDIwNmFmN2EuLjRjZjE4Yjg1YWZmNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUJCUUpJVC5jcHAKQEAgLTEyMTcsMTIgKzEyMTcsOSBAQCBBZGRyZXNz
IEJCUUpJVDo6bWF0ZXJpYWxpemVQb2ludGVyKExvY2F0aW9uIHBvaW50ZXJMb2NhdGlvbiwgdWlu
dDMyX3QgdW9mZnNldCkKIAogLy8gQXRvbWljcwogCi1bW25vZGlzY2FyZF1dIFBhcnRpYWxSZXN1
bHQgQkJRSklUOjphdG9taWNMb2FkKEV4dEF0b21pY09wVHlwZSBsb2FkT3AsIFR5cGUgdmFsdWVU
eXBlLCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0LCB1aW50
NjRfdCB1b2Zmc2V0LCB1aW50OF90IG1lbW9yeUluZGV4KQorW1tub2Rpc2NhcmRdXSBQYXJ0aWFs
UmVzdWx0IEJCUUpJVDo6YXRvbWljTG9hZChFeHRBdG9taWNPcFR5cGUgbG9hZE9wLCBUeXBlIHZh
bHVlVHlwZSwgRXhwcmVzc2lvblR5cGUgcG9pbnRlciwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCwg
dWludDMyX3QgdW9mZnNldCwgdWludDhfdCBtZW1vcnlJbmRleCkKIHsKLSAgICBjb25zdCBib29s
IG92ZXJmbG93ID0gbV9pbmZvLm1lbW9yeShtZW1vcnlJbmRleCkuaXNNZW1vcnk2NCgpCi0gICAg
ICAgID8gc3VtT3ZlcmZsb3dzPHVpbnQ2NF90Pih1b2Zmc2V0LCBzaXplT2ZBdG9taWNPcE1lbW9y
eUFjY2Vzcyhsb2FkT3ApKQotICAgICAgICA6IHN1bU92ZXJmbG93czx1aW50MzJfdD4odW9mZnNl
dCwgc2l6ZU9mQXRvbWljT3BNZW1vcnlBY2Nlc3MobG9hZE9wKSk7Ci0gICAgaWYgKG92ZXJmbG93
KSBbW3VubGlrZWx5XV0geworICAgIGlmIChzdW1PdmVyZmxvd3M8dWludDMyX3Q+KHVvZmZzZXQs
IHNpemVPZkF0b21pY09wTWVtb3J5QWNjZXNzKGxvYWRPcCkpKSBbW3VubGlrZWx5XV0gewogICAg
ICAgICAvLyBGSVhNRTogU2FtZSBpc3N1ZSBhcyBpbiBBaXJJUkdlbmVyYXRvcjo6bG9hZCgpOiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2NDM1CiAgICAgICAgIGVt
aXRUaHJvd0V4Y2VwdGlvbihFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5kc01lbW9yeUFjY2Vzcyk7
CiAgICAgICAgIGNvbnN1bWUocG9pbnRlcik7CkBAIC0xMjM1LDEzICsxMjMyLDEwIEBAIEFkZHJl
c3MgQkJRSklUOjptYXRlcmlhbGl6ZVBvaW50ZXIoTG9jYXRpb24gcG9pbnRlckxvY2F0aW9uLCB1
aW50MzJfdCB1b2Zmc2V0KQogICAgIHJldHVybiB7IH07CiB9CiAKLVtbbm9kaXNjYXJkXV0gUGFy
dGlhbFJlc3VsdCBCQlFKSVQ6OmF0b21pY1N0b3JlKEV4dEF0b21pY09wVHlwZSBzdG9yZU9wLCBU
eXBlIHZhbHVlVHlwZSwgRXhwcmVzc2lvblR5cGUgcG9pbnRlciwgRXhwcmVzc2lvblR5cGUgdmFs
dWUsIHVpbnQ2NF90IHVvZmZzZXQsIHVpbnQ4X3QgbWVtb3J5SW5kZXgpCitbW25vZGlzY2FyZF1d
IFBhcnRpYWxSZXN1bHQgQkJRSklUOjphdG9taWNTdG9yZShFeHRBdG9taWNPcFR5cGUgc3RvcmVP
cCwgVHlwZSB2YWx1ZVR5cGUsIEV4cHJlc3Npb25UeXBlIHBvaW50ZXIsIEV4cHJlc3Npb25UeXBl
IHZhbHVlLCB1aW50MzJfdCB1b2Zmc2V0LCB1aW50OF90IG1lbW9yeUluZGV4KQogewotICAgIGNv
bnN0IGJvb2wgb3ZlcmZsb3cgPSBtX2luZm8ubWVtb3J5KG1lbW9yeUluZGV4KS5pc01lbW9yeTY0
KCkKLSAgICAgICAgPyBzdW1PdmVyZmxvd3M8dWludDY0X3Q+KHVvZmZzZXQsIHNpemVPZkF0b21p
Y09wTWVtb3J5QWNjZXNzKHN0b3JlT3ApKQotICAgICAgICA6IHN1bU92ZXJmbG93czx1aW50MzJf
dD4odW9mZnNldCwgc2l6ZU9mQXRvbWljT3BNZW1vcnlBY2Nlc3Moc3RvcmVPcCkpOwogICAgIExv
Y2F0aW9uIHZhbHVlTG9jYXRpb24gPSBsb2NhdGlvbk9mKHZhbHVlKTsKLSAgICBpZiAob3ZlcmZs
b3cpIFtbdW5saWtlbHldXSB7CisgICAgaWYgKHN1bU92ZXJmbG93czx1aW50MzJfdD4odW9mZnNl
dCwgc2l6ZU9mQXRvbWljT3BNZW1vcnlBY2Nlc3Moc3RvcmVPcCkpKSBbW3VubGlrZWx5XV0gewog
ICAgICAgICAvLyBGSVhNRTogU2FtZSBpc3N1ZSBhcyBpbiBBaXJJUkdlbmVyYXRvcjo6bG9hZCgp
OiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2NDM1CiAgICAgICAg
IGVtaXRUaHJvd0V4Y2VwdGlvbihFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5kc01lbW9yeUFjY2Vz
cyk7CiAgICAgICAgIGNvbnN1bWUocG9pbnRlcik7CkBAIC0xMjU0LDEzICsxMjQ4LDEwIEBAIEFk
ZHJlc3MgQkJRSklUOjptYXRlcmlhbGl6ZVBvaW50ZXIoTG9jYXRpb24gcG9pbnRlckxvY2F0aW9u
LCB1aW50MzJfdCB1b2Zmc2V0KQogICAgIHJldHVybiB7IH07CiB9CiAKLVtbbm9kaXNjYXJkXV0g
UGFydGlhbFJlc3VsdCBCQlFKSVQ6OmF0b21pY0JpbmFyeVJNVyhFeHRBdG9taWNPcFR5cGUgb3As
IFR5cGUgdmFsdWVUeXBlLCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSB2
YWx1ZSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCwgdWludDY0X3QgdW9mZnNldCwgdWludDhfdCBt
ZW1vcnlJbmRleCkKK1tbbm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBCQlFKSVQ6OmF0b21pY0Jp
bmFyeVJNVyhFeHRBdG9taWNPcFR5cGUgb3AsIFR5cGUgdmFsdWVUeXBlLCBFeHByZXNzaW9uVHlw
ZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSB2YWx1ZSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCwg
dWludDMyX3QgdW9mZnNldCwgdWludDhfdCBtZW1vcnlJbmRleCkKIHsKLSAgICBjb25zdCBib29s
IG92ZXJmbG93ID0gbV9pbmZvLm1lbW9yeShtZW1vcnlJbmRleCkuaXNNZW1vcnk2NCgpCi0gICAg
ICAgID8gc3VtT3ZlcmZsb3dzPHVpbnQ2NF90Pih1b2Zmc2V0LCBzaXplT2ZBdG9taWNPcE1lbW9y
eUFjY2VzcyhvcCkpCi0gICAgICAgIDogc3VtT3ZlcmZsb3dzPHVpbnQzMl90Pih1b2Zmc2V0LCBz
aXplT2ZBdG9taWNPcE1lbW9yeUFjY2VzcyhvcCkpOwogICAgIExvY2F0aW9uIHZhbHVlTG9jYXRp
b24gPSBsb2NhdGlvbk9mKHZhbHVlKTsKLSAgICBpZiAob3ZlcmZsb3cpIFtbdW5saWtlbHldXSB7
CisgICAgaWYgKHN1bU92ZXJmbG93czx1aW50MzJfdD4odW9mZnNldCwgc2l6ZU9mQXRvbWljT3BN
ZW1vcnlBY2Nlc3Mob3ApKSkgW1t1bmxpa2VseV1dIHsKICAgICAgICAgLy8gRklYTUU6IEV2ZW4g
dGhvdWdoIHRoaXMgaXMgcHJvdmFibHkgb3V0IG9mIGJvdW5kcywgaXQncyBub3QgYSB2YWxpZGF0
aW9uIGVycm9yLCBzbyB3ZSBoYXZlIHRvIGhhbmRsZSBpdAogICAgICAgICAvLyBhcyBhIHJ1bnRp
bWUgZXhjZXB0aW9uLiBIb3dldmVyLCB0aGlzIG1heSBjaGFuZ2U6IGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY0MzUKICAgICAgICAgZW1pdFRocm93RXhjZXB0aW9u
KEV4Y2VwdGlvblR5cGU6Ok91dE9mQm91bmRzTWVtb3J5QWNjZXNzKTsKQEAgLTEyNzUsMTMgKzEy
NjYsMTAgQEAgQWRkcmVzcyBCQlFKSVQ6Om1hdGVyaWFsaXplUG9pbnRlcihMb2NhdGlvbiBwb2lu
dGVyTG9jYXRpb24sIHVpbnQzMl90IHVvZmZzZXQpCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotW1tu
b2Rpc2NhcmRdXSBQYXJ0aWFsUmVzdWx0IEJCUUpJVDo6YXRvbWljQ29tcGFyZUV4Y2hhbmdlKEV4
dEF0b21pY09wVHlwZSBvcCwgVHlwZSB2YWx1ZVR5cGUsIEV4cHJlc3Npb25UeXBlIHBvaW50ZXIs
IEV4cHJlc3Npb25UeXBlIGV4cGVjdGVkLCBFeHByZXNzaW9uVHlwZSB2YWx1ZSwgRXhwcmVzc2lv
blR5cGUmIHJlc3VsdCwgdWludDY0X3QgdW9mZnNldCwgdWludDhfdCBtZW1vcnlJbmRleCkKK1tb
bm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBCQlFKSVQ6OmF0b21pY0NvbXBhcmVFeGNoYW5nZShF
eHRBdG9taWNPcFR5cGUgb3AsIFR5cGUgdmFsdWVUeXBlLCBFeHByZXNzaW9uVHlwZSBwb2ludGVy
LCBFeHByZXNzaW9uVHlwZSBleHBlY3RlZCwgRXhwcmVzc2lvblR5cGUgdmFsdWUsIEV4cHJlc3Np
b25UeXBlJiByZXN1bHQsIHVpbnQzMl90IHVvZmZzZXQsIHVpbnQ4X3QgbWVtb3J5SW5kZXgpCiB7
Ci0gICAgY29uc3QgYm9vbCBvdmVyZmxvdyA9IG1faW5mby5tZW1vcnkobWVtb3J5SW5kZXgpLmlz
TWVtb3J5NjQoKQotICAgICAgICA/IHN1bU92ZXJmbG93czx1aW50NjRfdD4odW9mZnNldCwgc2l6
ZU9mQXRvbWljT3BNZW1vcnlBY2Nlc3Mob3ApKQotICAgICAgICA6IHN1bU92ZXJmbG93czx1aW50
MzJfdD4odW9mZnNldCwgc2l6ZU9mQXRvbWljT3BNZW1vcnlBY2Nlc3Mob3ApKTsKICAgICBMb2Nh
dGlvbiB2YWx1ZUxvY2F0aW9uID0gbG9jYXRpb25PZih2YWx1ZSk7Ci0gICAgaWYgKG92ZXJmbG93
KSBbW3VubGlrZWx5XV0geworICAgIGlmIChzdW1PdmVyZmxvd3M8dWludDMyX3Q+KHVvZmZzZXQs
IHNpemVPZkF0b21pY09wTWVtb3J5QWNjZXNzKG9wKSkpIFtbdW5saWtlbHldXSB7CiAgICAgICAg
IC8vIEZJWE1FOiBFdmVuIHRob3VnaCB0aGlzIGlzIHByb3ZhYmx5IG91dCBvZiBib3VuZHMsIGl0
J3Mgbm90IGEgdmFsaWRhdGlvbiBlcnJvciwgc28gd2UgaGF2ZSB0byBoYW5kbGUgaXQKICAgICAg
ICAgLy8gYXMgYSBydW50aW1lIGV4Y2VwdGlvbi4gSG93ZXZlciwgdGhpcyBtYXkgY2hhbmdlOiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2NDM1CiAgICAgICAgIGVt
aXRUaHJvd0V4Y2VwdGlvbihFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5kc01lbW9yeUFjY2Vzcyk7
CkBAIC0xMjk3LDEyICsxMjg1LDEyIEBAIEFkZHJlc3MgQkJRSklUOjptYXRlcmlhbGl6ZVBvaW50
ZXIoTG9jYXRpb24gcG9pbnRlckxvY2F0aW9uLCB1aW50MzJfdCB1b2Zmc2V0KQogICAgIHJldHVy
biB7IH07CiB9CiAKLVtbbm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBCQlFKSVQ6OmF0b21pY1dh
aXQoRXh0QXRvbWljT3BUeXBlIG9wLCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9u
VHlwZSB2YWx1ZSwgRXhwcmVzc2lvblR5cGUgdGltZW91dCwgRXhwcmVzc2lvblR5cGUmIHJlc3Vs
dCwgdWludDY0X3QgdW9mZnNldCwgdWludDhfdCBtZW1vcnlJbmRleCkKK1tbbm9kaXNjYXJkXV0g
UGFydGlhbFJlc3VsdCBCQlFKSVQ6OmF0b21pY1dhaXQoRXh0QXRvbWljT3BUeXBlIG9wLCBFeHBy
ZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSB2YWx1ZSwgRXhwcmVzc2lvblR5cGUg
dGltZW91dCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCwgdWludDMyX3QgdW9mZnNldCwgdWludDhf
dCBtZW1vcnlJbmRleCkKIHsKICAgICBWZWN0b3I8VmFsdWUsIDg+IGFyZ3VtZW50cyA9IHsKICAg
ICAgICAgaW5zdGFuY2VWYWx1ZSgpLAogICAgICAgICBwb2ludGVyLAotICAgICAgICBWYWx1ZTo6
ZnJvbUk2NCh1b2Zmc2V0KSwKKyAgICAgICAgVmFsdWU6OmZyb21JMzIodW9mZnNldCksCiAgICAg
ICAgIHZhbHVlLAogICAgICAgICB0aW1lb3V0LAogICAgICAgICBWYWx1ZTo6ZnJvbUkzMihtZW1v
cnlJbmRleCkKQEAgLTEzMjEsMTIgKzEzMDksMTIgQEAgQWRkcmVzcyBCQlFKSVQ6Om1hdGVyaWFs
aXplUG9pbnRlcihMb2NhdGlvbiBwb2ludGVyTG9jYXRpb24sIHVpbnQzMl90IHVvZmZzZXQpCiAg
ICAgcmV0dXJuIHsgfTsKIH0KIAotW1tub2Rpc2NhcmRdXSBQYXJ0aWFsUmVzdWx0IEJCUUpJVDo6
YXRvbWljTm90aWZ5KEV4dEF0b21pY09wVHlwZSBvcCwgRXhwcmVzc2lvblR5cGUgcG9pbnRlciwg
RXhwcmVzc2lvblR5cGUgY291bnQsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQsIHVpbnQ2NF90IHVv
ZmZzZXQsIHVpbnQ4X3QgbWVtb3J5SW5kZXgpCitbW25vZGlzY2FyZF1dIFBhcnRpYWxSZXN1bHQg
QkJRSklUOjphdG9taWNOb3RpZnkoRXh0QXRvbWljT3BUeXBlIG9wLCBFeHByZXNzaW9uVHlwZSBw
b2ludGVyLCBFeHByZXNzaW9uVHlwZSBjb3VudCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCwgdWlu
dDMyX3QgdW9mZnNldCwgdWludDhfdCBtZW1vcnlJbmRleCkKIHsKICAgICBWZWN0b3I8VmFsdWUs
IDg+IGFyZ3VtZW50cyA9IHsKICAgICAgICAgaW5zdGFuY2VWYWx1ZSgpLAogICAgICAgICBwb2lu
dGVyLAotICAgICAgICBWYWx1ZTo6ZnJvbUk2NCh1b2Zmc2V0KSwKKyAgICAgICAgVmFsdWU6OmZy
b21JMzIodW9mZnNldCksCiAgICAgICAgIGNvdW50LAogICAgICAgICBWYWx1ZTo6ZnJvbUkzMiht
ZW1vcnlJbmRleCkKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUJCUUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUUpJVC5o
CmluZGV4IDRjM2RkOTFkNTY4MS4uYTc5MDhkNWVlY2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUJCUUpJVC5oCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiV2FzbUxpbWl0
cy5oIgogI2luY2x1ZGUgImpzL0pTV2ViQXNzZW1ibHlJbnN0YW5jZS5oIgogI2luY2x1ZGUgPHNw
YW4+Ci0jaW5jbHVkZSA8d3RmL0NoZWNrZWRBcml0aG1ldGljLmg+CiAKIFdURl9BTExPV19VTlNB
RkVfQlVGRkVSX1VTQUdFX0JFR0lOCiAKQEAgLTExNDgsMTMgKzExNDcsOCBAQCBwdWJsaWM6CiAK
ICAgICAvLyBNZW1vcnkKIAotICAgIGlubGluZSBMb2NhdGlvbiBlbWl0Q2hlY2tBbmRQcmVwYXJl
UG9pbnRlcihWYWx1ZSBwb2ludGVyLCB1aW50NjRfdCB1b2Zmc2V0LCB1aW50MzJfdCBzaXplT2ZP
cGVyYXRpb24sIHVpbnQ4X3QgbWVtb3J5SW5kZXgpCisgICAgaW5saW5lIExvY2F0aW9uIGVtaXRD
aGVja0FuZFByZXBhcmVQb2ludGVyKFZhbHVlIHBvaW50ZXIsIHVpbnQzMl90IHVvZmZzZXQsIHVp
bnQzMl90IHNpemVPZk9wZXJhdGlvbiwgdWludDhfdCBtZW1vcnlJbmRleCkKICAgICB7Ci0gICAg
ICAgIGlmIChXVEY6OnN1bU92ZXJmbG93czx1aW50NjRfdD4oc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KHNpemVPZk9wZXJhdGlvbiksIHVvZmZzZXQpKSB7Ci0gICAgICAgICAgICByZWNvcmRKdW1wVG9U
aHJvd0V4Y2VwdGlvbihFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5kc01lbW9yeUFjY2VzcywgbV9q
aXQuanVtcCgpKTsKLSAgICAgICAgICAgIHJldHVybiBMb2NhdGlvbjo6ZnJvbUdQUih3YXNtQmFz
ZU1lbW9yeVBvaW50ZXIpOwotICAgICAgICB9Ci0KICAgICAgICAgU2NyYXRjaFNjb3BlPDEsIDA+
IHNjcmF0Y2hlcygqdGhpcyk7CiAgICAgICAgIExvY2F0aW9uIHBvaW50ZXJMb2NhdGlvbjsKIApA
QCAtMTE3MywxOCArMTE2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBib3VuZHNDaGVj
a2luZ1NpemVSZWdpc3Rlcik7CiAgICAgICAgIH0KIAotICAgICAgICB1aW50NjRfdCBib3VuZGFy
eSA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihzaXplT2ZPcGVyYXRpb24pICsgdW9mZnNldCAtIDE7
Ci0KICAgICAgICAgaWYgKHBvaW50ZXIuaXNDb25zdCgpKSB7Ci0gICAgICAgICAgICB1aW50NjRf
dCBjb25zdGFudFBvaW50ZXIgPSBtX2luZm8ubWVtb3J5KG1lbW9yeUluZGV4KS5pc01lbW9yeTY0
KCkKLSAgICAgICAgICAgICAgICA/IHBvaW50ZXIuYXNJNjQoKQotICAgICAgICAgICAgICAgIDog
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KHBvaW50ZXIuYXNJMzIoKSk7Ci0KLSAgICAgICAgICAgIGlm
IChzdW1PdmVyZmxvd3M8dWludDY0X3Q+KGNvbnN0YW50UG9pbnRlciwgYm91bmRhcnkpKSB7Ci0g
ICAgICAgICAgICAgICAgcmVjb3JkSnVtcFRvVGhyb3dFeGNlcHRpb24oRXhjZXB0aW9uVHlwZTo6
T3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MsIG1faml0Lmp1bXAoKSk7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIExvY2F0aW9uOjpmcm9tR1BSKHdhc21CYXNlTWVtb3J5UG9pbnRlcik7Ci0gICAgICAg
ICAgICB9Ci0KICAgICAgICAgICAgIHBvaW50ZXJMb2NhdGlvbiA9IExvY2F0aW9uOjpmcm9tR1BS
KHNjcmF0Y2hlcy5ncHIoMCkpOwogICAgICAgICAgICAgZW1pdE1vdmVDb25zdChwb2ludGVyLCBw
b2ludGVyTG9jYXRpb24pOwogICAgICAgICB9IGVsc2UKQEAgLTExOTgsMzEgKzExODEsMjAgQEAg
cHVibGljOgogICAgICAgICBsb2FkV2ViQXNzZW1ibHlHbG9iYWxTdGF0ZSh3YXNtQmFzZU1lbW9y
eVBvaW50ZXIsIHdhc21Cb3VuZHNDaGVja2luZ1NpemVSZWdpc3Rlcik7CiAjZW5kaWYKIAorICAg
ICAgICB1aW50NjRfdCBib3VuZGFyeSA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihzaXplT2ZPcGVy
YXRpb24pICsgdW9mZnNldCAtIDE7CiAgICAgICAgIC8vIGNvbnNlcnZhdGl2ZWx5IGZvcmNlIGJv
dW5kcyBjaGVja2luZyBpZiBtZW1vcnlJbmRleCAhPSAwCiAgICAgICAgIHN3aXRjaCAobWVtb3J5
SW5kZXggPyBNZW1vcnlNb2RlOjpCb3VuZHNDaGVja2luZyA6IG1fbW9kZSkgewogICAgICAgICBj
YXNlIE1lbW9yeU1vZGU6OkJvdW5kc0NoZWNraW5nOiB7CiAgICAgICAgICAgICAvLyBXZSdyZSBu
b3QgdXNpbmcgc2lnbmFsIGhhbmRsaW5nIG9ubHkgd2hlbiB0aGUgbWVtb3J5IGlzIG5vdCBzaGFy
ZWQuCiAgICAgICAgICAgICAvLyBSZWdhcmRsZXNzIG9mIHNpZ25hbGluZywgd2UgbXVzdCBjaGVj
ayB0aGF0IG5vIG1lbW9yeSBhY2Nlc3MgZXhjZWVkcyB0aGUgY3VycmVudCBtZW1vcnkgc2l6ZS4K
LQotICAgICAgICAgICAgaWYgKG1faW5mby5tZW1vcnkobWVtb3J5SW5kZXgpLmlzTWVtb3J5NjQo
KSkgewotICAgICAgICAgICAgICAgIGlmIChib3VuZGFyeSkgewotICAgICAgICAgICAgICAgICAg
ICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW1QdHIoYm91bmRhcnkpLCB3YXNtU2NyYXRjaEdQUik7Ci0g
ICAgICAgICAgICAgICAgICAgIEp1bXAgb3ZlcmZsb3cgPSBtX2ppdC5icmFuY2hBZGRQdHIoUmVz
dWx0Q29uZGl0aW9uOjpDYXJyeSwgcG9pbnRlckxvY2F0aW9uLmFzR1BSKCksIHdhc21TY3JhdGNo
R1BSKTsKLSAgICAgICAgICAgICAgICAgICAgcmVjb3JkSnVtcFRvVGhyb3dFeGNlcHRpb24oRXhj
ZXB0aW9uVHlwZTo6T3V0T2ZCb3VuZHNNZW1vcnlBY2Nlc3MsIG92ZXJmbG93KTsKLSAgICAgICAg
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgbV9qaXQubW92ZShwb2ludGVyTG9j
YXRpb24uYXNHUFIoKSwgd2FzbVNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBtX2ppdC56ZXJvRXh0ZW5kMzJUb1dvcmQocG9pbnRlckxvY2F0aW9uLmFz
R1BSKCksIHdhc21TY3JhdGNoR1BSKTsKLSAgICAgICAgICAgICAgICBpZiAoYm91bmRhcnkpCi0g
ICAgICAgICAgICAgICAgICAgIG1faml0LmFkZFB0cihUcnVzdGVkSW1tUHRyKGJvdW5kYXJ5KSwg
d2FzbVNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgfQotCisgICAgICAgICAgICBtX2ppdC56ZXJv
RXh0ZW5kMzJUb1dvcmQocG9pbnRlckxvY2F0aW9uLmFzR1BSKCksIHdhc21TY3JhdGNoR1BSKTsK
KyAgICAgICAgICAgIGlmIChib3VuZGFyeSkKKyAgICAgICAgICAgICAgICBtX2ppdC5hZGRQdHIo
VHJ1c3RlZEltbVB0cihib3VuZGFyeSksIHdhc21TY3JhdGNoR1BSKTsKICAgICAgICAgICAgIHJl
Y29yZEp1bXBUb1Rocm93RXhjZXB0aW9uKEV4Y2VwdGlvblR5cGU6Ok91dE9mQm91bmRzTWVtb3J5
QWNjZXNzLCBtX2ppdC5icmFuY2hQdHIoUmVsYXRpb25hbENvbmRpdGlvbjo6QWJvdmVPckVxdWFs
LCB3YXNtU2NyYXRjaEdQUiwgYm91bmRzQ2hlY2tpbmdTaXplUmVnaXN0ZXIpKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAKICAgICAgICAgY2FzZSBNZW1vcnlNb2RlOjpTaWduYWxp
bmc6IHsKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFtX2luZm8ubWVtb3J5KG1lbW9yeUlu
ZGV4KS5pc01lbW9yeTY0KCkpOwogICAgICAgICAgICAgLy8gV2UndmUgdmlydHVhbGx5IG1hcHBl
ZCA0R2lCK3JlZHpvbmUgZm9yIHRoaXMgbWVtb3J5LiBPbmx5IHRoZSB1c2VyLWFsbG9jYXRlZCBw
YWdlcyBhcmUgYWRkcmVzc2FibGUsIGNvbnRpZ3VvdXNseSBpbiByYW5nZSBbMCwgY3VycmVudF0s
CiAgICAgICAgICAgICAvLyBhbmQgZXZlcnl0aGluZyBhYm92ZSBpcyBtYXBwZWQgUFJPVF9OT05F
LiBXZSBkb24ndCBuZWVkIHRvIHBlcmZvcm0gYW55IGV4cGxpY2l0IGJvdW5kcyBjaGVjayBpbiB0
aGUgNEdpQiByYW5nZSBiZWNhdXNlIFdlYkFzc2VtYmx5IHJlZ2lzdGVyCiAgICAgICAgICAgICAv
LyBtZW1vcnkgYWNjZXNzZXMgYXJlIDMyLWJpdC4gSG93ZXZlciBXZWJBc3NlbWJseSByZWdpc3Rl
ciArIG9mZnNldCBhY2Nlc3NlcyBwZXJmb3JtIHRoZSBhZGRpdGlvbiBpbiA2NC1iaXQgd2hpY2gg
Y2FuIHB1c2ggYW4gYWNjZXNzIGFib3ZlCkBAIC0xMjQ1LDE3ICsxMjE3LDEwIEBAIHB1YmxpYzoK
ICAgICAgICAgfQogCiAjaWYgQ1BVKEFSTTY0KQotICAgICAgICBpZiAobV9pbmZvLm1lbW9yeSht
ZW1vcnlJbmRleCkuaXNNZW1vcnk2NCgpKQotICAgICAgICAgICAgbV9qaXQuYWRkUHRyKGJhc2VS
ZWdpc3RlciwgcG9pbnRlckxvY2F0aW9uLmFzR1BSKCksIHdhc21TY3JhdGNoR1BSKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgbV9qaXQuYWRkWmVyb0V4dGVuZDY0KGJhc2VSZWdpc3Rlciwg
cG9pbnRlckxvY2F0aW9uLmFzR1BSKCksIHdhc21TY3JhdGNoR1BSKTsKKyAgICAgICAgbV9qaXQu
YWRkWmVyb0V4dGVuZDY0KGJhc2VSZWdpc3RlciwgcG9pbnRlckxvY2F0aW9uLmFzR1BSKCksIHdh
c21TY3JhdGNoR1BSKTsKICNlbHNlCi0gICAgICAgIGlmIChtX2luZm8ubWVtb3J5KG1lbW9yeUlu
ZGV4KS5pc01lbW9yeTY0KCkpCi0gICAgICAgICAgICBtX2ppdC5hZGRQdHIoYmFzZVJlZ2lzdGVy
LCBwb2ludGVyTG9jYXRpb24uYXNHUFIoKSwgd2FzbVNjcmF0Y2hHUFIpOwotICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgIG1faml0Lnplcm9FeHRlbmQzMlRvV29yZChwb2ludGVyTG9jYXRpb24u
YXNHUFIoKSwgd2FzbVNjcmF0Y2hHUFIpOwotICAgICAgICAgICAgbV9qaXQuYWRkUHRyKGJhc2VS
ZWdpc3Rlciwgd2FzbVNjcmF0Y2hHUFIpOwotICAgICAgICB9CisgICAgICAgIG1faml0Lnplcm9F
eHRlbmQzMlRvV29yZChwb2ludGVyTG9jYXRpb24uYXNHUFIoKSwgd2FzbVNjcmF0Y2hHUFIpOwor
ICAgICAgICBtX2ppdC5hZGRQdHIoYmFzZVJlZ2lzdGVyLCB3YXNtU2NyYXRjaEdQUik7CiAjZW5k
aWYKIAogICAgICAgICBjb25zdW1lKHBvaW50ZXIpOwpAQCAtMTM5MCwyNSArMTM1NSwyNSBAQCBw
dWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KICAgICB2b2lkIGVtaXRBdG9t
aWNPcEdlbmVyaWMoRXh0QXRvbWljT3BUeXBlIG9wLCBBZGRyZXNzIGFkZHJlc3MsIExvY2F0aW9u
IG9sZCwgTG9jYXRpb24gY3VyLCBjb25zdCBGdW5jdG9yJiBmdW5jdG9yKTsKIAotICAgIFtbbm9k
aXNjYXJkXV0gVmFsdWUgZW1pdEF0b21pY0xvYWRPcChFeHRBdG9taWNPcFR5cGUgbG9hZE9wLCBU
eXBlIHZhbHVlVHlwZSwgTG9jYXRpb24gcG9pbnRlciwgdWludDY0X3QgdW9mZnNldCk7CisgICAg
W1tub2Rpc2NhcmRdXSBWYWx1ZSBlbWl0QXRvbWljTG9hZE9wKEV4dEF0b21pY09wVHlwZSBsb2Fk
T3AsIFR5cGUgdmFsdWVUeXBlLCBMb2NhdGlvbiBwb2ludGVyLCB1aW50MzJfdCB1b2Zmc2V0KTsK
IAotICAgIFtbbm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBhdG9taWNMb2FkKEV4dEF0b21pY09w
VHlwZSBsb2FkT3AsIFR5cGUgdmFsdWVUeXBlLCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHBy
ZXNzaW9uVHlwZSYgcmVzdWx0LCB1aW50NjRfdCB1b2Zmc2V0LCB1aW50OF90IG1lbW9yeUluZGV4
KTsKKyAgICBbW25vZGlzY2FyZF1dIFBhcnRpYWxSZXN1bHQgYXRvbWljTG9hZChFeHRBdG9taWNP
cFR5cGUgbG9hZE9wLCBUeXBlIHZhbHVlVHlwZSwgRXhwcmVzc2lvblR5cGUgcG9pbnRlciwgRXhw
cmVzc2lvblR5cGUmIHJlc3VsdCwgdWludDMyX3QgdW9mZnNldCwgdWludDhfdCBtZW1vcnlJbmRl
eCk7CiAKLSAgICB2b2lkIGVtaXRBdG9taWNTdG9yZU9wKEV4dEF0b21pY09wVHlwZSBzdG9yZU9w
LCBUeXBlLCBMb2NhdGlvbiBwb2ludGVyLCBWYWx1ZSwgdWludDY0X3QgdW9mZnNldCk7CisgICAg
dm9pZCBlbWl0QXRvbWljU3RvcmVPcChFeHRBdG9taWNPcFR5cGUgc3RvcmVPcCwgVHlwZSwgTG9j
YXRpb24gcG9pbnRlciwgVmFsdWUgdmFsdWUsIHVpbnQzMl90IHVvZmZzZXQpOwogCi0gICAgW1tu
b2Rpc2NhcmRdXSBQYXJ0aWFsUmVzdWx0IGF0b21pY1N0b3JlKEV4dEF0b21pY09wVHlwZSBzdG9y
ZU9wLCBUeXBlIHZhbHVlVHlwZSwgRXhwcmVzc2lvblR5cGUgcG9pbnRlciwgRXhwcmVzc2lvblR5
cGUgdmFsdWUsIHVpbnQ2NF90IHVvZmZzZXQsIHVpbnQ4X3QgbWVtb3J5SW5kZXgpOworICAgIFtb
bm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBhdG9taWNTdG9yZShFeHRBdG9taWNPcFR5cGUgc3Rv
cmVPcCwgVHlwZSB2YWx1ZVR5cGUsIEV4cHJlc3Npb25UeXBlIHBvaW50ZXIsIEV4cHJlc3Npb25U
eXBlIHZhbHVlLCB1aW50MzJfdCB1b2Zmc2V0LCB1aW50OF90IG1lbW9yeUluZGV4KTsKIAogICAg
IFZhbHVlIGVtaXRBdG9taWNCaW5hcnlSTVdPcChFeHRBdG9taWNPcFR5cGUgb3AsIFR5cGUgdmFs
dWVUeXBlLCBMb2NhdGlvbiBwb2ludGVyLCBWYWx1ZSB2YWx1ZSwgdWludDMyX3QgdW9mZnNldCk7
CiAKLSAgICBbW25vZGlzY2FyZF1dIFBhcnRpYWxSZXN1bHQgYXRvbWljQmluYXJ5Uk1XKEV4dEF0
b21pY09wVHlwZSBvcCwgVHlwZSB2YWx1ZVR5cGUsIEV4cHJlc3Npb25UeXBlIHBvaW50ZXIsIEV4
cHJlc3Npb25UeXBlIHZhbHVlLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0LCB1aW50NjRfdCB1b2Zm
c2V0LCB1aW50OF90IG1lbW9yeUluZGV4KTsKKyAgICBbW25vZGlzY2FyZF1dIFBhcnRpYWxSZXN1
bHQgYXRvbWljQmluYXJ5Uk1XKEV4dEF0b21pY09wVHlwZSBvcCwgVHlwZSB2YWx1ZVR5cGUsIEV4
cHJlc3Npb25UeXBlIHBvaW50ZXIsIEV4cHJlc3Npb25UeXBlIHZhbHVlLCBFeHByZXNzaW9uVHlw
ZSYgcmVzdWx0LCB1aW50MzJfdCB1b2Zmc2V0LCB1aW50OF90IG1lbW9yeUluZGV4KTsKIAogICAg
IFtbbm9kaXNjYXJkXV0gVmFsdWUgZW1pdEF0b21pY0NvbXBhcmVFeGNoYW5nZShFeHRBdG9taWNP
cFR5cGUgb3AsIFR5cGUsIExvY2F0aW9uIHBvaW50ZXIsIFZhbHVlIGV4cGVjdGVkLCBWYWx1ZSB2
YWx1ZSwgdWludDMyX3QgdW9mZnNldCk7CiAKLSAgICBbW25vZGlzY2FyZF1dIFBhcnRpYWxSZXN1
bHQgYXRvbWljQ29tcGFyZUV4Y2hhbmdlKEV4dEF0b21pY09wVHlwZSBvcCwgVHlwZSB2YWx1ZVR5
cGUsIEV4cHJlc3Npb25UeXBlIHBvaW50ZXIsIEV4cHJlc3Npb25UeXBlIGV4cGVjdGVkLCBFeHBy
ZXNzaW9uVHlwZSB2YWx1ZSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCwgdWludDY0X3QgdW9mZnNl
dCwgdWludDhfdCBtZW1vcnlJbmRleCk7CisgICAgW1tub2Rpc2NhcmRdXSBQYXJ0aWFsUmVzdWx0
IGF0b21pY0NvbXBhcmVFeGNoYW5nZShFeHRBdG9taWNPcFR5cGUgb3AsIFR5cGUgdmFsdWVUeXBl
LCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSBleHBlY3RlZCwgRXhwcmVz
c2lvblR5cGUgdmFsdWUsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQsIHVpbnQzMl90IHVvZmZzZXQs
IHVpbnQ4X3QgbWVtb3J5SW5kZXgpOwogCi0gICAgW1tub2Rpc2NhcmRdXSBQYXJ0aWFsUmVzdWx0
IGF0b21pY1dhaXQoRXh0QXRvbWljT3BUeXBlIG9wLCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBF
eHByZXNzaW9uVHlwZSB2YWx1ZSwgRXhwcmVzc2lvblR5cGUgdGltZW91dCwgRXhwcmVzc2lvblR5
cGUmIHJlc3VsdCwgdWludDY0X3QgdW9mZnNldCwgdWludDhfdCBtZW1vcnlJbmRleCk7CisgICAg
W1tub2Rpc2NhcmRdXSBQYXJ0aWFsUmVzdWx0IGF0b21pY1dhaXQoRXh0QXRvbWljT3BUeXBlIG9w
LCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSB2YWx1ZSwgRXhwcmVzc2lv
blR5cGUgdGltZW91dCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCwgdWludDMyX3QgdW9mZnNldCwg
dWludDhfdCBtZW1vcnlJbmRleCk7CiAKLSAgICBbW25vZGlzY2FyZF1dIFBhcnRpYWxSZXN1bHQg
YXRvbWljTm90aWZ5KEV4dEF0b21pY09wVHlwZSBvcCwgRXhwcmVzc2lvblR5cGUgcG9pbnRlciwg
RXhwcmVzc2lvblR5cGUgY291bnQsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQsIHVpbnQ2NF90IHVv
ZmZzZXQsIHVpbnQ4X3QgbWVtb3J5SW5kZXgpOworICAgIFtbbm9kaXNjYXJkXV0gUGFydGlhbFJl
c3VsdCBhdG9taWNOb3RpZnkoRXh0QXRvbWljT3BUeXBlIG9wLCBFeHByZXNzaW9uVHlwZSBwb2lu
dGVyLCBFeHByZXNzaW9uVHlwZSBjb3VudCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCwgdWludDMy
X3QgdW9mZnNldCwgdWludDhfdCBtZW1vcnlJbmRleCk7CiAKICAgICBbW25vZGlzY2FyZF1dIFBh
cnRpYWxSZXN1bHQgYXRvbWljRmVuY2UoRXh0QXRvbWljT3BUeXBlLCB1aW50OF90KTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUUpJVDY0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFKSVQ2NC5jcHAKaW5kZXggZmVmZDIxNzZl
NTYwLi5lMWM1NzFhNmI1MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21CQlFKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJC
UUpJVDY0LmNwcApAQCAtNjQwLDEzICs2NDAsMTMgQEAgdm9pZCBCQlFKSVQ6OmVtaXRBdG9taWNP
cEdlbmVyaWMoRXh0QXRvbWljT3BUeXBlIG9wLCBBZGRyZXNzIGFkZHJlc3MsIEdQUlJlZyBvbGQK
ICNlbmRpZgogfQogCi1bW25vZGlzY2FyZF1dIFZhbHVlIEJCUUpJVDo6ZW1pdEF0b21pY0xvYWRP
cChFeHRBdG9taWNPcFR5cGUgbG9hZE9wLCBUeXBlIHZhbHVlVHlwZSwgTG9jYXRpb24gcG9pbnRl
ciwgdWludDY0X3QgdW9mZnNldCkKK1tbbm9kaXNjYXJkXV0gVmFsdWUgQkJRSklUOjplbWl0QXRv
bWljTG9hZE9wKEV4dEF0b21pY09wVHlwZSBsb2FkT3AsIFR5cGUgdmFsdWVUeXBlLCBMb2NhdGlv
biBwb2ludGVyLCB1aW50MzJfdCB1b2Zmc2V0KQogewogICAgIEFTU0VSVChwb2ludGVyLmlzR1BS
KCkpOwogCiAgICAgLy8gRm9yIEF0b21pYyBhY2Nlc3MsIHdlIG5lZWQgU2ltcGxlQWRkcmVzcyAo
dW9mZnNldCA9IDApLgogICAgIGlmICh1b2Zmc2V0KQotICAgICAgICBtX2ppdC5hZGQ2NChUcnVz
dGVkSW1tNjQodW9mZnNldCksIHBvaW50ZXIuYXNHUFIoKSk7CisgICAgICAgIG1faml0LmFkZDY0
KFRydXN0ZWRJbW02NChzdGF0aWNfY2FzdDxpbnQ2NF90Pih1b2Zmc2V0KSksIHBvaW50ZXIuYXNH
UFIoKSk7CiAgICAgQWRkcmVzcyBhZGRyZXNzID0gQWRkcmVzcyhwb2ludGVyLmFzR1BSKCkpOwog
CiAgICAgaWYgKGFjY2Vzc1dpZHRoKGxvYWRPcCkgIT0gV2lkdGg4KQpAQCAtNzMyLDcgKzczMiw3
IEBAIHZvaWQgQkJRSklUOjplbWl0QXRvbWljT3BHZW5lcmljKEV4dEF0b21pY09wVHlwZSBvcCwg
QWRkcmVzcyBhZGRyZXNzLCBHUFJSZWcgb2xkCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9p
ZCBCQlFKSVQ6OmVtaXRBdG9taWNTdG9yZU9wKEV4dEF0b21pY09wVHlwZSBzdG9yZU9wLCBUeXBl
LCBMb2NhdGlvbiBwb2ludGVyLCBWYWx1ZSB2YWx1ZSwgdWludDY0X3QgdW9mZnNldCkKK3ZvaWQg
QkJRSklUOjplbWl0QXRvbWljU3RvcmVPcChFeHRBdG9taWNPcFR5cGUgc3RvcmVPcCwgVHlwZSwg
TG9jYXRpb24gcG9pbnRlciwgVmFsdWUgdmFsdWUsIHVpbnQzMl90IHVvZmZzZXQpCiB7CiAgICAg
QVNTRVJUKHBvaW50ZXIuaXNHUFIoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21CQlFKSVQ2NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bUJCUUpJVDY0LmgKaW5kZXggN2UwNmVhZDcyZTVlLi5kYTAwYzIxMzk2MDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFKSVQ2NC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFKSVQ2NC5oCkBAIC0xMTMsMTMgKzExMywxMCBAQCBh
dXRvIEJCUUpJVDo6ZW1pdENoZWNrQW5kUHJlcGFyZUFuZE1hdGVyaWFsaXplUG9pbnRlckFwcGx5
KFZhbHVlIHBvaW50ZXIsIHVpbnQ2NAogICAgIGNhc2UgTWVtb3J5TW9kZTo6Qm91bmRzQ2hlY2tp
bmc6IHsKICAgICAgICAgLy8gV2UncmUgbm90IHVzaW5nIHNpZ25hbCBoYW5kbGluZyBvbmx5IHdo
ZW4gdGhlIG1lbW9yeSBpcyBub3Qgc2hhcmVkLgogICAgICAgICAvLyBSZWdhcmRsZXNzIG9mIHNp
Z25hbGluZywgd2UgbXVzdCBjaGVjayB0aGF0IG5vIG1lbW9yeSBhY2Nlc3MgZXhjZWVkcyB0aGUg
Y3VycmVudCBtZW1vcnkgc2l6ZS4KLSAgICAgICAgaWYgKG1faW5mby5tZW1vcnkobWVtb3J5SW5k
ZXgpLmlzTWVtb3J5NjQoKSkgewotICAgICAgICAgICAgaWYgKGJvdW5kYXJ5KSB7Ci0gICAgICAg
ICAgICAgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tUHRyKGJvdW5kYXJ5KSwgd2FzbVNjcmF0Y2hH
UFIpOwotICAgICAgICAgICAgICAgIEp1bXAgb3ZlcmZsb3cgPSBtX2ppdC5icmFuY2hBZGRQdHIo
UmVzdWx0Q29uZGl0aW9uOjpDYXJyeSwgcG9pbnRlckxvY2F0aW9uLmFzR1BSKCksIHdhc21TY3Jh
dGNoR1BSKTsKLSAgICAgICAgICAgICAgICByZWNvcmRKdW1wVG9UaHJvd0V4Y2VwdGlvbihFeGNl
cHRpb25UeXBlOjpPdXRPZkJvdW5kc01lbW9yeUFjY2Vzcywgb3ZlcmZsb3cpOwotICAgICAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgbV9qaXQubW92ZShwb2ludGVyTG9jYXRpb24uYXNH
UFIoKSwgd2FzbVNjcmF0Y2hHUFIpOworICAgICAgICBpZiAobV9pbmZvLm1lbW9yeShtZW1vcnlJ
bmRleCkuaXNNZW1vcnk2NCgpICYmIGJvdW5kYXJ5KSB7CisgICAgICAgICAgICBtX2ppdC5tb3Zl
KFRydXN0ZWRJbW1QdHIoYm91bmRhcnkpLCB3YXNtU2NyYXRjaEdQUik7CisgICAgICAgICAgICBK
dW1wIG92ZXJmbG93ID0gbV9qaXQuYnJhbmNoQWRkUHRyKFJlc3VsdENvbmRpdGlvbjo6Q2Fycnks
IHBvaW50ZXJMb2NhdGlvbi5hc0dQUigpLCB3YXNtU2NyYXRjaEdQUik7CisgICAgICAgICAgICBy
ZWNvcmRKdW1wVG9UaHJvd0V4Y2VwdGlvbihFeGNlcHRpb25UeXBlOjpPdXRPZkJvdW5kc01lbW9y
eUFjY2Vzcywgb3ZlcmZsb3cpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgbV9qaXQu
emVyb0V4dGVuZDMyVG9Xb3JkKHBvaW50ZXJMb2NhdGlvbi5hc0dQUigpLCB3YXNtU2NyYXRjaEdQ
Uik7CiAgICAgICAgICAgICBpZiAoYm91bmRhcnkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtQ29uc3RFeHByR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21Db25zdEV4cHJHZW5lcmF0b3IuY3BwCmluZGV4IDY0YjU0MDAxYmVk
YS4uYTNhYmU3MjhmZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQ29uc3RFeHByR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtQ29uc3RFeHByR2VuZXJhdG9yLmNwcApAQCAtMjg1LDEyICsyODUsMTIgQEAgcHVibGlj
OgogICAgIFtbbm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBhZGRNZW1vcnlDb3B5KEV4cHJlc3Np
b25UeXBlLCBFeHByZXNzaW9uVHlwZSwgRXhwcmVzc2lvblR5cGUsIHVpbnQ4X3QsIHVpbnQ4X3Qp
IENPTlNUX0VYUFJfU1RVQgogICAgIFtbbm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBhZGRNZW1v
cnlJbml0KHVuc2lnbmVkLCBFeHByZXNzaW9uVHlwZSwgRXhwcmVzc2lvblR5cGUsIEV4cHJlc3Np
b25UeXBlLCB1aW50OF90KSBDT05TVF9FWFBSX1NUVUIKICAgICBbW25vZGlzY2FyZF1dIFBhcnRp
YWxSZXN1bHQgYWRkRGF0YURyb3AodW5zaWduZWQpIENPTlNUX0VYUFJfU1RVQgotICAgIFtbbm9k
aXNjYXJkXV0gUGFydGlhbFJlc3VsdCBhdG9taWNMb2FkKEV4dEF0b21pY09wVHlwZSwgVHlwZSwg
RXhwcmVzc2lvblR5cGUsIEV4cHJlc3Npb25UeXBlJiwgdWludDY0X3QsIHVpbnQ4X3QpIENPTlNU
X0VYUFJfU1RVQgotICAgIFtbbm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBhdG9taWNTdG9yZShF
eHRBdG9taWNPcFR5cGUsIFR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlwZSwgdWlu
dDY0X3QsIHVpbnQ4X3QpIENPTlNUX0VYUFJfU1RVQgotICAgIFtbbm9kaXNjYXJkXV0gUGFydGlh
bFJlc3VsdCBhdG9taWNCaW5hcnlSTVcoRXh0QXRvbWljT3BUeXBlLCBUeXBlLCBFeHByZXNzaW9u
VHlwZSwgRXhwcmVzc2lvblR5cGUsIEV4cHJlc3Npb25UeXBlJiwgdWludDY0X3QsIHVpbnQ4X3Qp
IENPTlNUX0VYUFJfU1RVQgotICAgIFtbbm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBhdG9taWND
b21wYXJlRXhjaGFuZ2UoRXh0QXRvbWljT3BUeXBlLCBUeXBlLCBFeHByZXNzaW9uVHlwZSwgRXhw
cmVzc2lvblR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlwZSYsIHVpbnQ2NF90LCB1
aW50OF90KSBDT05TVF9FWFBSX1NUVUIKLSAgICBbW25vZGlzY2FyZF1dIFBhcnRpYWxSZXN1bHQg
YXRvbWljV2FpdChFeHRBdG9taWNPcFR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlw
ZSwgRXhwcmVzc2lvblR5cGUsIEV4cHJlc3Npb25UeXBlJiwgdWludDY0X3QsIHVpbnQ4X3QpIENP
TlNUX0VYUFJfU1RVQgotICAgIFtbbm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBhdG9taWNOb3Rp
ZnkoRXh0QXRvbWljT3BUeXBlLCBFeHByZXNzaW9uVHlwZSwgRXhwcmVzc2lvblR5cGUsIEV4cHJl
c3Npb25UeXBlJiwgdWludDY0X3QsIHVpbnQ4X3QpIENPTlNUX0VYUFJfU1RVQgorICAgIFtbbm9k
aXNjYXJkXV0gUGFydGlhbFJlc3VsdCBhdG9taWNMb2FkKEV4dEF0b21pY09wVHlwZSwgVHlwZSwg
RXhwcmVzc2lvblR5cGUsIEV4cHJlc3Npb25UeXBlJiwgdWludDMyX3QsIHVpbnQ4X3QpIENPTlNU
X0VYUFJfU1RVQgorICAgIFtbbm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBhdG9taWNTdG9yZShF
eHRBdG9taWNPcFR5cGUsIFR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlwZSwgdWlu
dDMyX3QsIHVpbnQ4X3QpIENPTlNUX0VYUFJfU1RVQgorICAgIFtbbm9kaXNjYXJkXV0gUGFydGlh
bFJlc3VsdCBhdG9taWNCaW5hcnlSTVcoRXh0QXRvbWljT3BUeXBlLCBUeXBlLCBFeHByZXNzaW9u
VHlwZSwgRXhwcmVzc2lvblR5cGUsIEV4cHJlc3Npb25UeXBlJiwgdWludDMyX3QsIHVpbnQ4X3Qp
IENPTlNUX0VYUFJfU1RVQgorICAgIFtbbm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBhdG9taWND
b21wYXJlRXhjaGFuZ2UoRXh0QXRvbWljT3BUeXBlLCBUeXBlLCBFeHByZXNzaW9uVHlwZSwgRXhw
cmVzc2lvblR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlwZSYsIHVpbnQzMl90LCB1
aW50OF90KSBDT05TVF9FWFBSX1NUVUIKKyAgICBbW25vZGlzY2FyZF1dIFBhcnRpYWxSZXN1bHQg
YXRvbWljV2FpdChFeHRBdG9taWNPcFR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlw
ZSwgRXhwcmVzc2lvblR5cGUsIEV4cHJlc3Npb25UeXBlJiwgdWludDMyX3QsIHVpbnQ4X3QpIENP
TlNUX0VYUFJfU1RVQgorICAgIFtbbm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBhdG9taWNOb3Rp
ZnkoRXh0QXRvbWljT3BUeXBlLCBFeHByZXNzaW9uVHlwZSwgRXhwcmVzc2lvblR5cGUsIEV4cHJl
c3Npb25UeXBlJiwgdWludDMyX3QsIHVpbnQ4X3QpIENPTlNUX0VYUFJfU1RVQgogICAgIFtbbm9k
aXNjYXJkXV0gUGFydGlhbFJlc3VsdCBhdG9taWNGZW5jZShFeHRBdG9taWNPcFR5cGUsIHVpbnQ4
X3QpIENPTlNUX0VYUFJfU1RVQgogICAgIFtbbm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCB0cnVu
Y1RyYXBwaW5nKE9wVHlwZSwgRXhwcmVzc2lvblR5cGUsIEV4cHJlc3Npb25UeXBlJiwgVHlwZSwg
VHlwZSkgQ09OU1RfRVhQUl9TVFVCCiAgICAgW1tub2Rpc2NhcmRdXSBQYXJ0aWFsUmVzdWx0IHRy
dW5jU2F0dXJhdGVkKEV4dDFPcFR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlwZSYs
IFR5cGUsIFR5cGUpIENPTlNUX0VYUFJfU1RVQgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaAppbmRleCA0YmU1NjkyYmEzY2UuLmU5MWZhYTA5ZDY4
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFy
c2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2Vy
LmgKQEAgLTczMiw3ICs3MzIsMTEgQEAgYXV0byBGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6bG9h
ZChUeXBlIG1lbW9yeVR5cGUpIC0+IFBhcnRpYWxSZXN1bHQKIAogICAgIFdBU01fVFJZX1BPUF9F
WFBSRVNTSU9OX1NUQUNLX0lOVE8ocG9pbnRlciwgImxvYWQgcG9pbnRlciJfcyk7CiAKLSAgICBX
QVNNX1ZBTElEQVRPUl9GQUlMX0lGKHBvaW50ZXIudHlwZSgpLmtpbmQgIT0gbV9pbmZvLm1lbW9y
eShtZW1vcnlJbmRleCkuYWRkcmVzc1R5cGUoKS5hc1dhc21UeXBlS2luZCgpLCBtX2N1cnJlbnRP
cGNvZGUsICIgcG9pbnRlciB0eXBlIG1pc21hdGNoIl9zKTsKKyAgICBpZiAobV9pbmZvLm1lbW9y
eShtZW1vcnlJbmRleCkuaXNNZW1vcnk2NCgpKQorICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlM
X0lGKCFwb2ludGVyLnR5cGUoKS5pc0k2NCgpLCBtX2N1cnJlbnRPcGNvZGUsICIgcG9pbnRlciB0
eXBlIG1pc21hdGNoIl9zKTsKKyAgICBlbHNlCisgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxf
SUYoIXBvaW50ZXIudHlwZSgpLmlzSTMyKCksIG1fY3VycmVudE9wY29kZSwgIiBwb2ludGVyIHR5
cGUgbWlzbWF0Y2giX3MpOworCiAgICAgRXhwcmVzc2lvblR5cGUgcmVzdWx0OwogICAgIFdBU01f
VFJZX0FERF9UT19DT05URVhUKGxvYWQoc3RhdGljX2Nhc3Q8TG9hZE9wVHlwZT4obV9jdXJyZW50
T3Bjb2RlKSwgcG9pbnRlciwgcmVzdWx0LCBvZmZzZXQsIG1lbW9yeUluZGV4KSk7CiAgICAgbV9l
eHByZXNzaW9uU3RhY2suY29uc3RydWN0QW5kQXBwZW5kKG1lbW9yeVR5cGUsIHJlc3VsdCk7CkBA
IC03NjUsNyArNzY5LDEwIEBAIGF1dG8gRnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnN0b3JlKFR5
cGUgbWVtb3J5VHlwZSkgLT4gUGFydGlhbFJlc3VsdAogICAgIFdBU01fVFJZX1BPUF9FWFBSRVNT
SU9OX1NUQUNLX0lOVE8odmFsdWUsICJzdG9yZSB2YWx1ZSJfcyk7CiAgICAgV0FTTV9UUllfUE9Q
X0VYUFJFU1NJT05fU1RBQ0tfSU5UTyhwb2ludGVyLCAic3RvcmUgcG9pbnRlciJfcyk7CiAKLSAg
ICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKHBvaW50ZXIudHlwZSgpLmtpbmQgIT0gbV9pbmZvLm1l
bW9yeShtZW1vcnlJbmRleCkuYWRkcmVzc1R5cGUoKS5hc1dhc21UeXBlS2luZCgpLCBtX2N1cnJl
bnRPcGNvZGUsICIgcG9pbnRlciB0eXBlIG1pc21hdGNoIl9zKTsKKyAgICBpZiAobV9pbmZvLm1l
bW9yeShtZW1vcnlJbmRleCkuaXNNZW1vcnk2NCgpKQorICAgICAgICBXQVNNX1ZBTElEQVRPUl9G
QUlMX0lGKCFwb2ludGVyLnR5cGUoKS5pc0k2NCgpLCBtX2N1cnJlbnRPcGNvZGUsICIgcG9pbnRl
ciB0eXBlIG1pc21hdGNoIl9zKTsKKyAgICBlbHNlCisgICAgICAgIFdBU01fVkFMSURBVE9SX0ZB
SUxfSUYoIXBvaW50ZXIudHlwZSgpLmlzSTMyKCksIG1fY3VycmVudE9wY29kZSwgIiBwb2ludGVy
IHR5cGUgbWlzbWF0Y2giX3MpOwogCiAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRih2YWx1ZS50
eXBlKCkgIT0gbWVtb3J5VHlwZSwgbV9jdXJyZW50T3Bjb2RlLCAiIHZhbHVlIHR5cGUgbWlzbWF0
Y2giX3MpOwogCkBAIC03OTMsMjMgKzgwMCwxNiBAQCBhdXRvIEZ1bmN0aW9uUGFyc2VyPENvbnRl
eHQ+OjphdG9taWNMb2FkKEV4dEF0b21pY09wVHlwZSBvcCwgVHlwZSBtZW1vcnlUeXBlKSAtPgog
ICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIW1faW5mby5tZW1vcnlDb3VudCgpLCAiYXRvbWlj
IGluc3RydWN0aW9uIHdpdGhvdXQgbWVtb3J5Il9zKTsKIAogICAgIHVpbnQzMl90IGFsaWdubWVu
dDsKLSAgICB1aW50NjRfdCBvZmZzZXQ7CisgICAgdWludDMyX3Qgb2Zmc2V0OwogICAgIFR5cGVk
RXhwcmVzc2lvbiBwb2ludGVyOwogICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUlu
dDMyKGFsaWdubWVudCksICJjYW4ndCBnZXQgbG9hZCBhbGlnbm1lbnQiX3MpOwogICAgIHVpbnQ4
X3QgbWVtb3J5SW5kZXg7CiAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighcGFyc2VNZW1vcnlJbmRl
eEFuZEZpeHVwQWxpZ25tZW50KGFsaWdubWVudCwgbWVtb3J5SW5kZXgpLCAiY2FuJ3QgZ2V0IG1l
bW9yeSBpbmRleCIpOwogICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoYWxpZ25tZW50ICE9IG1lbW9y
eUxvZzJBbGlnbm1lbnQob3ApLCAiYnl0ZSBhbGlnbm1lbnQgIl9zLCAxdWxsIDw8IGFsaWdubWVu
dCwgIiBkb2VzIG5vdCBtYXRjaCBhZ2FpbnN0IGF0b21pYyBvcCdzIG5hdHVyYWwgYWxpZ25tZW50
ICJfcywgMXVsbCA8PCBtZW1vcnlMb2cyQWxpZ25tZW50KG9wKSk7Ci0KLSAgICBpZiAobV9pbmZv
Lm1lbW9yeShtZW1vcnlJbmRleCkuaXNNZW1vcnk2NCgpKQotICAgICAgICBXQVNNX1BBUlNFUl9G
QUlMX0lGKCFwYXJzZVZhclVJbnQ2NChvZmZzZXQpLCAiY2FuJ3QgZ2V0IGxvYWQgb2Zmc2V0Il9z
KTsKLSAgICBlbHNlIHsKLSAgICAgICAgdWludDMyX3Qgb2Zmc2V0MzI7Ci0gICAgICAgIFdBU01f
UEFSU0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKG9mZnNldDMyKSwgImNhbid0IGdldCBsb2Fk
IG9mZnNldCJfcyk7Ci0gICAgICAgIG9mZnNldCA9IG9mZnNldDMyOwotICAgIH0KKyAgICBXQVNN
X1BBUlNFUl9GQUlMX0lGKCFwYXJzZVZhclVJbnQzMihvZmZzZXQpLCAiY2FuJ3QgZ2V0IGxvYWQg
b2Zmc2V0Il9zKTsKICAgICBXQVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKHBvaW50
ZXIsICJsb2FkIHBvaW50ZXIiX3MpOwogCi0gICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRihwb2lu
dGVyLnR5cGUoKS5raW5kICE9IG1faW5mby5tZW1vcnkobWVtb3J5SW5kZXgpLmFkZHJlc3NUeXBl
KCkuYXNXYXNtVHlwZUtpbmQoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG9wKSwgIiBwb2ludGVy
IHR5cGUgbWlzbWF0Y2giX3MpOworICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIXBvaW50ZXIu
dHlwZSgpLmlzSTMyKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihvcCksICIgcG9pbnRlciB0eXBl
IG1pc21hdGNoIl9zKTsKIAogICAgIEV4cHJlc3Npb25UeXBlIHJlc3VsdDsKICAgICBXQVNNX1RS
WV9BRERfVE9fQ09OVEVYVChhdG9taWNMb2FkKG9wLCBtZW1vcnlUeXBlLCBwb2ludGVyLCByZXN1
bHQsIG9mZnNldCwgbWVtb3J5SW5kZXgpKTsKQEAgLTgyMywyNSArODIzLDE4IEBAIGF1dG8gRnVu
Y3Rpb25QYXJzZXI8Q29udGV4dD46OmF0b21pY1N0b3JlKEV4dEF0b21pY09wVHlwZSBvcCwgVHlw
ZSBtZW1vcnlUeXBlKSAtCiAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRighbV9pbmZvLm1lbW9y
eUNvdW50KCksICJhdG9taWMgaW5zdHJ1Y3Rpb24gd2l0aG91dCBtZW1vcnkiX3MpOwogCiAgICAg
dWludDMyX3QgYWxpZ25tZW50OwotICAgIHVpbnQ2NF90IG9mZnNldDsKKyAgICB1aW50MzJfdCBv
ZmZzZXQ7CiAgICAgVHlwZWRFeHByZXNzaW9uIHZhbHVlOwogICAgIFR5cGVkRXhwcmVzc2lvbiBw
b2ludGVyOwogICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKGFsaWdubWVu
dCksICJjYW4ndCBnZXQgc3RvcmUgYWxpZ25tZW50Il9zKTsKICAgICB1aW50OF90IG1lbW9yeUlu
ZGV4OwogICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlTWVtb3J5SW5kZXhBbmRGaXh1cEFs
aWdubWVudChhbGlnbm1lbnQsIG1lbW9yeUluZGV4KSwgImNhbid0IGdldCBtZW1vcnkgaW5kZXgi
KTsKICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKGFsaWdubWVudCAhPSBtZW1vcnlMb2cyQWxpZ25t
ZW50KG9wKSwgImJ5dGUgYWxpZ25tZW50ICJfcywgMXVsbCA8PCBhbGlnbm1lbnQsICIgZG9lcyBu
b3QgbWF0Y2ggYWdhaW5zdCBhdG9taWMgb3AncyBuYXR1cmFsIGFsaWdubWVudCAiX3MsIDF1bGwg
PDwgbWVtb3J5TG9nMkFsaWdubWVudChvcCkpOwotICAgIGlmIChtX2luZm8ubWVtb3J5KG1lbW9y
eUluZGV4KS5pc01lbW9yeTY0KCkpCi0gICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNl
VmFyVUludDY0KG9mZnNldCksICJjYW4ndCBnZXQgc3RvcmUgb2Zmc2V0Il9zKTsKLSAgICBlbHNl
IHsKLSAgICAgICAgdWludDMyX3Qgb2Zmc2V0MzI7Ci0gICAgICAgIFdBU01fUEFSU0VSX0ZBSUxf
SUYoIXBhcnNlVmFyVUludDMyKG9mZnNldDMyKSwgImNhbid0IGdldCBzdG9yZSBvZmZzZXQiX3Mp
OwotICAgICAgICBvZmZzZXQgPSBvZmZzZXQzMjsKLSAgICB9Ci0KKyAgICBXQVNNX1BBUlNFUl9G
QUlMX0lGKCFwYXJzZVZhclVJbnQzMihvZmZzZXQpLCAiY2FuJ3QgZ2V0IHN0b3JlIG9mZnNldCJf
cyk7CiAgICAgV0FTTV9UUllfUE9QX0VYUFJFU1NJT05fU1RBQ0tfSU5UTyh2YWx1ZSwgInN0b3Jl
IHZhbHVlIl9zKTsKICAgICBXQVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKHBvaW50
ZXIsICJzdG9yZSBwb2ludGVyIl9zKTsKIAotICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYocG9p
bnRlci50eXBlKCkua2luZCAhPSBtX2luZm8ubWVtb3J5KG1lbW9yeUluZGV4KS5hZGRyZXNzVHlw
ZSgpLmFzV2FzbVR5cGVLaW5kKCksIG1fY3VycmVudE9wY29kZSwgIiBwb2ludGVyIHR5cGUgbWlz
bWF0Y2giX3MpOworICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIXBvaW50ZXIudHlwZSgpLmlz
STMyKCksIG1fY3VycmVudE9wY29kZSwgIiBwb2ludGVyIHR5cGUgbWlzbWF0Y2giX3MpOwogICAg
IFdBU01fVkFMSURBVE9SX0ZBSUxfSUYodmFsdWUudHlwZSgpICE9IG1lbW9yeVR5cGUsIG1fY3Vy
cmVudE9wY29kZSwgIiB2YWx1ZSB0eXBlIG1pc21hdGNoIl9zKTsKIAogICAgIFdBU01fVFJZX0FE
RF9UT19DT05URVhUKGF0b21pY1N0b3JlKG9wLCBtZW1vcnlUeXBlLCBwb2ludGVyLCB2YWx1ZSwg
b2Zmc2V0LCBtZW1vcnlJbmRleCkpOwpAQCAtODU0LDI0ICs4NDcsMTggQEAgYXV0byBGdW5jdGlv
blBhcnNlcjxDb250ZXh0Pjo6YXRvbWljQmluYXJ5Uk1XKEV4dEF0b21pY09wVHlwZSBvcCwgVHlw
ZSBtZW1vcnlUeXAKICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFtX2luZm8ubWVtb3J5Q291
bnQoKSwgImF0b21pYyBpbnN0cnVjdGlvbiB3aXRob3V0IG1lbW9yeSJfcyk7CiAKICAgICB1aW50
MzJfdCBhbGlnbm1lbnQ7Ci0gICAgdWludDY0X3Qgb2Zmc2V0OworICAgIHVpbnQzMl90IG9mZnNl
dDsKICAgICBUeXBlZEV4cHJlc3Npb24gcG9pbnRlcjsKICAgICBUeXBlZEV4cHJlc3Npb24gdmFs
dWU7CiAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighcGFyc2VWYXJVSW50MzIoYWxpZ25tZW50KSwg
ImNhbid0IGdldCBsb2FkIGFsaWdubWVudCJfcyk7CiAgICAgdWludDhfdCBtZW1vcnlJbmRleDsK
ICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJzZU1lbW9yeUluZGV4QW5kRml4dXBBbGlnbm1l
bnQoYWxpZ25tZW50LCBtZW1vcnlJbmRleCksICJjYW4ndCBnZXQgbWVtb3J5IGluZGV4Iik7CiAg
ICAgV0FTTV9QQVJTRVJfRkFJTF9JRihhbGlnbm1lbnQgIT0gbWVtb3J5TG9nMkFsaWdubWVudChv
cCksICJieXRlIGFsaWdubWVudCAiX3MsIDF1bGwgPDwgYWxpZ25tZW50LCAiIGRvZXMgbm90IG1h
dGNoIGFnYWluc3QgYXRvbWljIG9wJ3MgbmF0dXJhbCBhbGlnbm1lbnQgIl9zLCAxdWxsIDw8IG1l
bW9yeUxvZzJBbGlnbm1lbnQob3ApKTsKLSAgICBpZiAobV9pbmZvLm1lbW9yeShtZW1vcnlJbmRl
eCkuaXNNZW1vcnk2NCgpKQotICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJzZVZhclVJ
bnQ2NChvZmZzZXQpLCAiY2FuJ3QgZ2V0IGxvYWQgb2Zmc2V0Il9zKTsKLSAgICBlbHNlIHsKLSAg
ICAgICAgdWludDMyX3Qgb2Zmc2V0MzI7Ci0gICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBh
cnNlVmFyVUludDMyKG9mZnNldDMyKSwgImNhbid0IGdldCBsb2FkIG9mZnNldCJfcyk7Ci0gICAg
ICAgIG9mZnNldCA9IG9mZnNldDMyOwotICAgIH0KKyAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFw
YXJzZVZhclVJbnQzMihvZmZzZXQpLCAiY2FuJ3QgZ2V0IGxvYWQgb2Zmc2V0Il9zKTsKICAgICBX
QVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKHZhbHVlLCAidmFsdWUiX3MpOwogICAg
IFdBU01fVFJZX1BPUF9FWFBSRVNTSU9OX1NUQUNLX0lOVE8ocG9pbnRlciwgInBvaW50ZXIiX3Mp
OwogCi0gICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRihwb2ludGVyLnR5cGUoKS5raW5kICE9IG1f
aW5mby5tZW1vcnkobWVtb3J5SW5kZXgpLmFkZHJlc3NUeXBlKCkuYXNXYXNtVHlwZUtpbmQoKSwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG9wKSwgIiBwb2ludGVyIHR5cGUgbWlzbWF0Y2giX3MpOwor
ICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIXBvaW50ZXIudHlwZSgpLmlzSTMyKCksIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihvcCksICIgcG9pbnRlciB0eXBlIG1pc21hdGNoIl9zKTsKICAgICBX
QVNNX1ZBTElEQVRPUl9GQUlMX0lGKHZhbHVlLnR5cGUoKSAhPSBtZW1vcnlUeXBlLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4ob3ApLCAiIHZhbHVlIHR5cGUgbWlzbWF0Y2giX3MpOwogCiAgICAgRXhw
cmVzc2lvblR5cGUgcmVzdWx0OwpAQCAtODg2LDcgKzg3Myw3IEBAIGF1dG8gRnVuY3Rpb25QYXJz
ZXI8Q29udGV4dD46OmF0b21pY0NvbXBhcmVFeGNoYW5nZShFeHRBdG9taWNPcFR5cGUgb3AsIFR5
cGUgbWVtCiAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRighbV9pbmZvLm1lbW9yeUNvdW50KCks
ICJhdG9taWMgaW5zdHJ1Y3Rpb24gd2l0aG91dCBtZW1vcnkiX3MpOwogCiAgICAgdWludDMyX3Qg
YWxpZ25tZW50OwotICAgIHVpbnQ2NF90IG9mZnNldDsKKyAgICB1aW50MzJfdCBvZmZzZXQ7CiAg
ICAgVHlwZWRFeHByZXNzaW9uIHBvaW50ZXI7CiAgICAgVHlwZWRFeHByZXNzaW9uIGV4cGVjdGVk
OwogICAgIFR5cGVkRXhwcmVzc2lvbiB2YWx1ZTsKQEAgLTg5NCwxOCArODgxLDEyIEBAIGF1dG8g
RnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OmF0b21pY0NvbXBhcmVFeGNoYW5nZShFeHRBdG9taWNP
cFR5cGUgb3AsIFR5cGUgbWVtCiAgICAgdWludDhfdCBtZW1vcnlJbmRleDsKICAgICBXQVNNX1BB
UlNFUl9GQUlMX0lGKCFwYXJzZU1lbW9yeUluZGV4QW5kRml4dXBBbGlnbm1lbnQoYWxpZ25tZW50
LCBtZW1vcnlJbmRleCksICJjYW4ndCBnZXQgbWVtb3J5IGluZGV4Iik7CiAgICAgV0FTTV9QQVJT
RVJfRkFJTF9JRihhbGlnbm1lbnQgIT0gIG1lbW9yeUxvZzJBbGlnbm1lbnQob3ApLCAiYnl0ZSBh
bGlnbm1lbnQgIl9zLCAxdWxsIDw8IGFsaWdubWVudCwgIiBkb2VzIG5vdCBtYXRjaCBhZ2FpbnN0
IGF0b21pYyBvcCdzIG5hdHVyYWwgYWxpZ25tZW50ICJfcywgMXVsbCA8PCBtZW1vcnlMb2cyQWxp
Z25tZW50KG9wKSk7Ci0gICAgaWYgKG1faW5mby5tZW1vcnkobWVtb3J5SW5kZXgpLmlzTWVtb3J5
NjQoKSkKLSAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighcGFyc2VWYXJVSW50NjQob2Zmc2V0
KSwgImNhbid0IGdldCBsb2FkIG9mZnNldCJfcyk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIHVpbnQz
Ml90IG9mZnNldDMyOwotICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJzZVZhclVJbnQz
MihvZmZzZXQzMiksICJjYW4ndCBnZXQgbG9hZCBvZmZzZXQiX3MpOwotICAgICAgICBvZmZzZXQg
PSBvZmZzZXQzMjsKLSAgICB9CisgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighcGFyc2VWYXJVSW50
MzIob2Zmc2V0KSwgImNhbid0IGdldCBsb2FkIG9mZnNldCJfcyk7CiAgICAgV0FTTV9UUllfUE9Q
X0VYUFJFU1NJT05fU1RBQ0tfSU5UTyh2YWx1ZSwgInZhbHVlIl9zKTsKICAgICBXQVNNX1RSWV9Q
T1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKGV4cGVjdGVkLCAiZXhwZWN0ZWQiX3MpOwogICAgIFdB
U01fVFJZX1BPUF9FWFBSRVNTSU9OX1NUQUNLX0lOVE8ocG9pbnRlciwgInBvaW50ZXIiX3MpOwog
Ci0gICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRihwb2ludGVyLnR5cGUoKS5raW5kICE9IG1faW5m
by5tZW1vcnkobWVtb3J5SW5kZXgpLmFkZHJlc3NUeXBlKCkuYXNXYXNtVHlwZUtpbmQoKSwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KG9wKSwgIiBwb2ludGVyIHR5cGUgbWlzbWF0Y2giX3MpOworICAg
IFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIXBvaW50ZXIudHlwZSgpLmlzSTMyKCksIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihvcCksICIgcG9pbnRlciB0eXBlIG1pc21hdGNoIl9zKTsKICAgICBXQVNN
X1ZBTElEQVRPUl9GQUlMX0lGKGV4cGVjdGVkLnR5cGUoKSAhPSBtZW1vcnlUeXBlLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4ob3ApLCAiIGV4cGVjdGVkIHR5cGUgbWlzbWF0Y2giX3MpOwogICAgIFdB
U01fVkFMSURBVE9SX0ZBSUxfSUYodmFsdWUudHlwZSgpICE9IG1lbW9yeVR5cGUsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihvcCksICIgdmFsdWUgdHlwZSBtaXNtYXRjaCJfcyk7CiAKQEAgLTkyMSw3
ICs5MDIsNyBAQCBhdXRvIEZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjphdG9taWNXYWl0KEV4dEF0
b21pY09wVHlwZSBvcCwgVHlwZSBtZW1vcnlUeXBlKSAtPgogICAgIFdBU01fVkFMSURBVE9SX0ZB
SUxfSUYoIW1faW5mby5tZW1vcnlDb3VudCgpLCAiYXRvbWljIGluc3RydWN0aW9uIHdpdGhvdXQg
bWVtb3J5Il9zKTsKIAogICAgIHVpbnQzMl90IGFsaWdubWVudDsKLSAgICB1aW50NjRfdCBvZmZz
ZXQ7CisgICAgdWludDMyX3Qgb2Zmc2V0OwogICAgIFR5cGVkRXhwcmVzc2lvbiBwb2ludGVyOwog
ICAgIFR5cGVkRXhwcmVzc2lvbiB2YWx1ZTsKICAgICBUeXBlZEV4cHJlc3Npb24gdGltZW91dDsK
QEAgLTkyOSwxOCArOTEwLDEyIEBAIGF1dG8gRnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OmF0b21p
Y1dhaXQoRXh0QXRvbWljT3BUeXBlIG9wLCBUeXBlIG1lbW9yeVR5cGUpIC0+CiAgICAgdWludDhf
dCBtZW1vcnlJbmRleDsKICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFwYXJzZU1lbW9yeUluZGV4
QW5kRml4dXBBbGlnbm1lbnQoYWxpZ25tZW50LCBtZW1vcnlJbmRleCksICJjYW4ndCBnZXQgbWVt
b3J5IGluZGV4Iik7CiAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRihhbGlnbm1lbnQgIT0gbWVtb3J5
TG9nMkFsaWdubWVudChvcCksICJieXRlIGFsaWdubWVudCAiX3MsIDF1bGwgPDwgYWxpZ25tZW50
LCAiIGRvZXMgbm90IG1hdGNoIGFnYWluc3QgYXRvbWljIG9wJ3MgbmF0dXJhbCBhbGlnbm1lbnQg
Il9zLCAxdWxsIDw8IG1lbW9yeUxvZzJBbGlnbm1lbnQob3ApKTsKLSAgICBpZiAobV9pbmZvLm1l
bW9yeShtZW1vcnlJbmRleCkuaXNNZW1vcnk2NCgpKQotICAgICAgICBXQVNNX1BBUlNFUl9GQUlM
X0lGKCFwYXJzZVZhclVJbnQ2NChvZmZzZXQpLCAiY2FuJ3QgZ2V0IGxvYWQgb2Zmc2V0Il9zKTsK
LSAgICBlbHNlIHsKLSAgICAgICAgdWludDMyX3Qgb2Zmc2V0MzI7Ci0gICAgICAgIFdBU01fUEFS
U0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKG9mZnNldDMyKSwgImNhbid0IGdldCBsb2FkIG9m
ZnNldCJfcyk7Ci0gICAgICAgIG9mZnNldCA9IG9mZnNldDMyOwotICAgIH0KKyAgICBXQVNNX1BB
UlNFUl9GQUlMX0lGKCFwYXJzZVZhclVJbnQzMihvZmZzZXQpLCAiY2FuJ3QgZ2V0IGxvYWQgb2Zm
c2V0Il9zKTsKICAgICBXQVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKHRpbWVvdXQs
ICJ0aW1lb3V0Il9zKTsKICAgICBXQVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKHZh
bHVlLCAidmFsdWUiX3MpOwogICAgIFdBU01fVFJZX1BPUF9FWFBSRVNTSU9OX1NUQUNLX0lOVE8o
cG9pbnRlciwgInBvaW50ZXIiX3MpOwogCi0gICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRihwb2lu
dGVyLnR5cGUoKS5raW5kICE9IG1faW5mby5tZW1vcnkobWVtb3J5SW5kZXgpLmFkZHJlc3NUeXBl
KCkuYXNXYXNtVHlwZUtpbmQoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG9wKSwgIiBwb2ludGVy
IHR5cGUgbWlzbWF0Y2giX3MpOworICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIXBvaW50ZXIu
dHlwZSgpLmlzSTMyKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihvcCksICIgcG9pbnRlciB0eXBl
IG1pc21hdGNoIl9zKTsKICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKHZhbHVlLnR5cGUoKSAh
PSBtZW1vcnlUeXBlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ob3ApLCAiIHZhbHVlIHR5cGUgbWlz
bWF0Y2giX3MpOwogICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIXRpbWVvdXQudHlwZSgpLmlz
STY0KCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihvcCksICIgdGltZW91dCB0eXBlIG1pc21hdGNo
Il9zKTsKIApAQCAtOTU2LDI0ICs5MzEsMTggQEAgYXV0byBGdW5jdGlvblBhcnNlcjxDb250ZXh0
Pjo6YXRvbWljTm90aWZ5KEV4dEF0b21pY09wVHlwZSBvcCkgLT4gUGFydGlhbFJlc3VsdAogICAg
IFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIW1faW5mby5tZW1vcnlDb3VudCgpLCAiYXRvbWljIGlu
c3RydWN0aW9uIHdpdGhvdXQgbWVtb3J5Il9zKTsKIAogICAgIHVpbnQzMl90IGFsaWdubWVudDsK
LSAgICB1aW50NjRfdCBvZmZzZXQ7CisgICAgdWludDMyX3Qgb2Zmc2V0OwogICAgIFR5cGVkRXhw
cmVzc2lvbiBwb2ludGVyOwogICAgIFR5cGVkRXhwcmVzc2lvbiBjb3VudDsKICAgICBXQVNNX1BB
UlNFUl9GQUlMX0lGKCFwYXJzZVZhclVJbnQzMihhbGlnbm1lbnQpLCAiY2FuJ3QgZ2V0IGxvYWQg
YWxpZ25tZW50Il9zKTsKICAgICB1aW50OF90IG1lbW9yeUluZGV4OwogICAgIFdBU01fUEFSU0VS
X0ZBSUxfSUYoIXBhcnNlTWVtb3J5SW5kZXhBbmRGaXh1cEFsaWdubWVudChhbGlnbm1lbnQsIG1l
bW9yeUluZGV4KSwgImNhbid0IGdldCBtZW1vcnkgaW5kZXgiKTsKICAgICBXQVNNX1BBUlNFUl9G
QUlMX0lGKGFsaWdubWVudCAhPSBtZW1vcnlMb2cyQWxpZ25tZW50KG9wKSwgImJ5dGUgYWxpZ25t
ZW50ICJfcywgMXVsbCA8PCBhbGlnbm1lbnQsICIgZG9lcyBub3QgbWF0Y2ggYWdhaW5zdCBhdG9t
aWMgb3AncyBuYXR1cmFsIGFsaWdubWVudCAiX3MsIDF1bGwgPDwgbWVtb3J5TG9nMkFsaWdubWVu
dChvcCkpOwotICAgIGlmIChtX2luZm8ubWVtb3J5KG1lbW9yeUluZGV4KS5pc01lbW9yeTY0KCkp
Ci0gICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDY0KG9mZnNldCksICJj
YW4ndCBnZXQgbG9hZCBvZmZzZXQiX3MpOwotICAgIGVsc2UgewotICAgICAgICB1aW50MzJfdCBv
ZmZzZXQzMjsKLSAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighcGFyc2VWYXJVSW50MzIob2Zm
c2V0MzIpLCAiY2FuJ3QgZ2V0IGxvYWQgb2Zmc2V0Il9zKTsKLSAgICAgICAgb2Zmc2V0ID0gb2Zm
c2V0MzI7Ci0gICAgfQorICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKG9m
ZnNldCksICJjYW4ndCBnZXQgbG9hZCBvZmZzZXQiX3MpOwogICAgIFdBU01fVFJZX1BPUF9FWFBS
RVNTSU9OX1NUQUNLX0lOVE8oY291bnQsICJjb3VudCJfcyk7CiAgICAgV0FTTV9UUllfUE9QX0VY
UFJFU1NJT05fU1RBQ0tfSU5UTyhwb2ludGVyLCAicG9pbnRlciJfcyk7CiAKLSAgICBXQVNNX1ZB
TElEQVRPUl9GQUlMX0lGKHBvaW50ZXIudHlwZSgpLmtpbmQgIT0gbV9pbmZvLm1lbW9yeShtZW1v
cnlJbmRleCkuYWRkcmVzc1R5cGUoKS5hc1dhc21UeXBlS2luZCgpLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4ob3ApLCAiIHBvaW50ZXIgdHlwZSBtaXNtYXRjaCJfcyk7CisgICAgV0FTTV9WQUxJREFU
T1JfRkFJTF9JRighcG9pbnRlci50eXBlKCkuaXNJMzIoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KG9wKSwgIiBwb2ludGVyIHR5cGUgbWlzbWF0Y2giX3MpOwogICAgIFdBU01fVkFMSURBVE9SX0ZB
SUxfSUYoIWNvdW50LnR5cGUoKS5pc0kzMigpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ob3ApLCAi
IGNvdW50IHR5cGUgbWlzbWF0Y2giX3MpOyAvLyBUaGUgc3BlYydzIGRlZmluaXRpb24gaXMgc2F5
aW5nIGk2NCwgYnV0IGFsbCBpbXBsZW1lbnRhdGlvbnMgKGluY2x1ZGluZyB0ZXN0cykgYXJlIHVz
aW5nIGkzMi4gU28gbG9va3MgbGlrZSB0aGUgc3BlYyBpcyB3cm9uZy4KIAogICAgIEV4cHJlc3Np
b25UeXBlIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21JUEludEdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSVBJ
bnRHZW5lcmF0b3IuY3BwCmluZGV4IGM5Y2ViOTYyZmMwYy4uZTQ4ZGUxYTllMzcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSVBJbnRHZW5lcmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JUEludEdlbmVyYXRvci5jcHAKQEAg
LTMxNSwxMyArMzE1LDEzIEBAIHB1YmxpYzoKIAogICAgIC8vIEF0b21pY3MKIAotICAgIFtbbm9k
aXNjYXJkXV0gUGFydGlhbFJlc3VsdCBhdG9taWNMb2FkKEV4dEF0b21pY09wVHlwZSwgVHlwZSwg
RXhwcmVzc2lvblR5cGUsIEV4cHJlc3Npb25UeXBlJiwgdWludDY0X3QsIHVpbnQ4X3QpOwotICAg
IFtbbm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBhdG9taWNTdG9yZShFeHRBdG9taWNPcFR5cGUs
IFR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlwZSwgdWludDY0X3QsIHVpbnQ4X3Qp
OwotICAgIFtbbm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBhdG9taWNCaW5hcnlSTVcoRXh0QXRv
bWljT3BUeXBlLCBUeXBlLCBFeHByZXNzaW9uVHlwZSwgRXhwcmVzc2lvblR5cGUsIEV4cHJlc3Np
b25UeXBlJiwgdWludDY0X3QsIHVpbnQ4X3QpOwotICAgIFtbbm9kaXNjYXJkXV0gUGFydGlhbFJl
c3VsdCBhdG9taWNDb21wYXJlRXhjaGFuZ2UoRXh0QXRvbWljT3BUeXBlLCBUeXBlLCBFeHByZXNz
aW9uVHlwZSwgRXhwcmVzc2lvblR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlwZSYs
IHVpbnQ2NF90LCB1aW50OF90KTsKKyAgICBbW25vZGlzY2FyZF1dIFBhcnRpYWxSZXN1bHQgYXRv
bWljTG9hZChFeHRBdG9taWNPcFR5cGUsIFR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9u
VHlwZSYsIHVpbnQzMl90LCB1aW50OF90KTsKKyAgICBbW25vZGlzY2FyZF1dIFBhcnRpYWxSZXN1
bHQgYXRvbWljU3RvcmUoRXh0QXRvbWljT3BUeXBlLCBUeXBlLCBFeHByZXNzaW9uVHlwZSwgRXhw
cmVzc2lvblR5cGUsIHVpbnQzMl90LCB1aW50OF90KTsKKyAgICBbW25vZGlzY2FyZF1dIFBhcnRp
YWxSZXN1bHQgYXRvbWljQmluYXJ5Uk1XKEV4dEF0b21pY09wVHlwZSwgVHlwZSwgRXhwcmVzc2lv
blR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlwZSYsIHVpbnQzMl90LCB1aW50OF90
KTsKKyAgICBbW25vZGlzY2FyZF1dIFBhcnRpYWxSZXN1bHQgYXRvbWljQ29tcGFyZUV4Y2hhbmdl
KEV4dEF0b21pY09wVHlwZSwgVHlwZSwgRXhwcmVzc2lvblR5cGUsIEV4cHJlc3Npb25UeXBlLCBF
eHByZXNzaW9uVHlwZSwgRXhwcmVzc2lvblR5cGUmLCB1aW50MzJfdCwgdWludDhfdCk7CiAKLSAg
ICBbW25vZGlzY2FyZF1dIFBhcnRpYWxSZXN1bHQgYXRvbWljV2FpdChFeHRBdG9taWNPcFR5cGUs
IEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlwZSwgRXhwcmVzc2lvblR5cGUsIEV4cHJlc3Np
b25UeXBlJiwgdWludDY0X3QsIHVpbnQ4X3QpOwotICAgIFtbbm9kaXNjYXJkXV0gUGFydGlhbFJl
c3VsdCBhdG9taWNOb3RpZnkoRXh0QXRvbWljT3BUeXBlLCBFeHByZXNzaW9uVHlwZSwgRXhwcmVz
c2lvblR5cGUsIEV4cHJlc3Npb25UeXBlJiwgdWludDY0X3QsIHVpbnQ4X3QpOworICAgIFtbbm9k
aXNjYXJkXV0gUGFydGlhbFJlc3VsdCBhdG9taWNXYWl0KEV4dEF0b21pY09wVHlwZSwgRXhwcmVz
c2lvblR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlwZSwgRXhwcmVzc2lvblR5cGUm
LCB1aW50MzJfdCwgdWludDhfdCk7CisgICAgW1tub2Rpc2NhcmRdXSBQYXJ0aWFsUmVzdWx0IGF0
b21pY05vdGlmeShFeHRBdG9taWNPcFR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlw
ZSwgRXhwcmVzc2lvblR5cGUmLCB1aW50MzJfdCwgdWludDhfdCk7CiAgICAgW1tub2Rpc2NhcmRd
XSBQYXJ0aWFsUmVzdWx0IGF0b21pY0ZlbmNlKEV4dEF0b21pY09wVHlwZSwgdWludDhfdCk7CiAK
ICAgICAvLyBTYXR1cmF0ZWQgdHJ1bmNhdGlvbgpAQCAtMTEyOCwzNyArMTEyOCwzNyBAQCBJUElu
dEdlbmVyYXRvcjo6RXhwcmVzc2lvblR5cGUgSVBJbnRHZW5lcmF0b3I6OmFkZFNJTURDb25zdGFu
dCh2MTI4X3QpCiAKIC8vIEF0b21pY3MKIAotW1tub2Rpc2NhcmRdXSBQYXJ0aWFsUmVzdWx0IElQ
SW50R2VuZXJhdG9yOjphdG9taWNMb2FkKEV4dEF0b21pY09wVHlwZSwgVHlwZSwgRXhwcmVzc2lv
blR5cGUsIEV4cHJlc3Npb25UeXBlJiwgdWludDY0X3QsIHVpbnQ4X3QpCitbW25vZGlzY2FyZF1d
IFBhcnRpYWxSZXN1bHQgSVBJbnRHZW5lcmF0b3I6OmF0b21pY0xvYWQoRXh0QXRvbWljT3BUeXBl
LCBUeXBlLCBFeHByZXNzaW9uVHlwZSwgRXhwcmVzc2lvblR5cGUmLCB1aW50MzJfdCwgdWludDhf
dCkKIHsKICAgICByZXR1cm4geyB9OwogfQogCi1bW25vZGlzY2FyZF1dIFBhcnRpYWxSZXN1bHQg
SVBJbnRHZW5lcmF0b3I6OmF0b21pY1N0b3JlKEV4dEF0b21pY09wVHlwZSwgVHlwZSwgRXhwcmVz
c2lvblR5cGUsIEV4cHJlc3Npb25UeXBlLCB1aW50NjRfdCwgdWludDhfdCkKK1tbbm9kaXNjYXJk
XV0gUGFydGlhbFJlc3VsdCBJUEludEdlbmVyYXRvcjo6YXRvbWljU3RvcmUoRXh0QXRvbWljT3BU
eXBlLCBUeXBlLCBFeHByZXNzaW9uVHlwZSwgRXhwcmVzc2lvblR5cGUsIHVpbnQzMl90LCB1aW50
OF90KQogewogICAgIGNoYW5nZVN0YWNrU2l6ZSgtMik7CiAgICAgcmV0dXJuIHsgfTsKIH0KIAot
W1tub2Rpc2NhcmRdXSBQYXJ0aWFsUmVzdWx0IElQSW50R2VuZXJhdG9yOjphdG9taWNCaW5hcnlS
TVcoRXh0QXRvbWljT3BUeXBlLCBUeXBlLCBFeHByZXNzaW9uVHlwZSwgRXhwcmVzc2lvblR5cGUs
IEV4cHJlc3Npb25UeXBlJiwgdWludDY0X3QsIHVpbnQ4X3QpCitbW25vZGlzY2FyZF1dIFBhcnRp
YWxSZXN1bHQgSVBJbnRHZW5lcmF0b3I6OmF0b21pY0JpbmFyeVJNVyhFeHRBdG9taWNPcFR5cGUs
IFR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlwZSwgRXhwcmVzc2lvblR5cGUmLCB1
aW50MzJfdCwgdWludDhfdCkKIHsKICAgICBjaGFuZ2VTdGFja1NpemUoLTEpOwogICAgIHJldHVy
biB7IH07CiB9CiAKLVtbbm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBJUEludEdlbmVyYXRvcjo6
YXRvbWljQ29tcGFyZUV4Y2hhbmdlKEV4dEF0b21pY09wVHlwZSwgVHlwZSwgRXhwcmVzc2lvblR5
cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlwZSwgRXhwcmVzc2lvblR5cGUmLCB1aW50
NjRfdCwgdWludDhfdCkKK1tbbm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBJUEludEdlbmVyYXRv
cjo6YXRvbWljQ29tcGFyZUV4Y2hhbmdlKEV4dEF0b21pY09wVHlwZSwgVHlwZSwgRXhwcmVzc2lv
blR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlwZSwgRXhwcmVzc2lvblR5cGUmLCB1
aW50MzJfdCwgdWludDhfdCkKIHsKICAgICBjaGFuZ2VTdGFja1NpemUoLTIpOwogICAgIHJldHVy
biB7IH07CiB9CiAKLVtbbm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBJUEludEdlbmVyYXRvcjo6
YXRvbWljV2FpdChFeHRBdG9taWNPcFR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlw
ZSwgRXhwcmVzc2lvblR5cGUsIEV4cHJlc3Npb25UeXBlJiwgdWludDY0X3Qgb2Zmc2V0LCB1aW50
OF90IG1lbW9yeUluZGV4KQorW1tub2Rpc2NhcmRdXSBQYXJ0aWFsUmVzdWx0IElQSW50R2VuZXJh
dG9yOjphdG9taWNXYWl0KEV4dEF0b21pY09wVHlwZSwgRXhwcmVzc2lvblR5cGUsIEV4cHJlc3Np
b25UeXBlLCBFeHByZXNzaW9uVHlwZSwgRXhwcmVzc2lvblR5cGUmLCB1aW50MzJfdCBvZmZzZXQs
IHVpbnQ4X3QgbWVtb3J5SW5kZXgpCiB7CiAgICAgY2hhbmdlU3RhY2tTaXplKC0yKTsKICAgICBt
X21ldGFkYXRhLT5hZGRBdG9taWNNZW1vcnlBY2Nlc3MobWVtb3J5SW5kZXgsIG9mZnNldCwgZ2V0
Q3VycmVudEluc3RydWN0aW9uTGVuZ3RoKCkpOwogICAgIHJldHVybiB7IH07CiB9CiAKLVtbbm9k
aXNjYXJkXV0gUGFydGlhbFJlc3VsdCBJUEludEdlbmVyYXRvcjo6YXRvbWljTm90aWZ5KEV4dEF0
b21pY09wVHlwZSwgRXhwcmVzc2lvblR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlw
ZSYsIHVpbnQ2NF90IG9mZnNldCwgdWludDhfdCBtZW1vcnlJbmRleCkKK1tbbm9kaXNjYXJkXV0g
UGFydGlhbFJlc3VsdCBJUEludEdlbmVyYXRvcjo6YXRvbWljTm90aWZ5KEV4dEF0b21pY09wVHlw
ZSwgRXhwcmVzc2lvblR5cGUsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlwZSYsIHVpbnQz
Ml90IG9mZnNldCwgdWludDhfdCBtZW1vcnlJbmRleCkKIHsKICAgICBjaGFuZ2VTdGFja1NpemUo
LTEpOwogICAgIG1fbWV0YWRhdGEtPmFkZEF0b21pY01lbW9yeUFjY2VzcyhtZW1vcnlJbmRleCwg
b2Zmc2V0LCBnZXRDdXJyZW50SW5zdHJ1Y3Rpb25MZW5ndGgoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21NZW1vcnkuY3BwCmluZGV4IGYzMGY3MGYxNDFjMC4uZWUzODY5MjdjZjZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTWVtb3J5LmNwcApAQCAtMzkxLDEz
ICszOTEsOSBAQCBFeHBlY3RlZDxQYWdlQ291bnQsIEdyb3dGYWlsUmVhc29uPiBNZW1vcnk6Omdy
b3coVk0mIHZtLCBQYWdlQ291bnQgZGVsdGEpCiAgICAgcmV0dXJuIG9sZFBhZ2VDb3VudDsKIH0K
IAotYm9vbCBNZW1vcnk6OmZpbGwodWludDY0X3Qgb2Zmc2V0LCB1aW50OF90IHRhcmdldFZhbHVl
LCB1aW50NjRfdCBjb3VudCkKK2Jvb2wgTWVtb3J5OjpmaWxsKHVpbnQzMl90IG9mZnNldCwgdWlu
dDhfdCB0YXJnZXRWYWx1ZSwgdWludDMyX3QgY291bnQpCiB7Ci0gICAgYm9vbCBkb2VzT3ZlcmZs
b3cgPSBhZGRyZXNzVHlwZSgpLmlzNjRCaXQoKQotICAgICAgICA/IHN1bU92ZXJmbG93czx1aW50
NjRfdD4ob2Zmc2V0LCBjb3VudCkKLSAgICAgICAgOiBzdW1PdmVyZmxvd3M8dWludDMyX3Q+KG9m
ZnNldCwgY291bnQpOwotCi0gICAgaWYgKGRvZXNPdmVyZmxvdykKKyAgICBpZiAoc3VtT3ZlcmZs
b3dzPHVpbnQzMl90PihvZmZzZXQsIGNvdW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgaWYgKG9mZnNldCArIGNvdW50ID4gbV9oYW5kbGUtPnNpemUoKSkKQEAgLTQwNywyMCArNDAz
LDEzIEBAIGJvb2wgTWVtb3J5OjpmaWxsKHVpbnQ2NF90IG9mZnNldCwgdWludDhfdCB0YXJnZXRW
YWx1ZSwgdWludDY0X3QgY291bnQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgTWVtb3J5
Ojpjb3B5KHVpbnQ2NF90IGRzdEFkZHJlc3MsIHVpbnQ2NF90IHNyY0FkZHJlc3MsIHVpbnQ2NF90
IGNvdW50KQorYm9vbCBNZW1vcnk6OmNvcHkodWludDMyX3QgZHN0QWRkcmVzcywgdWludDMyX3Qg
c3JjQWRkcmVzcywgdWludDMyX3QgY291bnQpCiB7Ci0gICAgYm9vbCBzcmNBbmRDb3VudE92ZXJm
bG93cyA9IGFkZHJlc3NUeXBlKCkuaXM2NEJpdCgpCi0gICAgICAgID8gc3VtT3ZlcmZsb3dzPHVp
bnQ2NF90PihzcmNBZGRyZXNzLCBjb3VudCkKLSAgICAgICAgOiBzdW1PdmVyZmxvd3M8dWludDMy
X3Q+KHNyY0FkZHJlc3MsIGNvdW50KTsKLSAgICBib29sIGRzdEFuZENvdW50T3ZlcmZsb3dzID0g
YWRkcmVzc1R5cGUoKS5pczY0Qml0KCkKLSAgICAgICAgPyBzdW1PdmVyZmxvd3M8dWludDY0X3Q+
KGRzdEFkZHJlc3MsIGNvdW50KQotICAgICAgICA6IHN1bU92ZXJmbG93czx1aW50MzJfdD4oZHN0
QWRkcmVzcywgY291bnQpOwotCi0gICAgaWYgKHNyY0FuZENvdW50T3ZlcmZsb3dzIHx8IGRzdEFu
ZENvdW50T3ZlcmZsb3dzKQorICAgIGlmIChzdW1PdmVyZmxvd3M8dWludDMyX3Q+KGRzdEFkZHJl
c3MsIGNvdW50KSB8fCBzdW1PdmVyZmxvd3M8dWludDMyX3Q+KHNyY0FkZHJlc3MsIGNvdW50KSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgY29uc3QgdWludDY0X3QgbGFzdERzdEFkZHJl
c3MgPSBkc3RBZGRyZXNzICsgY291bnQ7Ci0gICAgY29uc3QgdWludDY0X3QgbGFzdFNyY0FkZHJl
c3MgPSBzcmNBZGRyZXNzICsgY291bnQ7CisgICAgY29uc3QgdWludDMyX3QgbGFzdERzdEFkZHJl
c3MgPSBkc3RBZGRyZXNzICsgY291bnQ7CisgICAgY29uc3QgdWludDMyX3QgbGFzdFNyY0FkZHJl
c3MgPSBzcmNBZGRyZXNzICsgY291bnQ7CiAKICAgICBpZiAobGFzdERzdEFkZHJlc3MgPiBzaXpl
KCkgfHwgbGFzdFNyY0FkZHJlc3MgPiBzaXplKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaAppbmRleCAwNmZhYzA3YjIwMTUuLmIz
Y2NlYTE4MDQyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1l
bW9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21NZW1vcnkuaApAQCAt
ODksOCArODksOCBAQCBwdWJsaWM6CiAgICAgTWVtb3J5TW9kZSBtb2RlKCkgY29uc3QgeyByZXR1
cm4gbV9oYW5kbGUtPm1vZGUoKTsgfQogCiAgICAgRXhwZWN0ZWQ8UGFnZUNvdW50LCBHcm93RmFp
bFJlYXNvbj4gZ3JvdyhWTSYsIFBhZ2VDb3VudCk7Ci0gICAgYm9vbCBmaWxsKHVpbnQ2NF90LCB1
aW50OF90LCB1aW50NjRfdCk7Ci0gICAgYm9vbCBjb3B5KHVpbnQ2NF90LCB1aW50NjRfdCwgdWlu
dDY0X3QpOworICAgIGJvb2wgZmlsbCh1aW50MzJfdCwgdWludDhfdCwgdWludDMyX3QpOworICAg
IGJvb2wgY29weSh1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90KTsKICAgICBib29sIGluaXQo
dWludDY0X3QsIGNvbnN0IHVpbnQ4X3QqLCB1aW50MzJfdCk7CiAKICAgICB2b2lkIHJlZ2lzdGVy
SW5zdGFuY2UoSlNXZWJBc3NlbWJseUluc3RhbmNlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HSVJHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbU9NR0lSR2VuZXJhdG9yLmNwcAppbmRleCA5MWJlMjAyYmJkYzguLjVm
ZjY3NWQ3ZDMwYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9N
R0lSR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01H
SVJHZW5lcmF0b3IuY3BwCkBAIC03NDksMTMgKzc0OSwxMyBAQCBwdWJsaWM6CiAgICAgW1tub2Rp
c2NhcmRdXSBQYXJ0aWFsUmVzdWx0IGFkZERhdGFEcm9wKHVuc2lnbmVkKTsKIAogICAgIC8vIEF0
b21pY3MKLSAgICBbW25vZGlzY2FyZF1dIFBhcnRpYWxSZXN1bHQgYXRvbWljTG9hZChFeHRBdG9t
aWNPcFR5cGUsIFR5cGUsIEV4cHJlc3Npb25UeXBlIHBvaW50ZXIsIEV4cHJlc3Npb25UeXBlJiBy
ZXN1bHQsIHVpbnQ2NF90IG9mZnNldCwgdWludDhfdCBtZW1vcnlJbmRleCk7Ci0gICAgW1tub2Rp
c2NhcmRdXSBQYXJ0aWFsUmVzdWx0IGF0b21pY1N0b3JlKEV4dEF0b21pY09wVHlwZSwgVHlwZSwg
RXhwcmVzc2lvblR5cGUgcG9pbnRlciwgRXhwcmVzc2lvblR5cGUgdmFsdWUsIHVpbnQ2NF90IG9m
ZnNldCwgdWludDhfdCBtZW1vcnlJbmRleCk7Ci0gICAgW1tub2Rpc2NhcmRdXSBQYXJ0aWFsUmVz
dWx0IGF0b21pY0JpbmFyeVJNVyhFeHRBdG9taWNPcFR5cGUsIFR5cGUsIEV4cHJlc3Npb25UeXBl
IHBvaW50ZXIsIEV4cHJlc3Npb25UeXBlIHZhbHVlLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0LCB1
aW50NjRfdCBvZmZzZXQsIHVpbnQ4X3QgbWVtb3J5SW5kZXgpOwotICAgIFtbbm9kaXNjYXJkXV0g
UGFydGlhbFJlc3VsdCBhdG9taWNDb21wYXJlRXhjaGFuZ2UoRXh0QXRvbWljT3BUeXBlLCBUeXBl
LCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSBleHBlY3RlZCwgRXhwcmVz
c2lvblR5cGUgdmFsdWUsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQsIHVpbnQ2NF90IG9mZnNldCwg
dWludDhfdCBtZW1vcnlJbmRleCk7CisgICAgW1tub2Rpc2NhcmRdXSBQYXJ0aWFsUmVzdWx0IGF0
b21pY0xvYWQoRXh0QXRvbWljT3BUeXBlLCBUeXBlLCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBF
eHByZXNzaW9uVHlwZSYgcmVzdWx0LCB1aW50MzJfdCBvZmZzZXQsIHVpbnQ4X3QgbWVtb3J5SW5k
ZXgpOworICAgIFtbbm9kaXNjYXJkXV0gUGFydGlhbFJlc3VsdCBhdG9taWNTdG9yZShFeHRBdG9t
aWNPcFR5cGUsIFR5cGUsIEV4cHJlc3Npb25UeXBlIHBvaW50ZXIsIEV4cHJlc3Npb25UeXBlIHZh
bHVlLCB1aW50MzJfdCBvZmZzZXQsIHVpbnQ4X3QgbWVtb3J5SW5kZXgpOworICAgIFtbbm9kaXNj
YXJkXV0gUGFydGlhbFJlc3VsdCBhdG9taWNCaW5hcnlSTVcoRXh0QXRvbWljT3BUeXBlLCBUeXBl
LCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSB2YWx1ZSwgRXhwcmVzc2lv
blR5cGUmIHJlc3VsdCwgdWludDMyX3Qgb2Zmc2V0LCB1aW50OF90IG1lbW9yeUluZGV4KTsKKyAg
ICBbW25vZGlzY2FyZF1dIFBhcnRpYWxSZXN1bHQgYXRvbWljQ29tcGFyZUV4Y2hhbmdlKEV4dEF0
b21pY09wVHlwZSwgVHlwZSwgRXhwcmVzc2lvblR5cGUgcG9pbnRlciwgRXhwcmVzc2lvblR5cGUg
ZXhwZWN0ZWQsIEV4cHJlc3Npb25UeXBlIHZhbHVlLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0LCB1
aW50MzJfdCBvZmZzZXQsIHVpbnQ4X3QgbWVtb3J5SW5kZXgpOwogCi0gICAgW1tub2Rpc2NhcmRd
XSBQYXJ0aWFsUmVzdWx0IGF0b21pY1dhaXQoRXh0QXRvbWljT3BUeXBlLCBFeHByZXNzaW9uVHlw
ZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSB2YWx1ZSwgRXhwcmVzc2lvblR5cGUgdGltZW91dCwg
RXhwcmVzc2lvblR5cGUmIHJlc3VsdCwgdWludDY0X3Qgb2Zmc2V0LCB1aW50OF90IG1lbW9yeUlu
ZGV4KTsKLSAgICBbW25vZGlzY2FyZF1dIFBhcnRpYWxSZXN1bHQgYXRvbWljTm90aWZ5KEV4dEF0
b21pY09wVHlwZSwgRXhwcmVzc2lvblR5cGUgcG9pbnRlciwgRXhwcmVzc2lvblR5cGUgdmFsdWUs
IEV4cHJlc3Npb25UeXBlJiByZXN1bHQsIHVpbnQ2NF90IG9mZnNldCwgdWludDhfdCBtZW1vcnlJ
bmRleCk7CisgICAgW1tub2Rpc2NhcmRdXSBQYXJ0aWFsUmVzdWx0IGF0b21pY1dhaXQoRXh0QXRv
bWljT3BUeXBlLCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSB2YWx1ZSwg
RXhwcmVzc2lvblR5cGUgdGltZW91dCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCwgdWludDMyX3Qg
b2Zmc2V0LCB1aW50OF90IG1lbW9yeUluZGV4KTsKKyAgICBbW25vZGlzY2FyZF1dIFBhcnRpYWxS
ZXN1bHQgYXRvbWljTm90aWZ5KEV4dEF0b21pY09wVHlwZSwgRXhwcmVzc2lvblR5cGUgcG9pbnRl
ciwgRXhwcmVzc2lvblR5cGUgdmFsdWUsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQsIHVpbnQzMl90
IG9mZnNldCwgdWludDhfdCBtZW1vcnlJbmRleCk7CiAgICAgW1tub2Rpc2NhcmRdXSBQYXJ0aWFs
UmVzdWx0IGF0b21pY0ZlbmNlKEV4dEF0b21pY09wVHlwZSwgdWludDhfdCBmbGFncyk7CiAKICAg
ICAvLyBTYXR1cmF0ZWQgdHJ1bmNhdGlvbi4KQEAgLTkzMiwxNCArOTMyLDE0IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBlbWl0V3JpdGVCYXJyaWVyKFZhbHVlKiBjZWxsKTsKICAgICBWYWx1ZSogZW1p
dENoZWNrQW5kUHJlcGFyZVBvaW50ZXIoVmFsdWUqIHBvaW50ZXIsIHVpbnQ2NF90IG9mZnNldCwg
dWludDMyX3Qgc2l6ZU9mT3AsIHVpbnQ4X3QgbWVtb3J5SW5kZXgpOwogICAgIEIzOjpLaW5kIG1l
bW9yeUtpbmQoQjM6Ok9wY29kZSBtZW1vcnlPcCk7Ci0gICAgVmFsdWUqIGVtaXRMb2FkT3AoTG9h
ZE9wVHlwZSwgVmFsdWUqIHBvaW50ZXIsIHVpbnQ2NF90IG9mZnNldCk7Ci0gICAgdm9pZCBlbWl0
U3RvcmVPcChTdG9yZU9wVHlwZSwgVmFsdWUqIHBvaW50ZXIsIFZhbHVlKiwgdWludDY0X3Qgb2Zm
c2V0KTsKKyAgICBWYWx1ZSogZW1pdExvYWRPcChMb2FkT3BUeXBlLCBWYWx1ZSogcG9pbnRlciwg
dWludDMyX3Qgb2Zmc2V0KTsKKyAgICB2b2lkIGVtaXRTdG9yZU9wKFN0b3JlT3BUeXBlLCBWYWx1
ZSogcG9pbnRlciwgVmFsdWUqLCB1aW50MzJfdCBvZmZzZXQpOwogCiAgICAgVmFsdWUqIHNhbml0
aXplQXRvbWljUmVzdWx0KEV4dEF0b21pY09wVHlwZSwgVHlwZSwgVmFsdWUqIHJlc3VsdCk7Ci0g
ICAgVmFsdWUqIGVtaXRBdG9taWNMb2FkT3AoRXh0QXRvbWljT3BUeXBlLCBUeXBlLCBWYWx1ZSog
cG9pbnRlciwgdWludDY0X3Qgb2Zmc2V0KTsKLSAgICB2b2lkIGVtaXRBdG9taWNTdG9yZU9wKEV4
dEF0b21pY09wVHlwZSwgVHlwZSwgVmFsdWUqIHBvaW50ZXIsIFZhbHVlKiwgdWludDY0X3Qgb2Zm
c2V0KTsKLSAgICBWYWx1ZSogZW1pdEF0b21pY0JpbmFyeVJNV09wKEV4dEF0b21pY09wVHlwZSwg
VHlwZSwgVmFsdWUqIHBvaW50ZXIsIFZhbHVlKiwgdWludDY0X3Qgb2Zmc2V0KTsKLSAgICBWYWx1
ZSogZW1pdEF0b21pY0NvbXBhcmVFeGNoYW5nZShFeHRBdG9taWNPcFR5cGUsIFR5cGUsIFZhbHVl
KiBwb2ludGVyLCBWYWx1ZSogZXhwZWN0ZWQsIFZhbHVlKiwgdWludDY0X3Qgb2Zmc2V0KTsKKyAg
ICBWYWx1ZSogZW1pdEF0b21pY0xvYWRPcChFeHRBdG9taWNPcFR5cGUsIFR5cGUsIFZhbHVlKiBw
b2ludGVyLCB1aW50MzJfdCBvZmZzZXQpOworICAgIHZvaWQgZW1pdEF0b21pY1N0b3JlT3AoRXh0
QXRvbWljT3BUeXBlLCBUeXBlLCBWYWx1ZSogcG9pbnRlciwgVmFsdWUqLCB1aW50MzJfdCBvZmZz
ZXQpOworICAgIFZhbHVlKiBlbWl0QXRvbWljQmluYXJ5Uk1XT3AoRXh0QXRvbWljT3BUeXBlLCBU
eXBlLCBWYWx1ZSogcG9pbnRlciwgVmFsdWUqLCB1aW50MzJfdCBvZmZzZXQpOworICAgIFZhbHVl
KiBlbWl0QXRvbWljQ29tcGFyZUV4Y2hhbmdlKEV4dEF0b21pY09wVHlwZSwgVHlwZSwgVmFsdWUq
IHBvaW50ZXIsIFZhbHVlKiBleHBlY3RlZCwgVmFsdWUqLCB1aW50MzJfdCBvZmZzZXQpOwogCiAg
ICAgdm9pZCBtdXRhdG9yRmVuY2UoKTsKIApAQCAtMjA4NiwxMyArMjA4Niw5IEBAIGF1dG8gT01H
SVJHZW5lcmF0b3I6OmFkZE1lbW9yeUZpbGwoRXhwcmVzc2lvblR5cGUgZHN0QWRkcmVzcywgRXhw
cmVzc2lvblR5cGUgdGFyCiAgICAgICAgIGF1dG8qIG1lbW9yeVNpemUgPSBtX2N1cnJlbnRCbG9j
ay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihtX3Byb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIG9y
aWdpbigpLCBpbnN0YW5jZVZhbHVlKCksIHNhZmVDYXN0PGludDMyX3Q+KEpTV2ViQXNzZW1ibHlJ
bnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnkwU2l6ZSgpKSk7CiAgICAgICAgIG1faGVhcHMu
ZGVjb3JhdGVNZW1vcnkoJm1faGVhcHMuSlNXZWJBc3NlbWJseUluc3RhbmNlX2NhY2hlZE1lbW9y
eTBTaXplLCBtZW1vcnlTaXplKTsKIAotICAgICAgICBhdXRvKiBkc3RBZGRyZXNzVmFsdWUgPSBt
X2luZm8ubWVtb3J5KG1lbW9yeUluZGV4KS5pc01lbW9yeTY0KCkKLSAgICAgICAgICAgID8gZ2V0
KGRzdEFkZHJlc3MpCi0gICAgICAgICAgICA6IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8VmFs
dWU+KG1fcHJvYywgWkV4dDMyLCBvcmlnaW4oKSwgZ2V0KGRzdEFkZHJlc3MpKTsKKyAgICAgICAg
YXV0byogZHN0QWRkcmVzc1ZhbHVlID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4o
bV9wcm9jLCBaRXh0MzIsIG9yaWdpbigpLCBnZXQoZHN0QWRkcmVzcykpOwogICAgICAgICBhdXRv
KiB0YXJnZXRWYWx1ZSA9IGdldCh0YXJnZXQpOwotICAgICAgICBhdXRvKiBjb3VudFZhbHVlID0g
bV9pbmZvLm1lbW9yeShtZW1vcnlJbmRleCkuaXNNZW1vcnk2NCgpCi0gICAgICAgICAgICA/IGdl
dChjb3VudCkKLSAgICAgICAgICAgIDogbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4o
bV9wcm9jLCBaRXh0MzIsIG9yaWdpbigpLCBnZXQoY291bnQpKTsKKyAgICAgICAgYXV0byogY291
bnRWYWx1ZSA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgWkV4dDMy
LCBvcmlnaW4oKSwgZ2V0KGNvdW50KSk7CiAKICAgICAgICAgVmFsdWUqIG91dE9mQm91bmRzID0g
bV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBBYm92ZSwgb3JpZ2luKCks
IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgQWRkLCBvcmlnaW4oKSwg
ZHN0QWRkcmVzc1ZhbHVlLCBjb3VudFZhbHVlKSwgbWVtb3J5U2l6ZSk7CiAgICAgICAgIENoZWNr
VmFsdWUqIGNoZWNrID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxDaGVja1ZhbHVlPihtX3By
b2MsIENoZWNrLCBvcmlnaW4oKSwgb3V0T2ZCb3VuZHMpOwpAQCAtMjE0NywxNSArMjE0Myw5IEBA
IGF1dG8gT01HSVJHZW5lcmF0b3I6OmFkZE1lbW9yeUNvcHkoRXhwcmVzc2lvblR5cGUgZHN0QWRk
cmVzcywgRXhwcmVzc2lvblR5cGUgc3JjCiAgICAgICAgIGF1dG8qIG1lbW9yeVNpemUgPSBtX2N1
cnJlbnRCbG9jay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihtX3Byb2MsIExvYWQsIHBvaW50ZXJU
eXBlKCksIG9yaWdpbigpLCBpbnN0YW5jZVZhbHVlKCksIHNhZmVDYXN0PGludDMyX3Q+KEpTV2Vi
QXNzZW1ibHlJbnN0YW5jZTo6b2Zmc2V0T2ZDYWNoZWRNZW1vcnkwU2l6ZSgpKSk7CiAgICAgICAg
IG1faGVhcHMuZGVjb3JhdGVNZW1vcnkoJm1faGVhcHMuSlNXZWJBc3NlbWJseUluc3RhbmNlX2Nh
Y2hlZE1lbW9yeTBTaXplLCBtZW1vcnlTaXplKTsKIAotICAgICAgICBhdXRvKiBkc3RBZGRyZXNz
VmFsdWUgPSBtX2luZm8ubWVtb3J5KGRzdE1lbW9yeUluZGV4KS5pc01lbW9yeTY0KCkKLSAgICAg
ICAgICAgID8gZ2V0KGRzdEFkZHJlc3MpCi0gICAgICAgICAgICA6IG1fY3VycmVudEJsb2NrLT5h
cHBlbmROZXc8VmFsdWU+KG1fcHJvYywgWkV4dDMyLCBvcmlnaW4oKSwgZ2V0KGRzdEFkZHJlc3Mp
KTsKLSAgICAgICAgYXV0byogc3JjQWRkcmVzc1ZhbHVlID0gbV9pbmZvLm1lbW9yeShzcmNNZW1v
cnlJbmRleCkuaXNNZW1vcnk2NCgpCi0gICAgICAgICAgICA/IGdldChzcmNBZGRyZXNzKQotICAg
ICAgICAgICAgOiBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIFpFeHQz
Miwgb3JpZ2luKCksIGdldChzcmNBZGRyZXNzKSk7Ci0gICAgICAgIGF1dG8qIGNvdW50VmFsdWUg
PSBtX2luZm8ubWVtb3J5KHNyY01lbW9yeUluZGV4KS5pc01lbW9yeTY0KCkgfHwgbV9pbmZvLm1l
bW9yeShkc3RNZW1vcnlJbmRleCkuaXNNZW1vcnk2NCgpCi0gICAgICAgICAgICA/IGdldChjb3Vu
dCkKLSAgICAgICAgICAgIDogbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9j
LCBaRXh0MzIsIG9yaWdpbigpLCBnZXQoY291bnQpKTsKKyAgICAgICAgYXV0byogZHN0QWRkcmVz
c1ZhbHVlID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBaRXh0MzIs
IG9yaWdpbigpLCBnZXQoZHN0QWRkcmVzcykpOworICAgICAgICBhdXRvKiBzcmNBZGRyZXNzVmFs
dWUgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIFpFeHQzMiwgb3Jp
Z2luKCksIGdldChzcmNBZGRyZXNzKSk7CisgICAgICAgIGF1dG8qIGNvdW50VmFsdWUgPSBtX2N1
cnJlbnRCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIFpFeHQzMiwgb3JpZ2luKCksIGdl
dChjb3VudCkpOwogCiAgICAgICAgIHsKICAgICAgICAgICAgIENoZWNrVmFsdWUqIGNoZWNrID0g
bV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxDaGVja1ZhbHVlPihtX3Byb2MsIENoZWNrLCBvcmln
aW4oKSwgbV9jdXJyZW50QmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBBYm92ZSwgb3Jp
Z2luKCksIG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgQWRkLCBvcmln
aW4oKSwgZHN0QWRkcmVzc1ZhbHVlLCBjb3VudFZhbHVlKSwgbWVtb3J5U2l6ZSkpOwpAQCAtMjU5
MSw3ICsyNTgxLDcgQEAgaW5saW5lIEIzOjpLaW5kIE9NR0lSR2VuZXJhdG9yOjptZW1vcnlLaW5k
KEIzOjpPcGNvZGUgbWVtb3J5T3ApCiAgICAgcmV0dXJuIG1lbW9yeU9wOwogfQogCi1pbmxpbmUg
VmFsdWUqIE9NR0lSR2VuZXJhdG9yOjplbWl0TG9hZE9wKExvYWRPcFR5cGUgb3AsIFZhbHVlKiBw
b2ludGVyLCB1aW50NjRfdCB1b2Zmc2V0KQoraW5saW5lIFZhbHVlKiBPTUdJUkdlbmVyYXRvcjo6
ZW1pdExvYWRPcChMb2FkT3BUeXBlIG9wLCBWYWx1ZSogcG9pbnRlciwgdWludDMyX3QgdW9mZnNl
dCkKIHsKICAgICBpbnQzMl90IG9mZnNldCA9IGZpeHVwUG9pbnRlclBsdXNPZmZzZXQocG9pbnRl
ciwgdW9mZnNldCk7CiAKQEAgLTI3NTEsNyArMjc0MSw3IEBAIGlubGluZSB1aW50MzJfdCBzaXpl
T2ZTdG9yZU9wKFN0b3JlT3BUeXBlIG9wKQogfQogCiAKLWlubGluZSB2b2lkIE9NR0lSR2VuZXJh
dG9yOjplbWl0U3RvcmVPcChTdG9yZU9wVHlwZSBvcCwgVmFsdWUqIHBvaW50ZXIsIFZhbHVlKiB2
YWx1ZSwgdWludDY0X3QgdW9mZnNldCkKK2lubGluZSB2b2lkIE9NR0lSR2VuZXJhdG9yOjplbWl0
U3RvcmVPcChTdG9yZU9wVHlwZSBvcCwgVmFsdWUqIHBvaW50ZXIsIFZhbHVlKiB2YWx1ZSwgdWlu
dDMyX3QgdW9mZnNldCkKIHsKICAgICBpbnQzMl90IG9mZnNldCA9IGZpeHVwUG9pbnRlclBsdXNP
ZmZzZXQocG9pbnRlciwgdW9mZnNldCk7CiAKQEAgLTI4NjQsNyArMjg1NCw3IEBAIFZhbHVlKiBP
TUdJUkdlbmVyYXRvcjo6Zml4dXBQb2ludGVyUGx1c09mZnNldEZvckF0b21pY09wcyhFeHRBdG9t
aWNPcFR5cGUgb3AsIFZhCiAgICAgcmV0dXJuIHBvaW50ZXI7CiB9CiAKLWlubGluZSBWYWx1ZSog
T01HSVJHZW5lcmF0b3I6OmVtaXRBdG9taWNMb2FkT3AoRXh0QXRvbWljT3BUeXBlIG9wLCBUeXBl
IHZhbHVlVHlwZSwgVmFsdWUqIHBvaW50ZXIsIHVpbnQ2NF90IHVvZmZzZXQpCitpbmxpbmUgVmFs
dWUqIE9NR0lSR2VuZXJhdG9yOjplbWl0QXRvbWljTG9hZE9wKEV4dEF0b21pY09wVHlwZSBvcCwg
VHlwZSB2YWx1ZVR5cGUsIFZhbHVlKiBwb2ludGVyLCB1aW50MzJfdCB1b2Zmc2V0KQogewogICAg
IHBvaW50ZXIgPSBmaXh1cFBvaW50ZXJQbHVzT2Zmc2V0Rm9yQXRvbWljT3BzKG9wLCBwb2ludGVy
LCB1b2Zmc2V0KTsKIApAQCAtMjg4OSwxNSArMjg3OSwxMSBAQCBpbmxpbmUgVmFsdWUqIE9NR0lS
R2VuZXJhdG9yOjplbWl0QXRvbWljTG9hZE9wKEV4dEF0b21pY09wVHlwZSBvcCwgVHlwZSB2YWx1
ZVR5cAogICAgIHJldHVybiBzYW5pdGl6ZUF0b21pY1Jlc3VsdChvcCwgdmFsdWVUeXBlLCBhdG9t
aWMpOwogfQogCi1hdXRvIE9NR0lSR2VuZXJhdG9yOjphdG9taWNMb2FkKEV4dEF0b21pY09wVHlw
ZSBvcCwgVHlwZSB2YWx1ZVR5cGUsIEV4cHJlc3Npb25UeXBlIHBvaW50ZXIsIEV4cHJlc3Npb25U
eXBlJiByZXN1bHQsIHVpbnQ2NF90IG9mZnNldCwgdWludDhfdCBtZW1vcnlJbmRleCkgLT4gUGFy
dGlhbFJlc3VsdAorYXV0byBPTUdJUkdlbmVyYXRvcjo6YXRvbWljTG9hZChFeHRBdG9taWNPcFR5
cGUgb3AsIFR5cGUgdmFsdWVUeXBlLCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9u
VHlwZSYgcmVzdWx0LCB1aW50MzJfdCBvZmZzZXQsIHVpbnQ4X3QgbWVtb3J5SW5kZXgpIC0+IFBh
cnRpYWxSZXN1bHQKIHsKLSAgICBBU1NFUlQocG9pbnRlci50eXBlKCkua2luZCgpID09IG1faW5m
by5tZW1vcnkobWVtb3J5SW5kZXgpLmFkZHJlc3NUeXBlKCkuYXNCM1R5cGVLaW5kKCkpOworICAg
IEFTU0VSVChwb2ludGVyLnR5cGUoKSA9PSBJbnQzMik7CiAKLSAgICBjb25zdCBib29sIG92ZXJm
bG93cyA9IG1faW5mby5tZW1vcnkobWVtb3J5SW5kZXgpLmlzTWVtb3J5NjQoKQotICAgICAgICA/
IHN1bU92ZXJmbG93czx1aW50NjRfdD4ob2Zmc2V0LCBzaXplT2ZBdG9taWNPcE1lbW9yeUFjY2Vz
cyhvcCkpCi0gICAgICAgIDogc3VtT3ZlcmZsb3dzPHVpbnQzMl90PihvZmZzZXQsIHNpemVPZkF0
b21pY09wTWVtb3J5QWNjZXNzKG9wKSk7Ci0KLSAgICBpZiAob3ZlcmZsb3dzKSBbW3VubGlrZWx5
XV0geworICAgIGlmIChzdW1PdmVyZmxvd3M8dWludDMyX3Q+KG9mZnNldCwgc2l6ZU9mQXRvbWlj
T3BNZW1vcnlBY2Nlc3Mob3ApKSkgW1t1bmxpa2VseV1dIHsKICAgICAgICAgLy8gRklYTUU6IEV2
ZW4gdGhvdWdoIHRoaXMgaXMgcHJvdmFibHkgb3V0IG9mIGJvdW5kcywgaXQncyBub3QgYSB2YWxp
ZGF0aW9uIGVycm9yLCBzbyB3ZSBoYXZlIHRvIGhhbmRsZSBpdAogICAgICAgICAvLyBhcyBhIHJ1
bnRpbWUgZXhjZXB0aW9uLiBIb3dldmVyLCB0aGlzIG1heSBjaGFuZ2U6IGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY0MzUKICAgICAgICAgQjM6OlBhdGNocG9pbnRW
YWx1ZSogdGhyb3dFeGNlcHRpb24gPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIzOjpQYXRj
aHBvaW50VmFsdWU+KG1fcHJvYywgQjM6OlZvaWQsIG9yaWdpbigpKTsKQEAgLTI5MjMsNyArMjkw
OSw3IEBAIGF1dG8gT01HSVJHZW5lcmF0b3I6OmF0b21pY0xvYWQoRXh0QXRvbWljT3BUeXBlIG9w
LCBUeXBlIHZhbHVlVHlwZSwgRXhwcmVzc2lvblR5CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotaW5s
aW5lIHZvaWQgT01HSVJHZW5lcmF0b3I6OmVtaXRBdG9taWNTdG9yZU9wKEV4dEF0b21pY09wVHlw
ZSBvcCwgVHlwZSB2YWx1ZVR5cGUsIFZhbHVlKiBwb2ludGVyLCBWYWx1ZSogdmFsdWUsIHVpbnQ2
NF90IHVvZmZzZXQpCitpbmxpbmUgdm9pZCBPTUdJUkdlbmVyYXRvcjo6ZW1pdEF0b21pY1N0b3Jl
T3AoRXh0QXRvbWljT3BUeXBlIG9wLCBUeXBlIHZhbHVlVHlwZSwgVmFsdWUqIHBvaW50ZXIsIFZh
bHVlKiB2YWx1ZSwgdWludDMyX3QgdW9mZnNldCkKIHsKICAgICBwb2ludGVyID0gZml4dXBQb2lu
dGVyUGx1c09mZnNldEZvckF0b21pY09wcyhvcCwgcG9pbnRlciwgdW9mZnNldCk7CiAKQEAgLTI5
MzQsMTQgKzI5MjAsMTEgQEAgaW5saW5lIHZvaWQgT01HSVJHZW5lcmF0b3I6OmVtaXRBdG9taWNT
dG9yZU9wKEV4dEF0b21pY09wVHlwZSBvcCwgVHlwZSB2YWx1ZVR5cGUKICAgICBtX2hlYXBzLmRl
Y29yYXRlRmVuY2VkQWNjZXNzKCZtX2hlYXBzLldlYkFzc2VtYmx5TWVtb3J5LCBhdG9taWMpOwog
fQogCi1hdXRvIE9NR0lSR2VuZXJhdG9yOjphdG9taWNTdG9yZShFeHRBdG9taWNPcFR5cGUgb3As
IFR5cGUgdmFsdWVUeXBlLCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSB2
YWx1ZSwgdWludDY0X3Qgb2Zmc2V0LCB1aW50OF90IG1lbW9yeUluZGV4KSAtPiBQYXJ0aWFsUmVz
dWx0CithdXRvIE9NR0lSR2VuZXJhdG9yOjphdG9taWNTdG9yZShFeHRBdG9taWNPcFR5cGUgb3As
IFR5cGUgdmFsdWVUeXBlLCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSB2
YWx1ZSwgdWludDMyX3Qgb2Zmc2V0LCB1aW50OF90IG1lbW9yeUluZGV4KSAtPiBQYXJ0aWFsUmVz
dWx0CiB7Ci0gICAgQVNTRVJUKHBvaW50ZXIudHlwZSgpLmtpbmQoKSA9PSBtX2luZm8ubWVtb3J5
KG1lbW9yeUluZGV4KS5hZGRyZXNzVHlwZSgpLmFzQjNUeXBlS2luZCgpKTsKLSAgICBjb25zdCBi
b29sIG92ZXJmbG93cyA9IG1faW5mby5tZW1vcnkobWVtb3J5SW5kZXgpLmlzTWVtb3J5NjQoKQot
ICAgICAgICA/IHN1bU92ZXJmbG93czx1aW50NjRfdD4ob2Zmc2V0LCBzaXplT2ZBdG9taWNPcE1l
bW9yeUFjY2VzcyhvcCkpCi0gICAgICAgIDogc3VtT3ZlcmZsb3dzPHVpbnQzMl90PihvZmZzZXQs
IHNpemVPZkF0b21pY09wTWVtb3J5QWNjZXNzKG9wKSk7CisgICAgQVNTRVJUKHBvaW50ZXIudHlw
ZSgpID09IEludDMyKTsKIAotICAgIGlmIChvdmVyZmxvd3MpIFtbdW5saWtlbHldXSB7CisgICAg
aWYgKHN1bU92ZXJmbG93czx1aW50MzJfdD4ob2Zmc2V0LCBzaXplT2ZBdG9taWNPcE1lbW9yeUFj
Y2VzcyhvcCkpKSBbW3VubGlrZWx5XV0gewogICAgICAgICAvLyBGSVhNRTogRXZlbiB0aG91Z2gg
dGhpcyBpcyBwcm92YWJseSBvdXQgb2YgYm91bmRzLCBpdCdzIG5vdCBhIHZhbGlkYXRpb24gZXJy
b3IsIHNvIHdlIGhhdmUgdG8gaGFuZGxlIGl0CiAgICAgICAgIC8vIGFzIGEgcnVudGltZSBleGNl
cHRpb24uIEhvd2V2ZXIsIHRoaXMgbWF5IGNoYW5nZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2NjQzNQogICAgICAgICBCMzo6UGF0Y2hwb2ludFZhbHVlKiB0aHJv
d0V4Y2VwdGlvbiA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8QjM6OlBhdGNocG9pbnRWYWx1
ZT4obV9wcm9jLCBCMzo6Vm9pZCwgb3JpZ2luKCkpOwpAQCAtMjk1NSw3ICsyOTM4LDcgQEAgYXV0
byBPTUdJUkdlbmVyYXRvcjo6YXRvbWljU3RvcmUoRXh0QXRvbWljT3BUeXBlIG9wLCBUeXBlIHZh
bHVlVHlwZSwgRXhwcmVzc2lvblQKICAgICByZXR1cm4geyB9OwogfQogCi1pbmxpbmUgVmFsdWUq
IE9NR0lSR2VuZXJhdG9yOjplbWl0QXRvbWljQmluYXJ5Uk1XT3AoRXh0QXRvbWljT3BUeXBlIG9w
LCBUeXBlIHZhbHVlVHlwZSwgVmFsdWUqIHBvaW50ZXIsIFZhbHVlKiB2YWx1ZSwgdWludDY0X3Qg
dW9mZnNldCkKK2lubGluZSBWYWx1ZSogT01HSVJHZW5lcmF0b3I6OmVtaXRBdG9taWNCaW5hcnlS
TVdPcChFeHRBdG9taWNPcFR5cGUgb3AsIFR5cGUgdmFsdWVUeXBlLCBWYWx1ZSogcG9pbnRlciwg
VmFsdWUqIHZhbHVlLCB1aW50MzJfdCB1b2Zmc2V0KQogewogICAgIHBvaW50ZXIgPSBmaXh1cFBv
aW50ZXJQbHVzT2Zmc2V0Rm9yQXRvbWljT3BzKG9wLCBwb2ludGVyLCB1b2Zmc2V0KTsKIApAQCAt
MzAyOSwxNSArMzAxMiwxMSBAQCBpbmxpbmUgVmFsdWUqIE9NR0lSR2VuZXJhdG9yOjplbWl0QXRv
bWljQmluYXJ5Uk1XT3AoRXh0QXRvbWljT3BUeXBlIG9wLCBUeXBlIHZhbAogICAgIHJldHVybiBz
YW5pdGl6ZUF0b21pY1Jlc3VsdChvcCwgdmFsdWVUeXBlLCBhdG9taWMpOwogfQogCi1hdXRvIE9N
R0lSR2VuZXJhdG9yOjphdG9taWNCaW5hcnlSTVcoRXh0QXRvbWljT3BUeXBlIG9wLCBUeXBlIHZh
bHVlVHlwZSwgRXhwcmVzc2lvblR5cGUgcG9pbnRlciwgRXhwcmVzc2lvblR5cGUgdmFsdWUsIEV4
cHJlc3Npb25UeXBlJiByZXN1bHQsIHVpbnQ2NF90IG9mZnNldCwgdWludDhfdCBtZW1vcnlJbmRl
eCkgLT4gUGFydGlhbFJlc3VsdAorYXV0byBPTUdJUkdlbmVyYXRvcjo6YXRvbWljQmluYXJ5Uk1X
KEV4dEF0b21pY09wVHlwZSBvcCwgVHlwZSB2YWx1ZVR5cGUsIEV4cHJlc3Npb25UeXBlIHBvaW50
ZXIsIEV4cHJlc3Npb25UeXBlIHZhbHVlLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0LCB1aW50MzJf
dCBvZmZzZXQsIHVpbnQ4X3QgbWVtb3J5SW5kZXgpIC0+IFBhcnRpYWxSZXN1bHQKIHsKLSAgICBB
U1NFUlQocG9pbnRlci50eXBlKCkua2luZCgpID09IG1faW5mby5tZW1vcnkobWVtb3J5SW5kZXgp
LmFkZHJlc3NUeXBlKCkuYXNCM1R5cGVLaW5kKCkpOwotCi0gICAgY29uc3QgYm9vbCBvdmVyZmxv
d3MgPSBtX2luZm8ubWVtb3J5KG1lbW9yeUluZGV4KS5pc01lbW9yeTY0KCkKLSAgICAgICAgPyBz
dW1PdmVyZmxvd3M8dWludDY0X3Q+KG9mZnNldCwgc2l6ZU9mQXRvbWljT3BNZW1vcnlBY2Nlc3Mo
b3ApKQotICAgICAgICA6IHN1bU92ZXJmbG93czx1aW50MzJfdD4ob2Zmc2V0LCBzaXplT2ZBdG9t
aWNPcE1lbW9yeUFjY2VzcyhvcCkpOworICAgIEFTU0VSVChwb2ludGVyLnR5cGUoKSA9PSBJbnQz
Mik7CiAKLSAgICBpZiAob3ZlcmZsb3dzKSBbW3VubGlrZWx5XV0geworICAgIGlmIChzdW1PdmVy
Zmxvd3M8dWludDMyX3Q+KG9mZnNldCwgc2l6ZU9mQXRvbWljT3BNZW1vcnlBY2Nlc3Mob3ApKSkg
W1t1bmxpa2VseV1dIHsKICAgICAgICAgLy8gRklYTUU6IEV2ZW4gdGhvdWdoIHRoaXMgaXMgcHJv
dmFibHkgb3V0IG9mIGJvdW5kcywgaXQncyBub3QgYSB2YWxpZGF0aW9uIGVycm9yLCBzbyB3ZSBo
YXZlIHRvIGhhbmRsZSBpdAogICAgICAgICAvLyBhcyBhIHJ1bnRpbWUgZXhjZXB0aW9uLiBIb3dl
dmVyLCB0aGlzIG1heSBjaGFuZ2U6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjY0MzUKICAgICAgICAgQjM6OlBhdGNocG9pbnRWYWx1ZSogdGhyb3dFeGNlcHRpb24g
PSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PEIzOjpQYXRjaHBvaW50VmFsdWU+KG1fcHJvYywg
QjM6OlZvaWQsIG9yaWdpbigpKTsKQEAgLTMwNjMsNyArMzA0Miw3IEBAIGF1dG8gT01HSVJHZW5l
cmF0b3I6OmF0b21pY0JpbmFyeVJNVyhFeHRBdG9taWNPcFR5cGUgb3AsIFR5cGUgdmFsdWVUeXBl
LCBFeHByZXNzCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotVmFsdWUqIE9NR0lSR2VuZXJhdG9yOjpl
bWl0QXRvbWljQ29tcGFyZUV4Y2hhbmdlKEV4dEF0b21pY09wVHlwZSBvcCwgVHlwZSB2YWx1ZVR5
cGUsIFZhbHVlKiBwb2ludGVyLCBWYWx1ZSogZXhwZWN0ZWQsIFZhbHVlKiB2YWx1ZSwgdWludDY0
X3QgdW9mZnNldCkKK1ZhbHVlKiBPTUdJUkdlbmVyYXRvcjo6ZW1pdEF0b21pY0NvbXBhcmVFeGNo
YW5nZShFeHRBdG9taWNPcFR5cGUgb3AsIFR5cGUgdmFsdWVUeXBlLCBWYWx1ZSogcG9pbnRlciwg
VmFsdWUqIGV4cGVjdGVkLCBWYWx1ZSogdmFsdWUsIHVpbnQzMl90IHVvZmZzZXQpCiB7CiAgICAg
cG9pbnRlciA9IGZpeHVwUG9pbnRlclBsdXNPZmZzZXRGb3JBdG9taWNPcHMob3AsIHBvaW50ZXIs
IHVvZmZzZXQpOwogCkBAIC0zMTQ2LDE1ICszMTI1LDExIEBAIFZhbHVlKiBPTUdJUkdlbmVyYXRv
cjo6ZW1pdEF0b21pY0NvbXBhcmVFeGNoYW5nZShFeHRBdG9taWNPcFR5cGUgb3AsIFR5cGUgdmFs
dWVUCiAgICAgcmV0dXJuIGZpZWxkVHlwZS5pczxUeXBlPigpICYmIGlzUmVmVHlwZShmaWVsZFR5
cGUudW5wYWNrZWQoKSk7CiB9CiAKLWF1dG8gT01HSVJHZW5lcmF0b3I6OmF0b21pY0NvbXBhcmVF
eGNoYW5nZShFeHRBdG9taWNPcFR5cGUgb3AsIFR5cGUgdmFsdWVUeXBlLCBFeHByZXNzaW9uVHlw
ZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSBleHBlY3RlZCwgRXhwcmVzc2lvblR5cGUgdmFsdWUs
IEV4cHJlc3Npb25UeXBlJiByZXN1bHQsIHVpbnQ2NF90IG9mZnNldCwgdWludDhfdCBtZW1vcnlJ
bmRleCkgLT4gUGFydGlhbFJlc3VsdAorYXV0byBPTUdJUkdlbmVyYXRvcjo6YXRvbWljQ29tcGFy
ZUV4Y2hhbmdlKEV4dEF0b21pY09wVHlwZSBvcCwgVHlwZSB2YWx1ZVR5cGUsIEV4cHJlc3Npb25U
eXBlIHBvaW50ZXIsIEV4cHJlc3Npb25UeXBlIGV4cGVjdGVkLCBFeHByZXNzaW9uVHlwZSB2YWx1
ZSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCwgdWludDMyX3Qgb2Zmc2V0LCB1aW50OF90IG1lbW9y
eUluZGV4KSAtPiBQYXJ0aWFsUmVzdWx0CiB7Ci0gICAgQVNTRVJUKHBvaW50ZXIudHlwZSgpLmtp
bmQoKSA9PSBtX2luZm8ubWVtb3J5KG1lbW9yeUluZGV4KS5hZGRyZXNzVHlwZSgpLmFzQjNUeXBl
S2luZCgpKTsKLQotICAgIGNvbnN0IGJvb2wgb3ZlcmZsb3dzID0gbV9pbmZvLm1lbW9yeShtZW1v
cnlJbmRleCkuaXNNZW1vcnk2NCgpCi0gICAgICAgID8gc3VtT3ZlcmZsb3dzPHVpbnQ2NF90Pihv
ZmZzZXQsIHNpemVPZkF0b21pY09wTWVtb3J5QWNjZXNzKG9wKSkKLSAgICAgICAgOiBzdW1PdmVy
Zmxvd3M8dWludDMyX3Q+KG9mZnNldCwgc2l6ZU9mQXRvbWljT3BNZW1vcnlBY2Nlc3Mob3ApKTsK
KyAgICBBU1NFUlQocG9pbnRlci50eXBlKCkgPT0gSW50MzIpOwogCi0gICAgaWYgKG92ZXJmbG93
cykgW1t1bmxpa2VseV1dIHsKKyAgICBpZiAoc3VtT3ZlcmZsb3dzPHVpbnQzMl90PihvZmZzZXQs
IHNpemVPZkF0b21pY09wTWVtb3J5QWNjZXNzKG9wKSkpIFtbdW5saWtlbHldXSB7CiAgICAgICAg
IC8vIEZJWE1FOiBFdmVuIHRob3VnaCB0aGlzIGlzIHByb3ZhYmx5IG91dCBvZiBib3VuZHMsIGl0
J3Mgbm90IGEgdmFsaWRhdGlvbiBlcnJvciwgc28gd2UgaGF2ZSB0byBoYW5kbGUgaXQKICAgICAg
ICAgLy8gYXMgYSBydW50aW1lIGV4Y2VwdGlvbi4gSG93ZXZlciwgdGhpcyBtYXkgY2hhbmdlOiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2NDM1CiAgICAgICAgIEIz
OjpQYXRjaHBvaW50VmFsdWUqIHRocm93RXhjZXB0aW9uID0gbV9jdXJyZW50QmxvY2stPmFwcGVu
ZE5ldzxCMzo6UGF0Y2hwb2ludFZhbHVlPihtX3Byb2MsIEIzOjpWb2lkLCBvcmlnaW4oKSk7CkBA
IC0zMTgwLDcgKzMxNTUsNyBAQCBhdXRvIE9NR0lSR2VuZXJhdG9yOjphdG9taWNDb21wYXJlRXhj
aGFuZ2UoRXh0QXRvbWljT3BUeXBlIG9wLCBUeXBlIHZhbHVlVHlwZSwgRQogICAgIHJldHVybiB7
IH07CiB9CiAKLWF1dG8gT01HSVJHZW5lcmF0b3I6OmF0b21pY1dhaXQoRXh0QXRvbWljT3BUeXBl
IG9wLCBFeHByZXNzaW9uVHlwZSBwb2ludGVyVmFyLCBFeHByZXNzaW9uVHlwZSB2YWx1ZVZhciwg
RXhwcmVzc2lvblR5cGUgdGltZW91dFZhciwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCwgdWludDY0
X3Qgb2Zmc2V0LCB1aW50OF90IG1lbW9yeUluZGV4KSAtPiBQYXJ0aWFsUmVzdWx0CithdXRvIE9N
R0lSR2VuZXJhdG9yOjphdG9taWNXYWl0KEV4dEF0b21pY09wVHlwZSBvcCwgRXhwcmVzc2lvblR5
cGUgcG9pbnRlclZhciwgRXhwcmVzc2lvblR5cGUgdmFsdWVWYXIsIEV4cHJlc3Npb25UeXBlIHRp
bWVvdXRWYXIsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQsIHVpbnQzMl90IG9mZnNldCwgdWludDhf
dCBtZW1vcnlJbmRleCkgLT4gUGFydGlhbFJlc3VsdAogewogICAgIFZhbHVlKiBwb2ludGVyID0g
Z2V0KHBvaW50ZXJWYXIpOwogICAgIFZhbHVlKiB2YWx1ZSA9IGdldCh2YWx1ZVZhcik7CkBAIC0z
MTg4LDEwICszMTYzLDEwIEBAIGF1dG8gT01HSVJHZW5lcmF0b3I6OmF0b21pY1dhaXQoRXh0QXRv
bWljT3BUeXBlIG9wLCBFeHByZXNzaW9uVHlwZSBwb2ludGVyVmFyLCBFCiAgICAgVmFsdWUqIHJl
c3VsdFZhbHVlID0gbnVsbHB0cjsKICAgICBpZiAob3AgPT0gRXh0QXRvbWljT3BUeXBlOjpNZW1v
cnlBdG9taWNXYWl0MzIpIHsKICAgICAgICAgcmVzdWx0VmFsdWUgPSBjYWxsV2FzbU9wZXJhdGlv
bihtX2N1cnJlbnRCbG9jaywgSW50MzIsIG9wZXJhdGlvbk1lbW9yeUF0b21pY1dhaXQzMiwKLSAg
ICAgICAgICAgIGluc3RhbmNlVmFsdWUoKSwgcG9pbnRlciwgY29uc3RhbnQoSW50NjQsIG9mZnNl
dCksIHZhbHVlLCB0aW1lb3V0LCBjb25zdGFudChJbnQzMiwgbWVtb3J5SW5kZXgpKTsKKyAgICAg
ICAgICAgIGluc3RhbmNlVmFsdWUoKSwgcG9pbnRlciwgY29uc3RhbnQoSW50MzIsIG9mZnNldCks
IHZhbHVlLCB0aW1lb3V0LCBjb25zdGFudChJbnQzMiwgbWVtb3J5SW5kZXgpKTsKICAgICB9IGVs
c2UgewogICAgICAgICByZXN1bHRWYWx1ZSA9IGNhbGxXYXNtT3BlcmF0aW9uKG1fY3VycmVudEJs
b2NrLCBJbnQzMiwgb3BlcmF0aW9uTWVtb3J5QXRvbWljV2FpdDY0LAotICAgICAgICAgICAgaW5z
dGFuY2VWYWx1ZSgpLCBwb2ludGVyLCBjb25zdGFudChJbnQ2NCwgb2Zmc2V0KSwgdmFsdWUsIHRp
bWVvdXQsIGNvbnN0YW50KEludDMyLCBtZW1vcnlJbmRleCkpOworICAgICAgICAgICAgaW5zdGFu
Y2VWYWx1ZSgpLCBwb2ludGVyLCBjb25zdGFudChJbnQzMiwgb2Zmc2V0KSwgdmFsdWUsIHRpbWVv
dXQsIGNvbnN0YW50KEludDMyLCBtZW1vcnlJbmRleCkpOwogICAgIH0KIAogICAgIHsKQEAgLTMy
MDcsMTAgKzMxODIsMTAgQEAgYXV0byBPTUdJUkdlbmVyYXRvcjo6YXRvbWljV2FpdChFeHRBdG9t
aWNPcFR5cGUgb3AsIEV4cHJlc3Npb25UeXBlIHBvaW50ZXJWYXIsIEUKICAgICByZXR1cm4geyB9
OwogfQogCi1hdXRvIE9NR0lSR2VuZXJhdG9yOjphdG9taWNOb3RpZnkoRXh0QXRvbWljT3BUeXBl
LCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSBjb3VudCwgRXhwcmVzc2lv
blR5cGUmIHJlc3VsdCwgdWludDY0X3Qgb2Zmc2V0LCB1aW50OF90IG1lbW9yeUluZGV4KSAtPiBQ
YXJ0aWFsUmVzdWx0CithdXRvIE9NR0lSR2VuZXJhdG9yOjphdG9taWNOb3RpZnkoRXh0QXRvbWlj
T3BUeXBlLCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSBjb3VudCwgRXhw
cmVzc2lvblR5cGUmIHJlc3VsdCwgdWludDMyX3Qgb2Zmc2V0LCB1aW50OF90IG1lbW9yeUluZGV4
KSAtPiBQYXJ0aWFsUmVzdWx0CiB7CiAgICAgVmFsdWUqIHJlc3VsdFZhbHVlID0gY2FsbFdhc21P
cGVyYXRpb24obV9jdXJyZW50QmxvY2ssIEludDMyLCBvcGVyYXRpb25NZW1vcnlBdG9taWNOb3Rp
ZnksCi0gICAgICAgIGluc3RhbmNlVmFsdWUoKSwgZ2V0KHBvaW50ZXIpLCBjb25zdGFudChJbnQ2
NCwgb2Zmc2V0KSwgZ2V0KGNvdW50KSwgY29uc3RhbnQoSW50MzIsIG1lbW9yeUluZGV4KSk7Cisg
ICAgICAgIGluc3RhbmNlVmFsdWUoKSwgZ2V0KHBvaW50ZXIpLCBjb25zdGFudChJbnQzMiwgb2Zm
c2V0KSwgZ2V0KGNvdW50KSwgY29uc3RhbnQoSW50MzIsIG1lbW9yeUluZGV4KSk7CiAgICAgewog
ICAgICAgICByZXN1bHQgPSBwdXNoKHJlc3VsdFZhbHVlKTsKICAgICAgICAgQ2hlY2tWYWx1ZSog
Y2hlY2sgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KG1fcHJvYywgQ2hl
Y2ssIG9yaWdpbigpLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlv
bnMuY3BwCmluZGV4IDYyODRhMzViOGViMS4uYmUyMzY2YmNiOTlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCkBAIC0xNTU0LDEyICsxNTU0LDEy
IEBAIEpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5
U2l6ZUluUGFnZXMsIGludDY0X3QsIChKU1dlCiAgICAgcmV0dXJuIGluc3RhbmNlLT5tZW1vcnko
bWVtb3J5SW5kZXgpLT5tZW1vcnkoKS5zaXplKCkgPj4gMTY7CiB9CiAKLUpTQ19ERUZJTkVfTk9F
WENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5RmlsbCwgVUNQVVN0cmljdElu
dDMyLCAoSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSwgdWludDY0X3QgZHN0QWRkcmVz
cywgdWludDMyX3QgdGFyZ2V0VmFsdWUsIHVpbnQ2NF90IGNvdW50LCB1aW50OF90IG1lbW9yeUlu
ZGV4KSkKK0pTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVt
b3J5RmlsbCwgVUNQVVN0cmljdEludDMyLCAoSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5j
ZSwgdWludDMyX3QgZHN0QWRkcmVzcywgdWludDMyX3QgdGFyZ2V0VmFsdWUsIHVpbnQzMl90IGNv
dW50LCB1aW50OF90IG1lbW9yeUluZGV4KSkKIHsKICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50
MzIobWVtb3J5RmlsbChpbnN0YW5jZSwgZHN0QWRkcmVzcywgdGFyZ2V0VmFsdWUsIGNvdW50LCBt
ZW1vcnlJbmRleCkpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbU1lbW9yeUNvcHksIFVDUFVTdHJpY3RJbnQzMiwgKEpTV2ViQXNzZW1ibHlJbnN0
YW5jZSogaW5zdGFuY2UsIHVpbnQ2NF90IGRzdEFkZHJlc3MsIHVpbnQ2NF90IHNyY0FkZHJlc3Ms
IHVpbnQ2NF90IGNvdW50LCB1aW50OF90IGRzdE1lbW9yeUluZGV4LCB1aW50OF90IHNyY01lbW9y
eUluZGV4KSkKK0pTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNt
TWVtb3J5Q29weSwgVUNQVVN0cmljdEludDMyLCAoSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0
YW5jZSwgdWludDMyX3QgZHN0QWRkcmVzcywgdWludDMyX3Qgc3JjQWRkcmVzcywgdWludDMyX3Qg
Y291bnQsIHVpbnQ4X3QgZHN0TWVtb3J5SW5kZXgsIHVpbnQ4X3Qgc3JjTWVtb3J5SW5kZXgpKQog
ewogICAgIHJldHVybiB0b1VDUFVTdHJpY3RJbnQzMihtZW1vcnlDb3B5KGluc3RhbmNlLCBkc3RB
ZGRyZXNzLCBzcmNBZGRyZXNzLCBjb3VudCwgZHN0TWVtb3J5SW5kZXgsIHNyY01lbW9yeUluZGV4
KSk7CiB9CkBAIC0xNjI2LDIyICsxNjI2LDIyIEBAIEpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09Q
RVJBVElPTihvcGVyYXRpb25HZXRXYXNtVGFibGVTaXplLCBVQ1BVU3RyaWN0SW50MzIsIChKCiAg
ICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKHRhYmxlU2l6ZShpbnN0YW5jZSwgdGFibGVJbmRl
eCkpOwogfQogCi1KU0NfREVGSU5FX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWVt
b3J5QXRvbWljV2FpdDMyLCBVQ1BVU3RyaWN0SW50MzIsIChKU1dlYkFzc2VtYmx5SW5zdGFuY2Uq
IGluc3RhbmNlLCB1aW50NjRfdCBiYXNlLCB1aW50NjRfdCBvZmZzZXQsIGludDMyX3QgdmFsdWUs
IGludDY0X3QgdGltZW91dEluTmFub3NlY29uZHMsIHVpbnQ4X3QgbWVtb3J5SW5kZXgpKQorSlND
X0RFRklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY1dhaXQz
MiwgVUNQVVN0cmljdEludDMyLCAoSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSwgdW5z
aWduZWQgYmFzZSwgdW5zaWduZWQgb2Zmc2V0LCBpbnQzMl90IHZhbHVlLCBpbnQ2NF90IHRpbWVv
dXRJbk5hbm9zZWNvbmRzLCB1aW50OF90IG1lbW9yeUluZGV4KSkKIHsKICAgICByZXR1cm4gdG9V
Q1BVU3RyaWN0SW50MzIobWVtb3J5QXRvbWljV2FpdDMyKGluc3RhbmNlLCBiYXNlLCBvZmZzZXQs
IHZhbHVlLCB0aW1lb3V0SW5OYW5vc2Vjb25kcywgbWVtb3J5SW5kZXgpKTsKIH0KIAotSlNDX0RF
RklORV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY1dhaXQ2NCwg
VUNQVVN0cmljdEludDMyLCAoSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSwgdWludDY0
X3QgYmFzZSwgdWludDY0X3Qgb2Zmc2V0LCBpbnQ2NF90IHZhbHVlLCBpbnQ2NF90IHRpbWVvdXRJ
bk5hbm9zZWNvbmRzLCB1aW50OF90IG1lbW9yeUluZGV4KSkKK0pTQ19ERUZJTkVfTk9FWENFUFRf
SklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNXYWl0NjQsIFVDUFVTdHJpY3RJbnQz
MiwgKEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2lnbmVkIGJhc2UsIHVuc2ln
bmVkIG9mZnNldCwgaW50NjRfdCB2YWx1ZSwgaW50NjRfdCB0aW1lb3V0SW5OYW5vc2Vjb25kcywg
dWludDhfdCBtZW1vcnlJbmRleCkpCiB7CiAgICAgcmV0dXJuIHRvVUNQVVN0cmljdEludDMyKG1l
bW9yeUF0b21pY1dhaXQ2NChpbnN0YW5jZSwgYmFzZSwgb2Zmc2V0LCB2YWx1ZSwgdGltZW91dElu
TmFub3NlY29uZHMsIG1lbW9yeUluZGV4KSk7CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklU
X09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNOb3RpZnksIFVDUFVTdHJpY3RJbnQzMiwg
KEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQ2NF90IGJhc2UsIHVpbnQ2NF90
IG9mZnNldCwgaW50MzJfdCBjb3VudFZhbHVlLCB1aW50OF90IG1lbW9yeUluZGV4KSkKK0pTQ19E
RUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNOb3RpZnks
IFVDUFVTdHJpY3RJbnQzMiwgKEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGFuY2UsIHVuc2ln
bmVkIGJhc2UsIHVuc2lnbmVkIG9mZnNldCwgaW50MzJfdCBjb3VudFZhbHVlLCB1aW50OF90IG1l
bW9yeUluZGV4KSkKIHsKICAgICByZXR1cm4gdG9VQ1BVU3RyaWN0SW50MzIobWVtb3J5QXRvbWlj
Tm90aWZ5KGluc3RhbmNlLCBiYXNlLCBvZmZzZXQsIGNvdW50VmFsdWUsIG1lbW9yeUluZGV4KSk7
CiB9CiAKLUpTQ19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVt
b3J5SW5pdCwgVUNQVVN0cmljdEludDMyLCAoSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5j
ZSwgdW5zaWduZWQgZGF0YVNlZ21lbnRJbmRleCwgdWludDY0X3QgZHN0QWRkcmVzcywgdWludDMy
X3Qgc3JjQWRkcmVzcywgdWludDMyX3QgbGVuZ3RoLCB1aW50OF90IG1lbW9yeUluZGV4KSkKK0pT
Q19ERUZJTkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5SW5pdCwg
VUNQVVN0cmljdEludDMyLCAoSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWdu
ZWQgZGF0YVNlZ21lbnRJbmRleCwgdWludDMyX3QgZHN0QWRkcmVzcywgdWludDMyX3Qgc3JjQWRk
cmVzcywgdWludDMyX3QgbGVuZ3RoLCB1aW50OF90IG1lbW9yeUluZGV4KSkKIHsKICAgICByZXR1
cm4gdG9VQ1BVU3RyaWN0SW50MzIobWVtb3J5SW5pdChpbnN0YW5jZSwgZGF0YVNlZ21lbnRJbmRl
eCwgZHN0QWRkcmVzcywgc3JjQWRkcmVzcywgbGVuZ3RoLCBtZW1vcnlJbmRleCkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmgKaW5kZXggYzFlNzAxYTIy
NmQzLi43ODQ3NzU2ZmJkZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21PcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9w
ZXJhdGlvbnMuaApAQCAtOTIsOCArOTIsOCBAQCBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BF
UkFUSU9OKG9wZXJhdGlvblBvcGNvdW50MzIsIFVDUFVTdHJpY3RJbnQzMiwgKGludDMyXwogSlND
X0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25Qb3Bjb3VudDY0LCB1aW50
NjRfdCwgKGludDY0X3QpKTsKIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uR3Jvd01lbW9yeSwgaW50NjRfdCwgKEpTV2ViQXNzZW1ibHlJbnN0YW5jZSosIGludDY0
X3QsIHVpbnQ4X3QpKTsKIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uV2FzbU1lbW9yeVNpemVJblBhZ2VzLCBpbnQ2NF90LCAoSlNXZWJBc3NlbWJseUluc3RhbmNl
KiBpbnN0YW5jZSwgdWludDhfdCBtZW1vcnlJbmRleCkpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRf
SklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5RmlsbCwgVUNQVVN0cmljdEludDMyLCAo
SlNXZWJBc3NlbWJseUluc3RhbmNlKiwgdWludDY0X3QgZHN0QWRkcmVzcywgdWludDMyX3QgdGFy
Z2V0VmFsdWUsIHVpbnQ2NF90IGNvdW50LCB1aW50OF90IG1lbW9yeUluZGV4KSk7Ci1KU0NfREVD
TEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21NZW1vcnlDb3B5LCBVQ1BV
U3RyaWN0SW50MzIsIChKU1dlYkFzc2VtYmx5SW5zdGFuY2UqLCB1aW50NjRfdCBkc3RBZGRyZXNz
LCB1aW50NjRfdCBzcmNBZGRyZXNzLCB1aW50NjRfdCBjb3VudCwgdWludDhfdCBkc3RNZW1vcnlJ
bmRleCwgdWludDhfdCBzcmNNZW1vcnlJbmRleCkpOworSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklU
X09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5RmlsbCwgVUNQVVN0cmljdEludDMyLCAoSlNX
ZWJBc3NlbWJseUluc3RhbmNlKiwgdWludDMyX3QgZHN0QWRkcmVzcywgdWludDMyX3QgdGFyZ2V0
VmFsdWUsIHVpbnQzMl90IGNvdW50LCB1aW50OF90IG1lbW9yeUluZGV4KSk7CitKU0NfREVDTEFS
RV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbldhc21NZW1vcnlDb3B5LCBVQ1BVU3Ry
aWN0SW50MzIsIChKU1dlYkFzc2VtYmx5SW5zdGFuY2UqLCB1aW50MzJfdCBkc3RBZGRyZXNzLCB1
aW50MzJfdCBzcmNBZGRyZXNzLCB1aW50MzJfdCBjb3VudCwgdWludDhfdCBkc3RNZW1vcnlJbmRl
eCwgdWludDhfdCBzcmNNZW1vcnlJbmRleCkpOwogCiBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkdldFdhc21UYWJsZUVsZW1lbnQsIEVuY29kZWRKU1ZhbHVlLCAo
SlNXZWJBc3NlbWJseUluc3RhbmNlKiwgdW5zaWduZWQsIGludDMyX3QpKTsKIEpTQ19ERUNMQVJF
X05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uU2V0V2FzbVRhYmxlRWxlbWVudCwgVUNQ
VVN0cmljdEludDMyLCAoSlNXZWJBc3NlbWJseUluc3RhbmNlKiwgdW5zaWduZWQsIHVpbnQzMl90
LCBFbmNvZGVkSlNWYWx1ZSBlbmNWYWx1ZSkpOwpAQCAtMTA1LDEwICsxMDUsMTAgQEAgSlNDX0RF
Q0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtVGFibGVGaWxsLCBVQ1BV
U3RyaWN0SW50MzIsIChKU1cKIEpTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uV2FzbVRhYmxlQ29weSwgVUNQVVN0cmljdEludDMyLCAoSlNXZWJBc3NlbWJseUluc3Rh
bmNlKiwgdW5zaWduZWQgZHN0VGFibGVJbmRleCwgdW5zaWduZWQgc3JjVGFibGVJbmRleCwgaW50
MzJfdCBkc3RPZmZzZXQsIGludDMyX3Qgc3JjT2Zmc2V0LCBpbnQzMl90IGxlbmd0aCkpOwogSlND
X0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRXYXNtVGFibGVTaXpl
LCBVQ1BVU3RyaWN0SW50MzIsIChKU1dlYkFzc2VtYmx5SW5zdGFuY2UqLCB1bnNpZ25lZCkpOwog
Ci1KU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21p
Y1dhaXQzMiwgVUNQVVN0cmljdEludDMyLCAoSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5j
ZSwgdWludDY0X3QgYmFzZSwgdWludDY0X3Qgb2Zmc2V0LCBpbnQzMl90IHZhbHVlLCBpbnQ2NF90
IHRpbWVvdXQsIHVpbnQ4X3QgbWVtb3J5SW5kZXgpKTsKLUpTQ19ERUNMQVJFX05PRVhDRVBUX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uTWVtb3J5QXRvbWljV2FpdDY0LCBVQ1BVU3RyaWN0SW50MzIs
IChKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RhbmNlLCB1aW50NjRfdCBiYXNlLCB1aW50NjRf
dCBvZmZzZXQsIGludDY0X3QgdmFsdWUsIGludDY0X3QgdGltZW91dCwgdWludDhfdCBtZW1vcnlJ
bmRleCkpOwotSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1v
cnlBdG9taWNOb3RpZnksIFVDUFVTdHJpY3RJbnQzMiwgKEpTV2ViQXNzZW1ibHlJbnN0YW5jZSos
IHVpbnQ2NF90LCB1aW50NjRfdCwgaW50MzJfdCwgdWludDhfdCBtZW1vcnlJbmRleCkpOwotSlND
X0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5SW5pdCwg
VUNQVVN0cmljdEludDMyLCAoSlNXZWJBc3NlbWJseUluc3RhbmNlKiwgdW5zaWduZWQgZGF0YVNl
Z21lbnRJbmRleCwgdWludDY0X3QgZHN0QWRkcmVzcywgdWludDMyX3Qgc3JjQWRkcmVzcywgdWlu
dDMyX3QgbGVuZ3RoLCB1aW50OF90IG1lbW9yeUluZGV4KSk7CitKU0NfREVDTEFSRV9OT0VYQ0VQ
VF9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbk1lbW9yeUF0b21pY1dhaXQzMiwgVUNQVVN0cmljdElu
dDMyLCAoSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgYmFzZSwgdW5z
aWduZWQgb2Zmc2V0LCBpbnQzMl90IHZhbHVlLCBpbnQ2NF90IHRpbWVvdXQsIHVpbnQ4X3QgbWVt
b3J5SW5kZXgpKTsKK0pTQ19ERUNMQVJFX05PRVhDRVBUX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
TWVtb3J5QXRvbWljV2FpdDY0LCBVQ1BVU3RyaWN0SW50MzIsIChKU1dlYkFzc2VtYmx5SW5zdGFu
Y2UqIGluc3RhbmNlLCB1bnNpZ25lZCBiYXNlLCB1bnNpZ25lZCBvZmZzZXQsIGludDY0X3QgdmFs
dWUsIGludDY0X3QgdGltZW91dCwgdWludDhfdCBtZW1vcnlJbmRleCkpOworSlNDX0RFQ0xBUkVf
Tk9FWENFUFRfSklUX09QRVJBVElPTihvcGVyYXRpb25NZW1vcnlBdG9taWNOb3RpZnksIFVDUFVT
dHJpY3RJbnQzMiwgKEpTV2ViQXNzZW1ibHlJbnN0YW5jZSosIHVuc2lnbmVkLCB1bnNpZ25lZCwg
aW50MzJfdCwgdWludDhfdCBtZW1vcnlJbmRleCkpOworSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklU
X09QRVJBVElPTihvcGVyYXRpb25XYXNtTWVtb3J5SW5pdCwgVUNQVVN0cmljdEludDMyLCAoSlNX
ZWJBc3NlbWJseUluc3RhbmNlKiwgdW5zaWduZWQgZGF0YVNlZ21lbnRJbmRleCwgdWludDMyX3Qg
ZHN0QWRkcmVzcywgdWludDMyX3Qgc3JjQWRkcmVzcywgdWludDMyX3QgbGVuZ3RoLCB1aW50OF90
IG1lbW9yeUluZGV4KSk7CiBKU0NfREVDTEFSRV9OT0VYQ0VQVF9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbldhc21EYXRhRHJvcCwgdm9pZCwgKEpTV2ViQXNzZW1ibHlJbnN0YW5jZSosIHVuc2lnbmVk
IGRhdGFTZWdtZW50SW5kZXgpKTsKIAogSlNDX0RFQ0xBUkVfTk9FWENFUFRfSklUX09QRVJBVElP
TihvcGVyYXRpb25XYXNtU3RydWN0TmV3RW1wdHksIEVuY29kZWRKU1ZhbHVlLCAoSlNXZWJBc3Nl
bWJseUluc3RhbmNlKiwgdWludDMyX3QpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21PcGVyYXRpb25zSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU9wZXJhdGlvbnNJbmxpbmVzLmgKaW5kZXggOTY4NjlmNjIyOWUxLi5mOWExOGZk
ZTI4M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRp
b25zSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRp
b25zSW5saW5lcy5oCkBAIC0zOSw3ICszOSw2IEBACiAjaW5jbHVkZSAiV2FzbUlQSW50R2VuZXJh
dG9yLmgiCiAjaW5jbHVkZSAiV2FzbU1vZHVsZUluZm9ybWF0aW9uLmgiCiAjaW5jbHVkZSAiV2Fz
bVR5cGVEZWZpbml0aW9uLmgiCi0jaW5jbHVkZSA8d3RmL0NoZWNrZWRBcml0aG1ldGljLmg+CiAK
IFdURl9BTExPV19VTlNBRkVfQlVGRkVSX1VTQUdFX0JFR0lOCiAKQEAgLTY4NiwxNSArNjg1LDEy
IEBAIGlubGluZSBib29sIG1lbW9yeUluaXQoSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5j
ZSwgdW5zaWduZWQgZGF0YVNlZ21lbnRJbmRlCiAgICAgcmV0dXJuIGluc3RhbmNlLT5tZW1vcnlJ
bml0KGRzdEFkZHJlc3MsIHNyY0FkZHJlc3MsIGxlbmd0aCwgZGF0YVNlZ21lbnRJbmRleCwgbWVt
b3J5SW5kZXgpOwogfQogCi1pbmxpbmUgYm9vbCBtZW1vcnlGaWxsKEpTV2ViQXNzZW1ibHlJbnN0
YW5jZSogaW5zdGFuY2UsIHVpbnQ2NF90IGRzdEFkZHJlc3MsIHVpbnQzMl90IHRhcmdldFZhbHVl
LCB1aW50NjRfdCBjb3VudCwgdWludDhfdCBtZW1vcnlJbmRleCkKK2lubGluZSBib29sIG1lbW9y
eUZpbGwoSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSwgdWludDMyX3QgZHN0QWRkcmVz
cywgdWludDMyX3QgdGFyZ2V0VmFsdWUsIHVpbnQzMl90IGNvdW50LCB1aW50OF90IG1lbW9yeUlu
ZGV4KQogewogICAgIGF1dG8qIGJhc2UgPSBzdGQ6OmJpdF9jYXN0PHVpbnQ4X3QqPihpbnN0YW5j
ZS0+bWVtb3J5KG1lbW9yeUluZGV4KS0+YmFzZVBvaW50ZXIoKSk7CiAgICAgdWludDY0X3Qgc2l6
ZSA9IGluc3RhbmNlLT5tZW1vcnkobWVtb3J5SW5kZXgpLT5tZW1vcnkoKS5zaXplKCk7CiAKLSAg
ICBpZiAoc3VtT3ZlcmZsb3dzPHVpbnQ2NF90Pihkc3RBZGRyZXNzLCBjb3VudCkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIHVpbnQ2NF90IGxhc3REc3RBZGRyZXNzID0gZHN0QWRkcmVz
cyArIGNvdW50OworICAgIHVpbnQ2NF90IGxhc3REc3RBZGRyZXNzID0gc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KGRzdEFkZHJlc3MpICsgY291bnQ7CiAgICAgaWYgKGxhc3REc3RBZGRyZXNzID4gc2l6
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC03MDIsMjEgKzY5OCwxNSBAQCBpbmxpbmUg
Ym9vbCBtZW1vcnlGaWxsKEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQ2NF90
IGRzdEFkZHJlc3MsIHVpbgogICAgIHJldHVybiB0cnVlOwogfQogCi1pbmxpbmUgYm9vbCBtZW1v
cnlDb3B5KEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQ2NF90IGRzdEFkZHJl
c3MsIHVpbnQ2NF90IHNyY0FkZHJlc3MsIHVpbnQ2NF90IGNvdW50LCB1aW50OF90IGRzdE1lbW9y
eUluZGV4LCB1aW50OF90IHNyY01lbW9yeUluZGV4KQoraW5saW5lIGJvb2wgbWVtb3J5Q29weShK
U1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RhbmNlLCB1aW50MzJfdCBkc3RBZGRyZXNzLCB1aW50
MzJfdCBzcmNBZGRyZXNzLCB1aW50MzJfdCBjb3VudCwgdWludDhfdCBkc3RNZW1vcnlJbmRleCwg
dWludDhfdCBzcmNNZW1vcnlJbmRleCkKIHsKICAgICBhdXRvKiBkc3RCYXNlID0gc3RkOjpiaXRf
Y2FzdDx1aW50OF90Kj4oaW5zdGFuY2UtPm1lbW9yeShkc3RNZW1vcnlJbmRleCktPmJhc2VQb2lu
dGVyKCkpOwogICAgIHVpbnQ2NF90IGRzdFNpemUgPSBpbnN0YW5jZS0+bWVtb3J5KGRzdE1lbW9y
eUluZGV4KS0+bWVtb3J5KCkuc2l6ZSgpOwogICAgIGF1dG8qIHNyY0Jhc2UgPSBzdGQ6OmJpdF9j
YXN0PHVpbnQ4X3QqPihpbnN0YW5jZS0+bWVtb3J5KHNyY01lbW9yeUluZGV4KS0+YmFzZVBvaW50
ZXIoKSk7CiAgICAgdWludDY0X3Qgc3JjU2l6ZSA9IGluc3RhbmNlLT5tZW1vcnkoc3JjTWVtb3J5
SW5kZXgpLT5tZW1vcnkoKS5zaXplKCk7CiAKLSAgICBpZiAoc3VtT3ZlcmZsb3dzPHVpbnQ2NF90
Pihkc3RBZGRyZXNzLCBjb3VudCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChz
dW1PdmVyZmxvd3M8dWludDY0X3Q+KHNyY0FkZHJlc3MsIGNvdW50KSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgdWludDY0X3QgbGFzdERzdEFkZHJlc3MgPSBkc3RBZGRyZXNzICsgY291
bnQ7Ci0gICAgdWludDY0X3QgbGFzdFNyY0FkZHJlc3MgPSBzcmNBZGRyZXNzICsgY291bnQ7Cisg
ICAgdWludDY0X3QgbGFzdERzdEFkZHJlc3MgPSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oZHN0QWRk
cmVzcykgKyBjb3VudDsKKyAgICB1aW50NjRfdCBsYXN0U3JjQWRkcmVzcyA9IHN0YXRpY19jYXN0
PHVpbnQ2NF90PihzcmNBZGRyZXNzKSArIGNvdW50OwogCiAgICAgaWYgKGxhc3REc3RBZGRyZXNz
ID4gZHN0U2l6ZSB8fCBsYXN0U3JjQWRkcmVzcyA+IHNyY1NpemUpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTc3OCwxMSArNzY4LDkgQEAgaW5saW5lIGludDMyX3QgbWVtb3J5QXRvbWljV2Fp
dDMyKEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQ2NF90IG9mZnMKICAgICBy
ZXR1cm4gd2FpdEltcGw8aW50MzJfdD4odm0sIHBvaW50ZXIsIHZhbHVlLCB0aW1lb3V0SW5OYW5v
c2Vjb25kcyk7CiB9CiAKLWlubGluZSBpbnQzMl90IG1lbW9yeUF0b21pY1dhaXQzMihKU1dlYkFz
c2VtYmx5SW5zdGFuY2UqIGluc3RhbmNlLCB1aW50NjRfdCBiYXNlLCB1aW50NjRfdCBvZmZzZXQs
IGludDMyX3QgdmFsdWUsIGludDY0X3QgdGltZW91dEluTmFub3NlY29uZHMsIHVpbnQ4X3QgbWVt
b3J5SW5kZXgpCitpbmxpbmUgaW50MzJfdCBtZW1vcnlBdG9taWNXYWl0MzIoSlNXZWJBc3NlbWJs
eUluc3RhbmNlKiBpbnN0YW5jZSwgdW5zaWduZWQgYmFzZSwgdW5zaWduZWQgb2Zmc2V0LCBpbnQz
Ml90IHZhbHVlLCBpbnQ2NF90IHRpbWVvdXRJbk5hbm9zZWNvbmRzLCB1aW50OF90IG1lbW9yeUlu
ZGV4KQogewotICAgIGlmIChzdW1PdmVyZmxvd3M8dWludDY0X3Q+KGJhc2UsIG9mZnNldCkpCi0g
ICAgICAgIHJldHVybiAtMTsKLSAgICByZXR1cm4gbWVtb3J5QXRvbWljV2FpdDMyKGluc3RhbmNl
LCBiYXNlICsgb2Zmc2V0LCB2YWx1ZSwgdGltZW91dEluTmFub3NlY29uZHMsIG1lbW9yeUluZGV4
KTsKKyAgICByZXR1cm4gbWVtb3J5QXRvbWljV2FpdDMyKGluc3RhbmNlLCBzdGF0aWNfY2FzdDx1
aW50NjRfdD4oYmFzZSkgKyBvZmZzZXQsIHZhbHVlLCB0aW1lb3V0SW5OYW5vc2Vjb25kcywgbWVt
b3J5SW5kZXgpOwogfQogCiBpbmxpbmUgaW50MzJfdCBtZW1vcnlBdG9taWNXYWl0NjQoSlNXZWJB
c3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSwgdWludDY0X3Qgb2Zmc2V0SW5NZW1vcnksIGludDY0
X3QgdmFsdWUsIGludDY0X3QgdGltZW91dEluTmFub3NlY29uZHMsIHVpbnQ4X3QgbWVtb3J5SW5k
ZXgpCkBAIC04MDIsMTggKzc5MCwxNCBAQCBpbmxpbmUgaW50MzJfdCBtZW1vcnlBdG9taWNXYWl0
NjQoSlNXZWJBc3NlbWJseUluc3RhbmNlKiBpbnN0YW5jZSwgdWludDY0X3Qgb2ZmcwogICAgIHJl
dHVybiB3YWl0SW1wbDxpbnQ2NF90Pih2bSwgcG9pbnRlciwgdmFsdWUsIHRpbWVvdXRJbk5hbm9z
ZWNvbmRzKTsKIH0KIAotaW5saW5lIGludDMyX3QgbWVtb3J5QXRvbWljV2FpdDY0KEpTV2ViQXNz
ZW1ibHlJbnN0YW5jZSogaW5zdGFuY2UsIHVpbnQ2NF90IGJhc2UsIHVpbnQ2NF90IG9mZnNldCwg
aW50NjRfdCB2YWx1ZSwgaW50NjRfdCB0aW1lb3V0SW5OYW5vc2Vjb25kcywgdWludDhfdCBtZW1v
cnlJbmRleCkKK2lubGluZSBpbnQzMl90IG1lbW9yeUF0b21pY1dhaXQ2NChKU1dlYkFzc2VtYmx5
SW5zdGFuY2UqIGluc3RhbmNlLCB1bnNpZ25lZCBiYXNlLCB1bnNpZ25lZCBvZmZzZXQsIGludDY0
X3QgdmFsdWUsIGludDY0X3QgdGltZW91dEluTmFub3NlY29uZHMsIHVpbnQ4X3QgbWVtb3J5SW5k
ZXgpCiB7Ci0gICAgaWYgKHN1bU92ZXJmbG93czx1aW50NjRfdD4oYmFzZSwgb2Zmc2V0KSkKLSAg
ICAgICAgcmV0dXJuIC0xOwotICAgIHJldHVybiBtZW1vcnlBdG9taWNXYWl0NjQoaW5zdGFuY2Us
IGJhc2UgKyBvZmZzZXQsIHZhbHVlLCB0aW1lb3V0SW5OYW5vc2Vjb25kcywgbWVtb3J5SW5kZXgp
OworICAgIHJldHVybiBtZW1vcnlBdG9taWNXYWl0NjQoaW5zdGFuY2UsIHN0YXRpY19jYXN0PHVp
bnQ2NF90PihiYXNlKSArIG9mZnNldCwgdmFsdWUsIHRpbWVvdXRJbk5hbm9zZWNvbmRzLCBtZW1v
cnlJbmRleCk7CiB9CiAKLWlubGluZSBpbnQzMl90IG1lbW9yeUF0b21pY05vdGlmeShKU1dlYkFz
c2VtYmx5SW5zdGFuY2UqIGluc3RhbmNlLCB1aW50NjRfdCBiYXNlLCB1aW50NjRfdCBvZmZzZXQs
IGludDMyX3QgY291bnRWYWx1ZSwgdWludDhfdCBtZW1vcnlJbmRleCkKK2lubGluZSBpbnQzMl90
IG1lbW9yeUF0b21pY05vdGlmeShKU1dlYkFzc2VtYmx5SW5zdGFuY2UqIGluc3RhbmNlLCB1bnNp
Z25lZCBiYXNlLCB1bnNpZ25lZCBvZmZzZXQsIGludDMyX3QgY291bnRWYWx1ZSwgdWludDhfdCBt
ZW1vcnlJbmRleCkKIHsKLSAgICBpZiAoc3VtT3ZlcmZsb3dzPHVpbnQ2NF90PihiYXNlLCBvZmZz
ZXQpKQotICAgICAgICByZXR1cm4gLTE7Ci0gICAgdWludDY0X3Qgb2Zmc2V0SW5NZW1vcnkgPSBi
YXNlICsgb2Zmc2V0OworICAgIHVpbnQ2NF90IG9mZnNldEluTWVtb3J5ID0gc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KGJhc2UpICsgb2Zmc2V0OwogICAgIGlmIChvZmZzZXRJbk1lbW9yeSAmICgweDQg
LSAxKSkKICAgICAgICAgcmV0dXJuIC0xOwogICAgIGlmIChtZW1vcnlJbmRleCA+PSBpbnN0YW5j
ZS0+bW9kdWxlSW5mb3JtYXRpb24oKS5tZW1vcnlDb3VudCgpKQpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy93YXNtL3N0cmVzcy9tZW1vcnk2NC1hdG9taWNzLmpzIGIvSlNUZXN0cy93YXNtL3N0cmVzcy9t
ZW1vcnk2NC1hdG9taWNzLmpzCmluZGV4IDk1ZTQ3YWE4MGEwNC4uN2I0MzI5N2RjNDUzIDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3dhc20vc3RyZXNzL21lbW9yeTY0LWF0b21pY3MuanMKKysrIGIvSlNU
ZXN0cy93YXNtL3N0cmVzcy9tZW1vcnk2NC1hdG9taWNzLmpzCkBAIC0xLDUgKzEsNSBAQAogLy9A
IHNraXAgaWYgJGFkZHJlc3NCaXRzIDw9IDMyCi0vL0AgcnVuRGVmYXVsdFdhc20oIi1tIiwgIi0t
dXNlV2FzbU1lbW9yeTY0PTEiKQorLy9AIHJ1bkRlZmF1bHRXYXNtKCItbSIsICItLXVzZVdhc21N
ZW1vcnk2ND0xIiwgIi0tdXNlT01HSklUPTAiKQogaW1wb3J0IHsgaW5zdGFudGlhdGUgfSBmcm9t
ICIuLi93YWJ0LXdyYXBwZXIuanMiOwogaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gIi4uL2Fzc2Vy
dC5qcyI7CiAKQEAgLTE2NywyNjYgKzE2NywzIEBAIGltcG9ydCAqIGFzIGFzc2VydCBmcm9tICIu
Li9hc3NlcnQuanMiOwogICAgICAgICBhc3NlcnQuZXEoZS50ZXN0X21lbW9yeV9hdG9taWNfbm90
aWZ5KDAsIDEpLCAwKTsgLy8gbm8gd2FpdGVycwogICAgIH0KIH0KLQotLy8gVGVzdCBhdG9taWNz
IHdpdGggc2hhcmVkIG1lbW9yeTY0IChpNjQgYWRkcmVzc2VzKSDigJQgdGhlIGNvbWJpbmVkIGNh
c2UuCi0vLyBUaGlzIGV4ZXJjaXNlcyB0aGUgcGFyc2VyIGFjY2VwdGluZyBpNjQgcG9pbnRlcnMg
Zm9yIGF0b21pYyBvcHMgb24gbWVtb3J5NjQsCi0vLyBhbmQgdGhlIHJ1bnRpbWUgcGVyZm9ybWlu
ZyBhdG9taWMgb3BlcmF0aW9ucyB0aHJvdWdoIDY0LWJpdCBhZGRyZXNzaW5nLgotewotICAgIGNv
bnN0IG9mZnNldCA9IDI1NjsKLQotICAgIGxldCB3YXQgPSBgCi0gICAgKG1vZHVsZQotICAgICAg
KG1lbW9yeSAoZXhwb3J0ICJtZW1vcnkiKSBpNjQgMSAxIHNoYXJlZCkKLQotICAgICAgOzsgTm9u
LWF0b21pYyBoZWxwZXJzIChmb3Igc2V0dXAvdmVyaWZpY2F0aW9uKQotICAgICAgKGZ1bmMgKGV4
cG9ydCAiaTMyX3N0b3JlIikgKHBhcmFtIGk2NCBpMzIpIChsb2NhbC5nZXQgMCkgKGxvY2FsLmdl
dCAxKSAoaTMyLnN0b3JlIG9mZnNldD0ke29mZnNldH0pKQotICAgICAgKGZ1bmMgKGV4cG9ydCAi
aTMyX2xvYWQiKSAocGFyYW0gaTY0KSAocmVzdWx0IGkzMikgKGxvY2FsLmdldCAwKSAoaTMyLmxv
YWQgb2Zmc2V0PSR7b2Zmc2V0fSkpCi0gICAgICAoZnVuYyAoZXhwb3J0ICJpNjRfc3RvcmUiKSAo
cGFyYW0gaTY0IGk2NCkgKGxvY2FsLmdldCAwKSAobG9jYWwuZ2V0IDEpIChpNjQuc3RvcmUgb2Zm
c2V0PSR7b2Zmc2V0fSkpCi0gICAgICAoZnVuYyAoZXhwb3J0ICJpNjRfbG9hZCIpIChwYXJhbSBp
NjQpIChyZXN1bHQgaTY0KSAobG9jYWwuZ2V0IDApIChpNjQubG9hZCBvZmZzZXQ9JHtvZmZzZXR9
KSkKLQotICAgICAgOzsgQXRvbWljIGxvYWRzIHdpdGggb2Zmc2V0Ci0gICAgICAoZnVuYyAoZXhw
b3J0ICJ0ZXN0X2kzMl9hdG9taWNfbG9hZCIpIChwYXJhbSBpNjQpIChyZXN1bHQgaTMyKSAobG9j
YWwuZ2V0IDApIChpMzIuYXRvbWljLmxvYWQgb2Zmc2V0PSR7b2Zmc2V0fSkpCi0gICAgICAoZnVu
YyAoZXhwb3J0ICJ0ZXN0X2k2NF9hdG9taWNfbG9hZCIpIChwYXJhbSBpNjQpIChyZXN1bHQgaTY0
KSAobG9jYWwuZ2V0IDApIChpNjQuYXRvbWljLmxvYWQgb2Zmc2V0PSR7b2Zmc2V0fSkpCi0gICAg
ICAoZnVuYyAoZXhwb3J0ICJ0ZXN0X2kzMl9hdG9taWNfbG9hZDhfdSIpIChwYXJhbSBpNjQpIChy
ZXN1bHQgaTMyKSAobG9jYWwuZ2V0IDApIChpMzIuYXRvbWljLmxvYWQ4X3Ugb2Zmc2V0PSR7b2Zm
c2V0fSkpCi0gICAgICAoZnVuYyAoZXhwb3J0ICJ0ZXN0X2kzMl9hdG9taWNfbG9hZDE2X3UiKSAo
cGFyYW0gaTY0KSAocmVzdWx0IGkzMikgKGxvY2FsLmdldCAwKSAoaTMyLmF0b21pYy5sb2FkMTZf
dSBvZmZzZXQ9JHtvZmZzZXR9KSkKLSAgICAgIChmdW5jIChleHBvcnQgInRlc3RfaTY0X2F0b21p
Y19sb2FkOF91IikgKHBhcmFtIGk2NCkgKHJlc3VsdCBpNjQpIChsb2NhbC5nZXQgMCkgKGk2NC5h
dG9taWMubG9hZDhfdSBvZmZzZXQ9JHtvZmZzZXR9KSkKLSAgICAgIChmdW5jIChleHBvcnQgInRl
c3RfaTY0X2F0b21pY19sb2FkMTZfdSIpIChwYXJhbSBpNjQpIChyZXN1bHQgaTY0KSAobG9jYWwu
Z2V0IDApIChpNjQuYXRvbWljLmxvYWQxNl91IG9mZnNldD0ke29mZnNldH0pKQotICAgICAgKGZ1
bmMgKGV4cG9ydCAidGVzdF9pNjRfYXRvbWljX2xvYWQzMl91IikgKHBhcmFtIGk2NCkgKHJlc3Vs
dCBpNjQpIChsb2NhbC5nZXQgMCkgKGk2NC5hdG9taWMubG9hZDMyX3Ugb2Zmc2V0PSR7b2Zmc2V0
fSkpCi0KLSAgICAgIDs7IEF0b21pYyBzdG9yZXMgd2l0aCBvZmZzZXQKLSAgICAgIChmdW5jIChl
eHBvcnQgInRlc3RfaTMyX2F0b21pY19zdG9yZSIpIChwYXJhbSBpNjQgaTMyKSAobG9jYWwuZ2V0
IDApIChsb2NhbC5nZXQgMSkgKGkzMi5hdG9taWMuc3RvcmUgb2Zmc2V0PSR7b2Zmc2V0fSkpCi0g
ICAgICAoZnVuYyAoZXhwb3J0ICJ0ZXN0X2k2NF9hdG9taWNfc3RvcmUiKSAocGFyYW0gaTY0IGk2
NCkgKGxvY2FsLmdldCAwKSAobG9jYWwuZ2V0IDEpIChpNjQuYXRvbWljLnN0b3JlIG9mZnNldD0k
e29mZnNldH0pKQotICAgICAgKGZ1bmMgKGV4cG9ydCAidGVzdF9pMzJfYXRvbWljX3N0b3JlOCIp
IChwYXJhbSBpNjQgaTMyKSAobG9jYWwuZ2V0IDApIChsb2NhbC5nZXQgMSkgKGkzMi5hdG9taWMu
c3RvcmU4IG9mZnNldD0ke29mZnNldH0pKQotICAgICAgKGZ1bmMgKGV4cG9ydCAidGVzdF9pMzJf
YXRvbWljX3N0b3JlMTYiKSAocGFyYW0gaTY0IGkzMikgKGxvY2FsLmdldCAwKSAobG9jYWwuZ2V0
IDEpIChpMzIuYXRvbWljLnN0b3JlMTYgb2Zmc2V0PSR7b2Zmc2V0fSkpCi0gICAgICAoZnVuYyAo
ZXhwb3J0ICJ0ZXN0X2k2NF9hdG9taWNfc3RvcmU4IikgKHBhcmFtIGk2NCBpNjQpIChsb2NhbC5n
ZXQgMCkgKGxvY2FsLmdldCAxKSAoaTY0LmF0b21pYy5zdG9yZTggb2Zmc2V0PSR7b2Zmc2V0fSkp
Ci0gICAgICAoZnVuYyAoZXhwb3J0ICJ0ZXN0X2k2NF9hdG9taWNfc3RvcmUxNiIpIChwYXJhbSBp
NjQgaTY0KSAobG9jYWwuZ2V0IDApIChsb2NhbC5nZXQgMSkgKGk2NC5hdG9taWMuc3RvcmUxNiBv
ZmZzZXQ9JHtvZmZzZXR9KSkKLSAgICAgIChmdW5jIChleHBvcnQgInRlc3RfaTY0X2F0b21pY19z
dG9yZTMyIikgKHBhcmFtIGk2NCBpNjQpIChsb2NhbC5nZXQgMCkgKGxvY2FsLmdldCAxKSAoaTY0
LmF0b21pYy5zdG9yZTMyIG9mZnNldD0ke29mZnNldH0pKQotCi0gICAgICA7OyBBdG9taWMgUk1X
IGFkZCB3aXRoIG9mZnNldAotICAgICAgKGZ1bmMgKGV4cG9ydCAidGVzdF9pMzJfYXRvbWljX3Jt
d19hZGQiKSAocGFyYW0gaTY0IGkzMikgKHJlc3VsdCBpMzIpIChsb2NhbC5nZXQgMCkgKGxvY2Fs
LmdldCAxKSAoaTMyLmF0b21pYy5ybXcuYWRkIG9mZnNldD0ke29mZnNldH0pKQotICAgICAgKGZ1
bmMgKGV4cG9ydCAidGVzdF9pNjRfYXRvbWljX3Jtd19hZGQiKSAocGFyYW0gaTY0IGk2NCkgKHJl
c3VsdCBpNjQpIChsb2NhbC5nZXQgMCkgKGxvY2FsLmdldCAxKSAoaTY0LmF0b21pYy5ybXcuYWRk
IG9mZnNldD0ke29mZnNldH0pKQotCi0gICAgICA7OyBBdG9taWMgUk1XIHN1YiB3aXRoIG9mZnNl
dAotICAgICAgKGZ1bmMgKGV4cG9ydCAidGVzdF9pMzJfYXRvbWljX3Jtd19zdWIiKSAocGFyYW0g
aTY0IGkzMikgKHJlc3VsdCBpMzIpIChsb2NhbC5nZXQgMCkgKGxvY2FsLmdldCAxKSAoaTMyLmF0
b21pYy5ybXcuc3ViIG9mZnNldD0ke29mZnNldH0pKQotICAgICAgKGZ1bmMgKGV4cG9ydCAidGVz
dF9pNjRfYXRvbWljX3Jtd19zdWIiKSAocGFyYW0gaTY0IGk2NCkgKHJlc3VsdCBpNjQpIChsb2Nh
bC5nZXQgMCkgKGxvY2FsLmdldCAxKSAoaTY0LmF0b21pYy5ybXcuc3ViIG9mZnNldD0ke29mZnNl
dH0pKQotCi0gICAgICA7OyBBdG9taWMgUk1XIGFuZC9vci94b3Igd2l0aCBvZmZzZXQKLSAgICAg
IChmdW5jIChleHBvcnQgInRlc3RfaTMyX2F0b21pY19ybXdfYW5kIikgKHBhcmFtIGk2NCBpMzIp
IChyZXN1bHQgaTMyKSAobG9jYWwuZ2V0IDApIChsb2NhbC5nZXQgMSkgKGkzMi5hdG9taWMucm13
LmFuZCBvZmZzZXQ9JHtvZmZzZXR9KSkKLSAgICAgIChmdW5jIChleHBvcnQgInRlc3RfaTMyX2F0
b21pY19ybXdfb3IiKSAocGFyYW0gaTY0IGkzMikgKHJlc3VsdCBpMzIpIChsb2NhbC5nZXQgMCkg
KGxvY2FsLmdldCAxKSAoaTMyLmF0b21pYy5ybXcub3Igb2Zmc2V0PSR7b2Zmc2V0fSkpCi0gICAg
ICAoZnVuYyAoZXhwb3J0ICJ0ZXN0X2kzMl9hdG9taWNfcm13X3hvciIpIChwYXJhbSBpNjQgaTMy
KSAocmVzdWx0IGkzMikgKGxvY2FsLmdldCAwKSAobG9jYWwuZ2V0IDEpIChpMzIuYXRvbWljLnJt
dy54b3Igb2Zmc2V0PSR7b2Zmc2V0fSkpCi0KLSAgICAgIDs7IEF0b21pYyBSTVcgeGNoZyB3aXRo
IG9mZnNldAotICAgICAgKGZ1bmMgKGV4cG9ydCAidGVzdF9pMzJfYXRvbWljX3Jtd194Y2hnIikg
KHBhcmFtIGk2NCBpMzIpIChyZXN1bHQgaTMyKSAobG9jYWwuZ2V0IDApIChsb2NhbC5nZXQgMSkg
KGkzMi5hdG9taWMucm13LnhjaGcgb2Zmc2V0PSR7b2Zmc2V0fSkpCi0gICAgICAoZnVuYyAoZXhw
b3J0ICJ0ZXN0X2k2NF9hdG9taWNfcm13X3hjaGciKSAocGFyYW0gaTY0IGk2NCkgKHJlc3VsdCBp
NjQpIChsb2NhbC5nZXQgMCkgKGxvY2FsLmdldCAxKSAoaTY0LmF0b21pYy5ybXcueGNoZyBvZmZz
ZXQ9JHtvZmZzZXR9KSkKLQotICAgICAgOzsgQXRvbWljIFJNVyBjbXB4Y2hnIHdpdGggb2Zmc2V0
Ci0gICAgICAoZnVuYyAoZXhwb3J0ICJ0ZXN0X2kzMl9hdG9taWNfcm13X2NtcHhjaGciKSAocGFy
YW0gaTY0IGkzMiBpMzIpIChyZXN1bHQgaTMyKSAobG9jYWwuZ2V0IDApIChsb2NhbC5nZXQgMSkg
KGxvY2FsLmdldCAyKSAoaTMyLmF0b21pYy5ybXcuY21weGNoZyBvZmZzZXQ9JHtvZmZzZXR9KSkK
LSAgICAgIChmdW5jIChleHBvcnQgInRlc3RfaTY0X2F0b21pY19ybXdfY21weGNoZyIpIChwYXJh
bSBpNjQgaTY0IGk2NCkgKHJlc3VsdCBpNjQpIChsb2NhbC5nZXQgMCkgKGxvY2FsLmdldCAxKSAo
bG9jYWwuZ2V0IDIpIChpNjQuYXRvbWljLnJtdy5jbXB4Y2hnIG9mZnNldD0ke29mZnNldH0pKQot
Ci0gICAgICA7OyBBdG9taWMgbm90aWZ5IHdpdGggb2Zmc2V0Ci0gICAgICAoZnVuYyAoZXhwb3J0
ICJ0ZXN0X21lbW9yeV9hdG9taWNfbm90aWZ5IikgKHBhcmFtIGk2NCBpMzIpIChyZXN1bHQgaTMy
KSAobG9jYWwuZ2V0IDApIChsb2NhbC5nZXQgMSkgKG1lbW9yeS5hdG9taWMubm90aWZ5IG9mZnNl
dD0ke29mZnNldH0pKQotCi0gICAgICA7OyBBdG9taWMgd2FpdCB3aXRoIG9mZnNldAotICAgICAg
KGZ1bmMgKGV4cG9ydCAidGVzdF9tZW1vcnlfYXRvbWljX3dhaXQzMiIpIChwYXJhbSBpNjQgaTMy
IGk2NCkgKHJlc3VsdCBpMzIpIChsb2NhbC5nZXQgMCkgKGxvY2FsLmdldCAxKSAobG9jYWwuZ2V0
IDIpIChtZW1vcnkuYXRvbWljLndhaXQzMiBvZmZzZXQ9JHtvZmZzZXR9KSkKLSAgICAgIChmdW5j
IChleHBvcnQgInRlc3RfbWVtb3J5X2F0b21pY193YWl0NjQiKSAocGFyYW0gaTY0IGk2NCBpNjQp
IChyZXN1bHQgaTMyKSAobG9jYWwuZ2V0IDApIChsb2NhbC5nZXQgMSkgKGxvY2FsLmdldCAyKSAo
bWVtb3J5LmF0b21pYy53YWl0NjQgb2Zmc2V0PSR7b2Zmc2V0fSkpCi0KLSAgICAgIDs7IFN1Yi13
aWR0aCBhdG9taWMgUk1XIG9wZXJhdGlvbnMgd2l0aCBvZmZzZXQKLSAgICAgIChmdW5jIChleHBv
cnQgInRlc3RfaTMyX2F0b21pY19ybXc4X2FkZF91IikgKHBhcmFtIGk2NCBpMzIpIChyZXN1bHQg
aTMyKSAobG9jYWwuZ2V0IDApIChsb2NhbC5nZXQgMSkgKGkzMi5hdG9taWMucm13OC5hZGRfdSBv
ZmZzZXQ9JHtvZmZzZXR9KSkKLSAgICAgIChmdW5jIChleHBvcnQgInRlc3RfaTMyX2F0b21pY19y
bXcxNl9hZGRfdSIpIChwYXJhbSBpNjQgaTMyKSAocmVzdWx0IGkzMikgKGxvY2FsLmdldCAwKSAo
bG9jYWwuZ2V0IDEpIChpMzIuYXRvbWljLnJtdzE2LmFkZF91IG9mZnNldD0ke29mZnNldH0pKQot
ICAgICAgKGZ1bmMgKGV4cG9ydCAidGVzdF9pNjRfYXRvbWljX3JtdzhfYWRkX3UiKSAocGFyYW0g
aTY0IGk2NCkgKHJlc3VsdCBpNjQpIChsb2NhbC5nZXQgMCkgKGxvY2FsLmdldCAxKSAoaTY0LmF0
b21pYy5ybXc4LmFkZF91IG9mZnNldD0ke29mZnNldH0pKQotICAgICAgKGZ1bmMgKGV4cG9ydCAi
dGVzdF9pNjRfYXRvbWljX3JtdzE2X2FkZF91IikgKHBhcmFtIGk2NCBpNjQpIChyZXN1bHQgaTY0
KSAobG9jYWwuZ2V0IDApIChsb2NhbC5nZXQgMSkgKGk2NC5hdG9taWMucm13MTYuYWRkX3Ugb2Zm
c2V0PSR7b2Zmc2V0fSkpCi0gICAgICAoZnVuYyAoZXhwb3J0ICJ0ZXN0X2k2NF9hdG9taWNfcm13
MzJfYWRkX3UiKSAocGFyYW0gaTY0IGk2NCkgKHJlc3VsdCBpNjQpIChsb2NhbC5nZXQgMCkgKGxv
Y2FsLmdldCAxKSAoaTY0LmF0b21pYy5ybXczMi5hZGRfdSBvZmZzZXQ9JHtvZmZzZXR9KSkKLQot
ICAgICAgOzsgQXRvbWljIG9wZXJhdGlvbnMgd2l0aCBvZmZzZXQ9MCAoZXhlcmNpc2VzIGJvdW5k
YXJ5PT0wIHBhdGggZm9yIDgtYml0IG9wcykKLSAgICAgIChmdW5jIChleHBvcnQgInRlc3RfaTMy
X2F0b21pY19sb2FkOF91X25vX29mZnNldCIpIChwYXJhbSBpNjQpIChyZXN1bHQgaTMyKSAobG9j
YWwuZ2V0IDApIChpMzIuYXRvbWljLmxvYWQ4X3UpKQotICAgICAgKGZ1bmMgKGV4cG9ydCAidGVz
dF9pMzJfYXRvbWljX3N0b3JlOF9ub19vZmZzZXQiKSAocGFyYW0gaTY0IGkzMikgKGxvY2FsLmdl
dCAwKSAobG9jYWwuZ2V0IDEpIChpMzIuYXRvbWljLnN0b3JlOCkpCi0gICAgICAoZnVuYyAoZXhw
b3J0ICJ0ZXN0X2kzMl9hdG9taWNfbG9hZF9ub19vZmZzZXQiKSAocGFyYW0gaTY0KSAocmVzdWx0
IGkzMikgKGxvY2FsLmdldCAwKSAoaTMyLmF0b21pYy5sb2FkKSkKLSAgICAgIChmdW5jIChleHBv
cnQgInRlc3RfaTMyX2F0b21pY19zdG9yZV9ub19vZmZzZXQiKSAocGFyYW0gaTY0IGkzMikgKGxv
Y2FsLmdldCAwKSAobG9jYWwuZ2V0IDEpIChpMzIuYXRvbWljLnN0b3JlKSkKLSAgICApCi0gICAg
YDsKLQotICAgIGNvbnN0IGluc3RhbmNlID0gYXdhaXQgaW5zdGFudGlhdGUod2F0LCB7fSwgeyB0
aHJlYWRzOiB0cnVlLCBtZW1vcnk2NDogdHJ1ZSB9KTsKLSAgICBjb25zdCBlID0gaW5zdGFuY2Uu
ZXhwb3J0czsKLQotICAgIGZ1bmN0aW9uIGNsZWFyKCkgewotICAgICAgICBlLmk2NF9zdG9yZSgw
biwgMG4pOwotICAgICAgICBlLmk2NF9zdG9yZSg4biwgMG4pOwotICAgIH0KLQotICAgIGZvciAo
bGV0IGkgPSAwOyBpIDwgd2FzbVRlc3RMb29wQ291bnQ7IGkrKykgewotICAgICAgICAvLyA9PT0g
QXRvbWljIExvYWRzID09PQotICAgICAgICBjbGVhcigpOwotICAgICAgICBlLmk2NF9zdG9yZSgw
biwgMHg3NzY2NTU0NDMzMjIxMTQybik7Ci0KLSAgICAgICAgYXNzZXJ0LmVxKGUudGVzdF9pMzJf
YXRvbWljX2xvYWQoMG4pLCAweDMzMjIxMTQyKTsKLSAgICAgICAgYXNzZXJ0LmVxKGUudGVzdF9p
NjRfYXRvbWljX2xvYWQoMG4pLCAweDc3NjY1NTQ0MzMyMjExNDJuKTsKLSAgICAgICAgYXNzZXJ0
LmVxKGUudGVzdF9pMzJfYXRvbWljX2xvYWQ4X3UoMG4pLCAweDQyKTsKLSAgICAgICAgYXNzZXJ0
LmVxKGUudGVzdF9pMzJfYXRvbWljX2xvYWQxNl91KDBuKSwgMHgxMTQyKTsKLSAgICAgICAgYXNz
ZXJ0LmVxKGUudGVzdF9pNjRfYXRvbWljX2xvYWQ4X3UoMG4pLCAweDQybik7Ci0gICAgICAgIGFz
c2VydC5lcShlLnRlc3RfaTY0X2F0b21pY19sb2FkMTZfdSgwbiksIDB4MTE0Mm4pOwotICAgICAg
ICBhc3NlcnQuZXEoZS50ZXN0X2k2NF9hdG9taWNfbG9hZDMyX3UoMG4pLCAweDMzMjIxMTQybik7
Ci0KLSAgICAgICAgLy8gPT09IEF0b21pYyBTdG9yZXMgPT09Ci0gICAgICAgIGNsZWFyKCk7Ci0g
ICAgICAgIGUudGVzdF9pMzJfYXRvbWljX3N0b3JlKDBuLCAweDEyMzQ1Njc4KTsKLSAgICAgICAg
YXNzZXJ0LmVxKGUuaTMyX2xvYWQoMG4pLCAweDEyMzQ1Njc4KTsKLQotICAgICAgICBjbGVhcigp
OwotICAgICAgICBlLnRlc3RfaTY0X2F0b21pY19zdG9yZSgwbiwgMHgxMjM0NTY3ODlBQkNERUYw
bik7Ci0gICAgICAgIGFzc2VydC5lcShlLmk2NF9sb2FkKDBuKSwgMHgxMjM0NTY3ODlBQkNERUYw
bik7Ci0KLSAgICAgICAgY2xlYXIoKTsKLSAgICAgICAgZS50ZXN0X2kzMl9hdG9taWNfc3RvcmU4
KDBuLCAweDQyKTsKLSAgICAgICAgYXNzZXJ0LmVxKGUuaTMyX2xvYWQoMG4pLCAweDQyKTsKLQot
ICAgICAgICBjbGVhcigpOwotICAgICAgICBlLnRlc3RfaTMyX2F0b21pY19zdG9yZTE2KDBuLCAw
eDEyMzQpOwotICAgICAgICBhc3NlcnQuZXEoZS5pMzJfbG9hZCgwbiksIDB4MTIzNCk7Ci0KLSAg
ICAgICAgY2xlYXIoKTsKLSAgICAgICAgZS50ZXN0X2k2NF9hdG9taWNfc3RvcmU4KDBuLCAweDQy
bik7Ci0gICAgICAgIGFzc2VydC5lcShlLmk2NF9sb2FkKDBuKSwgMHg0Mm4pOwotCi0gICAgICAg
IGNsZWFyKCk7Ci0gICAgICAgIGUudGVzdF9pNjRfYXRvbWljX3N0b3JlMTYoMG4sIDB4MTIzNG4p
OwotICAgICAgICBhc3NlcnQuZXEoZS5pNjRfbG9hZCgwbiksIDB4MTIzNG4pOwotCi0gICAgICAg
IGNsZWFyKCk7Ci0gICAgICAgIGUudGVzdF9pNjRfYXRvbWljX3N0b3JlMzIoMG4sIDB4MTIzNDU2
NzhuKTsKLSAgICAgICAgYXNzZXJ0LmVxKGUuaTY0X2xvYWQoMG4pLCAweDEyMzQ1Njc4bik7Ci0K
LSAgICAgICAgLy8gPT09IEF0b21pYyBSTVcgYWRkID09PQotICAgICAgICBjbGVhcigpOwotICAg
ICAgICBlLmkzMl9zdG9yZSgwbiwgMTApOwotICAgICAgICBhc3NlcnQuZXEoZS50ZXN0X2kzMl9h
dG9taWNfcm13X2FkZCgwbiwgNSksIDEwKTsgLy8gcmV0dXJucyBvbGQgdmFsdWUKLSAgICAgICAg
YXNzZXJ0LmVxKGUuaTMyX2xvYWQoMG4pLCAxNSk7Ci0KLSAgICAgICAgY2xlYXIoKTsKLSAgICAg
ICAgZS5pNjRfc3RvcmUoMG4sIDEwMG4pOwotICAgICAgICBhc3NlcnQuZXEoZS50ZXN0X2k2NF9h
dG9taWNfcm13X2FkZCgwbiwgNTBuKSwgMTAwbik7Ci0gICAgICAgIGFzc2VydC5lcShlLmk2NF9s
b2FkKDBuKSwgMTUwbik7Ci0KLSAgICAgICAgLy8gPT09IEF0b21pYyBSTVcgc3ViID09PQotICAg
ICAgICBjbGVhcigpOwotICAgICAgICBlLmkzMl9zdG9yZSgwbiwgMTAwKTsKLSAgICAgICAgYXNz
ZXJ0LmVxKGUudGVzdF9pMzJfYXRvbWljX3Jtd19zdWIoMG4sIDMwKSwgMTAwKTsKLSAgICAgICAg
YXNzZXJ0LmVxKGUuaTMyX2xvYWQoMG4pLCA3MCk7Ci0KLSAgICAgICAgY2xlYXIoKTsKLSAgICAg
ICAgZS5pNjRfc3RvcmUoMG4sIDIwMG4pOwotICAgICAgICBhc3NlcnQuZXEoZS50ZXN0X2k2NF9h
dG9taWNfcm13X3N1YigwbiwgNTBuKSwgMjAwbik7Ci0gICAgICAgIGFzc2VydC5lcShlLmk2NF9s
b2FkKDBuKSwgMTUwbik7Ci0KLSAgICAgICAgLy8gPT09IEF0b21pYyBSTVcgYW5kL29yL3hvciA9
PT0KLSAgICAgICAgY2xlYXIoKTsKLSAgICAgICAgZS5pMzJfc3RvcmUoMG4sIDB4RkYpOwotICAg
ICAgICBhc3NlcnQuZXEoZS50ZXN0X2kzMl9hdG9taWNfcm13X2FuZCgwbiwgMHgwRiksIDB4RkYp
OwotICAgICAgICBhc3NlcnQuZXEoZS5pMzJfbG9hZCgwbiksIDB4MEYpOwotCi0gICAgICAgIGNs
ZWFyKCk7Ci0gICAgICAgIGUuaTMyX3N0b3JlKDBuLCAweEYwKTsKLSAgICAgICAgYXNzZXJ0LmVx
KGUudGVzdF9pMzJfYXRvbWljX3Jtd19vcigwbiwgMHgwRiksIDB4RjApOwotICAgICAgICBhc3Nl
cnQuZXEoZS5pMzJfbG9hZCgwbiksIDB4RkYpOwotCi0gICAgICAgIGNsZWFyKCk7Ci0gICAgICAg
IGUuaTMyX3N0b3JlKDBuLCAweEZGKTsKLSAgICAgICAgYXNzZXJ0LmVxKGUudGVzdF9pMzJfYXRv
bWljX3Jtd194b3IoMG4sIDB4MEYpLCAweEZGKTsKLSAgICAgICAgYXNzZXJ0LmVxKGUuaTMyX2xv
YWQoMG4pLCAweEYwKTsKLQotICAgICAgICAvLyA9PT0gQXRvbWljIFJNVyB4Y2hnID09PQotICAg
ICAgICBjbGVhcigpOwotICAgICAgICBlLmkzMl9zdG9yZSgwbiwgNDIpOwotICAgICAgICBhc3Nl
cnQuZXEoZS50ZXN0X2kzMl9hdG9taWNfcm13X3hjaGcoMG4sIDk5KSwgNDIpOwotICAgICAgICBh
c3NlcnQuZXEoZS5pMzJfbG9hZCgwbiksIDk5KTsKLQotICAgICAgICBjbGVhcigpOwotICAgICAg
ICBlLmk2NF9zdG9yZSgwbiwgNDJuKTsKLSAgICAgICAgYXNzZXJ0LmVxKGUudGVzdF9pNjRfYXRv
bWljX3Jtd194Y2hnKDBuLCA5OW4pLCA0Mm4pOwotICAgICAgICBhc3NlcnQuZXEoZS5pNjRfbG9h
ZCgwbiksIDk5bik7Ci0KLSAgICAgICAgLy8gPT09IEF0b21pYyBSTVcgY21weGNoZyA9PT0KLSAg
ICAgICAgY2xlYXIoKTsKLSAgICAgICAgZS5pMzJfc3RvcmUoMG4sIDQyKTsKLSAgICAgICAgYXNz
ZXJ0LmVxKGUudGVzdF9pMzJfYXRvbWljX3Jtd19jbXB4Y2hnKDBuLCA0MiwgOTkpLCA0Mik7IC8v
IG1hdGNoOiBzd2FwCi0gICAgICAgIGFzc2VydC5lcShlLmkzMl9sb2FkKDBuKSwgOTkpOwotCi0g
ICAgICAgIGNsZWFyKCk7Ci0gICAgICAgIGUuaTMyX3N0b3JlKDBuLCA0Mik7Ci0gICAgICAgIGFz
c2VydC5lcShlLnRlc3RfaTMyX2F0b21pY19ybXdfY21weGNoZygwbiwgMCwgOTkpLCA0Mik7IC8v
IG5vIG1hdGNoOiBubyBzd2FwCi0gICAgICAgIGFzc2VydC5lcShlLmkzMl9sb2FkKDBuKSwgNDIp
OwotCi0gICAgICAgIGNsZWFyKCk7Ci0gICAgICAgIGUuaTY0X3N0b3JlKDBuLCA0Mm4pOwotICAg
ICAgICBhc3NlcnQuZXEoZS50ZXN0X2k2NF9hdG9taWNfcm13X2NtcHhjaGcoMG4sIDQybiwgOTlu
KSwgNDJuKTsKLSAgICAgICAgYXNzZXJ0LmVxKGUuaTY0X2xvYWQoMG4pLCA5OW4pOwotCi0gICAg
ICAgIC8vID09PSBtZW1vcnkuYXRvbWljLm5vdGlmeSA9PT0KLSAgICAgICAgY2xlYXIoKTsKLSAg
ICAgICAgYXNzZXJ0LmVxKGUudGVzdF9tZW1vcnlfYXRvbWljX25vdGlmeSgwbiwgMSksIDApOyAv
LyBubyB3YWl0ZXJzCi0KLSAgICAgICAgLy8gPT09IFRlc3Qgd2l0aCBub24temVybyBiYXNlIGFk
ZHJlc3MgPT09Ci0gICAgICAgIGNsZWFyKCk7Ci0gICAgICAgIGUuaTMyX3N0b3JlKDE2biwgMHhD
QUZFQkFCRSk7Ci0gICAgICAgIGFzc2VydC5lcShlLnRlc3RfaTMyX2F0b21pY19sb2FkKDE2biks
IDB4Q0FGRUJBQkUgfCAwKTsKLQotICAgICAgICBjbGVhcigpOwotICAgICAgICBlLnRlc3RfaTMy
X2F0b21pY19zdG9yZSgxNm4sIDB4REVBREJFRUYpOwotICAgICAgICBhc3NlcnQuZXEoZS5pMzJf
bG9hZCgxNm4pLCAweERFQURCRUVGIHwgMCk7Ci0KLSAgICAgICAgLy8gPT09IG1lbW9yeS5hdG9t
aWMud2FpdDMyID09PQotICAgICAgICBjbGVhcigpOwotICAgICAgICBlLmkzMl9zdG9yZSgwbiwg
NDIpOwotICAgICAgICAvLyBFeHBlY3RlZCB2YWx1ZSBkb2Vzbid0IG1hdGNoIC0+IHJldHVybnMg
MSAoIm5vdC1lcXVhbCIpCi0gICAgICAgIGFzc2VydC5lcShlLnRlc3RfbWVtb3J5X2F0b21pY193
YWl0MzIoMG4sIDAsIDBuKSwgMSk7Ci0gICAgICAgIC8vIEV4cGVjdGVkIHZhbHVlIG1hdGNoZXMs
IHRpbWVvdXQ9MCAtPiByZXR1cm5zIDIgKCJ0aW1lZC1vdXQiKQotICAgICAgICBhc3NlcnQuZXEo
ZS50ZXN0X21lbW9yeV9hdG9taWNfd2FpdDMyKDBuLCA0MiwgMG4pLCAyKTsKLQotICAgICAgICAv
LyA9PT0gbWVtb3J5LmF0b21pYy53YWl0NjQgPT09Ci0gICAgICAgIGNsZWFyKCk7Ci0gICAgICAg
IGUuaTY0X3N0b3JlKDBuLCA0Mm4pOwotICAgICAgICAvLyBFeHBlY3RlZCB2YWx1ZSBkb2Vzbid0
IG1hdGNoIC0+IHJldHVybnMgMQotICAgICAgICBhc3NlcnQuZXEoZS50ZXN0X21lbW9yeV9hdG9t
aWNfd2FpdDY0KDBuLCAwbiwgMG4pLCAxKTsKLSAgICAgICAgLy8gRXhwZWN0ZWQgdmFsdWUgbWF0
Y2hlcywgdGltZW91dD0wIC0+IHJldHVybnMgMgotICAgICAgICBhc3NlcnQuZXEoZS50ZXN0X21l
bW9yeV9hdG9taWNfd2FpdDY0KDBuLCA0Mm4sIDBuKSwgMik7Ci0KLSAgICAgICAgLy8gPT09IFN1
Yi13aWR0aCBhdG9taWMgUk1XIGFkZCA9PT0KLSAgICAgICAgY2xlYXIoKTsKLSAgICAgICAgZS5p
MzJfc3RvcmUoMG4sIDB4MTApOwotICAgICAgICBhc3NlcnQuZXEoZS50ZXN0X2kzMl9hdG9taWNf
cm13OF9hZGRfdSgwbiwgMSksIDB4MTApOwotICAgICAgICBhc3NlcnQuZXEoZS5pMzJfbG9hZCgw
biksIDB4MTEpOwotCi0gICAgICAgIGNsZWFyKCk7Ci0gICAgICAgIGUuaTMyX3N0b3JlKDBuLCAw
eDAyMDMpOwotICAgICAgICBhc3NlcnQuZXEoZS50ZXN0X2kzMl9hdG9taWNfcm13OF9hZGRfdSgw
biwgMSksIDB4MDMpOwotICAgICAgICBhc3NlcnQuZXEoZS5pMzJfbG9hZCgwbiksIDB4MDIwNCk7
Ci0KLSAgICAgICAgY2xlYXIoKTsKLSAgICAgICAgZS5pMzJfc3RvcmUoMG4sIDB4MTIzNCk7Ci0g
ICAgICAgIGFzc2VydC5lcShlLnRlc3RfaTMyX2F0b21pY19ybXcxNl9hZGRfdSgwbiwgMSksIDB4
MTIzNCk7Ci0gICAgICAgIGFzc2VydC5lcShlLmkzMl9sb2FkKDBuKSwgMHgxMjM1KTsKLQotICAg
ICAgICBjbGVhcigpOwotICAgICAgICBlLmk2NF9zdG9yZSgwbiwgMHg0Mm4pOwotICAgICAgICBh
c3NlcnQuZXEoZS50ZXN0X2k2NF9hdG9taWNfcm13OF9hZGRfdSgwbiwgMW4pLCAweDQybik7Ci0g
ICAgICAgIGFzc2VydC5lcShlLmk2NF9sb2FkKDBuKSwgMHg0M24pOwotCi0gICAgICAgIGNsZWFy
KCk7Ci0gICAgICAgIGUuaTY0X3N0b3JlKDBuLCAweDEyMzRuKTsKLSAgICAgICAgYXNzZXJ0LmVx
KGUudGVzdF9pNjRfYXRvbWljX3JtdzE2X2FkZF91KDBuLCAxbiksIDB4MTIzNG4pOwotICAgICAg
ICBhc3NlcnQuZXEoZS5pNjRfbG9hZCgwbiksIDB4MTIzNW4pOwotCi0gICAgICAgIGNsZWFyKCk7
Ci0gICAgICAgIGUuaTY0X3N0b3JlKDBuLCAweDEyMzQ1Njc4bik7Ci0gICAgICAgIGFzc2VydC5l
cShlLnRlc3RfaTY0X2F0b21pY19ybXczMl9hZGRfdSgwbiwgMW4pLCAweDEyMzQ1Njc4bik7Ci0g
ICAgICAgIGFzc2VydC5lcShlLmk2NF9sb2FkKDBuKSwgMHgxMjM0NTY3OW4pOwotCi0gICAgICAg
IC8vID09PSBPZmZzZXQ9MCB0ZXN0cyAoZXhlcmNpc2VzIGJvdW5kYXJ5PT0wIHBhdGggZm9yIDgt
Yml0IG9wcykgPT09Ci0gICAgICAgIGNsZWFyKCk7Ci0gICAgICAgIGUudGVzdF9pMzJfYXRvbWlj
X3N0b3JlOF9ub19vZmZzZXQoMG4sIDB4NDIpOwotICAgICAgICBhc3NlcnQuZXEoZS50ZXN0X2kz
Ml9hdG9taWNfbG9hZDhfdV9ub19vZmZzZXQoMG4pLCAweDQyKTsKLQotICAgICAgICBjbGVhcigp
OwotICAgICAgICBlLnRlc3RfaTMyX2F0b21pY19zdG9yZV9ub19vZmZzZXQoMG4sIDB4MTIzNDU2
NzgpOwotICAgICAgICBhc3NlcnQuZXEoZS50ZXN0X2kzMl9hdG9taWNfbG9hZF9ub19vZmZzZXQo
MG4pLCAweDEyMzQ1Njc4KTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vc3Ry
ZXNzL21lbW9yeTY0LWJ1bGstbWVtb3J5LmpzIGIvSlNUZXN0cy93YXNtL3N0cmVzcy9tZW1vcnk2
NC1idWxrLW1lbW9yeS5qcwppbmRleCA3YmNhOWVhODZiYzMuLmFkYmZjZDkyY2ZiMSAxMDA2NDQK
LS0tIGEvSlNUZXN0cy93YXNtL3N0cmVzcy9tZW1vcnk2NC1idWxrLW1lbW9yeS5qcworKysgYi9K
U1Rlc3RzL3dhc20vc3RyZXNzL21lbW9yeTY0LWJ1bGstbWVtb3J5LmpzCkBAIC0xLDUgKzEsNSBA
QAogLy9AIHNraXAgaWYgJGFkZHJlc3NCaXRzIDw9IDMyCi0vL0AgcnVuRGVmYXVsdFdhc20oIi1t
IiwgIi0tdXNlV2FzbU1lbW9yeTY0PTEiKQorLy9AIHJ1bkRlZmF1bHRXYXNtKCItbSIsICItLXVz
ZVdhc21NZW1vcnk2ND0xIiwgIi0tdXNlT01HSklUPTAiKQogaW1wb3J0IHsgaW5zdGFudGlhdGUg
fSBmcm9tICIuLi93YWJ0LXdyYXBwZXIuanMiOwogaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gIi4u
L2Fzc2VydC5qcyI7CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9zdHJlc3MvbWVtb3J5NjQt
b3ZlcmZsb3cuanMgYi9KU1Rlc3RzL3dhc20vc3RyZXNzL21lbW9yeTY0LW92ZXJmbG93LmpzCmlu
ZGV4IDAyYzdiNDYzYzIyZC4uYzVmYmNlYzZlM2E5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20v
c3RyZXNzL21lbW9yeTY0LW92ZXJmbG93LmpzCisrKyBiL0pTVGVzdHMvd2FzbS9zdHJlc3MvbWVt
b3J5NjQtb3ZlcmZsb3cuanMKQEAgLTkyLDI0NiArOTIsMyBAQCBmdW5jdGlvbiB0ZXN0T3ZlcmZs
b3coKSB7CiAKIGZvciAobGV0IGkgPSAwOyBpIDwgd2FzbVRlc3RMb29wQ291bnQ7IGkrKykKICAg
ICB0ZXN0T3ZlcmZsb3coKTsKLQotLy8gQXRvbWljIGluc3RydWN0aW9uIG92ZXJmbG93IHRlc3Rz
LgotLy8gRXZlcnkgYXRvbWljIGluc3RydWN0aW9uIHdpdGggYSBtZW1vcnkgb2Zmc2V0IG11c3Qg
dHJhcCBvbiBhZGRyZXNzIG92ZXJmbG93LgotCi1jb25zdCBrQXRvbWljUHJlZml4ID0gMHhGRTsK
LQotY29uc3Qga0V4cHJBdG9taWNOb3RpZnkgPSAweDAwOwotY29uc3Qga0V4cHJJMzJBdG9taWNX
YWl0ID0gMHgwMTsKLWNvbnN0IGtFeHBySTY0QXRvbWljV2FpdCA9IDB4MDI7Ci1jb25zdCBrRXhw
ckkzMkF0b21pY0xvYWQgPSAweDEwOwotY29uc3Qga0V4cHJJNjRBdG9taWNMb2FkID0gMHgxMTsK
LWNvbnN0IGtFeHBySTMyQXRvbWljTG9hZDhVID0gMHgxMjsKLWNvbnN0IGtFeHBySTMyQXRvbWlj
TG9hZDE2VSA9IDB4MTM7Ci1jb25zdCBrRXhwckk2NEF0b21pY0xvYWQ4VSA9IDB4MTQ7Ci1jb25z
dCBrRXhwckk2NEF0b21pY0xvYWQxNlUgPSAweDE1OwotY29uc3Qga0V4cHJJNjRBdG9taWNMb2Fk
MzJVID0gMHgxNjsKLWNvbnN0IGtFeHBySTMyQXRvbWljU3RvcmUgPSAweDE3OwotY29uc3Qga0V4
cHJJNjRBdG9taWNTdG9yZSA9IDB4MTg7Ci1jb25zdCBrRXhwckkzMkF0b21pY1N0b3JlOCA9IDB4
MTk7Ci1jb25zdCBrRXhwckkzMkF0b21pY1N0b3JlMTYgPSAweDFhOwotY29uc3Qga0V4cHJJNjRB
dG9taWNTdG9yZTggPSAweDFiOwotY29uc3Qga0V4cHJJNjRBdG9taWNTdG9yZTE2ID0gMHgxYzsK
LWNvbnN0IGtFeHBySTY0QXRvbWljU3RvcmUzMiA9IDB4MWQ7Ci1jb25zdCBrRXhwckkzMkF0b21p
Y1Jtd0FkZCA9IDB4MWU7Ci1jb25zdCBrRXhwckk2NEF0b21pY1Jtd0FkZCA9IDB4MWY7Ci1jb25z
dCBrRXhwckkzMkF0b21pY1JtdzhBZGRVID0gMHgyMDsKLWNvbnN0IGtFeHBySTMyQXRvbWljUm13
MTZBZGRVID0gMHgyMTsKLWNvbnN0IGtFeHBySTY0QXRvbWljUm13OEFkZFUgPSAweDIyOwotY29u
c3Qga0V4cHJJNjRBdG9taWNSbXcxNkFkZFUgPSAweDIzOwotY29uc3Qga0V4cHJJNjRBdG9taWNS
bXczMkFkZFUgPSAweDI0OwotY29uc3Qga0V4cHJJMzJBdG9taWNSbXdTdWIgPSAweDI1OwotY29u
c3Qga0V4cHJJNjRBdG9taWNSbXdTdWIgPSAweDI2OwotY29uc3Qga0V4cHJJMzJBdG9taWNSbXc4
U3ViVSA9IDB4Mjc7Ci1jb25zdCBrRXhwckkzMkF0b21pY1JtdzE2U3ViVSA9IDB4Mjg7Ci1jb25z
dCBrRXhwckk2NEF0b21pY1JtdzhTdWJVID0gMHgyOTsKLWNvbnN0IGtFeHBySTY0QXRvbWljUm13
MTZTdWJVID0gMHgyYTsKLWNvbnN0IGtFeHBySTY0QXRvbWljUm13MzJTdWJVID0gMHgyYjsKLWNv
bnN0IGtFeHBySTMyQXRvbWljUm13QW5kID0gMHgyYzsKLWNvbnN0IGtFeHBySTY0QXRvbWljUm13
QW5kID0gMHgyZDsKLWNvbnN0IGtFeHBySTMyQXRvbWljUm13OEFuZFUgPSAweDJlOwotY29uc3Qg
a0V4cHJJMzJBdG9taWNSbXcxNkFuZFUgPSAweDJmOwotY29uc3Qga0V4cHJJNjRBdG9taWNSbXc4
QW5kVSA9IDB4MzA7Ci1jb25zdCBrRXhwckk2NEF0b21pY1JtdzE2QW5kVSA9IDB4MzE7Ci1jb25z
dCBrRXhwckk2NEF0b21pY1JtdzMyQW5kVSA9IDB4MzI7Ci1jb25zdCBrRXhwckkzMkF0b21pY1Jt
d09yID0gMHgzMzsKLWNvbnN0IGtFeHBySTY0QXRvbWljUm13T3IgPSAweDM0OwotY29uc3Qga0V4
cHJJMzJBdG9taWNSbXc4T3JVID0gMHgzNTsKLWNvbnN0IGtFeHBySTMyQXRvbWljUm13MTZPclUg
PSAweDM2OwotY29uc3Qga0V4cHJJNjRBdG9taWNSbXc4T3JVID0gMHgzNzsKLWNvbnN0IGtFeHBy
STY0QXRvbWljUm13MTZPclUgPSAweDM4OwotY29uc3Qga0V4cHJJNjRBdG9taWNSbXczMk9yVSA9
IDB4Mzk7Ci1jb25zdCBrRXhwckkzMkF0b21pY1Jtd1hvciA9IDB4M2E7Ci1jb25zdCBrRXhwckk2
NEF0b21pY1Jtd1hvciA9IDB4M2I7Ci1jb25zdCBrRXhwckkzMkF0b21pY1JtdzhYb3JVID0gMHgz
YzsKLWNvbnN0IGtFeHBySTMyQXRvbWljUm13MTZYb3JVID0gMHgzZDsKLWNvbnN0IGtFeHBySTY0
QXRvbWljUm13OFhvclUgPSAweDNlOwotY29uc3Qga0V4cHJJNjRBdG9taWNSbXcxNlhvclUgPSAw
eDNmOwotY29uc3Qga0V4cHJJNjRBdG9taWNSbXczMlhvclUgPSAweDQwOwotY29uc3Qga0V4cHJJ
MzJBdG9taWNSbXdYY2hnID0gMHg0MTsKLWNvbnN0IGtFeHBySTY0QXRvbWljUm13WGNoZyA9IDB4
NDI7Ci1jb25zdCBrRXhwckkzMkF0b21pY1JtdzhYY2hnVSA9IDB4NDM7Ci1jb25zdCBrRXhwckkz
MkF0b21pY1JtdzE2WGNoZ1UgPSAweDQ0OwotY29uc3Qga0V4cHJJNjRBdG9taWNSbXc4WGNoZ1Ug
PSAweDQ1OwotY29uc3Qga0V4cHJJNjRBdG9taWNSbXcxNlhjaGdVID0gMHg0NjsKLWNvbnN0IGtF
eHBySTY0QXRvbWljUm13MzJYY2hnVSA9IDB4NDc7Ci1jb25zdCBrRXhwckkzMkF0b21pY1Jtd0Nt
cHhjaGcgPSAweDQ4OwotY29uc3Qga0V4cHJJNjRBdG9taWNSbXdDbXB4Y2hnID0gMHg0OTsKLWNv
bnN0IGtFeHBySTMyQXRvbWljUm13OENtcHhjaGdVID0gMHg0YTsKLWNvbnN0IGtFeHBySTMyQXRv
bWljUm13MTZDbXB4Y2hnVSA9IDB4NGI7Ci1jb25zdCBrRXhwckk2NEF0b21pY1JtdzhDbXB4Y2hn
VSA9IDB4NGM7Ci1jb25zdCBrRXhwckk2NEF0b21pY1JtdzE2Q21weGNoZ1UgPSAweDRkOwotY29u
c3Qga0V4cHJJNjRBdG9taWNSbXczMkNtcHhjaGdVID0gMHg0ZTsKLQotLy8gRWFjaCBlbnRyeTog
W25hbWUsIHN1Yi1vcGNvZGUsIG5hdHVyYWwgYWxpZ25tZW50IChsb2cyKSwgY2F0ZWdvcnksIHZh
bHVlIHdhc20gdHlwZV0KLS8vIENhdGVnb3JpZXM6ICJsb2FkIiwgInN0b3JlIiwgInJtdyIsICJj
bXB4Y2hnIiwgIm5vdGlmeSIKLWNvbnN0IGF0b21pY09wcyA9IFsKLSAgICAvLyBBdG9taWMgbG9h
ZHMKLSAgICBbImkzMl9hdG9taWNfbG9hZCIsICAgICBrRXhwckkzMkF0b21pY0xvYWQsICAgICAy
LCAibG9hZCIsIGtXYXNtSTMyXSwKLSAgICBbImk2NF9hdG9taWNfbG9hZCIsICAgICBrRXhwckk2
NEF0b21pY0xvYWQsICAgICAzLCAibG9hZCIsIGtXYXNtSTY0XSwKLSAgICBbImkzMl9hdG9taWNf
bG9hZDhfdSIsICBrRXhwckkzMkF0b21pY0xvYWQ4VSwgICAwLCAibG9hZCIsIGtXYXNtSTMyXSwK
LSAgICBbImkzMl9hdG9taWNfbG9hZDE2X3UiLCBrRXhwckkzMkF0b21pY0xvYWQxNlUsICAxLCAi
bG9hZCIsIGtXYXNtSTMyXSwKLSAgICBbImk2NF9hdG9taWNfbG9hZDhfdSIsICBrRXhwckk2NEF0
b21pY0xvYWQ4VSwgICAwLCAibG9hZCIsIGtXYXNtSTY0XSwKLSAgICBbImk2NF9hdG9taWNfbG9h
ZDE2X3UiLCBrRXhwckk2NEF0b21pY0xvYWQxNlUsICAxLCAibG9hZCIsIGtXYXNtSTY0XSwKLSAg
ICBbImk2NF9hdG9taWNfbG9hZDMyX3UiLCBrRXhwckk2NEF0b21pY0xvYWQzMlUsICAyLCAibG9h
ZCIsIGtXYXNtSTY0XSwKLQotICAgIC8vIEF0b21pYyBzdG9yZXMKLSAgICBbImkzMl9hdG9taWNf
c3RvcmUiLCAgICBrRXhwckkzMkF0b21pY1N0b3JlLCAgICAyLCAic3RvcmUiLCBrV2FzbUkzMl0s
Ci0gICAgWyJpNjRfYXRvbWljX3N0b3JlIiwgICAga0V4cHJJNjRBdG9taWNTdG9yZSwgICAgMywg
InN0b3JlIiwga1dhc21JNjRdLAotICAgIFsiaTMyX2F0b21pY19zdG9yZTgiLCAgIGtFeHBySTMy
QXRvbWljU3RvcmU4LCAgIDAsICJzdG9yZSIsIGtXYXNtSTMyXSwKLSAgICBbImkzMl9hdG9taWNf
c3RvcmUxNiIsICBrRXhwckkzMkF0b21pY1N0b3JlMTYsICAxLCAic3RvcmUiLCBrV2FzbUkzMl0s
Ci0gICAgWyJpNjRfYXRvbWljX3N0b3JlOCIsICAga0V4cHJJNjRBdG9taWNTdG9yZTgsICAgMCwg
InN0b3JlIiwga1dhc21JNjRdLAotICAgIFsiaTY0X2F0b21pY19zdG9yZTE2IiwgIGtFeHBySTY0
QXRvbWljU3RvcmUxNiwgIDEsICJzdG9yZSIsIGtXYXNtSTY0XSwKLSAgICBbImk2NF9hdG9taWNf
c3RvcmUzMiIsICBrRXhwckk2NEF0b21pY1N0b3JlMzIsICAyLCAic3RvcmUiLCBrV2FzbUk2NF0s
Ci0KLSAgICAvLyBBdG9taWMgUk1XIGFkZAotICAgIFsiaTMyX2F0b21pY19ybXdfYWRkIiwgICAg
ICBrRXhwckkzMkF0b21pY1Jtd0FkZCwgICAgIDIsICJybXciLCBrV2FzbUkzMl0sCi0gICAgWyJp
NjRfYXRvbWljX3Jtd19hZGQiLCAgICAgIGtFeHBySTY0QXRvbWljUm13QWRkLCAgICAgMywgInJt
dyIsIGtXYXNtSTY0XSwKLSAgICBbImkzMl9hdG9taWNfcm13OF9hZGRfdSIsICAga0V4cHJJMzJB
dG9taWNSbXc4QWRkVSwgICAwLCAicm13Iiwga1dhc21JMzJdLAotICAgIFsiaTMyX2F0b21pY19y
bXcxNl9hZGRfdSIsICBrRXhwckkzMkF0b21pY1JtdzE2QWRkVSwgIDEsICJybXciLCBrV2FzbUkz
Ml0sCi0gICAgWyJpNjRfYXRvbWljX3JtdzhfYWRkX3UiLCAgIGtFeHBySTY0QXRvbWljUm13OEFk
ZFUsICAgMCwgInJtdyIsIGtXYXNtSTY0XSwKLSAgICBbImk2NF9hdG9taWNfcm13MTZfYWRkX3Ui
LCAga0V4cHJJNjRBdG9taWNSbXcxNkFkZFUsICAxLCAicm13Iiwga1dhc21JNjRdLAotICAgIFsi
aTY0X2F0b21pY19ybXczMl9hZGRfdSIsICBrRXhwckk2NEF0b21pY1JtdzMyQWRkVSwgIDIsICJy
bXciLCBrV2FzbUk2NF0sCi0KLSAgICAvLyBBdG9taWMgUk1XIHN1YgotICAgIFsiaTMyX2F0b21p
Y19ybXdfc3ViIiwgICAgICBrRXhwckkzMkF0b21pY1Jtd1N1YiwgICAgIDIsICJybXciLCBrV2Fz
bUkzMl0sCi0gICAgWyJpNjRfYXRvbWljX3Jtd19zdWIiLCAgICAgIGtFeHBySTY0QXRvbWljUm13
U3ViLCAgICAgMywgInJtdyIsIGtXYXNtSTY0XSwKLSAgICBbImkzMl9hdG9taWNfcm13OF9zdWJf
dSIsICAga0V4cHJJMzJBdG9taWNSbXc4U3ViVSwgICAwLCAicm13Iiwga1dhc21JMzJdLAotICAg
IFsiaTMyX2F0b21pY19ybXcxNl9zdWJfdSIsICBrRXhwckkzMkF0b21pY1JtdzE2U3ViVSwgIDEs
ICJybXciLCBrV2FzbUkzMl0sCi0gICAgWyJpNjRfYXRvbWljX3Jtdzhfc3ViX3UiLCAgIGtFeHBy
STY0QXRvbWljUm13OFN1YlUsICAgMCwgInJtdyIsIGtXYXNtSTY0XSwKLSAgICBbImk2NF9hdG9t
aWNfcm13MTZfc3ViX3UiLCAga0V4cHJJNjRBdG9taWNSbXcxNlN1YlUsICAxLCAicm13Iiwga1dh
c21JNjRdLAotICAgIFsiaTY0X2F0b21pY19ybXczMl9zdWJfdSIsICBrRXhwckk2NEF0b21pY1Jt
dzMyU3ViVSwgIDIsICJybXciLCBrV2FzbUk2NF0sCi0KLSAgICAvLyBBdG9taWMgUk1XIGFuZAot
ICAgIFsiaTMyX2F0b21pY19ybXdfYW5kIiwgICAgICBrRXhwckkzMkF0b21pY1Jtd0FuZCwgICAg
IDIsICJybXciLCBrV2FzbUkzMl0sCi0gICAgWyJpNjRfYXRvbWljX3Jtd19hbmQiLCAgICAgIGtF
eHBySTY0QXRvbWljUm13QW5kLCAgICAgMywgInJtdyIsIGtXYXNtSTY0XSwKLSAgICBbImkzMl9h
dG9taWNfcm13OF9hbmRfdSIsICAga0V4cHJJMzJBdG9taWNSbXc4QW5kVSwgICAwLCAicm13Iiwg
a1dhc21JMzJdLAotICAgIFsiaTMyX2F0b21pY19ybXcxNl9hbmRfdSIsICBrRXhwckkzMkF0b21p
Y1JtdzE2QW5kVSwgIDEsICJybXciLCBrV2FzbUkzMl0sCi0gICAgWyJpNjRfYXRvbWljX3Jtdzhf
YW5kX3UiLCAgIGtFeHBySTY0QXRvbWljUm13OEFuZFUsICAgMCwgInJtdyIsIGtXYXNtSTY0XSwK
LSAgICBbImk2NF9hdG9taWNfcm13MTZfYW5kX3UiLCAga0V4cHJJNjRBdG9taWNSbXcxNkFuZFUs
ICAxLCAicm13Iiwga1dhc21JNjRdLAotICAgIFsiaTY0X2F0b21pY19ybXczMl9hbmRfdSIsICBr
RXhwckk2NEF0b21pY1JtdzMyQW5kVSwgIDIsICJybXciLCBrV2FzbUk2NF0sCi0KLSAgICAvLyBB
dG9taWMgUk1XIG9yCi0gICAgWyJpMzJfYXRvbWljX3Jtd19vciIsICAgICAgIGtFeHBySTMyQXRv
bWljUm13T3IsICAgICAgMiwgInJtdyIsIGtXYXNtSTMyXSwKLSAgICBbImk2NF9hdG9taWNfcm13
X29yIiwgICAgICAga0V4cHJJNjRBdG9taWNSbXdPciwgICAgICAzLCAicm13Iiwga1dhc21JNjRd
LAotICAgIFsiaTMyX2F0b21pY19ybXc4X29yX3UiLCAgICBrRXhwckkzMkF0b21pY1JtdzhPclUs
ICAgIDAsICJybXciLCBrV2FzbUkzMl0sCi0gICAgWyJpMzJfYXRvbWljX3JtdzE2X29yX3UiLCAg
IGtFeHBySTMyQXRvbWljUm13MTZPclUsICAgMSwgInJtdyIsIGtXYXNtSTMyXSwKLSAgICBbImk2
NF9hdG9taWNfcm13OF9vcl91IiwgICAga0V4cHJJNjRBdG9taWNSbXc4T3JVLCAgICAwLCAicm13
Iiwga1dhc21JNjRdLAotICAgIFsiaTY0X2F0b21pY19ybXcxNl9vcl91IiwgICBrRXhwckk2NEF0
b21pY1JtdzE2T3JVLCAgIDEsICJybXciLCBrV2FzbUk2NF0sCi0gICAgWyJpNjRfYXRvbWljX3Jt
dzMyX29yX3UiLCAgIGtFeHBySTY0QXRvbWljUm13MzJPclUsICAgMiwgInJtdyIsIGtXYXNtSTY0
XSwKLQotICAgIC8vIEF0b21pYyBSTVcgeG9yCi0gICAgWyJpMzJfYXRvbWljX3Jtd194b3IiLCAg
ICAgIGtFeHBySTMyQXRvbWljUm13WG9yLCAgICAgMiwgInJtdyIsIGtXYXNtSTMyXSwKLSAgICBb
Imk2NF9hdG9taWNfcm13X3hvciIsICAgICAga0V4cHJJNjRBdG9taWNSbXdYb3IsICAgICAzLCAi
cm13Iiwga1dhc21JNjRdLAotICAgIFsiaTMyX2F0b21pY19ybXc4X3hvcl91IiwgICBrRXhwckkz
MkF0b21pY1JtdzhYb3JVLCAgIDAsICJybXciLCBrV2FzbUkzMl0sCi0gICAgWyJpMzJfYXRvbWlj
X3JtdzE2X3hvcl91IiwgIGtFeHBySTMyQXRvbWljUm13MTZYb3JVLCAgMSwgInJtdyIsIGtXYXNt
STMyXSwKLSAgICBbImk2NF9hdG9taWNfcm13OF94b3JfdSIsICAga0V4cHJJNjRBdG9taWNSbXc4
WG9yVSwgICAwLCAicm13Iiwga1dhc21JNjRdLAotICAgIFsiaTY0X2F0b21pY19ybXcxNl94b3Jf
dSIsICBrRXhwckk2NEF0b21pY1JtdzE2WG9yVSwgIDEsICJybXciLCBrV2FzbUk2NF0sCi0gICAg
WyJpNjRfYXRvbWljX3JtdzMyX3hvcl91IiwgIGtFeHBySTY0QXRvbWljUm13MzJYb3JVLCAgMiwg
InJtdyIsIGtXYXNtSTY0XSwKLQotICAgIC8vIEF0b21pYyBSTVcgeGNoZwotICAgIFsiaTMyX2F0
b21pY19ybXdfeGNoZyIsICAgICBrRXhwckkzMkF0b21pY1Jtd1hjaGcsICAgIDIsICJybXciLCBr
V2FzbUkzMl0sCi0gICAgWyJpNjRfYXRvbWljX3Jtd194Y2hnIiwgICAgIGtFeHBySTY0QXRvbWlj
Um13WGNoZywgICAgMywgInJtdyIsIGtXYXNtSTY0XSwKLSAgICBbImkzMl9hdG9taWNfcm13OF94
Y2hnX3UiLCAga0V4cHJJMzJBdG9taWNSbXc4WGNoZ1UsICAwLCAicm13Iiwga1dhc21JMzJdLAot
ICAgIFsiaTMyX2F0b21pY19ybXcxNl94Y2hnX3UiLCBrRXhwckkzMkF0b21pY1JtdzE2WGNoZ1Us
IDEsICJybXciLCBrV2FzbUkzMl0sCi0gICAgWyJpNjRfYXRvbWljX3JtdzhfeGNoZ191IiwgIGtF
eHBySTY0QXRvbWljUm13OFhjaGdVLCAgMCwgInJtdyIsIGtXYXNtSTY0XSwKLSAgICBbImk2NF9h
dG9taWNfcm13MTZfeGNoZ191Iiwga0V4cHJJNjRBdG9taWNSbXcxNlhjaGdVLCAxLCAicm13Iiwg
a1dhc21JNjRdLAotICAgIFsiaTY0X2F0b21pY19ybXczMl94Y2hnX3UiLCBrRXhwckk2NEF0b21p
Y1JtdzMyWGNoZ1UsIDIsICJybXciLCBrV2FzbUk2NF0sCi0KLSAgICAvLyBBdG9taWMgUk1XIGNt
cHhjaGcKLSAgICBbImkzMl9hdG9taWNfcm13X2NtcHhjaGciLCAgICAgIGtFeHBySTMyQXRvbWlj
Um13Q21weGNoZywgICAgIDIsICJjbXB4Y2hnIiwga1dhc21JMzJdLAotICAgIFsiaTY0X2F0b21p
Y19ybXdfY21weGNoZyIsICAgICAga0V4cHJJNjRBdG9taWNSbXdDbXB4Y2hnLCAgICAgMywgImNt
cHhjaGciLCBrV2FzbUk2NF0sCi0gICAgWyJpMzJfYXRvbWljX3JtdzhfY21weGNoZ191IiwgICBr
RXhwckkzMkF0b21pY1JtdzhDbXB4Y2hnVSwgICAwLCAiY21weGNoZyIsIGtXYXNtSTMyXSwKLSAg
ICBbImkzMl9hdG9taWNfcm13MTZfY21weGNoZ191IiwgIGtFeHBySTMyQXRvbWljUm13MTZDbXB4
Y2hnVSwgIDEsICJjbXB4Y2hnIiwga1dhc21JMzJdLAotICAgIFsiaTY0X2F0b21pY19ybXc4X2Nt
cHhjaGdfdSIsICAga0V4cHJJNjRBdG9taWNSbXc4Q21weGNoZ1UsICAgMCwgImNtcHhjaGciLCBr
V2FzbUk2NF0sCi0gICAgWyJpNjRfYXRvbWljX3JtdzE2X2NtcHhjaGdfdSIsICBrRXhwckk2NEF0
b21pY1JtdzE2Q21weGNoZ1UsICAxLCAiY21weGNoZyIsIGtXYXNtSTY0XSwKLSAgICBbImk2NF9h
dG9taWNfcm13MzJfY21weGNoZ191IiwgIGtFeHBySTY0QXRvbWljUm13MzJDbXB4Y2hnVSwgIDIs
ICJjbXB4Y2hnIiwga1dhc21JNjRdLAotCi0gICAgLy8gbWVtb3J5LmF0b21pYy5ub3RpZnkKLSAg
ICBbIm1lbW9yeV9hdG9taWNfbm90aWZ5Iiwga0V4cHJBdG9taWNOb3RpZnksIDIsICJub3RpZnki
LCBrV2FzbUkzMl0sCi0KLSAgICAvLyBtZW1vcnkuYXRvbWljLndhaXQzMi93YWl0NjQKLSAgICBb
Im1lbW9yeV9hdG9taWNfd2FpdDMyIiwga0V4cHJJMzJBdG9taWNXYWl0LCAyLCAid2FpdDMyIiwg
a1dhc21JMzJdLAotICAgIFsibWVtb3J5X2F0b21pY193YWl0NjQiLCBrRXhwckk2NEF0b21pY1dh
aXQsIDMsICJ3YWl0NjQiLCBrV2FzbUk2NF0sCi1dOwotCi1mdW5jdGlvbiBtYWtlQXRvbWljQm9k
eShjYXQsIHZ0eXBlLCBvcGNvZGUsIGFsaWduLCBhZGRyQnl0ZXMsIG9mZnNldEJ5dGVzKSB7Ci0g
ICAgY29uc3QgYm9keSA9IFsuLi5hZGRyQnl0ZXNdOwotICAgIGNvbnN0IHplcm9Db25zdCA9IHZ0
eXBlID09PSBrV2FzbUk2NCA/IFtrRXhwckk2NENvbnN0LCAwXSA6IFtrRXhwckkzMkNvbnN0LCAw
XTsKLQotICAgIHN3aXRjaCAoY2F0KSB7Ci0gICAgY2FzZSAic3RvcmUiOgotICAgIGNhc2UgInJt
dyI6Ci0gICAgICAgIGJvZHkucHVzaCguLi56ZXJvQ29uc3QpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlICJjbXB4Y2hnIjoKLSAgICAgICAgYm9keS5wdXNoKC4uLnplcm9Db25zdCwgLi4uemVy
b0NvbnN0KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAibm90aWZ5IjoKLSAgICAgICAgYm9k
eS5wdXNoKGtFeHBySTMyQ29uc3QsIDApOwotICAgICAgICBicmVhazsKLSAgICBjYXNlICJ3YWl0
MzIiOgotICAgICAgICBib2R5LnB1c2goa0V4cHJJMzJDb25zdCwgMCwga0V4cHJJNjRDb25zdCwg
MCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgIndhaXQ2NCI6Ci0gICAgICAgIGJvZHkucHVz
aChrRXhwckk2NENvbnN0LCAwLCBrRXhwckk2NENvbnN0LCAwKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgfQotCi0gICAgYm9keS5wdXNoKGtBdG9taWNQcmVmaXgsIG9wY29kZSwgYWxpZ24sIC4uLm9m
ZnNldEJ5dGVzKTsKLSAgICByZXR1cm4gYm9keTsKLX0KLQotZnVuY3Rpb24gcmVzdWx0VHlwZUZv
ckNhdGVnb3J5KGNhdCwgdnR5cGUpIHsKLSAgICBpZiAoY2F0ID09PSAic3RvcmUiKSByZXR1cm4g
bnVsbDsKLSAgICBpZiAoY2F0ID09PSAibm90aWZ5IiB8fCBjYXQgPT09ICJ3YWl0MzIiIHx8IGNh
dCA9PT0gIndhaXQ2NCIpIHJldHVybiBrV2FzbUkzMjsKLSAgICByZXR1cm4gdnR5cGU7Ci19Ci0K
LWNvbnN0IGF0b21pY0J1aWxkZXIgPSBuZXcgV2FzbU1vZHVsZUJ1aWxkZXIoKTsKLWF0b21pY0J1
aWxkZXIuYWRkTWVtb3J5NjQoMSk7Ci0KLWZvciAoY29uc3QgW25hbWUsIG9wY29kZSwgYWxpZ24s
IGNhdCwgdnR5cGVdIG9mIGF0b21pY09wcykgewotICAgIGNvbnN0IHJ0eXBlID0gcmVzdWx0VHlw
ZUZvckNhdGVnb3J5KGNhdCwgdnR5cGUpOwotICAgIGNvbnN0IHJ1bnRpbWVTaWcgPSBydHlwZSAh
PT0gbnVsbCA/IG1ha2VTaWcoW2tXYXNtSTY0XSwgW3J0eXBlXSkgOiBtYWtlU2lnKFtrV2FzbUk2
NF0sIFtdKTsKLSAgICBjb25zdCBzdGF0aWNTaWcgPSBydHlwZSAhPT0gbnVsbCA/IG1ha2VTaWco
W10sIFtydHlwZV0pIDogbWFrZVNpZyhbXSwgW10pOwotCi0gICAgYXRvbWljQnVpbGRlci5hZGRG
dW5jdGlvbigidGVzdF8iICsgbmFtZSwgcnVudGltZVNpZykKLSAgICAgICAgLmFkZEJvZHkobWFr
ZUF0b21pY0JvZHkoY2F0LCB2dHlwZSwgb3Bjb2RlLCBhbGlnbiwgW2tFeHByR2V0TG9jYWwsIDBd
LCBbMV0pKQotICAgICAgICAuZXhwb3J0QXMoInRlc3RfIiArIG5hbWUpOwotCi0gICAgYXRvbWlj
QnVpbGRlci5hZGRGdW5jdGlvbigiY29uc3RfIiArIG5hbWUsIHN0YXRpY1NpZykKLSAgICAgICAg
LmFkZEJvZHkobWFrZUF0b21pY0JvZHkoY2F0LCB2dHlwZSwgb3Bjb2RlLCBhbGlnbiwgW2tFeHBy
STY0Q29uc3QsIDB4N0ZdLCBbMV0pKQotICAgICAgICAuZXhwb3J0QXMoImNvbnN0XyIgKyBuYW1l
KTsKLQotICAgIGF0b21pY0J1aWxkZXIuYWRkRnVuY3Rpb24oIm9mZnNldF8iICsgbmFtZSwgc3Rh
dGljU2lnKQotICAgICAgICAuYWRkQm9keShtYWtlQXRvbWljQm9keShjYXQsIHZ0eXBlLCBvcGNv
ZGUsIGFsaWduLCBba0V4cHJJNjRDb25zdCwgMF0sIGtVNjRNYXhMRUIxMjgpKQotICAgICAgICAu
ZXhwb3J0QXMoIm9mZnNldF8iICsgbmFtZSk7Ci19Ci0KLWNvbnN0IGF0b21pY0V4cG9ydHMgPSBh
dG9taWNCdWlsZGVyLmluc3RhbnRpYXRlKCkuZXhwb3J0czsKLQotZnVuY3Rpb24gdGVzdEF0b21p
Y092ZXJmbG93KCkgewotICAgIGZvciAoY29uc3QgW25hbWVdIG9mIGF0b21pY09wcykgewotICAg
ICAgICBhc3NlcnQudGhyb3dzKCgpID0+IGF0b21pY0V4cG9ydHNbInRlc3RfIiArIG5hbWVdKDB4
ZmZmZmZmZmZmZmZmZmZmZm4pLAotICAgICAgICAgICAgV2ViQXNzZW1ibHkuUnVudGltZUVycm9y
LAotICAgICAgICAgICAgIk91dCBvZiBib3VuZHMgbWVtb3J5IGFjY2VzcyIpOwotCi0gICAgICAg
IGFzc2VydC50aHJvd3MoKCkgPT4gYXRvbWljRXhwb3J0c1sidGVzdF8iICsgbmFtZV0oMHhmZmZm
ZmZmZmZmZmZmZmZlbiksCi0gICAgICAgICAgICBXZWJBc3NlbWJseS5SdW50aW1lRXJyb3IsCi0g
ICAgICAgICAgICAiT3V0IG9mIGJvdW5kcyBtZW1vcnkgYWNjZXNzIik7Ci0KLSAgICAgICAgYXNz
ZXJ0LnRocm93cygoKSA9PiBhdG9taWNFeHBvcnRzWyJjb25zdF8iICsgbmFtZV0oKSwKLSAgICAg
ICAgICAgIFdlYkFzc2VtYmx5LlJ1bnRpbWVFcnJvciwKLSAgICAgICAgICAgICJPdXQgb2YgYm91
bmRzIG1lbW9yeSBhY2Nlc3MiKTsKLQotICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IGF0b21p
Y0V4cG9ydHNbIm9mZnNldF8iICsgbmFtZV0oKSwKLSAgICAgICAgICAgIFdlYkFzc2VtYmx5LlJ1
bnRpbWVFcnJvciwKLSAgICAgICAgICAgICJPdXQgb2YgYm91bmRzIG1lbW9yeSBhY2Nlc3MiKTsK
LSAgICB9Ci19Ci0KLWZvciAobGV0IGkgPSAwOyBpIDwgd2FzbVRlc3RMb29wQ291bnQ7IGkrKykK
LSAgICB0ZXN0QXRvbWljT3ZlcmZsb3coKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>