<?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>215050</bug_id>
          
          <creation_ts>2020-07-31 21:28:52 -0700</creation_ts>
          <short_desc>Special HID mapping for the Logitech F310/F710 controllers</short_desc>
          <delta_ts>2020-08-01 19:54:17 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1677079</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-31 21:28:52 -0700</bug_when>
    <thetext>Special HID mapping for the Logitech F310/F710 controllers

(They have the same physical layout and HID mapping for their input elements)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677083</commentid>
    <comment_count>1</comment_count>
      <attachid>405768</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-31 22:44:51 -0700</bug_when>
    <thetext>Created attachment 405768
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677180</commentid>
    <comment_count>2</comment_count>
      <attachid>405800</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-08-01 17:25:28 -0700</bug_when>
    <thetext>Created attachment 405800
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677190</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-01 19:53:30 -0700</bug_when>
    <thetext>Committed r265183: &lt;https://trac.webkit.org/changeset/265183&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 405800.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677191</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-01 19:54:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/66434665&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405768</attachid>
            <date>2020-07-31 22:44:51 -0700</date>
            <delta_ts>2020-08-01 17:25:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215050-20200731224450.patch</filename>
            <type>text/plain</type>
            <size>47623</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDk1ZWE5MDk0MTJjOGQz
YTFkNDRiYzdhZjBmMDlmZmRjZjQzNzQyYS4uMjZmYjVmMzM3NWEzNzE1MWYzYjJiNTRlNWI0Yzg4
NjMxMDZkNjA0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTA3LTMxICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBTcGVjaWFsIEhJRCBtYXBw
aW5nIGZvciB0aGUgTG9naXRlY2ggRjMxMC9GNzEwIGNvbnRyb2xsZXJzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1MDUwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBBUEkgdGVzdC4K
KworICAgICAgICBUaGVzZSB0d28gY29udHJvbGxlcnMgbWF0Y2ggdGhlIHN0YW5kYXJkIG1hcHBp
bmcgcGVyZmVjdGx5LiBFYXN5IHRvIHN1cHBvcnQuCisgICAgICAgIAorICAgICAgICAqIFNvdXJj
ZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL0tub3duR2FtZXBhZHMuaDoK
KyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vZ2FtZXBhZC9tYWMvR2FtZXBhZENvbnN0YW50
c01hYy5oOgorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1l
cGFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhJREdhbWVwYWQ6OmNyZWF0ZSk6CisgICAgICAg
IAorICAgICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhJREdhbWVwYWRFbGVtZW50OjpISURHYW1lcGFkRWxlbWVudCk6
CisgICAgICAgICogcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZEVsZW1lbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhJREdhbWVwYWRFbGVtZW50Ojppc0F4aXMgY29uc3QpOgorICAgICAg
ICAKKyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9Mb2dpdGVjaEdhbWVwYWQuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxvZ2l0ZWNoR2FtZXBhZEhhdHN3aXRjaDo6Z2FtZXBh
ZFZhbHVlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpMb2dpdGVjaEdhbWVwYWQ6OkxvZ2l0
ZWNoR2FtZXBhZCk6CisgICAgICAgICogcGxhdGZvcm0vZ2FtZXBhZC9tYWMvTG9naXRlY2hHYW1l
cGFkLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvS25vd25H
YW1lcGFkcy5oLgorCiAyMDIwLTA3LTMxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBMb2cgYSB3YXJuaW5nIHRvIHRoZSBkZXYgY29uc29sZSB3aGVuIGdhbWVw
YWRzIGFyZSBhY2Nlc3NlZCBmcm9tIGFuIGluc2VjdXJlIGNvbnRleHQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dAppbmRleCBkZThlZjYyOWI0MzRhMDllNzg5NTU0YTI4MmI2NTIyNTNlOGYzN2ZmLi4z
YTJiY2FiN2EzNGZlOTAyOGE3ODYzMTY3MWJiMjBiNjc0MzFiNzY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQKQEAgLTI2Miw2ICsyNjIsNyBAQCBwbGF0Zm9ybS9nYW1lcGFkL21hYy9HZW5lcmlj
SElER2FtZXBhZC5jcHAKIHBsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQuY3BwCiBwbGF0
Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkRWxlbWVudC5jcHAKIHBsYXRmb3JtL2dhbWVwYWQv
bWFjL0hJREdhbWVwYWRQcm92aWRlci5tbQorcGxhdGZvcm0vZ2FtZXBhZC9tYWMvTG9naXRlY2hH
YW1lcGFkLmNwcAogcGxhdGZvcm0vZ2FtZXBhZC9tYWMvTXVsdGlHYW1lcGFkUHJvdmlkZXIubW0K
IHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuY3BwCiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbSBAbm8t
dW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBhNDFiNTM0ZGM3NGNjMmUxOGRiMGMxOWQzYjIwYzNjMjhiZGU5ZjJjLi4zNDM1
MTVjOGM0OGRkM2Y0NTZhZmNiNGNhM2IyMDljYTVjNzIyZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDA1LDYgKzE0MDUs
NyBAQAogCQk1MTBBOTFGNjI0RDMyRERDMDBCRkQ4OUMgLyogRHVhbHNob2NrM0hJREdhbWVwYWQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEE5MUY0
MjREMzI0RkYwMEJGRDg5QyAvKiBEdWFsc2hvY2szSElER2FtZXBhZC5oICovOyB9OwogCQk1MTBB
OTFGRDI0RDNDMTYyMDBCRkQ4OUMgLyogR2FtZXBhZENvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3MTVGRTkyNENEMDVERDAwMkM5N0U2
IC8qIEdhbWVwYWRDb25zdGFudHMuaCAqLzsgfTsKIAkJNTEwQTkxRkUyNEQzQzE2NzAwQkZEODlD
IC8qIEdhbWVwYWRDb25zdGFudHNNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMEE5MUZCMjREM0MwRkQwMEJGRDg5QyAvKiBHYW1lcGFkQ29uc3Rh
bnRzTWFjLmggKi87IH07CisJCTUxMEE5MjA4MjRENEY0OTkwMEJGRDg5QyAvKiBMb2dpdGVjaEdh
bWVwYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MEE5MjA1MjRENEYwN0EwMEJGRDg5QyAvKiBMb2dpdGVjaEdhbWVwYWQuaCAqLzsgfTsKIAkJNTEw
RDRBMzQxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUVycm9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEyRTEwMzE2NUVFMDA0OUVB
NTQgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk1MTBENEEzNzEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3Ry
ZWFtSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTBENEEzMTEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEwRDRBMzgxMDMx
NjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMzIxMDMxNjVFRTAwNDlFQTU0
IC8qIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04MjM1LDYgKzgyMzYsOCBAQAogCQk1MTBBOTFGNDI0
RDMyNEZGMDBCRkQ4OUMgLyogRHVhbHNob2NrM0hJREdhbWVwYWQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRHVhbHNob2NrM0hJREdhbWVwYWQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTEwQTkxRjUyNEQzMjUwMDAwQkZEODlDIC8qIER1YWxzaG9jazNISURH
YW1lcGFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IER1YWxzaG9j
azNISURHYW1lcGFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwQTkxRkIy
NEQzQzBGRDAwQkZEODlDIC8qIEdhbWVwYWRDb25zdGFudHNNYWMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gR2FtZXBhZENvbnN0YW50c01hYy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1MTBBOTIwNTI0RDRGMDdBMDBCRkQ4OUMgLyogTG9naXRlY2hHYW1lcGFk
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvZ2l0ZWNoR2FtZXBhZC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTBBOTIwNzI0RDRGMDdBMDBCRkQ4OUMgLyog
TG9naXRlY2hHYW1lcGFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IExvZ2l0ZWNoR2FtZXBhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMEQ0
QTJFMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTb2NrZXRTdHJlYW1FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MTBENEEzMDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFu
ZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvY2tldFN0cmVh
bUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMEQ0QTMxMTAzMTY1
RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xOTY5Niw2ICsxOTY5OSw4IEBACiAJCQkJNTEwQTkxRDYyNENFOEVERTAwQkZEODlD
IC8qIEhJREdhbWVwYWRFbGVtZW50LmggKi8sCiAJCQkJNTE1QkUxOUExRDU0RjZCRDAwREQ3QzY4
IC8qIEhJREdhbWVwYWRQcm92aWRlci5oICovLAogCQkJCTUxNUJFMTk5MUQ1NEY2QkQwMEREN0M2
OCAvKiBISURHYW1lcGFkUHJvdmlkZXIubW0gKi8sCisJCQkJNTEwQTkyMDcyNEQ0RjA3QTAwQkZE
ODlDIC8qIExvZ2l0ZWNoR2FtZXBhZC5jcHAgKi8sCisJCQkJNTEwQTkyMDUyNEQ0RjA3QTAwQkZE
ODlDIC8qIExvZ2l0ZWNoR2FtZXBhZC5oICovLAogCQkJCTUxN0UwM0Y0MjRCNkI5NjMwMDU0ODk1
QSAvKiBNdWx0aUdhbWVwYWRQcm92aWRlci5oICovLAogCQkJCTUxN0UwM0Y1MjRCNkI5NjQwMDU0
ODk1QSAvKiBNdWx0aUdhbWVwYWRQcm92aWRlci5tbSAqLywKIAkJCSk7CkBAIC0zMjQwNyw2ICsz
MjQxMiw3IEBACiAJCQkJQTgyMzlFMDEwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTlCQTI3M0Y0MTcyMjA2QkIwMDk3Q0U0NyAvKiBMb2dpY2FsU2VsZWN0
aW9uT2Zmc2V0Q2FjaGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRDRDdGMzFENDdFNjU1MDA5
RjA4QkMgLyogTG9nSW5pdGlhbGl6YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTUxMEE5MjA4
MjRENEY0OTkwMEJGRDg5QyAvKiBMb2dpdGVjaEdhbWVwYWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzQTgwNjE3MUUwM0I1MUMwMDhBMUYyNiAvKiBMb25nUmFuZ2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQ2RUZBRjEyMUU1RkI5RjEwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0FFNkM5M0MxQkUwQzYwMTAwRTE5RTAzIC8qIE1haW5UaHJlYWRT
aGFyZWRUaW1lci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9nYW1lcGFkL0tub3duR2FtZXBhZHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dhbWVwYWQvS25vd25HYW1lcGFkcy5oCmluZGV4IDZhNDFkNmM3OTBlOGFlZTg0NDg1OTVkMjg0
MmQ3YjM5NTYxNDUzYWMuLmVkMjhlZTEyYjU5NjUyZGNhZjA0M2RjMGQxYjFiMzZhMGMzNzA0NGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvS25vd25HYW1lcGFk
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvS25vd25HYW1lcGFkcy5o
CkBAIC0zMCwyMCArMzAsMjIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogZW51bSBLbm93bkdh
bWVwYWQgeworICAgIER1YWxzaG9jazMgPSAweDA1NGMwMjY4LAorICAgIER1YWxzaG9jazRfMSA9
IDB4MDU0YzA1YzQsCisgICAgRHVhbHNob2NrNF8yID0gMHgwNTRjMDljYywKKyAgICBHYW1lc2ly
TTIgPSAweDBlYzIwNDc1LAorICAgIEhvcmlwYWRVbHRpbWF0ZSA9IDB4MGYwZDAwOTAsCisgICAg
TG9naXRlY2hGMzEwID0gMHgwNDZkYzIxNiwKKyAgICBMb2dpdGVjaEY3MTAgPSAweDA0NmRjMjE5
LAogICAgIE5pbWJ1czEgPSAweDAxMTExNDIwLAogICAgIE5pbWJ1czIgPSAweDEwMzgxNDIwLAog
ICAgIFN0cmF0dXNYTDEgPSAweDAxMTExNDE4LAogICAgIFN0cmF0dXNYTDIgPSAweDEwMzgxNDE4
LAogICAgIFN0cmF0dXNYTDMgPSAweDAxMTExNDE5LAogICAgIFN0cmF0dXNYTDQgPSAweDEwMzgx
NDE5LAotICAgIEhvcmlwYWRVbHRpbWF0ZSA9IDB4MGYwZDAwOTAsCi0gICAgR2FtZXNpck0yID0g
MHgwZWMyMDQ3NSwKICAgICBYYm94T25lMSA9IDB4MDQ1ZTAyZTAsCiAgICAgWGJveE9uZTIgPSAw
eDA0NWUwMmVhLAogICAgIFhib3hPbmUzID0gMHgwNDVlMDJmZCwKLSAgICBEdWFsc2hvY2szID0g
MHgwNTRjMDI2OCwKLSAgICBEdWFsc2hvY2s0XzEgPSAweDA1NGMwNWM0LAotICAgIER1YWxzaG9j
azRfMiA9IDB4MDU0YzA5Y2MsCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9HYW1lcGFkQ29uc3RhbnRz
TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9HYW1lcGFkQ29uc3Rh
bnRzTWFjLmgKaW5kZXggOTYzZTc5Y2JlMTdmZmM1OTE0OWQ4Y2RmN2ViMGZjN2NjMGVmYzM4Ny4u
OGFmM2M1NDI3MTBlMWQ1YTQ0YTM1ZjIxOWE5MzIzMjZiOTdmZDZlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvR2FtZXBhZENvbnN0YW50c01hYy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0dhbWVwYWRDb25zdGFudHNN
YWMuaApAQCAtMzEsNiArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NvbnN0ZXhw
ciBjb25zdCB1aW50NjRfdCBoaWRIYXRzd2l0Y2hGdWxsVXNhZ2UgPSAoKHVpbnQ2NF90KWtISURQ
YWdlX0dlbmVyaWNEZXNrdG9wKSA8PCAzMiB8IGtISURVc2FnZV9HRF9IYXRzd2l0Y2g7CiBjb25z
dGV4cHIgY29uc3QgdWludDY0X3QgaGlkUG9pbnRlckZ1bGxVc2FnZSA9ICgodWludDY0X3Qpa0hJ
RFBhZ2VfR2VuZXJpY0Rlc2t0b3ApIDw8IDMyIHwga0hJRFVzYWdlX0dEX1BvaW50ZXI7CiBjb25z
dGV4cHIgY29uc3QgdWludDY0X3QgaGlkWEF4aXNGdWxsVXNhZ2UgPSAoKHVpbnQ2NF90KWtISURQ
YWdlX0dlbmVyaWNEZXNrdG9wKSA8PCAzMiB8IGtISURVc2FnZV9HRF9YOwogY29uc3RleHByIGNv
bnN0IHVpbnQ2NF90IGhpZFlBeGlzRnVsbFVzYWdlID0gKCh1aW50NjRfdClrSElEUGFnZV9HZW5l
cmljRGVza3RvcCkgPDwgMzIgfCBrSElEVXNhZ2VfR0RfWTsKQEAgLTQwLDYgKzQxLDE0IEBAIGNv
bnN0ZXhwciBjb25zdCB1aW50NjRfdCBoaWRCdXR0b24xRnVsbFVzYWdlID0gKCh1aW50NjRfdClr
SElEUGFnZV9CdXR0b24pIDw8IDMyCiBjb25zdGV4cHIgY29uc3QgdWludDY0X3QgaGlkQnV0dG9u
MkZ1bGxVc2FnZSA9ICgodWludDY0X3Qpa0hJRFBhZ2VfQnV0dG9uKSA8PCAzMiB8IChrSElEVXNh
Z2VfQnV0dG9uXzEgKyAxKTsKIGNvbnN0ZXhwciBjb25zdCB1aW50NjRfdCBoaWRCdXR0b24zRnVs
bFVzYWdlID0gKCh1aW50NjRfdClrSElEUGFnZV9CdXR0b24pIDw8IDMyIHwgKGtISURVc2FnZV9C
dXR0b25fMSArIDIpOwogY29uc3RleHByIGNvbnN0IHVpbnQ2NF90IGhpZEJ1dHRvbjRGdWxsVXNh
Z2UgPSAoKHVpbnQ2NF90KWtISURQYWdlX0J1dHRvbikgPDwgMzIgfCAoa0hJRFVzYWdlX0J1dHRv
bl8xICsgMyk7Citjb25zdGV4cHIgY29uc3QgdWludDY0X3QgaGlkQnV0dG9uNUZ1bGxVc2FnZSA9
ICgodWludDY0X3Qpa0hJRFBhZ2VfQnV0dG9uKSA8PCAzMiB8IChrSElEVXNhZ2VfQnV0dG9uXzEg
KyA0KTsKK2NvbnN0ZXhwciBjb25zdCB1aW50NjRfdCBoaWRCdXR0b242RnVsbFVzYWdlID0gKCh1
aW50NjRfdClrSElEUGFnZV9CdXR0b24pIDw8IDMyIHwgKGtISURVc2FnZV9CdXR0b25fMSArIDUp
OworY29uc3RleHByIGNvbnN0IHVpbnQ2NF90IGhpZEJ1dHRvbjdGdWxsVXNhZ2UgPSAoKHVpbnQ2
NF90KWtISURQYWdlX0J1dHRvbikgPDwgMzIgfCAoa0hJRFVzYWdlX0J1dHRvbl8xICsgNik7Citj
b25zdGV4cHIgY29uc3QgdWludDY0X3QgaGlkQnV0dG9uOEZ1bGxVc2FnZSA9ICgodWludDY0X3Qp
a0hJRFBhZ2VfQnV0dG9uKSA8PCAzMiB8IChrSElEVXNhZ2VfQnV0dG9uXzEgKyA3KTsKK2NvbnN0
ZXhwciBjb25zdCB1aW50NjRfdCBoaWRCdXR0b245RnVsbFVzYWdlID0gKCh1aW50NjRfdClrSElE
UGFnZV9CdXR0b24pIDw8IDMyIHwgKGtISURVc2FnZV9CdXR0b25fMSArIDgpOworY29uc3RleHBy
IGNvbnN0IHVpbnQ2NF90IGhpZEJ1dHRvbjEwRnVsbFVzYWdlID0gKCh1aW50NjRfdClrSElEUGFn
ZV9CdXR0b24pIDw8IDMyIHwgKGtISURVc2FnZV9CdXR0b25fMSArIDkpOworY29uc3RleHByIGNv
bnN0IHVpbnQ2NF90IGhpZEJ1dHRvbjExRnVsbFVzYWdlID0gKCh1aW50NjRfdClrSElEUGFnZV9C
dXR0b24pIDw8IDMyIHwgKGtISURVc2FnZV9CdXR0b25fMSArIDEwKTsKK2NvbnN0ZXhwciBjb25z
dCB1aW50NjRfdCBoaWRCdXR0b24xMkZ1bGxVc2FnZSA9ICgodWludDY0X3Qpa0hJRFBhZ2VfQnV0
dG9uKSA8PCAzMiB8IChrSElEVXNhZ2VfQnV0dG9uXzEgKyAxMSk7CiBjb25zdGV4cHIgY29uc3Qg
dWludDY0X3QgaGlkQnV0dG9uMTdGdWxsVXNhZ2UgPSAoKHVpbnQ2NF90KWtISURQYWdlX0J1dHRv
bikgPDwgMzIgfCAoa0hJRFVzYWdlX0J1dHRvbl8xICsgMTYpOwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9I
SURHYW1lcGFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdh
bWVwYWQuY3BwCmluZGV4IDUxZGM0NGFmM2Q4OWUxMGI4ZWM4Y2IyMjVkZGM3NDJiNmNkMjNmMDAu
Ljg5NDA4ZmEyYmU2NjdiNzY0ZmQ5ZWJjZTM2YTE4NTYxYjcyYTUyMGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQuY3BwCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiR2VuZXJpY0hJREdhbWVwYWQuaCIKICNpbmNsdWRlICJLbm93
bkdhbWVwYWRzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIkxvZ2l0ZWNoR2Ft
ZXBhZC5oIgogI2luY2x1ZGUgPElPS2l0L2hpZC9JT0hJREVsZW1lbnQuaD4KICNpbmNsdWRlIDxJ
T0tpdC9oaWQvSU9ISURVc2FnZVRhYmxlcy5oPgogI2luY2x1ZGUgPElPS2l0L2hpZC9JT0hJRFZh
bHVlLmg+CkBAIC01MCw2ICs1MSwxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8SElER2FtZXBhZD4gSElE
R2FtZXBhZDo6Y3JlYXRlKElPSElERGV2aWNlUmVmIHJhd0RldmljZSwgdW5zaWduZQogICAgIGNh
c2UgRHVhbHNob2NrMzoKICAgICAgICAgbmV3R2FtZXBhZCA9IG1ha2VVbmlxdWU8RHVhbHNob2Nr
M0hJREdhbWVwYWQ+KFdURk1vdmUoZGV2aWNlKSwgaW5kZXgpOwogICAgICAgICBicmVhazsKKyAg
ICBjYXNlIExvZ2l0ZWNoRjMxMDoKKyAgICBjYXNlIExvZ2l0ZWNoRjcxMDoKKyAgICAgICAgbmV3
R2FtZXBhZCA9IG1ha2VVbmlxdWU8TG9naXRlY2hHYW1lcGFkPihXVEZNb3ZlKGRldmljZSksIGlu
ZGV4KTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgbmV3R2FtZXBhZCA9
IG1ha2VVbmlxdWU8R2VuZXJpY0hJREdhbWVwYWQ+KFdURk1vdmUoZGV2aWNlKSwgaW5kZXgpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJ
REdhbWVwYWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFj
L0hJREdhbWVwYWRFbGVtZW50LmNwcAppbmRleCA4OGQzNmU5ZjBiMzdiZDVhYzI1ZTY4YjNkNjMy
NzczYzQxZmVmNzE0Li44NWJkOTU2MmEzYmY0M2RlNjFmZmJiYTkzODI1MTExOWNlOTM0MmI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFk
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElE
R2FtZXBhZEVsZW1lbnQuY3BwCkBAIC0zMiw5ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogI3ByYWdtYSBtYXJrIEhJREdhbWVwYWRFbGVtZW50CiAKLUhJREdhbWVwYWRFbGVtZW50OjpI
SURHYW1lcGFkRWxlbWVudChjb25zdCBISURFbGVtZW50JiBlbGVtZW50LCBTaGFyZWRHYW1lcGFk
VmFsdWUmIHZhbHVlKQorSElER2FtZXBhZEVsZW1lbnQ6OkhJREdhbWVwYWRFbGVtZW50KGNvbnN0
IEhJREVsZW1lbnQmIGVsZW1lbnQpCiAgICAgOiBISURFbGVtZW50KGVsZW1lbnQpCi0gICAgLCBt
X3ZhbHVlKHZhbHVlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9nYW1lcGFkL21hYy9ISURHYW1lcGFkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZEVsZW1lbnQuaAppbmRleCA3NDIzZmM4MWQzZjYyMTI5
NTE4ZDU0ZTg5ZjA2YjIxMTE3YWNkOTdiLi40YzllZGI2NTZiNGU2ZmUzNzZiZDJjZGRkYzE2ZGNh
ZGM1OGEzMTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21h
Yy9ISURHYW1lcGFkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVw
YWQvbWFjL0hJREdhbWVwYWRFbGVtZW50LmgKQEAgLTUxLDE4ICs1MSwxNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZWZyZXNoQ3VycmVudFZhbHVlKCk7CiAKIHByb3RlY3RlZDoKLSAgICBISURHYW1l
cGFkRWxlbWVudChjb25zdCBISURFbGVtZW50JiwgU2hhcmVkR2FtZXBhZFZhbHVlJik7CisgICAg
SElER2FtZXBhZEVsZW1lbnQoY29uc3QgSElERWxlbWVudCYpOwogCiAgICAgdmlydHVhbCBib29s
IGlzQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNB
eGlzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLQotICAgIFNoYXJlZEdhbWVwYWRWYWx1ZSBt
X3ZhbHVlOwogfTsKIAogY2xhc3MgSElER2FtZXBhZEJ1dHRvbiBmaW5hbCA6IHB1YmxpYyBISURH
YW1lcGFkRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgSElER2FtZXBhZEJ1dHRvbihjb25zdCBISURF
bGVtZW50JiBlbGVtZW50LCBTaGFyZWRHYW1lcGFkVmFsdWUmIHZhbHVlKQotICAgICAgICA6IEhJ
REdhbWVwYWRFbGVtZW50KGVsZW1lbnQsIHZhbHVlKQorICAgICAgICA6IEhJREdhbWVwYWRFbGVt
ZW50KGVsZW1lbnQpCisgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKICAgICB7CiAgICAgfQogCkBA
IC03MCwxMiArNjksMTUgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEhJRElucHV0VHlwZSBn
YW1lcGFkVmFsdWVDaGFuZ2VkKElPSElEVmFsdWVSZWYpIG92ZXJyaWRlOworCisgICAgU2hhcmVk
R2FtZXBhZFZhbHVlIG1fdmFsdWU7CiB9OwogCiBjbGFzcyBISURHYW1lcGFkQXhpcyBmaW5hbCA6
IHB1YmxpYyBISURHYW1lcGFkRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgSElER2FtZXBhZEF4aXMo
Y29uc3QgSElERWxlbWVudCYgZWxlbWVudCwgU2hhcmVkR2FtZXBhZFZhbHVlJiB2YWx1ZSkKLSAg
ICAgICAgOiBISURHYW1lcGFkRWxlbWVudChlbGVtZW50LCB2YWx1ZSkKKyAgICAgICAgOiBISURH
YW1lcGFkRWxlbWVudChlbGVtZW50KQorICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgewog
ICAgIH0KIApAQCAtODQsNiArODYsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgSElESW5w
dXRUeXBlIGdhbWVwYWRWYWx1ZUNoYW5nZWQoSU9ISURWYWx1ZVJlZikgb3ZlcnJpZGU7CisKKyAg
ICBTaGFyZWRHYW1lcGFkVmFsdWUgbV92YWx1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0xvZ2l0
ZWNoR2FtZXBhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9Mb2dp
dGVjaEdhbWVwYWQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2NjY2YjJlY2M5YjkxMTNlNWYyZWJjMjJjZDhi
MjhmNzhlYzZkNzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
YW1lcGFkL21hYy9Mb2dpdGVjaEdhbWVwYWQuY3BwCkBAIC0wLDAgKzEsMTg3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvZ2l0ZWNoR2FtZXBhZC5oIgor
CisjaWYgRU5BQkxFKEdBTUVQQUQpICYmIFBMQVRGT1JNKE1BQykKKworI2luY2x1ZGUgIkdhbWVw
YWRDb25zdGFudHMuaCIKKyNpbmNsdWRlICJHYW1lcGFkQ29uc3RhbnRzTWFjLmgiCisjaW5jbHVk
ZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgPElPS2l0L2hpZC9JT0hJRFVzYWdlVGFibGVzLmg+Cisj
aW5jbHVkZSA8d3RmL0hleE51bWJlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IExvZ2l0ZWNoR2FtZXBhZEhhdHN3aXRjaCBmaW5hbCA6IHB1YmxpYyBISURHYW1lcGFkRWxlbWVu
dCB7CitwdWJsaWM6CisgICAgTG9naXRlY2hHYW1lcGFkSGF0c3dpdGNoKGNvbnN0IEhJREVsZW1l
bnQmIGVsZW1lbnQsIFNoYXJlZEdhbWVwYWRWYWx1ZSB2YWx1ZXNbNF0pCisgICAgICAgIDogSElE
R2FtZXBhZEVsZW1lbnQoZWxlbWVudCkKKyAgICB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgNDsgKytpKQorICAgICAgICAgICAgbV92YWx1ZXMuYXBwZW5kKHZhbHVlc1tpXSk7Cisg
ICAgfQorCisgICAgYm9vbCBpc0J1dHRvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
KworcHJpdmF0ZToKKyAgICBISURJbnB1dFR5cGUgZ2FtZXBhZFZhbHVlQ2hhbmdlZChJT0hJRFZh
bHVlUmVmKSBvdmVycmlkZTsKKworICAgIFZlY3RvcjxTaGFyZWRHYW1lcGFkVmFsdWU+IG1fdmFs
dWVzOworfTsKKworSElESW5wdXRUeXBlIExvZ2l0ZWNoR2FtZXBhZEhhdHN3aXRjaDo6Z2FtZXBh
ZFZhbHVlQ2hhbmdlZChJT0hJRFZhbHVlUmVmIHZhbHVlKQoreworICAgIHZhbHVlQ2hhbmdlZCh2
YWx1ZSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDQ7ICsraSkKKyAgICAgICAgbV92
YWx1ZXNbaV0uc2V0VmFsdWUoMC4wKTsKKworICAgIHN3aXRjaCAocGh5c2ljYWxWYWx1ZSgpKSB7
CisgICAgY2FzZSAwOgorICAgICAgICBtX3ZhbHVlc1swXS5zZXRWYWx1ZSgxLjApOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIDQ1OgorICAgICAgICBtX3ZhbHVlc1swXS5zZXRWYWx1ZSgxLjAp
OworICAgICAgICBtX3ZhbHVlc1sxXS5zZXRWYWx1ZSgxLjApOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIDkwOgorICAgICAgICBtX3ZhbHVlc1sxXS5zZXRWYWx1ZSgxLjApOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIDEzNToKKyAgICAgICAgbV92YWx1ZXNbMV0uc2V0VmFsdWUoMS4wKTsK
KyAgICAgICAgbV92YWx1ZXNbMl0uc2V0VmFsdWUoMS4wKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSAxODA6CisgICAgICAgIG1fdmFsdWVzWzJdLnNldFZhbHVlKDEuMCk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgMjI1OgorICAgICAgICBtX3ZhbHVlc1syXS5zZXRWYWx1ZSgxLjApOwor
ICAgICAgICBtX3ZhbHVlc1szXS5zZXRWYWx1ZSgxLjApOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIDI3MDoKKyAgICAgICAgbV92YWx1ZXNbM10uc2V0VmFsdWUoMS4wKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSAzMTU6CisgICAgICAgIG1fdmFsdWVzWzNdLnNldFZhbHVlKDEuMCk7Cisg
ICAgICAgIG1fdmFsdWVzWzBdLnNldFZhbHVlKDEuMCk7CisgICAgICAgIGJyZWFrOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH07CisKKyAgICByZXR1cm4gSElESW5wdXRUeXBl
OjpCdXR0b25QcmVzczsKK30KKworTG9naXRlY2hHYW1lcGFkOjpMb2dpdGVjaEdhbWVwYWQoSElE
RGV2aWNlJiYgZGV2aWNlLCB1bnNpZ25lZCBpbmRleCkKKyAgICA6IEhJREdhbWVwYWQoV1RGTW92
ZShkZXZpY2UpLCBpbmRleCkKK3sKKyAgICBMT0coR2FtZXBhZCwgIkNyZWF0aW5nIExvZ2l0ZWNo
R2FtZXBhZCAlcCIsIHRoaXMpOworCisgICAgbV9tYXBwaW5nID0gc3RhbmRhcmRHYW1lcGFkTWFw
cGluZ1N0cmluZygpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1iZXJPZlN0YW5k
YXJkR2FtZXBhZEJ1dHRvbnNXaXRob3V0SG9tZUJ1dHRvbjsgKytpKQorICAgICAgICBtX2J1dHRv
blZhbHVlcy5hcHBlbmQoMC4wKTsKKworICAgIHN0YXRpYyBjb25zdCBzaXplX3QgYXhpc0NvdW50
ID0gNDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGF4aXNDb3VudDsgKytpKQorICAgICAg
ICBtX2F4aXNWYWx1ZXMuYXBwZW5kKDAuMCk7CisKKyAgICBhdXRvIGlucHV0RWxlbWVudHMgPSBo
aWREZXZpY2UoKS51bmlxdWVJbnB1dEVsZW1lbnRzSW5EZXZpY2VUcmVlT3JkZXIoKTsKKworICAg
IGF1dG8gbWFwQnV0dG9uID0gW3RoaXNdIChISURFbGVtZW50JiBlbGVtZW50LCBHYW1lcGFkQnV0
dG9uUm9sZSByb2xlKSB7CisgICAgICAgIG1fZWxlbWVudE1hcC5zZXQoZWxlbWVudC5jb29raWUo
KSwgbWFrZVVuaXF1ZTxISURHYW1lcGFkQnV0dG9uPihlbGVtZW50LCBtX2J1dHRvblZhbHVlc1so
c2l6ZV90KXJvbGVdKSk7CisgICAgfTsKKworICAgIC8vIExvb2sgc3BlY2lmaWNhbGx5IGZvciB0
aGUgYXhlcyBhbmQgZGlnaXRhbCBidXR0b25zCisgICAgZm9yIChhdXRvJiBlbGVtZW50IDogaW5w
dXRFbGVtZW50cykgeworICAgICAgICBzd2l0Y2ggKGVsZW1lbnQuZnVsbFVzYWdlKCkpIHsKKyAg
ICAgICAgY2FzZSBoaWRIYXRzd2l0Y2hGdWxsVXNhZ2U6IHsKKyAgICAgICAgICAgIFNoYXJlZEdh
bWVwYWRWYWx1ZSBoYXRzd2l0Y2hWYWx1ZXNbXSA9IHsKKyAgICAgICAgICAgICAgICBtX2J1dHRv
blZhbHVlc1soc2l6ZV90KUdhbWVwYWRCdXR0b25Sb2xlOjpMZWZ0Q2x1c3RlclRvcF0sCisgICAg
ICAgICAgICAgICAgbV9idXR0b25WYWx1ZXNbKHNpemVfdClHYW1lcGFkQnV0dG9uUm9sZTo6TGVm
dENsdXN0ZXJSaWdodF0sCisgICAgICAgICAgICAgICAgbV9idXR0b25WYWx1ZXNbKHNpemVfdClH
YW1lcGFkQnV0dG9uUm9sZTo6TGVmdENsdXN0ZXJCb3R0b21dLAorICAgICAgICAgICAgICAgIG1f
YnV0dG9uVmFsdWVzWyhzaXplX3QpR2FtZXBhZEJ1dHRvblJvbGU6OkxlZnRDbHVzdGVyTGVmdF0g
fTsKKyAgICAgICAgICAgIG1fZWxlbWVudE1hcC5zZXQoZWxlbWVudC5jb29raWUoKSwgbWFrZVVu
aXF1ZTxMb2dpdGVjaEdhbWVwYWRIYXRzd2l0Y2g+KGVsZW1lbnQsIGhhdHN3aXRjaFZhbHVlcykp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBoaWRYQXhpc0Z1
bGxVc2FnZToKKyAgICAgICAgICAgIG1fZWxlbWVudE1hcC5zZXQoZWxlbWVudC5jb29raWUoKSwg
bWFrZVVuaXF1ZTxISURHYW1lcGFkQXhpcz4oZWxlbWVudCwgbV9heGlzVmFsdWVzWzBdKSk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBoaWRZQXhpc0Z1bGxVc2FnZToKKyAgICAg
ICAgICAgIG1fZWxlbWVudE1hcC5zZXQoZWxlbWVudC5jb29raWUoKSwgbWFrZVVuaXF1ZTxISURH
YW1lcGFkQXhpcz4oZWxlbWVudCwgbV9heGlzVmFsdWVzWzFdKSk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBoaWRaQXhpc0Z1bGxVc2FnZToKKyAgICAgICAgICAgIG1fZWxlbWVu
dE1hcC5zZXQoZWxlbWVudC5jb29raWUoKSwgbWFrZVVuaXF1ZTxISURHYW1lcGFkQXhpcz4oZWxl
bWVudCwgbV9heGlzVmFsdWVzWzJdKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBoaWRSekF4aXNGdWxsVXNhZ2U6CisgICAgICAgICAgICBtX2VsZW1lbnRNYXAuc2V0KGVsZW1l
bnQuY29va2llKCksIG1ha2VVbmlxdWU8SElER2FtZXBhZEF4aXM+KGVsZW1lbnQsIG1fYXhpc1Zh
bHVlc1szXSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgaGlkQnV0dG9uMUZ1
bGxVc2FnZToKKyAgICAgICAgICAgIG1hcEJ1dHRvbihlbGVtZW50LCBHYW1lcGFkQnV0dG9uUm9s
ZTo6UmlnaHRDbHVzdGVyTGVmdCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBo
aWRCdXR0b24yRnVsbFVzYWdlOgorICAgICAgICAgICAgbWFwQnV0dG9uKGVsZW1lbnQsIEdhbWVw
YWRCdXR0b25Sb2xlOjpSaWdodENsdXN0ZXJCb3R0b20pOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgaGlkQnV0dG9uM0Z1bGxVc2FnZToKKyAgICAgICAgICAgIG1hcEJ1dHRvbihl
bGVtZW50LCBHYW1lcGFkQnV0dG9uUm9sZTo6UmlnaHRDbHVzdGVyUmlnaHQpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgaGlkQnV0dG9uNEZ1bGxVc2FnZToKKyAgICAgICAgICAg
IG1hcEJ1dHRvbihlbGVtZW50LCBHYW1lcGFkQnV0dG9uUm9sZTo6UmlnaHRDbHVzdGVyVG9wKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGhpZEJ1dHRvbjVGdWxsVXNhZ2U6Cisg
ICAgICAgICAgICBtYXBCdXR0b24oZWxlbWVudCwgR2FtZXBhZEJ1dHRvblJvbGU6OkxlZnRTaG91
bGRlckZyb250KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGhpZEJ1dHRvbjZG
dWxsVXNhZ2U6CisgICAgICAgICAgICBtYXBCdXR0b24oZWxlbWVudCwgR2FtZXBhZEJ1dHRvblJv
bGU6OlJpZ2h0U2hvdWxkZXJGcm9udCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBoaWRCdXR0b243RnVsbFVzYWdlOgorICAgICAgICAgICAgbWFwQnV0dG9uKGVsZW1lbnQsIEdh
bWVwYWRCdXR0b25Sb2xlOjpMZWZ0U2hvdWxkZXJCYWNrKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIGhpZEJ1dHRvbjhGdWxsVXNhZ2U6CisgICAgICAgICAgICBtYXBCdXR0b24o
ZWxlbWVudCwgR2FtZXBhZEJ1dHRvblJvbGU6OlJpZ2h0U2hvdWxkZXJCYWNrKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIGhpZEJ1dHRvbjlGdWxsVXNhZ2U6CisgICAgICAgICAg
ICBtYXBCdXR0b24oZWxlbWVudCwgR2FtZXBhZEJ1dHRvblJvbGU6OkNlbnRlckNsdXN0ZXJMZWZ0
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGhpZEJ1dHRvbjEwRnVsbFVzYWdl
OgorICAgICAgICAgICAgbWFwQnV0dG9uKGVsZW1lbnQsIEdhbWVwYWRCdXR0b25Sb2xlOjpDZW50
ZXJDbHVzdGVyUmlnaHQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgaGlkQnV0
dG9uMTFGdWxsVXNhZ2U6CisgICAgICAgICAgICBtYXBCdXR0b24oZWxlbWVudCwgR2FtZXBhZEJ1
dHRvblJvbGU6OkxlZnRTdGljayk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBo
aWRCdXR0b24xMkZ1bGxVc2FnZToKKyAgICAgICAgICAgIG1hcEJ1dHRvbihlbGVtZW50LCBHYW1l
cGFkQnV0dG9uUm9sZTo6UmlnaHRTdGljayk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoR0FNRVBBRCkgJiYgUExBVEZP
Uk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMv
TG9naXRlY2hHYW1lcGFkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9M
b2dpdGVjaEdhbWVwYWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzMyMmQ2MzU0ZmY1NmZjMGY3YmZjYWE3YTQ3
MjE2ODdjYTcyZDMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z2FtZXBhZC9tYWMvTG9naXRlY2hHYW1lcGFkLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdBTUVQQUQpICYmIFBMQVRGT1JNKE1BQykK
KworI2luY2x1ZGUgIkhJREdhbWVwYWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBMb2dpdGVjaEdhbWVwYWQgZmluYWwgOiBwdWJsaWMgSElER2FtZXBhZCB7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgTG9naXRlY2hHYW1lcGFkKEhJRERldmlj
ZSYmLCB1bnNpZ25lZCBpbmRleCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoR0FNRVBBRCkgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDEwZmY2OTI0ZGY0NjU5MzczMDYy
ZTM1MTQyYjI4MTVhM2Y4YTVkOWUuLjU0YjEyN2JkY2ZjYjA1OGMyNDU0NDRiOGI2NDlkZjQ3Mzg4
MzhmMWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNCBAQAorMjAyMC0wNy0zMSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgU3BlY2lhbCBISUQgbWFwcGluZyBmb3IgdGhlIExvZ2l0ZWNoIEYz
MTAvRjcxMCBjb250cm9sbGVycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNTA1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9ISURHYW1l
cGFkcy5tbToKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvbWFjL0dhbWVwYWRNYXBwaW5ncy9M
b2dpdGVjaEYzMTAubW06IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6cHVibGlzaFJl
cG9ydENhbGxiYWNrKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlZpcnR1YWxHYW1lcGFkOjps
b2dpdGVjaEYzMTBNYXBwaW5nKToKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvbWFjL0dhbWVw
YWRNYXBwaW5ncy9Mb2dpdGVjaEY3MTAubW06IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6cHVibGlzaFJlcG9ydENhbGxiYWNrKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlZpcnR1
YWxHYW1lcGFkOjpsb2dpdGVjaEY3MTBNYXBwaW5nKToKKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvbWFjL1ZpcnR1YWxHYW1lcGFkLmg6CisKIDIwMjAtMDctMzEgIEJyYWR5IEVpZHNvbiAgPGJl
aWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFNwZWNpYWwgSElEIG1hcHBpbmcgZm9yIHRoZSBE
dWFsc2hvY2sgMyBjb250cm9sbGVyCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQzNTRhNDg1
NTlmMjA3ZjYwYWYyNzI5NmRiOWYyYjNlZjRiM2E2YTMuLmI3YWNhYWY0NTM0YzE5OTc4M2FkMDA1
OTNmMzlhNGZhYjA4N2JlZjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzcsNiArMjc3
LDggQEAKIAkJNTEwNDc3NzcxRDI5OEU3MjAwOTc0N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5Lmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTEwNDc3NzYxRDI5OEU1NzAwOTc0N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5Lmh0bWwgKi87IH07
CiAJCTUxMDQ3Nzc4MUQyOTkyM0IwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVyeS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDQ3Nzc1MUQyOThF
MDMwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVyeS5tbSAqLzsgfTsKIAkJNTEwQTkxRjgyNEQz
NjIyMTAwQkZEODlDIC8qIFNvbnlEdWFsU2hvY2szLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwQTkxRjcyNEQzNjIxOTAwQkZEODlDIC8qIFNvbnlE
dWFsU2hvY2szLm1tICovOyB9OworCQk1MTBBOTIwQTI0RDUwNDg5MDBCRkQ4OUMgLyogTG9naXRl
Y2hGMzEwLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTEwQTkyMDkyNEQ1MDQ4MzAwQkZEODlDIC8qIExvZ2l0ZWNoRjMxMC5tbSAqLzsgfTsKKwkJNTEw
QTkyMEMyNEQ1Mjc1NTAwQkZEODlDIC8qIExvZ2l0ZWNoRjcxMC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEE5MjBCMjRENTI3NTEwMEJGRDg5QyAv
KiBMb2dpdGVjaEY3MTAubW0gKi87IH07CiAJCTUxMTBGQ0YxMUUwMUNENjQwMDZGOEQwQiAvKiBJ
REJJbmRleFVwZ3JhZGVUb1YyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMEZDRjAxRTAxQ0Q1MzAwNkY4RDBCIC8qIElEQkluZGV4
VXBncmFkZVRvVjIuaHRtbCAqLzsgfTsKIAkJNTExMEZDRjYxRTAxQ0Q4MzAwNkY4RDBCIC8qIElu
ZGV4VXBncmFkZS5zcWxpdGUzIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMTBGQ0YzMUUwMUNENzcwMDZGOEQwQiAvKiBJbmRleFVwZ3JhZGUu
c3FsaXRlMyAqLzsgfTsKIAkJNTExMEZDRjkxRTAxQ0Q4QTAwNkY4RDBCIC8qIEluZGV4VXBncmFk
ZS5ibG9iIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMTBGQ0YyMUUwMUNENzcwMDZGOEQwQiAvKiBJbmRleFVwZ3JhZGUuYmxvYiAqLzsgfTsK
QEAgLTE5NzMsNiArMTk3NSw4IEBACiAJCTUxMDQ3Nzc1MUQyOThFMDMwMDk3NDdFQiAvKiBJREJE
ZWxldGVSZWNvdmVyeS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IElEQkRlbGV0ZVJlY292ZXJ5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTA0
Nzc3NjFEMjk4RTU3MDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3ZlcnkuaHRtbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuaHRtbDsgcGF0aCA9IElEQkRlbGV0ZVJlY292ZXJ5Lmh0bWw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxMEE5MUY3MjREMzYyMTkwMEJGRDg5QyAvKiBTb255RHVhbFNob2Nr
My5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNvbnlEdWFsU2hv
Y2szLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTBBOTIwOTI0RDUwNDgzMDBC
RkQ4OUMgLyogTG9naXRlY2hGMzEwLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gTG9naXRlY2hGMzEwLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTBBOTIwQjI0RDUyNzUxMDBCRkQ4OUMgLyogTG9naXRlY2hGNzEwLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9naXRlY2hGNzEwLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTEwRkNFRjFFMDFDQkFBMDA2RjhEMEIgLyogSURCSW5kZXhVcGdy
YWRlVG9WMi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IElEQklu
ZGV4VXBncmFkZVRvVjIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMTBGQ0Yw
MUUwMUNENTMwMDZGOEQwQiAvKiBJREJJbmRleFVwZ3JhZGVUb1YyLmh0bWwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSBJREJJbmRleFVwZ3JhZGVUb1YyLmh0bWw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxMTBGQ0YyMUUwMUNENzcwMDZGOEQwQiAvKiBJbmRleFVwZ3JhZGUu
YmxvYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJbmRleFVwZ3JhZGUuYmxvYjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0NjgsNiArMzQ3Miw4IEBACiAJCTUxRUIxMjVEMjRDQTZC
M0UwMDBDQjAzMCAvKiBHYW1lcGFkTWFwcGluZ3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTUxMEE5MjA5MjRENTA0ODMwMEJGRDg5QyAvKiBMb2dpdGVj
aEYzMTAubW0gKi8sCisJCQkJNTEwQTkyMEIyNEQ1Mjc1MTAwQkZEODlDIC8qIExvZ2l0ZWNoRjcx
MC5tbSAqLywKIAkJCQk1MUVCMTI2MDI0Q0E2QjVGMDAwQ0IwMzAgLyogTWljcm9zb2Z0WGJveE9u
ZS5tbSAqLywKIAkJCQk1MUVCMTI1RTI0Q0E2QjVGMDAwQ0IwMzAgLyogU2hlbnpoZW5Mb25nc2hl
bmd3ZWlUZWNobm9sb2d5R2FtZXBhZC5tbSAqLywKIAkJCQk1MTBBOTFGNzI0RDM2MjE5MDBCRkQ4
OUMgLyogU29ueUR1YWxTaG9jazMubW0gKi8sCkBAIC00ODU2LDEzICs0ODYyLDEzIEBACiAJCQkJ
Q0U3ODcwNUYyMTA3QUI5ODAwNTNBQzY3IC8qIE1vdmVPbmx5TGlmZWN5Y2xlTG9nZ2VyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdDODNERUZFMUQwQTU5MEMwMEZFQkNGMyAvKiBOYWtlZFB0ci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdENTRGMzFGMzM4QzM2MDBBOTdBQTcgLyogTmV2ZXJE
ZXN0cm95ZWQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q0OEE4NzMyNEM4QTY2RjAwRjU4MDBD
IC8qIE9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNERjAxMUQwQTU5MEMwMEZF
QkNGMyAvKiBPcHRpb25hbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTc3QkFBMzFEOUFGRkZD
MDA1RkM1NjggLyogT3B0aW9uU2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNERjAyMUQw
QTU5MEMwMEZFQkNGMyAvKiBPU09iamVjdFB0ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzJC
NTQ5MjIyODEwQUM0MDA4QUQ3MDIgLyogUGFja2VkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUz
OEQ2NUNBMjNBNDVGQUEwMDYzRDY5QSAvKiBQYWNrZWRSZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTM4RDY1Q0IyM0E0NUZBQTAwNjNENjlBIC8qIFBhY2tlZFJlZlB0ci5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQlDRDQ4QTg3MzI0QzhBNjZGMDBGNTgwMEMgLyogT2JzZXJ2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0M4M0RGNTkxRDBBNTkwQzAwRkVCQ0YzIC8qIFBhcmtpbmdMb3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTNFQzI1NDExRTk2RkQ4NzAwMDgzMUI5IC8qIFByaW9yaXR5
UXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0RGMTMxRDBBNTkwQzAwRkVCQ0YzIC8q
IFJlZEJsYWNrVHJlZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTUxODAsNiArNTE4Niw4IEBACiAJ
CQkJN0E2QTJDNzAxRENDRkE4QzAwQzBEMDg1IC8qIExvY2FsU3RvcmFnZVF1aXJrVGVzdC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTZCRjRBNjgzMjM5RUQ0Q0QwMEUyRjQ1QiAvKiBMb2dnZWRJblN0
YXR1cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzZFNTA3RjFGNDUxM0Q2MDA2RTlGNUEgLyog
TG9nZ2luZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTBBOTIwQTI0RDUwNDg5MDBCRkQ4OUMg
LyogTG9naXRlY2hGMzEwLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTEwQTkyMEMyNEQ1Mjc1NTAw
QkZEODlDIC8qIExvZ2l0ZWNoRjcxMC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNFMTg2NjQ5MUY3
MkU4RjEwMEEwQ0FCNiAvKiBNYXJrZWRUZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3Q0M3
REZFMjI2NjMzMDkwMEUzOTE4MSAvKiBNZWRpYUJ1ZmZlcmluZ1BvbGljeS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUNEMDM3MEUzMjRBNDREOTYwMEJBM0NBRSAvKiBNZWRpYUxvYWRpbmcubW0gaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0hJ
REdhbWVwYWRzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSElER2FtZXBhZHMu
bW0KaW5kZXggMmUwZjQ5MWQ5MDVkMzkyZmEyYTU0YWQ1YTUzMTYyMGVkMjJmMDk3NC4uYTg5MDlk
OTMwNGM4MDkzODM2M2UzYjBjMzFjZjYwNWRlNmQxYzQwOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvSElER2FtZXBhZHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvSElER2FtZXBhZHMubW0KQEAgLTQyMSw2ICs0MjEsODMgQEAgVEVTVChH
YW1lcGFkLCBEdWFsc2hvY2szQmFzaWMpCiAgICAgZGlkUmVjZWl2ZU1lc3NhZ2UgPSB0cnVlOwog
fQogCitURVNUKEdhbWVwYWQsIExvZ2l0ZWNoQmFzaWMpCit7CisgICAgYXV0byBrZXlXaW5kb3dT
d2l6emxlciA9IG1ha2VVbmlxdWU8SW5zdGFuY2VNZXRob2RTd2l6emxlcj4oW05TQXBwbGljYXRp
b24gY2xhc3NdLCBAc2VsZWN0b3Ioa2V5V2luZG93KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KGdl
dEtleVdpbmRvd0ZvclRlc3RpbmcpKTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBtZXNz
YWdlSGFuZGxlciA9IGFkb3B0TlMoW1tHYW1lcGFkTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRd
KTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRN
ZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAiZ2FtZXBhZCJdOworCisg
ICAgYXV0byBzY2hlbWVIYW5kbGVyID0gYWRvcHROUyhbW1Rlc3RVUkxTY2hlbWVIYW5kbGVyIGFs
bG9jXSBpbml0XSk7CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpzY2hl
bWVIYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAImdhbWVwYWQiXTsKKworICAgIFtzY2hlbWVI
YW5kbGVyIHNldFN0YXJ0VVJMU2NoZW1lVGFza0hhbmRsZXI6XihXS1dlYlZpZXcgKiwgaWQ8V0tV
UkxTY2hlbWVUYXNrPiB0YXNrKSB7CisgICAgICAgIGF1dG8gcmVzcG9uc2UgPSBhZG9wdE5TKFtb
TlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6dGFzay5yZXF1ZXN0LlVSTCBNSU1FVHlw
ZTpAInRleHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOjAgdGV4dEVuY29kaW5nTmFtZTpu
aWxdKTsKKyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLmdldCgpXTsK
KyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZURhdGE6W05TRGF0YSBkYXRhV2l0aEJ5dGVzOm1haW5C
eXRlcyBsZW5ndGg6c3RybGVuKG1haW5CeXRlcyldXTsKKyAgICAgICAgW3Rhc2sgZGlkRmluaXNo
XTsKKyAgICB9XTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGtleVdpbmRvd0ZvclRlc3RpbmcgPSBb
d2ViVmlldyB3aW5kb3ddOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiZ2FtZXBh
ZDovL2hvc3QvbWFpbi5odG1sIl1dXTsKKworICAgIFtbd2ViVmlldyB3aW5kb3ddIG1ha2VGaXJz
dFJlc3BvbmRlcjp3ZWJWaWV3LmdldCgpXTsKKworICAgIC8vIFJlc2lnbmluZy9yZWluc3RhdGlu
ZyB0aGUga2V5IHdpbmRvdyBzdGF0ZSB0cmlnZ2VycyB0aGUgImtleSB3aW5kb3cgZGlkIGNoYW5n
ZSIgbm90aWZpY2F0aW9uIHRoYXQgV0tXZWJWaWV3IGN1cnJlbnRseQorICAgIC8vIG5lZWRzIHRv
IGNvbnZpbmNlIGl0IHRvIG1vbml0b3IgZ2FtZXBhZCBkZXZpY2VzCisgICAgW1t3ZWJWaWV3IHdp
bmRvd10gcmVzaWduS2V5V2luZG93XTsKKyAgICBbW3dlYlZpZXcgd2luZG93XSBtYWtlS2V5V2lu
ZG93XTsKKworICAgIC8vIENvbm5lY3QgYSBnYW1lcGFkIGFuZCBtYWtlIGl0IHZpc2libGUgdG8g
dGhlIHBhZ2UKKyAgICBhdXRvIGdhbWVwYWQxID0gbWFrZVVuaXF1ZTxWaXJ0dWFsR2FtZXBhZD4o
VmlydHVhbEdhbWVwYWQ6OmxvZ2l0ZWNoRjMxME1hcHBpbmcoKSk7CisgICAgYXV0byBnYW1lcGFk
MiA9IG1ha2VVbmlxdWU8VmlydHVhbEdhbWVwYWQ+KFZpcnR1YWxHYW1lcGFkOjpsb2dpdGVjaEY3
MTBNYXBwaW5nKCkpOworICAgIHdoaWxlIChbd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9uLnBy
b2Nlc3NQb29sIF9udW1iZXJPZkNvbm5lY3RlZEdhbWVwYWRzRm9yVGVzdGluZ10gIT0gMnUpCisg
ICAgICAgIFV0aWw6OnNsZWVwKDAuMDEpOworCisgICAgRVhQRUNUX0VRKFt3ZWJWaWV3LmdldCgp
LmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wgX251bWJlck9mQ29ubmVjdGVkSElER2FtZXBhZHNG
b3JUZXN0aW5nXSwgMnUpOworICAgIEVYUEVDVF9FUShbd2ViVmlldy5nZXQoKS5jb25maWd1cmF0
aW9uLnByb2Nlc3NQb29sIF9udW1iZXJPZkNvbm5lY3RlZEdhbWVDb250cm9sbGVyRnJhbWV3b3Jr
R2FtZXBhZHNGb3JUZXN0aW5nXSwgMHUpOworCisgICAgZ2FtZXBhZDEtPnNldEJ1dHRvblZhbHVl
KDAsIDEuMCk7CisgICAgZ2FtZXBhZDItPnNldEJ1dHRvblZhbHVlKDAsIDEuMCk7CisgICAgZ2Ft
ZXBhZDEtPnB1Ymxpc2hSZXBvcnQoKTsKKyAgICBnYW1lcGFkMi0+cHVibGlzaFJlcG9ydCgpOwor
CisgICAgLy8gVGhlIHBhZ2UgbWVzc2FnZXMgYmFjayBvbmNlIGZvciBlYWNoIGNvbnRyb2xsZXIK
KyAgICB3aGlsZSAobWVzc2FnZUhhbmRsZXIuZ2V0KCkubWVzc2FnZXMuc2l6ZSgpIDwgMikgewor
ICAgICAgICBkaWRSZWNlaXZlTWVzc2FnZSA9IGZhbHNlOworICAgICAgICBVdGlsOjpydW4oJmRp
ZFJlY2VpdmVNZXNzYWdlKTsKKyAgICB9CisKKyAgICBFWFBFQ1RfRVEobWVzc2FnZUhhbmRsZXIu
Z2V0KCkubWVzc2FnZXMuc2l6ZSgpLCAydSk7CisgICAgRVhQRUNUX1RSVUUoW21lc3NhZ2VIYW5k
bGVyLmdldCgpLm1lc3NhZ2VzWzBdIGlzRXF1YWxUb1N0cmluZzpAIlwiNDZkLWMyMTYtVmlydHVh
bCBMb2dpdGVjaCBGMzEwXCIiXSk7CisKKyAgICBOU1NldCAqZXhwZWN0ZWRHYW1lcGFkTmFtZXMg
PSBbTlNTZXQgc2V0V2l0aEFycmF5OkBbCisgICAgICAgIEAiXCI0NmQtYzIxNi1WaXJ0dWFsIExv
Z2l0ZWNoIEYzMTBcIiIsCisgICAgICAgIEAiXCI0NmQtYzIxOS1WaXJ0dWFsIExvZ2l0ZWNoIEY3
MTBcIiJdXTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMjsgKytpKQorICAgICAgICBF
WFBFQ1RfVFJVRShbZXhwZWN0ZWRHYW1lcGFkTmFtZXMgY29udGFpbnNPYmplY3Q6bWVzc2FnZUhh
bmRsZXIuZ2V0KCkubWVzc2FnZXNbaV0uZ2V0KCldKTsKKworICAgIGJvb2wgZG9uZSA9IGZhbHNl
OworICAgIGF1dG8gcmVzdWx0QmxvY2sgPSBbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3Ip
IHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBFWFBFQ1RfVFJVRShbcmVz
dWx0W0AiZ2FtZXBhZENvdW50Il0gaXNFcXVhbFRvTnVtYmVyOkAoMildKTsKKyAgICAgICAgRVhQ
RUNUX0VRKCgoTlNBcnJheSAqKXJlc3VsdFtAImdhbWVwYWRCdXR0b25zIl1bMF0pLmNvdW50LCAx
NnUpOworICAgICAgICBFWFBFQ1RfRVEoKChOU0FycmF5ICopcmVzdWx0W0AiZ2FtZXBhZEJ1dHRv
bnMiXVsxXSkuY291bnQsIDE2dSk7CisgICAgICAgIEVYUEVDVF9FUSgoKE5TQXJyYXkgKilyZXN1
bHRbQCJnYW1lcGFkQXhlcyJdWzBdKS5jb3VudCwgNHUpOworICAgICAgICBFWFBFQ1RfRVEoKChO
U0FycmF5ICopcmVzdWx0W0AiZ2FtZXBhZEF4ZXMiXVsxXSkuY291bnQsIDR1KTsKKworICAgICAg
ICBkb25lID0gdHJ1ZTsKKyAgICB9OworCisgICAgW3dlYlZpZXcgY2FsbEFzeW5jSmF2YVNjcmlw
dDpAKHBvbGxHYW1lcGFkU3RhdGVGdW5jdGlvbikgYXJndW1lbnRzOm5pbCBpbkZyYW1lOm5pbCBp
bkNvbnRlbnRXb3JsZDpXS0NvbnRlbnRXb3JsZC5wYWdlV29ybGQgY29tcGxldGlvbkhhbmRsZXI6
cmVzdWx0QmxvY2tdOworCisgICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICBkaWRSZWNlaXZlTWVz
c2FnZSA9IHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKIAogI2VuZGlm
IC8vIEhBVkUoSElEX0ZSQU1FV09SSykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL0dhbWVwYWRNYXBwaW5ncy9Mb2dpdGVjaEYz
MTAubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9HYW1lcGFkTWFwcGluZ3MvTG9naXRlY2hG
MzEwLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk3N2YyZmViYmVhOGEzMjU5NDcwMTg1NGVlMzJiYjQ0ZGQ5NGU2
YWQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9HYW1lcGFkTWFw
cGluZ3MvTG9naXRlY2hGMzEwLm1tCkBAIC0wLDAgKzEsMTQ4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJWaXJ0dWFsR2FtZXBhZC5oIgorCisjaWYgSEFWRShI
SURfRlJBTUVXT1JLKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxISUQv
SElEVXNlckRldmljZS5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK2NvbnN0IHVp
bnQ4X3QgRjMxMERlc2NyaXB0b3JbXSA9IHsKKyAgICAweDA1LCAweDAxLCAgICAgICAgIC8vIFVz
YWdlIFBhZ2UgKEdlbmVyaWMgRGVza3RvcCBDdHJscykKKyAgICAweDA5LCAweDA0LCAgICAgICAg
IC8vIFVzYWdlIChKb3lzdGljaykKKyAgICAweEExLCAweDAxLCAgICAgICAgIC8vIENvbGxlY3Rp
b24gKEFwcGxpY2F0aW9uKQorICAgIDB4QTEsIDB4MDIsICAgICAgICAgLy8gICBDb2xsZWN0aW9u
IChMb2dpY2FsKQorICAgIDB4NzUsIDB4MDgsICAgICAgICAgLy8gICAgIFJlcG9ydCBTaXplICg4
KQorICAgIDB4OTUsIDB4MDQsICAgICAgICAgLy8gICAgIFJlcG9ydCBDb3VudCAoNCkKKyAgICAw
eDE1LCAweDAwLCAgICAgICAgIC8vICAgICBMb2dpY2FsIE1pbmltdW0gKDApCisgICAgMHgyNiwg
MHhGRiwgMHgwMCwgICAvLyAgICAgTG9naWNhbCBNYXhpbXVtICgyNTUpCisgICAgMHgzNSwgMHgw
MCwgICAgICAgICAvLyAgICAgUGh5c2ljYWwgTWluaW11bSAoMCkKKyAgICAweDQ2LCAweEZGLCAw
eDAwLCAgIC8vICAgICBQaHlzaWNhbCBNYXhpbXVtICgyNTUpCisgICAgMHgwOSwgMHgzMCwgICAg
ICAgICAvLyAgICAgVXNhZ2UgKFgpCisgICAgMHgwOSwgMHgzMSwgICAgICAgICAvLyAgICAgVXNh
Z2UgKFkpCisgICAgMHgwOSwgMHgzMiwgICAgICAgICAvLyAgICAgVXNhZ2UgKFopCisgICAgMHgw
OSwgMHgzNSwgICAgICAgICAvLyAgICAgVXNhZ2UgKFJ6KQorICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gICAgICg0KSBheGVzLCAxIGJ5dGUgZWFjaC4gVG90YWwgLSAoNCkgYnl0ZXMKKyAgICAw
eDgxLCAweDAyLCAgICAgICAgIC8vICAgICBJbnB1dCAoRGF0YSxWYXIsQWJzLE5vIFdyYXAsTGlu
ZWFyLFByZWZlcnJlZCBTdGF0ZSxObyBOdWxsIFBvc2l0aW9uKQorICAgIDB4NzUsIDB4MDQsICAg
ICAgICAgLy8gICAgIFJlcG9ydCBTaXplICg0KQorICAgIDB4OTUsIDB4MDEsICAgICAgICAgLy8g
ICAgIFJlcG9ydCBDb3VudCAoMSkKKyAgICAweDI1LCAweDA3LCAgICAgICAgIC8vICAgICBMb2dp
Y2FsIE1heGltdW0gKDcpCisgICAgMHg0NiwgMHgzQiwgMHgwMSwgICAvLyAgICAgUGh5c2ljYWwg
TWF4aW11bSAoMzE1KQorICAgIDB4NjUsIDB4MTQsICAgICAgICAgLy8gICAgIFVuaXQgKFN5c3Rl
bTogRW5nbGlzaCBSb3RhdGlvbiwgTGVuZ3RoOiBDZW50aW1ldGVyKQorICAgIDB4MDksIDB4Mzks
ICAgICAgICAgLy8gICAgIFVzYWdlIChIYXQgc3dpdGNoKQorICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gICAgICgxKSBIYXQgc3dpdGNoLCA0IGJpdHMuIFRvdGFsIC0gKDQpIGJ5dGVzICg0KSBi
aXRzCisgICAgMHg4MSwgMHg0MiwgICAgICAgICAvLyAgICAgSW5wdXQgKERhdGEsVmFyLEFicyxO
byBXcmFwLExpbmVhcixQcmVmZXJyZWQgU3RhdGUsTnVsbCBTdGF0ZSkKKyAgICAweDY1LCAweDAw
LCAgICAgICAgIC8vICAgICBVbml0IChOb25lKQorICAgIDB4NzUsIDB4MDEsICAgICAgICAgLy8g
ICAgIFJlcG9ydCBTaXplICgxKQorICAgIDB4OTUsIDB4MEMsICAgICAgICAgLy8gICAgIFJlcG9y
dCBDb3VudCAoMTIpCisgICAgMHgyNSwgMHgwMSwgICAgICAgICAvLyAgICAgTG9naWNhbCBNYXhp
bXVtICgxKQorICAgIDB4NDUsIDB4MDEsICAgICAgICAgLy8gICAgIFBoeXNpY2FsIE1heGltdW0g
KDEpCisgICAgMHgwNSwgMHgwOSwgICAgICAgICAvLyAgICAgVXNhZ2UgUGFnZSAoQnV0dG9uKQor
ICAgIDB4MTksIDB4MDEsICAgICAgICAgLy8gICAgIFVzYWdlIE1pbmltdW0gKDB4MDEpCisgICAg
MHgyOSwgMHgwQywgICAgICAgICAvLyAgICAgVXNhZ2UgTWF4aW11bSAoMHgwQykKKyAgICAgICAg
ICAgICAgICAgICAgICAgIC8vICAgICAoMTIpIEJ1dHRvbiBiaXRzLiBUb3RhbCAtICg2KSBieXRl
cworICAgIDB4ODEsIDB4MDIsICAgICAgICAgLy8gICAgIElucHV0IChEYXRhLFZhcixBYnMsTm8g
V3JhcCxMaW5lYXIsUHJlZmVycmVkIFN0YXRlLE5vIE51bGwgUG9zaXRpb24pCisgICAgMHgwNiwg
MHgwMCwgMHhGRiwgICAvLyAgICAgVXNhZ2UgUGFnZSAoVmVuZG9yIERlZmluZWQgMHhGRjAwKQor
ICAgIDB4NzUsIDB4MDEsICAgICAgICAgLy8gICAgIFJlcG9ydCBTaXplICgxKQorICAgIDB4OTUs
IDB4MTAsICAgICAgICAgLy8gICAgIFJlcG9ydCBDb3VudCAoMTYpCisgICAgMHgyNSwgMHgwMSwg
ICAgICAgICAvLyAgICAgTG9naWNhbCBNYXhpbXVtICgxKQorICAgIDB4NDUsIDB4MDEsICAgICAg
ICAgLy8gICAgIFBoeXNpY2FsIE1heGltdW0gKDEpCisgICAgMHgwOSwgMHgwMSwgICAgICAgICAv
LyAgICAgVXNhZ2UgKDB4MDEpCisgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgKDIpIHVu
a25vd24gYnl0ZXMuIFRvdGFsIC0gKDgpIGJ5dGVzCisgICAgMHg4MSwgMHgwMiwgICAgICAgICAv
LyAgICAgSW5wdXQgKERhdGEsVmFyLEFicyxObyBXcmFwLExpbmVhcixQcmVmZXJyZWQgU3RhdGUs
Tm8gTnVsbCBQb3NpdGlvbikKKyAgICAweEMwLCAgICAgICAgICAgICAgIC8vICAgRW5kIENvbGxl
Y3Rpb24KKyAgICAweEExLCAweDAyLCAgICAgICAgIC8vICAgQ29sbGVjdGlvbiAoTG9naWNhbCkK
KyAgICAweDc1LCAweDA4LCAgICAgICAgIC8vICAgICBSZXBvcnQgU2l6ZSAoOCkKKyAgICAweDk1
LCAweDA3LCAgICAgICAgIC8vICAgICBSZXBvcnQgQ291bnQgKDcpCisgICAgMHg0NiwgMHhGRiwg
MHgwMCwgICAvLyAgICAgUGh5c2ljYWwgTWF4aW11bSAoMjU1KQorICAgIDB4MjYsIDB4RkYsIDB4
MDAsICAgLy8gICAgIExvZ2ljYWwgTWF4aW11bSAoMjU1KQorICAgIDB4MDksIDB4MDIsICAgICAg
ICAgLy8gICAgIFVzYWdlICgweDAyKQorICAgIDB4OTEsIDB4MDIsICAgICAgICAgLy8gICAgIE91
dHB1dCAoRGF0YSxWYXIsQWJzLE5vIFdyYXAsTGluZWFyLFByZWZlcnJlZCBTdGF0ZSxObyBOdWxs
IFBvc2l0aW9uLE5vbi12b2xhdGlsZSkKKyAgICAweEMwLCAgICAgICAgICAgICAgIC8vICAgRW5k
IENvbGxlY3Rpb24KKyAgICAweEMwLCAgICAgICAgICAgICAgIC8vIEVuZCBDb2xsZWN0aW9uCit9
OworCitjb25zdCBzaXplX3QgRjMxMEJ1dHRvbkNvdW50ID0gMTM7Citjb25zdCBzaXplX3QgRjMx
MEF4aXNDb3VudCA9IDQ7Citjb25zdCBzaXplX3QgRjMxMFJlcG9ydFNpemUgPSA4OworY29uc3Qg
Y2hhciogRjMxME5hbWUgPSAiVmlydHVhbCBMb2dpdGVjaCBGMzEwIjsKKworLy8gUmVwb3J0IGxh
eW91dDoKKy8vIHxYfCB8WXwgfFp8IHxSenwgfGIxLWI0LCBoYXRzd2l0Y2h8IHxiNS1iMTJ8IHww
eDAwfCB8MHhmZnwKKworc3RhdGljIHZvaWQgcHVibGlzaFJlcG9ydENhbGxiYWNrKFZlY3Rvcjxm
bG9hdD4mIGJ1dHRvblZhbHVlcywgVmVjdG9yPGZsb2F0PiYgYXhpc1ZhbHVlcywgSElEVXNlckRl
dmljZSAqdXNlckRldmljZSkKK3sKKyAgICB1aW50OF90IHJlcG9ydERhdGFbRjMxMFJlcG9ydFNp
emVdOworCisgICAgLy8gRmlyc3QgNCBieXRlcyBhcmUgdGhlIGF4aXMgdmFsdWVzCisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCA0OyArK2kpCisgICAgICAgIHJlcG9ydERhdGFbaV0gPSAodWlu
dDhfdCkoKGludDhfdCkoYXhpc1ZhbHVlc1tpXSAqIDEyNykpOworCisgICAgLy8gTmV4dCBieXRl
IGlzIHRoZSBoYXRzd2l0Y2ggYW5kIGZpcnN0IDQgYnV0dG9ucworICAgIC8vIEZJWE1FOiBObyBB
UEkgdGVzdCBjb25maWd1cmFiaWxpdHkgb2YgdGhlIGhhdHN3aXRjaCB5ZXQKKyAgICB1aW50OF90
IGJ1dHRvbkJ5dGUgPSAweDA4OworICAgIGxvbmcgYnV0dG9uQml0OworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgNDsgKytpKSB7CisgICAgICAgIGJ1dHRvbkJpdCA9IGxyb3VuZChidXR0b25W
YWx1ZXNbaV0pOworICAgICAgICBidXR0b25CeXRlIHw9IGJ1dHRvbkJpdCA8PCAoaSArIDQpOwor
ICAgIH0KKyAgICByZXBvcnREYXRhWzRdID0gYnV0dG9uQnl0ZTsKKworICAgIC8vIE5leHQgYnl0
ZSBpcyBidXR0b25zIDUtMTIKKyAgICBidXR0b25CeXRlID0gMHgwMDsKKyAgICBmb3IgKHNpemVf
dCBpID0gNDsgaSA8IDEyOyArK2kpIHsKKyAgICAgICAgYnV0dG9uQml0ID0gbHJvdW5kKGJ1dHRv
blZhbHVlc1tpXSk7CisgICAgICAgIGJ1dHRvbkJ5dGUgfD0gYnV0dG9uQml0IDw8IChpIC0gNCk7
CisgICAgfQorICAgIHJlcG9ydERhdGFbNV0gPSBidXR0b25CeXRlOworCisgICAgLy8gRmluYWwg
MiBieXRlcyBhcmUgY29uc3RhbnQKKyAgICByZXBvcnREYXRhWzZdID0gMHgwMDsKKyAgICByZXBv
cnREYXRhWzddID0gMHhmZjsKKworICAgIGF1dG8gbnNSZXBvcnREYXRhID0gYWRvcHROUyhbW05T
RGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpyZXBvcnREYXRhIGxlbmd0aDpGMzEwUmVwb3J0U2l6
ZV0pOworICAgIFt1c2VyRGV2aWNlIGhhbmRsZVJlcG9ydDpuc1JlcG9ydERhdGEuZ2V0KCkgZXJy
b3I6bmlsXTsKK30KKworR2FtZXBhZE1hcHBpbmcgVmlydHVhbEdhbWVwYWQ6OmxvZ2l0ZWNoRjMx
ME1hcHBpbmcoKQoreworICAgIHJldHVybiB7CisgICAgICAgIEYzMTBEZXNjcmlwdG9yLAorICAg
ICAgICBzaXplb2YoRjMxMERlc2NyaXB0b3IpLAorICAgICAgICBGMzEwTmFtZSwKKyAgICAgICAg
SElEVmVuZG9ySUQ6OkxvZ2l0ZWNoLAorICAgICAgICBISURQcm9kdWN0SUQ6OkYzMTAsCisgICAg
ICAgIEYzMTBCdXR0b25Db3VudCwKKyAgICAgICAgRjMxMEF4aXNDb3VudCwKKyAgICAgICAgcHVi
bGlzaFJlcG9ydENhbGxiYWNrCisgICAgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSQorCisjZW5kaWYgLy8gSEFWRShISURfRlJBTUVXT1JLKSAmJiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvR2FtZXBhZE1hcHBp
bmdzL0xvZ2l0ZWNoRjcxMC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL0dhbWVwYWRNYXBw
aW5ncy9Mb2dpdGVjaEY3MTAubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU2ZWU2NGQxODA5M2RmOTdmNTMwMmFk
MGIwZGI0NDdlMDE4ZGIyOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
bWFjL0dhbWVwYWRNYXBwaW5ncy9Mb2dpdGVjaEY3MTAubW0KQEAgLTAsMCArMSwxNTkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlZpcnR1YWxHYW1lcGFkLmgi
CisKKyNpZiBIQVZFKEhJRF9GUkFNRVdPUkspICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisK
KyNpbXBvcnQgPEhJRC9ISURVc2VyRGV2aWNlLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
IHsKKworY29uc3QgdWludDhfdCBGNzEwRGVzY3JpcHRvcltdID0geworICAgIDB4MDUsIDB4MDEs
ICAgICAgICAgLy8gVXNhZ2UgUGFnZSAoR2VuZXJpYyBEZXNrdG9wIEN0cmxzKQorICAgIDB4MDks
IDB4MDUsICAgICAgICAgLy8gVXNhZ2UgKEdhbWUgUGFkKQorICAgIDB4QTEsIDB4MDEsICAgICAg
ICAgLy8gQ29sbGVjdGlvbiAoQXBwbGljYXRpb24pCisgICAgMHhBMSwgMHgwMiwgICAgICAgICAv
LyAgIENvbGxlY3Rpb24gKExvZ2ljYWwpCisgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAg
KDEpIEJ5dGUgcmVwb3J0IElELiBUb3RhbCAtICgxKSBieXRlcworICAgIDB4ODUsIDB4MDEsICAg
ICAgICAgLy8gICAgIFJlcG9ydCBJRCAoMSkKKyAgICAweDc1LCAweDA4LCAgICAgICAgIC8vICAg
ICBSZXBvcnQgU2l6ZSAoOCkKKyAgICAweDk1LCAweDA0LCAgICAgICAgIC8vICAgICBSZXBvcnQg
Q291bnQgKDQpCisgICAgMHgxNSwgMHgwMCwgICAgICAgICAvLyAgICAgTG9naWNhbCBNaW5pbXVt
ICgwKQorICAgIDB4MjYsIDB4RkYsIDB4MDAsICAgLy8gICAgIExvZ2ljYWwgTWF4aW11bSAoMjU1
KQorICAgIDB4MzUsIDB4MDAsICAgICAgICAgLy8gICAgIFBoeXNpY2FsIE1pbmltdW0gKDApCisg
ICAgMHg0NiwgMHhGRiwgMHgwMCwgICAvLyAgICAgUGh5c2ljYWwgTWF4aW11bSAoMjU1KQorICAg
IDB4MDksIDB4MzAsICAgICAgICAgLy8gICAgIFVzYWdlIChYKQorICAgIDB4MDksIDB4MzEsICAg
ICAgICAgLy8gICAgIFVzYWdlIChZKQorICAgIDB4MDksIDB4MzIsICAgICAgICAgLy8gICAgIFVz
YWdlIChaKQorICAgIDB4MDksIDB4MzUsICAgICAgICAgLy8gICAgIFVzYWdlIChSeikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIC8vICAgICAoNCkgYXhlcywgMSBieXRlIGVhY2guIFRvdGFsIC0g
KDUpIGJ5dGVzCisgICAgMHg4MSwgMHgwMiwgICAgICAgICAvLyAgICAgSW5wdXQgKERhdGEsVmFy
LEFicyxObyBXcmFwLExpbmVhcixQcmVmZXJyZWQgU3RhdGUsTm8gTnVsbCBQb3NpdGlvbikKKyAg
ICAweDc1LCAweDA0LCAgICAgICAgIC8vICAgICBSZXBvcnQgU2l6ZSAoNCkKKyAgICAweDk1LCAw
eDAxLCAgICAgICAgIC8vICAgICBSZXBvcnQgQ291bnQgKDEpCisgICAgMHgyNSwgMHgwNywgICAg
ICAgICAvLyAgICAgTG9naWNhbCBNYXhpbXVtICg3KQorICAgIDB4NDYsIDB4M0IsIDB4MDEsICAg
Ly8gICAgIFBoeXNpY2FsIE1heGltdW0gKDMxNSkKKyAgICAweDY2LCAweDE0LCAweDAwLCAgIC8v
ICAgICBVbml0IChTeXN0ZW06IEVuZ2xpc2ggUm90YXRpb24sIExlbmd0aDogQ2VudGltZXRlcikK
KyAgICAweDA5LCAweDM5LCAgICAgICAgIC8vICAgICBVc2FnZSAoSGF0IHN3aXRjaCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIC8vICAgICAoMSkgSGF0IHN3aXRjaCwgNCBiaXRzLiBUb3RhbCAt
ICg1KSBieXRlcyAoNCkgYml0cworICAgIDB4ODEsIDB4NDIsICAgICAgICAgLy8gICAgIElucHV0
IChEYXRhLFZhcixBYnMsTm8gV3JhcCxMaW5lYXIsUHJlZmVycmVkIFN0YXRlLE51bGwgU3RhdGUp
CisgICAgMHg2NiwgMHgwMCwgMHgwMCwgICAvLyAgICAgVW5pdCAoTm9uZSkKKyAgICAweDc1LCAw
eDAxLCAgICAgICAgIC8vICAgICBSZXBvcnQgU2l6ZSAoMSkKKyAgICAweDk1LCAweDBDLCAgICAg
ICAgIC8vICAgICBSZXBvcnQgQ291bnQgKDEyKQorICAgIDB4MjUsIDB4MDEsICAgICAgICAgLy8g
ICAgIExvZ2ljYWwgTWF4aW11bSAoMSkKKyAgICAweDQ1LCAweDAxLCAgICAgICAgIC8vICAgICBQ
aHlzaWNhbCBNYXhpbXVtICgxKQorICAgIDB4MDUsIDB4MDksICAgICAgICAgLy8gICAgIFVzYWdl
IFBhZ2UgKEJ1dHRvbikKKyAgICAweDE5LCAweDAxLCAgICAgICAgIC8vICAgICBVc2FnZSBNaW5p
bXVtICgweDAxKQorICAgIDB4MjksIDB4MEMsICAgICAgICAgLy8gICAgIFVzYWdlIE1heGltdW0g
KDB4MEMpCisgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgKDEyKSBCdXR0b24gYml0cy4g
VG90YWwgLSAoNykgYnl0ZXMKKyAgICAweDgxLCAweDAyLCAgICAgICAgIC8vICAgICBJbnB1dCAo
RGF0YSxWYXIsQWJzLE5vIFdyYXAsTGluZWFyLFByZWZlcnJlZCBTdGF0ZSxObyBOdWxsIFBvc2l0
aW9uKQorICAgIDB4OTUsIDB4MDEsICAgICAgICAgLy8gICAgIFJlcG9ydCBDb3VudCAoMSkKKyAg
ICAweDc1LCAweDA4LCAgICAgICAgIC8vICAgICBSZXBvcnQgU2l6ZSAoOCkKKyAgICAweDA2LCAw
eDAwLCAweEZGLCAgIC8vICAgICBVc2FnZSBQYWdlIChWZW5kb3IgRGVmaW5lZCAweEZGMDApCisg
ICAgMHgyNiwgMHhGRiwgMHgwMCwgICAvLyAgICAgTG9naWNhbCBNYXhpbXVtICgyNTUpCisgICAg
MHg0NiwgMHhGRiwgMHgwMCwgICAvLyAgICAgUGh5c2ljYWwgTWF4aW11bSAoMjU1KQorICAgIDB4
MDksIDB4MDAsICAgICAgICAgLy8gICAgIFVzYWdlICgweDAwKQorICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gICAgICgxKSB2ZW5kb3Igc3BlY2lmaWMgYnl0ZS4gVG90YWwgLSAoOCkgYnl0ZXMK
KyAgICAweDgxLCAweDAyLCAgICAgICAgIC8vICAgICBJbnB1dCAoRGF0YSxWYXIsQWJzLE5vIFdy
YXAsTGluZWFyLFByZWZlcnJlZCBTdGF0ZSxObyBOdWxsIFBvc2l0aW9uKQorICAgIDB4QzAsICAg
ICAgICAgICAgICAgLy8gICBFbmQgQ29sbGVjdGlvbgorICAgIDB4QTEsIDB4MDIsICAgICAgICAg
Ly8gICBDb2xsZWN0aW9uIChMb2dpY2FsKQorICAgIDB4ODUsIDB4MDIsICAgICAgICAgLy8gICAg
IFJlcG9ydCBJRCAoMikKKyAgICAweDk1LCAweDA3LCAgICAgICAgIC8vICAgICBSZXBvcnQgQ291
bnQgKDcpCisgICAgMHg3NSwgMHgwOCwgICAgICAgICAvLyAgICAgUmVwb3J0IFNpemUgKDgpCisg
ICAgMHgyNiwgMHhGRiwgMHgwMCwgICAvLyAgICAgTG9naWNhbCBNYXhpbXVtICgyNTUpCisgICAg
MHg0NiwgMHhGRiwgMHgwMCwgICAvLyAgICAgUGh5c2ljYWwgTWF4aW11bSAoMjU1KQorICAgIDB4
MDYsIDB4MDAsIDB4RkYsICAgLy8gICAgIFVzYWdlIFBhZ2UgKFZlbmRvciBEZWZpbmVkIDB4RkYw
MCkKKyAgICAweDA5LCAweDAzLCAgICAgICAgIC8vICAgICBVc2FnZSAoMHgwMykKKyAgICAweDgx
LCAweDAyLCAgICAgICAgIC8vICAgICBJbnB1dCAoRGF0YSxWYXIsQWJzLE5vIFdyYXAsTGluZWFy
LFByZWZlcnJlZCBTdGF0ZSxObyBOdWxsIFBvc2l0aW9uKQorICAgIDB4QzAsICAgICAgICAgICAg
ICAgLy8gICBFbmQgQ29sbGVjdGlvbgorICAgIDB4QTEsIDB4MDIsICAgICAgICAgLy8gICBDb2xs
ZWN0aW9uIChMb2dpY2FsKQorICAgIDB4ODUsIDB4MDMsICAgICAgICAgLy8gICAgIFJlcG9ydCBJ
RCAoMykKKyAgICAweDA5LCAweDA0LCAgICAgICAgIC8vICAgICBVc2FnZSAoMHgwNCkKKyAgICAw
eDkxLCAweDAyLCAgICAgICAgIC8vICAgICBPdXRwdXQgKERhdGEsVmFyLEFicyxObyBXcmFwLExp
bmVhcixQcmVmZXJyZWQgU3RhdGUsTm8gTnVsbCBQb3NpdGlvbixOb24tdm9sYXRpbGUpCisgICAg
MHhDMCwgICAgICAgICAgICAgICAvLyAgIEVuZCBDb2xsZWN0aW9uCisgICAgMHhDMCwgICAgICAg
ICAgICAgICAvLyBFbmQgQ29sbGVjdGlvbgorfTsKKworY29uc3Qgc2l6ZV90IEY3MTBCdXR0b25D
b3VudCA9IDEzOworY29uc3Qgc2l6ZV90IEY3MTBBeGlzQ291bnQgPSA0OworY29uc3Qgc2l6ZV90
IEY3MTBSZXBvcnRTaXplID0gODsKK2NvbnN0IGNoYXIqIEY3MTBOYW1lID0gIlZpcnR1YWwgTG9n
aXRlY2ggRjcxMCI7CisKKy8vIFJlcG9ydCBsYXlvdXQ6CisvLyB8UmVwb3J0SUR8IHxYfCB8WXwg
fFp8IHxSenwgfGIxLWI0LCBoYXRzd2l0Y2h8IHxiNS1iMTJ8IHx2ZW5kb3Igc3BlY2lmaWN8CisK
K3N0YXRpYyB2b2lkIHB1Ymxpc2hSZXBvcnRDYWxsYmFjayhWZWN0b3I8ZmxvYXQ+JiBidXR0b25W
YWx1ZXMsIFZlY3RvcjxmbG9hdD4mIGF4aXNWYWx1ZXMsIEhJRFVzZXJEZXZpY2UgKnVzZXJEZXZp
Y2UpCit7CisgICAgdWludDhfdCByZXBvcnREYXRhW0Y3MTBSZXBvcnRTaXplXTsKKworICAgIC8v
IFJlcG9ydCBJRAorICAgIHJlcG9ydERhdGFbMF0gPSAweDAxOworCisgICAgLy8gTmV4dCA0IGJ5
dGVzIGFyZSB0aGUgYXhpcyB2YWx1ZXMKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDQ7ICsr
aSkKKyAgICAgICAgcmVwb3J0RGF0YVtpICsgMV0gPSAodWludDhfdCkoKGludDhfdCkoYXhpc1Zh
bHVlc1tpXSAqIDEyNykpOworCisgICAgLy8gTmV4dCBieXRlIGlzIHRoZSBoYXRzd2l0Y2ggYW5k
IGZpcnN0IDQgYnV0dG9ucworICAgIC8vIEZJWE1FOiBObyBBUEkgdGVzdCBjb25maWd1cmFiaWxp
dHkgb2YgdGhlIGhhdHN3aXRjaCB5ZXQKKyAgICB1aW50OF90IGJ1dHRvbkJ5dGUgPSAweDA4Owor
ICAgIGxvbmcgYnV0dG9uQml0OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgNDsgKytpKSB7
CisgICAgICAgIGJ1dHRvbkJpdCA9IGxyb3VuZChidXR0b25WYWx1ZXNbaV0pOworICAgICAgICBi
dXR0b25CeXRlIHw9IGJ1dHRvbkJpdCA8PCAoaSArIDQpOworICAgIH0KKyAgICByZXBvcnREYXRh
WzVdID0gYnV0dG9uQnl0ZTsKKworICAgIC8vIE5leHQgYnl0ZSBpcyBidXR0b25zIDUtMTIKKyAg
ICBidXR0b25CeXRlID0gMHgwMDsKKyAgICBmb3IgKHNpemVfdCBpID0gNDsgaSA8IDEyOyArK2kp
IHsKKyAgICAgICAgYnV0dG9uQml0ID0gbHJvdW5kKGJ1dHRvblZhbHVlc1tpXSk7CisgICAgICAg
IGJ1dHRvbkJ5dGUgfD0gYnV0dG9uQml0IDw8IChpIC0gNCk7CisgICAgfQorICAgIHJlcG9ydERh
dGFbNl0gPSBidXR0b25CeXRlOworCisgICAgLy8gRmluYWwgaXMgdmVuZG9yIHNwZWNpZmljIChj
aGFuZ2VzIHdpdGggdmlicmF0aW9uIG1vZGUsIEkga25vdywgYnV0IG5vdCByZWxldmFudCB0byB0
aGUgZ2FtZXBhZCBzcGVjIGF0IHRoaXMgdGltZSkKKyAgICByZXBvcnREYXRhWzddID0gMHg1ZjsK
KworICAgIGF1dG8gbnNSZXBvcnREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdp
dGhCeXRlczpyZXBvcnREYXRhIGxlbmd0aDpGNzEwUmVwb3J0U2l6ZV0pOworICAgIFt1c2VyRGV2
aWNlIGhhbmRsZVJlcG9ydDpuc1JlcG9ydERhdGEuZ2V0KCkgZXJyb3I6bmlsXTsKK30KKworR2Ft
ZXBhZE1hcHBpbmcgVmlydHVhbEdhbWVwYWQ6OmxvZ2l0ZWNoRjcxME1hcHBpbmcoKQoreworICAg
IHJldHVybiB7CisgICAgICAgIEY3MTBEZXNjcmlwdG9yLAorICAgICAgICBzaXplb2YoRjcxMERl
c2NyaXB0b3IpLAorICAgICAgICBGNzEwTmFtZSwKKyAgICAgICAgSElEVmVuZG9ySUQ6OkxvZ2l0
ZWNoLAorICAgICAgICBISURQcm9kdWN0SUQ6OkY3MTAsCisgICAgICAgIEY3MTBCdXR0b25Db3Vu
dCwKKyAgICAgICAgRjcxMEF4aXNDb3VudCwKKyAgICAgICAgcHVibGlzaFJlcG9ydENhbGxiYWNr
CisgICAgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8g
SEFWRShISURfRlJBTUVXT1JLKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVmlydHVhbEdhbWVwYWQuaCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvbWFjL1ZpcnR1YWxHYW1lcGFkLmgKaW5kZXggOWIxNjU2YTBjZDQwNzViN2Y5NjM4
Y2ZmMTNkMjUxOTBkN2ZlMDc1Yy4uNzY2MzRhOTYyMTAyNGJjYzQzYzE5MzgxNDZhNGEyNGRmZTU5
MTA4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVmlydHVhbEdhbWVwYWQu
aAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9WaXJ0dWFsR2FtZXBhZC5oCkBAIC00MCw2
ICs0MCw3IEBAIE9CSkNfQ0xBU1MgTlNTdHJpbmc7CiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7
CiAKIGVudW0gY2xhc3MgSElEVmVuZG9ySUQgOiB1aW50MTZfdCB7CisgICAgTG9naXRlY2ggPSAw
eDA0NmQsCiAgICAgTWljcm9zb2Z0ID0gMHgwNDVlLAogICAgIFNoZW56aGVuTG9uZ3NoZW5nd2Vp
VGVjaG5vbG9neSA9IDB4MDA3OSwKICAgICBTb255ID0gMHgwNTRjLApAQCAtNTIsNiArNTMsOCBA
QCBlbnVtIGNsYXNzIEhJRFZlbmRvcklEIDogdWludDE2X3QgewogLy8gVGVjaG5pY2FsbHkgZGlm
ZmVyZW50IHByb2R1Y3RzIGZyb20gZGlmZmVyZW50IHZlbmRvcnMgY2FuIGhhdmUgdGhlIHNhbWUg
cHJvZHVjdCBJRCwKIC8vIEJ1dCBpbiBwcmFjdGljZSB0aGF0IHByb2JhYmx5IHdvbid0IGhhcHBl
bi4KIGVudW0gY2xhc3MgSElEUHJvZHVjdElEIDogdWludDE2X3QgeworICAgIEYzMTAgPSAweGMy
MTYsCisgICAgRjcxMCA9IDB4YzIxOSwKICAgICBTdHJhdHVzWEwxID0gMHgxNDE4LAogICAgIFN0
cmF0dXNYTDIgPSAweDE0MTksCiAgICAgTmltYnVzID0gMHgxNDIwLApAQCAtODEsNiArODQsOCBA
QCBzdHJ1Y3QgR2FtZXBhZE1hcHBpbmcgewogY2xhc3MgVmlydHVhbEdhbWVwYWQgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgorICAgIHN0YXRpYyBHYW1lcGFkTWFwcGlu
ZyBsb2dpdGVjaEYzMTBNYXBwaW5nKCk7CisgICAgc3RhdGljIEdhbWVwYWRNYXBwaW5nIGxvZ2l0
ZWNoRjcxME1hcHBpbmcoKTsKICAgICBzdGF0aWMgR2FtZXBhZE1hcHBpbmcgbWljcm9zb2Z0WGJv
eE9uZU1hcHBpbmcoKTsKICAgICBzdGF0aWMgR2FtZXBhZE1hcHBpbmcgc2hlbnpoZW5Mb25nc2hl
bmd3ZWlUZWNobm9sb2d5R2FtZXBhZE1hcHBpbmcoKTsKICAgICBzdGF0aWMgR2FtZXBhZE1hcHBp
bmcgc29ueUR1YWxzaG9jazNNYXBwaW5nKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405800</attachid>
            <date>2020-08-01 17:25:28 -0700</date>
            <delta_ts>2020-08-01 19:53:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215050-20200801172527.patch</filename>
            <type>text/plain</type>
            <size>42298</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjIwMWFlYTFhYjliYTEw
OGY0NmYwMjMwOTgzZjllOGM3MGUxY2UwZS4uYTc2Y2NmM2U2YWFlZDM2OGNmMjA5NjU1MDM2NTU0
MWUxZGY2MzNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTA4LTAxICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBTcGVjaWFsIEhJRCBtYXBw
aW5nIGZvciB0aGUgTG9naXRlY2ggRjMxMC9GNzEwIGNvbnRyb2xsZXJzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1MDUwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0LgorCisg
ICAgICAgIFRoZXNlIHR3byBjb250cm9sbGVycyBtYXRjaCB0aGUgc3RhbmRhcmQgbWFwcGluZyBw
ZXJmZWN0bHkuIEVhc3kgdG8gc3VwcG9ydC4KKyAgICAgICAgCisgICAgICAgICogU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgIAorICAgICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvS25vd25HYW1lcGFkcy5oOgorICAg
ICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9HYW1lcGFkQ29uc3RhbnRzTWFj
Lmg6CisgICAgICAgIAorICAgICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SElER2FtZXBhZDo6Y3JlYXRlKToKKyAgICAgICAgCisg
ICAgICAgICogcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SElER2FtZXBhZEVsZW1lbnQ6OkhJREdhbWVwYWRFbGVtZW50KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkRWxlbWVudC5oOgorICAgICAg
ICAoV2ViQ29yZTo6SElER2FtZXBhZEVsZW1lbnQ6OmlzQXhpcyBjb25zdCk6CisgICAgICAgIAor
ICAgICAgICAqIHBsYXRmb3JtL2dhbWVwYWQvbWFjL0xvZ2l0ZWNoR2FtZXBhZC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6TG9naXRlY2hHYW1lcGFkSGF0c3dpdGNoOjpnYW1lcGFkVmFs
dWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkxvZ2l0ZWNoR2FtZXBhZDo6TG9naXRlY2hH
YW1lcGFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9Mb2dpdGVjaEdhbWVwYWQu
aDogCisKIDIwMjAtMDgtMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAg
ICAgICAgIFNwZWNpYWwgSElEIG1hcHBpbmcgZm9yIHRoZSBHb29nbGUgU3RhZGlhIGNvbnRyb2xs
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDVjOWY4MDQ1YTJlYmI0NTNhZjY1MjEwNTIx
MjcxYjkxMzBmNzRiYmMuLjMyYWE1OWJkNjM3MWM0M2YxNmMyY2E1NWRmYTBkNTFkZDFjMjlkZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMjYyLDYgKzI2Miw3IEBAIHBsYXRmb3JtL2dh
bWVwYWQvbWFjL0dlbmVyaWNISURHYW1lcGFkLmNwcAogcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElE
R2FtZXBhZC5jcHAKIHBsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRFbGVtZW50LmNwcAog
cGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZFByb3ZpZGVyLm1tCitwbGF0Zm9ybS9nYW1l
cGFkL21hYy9Mb2dpdGVjaEdhbWVwYWQuY3BwCiBwbGF0Zm9ybS9nYW1lcGFkL21hYy9NdWx0aUdh
bWVwYWRQcm92aWRlci5tbQogcGxhdGZvcm0vZ2FtZXBhZC9tYWMvU3RhZGlhSElER2FtZXBhZC5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXIuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
ZGE1NjIwNTZlMDdlMzJiYWMxYTExNDFiYjQ1OTk3MjRmZTZjMDllYi4uZDE4YmJhN2U2NGUwZjJh
MTY2ZmFjMjJmMDc4MDYyNjAwNGRlMGNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQwNiw2ICsxNDA2LDcgQEAKIAkJNTEw
QTkxRkQyNEQzQzE2MjAwQkZEODlDIC8qIEdhbWVwYWRDb25zdGFudHMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNzE1RkU5MjRDRDA1REQwMDJDOTdF
NiAvKiBHYW1lcGFkQ29uc3RhbnRzLmggKi87IH07CiAJCTUxMEE5MUZFMjREM0MxNjcwMEJGRDg5
QyAvKiBHYW1lcGFkQ29uc3RhbnRzTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTBBOTFGQjI0RDNDMEZEMDBCRkQ4OUMgLyogR2FtZXBhZENvbnN0
YW50c01hYy5oICovOyB9OwogCQk1MTBBOTIxMjI0RDVFNjBFMDBCRkQ4OUMgLyogU3RhZGlhSElE
R2FtZXBhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTEwQTkyMTEyNEQ1RTIxNzAwQkZEODlDIC8qIFN0YWRpYUhJREdhbWVwYWQuaCAqLzsgfTsKKwkJ
NTEwQTkyMDgyNEQ0RjQ5OTAwQkZEODlDIC8qIExvZ2l0ZWNoR2FtZXBhZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwQTkyMDUyNEQ0RjA3QTAwQkZE
ODlDIC8qIExvZ2l0ZWNoR2FtZXBhZC5oICovOyB9OwogCQk1MTBENEEzNDEwMzE2NUVFMDA0OUVB
NTQgLyogU29ja2V0U3RyZWFtRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTJFMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1F
cnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTUxMEQ0QTM3MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMxMTAzMTY1RUUw
MDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTBENEEzODEwMzE2NUVFMDA0OUVBNTQgLyogU29j
a2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTBENEEzMjEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFu
ZGxlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTgyMzksNiArODI0MCw4IEBACiAJCTUxMEE5MUZCMjREM0MwRkQwMEJGRDg5QyAvKiBH
YW1lcGFkQ29uc3RhbnRzTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdh
bWVwYWRDb25zdGFudHNNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwQTky
MEYyNEQ1RTIxNzAwQkZEODlDIC8qIFN0YWRpYUhJREdhbWVwYWQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RhZGlhSElER2FtZXBhZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxMEE5MjExMjRENUUyMTcwMEJGRDg5QyAvKiBTdGFkaWFISURH
YW1lcGFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0YWRpYUhJREdhbWVw
YWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwQTkyMDUyNEQ0RjA3QTAwQkZE
ODlDIC8qIExvZ2l0ZWNoR2FtZXBhZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBMb2dpdGVjaEdhbWVwYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwQTky
MDcyNEQ0RjA3QTAwQkZEODlDIC8qIExvZ2l0ZWNoR2FtZXBhZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2dpdGVjaEdhbWVwYWQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTBENEEyRTEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFt
RXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtRXJy
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwRDRBMzAxMDMxNjVFRTAwNDlF
QTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTb2NrZXRTdHJlYW1IYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTBENEEzMTEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvY2tldFN0cmVhbUhhbmRsZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk3MDIsNiArMTk3MDUsOCBAQAogCQkJCTUx
MEE5MUQ2MjRDRThFREUwMEJGRDg5QyAvKiBISURHYW1lcGFkRWxlbWVudC5oICovLAogCQkJCTUx
NUJFMTlBMUQ1NEY2QkQwMEREN0M2OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuaCAqLywKIAkJCQk1
MTVCRTE5OTFENTRGNkJEMDBERDdDNjggLyogSElER2FtZXBhZFByb3ZpZGVyLm1tICovLAorCQkJ
CTUxMEE5MjA3MjRENEYwN0EwMEJGRDg5QyAvKiBMb2dpdGVjaEdhbWVwYWQuY3BwICovLAorCQkJ
CTUxMEE5MjA1MjRENEYwN0EwMEJGRDg5QyAvKiBMb2dpdGVjaEdhbWVwYWQuaCAqLywKIAkJCQk1
MTdFMDNGNDI0QjZCOTYzMDA1NDg5NUEgLyogTXVsdGlHYW1lcGFkUHJvdmlkZXIuaCAqLywKIAkJ
CQk1MTdFMDNGNTI0QjZCOTY0MDA1NDg5NUEgLyogTXVsdGlHYW1lcGFkUHJvdmlkZXIubW0gKi8s
CiAJCQkJNTEwQTkyMEYyNEQ1RTIxNzAwQkZEODlDIC8qIFN0YWRpYUhJREdhbWVwYWQuY3BwICov
LApAQCAtMzI0MTcsNiArMzI0MjIsNyBAQAogCQkJCUE4MjM5RTAxMDlCM0NGOEEwMEI2MDY0MSAv
KiBMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkEyNzNGNDE3MjIwNkJCMDA5N0NFNDcg
LyogTG9naWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZE
Q0Q3RjMxRDQ3RTY1NTAwOUYwOEJDIC8qIExvZ0luaXRpYWxpemF0aW9uLmggaW4gSGVhZGVycyAq
LywKKwkJCQk1MTBBOTIwODI0RDRGNDk5MDBCRkQ4OUMgLyogTG9naXRlY2hHYW1lcGFkLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5M0E4MDYxNzFFMDNCNTFDMDA4QTFGMjYgLyogTG9uZ1JhbmdlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0NkVGQUYxMjFFNUZCOUYxMDBFN0YzNEIgLyogTG93UG93ZXJN
b2RlTm90aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBRTZDOTNDMUJFMEM2MDEwMEUxOUUw
MyAvKiBNYWluVGhyZWFkU2hhcmVkVGltZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9Lbm93bkdhbWVwYWRzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL0tub3duR2FtZXBhZHMuaAppbmRleCBhMGJkNTBmMTJi
YTNmNmU4ZjdjYzQ0MTBkZmNjZTliZTUxNGQ2YWQ1Li41MmFkNjg0ZGIyY2M2NDJmZDdjM2RjZWEw
NjJiZGNmOWRiMjk1MDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1l
cGFkL0tub3duR2FtZXBhZHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFk
L0tub3duR2FtZXBhZHMuaApAQCAtMzUsNiArMzUsOCBAQCBlbnVtIEtub3duR2FtZXBhZCB7CiAg
ICAgRHVhbHNob2NrNF8yID0gMHgwNTRjMDljYywKICAgICBHYW1lc2lyTTIgPSAweDBlYzIwNDc1
LAogICAgIEhvcmlwYWRVbHRpbWF0ZSA9IDB4MGYwZDAwOTAsCisgICAgTG9naXRlY2hGMzEwID0g
MHgwNDZkYzIxNiwKKyAgICBMb2dpdGVjaEY3MTAgPSAweDA0NmRjMjE5LAogICAgIE5pbWJ1czEg
PSAweDAxMTExNDIwLAogICAgIE5pbWJ1czIgPSAweDEwMzgxNDIwLAogICAgIFN0YWRpYUEgPSAw
eDE4ZDE5NDAwLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9t
YWMvR2FtZXBhZENvbnN0YW50c01hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBh
ZC9tYWMvR2FtZXBhZENvbnN0YW50c01hYy5oCmluZGV4IGIxMzE0YmNjNTBmOTQxMGE3MGFiMTMy
NjZjMTMwZjkyZmFlYzZjNzAuLjQ4Mjg4YmI0YmQ2YWFjNjJmMDk1YzNmMmJmNDEwODZjNjQxNmRl
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0dhbWVw
YWRDb25zdGFudHNNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21h
Yy9HYW1lcGFkQ29uc3RhbnRzTWFjLmgKQEAgLTQ2LDggKzQ2LDExIEBAIGNvbnN0ZXhwciBjb25z
dCB1aW50NjRfdCBoaWRCdXR0b24yRnVsbFVzYWdlID0gKCh1aW50NjRfdClrSElEUGFnZV9CdXR0
b24pIDw8IDMyCiBjb25zdGV4cHIgY29uc3QgdWludDY0X3QgaGlkQnV0dG9uM0Z1bGxVc2FnZSA9
ICgodWludDY0X3Qpa0hJRFBhZ2VfQnV0dG9uKSA8PCAzMiB8IChrSElEVXNhZ2VfQnV0dG9uXzEg
KyAyKTsKIGNvbnN0ZXhwciBjb25zdCB1aW50NjRfdCBoaWRCdXR0b240RnVsbFVzYWdlID0gKCh1
aW50NjRfdClrSElEUGFnZV9CdXR0b24pIDw8IDMyIHwgKGtISURVc2FnZV9CdXR0b25fMSArIDMp
OwogY29uc3RleHByIGNvbnN0IHVpbnQ2NF90IGhpZEJ1dHRvbjVGdWxsVXNhZ2UgPSAoKHVpbnQ2
NF90KWtISURQYWdlX0J1dHRvbikgPDwgMzIgfCAoa0hJRFVzYWdlX0J1dHRvbl8xICsgNCk7Citj
b25zdGV4cHIgY29uc3QgdWludDY0X3QgaGlkQnV0dG9uNkZ1bGxVc2FnZSA9ICgodWludDY0X3Qp
a0hJRFBhZ2VfQnV0dG9uKSA8PCAzMiB8IChrSElEVXNhZ2VfQnV0dG9uXzEgKyA1KTsKIGNvbnN0
ZXhwciBjb25zdCB1aW50NjRfdCBoaWRCdXR0b243RnVsbFVzYWdlID0gKCh1aW50NjRfdClrSElE
UGFnZV9CdXR0b24pIDw8IDMyIHwgKGtISURVc2FnZV9CdXR0b25fMSArIDYpOwogY29uc3RleHBy
IGNvbnN0IHVpbnQ2NF90IGhpZEJ1dHRvbjhGdWxsVXNhZ2UgPSAoKHVpbnQ2NF90KWtISURQYWdl
X0J1dHRvbikgPDwgMzIgfCAoa0hJRFVzYWdlX0J1dHRvbl8xICsgNyk7Citjb25zdGV4cHIgY29u
c3QgdWludDY0X3QgaGlkQnV0dG9uOUZ1bGxVc2FnZSA9ICgodWludDY0X3Qpa0hJRFBhZ2VfQnV0
dG9uKSA8PCAzMiB8IChrSElEVXNhZ2VfQnV0dG9uXzEgKyA4KTsKK2NvbnN0ZXhwciBjb25zdCB1
aW50NjRfdCBoaWRCdXR0b24xMEZ1bGxVc2FnZSA9ICgodWludDY0X3Qpa0hJRFBhZ2VfQnV0dG9u
KSA8PCAzMiB8IChrSElEVXNhZ2VfQnV0dG9uXzEgKyA5KTsKIGNvbnN0ZXhwciBjb25zdCB1aW50
NjRfdCBoaWRCdXR0b24xMUZ1bGxVc2FnZSA9ICgodWludDY0X3Qpa0hJRFBhZ2VfQnV0dG9uKSA8
PCAzMiB8IChrSElEVXNhZ2VfQnV0dG9uXzEgKyAxMCk7CiBjb25zdGV4cHIgY29uc3QgdWludDY0
X3QgaGlkQnV0dG9uMTJGdWxsVXNhZ2UgPSAoKHVpbnQ2NF90KWtISURQYWdlX0J1dHRvbikgPDwg
MzIgfCAoa0hJRFVzYWdlX0J1dHRvbl8xICsgMTEpOwogY29uc3RleHByIGNvbnN0IHVpbnQ2NF90
IGhpZEJ1dHRvbjEzRnVsbFVzYWdlID0gKCh1aW50NjRfdClrSElEUGFnZV9CdXR0b24pIDw8IDMy
IHwgKGtISURVc2FnZV9CdXR0b25fMSArIDEyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZC5jcHAKaW5kZXggYjA1ZTkyN2IyNWE0NGE4MjYy
ZWI3NTdkYWY4ZjBmN2JjMDZjNmExMy4uY2I2YWU2NTdkODdlNTFjMzU1MmM4YmE2MmQxNzlkNjBj
NzlhZmQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMv
SElER2FtZXBhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMv
SElER2FtZXBhZC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJHZW5lcmljSElER2Ft
ZXBhZC5oIgogI2luY2x1ZGUgIktub3duR2FtZXBhZHMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CisjaW5jbHVkZSAiTG9naXRlY2hHYW1lcGFkLmgiCiAjaW5jbHVkZSAiU3RhZGlhSElER2FtZXBh
ZC5oIgogI2luY2x1ZGUgPElPS2l0L2hpZC9JT0hJREVsZW1lbnQuaD4KICNpbmNsdWRlIDxJT0tp
dC9oaWQvSU9ISURVc2FnZVRhYmxlcy5oPgpAQCAtNTEsNiArNTIsMTAgQEAgc3RkOjp1bmlxdWVf
cHRyPEhJREdhbWVwYWQ+IEhJREdhbWVwYWQ6OmNyZWF0ZShJT0hJRERldmljZVJlZiByYXdEZXZp
Y2UsIHVuc2lnbmUKICAgICBjYXNlIER1YWxzaG9jazM6CiAgICAgICAgIG5ld0dhbWVwYWQgPSBt
YWtlVW5pcXVlPER1YWxzaG9jazNISURHYW1lcGFkPihXVEZNb3ZlKGRldmljZSksIGluZGV4KTsK
ICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2dpdGVjaEYzMTA6CisgICAgY2FzZSBMb2dpdGVj
aEY3MTA6CisgICAgICAgIG5ld0dhbWVwYWQgPSBtYWtlVW5pcXVlPExvZ2l0ZWNoR2FtZXBhZD4o
V1RGTW92ZShkZXZpY2UpLCBpbmRleCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU3RhZGlh
QToKICAgICAgICAgbmV3R2FtZXBhZCA9IG1ha2VVbmlxdWU8U3RhZGlhSElER2FtZXBhZD4oV1RG
TW92ZShkZXZpY2UpLCBpbmRleCk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvTG9naXRlY2hHYW1lcGFkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0xvZ2l0ZWNoR2FtZXBhZC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjcxNDNmYjk5NWJhMmMzZTY4ZGQyMTFkMTY1YmU2MjBjZWY3ODllZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0xvZ2l0ZWNoR2Ft
ZXBhZC5jcHAKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiTG9naXRlY2hHYW1lcGFkLmgiCisKKyNpZiBFTkFCTEUoR0FNRVBBRCkg
JiYgUExBVEZPUk0oTUFDKQorCisjaW5jbHVkZSAiR2FtZXBhZENvbnN0YW50cy5oIgorI2luY2x1
ZGUgIkdhbWVwYWRDb25zdGFudHNNYWMuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVk
ZSA8SU9LaXQvaGlkL0lPSElEVXNhZ2VUYWJsZXMuaD4KKyNpbmNsdWRlIDx3dGYvSGV4TnVtYmVy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTG9naXRlY2hHYW1lcGFkOjpMb2dpdGVjaEdh
bWVwYWQoSElERGV2aWNlJiYgZGV2aWNlLCB1bnNpZ25lZCBpbmRleCkKKyAgICA6IEhJREdhbWVw
YWQoV1RGTW92ZShkZXZpY2UpLCBpbmRleCkKK3sKKyAgICBMT0coR2FtZXBhZCwgIkNyZWF0aW5n
IExvZ2l0ZWNoR2FtZXBhZCAlcCIsIHRoaXMpOworCisgICAgbV9tYXBwaW5nID0gc3RhbmRhcmRH
YW1lcGFkTWFwcGluZ1N0cmluZygpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1i
ZXJPZlN0YW5kYXJkR2FtZXBhZEJ1dHRvbnNXaXRob3V0SG9tZUJ1dHRvbjsgKytpKQorICAgICAg
ICBtX2J1dHRvblZhbHVlcy5hcHBlbmQoMC4wKTsKKworICAgIHN0YXRpYyBjb25zdCBzaXplX3Qg
YXhpc0NvdW50ID0gNDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGF4aXNDb3VudDsgKytp
KQorICAgICAgICBtX2F4aXNWYWx1ZXMuYXBwZW5kKDAuMCk7CisKKyAgICBhdXRvIGlucHV0RWxl
bWVudHMgPSBoaWREZXZpY2UoKS51bmlxdWVJbnB1dEVsZW1lbnRzSW5EZXZpY2VUcmVlT3JkZXIo
KTsKKworICAgIGF1dG8gbWFwQnV0dG9uID0gW3RoaXNdIChISURFbGVtZW50JiBlbGVtZW50LCBH
YW1lcGFkQnV0dG9uUm9sZSByb2xlKSB7CisgICAgICAgIG1fZWxlbWVudE1hcC5zZXQoZWxlbWVu
dC5jb29raWUoKSwgbWFrZVVuaXF1ZTxISURHYW1lcGFkQnV0dG9uPihlbGVtZW50LCBtX2J1dHRv
blZhbHVlc1soc2l6ZV90KXJvbGVdKSk7CisgICAgfTsKKworICAgIGZvciAoYXV0byYgZWxlbWVu
dCA6IGlucHV0RWxlbWVudHMpIHsKKyAgICAgICAgc3dpdGNoIChlbGVtZW50LmZ1bGxVc2FnZSgp
KSB7CisgICAgICAgIGNhc2UgaGlkSGF0c3dpdGNoRnVsbFVzYWdlOiB7CisgICAgICAgICAgICBW
ZWN0b3I8U2hhcmVkR2FtZXBhZFZhbHVlPiBoYXRzd2l0Y2hWYWx1ZXM7CisgICAgICAgICAgICBo
YXRzd2l0Y2hWYWx1ZXMuYXBwZW5kKG1fYnV0dG9uVmFsdWVzWyhzaXplX3QpR2FtZXBhZEJ1dHRv
blJvbGU6OkxlZnRDbHVzdGVyVG9wXSk7CisgICAgICAgICAgICBoYXRzd2l0Y2hWYWx1ZXMuYXBw
ZW5kKG1fYnV0dG9uVmFsdWVzWyhzaXplX3QpR2FtZXBhZEJ1dHRvblJvbGU6OkxlZnRDbHVzdGVy
UmlnaHRdKTsKKyAgICAgICAgICAgIGhhdHN3aXRjaFZhbHVlcy5hcHBlbmQobV9idXR0b25WYWx1
ZXNbKHNpemVfdClHYW1lcGFkQnV0dG9uUm9sZTo6TGVmdENsdXN0ZXJCb3R0b21dKTsKKyAgICAg
ICAgICAgIGhhdHN3aXRjaFZhbHVlcy5hcHBlbmQobV9idXR0b25WYWx1ZXNbKHNpemVfdClHYW1l
cGFkQnV0dG9uUm9sZTo6TGVmdENsdXN0ZXJMZWZ0XSk7CisKKyAgICAgICAgICAgIG1fZWxlbWVu
dE1hcC5zZXQoZWxlbWVudC5jb29raWUoKSwgbWFrZVVuaXF1ZTxISURHYW1lcGFkSGF0c3dpdGNo
PihlbGVtZW50LCBXVEZNb3ZlKGhhdHN3aXRjaFZhbHVlcykpKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGNhc2UgaGlkWEF4aXNGdWxsVXNhZ2U6CisgICAgICAgICAg
ICBtX2VsZW1lbnRNYXAuc2V0KGVsZW1lbnQuY29va2llKCksIG1ha2VVbmlxdWU8SElER2FtZXBh
ZEF4aXM+KGVsZW1lbnQsIG1fYXhpc1ZhbHVlc1swXSkpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgaGlkWUF4aXNGdWxsVXNhZ2U6CisgICAgICAgICAgICBtX2VsZW1lbnRNYXAu
c2V0KGVsZW1lbnQuY29va2llKCksIG1ha2VVbmlxdWU8SElER2FtZXBhZEF4aXM+KGVsZW1lbnQs
IG1fYXhpc1ZhbHVlc1sxXSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgaGlk
WkF4aXNGdWxsVXNhZ2U6CisgICAgICAgICAgICBtX2VsZW1lbnRNYXAuc2V0KGVsZW1lbnQuY29v
a2llKCksIG1ha2VVbmlxdWU8SElER2FtZXBhZEF4aXM+KGVsZW1lbnQsIG1fYXhpc1ZhbHVlc1sy
XSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgaGlkUnpBeGlzRnVsbFVzYWdl
OgorICAgICAgICAgICAgbV9lbGVtZW50TWFwLnNldChlbGVtZW50LmNvb2tpZSgpLCBtYWtlVW5p
cXVlPEhJREdhbWVwYWRBeGlzPihlbGVtZW50LCBtX2F4aXNWYWx1ZXNbM10pKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIGhpZEJ1dHRvbjFGdWxsVXNhZ2U6CisgICAgICAgICAg
ICBtYXBCdXR0b24oZWxlbWVudCwgR2FtZXBhZEJ1dHRvblJvbGU6OlJpZ2h0Q2x1c3RlckxlZnQp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgaGlkQnV0dG9uMkZ1bGxVc2FnZToK
KyAgICAgICAgICAgIG1hcEJ1dHRvbihlbGVtZW50LCBHYW1lcGFkQnV0dG9uUm9sZTo6UmlnaHRD
bHVzdGVyQm90dG9tKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGhpZEJ1dHRv
bjNGdWxsVXNhZ2U6CisgICAgICAgICAgICBtYXBCdXR0b24oZWxlbWVudCwgR2FtZXBhZEJ1dHRv
blJvbGU6OlJpZ2h0Q2x1c3RlclJpZ2h0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIGhpZEJ1dHRvbjRGdWxsVXNhZ2U6CisgICAgICAgICAgICBtYXBCdXR0b24oZWxlbWVudCwg
R2FtZXBhZEJ1dHRvblJvbGU6OlJpZ2h0Q2x1c3RlclRvcCk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBoaWRCdXR0b241RnVsbFVzYWdlOgorICAgICAgICAgICAgbWFwQnV0dG9u
KGVsZW1lbnQsIEdhbWVwYWRCdXR0b25Sb2xlOjpMZWZ0U2hvdWxkZXJGcm9udCk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBoaWRCdXR0b242RnVsbFVzYWdlOgorICAgICAgICAg
ICAgbWFwQnV0dG9uKGVsZW1lbnQsIEdhbWVwYWRCdXR0b25Sb2xlOjpSaWdodFNob3VsZGVyRnJv
bnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgaGlkQnV0dG9uN0Z1bGxVc2Fn
ZToKKyAgICAgICAgICAgIG1hcEJ1dHRvbihlbGVtZW50LCBHYW1lcGFkQnV0dG9uUm9sZTo6TGVm
dFNob3VsZGVyQmFjayk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBoaWRCdXR0
b244RnVsbFVzYWdlOgorICAgICAgICAgICAgbWFwQnV0dG9uKGVsZW1lbnQsIEdhbWVwYWRCdXR0
b25Sb2xlOjpSaWdodFNob3VsZGVyQmFjayk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBoaWRCdXR0b245RnVsbFVzYWdlOgorICAgICAgICAgICAgbWFwQnV0dG9uKGVsZW1lbnQs
IEdhbWVwYWRCdXR0b25Sb2xlOjpDZW50ZXJDbHVzdGVyTGVmdCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBoaWRCdXR0b24xMEZ1bGxVc2FnZToKKyAgICAgICAgICAgIG1hcEJ1
dHRvbihlbGVtZW50LCBHYW1lcGFkQnV0dG9uUm9sZTo6Q2VudGVyQ2x1c3RlclJpZ2h0KTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGhpZEJ1dHRvbjExRnVsbFVzYWdlOgorICAg
ICAgICAgICAgbWFwQnV0dG9uKGVsZW1lbnQsIEdhbWVwYWRCdXR0b25Sb2xlOjpMZWZ0U3RpY2sp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgaGlkQnV0dG9uMTJGdWxsVXNhZ2U6
CisgICAgICAgICAgICBtYXBCdXR0b24oZWxlbWVudCwgR2FtZXBhZEJ1dHRvblJvbGU6OlJpZ2h0
U3RpY2spOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKEdBTUVQQUQpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0xvZ2l0ZWNoR2FtZXBhZC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvTG9naXRlY2hHYW1lcGFkLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTczMjJkNjM1NGZmNTZmYzBmN2JmY2FhN2E0NzIxNjg3Y2E3MmQzMgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFjL0xvZ2l0ZWNo
R2FtZXBhZC5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShHQU1FUEFEKSAmJiBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlICJISURHYW1l
cGFkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTG9naXRlY2hHYW1lcGFkIGZp
bmFsIDogcHVibGljIEhJREdhbWVwYWQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIExvZ2l0ZWNoR2FtZXBhZChISUREZXZpY2UmJiwgdW5zaWduZWQgaW5kZXgp
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEdBTUVQ
QUQpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9ISURFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9ISURFbGVt
ZW50LmNwcAppbmRleCAxOGU0MTMzNDIxNmNkMmJiOTM4MDhkYjMxMzE5MDgxMTc0NDVjNDRjLi4y
ZjhmNDFmOTdjZWFmYjM3N2JkYTIwMDM2YmFhMDU2OTRmODMzNWM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSElERWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0hJREVsZW1lbnQuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBQ
TEFURk9STShNQUMpCiAKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8SU9LaXQvaGlk
L0lPSElERWxlbWVudC5oPgogI2luY2x1ZGUgPElPS2l0L2hpZC9JT0hJRFZhbHVlLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCBlNzkwYTAwMTRiM2IzNGI4N2NhMjFiYjE1YmQ2NDk4MDBlYjFlNzZiLi5h
Zjk3NzE3MzhiZTVjZmM1ZmRlNWNlNGQ5NGM1YTI1MmRhZTYzNzhjIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAt
MDgtMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFNwZWNp
YWwgSElEIG1hcHBpbmcgZm9yIHRoZSBMb2dpdGVjaCBGMzEwL0Y3MTAgY29udHJvbGxlcnMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUwNTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9ISURHYW1lcGFkcy5tbToKKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvbWFjL0dhbWVwYWRNYXBwaW5ncy9Mb2dpdGVjaEYzMTAubW06IEFkZGVkLgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6cHVibGlzaFJlcG9ydENhbGxiYWNrKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlZpcnR1YWxHYW1lcGFkOjpsb2dpdGVjaEYzMTBNYXBwaW5nKToKKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvbWFjL0dhbWVwYWRNYXBwaW5ncy9Mb2dpdGVjaEY3MTAubW06
IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6cHVibGlzaFJlcG9ydENhbGxiYWNrKToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlZpcnR1YWxHYW1lcGFkOjpsb2dpdGVjaEY3MTBNYXBw
aW5nKToKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvbWFjL1ZpcnR1YWxHYW1lcGFkLmg6CisK
IDIwMjAtMDgtMDEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAg
IFNwZWNpYWwgSElEIG1hcHBpbmcgZm9yIHRoZSBHb29nbGUgU3RhZGlhIGNvbnRyb2xsZXIKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjEyOTAxNTc1ZWM1YTFiMWFkMzViNWRlZDYyZmI2YjE2
NzQzZjA0ZC4uNjdjYTk5NjllMmYyM2Q3ZDE3ZGUxYjU1NTU2YjdmYjVmYmFmMDFjYSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTI3OCw2ICsyNzgsOCBAQAogCQk1MTA0Nzc3ODFEMjk5MjNC
MDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3ZlcnkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTA0Nzc3NTFEMjk4RTAzMDA5NzQ3RUIgLyogSURCRGVs
ZXRlUmVjb3ZlcnkubW0gKi87IH07CiAJCTUxMEE5MUY4MjREMzYyMjEwMEJGRDg5QyAvKiBTb255
RHVhbFNob2NrMy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMEE5MUY3MjREMzYyMTkwMEJGRDg5QyAvKiBTb255RHVhbFNob2NrMy5tbSAqLzsgfTsK
IAkJNTEwQTkyMTQyNEQ2MTVCNDAwQkZEODlDIC8qIEdvb2dsZVN0YWRpYS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEE5MjEzMjRENjBBM0UwMEJG
RDg5QyAvKiBHb29nbGVTdGFkaWEubW0gKi87IH07CisJCTUxMEE5MjBBMjRENTA0ODkwMEJGRDg5
QyAvKiBMb2dpdGVjaEYzMTAubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTBBOTIwOTI0RDUwNDgzMDBCRkQ4OUMgLyogTG9naXRlY2hGMzEwLm1tICov
OyB9OworCQk1MTBBOTIwQzI0RDUyNzU1MDBCRkQ4OUMgLyogTG9naXRlY2hGNzEwLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwQTkyMEIyNEQ1Mjc1
MTAwQkZEODlDIC8qIExvZ2l0ZWNoRjcxMC5tbSAqLzsgfTsKIAkJNTExMEZDRjExRTAxQ0Q2NDAw
NkY4RDBCIC8qIElEQkluZGV4VXBncmFkZVRvVjIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEwRkNGMDFFMDFDRDUzMDA2RjhEMEIg
LyogSURCSW5kZXhVcGdyYWRlVG9WMi5odG1sICovOyB9OwogCQk1MTEwRkNGNjFFMDFDRDgzMDA2
RjhEMEIgLyogSW5kZXhVcGdyYWRlLnNxbGl0ZTMgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMEZDRjMxRTAxQ0Q3NzAwNkY4RDBCIC8qIElu
ZGV4VXBncmFkZS5zcWxpdGUzICovOyB9OwogCQk1MTEwRkNGOTFFMDFDRDhBMDA2RjhEMEIgLyog
SW5kZXhVcGdyYWRlLmJsb2IgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTExMEZDRjIxRTAxQ0Q3NzAwNkY4RDBCIC8qIEluZGV4VXBncmFkZS5i
bG9iICovOyB9OwpAQCAtMTk3NSw2ICsxOTc3LDggQEAKIAkJNTEwNDc3NzYxRDI5OEU1NzAwOTc0
N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSBJREJEZWxldGVSZWNvdmVyeS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTBBOTFGNzI0RDM2MjE5MDBCRkQ4OUMgLyogU29ueUR1YWxTaG9jazMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTb255RHVhbFNob2NrMy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwQTkyMTMyNEQ2MEEzRTAwQkZEODlDIC8qIEdvb2dsZVN0
YWRpYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdvb2dsZVN0
YWRpYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwQTkyMDkyNEQ1MDQ4MzAw
QkZEODlDIC8qIExvZ2l0ZWNoRjMxMC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IExvZ2l0ZWNoRjMxMC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTEwQTkyMEIyNEQ1Mjc1MTAwQkZEODlDIC8qIExvZ2l0ZWNoRjcxMC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvZ2l0ZWNoRjcxMC5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTExMEZDRUYxRTAxQ0JBQTAwNkY4RDBCIC8qIElEQkluZGV4VXBn
cmFkZVRvVjIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJREJJ
bmRleFVwZ3JhZGVUb1YyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTEwRkNG
MDFFMDFDRDUzMDA2RjhEMEIgLyogSURCSW5kZXhVcGdyYWRlVG9WMi5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gSURCSW5kZXhVcGdyYWRlVG9WMi5odG1sOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTEwRkNGMjFFMDFDRDc3MDA2RjhEMEIgLyogSW5kZXhVcGdyYWRl
LmJsb2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSW5kZXhVcGdyYWRlLmJsb2I7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDcxLDYgKzM0NzUsOCBAQAogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1MTBBOTIxMzI0RDYwQTNFMDBCRkQ4OUMgLyogR29v
Z2xlU3RhZGlhLm1tICovLAorCQkJCTUxMEE5MjA5MjRENTA0ODMwMEJGRDg5QyAvKiBMb2dpdGVj
aEYzMTAubW0gKi8sCisJCQkJNTEwQTkyMEIyNEQ1Mjc1MTAwQkZEODlDIC8qIExvZ2l0ZWNoRjcx
MC5tbSAqLywKIAkJCQk1MUVCMTI2MDI0Q0E2QjVGMDAwQ0IwMzAgLyogTWljcm9zb2Z0WGJveE9u
ZS5tbSAqLywKIAkJCQk1MUVCMTI1RTI0Q0E2QjVGMDAwQ0IwMzAgLyogU2hlbnpoZW5Mb25nc2hl
bmd3ZWlUZWNobm9sb2d5R2FtZXBhZC5tbSAqLywKIAkJCQk1MTBBOTFGNzI0RDM2MjE5MDBCRkQ4
OUMgLyogU29ueUR1YWxTaG9jazMubW0gKi8sCkBAIC01MTg0LDYgKzUxOTAsOCBAQAogCQkJCTdB
NkEyQzcwMURDQ0ZBOEMwMEMwRDA4NSAvKiBMb2NhbFN0b3JhZ2VRdWlya1Rlc3QubW0gaW4gU291
cmNlcyAqLywKIAkJCQk2QkY0QTY4MzIzOUVENENEMDBFMkY0NUIgLyogTG9nZ2VkSW5TdGF0dXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc2RTUwN0YxRjQ1MTNENjAwNkU5RjVBIC8qIExvZ2dp
bmcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTEwQTkyMEEyNEQ1MDQ4OTAwQkZEODlDIC8qIExv
Z2l0ZWNoRjMxMC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUxMEE5MjBDMjRENTI3NTUwMEJGRDg5
QyAvKiBMb2dpdGVjaEY3MTAubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRTE4NjY0OTFGNzJFOEYx
MDBBMENBQjYgLyogTWFya2VkVGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwN0NDN0RGRTIy
NjYzMzA5MDBFMzkxODEgLyogTWVkaWFCdWZmZXJpbmdQb2xpY3kubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDRDAzNzBFMzI0QTQ0RDk2MDBCQTNDQUUgLyogTWVkaWFMb2FkaW5nLm1tIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9ISURHYW1l
cGFkcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0hJREdhbWVwYWRzLm1tCmlu
ZGV4IDIyN2NlMTIzYTIwODI1MTcxZjUzZmUyZGQ3ZDcyNWFlMGQwYTFlNTIuLjQ2ZjU1YWJjMDI5
MzYzOTA2NTQyMmM0MGZhZTNiZmQ2NTFhOGIzNzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL0hJREdhbWVwYWRzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL0hJREdhbWVwYWRzLm1tCkBAIC00ODksNiArNDg5LDg0IEBAIFRFU1QoR2FtZXBh
ZCwgU3RhZGlhKQogICAgIGRpZFJlY2VpdmVNZXNzYWdlID0gdHJ1ZTsKIH0KIAorVEVTVChHYW1l
cGFkLCBMb2dpdGVjaEJhc2ljKQoreworICAgIGF1dG8ga2V5V2luZG93U3dpenpsZXIgPSBtYWtl
VW5pcXVlPEluc3RhbmNlTWV0aG9kU3dpenpsZXI+KFtOU0FwcGxpY2F0aW9uIGNsYXNzXSwgQHNl
bGVjdG9yKGtleVdpbmRvdyksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihnZXRLZXlXaW5kb3dGb3JU
ZXN0aW5nKSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBh
ZG9wdE5TKFtbR2FtZXBhZE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25m
aWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6
bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAImdhbWVwYWQiXTsKKworICAgIGF1dG8gc2NoZW1l
SGFuZGxlciA9IGFkb3B0TlMoW1tUZXN0VVJMU2NoZW1lSGFuZGxlciBhbGxvY10gaW5pdF0pOwor
ICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6c2NoZW1lSGFuZGxlci5nZXQo
KSBmb3JVUkxTY2hlbWU6QCJnYW1lcGFkIl07CisKKyAgICBbc2NoZW1lSGFuZGxlciBzZXRTdGFy
dFVSTFNjaGVtZVRhc2tIYW5kbGVyOl4oV0tXZWJWaWV3ICosIGlkPFdLVVJMU2NoZW1lVGFzaz4g
dGFzaykgeworICAgICAgICBhdXRvIHJlc3BvbnNlID0gYWRvcHROUyhbW05TVVJMUmVzcG9uc2Ug
YWxsb2NdIGluaXRXaXRoVVJMOnRhc2sucmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwi
IGV4cGVjdGVkQ29udGVudExlbmd0aDowIHRleHRFbmNvZGluZ05hbWU6bmlsXSk7CisgICAgICAg
IFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZS5nZXQoKV07CisgICAgICAgIFt0YXNr
IGRpZFJlY2VpdmVEYXRhOltOU0RhdGEgZGF0YVdpdGhCeXRlczptYWluQnl0ZXMgbGVuZ3RoOnN0
cmxlbihtYWluQnl0ZXMpXV07CisgICAgICAgIFt0YXNrIGRpZEZpbmlzaF07CisgICAgfV07CisK
KyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb24uZ2V0KCldKTsKKyAgICBrZXlXaW5kb3dGb3JUZXN0aW5nID0gW3dlYlZpZXcgd2luZG93
XTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImdhbWVwYWQ6Ly9ob3N0L21haW4u
aHRtbCJdXV07CisKKyAgICBbW3dlYlZpZXcgd2luZG93XSBtYWtlRmlyc3RSZXNwb25kZXI6d2Vi
Vmlldy5nZXQoKV07CisKKyAgICAvLyBSZXNpZ25pbmcvcmVpbnN0YXRpbmcgdGhlIGtleSB3aW5k
b3cgc3RhdGUgdHJpZ2dlcnMgdGhlICJrZXkgd2luZG93IGRpZCBjaGFuZ2UiIG5vdGlmaWNhdGlv
biB0aGF0IFdLV2ViVmlldyBjdXJyZW50bHkKKyAgICAvLyBuZWVkcyB0byBjb252aW5jZSBpdCB0
byBtb25pdG9yIGdhbWVwYWQgZGV2aWNlcworICAgIFtbd2ViVmlldyB3aW5kb3ddIHJlc2lnbktl
eVdpbmRvd107CisgICAgW1t3ZWJWaWV3IHdpbmRvd10gbWFrZUtleVdpbmRvd107CisKKyAgICAv
LyBDb25uZWN0IGEgZ2FtZXBhZCBhbmQgbWFrZSBpdCB2aXNpYmxlIHRvIHRoZSBwYWdlCisgICAg
YXV0byBnYW1lcGFkMSA9IG1ha2VVbmlxdWU8VmlydHVhbEdhbWVwYWQ+KFZpcnR1YWxHYW1lcGFk
Ojpsb2dpdGVjaEYzMTBNYXBwaW5nKCkpOworICAgIGF1dG8gZ2FtZXBhZDIgPSBtYWtlVW5pcXVl
PFZpcnR1YWxHYW1lcGFkPihWaXJ0dWFsR2FtZXBhZDo6bG9naXRlY2hGNzEwTWFwcGluZygpKTsK
KyAgICB3aGlsZSAoW3dlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCBfbnVt
YmVyT2ZDb25uZWN0ZWRHYW1lcGFkc0ZvclRlc3RpbmddICE9IDJ1KQorICAgICAgICBVdGlsOjpz
bGVlcCgwLjAxKTsKKworICAgIEVYUEVDVF9FUShbd2ViVmlldy5nZXQoKS5jb25maWd1cmF0aW9u
LnByb2Nlc3NQb29sIF9udW1iZXJPZkNvbm5lY3RlZEhJREdhbWVwYWRzRm9yVGVzdGluZ10sIDJ1
KTsKKyAgICBFWFBFQ1RfRVEoW3dlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9v
bCBfbnVtYmVyT2ZDb25uZWN0ZWRHYW1lQ29udHJvbGxlckZyYW1ld29ya0dhbWVwYWRzRm9yVGVz
dGluZ10sIDB1KTsKKworICAgIGdhbWVwYWQxLT5zZXRCdXR0b25WYWx1ZSgwLCAxLjApOworICAg
IGdhbWVwYWQyLT5zZXRCdXR0b25WYWx1ZSgwLCAxLjApOworICAgIGdhbWVwYWQxLT5wdWJsaXNo
UmVwb3J0KCk7CisgICAgZ2FtZXBhZDItPnB1Ymxpc2hSZXBvcnQoKTsKKworICAgIC8vIFRoZSBw
YWdlIG1lc3NhZ2VzIGJhY2sgb25jZSBmb3IgZWFjaCBjb250cm9sbGVyCisgICAgd2hpbGUgKG1l
c3NhZ2VIYW5kbGVyLmdldCgpLm1lc3NhZ2VzLnNpemUoKSA8IDIpIHsKKyAgICAgICAgZGlkUmVj
ZWl2ZU1lc3NhZ2UgPSBmYWxzZTsKKyAgICAgICAgVXRpbDo6cnVuKCZkaWRSZWNlaXZlTWVzc2Fn
ZSk7CisgICAgfQorCisgICAgRVhQRUNUX0VRKG1lc3NhZ2VIYW5kbGVyLmdldCgpLm1lc3NhZ2Vz
LnNpemUoKSwgMnUpOworICAgIEVYUEVDVF9UUlVFKFttZXNzYWdlSGFuZGxlci5nZXQoKS5tZXNz
YWdlc1swXSBpc0VxdWFsVG9TdHJpbmc6QCJcIjQ2ZC1jMjE2LVZpcnR1YWwgTG9naXRlY2ggRjMx
MFwiIl0pOworCisgICAgTlNTZXQgKmV4cGVjdGVkR2FtZXBhZE5hbWVzID0gW05TU2V0IHNldFdp
dGhBcnJheTpAWworICAgICAgICBAIlwiNDZkLWMyMTYtVmlydHVhbCBMb2dpdGVjaCBGMzEwXCIi
LAorICAgICAgICBAIlwiNDZkLWMyMTktVmlydHVhbCBMb2dpdGVjaCBGNzEwXCIiXV07CisKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDI7ICsraSkKKyAgICAgICAgRVhQRUNUX1RSVUUoW2V4
cGVjdGVkR2FtZXBhZE5hbWVzIGNvbnRhaW5zT2JqZWN0Om1lc3NhZ2VIYW5kbGVyLmdldCgpLm1l
c3NhZ2VzW2ldLmdldCgpXSk7CisKKyAgICBib29sIGRvbmUgPSBmYWxzZTsKKyAgICBhdXRvIHJl
c3VsdEJsb2NrID0gWyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVY
UEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3Jlc3VsdFtAImdhbWVwYWRD
b3VudCJdIGlzRXF1YWxUb051bWJlcjpAKDIpXSk7CisgICAgICAgIEVYUEVDVF9FUSgoKE5TQXJy
YXkgKilyZXN1bHRbQCJnYW1lcGFkQnV0dG9ucyJdWzBdKS5jb3VudCwgMTZ1KTsKKyAgICAgICAg
RVhQRUNUX0VRKCgoTlNBcnJheSAqKXJlc3VsdFtAImdhbWVwYWRCdXR0b25zIl1bMV0pLmNvdW50
LCAxNnUpOworICAgICAgICBFWFBFQ1RfRVEoKChOU0FycmF5ICopcmVzdWx0W0AiZ2FtZXBhZEF4
ZXMiXVswXSkuY291bnQsIDR1KTsKKyAgICAgICAgRVhQRUNUX0VRKCgoTlNBcnJheSAqKXJlc3Vs
dFtAImdhbWVwYWRBeGVzIl1bMV0pLmNvdW50LCA0dSk7CisKKyAgICAgICAgZG9uZSA9IHRydWU7
CisgICAgfTsKKworICAgIFt3ZWJWaWV3IGNhbGxBc3luY0phdmFTY3JpcHQ6QChwb2xsR2FtZXBh
ZFN0YXRlRnVuY3Rpb24pIGFyZ3VtZW50czpuaWwgaW5GcmFtZTpuaWwgaW5Db250ZW50V29ybGQ6
V0tDb250ZW50V29ybGQucGFnZVdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOnJlc3VsdEJsb2NrXTsK
KworICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgZGlkUmVjZWl2ZU1lc3NhZ2UgPSB0cnVlOwor
fQorCisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKIAogI2VuZGlmIC8vIEhBVkUoSElE
X0ZSQU1FV09SSykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvbWFjL0dhbWVwYWRNYXBwaW5ncy9Mb2dpdGVjaEYzMTAubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL21hYy9HYW1lcGFkTWFwcGluZ3MvTG9naXRlY2hGMzEwLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk3N2YyZmViYmVhOGEzMjU5NDcwMTg1NGVlMzJiYjQ0ZGQ5NGU2YWQKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9HYW1lcGFkTWFwcGluZ3MvTG9naXRl
Y2hGMzEwLm1tCkBAIC0wLDAgKzEsMTQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJWaXJ0dWFsR2FtZXBhZC5oIgorCisjaWYgSEFWRShISURfRlJBTUVXT1JL
KSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxISUQvSElEVXNlckRldmlj
ZS5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK2NvbnN0IHVpbnQ4X3QgRjMxMERl
c2NyaXB0b3JbXSA9IHsKKyAgICAweDA1LCAweDAxLCAgICAgICAgIC8vIFVzYWdlIFBhZ2UgKEdl
bmVyaWMgRGVza3RvcCBDdHJscykKKyAgICAweDA5LCAweDA0LCAgICAgICAgIC8vIFVzYWdlIChK
b3lzdGljaykKKyAgICAweEExLCAweDAxLCAgICAgICAgIC8vIENvbGxlY3Rpb24gKEFwcGxpY2F0
aW9uKQorICAgIDB4QTEsIDB4MDIsICAgICAgICAgLy8gICBDb2xsZWN0aW9uIChMb2dpY2FsKQor
ICAgIDB4NzUsIDB4MDgsICAgICAgICAgLy8gICAgIFJlcG9ydCBTaXplICg4KQorICAgIDB4OTUs
IDB4MDQsICAgICAgICAgLy8gICAgIFJlcG9ydCBDb3VudCAoNCkKKyAgICAweDE1LCAweDAwLCAg
ICAgICAgIC8vICAgICBMb2dpY2FsIE1pbmltdW0gKDApCisgICAgMHgyNiwgMHhGRiwgMHgwMCwg
ICAvLyAgICAgTG9naWNhbCBNYXhpbXVtICgyNTUpCisgICAgMHgzNSwgMHgwMCwgICAgICAgICAv
LyAgICAgUGh5c2ljYWwgTWluaW11bSAoMCkKKyAgICAweDQ2LCAweEZGLCAweDAwLCAgIC8vICAg
ICBQaHlzaWNhbCBNYXhpbXVtICgyNTUpCisgICAgMHgwOSwgMHgzMCwgICAgICAgICAvLyAgICAg
VXNhZ2UgKFgpCisgICAgMHgwOSwgMHgzMSwgICAgICAgICAvLyAgICAgVXNhZ2UgKFkpCisgICAg
MHgwOSwgMHgzMiwgICAgICAgICAvLyAgICAgVXNhZ2UgKFopCisgICAgMHgwOSwgMHgzNSwgICAg
ICAgICAvLyAgICAgVXNhZ2UgKFJ6KQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICg0
KSBheGVzLCAxIGJ5dGUgZWFjaC4gVG90YWwgLSAoNCkgYnl0ZXMKKyAgICAweDgxLCAweDAyLCAg
ICAgICAgIC8vICAgICBJbnB1dCAoRGF0YSxWYXIsQWJzLE5vIFdyYXAsTGluZWFyLFByZWZlcnJl
ZCBTdGF0ZSxObyBOdWxsIFBvc2l0aW9uKQorICAgIDB4NzUsIDB4MDQsICAgICAgICAgLy8gICAg
IFJlcG9ydCBTaXplICg0KQorICAgIDB4OTUsIDB4MDEsICAgICAgICAgLy8gICAgIFJlcG9ydCBD
b3VudCAoMSkKKyAgICAweDI1LCAweDA3LCAgICAgICAgIC8vICAgICBMb2dpY2FsIE1heGltdW0g
KDcpCisgICAgMHg0NiwgMHgzQiwgMHgwMSwgICAvLyAgICAgUGh5c2ljYWwgTWF4aW11bSAoMzE1
KQorICAgIDB4NjUsIDB4MTQsICAgICAgICAgLy8gICAgIFVuaXQgKFN5c3RlbTogRW5nbGlzaCBS
b3RhdGlvbiwgTGVuZ3RoOiBDZW50aW1ldGVyKQorICAgIDB4MDksIDB4MzksICAgICAgICAgLy8g
ICAgIFVzYWdlIChIYXQgc3dpdGNoKQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICgx
KSBIYXQgc3dpdGNoLCA0IGJpdHMuIFRvdGFsIC0gKDQpIGJ5dGVzICg0KSBiaXRzCisgICAgMHg4
MSwgMHg0MiwgICAgICAgICAvLyAgICAgSW5wdXQgKERhdGEsVmFyLEFicyxObyBXcmFwLExpbmVh
cixQcmVmZXJyZWQgU3RhdGUsTnVsbCBTdGF0ZSkKKyAgICAweDY1LCAweDAwLCAgICAgICAgIC8v
ICAgICBVbml0IChOb25lKQorICAgIDB4NzUsIDB4MDEsICAgICAgICAgLy8gICAgIFJlcG9ydCBT
aXplICgxKQorICAgIDB4OTUsIDB4MEMsICAgICAgICAgLy8gICAgIFJlcG9ydCBDb3VudCAoMTIp
CisgICAgMHgyNSwgMHgwMSwgICAgICAgICAvLyAgICAgTG9naWNhbCBNYXhpbXVtICgxKQorICAg
IDB4NDUsIDB4MDEsICAgICAgICAgLy8gICAgIFBoeXNpY2FsIE1heGltdW0gKDEpCisgICAgMHgw
NSwgMHgwOSwgICAgICAgICAvLyAgICAgVXNhZ2UgUGFnZSAoQnV0dG9uKQorICAgIDB4MTksIDB4
MDEsICAgICAgICAgLy8gICAgIFVzYWdlIE1pbmltdW0gKDB4MDEpCisgICAgMHgyOSwgMHgwQywg
ICAgICAgICAvLyAgICAgVXNhZ2UgTWF4aW11bSAoMHgwQykKKyAgICAgICAgICAgICAgICAgICAg
ICAgIC8vICAgICAoMTIpIEJ1dHRvbiBiaXRzLiBUb3RhbCAtICg2KSBieXRlcworICAgIDB4ODEs
IDB4MDIsICAgICAgICAgLy8gICAgIElucHV0IChEYXRhLFZhcixBYnMsTm8gV3JhcCxMaW5lYXIs
UHJlZmVycmVkIFN0YXRlLE5vIE51bGwgUG9zaXRpb24pCisgICAgMHgwNiwgMHgwMCwgMHhGRiwg
ICAvLyAgICAgVXNhZ2UgUGFnZSAoVmVuZG9yIERlZmluZWQgMHhGRjAwKQorICAgIDB4NzUsIDB4
MDEsICAgICAgICAgLy8gICAgIFJlcG9ydCBTaXplICgxKQorICAgIDB4OTUsIDB4MTAsICAgICAg
ICAgLy8gICAgIFJlcG9ydCBDb3VudCAoMTYpCisgICAgMHgyNSwgMHgwMSwgICAgICAgICAvLyAg
ICAgTG9naWNhbCBNYXhpbXVtICgxKQorICAgIDB4NDUsIDB4MDEsICAgICAgICAgLy8gICAgIFBo
eXNpY2FsIE1heGltdW0gKDEpCisgICAgMHgwOSwgMHgwMSwgICAgICAgICAvLyAgICAgVXNhZ2Ug
KDB4MDEpCisgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgKDIpIHVua25vd24gYnl0ZXMu
IFRvdGFsIC0gKDgpIGJ5dGVzCisgICAgMHg4MSwgMHgwMiwgICAgICAgICAvLyAgICAgSW5wdXQg
KERhdGEsVmFyLEFicyxObyBXcmFwLExpbmVhcixQcmVmZXJyZWQgU3RhdGUsTm8gTnVsbCBQb3Np
dGlvbikKKyAgICAweEMwLCAgICAgICAgICAgICAgIC8vICAgRW5kIENvbGxlY3Rpb24KKyAgICAw
eEExLCAweDAyLCAgICAgICAgIC8vICAgQ29sbGVjdGlvbiAoTG9naWNhbCkKKyAgICAweDc1LCAw
eDA4LCAgICAgICAgIC8vICAgICBSZXBvcnQgU2l6ZSAoOCkKKyAgICAweDk1LCAweDA3LCAgICAg
ICAgIC8vICAgICBSZXBvcnQgQ291bnQgKDcpCisgICAgMHg0NiwgMHhGRiwgMHgwMCwgICAvLyAg
ICAgUGh5c2ljYWwgTWF4aW11bSAoMjU1KQorICAgIDB4MjYsIDB4RkYsIDB4MDAsICAgLy8gICAg
IExvZ2ljYWwgTWF4aW11bSAoMjU1KQorICAgIDB4MDksIDB4MDIsICAgICAgICAgLy8gICAgIFVz
YWdlICgweDAyKQorICAgIDB4OTEsIDB4MDIsICAgICAgICAgLy8gICAgIE91dHB1dCAoRGF0YSxW
YXIsQWJzLE5vIFdyYXAsTGluZWFyLFByZWZlcnJlZCBTdGF0ZSxObyBOdWxsIFBvc2l0aW9uLE5v
bi12b2xhdGlsZSkKKyAgICAweEMwLCAgICAgICAgICAgICAgIC8vICAgRW5kIENvbGxlY3Rpb24K
KyAgICAweEMwLCAgICAgICAgICAgICAgIC8vIEVuZCBDb2xsZWN0aW9uCit9OworCitjb25zdCBz
aXplX3QgRjMxMEJ1dHRvbkNvdW50ID0gMTM7Citjb25zdCBzaXplX3QgRjMxMEF4aXNDb3VudCA9
IDQ7Citjb25zdCBzaXplX3QgRjMxMFJlcG9ydFNpemUgPSA4OworY29uc3QgY2hhciogRjMxME5h
bWUgPSAiVmlydHVhbCBMb2dpdGVjaCBGMzEwIjsKKworLy8gUmVwb3J0IGxheW91dDoKKy8vIHxY
fCB8WXwgfFp8IHxSenwgfGIxLWI0LCBoYXRzd2l0Y2h8IHxiNS1iMTJ8IHwweDAwfCB8MHhmZnwK
Kworc3RhdGljIHZvaWQgcHVibGlzaFJlcG9ydENhbGxiYWNrKFZlY3RvcjxmbG9hdD4mIGJ1dHRv
blZhbHVlcywgVmVjdG9yPGZsb2F0PiYgYXhpc1ZhbHVlcywgSElEVXNlckRldmljZSAqdXNlckRl
dmljZSkKK3sKKyAgICB1aW50OF90IHJlcG9ydERhdGFbRjMxMFJlcG9ydFNpemVdOworCisgICAg
Ly8gRmlyc3QgNCBieXRlcyBhcmUgdGhlIGF4aXMgdmFsdWVzCisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCA0OyArK2kpCisgICAgICAgIHJlcG9ydERhdGFbaV0gPSAodWludDhfdCkoKGludDhf
dCkoYXhpc1ZhbHVlc1tpXSAqIDEyNykpOworCisgICAgLy8gTmV4dCBieXRlIGlzIHRoZSBoYXRz
d2l0Y2ggYW5kIGZpcnN0IDQgYnV0dG9ucworICAgIC8vIEZJWE1FOiBObyBBUEkgdGVzdCBjb25m
aWd1cmFiaWxpdHkgb2YgdGhlIGhhdHN3aXRjaCB5ZXQKKyAgICB1aW50OF90IGJ1dHRvbkJ5dGUg
PSAweDA4OworICAgIGxvbmcgYnV0dG9uQml0OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
NDsgKytpKSB7CisgICAgICAgIGJ1dHRvbkJpdCA9IGxyb3VuZChidXR0b25WYWx1ZXNbaV0pOwor
ICAgICAgICBidXR0b25CeXRlIHw9IGJ1dHRvbkJpdCA8PCAoaSArIDQpOworICAgIH0KKyAgICBy
ZXBvcnREYXRhWzRdID0gYnV0dG9uQnl0ZTsKKworICAgIC8vIE5leHQgYnl0ZSBpcyBidXR0b25z
IDUtMTIKKyAgICBidXR0b25CeXRlID0gMHgwMDsKKyAgICBmb3IgKHNpemVfdCBpID0gNDsgaSA8
IDEyOyArK2kpIHsKKyAgICAgICAgYnV0dG9uQml0ID0gbHJvdW5kKGJ1dHRvblZhbHVlc1tpXSk7
CisgICAgICAgIGJ1dHRvbkJ5dGUgfD0gYnV0dG9uQml0IDw8IChpIC0gNCk7CisgICAgfQorICAg
IHJlcG9ydERhdGFbNV0gPSBidXR0b25CeXRlOworCisgICAgLy8gRmluYWwgMiBieXRlcyBhcmUg
Y29uc3RhbnQKKyAgICByZXBvcnREYXRhWzZdID0gMHgwMDsKKyAgICByZXBvcnREYXRhWzddID0g
MHhmZjsKKworICAgIGF1dG8gbnNSZXBvcnREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10g
aW5pdFdpdGhCeXRlczpyZXBvcnREYXRhIGxlbmd0aDpGMzEwUmVwb3J0U2l6ZV0pOworICAgIFt1
c2VyRGV2aWNlIGhhbmRsZVJlcG9ydDpuc1JlcG9ydERhdGEuZ2V0KCkgZXJyb3I6bmlsXTsKK30K
KworR2FtZXBhZE1hcHBpbmcgVmlydHVhbEdhbWVwYWQ6OmxvZ2l0ZWNoRjMxME1hcHBpbmcoKQor
eworICAgIHJldHVybiB7CisgICAgICAgIEYzMTBEZXNjcmlwdG9yLAorICAgICAgICBzaXplb2Yo
RjMxMERlc2NyaXB0b3IpLAorICAgICAgICBGMzEwTmFtZSwKKyAgICAgICAgSElEVmVuZG9ySUQ6
OkxvZ2l0ZWNoLAorICAgICAgICBISURQcm9kdWN0SUQ6OkYzMTAsCisgICAgICAgIEYzMTBCdXR0
b25Db3VudCwKKyAgICAgICAgRjMxMEF4aXNDb3VudCwKKyAgICAgICAgcHVibGlzaFJlcG9ydENh
bGxiYWNrCisgICAgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5k
aWYgLy8gSEFWRShISURfRlJBTUVXT1JLKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvR2FtZXBhZE1hcHBpbmdzL0xvZ2l0ZWNo
RjcxMC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL0dhbWVwYWRNYXBwaW5ncy9Mb2dpdGVj
aEY3MTAubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjU2ZWU2NGQxODA5M2RmOTdmNTMwMmFkMGIwZGI0NDdlMDE4
ZGIyOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL0dhbWVwYWRN
YXBwaW5ncy9Mb2dpdGVjaEY3MTAubW0KQEAgLTAsMCArMSwxNTkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlZpcnR1YWxHYW1lcGFkLmgiCisKKyNpZiBIQVZF
KEhJRF9GUkFNRVdPUkspICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEhJ
RC9ISURVc2VyRGV2aWNlLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworY29uc3Qg
dWludDhfdCBGNzEwRGVzY3JpcHRvcltdID0geworICAgIDB4MDUsIDB4MDEsICAgICAgICAgLy8g
VXNhZ2UgUGFnZSAoR2VuZXJpYyBEZXNrdG9wIEN0cmxzKQorICAgIDB4MDksIDB4MDUsICAgICAg
ICAgLy8gVXNhZ2UgKEdhbWUgUGFkKQorICAgIDB4QTEsIDB4MDEsICAgICAgICAgLy8gQ29sbGVj
dGlvbiAoQXBwbGljYXRpb24pCisgICAgMHhBMSwgMHgwMiwgICAgICAgICAvLyAgIENvbGxlY3Rp
b24gKExvZ2ljYWwpCisgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgKDEpIEJ5dGUgcmVw
b3J0IElELiBUb3RhbCAtICgxKSBieXRlcworICAgIDB4ODUsIDB4MDEsICAgICAgICAgLy8gICAg
IFJlcG9ydCBJRCAoMSkKKyAgICAweDc1LCAweDA4LCAgICAgICAgIC8vICAgICBSZXBvcnQgU2l6
ZSAoOCkKKyAgICAweDk1LCAweDA0LCAgICAgICAgIC8vICAgICBSZXBvcnQgQ291bnQgKDQpCisg
ICAgMHgxNSwgMHgwMCwgICAgICAgICAvLyAgICAgTG9naWNhbCBNaW5pbXVtICgwKQorICAgIDB4
MjYsIDB4RkYsIDB4MDAsICAgLy8gICAgIExvZ2ljYWwgTWF4aW11bSAoMjU1KQorICAgIDB4MzUs
IDB4MDAsICAgICAgICAgLy8gICAgIFBoeXNpY2FsIE1pbmltdW0gKDApCisgICAgMHg0NiwgMHhG
RiwgMHgwMCwgICAvLyAgICAgUGh5c2ljYWwgTWF4aW11bSAoMjU1KQorICAgIDB4MDksIDB4MzAs
ICAgICAgICAgLy8gICAgIFVzYWdlIChYKQorICAgIDB4MDksIDB4MzEsICAgICAgICAgLy8gICAg
IFVzYWdlIChZKQorICAgIDB4MDksIDB4MzIsICAgICAgICAgLy8gICAgIFVzYWdlIChaKQorICAg
IDB4MDksIDB4MzUsICAgICAgICAgLy8gICAgIFVzYWdlIChSeikKKyAgICAgICAgICAgICAgICAg
ICAgICAgIC8vICAgICAoNCkgYXhlcywgMSBieXRlIGVhY2guIFRvdGFsIC0gKDUpIGJ5dGVzCisg
ICAgMHg4MSwgMHgwMiwgICAgICAgICAvLyAgICAgSW5wdXQgKERhdGEsVmFyLEFicyxObyBXcmFw
LExpbmVhcixQcmVmZXJyZWQgU3RhdGUsTm8gTnVsbCBQb3NpdGlvbikKKyAgICAweDc1LCAweDA0
LCAgICAgICAgIC8vICAgICBSZXBvcnQgU2l6ZSAoNCkKKyAgICAweDk1LCAweDAxLCAgICAgICAg
IC8vICAgICBSZXBvcnQgQ291bnQgKDEpCisgICAgMHgyNSwgMHgwNywgICAgICAgICAvLyAgICAg
TG9naWNhbCBNYXhpbXVtICg3KQorICAgIDB4NDYsIDB4M0IsIDB4MDEsICAgLy8gICAgIFBoeXNp
Y2FsIE1heGltdW0gKDMxNSkKKyAgICAweDY2LCAweDE0LCAweDAwLCAgIC8vICAgICBVbml0IChT
eXN0ZW06IEVuZ2xpc2ggUm90YXRpb24sIExlbmd0aDogQ2VudGltZXRlcikKKyAgICAweDA5LCAw
eDM5LCAgICAgICAgIC8vICAgICBVc2FnZSAoSGF0IHN3aXRjaCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIC8vICAgICAoMSkgSGF0IHN3aXRjaCwgNCBiaXRzLiBUb3RhbCAtICg1KSBieXRlcyAo
NCkgYml0cworICAgIDB4ODEsIDB4NDIsICAgICAgICAgLy8gICAgIElucHV0IChEYXRhLFZhcixB
YnMsTm8gV3JhcCxMaW5lYXIsUHJlZmVycmVkIFN0YXRlLE51bGwgU3RhdGUpCisgICAgMHg2Niwg
MHgwMCwgMHgwMCwgICAvLyAgICAgVW5pdCAoTm9uZSkKKyAgICAweDc1LCAweDAxLCAgICAgICAg
IC8vICAgICBSZXBvcnQgU2l6ZSAoMSkKKyAgICAweDk1LCAweDBDLCAgICAgICAgIC8vICAgICBS
ZXBvcnQgQ291bnQgKDEyKQorICAgIDB4MjUsIDB4MDEsICAgICAgICAgLy8gICAgIExvZ2ljYWwg
TWF4aW11bSAoMSkKKyAgICAweDQ1LCAweDAxLCAgICAgICAgIC8vICAgICBQaHlzaWNhbCBNYXhp
bXVtICgxKQorICAgIDB4MDUsIDB4MDksICAgICAgICAgLy8gICAgIFVzYWdlIFBhZ2UgKEJ1dHRv
bikKKyAgICAweDE5LCAweDAxLCAgICAgICAgIC8vICAgICBVc2FnZSBNaW5pbXVtICgweDAxKQor
ICAgIDB4MjksIDB4MEMsICAgICAgICAgLy8gICAgIFVzYWdlIE1heGltdW0gKDB4MEMpCisgICAg
ICAgICAgICAgICAgICAgICAgICAvLyAgICAgKDEyKSBCdXR0b24gYml0cy4gVG90YWwgLSAoNykg
Ynl0ZXMKKyAgICAweDgxLCAweDAyLCAgICAgICAgIC8vICAgICBJbnB1dCAoRGF0YSxWYXIsQWJz
LE5vIFdyYXAsTGluZWFyLFByZWZlcnJlZCBTdGF0ZSxObyBOdWxsIFBvc2l0aW9uKQorICAgIDB4
OTUsIDB4MDEsICAgICAgICAgLy8gICAgIFJlcG9ydCBDb3VudCAoMSkKKyAgICAweDc1LCAweDA4
LCAgICAgICAgIC8vICAgICBSZXBvcnQgU2l6ZSAoOCkKKyAgICAweDA2LCAweDAwLCAweEZGLCAg
IC8vICAgICBVc2FnZSBQYWdlIChWZW5kb3IgRGVmaW5lZCAweEZGMDApCisgICAgMHgyNiwgMHhG
RiwgMHgwMCwgICAvLyAgICAgTG9naWNhbCBNYXhpbXVtICgyNTUpCisgICAgMHg0NiwgMHhGRiwg
MHgwMCwgICAvLyAgICAgUGh5c2ljYWwgTWF4aW11bSAoMjU1KQorICAgIDB4MDksIDB4MDAsICAg
ICAgICAgLy8gICAgIFVzYWdlICgweDAwKQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAg
ICgxKSB2ZW5kb3Igc3BlY2lmaWMgYnl0ZS4gVG90YWwgLSAoOCkgYnl0ZXMKKyAgICAweDgxLCAw
eDAyLCAgICAgICAgIC8vICAgICBJbnB1dCAoRGF0YSxWYXIsQWJzLE5vIFdyYXAsTGluZWFyLFBy
ZWZlcnJlZCBTdGF0ZSxObyBOdWxsIFBvc2l0aW9uKQorICAgIDB4QzAsICAgICAgICAgICAgICAg
Ly8gICBFbmQgQ29sbGVjdGlvbgorICAgIDB4QTEsIDB4MDIsICAgICAgICAgLy8gICBDb2xsZWN0
aW9uIChMb2dpY2FsKQorICAgIDB4ODUsIDB4MDIsICAgICAgICAgLy8gICAgIFJlcG9ydCBJRCAo
MikKKyAgICAweDk1LCAweDA3LCAgICAgICAgIC8vICAgICBSZXBvcnQgQ291bnQgKDcpCisgICAg
MHg3NSwgMHgwOCwgICAgICAgICAvLyAgICAgUmVwb3J0IFNpemUgKDgpCisgICAgMHgyNiwgMHhG
RiwgMHgwMCwgICAvLyAgICAgTG9naWNhbCBNYXhpbXVtICgyNTUpCisgICAgMHg0NiwgMHhGRiwg
MHgwMCwgICAvLyAgICAgUGh5c2ljYWwgTWF4aW11bSAoMjU1KQorICAgIDB4MDYsIDB4MDAsIDB4
RkYsICAgLy8gICAgIFVzYWdlIFBhZ2UgKFZlbmRvciBEZWZpbmVkIDB4RkYwMCkKKyAgICAweDA5
LCAweDAzLCAgICAgICAgIC8vICAgICBVc2FnZSAoMHgwMykKKyAgICAweDgxLCAweDAyLCAgICAg
ICAgIC8vICAgICBJbnB1dCAoRGF0YSxWYXIsQWJzLE5vIFdyYXAsTGluZWFyLFByZWZlcnJlZCBT
dGF0ZSxObyBOdWxsIFBvc2l0aW9uKQorICAgIDB4QzAsICAgICAgICAgICAgICAgLy8gICBFbmQg
Q29sbGVjdGlvbgorICAgIDB4QTEsIDB4MDIsICAgICAgICAgLy8gICBDb2xsZWN0aW9uIChMb2dp
Y2FsKQorICAgIDB4ODUsIDB4MDMsICAgICAgICAgLy8gICAgIFJlcG9ydCBJRCAoMykKKyAgICAw
eDA5LCAweDA0LCAgICAgICAgIC8vICAgICBVc2FnZSAoMHgwNCkKKyAgICAweDkxLCAweDAyLCAg
ICAgICAgIC8vICAgICBPdXRwdXQgKERhdGEsVmFyLEFicyxObyBXcmFwLExpbmVhcixQcmVmZXJy
ZWQgU3RhdGUsTm8gTnVsbCBQb3NpdGlvbixOb24tdm9sYXRpbGUpCisgICAgMHhDMCwgICAgICAg
ICAgICAgICAvLyAgIEVuZCBDb2xsZWN0aW9uCisgICAgMHhDMCwgICAgICAgICAgICAgICAvLyBF
bmQgQ29sbGVjdGlvbgorfTsKKworY29uc3Qgc2l6ZV90IEY3MTBCdXR0b25Db3VudCA9IDEzOwor
Y29uc3Qgc2l6ZV90IEY3MTBBeGlzQ291bnQgPSA0OworY29uc3Qgc2l6ZV90IEY3MTBSZXBvcnRT
aXplID0gODsKK2NvbnN0IGNoYXIqIEY3MTBOYW1lID0gIlZpcnR1YWwgTG9naXRlY2ggRjcxMCI7
CisKKy8vIFJlcG9ydCBsYXlvdXQ6CisvLyB8UmVwb3J0SUR8IHxYfCB8WXwgfFp8IHxSenwgfGIx
LWI0LCBoYXRzd2l0Y2h8IHxiNS1iMTJ8IHx2ZW5kb3Igc3BlY2lmaWN8CisKK3N0YXRpYyB2b2lk
IHB1Ymxpc2hSZXBvcnRDYWxsYmFjayhWZWN0b3I8ZmxvYXQ+JiBidXR0b25WYWx1ZXMsIFZlY3Rv
cjxmbG9hdD4mIGF4aXNWYWx1ZXMsIEhJRFVzZXJEZXZpY2UgKnVzZXJEZXZpY2UpCit7CisgICAg
dWludDhfdCByZXBvcnREYXRhW0Y3MTBSZXBvcnRTaXplXTsKKworICAgIC8vIFJlcG9ydCBJRAor
ICAgIHJlcG9ydERhdGFbMF0gPSAweDAxOworCisgICAgLy8gTmV4dCA0IGJ5dGVzIGFyZSB0aGUg
YXhpcyB2YWx1ZXMKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDQ7ICsraSkKKyAgICAgICAg
cmVwb3J0RGF0YVtpICsgMV0gPSAodWludDhfdCkoKGludDhfdCkoYXhpc1ZhbHVlc1tpXSAqIDEy
NykpOworCisgICAgLy8gTmV4dCBieXRlIGlzIHRoZSBoYXRzd2l0Y2ggYW5kIGZpcnN0IDQgYnV0
dG9ucworICAgIC8vIEZJWE1FOiBObyBBUEkgdGVzdCBjb25maWd1cmFiaWxpdHkgb2YgdGhlIGhh
dHN3aXRjaCB5ZXQKKyAgICB1aW50OF90IGJ1dHRvbkJ5dGUgPSAweDA4OworICAgIGxvbmcgYnV0
dG9uQml0OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgNDsgKytpKSB7CisgICAgICAgIGJ1
dHRvbkJpdCA9IGxyb3VuZChidXR0b25WYWx1ZXNbaV0pOworICAgICAgICBidXR0b25CeXRlIHw9
IGJ1dHRvbkJpdCA8PCAoaSArIDQpOworICAgIH0KKyAgICByZXBvcnREYXRhWzVdID0gYnV0dG9u
Qnl0ZTsKKworICAgIC8vIE5leHQgYnl0ZSBpcyBidXR0b25zIDUtMTIKKyAgICBidXR0b25CeXRl
ID0gMHgwMDsKKyAgICBmb3IgKHNpemVfdCBpID0gNDsgaSA8IDEyOyArK2kpIHsKKyAgICAgICAg
YnV0dG9uQml0ID0gbHJvdW5kKGJ1dHRvblZhbHVlc1tpXSk7CisgICAgICAgIGJ1dHRvbkJ5dGUg
fD0gYnV0dG9uQml0IDw8IChpIC0gNCk7CisgICAgfQorICAgIHJlcG9ydERhdGFbNl0gPSBidXR0
b25CeXRlOworCisgICAgLy8gRmluYWwgaXMgdmVuZG9yIHNwZWNpZmljIChjaGFuZ2VzIHdpdGgg
dmlicmF0aW9uIG1vZGUsIEkga25vdywgYnV0IG5vdCByZWxldmFudCB0byB0aGUgZ2FtZXBhZCBz
cGVjIGF0IHRoaXMgdGltZSkKKyAgICByZXBvcnREYXRhWzddID0gMHg1ZjsKKworICAgIGF1dG8g
bnNSZXBvcnREYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5pdFdpdGhCeXRlczpyZXBv
cnREYXRhIGxlbmd0aDpGNzEwUmVwb3J0U2l6ZV0pOworICAgIFt1c2VyRGV2aWNlIGhhbmRsZVJl
cG9ydDpuc1JlcG9ydERhdGEuZ2V0KCkgZXJyb3I6bmlsXTsKK30KKworR2FtZXBhZE1hcHBpbmcg
VmlydHVhbEdhbWVwYWQ6OmxvZ2l0ZWNoRjcxME1hcHBpbmcoKQoreworICAgIHJldHVybiB7Cisg
ICAgICAgIEY3MTBEZXNjcmlwdG9yLAorICAgICAgICBzaXplb2YoRjcxMERlc2NyaXB0b3IpLAor
ICAgICAgICBGNzEwTmFtZSwKKyAgICAgICAgSElEVmVuZG9ySUQ6OkxvZ2l0ZWNoLAorICAgICAg
ICBISURQcm9kdWN0SUQ6OkY3MTAsCisgICAgICAgIEY3MTBCdXR0b25Db3VudCwKKyAgICAgICAg
RjcxMEF4aXNDb3VudCwKKyAgICAgICAgcHVibGlzaFJlcG9ydENhbGxiYWNrCisgICAgfTsKK30K
KworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gSEFWRShISURfRlJB
TUVXT1JLKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9tYWMvVmlydHVhbEdhbWVwYWQuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFj
L1ZpcnR1YWxHYW1lcGFkLmgKaW5kZXggYzA0MjVkZGEzNjAxNmIzNTJhMjVhNzRhYzgwNzcxNTEz
MmFlOWEzMy4uYjIxYjk1NTY5NDcwMzI0NzEzMjc1ZGMxNWIxYWI5NWU3ZTBlZWNjNCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVmlydHVhbEdhbWVwYWQuaAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL21hYy9WaXJ0dWFsR2FtZXBhZC5oCkBAIC00MSw2ICs0MSw3IEBAIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogZW51bSBjbGFzcyBISURWZW5kb3JJRCA6IHVpbnQx
Nl90IHsKICAgICBHb29nbGUgPSAweDE4ZDEsCisgICAgTG9naXRlY2ggPSAweDA0NmQsCiAgICAg
TWljcm9zb2Z0ID0gMHgwNDVlLAogICAgIFNoZW56aGVuTG9uZ3NoZW5nd2VpVGVjaG5vbG9neSA9
IDB4MDA3OSwKICAgICBTb255ID0gMHgwNTRjLApAQCAtNTYsNiArNTcsOCBAQCBlbnVtIGNsYXNz
IEhJRFByb2R1Y3RJRCA6IHVpbnQxNl90IHsKICAgICBEdWFsc2hvY2szID0gMHgwMjY4LAogICAg
IER1YWxzaG9jazRfMSA9IDB4MDVjNCwKICAgICBEdWFsc2hvY2s0XzIgPSAweDA5Y2MsCisgICAg
RjMxMCA9IDB4YzIxNiwKKyAgICBGNzEwID0gMHhjMjE5LAogICAgIEdhbWVwYWQgPSAweDAwMTEs
CiAgICAgR2VuZXJpY05FUyA9IDB4ZDAxNSwKICAgICBOaW1idXMgPSAweDE0MjAsCkBAIC04NCw2
ICs4Nyw4IEBAIGNsYXNzIFZpcnR1YWxHYW1lcGFkIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgR2FtZXBhZE1hcHBpbmcgZ29vZ2xlU3RhZGlhTWFw
cGluZygpOworICAgIHN0YXRpYyBHYW1lcGFkTWFwcGluZyBsb2dpdGVjaEYzMTBNYXBwaW5nKCk7
CisgICAgc3RhdGljIEdhbWVwYWRNYXBwaW5nIGxvZ2l0ZWNoRjcxME1hcHBpbmcoKTsKICAgICBz
dGF0aWMgR2FtZXBhZE1hcHBpbmcgbWljcm9zb2Z0WGJveE9uZU1hcHBpbmcoKTsKICAgICBzdGF0
aWMgR2FtZXBhZE1hcHBpbmcgc2hlbnpoZW5Mb25nc2hlbmd3ZWlUZWNobm9sb2d5R2FtZXBhZE1h
cHBpbmcoKTsKICAgICBzdGF0aWMgR2FtZXBhZE1hcHBpbmcgc29ueUR1YWxzaG9jazNNYXBwaW5n
KCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>