<?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>233192</bug_id>
          
          <creation_ts>2021-11-16 08:10:46 -0800</creation_ts>
          <short_desc>[Model] Create iOS ModelPlayer implementation</short_desc>
          <delta_ts>2021-11-17 02:39:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>232848</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>dino</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1815490</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-16 08:10:46 -0800</bug_when>
    <thetext>[Model] Create iOS ModelPlayer implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815496</commentid>
    <comment_count>1</comment_count>
      <attachid>444390</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-16 08:21:23 -0800</bug_when>
    <thetext>Created attachment 444390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815509</commentid>
    <comment_count>2</comment_count>
      <attachid>444395</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-16 08:44:45 -0800</bug_when>
    <thetext>Created attachment 444395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815513</commentid>
    <comment_count>3</comment_count>
      <attachid>444397</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-16 08:53:14 -0800</bug_when>
    <thetext>Created attachment 444397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815526</commentid>
    <comment_count>4</comment_count>
      <attachid>444400</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-16 09:14:37 -0800</bug_when>
    <thetext>Created attachment 444400
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815840</commentid>
    <comment_count>5</comment_count>
      <attachid>444486</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-16 23:48:52 -0800</bug_when>
    <thetext>Created attachment 444486
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815880</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-11-17 02:38:36 -0800</bug_when>
    <thetext>Committed r285922 (244331@main): &lt;https://commits.webkit.org/244331@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815881</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-17 02:39:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/85496710&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444390</attachid>
            <date>2021-11-16 08:21:23 -0800</date>
            <delta_ts>2021-11-16 08:44:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233192-20211116172121.patch</filename>
            <type>text/plain</type>
            <size>55138</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDQ4NzRjOWNlMDE3ZDUx
MGNhMWM4NjI4YjA3YmNjZDlmYWNlNmE4Zi4uNDZhM2IzOThhN2UxMTMxYjBlZDQzZTM2MjUxMjcz
MjM5YTEyYWE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTExLTE2ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gQ3JlYXRl
IGlPUyBNb2RlbFBsYXllciBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIDIzMjg0OCBmYWN0b3JlZCBwbGF0Zm9ybS1zcGVj
aWZpYyBjb2RlIG91dCBvZiBIVE1MTW9kZWxFbGVtZW50IHdpdGggdGhlIHVzZSBvZiBhIG5ldyBN
b2RlbFBsYXllcgorICAgICAgICBhYnN0cmFjdGlvbiB3aXRoIGEgY29uY3JldGUgQVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXIgaW1wbGVtZW50YXRpb24uIFRoaXMgZmlyc3QgcGF0Y2ggbW92
ZWQgdGhlCisgICAgICAgIG1hY09TIGNvZGUsIGFuZCB0aGlzIHBhdGNoIG1vdmVzIHRoZSByZW1h
aW5pbmcgaU9TIGNvZGUuCisKKyAgICAgICAgVG8gZG8gc28gd2UgbWFrZSBBUktpdElubGluZVBy
ZXZpZXdNb2RlbFBsYXllciBhIHBhcmVudCBjbGFzcyBvZiB0d28gcGxhdGZvcm0tc3BlY2lmaWMg
c3ViY2xhc3NlczoKKyAgICAgICAgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMgYW5k
IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLiBXZSBhZGQgYSBuZXcgZW50ZXJGdWxs
c2NyZWVuKCkKKyAgICAgICAgbWV0aG9kIHRvIE1vZGVsUGxheWVyLCB3aXRoIGFuIGltcGxlbWVu
dGF0aW9uIGluIHRoZSBpT1Mgc3ViY2xhc3MuIFRvIHN1cHBvcnQgdGhpcyBuZXcgbWV0aG9kLCB3
ZQorICAgICAgICBhZGQgYSBuZXcgcGxhdGZvcm1MYXllcklEKCkgb24gTW9kZWxQbGF5ZXJDbGll
bnQuCisKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50Ojptb2RlbERpZENoYW5nZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50Ojp1c2VzUGxhdGZvcm1MYXllciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpwbGF0Zm9ybUxheWVy
SUQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVu
KToKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oOgor
ICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oOgorICAgICAgICAq
IE1vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllckNsaWVudC5oOgorICAgICAgICAqIE1v
ZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllclByb3ZpZGVyLmg6CisgICAgICAgICogTW9k
dWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RHVtbXlNb2RlbFBsYXllcjo6ZW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKiBN
b2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oOgorICAgICAgICAq
IE1vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyUHJvdmlkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RHVtbXlNb2RlbFBsYXllclByb3ZpZGVyOjpjcmVhdGVNb2Rl
bFBsYXllcik6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9k
ZWxQbGF5ZXJQcm92aWRlci5oOgorCiAyMDIxLTExLTE1ICBQYXRyaWNrIEdyaWZmaXMgIDxwZ3Jp
ZmZpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIENTUDogRml4IG1pc3NpbmcgbGluZU51bWJlciBh
bmQgY29sdW1uTnVtYmVyIGluIGlubGluZSB2aW9sYXRpb24gcmVwb3J0cwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0
NThkZjM5ZjVhM2FlMGZmMGFlMjIyNzdmMWFhMjRlYmRkYTNjZWRkLi5iYjg0YmQ4ZmZmOTY1MjZm
MTlmZDNjMWM5ZGRiN2Q4MDVjZWQwZTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIx
LTExLTE2ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtN
b2RlbF0gQ3JlYXRlIGlPUyBNb2RlbFBsYXllciBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMTkyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIDIzMjg0OCBmYWN0b3JlZCBw
bGF0Zm9ybS1zcGVjaWZpYyBjb2RlIG91dCBvZiBIVE1MTW9kZWxFbGVtZW50IHdpdGggdGhlIHVz
ZSBvZiBhIG5ldyBNb2RlbFBsYXllcgorICAgICAgICBhYnN0cmFjdGlvbiB3aXRoIGEgY29uY3Jl
dGUgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIgaW1wbGVtZW50YXRpb24uIFRoaXMgZmly
c3QgcGF0Y2ggbW92ZWQgdGhlCisgICAgICAgIG1hY09TIGNvZGUsIGFuZCB0aGlzIHBhdGNoIG1v
dmVzIHRoZSByZW1haW5pbmcgaU9TIGNvZGUuCisKKyAgICAgICAgVG8gZG8gc28gd2UgbWFrZSBB
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllciBhIHBhcmVudCBjbGFzcyBvZiB0d28gcGxhdGZv
cm0tc3BlY2lmaWMgc3ViY2xhc3NlczoKKyAgICAgICAgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXJNYWMgYW5kIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLiBXZSBhZGQgYSBu
ZXcgZW50ZXJGdWxsc2NyZWVuKCkKKyAgICAgICAgbWV0aG9kIHRvIE1vZGVsUGxheWVyLCB3aXRo
IGFuIGltcGxlbWVudGF0aW9uIGluIHRoZSBpT1Mgc3ViY2xhc3MuIFRvIHN1cHBvcnQgdGhpcyBu
ZXcgbWV0aG9kLCB3ZQorICAgICAgICBhZGQgYSBuZXcgcGxhdGZvcm1MYXllcklEKCkgb24gTW9k
ZWxQbGF5ZXJDbGllbnQuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAq
IFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ci5oLgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6cGFn
ZSk6CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpjbGll
bnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXIubW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9XZWJN
b2RlbFBsYXllclByb3ZpZGVyLmguCisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmll
d01vZGVsUGxheWVyOjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcik6CisgICAgICAgIChX
ZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjp+QVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllcjo6bG9hZCk6CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxh
eWVyOjpsYXllcik6CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxh
eWVyOjplbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTW9kZWwvV2ViTW9k
ZWxQbGF5ZXJQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1vZGVsUGxheWVyUHJv
dmlkZXI6OmNyZWF0ZU1vZGVsUGxheWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL01vZGVsL1dl
Yk1vZGVsUGxheWVyUHJvdmlkZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01vZGVsL2lvcy9B
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTW9kZWwvV2ViTW9kZWxQbGF5ZXJQcm92aWRlci5oLgorICAgICAgICAq
IFdlYlByb2Nlc3MvTW9kZWwvaW9zL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLm1t
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvV2ViTW9kZWxQbGF5
ZXJQcm92aWRlci5jcHAuCisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVySU9TOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllcklPUzo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MpOgorICAgICAg
ICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUzo6fkFSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVySU9TKToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2
aWV3TW9kZWxQbGF5ZXJJT1M6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMuaDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXIuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllck1hYy5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0uCisgICAg
ICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6QVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMpOgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllck1hYzo6fkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFj
KToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OnNl
dE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmNyZWF0ZUZpbGUpOgorICAgICAgICAoV2ViS2l0OjpB
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6Y2xlYXJGaWxlKToKKyAgICAgICAgKFdl
YktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmxvYWQpOgorICAgICAgICAo
V2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6bGF5ZXIpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OnNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKToKKwogMjAyMS0xMS0xNCAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgR2V0IGRhZW1vbiBBUEkgcmVh
ZHkgdG8gd29yayBpbiB0aGUgaU9TIHNpbXVsYXRvciAoc3RhcnRpbmcgd2l0aCBXZWJQdXNoRCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9k
ZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1M
TW9kZWxFbGVtZW50LmNwcAppbmRleCAxYjhlZTI2NTc0N2EzYTQyNzBiNzM3MmUyM2U2NGVhNGI2
MjhiMmY2Li41NTIzYmQ2YmM1Zjg0NGNjNGUwYzc2NWNmYzA3OTkzNWZmODBhYjhjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2Rl
bEVsZW1lbnQuY3BwCkBAIC0zMCw4ICszMCwxMSBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaCIKICNpbmNsdWRlICJET01Qcm9taXNlUHJveHkuaCIKKyNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnRDaGlsZEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRWxl
bWVudElubGluZXMuaCIKKyNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCisjaW5jbHVkZSAiR3Jh
cGhpY3NMYXllckNBLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBh
cnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhUTUxTb3VyY2VFbGVtZW50LmgiCkBAIC00MCwyMiAr
NDMsMTQgQEAKICNpbmNsdWRlICJNb2RlbC5oIgogI2luY2x1ZGUgIk1vZGVsUGxheWVyLmgiCiAj
aW5jbHVkZSAiTW9kZWxQbGF5ZXJQcm92aWRlci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNs
dWRlICJSZW5kZXJMYXllci5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgogI2lu
Y2x1ZGUgIlJlbmRlckxheWVyTW9kZWxPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJNb2RlbC5o
IgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5o
PgogCi0jaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX0lPUykKLSNpbmNsdWRlICJDaHJv
bWUuaCIKLSNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgot
I2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKLSNpbmNsdWRlICJHcmFwaGljc0xheWVyQ0EuaCIK
LSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKLSNpbmNsdWRlICJS
ZW5kZXJMYXllckJhY2tpbmcuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChIVE1MTW9kZWxFbGVtZW50KTsKQEAgLTIzNCwyMyAr
MjI5LDE3IEBAIHZvaWQgSFRNTE1vZGVsRWxlbWVudDo6bW9kZWxEaWRDaGFuZ2UoKQogICAgIGlm
ICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIE5PVEU6IEZvciBub3csIGNy
ZWF0ZU1vZGVsUGxheWVyIHJldHVybmluZyBudWxscHRyIG1lYW5zIHRoYXQgdGhlIEdyYXBoaWNz
TGF5ZXI6OnNldENvbnRlbnRzVG9Nb2RlbCgpIHBhdGgKLSAgICAvLyBpcyBiZWluZyB1c2VkLCBi
dXQgdGhhdCBuZWVkcyB0byBiZSBwaGFzZWQgb3V0IHRvIGFsbG93IGJpZGlyZWN0aW9uYWwgY29t
bXVuaWNhdGlvbiBiZXR3ZWVuIHRoZSBtb2RlbCBwbGF5ZXIKLSAgICAvLyBhbmQgdGhlIEhUTUxN
b2RlbEVsZW1lbnQuIE9uY2UgdGhhdCBpcyBwaGFzZWQgb3V0LCBjcmVhdGVNb2RlbFBsYXllcigp
IHNob3VsZCBiZSB1cGRhdGVkIHRvIHJldHVybiBhIFJlZjw+LgogICAgIG1fbW9kZWxQbGF5ZXIg
PSBwYWdlLT5tb2RlbFBsYXllclByb3ZpZGVyKCkuY3JlYXRlTW9kZWxQbGF5ZXIoKnRoaXMpOwot
ICAgIGlmICghbV9tb2RlbFBsYXllcikKLSAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklYTUU6
IFdlIG5lZWQgdG8gdGVsbCB0aGUgcGxheWVyIGlmIHRoZSBzaXplIGNoYW5nZXMgYXMgd2VsbCwg
c28gcGFzc2luZyB0aGlzCiAgICAgLy8gaW4gd2l0aCBsb2FkIHByb2JhYmx5IGRvZXNuJ3QgbWFr
ZSBzZW5zZS4KICAgICBhdXRvIHNpemUgPSByZW5kZXJlci0+YWJzb2x1dGVCb3VuZGluZ0JveFJl
Y3QoZmFsc2UpLnNpemUoKTsKLQogICAgIG1fbW9kZWxQbGF5ZXItPmxvYWQoKm1fbW9kZWwsIHNp
emUpOwogfQogCiBib29sIEhUTUxNb2RlbEVsZW1lbnQ6OnVzZXNQbGF0Zm9ybUxheWVyKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gbV9tb2RlbFBsYXllciAhPSBudWxscHRyOworICAgIHJldHVybiBt
X21vZGVsUGxheWVyICYmIG1fbW9kZWxQbGF5ZXItPmxheWVyKCk7CiB9CiAKIFBsYXRmb3JtTGF5
ZXIqIEhUTUxNb2RlbEVsZW1lbnQ6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdApAQCAtMjcxLDMwICsy
NjAsMzEgQEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50OjpkaWRGYWlsTG9hZGluZyhNb2RlbFBsYXll
ciYgbW9kZWxQbGF5ZXIsIGNvbnN0IFJlc291cmNlRXIKICAgICBBU1NFUlRfVU5VU0VEKG1vZGVs
UGxheWVyLCAmbW9kZWxQbGF5ZXIgPT0gbV9tb2RlbFBsYXllcik7CiB9CiAKLS8vIE1BUks6IC0g
RnVsbHNjcmVlbiBzdXBwb3J0LgotCi12b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OmVudGVyRnVsbHNj
cmVlbigpCitHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgSFRNTE1vZGVsRWxlbWVudDo6
cGxhdGZvcm1MYXllcklEKCkKIHsKLS8vIEZJWE1FOiBBZGQgYSBuZXcgbWV0aG9kIHRvIE1vZGVs
UGxheWVyIGZvciBlbnRlcmluZyBmdWxsc2NyZWVuIGFuZCBtb3ZlIHRoaXMgaW50byB0aGUgaU9T
IEFSS2l0IGlubGluZSBwcmV2aWV3IE1vZGVsUGxheWVyIGltcGxlbWVudGF0aW9uLgotI2lmIEVO
QUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19JT1MpCiAgICAgYXV0byogcGFnZSA9IGRvY3VtZW50
KCkucGFnZSgpOwogICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1
cm4gMDsKIAogICAgIGlmICghaXM8UmVuZGVyTGF5ZXJNb2RlbE9iamVjdD4odGhpcy0+cmVuZGVy
ZXIoKSkpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBhdXRvJiBy
ZW5kZXJMYXllck1vZGVsT2JqZWN0ID0gZG93bmNhc3Q8UmVuZGVyTGF5ZXJNb2RlbE9iamVjdD4o
KnRoaXMtPnJlbmRlcmVyKCkpOwogICAgIGlmICghcmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5pc0Nv
bXBvc2l0ZWQoKSB8fCAhcmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5sYXllcigpIHx8ICFyZW5kZXJM
YXllck1vZGVsT2JqZWN0LmxheWVyKCktPmJhY2tpbmcoKSkKLSAgICAgICAgcmV0dXJuOworICAg
ICAgICByZXR1cm4gMDsKIAogICAgIGF1dG8qIGdyYXBoaWNzTGF5ZXIgPSByZW5kZXJMYXllck1v
ZGVsT2JqZWN0LmxheWVyKCktPmJhY2tpbmcoKS0+Z3JhcGhpY3NMYXllcigpOwogICAgIGlmICgh
Z3JhcGhpY3NMYXllcikKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gMDsKKworICAg
IHJldHVybiBncmFwaGljc0xheWVyLT5jb250ZW50c0xheWVySURGb3JNb2RlbCgpOworfQogCi0g
ICAgaWYgKGF1dG8gY29udGVudExheWVySWQgPSBncmFwaGljc0xheWVyLT5jb250ZW50c0xheWVy
SURGb3JNb2RlbCgpKQotICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS50YWtlTW9kZWxF
bGVtZW50RnVsbHNjcmVlbihjb250ZW50TGF5ZXJJZCk7Ci0jZW5kaWYKKy8vIE1BUks6IC0gRnVs
bHNjcmVlbiBzdXBwb3J0LgorCit2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OmVudGVyRnVsbHNjcmVl
bigpCit7CisgICAgbV9tb2RlbFBsYXllci0+ZW50ZXJGdWxsc2NyZWVuKCk7CiB9CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVs
RWxlbWVudC5oCmluZGV4IDM3ODAzMjllYTM5NTRiOGRhZDdkYTE5Yjk4MmFjNmQwZDA2MzM3MzIu
LjY5NDc4YzI3NDgxNTc0NTkxYjEzYTRkZGU2ZDk5Y2MwMDFhYTkwYzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQu
aApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291cmNlLmgiCiAjaW5j
bHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUhhbmRsZS5oIgorI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJIVE1MRWxl
bWVudC5oIgogI2luY2x1ZGUgIklETFR5cGVzLmgiCiAjaW5jbHVkZSAiTW9kZWxQbGF5ZXJDbGll
bnQuaCIKQEAgLTg5LDYgKzkwLDcgQEAgcHJpdmF0ZToKICAgICAvLyBNb2RlbFBsYXllckNsaWVu
dCBvdmVycmlkZXMuCiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKE1vZGVsUGxheWVyJikgZmlu
YWw7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyhNb2RlbFBsYXllciYsIGNvbnN0IFJlc291cmNl
RXJyb3ImKSBmaW5hbDsKKyAgICBHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgcGxhdGZv
cm1MYXllcklEKCkgZmluYWw7CiAKICAgICBVUkwgbV9zb3VyY2VVUkw7CiAgICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IG1fcmVzb3VyY2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oCmluZGV4IDNiYWIy
Zjc5M2M2OTE2Yjc0MTE2OWM5MjdlZTE3ZWNmNDEzZTYzZGUuLmU3MTI5ZGRjOTE0MDI0N2M1NDU1
YjI5ZWFkMDc5ZGE3NWRkMmZlYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oCkBAIC00MCw2ICs0MCw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBsb2FkKE1vZGVsJiwgTGF5b3V0U2l6ZSkgPSAwOwogICAgIHZpcnR1
YWwgUGxhdGZvcm1MYXllciogbGF5ZXIoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGVudGVyRnVs
bHNjcmVlbigpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyQ2xpZW50LmgKaW5kZXggNGI0NDhiZWY5NjAw
ODc0YTllNjA2OTQzY2I4MjNkN2E4NmZmNjlhMi4uMzNmYjlkY2I1MThlYTYxMmY2NGRlZmM5YWYx
NTMzNmViOWJkNWNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1l
bGVtZW50L01vZGVsUGxheWVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2RlbC1lbGVtZW50L01vZGVsUGxheWVyQ2xpZW50LmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3By
YWdtYSBvbmNlCiAKKyNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC0zOSw2ICs0MCw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKE1vZGVsUGxheWVyJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTG9hZGluZyhNb2RlbFBsYXllciYsIGNvbnN0
IFJlc291cmNlRXJyb3ImKSA9IDA7CisgICAgdmlydHVhbCBHcmFwaGljc0xheWVyOjpQbGF0Zm9y
bUxheWVySUQgcGxhdGZvcm1MYXllcklEKCkgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyUHJvdmlkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllclByb3ZpZGVy
LmgKaW5kZXggN2Q0YmI0ZWZkMTc4OTU0Y2E2OTVhMTI5NzQ1Y2YwYzllMDk2N2MwNS4uNWIwMjgw
NjNkY2VkZDZjMGRmYmQyYzI1MmU3MzExNDA3YmU3OGY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyUHJvdmlkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXJQcm92aWRlci5o
CkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEZJWE1FOiBPbmNlIGFsbCBjbGll
bnRzIGhhdmUgYWRvcHRlZCBNb2RlbFBsYXllclByb3ZpZGVyLCB0aGlzIHNob3VsZAogICAgIC8v
IGJlIGNoYW5nZWQgdG8gcmV0dXJuIGEgUmVmPE1vZGVsUGxheWVyPgotICAgIHZpcnR1YWwgUmVm
UHRyPE1vZGVsUGxheWVyPiBjcmVhdGVNb2RlbFBsYXllcihNb2RlbFBsYXllckNsaWVudCYpID0g
MDsKKyAgICB2aXJ0dWFsIFJlZjxNb2RlbFBsYXllcj4gY3JlYXRlTW9kZWxQbGF5ZXIoTW9kZWxQ
bGF5ZXJDbGllbnQmKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHAK
aW5kZXggNDIyODNhNjZiMWNkYjczMTI1MDY0MzEyMTJjMWIzNTkyOTU1N2I1NS4uODI0NjYxNjFl
ZGY1ODZlM2U0NTg4YmM0Yjk0MzUwNmQwNDliMWQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxh
eWVyLmNwcApAQCAtNTQsNCArNTQsOCBAQCBQbGF0Zm9ybUxheWVyKiBEdW1teU1vZGVsUGxheWVy
OjpsYXllcigpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK3ZvaWQgRHVtbXlNb2RlbFBsYXll
cjo6ZW50ZXJGdWxsc2NyZWVuKCkKK3sKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmgK
aW5kZXggZWU1NzM5NmQxOGM1MzNiZjA4Zjc1YmI3ZWIwNDJkZjYyZWMxZTU2My4uODM4ZWJlY2Y4
ZDIxMGIwMzVkMTY4NDVhNzA3MTZmOTIyNzkwNmU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXll
ci5oCkBAIC00MSw4ICs0MSw5IEBAIHByaXZhdGU6CiAgICAgRHVtbXlNb2RlbFBsYXllcihNb2Rl
bFBsYXllckNsaWVudCYpOwogCiAgICAgLy8gTW9kZWxQbGF5ZXIgb3ZlcnJpZGVzLgotICAgIHZp
cnR1YWwgdm9pZCBsb2FkKE1vZGVsJiwgTGF5b3V0U2l6ZSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCBQbGF0Zm9ybUxheWVyKiBsYXllcigpIG92ZXJyaWRlOworICAgIHZvaWQgbG9hZChNb2RlbCYs
IExheW91dFNpemUpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKIAogICAgIFdlYWtQdHI8
TW9kZWxQbGF5ZXJDbGllbnQ+IG1fY2xpZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyUHJvdmlkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9k
ZWxQbGF5ZXJQcm92aWRlci5jcHAKaW5kZXggMWMyZmQ1N2NiMmUxZWFkN2MxYTJlYTIwZGI1MmQ5
YmEyNDdhOWY0Yy4uMGY0ZDE4OWY0MzU2NDZlNjlmMWM4MmEyOGEzOWI5ZjliNTA1MmZlOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15
TW9kZWxQbGF5ZXJQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rl
bC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXJQcm92aWRlci5jcHAKQEAgLTMzLDcgKzMz
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogRHVtbXlNb2RlbFBsYXllclByb3ZpZGVyOjpEdW1t
eU1vZGVsUGxheWVyUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CiBEdW1teU1vZGVsUGxheWVyUHJvdmlk
ZXI6On5EdW1teU1vZGVsUGxheWVyUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CiAKLVJlZlB0cjxNb2Rl
bFBsYXllcj4gRHVtbXlNb2RlbFBsYXllclByb3ZpZGVyOjpjcmVhdGVNb2RlbFBsYXllcihNb2Rl
bFBsYXllckNsaWVudCYgY2xpZW50KQorUmVmPE1vZGVsUGxheWVyPiBEdW1teU1vZGVsUGxheWVy
UHJvdmlkZXI6OmNyZWF0ZU1vZGVsUGxheWVyKE1vZGVsUGxheWVyQ2xpZW50JiBjbGllbnQpCiB7
CiAgICAgcmV0dXJuIER1bW15TW9kZWxQbGF5ZXI6OmNyZWF0ZShjbGllbnQpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9k
ZWxQbGF5ZXJQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50
L2R1bW15L0R1bW15TW9kZWxQbGF5ZXJQcm92aWRlci5oCmluZGV4IDVhNmRjNzg4ODhmMDM5NDVh
ODk2MTJiZjdjMjAwMDUzYzE0ZDIzYTAuLjA1NTM4MDk0Y2IxZDc3ZjNhZjU2MDYyNjdkNmZkMWJl
Y2I1OGUxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVu
dC9kdW1teS9EdW1teU1vZGVsUGxheWVyUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllclByb3ZpZGVyLmgKQEAg
LTM2LDcgKzM2LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIE1vZGVsUGxheWVyUHJv
dmlkZXIgb3ZlcnJpZGVzLgotICAgIHZpcnR1YWwgUmVmUHRyPE1vZGVsUGxheWVyPiBjcmVhdGVN
b2RlbFBsYXllcihNb2RlbFBsYXllckNsaWVudCYpIG92ZXJyaWRlOworICAgIFJlZjxNb2RlbFBs
YXllcj4gY3JlYXRlTW9kZWxQbGF5ZXIoTW9kZWxQbGF5ZXJDbGllbnQmKSBvdmVycmlkZTsKIH07
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBjYThkMjM5NWZhOWRmMTE4ZjljZTBiYTFk
MjNkN2YzOGQ3YTIyMWE2Li5hM2U3YmI2NjQ3MTkzMDIzMGZlMjNmMGE2ODFjM2U3YTIzMjY4MzUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC02NTUsNyArNjU1LDkgQEAgV2ViUHJvY2Vzcy9J
bnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclVJTWFjLm1tCiAKIFdlYlByb2Nlc3MvTWVkaWFDYWNo
ZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcAogCi1XZWJQcm9jZXNzL01vZGVsL21hYy9B
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbQorV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElu
bGluZVByZXZpZXdNb2RlbFBsYXllci5tbQorV2ViUHJvY2Vzcy9Nb2RlbC9pb3MvQVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MubW0KK1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5s
aW5lUHJldmlld01vZGVsUGxheWVyTWFjLm1tCiAKIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tCiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24ubW0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDY0MzFkNDBiMDU2YTVhZGQyYzQxZjExYTM1ZDA0YTU0ZWYxMjgwMzEuLmE4NGZhYTdkZTU4NWY3
OTM4MDE1NzNhODk1MDM3YjQ2NTIwY2U0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDUxMyw2ICs0NTEzLDEwIEBACiAJCTcxMzdC
QTdEMjVGMTUzRTkwMDkxNEVFMyAvKiBNb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBNb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxMzdCQTdFMjVGMTU0MEIwMDkxNEVFMyAvKiBNb2Rl
bEVsZW1lbnRDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1vZGVsRWxlbWVudENvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3MTM3QkE3RjI1RjE1NDBDMDA5MTRFRTMgLyogTW9kZWxFbGVtZW50Q29udHJvbGxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2RlbEVsZW1lbnRDb250cm9sbGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcxNzdBRDVCMjc0M0Q3QTkwMDJGMTAz
QiAvKiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3MTc3QUQ1QzI3NDNEN0E5MDAyRjEwM0IgLyogQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzE3N0FENjYyNzQzRjY2QzAwMkYx
MDNCIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTcxNzdBRDY3Mjc0M0Y2NkMwMDJGMTAzQiAvKiBBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MUE2NzZB
NDIyQzYyMzE4MDA3RDYyOTUgLyogV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLVG91Y2hBY3Rpb25HZXN0dXJlUmVjb2du
aXplci5oOyBwYXRoID0gaW9zL1dLVG91Y2hBY3Rpb25HZXN0dXJlUmVjb2duaXplci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MUE2NzZBNTIyQzYyMzE4MDA3RDYyOTUgLyogV0tU
b3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tOyBwYXRoID0g
aW9zL1dLVG91Y2hBY3Rpb25HZXN0dXJlUmVjb2duaXplci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzFCQUE3MzEyNUZGQ0NCQTAwRDdDRDVEIC8qIFdLTW9kZWxWaWV3LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLTW9kZWxWaWV3Lmg7IHBhdGggPSBpb3Mv
V0tNb2RlbFZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUyMjAsOCArNTIy
NCw4IEBACiAJCUJDMjA1MjgwMTFDOTQyODQwMDhGMzM3NSAvKiBXS0J1bmRsZVBhZ2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tCdW5kbGVQYWdlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMyNjUyMTIxMTgyNjA4MTAwMjQzRTEyIC8qIERy
YXdpbmdBcmVhUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RHJhd2luZ0FyZWFQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMjY1
MjEzMTE4MjYwODEwMDI0M0UxMiAvKiBEcmF3aW5nQXJlYVByb3h5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERyYXdpbmdBcmVhUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQkMyQjQxMEMyNzMyRUY5NjAwQTJEMTkxIC8qIEFSS2l0SW5saW5lUHJldmll
d01vZGVsUGxheWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxh
eWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDMkI0MTBEMjczMkVGOTYwMEEy
RDE5MSAvKiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlCQzJCNDEwQzI3MzJFRjk2MDBBMkQxOTEgLyogQVJLaXRJbmxpbmVQcmV2
aWV3TW9kZWxQbGF5ZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMyQjQxMEQyNzMy
RUY5NjAwQTJEMTkxIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMkI0MTFBMjczMkY2NkUwMEEyRDE5MSAvKiBX
ZWJNb2RlbFBsYXllclByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk1vZGVsUGxheWVyUHJv
dmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMyQjQxMUIyNzMyRjY2RTAw
QTJEMTkxIC8qIFdlYk1vZGVsUGxheWVyUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViTW9kZWxQbGF5ZXJQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDMkQwMjE2MTJBQzQxQ0IwMEU3MzJBMyAvKiBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTI5MCw2ICs5Mjk0LDE1IEBA
CiAJCQluYW1lID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNzE3
N0FENjUyNzQzRjY2QzAwMkYxMDNCIC8qIGlvcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOwor
CQkJY2hpbGRyZW4gPSAoCisJCQkJNzE3N0FENjcyNzQzRjY2QzAwMkYxMDNCIC8qIEFSS2l0SW5s
aW5lUHJldmlld01vZGVsUGxheWVySU9TLmggKi8sCisJCQkJNzE3N0FENjYyNzQzRjY2QzAwMkYx
MDNCIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLm1tICovLAorCQkJKTsKKwkJ
CXBhdGggPSBpb3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk3MjdBN0Yz
MzI0MDc4NTI3MDA0RDI5MzEgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKApAQCAtMTA2MTEsNyArMTA2MjQsMTAgQEAKIAkJQkMyQjQxMEEyNzMyRUY2
NTAwQTJEMTkxIC8qIE1vZGVsICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQk3MTc3QUQ2NTI3NDNGNjZDMDAyRjEwM0IgLyogaW9zICovLAogCQkJCUJDMkI0
MTBCMjczMkVGNzUwMEEyRDE5MSAvKiBtYWMgKi8sCisJCQkJNzE3N0FENUMyNzQzRDdBOTAwMkYx
MDNCIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmggKi8sCisJCQkJNzE3N0FENUIy
NzQzRDdBOTAwMkYxMDNCIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tICovLAog
CQkJCUJDMkI0MTFCMjczMkY2NkUwMEEyRDE5MSAvKiBXZWJNb2RlbFBsYXllclByb3ZpZGVyLmNw
cCAqLywKIAkJCQlCQzJCNDExQTI3MzJGNjZFMDBBMkQxOTEgLyogV2ViTW9kZWxQbGF5ZXJQcm92
aWRlci5oICovLAogCQkJKTsKQEAgLTEwNjIxLDggKzEwNjM3LDggQEAKIAkJQkMyQjQxMEIyNzMy
RUY3NTAwQTJEMTkxIC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCi0JCQkJQkMyQjQxMEMyNzMyRUY5NjAwQTJEMTkxIC8qIEFSS2l0SW5saW5lUHJldmll
d01vZGVsUGxheWVyLmggKi8sCi0JCQkJQkMyQjQxMEQyNzMyRUY5NjAwQTJEMTkxIC8qIEFSS2l0
SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tICovLAorCQkJCUJDMkI0MTBDMjczMkVGOTYwMEEy
RDE5MSAvKiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5oICovLAorCQkJCUJDMkI0
MTBEMjczMkVGOTYwMEEyRDE5MSAvKiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5t
bSAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVBy
ZXZpZXdNb2RlbFBsYXllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL0FSS2l0
SW5saW5lUHJldmlld01vZGVsUGxheWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2NhYWNiMzU2NWY5Zjg2NjNi
NDgyNGQ4NzdjMTRhMWU1OTNhNjMyNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oCkBAIC0wLDAg
KzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShBUktJVF9J
TkxJTkVfUFJFVklFVykKKworI2luY2x1ZGUgPFdlYkNvcmUvTW9kZWxQbGF5ZXIuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL01vZGVsUGxheWVyQ2xpZW50Lmg+CisjaW5jbHVkZSA8d3RmL0NvbXBpbGVy
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBBUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllciA6IHB1YmxpYyBXZWJDb3JlOjpNb2RlbFBsYXllciwgcHVibGljIENhbk1ha2VXZWFr
UHRyPEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyPiB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIoKTsKKworcHJvdGVjdGVkOgorICAgIGV4
cGxpY2l0IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKFdlYlBhZ2UmLCBXZWJDb3JlOjpN
b2RlbFBsYXllckNsaWVudCYpOworCisgICAgV2ViUGFnZSogcGFnZSgpIHsgcmV0dXJuIG1fcGFn
ZS5nZXQoKTsgfQorICAgIFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50KiBjbGllbnQoKSB7IHJl
dHVybiBtX2NsaWVudC5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIC8vIFdlYkNvcmU6Ok1vZGVs
UGxheWVyIG92ZXJyaWRlcy4KKyAgICB2b2lkIGxvYWQoV2ViQ29yZTo6TW9kZWwmLCBXZWJDb3Jl
OjpMYXlvdXRTaXplKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybUxheWVyKiBsYXllcigpIG92ZXJy
aWRlOworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CisKKyAgICBXZWFrUHRy
PFdlYlBhZ2U+IG1fcGFnZTsKKyAgICBXZWFrUHRyPFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50
PiBtX2NsaWVudDsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIu
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZWRiZDE0YTE5Y2QzYjM1ZGIzMDQ0NjUyYmFjMzYyMWZlY2IyNzI1MQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElu
bGluZVByZXZpZXdNb2RlbFBsYXllci5tbQpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ci5oIgorCisjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXKQorCisjaW1wb3J0ICJXZWJQ
YWdlLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitBUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllcjo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIoV2ViUGFnZSYgcGFnZSwgV2ViQ29y
ZTo6TW9kZWxQbGF5ZXJDbGllbnQmIGNsaWVudCkKKyAgICA6IG1fcGFnZSB7IHBhZ2UgfQorICAg
ICwgbV9jbGllbnQgeyBjbGllbnQgfQoreworfQorCitBUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllcjo6fkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKCkKK3sKK30KKwordm9pZCBBUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6bG9hZChXZWJDb3JlOjpNb2RlbCYsIFdlYkNvcmU6
OkxheW91dFNpemUpCit7Cit9CisKK1BsYXRmb3JtTGF5ZXIqIEFSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVyOjpsYXllcigpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgQVJL
aXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmVudGVyRnVsbHNjcmVlbigpCit7Cit9CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvV2Vi
TW9kZWxQbGF5ZXJQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwv
V2ViTW9kZWxQbGF5ZXJQcm92aWRlci5jcHAKaW5kZXggNmQxYjBkNTJjZjIwNTBhMmE3ZGFjYmEx
ZDg2MjQxMWEwMjMxMWY0OC4uZTM1YTdkZDAwNDFkNzlmNTBkYTNjN2QyOTBjYmUwMmUyYTQzNWI1
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL1dlYk1vZGVsUGxh
eWVyUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9XZWJN
b2RlbFBsYXllclByb3ZpZGVyLmNwcApAQCAtMjksNyArMjksMTEgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL01vZGVsUGxheWVyLmg+CiAKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfTUFD
KQotI2luY2x1ZGUgIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmgiCisjaW5jbHVkZSAi
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMuaCIKKyNlbGlmIEVOQUJMRShBUktJVF9J
TkxJTkVfUFJFVklFV19JT1MpCisjaW5jbHVkZSAiQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXJJT1MuaCIKKyNlbHNlCisjaW5jbHVkZSAiRHVtbXlNb2RlbFBsYXllci5oIgogI2VuZGlmCiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDQsMTMgKzQ4LDE1IEBAIFdlYk1vZGVsUGxheWVyUHJv
dmlkZXI6On5XZWJNb2RlbFBsYXllclByb3ZpZGVyKCkgPSBkZWZhdWx0OwogCiAvLyBNQVJLOiAt
IFdlYkNvcmU6Ok1vZGVsUGxheWVyUHJvdmlkZXIgb3ZlcnJpZGVzLgogCi1SZWZQdHI8V2ViQ29y
ZTo6TW9kZWxQbGF5ZXI+IFdlYk1vZGVsUGxheWVyUHJvdmlkZXI6OmNyZWF0ZU1vZGVsUGxheWVy
KFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50JiBjbGllbnQpCitSZWY8V2ViQ29yZTo6TW9kZWxQ
bGF5ZXI+IFdlYk1vZGVsUGxheWVyUHJvdmlkZXI6OmNyZWF0ZU1vZGVsUGxheWVyKFdlYkNvcmU6
Ok1vZGVsUGxheWVyQ2xpZW50JiBjbGllbnQpCiB7CiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9Q
UkVWSUVXX01BQykKLSAgICByZXR1cm4gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmNy
ZWF0ZShtX3BhZ2UsIGNsaWVudCk7CisgICAgcmV0dXJuIEFSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVyTWFjOjpjcmVhdGUobV9wYWdlLCBjbGllbnQpOworI2VsaWYgRU5BQkxFKEFSS0lUX0lO
TElORV9QUkVWSUVXX0lPUykKKyAgICByZXR1cm4gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXJJT1M6OmNyZWF0ZShtX3BhZ2UsIGNsaWVudCk7CiAjZWxzZQotICAgIFVOVVNFRF9QQVJBTShj
bGllbnQpOwotICAgIHJldHVybiBudWxscHRyOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiBEdW1teU1vZGVsUGxheWVyOjpjcmVhdGUobV9wYWdlLCBjbGllbnQpOwogI2Vu
ZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9XZWJN
b2RlbFBsYXllclByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvV2Vi
TW9kZWxQbGF5ZXJQcm92aWRlci5oCmluZGV4IDgyZTRhNTNkOWJiOGU4MWNlN2YxYjJjNWEzMzJm
M2Y0YTQ1ZjI2NWQuLjU5NzdmMmRkMTI2Y2Q2ZjQ4MmQyNmY1MTJjN2UyYzI1NTdjMDdjOTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9XZWJNb2RlbFBsYXllclBy
b3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL1dlYk1vZGVsUGxh
eWVyUHJvdmlkZXIuaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAg
Ly8gV2ViQ29yZTo6TW9kZWxQbGF5ZXJQcm92aWRlciBvdmVycmlkZXMuCi0gICAgdmlydHVhbCBS
ZWZQdHI8V2ViQ29yZTo6TW9kZWxQbGF5ZXI+IGNyZWF0ZU1vZGVsUGxheWVyKFdlYkNvcmU6Ok1v
ZGVsUGxheWVyQ2xpZW50JikgZmluYWw7CisgICAgUmVmPFdlYkNvcmU6Ok1vZGVsUGxheWVyPiBj
cmVhdGVNb2RlbFBsYXllcihXZWJDb3JlOjpNb2RlbFBsYXllckNsaWVudCYpIGZpbmFsOwogCiAg
ICAgV2ViUGFnZSYgbV9wYWdlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9Nb2RlbC9pb3MvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9pb3MvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXJJT1MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45N2ZiNjc2ODY3NWVjNjdmMzVlYzVkZTMzNTlhMzM1NWQwZTk0
Y2EwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL2lv
cy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5oCkBAIC0wLDAgKzEsNTAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklF
V19JT1MpCisKKyNpbmNsdWRlICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvTW9kZWxQbGF5ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01vZGVsUGxh
eWVyQ2xpZW50Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBBUktpdElubGluZVBy
ZXZpZXdNb2RlbFBsYXllcklPUyBmaW5hbCA6IHB1YmxpYyBBUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxBUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllcklPUz4gY3JlYXRlKFdlYlBhZ2UmLCBXZWJDb3JlOjpNb2RlbFBsYXllckNsaWVudCYp
OworICAgIHZpcnR1YWwgfkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TKCk7CisKK3By
aXZhdGU6CisgICAgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MoV2ViUGFnZSYsIFdl
YkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50Jik7CisKKyAgICAvLyBXZWJDb3JlOjpNb2RlbFBsYXll
ciBvdmVycmlkZXMuCisgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKK307CisK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwv
aW9zL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL01vZGVsL2lvcy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lZGUxNDVhNTFkMmY0MDkyMTMwMDA1NDdhMTgxMDhhMDJkMTU3ZmQ3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL2lvcy9BUktpdElu
bGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5tbQpAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJBUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllcklPUy5oIgorCisjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX0lPUykKKworI2lt
cG9ydCAiV2ViUGFnZS5oIgorI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbXBv
cnQgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVm
PEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TPiBBUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllcklPUzo6Y3JlYXRlKFdlYlBhZ2UmIHBhZ2UsIFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xp
ZW50JiBjbGllbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQVJLaXRJbmxpbmVQcmV2
aWV3TW9kZWxQbGF5ZXJJT1MocGFnZSwgY2xpZW50KSk7Cit9CisKK0FSS2l0SW5saW5lUHJldmll
d01vZGVsUGxheWVySU9TOjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUyhXZWJQYWdl
JiBwYWdlLCBXZWJDb3JlOjpNb2RlbFBsYXllckNsaWVudCYgY2xpZW50KQorICAgIDogQVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIocGFnZSwgY2xpZW50KQoreworfQorCitBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllcklPUzo6fkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9T
KCkKK3sKK30KKworLy8gTUFSSzogLSBXZWJDb3JlOjpNb2RlbFBsYXllciBvdmVycmlkZXMuCisK
K3ZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1M6OmVudGVyRnVsbHNjcmVlbigp
Cit7CisgICAgaWYgKCFjbGllbnQoKSB8fCAhcGFnZSgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoYXV0byBsYXllcklkID0gY2xpZW50KCktPnBsYXRmb3JtTGF5ZXJJRCgpKQorICAgICAg
ICBwYWdlKCktPnRha2VNb2RlbEVsZW1lbnRGdWxsc2NyZWVuKGxheWVySWQpOworfQorCit9CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9B
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0ZjAyMDcwYzQyNjU3MDY3NzYzN2NkMWExZGIyNTNiNTkzYzk2MjMw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIu
aAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9u
Y2UKLQotI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19NQUMpCi0KLSNpbmNsdWRlIDxX
ZWJDb3JlL01vZGVsUGxheWVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9Nb2RlbFBsYXllckNsaWVu
dC5oPgotI2luY2x1ZGUgPHd0Zi9Db21waWxlci5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIu
aD4KLQotT0JKQ19DTEFTUyBBU1ZJbmxpbmVQcmV2aWV3OwotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LQotY2xhc3MgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIgZmluYWwgOiBwdWJsaWMgV2Vi
Q29yZTo6TW9kZWxQbGF5ZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxBUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllcj4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8QVJLaXRJbmxpbmVQcmV2
aWV3TW9kZWxQbGF5ZXI+IGNyZWF0ZShXZWJQYWdlJiwgV2ViQ29yZTo6TW9kZWxQbGF5ZXJDbGll
bnQmKTsKLSAgICB2aXJ0dWFsIH5BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcigpOwotCi0g
ICAgc3RhdGljIHZvaWQgc2V0TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoY29uc3QgU3RyaW5n
Jik7Ci0KLXByaXZhdGU6Ci0gICAgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIoV2ViUGFn
ZSYsIFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50Jik7Ci0KLSAgICAvLyBXZWJDb3JlOjpNb2Rl
bFBsYXllciBvdmVycmlkZXMuCi0gICAgdmlydHVhbCB2b2lkIGxvYWQoV2ViQ29yZTo6TW9kZWwm
LCBXZWJDb3JlOjpMYXlvdXRTaXplKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5
ZXIqIGxheWVyKCkgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIGNyZWF0ZUZpbGUoV2ViQ29yZTo6TW9k
ZWwmKTsKLSAgICB2b2lkIGNsZWFyRmlsZSgpOwotCi0gICAgV2Vha1B0cjxXZWJQYWdlPiBtX3Bh
Z2U7Ci0gICAgV2Vha1B0cjxXZWJDb3JlOjpNb2RlbFBsYXllckNsaWVudD4gbV9jbGllbnQ7Ci0K
LSAgICBTdHJpbmcgbV9maWxlUGF0aDsKLSAgICBSZXRhaW5QdHI8QVNWSW5saW5lUHJldmlldz4g
bV9pbmxpbmVQcmV2aWV3OwotfTsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmll
d01vZGVsUGxheWVyLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZGYyNDUxYWZj
MzE4YzdkMGJlOWU4YTg0YzlmNjU0ZTJhY2JhMmM5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMv
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNzcg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKEFS
S0lUX0lOTElORV9QUkVWSUVXX01BQykKLQotI2ltcG9ydCAiQVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXIuaCIKLQotI2ltcG9ydCAiV2ViUGFnZS5oIgotI2ltcG9ydCAiV2ViUGFnZVByb3h5
TWVzc2FnZXMuaCIKLSNpbXBvcnQgPFdlYkNvcmUvTW9kZWwuaD4KLSNpbXBvcnQgPHBhbC9zcGkv
bWFjL1N5c3RlbVByZXZpZXdTUEkuaD4KLSNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgotI2lt
cG9ydCA8d3RmL1VVSUQuaD4KLQotU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLKEFzc2V0Vmll
d2VyKTsKLVNPRlRfTElOS19DTEFTUyhBc3NldFZpZXdlciwgQVNWSW5saW5lUHJldmlldyk7Ci0K
LW5hbWVzcGFjZSBXZWJLaXQgewotCi1SZWY8QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI+
IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpjcmVhdGUoV2ViUGFnZSYgcGFnZSwgV2Vi
Q29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmIGNsaWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcihwYWdlLCBjbGllbnQpKTsKLX0KLQot
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxh
eWVyKFdlYlBhZ2UmIHBhZ2UsIFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50JiBjbGllbnQpCi0g
ICAgOiBtX3BhZ2UgeyBwYWdlIH0KLSAgICAsIG1fY2xpZW50IHsgY2xpZW50IH0KLXsKLX0KLQot
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6On5BUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllcigpCi17Ci0gICAgY2xlYXJGaWxlKCk7Ci19Ci0KLXN0YXRpYyBTdHJpbmcmIHNoYXJlZE1v
ZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiBzaGFyZWRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeTsKLSAgICByZXR1cm4gc2hh
cmVkTW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnk7Ci19Ci0KLXN0YXRpYyBjb25zdCBTdHJpbmcm
IG1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCkKLXsKLSAgICByZXR1cm4gc2hhcmVkTW9kZWxF
bGVtZW50Q2FjaGVEaXJlY3RvcnkoKTsKLX0KLQotdm9pZCBBUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllcjo6c2V0TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRo
KQotewotICAgIHNoYXJlZE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCkgPSBwYXRoOwotfQot
Ci12b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpjcmVhdGVGaWxlKFdlYkNvcmU6
Ok1vZGVsJiBtb2RlbFNvdXJjZSkKLXsKLSAgICAvLyBUaGUgbmVlZCBmb3IgYSBmaWxlIGlzIG9u
bHkgdGVtcG9yYXJ5IGR1ZSB0byB0aGUgbmF0dXJlIG9mIEFTVklubGluZVByZXZpZXcsCi0gICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzU2Ny4KLQotICAg
IGNsZWFyRmlsZSgpOwotCi0gICAgYXV0byBwYXRoVG9EaXJlY3RvcnkgPSBtb2RlbEVsZW1lbnRD
YWNoZURpcmVjdG9yeSgpOwotICAgIGlmIChwYXRoVG9EaXJlY3RvcnkuaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBhdXRvIGRpcmVjdG9yeUV4aXN0cyA9IEZpbGVTeXN0ZW06OmZp
bGVFeGlzdHMocGF0aFRvRGlyZWN0b3J5KTsKLSAgICBpZiAoZGlyZWN0b3J5RXhpc3RzICYmIEZp
bGVTeXN0ZW06OmZpbGVUeXBlRm9sbG93aW5nU3ltbGlua3MocGF0aFRvRGlyZWN0b3J5KSAhPSBG
aWxlU3lzdGVtOjpGaWxlVHlwZTo6RGlyZWN0b3J5KSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmICghZGlyZWN0b3J5RXhpc3Rz
ICYmICFGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMocGF0aFRvRGlyZWN0b3J5KSkgewot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIC8vIFdlIG5lZWQgdG8gc3VwcG9ydCAucmVhbGl0eSBmaWxlcyBhcyB3ZWxsLCBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NTY4LgotICAgIGF1dG8gZmlsZU5h
bWUgPSBGaWxlU3lzdGVtOjplbmNvZGVGb3JGaWxlTmFtZShjcmVhdGVDYW5vbmljYWxVVUlEU3Ry
aW5nKCkpICsgIi51c2R6IjsKLSAgICBhdXRvIGZpbGVQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KHBhdGhUb0RpcmVjdG9yeSwgZmlsZU5hbWUpOwotICAgIGF1dG8g
ZmlsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKGZpbGVQYXRoLCBGaWxlU3lzdGVtOjpGaWxlT3Bl
bk1vZGU6OldyaXRlKTsKLSAgICBpZiAoZmlsZSA8PSAwKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBGaWxlU3lzdGVtOjp3cml0ZVRvRmlsZShmaWxlLCBtb2RlbFNvdXJjZS5kYXRhKCktPmRhdGEo
KSwgbW9kZWxTb3VyY2UuZGF0YSgpLT5zaXplKCkpOwotICAgIEZpbGVTeXN0ZW06OmNsb3NlRmls
ZShmaWxlKTsKLSAgICBtX2ZpbGVQYXRoID0gZmlsZVBhdGg7Ci19Ci0KLXZvaWQgQVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmNsZWFyRmlsZSgpCi17Ci0gICAgaWYgKG1fZmlsZVBhdGgu
aXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBGaWxlU3lzdGVtOjpkZWxldGVGaWxl
KG1fZmlsZVBhdGgpOwotICAgIG1fZmlsZVBhdGggPSBlbXB0eVN0cmluZygpOwotfQotCi0vLyBN
QVJLOiAtIFdlYkNvcmU6Ok1vZGVsUGxheWVyIG92ZXJyaWRlcy4KLQotdm9pZCBBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllcjo6bG9hZChXZWJDb3JlOjpNb2RlbCYgbW9kZWxTb3VyY2UsIFdl
YkNvcmU6OkxheW91dFNpemUgc2l6ZSkKLXsKLSAgICBhdXRvIHN0cm9uZ0NsaWVudCA9IG1fY2xp
ZW50LmdldCgpOwotICAgIGlmICghc3Ryb25nQ2xpZW50KQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBhdXRvKiBzdHJvbmdQYWdlID0gbV9wYWdlLmdldCgpOwotICAgIGlmICghc3Ryb25nUGFnZSkg
ewotICAgICAgICBzdHJvbmdDbGllbnQtPmRpZEZhaWxMb2FkaW5nKCp0aGlzLCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yIHsgV2ViQ29yZTo6ZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgbW9k
ZWxTb3VyY2UudXJsKCksICJXZWJQYWdlIGRlc3Ryb3llZCJfcyB9KTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIGNyZWF0ZUZpbGUobW9kZWxTb3VyY2UpOwotCi0gICAgbV9pbmxpbmVQ
cmV2aWV3ID0gYWRvcHROUyhbYWxsb2NBU1ZJbmxpbmVQcmV2aWV3SW5zdGFuY2UoKSBpbml0V2l0
aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKV0pOwot
ICAgIExPRyhNb2RlbEVsZW1lbnQsICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6bW9k
ZWxEaWRDaGFuZ2UoKSBjcmVhdGVkIHByZXZpZXcgd2l0aCBVVUlEICVzIGFuZCBzaXplICVmIHgg
JWYuIiwgKChTdHJpbmcpW21faW5saW5lUHJldmlldyB1dWlkXS5VVUlEU3RyaW5nKS51dGY4KCku
ZGF0YSgpLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpOwotCi0gICAgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChFeHBlY3RlZDxzdGQ6OnBhaXI8U3RyaW5nLCB1aW50MzJfdD4sIFdlYkNvcmU6
OlJlc291cmNlRXJyb3I+KT4gY29tcGxldGlvbkhhbmRsZXIgPSBbd2Vha1NlbGYgPSBXZWFrUHRy
IHsgKnRoaXMgfV0gKEV4cGVjdGVkPHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90PiwgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byBzdHJvbmdT
ZWxmID0gd2Vha1NlbGYuZ2V0KCk7Ci0gICAgICAgIGlmICghc3Ryb25nU2VsZikKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICBhdXRvIHN0cm9uZ0NsaWVudCA9IHN0cm9uZ1NlbGYtPm1f
Y2xpZW50LmdldCgpOwotICAgICAgICBpZiAoIXN0cm9uZ0NsaWVudCkKLSAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICAgICAgTE9HKE1vZGVsRWxl
bWVudCwgIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjppbmxpbmVQcmV2aWV3RGlkT2J0
YWluQ29udGV4dElkKCkgcmVjZWl2ZWQgZXJyb3IgZnJvbSBVSVByb2Nlc3MiKTsKLSAgICAgICAg
ICAgIHN0cm9uZ0NsaWVudC0+ZGlkRmFpbExvYWRpbmcoKnN0cm9uZ1NlbGYsIHJlc3VsdC5lcnJv
cigpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGF1dG8mIFt1
dWlkLCBjb250ZXh0SWRdID0gKnJlc3VsdDsKLSAgICAgICAgU3RyaW5nIGV4cGVjdGVkVVVJRCA9
IFtzdHJvbmdTZWxmLT5tX2lubGluZVByZXZpZXcgdXVpZF0uVVVJRFN0cmluZzsKLQotICAgICAg
ICBpZiAodXVpZCAhPSBleHBlY3RlZFVVSUQpIHsKLSAgICAgICAgICAgIExPRyhNb2RlbEVsZW1l
bnQsICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6aW5saW5lUHJldmlld0RpZE9idGFp
bkNvbnRleHRJZCgpIFVVSUQgbWlzbWF0Y2gsIHJlY2VpdmVkICVzIGJ1dCBleHBlY3RlZCAlcy4i
LCB1dWlkLnV0ZjgoKS5kYXRhKCksIGV4cGVjdGVkVVVJRC51dGY4KCkuZGF0YSgpKTsKLSAgICAg
ICAgICAgIHN0cm9uZ0NsaWVudC0+ZGlkRmFpbExvYWRpbmcoKnN0cm9uZ1NlbGYsIFdlYkNvcmU6
OlJlc291cmNlRXJyb3IgeyBXZWJDb3JlOjplcnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCB7
IH0sIG1ha2VTdHJpbmcoIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjppbmxpbmVQcmV2
aWV3RGlkT2J0YWluQ29udGV4dElkKCkgVVVJRCBtaXNtYXRjaCwgcmVjZWl2ZWQgIiwgdXVpZCwg
IiBidXQgZXhwZWN0ZWQgIiwgZXhwZWN0ZWRVVUlELCAiLiIpIH0pOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgW3N0cm9uZ1NlbGYtPm1faW5saW5lUHJldmlldyBz
ZXRSZW1vdGVDb250ZXh0OmNvbnRleHRJZF07Ci0gICAgICAgIExPRyhNb2RlbEVsZW1lbnQsICJB
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6aW5saW5lUHJldmlld0RpZE9idGFpbkNvbnRl
eHRJZCgpIHN1Y2Nlc3NmdWxseSBlc3RhYmxpc2hlZCByZW1vdGUgY29ubmVjdGlvbiBmb3IgVVVJ
RCAlcy4iLCB1dWlkLnV0ZjgoKS5kYXRhKCkpOwotCi0gICAgICAgIHN0cm9uZ0NsaWVudC0+ZGlk
RmluaXNoTG9hZGluZygqc3Ryb25nU2VsZik7Ci0gICAgfTsKLSAgICAKLSAgICBzdHJvbmdQYWdl
LT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TW9kZWxFbGVtZW50
RGlkQ3JlYXRlUHJldmlldyhVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgobV9maWxlUGF0
aCksIFttX2lubGluZVByZXZpZXcgdXVpZF0uVVVJRFN0cmluZywgc2l6ZSksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKLX0KLQotUGxhdGZvcm1MYXllciogQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXI6OmxheWVyKCkKLXsKLSAgICByZXR1cm4gW21faW5saW5lUHJldmlldyBsYXll
cl07Ci19Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVy
TWFjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2I1NTliYzIzNDg4MGY4YTQyODBkMTVkNTU0OTRkYjg2MmE1MjYx
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMv
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMuaApAQCAtMCwwICsxLDYzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdf
TUFDKQorCisjaW5jbHVkZSAiQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL01vZGVsUGxheWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Nb2RlbFBsYXll
ckNsaWVudC5oPgorI2luY2x1ZGUgPHd0Zi9Db21waWxlci5oPgorI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KKworT0JKQ19DTEFTUyBBU1ZJbmxpbmVQcmV2aWV3OworCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMgZmluYWwgOiBw
dWJsaWMgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIgeworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM+IGNyZWF0ZShXZWJQYWdlJiwg
V2ViQ29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmKTsKKyAgICB2aXJ0dWFsIH5BUktpdElubGluZVBy
ZXZpZXdNb2RlbFBsYXllck1hYygpOworCisgICAgc3RhdGljIHZvaWQgc2V0TW9kZWxFbGVtZW50
Q2FjaGVEaXJlY3RvcnkoY29uc3QgU3RyaW5nJik7CisKK3ByaXZhdGU6CisgICAgQVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMoV2ViUGFnZSYsIFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xp
ZW50Jik7CisKKyAgICAvLyBXZWJDb3JlOjpNb2RlbFBsYXllciBvdmVycmlkZXMuCisgICAgdm9p
ZCBsb2FkKFdlYkNvcmU6Ok1vZGVsJiwgV2ViQ29yZTo6TGF5b3V0U2l6ZSkgb3ZlcnJpZGU7Cisg
ICAgUGxhdGZvcm1MYXllciogbGF5ZXIoKSBvdmVycmlkZTsKKworICAgIHZvaWQgY3JlYXRlRmls
ZShXZWJDb3JlOjpNb2RlbCYpOworICAgIHZvaWQgY2xlYXJGaWxlKCk7CisKKyAgICBTdHJpbmcg
bV9maWxlUGF0aDsKKyAgICBSZXRhaW5QdHI8QVNWSW5saW5lUHJldmlldz4gbV9pbmxpbmVQcmV2
aWV3OworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxh
eWVyTWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjN2MzZmI4ZGExYWZmMDlkYWFjMDEwYTM1MmFmYWQ5ZTcy
ZGFlNzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwv
bWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLm1tCkBAIC0wLDAgKzEsMTc1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJBUktpdElubGluZVBy
ZXZpZXdNb2RlbFBsYXllck1hYy5oIgorCisjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVX
X01BQykKKworI2ltcG9ydCAiV2ViUGFnZS5oIgorI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVzc2Fn
ZXMuaCIKKyNpbXBvcnQgPFdlYkNvcmUvTW9kZWwuaD4KKyNpbXBvcnQgPHBhbC9zcGkvbWFjL1N5
c3RlbVByZXZpZXdTUEkuaD4KKyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgorI2ltcG9ydCA8
d3RmL1VVSUQuaD4KKworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLKEFzc2V0Vmlld2VyKTsK
K1NPRlRfTElOS19DTEFTUyhBc3NldFZpZXdlciwgQVNWSW5saW5lUHJldmlldyk7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitSZWY8QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM+IEFS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpjcmVhdGUoV2ViUGFnZSYgcGFnZSwgV2Vi
Q29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmIGNsaWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYyhwYWdlLCBjbGllbnQpKTsKK30K
KworQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OkFSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVyTWFjKFdlYlBhZ2UmIHBhZ2UsIFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50JiBj
bGllbnQpCisgICAgOiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcihwYWdlLCBjbGllbnQp
Cit7Cit9CisKK0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjp+QVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXJNYWMoKQoreworICAgIGNsZWFyRmlsZSgpOworfQorCitzdGF0aWMg
U3RyaW5nJiBzaGFyZWRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc2hhcmVkTW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnk7
CisgICAgcmV0dXJuIHNoYXJlZE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5OworfQorCitzdGF0
aWMgY29uc3QgU3RyaW5nJiBtb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpCit7CisgICAgcmV0
dXJuIHNoYXJlZE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCk7Cit9CisKK3ZvaWQgQVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OnNldE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5
KGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBzaGFyZWRNb2RlbEVsZW1lbnRDYWNoZURpcmVj
dG9yeSgpID0gcGF0aDsKK30KKwordm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1h
Yzo6Y3JlYXRlRmlsZShXZWJDb3JlOjpNb2RlbCYgbW9kZWxTb3VyY2UpCit7CisgICAgLy8gVGhl
IG5lZWQgZm9yIGEgZmlsZSBpcyBvbmx5IHRlbXBvcmFyeSBkdWUgdG8gdGhlIG5hdHVyZSBvZiBB
U1ZJbmxpbmVQcmV2aWV3LAorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjc1NjcuCisKKyAgICBjbGVhckZpbGUoKTsKKworICAgIGF1dG8gcGF0aFRvRGly
ZWN0b3J5ID0gbW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoKTsKKyAgICBpZiAocGF0aFRvRGly
ZWN0b3J5LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBkaXJlY3RvcnlF
eGlzdHMgPSBGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHBhdGhUb0RpcmVjdG9yeSk7CisgICAgaWYg
KGRpcmVjdG9yeUV4aXN0cyAmJiBGaWxlU3lzdGVtOjpmaWxlVHlwZUZvbGxvd2luZ1N5bWxpbmtz
KHBhdGhUb0RpcmVjdG9yeSkgIT0gRmlsZVN5c3RlbTo6RmlsZVR5cGU6OkRpcmVjdG9yeSkgewor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBpZiAoIWRpcmVjdG9yeUV4aXN0cyAmJiAhRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVz
KHBhdGhUb0RpcmVjdG9yeSkpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBXZSBuZWVkIHRvIHN1cHBvcnQgLnJlYWxpdHkg
ZmlsZXMgYXMgd2VsbCwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NzU2OC4KKyAgICBhdXRvIGZpbGVOYW1lID0gRmlsZVN5c3RlbTo6ZW5jb2RlRm9yRmlsZU5hbWUo
Y3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKSArICIudXNkeiI7CisgICAgYXV0byBmaWxlUGF0
aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChwYXRoVG9EaXJlY3Rvcnks
IGZpbGVOYW1lKTsKKyAgICBhdXRvIGZpbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShmaWxlUGF0
aCwgRmlsZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpXcml0ZSk7CisgICAgaWYgKGZpbGUgPD0gMCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUoZmlsZSwgbW9k
ZWxTb3VyY2UuZGF0YSgpLT5kYXRhKCksIG1vZGVsU291cmNlLmRhdGEoKS0+c2l6ZSgpKTsKKyAg
ICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUoZmlsZSk7CisgICAgbV9maWxlUGF0aCA9IGZpbGVQYXRo
OworfQorCit2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpjbGVhckZpbGUo
KQoreworICAgIGlmIChtX2ZpbGVQYXRoLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShtX2ZpbGVQYXRoKTsKKyAgICBtX2ZpbGVQYXRoID0g
ZW1wdHlTdHJpbmcoKTsKK30KKworLy8gTUFSSzogLSBXZWJDb3JlOjpNb2RlbFBsYXllciBvdmVy
cmlkZXMuCisKK3ZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmxvYWQoV2Vi
Q29yZTo6TW9kZWwmIG1vZGVsU291cmNlLCBXZWJDb3JlOjpMYXlvdXRTaXplIHNpemUpCit7Cisg
ICAgYXV0byBzdHJvbmdDbGllbnQgPSBjbGllbnQoKTsKKyAgICBpZiAoIXN0cm9uZ0NsaWVudCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogc3Ryb25nUGFnZSA9IHBhZ2UoKTsKKyAgICBp
ZiAoIXN0cm9uZ1BhZ2UpIHsKKyAgICAgICAgc3Ryb25nQ2xpZW50LT5kaWRGYWlsTG9hZGluZygq
dGhpcywgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciB7IFdlYkNvcmU6OmVycm9yRG9tYWluV2ViS2l0
SW50ZXJuYWwsIDAsIG1vZGVsU291cmNlLnVybCgpLCAiV2ViUGFnZSBkZXN0cm95ZWQiX3MgfSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjcmVhdGVGaWxlKG1vZGVsU291cmNlKTsK
KworICAgIG1faW5saW5lUHJldmlldyA9IGFkb3B0TlMoW2FsbG9jQVNWSW5saW5lUHJldmlld0lu
c3RhbmNlKCkgaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIHNpemUud2lkdGgoKSwgc2l6
ZS5oZWlnaHQoKSldKTsKKyAgICBMT0coTW9kZWxFbGVtZW50LCAiQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXI6Om1vZGVsRGlkQ2hhbmdlKCkgY3JlYXRlZCBwcmV2aWV3IHdpdGggVVVJRCAl
cyBhbmQgc2l6ZSAlZiB4ICVmLiIsICgoU3RyaW5nKVttX2lubGluZVByZXZpZXcgdXVpZF0uVVVJ
RFN0cmluZykudXRmOCgpLmRhdGEoKSwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKKwor
ICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8c3RkOjpwYWlyPFN0cmluZywgdWlu
dDMyX3Q+LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPik+IGNvbXBsZXRpb25IYW5kbGVyID0gW3dl
YWtTZWxmID0gV2Vha1B0ciB7ICp0aGlzIH1dIChFeHBlY3RlZDxzdGQ6OnBhaXI8U3RyaW5nLCB1
aW50MzJfdD4sIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+IHJlc3VsdCkgbXV0YWJsZSB7CisgICAg
ICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICBpZiAoIXN0cm9u
Z1NlbGYpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byBzdHJvbmdDbGllbnQg
PSBzdHJvbmdTZWxmLT5jbGllbnQoKTsKKyAgICAgICAgaWYgKCFzdHJvbmdDbGllbnQpCisgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgICAgIExP
RyhNb2RlbEVsZW1lbnQsICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6aW5saW5lUHJl
dmlld0RpZE9idGFpbkNvbnRleHRJZCgpIHJlY2VpdmVkIGVycm9yIGZyb20gVUlQcm9jZXNzIik7
CisgICAgICAgICAgICBzdHJvbmdDbGllbnQtPmRpZEZhaWxMb2FkaW5nKCpzdHJvbmdTZWxmLCBy
ZXN1bHQuZXJyb3IoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICBhdXRvJiBbdXVpZCwgY29udGV4dElkXSA9ICpyZXN1bHQ7CisgICAgICAgIFN0cmluZyBleHBl
Y3RlZFVVSUQgPSBbc3Ryb25nU2VsZi0+bV9pbmxpbmVQcmV2aWV3IHV1aWRdLlVVSURTdHJpbmc7
CisKKyAgICAgICAgaWYgKHV1aWQgIT0gZXhwZWN0ZWRVVUlEKSB7CisgICAgICAgICAgICBMT0co
TW9kZWxFbGVtZW50LCAiQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmlubGluZVByZXZp
ZXdEaWRPYnRhaW5Db250ZXh0SWQoKSBVVUlEIG1pc21hdGNoLCByZWNlaXZlZCAlcyBidXQgZXhw
ZWN0ZWQgJXMuIiwgdXVpZC51dGY4KCkuZGF0YSgpLCBleHBlY3RlZFVVSUQudXRmOCgpLmRhdGEo
KSk7CisgICAgICAgICAgICBzdHJvbmdDbGllbnQtPmRpZEZhaWxMb2FkaW5nKCpzdHJvbmdTZWxm
LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHsgV2ViQ29yZTo6ZXJyb3JEb21haW5XZWJLaXRJbnRl
cm5hbCwgMCwgeyB9LCBtYWtlU3RyaW5nKCJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6
aW5saW5lUHJldmlld0RpZE9idGFpbkNvbnRleHRJZCgpIFVVSUQgbWlzbWF0Y2gsIHJlY2VpdmVk
ICIsIHV1aWQsICIgYnV0IGV4cGVjdGVkICIsIGV4cGVjdGVkVVVJRCwgIi4iKSB9KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFtzdHJvbmdTZWxmLT5tX2lubGlu
ZVByZXZpZXcgc2V0UmVtb3RlQ29udGV4dDpjb250ZXh0SWRdOworICAgICAgICBMT0coTW9kZWxF
bGVtZW50LCAiQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmlubGluZVByZXZpZXdEaWRP
YnRhaW5Db250ZXh0SWQoKSBzdWNjZXNzZnVsbHkgZXN0YWJsaXNoZWQgcmVtb3RlIGNvbm5lY3Rp
b24gZm9yIFVVSUQgJXMuIiwgdXVpZC51dGY4KCkuZGF0YSgpKTsKKworICAgICAgICBzdHJvbmdD
bGllbnQtPmRpZEZpbmlzaExvYWRpbmcoKnN0cm9uZ1NlbGYpOworICAgIH07CisgICAgCisgICAg
c3Ryb25nUGFnZS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Ok1v
ZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXcoVVJMOjpmaWxlVVJMV2l0aEZpbGVTeXN0ZW1QYXRo
KG1fZmlsZVBhdGgpLCBbbV9pbmxpbmVQcmV2aWV3IHV1aWRdLlVVSURTdHJpbmcsIHNpemUpLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK1BsYXRmb3JtTGF5ZXIqIEFSS2l0SW5s
aW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpsYXllcigpCit7CisgICAgcmV0dXJuIFttX2lubGlu
ZVByZXZpZXcgbGF5ZXJdOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCmluZGV4IDVmMGY2M2UwZmFhMTdmYjg4MGY1OGU2YWJhNWE5NjJhMTU1
NDM5MTMuLjU3MmYzNmRkMDczZWRhNjM1ODY3ZTE1ZmU4ODRkOGI4NzQ3YzJlY2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogI2lmIEVOQUJMRShBUktJVF9JTkxJTkVf
UFJFVklFV19NQUMpCi0jaW5jbHVkZSAiQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaCIK
KyNpbmNsdWRlICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5oIgogI2VuZGlmCiAK
ICNpZiAhT1MoV0lORE9XUykKQEAgLTYwNSw3ICs2MDUsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnNl
dFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJz
JiYgcAogCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKICAgICBpZiAoIXBh
cmFtZXRlcnMubW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQotICAgICAgICBB
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6c2V0TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rv
cnkocGFyYW1ldGVycy5tb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSk7CisgICAgICAgIEFSS2l0
SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpzZXRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9y
eShwYXJhbWV0ZXJzLm1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KTsKICNlbmRpZgogCiAgICAg
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRW5hYmxlZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444395</attachid>
            <date>2021-11-16 08:44:45 -0800</date>
            <delta_ts>2021-11-16 09:04:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233192-20211116174444.patch</filename>
            <type>text/plain</type>
            <size>57141</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDMzMTRkNTUyNTU5NmYy
NDY3YjIyNmYxNThjYTAwNDRlYTIzMmJjOC4uMzFkMDQ1YTcwODNmMjc3ZGJhZGM1OTNiYjVhYzU4
NGE4ODEwNTUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIxLTExLTE2ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gQ3JlYXRl
IGlPUyBNb2RlbFBsYXllciBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIDIzMjg0OCBmYWN0b3JlZCBwbGF0Zm9ybS1zcGVj
aWZpYyBjb2RlIG91dCBvZiBIVE1MTW9kZWxFbGVtZW50IHdpdGggdGhlIHVzZSBvZiBhIG5ldyBN
b2RlbFBsYXllcgorICAgICAgICBhYnN0cmFjdGlvbiB3aXRoIGEgY29uY3JldGUgQVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXIgaW1wbGVtZW50YXRpb24uIFRoaXMgZmlyc3QgcGF0Y2ggbW92
ZWQgdGhlCisgICAgICAgIG1hY09TIGNvZGUsIGFuZCB0aGlzIHBhdGNoIG1vdmVzIHRoZSByZW1h
aW5pbmcgaU9TIGNvZGUuCisKKyAgICAgICAgVG8gZG8gc28gd2UgbWFrZSBBUktpdElubGluZVBy
ZXZpZXdNb2RlbFBsYXllciBhIHBhcmVudCBjbGFzcyBvZiB0d28gcGxhdGZvcm0tc3BlY2lmaWMg
c3ViY2xhc3NlczoKKyAgICAgICAgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMgYW5k
IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLiBXZSBhZGQgYSBuZXcgZW50ZXJGdWxs
c2NyZWVuKCkKKyAgICAgICAgbWV0aG9kIHRvIE1vZGVsUGxheWVyLCB3aXRoIGFuIGltcGxlbWVu
dGF0aW9uIGluIHRoZSBpT1Mgc3ViY2xhc3MuIFRvIHN1cHBvcnQgdGhpcyBuZXcgbWV0aG9kLCB3
ZQorICAgICAgICBhZGQgYSBuZXcgcGxhdGZvcm1MYXllcklEKCkgb24gTW9kZWxQbGF5ZXJDbGll
bnQuCisKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50Ojptb2RlbERpZENoYW5nZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50Ojp1c2VzUGxhdGZvcm1MYXllciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50OjpwbGF0Zm9ybUxheWVy
SUQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVu
KToKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oOgor
ICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oOgorICAgICAgICAq
IE1vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllckNsaWVudC5oOgorICAgICAgICAqIE1v
ZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllclByb3ZpZGVyLmg6CisgICAgICAgICogTW9k
dWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RHVtbXlNb2RlbFBsYXllcjo6ZW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKiBN
b2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oOgorICAgICAgICAq
IE1vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyUHJvdmlkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RHVtbXlNb2RlbFBsYXllclByb3ZpZGVyOjpjcmVhdGVNb2Rl
bFBsYXllcik6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9k
ZWxQbGF5ZXJQcm92aWRlci5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2Vu
ZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLmg6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVt
ZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpT
Y2VuZUtpdE1vZGVsUGxheWVyOjplbnRlckZ1bGxzY3JlZW4pOgorCiAyMDIxLTExLTE2ICBBbmRy
ZXUgQm90ZWxsYSAgPGFuZHJldUBhbmRyZXVib3RlbGxhLmNvbT4KIAogICAgICAgICBFbXB0eSA8
aW5wdXQgdHlwZT1maWxlPiBpcyByZXByZXNlbnRlZCBpbmNvcnJlY3RseSBpbiBGb3JtRGF0YQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCBlNDVlNDhkMjgwYjM2ZGFlZGU2MTliNzJmZWM3Y2Q4YzZiOGJmYjc4Li4xYjk3
ZGVhYjU3MWQ2OWU4MWFlZmMyYmJlYmY0MTE3M2JlZWFhZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDUyIEBACisyMDIxLTExLTE2ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgor
CisgICAgICAgIFtNb2RlbF0gQ3JlYXRlIGlPUyBNb2RlbFBsYXllciBpbXBsZW1lbnRhdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMTkyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIDIzMjg0
OCBmYWN0b3JlZCBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIG91dCBvZiBIVE1MTW9kZWxFbGVtZW50
IHdpdGggdGhlIHVzZSBvZiBhIG5ldyBNb2RlbFBsYXllcgorICAgICAgICBhYnN0cmFjdGlvbiB3
aXRoIGEgY29uY3JldGUgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIgaW1wbGVtZW50YXRp
b24uIFRoaXMgZmlyc3QgcGF0Y2ggbW92ZWQgdGhlCisgICAgICAgIG1hY09TIGNvZGUsIGFuZCB0
aGlzIHBhdGNoIG1vdmVzIHRoZSByZW1haW5pbmcgaU9TIGNvZGUuCisKKyAgICAgICAgVG8gZG8g
c28gd2UgbWFrZSBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllciBhIHBhcmVudCBjbGFzcyBv
ZiB0d28gcGxhdGZvcm0tc3BlY2lmaWMgc3ViY2xhc3NlczoKKyAgICAgICAgQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXJNYWMgYW5kIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9T
LiBXZSBhZGQgYSBuZXcgZW50ZXJGdWxsc2NyZWVuKCkKKyAgICAgICAgbWV0aG9kIHRvIE1vZGVs
UGxheWVyLCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGluIHRoZSBpT1Mgc3ViY2xhc3MuIFRvIHN1
cHBvcnQgdGhpcyBuZXcgbWV0aG9kLCB3ZQorICAgICAgICBhZGQgYSBuZXcgcGxhdGZvcm1MYXll
cklEKCkgb24gTW9kZWxQbGF5ZXJDbGllbnQuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0
OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFdlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllci5oLgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllcjo6cGFnZSk6CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVyOjpjbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXIubW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9Nb2RlbC9XZWJNb2RlbFBsYXllclByb3ZpZGVyLmguCisgICAgICAgIChXZWJLaXQ6OkFSS2l0
SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcik6
CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjp+QVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVBy
ZXZpZXdNb2RlbFBsYXllcjo6bG9hZCk6CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVyOjpsYXllcik6CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVyOjplbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TW9kZWwvV2ViTW9kZWxQbGF5ZXJQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1v
ZGVsUGxheWVyUHJvdmlkZXI6OmNyZWF0ZU1vZGVsUGxheWVyKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL01vZGVsL1dlYk1vZGVsUGxheWVyUHJvdmlkZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L01vZGVsL2lvcy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvV2ViTW9kZWxQbGF5ZXJQcm92aWRlci5o
LgorICAgICAgICAqIFdlYlByb2Nlc3MvTW9kZWwvaW9zL0FSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVySU9TLm1tOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwv
V2ViTW9kZWxQbGF5ZXJQcm92aWRlci5jcHAuCisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVySU9TOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpBUktpdElu
bGluZVByZXZpZXdNb2RlbFBsYXllcklPUzo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJ
T1MpOgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUzo6
fkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TKToKKyAgICAgICAgKFdlYktpdDo6QVJL
aXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1M6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMu
aDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL01vZGVsL21h
Yy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5tbTogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXIubW0uCisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFj
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ck1hYzo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMpOgorICAgICAgICAoV2ViS2l0
OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6fkFSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVyTWFjKToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXJNYWM6OnNldE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KToKKyAgICAgICAgKFdlYktp
dDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmNyZWF0ZUZpbGUpOgorICAgICAg
ICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6Y2xlYXJGaWxlKToK
KyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmxvYWQp
OgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6bGF5
ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKToKKwogMjAyMS0x
MS0xNiAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6Om1fc3dhcENoYWluIGlzIHVudXNlZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVs
ZW1lbnQuY3BwCmluZGV4IDFiOGVlMjY1NzQ3YTNhNDI3MGI3MzcyZTIzZTY0ZWE0YjYyOGIyZjYu
LjU1MjNiZDZiYzVmODQ0Y2M0ZTBjNzY1Y2ZjMDc5OTM1ZmY4MGFiOGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVu
dC5jcHAKQEAgLTMwLDggKzMwLDExIEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRl
ci5oIgogI2luY2x1ZGUgIkRPTVByb21pc2VQcm94eS5oIgorI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRWxlbWVudENoaWxkSXRlcmF0b3IuaCIKICNpbmNsdWRlICJFbGVtZW50SW5s
aW5lcy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKKyNpbmNsdWRlICJHcmFwaGljc0xh
eWVyQ0EuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRp
b21zLmgiCiAjaW5jbHVkZSAiSFRNTFNvdXJjZUVsZW1lbnQuaCIKQEAgLTQwLDIyICs0MywxNCBA
QAogI2luY2x1ZGUgIk1vZGVsLmgiCiAjaW5jbHVkZSAiTW9kZWxQbGF5ZXIuaCIKICNpbmNsdWRl
ICJNb2RlbFBsYXllclByb3ZpZGVyLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlJl
bmRlckxheWVyLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCiAjaW5jbHVkZSAi
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlck1vZGVsLmgiCiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAKLSNp
ZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfSU9TKQotI2luY2x1ZGUgIkNocm9tZS5oIgot
I2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVk
ZSAiR3JhcGhpY3NMYXllci5oIgotI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDQS5oIgotI2luY2x1
ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJSZW5kZXJMYXllci5oIgotI2luY2x1ZGUgIlJlbmRlckxh
eWVyQmFja2luZy5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRF9JTVBMKEhUTUxNb2RlbEVsZW1lbnQpOwpAQCAtMjM0LDIzICsyMjksMTcg
QEAgdm9pZCBIVE1MTW9kZWxFbGVtZW50Ojptb2RlbERpZENoYW5nZSgpCiAgICAgaWYgKCFyZW5k
ZXJlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gTk9URTogRm9yIG5vdywgY3JlYXRlTW9k
ZWxQbGF5ZXIgcmV0dXJuaW5nIG51bGxwdHIgbWVhbnMgdGhhdCB0aGUgR3JhcGhpY3NMYXllcjo6
c2V0Q29udGVudHNUb01vZGVsKCkgcGF0aAotICAgIC8vIGlzIGJlaW5nIHVzZWQsIGJ1dCB0aGF0
IG5lZWRzIHRvIGJlIHBoYXNlZCBvdXQgdG8gYWxsb3cgYmlkaXJlY3Rpb25hbCBjb21tdW5pY2F0
aW9uIGJldHdlZW4gdGhlIG1vZGVsIHBsYXllcgotICAgIC8vIGFuZCB0aGUgSFRNTE1vZGVsRWxl
bWVudC4gT25jZSB0aGF0IGlzIHBoYXNlZCBvdXQsIGNyZWF0ZU1vZGVsUGxheWVyKCkgc2hvdWxk
IGJlIHVwZGF0ZWQgdG8gcmV0dXJuIGEgUmVmPD4uCiAgICAgbV9tb2RlbFBsYXllciA9IHBhZ2Ut
Pm1vZGVsUGxheWVyUHJvdmlkZXIoKS5jcmVhdGVNb2RlbFBsYXllcigqdGhpcyk7Ci0gICAgaWYg
KCFtX21vZGVsUGxheWVyKQotICAgICAgICByZXR1cm47CiAKICAgICAvLyBGSVhNRTogV2UgbmVl
ZCB0byB0ZWxsIHRoZSBwbGF5ZXIgaWYgdGhlIHNpemUgY2hhbmdlcyBhcyB3ZWxsLCBzbyBwYXNz
aW5nIHRoaXMKICAgICAvLyBpbiB3aXRoIGxvYWQgcHJvYmFibHkgZG9lc24ndCBtYWtlIHNlbnNl
LgogICAgIGF1dG8gc2l6ZSA9IHJlbmRlcmVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdChmYWxz
ZSkuc2l6ZSgpOwotCiAgICAgbV9tb2RlbFBsYXllci0+bG9hZCgqbV9tb2RlbCwgc2l6ZSk7CiB9
CiAKIGJvb2wgSFRNTE1vZGVsRWxlbWVudDo6dXNlc1BsYXRmb3JtTGF5ZXIoKSBjb25zdAogewot
ICAgIHJldHVybiBtX21vZGVsUGxheWVyICE9IG51bGxwdHI7CisgICAgcmV0dXJuIG1fbW9kZWxQ
bGF5ZXIgJiYgbV9tb2RlbFBsYXllci0+bGF5ZXIoKTsKIH0KIAogUGxhdGZvcm1MYXllciogSFRN
TE1vZGVsRWxlbWVudDo6cGxhdGZvcm1MYXllcigpIGNvbnN0CkBAIC0yNzEsMzAgKzI2MCwzMSBA
QCB2b2lkIEhUTUxNb2RlbEVsZW1lbnQ6OmRpZEZhaWxMb2FkaW5nKE1vZGVsUGxheWVyJiBtb2Rl
bFBsYXllciwgY29uc3QgUmVzb3VyY2VFcgogICAgIEFTU0VSVF9VTlVTRUQobW9kZWxQbGF5ZXIs
ICZtb2RlbFBsYXllciA9PSBtX21vZGVsUGxheWVyKTsKIH0KIAotLy8gTUFSSzogLSBGdWxsc2Ny
ZWVuIHN1cHBvcnQuCi0KLXZvaWQgSFRNTE1vZGVsRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuKCkK
K0dyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBIVE1MTW9kZWxFbGVtZW50OjpwbGF0Zm9y
bUxheWVySUQoKQogewotLy8gRklYTUU6IEFkZCBhIG5ldyBtZXRob2QgdG8gTW9kZWxQbGF5ZXIg
Zm9yIGVudGVyaW5nIGZ1bGxzY3JlZW4gYW5kIG1vdmUgdGhpcyBpbnRvIHRoZSBpT1MgQVJLaXQg
aW5saW5lIHByZXZpZXcgTW9kZWxQbGF5ZXIgaW1wbGVtZW50YXRpb24uCi0jaWYgRU5BQkxFKEFS
S0lUX0lOTElORV9QUkVWSUVXX0lPUykKICAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdl
KCk7CiAgICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiAwOwog
CiAgICAgaWYgKCFpczxSZW5kZXJMYXllck1vZGVsT2JqZWN0Pih0aGlzLT5yZW5kZXJlcigpKSkK
LSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gMDsKIAogICAgIGF1dG8mIHJlbmRlckxh
eWVyTW9kZWxPYmplY3QgPSBkb3duY2FzdDxSZW5kZXJMYXllck1vZGVsT2JqZWN0PigqdGhpcy0+
cmVuZGVyZXIoKSk7CiAgICAgaWYgKCFyZW5kZXJMYXllck1vZGVsT2JqZWN0LmlzQ29tcG9zaXRl
ZCgpIHx8ICFyZW5kZXJMYXllck1vZGVsT2JqZWN0LmxheWVyKCkgfHwgIXJlbmRlckxheWVyTW9k
ZWxPYmplY3QubGF5ZXIoKS0+YmFja2luZygpKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJl
dHVybiAwOwogCiAgICAgYXV0byogZ3JhcGhpY3NMYXllciA9IHJlbmRlckxheWVyTW9kZWxPYmpl
Y3QubGF5ZXIoKS0+YmFja2luZygpLT5ncmFwaGljc0xheWVyKCk7CiAgICAgaWYgKCFncmFwaGlj
c0xheWVyKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJu
IGdyYXBoaWNzTGF5ZXItPmNvbnRlbnRzTGF5ZXJJREZvck1vZGVsKCk7Cit9CiAKLSAgICBpZiAo
YXV0byBjb250ZW50TGF5ZXJJZCA9IGdyYXBoaWNzTGF5ZXItPmNvbnRlbnRzTGF5ZXJJREZvck1v
ZGVsKCkpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnRha2VNb2RlbEVsZW1lbnRG
dWxsc2NyZWVuKGNvbnRlbnRMYXllcklkKTsKLSNlbmRpZgorLy8gTUFSSzogLSBGdWxsc2NyZWVu
IHN1cHBvcnQuCisKK3ZvaWQgSFRNTE1vZGVsRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuKCkKK3sK
KyAgICBtX21vZGVsUGxheWVyLT5lbnRlckZ1bGxzY3JlZW4oKTsKIH0KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50
LmgKaW5kZXggMzc4MDMyOWVhMzk1NGI4ZGFkN2RhMTliOTgyYWM2ZDBkMDYzMzczMi4uNjk0Nzhj
Mjc0ODE1NzQ1OTFiMTNhNGRkZTZkOTljYzAwMWFhOTBjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKICNpbmNsdWRlICJD
YWNoZWRSYXdSZXNvdXJjZUNsaWVudC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxl
LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNsdWRlICJNb2RlbFBsYXllckNsaWVudC5oIgpA
QCAtODksNiArOTAsNyBAQCBwcml2YXRlOgogICAgIC8vIE1vZGVsUGxheWVyQ2xpZW50IG92ZXJy
aWRlcy4KICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoTW9kZWxQbGF5ZXImKSBmaW5hbDsKICAg
ICB2b2lkIGRpZEZhaWxMb2FkaW5nKE1vZGVsUGxheWVyJiwgY29uc3QgUmVzb3VyY2VFcnJvciYp
IGZpbmFsOworICAgIEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBwbGF0Zm9ybUxheWVy
SUQoKSBmaW5hbDsKIAogICAgIFVSTCBtX3NvdXJjZVVSTDsKICAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gbV9yZXNvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmgKaW5kZXggM2JhYjJmNzkzYzY5
MTZiNzQxMTY5YzkyN2VlMTdlY2Y0MTNlNjNkZS4uZTcxMjlkZGM5MTQwMjQ3YzU0NTViMjllYWQw
NzlkYTc1ZGQyZmVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1l
bGVtZW50L01vZGVsUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1l
bGVtZW50L01vZGVsUGxheWVyLmgKQEAgLTQwLDYgKzQwLDcgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB2b2lkIGxvYWQoTW9kZWwmLCBMYXlvdXRTaXplKSA9IDA7CiAgICAgdmlydHVhbCBQbGF0
Zm9ybUxheWVyKiBsYXllcigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVu
KCkgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rl
bC1lbGVtZW50L01vZGVsUGxheWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21v
ZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXJDbGllbnQuaAppbmRleCA0YjQ0OGJlZjk2MDA4NzRhOWU2
MDY5NDNjYjgyM2Q3YTg2ZmY2OWEyLi4zM2ZiOWRjYjUxOGVhNjEyZjY0ZGVmYzlhZjE1MzM2ZWI5
YmQ1Y2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQv
TW9kZWxQbGF5ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVs
ZW1lbnQvTW9kZWxQbGF5ZXJDbGllbnQuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKQEAgLTM5LDYgKzQwLDcgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoTW9kZWxQbGF5ZXImKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEZhaWxMb2FkaW5nKE1vZGVsUGxheWVyJiwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYpID0gMDsKKyAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJ
RCBwbGF0Zm9ybUxheWVySUQoKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXJQcm92aWRlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyUHJvdmlkZXIuaAppbmRl
eCA3ZDRiYjRlZmQxNzg5NTRjYTY5NWExMjk3NDVjZjBjOWUwOTY3YzA1Li41YjAyODA2M2RjZWRk
NmMwZGZiZDJjMjUyZTczMTE0MDdiZTc4Zjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXJQcm92aWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllclByb3ZpZGVyLmgKQEAgLTM5
LDcgKzM5LDcgQEAgcHVibGljOgogCiAgICAgLy8gRklYTUU6IE9uY2UgYWxsIGNsaWVudHMgaGF2
ZSBhZG9wdGVkIE1vZGVsUGxheWVyUHJvdmlkZXIsIHRoaXMgc2hvdWxkCiAgICAgLy8gYmUgY2hh
bmdlZCB0byByZXR1cm4gYSBSZWY8TW9kZWxQbGF5ZXI+Ci0gICAgdmlydHVhbCBSZWZQdHI8TW9k
ZWxQbGF5ZXI+IGNyZWF0ZU1vZGVsUGxheWVyKE1vZGVsUGxheWVyQ2xpZW50JikgPSAwOworICAg
IHZpcnR1YWwgUmVmPE1vZGVsUGxheWVyPiBjcmVhdGVNb2RlbFBsYXllcihNb2RlbFBsYXllckNs
aWVudCYpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmNwcAppbmRleCA0
MjI4M2E2NmIxY2RiNzMxMjUwNjQzMTIxMmMxYjM1OTI5NTU3YjU1Li44MjQ2NjE2MWVkZjU4NmUz
ZTQ1ODhiYzRiOTQzNTA2ZDA0OWIxZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3Bw
CkBAIC01NCw0ICs1NCw4IEBAIFBsYXRmb3JtTGF5ZXIqIER1bW15TW9kZWxQbGF5ZXI6OmxheWVy
KCkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAordm9pZCBEdW1teU1vZGVsUGxheWVyOjplbnRl
ckZ1bGxzY3JlZW4oKQoreworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaAppbmRleCBl
ZTU3Mzk2ZDE4YzUzM2JmMDhmNzViYjdlYjA0MmRmNjJlYzFlNTYzLi44MzhlYmVjZjhkMjEwYjAz
NWQxNjg0NWE3MDcxNmY5MjI3OTA2ZTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmgKQEAg
LTQxLDggKzQxLDkgQEAgcHJpdmF0ZToKICAgICBEdW1teU1vZGVsUGxheWVyKE1vZGVsUGxheWVy
Q2xpZW50Jik7CiAKICAgICAvLyBNb2RlbFBsYXllciBvdmVycmlkZXMuCi0gICAgdmlydHVhbCB2
b2lkIGxvYWQoTW9kZWwmLCBMYXlvdXRTaXplKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIFBsYXRm
b3JtTGF5ZXIqIGxheWVyKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2FkKE1vZGVsJiwgTGF5b3V0
U2l6ZSkgb3ZlcnJpZGU7CisgICAgUGxhdGZvcm1MYXllciogbGF5ZXIoKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOwogCiAgICAgV2Vha1B0cjxNb2RlbFBs
YXllckNsaWVudD4gbV9jbGllbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXJQcm92aWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXll
clByb3ZpZGVyLmNwcAppbmRleCAxYzJmZDU3Y2IyZTFlYWQ3YzFhMmVhMjBkYjUyZDliYTI0N2E5
ZjRjLi4wZjRkMTg5ZjQzNTY0NmU2OWYxYzgyYTI4YTM5YjlmOWI1MDUyZmU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBs
YXllclByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1l
bnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllclByb3ZpZGVyLmNwcApAQCAtMzMsNyArMzMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBEdW1teU1vZGVsUGxheWVyUHJvdmlkZXI6OkR1bW15TW9kZWxQ
bGF5ZXJQcm92aWRlcigpID0gZGVmYXVsdDsKIER1bW15TW9kZWxQbGF5ZXJQcm92aWRlcjo6fkR1
bW15TW9kZWxQbGF5ZXJQcm92aWRlcigpID0gZGVmYXVsdDsKIAotUmVmUHRyPE1vZGVsUGxheWVy
PiBEdW1teU1vZGVsUGxheWVyUHJvdmlkZXI6OmNyZWF0ZU1vZGVsUGxheWVyKE1vZGVsUGxheWVy
Q2xpZW50JiBjbGllbnQpCitSZWY8TW9kZWxQbGF5ZXI+IER1bW15TW9kZWxQbGF5ZXJQcm92aWRl
cjo6Y3JlYXRlTW9kZWxQbGF5ZXIoTW9kZWxQbGF5ZXJDbGllbnQmIGNsaWVudCkKIHsKICAgICBy
ZXR1cm4gRHVtbXlNb2RlbFBsYXllcjo6Y3JlYXRlKGNsaWVudCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXll
clByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkv
RHVtbXlNb2RlbFBsYXllclByb3ZpZGVyLmgKaW5kZXggNWE2ZGM3ODg4OGYwMzk0NWE4OTYxMmJm
N2MyMDAwNTNjMTRkMjNhMC4uMDU1MzgwOTRjYjFkNzdmM2FmNTYwNjI2N2Q2ZmQxYmVjYjU4ZTFm
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15
L0R1bW15TW9kZWxQbGF5ZXJQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyUHJvdmlkZXIuaApAQCAtMzYsNyAr
MzYsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8gTW9kZWxQbGF5ZXJQcm92aWRlciBv
dmVycmlkZXMuCi0gICAgdmlydHVhbCBSZWZQdHI8TW9kZWxQbGF5ZXI+IGNyZWF0ZU1vZGVsUGxh
eWVyKE1vZGVsUGxheWVyQ2xpZW50Jikgb3ZlcnJpZGU7CisgICAgUmVmPE1vZGVsUGxheWVyPiBj
cmVhdGVNb2RlbFBsYXllcihNb2RlbFBsYXllckNsaWVudCYpIG92ZXJyaWRlOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0
L1NjZW5lS2l0TW9kZWxQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxl
bWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLmgKaW5kZXggMzA4NWY4MTU5Yzc0NjNk
YzY1MTFlYzcyODIyNDdiOWRkMGU4ZjhlZS4uNGFjM2RhYjlkZDUzZmU4NWVmZTA1MzBlNjgxMmMx
NDA0OGY2NGUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVt
ZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5oCkBAIC01
NSw4ICs1NSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVTY2VuZSgpOwogCiAgICAgLy8g
TW9kZWxQbGF5ZXIgb3ZlcnJpZGVzLgotICAgIHZpcnR1YWwgdm9pZCBsb2FkKE1vZGVsJiwgTGF5
b3V0U2l6ZSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBDQUxheWVyICpsYXllcigpIG92ZXJyaWRl
OworICAgIHZvaWQgbG9hZChNb2RlbCYsIExheW91dFNpemUpIG92ZXJyaWRlOworICAgIENBTGF5
ZXIgKmxheWVyKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlk
ZTsKIAogICAgIC8vIFNjZW5lS2l0TW9kZWxMb2FkZXJDbGllbnQgb3ZlcnJpZGVzLgogICAgIHZp
cnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFNjZW5lS2l0TW9kZWxMb2FkZXImLCBSZWY8U2Nl
bmVLaXRNb2RlbD4pIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXll
ci5tbQppbmRleCA2OTkyMzQxZjlmM2FiNWJmYzBkNTg1ZmJhMTc5MGYzZGRkYTY4ZTI4Li42OTY5
NmM5ZTY5MTY4NTlhMDFlYTNkYTdkN2M0NDcwNThmZmUzZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXll
ci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQv
U2NlbmVLaXRNb2RlbFBsYXllci5tbQpAQCAtNzIsNiArNzIsMTAgQEAgUGxhdGZvcm1MYXllciog
U2NlbmVLaXRNb2RlbFBsYXllcjo6bGF5ZXIoKQogICAgIHJldHVybiBtX2xheWVyLmdldCgpOwog
fQogCit2b2lkIFNjZW5lS2l0TW9kZWxQbGF5ZXI6OmVudGVyRnVsbHNjcmVlbigpCit7Cit9CisK
IC8vIE1BUks6IC0gU2NlbmVLaXRNb2RlbExvYWRlckNsaWVudCBvdmVycmlkZXMuCiAKIHZvaWQg
U2NlbmVLaXRNb2RlbFBsYXllcjo6ZGlkRmluaXNoTG9hZGluZyhTY2VuZUtpdE1vZGVsTG9hZGVy
JiBsb2FkZXIsIFJlZjxTY2VuZUtpdE1vZGVsPiBtb2RlbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApp
bmRleCBjYThkMjM5NWZhOWRmMTE4ZjljZTBiYTFkMjNkN2YzOGQ3YTIyMWE2Li5hM2U3YmI2NjQ3
MTkzMDIzMGZlMjNmMGE2ODFjM2U3YTIzMjY4MzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBA
IC02NTUsNyArNjU1LDkgQEAgV2ViUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclVJ
TWFjLm1tCiAKIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2Vy
LmNwcAogCi1XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ci5tbQorV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbQor
V2ViUHJvY2Vzcy9Nb2RlbC9pb3MvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MubW0K
K1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLm1t
CiAKIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCiBXZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbkFubm90YXRpb24ubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY0MzFkNDBiMDU2YTVhZGQyYzQxZjExYTM1
ZDA0YTU0ZWYxMjgwMzEuLmE4NGZhYTdkZTU4NWY3OTM4MDE1NzNhODk1MDM3YjQ2NTIwY2U0NzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNDUxMyw2ICs0NTEzLDEwIEBACiAJCTcxMzdCQTdEMjVGMTUzRTkwMDkxNEVFMyAvKiBNb2Rl
bEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNb2RlbEVs
ZW1lbnRDb250cm9sbGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcx
MzdCQTdFMjVGMTU0MEIwMDkxNEVFMyAvKiBNb2RlbEVsZW1lbnRDb250cm9sbGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZGVsRWxlbWVudENvbnRyb2xsZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTM3QkE3RjI1RjE1NDBDMDA5MTRF
RTMgLyogTW9kZWxFbGVtZW50Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNb2RlbEVsZW1lbnRDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTcxNzdBRDVCMjc0M0Q3QTkwMDJGMTAzQiAvKiBBUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MTc3QUQ1QzI3NDNEN0E5
MDAyRjEwM0IgLyogQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNzE3N0FENjYyNzQzRjY2QzAwMkYxMDNCIC8qIEFSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcxNzdBRDY3
Mjc0M0Y2NkMwMDJGMTAzQiAvKiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3MUE2NzZBNDIyQzYyMzE4MDA3RDYyOTUgLyogV0tUb3Vj
aEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdLVG91Y2hBY3Rpb25HZXN0dXJlUmVjb2duaXplci5oOyBwYXRoID0gaW9zL1dLVG91Y2hB
Y3Rpb25HZXN0dXJlUmVjb2duaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
MUE2NzZBNTIyQzYyMzE4MDA3RDYyOTUgLyogV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tUb3VjaEFjdGlv
bkdlc3R1cmVSZWNvZ25pemVyLm1tOyBwYXRoID0gaW9zL1dLVG91Y2hBY3Rpb25HZXN0dXJlUmVj
b2duaXplci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzFCQUE3MzEyNUZGQ0NC
QTAwRDdDRDVEIC8qIFdLTW9kZWxWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdLTW9kZWxWaWV3Lmg7IHBhdGggPSBpb3MvV0tNb2RlbFZpZXcuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTUyMjAsOCArNTIyNCw4IEBACiAJCUJDMjA1MjgwMTFDOTQyODQw
MDhGMzM3NSAvKiBXS0J1bmRsZVBhZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV0tCdW5kbGVQYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkMyNjUyMTIxMTgyNjA4MTAwMjQzRTEyIC8qIERyYXdpbmdBcmVhUHJveHkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRHJhd2luZ0FyZWFQcm94eS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMjY1MjEzMTE4MjYwODEwMDI0M0UxMiAvKiBEcmF3
aW5nQXJlYVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYXdpbmdB
cmVhUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMyQjQxMEMyNzMyRUY5
NjAwQTJEMTkxIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUJDMkI0MTBEMjczMkVGOTYwMEEyRDE5MSAvKiBBUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzJCNDEwQzI3MzJF
Rjk2MDBBMkQxOTEgLyogQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQkMyQjQxMEQyNzMyRUY5NjAwQTJEMTkxIC8qIEFSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDMkI0MTFBMjczMkY2NkUwMEEyRDE5MSAvKiBXZWJNb2RlbFBsYXllclByb3ZpZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYk1vZGVsUGxheWVyUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkMyQjQxMUIyNzMyRjY2RTAwQTJEMTkxIC8qIFdlYk1vZGVsUGxheWVyUHJv
dmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTW9kZWxQbGF5ZXJQcm92aWRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMkQwMjE2MTJBQzQxQ0IwMEU3MzJBMyAv
KiBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtOTI5MCw2ICs5Mjk0LDE1IEBACiAJCQluYW1lID0gbWFjOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNzE3N0FENjUyNzQzRjY2QzAwMkYxMDNCIC8qIGlv
cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNzE3N0FE
NjcyNzQzRjY2QzAwMkYxMDNCIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLmgg
Ki8sCisJCQkJNzE3N0FENjYyNzQzRjY2QzAwMkYxMDNCIC8qIEFSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVySU9TLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBpb3M7CisJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOworCQl9OwogCQk3MjdBN0YzMzI0MDc4NTI3MDA0RDI5MzEgLyogY29jb2Eg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTA2MTEsNyAr
MTA2MjQsMTAgQEAKIAkJQkMyQjQxMEEyNzMyRUY2NTAwQTJEMTkxIC8qIE1vZGVsICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk3MTc3QUQ2NTI3NDNGNjZD
MDAyRjEwM0IgLyogaW9zICovLAogCQkJCUJDMkI0MTBCMjczMkVGNzUwMEEyRDE5MSAvKiBtYWMg
Ki8sCisJCQkJNzE3N0FENUMyNzQzRDdBOTAwMkYxMDNCIC8qIEFSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVyLmggKi8sCisJCQkJNzE3N0FENUIyNzQzRDdBOTAwMkYxMDNCIC8qIEFSS2l0SW5s
aW5lUHJldmlld01vZGVsUGxheWVyLm1tICovLAogCQkJCUJDMkI0MTFCMjczMkY2NkUwMEEyRDE5
MSAvKiBXZWJNb2RlbFBsYXllclByb3ZpZGVyLmNwcCAqLywKIAkJCQlCQzJCNDExQTI3MzJGNjZF
MDBBMkQxOTEgLyogV2ViTW9kZWxQbGF5ZXJQcm92aWRlci5oICovLAogCQkJKTsKQEAgLTEwNjIx
LDggKzEwNjM3LDggQEAKIAkJQkMyQjQxMEIyNzMyRUY3NTAwQTJEMTkxIC8qIG1hYyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJQkMyQjQxMEMyNzMyRUY5
NjAwQTJEMTkxIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmggKi8sCi0JCQkJQkMy
QjQxMEQyNzMyRUY5NjAwQTJEMTkxIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1t
ICovLAorCQkJCUJDMkI0MTBDMjczMkVGOTYwMEEyRDE5MSAvKiBBUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllck1hYy5oICovLAorCQkJCUJDMkI0MTBEMjczMkVGOTYwMEEyRDE5MSAvKiBBUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWFj
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2NhYWNiMzU2NWY5Zjg2NjNiNDgyNGQ4NzdjMTRhMWU1OTNhNjMyNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFVykKKworI2luY2x1ZGUg
PFdlYkNvcmUvTW9kZWxQbGF5ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01vZGVsUGxheWVyQ2xp
ZW50Lmg+CisjaW5jbHVkZSA8d3RmL0NvbXBpbGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllciA6IHB1YmxpYyBXZWJDb3JlOjpN
b2RlbFBsYXllciwgcHVibGljIENhbk1ha2VXZWFrUHRyPEFSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVyPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXIoKTsKKworcHJvdGVjdGVkOgorICAgIGV4cGxpY2l0IEFSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVyKFdlYlBhZ2UmLCBXZWJDb3JlOjpNb2RlbFBsYXllckNsaWVudCYpOworCisgICAg
V2ViUGFnZSogcGFnZSgpIHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQorICAgIFdlYkNvcmU6Ok1v
ZGVsUGxheWVyQ2xpZW50KiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQorCitw
cml2YXRlOgorICAgIC8vIFdlYkNvcmU6Ok1vZGVsUGxheWVyIG92ZXJyaWRlcy4KKyAgICB2b2lk
IGxvYWQoV2ViQ29yZTo6TW9kZWwmLCBXZWJDb3JlOjpMYXlvdXRTaXplKSBvdmVycmlkZTsKKyAg
ICBQbGF0Zm9ybUxheWVyKiBsYXllcigpIG92ZXJyaWRlOworICAgIHZvaWQgZW50ZXJGdWxsc2Ny
ZWVuKCkgb3ZlcnJpZGU7CisKKyAgICBXZWFrUHRyPFdlYlBhZ2U+IG1fcGFnZTsKKyAgICBXZWFr
UHRyPFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50PiBtX2NsaWVudDsKK307CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwv
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWRiZDE0YTE5Y2Qz
YjM1ZGIzMDQ0NjUyYmFjMzYyMWZlY2IyNzI1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbQpA
QCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
ICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oIgorCisjaWYgRU5BQkxFKEFSS0lUX0lO
TElORV9QUkVWSUVXKQorCisjaW1wb3J0ICJXZWJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6QVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXIoV2ViUGFnZSYgcGFnZSwgV2ViQ29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmIGNsaWVu
dCkKKyAgICA6IG1fcGFnZSB7IHBhZ2UgfQorICAgICwgbV9jbGllbnQgeyBjbGllbnQgfQorewor
fQorCitBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6fkFSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVyKCkKK3sKK30KKwordm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6
bG9hZChXZWJDb3JlOjpNb2RlbCYsIFdlYkNvcmU6OkxheW91dFNpemUpCit7Cit9CisKK1BsYXRm
b3JtTGF5ZXIqIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpsYXllcigpCit7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6
OmVudGVyRnVsbHNjcmVlbigpCit7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvV2ViTW9kZWxQbGF5ZXJQcm92aWRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvV2ViTW9kZWxQbGF5ZXJQcm92aWRlci5jcHAK
aW5kZXggODYwZTQ3ZmQwODEzZTljZjYwYWNmMDc4MjY1MjE3NzY2OWZjODcwMi4uNWEyOTRlMGRk
OWM5YmRjOTY3MDFmMDNiZjljYzM4MjljMzYzN2ZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL01vZGVsL1dlYk1vZGVsUGxheWVyUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9XZWJNb2RlbFBsYXllclByb3ZpZGVyLmNwcApAQCAt
MzAsMTMgKzMwLDE5IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2RlbFBsYXllci5oPgogCiAjaWYg
RU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKLSNpbmNsdWRlICJBUktpdElubGluZVBy
ZXZpZXdNb2RlbFBsYXllci5oIgorI2luY2x1ZGUgIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxh
eWVyTWFjLmgiCisjZW5kaWYKKworI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19JT1Mp
CisjaW5jbHVkZSAiQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MuaCIKICNlbmRpZgog
CiAjaWYgSEFWRShTQ0VORUtJVCkKICNpbmNsdWRlIDxXZWJDb3JlL1NjZW5lS2l0TW9kZWxQbGF5
ZXIuaD4KICNlbmRpZgogCisjaW5jbHVkZSAiRHVtbXlNb2RlbFBsYXllci5oIgorCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogV2ViTW9kZWxQbGF5ZXJQcm92aWRlcjo6V2ViTW9kZWxQbGF5ZXJQcm92
aWRlcihXZWJQYWdlJiBwYWdlKQpAQCAtNDksMjAgKzU1LDIyIEBAIFdlYk1vZGVsUGxheWVyUHJv
dmlkZXI6On5XZWJNb2RlbFBsYXllclByb3ZpZGVyKCkgPSBkZWZhdWx0OwogCiAvLyBNQVJLOiAt
IFdlYkNvcmU6Ok1vZGVsUGxheWVyUHJvdmlkZXIgb3ZlcnJpZGVzLgogCi1SZWZQdHI8V2ViQ29y
ZTo6TW9kZWxQbGF5ZXI+IFdlYk1vZGVsUGxheWVyUHJvdmlkZXI6OmNyZWF0ZU1vZGVsUGxheWVy
KFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50JiBjbGllbnQpCitSZWY8V2ViQ29yZTo6TW9kZWxQ
bGF5ZXI+IFdlYk1vZGVsUGxheWVyUHJvdmlkZXI6OmNyZWF0ZU1vZGVsUGxheWVyKFdlYkNvcmU6
Ok1vZGVsUGxheWVyQ2xpZW50JiBjbGllbnQpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKGNsaWVudCk7
Ci0KICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfTUFDKQogICAgIGlmIChtX3BhZ2Uu
dXNlQVJLaXRGb3JNb2RlbCgpKQotICAgICAgICByZXR1cm4gQVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXI6OmNyZWF0ZShtX3BhZ2UsIGNsaWVudCk7CisgICAgICAgIHJldHVybiBBUktpdElu
bGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6Y3JlYXRlKG1fcGFnZSwgY2xpZW50KTsKICNlbmRp
ZgogI2lmIEhBVkUoU0NFTkVLSVQpCiAgICAgaWYgKG1fcGFnZS51c2VTY2VuZUtpdEZvck1vZGVs
KCkpCiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpTY2VuZUtpdE1vZGVsUGxheWVyOjpjcmVhdGUo
Y2xpZW50KTsKICNlbmRpZgorI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19JT1MpCisg
ICAgcmV0dXJuIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TOjpjcmVhdGUobV9wYWdl
LCBjbGllbnQpOworI2VuZGlmCiAKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICByZXR1cm4gRHVtbXlNb2RlbFBsYXllcjo6Y3JlYXRlKG1fcGFnZSwg
Y2xpZW50KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01v
ZGVsL1dlYk1vZGVsUGxheWVyUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9N
b2RlbC9XZWJNb2RlbFBsYXllclByb3ZpZGVyLmgKaW5kZXggODJlNGE1M2Q5YmI4ZTgxY2U3ZjFi
MmM1YTMzMmYzZjRhNDVmMjY1ZC4uNTk3N2YyZGQxMjZjZDZmNDgyZDI2ZjUxMmM3ZTJjMjU1N2Mw
N2M5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL1dlYk1vZGVs
UGxheWVyUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvV2Vi
TW9kZWxQbGF5ZXJQcm92aWRlci5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICAvLyBXZWJDb3JlOjpNb2RlbFBsYXllclByb3ZpZGVyIG92ZXJyaWRlcy4KLSAgICB2
aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpNb2RlbFBsYXllcj4gY3JlYXRlTW9kZWxQbGF5ZXIoV2Vi
Q29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmKSBmaW5hbDsKKyAgICBSZWY8V2ViQ29yZTo6TW9kZWxQ
bGF5ZXI+IGNyZWF0ZU1vZGVsUGxheWVyKFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50JikgZmlu
YWw7CiAKICAgICBXZWJQYWdlJiBtX3BhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL01vZGVsL2lvcy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL2lvcy9BUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllcklPUy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZmI2NzY4Njc1ZWM2N2YzNWVjNWRlMzM1OWEz
MzU1ZDBlOTRjYTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TW9kZWwvaW9zL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLmgKQEAgLTAsMCArMSw1
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEFSS0lUX0lOTElO
RV9QUkVWSUVXX0lPUykKKworI2luY2x1ZGUgIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVy
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Nb2RlbFBsYXllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
TW9kZWxQbGF5ZXJDbGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEFSS2l0
SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TIGZpbmFsIDogcHVibGljIEFSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEFSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVySU9TPiBjcmVhdGUoV2ViUGFnZSYsIFdlYkNvcmU6Ok1vZGVsUGxheWVy
Q2xpZW50Jik7CisgICAgdmlydHVhbCB+QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1Mo
KTsKKworcHJpdmF0ZToKKyAgICBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUyhXZWJQ
YWdlJiwgV2ViQ29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmKTsKKworICAgIC8vIFdlYkNvcmU6Ok1v
ZGVsUGxheWVyIG92ZXJyaWRlcy4KKyAgICB2b2lkIGVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRl
OworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9Nb2RlbC9pb3MvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvaW9zL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVy
SU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmVkZTE0NWE1MWQyZjQwOTIxMzAwMDU0N2ExODEwOGEwMmQxNTdm
ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvaW9z
L0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLm1tCkBAIC0wLDAgKzEsNjQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkFSS2l0SW5saW5lUHJldmll
d01vZGVsUGxheWVySU9TLmgiCisKKyNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfSU9T
KQorCisjaW1wb3J0ICJXZWJQYWdlLmgiCisjaW1wb3J0ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5o
IgorI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitSZWY8QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1M+IEFSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVySU9TOjpjcmVhdGUoV2ViUGFnZSYgcGFnZSwgV2ViQ29yZTo6TW9kZWxQ
bGF5ZXJDbGllbnQmIGNsaWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBUktpdElu
bGluZVByZXZpZXdNb2RlbFBsYXllcklPUyhwYWdlLCBjbGllbnQpKTsKK30KKworQVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1M6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9T
KFdlYlBhZ2UmIHBhZ2UsIFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50JiBjbGllbnQpCisgICAg
OiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcihwYWdlLCBjbGllbnQpCit7Cit9CisKK0FS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TOjp+QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXJJT1MoKQoreworfQorCisvLyBNQVJLOiAtIFdlYkNvcmU6Ok1vZGVsUGxheWVyIG92ZXJy
aWRlcy4KKwordm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUzo6ZW50ZXJGdWxs
c2NyZWVuKCkKK3sKKyAgICBpZiAoIWNsaWVudCgpIHx8ICFwYWdlKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChhdXRvIGxheWVySWQgPSBjbGllbnQoKS0+cGxhdGZvcm1MYXllcklEKCkp
CisgICAgICAgIHBhZ2UoKS0+dGFrZU1vZGVsRWxlbWVudEZ1bGxzY3JlZW4obGF5ZXJJZCk7Cit9
CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9k
ZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmMDIwNzBjNDI2NTcwNjc3NjM3Y2QxYTFkYjI1M2I1
OTNjOTYyMzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllci5oCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKLQotI2lu
Y2x1ZGUgPFdlYkNvcmUvTW9kZWxQbGF5ZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01vZGVsUGxh
eWVyQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8d3RmL0NvbXBpbGVyLmg+Ci0jaW5jbHVkZSA8d3RmL1Jl
dGFpblB0ci5oPgotCi1PQkpDX0NMQVNTIEFTVklubGluZVByZXZpZXc7Ci0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi1jbGFzcyBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllciBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpNb2RlbFBsYXllciwgcHVibGljIENhbk1ha2VXZWFrUHRyPEFSS2l0SW5s
aW5lUHJldmlld01vZGVsUGxheWVyPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBUktpdElu
bGluZVByZXZpZXdNb2RlbFBsYXllcj4gY3JlYXRlKFdlYlBhZ2UmLCBXZWJDb3JlOjpNb2RlbFBs
YXllckNsaWVudCYpOwotICAgIHZpcnR1YWwgfkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVy
KCk7Ci0KLSAgICBzdGF0aWMgdm9pZCBzZXRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeShjb25z
dCBTdHJpbmcmKTsKLQotcHJpdmF0ZToKLSAgICBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
cihXZWJQYWdlJiwgV2ViQ29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmKTsKLQotICAgIC8vIFdlYkNv
cmU6Ok1vZGVsUGxheWVyIG92ZXJyaWRlcy4KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChXZWJDb3Jl
OjpNb2RlbCYsIFdlYkNvcmU6OkxheW91dFNpemUpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUGxh
dGZvcm1MYXllciogbGF5ZXIoKSBvdmVycmlkZTsKLQotICAgIHZvaWQgY3JlYXRlRmlsZShXZWJD
b3JlOjpNb2RlbCYpOwotICAgIHZvaWQgY2xlYXJGaWxlKCk7Ci0KLSAgICBXZWFrUHRyPFdlYlBh
Z2U+IG1fcGFnZTsKLSAgICBXZWFrUHRyPFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50PiBtX2Ns
aWVudDsKLQotICAgIFN0cmluZyBtX2ZpbGVQYXRoOwotICAgIFJldGFpblB0cjxBU1ZJbmxpbmVQ
cmV2aWV3PiBtX2lubGluZVByZXZpZXc7Ci19OwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJk
ZjI0NTFhZmMzMThjN2QwYmU5ZThhODRjOWY2NTRlMmFjYmEyYzkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01v
ZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbQorKysgL2Rldi9udWxsCkBA
IC0xLDE3NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0KLSNpZiBF
TkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfTUFDKQotCi0jaW1wb3J0ICJBUktpdElubGluZVBy
ZXZpZXdNb2RlbFBsYXllci5oIgotCi0jaW1wb3J0ICJXZWJQYWdlLmgiCi0jaW1wb3J0ICJXZWJQ
YWdlUHJveHlNZXNzYWdlcy5oIgotI2ltcG9ydCA8V2ViQ29yZS9Nb2RlbC5oPgotI2ltcG9ydCA8
cGFsL3NwaS9tYWMvU3lzdGVtUHJldmlld1NQSS5oPgotI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5n
Lmg+Ci0jaW1wb3J0IDx3dGYvVVVJRC5oPgotCi1TT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUkso
QXNzZXRWaWV3ZXIpOwotU09GVF9MSU5LX0NMQVNTKEFzc2V0Vmlld2VyLCBBU1ZJbmxpbmVQcmV2
aWV3KTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVJlZjxBUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllcj4gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmNyZWF0ZShXZWJQYWdlJiBw
YWdlLCBXZWJDb3JlOjpNb2RlbFBsYXllckNsaWVudCYgY2xpZW50KQotewotICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKHBhZ2UsIGNsaWVudCkp
OwotfQotCi1BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6QVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXIoV2ViUGFnZSYgcGFnZSwgV2ViQ29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmIGNs
aWVudCkKLSAgICA6IG1fcGFnZSB7IHBhZ2UgfQotICAgICwgbV9jbGllbnQgeyBjbGllbnQgfQot
ewotfQotCi1BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6fkFSS2l0SW5saW5lUHJldmll
d01vZGVsUGxheWVyKCkKLXsKLSAgICBjbGVhckZpbGUoKTsKLX0KLQotc3RhdGljIFN0cmluZyYg
c2hhcmVkTW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoKQotewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IHNoYXJlZE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5OwotICAgIHJl
dHVybiBzaGFyZWRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeTsKLX0KLQotc3RhdGljIGNvbnN0
IFN0cmluZyYgbW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoKQotewotICAgIHJldHVybiBzaGFy
ZWRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpOwotfQotCi12b2lkIEFSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVyOjpzZXRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeShjb25zdCBTdHJp
bmcmIHBhdGgpCi17Ci0gICAgc2hhcmVkTW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoKSA9IHBh
dGg7Ci19Ci0KLXZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmNyZWF0ZUZpbGUo
V2ViQ29yZTo6TW9kZWwmIG1vZGVsU291cmNlKQotewotICAgIC8vIFRoZSBuZWVkIGZvciBhIGZp
bGUgaXMgb25seSB0ZW1wb3JhcnkgZHVlIHRvIHRoZSBuYXR1cmUgb2YgQVNWSW5saW5lUHJldmll
dywKLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NTY3
LgotCi0gICAgY2xlYXJGaWxlKCk7Ci0KLSAgICBhdXRvIHBhdGhUb0RpcmVjdG9yeSA9IG1vZGVs
RWxlbWVudENhY2hlRGlyZWN0b3J5KCk7Ci0gICAgaWYgKHBhdGhUb0RpcmVjdG9yeS5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8gZGlyZWN0b3J5RXhpc3RzID0gRmlsZVN5
c3RlbTo6ZmlsZUV4aXN0cyhwYXRoVG9EaXJlY3RvcnkpOwotICAgIGlmIChkaXJlY3RvcnlFeGlz
dHMgJiYgRmlsZVN5c3RlbTo6ZmlsZVR5cGVGb2xsb3dpbmdTeW1saW5rcyhwYXRoVG9EaXJlY3Rv
cnkpICE9IEZpbGVTeXN0ZW06OkZpbGVUeXBlOjpEaXJlY3RvcnkpIHsKLSAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKCFkaXJlY3Rv
cnlFeGlzdHMgJiYgIUZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhwYXRoVG9EaXJlY3Rv
cnkpKSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgLy8gV2UgbmVlZCB0byBzdXBwb3J0IC5yZWFsaXR5IGZpbGVzIGFzIHdlbGws
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1NjguCi0gICAgYXV0
byBmaWxlTmFtZSA9IEZpbGVTeXN0ZW06OmVuY29kZUZvckZpbGVOYW1lKGNyZWF0ZUNhbm9uaWNh
bFVVSURTdHJpbmcoKSkgKyAiLnVzZHoiOwotICAgIGF1dG8gZmlsZVBhdGggPSBGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocGF0aFRvRGlyZWN0b3J5LCBmaWxlTmFtZSk7Ci0g
ICAgYXV0byBmaWxlID0gRmlsZVN5c3RlbTo6b3BlbkZpbGUoZmlsZVBhdGgsIEZpbGVTeXN0ZW06
OkZpbGVPcGVuTW9kZTo6V3JpdGUpOwotICAgIGlmIChmaWxlIDw9IDApCi0gICAgICAgIHJldHVy
bjsKLQotICAgIEZpbGVTeXN0ZW06OndyaXRlVG9GaWxlKGZpbGUsIG1vZGVsU291cmNlLmRhdGEo
KS0+ZGF0YSgpLCBtb2RlbFNvdXJjZS5kYXRhKCktPnNpemUoKSk7Ci0gICAgRmlsZVN5c3RlbTo6
Y2xvc2VGaWxlKGZpbGUpOwotICAgIG1fZmlsZVBhdGggPSBmaWxlUGF0aDsKLX0KLQotdm9pZCBB
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6Y2xlYXJGaWxlKCkKLXsKLSAgICBpZiAobV9m
aWxlUGF0aC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIEZpbGVTeXN0ZW06OmRl
bGV0ZUZpbGUobV9maWxlUGF0aCk7Ci0gICAgbV9maWxlUGF0aCA9IGVtcHR5U3RyaW5nKCk7Ci19
Ci0KLS8vIE1BUks6IC0gV2ViQ29yZTo6TW9kZWxQbGF5ZXIgb3ZlcnJpZGVzLgotCi12b2lkIEFS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpsb2FkKFdlYkNvcmU6Ok1vZGVsJiBtb2RlbFNv
dXJjZSwgV2ViQ29yZTo6TGF5b3V0U2l6ZSBzaXplKQotewotICAgIGF1dG8gc3Ryb25nQ2xpZW50
ID0gbV9jbGllbnQuZ2V0KCk7Ci0gICAgaWYgKCFzdHJvbmdDbGllbnQpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGF1dG8qIHN0cm9uZ1BhZ2UgPSBtX3BhZ2UuZ2V0KCk7Ci0gICAgaWYgKCFzdHJv
bmdQYWdlKSB7Ci0gICAgICAgIHN0cm9uZ0NsaWVudC0+ZGlkRmFpbExvYWRpbmcoKnRoaXMsIFdl
YkNvcmU6OlJlc291cmNlRXJyb3IgeyBXZWJDb3JlOjplcnJvckRvbWFpbldlYktpdEludGVybmFs
LCAwLCBtb2RlbFNvdXJjZS51cmwoKSwgIldlYlBhZ2UgZGVzdHJveWVkIl9zIH0pOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgY3JlYXRlRmlsZShtb2RlbFNvdXJjZSk7Ci0KLSAgICBt
X2lubGluZVByZXZpZXcgPSBhZG9wdE5TKFthbGxvY0FTVklubGluZVByZXZpZXdJbnN0YW5jZSgp
IGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0
KCkpXSk7Ci0gICAgTE9HKE1vZGVsRWxlbWVudCwgIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxh
eWVyOjptb2RlbERpZENoYW5nZSgpIGNyZWF0ZWQgcHJldmlldyB3aXRoIFVVSUQgJXMgYW5kIHNp
emUgJWYgeCAlZi4iLCAoKFN0cmluZylbbV9pbmxpbmVQcmV2aWV3IHV1aWRdLlVVSURTdHJpbmcp
LnV0ZjgoKS5kYXRhKCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7Ci0KLSAgICBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90Piwg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPiBjb21wbGV0aW9uSGFuZGxlciA9IFt3ZWFrU2VsZiA9
IFdlYWtQdHIgeyAqdGhpcyB9XSAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFN0cmluZywgdWludDMyX3Q+
LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiByZXN1bHQpIG11dGFibGUgewotICAgICAgICBhdXRv
IHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKLSAgICAgICAgaWYgKCFzdHJvbmdTZWxmKQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGF1dG8gc3Ryb25nQ2xpZW50ID0gc3Ryb25n
U2VsZi0+bV9jbGllbnQuZ2V0KCk7Ci0gICAgICAgIGlmICghc3Ryb25nQ2xpZW50KQotICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgICAgICBMT0co
TW9kZWxFbGVtZW50LCAiQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmlubGluZVByZXZp
ZXdEaWRPYnRhaW5Db250ZXh0SWQoKSByZWNlaXZlZCBlcnJvciBmcm9tIFVJUHJvY2VzcyIpOwot
ICAgICAgICAgICAgc3Ryb25nQ2xpZW50LT5kaWRGYWlsTG9hZGluZygqc3Ryb25nU2VsZiwgcmVz
dWx0LmVycm9yKCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAg
YXV0byYgW3V1aWQsIGNvbnRleHRJZF0gPSAqcmVzdWx0OwotICAgICAgICBTdHJpbmcgZXhwZWN0
ZWRVVUlEID0gW3N0cm9uZ1NlbGYtPm1faW5saW5lUHJldmlldyB1dWlkXS5VVUlEU3RyaW5nOwot
Ci0gICAgICAgIGlmICh1dWlkICE9IGV4cGVjdGVkVVVJRCkgewotICAgICAgICAgICAgTE9HKE1v
ZGVsRWxlbWVudCwgIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjppbmxpbmVQcmV2aWV3
RGlkT2J0YWluQ29udGV4dElkKCkgVVVJRCBtaXNtYXRjaCwgcmVjZWl2ZWQgJXMgYnV0IGV4cGVj
dGVkICVzLiIsIHV1aWQudXRmOCgpLmRhdGEoKSwgZXhwZWN0ZWRVVUlELnV0ZjgoKS5kYXRhKCkp
OwotICAgICAgICAgICAgc3Ryb25nQ2xpZW50LT5kaWRGYWlsTG9hZGluZygqc3Ryb25nU2VsZiwg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciB7IFdlYkNvcmU6OmVycm9yRG9tYWluV2ViS2l0SW50ZXJu
YWwsIDAsIHsgfSwgbWFrZVN0cmluZygiQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6Omlu
bGluZVByZXZpZXdEaWRPYnRhaW5Db250ZXh0SWQoKSBVVUlEIG1pc21hdGNoLCByZWNlaXZlZCAi
LCB1dWlkLCAiIGJ1dCBleHBlY3RlZCAiLCBleHBlY3RlZFVVSUQsICIuIikgfSk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBbc3Ryb25nU2VsZi0+bV9pbmxpbmVQ
cmV2aWV3IHNldFJlbW90ZUNvbnRleHQ6Y29udGV4dElkXTsKLSAgICAgICAgTE9HKE1vZGVsRWxl
bWVudCwgIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjppbmxpbmVQcmV2aWV3RGlkT2J0
YWluQ29udGV4dElkKCkgc3VjY2Vzc2Z1bGx5IGVzdGFibGlzaGVkIHJlbW90ZSBjb25uZWN0aW9u
IGZvciBVVUlEICVzLiIsIHV1aWQudXRmOCgpLmRhdGEoKSk7Ci0KLSAgICAgICAgc3Ryb25nQ2xp
ZW50LT5kaWRGaW5pc2hMb2FkaW5nKCpzdHJvbmdTZWxmKTsKLSAgICB9OwotICAgIAotICAgIHN0
cm9uZ1BhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpNb2Rl
bEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KFVSTDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aCht
X2ZpbGVQYXRoKSwgW21faW5saW5lUHJldmlldyB1dWlkXS5VVUlEU3RyaW5nLCBzaXplKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotfQotCi1QbGF0Zm9ybUxheWVyKiBBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllcjo6bGF5ZXIoKQotewotICAgIHJldHVybiBbbV9pbmxpbmVQcmV2
aWV3IGxheWVyXTsKLX0KLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXJNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjU1OWJjMjM0ODgwZjhhNDI4MGQxNWQ1NTQ5NGRi
ODYyYTUyNjEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01v
ZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5oCkBAIC0wLDAgKzEsNjMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShBUktJVF9JTkxJTkVf
UFJFVklFV19NQUMpCisKKyNpbmNsdWRlICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvTW9kZWxQbGF5ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01v
ZGVsUGxheWVyQ2xpZW50Lmg+CisjaW5jbHVkZSA8d3RmL0NvbXBpbGVyLmg+CisjaW5jbHVkZSA8
d3RmL1JldGFpblB0ci5oPgorCitPQkpDX0NMQVNTIEFTVklubGluZVByZXZpZXc7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYyBm
aW5hbCA6IHB1YmxpYyBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllciB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYz4gY3JlYXRlKFdl
YlBhZ2UmLCBXZWJDb3JlOjpNb2RlbFBsYXllckNsaWVudCYpOworICAgIHZpcnR1YWwgfkFSS2l0
SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjKCk7CisKKyAgICBzdGF0aWMgdm9pZCBzZXRNb2Rl
bEVsZW1lbnRDYWNoZURpcmVjdG9yeShjb25zdCBTdHJpbmcmKTsKKworcHJpdmF0ZToKKyAgICBB
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYyhXZWJQYWdlJiwgV2ViQ29yZTo6TW9kZWxQ
bGF5ZXJDbGllbnQmKTsKKworICAgIC8vIFdlYkNvcmU6Ok1vZGVsUGxheWVyIG92ZXJyaWRlcy4K
KyAgICB2b2lkIGxvYWQoV2ViQ29yZTo6TW9kZWwmLCBXZWJDb3JlOjpMYXlvdXRTaXplKSBvdmVy
cmlkZTsKKyAgICBQbGF0Zm9ybUxheWVyKiBsYXllcigpIG92ZXJyaWRlOworCisgICAgdm9pZCBj
cmVhdGVGaWxlKFdlYkNvcmU6Ok1vZGVsJik7CisgICAgdm9pZCBjbGVhckZpbGUoKTsKKworICAg
IFN0cmluZyBtX2ZpbGVQYXRoOworICAgIFJldGFpblB0cjxBU1ZJbmxpbmVQcmV2aWV3PiBtX2lu
bGluZVByZXZpZXc7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXJNYWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M3YzNmYjhkYTFhZmYwOWRhYWMwMTBhMzUy
YWZhZDllNzJkYWU3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMubW0KQEAgLTAsMCAr
MSwxNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkFSS2l0
SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLmgiCisKKyNpZiBFTkFCTEUoQVJLSVRfSU5MSU5F
X1BSRVZJRVdfTUFDKQorCisjaW1wb3J0ICJXZWJQYWdlLmgiCisjaW1wb3J0ICJXZWJQYWdlUHJv
eHlNZXNzYWdlcy5oIgorI2ltcG9ydCA8V2ViQ29yZS9Nb2RlbC5oPgorI2ltcG9ydCA8cGFsL3Nw
aS9tYWMvU3lzdGVtUHJldmlld1NQSS5oPgorI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+Cisj
aW1wb3J0IDx3dGYvVVVJRC5oPgorCitTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoQXNzZXRW
aWV3ZXIpOworU09GVF9MSU5LX0NMQVNTKEFzc2V0Vmlld2VyLCBBU1ZJbmxpbmVQcmV2aWV3KTsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZjxBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ck1hYz4gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmNyZWF0ZShXZWJQYWdlJiBw
YWdlLCBXZWJDb3JlOjpNb2RlbFBsYXllckNsaWVudCYgY2xpZW50KQoreworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjKHBhZ2UsIGNsaWVu
dCkpOworfQorCitBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6QVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXJNYWMoV2ViUGFnZSYgcGFnZSwgV2ViQ29yZTo6TW9kZWxQbGF5ZXJD
bGllbnQmIGNsaWVudCkKKyAgICA6IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKHBhZ2Us
IGNsaWVudCkKK3sKK30KKworQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6On5BUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYygpCit7CisgICAgY2xlYXJGaWxlKCk7Cit9CisK
K3N0YXRpYyBTdHJpbmcmIHNoYXJlZE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCkKK3sKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBzaGFyZWRNb2RlbEVsZW1lbnRDYWNoZURp
cmVjdG9yeTsKKyAgICByZXR1cm4gc2hhcmVkTW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnk7Cit9
CisKK3N0YXRpYyBjb25zdCBTdHJpbmcmIG1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCkKK3sK
KyAgICByZXR1cm4gc2hhcmVkTW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoKTsKK30KKwordm9p
ZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6c2V0TW9kZWxFbGVtZW50Q2FjaGVE
aXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoKQoreworICAgIHNoYXJlZE1vZGVsRWxlbWVudENh
Y2hlRGlyZWN0b3J5KCkgPSBwYXRoOworfQorCit2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVyTWFjOjpjcmVhdGVGaWxlKFdlYkNvcmU6Ok1vZGVsJiBtb2RlbFNvdXJjZSkKK3sKKyAg
ICAvLyBUaGUgbmVlZCBmb3IgYSBmaWxlIGlzIG9ubHkgdGVtcG9yYXJ5IGR1ZSB0byB0aGUgbmF0
dXJlIG9mIEFTVklubGluZVByZXZpZXcsCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNzU2Ny4KKworICAgIGNsZWFyRmlsZSgpOworCisgICAgYXV0byBw
YXRoVG9EaXJlY3RvcnkgPSBtb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpOworICAgIGlmIChw
YXRoVG9EaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGRp
cmVjdG9yeUV4aXN0cyA9IEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMocGF0aFRvRGlyZWN0b3J5KTsK
KyAgICBpZiAoZGlyZWN0b3J5RXhpc3RzICYmIEZpbGVTeXN0ZW06OmZpbGVUeXBlRm9sbG93aW5n
U3ltbGlua3MocGF0aFRvRGlyZWN0b3J5KSAhPSBGaWxlU3lzdGVtOjpGaWxlVHlwZTo6RGlyZWN0
b3J5KSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGlmICghZGlyZWN0b3J5RXhpc3RzICYmICFGaWxlU3lzdGVtOjptYWtlQWxsRGly
ZWN0b3JpZXMocGF0aFRvRGlyZWN0b3J5KSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFdlIG5lZWQgdG8gc3VwcG9ydCAu
cmVhbGl0eSBmaWxlcyBhcyB3ZWxsLCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI3NTY4LgorICAgIGF1dG8gZmlsZU5hbWUgPSBGaWxlU3lzdGVtOjplbmNvZGVGb3JG
aWxlTmFtZShjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpICsgIi51c2R6IjsKKyAgICBhdXRv
IGZpbGVQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHBhdGhUb0Rp
cmVjdG9yeSwgZmlsZU5hbWUpOworICAgIGF1dG8gZmlsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxl
KGZpbGVQYXRoLCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OldyaXRlKTsKKyAgICBpZiAoZmls
ZSA8PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICBGaWxlU3lzdGVtOjp3cml0ZVRvRmlsZShm
aWxlLCBtb2RlbFNvdXJjZS5kYXRhKCktPmRhdGEoKSwgbW9kZWxTb3VyY2UuZGF0YSgpLT5zaXpl
KCkpOworICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShmaWxlKTsKKyAgICBtX2ZpbGVQYXRoID0g
ZmlsZVBhdGg7Cit9CisKK3ZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmNs
ZWFyRmlsZSgpCit7CisgICAgaWYgKG1fZmlsZVBhdGguaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBGaWxlU3lzdGVtOjpkZWxldGVGaWxlKG1fZmlsZVBhdGgpOworICAgIG1fZmls
ZVBhdGggPSBlbXB0eVN0cmluZygpOworfQorCisvLyBNQVJLOiAtIFdlYkNvcmU6Ok1vZGVsUGxh
eWVyIG92ZXJyaWRlcy4KKwordm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6
bG9hZChXZWJDb3JlOjpNb2RlbCYgbW9kZWxTb3VyY2UsIFdlYkNvcmU6OkxheW91dFNpemUgc2l6
ZSkKK3sKKyAgICBhdXRvIHN0cm9uZ0NsaWVudCA9IGNsaWVudCgpOworICAgIGlmICghc3Ryb25n
Q2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiBzdHJvbmdQYWdlID0gcGFnZSgp
OworICAgIGlmICghc3Ryb25nUGFnZSkgeworICAgICAgICBzdHJvbmdDbGllbnQtPmRpZEZhaWxM
b2FkaW5nKCp0aGlzLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHsgV2ViQ29yZTo6ZXJyb3JEb21h
aW5XZWJLaXRJbnRlcm5hbCwgMCwgbW9kZWxTb3VyY2UudXJsKCksICJXZWJQYWdlIGRlc3Ryb3ll
ZCJfcyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNyZWF0ZUZpbGUobW9kZWxT
b3VyY2UpOworCisgICAgbV9pbmxpbmVQcmV2aWV3ID0gYWRvcHROUyhbYWxsb2NBU1ZJbmxpbmVQ
cmV2aWV3SW5zdGFuY2UoKSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgc2l6ZS53aWR0
aCgpLCBzaXplLmhlaWdodCgpKV0pOworICAgIExPRyhNb2RlbEVsZW1lbnQsICJBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllcjo6bW9kZWxEaWRDaGFuZ2UoKSBjcmVhdGVkIHByZXZpZXcgd2l0
aCBVVUlEICVzIGFuZCBzaXplICVmIHggJWYuIiwgKChTdHJpbmcpW21faW5saW5lUHJldmlldyB1
dWlkXS5VVUlEU3RyaW5nKS51dGY4KCkuZGF0YSgpLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0
KCkpOworCisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxzdGQ6OnBhaXI8U3Ry
aW5nLCB1aW50MzJfdD4sIFdlYkNvcmU6OlJlc291cmNlRXJyb3I+KT4gY29tcGxldGlvbkhhbmRs
ZXIgPSBbd2Vha1NlbGYgPSBXZWFrUHRyIHsgKnRoaXMgfV0gKEV4cGVjdGVkPHN0ZDo6cGFpcjxT
dHJpbmcsIHVpbnQzMl90PiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBtdXRhYmxl
IHsKKyAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgIGlm
ICghc3Ryb25nU2VsZikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvIHN0cm9u
Z0NsaWVudCA9IHN0cm9uZ1NlbGYtPmNsaWVudCgpOworICAgICAgICBpZiAoIXN0cm9uZ0NsaWVu
dCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoIXJlc3VsdCkgeworICAgICAg
ICAgICAgTE9HKE1vZGVsRWxlbWVudCwgIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpp
bmxpbmVQcmV2aWV3RGlkT2J0YWluQ29udGV4dElkKCkgcmVjZWl2ZWQgZXJyb3IgZnJvbSBVSVBy
b2Nlc3MiKTsKKyAgICAgICAgICAgIHN0cm9uZ0NsaWVudC0+ZGlkRmFpbExvYWRpbmcoKnN0cm9u
Z1NlbGYsIHJlc3VsdC5lcnJvcigpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIGF1dG8mIFt1dWlkLCBjb250ZXh0SWRdID0gKnJlc3VsdDsKKyAgICAgICAgU3Ry
aW5nIGV4cGVjdGVkVVVJRCA9IFtzdHJvbmdTZWxmLT5tX2lubGluZVByZXZpZXcgdXVpZF0uVVVJ
RFN0cmluZzsKKworICAgICAgICBpZiAodXVpZCAhPSBleHBlY3RlZFVVSUQpIHsKKyAgICAgICAg
ICAgIExPRyhNb2RlbEVsZW1lbnQsICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6aW5s
aW5lUHJldmlld0RpZE9idGFpbkNvbnRleHRJZCgpIFVVSUQgbWlzbWF0Y2gsIHJlY2VpdmVkICVz
IGJ1dCBleHBlY3RlZCAlcy4iLCB1dWlkLnV0ZjgoKS5kYXRhKCksIGV4cGVjdGVkVVVJRC51dGY4
KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIHN0cm9uZ0NsaWVudC0+ZGlkRmFpbExvYWRpbmcoKnN0
cm9uZ1NlbGYsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgeyBXZWJDb3JlOjplcnJvckRvbWFpbldl
YktpdEludGVybmFsLCAwLCB7IH0sIG1ha2VTdHJpbmcoIkFSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVyOjppbmxpbmVQcmV2aWV3RGlkT2J0YWluQ29udGV4dElkKCkgVVVJRCBtaXNtYXRjaCwg
cmVjZWl2ZWQgIiwgdXVpZCwgIiBidXQgZXhwZWN0ZWQgIiwgZXhwZWN0ZWRVVUlELCAiLiIpIH0p
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgW3N0cm9uZ1NlbGYt
Pm1faW5saW5lUHJldmlldyBzZXRSZW1vdGVDb250ZXh0OmNvbnRleHRJZF07CisgICAgICAgIExP
RyhNb2RlbEVsZW1lbnQsICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6aW5saW5lUHJl
dmlld0RpZE9idGFpbkNvbnRleHRJZCgpIHN1Y2Nlc3NmdWxseSBlc3RhYmxpc2hlZCByZW1vdGUg
Y29ubmVjdGlvbiBmb3IgVVVJRCAlcy4iLCB1dWlkLnV0ZjgoKS5kYXRhKCkpOworCisgICAgICAg
IHN0cm9uZ0NsaWVudC0+ZGlkRmluaXNoTG9hZGluZygqc3Ryb25nU2VsZik7CisgICAgfTsKKyAg
ICAKKyAgICBzdHJvbmdQYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6TW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyhVUkw6OmZpbGVVUkxXaXRoRmlsZVN5
c3RlbVBhdGgobV9maWxlUGF0aCksIFttX2lubGluZVByZXZpZXcgdXVpZF0uVVVJRFN0cmluZywg
c2l6ZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKworUGxhdGZvcm1MYXllciog
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmxheWVyKCkKK3sKKyAgICByZXR1cm4g
W21faW5saW5lUHJldmlldyBsYXllcl07Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNWYwZjYzZTBmYWExN2ZiODgwZjU4ZTZhYmE1
YTk2MmExNTU0MzkxMy4uNTcyZjM2ZGQwNzNlZGE2MzU4NjdlMTVmZTg4NGQ4Yjg3NDdjMmVjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTQ2LDcgKzE0Niw3
IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAjaWYgRU5BQkxFKEFSS0lU
X0lOTElORV9QUkVWSUVXX01BQykKLSNpbmNsdWRlICJBUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllci5oIgorI2luY2x1ZGUgIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLmgiCiAj
ZW5kaWYKIAogI2lmICFPUyhXSU5ET1dTKQpAQCAtNjA1LDcgKzYwNSw3IEBAIHZvaWQgV2ViUHJv
Y2Vzczo6c2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBh
cmFtZXRlcnMmJiBwCiAKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfTUFDKQogICAg
IGlmICghcGFyYW1ldGVycy5tb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkpCi0g
ICAgICAgIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpzZXRNb2RlbEVsZW1lbnRDYWNo
ZURpcmVjdG9yeShwYXJhbWV0ZXJzLm1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KTsKKyAgICAg
ICAgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OnNldE1vZGVsRWxlbWVudENhY2hl
RGlyZWN0b3J5KHBhcmFtZXRlcnMubW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkpOwogI2VuZGlm
CiAKICAgICBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChwYXJhbWV0ZXJzLnJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKTsK
</data>
<flag name="commit-queue"
          id="469406"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444397</attachid>
            <date>2021-11-16 08:53:14 -0800</date>
            <delta_ts>2021-11-16 09:14:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>233192.patch</filename>
            <type>text/plain</type>
            <size>41748</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkMzMxNGQ1NTI1NTkuLjMxZDA0NWE3MDgzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM4IEBACisyMDIxLTExLTE2ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFtNb2RlbF0gQ3JlYXRlIGlPUyBNb2RlbFBsYXllciBpbXBsZW1lbnRh
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
MTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVn
IDIzMjg0OCBmYWN0b3JlZCBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIG91dCBvZiBIVE1MTW9kZWxF
bGVtZW50IHdpdGggdGhlIHVzZSBvZiBhIG5ldyBNb2RlbFBsYXllcgorICAgICAgICBhYnN0cmFj
dGlvbiB3aXRoIGEgY29uY3JldGUgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIgaW1wbGVt
ZW50YXRpb24uIFRoaXMgZmlyc3QgcGF0Y2ggbW92ZWQgdGhlCisgICAgICAgIG1hY09TIGNvZGUs
IGFuZCB0aGlzIHBhdGNoIG1vdmVzIHRoZSByZW1haW5pbmcgaU9TIGNvZGUuCisKKyAgICAgICAg
VG8gZG8gc28gd2UgbWFrZSBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllciBhIHBhcmVudCBj
bGFzcyBvZiB0d28gcGxhdGZvcm0tc3BlY2lmaWMgc3ViY2xhc3NlczoKKyAgICAgICAgQVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMgYW5kIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxh
eWVySU9TLiBXZSBhZGQgYSBuZXcgZW50ZXJGdWxsc2NyZWVuKCkKKyAgICAgICAgbWV0aG9kIHRv
IE1vZGVsUGxheWVyLCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGluIHRoZSBpT1Mgc3ViY2xhc3Mu
IFRvIHN1cHBvcnQgdGhpcyBuZXcgbWV0aG9kLCB3ZQorICAgICAgICBhZGQgYSBuZXcgcGxhdGZv
cm1MYXllcklEKCkgb24gTW9kZWxQbGF5ZXJDbGllbnQuCisKKyAgICAgICAgKiBNb2R1bGVzL21v
ZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TW9kZWxFbGVtZW50Ojptb2RlbERpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9k
ZWxFbGVtZW50Ojp1c2VzUGxhdGZvcm1MYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTW9kZWxFbGVtZW50OjpwbGF0Zm9ybUxheWVySUQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1vZGVsRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKiBNb2R1bGVzL21vZGVs
LWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxl
bWVudC9Nb2RlbFBsYXllci5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2Rl
bFBsYXllckNsaWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBs
YXllclByb3ZpZGVyLmg6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1
bW15TW9kZWxQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHVtbXlNb2RlbFBsYXllcjo6
ZW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkv
RHVtbXlNb2RlbFBsYXllci5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1t
eS9EdW1teU1vZGVsUGxheWVyUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHVtbXlN
b2RlbFBsYXllclByb3ZpZGVyOjpjcmVhdGVNb2RlbFBsYXllcik6CisgICAgICAgICogTW9kdWxl
cy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXJQcm92aWRlci5oOgorICAgICAg
ICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLmg6
CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQ
bGF5ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpTY2VuZUtpdE1vZGVsUGxheWVyOjplbnRlckZ1
bGxzY3JlZW4pOgorCiAyMDIxLTExLTE2ICBBbmRyZXUgQm90ZWxsYSAgPGFuZHJldUBhbmRyZXVi
b3RlbGxhLmNvbT4KIAogICAgICAgICBFbXB0eSA8aW5wdXQgdHlwZT1maWxlPiBpcyByZXByZXNl
bnRlZCBpbmNvcnJlY3RseSBpbiBGb3JtRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCmluZGV4IDFiOGVl
MjY1NzQ3YS4uNTUyM2JkNmJjNWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCkBAIC0zMCw4ICszMCwx
MSBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJET01Q
cm9taXNlUHJveHkuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnRD
aGlsZEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIKKyNpbmNsdWRlICJH
cmFwaGljc0xheWVyLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NMYXllckNBLmgiCiAjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhU
TUxTb3VyY2VFbGVtZW50LmgiCkBAIC00MCwyMiArNDMsMTQgQEAKICNpbmNsdWRlICJNb2RlbC5o
IgogI2luY2x1ZGUgIk1vZGVsUGxheWVyLmgiCiAjaW5jbHVkZSAiTW9kZWxQbGF5ZXJQcm92aWRl
ci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllci5oIgorI2luY2x1
ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyTW9kZWxPYmpl
Y3QuaCIKICNpbmNsdWRlICJSZW5kZXJNb2RlbC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogCi0jaWYgRU5BQkxFKEFSS0lUX0lOTElO
RV9QUkVWSUVXX0lPUykKLSNpbmNsdWRlICJDaHJvbWUuaCIKLSNpbmNsdWRlICJDaHJvbWVDbGll
bnQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIK
LSNpbmNsdWRlICJHcmFwaGljc0xheWVyQ0EuaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVk
ZSAiUmVuZGVyTGF5ZXIuaCIKLSNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKLSNlbmRp
ZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChI
VE1MTW9kZWxFbGVtZW50KTsKQEAgLTIzNCwyMyArMjI5LDE3IEBAIHZvaWQgSFRNTE1vZGVsRWxl
bWVudDo6bW9kZWxEaWRDaGFuZ2UoKQogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIC8vIE5PVEU6IEZvciBub3csIGNyZWF0ZU1vZGVsUGxheWVyIHJldHVybmluZyBu
dWxscHRyIG1lYW5zIHRoYXQgdGhlIEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9Nb2RlbCgp
IHBhdGgKLSAgICAvLyBpcyBiZWluZyB1c2VkLCBidXQgdGhhdCBuZWVkcyB0byBiZSBwaGFzZWQg
b3V0IHRvIGFsbG93IGJpZGlyZWN0aW9uYWwgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIHRoZSBtb2Rl
bCBwbGF5ZXIKLSAgICAvLyBhbmQgdGhlIEhUTUxNb2RlbEVsZW1lbnQuIE9uY2UgdGhhdCBpcyBw
aGFzZWQgb3V0LCBjcmVhdGVNb2RlbFBsYXllcigpIHNob3VsZCBiZSB1cGRhdGVkIHRvIHJldHVy
biBhIFJlZjw+LgogICAgIG1fbW9kZWxQbGF5ZXIgPSBwYWdlLT5tb2RlbFBsYXllclByb3ZpZGVy
KCkuY3JlYXRlTW9kZWxQbGF5ZXIoKnRoaXMpOwotICAgIGlmICghbV9tb2RlbFBsYXllcikKLSAg
ICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gdGVsbCB0aGUgcGxheWVy
IGlmIHRoZSBzaXplIGNoYW5nZXMgYXMgd2VsbCwgc28gcGFzc2luZyB0aGlzCiAgICAgLy8gaW4g
d2l0aCBsb2FkIHByb2JhYmx5IGRvZXNuJ3QgbWFrZSBzZW5zZS4KICAgICBhdXRvIHNpemUgPSBy
ZW5kZXJlci0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoZmFsc2UpLnNpemUoKTsKLQogICAgIG1f
bW9kZWxQbGF5ZXItPmxvYWQoKm1fbW9kZWwsIHNpemUpOwogfQogCiBib29sIEhUTUxNb2RlbEVs
ZW1lbnQ6OnVzZXNQbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9tb2RlbFBs
YXllciAhPSBudWxscHRyOworICAgIHJldHVybiBtX21vZGVsUGxheWVyICYmIG1fbW9kZWxQbGF5
ZXItPmxheWVyKCk7CiB9CiAKIFBsYXRmb3JtTGF5ZXIqIEhUTUxNb2RlbEVsZW1lbnQ6OnBsYXRm
b3JtTGF5ZXIoKSBjb25zdApAQCAtMjcxLDMwICsyNjAsMzEgQEAgdm9pZCBIVE1MTW9kZWxFbGVt
ZW50OjpkaWRGYWlsTG9hZGluZyhNb2RlbFBsYXllciYgbW9kZWxQbGF5ZXIsIGNvbnN0IFJlc291
cmNlRXIKICAgICBBU1NFUlRfVU5VU0VEKG1vZGVsUGxheWVyLCAmbW9kZWxQbGF5ZXIgPT0gbV9t
b2RlbFBsYXllcik7CiB9CiAKLS8vIE1BUks6IC0gRnVsbHNjcmVlbiBzdXBwb3J0LgotCi12b2lk
IEhUTUxNb2RlbEVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbigpCitHcmFwaGljc0xheWVyOjpQbGF0
Zm9ybUxheWVySUQgSFRNTE1vZGVsRWxlbWVudDo6cGxhdGZvcm1MYXllcklEKCkKIHsKLS8vIEZJ
WE1FOiBBZGQgYSBuZXcgbWV0aG9kIHRvIE1vZGVsUGxheWVyIGZvciBlbnRlcmluZyBmdWxsc2Ny
ZWVuIGFuZCBtb3ZlIHRoaXMgaW50byB0aGUgaU9TIEFSS2l0IGlubGluZSBwcmV2aWV3IE1vZGVs
UGxheWVyIGltcGxlbWVudGF0aW9uLgotI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19J
T1MpCiAgICAgYXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpOwogICAgIGlmICghcGFnZSkK
LSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gMDsKIAogICAgIGlmICghaXM8UmVuZGVy
TGF5ZXJNb2RlbE9iamVjdD4odGhpcy0+cmVuZGVyZXIoKSkpCi0gICAgICAgIHJldHVybjsKKyAg
ICAgICAgcmV0dXJuIDA7CiAKICAgICBhdXRvJiByZW5kZXJMYXllck1vZGVsT2JqZWN0ID0gZG93
bmNhc3Q8UmVuZGVyTGF5ZXJNb2RlbE9iamVjdD4oKnRoaXMtPnJlbmRlcmVyKCkpOwogICAgIGlm
ICghcmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5pc0NvbXBvc2l0ZWQoKSB8fCAhcmVuZGVyTGF5ZXJN
b2RlbE9iamVjdC5sYXllcigpIHx8ICFyZW5kZXJMYXllck1vZGVsT2JqZWN0LmxheWVyKCktPmJh
Y2tpbmcoKSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gMDsKIAogICAgIGF1dG8q
IGdyYXBoaWNzTGF5ZXIgPSByZW5kZXJMYXllck1vZGVsT2JqZWN0LmxheWVyKCktPmJhY2tpbmco
KS0+Z3JhcGhpY3NMYXllcigpOwogICAgIGlmICghZ3JhcGhpY3NMYXllcikKLSAgICAgICAgcmV0
dXJuOworICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBncmFwaGljc0xheWVyLT5jb250
ZW50c0xheWVySURGb3JNb2RlbCgpOworfQogCi0gICAgaWYgKGF1dG8gY29udGVudExheWVySWQg
PSBncmFwaGljc0xheWVyLT5jb250ZW50c0xheWVySURGb3JNb2RlbCgpKQotICAgICAgICBwYWdl
LT5jaHJvbWUoKS5jbGllbnQoKS50YWtlTW9kZWxFbGVtZW50RnVsbHNjcmVlbihjb250ZW50TGF5
ZXJJZCk7Ci0jZW5kaWYKKy8vIE1BUks6IC0gRnVsbHNjcmVlbiBzdXBwb3J0LgorCit2b2lkIEhU
TUxNb2RlbEVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbigpCit7CisgICAgbV9tb2RlbFBsYXllci0+
ZW50ZXJGdWxsc2NyZWVuKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCmluZGV4IDM3ODAzMjllYTM5
NS4uNjk0NzhjMjc0ODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVs
LWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291cmNlQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJHcmFw
aGljc0xheWVyLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJJRExUeXBl
cy5oIgogI2luY2x1ZGUgIk1vZGVsUGxheWVyQ2xpZW50LmgiCkBAIC04OSw2ICs5MCw3IEBAIHBy
aXZhdGU6CiAgICAgLy8gTW9kZWxQbGF5ZXJDbGllbnQgb3ZlcnJpZGVzLgogICAgIHZvaWQgZGlk
RmluaXNoTG9hZGluZyhNb2RlbFBsYXllciYpIGZpbmFsOwogICAgIHZvaWQgZGlkRmFpbExvYWRp
bmcoTW9kZWxQbGF5ZXImLCBjb25zdCBSZXNvdXJjZUVycm9yJikgZmluYWw7CisgICAgR3JhcGhp
Y3NMYXllcjo6UGxhdGZvcm1MYXllcklEIHBsYXRmb3JtTGF5ZXJJRCgpIGZpbmFsOwogCiAgICAg
VVJMIG1fc291cmNlVVJMOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291
cmNlPiBtX3Jlc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rl
bC1lbGVtZW50L01vZGVsUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVs
ZW1lbnQvTW9kZWxQbGF5ZXIuaAppbmRleCAzYmFiMmY3OTNjNjkuLmU3MTI5ZGRjOTE0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVy
LmgKQEAgLTQwLDYgKzQwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGxvYWQoTW9k
ZWwmLCBMYXlvdXRTaXplKSA9IDA7CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBsYXllcigp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgPSAwOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxh
eWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQ
bGF5ZXJDbGllbnQuaAppbmRleCA0YjQ0OGJlZjk2MDAuLjMzZmI5ZGNiNTE4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVy
Q2xpZW50LmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJH
cmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogCkBAIC0zOSw2ICs0MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaW5pc2hMb2FkaW5nKE1vZGVsUGxheWVyJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRGYWlsTG9hZGluZyhNb2RlbFBsYXllciYsIGNvbnN0IFJlc291cmNlRXJyb3ImKSA9IDA7Cisg
ICAgdmlydHVhbCBHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgcGxhdGZvcm1MYXllcklE
KCkgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rl
bC1lbGVtZW50L01vZGVsUGxheWVyUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllclByb3ZpZGVyLmgKaW5kZXggN2Q0YmI0ZWZkMTc4Li41
YjAyODA2M2RjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxl
bWVudC9Nb2RlbFBsYXllclByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2RlbC1lbGVtZW50L01vZGVsUGxheWVyUHJvdmlkZXIuaApAQCAtMzksNyArMzksNyBAQCBwdWJs
aWM6CiAKICAgICAvLyBGSVhNRTogT25jZSBhbGwgY2xpZW50cyBoYXZlIGFkb3B0ZWQgTW9kZWxQ
bGF5ZXJQcm92aWRlciwgdGhpcyBzaG91bGQKICAgICAvLyBiZSBjaGFuZ2VkIHRvIHJldHVybiBh
IFJlZjxNb2RlbFBsYXllcj4KLSAgICB2aXJ0dWFsIFJlZlB0cjxNb2RlbFBsYXllcj4gY3JlYXRl
TW9kZWxQbGF5ZXIoTW9kZWxQbGF5ZXJDbGllbnQmKSA9IDA7CisgICAgdmlydHVhbCBSZWY8TW9k
ZWxQbGF5ZXI+IGNyZWF0ZU1vZGVsUGxheWVyKE1vZGVsUGxheWVyQ2xpZW50JikgPSAwOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1
bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1l
bGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwCmluZGV4IDQyMjgzYTY2YjFjZC4uODI0
NjYxNjFlZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1l
bnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwCkBAIC01NCw0ICs1NCw4
IEBAIFBsYXRmb3JtTGF5ZXIqIER1bW15TW9kZWxQbGF5ZXI6OmxheWVyKCkKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAordm9pZCBEdW1teU1vZGVsUGxheWVyOjplbnRlckZ1bGxzY3JlZW4oKQor
eworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1l
bnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rl
bC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaAppbmRleCBlZTU3Mzk2ZDE4YzUuLjgz
OGViZWNmOGQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVt
ZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oCkBAIC00MSw4ICs0MSw5IEBA
IHByaXZhdGU6CiAgICAgRHVtbXlNb2RlbFBsYXllcihNb2RlbFBsYXllckNsaWVudCYpOwogCiAg
ICAgLy8gTW9kZWxQbGF5ZXIgb3ZlcnJpZGVzLgotICAgIHZpcnR1YWwgdm9pZCBsb2FkKE1vZGVs
JiwgTGF5b3V0U2l6ZSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBsYXll
cigpIG92ZXJyaWRlOworICAgIHZvaWQgbG9hZChNb2RlbCYsIExheW91dFNpemUpIG92ZXJyaWRl
OworICAgIFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBlbnRlckZ1
bGxzY3JlZW4oKSBvdmVycmlkZTsKIAogICAgIFdlYWtQdHI8TW9kZWxQbGF5ZXJDbGllbnQ+IG1f
Y2xpZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxl
bWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXJQcm92aWRlci5jcHAK
aW5kZXggMWMyZmQ1N2NiMmUxLi4wZjRkMTg5ZjQzNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyUHJvdmlkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1t
eU1vZGVsUGxheWVyUHJvdmlkZXIuY3BwCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIER1bW15TW9kZWxQbGF5ZXJQcm92aWRlcjo6RHVtbXlNb2RlbFBsYXllclByb3ZpZGVy
KCkgPSBkZWZhdWx0OwogRHVtbXlNb2RlbFBsYXllclByb3ZpZGVyOjp+RHVtbXlNb2RlbFBsYXll
clByb3ZpZGVyKCkgPSBkZWZhdWx0OwogCi1SZWZQdHI8TW9kZWxQbGF5ZXI+IER1bW15TW9kZWxQ
bGF5ZXJQcm92aWRlcjo6Y3JlYXRlTW9kZWxQbGF5ZXIoTW9kZWxQbGF5ZXJDbGllbnQmIGNsaWVu
dCkKK1JlZjxNb2RlbFBsYXllcj4gRHVtbXlNb2RlbFBsYXllclByb3ZpZGVyOjpjcmVhdGVNb2Rl
bFBsYXllcihNb2RlbFBsYXllckNsaWVudCYgY2xpZW50KQogewogICAgIHJldHVybiBEdW1teU1v
ZGVsUGxheWVyOjpjcmVhdGUoY2xpZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyUHJvdmlkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxh
eWVyUHJvdmlkZXIuaAppbmRleCA1YTZkYzc4ODg4ZjAuLjA1NTM4MDk0Y2IxZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQ
bGF5ZXJQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVu
dC9kdW1teS9EdW1teU1vZGVsUGxheWVyUHJvdmlkZXIuaApAQCAtMzYsNyArMzYsNyBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgLy8gTW9kZWxQbGF5ZXJQcm92aWRlciBvdmVycmlkZXMuCi0g
ICAgdmlydHVhbCBSZWZQdHI8TW9kZWxQbGF5ZXI+IGNyZWF0ZU1vZGVsUGxheWVyKE1vZGVsUGxh
eWVyQ2xpZW50Jikgb3ZlcnJpZGU7CisgICAgUmVmPE1vZGVsUGxheWVyPiBjcmVhdGVNb2RlbFBs
YXllcihNb2RlbFBsYXllckNsaWVudCYpIG92ZXJyaWRlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9k
ZWxQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtp
dC9TY2VuZUtpdE1vZGVsUGxheWVyLmgKaW5kZXggMzA4NWY4MTU5Yzc0Li40YWMzZGFiOWRkNTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtp
dC9TY2VuZUtpdE1vZGVsUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rl
bC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIuaApAQCAtNTUsOCArNTUsOSBA
QCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlU2NlbmUoKTsKIAogICAgIC8vIE1vZGVsUGxheWVy
IG92ZXJyaWRlcy4KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChNb2RlbCYsIExheW91dFNpemUpIG92
ZXJyaWRlOwotICAgIHZpcnR1YWwgQ0FMYXllciAqbGF5ZXIoKSBvdmVycmlkZTsKKyAgICB2b2lk
IGxvYWQoTW9kZWwmLCBMYXlvdXRTaXplKSBvdmVycmlkZTsKKyAgICBDQUxheWVyICpsYXllcigp
IG92ZXJyaWRlOworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CiAKICAgICAv
LyBTY2VuZUtpdE1vZGVsTG9hZGVyQ2xpZW50IG92ZXJyaWRlcy4KICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoTG9hZGluZyhTY2VuZUtpdE1vZGVsTG9hZGVyJiwgUmVmPFNjZW5lS2l0TW9kZWw+
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxl
bWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW0KaW5kZXgg
Njk5MjM0MWY5ZjNhLi42OTY5NmM5ZTY5MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1v
ZGVsUGxheWVyLm1tCkBAIC03Miw2ICs3MiwxMCBAQCBQbGF0Zm9ybUxheWVyKiBTY2VuZUtpdE1v
ZGVsUGxheWVyOjpsYXllcigpCiAgICAgcmV0dXJuIG1fbGF5ZXIuZ2V0KCk7CiB9CiAKK3ZvaWQg
U2NlbmVLaXRNb2RlbFBsYXllcjo6ZW50ZXJGdWxsc2NyZWVuKCkKK3sKK30KKwogLy8gTUFSSzog
LSBTY2VuZUtpdE1vZGVsTG9hZGVyQ2xpZW50IG92ZXJyaWRlcy4KIAogdm9pZCBTY2VuZUtpdE1v
ZGVsUGxheWVyOjpkaWRGaW5pc2hMb2FkaW5nKFNjZW5lS2l0TW9kZWxMb2FkZXImIGxvYWRlciwg
UmVmPFNjZW5lS2l0TW9kZWw+IG1vZGVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlNDVlNDhkMjgwYjMuLjFiOTdk
ZWFiNTcxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAyMS0xMS0xNiAgQW50b2luZSBR
dWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAgICAgICBbTW9kZWxdIENyZWF0ZSBpT1Mg
TW9kZWxQbGF5ZXIgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMzE5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEJ1ZyAyMzI4NDggZmFjdG9yZWQgcGxhdGZvcm0tc3BlY2lmaWMg
Y29kZSBvdXQgb2YgSFRNTE1vZGVsRWxlbWVudCB3aXRoIHRoZSB1c2Ugb2YgYSBuZXcgTW9kZWxQ
bGF5ZXIKKyAgICAgICAgYWJzdHJhY3Rpb24gd2l0aCBhIGNvbmNyZXRlIEFSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVyIGltcGxlbWVudGF0aW9uLiBUaGlzIGZpcnN0IHBhdGNoIG1vdmVkIHRo
ZQorICAgICAgICBtYWNPUyBjb2RlLCBhbmQgdGhpcyBwYXRjaCBtb3ZlcyB0aGUgcmVtYWluaW5n
IGlPUyBjb2RlLgorCisgICAgICAgIFRvIGRvIHNvIHdlIG1ha2UgQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXIgYSBwYXJlbnQgY2xhc3Mgb2YgdHdvIHBsYXRmb3JtLXNwZWNpZmljIHN1YmNs
YXNzZXM6CisgICAgICAgIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjIGFuZCBBUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy4gV2UgYWRkIGEgbmV3IGVudGVyRnVsbHNjcmVl
bigpCisgICAgICAgIG1ldGhvZCB0byBNb2RlbFBsYXllciwgd2l0aCBhbiBpbXBsZW1lbnRhdGlv
biBpbiB0aGUgaU9TIHN1YmNsYXNzLiBUbyBzdXBwb3J0IHRoaXMgbmV3IG1ldGhvZCwgd2UKKyAg
ICAgICAgYWRkIGEgbmV3IHBsYXRmb3JtTGF5ZXJJRCgpIG9uIE1vZGVsUGxheWVyQ2xpZW50Lgor
CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaC4KKyAgICAgICAgKFdl
YktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OnBhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6Y2xpZW50KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvV2ViTW9kZWxQbGF5ZXJQcm92aWRl
ci5oLgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6QVJL
aXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllcjo6fkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKToKKyAg
ICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmxvYWQpOgorICAg
ICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6bGF5ZXIpOgorICAg
ICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6ZW50ZXJGdWxsc2Ny
ZWVuKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL01vZGVsL1dlYk1vZGVsUGxheWVyUHJvdmlkZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNb2RlbFBsYXllclByb3ZpZGVyOjpjcmVhdGVNb2Rl
bFBsYXllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9Nb2RlbC9XZWJNb2RlbFBsYXllclByb3Zp
ZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Nb2RlbC9pb3MvQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXJJT1MuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01v
ZGVsL1dlYk1vZGVsUGxheWVyUHJvdmlkZXIuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL01vZGVs
L2lvcy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5tbTogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL1dlYk1vZGVsUGxheWVyUHJvdmlkZXIuY3BwLgor
ICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUzo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1M6OkFS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TKToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1M6On5BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
cklPUyk6CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9T
OjplbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0
SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmguCisg
ICAgICAgICogV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXJNYWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFj
L0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tLgorICAgICAgICAoV2ViS2l0OjpBUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OkFSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVyTWFjKToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXJNYWM6On5BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYyk6CisgICAgICAgIChXZWJL
aXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpzZXRNb2RlbEVsZW1lbnRDYWNo
ZURpcmVjdG9yeSk6CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxh
eWVyTWFjOjpjcmVhdGVGaWxlKToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXJNYWM6OmNsZWFyRmlsZSk6CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyTWFjOjpsb2FkKToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmxheWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRXZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycyk6CisKIDIwMjEtMTEtMTYgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51
bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpt
X3N3YXBDaGFpbiBpcyB1bnVzZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBjYThkMjM5NWZh
OWQuLmEzZTdiYjY2NDcxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjU1LDcgKzY1NSw5
IEBAIFdlYlByb2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JVSU1hYy5tbQogCiBXZWJQ
cm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAKIAotV2ViUHJv
Y2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0KK1dlYlByb2Nl
c3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0KK1dlYlByb2Nlc3MvTW9k
ZWwvaW9zL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLm1tCitXZWJQcm9jZXNzL01v
ZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5tbQogCiBXZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW5Bbm5vdGF0aW9uLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA2NDMxZDQwYjA1NmEuLmE4NGZhYTdkZTU4NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTEzLDYgKzQ1
MTMsMTAgQEAKIAkJNzEzN0JBN0QyNUYxNTNFOTAwOTE0RUUzIC8qIE1vZGVsRWxlbWVudENvbnRy
b2xsZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1vZGVsRWxlbWVudENvbnRyb2xs
ZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzEzN0JBN0UyNUYxNTQw
QjAwOTE0RUUzIC8qIE1vZGVsRWxlbWVudENvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTW9kZWxFbGVtZW50Q29udHJvbGxlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxMzdCQTdGMjVGMTU0MEMwMDkxNEVFMyAvKiBNb2RlbEVs
ZW1lbnRDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZGVs
RWxlbWVudENvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzE3N0FE
NUIyNzQzRDdBOTAwMkYxMDNCIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcxNzdBRDVDMjc0M0Q3QTkwMDJGMTAzQiAvKiBB
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MTc3
QUQ2NjI3NDNGNjZDMDAyRjEwM0IgLyogQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1Mu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklP
Uy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzE3N0FENjcyNzQzRjY2QzAwMkYx
MDNCIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTcxQTY3NkE0MjJDNjIzMTgwMDdENjI5NSAvKiBXS1RvdWNoQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tUb3VjaEFj
dGlvbkdlc3R1cmVSZWNvZ25pemVyLmg7IHBhdGggPSBpb3MvV0tUb3VjaEFjdGlvbkdlc3R1cmVS
ZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxQTY3NkE1MjJDNjIz
MTgwMDdENjI5NSAvKiBXS1RvdWNoQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS1RvdWNoQWN0aW9uR2VzdHVyZVJlY29n
bml6ZXIubW07IHBhdGggPSBpb3MvV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MUJBQTczMTI1RkZDQ0JBMDBEN0NENUQgLyog
V0tNb2RlbFZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tNb2RlbFZp
ZXcuaDsgcGF0aCA9IGlvcy9XS01vZGVsVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNTIyMCw4ICs1MjI0LDggQEAKIAkJQkMyMDUyODAxMUM5NDI4NDAwOEYzMzc1IC8qIFdL
QnVuZGxlUGFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1
bmRsZVBhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzI2NTIxMjExODI2
MDgxMDAyNDNFMTIgLyogRHJhd2luZ0FyZWFQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBEcmF3aW5nQXJlYVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkMyNjUyMTMxMTgyNjA4MTAwMjQzRTEyIC8qIERyYXdpbmdBcmVhUHJveHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhd2luZ0FyZWFQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzJCNDEwQzI3MzJFRjk2MDBBMkQxOTEgLyog
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMy
QjQxMEQyNzMyRUY5NjAwQTJEMTkxIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMkI0MTBDMjczMkVGOTYwMEEyRDE5MSAv
KiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCQzJCNDEwRDI3MzJFRjk2MDBBMkQxOTEgLyogQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMyQjQxMUEyNzMy
RjY2RTAwQTJEMTkxIC8qIFdlYk1vZGVsUGxheWVyUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViTW9kZWxQbGF5ZXJQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
QzJCNDExQjI3MzJGNjZFMDBBMkQxOTEgLyogV2ViTW9kZWxQbGF5ZXJQcm92aWRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJNb2RlbFBsYXllclByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkMyRDAyMTYxMkFDNDFDQjAwRTczMkEzIC8qIFNhbWVEb2N1bWVu
dE5hdmlnYXRpb25UeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbWVE
b2N1bWVudE5hdmlnYXRpb25UeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05
MjkwLDYgKzkyOTQsMTUgQEAKIAkJCW5hbWUgPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwogCQl9OworCQk3MTc3QUQ2NTI3NDNGNjZDMDAyRjEwM0IgLyogaW9zICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk3MTc3QUQ2NzI3NDNGNjZDMDAy
RjEwM0IgLyogQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MuaCAqLywKKwkJCQk3MTc3
QUQ2NjI3NDNGNjZDMDAyRjEwM0IgLyogQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1Mu
bW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CisJCX07CiAJCTcyN0E3RjMzMjQwNzg1MjcwMDREMjkzMSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xMDYxMSw3ICsxMDYyNCwxMCBAQAog
CQlCQzJCNDEwQTI3MzJFRjY1MDBBMkQxOTEgLyogTW9kZWwgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTcxNzdBRDY1Mjc0M0Y2NkMwMDJGMTAzQiAvKiBp
b3MgKi8sCiAJCQkJQkMyQjQxMEIyNzMyRUY3NTAwQTJEMTkxIC8qIG1hYyAqLywKKwkJCQk3MTc3
QUQ1QzI3NDNEN0E5MDAyRjEwM0IgLyogQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaCAq
LywKKwkJCQk3MTc3QUQ1QjI3NDNEN0E5MDAyRjEwM0IgLyogQVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXIubW0gKi8sCiAJCQkJQkMyQjQxMUIyNzMyRjY2RTAwQTJEMTkxIC8qIFdlYk1vZGVs
UGxheWVyUHJvdmlkZXIuY3BwICovLAogCQkJCUJDMkI0MTFBMjczMkY2NkUwMEEyRDE5MSAvKiBX
ZWJNb2RlbFBsYXllclByb3ZpZGVyLmggKi8sCiAJCQkpOwpAQCAtMTA2MjEsOCArMTA2MzcsOCBA
QAogCQlCQzJCNDEwQjI3MzJFRjc1MDBBMkQxOTEgLyogbWFjICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlCQzJCNDEwQzI3MzJFRjk2MDBBMkQxOTEgLyog
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaCAqLywKLQkJCQlCQzJCNDEwRDI3MzJFRjk2
MDBBMkQxOTEgLyogQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0gKi8sCisJCQkJQkMy
QjQxMEMyNzMyRUY5NjAwQTJEMTkxIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFj
LmggKi8sCisJCQkJQkMyQjQxMEQyNzMyRUY5NjAwQTJEMTkxIC8qIEFSS2l0SW5saW5lUHJldmll
d01vZGVsUGxheWVyTWFjLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01v
ZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNjYWFjYjM1NjVmOQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFVykKKworI2luY2x1ZGUgPFdlYkNvcmUvTW9k
ZWxQbGF5ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01vZGVsUGxheWVyQ2xpZW50Lmg+CisjaW5j
bHVkZSA8d3RmL0NvbXBpbGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBBUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllciA6IHB1YmxpYyBXZWJDb3JlOjpNb2RlbFBsYXllciwg
cHVibGljIENhbk1ha2VXZWFrUHRyPEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyPiB7Citw
dWJsaWM6CisgICAgdmlydHVhbCB+QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIoKTsKKwor
cHJvdGVjdGVkOgorICAgIGV4cGxpY2l0IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKFdl
YlBhZ2UmLCBXZWJDb3JlOjpNb2RlbFBsYXllckNsaWVudCYpOworCisgICAgV2ViUGFnZSogcGFn
ZSgpIHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQorICAgIFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xp
ZW50KiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQorCitwcml2YXRlOgorICAg
IC8vIFdlYkNvcmU6Ok1vZGVsUGxheWVyIG92ZXJyaWRlcy4KKyAgICB2b2lkIGxvYWQoV2ViQ29y
ZTo6TW9kZWwmLCBXZWJDb3JlOjpMYXlvdXRTaXplKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybUxh
eWVyKiBsYXllcigpIG92ZXJyaWRlOworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJp
ZGU7CisKKyAgICBXZWFrUHRyPFdlYlBhZ2U+IG1fcGFnZTsKKyAgICBXZWFrUHRyPFdlYkNvcmU6
Ok1vZGVsUGxheWVyQ2xpZW50PiBtX2NsaWVudDsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwLi5lZGJkMTRhMTljZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0KQEAgLTAsMCArMSw2
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXIuaCIKKworI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklF
VykKKworI2ltcG9ydCAiV2ViUGFnZS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworQVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKFdl
YlBhZ2UmIHBhZ2UsIFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50JiBjbGllbnQpCisgICAgOiBt
X3BhZ2UgeyBwYWdlIH0KKyAgICAsIG1fY2xpZW50IHsgY2xpZW50IH0KK3sKK30KKworQVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6On5BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcigp
Cit7Cit9CisKK3ZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmxvYWQoV2ViQ29y
ZTo6TW9kZWwmLCBXZWJDb3JlOjpMYXlvdXRTaXplKQoreworfQorCitQbGF0Zm9ybUxheWVyKiBB
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6bGF5ZXIoKQoreworICAgIHJldHVybiBudWxs
cHRyOworfQorCit2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjplbnRlckZ1bGxz
Y3JlZW4oKQoreworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL01vZGVsL1dlYk1vZGVsUGxheWVyUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL01vZGVsL1dlYk1vZGVsUGxheWVyUHJvdmlkZXIuY3BwCmluZGV4IDg2MGU0
N2ZkMDgxMy4uZDRhYTQyZDZmZmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTW9kZWwvV2ViTW9kZWxQbGF5ZXJQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL01vZGVsL1dlYk1vZGVsUGxheWVyUHJvdmlkZXIuY3BwCkBAIC0yOCw5ICsyOCwx
NCBAQAogCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTW9kZWxQbGF5
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0R1bW15TW9kZWxQbGF5ZXIuaD4KIAogI2lmIEVOQUJM
RShBUktJVF9JTkxJTkVfUFJFVklFV19NQUMpCi0jaW5jbHVkZSAiQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXIuaCIKKyNpbmNsdWRlICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1h
Yy5oIgorI2VuZGlmCisKKyNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfSU9TKQorI2lu
Y2x1ZGUgIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLmgiCiAjZW5kaWYKIAogI2lm
IEhBVkUoU0NFTkVLSVQpCkBAIC00OSwyMCArNTQsMjIgQEAgV2ViTW9kZWxQbGF5ZXJQcm92aWRl
cjo6fldlYk1vZGVsUGxheWVyUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CiAKIC8vIE1BUks6IC0gV2Vi
Q29yZTo6TW9kZWxQbGF5ZXJQcm92aWRlciBvdmVycmlkZXMuCiAKLVJlZlB0cjxXZWJDb3JlOjpN
b2RlbFBsYXllcj4gV2ViTW9kZWxQbGF5ZXJQcm92aWRlcjo6Y3JlYXRlTW9kZWxQbGF5ZXIoV2Vi
Q29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmIGNsaWVudCkKK1JlZjxXZWJDb3JlOjpNb2RlbFBsYXll
cj4gV2ViTW9kZWxQbGF5ZXJQcm92aWRlcjo6Y3JlYXRlTW9kZWxQbGF5ZXIoV2ViQ29yZTo6TW9k
ZWxQbGF5ZXJDbGllbnQmIGNsaWVudCkKIHsKLSAgICBVTlVTRURfUEFSQU0oY2xpZW50KTsKLQog
I2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19NQUMpCiAgICAgaWYgKG1fcGFnZS51c2VB
UktpdEZvck1vZGVsKCkpCi0gICAgICAgIHJldHVybiBBUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllcjo6Y3JlYXRlKG1fcGFnZSwgY2xpZW50KTsKKyAgICAgICAgcmV0dXJuIEFSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyTWFjOjpjcmVhdGUobV9wYWdlLCBjbGllbnQpOwogI2VuZGlmCiAj
aWYgSEFWRShTQ0VORUtJVCkKICAgICBpZiAobV9wYWdlLnVzZVNjZW5lS2l0Rm9yTW9kZWwoKSkK
ICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNjZW5lS2l0TW9kZWxQbGF5ZXI6OmNyZWF0ZShjbGll
bnQpOwogI2VuZGlmCisjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX0lPUykKKyAgICBy
ZXR1cm4gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1M6OmNyZWF0ZShtX3BhZ2UsIGNs
aWVudCk7CisjZW5kaWYKIAotICAgIHJldHVybiBudWxscHRyOworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBEdW1teU1vZGVsUGxheWVyOjpjcmVhdGUobV9wYWdlLCBjbGll
bnQpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwv
V2ViTW9kZWxQbGF5ZXJQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVs
L1dlYk1vZGVsUGxheWVyUHJvdmlkZXIuaAppbmRleCA4MmU0YTUzZDliYjguLjU5NzdmMmRkMTI2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL1dlYk1vZGVsUGxh
eWVyUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvV2ViTW9k
ZWxQbGF5ZXJQcm92aWRlci5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICAvLyBXZWJDb3JlOjpNb2RlbFBsYXllclByb3ZpZGVyIG92ZXJyaWRlcy4KLSAgICB2aXJ0
dWFsIFJlZlB0cjxXZWJDb3JlOjpNb2RlbFBsYXllcj4gY3JlYXRlTW9kZWxQbGF5ZXIoV2ViQ29y
ZTo6TW9kZWxQbGF5ZXJDbGllbnQmKSBmaW5hbDsKKyAgICBSZWY8V2ViQ29yZTo6TW9kZWxQbGF5
ZXI+IGNyZWF0ZU1vZGVsUGxheWVyKFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50JikgZmluYWw7
CiAKICAgICBXZWJQYWdlJiBtX3BhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL01vZGVsL2lvcy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL2lvcy9BUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllcklPUy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOTdm
YjY3Njg2NzVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01v
ZGVsL2lvcy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5oCkBAIC0wLDAgKzEsNTAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShBUktJVF9JTkxJTkVf
UFJFVklFV19JT1MpCisKKyNpbmNsdWRlICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvTW9kZWxQbGF5ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01v
ZGVsUGxheWVyQ2xpZW50Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBBUktpdElu
bGluZVByZXZpZXdNb2RlbFBsYXllcklPUyBmaW5hbCA6IHB1YmxpYyBBUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxBUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllcklPUz4gY3JlYXRlKFdlYlBhZ2UmLCBXZWJDb3JlOjpNb2RlbFBsYXllckNs
aWVudCYpOworICAgIHZpcnR1YWwgfkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TKCk7
CisKK3ByaXZhdGU6CisgICAgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MoV2ViUGFn
ZSYsIFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50Jik7CisKKyAgICAvLyBXZWJDb3JlOjpNb2Rl
bFBsYXllciBvdmVycmlkZXMuCisgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZTsK
K307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TW9kZWwvaW9zL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLm1tIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL01vZGVsL2lvcy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklP
Uy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmVkZTE0NWE1MWQy
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9pb3Mv
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MubW0KQEAgLTAsMCArMSw2NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXJJT1MuaCIKKworI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19JT1Mp
CisKKyNpbXBvcnQgIldlYlBhZ2UuaCIKKyNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgi
CisjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1JlZjxBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUz4gQVJLaXRJbmxpbmVQcmV2
aWV3TW9kZWxQbGF5ZXJJT1M6OmNyZWF0ZShXZWJQYWdlJiBwYWdlLCBXZWJDb3JlOjpNb2RlbFBs
YXllckNsaWVudCYgY2xpZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFSS2l0SW5s
aW5lUHJldmlld01vZGVsUGxheWVySU9TKHBhZ2UsIGNsaWVudCkpOworfQorCitBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllcklPUzo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1Mo
V2ViUGFnZSYgcGFnZSwgV2ViQ29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmIGNsaWVudCkKKyAgICA6
IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKHBhZ2UsIGNsaWVudCkKK3sKK30KKworQVJL
aXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1M6On5BUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllcklPUygpCit7Cit9CisKKy8vIE1BUks6IC0gV2ViQ29yZTo6TW9kZWxQbGF5ZXIgb3ZlcnJp
ZGVzLgorCit2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TOjplbnRlckZ1bGxz
Y3JlZW4oKQoreworICAgIGlmICghY2xpZW50KCkgfHwgIXBhZ2UoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKGF1dG8gbGF5ZXJJZCA9IGNsaWVudCgpLT5wbGF0Zm9ybUxheWVySUQoKSkK
KyAgICAgICAgcGFnZSgpLT50YWtlTW9kZWxFbGVtZW50RnVsbHNjcmVlbihsYXllcklkKTsKK30K
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2Rl
bC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMuaApzaW1p
bGFyaXR5IGluZGV4IDc3JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9k
ZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmgKcmVuYW1lIHRvIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJN
YWMuaAppbmRleCA0ZjAyMDcwYzQyNjUuLjNiNTU5YmMyMzQ4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXJNYWMuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKEFS
S0lUX0lOTElORV9QUkVWSUVXX01BQykKIAorI2luY2x1ZGUgIkFSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2RlbFBsYXllci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTW9kZWxQbGF5ZXJDbGllbnQuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4K
QEAgLTM2LDI2ICszNywyMyBAQCBPQkpDX0NMQVNTIEFTVklubGluZVByZXZpZXc7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1jbGFzcyBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllciBmaW5h
bCA6IHB1YmxpYyBXZWJDb3JlOjpNb2RlbFBsYXllciwgcHVibGljIENhbk1ha2VXZWFrUHRyPEFS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyPiB7CitjbGFzcyBBUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllck1hYyBmaW5hbCA6IHB1YmxpYyBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
cj4gY3JlYXRlKFdlYlBhZ2UmLCBXZWJDb3JlOjpNb2RlbFBsYXllckNsaWVudCYpOwotICAgIHZp
cnR1YWwgfkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKCk7CisgICAgc3RhdGljIFJlZjxB
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYz4gY3JlYXRlKFdlYlBhZ2UmLCBXZWJDb3Jl
OjpNb2RlbFBsYXllckNsaWVudCYpOworICAgIHZpcnR1YWwgfkFSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVyTWFjKCk7CiAKICAgICBzdGF0aWMgdm9pZCBzZXRNb2RlbEVsZW1lbnRDYWNoZURp
cmVjdG9yeShjb25zdCBTdHJpbmcmKTsKIAogcHJpdmF0ZToKLSAgICBBUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllcihXZWJQYWdlJiwgV2ViQ29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmKTsKKyAg
ICBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYyhXZWJQYWdlJiwgV2ViQ29yZTo6TW9k
ZWxQbGF5ZXJDbGllbnQmKTsKIAogICAgIC8vIFdlYkNvcmU6Ok1vZGVsUGxheWVyIG92ZXJyaWRl
cy4KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChXZWJDb3JlOjpNb2RlbCYsIFdlYkNvcmU6OkxheW91
dFNpemUpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogbGF5ZXIoKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGxvYWQoV2ViQ29yZTo6TW9kZWwmLCBXZWJDb3JlOjpMYXlvdXRTaXpl
KSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybUxheWVyKiBsYXllcigpIG92ZXJyaWRlOwogCiAgICAg
dm9pZCBjcmVhdGVGaWxlKFdlYkNvcmU6Ok1vZGVsJik7CiAgICAgdm9pZCBjbGVhckZpbGUoKTsK
IAotICAgIFdlYWtQdHI8V2ViUGFnZT4gbV9wYWdlOwotICAgIFdlYWtQdHI8V2ViQ29yZTo6TW9k
ZWxQbGF5ZXJDbGllbnQ+IG1fY2xpZW50OwotCiAgICAgU3RyaW5nIG1fZmlsZVBhdGg7CiAgICAg
UmV0YWluUHRyPEFTVklubGluZVByZXZpZXc+IG1faW5saW5lUHJldmlldzsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmll
d01vZGVsUGxheWVyLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5tbQpzaW1pbGFyaXR5IGluZGV4IDg1JQpyZW5h
bWUgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVyLm1tCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9k
ZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLm1tCmluZGV4IDJkZjI0NTFh
ZmMzMS4uN2M3YzNmYjhkYTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJN
YWMubW0KQEAgLTI0LDExICsyNCwxMCBAQAogICovCiAKICNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMuaCIKIAogI2lmIEVOQUJMRShB
UktJVF9JTkxJTkVfUFJFVklFV19NQUMpCiAKLSNpbXBvcnQgIkFSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVyLmgiCi0KICNpbXBvcnQgIldlYlBhZ2UuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94
eU1lc3NhZ2VzLmgiCiAjaW1wb3J0IDxXZWJDb3JlL01vZGVsLmg+CkBAIC00MSwxOCArNDAsMTcg
QEAgU09GVF9MSU5LX0NMQVNTKEFzc2V0Vmlld2VyLCBBU1ZJbmxpbmVQcmV2aWV3KTsKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLVJlZjxBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcj4gQVJL
aXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmNyZWF0ZShXZWJQYWdlJiBwYWdlLCBXZWJDb3Jl
OjpNb2RlbFBsYXllckNsaWVudCYgY2xpZW50KQorUmVmPEFSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVyTWFjPiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6Y3JlYXRlKFdlYlBh
Z2UmIHBhZ2UsIFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50JiBjbGllbnQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIocGFnZSwgY2xp
ZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXJNYWMocGFnZSwgY2xpZW50KSk7CiB9CiAKLUFSS2l0SW5saW5lUHJldmlld01vZGVsUGxh
eWVyOjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcihXZWJQYWdlJiBwYWdlLCBXZWJDb3Jl
OjpNb2RlbFBsYXllckNsaWVudCYgY2xpZW50KQotICAgIDogbV9wYWdlIHsgcGFnZSB9Ci0gICAg
LCBtX2NsaWVudCB7IGNsaWVudCB9CitBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMoV2ViUGFnZSYgcGFnZSwgV2ViQ29yZTo6
TW9kZWxQbGF5ZXJDbGllbnQmIGNsaWVudCkKKyAgICA6IEFSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVyKHBhZ2UsIGNsaWVudCkKIHsKIH0KIAotQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXI6On5BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcigpCitBUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllck1hYzo6fkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjKCkKIHsKICAg
ICBjbGVhckZpbGUoKTsKIH0KQEAgLTY4LDEyICs2NiwxMiBAQCBzdGF0aWMgY29uc3QgU3RyaW5n
JiBtb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSgpCiAgICAgcmV0dXJuIHNoYXJlZE1vZGVsRWxl
bWVudENhY2hlRGlyZWN0b3J5KCk7CiB9CiAKLXZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXI6OnNldE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCkK
K3ZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OnNldE1vZGVsRWxlbWVudENh
Y2hlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICBzaGFyZWRNb2RlbEVsZW1l
bnRDYWNoZURpcmVjdG9yeSgpID0gcGF0aDsKIH0KIAotdm9pZCBBUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllcjo6Y3JlYXRlRmlsZShXZWJDb3JlOjpNb2RlbCYgbW9kZWxTb3VyY2UpCit2b2lk
IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpjcmVhdGVGaWxlKFdlYkNvcmU6Ok1v
ZGVsJiBtb2RlbFNvdXJjZSkKIHsKICAgICAvLyBUaGUgbmVlZCBmb3IgYSBmaWxlIGlzIG9ubHkg
dGVtcG9yYXJ5IGR1ZSB0byB0aGUgbmF0dXJlIG9mIEFTVklubGluZVByZXZpZXcsCiAgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzU2Ny4KQEAgLTEwNiw3
ICsxMDQsNyBAQCB2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpjcmVhdGVGaWxl
KFdlYkNvcmU6Ok1vZGVsJiBtb2RlbFNvdXJjZSkKICAgICBtX2ZpbGVQYXRoID0gZmlsZVBhdGg7
CiB9CiAKLXZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmNsZWFyRmlsZSgpCit2
b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpjbGVhckZpbGUoKQogewogICAg
IGlmIChtX2ZpbGVQYXRoLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTE3LDEzICsx
MTUsMTMgQEAgdm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6Y2xlYXJGaWxlKCkK
IAogLy8gTUFSSzogLSBXZWJDb3JlOjpNb2RlbFBsYXllciBvdmVycmlkZXMuCiAKLXZvaWQgQVJL
aXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmxvYWQoV2ViQ29yZTo6TW9kZWwmIG1vZGVsU291
cmNlLCBXZWJDb3JlOjpMYXlvdXRTaXplIHNpemUpCit2b2lkIEFSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVyTWFjOjpsb2FkKFdlYkNvcmU6Ok1vZGVsJiBtb2RlbFNvdXJjZSwgV2ViQ29yZTo6
TGF5b3V0U2l6ZSBzaXplKQogewotICAgIGF1dG8gc3Ryb25nQ2xpZW50ID0gbV9jbGllbnQuZ2V0
KCk7CisgICAgYXV0byBzdHJvbmdDbGllbnQgPSBjbGllbnQoKTsKICAgICBpZiAoIXN0cm9uZ0Ns
aWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byogc3Ryb25nUGFnZSA9IG1fcGFnZS5n
ZXQoKTsKKyAgICBhdXRvKiBzdHJvbmdQYWdlID0gcGFnZSgpOwogICAgIGlmICghc3Ryb25nUGFn
ZSkgewogICAgICAgICBzdHJvbmdDbGllbnQtPmRpZEZhaWxMb2FkaW5nKCp0aGlzLCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yIHsgV2ViQ29yZTo6ZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwg
bW9kZWxTb3VyY2UudXJsKCksICJXZWJQYWdlIGRlc3Ryb3llZCJfcyB9KTsKICAgICAgICAgcmV0
dXJuOwpAQCAtMTM5LDcgKzEzNyw3IEBAIHZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXI6OmxvYWQoV2ViQ29yZTo6TW9kZWwmIG1vZGVsU291cmNlLCBXZWJDb3JlOjpMCiAgICAgICAg
IGlmICghc3Ryb25nU2VsZikKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBhdXRvIHN0
cm9uZ0NsaWVudCA9IHN0cm9uZ1NlbGYtPm1fY2xpZW50LmdldCgpOworICAgICAgICBhdXRvIHN0
cm9uZ0NsaWVudCA9IHN0cm9uZ1NlbGYtPmNsaWVudCgpOwogICAgICAgICBpZiAoIXN0cm9uZ0Ns
aWVudCkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMTY3LDcgKzE2NSw3IEBAIHZvaWQgQVJL
aXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmxvYWQoV2ViQ29yZTo6TW9kZWwmIG1vZGVsU291
cmNlLCBXZWJDb3JlOjpMCiAgICAgc3Ryb25nUGFnZS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6Ok1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXcoVVJMOjpmaWxl
VVJMV2l0aEZpbGVTeXN0ZW1QYXRoKG1fZmlsZVBhdGgpLCBbbV9pbmxpbmVQcmV2aWV3IHV1aWRd
LlVVSURTdHJpbmcsIHNpemUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLVBs
YXRmb3JtTGF5ZXIqIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpsYXllcigpCitQbGF0
Zm9ybUxheWVyKiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6bGF5ZXIoKQogewog
ICAgIHJldHVybiBbbV9pbmxpbmVQcmV2aWV3IGxheWVyXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA1ZjBmNjNlMGZhYTEuLjU3MmYzNmRkMDczZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBA
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAjaWYgRU5BQkxFKEFSS0lUX0lO
TElORV9QUkVWSUVXX01BQykKLSNpbmNsdWRlICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ci5oIgorI2luY2x1ZGUgIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLmgiCiAjZW5k
aWYKIAogI2lmICFPUyhXSU5ET1dTKQpAQCAtNjA1LDcgKzYwNSw3IEBAIHZvaWQgV2ViUHJvY2Vz
czo6c2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFt
ZXRlcnMmJiBwCiAKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfTUFDKQogICAgIGlm
ICghcGFyYW1ldGVycy5tb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAg
ICAgIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpzZXRNb2RlbEVsZW1lbnRDYWNoZURp
cmVjdG9yeShwYXJhbWV0ZXJzLm1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KTsKKyAgICAgICAg
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OnNldE1vZGVsRWxlbWVudENhY2hlRGly
ZWN0b3J5KHBhcmFtZXRlcnMubW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkpOwogI2VuZGlmCiAK
ICAgICBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChwYXJhbWV0ZXJzLnJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444400</attachid>
            <date>2021-11-16 09:14:37 -0800</date>
            <delta_ts>2021-11-16 16:00:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>233192.patch</filename>
            <type>text/plain</type>
            <size>41740</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkMzMxNGQ1NTI1NTkuLjMxZDA0NWE3MDgzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM4IEBACisyMDIxLTExLTE2ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFtNb2RlbF0gQ3JlYXRlIGlPUyBNb2RlbFBsYXllciBpbXBsZW1lbnRh
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
MTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVn
IDIzMjg0OCBmYWN0b3JlZCBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIG91dCBvZiBIVE1MTW9kZWxF
bGVtZW50IHdpdGggdGhlIHVzZSBvZiBhIG5ldyBNb2RlbFBsYXllcgorICAgICAgICBhYnN0cmFj
dGlvbiB3aXRoIGEgY29uY3JldGUgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIgaW1wbGVt
ZW50YXRpb24uIFRoaXMgZmlyc3QgcGF0Y2ggbW92ZWQgdGhlCisgICAgICAgIG1hY09TIGNvZGUs
IGFuZCB0aGlzIHBhdGNoIG1vdmVzIHRoZSByZW1haW5pbmcgaU9TIGNvZGUuCisKKyAgICAgICAg
VG8gZG8gc28gd2UgbWFrZSBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllciBhIHBhcmVudCBj
bGFzcyBvZiB0d28gcGxhdGZvcm0tc3BlY2lmaWMgc3ViY2xhc3NlczoKKyAgICAgICAgQVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMgYW5kIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxh
eWVySU9TLiBXZSBhZGQgYSBuZXcgZW50ZXJGdWxsc2NyZWVuKCkKKyAgICAgICAgbWV0aG9kIHRv
IE1vZGVsUGxheWVyLCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGluIHRoZSBpT1Mgc3ViY2xhc3Mu
IFRvIHN1cHBvcnQgdGhpcyBuZXcgbWV0aG9kLCB3ZQorICAgICAgICBhZGQgYSBuZXcgcGxhdGZv
cm1MYXllcklEKCkgb24gTW9kZWxQbGF5ZXJDbGllbnQuCisKKyAgICAgICAgKiBNb2R1bGVzL21v
ZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TW9kZWxFbGVtZW50Ojptb2RlbERpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9k
ZWxFbGVtZW50Ojp1c2VzUGxhdGZvcm1MYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTW9kZWxFbGVtZW50OjpwbGF0Zm9ybUxheWVySUQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1vZGVsRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKiBNb2R1bGVzL21vZGVs
LWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxl
bWVudC9Nb2RlbFBsYXllci5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2Rl
bFBsYXllckNsaWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBs
YXllclByb3ZpZGVyLmg6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1
bW15TW9kZWxQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHVtbXlNb2RlbFBsYXllcjo6
ZW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkv
RHVtbXlNb2RlbFBsYXllci5oOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1t
eS9EdW1teU1vZGVsUGxheWVyUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHVtbXlN
b2RlbFBsYXllclByb3ZpZGVyOjpjcmVhdGVNb2RlbFBsYXllcik6CisgICAgICAgICogTW9kdWxl
cy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXJQcm92aWRlci5oOgorICAgICAg
ICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLmg6
CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQ
bGF5ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpTY2VuZUtpdE1vZGVsUGxheWVyOjplbnRlckZ1
bGxzY3JlZW4pOgorCiAyMDIxLTExLTE2ICBBbmRyZXUgQm90ZWxsYSAgPGFuZHJldUBhbmRyZXVi
b3RlbGxhLmNvbT4KIAogICAgICAgICBFbXB0eSA8aW5wdXQgdHlwZT1maWxlPiBpcyByZXByZXNl
bnRlZCBpbmNvcnJlY3RseSBpbiBGb3JtRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCmluZGV4IDFiOGVl
MjY1NzQ3YS4uNTUyM2JkNmJjNWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCkBAIC0zMCw4ICszMCwx
MSBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJET01Q
cm9taXNlUHJveHkuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnRD
aGlsZEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIKKyNpbmNsdWRlICJH
cmFwaGljc0xheWVyLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NMYXllckNBLmgiCiAjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhU
TUxTb3VyY2VFbGVtZW50LmgiCkBAIC00MCwyMiArNDMsMTQgQEAKICNpbmNsdWRlICJNb2RlbC5o
IgogI2luY2x1ZGUgIk1vZGVsUGxheWVyLmgiCiAjaW5jbHVkZSAiTW9kZWxQbGF5ZXJQcm92aWRl
ci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllci5oIgorI2luY2x1
ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyTW9kZWxPYmpl
Y3QuaCIKICNpbmNsdWRlICJSZW5kZXJNb2RlbC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogCi0jaWYgRU5BQkxFKEFSS0lUX0lOTElO
RV9QUkVWSUVXX0lPUykKLSNpbmNsdWRlICJDaHJvbWUuaCIKLSNpbmNsdWRlICJDaHJvbWVDbGll
bnQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIK
LSNpbmNsdWRlICJHcmFwaGljc0xheWVyQ0EuaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVk
ZSAiUmVuZGVyTGF5ZXIuaCIKLSNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKLSNlbmRp
ZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChI
VE1MTW9kZWxFbGVtZW50KTsKQEAgLTIzNCwyMyArMjI5LDE3IEBAIHZvaWQgSFRNTE1vZGVsRWxl
bWVudDo6bW9kZWxEaWRDaGFuZ2UoKQogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIC8vIE5PVEU6IEZvciBub3csIGNyZWF0ZU1vZGVsUGxheWVyIHJldHVybmluZyBu
dWxscHRyIG1lYW5zIHRoYXQgdGhlIEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9Nb2RlbCgp
IHBhdGgKLSAgICAvLyBpcyBiZWluZyB1c2VkLCBidXQgdGhhdCBuZWVkcyB0byBiZSBwaGFzZWQg
b3V0IHRvIGFsbG93IGJpZGlyZWN0aW9uYWwgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIHRoZSBtb2Rl
bCBwbGF5ZXIKLSAgICAvLyBhbmQgdGhlIEhUTUxNb2RlbEVsZW1lbnQuIE9uY2UgdGhhdCBpcyBw
aGFzZWQgb3V0LCBjcmVhdGVNb2RlbFBsYXllcigpIHNob3VsZCBiZSB1cGRhdGVkIHRvIHJldHVy
biBhIFJlZjw+LgogICAgIG1fbW9kZWxQbGF5ZXIgPSBwYWdlLT5tb2RlbFBsYXllclByb3ZpZGVy
KCkuY3JlYXRlTW9kZWxQbGF5ZXIoKnRoaXMpOwotICAgIGlmICghbV9tb2RlbFBsYXllcikKLSAg
ICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gdGVsbCB0aGUgcGxheWVy
IGlmIHRoZSBzaXplIGNoYW5nZXMgYXMgd2VsbCwgc28gcGFzc2luZyB0aGlzCiAgICAgLy8gaW4g
d2l0aCBsb2FkIHByb2JhYmx5IGRvZXNuJ3QgbWFrZSBzZW5zZS4KICAgICBhdXRvIHNpemUgPSBy
ZW5kZXJlci0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoZmFsc2UpLnNpemUoKTsKLQogICAgIG1f
bW9kZWxQbGF5ZXItPmxvYWQoKm1fbW9kZWwsIHNpemUpOwogfQogCiBib29sIEhUTUxNb2RlbEVs
ZW1lbnQ6OnVzZXNQbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9tb2RlbFBs
YXllciAhPSBudWxscHRyOworICAgIHJldHVybiBtX21vZGVsUGxheWVyICYmIG1fbW9kZWxQbGF5
ZXItPmxheWVyKCk7CiB9CiAKIFBsYXRmb3JtTGF5ZXIqIEhUTUxNb2RlbEVsZW1lbnQ6OnBsYXRm
b3JtTGF5ZXIoKSBjb25zdApAQCAtMjcxLDMwICsyNjAsMzEgQEAgdm9pZCBIVE1MTW9kZWxFbGVt
ZW50OjpkaWRGYWlsTG9hZGluZyhNb2RlbFBsYXllciYgbW9kZWxQbGF5ZXIsIGNvbnN0IFJlc291
cmNlRXIKICAgICBBU1NFUlRfVU5VU0VEKG1vZGVsUGxheWVyLCAmbW9kZWxQbGF5ZXIgPT0gbV9t
b2RlbFBsYXllcik7CiB9CiAKLS8vIE1BUks6IC0gRnVsbHNjcmVlbiBzdXBwb3J0LgotCi12b2lk
IEhUTUxNb2RlbEVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbigpCitHcmFwaGljc0xheWVyOjpQbGF0
Zm9ybUxheWVySUQgSFRNTE1vZGVsRWxlbWVudDo6cGxhdGZvcm1MYXllcklEKCkKIHsKLS8vIEZJ
WE1FOiBBZGQgYSBuZXcgbWV0aG9kIHRvIE1vZGVsUGxheWVyIGZvciBlbnRlcmluZyBmdWxsc2Ny
ZWVuIGFuZCBtb3ZlIHRoaXMgaW50byB0aGUgaU9TIEFSS2l0IGlubGluZSBwcmV2aWV3IE1vZGVs
UGxheWVyIGltcGxlbWVudGF0aW9uLgotI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19J
T1MpCiAgICAgYXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpOwogICAgIGlmICghcGFnZSkK
LSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gMDsKIAogICAgIGlmICghaXM8UmVuZGVy
TGF5ZXJNb2RlbE9iamVjdD4odGhpcy0+cmVuZGVyZXIoKSkpCi0gICAgICAgIHJldHVybjsKKyAg
ICAgICAgcmV0dXJuIDA7CiAKICAgICBhdXRvJiByZW5kZXJMYXllck1vZGVsT2JqZWN0ID0gZG93
bmNhc3Q8UmVuZGVyTGF5ZXJNb2RlbE9iamVjdD4oKnRoaXMtPnJlbmRlcmVyKCkpOwogICAgIGlm
ICghcmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5pc0NvbXBvc2l0ZWQoKSB8fCAhcmVuZGVyTGF5ZXJN
b2RlbE9iamVjdC5sYXllcigpIHx8ICFyZW5kZXJMYXllck1vZGVsT2JqZWN0LmxheWVyKCktPmJh
Y2tpbmcoKSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gMDsKIAogICAgIGF1dG8q
IGdyYXBoaWNzTGF5ZXIgPSByZW5kZXJMYXllck1vZGVsT2JqZWN0LmxheWVyKCktPmJhY2tpbmco
KS0+Z3JhcGhpY3NMYXllcigpOwogICAgIGlmICghZ3JhcGhpY3NMYXllcikKLSAgICAgICAgcmV0
dXJuOworICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBncmFwaGljc0xheWVyLT5jb250
ZW50c0xheWVySURGb3JNb2RlbCgpOworfQogCi0gICAgaWYgKGF1dG8gY29udGVudExheWVySWQg
PSBncmFwaGljc0xheWVyLT5jb250ZW50c0xheWVySURGb3JNb2RlbCgpKQotICAgICAgICBwYWdl
LT5jaHJvbWUoKS5jbGllbnQoKS50YWtlTW9kZWxFbGVtZW50RnVsbHNjcmVlbihjb250ZW50TGF5
ZXJJZCk7Ci0jZW5kaWYKKy8vIE1BUks6IC0gRnVsbHNjcmVlbiBzdXBwb3J0LgorCit2b2lkIEhU
TUxNb2RlbEVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbigpCit7CisgICAgbV9tb2RlbFBsYXllci0+
ZW50ZXJGdWxsc2NyZWVuKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCmluZGV4IDM3ODAzMjllYTM5
NS4uNjk0NzhjMjc0ODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVs
LWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291cmNlQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNpbmNsdWRlICJHcmFw
aGljc0xheWVyLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJJRExUeXBl
cy5oIgogI2luY2x1ZGUgIk1vZGVsUGxheWVyQ2xpZW50LmgiCkBAIC04OSw2ICs5MCw3IEBAIHBy
aXZhdGU6CiAgICAgLy8gTW9kZWxQbGF5ZXJDbGllbnQgb3ZlcnJpZGVzLgogICAgIHZvaWQgZGlk
RmluaXNoTG9hZGluZyhNb2RlbFBsYXllciYpIGZpbmFsOwogICAgIHZvaWQgZGlkRmFpbExvYWRp
bmcoTW9kZWxQbGF5ZXImLCBjb25zdCBSZXNvdXJjZUVycm9yJikgZmluYWw7CisgICAgR3JhcGhp
Y3NMYXllcjo6UGxhdGZvcm1MYXllcklEIHBsYXRmb3JtTGF5ZXJJRCgpIGZpbmFsOwogCiAgICAg
VVJMIG1fc291cmNlVVJMOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291
cmNlPiBtX3Jlc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rl
bC1lbGVtZW50L01vZGVsUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVs
ZW1lbnQvTW9kZWxQbGF5ZXIuaAppbmRleCAzYmFiMmY3OTNjNjkuLmU3MTI5ZGRjOTE0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVy
LmgKQEAgLTQwLDYgKzQwLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGxvYWQoTW9k
ZWwmLCBMYXlvdXRTaXplKSA9IDA7CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBsYXllcigp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgPSAwOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxh
eWVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQ
bGF5ZXJDbGllbnQuaAppbmRleCA0YjQ0OGJlZjk2MDAuLjMzZmI5ZGNiNTE4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVy
Q2xpZW50LmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJH
cmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogCkBAIC0zOSw2ICs0MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaW5pc2hMb2FkaW5nKE1vZGVsUGxheWVyJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRGYWlsTG9hZGluZyhNb2RlbFBsYXllciYsIGNvbnN0IFJlc291cmNlRXJyb3ImKSA9IDA7Cisg
ICAgdmlydHVhbCBHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgcGxhdGZvcm1MYXllcklE
KCkgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rl
bC1lbGVtZW50L01vZGVsUGxheWVyUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bW9kZWwtZWxlbWVudC9Nb2RlbFBsYXllclByb3ZpZGVyLmgKaW5kZXggN2Q0YmI0ZWZkMTc4Li41
YjAyODA2M2RjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxl
bWVudC9Nb2RlbFBsYXllclByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
b2RlbC1lbGVtZW50L01vZGVsUGxheWVyUHJvdmlkZXIuaApAQCAtMzksNyArMzksNyBAQCBwdWJs
aWM6CiAKICAgICAvLyBGSVhNRTogT25jZSBhbGwgY2xpZW50cyBoYXZlIGFkb3B0ZWQgTW9kZWxQ
bGF5ZXJQcm92aWRlciwgdGhpcyBzaG91bGQKICAgICAvLyBiZSBjaGFuZ2VkIHRvIHJldHVybiBh
IFJlZjxNb2RlbFBsYXllcj4KLSAgICB2aXJ0dWFsIFJlZlB0cjxNb2RlbFBsYXllcj4gY3JlYXRl
TW9kZWxQbGF5ZXIoTW9kZWxQbGF5ZXJDbGllbnQmKSA9IDA7CisgICAgdmlydHVhbCBSZWY8TW9k
ZWxQbGF5ZXI+IGNyZWF0ZU1vZGVsUGxheWVyKE1vZGVsUGxheWVyQ2xpZW50JikgPSAwOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1
bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1l
bGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwCmluZGV4IDQyMjgzYTY2YjFjZC4uODI0
NjYxNjFlZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1l
bnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuY3BwCkBAIC01NCw0ICs1NCw4
IEBAIFBsYXRmb3JtTGF5ZXIqIER1bW15TW9kZWxQbGF5ZXI6OmxheWVyKCkKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAordm9pZCBEdW1teU1vZGVsUGxheWVyOjplbnRlckZ1bGxzY3JlZW4oKQor
eworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1l
bnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rl
bC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaAppbmRleCBlZTU3Mzk2ZDE4YzUuLjgz
OGViZWNmOGQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVt
ZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oCkBAIC00MSw4ICs0MSw5IEBA
IHByaXZhdGU6CiAgICAgRHVtbXlNb2RlbFBsYXllcihNb2RlbFBsYXllckNsaWVudCYpOwogCiAg
ICAgLy8gTW9kZWxQbGF5ZXIgb3ZlcnJpZGVzLgotICAgIHZpcnR1YWwgdm9pZCBsb2FkKE1vZGVs
JiwgTGF5b3V0U2l6ZSkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBsYXll
cigpIG92ZXJyaWRlOworICAgIHZvaWQgbG9hZChNb2RlbCYsIExheW91dFNpemUpIG92ZXJyaWRl
OworICAgIFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBlbnRlckZ1
bGxzY3JlZW4oKSBvdmVycmlkZTsKIAogICAgIFdlYWtQdHI8TW9kZWxQbGF5ZXJDbGllbnQ+IG1f
Y2xpZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxl
bWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXJQcm92aWRlci5jcHAK
aW5kZXggMWMyZmQ1N2NiMmUxLi4wZjRkMTg5ZjQzNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyUHJvdmlkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1t
eU1vZGVsUGxheWVyUHJvdmlkZXIuY3BwCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIER1bW15TW9kZWxQbGF5ZXJQcm92aWRlcjo6RHVtbXlNb2RlbFBsYXllclByb3ZpZGVy
KCkgPSBkZWZhdWx0OwogRHVtbXlNb2RlbFBsYXllclByb3ZpZGVyOjp+RHVtbXlNb2RlbFBsYXll
clByb3ZpZGVyKCkgPSBkZWZhdWx0OwogCi1SZWZQdHI8TW9kZWxQbGF5ZXI+IER1bW15TW9kZWxQ
bGF5ZXJQcm92aWRlcjo6Y3JlYXRlTW9kZWxQbGF5ZXIoTW9kZWxQbGF5ZXJDbGllbnQmIGNsaWVu
dCkKK1JlZjxNb2RlbFBsYXllcj4gRHVtbXlNb2RlbFBsYXllclByb3ZpZGVyOjpjcmVhdGVNb2Rl
bFBsYXllcihNb2RlbFBsYXllckNsaWVudCYgY2xpZW50KQogewogICAgIHJldHVybiBEdW1teU1v
ZGVsUGxheWVyOjpjcmVhdGUoY2xpZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyUHJvdmlkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxh
eWVyUHJvdmlkZXIuaAppbmRleCA1YTZkYzc4ODg4ZjAuLjA1NTM4MDk0Y2IxZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQ
bGF5ZXJQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVu
dC9kdW1teS9EdW1teU1vZGVsUGxheWVyUHJvdmlkZXIuaApAQCAtMzYsNyArMzYsNyBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgLy8gTW9kZWxQbGF5ZXJQcm92aWRlciBvdmVycmlkZXMuCi0g
ICAgdmlydHVhbCBSZWZQdHI8TW9kZWxQbGF5ZXI+IGNyZWF0ZU1vZGVsUGxheWVyKE1vZGVsUGxh
eWVyQ2xpZW50Jikgb3ZlcnJpZGU7CisgICAgUmVmPE1vZGVsUGxheWVyPiBjcmVhdGVNb2RlbFBs
YXllcihNb2RlbFBsYXllckNsaWVudCYpIG92ZXJyaWRlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9k
ZWxQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtp
dC9TY2VuZUtpdE1vZGVsUGxheWVyLmgKaW5kZXggMzA4NWY4MTU5Yzc0Li40YWMzZGFiOWRkNTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtp
dC9TY2VuZUtpdE1vZGVsUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2Rl
bC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIuaApAQCAtNTUsOCArNTUsOSBA
QCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlU2NlbmUoKTsKIAogICAgIC8vIE1vZGVsUGxheWVy
IG92ZXJyaWRlcy4KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChNb2RlbCYsIExheW91dFNpemUpIG92
ZXJyaWRlOwotICAgIHZpcnR1YWwgQ0FMYXllciAqbGF5ZXIoKSBvdmVycmlkZTsKKyAgICB2b2lk
IGxvYWQoTW9kZWwmLCBMYXlvdXRTaXplKSBvdmVycmlkZTsKKyAgICBDQUxheWVyICpsYXllcigp
IG92ZXJyaWRlOworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CiAKICAgICAv
LyBTY2VuZUtpdE1vZGVsTG9hZGVyQ2xpZW50IG92ZXJyaWRlcy4KICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoTG9hZGluZyhTY2VuZUtpdE1vZGVsTG9hZGVyJiwgUmVmPFNjZW5lS2l0TW9kZWw+
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxl
bWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW0KaW5kZXgg
Njk5MjM0MWY5ZjNhLi42OTY5NmM5ZTY5MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVyLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1v
ZGVsUGxheWVyLm1tCkBAIC03Miw2ICs3MiwxMCBAQCBQbGF0Zm9ybUxheWVyKiBTY2VuZUtpdE1v
ZGVsUGxheWVyOjpsYXllcigpCiAgICAgcmV0dXJuIG1fbGF5ZXIuZ2V0KCk7CiB9CiAKK3ZvaWQg
U2NlbmVLaXRNb2RlbFBsYXllcjo6ZW50ZXJGdWxsc2NyZWVuKCkKK3sKK30KKwogLy8gTUFSSzog
LSBTY2VuZUtpdE1vZGVsTG9hZGVyQ2xpZW50IG92ZXJyaWRlcy4KIAogdm9pZCBTY2VuZUtpdE1v
ZGVsUGxheWVyOjpkaWRGaW5pc2hMb2FkaW5nKFNjZW5lS2l0TW9kZWxMb2FkZXImIGxvYWRlciwg
UmVmPFNjZW5lS2l0TW9kZWw+IG1vZGVsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlNDVlNDhkMjgwYjMuLjFiOTdk
ZWFiNTcxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAyMS0xMS0xNiAgQW50b2luZSBR
dWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAgICAgICBbTW9kZWxdIENyZWF0ZSBpT1Mg
TW9kZWxQbGF5ZXIgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMzE5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEJ1ZyAyMzI4NDggZmFjdG9yZWQgcGxhdGZvcm0tc3BlY2lmaWMg
Y29kZSBvdXQgb2YgSFRNTE1vZGVsRWxlbWVudCB3aXRoIHRoZSB1c2Ugb2YgYSBuZXcgTW9kZWxQ
bGF5ZXIKKyAgICAgICAgYWJzdHJhY3Rpb24gd2l0aCBhIGNvbmNyZXRlIEFSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVyIGltcGxlbWVudGF0aW9uLiBUaGlzIGZpcnN0IHBhdGNoIG1vdmVkIHRo
ZQorICAgICAgICBtYWNPUyBjb2RlLCBhbmQgdGhpcyBwYXRjaCBtb3ZlcyB0aGUgcmVtYWluaW5n
IGlPUyBjb2RlLgorCisgICAgICAgIFRvIGRvIHNvIHdlIG1ha2UgQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXIgYSBwYXJlbnQgY2xhc3Mgb2YgdHdvIHBsYXRmb3JtLXNwZWNpZmljIHN1YmNs
YXNzZXM6CisgICAgICAgIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjIGFuZCBBUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy4gV2UgYWRkIGEgbmV3IGVudGVyRnVsbHNjcmVl
bigpCisgICAgICAgIG1ldGhvZCB0byBNb2RlbFBsYXllciwgd2l0aCBhbiBpbXBsZW1lbnRhdGlv
biBpbiB0aGUgaU9TIHN1YmNsYXNzLiBUbyBzdXBwb3J0IHRoaXMgbmV3IG1ldGhvZCwgd2UKKyAg
ICAgICAgYWRkIGEgbmV3IHBsYXRmb3JtTGF5ZXJJRCgpIG9uIE1vZGVsUGxheWVyQ2xpZW50Lgor
CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaC4KKyAgICAgICAgKFdl
YktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OnBhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6Y2xpZW50KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvV2ViTW9kZWxQbGF5ZXJQcm92aWRl
ci5oLgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6QVJL
aXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllcjo6fkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKToKKyAg
ICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmxvYWQpOgorICAg
ICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6bGF5ZXIpOgorICAg
ICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6ZW50ZXJGdWxsc2Ny
ZWVuKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL01vZGVsL1dlYk1vZGVsUGxheWVyUHJvdmlkZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNb2RlbFBsYXllclByb3ZpZGVyOjpjcmVhdGVNb2Rl
bFBsYXllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9Nb2RlbC9XZWJNb2RlbFBsYXllclByb3Zp
ZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Nb2RlbC9pb3MvQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXJJT1MuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01v
ZGVsL1dlYk1vZGVsUGxheWVyUHJvdmlkZXIuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL01vZGVs
L2lvcy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5tbTogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL1dlYk1vZGVsUGxheWVyUHJvdmlkZXIuY3BwLgor
ICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUzo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1M6OkFS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TKToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1M6On5BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
cklPUyk6CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9T
OjplbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0
SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmguCisg
ICAgICAgICogV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXJNYWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFj
L0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tLgorICAgICAgICAoV2ViS2l0OjpBUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OkFSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVyTWFjKToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXJNYWM6On5BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYyk6CisgICAgICAgIChXZWJL
aXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpzZXRNb2RlbEVsZW1lbnRDYWNo
ZURpcmVjdG9yeSk6CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxh
eWVyTWFjOjpjcmVhdGVGaWxlKToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXJNYWM6OmNsZWFyRmlsZSk6CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyTWFjOjpsb2FkKToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmxheWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRXZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycyk6CisKIDIwMjEtMTEtMTYgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51
bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpt
X3N3YXBDaGFpbiBpcyB1bnVzZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBjYThkMjM5NWZh
OWQuLmEzZTdiYjY2NDcxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjU1LDcgKzY1NSw5
IEBAIFdlYlByb2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JVSU1hYy5tbQogCiBXZWJQ
cm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAKIAotV2ViUHJv
Y2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0KK1dlYlByb2Nl
c3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0KK1dlYlByb2Nlc3MvTW9k
ZWwvaW9zL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLm1tCitXZWJQcm9jZXNzL01v
ZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5tbQogCiBXZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW5Bbm5vdGF0aW9uLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA2NDMxZDQwYjA1NmEuLmE4NGZhYTdkZTU4NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTEzLDYgKzQ1
MTMsMTAgQEAKIAkJNzEzN0JBN0QyNUYxNTNFOTAwOTE0RUUzIC8qIE1vZGVsRWxlbWVudENvbnRy
b2xsZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1vZGVsRWxlbWVudENvbnRyb2xs
ZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzEzN0JBN0UyNUYxNTQw
QjAwOTE0RUUzIC8qIE1vZGVsRWxlbWVudENvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTW9kZWxFbGVtZW50Q29udHJvbGxlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxMzdCQTdGMjVGMTU0MEMwMDkxNEVFMyAvKiBNb2RlbEVs
ZW1lbnRDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZGVs
RWxlbWVudENvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzE3N0FE
NUIyNzQzRDdBOTAwMkYxMDNCIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcxNzdBRDVDMjc0M0Q3QTkwMDJGMTAzQiAvKiBB
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MTc3
QUQ2NjI3NDNGNjZDMDAyRjEwM0IgLyogQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1Mu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklP
Uy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzE3N0FENjcyNzQzRjY2QzAwMkYx
MDNCIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTcxQTY3NkE0MjJDNjIzMTgwMDdENjI5NSAvKiBXS1RvdWNoQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tUb3VjaEFj
dGlvbkdlc3R1cmVSZWNvZ25pemVyLmg7IHBhdGggPSBpb3MvV0tUb3VjaEFjdGlvbkdlc3R1cmVS
ZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxQTY3NkE1MjJDNjIz
MTgwMDdENjI5NSAvKiBXS1RvdWNoQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS1RvdWNoQWN0aW9uR2VzdHVyZVJlY29n
bml6ZXIubW07IHBhdGggPSBpb3MvV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MUJBQTczMTI1RkZDQ0JBMDBEN0NENUQgLyog
V0tNb2RlbFZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tNb2RlbFZp
ZXcuaDsgcGF0aCA9IGlvcy9XS01vZGVsVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNTIyMCw4ICs1MjI0LDggQEAKIAkJQkMyMDUyODAxMUM5NDI4NDAwOEYzMzc1IC8qIFdL
QnVuZGxlUGFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1
bmRsZVBhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzI2NTIxMjExODI2
MDgxMDAyNDNFMTIgLyogRHJhd2luZ0FyZWFQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBEcmF3aW5nQXJlYVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkMyNjUyMTMxMTgyNjA4MTAwMjQzRTEyIC8qIERyYXdpbmdBcmVhUHJveHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhd2luZ0FyZWFQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzJCNDEwQzI3MzJFRjk2MDBBMkQxOTEgLyog
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMy
QjQxMEQyNzMyRUY5NjAwQTJEMTkxIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMkI0MTBDMjczMkVGOTYwMEEyRDE5MSAv
KiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCQzJCNDEwRDI3MzJFRjk2MDBBMkQxOTEgLyogQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMyQjQxMUEyNzMy
RjY2RTAwQTJEMTkxIC8qIFdlYk1vZGVsUGxheWVyUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViTW9kZWxQbGF5ZXJQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
QzJCNDExQjI3MzJGNjZFMDBBMkQxOTEgLyogV2ViTW9kZWxQbGF5ZXJQcm92aWRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJNb2RlbFBsYXllclByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkMyRDAyMTYxMkFDNDFDQjAwRTczMkEzIC8qIFNhbWVEb2N1bWVu
dE5hdmlnYXRpb25UeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbWVE
b2N1bWVudE5hdmlnYXRpb25UeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05
MjkwLDYgKzkyOTQsMTUgQEAKIAkJCW5hbWUgPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwogCQl9OworCQk3MTc3QUQ2NTI3NDNGNjZDMDAyRjEwM0IgLyogaW9zICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk3MTc3QUQ2NzI3NDNGNjZDMDAy
RjEwM0IgLyogQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MuaCAqLywKKwkJCQk3MTc3
QUQ2NjI3NDNGNjZDMDAyRjEwM0IgLyogQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1Mu
bW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CisJCX07CiAJCTcyN0E3RjMzMjQwNzg1MjcwMDREMjkzMSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xMDYxMSw3ICsxMDYyNCwxMCBAQAog
CQlCQzJCNDEwQTI3MzJFRjY1MDBBMkQxOTEgLyogTW9kZWwgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTcxNzdBRDY1Mjc0M0Y2NkMwMDJGMTAzQiAvKiBp
b3MgKi8sCiAJCQkJQkMyQjQxMEIyNzMyRUY3NTAwQTJEMTkxIC8qIG1hYyAqLywKKwkJCQk3MTc3
QUQ1QzI3NDNEN0E5MDAyRjEwM0IgLyogQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaCAq
LywKKwkJCQk3MTc3QUQ1QjI3NDNEN0E5MDAyRjEwM0IgLyogQVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXIubW0gKi8sCiAJCQkJQkMyQjQxMUIyNzMyRjY2RTAwQTJEMTkxIC8qIFdlYk1vZGVs
UGxheWVyUHJvdmlkZXIuY3BwICovLAogCQkJCUJDMkI0MTFBMjczMkY2NkUwMEEyRDE5MSAvKiBX
ZWJNb2RlbFBsYXllclByb3ZpZGVyLmggKi8sCiAJCQkpOwpAQCAtMTA2MjEsOCArMTA2MzcsOCBA
QAogCQlCQzJCNDEwQjI3MzJFRjc1MDBBMkQxOTEgLyogbWFjICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlCQzJCNDEwQzI3MzJFRjk2MDBBMkQxOTEgLyog
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaCAqLywKLQkJCQlCQzJCNDEwRDI3MzJFRjk2
MDBBMkQxOTEgLyogQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0gKi8sCisJCQkJQkMy
QjQxMEMyNzMyRUY5NjAwQTJEMTkxIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFj
LmggKi8sCisJCQkJQkMyQjQxMEQyNzMyRUY5NjAwQTJEMTkxIC8qIEFSS2l0SW5saW5lUHJldmll
d01vZGVsUGxheWVyTWFjLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01v
ZGVsL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNjYWFjYjM1NjVmOQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFVykKKworI2luY2x1ZGUgPFdlYkNvcmUvTW9k
ZWxQbGF5ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01vZGVsUGxheWVyQ2xpZW50Lmg+CisjaW5j
bHVkZSA8d3RmL0NvbXBpbGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBBUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllciA6IHB1YmxpYyBXZWJDb3JlOjpNb2RlbFBsYXllciwg
cHVibGljIENhbk1ha2VXZWFrUHRyPEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyPiB7Citw
dWJsaWM6CisgICAgdmlydHVhbCB+QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIoKTsKKwor
cHJvdGVjdGVkOgorICAgIGV4cGxpY2l0IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKFdl
YlBhZ2UmLCBXZWJDb3JlOjpNb2RlbFBsYXllckNsaWVudCYpOworCisgICAgV2ViUGFnZSogcGFn
ZSgpIHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQorICAgIFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xp
ZW50KiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQorCitwcml2YXRlOgorICAg
IC8vIFdlYkNvcmU6Ok1vZGVsUGxheWVyIG92ZXJyaWRlcy4KKyAgICB2b2lkIGxvYWQoV2ViQ29y
ZTo6TW9kZWwmLCBXZWJDb3JlOjpMYXlvdXRTaXplKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybUxh
eWVyKiBsYXllcigpIG92ZXJyaWRlOworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJp
ZGU7CisKKyAgICBXZWFrUHRyPFdlYlBhZ2U+IG1fcGFnZTsKKyAgICBXZWFrUHRyPFdlYkNvcmU6
Ok1vZGVsUGxheWVyQ2xpZW50PiBtX2NsaWVudDsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwLi5lZGJkMTRhMTljZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0KQEAgLTAsMCArMSw2
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXIuaCIKKworI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklF
VykKKworI2ltcG9ydCAiV2ViUGFnZS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworQVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKFdl
YlBhZ2UmIHBhZ2UsIFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50JiBjbGllbnQpCisgICAgOiBt
X3BhZ2UgeyBwYWdlIH0KKyAgICAsIG1fY2xpZW50IHsgY2xpZW50IH0KK3sKK30KKworQVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6On5BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcigp
Cit7Cit9CisKK3ZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmxvYWQoV2ViQ29y
ZTo6TW9kZWwmLCBXZWJDb3JlOjpMYXlvdXRTaXplKQoreworfQorCitQbGF0Zm9ybUxheWVyKiBB
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6bGF5ZXIoKQoreworICAgIHJldHVybiBudWxs
cHRyOworfQorCit2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjplbnRlckZ1bGxz
Y3JlZW4oKQoreworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL01vZGVsL1dlYk1vZGVsUGxheWVyUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL01vZGVsL1dlYk1vZGVsUGxheWVyUHJvdmlkZXIuY3BwCmluZGV4IDg2MGU0
N2ZkMDgxMy4uYmZhMTZlMjY3YmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTW9kZWwvV2ViTW9kZWxQbGF5ZXJQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL01vZGVsL1dlYk1vZGVsUGxheWVyUHJvdmlkZXIuY3BwCkBAIC0yOCw5ICsyOCwx
NCBAQAogCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTW9kZWxQbGF5
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0R1bW15TW9kZWxQbGF5ZXIuaD4KIAogI2lmIEVOQUJM
RShBUktJVF9JTkxJTkVfUFJFVklFV19NQUMpCi0jaW5jbHVkZSAiQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXIuaCIKKyNpbmNsdWRlICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1h
Yy5oIgorI2VuZGlmCisKKyNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfSU9TKQorI2lu
Y2x1ZGUgIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLmgiCiAjZW5kaWYKIAogI2lm
IEhBVkUoU0NFTkVLSVQpCkBAIC00OSwyMCArNTQsMjIgQEAgV2ViTW9kZWxQbGF5ZXJQcm92aWRl
cjo6fldlYk1vZGVsUGxheWVyUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CiAKIC8vIE1BUks6IC0gV2Vi
Q29yZTo6TW9kZWxQbGF5ZXJQcm92aWRlciBvdmVycmlkZXMuCiAKLVJlZlB0cjxXZWJDb3JlOjpN
b2RlbFBsYXllcj4gV2ViTW9kZWxQbGF5ZXJQcm92aWRlcjo6Y3JlYXRlTW9kZWxQbGF5ZXIoV2Vi
Q29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmIGNsaWVudCkKK1JlZjxXZWJDb3JlOjpNb2RlbFBsYXll
cj4gV2ViTW9kZWxQbGF5ZXJQcm92aWRlcjo6Y3JlYXRlTW9kZWxQbGF5ZXIoV2ViQ29yZTo6TW9k
ZWxQbGF5ZXJDbGllbnQmIGNsaWVudCkKIHsKLSAgICBVTlVTRURfUEFSQU0oY2xpZW50KTsKLQog
I2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19NQUMpCiAgICAgaWYgKG1fcGFnZS51c2VB
UktpdEZvck1vZGVsKCkpCi0gICAgICAgIHJldHVybiBBUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllcjo6Y3JlYXRlKG1fcGFnZSwgY2xpZW50KTsKKyAgICAgICAgcmV0dXJuIEFSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyTWFjOjpjcmVhdGUobV9wYWdlLCBjbGllbnQpOwogI2VuZGlmCiAj
aWYgSEFWRShTQ0VORUtJVCkKICAgICBpZiAobV9wYWdlLnVzZVNjZW5lS2l0Rm9yTW9kZWwoKSkK
ICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNjZW5lS2l0TW9kZWxQbGF5ZXI6OmNyZWF0ZShjbGll
bnQpOwogI2VuZGlmCisjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX0lPUykKKyAgICBy
ZXR1cm4gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1M6OmNyZWF0ZShtX3BhZ2UsIGNs
aWVudCk7CisjZW5kaWYKIAotICAgIHJldHVybiBudWxscHRyOworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBEdW1teU1vZGVsUGxheWVyOjpjcmVhdGUoY2xpZW50KTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL1dlYk1vZGVs
UGxheWVyUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9XZWJNb2Rl
bFBsYXllclByb3ZpZGVyLmgKaW5kZXggODJlNGE1M2Q5YmI4Li41OTc3ZjJkZDEyNmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9XZWJNb2RlbFBsYXllclByb3Zp
ZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL1dlYk1vZGVsUGxheWVy
UHJvdmlkZXIuaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8g
V2ViQ29yZTo6TW9kZWxQbGF5ZXJQcm92aWRlciBvdmVycmlkZXMuCi0gICAgdmlydHVhbCBSZWZQ
dHI8V2ViQ29yZTo6TW9kZWxQbGF5ZXI+IGNyZWF0ZU1vZGVsUGxheWVyKFdlYkNvcmU6Ok1vZGVs
UGxheWVyQ2xpZW50JikgZmluYWw7CisgICAgUmVmPFdlYkNvcmU6Ok1vZGVsUGxheWVyPiBjcmVh
dGVNb2RlbFBsYXllcihXZWJDb3JlOjpNb2RlbFBsYXllckNsaWVudCYpIGZpbmFsOwogCiAgICAg
V2ViUGFnZSYgbV9wYWdlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9Nb2RlbC9pb3MvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9pb3MvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJ
T1MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjk3ZmI2NzY4Njc1
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9pb3Mv
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MuaApAQCAtMCwwICsxLDUwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdf
SU9TKQorCisjaW5jbHVkZSAiQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL01vZGVsUGxheWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Nb2RlbFBsYXll
ckNsaWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQVJLaXRJbmxpbmVQcmV2
aWV3TW9kZWxQbGF5ZXJJT1MgZmluYWwgOiBwdWJsaWMgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXJJT1M+IGNyZWF0ZShXZWJQYWdlJiwgV2ViQ29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmKTsK
KyAgICB2aXJ0dWFsIH5BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUygpOworCitwcml2
YXRlOgorICAgIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TKFdlYlBhZ2UmLCBXZWJD
b3JlOjpNb2RlbFBsYXllckNsaWVudCYpOworCisgICAgLy8gV2ViQ29yZTo6TW9kZWxQbGF5ZXIg
b3ZlcnJpZGVzLgorICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7Cit9OworCit9
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL2lv
cy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9Nb2RlbC9pb3MvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lZGUxNDVhNTFkMmYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvaW9zL0FSS2l0SW5s
aW5lUHJldmlld01vZGVsUGxheWVySU9TLm1tCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxh
eWVySU9TLmgiCisKKyNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfSU9TKQorCisjaW1w
b3J0ICJXZWJQYWdlLmgiCisjaW1wb3J0ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2ltcG9y
dCA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8
QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1M+IEFSS2l0SW5saW5lUHJldmlld01vZGVs
UGxheWVySU9TOjpjcmVhdGUoV2ViUGFnZSYgcGFnZSwgV2ViQ29yZTo6TW9kZWxQbGF5ZXJDbGll
bnQmIGNsaWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllcklPUyhwYWdlLCBjbGllbnQpKTsKK30KKworQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXJJT1M6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TKFdlYlBhZ2Um
IHBhZ2UsIFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50JiBjbGllbnQpCisgICAgOiBBUktpdElu
bGluZVByZXZpZXdNb2RlbFBsYXllcihwYWdlLCBjbGllbnQpCit7Cit9CisKK0FSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVySU9TOjp+QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1Mo
KQoreworfQorCisvLyBNQVJLOiAtIFdlYkNvcmU6Ok1vZGVsUGxheWVyIG92ZXJyaWRlcy4KKwor
dm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUzo6ZW50ZXJGdWxsc2NyZWVuKCkK
K3sKKyAgICBpZiAoIWNsaWVudCgpIHx8ICFwYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChhdXRvIGxheWVySWQgPSBjbGllbnQoKS0+cGxhdGZvcm1MYXllcklEKCkpCisgICAgICAg
IHBhZ2UoKS0+dGFrZU1vZGVsRWxlbWVudEZ1bGxzY3JlZW4obGF5ZXJJZCk7Cit9CisKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLmgKc2ltaWxhcml0eSBp
bmRleCA3NyUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9B
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLmgKaW5k
ZXggNGYwMjA3MGM0MjY1Li4zYjU1OWJjMjM0ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVyTWFjLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShBUktJVF9JTkxJ
TkVfUFJFVklFV19NQUMpCiAKKyNpbmNsdWRlICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTW9kZWxQbGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L01vZGVsUGxheWVyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBpbGVyLmg+CkBAIC0zNiwy
NiArMzcsMjMgQEAgT0JKQ19DTEFTUyBBU1ZJbmxpbmVQcmV2aWV3OwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotY2xhc3MgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIgZmluYWwgOiBwdWJs
aWMgV2ViQ29yZTo6TW9kZWxQbGF5ZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllcj4geworY2xhc3MgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXJNYWMgZmluYWwgOiBwdWJsaWMgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIgewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI+IGNyZWF0
ZShXZWJQYWdlJiwgV2ViQ29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmKTsKLSAgICB2aXJ0dWFsIH5B
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcigpOworICAgIHN0YXRpYyBSZWY8QVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM+IGNyZWF0ZShXZWJQYWdlJiwgV2ViQ29yZTo6TW9kZWxQ
bGF5ZXJDbGllbnQmKTsKKyAgICB2aXJ0dWFsIH5BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ck1hYygpOwogCiAgICAgc3RhdGljIHZvaWQgc2V0TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnko
Y29uc3QgU3RyaW5nJik7CiAKIHByaXZhdGU6Ci0gICAgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXIoV2ViUGFnZSYsIFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50Jik7CisgICAgQVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMoV2ViUGFnZSYsIFdlYkNvcmU6Ok1vZGVsUGxheWVy
Q2xpZW50Jik7CiAKICAgICAvLyBXZWJDb3JlOjpNb2RlbFBsYXllciBvdmVycmlkZXMuCi0gICAg
dmlydHVhbCB2b2lkIGxvYWQoV2ViQ29yZTo6TW9kZWwmLCBXZWJDb3JlOjpMYXlvdXRTaXplKSBv
dmVycmlkZTsKLSAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBsb2FkKFdlYkNvcmU6Ok1vZGVsJiwgV2ViQ29yZTo6TGF5b3V0U2l6ZSkgb3ZlcnJp
ZGU7CisgICAgUGxhdGZvcm1MYXllciogbGF5ZXIoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgY3Jl
YXRlRmlsZShXZWJDb3JlOjpNb2RlbCYpOwogICAgIHZvaWQgY2xlYXJGaWxlKCk7CiAKLSAgICBX
ZWFrUHRyPFdlYlBhZ2U+IG1fcGFnZTsKLSAgICBXZWFrUHRyPFdlYkNvcmU6Ok1vZGVsUGxheWVy
Q2xpZW50PiBtX2NsaWVudDsKLQogICAgIFN0cmluZyBtX2ZpbGVQYXRoOwogICAgIFJldGFpblB0
cjxBU1ZJbmxpbmVQcmV2aWV3PiBtX2lubGluZVByZXZpZXc7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXJNYWMubW0Kc2ltaWxhcml0eSBpbmRleCA4NSUKcmVuYW1lIGZyb20g
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllci5tbQpyZW5hbWUgdG8gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9B
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5tbQppbmRleCAyZGYyNDUxYWZjMzEuLjdj
N2MzZmI4ZGExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21h
Yy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLm1tCkBA
IC0yNCwxMSArMjQsMTAgQEAKICAqLwogCiAjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkFS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLmgiCiAKICNpZiBFTkFCTEUoQVJLSVRfSU5M
SU5FX1BSRVZJRVdfTUFDKQogCi0jaW1wb3J0ICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ci5oIgotCiAjaW1wb3J0ICJXZWJQYWdlLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHlNZXNzYWdl
cy5oIgogI2ltcG9ydCA8V2ViQ29yZS9Nb2RlbC5oPgpAQCAtNDEsMTggKzQwLDE3IEBAIFNPRlRf
TElOS19DTEFTUyhBc3NldFZpZXdlciwgQVNWSW5saW5lUHJldmlldyk7CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi1SZWY8QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI+IEFSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyOjpjcmVhdGUoV2ViUGFnZSYgcGFnZSwgV2ViQ29yZTo6TW9kZWxQ
bGF5ZXJDbGllbnQmIGNsaWVudCkKK1JlZjxBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1h
Yz4gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmNyZWF0ZShXZWJQYWdlJiBwYWdl
LCBXZWJDb3JlOjpNb2RlbFBsYXllckNsaWVudCYgY2xpZW50KQogewotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKHBhZ2UsIGNsaWVudCkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFj
KHBhZ2UsIGNsaWVudCkpOwogfQogCi1BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6QVJL
aXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIoV2ViUGFnZSYgcGFnZSwgV2ViQ29yZTo6TW9kZWxQ
bGF5ZXJDbGllbnQmIGNsaWVudCkKLSAgICA6IG1fcGFnZSB7IHBhZ2UgfQotICAgICwgbV9jbGll
bnQgeyBjbGllbnQgfQorQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OkFSS2l0SW5s
aW5lUHJldmlld01vZGVsUGxheWVyTWFjKFdlYlBhZ2UmIHBhZ2UsIFdlYkNvcmU6Ok1vZGVsUGxh
eWVyQ2xpZW50JiBjbGllbnQpCisgICAgOiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcihw
YWdlLCBjbGllbnQpCiB7CiB9CiAKLUFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjp+QVJL
aXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIoKQorQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXJNYWM6On5BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYygpCiB7CiAgICAgY2xlYXJG
aWxlKCk7CiB9CkBAIC02OCwxMiArNjYsMTIgQEAgc3RhdGljIGNvbnN0IFN0cmluZyYgbW9kZWxF
bGVtZW50Q2FjaGVEaXJlY3RvcnkoKQogICAgIHJldHVybiBzaGFyZWRNb2RlbEVsZW1lbnRDYWNo
ZURpcmVjdG9yeSgpOwogfQogCi12b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpz
ZXRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgpCit2b2lkIEFS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpzZXRNb2RlbEVsZW1lbnRDYWNoZURpcmVj
dG9yeShjb25zdCBTdHJpbmcmIHBhdGgpCiB7CiAgICAgc2hhcmVkTW9kZWxFbGVtZW50Q2FjaGVE
aXJlY3RvcnkoKSA9IHBhdGg7CiB9CiAKLXZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXI6OmNyZWF0ZUZpbGUoV2ViQ29yZTo6TW9kZWwmIG1vZGVsU291cmNlKQordm9pZCBBUktpdElu
bGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6Y3JlYXRlRmlsZShXZWJDb3JlOjpNb2RlbCYgbW9k
ZWxTb3VyY2UpCiB7CiAgICAgLy8gVGhlIG5lZWQgZm9yIGEgZmlsZSBpcyBvbmx5IHRlbXBvcmFy
eSBkdWUgdG8gdGhlIG5hdHVyZSBvZiBBU1ZJbmxpbmVQcmV2aWV3LAogICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc1NjcuCkBAIC0xMDYsNyArMTA0LDcg
QEAgdm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6Y3JlYXRlRmlsZShXZWJDb3Jl
OjpNb2RlbCYgbW9kZWxTb3VyY2UpCiAgICAgbV9maWxlUGF0aCA9IGZpbGVQYXRoOwogfQogCi12
b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpjbGVhckZpbGUoKQordm9pZCBBUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6Y2xlYXJGaWxlKCkKIHsKICAgICBpZiAobV9m
aWxlUGF0aC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTExNywxMyArMTE1LDEzIEBA
IHZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmNsZWFyRmlsZSgpCiAKIC8vIE1B
Uks6IC0gV2ViQ29yZTo6TW9kZWxQbGF5ZXIgb3ZlcnJpZGVzLgogCi12b2lkIEFSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyOjpsb2FkKFdlYkNvcmU6Ok1vZGVsJiBtb2RlbFNvdXJjZSwgV2Vi
Q29yZTo6TGF5b3V0U2l6ZSBzaXplKQordm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ck1hYzo6bG9hZChXZWJDb3JlOjpNb2RlbCYgbW9kZWxTb3VyY2UsIFdlYkNvcmU6OkxheW91dFNp
emUgc2l6ZSkKIHsKLSAgICBhdXRvIHN0cm9uZ0NsaWVudCA9IG1fY2xpZW50LmdldCgpOworICAg
IGF1dG8gc3Ryb25nQ2xpZW50ID0gY2xpZW50KCk7CiAgICAgaWYgKCFzdHJvbmdDbGllbnQpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGF1dG8qIHN0cm9uZ1BhZ2UgPSBtX3BhZ2UuZ2V0KCk7Cisg
ICAgYXV0byogc3Ryb25nUGFnZSA9IHBhZ2UoKTsKICAgICBpZiAoIXN0cm9uZ1BhZ2UpIHsKICAg
ICAgICAgc3Ryb25nQ2xpZW50LT5kaWRGYWlsTG9hZGluZygqdGhpcywgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciB7IFdlYkNvcmU6OmVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAsIG1vZGVsU291
cmNlLnVybCgpLCAiV2ViUGFnZSBkZXN0cm95ZWQiX3MgfSk7CiAgICAgICAgIHJldHVybjsKQEAg
LTEzOSw3ICsxMzcsNyBAQCB2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpsb2Fk
KFdlYkNvcmU6Ok1vZGVsJiBtb2RlbFNvdXJjZSwgV2ViQ29yZTo6TAogICAgICAgICBpZiAoIXN0
cm9uZ1NlbGYpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgYXV0byBzdHJvbmdDbGll
bnQgPSBzdHJvbmdTZWxmLT5tX2NsaWVudC5nZXQoKTsKKyAgICAgICAgYXV0byBzdHJvbmdDbGll
bnQgPSBzdHJvbmdTZWxmLT5jbGllbnQoKTsKICAgICAgICAgaWYgKCFzdHJvbmdDbGllbnQpCiAg
ICAgICAgICAgICByZXR1cm47CiAKQEAgLTE2Nyw3ICsxNjUsNyBAQCB2b2lkIEFSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyOjpsb2FkKFdlYkNvcmU6Ok1vZGVsJiBtb2RlbFNvdXJjZSwgV2Vi
Q29yZTo6TAogICAgIHN0cm9uZ1BhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpNb2RlbEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KFVSTDo6ZmlsZVVSTFdpdGhG
aWxlU3lzdGVtUGF0aChtX2ZpbGVQYXRoKSwgW21faW5saW5lUHJldmlldyB1dWlkXS5VVUlEU3Ry
aW5nLCBzaXplKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi1QbGF0Zm9ybUxh
eWVyKiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6bGF5ZXIoKQorUGxhdGZvcm1MYXll
ciogQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmxheWVyKCkKIHsKICAgICByZXR1
cm4gW21faW5saW5lUHJldmlldyBsYXllcl07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKaW5kZXggNWYwZjYzZTBmYWExLi41NzJmMzZkZDA3M2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQAogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJF
VklFV19NQUMpCi0jaW5jbHVkZSAiQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIuaCIKKyNp
bmNsdWRlICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5oIgogI2VuZGlmCiAKICNp
ZiAhT1MoV0lORE9XUykKQEAgLTYwNSw3ICs2MDUsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzJiYg
cAogCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKICAgICBpZiAoIXBhcmFt
ZXRlcnMubW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQotICAgICAgICBBUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6c2V0TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnko
cGFyYW1ldGVycy5tb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSk7CisgICAgICAgIEFSS2l0SW5s
aW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpzZXRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeShw
YXJhbWV0ZXJzLm1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KTsKICNlbmRpZgogCiAgICAgc2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCk7Cg==
</data>
<flag name="review"
          id="469408"
          type_id="1"
          status="+"
          setter="dino"
    />
    <flag name="commit-queue"
          id="469419"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444486</attachid>
            <date>2021-11-16 23:48:52 -0800</date>
            <delta_ts>2021-11-16 23:48:52 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-233192-20211117084851.patch</filename>
            <type>text/plain</type>
            <size>53580</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTcxNGQ5N2NiNDk1OTE2
ZjQ5ZDc5YWUwOGIzNjBjZjhiMjM4ODJkYS4uMWRhZmUzZTZiZGY3NjZiYzhkZDNhYmJlYmYyNzk3
ZWE2NjBmNjU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTExLTE3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gQ3JlYXRl
IGlPUyBNb2RlbFBsYXllciBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVh
biBKYWNrc29uLgorCisgICAgICAgIEJ1ZyAyMzI4NDggZmFjdG9yZWQgcGxhdGZvcm0tc3BlY2lm
aWMgY29kZSBvdXQgb2YgSFRNTE1vZGVsRWxlbWVudCB3aXRoIHRoZSB1c2Ugb2YgYSBuZXcgTW9k
ZWxQbGF5ZXIKKyAgICAgICAgYWJzdHJhY3Rpb24gd2l0aCBhIGNvbmNyZXRlIEFSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyIGltcGxlbWVudGF0aW9uLiBUaGlzIGZpcnN0IHBhdGNoIG1vdmVk
IHRoZQorICAgICAgICBtYWNPUyBjb2RlLCBhbmQgdGhpcyBwYXRjaCBtb3ZlcyB0aGUgcmVtYWlu
aW5nIGlPUyBjb2RlLgorCisgICAgICAgIFRvIGRvIHNvIHdlIG1ha2UgQVJLaXRJbmxpbmVQcmV2
aWV3TW9kZWxQbGF5ZXIgYSBwYXJlbnQgY2xhc3Mgb2YgdHdvIHBsYXRmb3JtLXNwZWNpZmljIHN1
YmNsYXNzZXM6CisgICAgICAgIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjIGFuZCBB
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy4gV2UgYWRkIGEgbmV3IGVudGVyRnVsbHNj
cmVlbigpCisgICAgICAgIG1ldGhvZCB0byBNb2RlbFBsYXllciwgd2l0aCBhbiBpbXBsZW1lbnRh
dGlvbiBpbiB0aGUgaU9TIHN1YmNsYXNzLiBUbyBzdXBwb3J0IHRoaXMgbmV3IG1ldGhvZCwgd2UK
KyAgICAgICAgYWRkIGEgbmV3IHBsYXRmb3JtTGF5ZXJJRCgpIG9uIE1vZGVsUGxheWVyQ2xpZW50
LgorCisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6bW9kZWxEaWRDaGFuZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6dXNlc1BsYXRmb3JtTGF5ZXIgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudDo6cGxhdGZvcm1MYXllcklE
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQ6OmVudGVyRnVsbHNjcmVlbik6
CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaDoKKyAgICAgICAgKiBN
b2R1bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXJDbGllbnQuaDoKKyAgICAgICAgKiBNb2R1
bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXJQcm92aWRlci5oOgorICAgICAgICAqIE1vZHVs
ZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkR1bW15TW9kZWxQbGF5ZXI6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgICogTW9k
dWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaDoKKyAgICAgICAgKiBN
b2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5oOgorICAg
ICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsUGxheWVy
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6U2NlbmVLaXRNb2RlbFBsYXllcjo6ZW50ZXJGdWxsc2Ny
ZWVuKToKKwogMjAyMS0xMS0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBTdG9wIGEgbW9tZW50dW0gc2Nyb2xsIGFuaW1hdGlvbiB3aGVuIHJlY2Vp
dmluZyBhIG1vbWVudHVtIGVuZCBldmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjODY0NDRhMTg5OGVkNjg2YmJm
MWRjZmYxZmQ0ODViNWFhZTZmMzkzLi5iNjg5Y2JmMDNkODIxOTMxYjk5MDA4OTM5ODZmN2FmYzA4
ODJlN2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTExLTE3ICBBbnRvaW5lIFF1
aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gQ3JlYXRlIGlPUyBN
b2RlbFBsYXllciBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMTkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNr
c29uLgorCisgICAgICAgIEJ1ZyAyMzI4NDggZmFjdG9yZWQgcGxhdGZvcm0tc3BlY2lmaWMgY29k
ZSBvdXQgb2YgSFRNTE1vZGVsRWxlbWVudCB3aXRoIHRoZSB1c2Ugb2YgYSBuZXcgTW9kZWxQbGF5
ZXIKKyAgICAgICAgYWJzdHJhY3Rpb24gd2l0aCBhIGNvbmNyZXRlIEFSS2l0SW5saW5lUHJldmll
d01vZGVsUGxheWVyIGltcGxlbWVudGF0aW9uLiBUaGlzIGZpcnN0IHBhdGNoIG1vdmVkIHRoZQor
ICAgICAgICBtYWNPUyBjb2RlLCBhbmQgdGhpcyBwYXRjaCBtb3ZlcyB0aGUgcmVtYWluaW5nIGlP
UyBjb2RlLgorCisgICAgICAgIFRvIGRvIHNvIHdlIG1ha2UgQVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXIgYSBwYXJlbnQgY2xhc3Mgb2YgdHdvIHBsYXRmb3JtLXNwZWNpZmljIHN1YmNsYXNz
ZXM6CisgICAgICAgIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjIGFuZCBBUktpdElu
bGluZVByZXZpZXdNb2RlbFBsYXllcklPUy4gV2UgYWRkIGEgbmV3IGVudGVyRnVsbHNjcmVlbigp
CisgICAgICAgIG1ldGhvZCB0byBNb2RlbFBsYXllciwgd2l0aCBhbiBpbXBsZW1lbnRhdGlvbiBp
biB0aGUgaU9TIHN1YmNsYXNzLiBUbyBzdXBwb3J0IHRoaXMgbmV3IG1ldGhvZCwgd2UKKyAgICAg
ICAgYWRkIGEgbmV3IHBsYXRmb3JtTGF5ZXJJRCgpIG9uIE1vZGVsUGxheWVyQ2xpZW50LgorCisg
ICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL01vZGVsL0FSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVBy
ZXZpZXdNb2RlbFBsYXllcjo6cGFnZSk6CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVyOjpjbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTW9kZWwvQVJL
aXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpB
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXIpOgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6fkFS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllcjo6bGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllcjo6ZW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL01vZGVsL1dlYk1vZGVsUGxheWVyUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJNb2RlbFBsYXllclByb3ZpZGVyOjpjcmVhdGVNb2RlbFBsYXllcik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9Nb2RlbC9XZWJNb2RlbFBsYXllclByb3ZpZGVyLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9Nb2RlbC9pb3MvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MuaDogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9Nb2RlbC9pb3MvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXJJT1MubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllcklPUzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2
aWV3TW9kZWxQbGF5ZXJJT1M6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TKToKKyAg
ICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1M6On5BUktpdElu
bGluZVByZXZpZXdNb2RlbFBsYXllcklPUyk6CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVySU9TOjplbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLmg6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVyLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tLgor
ICAgICAgICAoV2ViS2l0OjpBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OkFS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjKToKKyAgICAgICAgKFdlYktpdDo6QVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6On5BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ck1hYyk6CisgICAgICAgIChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFj
OjpzZXRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSk6CisgICAgICAgIChXZWJLaXQ6OkFSS2l0
SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpjcmVhdGVGaWxlKToKKyAgICAgICAgKFdlYktp
dDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmNsZWFyRmlsZSk6CisgICAgICAg
IChXZWJLaXQ6OkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpsb2FkKToKKyAgICAg
ICAgKFdlYktpdDo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmxheWVyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzOjpzZXRXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyk6CisKIDIwMjEtMTEtMTYgIFJv
c3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIGZpeCBXaW5DYWlybyBidWlsZCBmb2xsb3dpbmcgcjI4NTg4MS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmNw
cAppbmRleCAxYjhlZTI2NTc0N2EzYTQyNzBiNzM3MmUyM2U2NGVhNGI2MjhiMmY2Li43ZTk3YzU1
MTVjZWIzY2NmYjg3MWIyOTMxYzA2Yjg1N2ZhM2MzZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCkBA
IC0zMCw4ICszMCwxMSBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNp
bmNsdWRlICJET01Qcm9taXNlUHJveHkuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkVsZW1lbnRDaGlsZEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiRWxlbWVudElubGluZXMuaCIK
KyNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NMYXllckNBLmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgog
I2luY2x1ZGUgIkhUTUxTb3VyY2VFbGVtZW50LmgiCkBAIC00MCwyMiArNDMsMTQgQEAKICNpbmNs
dWRlICJNb2RlbC5oIgogI2luY2x1ZGUgIk1vZGVsUGxheWVyLmgiCiAjaW5jbHVkZSAiTW9kZWxQ
bGF5ZXJQcm92aWRlci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXll
ci5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgogI2luY2x1ZGUgIlJlbmRlckxh
eWVyTW9kZWxPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJNb2RlbC5oIgogI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogCi0jaWYgRU5BQkxF
KEFSS0lUX0lOTElORV9QUkVWSUVXX0lPUykKLSNpbmNsdWRlICJDaHJvbWUuaCIKLSNpbmNsdWRl
ICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkdyYXBo
aWNzTGF5ZXIuaCIKLSNpbmNsdWRlICJHcmFwaGljc0xheWVyQ0EuaCIKLSNpbmNsdWRlICJQYWdl
LmgiCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKLSNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tp
bmcuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExP
Q0FURURfSU1QTChIVE1MTW9kZWxFbGVtZW50KTsKQEAgLTIzNCw5ICsyMjksNiBAQCB2b2lkIEhU
TUxNb2RlbEVsZW1lbnQ6Om1vZGVsRGlkQ2hhbmdlKCkKICAgICBpZiAoIXJlbmRlcmVyKQogICAg
ICAgICByZXR1cm47CiAKLSAgICAvLyBOT1RFOiBGb3Igbm93LCBjcmVhdGVNb2RlbFBsYXllciBy
ZXR1cm5pbmcgbnVsbHB0ciBtZWFucyB0aGF0IHRoZSBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50
c1RvTW9kZWwoKSBwYXRoCi0gICAgLy8gaXMgYmVpbmcgdXNlZCwgYnV0IHRoYXQgbmVlZHMgdG8g
YmUgcGhhc2VkIG91dCB0byBhbGxvdyBiaWRpcmVjdGlvbmFsIGNvbW11bmljYXRpb24gYmV0d2Vl
biB0aGUgbW9kZWwgcGxheWVyCi0gICAgLy8gYW5kIHRoZSBIVE1MTW9kZWxFbGVtZW50LiBPbmNl
IHRoYXQgaXMgcGhhc2VkIG91dCwgY3JlYXRlTW9kZWxQbGF5ZXIoKSBzaG91bGQgYmUgdXBkYXRl
ZCB0byByZXR1cm4gYSBSZWY8Pi4KICAgICBtX21vZGVsUGxheWVyID0gcGFnZS0+bW9kZWxQbGF5
ZXJQcm92aWRlcigpLmNyZWF0ZU1vZGVsUGxheWVyKCp0aGlzKTsKICAgICBpZiAoIW1fbW9kZWxQ
bGF5ZXIpCiAgICAgICAgIHJldHVybjsKQEAgLTI0NCwxMyArMjM2LDEyIEBAIHZvaWQgSFRNTE1v
ZGVsRWxlbWVudDo6bW9kZWxEaWRDaGFuZ2UoKQogICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIHRl
bGwgdGhlIHBsYXllciBpZiB0aGUgc2l6ZSBjaGFuZ2VzIGFzIHdlbGwsIHNvIHBhc3NpbmcgdGhp
cwogICAgIC8vIGluIHdpdGggbG9hZCBwcm9iYWJseSBkb2Vzbid0IG1ha2Ugc2Vuc2UuCiAgICAg
YXV0byBzaXplID0gcmVuZGVyZXItPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KGZhbHNlKS5zaXpl
KCk7Ci0KICAgICBtX21vZGVsUGxheWVyLT5sb2FkKCptX21vZGVsLCBzaXplKTsKIH0KIAogYm9v
bCBIVE1MTW9kZWxFbGVtZW50Ojp1c2VzUGxhdGZvcm1MYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fbW9kZWxQbGF5ZXIgIT0gbnVsbHB0cjsKKyAgICByZXR1cm4gbV9tb2RlbFBsYXllciAm
JiBtX21vZGVsUGxheWVyLT5sYXllcigpOwogfQogCiBQbGF0Zm9ybUxheWVyKiBIVE1MTW9kZWxF
bGVtZW50OjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKQEAgLTI3MSwzMCArMjYyLDMxIEBAIHZvaWQg
SFRNTE1vZGVsRWxlbWVudDo6ZGlkRmFpbExvYWRpbmcoTW9kZWxQbGF5ZXImIG1vZGVsUGxheWVy
LCBjb25zdCBSZXNvdXJjZUVyCiAgICAgQVNTRVJUX1VOVVNFRChtb2RlbFBsYXllciwgJm1vZGVs
UGxheWVyID09IG1fbW9kZWxQbGF5ZXIpOwogfQogCi0vLyBNQVJLOiAtIEZ1bGxzY3JlZW4gc3Vw
cG9ydC4KLQotdm9pZCBIVE1MTW9kZWxFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4oKQorR3JhcGhp
Y3NMYXllcjo6UGxhdGZvcm1MYXllcklEIEhUTUxNb2RlbEVsZW1lbnQ6OnBsYXRmb3JtTGF5ZXJJ
RCgpCiB7Ci0vLyBGSVhNRTogQWRkIGEgbmV3IG1ldGhvZCB0byBNb2RlbFBsYXllciBmb3IgZW50
ZXJpbmcgZnVsbHNjcmVlbiBhbmQgbW92ZSB0aGlzIGludG8gdGhlIGlPUyBBUktpdCBpbmxpbmUg
cHJldmlldyBNb2RlbFBsYXllciBpbXBsZW1lbnRhdGlvbi4KLSNpZiBFTkFCTEUoQVJLSVRfSU5M
SU5FX1BSRVZJRVdfSU9TKQogICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKTsKICAg
ICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBp
ZiAoIWlzPFJlbmRlckxheWVyTW9kZWxPYmplY3Q+KHRoaXMtPnJlbmRlcmVyKCkpKQotICAgICAg
ICByZXR1cm47CisgICAgICAgIHJldHVybiAwOwogCiAgICAgYXV0byYgcmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCA9IGRvd25jYXN0PFJlbmRlckxheWVyTW9kZWxPYmplY3Q+KCp0aGlzLT5yZW5kZXJl
cigpKTsKICAgICBpZiAoIXJlbmRlckxheWVyTW9kZWxPYmplY3QuaXNDb21wb3NpdGVkKCkgfHwg
IXJlbmRlckxheWVyTW9kZWxPYmplY3QubGF5ZXIoKSB8fCAhcmVuZGVyTGF5ZXJNb2RlbE9iamVj
dC5sYXllcigpLT5iYWNraW5nKCkpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIDA7
CiAKICAgICBhdXRvKiBncmFwaGljc0xheWVyID0gcmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5sYXll
cigpLT5iYWNraW5nKCktPmdyYXBoaWNzTGF5ZXIoKTsKICAgICBpZiAoIWdyYXBoaWNzTGF5ZXIp
Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpZiAoYXV0byBjb250
ZW50TGF5ZXJJZCA9IGdyYXBoaWNzTGF5ZXItPmNvbnRlbnRzTGF5ZXJJREZvck1vZGVsKCkpCi0g
ICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnRha2VNb2RlbEVsZW1lbnRGdWxsc2NyZWVu
KGNvbnRlbnRMYXllcklkKTsKLSNlbmRpZgorICAgIHJldHVybiBncmFwaGljc0xheWVyLT5jb250
ZW50c0xheWVySURGb3JNb2RlbCgpOworfQorCisvLyBNQVJLOiAtIEZ1bGxzY3JlZW4gc3VwcG9y
dC4KKwordm9pZCBIVE1MTW9kZWxFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4oKQoreworICAgIG1f
bW9kZWxQbGF5ZXItPmVudGVyRnVsbHNjcmVlbigpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuaAppbmRl
eCAzNzgwMzI5ZWEzOTU0YjhkYWQ3ZGExOWI5ODJhYzZkMGQwNjMzNzMyLi42OTQ3OGMyNzQ4MTU3
NDU5MWIxM2E0ZGRlNmQ5OWNjMDAxYWE5MGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJh
d1Jlc291cmNlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKKyNp
bmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNs
dWRlICJJRExUeXBlcy5oIgogI2luY2x1ZGUgIk1vZGVsUGxheWVyQ2xpZW50LmgiCkBAIC04OSw2
ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgLy8gTW9kZWxQbGF5ZXJDbGllbnQgb3ZlcnJpZGVzLgog
ICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyhNb2RlbFBsYXllciYpIGZpbmFsOwogICAgIHZvaWQg
ZGlkRmFpbExvYWRpbmcoTW9kZWxQbGF5ZXImLCBjb25zdCBSZXNvdXJjZUVycm9yJikgZmluYWw7
CisgICAgR3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIHBsYXRmb3JtTGF5ZXJJRCgpIGZp
bmFsOwogCiAgICAgVVJMIG1fc291cmNlVVJMOwogICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFJhd1Jlc291cmNlPiBtX3Jlc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tb2RlbC1lbGVtZW50L01vZGVsUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVsLWVsZW1lbnQvTW9kZWxQbGF5ZXIuaAppbmRleCAzYmFiMmY3OTNjNjkxNmI3NDEx
NjljOTI3ZWUxN2VjZjQxM2U2M2RlLi5lNzEyOWRkYzkxNDAyNDdjNTQ1NWIyOWVhZDA3OWRhNzVk
ZDJmZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQv
TW9kZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQv
TW9kZWxQbGF5ZXIuaApAQCAtNDAsNiArNDAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZv
aWQgbG9hZChNb2RlbCYsIExheW91dFNpemUpID0gMDsKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5
ZXIqIGxheWVyKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSA9IDA7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1l
bnQvTW9kZWxQbGF5ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxl
bWVudC9Nb2RlbFBsYXllckNsaWVudC5oCmluZGV4IDRiNDQ4YmVmOTYwMDg3NGE5ZTYwNjk0M2Ni
ODIzZDdhODZmZjY5YTIuLjMzZmI5ZGNiNTE4ZWE2MTJmNjRkZWZjOWFmMTUzMzZlYjliZDVjY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9Nb2RlbFBs
YXllckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9N
b2RlbFBsYXllckNsaWVudC5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisj
aW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIApAQCAtMzksNiArNDAsNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhNb2RlbFBsYXllciYpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmFpbExvYWRpbmcoTW9kZWxQbGF5ZXImLCBjb25zdCBSZXNvdXJjZUVycm9y
JikgPSAwOworICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIHBsYXRm
b3JtTGF5ZXJJRCgpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVyLmNwcApp
bmRleCA0MjI4M2E2NmIxY2RiNzMxMjUwNjQzMTIxMmMxYjM1OTI5NTU3YjU1Li44MjQ2NjE2MWVk
ZjU4NmUzZTQ1ODhiYzRiOTQzNTA2ZDA0OWIxZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5
ZXIuY3BwCkBAIC01NCw0ICs1NCw4IEBAIFBsYXRmb3JtTGF5ZXIqIER1bW15TW9kZWxQbGF5ZXI6
OmxheWVyKCkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAordm9pZCBEdW1teU1vZGVsUGxheWVy
OjplbnRlckZ1bGxzY3JlZW4oKQoreworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L2R1bW15L0R1bW15TW9kZWxQbGF5ZXIuaApp
bmRleCBlZTU3Mzk2ZDE4YzUzM2JmMDhmNzViYjdlYjA0MmRmNjJlYzFlNTYzLi44MzhlYmVjZjhk
MjEwYjAzNWQxNjg0NWE3MDcxNmY5MjI3OTA2ZTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvZHVtbXkvRHVtbXlNb2RlbFBsYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9kdW1teS9EdW1teU1vZGVsUGxheWVy
LmgKQEAgLTQxLDggKzQxLDkgQEAgcHJpdmF0ZToKICAgICBEdW1teU1vZGVsUGxheWVyKE1vZGVs
UGxheWVyQ2xpZW50Jik7CiAKICAgICAvLyBNb2RlbFBsYXllciBvdmVycmlkZXMuCi0gICAgdmly
dHVhbCB2b2lkIGxvYWQoTW9kZWwmLCBMYXlvdXRTaXplKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFs
IFBsYXRmb3JtTGF5ZXIqIGxheWVyKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBsb2FkKE1vZGVsJiwg
TGF5b3V0U2l6ZSkgb3ZlcnJpZGU7CisgICAgUGxhdGZvcm1MYXllciogbGF5ZXIoKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOwogCiAgICAgV2Vha1B0cjxN
b2RlbFBsYXllckNsaWVudD4gbV9jbGllbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxQbGF5ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1v
ZGVsUGxheWVyLmgKaW5kZXggMzA4NWY4MTU5Yzc0NjNkYzY1MTFlYzcyODIyNDdiOWRkMGU4Zjhl
ZS4uNGFjM2RhYjlkZDUzZmU4NWVmZTA1MzBlNjgxMmMxNDA0OGY2NGUzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9k
ZWxQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2Nl
bmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5oCkBAIC01NSw4ICs1NSw5IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCB1cGRhdGVTY2VuZSgpOwogCiAgICAgLy8gTW9kZWxQbGF5ZXIgb3ZlcnJpZGVzLgot
ICAgIHZpcnR1YWwgdm9pZCBsb2FkKE1vZGVsJiwgTGF5b3V0U2l6ZSkgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCBDQUxheWVyICpsYXllcigpIG92ZXJyaWRlOworICAgIHZvaWQgbG9hZChNb2RlbCYs
IExheW91dFNpemUpIG92ZXJyaWRlOworICAgIENBTGF5ZXIgKmxheWVyKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKIAogICAgIC8vIFNjZW5lS2l0TW9k
ZWxMb2FkZXJDbGllbnQgb3ZlcnJpZGVzLgogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2Fk
aW5nKFNjZW5lS2l0TW9kZWxMb2FkZXImLCBSZWY8U2NlbmVLaXRNb2RlbD4pIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0
L1NjZW5lS2l0TW9kZWxQbGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVs
ZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5tbQppbmRleCA2OTkyMzQxZjlmM2Fi
NWJmYzBkNTg1ZmJhMTc5MGYzZGRkYTY4ZTI4Li42OTY5NmM5ZTY5MTY4NTlhMDFlYTNkYTdkN2M0
NDcwNThmZmUzZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVs
ZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbFBsYXllci5tbQpA
QCAtNzIsNiArNzIsMTAgQEAgUGxhdGZvcm1MYXllciogU2NlbmVLaXRNb2RlbFBsYXllcjo6bGF5
ZXIoKQogICAgIHJldHVybiBtX2xheWVyLmdldCgpOwogfQogCit2b2lkIFNjZW5lS2l0TW9kZWxQ
bGF5ZXI6OmVudGVyRnVsbHNjcmVlbigpCit7Cit9CisKIC8vIE1BUks6IC0gU2NlbmVLaXRNb2Rl
bExvYWRlckNsaWVudCBvdmVycmlkZXMuCiAKIHZvaWQgU2NlbmVLaXRNb2RlbFBsYXllcjo6ZGlk
RmluaXNoTG9hZGluZyhTY2VuZUtpdE1vZGVsTG9hZGVyJiBsb2FkZXIsIFJlZjxTY2VuZUtpdE1v
ZGVsPiBtb2RlbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBi
L1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBjYThkMjM5NWZhOWRmMTE4Zjlj
ZTBiYTFkMjNkN2YzOGQ3YTIyMWE2Li5hM2U3YmI2NjQ3MTkzMDIzMGZlMjNmMGE2ODFjM2U3YTIz
MjY4MzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC02NTUsNyArNjU1LDkgQEAgV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclVJTWFjLm1tCiAKIFdlYlByb2Nlc3MvTWVk
aWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcAogCi1XZWJQcm9jZXNzL01vZGVs
L21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbQorV2ViUHJvY2Vzcy9Nb2RlbC9B
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbQorV2ViUHJvY2Vzcy9Nb2RlbC9pb3MvQVJL
aXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MubW0KK1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLm1tCiAKIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luLm1tCiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRp
b24ubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGQ1M2I2Y2U5ZWJkMDNjM2RkYTBiMzk4ZjhiZTgwMDk1MGZkMzY0ZGYuLjdkYTY1NzRm
OGQ2NDM4NDNkOTA0MmQzMTQ0NjUzNjlkYzE4NThkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDYyMCw2ICs0NjIwLDEwIEBACiAJ
CTcxMzdCQTdEMjVGMTUzRTkwMDkxNEVFMyAvKiBNb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2Eu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNb2RlbEVsZW1lbnRDb250cm9sbGVyQ29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxMzdCQTdFMjVGMTU0MEIwMDkxNEVFMyAv
KiBNb2RlbEVsZW1lbnRDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE1vZGVsRWxlbWVudENvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3MTM3QkE3RjI1RjE1NDBDMDA5MTRFRTMgLyogTW9kZWxFbGVtZW50Q29udHJv
bGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2RlbEVsZW1lbnRDb250
cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcxNzdBRDVCMjc0M0Q3QTkw
MDJGMTAzQiAvKiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3MTc3QUQ1QzI3NDNEN0E5MDAyRjEwM0IgLyogQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzE3N0FENjYyNzQzRjY2
QzAwMkYxMDNCIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcxNzdBRDY3Mjc0M0Y2NkMwMDJGMTAzQiAvKiBBUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
MUE2NzZBNDIyQzYyMzE4MDA3RDYyOTUgLyogV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLVG91Y2hBY3Rpb25HZXN0dXJl
UmVjb2duaXplci5oOyBwYXRoID0gaW9zL1dLVG91Y2hBY3Rpb25HZXN0dXJlUmVjb2duaXplci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MUE2NzZBNTIyQzYyMzE4MDA3RDYyOTUg
LyogV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBuYW1lID0gV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tOyBw
YXRoID0gaW9zL1dLVG91Y2hBY3Rpb25HZXN0dXJlUmVjb2duaXplci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzFCQUE3MzEyNUZGQ0NCQTAwRDdDRDVEIC8qIFdLTW9kZWxWaWV3
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLTW9kZWxWaWV3Lmg7IHBhdGgg
PSBpb3MvV0tNb2RlbFZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUzMjcs
OCArNTMzMSw4IEBACiAJCUJDMjA1MjgwMTFDOTQyODQwMDhGMzM3NSAvKiBXS0J1bmRsZVBhZ2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tCdW5kbGVQYWdlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMyNjUyMTIxMTgyNjA4MTAwMjQzRTEy
IC8qIERyYXdpbmdBcmVhUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRHJhd2luZ0FyZWFQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDMjY1MjEzMTE4MjYwODEwMDI0M0UxMiAvKiBEcmF3aW5nQXJlYVByb3h5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYXdpbmdBcmVhUHJveHkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQkMyQjQxMEMyNzMyRUY5NjAwQTJEMTkxIC8qIEFSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDMkI0MTBEMjczMkVG
OTYwMEEyRDE5MSAvKiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCQzJCNDEwQzI3MzJFRjk2MDBBMkQxOTEgLyogQVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVJLaXRJbmxpbmVQcmV2
aWV3TW9kZWxQbGF5ZXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMyQjQx
MEQyNzMyRUY5NjAwQTJEMTkxIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMkI0MTFBMjczMkY2NkUwMEEyRDE5
MSAvKiBXZWJNb2RlbFBsYXllclByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk1vZGVsUGxh
eWVyUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMyQjQxMUIyNzMy
RjY2RTAwQTJEMTkxIC8qIFdlYk1vZGVsUGxheWVyUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViTW9kZWxQbGF5ZXJQcm92aWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDMkQwMjE2MTJBQzQxQ0IwMEU3MzJBMyAvKiBTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTUxOSw2ICs5NTIz
LDE1IEBACiAJCQluYW1lID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsK
KwkJNzE3N0FENjUyNzQzRjY2QzAwMkYxMDNCIC8qIGlvcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNzE3N0FENjcyNzQzRjY2QzAwMkYxMDNCIC8qIEFS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLmggKi8sCisJCQkJNzE3N0FENjYyNzQzRjY2
QzAwMkYxMDNCIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLm1tICovLAorCQkJ
KTsKKwkJCXBhdGggPSBpb3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk3
MjdBN0YzMzI0MDc4NTI3MDA0RDI5MzEgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTA4NDAsNyArMTA4NTMsMTAgQEAKIAkJQkMyQjQxMEEy
NzMyRUY2NTAwQTJEMTkxIC8qIE1vZGVsICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQk3MTc3QUQ2NTI3NDNGNjZDMDAyRjEwM0IgLyogaW9zICovLAogCQkJ
CUJDMkI0MTBCMjczMkVGNzUwMEEyRDE5MSAvKiBtYWMgKi8sCisJCQkJNzE3N0FENUMyNzQzRDdB
OTAwMkYxMDNCIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmggKi8sCisJCQkJNzE3
N0FENUIyNzQzRDdBOTAwMkYxMDNCIC8qIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1t
ICovLAogCQkJCUJDMkI0MTFCMjczMkY2NkUwMEEyRDE5MSAvKiBXZWJNb2RlbFBsYXllclByb3Zp
ZGVyLmNwcCAqLywKIAkJCQlCQzJCNDExQTI3MzJGNjZFMDBBMkQxOTEgLyogV2ViTW9kZWxQbGF5
ZXJQcm92aWRlci5oICovLAogCQkJKTsKQEAgLTEwODUwLDggKzEwODY2LDggQEAKIAkJQkMyQjQx
MEIyNzMyRUY3NTAwQTJEMTkxIC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkJQkMyQjQxMEMyNzMyRUY5NjAwQTJEMTkxIC8qIEFSS2l0SW5saW5l
UHJldmlld01vZGVsUGxheWVyLmggKi8sCi0JCQkJQkMyQjQxMEQyNzMyRUY5NjAwQTJEMTkxIC8q
IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLm1tICovLAorCQkJCUJDMkI0MTBDMjczMkVG
OTYwMEEyRDE5MSAvKiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5oICovLAorCQkJ
CUJDMkI0MTBEMjczMkVGOTYwMEEyRDE5MSAvKiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ck1hYy5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElu
bGluZVByZXZpZXdNb2RlbFBsYXllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVs
L0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2NhYWNiMzU2NWY5
Zjg2NjNiNDgyNGQ4NzdjMTRhMWU1OTNhNjMyNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oCkBA
IC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShB
UktJVF9JTkxJTkVfUFJFVklFVykKKworI2luY2x1ZGUgPFdlYkNvcmUvTW9kZWxQbGF5ZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL01vZGVsUGxheWVyQ2xpZW50Lmg+CisjaW5jbHVkZSA8d3RmL0Nv
bXBpbGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBBUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllciA6IHB1YmxpYyBXZWJDb3JlOjpNb2RlbFBsYXllciwgcHVibGljIENhbk1h
a2VXZWFrUHRyPEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyPiB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIoKTsKKworcHJvdGVjdGVkOgor
ICAgIGV4cGxpY2l0IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKFdlYlBhZ2UmLCBXZWJD
b3JlOjpNb2RlbFBsYXllckNsaWVudCYpOworCisgICAgV2ViUGFnZSogcGFnZSgpIHsgcmV0dXJu
IG1fcGFnZS5nZXQoKTsgfQorICAgIFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50KiBjbGllbnQo
KSB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIC8vIFdlYkNvcmU6
Ok1vZGVsUGxheWVyIG92ZXJyaWRlcy4KKyAgICB2b2lkIGxvYWQoV2ViQ29yZTo6TW9kZWwmLCBX
ZWJDb3JlOjpMYXlvdXRTaXplKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybUxheWVyKiBsYXllcigp
IG92ZXJyaWRlOworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CisKKyAgICBX
ZWFrUHRyPFdlYlBhZ2U+IG1fcGFnZTsKKyAgICBXZWFrUHRyPFdlYkNvcmU6Ok1vZGVsUGxheWVy
Q2xpZW50PiBtX2NsaWVudDsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWRiZDE0YTE5Y2QzYjM1ZGIzMDQ0NjUyYmFjMzYyMWZlY2Iy
NzI1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9B
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbQpAQCAtMCwwICsxLDYwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJBUktpdElubGluZVByZXZpZXdNb2Rl
bFBsYXllci5oIgorCisjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXKQorCisjaW1wb3J0
ICJXZWJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitBUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllcjo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIoV2ViUGFnZSYgcGFnZSwg
V2ViQ29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmIGNsaWVudCkKKyAgICA6IG1fcGFnZSB7IHBhZ2Ug
fQorICAgICwgbV9jbGllbnQgeyBjbGllbnQgfQoreworfQorCitBUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllcjo6fkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKCkKK3sKK30KKwordm9p
ZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6bG9hZChXZWJDb3JlOjpNb2RlbCYsIFdl
YkNvcmU6OkxheW91dFNpemUpCit7Cit9CisKK1BsYXRmb3JtTGF5ZXIqIEFSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVyOjpsYXllcigpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3Zv
aWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmVudGVyRnVsbHNjcmVlbigpCit7Cit9
CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9k
ZWwvV2ViTW9kZWxQbGF5ZXJQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TW9kZWwvV2ViTW9kZWxQbGF5ZXJQcm92aWRlci5jcHAKaW5kZXggODYwZTQ3ZmQwODEzZTljZjYw
YWNmMDc4MjY1MjE3NzY2OWZjODcwMi4uNTc2ZTUxZDI1ZDAyYTRlMWQ3MjBmNWE1MjFiMTllOGI0
ZmZkMjgyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL1dlYk1v
ZGVsUGxheWVyUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2Rl
bC9XZWJNb2RlbFBsYXllclByb3ZpZGVyLmNwcApAQCAtMzAsNyArMzAsMTEgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL01vZGVsUGxheWVyLmg+CiAKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJ
RVdfTUFDKQotI2luY2x1ZGUgIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmgiCisjaW5j
bHVkZSAiQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMuaCIKKyNlbmRpZgorCisjaWYg
RU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX0lPUykKKyNpbmNsdWRlICJBUktpdElubGluZVBy
ZXZpZXdNb2RlbFBsYXllcklPUy5oIgogI2VuZGlmCiAKICNpZiBIQVZFKFNDRU5FS0lUKQpAQCAt
NTEsMTcgKzU1LDE5IEBAIFdlYk1vZGVsUGxheWVyUHJvdmlkZXI6On5XZWJNb2RlbFBsYXllclBy
b3ZpZGVyKCkgPSBkZWZhdWx0OwogCiBSZWZQdHI8V2ViQ29yZTo6TW9kZWxQbGF5ZXI+IFdlYk1v
ZGVsUGxheWVyUHJvdmlkZXI6OmNyZWF0ZU1vZGVsUGxheWVyKFdlYkNvcmU6Ok1vZGVsUGxheWVy
Q2xpZW50JiBjbGllbnQpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKGNsaWVudCk7Ci0KICNpZiBFTkFC
TEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfTUFDKQogICAgIGlmIChtX3BhZ2UudXNlQVJLaXRGb3JN
b2RlbCgpKQotICAgICAgICByZXR1cm4gQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmNy
ZWF0ZShtX3BhZ2UsIGNsaWVudCk7CisgICAgICAgIHJldHVybiBBUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllck1hYzo6Y3JlYXRlKG1fcGFnZSwgY2xpZW50KTsKICNlbmRpZgogI2lmIEhBVkUo
U0NFTkVLSVQpCiAgICAgaWYgKG1fcGFnZS51c2VTY2VuZUtpdEZvck1vZGVsKCkpCiAgICAgICAg
IHJldHVybiBXZWJDb3JlOjpTY2VuZUtpdE1vZGVsUGxheWVyOjpjcmVhdGUoY2xpZW50KTsKICNl
bmRpZgorI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19JT1MpCisgICAgcmV0dXJuIEFS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TOjpjcmVhdGUobV9wYWdlLCBjbGllbnQpOwor
I2VuZGlmCiAKKyAgICBVTlVTRURfUEFSQU0oY2xpZW50KTsKICAgICByZXR1cm4gbnVsbHB0cjsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL2lvcy9BUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L01vZGVsL2lvcy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUy5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljk3ZmI2NzY4Njc1ZWM2N2YzNWVjNWRlMzM1OWEzMzU1ZDBlOTRjYTAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvaW9zL0FSS2l0SW5saW5lUHJldmll
d01vZGVsUGxheWVySU9TLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX0lPUykKKworI2luY2x1ZGUg
IkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Nb2Rl
bFBsYXllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTW9kZWxQbGF5ZXJDbGllbnQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9T
IGZpbmFsIDogcHVibGljIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TPiBjcmVhdGUo
V2ViUGFnZSYsIFdlYkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50Jik7CisgICAgdmlydHVhbCB+QVJL
aXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MoKTsKKworcHJpdmF0ZToKKyAgICBBUktpdElu
bGluZVByZXZpZXdNb2RlbFBsYXllcklPUyhXZWJQYWdlJiwgV2ViQ29yZTo6TW9kZWxQbGF5ZXJD
bGllbnQmKTsKKworICAgIC8vIFdlYkNvcmU6Ok1vZGVsUGxheWVyIG92ZXJyaWRlcy4KKyAgICB2
b2lkIGVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOworfTsKKworfQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9pb3MvQVJLaXRJbmxpbmVQcmV2
aWV3TW9kZWxQbGF5ZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvaW9z
L0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkZTE0NWE1
MWQyZjQwOTIxMzAwMDU0N2ExODEwOGEwMmQxNTdmZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvaW9zL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxh
eWVySU9TLm1tCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TLmgiCisKKyNpZiBF
TkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfSU9TKQorCisjaW1wb3J0ICJXZWJQYWdlLmgiCisj
aW1wb3J0ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGlj
c0xheWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8QVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXJJT1M+IEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TOjpjcmVhdGUo
V2ViUGFnZSYgcGFnZSwgV2ViQ29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmIGNsaWVudCkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcklPUyhw
YWdlLCBjbGllbnQpKTsKK30KKworQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1M6OkFS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVySU9TKFdlYlBhZ2UmIHBhZ2UsIFdlYkNvcmU6Ok1v
ZGVsUGxheWVyQ2xpZW50JiBjbGllbnQpCisgICAgOiBBUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllcihwYWdlLCBjbGllbnQpCit7Cit9CisKK0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVy
SU9TOjp+QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJJT1MoKQoreworfQorCisvLyBNQVJL
OiAtIFdlYkNvcmU6Ok1vZGVsUGxheWVyIG92ZXJyaWRlcy4KKwordm9pZCBBUktpdElubGluZVBy
ZXZpZXdNb2RlbFBsYXllcklPUzo6ZW50ZXJGdWxsc2NyZWVuKCkKK3sKKyAgICBpZiAoIWNsaWVu
dCgpIHx8ICFwYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChhdXRvIGxheWVySWQg
PSBjbGllbnQoKS0+cGxhdGZvcm1MYXllcklEKCkpCisgICAgICAgIHBhZ2UoKS0+dGFrZU1vZGVs
RWxlbWVudEZ1bGxzY3JlZW4obGF5ZXJJZCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5s
aW5lUHJldmlld01vZGVsUGxheWVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRm
MDIwNzBjNDI2NTcwNjc3NjM3Y2QxYTFkYjI1M2I1OTNjOTYyMzAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01v
ZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oCisrKyAvZGV2L251bGwKQEAg
LTEsNjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKEFS
S0lUX0lOTElORV9QUkVWSUVXX01BQykKLQotI2luY2x1ZGUgPFdlYkNvcmUvTW9kZWxQbGF5ZXIu
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL01vZGVsUGxheWVyQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8d3Rm
L0NvbXBpbGVyLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotCi1PQkpDX0NMQVNTIEFT
VklubGluZVByZXZpZXc7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpNb2RlbFBsYXllciwg
cHVibGljIENhbk1ha2VXZWFrUHRyPEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyPiB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcj4gY3Jl
YXRlKFdlYlBhZ2UmLCBXZWJDb3JlOjpNb2RlbFBsYXllckNsaWVudCYpOwotICAgIHZpcnR1YWwg
fkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKCk7Ci0KLSAgICBzdGF0aWMgdm9pZCBzZXRN
b2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeShjb25zdCBTdHJpbmcmKTsKLQotcHJpdmF0ZToKLSAg
ICBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcihXZWJQYWdlJiwgV2ViQ29yZTo6TW9kZWxQ
bGF5ZXJDbGllbnQmKTsKLQotICAgIC8vIFdlYkNvcmU6Ok1vZGVsUGxheWVyIG92ZXJyaWRlcy4K
LSAgICB2aXJ0dWFsIHZvaWQgbG9hZChXZWJDb3JlOjpNb2RlbCYsIFdlYkNvcmU6OkxheW91dFNp
emUpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogbGF5ZXIoKSBvdmVycmlk
ZTsKLQotICAgIHZvaWQgY3JlYXRlRmlsZShXZWJDb3JlOjpNb2RlbCYpOwotICAgIHZvaWQgY2xl
YXJGaWxlKCk7Ci0KLSAgICBXZWFrUHRyPFdlYlBhZ2U+IG1fcGFnZTsKLSAgICBXZWFrUHRyPFdl
YkNvcmU6Ok1vZGVsUGxheWVyQ2xpZW50PiBtX2NsaWVudDsKLQotICAgIFN0cmluZyBtX2ZpbGVQ
YXRoOwotICAgIFJldGFpblB0cjxBU1ZJbmxpbmVQcmV2aWV3PiBtX2lubGluZVByZXZpZXc7Ci19
OwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01v
ZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIubW0KZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJkZjI0NTFhZmMzMThjN2QwYmU5ZThhODRjOWY2
NTRlMmFjYmEyYzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllci5tbQorKysgL2Rldi9udWxsCkBAIC0xLDE3NyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2ltcG9ydCAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdf
TUFDKQotCi0jaW1wb3J0ICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oIgotCi0jaW1w
b3J0ICJXZWJQYWdlLmgiCi0jaW1wb3J0ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgotI2ltcG9y
dCA8V2ViQ29yZS9Nb2RlbC5oPgotI2ltcG9ydCA8cGFsL3NwaS9tYWMvU3lzdGVtUHJldmlld1NQ
SS5oPgotI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+Ci0jaW1wb3J0IDx3dGYvVVVJRC5oPgot
Ci1TT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoQXNzZXRWaWV3ZXIpOwotU09GVF9MSU5LX0NM
QVNTKEFzc2V0Vmlld2VyLCBBU1ZJbmxpbmVQcmV2aWV3KTsKLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLVJlZjxBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcj4gQVJLaXRJbmxpbmVQcmV2aWV3
TW9kZWxQbGF5ZXI6OmNyZWF0ZShXZWJQYWdlJiBwYWdlLCBXZWJDb3JlOjpNb2RlbFBsYXllckNs
aWVudCYgY2xpZW50KQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVyKHBhZ2UsIGNsaWVudCkpOwotfQotCi1BUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllcjo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXIoV2ViUGFnZSYgcGFnZSwg
V2ViQ29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmIGNsaWVudCkKLSAgICA6IG1fcGFnZSB7IHBhZ2Ug
fQotICAgICwgbV9jbGllbnQgeyBjbGllbnQgfQotewotfQotCi1BUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllcjo6fkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyKCkKLXsKLSAgICBjbGVh
ckZpbGUoKTsKLX0KLQotc3RhdGljIFN0cmluZyYgc2hhcmVkTW9kZWxFbGVtZW50Q2FjaGVEaXJl
Y3RvcnkoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHNoYXJlZE1vZGVs
RWxlbWVudENhY2hlRGlyZWN0b3J5OwotICAgIHJldHVybiBzaGFyZWRNb2RlbEVsZW1lbnRDYWNo
ZURpcmVjdG9yeTsKLX0KLQotc3RhdGljIGNvbnN0IFN0cmluZyYgbW9kZWxFbGVtZW50Q2FjaGVE
aXJlY3RvcnkoKQotewotICAgIHJldHVybiBzaGFyZWRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9y
eSgpOwotfQotCi12b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjpzZXRNb2RlbEVs
ZW1lbnRDYWNoZURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgpCi17Ci0gICAgc2hhcmVkTW9k
ZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoKSA9IHBhdGg7Ci19Ci0KLXZvaWQgQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXI6OmNyZWF0ZUZpbGUoV2ViQ29yZTo6TW9kZWwmIG1vZGVsU291cmNl
KQotewotICAgIC8vIFRoZSBuZWVkIGZvciBhIGZpbGUgaXMgb25seSB0ZW1wb3JhcnkgZHVlIHRv
IHRoZSBuYXR1cmUgb2YgQVNWSW5saW5lUHJldmlldywKLSAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NTY3LgotCi0gICAgY2xlYXJGaWxlKCk7Ci0KLSAg
ICBhdXRvIHBhdGhUb0RpcmVjdG9yeSA9IG1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCk7Ci0g
ICAgaWYgKHBhdGhUb0RpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IGF1dG8gZGlyZWN0b3J5RXhpc3RzID0gRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhwYXRoVG9EaXJl
Y3RvcnkpOwotICAgIGlmIChkaXJlY3RvcnlFeGlzdHMgJiYgRmlsZVN5c3RlbTo6ZmlsZVR5cGVG
b2xsb3dpbmdTeW1saW5rcyhwYXRoVG9EaXJlY3RvcnkpICE9IEZpbGVTeXN0ZW06OkZpbGVUeXBl
OjpEaXJlY3RvcnkpIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0gICAgaWYgKCFkaXJlY3RvcnlFeGlzdHMgJiYgIUZpbGVTeXN0ZW06Om1h
a2VBbGxEaXJlY3RvcmllcyhwYXRoVG9EaXJlY3RvcnkpKSB7Ci0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gV2UgbmVlZCB0byBz
dXBwb3J0IC5yZWFsaXR5IGZpbGVzIGFzIHdlbGwsIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjc1NjguCi0gICAgYXV0byBmaWxlTmFtZSA9IEZpbGVTeXN0ZW06OmVu
Y29kZUZvckZpbGVOYW1lKGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSkgKyAiLnVzZHoiOwot
ICAgIGF1dG8gZmlsZVBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQo
cGF0aFRvRGlyZWN0b3J5LCBmaWxlTmFtZSk7Ci0gICAgYXV0byBmaWxlID0gRmlsZVN5c3RlbTo6
b3BlbkZpbGUoZmlsZVBhdGgsIEZpbGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6V3JpdGUpOwotICAg
IGlmIChmaWxlIDw9IDApCi0gICAgICAgIHJldHVybjsKLQotICAgIEZpbGVTeXN0ZW06OndyaXRl
VG9GaWxlKGZpbGUsIG1vZGVsU291cmNlLmRhdGEoKS0+ZGF0YSgpLCBtb2RlbFNvdXJjZS5kYXRh
KCktPnNpemUoKSk7Ci0gICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGZpbGUpOwotICAgIG1fZmls
ZVBhdGggPSBmaWxlUGF0aDsKLX0KLQotdm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
cjo6Y2xlYXJGaWxlKCkKLXsKLSAgICBpZiAobV9maWxlUGF0aC5pc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUobV9maWxlUGF0aCk7Ci0gICAg
bV9maWxlUGF0aCA9IGVtcHR5U3RyaW5nKCk7Ci19Ci0KLS8vIE1BUks6IC0gV2ViQ29yZTo6TW9k
ZWxQbGF5ZXIgb3ZlcnJpZGVzLgotCi12b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVy
Ojpsb2FkKFdlYkNvcmU6Ok1vZGVsJiBtb2RlbFNvdXJjZSwgV2ViQ29yZTo6TGF5b3V0U2l6ZSBz
aXplKQotewotICAgIGF1dG8gc3Ryb25nQ2xpZW50ID0gbV9jbGllbnQuZ2V0KCk7Ci0gICAgaWYg
KCFzdHJvbmdDbGllbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8qIHN0cm9uZ1BhZ2Ug
PSBtX3BhZ2UuZ2V0KCk7Ci0gICAgaWYgKCFzdHJvbmdQYWdlKSB7Ci0gICAgICAgIHN0cm9uZ0Ns
aWVudC0+ZGlkRmFpbExvYWRpbmcoKnRoaXMsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgeyBXZWJD
b3JlOjplcnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCBtb2RlbFNvdXJjZS51cmwoKSwgIldl
YlBhZ2UgZGVzdHJveWVkIl9zIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY3Jl
YXRlRmlsZShtb2RlbFNvdXJjZSk7Ci0KLSAgICBtX2lubGluZVByZXZpZXcgPSBhZG9wdE5TKFth
bGxvY0FTVklubGluZVByZXZpZXdJbnN0YW5jZSgpIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgw
LCAwLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpXSk7Ci0gICAgTE9HKE1vZGVsRWxlbWVu
dCwgIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjptb2RlbERpZENoYW5nZSgpIGNyZWF0
ZWQgcHJldmlldyB3aXRoIFVVSUQgJXMgYW5kIHNpemUgJWYgeCAlZi4iLCAoKFN0cmluZylbbV9p
bmxpbmVQcmV2aWV3IHV1aWRdLlVVSURTdHJpbmcpLnV0ZjgoKS5kYXRhKCksIHNpemUud2lkdGgo
KSwgc2l6ZS5oZWlnaHQoKSk7Ci0KLSAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVk
PHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90PiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4pPiBj
b21wbGV0aW9uSGFuZGxlciA9IFt3ZWFrU2VsZiA9IFdlYWtQdHIgeyAqdGhpcyB9XSAoRXhwZWN0
ZWQ8c3RkOjpwYWlyPFN0cmluZywgdWludDMyX3Q+LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yPiBy
ZXN1bHQpIG11dGFibGUgewotICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQo
KTsKLSAgICAgICAgaWYgKCFzdHJvbmdTZWxmKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgIGF1dG8gc3Ryb25nQ2xpZW50ID0gc3Ryb25nU2VsZi0+bV9jbGllbnQuZ2V0KCk7Ci0gICAg
ICAgIGlmICghc3Ryb25nQ2xpZW50KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlm
ICghcmVzdWx0KSB7Ci0gICAgICAgICAgICBMT0coTW9kZWxFbGVtZW50LCAiQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXI6OmlubGluZVByZXZpZXdEaWRPYnRhaW5Db250ZXh0SWQoKSByZWNl
aXZlZCBlcnJvciBmcm9tIFVJUHJvY2VzcyIpOwotICAgICAgICAgICAgc3Ryb25nQ2xpZW50LT5k
aWRGYWlsTG9hZGluZygqc3Ryb25nU2VsZiwgcmVzdWx0LmVycm9yKCkpOwotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgYXV0byYgW3V1aWQsIGNvbnRleHRJZF0gPSAq
cmVzdWx0OwotICAgICAgICBTdHJpbmcgZXhwZWN0ZWRVVUlEID0gW3N0cm9uZ1NlbGYtPm1faW5s
aW5lUHJldmlldyB1dWlkXS5VVUlEU3RyaW5nOwotCi0gICAgICAgIGlmICh1dWlkICE9IGV4cGVj
dGVkVVVJRCkgewotICAgICAgICAgICAgTE9HKE1vZGVsRWxlbWVudCwgIkFSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVyOjppbmxpbmVQcmV2aWV3RGlkT2J0YWluQ29udGV4dElkKCkgVVVJRCBt
aXNtYXRjaCwgcmVjZWl2ZWQgJXMgYnV0IGV4cGVjdGVkICVzLiIsIHV1aWQudXRmOCgpLmRhdGEo
KSwgZXhwZWN0ZWRVVUlELnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgc3Ryb25nQ2xpZW50
LT5kaWRGYWlsTG9hZGluZygqc3Ryb25nU2VsZiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciB7IFdl
YkNvcmU6OmVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAsIHsgfSwgbWFrZVN0cmluZygiQVJL
aXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXI6OmlubGluZVByZXZpZXdEaWRPYnRhaW5Db250ZXh0
SWQoKSBVVUlEIG1pc21hdGNoLCByZWNlaXZlZCAiLCB1dWlkLCAiIGJ1dCBleHBlY3RlZCAiLCBl
eHBlY3RlZFVVSUQsICIuIikgfSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQot
ICAgICAgICBbc3Ryb25nU2VsZi0+bV9pbmxpbmVQcmV2aWV3IHNldFJlbW90ZUNvbnRleHQ6Y29u
dGV4dElkXTsKLSAgICAgICAgTE9HKE1vZGVsRWxlbWVudCwgIkFSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVyOjppbmxpbmVQcmV2aWV3RGlkT2J0YWluQ29udGV4dElkKCkgc3VjY2Vzc2Z1bGx5
IGVzdGFibGlzaGVkIHJlbW90ZSBjb25uZWN0aW9uIGZvciBVVUlEICVzLiIsIHV1aWQudXRmOCgp
LmRhdGEoKSk7Ci0KLSAgICAgICAgc3Ryb25nQ2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKCpzdHJv
bmdTZWxmKTsKLSAgICB9OwotICAgIAotICAgIHN0cm9uZ1BhZ2UtPnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpNb2RlbEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KFVS
TDo6ZmlsZVVSTFdpdGhGaWxlU3lzdGVtUGF0aChtX2ZpbGVQYXRoKSwgW21faW5saW5lUHJldmll
dyB1dWlkXS5VVUlEU3RyaW5nLCBzaXplKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwot
fQotCi1QbGF0Zm9ybUxheWVyKiBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6bGF5ZXIo
KQotewotICAgIHJldHVybiBbbV9pbmxpbmVQcmV2aWV3IGxheWVyXTsKLX0KLQotfQotCi0jZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9N
b2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
YjU1OWJjMjM0ODgwZjhhNDI4MGQxNWQ1NTQ5NGRiODYyYTUyNjEzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdN
b2RlbFBsYXllck1hYy5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFV19NQUMpCisKKyNpbmNsdWRlICJB
UktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTW9kZWxQ
bGF5ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01vZGVsUGxheWVyQ2xpZW50Lmg+CisjaW5jbHVk
ZSA8d3RmL0NvbXBpbGVyLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCitPQkpDX0NM
QVNTIEFTVklubGluZVByZXZpZXc7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBBUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYyBmaW5hbCA6IHB1YmxpYyBBUktpdElubGluZVBy
ZXZpZXdNb2RlbFBsYXllciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxBUktpdElubGluZVBy
ZXZpZXdNb2RlbFBsYXllck1hYz4gY3JlYXRlKFdlYlBhZ2UmLCBXZWJDb3JlOjpNb2RlbFBsYXll
ckNsaWVudCYpOworICAgIHZpcnR1YWwgfkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFj
KCk7CisKKyAgICBzdGF0aWMgdm9pZCBzZXRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeShjb25z
dCBTdHJpbmcmKTsKKworcHJpdmF0ZToKKyAgICBBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXll
ck1hYyhXZWJQYWdlJiwgV2ViQ29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmKTsKKworICAgIC8vIFdl
YkNvcmU6Ok1vZGVsUGxheWVyIG92ZXJyaWRlcy4KKyAgICB2b2lkIGxvYWQoV2ViQ29yZTo6TW9k
ZWwmLCBXZWJDb3JlOjpMYXlvdXRTaXplKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybUxheWVyKiBs
YXllcigpIG92ZXJyaWRlOworCisgICAgdm9pZCBjcmVhdGVGaWxlKFdlYkNvcmU6Ok1vZGVsJik7
CisgICAgdm9pZCBjbGVhckZpbGUoKTsKKworICAgIFN0cmluZyBtX2ZpbGVQYXRoOworICAgIFJl
dGFpblB0cjxBU1ZJbmxpbmVQcmV2aWV3PiBtX2lubGluZVByZXZpZXc7Cit9OworCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2M3YzNmYjhkYTFhZmYwOWRhYWMwMTBhMzUyYWZhZDllNzJkYWU3MwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2
aWV3TW9kZWxQbGF5ZXJNYWMubW0KQEAgLTAsMCArMSwxNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFj
LmgiCisKKyNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfTUFDKQorCisjaW1wb3J0ICJX
ZWJQYWdlLmgiCisjaW1wb3J0ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2ltcG9ydCA8V2Vi
Q29yZS9Nb2RlbC5oPgorI2ltcG9ydCA8cGFsL3NwaS9tYWMvU3lzdGVtUHJldmlld1NQSS5oPgor
I2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisjaW1wb3J0IDx3dGYvVVVJRC5oPgorCitTT0ZU
X0xJTktfUFJJVkFURV9GUkFNRVdPUksoQXNzZXRWaWV3ZXIpOworU09GVF9MSU5LX0NMQVNTKEFz
c2V0Vmlld2VyLCBBU1ZJbmxpbmVQcmV2aWV3KTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Jl
ZjxBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYz4gQVJLaXRJbmxpbmVQcmV2aWV3TW9k
ZWxQbGF5ZXJNYWM6OmNyZWF0ZShXZWJQYWdlJiBwYWdlLCBXZWJDb3JlOjpNb2RlbFBsYXllckNs
aWVudCYgY2xpZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVyTWFjKHBhZ2UsIGNsaWVudCkpOworfQorCitBUktpdElubGluZVByZXZp
ZXdNb2RlbFBsYXllck1hYzo6QVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMoV2ViUGFn
ZSYgcGFnZSwgV2ViQ29yZTo6TW9kZWxQbGF5ZXJDbGllbnQmIGNsaWVudCkKKyAgICA6IEFSS2l0
SW5saW5lUHJldmlld01vZGVsUGxheWVyKHBhZ2UsIGNsaWVudCkKK3sKK30KKworQVJLaXRJbmxp
bmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6On5BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1h
YygpCit7CisgICAgY2xlYXJGaWxlKCk7Cit9CisKK3N0YXRpYyBTdHJpbmcmIHNoYXJlZE1vZGVs
RWxlbWVudENhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3Ry
aW5nPiBzaGFyZWRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeTsKKyAgICByZXR1cm4gc2hhcmVk
TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnk7Cit9CisKK3N0YXRpYyBjb25zdCBTdHJpbmcmIG1v
ZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICByZXR1cm4gc2hhcmVkTW9kZWxFbGVt
ZW50Q2FjaGVEaXJlY3RvcnkoKTsKK30KKwordm9pZCBBUktpdElubGluZVByZXZpZXdNb2RlbFBs
YXllck1hYzo6c2V0TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRo
KQoreworICAgIHNoYXJlZE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCkgPSBwYXRoOworfQor
Cit2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjOjpjcmVhdGVGaWxlKFdlYkNv
cmU6Ok1vZGVsJiBtb2RlbFNvdXJjZSkKK3sKKyAgICAvLyBUaGUgbmVlZCBmb3IgYSBmaWxlIGlz
IG9ubHkgdGVtcG9yYXJ5IGR1ZSB0byB0aGUgbmF0dXJlIG9mIEFTVklubGluZVByZXZpZXcsCisg
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzU2Ny4KKwor
ICAgIGNsZWFyRmlsZSgpOworCisgICAgYXV0byBwYXRoVG9EaXJlY3RvcnkgPSBtb2RlbEVsZW1l
bnRDYWNoZURpcmVjdG9yeSgpOworICAgIGlmIChwYXRoVG9EaXJlY3RvcnkuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGRpcmVjdG9yeUV4aXN0cyA9IEZpbGVTeXN0ZW06
OmZpbGVFeGlzdHMocGF0aFRvRGlyZWN0b3J5KTsKKyAgICBpZiAoZGlyZWN0b3J5RXhpc3RzICYm
IEZpbGVTeXN0ZW06OmZpbGVUeXBlRm9sbG93aW5nU3ltbGlua3MocGF0aFRvRGlyZWN0b3J5KSAh
PSBGaWxlU3lzdGVtOjpGaWxlVHlwZTo6RGlyZWN0b3J5KSB7CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICghZGlyZWN0b3J5RXhp
c3RzICYmICFGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMocGF0aFRvRGlyZWN0b3J5KSkg
eworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIC8vIFdlIG5lZWQgdG8gc3VwcG9ydCAucmVhbGl0eSBmaWxlcyBhcyB3ZWxsLCBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NTY4LgorICAgIGF1dG8gZmls
ZU5hbWUgPSBGaWxlU3lzdGVtOjplbmNvZGVGb3JGaWxlTmFtZShjcmVhdGVDYW5vbmljYWxVVUlE
U3RyaW5nKCkpICsgIi51c2R6IjsKKyAgICBhdXRvIGZpbGVQYXRoID0gRmlsZVN5c3RlbTo6cGF0
aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHBhdGhUb0RpcmVjdG9yeSwgZmlsZU5hbWUpOworICAgIGF1
dG8gZmlsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKGZpbGVQYXRoLCBGaWxlU3lzdGVtOjpGaWxl
T3Blbk1vZGU6OldyaXRlKTsKKyAgICBpZiAoZmlsZSA8PSAwKQorICAgICAgICByZXR1cm47CisK
KyAgICBGaWxlU3lzdGVtOjp3cml0ZVRvRmlsZShmaWxlLCBtb2RlbFNvdXJjZS5kYXRhKCktPmRh
dGEoKSwgbW9kZWxTb3VyY2UuZGF0YSgpLT5zaXplKCkpOworICAgIEZpbGVTeXN0ZW06OmNsb3Nl
RmlsZShmaWxlKTsKKyAgICBtX2ZpbGVQYXRoID0gZmlsZVBhdGg7Cit9CisKK3ZvaWQgQVJLaXRJ
bmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmNsZWFyRmlsZSgpCit7CisgICAgaWYgKG1fZmls
ZVBhdGguaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBGaWxlU3lzdGVtOjpkZWxl
dGVGaWxlKG1fZmlsZVBhdGgpOworICAgIG1fZmlsZVBhdGggPSBlbXB0eVN0cmluZygpOworfQor
CisvLyBNQVJLOiAtIFdlYkNvcmU6Ok1vZGVsUGxheWVyIG92ZXJyaWRlcy4KKwordm9pZCBBUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYzo6bG9hZChXZWJDb3JlOjpNb2RlbCYgbW9kZWxT
b3VyY2UsIFdlYkNvcmU6OkxheW91dFNpemUgc2l6ZSkKK3sKKyAgICBhdXRvIHN0cm9uZ0NsaWVu
dCA9IGNsaWVudCgpOworICAgIGlmICghc3Ryb25nQ2xpZW50KQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvKiBzdHJvbmdQYWdlID0gcGFnZSgpOworICAgIGlmICghc3Ryb25nUGFnZSkgewor
ICAgICAgICBzdHJvbmdDbGllbnQtPmRpZEZhaWxMb2FkaW5nKCp0aGlzLCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yIHsgV2ViQ29yZTo6ZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgbW9kZWxT
b3VyY2UudXJsKCksICJXZWJQYWdlIGRlc3Ryb3llZCJfcyB9KTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGNyZWF0ZUZpbGUobW9kZWxTb3VyY2UpOworCisgICAgbV9pbmxpbmVQcmV2
aWV3ID0gYWRvcHROUyhbYWxsb2NBU1ZJbmxpbmVQcmV2aWV3SW5zdGFuY2UoKSBpbml0V2l0aEZy
YW1lOkNHUmVjdE1ha2UoMCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKV0pOworICAg
IExPRyhNb2RlbEVsZW1lbnQsICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6bW9kZWxE
aWRDaGFuZ2UoKSBjcmVhdGVkIHByZXZpZXcgd2l0aCBVVUlEICVzIGFuZCBzaXplICVmIHggJWYu
IiwgKChTdHJpbmcpW21faW5saW5lUHJldmlldyB1dWlkXS5VVUlEU3RyaW5nKS51dGY4KCkuZGF0
YSgpLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpOworCisgICAgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeHBlY3RlZDxzdGQ6OnBhaXI8U3RyaW5nLCB1aW50MzJfdD4sIFdlYkNvcmU6OlJl
c291cmNlRXJyb3I+KT4gY29tcGxldGlvbkhhbmRsZXIgPSBbd2Vha1NlbGYgPSBXZWFrUHRyIHsg
KnRoaXMgfV0gKEV4cGVjdGVkPHN0ZDo6cGFpcjxTdHJpbmcsIHVpbnQzMl90PiwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvcj4gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBzdHJvbmdTZWxm
ID0gd2Vha1NlbGYuZ2V0KCk7CisgICAgICAgIGlmICghc3Ryb25nU2VsZikKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBhdXRvIHN0cm9uZ0NsaWVudCA9IHN0cm9uZ1NlbGYtPmNsaWVu
dCgpOworICAgICAgICBpZiAoIXN0cm9uZ0NsaWVudCkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICAgICAgTE9HKE1vZGVsRWxlbWVudCwgIkFS
S2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjppbmxpbmVQcmV2aWV3RGlkT2J0YWluQ29udGV4
dElkKCkgcmVjZWl2ZWQgZXJyb3IgZnJvbSBVSVByb2Nlc3MiKTsKKyAgICAgICAgICAgIHN0cm9u
Z0NsaWVudC0+ZGlkRmFpbExvYWRpbmcoKnN0cm9uZ1NlbGYsIHJlc3VsdC5lcnJvcigpKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8mIFt1dWlkLCBjb250
ZXh0SWRdID0gKnJlc3VsdDsKKyAgICAgICAgU3RyaW5nIGV4cGVjdGVkVVVJRCA9IFtzdHJvbmdT
ZWxmLT5tX2lubGluZVByZXZpZXcgdXVpZF0uVVVJRFN0cmluZzsKKworICAgICAgICBpZiAodXVp
ZCAhPSBleHBlY3RlZFVVSUQpIHsKKyAgICAgICAgICAgIExPRyhNb2RlbEVsZW1lbnQsICJBUktp
dElubGluZVByZXZpZXdNb2RlbFBsYXllcjo6aW5saW5lUHJldmlld0RpZE9idGFpbkNvbnRleHRJ
ZCgpIFVVSUQgbWlzbWF0Y2gsIHJlY2VpdmVkICVzIGJ1dCBleHBlY3RlZCAlcy4iLCB1dWlkLnV0
ZjgoKS5kYXRhKCksIGV4cGVjdGVkVVVJRC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIHN0
cm9uZ0NsaWVudC0+ZGlkRmFpbExvYWRpbmcoKnN0cm9uZ1NlbGYsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3IgeyBXZWJDb3JlOjplcnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCB7IH0sIG1ha2VT
dHJpbmcoIkFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyOjppbmxpbmVQcmV2aWV3RGlkT2J0
YWluQ29udGV4dElkKCkgVVVJRCBtaXNtYXRjaCwgcmVjZWl2ZWQgIiwgdXVpZCwgIiBidXQgZXhw
ZWN0ZWQgIiwgZXhwZWN0ZWRVVUlELCAiLiIpIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgW3N0cm9uZ1NlbGYtPm1faW5saW5lUHJldmlldyBzZXRSZW1vdGVD
b250ZXh0OmNvbnRleHRJZF07CisgICAgICAgIExPRyhNb2RlbEVsZW1lbnQsICJBUktpdElubGlu
ZVByZXZpZXdNb2RlbFBsYXllcjo6aW5saW5lUHJldmlld0RpZE9idGFpbkNvbnRleHRJZCgpIHN1
Y2Nlc3NmdWxseSBlc3RhYmxpc2hlZCByZW1vdGUgY29ubmVjdGlvbiBmb3IgVVVJRCAlcy4iLCB1
dWlkLnV0ZjgoKS5kYXRhKCkpOworCisgICAgICAgIHN0cm9uZ0NsaWVudC0+ZGlkRmluaXNoTG9h
ZGluZygqc3Ryb25nU2VsZik7CisgICAgfTsKKyAgICAKKyAgICBzdHJvbmdQYWdlLT5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TW9kZWxFbGVtZW50RGlkQ3JlYXRl
UHJldmlldyhVUkw6OmZpbGVVUkxXaXRoRmlsZVN5c3RlbVBhdGgobV9maWxlUGF0aCksIFttX2lu
bGluZVByZXZpZXcgdXVpZF0uVVVJRFN0cmluZywgc2l6ZSksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKK30KKworUGxhdGZvcm1MYXllciogQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXJNYWM6OmxheWVyKCkKK3sKKyAgICByZXR1cm4gW21faW5saW5lUHJldmlldyBsYXllcl07Cit9
CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggNWYwZjYzZTBmYWExN2ZiODgwZjU4ZTZhYmE1YTk2MmExNTU0MzkxMy4uNTcyZjM2ZGQwNzNl
ZGE2MzU4NjdlMTVmZTg4NGQ4Yjg3NDdjMmVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nSGFzaC5oPgogCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXX01BQykKLSNpbmNs
dWRlICJBUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllci5oIgorI2luY2x1ZGUgIkFSS2l0SW5s
aW5lUHJldmlld01vZGVsUGxheWVyTWFjLmgiCiAjZW5kaWYKIAogI2lmICFPUyhXSU5ET1dTKQpA
QCAtNjA1LDcgKzYwNSw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6c2V0V2Vic2l0ZURhdGFTdG9yZVBh
cmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMmJiBwCiAKICNpZiBFTkFCTEUo
QVJLSVRfSU5MSU5FX1BSRVZJRVdfTUFDKQogICAgIGlmICghcGFyYW1ldGVycy5tb2RlbEVsZW1l
bnRDYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIEFSS2l0SW5saW5lUHJldmlld01v
ZGVsUGxheWVyOjpzZXRNb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeShwYXJhbWV0ZXJzLm1vZGVs
RWxlbWVudENhY2hlRGlyZWN0b3J5KTsKKyAgICAgICAgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQ
bGF5ZXJNYWM6OnNldE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KHBhcmFtZXRlcnMubW9kZWxF
bGVtZW50Q2FjaGVEaXJlY3RvcnkpOwogI2VuZGlmCiAKICAgICBzZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>