<?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>233892</bug_id>
          
          <creation_ts>2021-12-06 12:40:13 -0800</creation_ts>
          <short_desc>REGRESSION (r286507): [macOS] Many file system access layout tests became flaky failures</short_desc>
          <delta_ts>2021-12-06 14:17:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=233567</see_also>
          <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="Ryan Haddad">ryanhaddad</reporter>
          <assigned_to name="Ryan Haddad">ryanhaddad</assigned_to>
          <cc>sihui_liu</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1820722</commentid>
    <comment_count>0</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-12-06 12:40:13 -0800</bug_when>
    <thetext>After https://trac.webkit.org/changeset/286507/webkit landed, many file system access layout tests became flaky failures on macOS bots

Example with many failures:
https://build.webkit.org/results/Apple-BigSur-Debug-WK2-Tests/r286542%20(4905)/results.html


https://results.webkit.org/?suite=layout-tests&amp;suite=layout-tests&amp;suite=layout-tests&amp;suite=layout-tests&amp;suite=layout-tests&amp;suite=layout-tests&amp;suite=layout-tests&amp;suite=layout-tests&amp;suite=layout-tests&amp;suite=layout-tests&amp;suite=layout-tests&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Ffile-system-access%2Fsandboxed_FileSystemBaseHandle-isSameEntry.https.any.worker.html&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Ffile-system-access%2Fsandboxed_FileSystemBaseHandle-remove.https.any.worker.html&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Ffile-system-access%2Fsandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker.html&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Ffile-system-access%2Fsandboxed_FileSystemSyncAccessHandle-flush.https.tentative.worker.html&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Ffile-system-access%2Fsandboxed_FileSystemSyncAccessHandle-getSize.https.tentative.worker.html&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Ffile-system-access%2Fsandboxed_FileSystemSyncAccessHandle-read-write.https.tentative.worker.html&amp;test=storage%2Ffilesystemaccess%2Fdirectory-handle-iteration-worker.html&amp;test=storage%2Ffilesystemaccess%2Fdirectory-handle-iteration.html&amp;test=storage%2Ffilesystemaccess%2Fhandle-move-worker.html&amp;test=storage%2Ffilesystemaccess%2Fsync-access-handle-close-worker.html&amp;test=storage%2Ffilesystemaccess%2Fsync-access-handle-read-write-worker.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820723</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-06 12:41:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/86118528&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820745</commentid>
    <comment_count>2</comment_count>
      <attachid>446076</attachid>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-12-06 13:23:07 -0800</bug_when>
    <thetext>Created attachment 446076
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820762</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-06 14:17:17 -0800</bug_when>
    <thetext>Committed r286569 (?): &lt;https://commits.webkit.org/r286569&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446076.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446076</attachid>
            <date>2021-12-06 13:23:07 -0800</date>
            <delta_ts>2021-12-06 14:17:18 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-233892-20211206132306.patch</filename>
            <type>text/plain</type>
            <size>69153</size>
            <attacher name="Ryan Haddad">ryanhaddad</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhhOGRhNDgxMTA4YzlmNDdjMDZjOWM5
ZjFiMjRlMWE2NTM1NTIzZTguLjNmMmQzNmU2ODBiMTVjOTVlODQ5ODI3NzNhODZhYWM0NmYzZDAy
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTItMDYgIFJ5YW4gSGFkZGFkICA8cnlhbmhh
ZGRhZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI4NjUwNyk6IFttYWNPU10g
TWFueSBmaWxlIHN5c3RlbSBhY2Nlc3MgbGF5b3V0IHRlc3RzIGJlY2FtZSBmbGFreSBmYWlsdXJl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzODky
CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0IHIyODY1MDcuCisKKyAgICAgICAgKiB3dGYv
RmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBsOjpyZWFkRW50aXJl
RmlsZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBsOjpkZWxldGVBbGxG
aWxlc01vZGlmaWVkU2luY2UpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9GaWxlU3lzdGVtLmg6
CisKIDIwMjEtMTItMDYgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgW1dlYiBBbmltYXRpb25zXSBBZGQgYSB3YXkgdG8gcnVuIHNjcmlwdGVkIGFuaW1hdGlv
bnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBiYTkzMjE2MGY3OGQ0YzVhNWQ0YTJiNWZjNWNjNzRhYjE1NzkwN2Yy
Li5mYmU3NWI5OTA4Zjg1NGRhMzQyMzkwYjhjOGE0ZTg5MTZjZTBkZTY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMjEtMTItMDYgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI4NjUwNyk6IFttYWNPU10gTWFueSBmaWxl
IHN5c3RlbSBhY2Nlc3MgbGF5b3V0IHRlc3RzIGJlY2FtZSBmbGFreSBmYWlsdXJlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzODkyCisKKyAgICAg
ICAgVW5yZXZpZXdlZCwgcmV2ZXJ0IHIyODY1MDcuCisKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisKIDIwMjEtMTItMDYg
IERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIENoYW5nZSBJREwg
YERhdGVgIHRvIGJlIGJhY2tlZCBieSBgV2FsbFRpbWVgIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aGVu
IGNvbnZlcnRpbmcgdG8gbmF0aXZlIGRhdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ2ZWI3MzYzMzQ0ZWVlZjA2
YjM2YmQ5MzYyMTBhYTkwN2Y4MTU3YWYuLmM5YThlNWVkYTdjOWIzMDczY2RjYTliYjZkYmQ4ZGI2
ZmU2NjQ4OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIwMjEtMTItMDYgIFJ5YW4gSGFk
ZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI4NjUw
Nyk6IFttYWNPU10gTWFueSBmaWxlIHN5c3RlbSBhY2Nlc3MgbGF5b3V0IHRlc3RzIGJlY2FtZSBm
bGFreSBmYWlsdXJlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMzODkyCisKKyAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0IHIyODY1MDcuCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Om1vbml0b3JlZERhdGFUeXBl
cyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlQW5kUmVzdHJpY3RXZWJzaXRlRGF0YUZv
clJlZ2lzdHJhYmxlRG9tYWlucyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpy
ZWdpc3RyYWJsZURvbWFpbnNXaXRoV2Vic2l0ZURhdGEpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaDoKKyAgICAgICAgKFdlYktpdDo6
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmFjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3Jh
Z2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2Vy
Ojp+RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyOjpjbG9zZSk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6Om9yaWdpblBhdGgpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OmxvY2FsT3JpZ2luU3RvcmFnZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpyZWFkT3JpZ2lu
RnJvbUZpbGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0Ojp3cml0ZU9yaWdpblRvRmlsZUlm
TmVjZXNzYXJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6ZGVsZXRlT3JpZ2luRmlsZUlm
TmVjZXNzYXJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6b3JpZ2luRGlyZWN0b3J5UGF0
aCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Om9yaWdpbkZpbGVQYXRoKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpyZW1vdmVPcmlnaW5TdG9y
YWdlTWFuYWdlcklmUG9zc2libGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0Ojp0b1dlYnNp
dGVEYXRhVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFu
YWdlcjo6Zm9yRWFjaE9yaWdpbkRpcmVjdG9yeSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6ZmV0Y2hEYXRhRnJvbURpc2spOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmZldGNoRGF0YSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6ZGVsZXRlRGF0YU9uRGlz
ayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6ZGVs
ZXRlRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6ZGVsZXRlRGF0YU1vZGlmaWVkU2luY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmRlbGV0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMpOiBE
ZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdl
TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok9yaWdpblN0b3JhZ2VNYW5hZ2VyOjpTdG9y
YWdlQnVja2V0Ojp0eXBlU3RvcmFnZVBhdGggY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpPcmln
aW5TdG9yYWdlTWFuYWdlcjo6U3RvcmFnZUJ1Y2tldDo6ZmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2Vy
KToKKyAgICAgICAgKFdlYktpdDo6T3JpZ2luU3RvcmFnZU1hbmFnZXI6Ok9yaWdpblN0b3JhZ2VN
YW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6T3JpZ2luU3RvcmFnZU1hbmFnZXI6OlN0b3JhZ2VC
dWNrZXQ6OnRvU3RvcmFnZUlkZW50aWZpZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpP
cmlnaW5TdG9yYWdlTWFuYWdlcjo6U3RvcmFnZUJ1Y2tldDo6aXNBY3RpdmUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpPcmlnaW5TdG9yYWdlTWFuYWdlcjo6U3RvcmFnZUJ1Y2tldDo6ZGVs
ZXRlRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok9yaWdpblN0b3JhZ2VNYW5hZ2Vy
OjpTdG9yYWdlQnVja2V0OjpkZWxldGVGaWxlU3lzdGVtU3RvcmFnZURhdGEpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpPcmlnaW5TdG9yYWdlTWFuYWdlcjo6aXNBY3RpdmUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpPcmlnaW5TdG9yYWdlTWFuYWdlcjo6ZGVsZXRlRGF0YSk6IERl
bGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFu
YWdlci5oOgorICAgICAgICAqIFNoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhOjpvd25lclByb2Nlc3MpOgorICAgICAgICAqIFNo
YXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVR5cGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmQubW06CisgICAgICAgIChkYXRhVHlwZXNUb1N0
cmluZyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3Jk
SW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYktpdDo6dG9XZWJzaXRlRGF0YVR5cGUpOgorICAgICAg
ICAoV2ViS2l0Ojp0b1dLV2Vic2l0ZURhdGFUeXBlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoK1tXS1dlYnNpdGVE
YXRhU3RvcmUgX2FsbFdlYnNpdGVEYXRhVHlwZXNJbmNsdWRpbmdQcml2YXRlXSk6CisgICAgICAg
ICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluOiBSZW1vdmVkLgorCiAyMDIxLTEyLTA2ICBCcmFkeSBFaWRzb24gIDxiZWlk
c29uQGFwcGxlLmNvbT4KIAogICAgICAgICBQdXQgd2VicHVzaGQgY29kZSBpbiBXZWJLaXQuZnJh
bWV3b3JrLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmNwcAppbmRleCBmNjkwNDkyOGVmNTViMGFiODFlNjAwNTBi
MzkzYWRjNGM3OTkxNjQ0Li42NGJhYzZiNmI3MDAxNjEwYjUzZjJlMWQzMDkyNjdiZDVhNDBmNTM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9GaWxlU3lzdGVtLmNwcApAQCAtNTE0LDYwICs1MTQsNiBAQCBzdGQ6Om9wdGlvbmFs
PFNhbHQ+IHJlYWRPck1ha2VTYWx0KGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICByZXR1cm4gc2Fs
dDsKIH0KIAotc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IHJlYWRFbnRpcmVGaWxlKFBs
YXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCi17Ci0gICAgaWYgKCFGaWxlU3lzdGVtOjppc0hhbmRs
ZVZhbGlkKGhhbmRsZSkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICBhdXRv
IHNpemUgPSBGaWxlU3lzdGVtOjpmaWxlU2l6ZShoYW5kbGUpLnZhbHVlX29yKDApOwotICAgIGlm
ICghc2l6ZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgIHVuc2lnbmVkIGJ5
dGVzVG9SZWFkOwotICAgIGlmICghV1RGOjpjb252ZXJ0U2FmZWx5KHNpemUsIGJ5dGVzVG9SZWFk
KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgIFZlY3Rvcjx1aW50OF90PiBi
dWZmZXIoYnl0ZXNUb1JlYWQpOwotICAgIHVuc2lnbmVkIHRvdGFsQnl0ZXNSZWFkID0gRmlsZVN5
c3RlbTo6cmVhZEZyb21GaWxlKGhhbmRsZSwgYnVmZmVyLmRhdGEoKSwgYnVmZmVyLnNpemUoKSk7
Ci0gICAgaWYgKHRvdGFsQnl0ZXNSZWFkICE9IGJ5dGVzVG9SZWFkKQotICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwotCi0gICAgcmV0dXJuIGJ1ZmZlcjsKLX0KLQotdm9pZCBkZWxldGVBbGxG
aWxlc01vZGlmaWVkU2luY2UoY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIFdhbGxUaW1lIHRpbWUp
Ci17Ci0gICAgLy8gVGhpcyBmdW5jdGlvbiBtYXkgZGVsZXRlIGRpcmVjdG9yeSBmb2xkZXIuCi0g
ICAgaWYgKHRpbWUgPT0gLVdhbGxUaW1lOjppbmZpbml0eSgpKSB7Ci0gICAgICAgIGRlbGV0ZU5v
bkVtcHR5RGlyZWN0b3J5KGRpcmVjdG9yeSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBhdXRvIGNoaWxkcmVuID0gbGlzdERpcmVjdG9yeShkaXJlY3RvcnkpOwotICAgIGZvciAoYXV0
byYgY2hpbGQgOiBjaGlsZHJlbikgewotICAgICAgICBhdXRvIGNoaWxkUGF0aCA9IEZpbGVTeXN0
ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChkaXJlY3RvcnksIGNoaWxkKTsKLSAgICAgICAg
YXV0byBjaGlsZFR5cGUgPSBmaWxlVHlwZShjaGlsZFBhdGgpOwotICAgICAgICBpZiAoIWNoaWxk
VHlwZSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIHN3aXRjaCAoKmNoaWxkVHlw
ZSkgewotICAgICAgICBjYXNlIEZpbGVUeXBlOjpSZWd1bGFyOiB7Ci0gICAgICAgICAgICBpZiAo
YXV0byBtb2RpZmljYXRpb25UaW1lID0gRmlsZVN5c3RlbTo6ZmlsZU1vZGlmaWNhdGlvblRpbWUo
Y2hpbGRQYXRoKTsgbW9kaWZpY2F0aW9uVGltZSAmJiAqbW9kaWZpY2F0aW9uVGltZSA+PSB0aW1l
KQotICAgICAgICAgICAgICAgIGRlbGV0ZUZpbGUoY2hpbGRQYXRoKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgRmlsZVR5cGU6OkRpcmVjdG9yeToKLSAgICAg
ICAgICAgIGRlbGV0ZUFsbEZpbGVzTW9kaWZpZWRTaW5jZShjaGlsZFBhdGgsIHRpbWUpOwotICAg
ICAgICAgICAgZGVsZXRlRW1wdHlEaXJlY3RvcnkoY2hpbGRQYXRoKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIEZpbGVUeXBlOjpTeW1ib2xpY0xpbms6Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUVtcHR5RGly
ZWN0b3J5KGRpcmVjdG9yeSk7Ci19Ci0KICNpZiBIQVZFKFNURF9GSUxFU1lTVEVNKSB8fCBIQVZF
KFNURF9FWFBFUklNRU5UQUxfRklMRVNZU1RFTSkKIAogYm9vbCBkZWxldGVFbXB0eURpcmVjdG9y
eShjb25zdCBTdHJpbmcmIHBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lz
dGVtLmggYi9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmgKaW5kZXggZmQ4NTNhNDlhYWM4ZGMw
MWYzMTU3MDRjZTQ5ZDczNDY1YWUwNTY1YS4uOTk2YmMwYjZmN2RhOGFkZDBhNmU1YjkxN2FjODZj
ZWM1YWY3MDlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaApAQCAtMTA4LDcgKzEwOCw2IEBAIGVudW0gY2xh
c3MgTWFwcGVkRmlsZU1vZGUgewogCiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBmaWxlRXhpc3Rz
KGNvbnN0IFN0cmluZyYpOwogV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgZGVsZXRlRmlsZShjb25z
dCBTdHJpbmcmKTsKLVdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRlbGV0ZUFsbEZpbGVzTW9kaWZp
ZWRTaW5jZShjb25zdCBTdHJpbmcmLCBXYWxsVGltZSk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9v
bCBkZWxldGVFbXB0eURpcmVjdG9yeShjb25zdCBTdHJpbmcmKTsKIFdURl9FWFBPUlRfUFJJVkFU
RSBib29sIG1vdmVGaWxlKGNvbnN0IFN0cmluZyYgb2xkUGF0aCwgY29uc3QgU3RyaW5nJiBuZXdQ
YXRoKTsKIFdURl9FWFBPUlRfUFJJVkFURSBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmaWxlU2l6
ZShjb25zdCBTdHJpbmcmKTsgLy8gRm9sbG93cyBzeW1saW5rcy4KQEAgLTE0Nyw3ICsxNDYsNiBA
QCBpbmxpbmUgYm9vbCBpc0hhbmRsZVZhbGlkKGNvbnN0IFBsYXRmb3JtRmlsZUhhbmRsZSYgaGFu
ZGxlKSB7IHJldHVybiBoYW5kbGUgIT0gaQogCiB1c2luZyBTYWx0ID0gc3RkOjphcnJheTx1aW50
OF90LCA4PjsKIFdURl9FWFBPUlRfUFJJVkFURSBzdGQ6Om9wdGlvbmFsPFNhbHQ+IHJlYWRPck1h
a2VTYWx0KGNvbnN0IFN0cmluZyYgcGF0aCk7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgc3RkOjpvcHRp
b25hbDxWZWN0b3I8dWludDhfdD4+IHJlYWRFbnRpcmVGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSk7
CiAKIC8vIFByZWZpeCBpcyB3aGF0IHRoZSBmaWxlbmFtZSBzaG91bGQgYmUgcHJlZml4ZWQgd2l0
aCwgbm90IHRoZSBmdWxsIHBhdGguCiBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIG9wZW5UZW1w
b3JhcnlGaWxlKGNvbnN0IFN0cmluZyYgcHJlZml4LCBQbGF0Zm9ybUZpbGVIYW5kbGUmLCBjb25z
dCBTdHJpbmcmIHN1ZmZpeCA9IHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmgKaW5kZXggNzc2ZTEzY2E1ZWI2NDc5Nzk0M2VmM2JjNDg1M2EzMWRkZWRmYjM1Ny4u
MzU5YzI0Njc4MGY5NjUyNDkyYzUwZTFlOGY1NGY5MDRjYTc4OTY5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtMjcsNyArMjcsNiBAQAogCiAjaW5jbHVk
ZSAiRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJQcm9jZXNzUXVhbGlmaWVkLmgi
CiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRl
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQKaW5kZXggYjFkYmJiNTU0OWY3YTA1MWJjY2IwZGJlMmYyMzk5YWFiZjFh
YjkyMS4uZThlYWQ2MDI3M2I3NTE4OTQwMTY2MmQ0ZGZhMGIzMTczYjIyYzhiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0CkBAIC0zMTAsNyArMzEwLDYgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxF
UwogCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkK
ICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eQotICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24KIAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDViYTY0YjQ0
YmUxZTU3NzUwODhmYzZlOTA1NTk5YzdjZDU3ODNjZDMuLjg1OTJkOTlkMmUzNmFmYzllZjg1ZGNj
MWMzZjU3NGVjMTk1ZWVmNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QKQEAgLTIyMSw3ICsyMjEsNiBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aQogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2Nr
UmVnaXN0cnkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXIubWVzc2FnZXMuaW4KLSQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
Y29hL1RleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA0ODZlZmQ2YmM4
ZDlkMTkzNzBlZjlkZjg1Y2I1YjlkYTJjMzdmYTk1Li41MjAzNWFiMGEyNDUzYjYzZjgyOTI3NmU5
ODQwZWRkMTM4MjYwZGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKQEAgLTEsNCArMSw1IEBACiAjIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQg
YnkgdGhlIGdlbmVyYXRlLXhjZmlsZWxpc3RzIHNjcmlwdC4KKzw8PDw8PDwgSEVBRAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9BdWRpb0NhcHR1cmVTYW1wbGVN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdC9BdWRpb0NhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTQ5Myw5ICs0OTQs
NiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkRldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eU1lc3NhZ2VzLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKLSQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcAotJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdlcy5oCi0k
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9XZWJGdWxs
U2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQvV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaApAQCAtNjIx
LDQgKzYxOSw0IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQv
Y29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYgogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9jb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5z
YgogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9jb20uYXBwbGUu
V2ViS2l0LldlYkNvbnRlbnQuc2IKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQvY29tLmFwcGxlLldlYktpdC5wbHVnaW4tY29tbW9uLnNiCi0kKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L2NvbS5hcHBsZS5XZWJQ
cm9jZXNzLnNiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IDY4NGZhY2Q1ZDc2ZmMyNGEyN2IwN2FmNDcwY2MzZjlhM2NkMWMwNjAuLjE5
MzM4ODQ5NjFiNGJjMzA0ZjA4OWIwYjU0ZTE0ODkxYjVjMzQ4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTIyMiw3ICsyMjIsNiBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeSBcCiAJV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkgXAogCVdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlciBc
Ci0JV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24gXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uIFwKIAlXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyIFwKIAlXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcAppbmRleCA3MGI1YWZkYTUyNmU5OTA5Yjk2MmQ3MTIxM2Q4NWI2MGI1MzcxODFkLi5k
ZTc2NWRlNDUwNzFmNDFmM2ZjNGQ0Njk3MDUzODE2ZTE4OTllYmZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtNzQsNyArNzQsNiBAQCBj
b25zdCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiYgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjptb25pdG9yZWREYXRhVAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICAg
ICAgV2Vic2l0ZURhdGFUeXBlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9ucywKICNlbmRpZgot
ICAgICAgICBXZWJzaXRlRGF0YVR5cGU6OkZpbGVTeXN0ZW0sCiAgICAgfSkpOwogCiAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggNDcyYzhiNTdjMzJjMzVmODliZTBiMTc4MWZiZGVj
OGNmM2RhYzhiYi4uOTc4Y2Y1NmFjZmRkYmY0YWZjMjc4YzUyYzQzN2EzNGM4ZDU3NTUxOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAg
LTE1NTUsMTIgKzE1NTUsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpmZXRjaFdlYnNpdGVEYXRh
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdAogICAgICAgICB9CiAg
ICAgfQogI2VuZGlmCi0KLSAgICBpZiAoYXV0byBpdGVyYXRvciA9IG1fc3RvcmFnZU1hbmFnZXJz
LmZpbmQoc2Vzc2lvbklEKTsgaXRlcmF0b3IgIT0gbV9zdG9yYWdlTWFuYWdlcnMuZW5kKCkpIHsK
LSAgICAgICAgaXRlcmF0b3ItPnZhbHVlLT5mZXRjaERhdGEod2Vic2l0ZURhdGFUeXBlcywgW2Nh
bGxiYWNrQWdncmVnYXRvcl0oYXV0byBlbnRyaWVzKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGNh
bGxiYWNrQWdncmVnYXRvci0+bV93ZWJzaXRlRGF0YS5lbnRyaWVzLmFwcGVuZFZlY3RvcihXVEZN
b3ZlKGVudHJpZXMpKTsKLSAgICAgICAgfSk7Ci0gICAgfQogfQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIFdhbGxUaW1lIG1vZGlmaWVkU2lu
Y2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTE2
MzUsOSArMTYyOSw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpCiAgICAgICAgICAgICBuZXR3
b3JrU2Vzc2lvbi0+Y2xlYXJBbHRlcm5hdGl2ZVNlcnZpY2VzKG1vZGlmaWVkU2luY2UpOwogICAg
IH0KICNlbmRpZgotCi0gICAgaWYgKGF1dG8gaXRlcmF0b3IgPSBtX3N0b3JhZ2VNYW5hZ2Vycy5m
aW5kKHNlc3Npb25JRCk7IGl0ZXJhdG9yICE9IG1fc3RvcmFnZU1hbmFnZXJzLmVuZCgpKQotICAg
ICAgICBpdGVyYXRvci0+dmFsdWUtPmRlbGV0ZURhdGFNb2RpZmllZFNpbmNlKHdlYnNpdGVEYXRh
VHlwZXMsIG1vZGlmaWVkU2luY2UsIFtjbGVhclRhc2tzSGFuZGxlcl0geyB9KTsKIH0KIAogc3Rh
dGljIHZvaWQgY2xlYXJEaXNrQ2FjaGVFbnRyaWVzKE5ldHdvcmtDYWNoZTo6Q2FjaGUqIGNhY2hl
LCBjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lucywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTc0NSw5ICsxNzM2LDYgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgT3B0aW8KICAgICB9CiAjZW5kaWYKIAotICAgIGlmIChhdXRvIGl0
ZXJhdG9yID0gbV9zdG9yYWdlTWFuYWdlcnMuZmluZChzZXNzaW9uSUQpOyBpdGVyYXRvciAhPSBt
X3N0b3JhZ2VNYW5hZ2Vycy5lbmQoKSkKLSAgICAgICAgaXRlcmF0b3ItPnZhbHVlLT5kZWxldGVE
YXRhKHdlYnNpdGVEYXRhVHlwZXMsIG9yaWdpbkRhdGFzLCBbY2xlYXJUYXNrc0hhbmRsZXJdIHsg
fSk7Ci0KICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSB0aGlzLT5uZXR3b3JrU2Vzc2lv
bihzZXNzaW9uSUQpKSB7CiAgICAgICAgIEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4+IGRvbWFpbnNUb0RlbGV0ZU5ldHdvcmtEYXRhRm9yOwogICAgICAgICBmb3IgKGF1dG8mIG9y
aWdpbkRhdGEgOiBvcmlnaW5EYXRhcykKQEAgLTE5NzEsMTMgKzE5NTksNiBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpkZWxldGVBbmRSZXN0cmljdFdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21h
aW5zKFBBTDo6U2VzcwogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBpZiAoYXV0byBpdGVyYXRv
ciA9IG1fc3RvcmFnZU1hbmFnZXJzLmZpbmQoc2Vzc2lvbklEKTsgaXRlcmF0b3IgIT0gbV9zdG9y
YWdlTWFuYWdlcnMuZW5kKCkpIHsKLSAgICAgICAgaXRlcmF0b3ItPnZhbHVlLT5kZWxldGVEYXRh
Rm9yUmVnaXN0cmFibGVEb21haW5zKHdlYnNpdGVEYXRhVHlwZXMsIGRvbWFpbnNUb0RlbGV0ZUFs
bE5vbkNvb2tpZVdlYnNpdGVEYXRhRm9yLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXShhdXRvIGRlbGV0
ZWREb21haW5zKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGZvciAoYXV0byBkb21haW4gOiBkZWxl
dGVkRG9tYWlucykKLSAgICAgICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPm1fZG9tYWlu
cy5hZGQoV1RGTW92ZShkb21haW4pKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCiAgICAgYXV0byBk
YXRhVHlwZXNGb3JVSVByb2Nlc3MgPSBXZWJzaXRlRGF0YTo6ZmlsdGVyKHdlYnNpdGVEYXRhVHlw
ZXMsIFdlYnNpdGVEYXRhUHJvY2Vzc1R5cGU6OlVJKTsKICAgICBpZiAoIWRhdGFUeXBlc0ZvclVJ
UHJvY2Vzcy5pc0VtcHR5KCkgJiYgIWRvbWFpbnNUb0RlbGV0ZUFsbE5vbkNvb2tpZVdlYnNpdGVE
YXRhRm9yLmlzRW1wdHkoKSkgewogICAgICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0
IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+Jik+IGNvbXBsZXRpb25IYW5kbGVyID0gW2NhbGxi
YWNrQWdncmVnYXRvcl0gKGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+JiBkb21haW5z
KSB7CkBAIC0yMDk0LDEyICsyMDc1LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVnaXN0cmFi
bGVEb21haW5zV2l0aFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9Ci0KLSAgICBpZiAoYXV0byBpdGVyYXRvciA9
IG1fc3RvcmFnZU1hbmFnZXJzLmZpbmQoc2Vzc2lvbklEKTsgaXRlcmF0b3IgIT0gbV9zdG9yYWdl
TWFuYWdlcnMuZW5kKCkpIHsKLSAgICAgICAgaXRlcmF0b3ItPnZhbHVlLT5mZXRjaERhdGEod2Vi
c2l0ZURhdGFUeXBlcywgW2NhbGxiYWNrQWdncmVnYXRvcl0oYXV0byBlbnRyaWVzKSBtdXRhYmxl
IHsKLSAgICAgICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+bV93ZWJzaXRlRGF0YS5lbnRyaWVz
LmFwcGVuZFZlY3RvcihXVEZNb3ZlKGVudHJpZXMpKTsKLSAgICAgICAgfSk7Ci0gICAgfQogfQog
I2VuZGlmIC8vIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZS5oCmluZGV4IDQ3MzM4ZWZlNTM4MjJhNzZhNTQ4NGYyOWM5MzU3
Njc4ZjQwMTg4NWMuLmZiOTI5ODE0MWIwZGJjMzgxZmE4YjNiMzgxN2U2OGNhMDE4OTc5ZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCkBAIC02Miw3ICs2Miw2IEBAIHB1YmxpYzoKICAg
ICB1c2luZyBBY2Nlc3NIYW5kbGVJbmZvID0gc3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPjsKICAgICBF
eHBlY3RlZDxBY2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBjcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKCk7CiAgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiBjbG9zZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
OwotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyPiBhY3RpdmVTeW5jQWNjZXNzSGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9hY3Rp
dmVTeW5jQWNjZXNzSGFuZGxlOyB9CiAKIHByaXZhdGU6CiAgICAgRXhwZWN0ZWQ8V2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlcXVl
c3RDcmVhdGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgVHlwZSwgU3RyaW5nJiYg
bmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFn
ZXIuY3BwCmluZGV4IDI5Y2ZiMGM2YjM3M2EyNWZmMDFjY2U4NjMzYzk1ZTU2YjFhY2I3ZjQuLjM4
YWEyNjU1YzM5ZGRjMjM3YmE1YTM4MGE1ZDU0OTEyNDJjMzdmNTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJGaWxlU3lz
dGVtU3RvcmFnZUVycm9yLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdp
c3RyeS5oIgotI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbk1lc3NhZ2Vz
LmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00Myw3ICs0Miw4IEBAIEZpbGVTeXN0ZW1T
dG9yYWdlTWFuYWdlcjo6fkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcigpCiB7CiAgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBjbG9zZSgpOworICAgIGZvciAoYXV0byBpZGVu
dGlmaWVyIDogbV9oYW5kbGVzLmtleXMoKSkKKyAgICAgICAgbV9yZWdpc3RyeS51bnJlZ2lzdGVy
SGFuZGxlKGlkZW50aWZpZXIpOwogfQogCiBFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VN
YW5hZ2VyOjpjcmVhdGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCBjb25uZWN0aW9u
LCBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6VHlwZSB0eXBlLCBTdHJpbmcmJiBwYXRoLCBTdHJp
bmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KQpAQCAtMTQ5LDI0ICsxNDksNCBAQCBi
b29sIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6cmVsZWFzZUxvY2tGb3JGaWxlKGNvbnN0IFN0
cmluZyYgcGF0aCwgV2ViQ29yZTo6RgogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBGaWxl
U3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNsb3NlKCkKLXsKLSAgICBBU1NFUlQoIVJ1bkxvb3A6Omlz
TWFpbigpKTsKLQotICAgIGZvciAoYXV0byYgW2Nvbm5lY3Rpb25JRCwgaWRlbnRpZmllcnNdIDog
bV9oYW5kbGVzQnlDb25uZWN0aW9uKSB7Ci0gICAgICAgIGZvciAoYXV0byBpZGVudGlmaWVyIDog
aWRlbnRpZmllcnMpIHsKLSAgICAgICAgICAgIGF1dG8gdGFrZW5IYW5kbGUgPSBtX2hhbmRsZXMu
dGFrZShpZGVudGlmaWVyKTsKLSAgICAgICAgICAgIG1fcmVnaXN0cnkudW5yZWdpc3RlckhhbmRs
ZShpZGVudGlmaWVyKTsKLQotICAgICAgICAgICAgLy8gU2VuZCBtZXNzYWdlIHRvIHdlYiBwcm9j
ZXNzIHRvIGludmFsaWRhdGUgYWN0aXZlIHN5bmMgYWNjZXNzIGhhbmRsZS4KLSAgICAgICAgICAg
IGlmIChhdXRvIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIgPSB0YWtlbkhhbmRsZS0+YWN0aXZlU3lu
Y0FjY2Vzc0hhbmRsZSgpKQotICAgICAgICAgICAgICAgIElQQzo6Q29ubmVjdGlvbjo6c2VuZChj
b25uZWN0aW9uSUQsIE1lc3NhZ2VzOjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Oklu
dmFsaWRhdGVBY2Nlc3NIYW5kbGUoKmFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpLCAwKTsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIEFTU0VSVChtX2hhbmRsZXMuaXNFbXB0eSgpKTsKLSAgICBtX2hh
bmRsZXNCeUNvbm5lY3Rpb24uY2xlYXIoKTsKLSAgICBtX2xvY2tNYXAuY2xlYXIoKTsKLX0KLQog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmgKaW5kZXgg
NTM1OTg5NTgxMGQ4NzQ4NTYwOWE0MGNmYTUzNzFjYzY5ZWViMDYzZC4uYjg1NzY3NjhiMzU1YWNi
M2FhMGMzNzAzOGNjNTFlY2M5MzJiMzk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIu
aApAQCAtNDksOCArNDksNiBAQCBwdWJsaWM6CiAgICAgYm9vbCByZWxlYXNlTG9ja0ZvckZpbGUo
Y29uc3QgU3RyaW5nJiBwYXRoLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7
CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBjbG9zZSgpOwotCiAgICAgU3RyaW5nIG1fcGF0aDsKICAg
ICBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5JiBtX3JlZ2lzdHJ5OwogICAgIEhhc2hN
YXA8SVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgSGFzaFNldDxXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllcj4+IG1faGFuZGxlc0J5Q29ubmVjdGlvbjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdl
TWFuYWdlci5jcHAKaW5kZXggMGE1YTE3NDdmZjExMDYyMDgwYzQ5MDYxMWFkY2Y2Mzk1ZWVmOThl
ZC4uY2ZhYzAxYTM4ZjIwMmNiYmY0OGFmZGQ4NTY1MjI5MjYyZjFkOTJiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5jcHAKQEAgLTMxLDY5ICszMSwxMSBAQAogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUg
Ik9yaWdpblN0b3JhZ2VNYW5hZ2VyLmgiCi0jaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlLmgiCiAj
aW5jbHVkZSA8cGFsL2NyeXB0by9DcnlwdG9EaWdlc3QuaD4KLSNpbmNsdWRlIDx3dGYvU2NvcGUu
aD4KLSNpbmNsdWRlIDx3dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudERlY29kZXIuaD4KLSNpbmNs
dWRlIDx3dGYvcGVyc2lzdGVuY2UvUGVyc2lzdGVudEVuY29kZXIuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9CYXNlNjQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkNsaWVudE9yaWdpbj4gcmVhZE9yaWdpbkZyb21GaWxlKGNvbnN0IFN0cmlu
ZyYgZmlsZVBhdGgpCi17Ci0gICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBp
ZiAoIUZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoZmlsZVBhdGgpKQotICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotCi0gICAgYXV0byBvcmlnaW5GaWxlSGFuZGxlID0gRmlsZVN5c3RlbTo6b3Bl
bkZpbGUoZmlsZVBhdGgsIEZpbGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVhZCk7Ci0gICAgYXV0
byBjbG9zZUZpbGUgPSBtYWtlU2NvcGVFeGl0KFsmXSB7Ci0gICAgICAgIEZpbGVTeXN0ZW06OmNs
b3NlRmlsZShvcmlnaW5GaWxlSGFuZGxlKTsKLSAgICB9KTsKLQotICAgIGlmICghRmlsZVN5c3Rl
bTo6aXNIYW5kbGVWYWxpZChvcmlnaW5GaWxlSGFuZGxlKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKLQotICAgIGF1dG8gb3JpZ2luQ29udGVudCA9IEZpbGVTeXN0ZW06OnJlYWRFbnRp
cmVGaWxlKG9yaWdpbkZpbGVIYW5kbGUpOwotICAgIGlmICghb3JpZ2luQ29udGVudCkKLSAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgIFdURjo6UGVyc2lzdGVuY2U6OkRlY29kZXIg
ZGVjb2Rlcih7IG9yaWdpbkNvbnRlbnQtPmRhdGEoKSwgb3JpZ2luQ29udGVudC0+c2l6ZSgpIH0p
OwotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q2xpZW50T3JpZ2luPiBvcmlnaW47Ci0gICAg
ZGVjb2RlciA+PiBvcmlnaW47Ci0gICAgcmV0dXJuIG9yaWdpbjsKLX0KLQotc3RhdGljIHZvaWQg
d3JpdGVPcmlnaW5Ub0ZpbGVJZk5lY2Vzc2FyeShjb25zdCBTdHJpbmcmIGZpbGVQYXRoLCBjb25z
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbikKLXsKLSAgICBpZiAoRmlsZVN5c3RlbTo6
ZmlsZUV4aXN0cyhmaWxlUGF0aCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIEZpbGVTeXN0ZW06
Om1ha2VBbGxEaXJlY3RvcmllcyhGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKGZpbGVQYXRoKSk7Ci0g
ICAgYXV0byBvcmlnaW5GaWxlSGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUoZmlsZVBhdGgs
IEZpbGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6UmVhZFdyaXRlKTsKLSAgICBhdXRvIGNsb3NlRmls
ZSA9IG1ha2VTY29wZUV4aXQoWyZdIHsKLSAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKG9y
aWdpbkZpbGVIYW5kbGUpOwotICAgIH0pOwotCi0gICAgaWYgKCFGaWxlU3lzdGVtOjppc0hhbmRs
ZVZhbGlkKG9yaWdpbkZpbGVIYW5kbGUpKSB7Ci0gICAgICAgIExPR19FUlJPUigid3JpdGVPcmln
aW5Ub0ZpbGVJZk5lY2Vzc2FyeTogRmFpbGVkIHRvIG9wZW4gb3JpZ2luIGZpbGUiKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIFdURjo6UGVyc2lzdGVuY2U6OkVuY29kZXIgZW5jb2Rl
cjsKLSAgICBlbmNvZGVyIDw8IG9yaWdpbjsKLSAgICBGaWxlU3lzdGVtOjp3cml0ZVRvRmlsZShv
cmlnaW5GaWxlSGFuZGxlLCBlbmNvZGVyLmJ1ZmZlcigpLCBlbmNvZGVyLmJ1ZmZlclNpemUoKSk7
Ci19Ci0KLXN0YXRpYyB2b2lkIGRlbGV0ZU9yaWdpbkZpbGVJZk5lY2Vzc2FyeShjb25zdCBTdHJp
bmcmIGZpbGVQYXRoKQotewotICAgIGF1dG8gcGFyZW50UGF0aCA9IEZpbGVTeXN0ZW06OnBhcmVu
dFBhdGgoZmlsZVBhdGgpOwotICAgIGF1dG8gY2hpbGRyZW4gPSBGaWxlU3lzdGVtOjpsaXN0RGly
ZWN0b3J5KHBhcmVudFBhdGgpOwotICAgIGlmIChjaGlsZHJlbi5zaXplKCkgPT0gMSkKLSAgICAg
ICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShmaWxlUGF0aCk7Ci19Ci0KIFJlZjxOZXR3b3JrU3Rv
cmFnZU1hbmFnZXI+IE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3JlYXRlKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBwYXRoKQogewogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE5ldHdvcmtTdG9yYWdlTWFuYWdlcihzZXNzaW9uSUQsIHBhdGgpKTsKQEAgLTE3NSw3ICsx
MTcsNyBAQCBzdGF0aWMgU3RyaW5nIGVuY29kZShjb25zdCBTdHJpbmcmIHN0cmluZywgRmlsZVN5
c3RlbTo6U2FsdCBzYWx0KQogICAgIHJldHVybiBiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyhoYXNo
LmRhdGEoKSwgaGFzaC5zaXplKCkpOwogfQogCi1zdGF0aWMgU3RyaW5nIG9yaWdpbkRpcmVjdG9y
eVBhdGgoY29uc3QgU3RyaW5nJiByb290UGF0aCwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2lu
JiBvcmlnaW4sIEZpbGVTeXN0ZW06OlNhbHQgc2FsdCkKK3N0YXRpYyBTdHJpbmcgb3JpZ2luUGF0
aChjb25zdCBTdHJpbmcmIHJvb3RQYXRoLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9y
aWdpbiwgRmlsZVN5c3RlbTo6U2FsdCBzYWx0KQogewogICAgIGlmIChyb290UGF0aC5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiByb290UGF0aDsKQEAgLTE4NSwzMCArMTI3LDE1IEBAIHN0YXRp
YyBTdHJpbmcgb3JpZ2luRGlyZWN0b3J5UGF0aChjb25zdCBTdHJpbmcmIHJvb3RQYXRoLCBjb25z
dCBXZWJDb3JlOjpDbGllbnRPCiAgICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGlu
Z0NvbXBvbmVudHMocm9vdFBhdGgsIHsgZW5jb2RlZFRvcE9yaWdpbiwgZW5jb2RlZE9wZW5pbmdP
cmlnaW4gfSk7CiB9CiAKLXN0YXRpYyBTdHJpbmcgb3JpZ2luRmlsZVBhdGgoY29uc3QgU3RyaW5n
JiBkaXJlY3RvcnkpCi17Ci0gICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0Nv
bXBvbmVudChkaXJlY3RvcnksICJvcmlnaW4iX3MpOwotfQotCiBPcmlnaW5TdG9yYWdlTWFuYWdl
ciYgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpsb2NhbE9yaWdpblN0b3JhZ2VNYW5hZ2VyKGNvbnN0
IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6
aXNNYWluKCkpOwogCiAgICAgcmV0dXJuICptX2xvY2FsT3JpZ2luU3RvcmFnZU1hbmFnZXJzLmVu
c3VyZShvcmlnaW4sIFsmXSB7Ci0gICAgICAgIGF1dG8gb3JpZ2luRGlyZWN0b3J5ID0gb3JpZ2lu
RGlyZWN0b3J5UGF0aChtX3BhdGgsIG9yaWdpbiwgbV9zYWx0KTsKLSAgICAgICAgd3JpdGVPcmln
aW5Ub0ZpbGVJZk5lY2Vzc2FyeShvcmlnaW5GaWxlUGF0aChvcmlnaW5EaXJlY3RvcnkpLCBvcmln
aW4pOwotICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxPcmlnaW5TdG9yYWdlTWFuYWdlcj4oV1RG
TW92ZShvcmlnaW5EaXJlY3RvcnkpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8T3JpZ2lu
U3RvcmFnZU1hbmFnZXI+KG9yaWdpblBhdGgobV9wYXRoLCBvcmlnaW4sIG1fc2FsdCkpOwogICAg
IH0pLml0ZXJhdG9yLT52YWx1ZTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJl
bW92ZU9yaWdpblN0b3JhZ2VNYW5hZ2VySWZQb3NzaWJsZShjb25zdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4mIG9yaWdpbikKLXsKLSAgICBpZiAoYXV0byBpdGVyYXRvciA9IG1fbG9jYWxPcmlnaW5T
dG9yYWdlTWFuYWdlcnMuZmluZChvcmlnaW4pOyBpdGVyYXRvciAhPSBtX2xvY2FsT3JpZ2luU3Rv
cmFnZU1hbmFnZXJzLmVuZCgpKSB7Ci0gICAgICAgIGlmICghaXRlcmF0b3ItPnZhbHVlLT5pc0Fj
dGl2ZSgpKQotICAgICAgICAgICAgbV9sb2NhbE9yaWdpblN0b3JhZ2VNYW5hZ2Vycy5yZW1vdmUo
aXRlcmF0b3IpOwotICAgIH0KLX0KLQogdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnBlcnNp
c3RlZChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxv
b3A6OmlzTWFpbigpKTsKQEAgLTM3OSwxNjIgKzMwNiw1IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyOjpnZXRIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpG
aWxlCiAgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5nZXRIYW5kbGUoY29ubmVjdGlvbi51
bmlxdWVJRCgpLCBXVEZNb3ZlKG5hbWUpKSk7CiB9CiAKLXN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdl
YnNpdGVEYXRhVHlwZT4gdG9XZWJzaXRlRGF0YVR5cGUoY29uc3QgU3RyaW5nJiBzdG9yYWdlVHlw
ZSkKLXsKLSAgICBpZiAoc3RvcmFnZVR5cGUgPT0gIkZpbGVTeXN0ZW0iKQotICAgICAgICByZXR1
cm4gV2Vic2l0ZURhdGFUeXBlOjpGaWxlU3lzdGVtOwotCi0gICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKLX0KLQotdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmZvckVhY2hPcmlnaW5EaXJlY3Rv
cnkoY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmKT4mIGFwcGx5KQotewotICAgIGZv
ciAoYXV0byYgdG9wT3JpZ2luIDogRmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeShtX3BhdGgpKSB7
Ci0gICAgICAgIGF1dG8gdG9wT3JpZ2luRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KG1fcGF0aCwgdG9wT3JpZ2luKTsKLSAgICAgICAgYXV0byBvcGVuaW5n
T3JpZ2lucyA9IEZpbGVTeXN0ZW06Omxpc3REaXJlY3RvcnkodG9wT3JpZ2luRGlyZWN0b3J5KTsK
LSAgICAgICAgaWYgKG9wZW5pbmdPcmlnaW5zLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgRmls
ZVN5c3RlbTo6ZGVsZXRlRW1wdHlEaXJlY3RvcnkodG9wT3JpZ2luRGlyZWN0b3J5KTsKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChhdXRvJiBvcGVuaW5n
T3JpZ2luIDogb3BlbmluZ09yaWdpbnMpIHsKLSAgICAgICAgICAgIGF1dG8gb3BlbmluZ09yaWdp
bkRpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0b3BPcmln
aW5EaXJlY3RvcnksIG9wZW5pbmdPcmlnaW4pOwotICAgICAgICAgICAgYXBwbHkob3BlbmluZ09y
aWdpbkRpcmVjdG9yeSk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLVZlY3RvcjxXZWJzaXRlRGF0
YTo6RW50cnk+IE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6ZmV0Y2hEYXRhRnJvbURpc2soT3B0aW9u
U2V0PFdlYnNpdGVEYXRhVHlwZT4gdGFyZ2V0VHlwZXMpCi17Ci0gICAgQVNTRVJUKCFSdW5Mb29w
Ojppc01haW4oKSk7Ci0KLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSwg
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4+IG9yaWdpblR5cGVzOwotICAgIGZvckVhY2hPcmln
aW5EaXJlY3RvcnkoWyZdKGF1dG8gZGlyZWN0b3J5KSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byBv
cmlnaW4gPSByZWFkT3JpZ2luRnJvbUZpbGUob3JpZ2luRmlsZVBhdGgoZGlyZWN0b3J5KSk7Ci0g
ICAgICAgIGlmICghb3JpZ2luKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGZvciAo
YXV0byYgc3RvcmFnZVR5cGUgOiBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KGRpcmVjdG9yeSkp
IHsKLSAgICAgICAgICAgIGlmIChhdXRvIHR5cGUgPSB0b1dlYnNpdGVEYXRhVHlwZShzdG9yYWdl
VHlwZSk7IHR5cGUgJiYgdGFyZ2V0VHlwZXMuY29udGFpbnMoKnR5cGUpKSB7Ci0gICAgICAgICAg
ICAgICAgLy8gUmV0dXJuIGJvdGggdG9wIG9yaWdpbiBhbmQgb3BlbmluZyBvcmlnaW4gZm9yIHRo
aXMgZGF0YS4KLSAgICAgICAgICAgICAgICBvcmlnaW5UeXBlcy5hZGQob3JpZ2luLT5jbGllbnRP
cmlnaW4sIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHsgfSkuaXRlcmF0b3ItPnZhbHVlLmFk
ZCgqdHlwZSk7Ci0gICAgICAgICAgICAgICAgb3JpZ2luVHlwZXMuYWRkKG9yaWdpbi0+dG9wT3Jp
Z2luLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB7IH0pLml0ZXJhdG9yLT52YWx1ZS5hZGQo
KnR5cGUpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfSk7Ci0KLSAgICBWZWN0b3I8
V2Vic2l0ZURhdGE6OkVudHJ5PiBlbnRyaWVzOwotICAgIGZvciAoYXV0byBbb3JpZ2luLCB0eXBl
c10gOiBvcmlnaW5UeXBlcykgewotICAgICAgICBmb3IgKGF1dG8gdHlwZSA6IHR5cGVzKQotICAg
ICAgICAgICAgZW50cmllcy5hcHBlbmQoeyBXZWJzaXRlRGF0YTo6RW50cnkgeyBvcmlnaW4sIHR5
cGUsIDAgfSB9KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZW50cmllczsKLX0KLQotdm9pZCBOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OmZldGNoRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB0
eXBlcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2Vic2l0ZURhdGE6OkVudHJ5PiYm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OwotICAgIEFTU0VSVCghbV9jbG9zZWQpOwotCi0gICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCB0eXBlcywgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byBl
bnRyaWVzID0gZmV0Y2hEYXRhRnJvbURpc2sodHlwZXMpOwotICAgICAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBlbnRyaWVzID0gY3Jv
c3NUaHJlYWRDb3B5KFdURk1vdmUoZW50cmllcykpXSgpIG11dGFibGUgewotICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShlbnRyaWVzKSk7Ci0gICAgICAgIH0pOwotICAgIH0p
OwotfQotCi1WZWN0b3I8V2ViQ29yZTo6Q2xpZW50T3JpZ2luPiBOZXR3b3JrU3RvcmFnZU1hbmFn
ZXI6OmRlbGV0ZURhdGFPbkRpc2soT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gdHlwZXMsIFdh
bGxUaW1lIG1vZGlmaWVkU2luY2VUaW1lLCBjb25zdCBGdW5jdGlvbjxib29sKGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYpPiYgZmlsdGVyKQotewotICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOwotCi0gICAgVmVjdG9yPFdlYkNvcmU6OkNsaWVudE9yaWdpbj4gZGVsZXRlZE9yaWdp
bnM7Ci0gICAgZm9yRWFjaE9yaWdpbkRpcmVjdG9yeShbJl0oYXV0byBkaXJlY3RvcnkpIG11dGFi
bGUgewotICAgICAgICBhdXRvIGZpbGVQYXRoID0gb3JpZ2luRmlsZVBhdGgoZGlyZWN0b3J5KTsK
LSAgICAgICAgYXV0byBvcmlnaW4gPSByZWFkT3JpZ2luRnJvbUZpbGUoZmlsZVBhdGgpOwotICAg
ICAgICBpZiAoIW9yaWdpbikgewotICAgICAgICAgICAgLy8gSWYgb3JpZ2luIGNhbm5vdCBiZSBy
ZXRyaWV2ZWQsIGJ1dCB3ZSBhcmUgYXNrZWQgdG8gcmVtb3ZlIGRhdGEgZm9yIGFsbCBvcmlnaW5z
LCByZW1vdmUgaXQuCi0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihTdG9yYWdlLCAiTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyOjpkZWxldGVEYXRhT25EaXNrIGZhaWxlZCB0byByZWFkIG9yaWdp
biBmcm9tICclcyciLCBmaWxlUGF0aC51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGlmIChm
aWx0ZXIoV2ViQ29yZTo6Q2xpZW50T3JpZ2luIHsgfSkpIHsKLSAgICAgICAgICAgICAgICBGaWxl
U3lzdGVtOjpkZWxldGVBbGxGaWxlc01vZGlmaWVkU2luY2UoZGlyZWN0b3J5LCBtb2RpZmllZFNp
bmNlVGltZSk7Ci0gICAgICAgICAgICAgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRW1wdHlEaXJlY3Rv
cnkoZGlyZWN0b3J5KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQotCi0gICAgICAgIGlmICghZmlsdGVyKCpvcmlnaW4pKQotICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgIGRlbGV0ZWRPcmlnaW5zLmFwcGVuZCgqb3JpZ2luKTsKLSAgICAgICAgbG9j
YWxPcmlnaW5TdG9yYWdlTWFuYWdlcigqb3JpZ2luKS5kZWxldGVEYXRhKHR5cGVzLCBtb2RpZmll
ZFNpbmNlVGltZSk7Ci0gICAgICAgIHJlbW92ZU9yaWdpblN0b3JhZ2VNYW5hZ2VySWZQb3NzaWJs
ZSgqb3JpZ2luKTsKLSAgICAgICAgZGVsZXRlT3JpZ2luRmlsZUlmTmVjZXNzYXJ5KGZpbGVQYXRo
KTsKLSAgICAgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRW1wdHlEaXJlY3RvcnkoZGlyZWN0b3J5KTsK
LSAgICB9KTsKLQotICAgIHJldHVybiBkZWxldGVkT3JpZ2luczsKLX0KLQotdm9pZCBOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OmRlbGV0ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gdHlw
ZXMsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBBU1NFUlQoIW1fY2xvc2VkKTsKLQotICAgIG1f
cXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgdHlw
ZXMsIG9yaWdpbnMgPSBjcm9zc1RocmVhZENvcHkob3JpZ2lucyksIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIEhhc2hT
ZXQ8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5TZXQ7Ci0gICAgICAgIG9yaWdp
blNldC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG9yaWdpbnMuc2l6ZSgpKTsKLSAgICAgICAgZm9y
IChhdXRvIG9yaWdpbiA6IG9yaWdpbnMpCi0gICAgICAgICAgICBvcmlnaW5TZXQuYWRkKFdURk1v
dmUob3JpZ2luKSk7Ci0KLSAgICAgICAgZGVsZXRlRGF0YU9uRGlzayh0eXBlcywgLVdhbGxUaW1l
OjppbmZpbml0eSgpLCBbJm9yaWdpblNldF0oYXV0byBvcmlnaW4pIHsKLSAgICAgICAgICAgIHJl
dHVybiBvcmlnaW5TZXQuY29udGFpbnMob3JpZ2luLnRvcE9yaWdpbikgfHwgb3JpZ2luU2V0LmNv
bnRhaW5zKG9yaWdpbi5jbGllbnRPcmlnaW4pOwotICAgICAgICB9KTsKLQotICAgICAgICBSdW5M
b29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRo
aXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11
dGFibGUgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgfSk7Ci0g
ICAgfSk7Ci19Ci0KLXZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpkZWxldGVEYXRhTW9kaWZp
ZWRTaW5jZShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB0eXBlcywgV2FsbFRpbWUgbW9kaWZp
ZWRTaW5jZVRpbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIEFTU0VSVCghbV9jbG9z
ZWQpOwotCi0gICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYg
eyAqdGhpcyB9LCB0eXBlcywgbW9kaWZpZWRTaW5jZVRpbWUsIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIGRlbGV0ZURh
dGFPbkRpc2sodHlwZXMsIG1vZGlmaWVkU2luY2VUaW1lLCBbXShhdXRvJikgewotICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0KLQot
dm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmRlbGV0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFp
bnMoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gdHlwZXMsIGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbj4mIGRvbWFpbnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFz
aFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
Ci17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBBU1NFUlQoIW1fY2xvc2Vk
KTsKLQotICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfSwgdHlwZXMsIGRvbWFpbnMgPSBjcm9zc1RocmVhZENvcHkoZG9tYWlucyksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0g
ICAgICAgIGF1dG8gZGVsZXRlZE9yaWdpbnMgPSBkZWxldGVEYXRhT25EaXNrKHR5cGVzLCAtV2Fs
bFRpbWU6OmluZmluaXR5KCksIFsmZG9tYWluc10oYXV0byYgb3JpZ2luKSB7Ci0gICAgICAgICAg
ICBhdXRvIGRvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOjp1bmNoZWNrZWRDcmVh
dGVGcm9tSG9zdChvcmlnaW4uY2xpZW50T3JpZ2luLmhvc3QpOwotICAgICAgICAgICAgcmV0dXJu
IGRvbWFpbnMuY29udGFpbnMoZG9tYWluKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgSGFzaFNl
dDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZGVsZXRlZERvbWFpbnM7Ci0gICAgICAgIGZv
ciAoYXV0byBvcmlnaW4gOiBkZWxldGVkT3JpZ2lucykgewotICAgICAgICAgICAgYXV0byBkb21h
aW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3Qo
b3JpZ2luLmNsaWVudE9yaWdpbi5ob3N0KTsKLSAgICAgICAgICAgIGRlbGV0ZWREb21haW5zLmFk
ZChkb21haW4pOwotICAgICAgICB9Ci0KLSAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNo
KFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgZG9tYWlucyA9IGNyb3NzVGhyZWFkQ29w
eShXVEZNb3ZlKGRlbGV0ZWREb21haW5zKSldKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKGRvbWFpbnMpKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXgg
MmFkZGYyYjVlMjBhZDM2ZDI4ZTQ0NTk3ZWE0MTNmZmU4OTYxYTQwZi4uNWJjNTZiN2M2NDZjNmIx
ZmQ3YWQ2NGRkNDg3ZWRmNWRlYTYzOTM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAt
MjgsMTIgKzI4LDEwIEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3IuaCIKICNpbmNsdWRlICJPcmlnaW5TdG9yYWdlTWFuYWdlci5oIgot
I2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DbGllbnRPcmlnaW4u
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIuaD4KICNp
bmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFt
ZXNwYWNlIElQQyB7CiBjbGFzcyBTaGFyZWRGaWxlSGFuZGxlOwpAQCAtNTcsMjIgKzU1LDEzIEBA
IHB1YmxpYzoKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBt
X3Nlc3Npb25JRDsgfQogICAgIHZvaWQgY2xvc2UoKTsKICAgICB2b2lkIGNsZWFyU3RvcmFnZUZv
clRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIGZldGNoRGF0
YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0
b3I8V2Vic2l0ZURhdGE6OkVudHJ5PiYmKT4mJik7Ci0gICAgdm9pZCBkZWxldGVEYXRhKE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhPiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBkZWxldGVE
YXRhTW9kaWZpZWRTaW5jZShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgV2FsbFRpbWUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBkZWxldGVEYXRhRm9yUmVnaXN0
cmFibGVEb21haW5zKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4+JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0
PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYmKT4mJik7CiAKIHByaXZhdGU6CiAgICAgTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHBhdGgpOwog
ICAgIH5OZXR3b3JrU3RvcmFnZU1hbmFnZXIoKTsKICAgICBPcmlnaW5TdG9yYWdlTWFuYWdlciYg
bG9jYWxPcmlnaW5TdG9yYWdlTWFuYWdlcihjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKTsK
LSAgICB2b2lkIHJlbW92ZU9yaWdpblN0b3JhZ2VNYW5hZ2VySWZQb3NzaWJsZShjb25zdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mKTsKICAgICBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5
JiBmaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5KCk7CiAKLSAgICB2b2lkIGZvckVhY2hP
cmlnaW5EaXJlY3RvcnkoY29uc3QgRnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmKT4mKTsKLSAg
ICBWZWN0b3I8V2Vic2l0ZURhdGE6OkVudHJ5PiBmZXRjaERhdGFGcm9tRGlzayhPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPik7Ci0gICAgVmVjdG9yPFdlYkNvcmU6OkNsaWVudE9yaWdpbj4gZGVs
ZXRlRGF0YU9uRGlzayhPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgV2FsbFRpbWUsIGNvbnN0
IEZ1bmN0aW9uPGJvb2woY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJik+Jik7Ci0KICAgICAv
LyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciAoaW1wbGVtZW50ZWQgYnkgZ2VuZXJhdGVkIGNvZGUpCiAg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL09y
aWdpblN0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggYTIwODBmOWMzM2Q4MDM4NTI2ODlk
Njg5YWQ1ZDI4MDE2ZDQ5YzhmYi4uNGYwNmY0NTI0NjU2NDZkMjAxMWJjN2Y1M2JiZGIyODExNTkz
YWE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL09y
aWdpblN0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC01MSw2MSArNTEsMjAgQEAgcHVi
bGljOgogICAgICAgICAgICAgbV9maWxlU3lzdGVtU3RvcmFnZU1hbmFnZXItPmNvbm5lY3Rpb25D
bG9zZWQoY29ubmVjdGlvbik7CiAgICAgfQogCi0gICAgZW51bSBjbGFzcyBTdG9yYWdlVHlwZSA6
IHVpbnQ4X3QgewotICAgICAgICBGaWxlU3lzdGVtLAotICAgIH07Ci0KLSAgICBzdGF0aWMgU3Ry
aW5nIHRvU3RvcmFnZUlkZW50aWZpZXIoU3RvcmFnZVR5cGUgdHlwZSkKLSAgICB7Ci0gICAgICAg
IHN3aXRjaCAodHlwZSkgewotICAgICAgICBjYXNlIFN0b3JhZ2VUeXBlOjpGaWxlU3lzdGVtOgot
ICAgICAgICAgICAgcmV0dXJuICJGaWxlU3lzdGVtIl9zOwotICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIHJldHVybiAiIl9zOwotICAgIH0KLQotICAgIFN0cmluZyB0eXBlU3RvcmFnZVBh
dGgoU3RvcmFnZVR5cGUgdHlwZSkgY29uc3QKKyAgICBTdHJpbmcgdHlwZVN0b3JhZ2VQYXRoKGNv
bnN0IFN0cmluZyYgc3RvcmFnZUlkZW50aWZpZXIpIGNvbnN0CiAgICAgewotICAgICAgICBhdXRv
IHN0b3JhZ2VJZGVudGlmaWVyID0gdG9TdG9yYWdlSWRlbnRpZmllcih0eXBlKTsKLSAgICAgICAg
aWYgKG1fcm9vdFBhdGguaXNFbXB0eSgpIHx8IHN0b3JhZ2VJZGVudGlmaWVyLmlzRW1wdHkoKSkK
LSAgICAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotCi0gICAgICAgIHJldHVybiBGaWxl
U3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9yb290UGF0aCwgc3RvcmFnZUlkZW50
aWZpZXIpOworICAgICAgICByZXR1cm4gbV9yb290UGF0aC5pc0VtcHR5KCkgPyBlbXB0eVN0cmlu
ZygpIDogRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fcm9vdFBhdGgsIHN0
b3JhZ2VJZGVudGlmaWVyKTsKICAgICB9CiAKICAgICBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIm
IGZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcihGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5
JiByZWdpc3RyeSkKICAgICB7CiAgICAgICAgIGlmICghbV9maWxlU3lzdGVtU3RvcmFnZU1hbmFn
ZXIpCi0gICAgICAgICAgICBtX2ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlciA9IG1ha2VVbmlxdWU8
RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyPih0eXBlU3RvcmFnZVBhdGgoU3RvcmFnZVR5cGU6OkZp
bGVTeXN0ZW0pLCByZWdpc3RyeSk7CisgICAgICAgICAgICBtX2ZpbGVTeXN0ZW1TdG9yYWdlTWFu
YWdlciA9IG1ha2VVbmlxdWU8RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyPih0eXBlU3RvcmFnZVBh
dGgoIkZpbGVTeXN0ZW0iKSwgcmVnaXN0cnkpOwogCiAgICAgICAgIHJldHVybiAqbV9maWxlU3lz
dGVtU3RvcmFnZU1hbmFnZXI7CiAgICAgfQogCi0gICAgYm9vbCBpc0FjdGl2ZSgpCi0gICAgewot
ICAgICAgICByZXR1cm4gISFtX2ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjsKLSAgICB9Ci0KLSAg
ICB2b2lkIGRlbGV0ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gdHlwZXMsIFdhbGxU
aW1lIG1vZGlmaWVkU2luY2VUaW1lKQotICAgIHsKLSAgICAgICAgaWYgKHR5cGVzLmNvbnRhaW5z
KFdlYnNpdGVEYXRhVHlwZTo6RmlsZVN5c3RlbSkpCi0gICAgICAgICAgICBkZWxldGVGaWxlU3lz
dGVtU3RvcmFnZURhdGEobW9kaWZpZWRTaW5jZVRpbWUpOwotCi0gICAgICAgIEZpbGVTeXN0ZW06
OmRlbGV0ZU5vbkVtcHR5RGlyZWN0b3J5KG1fcm9vdFBhdGgpOwotICAgIH0KLQogcHJpdmF0ZToK
LSAgICB2b2lkIGRlbGV0ZUZpbGVTeXN0ZW1TdG9yYWdlRGF0YShXYWxsVGltZSBtb2RpZmllZFNp
bmNlVGltZSkKLSAgICB7Ci0gICAgICAgIG1fZmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyID0gbnVs
bHB0cjsKLQotICAgICAgICBhdXRvIGZpbGVTeXN0ZW1TdG9yYWdlUGF0aCA9IHR5cGVTdG9yYWdl
UGF0aChTdG9yYWdlVHlwZTo6RmlsZVN5c3RlbSk7Ci0gICAgICAgIEZpbGVTeXN0ZW06OmRlbGV0
ZUFsbEZpbGVzTW9kaWZpZWRTaW5jZShmaWxlU3lzdGVtU3RvcmFnZVBhdGgsIG1vZGlmaWVkU2lu
Y2VUaW1lKTsKLSAgICB9Ci0KICAgICBTdHJpbmcgbV9yb290UGF0aDsKICAgICBTdHJpbmcgbV9p
ZGVudGlmaWVyOwogICAgIFN0b3JhZ2VCdWNrZXRNb2RlIG1fbW9kZSB7IFN0b3JhZ2VCdWNrZXRN
b2RlOjpCZXN0RWZmb3J0IH07CkBAIC0xMTUsNyArNzQsNiBAQCBwcml2YXRlOgogT3JpZ2luU3Rv
cmFnZU1hbmFnZXI6Ok9yaWdpblN0b3JhZ2VNYW5hZ2VyKFN0cmluZyYmIHBhdGgpCiAgICAgOiBt
X3BhdGgoV1RGTW92ZShwYXRoKSkKIHsKLSAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
IH0KIAogT3JpZ2luU3RvcmFnZU1hbmFnZXI6On5PcmlnaW5TdG9yYWdlTWFuYWdlcigpID0gZGVm
YXVsdDsKQEAgLTE0NSwxNiArMTAzLDUgQEAgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyJiBPcmln
aW5TdG9yYWdlTWFuYWdlcjo6ZmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyKEZpbGVTeXMKICAgICBy
ZXR1cm4gZGVmYXVsdEJ1Y2tldCgpLmZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcihyZWdpc3RyeSk7
CiB9CiAKLWJvb2wgT3JpZ2luU3RvcmFnZU1hbmFnZXI6OmlzQWN0aXZlKCkKLXsKLSAgICByZXR1
cm4gZGVmYXVsdEJ1Y2tldCgpLmlzQWN0aXZlKCk7Ci19Ci0KLXZvaWQgT3JpZ2luU3RvcmFnZU1h
bmFnZXI6OmRlbGV0ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gdHlwZXMsIFdhbGxU
aW1lIG1vZGlmaWVkU2luY2UpCi17Ci0gICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7Ci0g
ICAgZGVmYXVsdEJ1Y2tldCgpLmRlbGV0ZURhdGEodHlwZXMsIG1vZGlmaWVkU2luY2UpOwotfQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL09yaWdpblN0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFnZXIuaAppbmRleCBkYTMx
MGM4NjIyODBhZmI2MjA5YTkxMWI0NWVkMzQ2NjBlOWRiYzMxLi5hNGMxMWFkNjVhNWMxOTcwM2E3
YzBlOTI5NGJjMmZlYWFhMmZmZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFnZXIuaApAQCAtMjgsMTUg
KzI4LDEwIEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1zdHJ1Y3QgQ2xpZW50T3JpZ2luOwot
fQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVS
ZWdpc3RyeTsKIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjsKLWVudW0gY2xhc3MgV2Vi
c2l0ZURhdGFUeXBlIDogdWludDMyX3Q7CiAKIGNsYXNzIE9yaWdpblN0b3JhZ2VNYW5hZ2VyIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTQ4LDE3ICs0MywxMiBAQCBwdWJsaWM6
CiAgICAgYm9vbCBwZXJzaXN0ZWQoKSBjb25zdCB7IHJldHVybiBtX3BlcnNpc3RlZDsgfQogICAg
IHZvaWQgcGVyc2lzdCgpOwogICAgIEZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlciYgZmlsZVN5c3Rl
bVN0b3JhZ2VNYW5hZ2VyKEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkmKTsKLSAgICBi
b29sIGlzQWN0aXZlKCk7Ci0gICAgdm9pZCBkZWxldGVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0
YVR5cGU+LCBXYWxsVGltZSk7CiAKIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBTdG9yYWdlQnVj
a2V0TW9kZSA6IGJvb2w7CiAgICAgY2xhc3MgU3RvcmFnZUJ1Y2tldDsKICAgICBTdG9yYWdlQnVj
a2V0JiBkZWZhdWx0QnVja2V0KCk7CiAKLSAgICB2b2lkIGNyZWF0ZU9yaWdpbkZpbGVJZk5lY2Vz
c2FyeShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKTsKLSAgICB2b2lkIGRlbGV0ZU9yaWdp
bkZpbGVJZk5lY2Vzc2FyeSgpOwotCiAgICAgc3RkOjp1bmlxdWVfcHRyPFN0b3JhZ2VCdWNrZXQ+
IG1fZGVmYXVsdEJ1Y2tldDsKICAgICBTdHJpbmcgbV9wYXRoOwogICAgIGJvb2wgbV9wZXJzaXN0
ZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGEuY3BwCmluZGV4IGY5YjJmZTA0MDlkYzQzMGIxZDNkM2FlYjAwZTc2YjAwYjNmMDU2
YjkuLmYzNzI5MDEzOGI0ZmFmZjMyMzUzYjJhY2RhZGU4MzQwMGRhOWNjOGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YS5jcHAKQEAgLTEyOSw4
ICsxMjksNiBAQCBXZWJzaXRlRGF0YVByb2Nlc3NUeXBlIFdlYnNpdGVEYXRhOjpvd25lclByb2Nl
c3MoV2Vic2l0ZURhdGFUeXBlIGRhdGFUeXBlKQogICAgIGNhc2UgV2Vic2l0ZURhdGFUeXBlOjpB
bHRlcm5hdGl2ZVNlcnZpY2VzOgogICAgICAgICByZXR1cm4gV2Vic2l0ZURhdGFQcm9jZXNzVHlw
ZTo6TmV0d29yazsKICNlbmRpZgotICAgIGNhc2UgV2Vic2l0ZURhdGFUeXBlOjpGaWxlU3lzdGVt
OgotICAgICAgICByZXR1cm4gV2Vic2l0ZURhdGFQcm9jZXNzVHlwZTo6TmV0d29yazsKICAgICB9
CiAKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFUeXBlLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVR5cGUuaAppbmRleCBlNDU5YTA5MDM4
YTQ4YTE5ODZkNmQzMzk2NjQzMzI4MzM3NWE0NTRjLi43YTllNTAwZmUxYjA5ZTM4OTVkZDc0M2Ux
NjVjOTg5MThiZTdhOGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVR5cGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVR5cGUuaApAQCAtNTIsNyArNTIsNiBAQCBlbnVtIGNsYXNzIFdlYnNp
dGVEYXRhVHlwZSA6IHVpbnQzMl90IHsKICNpZiBIQVZFKENGTkVUV09SS19BTFRFUk5BVElWRV9T
RVJWSUNFKQogICAgIEFsdGVybmF0aXZlU2VydmljZXMgPSAxIDw8IDE4LAogI2VuZGlmCi0gICAg
RmlsZVN5c3RlbSA9IDEgPDwgMTksCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKQEAgLTgw
LDExICs3OSwxMCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktpdDo6V2Vic2l0
ZURhdGFUeXBlPiB7CiAjZW5kaWYKICAgICAgICAgV2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6OkRP
TUNhY2hlLAogICAgICAgICBXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZTo6RGV2aWNlSWRIYXNoU2Fs
dCwKLSAgICAgICAgV2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6OlByaXZhdGVDbGlja01lYXN1cmVt
ZW50cywKKyAgICAgICAgV2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50cwogI2lmIEhBVkUoQ0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UpCi0gICAgICAg
IFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlOjpBbHRlcm5hdGl2ZVNlcnZpY2VzLAorICAgICAgICAs
IFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlOjpBbHRlcm5hdGl2ZVNlcnZpY2VzCiAjZW5kaWYKLSAg
ICAgICAgV2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6OkZpbGVTeXN0ZW0KICAgICA+OwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFSZWNvcmQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVJlY29yZC5tbQppbmRleCBmYTExMTNlNDdjMmE0NDQxNGJkMmFkZDE5MmQwMmU3NTA3ZjMy
NWUzLi5jODI2MTZmNzkwYzZmYzY5MGE2Y2JkNjk3YTBlOGVjZGE1MjI3ZmIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJl
Y29yZC5tbQpAQCAtNTEsNyArNTEsNiBAQCBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRh
VHlwZUNyZWRlbnRpYWxzID0gQCJfV0tXZWJzaXRlRGF0YVR5cGVDcmVkZW50aWFscwogTlNTdHJp
bmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVBZENsaWNrQXR0cmlidXRpb25zID0gQCJfV0tX
ZWJzaXRlRGF0YVR5cGVBZENsaWNrQXR0cmlidXRpb25zIjsKIE5TU3RyaW5nICogY29uc3QgX1dL
V2Vic2l0ZURhdGFUeXBlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzID0gQCJfV0tXZWJzaXRlRGF0
YVR5cGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudHMiOwogTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJz
aXRlRGF0YVR5cGVBbHRlcm5hdGl2ZVNlcnZpY2VzID0gQCJfV0tXZWJzaXRlRGF0YVR5cGVBbHRl
cm5hdGl2ZVNlcnZpY2VzIjsKLU5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlRmls
ZVN5c3RlbSA9IEAiX1dLV2Vic2l0ZURhdGFUeXBlRmlsZVN5c3RlbSI7CiAKICNpZiBQTEFURk9S
TShNQUMpCiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVBsdWdJbkRhdGEgPSBA
Il9XS1dlYnNpdGVEYXRhVHlwZVBsdWdJbkRhdGEiOwpAQCAtMTExLDggKzExMCw2IEBAIHN0YXRp
YyBOU1N0cmluZyAqZGF0YVR5cGVzVG9TdHJpbmcoTlNTZXQgKmRhdGFUeXBlcykKICAgICAgICAg
W2FycmF5IGFkZE9iamVjdDpAIlByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzIl07CiAgICAgaWYg
KFtkYXRhVHlwZXMgY29udGFpbnNPYmplY3Q6X1dLV2Vic2l0ZURhdGFUeXBlQWx0ZXJuYXRpdmVT
ZXJ2aWNlc10pCiAgICAgICAgIFthcnJheSBhZGRPYmplY3Q6QCJBbHRlcm5hdGl2ZSBTZXJ2aWNl
cyJdOwotICAgIGlmIChbZGF0YVR5cGVzIGNvbnRhaW5zT2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlw
ZUZpbGVTeXN0ZW1dKQotICAgICAgICBbYXJyYXkgYWRkT2JqZWN0OkAiRmlsZSBTeXN0ZW0iXTsK
IAogICAgIHJldHVybiBbYXJyYXkgY29tcG9uZW50c0pvaW5lZEJ5U3RyaW5nOkAiLCAiXTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhUmVjb3JkSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhUmVjb3JkSW50ZXJuYWwuaAppbmRleCA5MTQ0OGVlMWQ1NTFkZTQyMDY1ODY3
YjgxNWRiZGYxZGVmYTc1YzI5Li5kYmM1ZjNmN2ExZmY0ZmI3NDlhYWZkNzBlNTcwYmEwNDg1Njhh
Y2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVJlY29yZEludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRJbnRlcm5hbC5oCkBAIC03Nyw4ICs3Nyw2IEBAIHN0
YXRpYyBpbmxpbmUgc3RkOjpvcHRpb25hbDxXZWJzaXRlRGF0YVR5cGU+IHRvV2Vic2l0ZURhdGFU
eXBlKE5TU3RyaW5nICp3ZWJzaXRlCiAgICAgaWYgKFt3ZWJzaXRlRGF0YVR5cGUgaXNFcXVhbFRv
U3RyaW5nOl9XS1dlYnNpdGVEYXRhVHlwZUFsdGVybmF0aXZlU2VydmljZXNdKQogICAgICAgICBy
ZXR1cm4gV2Vic2l0ZURhdGFUeXBlOjpBbHRlcm5hdGl2ZVNlcnZpY2VzOwogI2VuZGlmCi0gICAg
aWYgKFt3ZWJzaXRlRGF0YVR5cGUgaXNFcXVhbFRvU3RyaW5nOl9XS1dlYnNpdGVEYXRhVHlwZUZp
bGVTeXN0ZW1dKQotICAgICAgICByZXR1cm4gV2Vic2l0ZURhdGFUeXBlOjpGaWxlU3lzdGVtOwog
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKQEAgLTEzNiw4ICsxMzQsNiBAQCBzdGF0aWMg
aW5saW5lIFJldGFpblB0cjxOU1NldD4gdG9XS1dlYnNpdGVEYXRhVHlwZXMoT3B0aW9uU2V0PFdl
YktpdDo6V2Vic2l0ZURhdAogICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNp
dGVEYXRhVHlwZTo6QWx0ZXJuYXRpdmVTZXJ2aWNlcykpCiAgICAgICAgIFt3a1dlYnNpdGVEYXRh
VHlwZXMgYWRkT2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlwZUFsdGVybmF0aXZlU2VydmljZXNdOwog
I2VuZGlmCi0gICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBl
OjpGaWxlU3lzdGVtKSkKLSAgICAgICAgW3drV2Vic2l0ZURhdGFUeXBlcyBhZGRPYmplY3Q6X1dL
V2Vic2l0ZURhdGFUeXBlRmlsZVN5c3RlbV07CiAKICAgICByZXR1cm4gd2tXZWJzaXRlRGF0YVR5
cGVzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZFByaXZhdGUuaAppbmRleCAyY2Y5YTRkMmEwYzdmY2Uy
NWI2NTA2YWMxN2JkNzExMTdjOTc1MWUxLi5kNjA3ZGZlMTNmNjEyYjU4MjIwZTVhMzUyNTc3NDcw
NTMxZWU0OTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVJlY29yZFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZFByaXZhdGUuaApAQCAtMzcsNyArMzcsNiBA
QCBXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVDcmVkZW50aWFs
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKAogV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dL
V2Vic2l0ZURhdGFUeXBlQWRDbGlja0F0dHJpYnV0aW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjE1KSwgaW9zKDEzLjApKTsKIFdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNp
dGVEYXRhVHlwZVByaXZhdGVDbGlja01lYXN1cmVtZW50cyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEyLjApLCBpb3MoMTUuMCkpOwogV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0
ZURhdGFUeXBlQWx0ZXJuYXRpdmVTZXJ2aWNlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjAp
LCBpb3MoMTQuMCkpOwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFU
eXBlRmlsZVN5c3RlbSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKIFdLX0VYVEVSTiBOU1N0cmluZyAq
IGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVBsdWdJbkRhdGEgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggN2VmMDY5NTBhYjA3ZDNlMWE3NjE2Y2JjYjU4
YmQyNTc4NTM1OWVjNy4uZTJiMDczNjQ2NGIxNjZkZDkyMGNmMzU1MTcxZmIzYTU2MzcwYTM4NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVN0b3JlLm1tCkBAIC0yNDgsOCArMjQ4LDcgQEAgKyAoTlNTZXQ8TlNTdHJpbmcgKj4g
KilfYWxsV2Vic2l0ZURhdGFUeXBlc0luY2x1ZGluZ1ByaXZhdGUKICAgICAgICAgICAgIF9XS1dl
YnNpdGVEYXRhVHlwZUNyZWRlbnRpYWxzLAogICAgICAgICAgICAgX1dLV2Vic2l0ZURhdGFUeXBl
QWRDbGlja0F0dHJpYnV0aW9ucywKICAgICAgICAgICAgIF9XS1dlYnNpdGVEYXRhVHlwZVByaXZh
dGVDbGlja01lYXN1cmVtZW50cywKLSAgICAgICAgICAgIF9XS1dlYnNpdGVEYXRhVHlwZUFsdGVy
bmF0aXZlU2VydmljZXMsCi0gICAgICAgICAgICBfV0tXZWJzaXRlRGF0YVR5cGVGaWxlU3lzdGVt
CisgICAgICAgICAgICBfV0tXZWJzaXRlRGF0YVR5cGVBbHRlcm5hdGl2ZVNlcnZpY2VzCiAjaWYg
IVRBUkdFVF9PU19JUEhPTkUKICAgICAgICAgICAgICwgX1dLV2Vic2l0ZURhdGFUeXBlUGx1Z0lu
RGF0YQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA4YjRhNDZkMDMzYzEwZmNmNzcwZTc1MGU5MzA5YTdiNjEwYzdmZmIwLi5k
ZGExNzQ5MjliMDk0NWMxNmI3NGQwODhhZjkwYzczNGEzYWQxN2Q5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1MDQsOSArMTUwNCw2
IEBACiAJCTkzRDZCN0I1MjU1MjY4RDcwMDU4REQzQSAvKiBTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0Q2QjdCMjI1NTI2OEEyMDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uTWFuYWdlci5oICovOyB9OwogCQk5M0Q2QjdCOTI1NTM0QTE3MDA1OEREM0EgLyogV0tTcGVl
Y2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNENkI3QjcyNTUzNEExMTAwNThERDNBIC8qIFdLU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0U2QTRFRTFCQzVERDM5MDBGOEEwRTcgLyog
X1dLSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNFNkE0RUQxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5M0U3OTk4
NTI3NTZGQTU1MDA3NDAwOEEgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRTc5OTgyMjc1NkZBNTQwMDc0MDA4QSAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwotCQk5M0U3OTk4NzI3NTZGQUI0MDA3NDAw
OEEgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0U3OTk4MzI3NTZG
QTU0MDA3NDAwOEEgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uTWVzc2FnZXNSZXBs
aWVzLmggKi87IH07Ci0JCTkzRTc5OTg4Mjc1NkZBQzIwMDc0MDA4QSAvKiBXZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNFNzk5ODEyNzU2RkE1MzAwNzQwMDhBIC8qIFdlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CiAJCTkzRjU0OUI0MUUzMTc0Qjcw
MDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNTQ5QjMxRTMxNzRCNzAwMEU3MjM5IC8qIFdL
U25hcHNob3RDb25maWd1cmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVi
bGljLCApOyB9OyB9OwogCQk5NTBGMjg4MDI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmlj
ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NTBGMjg3RTI1MjQxNEU5MDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggKi87
IH07CiAJCTk1NjUwODM5MjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNTUEku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1NjUwODM3
MjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNTUEkuaCAqLzsgfTsKQEAgLTUz
MjUsMTAgKzUzMjIsNiBAQAogCQk5M0Q2QjdCNzI1NTM0QTExMDA1OEREM0EgLyogV0tTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDZCN0I4MjU1MzRBMTIwMDU4REQzQSAvKiBXS1NwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdLU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0U2QTRFRDFCQzVERDM5MDBGOEEwRTcg
LyogX1dLSGl0VGVzdFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBf
V0tIaXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzRTc5OTdF
Mjc1NkY2NzAwMDc0MDA4QSAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5M0U3OTk4MTI3
NTZGQTUzMDA3NDAwOEEgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uTWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNFNzk5
ODIyNzU2RkE1NDAwNzQwMDhBIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbk1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk5M0U3OTk4MzI3NTZGQTU0MDA3NDAwOEEgLyogV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbk1lc3NhZ2VzUmVw
bGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y1NDlCMzFFMzE3NEI3MDAw
RTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTNGNTQ5QjUxRTMxNzREQTAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1
cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTbmFw
c2hvdENvbmZpZ3VyYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEYy
ODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tNb3VzZURldmljZU9ic2VydmVyLmg7IHBhdGggPSBp
b3MvV0tNb3VzZURldmljZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMDYzNCw3ICsxMDYyNyw2IEBACiAJCQkJQkMwMzJENjgxMEY0Mzc4RDAwNThDMTVBIC8qIFdl
YkVkaXRvckNsaWVudC5oICovLAogCQkJCTkzNTQyNDJCMjcwM0JEQ0IwMDVDQTcyQyAvKiBXZWJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwICovLAogCQkJCTkzNTQyNDJBMjcwM0JEQ0Iw
MDVDQTcyQyAvKiBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCAqLywKLQkJCQk5M0U3
OTk3RTI3NTZGNjcwMDA3NDAwOEEgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLm1l
c3NhZ2VzLmluICovLAogCQkJCUJDMTExQTU4MTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAgKi8sCiAJCQkJQkMwMzJENkExMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkZy
YW1lTG9hZGVyQ2xpZW50LmggKi8sCiAJCQkJQkMxQkUxREYxMkQ1NEE0MTAwMDRBMjI4IC8qIFdl
Ykdlb2xvY2F0aW9uQ2xpZW50LmNwcCAqLywKQEAgLTEyMTEyLDkgKzEyMTA0LDYgQEAKIAkJCQlF
Mzg2NkIwNzIzOTk5NzlEMDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92
aWRlck1lc3NhZ2VzLmggKi8sCiAJCQkJRTM4NjZCMDQyMzk5OTc5QzAwRjg4RkU5IC8qIFdlYkRl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CiAJCQkJRTM4NjZCMDUyMzk5OTc5QzAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXJQcm94eU1lc3NhZ2VzLmggKi8sCi0JCQkJOTNFNzk5ODIyNzU2RkE1NDAwNzQw
MDhBIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCi0JCQkJOTNFNzk5ODEyNzU2RkE1MzAwNzQwMDhBIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbk1lc3NhZ2VzLmggKi8sCi0JCQkJOTNFNzk5ODMyNzU2RkE1NDAwNzQwMDhBIC8q
IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbk1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJ
CUNENzNCQTQ4MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8sCiAJCQkJQ0Q3M0JBNDkxMzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCAqLywKIAkJCQlDRDczQkE0NTEzMUFDQzg4MDBFRURFRDIg
LyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0x
MzM2MSw4ICsxMzM1MCw2IEBACiAJCQkJQkMwMzJEQkIxMEY0MzgwRjAwNThDMTVBIC8qIFdlYkV2
ZW50Q29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxMTFCNUQxMTJGNjI5ODAwMzM3
QkFCIC8qIFdlYkV2ZW50RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1NDI0MkMyNzAz
QkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJOTNFNzk5ODgyNzU2RkFDMjAwNzQwMDhBIC8qIFdlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKLQkJCQk5M0U3OTk4NzI3NTZG
QUI0MDA3NDAwOEEgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uTWVzc2FnZXNSZXBs
aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTkwQzFFRTEyNjRGRDUwMDAzRTQ0RDQgLyogV2Vi
RmluZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTQ2OTU0MTIxNEU2Q0IwMDBCOThF
QiAvKiBXZWJGb3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U0Njk1NjEyMTRFNkNC
MDAwQjk4RUIgLyogV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5LmggaW4gSGVhZGVycyAq
LywKQEAgLTE1NDkxLDcgKzE1NDc4LDYgQEAKIAkJCQlFMzg2NkFFNTIzOTc0MDA0MDBGODhGRTkg
LyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRTM4NjZCMDkyMzk5QTJENTAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyRDkyQTc4OTIxMkI2QUIxMDBGNDkzRkQgLyogV2ViRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJOTNFNzk5ODUyNzU2RkE1NTAwNzQwMDhBIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDczQkE0RTEz
MUFDREI3MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q3M0JBNDcxMzFBQ0M5QTAwRUVERUQyIC8qIFdlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkMwRTYwNjExMkQ2QkE5MTAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4
IDk0ZDlkMmNjM2ViMjg4MGNkY2YyMmMwNzJhMzlhOTg5NTVmZDQ0MzAuLjQ3YjkxY2U4N2QzNjEz
ZTM1ZDU3OTQwNzk3YWRmMGIxZGQwMGE0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApA
QCAtMzcsOCArMzcsNiBAQAogI2luY2x1ZGUgIldlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCiAj
aW5jbHVkZSAiV2ViQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCi0jaW5jbHVkZSAiV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCi0jaW5jbHVk
ZSAiV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJX
ZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIgogI2luY2x1
ZGUgIldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1lc3NhZ2VzLmgiCkBAIC0xMjEsMTAgKzExOSw2
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQCiAgICAgICAgICAgICBzdG9yYWdlQXJlYU1hcC0+
ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2Vz
OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkg
ewotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24oKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KIAogI2lmIFVTRShMSUJXRUJSVEMpCiAgICAgaWYgKGRlY29kZXIubWVz
c2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJSVENNb25pdG9yOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
MmVjZGNmN2Q5ZDUxNTdjZjgzYmJiMjQzMzQwZWFlOGYzNTdjYjc0Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4K
KysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQK
LSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0j
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLW1lc3NhZ2VzIC0+IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
biBOb3RSZWZDb3VudGVkIHsKLSAgICBJbnZhbGlkYXRlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKQotfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGRlYWJmZmJmYjRl
ODk2ZDJlOWY5NjBmZDk4ZDA1MDhjZmVlNDM5NmYuLmQ3MTM0MmM1MjYwNjZjMDY0Njk2NTM3ZmE3
Y2E5YjFlNDE3OGY2ZDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0xMi0wNiAgUnlhbiBIYWRkYWQgIDxyeWFu
aGFkZGFkQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjg2NTA3KTogW21hY09T
XSBNYW55IGZpbGUgc3lzdGVtIGFjY2VzcyBsYXlvdXQgdGVzdHMgYmVjYW1lIGZsYWt5IGZhaWx1
cmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM4
OTIKKworICAgICAgICBVbnJldmlld2VkLCByZXZlcnQgcjI4NjUwNy4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5tbToKKwogMjAy
MS0xMi0wNiAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIEdQ
VSBQcm9jZXNzIGZlYXR1cmUgZmxhZ3MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvRmlsZVN5c3RlbUFjY2Vzcy5tbQppbmRleCA2NjA3NzRhOTE3
MjMxYTIzMDZiNWQ2MjZkN2ZiNWZkYThmYmIzMTliLi43YmJlM2M5ZjYyYzFkOTdjMzE5NTUyYTE5
MDNkOTE1YWQ1ZjdhMjFhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0ZpbGVTeXN0ZW1BY2Nlc3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9GaWxlU3lzdGVtQWNjZXNzLm1tCkBAIC0yOSwxMyArMjksMTEgQEAK
IAogI2ltcG9ydCAiRGVwcmVjYXRlZEdsb2JhbFZhbHVlcy5oIgogI2ltcG9ydCAiUGxhdGZvcm1V
dGlsaXRpZXMuaCIKLSNpbXBvcnQgIlRlc3RVSURlbGVnYXRlLmgiCiAjaW1wb3J0ICJUZXN0VVJM
U2NoZW1lSGFuZGxlci5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgogI2ltcG9ydCA8V2Vi
S2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+
Ci0jaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVJlY29yZFByaXZhdGUuaD4KIAogQGludGVy
ZmFjZSBGaWxlU3lzdGVtQWNjZXNzTWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRN
ZXNzYWdlSGFuZGxlcj4KIEBlbmQKQEAgLTUwLDcgKzQ4LDcgQEAgLSAodm9pZCl1c2VyQ29udGVu
dENvbnRyb2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNlckNvbnRlbnRDb250cm9s
bGVyIGQKIAogQGVuZAogCi1zdGF0aWMgTlNTdHJpbmcgKndvcmtlckZyYW1lU3RyaW5nID0gQCI8
c2NyaXB0PiBcCitzdGF0aWMgTlNTdHJpbmcgKm1haW5GcmFtZVN0cmluZyA9IEAiPHNjcmlwdD4g
XAogICAgIGZ1bmN0aW9uIHN0YXJ0KCkgeyBcCiAgICAgICAgIHZhciB3b3JrZXIgPSBuZXcgV29y
a2VyKCd3b3JrZXIuanMnKTsgXAogICAgICAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24o
ZXZlbnQpIHsgXApAQCAtMTE3LDcgKzExNSw3IEBAIFRFU1QoRmlsZVN5c3RlbUFjY2VzcywgV2Vi
UHJvY2Vzc0NyYXNoRHVyaW5nV3JpdGUpCiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1l
SGFuZGxlcjpzY2hlbWVIYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIndlYmtpdCJdOwogCiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24u
Z2V0KCldKTsKLSAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzp3b3JrZXJGcmFtZVN0cmluZyBi
YXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAid2Via2l0Oi8vd2Via2l0Lm9yZyJdXTsKKyAg
ICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzptYWluRnJhbWVTdHJpbmcgYmFzZVVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzpAIndlYmtpdDovL3dlYmtpdC5vcmciXV07CiAgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIHJlY2VpdmVkU2NyaXB0
TWVzc2FnZSA9IGZhbHNlOwogICAgIEVYUEVDVF9XS19TVFJFUShAInBhZ2UgaXMgbG9hZGVkIiwg
W2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKQEAgLTEyOCw3ICsxMjYsNyBAQCBURVNUKEZpbGVT
eXN0ZW1BY2Nlc3MsIFdlYlByb2Nlc3NDcmFzaER1cmluZ1dyaXRlKQogICAgIEVYUEVDVF9XS19T
VFJFUShAInN1Y2Nlc3M6IHdyaXRlIDEwIGJ5dGVzIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHld
KTsKIAogICAgIGF1dG8gc2Vjb25kV2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpj
b25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgW3NlY29uZFdlYlZpZXcgbG9hZEhUTUxTdHJpbmc6
d29ya2VyRnJhbWVTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAIndlYmtpdDov
L3dlYmtpdC5vcmciXV07CisgICAgW3NlY29uZFdlYlZpZXcgbG9hZEhUTUxTdHJpbmc6bWFpbkZy
YW1lU3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ3ZWJraXQ6Ly93ZWJraXQu
b3JnIl1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNz
YWdlKTsKICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKICAgICBFWFBFQ1RfV0tf
U1RSRVEoQCJwYWdlIGlzIGxvYWRlZCIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CkBAIC0x
NzAsNyArMTY4LDcgQEAgVEVTVChGaWxlU3lzdGVtQWNjZXNzLCBOZXR3b3JrUHJvY2Vzc0NyYXNo
RHVyaW5nV3JpdGUpCiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpzY2hl
bWVIYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIndlYmtpdCJdOwogCiAgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAg
ICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzp3b3JrZXJGcmFtZVN0cmluZyBiYXNlVVJMOltOU1VS
TCBVUkxXaXRoU3RyaW5nOkAid2Via2l0Oi8vd2Via2l0Lm9yZyJdXTsKKyAgICBbd2ViVmlldyBs
b2FkSFRNTFN0cmluZzptYWluRnJhbWVTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAIndlYmtpdDovL3dlYmtpdC5vcmciXV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZh
bHNlOwogICAgIEVYUEVDVF9XS19TVFJFUShAInBhZ2UgaXMgbG9hZGVkIiwgW2xhc3RTY3JpcHRN
ZXNzYWdlIGJvZHldKTsKQEAgLTI2MCwxOTYgKzI1OCw0IEBAIFRFU1QoRmlsZVN5c3RlbUFjY2Vz
cywgTWlncmF0ZVRvTmV3U3RvcmFnZURpcmVjdG9yeSkKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJm
aWxlIGlzIG9wZW5lZCIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CiB9CiAKLXN0YXRpYyBO
U1N0cmluZyAqdGVzdFN0cmluZyA9IEAiPHNjcmlwdD4gXAotICAgIGFzeW5jIGZ1bmN0aW9uIG9w
ZW4oc2hvdWxkQ3JlYXRlRmlsZSkgXAotICAgIHsgXAotICAgICAgICB0cnkgeyBcCi0gICAgICAg
ICAgICB2YXIgcm9vdEhhbmRsZSA9IGF3YWl0IG5hdmlnYXRvci5zdG9yYWdlLmdldERpcmVjdG9y
eSgpOyBcCi0gICAgICAgICAgICB2YXIgZmlsZUhhbmRsZSA9IGF3YWl0IHJvb3RIYW5kbGUuZ2V0
RmlsZUhhbmRsZSgnZmlsZS1zeXN0ZW0tYWNjZXNzLnR4dCcsIHsgJ2NyZWF0ZScgOiBzaG91bGRD
cmVhdGVGaWxlIH0pOyBcCi0gICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnZmlsZSBpcyBvcGVuZWQnKTsgXAotICAgICAgICB9
IGNhdGNoKGVycikgeyBcCi0gICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnZXJyb3I6ICcgKyBlcnIubmFtZSArICcgLSAnICsg
ZXJyLm1lc3NhZ2UpOyBcCi0gICAgICAgIH0gXAotICAgIH0gXAotICAgIG9wZW4odHJ1ZSk7IFwK
LSAgICA8L3NjcmlwdD4iOwotCi1URVNUKEZpbGVTeXN0ZW1BY2Nlc3MsIEZldGNoQW5kUmVtb3Zl
RGF0YSkKLXsKLSAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbRmlsZVN5c3RlbUFjY2Vzc01l
c3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7Ci0gICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBbW2NvbmZp
Z3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpo
YW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJdOwotICAgIGF1dG8gd2Vic2l0ZURhdGFT
dG9yZSA9IFtjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdOwotICAgIGF1dG8gdHlwZXMg
PSBbTlNTZXQgc2V0V2l0aE9iamVjdDpfV0tXZWJzaXRlRGF0YVR5cGVGaWxlU3lzdGVtXTsKLQot
ICAgIC8vIFJlbW92ZSBleGlzdGluZyBkYXRhLgotICAgIGRvbmUgPSBmYWxzZTsKLSAgICBbd2Vi
c2l0ZURhdGFTdG9yZSByZW1vdmVEYXRhT2ZUeXBlczp0eXBlcyBtb2RpZmllZFNpbmNlOltOU0Rh
dGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4gewotICAgICAgICBkb25lID0gdHJ1
ZTsKLSAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwotCi0gICAg
YXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKLSAgICBwcmVm
ZXJlbmNlcy5fZmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQgPSBZRVM7Ci0gICAgcHJlZmVyZW5jZXMu
X3N0b3JhZ2VBUElFbmFibGVkID0gWUVTOwotICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgW3dlYlZpZXcgbG9hZEhU
TUxTdHJpbmc6dGVzdFN0cmluZyBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6
Ly93ZWJraXQub3JnIl1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRT
Y3JpcHRNZXNzYWdlKTsKLSAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBF
WFBFQ1RfV0tfU1RSRVEoQCJmaWxlIGlzIG9wZW5lZCIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5
XSk7Ci0KLSAgICAvLyBGZXRjaCBkYXRhIGFuZCByZW1vdmUgaXQgYnkgb3JpZ2luLgotICAgIGRv
bmUgPSBmYWxzZTsKLSAgICBbd2Vic2l0ZURhdGFTdG9yZSBmZXRjaERhdGFSZWNvcmRzT2ZUeXBl
czp0eXBlcyBjb21wbGV0aW9uSGFuZGxlcjpeKE5TQXJyYXk8V0tXZWJzaXRlRGF0YVJlY29yZCAq
PiAqcmVjb3JkcykgewotICAgICAgICBFWFBFQ1RfRVEocmVjb3Jkcy5jb3VudCwgMXUpOwotICAg
ICAgICBhdXRvIHJlY29yZCA9IFtyZWNvcmRzIG9iamVjdEF0SW5kZXg6MF07Ci0gICAgICAgIEVY
UEVDVF9TVFJFUSgid2Via2l0Lm9yZyIsIFtyZWNvcmQuZGlzcGxheU5hbWUgVVRGOFN0cmluZ10p
OwotCi0gICAgICAgIC8vIFJlbW92ZSBkYXRhLgotICAgICAgICBbd2Vic2l0ZURhdGFTdG9yZSBy
ZW1vdmVEYXRhT2ZUeXBlczp0eXBlcyBmb3JEYXRhUmVjb3JkczpyZWNvcmRzIGNvbXBsZXRpb25I
YW5kbGVyOl57Ci0gICAgICAgICAgICBkb25lID0gdHJ1ZTsKLSAgICAgICAgfV07Ci0gICAgfV07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKLQotICAgIC8vIEZldGNoIGRh
dGEgYWZ0ZXIgcmVtb3ZhbC4KLSAgICBkb25lID0gZmFsc2U7Ci0gICAgW3dlYnNpdGVEYXRhU3Rv
cmUgZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6dHlwZXMgY29tcGxldGlvbkhhbmRsZXI6XihOU0Fy
cmF5PFdLV2Vic2l0ZURhdGFSZWNvcmQgKj4gKnJlY29yZHMpIHsKLSAgICAgICAgRVhQRUNUX0VR
KHJlY29yZHMuY291bnQsIDB1KTsKLSAgICAgICAgZG9uZSA9IHRydWU7Ci0gICAgfV07Ci0KLSAg
ICAvLyBGaWxlIGNhbm5vdCBiZSBvcGVuZWQgYWZ0ZXIgZGF0YSByZW1vdmFsLgotICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIm9wZW4oZmFsc2UpIiBjb21wbGV0aW9uSGFuZGxlcjpu
aWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdl
KTsKLSAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBFWFBFQ1RfV0tfU1RS
RVEoQCJlcnJvcjogTm90Rm91bmRFcnJvciAtIFRoZSBvYmplY3QgY2FuIG5vdCBiZSBmb3VuZCBo
ZXJlLiIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7Ci19Ci0KLVRFU1QoRmlsZVN5c3RlbUFj
Y2VzcywgUmVtb3ZlRGF0YUJ5TW9kaWZpY2F0aW9uVGltZSkKLXsKLSAgICBhdXRvIGhhbmRsZXIg
PSBhZG9wdE5TKFtbRmlsZVN5c3RlbUFjY2Vzc01lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7
Ci0gICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9s
bGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFu
ZGxlciJdOwotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c107Ci0gICAgcHJlZmVyZW5jZXMuX2ZpbGVTeXN0ZW1BY2Nlc3NFbmFibGVkID0gWUVTOwotICAg
IHByZWZlcmVuY2VzLl9zdG9yYWdlQVBJRW5hYmxlZCA9IFlFUzsKLSAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwg
MCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwotICAgIFt3
ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOnRlc3RTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAImh0dHBzOi8vd2Via2l0Lm9yZyJdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7Ci0gICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0g
ZmFsc2U7Ci0gICAgRVhQRUNUX1dLX1NUUkVRKEAiZmlsZSBpcyBvcGVuZWQiLCBbbGFzdFNjcmlw
dE1lc3NhZ2UgYm9keV0pOwotCi0gICAgYXV0byB3ZWJzaXRlRGF0YVN0b3JlID0gW2NvbmZpZ3Vy
YXRpb24gd2Vic2l0ZURhdGFTdG9yZV07Ci0gICAgYXV0byB0eXBlcyA9IFtOU1NldCBzZXRXaXRo
T2JqZWN0Ol9XS1dlYnNpdGVEYXRhVHlwZUZpbGVTeXN0ZW1dOwotICAgIGRvbmUgPSBmYWxzZTsK
LSAgICBfX2Jsb2NrIE5TVUludGVnZXIgcmVjb3Jkc0NvdW50OwotICAgIFt3ZWJzaXRlRGF0YVN0
b3JlIGZldGNoRGF0YVJlY29yZHNPZlR5cGVzOnR5cGVzIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNB
cnJheTxXS1dlYnNpdGVEYXRhUmVjb3JkICo+ICpyZWNvcmRzKSB7Ci0gICAgICAgIHJlY29yZHND
b3VudCA9IHJlY29yZHMuY291bnQ7Ci0gICAgICAgIEVYUEVDVF9HVChyZWNvcmRzQ291bnQsIDB1
KTsKLSAgICAgICAgZG9uZSA9IHRydWU7Ci0gICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKLQotICAgIGRvbmUgPSBmYWxzZTsKLSAgICBbd2Vic2l0ZURhdGFTdG9y
ZSByZW1vdmVEYXRhT2ZUeXBlczp0eXBlcyBtb2RpZmllZFNpbmNlOltOU0RhdGUgbm93XSBjb21w
bGV0aW9uSGFuZGxlcjpeIHsKLSAgICAgICAgW3dlYnNpdGVEYXRhU3RvcmUgZmV0Y2hEYXRhUmVj
b3Jkc09mVHlwZXM6dHlwZXMgY29tcGxldGlvbkhhbmRsZXI6XihOU0FycmF5PFdLV2Vic2l0ZURh
dGFSZWNvcmQgKj4gKnJlY29yZHMpIHsKLSAgICAgICAgICAgIHJlY29yZHNDb3VudCA9IHJlY29y
ZHMuY291bnQ7Ci0gICAgICAgICAgICBFWFBFQ1RfRVEocmVjb3Jkcy5jb3VudCwgcmVjb3Jkc0Nv
dW50KTsKLSAgICAgICAgICAgIGRvbmUgPSB0cnVlOwotICAgICAgICB9XTsKLSAgICB9XTsKLSAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwotCi0gICAgZG9uZSA9IGZhbHNlOwot
ICAgIFt3ZWJzaXRlRGF0YVN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOnR5cGVzIG1vZGlmaWVkU2lu
Y2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XiB7Ci0gICAgICAgIFt3
ZWJzaXRlRGF0YVN0b3JlIGZldGNoRGF0YVJlY29yZHNPZlR5cGVzOnR5cGVzIGNvbXBsZXRpb25I
YW5kbGVyOl4oTlNBcnJheTxXS1dlYnNpdGVEYXRhUmVjb3JkICo+ICpyZWNvcmRzKSB7Ci0gICAg
ICAgICAgICBFWFBFQ1RfRVEocmVjb3Jkcy5jb3VudCwgMHUpOwotICAgICAgICAgICAgZG9uZSA9
IHRydWU7Ci0gICAgICAgIH1dOwotICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7Ci19Ci0KLXN0YXRpYyBOU1N0cmluZyAqbWFpbkZyYW1lU3RyaW5nID0gQCI8c2Ny
aXB0PiBcCi0gICAgZnVuY3Rpb24gcG9zdFJlc3VsdChldmVudCkgXAotICAgIHsgXAotICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShl
dmVudC5kYXRhKTsgXAotICAgIH0gXAotICAgIGFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBw
b3N0UmVzdWx0LCBmYWxzZSk7IFwKLSAgICA8L3NjcmlwdD4gXAotICAgIDxpZnJhbWUgc3JjPSdo
dHRwczovLzEyNy4wLjAuMTo5MDkxLyc+IjsKLQotc3RhdGljIGNvbnN0IGNoYXIqIGZyYW1lQnl0
ZXMgPSBSIlRFU1RSRVNPVVJDRSgKLTxzY3JpcHQ+Ci1mdW5jdGlvbiBwb3N0TWVzc2FnZShtZXNz
YWdlKQotewotICAgIHBhcmVudC5wb3N0TWVzc2FnZShtZXNzYWdlLCAnKicpOwotfQotYXN5bmMg
ZnVuY3Rpb24gb3BlbigpCi17Ci0gICAgdHJ5IHsKLSAgICAgICAgdmFyIHJvb3RIYW5kbGUgPSBh
d2FpdCBuYXZpZ2F0b3Iuc3RvcmFnZS5nZXREaXJlY3RvcnkoKTsKLSAgICAgICAgdmFyIGZpbGVI
YW5kbGUgPSBhd2FpdCByb290SGFuZGxlLmdldEZpbGVIYW5kbGUoJ2ZpbGUtc3lzdGVtLWFjY2Vz
cy50eHQnLCB7ICdjcmVhdGUnIDogdHJ1ZSB9KTsKLSAgICAgICAgcG9zdE1lc3NhZ2UoJ2ZpbGUg
aXMgb3BlbmVkJyk7Ci0gICAgfSBjYXRjaChlcnIpIHsKLSAgICAgICAgcG9zdE1lc3NhZ2UoJ2Vy
cm9yOiAnICsgZXJyLm5hbWUgKyAnIC0gJyArIGVyci5tZXNzYWdlKTsKLSAgICB9Ci19Ci1vcGVu
KCk7Ci08L3NjcmlwdD4KLSlURVNUUkVTT1VSQ0UiOwotCi1URVNUKEZpbGVTeXN0ZW1BY2Nlc3Ms
IEZldGNoRGF0YUZvclRoaXJkUGFydHkpCi17Ci0gICAgVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZl
ciBzZXJ2ZXIoewotICAgICAgICB7ICIvIiwgeyBmcmFtZUJ5dGVzIH0gfSwKLSAgICB9LCBUZXN0
V2ViS2l0QVBJOjpIVFRQU2VydmVyOjpQcm90b2NvbDo6SHR0cHMsIG51bGxwdHIsIG51bGxwdHIs
IDkwOTEpOwotCi0gICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtb
RmlsZVN5c3RlbUFjY2Vzc01lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6
aGFuZGxlci5nZXQoKSBuYW1lOkAidGVzdEhhbmRsZXIiXTsKLSAgICBhdXRvIHByZWZlcmVuY2Vz
ID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOwotICAgIHByZWZlcmVuY2VzLl9maWxlU3lz
dGVtQWNjZXNzRW5hYmxlZCA9IFlFUzsKLSAgICBwcmVmZXJlbmNlcy5fc3RvcmFnZUFQSUVuYWJs
ZWQgPSBZRVM7Ci0KLSAgICBhdXRvIHdlYnNpdGVEYXRhU3RvcmUgPSBbY29uZmlndXJhdGlvbiB3
ZWJzaXRlRGF0YVN0b3JlXTsKLSAgICBhdXRvIHR5cGVzID0gW05TU2V0IHNldFdpdGhPYmplY3Q6
X1dLV2Vic2l0ZURhdGFUeXBlRmlsZVN5c3RlbV07Ci0gICAgZG9uZSA9IGZhbHNlOwotICAgIFt3
ZWJzaXRlRGF0YVN0b3JlIHJlbW92ZURhdGFPZlR5cGVzOnR5cGVzIG1vZGlmaWVkU2luY2U6W05T
RGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XiB7Ci0gICAgICAgIGRvbmUgPSB0
cnVlOwotICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Ci0KLSAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5n
ZXQoKV0pOwotICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbVGVzdE5hdmln
YXRpb25EZWxlZ2F0ZSBuZXddKTsKLSAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHNldERpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpeKFdLV2ViVmlldyAqLCBOU1VSTEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlICpjaGFsbGVuZ2UsIHZvaWQgKF5jYWxsYmFjaykoTlNVUkxTZXNzaW9uQXV0
aENoYWxsZW5nZURpc3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwgKikpIHsKLSAgICAgICAgRVhQ
RUNUX1dLX1NUUkVRKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25NZXRo
b2QsIE5TVVJMQXV0aGVudGljYXRpb25NZXRob2RTZXJ2ZXJUcnVzdCk7Ci0gICAgICAgIGNhbGxi
YWNrKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsLCBbTlNVUkxDcmVkZW50
aWFsIGNyZWRlbnRpYWxGb3JUcnVzdDpjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLnNlcnZlclRy
dXN0XSk7Ci0gICAgfV07Ci0gICAgW25hdmlnYXRpb25EZWxlZ2F0ZSBzZXREZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uOlsmXShXS05hdmlnYXRpb25BY3Rpb24gKmFjdGlvbiwgdm9pZCAo
XmRlY2lzaW9uSGFuZGxlcikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KSkgewotICAgICAgICBk
ZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cpOwotICAgIH1dOwot
ICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0
KCldOwotCi0gICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6bWFpbkZyYW1lU3RyaW5nIGJhc2VV
Ukw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL3dlYmtpdC5vcmciXV07Ci0gICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwotICAgIHJlY2Vp
dmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwotICAgIEVYUEVDVF9XS19TVFJFUShAImZpbGUgaXMg
b3BlbmVkIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKLQotICAgIGRvbmUgPSBmYWxzZTsK
LSAgICBbd2Vic2l0ZURhdGFTdG9yZSBmZXRjaERhdGFSZWNvcmRzT2ZUeXBlczp0eXBlcyBjb21w
bGV0aW9uSGFuZGxlcjpeKE5TQXJyYXk8V0tXZWJzaXRlRGF0YVJlY29yZCAqPiAqcmVjb3Jkcykg
ewotICAgICAgICAvLyBTaG91bGQgcmV0dXJuIGJvdGggb3BlbmluZyBvcmlnaW4gYW5kIHRvcCBv
cmlnaW4uCi0gICAgICAgIEVYUEVDVF9FUShyZWNvcmRzLmNvdW50LCAydSk7Ci0gICAgICAgIGF1
dG8gc29ydEZ1bmN0aW9uID0gXihXS1dlYnNpdGVEYXRhUmVjb3JkICpyZWNvcmQxLCBXS1dlYnNp
dGVEYXRhUmVjb3JkICpyZWNvcmQyKXsKLSAgICAgICAgICAgIHJldHVybiBbcmVjb3JkMS5kaXNw
bGF5TmFtZSBjb21wYXJlOnJlY29yZDIuZGlzcGxheU5hbWVdOwotICAgICAgICB9OwotICAgICAg
ICBhdXRvIHNvcnRlZFJlY29yZHMgPSBbcmVjb3JkcyBzb3J0ZWRBcnJheVVzaW5nQ29tcGFyYXRv
cjpzb3J0RnVuY3Rpb25dOwotICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCIxMjcuMC4wLjEiLCBb
c29ydGVkUmVjb3JkcyBvYmplY3RBdEluZGV4OjBdLmRpc3BsYXlOYW1lKTsKLSAgICAgICAgRVhQ
RUNUX1dLX1NUUkVRKEAid2Via2l0Lm9yZyIsIFtzb3J0ZWRSZWNvcmRzIG9iamVjdEF0SW5kZXg6
MV0uZGlzcGxheU5hbWUpOwotICAgICAgICBkb25lID0gdHJ1ZTsKLSAgICB9XTsKLSAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwotfQotCiAjZW5kaWYgLy8gVVNFKEFQUExFX0lO
VEVSTkFMX1NESykK
</data>

          </attachment>
      

    </bug>

</bugzilla>