<?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>217259</bug_id>
          
          <creation_ts>2020-10-02 16:19:42 -0700</creation_ts>
          <short_desc>Move WebEvent subclass declarations to their own files</short_desc>
          <delta_ts>2020-10-02 20:56:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1694283</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-02 16:19:42 -0700</bug_when>
    <thetext>Move WebEvent subclass declarations to their own files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694284</commentid>
    <comment_count>1</comment_count>
      <attachid>410385</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-02 16:20:45 -0700</bug_when>
    <thetext>Created attachment 410385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694285</commentid>
    <comment_count>2</comment_count>
      <attachid>410385</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-10-02 16:22:00 -0700</bug_when>
    <thetext>Comment on attachment 410385
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694289</commentid>
    <comment_count>3</comment_count>
      <attachid>410386</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-02 16:40:13 -0700</bug_when>
    <thetext>Created attachment 410386
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694293</commentid>
    <comment_count>4</comment_count>
      <attachid>410389</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-02 16:53:41 -0700</bug_when>
    <thetext>Created attachment 410389
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694294</commentid>
    <comment_count>5</comment_count>
      <attachid>410390</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-02 16:57:14 -0700</bug_when>
    <thetext>Created attachment 410390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694295</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-10-02 16:57:53 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694296</commentid>
    <comment_count>7</comment_count>
      <attachid>410391</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-02 17:05:05 -0700</bug_when>
    <thetext>Created attachment 410391
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694320</commentid>
    <comment_count>8</comment_count>
      <attachid>410399</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-02 18:26:11 -0700</bug_when>
    <thetext>Created attachment 410399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694357</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-02 20:55:52 -0700</bug_when>
    <thetext>Committed r267916: &lt;https://trac.webkit.org/changeset/267916&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 410399.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694358</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-02 20:56:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/69907147&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410385</attachid>
            <date>2020-10-02 16:20:45 -0700</date>
            <delta_ts>2020-10-02 16:35:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217259-20201002162044.patch</filename>
            <type>text/plain</type>
            <size>83094</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI5Njk2ZTQzNzM3NDRiNTBh
ZjhiZmM0NmUzMDdkM2MzNGQ1MTE4MzMuLjQ4ODAwNWQ5MmNjODUyNDFlOTBmZDM0ZWZmY2U4MjA2
ZjI1YmE0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAxIEBACisyMDIwLTEwLTAyICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgV2ViRXZlbnQg
c3ViY2xhc3MgZGVjbGFyYXRpb25zIHRvIHRoZWlyIG93biBmaWxlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MjU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBuZXcgaGVhZGVyIGZpbGVzIGZv
ciBXZWJNb3VzZUV2ZW50LCBXZWJLZXlib2FyZEV2ZW50LCBXZWJXaGVlbEV2ZW50LCBXZWJUb3Vj
aEV2ZW50IGFuZAorICAgICAgICBmaXggdGhlIGZhbGxvdXQuCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElD
YXN0Lmg6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYkdlc3R1cmVFdmVudC5oOgorICAgICAg
ICAqIFNoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL05h
dGl2ZVdlYk1vdXNlRXZlbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVu
dC5oOgorICAgICAgICAqIFNoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50Lmg6CisgICAgICAgICog
U2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmg6CisgICAgICAgICogU2hhcmVkL1dlYkV2ZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6YWxsVG91Y2hQb2ludHNBcmVS
ZWxlYXNlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1dlYkV2ZW50Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OmJ1dHRvbiBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OmJ1dHRvbnMgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50Ojpwb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6Omdsb2JhbFBvc2l0aW9uIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFYIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFZIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFaIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6Y2xpY2tDb3VudCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OmV2ZW50TnVtYmVy
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6bWVudVR5
cGVGb3JFdmVudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNlRXZl
bnQ6OmZvcmNlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVu
dDo6c3ludGhldGljQ2xpY2tUeXBlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViV2hlZWxFdmVudDo6cG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJXaGVlbEV2ZW50OjpnbG9iYWxQb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6OmRlbHRhIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViV2hlZWxFdmVudDo6d2hlZWxUaWNrcyBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6OmdyYW51bGFyaXR5IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6ZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2
aWNlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6cGhh
c2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojptb21l
bnR1bVBoYXNlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVu
dDo6aGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYldoZWVsRXZlbnQ6OnNjcm9sbENvdW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6dW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6dGV4dCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OnVubW9k
aWZpZWRUZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRF
dmVudDo6a2V5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRF
dmVudDo6Y29kZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJk
RXZlbnQ6OmtleUlkZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJLZXlib2FyZEV2ZW50Ojp3aW5kb3dzVmlydHVhbEtleUNvZGUgY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50OjpuYXRpdmVWaXJ0dWFsS2V5Q29kZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6Om1hY0No
YXJDb2RlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVu
dDo6aGFuZGxlZEJ5SW5wdXRNZXRob2QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJLZXlib2FyZEV2ZW50OjpwcmVlZGl0VW5kZXJsaW5lcyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OnByZWVkaXRTZWxlY3Rpb25SYW5nZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OmNvbW1h
bmRzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6
aXNBdXRvUmVwZWF0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9h
cmRFdmVudDo6aXNLZXlwYWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJL
ZXlib2FyZEV2ZW50Ojppc1N5c3RlbUtleSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjppZGVudGlmaWVyIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50Ojps
b2NhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91
Y2hQb2ludDo6cGhhc2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0
Zm9ybVRvdWNoUG9pbnQ6OnN0YXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpzZXRSYWRpdXNYKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpyYWRpdXNYIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpzZXRSYWRpdXNZKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpyYWRpdXNZIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpzZXRS
b3RhdGlvbkFuZ2xlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3Vj
aFBvaW50Ojpyb3RhdGlvbkFuZ2xlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpzZXRGb3JjZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6Zm9yY2UgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNldEFsdGl0dWRlQW5nbGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmFsdGl0dWRlQW5n
bGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ6OnNldEF6aW11dGhBbmdsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRm
b3JtVG91Y2hQb2ludDo6YXppbXV0aEFuZ2xlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpzZXRUb3VjaFR5cGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnRvdWNoVHlwZSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50Ojp0b3VjaFBvaW50cyBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OnBvc2l0aW9uIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6aXNQb3RlbnRp
YWxUYXAgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50Ojpp
c0dlc3R1cmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50
OjpnZXN0dXJlU2NhbGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJUb3Vj
aEV2ZW50OjpnZXN0dXJlUm90YXRpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJUb3VjaEV2ZW50OjpjYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50OjpzZXRDYW5QcmV2ZW50TmF0aXZlR2Vz
dHVyZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6
OmlkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBv
aW50OjpzY3JlZW5Qb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlBsYXRmb3JtVG91Y2hQb2ludDo6cG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnJhZGl1cyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0U3RhdGUpOiBEZWxldGVk
LgorICAgICAgICAqIFNoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwOgorICAgICAgICAqIFNo
YXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcDoKKyAgICAgICAgKiBTaGFyZWQvV2ViS2V5Ym9hcmRF
dmVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6dGV4dCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OnVubW9kaWZpZWRUZXh0
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6a2V5IGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6Y29kZSBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OmtleUlkZW50aWZpZXIgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojp3aW5kb3dzVmlydHVhbEtleUNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50OjpuYXRpdmVWaXJ0dWFsS2V5Q29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6Om1hY0NoYXJDb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6aGFuZGxlZEJ5SW5w
dXRNZXRob2QgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50OjpwcmVl
ZGl0VW5kZXJsaW5lcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6
OnByZWVkaXRTZWxlY3Rpb25SYW5nZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktleWJv
YXJkRXZlbnQ6OmNvbW1hbmRzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRF
dmVudDo6aXNBdXRvUmVwZWF0IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRF
dmVudDo6aXNLZXlwYWQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
Ojppc1N5c3RlbUtleSBjb25zdCk6CisgICAgICAgICogU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3Bw
OgorICAgICAgICAqIFNoYXJlZC9XZWJNb3VzZUV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJNb3VzZUV2ZW50OjpidXR0b24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJN
b3VzZUV2ZW50OjpidXR0b25zIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVu
dDo6cG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpnbG9i
YWxQb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OmRlbHRh
WCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OmRlbHRhWSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OmRlbHRhWiBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OmNsaWNrQ291bnQgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJNb3VzZUV2ZW50OjpldmVudE51bWJlciBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYk1vdXNlRXZlbnQ6Om1lbnVUeXBlRm9yRXZlbnQgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJNb3VzZUV2ZW50Ojpmb3JjZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNl
RXZlbnQ6OnN5bnRoZXRpY0NsaWNrVHlwZSBjb25zdCk6CisgICAgICAgICogU2hhcmVkL1dlYlRv
dWNoRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50OjphbGxUb3VjaFBv
aW50c0FyZVJlbGVhc2VkIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvV2ViVG91Y2hFdmVudC5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpXZWJQbGF0
Zm9ybVRvdWNoUG9pbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6
OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ6OmxvY2F0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBv
aW50OjpwaGFzZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2lu
dDo6c3RhdGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6
OnNldFJhZGl1c1gpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnJh
ZGl1c1ggY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNl
dFJhZGl1c1kpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnJhZGl1
c1kgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFJv
dGF0aW9uQW5nbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnJv
dGF0aW9uQW5nbGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ6OnNldEZvcmNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50Ojpm
b3JjZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0
QWx0aXR1ZGVBbmdsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
YWx0aXR1ZGVBbmdsZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQ
b2ludDo6c2V0QXppbXV0aEFuZ2xlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3Vj
aFBvaW50OjphemltdXRoQW5nbGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9y
bVRvdWNoUG9pbnQ6OnNldFRvdWNoVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3Jt
VG91Y2hQb2ludDo6dG91Y2hUeXBlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hF
dmVudDo6V2ViVG91Y2hFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OnRv
dWNoUG9pbnRzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6cG9zaXRp
b24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50Ojppc1BvdGVudGlhbFRh
cCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OmlzR2VzdHVyZSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6Omdlc3R1cmVTY2FsZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6Omdlc3R1cmVSb3RhdGlvbiBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OmNhblByZXZlbnROYXRpdmVHZXN0dXJl
cyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OnNldENhblByZXZlbnRO
YXRpdmVHZXN0dXJlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
aWQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNjcmVl
blBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50
Ojpwb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2lu
dDo6cmFkaXVzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50
OjpzZXRTdGF0ZSk6CisgICAgICAgICogU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViV2hlZWxFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVu
dDo6cG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpnbG9i
YWxQb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6OmRlbHRh
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6d2hlZWxUaWNrcyBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6OmdyYW51bGFyaXR5IGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6ZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2
aWNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6cGhhc2UgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojptb21lbnR1bVBoYXNlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6aGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRh
cyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6OnNjcm9sbENvdW50IGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6dW5hY2NlbGVyYXRlZFNjcm9s
bGluZ0RlbHRhIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvaW9zL1dlYklPU0V2ZW50RmFjdG9y
eS5oOgorICAgICAgICAqIFNoYXJlZC9pb3MvV2ViUGxhdGZvcm1Ub3VjaFBvaW50SU9TLmNwcDoK
KyAgICAgICAgKiBTaGFyZWQvaW9zL1dlYlRvdWNoRXZlbnRJT1MuY3BwOgorICAgICAgICAqIFNo
YXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tOgorICAgICAgICAqIFNoYXJlZC9t
YWMvV2ViRXZlbnRGYWN0b3J5Lmg6CisgICAgICAgICogU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZl
bnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVBvbGljeUNsaWVudC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tNb3Vz
ZUdlc3R1cmVSZWNvZ25pemVyLm1tOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJveHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5t
bToKKwogMjAyMC0wOS0zMCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVtb3ZlIGNvZGUgYmVoaW5kIEVOQUJMRShNRURJQV9TRVNTSU9OKSwgbm8gcG9ydHMgZW5h
YmxlIGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAyYjdm
NDZiMzQ0ZTFiZTNlODYwYjE0ZTgxMDQ5MTQzMjg5YTE1NzBkLi43MGQzZDg4ZjJiZjRhNmYxY2Zj
NGYxODg3MDRlZDY3NzBlNDk3N2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKQEAgLTY3OCwxMSArNjc4LDYgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6
CiAgICAgICAgICdXZWJLaXQ6OlJlc3BlY3RTZWxlY3Rpb25BbmNob3InOiBbJyJHZXN0dXJlVHlw
ZXMuaCInXSwKICAgICAgICAgJ1dlYktpdDo6U2VsZWN0aW9uRmxhZ3MnOiBbJyJHZXN0dXJlVHlw
ZXMuaCInXSwKICAgICAgICAgJ1dlYktpdDo6U2VsZWN0aW9uVG91Y2gnOiBbJyJHZXN0dXJlVHlw
ZXMuaCInXSwKLSAgICAgICAgJ1dlYktpdDo6V2ViR2VzdHVyZUV2ZW50JzogWyciV2ViRXZlbnQu
aCInXSwKLSAgICAgICAgJ1dlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCc6IFsnIldlYkV2ZW50Lmgi
J10sCi0gICAgICAgICdXZWJLaXQ6OldlYk1vdXNlRXZlbnQnOiBbJyJXZWJFdmVudC5oIiddLAot
ICAgICAgICAnV2ViS2l0OjpXZWJUb3VjaEV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwKLSAgICAg
ICAgJ1dlYktpdDo6V2ViV2hlZWxFdmVudCc6IFsnIldlYkV2ZW50LmgiJ10sCiAgICAgICAgICdX
ZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJzogWyc8V2ViQ29yZS9NZWRpYVBs
YXllci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6SVNPV2ViVlRUQ3VlJzogWyc8V2ViQ29yZS9J
U09WVFRDdWUuaD4nXSwKICAgICAgICAgJ3N0cnVjdCBXZWJDb3JlOjpDb29raWUnOiBbJzxXZWJD
b3JlL0Nvb2tpZS5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2Mv
V0tTaGFyZWRBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQ
SUNhc3QuaAppbmRleCA2NjQ4ZTcyZmViMmMzZDFhYjRlMWMwZTIxNGNhNjhkZTA1ZDAxM2NhLi5l
NTYwMDUwOGExYjMzZDI1NWRkNWRiNzQwMmEwNWRmOGNjZTEyNjNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaApAQCAtMjMsOCArMjMsNyBAQAogICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgV0tTaGFyZWRB
UElDYXN0X2gKLSNkZWZpbmUgV0tTaGFyZWRBUElDYXN0X2gKKyNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiQVBJRXJyb3IuaCIKICNpbmNsdWRlICJBUElOdW1iZXIuaCIKQEAgLTQ3LDggKzQ2LDgg
QEAKICNpbmNsdWRlICJXS1BhZ2VWaXNpYmlsaXR5VHlwZXMuaCIKICNpbmNsdWRlICJXS1VzZXJD
b250ZW50SW5qZWN0ZWRGcmFtZXMuaCIKICNpbmNsdWRlICJXS1VzZXJTY3JpcHRJbmplY3Rpb25U
aW1lLmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJGaW5kT3B0aW9ucy5o
IgorI2luY2x1ZGUgIldlYk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbnRleHRN
ZW51SXRlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KQEAgLTEwMzQsNSArMTAzMywzIEBA
IGlubGluZSBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIHRvVXNlckNvbnRlbnRJ
bmplY3RlZEZyYW1lcyhXS1VzZXJDb250CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0j
ZW5kaWYgLy8gV0tTaGFyZWRBUElDYXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL05hdGl2ZVdlYkdlc3R1cmVFdmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZl
V2ViR2VzdHVyZUV2ZW50LmgKaW5kZXggYjk4Yjc1ODM3MGRkZjQ5NjUyN2Q5ZjYwZWJjM2I4MmRl
ZWRiOGM2Zi4uZWNlYWE5N2Q5NTlkMDhiYzIyZGE3ZmQ3MWY1NzcxOWY0YmQxYzU3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViR2VzdHVyZUV2ZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViR2VzdHVyZUV2ZW50LmgKQEAgLTIzLDEyICsy
MywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5k
ZWYgTmF0aXZlV2ViR2VzdHVyZUV2ZW50X2gKLSNkZWZpbmUgTmF0aXZlV2ViR2VzdHVyZUV2ZW50
X2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKIAotI2lu
Y2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViR2VzdHVyZUV2ZW50LmgiCiAKIE9CSkNf
Q0xBU1MgTlNFdmVudDsKQEAgLTQ4LDUgKzQ2LDMgQEAgcHJpdmF0ZToKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKLQotI2VuZGlm
IC8vIE5hdGl2ZVdlYkdlc3R1cmVFdmVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRp
dmVXZWJLZXlib2FyZEV2ZW50LmgKaW5kZXggYmY2NDI5OTAyNWFmY2MxY2I3ODRkMzVkZDNlYTYx
MWQ0NzAxOGIxMi4uZmQyYjU1ZjQwZmRkM2Q4MmQ2ZDY5NDdkYzMzYWQzMWYyNGY0YzFjNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaApAQCAtMjYs
MTkgKzI2LDEzIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAot
I2lmbmRlZiBOYXRpdmVXZWJLZXlib2FyZEV2ZW50X2gKLSNkZWZpbmUgTmF0aXZlV2ViS2V5Ym9h
cmRFdmVudF9oCisjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVk
ZSAiV2ViS2V5Ym9hcmRFdmVudC5oIgogCiAjaWYgVVNFKEFQUEtJVCkKICNpbmNsdWRlIDx3dGYv
UmV0YWluUHRyLmg+CiBPQkpDX0NMQVNTIE5TVmlldzsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
c3RydWN0IENvbXBvc2l0aW9uVW5kZXJsaW5lOwotc3RydWN0IEtleXByZXNzQ29tbWFuZDsKLX0K
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQpAQCAtMTEzLDUgKzEwNywzIEBAIHByaXZhdGU6
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIE5hdGl2ZVdlYktleWJv
YXJkRXZlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViTW91
c2VFdmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCmlu
ZGV4IGQ2Zjk5MDJiOTYzYmQ5YTAwMzZhNjAwOGQ3MTljM2U1YjE1NDAyYzQuLjVlMzdmNzM1MTBm
NzM5NjFkOTdjZThiNDJkZTBlMTkzNWExNzBkOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9O
YXRpdmVXZWJNb3VzZUV2ZW50LmgKQEAgLTIzLDEwICsyMyw5IEBACiAgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBOYXRpdmVXZWJNb3VzZUV2ZW50X2gK
LSNkZWZpbmUgTmF0aXZlV2ViTW91c2VFdmVudF9oCisjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUg
IldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgogCiAjaWYgVVNFKEFQUEtJ
VCkKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC0xMDIsNSArMTAxLDMgQEAgcHJpdmF0
ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gTmF0aXZlV2ViTW91
c2VFdmVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJUb3Vj
aEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmgKaW5k
ZXggZjVkNzJmODdiNWIxMjRkYmUxNDBkZjdhZDM4N2U2YjhhM2NhMWRhYS4uZDczMzMwMTZlODQ5
MWI0Mjg3MTc4YTIzNzU2OWZkZTlkODlhM2EwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05h
dGl2ZVdlYlRvdWNoRXZlbnQuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAot
I2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgZGVmaW5lZChfX09CSkNfXykKICNpbmNsdWRlIDxVSUtp
dC9VSUtpdC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViV2hl
ZWxFdmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCmlu
ZGV4IDg0ZGIwODNjZWZlN2QxNjZiMjZmMTUxNjIwZDA5NjA0N2Q2OTcyY2UuLmRmNDI0MmIwNzM5
YzgzOGI2NGM3YzcxZjI0ZTFmZTA2OWI0ZjQwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9O
YXRpdmVXZWJXaGVlbEV2ZW50LmgKQEAgLTIzLDEwICsyMyw5IEBACiAgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBOYXRpdmVXZWJXaGVlbEV2ZW50X2gK
LSNkZWZpbmUgTmF0aXZlV2ViV2hlZWxFdmVudF9oCisjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUg
IldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViV2hlZWxFdmVudC5oIgogCiAjaWYgVVNFKEFQUEtJ
VCkKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC04OSw1ICs4OCwzIEBAIHByaXZhdGU6
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIE5hdGl2ZVdlYldoZWVs
RXZlbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlv
bkRhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmlnYXRpb25BY3Rpb25EYXRhLmgKaW5k
ZXggZjcyNzFlYWY4MzhhMzBjOTliMGM4YjIwNTRmZDRiNjc3ODY2N2Y2Zi4uY2JkNzcwZTU3ZjNl
YTdkNGZjODkyZGNlYWY0NGRmYWZjMGI1ZjRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9O
YXZpZ2F0aW9uQWN0aW9uRGF0YS5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9BZENsaWNrQXR0cmlidXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Jh
Y2tGb3J3YXJkSXRlbUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcAppbmRleCBkYjdkZTM5ZTY3Y2IzNWFmOWEwNWFh
NDJiMjNmYjgyMDc4YWFiNDQwLi5jZTMxNzhkZTI3MWUwMWZlZjQyNThiYWFlNzUwMTU5N2VhYTVi
YTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCkBAIC02MiwxNiArNjIsNCBAQCBib29s
IFdlYkV2ZW50OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJFdmVudCYgcmVzdWx0
KQogICAgIHJldHVybiB0cnVlOwogfQogCi0jaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLWJvb2wg
V2ViVG91Y2hFdmVudDo6YWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgpIGNvbnN0Ci17Ci0gICAg
Zm9yIChjb25zdCBhdXRvJiB0b3VjaFBvaW50IDogdG91Y2hQb2ludHMoKSkgewotICAgICAgICBp
ZiAodG91Y2hQb2ludC5zdGF0ZSgpICE9IFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hSZWxl
YXNlZCAmJiB0b3VjaFBvaW50LnN0YXRlKCkgIT0gV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3Vj
aENhbmNlbGxlZCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJFdmVudC5oCmluZGV4IGUzMWQ5MjUzNGJmMTgwOGYxMmMzMDA1ZmQ3NTk0ZjgwMDZjODk5OTYu
LjNhZTY1MDQ3NzlkMzkxN2E3OWY2OWYzMmI1ODI2MGFmZWRhMjcwYjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViRXZlbnQuaApAQCAtMjksMTMgKzI5LDYgQEAKIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFi
bHkgbW92ZSB0byBtYWtlaW5nIHRoZSBXZWJDb3JlL1BsYXRmb3JtRm9vRXZlbnRzIHRyaXZpYWwg
Y2xhc3NlcyBzbyB0aGF0CiAvLyB3ZSBjYW4gdXNlIHRoZW0gYXMgdGhlIGV2ZW50IHR5cGUuCiAK
LSNpbmNsdWRlICJFZGl0aW5nUmFuZ2UuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0NvbXBvc2l0aW9u
VW5kZXJsaW5lLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50Lmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9GbG9hdFNpemUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9LZXlwcmVzc0NvbW1h
bmQuaD4KICNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25T
ZXQuaD4KICNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KQEAgLTQ2LDEyICszOSw2IEBAIGNsYXNz
IERlY29kZXI7CiBjbGFzcyBFbmNvZGVyOwogfQogCi0jaWYgVVNFKEFQUEtJVCkKLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLXN0cnVjdCBLZXlwcmVzc0NvbW1hbmQ7Ci19Ci0jZW5kaWYKLQogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYkV2ZW50IHsKQEAgLTEyNiwzNzMgKzExMyw2IEBAIHBy
aXZhdGU6CiAgICAgV2FsbFRpbWUgbV90aW1lc3RhbXA7CiB9OwogCi0vLyBGSVhNRTogTW92ZSB0
aGlzIGNsYXNzIHRvIGl0cyBvd24gaGVhZGVyIGZpbGUuCi1jbGFzcyBXZWJNb3VzZUV2ZW50IDog
cHVibGljIFdlYkV2ZW50IHsKLXB1YmxpYzoKLSAgICBlbnVtIEJ1dHRvbiB7Ci0gICAgICAgIExl
ZnRCdXR0b24gPSAwLAotICAgICAgICBNaWRkbGVCdXR0b24sCi0gICAgICAgIFJpZ2h0QnV0dG9u
LAotICAgICAgICBOb0J1dHRvbiA9IC0yCi0gICAgfTsKLQotICAgIGVudW0gU3ludGhldGljQ2xp
Y2tUeXBlIHsgTm9UYXAsIE9uZUZpbmdlclRhcCwgVHdvRmluZ2VyVGFwIH07Ci0KLSAgICBXZWJN
b3VzZUV2ZW50KCk7Ci0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgV2ViTW91c2VFdmVudChUeXBl
LCBCdXR0b24sIHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBwb3NpdGlvbkluVmlldywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9u
LCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3Vu
dCwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2Us
IFN5bnRoZXRpY0NsaWNrVHlwZSA9IE5vVGFwLCBpbnQgZXZlbnROdW1iZXIgPSAtMSwgaW50IG1l
bnVUeXBlID0gMCk7Ci0jZWxzZQotICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCB1bnNp
Z25lZCBzaG9ydCBidXR0b25zLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb25JblZp
ZXcsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFY
LCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE9wdGlvblNldDxN
b2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlID0gMCwgU3ludGhldGlj
Q2xpY2tUeXBlID0gTm9UYXApOwotI2VuZGlmCi0KLSAgICBCdXR0b24gYnV0dG9uKCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8QnV0dG9uPihtX2J1dHRvbik7IH0KLSAgICB1bnNpZ25lZCBz
aG9ydCBidXR0b25zKCkgY29uc3QgeyByZXR1cm4gbV9idXR0b25zOyB9Ci0gICAgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIHBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbjsgfSAv
LyBSZWxhdGl2ZSB0byB0aGUgdmlldy4KLSAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xv
YmFsUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2dsb2JhbFBvc2l0aW9uOyB9Ci0gICAgZmxv
YXQgZGVsdGFYKCkgY29uc3QgeyByZXR1cm4gbV9kZWx0YVg7IH0KLSAgICBmbG9hdCBkZWx0YVko
KSBjb25zdCB7IHJldHVybiBtX2RlbHRhWTsgfQotICAgIGZsb2F0IGRlbHRhWigpIGNvbnN0IHsg
cmV0dXJuIG1fZGVsdGFaOyB9Ci0gICAgaW50MzJfdCBjbGlja0NvdW50KCkgY29uc3QgeyByZXR1
cm4gbV9jbGlja0NvdW50OyB9Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIGludDMyX3QgZXZlbnRO
dW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2V2ZW50TnVtYmVyOyB9Ci0gICAgaW50MzJfdCBtZW51
VHlwZUZvckV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9tZW51VHlwZUZvckV2ZW50OyB9Ci0jZW5k
aWYKLSAgICBkb3VibGUgZm9yY2UoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlOyB9Ci0gICAgU3lu
dGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRp
Y19jYXN0PFN5bnRoZXRpY0NsaWNrVHlwZT4obV9zeW50aGV0aWNDbGlja1R5cGUpOyB9Ci0KLSAg
ICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgV0FSTl9VTlVT
RURfUkVUVVJOIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYk1vdXNlRXZlbnQmKTsKLQot
cHJpdmF0ZToKLSAgICBzdGF0aWMgYm9vbCBpc01vdXNlRXZlbnRUeXBlKFR5cGUpOwotCi0gICAg
dWludDMyX3QgbV9idXR0b24geyBzdGF0aWNfY2FzdDx1aW50MzJfdD4oTm9CdXR0b24pIH07Ci0g
ICAgdW5zaWduZWQgc2hvcnQgbV9idXR0b25zIHsgMCB9OwotICAgIFdlYkNvcmU6OkludFBvaW50
IG1fcG9zaXRpb247IC8vIFJlbGF0aXZlIHRvIHRoZSB2aWV3LgotICAgIFdlYkNvcmU6OkludFBv
aW50IG1fZ2xvYmFsUG9zaXRpb247Ci0gICAgZmxvYXQgbV9kZWx0YVggeyAwIH07Ci0gICAgZmxv
YXQgbV9kZWx0YVkgeyAwIH07Ci0gICAgZmxvYXQgbV9kZWx0YVogeyAwIH07Ci0gICAgaW50MzJf
dCBtX2NsaWNrQ291bnQgeyAwIH07Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIGludDMyX3QgbV9l
dmVudE51bWJlciB7IC0xIH07Ci0gICAgaW50MzJfdCBtX21lbnVUeXBlRm9yRXZlbnQgeyAwIH07
Ci0jZW5kaWYKLSAgICBkb3VibGUgbV9mb3JjZSB7IDAgfTsKLSAgICB1aW50MzJfdCBtX3N5bnRo
ZXRpY0NsaWNrVHlwZSB7IE5vVGFwIH07Ci19OwotCi0vLyBGSVhNRTogTW92ZSB0aGlzIGNsYXNz
IHRvIGl0cyBvd24gaGVhZGVyIGZpbGUuCi1jbGFzcyBXZWJXaGVlbEV2ZW50IDogcHVibGljIFdl
YkV2ZW50IHsKLXB1YmxpYzoKLSAgICBlbnVtIEdyYW51bGFyaXR5IHsKLSAgICAgICAgU2Nyb2xs
QnlQYWdlV2hlZWxFdmVudCwKLSAgICAgICAgU2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQKLSAgICB9
OwotCi0gICAgZW51bSBQaGFzZSB7Ci0gICAgICAgIFBoYXNlTm9uZSAgICAgICAgPSAwLAotICAg
ICAgICBQaGFzZUJlZ2FuICAgICAgID0gMSA8PCAwLAotICAgICAgICBQaGFzZVN0YXRpb25hcnkg
ID0gMSA8PCAxLAotICAgICAgICBQaGFzZUNoYW5nZWQgICAgID0gMSA8PCAyLAotICAgICAgICBQ
aGFzZUVuZGVkICAgICAgID0gMSA8PCAzLAotICAgICAgICBQaGFzZUNhbmNlbGxlZCAgID0gMSA8
PCA0LAotICAgICAgICBQaGFzZU1heUJlZ2luICAgID0gMSA8PCA1LAotICAgIH07Ci0KLSAgICBX
ZWJXaGVlbEV2ZW50KCkgPSBkZWZhdWx0OwotCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBn
bG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgT3B0aW9uU2V0PE1vZGlm
aWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXZWJX
aGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFy
aXR5LCBib29sIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVu
dHVtUGhhc2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xs
Q291bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0Rl
bHRhLCBPcHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOwotI2VsaWYgUExB
VEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQotICAgIFdlYldoZWVsRXZlbnQoVHlwZSwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xv
YmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdy
YW51bGFyaXR5LCBPcHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOwotI2Vu
ZGlmCi0KLSAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fcG9zaXRpb247IH0KLSAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCBnbG9iYWxQb3Np
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsUG9zaXRpb247IH0KLSAgICBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUgZGVsdGEoKSBjb25zdCB7IHJldHVybiBtX2RlbHRhOyB9Ci0gICAgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplIHdoZWVsVGlja3MoKSBjb25zdCB7IHJldHVybiBtX3doZWVs
VGlja3M7IH0KLSAgICBHcmFudWxhcml0eSBncmFudWxhcml0eSgpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PEdyYW51bGFyaXR5PihtX2dyYW51bGFyaXR5KTsgfQotICAgIGJvb2wgZGlyZWN0
aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9kaXJlY3Rpb25JbnZlcnRl
ZEZyb21EZXZpY2U7IH0KLSAgICBQaGFzZSBwaGFzZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19j
YXN0PFBoYXNlPihtX3BoYXNlKTsgfQotICAgIFBoYXNlIG1vbWVudHVtUGhhc2UoKSBjb25zdCB7
IHJldHVybiBzdGF0aWNfY2FzdDxQaGFzZT4obV9tb21lbnR1bVBoYXNlKTsgfQotI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcygpIGNvbnN0IHsg
cmV0dXJuIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhczsgfQotICAgIHVpbnQzMl90IHNjcm9s
bENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxDb3VudDsgfQotICAgIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhKCkgY29uc3QgeyByZXR1
cm4gbV91bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGE7IH0KLSNlbmRpZgotCi0gICAgdm9pZCBl
bmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVS
TiBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJXaGVlbEV2ZW50Jik7Ci0KLXByaXZhdGU6
Ci0gICAgc3RhdGljIGJvb2wgaXNXaGVlbEV2ZW50VHlwZShUeXBlKTsKLQotICAgIFdlYkNvcmU6
OkludFBvaW50IG1fcG9zaXRpb247Ci0gICAgV2ViQ29yZTo6SW50UG9pbnQgbV9nbG9iYWxQb3Np
dGlvbjsKLSAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV9kZWx0YTsKLSAgICBXZWJDb3JlOjpGbG9h
dFNpemUgbV93aGVlbFRpY2tzOwotICAgIHVpbnQzMl90IG1fZ3JhbnVsYXJpdHkgeyBTY3JvbGxC
eVBhZ2VXaGVlbEV2ZW50IH07Ci0gICAgYm9vbCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmlj
ZSB7IGZhbHNlIH07Ci0gICAgdWludDMyX3QgbV9waGFzZSB7IFBoYXNlOjpQaGFzZU5vbmUgfTsK
LSAgICB1aW50MzJfdCBtX21vbWVudHVtUGhhc2UgeyBQaGFzZTo6UGhhc2VOb25lIH07Ci0jaWYg
UExBVEZPUk0oQ09DT0EpCi0gICAgYm9vbCBtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMgeyBm
YWxzZSB9OwotICAgIHVpbnQzMl90IG1fc2Nyb2xsQ291bnQgeyAwIH07Ci0gICAgV2ViQ29yZTo6
RmxvYXRTaXplIG1fdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhOwotI2VuZGlmCi19OwotCi0v
LyBGSVhNRTogTW92ZSB0aGlzIGNsYXNzIHRvIGl0cyBvd24gaGVhZGVyIGZpbGUuCi1jbGFzcyBX
ZWJLZXlib2FyZEV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKLXB1YmxpYzoKLSAgICBXZWJLZXli
b2FyZEV2ZW50KCk7Ci0gICAgfldlYktleWJvYXJkRXZlbnQoKTsKLQotI2lmIFVTRShBUFBLSVQp
Ci0gICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNv
ZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29k
ZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxl
ZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+Jiwg
Ym9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE9wdGlv
blNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Ci0jZWxpZiBQTEFURk9STShHVEsp
Ci0gICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmll
ciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBi
b29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29tcG9z
aXRpb25VbmRlcmxpbmU+PiYmLCBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+JiYsIFZlY3RvcjxTdHJp
bmc+JiYgY29tbWFuZHMsIGJvb2wgaXNLZXlwYWQsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxU
aW1lIHRpbWVzdGFtcCk7Ci0jZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIFdlYktleWJv
YXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZp
ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJp
bmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVW
aXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9k
LCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0
aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKLSNlbGlmIFVTRShMSUJXUEUp
Ci0gICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmll
ciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBi
b29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29tcG9z
aXRpb25VbmRlcmxpbmU+PiYmLCBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+JiYsIGJvb2wgaXNLZXlw
YWQsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Ci0jZWxzZQotICAg
IFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcm
IHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBj
b25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGlu
dCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVh
dCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0PE1vZGlmaWVyPiwg
V2FsbFRpbWUgdGltZXN0YW1wKTsKLSNlbmRpZgotCi0gICAgY29uc3QgU3RyaW5nJiB0ZXh0KCkg
Y29uc3QgeyByZXR1cm4gbV90ZXh0OyB9Ci0gICAgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4
dCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5tb2RpZmllZFRleHQ7IH0KLSAgICBjb25zdCBTdHJpbmcm
IGtleSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5OyB9Ci0gICAgY29uc3QgU3RyaW5nJiBjb2RlKCkg
Y29uc3QgeyByZXR1cm4gbV9jb2RlOyB9Ci0gICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV9rZXlJZGVudGlmaWVyOyB9Ci0gICAgaW50MzJfdCB3aW5kb3dz
VmlydHVhbEtleUNvZGUoKSBjb25zdCB7IHJldHVybiBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZTsg
fQotICAgIGludDMyX3QgbmF0aXZlVmlydHVhbEtleUNvZGUoKSBjb25zdCB7IHJldHVybiBtX25h
dGl2ZVZpcnR1YWxLZXlDb2RlOyB9Ci0gICAgaW50MzJfdCBtYWNDaGFyQ29kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbWFjQ2hhckNvZGU7IH0KLSNpZiBVU0UoQVBQS0lUKSB8fCBVU0UoVUlLSVRfS0VZ
Qk9BUkRfQURESVRJT05TKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCi0gICAgYm9v
bCBoYW5kbGVkQnlJbnB1dE1ldGhvZCgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxlZEJ5SW5wdXRN
ZXRob2Q7IH0KLSNlbmRpZgotI2lmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKLSAgICBj
b25zdCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+PiYgcHJl
ZWRpdFVuZGVybGluZXMoKSBjb25zdCB7IHJldHVybiBtX3ByZWVkaXRVbmRlcmxpbmVzOyB9Ci0g
ICAgY29uc3QgT3B0aW9uYWw8RWRpdGluZ1JhbmdlPiYgcHJlZWRpdFNlbGVjdGlvblJhbmdlKCkg
Y29uc3QgeyByZXR1cm4gbV9wcmVlZGl0U2VsZWN0aW9uUmFuZ2U7IH0KLSNlbmRpZgotI2lmIFVT
RShBUFBLSVQpCi0gICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNv
bW1hbmRzKCkgY29uc3QgeyByZXR1cm4gbV9jb21tYW5kczsgfQotI2VsaWYgUExBVEZPUk0oR1RL
KQotICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb21tYW5kcygpIGNvbnN0IHsgcmV0dXJuIG1f
Y29tbWFuZHM7IH0KLSNlbmRpZgotICAgIGJvb2wgaXNBdXRvUmVwZWF0KCkgY29uc3QgeyByZXR1
cm4gbV9pc0F1dG9SZXBlYXQ7IH0KLSAgICBib29sIGlzS2V5cGFkKCkgY29uc3QgeyByZXR1cm4g
bV9pc0tleXBhZDsgfQotICAgIGJvb2wgaXNTeXN0ZW1LZXkoKSBjb25zdCB7IHJldHVybiBtX2lz
U3lzdGVtS2V5OyB9Ci0KLSAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAg
ICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdl
YktleWJvYXJkRXZlbnQmKTsKLQotICAgIHN0YXRpYyBib29sIGlzS2V5Ym9hcmRFdmVudFR5cGUo
VHlwZSk7Ci0KLXByaXZhdGU6Ci0gICAgU3RyaW5nIG1fdGV4dDsKLSAgICBTdHJpbmcgbV91bm1v
ZGlmaWVkVGV4dDsKLSAgICBTdHJpbmcgbV9rZXk7Ci0gICAgU3RyaW5nIG1fY29kZTsKLSAgICBT
dHJpbmcgbV9rZXlJZGVudGlmaWVyOwotICAgIGludDMyX3QgbV93aW5kb3dzVmlydHVhbEtleUNv
ZGUgeyAwIH07Ci0gICAgaW50MzJfdCBtX25hdGl2ZVZpcnR1YWxLZXlDb2RlIHsgMCB9OwotICAg
IGludDMyX3QgbV9tYWNDaGFyQ29kZSB7IDAgfTsKLSNpZiBVU0UoQVBQS0lUKSB8fCBVU0UoVUlL
SVRfS0VZQk9BUkRfQURESVRJT05TKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCi0g
ICAgYm9vbCBtX2hhbmRsZWRCeUlucHV0TWV0aG9kIHsgZmFsc2UgfTsKLSNlbmRpZgotI2lmIFBM
QVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKLSAgICBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6
Q29tcG9zaXRpb25VbmRlcmxpbmU+PiBtX3ByZWVkaXRVbmRlcmxpbmVzOwotICAgIE9wdGlvbmFs
PEVkaXRpbmdSYW5nZT4gbV9wcmVlZGl0U2VsZWN0aW9uUmFuZ2U7Ci0jZW5kaWYKLSNpZiBVU0Uo
QVBQS0lUKQotICAgIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IG1fY29tbWFuZHM7
Ci0jZWxpZiBQTEFURk9STShHVEspCi0gICAgVmVjdG9yPFN0cmluZz4gbV9jb21tYW5kczsKLSNl
bmRpZgotICAgIGJvb2wgbV9pc0F1dG9SZXBlYXQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc0tl
eXBhZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzU3lzdGVtS2V5IHsgZmFsc2UgfTsKLX07Ci0K
LSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1jbGFz
cyBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQgewotcHVibGljOgotICAgIGVudW0gVG91Y2hQb2ludFN0
YXRlIHsKLSAgICAgICAgVG91Y2hSZWxlYXNlZCwKLSAgICAgICAgVG91Y2hQcmVzc2VkLAotICAg
ICAgICBUb3VjaE1vdmVkLAotICAgICAgICBUb3VjaFN0YXRpb25hcnksCi0gICAgICAgIFRvdWNo
Q2FuY2VsbGVkCi0gICAgfTsKLQotICAgIGVudW0gY2xhc3MgVG91Y2hUeXBlIHsKLSAgICAgICAg
RGlyZWN0LAotICAgICAgICBTdHlsdXMKLSAgICB9OwotCi0gICAgV2ViUGxhdGZvcm1Ub3VjaFBv
aW50KCkgPSBkZWZhdWx0OwotICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCh1bnNpZ25lZCBpZGVu
dGlmaWVyLCBXZWJDb3JlOjpJbnRQb2ludCBsb2NhdGlvbiwgVG91Y2hQb2ludFN0YXRlIHBoYXNl
KQotICAgICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgICAgICAsIG1fbG9jYXRp
b24obG9jYXRpb24pCi0gICAgICAgICwgbV9waGFzZShwaGFzZSkKLSAgICB7Ci0gICAgfQotCi0g
ICAgdW5zaWduZWQgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQot
ICAgIFdlYkNvcmU6OkludFBvaW50IGxvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhdGlv
bjsgfQotICAgIFRvdWNoUG9pbnRTdGF0ZSBwaGFzZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19j
YXN0PFRvdWNoUG9pbnRTdGF0ZT4obV9waGFzZSk7IH0KLSAgICBUb3VjaFBvaW50U3RhdGUgc3Rh
dGUoKSBjb25zdCB7IHJldHVybiBwaGFzZSgpOyB9Ci0KLSNpZiBFTkFCTEUoSU9TX1RPVUNIX0VW
RU5UUykKLSAgICB2b2lkIHNldFJhZGl1c1goZG91YmxlIHJhZGl1c1gpIHsgbV9yYWRpdXNYID0g
cmFkaXVzWDsgfQotICAgIGRvdWJsZSByYWRpdXNYKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXNY
OyB9Ci0gICAgdm9pZCBzZXRSYWRpdXNZKGRvdWJsZSByYWRpdXNZKSB7IG1fcmFkaXVzWSA9IHJh
ZGl1c1k7IH0KLSAgICBkb3VibGUgcmFkaXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaXVzWTsg
fQotICAgIHZvaWQgc2V0Um90YXRpb25BbmdsZShkb3VibGUgcm90YXRpb25BbmdsZSkgeyBtX3Jv
dGF0aW9uQW5nbGUgPSByb3RhdGlvbkFuZ2xlOyB9Ci0gICAgZG91YmxlIHJvdGF0aW9uQW5nbGUo
KSBjb25zdCB7IHJldHVybiBtX3JvdGF0aW9uQW5nbGU7IH0KLSAgICB2b2lkIHNldEZvcmNlKGRv
dWJsZSBmb3JjZSkgeyBtX2ZvcmNlID0gZm9yY2U7IH0KLSAgICBkb3VibGUgZm9yY2UoKSBjb25z
dCB7IHJldHVybiBtX2ZvcmNlOyB9Ci0gICAgdm9pZCBzZXRBbHRpdHVkZUFuZ2xlKGRvdWJsZSBh
bHRpdHVkZUFuZ2xlKSB7IG1fYWx0aXR1ZGVBbmdsZSA9IGFsdGl0dWRlQW5nbGU7IH0KLSAgICBk
b3VibGUgYWx0aXR1ZGVBbmdsZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWx0aXR1ZGVBbmdsZTsgfQot
ICAgIHZvaWQgc2V0QXppbXV0aEFuZ2xlKGRvdWJsZSBhemltdXRoQW5nbGUpIHsgbV9hemltdXRo
QW5nbGUgPSBhemltdXRoQW5nbGU7IH0KLSAgICBkb3VibGUgYXppbXV0aEFuZ2xlKCkgY29uc3Qg
eyByZXR1cm4gbV9hemltdXRoQW5nbGU7IH0KLSAgICB2b2lkIHNldFRvdWNoVHlwZShUb3VjaFR5
cGUgdG91Y2hUeXBlKSB7IG1fdG91Y2hUeXBlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRvdWNo
VHlwZSk7IH0KLSAgICBUb3VjaFR5cGUgdG91Y2hUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8VG91Y2hUeXBlPihtX3RvdWNoVHlwZSk7IH0KLSNlbmRpZgotCi0gICAgdm9pZCBlbmNv
ZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGljIE9wdGlvbmFsPFdlYlBsYXRmb3Jt
VG91Y2hQb2ludD4gZGVjb2RlKElQQzo6RGVjb2RlciYpOwotCi1wcml2YXRlOgotICAgIHVuc2ln
bmVkIG1faWRlbnRpZmllciB7IDAgfTsKLSAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2xvY2F0aW9u
OwotICAgIHVpbnQzMl90IG1fcGhhc2UgeyBUb3VjaFJlbGVhc2VkIH07Ci0jaWYgRU5BQkxFKElP
U19UT1VDSF9FVkVOVFMpCi0gICAgZG91YmxlIG1fcmFkaXVzWCB7IDAgfTsKLSAgICBkb3VibGUg
bV9yYWRpdXNZIHsgMCB9OwotICAgIGRvdWJsZSBtX3JvdGF0aW9uQW5nbGUgeyAwIH07Ci0gICAg
ZG91YmxlIG1fZm9yY2UgeyAwIH07Ci0gICAgZG91YmxlIG1fYWx0aXR1ZGVBbmdsZSB7IDAgfTsK
LSAgICBkb3VibGUgbV9hemltdXRoQW5nbGUgeyAwIH07Ci0gICAgdWludDMyX3QgbV90b3VjaFR5
cGUgeyBzdGF0aWNfY2FzdDx1aW50MzJfdD4oVG91Y2hUeXBlOjpEaXJlY3QpIH07Ci0jZW5kaWYK
LX07Ci0KLWNsYXNzIFdlYlRvdWNoRXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewotcHVibGljOgot
ICAgIFdlYlRvdWNoRXZlbnQoKSA9IGRlZmF1bHQ7Ci0gICAgV2ViVG91Y2hFdmVudChXZWJFdmVu
dDo6VHlwZSB0eXBlLCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgV2FsbFRpbWUgdGlt
ZXN0YW1wLCBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMs
IFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlz
R2VzdHVyZSwgZmxvYXQgZ2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCi0gICAg
ICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCi0gICAgICAgICwgbV90
b3VjaFBvaW50cyh0b3VjaFBvaW50cykKLSAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQot
ICAgICAgICAsIG1fY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzKHRydWUpCi0gICAgICAgICwgbV9p
c1BvdGVudGlhbFRhcChpc1BvdGVudGlhbFRhcCkKLSAgICAgICAgLCBtX2lzR2VzdHVyZShpc0dl
c3R1cmUpCi0gICAgICAgICwgbV9nZXN0dXJlU2NhbGUoZ2VzdHVyZVNjYWxlKQotICAgICAgICAs
IG1fZ2VzdHVyZVJvdGF0aW9uKGdlc3R1cmVSb3RhdGlvbikKLSAgICB7Ci0gICAgICAgIEFTU0VS
VCh0eXBlID09IFRvdWNoU3RhcnQgfHwgdHlwZSA9PSBUb3VjaE1vdmUgfHwgdHlwZSA9PSBUb3Vj
aEVuZCB8fCB0eXBlID09IFRvdWNoQ2FuY2VsKTsKLSAgICB9Ci0KLSAgICBjb25zdCBWZWN0b3I8
V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMoKSBjb25zdCB7IHJldHVybiBtX3Rv
dWNoUG9pbnRzOyB9Ci0KLSAgICBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fcG9zaXRpb247IH0KLQotICAgIGJvb2wgaXNQb3RlbnRpYWxUYXAoKSBjb25zdCB7
IHJldHVybiBtX2lzUG90ZW50aWFsVGFwOyB9Ci0KLSAgICBib29sIGlzR2VzdHVyZSgpIGNvbnN0
IHsgcmV0dXJuIG1faXNHZXN0dXJlOyB9Ci0gICAgZmxvYXQgZ2VzdHVyZVNjYWxlKCkgY29uc3Qg
eyByZXR1cm4gbV9nZXN0dXJlU2NhbGU7IH0KLSAgICBmbG9hdCBnZXN0dXJlUm90YXRpb24oKSBj
b25zdCB7IHJldHVybiBtX2dlc3R1cmVSb3RhdGlvbjsgfQotCi0gICAgYm9vbCBjYW5QcmV2ZW50
TmF0aXZlR2VzdHVyZXMoKSBjb25zdCB7IHJldHVybiBtX2NhblByZXZlbnROYXRpdmVHZXN0dXJl
czsgfQotICAgIHZvaWQgc2V0Q2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzKGJvb2wgY2FuUHJldmVu
dE5hdGl2ZUdlc3R1cmVzKSB7IG1fY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzID0gY2FuUHJldmVu
dE5hdGl2ZUdlc3R1cmVzOyB9Ci0KLSAgICBib29sIGFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQo
KSBjb25zdDsKLQotICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0
YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViVG91
Y2hFdmVudCYpOwotICAgIAotcHJpdmF0ZToKLSAgICBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBv
aW50PiBtX3RvdWNoUG9pbnRzOwotICAgIAotICAgIFdlYkNvcmU6OkludFBvaW50IG1fcG9zaXRp
b247Ci0gICAgYm9vbCBtX2NhblByZXZlbnROYXRpdmVHZXN0dXJlcyB7IGZhbHNlIH07Ci0gICAg
Ym9vbCBtX2lzUG90ZW50aWFsVGFwIHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNHZXN0dXJlIHsg
ZmFsc2UgfTsKLSAgICBmbG9hdCBtX2dlc3R1cmVTY2FsZSB7IDAgfTsKLSAgICBmbG9hdCBtX2dl
c3R1cmVSb3RhdGlvbiB7IDAgfTsKLX07Ci0jZWxzZQotLy8gRklYTUU6IE1vdmUgdGhpcyBjbGFz
cyB0byBpdHMgb3duIGhlYWRlciBmaWxlLgotLy8gRklYTUU6IEhhdmluZyAiUGxhdGZvcm0iIGlu
IHRoZSBuYW1lIG1ha2VzIGl0IHNvdW5kIGxpa2UgdGhpcyBldmVudCBpcyBwbGF0Zm9ybS1zcGVj
aWZpYyBvciBsb3ctCi0vLyBsZXZlbCBpbiBzb21lIHdheS4gVGhhdCBkb2Vzbid0IHNlZW0gdG8g
YmUgdGhlIGNhc2UuCi1jbGFzcyBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQgewotcHVibGljOgotICAg
IGVudW0gVG91Y2hQb2ludFN0YXRlIHsKLSAgICAgICAgVG91Y2hSZWxlYXNlZCwKLSAgICAgICAg
VG91Y2hQcmVzc2VkLAotICAgICAgICBUb3VjaE1vdmVkLAotICAgICAgICBUb3VjaFN0YXRpb25h
cnksCi0gICAgICAgIFRvdWNoQ2FuY2VsbGVkCi0gICAgfTsKLQotICAgIFdlYlBsYXRmb3JtVG91
Y2hQb2ludCgpIDogbV9yb3RhdGlvbkFuZ2xlKDAuMCksIG1fZm9yY2UoMC4wKSB7IH0KLQotICAg
IFdlYlBsYXRmb3JtVG91Y2hQb2ludCh1aW50MzJfdCBpZCwgVG91Y2hQb2ludFN0YXRlLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgc2NyZWVuUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBwb3NpdGlvbik7Ci0KLSAgICBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQodWludDMyX3QgaWQs
IFRvdWNoUG9pbnRTdGF0ZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcmVlblBvc2l0aW9u
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIHJhZGl1cywgZmxvYXQgcm90YXRpb25BbmdsZSA9IDAuMCwgZmxvYXQgZm9yY2UgPSAwLjAp
OwotICAgIAotICAgIHVpbnQzMl90IGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQotICAgIFRv
dWNoUG9pbnRTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRvdWNoUG9p
bnRTdGF0ZT4obV9zdGF0ZSk7IH0KLQotICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3Jl
ZW5Qb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2NyZWVuUG9zaXRpb247IH0KLSAgICBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9u
OyB9Ci0gICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgcmFkaXVzKCkgY29uc3QgeyByZXR1cm4g
bV9yYWRpdXM7IH0KLSAgICBmbG9hdCByb3RhdGlvbkFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9y
b3RhdGlvbkFuZ2xlOyB9Ci0gICAgZmxvYXQgZm9yY2UoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNl
OyB9Ci0KLSAgICB2b2lkIHNldFN0YXRlKFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSkgeyBtX3N0YXRl
ID0gc3RhdGU7IH0KLQotICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAg
IHN0YXRpYyBPcHRpb25hbDxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+IGRlY29kZShJUEM6OkRlY29k
ZXImKTsKLQotcHJpdmF0ZToKLSAgICB1aW50MzJfdCBtX2lkOwotICAgIHVpbnQzMl90IG1fc3Rh
dGU7Ci0gICAgV2ViQ29yZTo6SW50UG9pbnQgbV9zY3JlZW5Qb3NpdGlvbjsKLSAgICBXZWJDb3Jl
OjpJbnRQb2ludCBtX3Bvc2l0aW9uOwotICAgIFdlYkNvcmU6OkludFNpemUgbV9yYWRpdXM7Ci0g
ICAgZmxvYXQgbV9yb3RhdGlvbkFuZ2xlOwotICAgIGZsb2F0IG1fZm9yY2U7Ci19OwotCi0vLyBG
SVhNRTogTW92ZSB0aGlzIGNsYXNzIHRvIGl0cyBvd24gaGVhZGVyIGZpbGUuCi1jbGFzcyBXZWJU
b3VjaEV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKLXB1YmxpYzoKLSAgICBXZWJUb3VjaEV2ZW50
KCkgeyB9Ci0gICAgV2ViVG91Y2hFdmVudChUeXBlLCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBv
aW50PiYmLCBPcHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOwotCi0gICAg
Y29uc3QgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mIHRvdWNoUG9pbnRzKCkgY29uc3Qg
eyByZXR1cm4gbV90b3VjaFBvaW50czsgfQotCi0gICAgYm9vbCBhbGxUb3VjaFBvaW50c0FyZVJl
bGVhc2VkKCkgY29uc3Q7Ci0KLSAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsK
LSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYs
IFdlYlRvdWNoRXZlbnQmKTsKLSAgCi1wcml2YXRlOgotICAgIHN0YXRpYyBib29sIGlzVG91Y2hF
dmVudFR5cGUoVHlwZSk7Ci0KLSAgICBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiBtX3Rv
dWNoUG9pbnRzOwotfTsKLQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZW5kaWYg
Ly8gRU5BQkxFKFRPVUNIX0VWRU5UUykKLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKIG5hbWVz
cGFjZSBXVEYgewpAQCAtNTA4LDIzICsxMjgsNCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiB7CiAgICAgPjsKIH07CiAKLXRlbXBsYXRl
PD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b24+IHsKLSAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZl
bnQ6OkJ1dHRvbiwKLSAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246OkxlZnRC
dXR0b24sCi0gICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6QnV0dG9uOjpNaWRkbGVCdXR0
b24sCi0gICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6QnV0dG9uOjpSaWdodEJ1dHRvbiwK
LSAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246Ok5vQnV0dG9uCi0gICAgPjsK
LX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpXZWJNb3VzZUV2ZW50
OjpTeW50aGV0aWNDbGlja1R5cGU+IHsKLSAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAot
ICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZSwKLSAgICAg
ICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpTeW50aGV0aWNDbGlja1R5cGU6Ok5vVGFwLAotICAg
ICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZTo6T25lRmluZ2Vy
VGFwLAotICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZTo6
VHdvRmluZ2VyVGFwCi0gICAgPjsKLX07Ci0KIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAKaW5kZXggOGE2ZTQxODY4ODE4MWFh
N2UzNjYzZDA1Mzg3MGRlNGJlMDI4Y2JhYi4uMmRlMjYwMTU1OTVhMzgzZmIzYjE3ZWFmNzQ2ZDI5
NmY2ZTk5ODg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnRDb252
ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24u
Y3BwCkBAIC0yNiw3ICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldl
YkV2ZW50Q29udmVyc2lvbi5oIgogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJX
ZWJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgorI2luY2x1ZGUg
IldlYlRvdWNoRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJXaGVlbEV2ZW50LmgiCiAKICNpZiBFTkFC
TEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogI2luY2x1ZGUgIldlYkdlc3R1cmVFdmVudC5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcAppbmRleCBjY2NiNTYwNDE4ZjMy
ZmFkNDA1ODdhYzA4M2I5NWYzOThlYjEzOTlkLi5iYzQzMjIyODY0ODRlNmFmZGQ0OTM1M2ZhZTZh
OGZiM2NkNWU2NmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2Fy
ZEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNw
cApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYktleWJvYXJkRXZlbnQuaCIKIAogI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvS2V5cHJlc3NDb21t
YW5kLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Y2I4MDI5ZGM0NmRjMjUzMWY1Y2MyMzQwOWRjNmQyZjExZDVhM2I0OQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuaApAQCAtMCwwICsxLDEx
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJFZGl0aW5nUmFuZ2UuaCIKKyNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvQ29tcG9zaXRpb25VbmRlcmxpbmUuaD4KKworI2lmIFVTRShBUFBLSVQpCisjaW5jbHVk
ZSA8V2ViQ29yZS9LZXlwcmVzc0NvbW1hbmQuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViS2V5Ym9hcmRFdmVudCA6IHB1YmxpYyBXZWJFdmVudCB7CitwdWJsaWM6
CisgICAgV2ViS2V5Ym9hcmRFdmVudCgpOworICAgIH5XZWJLZXlib2FyZEV2ZW50KCk7CisKKyNp
ZiBVU0UoQVBQS0lUKQorICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dz
VmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2Rl
LCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJl
c3NDb21tYW5kPiYsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lz
dGVtS2V5LCBPcHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOworI2VsaWYg
UExBVEZPUk0oR1RLKQorICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcm
IGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0
dWFsS2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgT3B0aW9uYWw8VmVjdG9yPFdl
YkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lPj4mJiwgT3B0aW9uYWw8RWRpdGluZ1JhbmdlPiYm
LCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBPcHRpb25TZXQ8TW9k
aWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOworI2VsaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3Ry
aW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29k
ZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
LCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBoYW5kbGVk
QnlJbnB1dE1ldGhvZCwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNT
eXN0ZW1LZXksIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZWxp
ZiBVU0UoTElCV1BFKQorICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcm
IGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0
dWFsS2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgT3B0aW9uYWw8VmVjdG9yPFdl
YkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lPj4mJiwgT3B0aW9uYWw8RWRpdGluZ1JhbmdlPiYm
LCBib29sIGlzS2V5cGFkLCBPcHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXAp
OworI2Vsc2UKKyAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwg
Y29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0
cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1
YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9v
bCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE9wdGlvblNl
dDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZW5kaWYKKworICAgIGNvbnN0IFN0
cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQorICAgIGNvbnN0IFN0cmluZyYg
dW5tb2RpZmllZFRleHQoKSBjb25zdCB7IHJldHVybiBtX3VubW9kaWZpZWRUZXh0OyB9CisgICAg
Y29uc3QgU3RyaW5nJiBrZXkoKSBjb25zdCB7IHJldHVybiBtX2tleTsgfQorICAgIGNvbnN0IFN0
cmluZyYgY29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29kZTsgfQorICAgIGNvbnN0IFN0cmluZyYg
a2V5SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fa2V5SWRlbnRpZmllcjsgfQorICAgIGlu
dDMyX3Qgd2luZG93c1ZpcnR1YWxLZXlDb2RlKCkgY29uc3QgeyByZXR1cm4gbV93aW5kb3dzVmly
dHVhbEtleUNvZGU7IH0KKyAgICBpbnQzMl90IG5hdGl2ZVZpcnR1YWxLZXlDb2RlKCkgY29uc3Qg
eyByZXR1cm4gbV9uYXRpdmVWaXJ0dWFsS2V5Q29kZTsgfQorICAgIGludDMyX3QgbWFjQ2hhckNv
ZGUoKSBjb25zdCB7IHJldHVybiBtX21hY0NoYXJDb2RlOyB9CisjaWYgVVNFKEFQUEtJVCkgfHwg
VVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykgfHwgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElC
V1BFKQorICAgIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QoKSBjb25zdCB7IHJldHVybiBtX2hh
bmRsZWRCeUlucHV0TWV0aG9kOyB9CisjZW5kaWYKKyNpZiBQTEFURk9STShHVEspIHx8IFVTRShM
SUJXUEUpCisgICAgY29uc3QgT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5k
ZXJsaW5lPj4mIHByZWVkaXRVbmRlcmxpbmVzKCkgY29uc3QgeyByZXR1cm4gbV9wcmVlZGl0VW5k
ZXJsaW5lczsgfQorICAgIGNvbnN0IE9wdGlvbmFsPEVkaXRpbmdSYW5nZT4mIHByZWVkaXRTZWxl
Y3Rpb25SYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZWRpdFNlbGVjdGlvblJhbmdlOyB9Cisj
ZW5kaWYKKyNpZiBVU0UoQVBQS0lUKQorICAgIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVz
c0NvbW1hbmQ+JiBjb21tYW5kcygpIGNvbnN0IHsgcmV0dXJuIG1fY29tbWFuZHM7IH0KKyNlbGlm
IFBMQVRGT1JNKEdUSykKKyAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29tbWFuZHMoKSBjb25z
dCB7IHJldHVybiBtX2NvbW1hbmRzOyB9CisjZW5kaWYKKyAgICBib29sIGlzQXV0b1JlcGVhdCgp
IGNvbnN0IHsgcmV0dXJuIG1faXNBdXRvUmVwZWF0OyB9CisgICAgYm9vbCBpc0tleXBhZCgpIGNv
bnN0IHsgcmV0dXJuIG1faXNLZXlwYWQ7IH0KKyAgICBib29sIGlzU3lzdGVtS2V5KCkgY29uc3Qg
eyByZXR1cm4gbV9pc1N5c3RlbUtleTsgfQorCisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVy
JikgY29uc3Q7CisgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShJUEM6
OkRlY29kZXImLCBXZWJLZXlib2FyZEV2ZW50Jik7CisKKyAgICBzdGF0aWMgYm9vbCBpc0tleWJv
YXJkRXZlbnRUeXBlKFR5cGUpOworCitwcml2YXRlOgorICAgIFN0cmluZyBtX3RleHQ7CisgICAg
U3RyaW5nIG1fdW5tb2RpZmllZFRleHQ7CisgICAgU3RyaW5nIG1fa2V5OworICAgIFN0cmluZyBt
X2NvZGU7CisgICAgU3RyaW5nIG1fa2V5SWRlbnRpZmllcjsKKyAgICBpbnQzMl90IG1fd2luZG93
c1ZpcnR1YWxLZXlDb2RlIHsgMCB9OworICAgIGludDMyX3QgbV9uYXRpdmVWaXJ0dWFsS2V5Q29k
ZSB7IDAgfTsKKyAgICBpbnQzMl90IG1fbWFjQ2hhckNvZGUgeyAwIH07CisjaWYgVVNFKEFQUEtJ
VCkgfHwgVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykgfHwgUExBVEZPUk0oR1RLKSB8fCBV
U0UoTElCV1BFKQorICAgIGJvb2wgbV9oYW5kbGVkQnlJbnB1dE1ldGhvZCB7IGZhbHNlIH07Cisj
ZW5kaWYKKyNpZiBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCisgICAgT3B0aW9uYWw8VmVj
dG9yPFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lPj4gbV9wcmVlZGl0VW5kZXJsaW5lczsK
KyAgICBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+IG1fcHJlZWRpdFNlbGVjdGlvblJhbmdlOworI2Vu
ZGlmCisjaWYgVVNFKEFQUEtJVCkKKyAgICBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5k
PiBtX2NvbW1hbmRzOworI2VsaWYgUExBVEZPUk0oR1RLKQorICAgIFZlY3RvcjxTdHJpbmc+IG1f
Y29tbWFuZHM7CisjZW5kaWYKKyAgICBib29sIG1faXNBdXRvUmVwZWF0IHsgZmFsc2UgfTsKKyAg
ICBib29sIG1faXNLZXlwYWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1N5c3RlbUtleSB7IGZh
bHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
TW91c2VFdmVudC5jcHAKaW5kZXggN2IyNzBkYzNkYmU5OGY2MjkwYjgwMTczM2VmZjM5ZjkxYWVl
NGE2OS4uODhiZDU2NDczNDM5YTcxZjRjYmRlYjMwYWE0MzdiYzk0YjBmYTFjNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJN
b3VzZUV2ZW50LmgiCiAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5YTFiNWZhODZiNjhjODQ2
NGQ3MzI3MmYxMjIyZTkwNjFiZjg5NTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmgKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2Jh
Ymx5IG1vdmUgdG8gbWFrZWluZyB0aGUgV2ViQ29yZS9QbGF0Zm9ybUZvb0V2ZW50cyB0cml2aWFs
IGNsYXNzZXMgc28gdGhhdAorLy8gd2UgY2FuIHVzZSB0aGVtIGFzIHRoZSBldmVudCB0eXBlLgor
CisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJNb3VzZUV2ZW50IDogcHVibGljIFdlYkV2
ZW50IHsKK3B1YmxpYzoKKyAgICBlbnVtIEJ1dHRvbiB7CisgICAgICAgIExlZnRCdXR0b24gPSAw
LAorICAgICAgICBNaWRkbGVCdXR0b24sCisgICAgICAgIFJpZ2h0QnV0dG9uLAorICAgICAgICBO
b0J1dHRvbiA9IC0yCisgICAgfTsKKworICAgIGVudW0gU3ludGhldGljQ2xpY2tUeXBlIHsgTm9U
YXAsIE9uZUZpbmdlclRhcCwgVHdvRmluZ2VyVGFwIH07CisKKyAgICBXZWJNb3VzZUV2ZW50KCk7
CisKKyNpZiBQTEFURk9STShNQUMpCisgICAgV2ViTW91c2VFdmVudChUeXBlLCBCdXR0b24sIHVu
c2lnbmVkIHNob3J0IGJ1dHRvbnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbklu
VmlldywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0
YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgT3B0aW9uU2V0
PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0Ns
aWNrVHlwZSA9IE5vVGFwLCBpbnQgZXZlbnROdW1iZXIgPSAtMSwgaW50IG1lbnVUeXBlID0gMCk7
CisjZWxzZQorICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBi
dXR0b25zLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb25JblZpZXcsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0
YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE9wdGlvblNldDxNb2RpZmllcj4sIFdh
bGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlID0gMCwgU3ludGhldGljQ2xpY2tUeXBlID0g
Tm9UYXApOworI2VuZGlmCisKKyAgICBCdXR0b24gYnV0dG9uKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8QnV0dG9uPihtX2J1dHRvbik7IH0KKyAgICB1bnNpZ25lZCBzaG9ydCBidXR0b25z
KCkgY29uc3QgeyByZXR1cm4gbV9idXR0b25zOyB9CisgICAgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIHBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbjsgfSAvLyBSZWxhdGl2ZSB0
byB0aGUgdmlldy4KKyAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24o
KSBjb25zdCB7IHJldHVybiBtX2dsb2JhbFBvc2l0aW9uOyB9CisgICAgZmxvYXQgZGVsdGFYKCkg
Y29uc3QgeyByZXR1cm4gbV9kZWx0YVg7IH0KKyAgICBmbG9hdCBkZWx0YVkoKSBjb25zdCB7IHJl
dHVybiBtX2RlbHRhWTsgfQorICAgIGZsb2F0IGRlbHRhWigpIGNvbnN0IHsgcmV0dXJuIG1fZGVs
dGFaOyB9CisgICAgaW50MzJfdCBjbGlja0NvdW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGlja0Nv
dW50OyB9CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGludDMyX3QgZXZlbnROdW1iZXIoKSBjb25z
dCB7IHJldHVybiBtX2V2ZW50TnVtYmVyOyB9CisgICAgaW50MzJfdCBtZW51VHlwZUZvckV2ZW50
KCkgY29uc3QgeyByZXR1cm4gbV9tZW51VHlwZUZvckV2ZW50OyB9CisjZW5kaWYKKyAgICBkb3Vi
bGUgZm9yY2UoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlOyB9CisgICAgU3ludGhldGljQ2xpY2tU
eXBlIHN5bnRoZXRpY0NsaWNrVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFN5bnRo
ZXRpY0NsaWNrVHlwZT4obV9zeW50aGV0aWNDbGlja1R5cGUpOyB9CisKKyAgICB2b2lkIGVuY29k
ZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYk1vdXNlRXZlbnQmKTsKKworcHJpdmF0ZToKKyAg
ICBzdGF0aWMgYm9vbCBpc01vdXNlRXZlbnRUeXBlKFR5cGUpOworCisgICAgdWludDMyX3QgbV9i
dXR0b24geyBzdGF0aWNfY2FzdDx1aW50MzJfdD4oTm9CdXR0b24pIH07CisgICAgdW5zaWduZWQg
c2hvcnQgbV9idXR0b25zIHsgMCB9OworICAgIFdlYkNvcmU6OkludFBvaW50IG1fcG9zaXRpb247
IC8vIFJlbGF0aXZlIHRvIHRoZSB2aWV3LgorICAgIFdlYkNvcmU6OkludFBvaW50IG1fZ2xvYmFs
UG9zaXRpb247CisgICAgZmxvYXQgbV9kZWx0YVggeyAwIH07CisgICAgZmxvYXQgbV9kZWx0YVkg
eyAwIH07CisgICAgZmxvYXQgbV9kZWx0YVogeyAwIH07CisgICAgaW50MzJfdCBtX2NsaWNrQ291
bnQgeyAwIH07CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGludDMyX3QgbV9ldmVudE51bWJlciB7
IC0xIH07CisgICAgaW50MzJfdCBtX21lbnVUeXBlRm9yRXZlbnQgeyAwIH07CisjZW5kaWYKKyAg
ICBkb3VibGUgbV9mb3JjZSB7IDAgfTsKKyAgICB1aW50MzJfdCBtX3N5bnRoZXRpY0NsaWNrVHlw
ZSB7IE5vVGFwIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworbmFtZXNwYWNlIFdU
RiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpXZWJNb3VzZUV2ZW50
OjpCdXR0b24+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJL
aXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbiwKKyAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50
OjpCdXR0b246OkxlZnRCdXR0b24sCisgICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6QnV0
dG9uOjpNaWRkbGVCdXR0b24sCisgICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6QnV0dG9u
OjpSaWdodEJ1dHRvbiwKKyAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246Ok5v
QnV0dG9uCisgICAgPjsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0
OjpXZWJNb3VzZUV2ZW50OjpTeW50aGV0aWNDbGlja1R5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0Ns
aWNrVHlwZSwKKyAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpTeW50aGV0aWNDbGlja1R5
cGU6Ok5vVGFwLAorICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNr
VHlwZTo6T25lRmluZ2VyVGFwLAorICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5bnRo
ZXRpY0NsaWNrVHlwZTo6VHdvRmluZ2VyVGFwCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcAppbmRleCA4MmFkYTc3ZjU4
NzEzNzkwMTI3OGI4ODgyMThlOWJiZDBmM2U3YzBhLi42NTI0YTE5OWUwMmMzMGUxMmQ0NTNlNTMw
YmY3ODk2MjA1OTgyYmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3Vj
aEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcApA
QCAtMjQsMTQgKzI0LDE2IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgogCi0jaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgRU5BQkxFKFRPVUNIX0VW
RU5UUykKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisKIFdlYlRvdWNoRXZlbnQ6OldlYlRvdWNo
RXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4m
JiB0b3VjaFBvaW50cywgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1lIHRp
bWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAg
ICwgbV90b3VjaFBvaW50cyhXVEZNb3ZlKHRvdWNoUG9pbnRzKSkKQEAgLTYxLDcgKzYzLDE5IEBA
IGJvb2wgV2ViVG91Y2hFdmVudDo6aXNUb3VjaEV2ZW50VHlwZShUeXBlIHR5cGUpCiB7CiAgICAg
cmV0dXJuIHR5cGUgPT0gVG91Y2hTdGFydCB8fCB0eXBlID09IFRvdWNoTW92ZSB8fCB0eXBlID09
IFRvdWNoRW5kIHx8IHR5cGUgPT0gVG91Y2hDYW5jZWw7CiB9Ci0gICAgCisKKyNlbmRpZiAvLyAh
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKworYm9vbCBXZWJUb3VjaEV2ZW50OjphbGxUb3VjaFBvaW50
c0FyZVJlbGVhc2VkKCkgY29uc3QKK3sKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHRvdWNoUG9pbnQg
OiB0b3VjaFBvaW50cygpKSB7CisgICAgICAgIGlmICh0b3VjaFBvaW50LnN0YXRlKCkgIT0gV2Vi
UGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkICYmIHRvdWNoUG9pbnQuc3RhdGUoKSAh
PSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoQ2FuY2VsbGVkKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpICYmICFQTEFURk9STShJ
T1NfRkFNSUxZKQorI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJUb3VjaEV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc5YjA0OWM1ZWQ3YzAzN2JjODNlMzU2NmEx
ZjQ3MGI0YTU4NzZjNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlRvdWNoRXZlbnQuaApAQCAtMCwwICsxLDIxMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvSW50UG9pbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKy8vIEZJWE1FOiBIYXZpbmcg
IlBsYXRmb3JtIiBpbiB0aGUgbmFtZSBtYWtlcyBpdCBzb3VuZCBsaWtlIHRoaXMgZXZlbnQgaXMg
cGxhdGZvcm0tc3BlY2lmaWMgb3IKKy8vIGxvdy1sZXZlbCBpbiBzb21lIHdheS4gVGhhdCBkb2Vz
bid0IHNlZW0gdG8gYmUgdGhlIGNhc2UuCitjbGFzcyBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQgewor
cHVibGljOgorICAgIGVudW0gVG91Y2hQb2ludFN0YXRlIHsKKyAgICAgICAgVG91Y2hSZWxlYXNl
ZCwKKyAgICAgICAgVG91Y2hQcmVzc2VkLAorICAgICAgICBUb3VjaE1vdmVkLAorICAgICAgICBU
b3VjaFN0YXRpb25hcnksCisgICAgICAgIFRvdWNoQ2FuY2VsbGVkCisgICAgfTsKKworICAgIGVu
dW0gY2xhc3MgVG91Y2hUeXBlIHsKKyAgICAgICAgRGlyZWN0LAorICAgICAgICBTdHlsdXMKKyAg
ICB9OworCisgICAgV2ViUGxhdGZvcm1Ub3VjaFBvaW50KCkgPSBkZWZhdWx0OworICAgIFdlYlBs
YXRmb3JtVG91Y2hQb2ludCh1bnNpZ25lZCBpZGVudGlmaWVyLCBXZWJDb3JlOjpJbnRQb2ludCBs
b2NhdGlvbiwgVG91Y2hQb2ludFN0YXRlIHBoYXNlKQorICAgICAgICA6IG1faWRlbnRpZmllcihp
ZGVudGlmaWVyKQorICAgICAgICAsIG1fbG9jYXRpb24obG9jYXRpb24pCisgICAgICAgICwgbV9w
aGFzZShwaGFzZSkKKyAgICB7CisgICAgfQorCisgICAgdW5zaWduZWQgaWRlbnRpZmllcigpIGNv
bnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIFdlYkNvcmU6OkludFBvaW50IGxvY2F0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhdGlvbjsgfQorICAgIFRvdWNoUG9pbnRTdGF0ZSBw
aGFzZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRvdWNoUG9pbnRTdGF0ZT4obV9waGFz
ZSk7IH0KKyAgICBUb3VjaFBvaW50U3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBwaGFzZSgp
OyB9CisKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKKyAgICB2b2lkIHNldFJhZGl1c1go
ZG91YmxlIHJhZGl1c1gpIHsgbV9yYWRpdXNYID0gcmFkaXVzWDsgfQorICAgIGRvdWJsZSByYWRp
dXNYKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXNYOyB9CisgICAgdm9pZCBzZXRSYWRpdXNZKGRv
dWJsZSByYWRpdXNZKSB7IG1fcmFkaXVzWSA9IHJhZGl1c1k7IH0KKyAgICBkb3VibGUgcmFkaXVz
WSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaXVzWTsgfQorICAgIHZvaWQgc2V0Um90YXRpb25Bbmds
ZShkb3VibGUgcm90YXRpb25BbmdsZSkgeyBtX3JvdGF0aW9uQW5nbGUgPSByb3RhdGlvbkFuZ2xl
OyB9CisgICAgZG91YmxlIHJvdGF0aW9uQW5nbGUoKSBjb25zdCB7IHJldHVybiBtX3JvdGF0aW9u
QW5nbGU7IH0KKyAgICB2b2lkIHNldEZvcmNlKGRvdWJsZSBmb3JjZSkgeyBtX2ZvcmNlID0gZm9y
Y2U7IH0KKyAgICBkb3VibGUgZm9yY2UoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlOyB9CisgICAg
dm9pZCBzZXRBbHRpdHVkZUFuZ2xlKGRvdWJsZSBhbHRpdHVkZUFuZ2xlKSB7IG1fYWx0aXR1ZGVB
bmdsZSA9IGFsdGl0dWRlQW5nbGU7IH0KKyAgICBkb3VibGUgYWx0aXR1ZGVBbmdsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYWx0aXR1ZGVBbmdsZTsgfQorICAgIHZvaWQgc2V0QXppbXV0aEFuZ2xlKGRv
dWJsZSBhemltdXRoQW5nbGUpIHsgbV9hemltdXRoQW5nbGUgPSBhemltdXRoQW5nbGU7IH0KKyAg
ICBkb3VibGUgYXppbXV0aEFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9hemltdXRoQW5nbGU7IH0K
KyAgICB2b2lkIHNldFRvdWNoVHlwZShUb3VjaFR5cGUgdG91Y2hUeXBlKSB7IG1fdG91Y2hUeXBl
ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRvdWNoVHlwZSk7IH0KKyAgICBUb3VjaFR5cGUgdG91
Y2hUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VG91Y2hUeXBlPihtX3RvdWNoVHlw
ZSk7IH0KKyNlbmRpZgorCisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Cisg
ICAgc3RhdGljIE9wdGlvbmFsPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gZGVjb2RlKElQQzo6RGVj
b2RlciYpOworCitwcml2YXRlOgorICAgIHVuc2lnbmVkIG1faWRlbnRpZmllciB7IDAgfTsKKyAg
ICBXZWJDb3JlOjpJbnRQb2ludCBtX2xvY2F0aW9uOworICAgIHVpbnQzMl90IG1fcGhhc2UgeyBU
b3VjaFJlbGVhc2VkIH07CisjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCisgICAgZG91Ymxl
IG1fcmFkaXVzWCB7IDAgfTsKKyAgICBkb3VibGUgbV9yYWRpdXNZIHsgMCB9OworICAgIGRvdWJs
ZSBtX3JvdGF0aW9uQW5nbGUgeyAwIH07CisgICAgZG91YmxlIG1fZm9yY2UgeyAwIH07CisgICAg
ZG91YmxlIG1fYWx0aXR1ZGVBbmdsZSB7IDAgfTsKKyAgICBkb3VibGUgbV9hemltdXRoQW5nbGUg
eyAwIH07CisgICAgdWludDMyX3QgbV90b3VjaFR5cGUgeyBzdGF0aWNfY2FzdDx1aW50MzJfdD4o
VG91Y2hUeXBlOjpEaXJlY3QpIH07CisjZW5kaWYKK307CisKK2NsYXNzIFdlYlRvdWNoRXZlbnQg
OiBwdWJsaWMgV2ViRXZlbnQgeworcHVibGljOgorICAgIFdlYlRvdWNoRXZlbnQoKSA9IGRlZmF1
bHQ7CisgICAgV2ViVG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBPcHRpb25TZXQ8TW9k
aWZpZXI+IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBjb25zdCBWZWN0b3I8V2ViUGxh
dGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9u
LCBib29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlzR2VzdHVyZSwgZmxvYXQgZ2VzdHVyZVNjYWxl
LCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCisgICAgICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZp
ZXJzLCB0aW1lc3RhbXApCisgICAgICAgICwgbV90b3VjaFBvaW50cyh0b3VjaFBvaW50cykKKyAg
ICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQorICAgICAgICAsIG1fY2FuUHJldmVudE5hdGl2
ZUdlc3R1cmVzKHRydWUpCisgICAgICAgICwgbV9pc1BvdGVudGlhbFRhcChpc1BvdGVudGlhbFRh
cCkKKyAgICAgICAgLCBtX2lzR2VzdHVyZShpc0dlc3R1cmUpCisgICAgICAgICwgbV9nZXN0dXJl
U2NhbGUoZ2VzdHVyZVNjYWxlKQorICAgICAgICAsIG1fZ2VzdHVyZVJvdGF0aW9uKGdlc3R1cmVS
b3RhdGlvbikKKyAgICB7CisgICAgICAgIEFTU0VSVCh0eXBlID09IFRvdWNoU3RhcnQgfHwgdHlw
ZSA9PSBUb3VjaE1vdmUgfHwgdHlwZSA9PSBUb3VjaEVuZCB8fCB0eXBlID09IFRvdWNoQ2FuY2Vs
KTsKKyAgICB9CisKKyAgICBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91
Y2hQb2ludHMoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CisKKyAgICBXZWJDb3Jl
OjpJbnRQb2ludCBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0KKworICAg
IGJvb2wgaXNQb3RlbnRpYWxUYXAoKSBjb25zdCB7IHJldHVybiBtX2lzUG90ZW50aWFsVGFwOyB9
CisKKyAgICBib29sIGlzR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNHZXN0dXJlOyB9Cisg
ICAgZmxvYXQgZ2VzdHVyZVNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9nZXN0dXJlU2NhbGU7IH0K
KyAgICBmbG9hdCBnZXN0dXJlUm90YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2dlc3R1cmVSb3Rh
dGlvbjsgfQorCisgICAgYm9vbCBjYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMoKSBjb25zdCB7IHJl
dHVybiBtX2NhblByZXZlbnROYXRpdmVHZXN0dXJlczsgfQorICAgIHZvaWQgc2V0Q2FuUHJldmVu
dE5hdGl2ZUdlc3R1cmVzKGJvb2wgY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzKSB7IG1fY2FuUHJl
dmVudE5hdGl2ZUdlc3R1cmVzID0gY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzOyB9CisKKyAgICBi
b29sIGFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSBjb25zdDsKKworICAgIHZvaWQgZW5jb2Rl
KElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9v
bCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViVG91Y2hFdmVudCYpOworICAgIAorcHJpdmF0ZToK
KyAgICBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiBtX3RvdWNoUG9pbnRzOworICAgIAor
ICAgIFdlYkNvcmU6OkludFBvaW50IG1fcG9zaXRpb247CisgICAgYm9vbCBtX2NhblByZXZlbnRO
YXRpdmVHZXN0dXJlcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzUG90ZW50aWFsVGFwIHsgZmFs
c2UgfTsKKyAgICBib29sIG1faXNHZXN0dXJlIHsgZmFsc2UgfTsKKyAgICBmbG9hdCBtX2dlc3R1
cmVTY2FsZSB7IDAgfTsKKyAgICBmbG9hdCBtX2dlc3R1cmVSb3RhdGlvbiB7IDAgfTsKK307CisK
KyNlbHNlIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQorCitjbGFzcyBXZWJQbGF0Zm9ybVRvdWNo
UG9pbnQgeworcHVibGljOgorICAgIGVudW0gVG91Y2hQb2ludFN0YXRlIHsKKyAgICAgICAgVG91
Y2hSZWxlYXNlZCwKKyAgICAgICAgVG91Y2hQcmVzc2VkLAorICAgICAgICBUb3VjaE1vdmVkLAor
ICAgICAgICBUb3VjaFN0YXRpb25hcnksCisgICAgICAgIFRvdWNoQ2FuY2VsbGVkCisgICAgfTsK
KworICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCgpCisgICAgICAgIDogbV9yb3RhdGlvbkFuZ2xl
KDAuMCksIG1fZm9yY2UoMC4wKSB7IH0KKworICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCh1aW50
MzJfdCBpZCwgVG91Y2hQb2ludFN0YXRlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2NyZWVu
UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbik7CisKKyAgICBXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQodWludDMyX3QgaWQsIFRvdWNoUG9pbnRTdGF0ZSwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIHNjcmVlblBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
cG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHJhZGl1cywgZmxvYXQgcm90YXRpb25B
bmdsZSA9IDAuMCwgZmxvYXQgZm9yY2UgPSAwLjApOworICAgIAorICAgIHVpbnQzMl90IGlkKCkg
Y29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSgpIGNvbnN0
IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRvdWNoUG9pbnRTdGF0ZT4obV9zdGF0ZSk7IH0KKworICAg
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JlZW5Qb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fc2NyZWVuUG9zaXRpb247IH0KKyAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRp
b24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CisgICAgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgcmFkaXVzKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXM7IH0KKyAgICBmbG9hdCByb3Rh
dGlvbkFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9yb3RhdGlvbkFuZ2xlOyB9CisgICAgZmxvYXQg
Zm9yY2UoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlOyB9CisKKyAgICB2b2lkIHNldFN0YXRlKFRv
dWNoUG9pbnRTdGF0ZSBzdGF0ZSkgeyBtX3N0YXRlID0gc3RhdGU7IH0KKworICAgIHZvaWQgZW5j
b2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJQbGF0Zm9y
bVRvdWNoUG9pbnQ+IGRlY29kZShJUEM6OkRlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICB1aW50
MzJfdCBtX2lkOworICAgIHVpbnQzMl90IG1fc3RhdGU7CisgICAgV2ViQ29yZTo6SW50UG9pbnQg
bV9zY3JlZW5Qb3NpdGlvbjsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3Bvc2l0aW9uOworICAg
IFdlYkNvcmU6OkludFNpemUgbV9yYWRpdXM7CisgICAgZmxvYXQgbV9yb3RhdGlvbkFuZ2xlOwor
ICAgIGZsb2F0IG1fZm9yY2U7Cit9OworCitjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVibGljIFdl
YkV2ZW50IHsKK3B1YmxpYzoKKyAgICBXZWJUb3VjaEV2ZW50KCkgeyB9CisgICAgV2ViVG91Y2hF
dmVudChUeXBlLCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmLCBPcHRpb25TZXQ8TW9k
aWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOworCisgICAgY29uc3QgVmVjdG9yPFdlYlBsYXRm
b3JtVG91Y2hQb2ludD4mIHRvdWNoUG9pbnRzKCkgY29uc3QgeyByZXR1cm4gbV90b3VjaFBvaW50
czsgfQorCisgICAgYm9vbCBhbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkgY29uc3Q7CisKKyAg
ICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgV0FSTl9VTlVT
RURfUkVUVVJOIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYlRvdWNoRXZlbnQmKTsKKwor
cHJpdmF0ZToKKyAgICBzdGF0aWMgYm9vbCBpc1RvdWNoRXZlbnRUeXBlKFR5cGUpOworCisgICAg
VmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gbV90b3VjaFBvaW50czsKK307CisKKyNlbmRp
ZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQorI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMp
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50
LmNwcAppbmRleCAxMTYwZTc2MWUzYmVkNDIzZWRlZTc3ZWZhOGQ0ZWEwZTY1YmNkOTE3Li45ZDcy
NWVkYjY3MjE0Y2RjMWM4NTY0ZmJmYTFjYzE0OGIyMjlkNzdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJXaGVlbEV2ZW50LmNwcApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZlbnQu
aCIKIAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCkBAIC0zOSwxMSArMzks
NiBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9p
bnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludAogICAgICwgbV9kZWx0YShkZWx0YSkKICAgICAs
IG1fd2hlZWxUaWNrcyh3aGVlbFRpY2tzKQogICAgICwgbV9ncmFudWxhcml0eShncmFudWxhcml0
eSkKLSAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQotI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgICwgbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKGZhbHNlKQotICAg
ICwgbV9zY3JvbGxDb3VudCgwKQotI2VuZGlmCiB7CiAgICAgQVNTRVJUKGlzV2hlZWxFdmVudFR5
cGUodHlwZSkpOwogfQpAQCAtNTYsOSArNTEsOSBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2
ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludAog
ICAgICwgbV9kZWx0YShkZWx0YSkKICAgICAsIG1fd2hlZWxUaWNrcyh3aGVlbFRpY2tzKQogICAg
ICwgbV9ncmFudWxhcml0eShncmFudWxhcml0eSkKLSAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRG
cm9tRGV2aWNlKGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkKICAgICAsIG1fcGhhc2UocGhh
c2UpCiAgICAgLCBtX21vbWVudHVtUGhhc2UobW9tZW50dW1QaGFzZSkKKyAgICAsIG1fZGlyZWN0
aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkKICAgICAs
IG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyhoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKQog
ICAgICwgbV9zY3JvbGxDb3VudChzY3JvbGxDb3VudCkKICAgICAsIG1fdW5hY2NlbGVyYXRlZFNj
cm9sbGluZ0RlbHRhKHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSkKQEAgLTczLDcgKzY4LDYg
QEAgV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50
JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKICAgICAsIG1fZGVsdGEoZGVsdGEpCiAgICAgLCBt
X3doZWVsVGlja3Mod2hlZWxUaWNrcykKICAgICAsIG1fZ3JhbnVsYXJpdHkoZ3JhbnVsYXJpdHkp
Ci0gICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZShmYWxzZSkKICAgICAsIG1fcGhh
c2UocGhhc2UpCiAgICAgLCBtX21vbWVudHVtUGhhc2UobW9tZW50dW1QaGFzZSkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDk2NzA2NDAzZmNjNzA5NzY0
MzAyZmZmMTQ1OTAxZmI0MWNjYzFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViV2hlZWxFdmVudC5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYldoZWVsRXZlbnQgOiBwdWJsaWMgV2Vi
RXZlbnQgeworcHVibGljOgorICAgIGVudW0gR3JhbnVsYXJpdHkgeworICAgICAgICBTY3JvbGxC
eVBhZ2VXaGVlbEV2ZW50LAorICAgICAgICBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudAorICAgIH07
CisKKyAgICBlbnVtIFBoYXNlIHsKKyAgICAgICAgUGhhc2VOb25lICAgICAgICA9IDAsCisgICAg
ICAgIFBoYXNlQmVnYW4gICAgICAgPSAxIDw8IDAsCisgICAgICAgIFBoYXNlU3RhdGlvbmFyeSAg
PSAxIDw8IDEsCisgICAgICAgIFBoYXNlQ2hhbmdlZCAgICAgPSAxIDw8IDIsCisgICAgICAgIFBo
YXNlRW5kZWQgICAgICAgPSAxIDw8IDMsCisgICAgICAgIFBoYXNlQ2FuY2VsbGVkICAgPSAxIDw8
IDQsCisgICAgICAgIFBoYXNlTWF5QmVnaW4gICAgPSAxIDw8IDUsCisgICAgfTsKKworICAgIFdl
YldoZWVsRXZlbnQoKSA9IGRlZmF1bHQ7CisKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGds
b2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBPcHRpb25TZXQ8TW9kaWZp
ZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdlYldo
ZWVsRXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJp
dHksIGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSwgUGhhc2UgbW9tZW50
dW1QaGFzZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxD
b3VudCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVs
dGEsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZWxpZiBQTEFU
Rk9STShHVEspIHx8IFVTRShMSUJXUEUpCisgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9i
YWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3Jh
bnVsYXJpdHksIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZW5k
aWYKKworICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9wb3NpdGlvbjsgfQorICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBvc2l0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxQb3NpdGlvbjsgfQorICAgIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSBkZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsdGE7IH0KKyAgICBjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxUaWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fd2hlZWxU
aWNrczsgfQorICAgIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8R3JhbnVsYXJpdHk+KG1fZ3JhbnVsYXJpdHkpOyB9CisgICAgYm9vbCBkaXJlY3Rp
b25JbnZlcnRlZEZyb21EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvbkludmVydGVk
RnJvbURldmljZTsgfQorICAgIFBoYXNlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8UGhhc2U+KG1fcGhhc2UpOyB9CisgICAgUGhhc2UgbW9tZW50dW1QaGFzZSgpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PFBoYXNlPihtX21vbWVudHVtUGhhc2UpOyB9CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkgY29uc3QgeyBy
ZXR1cm4gbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOyB9CisgICAgdWludDMyX3Qgc2Nyb2xs
Q291bnQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbENvdW50OyB9CisgICAgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEoKSBjb25zdCB7IHJldHVy
biBtX3VuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YTsgfQorI2VuZGlmCisKKyAgICB2b2lkIGVu
Y29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJO
IGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYldoZWVsRXZlbnQmKTsKKworcHJpdmF0ZToK
KyAgICBzdGF0aWMgYm9vbCBpc1doZWVsRXZlbnRUeXBlKFR5cGUpOworCisgICAgV2ViQ29yZTo6
SW50UG9pbnQgbV9wb3NpdGlvbjsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2dsb2JhbFBvc2l0
aW9uOworICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX2RlbHRhOworICAgIFdlYkNvcmU6OkZsb2F0
U2l6ZSBtX3doZWVsVGlja3M7CisgICAgdWludDMyX3QgbV9ncmFudWxhcml0eSB7IFNjcm9sbEJ5
UGFnZVdoZWVsRXZlbnQgfTsKKyAgICB1aW50MzJfdCBtX3BoYXNlIHsgUGhhc2U6OlBoYXNlTm9u
ZSB9OworICAgIHVpbnQzMl90IG1fbW9tZW50dW1QaGFzZSB7IFBoYXNlOjpQaGFzZU5vbmUgfTsK
KyAgICBib29sIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlIHsgZmFsc2UgfTsKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICBib29sIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyB7IGZh
bHNlIH07CisgICAgdWludDMyX3QgbV9zY3JvbGxDb3VudCB7IDAgfTsKKyAgICBXZWJDb3JlOjpG
bG9hdFNpemUgbV91bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGE7CisjZW5kaWYKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L1dlYklPU0V2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYklPU0V2
ZW50RmFjdG9yeS5oCmluZGV4IDEzOGZlYWEyNTE5MmMxYTczOGQ0YmI5NDAzOWNlM2E4NmZhNmUy
Y2QuLjFlNzg4ZTYwYTc2YzU1ZWU0OTU5NTE1ZWVkMWFmMmI4YTQxZTI4N2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5LmgKQEAgLTI3LDcgKzI3LDgg
QEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKLSNpbXBvcnQgIldlYkV2ZW50LmgiCisj
aW1wb3J0ICJXZWJLZXlib2FyZEV2ZW50LmgiCisjaW1wb3J0ICJXZWJNb3VzZUV2ZW50LmgiCiAj
aW1wb3J0IDxVSUtpdC9VSUtpdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5oPgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViUGxhdGZvcm1Ub3VjaFBvaW50
SU9TLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJQbGF0Zm9ybVRvdWNoUG9pbnRJ
T1MuY3BwCmluZGV4IDdiNWViMzcyODgwZDg2NjI1NDQzMzRjZDQ2OTcyNzZkNTQzZGU0NWIuLjJh
OWRiNGY4YWNhZmU5ZDY0ZDVkNGViZDk5MTNhYTE2MWVhMGY0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJQbGF0Zm9ybVRvdWNoUG9pbnRJT1MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJQbGF0Zm9ybVRvdWNoUG9pbnRJT1MuY3BwCkBAIC0y
NCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYkV2
ZW50LmgiCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgogCiAjaWYgRU5BQkxFKFRPVUNIX0VW
RU5UUykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYlRvdWNoRXZl
bnRJT1MuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYlRvdWNoRXZlbnRJT1MuY3Bw
CmluZGV4IDQ1YTU2ZWIzYjBmZGExM2MzYjc4ZDU3NTk0YTAwOTJlNGUxODY2ZjYuLmU0MGE2ZTE3
MmJmZDJiNzUwNzZmZDQwNTNkYTY0M2ViYWI5ZWI4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2lvcy9XZWJUb3VjaEV2ZW50SU9TLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9pb3MvV2ViVG91Y2hFdmVudElPUy5jcHAKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJU
b3VjaEV2ZW50LmgiCiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5tbQppbmRleCA5
MjQxMDc2ODk4MmIxYjA0NjkxYmVjMmRlMWY2YzMxNWFlNjc0MDEzLi5jMWQyMWQ4MWI0MjQyNDJi
MzRiZjM4ZWZhYWFlNmU1Y2JjZGJjMWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0KQEAgLTI4LDcgKzI4LDYgQEAKIAog
I2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAKLSNpbXBvcnQgIldlYkV2ZW50LmgiCiAj
aW1wb3J0ICJXZWJHZXN0dXJlRXZlbnQuaCIKICNpbXBvcnQgPFdlYkNvcmUvSW50UG9pbnQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaAppbmRleCA5Mjk3MmZjYThjNGVjNTYzMTE5
ZWYzZGE5OTRhZTU2NWJlZmNjNDkxLi5lNjQ1NGFiYjU1MTJhZDU1ZmFjNGE1OTY3MDIxZmIyOTg5
ZDliN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0
b3J5LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5oCkBA
IC0yNSw3ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW1wb3J0ICJXZWJFdmVudC5oIgor
I2ltcG9ydCAiV2ViS2V5Ym9hcmRFdmVudC5oIgorI2ltcG9ydCAiV2ViTW91c2VFdmVudC5oIgor
I2ltcG9ydCAiV2ViV2hlZWxFdmVudC5oIgogCiAjaWYgVVNFKEFQUEtJVCkKICNpZiBkZWZpbmVk
KF9fT0JKQ19fKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1
cmVFdmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oCmlu
ZGV4IGUyZDE5MjU0NTMyOGQwNTUwYTBiOGI2NmMzYjBiOTg1ODJmOGVhNjAuLjU0YmU0MWNmZTAw
Mzg3MGJlN2NmMTUwMTIxNjc5NDRmMjhiMWE5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvV2ViR2VzdHVyZUV2ZW50LmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYkdlc3R1cmVFdmVudF9oCi0jZGVm
aW5lIFdlYkdlc3R1cmVFdmVudF9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShNQUNfR0VT
VFVSRV9FVkVOVFMpCiAKQEAgLTczLDUgKzcyLDMgQEAgcHJpdmF0ZToKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKLQotI2VuZGlm
IC8vIFdlYkdlc3R1cmVFdmVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSU5hdmlnYXRpb25DbGllbnQuaAppbmRleCAxNTdlZGE4OGRjZTgxZTc5NzQ4M2Y3YjcxZDY5
Y2I1OWZmNDdkNTJjLi4wNjFlMTg2ZGJlODg2YTA3NDIyYmY4M2I3YWZjZmNiYzZhYzllNmFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50
LmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJQbHVnaW5Nb2R1bGVJbmZvLmgiCiAjaW5j
bHVkZSAiUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmgiCiAjaW5jbHVkZSAiU2FtZURvY3VtZW50
TmF2aWdhdGlvblR5cGUuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZy
YW1lUG9saWN5TGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQb2xpY3lDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElQb2xpY3lDbGllbnQuaAppbmRleCA2YWU4ZTc1MjA1ZmZmYzg2
NTJmNGY5YjgzYmIzZGUzMGVlNmNmYWYyLi43ZDJlOTM0NDYyY2YzYmRjMTlhMTliN2RkMzFhMGMy
YTljZWJlZDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUG9s
aWN5Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBvbGljeUNs
aWVudC5oCkBAIC0yNSw3ICsyNSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2Vi
RXZlbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0
ZWRJbnB1dERpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24v
U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgKaW5kZXggNTFkNTQwMWRlMDA0OGM4M2RjOWI5MWFh
N2ExOWMwODU2YmExYTIyZi4uN2Q2ZjIyMDNhM2JkMzcxMjdmM2I0N2U5NDhjZjYwMGI5YWQ2ODk5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0
ZWRJbnB1dERpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0
aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oCkBAIC0yNyw4ICsyNyw4IEBACiAKICNpZiBF
TkFCTEUoV0VCRFJJVkVSX0FDVElPTlNfQVBJKQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50
UG9pbnQuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNzYyMWY4NzRjMDEzYTI0ODVlZjZlMGFjMzc5
NTZkZjg4ZmU5YzllYS4uYmU0OWIxMjgwZDA3ZTg4MDdhYWI1YjE2YTBhNTZhMTJmOTlkZDNmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMDQsNyArMTA0
LDYgQEAKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRWRpdENvbW1hbmRQcm94eS5oIgotI2lu
Y2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW5j
bHVkZSAiV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5oIgpAQCAtMTEyLDYgKzExMSw3IEBACiAjaW5jbHVkZSAiV2ViSW1h
Z2UuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JQcm94eS5oIgogI2luY2x1ZGUgIldlYkluc3Bl
Y3RvclV0aWxpdGllcy5oIgorI2luY2x1ZGUgIldlYktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRl
ICJXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSAiV2ViTmF2aWdhdGlvblN0YXRl
LmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VHZXN0dXJlUmVjb2duaXplci5t
bQppbmRleCA2YjQ1MzZhNzM2ZTBiZjNiN2I0MGIyMjcxZmMxYzVkYTMwNTljNmJhLi5jMzliYmVk
MTBiN2VkNTQ2ZTRkODcwMGIwZjhjYTEyMTNmOTIyYTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlR2VzdHVyZVJlY29nbml6ZXIubW0KQEAgLTMy
LDYgKzMyLDcgQEAKICNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9H
cmFwaGljc1NlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDx3dGYvQ29tcGlsZXIuaD4KKyNpbXBvcnQg
PHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KIAogc3RhdGlj
IE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4gd2ViRXZlbnRNb2RpZmllcnNG
b3JVSUtleU1vZGlmaWVyRmxhZ3MoVUlLZXlNb2RpZmllckZsYWdzIGZsYWdzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWRlMDg2YTA0
NDA1YzA0MzJiNDQxNmI0MTgxMWQzYzQ1ZDFiNWEzYi4uYTQ3YjAxMmQyYzQ4ZWQ4Y2Y0MDI1YmM5
ZDU2NDZmZjA2NzhlZWM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yMjAxLDYgKzIyMDEsMTAgQEAKIAkJMEYxODlDQUIyNDc0OUYy
RjAwRTU4RDgxIC8qIERpc3BsYXlMaW5rT2JzZXJ2ZXJJRC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEaXNwbGF5TGlua09ic2VydmVySUQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEYzQzcyNTcxOTZGNUY1MDAwQUVERDBDIC8qIFdLSW5zcGVjdG9ySGlnaGxp
Z2h0Vmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLSW5z
cGVjdG9ySGlnaGxpZ2h0Vmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYz
QzcyNTkxOTZGNUY2ODAwQUVERDBDIC8qIFdLSW5zcGVjdG9ySGlnaGxpZ2h0Vmlldy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0luc3BlY3RvckhpZ2hsaWdodFZpZXcuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0MDAwRkQyNTI3RDY5RDAwRTkxREE3IC8q
IFdlYldoZWVsRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViV2hlZWxFdmVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwRjQwMDBGRTI1MjdENkMzMDBFOTFEQTcgLyogV2ViTW91
c2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJNb3VzZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGNDAwMEZGMjUyN0Q2RjcwMEU5MURBNyAvKiBXZWJLZXlib2FyZEV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktleWJvYXJkRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMEY0MDAxMDAyNTI3RDczQzAwRTkxREE3IC8qIFdlYlRvdWNoRXZlbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViVG91Y2hFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjQ1QTMyRjIzOUQ4OUEwMDAyOTRBQkYgLyogV0tXZWJWaWV3UHJpdmF0ZUZvclRl
c3RpbmdJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJWaWV3UHJp
dmF0ZUZvclRlc3RpbmdJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0NUEz
MzAyMzlEODlBMTAwMjk0QUJGIC8qIFdLV2ViVmlld1Rlc3RpbmdJT1MubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdUZXN0aW5nSU9TLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ1QTMzMzIzOUQ4OUFGMDAyOTRBQkYgLyogV0tX
ZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTYxMTUsMTEgKzYxMTksMTMgQEAKIAkJCQlCQ0NGNkFCQTEyQzkxRUY5MDA4
RjlDMzUgLyogV2ViSW1hZ2UuY3BwICovLAogCQkJCUJDQ0Y2QUJCMTJDOTFFRjkwMDhGOUMzNSAv
KiBXZWJJbWFnZS5oICovLAogCQkJCUMwMzM3REQyMTI3QTJBMEUwMDhGRjRGNCAvKiBXZWJLZXli
b2FyZEV2ZW50LmNwcCAqLywKKwkJCQkwRjQwMDBGRjI1MjdENkY3MDBFOTFEQTcgLyogV2ViS2V5
Ym9hcmRFdmVudC5oICovLAogCQkJCUJDOUJBNTAyMTY5N0M0NTMwMEU0NDYxNiAvKiBXZWJLaXQy
SW5pdGlhbGl6ZS5jcHAgKi8sCiAJCQkJQkM5QkE1MDMxNjk3QzQ1MzAwRTQ0NjE2IC8qIFdlYktp
dDJJbml0aWFsaXplLmggKi8sCiAJCQkJOTA1NjIwRTgxMkJDMjQ4QjAwMDc5OUI2IC8qIFdlYk1l
bW9yeVNhbXBsZXIuY3BwICovLAogCQkJCTkwNTYyMEU5MTJCQzI0OEIwMDA3OTlCNiAvKiBXZWJN
ZW1vcnlTYW1wbGVyLmggKi8sCiAJCQkJQzAzMzdEQUYxMjdBMjhEMDAwOEZGNEY0IC8qIFdlYk1v
dXNlRXZlbnQuY3BwICovLAorCQkJCTBGNDAwMEZFMjUyN0Q2QzMwMEU5MURBNyAvKiBXZWJNb3Vz
ZUV2ZW50LmggKi8sCiAJCQkJQkNGNjlGOTgxMTc2Q0VENjAwNDcxQTUyIC8qIFdlYk5hdmlnYXRp
b25EYXRhU3RvcmUuaCAqLywKIAkJCQlDMDZDNjA5MzEyNEMxNDQzMDAwMTY4MkYgLyogV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8sCiAJCQkJQzA2QzYwOTQxMjRDMTQ0MzAwMDE2ODJG
IC8qIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCAqLywKQEAgLTYxNDksMTAgKzYxNTUsMTIg
QEAKIAkJCQk4MzYwMzQ5RDFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFj
a2VyLmNwcCAqLywKIAkJCQk4MzYwMzQ5RTFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0
YWJhc2VUcmFja2VyLmggKi8sCiAJCQkJQzAzMzdERDcxMjdBNTFCNjAwOEZGNEY0IC8qIFdlYlRv
dWNoRXZlbnQuY3BwICovLAorCQkJCTBGNDAwMTAwMjUyN0Q3M0MwMEU5MURBNyAvKiBXZWJUb3Vj
aEV2ZW50LmggKi8sCiAJCQkJN0MwNjVGMjkxQzhDRDk1RjAwQzJEOTUwIC8qIFdlYlVzZXJDb250
ZW50Q29udHJvbGxlckRhdGFUeXBlcy5jcHAgKi8sCiAJCQkJN0MwNjVGMkExQzhDRDk1RjAwQzJE
OTUwIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oICovLAogCQkJCTQ5NjBB
M0JDMjNDNTI4NjQwMDk2MTg0MiAvKiBXZWJWaWV3Q2F0ZWdvcnkuaCAqLywKIAkJCQlDMDMzN0RE
MDEyN0EyOTgwMDA4RkY0RjQgLyogV2ViV2hlZWxFdmVudC5jcHAgKi8sCisJCQkJMEY0MDAwRkQy
NTI3RDY5RDAwRTkxREE3IC8qIFdlYldoZWVsRXZlbnQuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0g
U2hhcmVkOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25B
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uaAppbmRleCA4ZTJkNmIxYTBlNjZmNDMxNTc5NGFlZmE3
ZmRkNjQ3YTQwY2QwN2ZjLi5lZmJhMDE5N2MwYjRhNDVjM2EyZjI2OTczNjZiZDgzNDRjODc4YjMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oCkBAIC0y
MywyMCArMjMsMTkgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
Ci0jaWZuZGVmIEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbl9oCi0jZGVmaW5lIEluamVj
dGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbl9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQ
SU9iamVjdC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oIgogI2lu
Y2x1ZGUgIkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oIgotI2luY2x1ZGUgIldlYkV2ZW50Lmgi
CisjaW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2Fk
ZXJUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBjbGFzcyBGb3JtU3RhdGU7Ci0gICAgY2xhc3Mg
TmF2aWdhdGlvbkFjdGlvbjsKK2NsYXNzIEZvcm1TdGF0ZTsKK2NsYXNzIE5hdmlnYXRpb25BY3Rp
b247CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtODAsNSArNzksMyBAQCBwcml2YXRlOgog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBJbmplY3RlZEJ1bmRsZU5h
dmlnYXRpb25BY3Rpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCmluZGV4
IDUwYTAwMzRkZDY1MDk0MDg5OTUwODA0ODUwODlhYjc3MDNjMDFmMjguLjQzYjM0OThlYzc2OTYz
OGI3OTExMzdhMDdhMzFlZGVjOWY1ZDlmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVn
aW5NYWMubW0KQEAgLTMxLDcgKzMxLDkgQEAKICNpbXBvcnQgIkxheWVyVHJlZUNvbnRleHQuaCIK
ICNpbXBvcnQgIk5ldHNjYXBlQnJvd3NlckZ1bmNzLmgiCiAjaW1wb3J0ICJQbHVnaW5Db250cm9s
bGVyLmgiCi0jaW1wb3J0ICJXZWJFdmVudC5oIgorI2ltcG9ydCAiV2ViS2V5Ym9hcmRFdmVudC5o
IgorI2ltcG9ydCAiV2ViTW91c2VFdmVudC5oIgorI2ltcG9ydCAiV2ViV2hlZWxFdmVudC5oIgog
I2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0NvbnRl
eHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IGUzNGEyN2Vm
OWNmYWE4MmMyMzEyNmM3MzQ5MjdhYmZmZmQ1YWNkNjAuLmY4NzcwNzA5MThmYjk5OTE3MjIwMGUx
NzFiNTJmZTVkNDlkYjFlYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtNDEsMTAgKzQxLDExIEBACiAjaW1wb3J0ICJXS0Fj
Y2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0TWFjLmgiCiAjaW1wb3J0ICJXS1BhZ2VGaW5kTWF0Y2hl
c0NsaWVudC5oIgogI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW1wb3J0ICJX
ZWJFdmVudC5oIgogI2ltcG9ydCAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW1wb3J0ICJXZWJG
aW5kT3B0aW9ucy5oIgorI2ltcG9ydCAiV2ViS2V5Ym9hcmRFdmVudC5oIgogI2ltcG9ydCAiV2Vi
TG9hZGVyU3RyYXRlZ3kuaCIKKyNpbXBvcnQgIldlYk1vdXNlRXZlbnQuaCIKICNpbXBvcnQgIldl
YlBhZ2UuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQ
YXN0ZWJvYXJkUHJveHlNZXNzYWdlcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwCmluZGV4IDE4NGNmNjc1ZTNiNGY5YThjZmRmZDIyY2Y2
MmE2NDUxZjI4ZmQzNjguLjcyNzRlNmYwNzQ3YjdhMzQ5N2U0MGFmMjE1MGRkMjI4ZDllNWRkNTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5j
cHAKQEAgLTM5LDkgKzM5LDExIEBACiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJL
ZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiV2ViV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250
ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBhMjNjMjE3NDFk
MDkyY2MwOTg1ZjZhYzVkZGFiYWIwNmM2NGQ1NDlhLi5mMjY2Y2QzY2UwOWVhOTFlZDRlNjYzODFi
OWQ5ZTllYzg2ZDA1MGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcApAQCAtMzAsMTEgKzMwLDEzIEBACiAjaW5jbHVkZSAiUGx1Z2luLmgi
CiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLZXlib2FyZEV2
ZW50LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyU3RyYXRlZ3kuaCIKKyNpbmNsdWRlICJXZWJNb3Vz
ZUV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZl
bnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0JpdG1hcEltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9DaHJvbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZUphci5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXgg
MTA4ZmQ3MWU1OTkyMTJlMzA4MzY0NWU0NTdkMzdlOGFiMTU1YmU5ZC4uM2UxOGJjNGIwMDkxOTUw
YjAxNTY3M2U0MmYyNzk3YTgyOThmZGQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC0yNywxMSArMjcsMTIgQEAK
ICNpbmNsdWRlICJFdmVudERpc3BhdGNoZXIuaCIKIAogI2luY2x1ZGUgIkV2ZW50RGlzcGF0Y2hl
ck1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJFdmVudENv
bnZlcnNpb24uaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiV2ViVG91Y2hF
dmVudC5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZlbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Bh
Z2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCmluZGV4IDFjNDE2ZDg4MGVjNzMzM2QwNzI2NmZhYzUz
NWRjMjk5ZTAyMGZiY2QuLjM3MmUyMGU3YTFjNzZlYzAxZjg2MzgxMzNhMjhkMTEyNjZlMDllMDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0
Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0
Y2hlci5oCkBAIC01MSw2ICs1MSwxMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBh
Z2U7CiBjbGFzcyBXZWJXaGVlbEV2ZW50OwogCisjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMp
CitjbGFzcyBXZWJUb3VjaEV2ZW50OworI2VuZGlmCisKIGNsYXNzIEV2ZW50RGlzcGF0Y2hlciA6
IHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OldvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxFdmVudERpc3BhdGNoZXI+IGNyZWF0ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5oCmluZGV4IDg0ODAyMTA5ZGZi
ZDA4N2MwNDk1YTU4M2FhOTVmODdkZWVkMzQ0NTIuLjk4ZTE2ZDIxYzlmMGJiN2UyMzg4ZGU5NjQw
MjM2MzVmYzEyNTIzOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1BhZ2VCYW5uZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Q
YWdlQmFubmVyLmgKQEAgLTIzLDExICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgUGFnZUJhbm5lcl9oCi0jZGVmaW5lIFBhZ2VCYW5u
ZXJfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJX
ZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYk1vdXNlRXZlbnQuaCIKIAogI2lmIFBMQVRGT1JNKE1B
QykKIE9CSkNfQ0xBU1MgQ0FMYXllcjsKQEAgLTk2LDUgKzk1LDMgQEAgcHJpdmF0ZToKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gUGFnZUJhbm5lcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDEyOWNhNjZjZTRj
ZjcxNDg4MWYzMTYwNjI4ZWFkOTZkNWFjZDlmY2MuLjI5YTZmZjkxZmIwOWI0YmRhZTMyMzM3ZGZl
M2MxODc5NjYwY2FhYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC04NSw3ICs4NSw2IEBACiAjaW5jbHVkZSAiV2ViRG9jdW1lbnRMb2FkZXIu
aCIKICNpbmNsdWRlICJXZWJEcmFnQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRWRpdG9yQ2xpZW50
LmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJFdmVudENvbnZlcnNpb24u
aCIKICNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgpA
QCAtMTAwLDkgKzk5LDExIEBACiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJXZWJJbnNwZWN0b3JVSS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclVJTWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVy
U3RyYXRlZ3kuaCIKICNpbmNsdWRlICJXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiV2ViTWVkaWFTdHJhdGVneS5oIgorI2luY2x1ZGUgIldlYk1vdXNlRXZlbnQuaCIKICNp
bmNsdWRlICJXZWJOb3RpZmljYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJXZWJPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCIK
QEAgLTEyNywxMSArMTI4LDEzIEBACiAjaW5jbHVkZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIKICNp
bmNsdWRlICJXZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTdG9yYWdl
TmFtZXNwYWNlUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCiAjaW5jbHVk
ZSAiV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViVW5kb1N0ZXAuaCIK
ICNpbmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJVc2Vy
TWVkaWFDbGllbnQuaCIKICNpbmNsdWRlICJXZWJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIgor
I2luY2x1ZGUgIldlYldoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUGFy
YW1ldGVycy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGRkYzdlNzYxZWFmMTQyYjc5
OTIzNmNlMTIyZmZmNDI0NzFkYTJiNzEuLjc5Y2YxMjJmMjIxOWZhZDc0ZmE2OWIzNWYzZWU1ODVi
MDgxYTZiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tCkBAIC01OSw2ICs1OSw3IEBACiAjaW1wb3J0ICJXZWJQYWdlUHJveHlN
ZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUHJldmlld0xvYWRlckNsaWVudC5oIgogI2ltcG9ydCAi
V2ViUHJvY2Vzcy5oIgorI2ltcG9ydCAiV2ViVG91Y2hFdmVudC5oIgogI2ltcG9ydCA8Q29yZVRl
eHQvQ1RGb250Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0F1dG9maWxsLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0F1dG9maWxsRWxlbWVudHMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXggM2Q5NjBhMjIxOTFiN2U1NTkyYTVhNjE0
NmNjZTM2ZTBmZTkxZmNjYy4uNWFlYjRiMTUzN2QzMzQyMTE2Y2EyMWE1NTUzNTNjNGFhZWMwMGU1
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBh
Z2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBh
Z2VNYWMubW0KQEAgLTQzLDEyICs0MywxMyBAQAogI2ltcG9ydCAiVXNlckRhdGEuaCIKICNpbXBv
cnQgIldLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMuaCIKICNpbXBvcnQgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgotI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldlYkV2ZW50
Q29udmVyc2lvbi5oIgogI2ltcG9ydCAiV2ViRnJhbWUuaCIKICNpbXBvcnQgIldlYkhpdFRlc3RS
ZXN1bHREYXRhLmgiCiAjaW1wb3J0ICJXZWJJbWFnZS5oIgogI2ltcG9ydCAiV2ViSW5zcGVjdG9y
LmgiCisjaW1wb3J0ICJXZWJLZXlib2FyZEV2ZW50LmgiCisjaW1wb3J0ICJXZWJNb3VzZUV2ZW50
LmgiCiAjaW1wb3J0ICJXZWJQYWdlT3ZlcmxheS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVz
c2FnZXMuaCIKICNpbXBvcnQgIldlYlBhc3RlYm9hcmRPdmVycmlkZXMuaCIK
</data>
<flag name="review"
          id="426303"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="426304"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410386</attachid>
            <date>2020-10-02 16:40:13 -0700</date>
            <delta_ts>2020-10-02 16:54:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217259-20201002164012.patch</filename>
            <type>text/plain</type>
            <size>84105</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI5Njk2ZTQzNzM3NDRiNTBh
ZjhiZmM0NmUzMDdkM2MzNGQ1MTE4MzMuLjdkNjllNjUwOTk5MzljZGU3MzgyNjU1YmU2ZDRhN2Jh
MDJkZmNjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAxIEBACisyMDIwLTEwLTAyICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgV2ViRXZlbnQg
c3ViY2xhc3MgZGVjbGFyYXRpb25zIHRvIHRoZWlyIG93biBmaWxlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MjU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBNYWtlIG5ldyBoZWFkZXIgZmlsZXMgZm9yIFdl
Yk1vdXNlRXZlbnQsIFdlYktleWJvYXJkRXZlbnQsIFdlYldoZWVsRXZlbnQsIFdlYlRvdWNoRXZl
bnQgYW5kCisgICAgICAgIGZpeCB0aGUgZmFsbG91dC4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3Qu
aDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViR2VzdHVyZUV2ZW50Lmg6CisgICAgICAgICog
U2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZl
V2ViTW91c2VFdmVudC5oOgorICAgICAgICAqIFNoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50Lmg6
CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaDoKKyAgICAgICAgKiBTaGFy
ZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50OjphbGxUb3VjaFBvaW50c0FyZVJlbGVh
c2VkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6YnV0dG9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6YnV0dG9ucyBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OnBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6Z2xvYmFsUG9zaXRpb24gY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpkZWx0YVggY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpkZWx0YVkgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpkZWx0YVogY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpjbGlja0NvdW50IGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZXZlbnROdW1iZXIgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjptZW51VHlwZUZv
ckV2ZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6
Zm9yY2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50Ojpz
eW50aGV0aWNDbGlja1R5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJX
aGVlbEV2ZW50Ojpwb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YldoZWVsRXZlbnQ6Omdsb2JhbFBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViV2hlZWxFdmVudDo6ZGVsdGEgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJXaGVlbEV2ZW50Ojp3aGVlbFRpY2tzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViV2hlZWxFdmVudDo6Z3JhbnVsYXJpdHkgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2Ug
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpwaGFzZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Om1vbWVudHVt
UGhhc2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojpo
YXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViV2hlZWxFdmVudDo6c2Nyb2xsQ291bnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojp1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojp0ZXh0IGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6dW5tb2RpZmll
ZFRleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
OjprZXkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
Ojpjb2RlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVu
dDo6a2V5SWRlbnRpZmllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYktl
eWJvYXJkRXZlbnQ6OndpbmRvd3NWaXJ0dWFsS2V5Q29kZSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6Om5hdGl2ZVZpcnR1YWxLZXlDb2RlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6bWFjQ2hhckNv
ZGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojpo
YW5kbGVkQnlJbnB1dE1ldGhvZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YktleWJvYXJkRXZlbnQ6OnByZWVkaXRVbmRlcmxpbmVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6cHJlZWRpdFNlbGVjdGlvblJhbmdlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6Y29tbWFuZHMg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojppc0F1
dG9SZXBlYXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2
ZW50Ojppc0tleXBhZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYktleWJv
YXJkRXZlbnQ6OmlzU3lzdGVtS2V5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmlkZW50aWZpZXIgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmxvY2F0
aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBv
aW50OjpwaGFzZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3Jt
VG91Y2hQb2ludDo6c3RhdGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFJhZGl1c1gpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnJhZGl1c1ggY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFJhZGl1c1kpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnJhZGl1c1kgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFJvdGF0
aW9uQW5nbGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ6OnJvdGF0aW9uQW5nbGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OnNldEZvcmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGxhdGZvcm1Ub3VjaFBvaW50Ojpmb3JjZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0QWx0aXR1ZGVBbmdsZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6YWx0aXR1ZGVBbmdsZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
c2V0QXppbXV0aEFuZ2xlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1U
b3VjaFBvaW50OjphemltdXRoQW5nbGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFRvdWNoVHlwZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6dG91Y2hUeXBlIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6V2ViVG91Y2hFdmVudCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OnRvdWNoUG9pbnRzIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6cG9zaXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50Ojppc1BvdGVudGlhbFRh
cCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OmlzR2Vz
dHVyZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6Omdl
c3R1cmVTY2FsZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZl
bnQ6Omdlc3R1cmVSb3RhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlRvdWNoRXZlbnQ6OmNhblByZXZlbnROYXRpdmVHZXN0dXJlcyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OnNldENhblByZXZlbnROYXRpdmVHZXN0dXJl
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6aWQg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6
OnNjcmVlblBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxh
dGZvcm1Ub3VjaFBvaW50Ojpwb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cmFkaXVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpzZXRTdGF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgICogU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAgICogU2hhcmVk
L1dlYktleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAqIFNoYXJlZC9XZWJLZXlib2FyZEV2ZW50
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojp0ZXh0IGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6dW5tb2RpZmllZFRleHQgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50OjprZXkgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojpjb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6a2V5SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OndpbmRvd3NWaXJ0dWFsS2V5Q29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6Om5hdGl2ZVZpcnR1YWxLZXlDb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6bWFjQ2hhckNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50OjpoYW5kbGVkQnlJbnB1dE1l
dGhvZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OnByZWVkaXRV
bmRlcmxpbmVzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6cHJl
ZWRpdFNlbGVjdGlvblJhbmdlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRF
dmVudDo6Y29tbWFuZHMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
Ojppc0F1dG9SZXBlYXQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
Ojppc0tleXBhZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6Omlz
U3lzdGVtS2V5IGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvV2ViTW91c2VFdmVudC5jcHA6Cisg
ICAgICAgICogU2hhcmVkL1dlYk1vdXNlRXZlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYk1vdXNlRXZlbnQ6OmJ1dHRvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNl
RXZlbnQ6OmJ1dHRvbnMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50Ojpw
b3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6Omdsb2JhbFBv
c2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFYIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFZIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFaIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViTW91c2VFdmVudDo6Y2xpY2tDb3VudCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYk1vdXNlRXZlbnQ6OmV2ZW50TnVtYmVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TW91c2VFdmVudDo6bWVudVR5cGVGb3JFdmVudCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk1vdXNlRXZlbnQ6OmZvcmNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVu
dDo6c3ludGhldGljQ2xpY2tUeXBlIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvV2ViVG91Y2hF
dmVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OmFsbFRvdWNoUG9pbnRz
QXJlUmVsZWFzZWQgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9XZWJUb3VjaEV2ZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OldlYlBsYXRmb3Jt
VG91Y2hQb2ludCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6aWRl
bnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
bG9jYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6
OnBoYXNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50Ojpz
dGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0
UmFkaXVzWCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cmFkaXVz
WCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0UmFk
aXVzWSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cmFkaXVzWSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0Um90YXRp
b25BbmdsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cm90YXRp
b25BbmdsZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
c2V0Rm9yY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmZvcmNl
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpzZXRBbHRp
dHVkZUFuZ2xlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjphbHRp
dHVkZUFuZ2xlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50
OjpzZXRBemltdXRoQW5nbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ6OmF6aW11dGhBbmdsZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91
Y2hQb2ludDo6c2V0VG91Y2hUeXBlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3Vj
aFBvaW50Ojp0b3VjaFR5cGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50
OjpXZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6dG91Y2hQ
b2ludHMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50Ojpwb3NpdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OmlzUG90ZW50aWFsVGFwIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6aXNHZXN0dXJlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6Z2VzdHVyZVNjYWxlIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6Z2VzdHVyZVJvdGF0aW9uIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6Y2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6c2V0Q2FuUHJldmVudE5hdGl2
ZUdlc3R1cmVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjppZCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2NyZWVuUG9z
aXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnBv
c2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50Ojpy
YWRpdXMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNl
dFN0YXRlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJXaGVlbEV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojpw
b3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Omdsb2JhbFBv
c2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6ZGVsdGEgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojp3aGVlbFRpY2tzIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6Z3JhbnVsYXJpdHkgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2Ug
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpwaGFzZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Om1vbWVudHVtUGhhc2UgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6c2Nyb2xsQ291bnQgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojp1bmFjY2VsZXJhdGVkU2Nyb2xsaW5n
RGVsdGEgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lmg6
CisgICAgICAgICogU2hhcmVkL2lvcy9XZWJQbGF0Zm9ybVRvdWNoUG9pbnRJT1MuY3BwOgorICAg
ICAgICAqIFNoYXJlZC9pb3MvV2ViVG91Y2hFdmVudElPUy5jcHA6CisgICAgICAgICogU2hhcmVk
L21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW06CisgICAgICAgICogU2hhcmVkL21hYy9X
ZWJFdmVudEZhY3RvcnkuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQVBJUG9saWN5Q2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS01vdXNlR2Vz
dHVyZVJlY29nbml6ZXIubW06CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZU5hdmlnYXRpb25BY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgor
CiAyMDIwLTA5LTMwICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgY29kZSBiZWhpbmQgRU5BQkxFKE1FRElBX1NFU1NJT04pLCBubyBwb3J0cyBlbmFibGUg
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDJiN2Y0NmIz
NDRlMWJlM2U4NjBiMTRlODEwNDkxNDMyODlhMTU3MGQuLjcwZDNkODhmMmJmNGE2ZjFjZmM0ZjE4
ODcwNGVkNjc3MGU0OTc3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQpAQCAtNjc4LDExICs2NzgsNiBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAg
ICAgICAgJ1dlYktpdDo6UmVzcGVjdFNlbGVjdGlvbkFuY2hvcic6IFsnIkdlc3R1cmVUeXBlcy5o
IiddLAogICAgICAgICAnV2ViS2l0OjpTZWxlY3Rpb25GbGFncyc6IFsnIkdlc3R1cmVUeXBlcy5o
IiddLAogICAgICAgICAnV2ViS2l0OjpTZWxlY3Rpb25Ub3VjaCc6IFsnIkdlc3R1cmVUeXBlcy5o
IiddLAotICAgICAgICAnV2ViS2l0OjpXZWJHZXN0dXJlRXZlbnQnOiBbJyJXZWJFdmVudC5oIidd
LAotICAgICAgICAnV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwK
LSAgICAgICAgJ1dlYktpdDo6V2ViTW91c2VFdmVudCc6IFsnIldlYkV2ZW50LmgiJ10sCi0gICAg
ICAgICdXZWJLaXQ6OldlYlRvdWNoRXZlbnQnOiBbJyJXZWJFdmVudC5oIiddLAotICAgICAgICAn
V2ViS2l0OjpXZWJXaGVlbEV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwKICAgICAgICAgJ1dlYkNv
cmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMnOiBbJzxXZWJDb3JlL01lZGlhUGxheWVy
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpJU09XZWJWVFRDdWUnOiBbJzxXZWJDb3JlL0lTT1ZU
VEN1ZS5oPiddLAogICAgICAgICAnc3RydWN0IFdlYkNvcmU6OkNvb2tpZSc6IFsnPFdlYkNvcmUv
Q29va2llLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1No
YXJlZEFQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2Fz
dC5oCmluZGV4IDY2NDhlNzJmZWIyYzNkMWFiNGUxYzBlMjE0Y2E2OGRlMDVkMDEzY2EuLmU1NjAw
NTA4YTFiMzNkMjU1ZGQ1ZGI3NDAyYTA1ZGY4Y2NlMTI2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBXS1NoYXJlZEFQSUNh
c3RfaAotI2RlZmluZSBXS1NoYXJlZEFQSUNhc3RfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJBUElFcnJvci5oIgogI2luY2x1ZGUgIkFQSU51bWJlci5oIgpAQCAtNDcsOCArNDYsOCBAQAog
I2luY2x1ZGUgIldLUGFnZVZpc2liaWxpdHlUeXBlcy5oIgogI2luY2x1ZGUgIldLVXNlckNvbnRl
bnRJbmplY3RlZEZyYW1lcy5oIgogI2luY2x1ZGUgIldLVXNlclNjcmlwdEluamVjdGlvblRpbWUu
aCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgiCisj
aW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGV4dE1lbnVJ
dGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgpAQCAtMTAzNCw1ICsxMDMzLDMgQEAgaW5s
aW5lIFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgdG9Vc2VyQ29udGVudEluamVj
dGVkRnJhbWVzKFdLVXNlckNvbnQKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRp
ZiAvLyBXS1NoYXJlZEFQSUNhc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
TmF0aXZlV2ViR2VzdHVyZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJH
ZXN0dXJlRXZlbnQuaAppbmRleCBiOThiNzU4MzcwZGRmNDk2NTI3ZDlmNjBlYmMzYjgyZGVlZGI4
YzZmLi5lY2VhYTk3ZDk1OWQwOGJjMjJkYTdmZDcxZjU3NzE5ZjRiZDFjNTdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJHZXN0dXJlRXZlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJHZXN0dXJlRXZlbnQuaApAQCAtMjMsMTIgKzIzLDEw
IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBO
YXRpdmVXZWJHZXN0dXJlRXZlbnRfaAotI2RlZmluZSBOYXRpdmVXZWJHZXN0dXJlRXZlbnRfaAor
I3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogCi0jaW5jbHVk
ZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJHZXN0dXJlRXZlbnQuaCIKIAogT0JKQ19DTEFT
UyBOU0V2ZW50OwpAQCAtNDgsNSArNDYsMyBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQotCi0jZW5kaWYgLy8g
TmF0aXZlV2ViR2VzdHVyZUV2ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdl
YktleWJvYXJkRXZlbnQuaAppbmRleCBiZjY0Mjk5MDI1YWZjYzFjYjc4NGQzNWRkM2VhNjExZDQ3
MDE4YjEyLi5mZDJiNTVmNDBmZGQzZDgyZDZkNjk0N2RjMzNhZDMxZjI0ZjRjMWM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCkBAIC0yNiwxOSAr
MjYsMTMgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZu
ZGVmIE5hdGl2ZVdlYktleWJvYXJkRXZlbnRfaAotI2RlZmluZSBOYXRpdmVXZWJLZXlib2FyZEV2
ZW50X2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJX
ZWJLZXlib2FyZEV2ZW50LmgiCiAKICNpZiBVU0UoQVBQS0lUKQogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KIE9CSkNfQ0xBU1MgTlNWaWV3OwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1zdHJ1
Y3QgQ29tcG9zaXRpb25VbmRlcmxpbmU7Ci1zdHJ1Y3QgS2V5cHJlc3NDb21tYW5kOwotfQogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShHVEspCkBAIC0xMTMsNSArMTA3LDMgQEAgcHJpdmF0ZToKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmgKaW5kZXgg
ZDZmOTkwMmI5NjNiZDlhMDAzNmE2MDA4ZDcxOWMzZTViMTU0MDJjNC4uNWUzN2Y3MzUxMGY3Mzk2
MWQ5N2NlOGI0MmRlMGUxOTM1YTE3MGQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2
ZVdlYk1vdXNlRXZlbnQuaApAQCAtMjMsMTAgKzIzLDkgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE5hdGl2ZVdlYk1vdXNlRXZlbnRfaAotI2Rl
ZmluZSBOYXRpdmVXZWJNb3VzZUV2ZW50X2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2Vi
RXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCiAKICNpZiBVU0UoQVBQS0lUKQog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTEwMiw1ICsxMDEsMyBAQCBwcml2YXRlOgog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBOYXRpdmVXZWJNb3VzZUV2
ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZl
bnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaAppbmRleCBm
NWQ3MmY4N2I1YjEyNGRiZTE0MGRmN2FkMzg3ZTZiOGEzY2ExZGFhLi5kNzMzMzAxNmU4NDkxYjQy
ODcxNzhhMjM3NTY5ZmRlOWQ4OWEzYTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZl
V2ViVG91Y2hFdmVudC5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5j
bHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBkZWZpbmVkKF9fT0JKQ19fKQogI2luY2x1ZGUgPFVJS2l0L1VJ
S2l0Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKaW5kZXgg
ODRkYjA4M2NlZmU3ZDE2NmIyNmYxNTE2MjBkMDk2MDQ3ZDY5NzJjZS4uZGY0MjQyYjA3MzljODM4
YjY0YzdjNzFmMjRlMWZlMDY5YjRmNDAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2
ZVdlYldoZWVsRXZlbnQuaApAQCAtMjMsMTAgKzIzLDkgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE5hdGl2ZVdlYldoZWVsRXZlbnRfaAotI2Rl
ZmluZSBOYXRpdmVXZWJXaGVlbEV2ZW50X2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2Vi
RXZlbnQuaCIKKyNpbmNsdWRlICJXZWJXaGVlbEV2ZW50LmgiCiAKICNpZiBVU0UoQVBQS0lUKQog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTg5LDUgKzg4LDMgQEAgcHJpdmF0ZToKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gTmF0aXZlV2ViV2hlZWxFdmVu
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0
YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaAppbmRleCBm
NzI3MWVhZjgzOGEzMGM5OWIwYzhiMjA1NGZkNGI2Nzc4NjY3ZjZmLi5jYmQ3NzBlNTdmM2VhN2Q0
ZmM4OTJkY2VhZjQ0ZGZhZmMwYjVmNGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmln
YXRpb25BY3Rpb25EYXRhLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYk1vdXNlRXZlbnQuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQmFja0Zv
cndhcmRJdGVtSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCmluZGV4IGRiN2RlMzllNjdjYjM1YWY5YTA1YWE0MmIy
M2ZiODIwNzhhYWI0NDAuLmNlMzE3OGRlMjcxZTAxZmVmNDI1OGJhYWU3NTAxNTk3ZWFhNWJhMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5jcHAKQEAgLTYyLDE2ICs2Miw0IEBAIGJvb2wgV2Vi
RXZlbnQ6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYkV2ZW50JiByZXN1bHQpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotYm9vbCBXZWJU
b3VjaEV2ZW50OjphbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkgY29uc3QKLXsKLSAgICBmb3Ig
KGNvbnN0IGF1dG8mIHRvdWNoUG9pbnQgOiB0b3VjaFBvaW50cygpKSB7Ci0gICAgICAgIGlmICh0
b3VjaFBvaW50LnN0YXRlKCkgIT0gV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2Vk
ICYmIHRvdWNoUG9pbnQuc3RhdGUoKSAhPSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoQ2Fu
Y2VsbGVkKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHJldHVybiB0
cnVlOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2
ZW50LmgKaW5kZXggZTMxZDkyNTM0YmYxODA4ZjEyYzMwMDVmZDc1OTRmODAwNmM4OTk5Ni4uM2Fl
NjUwNDc3OWQzOTE3YTc5ZjY5ZjMyYjU4MjYwYWZlZGEyNzBiNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJF
dmVudC5oCkBAIC0yOSwxMyArMjksNiBAQAogLy8gRklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBt
b3ZlIHRvIG1ha2VpbmcgdGhlIFdlYkNvcmUvUGxhdGZvcm1Gb29FdmVudHMgdHJpdmlhbCBjbGFz
c2VzIHNvIHRoYXQKIC8vIHdlIGNhbiB1c2UgdGhlbSBhcyB0aGUgZXZlbnQgdHlwZS4KIAotI2lu
Y2x1ZGUgIkVkaXRpbmdSYW5nZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQ29tcG9zaXRpb25VbmRl
cmxpbmUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL0Zsb2F0U2l6ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL0ludFNpemUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0tleXByZXNzQ29tbWFuZC5o
PgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5o
PgogI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgpAQCAtNDYsMTIgKzM5LDYgQEAgY2xhc3MgRGVj
b2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9CiAKLSNpZiBVU0UoQVBQS0lUKQotbmFtZXNwYWNlIFdl
YkNvcmUgewotc3RydWN0IEtleXByZXNzQ29tbWFuZDsKLX0KLSNlbmRpZgotCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgV2ViRXZlbnQgewpAQCAtMTI2LDM3MyArMTEzLDYgQEAgcHJpdmF0
ZToKICAgICBXYWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKLS8vIEZJWE1FOiBNb3ZlIHRoaXMg
Y2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYk1vdXNlRXZlbnQgOiBwdWJs
aWMgV2ViRXZlbnQgewotcHVibGljOgotICAgIGVudW0gQnV0dG9uIHsKLSAgICAgICAgTGVmdEJ1
dHRvbiA9IDAsCi0gICAgICAgIE1pZGRsZUJ1dHRvbiwKLSAgICAgICAgUmlnaHRCdXR0b24sCi0g
ICAgICAgIE5vQnV0dG9uID0gLTIKLSAgICB9OwotCi0gICAgZW51bSBTeW50aGV0aWNDbGlja1R5
cGUgeyBOb1RhcCwgT25lRmluZ2VyVGFwLCBUd29GaW5nZXJUYXAgfTsKLQotICAgIFdlYk1vdXNl
RXZlbnQoKTsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBXZWJNb3VzZUV2ZW50KFR5cGUsIEJ1
dHRvbiwgdW5zaWduZWQgc2hvcnQgYnV0dG9ucywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBv
c2l0aW9uSW5WaWV3LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZs
b2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBP
cHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3lu
dGhldGljQ2xpY2tUeXBlID0gTm9UYXAsIGludCBldmVudE51bWJlciA9IC0xLCBpbnQgbWVudVR5
cGUgPSAwKTsKLSNlbHNlCi0gICAgV2ViTW91c2VFdmVudChUeXBlLCBCdXR0b24sIHVuc2lnbmVk
IHNob3J0IGJ1dHRvbnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbkluVmlldywg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZs
b2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgT3B0aW9uU2V0PE1vZGlm
aWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlj
a1R5cGUgPSBOb1RhcCk7Ci0jZW5kaWYKLQotICAgIEJ1dHRvbiBidXR0b24oKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQotICAgIHVuc2lnbmVkIHNob3J0
IGJ1dHRvbnMoKSBjb25zdCB7IHJldHVybiBtX2J1dHRvbnM7IH0KLSAgICBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9IC8vIFJl
bGF0aXZlIHRvIHRoZSB2aWV3LgotICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsUG9zaXRpb247IH0KLSAgICBmbG9hdCBk
ZWx0YVgoKSBjb25zdCB7IHJldHVybiBtX2RlbHRhWDsgfQotICAgIGZsb2F0IGRlbHRhWSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGVsdGFZOyB9Ci0gICAgZmxvYXQgZGVsdGFaKCkgY29uc3QgeyByZXR1
cm4gbV9kZWx0YVo7IH0KLSAgICBpbnQzMl90IGNsaWNrQ291bnQoKSBjb25zdCB7IHJldHVybiBt
X2NsaWNrQ291bnQ7IH0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgaW50MzJfdCBldmVudE51bWJl
cigpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnROdW1iZXI7IH0KLSAgICBpbnQzMl90IG1lbnVUeXBl
Rm9yRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX21lbnVUeXBlRm9yRXZlbnQ7IH0KLSNlbmRpZgot
ICAgIGRvdWJsZSBmb3JjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2U7IH0KLSAgICBTeW50aGV0
aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8U3ludGhldGljQ2xpY2tUeXBlPihtX3N5bnRoZXRpY0NsaWNrVHlwZSk7IH0KLQotICAgIHZv
aWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9S
RVRVUk4gYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViTW91c2VFdmVudCYpOwotCi1wcml2
YXRlOgotICAgIHN0YXRpYyBib29sIGlzTW91c2VFdmVudFR5cGUoVHlwZSk7Ci0KLSAgICB1aW50
MzJfdCBtX2J1dHRvbiB7IHN0YXRpY19jYXN0PHVpbnQzMl90PihOb0J1dHRvbikgfTsKLSAgICB1
bnNpZ25lZCBzaG9ydCBtX2J1dHRvbnMgeyAwIH07Ci0gICAgV2ViQ29yZTo6SW50UG9pbnQgbV9w
b3NpdGlvbjsgLy8gUmVsYXRpdmUgdG8gdGhlIHZpZXcuCi0gICAgV2ViQ29yZTo6SW50UG9pbnQg
bV9nbG9iYWxQb3NpdGlvbjsKLSAgICBmbG9hdCBtX2RlbHRhWCB7IDAgfTsKLSAgICBmbG9hdCBt
X2RlbHRhWSB7IDAgfTsKLSAgICBmbG9hdCBtX2RlbHRhWiB7IDAgfTsKLSAgICBpbnQzMl90IG1f
Y2xpY2tDb3VudCB7IDAgfTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgaW50MzJfdCBtX2V2ZW50
TnVtYmVyIHsgLTEgfTsKLSAgICBpbnQzMl90IG1fbWVudVR5cGVGb3JFdmVudCB7IDAgfTsKLSNl
bmRpZgotICAgIGRvdWJsZSBtX2ZvcmNlIHsgMCB9OwotICAgIHVpbnQzMl90IG1fc3ludGhldGlj
Q2xpY2tUeXBlIHsgTm9UYXAgfTsKLX07Ci0KLS8vIEZJWE1FOiBNb3ZlIHRoaXMgY2xhc3MgdG8g
aXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYldoZWVsRXZlbnQgOiBwdWJsaWMgV2ViRXZl
bnQgewotcHVibGljOgotICAgIGVudW0gR3JhbnVsYXJpdHkgewotICAgICAgICBTY3JvbGxCeVBh
Z2VXaGVlbEV2ZW50LAotICAgICAgICBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudAotICAgIH07Ci0K
LSAgICBlbnVtIFBoYXNlIHsKLSAgICAgICAgUGhhc2VOb25lICAgICAgICA9IDAsCi0gICAgICAg
IFBoYXNlQmVnYW4gICAgICAgPSAxIDw8IDAsCi0gICAgICAgIFBoYXNlU3RhdGlvbmFyeSAgPSAx
IDw8IDEsCi0gICAgICAgIFBoYXNlQ2hhbmdlZCAgICAgPSAxIDw8IDIsCi0gICAgICAgIFBoYXNl
RW5kZWQgICAgICAgPSAxIDw8IDMsCi0gICAgICAgIFBoYXNlQ2FuY2VsbGVkICAgPSAxIDw8IDQs
Ci0gICAgICAgIFBoYXNlTWF5QmVnaW4gICAgPSAxIDw8IDUsCi0gICAgfTsKLQotICAgIFdlYldo
ZWVsRXZlbnQoKSA9IGRlZmF1bHQ7Ci0KLSAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBPcHRpb25TZXQ8TW9kaWZpZXI+
LCBXYWxsVGltZSB0aW1lc3RhbXApOwotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdlYldoZWVs
RXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
ZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHks
IGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1Q
aGFzZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxDb3Vu
dCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEs
IE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Ci0jZWxpZiBQTEFURk9S
TShHVEspIHx8IFVTRShMSUJXUEUpCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVs
YXJpdHksIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Ci0jZW5kaWYK
LQotICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9wb3NpdGlvbjsgfQotICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxQb3NpdGlvbjsgfQotICAgIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSBkZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsdGE7IH0KLSAgICBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxUaWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fd2hlZWxUaWNr
czsgfQotICAgIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8R3JhbnVsYXJpdHk+KG1fZ3JhbnVsYXJpdHkpOyB9Ci0gICAgYm9vbCBkaXJlY3Rpb25J
bnZlcnRlZEZyb21EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvbkludmVydGVkRnJv
bURldmljZTsgfQotICAgIFBoYXNlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
UGhhc2U+KG1fcGhhc2UpOyB9Ci0gICAgUGhhc2UgbW9tZW50dW1QaGFzZSgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PFBoYXNlPihtX21vbWVudHVtUGhhc2UpOyB9Ci0jaWYgUExBVEZPUk0o
Q09DT0EpCi0gICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkgY29uc3QgeyByZXR1
cm4gbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOyB9Ci0gICAgdWludDMyX3Qgc2Nyb2xsQ291
bnQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbENvdW50OyB9Ci0gICAgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEoKSBjb25zdCB7IHJldHVybiBt
X3VuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YTsgfQotI2VuZGlmCi0KLSAgICB2b2lkIGVuY29k
ZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYldoZWVsRXZlbnQmKTsKLQotcHJpdmF0ZToKLSAg
ICBzdGF0aWMgYm9vbCBpc1doZWVsRXZlbnRUeXBlKFR5cGUpOwotCi0gICAgV2ViQ29yZTo6SW50
UG9pbnQgbV9wb3NpdGlvbjsKLSAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2dsb2JhbFBvc2l0aW9u
OwotICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX2RlbHRhOwotICAgIFdlYkNvcmU6OkZsb2F0U2l6
ZSBtX3doZWVsVGlja3M7Ci0gICAgdWludDMyX3QgbV9ncmFudWxhcml0eSB7IFNjcm9sbEJ5UGFn
ZVdoZWVsRXZlbnQgfTsKLSAgICBib29sIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlIHsg
ZmFsc2UgfTsKLSAgICB1aW50MzJfdCBtX3BoYXNlIHsgUGhhc2U6OlBoYXNlTm9uZSB9OwotICAg
IHVpbnQzMl90IG1fbW9tZW50dW1QaGFzZSB7IFBoYXNlOjpQaGFzZU5vbmUgfTsKLSNpZiBQTEFU
Rk9STShDT0NPQSkKLSAgICBib29sIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyB7IGZhbHNl
IH07Ci0gICAgdWludDMyX3QgbV9zY3JvbGxDb3VudCB7IDAgfTsKLSAgICBXZWJDb3JlOjpGbG9h
dFNpemUgbV91bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGE7Ci0jZW5kaWYKLX07Ci0KLS8vIEZJ
WE1FOiBNb3ZlIHRoaXMgY2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYktl
eWJvYXJkRXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewotcHVibGljOgotICAgIFdlYktleWJvYXJk
RXZlbnQoKTsKLSAgICB+V2ViS2V5Ym9hcmRFdmVudCgpOwotCi0jaWYgVVNFKEFQUEtJVCkKLSAg
ICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwg
Y29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBp
bnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBoYW5kbGVkQnlJ
bnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mLCBib29s
IGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0
PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKLSNlbGlmIFBMQVRGT1JNKEdUSykKLSAg
ICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wg
aGFuZGxlZEJ5SW5wdXRNZXRob2QsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlv
blVuZGVybGluZT4+JiYsIE9wdGlvbmFsPEVkaXRpbmdSYW5nZT4mJiwgVmVjdG9yPFN0cmluZz4m
JiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUg
dGltZXN0YW1wKTsKLSNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgV2ViS2V5Ym9hcmRF
dmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRl
eHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYg
a2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1
YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGJv
b2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBPcHRpb25T
ZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOwotI2VsaWYgVVNFKExJQldQRSkKLSAg
ICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wg
aGFuZGxlZEJ5SW5wdXRNZXRob2QsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlv
blVuZGVybGluZT4+JiYsIE9wdGlvbmFsPEVkaXRpbmdSYW5nZT4mJiwgYm9vbCBpc0tleXBhZCwg
T3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKLSNlbHNlCi0gICAgV2Vi
S2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5t
b2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5h
dGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBi
b29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBPcHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxs
VGltZSB0aW1lc3RhbXApOwotI2VuZGlmCi0KLSAgICBjb25zdCBTdHJpbmcmIHRleHQoKSBjb25z
dCB7IHJldHVybiBtX3RleHQ7IH0KLSAgICBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0KCkg
Y29uc3QgeyByZXR1cm4gbV91bm1vZGlmaWVkVGV4dDsgfQotICAgIGNvbnN0IFN0cmluZyYga2V5
KCkgY29uc3QgeyByZXR1cm4gbV9rZXk7IH0KLSAgICBjb25zdCBTdHJpbmcmIGNvZGUoKSBjb25z
dCB7IHJldHVybiBtX2NvZGU7IH0KLSAgICBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX2tleUlkZW50aWZpZXI7IH0KLSAgICBpbnQzMl90IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlOyB9Ci0g
ICAgaW50MzJfdCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZl
VmlydHVhbEtleUNvZGU7IH0KLSAgICBpbnQzMl90IG1hY0NoYXJDb2RlKCkgY29uc3QgeyByZXR1
cm4gbV9tYWNDaGFyQ29kZTsgfQotI2lmIFVTRShBUFBLSVQpIHx8IFVTRShVSUtJVF9LRVlCT0FS
RF9BRERJVElPTlMpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKLSAgICBib29sIGhh
bmRsZWRCeUlucHV0TWV0aG9kKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGVkQnlJbnB1dE1ldGhv
ZDsgfQotI2VuZGlmCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQotICAgIGNvbnN0
IE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZT4+JiBwcmVlZGl0
VW5kZXJsaW5lcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZWRpdFVuZGVybGluZXM7IH0KLSAgICBj
b25zdCBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+JiBwcmVlZGl0U2VsZWN0aW9uUmFuZ2UoKSBjb25z
dCB7IHJldHVybiBtX3ByZWVkaXRTZWxlY3Rpb25SYW5nZTsgfQotI2VuZGlmCi0jaWYgVVNFKEFQ
UEtJVCkKLSAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFu
ZHMoKSBjb25zdCB7IHJldHVybiBtX2NvbW1hbmRzOyB9Ci0jZWxpZiBQTEFURk9STShHVEspCi0g
ICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvbW1hbmRzKCkgY29uc3QgeyByZXR1cm4gbV9jb21t
YW5kczsgfQotI2VuZGlmCi0gICAgYm9vbCBpc0F1dG9SZXBlYXQoKSBjb25zdCB7IHJldHVybiBt
X2lzQXV0b1JlcGVhdDsgfQotICAgIGJvb2wgaXNLZXlwYWQoKSBjb25zdCB7IHJldHVybiBtX2lz
S2V5cGFkOyB9Ci0gICAgYm9vbCBpc1N5c3RlbUtleSgpIGNvbnN0IHsgcmV0dXJuIG1faXNTeXN0
ZW1LZXk7IH0KLQotICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0
YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViS2V5
Ym9hcmRFdmVudCYpOwotCi0gICAgc3RhdGljIGJvb2wgaXNLZXlib2FyZEV2ZW50VHlwZShUeXBl
KTsKLQotcHJpdmF0ZToKLSAgICBTdHJpbmcgbV90ZXh0OwotICAgIFN0cmluZyBtX3VubW9kaWZp
ZWRUZXh0OwotICAgIFN0cmluZyBtX2tleTsKLSAgICBTdHJpbmcgbV9jb2RlOwotICAgIFN0cmlu
ZyBtX2tleUlkZW50aWZpZXI7Ci0gICAgaW50MzJfdCBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSB7
IDAgfTsKLSAgICBpbnQzMl90IG1fbmF0aXZlVmlydHVhbEtleUNvZGUgeyAwIH07Ci0gICAgaW50
MzJfdCBtX21hY0NoYXJDb2RlIHsgMCB9OwotI2lmIFVTRShBUFBLSVQpIHx8IFVTRShVSUtJVF9L
RVlCT0FSRF9BRERJVElPTlMpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKLSAgICBi
b29sIG1faGFuZGxlZEJ5SW5wdXRNZXRob2QgeyBmYWxzZSB9OwotI2VuZGlmCi0jaWYgUExBVEZP
Uk0oR1RLKSB8fCBVU0UoTElCV1BFKQotICAgIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21w
b3NpdGlvblVuZGVybGluZT4+IG1fcHJlZWRpdFVuZGVybGluZXM7Ci0gICAgT3B0aW9uYWw8RWRp
dGluZ1JhbmdlPiBtX3ByZWVkaXRTZWxlY3Rpb25SYW5nZTsKLSNlbmRpZgotI2lmIFVTRShBUFBL
SVQpCi0gICAgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gbV9jb21tYW5kczsKLSNl
bGlmIFBMQVRGT1JNKEdUSykKLSAgICBWZWN0b3I8U3RyaW5nPiBtX2NvbW1hbmRzOwotI2VuZGlm
Ci0gICAgYm9vbCBtX2lzQXV0b1JlcGVhdCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzS2V5cGFk
IHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNTeXN0ZW1LZXkgeyBmYWxzZSB9OwotfTsKLQotI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLWNsYXNzIFdl
YlBsYXRmb3JtVG91Y2hQb2ludCB7Ci1wdWJsaWM6Ci0gICAgZW51bSBUb3VjaFBvaW50U3RhdGUg
ewotICAgICAgICBUb3VjaFJlbGVhc2VkLAotICAgICAgICBUb3VjaFByZXNzZWQsCi0gICAgICAg
IFRvdWNoTW92ZWQsCi0gICAgICAgIFRvdWNoU3RhdGlvbmFyeSwKLSAgICAgICAgVG91Y2hDYW5j
ZWxsZWQKLSAgICB9OwotCi0gICAgZW51bSBjbGFzcyBUb3VjaFR5cGUgewotICAgICAgICBEaXJl
Y3QsCi0gICAgICAgIFN0eWx1cwotICAgIH07Ci0KLSAgICBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQo
KSA9IGRlZmF1bHQ7Ci0gICAgV2ViUGxhdGZvcm1Ub3VjaFBvaW50KHVuc2lnbmVkIGlkZW50aWZp
ZXIsIFdlYkNvcmU6OkludFBvaW50IGxvY2F0aW9uLCBUb3VjaFBvaW50U3RhdGUgcGhhc2UpCi0g
ICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgICAgICwgbV9sb2NhdGlvbihs
b2NhdGlvbikKLSAgICAgICAgLCBtX3BoYXNlKHBoYXNlKQotICAgIHsKLSAgICB9Ci0KLSAgICB1
bnNpZ25lZCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0gICAg
V2ViQ29yZTo6SW50UG9pbnQgbG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2xvY2F0aW9uOyB9
Ci0gICAgVG91Y2hQb2ludFN0YXRlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
VG91Y2hQb2ludFN0YXRlPihtX3BoYXNlKTsgfQotICAgIFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIHBoYXNlKCk7IH0KLQotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQotICAgIHZvaWQgc2V0UmFkaXVzWChkb3VibGUgcmFkaXVzWCkgeyBtX3JhZGl1c1ggPSByYWRp
dXNYOyB9Ci0gICAgZG91YmxlIHJhZGl1c1goKSBjb25zdCB7IHJldHVybiBtX3JhZGl1c1g7IH0K
LSAgICB2b2lkIHNldFJhZGl1c1koZG91YmxlIHJhZGl1c1kpIHsgbV9yYWRpdXNZID0gcmFkaXVz
WTsgfQotICAgIGRvdWJsZSByYWRpdXNZKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXNZOyB9Ci0g
ICAgdm9pZCBzZXRSb3RhdGlvbkFuZ2xlKGRvdWJsZSByb3RhdGlvbkFuZ2xlKSB7IG1fcm90YXRp
b25BbmdsZSA9IHJvdGF0aW9uQW5nbGU7IH0KLSAgICBkb3VibGUgcm90YXRpb25BbmdsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcm90YXRpb25BbmdsZTsgfQotICAgIHZvaWQgc2V0Rm9yY2UoZG91Ymxl
IGZvcmNlKSB7IG1fZm9yY2UgPSBmb3JjZTsgfQotICAgIGRvdWJsZSBmb3JjZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZm9yY2U7IH0KLSAgICB2b2lkIHNldEFsdGl0dWRlQW5nbGUoZG91YmxlIGFsdGl0
dWRlQW5nbGUpIHsgbV9hbHRpdHVkZUFuZ2xlID0gYWx0aXR1ZGVBbmdsZTsgfQotICAgIGRvdWJs
ZSBhbHRpdHVkZUFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9hbHRpdHVkZUFuZ2xlOyB9Ci0gICAg
dm9pZCBzZXRBemltdXRoQW5nbGUoZG91YmxlIGF6aW11dGhBbmdsZSkgeyBtX2F6aW11dGhBbmds
ZSA9IGF6aW11dGhBbmdsZTsgfQotICAgIGRvdWJsZSBhemltdXRoQW5nbGUoKSBjb25zdCB7IHJl
dHVybiBtX2F6aW11dGhBbmdsZTsgfQotICAgIHZvaWQgc2V0VG91Y2hUeXBlKFRvdWNoVHlwZSB0
b3VjaFR5cGUpIHsgbV90b3VjaFR5cGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4odG91Y2hUeXBl
KTsgfQotICAgIFRvdWNoVHlwZSB0b3VjaFR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxUb3VjaFR5cGU+KG1fdG91Y2hUeXBlKTsgfQotI2VuZGlmCi0KLSAgICB2b2lkIGVuY29kZShJ
UEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgT3B0aW9uYWw8V2ViUGxhdGZvcm1Ub3Vj
aFBvaW50PiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7Ci0KLXByaXZhdGU6Ci0gICAgdW5zaWduZWQg
bV9pZGVudGlmaWVyIHsgMCB9OwotICAgIFdlYkNvcmU6OkludFBvaW50IG1fbG9jYXRpb247Ci0g
ICAgdWludDMyX3QgbV9waGFzZSB7IFRvdWNoUmVsZWFzZWQgfTsKLSNpZiBFTkFCTEUoSU9TX1RP
VUNIX0VWRU5UUykKLSAgICBkb3VibGUgbV9yYWRpdXNYIHsgMCB9OwotICAgIGRvdWJsZSBtX3Jh
ZGl1c1kgeyAwIH07Ci0gICAgZG91YmxlIG1fcm90YXRpb25BbmdsZSB7IDAgfTsKLSAgICBkb3Vi
bGUgbV9mb3JjZSB7IDAgfTsKLSAgICBkb3VibGUgbV9hbHRpdHVkZUFuZ2xlIHsgMCB9OwotICAg
IGRvdWJsZSBtX2F6aW11dGhBbmdsZSB7IDAgfTsKLSAgICB1aW50MzJfdCBtX3RvdWNoVHlwZSB7
IHN0YXRpY19jYXN0PHVpbnQzMl90PihUb3VjaFR5cGU6OkRpcmVjdCkgfTsKLSNlbmRpZgotfTsK
LQotY2xhc3MgV2ViVG91Y2hFdmVudCA6IHB1YmxpYyBXZWJFdmVudCB7Ci1wdWJsaWM6Ci0gICAg
V2ViVG91Y2hFdmVudCgpID0gZGVmYXVsdDsKLSAgICBXZWJUb3VjaEV2ZW50KFdlYkV2ZW50OjpU
eXBlIHR5cGUsIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3Rh
bXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cywgV2Vi
Q29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3RlbnRpYWxUYXAsIGJvb2wgaXNHZXN0
dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKLSAgICAgICAg
OiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKLSAgICAgICAgLCBtX3RvdWNo
UG9pbnRzKHRvdWNoUG9pbnRzKQotICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCi0gICAg
ICAgICwgbV9jYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXModHJ1ZSkKLSAgICAgICAgLCBtX2lzUG90
ZW50aWFsVGFwKGlzUG90ZW50aWFsVGFwKQotICAgICAgICAsIG1faXNHZXN0dXJlKGlzR2VzdHVy
ZSkKLSAgICAgICAgLCBtX2dlc3R1cmVTY2FsZShnZXN0dXJlU2NhbGUpCi0gICAgICAgICwgbV9n
ZXN0dXJlUm90YXRpb24oZ2VzdHVyZVJvdGF0aW9uKQotICAgIHsKLSAgICAgICAgQVNTRVJUKHR5
cGUgPT0gVG91Y2hTdGFydCB8fCB0eXBlID09IFRvdWNoTW92ZSB8fCB0eXBlID09IFRvdWNoRW5k
IHx8IHR5cGUgPT0gVG91Y2hDYW5jZWwpOwotICAgIH0KLQotICAgIGNvbnN0IFZlY3RvcjxXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdG91Y2hQ
b2ludHM7IH0KLQotICAgIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9wb3NpdGlvbjsgfQotCi0gICAgYm9vbCBpc1BvdGVudGlhbFRhcCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNQb3RlbnRpYWxUYXA7IH0KLQotICAgIGJvb2wgaXNHZXN0dXJlKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc0dlc3R1cmU7IH0KLSAgICBmbG9hdCBnZXN0dXJlU2NhbGUoKSBjb25zdCB7IHJl
dHVybiBtX2dlc3R1cmVTY2FsZTsgfQotICAgIGZsb2F0IGdlc3R1cmVSb3RhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fZ2VzdHVyZVJvdGF0aW9uOyB9Ci0KLSAgICBib29sIGNhblByZXZlbnROYXRp
dmVHZXN0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzOyB9
Ci0gICAgdm9pZCBzZXRDYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMoYm9vbCBjYW5QcmV2ZW50TmF0
aXZlR2VzdHVyZXMpIHsgbV9jYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMgPSBjYW5QcmV2ZW50TmF0
aXZlR2VzdHVyZXM7IH0KLQotICAgIGJvb2wgYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgpIGNv
bnN0OwotCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJUb3VjaEV2
ZW50Jik7Ci0gICAgCi1wcml2YXRlOgotICAgIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+
IG1fdG91Y2hQb2ludHM7Ci0gICAgCi0gICAgV2ViQ29yZTo6SW50UG9pbnQgbV9wb3NpdGlvbjsK
LSAgICBib29sIG1fY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzIHsgZmFsc2UgfTsKLSAgICBib29s
IG1faXNQb3RlbnRpYWxUYXAgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc0dlc3R1cmUgeyBmYWxz
ZSB9OwotICAgIGZsb2F0IG1fZ2VzdHVyZVNjYWxlIHsgMCB9OwotICAgIGZsb2F0IG1fZ2VzdHVy
ZVJvdGF0aW9uIHsgMCB9OwotfTsKLSNlbHNlCi0vLyBGSVhNRTogTW92ZSB0aGlzIGNsYXNzIHRv
IGl0cyBvd24gaGVhZGVyIGZpbGUuCi0vLyBGSVhNRTogSGF2aW5nICJQbGF0Zm9ybSIgaW4gdGhl
IG5hbWUgbWFrZXMgaXQgc291bmQgbGlrZSB0aGlzIGV2ZW50IGlzIHBsYXRmb3JtLXNwZWNpZmlj
IG9yIGxvdy0KLS8vIGxldmVsIGluIHNvbWUgd2F5LiBUaGF0IGRvZXNuJ3Qgc2VlbSB0byBiZSB0
aGUgY2FzZS4KLWNsYXNzIFdlYlBsYXRmb3JtVG91Y2hQb2ludCB7Ci1wdWJsaWM6Ci0gICAgZW51
bSBUb3VjaFBvaW50U3RhdGUgewotICAgICAgICBUb3VjaFJlbGVhc2VkLAotICAgICAgICBUb3Vj
aFByZXNzZWQsCi0gICAgICAgIFRvdWNoTW92ZWQsCi0gICAgICAgIFRvdWNoU3RhdGlvbmFyeSwK
LSAgICAgICAgVG91Y2hDYW5jZWxsZWQKLSAgICB9OwotCi0gICAgV2ViUGxhdGZvcm1Ub3VjaFBv
aW50KCkgOiBtX3JvdGF0aW9uQW5nbGUoMC4wKSwgbV9mb3JjZSgwLjApIHsgfQotCi0gICAgV2Vi
UGxhdGZvcm1Ub3VjaFBvaW50KHVpbnQzMl90IGlkLCBUb3VjaFBvaW50U3RhdGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBzY3JlZW5Qb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IHBvc2l0aW9uKTsKLQotICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCh1aW50MzJfdCBpZCwgVG91
Y2hQb2ludFN0YXRlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2NyZWVuUG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
cmFkaXVzLCBmbG9hdCByb3RhdGlvbkFuZ2xlID0gMC4wLCBmbG9hdCBmb3JjZSA9IDAuMCk7Ci0g
ICAgCi0gICAgdWludDMyX3QgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9Ci0gICAgVG91Y2hQ
b2ludFN0YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VG91Y2hQb2ludFN0
YXRlPihtX3N0YXRlKTsgfQotCi0gICAgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcmVlblBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zY3JlZW5Qb3NpdGlvbjsgfQotICAgIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0K
LSAgICBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiByYWRpdXMoKSBjb25zdCB7IHJldHVybiBtX3Jh
ZGl1czsgfQotICAgIGZsb2F0IHJvdGF0aW9uQW5nbGUoKSBjb25zdCB7IHJldHVybiBtX3JvdGF0
aW9uQW5nbGU7IH0KLSAgICBmbG9hdCBmb3JjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2U7IH0K
LQotICAgIHZvaWQgc2V0U3RhdGUoVG91Y2hQb2ludFN0YXRlIHN0YXRlKSB7IG1fc3RhdGUgPSBz
dGF0ZTsgfQotCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3Rh
dGljIE9wdGlvbmFsPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gZGVjb2RlKElQQzo6RGVjb2RlciYp
OwotCi1wcml2YXRlOgotICAgIHVpbnQzMl90IG1faWQ7Ci0gICAgdWludDMyX3QgbV9zdGF0ZTsK
LSAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3NjcmVlblBvc2l0aW9uOwotICAgIFdlYkNvcmU6Oklu
dFBvaW50IG1fcG9zaXRpb247Ci0gICAgV2ViQ29yZTo6SW50U2l6ZSBtX3JhZGl1czsKLSAgICBm
bG9hdCBtX3JvdGF0aW9uQW5nbGU7Ci0gICAgZmxvYXQgbV9mb3JjZTsKLX07Ci0KLS8vIEZJWE1F
OiBNb3ZlIHRoaXMgY2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYlRvdWNo
RXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewotcHVibGljOgotICAgIFdlYlRvdWNoRXZlbnQoKSB7
IH0KLSAgICBXZWJUb3VjaEV2ZW50KFR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+
JiYsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Ci0KLSAgICBjb25z
dCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMoKSBjb25zdCB7IHJl
dHVybiBtX3RvdWNoUG9pbnRzOyB9Ci0KLSAgICBib29sIGFsbFRvdWNoUG9pbnRzQXJlUmVsZWFz
ZWQoKSBjb25zdDsKLQotICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAg
IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2Vi
VG91Y2hFdmVudCYpOwotICAKLXByaXZhdGU6Ci0gICAgc3RhdGljIGJvb2wgaXNUb3VjaEV2ZW50
VHlwZShUeXBlKTsKLQotICAgIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+IG1fdG91Y2hQ
b2ludHM7Ci19OwotCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNlbmRpZiAvLyBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogbmFtZXNwYWNl
IFdURiB7CkBAIC01MDgsMjMgKzEyOCw0IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+IHsKICAgICA+OwogfTsKIAotdGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbj4gewotICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6
QnV0dG9uLAotICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbjo6TGVmdEJ1dHRv
biwKLSAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246Ok1pZGRsZUJ1dHRvbiwK
LSAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246OlJpZ2h0QnV0dG9uLAotICAg
ICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbjo6Tm9CdXR0b24KLSAgICA+OwotfTsK
LQotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5
bnRoZXRpY0NsaWNrVHlwZT4gewotICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAg
ICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBlLAotICAgICAgICBX
ZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZTo6Tm9UYXAsCi0gICAgICAg
IFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBlOjpPbmVGaW5nZXJUYXAs
Ci0gICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBlOjpUd29G
aW5nZXJUYXAKLSAgICA+OwotfTsKLQogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcAppbmRleCA4YTZlNDE4Njg4MTgxYWE3ZTM2
NjNkMDUzODcwZGU0YmUwMjhjYmFiLi4yZGUyNjAxNTU5NWEzODNmYjNiMTdlYWY3NDZkMjk2ZjZl
OTk4ODdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudENvbnZlcnNp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAK
QEAgLTI2LDcgKzI2LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViRXZl
bnRDb252ZXJzaW9uLmgiCiAKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYktl
eWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiV2Vi
VG91Y2hFdmVudC5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZlbnQuaCIKIAogI2lmIEVOQUJMRShN
QUNfR0VTVFVSRV9FVkVOVFMpCiAjaW5jbHVkZSAiV2ViR2VzdHVyZUV2ZW50LmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwCmluZGV4IGNjY2I1NjA0MThmMzJmYWQ0
MDU4N2FjMDgzYjk1ZjM5OGViMTM5OWQuLmJjNDMyMjI4NjQ4NGU2YWZkZDQ5MzUzZmFlNmE4ZmIz
Y2Q1ZTY2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwCkBA
IC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldl
YkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2V5Ym9hcmRFdmVudC5oIgogCiAjaW5jbHVkZSAiV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9LZXlwcmVzc0NvbW1hbmQu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjgw
MjlkYzQ2ZGMyNTMxZjVjYzIzNDA5ZGM2ZDJmMTFkNWEzYjQ5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5oCkBAIC0wLDAgKzEsMTExIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IkVkaXRpbmdSYW5nZS5oIgorI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9Db21wb3NpdGlvblVuZGVybGluZS5oPgorCisjaWYgVVNFKEFQUEtJVCkKKyNpbmNsdWRlIDxX
ZWJDb3JlL0tleXByZXNzQ29tbWFuZC5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJLZXlib2FyZEV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKK3B1YmxpYzoKKyAg
ICBXZWJLZXlib2FyZEV2ZW50KCk7CisgICAgfldlYktleWJvYXJkRXZlbnQoKTsKKworI2lmIFVT
RShBUFBLSVQpCisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJv
b2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0Nv
bW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1L
ZXksIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZWxpZiBQTEFU
Rk9STShHVEspCisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5
SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxL
ZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBPcHRpb25hbDxWZWN0b3I8V2ViQ29y
ZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+PiYmLCBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+JiYsIFZl
Y3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNLZXlwYWQsIE9wdGlvblNldDxNb2RpZmll
cj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcm
IHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBj
b25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGlu
dCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGhhbmRsZWRCeUlu
cHV0TWV0aG9kLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3Rl
bUtleSwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKKyNlbGlmIFVT
RShMSUJXUEUpCisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5
SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxL
ZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBPcHRpb25hbDxWZWN0b3I8V2ViQ29y
ZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+PiYmLCBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+JiYsIGJv
b2wgaXNLZXlwYWQsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Cisj
ZWxzZQorICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5n
JiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtl
eUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlz
QXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0PE1v
ZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKKyNlbmRpZgorCisgICAgY29uc3QgU3RyaW5n
JiB0ZXh0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0OyB9CisgICAgY29uc3QgU3RyaW5nJiB1bm1v
ZGlmaWVkVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5tb2RpZmllZFRleHQ7IH0KKyAgICBjb25z
dCBTdHJpbmcmIGtleSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5OyB9CisgICAgY29uc3QgU3RyaW5n
JiBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlOyB9CisgICAgY29uc3QgU3RyaW5nJiBrZXlJ
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9rZXlJZGVudGlmaWVyOyB9CisgICAgaW50MzJf
dCB3aW5kb3dzVmlydHVhbEtleUNvZGUoKSBjb25zdCB7IHJldHVybiBtX3dpbmRvd3NWaXJ0dWFs
S2V5Q29kZTsgfQorICAgIGludDMyX3QgbmF0aXZlVmlydHVhbEtleUNvZGUoKSBjb25zdCB7IHJl
dHVybiBtX25hdGl2ZVZpcnR1YWxLZXlDb2RlOyB9CisgICAgaW50MzJfdCBtYWNDaGFyQ29kZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWFjQ2hhckNvZGU7IH0KKyNpZiBVU0UoQVBQS0lUKSB8fCBVU0Uo
VUlLSVRfS0VZQk9BUkRfQURESVRJT05TKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUp
CisgICAgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxl
ZEJ5SW5wdXRNZXRob2Q7IH0KKyNlbmRpZgorI2lmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQ
RSkKKyAgICBjb25zdCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxp
bmU+PiYgcHJlZWRpdFVuZGVybGluZXMoKSBjb25zdCB7IHJldHVybiBtX3ByZWVkaXRVbmRlcmxp
bmVzOyB9CisgICAgY29uc3QgT3B0aW9uYWw8RWRpdGluZ1JhbmdlPiYgcHJlZWRpdFNlbGVjdGlv
blJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9wcmVlZGl0U2VsZWN0aW9uUmFuZ2U7IH0KKyNlbmRp
ZgorI2lmIFVTRShBUFBLSVQpCisgICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29t
bWFuZD4mIGNvbW1hbmRzKCkgY29uc3QgeyByZXR1cm4gbV9jb21tYW5kczsgfQorI2VsaWYgUExB
VEZPUk0oR1RLKQorICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb21tYW5kcygpIGNvbnN0IHsg
cmV0dXJuIG1fY29tbWFuZHM7IH0KKyNlbmRpZgorICAgIGJvb2wgaXNBdXRvUmVwZWF0KCkgY29u
c3QgeyByZXR1cm4gbV9pc0F1dG9SZXBlYXQ7IH0KKyAgICBib29sIGlzS2V5cGFkKCkgY29uc3Qg
eyByZXR1cm4gbV9pc0tleXBhZDsgfQorICAgIGJvb2wgaXNTeXN0ZW1LZXkoKSBjb25zdCB7IHJl
dHVybiBtX2lzU3lzdGVtS2V5OyB9CisKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBj
b25zdDsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKElQQzo6RGVj
b2RlciYsIFdlYktleWJvYXJkRXZlbnQmKTsKKworICAgIHN0YXRpYyBib29sIGlzS2V5Ym9hcmRF
dmVudFR5cGUoVHlwZSk7CisKK3ByaXZhdGU6CisgICAgU3RyaW5nIG1fdGV4dDsKKyAgICBTdHJp
bmcgbV91bm1vZGlmaWVkVGV4dDsKKyAgICBTdHJpbmcgbV9rZXk7CisgICAgU3RyaW5nIG1fY29k
ZTsKKyAgICBTdHJpbmcgbV9rZXlJZGVudGlmaWVyOworICAgIGludDMyX3QgbV93aW5kb3dzVmly
dHVhbEtleUNvZGUgeyAwIH07CisgICAgaW50MzJfdCBtX25hdGl2ZVZpcnR1YWxLZXlDb2RlIHsg
MCB9OworICAgIGludDMyX3QgbV9tYWNDaGFyQ29kZSB7IDAgfTsKKyNpZiBVU0UoQVBQS0lUKSB8
fCBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShM
SUJXUEUpCisgICAgYm9vbCBtX2hhbmRsZWRCeUlucHV0TWV0aG9kIHsgZmFsc2UgfTsKKyNlbmRp
ZgorI2lmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKKyAgICBPcHRpb25hbDxWZWN0b3I8
V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+PiBtX3ByZWVkaXRVbmRlcmxpbmVzOworICAg
IE9wdGlvbmFsPEVkaXRpbmdSYW5nZT4gbV9wcmVlZGl0U2VsZWN0aW9uUmFuZ2U7CisjZW5kaWYK
KyNpZiBVU0UoQVBQS0lUKQorICAgIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IG1f
Y29tbWFuZHM7CisjZWxpZiBQTEFURk9STShHVEspCisgICAgVmVjdG9yPFN0cmluZz4gbV9jb21t
YW5kczsKKyNlbmRpZgorICAgIGJvb2wgbV9pc0F1dG9SZXBlYXQgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9pc0tleXBhZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzU3lzdGVtS2V5IHsgZmFsc2Ug
fTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3Vz
ZUV2ZW50LmNwcAppbmRleCA3YjI3MGRjM2RiZTk4ZjYyOTBiODAxNzMzZWZmMzlmOTFhZWU0YTY5
Li44OGJkNTY0NzM0MzlhNzFmNGNiZGViMzBhYTQzN2JjOTRiMGZhMWM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYk1vdXNl
RXZlbnQuaCIKIAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTlhMWI1ZmE4NmI2OGM4NDY0ZDcz
MjcyZjEyMjJlOTA2MWJmODk1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYk1vdXNlRXZlbnQuaApAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKy8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkg
bW92ZSB0byBtYWtlaW5nIHRoZSBXZWJDb3JlL1BsYXRmb3JtRm9vRXZlbnRzIHRyaXZpYWwgY2xh
c3NlcyBzbyB0aGF0CisvLyB3ZSBjYW4gdXNlIHRoZW0gYXMgdGhlIGV2ZW50IHR5cGUuCisKKyNp
bmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk1vdXNlRXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQg
eworcHVibGljOgorICAgIGVudW0gQnV0dG9uIHsKKyAgICAgICAgTGVmdEJ1dHRvbiA9IDAsCisg
ICAgICAgIE1pZGRsZUJ1dHRvbiwKKyAgICAgICAgUmlnaHRCdXR0b24sCisgICAgICAgIE5vQnV0
dG9uID0gLTIKKyAgICB9OworCisgICAgZW51bSBTeW50aGV0aWNDbGlja1R5cGUgeyBOb1RhcCwg
T25lRmluZ2VyVGFwLCBUd29GaW5nZXJUYXAgfTsKKworICAgIFdlYk1vdXNlRXZlbnQoKTsKKwor
I2lmIFBMQVRGT1JNKE1BQykKKyAgICBXZWJNb3VzZUV2ZW50KFR5cGUsIEJ1dHRvbiwgdW5zaWdu
ZWQgc2hvcnQgYnV0dG9ucywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uSW5WaWV3
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwg
ZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBPcHRpb25TZXQ8TW9k
aWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tU
eXBlID0gTm9UYXAsIGludCBldmVudE51bWJlciA9IC0xLCBpbnQgbWVudVR5cGUgPSAwKTsKKyNl
bHNlCisgICAgV2ViTW91c2VFdmVudChUeXBlLCBCdXR0b24sIHVuc2lnbmVkIHNob3J0IGJ1dHRv
bnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbkluVmlldywgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwg
ZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRp
bWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1Rh
cCk7CisjZW5kaWYKKworICAgIEJ1dHRvbiBidXR0b24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQorICAgIHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMoKSBj
b25zdCB7IHJldHVybiBtX2J1dHRvbnM7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
cG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9IC8vIFJlbGF0aXZlIHRvIHRo
ZSB2aWV3LgorICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fZ2xvYmFsUG9zaXRpb247IH0KKyAgICBmbG9hdCBkZWx0YVgoKSBjb25z
dCB7IHJldHVybiBtX2RlbHRhWDsgfQorICAgIGZsb2F0IGRlbHRhWSgpIGNvbnN0IHsgcmV0dXJu
IG1fZGVsdGFZOyB9CisgICAgZmxvYXQgZGVsdGFaKCkgY29uc3QgeyByZXR1cm4gbV9kZWx0YVo7
IH0KKyAgICBpbnQzMl90IGNsaWNrQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWNrQ291bnQ7
IH0KKyNpZiBQTEFURk9STShNQUMpCisgICAgaW50MzJfdCBldmVudE51bWJlcigpIGNvbnN0IHsg
cmV0dXJuIG1fZXZlbnROdW1iZXI7IH0KKyAgICBpbnQzMl90IG1lbnVUeXBlRm9yRXZlbnQoKSBj
b25zdCB7IHJldHVybiBtX21lbnVUeXBlRm9yRXZlbnQ7IH0KKyNlbmRpZgorICAgIGRvdWJsZSBm
b3JjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2U7IH0KKyAgICBTeW50aGV0aWNDbGlja1R5cGUg
c3ludGhldGljQ2xpY2tUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U3ludGhldGlj
Q2xpY2tUeXBlPihtX3N5bnRoZXRpY0NsaWNrVHlwZSk7IH0KKworICAgIHZvaWQgZW5jb2RlKElQ
Qzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViTW91c2VFdmVudCYpOworCitwcml2YXRlOgorICAgIHN0
YXRpYyBib29sIGlzTW91c2VFdmVudFR5cGUoVHlwZSk7CisKKyAgICB1aW50MzJfdCBtX2J1dHRv
biB7IHN0YXRpY19jYXN0PHVpbnQzMl90PihOb0J1dHRvbikgfTsKKyAgICB1bnNpZ25lZCBzaG9y
dCBtX2J1dHRvbnMgeyAwIH07CisgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9wb3NpdGlvbjsgLy8g
UmVsYXRpdmUgdG8gdGhlIHZpZXcuCisgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9nbG9iYWxQb3Np
dGlvbjsKKyAgICBmbG9hdCBtX2RlbHRhWCB7IDAgfTsKKyAgICBmbG9hdCBtX2RlbHRhWSB7IDAg
fTsKKyAgICBmbG9hdCBtX2RlbHRhWiB7IDAgfTsKKyAgICBpbnQzMl90IG1fY2xpY2tDb3VudCB7
IDAgfTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgaW50MzJfdCBtX2V2ZW50TnVtYmVyIHsgLTEg
fTsKKyAgICBpbnQzMl90IG1fbWVudVR5cGVGb3JFdmVudCB7IDAgfTsKKyNlbmRpZgorICAgIGRv
dWJsZSBtX2ZvcmNlIHsgMCB9OworICAgIHVpbnQzMl90IG1fc3ludGhldGljQ2xpY2tUeXBlIHsg
Tm9UYXAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1
dHRvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYktpdDo6
V2ViTW91c2VFdmVudDo6QnV0dG9uLAorICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1
dHRvbjo6TGVmdEJ1dHRvbiwKKyAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246
Ok1pZGRsZUJ1dHRvbiwKKyAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246OlJp
Z2h0QnV0dG9uLAorICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbjo6Tm9CdXR0
b24KKyAgICA+OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6Oldl
Yk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tU
eXBlLAorICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZTo6
Tm9UYXAsCisgICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBl
OjpPbmVGaW5nZXJUYXAsCisgICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGlj
Q2xpY2tUeXBlOjpUd29GaW5nZXJUYXAKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQbGF0Zm9ybVRvdWNoUG9pbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGxhdGZvcm1Ub3VjaFBvaW50LmNwcAppbmRl
eCA0NWEyMGU5YzM0ZTg3ODMzYzc2MDBjMDM5NTY2ZjBlOTk0MGVmOWZmLi5jZTc0YWJmZjkxY2M2
OWNiMDkyODQzNDkzMjRmYTQ4MDhhNjNmZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQbGF0Zm9ybVRvdWNoUG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKICAqLwogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJUb3Vj
aEV2ZW50LmgiCiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAhUExBVEZPUk0oSU9TX0ZB
TUlMWSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcAppbmRleCA4MmFkYTc3
ZjU4NzEzNzkwMTI3OGI4ODgyMThlOWJiZDBmM2U3YzBhLi42NTI0YTE5OWUwMmMzMGUxMmQ0NTNl
NTMwYmY3ODk2MjA1OTgyYmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJU
b3VjaEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNw
cApAQCAtMjQsMTQgKzI0LDE2IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgogCi0jaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisKIFdlYlRvdWNoRXZlbnQ6OldlYlRv
dWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2lu
dD4mJiB0b3VjaFBvaW50cywgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQog
ICAgICwgbV90b3VjaFBvaW50cyhXVEZNb3ZlKHRvdWNoUG9pbnRzKSkKQEAgLTYxLDcgKzYzLDE5
IEBAIGJvb2wgV2ViVG91Y2hFdmVudDo6aXNUb3VjaEV2ZW50VHlwZShUeXBlIHR5cGUpCiB7CiAg
ICAgcmV0dXJuIHR5cGUgPT0gVG91Y2hTdGFydCB8fCB0eXBlID09IFRvdWNoTW92ZSB8fCB0eXBl
ID09IFRvdWNoRW5kIHx8IHR5cGUgPT0gVG91Y2hDYW5jZWw7CiB9Ci0gICAgCisKKyNlbmRpZiAv
LyAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworYm9vbCBXZWJUb3VjaEV2ZW50OjphbGxUb3VjaFBv
aW50c0FyZVJlbGVhc2VkKCkgY29uc3QKK3sKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHRvdWNoUG9p
bnQgOiB0b3VjaFBvaW50cygpKSB7CisgICAgICAgIGlmICh0b3VjaFBvaW50LnN0YXRlKCkgIT0g
V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkICYmIHRvdWNoUG9pbnQuc3RhdGUo
KSAhPSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoQ2FuY2VsbGVkKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpICYmICFQTEFURk9S
TShJT1NfRkFNSUxZKQorI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJUb3VjaEV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc5YjA0OWM1ZWQ3YzAzN2JjODNlMzU2
NmExZjQ3MGI0YTU4NzZjNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlRvdWNoRXZlbnQuaApAQCAtMCwwICsxLDIxMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvSW50UG9pbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKy8vIEZJWE1FOiBIYXZp
bmcgIlBsYXRmb3JtIiBpbiB0aGUgbmFtZSBtYWtlcyBpdCBzb3VuZCBsaWtlIHRoaXMgZXZlbnQg
aXMgcGxhdGZvcm0tc3BlY2lmaWMgb3IKKy8vIGxvdy1sZXZlbCBpbiBzb21lIHdheS4gVGhhdCBk
b2Vzbid0IHNlZW0gdG8gYmUgdGhlIGNhc2UuCitjbGFzcyBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQg
eworcHVibGljOgorICAgIGVudW0gVG91Y2hQb2ludFN0YXRlIHsKKyAgICAgICAgVG91Y2hSZWxl
YXNlZCwKKyAgICAgICAgVG91Y2hQcmVzc2VkLAorICAgICAgICBUb3VjaE1vdmVkLAorICAgICAg
ICBUb3VjaFN0YXRpb25hcnksCisgICAgICAgIFRvdWNoQ2FuY2VsbGVkCisgICAgfTsKKworICAg
IGVudW0gY2xhc3MgVG91Y2hUeXBlIHsKKyAgICAgICAgRGlyZWN0LAorICAgICAgICBTdHlsdXMK
KyAgICB9OworCisgICAgV2ViUGxhdGZvcm1Ub3VjaFBvaW50KCkgPSBkZWZhdWx0OworICAgIFdl
YlBsYXRmb3JtVG91Y2hQb2ludCh1bnNpZ25lZCBpZGVudGlmaWVyLCBXZWJDb3JlOjpJbnRQb2lu
dCBsb2NhdGlvbiwgVG91Y2hQb2ludFN0YXRlIHBoYXNlKQorICAgICAgICA6IG1faWRlbnRpZmll
cihpZGVudGlmaWVyKQorICAgICAgICAsIG1fbG9jYXRpb24obG9jYXRpb24pCisgICAgICAgICwg
bV9waGFzZShwaGFzZSkKKyAgICB7CisgICAgfQorCisgICAgdW5zaWduZWQgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIFdlYkNvcmU6OkludFBvaW50IGxv
Y2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhdGlvbjsgfQorICAgIFRvdWNoUG9pbnRTdGF0
ZSBwaGFzZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRvdWNoUG9pbnRTdGF0ZT4obV9w
aGFzZSk7IH0KKyAgICBUb3VjaFBvaW50U3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBwaGFz
ZSgpOyB9CisKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKKyAgICB2b2lkIHNldFJhZGl1
c1goZG91YmxlIHJhZGl1c1gpIHsgbV9yYWRpdXNYID0gcmFkaXVzWDsgfQorICAgIGRvdWJsZSBy
YWRpdXNYKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXNYOyB9CisgICAgdm9pZCBzZXRSYWRpdXNZ
KGRvdWJsZSByYWRpdXNZKSB7IG1fcmFkaXVzWSA9IHJhZGl1c1k7IH0KKyAgICBkb3VibGUgcmFk
aXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaXVzWTsgfQorICAgIHZvaWQgc2V0Um90YXRpb25B
bmdsZShkb3VibGUgcm90YXRpb25BbmdsZSkgeyBtX3JvdGF0aW9uQW5nbGUgPSByb3RhdGlvbkFu
Z2xlOyB9CisgICAgZG91YmxlIHJvdGF0aW9uQW5nbGUoKSBjb25zdCB7IHJldHVybiBtX3JvdGF0
aW9uQW5nbGU7IH0KKyAgICB2b2lkIHNldEZvcmNlKGRvdWJsZSBmb3JjZSkgeyBtX2ZvcmNlID0g
Zm9yY2U7IH0KKyAgICBkb3VibGUgZm9yY2UoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlOyB9Cisg
ICAgdm9pZCBzZXRBbHRpdHVkZUFuZ2xlKGRvdWJsZSBhbHRpdHVkZUFuZ2xlKSB7IG1fYWx0aXR1
ZGVBbmdsZSA9IGFsdGl0dWRlQW5nbGU7IH0KKyAgICBkb3VibGUgYWx0aXR1ZGVBbmdsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fYWx0aXR1ZGVBbmdsZTsgfQorICAgIHZvaWQgc2V0QXppbXV0aEFuZ2xl
KGRvdWJsZSBhemltdXRoQW5nbGUpIHsgbV9hemltdXRoQW5nbGUgPSBhemltdXRoQW5nbGU7IH0K
KyAgICBkb3VibGUgYXppbXV0aEFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9hemltdXRoQW5nbGU7
IH0KKyAgICB2b2lkIHNldFRvdWNoVHlwZShUb3VjaFR5cGUgdG91Y2hUeXBlKSB7IG1fdG91Y2hU
eXBlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRvdWNoVHlwZSk7IH0KKyAgICBUb3VjaFR5cGUg
dG91Y2hUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VG91Y2hUeXBlPihtX3RvdWNo
VHlwZSk7IH0KKyNlbmRpZgorCisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7
CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gZGVjb2RlKElQQzo6
RGVjb2RlciYpOworCitwcml2YXRlOgorICAgIHVuc2lnbmVkIG1faWRlbnRpZmllciB7IDAgfTsK
KyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2xvY2F0aW9uOworICAgIHVpbnQzMl90IG1fcGhhc2Ug
eyBUb3VjaFJlbGVhc2VkIH07CisjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCisgICAgZG91
YmxlIG1fcmFkaXVzWCB7IDAgfTsKKyAgICBkb3VibGUgbV9yYWRpdXNZIHsgMCB9OworICAgIGRv
dWJsZSBtX3JvdGF0aW9uQW5nbGUgeyAwIH07CisgICAgZG91YmxlIG1fZm9yY2UgeyAwIH07Cisg
ICAgZG91YmxlIG1fYWx0aXR1ZGVBbmdsZSB7IDAgfTsKKyAgICBkb3VibGUgbV9hemltdXRoQW5n
bGUgeyAwIH07CisgICAgdWludDMyX3QgbV90b3VjaFR5cGUgeyBzdGF0aWNfY2FzdDx1aW50MzJf
dD4oVG91Y2hUeXBlOjpEaXJlY3QpIH07CisjZW5kaWYKK307CisKK2NsYXNzIFdlYlRvdWNoRXZl
bnQgOiBwdWJsaWMgV2ViRXZlbnQgeworcHVibGljOgorICAgIFdlYlRvdWNoRXZlbnQoKSA9IGRl
ZmF1bHQ7CisgICAgV2ViVG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBPcHRpb25TZXQ8
TW9kaWZpZXI+IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBjb25zdCBWZWN0b3I8V2Vi
UGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0
aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlzR2VzdHVyZSwgZmxvYXQgZ2VzdHVyZVNj
YWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCisgICAgICAgIDogV2ViRXZlbnQodHlwZSwgbW9k
aWZpZXJzLCB0aW1lc3RhbXApCisgICAgICAgICwgbV90b3VjaFBvaW50cyh0b3VjaFBvaW50cykK
KyAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQorICAgICAgICAsIG1fY2FuUHJldmVudE5h
dGl2ZUdlc3R1cmVzKHRydWUpCisgICAgICAgICwgbV9pc1BvdGVudGlhbFRhcChpc1BvdGVudGlh
bFRhcCkKKyAgICAgICAgLCBtX2lzR2VzdHVyZShpc0dlc3R1cmUpCisgICAgICAgICwgbV9nZXN0
dXJlU2NhbGUoZ2VzdHVyZVNjYWxlKQorICAgICAgICAsIG1fZ2VzdHVyZVJvdGF0aW9uKGdlc3R1
cmVSb3RhdGlvbikKKyAgICB7CisgICAgICAgIEFTU0VSVCh0eXBlID09IFRvdWNoU3RhcnQgfHwg
dHlwZSA9PSBUb3VjaE1vdmUgfHwgdHlwZSA9PSBUb3VjaEVuZCB8fCB0eXBlID09IFRvdWNoQ2Fu
Y2VsKTsKKyAgICB9CisKKyAgICBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYg
dG91Y2hQb2ludHMoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CisKKyAgICBXZWJD
b3JlOjpJbnRQb2ludCBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0KKwor
ICAgIGJvb2wgaXNQb3RlbnRpYWxUYXAoKSBjb25zdCB7IHJldHVybiBtX2lzUG90ZW50aWFsVGFw
OyB9CisKKyAgICBib29sIGlzR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNHZXN0dXJlOyB9
CisgICAgZmxvYXQgZ2VzdHVyZVNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9nZXN0dXJlU2NhbGU7
IH0KKyAgICBmbG9hdCBnZXN0dXJlUm90YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2dlc3R1cmVS
b3RhdGlvbjsgfQorCisgICAgYm9vbCBjYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMoKSBjb25zdCB7
IHJldHVybiBtX2NhblByZXZlbnROYXRpdmVHZXN0dXJlczsgfQorICAgIHZvaWQgc2V0Q2FuUHJl
dmVudE5hdGl2ZUdlc3R1cmVzKGJvb2wgY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzKSB7IG1fY2Fu
UHJldmVudE5hdGl2ZUdlc3R1cmVzID0gY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzOyB9CisKKyAg
ICBib29sIGFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSBjb25zdDsKKworICAgIHZvaWQgZW5j
b2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViVG91Y2hFdmVudCYpOworICAgIAorcHJpdmF0
ZToKKyAgICBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiBtX3RvdWNoUG9pbnRzOworICAg
IAorICAgIFdlYkNvcmU6OkludFBvaW50IG1fcG9zaXRpb247CisgICAgYm9vbCBtX2NhblByZXZl
bnROYXRpdmVHZXN0dXJlcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzUG90ZW50aWFsVGFwIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1faXNHZXN0dXJlIHsgZmFsc2UgfTsKKyAgICBmbG9hdCBtX2dl
c3R1cmVTY2FsZSB7IDAgfTsKKyAgICBmbG9hdCBtX2dlc3R1cmVSb3RhdGlvbiB7IDAgfTsKK307
CisKKyNlbHNlIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQorCitjbGFzcyBXZWJQbGF0Zm9ybVRv
dWNoUG9pbnQgeworcHVibGljOgorICAgIGVudW0gVG91Y2hQb2ludFN0YXRlIHsKKyAgICAgICAg
VG91Y2hSZWxlYXNlZCwKKyAgICAgICAgVG91Y2hQcmVzc2VkLAorICAgICAgICBUb3VjaE1vdmVk
LAorICAgICAgICBUb3VjaFN0YXRpb25hcnksCisgICAgICAgIFRvdWNoQ2FuY2VsbGVkCisgICAg
fTsKKworICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCgpCisgICAgICAgIDogbV9yb3RhdGlvbkFu
Z2xlKDAuMCksIG1fZm9yY2UoMC4wKSB7IH0KKworICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCh1
aW50MzJfdCBpZCwgVG91Y2hQb2ludFN0YXRlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Ny
ZWVuUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbik7CisKKyAgICBX
ZWJQbGF0Zm9ybVRvdWNoUG9pbnQodWludDMyX3QgaWQsIFRvdWNoUG9pbnRTdGF0ZSwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIHNjcmVlblBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHJhZGl1cywgZmxvYXQgcm90YXRp
b25BbmdsZSA9IDAuMCwgZmxvYXQgZm9yY2UgPSAwLjApOworICAgIAorICAgIHVpbnQzMl90IGlk
KCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRvdWNoUG9pbnRTdGF0ZT4obV9zdGF0ZSk7IH0KKwor
ICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JlZW5Qb3NpdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fc2NyZWVuUG9zaXRpb247IH0KKyAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9z
aXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CisgICAgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgcmFkaXVzKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXM7IH0KKyAgICBmbG9hdCBy
b3RhdGlvbkFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9yb3RhdGlvbkFuZ2xlOyB9CisgICAgZmxv
YXQgZm9yY2UoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlOyB9CisKKyAgICB2b2lkIHNldFN0YXRl
KFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSkgeyBtX3N0YXRlID0gc3RhdGU7IH0KKworICAgIHZvaWQg
ZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJQbGF0
Zm9ybVRvdWNoUG9pbnQ+IGRlY29kZShJUEM6OkRlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICB1
aW50MzJfdCBtX2lkOworICAgIHVpbnQzMl90IG1fc3RhdGU7CisgICAgV2ViQ29yZTo6SW50UG9p
bnQgbV9zY3JlZW5Qb3NpdGlvbjsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3Bvc2l0aW9uOwor
ICAgIFdlYkNvcmU6OkludFNpemUgbV9yYWRpdXM7CisgICAgZmxvYXQgbV9yb3RhdGlvbkFuZ2xl
OworICAgIGZsb2F0IG1fZm9yY2U7Cit9OworCitjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVibGlj
IFdlYkV2ZW50IHsKK3B1YmxpYzoKKyAgICBXZWJUb3VjaEV2ZW50KCkgeyB9CisgICAgV2ViVG91
Y2hFdmVudChUeXBlLCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmLCBPcHRpb25TZXQ8
TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOworCisgICAgY29uc3QgVmVjdG9yPFdlYlBs
YXRmb3JtVG91Y2hQb2ludD4mIHRvdWNoUG9pbnRzKCkgY29uc3QgeyByZXR1cm4gbV90b3VjaFBv
aW50czsgfQorCisgICAgYm9vbCBhbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkgY29uc3Q7CisK
KyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYlRvdWNoRXZlbnQmKTsK
KworcHJpdmF0ZToKKyAgICBzdGF0aWMgYm9vbCBpc1RvdWNoRXZlbnRUeXBlKFR5cGUpOworCisg
ICAgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gbV90b3VjaFBvaW50czsKK307CisKKyNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQorI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVO
VFMpCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2
ZW50LmNwcAppbmRleCAxMTYwZTc2MWUzYmVkNDIzZWRlZTc3ZWZhOGQ0ZWEwZTY1YmNkOTE3Li45
ZDcyNWVkYjY3MjE0Y2RjMWM4NTY0ZmJmYTFjYzE0OGIyMjlkNzdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJXaGVlbEV2ZW50LmNwcApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZl
bnQuaCIKIAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCkBAIC0zOSwxMSAr
MzksNiBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50
UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludAogICAgICwgbV9kZWx0YShkZWx0YSkKICAg
ICAsIG1fd2hlZWxUaWNrcyh3aGVlbFRpY2tzKQogICAgICwgbV9ncmFudWxhcml0eShncmFudWxh
cml0eSkKLSAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQotI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgICwgbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKGZhbHNlKQot
ICAgICwgbV9zY3JvbGxDb3VudCgwKQotI2VuZGlmCiB7CiAgICAgQVNTRVJUKGlzV2hlZWxFdmVu
dFR5cGUodHlwZSkpOwogfQpAQCAtNTYsOSArNTEsOSBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVl
bEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2lu
dAogICAgICwgbV9kZWx0YShkZWx0YSkKICAgICAsIG1fd2hlZWxUaWNrcyh3aGVlbFRpY2tzKQog
ICAgICwgbV9ncmFudWxhcml0eShncmFudWxhcml0eSkKLSAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0
ZWRGcm9tRGV2aWNlKGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkKICAgICAsIG1fcGhhc2Uo
cGhhc2UpCiAgICAgLCBtX21vbWVudHVtUGhhc2UobW9tZW50dW1QaGFzZSkKKyAgICAsIG1fZGly
ZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkKICAg
ICAsIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyhoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFz
KQogICAgICwgbV9zY3JvbGxDb3VudChzY3JvbGxDb3VudCkKICAgICAsIG1fdW5hY2NlbGVyYXRl
ZFNjcm9sbGluZ0RlbHRhKHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSkKQEAgLTczLDcgKzY4
LDYgQEAgV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBv
aW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKICAgICAsIG1fZGVsdGEoZGVsdGEpCiAgICAg
LCBtX3doZWVsVGlja3Mod2hlZWxUaWNrcykKICAgICAsIG1fZ3JhbnVsYXJpdHkoZ3JhbnVsYXJp
dHkpCi0gICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZShmYWxzZSkKICAgICAsIG1f
cGhhc2UocGhhc2UpCiAgICAgLCBtX21vbWVudHVtUGhhc2UobW9tZW50dW1QaGFzZSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDk2NzA2NDAzZmNjNzA5
NzY0MzAyZmZmMTQ1OTAxZmI0MWNjYzFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViV2hlZWxFdmVudC5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYldoZWVsRXZlbnQgOiBwdWJsaWMg
V2ViRXZlbnQgeworcHVibGljOgorICAgIGVudW0gR3JhbnVsYXJpdHkgeworICAgICAgICBTY3Jv
bGxCeVBhZ2VXaGVlbEV2ZW50LAorICAgICAgICBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudAorICAg
IH07CisKKyAgICBlbnVtIFBoYXNlIHsKKyAgICAgICAgUGhhc2VOb25lICAgICAgICA9IDAsCisg
ICAgICAgIFBoYXNlQmVnYW4gICAgICAgPSAxIDw8IDAsCisgICAgICAgIFBoYXNlU3RhdGlvbmFy
eSAgPSAxIDw8IDEsCisgICAgICAgIFBoYXNlQ2hhbmdlZCAgICAgPSAxIDw8IDIsCisgICAgICAg
IFBoYXNlRW5kZWQgICAgICAgPSAxIDw8IDMsCisgICAgICAgIFBoYXNlQ2FuY2VsbGVkICAgPSAx
IDw8IDQsCisgICAgICAgIFBoYXNlTWF5QmVnaW4gICAgPSAxIDw8IDUsCisgICAgfTsKKworICAg
IFdlYldoZWVsRXZlbnQoKSA9IGRlZmF1bHQ7CisKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBPcHRpb25TZXQ8TW9k
aWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdl
YldoZWVsRXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVs
YXJpdHksIGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSwgUGhhc2UgbW9t
ZW50dW1QaGFzZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3Jv
bGxDb3VudCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5n
RGVsdGEsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZWxpZiBQ
TEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCisgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBn
bG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwg
R3JhbnVsYXJpdHksIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Cisj
ZW5kaWYKKworICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9wb3NpdGlvbjsgfQorICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxQb3NpdGlvbjsgfQorICAgIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSBkZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsdGE7IH0KKyAgICBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxUaWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fd2hl
ZWxUaWNrczsgfQorICAgIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8R3JhbnVsYXJpdHk+KG1fZ3JhbnVsYXJpdHkpOyB9CisgICAgYm9vbCBkaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvbkludmVy
dGVkRnJvbURldmljZTsgfQorICAgIFBoYXNlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8UGhhc2U+KG1fcGhhc2UpOyB9CisgICAgUGhhc2UgbW9tZW50dW1QaGFzZSgpIGNvbnN0
IHsgcmV0dXJuIHN0YXRpY19jYXN0PFBoYXNlPihtX21vbWVudHVtUGhhc2UpOyB9CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOyB9CisgICAgdWludDMyX3Qgc2Ny
b2xsQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbENvdW50OyB9CisgICAgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEoKSBjb25zdCB7IHJl
dHVybiBtX3VuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YTsgfQorI2VuZGlmCisKKyAgICB2b2lk
IGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVU
VVJOIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYldoZWVsRXZlbnQmKTsKKworcHJpdmF0
ZToKKyAgICBzdGF0aWMgYm9vbCBpc1doZWVsRXZlbnRUeXBlKFR5cGUpOworCisgICAgV2ViQ29y
ZTo6SW50UG9pbnQgbV9wb3NpdGlvbjsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2dsb2JhbFBv
c2l0aW9uOworICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX2RlbHRhOworICAgIFdlYkNvcmU6OkZs
b2F0U2l6ZSBtX3doZWVsVGlja3M7CisgICAgdWludDMyX3QgbV9ncmFudWxhcml0eSB7IFNjcm9s
bEJ5UGFnZVdoZWVsRXZlbnQgfTsKKyAgICB1aW50MzJfdCBtX3BoYXNlIHsgUGhhc2U6OlBoYXNl
Tm9uZSB9OworICAgIHVpbnQzMl90IG1fbW9tZW50dW1QaGFzZSB7IFBoYXNlOjpQaGFzZU5vbmUg
fTsKKyAgICBib29sIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlIHsgZmFsc2UgfTsKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBib29sIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyB7
IGZhbHNlIH07CisgICAgdWludDMyX3QgbV9zY3JvbGxDb3VudCB7IDAgfTsKKyAgICBXZWJDb3Jl
OjpGbG9hdFNpemUgbV91bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGE7CisjZW5kaWYKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
aW9zL1dlYklPU0V2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYklP
U0V2ZW50RmFjdG9yeS5oCmluZGV4IDEzOGZlYWEyNTE5MmMxYTczOGQ0YmI5NDAzOWNlM2E4NmZh
NmUyY2QuLjFlNzg4ZTYwYTc2YzU1ZWU0OTU5NTE1ZWVkMWFmMmI4YTQxZTI4N2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5LmgKQEAgLTI3LDcgKzI3
LDggQEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKLSNpbXBvcnQgIldlYkV2ZW50Lmgi
CisjaW1wb3J0ICJXZWJLZXlib2FyZEV2ZW50LmgiCisjaW1wb3J0ICJXZWJNb3VzZUV2ZW50Lmgi
CiAjaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5oPgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViUGxhdGZvcm1Ub3VjaFBv
aW50SU9TLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJQbGF0Zm9ybVRvdWNoUG9p
bnRJT1MuY3BwCmluZGV4IDdiNWViMzcyODgwZDg2NjI1NDQzMzRjZDQ2OTcyNzZkNTQzZGU0NWIu
LjJhOWRiNGY4YWNhZmU5ZDY0ZDVkNGViZDk5MTNhYTE2MWVhMGY0YzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJQbGF0Zm9ybVRvdWNoUG9pbnRJT1MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJQbGF0Zm9ybVRvdWNoUG9pbnRJT1MuY3BwCkBA
IC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldl
YkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgogCiAjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYlRvdWNo
RXZlbnRJT1MuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYlRvdWNoRXZlbnRJT1Mu
Y3BwCmluZGV4IDQ1YTU2ZWIzYjBmZGExM2MzYjc4ZDU3NTk0YTAwOTJlNGUxODY2ZjYuLmU0MGE2
ZTE3MmJmZDJiNzUwNzZmZDQwNTNkYTY0M2ViYWI5ZWI4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2lvcy9XZWJUb3VjaEV2ZW50SU9TLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9pb3MvV2ViVG91Y2hFdmVudElPUy5jcHAKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJX
ZWJUb3VjaEV2ZW50LmgiCiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5tbQppbmRl
eCA5MjQxMDc2ODk4MmIxYjA0NjkxYmVjMmRlMWY2YzMxNWFlNjc0MDEzLi5jMWQyMWQ4MWI0MjQy
NDJiMzRiZjM4ZWZhYWFlNmU1Y2JjZGJjMWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0KQEAgLTI4LDcgKzI4LDYgQEAK
IAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAKLSNpbXBvcnQgIldlYkV2ZW50Lmgi
CiAjaW1wb3J0ICJXZWJHZXN0dXJlRXZlbnQuaCIKICNpbXBvcnQgPFdlYkNvcmUvSW50UG9pbnQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaAppbmRleCA5Mjk3MmZjYThjNGVjNTYz
MTE5ZWYzZGE5OTRhZTU2NWJlZmNjNDkxLi5lNjQ1NGFiYjU1MTJhZDU1ZmFjNGE1OTY3MDIxZmIy
OTg5ZDliN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRG
YWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5o
CkBAIC0yNSw3ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW1wb3J0ICJXZWJFdmVudC5o
IgorI2ltcG9ydCAiV2ViS2V5Ym9hcmRFdmVudC5oIgorI2ltcG9ydCAiV2ViTW91c2VFdmVudC5o
IgorI2ltcG9ydCAiV2ViV2hlZWxFdmVudC5oIgogCiAjaWYgVVNFKEFQUEtJVCkKICNpZiBkZWZp
bmVkKF9fT0JKQ19fKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdl
c3R1cmVFdmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5o
CmluZGV4IGUyZDE5MjU0NTMyOGQwNTUwYTBiOGI2NmMzYjBiOTg1ODJmOGVhNjAuLjU0YmU0MWNm
ZTAwMzg3MGJlN2NmMTUwMTIxNjc5NDRmMjhiMWE5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYkdlc3R1cmVFdmVudF9oCi0j
ZGVmaW5lIFdlYkdlc3R1cmVFdmVudF9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShNQUNf
R0VTVFVSRV9FVkVOVFMpCiAKQEAgLTczLDUgKzcyLDMgQEAgcHJpdmF0ZToKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKLQotI2Vu
ZGlmIC8vIFdlYkdlc3R1cmVFdmVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC93aW4vV2ViRXZlbnRGYWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93aW4vV2ViRXZl
bnRGYWN0b3J5LmgKaW5kZXggOWUyNmMwZTdhNjQzOTRlOWRkOTVjNDFmOTcyZGZkMGRiYjA0M2Ex
Yi4uOWUwMzE5MTZkNjVkZDFhM2Y3NDA2MjQ3OGIzZWFhZDZjNWUwNjA2YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvd2luL1dlYkV2ZW50RmFjdG9yeS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL3dpbi9XZWJFdmVudEZhY3RvcnkuaApAQCAtMjYsNyArMjYsMTQgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYktleWJv
YXJkRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiV2ViV2hl
ZWxFdmVudC5oIgorCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNpbmNsdWRlICJXZWJUb3Vj
aEV2ZW50LmgiCisjZW5kaWYKKwogI2luY2x1ZGUgPHdpbmRvd3MuaD4KIAogbmFtZXNwYWNlIFdl
YktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdh
dGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25D
bGllbnQuaAppbmRleCAxNTdlZGE4OGRjZTgxZTc5NzQ4M2Y3YjcxZDY5Y2I1OWZmNDdkNTJjLi4w
NjFlMTg2ZGJlODg2YTA3NDIyYmY4M2I3YWZjZmNiYzZhYzllNmFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKQEAgLTMzLDcgKzMz
LDYgQEAKICNpbmNsdWRlICJQbHVnaW5Nb2R1bGVJbmZvLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rl
cm1pbmF0aW9uUmVhc29uLmgiCiAjaW5jbHVkZSAiU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUu
aCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZyYW1lUG9saWN5TGlzdGVu
ZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElQb2xpY3lDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElQb2xpY3lDbGllbnQuaAppbmRleCA2YWU4ZTc1MjA1ZmZmYzg2NTJmNGY5YjgzYmIzZGUz
MGVlNmNmYWYyLi43ZDJlOTM0NDYyY2YzYmRjMTlhMTliN2RkMzFhMGMyYTljZWJlZDRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUG9saWN5Q2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBvbGljeUNsaWVudC5oCkBAIC0yNSw3
ICsyNSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNs
dWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Zy
YW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNo
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXRE
aXNwYXRjaGVyLmgKaW5kZXggNTFkNTQwMWRlMDA0OGM4M2RjOWI5MWFhN2ExOWMwODU2YmExYTIy
Zi4uN2Q2ZjIyMDNhM2JkMzcxMjdmM2I0N2U5NDhjZjYwMGI5YWQ2ODk5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNo
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElu
cHV0RGlzcGF0Y2hlci5oCkBAIC0yNyw4ICsyNyw4IEBACiAKICNpZiBFTkFCTEUoV0VCRFJJVkVS
X0FDVElPTlNfQVBJKQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KICNpbmNs
dWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggNzYyMWY4NzRjMDEzYTI0ODVlZjZlMGFjMzc5NTZkZjg4ZmU5YzllYS4u
YmU0OWIxMjgwZDA3ZTg4MDdhYWI1YjE2YTBhNTZhMTJmOTlkZDNmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMDQsNyArMTA0LDYgQEAKICNpbmNsdWRl
ICJXZWJDb250ZXh0TWVudVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCiAjaW5jbHVkZSAiV2ViRWRpdENvbW1hbmRQcm94eS5oIgotI2luY2x1ZGUgIldlYkV2ZW50
LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQ
b2xpY3lMaXN0ZW5lclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eS5oIgpAQCAtMTEyLDYgKzExMSw3IEBACiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRl
ICJXZWJJbnNwZWN0b3JQcm94eS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclV0aWxpdGllcy5o
IgorI2luY2x1ZGUgIldlYktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9u
RGF0YVN0b3JlLmgiCiAjaW5jbHVkZSAiV2ViTmF2aWdhdGlvblN0YXRlLmgiCiAjaW5jbHVkZSAi
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLTW91c2VHZXN0dXJlUmVjb2duaXplci5tbQppbmRleCA2YjQ1MzZh
NzM2ZTBiZjNiN2I0MGIyMjcxZmMxYzVkYTMwNTljNmJhLi5jMzliYmVkMTBiN2VkNTQ2ZTRkODcw
MGIwZjhjYTEyMTNmOTIyYTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS01vdXNlR2VzdHVyZVJlY29nbml6ZXIubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNp
bXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2Vz
U1BJLmg+CiAjaW1wb3J0IDx3dGYvQ29tcGlsZXIuaD4KKyNpbXBvcnQgPHd0Zi9Nb25vdG9uaWNU
aW1lLmg+CiAjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KIAogc3RhdGljIE9wdGlvblNldDxXZWJL
aXQ6OldlYkV2ZW50OjpNb2RpZmllcj4gd2ViRXZlbnRNb2RpZmllcnNGb3JVSUtleU1vZGlmaWVy
RmxhZ3MoVUlLZXlNb2RpZmllckZsYWdzIGZsYWdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWRlMDg2YTA0NDA1YzA0MzJiNDQxNmI0
MTgxMWQzYzQ1ZDFiNWEzYi4uYTQ3YjAxMmQyYzQ4ZWQ4Y2Y0MDI1YmM5ZDU2NDZmZjA2NzhlZWM2
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0yMjAxLDYgKzIyMDEsMTAgQEAKIAkJMEYxODlDQUIyNDc0OUYyRjAwRTU4RDgxIC8qIERp
c3BsYXlMaW5rT2JzZXJ2ZXJJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
aXNwbGF5TGlua09ic2VydmVySUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYz
QzcyNTcxOTZGNUY1MDAwQUVERDBDIC8qIFdLSW5zcGVjdG9ySGlnaGxpZ2h0Vmlldy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLSW5zcGVjdG9ySGlnaGxpZ2h0
Vmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYzQzcyNTkxOTZGNUY2ODAw
QUVERDBDIC8qIFdLSW5zcGVjdG9ySGlnaGxpZ2h0Vmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0luc3BlY3RvckhpZ2hsaWdodFZpZXcuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMEY0MDAwRkQyNTI3RDY5RDAwRTkxREE3IC8qIFdlYldoZWVsRXZlbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViV2hlZWxFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjQwMDBGRTI1MjdENkMzMDBFOTFEQTcgLyogV2ViTW91c2VFdmVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJNb3VzZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGNDAwMEZGMjUyN0Q2RjcwMEU5MURBNyAvKiBXZWJLZXlib2FyZEV2ZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYktleWJvYXJkRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MEY0MDAxMDAyNTI3RDczQzAwRTkxREE3IC8qIFdlYlRvdWNoRXZlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViVG91Y2hFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ1QTMy
RjIzOUQ4OUEwMDAyOTRBQkYgLyogV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJ
T1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0NUEzMzAyMzlEODlBMTAwMjk0
QUJGIC8qIFdLV2ViVmlld1Rlc3RpbmdJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXS1dlYlZpZXdUZXN0aW5nSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjQ1QTMzMzIzOUQ4OUFGMDAyOTRBQkYgLyogV0tXZWJWaWV3UHJpdmF0ZUZv
clRlc3RpbmdNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJWaWV3
UHJpdmF0ZUZvclRlc3RpbmdNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYx
MTUsMTEgKzYxMTksMTMgQEAKIAkJCQlCQ0NGNkFCQTEyQzkxRUY5MDA4RjlDMzUgLyogV2ViSW1h
Z2UuY3BwICovLAogCQkJCUJDQ0Y2QUJCMTJDOTFFRjkwMDhGOUMzNSAvKiBXZWJJbWFnZS5oICov
LAogCQkJCUMwMzM3REQyMTI3QTJBMEUwMDhGRjRGNCAvKiBXZWJLZXlib2FyZEV2ZW50LmNwcCAq
LywKKwkJCQkwRjQwMDBGRjI1MjdENkY3MDBFOTFEQTcgLyogV2ViS2V5Ym9hcmRFdmVudC5oICov
LAogCQkJCUJDOUJBNTAyMTY5N0M0NTMwMEU0NDYxNiAvKiBXZWJLaXQySW5pdGlhbGl6ZS5jcHAg
Ki8sCiAJCQkJQkM5QkE1MDMxNjk3QzQ1MzAwRTQ0NjE2IC8qIFdlYktpdDJJbml0aWFsaXplLmgg
Ki8sCiAJCQkJOTA1NjIwRTgxMkJDMjQ4QjAwMDc5OUI2IC8qIFdlYk1lbW9yeVNhbXBsZXIuY3Bw
ICovLAogCQkJCTkwNTYyMEU5MTJCQzI0OEIwMDA3OTlCNiAvKiBXZWJNZW1vcnlTYW1wbGVyLmgg
Ki8sCiAJCQkJQzAzMzdEQUYxMjdBMjhEMDAwOEZGNEY0IC8qIFdlYk1vdXNlRXZlbnQuY3BwICov
LAorCQkJCTBGNDAwMEZFMjUyN0Q2QzMwMEU5MURBNyAvKiBXZWJNb3VzZUV2ZW50LmggKi8sCiAJ
CQkJQkNGNjlGOTgxMTc2Q0VENjAwNDcxQTUyIC8qIFdlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCAq
LywKIAkJCQlDMDZDNjA5MzEyNEMxNDQzMDAwMTY4MkYgLyogV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5jcHAgKi8sCiAJCQkJQzA2QzYwOTQxMjRDMTQ0MzAwMDE2ODJGIC8qIFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuaCAqLywKQEAgLTYxNDksMTAgKzYxNTUsMTIgQEAKIAkJCQk4MzYwMzQ5
RDFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCAqLywKIAkJ
CQk4MzYwMzQ5RTFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmgg
Ki8sCiAJCQkJQzAzMzdERDcxMjdBNTFCNjAwOEZGNEY0IC8qIFdlYlRvdWNoRXZlbnQuY3BwICov
LAorCQkJCTBGNDAwMTAwMjUyN0Q3M0MwMEU5MURBNyAvKiBXZWJUb3VjaEV2ZW50LmggKi8sCiAJ
CQkJN0MwNjVGMjkxQzhDRDk1RjAwQzJEOTUwIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRh
dGFUeXBlcy5jcHAgKi8sCiAJCQkJN0MwNjVGMkExQzhDRDk1RjAwQzJEOTUwIC8qIFdlYlVzZXJD
b250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oICovLAogCQkJCTQ5NjBBM0JDMjNDNTI4NjQwMDk2
MTg0MiAvKiBXZWJWaWV3Q2F0ZWdvcnkuaCAqLywKIAkJCQlDMDMzN0REMDEyN0EyOTgwMDA4RkY0
RjQgLyogV2ViV2hlZWxFdmVudC5jcHAgKi8sCisJCQkJMEY0MDAwRkQyNTI3RDY5RDAwRTkxREE3
IC8qIFdlYldoZWVsRXZlbnQuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gU2hhcmVkOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5hdmlnYXRp
b25BY3Rpb24uaAppbmRleCA4ZTJkNmIxYTBlNjZmNDMxNTc5NGFlZmE3ZmRkNjQ3YTQwY2QwN2Zj
Li5lZmJhMDE5N2MwYjRhNDVjM2EyZjI2OTczNjZiZDgzNDRjODc4YjMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVOYXZp
Z2F0aW9uQWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oCkBAIC0yMywyMCArMjMsMTkgQEAK
ICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEluamVj
dGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbl9oCi0jZGVmaW5lIEluamVjdGVkQnVuZGxlTmF2aWdh
dGlvbkFjdGlvbl9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2lu
Y2x1ZGUgIkluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkluamVjdGVk
QnVuZGxlTm9kZUhhbmRsZS5oIgotI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2Vi
TW91c2VFdmVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKLSAgICBjbGFzcyBGb3JtU3RhdGU7Ci0gICAgY2xhc3MgTmF2aWdhdGlvbkFjdGlv
bjsKK2NsYXNzIEZvcm1TdGF0ZTsKK2NsYXNzIE5hdmlnYXRpb25BY3Rpb247CiB9CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewpAQCAtODAsNSArNzksMyBAQCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb25f
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
bWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCmluZGV4IDUwYTAwMzRkZDY1MDk0
MDg5OTUwODA0ODUwODlhYjc3MDNjMDFmMjguLjQzYjM0OThlYzc2OTYzOGI3OTExMzdhMDdhMzFl
ZGVjOWY1ZDlmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KQEAgLTMx
LDcgKzMxLDkgQEAKICNpbXBvcnQgIkxheWVyVHJlZUNvbnRleHQuaCIKICNpbXBvcnQgIk5ldHNj
YXBlQnJvd3NlckZ1bmNzLmgiCiAjaW1wb3J0ICJQbHVnaW5Db250cm9sbGVyLmgiCi0jaW1wb3J0
ICJXZWJFdmVudC5oIgorI2ltcG9ydCAiV2ViS2V5Ym9hcmRFdmVudC5oIgorI2ltcG9ydCAiV2Vi
TW91c2VFdmVudC5oIgorI2ltcG9ydCAiV2ViV2hlZWxFdmVudC5oIgogI2ltcG9ydCA8Q2FyYm9u
L0NhcmJvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbXBvcnQg
PFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IGUzNGEyN2VmOWNmYWE4MmMyMzEyNmM3
MzQ5MjdhYmZmZmQ1YWNkNjAuLmY4NzcwNzA5MThmYjk5OTE3MjIwMGUxNzFiNTJmZTVkNDlkYjFl
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5tbQpAQCAtNDEsMTAgKzQxLDExIEBACiAjaW1wb3J0ICJXS0FjY2Vzc2liaWxpdHlXZWJQ
YWdlT2JqZWN0TWFjLmgiCiAjaW1wb3J0ICJXS1BhZ2VGaW5kTWF0Y2hlc0NsaWVudC5oIgogI2lt
cG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW1wb3J0ICJXZWJFdmVudC5oIgogI2lt
cG9ydCAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW1wb3J0ICJXZWJGaW5kT3B0aW9ucy5oIgor
I2ltcG9ydCAiV2ViS2V5Ym9hcmRFdmVudC5oIgogI2ltcG9ydCAiV2ViTG9hZGVyU3RyYXRlZ3ku
aCIKKyNpbXBvcnQgIldlYk1vdXNlRXZlbnQuaCIKICNpbXBvcnQgIldlYlBhZ2UuaCIKICNpbXBv
cnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQYXN0ZWJvYXJkUHJveHlN
ZXNzYWdlcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJveHkuY3BwCmluZGV4IDE4NGNmNjc1ZTNiNGY5YThjZmRmZDIyY2Y2MmE2NDUxZjI4ZmQzNjgu
LjcyNzRlNmYwNzQ3YjdhMzQ5N2U0MGFmMjE1MGRkMjI4ZDllNWRkNTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKQEAgLTM5LDkgKzM5
LDExIEBACiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLZXlib2FyZEV2ZW50Lmgi
CisjaW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViV2hl
ZWxFdmVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBhMjNjMjE3NDFkMDkyY2MwOTg1ZjZhYzVk
ZGFiYWIwNmM2NGQ1NDlhLi5mMjY2Y2QzY2UwOWVhOTFlZDRlNjYzODFiOWQ5ZTllYzg2ZDA1MGM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNw
cApAQCAtMzAsMTEgKzMwLDEzIEBACiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAiU2hh
cmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5j
bHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVk
ZSAiV2ViTG9hZGVyU3RyYXRlZ3kuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCiAjaW5j
bHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZlbnQuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0JpdG1hcEltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DaHJvbWUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0Nvb2tpZUphci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggMTA4ZmQ3MWU1OTkyMTJl
MzA4MzY0NWU0NTdkMzdlOGFiMTU1YmU5ZC4uM2UxOGJjNGIwMDkxOTUwYjAxNTY3M2U0MmYyNzk3
YTgyOThmZGQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC0yNywxMSArMjcsMTIgQEAKICNpbmNsdWRlICJFdmVu
dERpc3BhdGNoZXIuaCIKIAogI2luY2x1ZGUgIkV2ZW50RGlzcGF0Y2hlck1lc3NhZ2VzLmgiCi0j
aW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJFdmVudENvbnZlcnNpb24uaCIKICNp
bmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgorI2luY2x1
ZGUgIldlYldoZWVsRXZlbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhy
ZWFkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVu
dERpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlz
cGF0Y2hlci5oCmluZGV4IDFjNDE2ZDg4MGVjNzMzM2QwNzI2NmZhYzUzNWRjMjk5ZTAyMGZiY2Qu
LjM3MmUyMGU3YTFjNzZlYzAxZjg2MzgxMzNhMjhkMTEyNjZlMDllMDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCkBAIC01MSw2
ICs1MSwxMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBhZ2U7CiBjbGFzcyBXZWJX
aGVlbEV2ZW50OwogCisjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCitjbGFzcyBXZWJUb3Vj
aEV2ZW50OworI2VuZGlmCisKIGNsYXNzIEV2ZW50RGlzcGF0Y2hlciA6IHB1YmxpYyBJUEM6OkNv
bm5lY3Rpb246OldvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxFdmVudERpc3BhdGNoZXI+IGNyZWF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5oCmluZGV4IDg0ODAyMTA5ZGZiZDA4N2MwNDk1YTU4M2Fh
OTVmODdkZWVkMzQ0NTIuLjk4ZTE2ZDIxYzlmMGJiN2UyMzg4ZGU5NjQwMjM2MzVmYzEyNTIzOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmgKQEAg
LTIzLDExICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLSNpZm5kZWYgUGFnZUJhbm5lcl9oCi0jZGVmaW5lIFBhZ2VCYW5uZXJfaAorI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2lu
Y2x1ZGUgIldlYk1vdXNlRXZlbnQuaCIKIAogI2lmIFBMQVRGT1JNKE1BQykKIE9CSkNfQ0xBU1Mg
Q0FMYXllcjsKQEAgLTk2LDUgKzk1LDMgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAotCi0jZW5kaWYgLy8gUGFnZUJhbm5lcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDEyOWNhNjZjZTRjZjcxNDg4MWYzMTYwNjI4
ZWFkOTZkNWFjZDlmY2MuLjI5YTZmZjkxZmIwOWI0YmRhZTMyMzM3ZGZlM2MxODc5NjYwY2FhYzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC04
NSw3ICs4NSw2IEBACiAjaW5jbHVkZSAiV2ViRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJX
ZWJEcmFnQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRWRpdG9yQ2xpZW50LmgiCi0jaW5jbHVkZSAi
V2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJFdmVudENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJX
ZWJFdmVudEZhY3RvcnkuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgpAQCAtMTAwLDkgKzk5LDEx
IEBACiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJJbnNw
ZWN0b3JVSS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclVJTWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyU3RyYXRlZ3kuaCIKICNp
bmNsdWRlICJXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFT
dHJhdGVneS5oIgorI2luY2x1ZGUgIldlYk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJXZWJOb3Rp
ZmljYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5o
IgogI2luY2x1ZGUgIldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCIKQEAgLTEyNywxMSArMTI4
LDEzIEBACiAjaW5jbHVkZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJTcGVl
Y2hTeW50aGVzaXNDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlk
ZXIuaCIKKyNpbmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViVVJMU2NoZW1l
SGFuZGxlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViVW5kb1N0ZXAuaCIKICNpbmNsdWRlICJXZWJV
c2VyQ29udGVudENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJVc2VyTWVkaWFDbGllbnQuaCIK
ICNpbmNsdWRlICJXZWJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIgorI2luY2x1ZGUgIldlYldo
ZWVsRXZlbnQuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU0NJbmxpbmVzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGRkYzdlNzYxZWFmMTQyYjc5OTIzNmNlMTIyZmZmNDI0
NzFkYTJiNzEuLjc5Y2YxMjJmMjIxOWZhZDc0ZmE2OWIzNWYzZWU1ODViMDgxYTZiNTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CkBAIC01OSw2ICs1OSw3IEBACiAjaW1wb3J0ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2lt
cG9ydCAiV2ViUHJldmlld0xvYWRlckNsaWVudC5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgor
I2ltcG9ydCAiV2ViVG91Y2hFdmVudC5oIgogI2ltcG9ydCA8Q29yZVRleHQvQ1RGb250Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0F1dG9maWxsLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0F1dG9maWxsRWxl
bWVudHMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dl
YlBhZ2VNYWMubW0KaW5kZXggM2Q5NjBhMjIxOTFiN2U1NTkyYTVhNjE0NmNjZTM2ZTBmZTkxZmNj
Yy4uNWFlYjRiMTUzN2QzMzQyMTE2Y2EyMWE1NTUzNTNjNGFhZWMwMGU1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAgLTQz
LDEyICs0MywxMyBAQAogI2ltcG9ydCAiVXNlckRhdGEuaCIKICNpbXBvcnQgIldLQWNjZXNzaWJp
bGl0eVdlYlBhZ2VPYmplY3RNYWMuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgotI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldlYkV2ZW50Q29udmVyc2lvbi5oIgog
I2ltcG9ydCAiV2ViRnJhbWUuaCIKICNpbXBvcnQgIldlYkhpdFRlc3RSZXN1bHREYXRhLmgiCiAj
aW1wb3J0ICJXZWJJbWFnZS5oIgogI2ltcG9ydCAiV2ViSW5zcGVjdG9yLmgiCisjaW1wb3J0ICJX
ZWJLZXlib2FyZEV2ZW50LmgiCisjaW1wb3J0ICJXZWJNb3VzZUV2ZW50LmgiCiAjaW1wb3J0ICJX
ZWJQYWdlT3ZlcmxheS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbXBv
cnQgIldlYlBhc3RlYm9hcmRPdmVycmlkZXMuaCIK
</data>
<flag name="commit-queue"
          id="426307"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410389</attachid>
            <date>2020-10-02 16:53:41 -0700</date>
            <delta_ts>2020-10-02 16:57:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217259-20201002165340.patch</filename>
            <type>text/plain</type>
            <size>85828</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI5Njk2ZTQzNzM3NDRiNTBh
ZjhiZmM0NmUzMDdkM2MzNGQ1MTE4MzMuLjdkNjllNjUwOTk5MzljZGU3MzgyNjU1YmU2ZDRhN2Jh
MDJkZmNjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAxIEBACisyMDIwLTEwLTAyICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgV2ViRXZlbnQg
c3ViY2xhc3MgZGVjbGFyYXRpb25zIHRvIHRoZWlyIG93biBmaWxlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MjU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBNYWtlIG5ldyBoZWFkZXIgZmlsZXMgZm9yIFdl
Yk1vdXNlRXZlbnQsIFdlYktleWJvYXJkRXZlbnQsIFdlYldoZWVsRXZlbnQsIFdlYlRvdWNoRXZl
bnQgYW5kCisgICAgICAgIGZpeCB0aGUgZmFsbG91dC4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3Qu
aDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViR2VzdHVyZUV2ZW50Lmg6CisgICAgICAgICog
U2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZl
V2ViTW91c2VFdmVudC5oOgorICAgICAgICAqIFNoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50Lmg6
CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaDoKKyAgICAgICAgKiBTaGFy
ZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50OjphbGxUb3VjaFBvaW50c0FyZVJlbGVh
c2VkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6YnV0dG9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6YnV0dG9ucyBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OnBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6Z2xvYmFsUG9zaXRpb24gY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpkZWx0YVggY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpkZWx0YVkgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpkZWx0YVogY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpjbGlja0NvdW50IGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZXZlbnROdW1iZXIgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjptZW51VHlwZUZv
ckV2ZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6
Zm9yY2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50Ojpz
eW50aGV0aWNDbGlja1R5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJX
aGVlbEV2ZW50Ojpwb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YldoZWVsRXZlbnQ6Omdsb2JhbFBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViV2hlZWxFdmVudDo6ZGVsdGEgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJXaGVlbEV2ZW50Ojp3aGVlbFRpY2tzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViV2hlZWxFdmVudDo6Z3JhbnVsYXJpdHkgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2Ug
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpwaGFzZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Om1vbWVudHVt
UGhhc2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojpo
YXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViV2hlZWxFdmVudDo6c2Nyb2xsQ291bnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojp1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojp0ZXh0IGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6dW5tb2RpZmll
ZFRleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
OjprZXkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
Ojpjb2RlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVu
dDo6a2V5SWRlbnRpZmllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYktl
eWJvYXJkRXZlbnQ6OndpbmRvd3NWaXJ0dWFsS2V5Q29kZSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6Om5hdGl2ZVZpcnR1YWxLZXlDb2RlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6bWFjQ2hhckNv
ZGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojpo
YW5kbGVkQnlJbnB1dE1ldGhvZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YktleWJvYXJkRXZlbnQ6OnByZWVkaXRVbmRlcmxpbmVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6cHJlZWRpdFNlbGVjdGlvblJhbmdlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6Y29tbWFuZHMg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojppc0F1
dG9SZXBlYXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2
ZW50Ojppc0tleXBhZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYktleWJv
YXJkRXZlbnQ6OmlzU3lzdGVtS2V5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmlkZW50aWZpZXIgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmxvY2F0
aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBv
aW50OjpwaGFzZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3Jt
VG91Y2hQb2ludDo6c3RhdGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFJhZGl1c1gpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnJhZGl1c1ggY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFJhZGl1c1kpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnJhZGl1c1kgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFJvdGF0
aW9uQW5nbGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ6OnJvdGF0aW9uQW5nbGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OnNldEZvcmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGxhdGZvcm1Ub3VjaFBvaW50Ojpmb3JjZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0QWx0aXR1ZGVBbmdsZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6YWx0aXR1ZGVBbmdsZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
c2V0QXppbXV0aEFuZ2xlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1U
b3VjaFBvaW50OjphemltdXRoQW5nbGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFRvdWNoVHlwZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6dG91Y2hUeXBlIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6V2ViVG91Y2hFdmVudCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OnRvdWNoUG9pbnRzIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6cG9zaXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50Ojppc1BvdGVudGlhbFRh
cCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OmlzR2Vz
dHVyZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6Omdl
c3R1cmVTY2FsZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZl
bnQ6Omdlc3R1cmVSb3RhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlRvdWNoRXZlbnQ6OmNhblByZXZlbnROYXRpdmVHZXN0dXJlcyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OnNldENhblByZXZlbnROYXRpdmVHZXN0dXJl
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6aWQg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6
OnNjcmVlblBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxh
dGZvcm1Ub3VjaFBvaW50Ojpwb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cmFkaXVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpzZXRTdGF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgICogU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAgICogU2hhcmVk
L1dlYktleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAqIFNoYXJlZC9XZWJLZXlib2FyZEV2ZW50
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojp0ZXh0IGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6dW5tb2RpZmllZFRleHQgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50OjprZXkgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojpjb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6a2V5SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OndpbmRvd3NWaXJ0dWFsS2V5Q29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6Om5hdGl2ZVZpcnR1YWxLZXlDb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6bWFjQ2hhckNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50OjpoYW5kbGVkQnlJbnB1dE1l
dGhvZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OnByZWVkaXRV
bmRlcmxpbmVzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6cHJl
ZWRpdFNlbGVjdGlvblJhbmdlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRF
dmVudDo6Y29tbWFuZHMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
Ojppc0F1dG9SZXBlYXQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
Ojppc0tleXBhZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6Omlz
U3lzdGVtS2V5IGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvV2ViTW91c2VFdmVudC5jcHA6Cisg
ICAgICAgICogU2hhcmVkL1dlYk1vdXNlRXZlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYk1vdXNlRXZlbnQ6OmJ1dHRvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNl
RXZlbnQ6OmJ1dHRvbnMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50Ojpw
b3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6Omdsb2JhbFBv
c2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFYIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFZIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFaIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViTW91c2VFdmVudDo6Y2xpY2tDb3VudCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYk1vdXNlRXZlbnQ6OmV2ZW50TnVtYmVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TW91c2VFdmVudDo6bWVudVR5cGVGb3JFdmVudCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk1vdXNlRXZlbnQ6OmZvcmNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVu
dDo6c3ludGhldGljQ2xpY2tUeXBlIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvV2ViVG91Y2hF
dmVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OmFsbFRvdWNoUG9pbnRz
QXJlUmVsZWFzZWQgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9XZWJUb3VjaEV2ZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OldlYlBsYXRmb3Jt
VG91Y2hQb2ludCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6aWRl
bnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
bG9jYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6
OnBoYXNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50Ojpz
dGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0
UmFkaXVzWCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cmFkaXVz
WCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0UmFk
aXVzWSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cmFkaXVzWSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0Um90YXRp
b25BbmdsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cm90YXRp
b25BbmdsZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
c2V0Rm9yY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmZvcmNl
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpzZXRBbHRp
dHVkZUFuZ2xlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjphbHRp
dHVkZUFuZ2xlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50
OjpzZXRBemltdXRoQW5nbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ6OmF6aW11dGhBbmdsZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91
Y2hQb2ludDo6c2V0VG91Y2hUeXBlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3Vj
aFBvaW50Ojp0b3VjaFR5cGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50
OjpXZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6dG91Y2hQ
b2ludHMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50Ojpwb3NpdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OmlzUG90ZW50aWFsVGFwIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6aXNHZXN0dXJlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6Z2VzdHVyZVNjYWxlIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6Z2VzdHVyZVJvdGF0aW9uIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6Y2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6c2V0Q2FuUHJldmVudE5hdGl2
ZUdlc3R1cmVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjppZCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2NyZWVuUG9z
aXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnBv
c2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50Ojpy
YWRpdXMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNl
dFN0YXRlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJXaGVlbEV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojpw
b3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Omdsb2JhbFBv
c2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6ZGVsdGEgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojp3aGVlbFRpY2tzIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6Z3JhbnVsYXJpdHkgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2Ug
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpwaGFzZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Om1vbWVudHVtUGhhc2UgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6c2Nyb2xsQ291bnQgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojp1bmFjY2VsZXJhdGVkU2Nyb2xsaW5n
RGVsdGEgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lmg6
CisgICAgICAgICogU2hhcmVkL2lvcy9XZWJQbGF0Zm9ybVRvdWNoUG9pbnRJT1MuY3BwOgorICAg
ICAgICAqIFNoYXJlZC9pb3MvV2ViVG91Y2hFdmVudElPUy5jcHA6CisgICAgICAgICogU2hhcmVk
L21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW06CisgICAgICAgICogU2hhcmVkL21hYy9X
ZWJFdmVudEZhY3RvcnkuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQVBJUG9saWN5Q2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS01vdXNlR2Vz
dHVyZVJlY29nbml6ZXIubW06CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZU5hdmlnYXRpb25BY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgor
CiAyMDIwLTA5LTMwICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgY29kZSBiZWhpbmQgRU5BQkxFKE1FRElBX1NFU1NJT04pLCBubyBwb3J0cyBlbmFibGUg
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDJiN2Y0NmIz
NDRlMWJlM2U4NjBiMTRlODEwNDkxNDMyODlhMTU3MGQuLjcwZDNkODhmMmJmNGE2ZjFjZmM0ZjE4
ODcwNGVkNjc3MGU0OTc3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQpAQCAtNjc4LDExICs2NzgsNiBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAg
ICAgICAgJ1dlYktpdDo6UmVzcGVjdFNlbGVjdGlvbkFuY2hvcic6IFsnIkdlc3R1cmVUeXBlcy5o
IiddLAogICAgICAgICAnV2ViS2l0OjpTZWxlY3Rpb25GbGFncyc6IFsnIkdlc3R1cmVUeXBlcy5o
IiddLAogICAgICAgICAnV2ViS2l0OjpTZWxlY3Rpb25Ub3VjaCc6IFsnIkdlc3R1cmVUeXBlcy5o
IiddLAotICAgICAgICAnV2ViS2l0OjpXZWJHZXN0dXJlRXZlbnQnOiBbJyJXZWJFdmVudC5oIidd
LAotICAgICAgICAnV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwK
LSAgICAgICAgJ1dlYktpdDo6V2ViTW91c2VFdmVudCc6IFsnIldlYkV2ZW50LmgiJ10sCi0gICAg
ICAgICdXZWJLaXQ6OldlYlRvdWNoRXZlbnQnOiBbJyJXZWJFdmVudC5oIiddLAotICAgICAgICAn
V2ViS2l0OjpXZWJXaGVlbEV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwKICAgICAgICAgJ1dlYkNv
cmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMnOiBbJzxXZWJDb3JlL01lZGlhUGxheWVy
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpJU09XZWJWVFRDdWUnOiBbJzxXZWJDb3JlL0lTT1ZU
VEN1ZS5oPiddLAogICAgICAgICAnc3RydWN0IFdlYkNvcmU6OkNvb2tpZSc6IFsnPFdlYkNvcmUv
Q29va2llLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1No
YXJlZEFQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2Fz
dC5oCmluZGV4IDY2NDhlNzJmZWIyYzNkMWFiNGUxYzBlMjE0Y2E2OGRlMDVkMDEzY2EuLmU1NjAw
NTA4YTFiMzNkMjU1ZGQ1ZGI3NDAyYTA1ZGY4Y2NlMTI2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBXS1NoYXJlZEFQSUNh
c3RfaAotI2RlZmluZSBXS1NoYXJlZEFQSUNhc3RfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJBUElFcnJvci5oIgogI2luY2x1ZGUgIkFQSU51bWJlci5oIgpAQCAtNDcsOCArNDYsOCBAQAog
I2luY2x1ZGUgIldLUGFnZVZpc2liaWxpdHlUeXBlcy5oIgogI2luY2x1ZGUgIldLVXNlckNvbnRl
bnRJbmplY3RlZEZyYW1lcy5oIgogI2luY2x1ZGUgIldLVXNlclNjcmlwdEluamVjdGlvblRpbWUu
aCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgiCisj
aW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGV4dE1lbnVJ
dGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgpAQCAtMTAzNCw1ICsxMDMzLDMgQEAgaW5s
aW5lIFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgdG9Vc2VyQ29udGVudEluamVj
dGVkRnJhbWVzKFdLVXNlckNvbnQKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRp
ZiAvLyBXS1NoYXJlZEFQSUNhc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
TmF0aXZlV2ViR2VzdHVyZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJH
ZXN0dXJlRXZlbnQuaAppbmRleCBiOThiNzU4MzcwZGRmNDk2NTI3ZDlmNjBlYmMzYjgyZGVlZGI4
YzZmLi5lY2VhYTk3ZDk1OWQwOGJjMjJkYTdmZDcxZjU3NzE5ZjRiZDFjNTdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJHZXN0dXJlRXZlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJHZXN0dXJlRXZlbnQuaApAQCAtMjMsMTIgKzIzLDEw
IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBO
YXRpdmVXZWJHZXN0dXJlRXZlbnRfaAotI2RlZmluZSBOYXRpdmVXZWJHZXN0dXJlRXZlbnRfaAor
I3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogCi0jaW5jbHVk
ZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJHZXN0dXJlRXZlbnQuaCIKIAogT0JKQ19DTEFT
UyBOU0V2ZW50OwpAQCAtNDgsNSArNDYsMyBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQotCi0jZW5kaWYgLy8g
TmF0aXZlV2ViR2VzdHVyZUV2ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdl
YktleWJvYXJkRXZlbnQuaAppbmRleCBiZjY0Mjk5MDI1YWZjYzFjYjc4NGQzNWRkM2VhNjExZDQ3
MDE4YjEyLi5mZDJiNTVmNDBmZGQzZDgyZDZkNjk0N2RjMzNhZDMxZjI0ZjRjMWM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCkBAIC0yNiwxOSAr
MjYsMTMgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZu
ZGVmIE5hdGl2ZVdlYktleWJvYXJkRXZlbnRfaAotI2RlZmluZSBOYXRpdmVXZWJLZXlib2FyZEV2
ZW50X2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJX
ZWJLZXlib2FyZEV2ZW50LmgiCiAKICNpZiBVU0UoQVBQS0lUKQogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KIE9CSkNfQ0xBU1MgTlNWaWV3OwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1zdHJ1
Y3QgQ29tcG9zaXRpb25VbmRlcmxpbmU7Ci1zdHJ1Y3QgS2V5cHJlc3NDb21tYW5kOwotfQogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShHVEspCkBAIC0xMTMsNSArMTA3LDMgQEAgcHJpdmF0ZToKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmgKaW5kZXgg
ZDZmOTkwMmI5NjNiZDlhMDAzNmE2MDA4ZDcxOWMzZTViMTU0MDJjNC4uNWUzN2Y3MzUxMGY3Mzk2
MWQ5N2NlOGI0MmRlMGUxOTM1YTE3MGQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2
ZVdlYk1vdXNlRXZlbnQuaApAQCAtMjMsMTAgKzIzLDkgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE5hdGl2ZVdlYk1vdXNlRXZlbnRfaAotI2Rl
ZmluZSBOYXRpdmVXZWJNb3VzZUV2ZW50X2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2Vi
RXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCiAKICNpZiBVU0UoQVBQS0lUKQog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTEwMiw1ICsxMDEsMyBAQCBwcml2YXRlOgog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBOYXRpdmVXZWJNb3VzZUV2
ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZl
bnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaAppbmRleCBm
NWQ3MmY4N2I1YjEyNGRiZTE0MGRmN2FkMzg3ZTZiOGEzY2ExZGFhLi5kNzMzMzAxNmU4NDkxYjQy
ODcxNzhhMjM3NTY5ZmRlOWQ4OWEzYTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZl
V2ViVG91Y2hFdmVudC5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5j
bHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBkZWZpbmVkKF9fT0JKQ19fKQogI2luY2x1ZGUgPFVJS2l0L1VJ
S2l0Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKaW5kZXgg
ODRkYjA4M2NlZmU3ZDE2NmIyNmYxNTE2MjBkMDk2MDQ3ZDY5NzJjZS4uZGY0MjQyYjA3MzljODM4
YjY0YzdjNzFmMjRlMWZlMDY5YjRmNDAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2
ZVdlYldoZWVsRXZlbnQuaApAQCAtMjMsMTAgKzIzLDkgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE5hdGl2ZVdlYldoZWVsRXZlbnRfaAotI2Rl
ZmluZSBOYXRpdmVXZWJXaGVlbEV2ZW50X2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2Vi
RXZlbnQuaCIKKyNpbmNsdWRlICJXZWJXaGVlbEV2ZW50LmgiCiAKICNpZiBVU0UoQVBQS0lUKQog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTg5LDUgKzg4LDMgQEAgcHJpdmF0ZToKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gTmF0aXZlV2ViV2hlZWxFdmVu
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0
YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaAppbmRleCBm
NzI3MWVhZjgzOGEzMGM5OWIwYzhiMjA1NGZkNGI2Nzc4NjY3ZjZmLi5jYmQ3NzBlNTdmM2VhN2Q0
ZmM4OTJkY2VhZjQ0ZGZhZmMwYjVmNGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmln
YXRpb25BY3Rpb25EYXRhLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYk1vdXNlRXZlbnQuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQmFja0Zv
cndhcmRJdGVtSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCmluZGV4IGRiN2RlMzllNjdjYjM1YWY5YTA1YWE0MmIy
M2ZiODIwNzhhYWI0NDAuLmNlMzE3OGRlMjcxZTAxZmVmNDI1OGJhYWU3NTAxNTk3ZWFhNWJhMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5jcHAKQEAgLTYyLDE2ICs2Miw0IEBAIGJvb2wgV2Vi
RXZlbnQ6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYkV2ZW50JiByZXN1bHQpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotYm9vbCBXZWJU
b3VjaEV2ZW50OjphbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkgY29uc3QKLXsKLSAgICBmb3Ig
KGNvbnN0IGF1dG8mIHRvdWNoUG9pbnQgOiB0b3VjaFBvaW50cygpKSB7Ci0gICAgICAgIGlmICh0
b3VjaFBvaW50LnN0YXRlKCkgIT0gV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2Vk
ICYmIHRvdWNoUG9pbnQuc3RhdGUoKSAhPSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoQ2Fu
Y2VsbGVkKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHJldHVybiB0
cnVlOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2
ZW50LmgKaW5kZXggZTMxZDkyNTM0YmYxODA4ZjEyYzMwMDVmZDc1OTRmODAwNmM4OTk5Ni4uM2Fl
NjUwNDc3OWQzOTE3YTc5ZjY5ZjMyYjU4MjYwYWZlZGEyNzBiNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJF
dmVudC5oCkBAIC0yOSwxMyArMjksNiBAQAogLy8gRklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBt
b3ZlIHRvIG1ha2VpbmcgdGhlIFdlYkNvcmUvUGxhdGZvcm1Gb29FdmVudHMgdHJpdmlhbCBjbGFz
c2VzIHNvIHRoYXQKIC8vIHdlIGNhbiB1c2UgdGhlbSBhcyB0aGUgZXZlbnQgdHlwZS4KIAotI2lu
Y2x1ZGUgIkVkaXRpbmdSYW5nZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQ29tcG9zaXRpb25VbmRl
cmxpbmUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL0Zsb2F0U2l6ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL0ludFNpemUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0tleXByZXNzQ29tbWFuZC5o
PgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5o
PgogI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgpAQCAtNDYsMTIgKzM5LDYgQEAgY2xhc3MgRGVj
b2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9CiAKLSNpZiBVU0UoQVBQS0lUKQotbmFtZXNwYWNlIFdl
YkNvcmUgewotc3RydWN0IEtleXByZXNzQ29tbWFuZDsKLX0KLSNlbmRpZgotCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgV2ViRXZlbnQgewpAQCAtMTI2LDM3MyArMTEzLDYgQEAgcHJpdmF0
ZToKICAgICBXYWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKLS8vIEZJWE1FOiBNb3ZlIHRoaXMg
Y2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYk1vdXNlRXZlbnQgOiBwdWJs
aWMgV2ViRXZlbnQgewotcHVibGljOgotICAgIGVudW0gQnV0dG9uIHsKLSAgICAgICAgTGVmdEJ1
dHRvbiA9IDAsCi0gICAgICAgIE1pZGRsZUJ1dHRvbiwKLSAgICAgICAgUmlnaHRCdXR0b24sCi0g
ICAgICAgIE5vQnV0dG9uID0gLTIKLSAgICB9OwotCi0gICAgZW51bSBTeW50aGV0aWNDbGlja1R5
cGUgeyBOb1RhcCwgT25lRmluZ2VyVGFwLCBUd29GaW5nZXJUYXAgfTsKLQotICAgIFdlYk1vdXNl
RXZlbnQoKTsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBXZWJNb3VzZUV2ZW50KFR5cGUsIEJ1
dHRvbiwgdW5zaWduZWQgc2hvcnQgYnV0dG9ucywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBv
c2l0aW9uSW5WaWV3LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZs
b2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBP
cHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3lu
dGhldGljQ2xpY2tUeXBlID0gTm9UYXAsIGludCBldmVudE51bWJlciA9IC0xLCBpbnQgbWVudVR5
cGUgPSAwKTsKLSNlbHNlCi0gICAgV2ViTW91c2VFdmVudChUeXBlLCBCdXR0b24sIHVuc2lnbmVk
IHNob3J0IGJ1dHRvbnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbkluVmlldywg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZs
b2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgT3B0aW9uU2V0PE1vZGlm
aWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlj
a1R5cGUgPSBOb1RhcCk7Ci0jZW5kaWYKLQotICAgIEJ1dHRvbiBidXR0b24oKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQotICAgIHVuc2lnbmVkIHNob3J0
IGJ1dHRvbnMoKSBjb25zdCB7IHJldHVybiBtX2J1dHRvbnM7IH0KLSAgICBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9IC8vIFJl
bGF0aXZlIHRvIHRoZSB2aWV3LgotICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsUG9zaXRpb247IH0KLSAgICBmbG9hdCBk
ZWx0YVgoKSBjb25zdCB7IHJldHVybiBtX2RlbHRhWDsgfQotICAgIGZsb2F0IGRlbHRhWSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGVsdGFZOyB9Ci0gICAgZmxvYXQgZGVsdGFaKCkgY29uc3QgeyByZXR1
cm4gbV9kZWx0YVo7IH0KLSAgICBpbnQzMl90IGNsaWNrQ291bnQoKSBjb25zdCB7IHJldHVybiBt
X2NsaWNrQ291bnQ7IH0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgaW50MzJfdCBldmVudE51bWJl
cigpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnROdW1iZXI7IH0KLSAgICBpbnQzMl90IG1lbnVUeXBl
Rm9yRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX21lbnVUeXBlRm9yRXZlbnQ7IH0KLSNlbmRpZgot
ICAgIGRvdWJsZSBmb3JjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2U7IH0KLSAgICBTeW50aGV0
aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8U3ludGhldGljQ2xpY2tUeXBlPihtX3N5bnRoZXRpY0NsaWNrVHlwZSk7IH0KLQotICAgIHZv
aWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9S
RVRVUk4gYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViTW91c2VFdmVudCYpOwotCi1wcml2
YXRlOgotICAgIHN0YXRpYyBib29sIGlzTW91c2VFdmVudFR5cGUoVHlwZSk7Ci0KLSAgICB1aW50
MzJfdCBtX2J1dHRvbiB7IHN0YXRpY19jYXN0PHVpbnQzMl90PihOb0J1dHRvbikgfTsKLSAgICB1
bnNpZ25lZCBzaG9ydCBtX2J1dHRvbnMgeyAwIH07Ci0gICAgV2ViQ29yZTo6SW50UG9pbnQgbV9w
b3NpdGlvbjsgLy8gUmVsYXRpdmUgdG8gdGhlIHZpZXcuCi0gICAgV2ViQ29yZTo6SW50UG9pbnQg
bV9nbG9iYWxQb3NpdGlvbjsKLSAgICBmbG9hdCBtX2RlbHRhWCB7IDAgfTsKLSAgICBmbG9hdCBt
X2RlbHRhWSB7IDAgfTsKLSAgICBmbG9hdCBtX2RlbHRhWiB7IDAgfTsKLSAgICBpbnQzMl90IG1f
Y2xpY2tDb3VudCB7IDAgfTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgaW50MzJfdCBtX2V2ZW50
TnVtYmVyIHsgLTEgfTsKLSAgICBpbnQzMl90IG1fbWVudVR5cGVGb3JFdmVudCB7IDAgfTsKLSNl
bmRpZgotICAgIGRvdWJsZSBtX2ZvcmNlIHsgMCB9OwotICAgIHVpbnQzMl90IG1fc3ludGhldGlj
Q2xpY2tUeXBlIHsgTm9UYXAgfTsKLX07Ci0KLS8vIEZJWE1FOiBNb3ZlIHRoaXMgY2xhc3MgdG8g
aXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYldoZWVsRXZlbnQgOiBwdWJsaWMgV2ViRXZl
bnQgewotcHVibGljOgotICAgIGVudW0gR3JhbnVsYXJpdHkgewotICAgICAgICBTY3JvbGxCeVBh
Z2VXaGVlbEV2ZW50LAotICAgICAgICBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudAotICAgIH07Ci0K
LSAgICBlbnVtIFBoYXNlIHsKLSAgICAgICAgUGhhc2VOb25lICAgICAgICA9IDAsCi0gICAgICAg
IFBoYXNlQmVnYW4gICAgICAgPSAxIDw8IDAsCi0gICAgICAgIFBoYXNlU3RhdGlvbmFyeSAgPSAx
IDw8IDEsCi0gICAgICAgIFBoYXNlQ2hhbmdlZCAgICAgPSAxIDw8IDIsCi0gICAgICAgIFBoYXNl
RW5kZWQgICAgICAgPSAxIDw8IDMsCi0gICAgICAgIFBoYXNlQ2FuY2VsbGVkICAgPSAxIDw8IDQs
Ci0gICAgICAgIFBoYXNlTWF5QmVnaW4gICAgPSAxIDw8IDUsCi0gICAgfTsKLQotICAgIFdlYldo
ZWVsRXZlbnQoKSA9IGRlZmF1bHQ7Ci0KLSAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBPcHRpb25TZXQ8TW9kaWZpZXI+
LCBXYWxsVGltZSB0aW1lc3RhbXApOwotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdlYldoZWVs
RXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
ZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHks
IGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1Q
aGFzZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxDb3Vu
dCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEs
IE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Ci0jZWxpZiBQTEFURk9S
TShHVEspIHx8IFVTRShMSUJXUEUpCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVs
YXJpdHksIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Ci0jZW5kaWYK
LQotICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9wb3NpdGlvbjsgfQotICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxQb3NpdGlvbjsgfQotICAgIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSBkZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsdGE7IH0KLSAgICBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxUaWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fd2hlZWxUaWNr
czsgfQotICAgIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8R3JhbnVsYXJpdHk+KG1fZ3JhbnVsYXJpdHkpOyB9Ci0gICAgYm9vbCBkaXJlY3Rpb25J
bnZlcnRlZEZyb21EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvbkludmVydGVkRnJv
bURldmljZTsgfQotICAgIFBoYXNlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
UGhhc2U+KG1fcGhhc2UpOyB9Ci0gICAgUGhhc2UgbW9tZW50dW1QaGFzZSgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PFBoYXNlPihtX21vbWVudHVtUGhhc2UpOyB9Ci0jaWYgUExBVEZPUk0o
Q09DT0EpCi0gICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkgY29uc3QgeyByZXR1
cm4gbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOyB9Ci0gICAgdWludDMyX3Qgc2Nyb2xsQ291
bnQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbENvdW50OyB9Ci0gICAgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEoKSBjb25zdCB7IHJldHVybiBt
X3VuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YTsgfQotI2VuZGlmCi0KLSAgICB2b2lkIGVuY29k
ZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYldoZWVsRXZlbnQmKTsKLQotcHJpdmF0ZToKLSAg
ICBzdGF0aWMgYm9vbCBpc1doZWVsRXZlbnRUeXBlKFR5cGUpOwotCi0gICAgV2ViQ29yZTo6SW50
UG9pbnQgbV9wb3NpdGlvbjsKLSAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2dsb2JhbFBvc2l0aW9u
OwotICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX2RlbHRhOwotICAgIFdlYkNvcmU6OkZsb2F0U2l6
ZSBtX3doZWVsVGlja3M7Ci0gICAgdWludDMyX3QgbV9ncmFudWxhcml0eSB7IFNjcm9sbEJ5UGFn
ZVdoZWVsRXZlbnQgfTsKLSAgICBib29sIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlIHsg
ZmFsc2UgfTsKLSAgICB1aW50MzJfdCBtX3BoYXNlIHsgUGhhc2U6OlBoYXNlTm9uZSB9OwotICAg
IHVpbnQzMl90IG1fbW9tZW50dW1QaGFzZSB7IFBoYXNlOjpQaGFzZU5vbmUgfTsKLSNpZiBQTEFU
Rk9STShDT0NPQSkKLSAgICBib29sIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyB7IGZhbHNl
IH07Ci0gICAgdWludDMyX3QgbV9zY3JvbGxDb3VudCB7IDAgfTsKLSAgICBXZWJDb3JlOjpGbG9h
dFNpemUgbV91bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGE7Ci0jZW5kaWYKLX07Ci0KLS8vIEZJ
WE1FOiBNb3ZlIHRoaXMgY2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYktl
eWJvYXJkRXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewotcHVibGljOgotICAgIFdlYktleWJvYXJk
RXZlbnQoKTsKLSAgICB+V2ViS2V5Ym9hcmRFdmVudCgpOwotCi0jaWYgVVNFKEFQUEtJVCkKLSAg
ICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwg
Y29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBp
bnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBoYW5kbGVkQnlJ
bnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mLCBib29s
IGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0
PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKLSNlbGlmIFBMQVRGT1JNKEdUSykKLSAg
ICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wg
aGFuZGxlZEJ5SW5wdXRNZXRob2QsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlv
blVuZGVybGluZT4+JiYsIE9wdGlvbmFsPEVkaXRpbmdSYW5nZT4mJiwgVmVjdG9yPFN0cmluZz4m
JiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUg
dGltZXN0YW1wKTsKLSNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgV2ViS2V5Ym9hcmRF
dmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRl
eHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYg
a2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1
YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGJv
b2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBPcHRpb25T
ZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOwotI2VsaWYgVVNFKExJQldQRSkKLSAg
ICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wg
aGFuZGxlZEJ5SW5wdXRNZXRob2QsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlv
blVuZGVybGluZT4+JiYsIE9wdGlvbmFsPEVkaXRpbmdSYW5nZT4mJiwgYm9vbCBpc0tleXBhZCwg
T3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKLSNlbHNlCi0gICAgV2Vi
S2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5t
b2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5h
dGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBi
b29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBPcHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxs
VGltZSB0aW1lc3RhbXApOwotI2VuZGlmCi0KLSAgICBjb25zdCBTdHJpbmcmIHRleHQoKSBjb25z
dCB7IHJldHVybiBtX3RleHQ7IH0KLSAgICBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0KCkg
Y29uc3QgeyByZXR1cm4gbV91bm1vZGlmaWVkVGV4dDsgfQotICAgIGNvbnN0IFN0cmluZyYga2V5
KCkgY29uc3QgeyByZXR1cm4gbV9rZXk7IH0KLSAgICBjb25zdCBTdHJpbmcmIGNvZGUoKSBjb25z
dCB7IHJldHVybiBtX2NvZGU7IH0KLSAgICBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX2tleUlkZW50aWZpZXI7IH0KLSAgICBpbnQzMl90IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlOyB9Ci0g
ICAgaW50MzJfdCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZl
VmlydHVhbEtleUNvZGU7IH0KLSAgICBpbnQzMl90IG1hY0NoYXJDb2RlKCkgY29uc3QgeyByZXR1
cm4gbV9tYWNDaGFyQ29kZTsgfQotI2lmIFVTRShBUFBLSVQpIHx8IFVTRShVSUtJVF9LRVlCT0FS
RF9BRERJVElPTlMpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKLSAgICBib29sIGhh
bmRsZWRCeUlucHV0TWV0aG9kKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGVkQnlJbnB1dE1ldGhv
ZDsgfQotI2VuZGlmCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQotICAgIGNvbnN0
IE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZT4+JiBwcmVlZGl0
VW5kZXJsaW5lcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZWRpdFVuZGVybGluZXM7IH0KLSAgICBj
b25zdCBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+JiBwcmVlZGl0U2VsZWN0aW9uUmFuZ2UoKSBjb25z
dCB7IHJldHVybiBtX3ByZWVkaXRTZWxlY3Rpb25SYW5nZTsgfQotI2VuZGlmCi0jaWYgVVNFKEFQ
UEtJVCkKLSAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFu
ZHMoKSBjb25zdCB7IHJldHVybiBtX2NvbW1hbmRzOyB9Ci0jZWxpZiBQTEFURk9STShHVEspCi0g
ICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvbW1hbmRzKCkgY29uc3QgeyByZXR1cm4gbV9jb21t
YW5kczsgfQotI2VuZGlmCi0gICAgYm9vbCBpc0F1dG9SZXBlYXQoKSBjb25zdCB7IHJldHVybiBt
X2lzQXV0b1JlcGVhdDsgfQotICAgIGJvb2wgaXNLZXlwYWQoKSBjb25zdCB7IHJldHVybiBtX2lz
S2V5cGFkOyB9Ci0gICAgYm9vbCBpc1N5c3RlbUtleSgpIGNvbnN0IHsgcmV0dXJuIG1faXNTeXN0
ZW1LZXk7IH0KLQotICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0
YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViS2V5
Ym9hcmRFdmVudCYpOwotCi0gICAgc3RhdGljIGJvb2wgaXNLZXlib2FyZEV2ZW50VHlwZShUeXBl
KTsKLQotcHJpdmF0ZToKLSAgICBTdHJpbmcgbV90ZXh0OwotICAgIFN0cmluZyBtX3VubW9kaWZp
ZWRUZXh0OwotICAgIFN0cmluZyBtX2tleTsKLSAgICBTdHJpbmcgbV9jb2RlOwotICAgIFN0cmlu
ZyBtX2tleUlkZW50aWZpZXI7Ci0gICAgaW50MzJfdCBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSB7
IDAgfTsKLSAgICBpbnQzMl90IG1fbmF0aXZlVmlydHVhbEtleUNvZGUgeyAwIH07Ci0gICAgaW50
MzJfdCBtX21hY0NoYXJDb2RlIHsgMCB9OwotI2lmIFVTRShBUFBLSVQpIHx8IFVTRShVSUtJVF9L
RVlCT0FSRF9BRERJVElPTlMpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKLSAgICBi
b29sIG1faGFuZGxlZEJ5SW5wdXRNZXRob2QgeyBmYWxzZSB9OwotI2VuZGlmCi0jaWYgUExBVEZP
Uk0oR1RLKSB8fCBVU0UoTElCV1BFKQotICAgIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21w
b3NpdGlvblVuZGVybGluZT4+IG1fcHJlZWRpdFVuZGVybGluZXM7Ci0gICAgT3B0aW9uYWw8RWRp
dGluZ1JhbmdlPiBtX3ByZWVkaXRTZWxlY3Rpb25SYW5nZTsKLSNlbmRpZgotI2lmIFVTRShBUFBL
SVQpCi0gICAgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gbV9jb21tYW5kczsKLSNl
bGlmIFBMQVRGT1JNKEdUSykKLSAgICBWZWN0b3I8U3RyaW5nPiBtX2NvbW1hbmRzOwotI2VuZGlm
Ci0gICAgYm9vbCBtX2lzQXV0b1JlcGVhdCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzS2V5cGFk
IHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNTeXN0ZW1LZXkgeyBmYWxzZSB9OwotfTsKLQotI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLWNsYXNzIFdl
YlBsYXRmb3JtVG91Y2hQb2ludCB7Ci1wdWJsaWM6Ci0gICAgZW51bSBUb3VjaFBvaW50U3RhdGUg
ewotICAgICAgICBUb3VjaFJlbGVhc2VkLAotICAgICAgICBUb3VjaFByZXNzZWQsCi0gICAgICAg
IFRvdWNoTW92ZWQsCi0gICAgICAgIFRvdWNoU3RhdGlvbmFyeSwKLSAgICAgICAgVG91Y2hDYW5j
ZWxsZWQKLSAgICB9OwotCi0gICAgZW51bSBjbGFzcyBUb3VjaFR5cGUgewotICAgICAgICBEaXJl
Y3QsCi0gICAgICAgIFN0eWx1cwotICAgIH07Ci0KLSAgICBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQo
KSA9IGRlZmF1bHQ7Ci0gICAgV2ViUGxhdGZvcm1Ub3VjaFBvaW50KHVuc2lnbmVkIGlkZW50aWZp
ZXIsIFdlYkNvcmU6OkludFBvaW50IGxvY2F0aW9uLCBUb3VjaFBvaW50U3RhdGUgcGhhc2UpCi0g
ICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgICAgICwgbV9sb2NhdGlvbihs
b2NhdGlvbikKLSAgICAgICAgLCBtX3BoYXNlKHBoYXNlKQotICAgIHsKLSAgICB9Ci0KLSAgICB1
bnNpZ25lZCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0gICAg
V2ViQ29yZTo6SW50UG9pbnQgbG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2xvY2F0aW9uOyB9
Ci0gICAgVG91Y2hQb2ludFN0YXRlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
VG91Y2hQb2ludFN0YXRlPihtX3BoYXNlKTsgfQotICAgIFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIHBoYXNlKCk7IH0KLQotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQotICAgIHZvaWQgc2V0UmFkaXVzWChkb3VibGUgcmFkaXVzWCkgeyBtX3JhZGl1c1ggPSByYWRp
dXNYOyB9Ci0gICAgZG91YmxlIHJhZGl1c1goKSBjb25zdCB7IHJldHVybiBtX3JhZGl1c1g7IH0K
LSAgICB2b2lkIHNldFJhZGl1c1koZG91YmxlIHJhZGl1c1kpIHsgbV9yYWRpdXNZID0gcmFkaXVz
WTsgfQotICAgIGRvdWJsZSByYWRpdXNZKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXNZOyB9Ci0g
ICAgdm9pZCBzZXRSb3RhdGlvbkFuZ2xlKGRvdWJsZSByb3RhdGlvbkFuZ2xlKSB7IG1fcm90YXRp
b25BbmdsZSA9IHJvdGF0aW9uQW5nbGU7IH0KLSAgICBkb3VibGUgcm90YXRpb25BbmdsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcm90YXRpb25BbmdsZTsgfQotICAgIHZvaWQgc2V0Rm9yY2UoZG91Ymxl
IGZvcmNlKSB7IG1fZm9yY2UgPSBmb3JjZTsgfQotICAgIGRvdWJsZSBmb3JjZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZm9yY2U7IH0KLSAgICB2b2lkIHNldEFsdGl0dWRlQW5nbGUoZG91YmxlIGFsdGl0
dWRlQW5nbGUpIHsgbV9hbHRpdHVkZUFuZ2xlID0gYWx0aXR1ZGVBbmdsZTsgfQotICAgIGRvdWJs
ZSBhbHRpdHVkZUFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9hbHRpdHVkZUFuZ2xlOyB9Ci0gICAg
dm9pZCBzZXRBemltdXRoQW5nbGUoZG91YmxlIGF6aW11dGhBbmdsZSkgeyBtX2F6aW11dGhBbmds
ZSA9IGF6aW11dGhBbmdsZTsgfQotICAgIGRvdWJsZSBhemltdXRoQW5nbGUoKSBjb25zdCB7IHJl
dHVybiBtX2F6aW11dGhBbmdsZTsgfQotICAgIHZvaWQgc2V0VG91Y2hUeXBlKFRvdWNoVHlwZSB0
b3VjaFR5cGUpIHsgbV90b3VjaFR5cGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4odG91Y2hUeXBl
KTsgfQotICAgIFRvdWNoVHlwZSB0b3VjaFR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxUb3VjaFR5cGU+KG1fdG91Y2hUeXBlKTsgfQotI2VuZGlmCi0KLSAgICB2b2lkIGVuY29kZShJ
UEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgT3B0aW9uYWw8V2ViUGxhdGZvcm1Ub3Vj
aFBvaW50PiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7Ci0KLXByaXZhdGU6Ci0gICAgdW5zaWduZWQg
bV9pZGVudGlmaWVyIHsgMCB9OwotICAgIFdlYkNvcmU6OkludFBvaW50IG1fbG9jYXRpb247Ci0g
ICAgdWludDMyX3QgbV9waGFzZSB7IFRvdWNoUmVsZWFzZWQgfTsKLSNpZiBFTkFCTEUoSU9TX1RP
VUNIX0VWRU5UUykKLSAgICBkb3VibGUgbV9yYWRpdXNYIHsgMCB9OwotICAgIGRvdWJsZSBtX3Jh
ZGl1c1kgeyAwIH07Ci0gICAgZG91YmxlIG1fcm90YXRpb25BbmdsZSB7IDAgfTsKLSAgICBkb3Vi
bGUgbV9mb3JjZSB7IDAgfTsKLSAgICBkb3VibGUgbV9hbHRpdHVkZUFuZ2xlIHsgMCB9OwotICAg
IGRvdWJsZSBtX2F6aW11dGhBbmdsZSB7IDAgfTsKLSAgICB1aW50MzJfdCBtX3RvdWNoVHlwZSB7
IHN0YXRpY19jYXN0PHVpbnQzMl90PihUb3VjaFR5cGU6OkRpcmVjdCkgfTsKLSNlbmRpZgotfTsK
LQotY2xhc3MgV2ViVG91Y2hFdmVudCA6IHB1YmxpYyBXZWJFdmVudCB7Ci1wdWJsaWM6Ci0gICAg
V2ViVG91Y2hFdmVudCgpID0gZGVmYXVsdDsKLSAgICBXZWJUb3VjaEV2ZW50KFdlYkV2ZW50OjpU
eXBlIHR5cGUsIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3Rh
bXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cywgV2Vi
Q29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3RlbnRpYWxUYXAsIGJvb2wgaXNHZXN0
dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKLSAgICAgICAg
OiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKLSAgICAgICAgLCBtX3RvdWNo
UG9pbnRzKHRvdWNoUG9pbnRzKQotICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCi0gICAg
ICAgICwgbV9jYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXModHJ1ZSkKLSAgICAgICAgLCBtX2lzUG90
ZW50aWFsVGFwKGlzUG90ZW50aWFsVGFwKQotICAgICAgICAsIG1faXNHZXN0dXJlKGlzR2VzdHVy
ZSkKLSAgICAgICAgLCBtX2dlc3R1cmVTY2FsZShnZXN0dXJlU2NhbGUpCi0gICAgICAgICwgbV9n
ZXN0dXJlUm90YXRpb24oZ2VzdHVyZVJvdGF0aW9uKQotICAgIHsKLSAgICAgICAgQVNTRVJUKHR5
cGUgPT0gVG91Y2hTdGFydCB8fCB0eXBlID09IFRvdWNoTW92ZSB8fCB0eXBlID09IFRvdWNoRW5k
IHx8IHR5cGUgPT0gVG91Y2hDYW5jZWwpOwotICAgIH0KLQotICAgIGNvbnN0IFZlY3RvcjxXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdG91Y2hQ
b2ludHM7IH0KLQotICAgIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9wb3NpdGlvbjsgfQotCi0gICAgYm9vbCBpc1BvdGVudGlhbFRhcCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNQb3RlbnRpYWxUYXA7IH0KLQotICAgIGJvb2wgaXNHZXN0dXJlKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc0dlc3R1cmU7IH0KLSAgICBmbG9hdCBnZXN0dXJlU2NhbGUoKSBjb25zdCB7IHJl
dHVybiBtX2dlc3R1cmVTY2FsZTsgfQotICAgIGZsb2F0IGdlc3R1cmVSb3RhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fZ2VzdHVyZVJvdGF0aW9uOyB9Ci0KLSAgICBib29sIGNhblByZXZlbnROYXRp
dmVHZXN0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzOyB9
Ci0gICAgdm9pZCBzZXRDYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMoYm9vbCBjYW5QcmV2ZW50TmF0
aXZlR2VzdHVyZXMpIHsgbV9jYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMgPSBjYW5QcmV2ZW50TmF0
aXZlR2VzdHVyZXM7IH0KLQotICAgIGJvb2wgYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgpIGNv
bnN0OwotCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJUb3VjaEV2
ZW50Jik7Ci0gICAgCi1wcml2YXRlOgotICAgIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+
IG1fdG91Y2hQb2ludHM7Ci0gICAgCi0gICAgV2ViQ29yZTo6SW50UG9pbnQgbV9wb3NpdGlvbjsK
LSAgICBib29sIG1fY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzIHsgZmFsc2UgfTsKLSAgICBib29s
IG1faXNQb3RlbnRpYWxUYXAgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc0dlc3R1cmUgeyBmYWxz
ZSB9OwotICAgIGZsb2F0IG1fZ2VzdHVyZVNjYWxlIHsgMCB9OwotICAgIGZsb2F0IG1fZ2VzdHVy
ZVJvdGF0aW9uIHsgMCB9OwotfTsKLSNlbHNlCi0vLyBGSVhNRTogTW92ZSB0aGlzIGNsYXNzIHRv
IGl0cyBvd24gaGVhZGVyIGZpbGUuCi0vLyBGSVhNRTogSGF2aW5nICJQbGF0Zm9ybSIgaW4gdGhl
IG5hbWUgbWFrZXMgaXQgc291bmQgbGlrZSB0aGlzIGV2ZW50IGlzIHBsYXRmb3JtLXNwZWNpZmlj
IG9yIGxvdy0KLS8vIGxldmVsIGluIHNvbWUgd2F5LiBUaGF0IGRvZXNuJ3Qgc2VlbSB0byBiZSB0
aGUgY2FzZS4KLWNsYXNzIFdlYlBsYXRmb3JtVG91Y2hQb2ludCB7Ci1wdWJsaWM6Ci0gICAgZW51
bSBUb3VjaFBvaW50U3RhdGUgewotICAgICAgICBUb3VjaFJlbGVhc2VkLAotICAgICAgICBUb3Vj
aFByZXNzZWQsCi0gICAgICAgIFRvdWNoTW92ZWQsCi0gICAgICAgIFRvdWNoU3RhdGlvbmFyeSwK
LSAgICAgICAgVG91Y2hDYW5jZWxsZWQKLSAgICB9OwotCi0gICAgV2ViUGxhdGZvcm1Ub3VjaFBv
aW50KCkgOiBtX3JvdGF0aW9uQW5nbGUoMC4wKSwgbV9mb3JjZSgwLjApIHsgfQotCi0gICAgV2Vi
UGxhdGZvcm1Ub3VjaFBvaW50KHVpbnQzMl90IGlkLCBUb3VjaFBvaW50U3RhdGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBzY3JlZW5Qb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IHBvc2l0aW9uKTsKLQotICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCh1aW50MzJfdCBpZCwgVG91
Y2hQb2ludFN0YXRlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2NyZWVuUG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
cmFkaXVzLCBmbG9hdCByb3RhdGlvbkFuZ2xlID0gMC4wLCBmbG9hdCBmb3JjZSA9IDAuMCk7Ci0g
ICAgCi0gICAgdWludDMyX3QgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9Ci0gICAgVG91Y2hQ
b2ludFN0YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VG91Y2hQb2ludFN0
YXRlPihtX3N0YXRlKTsgfQotCi0gICAgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcmVlblBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zY3JlZW5Qb3NpdGlvbjsgfQotICAgIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0K
LSAgICBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiByYWRpdXMoKSBjb25zdCB7IHJldHVybiBtX3Jh
ZGl1czsgfQotICAgIGZsb2F0IHJvdGF0aW9uQW5nbGUoKSBjb25zdCB7IHJldHVybiBtX3JvdGF0
aW9uQW5nbGU7IH0KLSAgICBmbG9hdCBmb3JjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2U7IH0K
LQotICAgIHZvaWQgc2V0U3RhdGUoVG91Y2hQb2ludFN0YXRlIHN0YXRlKSB7IG1fc3RhdGUgPSBz
dGF0ZTsgfQotCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3Rh
dGljIE9wdGlvbmFsPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gZGVjb2RlKElQQzo6RGVjb2RlciYp
OwotCi1wcml2YXRlOgotICAgIHVpbnQzMl90IG1faWQ7Ci0gICAgdWludDMyX3QgbV9zdGF0ZTsK
LSAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3NjcmVlblBvc2l0aW9uOwotICAgIFdlYkNvcmU6Oklu
dFBvaW50IG1fcG9zaXRpb247Ci0gICAgV2ViQ29yZTo6SW50U2l6ZSBtX3JhZGl1czsKLSAgICBm
bG9hdCBtX3JvdGF0aW9uQW5nbGU7Ci0gICAgZmxvYXQgbV9mb3JjZTsKLX07Ci0KLS8vIEZJWE1F
OiBNb3ZlIHRoaXMgY2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYlRvdWNo
RXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewotcHVibGljOgotICAgIFdlYlRvdWNoRXZlbnQoKSB7
IH0KLSAgICBXZWJUb3VjaEV2ZW50KFR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+
JiYsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Ci0KLSAgICBjb25z
dCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMoKSBjb25zdCB7IHJl
dHVybiBtX3RvdWNoUG9pbnRzOyB9Ci0KLSAgICBib29sIGFsbFRvdWNoUG9pbnRzQXJlUmVsZWFz
ZWQoKSBjb25zdDsKLQotICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAg
IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2Vi
VG91Y2hFdmVudCYpOwotICAKLXByaXZhdGU6Ci0gICAgc3RhdGljIGJvb2wgaXNUb3VjaEV2ZW50
VHlwZShUeXBlKTsKLQotICAgIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+IG1fdG91Y2hQ
b2ludHM7Ci19OwotCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNlbmRpZiAvLyBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogbmFtZXNwYWNl
IFdURiB7CkBAIC01MDgsMjMgKzEyOCw0IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+IHsKICAgICA+OwogfTsKIAotdGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbj4gewotICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6
QnV0dG9uLAotICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbjo6TGVmdEJ1dHRv
biwKLSAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246Ok1pZGRsZUJ1dHRvbiwK
LSAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246OlJpZ2h0QnV0dG9uLAotICAg
ICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbjo6Tm9CdXR0b24KLSAgICA+OwotfTsK
LQotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5
bnRoZXRpY0NsaWNrVHlwZT4gewotICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAg
ICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBlLAotICAgICAgICBX
ZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZTo6Tm9UYXAsCi0gICAgICAg
IFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBlOjpPbmVGaW5nZXJUYXAs
Ci0gICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBlOjpUd29G
aW5nZXJUYXAKLSAgICA+OwotfTsKLQogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcAppbmRleCA4YTZlNDE4Njg4MTgxYWE3ZTM2
NjNkMDUzODcwZGU0YmUwMjhjYmFiLi4yZGUyNjAxNTU5NWEzODNmYjNiMTdlYWY3NDZkMjk2ZjZl
OTk4ODdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudENvbnZlcnNp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAK
QEAgLTI2LDcgKzI2LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViRXZl
bnRDb252ZXJzaW9uLmgiCiAKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYktl
eWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiV2Vi
VG91Y2hFdmVudC5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZlbnQuaCIKIAogI2lmIEVOQUJMRShN
QUNfR0VTVFVSRV9FVkVOVFMpCiAjaW5jbHVkZSAiV2ViR2VzdHVyZUV2ZW50LmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwCmluZGV4IGNjY2I1NjA0MThmMzJmYWQ0
MDU4N2FjMDgzYjk1ZjM5OGViMTM5OWQuLmJjNDMyMjI4NjQ4NGU2YWZkZDQ5MzUzZmFlNmE4ZmIz
Y2Q1ZTY2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwCkBA
IC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldl
YkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2V5Ym9hcmRFdmVudC5oIgogCiAjaW5jbHVkZSAiV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9LZXlwcmVzc0NvbW1hbmQu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjgw
MjlkYzQ2ZGMyNTMxZjVjYzIzNDA5ZGM2ZDJmMTFkNWEzYjQ5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5oCkBAIC0wLDAgKzEsMTExIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IkVkaXRpbmdSYW5nZS5oIgorI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9Db21wb3NpdGlvblVuZGVybGluZS5oPgorCisjaWYgVVNFKEFQUEtJVCkKKyNpbmNsdWRlIDxX
ZWJDb3JlL0tleXByZXNzQ29tbWFuZC5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJLZXlib2FyZEV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKK3B1YmxpYzoKKyAg
ICBXZWJLZXlib2FyZEV2ZW50KCk7CisgICAgfldlYktleWJvYXJkRXZlbnQoKTsKKworI2lmIFVT
RShBUFBLSVQpCisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJv
b2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0Nv
bW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1L
ZXksIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZWxpZiBQTEFU
Rk9STShHVEspCisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5
SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxL
ZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBPcHRpb25hbDxWZWN0b3I8V2ViQ29y
ZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+PiYmLCBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+JiYsIFZl
Y3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNLZXlwYWQsIE9wdGlvblNldDxNb2RpZmll
cj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcm
IHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBj
b25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGlu
dCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGhhbmRsZWRCeUlu
cHV0TWV0aG9kLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3Rl
bUtleSwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKKyNlbGlmIFVT
RShMSUJXUEUpCisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5
SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxL
ZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBPcHRpb25hbDxWZWN0b3I8V2ViQ29y
ZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+PiYmLCBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+JiYsIGJv
b2wgaXNLZXlwYWQsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Cisj
ZWxzZQorICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5n
JiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtl
eUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlz
QXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0PE1v
ZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKKyNlbmRpZgorCisgICAgY29uc3QgU3RyaW5n
JiB0ZXh0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0OyB9CisgICAgY29uc3QgU3RyaW5nJiB1bm1v
ZGlmaWVkVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5tb2RpZmllZFRleHQ7IH0KKyAgICBjb25z
dCBTdHJpbmcmIGtleSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5OyB9CisgICAgY29uc3QgU3RyaW5n
JiBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlOyB9CisgICAgY29uc3QgU3RyaW5nJiBrZXlJ
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9rZXlJZGVudGlmaWVyOyB9CisgICAgaW50MzJf
dCB3aW5kb3dzVmlydHVhbEtleUNvZGUoKSBjb25zdCB7IHJldHVybiBtX3dpbmRvd3NWaXJ0dWFs
S2V5Q29kZTsgfQorICAgIGludDMyX3QgbmF0aXZlVmlydHVhbEtleUNvZGUoKSBjb25zdCB7IHJl
dHVybiBtX25hdGl2ZVZpcnR1YWxLZXlDb2RlOyB9CisgICAgaW50MzJfdCBtYWNDaGFyQ29kZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWFjQ2hhckNvZGU7IH0KKyNpZiBVU0UoQVBQS0lUKSB8fCBVU0Uo
VUlLSVRfS0VZQk9BUkRfQURESVRJT05TKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUp
CisgICAgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxl
ZEJ5SW5wdXRNZXRob2Q7IH0KKyNlbmRpZgorI2lmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQ
RSkKKyAgICBjb25zdCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxp
bmU+PiYgcHJlZWRpdFVuZGVybGluZXMoKSBjb25zdCB7IHJldHVybiBtX3ByZWVkaXRVbmRlcmxp
bmVzOyB9CisgICAgY29uc3QgT3B0aW9uYWw8RWRpdGluZ1JhbmdlPiYgcHJlZWRpdFNlbGVjdGlv
blJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9wcmVlZGl0U2VsZWN0aW9uUmFuZ2U7IH0KKyNlbmRp
ZgorI2lmIFVTRShBUFBLSVQpCisgICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29t
bWFuZD4mIGNvbW1hbmRzKCkgY29uc3QgeyByZXR1cm4gbV9jb21tYW5kczsgfQorI2VsaWYgUExB
VEZPUk0oR1RLKQorICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb21tYW5kcygpIGNvbnN0IHsg
cmV0dXJuIG1fY29tbWFuZHM7IH0KKyNlbmRpZgorICAgIGJvb2wgaXNBdXRvUmVwZWF0KCkgY29u
c3QgeyByZXR1cm4gbV9pc0F1dG9SZXBlYXQ7IH0KKyAgICBib29sIGlzS2V5cGFkKCkgY29uc3Qg
eyByZXR1cm4gbV9pc0tleXBhZDsgfQorICAgIGJvb2wgaXNTeXN0ZW1LZXkoKSBjb25zdCB7IHJl
dHVybiBtX2lzU3lzdGVtS2V5OyB9CisKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBj
b25zdDsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKElQQzo6RGVj
b2RlciYsIFdlYktleWJvYXJkRXZlbnQmKTsKKworICAgIHN0YXRpYyBib29sIGlzS2V5Ym9hcmRF
dmVudFR5cGUoVHlwZSk7CisKK3ByaXZhdGU6CisgICAgU3RyaW5nIG1fdGV4dDsKKyAgICBTdHJp
bmcgbV91bm1vZGlmaWVkVGV4dDsKKyAgICBTdHJpbmcgbV9rZXk7CisgICAgU3RyaW5nIG1fY29k
ZTsKKyAgICBTdHJpbmcgbV9rZXlJZGVudGlmaWVyOworICAgIGludDMyX3QgbV93aW5kb3dzVmly
dHVhbEtleUNvZGUgeyAwIH07CisgICAgaW50MzJfdCBtX25hdGl2ZVZpcnR1YWxLZXlDb2RlIHsg
MCB9OworICAgIGludDMyX3QgbV9tYWNDaGFyQ29kZSB7IDAgfTsKKyNpZiBVU0UoQVBQS0lUKSB8
fCBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShM
SUJXUEUpCisgICAgYm9vbCBtX2hhbmRsZWRCeUlucHV0TWV0aG9kIHsgZmFsc2UgfTsKKyNlbmRp
ZgorI2lmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKKyAgICBPcHRpb25hbDxWZWN0b3I8
V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+PiBtX3ByZWVkaXRVbmRlcmxpbmVzOworICAg
IE9wdGlvbmFsPEVkaXRpbmdSYW5nZT4gbV9wcmVlZGl0U2VsZWN0aW9uUmFuZ2U7CisjZW5kaWYK
KyNpZiBVU0UoQVBQS0lUKQorICAgIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IG1f
Y29tbWFuZHM7CisjZWxpZiBQTEFURk9STShHVEspCisgICAgVmVjdG9yPFN0cmluZz4gbV9jb21t
YW5kczsKKyNlbmRpZgorICAgIGJvb2wgbV9pc0F1dG9SZXBlYXQgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9pc0tleXBhZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzU3lzdGVtS2V5IHsgZmFsc2Ug
fTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3Vz
ZUV2ZW50LmNwcAppbmRleCA3YjI3MGRjM2RiZTk4ZjYyOTBiODAxNzMzZWZmMzlmOTFhZWU0YTY5
Li44OGJkNTY0NzM0MzlhNzFmNGNiZGViMzBhYTQzN2JjOTRiMGZhMWM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYk1vdXNl
RXZlbnQuaCIKIAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTlhMWI1ZmE4NmI2OGM4NDY0ZDcz
MjcyZjEyMjJlOTA2MWJmODk1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYk1vdXNlRXZlbnQuaApAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKy8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkg
bW92ZSB0byBtYWtlaW5nIHRoZSBXZWJDb3JlL1BsYXRmb3JtRm9vRXZlbnRzIHRyaXZpYWwgY2xh
c3NlcyBzbyB0aGF0CisvLyB3ZSBjYW4gdXNlIHRoZW0gYXMgdGhlIGV2ZW50IHR5cGUuCisKKyNp
bmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk1vdXNlRXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQg
eworcHVibGljOgorICAgIGVudW0gQnV0dG9uIHsKKyAgICAgICAgTGVmdEJ1dHRvbiA9IDAsCisg
ICAgICAgIE1pZGRsZUJ1dHRvbiwKKyAgICAgICAgUmlnaHRCdXR0b24sCisgICAgICAgIE5vQnV0
dG9uID0gLTIKKyAgICB9OworCisgICAgZW51bSBTeW50aGV0aWNDbGlja1R5cGUgeyBOb1RhcCwg
T25lRmluZ2VyVGFwLCBUd29GaW5nZXJUYXAgfTsKKworICAgIFdlYk1vdXNlRXZlbnQoKTsKKwor
I2lmIFBMQVRGT1JNKE1BQykKKyAgICBXZWJNb3VzZUV2ZW50KFR5cGUsIEJ1dHRvbiwgdW5zaWdu
ZWQgc2hvcnQgYnV0dG9ucywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uSW5WaWV3
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwg
ZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBPcHRpb25TZXQ8TW9k
aWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tU
eXBlID0gTm9UYXAsIGludCBldmVudE51bWJlciA9IC0xLCBpbnQgbWVudVR5cGUgPSAwKTsKKyNl
bHNlCisgICAgV2ViTW91c2VFdmVudChUeXBlLCBCdXR0b24sIHVuc2lnbmVkIHNob3J0IGJ1dHRv
bnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbkluVmlldywgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwg
ZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRp
bWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1Rh
cCk7CisjZW5kaWYKKworICAgIEJ1dHRvbiBidXR0b24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQorICAgIHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMoKSBj
b25zdCB7IHJldHVybiBtX2J1dHRvbnM7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
cG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9IC8vIFJlbGF0aXZlIHRvIHRo
ZSB2aWV3LgorICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fZ2xvYmFsUG9zaXRpb247IH0KKyAgICBmbG9hdCBkZWx0YVgoKSBjb25z
dCB7IHJldHVybiBtX2RlbHRhWDsgfQorICAgIGZsb2F0IGRlbHRhWSgpIGNvbnN0IHsgcmV0dXJu
IG1fZGVsdGFZOyB9CisgICAgZmxvYXQgZGVsdGFaKCkgY29uc3QgeyByZXR1cm4gbV9kZWx0YVo7
IH0KKyAgICBpbnQzMl90IGNsaWNrQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWNrQ291bnQ7
IH0KKyNpZiBQTEFURk9STShNQUMpCisgICAgaW50MzJfdCBldmVudE51bWJlcigpIGNvbnN0IHsg
cmV0dXJuIG1fZXZlbnROdW1iZXI7IH0KKyAgICBpbnQzMl90IG1lbnVUeXBlRm9yRXZlbnQoKSBj
b25zdCB7IHJldHVybiBtX21lbnVUeXBlRm9yRXZlbnQ7IH0KKyNlbmRpZgorICAgIGRvdWJsZSBm
b3JjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2U7IH0KKyAgICBTeW50aGV0aWNDbGlja1R5cGUg
c3ludGhldGljQ2xpY2tUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U3ludGhldGlj
Q2xpY2tUeXBlPihtX3N5bnRoZXRpY0NsaWNrVHlwZSk7IH0KKworICAgIHZvaWQgZW5jb2RlKElQ
Qzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViTW91c2VFdmVudCYpOworCitwcml2YXRlOgorICAgIHN0
YXRpYyBib29sIGlzTW91c2VFdmVudFR5cGUoVHlwZSk7CisKKyAgICB1aW50MzJfdCBtX2J1dHRv
biB7IHN0YXRpY19jYXN0PHVpbnQzMl90PihOb0J1dHRvbikgfTsKKyAgICB1bnNpZ25lZCBzaG9y
dCBtX2J1dHRvbnMgeyAwIH07CisgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9wb3NpdGlvbjsgLy8g
UmVsYXRpdmUgdG8gdGhlIHZpZXcuCisgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9nbG9iYWxQb3Np
dGlvbjsKKyAgICBmbG9hdCBtX2RlbHRhWCB7IDAgfTsKKyAgICBmbG9hdCBtX2RlbHRhWSB7IDAg
fTsKKyAgICBmbG9hdCBtX2RlbHRhWiB7IDAgfTsKKyAgICBpbnQzMl90IG1fY2xpY2tDb3VudCB7
IDAgfTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgaW50MzJfdCBtX2V2ZW50TnVtYmVyIHsgLTEg
fTsKKyAgICBpbnQzMl90IG1fbWVudVR5cGVGb3JFdmVudCB7IDAgfTsKKyNlbmRpZgorICAgIGRv
dWJsZSBtX2ZvcmNlIHsgMCB9OworICAgIHVpbnQzMl90IG1fc3ludGhldGljQ2xpY2tUeXBlIHsg
Tm9UYXAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1
dHRvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYktpdDo6
V2ViTW91c2VFdmVudDo6QnV0dG9uLAorICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1
dHRvbjo6TGVmdEJ1dHRvbiwKKyAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246
Ok1pZGRsZUJ1dHRvbiwKKyAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246OlJp
Z2h0QnV0dG9uLAorICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbjo6Tm9CdXR0
b24KKyAgICA+OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6Oldl
Yk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tU
eXBlLAorICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZTo6
Tm9UYXAsCisgICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBl
OjpPbmVGaW5nZXJUYXAsCisgICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGlj
Q2xpY2tUeXBlOjpUd29GaW5nZXJUYXAKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQbGF0Zm9ybVRvdWNoUG9pbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGxhdGZvcm1Ub3VjaFBvaW50LmNwcAppbmRl
eCA0NWEyMGU5YzM0ZTg3ODMzYzc2MDBjMDM5NTY2ZjBlOTk0MGVmOWZmLi5jZTc0YWJmZjkxY2M2
OWNiMDkyODQzNDkzMjRmYTQ4MDhhNjNmZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQbGF0Zm9ybVRvdWNoUG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKICAqLwogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJUb3Vj
aEV2ZW50LmgiCiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAhUExBVEZPUk0oSU9TX0ZB
TUlMWSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcAppbmRleCA4MmFkYTc3
ZjU4NzEzNzkwMTI3OGI4ODgyMThlOWJiZDBmM2U3YzBhLi42NTI0YTE5OWUwMmMzMGUxMmQ0NTNl
NTMwYmY3ODk2MjA1OTgyYmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJU
b3VjaEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNw
cApAQCAtMjQsMTQgKzI0LDE2IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgogCi0jaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisKIFdlYlRvdWNoRXZlbnQ6OldlYlRv
dWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2lu
dD4mJiB0b3VjaFBvaW50cywgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQog
ICAgICwgbV90b3VjaFBvaW50cyhXVEZNb3ZlKHRvdWNoUG9pbnRzKSkKQEAgLTYxLDcgKzYzLDE5
IEBAIGJvb2wgV2ViVG91Y2hFdmVudDo6aXNUb3VjaEV2ZW50VHlwZShUeXBlIHR5cGUpCiB7CiAg
ICAgcmV0dXJuIHR5cGUgPT0gVG91Y2hTdGFydCB8fCB0eXBlID09IFRvdWNoTW92ZSB8fCB0eXBl
ID09IFRvdWNoRW5kIHx8IHR5cGUgPT0gVG91Y2hDYW5jZWw7CiB9Ci0gICAgCisKKyNlbmRpZiAv
LyAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworYm9vbCBXZWJUb3VjaEV2ZW50OjphbGxUb3VjaFBv
aW50c0FyZVJlbGVhc2VkKCkgY29uc3QKK3sKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHRvdWNoUG9p
bnQgOiB0b3VjaFBvaW50cygpKSB7CisgICAgICAgIGlmICh0b3VjaFBvaW50LnN0YXRlKCkgIT0g
V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkICYmIHRvdWNoUG9pbnQuc3RhdGUo
KSAhPSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoQ2FuY2VsbGVkKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpICYmICFQTEFURk9S
TShJT1NfRkFNSUxZKQorI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJUb3VjaEV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc5YjA0OWM1ZWQ3YzAzN2JjODNlMzU2
NmExZjQ3MGI0YTU4NzZjNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlRvdWNoRXZlbnQuaApAQCAtMCwwICsxLDIxMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvSW50UG9pbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKy8vIEZJWE1FOiBIYXZp
bmcgIlBsYXRmb3JtIiBpbiB0aGUgbmFtZSBtYWtlcyBpdCBzb3VuZCBsaWtlIHRoaXMgZXZlbnQg
aXMgcGxhdGZvcm0tc3BlY2lmaWMgb3IKKy8vIGxvdy1sZXZlbCBpbiBzb21lIHdheS4gVGhhdCBk
b2Vzbid0IHNlZW0gdG8gYmUgdGhlIGNhc2UuCitjbGFzcyBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQg
eworcHVibGljOgorICAgIGVudW0gVG91Y2hQb2ludFN0YXRlIHsKKyAgICAgICAgVG91Y2hSZWxl
YXNlZCwKKyAgICAgICAgVG91Y2hQcmVzc2VkLAorICAgICAgICBUb3VjaE1vdmVkLAorICAgICAg
ICBUb3VjaFN0YXRpb25hcnksCisgICAgICAgIFRvdWNoQ2FuY2VsbGVkCisgICAgfTsKKworICAg
IGVudW0gY2xhc3MgVG91Y2hUeXBlIHsKKyAgICAgICAgRGlyZWN0LAorICAgICAgICBTdHlsdXMK
KyAgICB9OworCisgICAgV2ViUGxhdGZvcm1Ub3VjaFBvaW50KCkgPSBkZWZhdWx0OworICAgIFdl
YlBsYXRmb3JtVG91Y2hQb2ludCh1bnNpZ25lZCBpZGVudGlmaWVyLCBXZWJDb3JlOjpJbnRQb2lu
dCBsb2NhdGlvbiwgVG91Y2hQb2ludFN0YXRlIHBoYXNlKQorICAgICAgICA6IG1faWRlbnRpZmll
cihpZGVudGlmaWVyKQorICAgICAgICAsIG1fbG9jYXRpb24obG9jYXRpb24pCisgICAgICAgICwg
bV9waGFzZShwaGFzZSkKKyAgICB7CisgICAgfQorCisgICAgdW5zaWduZWQgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIFdlYkNvcmU6OkludFBvaW50IGxv
Y2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhdGlvbjsgfQorICAgIFRvdWNoUG9pbnRTdGF0
ZSBwaGFzZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRvdWNoUG9pbnRTdGF0ZT4obV9w
aGFzZSk7IH0KKyAgICBUb3VjaFBvaW50U3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBwaGFz
ZSgpOyB9CisKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKKyAgICB2b2lkIHNldFJhZGl1
c1goZG91YmxlIHJhZGl1c1gpIHsgbV9yYWRpdXNYID0gcmFkaXVzWDsgfQorICAgIGRvdWJsZSBy
YWRpdXNYKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXNYOyB9CisgICAgdm9pZCBzZXRSYWRpdXNZ
KGRvdWJsZSByYWRpdXNZKSB7IG1fcmFkaXVzWSA9IHJhZGl1c1k7IH0KKyAgICBkb3VibGUgcmFk
aXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaXVzWTsgfQorICAgIHZvaWQgc2V0Um90YXRpb25B
bmdsZShkb3VibGUgcm90YXRpb25BbmdsZSkgeyBtX3JvdGF0aW9uQW5nbGUgPSByb3RhdGlvbkFu
Z2xlOyB9CisgICAgZG91YmxlIHJvdGF0aW9uQW5nbGUoKSBjb25zdCB7IHJldHVybiBtX3JvdGF0
aW9uQW5nbGU7IH0KKyAgICB2b2lkIHNldEZvcmNlKGRvdWJsZSBmb3JjZSkgeyBtX2ZvcmNlID0g
Zm9yY2U7IH0KKyAgICBkb3VibGUgZm9yY2UoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlOyB9Cisg
ICAgdm9pZCBzZXRBbHRpdHVkZUFuZ2xlKGRvdWJsZSBhbHRpdHVkZUFuZ2xlKSB7IG1fYWx0aXR1
ZGVBbmdsZSA9IGFsdGl0dWRlQW5nbGU7IH0KKyAgICBkb3VibGUgYWx0aXR1ZGVBbmdsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fYWx0aXR1ZGVBbmdsZTsgfQorICAgIHZvaWQgc2V0QXppbXV0aEFuZ2xl
KGRvdWJsZSBhemltdXRoQW5nbGUpIHsgbV9hemltdXRoQW5nbGUgPSBhemltdXRoQW5nbGU7IH0K
KyAgICBkb3VibGUgYXppbXV0aEFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9hemltdXRoQW5nbGU7
IH0KKyAgICB2b2lkIHNldFRvdWNoVHlwZShUb3VjaFR5cGUgdG91Y2hUeXBlKSB7IG1fdG91Y2hU
eXBlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRvdWNoVHlwZSk7IH0KKyAgICBUb3VjaFR5cGUg
dG91Y2hUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VG91Y2hUeXBlPihtX3RvdWNo
VHlwZSk7IH0KKyNlbmRpZgorCisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7
CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gZGVjb2RlKElQQzo6
RGVjb2RlciYpOworCitwcml2YXRlOgorICAgIHVuc2lnbmVkIG1faWRlbnRpZmllciB7IDAgfTsK
KyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2xvY2F0aW9uOworICAgIHVpbnQzMl90IG1fcGhhc2Ug
eyBUb3VjaFJlbGVhc2VkIH07CisjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCisgICAgZG91
YmxlIG1fcmFkaXVzWCB7IDAgfTsKKyAgICBkb3VibGUgbV9yYWRpdXNZIHsgMCB9OworICAgIGRv
dWJsZSBtX3JvdGF0aW9uQW5nbGUgeyAwIH07CisgICAgZG91YmxlIG1fZm9yY2UgeyAwIH07Cisg
ICAgZG91YmxlIG1fYWx0aXR1ZGVBbmdsZSB7IDAgfTsKKyAgICBkb3VibGUgbV9hemltdXRoQW5n
bGUgeyAwIH07CisgICAgdWludDMyX3QgbV90b3VjaFR5cGUgeyBzdGF0aWNfY2FzdDx1aW50MzJf
dD4oVG91Y2hUeXBlOjpEaXJlY3QpIH07CisjZW5kaWYKK307CisKK2NsYXNzIFdlYlRvdWNoRXZl
bnQgOiBwdWJsaWMgV2ViRXZlbnQgeworcHVibGljOgorICAgIFdlYlRvdWNoRXZlbnQoKSA9IGRl
ZmF1bHQ7CisgICAgV2ViVG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBPcHRpb25TZXQ8
TW9kaWZpZXI+IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBjb25zdCBWZWN0b3I8V2Vi
UGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0
aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlzR2VzdHVyZSwgZmxvYXQgZ2VzdHVyZVNj
YWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCisgICAgICAgIDogV2ViRXZlbnQodHlwZSwgbW9k
aWZpZXJzLCB0aW1lc3RhbXApCisgICAgICAgICwgbV90b3VjaFBvaW50cyh0b3VjaFBvaW50cykK
KyAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQorICAgICAgICAsIG1fY2FuUHJldmVudE5h
dGl2ZUdlc3R1cmVzKHRydWUpCisgICAgICAgICwgbV9pc1BvdGVudGlhbFRhcChpc1BvdGVudGlh
bFRhcCkKKyAgICAgICAgLCBtX2lzR2VzdHVyZShpc0dlc3R1cmUpCisgICAgICAgICwgbV9nZXN0
dXJlU2NhbGUoZ2VzdHVyZVNjYWxlKQorICAgICAgICAsIG1fZ2VzdHVyZVJvdGF0aW9uKGdlc3R1
cmVSb3RhdGlvbikKKyAgICB7CisgICAgICAgIEFTU0VSVCh0eXBlID09IFRvdWNoU3RhcnQgfHwg
dHlwZSA9PSBUb3VjaE1vdmUgfHwgdHlwZSA9PSBUb3VjaEVuZCB8fCB0eXBlID09IFRvdWNoQ2Fu
Y2VsKTsKKyAgICB9CisKKyAgICBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYg
dG91Y2hQb2ludHMoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CisKKyAgICBXZWJD
b3JlOjpJbnRQb2ludCBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0KKwor
ICAgIGJvb2wgaXNQb3RlbnRpYWxUYXAoKSBjb25zdCB7IHJldHVybiBtX2lzUG90ZW50aWFsVGFw
OyB9CisKKyAgICBib29sIGlzR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNHZXN0dXJlOyB9
CisgICAgZmxvYXQgZ2VzdHVyZVNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9nZXN0dXJlU2NhbGU7
IH0KKyAgICBmbG9hdCBnZXN0dXJlUm90YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2dlc3R1cmVS
b3RhdGlvbjsgfQorCisgICAgYm9vbCBjYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMoKSBjb25zdCB7
IHJldHVybiBtX2NhblByZXZlbnROYXRpdmVHZXN0dXJlczsgfQorICAgIHZvaWQgc2V0Q2FuUHJl
dmVudE5hdGl2ZUdlc3R1cmVzKGJvb2wgY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzKSB7IG1fY2Fu
UHJldmVudE5hdGl2ZUdlc3R1cmVzID0gY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzOyB9CisKKyAg
ICBib29sIGFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSBjb25zdDsKKworICAgIHZvaWQgZW5j
b2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViVG91Y2hFdmVudCYpOworICAgIAorcHJpdmF0
ZToKKyAgICBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiBtX3RvdWNoUG9pbnRzOworICAg
IAorICAgIFdlYkNvcmU6OkludFBvaW50IG1fcG9zaXRpb247CisgICAgYm9vbCBtX2NhblByZXZl
bnROYXRpdmVHZXN0dXJlcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzUG90ZW50aWFsVGFwIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1faXNHZXN0dXJlIHsgZmFsc2UgfTsKKyAgICBmbG9hdCBtX2dl
c3R1cmVTY2FsZSB7IDAgfTsKKyAgICBmbG9hdCBtX2dlc3R1cmVSb3RhdGlvbiB7IDAgfTsKK307
CisKKyNlbHNlIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQorCitjbGFzcyBXZWJQbGF0Zm9ybVRv
dWNoUG9pbnQgeworcHVibGljOgorICAgIGVudW0gVG91Y2hQb2ludFN0YXRlIHsKKyAgICAgICAg
VG91Y2hSZWxlYXNlZCwKKyAgICAgICAgVG91Y2hQcmVzc2VkLAorICAgICAgICBUb3VjaE1vdmVk
LAorICAgICAgICBUb3VjaFN0YXRpb25hcnksCisgICAgICAgIFRvdWNoQ2FuY2VsbGVkCisgICAg
fTsKKworICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCgpCisgICAgICAgIDogbV9yb3RhdGlvbkFu
Z2xlKDAuMCksIG1fZm9yY2UoMC4wKSB7IH0KKworICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCh1
aW50MzJfdCBpZCwgVG91Y2hQb2ludFN0YXRlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Ny
ZWVuUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbik7CisKKyAgICBX
ZWJQbGF0Zm9ybVRvdWNoUG9pbnQodWludDMyX3QgaWQsIFRvdWNoUG9pbnRTdGF0ZSwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIHNjcmVlblBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHJhZGl1cywgZmxvYXQgcm90YXRp
b25BbmdsZSA9IDAuMCwgZmxvYXQgZm9yY2UgPSAwLjApOworICAgIAorICAgIHVpbnQzMl90IGlk
KCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRvdWNoUG9pbnRTdGF0ZT4obV9zdGF0ZSk7IH0KKwor
ICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JlZW5Qb3NpdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fc2NyZWVuUG9zaXRpb247IH0KKyAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9z
aXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CisgICAgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgcmFkaXVzKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXM7IH0KKyAgICBmbG9hdCBy
b3RhdGlvbkFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9yb3RhdGlvbkFuZ2xlOyB9CisgICAgZmxv
YXQgZm9yY2UoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlOyB9CisKKyAgICB2b2lkIHNldFN0YXRl
KFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSkgeyBtX3N0YXRlID0gc3RhdGU7IH0KKworICAgIHZvaWQg
ZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJQbGF0
Zm9ybVRvdWNoUG9pbnQ+IGRlY29kZShJUEM6OkRlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICB1
aW50MzJfdCBtX2lkOworICAgIHVpbnQzMl90IG1fc3RhdGU7CisgICAgV2ViQ29yZTo6SW50UG9p
bnQgbV9zY3JlZW5Qb3NpdGlvbjsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3Bvc2l0aW9uOwor
ICAgIFdlYkNvcmU6OkludFNpemUgbV9yYWRpdXM7CisgICAgZmxvYXQgbV9yb3RhdGlvbkFuZ2xl
OworICAgIGZsb2F0IG1fZm9yY2U7Cit9OworCitjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVibGlj
IFdlYkV2ZW50IHsKK3B1YmxpYzoKKyAgICBXZWJUb3VjaEV2ZW50KCkgeyB9CisgICAgV2ViVG91
Y2hFdmVudChUeXBlLCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmLCBPcHRpb25TZXQ8
TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOworCisgICAgY29uc3QgVmVjdG9yPFdlYlBs
YXRmb3JtVG91Y2hQb2ludD4mIHRvdWNoUG9pbnRzKCkgY29uc3QgeyByZXR1cm4gbV90b3VjaFBv
aW50czsgfQorCisgICAgYm9vbCBhbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkgY29uc3Q7CisK
KyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYlRvdWNoRXZlbnQmKTsK
KworcHJpdmF0ZToKKyAgICBzdGF0aWMgYm9vbCBpc1RvdWNoRXZlbnRUeXBlKFR5cGUpOworCisg
ICAgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gbV90b3VjaFBvaW50czsKK307CisKKyNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQorI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVO
VFMpCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2
ZW50LmNwcAppbmRleCAxMTYwZTc2MWUzYmVkNDIzZWRlZTc3ZWZhOGQ0ZWEwZTY1YmNkOTE3Li45
ZDcyNWVkYjY3MjE0Y2RjMWM4NTY0ZmJmYTFjYzE0OGIyMjlkNzdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJXaGVlbEV2ZW50LmNwcApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZl
bnQuaCIKIAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCkBAIC0zOSwxMSAr
MzksNiBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50
UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludAogICAgICwgbV9kZWx0YShkZWx0YSkKICAg
ICAsIG1fd2hlZWxUaWNrcyh3aGVlbFRpY2tzKQogICAgICwgbV9ncmFudWxhcml0eShncmFudWxh
cml0eSkKLSAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQotI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgICwgbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKGZhbHNlKQot
ICAgICwgbV9zY3JvbGxDb3VudCgwKQotI2VuZGlmCiB7CiAgICAgQVNTRVJUKGlzV2hlZWxFdmVu
dFR5cGUodHlwZSkpOwogfQpAQCAtNTYsOSArNTEsOSBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVl
bEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2lu
dAogICAgICwgbV9kZWx0YShkZWx0YSkKICAgICAsIG1fd2hlZWxUaWNrcyh3aGVlbFRpY2tzKQog
ICAgICwgbV9ncmFudWxhcml0eShncmFudWxhcml0eSkKLSAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0
ZWRGcm9tRGV2aWNlKGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkKICAgICAsIG1fcGhhc2Uo
cGhhc2UpCiAgICAgLCBtX21vbWVudHVtUGhhc2UobW9tZW50dW1QaGFzZSkKKyAgICAsIG1fZGly
ZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkKICAg
ICAsIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyhoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFz
KQogICAgICwgbV9zY3JvbGxDb3VudChzY3JvbGxDb3VudCkKICAgICAsIG1fdW5hY2NlbGVyYXRl
ZFNjcm9sbGluZ0RlbHRhKHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSkKQEAgLTczLDcgKzY4
LDYgQEAgV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBv
aW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKICAgICAsIG1fZGVsdGEoZGVsdGEpCiAgICAg
LCBtX3doZWVsVGlja3Mod2hlZWxUaWNrcykKICAgICAsIG1fZ3JhbnVsYXJpdHkoZ3JhbnVsYXJp
dHkpCi0gICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZShmYWxzZSkKICAgICAsIG1f
cGhhc2UocGhhc2UpCiAgICAgLCBtX21vbWVudHVtUGhhc2UobW9tZW50dW1QaGFzZSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDk2NzA2NDAzZmNjNzA5
NzY0MzAyZmZmMTQ1OTAxZmI0MWNjYzFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViV2hlZWxFdmVudC5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYldoZWVsRXZlbnQgOiBwdWJsaWMg
V2ViRXZlbnQgeworcHVibGljOgorICAgIGVudW0gR3JhbnVsYXJpdHkgeworICAgICAgICBTY3Jv
bGxCeVBhZ2VXaGVlbEV2ZW50LAorICAgICAgICBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudAorICAg
IH07CisKKyAgICBlbnVtIFBoYXNlIHsKKyAgICAgICAgUGhhc2VOb25lICAgICAgICA9IDAsCisg
ICAgICAgIFBoYXNlQmVnYW4gICAgICAgPSAxIDw8IDAsCisgICAgICAgIFBoYXNlU3RhdGlvbmFy
eSAgPSAxIDw8IDEsCisgICAgICAgIFBoYXNlQ2hhbmdlZCAgICAgPSAxIDw8IDIsCisgICAgICAg
IFBoYXNlRW5kZWQgICAgICAgPSAxIDw8IDMsCisgICAgICAgIFBoYXNlQ2FuY2VsbGVkICAgPSAx
IDw8IDQsCisgICAgICAgIFBoYXNlTWF5QmVnaW4gICAgPSAxIDw8IDUsCisgICAgfTsKKworICAg
IFdlYldoZWVsRXZlbnQoKSA9IGRlZmF1bHQ7CisKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBPcHRpb25TZXQ8TW9k
aWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdl
YldoZWVsRXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVs
YXJpdHksIGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSwgUGhhc2UgbW9t
ZW50dW1QaGFzZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3Jv
bGxDb3VudCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5n
RGVsdGEsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZWxpZiBQ
TEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCisgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBn
bG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwg
R3JhbnVsYXJpdHksIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Cisj
ZW5kaWYKKworICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9wb3NpdGlvbjsgfQorICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxQb3NpdGlvbjsgfQorICAgIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSBkZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsdGE7IH0KKyAgICBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxUaWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fd2hl
ZWxUaWNrczsgfQorICAgIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8R3JhbnVsYXJpdHk+KG1fZ3JhbnVsYXJpdHkpOyB9CisgICAgYm9vbCBkaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvbkludmVy
dGVkRnJvbURldmljZTsgfQorICAgIFBoYXNlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8UGhhc2U+KG1fcGhhc2UpOyB9CisgICAgUGhhc2UgbW9tZW50dW1QaGFzZSgpIGNvbnN0
IHsgcmV0dXJuIHN0YXRpY19jYXN0PFBoYXNlPihtX21vbWVudHVtUGhhc2UpOyB9CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOyB9CisgICAgdWludDMyX3Qgc2Ny
b2xsQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbENvdW50OyB9CisgICAgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEoKSBjb25zdCB7IHJl
dHVybiBtX3VuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YTsgfQorI2VuZGlmCisKKyAgICB2b2lk
IGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVU
VVJOIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYldoZWVsRXZlbnQmKTsKKworcHJpdmF0
ZToKKyAgICBzdGF0aWMgYm9vbCBpc1doZWVsRXZlbnRUeXBlKFR5cGUpOworCisgICAgV2ViQ29y
ZTo6SW50UG9pbnQgbV9wb3NpdGlvbjsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2dsb2JhbFBv
c2l0aW9uOworICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX2RlbHRhOworICAgIFdlYkNvcmU6OkZs
b2F0U2l6ZSBtX3doZWVsVGlja3M7CisgICAgdWludDMyX3QgbV9ncmFudWxhcml0eSB7IFNjcm9s
bEJ5UGFnZVdoZWVsRXZlbnQgfTsKKyAgICB1aW50MzJfdCBtX3BoYXNlIHsgUGhhc2U6OlBoYXNl
Tm9uZSB9OworICAgIHVpbnQzMl90IG1fbW9tZW50dW1QaGFzZSB7IFBoYXNlOjpQaGFzZU5vbmUg
fTsKKyAgICBib29sIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlIHsgZmFsc2UgfTsKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBib29sIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyB7
IGZhbHNlIH07CisgICAgdWludDMyX3QgbV9zY3JvbGxDb3VudCB7IDAgfTsKKyAgICBXZWJDb3Jl
OjpGbG9hdFNpemUgbV91bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGE7CisjZW5kaWYKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Z3RrL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50
RmFjdG9yeS5oCmluZGV4IDM1OGRjNWRkMzhiOGVhZjA5OTI3ODc5MDdmM2JjNzRmMTRlMDU1OGYu
LjE5Zjg4NmFkNTZjOTc2NmQ3ZWJkOTk4OWM1Y2FkYTk2YTA5ZTYwZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmgKQEAgLTI2LDcgKzI2LDEzIEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLZXlib2Fy
ZEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIldlYldoZWVs
RXZlbnQuaCIKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisjaW5jbHVkZSAiV2ViVG91Y2hF
dmVudC5oIgorI2VuZGlmCiAKICNpZiBVU0UoR1RLNCkKIHR5cGVkZWYgc3RydWN0IF9HZGtFdmVu
dCBHZGtFdmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NF
dmVudEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3Rv
cnkuaAppbmRleCAxMzhmZWFhMjUxOTJjMWE3MzhkNGJiOTQwMzljZTNhODZmYTZlMmNkLi4xZTc4
OGU2MGE3NmM1NWVlNDk1OTUxNWVlZDFhZjJiOGE0MWUyODdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvaW9zL1dlYklPU0V2ZW50RmFjdG9yeS5oCkBAIC0yNyw3ICsyNyw4IEBACiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogCi0jaW1wb3J0ICJXZWJFdmVudC5oIgorI2ltcG9ydCAi
V2ViS2V5Ym9hcmRFdmVudC5oIgorI2ltcG9ydCAiV2ViTW91c2VFdmVudC5oIgogI2ltcG9ydCA8
VUlLaXQvVUlLaXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViRXZlbnQuaD4KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYlBsYXRmb3JtVG91Y2hQb2ludElPUy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViUGxhdGZvcm1Ub3VjaFBvaW50SU9TLmNwcApp
bmRleCA3YjVlYjM3Mjg4MGQ4NjYyNTQ0MzM0Y2Q0Njk3Mjc2ZDU0M2RlNDViLi4yYTlkYjRmOGFj
YWZlOWQ2NGQ1ZDRlYmQ5OTEzYWExNjFlYTBmNGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9pb3MvV2ViUGxhdGZvcm1Ub3VjaFBvaW50SU9TLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9pb3MvV2ViUGxhdGZvcm1Ub3VjaFBvaW50SU9TLmNwcApAQCAtMjQsNyArMjQs
NyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgor
I2luY2x1ZGUgIldlYlRvdWNoRXZlbnQuaCIKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJUb3VjaEV2ZW50SU9TLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJUb3VjaEV2ZW50SU9TLmNwcAppbmRleCA0
NWE1NmViM2IwZmRhMTNjM2I3OGQ1NzU5NGEwMDkyZTRlMTg2NmY2Li5lNDBhNmUxNzJiZmQyYjc1
MDc2ZmQ0MDUzZGE2NDNlYmFiOWViODFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9pb3MvV2ViVG91Y2hFdmVudElPUy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L1dlYlRvdWNoRXZlbnRJT1MuY3BwCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVu
dC5oIgogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvbGlid3BlL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbGlid3BlL1dlYkV2ZW50RmFjdG9yeS5oCmluZGV4IDRiNzg3OTRiM2Q0NWJmMzhmNzMwNDQ4
YThjMWVlODNhNWE1MWJhYTEuLmVkZTFkM2ViMTMxZTkxYTJkOTQ4N2UzMTgwMTQzMGMwNDJlMzBl
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2xpYndwZS9XZWJFdmVudEZhY3Rv
cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saWJ3cGUvV2ViRXZlbnRGYWN0b3J5LmgK
QEAgLTI1LDcgKzI1LDEzIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQu
aCIKKyNpbmNsdWRlICJXZWJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViTW91c2VFdmVu
dC5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZlbnQuaCIKKworI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgorI2VuZGlmCiAKIHN0cnVjdCB3cGVfaW5w
dXRfYXhpc19ldmVudDsKIHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1t
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5tbQpp
bmRleCA5MjQxMDc2ODk4MmIxYjA0NjkxYmVjMmRlMWY2YzMxNWFlNjc0MDEzLi5jMWQyMWQ4MWI0
MjQyNDJiMzRiZjM4ZWZhYWFlNmU1Y2JjZGJjMWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0KQEAgLTI4LDcgKzI4LDYg
QEAKIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAKLSNpbXBvcnQgIldlYkV2ZW50
LmgiCiAjaW1wb3J0ICJXZWJHZXN0dXJlRXZlbnQuaCIKICNpbXBvcnQgPFdlYkNvcmUvSW50UG9p
bnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaAppbmRleCA5Mjk3MmZjYThjNGVj
NTYzMTE5ZWYzZGE5OTRhZTU2NWJlZmNjNDkxLi5lNjQ1NGFiYjU1MTJhZDU1ZmFjNGE1OTY3MDIx
ZmIyOTg5ZDliN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZl
bnRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9y
eS5oCkBAIC0yNSw3ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW1wb3J0ICJXZWJFdmVu
dC5oIgorI2ltcG9ydCAiV2ViS2V5Ym9hcmRFdmVudC5oIgorI2ltcG9ydCAiV2ViTW91c2VFdmVu
dC5oIgorI2ltcG9ydCAiV2ViV2hlZWxFdmVudC5oIgogCiAjaWYgVVNFKEFQUEtJVCkKICNpZiBk
ZWZpbmVkKF9fT0JKQ19fKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dl
Ykdlc3R1cmVFdmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVu
dC5oCmluZGV4IGUyZDE5MjU0NTMyOGQwNTUwYTBiOGI2NmMzYjBiOTg1ODJmOGVhNjAuLjU0YmU0
MWNmZTAwMzg3MGJlN2NmMTUwMTIxNjc5NDRmMjhiMWE5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYkdlc3R1cmVFdmVudF9o
Ci0jZGVmaW5lIFdlYkdlc3R1cmVFdmVudF9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShN
QUNfR0VTVFVSRV9FVkVOVFMpCiAKQEAgLTczLDUgKzcyLDMgQEAgcHJpdmF0ZToKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKLQot
I2VuZGlmIC8vIFdlYkdlc3R1cmVFdmVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93aW4vV2Vi
RXZlbnRGYWN0b3J5LmgKaW5kZXggOWUyNmMwZTdhNjQzOTRlOWRkOTVjNDFmOTcyZGZkMGRiYjA0
M2ExYi4uOWUwMzE5MTZkNjVkZDFhM2Y3NDA2MjQ3OGIzZWFhZDZjNWUwNjA2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvd2luL1dlYkV2ZW50RmFjdG9yeS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL3dpbi9XZWJFdmVudEZhY3RvcnkuaApAQCAtMjYsNyArMjYsMTQgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYktl
eWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiV2Vi
V2hlZWxFdmVudC5oIgorCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNpbmNsdWRlICJXZWJU
b3VjaEV2ZW50LmgiCisjZW5kaWYKKwogI2luY2x1ZGUgPHdpbmRvd3MuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2
aWdhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRp
b25DbGllbnQuaAppbmRleCAxNTdlZGE4OGRjZTgxZTc5NzQ4M2Y3YjcxZDY5Y2I1OWZmNDdkNTJj
Li4wNjFlMTg2ZGJlODg2YTA3NDIyYmY4M2I3YWZjZmNiYzZhYzllNmFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKQEAgLTMzLDcg
KzMzLDYgQEAKICNpbmNsdWRlICJQbHVnaW5Nb2R1bGVJbmZvLmgiCiAjaW5jbHVkZSAiUHJvY2Vz
c1Rlcm1pbmF0aW9uUmVhc29uLmgiCiAjaW5jbHVkZSAiU2FtZURvY3VtZW50TmF2aWdhdGlvblR5
cGUuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZyYW1lUG9saWN5TGlz
dGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElQb2xpY3lDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElQb2xpY3lDbGllbnQuaAppbmRleCA2YWU4ZTc1MjA1ZmZmYzg2NTJmNGY5YjgzYmIz
ZGUzMGVlNmNmYWYyLi43ZDJlOTM0NDYyY2YzYmRjMTlhMTliN2RkMzFhMGMyYTljZWJlZDRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUG9saWN5Q2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBvbGljeUNsaWVudC5oCkBAIC0y
NSw3ICsyNSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNp
bmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3Bh
dGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5w
dXREaXNwYXRjaGVyLmgKaW5kZXggNTFkNTQwMWRlMDA0OGM4M2RjOWI5MWFhN2ExOWMwODU2YmEx
YTIyZi4uN2Q2ZjIyMDNhM2JkMzcxMjdmM2I0N2U5NDhjZjYwMGI5YWQ2ODk5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3Bh
dGNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRl
ZElucHV0RGlzcGF0Y2hlci5oCkBAIC0yNyw4ICsyNyw4IEBACiAKICNpZiBFTkFCTEUoV0VCRFJJ
VkVSX0FDVElPTlNfQVBJKQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KICNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggNzYyMWY4NzRjMDEzYTI0ODVlZjZlMGFjMzc5NTZkZjg4ZmU5Yzll
YS4uYmU0OWIxMjgwZDA3ZTg4MDdhYWI1YjE2YTBhNTZhMTJmOTlkZDNmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMDQsNyArMTA0LDYgQEAKICNpbmNs
dWRlICJXZWJDb250ZXh0TWVudVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW5jbHVkZSAiV2ViRWRpdENvbW1hbmRQcm94eS5oIgotI2luY2x1ZGUgIldlYkV2
ZW50LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiV2ViRnJh
bWVQb2xpY3lMaXN0ZW5lclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eS5oIgpAQCAtMTEyLDYgKzExMSw3IEBACiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNs
dWRlICJXZWJJbnNwZWN0b3JQcm94eS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclV0aWxpdGll
cy5oIgorI2luY2x1ZGUgIldlYktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJXZWJOYXZpZ2F0
aW9uRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSAiV2ViTmF2aWdhdGlvblN0YXRlLmgiCiAjaW5jbHVk
ZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VHZXN0dXJlUmVjb2duaXplci5tbQppbmRleCA2YjQ1
MzZhNzM2ZTBiZjNiN2I0MGIyMjcxZmMxYzVkYTMwNTljNmJhLi5jMzliYmVkMTBiN2VkNTQ2ZTRk
ODcwMGIwZjhjYTEyMTNmOTIyYTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS01vdXNlR2VzdHVyZVJlY29nbml6ZXIubW0KQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZp
Y2VzU1BJLmg+CiAjaW1wb3J0IDx3dGYvQ29tcGlsZXIuaD4KKyNpbXBvcnQgPHd0Zi9Nb25vdG9u
aWNUaW1lLmg+CiAjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KIAogc3RhdGljIE9wdGlvblNldDxX
ZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4gd2ViRXZlbnRNb2RpZmllcnNGb3JVSUtleU1vZGlm
aWVyRmxhZ3MoVUlLZXlNb2RpZmllckZsYWdzIGZsYWdzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWRlMDg2YTA0NDA1YzA0MzJiNDQx
NmI0MTgxMWQzYzQ1ZDFiNWEzYi4uYTQ3YjAxMmQyYzQ4ZWQ4Y2Y0MDI1YmM5ZDU2NDZmZjA2Nzhl
ZWM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yMjAxLDYgKzIyMDEsMTAgQEAKIAkJMEYxODlDQUIyNDc0OUYyRjAwRTU4RDgxIC8q
IERpc3BsYXlMaW5rT2JzZXJ2ZXJJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEaXNwbGF5TGlua09ic2VydmVySUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEYzQzcyNTcxOTZGNUY1MDAwQUVERDBDIC8qIFdLSW5zcGVjdG9ySGlnaGxpZ2h0Vmlldy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLSW5zcGVjdG9ySGlnaGxp
Z2h0Vmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYzQzcyNTkxOTZGNUY2
ODAwQUVERDBDIC8qIFdLSW5zcGVjdG9ySGlnaGxpZ2h0Vmlldy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS0luc3BlY3RvckhpZ2hsaWdodFZpZXcuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMEY0MDAwRkQyNTI3RDY5RDAwRTkxREE3IC8qIFdlYldoZWVsRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViV2hlZWxFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwRjQwMDBGRTI1MjdENkMzMDBFOTFEQTcgLyogV2ViTW91c2VFdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJNb3VzZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTBGNDAwMEZGMjUyN0Q2RjcwMEU5MURBNyAvKiBXZWJLZXlib2FyZEV2ZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYktleWJvYXJkRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMEY0MDAxMDAyNTI3RDczQzAwRTkxREE3IC8qIFdlYlRvdWNoRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViVG91Y2hFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ1
QTMyRjIzOUQ4OUEwMDAyOTRBQkYgLyogV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rp
bmdJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0NUEzMzAyMzlEODlBMTAw
Mjk0QUJGIC8qIFdLV2ViVmlld1Rlc3RpbmdJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdUZXN0aW5nSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjQ1QTMzMzIzOUQ4OUFGMDAyOTRBQkYgLyogV0tXZWJWaWV3UHJpdmF0
ZUZvclRlc3RpbmdNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJW
aWV3UHJpdmF0ZUZvclRlc3RpbmdNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTYxMTUsMTEgKzYxMTksMTMgQEAKIAkJCQlCQ0NGNkFCQTEyQzkxRUY5MDA4RjlDMzUgLyogV2Vi
SW1hZ2UuY3BwICovLAogCQkJCUJDQ0Y2QUJCMTJDOTFFRjkwMDhGOUMzNSAvKiBXZWJJbWFnZS5o
ICovLAogCQkJCUMwMzM3REQyMTI3QTJBMEUwMDhGRjRGNCAvKiBXZWJLZXlib2FyZEV2ZW50LmNw
cCAqLywKKwkJCQkwRjQwMDBGRjI1MjdENkY3MDBFOTFEQTcgLyogV2ViS2V5Ym9hcmRFdmVudC5o
ICovLAogCQkJCUJDOUJBNTAyMTY5N0M0NTMwMEU0NDYxNiAvKiBXZWJLaXQySW5pdGlhbGl6ZS5j
cHAgKi8sCiAJCQkJQkM5QkE1MDMxNjk3QzQ1MzAwRTQ0NjE2IC8qIFdlYktpdDJJbml0aWFsaXpl
LmggKi8sCiAJCQkJOTA1NjIwRTgxMkJDMjQ4QjAwMDc5OUI2IC8qIFdlYk1lbW9yeVNhbXBsZXIu
Y3BwICovLAogCQkJCTkwNTYyMEU5MTJCQzI0OEIwMDA3OTlCNiAvKiBXZWJNZW1vcnlTYW1wbGVy
LmggKi8sCiAJCQkJQzAzMzdEQUYxMjdBMjhEMDAwOEZGNEY0IC8qIFdlYk1vdXNlRXZlbnQuY3Bw
ICovLAorCQkJCTBGNDAwMEZFMjUyN0Q2QzMwMEU5MURBNyAvKiBXZWJNb3VzZUV2ZW50LmggKi8s
CiAJCQkJQkNGNjlGOTgxMTc2Q0VENjAwNDcxQTUyIC8qIFdlYk5hdmlnYXRpb25EYXRhU3RvcmUu
aCAqLywKIAkJCQlDMDZDNjA5MzEyNEMxNDQzMDAwMTY4MkYgLyogV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5jcHAgKi8sCiAJCQkJQzA2QzYwOTQxMjRDMTQ0MzAwMDE2ODJGIC8qIFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuaCAqLywKQEAgLTYxNDksMTAgKzYxNTUsMTIgQEAKIAkJCQk4MzYw
MzQ5RDFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmNwcCAqLywK
IAkJCQk4MzYwMzQ5RTFBQ0IzNEQ2MDA2MjY1NDkgLyogV2ViU1FMaXRlRGF0YWJhc2VUcmFja2Vy
LmggKi8sCiAJCQkJQzAzMzdERDcxMjdBNTFCNjAwOEZGNEY0IC8qIFdlYlRvdWNoRXZlbnQuY3Bw
ICovLAorCQkJCTBGNDAwMTAwMjUyN0Q3M0MwMEU5MURBNyAvKiBXZWJUb3VjaEV2ZW50LmggKi8s
CiAJCQkJN0MwNjVGMjkxQzhDRDk1RjAwQzJEOTUwIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxl
ckRhdGFUeXBlcy5jcHAgKi8sCiAJCQkJN0MwNjVGMkExQzhDRDk1RjAwQzJEOTUwIC8qIFdlYlVz
ZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oICovLAogCQkJCTQ5NjBBM0JDMjNDNTI4NjQw
MDk2MTg0MiAvKiBXZWJWaWV3Q2F0ZWdvcnkuaCAqLywKIAkJCQlDMDMzN0REMDEyN0EyOTgwMDA4
RkY0RjQgLyogV2ViV2hlZWxFdmVudC5jcHAgKi8sCisJCQkJMEY0MDAwRkQyNTI3RDY5RDAwRTkx
REE3IC8qIFdlYldoZWVsRXZlbnQuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gU2hhcmVkOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5hdmln
YXRpb25BY3Rpb24uaAppbmRleCA4ZTJkNmIxYTBlNjZmNDMxNTc5NGFlZmE3ZmRkNjQ3YTQwY2Qw
N2ZjLi5lZmJhMDE5N2MwYjRhNDVjM2EyZjI2OTczNjZiZDgzNDRjODc4YjMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVO
YXZpZ2F0aW9uQWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oCkBAIC0yMywyMCArMjMsMTkg
QEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIElu
amVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbl9oCi0jZGVmaW5lIEluamVjdGVkQnVuZGxlTmF2
aWdhdGlvbkFjdGlvbl9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgog
I2luY2x1ZGUgIkluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkluamVj
dGVkQnVuZGxlTm9kZUhhbmRsZS5oIgotI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAi
V2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgog
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKLSAgICBjbGFzcyBGb3JtU3RhdGU7Ci0gICAgY2xhc3MgTmF2aWdhdGlvbkFj
dGlvbjsKK2NsYXNzIEZvcm1TdGF0ZTsKK2NsYXNzIE5hdmlnYXRpb25BY3Rpb247CiB9CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewpAQCAtODAsNSArNzksMyBAQCBwcml2YXRlOgogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rp
b25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tCmluZGV4IDUwYTAwMzRkZDY1
MDk0MDg5OTUwODA0ODUwODlhYjc3MDNjMDFmMjguLjQzYjM0OThlYzc2OTYzOGI3OTExMzdhMDdh
MzFlZGVjOWY1ZDlmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KQEAg
LTMxLDcgKzMxLDkgQEAKICNpbXBvcnQgIkxheWVyVHJlZUNvbnRleHQuaCIKICNpbXBvcnQgIk5l
dHNjYXBlQnJvd3NlckZ1bmNzLmgiCiAjaW1wb3J0ICJQbHVnaW5Db250cm9sbGVyLmgiCi0jaW1w
b3J0ICJXZWJFdmVudC5oIgorI2ltcG9ydCAiV2ViS2V5Ym9hcmRFdmVudC5oIgorI2ltcG9ydCAi
V2ViTW91c2VFdmVudC5oIgorI2ltcG9ydCAiV2ViV2hlZWxFdmVudC5oIgogI2ltcG9ydCA8Q2Fy
Ym9uL0NhcmJvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbXBv
cnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IGUzNGEyN2VmOWNmYWE4MmMyMzEy
NmM3MzQ5MjdhYmZmZmQ1YWNkNjAuLmY4NzcwNzA5MThmYjk5OTE3MjIwMGUxNzFiNTJmZTVkNDlk
YjFlYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9Q
REZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpbi5tbQpAQCAtNDEsMTAgKzQxLDExIEBACiAjaW1wb3J0ICJXS0FjY2Vzc2liaWxpdHlX
ZWJQYWdlT2JqZWN0TWFjLmgiCiAjaW1wb3J0ICJXS1BhZ2VGaW5kTWF0Y2hlc0NsaWVudC5oIgog
I2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW1wb3J0ICJXZWJFdmVudC5oIgog
I2ltcG9ydCAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW1wb3J0ICJXZWJGaW5kT3B0aW9ucy5o
IgorI2ltcG9ydCAiV2ViS2V5Ym9hcmRFdmVudC5oIgogI2ltcG9ydCAiV2ViTG9hZGVyU3RyYXRl
Z3kuaCIKKyNpbXBvcnQgIldlYk1vdXNlRXZlbnQuaCIKICNpbXBvcnQgIldlYlBhZ2UuaCIKICNp
bXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQYXN0ZWJvYXJkUHJv
eHlNZXNzYWdlcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJveHkuY3BwCmluZGV4IDE4NGNmNjc1ZTNiNGY5YThjZmRmZDIyY2Y2MmE2NDUxZjI4ZmQz
NjguLjcyNzRlNmYwNzQ3YjdhMzQ5N2U0MGFmMjE1MGRkMjI4ZDllNWRkNTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKQEAgLTM5LDkg
KzM5LDExIEBACiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLZXlib2FyZEV2ZW50
LmgiCisjaW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
ICNpbmNsdWRlICJXZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2Vi
V2hlZWxFdmVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBhMjNjMjE3NDFkMDkyY2MwOTg1ZjZh
YzVkZGFiYWIwNmM2NGQ1NDlhLi5mMjY2Y2QzY2UwOWVhOTFlZDRlNjYzODFiOWQ5ZTllYzg2ZDA1
MGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcApAQCAtMzAsMTEgKzMwLDEzIEBACiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAi
U2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0j
aW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW5j
bHVkZSAiV2ViTG9hZGVyU3RyYXRlZ3kuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCiAj
aW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZlbnQuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0JpdG1hcEltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DaHJvbWUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZUphci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggMTA4ZmQ3MWU1OTky
MTJlMzA4MzY0NWU0NTdkMzdlOGFiMTU1YmU5ZC4uM2UxOGJjNGIwMDkxOTUwYjAxNTY3M2U0MmYy
Nzk3YTgyOThmZGQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC0yNywxMSArMjcsMTIgQEAKICNpbmNsdWRlICJF
dmVudERpc3BhdGNoZXIuaCIKIAogI2luY2x1ZGUgIkV2ZW50RGlzcGF0Y2hlck1lc3NhZ2VzLmgi
Ci0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJFdmVudENvbnZlcnNpb24uaCIK
ICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgorI2lu
Y2x1ZGUgIldlYldoZWVsRXZlbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5oPgogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9F
dmVudERpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50
RGlzcGF0Y2hlci5oCmluZGV4IDFjNDE2ZDg4MGVjNzMzM2QwNzI2NmZhYzUzNWRjMjk5ZTAyMGZi
Y2QuLjM3MmUyMGU3YTFjNzZlYzAxZjg2MzgxMzNhMjhkMTEyNjZlMDllMDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oCkBAIC01
MSw2ICs1MSwxMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBhZ2U7CiBjbGFzcyBX
ZWJXaGVlbEV2ZW50OwogCisjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCitjbGFzcyBXZWJU
b3VjaEV2ZW50OworI2VuZGlmCisKIGNsYXNzIEV2ZW50RGlzcGF0Y2hlciA6IHB1YmxpYyBJUEM6
OkNvbm5lY3Rpb246OldvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZjxFdmVudERpc3BhdGNoZXI+IGNyZWF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5oCmluZGV4IDg0ODAyMTA5ZGZiZDA4N2MwNDk1YTU4
M2FhOTVmODdkZWVkMzQ0NTIuLjk4ZTE2ZDIxYzlmMGJiN2UyMzg4ZGU5NjQwMjM2MzVmYzEyNTIz
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5u
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmgK
QEAgLTIzLDExICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKLSNpZm5kZWYgUGFnZUJhbm5lcl9oCi0jZGVmaW5lIFBhZ2VCYW5uZXJfaAorI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgor
I2luY2x1ZGUgIldlYk1vdXNlRXZlbnQuaCIKIAogI2lmIFBMQVRGT1JNKE1BQykKIE9CSkNfQ0xB
U1MgQ0FMYXllcjsKQEAgLTk2LDUgKzk1LDMgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCi0jZW5kaWYgLy8gUGFnZUJhbm5lcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDEyOWNhNjZjZTRjZjcxNDg4MWYzMTYw
NjI4ZWFkOTZkNWFjZDlmY2MuLjI5YTZmZjkxZmIwOWI0YmRhZTMyMzM3ZGZlM2MxODc5NjYwY2Fh
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC04NSw3ICs4NSw2IEBACiAjaW5jbHVkZSAiV2ViRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRl
ICJXZWJEcmFnQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRWRpdG9yQ2xpZW50LmgiCi0jaW5jbHVk
ZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJFdmVudENvbnZlcnNpb24uaCIKICNpbmNsdWRl
ICJXZWJFdmVudEZhY3RvcnkuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgpAQCAtMTAwLDkgKzk5
LDExIEBACiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJJ
bnNwZWN0b3JVSS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclVJTWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyU3RyYXRlZ3kuaCIK
ICNpbmNsdWRlICJXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViTWVk
aWFTdHJhdGVneS5oIgorI2luY2x1ZGUgIldlYk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJXZWJO
b3RpZmljYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5l
ci5oIgogI2luY2x1ZGUgIldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCIKQEAgLTEyNywxMSAr
MTI4LDEzIEBACiAjaW5jbHVkZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJT
cGVlY2hTeW50aGVzaXNDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTdG9yYWdlTmFtZXNwYWNlUHJv
dmlkZXIuaCIKKyNpbmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViVVJMU2No
ZW1lSGFuZGxlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViVW5kb1N0ZXAuaCIKICNpbmNsdWRlICJX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXZWJVc2VyTWVkaWFDbGllbnQu
aCIKICNpbmNsdWRlICJXZWJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIgorI2luY2x1ZGUgIldl
YldoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9KU0NJbmxpbmVzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGRkYzdlNzYxZWFmMTQyYjc5OTIzNmNlMTIyZmZm
NDI0NzFkYTJiNzEuLjc5Y2YxMjJmMjIxOWZhZDc0ZmE2OWIzNWYzZWU1ODViMDgxYTZiNTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tCkBAIC01OSw2ICs1OSw3IEBACiAjaW1wb3J0ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgog
I2ltcG9ydCAiV2ViUHJldmlld0xvYWRlckNsaWVudC5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5o
IgorI2ltcG9ydCAiV2ViVG91Y2hFdmVudC5oIgogI2ltcG9ydCA8Q29yZVRleHQvQ1RGb250Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0F1dG9maWxsLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0F1dG9maWxs
RWxlbWVudHMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1dlYlBhZ2VNYWMubW0KaW5kZXggM2Q5NjBhMjIxOTFiN2U1NTkyYTVhNjE0NmNjZTM2ZTBmZTkx
ZmNjYy4uNWFlYjRiMTUzN2QzMzQyMTE2Y2EyMWE1NTUzNTNjNGFhZWMwMGU1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAg
LTQzLDEyICs0MywxMyBAQAogI2ltcG9ydCAiVXNlckRhdGEuaCIKICNpbXBvcnQgIldLQWNjZXNz
aWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgotI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldlYkV2ZW50Q29udmVyc2lvbi5o
IgogI2ltcG9ydCAiV2ViRnJhbWUuaCIKICNpbXBvcnQgIldlYkhpdFRlc3RSZXN1bHREYXRhLmgi
CiAjaW1wb3J0ICJXZWJJbWFnZS5oIgogI2ltcG9ydCAiV2ViSW5zcGVjdG9yLmgiCisjaW1wb3J0
ICJXZWJLZXlib2FyZEV2ZW50LmgiCisjaW1wb3J0ICJXZWJNb3VzZUV2ZW50LmgiCiAjaW1wb3J0
ICJXZWJQYWdlT3ZlcmxheS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNp
bXBvcnQgIldlYlBhc3RlYm9hcmRPdmVycmlkZXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcAppbmRleCA5YmZjODY5ZGUxNDAx
ZDJkNTZiYTI5ZDQ4YzZmNDE3YTU3ZWY0ODY4Li4yODkzZWQzZjNiOGM5YzI4NDcyYjhhYWY3YTM5
OWUyNTdiZjhjNTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS93aW4vV2ViUGFnZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2Uvd2luL1dlYlBhZ2VXaW4uY3BwCkBAIC0yOCw4ICsyOCw4IEBACiAjaW5jbHVkZSAiV2ViUGFn
ZS5oIgogCiAjaW5jbHVkZSAiRWRpdG9yU3RhdGUuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgog
I2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViS2V5Ym9hcmRFdmVudC5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvQmFja0ZvcndhcmRDb250cm9sbGVyLmg+Cg==
</data>
<flag name="commit-queue"
          id="426309"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410390</attachid>
            <date>2020-10-02 16:57:14 -0700</date>
            <delta_ts>2020-10-02 17:05:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217259-20201002165714.patch</filename>
            <type>text/plain</type>
            <size>86382</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI5Njk2ZTQzNzM3NDRiNTBh
ZjhiZmM0NmUzMDdkM2MzNGQ1MTE4MzMuLjdkNjllNjUwOTk5MzljZGU3MzgyNjU1YmU2ZDRhN2Jh
MDJkZmNjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAxIEBACisyMDIwLTEwLTAyICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgV2ViRXZlbnQg
c3ViY2xhc3MgZGVjbGFyYXRpb25zIHRvIHRoZWlyIG93biBmaWxlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MjU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBNYWtlIG5ldyBoZWFkZXIgZmlsZXMgZm9yIFdl
Yk1vdXNlRXZlbnQsIFdlYktleWJvYXJkRXZlbnQsIFdlYldoZWVsRXZlbnQsIFdlYlRvdWNoRXZl
bnQgYW5kCisgICAgICAgIGZpeCB0aGUgZmFsbG91dC4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3Qu
aDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViR2VzdHVyZUV2ZW50Lmg6CisgICAgICAgICog
U2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZl
V2ViTW91c2VFdmVudC5oOgorICAgICAgICAqIFNoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50Lmg6
CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaDoKKyAgICAgICAgKiBTaGFy
ZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50OjphbGxUb3VjaFBvaW50c0FyZVJlbGVh
c2VkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6YnV0dG9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6YnV0dG9ucyBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OnBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6Z2xvYmFsUG9zaXRpb24gY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpkZWx0YVggY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpkZWx0YVkgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpkZWx0YVogY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpjbGlja0NvdW50IGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZXZlbnROdW1iZXIgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjptZW51VHlwZUZv
ckV2ZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6
Zm9yY2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50Ojpz
eW50aGV0aWNDbGlja1R5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJX
aGVlbEV2ZW50Ojpwb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YldoZWVsRXZlbnQ6Omdsb2JhbFBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViV2hlZWxFdmVudDo6ZGVsdGEgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJXaGVlbEV2ZW50Ojp3aGVlbFRpY2tzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViV2hlZWxFdmVudDo6Z3JhbnVsYXJpdHkgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2Ug
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpwaGFzZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Om1vbWVudHVt
UGhhc2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojpo
YXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViV2hlZWxFdmVudDo6c2Nyb2xsQ291bnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojp1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojp0ZXh0IGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6dW5tb2RpZmll
ZFRleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
OjprZXkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
Ojpjb2RlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVu
dDo6a2V5SWRlbnRpZmllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYktl
eWJvYXJkRXZlbnQ6OndpbmRvd3NWaXJ0dWFsS2V5Q29kZSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6Om5hdGl2ZVZpcnR1YWxLZXlDb2RlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6bWFjQ2hhckNv
ZGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojpo
YW5kbGVkQnlJbnB1dE1ldGhvZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YktleWJvYXJkRXZlbnQ6OnByZWVkaXRVbmRlcmxpbmVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6cHJlZWRpdFNlbGVjdGlvblJhbmdlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6Y29tbWFuZHMg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojppc0F1
dG9SZXBlYXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2
ZW50Ojppc0tleXBhZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYktleWJv
YXJkRXZlbnQ6OmlzU3lzdGVtS2V5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmlkZW50aWZpZXIgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmxvY2F0
aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBv
aW50OjpwaGFzZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3Jt
VG91Y2hQb2ludDo6c3RhdGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFJhZGl1c1gpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnJhZGl1c1ggY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFJhZGl1c1kpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnJhZGl1c1kgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFJvdGF0
aW9uQW5nbGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ6OnJvdGF0aW9uQW5nbGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OnNldEZvcmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGxhdGZvcm1Ub3VjaFBvaW50Ojpmb3JjZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0QWx0aXR1ZGVBbmdsZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6YWx0aXR1ZGVBbmdsZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
c2V0QXppbXV0aEFuZ2xlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1U
b3VjaFBvaW50OjphemltdXRoQW5nbGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFRvdWNoVHlwZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6dG91Y2hUeXBlIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6V2ViVG91Y2hFdmVudCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OnRvdWNoUG9pbnRzIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6cG9zaXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50Ojppc1BvdGVudGlhbFRh
cCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OmlzR2Vz
dHVyZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6Omdl
c3R1cmVTY2FsZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZl
bnQ6Omdlc3R1cmVSb3RhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlRvdWNoRXZlbnQ6OmNhblByZXZlbnROYXRpdmVHZXN0dXJlcyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OnNldENhblByZXZlbnROYXRpdmVHZXN0dXJl
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6aWQg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6
OnNjcmVlblBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxh
dGZvcm1Ub3VjaFBvaW50Ojpwb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cmFkaXVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpzZXRTdGF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgICogU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAgICogU2hhcmVk
L1dlYktleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAqIFNoYXJlZC9XZWJLZXlib2FyZEV2ZW50
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojp0ZXh0IGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6dW5tb2RpZmllZFRleHQgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50OjprZXkgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojpjb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6a2V5SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OndpbmRvd3NWaXJ0dWFsS2V5Q29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6Om5hdGl2ZVZpcnR1YWxLZXlDb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6bWFjQ2hhckNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50OjpoYW5kbGVkQnlJbnB1dE1l
dGhvZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OnByZWVkaXRV
bmRlcmxpbmVzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6cHJl
ZWRpdFNlbGVjdGlvblJhbmdlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRF
dmVudDo6Y29tbWFuZHMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
Ojppc0F1dG9SZXBlYXQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
Ojppc0tleXBhZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6Omlz
U3lzdGVtS2V5IGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvV2ViTW91c2VFdmVudC5jcHA6Cisg
ICAgICAgICogU2hhcmVkL1dlYk1vdXNlRXZlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYk1vdXNlRXZlbnQ6OmJ1dHRvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNl
RXZlbnQ6OmJ1dHRvbnMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50Ojpw
b3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6Omdsb2JhbFBv
c2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFYIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFZIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFaIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViTW91c2VFdmVudDo6Y2xpY2tDb3VudCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYk1vdXNlRXZlbnQ6OmV2ZW50TnVtYmVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TW91c2VFdmVudDo6bWVudVR5cGVGb3JFdmVudCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk1vdXNlRXZlbnQ6OmZvcmNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVu
dDo6c3ludGhldGljQ2xpY2tUeXBlIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvV2ViVG91Y2hF
dmVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OmFsbFRvdWNoUG9pbnRz
QXJlUmVsZWFzZWQgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9XZWJUb3VjaEV2ZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OldlYlBsYXRmb3Jt
VG91Y2hQb2ludCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6aWRl
bnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
bG9jYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6
OnBoYXNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50Ojpz
dGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0
UmFkaXVzWCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cmFkaXVz
WCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0UmFk
aXVzWSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cmFkaXVzWSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0Um90YXRp
b25BbmdsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cm90YXRp
b25BbmdsZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
c2V0Rm9yY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmZvcmNl
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpzZXRBbHRp
dHVkZUFuZ2xlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjphbHRp
dHVkZUFuZ2xlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50
OjpzZXRBemltdXRoQW5nbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ6OmF6aW11dGhBbmdsZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91
Y2hQb2ludDo6c2V0VG91Y2hUeXBlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3Vj
aFBvaW50Ojp0b3VjaFR5cGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50
OjpXZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6dG91Y2hQ
b2ludHMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50Ojpwb3NpdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OmlzUG90ZW50aWFsVGFwIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6aXNHZXN0dXJlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6Z2VzdHVyZVNjYWxlIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6Z2VzdHVyZVJvdGF0aW9uIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6Y2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6c2V0Q2FuUHJldmVudE5hdGl2
ZUdlc3R1cmVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjppZCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2NyZWVuUG9z
aXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnBv
c2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50Ojpy
YWRpdXMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNl
dFN0YXRlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJXaGVlbEV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojpw
b3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Omdsb2JhbFBv
c2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6ZGVsdGEgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojp3aGVlbFRpY2tzIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6Z3JhbnVsYXJpdHkgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2Ug
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpwaGFzZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Om1vbWVudHVtUGhhc2UgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6c2Nyb2xsQ291bnQgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojp1bmFjY2VsZXJhdGVkU2Nyb2xsaW5n
RGVsdGEgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lmg6
CisgICAgICAgICogU2hhcmVkL2lvcy9XZWJQbGF0Zm9ybVRvdWNoUG9pbnRJT1MuY3BwOgorICAg
ICAgICAqIFNoYXJlZC9pb3MvV2ViVG91Y2hFdmVudElPUy5jcHA6CisgICAgICAgICogU2hhcmVk
L21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW06CisgICAgICAgICogU2hhcmVkL21hYy9X
ZWJFdmVudEZhY3RvcnkuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQVBJUG9saWN5Q2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS01vdXNlR2Vz
dHVyZVJlY29nbml6ZXIubW06CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZU5hdmlnYXRpb25BY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgor
CiAyMDIwLTA5LTMwICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgY29kZSBiZWhpbmQgRU5BQkxFKE1FRElBX1NFU1NJT04pLCBubyBwb3J0cyBlbmFibGUg
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDJiN2Y0NmIz
NDRlMWJlM2U4NjBiMTRlODEwNDkxNDMyODlhMTU3MGQuLjcwZDNkODhmMmJmNGE2ZjFjZmM0ZjE4
ODcwNGVkNjc3MGU0OTc3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQpAQCAtNjc4LDExICs2NzgsNiBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAg
ICAgICAgJ1dlYktpdDo6UmVzcGVjdFNlbGVjdGlvbkFuY2hvcic6IFsnIkdlc3R1cmVUeXBlcy5o
IiddLAogICAgICAgICAnV2ViS2l0OjpTZWxlY3Rpb25GbGFncyc6IFsnIkdlc3R1cmVUeXBlcy5o
IiddLAogICAgICAgICAnV2ViS2l0OjpTZWxlY3Rpb25Ub3VjaCc6IFsnIkdlc3R1cmVUeXBlcy5o
IiddLAotICAgICAgICAnV2ViS2l0OjpXZWJHZXN0dXJlRXZlbnQnOiBbJyJXZWJFdmVudC5oIidd
LAotICAgICAgICAnV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwK
LSAgICAgICAgJ1dlYktpdDo6V2ViTW91c2VFdmVudCc6IFsnIldlYkV2ZW50LmgiJ10sCi0gICAg
ICAgICdXZWJLaXQ6OldlYlRvdWNoRXZlbnQnOiBbJyJXZWJFdmVudC5oIiddLAotICAgICAgICAn
V2ViS2l0OjpXZWJXaGVlbEV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwKICAgICAgICAgJ1dlYkNv
cmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMnOiBbJzxXZWJDb3JlL01lZGlhUGxheWVy
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpJU09XZWJWVFRDdWUnOiBbJzxXZWJDb3JlL0lTT1ZU
VEN1ZS5oPiddLAogICAgICAgICAnc3RydWN0IFdlYkNvcmU6OkNvb2tpZSc6IFsnPFdlYkNvcmUv
Q29va2llLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1No
YXJlZEFQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2Fz
dC5oCmluZGV4IDY2NDhlNzJmZWIyYzNkMWFiNGUxYzBlMjE0Y2E2OGRlMDVkMDEzY2EuLmU1NjAw
NTA4YTFiMzNkMjU1ZGQ1ZGI3NDAyYTA1ZGY4Y2NlMTI2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBXS1NoYXJlZEFQSUNh
c3RfaAotI2RlZmluZSBXS1NoYXJlZEFQSUNhc3RfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJBUElFcnJvci5oIgogI2luY2x1ZGUgIkFQSU51bWJlci5oIgpAQCAtNDcsOCArNDYsOCBAQAog
I2luY2x1ZGUgIldLUGFnZVZpc2liaWxpdHlUeXBlcy5oIgogI2luY2x1ZGUgIldLVXNlckNvbnRl
bnRJbmplY3RlZEZyYW1lcy5oIgogI2luY2x1ZGUgIldLVXNlclNjcmlwdEluamVjdGlvblRpbWUu
aCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgiCisj
aW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGV4dE1lbnVJ
dGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgpAQCAtMTAzNCw1ICsxMDMzLDMgQEAgaW5s
aW5lIFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgdG9Vc2VyQ29udGVudEluamVj
dGVkRnJhbWVzKFdLVXNlckNvbnQKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRp
ZiAvLyBXS1NoYXJlZEFQSUNhc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
TmF0aXZlV2ViR2VzdHVyZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJH
ZXN0dXJlRXZlbnQuaAppbmRleCBiOThiNzU4MzcwZGRmNDk2NTI3ZDlmNjBlYmMzYjgyZGVlZGI4
YzZmLi5lY2VhYTk3ZDk1OWQwOGJjMjJkYTdmZDcxZjU3NzE5ZjRiZDFjNTdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJHZXN0dXJlRXZlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJHZXN0dXJlRXZlbnQuaApAQCAtMjMsMTIgKzIzLDEw
IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBO
YXRpdmVXZWJHZXN0dXJlRXZlbnRfaAotI2RlZmluZSBOYXRpdmVXZWJHZXN0dXJlRXZlbnRfaAor
I3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogCi0jaW5jbHVk
ZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJHZXN0dXJlRXZlbnQuaCIKIAogT0JKQ19DTEFT
UyBOU0V2ZW50OwpAQCAtNDgsNSArNDYsMyBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQotCi0jZW5kaWYgLy8g
TmF0aXZlV2ViR2VzdHVyZUV2ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdl
YktleWJvYXJkRXZlbnQuaAppbmRleCBiZjY0Mjk5MDI1YWZjYzFjYjc4NGQzNWRkM2VhNjExZDQ3
MDE4YjEyLi5mZDJiNTVmNDBmZGQzZDgyZDZkNjk0N2RjMzNhZDMxZjI0ZjRjMWM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCkBAIC0yNiwxOSAr
MjYsMTMgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZu
ZGVmIE5hdGl2ZVdlYktleWJvYXJkRXZlbnRfaAotI2RlZmluZSBOYXRpdmVXZWJLZXlib2FyZEV2
ZW50X2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJX
ZWJLZXlib2FyZEV2ZW50LmgiCiAKICNpZiBVU0UoQVBQS0lUKQogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KIE9CSkNfQ0xBU1MgTlNWaWV3OwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1zdHJ1
Y3QgQ29tcG9zaXRpb25VbmRlcmxpbmU7Ci1zdHJ1Y3QgS2V5cHJlc3NDb21tYW5kOwotfQogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShHVEspCkBAIC0xMTMsNSArMTA3LDMgQEAgcHJpdmF0ZToKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmgKaW5kZXgg
ZDZmOTkwMmI5NjNiZDlhMDAzNmE2MDA4ZDcxOWMzZTViMTU0MDJjNC4uNWUzN2Y3MzUxMGY3Mzk2
MWQ5N2NlOGI0MmRlMGUxOTM1YTE3MGQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2
ZVdlYk1vdXNlRXZlbnQuaApAQCAtMjMsMTAgKzIzLDkgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE5hdGl2ZVdlYk1vdXNlRXZlbnRfaAotI2Rl
ZmluZSBOYXRpdmVXZWJNb3VzZUV2ZW50X2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2Vi
RXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCiAKICNpZiBVU0UoQVBQS0lUKQog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTEwMiw1ICsxMDEsMyBAQCBwcml2YXRlOgog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBOYXRpdmVXZWJNb3VzZUV2
ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZl
bnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaAppbmRleCBm
NWQ3MmY4N2I1YjEyNGRiZTE0MGRmN2FkMzg3ZTZiOGEzY2ExZGFhLi5kNzMzMzAxNmU4NDkxYjQy
ODcxNzhhMjM3NTY5ZmRlOWQ4OWEzYTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZl
V2ViVG91Y2hFdmVudC5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5j
bHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBkZWZpbmVkKF9fT0JKQ19fKQogI2luY2x1ZGUgPFVJS2l0L1VJ
S2l0Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKaW5kZXgg
ODRkYjA4M2NlZmU3ZDE2NmIyNmYxNTE2MjBkMDk2MDQ3ZDY5NzJjZS4uZGY0MjQyYjA3MzljODM4
YjY0YzdjNzFmMjRlMWZlMDY5YjRmNDAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2
ZVdlYldoZWVsRXZlbnQuaApAQCAtMjMsMTAgKzIzLDkgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE5hdGl2ZVdlYldoZWVsRXZlbnRfaAotI2Rl
ZmluZSBOYXRpdmVXZWJXaGVlbEV2ZW50X2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2Vi
RXZlbnQuaCIKKyNpbmNsdWRlICJXZWJXaGVlbEV2ZW50LmgiCiAKICNpZiBVU0UoQVBQS0lUKQog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTg5LDUgKzg4LDMgQEAgcHJpdmF0ZToKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gTmF0aXZlV2ViV2hlZWxFdmVu
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0
YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaAppbmRleCBm
NzI3MWVhZjgzOGEzMGM5OWIwYzhiMjA1NGZkNGI2Nzc4NjY3ZjZmLi5jYmQ3NzBlNTdmM2VhN2Q0
ZmM4OTJkY2VhZjQ0ZGZhZmMwYjVmNGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmln
YXRpb25BY3Rpb25EYXRhLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYk1vdXNlRXZlbnQuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQmFja0Zv
cndhcmRJdGVtSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCmluZGV4IGRiN2RlMzllNjdjYjM1YWY5YTA1YWE0MmIy
M2ZiODIwNzhhYWI0NDAuLmNlMzE3OGRlMjcxZTAxZmVmNDI1OGJhYWU3NTAxNTk3ZWFhNWJhMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5jcHAKQEAgLTYyLDE2ICs2Miw0IEBAIGJvb2wgV2Vi
RXZlbnQ6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYkV2ZW50JiByZXN1bHQpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotYm9vbCBXZWJU
b3VjaEV2ZW50OjphbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkgY29uc3QKLXsKLSAgICBmb3Ig
KGNvbnN0IGF1dG8mIHRvdWNoUG9pbnQgOiB0b3VjaFBvaW50cygpKSB7Ci0gICAgICAgIGlmICh0
b3VjaFBvaW50LnN0YXRlKCkgIT0gV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2Vk
ICYmIHRvdWNoUG9pbnQuc3RhdGUoKSAhPSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoQ2Fu
Y2VsbGVkKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHJldHVybiB0
cnVlOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2
ZW50LmgKaW5kZXggZTMxZDkyNTM0YmYxODA4ZjEyYzMwMDVmZDc1OTRmODAwNmM4OTk5Ni4uM2Fl
NjUwNDc3OWQzOTE3YTc5ZjY5ZjMyYjU4MjYwYWZlZGEyNzBiNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJF
dmVudC5oCkBAIC0yOSwxMyArMjksNiBAQAogLy8gRklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBt
b3ZlIHRvIG1ha2VpbmcgdGhlIFdlYkNvcmUvUGxhdGZvcm1Gb29FdmVudHMgdHJpdmlhbCBjbGFz
c2VzIHNvIHRoYXQKIC8vIHdlIGNhbiB1c2UgdGhlbSBhcyB0aGUgZXZlbnQgdHlwZS4KIAotI2lu
Y2x1ZGUgIkVkaXRpbmdSYW5nZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQ29tcG9zaXRpb25VbmRl
cmxpbmUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL0Zsb2F0U2l6ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL0ludFNpemUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0tleXByZXNzQ29tbWFuZC5o
PgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5o
PgogI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgpAQCAtNDYsMTIgKzM5LDYgQEAgY2xhc3MgRGVj
b2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9CiAKLSNpZiBVU0UoQVBQS0lUKQotbmFtZXNwYWNlIFdl
YkNvcmUgewotc3RydWN0IEtleXByZXNzQ29tbWFuZDsKLX0KLSNlbmRpZgotCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgV2ViRXZlbnQgewpAQCAtMTI2LDM3MyArMTEzLDYgQEAgcHJpdmF0
ZToKICAgICBXYWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKLS8vIEZJWE1FOiBNb3ZlIHRoaXMg
Y2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYk1vdXNlRXZlbnQgOiBwdWJs
aWMgV2ViRXZlbnQgewotcHVibGljOgotICAgIGVudW0gQnV0dG9uIHsKLSAgICAgICAgTGVmdEJ1
dHRvbiA9IDAsCi0gICAgICAgIE1pZGRsZUJ1dHRvbiwKLSAgICAgICAgUmlnaHRCdXR0b24sCi0g
ICAgICAgIE5vQnV0dG9uID0gLTIKLSAgICB9OwotCi0gICAgZW51bSBTeW50aGV0aWNDbGlja1R5
cGUgeyBOb1RhcCwgT25lRmluZ2VyVGFwLCBUd29GaW5nZXJUYXAgfTsKLQotICAgIFdlYk1vdXNl
RXZlbnQoKTsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBXZWJNb3VzZUV2ZW50KFR5cGUsIEJ1
dHRvbiwgdW5zaWduZWQgc2hvcnQgYnV0dG9ucywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBv
c2l0aW9uSW5WaWV3LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZs
b2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBP
cHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3lu
dGhldGljQ2xpY2tUeXBlID0gTm9UYXAsIGludCBldmVudE51bWJlciA9IC0xLCBpbnQgbWVudVR5
cGUgPSAwKTsKLSNlbHNlCi0gICAgV2ViTW91c2VFdmVudChUeXBlLCBCdXR0b24sIHVuc2lnbmVk
IHNob3J0IGJ1dHRvbnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbkluVmlldywg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZs
b2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgT3B0aW9uU2V0PE1vZGlm
aWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlj
a1R5cGUgPSBOb1RhcCk7Ci0jZW5kaWYKLQotICAgIEJ1dHRvbiBidXR0b24oKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQotICAgIHVuc2lnbmVkIHNob3J0
IGJ1dHRvbnMoKSBjb25zdCB7IHJldHVybiBtX2J1dHRvbnM7IH0KLSAgICBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9IC8vIFJl
bGF0aXZlIHRvIHRoZSB2aWV3LgotICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsUG9zaXRpb247IH0KLSAgICBmbG9hdCBk
ZWx0YVgoKSBjb25zdCB7IHJldHVybiBtX2RlbHRhWDsgfQotICAgIGZsb2F0IGRlbHRhWSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGVsdGFZOyB9Ci0gICAgZmxvYXQgZGVsdGFaKCkgY29uc3QgeyByZXR1
cm4gbV9kZWx0YVo7IH0KLSAgICBpbnQzMl90IGNsaWNrQ291bnQoKSBjb25zdCB7IHJldHVybiBt
X2NsaWNrQ291bnQ7IH0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgaW50MzJfdCBldmVudE51bWJl
cigpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnROdW1iZXI7IH0KLSAgICBpbnQzMl90IG1lbnVUeXBl
Rm9yRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX21lbnVUeXBlRm9yRXZlbnQ7IH0KLSNlbmRpZgot
ICAgIGRvdWJsZSBmb3JjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2U7IH0KLSAgICBTeW50aGV0
aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8U3ludGhldGljQ2xpY2tUeXBlPihtX3N5bnRoZXRpY0NsaWNrVHlwZSk7IH0KLQotICAgIHZv
aWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9S
RVRVUk4gYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViTW91c2VFdmVudCYpOwotCi1wcml2
YXRlOgotICAgIHN0YXRpYyBib29sIGlzTW91c2VFdmVudFR5cGUoVHlwZSk7Ci0KLSAgICB1aW50
MzJfdCBtX2J1dHRvbiB7IHN0YXRpY19jYXN0PHVpbnQzMl90PihOb0J1dHRvbikgfTsKLSAgICB1
bnNpZ25lZCBzaG9ydCBtX2J1dHRvbnMgeyAwIH07Ci0gICAgV2ViQ29yZTo6SW50UG9pbnQgbV9w
b3NpdGlvbjsgLy8gUmVsYXRpdmUgdG8gdGhlIHZpZXcuCi0gICAgV2ViQ29yZTo6SW50UG9pbnQg
bV9nbG9iYWxQb3NpdGlvbjsKLSAgICBmbG9hdCBtX2RlbHRhWCB7IDAgfTsKLSAgICBmbG9hdCBt
X2RlbHRhWSB7IDAgfTsKLSAgICBmbG9hdCBtX2RlbHRhWiB7IDAgfTsKLSAgICBpbnQzMl90IG1f
Y2xpY2tDb3VudCB7IDAgfTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgaW50MzJfdCBtX2V2ZW50
TnVtYmVyIHsgLTEgfTsKLSAgICBpbnQzMl90IG1fbWVudVR5cGVGb3JFdmVudCB7IDAgfTsKLSNl
bmRpZgotICAgIGRvdWJsZSBtX2ZvcmNlIHsgMCB9OwotICAgIHVpbnQzMl90IG1fc3ludGhldGlj
Q2xpY2tUeXBlIHsgTm9UYXAgfTsKLX07Ci0KLS8vIEZJWE1FOiBNb3ZlIHRoaXMgY2xhc3MgdG8g
aXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYldoZWVsRXZlbnQgOiBwdWJsaWMgV2ViRXZl
bnQgewotcHVibGljOgotICAgIGVudW0gR3JhbnVsYXJpdHkgewotICAgICAgICBTY3JvbGxCeVBh
Z2VXaGVlbEV2ZW50LAotICAgICAgICBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudAotICAgIH07Ci0K
LSAgICBlbnVtIFBoYXNlIHsKLSAgICAgICAgUGhhc2VOb25lICAgICAgICA9IDAsCi0gICAgICAg
IFBoYXNlQmVnYW4gICAgICAgPSAxIDw8IDAsCi0gICAgICAgIFBoYXNlU3RhdGlvbmFyeSAgPSAx
IDw8IDEsCi0gICAgICAgIFBoYXNlQ2hhbmdlZCAgICAgPSAxIDw8IDIsCi0gICAgICAgIFBoYXNl
RW5kZWQgICAgICAgPSAxIDw8IDMsCi0gICAgICAgIFBoYXNlQ2FuY2VsbGVkICAgPSAxIDw8IDQs
Ci0gICAgICAgIFBoYXNlTWF5QmVnaW4gICAgPSAxIDw8IDUsCi0gICAgfTsKLQotICAgIFdlYldo
ZWVsRXZlbnQoKSA9IGRlZmF1bHQ7Ci0KLSAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBPcHRpb25TZXQ8TW9kaWZpZXI+
LCBXYWxsVGltZSB0aW1lc3RhbXApOwotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdlYldoZWVs
RXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
ZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHks
IGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1Q
aGFzZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxDb3Vu
dCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEs
IE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Ci0jZWxpZiBQTEFURk9S
TShHVEspIHx8IFVTRShMSUJXUEUpCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVs
YXJpdHksIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Ci0jZW5kaWYK
LQotICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9wb3NpdGlvbjsgfQotICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxQb3NpdGlvbjsgfQotICAgIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSBkZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsdGE7IH0KLSAgICBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxUaWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fd2hlZWxUaWNr
czsgfQotICAgIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8R3JhbnVsYXJpdHk+KG1fZ3JhbnVsYXJpdHkpOyB9Ci0gICAgYm9vbCBkaXJlY3Rpb25J
bnZlcnRlZEZyb21EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvbkludmVydGVkRnJv
bURldmljZTsgfQotICAgIFBoYXNlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
UGhhc2U+KG1fcGhhc2UpOyB9Ci0gICAgUGhhc2UgbW9tZW50dW1QaGFzZSgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PFBoYXNlPihtX21vbWVudHVtUGhhc2UpOyB9Ci0jaWYgUExBVEZPUk0o
Q09DT0EpCi0gICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkgY29uc3QgeyByZXR1
cm4gbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOyB9Ci0gICAgdWludDMyX3Qgc2Nyb2xsQ291
bnQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbENvdW50OyB9Ci0gICAgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEoKSBjb25zdCB7IHJldHVybiBt
X3VuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YTsgfQotI2VuZGlmCi0KLSAgICB2b2lkIGVuY29k
ZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYldoZWVsRXZlbnQmKTsKLQotcHJpdmF0ZToKLSAg
ICBzdGF0aWMgYm9vbCBpc1doZWVsRXZlbnRUeXBlKFR5cGUpOwotCi0gICAgV2ViQ29yZTo6SW50
UG9pbnQgbV9wb3NpdGlvbjsKLSAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2dsb2JhbFBvc2l0aW9u
OwotICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX2RlbHRhOwotICAgIFdlYkNvcmU6OkZsb2F0U2l6
ZSBtX3doZWVsVGlja3M7Ci0gICAgdWludDMyX3QgbV9ncmFudWxhcml0eSB7IFNjcm9sbEJ5UGFn
ZVdoZWVsRXZlbnQgfTsKLSAgICBib29sIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlIHsg
ZmFsc2UgfTsKLSAgICB1aW50MzJfdCBtX3BoYXNlIHsgUGhhc2U6OlBoYXNlTm9uZSB9OwotICAg
IHVpbnQzMl90IG1fbW9tZW50dW1QaGFzZSB7IFBoYXNlOjpQaGFzZU5vbmUgfTsKLSNpZiBQTEFU
Rk9STShDT0NPQSkKLSAgICBib29sIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyB7IGZhbHNl
IH07Ci0gICAgdWludDMyX3QgbV9zY3JvbGxDb3VudCB7IDAgfTsKLSAgICBXZWJDb3JlOjpGbG9h
dFNpemUgbV91bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGE7Ci0jZW5kaWYKLX07Ci0KLS8vIEZJ
WE1FOiBNb3ZlIHRoaXMgY2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYktl
eWJvYXJkRXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewotcHVibGljOgotICAgIFdlYktleWJvYXJk
RXZlbnQoKTsKLSAgICB+V2ViS2V5Ym9hcmRFdmVudCgpOwotCi0jaWYgVVNFKEFQUEtJVCkKLSAg
ICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwg
Y29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBp
bnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBoYW5kbGVkQnlJ
bnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mLCBib29s
IGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0
PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKLSNlbGlmIFBMQVRGT1JNKEdUSykKLSAg
ICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wg
aGFuZGxlZEJ5SW5wdXRNZXRob2QsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlv
blVuZGVybGluZT4+JiYsIE9wdGlvbmFsPEVkaXRpbmdSYW5nZT4mJiwgVmVjdG9yPFN0cmluZz4m
JiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUg
dGltZXN0YW1wKTsKLSNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgV2ViS2V5Ym9hcmRF
dmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRl
eHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYg
a2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1
YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGJv
b2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBPcHRpb25T
ZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOwotI2VsaWYgVVNFKExJQldQRSkKLSAg
ICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wg
aGFuZGxlZEJ5SW5wdXRNZXRob2QsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlv
blVuZGVybGluZT4+JiYsIE9wdGlvbmFsPEVkaXRpbmdSYW5nZT4mJiwgYm9vbCBpc0tleXBhZCwg
T3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKLSNlbHNlCi0gICAgV2Vi
S2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5t
b2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5h
dGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBi
b29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBPcHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxs
VGltZSB0aW1lc3RhbXApOwotI2VuZGlmCi0KLSAgICBjb25zdCBTdHJpbmcmIHRleHQoKSBjb25z
dCB7IHJldHVybiBtX3RleHQ7IH0KLSAgICBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0KCkg
Y29uc3QgeyByZXR1cm4gbV91bm1vZGlmaWVkVGV4dDsgfQotICAgIGNvbnN0IFN0cmluZyYga2V5
KCkgY29uc3QgeyByZXR1cm4gbV9rZXk7IH0KLSAgICBjb25zdCBTdHJpbmcmIGNvZGUoKSBjb25z
dCB7IHJldHVybiBtX2NvZGU7IH0KLSAgICBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX2tleUlkZW50aWZpZXI7IH0KLSAgICBpbnQzMl90IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlOyB9Ci0g
ICAgaW50MzJfdCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZl
VmlydHVhbEtleUNvZGU7IH0KLSAgICBpbnQzMl90IG1hY0NoYXJDb2RlKCkgY29uc3QgeyByZXR1
cm4gbV9tYWNDaGFyQ29kZTsgfQotI2lmIFVTRShBUFBLSVQpIHx8IFVTRShVSUtJVF9LRVlCT0FS
RF9BRERJVElPTlMpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKLSAgICBib29sIGhh
bmRsZWRCeUlucHV0TWV0aG9kKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGVkQnlJbnB1dE1ldGhv
ZDsgfQotI2VuZGlmCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQotICAgIGNvbnN0
IE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZT4+JiBwcmVlZGl0
VW5kZXJsaW5lcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZWRpdFVuZGVybGluZXM7IH0KLSAgICBj
b25zdCBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+JiBwcmVlZGl0U2VsZWN0aW9uUmFuZ2UoKSBjb25z
dCB7IHJldHVybiBtX3ByZWVkaXRTZWxlY3Rpb25SYW5nZTsgfQotI2VuZGlmCi0jaWYgVVNFKEFQ
UEtJVCkKLSAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFu
ZHMoKSBjb25zdCB7IHJldHVybiBtX2NvbW1hbmRzOyB9Ci0jZWxpZiBQTEFURk9STShHVEspCi0g
ICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvbW1hbmRzKCkgY29uc3QgeyByZXR1cm4gbV9jb21t
YW5kczsgfQotI2VuZGlmCi0gICAgYm9vbCBpc0F1dG9SZXBlYXQoKSBjb25zdCB7IHJldHVybiBt
X2lzQXV0b1JlcGVhdDsgfQotICAgIGJvb2wgaXNLZXlwYWQoKSBjb25zdCB7IHJldHVybiBtX2lz
S2V5cGFkOyB9Ci0gICAgYm9vbCBpc1N5c3RlbUtleSgpIGNvbnN0IHsgcmV0dXJuIG1faXNTeXN0
ZW1LZXk7IH0KLQotICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0
YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViS2V5
Ym9hcmRFdmVudCYpOwotCi0gICAgc3RhdGljIGJvb2wgaXNLZXlib2FyZEV2ZW50VHlwZShUeXBl
KTsKLQotcHJpdmF0ZToKLSAgICBTdHJpbmcgbV90ZXh0OwotICAgIFN0cmluZyBtX3VubW9kaWZp
ZWRUZXh0OwotICAgIFN0cmluZyBtX2tleTsKLSAgICBTdHJpbmcgbV9jb2RlOwotICAgIFN0cmlu
ZyBtX2tleUlkZW50aWZpZXI7Ci0gICAgaW50MzJfdCBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSB7
IDAgfTsKLSAgICBpbnQzMl90IG1fbmF0aXZlVmlydHVhbEtleUNvZGUgeyAwIH07Ci0gICAgaW50
MzJfdCBtX21hY0NoYXJDb2RlIHsgMCB9OwotI2lmIFVTRShBUFBLSVQpIHx8IFVTRShVSUtJVF9L
RVlCT0FSRF9BRERJVElPTlMpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKLSAgICBi
b29sIG1faGFuZGxlZEJ5SW5wdXRNZXRob2QgeyBmYWxzZSB9OwotI2VuZGlmCi0jaWYgUExBVEZP
Uk0oR1RLKSB8fCBVU0UoTElCV1BFKQotICAgIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21w
b3NpdGlvblVuZGVybGluZT4+IG1fcHJlZWRpdFVuZGVybGluZXM7Ci0gICAgT3B0aW9uYWw8RWRp
dGluZ1JhbmdlPiBtX3ByZWVkaXRTZWxlY3Rpb25SYW5nZTsKLSNlbmRpZgotI2lmIFVTRShBUFBL
SVQpCi0gICAgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gbV9jb21tYW5kczsKLSNl
bGlmIFBMQVRGT1JNKEdUSykKLSAgICBWZWN0b3I8U3RyaW5nPiBtX2NvbW1hbmRzOwotI2VuZGlm
Ci0gICAgYm9vbCBtX2lzQXV0b1JlcGVhdCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzS2V5cGFk
IHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNTeXN0ZW1LZXkgeyBmYWxzZSB9OwotfTsKLQotI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLWNsYXNzIFdl
YlBsYXRmb3JtVG91Y2hQb2ludCB7Ci1wdWJsaWM6Ci0gICAgZW51bSBUb3VjaFBvaW50U3RhdGUg
ewotICAgICAgICBUb3VjaFJlbGVhc2VkLAotICAgICAgICBUb3VjaFByZXNzZWQsCi0gICAgICAg
IFRvdWNoTW92ZWQsCi0gICAgICAgIFRvdWNoU3RhdGlvbmFyeSwKLSAgICAgICAgVG91Y2hDYW5j
ZWxsZWQKLSAgICB9OwotCi0gICAgZW51bSBjbGFzcyBUb3VjaFR5cGUgewotICAgICAgICBEaXJl
Y3QsCi0gICAgICAgIFN0eWx1cwotICAgIH07Ci0KLSAgICBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQo
KSA9IGRlZmF1bHQ7Ci0gICAgV2ViUGxhdGZvcm1Ub3VjaFBvaW50KHVuc2lnbmVkIGlkZW50aWZp
ZXIsIFdlYkNvcmU6OkludFBvaW50IGxvY2F0aW9uLCBUb3VjaFBvaW50U3RhdGUgcGhhc2UpCi0g
ICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgICAgICwgbV9sb2NhdGlvbihs
b2NhdGlvbikKLSAgICAgICAgLCBtX3BoYXNlKHBoYXNlKQotICAgIHsKLSAgICB9Ci0KLSAgICB1
bnNpZ25lZCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0gICAg
V2ViQ29yZTo6SW50UG9pbnQgbG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2xvY2F0aW9uOyB9
Ci0gICAgVG91Y2hQb2ludFN0YXRlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
VG91Y2hQb2ludFN0YXRlPihtX3BoYXNlKTsgfQotICAgIFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIHBoYXNlKCk7IH0KLQotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQotICAgIHZvaWQgc2V0UmFkaXVzWChkb3VibGUgcmFkaXVzWCkgeyBtX3JhZGl1c1ggPSByYWRp
dXNYOyB9Ci0gICAgZG91YmxlIHJhZGl1c1goKSBjb25zdCB7IHJldHVybiBtX3JhZGl1c1g7IH0K
LSAgICB2b2lkIHNldFJhZGl1c1koZG91YmxlIHJhZGl1c1kpIHsgbV9yYWRpdXNZID0gcmFkaXVz
WTsgfQotICAgIGRvdWJsZSByYWRpdXNZKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXNZOyB9Ci0g
ICAgdm9pZCBzZXRSb3RhdGlvbkFuZ2xlKGRvdWJsZSByb3RhdGlvbkFuZ2xlKSB7IG1fcm90YXRp
b25BbmdsZSA9IHJvdGF0aW9uQW5nbGU7IH0KLSAgICBkb3VibGUgcm90YXRpb25BbmdsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcm90YXRpb25BbmdsZTsgfQotICAgIHZvaWQgc2V0Rm9yY2UoZG91Ymxl
IGZvcmNlKSB7IG1fZm9yY2UgPSBmb3JjZTsgfQotICAgIGRvdWJsZSBmb3JjZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZm9yY2U7IH0KLSAgICB2b2lkIHNldEFsdGl0dWRlQW5nbGUoZG91YmxlIGFsdGl0
dWRlQW5nbGUpIHsgbV9hbHRpdHVkZUFuZ2xlID0gYWx0aXR1ZGVBbmdsZTsgfQotICAgIGRvdWJs
ZSBhbHRpdHVkZUFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9hbHRpdHVkZUFuZ2xlOyB9Ci0gICAg
dm9pZCBzZXRBemltdXRoQW5nbGUoZG91YmxlIGF6aW11dGhBbmdsZSkgeyBtX2F6aW11dGhBbmds
ZSA9IGF6aW11dGhBbmdsZTsgfQotICAgIGRvdWJsZSBhemltdXRoQW5nbGUoKSBjb25zdCB7IHJl
dHVybiBtX2F6aW11dGhBbmdsZTsgfQotICAgIHZvaWQgc2V0VG91Y2hUeXBlKFRvdWNoVHlwZSB0
b3VjaFR5cGUpIHsgbV90b3VjaFR5cGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4odG91Y2hUeXBl
KTsgfQotICAgIFRvdWNoVHlwZSB0b3VjaFR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxUb3VjaFR5cGU+KG1fdG91Y2hUeXBlKTsgfQotI2VuZGlmCi0KLSAgICB2b2lkIGVuY29kZShJ
UEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgT3B0aW9uYWw8V2ViUGxhdGZvcm1Ub3Vj
aFBvaW50PiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7Ci0KLXByaXZhdGU6Ci0gICAgdW5zaWduZWQg
bV9pZGVudGlmaWVyIHsgMCB9OwotICAgIFdlYkNvcmU6OkludFBvaW50IG1fbG9jYXRpb247Ci0g
ICAgdWludDMyX3QgbV9waGFzZSB7IFRvdWNoUmVsZWFzZWQgfTsKLSNpZiBFTkFCTEUoSU9TX1RP
VUNIX0VWRU5UUykKLSAgICBkb3VibGUgbV9yYWRpdXNYIHsgMCB9OwotICAgIGRvdWJsZSBtX3Jh
ZGl1c1kgeyAwIH07Ci0gICAgZG91YmxlIG1fcm90YXRpb25BbmdsZSB7IDAgfTsKLSAgICBkb3Vi
bGUgbV9mb3JjZSB7IDAgfTsKLSAgICBkb3VibGUgbV9hbHRpdHVkZUFuZ2xlIHsgMCB9OwotICAg
IGRvdWJsZSBtX2F6aW11dGhBbmdsZSB7IDAgfTsKLSAgICB1aW50MzJfdCBtX3RvdWNoVHlwZSB7
IHN0YXRpY19jYXN0PHVpbnQzMl90PihUb3VjaFR5cGU6OkRpcmVjdCkgfTsKLSNlbmRpZgotfTsK
LQotY2xhc3MgV2ViVG91Y2hFdmVudCA6IHB1YmxpYyBXZWJFdmVudCB7Ci1wdWJsaWM6Ci0gICAg
V2ViVG91Y2hFdmVudCgpID0gZGVmYXVsdDsKLSAgICBXZWJUb3VjaEV2ZW50KFdlYkV2ZW50OjpU
eXBlIHR5cGUsIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3Rh
bXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cywgV2Vi
Q29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3RlbnRpYWxUYXAsIGJvb2wgaXNHZXN0
dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKLSAgICAgICAg
OiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKLSAgICAgICAgLCBtX3RvdWNo
UG9pbnRzKHRvdWNoUG9pbnRzKQotICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCi0gICAg
ICAgICwgbV9jYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXModHJ1ZSkKLSAgICAgICAgLCBtX2lzUG90
ZW50aWFsVGFwKGlzUG90ZW50aWFsVGFwKQotICAgICAgICAsIG1faXNHZXN0dXJlKGlzR2VzdHVy
ZSkKLSAgICAgICAgLCBtX2dlc3R1cmVTY2FsZShnZXN0dXJlU2NhbGUpCi0gICAgICAgICwgbV9n
ZXN0dXJlUm90YXRpb24oZ2VzdHVyZVJvdGF0aW9uKQotICAgIHsKLSAgICAgICAgQVNTRVJUKHR5
cGUgPT0gVG91Y2hTdGFydCB8fCB0eXBlID09IFRvdWNoTW92ZSB8fCB0eXBlID09IFRvdWNoRW5k
IHx8IHR5cGUgPT0gVG91Y2hDYW5jZWwpOwotICAgIH0KLQotICAgIGNvbnN0IFZlY3RvcjxXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdG91Y2hQ
b2ludHM7IH0KLQotICAgIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9wb3NpdGlvbjsgfQotCi0gICAgYm9vbCBpc1BvdGVudGlhbFRhcCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNQb3RlbnRpYWxUYXA7IH0KLQotICAgIGJvb2wgaXNHZXN0dXJlKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc0dlc3R1cmU7IH0KLSAgICBmbG9hdCBnZXN0dXJlU2NhbGUoKSBjb25zdCB7IHJl
dHVybiBtX2dlc3R1cmVTY2FsZTsgfQotICAgIGZsb2F0IGdlc3R1cmVSb3RhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fZ2VzdHVyZVJvdGF0aW9uOyB9Ci0KLSAgICBib29sIGNhblByZXZlbnROYXRp
dmVHZXN0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzOyB9
Ci0gICAgdm9pZCBzZXRDYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMoYm9vbCBjYW5QcmV2ZW50TmF0
aXZlR2VzdHVyZXMpIHsgbV9jYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMgPSBjYW5QcmV2ZW50TmF0
aXZlR2VzdHVyZXM7IH0KLQotICAgIGJvb2wgYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgpIGNv
bnN0OwotCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJUb3VjaEV2
ZW50Jik7Ci0gICAgCi1wcml2YXRlOgotICAgIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+
IG1fdG91Y2hQb2ludHM7Ci0gICAgCi0gICAgV2ViQ29yZTo6SW50UG9pbnQgbV9wb3NpdGlvbjsK
LSAgICBib29sIG1fY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzIHsgZmFsc2UgfTsKLSAgICBib29s
IG1faXNQb3RlbnRpYWxUYXAgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc0dlc3R1cmUgeyBmYWxz
ZSB9OwotICAgIGZsb2F0IG1fZ2VzdHVyZVNjYWxlIHsgMCB9OwotICAgIGZsb2F0IG1fZ2VzdHVy
ZVJvdGF0aW9uIHsgMCB9OwotfTsKLSNlbHNlCi0vLyBGSVhNRTogTW92ZSB0aGlzIGNsYXNzIHRv
IGl0cyBvd24gaGVhZGVyIGZpbGUuCi0vLyBGSVhNRTogSGF2aW5nICJQbGF0Zm9ybSIgaW4gdGhl
IG5hbWUgbWFrZXMgaXQgc291bmQgbGlrZSB0aGlzIGV2ZW50IGlzIHBsYXRmb3JtLXNwZWNpZmlj
IG9yIGxvdy0KLS8vIGxldmVsIGluIHNvbWUgd2F5LiBUaGF0IGRvZXNuJ3Qgc2VlbSB0byBiZSB0
aGUgY2FzZS4KLWNsYXNzIFdlYlBsYXRmb3JtVG91Y2hQb2ludCB7Ci1wdWJsaWM6Ci0gICAgZW51
bSBUb3VjaFBvaW50U3RhdGUgewotICAgICAgICBUb3VjaFJlbGVhc2VkLAotICAgICAgICBUb3Vj
aFByZXNzZWQsCi0gICAgICAgIFRvdWNoTW92ZWQsCi0gICAgICAgIFRvdWNoU3RhdGlvbmFyeSwK
LSAgICAgICAgVG91Y2hDYW5jZWxsZWQKLSAgICB9OwotCi0gICAgV2ViUGxhdGZvcm1Ub3VjaFBv
aW50KCkgOiBtX3JvdGF0aW9uQW5nbGUoMC4wKSwgbV9mb3JjZSgwLjApIHsgfQotCi0gICAgV2Vi
UGxhdGZvcm1Ub3VjaFBvaW50KHVpbnQzMl90IGlkLCBUb3VjaFBvaW50U3RhdGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBzY3JlZW5Qb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IHBvc2l0aW9uKTsKLQotICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCh1aW50MzJfdCBpZCwgVG91
Y2hQb2ludFN0YXRlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2NyZWVuUG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
cmFkaXVzLCBmbG9hdCByb3RhdGlvbkFuZ2xlID0gMC4wLCBmbG9hdCBmb3JjZSA9IDAuMCk7Ci0g
ICAgCi0gICAgdWludDMyX3QgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9Ci0gICAgVG91Y2hQ
b2ludFN0YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VG91Y2hQb2ludFN0
YXRlPihtX3N0YXRlKTsgfQotCi0gICAgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcmVlblBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zY3JlZW5Qb3NpdGlvbjsgfQotICAgIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0K
LSAgICBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiByYWRpdXMoKSBjb25zdCB7IHJldHVybiBtX3Jh
ZGl1czsgfQotICAgIGZsb2F0IHJvdGF0aW9uQW5nbGUoKSBjb25zdCB7IHJldHVybiBtX3JvdGF0
aW9uQW5nbGU7IH0KLSAgICBmbG9hdCBmb3JjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2U7IH0K
LQotICAgIHZvaWQgc2V0U3RhdGUoVG91Y2hQb2ludFN0YXRlIHN0YXRlKSB7IG1fc3RhdGUgPSBz
dGF0ZTsgfQotCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3Rh
dGljIE9wdGlvbmFsPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gZGVjb2RlKElQQzo6RGVjb2RlciYp
OwotCi1wcml2YXRlOgotICAgIHVpbnQzMl90IG1faWQ7Ci0gICAgdWludDMyX3QgbV9zdGF0ZTsK
LSAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3NjcmVlblBvc2l0aW9uOwotICAgIFdlYkNvcmU6Oklu
dFBvaW50IG1fcG9zaXRpb247Ci0gICAgV2ViQ29yZTo6SW50U2l6ZSBtX3JhZGl1czsKLSAgICBm
bG9hdCBtX3JvdGF0aW9uQW5nbGU7Ci0gICAgZmxvYXQgbV9mb3JjZTsKLX07Ci0KLS8vIEZJWE1F
OiBNb3ZlIHRoaXMgY2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYlRvdWNo
RXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewotcHVibGljOgotICAgIFdlYlRvdWNoRXZlbnQoKSB7
IH0KLSAgICBXZWJUb3VjaEV2ZW50KFR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+
JiYsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Ci0KLSAgICBjb25z
dCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMoKSBjb25zdCB7IHJl
dHVybiBtX3RvdWNoUG9pbnRzOyB9Ci0KLSAgICBib29sIGFsbFRvdWNoUG9pbnRzQXJlUmVsZWFz
ZWQoKSBjb25zdDsKLQotICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAg
IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2Vi
VG91Y2hFdmVudCYpOwotICAKLXByaXZhdGU6Ci0gICAgc3RhdGljIGJvb2wgaXNUb3VjaEV2ZW50
VHlwZShUeXBlKTsKLQotICAgIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+IG1fdG91Y2hQ
b2ludHM7Ci19OwotCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNlbmRpZiAvLyBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogbmFtZXNwYWNl
IFdURiB7CkBAIC01MDgsMjMgKzEyOCw0IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+IHsKICAgICA+OwogfTsKIAotdGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbj4gewotICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6
QnV0dG9uLAotICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbjo6TGVmdEJ1dHRv
biwKLSAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246Ok1pZGRsZUJ1dHRvbiwK
LSAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246OlJpZ2h0QnV0dG9uLAotICAg
ICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbjo6Tm9CdXR0b24KLSAgICA+OwotfTsK
LQotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5
bnRoZXRpY0NsaWNrVHlwZT4gewotICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAg
ICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBlLAotICAgICAgICBX
ZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZTo6Tm9UYXAsCi0gICAgICAg
IFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBlOjpPbmVGaW5nZXJUYXAs
Ci0gICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBlOjpUd29G
aW5nZXJUYXAKLSAgICA+OwotfTsKLQogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcAppbmRleCA4YTZlNDE4Njg4MTgxYWE3ZTM2
NjNkMDUzODcwZGU0YmUwMjhjYmFiLi4yZGUyNjAxNTU5NWEzODNmYjNiMTdlYWY3NDZkMjk2ZjZl
OTk4ODdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudENvbnZlcnNp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAK
QEAgLTI2LDcgKzI2LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViRXZl
bnRDb252ZXJzaW9uLmgiCiAKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYktl
eWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiV2Vi
VG91Y2hFdmVudC5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZlbnQuaCIKIAogI2lmIEVOQUJMRShN
QUNfR0VTVFVSRV9FVkVOVFMpCiAjaW5jbHVkZSAiV2ViR2VzdHVyZUV2ZW50LmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwCmluZGV4IGNjY2I1NjA0MThmMzJmYWQ0
MDU4N2FjMDgzYjk1ZjM5OGViMTM5OWQuLmJjNDMyMjI4NjQ4NGU2YWZkZDQ5MzUzZmFlNmE4ZmIz
Y2Q1ZTY2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwCkBA
IC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldl
YkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2V5Ym9hcmRFdmVudC5oIgogCiAjaW5jbHVkZSAiV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9LZXlwcmVzc0NvbW1hbmQu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjgw
MjlkYzQ2ZGMyNTMxZjVjYzIzNDA5ZGM2ZDJmMTFkNWEzYjQ5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5oCkBAIC0wLDAgKzEsMTExIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IkVkaXRpbmdSYW5nZS5oIgorI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9Db21wb3NpdGlvblVuZGVybGluZS5oPgorCisjaWYgVVNFKEFQUEtJVCkKKyNpbmNsdWRlIDxX
ZWJDb3JlL0tleXByZXNzQ29tbWFuZC5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJLZXlib2FyZEV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKK3B1YmxpYzoKKyAg
ICBXZWJLZXlib2FyZEV2ZW50KCk7CisgICAgfldlYktleWJvYXJkRXZlbnQoKTsKKworI2lmIFVT
RShBUFBLSVQpCisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJv
b2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0Nv
bW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1L
ZXksIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZWxpZiBQTEFU
Rk9STShHVEspCisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5
SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxL
ZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBPcHRpb25hbDxWZWN0b3I8V2ViQ29y
ZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+PiYmLCBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+JiYsIFZl
Y3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNLZXlwYWQsIE9wdGlvblNldDxNb2RpZmll
cj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcm
IHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBj
b25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGlu
dCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGhhbmRsZWRCeUlu
cHV0TWV0aG9kLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3Rl
bUtleSwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKKyNlbGlmIFVT
RShMSUJXUEUpCisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5
SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxL
ZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBPcHRpb25hbDxWZWN0b3I8V2ViQ29y
ZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+PiYmLCBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+JiYsIGJv
b2wgaXNLZXlwYWQsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Cisj
ZWxzZQorICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5n
JiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtl
eUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlz
QXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0PE1v
ZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKKyNlbmRpZgorCisgICAgY29uc3QgU3RyaW5n
JiB0ZXh0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0OyB9CisgICAgY29uc3QgU3RyaW5nJiB1bm1v
ZGlmaWVkVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5tb2RpZmllZFRleHQ7IH0KKyAgICBjb25z
dCBTdHJpbmcmIGtleSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5OyB9CisgICAgY29uc3QgU3RyaW5n
JiBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlOyB9CisgICAgY29uc3QgU3RyaW5nJiBrZXlJ
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9rZXlJZGVudGlmaWVyOyB9CisgICAgaW50MzJf
dCB3aW5kb3dzVmlydHVhbEtleUNvZGUoKSBjb25zdCB7IHJldHVybiBtX3dpbmRvd3NWaXJ0dWFs
S2V5Q29kZTsgfQorICAgIGludDMyX3QgbmF0aXZlVmlydHVhbEtleUNvZGUoKSBjb25zdCB7IHJl
dHVybiBtX25hdGl2ZVZpcnR1YWxLZXlDb2RlOyB9CisgICAgaW50MzJfdCBtYWNDaGFyQ29kZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWFjQ2hhckNvZGU7IH0KKyNpZiBVU0UoQVBQS0lUKSB8fCBVU0Uo
VUlLSVRfS0VZQk9BUkRfQURESVRJT05TKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUp
CisgICAgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxl
ZEJ5SW5wdXRNZXRob2Q7IH0KKyNlbmRpZgorI2lmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQ
RSkKKyAgICBjb25zdCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxp
bmU+PiYgcHJlZWRpdFVuZGVybGluZXMoKSBjb25zdCB7IHJldHVybiBtX3ByZWVkaXRVbmRlcmxp
bmVzOyB9CisgICAgY29uc3QgT3B0aW9uYWw8RWRpdGluZ1JhbmdlPiYgcHJlZWRpdFNlbGVjdGlv
blJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9wcmVlZGl0U2VsZWN0aW9uUmFuZ2U7IH0KKyNlbmRp
ZgorI2lmIFVTRShBUFBLSVQpCisgICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29t
bWFuZD4mIGNvbW1hbmRzKCkgY29uc3QgeyByZXR1cm4gbV9jb21tYW5kczsgfQorI2VsaWYgUExB
VEZPUk0oR1RLKQorICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb21tYW5kcygpIGNvbnN0IHsg
cmV0dXJuIG1fY29tbWFuZHM7IH0KKyNlbmRpZgorICAgIGJvb2wgaXNBdXRvUmVwZWF0KCkgY29u
c3QgeyByZXR1cm4gbV9pc0F1dG9SZXBlYXQ7IH0KKyAgICBib29sIGlzS2V5cGFkKCkgY29uc3Qg
eyByZXR1cm4gbV9pc0tleXBhZDsgfQorICAgIGJvb2wgaXNTeXN0ZW1LZXkoKSBjb25zdCB7IHJl
dHVybiBtX2lzU3lzdGVtS2V5OyB9CisKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBj
b25zdDsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKElQQzo6RGVj
b2RlciYsIFdlYktleWJvYXJkRXZlbnQmKTsKKworICAgIHN0YXRpYyBib29sIGlzS2V5Ym9hcmRF
dmVudFR5cGUoVHlwZSk7CisKK3ByaXZhdGU6CisgICAgU3RyaW5nIG1fdGV4dDsKKyAgICBTdHJp
bmcgbV91bm1vZGlmaWVkVGV4dDsKKyAgICBTdHJpbmcgbV9rZXk7CisgICAgU3RyaW5nIG1fY29k
ZTsKKyAgICBTdHJpbmcgbV9rZXlJZGVudGlmaWVyOworICAgIGludDMyX3QgbV93aW5kb3dzVmly
dHVhbEtleUNvZGUgeyAwIH07CisgICAgaW50MzJfdCBtX25hdGl2ZVZpcnR1YWxLZXlDb2RlIHsg
MCB9OworICAgIGludDMyX3QgbV9tYWNDaGFyQ29kZSB7IDAgfTsKKyNpZiBVU0UoQVBQS0lUKSB8
fCBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShM
SUJXUEUpCisgICAgYm9vbCBtX2hhbmRsZWRCeUlucHV0TWV0aG9kIHsgZmFsc2UgfTsKKyNlbmRp
ZgorI2lmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKKyAgICBPcHRpb25hbDxWZWN0b3I8
V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+PiBtX3ByZWVkaXRVbmRlcmxpbmVzOworICAg
IE9wdGlvbmFsPEVkaXRpbmdSYW5nZT4gbV9wcmVlZGl0U2VsZWN0aW9uUmFuZ2U7CisjZW5kaWYK
KyNpZiBVU0UoQVBQS0lUKQorICAgIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IG1f
Y29tbWFuZHM7CisjZWxpZiBQTEFURk9STShHVEspCisgICAgVmVjdG9yPFN0cmluZz4gbV9jb21t
YW5kczsKKyNlbmRpZgorICAgIGJvb2wgbV9pc0F1dG9SZXBlYXQgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9pc0tleXBhZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzU3lzdGVtS2V5IHsgZmFsc2Ug
fTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3Vz
ZUV2ZW50LmNwcAppbmRleCA3YjI3MGRjM2RiZTk4ZjYyOTBiODAxNzMzZWZmMzlmOTFhZWU0YTY5
Li44OGJkNTY0NzM0MzlhNzFmNGNiZGViMzBhYTQzN2JjOTRiMGZhMWM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYk1vdXNl
RXZlbnQuaCIKIAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTlhMWI1ZmE4NmI2OGM4NDY0ZDcz
MjcyZjEyMjJlOTA2MWJmODk1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYk1vdXNlRXZlbnQuaApAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKy8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkg
bW92ZSB0byBtYWtlaW5nIHRoZSBXZWJDb3JlL1BsYXRmb3JtRm9vRXZlbnRzIHRyaXZpYWwgY2xh
c3NlcyBzbyB0aGF0CisvLyB3ZSBjYW4gdXNlIHRoZW0gYXMgdGhlIGV2ZW50IHR5cGUuCisKKyNp
bmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk1vdXNlRXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQg
eworcHVibGljOgorICAgIGVudW0gQnV0dG9uIHsKKyAgICAgICAgTGVmdEJ1dHRvbiA9IDAsCisg
ICAgICAgIE1pZGRsZUJ1dHRvbiwKKyAgICAgICAgUmlnaHRCdXR0b24sCisgICAgICAgIE5vQnV0
dG9uID0gLTIKKyAgICB9OworCisgICAgZW51bSBTeW50aGV0aWNDbGlja1R5cGUgeyBOb1RhcCwg
T25lRmluZ2VyVGFwLCBUd29GaW5nZXJUYXAgfTsKKworICAgIFdlYk1vdXNlRXZlbnQoKTsKKwor
I2lmIFBMQVRGT1JNKE1BQykKKyAgICBXZWJNb3VzZUV2ZW50KFR5cGUsIEJ1dHRvbiwgdW5zaWdu
ZWQgc2hvcnQgYnV0dG9ucywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uSW5WaWV3
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwg
ZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBPcHRpb25TZXQ8TW9k
aWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tU
eXBlID0gTm9UYXAsIGludCBldmVudE51bWJlciA9IC0xLCBpbnQgbWVudVR5cGUgPSAwKTsKKyNl
bHNlCisgICAgV2ViTW91c2VFdmVudChUeXBlLCBCdXR0b24sIHVuc2lnbmVkIHNob3J0IGJ1dHRv
bnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbkluVmlldywgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwg
ZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRp
bWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1Rh
cCk7CisjZW5kaWYKKworICAgIEJ1dHRvbiBidXR0b24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQorICAgIHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMoKSBj
b25zdCB7IHJldHVybiBtX2J1dHRvbnM7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
cG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9IC8vIFJlbGF0aXZlIHRvIHRo
ZSB2aWV3LgorICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fZ2xvYmFsUG9zaXRpb247IH0KKyAgICBmbG9hdCBkZWx0YVgoKSBjb25z
dCB7IHJldHVybiBtX2RlbHRhWDsgfQorICAgIGZsb2F0IGRlbHRhWSgpIGNvbnN0IHsgcmV0dXJu
IG1fZGVsdGFZOyB9CisgICAgZmxvYXQgZGVsdGFaKCkgY29uc3QgeyByZXR1cm4gbV9kZWx0YVo7
IH0KKyAgICBpbnQzMl90IGNsaWNrQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWNrQ291bnQ7
IH0KKyNpZiBQTEFURk9STShNQUMpCisgICAgaW50MzJfdCBldmVudE51bWJlcigpIGNvbnN0IHsg
cmV0dXJuIG1fZXZlbnROdW1iZXI7IH0KKyAgICBpbnQzMl90IG1lbnVUeXBlRm9yRXZlbnQoKSBj
b25zdCB7IHJldHVybiBtX21lbnVUeXBlRm9yRXZlbnQ7IH0KKyNlbmRpZgorICAgIGRvdWJsZSBm
b3JjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2U7IH0KKyAgICBTeW50aGV0aWNDbGlja1R5cGUg
c3ludGhldGljQ2xpY2tUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U3ludGhldGlj
Q2xpY2tUeXBlPihtX3N5bnRoZXRpY0NsaWNrVHlwZSk7IH0KKworICAgIHZvaWQgZW5jb2RlKElQ
Qzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViTW91c2VFdmVudCYpOworCitwcml2YXRlOgorICAgIHN0
YXRpYyBib29sIGlzTW91c2VFdmVudFR5cGUoVHlwZSk7CisKKyAgICB1aW50MzJfdCBtX2J1dHRv
biB7IHN0YXRpY19jYXN0PHVpbnQzMl90PihOb0J1dHRvbikgfTsKKyAgICB1bnNpZ25lZCBzaG9y
dCBtX2J1dHRvbnMgeyAwIH07CisgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9wb3NpdGlvbjsgLy8g
UmVsYXRpdmUgdG8gdGhlIHZpZXcuCisgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9nbG9iYWxQb3Np
dGlvbjsKKyAgICBmbG9hdCBtX2RlbHRhWCB7IDAgfTsKKyAgICBmbG9hdCBtX2RlbHRhWSB7IDAg
fTsKKyAgICBmbG9hdCBtX2RlbHRhWiB7IDAgfTsKKyAgICBpbnQzMl90IG1fY2xpY2tDb3VudCB7
IDAgfTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgaW50MzJfdCBtX2V2ZW50TnVtYmVyIHsgLTEg
fTsKKyAgICBpbnQzMl90IG1fbWVudVR5cGVGb3JFdmVudCB7IDAgfTsKKyNlbmRpZgorICAgIGRv
dWJsZSBtX2ZvcmNlIHsgMCB9OworICAgIHVpbnQzMl90IG1fc3ludGhldGljQ2xpY2tUeXBlIHsg
Tm9UYXAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1
dHRvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYktpdDo6
V2ViTW91c2VFdmVudDo6QnV0dG9uLAorICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1
dHRvbjo6TGVmdEJ1dHRvbiwKKyAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246
Ok1pZGRsZUJ1dHRvbiwKKyAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246OlJp
Z2h0QnV0dG9uLAorICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbjo6Tm9CdXR0
b24KKyAgICA+OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6Oldl
Yk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tU
eXBlLAorICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZTo6
Tm9UYXAsCisgICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBl
OjpPbmVGaW5nZXJUYXAsCisgICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGlj
Q2xpY2tUeXBlOjpUd29GaW5nZXJUYXAKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQbGF0Zm9ybVRvdWNoUG9pbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGxhdGZvcm1Ub3VjaFBvaW50LmNwcAppbmRl
eCA0NWEyMGU5YzM0ZTg3ODMzYzc2MDBjMDM5NTY2ZjBlOTk0MGVmOWZmLi5jZTc0YWJmZjkxY2M2
OWNiMDkyODQzNDkzMjRmYTQ4MDhhNjNmZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQbGF0Zm9ybVRvdWNoUG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKICAqLwogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJUb3Vj
aEV2ZW50LmgiCiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAhUExBVEZPUk0oSU9TX0ZB
TUlMWSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcAppbmRleCA4MmFkYTc3
ZjU4NzEzNzkwMTI3OGI4ODgyMThlOWJiZDBmM2U3YzBhLi42NTI0YTE5OWUwMmMzMGUxMmQ0NTNl
NTMwYmY3ODk2MjA1OTgyYmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJU
b3VjaEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNw
cApAQCAtMjQsMTQgKzI0LDE2IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgogCi0jaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisKIFdlYlRvdWNoRXZlbnQ6OldlYlRv
dWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2lu
dD4mJiB0b3VjaFBvaW50cywgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQog
ICAgICwgbV90b3VjaFBvaW50cyhXVEZNb3ZlKHRvdWNoUG9pbnRzKSkKQEAgLTYxLDcgKzYzLDE5
IEBAIGJvb2wgV2ViVG91Y2hFdmVudDo6aXNUb3VjaEV2ZW50VHlwZShUeXBlIHR5cGUpCiB7CiAg
ICAgcmV0dXJuIHR5cGUgPT0gVG91Y2hTdGFydCB8fCB0eXBlID09IFRvdWNoTW92ZSB8fCB0eXBl
ID09IFRvdWNoRW5kIHx8IHR5cGUgPT0gVG91Y2hDYW5jZWw7CiB9Ci0gICAgCisKKyNlbmRpZiAv
LyAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworYm9vbCBXZWJUb3VjaEV2ZW50OjphbGxUb3VjaFBv
aW50c0FyZVJlbGVhc2VkKCkgY29uc3QKK3sKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHRvdWNoUG9p
bnQgOiB0b3VjaFBvaW50cygpKSB7CisgICAgICAgIGlmICh0b3VjaFBvaW50LnN0YXRlKCkgIT0g
V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkICYmIHRvdWNoUG9pbnQuc3RhdGUo
KSAhPSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoQ2FuY2VsbGVkKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpICYmICFQTEFURk9S
TShJT1NfRkFNSUxZKQorI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJUb3VjaEV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc5YjA0OWM1ZWQ3YzAzN2JjODNlMzU2
NmExZjQ3MGI0YTU4NzZjNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlRvdWNoRXZlbnQuaApAQCAtMCwwICsxLDIxMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvSW50UG9pbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKy8vIEZJWE1FOiBIYXZp
bmcgIlBsYXRmb3JtIiBpbiB0aGUgbmFtZSBtYWtlcyBpdCBzb3VuZCBsaWtlIHRoaXMgZXZlbnQg
aXMgcGxhdGZvcm0tc3BlY2lmaWMgb3IKKy8vIGxvdy1sZXZlbCBpbiBzb21lIHdheS4gVGhhdCBk
b2Vzbid0IHNlZW0gdG8gYmUgdGhlIGNhc2UuCitjbGFzcyBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQg
eworcHVibGljOgorICAgIGVudW0gVG91Y2hQb2ludFN0YXRlIHsKKyAgICAgICAgVG91Y2hSZWxl
YXNlZCwKKyAgICAgICAgVG91Y2hQcmVzc2VkLAorICAgICAgICBUb3VjaE1vdmVkLAorICAgICAg
ICBUb3VjaFN0YXRpb25hcnksCisgICAgICAgIFRvdWNoQ2FuY2VsbGVkCisgICAgfTsKKworICAg
IGVudW0gY2xhc3MgVG91Y2hUeXBlIHsKKyAgICAgICAgRGlyZWN0LAorICAgICAgICBTdHlsdXMK
KyAgICB9OworCisgICAgV2ViUGxhdGZvcm1Ub3VjaFBvaW50KCkgPSBkZWZhdWx0OworICAgIFdl
YlBsYXRmb3JtVG91Y2hQb2ludCh1bnNpZ25lZCBpZGVudGlmaWVyLCBXZWJDb3JlOjpJbnRQb2lu
dCBsb2NhdGlvbiwgVG91Y2hQb2ludFN0YXRlIHBoYXNlKQorICAgICAgICA6IG1faWRlbnRpZmll
cihpZGVudGlmaWVyKQorICAgICAgICAsIG1fbG9jYXRpb24obG9jYXRpb24pCisgICAgICAgICwg
bV9waGFzZShwaGFzZSkKKyAgICB7CisgICAgfQorCisgICAgdW5zaWduZWQgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIFdlYkNvcmU6OkludFBvaW50IGxv
Y2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhdGlvbjsgfQorICAgIFRvdWNoUG9pbnRTdGF0
ZSBwaGFzZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRvdWNoUG9pbnRTdGF0ZT4obV9w
aGFzZSk7IH0KKyAgICBUb3VjaFBvaW50U3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBwaGFz
ZSgpOyB9CisKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKKyAgICB2b2lkIHNldFJhZGl1
c1goZG91YmxlIHJhZGl1c1gpIHsgbV9yYWRpdXNYID0gcmFkaXVzWDsgfQorICAgIGRvdWJsZSBy
YWRpdXNYKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXNYOyB9CisgICAgdm9pZCBzZXRSYWRpdXNZ
KGRvdWJsZSByYWRpdXNZKSB7IG1fcmFkaXVzWSA9IHJhZGl1c1k7IH0KKyAgICBkb3VibGUgcmFk
aXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaXVzWTsgfQorICAgIHZvaWQgc2V0Um90YXRpb25B
bmdsZShkb3VibGUgcm90YXRpb25BbmdsZSkgeyBtX3JvdGF0aW9uQW5nbGUgPSByb3RhdGlvbkFu
Z2xlOyB9CisgICAgZG91YmxlIHJvdGF0aW9uQW5nbGUoKSBjb25zdCB7IHJldHVybiBtX3JvdGF0
aW9uQW5nbGU7IH0KKyAgICB2b2lkIHNldEZvcmNlKGRvdWJsZSBmb3JjZSkgeyBtX2ZvcmNlID0g
Zm9yY2U7IH0KKyAgICBkb3VibGUgZm9yY2UoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlOyB9Cisg
ICAgdm9pZCBzZXRBbHRpdHVkZUFuZ2xlKGRvdWJsZSBhbHRpdHVkZUFuZ2xlKSB7IG1fYWx0aXR1
ZGVBbmdsZSA9IGFsdGl0dWRlQW5nbGU7IH0KKyAgICBkb3VibGUgYWx0aXR1ZGVBbmdsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fYWx0aXR1ZGVBbmdsZTsgfQorICAgIHZvaWQgc2V0QXppbXV0aEFuZ2xl
KGRvdWJsZSBhemltdXRoQW5nbGUpIHsgbV9hemltdXRoQW5nbGUgPSBhemltdXRoQW5nbGU7IH0K
KyAgICBkb3VibGUgYXppbXV0aEFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9hemltdXRoQW5nbGU7
IH0KKyAgICB2b2lkIHNldFRvdWNoVHlwZShUb3VjaFR5cGUgdG91Y2hUeXBlKSB7IG1fdG91Y2hU
eXBlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRvdWNoVHlwZSk7IH0KKyAgICBUb3VjaFR5cGUg
dG91Y2hUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VG91Y2hUeXBlPihtX3RvdWNo
VHlwZSk7IH0KKyNlbmRpZgorCisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7
CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gZGVjb2RlKElQQzo6
RGVjb2RlciYpOworCitwcml2YXRlOgorICAgIHVuc2lnbmVkIG1faWRlbnRpZmllciB7IDAgfTsK
KyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2xvY2F0aW9uOworICAgIHVpbnQzMl90IG1fcGhhc2Ug
eyBUb3VjaFJlbGVhc2VkIH07CisjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCisgICAgZG91
YmxlIG1fcmFkaXVzWCB7IDAgfTsKKyAgICBkb3VibGUgbV9yYWRpdXNZIHsgMCB9OworICAgIGRv
dWJsZSBtX3JvdGF0aW9uQW5nbGUgeyAwIH07CisgICAgZG91YmxlIG1fZm9yY2UgeyAwIH07Cisg
ICAgZG91YmxlIG1fYWx0aXR1ZGVBbmdsZSB7IDAgfTsKKyAgICBkb3VibGUgbV9hemltdXRoQW5n
bGUgeyAwIH07CisgICAgdWludDMyX3QgbV90b3VjaFR5cGUgeyBzdGF0aWNfY2FzdDx1aW50MzJf
dD4oVG91Y2hUeXBlOjpEaXJlY3QpIH07CisjZW5kaWYKK307CisKK2NsYXNzIFdlYlRvdWNoRXZl
bnQgOiBwdWJsaWMgV2ViRXZlbnQgeworcHVibGljOgorICAgIFdlYlRvdWNoRXZlbnQoKSA9IGRl
ZmF1bHQ7CisgICAgV2ViVG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBPcHRpb25TZXQ8
TW9kaWZpZXI+IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBjb25zdCBWZWN0b3I8V2Vi
UGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0
aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlzR2VzdHVyZSwgZmxvYXQgZ2VzdHVyZVNj
YWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCisgICAgICAgIDogV2ViRXZlbnQodHlwZSwgbW9k
aWZpZXJzLCB0aW1lc3RhbXApCisgICAgICAgICwgbV90b3VjaFBvaW50cyh0b3VjaFBvaW50cykK
KyAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQorICAgICAgICAsIG1fY2FuUHJldmVudE5h
dGl2ZUdlc3R1cmVzKHRydWUpCisgICAgICAgICwgbV9pc1BvdGVudGlhbFRhcChpc1BvdGVudGlh
bFRhcCkKKyAgICAgICAgLCBtX2lzR2VzdHVyZShpc0dlc3R1cmUpCisgICAgICAgICwgbV9nZXN0
dXJlU2NhbGUoZ2VzdHVyZVNjYWxlKQorICAgICAgICAsIG1fZ2VzdHVyZVJvdGF0aW9uKGdlc3R1
cmVSb3RhdGlvbikKKyAgICB7CisgICAgICAgIEFTU0VSVCh0eXBlID09IFRvdWNoU3RhcnQgfHwg
dHlwZSA9PSBUb3VjaE1vdmUgfHwgdHlwZSA9PSBUb3VjaEVuZCB8fCB0eXBlID09IFRvdWNoQ2Fu
Y2VsKTsKKyAgICB9CisKKyAgICBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYg
dG91Y2hQb2ludHMoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CisKKyAgICBXZWJD
b3JlOjpJbnRQb2ludCBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0KKwor
ICAgIGJvb2wgaXNQb3RlbnRpYWxUYXAoKSBjb25zdCB7IHJldHVybiBtX2lzUG90ZW50aWFsVGFw
OyB9CisKKyAgICBib29sIGlzR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNHZXN0dXJlOyB9
CisgICAgZmxvYXQgZ2VzdHVyZVNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9nZXN0dXJlU2NhbGU7
IH0KKyAgICBmbG9hdCBnZXN0dXJlUm90YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2dlc3R1cmVS
b3RhdGlvbjsgfQorCisgICAgYm9vbCBjYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMoKSBjb25zdCB7
IHJldHVybiBtX2NhblByZXZlbnROYXRpdmVHZXN0dXJlczsgfQorICAgIHZvaWQgc2V0Q2FuUHJl
dmVudE5hdGl2ZUdlc3R1cmVzKGJvb2wgY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzKSB7IG1fY2Fu
UHJldmVudE5hdGl2ZUdlc3R1cmVzID0gY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzOyB9CisKKyAg
ICBib29sIGFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSBjb25zdDsKKworICAgIHZvaWQgZW5j
b2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViVG91Y2hFdmVudCYpOworICAgIAorcHJpdmF0
ZToKKyAgICBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiBtX3RvdWNoUG9pbnRzOworICAg
IAorICAgIFdlYkNvcmU6OkludFBvaW50IG1fcG9zaXRpb247CisgICAgYm9vbCBtX2NhblByZXZl
bnROYXRpdmVHZXN0dXJlcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzUG90ZW50aWFsVGFwIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1faXNHZXN0dXJlIHsgZmFsc2UgfTsKKyAgICBmbG9hdCBtX2dl
c3R1cmVTY2FsZSB7IDAgfTsKKyAgICBmbG9hdCBtX2dlc3R1cmVSb3RhdGlvbiB7IDAgfTsKK307
CisKKyNlbHNlIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQorCitjbGFzcyBXZWJQbGF0Zm9ybVRv
dWNoUG9pbnQgeworcHVibGljOgorICAgIGVudW0gVG91Y2hQb2ludFN0YXRlIHsKKyAgICAgICAg
VG91Y2hSZWxlYXNlZCwKKyAgICAgICAgVG91Y2hQcmVzc2VkLAorICAgICAgICBUb3VjaE1vdmVk
LAorICAgICAgICBUb3VjaFN0YXRpb25hcnksCisgICAgICAgIFRvdWNoQ2FuY2VsbGVkCisgICAg
fTsKKworICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCgpCisgICAgICAgIDogbV9yb3RhdGlvbkFu
Z2xlKDAuMCksIG1fZm9yY2UoMC4wKSB7IH0KKworICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCh1
aW50MzJfdCBpZCwgVG91Y2hQb2ludFN0YXRlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Ny
ZWVuUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbik7CisKKyAgICBX
ZWJQbGF0Zm9ybVRvdWNoUG9pbnQodWludDMyX3QgaWQsIFRvdWNoUG9pbnRTdGF0ZSwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIHNjcmVlblBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHJhZGl1cywgZmxvYXQgcm90YXRp
b25BbmdsZSA9IDAuMCwgZmxvYXQgZm9yY2UgPSAwLjApOworICAgIAorICAgIHVpbnQzMl90IGlk
KCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRvdWNoUG9pbnRTdGF0ZT4obV9zdGF0ZSk7IH0KKwor
ICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JlZW5Qb3NpdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fc2NyZWVuUG9zaXRpb247IH0KKyAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9z
aXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CisgICAgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgcmFkaXVzKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXM7IH0KKyAgICBmbG9hdCBy
b3RhdGlvbkFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9yb3RhdGlvbkFuZ2xlOyB9CisgICAgZmxv
YXQgZm9yY2UoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlOyB9CisKKyAgICB2b2lkIHNldFN0YXRl
KFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSkgeyBtX3N0YXRlID0gc3RhdGU7IH0KKworICAgIHZvaWQg
ZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJQbGF0
Zm9ybVRvdWNoUG9pbnQ+IGRlY29kZShJUEM6OkRlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICB1
aW50MzJfdCBtX2lkOworICAgIHVpbnQzMl90IG1fc3RhdGU7CisgICAgV2ViQ29yZTo6SW50UG9p
bnQgbV9zY3JlZW5Qb3NpdGlvbjsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3Bvc2l0aW9uOwor
ICAgIFdlYkNvcmU6OkludFNpemUgbV9yYWRpdXM7CisgICAgZmxvYXQgbV9yb3RhdGlvbkFuZ2xl
OworICAgIGZsb2F0IG1fZm9yY2U7Cit9OworCitjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVibGlj
IFdlYkV2ZW50IHsKK3B1YmxpYzoKKyAgICBXZWJUb3VjaEV2ZW50KCkgeyB9CisgICAgV2ViVG91
Y2hFdmVudChUeXBlLCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmLCBPcHRpb25TZXQ8
TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOworCisgICAgY29uc3QgVmVjdG9yPFdlYlBs
YXRmb3JtVG91Y2hQb2ludD4mIHRvdWNoUG9pbnRzKCkgY29uc3QgeyByZXR1cm4gbV90b3VjaFBv
aW50czsgfQorCisgICAgYm9vbCBhbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkgY29uc3Q7CisK
KyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYlRvdWNoRXZlbnQmKTsK
KworcHJpdmF0ZToKKyAgICBzdGF0aWMgYm9vbCBpc1RvdWNoRXZlbnRUeXBlKFR5cGUpOworCisg
ICAgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gbV90b3VjaFBvaW50czsKK307CisKKyNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQorI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVO
VFMpCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2
ZW50LmNwcAppbmRleCAxMTYwZTc2MWUzYmVkNDIzZWRlZTc3ZWZhOGQ0ZWEwZTY1YmNkOTE3Li45
ZDcyNWVkYjY3MjE0Y2RjMWM4NTY0ZmJmYTFjYzE0OGIyMjlkNzdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJXaGVlbEV2ZW50LmNwcApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZl
bnQuaCIKIAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCkBAIC0zOSwxMSAr
MzksNiBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50
UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludAogICAgICwgbV9kZWx0YShkZWx0YSkKICAg
ICAsIG1fd2hlZWxUaWNrcyh3aGVlbFRpY2tzKQogICAgICwgbV9ncmFudWxhcml0eShncmFudWxh
cml0eSkKLSAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQotI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgICwgbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKGZhbHNlKQot
ICAgICwgbV9zY3JvbGxDb3VudCgwKQotI2VuZGlmCiB7CiAgICAgQVNTRVJUKGlzV2hlZWxFdmVu
dFR5cGUodHlwZSkpOwogfQpAQCAtNTYsOSArNTEsOSBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVl
bEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2lu
dAogICAgICwgbV9kZWx0YShkZWx0YSkKICAgICAsIG1fd2hlZWxUaWNrcyh3aGVlbFRpY2tzKQog
ICAgICwgbV9ncmFudWxhcml0eShncmFudWxhcml0eSkKLSAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0
ZWRGcm9tRGV2aWNlKGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkKICAgICAsIG1fcGhhc2Uo
cGhhc2UpCiAgICAgLCBtX21vbWVudHVtUGhhc2UobW9tZW50dW1QaGFzZSkKKyAgICAsIG1fZGly
ZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkKICAg
ICAsIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyhoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFz
KQogICAgICwgbV9zY3JvbGxDb3VudChzY3JvbGxDb3VudCkKICAgICAsIG1fdW5hY2NlbGVyYXRl
ZFNjcm9sbGluZ0RlbHRhKHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSkKQEAgLTczLDcgKzY4
LDYgQEAgV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBv
aW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKICAgICAsIG1fZGVsdGEoZGVsdGEpCiAgICAg
LCBtX3doZWVsVGlja3Mod2hlZWxUaWNrcykKICAgICAsIG1fZ3JhbnVsYXJpdHkoZ3JhbnVsYXJp
dHkpCi0gICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZShmYWxzZSkKICAgICAsIG1f
cGhhc2UocGhhc2UpCiAgICAgLCBtX21vbWVudHVtUGhhc2UobW9tZW50dW1QaGFzZSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDk2NzA2NDAzZmNjNzA5
NzY0MzAyZmZmMTQ1OTAxZmI0MWNjYzFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViV2hlZWxFdmVudC5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYldoZWVsRXZlbnQgOiBwdWJsaWMg
V2ViRXZlbnQgeworcHVibGljOgorICAgIGVudW0gR3JhbnVsYXJpdHkgeworICAgICAgICBTY3Jv
bGxCeVBhZ2VXaGVlbEV2ZW50LAorICAgICAgICBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudAorICAg
IH07CisKKyAgICBlbnVtIFBoYXNlIHsKKyAgICAgICAgUGhhc2VOb25lICAgICAgICA9IDAsCisg
ICAgICAgIFBoYXNlQmVnYW4gICAgICAgPSAxIDw8IDAsCisgICAgICAgIFBoYXNlU3RhdGlvbmFy
eSAgPSAxIDw8IDEsCisgICAgICAgIFBoYXNlQ2hhbmdlZCAgICAgPSAxIDw8IDIsCisgICAgICAg
IFBoYXNlRW5kZWQgICAgICAgPSAxIDw8IDMsCisgICAgICAgIFBoYXNlQ2FuY2VsbGVkICAgPSAx
IDw8IDQsCisgICAgICAgIFBoYXNlTWF5QmVnaW4gICAgPSAxIDw8IDUsCisgICAgfTsKKworICAg
IFdlYldoZWVsRXZlbnQoKSA9IGRlZmF1bHQ7CisKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBPcHRpb25TZXQ8TW9k
aWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdl
YldoZWVsRXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVs
YXJpdHksIGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSwgUGhhc2UgbW9t
ZW50dW1QaGFzZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3Jv
bGxDb3VudCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5n
RGVsdGEsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZWxpZiBQ
TEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCisgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBn
bG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwg
R3JhbnVsYXJpdHksIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Cisj
ZW5kaWYKKworICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9wb3NpdGlvbjsgfQorICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxQb3NpdGlvbjsgfQorICAgIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSBkZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsdGE7IH0KKyAgICBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxUaWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fd2hl
ZWxUaWNrczsgfQorICAgIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8R3JhbnVsYXJpdHk+KG1fZ3JhbnVsYXJpdHkpOyB9CisgICAgYm9vbCBkaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvbkludmVy
dGVkRnJvbURldmljZTsgfQorICAgIFBoYXNlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8UGhhc2U+KG1fcGhhc2UpOyB9CisgICAgUGhhc2UgbW9tZW50dW1QaGFzZSgpIGNvbnN0
IHsgcmV0dXJuIHN0YXRpY19jYXN0PFBoYXNlPihtX21vbWVudHVtUGhhc2UpOyB9CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOyB9CisgICAgdWludDMyX3Qgc2Ny
b2xsQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbENvdW50OyB9CisgICAgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEoKSBjb25zdCB7IHJl
dHVybiBtX3VuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YTsgfQorI2VuZGlmCisKKyAgICB2b2lk
IGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVU
VVJOIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYldoZWVsRXZlbnQmKTsKKworcHJpdmF0
ZToKKyAgICBzdGF0aWMgYm9vbCBpc1doZWVsRXZlbnRUeXBlKFR5cGUpOworCisgICAgV2ViQ29y
ZTo6SW50UG9pbnQgbV9wb3NpdGlvbjsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2dsb2JhbFBv
c2l0aW9uOworICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX2RlbHRhOworICAgIFdlYkNvcmU6OkZs
b2F0U2l6ZSBtX3doZWVsVGlja3M7CisgICAgdWludDMyX3QgbV9ncmFudWxhcml0eSB7IFNjcm9s
bEJ5UGFnZVdoZWVsRXZlbnQgfTsKKyAgICB1aW50MzJfdCBtX3BoYXNlIHsgUGhhc2U6OlBoYXNl
Tm9uZSB9OworICAgIHVpbnQzMl90IG1fbW9tZW50dW1QaGFzZSB7IFBoYXNlOjpQaGFzZU5vbmUg
fTsKKyAgICBib29sIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlIHsgZmFsc2UgfTsKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBib29sIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyB7
IGZhbHNlIH07CisgICAgdWludDMyX3QgbV9zY3JvbGxDb3VudCB7IDAgfTsKKyAgICBXZWJDb3Jl
OjpGbG9hdFNpemUgbV91bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGE7CisjZW5kaWYKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Z3RrL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50
RmFjdG9yeS5oCmluZGV4IDM1OGRjNWRkMzhiOGVhZjA5OTI3ODc5MDdmM2JjNzRmMTRlMDU1OGYu
LjE5Zjg4NmFkNTZjOTc2NmQ3ZWJkOTk4OWM1Y2FkYTk2YTA5ZTYwZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmgKQEAgLTI2LDcgKzI2LDEzIEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLZXlib2Fy
ZEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIldlYldoZWVs
RXZlbnQuaCIKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisjaW5jbHVkZSAiV2ViVG91Y2hF
dmVudC5oIgorI2VuZGlmCiAKICNpZiBVU0UoR1RLNCkKIHR5cGVkZWYgc3RydWN0IF9HZGtFdmVu
dCBHZGtFdmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NF
dmVudEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3Rv
cnkuaAppbmRleCAxMzhmZWFhMjUxOTJjMWE3MzhkNGJiOTQwMzljZTNhODZmYTZlMmNkLi4xZTc4
OGU2MGE3NmM1NWVlNDk1OTUxNWVlZDFhZjJiOGE0MWUyODdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvaW9zL1dlYklPU0V2ZW50RmFjdG9yeS5oCkBAIC0yNyw3ICsyNyw4IEBACiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogCi0jaW1wb3J0ICJXZWJFdmVudC5oIgorI2ltcG9ydCAi
V2ViS2V5Ym9hcmRFdmVudC5oIgorI2ltcG9ydCAiV2ViTW91c2VFdmVudC5oIgogI2ltcG9ydCA8
VUlLaXQvVUlLaXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViRXZlbnQuaD4KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYlBsYXRmb3JtVG91Y2hQb2ludElPUy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViUGxhdGZvcm1Ub3VjaFBvaW50SU9TLmNwcApp
bmRleCA3YjVlYjM3Mjg4MGQ4NjYyNTQ0MzM0Y2Q0Njk3Mjc2ZDU0M2RlNDViLi4yYTlkYjRmOGFj
YWZlOWQ2NGQ1ZDRlYmQ5OTEzYWExNjFlYTBmNGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9pb3MvV2ViUGxhdGZvcm1Ub3VjaFBvaW50SU9TLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9pb3MvV2ViUGxhdGZvcm1Ub3VjaFBvaW50SU9TLmNwcApAQCAtMjQsNyArMjQs
NyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgor
I2luY2x1ZGUgIldlYlRvdWNoRXZlbnQuaCIKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJUb3VjaEV2ZW50SU9TLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJUb3VjaEV2ZW50SU9TLmNwcAppbmRleCA0
NWE1NmViM2IwZmRhMTNjM2I3OGQ1NzU5NGEwMDkyZTRlMTg2NmY2Li5lNDBhNmUxNzJiZmQyYjc1
MDc2ZmQ0MDUzZGE2NDNlYmFiOWViODFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9pb3MvV2ViVG91Y2hFdmVudElPUy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L1dlYlRvdWNoRXZlbnRJT1MuY3BwCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVu
dC5oIgogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvbGlid3BlL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbGlid3BlL1dlYkV2ZW50RmFjdG9yeS5oCmluZGV4IDRiNzg3OTRiM2Q0NWJmMzhmNzMwNDQ4
YThjMWVlODNhNWE1MWJhYTEuLmVkZTFkM2ViMTMxZTkxYTJkOTQ4N2UzMTgwMTQzMGMwNDJlMzBl
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2xpYndwZS9XZWJFdmVudEZhY3Rv
cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saWJ3cGUvV2ViRXZlbnRGYWN0b3J5LmgK
QEAgLTI1LDcgKzI1LDEzIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQu
aCIKKyNpbmNsdWRlICJXZWJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViTW91c2VFdmVu
dC5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZlbnQuaCIKKworI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgorI2VuZGlmCiAKIHN0cnVjdCB3cGVfaW5w
dXRfYXhpc19ldmVudDsKIHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1t
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5tbQpp
bmRleCA5MjQxMDc2ODk4MmIxYjA0NjkxYmVjMmRlMWY2YzMxNWFlNjc0MDEzLi5jMWQyMWQ4MWI0
MjQyNDJiMzRiZjM4ZWZhYWFlNmU1Y2JjZGJjMWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0KQEAgLTI4LDcgKzI4LDYg
QEAKIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAKLSNpbXBvcnQgIldlYkV2ZW50
LmgiCiAjaW1wb3J0ICJXZWJHZXN0dXJlRXZlbnQuaCIKICNpbXBvcnQgPFdlYkNvcmUvSW50UG9p
bnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaAppbmRleCA5Mjk3MmZjYThjNGVj
NTYzMTE5ZWYzZGE5OTRhZTU2NWJlZmNjNDkxLi5lNjQ1NGFiYjU1MTJhZDU1ZmFjNGE1OTY3MDIx
ZmIyOTg5ZDliN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZl
bnRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9y
eS5oCkBAIC0yNSw3ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW1wb3J0ICJXZWJFdmVu
dC5oIgorI2ltcG9ydCAiV2ViS2V5Ym9hcmRFdmVudC5oIgorI2ltcG9ydCAiV2ViTW91c2VFdmVu
dC5oIgorI2ltcG9ydCAiV2ViV2hlZWxFdmVudC5oIgogCiAjaWYgVVNFKEFQUEtJVCkKICNpZiBk
ZWZpbmVkKF9fT0JKQ19fKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dl
Ykdlc3R1cmVFdmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVu
dC5oCmluZGV4IGUyZDE5MjU0NTMyOGQwNTUwYTBiOGI2NmMzYjBiOTg1ODJmOGVhNjAuLjU0YmU0
MWNmZTAwMzg3MGJlN2NmMTUwMTIxNjc5NDRmMjhiMWE5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYkdlc3R1cmVFdmVudF9o
Ci0jZGVmaW5lIFdlYkdlc3R1cmVFdmVudF9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShN
QUNfR0VTVFVSRV9FVkVOVFMpCiAKQEAgLTczLDUgKzcyLDMgQEAgcHJpdmF0ZToKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKLQot
I2VuZGlmIC8vIFdlYkdlc3R1cmVFdmVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93aW4vV2Vi
RXZlbnRGYWN0b3J5LmgKaW5kZXggOWUyNmMwZTdhNjQzOTRlOWRkOTVjNDFmOTcyZGZkMGRiYjA0
M2ExYi4uOWUwMzE5MTZkNjVkZDFhM2Y3NDA2MjQ3OGIzZWFhZDZjNWUwNjA2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvd2luL1dlYkV2ZW50RmFjdG9yeS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL3dpbi9XZWJFdmVudEZhY3RvcnkuaApAQCAtMjYsNyArMjYsMTQgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYktl
eWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiV2Vi
V2hlZWxFdmVudC5oIgorCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNpbmNsdWRlICJXZWJU
b3VjaEV2ZW50LmgiCisjZW5kaWYKKwogI2luY2x1ZGUgPHdpbmRvd3MuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2
aWdhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRp
b25DbGllbnQuaAppbmRleCAxNTdlZGE4OGRjZTgxZTc5NzQ4M2Y3YjcxZDY5Y2I1OWZmNDdkNTJj
Li4wNjFlMTg2ZGJlODg2YTA3NDIyYmY4M2I3YWZjZmNiYzZhYzllNmFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKQEAgLTMzLDcg
KzMzLDYgQEAKICNpbmNsdWRlICJQbHVnaW5Nb2R1bGVJbmZvLmgiCiAjaW5jbHVkZSAiUHJvY2Vz
c1Rlcm1pbmF0aW9uUmVhc29uLmgiCiAjaW5jbHVkZSAiU2FtZURvY3VtZW50TmF2aWdhdGlvblR5
cGUuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZyYW1lUG9saWN5TGlz
dGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElQb2xpY3lDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElQb2xpY3lDbGllbnQuaAppbmRleCA2YWU4ZTc1MjA1ZmZmYzg2NTJmNGY5YjgzYmIz
ZGUzMGVlNmNmYWYyLi43ZDJlOTM0NDYyY2YzYmRjMTlhMTliN2RkMzFhMGMyYTljZWJlZDRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUG9saWN5Q2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBvbGljeUNsaWVudC5oCkBAIC0y
NSw3ICsyNSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNp
bmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UHJpdmF0ZS5oCmluZGV4IGY5NDE0
YjkxZjNlYjlkNTg2YjlhMDNmNWI1YTk3OWZmMzczZTgxNTUuLmZiOGQxYzUxOGU3Nzk4NGEzNTg4
NWY1OWVjOWU0YzlmYmQwMjFlNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRQcml2YXRlLmgKQEAgLTI1LDggKzI1LDggQEAKIAogI3ByYWdtYSBvbmNl
CiAKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYktpdE5hdmlnYXRpb25BY3Rp
b24uaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUxvYWRlclR5cGVzLmg+CiAKIHVuc2lnbmVkIHRvUGxhdGZvcm1Nb2RpZmllcnMoT3B0aW9uU2V0
PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaApp
bmRleCA1MWQ1NDAxZGUwMDQ4YzgzZGM5YjkxYWE3YTE5YzA4NTZiYTFhMjJmLi43ZDZmMjIwM2Ez
YmQzNzEyN2YzYjQ3ZTk0OGNmNjAwYjlhZDY4OTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVy
LmgKQEAgLTI3LDggKzI3LDggQEAKIAogI2lmIEVOQUJMRShXRUJEUklWRVJfQUNUSU9OU19BUEkp
CiAKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlm
aWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgogI2luY2x1ZGUgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L09wdGlvbmFsLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCA3NjIxZjg3NGMwMTNhMjQ4NWVmNmUwYWMzNzk1NmRmODhmZTljOWVhLi5iZTQ5YjEyODBkMDdl
ODgwN2FhYjViMTZhMGE1NmExMmY5OWRkM2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTEwNCw3ICsxMDQsNiBAQAogI2luY2x1ZGUgIldlYkNvbnRleHRN
ZW51UHJveHkuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRl
ICJXZWJFZGl0Q29tbWFuZFByb3h5LmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRl
ICJXZWJFdmVudENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVy
UHJveHkuaCIKICNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgiCkBAIC0xMTIs
NiArMTExLDcgQEAKICNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3Rv
clByb3h5LmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAi
V2ViS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIldlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCIK
ICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRp
b25NYW5hZ2VyUHJveHkuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS01vdXNlR2VzdHVyZVJlY29nbml6ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLm1tCmluZGV4IDZiNDUzNmE3MzZlMGJmM2I3YjQw
YjIyNzFmYzFjNWRhMzA1OWM2YmEuLmMzOWJiZWQxMGI3ZWQ1NDZlNGQ4NzAwYjBmOGNhMTIxM2Y5
MjJhMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlR2Vz
dHVyZVJlY29nbml6ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91
c2VHZXN0dXJlUmVjb2duaXplci5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiVUlLaXRT
UEkuaCIKICNpbXBvcnQgPHBhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaD4KICNpbXBv
cnQgPHd0Zi9Db21waWxlci5oPgorI2ltcG9ydCA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbXBv
cnQgPHd0Zi9PcHRpb25hbC5oPgogCiBzdGF0aWMgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6
Ok1vZGlmaWVyPiB3ZWJFdmVudE1vZGlmaWVyc0ZvclVJS2V5TW9kaWZpZXJGbGFncyhVSUtleU1v
ZGlmaWVyRmxhZ3MgZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA1ZGUwODZhMDQ0MDVjMDQzMmI0NDE2YjQxODExZDNjNDVkMWI1
YTNiLi5hNDdiMDEyZDJjNDhlZDhjZjQwMjViYzlkNTY0NmZmMDY3OGVlYzZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIyMDEsNiAr
MjIwMSwxMCBAQAogCQkwRjE4OUNBQjI0NzQ5RjJGMDBFNThEODEgLyogRGlzcGxheUxpbmtPYnNl
cnZlcklELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlMaW5rT2Jz
ZXJ2ZXJJRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjNDNzI1NzE5NkY1RjUw
MDBBRUREMEMgLyogV0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjNDNzI1OTE5NkY1RjY4MDBBRUREMEMgLyogV0tJ
bnNwZWN0b3JIaWdobGlnaHRWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLSW5zcGVjdG9ySGlnaGxpZ2h0Vmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkwRjQwMDBGRDI1MjdENjlEMDBFOTFEQTcgLyogV2ViV2hlZWxFdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJXaGVlbEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNDAw
MEZFMjUyN0Q2QzMwMEU5MURBNyAvKiBXZWJNb3VzZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
Yk1vdXNlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0MDAwRkYyNTI3
RDZGNzAwRTkxREE3IC8qIFdlYktleWJvYXJkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2V5
Ym9hcmRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQwMDEwMDI1MjdE
NzNDMDBFOTFEQTcgLyogV2ViVG91Y2hFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJUb3VjaEV2
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDVBMzJGMjM5RDg5QTAwMDI5
NEFCRiAvKiBXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ1QTMzMDIzOUQ4OUExMDAyOTRBQkYgLyogV0tXZWJW
aWV3VGVzdGluZ0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdLV2ViVmlld1Rlc3RpbmdJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NDVBMzMzMjM5RDg5QUYwMDI5NEFCRiAvKiBXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ01hYy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlZpZXdQcml2YXRlRm9yVGVz
dGluZ01hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjExNSwxMSArNjExOSwx
MyBAQAogCQkJCUJDQ0Y2QUJBMTJDOTFFRjkwMDhGOUMzNSAvKiBXZWJJbWFnZS5jcHAgKi8sCiAJ
CQkJQkNDRjZBQkIxMkM5MUVGOTAwOEY5QzM1IC8qIFdlYkltYWdlLmggKi8sCiAJCQkJQzAzMzdE
RDIxMjdBMkEwRTAwOEZGNEY0IC8qIFdlYktleWJvYXJkRXZlbnQuY3BwICovLAorCQkJCTBGNDAw
MEZGMjUyN0Q2RjcwMEU5MURBNyAvKiBXZWJLZXlib2FyZEV2ZW50LmggKi8sCiAJCQkJQkM5QkE1
MDIxNjk3QzQ1MzAwRTQ0NjE2IC8qIFdlYktpdDJJbml0aWFsaXplLmNwcCAqLywKIAkJCQlCQzlC
QTUwMzE2OTdDNDUzMDBFNDQ2MTYgLyogV2ViS2l0MkluaXRpYWxpemUuaCAqLywKIAkJCQk5MDU2
MjBFODEyQkMyNDhCMDAwNzk5QjYgLyogV2ViTWVtb3J5U2FtcGxlci5jcHAgKi8sCiAJCQkJOTA1
NjIwRTkxMkJDMjQ4QjAwMDc5OUI2IC8qIFdlYk1lbW9yeVNhbXBsZXIuaCAqLywKIAkJCQlDMDMz
N0RBRjEyN0EyOEQwMDA4RkY0RjQgLyogV2ViTW91c2VFdmVudC5jcHAgKi8sCisJCQkJMEY0MDAw
RkUyNTI3RDZDMzAwRTkxREE3IC8qIFdlYk1vdXNlRXZlbnQuaCAqLywKIAkJCQlCQ0Y2OUY5ODEx
NzZDRUQ2MDA0NzFBNTIgLyogV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oICovLAogCQkJCUMwNkM2
MDkzMTI0QzE0NDMwMDAxNjgyRiAvKiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLywK
IAkJCQlDMDZDNjA5NDEyNEMxNDQzMDAwMTY4MkYgLyogV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5oICovLApAQCAtNjE0OSwxMCArNjE1NSwxMiBAQAogCQkJCTgzNjAzNDlEMUFDQjM0RDYwMDYy
NjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwICovLAogCQkJCTgzNjAzNDlFMUFD
QjM0RDYwMDYyNjU0OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCAqLywKIAkJCQlDMDMz
N0RENzEyN0E1MUI2MDA4RkY0RjQgLyogV2ViVG91Y2hFdmVudC5jcHAgKi8sCisJCQkJMEY0MDAx
MDAyNTI3RDczQzAwRTkxREE3IC8qIFdlYlRvdWNoRXZlbnQuaCAqLywKIAkJCQk3QzA2NUYyOTFD
OENEOTVGMDBDMkQ5NTAgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmNwcCAq
LywKIAkJCQk3QzA2NUYyQTFDOENEOTVGMDBDMkQ5NTAgLyogV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyRGF0YVR5cGVzLmggKi8sCiAJCQkJNDk2MEEzQkMyM0M1Mjg2NDAwOTYxODQyIC8qIFdlYlZp
ZXdDYXRlZ29yeS5oICovLAogCQkJCUMwMzM3REQwMTI3QTI5ODAwMDhGRjRGNCAvKiBXZWJXaGVl
bEV2ZW50LmNwcCAqLywKKwkJCQkwRjQwMDBGRDI1MjdENjlEMDBFOTFEQTcgLyogV2ViV2hlZWxF
dmVudC5oICovLAogCQkJKTsKIAkJCXBhdGggPSBTaGFyZWQ7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oCmlu
ZGV4IDhlMmQ2YjFhMGU2NmY0MzE1Nzk0YWVmYTdmZGQ2NDdhNDBjZDA3ZmMuLmVmYmEwMTk3YzBi
NGE0NWMzYTJmMjY5NzM2NmJkODM0NGM4NzhiMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmgKQEAgLTIzLDIwICsyMywxOSBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSW5qZWN0ZWRCdW5kbGVOYXZp
Z2F0aW9uQWN0aW9uX2gKLSNkZWZpbmUgSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uX2gK
KyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiSW5qZWN0
ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOb2RlSGFu
ZGxlLmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50Lmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAg
IGNsYXNzIEZvcm1TdGF0ZTsKLSAgICBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOworY2xhc3MgRm9y
bVN0YXRlOworY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7
CkBAIC04MCw1ICs3OSwzIEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
LQotI2VuZGlmIC8vIEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQ
bHVnaW5NYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9t
YWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KaW5kZXggNTBhMDAzNGRkNjUwOTQwODk5NTA4MDQ4NTA4
OWFiNzcwM2MwMWYyOC4uNDNiMzQ5OGVjNzY5NjM4Yjc5MTEzN2EwN2EzMWVkZWM5ZjVkOWY2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFj
L05ldHNjYXBlUGx1Z2luTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQpAQCAtMzEsNyArMzEsOSBAQAog
I2ltcG9ydCAiTGF5ZXJUcmVlQ29udGV4dC5oIgogI2ltcG9ydCAiTmV0c2NhcGVCcm93c2VyRnVu
Y3MuaCIKICNpbXBvcnQgIlBsdWdpbkNvbnRyb2xsZXIuaCIKLSNpbXBvcnQgIldlYkV2ZW50Lmgi
CisjaW1wb3J0ICJXZWJLZXlib2FyZEV2ZW50LmgiCisjaW1wb3J0ICJXZWJNb3VzZUV2ZW50Lmgi
CisjaW1wb3J0ICJXZWJXaGVlbEV2ZW50LmgiCiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW4ubW0KaW5kZXggZTM0YTI3ZWY5Y2ZhYTgyYzIzMTI2YzczNDkyN2FiZmZmZDVh
Y2Q2MC4uZjg3NzA3MDkxOGZiOTk5MTcyMjAwZTE3MWI1MmZlNWQ0OWRiMWVhZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC00
MSwxMCArNDEsMTEgQEAKICNpbXBvcnQgIldLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMu
aCIKICNpbXBvcnQgIldLUGFnZUZpbmRNYXRjaGVzQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKLSNpbXBvcnQgIldlYkV2ZW50LmgiCiAjaW1wb3J0ICJXZWJFdmVu
dENvbnZlcnNpb24uaCIKICNpbXBvcnQgIldlYkZpbmRPcHRpb25zLmgiCisjaW1wb3J0ICJXZWJL
ZXlib2FyZEV2ZW50LmgiCiAjaW1wb3J0ICJXZWJMb2FkZXJTdHJhdGVneS5oIgorI2ltcG9ydCAi
V2ViTW91c2VFdmVudC5oIgogI2ltcG9ydCAiV2ViUGFnZS5oIgogI2ltcG9ydCAiV2ViUGFnZVBy
b3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlBhc3RlYm9hcmRQcm94eU1lc3NhZ2VzLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKaW5k
ZXggMTg0Y2Y2NzVlM2I0ZjlhOGNmZGZkMjJjZjYyYTY0NTFmMjhmZDM2OC4uNzI3NGU2ZjA3NDdi
N2EzNDk3ZTQwYWYyMTUwZGQyMjhkOWU1ZGQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcApAQCAtMzksOSArMzksMTEgQEAKICNpbmNs
dWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJTaGFyZWFi
bGVCaXRtYXAuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRl
ICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJX
ZWJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlBy
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJXaGVlbEV2ZW50LmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1No
YXJlZEJ1ZmZlci5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCmluZGV4IGEyM2MyMTc0MWQwOTJjYzA5ODVmNmFjNWRkYWJhYjA2YzY0ZDU0
OWEuLmYyNjZjZDNjZTA5ZWE5MWVkNGU2NjM4MWI5ZDllOWVjODZkMDUwYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0zMCwxMSAr
MzAsMTMgQEAKICNpbmNsdWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAu
aCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJFdmVu
dC5oIgorI2luY2x1ZGUgIldlYktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJXZWJMb2FkZXJT
dHJhdGVneS5oIgorI2luY2x1ZGUgIldlYk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJXZWJQYWdl
LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzLmgiCisjaW5jbHVkZSAiV2ViV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQml0
bWFwSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvQ29va2llSmFyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCAxMDhmZDcxZTU5OTIxMmUzMDgzNjQ1ZTQ1N2Qz
N2U4YWIxNTViZTlkLi4zZTE4YmM0YjAwOTE5NTBiMDE1NjczZTQyZjI3OTdhODI5OGZkZDg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNo
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0
Y2hlci5jcHAKQEAgLTI3LDExICsyNywxMiBAQAogI2luY2x1ZGUgIkV2ZW50RGlzcGF0Y2hlci5o
IgogCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJF
dmVudC5oIgogI2luY2x1ZGUgIldlYkV2ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYlBh
Z2UuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViV2hlZWxF
dmVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2hl
ZWxFdmVudFRlc3RNb25pdG9yLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKaW5k
ZXggMWM0MTZkODgwZWM3MzMzZDA3MjY2ZmFjNTM1ZGMyOTllMDIwZmJjZC4uMzcyZTIwZTdhMWM3
NmVjMDFmODYzODEzM2EyOGQxMTI2NmUwOWUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKQEAgLTUxLDYgKzUxLDEwIEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUGFnZTsKIGNsYXNzIFdlYldoZWVsRXZlbnQ7CiAK
KyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKK2NsYXNzIFdlYlRvdWNoRXZlbnQ7CisjZW5k
aWYKKwogY2xhc3MgRXZlbnREaXNwYXRjaGVyIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6V29y
a1F1ZXVlTWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEV2ZW50RGlz
cGF0Y2hlcj4gY3JlYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9QYWdlQmFubmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Q
YWdlQmFubmVyLmgKaW5kZXggODQ4MDIxMDlkZmJkMDg3YzA0OTVhNTgzYWE5NWY4N2RlZWQzNDQ1
Mi4uOThlMTZkMjFjOWYwYmI3ZTIzODhkZTk2NDAyMzYzNWZjMTI1MjM5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuaApAQCAtMjMsMTEgKzIzLDEw
IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBQ
YWdlQmFubmVyX2gKLSNkZWZpbmUgUGFnZUJhbm5lcl9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViTW91
c2VFdmVudC5oIgogCiAjaWYgUExBVEZPUk0oTUFDKQogT0JKQ19DTEFTUyBDQUxheWVyOwpAQCAt
OTYsNSArOTUsMyBAQCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNl
bmRpZiAvLyBQYWdlQmFubmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggMTI5Y2E2NmNlNGNmNzE0ODgxZjMxNjA2MjhlYWQ5NmQ1YWNkOWZj
Yy4uMjlhNmZmOTFmYjA5YjRiZGFlMzIzMzdkZmUzYzE4Nzk2NjBjYWFjMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTg1LDcgKzg1LDYgQEAK
ICNpbmNsdWRlICJXZWJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIldlYkRyYWdDbGllbnQu
aCIKICNpbmNsdWRlICJXZWJFZGl0b3JDbGllbnQuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgog
I2luY2x1ZGUgIldlYkV2ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYkV2ZW50RmFjdG9y
eS5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCkBAIC0xMDAsOSArOTksMTEgQEAKICNpbmNsdWRl
ICJXZWJJbnNwZWN0b3JNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclVJLmgiCiAj
aW5jbHVkZSAiV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYktleWJvYXJk
RXZlbnQuaCIKICNpbmNsdWRlICJXZWJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYk1l
ZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJNZWRpYVN0cmF0ZWd5LmgiCisj
aW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbkNsaWVu
dC5oIgogI2luY2x1ZGUgIldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmgiCiAjaW5jbHVkZSAi
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIgpAQCAtMTI3LDExICsxMjgsMTMgQEAKICNpbmNs
dWRlICJXZWJTb2NrZXRQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNwZWVjaFN5bnRoZXNpc0Ns
aWVudC5oIgogI2luY2x1ZGUgIldlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgorI2luY2x1
ZGUgIldlYlRvdWNoRXZlbnQuaCIKICNpbmNsdWRlICJXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHku
aCIKICNpbmNsdWRlICJXZWJVbmRvU3RlcC5oIgogI2luY2x1ZGUgIldlYlVzZXJDb250ZW50Q29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIldlYlVzZXJNZWRpYUNsaWVudC5oIgogI2luY2x1ZGUgIldl
YlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViV2hlZWxFdmVudC5oIgog
I2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvQVBJQ2FzdC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KaW5kZXggZGRjN2U3NjFlYWYxNDJiNzk5MjM2Y2UxMjJmZmY0MjQ3MWRhMmI3MS4uNzlj
ZjEyMmYyMjE5ZmFkNzRmYTY5YjM1ZjNlZTU4NWIwODFhNmI1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTU5LDYgKzU5
LDcgQEAKICNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQcmV2
aWV3TG9hZGVyQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCisjaW1wb3J0ICJXZWJU
b3VjaEV2ZW50LmgiCiAjaW1wb3J0IDxDb3JlVGV4dC9DVEZvbnQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvQXV0b2ZpbGwuaD4KICNpbXBvcnQgPFdlYkNvcmUvQXV0b2ZpbGxFbGVtZW50cy5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpp
bmRleCAzZDk2MGEyMjE5MWI3ZTU1OTJhNWE2MTQ2Y2NlMzZlMGZlOTFmY2NjLi41YWViNGIxNTM3
ZDMzNDIxMTZjYTIxYTU1NTM1M2M0YWFlYzAwZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAtNDMsMTIgKzQzLDEzIEBA
CiAjaW1wb3J0ICJVc2VyRGF0YS5oIgogI2ltcG9ydCAiV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9i
amVjdE1hYy5oIgogI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW1wb3J0ICJX
ZWJFdmVudC5oIgogI2ltcG9ydCAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW1wb3J0ICJXZWJG
cmFtZS5oIgogI2ltcG9ydCAiV2ViSGl0VGVzdFJlc3VsdERhdGEuaCIKICNpbXBvcnQgIldlYklt
YWdlLmgiCiAjaW1wb3J0ICJXZWJJbnNwZWN0b3IuaCIKKyNpbXBvcnQgIldlYktleWJvYXJkRXZl
bnQuaCIKKyNpbXBvcnQgIldlYk1vdXNlRXZlbnQuaCIKICNpbXBvcnQgIldlYlBhZ2VPdmVybGF5
LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUGFzdGVi
b2FyZE92ZXJyaWRlcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2Uvd2luL1dlYlBhZ2VXaW4uY3BwCmluZGV4IDliZmM4NjlkZTE0MDFkMmQ1NmJhMjlkNDhjNmY0
MTdhNTdlZjQ4NjguLjI4OTNlZDNmM2I4YzljMjg0NzJiOGFhZjdhMzk5ZTI1N2JmOGM1MmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2lu
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdp
bi5jcHAKQEAgLTI4LDggKzI4LDggQEAKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAKICNpbmNsdWRl
ICJFZGl0b3JTdGF0ZS5oIgotI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViRnJh
bWUuaCIKKyNpbmNsdWRlICJXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVBy
b3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaD4K
</data>
<flag name="commit-queue"
          id="426310"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410391</attachid>
            <date>2020-10-02 17:05:05 -0700</date>
            <delta_ts>2020-10-02 18:51:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217259-20201002170504.patch</filename>
            <type>text/plain</type>
            <size>87339</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI5Njk2ZTQzNzM3NDRiNTBh
ZjhiZmM0NmUzMDdkM2MzNGQ1MTE4MzMuLjdkNjllNjUwOTk5MzljZGU3MzgyNjU1YmU2ZDRhN2Jh
MDJkZmNjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAxIEBACisyMDIwLTEwLTAyICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgV2ViRXZlbnQg
c3ViY2xhc3MgZGVjbGFyYXRpb25zIHRvIHRoZWlyIG93biBmaWxlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MjU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBNYWtlIG5ldyBoZWFkZXIgZmlsZXMgZm9yIFdl
Yk1vdXNlRXZlbnQsIFdlYktleWJvYXJkRXZlbnQsIFdlYldoZWVsRXZlbnQsIFdlYlRvdWNoRXZl
bnQgYW5kCisgICAgICAgIGZpeCB0aGUgZmFsbG91dC4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3Qu
aDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViR2VzdHVyZUV2ZW50Lmg6CisgICAgICAgICog
U2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZl
V2ViTW91c2VFdmVudC5oOgorICAgICAgICAqIFNoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50Lmg6
CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaDoKKyAgICAgICAgKiBTaGFy
ZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50OjphbGxUb3VjaFBvaW50c0FyZVJlbGVh
c2VkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6YnV0dG9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6YnV0dG9ucyBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OnBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6Z2xvYmFsUG9zaXRpb24gY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpkZWx0YVggY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpkZWx0YVkgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpkZWx0YVogY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpjbGlja0NvdW50IGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZXZlbnROdW1iZXIgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjptZW51VHlwZUZv
ckV2ZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6
Zm9yY2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50Ojpz
eW50aGV0aWNDbGlja1R5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJX
aGVlbEV2ZW50Ojpwb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YldoZWVsRXZlbnQ6Omdsb2JhbFBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViV2hlZWxFdmVudDo6ZGVsdGEgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJXaGVlbEV2ZW50Ojp3aGVlbFRpY2tzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViV2hlZWxFdmVudDo6Z3JhbnVsYXJpdHkgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2Ug
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpwaGFzZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Om1vbWVudHVt
UGhhc2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojpo
YXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViV2hlZWxFdmVudDo6c2Nyb2xsQ291bnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojp1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojp0ZXh0IGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6dW5tb2RpZmll
ZFRleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
OjprZXkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
Ojpjb2RlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVu
dDo6a2V5SWRlbnRpZmllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYktl
eWJvYXJkRXZlbnQ6OndpbmRvd3NWaXJ0dWFsS2V5Q29kZSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6Om5hdGl2ZVZpcnR1YWxLZXlDb2RlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6bWFjQ2hhckNv
ZGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojpo
YW5kbGVkQnlJbnB1dE1ldGhvZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YktleWJvYXJkRXZlbnQ6OnByZWVkaXRVbmRlcmxpbmVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6cHJlZWRpdFNlbGVjdGlvblJhbmdlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6Y29tbWFuZHMg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojppc0F1
dG9SZXBlYXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2
ZW50Ojppc0tleXBhZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYktleWJv
YXJkRXZlbnQ6OmlzU3lzdGVtS2V5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmlkZW50aWZpZXIgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmxvY2F0
aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBv
aW50OjpwaGFzZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3Jt
VG91Y2hQb2ludDo6c3RhdGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFJhZGl1c1gpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnJhZGl1c1ggY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFJhZGl1c1kpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnJhZGl1c1kgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFJvdGF0
aW9uQW5nbGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ6OnJvdGF0aW9uQW5nbGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OnNldEZvcmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGxhdGZvcm1Ub3VjaFBvaW50Ojpmb3JjZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0QWx0aXR1ZGVBbmdsZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6YWx0aXR1ZGVBbmdsZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
c2V0QXppbXV0aEFuZ2xlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1U
b3VjaFBvaW50OjphemltdXRoQW5nbGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFRvdWNoVHlwZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6dG91Y2hUeXBlIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6V2ViVG91Y2hFdmVudCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OnRvdWNoUG9pbnRzIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6cG9zaXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50Ojppc1BvdGVudGlhbFRh
cCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OmlzR2Vz
dHVyZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6Omdl
c3R1cmVTY2FsZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZl
bnQ6Omdlc3R1cmVSb3RhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlRvdWNoRXZlbnQ6OmNhblByZXZlbnROYXRpdmVHZXN0dXJlcyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OnNldENhblByZXZlbnROYXRpdmVHZXN0dXJl
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6aWQg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6
OnNjcmVlblBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxh
dGZvcm1Ub3VjaFBvaW50Ojpwb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cmFkaXVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpzZXRTdGF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgICogU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAgICogU2hhcmVk
L1dlYktleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAqIFNoYXJlZC9XZWJLZXlib2FyZEV2ZW50
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojp0ZXh0IGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6dW5tb2RpZmllZFRleHQgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50OjprZXkgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojpjb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6a2V5SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OndpbmRvd3NWaXJ0dWFsS2V5Q29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6Om5hdGl2ZVZpcnR1YWxLZXlDb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6bWFjQ2hhckNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50OjpoYW5kbGVkQnlJbnB1dE1l
dGhvZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OnByZWVkaXRV
bmRlcmxpbmVzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6cHJl
ZWRpdFNlbGVjdGlvblJhbmdlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRF
dmVudDo6Y29tbWFuZHMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
Ojppc0F1dG9SZXBlYXQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
Ojppc0tleXBhZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6Omlz
U3lzdGVtS2V5IGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvV2ViTW91c2VFdmVudC5jcHA6Cisg
ICAgICAgICogU2hhcmVkL1dlYk1vdXNlRXZlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYk1vdXNlRXZlbnQ6OmJ1dHRvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNl
RXZlbnQ6OmJ1dHRvbnMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50Ojpw
b3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6Omdsb2JhbFBv
c2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFYIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFZIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFaIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViTW91c2VFdmVudDo6Y2xpY2tDb3VudCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYk1vdXNlRXZlbnQ6OmV2ZW50TnVtYmVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TW91c2VFdmVudDo6bWVudVR5cGVGb3JFdmVudCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk1vdXNlRXZlbnQ6OmZvcmNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVu
dDo6c3ludGhldGljQ2xpY2tUeXBlIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvV2ViVG91Y2hF
dmVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OmFsbFRvdWNoUG9pbnRz
QXJlUmVsZWFzZWQgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9XZWJUb3VjaEV2ZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OldlYlBsYXRmb3Jt
VG91Y2hQb2ludCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6aWRl
bnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
bG9jYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6
OnBoYXNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50Ojpz
dGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0
UmFkaXVzWCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cmFkaXVz
WCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0UmFk
aXVzWSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cmFkaXVzWSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0Um90YXRp
b25BbmdsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cm90YXRp
b25BbmdsZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
c2V0Rm9yY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmZvcmNl
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpzZXRBbHRp
dHVkZUFuZ2xlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjphbHRp
dHVkZUFuZ2xlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50
OjpzZXRBemltdXRoQW5nbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ6OmF6aW11dGhBbmdsZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91
Y2hQb2ludDo6c2V0VG91Y2hUeXBlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3Vj
aFBvaW50Ojp0b3VjaFR5cGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50
OjpXZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6dG91Y2hQ
b2ludHMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50Ojpwb3NpdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OmlzUG90ZW50aWFsVGFwIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6aXNHZXN0dXJlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6Z2VzdHVyZVNjYWxlIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6Z2VzdHVyZVJvdGF0aW9uIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6Y2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6c2V0Q2FuUHJldmVudE5hdGl2
ZUdlc3R1cmVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjppZCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2NyZWVuUG9z
aXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnBv
c2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50Ojpy
YWRpdXMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNl
dFN0YXRlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJXaGVlbEV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojpw
b3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Omdsb2JhbFBv
c2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6ZGVsdGEgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojp3aGVlbFRpY2tzIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6Z3JhbnVsYXJpdHkgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2Ug
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpwaGFzZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Om1vbWVudHVtUGhhc2UgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6c2Nyb2xsQ291bnQgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojp1bmFjY2VsZXJhdGVkU2Nyb2xsaW5n
RGVsdGEgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lmg6
CisgICAgICAgICogU2hhcmVkL2lvcy9XZWJQbGF0Zm9ybVRvdWNoUG9pbnRJT1MuY3BwOgorICAg
ICAgICAqIFNoYXJlZC9pb3MvV2ViVG91Y2hFdmVudElPUy5jcHA6CisgICAgICAgICogU2hhcmVk
L21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW06CisgICAgICAgICogU2hhcmVkL21hYy9X
ZWJFdmVudEZhY3RvcnkuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQVBJUG9saWN5Q2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS01vdXNlR2Vz
dHVyZVJlY29nbml6ZXIubW06CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZU5hdmlnYXRpb25BY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgor
CiAyMDIwLTA5LTMwICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgY29kZSBiZWhpbmQgRU5BQkxFKE1FRElBX1NFU1NJT04pLCBubyBwb3J0cyBlbmFibGUg
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDJiN2Y0NmIz
NDRlMWJlM2U4NjBiMTRlODEwNDkxNDMyODlhMTU3MGQuLjcwZDNkODhmMmJmNGE2ZjFjZmM0ZjE4
ODcwNGVkNjc3MGU0OTc3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQpAQCAtNjc4LDExICs2NzgsNiBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAg
ICAgICAgJ1dlYktpdDo6UmVzcGVjdFNlbGVjdGlvbkFuY2hvcic6IFsnIkdlc3R1cmVUeXBlcy5o
IiddLAogICAgICAgICAnV2ViS2l0OjpTZWxlY3Rpb25GbGFncyc6IFsnIkdlc3R1cmVUeXBlcy5o
IiddLAogICAgICAgICAnV2ViS2l0OjpTZWxlY3Rpb25Ub3VjaCc6IFsnIkdlc3R1cmVUeXBlcy5o
IiddLAotICAgICAgICAnV2ViS2l0OjpXZWJHZXN0dXJlRXZlbnQnOiBbJyJXZWJFdmVudC5oIidd
LAotICAgICAgICAnV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwK
LSAgICAgICAgJ1dlYktpdDo6V2ViTW91c2VFdmVudCc6IFsnIldlYkV2ZW50LmgiJ10sCi0gICAg
ICAgICdXZWJLaXQ6OldlYlRvdWNoRXZlbnQnOiBbJyJXZWJFdmVudC5oIiddLAotICAgICAgICAn
V2ViS2l0OjpXZWJXaGVlbEV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwKICAgICAgICAgJ1dlYkNv
cmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMnOiBbJzxXZWJDb3JlL01lZGlhUGxheWVy
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpJU09XZWJWVFRDdWUnOiBbJzxXZWJDb3JlL0lTT1ZU
VEN1ZS5oPiddLAogICAgICAgICAnc3RydWN0IFdlYkNvcmU6OkNvb2tpZSc6IFsnPFdlYkNvcmUv
Q29va2llLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1No
YXJlZEFQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2Fz
dC5oCmluZGV4IDY2NDhlNzJmZWIyYzNkMWFiNGUxYzBlMjE0Y2E2OGRlMDVkMDEzY2EuLmU1NjAw
NTA4YTFiMzNkMjU1ZGQ1ZGI3NDAyYTA1ZGY4Y2NlMTI2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBXS1NoYXJlZEFQSUNh
c3RfaAotI2RlZmluZSBXS1NoYXJlZEFQSUNhc3RfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJBUElFcnJvci5oIgogI2luY2x1ZGUgIkFQSU51bWJlci5oIgpAQCAtNDcsOCArNDYsOCBAQAog
I2luY2x1ZGUgIldLUGFnZVZpc2liaWxpdHlUeXBlcy5oIgogI2luY2x1ZGUgIldLVXNlckNvbnRl
bnRJbmplY3RlZEZyYW1lcy5oIgogI2luY2x1ZGUgIldLVXNlclNjcmlwdEluamVjdGlvblRpbWUu
aCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgiCisj
aW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGV4dE1lbnVJ
dGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgpAQCAtMTAzNCw1ICsxMDMzLDMgQEAgaW5s
aW5lIFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgdG9Vc2VyQ29udGVudEluamVj
dGVkRnJhbWVzKFdLVXNlckNvbnQKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRp
ZiAvLyBXS1NoYXJlZEFQSUNhc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
TmF0aXZlV2ViR2VzdHVyZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJH
ZXN0dXJlRXZlbnQuaAppbmRleCBiOThiNzU4MzcwZGRmNDk2NTI3ZDlmNjBlYmMzYjgyZGVlZGI4
YzZmLi5lY2VhYTk3ZDk1OWQwOGJjMjJkYTdmZDcxZjU3NzE5ZjRiZDFjNTdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJHZXN0dXJlRXZlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJHZXN0dXJlRXZlbnQuaApAQCAtMjMsMTIgKzIzLDEw
IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBO
YXRpdmVXZWJHZXN0dXJlRXZlbnRfaAotI2RlZmluZSBOYXRpdmVXZWJHZXN0dXJlRXZlbnRfaAor
I3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogCi0jaW5jbHVk
ZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJHZXN0dXJlRXZlbnQuaCIKIAogT0JKQ19DTEFT
UyBOU0V2ZW50OwpAQCAtNDgsNSArNDYsMyBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQotCi0jZW5kaWYgLy8g
TmF0aXZlV2ViR2VzdHVyZUV2ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdl
YktleWJvYXJkRXZlbnQuaAppbmRleCBiZjY0Mjk5MDI1YWZjYzFjYjc4NGQzNWRkM2VhNjExZDQ3
MDE4YjEyLi5mZDJiNTVmNDBmZGQzZDgyZDZkNjk0N2RjMzNhZDMxZjI0ZjRjMWM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCkBAIC0yNiwxOSAr
MjYsMTMgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZu
ZGVmIE5hdGl2ZVdlYktleWJvYXJkRXZlbnRfaAotI2RlZmluZSBOYXRpdmVXZWJLZXlib2FyZEV2
ZW50X2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJX
ZWJLZXlib2FyZEV2ZW50LmgiCiAKICNpZiBVU0UoQVBQS0lUKQogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KIE9CSkNfQ0xBU1MgTlNWaWV3OwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1zdHJ1
Y3QgQ29tcG9zaXRpb25VbmRlcmxpbmU7Ci1zdHJ1Y3QgS2V5cHJlc3NDb21tYW5kOwotfQogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShHVEspCkBAIC0xMTMsNSArMTA3LDMgQEAgcHJpdmF0ZToKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmgKaW5kZXgg
ZDZmOTkwMmI5NjNiZDlhMDAzNmE2MDA4ZDcxOWMzZTViMTU0MDJjNC4uNWUzN2Y3MzUxMGY3Mzk2
MWQ5N2NlOGI0MmRlMGUxOTM1YTE3MGQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2
ZVdlYk1vdXNlRXZlbnQuaApAQCAtMjMsMTAgKzIzLDkgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE5hdGl2ZVdlYk1vdXNlRXZlbnRfaAotI2Rl
ZmluZSBOYXRpdmVXZWJNb3VzZUV2ZW50X2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2Vi
RXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCiAKICNpZiBVU0UoQVBQS0lUKQog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTEwMiw1ICsxMDEsMyBAQCBwcml2YXRlOgog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBOYXRpdmVXZWJNb3VzZUV2
ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZl
bnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaAppbmRleCBm
NWQ3MmY4N2I1YjEyNGRiZTE0MGRmN2FkMzg3ZTZiOGEzY2ExZGFhLi5kNzMzMzAxNmU4NDkxYjQy
ODcxNzhhMjM3NTY5ZmRlOWQ4OWEzYTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZl
V2ViVG91Y2hFdmVudC5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5j
bHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBkZWZpbmVkKF9fT0JKQ19fKQogI2luY2x1ZGUgPFVJS2l0L1VJ
S2l0Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKaW5kZXgg
ODRkYjA4M2NlZmU3ZDE2NmIyNmYxNTE2MjBkMDk2MDQ3ZDY5NzJjZS4uZGY0MjQyYjA3MzljODM4
YjY0YzdjNzFmMjRlMWZlMDY5YjRmNDAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2
ZVdlYldoZWVsRXZlbnQuaApAQCAtMjMsMTAgKzIzLDkgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE5hdGl2ZVdlYldoZWVsRXZlbnRfaAotI2Rl
ZmluZSBOYXRpdmVXZWJXaGVlbEV2ZW50X2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2Vi
RXZlbnQuaCIKKyNpbmNsdWRlICJXZWJXaGVlbEV2ZW50LmgiCiAKICNpZiBVU0UoQVBQS0lUKQog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTg5LDUgKzg4LDMgQEAgcHJpdmF0ZToKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gTmF0aXZlV2ViV2hlZWxFdmVu
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0
YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaAppbmRleCBm
NzI3MWVhZjgzOGEzMGM5OWIwYzhiMjA1NGZkNGI2Nzc4NjY3ZjZmLi5jYmQ3NzBlNTdmM2VhN2Q0
ZmM4OTJkY2VhZjQ0ZGZhZmMwYjVmNGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmln
YXRpb25BY3Rpb25EYXRhLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYk1vdXNlRXZlbnQuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQmFja0Zv
cndhcmRJdGVtSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCmluZGV4IGRiN2RlMzllNjdjYjM1YWY5YTA1YWE0MmIy
M2ZiODIwNzhhYWI0NDAuLmNlMzE3OGRlMjcxZTAxZmVmNDI1OGJhYWU3NTAxNTk3ZWFhNWJhMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5jcHAKQEAgLTYyLDE2ICs2Miw0IEBAIGJvb2wgV2Vi
RXZlbnQ6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYkV2ZW50JiByZXN1bHQpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotYm9vbCBXZWJU
b3VjaEV2ZW50OjphbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkgY29uc3QKLXsKLSAgICBmb3Ig
KGNvbnN0IGF1dG8mIHRvdWNoUG9pbnQgOiB0b3VjaFBvaW50cygpKSB7Ci0gICAgICAgIGlmICh0
b3VjaFBvaW50LnN0YXRlKCkgIT0gV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2Vk
ICYmIHRvdWNoUG9pbnQuc3RhdGUoKSAhPSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoQ2Fu
Y2VsbGVkKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHJldHVybiB0
cnVlOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2
ZW50LmgKaW5kZXggZTMxZDkyNTM0YmYxODA4ZjEyYzMwMDVmZDc1OTRmODAwNmM4OTk5Ni4uM2Fl
NjUwNDc3OWQzOTE3YTc5ZjY5ZjMyYjU4MjYwYWZlZGEyNzBiNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJF
dmVudC5oCkBAIC0yOSwxMyArMjksNiBAQAogLy8gRklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBt
b3ZlIHRvIG1ha2VpbmcgdGhlIFdlYkNvcmUvUGxhdGZvcm1Gb29FdmVudHMgdHJpdmlhbCBjbGFz
c2VzIHNvIHRoYXQKIC8vIHdlIGNhbiB1c2UgdGhlbSBhcyB0aGUgZXZlbnQgdHlwZS4KIAotI2lu
Y2x1ZGUgIkVkaXRpbmdSYW5nZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQ29tcG9zaXRpb25VbmRl
cmxpbmUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL0Zsb2F0U2l6ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL0ludFNpemUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0tleXByZXNzQ29tbWFuZC5o
PgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5o
PgogI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgpAQCAtNDYsMTIgKzM5LDYgQEAgY2xhc3MgRGVj
b2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9CiAKLSNpZiBVU0UoQVBQS0lUKQotbmFtZXNwYWNlIFdl
YkNvcmUgewotc3RydWN0IEtleXByZXNzQ29tbWFuZDsKLX0KLSNlbmRpZgotCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgV2ViRXZlbnQgewpAQCAtMTI2LDM3MyArMTEzLDYgQEAgcHJpdmF0
ZToKICAgICBXYWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKLS8vIEZJWE1FOiBNb3ZlIHRoaXMg
Y2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYk1vdXNlRXZlbnQgOiBwdWJs
aWMgV2ViRXZlbnQgewotcHVibGljOgotICAgIGVudW0gQnV0dG9uIHsKLSAgICAgICAgTGVmdEJ1
dHRvbiA9IDAsCi0gICAgICAgIE1pZGRsZUJ1dHRvbiwKLSAgICAgICAgUmlnaHRCdXR0b24sCi0g
ICAgICAgIE5vQnV0dG9uID0gLTIKLSAgICB9OwotCi0gICAgZW51bSBTeW50aGV0aWNDbGlja1R5
cGUgeyBOb1RhcCwgT25lRmluZ2VyVGFwLCBUd29GaW5nZXJUYXAgfTsKLQotICAgIFdlYk1vdXNl
RXZlbnQoKTsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBXZWJNb3VzZUV2ZW50KFR5cGUsIEJ1
dHRvbiwgdW5zaWduZWQgc2hvcnQgYnV0dG9ucywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBv
c2l0aW9uSW5WaWV3LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZs
b2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBP
cHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3lu
dGhldGljQ2xpY2tUeXBlID0gTm9UYXAsIGludCBldmVudE51bWJlciA9IC0xLCBpbnQgbWVudVR5
cGUgPSAwKTsKLSNlbHNlCi0gICAgV2ViTW91c2VFdmVudChUeXBlLCBCdXR0b24sIHVuc2lnbmVk
IHNob3J0IGJ1dHRvbnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbkluVmlldywg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZs
b2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgT3B0aW9uU2V0PE1vZGlm
aWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlj
a1R5cGUgPSBOb1RhcCk7Ci0jZW5kaWYKLQotICAgIEJ1dHRvbiBidXR0b24oKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQotICAgIHVuc2lnbmVkIHNob3J0
IGJ1dHRvbnMoKSBjb25zdCB7IHJldHVybiBtX2J1dHRvbnM7IH0KLSAgICBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9IC8vIFJl
bGF0aXZlIHRvIHRoZSB2aWV3LgotICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsUG9zaXRpb247IH0KLSAgICBmbG9hdCBk
ZWx0YVgoKSBjb25zdCB7IHJldHVybiBtX2RlbHRhWDsgfQotICAgIGZsb2F0IGRlbHRhWSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGVsdGFZOyB9Ci0gICAgZmxvYXQgZGVsdGFaKCkgY29uc3QgeyByZXR1
cm4gbV9kZWx0YVo7IH0KLSAgICBpbnQzMl90IGNsaWNrQ291bnQoKSBjb25zdCB7IHJldHVybiBt
X2NsaWNrQ291bnQ7IH0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgaW50MzJfdCBldmVudE51bWJl
cigpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnROdW1iZXI7IH0KLSAgICBpbnQzMl90IG1lbnVUeXBl
Rm9yRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX21lbnVUeXBlRm9yRXZlbnQ7IH0KLSNlbmRpZgot
ICAgIGRvdWJsZSBmb3JjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2U7IH0KLSAgICBTeW50aGV0
aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8U3ludGhldGljQ2xpY2tUeXBlPihtX3N5bnRoZXRpY0NsaWNrVHlwZSk7IH0KLQotICAgIHZv
aWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9S
RVRVUk4gYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViTW91c2VFdmVudCYpOwotCi1wcml2
YXRlOgotICAgIHN0YXRpYyBib29sIGlzTW91c2VFdmVudFR5cGUoVHlwZSk7Ci0KLSAgICB1aW50
MzJfdCBtX2J1dHRvbiB7IHN0YXRpY19jYXN0PHVpbnQzMl90PihOb0J1dHRvbikgfTsKLSAgICB1
bnNpZ25lZCBzaG9ydCBtX2J1dHRvbnMgeyAwIH07Ci0gICAgV2ViQ29yZTo6SW50UG9pbnQgbV9w
b3NpdGlvbjsgLy8gUmVsYXRpdmUgdG8gdGhlIHZpZXcuCi0gICAgV2ViQ29yZTo6SW50UG9pbnQg
bV9nbG9iYWxQb3NpdGlvbjsKLSAgICBmbG9hdCBtX2RlbHRhWCB7IDAgfTsKLSAgICBmbG9hdCBt
X2RlbHRhWSB7IDAgfTsKLSAgICBmbG9hdCBtX2RlbHRhWiB7IDAgfTsKLSAgICBpbnQzMl90IG1f
Y2xpY2tDb3VudCB7IDAgfTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgaW50MzJfdCBtX2V2ZW50
TnVtYmVyIHsgLTEgfTsKLSAgICBpbnQzMl90IG1fbWVudVR5cGVGb3JFdmVudCB7IDAgfTsKLSNl
bmRpZgotICAgIGRvdWJsZSBtX2ZvcmNlIHsgMCB9OwotICAgIHVpbnQzMl90IG1fc3ludGhldGlj
Q2xpY2tUeXBlIHsgTm9UYXAgfTsKLX07Ci0KLS8vIEZJWE1FOiBNb3ZlIHRoaXMgY2xhc3MgdG8g
aXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYldoZWVsRXZlbnQgOiBwdWJsaWMgV2ViRXZl
bnQgewotcHVibGljOgotICAgIGVudW0gR3JhbnVsYXJpdHkgewotICAgICAgICBTY3JvbGxCeVBh
Z2VXaGVlbEV2ZW50LAotICAgICAgICBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudAotICAgIH07Ci0K
LSAgICBlbnVtIFBoYXNlIHsKLSAgICAgICAgUGhhc2VOb25lICAgICAgICA9IDAsCi0gICAgICAg
IFBoYXNlQmVnYW4gICAgICAgPSAxIDw8IDAsCi0gICAgICAgIFBoYXNlU3RhdGlvbmFyeSAgPSAx
IDw8IDEsCi0gICAgICAgIFBoYXNlQ2hhbmdlZCAgICAgPSAxIDw8IDIsCi0gICAgICAgIFBoYXNl
RW5kZWQgICAgICAgPSAxIDw8IDMsCi0gICAgICAgIFBoYXNlQ2FuY2VsbGVkICAgPSAxIDw8IDQs
Ci0gICAgICAgIFBoYXNlTWF5QmVnaW4gICAgPSAxIDw8IDUsCi0gICAgfTsKLQotICAgIFdlYldo
ZWVsRXZlbnQoKSA9IGRlZmF1bHQ7Ci0KLSAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBPcHRpb25TZXQ8TW9kaWZpZXI+
LCBXYWxsVGltZSB0aW1lc3RhbXApOwotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdlYldoZWVs
RXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
ZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHks
IGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1Q
aGFzZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxDb3Vu
dCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEs
IE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Ci0jZWxpZiBQTEFURk9S
TShHVEspIHx8IFVTRShMSUJXUEUpCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVs
YXJpdHksIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Ci0jZW5kaWYK
LQotICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9wb3NpdGlvbjsgfQotICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxQb3NpdGlvbjsgfQotICAgIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSBkZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsdGE7IH0KLSAgICBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxUaWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fd2hlZWxUaWNr
czsgfQotICAgIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8R3JhbnVsYXJpdHk+KG1fZ3JhbnVsYXJpdHkpOyB9Ci0gICAgYm9vbCBkaXJlY3Rpb25J
bnZlcnRlZEZyb21EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvbkludmVydGVkRnJv
bURldmljZTsgfQotICAgIFBoYXNlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
UGhhc2U+KG1fcGhhc2UpOyB9Ci0gICAgUGhhc2UgbW9tZW50dW1QaGFzZSgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PFBoYXNlPihtX21vbWVudHVtUGhhc2UpOyB9Ci0jaWYgUExBVEZPUk0o
Q09DT0EpCi0gICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkgY29uc3QgeyByZXR1
cm4gbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOyB9Ci0gICAgdWludDMyX3Qgc2Nyb2xsQ291
bnQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbENvdW50OyB9Ci0gICAgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEoKSBjb25zdCB7IHJldHVybiBt
X3VuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YTsgfQotI2VuZGlmCi0KLSAgICB2b2lkIGVuY29k
ZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYldoZWVsRXZlbnQmKTsKLQotcHJpdmF0ZToKLSAg
ICBzdGF0aWMgYm9vbCBpc1doZWVsRXZlbnRUeXBlKFR5cGUpOwotCi0gICAgV2ViQ29yZTo6SW50
UG9pbnQgbV9wb3NpdGlvbjsKLSAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2dsb2JhbFBvc2l0aW9u
OwotICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX2RlbHRhOwotICAgIFdlYkNvcmU6OkZsb2F0U2l6
ZSBtX3doZWVsVGlja3M7Ci0gICAgdWludDMyX3QgbV9ncmFudWxhcml0eSB7IFNjcm9sbEJ5UGFn
ZVdoZWVsRXZlbnQgfTsKLSAgICBib29sIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlIHsg
ZmFsc2UgfTsKLSAgICB1aW50MzJfdCBtX3BoYXNlIHsgUGhhc2U6OlBoYXNlTm9uZSB9OwotICAg
IHVpbnQzMl90IG1fbW9tZW50dW1QaGFzZSB7IFBoYXNlOjpQaGFzZU5vbmUgfTsKLSNpZiBQTEFU
Rk9STShDT0NPQSkKLSAgICBib29sIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyB7IGZhbHNl
IH07Ci0gICAgdWludDMyX3QgbV9zY3JvbGxDb3VudCB7IDAgfTsKLSAgICBXZWJDb3JlOjpGbG9h
dFNpemUgbV91bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGE7Ci0jZW5kaWYKLX07Ci0KLS8vIEZJ
WE1FOiBNb3ZlIHRoaXMgY2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYktl
eWJvYXJkRXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewotcHVibGljOgotICAgIFdlYktleWJvYXJk
RXZlbnQoKTsKLSAgICB+V2ViS2V5Ym9hcmRFdmVudCgpOwotCi0jaWYgVVNFKEFQUEtJVCkKLSAg
ICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwg
Y29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBp
bnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBoYW5kbGVkQnlJ
bnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mLCBib29s
IGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0
PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKLSNlbGlmIFBMQVRGT1JNKEdUSykKLSAg
ICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wg
aGFuZGxlZEJ5SW5wdXRNZXRob2QsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlv
blVuZGVybGluZT4+JiYsIE9wdGlvbmFsPEVkaXRpbmdSYW5nZT4mJiwgVmVjdG9yPFN0cmluZz4m
JiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUg
dGltZXN0YW1wKTsKLSNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgV2ViS2V5Ym9hcmRF
dmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRl
eHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYg
a2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1
YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGJv
b2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBPcHRpb25T
ZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOwotI2VsaWYgVVNFKExJQldQRSkKLSAg
ICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wg
aGFuZGxlZEJ5SW5wdXRNZXRob2QsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlv
blVuZGVybGluZT4+JiYsIE9wdGlvbmFsPEVkaXRpbmdSYW5nZT4mJiwgYm9vbCBpc0tleXBhZCwg
T3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKLSNlbHNlCi0gICAgV2Vi
S2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5t
b2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5h
dGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBi
b29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBPcHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxs
VGltZSB0aW1lc3RhbXApOwotI2VuZGlmCi0KLSAgICBjb25zdCBTdHJpbmcmIHRleHQoKSBjb25z
dCB7IHJldHVybiBtX3RleHQ7IH0KLSAgICBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0KCkg
Y29uc3QgeyByZXR1cm4gbV91bm1vZGlmaWVkVGV4dDsgfQotICAgIGNvbnN0IFN0cmluZyYga2V5
KCkgY29uc3QgeyByZXR1cm4gbV9rZXk7IH0KLSAgICBjb25zdCBTdHJpbmcmIGNvZGUoKSBjb25z
dCB7IHJldHVybiBtX2NvZGU7IH0KLSAgICBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX2tleUlkZW50aWZpZXI7IH0KLSAgICBpbnQzMl90IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlOyB9Ci0g
ICAgaW50MzJfdCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZl
VmlydHVhbEtleUNvZGU7IH0KLSAgICBpbnQzMl90IG1hY0NoYXJDb2RlKCkgY29uc3QgeyByZXR1
cm4gbV9tYWNDaGFyQ29kZTsgfQotI2lmIFVTRShBUFBLSVQpIHx8IFVTRShVSUtJVF9LRVlCT0FS
RF9BRERJVElPTlMpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKLSAgICBib29sIGhh
bmRsZWRCeUlucHV0TWV0aG9kKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGVkQnlJbnB1dE1ldGhv
ZDsgfQotI2VuZGlmCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQotICAgIGNvbnN0
IE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZT4+JiBwcmVlZGl0
VW5kZXJsaW5lcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZWRpdFVuZGVybGluZXM7IH0KLSAgICBj
b25zdCBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+JiBwcmVlZGl0U2VsZWN0aW9uUmFuZ2UoKSBjb25z
dCB7IHJldHVybiBtX3ByZWVkaXRTZWxlY3Rpb25SYW5nZTsgfQotI2VuZGlmCi0jaWYgVVNFKEFQ
UEtJVCkKLSAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFu
ZHMoKSBjb25zdCB7IHJldHVybiBtX2NvbW1hbmRzOyB9Ci0jZWxpZiBQTEFURk9STShHVEspCi0g
ICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvbW1hbmRzKCkgY29uc3QgeyByZXR1cm4gbV9jb21t
YW5kczsgfQotI2VuZGlmCi0gICAgYm9vbCBpc0F1dG9SZXBlYXQoKSBjb25zdCB7IHJldHVybiBt
X2lzQXV0b1JlcGVhdDsgfQotICAgIGJvb2wgaXNLZXlwYWQoKSBjb25zdCB7IHJldHVybiBtX2lz
S2V5cGFkOyB9Ci0gICAgYm9vbCBpc1N5c3RlbUtleSgpIGNvbnN0IHsgcmV0dXJuIG1faXNTeXN0
ZW1LZXk7IH0KLQotICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0
YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViS2V5
Ym9hcmRFdmVudCYpOwotCi0gICAgc3RhdGljIGJvb2wgaXNLZXlib2FyZEV2ZW50VHlwZShUeXBl
KTsKLQotcHJpdmF0ZToKLSAgICBTdHJpbmcgbV90ZXh0OwotICAgIFN0cmluZyBtX3VubW9kaWZp
ZWRUZXh0OwotICAgIFN0cmluZyBtX2tleTsKLSAgICBTdHJpbmcgbV9jb2RlOwotICAgIFN0cmlu
ZyBtX2tleUlkZW50aWZpZXI7Ci0gICAgaW50MzJfdCBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSB7
IDAgfTsKLSAgICBpbnQzMl90IG1fbmF0aXZlVmlydHVhbEtleUNvZGUgeyAwIH07Ci0gICAgaW50
MzJfdCBtX21hY0NoYXJDb2RlIHsgMCB9OwotI2lmIFVTRShBUFBLSVQpIHx8IFVTRShVSUtJVF9L
RVlCT0FSRF9BRERJVElPTlMpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKLSAgICBi
b29sIG1faGFuZGxlZEJ5SW5wdXRNZXRob2QgeyBmYWxzZSB9OwotI2VuZGlmCi0jaWYgUExBVEZP
Uk0oR1RLKSB8fCBVU0UoTElCV1BFKQotICAgIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21w
b3NpdGlvblVuZGVybGluZT4+IG1fcHJlZWRpdFVuZGVybGluZXM7Ci0gICAgT3B0aW9uYWw8RWRp
dGluZ1JhbmdlPiBtX3ByZWVkaXRTZWxlY3Rpb25SYW5nZTsKLSNlbmRpZgotI2lmIFVTRShBUFBL
SVQpCi0gICAgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gbV9jb21tYW5kczsKLSNl
bGlmIFBMQVRGT1JNKEdUSykKLSAgICBWZWN0b3I8U3RyaW5nPiBtX2NvbW1hbmRzOwotI2VuZGlm
Ci0gICAgYm9vbCBtX2lzQXV0b1JlcGVhdCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzS2V5cGFk
IHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNTeXN0ZW1LZXkgeyBmYWxzZSB9OwotfTsKLQotI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLWNsYXNzIFdl
YlBsYXRmb3JtVG91Y2hQb2ludCB7Ci1wdWJsaWM6Ci0gICAgZW51bSBUb3VjaFBvaW50U3RhdGUg
ewotICAgICAgICBUb3VjaFJlbGVhc2VkLAotICAgICAgICBUb3VjaFByZXNzZWQsCi0gICAgICAg
IFRvdWNoTW92ZWQsCi0gICAgICAgIFRvdWNoU3RhdGlvbmFyeSwKLSAgICAgICAgVG91Y2hDYW5j
ZWxsZWQKLSAgICB9OwotCi0gICAgZW51bSBjbGFzcyBUb3VjaFR5cGUgewotICAgICAgICBEaXJl
Y3QsCi0gICAgICAgIFN0eWx1cwotICAgIH07Ci0KLSAgICBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQo
KSA9IGRlZmF1bHQ7Ci0gICAgV2ViUGxhdGZvcm1Ub3VjaFBvaW50KHVuc2lnbmVkIGlkZW50aWZp
ZXIsIFdlYkNvcmU6OkludFBvaW50IGxvY2F0aW9uLCBUb3VjaFBvaW50U3RhdGUgcGhhc2UpCi0g
ICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgICAgICwgbV9sb2NhdGlvbihs
b2NhdGlvbikKLSAgICAgICAgLCBtX3BoYXNlKHBoYXNlKQotICAgIHsKLSAgICB9Ci0KLSAgICB1
bnNpZ25lZCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0gICAg
V2ViQ29yZTo6SW50UG9pbnQgbG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2xvY2F0aW9uOyB9
Ci0gICAgVG91Y2hQb2ludFN0YXRlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
VG91Y2hQb2ludFN0YXRlPihtX3BoYXNlKTsgfQotICAgIFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIHBoYXNlKCk7IH0KLQotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQotICAgIHZvaWQgc2V0UmFkaXVzWChkb3VibGUgcmFkaXVzWCkgeyBtX3JhZGl1c1ggPSByYWRp
dXNYOyB9Ci0gICAgZG91YmxlIHJhZGl1c1goKSBjb25zdCB7IHJldHVybiBtX3JhZGl1c1g7IH0K
LSAgICB2b2lkIHNldFJhZGl1c1koZG91YmxlIHJhZGl1c1kpIHsgbV9yYWRpdXNZID0gcmFkaXVz
WTsgfQotICAgIGRvdWJsZSByYWRpdXNZKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXNZOyB9Ci0g
ICAgdm9pZCBzZXRSb3RhdGlvbkFuZ2xlKGRvdWJsZSByb3RhdGlvbkFuZ2xlKSB7IG1fcm90YXRp
b25BbmdsZSA9IHJvdGF0aW9uQW5nbGU7IH0KLSAgICBkb3VibGUgcm90YXRpb25BbmdsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcm90YXRpb25BbmdsZTsgfQotICAgIHZvaWQgc2V0Rm9yY2UoZG91Ymxl
IGZvcmNlKSB7IG1fZm9yY2UgPSBmb3JjZTsgfQotICAgIGRvdWJsZSBmb3JjZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZm9yY2U7IH0KLSAgICB2b2lkIHNldEFsdGl0dWRlQW5nbGUoZG91YmxlIGFsdGl0
dWRlQW5nbGUpIHsgbV9hbHRpdHVkZUFuZ2xlID0gYWx0aXR1ZGVBbmdsZTsgfQotICAgIGRvdWJs
ZSBhbHRpdHVkZUFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9hbHRpdHVkZUFuZ2xlOyB9Ci0gICAg
dm9pZCBzZXRBemltdXRoQW5nbGUoZG91YmxlIGF6aW11dGhBbmdsZSkgeyBtX2F6aW11dGhBbmds
ZSA9IGF6aW11dGhBbmdsZTsgfQotICAgIGRvdWJsZSBhemltdXRoQW5nbGUoKSBjb25zdCB7IHJl
dHVybiBtX2F6aW11dGhBbmdsZTsgfQotICAgIHZvaWQgc2V0VG91Y2hUeXBlKFRvdWNoVHlwZSB0
b3VjaFR5cGUpIHsgbV90b3VjaFR5cGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4odG91Y2hUeXBl
KTsgfQotICAgIFRvdWNoVHlwZSB0b3VjaFR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxUb3VjaFR5cGU+KG1fdG91Y2hUeXBlKTsgfQotI2VuZGlmCi0KLSAgICB2b2lkIGVuY29kZShJ
UEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgT3B0aW9uYWw8V2ViUGxhdGZvcm1Ub3Vj
aFBvaW50PiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7Ci0KLXByaXZhdGU6Ci0gICAgdW5zaWduZWQg
bV9pZGVudGlmaWVyIHsgMCB9OwotICAgIFdlYkNvcmU6OkludFBvaW50IG1fbG9jYXRpb247Ci0g
ICAgdWludDMyX3QgbV9waGFzZSB7IFRvdWNoUmVsZWFzZWQgfTsKLSNpZiBFTkFCTEUoSU9TX1RP
VUNIX0VWRU5UUykKLSAgICBkb3VibGUgbV9yYWRpdXNYIHsgMCB9OwotICAgIGRvdWJsZSBtX3Jh
ZGl1c1kgeyAwIH07Ci0gICAgZG91YmxlIG1fcm90YXRpb25BbmdsZSB7IDAgfTsKLSAgICBkb3Vi
bGUgbV9mb3JjZSB7IDAgfTsKLSAgICBkb3VibGUgbV9hbHRpdHVkZUFuZ2xlIHsgMCB9OwotICAg
IGRvdWJsZSBtX2F6aW11dGhBbmdsZSB7IDAgfTsKLSAgICB1aW50MzJfdCBtX3RvdWNoVHlwZSB7
IHN0YXRpY19jYXN0PHVpbnQzMl90PihUb3VjaFR5cGU6OkRpcmVjdCkgfTsKLSNlbmRpZgotfTsK
LQotY2xhc3MgV2ViVG91Y2hFdmVudCA6IHB1YmxpYyBXZWJFdmVudCB7Ci1wdWJsaWM6Ci0gICAg
V2ViVG91Y2hFdmVudCgpID0gZGVmYXVsdDsKLSAgICBXZWJUb3VjaEV2ZW50KFdlYkV2ZW50OjpU
eXBlIHR5cGUsIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3Rh
bXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cywgV2Vi
Q29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3RlbnRpYWxUYXAsIGJvb2wgaXNHZXN0
dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKLSAgICAgICAg
OiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKLSAgICAgICAgLCBtX3RvdWNo
UG9pbnRzKHRvdWNoUG9pbnRzKQotICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCi0gICAg
ICAgICwgbV9jYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXModHJ1ZSkKLSAgICAgICAgLCBtX2lzUG90
ZW50aWFsVGFwKGlzUG90ZW50aWFsVGFwKQotICAgICAgICAsIG1faXNHZXN0dXJlKGlzR2VzdHVy
ZSkKLSAgICAgICAgLCBtX2dlc3R1cmVTY2FsZShnZXN0dXJlU2NhbGUpCi0gICAgICAgICwgbV9n
ZXN0dXJlUm90YXRpb24oZ2VzdHVyZVJvdGF0aW9uKQotICAgIHsKLSAgICAgICAgQVNTRVJUKHR5
cGUgPT0gVG91Y2hTdGFydCB8fCB0eXBlID09IFRvdWNoTW92ZSB8fCB0eXBlID09IFRvdWNoRW5k
IHx8IHR5cGUgPT0gVG91Y2hDYW5jZWwpOwotICAgIH0KLQotICAgIGNvbnN0IFZlY3RvcjxXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdG91Y2hQ
b2ludHM7IH0KLQotICAgIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9wb3NpdGlvbjsgfQotCi0gICAgYm9vbCBpc1BvdGVudGlhbFRhcCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNQb3RlbnRpYWxUYXA7IH0KLQotICAgIGJvb2wgaXNHZXN0dXJlKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc0dlc3R1cmU7IH0KLSAgICBmbG9hdCBnZXN0dXJlU2NhbGUoKSBjb25zdCB7IHJl
dHVybiBtX2dlc3R1cmVTY2FsZTsgfQotICAgIGZsb2F0IGdlc3R1cmVSb3RhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fZ2VzdHVyZVJvdGF0aW9uOyB9Ci0KLSAgICBib29sIGNhblByZXZlbnROYXRp
dmVHZXN0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzOyB9
Ci0gICAgdm9pZCBzZXRDYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMoYm9vbCBjYW5QcmV2ZW50TmF0
aXZlR2VzdHVyZXMpIHsgbV9jYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMgPSBjYW5QcmV2ZW50TmF0
aXZlR2VzdHVyZXM7IH0KLQotICAgIGJvb2wgYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgpIGNv
bnN0OwotCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJUb3VjaEV2
ZW50Jik7Ci0gICAgCi1wcml2YXRlOgotICAgIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+
IG1fdG91Y2hQb2ludHM7Ci0gICAgCi0gICAgV2ViQ29yZTo6SW50UG9pbnQgbV9wb3NpdGlvbjsK
LSAgICBib29sIG1fY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzIHsgZmFsc2UgfTsKLSAgICBib29s
IG1faXNQb3RlbnRpYWxUYXAgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc0dlc3R1cmUgeyBmYWxz
ZSB9OwotICAgIGZsb2F0IG1fZ2VzdHVyZVNjYWxlIHsgMCB9OwotICAgIGZsb2F0IG1fZ2VzdHVy
ZVJvdGF0aW9uIHsgMCB9OwotfTsKLSNlbHNlCi0vLyBGSVhNRTogTW92ZSB0aGlzIGNsYXNzIHRv
IGl0cyBvd24gaGVhZGVyIGZpbGUuCi0vLyBGSVhNRTogSGF2aW5nICJQbGF0Zm9ybSIgaW4gdGhl
IG5hbWUgbWFrZXMgaXQgc291bmQgbGlrZSB0aGlzIGV2ZW50IGlzIHBsYXRmb3JtLXNwZWNpZmlj
IG9yIGxvdy0KLS8vIGxldmVsIGluIHNvbWUgd2F5LiBUaGF0IGRvZXNuJ3Qgc2VlbSB0byBiZSB0
aGUgY2FzZS4KLWNsYXNzIFdlYlBsYXRmb3JtVG91Y2hQb2ludCB7Ci1wdWJsaWM6Ci0gICAgZW51
bSBUb3VjaFBvaW50U3RhdGUgewotICAgICAgICBUb3VjaFJlbGVhc2VkLAotICAgICAgICBUb3Vj
aFByZXNzZWQsCi0gICAgICAgIFRvdWNoTW92ZWQsCi0gICAgICAgIFRvdWNoU3RhdGlvbmFyeSwK
LSAgICAgICAgVG91Y2hDYW5jZWxsZWQKLSAgICB9OwotCi0gICAgV2ViUGxhdGZvcm1Ub3VjaFBv
aW50KCkgOiBtX3JvdGF0aW9uQW5nbGUoMC4wKSwgbV9mb3JjZSgwLjApIHsgfQotCi0gICAgV2Vi
UGxhdGZvcm1Ub3VjaFBvaW50KHVpbnQzMl90IGlkLCBUb3VjaFBvaW50U3RhdGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBzY3JlZW5Qb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IHBvc2l0aW9uKTsKLQotICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCh1aW50MzJfdCBpZCwgVG91
Y2hQb2ludFN0YXRlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2NyZWVuUG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
cmFkaXVzLCBmbG9hdCByb3RhdGlvbkFuZ2xlID0gMC4wLCBmbG9hdCBmb3JjZSA9IDAuMCk7Ci0g
ICAgCi0gICAgdWludDMyX3QgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9Ci0gICAgVG91Y2hQ
b2ludFN0YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VG91Y2hQb2ludFN0
YXRlPihtX3N0YXRlKTsgfQotCi0gICAgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcmVlblBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zY3JlZW5Qb3NpdGlvbjsgfQotICAgIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0K
LSAgICBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiByYWRpdXMoKSBjb25zdCB7IHJldHVybiBtX3Jh
ZGl1czsgfQotICAgIGZsb2F0IHJvdGF0aW9uQW5nbGUoKSBjb25zdCB7IHJldHVybiBtX3JvdGF0
aW9uQW5nbGU7IH0KLSAgICBmbG9hdCBmb3JjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2U7IH0K
LQotICAgIHZvaWQgc2V0U3RhdGUoVG91Y2hQb2ludFN0YXRlIHN0YXRlKSB7IG1fc3RhdGUgPSBz
dGF0ZTsgfQotCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3Rh
dGljIE9wdGlvbmFsPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gZGVjb2RlKElQQzo6RGVjb2RlciYp
OwotCi1wcml2YXRlOgotICAgIHVpbnQzMl90IG1faWQ7Ci0gICAgdWludDMyX3QgbV9zdGF0ZTsK
LSAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3NjcmVlblBvc2l0aW9uOwotICAgIFdlYkNvcmU6Oklu
dFBvaW50IG1fcG9zaXRpb247Ci0gICAgV2ViQ29yZTo6SW50U2l6ZSBtX3JhZGl1czsKLSAgICBm
bG9hdCBtX3JvdGF0aW9uQW5nbGU7Ci0gICAgZmxvYXQgbV9mb3JjZTsKLX07Ci0KLS8vIEZJWE1F
OiBNb3ZlIHRoaXMgY2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYlRvdWNo
RXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewotcHVibGljOgotICAgIFdlYlRvdWNoRXZlbnQoKSB7
IH0KLSAgICBXZWJUb3VjaEV2ZW50KFR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+
JiYsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Ci0KLSAgICBjb25z
dCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMoKSBjb25zdCB7IHJl
dHVybiBtX3RvdWNoUG9pbnRzOyB9Ci0KLSAgICBib29sIGFsbFRvdWNoUG9pbnRzQXJlUmVsZWFz
ZWQoKSBjb25zdDsKLQotICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAg
IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2Vi
VG91Y2hFdmVudCYpOwotICAKLXByaXZhdGU6Ci0gICAgc3RhdGljIGJvb2wgaXNUb3VjaEV2ZW50
VHlwZShUeXBlKTsKLQotICAgIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+IG1fdG91Y2hQ
b2ludHM7Ci19OwotCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNlbmRpZiAvLyBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogbmFtZXNwYWNl
IFdURiB7CkBAIC01MDgsMjMgKzEyOCw0IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+IHsKICAgICA+OwogfTsKIAotdGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbj4gewotICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6
QnV0dG9uLAotICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbjo6TGVmdEJ1dHRv
biwKLSAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246Ok1pZGRsZUJ1dHRvbiwK
LSAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246OlJpZ2h0QnV0dG9uLAotICAg
ICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbjo6Tm9CdXR0b24KLSAgICA+OwotfTsK
LQotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5
bnRoZXRpY0NsaWNrVHlwZT4gewotICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAg
ICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBlLAotICAgICAgICBX
ZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZTo6Tm9UYXAsCi0gICAgICAg
IFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBlOjpPbmVGaW5nZXJUYXAs
Ci0gICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBlOjpUd29G
aW5nZXJUYXAKLSAgICA+OwotfTsKLQogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcAppbmRleCA4YTZlNDE4Njg4MTgxYWE3ZTM2
NjNkMDUzODcwZGU0YmUwMjhjYmFiLi4yZGUyNjAxNTU5NWEzODNmYjNiMTdlYWY3NDZkMjk2ZjZl
OTk4ODdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudENvbnZlcnNp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAK
QEAgLTI2LDcgKzI2LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViRXZl
bnRDb252ZXJzaW9uLmgiCiAKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYktl
eWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiV2Vi
VG91Y2hFdmVudC5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZlbnQuaCIKIAogI2lmIEVOQUJMRShN
QUNfR0VTVFVSRV9FVkVOVFMpCiAjaW5jbHVkZSAiV2ViR2VzdHVyZUV2ZW50LmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwCmluZGV4IGNjY2I1NjA0MThmMzJmYWQ0
MDU4N2FjMDgzYjk1ZjM5OGViMTM5OWQuLmJjNDMyMjI4NjQ4NGU2YWZkZDQ5MzUzZmFlNmE4ZmIz
Y2Q1ZTY2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwCkBA
IC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldl
YkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2V5Ym9hcmRFdmVudC5oIgogCiAjaW5jbHVkZSAiV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9LZXlwcmVzc0NvbW1hbmQu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjgw
MjlkYzQ2ZGMyNTMxZjVjYzIzNDA5ZGM2ZDJmMTFkNWEzYjQ5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5oCkBAIC0wLDAgKzEsMTExIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IkVkaXRpbmdSYW5nZS5oIgorI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9Db21wb3NpdGlvblVuZGVybGluZS5oPgorCisjaWYgVVNFKEFQUEtJVCkKKyNpbmNsdWRlIDxX
ZWJDb3JlL0tleXByZXNzQ29tbWFuZC5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJLZXlib2FyZEV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKK3B1YmxpYzoKKyAg
ICBXZWJLZXlib2FyZEV2ZW50KCk7CisgICAgfldlYktleWJvYXJkRXZlbnQoKTsKKworI2lmIFVT
RShBUFBLSVQpCisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJv
b2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0Nv
bW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1L
ZXksIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZWxpZiBQTEFU
Rk9STShHVEspCisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5
SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxL
ZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBPcHRpb25hbDxWZWN0b3I8V2ViQ29y
ZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+PiYmLCBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+JiYsIFZl
Y3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNLZXlwYWQsIE9wdGlvblNldDxNb2RpZmll
cj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcm
IHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBj
b25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGlu
dCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGhhbmRsZWRCeUlu
cHV0TWV0aG9kLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3Rl
bUtleSwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKKyNlbGlmIFVT
RShMSUJXUEUpCisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5
SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxL
ZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBPcHRpb25hbDxWZWN0b3I8V2ViQ29y
ZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+PiYmLCBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+JiYsIGJv
b2wgaXNLZXlwYWQsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Cisj
ZWxzZQorICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5n
JiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtl
eUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlz
QXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0PE1v
ZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKKyNlbmRpZgorCisgICAgY29uc3QgU3RyaW5n
JiB0ZXh0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0OyB9CisgICAgY29uc3QgU3RyaW5nJiB1bm1v
ZGlmaWVkVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5tb2RpZmllZFRleHQ7IH0KKyAgICBjb25z
dCBTdHJpbmcmIGtleSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5OyB9CisgICAgY29uc3QgU3RyaW5n
JiBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlOyB9CisgICAgY29uc3QgU3RyaW5nJiBrZXlJ
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9rZXlJZGVudGlmaWVyOyB9CisgICAgaW50MzJf
dCB3aW5kb3dzVmlydHVhbEtleUNvZGUoKSBjb25zdCB7IHJldHVybiBtX3dpbmRvd3NWaXJ0dWFs
S2V5Q29kZTsgfQorICAgIGludDMyX3QgbmF0aXZlVmlydHVhbEtleUNvZGUoKSBjb25zdCB7IHJl
dHVybiBtX25hdGl2ZVZpcnR1YWxLZXlDb2RlOyB9CisgICAgaW50MzJfdCBtYWNDaGFyQ29kZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWFjQ2hhckNvZGU7IH0KKyNpZiBVU0UoQVBQS0lUKSB8fCBVU0Uo
VUlLSVRfS0VZQk9BUkRfQURESVRJT05TKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUp
CisgICAgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxl
ZEJ5SW5wdXRNZXRob2Q7IH0KKyNlbmRpZgorI2lmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQ
RSkKKyAgICBjb25zdCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxp
bmU+PiYgcHJlZWRpdFVuZGVybGluZXMoKSBjb25zdCB7IHJldHVybiBtX3ByZWVkaXRVbmRlcmxp
bmVzOyB9CisgICAgY29uc3QgT3B0aW9uYWw8RWRpdGluZ1JhbmdlPiYgcHJlZWRpdFNlbGVjdGlv
blJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9wcmVlZGl0U2VsZWN0aW9uUmFuZ2U7IH0KKyNlbmRp
ZgorI2lmIFVTRShBUFBLSVQpCisgICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29t
bWFuZD4mIGNvbW1hbmRzKCkgY29uc3QgeyByZXR1cm4gbV9jb21tYW5kczsgfQorI2VsaWYgUExB
VEZPUk0oR1RLKQorICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb21tYW5kcygpIGNvbnN0IHsg
cmV0dXJuIG1fY29tbWFuZHM7IH0KKyNlbmRpZgorICAgIGJvb2wgaXNBdXRvUmVwZWF0KCkgY29u
c3QgeyByZXR1cm4gbV9pc0F1dG9SZXBlYXQ7IH0KKyAgICBib29sIGlzS2V5cGFkKCkgY29uc3Qg
eyByZXR1cm4gbV9pc0tleXBhZDsgfQorICAgIGJvb2wgaXNTeXN0ZW1LZXkoKSBjb25zdCB7IHJl
dHVybiBtX2lzU3lzdGVtS2V5OyB9CisKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBj
b25zdDsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKElQQzo6RGVj
b2RlciYsIFdlYktleWJvYXJkRXZlbnQmKTsKKworICAgIHN0YXRpYyBib29sIGlzS2V5Ym9hcmRF
dmVudFR5cGUoVHlwZSk7CisKK3ByaXZhdGU6CisgICAgU3RyaW5nIG1fdGV4dDsKKyAgICBTdHJp
bmcgbV91bm1vZGlmaWVkVGV4dDsKKyAgICBTdHJpbmcgbV9rZXk7CisgICAgU3RyaW5nIG1fY29k
ZTsKKyAgICBTdHJpbmcgbV9rZXlJZGVudGlmaWVyOworICAgIGludDMyX3QgbV93aW5kb3dzVmly
dHVhbEtleUNvZGUgeyAwIH07CisgICAgaW50MzJfdCBtX25hdGl2ZVZpcnR1YWxLZXlDb2RlIHsg
MCB9OworICAgIGludDMyX3QgbV9tYWNDaGFyQ29kZSB7IDAgfTsKKyNpZiBVU0UoQVBQS0lUKSB8
fCBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShM
SUJXUEUpCisgICAgYm9vbCBtX2hhbmRsZWRCeUlucHV0TWV0aG9kIHsgZmFsc2UgfTsKKyNlbmRp
ZgorI2lmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKKyAgICBPcHRpb25hbDxWZWN0b3I8
V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+PiBtX3ByZWVkaXRVbmRlcmxpbmVzOworICAg
IE9wdGlvbmFsPEVkaXRpbmdSYW5nZT4gbV9wcmVlZGl0U2VsZWN0aW9uUmFuZ2U7CisjZW5kaWYK
KyNpZiBVU0UoQVBQS0lUKQorICAgIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IG1f
Y29tbWFuZHM7CisjZWxpZiBQTEFURk9STShHVEspCisgICAgVmVjdG9yPFN0cmluZz4gbV9jb21t
YW5kczsKKyNlbmRpZgorICAgIGJvb2wgbV9pc0F1dG9SZXBlYXQgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9pc0tleXBhZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzU3lzdGVtS2V5IHsgZmFsc2Ug
fTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3Vz
ZUV2ZW50LmNwcAppbmRleCA3YjI3MGRjM2RiZTk4ZjYyOTBiODAxNzMzZWZmMzlmOTFhZWU0YTY5
Li44OGJkNTY0NzM0MzlhNzFmNGNiZGViMzBhYTQzN2JjOTRiMGZhMWM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYk1vdXNl
RXZlbnQuaCIKIAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTlhMWI1ZmE4NmI2OGM4NDY0ZDcz
MjcyZjEyMjJlOTA2MWJmODk1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYk1vdXNlRXZlbnQuaApAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKy8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkg
bW92ZSB0byBtYWtlaW5nIHRoZSBXZWJDb3JlL1BsYXRmb3JtRm9vRXZlbnRzIHRyaXZpYWwgY2xh
c3NlcyBzbyB0aGF0CisvLyB3ZSBjYW4gdXNlIHRoZW0gYXMgdGhlIGV2ZW50IHR5cGUuCisKKyNp
bmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk1vdXNlRXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQg
eworcHVibGljOgorICAgIGVudW0gQnV0dG9uIHsKKyAgICAgICAgTGVmdEJ1dHRvbiA9IDAsCisg
ICAgICAgIE1pZGRsZUJ1dHRvbiwKKyAgICAgICAgUmlnaHRCdXR0b24sCisgICAgICAgIE5vQnV0
dG9uID0gLTIKKyAgICB9OworCisgICAgZW51bSBTeW50aGV0aWNDbGlja1R5cGUgeyBOb1RhcCwg
T25lRmluZ2VyVGFwLCBUd29GaW5nZXJUYXAgfTsKKworICAgIFdlYk1vdXNlRXZlbnQoKTsKKwor
I2lmIFBMQVRGT1JNKE1BQykKKyAgICBXZWJNb3VzZUV2ZW50KFR5cGUsIEJ1dHRvbiwgdW5zaWdu
ZWQgc2hvcnQgYnV0dG9ucywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uSW5WaWV3
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwg
ZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBPcHRpb25TZXQ8TW9k
aWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tU
eXBlID0gTm9UYXAsIGludCBldmVudE51bWJlciA9IC0xLCBpbnQgbWVudVR5cGUgPSAwKTsKKyNl
bHNlCisgICAgV2ViTW91c2VFdmVudChUeXBlLCBCdXR0b24sIHVuc2lnbmVkIHNob3J0IGJ1dHRv
bnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbkluVmlldywgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwg
ZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRp
bWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1Rh
cCk7CisjZW5kaWYKKworICAgIEJ1dHRvbiBidXR0b24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQorICAgIHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMoKSBj
b25zdCB7IHJldHVybiBtX2J1dHRvbnM7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
cG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9IC8vIFJlbGF0aXZlIHRvIHRo
ZSB2aWV3LgorICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fZ2xvYmFsUG9zaXRpb247IH0KKyAgICBmbG9hdCBkZWx0YVgoKSBjb25z
dCB7IHJldHVybiBtX2RlbHRhWDsgfQorICAgIGZsb2F0IGRlbHRhWSgpIGNvbnN0IHsgcmV0dXJu
IG1fZGVsdGFZOyB9CisgICAgZmxvYXQgZGVsdGFaKCkgY29uc3QgeyByZXR1cm4gbV9kZWx0YVo7
IH0KKyAgICBpbnQzMl90IGNsaWNrQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWNrQ291bnQ7
IH0KKyNpZiBQTEFURk9STShNQUMpCisgICAgaW50MzJfdCBldmVudE51bWJlcigpIGNvbnN0IHsg
cmV0dXJuIG1fZXZlbnROdW1iZXI7IH0KKyAgICBpbnQzMl90IG1lbnVUeXBlRm9yRXZlbnQoKSBj
b25zdCB7IHJldHVybiBtX21lbnVUeXBlRm9yRXZlbnQ7IH0KKyNlbmRpZgorICAgIGRvdWJsZSBm
b3JjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2U7IH0KKyAgICBTeW50aGV0aWNDbGlja1R5cGUg
c3ludGhldGljQ2xpY2tUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U3ludGhldGlj
Q2xpY2tUeXBlPihtX3N5bnRoZXRpY0NsaWNrVHlwZSk7IH0KKworICAgIHZvaWQgZW5jb2RlKElQ
Qzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViTW91c2VFdmVudCYpOworCitwcml2YXRlOgorICAgIHN0
YXRpYyBib29sIGlzTW91c2VFdmVudFR5cGUoVHlwZSk7CisKKyAgICB1aW50MzJfdCBtX2J1dHRv
biB7IHN0YXRpY19jYXN0PHVpbnQzMl90PihOb0J1dHRvbikgfTsKKyAgICB1bnNpZ25lZCBzaG9y
dCBtX2J1dHRvbnMgeyAwIH07CisgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9wb3NpdGlvbjsgLy8g
UmVsYXRpdmUgdG8gdGhlIHZpZXcuCisgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9nbG9iYWxQb3Np
dGlvbjsKKyAgICBmbG9hdCBtX2RlbHRhWCB7IDAgfTsKKyAgICBmbG9hdCBtX2RlbHRhWSB7IDAg
fTsKKyAgICBmbG9hdCBtX2RlbHRhWiB7IDAgfTsKKyAgICBpbnQzMl90IG1fY2xpY2tDb3VudCB7
IDAgfTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgaW50MzJfdCBtX2V2ZW50TnVtYmVyIHsgLTEg
fTsKKyAgICBpbnQzMl90IG1fbWVudVR5cGVGb3JFdmVudCB7IDAgfTsKKyNlbmRpZgorICAgIGRv
dWJsZSBtX2ZvcmNlIHsgMCB9OworICAgIHVpbnQzMl90IG1fc3ludGhldGljQ2xpY2tUeXBlIHsg
Tm9UYXAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1
dHRvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYktpdDo6
V2ViTW91c2VFdmVudDo6QnV0dG9uLAorICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1
dHRvbjo6TGVmdEJ1dHRvbiwKKyAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246
Ok1pZGRsZUJ1dHRvbiwKKyAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246OlJp
Z2h0QnV0dG9uLAorICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbjo6Tm9CdXR0
b24KKyAgICA+OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6Oldl
Yk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tU
eXBlLAorICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZTo6
Tm9UYXAsCisgICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBl
OjpPbmVGaW5nZXJUYXAsCisgICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGlj
Q2xpY2tUeXBlOjpUd29GaW5nZXJUYXAKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQbGF0Zm9ybVRvdWNoUG9pbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGxhdGZvcm1Ub3VjaFBvaW50LmNwcAppbmRl
eCA0NWEyMGU5YzM0ZTg3ODMzYzc2MDBjMDM5NTY2ZjBlOTk0MGVmOWZmLi5jZTc0YWJmZjkxY2M2
OWNiMDkyODQzNDkzMjRmYTQ4MDhhNjNmZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQbGF0Zm9ybVRvdWNoUG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKICAqLwogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJUb3Vj
aEV2ZW50LmgiCiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAhUExBVEZPUk0oSU9TX0ZB
TUlMWSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcAppbmRleCA4MmFkYTc3
ZjU4NzEzNzkwMTI3OGI4ODgyMThlOWJiZDBmM2U3YzBhLi42NTI0YTE5OWUwMmMzMGUxMmQ0NTNl
NTMwYmY3ODk2MjA1OTgyYmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJU
b3VjaEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNw
cApAQCAtMjQsMTQgKzI0LDE2IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgogCi0jaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisKIFdlYlRvdWNoRXZlbnQ6OldlYlRv
dWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2lu
dD4mJiB0b3VjaFBvaW50cywgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQog
ICAgICwgbV90b3VjaFBvaW50cyhXVEZNb3ZlKHRvdWNoUG9pbnRzKSkKQEAgLTYxLDcgKzYzLDE5
IEBAIGJvb2wgV2ViVG91Y2hFdmVudDo6aXNUb3VjaEV2ZW50VHlwZShUeXBlIHR5cGUpCiB7CiAg
ICAgcmV0dXJuIHR5cGUgPT0gVG91Y2hTdGFydCB8fCB0eXBlID09IFRvdWNoTW92ZSB8fCB0eXBl
ID09IFRvdWNoRW5kIHx8IHR5cGUgPT0gVG91Y2hDYW5jZWw7CiB9Ci0gICAgCisKKyNlbmRpZiAv
LyAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworYm9vbCBXZWJUb3VjaEV2ZW50OjphbGxUb3VjaFBv
aW50c0FyZVJlbGVhc2VkKCkgY29uc3QKK3sKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHRvdWNoUG9p
bnQgOiB0b3VjaFBvaW50cygpKSB7CisgICAgICAgIGlmICh0b3VjaFBvaW50LnN0YXRlKCkgIT0g
V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkICYmIHRvdWNoUG9pbnQuc3RhdGUo
KSAhPSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoQ2FuY2VsbGVkKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpICYmICFQTEFURk9S
TShJT1NfRkFNSUxZKQorI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJUb3VjaEV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc5YjA0OWM1ZWQ3YzAzN2JjODNlMzU2
NmExZjQ3MGI0YTU4NzZjNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlRvdWNoRXZlbnQuaApAQCAtMCwwICsxLDIxMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvSW50UG9pbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKy8vIEZJWE1FOiBIYXZp
bmcgIlBsYXRmb3JtIiBpbiB0aGUgbmFtZSBtYWtlcyBpdCBzb3VuZCBsaWtlIHRoaXMgZXZlbnQg
aXMgcGxhdGZvcm0tc3BlY2lmaWMgb3IKKy8vIGxvdy1sZXZlbCBpbiBzb21lIHdheS4gVGhhdCBk
b2Vzbid0IHNlZW0gdG8gYmUgdGhlIGNhc2UuCitjbGFzcyBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQg
eworcHVibGljOgorICAgIGVudW0gVG91Y2hQb2ludFN0YXRlIHsKKyAgICAgICAgVG91Y2hSZWxl
YXNlZCwKKyAgICAgICAgVG91Y2hQcmVzc2VkLAorICAgICAgICBUb3VjaE1vdmVkLAorICAgICAg
ICBUb3VjaFN0YXRpb25hcnksCisgICAgICAgIFRvdWNoQ2FuY2VsbGVkCisgICAgfTsKKworICAg
IGVudW0gY2xhc3MgVG91Y2hUeXBlIHsKKyAgICAgICAgRGlyZWN0LAorICAgICAgICBTdHlsdXMK
KyAgICB9OworCisgICAgV2ViUGxhdGZvcm1Ub3VjaFBvaW50KCkgPSBkZWZhdWx0OworICAgIFdl
YlBsYXRmb3JtVG91Y2hQb2ludCh1bnNpZ25lZCBpZGVudGlmaWVyLCBXZWJDb3JlOjpJbnRQb2lu
dCBsb2NhdGlvbiwgVG91Y2hQb2ludFN0YXRlIHBoYXNlKQorICAgICAgICA6IG1faWRlbnRpZmll
cihpZGVudGlmaWVyKQorICAgICAgICAsIG1fbG9jYXRpb24obG9jYXRpb24pCisgICAgICAgICwg
bV9waGFzZShwaGFzZSkKKyAgICB7CisgICAgfQorCisgICAgdW5zaWduZWQgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIFdlYkNvcmU6OkludFBvaW50IGxv
Y2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhdGlvbjsgfQorICAgIFRvdWNoUG9pbnRTdGF0
ZSBwaGFzZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRvdWNoUG9pbnRTdGF0ZT4obV9w
aGFzZSk7IH0KKyAgICBUb3VjaFBvaW50U3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBwaGFz
ZSgpOyB9CisKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKKyAgICB2b2lkIHNldFJhZGl1
c1goZG91YmxlIHJhZGl1c1gpIHsgbV9yYWRpdXNYID0gcmFkaXVzWDsgfQorICAgIGRvdWJsZSBy
YWRpdXNYKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXNYOyB9CisgICAgdm9pZCBzZXRSYWRpdXNZ
KGRvdWJsZSByYWRpdXNZKSB7IG1fcmFkaXVzWSA9IHJhZGl1c1k7IH0KKyAgICBkb3VibGUgcmFk
aXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaXVzWTsgfQorICAgIHZvaWQgc2V0Um90YXRpb25B
bmdsZShkb3VibGUgcm90YXRpb25BbmdsZSkgeyBtX3JvdGF0aW9uQW5nbGUgPSByb3RhdGlvbkFu
Z2xlOyB9CisgICAgZG91YmxlIHJvdGF0aW9uQW5nbGUoKSBjb25zdCB7IHJldHVybiBtX3JvdGF0
aW9uQW5nbGU7IH0KKyAgICB2b2lkIHNldEZvcmNlKGRvdWJsZSBmb3JjZSkgeyBtX2ZvcmNlID0g
Zm9yY2U7IH0KKyAgICBkb3VibGUgZm9yY2UoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlOyB9Cisg
ICAgdm9pZCBzZXRBbHRpdHVkZUFuZ2xlKGRvdWJsZSBhbHRpdHVkZUFuZ2xlKSB7IG1fYWx0aXR1
ZGVBbmdsZSA9IGFsdGl0dWRlQW5nbGU7IH0KKyAgICBkb3VibGUgYWx0aXR1ZGVBbmdsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fYWx0aXR1ZGVBbmdsZTsgfQorICAgIHZvaWQgc2V0QXppbXV0aEFuZ2xl
KGRvdWJsZSBhemltdXRoQW5nbGUpIHsgbV9hemltdXRoQW5nbGUgPSBhemltdXRoQW5nbGU7IH0K
KyAgICBkb3VibGUgYXppbXV0aEFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9hemltdXRoQW5nbGU7
IH0KKyAgICB2b2lkIHNldFRvdWNoVHlwZShUb3VjaFR5cGUgdG91Y2hUeXBlKSB7IG1fdG91Y2hU
eXBlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRvdWNoVHlwZSk7IH0KKyAgICBUb3VjaFR5cGUg
dG91Y2hUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VG91Y2hUeXBlPihtX3RvdWNo
VHlwZSk7IH0KKyNlbmRpZgorCisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7
CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gZGVjb2RlKElQQzo6
RGVjb2RlciYpOworCitwcml2YXRlOgorICAgIHVuc2lnbmVkIG1faWRlbnRpZmllciB7IDAgfTsK
KyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2xvY2F0aW9uOworICAgIHVpbnQzMl90IG1fcGhhc2Ug
eyBUb3VjaFJlbGVhc2VkIH07CisjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCisgICAgZG91
YmxlIG1fcmFkaXVzWCB7IDAgfTsKKyAgICBkb3VibGUgbV9yYWRpdXNZIHsgMCB9OworICAgIGRv
dWJsZSBtX3JvdGF0aW9uQW5nbGUgeyAwIH07CisgICAgZG91YmxlIG1fZm9yY2UgeyAwIH07Cisg
ICAgZG91YmxlIG1fYWx0aXR1ZGVBbmdsZSB7IDAgfTsKKyAgICBkb3VibGUgbV9hemltdXRoQW5n
bGUgeyAwIH07CisgICAgdWludDMyX3QgbV90b3VjaFR5cGUgeyBzdGF0aWNfY2FzdDx1aW50MzJf
dD4oVG91Y2hUeXBlOjpEaXJlY3QpIH07CisjZW5kaWYKK307CisKK2NsYXNzIFdlYlRvdWNoRXZl
bnQgOiBwdWJsaWMgV2ViRXZlbnQgeworcHVibGljOgorICAgIFdlYlRvdWNoRXZlbnQoKSA9IGRl
ZmF1bHQ7CisgICAgV2ViVG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBPcHRpb25TZXQ8
TW9kaWZpZXI+IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBjb25zdCBWZWN0b3I8V2Vi
UGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0
aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlzR2VzdHVyZSwgZmxvYXQgZ2VzdHVyZVNj
YWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCisgICAgICAgIDogV2ViRXZlbnQodHlwZSwgbW9k
aWZpZXJzLCB0aW1lc3RhbXApCisgICAgICAgICwgbV90b3VjaFBvaW50cyh0b3VjaFBvaW50cykK
KyAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQorICAgICAgICAsIG1fY2FuUHJldmVudE5h
dGl2ZUdlc3R1cmVzKHRydWUpCisgICAgICAgICwgbV9pc1BvdGVudGlhbFRhcChpc1BvdGVudGlh
bFRhcCkKKyAgICAgICAgLCBtX2lzR2VzdHVyZShpc0dlc3R1cmUpCisgICAgICAgICwgbV9nZXN0
dXJlU2NhbGUoZ2VzdHVyZVNjYWxlKQorICAgICAgICAsIG1fZ2VzdHVyZVJvdGF0aW9uKGdlc3R1
cmVSb3RhdGlvbikKKyAgICB7CisgICAgICAgIEFTU0VSVCh0eXBlID09IFRvdWNoU3RhcnQgfHwg
dHlwZSA9PSBUb3VjaE1vdmUgfHwgdHlwZSA9PSBUb3VjaEVuZCB8fCB0eXBlID09IFRvdWNoQ2Fu
Y2VsKTsKKyAgICB9CisKKyAgICBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYg
dG91Y2hQb2ludHMoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CisKKyAgICBXZWJD
b3JlOjpJbnRQb2ludCBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0KKwor
ICAgIGJvb2wgaXNQb3RlbnRpYWxUYXAoKSBjb25zdCB7IHJldHVybiBtX2lzUG90ZW50aWFsVGFw
OyB9CisKKyAgICBib29sIGlzR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNHZXN0dXJlOyB9
CisgICAgZmxvYXQgZ2VzdHVyZVNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9nZXN0dXJlU2NhbGU7
IH0KKyAgICBmbG9hdCBnZXN0dXJlUm90YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2dlc3R1cmVS
b3RhdGlvbjsgfQorCisgICAgYm9vbCBjYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMoKSBjb25zdCB7
IHJldHVybiBtX2NhblByZXZlbnROYXRpdmVHZXN0dXJlczsgfQorICAgIHZvaWQgc2V0Q2FuUHJl
dmVudE5hdGl2ZUdlc3R1cmVzKGJvb2wgY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzKSB7IG1fY2Fu
UHJldmVudE5hdGl2ZUdlc3R1cmVzID0gY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzOyB9CisKKyAg
ICBib29sIGFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSBjb25zdDsKKworICAgIHZvaWQgZW5j
b2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViVG91Y2hFdmVudCYpOworICAgIAorcHJpdmF0
ZToKKyAgICBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiBtX3RvdWNoUG9pbnRzOworICAg
IAorICAgIFdlYkNvcmU6OkludFBvaW50IG1fcG9zaXRpb247CisgICAgYm9vbCBtX2NhblByZXZl
bnROYXRpdmVHZXN0dXJlcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzUG90ZW50aWFsVGFwIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1faXNHZXN0dXJlIHsgZmFsc2UgfTsKKyAgICBmbG9hdCBtX2dl
c3R1cmVTY2FsZSB7IDAgfTsKKyAgICBmbG9hdCBtX2dlc3R1cmVSb3RhdGlvbiB7IDAgfTsKK307
CisKKyNlbHNlIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQorCitjbGFzcyBXZWJQbGF0Zm9ybVRv
dWNoUG9pbnQgeworcHVibGljOgorICAgIGVudW0gVG91Y2hQb2ludFN0YXRlIHsKKyAgICAgICAg
VG91Y2hSZWxlYXNlZCwKKyAgICAgICAgVG91Y2hQcmVzc2VkLAorICAgICAgICBUb3VjaE1vdmVk
LAorICAgICAgICBUb3VjaFN0YXRpb25hcnksCisgICAgICAgIFRvdWNoQ2FuY2VsbGVkCisgICAg
fTsKKworICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCgpCisgICAgICAgIDogbV9yb3RhdGlvbkFu
Z2xlKDAuMCksIG1fZm9yY2UoMC4wKSB7IH0KKworICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCh1
aW50MzJfdCBpZCwgVG91Y2hQb2ludFN0YXRlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Ny
ZWVuUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbik7CisKKyAgICBX
ZWJQbGF0Zm9ybVRvdWNoUG9pbnQodWludDMyX3QgaWQsIFRvdWNoUG9pbnRTdGF0ZSwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIHNjcmVlblBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHJhZGl1cywgZmxvYXQgcm90YXRp
b25BbmdsZSA9IDAuMCwgZmxvYXQgZm9yY2UgPSAwLjApOworICAgIAorICAgIHVpbnQzMl90IGlk
KCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRvdWNoUG9pbnRTdGF0ZT4obV9zdGF0ZSk7IH0KKwor
ICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JlZW5Qb3NpdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fc2NyZWVuUG9zaXRpb247IH0KKyAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9z
aXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CisgICAgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgcmFkaXVzKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXM7IH0KKyAgICBmbG9hdCBy
b3RhdGlvbkFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9yb3RhdGlvbkFuZ2xlOyB9CisgICAgZmxv
YXQgZm9yY2UoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlOyB9CisKKyAgICB2b2lkIHNldFN0YXRl
KFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSkgeyBtX3N0YXRlID0gc3RhdGU7IH0KKworICAgIHZvaWQg
ZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJQbGF0
Zm9ybVRvdWNoUG9pbnQ+IGRlY29kZShJUEM6OkRlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICB1
aW50MzJfdCBtX2lkOworICAgIHVpbnQzMl90IG1fc3RhdGU7CisgICAgV2ViQ29yZTo6SW50UG9p
bnQgbV9zY3JlZW5Qb3NpdGlvbjsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3Bvc2l0aW9uOwor
ICAgIFdlYkNvcmU6OkludFNpemUgbV9yYWRpdXM7CisgICAgZmxvYXQgbV9yb3RhdGlvbkFuZ2xl
OworICAgIGZsb2F0IG1fZm9yY2U7Cit9OworCitjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVibGlj
IFdlYkV2ZW50IHsKK3B1YmxpYzoKKyAgICBXZWJUb3VjaEV2ZW50KCkgeyB9CisgICAgV2ViVG91
Y2hFdmVudChUeXBlLCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmLCBPcHRpb25TZXQ8
TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOworCisgICAgY29uc3QgVmVjdG9yPFdlYlBs
YXRmb3JtVG91Y2hQb2ludD4mIHRvdWNoUG9pbnRzKCkgY29uc3QgeyByZXR1cm4gbV90b3VjaFBv
aW50czsgfQorCisgICAgYm9vbCBhbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkgY29uc3Q7CisK
KyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYlRvdWNoRXZlbnQmKTsK
KworcHJpdmF0ZToKKyAgICBzdGF0aWMgYm9vbCBpc1RvdWNoRXZlbnRUeXBlKFR5cGUpOworCisg
ICAgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gbV90b3VjaFBvaW50czsKK307CisKKyNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQorI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVO
VFMpCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2
ZW50LmNwcAppbmRleCAxMTYwZTc2MWUzYmVkNDIzZWRlZTc3ZWZhOGQ0ZWEwZTY1YmNkOTE3Li45
ZDcyNWVkYjY3MjE0Y2RjMWM4NTY0ZmJmYTFjYzE0OGIyMjlkNzdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJXaGVlbEV2ZW50LmNwcApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZl
bnQuaCIKIAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCkBAIC0zOSwxMSAr
MzksNiBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50
UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludAogICAgICwgbV9kZWx0YShkZWx0YSkKICAg
ICAsIG1fd2hlZWxUaWNrcyh3aGVlbFRpY2tzKQogICAgICwgbV9ncmFudWxhcml0eShncmFudWxh
cml0eSkKLSAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQotI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgICwgbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKGZhbHNlKQot
ICAgICwgbV9zY3JvbGxDb3VudCgwKQotI2VuZGlmCiB7CiAgICAgQVNTRVJUKGlzV2hlZWxFdmVu
dFR5cGUodHlwZSkpOwogfQpAQCAtNTYsOSArNTEsOSBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVl
bEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2lu
dAogICAgICwgbV9kZWx0YShkZWx0YSkKICAgICAsIG1fd2hlZWxUaWNrcyh3aGVlbFRpY2tzKQog
ICAgICwgbV9ncmFudWxhcml0eShncmFudWxhcml0eSkKLSAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0
ZWRGcm9tRGV2aWNlKGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkKICAgICAsIG1fcGhhc2Uo
cGhhc2UpCiAgICAgLCBtX21vbWVudHVtUGhhc2UobW9tZW50dW1QaGFzZSkKKyAgICAsIG1fZGly
ZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkKICAg
ICAsIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyhoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFz
KQogICAgICwgbV9zY3JvbGxDb3VudChzY3JvbGxDb3VudCkKICAgICAsIG1fdW5hY2NlbGVyYXRl
ZFNjcm9sbGluZ0RlbHRhKHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSkKQEAgLTczLDcgKzY4
LDYgQEAgV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBv
aW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKICAgICAsIG1fZGVsdGEoZGVsdGEpCiAgICAg
LCBtX3doZWVsVGlja3Mod2hlZWxUaWNrcykKICAgICAsIG1fZ3JhbnVsYXJpdHkoZ3JhbnVsYXJp
dHkpCi0gICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZShmYWxzZSkKICAgICAsIG1f
cGhhc2UocGhhc2UpCiAgICAgLCBtX21vbWVudHVtUGhhc2UobW9tZW50dW1QaGFzZSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDk2NzA2NDAzZmNjNzA5
NzY0MzAyZmZmMTQ1OTAxZmI0MWNjYzFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViV2hlZWxFdmVudC5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYldoZWVsRXZlbnQgOiBwdWJsaWMg
V2ViRXZlbnQgeworcHVibGljOgorICAgIGVudW0gR3JhbnVsYXJpdHkgeworICAgICAgICBTY3Jv
bGxCeVBhZ2VXaGVlbEV2ZW50LAorICAgICAgICBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudAorICAg
IH07CisKKyAgICBlbnVtIFBoYXNlIHsKKyAgICAgICAgUGhhc2VOb25lICAgICAgICA9IDAsCisg
ICAgICAgIFBoYXNlQmVnYW4gICAgICAgPSAxIDw8IDAsCisgICAgICAgIFBoYXNlU3RhdGlvbmFy
eSAgPSAxIDw8IDEsCisgICAgICAgIFBoYXNlQ2hhbmdlZCAgICAgPSAxIDw8IDIsCisgICAgICAg
IFBoYXNlRW5kZWQgICAgICAgPSAxIDw8IDMsCisgICAgICAgIFBoYXNlQ2FuY2VsbGVkICAgPSAx
IDw8IDQsCisgICAgICAgIFBoYXNlTWF5QmVnaW4gICAgPSAxIDw8IDUsCisgICAgfTsKKworICAg
IFdlYldoZWVsRXZlbnQoKSA9IGRlZmF1bHQ7CisKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBPcHRpb25TZXQ8TW9k
aWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdl
YldoZWVsRXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVs
YXJpdHksIGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSwgUGhhc2UgbW9t
ZW50dW1QaGFzZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3Jv
bGxDb3VudCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5n
RGVsdGEsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZWxpZiBQ
TEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCisgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBn
bG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwg
R3JhbnVsYXJpdHksIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Cisj
ZW5kaWYKKworICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9wb3NpdGlvbjsgfQorICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxQb3NpdGlvbjsgfQorICAgIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSBkZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsdGE7IH0KKyAgICBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxUaWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fd2hl
ZWxUaWNrczsgfQorICAgIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8R3JhbnVsYXJpdHk+KG1fZ3JhbnVsYXJpdHkpOyB9CisgICAgYm9vbCBkaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvbkludmVy
dGVkRnJvbURldmljZTsgfQorICAgIFBoYXNlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8UGhhc2U+KG1fcGhhc2UpOyB9CisgICAgUGhhc2UgbW9tZW50dW1QaGFzZSgpIGNvbnN0
IHsgcmV0dXJuIHN0YXRpY19jYXN0PFBoYXNlPihtX21vbWVudHVtUGhhc2UpOyB9CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOyB9CisgICAgdWludDMyX3Qgc2Ny
b2xsQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbENvdW50OyB9CisgICAgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEoKSBjb25zdCB7IHJl
dHVybiBtX3VuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YTsgfQorI2VuZGlmCisKKyAgICB2b2lk
IGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVU
VVJOIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYldoZWVsRXZlbnQmKTsKKworcHJpdmF0
ZToKKyAgICBzdGF0aWMgYm9vbCBpc1doZWVsRXZlbnRUeXBlKFR5cGUpOworCisgICAgV2ViQ29y
ZTo6SW50UG9pbnQgbV9wb3NpdGlvbjsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2dsb2JhbFBv
c2l0aW9uOworICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX2RlbHRhOworICAgIFdlYkNvcmU6OkZs
b2F0U2l6ZSBtX3doZWVsVGlja3M7CisgICAgdWludDMyX3QgbV9ncmFudWxhcml0eSB7IFNjcm9s
bEJ5UGFnZVdoZWVsRXZlbnQgfTsKKyAgICB1aW50MzJfdCBtX3BoYXNlIHsgUGhhc2U6OlBoYXNl
Tm9uZSB9OworICAgIHVpbnQzMl90IG1fbW9tZW50dW1QaGFzZSB7IFBoYXNlOjpQaGFzZU5vbmUg
fTsKKyAgICBib29sIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlIHsgZmFsc2UgfTsKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBib29sIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyB7
IGZhbHNlIH07CisgICAgdWludDMyX3QgbV9zY3JvbGxDb3VudCB7IDAgfTsKKyAgICBXZWJDb3Jl
OjpGbG9hdFNpemUgbV91bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGE7CisjZW5kaWYKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Z3RrL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50
RmFjdG9yeS5oCmluZGV4IDM1OGRjNWRkMzhiOGVhZjA5OTI3ODc5MDdmM2JjNzRmMTRlMDU1OGYu
LjE5Zjg4NmFkNTZjOTc2NmQ3ZWJkOTk4OWM1Y2FkYTk2YTA5ZTYwZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmgKQEAgLTI2LDcgKzI2LDEzIEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLZXlib2Fy
ZEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIldlYldoZWVs
RXZlbnQuaCIKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisjaW5jbHVkZSAiV2ViVG91Y2hF
dmVudC5oIgorI2VuZGlmCiAKICNpZiBVU0UoR1RLNCkKIHR5cGVkZWYgc3RydWN0IF9HZGtFdmVu
dCBHZGtFdmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NF
dmVudEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3Rv
cnkuaAppbmRleCAxMzhmZWFhMjUxOTJjMWE3MzhkNGJiOTQwMzljZTNhODZmYTZlMmNkLi4xZTc4
OGU2MGE3NmM1NWVlNDk1OTUxNWVlZDFhZjJiOGE0MWUyODdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvaW9zL1dlYklPU0V2ZW50RmFjdG9yeS5oCkBAIC0yNyw3ICsyNyw4IEBACiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogCi0jaW1wb3J0ICJXZWJFdmVudC5oIgorI2ltcG9ydCAi
V2ViS2V5Ym9hcmRFdmVudC5oIgorI2ltcG9ydCAiV2ViTW91c2VFdmVudC5oIgogI2ltcG9ydCA8
VUlLaXQvVUlLaXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViRXZlbnQuaD4KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYlBsYXRmb3JtVG91Y2hQb2ludElPUy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViUGxhdGZvcm1Ub3VjaFBvaW50SU9TLmNwcApp
bmRleCA3YjVlYjM3Mjg4MGQ4NjYyNTQ0MzM0Y2Q0Njk3Mjc2ZDU0M2RlNDViLi4yYTlkYjRmOGFj
YWZlOWQ2NGQ1ZDRlYmQ5OTEzYWExNjFlYTBmNGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9pb3MvV2ViUGxhdGZvcm1Ub3VjaFBvaW50SU9TLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9pb3MvV2ViUGxhdGZvcm1Ub3VjaFBvaW50SU9TLmNwcApAQCAtMjQsNyArMjQs
NyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgor
I2luY2x1ZGUgIldlYlRvdWNoRXZlbnQuaCIKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJUb3VjaEV2ZW50SU9TLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJUb3VjaEV2ZW50SU9TLmNwcAppbmRleCA0
NWE1NmViM2IwZmRhMTNjM2I3OGQ1NzU5NGEwMDkyZTRlMTg2NmY2Li5lNDBhNmUxNzJiZmQyYjc1
MDc2ZmQ0MDUzZGE2NDNlYmFiOWViODFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9pb3MvV2ViVG91Y2hFdmVudElPUy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L1dlYlRvdWNoRXZlbnRJT1MuY3BwCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVu
dC5oIgogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvbGlid3BlL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbGlid3BlL1dlYkV2ZW50RmFjdG9yeS5oCmluZGV4IDRiNzg3OTRiM2Q0NWJmMzhmNzMwNDQ4
YThjMWVlODNhNWE1MWJhYTEuLmVkZTFkM2ViMTMxZTkxYTJkOTQ4N2UzMTgwMTQzMGMwNDJlMzBl
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2xpYndwZS9XZWJFdmVudEZhY3Rv
cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saWJ3cGUvV2ViRXZlbnRGYWN0b3J5LmgK
QEAgLTI1LDcgKzI1LDEzIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQu
aCIKKyNpbmNsdWRlICJXZWJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViTW91c2VFdmVu
dC5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZlbnQuaCIKKworI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgorI2VuZGlmCiAKIHN0cnVjdCB3cGVfaW5w
dXRfYXhpc19ldmVudDsKIHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1t
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5tbQpp
bmRleCA5MjQxMDc2ODk4MmIxYjA0NjkxYmVjMmRlMWY2YzMxNWFlNjc0MDEzLi5jMWQyMWQ4MWI0
MjQyNDJiMzRiZjM4ZWZhYWFlNmU1Y2JjZGJjMWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0KQEAgLTI4LDcgKzI4LDYg
QEAKIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAKLSNpbXBvcnQgIldlYkV2ZW50
LmgiCiAjaW1wb3J0ICJXZWJHZXN0dXJlRXZlbnQuaCIKICNpbXBvcnQgPFdlYkNvcmUvSW50UG9p
bnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaAppbmRleCA5Mjk3MmZjYThjNGVj
NTYzMTE5ZWYzZGE5OTRhZTU2NWJlZmNjNDkxLi5lNjQ1NGFiYjU1MTJhZDU1ZmFjNGE1OTY3MDIx
ZmIyOTg5ZDliN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZl
bnRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9y
eS5oCkBAIC0yNSw3ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW1wb3J0ICJXZWJFdmVu
dC5oIgorI2ltcG9ydCAiV2ViS2V5Ym9hcmRFdmVudC5oIgorI2ltcG9ydCAiV2ViTW91c2VFdmVu
dC5oIgorI2ltcG9ydCAiV2ViV2hlZWxFdmVudC5oIgogCiAjaWYgVVNFKEFQUEtJVCkKICNpZiBk
ZWZpbmVkKF9fT0JKQ19fKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dl
Ykdlc3R1cmVFdmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVu
dC5oCmluZGV4IGUyZDE5MjU0NTMyOGQwNTUwYTBiOGI2NmMzYjBiOTg1ODJmOGVhNjAuLjU0YmU0
MWNmZTAwMzg3MGJlN2NmMTUwMTIxNjc5NDRmMjhiMWE5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYkdlc3R1cmVFdmVudF9o
Ci0jZGVmaW5lIFdlYkdlc3R1cmVFdmVudF9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShN
QUNfR0VTVFVSRV9FVkVOVFMpCiAKQEAgLTczLDUgKzcyLDMgQEAgcHJpdmF0ZToKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKLQot
I2VuZGlmIC8vIFdlYkdlc3R1cmVFdmVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93aW4vV2Vi
RXZlbnRGYWN0b3J5LmgKaW5kZXggOWUyNmMwZTdhNjQzOTRlOWRkOTVjNDFmOTcyZGZkMGRiYjA0
M2ExYi4uOWUwMzE5MTZkNjVkZDFhM2Y3NDA2MjQ3OGIzZWFhZDZjNWUwNjA2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvd2luL1dlYkV2ZW50RmFjdG9yeS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL3dpbi9XZWJFdmVudEZhY3RvcnkuaApAQCAtMjYsNyArMjYsMTQgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYktl
eWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiV2Vi
V2hlZWxFdmVudC5oIgorCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNpbmNsdWRlICJXZWJU
b3VjaEV2ZW50LmgiCisjZW5kaWYKKwogI2luY2x1ZGUgPHdpbmRvd3MuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2
aWdhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRp
b25DbGllbnQuaAppbmRleCAxNTdlZGE4OGRjZTgxZTc5NzQ4M2Y3YjcxZDY5Y2I1OWZmNDdkNTJj
Li4wNjFlMTg2ZGJlODg2YTA3NDIyYmY4M2I3YWZjZmNiYzZhYzllNmFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKQEAgLTMzLDcg
KzMzLDYgQEAKICNpbmNsdWRlICJQbHVnaW5Nb2R1bGVJbmZvLmgiCiAjaW5jbHVkZSAiUHJvY2Vz
c1Rlcm1pbmF0aW9uUmVhc29uLmgiCiAjaW5jbHVkZSAiU2FtZURvY3VtZW50TmF2aWdhdGlvblR5
cGUuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZyYW1lUG9saWN5TGlz
dGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElQb2xpY3lDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElQb2xpY3lDbGllbnQuaAppbmRleCA2YWU4ZTc1MjA1ZmZmYzg2NTJmNGY5YjgzYmIz
ZGUzMGVlNmNmYWYyLi43ZDJlOTM0NDYyY2YzYmRjMTlhMTliN2RkMzFhMGMyYTljZWJlZDRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUG9saWN5Q2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBvbGljeUNsaWVudC5oCkBAIC0y
NSw3ICsyNSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNp
bmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UHJpdmF0ZS5oCmluZGV4IGY5NDE0
YjkxZjNlYjlkNTg2YjlhMDNmNWI1YTk3OWZmMzczZTgxNTUuLmZiOGQxYzUxOGU3Nzk4NGEzNTg4
NWY1OWVjOWU0YzlmYmQwMjFlNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRQcml2YXRlLmgKQEAgLTI1LDggKzI1LDggQEAKIAogI3ByYWdtYSBvbmNl
CiAKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYktpdE5hdmlnYXRpb25BY3Rp
b24uaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUxvYWRlclR5cGVzLmg+CiAKIHVuc2lnbmVkIHRvUGxhdGZvcm1Nb2RpZmllcnMoT3B0aW9uU2V0
PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmgKaW5kZXggMmQ4
N2Y5NWMyNGVjNWEzOWI3ZjEwZGU2YWE1NWVkZTgyNmExNjg4YS4uNGQ1N2JhN2M4MDEyNmNmMTU4
NzM0ZGRmZDdhM2U4MzYwMjYwZjYxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaApAQCAtMjUsNyArMjUs
NyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAi
V2ViV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgPHdwZS93cGUuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVs
YXRlZElucHV0RGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlv
bi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaAppbmRleCA1MWQ1NDAxZGUwMDQ4YzgzZGM5Yjkx
YWE3YTE5YzA4NTZiYTFhMjJmLi43ZDZmMjIwM2EzYmQzNzEyN2YzYjQ3ZTk0OGNmNjAwYjlhZDY4
OTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVs
YXRlZElucHV0RGlzcGF0Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9t
YXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgKQEAgLTI3LDggKzI3LDggQEAKIAogI2lm
IEVOQUJMRShXRUJEUklWRVJfQUNUSU9OU19BUEkpCiAKLSNpbmNsdWRlICJXZWJFdmVudC5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9J
bnRQb2ludC5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3NjIxZjg3NGMwMTNhMjQ4NWVmNmUwYWMz
Nzk1NmRmODhmZTljOWVhLi5iZTQ5YjEyODBkMDdlODgwN2FhYjViMTZhMGE1NmExMmY5OWRkM2Y0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEwNCw3ICsx
MDQsNiBAQAogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51UHJveHkuaCIKICNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJFZGl0Q29tbWFuZFByb3h5LmgiCi0j
aW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJFdmVudENvbnZlcnNpb24uaCIKICNp
bmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5LmgiCkBAIC0xMTIsNiArMTExLDcgQEAKICNpbmNsdWRlICJXZWJJ
bWFnZS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViSW5z
cGVjdG9yVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiV2ViS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1
ZGUgIldlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCIKICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9uU3Rh
dGUuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFnZXIuaAppbmRleCA1MWQw
MDFiNWY3OTNkZTU4ODQxYTNkODQ5M2Y3ZmEwZjk3M2FhYzhlLi45YmMzM2JiYjlhNTMyNWVlZTE5
MTgzYjM5M2NiMDkwMjgyYWI5MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9ndGsvUG9pbnRlckxvY2tNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL1BvaW50ZXJMb2NrTWFuYWdlci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25j
ZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlR2Vz
dHVyZVJlY29nbml6ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZUdl
c3R1cmVSZWNvZ25pemVyLm1tCmluZGV4IDZiNDUzNmE3MzZlMGJmM2I3YjQwYjIyNzFmYzFjNWRh
MzA1OWM2YmEuLmMzOWJiZWQxMGI3ZWQ1NDZlNGQ4NzAwYjBmOGNhMTIxM2Y5MjJhMmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlR2VzdHVyZVJlY29nbml6
ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VHZXN0dXJlUmVj
b2duaXplci5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBv
cnQgPHBhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaD4KICNpbXBvcnQgPHd0Zi9Db21w
aWxlci5oPgorI2ltcG9ydCA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbXBvcnQgPHd0Zi9PcHRp
b25hbC5oPgogCiBzdGF0aWMgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiB3
ZWJFdmVudE1vZGlmaWVyc0ZvclVJS2V5TW9kaWZpZXJGbGFncyhVSUtleU1vZGlmaWVyRmxhZ3Mg
ZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA1ZGUwODZhMDQ0MDVjMDQzMmI0NDE2YjQxODExZDNjNDVkMWI1YTNiLi5hNDdiMDEy
ZDJjNDhlZDhjZjQwMjViYzlkNTY0NmZmMDY3OGVlYzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIyMDEsNiArMjIwMSwxMCBAQAog
CQkwRjE4OUNBQjI0NzQ5RjJGMDBFNThEODEgLyogRGlzcGxheUxpbmtPYnNlcnZlcklELmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlMaW5rT2JzZXJ2ZXJJRC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjNDNzI1NzE5NkY1RjUwMDBBRUREMEMgLyog
V0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjNDNzI1OTE5NkY1RjY4MDBBRUREMEMgLyogV0tJbnNwZWN0b3JIaWdo
bGlnaHRWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSW5zcGVjdG9y
SGlnaGxpZ2h0Vmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQwMDBGRDI1
MjdENjlEMDBFOTFEQTcgLyogV2ViV2hlZWxFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJXaGVl
bEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNDAwMEZFMjUyN0Q2QzMw
MEU5MURBNyAvKiBXZWJNb3VzZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk1vdXNlRXZlbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0MDAwRkYyNTI3RDZGNzAwRTkxREE3
IC8qIFdlYktleWJvYXJkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2V5Ym9hcmRFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQwMDEwMDI1MjdENzNDMDBFOTFEQTcg
LyogV2ViVG91Y2hFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJUb3VjaEV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDVBMzJGMjM5RDg5QTAwMDI5NEFCRiAvKiBXS1dl
YlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjQ1QTMzMDIzOUQ4OUExMDAyOTRBQkYgLyogV0tXZWJWaWV3VGVzdGluZ0lP
Uy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1Rl
c3RpbmdJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDVBMzMzMjM5RDg5
QUYwMDI5NEFCRiAvKiBXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ01hYy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ01hYy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjExNSwxMSArNjExOSwxMyBAQAogCQkJCUJD
Q0Y2QUJBMTJDOTFFRjkwMDhGOUMzNSAvKiBXZWJJbWFnZS5jcHAgKi8sCiAJCQkJQkNDRjZBQkIx
MkM5MUVGOTAwOEY5QzM1IC8qIFdlYkltYWdlLmggKi8sCiAJCQkJQzAzMzdERDIxMjdBMkEwRTAw
OEZGNEY0IC8qIFdlYktleWJvYXJkRXZlbnQuY3BwICovLAorCQkJCTBGNDAwMEZGMjUyN0Q2Rjcw
MEU5MURBNyAvKiBXZWJLZXlib2FyZEV2ZW50LmggKi8sCiAJCQkJQkM5QkE1MDIxNjk3QzQ1MzAw
RTQ0NjE2IC8qIFdlYktpdDJJbml0aWFsaXplLmNwcCAqLywKIAkJCQlCQzlCQTUwMzE2OTdDNDUz
MDBFNDQ2MTYgLyogV2ViS2l0MkluaXRpYWxpemUuaCAqLywKIAkJCQk5MDU2MjBFODEyQkMyNDhC
MDAwNzk5QjYgLyogV2ViTWVtb3J5U2FtcGxlci5jcHAgKi8sCiAJCQkJOTA1NjIwRTkxMkJDMjQ4
QjAwMDc5OUI2IC8qIFdlYk1lbW9yeVNhbXBsZXIuaCAqLywKIAkJCQlDMDMzN0RBRjEyN0EyOEQw
MDA4RkY0RjQgLyogV2ViTW91c2VFdmVudC5jcHAgKi8sCisJCQkJMEY0MDAwRkUyNTI3RDZDMzAw
RTkxREE3IC8qIFdlYk1vdXNlRXZlbnQuaCAqLywKIAkJCQlCQ0Y2OUY5ODExNzZDRUQ2MDA0NzFB
NTIgLyogV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oICovLAogCQkJCUMwNkM2MDkzMTI0QzE0NDMw
MDAxNjgyRiAvKiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLywKIAkJCQlDMDZDNjA5
NDEyNEMxNDQzMDAwMTY4MkYgLyogV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oICovLApAQCAt
NjE0OSwxMCArNjE1NSwxMiBAQAogCQkJCTgzNjAzNDlEMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJT
UUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwICovLAogCQkJCTgzNjAzNDlFMUFDQjM0RDYwMDYyNjU0
OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCAqLywKIAkJCQlDMDMzN0RENzEyN0E1MUI2
MDA4RkY0RjQgLyogV2ViVG91Y2hFdmVudC5jcHAgKi8sCisJCQkJMEY0MDAxMDAyNTI3RDczQzAw
RTkxREE3IC8qIFdlYlRvdWNoRXZlbnQuaCAqLywKIAkJCQk3QzA2NUYyOTFDOENEOTVGMDBDMkQ5
NTAgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmNwcCAqLywKIAkJCQk3QzA2
NUYyQTFDOENEOTVGMDBDMkQ5NTAgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVz
LmggKi8sCiAJCQkJNDk2MEEzQkMyM0M1Mjg2NDAwOTYxODQyIC8qIFdlYlZpZXdDYXRlZ29yeS5o
ICovLAogCQkJCUMwMzM3REQwMTI3QTI5ODAwMDhGRjRGNCAvKiBXZWJXaGVlbEV2ZW50LmNwcCAq
LywKKwkJCQkwRjQwMDBGRDI1MjdENjlEMDBFOTFEQTcgLyogV2ViV2hlZWxFdmVudC5oICovLAog
CQkJKTsKIAkJCXBhdGggPSBTaGFyZWQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oCmluZGV4IDhlMmQ2YjFh
MGU2NmY0MzE1Nzk0YWVmYTdmZGQ2NDdhNDBjZDA3ZmMuLmVmYmEwMTk3YzBiNGE0NWMzYTJmMjY5
NzM2NmJkODM0NGM4NzhiMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0
aW9uQWN0aW9uLmgKQEAgLTIzLDIwICsyMywxOSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9u
X2gKLSNkZWZpbmUgSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uX2gKKyNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVIaXRU
ZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgiCi0jaW5j
bHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIEZvcm1T
dGF0ZTsKLSAgICBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOworY2xhc3MgRm9ybVN0YXRlOworY2xh
c3MgTmF2aWdhdGlvbkFjdGlvbjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC04MCw1ICs3
OSwzIEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8v
IEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQ
bHVnaW5NYWMubW0KaW5kZXggNTBhMDAzNGRkNjUwOTQwODk5NTA4MDQ4NTA4OWFiNzcwM2MwMWYy
OC4uNDNiMzQ5OGVjNzY5NjM4Yjc5MTEzN2EwN2EzMWVkZWM5ZjVkOWY2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1
Z2luTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQpAQCAtMzEsNyArMzEsOSBAQAogI2ltcG9ydCAiTGF5
ZXJUcmVlQ29udGV4dC5oIgogI2ltcG9ydCAiTmV0c2NhcGVCcm93c2VyRnVuY3MuaCIKICNpbXBv
cnQgIlBsdWdpbkNvbnRyb2xsZXIuaCIKLSNpbXBvcnQgIldlYkV2ZW50LmgiCisjaW1wb3J0ICJX
ZWJLZXlib2FyZEV2ZW50LmgiCisjaW1wb3J0ICJXZWJNb3VzZUV2ZW50LmgiCisjaW1wb3J0ICJX
ZWJXaGVlbEV2ZW50LmgiCiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
bW0KaW5kZXggZTM0YTI3ZWY5Y2ZhYTgyYzIzMTI2YzczNDkyN2FiZmZmZDVhY2Q2MC4uZjg3NzA3
MDkxOGZiOTk5MTcyMjAwZTE3MWI1MmZlNWQ0OWRiMWVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC00MSwxMCArNDEsMTEg
QEAKICNpbXBvcnQgIldLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMuaCIKICNpbXBvcnQg
IldLUGFnZUZpbmRNYXRjaGVzQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKLSNpbXBvcnQgIldlYkV2ZW50LmgiCiAjaW1wb3J0ICJXZWJFdmVudENvbnZlcnNpb24u
aCIKICNpbXBvcnQgIldlYkZpbmRPcHRpb25zLmgiCisjaW1wb3J0ICJXZWJLZXlib2FyZEV2ZW50
LmgiCiAjaW1wb3J0ICJXZWJMb2FkZXJTdHJhdGVneS5oIgorI2ltcG9ydCAiV2ViTW91c2VFdmVu
dC5oIgogI2ltcG9ydCAiV2ViUGFnZS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVzc2FnZXMu
aCIKICNpbXBvcnQgIldlYlBhc3RlYm9hcmRQcm94eU1lc3NhZ2VzLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKaW5kZXggMTg0Y2Y2NzVl
M2I0ZjlhOGNmZGZkMjJjZjYyYTY0NTFmMjhmZDM2OC4uNzI3NGU2ZjA3NDdiN2EzNDk3ZTQwYWYy
MTUwZGQyMjhkOWU1ZGQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb3h5LmNwcApAQCAtMzksOSArMzksMTEgQEAKICNpbmNsdWRlICJQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIK
ICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5o
IgorI2luY2x1ZGUgIldlYktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5o
PgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CmluZGV4IGEyM2MyMTc0MWQwOTJjYzA5ODVmNmFjNWRkYWJhYjA2YzY0ZDU0OWEuLmYyNjZjZDNj
ZTA5ZWE5MWVkNGU2NjM4MWI5ZDllOWVjODZkMDUwYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0zMCwxMSArMzAsMTMgQEAKICNp
bmNsdWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1
ZGUgIldlYktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJXZWJMb2FkZXJTdHJhdGVneS5oIgor
I2luY2x1ZGUgIldlYk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5j
bHVkZSAiV2ViV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQml0bWFwSW1hZ2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llSmFy
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERp
c3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmNwcAppbmRleCAxMDhmZDcxZTU5OTIxMmUzMDgzNjQ1ZTQ1N2QzN2U4YWIxNTViZTlk
Li4zZTE4YmM0YjAwOTE5NTBiMDE1NjczZTQyZjI3OTdhODI5OGZkZDg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAg
LTI3LDExICsyNywxMiBAQAogI2luY2x1ZGUgIkV2ZW50RGlzcGF0Y2hlci5oIgogCiAjaW5jbHVk
ZSAiRXZlbnREaXNwYXRjaGVyTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2lu
Y2x1ZGUgIldlYkV2ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNs
dWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNp
bmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViV2hlZWxFdmVudC5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2hlZWxFdmVudFRlc3RN
b25pdG9yLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKaW5kZXggMWM0MTZkODgw
ZWM3MzMzZDA3MjY2ZmFjNTM1ZGMyOTllMDIwZmJjZC4uMzcyZTIwZTdhMWM3NmVjMDFmODYzODEz
M2EyOGQxMTI2NmUwOWUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKQEAgLTUxLDYgKzUxLDEwIEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgV2ViUGFnZTsKIGNsYXNzIFdlYldoZWVsRXZlbnQ7CiAKKyNpZiBFTkFCTEUo
SU9TX1RPVUNIX0VWRU5UUykKK2NsYXNzIFdlYlRvdWNoRXZlbnQ7CisjZW5kaWYKKwogY2xhc3Mg
RXZlbnREaXNwYXRjaGVyIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6V29ya1F1ZXVlTWVzc2Fn
ZVJlY2VpdmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEV2ZW50RGlzcGF0Y2hlcj4gY3Jl
YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdl
QmFubmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmgK
aW5kZXggODQ4MDIxMDlkZmJkMDg3YzA0OTVhNTgzYWE5NWY4N2RlZWQzNDQ1Mi4uOThlMTZkMjFj
OWYwYmI3ZTIzODhkZTk2NDAyMzYzNWZjMTI1MjM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuaApAQCAtMjMsMTEgKzIzLDEwIEBACiAgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBQYWdlQmFubmVyX2gK
LSNkZWZpbmUgUGFnZUJhbm5lcl9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVj
dC5oIgotI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgog
CiAjaWYgUExBVEZPUk0oTUFDKQogT0JKQ19DTEFTUyBDQUxheWVyOwpAQCAtOTYsNSArOTUsMyBA
QCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBQYWdl
QmFubmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggMTI5Y2E2NmNlNGNmNzE0ODgxZjMxNjA2MjhlYWQ5NmQ1YWNkOWZjYy4uMjlhNmZmOTFm
YjA5YjRiZGFlMzIzMzdkZmUzYzE4Nzk2NjBjYWFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTg1LDcgKzg1LDYgQEAKICNpbmNsdWRlICJX
ZWJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIldlYkRyYWdDbGllbnQuaCIKICNpbmNsdWRl
ICJXZWJFZGl0b3JDbGllbnQuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldl
YkV2ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5oIgogI2luY2x1
ZGUgIldlYkZyYW1lLmgiCkBAIC0xMDAsOSArOTksMTEgQEAKICNpbmNsdWRlICJXZWJJbnNwZWN0
b3JNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclVJLmgiCiAjaW5jbHVkZSAiV2Vi
SW5zcGVjdG9yVUlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYktleWJvYXJkRXZlbnQuaCIKICNp
bmNsdWRlICJXZWJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYk1lZGlhS2V5U3RvcmFn
ZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJNZWRpYVN0cmF0ZWd5LmgiCisjaW5jbHVkZSAiV2Vi
TW91c2VFdmVudC5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbkNsaWVudC5oIgogI2luY2x1
ZGUgIldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5oIgpAQCAtMTI3LDExICsxMjgsMTMgQEAKICNpbmNsdWRlICJXZWJTb2Nr
ZXRQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIgogI2lu
Y2x1ZGUgIldlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgorI2luY2x1ZGUgIldlYlRvdWNo
RXZlbnQuaCIKICNpbmNsdWRlICJXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJVbmRvU3RlcC5oIgogI2luY2x1ZGUgIldlYlVzZXJDb250ZW50Q29udHJvbGxlci5oIgog
I2luY2x1ZGUgIldlYlVzZXJNZWRpYUNsaWVudC5oIgogI2luY2x1ZGUgIldlYlZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIldl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJ
Q2FzdC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXgg
ZGRjN2U3NjFlYWYxNDJiNzk5MjM2Y2UxMjJmZmY0MjQ3MWRhMmI3MS4uNzljZjEyMmYyMjE5ZmFk
NzRmYTY5YjM1ZjNlZTU4NWIwODFhNmI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTU5LDYgKzU5LDcgQEAKICNpbXBv
cnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQcmV2aWV3TG9hZGVyQ2xp
ZW50LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCisjaW1wb3J0ICJXZWJUb3VjaEV2ZW50Lmgi
CiAjaW1wb3J0IDxDb3JlVGV4dC9DVEZvbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvQXV0b2ZpbGwu
aD4KICNpbXBvcnQgPFdlYkNvcmUvQXV0b2ZpbGxFbGVtZW50cy5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCAzZDk2MGEy
MjE5MWI3ZTU1OTJhNWE2MTQ2Y2NlMzZlMGZlOTFmY2NjLi41YWViNGIxNTM3ZDMzNDIxMTZjYTIx
YTU1NTM1M2M0YWFlYzAwZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAtNDMsMTIgKzQzLDEzIEBACiAjaW1wb3J0ICJV
c2VyRGF0YS5oIgogI2ltcG9ydCAiV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdE1hYy5oIgog
I2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW1wb3J0ICJXZWJFdmVudC5oIgog
I2ltcG9ydCAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW1wb3J0ICJXZWJGcmFtZS5oIgogI2lt
cG9ydCAiV2ViSGl0VGVzdFJlc3VsdERhdGEuaCIKICNpbXBvcnQgIldlYkltYWdlLmgiCiAjaW1w
b3J0ICJXZWJJbnNwZWN0b3IuaCIKKyNpbXBvcnQgIldlYktleWJvYXJkRXZlbnQuaCIKKyNpbXBv
cnQgIldlYk1vdXNlRXZlbnQuaCIKICNpbXBvcnQgIldlYlBhZ2VPdmVybGF5LmgiCiAjaW1wb3J0
ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUGFzdGVib2FyZE92ZXJyaWRl
cy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dl
YlBhZ2VXaW4uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBh
Z2VXaW4uY3BwCmluZGV4IDliZmM4NjlkZTE0MDFkMmQ1NmJhMjlkNDhjNmY0MTdhNTdlZjQ4Njgu
LjI4OTNlZDNmM2I4YzljMjg0NzJiOGFhZjdhMzk5ZTI1N2JmOGM1MmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAKQEAgLTI4
LDggKzI4LDggQEAKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAKICNpbmNsdWRlICJFZGl0b3JTdGF0
ZS5oIgotI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNs
dWRlICJXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9CYWNrRm9yd2Fy
ZENvbnRyb2xsZXIuaD4K
</data>
<flag name="commit-queue"
          id="426311"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410399</attachid>
            <date>2020-10-02 18:26:11 -0700</date>
            <delta_ts>2020-10-02 20:55:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217259-20201002182610.patch</filename>
            <type>text/plain</type>
            <size>87917</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI5Njk2ZTQzNzM3NDRiNTBh
ZjhiZmM0NmUzMDdkM2MzNGQ1MTE4MzMuLjdkNjllNjUwOTk5MzljZGU3MzgyNjU1YmU2ZDRhN2Jh
MDJkZmNjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAxIEBACisyMDIwLTEwLTAyICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgV2ViRXZlbnQg
c3ViY2xhc3MgZGVjbGFyYXRpb25zIHRvIHRoZWlyIG93biBmaWxlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3MjU5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBNYWtlIG5ldyBoZWFkZXIgZmlsZXMgZm9yIFdl
Yk1vdXNlRXZlbnQsIFdlYktleWJvYXJkRXZlbnQsIFdlYldoZWVsRXZlbnQsIFdlYlRvdWNoRXZl
bnQgYW5kCisgICAgICAgIGZpeCB0aGUgZmFsbG91dC4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3Qu
aDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViR2VzdHVyZUV2ZW50Lmg6CisgICAgICAgICog
U2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZl
V2ViTW91c2VFdmVudC5oOgorICAgICAgICAqIFNoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50Lmg6
CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaDoKKyAgICAgICAgKiBTaGFy
ZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50OjphbGxUb3VjaFBvaW50c0FyZVJlbGVh
c2VkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6YnV0dG9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6YnV0dG9ucyBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OnBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6Z2xvYmFsUG9zaXRpb24gY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpkZWx0YVggY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpkZWx0YVkgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpkZWx0YVogY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpjbGlja0NvdW50IGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZXZlbnROdW1iZXIgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjptZW51VHlwZUZv
ckV2ZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6
Zm9yY2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50Ojpz
eW50aGV0aWNDbGlja1R5cGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJX
aGVlbEV2ZW50Ojpwb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YldoZWVsRXZlbnQ6Omdsb2JhbFBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViV2hlZWxFdmVudDo6ZGVsdGEgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJXaGVlbEV2ZW50Ojp3aGVlbFRpY2tzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViV2hlZWxFdmVudDo6Z3JhbnVsYXJpdHkgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2Ug
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpwaGFzZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Om1vbWVudHVt
UGhhc2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojpo
YXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViV2hlZWxFdmVudDo6c2Nyb2xsQ291bnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojp1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojp0ZXh0IGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6dW5tb2RpZmll
ZFRleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
OjprZXkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
Ojpjb2RlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVu
dDo6a2V5SWRlbnRpZmllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYktl
eWJvYXJkRXZlbnQ6OndpbmRvd3NWaXJ0dWFsS2V5Q29kZSBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6Om5hdGl2ZVZpcnR1YWxLZXlDb2RlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6bWFjQ2hhckNv
ZGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojpo
YW5kbGVkQnlJbnB1dE1ldGhvZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YktleWJvYXJkRXZlbnQ6OnByZWVkaXRVbmRlcmxpbmVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6cHJlZWRpdFNlbGVjdGlvblJhbmdlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6Y29tbWFuZHMg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojppc0F1
dG9SZXBlYXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2
ZW50Ojppc0tleXBhZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYktleWJv
YXJkRXZlbnQ6OmlzU3lzdGVtS2V5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmlkZW50aWZpZXIgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmxvY2F0
aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBv
aW50OjpwaGFzZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3Jt
VG91Y2hQb2ludDo6c3RhdGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFJhZGl1c1gpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnJhZGl1c1ggY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFJhZGl1c1kpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnJhZGl1c1kgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFJvdGF0
aW9uQW5nbGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ6OnJvdGF0aW9uQW5nbGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OnNldEZvcmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGxhdGZvcm1Ub3VjaFBvaW50Ojpmb3JjZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0QWx0aXR1ZGVBbmdsZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6YWx0aXR1ZGVBbmdsZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
c2V0QXppbXV0aEFuZ2xlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1U
b3VjaFBvaW50OjphemltdXRoQW5nbGUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNldFRvdWNoVHlwZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6dG91Y2hUeXBlIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6V2ViVG91Y2hFdmVudCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OnRvdWNoUG9pbnRzIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6cG9zaXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50Ojppc1BvdGVudGlhbFRh
cCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OmlzR2Vz
dHVyZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6Omdl
c3R1cmVTY2FsZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZl
bnQ6Omdlc3R1cmVSb3RhdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlRvdWNoRXZlbnQ6OmNhblByZXZlbnROYXRpdmVHZXN0dXJlcyBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OnNldENhblByZXZlbnROYXRpdmVHZXN0dXJl
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6aWQg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6
OnNjcmVlblBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGxh
dGZvcm1Ub3VjaFBvaW50Ojpwb3NpdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cmFkaXVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpzZXRTdGF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgICogU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAgICogU2hhcmVk
L1dlYktleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAqIFNoYXJlZC9XZWJLZXlib2FyZEV2ZW50
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojp0ZXh0IGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6dW5tb2RpZmllZFRleHQgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50OjprZXkgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50Ojpjb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6a2V5SWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OndpbmRvd3NWaXJ0dWFsS2V5Q29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6Om5hdGl2ZVZpcnR1YWxLZXlDb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6bWFjQ2hhckNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50OjpoYW5kbGVkQnlJbnB1dE1l
dGhvZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OnByZWVkaXRV
bmRlcmxpbmVzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6cHJl
ZWRpdFNlbGVjdGlvblJhbmdlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRF
dmVudDo6Y29tbWFuZHMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
Ojppc0F1dG9SZXBlYXQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50
Ojppc0tleXBhZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6Omlz
U3lzdGVtS2V5IGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvV2ViTW91c2VFdmVudC5jcHA6Cisg
ICAgICAgICogU2hhcmVkL1dlYk1vdXNlRXZlbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYk1vdXNlRXZlbnQ6OmJ1dHRvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNl
RXZlbnQ6OmJ1dHRvbnMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50Ojpw
b3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6Omdsb2JhbFBv
c2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFYIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFZIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6ZGVsdGFaIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViTW91c2VFdmVudDo6Y2xpY2tDb3VudCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYk1vdXNlRXZlbnQ6OmV2ZW50TnVtYmVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TW91c2VFdmVudDo6bWVudVR5cGVGb3JFdmVudCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk1vdXNlRXZlbnQ6OmZvcmNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVu
dDo6c3ludGhldGljQ2xpY2tUeXBlIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvV2ViVG91Y2hF
dmVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OmFsbFRvdWNoUG9pbnRz
QXJlUmVsZWFzZWQgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9XZWJUb3VjaEV2ZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OldlYlBsYXRmb3Jt
VG91Y2hQb2ludCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6aWRl
bnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
bG9jYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6
OnBoYXNlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50Ojpz
dGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0
UmFkaXVzWCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cmFkaXVz
WCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0UmFk
aXVzWSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cmFkaXVzWSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2V0Um90YXRp
b25BbmdsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6cm90YXRp
b25BbmdsZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
c2V0Rm9yY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmZvcmNl
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpzZXRBbHRp
dHVkZUFuZ2xlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjphbHRp
dHVkZUFuZ2xlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50
OjpzZXRBemltdXRoQW5nbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ6OmF6aW11dGhBbmdsZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91
Y2hQb2ludDo6c2V0VG91Y2hUeXBlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3Vj
aFBvaW50Ojp0b3VjaFR5cGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50
OjpXZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6dG91Y2hQ
b2ludHMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50Ojpwb3NpdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OmlzUG90ZW50aWFsVGFwIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6aXNHZXN0dXJlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6Z2VzdHVyZVNjYWxlIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6Z2VzdHVyZVJvdGF0aW9uIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6Y2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6c2V0Q2FuUHJldmVudE5hdGl2
ZUdlc3R1cmVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjppZCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6c2NyZWVuUG9z
aXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnBv
c2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50Ojpy
YWRpdXMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OnNl
dFN0YXRlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJXaGVlbEV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojpw
b3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Omdsb2JhbFBv
c2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6ZGVsdGEgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojp3aGVlbFRpY2tzIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6Z3JhbnVsYXJpdHkgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2Ug
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpwaGFzZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6Om1vbWVudHVtUGhhc2UgY29uc3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50OjpoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6c2Nyb2xsQ291bnQgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJXaGVlbEV2ZW50Ojp1bmFjY2VsZXJhdGVkU2Nyb2xsaW5n
RGVsdGEgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lmg6
CisgICAgICAgICogU2hhcmVkL2lvcy9XZWJQbGF0Zm9ybVRvdWNoUG9pbnRJT1MuY3BwOgorICAg
ICAgICAqIFNoYXJlZC9pb3MvV2ViVG91Y2hFdmVudElPUy5jcHA6CisgICAgICAgICogU2hhcmVk
L21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW06CisgICAgICAgICogU2hhcmVkL21hYy9X
ZWJFdmVudEZhY3RvcnkuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQVBJUG9saWN5Q2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS01vdXNlR2Vz
dHVyZVJlY29nbml6ZXIubW06CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZU5hdmlnYXRpb25BY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvbWFjL05ldHNjYXBlUGx1Z2luTWFjLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm94eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgor
CiAyMDIwLTA5LTMwICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgY29kZSBiZWhpbmQgRU5BQkxFKE1FRElBX1NFU1NJT04pLCBubyBwb3J0cyBlbmFibGUg
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDJiN2Y0NmIz
NDRlMWJlM2U4NjBiMTRlODEwNDkxNDMyODlhMTU3MGQuLjcwZDNkODhmMmJmNGE2ZjFjZmM0ZjE4
ODcwNGVkNjc3MGU0OTc3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQpAQCAtNjc4LDExICs2NzgsNiBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAg
ICAgICAgJ1dlYktpdDo6UmVzcGVjdFNlbGVjdGlvbkFuY2hvcic6IFsnIkdlc3R1cmVUeXBlcy5o
IiddLAogICAgICAgICAnV2ViS2l0OjpTZWxlY3Rpb25GbGFncyc6IFsnIkdlc3R1cmVUeXBlcy5o
IiddLAogICAgICAgICAnV2ViS2l0OjpTZWxlY3Rpb25Ub3VjaCc6IFsnIkdlc3R1cmVUeXBlcy5o
IiddLAotICAgICAgICAnV2ViS2l0OjpXZWJHZXN0dXJlRXZlbnQnOiBbJyJXZWJFdmVudC5oIidd
LAotICAgICAgICAnV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwK
LSAgICAgICAgJ1dlYktpdDo6V2ViTW91c2VFdmVudCc6IFsnIldlYkV2ZW50LmgiJ10sCi0gICAg
ICAgICdXZWJLaXQ6OldlYlRvdWNoRXZlbnQnOiBbJyJXZWJFdmVudC5oIiddLAotICAgICAgICAn
V2ViS2l0OjpXZWJXaGVlbEV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwKICAgICAgICAgJ1dlYkNv
cmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMnOiBbJzxXZWJDb3JlL01lZGlhUGxheWVy
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpJU09XZWJWVFRDdWUnOiBbJzxXZWJDb3JlL0lTT1ZU
VEN1ZS5oPiddLAogICAgICAgICAnc3RydWN0IFdlYkNvcmU6OkNvb2tpZSc6IFsnPFdlYkNvcmUv
Q29va2llLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1No
YXJlZEFQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2Fz
dC5oCmluZGV4IDY2NDhlNzJmZWIyYzNkMWFiNGUxYzBlMjE0Y2E2OGRlMDVkMDEzY2EuLmU1NjAw
NTA4YTFiMzNkMjU1ZGQ1ZGI3NDAyYTA1ZGY4Y2NlMTI2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBXS1NoYXJlZEFQSUNh
c3RfaAotI2RlZmluZSBXS1NoYXJlZEFQSUNhc3RfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJBUElFcnJvci5oIgogI2luY2x1ZGUgIkFQSU51bWJlci5oIgpAQCAtNDcsOCArNDYsOCBAQAog
I2luY2x1ZGUgIldLUGFnZVZpc2liaWxpdHlUeXBlcy5oIgogI2luY2x1ZGUgIldLVXNlckNvbnRl
bnRJbmplY3RlZEZyYW1lcy5oIgogI2luY2x1ZGUgIldLVXNlclNjcmlwdEluamVjdGlvblRpbWUu
aCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgiCisj
aW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGV4dE1lbnVJ
dGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgpAQCAtMTAzNCw1ICsxMDMzLDMgQEAgaW5s
aW5lIFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgdG9Vc2VyQ29udGVudEluamVj
dGVkRnJhbWVzKFdLVXNlckNvbnQKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRp
ZiAvLyBXS1NoYXJlZEFQSUNhc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
TmF0aXZlV2ViR2VzdHVyZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJH
ZXN0dXJlRXZlbnQuaAppbmRleCBiOThiNzU4MzcwZGRmNDk2NTI3ZDlmNjBlYmMzYjgyZGVlZGI4
YzZmLi5lY2VhYTk3ZDk1OWQwOGJjMjJkYTdmZDcxZjU3NzE5ZjRiZDFjNTdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJHZXN0dXJlRXZlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJHZXN0dXJlRXZlbnQuaApAQCAtMjMsMTIgKzIzLDEw
IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBO
YXRpdmVXZWJHZXN0dXJlRXZlbnRfaAotI2RlZmluZSBOYXRpdmVXZWJHZXN0dXJlRXZlbnRfaAor
I3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogCi0jaW5jbHVk
ZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJHZXN0dXJlRXZlbnQuaCIKIAogT0JKQ19DTEFT
UyBOU0V2ZW50OwpAQCAtNDgsNSArNDYsMyBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQotCi0jZW5kaWYgLy8g
TmF0aXZlV2ViR2VzdHVyZUV2ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdl
YktleWJvYXJkRXZlbnQuaAppbmRleCBiZjY0Mjk5MDI1YWZjYzFjYjc4NGQzNWRkM2VhNjExZDQ3
MDE4YjEyLi5mZDJiNTVmNDBmZGQzZDgyZDZkNjk0N2RjMzNhZDMxZjI0ZjRjMWM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCkBAIC0yNiwxOSAr
MjYsMTMgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZu
ZGVmIE5hdGl2ZVdlYktleWJvYXJkRXZlbnRfaAotI2RlZmluZSBOYXRpdmVXZWJLZXlib2FyZEV2
ZW50X2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJX
ZWJLZXlib2FyZEV2ZW50LmgiCiAKICNpZiBVU0UoQVBQS0lUKQogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KIE9CSkNfQ0xBU1MgTlNWaWV3OwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1zdHJ1
Y3QgQ29tcG9zaXRpb25VbmRlcmxpbmU7Ci1zdHJ1Y3QgS2V5cHJlc3NDb21tYW5kOwotfQogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShHVEspCkBAIC0xMTMsNSArMTA3LDMgQEAgcHJpdmF0ZToKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmgKaW5kZXgg
ZDZmOTkwMmI5NjNiZDlhMDAzNmE2MDA4ZDcxOWMzZTViMTU0MDJjNC4uNWUzN2Y3MzUxMGY3Mzk2
MWQ5N2NlOGI0MmRlMGUxOTM1YTE3MGQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2
ZVdlYk1vdXNlRXZlbnQuaApAQCAtMjMsMTAgKzIzLDkgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE5hdGl2ZVdlYk1vdXNlRXZlbnRfaAotI2Rl
ZmluZSBOYXRpdmVXZWJNb3VzZUV2ZW50X2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2Vi
RXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCiAKICNpZiBVU0UoQVBQS0lUKQog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTEwMiw1ICsxMDEsMyBAQCBwcml2YXRlOgog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBOYXRpdmVXZWJNb3VzZUV2
ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZl
bnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaAppbmRleCBm
NWQ3MmY4N2I1YjEyNGRiZTE0MGRmN2FkMzg3ZTZiOGEzY2ExZGFhLi5kNzMzMzAxNmU4NDkxYjQy
ODcxNzhhMjM3NTY5ZmRlOWQ4OWEzYTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF0aXZl
V2ViVG91Y2hFdmVudC5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5j
bHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBkZWZpbmVkKF9fT0JKQ19fKQogI2luY2x1ZGUgPFVJS2l0L1VJ
S2l0Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKaW5kZXgg
ODRkYjA4M2NlZmU3ZDE2NmIyNmYxNTE2MjBkMDk2MDQ3ZDY5NzJjZS4uZGY0MjQyYjA3MzljODM4
YjY0YzdjNzFmMjRlMWZlMDY5YjRmNDAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdGl2
ZVdlYldoZWVsRXZlbnQuaApAQCAtMjMsMTAgKzIzLDkgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE5hdGl2ZVdlYldoZWVsRXZlbnRfaAotI2Rl
ZmluZSBOYXRpdmVXZWJXaGVlbEV2ZW50X2gKKyNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2Vi
RXZlbnQuaCIKKyNpbmNsdWRlICJXZWJXaGVlbEV2ZW50LmgiCiAKICNpZiBVU0UoQVBQS0lUKQog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTg5LDUgKzg4LDMgQEAgcHJpdmF0ZToKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gTmF0aXZlV2ViV2hlZWxFdmVu
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9OYXZpZ2F0aW9uQWN0aW9uRGF0
YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTmF2aWdhdGlvbkFjdGlvbkRhdGEuaAppbmRleCBm
NzI3MWVhZjgzOGEzMGM5OWIwYzhiMjA1NGZkNGI2Nzc4NjY3ZjZmLi5jYmQ3NzBlNTdmM2VhN2Q0
ZmM4OTJkY2VhZjQ0ZGZhZmMwYjVmNGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9OYXZpZ2F0aW9uQWN0aW9uRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05hdmln
YXRpb25BY3Rpb25EYXRhLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYk1vdXNlRXZlbnQuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0FkQ2xpY2tBdHRyaWJ1dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQmFja0Zv
cndhcmRJdGVtSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCmluZGV4IGRiN2RlMzllNjdjYjM1YWY5YTA1YWE0MmIy
M2ZiODIwNzhhYWI0NDAuLmNlMzE3OGRlMjcxZTAxZmVmNDI1OGJhYWU3NTAxNTk3ZWFhNWJhMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5jcHAKQEAgLTYyLDE2ICs2Miw0IEBAIGJvb2wgV2Vi
RXZlbnQ6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYkV2ZW50JiByZXN1bHQpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotYm9vbCBXZWJU
b3VjaEV2ZW50OjphbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkgY29uc3QKLXsKLSAgICBmb3Ig
KGNvbnN0IGF1dG8mIHRvdWNoUG9pbnQgOiB0b3VjaFBvaW50cygpKSB7Ci0gICAgICAgIGlmICh0
b3VjaFBvaW50LnN0YXRlKCkgIT0gV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2Vk
ICYmIHRvdWNoUG9pbnQuc3RhdGUoKSAhPSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoQ2Fu
Y2VsbGVkKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHJldHVybiB0
cnVlOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2
ZW50LmgKaW5kZXggZTMxZDkyNTM0YmYxODA4ZjEyYzMwMDVmZDc1OTRmODAwNmM4OTk5Ni4uM2Fl
NjUwNDc3OWQzOTE3YTc5ZjY5ZjMyYjU4MjYwYWZlZGEyNzBiNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJF
dmVudC5oCkBAIC0yOSwxMyArMjksNiBAQAogLy8gRklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBt
b3ZlIHRvIG1ha2VpbmcgdGhlIFdlYkNvcmUvUGxhdGZvcm1Gb29FdmVudHMgdHJpdmlhbCBjbGFz
c2VzIHNvIHRoYXQKIC8vIHdlIGNhbiB1c2UgdGhlbSBhcyB0aGUgZXZlbnQgdHlwZS4KIAotI2lu
Y2x1ZGUgIkVkaXRpbmdSYW5nZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQ29tcG9zaXRpb25VbmRl
cmxpbmUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL0Zsb2F0U2l6ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL0ludFNpemUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0tleXByZXNzQ29tbWFuZC5o
PgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5o
PgogI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgpAQCAtNDYsMTIgKzM5LDYgQEAgY2xhc3MgRGVj
b2RlcjsKIGNsYXNzIEVuY29kZXI7CiB9CiAKLSNpZiBVU0UoQVBQS0lUKQotbmFtZXNwYWNlIFdl
YkNvcmUgewotc3RydWN0IEtleXByZXNzQ29tbWFuZDsKLX0KLSNlbmRpZgotCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgV2ViRXZlbnQgewpAQCAtMTI2LDM3MyArMTEzLDYgQEAgcHJpdmF0
ZToKICAgICBXYWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKLS8vIEZJWE1FOiBNb3ZlIHRoaXMg
Y2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYk1vdXNlRXZlbnQgOiBwdWJs
aWMgV2ViRXZlbnQgewotcHVibGljOgotICAgIGVudW0gQnV0dG9uIHsKLSAgICAgICAgTGVmdEJ1
dHRvbiA9IDAsCi0gICAgICAgIE1pZGRsZUJ1dHRvbiwKLSAgICAgICAgUmlnaHRCdXR0b24sCi0g
ICAgICAgIE5vQnV0dG9uID0gLTIKLSAgICB9OwotCi0gICAgZW51bSBTeW50aGV0aWNDbGlja1R5
cGUgeyBOb1RhcCwgT25lRmluZ2VyVGFwLCBUd29GaW5nZXJUYXAgfTsKLQotICAgIFdlYk1vdXNl
RXZlbnQoKTsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBXZWJNb3VzZUV2ZW50KFR5cGUsIEJ1
dHRvbiwgdW5zaWduZWQgc2hvcnQgYnV0dG9ucywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBv
c2l0aW9uSW5WaWV3LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZs
b2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBP
cHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3lu
dGhldGljQ2xpY2tUeXBlID0gTm9UYXAsIGludCBldmVudE51bWJlciA9IC0xLCBpbnQgbWVudVR5
cGUgPSAwKTsKLSNlbHNlCi0gICAgV2ViTW91c2VFdmVudChUeXBlLCBCdXR0b24sIHVuc2lnbmVk
IHNob3J0IGJ1dHRvbnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbkluVmlldywg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZs
b2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgT3B0aW9uU2V0PE1vZGlm
aWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlj
a1R5cGUgPSBOb1RhcCk7Ci0jZW5kaWYKLQotICAgIEJ1dHRvbiBidXR0b24oKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQotICAgIHVuc2lnbmVkIHNob3J0
IGJ1dHRvbnMoKSBjb25zdCB7IHJldHVybiBtX2J1dHRvbnM7IH0KLSAgICBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9IC8vIFJl
bGF0aXZlIHRvIHRoZSB2aWV3LgotICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsUG9zaXRpb247IH0KLSAgICBmbG9hdCBk
ZWx0YVgoKSBjb25zdCB7IHJldHVybiBtX2RlbHRhWDsgfQotICAgIGZsb2F0IGRlbHRhWSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGVsdGFZOyB9Ci0gICAgZmxvYXQgZGVsdGFaKCkgY29uc3QgeyByZXR1
cm4gbV9kZWx0YVo7IH0KLSAgICBpbnQzMl90IGNsaWNrQ291bnQoKSBjb25zdCB7IHJldHVybiBt
X2NsaWNrQ291bnQ7IH0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgaW50MzJfdCBldmVudE51bWJl
cigpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnROdW1iZXI7IH0KLSAgICBpbnQzMl90IG1lbnVUeXBl
Rm9yRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX21lbnVUeXBlRm9yRXZlbnQ7IH0KLSNlbmRpZgot
ICAgIGRvdWJsZSBmb3JjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2U7IH0KLSAgICBTeW50aGV0
aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8U3ludGhldGljQ2xpY2tUeXBlPihtX3N5bnRoZXRpY0NsaWNrVHlwZSk7IH0KLQotICAgIHZv
aWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9S
RVRVUk4gYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViTW91c2VFdmVudCYpOwotCi1wcml2
YXRlOgotICAgIHN0YXRpYyBib29sIGlzTW91c2VFdmVudFR5cGUoVHlwZSk7Ci0KLSAgICB1aW50
MzJfdCBtX2J1dHRvbiB7IHN0YXRpY19jYXN0PHVpbnQzMl90PihOb0J1dHRvbikgfTsKLSAgICB1
bnNpZ25lZCBzaG9ydCBtX2J1dHRvbnMgeyAwIH07Ci0gICAgV2ViQ29yZTo6SW50UG9pbnQgbV9w
b3NpdGlvbjsgLy8gUmVsYXRpdmUgdG8gdGhlIHZpZXcuCi0gICAgV2ViQ29yZTo6SW50UG9pbnQg
bV9nbG9iYWxQb3NpdGlvbjsKLSAgICBmbG9hdCBtX2RlbHRhWCB7IDAgfTsKLSAgICBmbG9hdCBt
X2RlbHRhWSB7IDAgfTsKLSAgICBmbG9hdCBtX2RlbHRhWiB7IDAgfTsKLSAgICBpbnQzMl90IG1f
Y2xpY2tDb3VudCB7IDAgfTsKLSNpZiBQTEFURk9STShNQUMpCi0gICAgaW50MzJfdCBtX2V2ZW50
TnVtYmVyIHsgLTEgfTsKLSAgICBpbnQzMl90IG1fbWVudVR5cGVGb3JFdmVudCB7IDAgfTsKLSNl
bmRpZgotICAgIGRvdWJsZSBtX2ZvcmNlIHsgMCB9OwotICAgIHVpbnQzMl90IG1fc3ludGhldGlj
Q2xpY2tUeXBlIHsgTm9UYXAgfTsKLX07Ci0KLS8vIEZJWE1FOiBNb3ZlIHRoaXMgY2xhc3MgdG8g
aXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYldoZWVsRXZlbnQgOiBwdWJsaWMgV2ViRXZl
bnQgewotcHVibGljOgotICAgIGVudW0gR3JhbnVsYXJpdHkgewotICAgICAgICBTY3JvbGxCeVBh
Z2VXaGVlbEV2ZW50LAotICAgICAgICBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudAotICAgIH07Ci0K
LSAgICBlbnVtIFBoYXNlIHsKLSAgICAgICAgUGhhc2VOb25lICAgICAgICA9IDAsCi0gICAgICAg
IFBoYXNlQmVnYW4gICAgICAgPSAxIDw8IDAsCi0gICAgICAgIFBoYXNlU3RhdGlvbmFyeSAgPSAx
IDw8IDEsCi0gICAgICAgIFBoYXNlQ2hhbmdlZCAgICAgPSAxIDw8IDIsCi0gICAgICAgIFBoYXNl
RW5kZWQgICAgICAgPSAxIDw8IDMsCi0gICAgICAgIFBoYXNlQ2FuY2VsbGVkICAgPSAxIDw8IDQs
Ci0gICAgICAgIFBoYXNlTWF5QmVnaW4gICAgPSAxIDw8IDUsCi0gICAgfTsKLQotICAgIFdlYldo
ZWVsRXZlbnQoKSA9IGRlZmF1bHQ7Ci0KLSAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBPcHRpb25TZXQ8TW9kaWZpZXI+
LCBXYWxsVGltZSB0aW1lc3RhbXApOwotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdlYldoZWVs
RXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
ZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHks
IGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1Q
aGFzZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxDb3Vu
dCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEs
IE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Ci0jZWxpZiBQTEFURk9S
TShHVEspIHx8IFVTRShMSUJXUEUpCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVs
YXJpdHksIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Ci0jZW5kaWYK
LQotICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9wb3NpdGlvbjsgfQotICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxQb3NpdGlvbjsgfQotICAgIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSBkZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsdGE7IH0KLSAgICBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxUaWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fd2hlZWxUaWNr
czsgfQotICAgIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8R3JhbnVsYXJpdHk+KG1fZ3JhbnVsYXJpdHkpOyB9Ci0gICAgYm9vbCBkaXJlY3Rpb25J
bnZlcnRlZEZyb21EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvbkludmVydGVkRnJv
bURldmljZTsgfQotICAgIFBoYXNlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
UGhhc2U+KG1fcGhhc2UpOyB9Ci0gICAgUGhhc2UgbW9tZW50dW1QaGFzZSgpIGNvbnN0IHsgcmV0
dXJuIHN0YXRpY19jYXN0PFBoYXNlPihtX21vbWVudHVtUGhhc2UpOyB9Ci0jaWYgUExBVEZPUk0o
Q09DT0EpCi0gICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkgY29uc3QgeyByZXR1
cm4gbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOyB9Ci0gICAgdWludDMyX3Qgc2Nyb2xsQ291
bnQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbENvdW50OyB9Ci0gICAgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEoKSBjb25zdCB7IHJldHVybiBt
X3VuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YTsgfQotI2VuZGlmCi0KLSAgICB2b2lkIGVuY29k
ZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJv
b2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYldoZWVsRXZlbnQmKTsKLQotcHJpdmF0ZToKLSAg
ICBzdGF0aWMgYm9vbCBpc1doZWVsRXZlbnRUeXBlKFR5cGUpOwotCi0gICAgV2ViQ29yZTo6SW50
UG9pbnQgbV9wb3NpdGlvbjsKLSAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2dsb2JhbFBvc2l0aW9u
OwotICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX2RlbHRhOwotICAgIFdlYkNvcmU6OkZsb2F0U2l6
ZSBtX3doZWVsVGlja3M7Ci0gICAgdWludDMyX3QgbV9ncmFudWxhcml0eSB7IFNjcm9sbEJ5UGFn
ZVdoZWVsRXZlbnQgfTsKLSAgICBib29sIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlIHsg
ZmFsc2UgfTsKLSAgICB1aW50MzJfdCBtX3BoYXNlIHsgUGhhc2U6OlBoYXNlTm9uZSB9OwotICAg
IHVpbnQzMl90IG1fbW9tZW50dW1QaGFzZSB7IFBoYXNlOjpQaGFzZU5vbmUgfTsKLSNpZiBQTEFU
Rk9STShDT0NPQSkKLSAgICBib29sIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyB7IGZhbHNl
IH07Ci0gICAgdWludDMyX3QgbV9zY3JvbGxDb3VudCB7IDAgfTsKLSAgICBXZWJDb3JlOjpGbG9h
dFNpemUgbV91bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGE7Ci0jZW5kaWYKLX07Ci0KLS8vIEZJ
WE1FOiBNb3ZlIHRoaXMgY2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYktl
eWJvYXJkRXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewotcHVibGljOgotICAgIFdlYktleWJvYXJk
RXZlbnQoKTsKLSAgICB+V2ViS2V5Ym9hcmRFdmVudCgpOwotCi0jaWYgVVNFKEFQUEtJVCkKLSAg
ICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwg
Y29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBp
bnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBoYW5kbGVkQnlJ
bnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mLCBib29s
IGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0
PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKLSNlbGlmIFBMQVRGT1JNKEdUSykKLSAg
ICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wg
aGFuZGxlZEJ5SW5wdXRNZXRob2QsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlv
blVuZGVybGluZT4+JiYsIE9wdGlvbmFsPEVkaXRpbmdSYW5nZT4mJiwgVmVjdG9yPFN0cmluZz4m
JiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUg
dGltZXN0YW1wKTsKLSNlbGlmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgV2ViS2V5Ym9hcmRF
dmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRl
eHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYg
a2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1
YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGJv
b2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBPcHRpb25T
ZXQ8TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOwotI2VsaWYgVVNFKExJQldQRSkKLSAg
ICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wg
aGFuZGxlZEJ5SW5wdXRNZXRob2QsIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlv
blVuZGVybGluZT4+JiYsIE9wdGlvbmFsPEVkaXRpbmdSYW5nZT4mJiwgYm9vbCBpc0tleXBhZCwg
T3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKLSNlbHNlCi0gICAgV2Vi
S2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5t
b2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5h
dGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBi
b29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBPcHRpb25TZXQ8TW9kaWZpZXI+LCBXYWxs
VGltZSB0aW1lc3RhbXApOwotI2VuZGlmCi0KLSAgICBjb25zdCBTdHJpbmcmIHRleHQoKSBjb25z
dCB7IHJldHVybiBtX3RleHQ7IH0KLSAgICBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0KCkg
Y29uc3QgeyByZXR1cm4gbV91bm1vZGlmaWVkVGV4dDsgfQotICAgIGNvbnN0IFN0cmluZyYga2V5
KCkgY29uc3QgeyByZXR1cm4gbV9rZXk7IH0KLSAgICBjb25zdCBTdHJpbmcmIGNvZGUoKSBjb25z
dCB7IHJldHVybiBtX2NvZGU7IH0KLSAgICBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX2tleUlkZW50aWZpZXI7IH0KLSAgICBpbnQzMl90IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlOyB9Ci0g
ICAgaW50MzJfdCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZl
VmlydHVhbEtleUNvZGU7IH0KLSAgICBpbnQzMl90IG1hY0NoYXJDb2RlKCkgY29uc3QgeyByZXR1
cm4gbV9tYWNDaGFyQ29kZTsgfQotI2lmIFVTRShBUFBLSVQpIHx8IFVTRShVSUtJVF9LRVlCT0FS
RF9BRERJVElPTlMpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKLSAgICBib29sIGhh
bmRsZWRCeUlucHV0TWV0aG9kKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGVkQnlJbnB1dE1ldGhv
ZDsgfQotI2VuZGlmCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBVU0UoTElCV1BFKQotICAgIGNvbnN0
IE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZT4+JiBwcmVlZGl0
VW5kZXJsaW5lcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZWRpdFVuZGVybGluZXM7IH0KLSAgICBj
b25zdCBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+JiBwcmVlZGl0U2VsZWN0aW9uUmFuZ2UoKSBjb25z
dCB7IHJldHVybiBtX3ByZWVkaXRTZWxlY3Rpb25SYW5nZTsgfQotI2VuZGlmCi0jaWYgVVNFKEFQ
UEtJVCkKLSAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFu
ZHMoKSBjb25zdCB7IHJldHVybiBtX2NvbW1hbmRzOyB9Ci0jZWxpZiBQTEFURk9STShHVEspCi0g
ICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvbW1hbmRzKCkgY29uc3QgeyByZXR1cm4gbV9jb21t
YW5kczsgfQotI2VuZGlmCi0gICAgYm9vbCBpc0F1dG9SZXBlYXQoKSBjb25zdCB7IHJldHVybiBt
X2lzQXV0b1JlcGVhdDsgfQotICAgIGJvb2wgaXNLZXlwYWQoKSBjb25zdCB7IHJldHVybiBtX2lz
S2V5cGFkOyB9Ci0gICAgYm9vbCBpc1N5c3RlbUtleSgpIGNvbnN0IHsgcmV0dXJuIG1faXNTeXN0
ZW1LZXk7IH0KLQotICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAgIHN0
YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViS2V5
Ym9hcmRFdmVudCYpOwotCi0gICAgc3RhdGljIGJvb2wgaXNLZXlib2FyZEV2ZW50VHlwZShUeXBl
KTsKLQotcHJpdmF0ZToKLSAgICBTdHJpbmcgbV90ZXh0OwotICAgIFN0cmluZyBtX3VubW9kaWZp
ZWRUZXh0OwotICAgIFN0cmluZyBtX2tleTsKLSAgICBTdHJpbmcgbV9jb2RlOwotICAgIFN0cmlu
ZyBtX2tleUlkZW50aWZpZXI7Ci0gICAgaW50MzJfdCBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSB7
IDAgfTsKLSAgICBpbnQzMl90IG1fbmF0aXZlVmlydHVhbEtleUNvZGUgeyAwIH07Ci0gICAgaW50
MzJfdCBtX21hY0NoYXJDb2RlIHsgMCB9OwotI2lmIFVTRShBUFBLSVQpIHx8IFVTRShVSUtJVF9L
RVlCT0FSRF9BRERJVElPTlMpIHx8IFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKLSAgICBi
b29sIG1faGFuZGxlZEJ5SW5wdXRNZXRob2QgeyBmYWxzZSB9OwotI2VuZGlmCi0jaWYgUExBVEZP
Uk0oR1RLKSB8fCBVU0UoTElCV1BFKQotICAgIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb21w
b3NpdGlvblVuZGVybGluZT4+IG1fcHJlZWRpdFVuZGVybGluZXM7Ci0gICAgT3B0aW9uYWw8RWRp
dGluZ1JhbmdlPiBtX3ByZWVkaXRTZWxlY3Rpb25SYW5nZTsKLSNlbmRpZgotI2lmIFVTRShBUFBL
SVQpCi0gICAgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gbV9jb21tYW5kczsKLSNl
bGlmIFBMQVRGT1JNKEdUSykKLSAgICBWZWN0b3I8U3RyaW5nPiBtX2NvbW1hbmRzOwotI2VuZGlm
Ci0gICAgYm9vbCBtX2lzQXV0b1JlcGVhdCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzS2V5cGFk
IHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNTeXN0ZW1LZXkgeyBmYWxzZSB9OwotfTsKLQotI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLWNsYXNzIFdl
YlBsYXRmb3JtVG91Y2hQb2ludCB7Ci1wdWJsaWM6Ci0gICAgZW51bSBUb3VjaFBvaW50U3RhdGUg
ewotICAgICAgICBUb3VjaFJlbGVhc2VkLAotICAgICAgICBUb3VjaFByZXNzZWQsCi0gICAgICAg
IFRvdWNoTW92ZWQsCi0gICAgICAgIFRvdWNoU3RhdGlvbmFyeSwKLSAgICAgICAgVG91Y2hDYW5j
ZWxsZWQKLSAgICB9OwotCi0gICAgZW51bSBjbGFzcyBUb3VjaFR5cGUgewotICAgICAgICBEaXJl
Y3QsCi0gICAgICAgIFN0eWx1cwotICAgIH07Ci0KLSAgICBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQo
KSA9IGRlZmF1bHQ7Ci0gICAgV2ViUGxhdGZvcm1Ub3VjaFBvaW50KHVuc2lnbmVkIGlkZW50aWZp
ZXIsIFdlYkNvcmU6OkludFBvaW50IGxvY2F0aW9uLCBUb3VjaFBvaW50U3RhdGUgcGhhc2UpCi0g
ICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgICAgICwgbV9sb2NhdGlvbihs
b2NhdGlvbikKLSAgICAgICAgLCBtX3BoYXNlKHBoYXNlKQotICAgIHsKLSAgICB9Ci0KLSAgICB1
bnNpZ25lZCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0gICAg
V2ViQ29yZTo6SW50UG9pbnQgbG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2xvY2F0aW9uOyB9
Ci0gICAgVG91Y2hQb2ludFN0YXRlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
VG91Y2hQb2ludFN0YXRlPihtX3BoYXNlKTsgfQotICAgIFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIHBoYXNlKCk7IH0KLQotI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQotICAgIHZvaWQgc2V0UmFkaXVzWChkb3VibGUgcmFkaXVzWCkgeyBtX3JhZGl1c1ggPSByYWRp
dXNYOyB9Ci0gICAgZG91YmxlIHJhZGl1c1goKSBjb25zdCB7IHJldHVybiBtX3JhZGl1c1g7IH0K
LSAgICB2b2lkIHNldFJhZGl1c1koZG91YmxlIHJhZGl1c1kpIHsgbV9yYWRpdXNZID0gcmFkaXVz
WTsgfQotICAgIGRvdWJsZSByYWRpdXNZKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXNZOyB9Ci0g
ICAgdm9pZCBzZXRSb3RhdGlvbkFuZ2xlKGRvdWJsZSByb3RhdGlvbkFuZ2xlKSB7IG1fcm90YXRp
b25BbmdsZSA9IHJvdGF0aW9uQW5nbGU7IH0KLSAgICBkb3VibGUgcm90YXRpb25BbmdsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcm90YXRpb25BbmdsZTsgfQotICAgIHZvaWQgc2V0Rm9yY2UoZG91Ymxl
IGZvcmNlKSB7IG1fZm9yY2UgPSBmb3JjZTsgfQotICAgIGRvdWJsZSBmb3JjZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZm9yY2U7IH0KLSAgICB2b2lkIHNldEFsdGl0dWRlQW5nbGUoZG91YmxlIGFsdGl0
dWRlQW5nbGUpIHsgbV9hbHRpdHVkZUFuZ2xlID0gYWx0aXR1ZGVBbmdsZTsgfQotICAgIGRvdWJs
ZSBhbHRpdHVkZUFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9hbHRpdHVkZUFuZ2xlOyB9Ci0gICAg
dm9pZCBzZXRBemltdXRoQW5nbGUoZG91YmxlIGF6aW11dGhBbmdsZSkgeyBtX2F6aW11dGhBbmds
ZSA9IGF6aW11dGhBbmdsZTsgfQotICAgIGRvdWJsZSBhemltdXRoQW5nbGUoKSBjb25zdCB7IHJl
dHVybiBtX2F6aW11dGhBbmdsZTsgfQotICAgIHZvaWQgc2V0VG91Y2hUeXBlKFRvdWNoVHlwZSB0
b3VjaFR5cGUpIHsgbV90b3VjaFR5cGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4odG91Y2hUeXBl
KTsgfQotICAgIFRvdWNoVHlwZSB0b3VjaFR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxUb3VjaFR5cGU+KG1fdG91Y2hUeXBlKTsgfQotI2VuZGlmCi0KLSAgICB2b2lkIGVuY29kZShJ
UEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMgT3B0aW9uYWw8V2ViUGxhdGZvcm1Ub3Vj
aFBvaW50PiBkZWNvZGUoSVBDOjpEZWNvZGVyJik7Ci0KLXByaXZhdGU6Ci0gICAgdW5zaWduZWQg
bV9pZGVudGlmaWVyIHsgMCB9OwotICAgIFdlYkNvcmU6OkludFBvaW50IG1fbG9jYXRpb247Ci0g
ICAgdWludDMyX3QgbV9waGFzZSB7IFRvdWNoUmVsZWFzZWQgfTsKLSNpZiBFTkFCTEUoSU9TX1RP
VUNIX0VWRU5UUykKLSAgICBkb3VibGUgbV9yYWRpdXNYIHsgMCB9OwotICAgIGRvdWJsZSBtX3Jh
ZGl1c1kgeyAwIH07Ci0gICAgZG91YmxlIG1fcm90YXRpb25BbmdsZSB7IDAgfTsKLSAgICBkb3Vi
bGUgbV9mb3JjZSB7IDAgfTsKLSAgICBkb3VibGUgbV9hbHRpdHVkZUFuZ2xlIHsgMCB9OwotICAg
IGRvdWJsZSBtX2F6aW11dGhBbmdsZSB7IDAgfTsKLSAgICB1aW50MzJfdCBtX3RvdWNoVHlwZSB7
IHN0YXRpY19jYXN0PHVpbnQzMl90PihUb3VjaFR5cGU6OkRpcmVjdCkgfTsKLSNlbmRpZgotfTsK
LQotY2xhc3MgV2ViVG91Y2hFdmVudCA6IHB1YmxpYyBXZWJFdmVudCB7Ci1wdWJsaWM6Ci0gICAg
V2ViVG91Y2hFdmVudCgpID0gZGVmYXVsdDsKLSAgICBXZWJUb3VjaEV2ZW50KFdlYkV2ZW50OjpU
eXBlIHR5cGUsIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3Rh
bXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cywgV2Vi
Q29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3RlbnRpYWxUYXAsIGJvb2wgaXNHZXN0
dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKLSAgICAgICAg
OiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKLSAgICAgICAgLCBtX3RvdWNo
UG9pbnRzKHRvdWNoUG9pbnRzKQotICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCi0gICAg
ICAgICwgbV9jYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXModHJ1ZSkKLSAgICAgICAgLCBtX2lzUG90
ZW50aWFsVGFwKGlzUG90ZW50aWFsVGFwKQotICAgICAgICAsIG1faXNHZXN0dXJlKGlzR2VzdHVy
ZSkKLSAgICAgICAgLCBtX2dlc3R1cmVTY2FsZShnZXN0dXJlU2NhbGUpCi0gICAgICAgICwgbV9n
ZXN0dXJlUm90YXRpb24oZ2VzdHVyZVJvdGF0aW9uKQotICAgIHsKLSAgICAgICAgQVNTRVJUKHR5
cGUgPT0gVG91Y2hTdGFydCB8fCB0eXBlID09IFRvdWNoTW92ZSB8fCB0eXBlID09IFRvdWNoRW5k
IHx8IHR5cGUgPT0gVG91Y2hDYW5jZWwpOwotICAgIH0KLQotICAgIGNvbnN0IFZlY3RvcjxXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdG91Y2hQ
b2ludHM7IH0KLQotICAgIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9wb3NpdGlvbjsgfQotCi0gICAgYm9vbCBpc1BvdGVudGlhbFRhcCgpIGNvbnN0IHsgcmV0
dXJuIG1faXNQb3RlbnRpYWxUYXA7IH0KLQotICAgIGJvb2wgaXNHZXN0dXJlKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc0dlc3R1cmU7IH0KLSAgICBmbG9hdCBnZXN0dXJlU2NhbGUoKSBjb25zdCB7IHJl
dHVybiBtX2dlc3R1cmVTY2FsZTsgfQotICAgIGZsb2F0IGdlc3R1cmVSb3RhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fZ2VzdHVyZVJvdGF0aW9uOyB9Ci0KLSAgICBib29sIGNhblByZXZlbnROYXRp
dmVHZXN0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzOyB9
Ci0gICAgdm9pZCBzZXRDYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMoYm9vbCBjYW5QcmV2ZW50TmF0
aXZlR2VzdHVyZXMpIHsgbV9jYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMgPSBjYW5QcmV2ZW50TmF0
aXZlR2VzdHVyZXM7IH0KLQotICAgIGJvb2wgYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgpIGNv
bnN0OwotCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJUb3VjaEV2
ZW50Jik7Ci0gICAgCi1wcml2YXRlOgotICAgIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+
IG1fdG91Y2hQb2ludHM7Ci0gICAgCi0gICAgV2ViQ29yZTo6SW50UG9pbnQgbV9wb3NpdGlvbjsK
LSAgICBib29sIG1fY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzIHsgZmFsc2UgfTsKLSAgICBib29s
IG1faXNQb3RlbnRpYWxUYXAgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc0dlc3R1cmUgeyBmYWxz
ZSB9OwotICAgIGZsb2F0IG1fZ2VzdHVyZVNjYWxlIHsgMCB9OwotICAgIGZsb2F0IG1fZ2VzdHVy
ZVJvdGF0aW9uIHsgMCB9OwotfTsKLSNlbHNlCi0vLyBGSVhNRTogTW92ZSB0aGlzIGNsYXNzIHRv
IGl0cyBvd24gaGVhZGVyIGZpbGUuCi0vLyBGSVhNRTogSGF2aW5nICJQbGF0Zm9ybSIgaW4gdGhl
IG5hbWUgbWFrZXMgaXQgc291bmQgbGlrZSB0aGlzIGV2ZW50IGlzIHBsYXRmb3JtLXNwZWNpZmlj
IG9yIGxvdy0KLS8vIGxldmVsIGluIHNvbWUgd2F5LiBUaGF0IGRvZXNuJ3Qgc2VlbSB0byBiZSB0
aGUgY2FzZS4KLWNsYXNzIFdlYlBsYXRmb3JtVG91Y2hQb2ludCB7Ci1wdWJsaWM6Ci0gICAgZW51
bSBUb3VjaFBvaW50U3RhdGUgewotICAgICAgICBUb3VjaFJlbGVhc2VkLAotICAgICAgICBUb3Vj
aFByZXNzZWQsCi0gICAgICAgIFRvdWNoTW92ZWQsCi0gICAgICAgIFRvdWNoU3RhdGlvbmFyeSwK
LSAgICAgICAgVG91Y2hDYW5jZWxsZWQKLSAgICB9OwotCi0gICAgV2ViUGxhdGZvcm1Ub3VjaFBv
aW50KCkgOiBtX3JvdGF0aW9uQW5nbGUoMC4wKSwgbV9mb3JjZSgwLjApIHsgfQotCi0gICAgV2Vi
UGxhdGZvcm1Ub3VjaFBvaW50KHVpbnQzMl90IGlkLCBUb3VjaFBvaW50U3RhdGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBzY3JlZW5Qb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IHBvc2l0aW9uKTsKLQotICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCh1aW50MzJfdCBpZCwgVG91
Y2hQb2ludFN0YXRlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2NyZWVuUG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
cmFkaXVzLCBmbG9hdCByb3RhdGlvbkFuZ2xlID0gMC4wLCBmbG9hdCBmb3JjZSA9IDAuMCk7Ci0g
ICAgCi0gICAgdWludDMyX3QgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9Ci0gICAgVG91Y2hQ
b2ludFN0YXRlIHN0YXRlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VG91Y2hQb2ludFN0
YXRlPihtX3N0YXRlKTsgfQotCi0gICAgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcmVlblBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zY3JlZW5Qb3NpdGlvbjsgfQotICAgIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0K
LSAgICBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiByYWRpdXMoKSBjb25zdCB7IHJldHVybiBtX3Jh
ZGl1czsgfQotICAgIGZsb2F0IHJvdGF0aW9uQW5nbGUoKSBjb25zdCB7IHJldHVybiBtX3JvdGF0
aW9uQW5nbGU7IH0KLSAgICBmbG9hdCBmb3JjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2U7IH0K
LQotICAgIHZvaWQgc2V0U3RhdGUoVG91Y2hQb2ludFN0YXRlIHN0YXRlKSB7IG1fc3RhdGUgPSBz
dGF0ZTsgfQotCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7Ci0gICAgc3Rh
dGljIE9wdGlvbmFsPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gZGVjb2RlKElQQzo6RGVjb2RlciYp
OwotCi1wcml2YXRlOgotICAgIHVpbnQzMl90IG1faWQ7Ci0gICAgdWludDMyX3QgbV9zdGF0ZTsK
LSAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3NjcmVlblBvc2l0aW9uOwotICAgIFdlYkNvcmU6Oklu
dFBvaW50IG1fcG9zaXRpb247Ci0gICAgV2ViQ29yZTo6SW50U2l6ZSBtX3JhZGl1czsKLSAgICBm
bG9hdCBtX3JvdGF0aW9uQW5nbGU7Ci0gICAgZmxvYXQgbV9mb3JjZTsKLX07Ci0KLS8vIEZJWE1F
OiBNb3ZlIHRoaXMgY2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KLWNsYXNzIFdlYlRvdWNo
RXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewotcHVibGljOgotICAgIFdlYlRvdWNoRXZlbnQoKSB7
IH0KLSAgICBXZWJUb3VjaEV2ZW50KFR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+
JiYsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Ci0KLSAgICBjb25z
dCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMoKSBjb25zdCB7IHJl
dHVybiBtX3RvdWNoUG9pbnRzOyB9Ci0KLSAgICBib29sIGFsbFRvdWNoUG9pbnRzQXJlUmVsZWFz
ZWQoKSBjb25zdDsKLQotICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwotICAg
IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2Vi
VG91Y2hFdmVudCYpOwotICAKLXByaXZhdGU6Ci0gICAgc3RhdGljIGJvb2wgaXNUb3VjaEV2ZW50
VHlwZShUeXBlKTsKLQotICAgIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+IG1fdG91Y2hQ
b2ludHM7Ci19OwotCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNlbmRpZiAvLyBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogbmFtZXNwYWNl
IFdURiB7CkBAIC01MDgsMjMgKzEyOCw0IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+IHsKICAgICA+OwogfTsKIAotdGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbj4gewotICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6
QnV0dG9uLAotICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbjo6TGVmdEJ1dHRv
biwKLSAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246Ok1pZGRsZUJ1dHRvbiwK
LSAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246OlJpZ2h0QnV0dG9uLAotICAg
ICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbjo6Tm9CdXR0b24KLSAgICA+OwotfTsK
LQotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5
bnRoZXRpY0NsaWNrVHlwZT4gewotICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAg
ICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBlLAotICAgICAgICBX
ZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZTo6Tm9UYXAsCi0gICAgICAg
IFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBlOjpPbmVGaW5nZXJUYXAs
Ci0gICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBlOjpUd29G
aW5nZXJUYXAKLSAgICA+OwotfTsKLQogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcAppbmRleCA4YTZlNDE4Njg4MTgxYWE3ZTM2
NjNkMDUzODcwZGU0YmUwMjhjYmFiLi4yZGUyNjAxNTU5NWEzODNmYjNiMTdlYWY3NDZkMjk2ZjZl
OTk4ODdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudENvbnZlcnNp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAK
QEAgLTI2LDcgKzI2LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViRXZl
bnRDb252ZXJzaW9uLmgiCiAKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYktl
eWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiV2Vi
VG91Y2hFdmVudC5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZlbnQuaCIKIAogI2lmIEVOQUJMRShN
QUNfR0VTVFVSRV9FVkVOVFMpCiAjaW5jbHVkZSAiV2ViR2VzdHVyZUV2ZW50LmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwCmluZGV4IGNjY2I1NjA0MThmMzJmYWQ0
MDU4N2FjMDgzYjk1ZjM5OGViMTM5OWQuLmJjNDMyMjI4NjQ4NGU2YWZkZDQ5MzUzZmFlNmE4ZmIz
Y2Q1ZTY2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwCkBA
IC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldl
YkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2V5Ym9hcmRFdmVudC5oIgogCiAjaW5jbHVkZSAiV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9LZXlwcmVzc0NvbW1hbmQu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjgw
MjlkYzQ2ZGMyNTMxZjVjYzIzNDA5ZGM2ZDJmMTFkNWEzYjQ5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5oCkBAIC0wLDAgKzEsMTExIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IkVkaXRpbmdSYW5nZS5oIgorI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9Db21wb3NpdGlvblVuZGVybGluZS5oPgorCisjaWYgVVNFKEFQUEtJVCkKKyNpbmNsdWRlIDxX
ZWJDb3JlL0tleXByZXNzQ29tbWFuZC5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJLZXlib2FyZEV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKK3B1YmxpYzoKKyAg
ICBXZWJLZXlib2FyZEV2ZW50KCk7CisgICAgfldlYktleWJvYXJkRXZlbnQoKTsKKworI2lmIFVT
RShBUFBLSVQpCisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJv
b2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0Nv
bW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1L
ZXksIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZWxpZiBQTEFU
Rk9STShHVEspCisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5
SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxL
ZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBPcHRpb25hbDxWZWN0b3I8V2ViQ29y
ZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+PiYmLCBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+JiYsIFZl
Y3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNLZXlwYWQsIE9wdGlvblNldDxNb2RpZmll
cj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZWxpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcm
IHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBj
b25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGlu
dCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGhhbmRsZWRCeUlu
cHV0TWV0aG9kLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3Rl
bUtleSwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKKyNlbGlmIFVT
RShMSUJXUEUpCisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5
SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxL
ZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBPcHRpb25hbDxWZWN0b3I8V2ViQ29y
ZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+PiYmLCBPcHRpb25hbDxFZGl0aW5nUmFuZ2U+JiYsIGJv
b2wgaXNLZXlwYWQsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Cisj
ZWxzZQorICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5n
JiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtl
eUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlz
QXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0PE1v
ZGlmaWVyPiwgV2FsbFRpbWUgdGltZXN0YW1wKTsKKyNlbmRpZgorCisgICAgY29uc3QgU3RyaW5n
JiB0ZXh0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0OyB9CisgICAgY29uc3QgU3RyaW5nJiB1bm1v
ZGlmaWVkVGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5tb2RpZmllZFRleHQ7IH0KKyAgICBjb25z
dCBTdHJpbmcmIGtleSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5OyB9CisgICAgY29uc3QgU3RyaW5n
JiBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlOyB9CisgICAgY29uc3QgU3RyaW5nJiBrZXlJ
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9rZXlJZGVudGlmaWVyOyB9CisgICAgaW50MzJf
dCB3aW5kb3dzVmlydHVhbEtleUNvZGUoKSBjb25zdCB7IHJldHVybiBtX3dpbmRvd3NWaXJ0dWFs
S2V5Q29kZTsgfQorICAgIGludDMyX3QgbmF0aXZlVmlydHVhbEtleUNvZGUoKSBjb25zdCB7IHJl
dHVybiBtX25hdGl2ZVZpcnR1YWxLZXlDb2RlOyB9CisgICAgaW50MzJfdCBtYWNDaGFyQ29kZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWFjQ2hhckNvZGU7IH0KKyNpZiBVU0UoQVBQS0lUKSB8fCBVU0Uo
VUlLSVRfS0VZQk9BUkRfQURESVRJT05TKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShMSUJXUEUp
CisgICAgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxl
ZEJ5SW5wdXRNZXRob2Q7IH0KKyNlbmRpZgorI2lmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQ
RSkKKyAgICBjb25zdCBPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxp
bmU+PiYgcHJlZWRpdFVuZGVybGluZXMoKSBjb25zdCB7IHJldHVybiBtX3ByZWVkaXRVbmRlcmxp
bmVzOyB9CisgICAgY29uc3QgT3B0aW9uYWw8RWRpdGluZ1JhbmdlPiYgcHJlZWRpdFNlbGVjdGlv
blJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9wcmVlZGl0U2VsZWN0aW9uUmFuZ2U7IH0KKyNlbmRp
ZgorI2lmIFVTRShBUFBLSVQpCisgICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29t
bWFuZD4mIGNvbW1hbmRzKCkgY29uc3QgeyByZXR1cm4gbV9jb21tYW5kczsgfQorI2VsaWYgUExB
VEZPUk0oR1RLKQorICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb21tYW5kcygpIGNvbnN0IHsg
cmV0dXJuIG1fY29tbWFuZHM7IH0KKyNlbmRpZgorICAgIGJvb2wgaXNBdXRvUmVwZWF0KCkgY29u
c3QgeyByZXR1cm4gbV9pc0F1dG9SZXBlYXQ7IH0KKyAgICBib29sIGlzS2V5cGFkKCkgY29uc3Qg
eyByZXR1cm4gbV9pc0tleXBhZDsgfQorICAgIGJvb2wgaXNTeXN0ZW1LZXkoKSBjb25zdCB7IHJl
dHVybiBtX2lzU3lzdGVtS2V5OyB9CisKKyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBj
b25zdDsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKElQQzo6RGVj
b2RlciYsIFdlYktleWJvYXJkRXZlbnQmKTsKKworICAgIHN0YXRpYyBib29sIGlzS2V5Ym9hcmRF
dmVudFR5cGUoVHlwZSk7CisKK3ByaXZhdGU6CisgICAgU3RyaW5nIG1fdGV4dDsKKyAgICBTdHJp
bmcgbV91bm1vZGlmaWVkVGV4dDsKKyAgICBTdHJpbmcgbV9rZXk7CisgICAgU3RyaW5nIG1fY29k
ZTsKKyAgICBTdHJpbmcgbV9rZXlJZGVudGlmaWVyOworICAgIGludDMyX3QgbV93aW5kb3dzVmly
dHVhbEtleUNvZGUgeyAwIH07CisgICAgaW50MzJfdCBtX25hdGl2ZVZpcnR1YWxLZXlDb2RlIHsg
MCB9OworICAgIGludDMyX3QgbV9tYWNDaGFyQ29kZSB7IDAgfTsKKyNpZiBVU0UoQVBQS0lUKSB8
fCBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKSB8fCBQTEFURk9STShHVEspIHx8IFVTRShM
SUJXUEUpCisgICAgYm9vbCBtX2hhbmRsZWRCeUlucHV0TWV0aG9kIHsgZmFsc2UgfTsKKyNlbmRp
ZgorI2lmIFBMQVRGT1JNKEdUSykgfHwgVVNFKExJQldQRSkKKyAgICBPcHRpb25hbDxWZWN0b3I8
V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+PiBtX3ByZWVkaXRVbmRlcmxpbmVzOworICAg
IE9wdGlvbmFsPEVkaXRpbmdSYW5nZT4gbV9wcmVlZGl0U2VsZWN0aW9uUmFuZ2U7CisjZW5kaWYK
KyNpZiBVU0UoQVBQS0lUKQorICAgIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IG1f
Y29tbWFuZHM7CisjZWxpZiBQTEFURk9STShHVEspCisgICAgVmVjdG9yPFN0cmluZz4gbV9jb21t
YW5kczsKKyNlbmRpZgorICAgIGJvb2wgbV9pc0F1dG9SZXBlYXQgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9pc0tleXBhZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzU3lzdGVtS2V5IHsgZmFsc2Ug
fTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3Vz
ZUV2ZW50LmNwcAppbmRleCA3YjI3MGRjM2RiZTk4ZjYyOTBiODAxNzMzZWZmMzlmOTFhZWU0YTY5
Li44OGJkNTY0NzM0MzlhNzFmNGNiZGViMzBhYTQzN2JjOTRiMGZhMWM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYk1vdXNl
RXZlbnQuaCIKIAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTlhMWI1ZmE4NmI2OGM4NDY0ZDcz
MjcyZjEyMjJlOTA2MWJmODk1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYk1vdXNlRXZlbnQuaApAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKy8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkg
bW92ZSB0byBtYWtlaW5nIHRoZSBXZWJDb3JlL1BsYXRmb3JtRm9vRXZlbnRzIHRyaXZpYWwgY2xh
c3NlcyBzbyB0aGF0CisvLyB3ZSBjYW4gdXNlIHRoZW0gYXMgdGhlIGV2ZW50IHR5cGUuCisKKyNp
bmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk1vdXNlRXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQg
eworcHVibGljOgorICAgIGVudW0gQnV0dG9uIHsKKyAgICAgICAgTGVmdEJ1dHRvbiA9IDAsCisg
ICAgICAgIE1pZGRsZUJ1dHRvbiwKKyAgICAgICAgUmlnaHRCdXR0b24sCisgICAgICAgIE5vQnV0
dG9uID0gLTIKKyAgICB9OworCisgICAgZW51bSBTeW50aGV0aWNDbGlja1R5cGUgeyBOb1RhcCwg
T25lRmluZ2VyVGFwLCBUd29GaW5nZXJUYXAgfTsKKworICAgIFdlYk1vdXNlRXZlbnQoKTsKKwor
I2lmIFBMQVRGT1JNKE1BQykKKyAgICBXZWJNb3VzZUV2ZW50KFR5cGUsIEJ1dHRvbiwgdW5zaWdu
ZWQgc2hvcnQgYnV0dG9ucywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uSW5WaWV3
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwg
ZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBPcHRpb25TZXQ8TW9k
aWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tU
eXBlID0gTm9UYXAsIGludCBldmVudE51bWJlciA9IC0xLCBpbnQgbWVudVR5cGUgPSAwKTsKKyNl
bHNlCisgICAgV2ViTW91c2VFdmVudChUeXBlLCBCdXR0b24sIHVuc2lnbmVkIHNob3J0IGJ1dHRv
bnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbkluVmlldywgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwg
ZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgT3B0aW9uU2V0PE1vZGlmaWVyPiwgV2FsbFRp
bWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1Rh
cCk7CisjZW5kaWYKKworICAgIEJ1dHRvbiBidXR0b24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQorICAgIHVuc2lnbmVkIHNob3J0IGJ1dHRvbnMoKSBj
b25zdCB7IHJldHVybiBtX2J1dHRvbnM7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
cG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9IC8vIFJlbGF0aXZlIHRvIHRo
ZSB2aWV3LgorICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fZ2xvYmFsUG9zaXRpb247IH0KKyAgICBmbG9hdCBkZWx0YVgoKSBjb25z
dCB7IHJldHVybiBtX2RlbHRhWDsgfQorICAgIGZsb2F0IGRlbHRhWSgpIGNvbnN0IHsgcmV0dXJu
IG1fZGVsdGFZOyB9CisgICAgZmxvYXQgZGVsdGFaKCkgY29uc3QgeyByZXR1cm4gbV9kZWx0YVo7
IH0KKyAgICBpbnQzMl90IGNsaWNrQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWNrQ291bnQ7
IH0KKyNpZiBQTEFURk9STShNQUMpCisgICAgaW50MzJfdCBldmVudE51bWJlcigpIGNvbnN0IHsg
cmV0dXJuIG1fZXZlbnROdW1iZXI7IH0KKyAgICBpbnQzMl90IG1lbnVUeXBlRm9yRXZlbnQoKSBj
b25zdCB7IHJldHVybiBtX21lbnVUeXBlRm9yRXZlbnQ7IH0KKyNlbmRpZgorICAgIGRvdWJsZSBm
b3JjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2U7IH0KKyAgICBTeW50aGV0aWNDbGlja1R5cGUg
c3ludGhldGljQ2xpY2tUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8U3ludGhldGlj
Q2xpY2tUeXBlPihtX3N5bnRoZXRpY0NsaWNrVHlwZSk7IH0KKworICAgIHZvaWQgZW5jb2RlKElQ
Qzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBk
ZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViTW91c2VFdmVudCYpOworCitwcml2YXRlOgorICAgIHN0
YXRpYyBib29sIGlzTW91c2VFdmVudFR5cGUoVHlwZSk7CisKKyAgICB1aW50MzJfdCBtX2J1dHRv
biB7IHN0YXRpY19jYXN0PHVpbnQzMl90PihOb0J1dHRvbikgfTsKKyAgICB1bnNpZ25lZCBzaG9y
dCBtX2J1dHRvbnMgeyAwIH07CisgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9wb3NpdGlvbjsgLy8g
UmVsYXRpdmUgdG8gdGhlIHZpZXcuCisgICAgV2ViQ29yZTo6SW50UG9pbnQgbV9nbG9iYWxQb3Np
dGlvbjsKKyAgICBmbG9hdCBtX2RlbHRhWCB7IDAgfTsKKyAgICBmbG9hdCBtX2RlbHRhWSB7IDAg
fTsKKyAgICBmbG9hdCBtX2RlbHRhWiB7IDAgfTsKKyAgICBpbnQzMl90IG1fY2xpY2tDb3VudCB7
IDAgfTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgaW50MzJfdCBtX2V2ZW50TnVtYmVyIHsgLTEg
fTsKKyAgICBpbnQzMl90IG1fbWVudVR5cGVGb3JFdmVudCB7IDAgfTsKKyNlbmRpZgorICAgIGRv
dWJsZSBtX2ZvcmNlIHsgMCB9OworICAgIHVpbnQzMl90IG1fc3ludGhldGljQ2xpY2tUeXBlIHsg
Tm9UYXAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1
dHRvbj4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYktpdDo6
V2ViTW91c2VFdmVudDo6QnV0dG9uLAorICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1
dHRvbjo6TGVmdEJ1dHRvbiwKKyAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246
Ok1pZGRsZUJ1dHRvbiwKKyAgICAgICAgV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpCdXR0b246OlJp
Z2h0QnV0dG9uLAorICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OkJ1dHRvbjo6Tm9CdXR0
b24KKyAgICA+OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6Oldl
Yk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tU
eXBlLAorICAgICAgICBXZWJLaXQ6OldlYk1vdXNlRXZlbnQ6OlN5bnRoZXRpY0NsaWNrVHlwZTo6
Tm9UYXAsCisgICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGljQ2xpY2tUeXBl
OjpPbmVGaW5nZXJUYXAsCisgICAgICAgIFdlYktpdDo6V2ViTW91c2VFdmVudDo6U3ludGhldGlj
Q2xpY2tUeXBlOjpUd29GaW5nZXJUYXAKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RG
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQbGF0Zm9ybVRvdWNoUG9pbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGxhdGZvcm1Ub3VjaFBvaW50LmNwcAppbmRl
eCA0NWEyMGU5YzM0ZTg3ODMzYzc2MDBjMDM5NTY2ZjBlOTk0MGVmOWZmLi5jZTc0YWJmZjkxY2M2
OWNiMDkyODQzNDkzMjRmYTQ4MDhhNjNmZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQbGF0Zm9ybVRvdWNoUG9pbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKICAqLwogCiAjaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJUb3Vj
aEV2ZW50LmgiCiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAhUExBVEZPUk0oSU9TX0ZB
TUlMWSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcAppbmRleCA4MmFkYTc3
ZjU4NzEzNzkwMTI3OGI4ODgyMThlOWJiZDBmM2U3YzBhLi42NTI0YTE5OWUwMmMzMGUxMmQ0NTNl
NTMwYmY3ODk2MjA1OTgyYmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJU
b3VjaEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNw
cApAQCAtMjQsMTQgKzI0LDE2IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgogCi0jaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisKIFdlYlRvdWNoRXZlbnQ6OldlYlRv
dWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2lu
dD4mJiB0b3VjaFBvaW50cywgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQog
ICAgICwgbV90b3VjaFBvaW50cyhXVEZNb3ZlKHRvdWNoUG9pbnRzKSkKQEAgLTYxLDcgKzYzLDE5
IEBAIGJvb2wgV2ViVG91Y2hFdmVudDo6aXNUb3VjaEV2ZW50VHlwZShUeXBlIHR5cGUpCiB7CiAg
ICAgcmV0dXJuIHR5cGUgPT0gVG91Y2hTdGFydCB8fCB0eXBlID09IFRvdWNoTW92ZSB8fCB0eXBl
ID09IFRvdWNoRW5kIHx8IHR5cGUgPT0gVG91Y2hDYW5jZWw7CiB9Ci0gICAgCisKKyNlbmRpZiAv
LyAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworYm9vbCBXZWJUb3VjaEV2ZW50OjphbGxUb3VjaFBv
aW50c0FyZVJlbGVhc2VkKCkgY29uc3QKK3sKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHRvdWNoUG9p
bnQgOiB0b3VjaFBvaW50cygpKSB7CisgICAgICAgIGlmICh0b3VjaFBvaW50LnN0YXRlKCkgIT0g
V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkICYmIHRvdWNoUG9pbnQuc3RhdGUo
KSAhPSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoQ2FuY2VsbGVkKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpICYmICFQTEFURk9S
TShJT1NfRkFNSUxZKQorI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJUb3VjaEV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc5YjA0OWM1ZWQ3YzAzN2JjODNlMzU2
NmExZjQ3MGI0YTU4NzZjNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlRvdWNoRXZlbnQuaApAQCAtMCwwICsxLDIxMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvSW50UG9pbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKy8vIEZJWE1FOiBIYXZp
bmcgIlBsYXRmb3JtIiBpbiB0aGUgbmFtZSBtYWtlcyBpdCBzb3VuZCBsaWtlIHRoaXMgZXZlbnQg
aXMgcGxhdGZvcm0tc3BlY2lmaWMgb3IKKy8vIGxvdy1sZXZlbCBpbiBzb21lIHdheS4gVGhhdCBk
b2Vzbid0IHNlZW0gdG8gYmUgdGhlIGNhc2UuCitjbGFzcyBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQg
eworcHVibGljOgorICAgIGVudW0gVG91Y2hQb2ludFN0YXRlIHsKKyAgICAgICAgVG91Y2hSZWxl
YXNlZCwKKyAgICAgICAgVG91Y2hQcmVzc2VkLAorICAgICAgICBUb3VjaE1vdmVkLAorICAgICAg
ICBUb3VjaFN0YXRpb25hcnksCisgICAgICAgIFRvdWNoQ2FuY2VsbGVkCisgICAgfTsKKworICAg
IGVudW0gY2xhc3MgVG91Y2hUeXBlIHsKKyAgICAgICAgRGlyZWN0LAorICAgICAgICBTdHlsdXMK
KyAgICB9OworCisgICAgV2ViUGxhdGZvcm1Ub3VjaFBvaW50KCkgPSBkZWZhdWx0OworICAgIFdl
YlBsYXRmb3JtVG91Y2hQb2ludCh1bnNpZ25lZCBpZGVudGlmaWVyLCBXZWJDb3JlOjpJbnRQb2lu
dCBsb2NhdGlvbiwgVG91Y2hQb2ludFN0YXRlIHBoYXNlKQorICAgICAgICA6IG1faWRlbnRpZmll
cihpZGVudGlmaWVyKQorICAgICAgICAsIG1fbG9jYXRpb24obG9jYXRpb24pCisgICAgICAgICwg
bV9waGFzZShwaGFzZSkKKyAgICB7CisgICAgfQorCisgICAgdW5zaWduZWQgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIFdlYkNvcmU6OkludFBvaW50IGxv
Y2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhdGlvbjsgfQorICAgIFRvdWNoUG9pbnRTdGF0
ZSBwaGFzZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRvdWNoUG9pbnRTdGF0ZT4obV9w
aGFzZSk7IH0KKyAgICBUb3VjaFBvaW50U3RhdGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBwaGFz
ZSgpOyB9CisKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKKyAgICB2b2lkIHNldFJhZGl1
c1goZG91YmxlIHJhZGl1c1gpIHsgbV9yYWRpdXNYID0gcmFkaXVzWDsgfQorICAgIGRvdWJsZSBy
YWRpdXNYKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXNYOyB9CisgICAgdm9pZCBzZXRSYWRpdXNZ
KGRvdWJsZSByYWRpdXNZKSB7IG1fcmFkaXVzWSA9IHJhZGl1c1k7IH0KKyAgICBkb3VibGUgcmFk
aXVzWSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFkaXVzWTsgfQorICAgIHZvaWQgc2V0Um90YXRpb25B
bmdsZShkb3VibGUgcm90YXRpb25BbmdsZSkgeyBtX3JvdGF0aW9uQW5nbGUgPSByb3RhdGlvbkFu
Z2xlOyB9CisgICAgZG91YmxlIHJvdGF0aW9uQW5nbGUoKSBjb25zdCB7IHJldHVybiBtX3JvdGF0
aW9uQW5nbGU7IH0KKyAgICB2b2lkIHNldEZvcmNlKGRvdWJsZSBmb3JjZSkgeyBtX2ZvcmNlID0g
Zm9yY2U7IH0KKyAgICBkb3VibGUgZm9yY2UoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlOyB9Cisg
ICAgdm9pZCBzZXRBbHRpdHVkZUFuZ2xlKGRvdWJsZSBhbHRpdHVkZUFuZ2xlKSB7IG1fYWx0aXR1
ZGVBbmdsZSA9IGFsdGl0dWRlQW5nbGU7IH0KKyAgICBkb3VibGUgYWx0aXR1ZGVBbmdsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fYWx0aXR1ZGVBbmdsZTsgfQorICAgIHZvaWQgc2V0QXppbXV0aEFuZ2xl
KGRvdWJsZSBhemltdXRoQW5nbGUpIHsgbV9hemltdXRoQW5nbGUgPSBhemltdXRoQW5nbGU7IH0K
KyAgICBkb3VibGUgYXppbXV0aEFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9hemltdXRoQW5nbGU7
IH0KKyAgICB2b2lkIHNldFRvdWNoVHlwZShUb3VjaFR5cGUgdG91Y2hUeXBlKSB7IG1fdG91Y2hU
eXBlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRvdWNoVHlwZSk7IH0KKyAgICBUb3VjaFR5cGUg
dG91Y2hUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VG91Y2hUeXBlPihtX3RvdWNo
VHlwZSk7IH0KKyNlbmRpZgorCisgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7
CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gZGVjb2RlKElQQzo6
RGVjb2RlciYpOworCitwcml2YXRlOgorICAgIHVuc2lnbmVkIG1faWRlbnRpZmllciB7IDAgfTsK
KyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2xvY2F0aW9uOworICAgIHVpbnQzMl90IG1fcGhhc2Ug
eyBUb3VjaFJlbGVhc2VkIH07CisjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCisgICAgZG91
YmxlIG1fcmFkaXVzWCB7IDAgfTsKKyAgICBkb3VibGUgbV9yYWRpdXNZIHsgMCB9OworICAgIGRv
dWJsZSBtX3JvdGF0aW9uQW5nbGUgeyAwIH07CisgICAgZG91YmxlIG1fZm9yY2UgeyAwIH07Cisg
ICAgZG91YmxlIG1fYWx0aXR1ZGVBbmdsZSB7IDAgfTsKKyAgICBkb3VibGUgbV9hemltdXRoQW5n
bGUgeyAwIH07CisgICAgdWludDMyX3QgbV90b3VjaFR5cGUgeyBzdGF0aWNfY2FzdDx1aW50MzJf
dD4oVG91Y2hUeXBlOjpEaXJlY3QpIH07CisjZW5kaWYKK307CisKK2NsYXNzIFdlYlRvdWNoRXZl
bnQgOiBwdWJsaWMgV2ViRXZlbnQgeworcHVibGljOgorICAgIFdlYlRvdWNoRXZlbnQoKSA9IGRl
ZmF1bHQ7CisgICAgV2ViVG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBPcHRpb25TZXQ8
TW9kaWZpZXI+IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBjb25zdCBWZWN0b3I8V2Vi
UGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0
aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlzR2VzdHVyZSwgZmxvYXQgZ2VzdHVyZVNj
YWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCisgICAgICAgIDogV2ViRXZlbnQodHlwZSwgbW9k
aWZpZXJzLCB0aW1lc3RhbXApCisgICAgICAgICwgbV90b3VjaFBvaW50cyh0b3VjaFBvaW50cykK
KyAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQorICAgICAgICAsIG1fY2FuUHJldmVudE5h
dGl2ZUdlc3R1cmVzKHRydWUpCisgICAgICAgICwgbV9pc1BvdGVudGlhbFRhcChpc1BvdGVudGlh
bFRhcCkKKyAgICAgICAgLCBtX2lzR2VzdHVyZShpc0dlc3R1cmUpCisgICAgICAgICwgbV9nZXN0
dXJlU2NhbGUoZ2VzdHVyZVNjYWxlKQorICAgICAgICAsIG1fZ2VzdHVyZVJvdGF0aW9uKGdlc3R1
cmVSb3RhdGlvbikKKyAgICB7CisgICAgICAgIEFTU0VSVCh0eXBlID09IFRvdWNoU3RhcnQgfHwg
dHlwZSA9PSBUb3VjaE1vdmUgfHwgdHlwZSA9PSBUb3VjaEVuZCB8fCB0eXBlID09IFRvdWNoQ2Fu
Y2VsKTsKKyAgICB9CisKKyAgICBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYg
dG91Y2hQb2ludHMoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CisKKyAgICBXZWJD
b3JlOjpJbnRQb2ludCBwb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0KKwor
ICAgIGJvb2wgaXNQb3RlbnRpYWxUYXAoKSBjb25zdCB7IHJldHVybiBtX2lzUG90ZW50aWFsVGFw
OyB9CisKKyAgICBib29sIGlzR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNHZXN0dXJlOyB9
CisgICAgZmxvYXQgZ2VzdHVyZVNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9nZXN0dXJlU2NhbGU7
IH0KKyAgICBmbG9hdCBnZXN0dXJlUm90YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2dlc3R1cmVS
b3RhdGlvbjsgfQorCisgICAgYm9vbCBjYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMoKSBjb25zdCB7
IHJldHVybiBtX2NhblByZXZlbnROYXRpdmVHZXN0dXJlczsgfQorICAgIHZvaWQgc2V0Q2FuUHJl
dmVudE5hdGl2ZUdlc3R1cmVzKGJvb2wgY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzKSB7IG1fY2Fu
UHJldmVudE5hdGl2ZUdlc3R1cmVzID0gY2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzOyB9CisKKyAg
ICBib29sIGFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSBjb25zdDsKKworICAgIHZvaWQgZW5j
b2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViVG91Y2hFdmVudCYpOworICAgIAorcHJpdmF0
ZToKKyAgICBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiBtX3RvdWNoUG9pbnRzOworICAg
IAorICAgIFdlYkNvcmU6OkludFBvaW50IG1fcG9zaXRpb247CisgICAgYm9vbCBtX2NhblByZXZl
bnROYXRpdmVHZXN0dXJlcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzUG90ZW50aWFsVGFwIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1faXNHZXN0dXJlIHsgZmFsc2UgfTsKKyAgICBmbG9hdCBtX2dl
c3R1cmVTY2FsZSB7IDAgfTsKKyAgICBmbG9hdCBtX2dlc3R1cmVSb3RhdGlvbiB7IDAgfTsKK307
CisKKyNlbHNlIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQorCitjbGFzcyBXZWJQbGF0Zm9ybVRv
dWNoUG9pbnQgeworcHVibGljOgorICAgIGVudW0gVG91Y2hQb2ludFN0YXRlIHsKKyAgICAgICAg
VG91Y2hSZWxlYXNlZCwKKyAgICAgICAgVG91Y2hQcmVzc2VkLAorICAgICAgICBUb3VjaE1vdmVk
LAorICAgICAgICBUb3VjaFN0YXRpb25hcnksCisgICAgICAgIFRvdWNoQ2FuY2VsbGVkCisgICAg
fTsKKworICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCgpCisgICAgICAgIDogbV9yb3RhdGlvbkFu
Z2xlKDAuMCksIG1fZm9yY2UoMC4wKSB7IH0KKworICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludCh1
aW50MzJfdCBpZCwgVG91Y2hQb2ludFN0YXRlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Ny
ZWVuUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbik7CisKKyAgICBX
ZWJQbGF0Zm9ybVRvdWNoUG9pbnQodWludDMyX3QgaWQsIFRvdWNoUG9pbnRTdGF0ZSwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIHNjcmVlblBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHJhZGl1cywgZmxvYXQgcm90YXRp
b25BbmdsZSA9IDAuMCwgZmxvYXQgZm9yY2UgPSAwLjApOworICAgIAorICAgIHVpbnQzMl90IGlk
KCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQorICAgIFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFRvdWNoUG9pbnRTdGF0ZT4obV9zdGF0ZSk7IH0KKwor
ICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JlZW5Qb3NpdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fc2NyZWVuUG9zaXRpb247IH0KKyAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9z
aXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CisgICAgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgcmFkaXVzKCkgY29uc3QgeyByZXR1cm4gbV9yYWRpdXM7IH0KKyAgICBmbG9hdCBy
b3RhdGlvbkFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9yb3RhdGlvbkFuZ2xlOyB9CisgICAgZmxv
YXQgZm9yY2UoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlOyB9CisKKyAgICB2b2lkIHNldFN0YXRl
KFRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSkgeyBtX3N0YXRlID0gc3RhdGU7IH0KKworICAgIHZvaWQg
ZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJQbGF0
Zm9ybVRvdWNoUG9pbnQ+IGRlY29kZShJUEM6OkRlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICB1
aW50MzJfdCBtX2lkOworICAgIHVpbnQzMl90IG1fc3RhdGU7CisgICAgV2ViQ29yZTo6SW50UG9p
bnQgbV9zY3JlZW5Qb3NpdGlvbjsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3Bvc2l0aW9uOwor
ICAgIFdlYkNvcmU6OkludFNpemUgbV9yYWRpdXM7CisgICAgZmxvYXQgbV9yb3RhdGlvbkFuZ2xl
OworICAgIGZsb2F0IG1fZm9yY2U7Cit9OworCitjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVibGlj
IFdlYkV2ZW50IHsKK3B1YmxpYzoKKyAgICBXZWJUb3VjaEV2ZW50KCkgeyB9CisgICAgV2ViVG91
Y2hFdmVudChUeXBlLCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmLCBPcHRpb25TZXQ8
TW9kaWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOworCisgICAgY29uc3QgVmVjdG9yPFdlYlBs
YXRmb3JtVG91Y2hQb2ludD4mIHRvdWNoUG9pbnRzKCkgY29uc3QgeyByZXR1cm4gbV90b3VjaFBv
aW50czsgfQorCisgICAgYm9vbCBhbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkgY29uc3Q7CisK
KyAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgV0FSTl9V
TlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYlRvdWNoRXZlbnQmKTsK
KworcHJpdmF0ZToKKyAgICBzdGF0aWMgYm9vbCBpc1RvdWNoRXZlbnRUeXBlKFR5cGUpOworCisg
ICAgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gbV90b3VjaFBvaW50czsKK307CisKKyNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQorI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVO
VFMpCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2
ZW50LmNwcAppbmRleCAxMTYwZTc2MWUzYmVkNDIzZWRlZTc3ZWZhOGQ0ZWEwZTY1YmNkOTE3Li45
ZDcyNWVkYjY3MjE0Y2RjMWM4NTY0ZmJmYTFjYzE0OGIyMjlkNzdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJXaGVlbEV2ZW50LmNwcApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZl
bnQuaCIKIAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCkBAIC0zOSwxMSAr
MzksNiBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50
UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludAogICAgICwgbV9kZWx0YShkZWx0YSkKICAg
ICAsIG1fd2hlZWxUaWNrcyh3aGVlbFRpY2tzKQogICAgICwgbV9ncmFudWxhcml0eShncmFudWxh
cml0eSkKLSAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQotI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgICwgbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKGZhbHNlKQot
ICAgICwgbV9zY3JvbGxDb3VudCgwKQotI2VuZGlmCiB7CiAgICAgQVNTRVJUKGlzV2hlZWxFdmVu
dFR5cGUodHlwZSkpOwogfQpAQCAtNTYsOSArNTEsOSBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVl
bEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2lu
dAogICAgICwgbV9kZWx0YShkZWx0YSkKICAgICAsIG1fd2hlZWxUaWNrcyh3aGVlbFRpY2tzKQog
ICAgICwgbV9ncmFudWxhcml0eShncmFudWxhcml0eSkKLSAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0
ZWRGcm9tRGV2aWNlKGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkKICAgICAsIG1fcGhhc2Uo
cGhhc2UpCiAgICAgLCBtX21vbWVudHVtUGhhc2UobW9tZW50dW1QaGFzZSkKKyAgICAsIG1fZGly
ZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkKICAg
ICAsIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyhoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFz
KQogICAgICwgbV9zY3JvbGxDb3VudChzY3JvbGxDb3VudCkKICAgICAsIG1fdW5hY2NlbGVyYXRl
ZFNjcm9sbGluZ0RlbHRhKHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSkKQEAgLTczLDcgKzY4
LDYgQEAgV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBv
aW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKICAgICAsIG1fZGVsdGEoZGVsdGEpCiAgICAg
LCBtX3doZWVsVGlja3Mod2hlZWxUaWNrcykKICAgICAsIG1fZ3JhbnVsYXJpdHkoZ3JhbnVsYXJp
dHkpCi0gICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZShmYWxzZSkKICAgICAsIG1f
cGhhc2UocGhhc2UpCiAgICAgLCBtX21vbWVudHVtUGhhc2UobW9tZW50dW1QaGFzZSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDk2NzA2NDAzZmNjNzA5
NzY0MzAyZmZmMTQ1OTAxZmI0MWNjYzFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViV2hlZWxFdmVudC5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYldoZWVsRXZlbnQgOiBwdWJsaWMg
V2ViRXZlbnQgeworcHVibGljOgorICAgIGVudW0gR3JhbnVsYXJpdHkgeworICAgICAgICBTY3Jv
bGxCeVBhZ2VXaGVlbEV2ZW50LAorICAgICAgICBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudAorICAg
IH07CisKKyAgICBlbnVtIFBoYXNlIHsKKyAgICAgICAgUGhhc2VOb25lICAgICAgICA9IDAsCisg
ICAgICAgIFBoYXNlQmVnYW4gICAgICAgPSAxIDw8IDAsCisgICAgICAgIFBoYXNlU3RhdGlvbmFy
eSAgPSAxIDw8IDEsCisgICAgICAgIFBoYXNlQ2hhbmdlZCAgICAgPSAxIDw8IDIsCisgICAgICAg
IFBoYXNlRW5kZWQgICAgICAgPSAxIDw8IDMsCisgICAgICAgIFBoYXNlQ2FuY2VsbGVkICAgPSAx
IDw8IDQsCisgICAgICAgIFBoYXNlTWF5QmVnaW4gICAgPSAxIDw8IDUsCisgICAgfTsKKworICAg
IFdlYldoZWVsRXZlbnQoKSA9IGRlZmF1bHQ7CisKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBPcHRpb25TZXQ8TW9k
aWZpZXI+LCBXYWxsVGltZSB0aW1lc3RhbXApOworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdl
YldoZWVsRXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVs
YXJpdHksIGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSwgUGhhc2UgbW9t
ZW50dW1QaGFzZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3Jv
bGxDb3VudCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5n
RGVsdGEsIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZWxpZiBQ
TEFURk9STShHVEspIHx8IFVTRShMSUJXUEUpCisgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBn
bG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwg
R3JhbnVsYXJpdHksIE9wdGlvblNldDxNb2RpZmllcj4sIFdhbGxUaW1lIHRpbWVzdGFtcCk7Cisj
ZW5kaWYKKworICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9wb3NpdGlvbjsgfQorICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxQb3NpdGlvbjsgfQorICAgIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSBkZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsdGE7IH0KKyAgICBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxUaWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fd2hl
ZWxUaWNrczsgfQorICAgIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8R3JhbnVsYXJpdHk+KG1fZ3JhbnVsYXJpdHkpOyB9CisgICAgYm9vbCBkaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2RpcmVjdGlvbkludmVy
dGVkRnJvbURldmljZTsgfQorICAgIFBoYXNlIHBoYXNlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8UGhhc2U+KG1fcGhhc2UpOyB9CisgICAgUGhhc2UgbW9tZW50dW1QaGFzZSgpIGNvbnN0
IHsgcmV0dXJuIHN0YXRpY19jYXN0PFBoYXNlPihtX21vbWVudHVtUGhhc2UpOyB9CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzOyB9CisgICAgdWludDMyX3Qgc2Ny
b2xsQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbENvdW50OyB9CisgICAgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEoKSBjb25zdCB7IHJl
dHVybiBtX3VuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YTsgfQorI2VuZGlmCisKKyAgICB2b2lk
IGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVU
VVJOIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYldoZWVsRXZlbnQmKTsKKworcHJpdmF0
ZToKKyAgICBzdGF0aWMgYm9vbCBpc1doZWVsRXZlbnRUeXBlKFR5cGUpOworCisgICAgV2ViQ29y
ZTo6SW50UG9pbnQgbV9wb3NpdGlvbjsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2dsb2JhbFBv
c2l0aW9uOworICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX2RlbHRhOworICAgIFdlYkNvcmU6OkZs
b2F0U2l6ZSBtX3doZWVsVGlja3M7CisgICAgdWludDMyX3QgbV9ncmFudWxhcml0eSB7IFNjcm9s
bEJ5UGFnZVdoZWVsRXZlbnQgfTsKKyAgICB1aW50MzJfdCBtX3BoYXNlIHsgUGhhc2U6OlBoYXNl
Tm9uZSB9OworICAgIHVpbnQzMl90IG1fbW9tZW50dW1QaGFzZSB7IFBoYXNlOjpQaGFzZU5vbmUg
fTsKKyAgICBib29sIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlIHsgZmFsc2UgfTsKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBib29sIG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyB7
IGZhbHNlIH07CisgICAgdWludDMyX3QgbV9zY3JvbGxDb3VudCB7IDAgfTsKKyAgICBXZWJDb3Jl
OjpGbG9hdFNpemUgbV91bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGE7CisjZW5kaWYKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Z3RrL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50
RmFjdG9yeS5oCmluZGV4IDM1OGRjNWRkMzhiOGVhZjA5OTI3ODc5MDdmM2JjNzRmMTRlMDU1OGYu
LjE5Zjg4NmFkNTZjOTc2NmQ3ZWJkOTk4OWM1Y2FkYTk2YTA5ZTYwZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmgKQEAgLTI2LDcgKzI2LDEzIEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLZXlib2Fy
ZEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIldlYldoZWVs
RXZlbnQuaCIKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisjaW5jbHVkZSAiV2ViVG91Y2hF
dmVudC5oIgorI2VuZGlmCiAKICNpZiBVU0UoR1RLNCkKIHR5cGVkZWYgc3RydWN0IF9HZGtFdmVu
dCBHZGtFdmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NF
dmVudEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3Rv
cnkuaAppbmRleCAxMzhmZWFhMjUxOTJjMWE3MzhkNGJiOTQwMzljZTNhODZmYTZlMmNkLi4xZTc4
OGU2MGE3NmM1NWVlNDk1OTUxNWVlZDFhZjJiOGE0MWUyODdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvaW9zL1dlYklPU0V2ZW50RmFjdG9yeS5oCkBAIC0yNyw3ICsyNyw4IEBACiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogCi0jaW1wb3J0ICJXZWJFdmVudC5oIgorI2ltcG9ydCAi
V2ViS2V5Ym9hcmRFdmVudC5oIgorI2ltcG9ydCAiV2ViTW91c2VFdmVudC5oIgogI2ltcG9ydCA8
VUlLaXQvVUlLaXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViRXZlbnQuaD4KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYlBsYXRmb3JtVG91Y2hQb2ludElPUy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViUGxhdGZvcm1Ub3VjaFBvaW50SU9TLmNwcApp
bmRleCA3YjVlYjM3Mjg4MGQ4NjYyNTQ0MzM0Y2Q0Njk3Mjc2ZDU0M2RlNDViLi4yYTlkYjRmOGFj
YWZlOWQ2NGQ1ZDRlYmQ5OTEzYWExNjFlYTBmNGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9pb3MvV2ViUGxhdGZvcm1Ub3VjaFBvaW50SU9TLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9pb3MvV2ViUGxhdGZvcm1Ub3VjaFBvaW50SU9TLmNwcApAQCAtMjQsNyArMjQs
NyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgor
I2luY2x1ZGUgIldlYlRvdWNoRXZlbnQuaCIKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJUb3VjaEV2ZW50SU9TLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJUb3VjaEV2ZW50SU9TLmNwcAppbmRleCA0
NWE1NmViM2IwZmRhMTNjM2I3OGQ1NzU5NGEwMDkyZTRlMTg2NmY2Li5lNDBhNmUxNzJiZmQyYjc1
MDc2ZmQ0MDUzZGE2NDNlYmFiOWViODFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9pb3MvV2ViVG91Y2hFdmVudElPUy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L1dlYlRvdWNoRXZlbnRJT1MuY3BwCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVu
dC5oIgogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvbGlid3BlL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbGlid3BlL1dlYkV2ZW50RmFjdG9yeS5oCmluZGV4IDRiNzg3OTRiM2Q0NWJmMzhmNzMwNDQ4
YThjMWVlODNhNWE1MWJhYTEuLmVkZTFkM2ViMTMxZTkxYTJkOTQ4N2UzMTgwMTQzMGMwNDJlMzBl
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2xpYndwZS9XZWJFdmVudEZhY3Rv
cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saWJ3cGUvV2ViRXZlbnRGYWN0b3J5LmgK
QEAgLTI1LDcgKzI1LDEzIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQu
aCIKKyNpbmNsdWRlICJXZWJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViTW91c2VFdmVu
dC5oIgorI2luY2x1ZGUgIldlYldoZWVsRXZlbnQuaCIKKworI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCisjaW5jbHVkZSAiV2ViVG91Y2hFdmVudC5oIgorI2VuZGlmCiAKIHN0cnVjdCB3cGVfaW5w
dXRfYXhpc19ldmVudDsKIHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1t
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5tbQpp
bmRleCA5MjQxMDc2ODk4MmIxYjA0NjkxYmVjMmRlMWY2YzMxNWFlNjc0MDEzLi5jMWQyMWQ4MWI0
MjQyNDJiMzRiZjM4ZWZhYWFlNmU1Y2JjZGJjMWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0KQEAgLTI4LDcgKzI4LDYg
QEAKIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAKLSNpbXBvcnQgIldlYkV2ZW50
LmgiCiAjaW1wb3J0ICJXZWJHZXN0dXJlRXZlbnQuaCIKICNpbXBvcnQgPFdlYkNvcmUvSW50UG9p
bnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkuaAppbmRleCA5Mjk3MmZjYThjNGVj
NTYzMTE5ZWYzZGE5OTRhZTU2NWJlZmNjNDkxLi5lNjQ1NGFiYjU1MTJhZDU1ZmFjNGE1OTY3MDIx
ZmIyOTg5ZDliN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZl
bnRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9y
eS5oCkBAIC0yNSw3ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW1wb3J0ICJXZWJFdmVu
dC5oIgorI2ltcG9ydCAiV2ViS2V5Ym9hcmRFdmVudC5oIgorI2ltcG9ydCAiV2ViTW91c2VFdmVu
dC5oIgorI2ltcG9ydCAiV2ViV2hlZWxFdmVudC5oIgogCiAjaWYgVVNFKEFQUEtJVCkKICNpZiBk
ZWZpbmVkKF9fT0JKQ19fKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dl
Ykdlc3R1cmVFdmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVu
dC5oCmluZGV4IGUyZDE5MjU0NTMyOGQwNTUwYTBiOGI2NmMzYjBiOTg1ODJmOGVhNjAuLjU0YmU0
MWNmZTAwMzg3MGJlN2NmMTUwMTIxNjc5NDRmMjhiMWE5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYkdlc3R1cmVFdmVudF9o
Ci0jZGVmaW5lIFdlYkdlc3R1cmVFdmVudF9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShN
QUNfR0VTVFVSRV9FVkVOVFMpCiAKQEAgLTczLDUgKzcyLDMgQEAgcHJpdmF0ZToKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKLQot
I2VuZGlmIC8vIFdlYkdlc3R1cmVFdmVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC93aW4vV2ViRXZlbnRGYWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93aW4vV2Vi
RXZlbnRGYWN0b3J5LmgKaW5kZXggOWUyNmMwZTdhNjQzOTRlOWRkOTVjNDFmOTcyZGZkMGRiYjA0
M2ExYi4uOWUwMzE5MTZkNjVkZDFhM2Y3NDA2MjQ3OGIzZWFhZDZjNWUwNjA2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvd2luL1dlYkV2ZW50RmFjdG9yeS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL3dpbi9XZWJFdmVudEZhY3RvcnkuaApAQCAtMjYsNyArMjYsMTQgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgIldlYktl
eWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiV2Vi
V2hlZWxFdmVudC5oIgorCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNpbmNsdWRlICJXZWJU
b3VjaEV2ZW50LmgiCisjZW5kaWYKKwogI2luY2x1ZGUgPHdpbmRvd3MuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2
aWdhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRp
b25DbGllbnQuaAppbmRleCAxNTdlZGE4OGRjZTgxZTc5NzQ4M2Y3YjcxZDY5Y2I1OWZmNDdkNTJj
Li4wNjFlMTg2ZGJlODg2YTA3NDIyYmY4M2I3YWZjZmNiYzZhYzllNmFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKQEAgLTMzLDcg
KzMzLDYgQEAKICNpbmNsdWRlICJQbHVnaW5Nb2R1bGVJbmZvLmgiCiAjaW5jbHVkZSAiUHJvY2Vz
c1Rlcm1pbmF0aW9uUmVhc29uLmgiCiAjaW5jbHVkZSAiU2FtZURvY3VtZW50TmF2aWdhdGlvblR5
cGUuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZyYW1lUG9saWN5TGlz
dGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElQb2xpY3lDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElQb2xpY3lDbGllbnQuaAppbmRleCA2YWU4ZTc1MjA1ZmZmYzg2NTJmNGY5YjgzYmIz
ZGUzMGVlNmNmYWYyLi43ZDJlOTM0NDYyY2YzYmRjMTlhMTliN2RkMzFhMGMyYTljZWJlZDRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUG9saWN5Q2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBvbGljeUNsaWVudC5oCkBAIC0y
NSw3ICsyNSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNp
bmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lTG9hZGVyVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0UHJpdmF0ZS5oCmluZGV4IGY5NDE0
YjkxZjNlYjlkNTg2YjlhMDNmNWI1YTk3OWZmMzczZTgxNTUuLmZiOGQxYzUxOGU3Nzk4NGEzNTg4
NWY1OWVjOWU0YzlmYmQwMjFlNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRQcml2YXRlLmgKQEAgLTI1LDggKzI1LDggQEAKIAogI3ByYWdtYSBvbmNl
CiAKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYktpdE5hdmlnYXRpb25BY3Rp
b24uaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUxvYWRlclR5cGVzLmg+CiAKIHVuc2lnbmVkIHRvUGxhdGZvcm1Nb2RpZmllcnMoT3B0aW9uU2V0
PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmgKaW5kZXggMmQ4
N2Y5NWMyNGVjNWEzOWI3ZjEwZGU2YWE1NWVkZTgyNmExNjg4YS4uNGQ1N2JhN2M4MDEyNmNmMTU4
NzM0ZGRmZDdhM2U4MzYwMjYwZjYxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaApAQCAtMjUsNyArMjUs
NyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAi
V2ViV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgPHdwZS93cGUuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVs
YXRlZElucHV0RGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlv
bi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaAppbmRleCA1MWQ1NDAxZGUwMDQ4YzgzZGM5Yjkx
YWE3YTE5YzA4NTZiYTFhMjJmLi43ZDZmMjIwM2EzYmQzNzEyN2YzYjQ3ZTk0OGNmNjAwYjlhZDY4
OTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVs
YXRlZElucHV0RGlzcGF0Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9t
YXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgKQEAgLTI3LDggKzI3LDggQEAKIAogI2lm
IEVOQUJMRShXRUJEUklWRVJfQUNUSU9OU19BUEkpCiAKLSNpbmNsdWRlICJXZWJFdmVudC5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9J
bnRQb2ludC5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3NjIxZjg3NGMwMTNhMjQ4NWVmNmUwYWMz
Nzk1NmRmODhmZTljOWVhLi5iZTQ5YjEyODBkMDdlODgwN2FhYjViMTZhMGE1NmExMmY5OWRkM2Y0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEwNCw3ICsx
MDQsNiBAQAogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51UHJveHkuaCIKICNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJFZGl0Q29tbWFuZFByb3h5LmgiCi0j
aW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJFdmVudENvbnZlcnNpb24uaCIKICNp
bmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5LmgiCkBAIC0xMTIsNiArMTExLDcgQEAKICNpbmNsdWRlICJXZWJJ
bWFnZS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViSW5z
cGVjdG9yVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiV2ViS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1
ZGUgIldlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCIKICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9uU3Rh
dGUuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9Qb2ludGVyTG9ja01hbmFnZXIuaAppbmRleCA1MWQw
MDFiNWY3OTNkZTU4ODQxYTNkODQ5M2Y3ZmEwZjk3M2FhYzhlLi45YmMzM2JiYjlhNTMyNWVlZTE5
MTgzYjM5M2NiMDkwMjgyYWI5MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9ndGsvUG9pbnRlckxvY2tNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL1BvaW50ZXJMb2NrTWFuYWdlci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25j
ZQogCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9GbG9hdFBvaW50Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlR2Vz
dHVyZVJlY29nbml6ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZUdl
c3R1cmVSZWNvZ25pemVyLm1tCmluZGV4IDZiNDUzNmE3MzZlMGJmM2I3YjQwYjIyNzFmYzFjNWRh
MzA1OWM2YmEuLmMzOWJiZWQxMGI3ZWQ1NDZlNGQ4NzAwYjBmOGNhMTIxM2Y5MjJhMmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlR2VzdHVyZVJlY29nbml6
ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VHZXN0dXJlUmVj
b2duaXplci5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBv
cnQgPHBhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaD4KICNpbXBvcnQgPHd0Zi9Db21w
aWxlci5oPgorI2ltcG9ydCA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbXBvcnQgPHd0Zi9PcHRp
b25hbC5oPgogCiBzdGF0aWMgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiB3
ZWJFdmVudE1vZGlmaWVyc0ZvclVJS2V5TW9kaWZpZXJGbGFncyhVSUtleU1vZGlmaWVyRmxhZ3Mg
ZmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA1ZGUwODZhMDQ0MDVjMDQzMmI0NDE2YjQxODExZDNjNDVkMWI1YTNiLi5hNDdiMDEy
ZDJjNDhlZDhjZjQwMjViYzlkNTY0NmZmMDY3OGVlYzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIyMDEsNiArMjIwMSwxMCBAQAog
CQkwRjE4OUNBQjI0NzQ5RjJGMDBFNThEODEgLyogRGlzcGxheUxpbmtPYnNlcnZlcklELmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlMaW5rT2JzZXJ2ZXJJRC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjNDNzI1NzE5NkY1RjUwMDBBRUREMEMgLyog
V0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV0tJbnNwZWN0b3JIaWdobGlnaHRWaWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjNDNzI1OTE5NkY1RjY4MDBBRUREMEMgLyogV0tJbnNwZWN0b3JIaWdo
bGlnaHRWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLSW5zcGVjdG9y
SGlnaGxpZ2h0Vmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQwMDBGRDI1
MjdENjlEMDBFOTFEQTcgLyogV2ViV2hlZWxFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJXaGVl
bEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNDAwMEZFMjUyN0Q2QzMw
MEU5MURBNyAvKiBXZWJNb3VzZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk1vdXNlRXZlbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0MDAwRkYyNTI3RDZGNzAwRTkxREE3
IC8qIFdlYktleWJvYXJkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2V5Ym9hcmRFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQwMDEwMDI1MjdENzNDMDBFOTFEQTcg
LyogV2ViVG91Y2hFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJUb3VjaEV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDVBMzJGMjM5RDg5QTAwMDI5NEFCRiAvKiBXS1dl
YlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjQ1QTMzMDIzOUQ4OUExMDAyOTRBQkYgLyogV0tXZWJWaWV3VGVzdGluZ0lP
Uy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1Rl
c3RpbmdJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDVBMzMzMjM5RDg5
QUYwMDI5NEFCRiAvKiBXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ01hYy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ01hYy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjExNSwxMSArNjExOSwxMyBAQAogCQkJCUJD
Q0Y2QUJBMTJDOTFFRjkwMDhGOUMzNSAvKiBXZWJJbWFnZS5jcHAgKi8sCiAJCQkJQkNDRjZBQkIx
MkM5MUVGOTAwOEY5QzM1IC8qIFdlYkltYWdlLmggKi8sCiAJCQkJQzAzMzdERDIxMjdBMkEwRTAw
OEZGNEY0IC8qIFdlYktleWJvYXJkRXZlbnQuY3BwICovLAorCQkJCTBGNDAwMEZGMjUyN0Q2Rjcw
MEU5MURBNyAvKiBXZWJLZXlib2FyZEV2ZW50LmggKi8sCiAJCQkJQkM5QkE1MDIxNjk3QzQ1MzAw
RTQ0NjE2IC8qIFdlYktpdDJJbml0aWFsaXplLmNwcCAqLywKIAkJCQlCQzlCQTUwMzE2OTdDNDUz
MDBFNDQ2MTYgLyogV2ViS2l0MkluaXRpYWxpemUuaCAqLywKIAkJCQk5MDU2MjBFODEyQkMyNDhC
MDAwNzk5QjYgLyogV2ViTWVtb3J5U2FtcGxlci5jcHAgKi8sCiAJCQkJOTA1NjIwRTkxMkJDMjQ4
QjAwMDc5OUI2IC8qIFdlYk1lbW9yeVNhbXBsZXIuaCAqLywKIAkJCQlDMDMzN0RBRjEyN0EyOEQw
MDA4RkY0RjQgLyogV2ViTW91c2VFdmVudC5jcHAgKi8sCisJCQkJMEY0MDAwRkUyNTI3RDZDMzAw
RTkxREE3IC8qIFdlYk1vdXNlRXZlbnQuaCAqLywKIAkJCQlCQ0Y2OUY5ODExNzZDRUQ2MDA0NzFB
NTIgLyogV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oICovLAogCQkJCUMwNkM2MDkzMTI0QzE0NDMw
MDAxNjgyRiAvKiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLywKIAkJCQlDMDZDNjA5
NDEyNEMxNDQzMDAwMTY4MkYgLyogV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oICovLApAQCAt
NjE0OSwxMCArNjE1NSwxMiBAQAogCQkJCTgzNjAzNDlEMUFDQjM0RDYwMDYyNjU0OSAvKiBXZWJT
UUxpdGVEYXRhYmFzZVRyYWNrZXIuY3BwICovLAogCQkJCTgzNjAzNDlFMUFDQjM0RDYwMDYyNjU0
OSAvKiBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCAqLywKIAkJCQlDMDMzN0RENzEyN0E1MUI2
MDA4RkY0RjQgLyogV2ViVG91Y2hFdmVudC5jcHAgKi8sCisJCQkJMEY0MDAxMDAyNTI3RDczQzAw
RTkxREE3IC8qIFdlYlRvdWNoRXZlbnQuaCAqLywKIAkJCQk3QzA2NUYyOTFDOENEOTVGMDBDMkQ5
NTAgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmNwcCAqLywKIAkJCQk3QzA2
NUYyQTFDOENEOTVGMDBDMkQ5NTAgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVz
LmggKi8sCiAJCQkJNDk2MEEzQkMyM0M1Mjg2NDAwOTYxODQyIC8qIFdlYlZpZXdDYXRlZ29yeS5o
ICovLAogCQkJCUMwMzM3REQwMTI3QTI5ODAwMDhGRjRGNCAvKiBXZWJXaGVlbEV2ZW50LmNwcCAq
LywKKwkJCQkwRjQwMDBGRDI1MjdENjlEMDBFOTFEQTcgLyogV2ViV2hlZWxFdmVudC5oICovLAog
CQkJKTsKIAkJCXBhdGggPSBTaGFyZWQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oCmluZGV4IDhlMmQ2YjFh
MGU2NmY0MzE1Nzk0YWVmYTdmZGQ2NDdhNDBjZDA3ZmMuLmVmYmEwMTk3YzBiNGE0NWMzYTJmMjY5
NzM2NmJkODM0NGM4NzhiMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0
aW9uQWN0aW9uLmgKQEAgLTIzLDIwICsyMywxOSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9u
X2gKLSNkZWZpbmUgSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uX2gKKyNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVIaXRU
ZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgiCi0jaW5j
bHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIEZvcm1T
dGF0ZTsKLSAgICBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOworY2xhc3MgRm9ybVN0YXRlOworY2xh
c3MgTmF2aWdhdGlvbkFjdGlvbjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC04MCw1ICs3
OSwzIEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8v
IEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQbHVnaW5NYWMubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVQ
bHVnaW5NYWMubW0KaW5kZXggNTBhMDAzNGRkNjUwOTQwODk5NTA4MDQ4NTA4OWFiNzcwM2MwMWYy
OC4uNDNiMzQ5OGVjNzY5NjM4Yjc5MTEzN2EwN2EzMWVkZWM5ZjVkOWY2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlUGx1
Z2luTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L21hYy9OZXRzY2FwZVBsdWdpbk1hYy5tbQpAQCAtMzEsNyArMzEsOSBAQAogI2ltcG9ydCAiTGF5
ZXJUcmVlQ29udGV4dC5oIgogI2ltcG9ydCAiTmV0c2NhcGVCcm93c2VyRnVuY3MuaCIKICNpbXBv
cnQgIlBsdWdpbkNvbnRyb2xsZXIuaCIKLSNpbXBvcnQgIldlYkV2ZW50LmgiCisjaW1wb3J0ICJX
ZWJLZXlib2FyZEV2ZW50LmgiCisjaW1wb3J0ICJXZWJNb3VzZUV2ZW50LmgiCisjaW1wb3J0ICJX
ZWJXaGVlbEV2ZW50LmgiCiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
bW0KaW5kZXggZTM0YTI3ZWY5Y2ZhYTgyYzIzMTI2YzczNDkyN2FiZmZmZDVhY2Q2MC4uZjg3NzA3
MDkxOGZiOTk5MTcyMjAwZTE3MWI1MmZlNWQ0OWRiMWVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC00MSwxMCArNDEsMTEg
QEAKICNpbXBvcnQgIldLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMuaCIKICNpbXBvcnQg
IldLUGFnZUZpbmRNYXRjaGVzQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKLSNpbXBvcnQgIldlYkV2ZW50LmgiCiAjaW1wb3J0ICJXZWJFdmVudENvbnZlcnNpb24u
aCIKICNpbXBvcnQgIldlYkZpbmRPcHRpb25zLmgiCisjaW1wb3J0ICJXZWJLZXlib2FyZEV2ZW50
LmgiCiAjaW1wb3J0ICJXZWJMb2FkZXJTdHJhdGVneS5oIgorI2ltcG9ydCAiV2ViTW91c2VFdmVu
dC5oIgogI2ltcG9ydCAiV2ViUGFnZS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVzc2FnZXMu
aCIKICNpbXBvcnQgIldlYlBhc3RlYm9hcmRQcm94eU1lc3NhZ2VzLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKaW5kZXggMTg0Y2Y2NzVl
M2I0ZjlhOGNmZGZkMjJjZjYyYTY0NTFmMjhmZDM2OC4uNzI3NGU2ZjA3NDdiN2EzNDk3ZTQwYWYy
MTUwZGQyMjhkOWU1ZGQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb3h5LmNwcApAQCAtMzksOSArMzksMTEgQEAKICNpbmNsdWRlICJQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIK
ICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5o
IgorI2luY2x1ZGUgIldlYktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJNb3VzZUV2ZW50
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5o
PgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CmluZGV4IGEyM2MyMTc0MWQwOTJjYzA5ODVmNmFjNWRkYWJhYjA2YzY0ZDU0OWEuLmYyNjZjZDNj
ZTA5ZWE5MWVkNGU2NjM4MWI5ZDllOWVjODZkMDUwYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0zMCwxMSArMzAsMTMgQEAKICNp
bmNsdWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1
ZGUgIldlYktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJXZWJMb2FkZXJTdHJhdGVneS5oIgor
I2luY2x1ZGUgIldlYk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5j
bHVkZSAiV2ViV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQml0bWFwSW1hZ2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llSmFy
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERp
c3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmNwcAppbmRleCAxMDhmZDcxZTU5OTIxMmUzMDgzNjQ1ZTQ1N2QzN2U4YWIxNTViZTlk
Li4zZTE4YmM0YjAwOTE5NTBiMDE1NjczZTQyZjI3OTdhODI5OGZkZDg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAg
LTI3LDExICsyNywxMiBAQAogI2luY2x1ZGUgIkV2ZW50RGlzcGF0Y2hlci5oIgogCiAjaW5jbHVk
ZSAiRXZlbnREaXNwYXRjaGVyTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2lu
Y2x1ZGUgIldlYkV2ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNs
dWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNp
bmNsdWRlICJXZWJUb3VjaEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViV2hlZWxFdmVudC5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2hlZWxFdmVudFRlc3RN
b25pdG9yLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKaW5kZXggMWM0MTZkODgw
ZWM3MzMzZDA3MjY2ZmFjNTM1ZGMyOTllMDIwZmJjZC4uMzcyZTIwZTdhMWM3NmVjMDFmODYzODEz
M2EyOGQxMTI2NmUwOWUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLmgKQEAgLTUxLDYgKzUxLDEwIEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgV2ViUGFnZTsKIGNsYXNzIFdlYldoZWVsRXZlbnQ7CiAKKyNpZiBFTkFCTEUo
SU9TX1RPVUNIX0VWRU5UUykKK2NsYXNzIFdlYlRvdWNoRXZlbnQ7CisjZW5kaWYKKwogY2xhc3Mg
RXZlbnREaXNwYXRjaGVyIDogcHVibGljIElQQzo6Q29ubmVjdGlvbjo6V29ya1F1ZXVlTWVzc2Fn
ZVJlY2VpdmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEV2ZW50RGlzcGF0Y2hlcj4gY3Jl
YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdl
QmFubmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmgK
aW5kZXggODQ4MDIxMDlkZmJkMDg3YzA0OTVhNTgzYWE5NWY4N2RlZWQzNDQ1Mi4uOThlMTZkMjFj
OWYwYmI3ZTIzODhkZTk2NDAyMzYzNWZjMTI1MjM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuaApAQCAtMjMsMTEgKzIzLDEwIEBACiAgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBQYWdlQmFubmVyX2gK
LSNkZWZpbmUgUGFnZUJhbm5lcl9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVj
dC5oIgotI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgog
CiAjaWYgUExBVEZPUk0oTUFDKQogT0JKQ19DTEFTUyBDQUxheWVyOwpAQCAtOTYsNSArOTUsMyBA
QCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBQYWdl
QmFubmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggMTI5Y2E2NmNlNGNmNzE0ODgxZjMxNjA2MjhlYWQ5NmQ1YWNkOWZjYy4uMjlhNmZmOTFm
YjA5YjRiZGFlMzIzMzdkZmUzYzE4Nzk2NjBjYWFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTg1LDcgKzg1LDYgQEAKICNpbmNsdWRlICJX
ZWJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIldlYkRyYWdDbGllbnQuaCIKICNpbmNsdWRl
ICJXZWJFZGl0b3JDbGllbnQuaCIKLSNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldl
YkV2ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5oIgogI2luY2x1
ZGUgIldlYkZyYW1lLmgiCkBAIC0xMDAsOSArOTksMTEgQEAKICNpbmNsdWRlICJXZWJJbnNwZWN0
b3JNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclVJLmgiCiAjaW5jbHVkZSAiV2Vi
SW5zcGVjdG9yVUlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYktleWJvYXJkRXZlbnQuaCIKICNp
bmNsdWRlICJXZWJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYk1lZGlhS2V5U3RvcmFn
ZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJNZWRpYVN0cmF0ZWd5LmgiCisjaW5jbHVkZSAiV2Vi
TW91c2VFdmVudC5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbkNsaWVudC5oIgogI2luY2x1
ZGUgIldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5oIgpAQCAtMTI3LDExICsxMjgsMTMgQEAKICNpbmNsdWRlICJXZWJTb2Nr
ZXRQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIgogI2lu
Y2x1ZGUgIldlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgorI2luY2x1ZGUgIldlYlRvdWNo
RXZlbnQuaCIKICNpbmNsdWRlICJXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJVbmRvU3RlcC5oIgogI2luY2x1ZGUgIldlYlVzZXJDb250ZW50Q29udHJvbGxlci5oIgog
I2luY2x1ZGUgIldlYlVzZXJNZWRpYUNsaWVudC5oIgogI2luY2x1ZGUgIldlYlZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIldl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJ
Q2FzdC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcAppbmRl
eCA0ZDA5NDNjMjQ4NDVmMjhiNzgyMWI0YjY5ZmZjZmM1NjUwNjkyOTNlLi5kYTQ3NTUwMmEzMGEz
OTg1MWExN2Y1ZTcwZWI3MmM0M2EwYzNhZjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwCkBAIC0yOCw4ICsyOCw4IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogCi0jaW5jbHVkZSAiV2Vi
RXZlbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYktleWJvYXJkRXZl
bnQuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdC5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bQppbmRleCBkZGM3ZTc2MWVhZjE0MmI3OTkyMzZjZTEyMmZmZjQyNDcxZGEyYjcxLi43OWNmMTIy
ZjIyMTlmYWQ3NGZhNjliMzVmM2VlNTg1YjA4MWE2YjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNTksNiArNTksNyBA
QAogI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByZXZpZXdM
b2FkZXJDbGllbnQuaCIKICNpbXBvcnQgIldlYlByb2Nlc3MuaCIKKyNpbXBvcnQgIldlYlRvdWNo
RXZlbnQuaCIKICNpbXBvcnQgPENvcmVUZXh0L0NURm9udC5oPgogI2ltcG9ydCA8V2ViQ29yZS9B
dXRvZmlsbC5oPgogI2ltcG9ydCA8V2ViQ29yZS9BdXRvZmlsbEVsZW1lbnRzLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4
IDNkOTYwYTIyMTkxYjdlNTU5MmE1YTYxNDZjY2UzNmUwZmU5MWZjY2MuLjVhZWI0YjE1MzdkMzM0
MjExNmNhMjFhNTU1MzUzYzRhYWVjMDBlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC00MywxMiArNDMsMTMgQEAKICNp
bXBvcnQgIlVzZXJEYXRhLmgiCiAjaW1wb3J0ICJXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0
TWFjLmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbXBvcnQgIldlYkV2
ZW50LmgiCiAjaW1wb3J0ICJXZWJFdmVudENvbnZlcnNpb24uaCIKICNpbXBvcnQgIldlYkZyYW1l
LmgiCiAjaW1wb3J0ICJXZWJIaXRUZXN0UmVzdWx0RGF0YS5oIgogI2ltcG9ydCAiV2ViSW1hZ2Uu
aCIKICNpbXBvcnQgIldlYkluc3BlY3Rvci5oIgorI2ltcG9ydCAiV2ViS2V5Ym9hcmRFdmVudC5o
IgorI2ltcG9ydCAiV2ViTW91c2VFdmVudC5oIgogI2ltcG9ydCAiV2ViUGFnZU92ZXJsYXkuaCIK
ICNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQYXN0ZWJvYXJk
T3ZlcnJpZGVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS93aW4vV2ViUGFnZVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93
aW4vV2ViUGFnZVdpbi5jcHAKaW5kZXggOWJmYzg2OWRlMTQwMWQyZDU2YmEyOWQ0OGM2ZjQxN2E1
N2VmNDg2OC4uMjg5M2VkM2YzYjhjOWMyODQ3MmI4YWFmN2EzOTllMjU3YmY4YzUyZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNw
cApAQCAtMjgsOCArMjgsOCBAQAogI2luY2x1ZGUgIldlYlBhZ2UuaCIKIAogI2luY2x1ZGUgIkVk
aXRvclN0YXRlLmgiCi0jaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5o
IgorI2luY2x1ZGUgIldlYktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Jh
Y2tGb3J3YXJkQ29udHJvbGxlci5oPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>