<?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>235386</bug_id>
          
          <creation_ts>2022-01-19 16:01:23 -0800</creation_ts>
          <short_desc>Add SPI for passing around and getting details about `WebCore::CSSStyleDeclaration` in injected bundle code</short_desc>
          <delta_ts>2022-01-20 19:10:49 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1832271</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-19 16:01:23 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832272</commentid>
    <comment_count>1</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-19 16:01:39 -0800</bug_when>
    <thetext>&lt;rdar://problem/87566737&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832308</commentid>
    <comment_count>2</comment_count>
      <attachid>449538</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-19 18:05:57 -0800</bug_when>
    <thetext>Created attachment 449538
[Patch] WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832531</commentid>
    <comment_count>3</comment_count>
      <attachid>449602</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-20 12:32:34 -0800</bug_when>
    <thetext>Created attachment 449602
[Patch] WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832559</commentid>
    <comment_count>4</comment_count>
      <attachid>449607</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-20 13:43:15 -0800</bug_when>
    <thetext>Created attachment 449607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832591</commentid>
    <comment_count>5</comment_count>
      <attachid>449613</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-20 15:22:06 -0800</bug_when>
    <thetext>Created attachment 449613
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832595</commentid>
    <comment_count>6</comment_count>
      <attachid>449613</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-01-20 15:27:14 -0800</bug_when>
    <thetext>Comment on attachment 449613
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=449613&amp;action=review

&gt; Source/WebKit/WebProcess/WebPage/WebFrame.cpp:725
&gt; +        return 0;

Probably some null type, not 0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832654</commentid>
    <comment_count>7</comment_count>
      <attachid>449630</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-20 19:07:28 -0800</bug_when>
    <thetext>Created attachment 449630
[fast-cq] Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832656</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-20 19:10:44 -0800</bug_when>
    <thetext>Committed r288345 (246251@main): &lt;https://commits.webkit.org/246251@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449630.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449538</attachid>
            <date>2022-01-19 18:05:57 -0800</date>
            <delta_ts>2022-01-20 12:32:31 -0800</delta_ts>
            <desc>[Patch] WIP</desc>
            <filename>bug-235386-20220119190556.patch</filename>
            <type>text/plain</type>
            <size>43259</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYzRlZTg3MmUwYTQ5ZGY1YzRlMzJlZjEwNDM4OTgyYzMxMzg2NzhiZS4uOGFm
YmFkOGMyMGY2MDA3MWNjN2RkZmFkMTMxZjNkMzI4NTg2MzVkZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw2MCBAQAorMjAyMi0wMS0xOSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIFNQSSBmb3IgcGFzc2luZyBhcm91bmQgYW5kIGdldHRpbmcgZGV0YWlscyBh
Ym91dCBgV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbmAgaW4gaW5qZWN0ZWQgYnVuZGxlIGNv
ZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTM4
NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODc1NjY3Mzc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogSW5qZWN0ZWRCdW5kbGUuU2hvdWxk
QXBwbHlTdHlsZQorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5q
ZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xh
cmF0aW9uSGFuZGxlOjpnZXRPckNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVu
ZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTo6Y29yZUNTU1N0eWxlRGVjbGFyYXRpb24pOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlOjpnZXRQcm9wZXJ0eVZhbHVlKTogQWRkZWQuCisgICAgICAgIEV4cG9zZSBhIHdheSB0
byBnZXQgdGhlIHJlbGF0ZWQgYFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb25gIChmb3IgYHRv
SlNgKS4KKyAgICAgICAgQWRkIGEgbWV0aG9kIHRoYXQgcmV0dXJucyB0aGUgc3RyaW5nIHZhbHVl
IGZvciBhIGdpdmVuIHByb3BlcnR5IG5hbWUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVJbnRlcm5h
bC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1tOiBBZGRlZC4K
KyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSBk
ZWFsbG9jXSk6CisgICAgICAgICgrW1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRp
b25IYW5kbGUgY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVdpdGhKU1ZhbHVlOmluQ29udGV4dDpd
KToKKyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRs
ZSBnZXRQcm9wZXJ0eVZhbHVlOl0pOgorICAgICAgICAoLVtXS1dlYlByb2Nlc3NQbHVnSW5DU1NT
dHlsZURlY2xhcmF0aW9uSGFuZGxlIF9jc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxlXSk6CisgICAg
ICAgICgtW1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUgX2FwaU9i
amVjdF0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxl
UHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlR2V0VHlwZUlEKToKKyAgICAgICAg
KFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZUNyZWF0ZSk6CisgICAgICAgIChXS0J1
bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25HZXRQcm9wZXJ0eVZhbHVlKToKKyAgICAgICAgQWRkIE9i
akMgYW5kIEMgU1BJIGZvciBtYW5pcHVsYXRpbmcgYFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRp
b25gIChpbiB0aGUgaW5qZWN0ZWQgYnVuZGxlKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpqc1dyYXBwZXJGb3JXb3JsZCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbToKKyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWUganNDU1NTdHlsZURlY2xhcmF0aW9uZUZvckNTU1N0eWxlRGVjbGFyYXRpb25IYW5k
bGU6aW5Xb3JsZDpdKTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlRnJhbWVHZXRK
YXZhU2NyaXB0V3JhcHBlckZvckNTU1N0eWxlRGVjbGFyYXRpb25Gb3JXb3JsZCk6IEFkZGVkLgor
ICAgICAgICBBZGQgbWV0aG9kcyBmb3IgY29udmVydGluZyBmcm9tIE9iakMgYW5kIEMgU1BJIHdy
YXBwZXJzIG9mIGBXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uYCB0bworICAgICAgICBhIEpT
IHZhbHVlLgorCisgICAgICAgICogU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbToKKyAgICAgICAg
KEFQSTo6T2JqZWN0OjpuZXdPYmplY3QpOgorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgYXV0b21h
dGljIGNvbnZlcnNpb24gb2YgdGhlIGFib3ZlIGZyb20gQyB0byBPYmpDLgorCisgICAgICAgICog
U2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaDoKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAg
ICAgICAqIFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisKIDIwMjItMDEtMTkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5j
b20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBJbWFnZUJ1ZmZlcjo6Y29udmVydFRvTHVtaW5h
bmNlTWFzaygpIGFuZCB0cmFuc2Zvcm1Ub0NvbG9yU3BhY2UoKSBzaG91bGQgbm90IGFjY2VzcyB0
aGUgYmFja2VuZCBpbiBXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0hlYWRl
cnMuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L0hlYWRlcnMuY21ha2UKaW5kZXggNTBkZDFkMWZkOTg2
ZmJiNTRkMTA4YTkyODJkMGVmNzZkYjI4NGJmNy4uN2M3N2QyZWE2NGVhNGQ1NWYwODczNDM4MjM5
MWIwZDU2NTgzNzUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJLaXQvSGVhZGVycy5jbWFrZQpAQCAtMTIyLDYgKzEyMiw4IEBAIHNldChX
ZWJLaXRfUFVCTElDX0ZSQU1FV09SS19IRUFERVJTCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZUFQSUNhc3QuaAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaAogICAgIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmgKKyAgICBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRs
ZS5oCisgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUNTU1N0eWxl
RGVjbGFyYXRpb25IYW5kbGVQcml2YXRlLmgKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmgKICAgICBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5oCiAgICAgV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtTWFjLmNtYWtl
CmluZGV4IDg0YWE4ODI4ZGZjNmEwOTNlMWQ2OGYwNjU4MGZhZWI1ZDcwNGRiYjYuLmUyOTY2ZDUx
M2JiNTgzOWRmMTJiMzIyYWYyZWViMDU0ZWI0ZDY2NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFr
ZQpAQCAtNDkwLDYgKzQ5MCw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9QVUJMSUNfRlJBTUVXT1JL
X0hFQURFUlMKICAgICBVSVByb2Nlc3MvQ29jb2EvV0tTaGFyZVNoZWV0LmgKIAogICAgIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc0J1bmRsZVBhcmFtZXRl
cnMuaAorICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vz
c1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaAogICAgIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkVkaXRpbmdEZWxlZ2F0ZS5oCiAg
ICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0lu
Rm9ybURlbGVnYXRlUHJpdmF0ZS5oCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Q29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL2Mvd3BlL1dlYktpdC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2Mv
d3BlL1dlYktpdC5oCmluZGV4IGNhZjY3ZTFkZWNlNWI3MjdlNDNlYmE3ODBlNzA4MTRmOGZkYjBm
NjMuLmU0YTk0ODcxZGExOWQ1NDI1YTRjOTJkNjlmZDZjZWIzNDRlMGJmZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvYy93cGUvV2ViS2l0LmgKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRl
IDxXZWJLaXQvV0tCdW5kbGUuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVCYWNrRm9yd2Fy
ZExpc3QuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oPgog
I2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUZpbGVIYW5kbGVSZWYuaD4KICNpbmNsdWRlIDxXZWJL
aXQvV0tCdW5kbGVGcmFtZS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUhpdFRlc3RSZXN1
bHQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5t
bSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQppbmRleCAxMzIyOTUy
Y2FkMTBhNWUyMmIwZTIxZDNlOTc4ZDc1ZTE3ZTVlMDI2Li40MjZiMjNlOGQ0Y2ViYTc0Zjk3ZTc1
M2QzOTc0MGVkM2ZjMDQ5OWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2Nv
YS9BUElPYmplY3QubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQVBJT2JqZWN0
Lm1tCkBAIC01OSw2ICs1OSw3IEBACiAjaW1wb3J0ICJXS1VzZXJDb250ZW50Q29udHJvbGxlcklu
dGVybmFsLmgiCiAjaW1wb3J0ICJXS1VzZXJTY3JpcHRJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tX
ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKKyNpbXBv
cnQgIldLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVJbnRlcm5hbC5o
IgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9ydCAi
V0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdEludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dl
YlByb2Nlc3NQbHVnSW5JbnRlcm5hbC5oIgpAQCAtNDIyLDYgKzQyMywxMCBAQCB2b2lkKiBPYmpl
Y3Q6Om5ld09iamVjdChzaXplX3Qgc2l6ZSwgVHlwZSB0eXBlKQogICAgICAgICB3cmFwcGVyID0g
W1dLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQgYWxsb2NdOwogICAgICAgICBicmVhazsK
IAorICAgIGNhc2UgVHlwZTo6QnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZToKKyAgICAg
ICAgd3JhcHBlciA9IFtXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxl
IGFsbG9jXTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIFR5cGU6OkJ1bmRsZU5vZGVIYW5k
bGU6CiAgICAgICAgIHdyYXBwZXIgPSBbV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSBhbGxv
Y107CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNDQ1NzMxMDlhZTMzMjNkNjllMDIy
N2JkN2FhNDE1YTNjYjg3OTNmNi4uYmYyYjk1NjcyNmY0ZmQ5MzI3OWUwMGFjOWZhNTY3ZTJjZWVl
MzVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CkBAIC02NTQsNiArNjU0LDcgQEAgV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmNwcAogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuY3BwCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKK1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmNwcAogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5j
cHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAKIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDExZjBjMjQwNWFjOTQ3NGJlOGY4ZTgwNWZlZWJjOGYx
YmI2OTYwMDIuLjU1MDcyYTE3NWI2NTExMzI4NzIwODQ3NTE1MWJhNmIzMjUxM2JhMjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKQEAgLTYzNSw2ICs2MzUsNyBAQCBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL21hYy9XS0J1bmRsZU1hYy5tbQogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9tYWMvV0tCdW5kbGVQYWdlQmFubmVyTWFjLm1tCiAKIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc0J1bmRsZVBhcmFtZXRlcnMubW0KK1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxl
RGVjbGFyYXRpb25IYW5kbGUubW0KIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29h
L1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0Lm1tCiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLm1tCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0
MWRhNzM3ZTllZWRjNmQ2OTg1ZWJlZTc4ODdmOTY0NzU4YjA5MGI4Li4wOTVlYjVjNDQyODM0Zjg3
ZGZlMjkwMzA5YWExN2FhMWQxZDQwNmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0ODYsOCArMTQ4NiwxMiBAQAogCQk5M0U3OTlE
QzI3NjEyMTA4MDA3NDAwOEEgLyogU3RvcmFnZUFyZWFCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0U3OTlENjI3NjEyMTA4MDA3NDAwOEEgLyog
U3RvcmFnZUFyZWFCYXNlLmggKi87IH07CiAJCTkzRjU0OUI0MUUzMTc0QjcwMDBFNzIzOSAvKiBX
S1NuYXBzaG90Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNGNTQ5QjMxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25m
aWd1cmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9
OwogCQk5NTBGMjg4MDI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBGMjg3RTI1
MjQxNEU5MDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggKi87IH07CisJCTk1MkJD
MEExMjc5N0EzNjgwMDNGM0QyNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk1MkJDMDlFMjc5N0EzNjYwMDNGM0QyNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5D
U1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlSW50ZXJuYWwuaCAqLzsgfTsKKwkJOTUyQkMwQTMyNzk3
QTM2ODAwM0YzRDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5k
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MkJD
MEEwMjc5N0EzNjcwMDNGM0QyNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTU2NTA4MzkyNkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1NQSS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU2NTA4Mzcy
NkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oICovOyB9OwogCQk5NTY1
MDgzQTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1NjUwODM4MjZEODdBMkIw
MEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oICovOyB9OworCQk5NTc5QTc1NzI3
OTdBOUE5MDBBMUE2QTUgLyogV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTc5QTc1NDI3OTdB
OUE4MDBBMUE2QTUgLyogV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTU3OUE3NTgyNzk3
QTlBOTAwQTFBNkE1IC8qIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1NzlBNzU1
Mjc5N0E5QTgwMEExQTZBNSAvKiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQcml2
YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTU5MzY3NUYyNTJFNUUzMTAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1OTM2NzVEMjUyRTVF
MzAwMEQzRjBBMCAvKiBXS1N0eWx1c0RldmljZU9ic2VydmVyLmggKi87IH07CiAJCTk1Qzk0Mzkx
MjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNl
Qm9hcmRTUEkuaCAqLzsgfTsKIAkJOTkwMzZBRTIyM0E5NDlDRjAwMDBCMDZBIC8qIF9XS0luc3Bl
Y3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk5MDM2QUUxMjNBOTQ5Q0UwMDAwQjA2QSAvKiBfV0tJbnNwZWN0
b3JEZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmggKi87IH07CkBAIC01MzY1LDggKzUzNjksMTQgQEAK
IAkJOTNGNTQ5QjUxRTMxNzREQTAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTbmFwc2hvdENvbmZp
Z3VyYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEYyODdFMjUyNDE0
RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gV0tNb3VzZURldmljZU9ic2VydmVyLmg7IHBhdGggPSBpb3MvV0tNb3Vz
ZURldmljZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEYyODdG
MjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHBh
dGggPSBpb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5NTJCQzA5RTI3OTdBMzY2MDAzRjNEMjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luQ1NT
U3R5bGVEZWNsYXJhdGlvbkhhbmRsZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVJbnRl
cm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTJCQzA5RjI3OTdBMzY3MDAz
RjNEMjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJ
bkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTk1MkJDMEEwMjc5N0EzNjcwMDNGM0QyNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHls
ZURlY2xhcmF0aW9uSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
V2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTU2NTA4MzcyNkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFT
ZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZU1lZGlh
U2VydmljZXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTU2NTA4MzgyNkQ4
N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk1NzlBNzUzMjc5N0E5QTcwMEExQTZBNSAvKiBXS0J1bmRsZUNT
U1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTU3OUE3NTQyNzk3QTlBODAwQTFBNkE1IC8qIFdLQnVuZGxl
Q1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTU3OUE3NTUyNzk3QTlBODAwQTFBNkE1IC8qIFdLQnVuZGxlQ1NTU3R5
bGVEZWNsYXJhdGlvbkhhbmRsZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJpdmF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5NTkzNjc1RDI1MkU1RTMwMDBEM0YwQTAgLyogV0tTdHls
dXNEZXZpY2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1N0
eWx1c0RldmljZU9ic2VydmVyLmg7IHBhdGggPSBpb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTkzNjc1RTI1MkU1RTMxMDBEM0YwQTAg
LyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbmFtZSA9IFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW07IHBhdGggPSBpb3MvV0tTdHls
dXNEZXZpY2VPYnNlcnZlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVDOTQz
OTAyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBCYXNlQm9hcmRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTc4ODcsNiArNzg5Nyw5IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxQUEyRTU2NTE4RDc3
NTA4MDAzODE0QkQgLyogV0tXZWJQcm9jZXNzQnVuZGxlUGFyYW1ldGVycy5oICovLAogCQkJCTFB
QTJFNTY0MThENzc1MDgwMDM4MTRCRCAvKiBXS1dlYlByb2Nlc3NCdW5kbGVQYXJhbWV0ZXJzLm1t
ICovLAorCQkJCTk1MkJDMEEwMjc5N0EzNjcwMDNGM0QyNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5D
U1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmggKi8sCisJCQkJOTUyQkMwOUYyNzk3QTM2NzAwM0Yz
RDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUubW0gKi8s
CisJCQkJOTUyQkMwOUUyNzk3QTM2NjAwM0YzRDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGVJbnRlcm5hbC5oICovLAogCQkJCTM3NzUxMjJFMURGMERDOEIw
MDhBMzUxQyAvKiBXS1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGUuaCAqLywKIAkJCQkz
Nzk1Nzg5QjE4QUQ0RjExMDBCOUVEMkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luRm9ybURlbGVnYXRl
UHJpdmF0ZS5oICovLAogCQkJCTFGMDE4MTY5MTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nl
c3NQbHVnSW5GcmFtZS5oICovLApAQCAtMTE0MjAsNiArMTE0MzMsOSBAQAogCQkJCTkzNUVFQjk2
MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oICovLAogCQkJCTkz
NUVFQjk3MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3Bw
ICovLAogCQkJCTkzNUVFQjk4MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJk
TGlzdEl0ZW0uaCAqLywKKwkJCQk5NTc5QTc1MzI3OTdBOUE3MDBBMUE2QTUgLyogV0tCdW5kbGVD
U1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmNwcCAqLywKKwkJCQk5NTc5QTc1NDI3OTdBOUE4MDBB
MUE2QTUgLyogV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmggKi8sCisJCQkJOTU3
OUE3NTUyNzk3QTlBODAwQTFBNkE1IC8qIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRs
ZVByaXZhdGUuaCAqLywKIAkJCQk1MUZBMkQ3NTE1MjEyRTFFMDBDMUJBMEIgLyogV0tCdW5kbGVE
T01XaW5kb3dFeHRlbnNpb24uY3BwICovLAogCQkJCTUxRkEyRDU0MTUyMTExODYwMEMxQkEwQiAv
KiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oICovLAogCQkJCTdDQkI4MTFGMUFBMEY5NzAw
MDZCMTk0MiAvKiBXS0J1bmRsZUZpbGVIYW5kbGVSZWYuaCAqLywKQEAgLTEzNjI5LDYgKzEzNjQ1
LDggQEAKIAkJCQlCQzIwNEVGMDExQzgzRUM4MDA4RjMzNzUgLyogV0tCdW5kbGVBUElDYXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzVFRUI5RjEyNzc2MUFDMDAzMzIyQjggLyogV0tCdW5kbGVC
YWNrRm9yd2FyZExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNUVFQjlCMTI3NzYxN0MwMDMz
MjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTk1NzlBNzU3Mjc5N0E5QTkwMEExQTZBNSAvKiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1NzlBNzU4Mjc5N0E5QTkwMEExQTZBNSAvKiBX
S0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MUVGQzFDRjE1MjRFNjI1MDBDOUE5MzggLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTdDQkI4MTIxMUFBMEY5NzAwMDZCMTk0MiAvKiBXS0J1
bmRsZUZpbGVIYW5kbGVSZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDI1RjE3MTFENkJERTEw
MDE2OUIwRSAvKiBXS0J1bmRsZUZyYW1lLmggaW4gSGVhZGVycyAqLywKQEAgLTEzOTc2LDYgKzEz
OTk0LDggQEAKIAkJCQlCQzhGMkYyQjE2MjczQTJDMDA1RkFDQjUgLyogV0tXZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzhGMkYy
RTE2MjczQUNDMDA1RkFDQjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250
cm9sbGVySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5NTAxNzI0MTYyQTQ1MDQwMDRB
OUQ3MSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJQcml2YXRl
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5NTJCQzBBMzI3OTdBMzY4MDAzRjNEMjUgLyogV0tXZWJQ
cm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTUyQkMwQTEyNzk3QTM2ODAwM0YzRDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxl
RGVjbGFyYXRpb25IYW5kbGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc3NTEyMkYx
REYwREM4QjAwOEEzNTFDIC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkVkaXRpbmdEZWxlZ2F0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzc5NTc4OUMxOEFENEYxOTAwQjlFRDJFIC8qIFdLV2ViUHJvY2Vz
c1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFGNzUwNkIx
MTg1OTE2MzcwMEVDMEZGNyAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0MGEx
NTU0MWFlOTNiNmJjZDg4MTc3MjBmODU3OTUwMjVkN2Q4YWEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaApAQCAtMCwwICsxLDM4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaW1wb3J0IDxG
b3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmg+CisKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKQorQGludGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlIDogTlNPYmplY3QKKworKyAoV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNs
YXJhdGlvbkhhbmRsZSAqKWNzc1N0eWxlRGVjbGFyYXRpb25IYW5kbGVXaXRoSlNWYWx1ZTooSlNW
YWx1ZSAqKXZhbHVlIGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dDsKKworLSAoTlNTdHJp
bmcgKilnZXRQcm9wZXJ0eVZhbHVlOihOU1N0cmluZyAqKXByb3BlcnR5TmFtZTsKKworQGVuZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9D
b2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1tIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nl
c3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwOWRjYWY2
N2Y4NjI5YjM5NDA1YTg5OTA1M2ExZWRkYWNlYWU4YjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vz
c1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUubW0KQEAgLTAsMCArMSw2OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0lu
Q1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZUludGVybmFsLmgiCisKKyNpbXBvcnQgPFdlYkNvcmUv
Q1NTU3R5bGVEZWNsYXJhdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJh
cy5oPgorCitAaW1wbGVtZW50YXRpb24gV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJh
dGlvbkhhbmRsZSB7CisgICAgQVBJOjpPYmplY3RTdG9yYWdlPFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlPiBfY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTsK
K30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFs
bG9jYXRlT25NYWluUnVuTG9vcChXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlLmNsYXNzLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworICAgIF9jc3NTdHlsZURlY2xh
cmF0aW9uSGFuZGxlLT5+SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlKCk7
CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCisrIChXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHls
ZURlY2xhcmF0aW9uSGFuZGxlICopY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVdpdGhKU1ZhbHVl
OihKU1ZhbHVlICopdmFsdWUgaW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0Cit7CisgICAg
SlNDb250ZXh0UmVmIGNvbnRleHRSZWYgPSBbY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdOwor
ICAgIEpTT2JqZWN0UmVmIG9iamVjdFJlZiA9IEpTVmFsdWVUb09iamVjdChjb250ZXh0UmVmLCBb
dmFsdWUgSlNWYWx1ZVJlZl0sIG51bGxwdHIpOworICAgIHJldHVybiB3cmFwcGVyKFdlYktpdDo6
SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOjpnZXRPckNyZWF0ZShjb250
ZXh0UmVmLCBvYmplY3RSZWYpKTsKK30KKworLSAoTlNTdHJpbmcgKilnZXRQcm9wZXJ0eVZhbHVl
OihOU1N0cmluZyAqKXByb3BlcnR5TmFtZQoreworICAgIHJldHVybiBfY3NzU3R5bGVEZWNsYXJh
dGlvbkhhbmRsZS0+Z2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eU5hbWUpOworfQorCistIChXZWJL
aXQ6OkluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSYpX2Nzc1N0eWxlRGVj
bGFyYXRpb25IYW5kbGUKK3sKKyAgICByZXR1cm4gKl9jc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxl
OworfQorCisvLyBNQVJLOiBXS09iamVjdCBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbgorCistIChB
UEk6Ok9iamVjdCYpX2FwaU9iamVjdAoreworICAgIHJldHVybiAqX2Nzc1N0eWxlRGVjbGFyYXRp
b25IYW5kbGU7Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNs
YXJhdGlvbkhhbmRsZUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGVJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4Njc4ODQzNzk0NmQzMWM3YjdjYzA1NmU0Yzcz
NzIzOTZjYzM1MzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFy
YXRpb25IYW5kbGVJbnRlcm5hbC5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5o
PgorCisjaW1wb3J0ICJJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaCIK
KyNpbXBvcnQgIldLT2JqZWN0LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBXcmFwcGVyVHJhaXRzPEluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhh
bmRsZT4geworICAgIHVzaW5nIFdyYXBwZXJDbGFzcyA9IFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGU7Cit9OworCit9CisKK0BpbnRlcmZhY2UgV0tXZWJQcm9jZXNz
UGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSAoKSA8V0tPYmplY3Q+CisKK0Bwcm9wZXJ0
eSAocmVhZG9ubHkpIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFu
ZGxlJiBfY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTsKKworQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nl
c3NQbHVnSW5GcmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oCmluZGV4IDYyZTY3NjA0ZWU2ZDBk
OGY2MDFjNTgyYTM0OGEyMTMyYzY3OTkzNjguLjJjMjQ4MGQ1ZjEzZTAyOTQ0MmIxMGVmYWI0NGFj
NGUzODAyYmY5YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1Bs
dWdJbkZyYW1lLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmg+CiAKIEBjbGFzcyBfV0tGcmFtZUhhbmRsZTsKK0BjbGFzcyBXS1dlYlBy
b2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOwogQGNsYXNzIFdLV2ViUHJvY2Vz
c1BsdWdJbkhpdFRlc3RSZXN1bHQ7CiBAY2xhc3MgV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRs
ZTsKIEBjbGFzcyBXS1dlYlByb2Nlc3NQbHVnSW5SYW5nZUhhbmRsZTsKQEAgLTU4LDYgKzU5LDcg
QEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiAtIChKU0NvbnRl
eHQgKilqc0NvbnRleHRGb3JTZXJ2aWNlV29ya2VyV29ybGQ6KFdLV2ViUHJvY2Vzc1BsdWdJblNj
cmlwdFdvcmxkICopd29ybGQ7CiAtIChXS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0ICop
aGl0VGVzdDooQ0dQb2ludClwb2ludDsKIC0gKFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1
bHQgKiloaXRUZXN0OihDR1BvaW50KXBvaW50IG9wdGlvbnM6KFdLSGl0VGVzdE9wdGlvbnMpb3B0
aW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworLSAoSlNWYWx1
ZSAqKWpzQ1NTU3R5bGVEZWNsYXJhdGlvbmVGb3JDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOihX
S1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlICopY3NzU3R5bGVEZWNs
YXJhdGlvbkhhbmRsZSBpbldvcmxkOihXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCAqKXdv
cmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAtIChKU1ZhbHVlICopanNOb2RlRm9yTm9kZUhhbmRsZTooV0tXZWJQcm9jZXNzUGx1Z0luTm9k
ZUhhbmRsZSAqKW5vZGVIYW5kbGUgaW5Xb3JsZDooV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29y
bGQgKil3b3JsZDsKIC0gKEpTVmFsdWUgKilqc1JhbmdlRm9yUmFuZ2VIYW5kbGU6KFdLV2ViUHJv
Y2Vzc1BsdWdJblJhbmdlSGFuZGxlICopcmFuZ2VIYW5kbGUgaW5Xb3JsZDooV0tXZWJQcm9jZXNz
UGx1Z0luU2NyaXB0V29ybGQgKil3b3JsZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMp
LCBpb3MoMTAuMykpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQ
bHVnSW5GcmFtZS5tbQppbmRleCBjODExZWFkODI5Nzg4MDBmZGUwMGRhZmY1YzJjYzRjNzk0NmE4
YmM2Li42Y2NlMGZjOWQ0MGRkN2ZiYzBiODZmZjg2ZWViZTg5YjAxYWJjODJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2Vi
UHJvY2Vzc1BsdWdJbkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0KQEAgLTI5LDYg
KzI5LDcgQEAKICNpbXBvcnQgIldLTlNBcnJheS5oIgogI2ltcG9ydCAiV0tOU1VSTEV4dHJhcy5o
IgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVySW50
ZXJuYWwuaCIKKyNpbXBvcnQgIldLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3Vs
dEludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlSW50ZXJu
YWwuaCIKICNpbXBvcnQgIldLV2ViUHJvY2Vzc1BsdWdJblJhbmdlSGFuZGxlSW50ZXJuYWwuaCIK
QEAgLTkxLDYgKzkyLDEyIEBAIC0gKFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQgKilo
aXRUZXN0OihDR1BvaW50KXBvaW50IG9wdGlvbnM6KFdLSGl0VGVzdE9wCiAgICAgcmV0dXJuIHdy
YXBwZXIoX2ZyYW1lLT5oaXRUZXN0KFdlYkNvcmU6OkludFBvaW50KHBvaW50KSwgdHlwZXMpKTsK
IH0KIAorLSAoSlNWYWx1ZSAqKWpzQ1NTU3R5bGVEZWNsYXJhdGlvbmVGb3JDU1NTdHlsZURlY2xh
cmF0aW9uSGFuZGxlOihXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxl
ICopY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSBpbldvcmxkOihXS1dlYlByb2Nlc3NQbHVnSW5T
Y3JpcHRXb3JsZCAqKXdvcmxkCit7CisgICAgSlNWYWx1ZVJlZiB2YWx1ZVJlZiA9IF9mcmFtZS0+
anNXcmFwcGVyRm9yV29ybGQoJltjc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxlIF9jc3NTdHlsZURl
Y2xhcmF0aW9uSGFuZGxlXSwgJlt3b3JsZCBfc2NyaXB0V29ybGRdKTsKKyAgICByZXR1cm4gW0pT
VmFsdWUgdmFsdWVXaXRoSlNWYWx1ZVJlZjp2YWx1ZVJlZiBpbkNvbnRleHQ6W3NlbGYganNDb250
ZXh0Rm9yV29ybGQ6d29ybGRdXTsKK30KKwogLSAoSlNWYWx1ZSAqKWpzTm9kZUZvck5vZGVIYW5k
bGU6KFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKilub2RlSGFuZGxlIGluV29ybGQ6KFdL
V2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkICopd29ybGQKIHsKICAgICBKU1ZhbHVlUmVmIHZh
bHVlUmVmID0gX2ZyYW1lLT5qc1dyYXBwZXJGb3JXb3JsZCgmW25vZGVIYW5kbGUgX25vZGVIYW5k
bGVdLCAmW3dvcmxkIF9zY3JpcHRXb3JsZF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlv
bkhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNmJi
OTdkNDcwNjcxZDg5NDdlODEyMWMxNGZiZmNmMTVkODZhNTI1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQ1NT
U3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5jcHAKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRp
b25IYW5kbGUuaCIKKyNpbmNsdWRlICJXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQ
cml2YXRlLmgiCisKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGUuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS0J1bmRsZUFQSUNh
c3QuaCIKKworV0tUeXBlSUQgV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlR2V0VHlw
ZUlEKCkKK3sKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0FQSShXZWJLaXQ6OkluamVjdGVkQnVuZGxl
Q1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTo6QVBJVHlwZSk7Cit9CisKK1dLQnVuZGxlQ1NTU3R5
bGVEZWNsYXJhdGlvblJlZiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVDcmVhdGUo
SlNDb250ZXh0UmVmIGNvbnRleHRSZWYsIEpTT2JqZWN0UmVmIG9iamVjdFJlZikKK3sKKyAgICBS
ZWZQdHI8V2ViS2l0OjpJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGU+IGNz
c1N0eWxlRGVjbGFyYXRpb25IYW5kbGUgPSBXZWJLaXQ6OkluamVjdGVkQnVuZGxlQ1NTU3R5bGVE
ZWNsYXJhdGlvbkhhbmRsZTo6Z2V0T3JDcmVhdGUoY29udGV4dFJlZiwgb2JqZWN0UmVmKTsKKyAg
ICByZXR1cm4gdG9BUEkoY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5sZWFrUmVmKCkpOworfQor
CitXS1N0cmluZ1JlZiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25HZXRQcm9wZXJ0eVZhbHVl
KFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZiBjc3NTdHlsZURlY2xhcmF0aW9uUmVmLCBX
S1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWVSZWYpCit7CisgICAgcmV0dXJuIFdlYktpdDo6dG9Db3Bp
ZWRBUEkoV2ViS2l0Ojp0b0ltcGwoY3NzU3R5bGVEZWNsYXJhdGlvblJlZiktPmdldFByb3BlcnR5
VmFsdWUoV2ViS2l0Ojp0b1dURlN0cmluZyhwcm9wZXJ0eU5hbWVSZWYpKSk7Cit9CisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yNWY0NjZiMDc3MTMwZDA4MTkxMDFjMGIxNjhmM2QyYTdjNjVmM2ZjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oCkBAIC0wLDAgKzEsNDEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRs
ZV9oCisjZGVmaW5lIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZV9oCisKKyNpbmNs
dWRlIDxXZWJLaXQvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7
CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlv
bkhhbmRsZUdldFR5cGVJRCgpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisj
ZW5kaWYgLyogV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlX2ggKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFu
ZGxlUHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3Y2YyNGFkZWYxYTJhNjQ5ZDFiOTM3ZjlkMTMwZTFk
ODQxYzQ5YWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJpdmF0
ZS5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQnVuZGxlQ1NTU3R5
bGVEZWNsYXJhdGlvbkhhbmRsZVByaXZhdGVfaAorI2RlZmluZSBXS0J1bmRsZUNTU1N0eWxlRGVj
bGFyYXRpb25IYW5kbGVQcml2YXRlX2gKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1
cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLQnVuZGxlQ1NTU3R5bGVEZWNs
YXJhdGlvblJlZiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVDcmVhdGUoSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIG9iamVjdCk7CisKK1dLX0VYUE9SVCBXS1N0cmlu
Z1JlZiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25HZXRQcm9wZXJ0eVZhbHVlKFdLQnVuZGxl
Q1NTU3R5bGVEZWNsYXJhdGlvblJlZiBjc3NTdHlsZURlY2xhcmF0aW9uLCBXS1N0cmluZ1JlZiBw
cm9wZXJ0eU5hbWUpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYg
LyogV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJpdmF0ZV9oICovCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVGcmFtZS5jcHAKaW5kZXggMmM1OGU5Y2FhZDUxMzUwNTYzMWYwM2IwNmIxYzk0
MWQwOWZiZTgxZi4uYzdiYTQ1NGU4NmE3NmMyNmQ3ZmUwODFmNDA5MmNmMmM2YjE0Mzg4ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVk
ZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJBUElTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUg
IkluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oIgogI2luY2x1ZGUgIklu
amVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9k
ZUhhbmRsZS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCIKQEAgLTEw
OSw2ICsxMTAsMTEgQEAgSlNHbG9iYWxDb250ZXh0UmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2Ny
aXB0Q29udGV4dEZvcldvcmxkKFdLQnVuZGxlRnJhbWVSZWYgZnIKICAgICByZXR1cm4gV2ViS2l0
Ojp0b0ltcGwoZnJhbWVSZWYpLT5qc0NvbnRleHRGb3JXb3JsZChXZWJLaXQ6OnRvSW1wbCh3b3Js
ZFJlZikpOwogfQogCitKU1ZhbHVlUmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhcHBl
ckZvckNTU1N0eWxlRGVjbGFyYXRpb25Gb3JXb3JsZChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lUmVm
LCBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWYgY3NzU3R5bGVEZWNsYXJhdGlvblJlZiwg
V0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZFJlZikKK3sKKyAgICByZXR1cm4gV2ViS2l0Ojp0
b0ltcGwoZnJhbWVSZWYpLT5qc1dyYXBwZXJGb3JXb3JsZChXZWJLaXQ6OnRvSW1wbChjc3NTdHls
ZURlY2xhcmF0aW9uUmVmKSwgV2ViS2l0Ojp0b0ltcGwod29ybGRSZWYpKTsKK30KKwogSlNWYWx1
ZVJlZiBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdFdyYXBwZXJGb3JOb2RlRm9yV29ybGQoV0tC
dW5kbGVGcmFtZVJlZiBmcmFtZVJlZiwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIG5vZGVIYW5kbGVS
ZWYsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGRSZWYpCiB7CiAgICAgcmV0dXJuIFdlYktp
dDo6dG9JbXBsKGZyYW1lUmVmKS0+anNXcmFwcGVyRm9yV29ybGQoV2ViS2l0Ojp0b0ltcGwobm9k
ZUhhbmRsZVJlZiksIFdlYktpdDo6dG9JbXBsKHdvcmxkUmVmKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
RnJhbWUuaAppbmRleCAwYTBiMWM0ZDg3YTFlN2YyMmM4NmM5MmVkM2NlYTVmNjlkMGRjZDZkLi4x
MjZiMjU3YzFkZmUzMzI2ZjE4ZTRkYzY1ZDA2ZTJmNGEwMjIyYWNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUZyYW1lLmgKQEAgLTU0LDYgKzU0LDcgQEAgV0tfRVhQT1JUIEpTR2xvYmFsQ29udGV4dFJl
ZiBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRleHRGb3JXb3JsZChXS0J1bmRsZUYKIAog
V0tfRVhQT1JUIFdLQnVuZGxlRnJhbWVSZWYgV0tCdW5kbGVGcmFtZUZvckphdmFTY3JpcHRDb250
ZXh0KEpTQ29udGV4dFJlZiBjb250ZXh0KTsKIAorV0tfRVhQT1JUIEpTVmFsdWVSZWYgV0tCdW5k
bGVGcmFtZUdldEphdmFTY3JpcHRXcmFwcGVyRm9yQ1NTU3R5bGVEZWNsYXJhdGlvbkZvcldvcmxk
KFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZiBj
c3NTdHlsZURlY2xhcmF0aW9uLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkKTsKIFdLX0VY
UE9SVCBKU1ZhbHVlUmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhcHBlckZvck5vZGVG
b3JXb3JsZChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgbm9k
ZUhhbmRsZSwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZCk7CiBXS19FWFBPUlQgSlNWYWx1
ZVJlZiBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdFdyYXBwZXJGb3JSYW5nZUZvcldvcmxkKFdL
QnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2VIYW5kbGUs
IFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGQpOwogV0tfRVhQT1JUIEpTVmFsdWVSZWYgV0tC
dW5kbGVGcmFtZUdldEphdmFTY3JpcHRXcmFwcGVyRm9yRmlsZUZvcldvcmxkKFdLQnVuZGxlRnJh
bWVSZWYgZnJhbWUsIFdLQnVuZGxlRmlsZUhhbmRsZVJlZiBmaWxlSGFuZGxlLCBXS0J1bmRsZVNj
cmlwdFdvcmxkUmVmIHdvcmxkKSBXS19DX0FQSV9ERVBSRUNBVEVEOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUNT
U1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUu
Y3BwCmluZGV4IDk2NTBiYjMzN2FlYWZjNTNiMWU5OTdhMGEwYWViOWZkNTZjYjU3YWUuLmNlMDI5
NjE0ZDdiYWZmMGU1NDc2ODUwY2JiOGUzOGI5ZmVjMGZhYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVDU1NTdHls
ZURlY2xhcmF0aW9uSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5j
cHAKQEAgLTI2LDcgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbmpl
Y3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaCIKIAorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0FQSUNhc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NTU1N0eWxlRGVjbGFyYXRp
b24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbi5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKQEAg
LTQxLDYgKzQzLDEyIEBAIHN0YXRpYyBET01TdHlsZURlY2xhcmF0aW9uSGFuZGxlQ2FjaGUmIGRv
bVN0eWxlRGVjbGFyYXRpb25IYW5kbGVDYWNoZSgpCiAgICAgcmV0dXJuIGNhY2hlOwogfQogCitS
ZWZQdHI8SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlPiBJbmplY3RlZEJ1
bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGU6OmdldE9yQ3JlYXRlKEpTQ29udGV4dFJlZiwg
SlNPYmplY3RSZWYgb2JqZWN0KQoreworICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIGNzc1N0eWxl
RGVjbGFyYXRpb24gPSBKU0NTU1N0eWxlRGVjbGFyYXRpb246OnRvV3JhcHBlZCh0b0pTKG9iamVj
dCktPnZtKCksIHRvSlMob2JqZWN0KSk7CisgICAgcmV0dXJuIGdldE9yQ3JlYXRlKGNzc1N0eWxl
RGVjbGFyYXRpb24pOworfQorCiBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlPiBJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGU6OmdldE9y
Q3JlYXRlKENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlRGVjbGFyYXRpb24pCiB7CiAgICAgaWYg
KCFzdHlsZURlY2xhcmF0aW9uKQpAQCAtNjUsNCArNzMsMTQgQEAgSW5qZWN0ZWRCdW5kbGVDU1NT
dHlsZURlY2xhcmF0aW9uSGFuZGxlOjp+SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGwKICAgICBkb21TdHlsZURlY2xhcmF0aW9uSGFuZGxlQ2FjaGUoKS5yZW1vdmUobV9zdHls
ZURlY2xhcmF0aW9uLnB0cigpKTsKIH0KIAorQ1NTU3R5bGVEZWNsYXJhdGlvbiogSW5qZWN0ZWRC
dW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOjpjb3JlQ1NTU3R5bGVEZWNsYXJhdGlvbigp
Cit7CisgICAgcmV0dXJuIG1fc3R5bGVEZWNsYXJhdGlvbi5wdHIoKTsKK30KKworU3RyaW5nIElu
amVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTo6Z2V0UHJvcGVydHlWYWx1ZShj
b25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkKK3sKKyAgICByZXR1cm4gbV9zdHlsZURlY2xhcmF0
aW9uLT5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5TmFtZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVDU1NT
dHlsZURlY2xhcmF0aW9uSGFuZGxlLmgKaW5kZXggOTVkOTIwY2FiYzI4YzdmNTk0OTk3ZWQ5NjI2
NWI1OWRlMzgyMTk3Mi4uZDkzYTA5MmNiMWRjZWIxOTA0YTZmNDczNTJiY2FmODMyNjcxMjVlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9J
bmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlQ1NTU3R5bGVE
ZWNsYXJhdGlvbkhhbmRsZS5oCkBAIC0yNyw4ICsyNywxMCBAQAogI2RlZmluZSBJbmplY3RlZEJ1
bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0Lmgi
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKQEAg
LTM4LDkgKzQwLDE0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBJbmplY3RlZEJ1bmRs
ZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6
T2JqZWN0OjpUeXBlOjpCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlPiB7CiBwdWJsaWM6
CisgICAgc3RhdGljIFJlZlB0cjxJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5k
bGU+IGdldE9yQ3JlYXRlKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYpOwogICAgIHN0YXRpYyBS
ZWZQdHI8SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlPiBnZXRPckNyZWF0
ZShXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uKik7CiAgICAgdmlydHVhbCB+SW5qZWN0ZWRC
dW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlKCk7CiAKKyAgICBXZWJDb3JlOjpDU1NTdHls
ZURlY2xhcmF0aW9uKiBjb3JlQ1NTU3R5bGVEZWNsYXJhdGlvbigpOworCisgICAgU3RyaW5nIGdl
dFByb3BlcnR5VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpOworCiBwcml2YXRlOgog
ICAgIEluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZShXZWJDb3JlOjpDU1NT
dHlsZURlY2xhcmF0aW9uJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmNwcAppbmRleCBjZDY0YzRhMDI0Zjk5ODMyM2FhZjVmZTU2YmVhZTQwOTYwZmVh
NmY2Li44MjgyNTBjNjU0ODE0Y2MyM2U0M2M3YmYwYTk5YWFlNzFmODAxODJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIK
ICNpbmNsdWRlICJGcmFtZUluZm9EYXRhLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVDU1NT
dHlsZURlY2xhcmF0aW9uSGFuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVIaXRUZXN0
UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgiCiAjaW5jbHVk
ZSAiSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oIgpAQCAtNzE4LDYgKzcxOSwxNyBAQCBXZWJG
cmFtZSogV2ViRnJhbWU6OmZyYW1lRm9yQ29udGV4dChKU0NvbnRleHRSZWYgY29udGV4dCkKICAg
ICByZXR1cm4gY29yZUZyYW1lID8gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmNvcmVGcmFtZSkg
OiBudWxscHRyOwogfQogCitKU1ZhbHVlUmVmIFdlYkZyYW1lOjpqc1dyYXBwZXJGb3JXb3JsZChJ
bmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUqIGNzc1N0eWxlRGVjbGFyYXRp
b25IYW5kbGUsIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqIHdvcmxkKQoreworICAgIGlmICgh
bV9jb3JlRnJhbWUpCisgICAgICAgIHJldHVybiAwOworCisgICAgSlNET01XaW5kb3cqIGdsb2Jh
bE9iamVjdCA9IG1fY29yZUZyYW1lLT5zY3JpcHQoKS5nbG9iYWxPYmplY3Qod29ybGQtPmNvcmVX
b3JsZCgpKTsKKworICAgIEpTTG9ja0hvbGRlciBsb2NrKGdsb2JhbE9iamVjdCk7CisgICAgcmV0
dXJuIHRvUmVmKGdsb2JhbE9iamVjdCwgdG9KUyhnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwg
Y3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS0+Y29yZUNTU1N0eWxlRGVjbGFyYXRpb24oKSkpOwor
fQorCiBKU1ZhbHVlUmVmIFdlYkZyYW1lOjpqc1dyYXBwZXJGb3JXb3JsZChJbmplY3RlZEJ1bmRs
ZU5vZGVIYW5kbGUqIG5vZGVIYW5kbGUsIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqIHdvcmxk
KQogewogICAgIGlmICghbV9jb3JlRnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViRnJhbWUuaAppbmRleCA1NzI2NmU0ZDU0MDczZTA4OTgzYzlmM2RhZmNkOTQ5MzJh
NzkyZjA1Li4xMDRjNmRiYTE4OTg1NWU4YzkzMjNkYmY2ZTg1OGJjNzY3NjczMzI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKQEAgLTU4LDYgKzU4LDcg
QEAgY2xhc3MgSW50UmVjdDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIEluamVjdGVk
QnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTsKIGNsYXNzIEluamVjdGVkQnVuZGxlSGl0
VGVzdFJlc3VsdDsKIGNsYXNzIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTsKIGNsYXNzIEluamVj
dGVkQnVuZGxlUmFuZ2VIYW5kbGU7CkBAIC0xNDYsNiArMTQ3LDcgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIFdlYkZyYW1lKiBmcmFtZUZvckNvbnRleHQoSlNDb250ZXh0UmVmKTsKIAorICAgIEpT
VmFsdWVSZWYganNXcmFwcGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlKiwgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCopOwogICAgIEpTVmFsdWVSZWYg
anNXcmFwcGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlKiwgSW5qZWN0ZWRCdW5k
bGVTY3JpcHRXb3JsZCopOwogICAgIEpTVmFsdWVSZWYganNXcmFwcGVyRm9yV29ybGQoSW5qZWN0
ZWRCdW5kbGVSYW5nZUhhbmRsZSosIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449602</attachid>
            <date>2022-01-20 12:32:34 -0800</date>
            <delta_ts>2022-01-20 14:29:13 -0800</delta_ts>
            <desc>[Patch] WIP</desc>
            <filename>bug-235386-20220120133233.patch</filename>
            <type>text/plain</type>
            <size>43898</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYzRlZTg3MmUwYTQ5ZGY1YzRlMzJlZjEwNDM4OTgyYzMxMzg2NzhiZS4uOGFm
YmFkOGMyMGY2MDA3MWNjN2RkZmFkMTMxZjNkMzI4NTg2MzVkZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw2MCBAQAorMjAyMi0wMS0xOSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIFNQSSBmb3IgcGFzc2luZyBhcm91bmQgYW5kIGdldHRpbmcgZGV0YWlscyBh
Ym91dCBgV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbmAgaW4gaW5qZWN0ZWQgYnVuZGxlIGNv
ZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTM4
NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODc1NjY3Mzc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogSW5qZWN0ZWRCdW5kbGUuU2hvdWxk
QXBwbHlTdHlsZQorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5q
ZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xh
cmF0aW9uSGFuZGxlOjpnZXRPckNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVu
ZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTo6Y29yZUNTU1N0eWxlRGVjbGFyYXRpb24pOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlOjpnZXRQcm9wZXJ0eVZhbHVlKTogQWRkZWQuCisgICAgICAgIEV4cG9zZSBhIHdheSB0
byBnZXQgdGhlIHJlbGF0ZWQgYFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb25gIChmb3IgYHRv
SlNgKS4KKyAgICAgICAgQWRkIGEgbWV0aG9kIHRoYXQgcmV0dXJucyB0aGUgc3RyaW5nIHZhbHVl
IGZvciBhIGdpdmVuIHByb3BlcnR5IG5hbWUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVJbnRlcm5h
bC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1tOiBBZGRlZC4K
KyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSBk
ZWFsbG9jXSk6CisgICAgICAgICgrW1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRp
b25IYW5kbGUgY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVdpdGhKU1ZhbHVlOmluQ29udGV4dDpd
KToKKyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRs
ZSBnZXRQcm9wZXJ0eVZhbHVlOl0pOgorICAgICAgICAoLVtXS1dlYlByb2Nlc3NQbHVnSW5DU1NT
dHlsZURlY2xhcmF0aW9uSGFuZGxlIF9jc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxlXSk6CisgICAg
ICAgICgtW1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUgX2FwaU9i
amVjdF0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxl
UHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlR2V0VHlwZUlEKToKKyAgICAgICAg
KFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZUNyZWF0ZSk6CisgICAgICAgIChXS0J1
bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25HZXRQcm9wZXJ0eVZhbHVlKToKKyAgICAgICAgQWRkIE9i
akMgYW5kIEMgU1BJIGZvciBtYW5pcHVsYXRpbmcgYFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRp
b25gIChpbiB0aGUgaW5qZWN0ZWQgYnVuZGxlKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpqc1dyYXBwZXJGb3JXb3JsZCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbToKKyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWUganNDU1NTdHlsZURlY2xhcmF0aW9uZUZvckNTU1N0eWxlRGVjbGFyYXRpb25IYW5k
bGU6aW5Xb3JsZDpdKTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlRnJhbWVHZXRK
YXZhU2NyaXB0V3JhcHBlckZvckNTU1N0eWxlRGVjbGFyYXRpb25Gb3JXb3JsZCk6IEFkZGVkLgor
ICAgICAgICBBZGQgbWV0aG9kcyBmb3IgY29udmVydGluZyBmcm9tIE9iakMgYW5kIEMgU1BJIHdy
YXBwZXJzIG9mIGBXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uYCB0bworICAgICAgICBhIEpT
IHZhbHVlLgorCisgICAgICAgICogU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbToKKyAgICAgICAg
KEFQSTo6T2JqZWN0OjpuZXdPYmplY3QpOgorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgYXV0b21h
dGljIGNvbnZlcnNpb24gb2YgdGhlIGFib3ZlIGZyb20gQyB0byBPYmpDLgorCisgICAgICAgICog
U2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaDoKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAg
ICAgICAqIFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisKIDIwMjItMDEtMTkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5j
b20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBJbWFnZUJ1ZmZlcjo6Y29udmVydFRvTHVtaW5h
bmNlTWFzaygpIGFuZCB0cmFuc2Zvcm1Ub0NvbG9yU3BhY2UoKSBzaG91bGQgbm90IGFjY2VzcyB0
aGUgYmFja2VuZCBpbiBXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0hlYWRl
cnMuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L0hlYWRlcnMuY21ha2UKaW5kZXggNTBkZDFkMWZkOTg2
ZmJiNTRkMTA4YTkyODJkMGVmNzZkYjI4NGJmNy4uN2M3N2QyZWE2NGVhNGQ1NWYwODczNDM4MjM5
MWIwZDU2NTgzNzUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJLaXQvSGVhZGVycy5jbWFrZQpAQCAtMTIyLDYgKzEyMiw4IEBAIHNldChX
ZWJLaXRfUFVCTElDX0ZSQU1FV09SS19IRUFERVJTCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZUFQSUNhc3QuaAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaAogICAgIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmgKKyAgICBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRs
ZS5oCisgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUNTU1N0eWxl
RGVjbGFyYXRpb25IYW5kbGVQcml2YXRlLmgKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmgKICAgICBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5oCiAgICAgV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtTWFjLmNtYWtl
CmluZGV4IDg0YWE4ODI4ZGZjNmEwOTNlMWQ2OGYwNjU4MGZhZWI1ZDcwNGRiYjYuLmUyOTY2ZDUx
M2JiNTgzOWRmMTJiMzIyYWYyZWViMDU0ZWI0ZDY2NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFr
ZQpAQCAtNDkwLDYgKzQ5MCw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9QVUJMSUNfRlJBTUVXT1JL
X0hFQURFUlMKICAgICBVSVByb2Nlc3MvQ29jb2EvV0tTaGFyZVNoZWV0LmgKIAogICAgIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc0J1bmRsZVBhcmFtZXRl
cnMuaAorICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vz
c1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaAogICAgIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkVkaXRpbmdEZWxlZ2F0ZS5oCiAg
ICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0lu
Rm9ybURlbGVnYXRlUHJpdmF0ZS5oCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Q29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL2Mvd3BlL1dlYktpdC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2Mv
d3BlL1dlYktpdC5oCmluZGV4IGNhZjY3ZTFkZWNlNWI3MjdlNDNlYmE3ODBlNzA4MTRmOGZkYjBm
NjMuLmU0YTk0ODcxZGExOWQ1NDI1YTRjOTJkNjlmZDZjZWIzNDRlMGJmZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvYy93cGUvV2ViS2l0LmgKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRl
IDxXZWJLaXQvV0tCdW5kbGUuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVCYWNrRm9yd2Fy
ZExpc3QuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oPgog
I2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUZpbGVIYW5kbGVSZWYuaD4KICNpbmNsdWRlIDxXZWJL
aXQvV0tCdW5kbGVGcmFtZS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUhpdFRlc3RSZXN1
bHQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5t
bSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQppbmRleCAxMzIyOTUy
Y2FkMTBhNWUyMmIwZTIxZDNlOTc4ZDc1ZTE3ZTVlMDI2Li40MjZiMjNlOGQ0Y2ViYTc0Zjk3ZTc1
M2QzOTc0MGVkM2ZjMDQ5OWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2Nv
YS9BUElPYmplY3QubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQVBJT2JqZWN0
Lm1tCkBAIC01OSw2ICs1OSw3IEBACiAjaW1wb3J0ICJXS1VzZXJDb250ZW50Q29udHJvbGxlcklu
dGVybmFsLmgiCiAjaW1wb3J0ICJXS1VzZXJTY3JpcHRJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tX
ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKKyNpbXBv
cnQgIldLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVJbnRlcm5hbC5o
IgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9ydCAi
V0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdEludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dl
YlByb2Nlc3NQbHVnSW5JbnRlcm5hbC5oIgpAQCAtNDIyLDYgKzQyMywxMCBAQCB2b2lkKiBPYmpl
Y3Q6Om5ld09iamVjdChzaXplX3Qgc2l6ZSwgVHlwZSB0eXBlKQogICAgICAgICB3cmFwcGVyID0g
W1dLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQgYWxsb2NdOwogICAgICAgICBicmVhazsK
IAorICAgIGNhc2UgVHlwZTo6QnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZToKKyAgICAg
ICAgd3JhcHBlciA9IFtXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxl
IGFsbG9jXTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIFR5cGU6OkJ1bmRsZU5vZGVIYW5k
bGU6CiAgICAgICAgIHdyYXBwZXIgPSBbV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSBhbGxv
Y107CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4
dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNDQ1NzMxMDlhZTMzMjNkNjllMDIy
N2JkN2FhNDE1YTNjYjg3OTNmNi4uYmYyYjk1NjcyNmY0ZmQ5MzI3OWUwMGFjOWZhNTY3ZTJjZWVl
MzVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CkBAIC02NTQsNiArNjU0LDcgQEAgV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmNwcAogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuY3BwCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKK1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmNwcAogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5j
cHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAKIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDExZjBjMjQwNWFjOTQ3NGJlOGY4ZTgwNWZlZWJjOGYx
YmI2OTYwMDIuLjU1MDcyYTE3NWI2NTExMzI4NzIwODQ3NTE1MWJhNmIzMjUxM2JhMjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKQEAgLTYzNSw2ICs2MzUsNyBAQCBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL21hYy9XS0J1bmRsZU1hYy5tbQogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9tYWMvV0tCdW5kbGVQYWdlQmFubmVyTWFjLm1tCiAKIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc0J1bmRsZVBhcmFtZXRlcnMubW0KK1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxl
RGVjbGFyYXRpb25IYW5kbGUubW0KIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29h
L1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0Lm1tCiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLm1tCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0
MWRhNzM3ZTllZWRjNmQ2OTg1ZWJlZTc4ODdmOTY0NzU4YjA5MGI4Li4wOTVlYjVjNDQyODM0Zjg3
ZGZlMjkwMzA5YWExN2FhMWQxZDQwNmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0ODYsOCArMTQ4NiwxMiBAQAogCQk5M0U3OTlE
QzI3NjEyMTA4MDA3NDAwOEEgLyogU3RvcmFnZUFyZWFCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0U3OTlENjI3NjEyMTA4MDA3NDAwOEEgLyog
U3RvcmFnZUFyZWFCYXNlLmggKi87IH07CiAJCTkzRjU0OUI0MUUzMTc0QjcwMDBFNzIzOSAvKiBX
S1NuYXBzaG90Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNGNTQ5QjMxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25m
aWd1cmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9
OwogCQk5NTBGMjg4MDI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBGMjg3RTI1
MjQxNEU5MDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggKi87IH07CisJCTk1MkJD
MEExMjc5N0EzNjgwMDNGM0QyNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk1MkJDMDlFMjc5N0EzNjYwMDNGM0QyNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5D
U1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlSW50ZXJuYWwuaCAqLzsgfTsKKwkJOTUyQkMwQTMyNzk3
QTM2ODAwM0YzRDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5k
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MkJD
MEEwMjc5N0EzNjcwMDNGM0QyNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTU2NTA4MzkyNkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1NQSS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU2NTA4Mzcy
NkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oICovOyB9OwogCQk5NTY1
MDgzQTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1NjUwODM4MjZEODdBMkIw
MEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oICovOyB9OworCQk5NTc5QTc1NzI3
OTdBOUE5MDBBMUE2QTUgLyogV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTc5QTc1NDI3OTdB
OUE4MDBBMUE2QTUgLyogV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTU3OUE3NTgyNzk3
QTlBOTAwQTFBNkE1IC8qIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1NzlBNzU1
Mjc5N0E5QTgwMEExQTZBNSAvKiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQcml2
YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTU5MzY3NUYyNTJFNUUzMTAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1OTM2NzVEMjUyRTVF
MzAwMEQzRjBBMCAvKiBXS1N0eWx1c0RldmljZU9ic2VydmVyLmggKi87IH07CiAJCTk1Qzk0Mzkx
MjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNl
Qm9hcmRTUEkuaCAqLzsgfTsKIAkJOTkwMzZBRTIyM0E5NDlDRjAwMDBCMDZBIC8qIF9XS0luc3Bl
Y3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk5MDM2QUUxMjNBOTQ5Q0UwMDAwQjA2QSAvKiBfV0tJbnNwZWN0
b3JEZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmggKi87IH07CkBAIC01MzY1LDggKzUzNjksMTQgQEAK
IAkJOTNGNTQ5QjUxRTMxNzREQTAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTbmFwc2hvdENvbmZp
Z3VyYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEYyODdFMjUyNDE0
RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gV0tNb3VzZURldmljZU9ic2VydmVyLmg7IHBhdGggPSBpb3MvV0tNb3Vz
ZURldmljZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEYyODdG
MjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHBh
dGggPSBpb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5NTJCQzA5RTI3OTdBMzY2MDAzRjNEMjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luQ1NT
U3R5bGVEZWNsYXJhdGlvbkhhbmRsZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVJbnRl
cm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTJCQzA5RjI3OTdBMzY3MDAz
RjNEMjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJ
bkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTk1MkJDMEEwMjc5N0EzNjcwMDNGM0QyNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHls
ZURlY2xhcmF0aW9uSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
V2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTU2NTA4MzcyNkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFT
ZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZU1lZGlh
U2VydmljZXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTU2NTA4MzgyNkQ4
N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk1NzlBNzUzMjc5N0E5QTcwMEExQTZBNSAvKiBXS0J1bmRsZUNT
U1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTU3OUE3NTQyNzk3QTlBODAwQTFBNkE1IC8qIFdLQnVuZGxl
Q1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTU3OUE3NTUyNzk3QTlBODAwQTFBNkE1IC8qIFdLQnVuZGxlQ1NTU3R5
bGVEZWNsYXJhdGlvbkhhbmRsZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJpdmF0ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5NTkzNjc1RDI1MkU1RTMwMDBEM0YwQTAgLyogV0tTdHls
dXNEZXZpY2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1N0
eWx1c0RldmljZU9ic2VydmVyLmg7IHBhdGggPSBpb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTkzNjc1RTI1MkU1RTMxMDBEM0YwQTAg
LyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbmFtZSA9IFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW07IHBhdGggPSBpb3MvV0tTdHls
dXNEZXZpY2VPYnNlcnZlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVDOTQz
OTAyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBCYXNlQm9hcmRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTc4ODcsNiArNzg5Nyw5IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxQUEyRTU2NTE4RDc3
NTA4MDAzODE0QkQgLyogV0tXZWJQcm9jZXNzQnVuZGxlUGFyYW1ldGVycy5oICovLAogCQkJCTFB
QTJFNTY0MThENzc1MDgwMDM4MTRCRCAvKiBXS1dlYlByb2Nlc3NCdW5kbGVQYXJhbWV0ZXJzLm1t
ICovLAorCQkJCTk1MkJDMEEwMjc5N0EzNjcwMDNGM0QyNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5D
U1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmggKi8sCisJCQkJOTUyQkMwOUYyNzk3QTM2NzAwM0Yz
RDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUubW0gKi8s
CisJCQkJOTUyQkMwOUUyNzk3QTM2NjAwM0YzRDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGVJbnRlcm5hbC5oICovLAogCQkJCTM3NzUxMjJFMURGMERDOEIw
MDhBMzUxQyAvKiBXS1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGUuaCAqLywKIAkJCQkz
Nzk1Nzg5QjE4QUQ0RjExMDBCOUVEMkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luRm9ybURlbGVnYXRl
UHJpdmF0ZS5oICovLAogCQkJCTFGMDE4MTY5MTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nl
c3NQbHVnSW5GcmFtZS5oICovLApAQCAtMTE0MjAsNiArMTE0MzMsOSBAQAogCQkJCTkzNUVFQjk2
MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oICovLAogCQkJCTkz
NUVFQjk3MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3Bw
ICovLAogCQkJCTkzNUVFQjk4MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJk
TGlzdEl0ZW0uaCAqLywKKwkJCQk5NTc5QTc1MzI3OTdBOUE3MDBBMUE2QTUgLyogV0tCdW5kbGVD
U1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmNwcCAqLywKKwkJCQk5NTc5QTc1NDI3OTdBOUE4MDBB
MUE2QTUgLyogV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmggKi8sCisJCQkJOTU3
OUE3NTUyNzk3QTlBODAwQTFBNkE1IC8qIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRs
ZVByaXZhdGUuaCAqLywKIAkJCQk1MUZBMkQ3NTE1MjEyRTFFMDBDMUJBMEIgLyogV0tCdW5kbGVE
T01XaW5kb3dFeHRlbnNpb24uY3BwICovLAogCQkJCTUxRkEyRDU0MTUyMTExODYwMEMxQkEwQiAv
KiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oICovLAogCQkJCTdDQkI4MTFGMUFBMEY5NzAw
MDZCMTk0MiAvKiBXS0J1bmRsZUZpbGVIYW5kbGVSZWYuaCAqLywKQEAgLTEzNjI5LDYgKzEzNjQ1
LDggQEAKIAkJCQlCQzIwNEVGMDExQzgzRUM4MDA4RjMzNzUgLyogV0tCdW5kbGVBUElDYXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzVFRUI5RjEyNzc2MUFDMDAzMzIyQjggLyogV0tCdW5kbGVC
YWNrRm9yd2FyZExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNUVFQjlCMTI3NzYxN0MwMDMz
MjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTk1NzlBNzU3Mjc5N0E5QTkwMEExQTZBNSAvKiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1NzlBNzU4Mjc5N0E5QTkwMEExQTZBNSAvKiBX
S0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MUVGQzFDRjE1MjRFNjI1MDBDOUE5MzggLyogV0tCdW5kbGVET01XaW5kb3dFeHRlbnNp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTdDQkI4MTIxMUFBMEY5NzAwMDZCMTk0MiAvKiBXS0J1
bmRsZUZpbGVIYW5kbGVSZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDI1RjE3MTFENkJERTEw
MDE2OUIwRSAvKiBXS0J1bmRsZUZyYW1lLmggaW4gSGVhZGVycyAqLywKQEAgLTEzOTc2LDYgKzEz
OTk0LDggQEAKIAkJCQlCQzhGMkYyQjE2MjczQTJDMDA1RkFDQjUgLyogV0tXZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzhGMkYy
RTE2MjczQUNDMDA1RkFDQjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250
cm9sbGVySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5NTAxNzI0MTYyQTQ1MDQwMDRB
OUQ3MSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJQcml2YXRl
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5NTJCQzBBMzI3OTdBMzY4MDAzRjNEMjUgLyogV0tXZWJQ
cm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTUyQkMwQTEyNzk3QTM2ODAwM0YzRDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxl
RGVjbGFyYXRpb25IYW5kbGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc3NTEyMkYx
REYwREM4QjAwOEEzNTFDIC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkVkaXRpbmdEZWxlZ2F0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzc5NTc4OUMxOEFENEYxOTAwQjlFRDJFIC8qIFdLV2ViUHJvY2Vz
c1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFGNzUwNkIx
MTg1OTE2MzcwMEVDMEZGNyAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0MGEx
NTU0MWFlOTNiNmJjZDg4MTc3MjBmODU3OTUwMjVkN2Q4YWEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaApAQCAtMCwwICsxLDM4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaW1wb3J0IDxG
b3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmg+CisKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKQorQGludGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlIDogTlNPYmplY3QKKworKyAoV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNs
YXJhdGlvbkhhbmRsZSAqKWNzc1N0eWxlRGVjbGFyYXRpb25IYW5kbGVXaXRoSlNWYWx1ZTooSlNW
YWx1ZSAqKXZhbHVlIGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dDsKKworLSAoTlNTdHJp
bmcgKilnZXRQcm9wZXJ0eVZhbHVlOihOU1N0cmluZyAqKXByb3BlcnR5TmFtZTsKKworQGVuZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9D
b2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1tIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nl
c3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwOWRjYWY2
N2Y4NjI5YjM5NDA1YTg5OTA1M2ExZWRkYWNlYWU4YjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vz
c1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUubW0KQEAgLTAsMCArMSw2OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0lu
Q1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZUludGVybmFsLmgiCisKKyNpbXBvcnQgPFdlYkNvcmUv
Q1NTU3R5bGVEZWNsYXJhdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJh
cy5oPgorCitAaW1wbGVtZW50YXRpb24gV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJh
dGlvbkhhbmRsZSB7CisgICAgQVBJOjpPYmplY3RTdG9yYWdlPFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlPiBfY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTsK
K30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFs
bG9jYXRlT25NYWluUnVuTG9vcChXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlLmNsYXNzLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworICAgIF9jc3NTdHlsZURlY2xh
cmF0aW9uSGFuZGxlLT5+SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlKCk7
CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCisrIChXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHls
ZURlY2xhcmF0aW9uSGFuZGxlICopY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVdpdGhKU1ZhbHVl
OihKU1ZhbHVlICopdmFsdWUgaW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0Cit7CisgICAg
SlNDb250ZXh0UmVmIGNvbnRleHRSZWYgPSBbY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdOwor
ICAgIEpTT2JqZWN0UmVmIG9iamVjdFJlZiA9IEpTVmFsdWVUb09iamVjdChjb250ZXh0UmVmLCBb
dmFsdWUgSlNWYWx1ZVJlZl0sIG51bGxwdHIpOworICAgIHJldHVybiB3cmFwcGVyKFdlYktpdDo6
SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOjpnZXRPckNyZWF0ZShjb250
ZXh0UmVmLCBvYmplY3RSZWYpKTsKK30KKworLSAoTlNTdHJpbmcgKilnZXRQcm9wZXJ0eVZhbHVl
OihOU1N0cmluZyAqKXByb3BlcnR5TmFtZQoreworICAgIHJldHVybiBfY3NzU3R5bGVEZWNsYXJh
dGlvbkhhbmRsZS0+Z2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eU5hbWUpOworfQorCistIChXZWJL
aXQ6OkluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSYpX2Nzc1N0eWxlRGVj
bGFyYXRpb25IYW5kbGUKK3sKKyAgICByZXR1cm4gKl9jc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxl
OworfQorCisvLyBNQVJLOiBXS09iamVjdCBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbgorCistIChB
UEk6Ok9iamVjdCYpX2FwaU9iamVjdAoreworICAgIHJldHVybiAqX2Nzc1N0eWxlRGVjbGFyYXRp
b25IYW5kbGU7Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNs
YXJhdGlvbkhhbmRsZUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGVJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4Njc4ODQzNzk0NmQzMWM3YjdjYzA1NmU0Yzcz
NzIzOTZjYzM1MzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFy
YXRpb25IYW5kbGVJbnRlcm5hbC5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5o
PgorCisjaW1wb3J0ICJJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaCIK
KyNpbXBvcnQgIldLT2JqZWN0LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBXcmFwcGVyVHJhaXRzPEluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhh
bmRsZT4geworICAgIHVzaW5nIFdyYXBwZXJDbGFzcyA9IFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGU7Cit9OworCit9CisKK0BpbnRlcmZhY2UgV0tXZWJQcm9jZXNz
UGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSAoKSA8V0tPYmplY3Q+CisKK0Bwcm9wZXJ0
eSAocmVhZG9ubHkpIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFu
ZGxlJiBfY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTsKKworQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nl
c3NQbHVnSW5GcmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oCmluZGV4IDYyZTY3NjA0ZWU2ZDBk
OGY2MDFjNTgyYTM0OGEyMTMyYzY3OTkzNjguLjJjMjQ4MGQ1ZjEzZTAyOTQ0MmIxMGVmYWI0NGFj
NGUzODAyYmY5YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1Bs
dWdJbkZyYW1lLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmg+CiAKIEBjbGFzcyBfV0tGcmFtZUhhbmRsZTsKK0BjbGFzcyBXS1dlYlBy
b2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOwogQGNsYXNzIFdLV2ViUHJvY2Vz
c1BsdWdJbkhpdFRlc3RSZXN1bHQ7CiBAY2xhc3MgV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRs
ZTsKIEBjbGFzcyBXS1dlYlByb2Nlc3NQbHVnSW5SYW5nZUhhbmRsZTsKQEAgLTU4LDYgKzU5LDcg
QEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiAtIChKU0NvbnRl
eHQgKilqc0NvbnRleHRGb3JTZXJ2aWNlV29ya2VyV29ybGQ6KFdLV2ViUHJvY2Vzc1BsdWdJblNj
cmlwdFdvcmxkICopd29ybGQ7CiAtIChXS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0ICop
aGl0VGVzdDooQ0dQb2ludClwb2ludDsKIC0gKFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1
bHQgKiloaXRUZXN0OihDR1BvaW50KXBvaW50IG9wdGlvbnM6KFdLSGl0VGVzdE9wdGlvbnMpb3B0
aW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworLSAoSlNWYWx1
ZSAqKWpzQ1NTU3R5bGVEZWNsYXJhdGlvbmVGb3JDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOihX
S1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlICopY3NzU3R5bGVEZWNs
YXJhdGlvbkhhbmRsZSBpbldvcmxkOihXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCAqKXdv
cmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAtIChKU1ZhbHVlICopanNOb2RlRm9yTm9kZUhhbmRsZTooV0tXZWJQcm9jZXNzUGx1Z0luTm9k
ZUhhbmRsZSAqKW5vZGVIYW5kbGUgaW5Xb3JsZDooV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29y
bGQgKil3b3JsZDsKIC0gKEpTVmFsdWUgKilqc1JhbmdlRm9yUmFuZ2VIYW5kbGU6KFdLV2ViUHJv
Y2Vzc1BsdWdJblJhbmdlSGFuZGxlICopcmFuZ2VIYW5kbGUgaW5Xb3JsZDooV0tXZWJQcm9jZXNz
UGx1Z0luU2NyaXB0V29ybGQgKil3b3JsZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMp
LCBpb3MoMTAuMykpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQ
bHVnSW5GcmFtZS5tbQppbmRleCBjODExZWFkODI5Nzg4MDBmZGUwMGRhZmY1YzJjYzRjNzk0NmE4
YmM2Li42Y2NlMGZjOWQ0MGRkN2ZiYzBiODZmZjg2ZWViZTg5YjAxYWJjODJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2Vi
UHJvY2Vzc1BsdWdJbkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0KQEAgLTI5LDYg
KzI5LDcgQEAKICNpbXBvcnQgIldLTlNBcnJheS5oIgogI2ltcG9ydCAiV0tOU1VSTEV4dHJhcy5o
IgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVySW50
ZXJuYWwuaCIKKyNpbXBvcnQgIldLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3Vs
dEludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlSW50ZXJu
YWwuaCIKICNpbXBvcnQgIldLV2ViUHJvY2Vzc1BsdWdJblJhbmdlSGFuZGxlSW50ZXJuYWwuaCIK
QEAgLTkxLDYgKzkyLDEyIEBAIC0gKFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQgKilo
aXRUZXN0OihDR1BvaW50KXBvaW50IG9wdGlvbnM6KFdLSGl0VGVzdE9wCiAgICAgcmV0dXJuIHdy
YXBwZXIoX2ZyYW1lLT5oaXRUZXN0KFdlYkNvcmU6OkludFBvaW50KHBvaW50KSwgdHlwZXMpKTsK
IH0KIAorLSAoSlNWYWx1ZSAqKWpzQ1NTU3R5bGVEZWNsYXJhdGlvbmVGb3JDU1NTdHlsZURlY2xh
cmF0aW9uSGFuZGxlOihXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxl
ICopY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSBpbldvcmxkOihXS1dlYlByb2Nlc3NQbHVnSW5T
Y3JpcHRXb3JsZCAqKXdvcmxkCit7CisgICAgSlNWYWx1ZVJlZiB2YWx1ZVJlZiA9IF9mcmFtZS0+
anNXcmFwcGVyRm9yV29ybGQoJltjc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxlIF9jc3NTdHlsZURl
Y2xhcmF0aW9uSGFuZGxlXSwgJlt3b3JsZCBfc2NyaXB0V29ybGRdKTsKKyAgICByZXR1cm4gW0pT
VmFsdWUgdmFsdWVXaXRoSlNWYWx1ZVJlZjp2YWx1ZVJlZiBpbkNvbnRleHQ6W3NlbGYganNDb250
ZXh0Rm9yV29ybGQ6d29ybGRdXTsKK30KKwogLSAoSlNWYWx1ZSAqKWpzTm9kZUZvck5vZGVIYW5k
bGU6KFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKilub2RlSGFuZGxlIGluV29ybGQ6KFdL
V2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkICopd29ybGQKIHsKICAgICBKU1ZhbHVlUmVmIHZh
bHVlUmVmID0gX2ZyYW1lLT5qc1dyYXBwZXJGb3JXb3JsZCgmW25vZGVIYW5kbGUgX25vZGVIYW5k
bGVdLCAmW3dvcmxkIF9zY3JpcHRXb3JsZF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlv
bkhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNmJi
OTdkNDcwNjcxZDg5NDdlODEyMWMxNGZiZmNmMTVkODZhNTI1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQ1NT
U3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5jcHAKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRp
b25IYW5kbGUuaCIKKyNpbmNsdWRlICJXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQ
cml2YXRlLmgiCisKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGUuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS0J1bmRsZUFQSUNh
c3QuaCIKKworV0tUeXBlSUQgV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlR2V0VHlw
ZUlEKCkKK3sKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0FQSShXZWJLaXQ6OkluamVjdGVkQnVuZGxl
Q1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTo6QVBJVHlwZSk7Cit9CisKK1dLQnVuZGxlQ1NTU3R5
bGVEZWNsYXJhdGlvblJlZiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVDcmVhdGUo
SlNDb250ZXh0UmVmIGNvbnRleHRSZWYsIEpTT2JqZWN0UmVmIG9iamVjdFJlZikKK3sKKyAgICBS
ZWZQdHI8V2ViS2l0OjpJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGU+IGNz
c1N0eWxlRGVjbGFyYXRpb25IYW5kbGUgPSBXZWJLaXQ6OkluamVjdGVkQnVuZGxlQ1NTU3R5bGVE
ZWNsYXJhdGlvbkhhbmRsZTo6Z2V0T3JDcmVhdGUoY29udGV4dFJlZiwgb2JqZWN0UmVmKTsKKyAg
ICByZXR1cm4gdG9BUEkoY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5sZWFrUmVmKCkpOworfQor
CitXS1N0cmluZ1JlZiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25HZXRQcm9wZXJ0eVZhbHVl
KFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZiBjc3NTdHlsZURlY2xhcmF0aW9uUmVmLCBX
S1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWVSZWYpCit7CisgICAgcmV0dXJuIFdlYktpdDo6dG9Db3Bp
ZWRBUEkoV2ViS2l0Ojp0b0ltcGwoY3NzU3R5bGVEZWNsYXJhdGlvblJlZiktPmdldFByb3BlcnR5
VmFsdWUoV2ViS2l0Ojp0b1dURlN0cmluZyhwcm9wZXJ0eU5hbWVSZWYpKSk7Cit9CisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yNWY0NjZiMDc3MTMwZDA4MTkxMDFjMGIxNjhmM2QyYTdjNjVmM2ZjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oCkBAIC0wLDAgKzEsNDEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRs
ZV9oCisjZGVmaW5lIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZV9oCisKKyNpbmNs
dWRlIDxXZWJLaXQvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7
CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlv
bkhhbmRsZUdldFR5cGVJRCgpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisj
ZW5kaWYgLyogV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlX2ggKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFu
ZGxlUHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3Y2YyNGFkZWYxYTJhNjQ5ZDFiOTM3ZjlkMTMwZTFk
ODQxYzQ5YWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJpdmF0
ZS5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQnVuZGxlQ1NTU3R5
bGVEZWNsYXJhdGlvbkhhbmRsZVByaXZhdGVfaAorI2RlZmluZSBXS0J1bmRsZUNTU1N0eWxlRGVj
bGFyYXRpb25IYW5kbGVQcml2YXRlX2gKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1
cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLQnVuZGxlQ1NTU3R5bGVEZWNs
YXJhdGlvblJlZiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVDcmVhdGUoSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIG9iamVjdCk7CisKK1dLX0VYUE9SVCBXS1N0cmlu
Z1JlZiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25HZXRQcm9wZXJ0eVZhbHVlKFdLQnVuZGxl
Q1NTU3R5bGVEZWNsYXJhdGlvblJlZiBjc3NTdHlsZURlY2xhcmF0aW9uLCBXS1N0cmluZ1JlZiBw
cm9wZXJ0eU5hbWUpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYg
LyogV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJpdmF0ZV9oICovCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVGcmFtZS5jcHAKaW5kZXggMmM1OGU5Y2FhZDUxMzUwNTYzMWYwM2IwNmIxYzk0
MWQwOWZiZTgxZi4uYzdiYTQ1NGU4NmE3NmMyNmQ3ZmUwODFmNDA5MmNmMmM2YjE0Mzg4ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVk
ZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJBUElTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUg
IkluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oIgogI2luY2x1ZGUgIklu
amVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9k
ZUhhbmRsZS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCIKQEAgLTEw
OSw2ICsxMTAsMTEgQEAgSlNHbG9iYWxDb250ZXh0UmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2Ny
aXB0Q29udGV4dEZvcldvcmxkKFdLQnVuZGxlRnJhbWVSZWYgZnIKICAgICByZXR1cm4gV2ViS2l0
Ojp0b0ltcGwoZnJhbWVSZWYpLT5qc0NvbnRleHRGb3JXb3JsZChXZWJLaXQ6OnRvSW1wbCh3b3Js
ZFJlZikpOwogfQogCitKU1ZhbHVlUmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhcHBl
ckZvckNTU1N0eWxlRGVjbGFyYXRpb25Gb3JXb3JsZChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lUmVm
LCBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWYgY3NzU3R5bGVEZWNsYXJhdGlvblJlZiwg
V0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZFJlZikKK3sKKyAgICByZXR1cm4gV2ViS2l0Ojp0
b0ltcGwoZnJhbWVSZWYpLT5qc1dyYXBwZXJGb3JXb3JsZChXZWJLaXQ6OnRvSW1wbChjc3NTdHls
ZURlY2xhcmF0aW9uUmVmKSwgV2ViS2l0Ojp0b0ltcGwod29ybGRSZWYpKTsKK30KKwogSlNWYWx1
ZVJlZiBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdFdyYXBwZXJGb3JOb2RlRm9yV29ybGQoV0tC
dW5kbGVGcmFtZVJlZiBmcmFtZVJlZiwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIG5vZGVIYW5kbGVS
ZWYsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGRSZWYpCiB7CiAgICAgcmV0dXJuIFdlYktp
dDo6dG9JbXBsKGZyYW1lUmVmKS0+anNXcmFwcGVyRm9yV29ybGQoV2ViS2l0Ojp0b0ltcGwobm9k
ZUhhbmRsZVJlZiksIFdlYktpdDo6dG9JbXBsKHdvcmxkUmVmKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
RnJhbWUuaAppbmRleCAwYTBiMWM0ZDg3YTFlN2YyMmM4NmM5MmVkM2NlYTVmNjlkMGRjZDZkLi4x
MjZiMjU3YzFkZmUzMzI2ZjE4ZTRkYzY1ZDA2ZTJmNGEwMjIyYWNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUZyYW1lLmgKQEAgLTU0LDYgKzU0LDcgQEAgV0tfRVhQT1JUIEpTR2xvYmFsQ29udGV4dFJl
ZiBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRleHRGb3JXb3JsZChXS0J1bmRsZUYKIAog
V0tfRVhQT1JUIFdLQnVuZGxlRnJhbWVSZWYgV0tCdW5kbGVGcmFtZUZvckphdmFTY3JpcHRDb250
ZXh0KEpTQ29udGV4dFJlZiBjb250ZXh0KTsKIAorV0tfRVhQT1JUIEpTVmFsdWVSZWYgV0tCdW5k
bGVGcmFtZUdldEphdmFTY3JpcHRXcmFwcGVyRm9yQ1NTU3R5bGVEZWNsYXJhdGlvbkZvcldvcmxk
KFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZiBj
c3NTdHlsZURlY2xhcmF0aW9uLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkKTsKIFdLX0VY
UE9SVCBKU1ZhbHVlUmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhcHBlckZvck5vZGVG
b3JXb3JsZChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgbm9k
ZUhhbmRsZSwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZCk7CiBXS19FWFBPUlQgSlNWYWx1
ZVJlZiBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdFdyYXBwZXJGb3JSYW5nZUZvcldvcmxkKFdL
QnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2VIYW5kbGUs
IFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGQpOwogV0tfRVhQT1JUIEpTVmFsdWVSZWYgV0tC
dW5kbGVGcmFtZUdldEphdmFTY3JpcHRXcmFwcGVyRm9yRmlsZUZvcldvcmxkKFdLQnVuZGxlRnJh
bWVSZWYgZnJhbWUsIFdLQnVuZGxlRmlsZUhhbmRsZVJlZiBmaWxlSGFuZGxlLCBXS0J1bmRsZVNj
cmlwdFdvcmxkUmVmIHdvcmxkKSBXS19DX0FQSV9ERVBSRUNBVEVEOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUNT
U1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUu
Y3BwCmluZGV4IDk2NTBiYjMzN2FlYWZjNTNiMWU5OTdhMGEwYWViOWZkNTZjYjU3YWUuLmNlMDI5
NjE0ZDdiYWZmMGU1NDc2ODUwY2JiOGUzOGI5ZmVjMGZhYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVDU1NTdHls
ZURlY2xhcmF0aW9uSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5j
cHAKQEAgLTI2LDcgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbmpl
Y3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaCIKIAorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0FQSUNhc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NTU1N0eWxlRGVjbGFyYXRp
b24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbi5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKQEAg
LTQxLDYgKzQzLDEyIEBAIHN0YXRpYyBET01TdHlsZURlY2xhcmF0aW9uSGFuZGxlQ2FjaGUmIGRv
bVN0eWxlRGVjbGFyYXRpb25IYW5kbGVDYWNoZSgpCiAgICAgcmV0dXJuIGNhY2hlOwogfQogCitS
ZWZQdHI8SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlPiBJbmplY3RlZEJ1
bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGU6OmdldE9yQ3JlYXRlKEpTQ29udGV4dFJlZiwg
SlNPYmplY3RSZWYgb2JqZWN0KQoreworICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIGNzc1N0eWxl
RGVjbGFyYXRpb24gPSBKU0NTU1N0eWxlRGVjbGFyYXRpb246OnRvV3JhcHBlZCh0b0pTKG9iamVj
dCktPnZtKCksIHRvSlMob2JqZWN0KSk7CisgICAgcmV0dXJuIGdldE9yQ3JlYXRlKGNzc1N0eWxl
RGVjbGFyYXRpb24pOworfQorCiBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlPiBJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGU6OmdldE9y
Q3JlYXRlKENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlRGVjbGFyYXRpb24pCiB7CiAgICAgaWYg
KCFzdHlsZURlY2xhcmF0aW9uKQpAQCAtNjUsNCArNzMsMTQgQEAgSW5qZWN0ZWRCdW5kbGVDU1NT
dHlsZURlY2xhcmF0aW9uSGFuZGxlOjp+SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGwKICAgICBkb21TdHlsZURlY2xhcmF0aW9uSGFuZGxlQ2FjaGUoKS5yZW1vdmUobV9zdHls
ZURlY2xhcmF0aW9uLnB0cigpKTsKIH0KIAorQ1NTU3R5bGVEZWNsYXJhdGlvbiogSW5qZWN0ZWRC
dW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOjpjb3JlQ1NTU3R5bGVEZWNsYXJhdGlvbigp
Cit7CisgICAgcmV0dXJuIG1fc3R5bGVEZWNsYXJhdGlvbi5wdHIoKTsKK30KKworU3RyaW5nIElu
amVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTo6Z2V0UHJvcGVydHlWYWx1ZShj
b25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkKK3sKKyAgICByZXR1cm4gbV9zdHlsZURlY2xhcmF0
aW9uLT5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5TmFtZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVDU1NT
dHlsZURlY2xhcmF0aW9uSGFuZGxlLmgKaW5kZXggOTVkOTIwY2FiYzI4YzdmNTk0OTk3ZWQ5NjI2
NWI1OWRlMzgyMTk3Mi4uZDkzYTA5MmNiMWRjZWIxOTA0YTZmNDczNTJiY2FmODMyNjcxMjVlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9J
bmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlQ1NTU3R5bGVE
ZWNsYXJhdGlvbkhhbmRsZS5oCkBAIC0yNyw4ICsyNywxMCBAQAogI2RlZmluZSBJbmplY3RlZEJ1
bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0Lmgi
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKQEAg
LTM4LDkgKzQwLDE0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBJbmplY3RlZEJ1bmRs
ZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6
T2JqZWN0OjpUeXBlOjpCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlPiB7CiBwdWJsaWM6
CisgICAgc3RhdGljIFJlZlB0cjxJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5k
bGU+IGdldE9yQ3JlYXRlKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYpOwogICAgIHN0YXRpYyBS
ZWZQdHI8SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlPiBnZXRPckNyZWF0
ZShXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uKik7CiAgICAgdmlydHVhbCB+SW5qZWN0ZWRC
dW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlKCk7CiAKKyAgICBXZWJDb3JlOjpDU1NTdHls
ZURlY2xhcmF0aW9uKiBjb3JlQ1NTU3R5bGVEZWNsYXJhdGlvbigpOworCisgICAgU3RyaW5nIGdl
dFByb3BlcnR5VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpOworCiBwcml2YXRlOgog
ICAgIEluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZShXZWJDb3JlOjpDU1NT
dHlsZURlY2xhcmF0aW9uJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmNwcAppbmRleCBjZDY0YzRhMDI0Zjk5ODMyM2FhZjVmZTU2YmVhZTQwOTYwZmVh
NmY2Li44MjgyNTBjNjU0ODE0Y2MyM2U0M2M3YmYwYTk5YWFlNzFmODAxODJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIK
ICNpbmNsdWRlICJGcmFtZUluZm9EYXRhLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVDU1NT
dHlsZURlY2xhcmF0aW9uSGFuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVIaXRUZXN0
UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgiCiAjaW5jbHVk
ZSAiSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oIgpAQCAtNzE4LDYgKzcxOSwxNyBAQCBXZWJG
cmFtZSogV2ViRnJhbWU6OmZyYW1lRm9yQ29udGV4dChKU0NvbnRleHRSZWYgY29udGV4dCkKICAg
ICByZXR1cm4gY29yZUZyYW1lID8gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmNvcmVGcmFtZSkg
OiBudWxscHRyOwogfQogCitKU1ZhbHVlUmVmIFdlYkZyYW1lOjpqc1dyYXBwZXJGb3JXb3JsZChJ
bmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUqIGNzc1N0eWxlRGVjbGFyYXRp
b25IYW5kbGUsIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqIHdvcmxkKQoreworICAgIGlmICgh
bV9jb3JlRnJhbWUpCisgICAgICAgIHJldHVybiAwOworCisgICAgSlNET01XaW5kb3cqIGdsb2Jh
bE9iamVjdCA9IG1fY29yZUZyYW1lLT5zY3JpcHQoKS5nbG9iYWxPYmplY3Qod29ybGQtPmNvcmVX
b3JsZCgpKTsKKworICAgIEpTTG9ja0hvbGRlciBsb2NrKGdsb2JhbE9iamVjdCk7CisgICAgcmV0
dXJuIHRvUmVmKGdsb2JhbE9iamVjdCwgdG9KUyhnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwg
Y3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS0+Y29yZUNTU1N0eWxlRGVjbGFyYXRpb24oKSkpOwor
fQorCiBKU1ZhbHVlUmVmIFdlYkZyYW1lOjpqc1dyYXBwZXJGb3JXb3JsZChJbmplY3RlZEJ1bmRs
ZU5vZGVIYW5kbGUqIG5vZGVIYW5kbGUsIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqIHdvcmxk
KQogewogICAgIGlmICghbV9jb3JlRnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViRnJhbWUuaAppbmRleCA1NzI2NmU0ZDU0MDczZTA4OTgzYzlmM2RhZmNkOTQ5MzJh
NzkyZjA1Li4xMDRjNmRiYTE4OTg1NWU4YzkzMjNkYmY2ZTg1OGJjNzY3NjczMzI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKQEAgLTU4LDYgKzU4LDcg
QEAgY2xhc3MgSW50UmVjdDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIEluamVjdGVk
QnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTsKIGNsYXNzIEluamVjdGVkQnVuZGxlSGl0
VGVzdFJlc3VsdDsKIGNsYXNzIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTsKIGNsYXNzIEluamVj
dGVkQnVuZGxlUmFuZ2VIYW5kbGU7CkBAIC0xNDYsNiArMTQ3LDcgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIFdlYkZyYW1lKiBmcmFtZUZvckNvbnRleHQoSlNDb250ZXh0UmVmKTsKIAorICAgIEpT
VmFsdWVSZWYganNXcmFwcGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlKiwgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCopOwogICAgIEpTVmFsdWVSZWYg
anNXcmFwcGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlKiwgSW5qZWN0ZWRCdW5k
bGVTY3JpcHRXb3JsZCopOwogICAgIEpTVmFsdWVSZWYganNXcmFwcGVyRm9yV29ybGQoSW5qZWN0
ZWRCdW5kbGVSYW5nZUhhbmRsZSosIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5k
ZXggZmJkZWVmNGMwZjZkZGI3YWMzMzg0ZTc4ODM0MDViNDY0MjlkY2Y2Ni4uMDdjZjBlODA5NDI1
ODYxMDZkODM0MGJiYWYwMmU0OWMzZDFiMTNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC03NSw2ICs3NSw3IEBACiAjaW1w
b3J0IDxXZWJDb3JlL1BlcmZvcm1hbmNlTG9nZ2luZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QaWN0
dXJlSW5QaWN0dXJlU3VwcG9ydC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbXBv
cnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvU1dDb250ZXh0TWFu
YWdlci5oPgo=
</data>
<flag name="commit-queue"
          id="475747"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449607</attachid>
            <date>2022-01-20 13:43:15 -0800</date>
            <delta_ts>2022-01-20 15:22:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235386-20220120144314.patch</filename>
            <type>text/plain</type>
            <size>66396</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYzRlZTg3MmUwYTQ5ZGY1YzRlMzJlZjEwNDM4OTgyYzMxMzg2NzhiZS4uNGJm
MmM1MGEwYWY0NGQxZDlmZTliNjg5OWQzMDkwZWIzMzYwYmIzYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw2MyBAQAorMjAyMi0wMS0yMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIFNQSSBmb3IgcGFzc2luZyBhcm91bmQgYW5kIGdldHRpbmcgZGV0YWlscyBh
Ym91dCBgV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbmAgaW4gaW5qZWN0ZWQgYnVuZGxlIGNv
ZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTM4
NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODc1NjY3Mzc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogV2ViS2l0LldLV2ViUHJvY2Vzc1Bs
dWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUKKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxl
Q1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVk
QnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTo6Z2V0T3JDcmVhdGUpOgorICAgICAgICAo
V2ViS2l0OjpJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGU6OmNvcmVDU1NT
dHlsZURlY2xhcmF0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxl
Q1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTo6Z2V0UHJvcGVydHlWYWx1ZSk6IEFkZGVkLgorICAg
ICAgICBFeHBvc2UgYSB3YXkgdG8gZ2V0IHRoZSByZWxhdGVkIGBXZWJDb3JlOjpDU1NTdHlsZURl
Y2xhcmF0aW9uYCAoZm9yIGB0b0pTYCkuCisgICAgICAgIEFkZCBhIG1ldGhvZCB0aGF0IHJldHVy
bnMgdGhlIHN0cmluZyB2YWx1ZSBmb3IgYSBnaXZlbiBwcm9wZXJ0eSBuYW1lLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0lu
Q1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xh
cmF0aW9uSGFuZGxlSW50ZXJuYWwuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlv
bkhhbmRsZS5tbTogQWRkZWQuCisgICAgICAgICgtW1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxl
RGVjbGFyYXRpb25IYW5kbGUgZGVhbGxvY10pOgorICAgICAgICAoK1tXS1dlYlByb2Nlc3NQbHVn
SW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlIGNzc1N0eWxlRGVjbGFyYXRpb25IYW5kbGVXaXRo
SlNWYWx1ZTppbkNvbnRleHQ6XSk6CisgICAgICAgICgtW1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGUgZ2V0UHJvcGVydHlWYWx1ZTpdKToKKyAgICAgICAgKC1bV0tX
ZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSBfY3NzU3R5bGVEZWNsYXJh
dGlvbkhhbmRsZV0pOgorICAgICAgICAoLVtXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xh
cmF0aW9uSGFuZGxlIF9hcGlPYmplY3RdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQ1NTU3R5
bGVEZWNsYXJhdGlvbkhhbmRsZVByaXZhdGUuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZUdl
dFR5cGVJRCk6CisgICAgICAgIChXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVDcmVh
dGUpOgorICAgICAgICAoV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uR2V0UHJvcGVydHlWYWx1
ZSk6CisgICAgICAgIEFkZCBPYmpDIGFuZCBDIFNQSSBmb3IgbWFuaXB1bGF0aW5nIGBXZWJDb3Jl
OjpDU1NTdHlsZURlY2xhcmF0aW9uYCAoaW4gdGhlIGluamVjdGVkIGJ1bmRsZSkuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6anNXcmFw
cGVyRm9yV29ybGQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0Nv
Y29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW06CisgICAgICAg
ICgtW1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lIGpzQ1NTU3R5bGVEZWNsYXJhdGlvbkZvckNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGU6aW5Xb3JsZDpdKTogQWRkZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcDoKKyAgICAgICAg
KFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhcHBlckZvckNTU1N0eWxlRGVjbGFyYXRpb25G
b3JXb3JsZCk6IEFkZGVkLgorICAgICAgICBBZGQgbWV0aG9kcyBmb3IgY29udmVydGluZyBmcm9t
IE9iakMgYW5kIEMgU1BJIHdyYXBwZXJzIG9mIGBXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9u
YCB0bworICAgICAgICBhIEpTIHZhbHVlLgorCisgICAgICAgICogU2hhcmVkL0NvY29hL0FQSU9i
amVjdC5tbToKKyAgICAgICAgKEFQSTo6T2JqZWN0OjpuZXdPYmplY3QpOgorICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgYXV0b21hdGljIGNvbnZlcnNpb24gb2YgdGhlIGFib3ZlIGZyb20gQyB0byBP
YmpDLgorCisgICAgICAgICogU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaDoKKyAgICAgICAgKiBI
ZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgRHJpdmUtYnk6IFVuaWZpZWQgc291cmNlcyBm
aXhlcy4KKwogMjAyMi0wMS0xOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4K
IAogICAgICAgICBbR1BVIFByb2Nlc3NdIEltYWdlQnVmZmVyOjpjb252ZXJ0VG9MdW1pbmFuY2VN
YXNrKCkgYW5kIHRyYW5zZm9ybVRvQ29sb3JTcGFjZSgpIHNob3VsZCBub3QgYWNjZXNzIHRoZSBi
YWNrZW5kIGluIFdlYlByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvSGVhZGVycy5j
bWFrZSBiL1NvdXJjZS9XZWJLaXQvSGVhZGVycy5jbWFrZQppbmRleCA1MGRkMWQxZmQ5ODZmYmI1
NGQxMDhhOTI4MmQwZWY3NmRiMjg0YmY3Li43Yzc3ZDJlYTY0ZWE0ZDU1ZjA4NzM0MzgyMzkxYjBk
NTY1ODM3NTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0hlYWRlcnMuY21ha2UKKysrIGIv
U291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlCkBAIC0xMjIsNiArMTIyLDggQEAgc2V0KFdlYktp
dF9QVUJMSUNfRlJBTUVXT1JLX0hFQURFUlMKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlQVBJQ2FzdC5oCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaAorICAgIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmgK
KyAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQ1NTU3R5bGVEZWNs
YXJhdGlvbkhhbmRsZVByaXZhdGUuaAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uaAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmgKICAgICBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1NYWMuY21ha2UKaW5k
ZXggODRhYTg4MjhkZmM2YTA5M2UxZDY4ZjA2NTgwZmFlYjVkNzA0ZGJiNi4uZTI5NjZkNTEzYmI1
ODM5ZGYxMmIzMjJhZjJlZWIwNTRlYjRkNjY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtTWFjLmNtYWtlCkBA
IC00OTAsNiArNDkwLDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0X1BVQkxJQ19GUkFNRVdPUktfSEVB
REVSUwogICAgIFVJUHJvY2Vzcy9Db2NvYS9XS1NoYXJlU2hlZXQuaAogCiAgICAgV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzQnVuZGxlUGFyYW1ldGVycy5o
CisgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1
Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRWRpdGluZ0RlbGVnYXRlLmgKICAgICBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Gb3Jt
RGVsZWdhdGVQcml2YXRlLmgKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvYy93cGUvV2ViS2l0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy93cGUv
V2ViS2l0LmgKaW5kZXggY2FmNjdlMWRlY2U1YjcyN2U0M2ViYTc4MGU3MDgxNGY4ZmRiMGY2My4u
ZTRhOTQ4NzFkYTE5ZDU0MjVhNGM5MmQ2OWZkNmNlYjM0NGUwYmZlNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL2Mvd3BlL1dlYktpdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgPFdl
YktpdC9XS0J1bmRsZS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUJhY2tGb3J3YXJkTGlz
dC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmg+CiAjaW5j
bHVkZSA8V2ViS2l0L1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5oPgogI2luY2x1ZGUgPFdlYktpdC9X
S0J1bmRsZUZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tCmluZGV4IDEzMjI5NTJjYWQx
MGE1ZTIyYjBlMjFkM2U5NzhkNzVlMTdlNWUwMjYuLjQyNmIyM2U4ZDRjZWJhNzRmOTdlNzUzZDM5
NzQwZWQzZmMwNDk5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQ
SU9iamVjdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0K
QEAgLTU5LDYgKzU5LDcgQEAKICNpbXBvcnQgIldLVXNlckNvbnRlbnRDb250cm9sbGVySW50ZXJu
YWwuaCIKICNpbXBvcnQgIldLVXNlclNjcmlwdEludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgorI2ltcG9ydCAi
V0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZUludGVybmFsLmgiCiAj
aW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZUludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dl
YlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2ViUHJv
Y2Vzc1BsdWdJbkludGVybmFsLmgiCkBAIC00MjIsNiArNDIzLDEwIEBAIHZvaWQqIE9iamVjdDo6
bmV3T2JqZWN0KHNpemVfdCBzaXplLCBUeXBlIHR5cGUpCiAgICAgICAgIHdyYXBwZXIgPSBbV0tX
ZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdCBhbGxvY107CiAgICAgICAgIGJyZWFrOwogCisg
ICAgY2FzZSBUeXBlOjpCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOgorICAgICAgICB3
cmFwcGVyID0gW1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUgYWxs
b2NdOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgVHlwZTo6QnVuZGxlTm9kZUhhbmRsZToK
ICAgICAgICAgd3JhcHBlciA9IFtXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlIGFsbG9jXTsK
ICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA0NDU3MzEwOWFlMzMyM2Q2OWUwMjI3YmQ3
YWE0MTVhM2NiODc5M2Y2Li5iZjJiOTU2NzI2ZjRmZDkzMjc5ZTAwYWM5ZmE1NjdlMmNlZWUzNWRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKQEAgLTY1NCw2ICs2NTQsNyBAQCBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuY3BwCiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlLmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5jcHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcAorV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuY3BwCiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmNwcAog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcAogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQKaW5kZXggMTFmMGMyNDA1YWM5NDc0YmU4ZjhlODA1ZmVlYmM4ZjFiYjY5
NjAwMi4uNTUwNzJhMTc1YjY1MTEzMjg3MjA4NDc1MTUxYmE2YjMyNTEzYmEyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dApAQCAtNjM1LDYgKzYzNSw3IEBAIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvbWFjL1dLQnVuZGxlTWFjLm1tCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL21hYy9XS0J1bmRsZVBhZ2VCYW5uZXJNYWMubW0KIAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzQnVuZGxlUGFyYW1ldGVycy5tbQorV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNs
YXJhdGlvbkhhbmRsZS5tbQogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tX
ZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0KIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0Nv
Y29hL1dLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQubW0KIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUubW0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQxZGE3
MzdlOWVlZGM2ZDY5ODVlYmVlNzg4N2Y5NjQ3NThiMDkwYjguLjA5NWViNWM0NDI4MzRmODdkZmUy
OTAzMDlhYTE3YWExZDFkNDA2YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ4Niw4ICsxNDg2LDEyIEBACiAJCTkzRTc5OURDMjc2
MTIxMDgwMDc0MDA4QSAvKiBTdG9yYWdlQXJlYUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTc5OUQ2Mjc2MTIxMDgwMDc0MDA4QSAvKiBTdG9y
YWdlQXJlYUJhc2UuaCAqLzsgfTsKIAkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25h
cHNob3RDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3Vy
YXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJ
CTk1MEYyODgwMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0
RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKKwkJOTUyQkMwQTEy
Nzk3QTM2ODAwM0YzRDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTUyQkMwOUUyNzk3QTM2NjAwM0YzRDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGVJbnRlcm5hbC5oICovOyB9OworCQk5NTJCQzBBMzI3OTdBMzY4
MDAzRjNEMjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUyQkMwQTAy
Nzk3QTM2NzAwM0YzRDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5NTY1MDgzOTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTY1MDgzNzI2RDg3
QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmggKi87IH07CiAJCTk1NjUwODNB
MjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU2NTA4MzgyNkQ4N0EyQjAwRTE1
Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmggKi87IH07CisJCTk1NzlBNzU3Mjc5N0E5
QTkwMEExQTZBNSAvKiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1NzlBNzU0Mjc5N0E5QTgw
MEExQTZBNSAvKiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NTc5QTc1ODI3OTdBOUE5
MDBBMUE2QTUgLyogV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJpdmF0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU3OUE3NTUyNzk3
QTlBODAwQTFBNkE1IC8qIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NTkz
Njc1RjI1MkU1RTMxMDBEM0YwQTAgLyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU5MzY3NUQyNTJFNUUzMDAw
RDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKIAkJOTVDOTQzOTEyNTIz
QzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTVDOTQzOTAyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2Fy
ZFNQSS5oICovOyB9OwogCQk5OTAzNkFFMjIzQTk0OUNGMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9y
RGVidWdnYWJsZUluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTkwMzZBRTEyM0E5NDlDRTAwMDBCMDZBIC8qIF9XS0luc3BlY3RvckRl
YnVnZ2FibGVJbmZvSW50ZXJuYWwuaCAqLzsgfTsKQEAgLTUzNjUsOCArNTM2OSwxNCBAQAogCQk5
M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJh
dGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwRjI4N0UyNTI0MTRFOTAw
Qjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaDsgcGF0aCA9IGlvcy9XS01vdXNlRGV2
aWNlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwRjI4N0YyNTI0
MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLTW91c2VEZXZpY2VPYnNlcnZlci5tbTsgcGF0aCA9
IGlvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTk1MkJDMDlFMjc5N0EzNjYwMDNGM0QyNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHls
ZURlY2xhcmF0aW9uSGFuZGxlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZUludGVybmFs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MkJDMDlGMjc5N0EzNjcwMDNGM0Qy
NSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luQ1NT
U3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTUyQkMwQTAyNzk3QTM2NzAwM0YzRDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVj
bGFyYXRpb25IYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQ
cm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5NTY1MDgzNzI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZp
Y2VzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlTWVkaWFTZXJ2
aWNlc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTY1MDgzODI2RDg3QTJC
MDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTU3OUE3NTMyNzk3QTlBNzAwQTFBNkE1IC8qIFdLQnVuZGxlQ1NTU3R5
bGVEZWNsYXJhdGlvbkhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5NTc5QTc1NDI3OTdBOUE4MDBBMUE2QTUgLyogV0tCdW5kbGVDU1NT
dHlsZURlY2xhcmF0aW9uSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5NTc5QTc1NTI3OTdBOUE4MDBBMUE2QTUgLyogV0tCdW5kbGVDU1NTdHlsZURl
Y2xhcmF0aW9uSGFuZGxlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQcml2YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk1OTM2NzVEMjUyRTVFMzAwMEQzRjBBMCAvKiBXS1N0eWx1c0Rl
dmljZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLU3R5bHVz
RGV2aWNlT2JzZXJ2ZXIuaDsgcGF0aCA9IGlvcy9XS1N0eWx1c0RldmljZU9ic2VydmVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1OTM2NzVFMjUyRTVFMzEwMEQzRjBBMCAvKiBX
S1N0eWx1c0RldmljZU9ic2VydmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbTsgcGF0aCA9IGlvcy9XS1N0eWx1c0Rl
dmljZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUM5NDM5MDI1
MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEJhc2VCb2FyZFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
Nzg4Nyw2ICs3ODk3LDkgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFBQTJFNTY1MThENzc1MDgw
MDM4MTRCRCAvKiBXS1dlYlByb2Nlc3NCdW5kbGVQYXJhbWV0ZXJzLmggKi8sCiAJCQkJMUFBMkU1
NjQxOEQ3NzUwODAwMzgxNEJEIC8qIFdLV2ViUHJvY2Vzc0J1bmRsZVBhcmFtZXRlcnMubW0gKi8s
CisJCQkJOTUyQkMwQTAyNzk3QTM2NzAwM0YzRDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGUuaCAqLywKKwkJCQk5NTJCQzA5RjI3OTdBMzY3MDAzRjNEMjUg
LyogV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5tbSAqLywKKwkJ
CQk5NTJCQzA5RTI3OTdBMzY2MDAzRjNEMjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVE
ZWNsYXJhdGlvbkhhbmRsZUludGVybmFsLmggKi8sCiAJCQkJMzc3NTEyMkUxREYwREM4QjAwOEEz
NTFDIC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkVkaXRpbmdEZWxlZ2F0ZS5oICovLAogCQkJCTM3OTU3
ODlCMThBRDRGMTEwMEI5RUQyRSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Gb3JtRGVsZWdhdGVQcml2
YXRlLmggKi8sCiAJCQkJMUYwMTgxNjkxODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1Bs
dWdJbkZyYW1lLmggKi8sCkBAIC0xMTQyMCw2ICsxMTQzMyw5IEBACiAJCQkJOTM1RUVCOTYxMjc3
NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0LmggKi8sCiAJCQkJOTM1RUVC
OTcxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgKi8s
CiAJCQkJOTM1RUVCOTgxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0
SXRlbS5oICovLAorCQkJCTk1NzlBNzUzMjc5N0E5QTcwMEExQTZBNSAvKiBXS0J1bmRsZUNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGUuY3BwICovLAorCQkJCTk1NzlBNzU0Mjc5N0E5QTgwMEExQTZB
NSAvKiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaCAqLywKKwkJCQk5NTc5QTc1
NTI3OTdBOUE4MDBBMUE2QTUgLyogV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJp
dmF0ZS5oICovLAogCQkJCTUxRkEyRDc1MTUyMTJFMUUwMEMxQkEwQiAvKiBXS0J1bmRsZURPTVdp
bmRvd0V4dGVuc2lvbi5jcHAgKi8sCiAJCQkJNTFGQTJENTQxNTIxMTE4NjAwQzFCQTBCIC8qIFdL
QnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmggKi8sCiAJCQkJN0NCQjgxMUYxQUEwRjk3MDAwNkIx
OTQyIC8qIFdLQnVuZGxlRmlsZUhhbmRsZVJlZi5oICovLApAQCAtMTM2MjksNiArMTM2NDUsOCBA
QAogCQkJCUJDMjA0RUYwMTFDODNFQzgwMDhGMzM3NSAvKiBXS0J1bmRsZUFQSUNhc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzNUVFQjlGMTI3NzYxQUMwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tG
b3J3YXJkTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1RUVCOUIxMjc3NjE3QzAwMzMyMkI4
IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTU3
OUE3NTcyNzk3QTlBOTAwQTFBNkE1IC8qIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRs
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTU3OUE3NTgyNzk3QTlBOTAwQTFBNkE1IC8qIFdLQnVu
ZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxRUZDMUNGMTUyNEU2MjUwMEM5QTkzOCAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0NCQjgxMjExQUEwRjk3MDAwNkIxOTQyIC8qIFdLQnVuZGxl
RmlsZUhhbmRsZVJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEMjVGMTcxMUQ2QkRFMTAwMTY5
QjBFIC8qIFdLQnVuZGxlRnJhbWUuaCBpbiBIZWFkZXJzICovLApAQCAtMTM5NzYsNiArMTM5OTQs
OCBAQAogCQkJCUJDOEYyRjJCMTYyNzNBMkMwMDVGQUNCNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOEYyRjJFMTYy
NzNBQ0MwMDVGQUNCNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xs
ZXJJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjk1MDE3MjQxNjJBNDUwNDAwNEE5RDcx
IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlclByaXZhdGUuaCBp
biBIZWFkZXJzICovLAorCQkJCTk1MkJDMEEzMjc5N0EzNjgwMDNGM0QyNSAvKiBXS1dlYlByb2Nl
c3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
NTJCQzBBMTI3OTdBMzY4MDAzRjNEMjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNs
YXJhdGlvbkhhbmRsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzc1MTIyRjFERjBE
QzhCMDA4QTM1MUMgLyogV0tXZWJQcm9jZXNzUGx1Z0luRWRpdGluZ0RlbGVnYXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzNzk1Nzg5QzE4QUQ0RjE5MDBCOUVEMkUgLyogV0tXZWJQcm9jZXNzUGx1
Z0luRm9ybURlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUY3NTA2QjExODU5
MTYzNzAwRUMwRkY3IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Q29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nl
c3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQwYTE1NTQx
YWU5M2I2YmNkODgxNzcyMGY4NTc5NTAyNWQ3ZDhhYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
UGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpbXBvcnQgPEZvdW5k
YXRpb24vRm91bmRhdGlvbi5oPgorI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuaD4KKworV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpCitAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGUgOiBOU09iamVjdAorCisrIChXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlICopY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVdpdGhKU1ZhbHVlOihKU1ZhbHVl
ICopdmFsdWUgaW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0OworCistIChOU1N0cmluZyAq
KWdldFByb3BlcnR5VmFsdWU6KE5TU3RyaW5nICopcHJvcGVydHlOYW1lOworCitAZW5kCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29h
L1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1Bs
dWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA5ZGNhZjY3Zjg2
MjliMzk0MDVhODk5MDUzYTFlZGRhY2VhZThiNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1
Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5tbQpAQCAtMCwwICsxLDY4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5DU1NT
dHlsZURlY2xhcmF0aW9uSGFuZGxlSW50ZXJuYWwuaCIKKworI2ltcG9ydCA8V2ViQ29yZS9DU1NT
dHlsZURlY2xhcmF0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+
CisKK0BpbXBsZW1lbnRhdGlvbiBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlIHsKKyAgICBBUEk6Ok9iamVjdFN0b3JhZ2U8V2ViS2l0OjpJbmplY3RlZEJ1bmRsZUNT
U1N0eWxlRGVjbGFyYXRpb25IYW5kbGU+IF9jc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOworfQor
CistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2Nh
dGVPbk1haW5SdW5Mb29wKFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5k
bGUuY2xhc3MsIHNlbGYpKQorICAgICAgICByZXR1cm47CisgICAgX2Nzc1N0eWxlRGVjbGFyYXRp
b25IYW5kbGUtPn5JbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUoKTsKKyAg
ICBbc3VwZXIgZGVhbGxvY107Cit9CisKKysgKFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVj
bGFyYXRpb25IYW5kbGUgKiljc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxlV2l0aEpTVmFsdWU6KEpT
VmFsdWUgKil2YWx1ZSBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQKK3sKKyAgICBKU0Nv
bnRleHRSZWYgY29udGV4dFJlZiA9IFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl07CisgICAg
SlNPYmplY3RSZWYgb2JqZWN0UmVmID0gSlNWYWx1ZVRvT2JqZWN0KGNvbnRleHRSZWYsIFt2YWx1
ZSBKU1ZhbHVlUmVmXSwgbnVsbHB0cik7CisgICAgcmV0dXJuIHdyYXBwZXIoV2ViS2l0OjpJbmpl
Y3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGU6OmdldE9yQ3JlYXRlKGNvbnRleHRS
ZWYsIG9iamVjdFJlZikpOworfQorCistIChOU1N0cmluZyAqKWdldFByb3BlcnR5VmFsdWU6KE5T
U3RyaW5nICopcHJvcGVydHlOYW1lCit7CisgICAgcmV0dXJuIF9jc3NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlLT5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5TmFtZSk7Cit9CisKKy0gKFdlYktpdDo6
SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlJilfY3NzU3R5bGVEZWNsYXJh
dGlvbkhhbmRsZQoreworICAgIHJldHVybiAqX2Nzc1N0eWxlRGVjbGFyYXRpb25IYW5kbGU7Cit9
CisKKy8vIE1BUks6IFdLT2JqZWN0IHByb3RvY29sIGltcGxlbWVudGF0aW9uCisKKy0gKEFQSTo6
T2JqZWN0JilfYXBpT2JqZWN0Cit7CisgICAgcmV0dXJuICpfY3NzU3R5bGVEZWNsYXJhdGlvbkhh
bmRsZTsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRs
ZUludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg2Nzg4NDM3OTQ2ZDMxYzdiN2NjMDU2ZTRjNzM3MjM5
NmNjMzUzNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlv
bkhhbmRsZUludGVybmFsLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
PFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmg+CisK
KyNpbXBvcnQgIkluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oIgorI2lt
cG9ydCAiV0tPYmplY3QuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3RlbXBsYXRlPD4gc3Ry
dWN0IFdyYXBwZXJUcmFpdHM8SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxl
PiB7CisgICAgdXNpbmcgV3JhcHBlckNsYXNzID0gV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVE
ZWNsYXJhdGlvbkhhbmRsZTsKK307CisKK30KKworQGludGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVn
SW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlICgpIDxXS09iamVjdD4KKworQHByb3BlcnR5IChy
ZWFkb25seSkgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUm
IF9jc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOworCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1Bs
dWdJbkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmgKaW5kZXggNjJlNjc2MDRlZTZkMGQ4ZjYw
MWM1ODJhMzQ4YTIxMzJjNjc5OTM2OC4uNTUxNDQ5MmQ5ODRjMTRmNGZjY2NhN2Y4ZTdmY2Q5OWNk
ODk4MGY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0lu
RnJhbWUuaApAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuaD4KIAogQGNsYXNzIF9XS0ZyYW1lSGFuZGxlOworQGNsYXNzIFdLV2ViUHJvY2Vz
c1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGU7CiBAY2xhc3MgV0tXZWJQcm9jZXNzUGx1
Z0luSGl0VGVzdFJlc3VsdDsKIEBjbGFzcyBXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlOwog
QGNsYXNzIFdLV2ViUHJvY2Vzc1BsdWdJblJhbmdlSGFuZGxlOwpAQCAtNTgsNiArNTksNyBAQCBX
S19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIC0gKEpTQ29udGV4dCAq
KWpzQ29udGV4dEZvclNlcnZpY2VXb3JrZXJXb3JsZDooV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0
V29ybGQgKil3b3JsZDsKIC0gKFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQgKiloaXRU
ZXN0OihDR1BvaW50KXBvaW50OwogLSAoV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdCAq
KWhpdFRlc3Q6KENHUG9pbnQpcG9pbnQgb3B0aW9uczooV0tIaXRUZXN0T3B0aW9ucylvcHRpb25z
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CistIChKU1ZhbHVlICop
anNDU1NTdHlsZURlY2xhcmF0aW9uRm9yQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTooV0tXZWJQ
cm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSAqKWNzc1N0eWxlRGVjbGFyYXRp
b25IYW5kbGUgaW5Xb3JsZDooV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgKil3b3JsZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAo
SlNWYWx1ZSAqKWpzTm9kZUZvck5vZGVIYW5kbGU6KFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5k
bGUgKilub2RlSGFuZGxlIGluV29ybGQ6KFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkICop
d29ybGQ7CiAtIChKU1ZhbHVlICopanNSYW5nZUZvclJhbmdlSGFuZGxlOihXS1dlYlByb2Nlc3NQ
bHVnSW5SYW5nZUhhbmRsZSAqKXJhbmdlSGFuZGxlIGluV29ybGQ6KFdLV2ViUHJvY2Vzc1BsdWdJ
blNjcmlwdFdvcmxkICopd29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSwgaW9z
KDEwLjMpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbSBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0lu
RnJhbWUubW0KaW5kZXggYzgxMWVhZDgyOTc4ODAwZmRlMDBkYWZmNWMyY2M0Yzc5NDZhOGJjNi4u
NjcyZTE0NTYxZTg3NWQxNmI1NWEyNTFhZTY0YTZiOTU4YTgwZDRmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nl
c3NQbHVnSW5GcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW1wb3J0ICJXS05TQXJyYXkuaCIKICNpbXBvcnQgIldLTlNVUkxFeHRyYXMuaCIKICNp
bXBvcnQgIldLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlckludGVybmFs
LmgiCisjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxl
SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHRJbnRl
cm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZUludGVybmFsLmgi
CiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5SYW5nZUhhbmRsZUludGVybmFsLmgiCkBAIC05
MSw2ICs5MiwxMiBAQCAtIChXS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0ICopaGl0VGVz
dDooQ0dQb2ludClwb2ludCBvcHRpb25zOihXS0hpdFRlc3RPcAogICAgIHJldHVybiB3cmFwcGVy
KF9mcmFtZS0+aGl0VGVzdChXZWJDb3JlOjpJbnRQb2ludChwb2ludCksIHR5cGVzKSk7CiB9CiAK
Ky0gKEpTVmFsdWUgKilqc0NTU1N0eWxlRGVjbGFyYXRpb25Gb3JDU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlOihXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlICopY3Nz
U3R5bGVEZWNsYXJhdGlvbkhhbmRsZSBpbldvcmxkOihXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRX
b3JsZCAqKXdvcmxkCit7CisgICAgSlNWYWx1ZVJlZiB2YWx1ZVJlZiA9IF9mcmFtZS0+anNXcmFw
cGVyRm9yV29ybGQoJltjc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxlIF9jc3NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlXSwgJlt3b3JsZCBfc2NyaXB0V29ybGRdKTsKKyAgICByZXR1cm4gW0pTVmFsdWUg
dmFsdWVXaXRoSlNWYWx1ZVJlZjp2YWx1ZVJlZiBpbkNvbnRleHQ6W3NlbGYganNDb250ZXh0Rm9y
V29ybGQ6d29ybGRdXTsKK30KKwogLSAoSlNWYWx1ZSAqKWpzTm9kZUZvck5vZGVIYW5kbGU6KFdL
V2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKilub2RlSGFuZGxlIGluV29ybGQ6KFdLV2ViUHJv
Y2Vzc1BsdWdJblNjcmlwdFdvcmxkICopd29ybGQKIHsKICAgICBKU1ZhbHVlUmVmIHZhbHVlUmVm
ID0gX2ZyYW1lLT5qc1dyYXBwZXJGb3JXb3JsZCgmW25vZGVIYW5kbGUgX25vZGVIYW5kbGVdLCAm
W3dvcmxkIF9zY3JpcHRXb3JsZF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRs
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNmJiOTdkNDcw
NjcxZDg5NDdlODEyMWMxNGZiZmNmMTVkODZhNTI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQ1NTU3R5bGVE
ZWNsYXJhdGlvbkhhbmRsZS5jcHAKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5k
bGUuaCIKKyNpbmNsdWRlICJXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQcml2YXRl
LmgiCisKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUu
aCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIK
KworV0tUeXBlSUQgV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlR2V0VHlwZUlEKCkK
K3sKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0FQSShXZWJLaXQ6OkluamVjdGVkQnVuZGxlQ1NTU3R5
bGVEZWNsYXJhdGlvbkhhbmRsZTo6QVBJVHlwZSk7Cit9CisKK1dLQnVuZGxlQ1NTU3R5bGVEZWNs
YXJhdGlvblJlZiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVDcmVhdGUoSlNDb250
ZXh0UmVmIGNvbnRleHRSZWYsIEpTT2JqZWN0UmVmIG9iamVjdFJlZikKK3sKKyAgICBSZWZQdHI8
V2ViS2l0OjpJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGU+IGNzc1N0eWxl
RGVjbGFyYXRpb25IYW5kbGUgPSBXZWJLaXQ6OkluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJh
dGlvbkhhbmRsZTo6Z2V0T3JDcmVhdGUoY29udGV4dFJlZiwgb2JqZWN0UmVmKTsKKyAgICByZXR1
cm4gdG9BUEkoY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5sZWFrUmVmKCkpOworfQorCitXS1N0
cmluZ1JlZiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25HZXRQcm9wZXJ0eVZhbHVlKFdLQnVu
ZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZiBjc3NTdHlsZURlY2xhcmF0aW9uUmVmLCBXS1N0cmlu
Z1JlZiBwcm9wZXJ0eU5hbWVSZWYpCit7CisgICAgcmV0dXJuIFdlYktpdDo6dG9Db3BpZWRBUEko
V2ViS2l0Ojp0b0ltcGwoY3NzU3R5bGVEZWNsYXJhdGlvblJlZiktPmdldFByb3BlcnR5VmFsdWUo
V2ViS2l0Ojp0b1dURlN0cmluZyhwcm9wZXJ0eU5hbWVSZWYpKSk7Cit9CisKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUNT
U1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yNWY0NjZiMDc3MTMwZDA4MTkxMDFjMGIxNjhmM2QyYTdjNjVmM2ZjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oCkBAIC0wLDAgKzEsNDEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZV9oCisj
ZGVmaW5lIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZV9oCisKKyNpbmNsdWRlIDxX
ZWJLaXQvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5k
aWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRs
ZUdldFR5cGVJRCgpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYg
LyogV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlX2ggKi8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJp
dmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY3Y2YyNGFkZWYxYTJhNjQ5ZDFiOTM3ZjlkMTMwZTFkODQxYzQ5
YWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJpdmF0ZS5oCkBA
IC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQnVuZGxlQ1NTU3R5bGVEZWNs
YXJhdGlvbkhhbmRsZVByaXZhdGVfaAorI2RlZmluZSBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRp
b25IYW5kbGVQcml2YXRlX2gKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHQu
aD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0
ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlv
blJlZiBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVDcmVhdGUoSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTT2JqZWN0UmVmIG9iamVjdCk7CisKK1dLX0VYUE9SVCBXS1N0cmluZ1JlZiBX
S0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25HZXRQcm9wZXJ0eVZhbHVlKFdLQnVuZGxlQ1NTU3R5
bGVEZWNsYXJhdGlvblJlZiBjc3NTdHlsZURlY2xhcmF0aW9uLCBXS1N0cmluZ1JlZiBwcm9wZXJ0
eU5hbWUpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tC
dW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJpdmF0ZV9oICovCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVGcmFtZS5jcHAKaW5kZXggMmM1OGU5Y2FhZDUxMzUwNTYzMWYwM2IwNmIxYzk0MWQwOWZi
ZTgxZi4uYzdiYTQ1NGU4NmE3NmMyNmQ3ZmUwODFmNDA5MmNmMmM2YjE0Mzg4ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
RnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZUZyYW1lLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQVBJ
QXJyYXkuaCIKICNpbmNsdWRlICJBUElTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIkluamVj
dGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oIgogI2luY2x1ZGUgIkluamVjdGVk
QnVuZGxlSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9kZUhhbmRs
ZS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCIKQEAgLTEwOSw2ICsx
MTAsMTEgQEAgSlNHbG9iYWxDb250ZXh0UmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0Q29u
dGV4dEZvcldvcmxkKFdLQnVuZGxlRnJhbWVSZWYgZnIKICAgICByZXR1cm4gV2ViS2l0Ojp0b0lt
cGwoZnJhbWVSZWYpLT5qc0NvbnRleHRGb3JXb3JsZChXZWJLaXQ6OnRvSW1wbCh3b3JsZFJlZikp
OwogfQogCitKU1ZhbHVlUmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhcHBlckZvckNT
U1N0eWxlRGVjbGFyYXRpb25Gb3JXb3JsZChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lUmVmLCBXS0J1
bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWYgY3NzU3R5bGVEZWNsYXJhdGlvblJlZiwgV0tCdW5k
bGVTY3JpcHRXb3JsZFJlZiB3b3JsZFJlZikKK3sKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0ltcGwo
ZnJhbWVSZWYpLT5qc1dyYXBwZXJGb3JXb3JsZChXZWJLaXQ6OnRvSW1wbChjc3NTdHlsZURlY2xh
cmF0aW9uUmVmKSwgV2ViS2l0Ojp0b0ltcGwod29ybGRSZWYpKTsKK30KKwogSlNWYWx1ZVJlZiBX
S0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdFdyYXBwZXJGb3JOb2RlRm9yV29ybGQoV0tCdW5kbGVG
cmFtZVJlZiBmcmFtZVJlZiwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIG5vZGVIYW5kbGVSZWYsIFdL
QnVuZGxlU2NyaXB0V29ybGRSZWYgd29ybGRSZWYpCiB7CiAgICAgcmV0dXJuIFdlYktpdDo6dG9J
bXBsKGZyYW1lUmVmKS0+anNXcmFwcGVyRm9yV29ybGQoV2ViS2l0Ojp0b0ltcGwobm9kZUhhbmRs
ZVJlZiksIFdlYktpdDo6dG9JbXBsKHdvcmxkUmVmKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUu
aAppbmRleCAwYTBiMWM0ZDg3YTFlN2YyMmM4NmM5MmVkM2NlYTVmNjlkMGRjZDZkLi4xMjZiMjU3
YzFkZmUzMzI2ZjE4ZTRkYzY1ZDA2ZTJmNGEwMjIyYWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZy
YW1lLmgKQEAgLTU0LDYgKzU0LDcgQEAgV0tfRVhQT1JUIEpTR2xvYmFsQ29udGV4dFJlZiBXS0J1
bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRleHRGb3JXb3JsZChXS0J1bmRsZUYKIAogV0tfRVhQ
T1JUIFdLQnVuZGxlRnJhbWVSZWYgV0tCdW5kbGVGcmFtZUZvckphdmFTY3JpcHRDb250ZXh0KEpT
Q29udGV4dFJlZiBjb250ZXh0KTsKIAorV0tfRVhQT1JUIEpTVmFsdWVSZWYgV0tCdW5kbGVGcmFt
ZUdldEphdmFTY3JpcHRXcmFwcGVyRm9yQ1NTU3R5bGVEZWNsYXJhdGlvbkZvcldvcmxkKFdLQnVu
ZGxlRnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZiBjc3NTdHls
ZURlY2xhcmF0aW9uLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHdvcmxkKTsKIFdLX0VYUE9SVCBK
U1ZhbHVlUmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0V3JhcHBlckZvck5vZGVGb3JXb3Js
ZChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0J1bmRsZU5vZGVIYW5kbGVSZWYgbm9kZUhhbmRs
ZSwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZCk7CiBXS19FWFBPUlQgSlNWYWx1ZVJlZiBX
S0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdFdyYXBwZXJGb3JSYW5nZUZvcldvcmxkKFdLQnVuZGxl
RnJhbWVSZWYgZnJhbWUsIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2VIYW5kbGUsIFdLQnVu
ZGxlU2NyaXB0V29ybGRSZWYgd29ybGQpOwogV0tfRVhQT1JUIEpTVmFsdWVSZWYgV0tCdW5kbGVG
cmFtZUdldEphdmFTY3JpcHRXcmFwcGVyRm9yRmlsZUZvcldvcmxkKFdLQnVuZGxlRnJhbWVSZWYg
ZnJhbWUsIFdLQnVuZGxlRmlsZUhhbmRsZVJlZiBmaWxlSGFuZGxlLCBXS0J1bmRsZVNjcmlwdFdv
cmxkUmVmIHdvcmxkKSBXS19DX0FQSV9ERVBSRUNBVEVEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUNTU1N0eWxl
RGVjbGFyYXRpb25IYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuY3BwCmlu
ZGV4IDk2NTBiYjMzN2FlYWZjNTNiMWU5OTdhMGEwYWViOWZkNTZjYjU3YWUuLmNlMDI5NjE0ZDdi
YWZmMGU1NDc2ODUwY2JiOGUzOGI5ZmVjMGZhYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xh
cmF0aW9uSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvRE9NL0luamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5jcHAKQEAg
LTI2LDcgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1
bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaCIKIAorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0FQSUNhc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NTU1N0eWxlRGVjbGFyYXRpb24uaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbi5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKQEAgLTQxLDYg
KzQzLDEyIEBAIHN0YXRpYyBET01TdHlsZURlY2xhcmF0aW9uSGFuZGxlQ2FjaGUmIGRvbVN0eWxl
RGVjbGFyYXRpb25IYW5kbGVDYWNoZSgpCiAgICAgcmV0dXJuIGNhY2hlOwogfQogCitSZWZQdHI8
SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlPiBJbmplY3RlZEJ1bmRsZUNT
U1N0eWxlRGVjbGFyYXRpb25IYW5kbGU6OmdldE9yQ3JlYXRlKEpTQ29udGV4dFJlZiwgSlNPYmpl
Y3RSZWYgb2JqZWN0KQoreworICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIGNzc1N0eWxlRGVjbGFy
YXRpb24gPSBKU0NTU1N0eWxlRGVjbGFyYXRpb246OnRvV3JhcHBlZCh0b0pTKG9iamVjdCktPnZt
KCksIHRvSlMob2JqZWN0KSk7CisgICAgcmV0dXJuIGdldE9yQ3JlYXRlKGNzc1N0eWxlRGVjbGFy
YXRpb24pOworfQorCiBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFu
ZGxlPiBJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGU6OmdldE9yQ3JlYXRl
KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlRGVjbGFyYXRpb24pCiB7CiAgICAgaWYgKCFzdHls
ZURlY2xhcmF0aW9uKQpAQCAtNjUsNCArNzMsMTQgQEAgSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURl
Y2xhcmF0aW9uSGFuZGxlOjp+SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGwK
ICAgICBkb21TdHlsZURlY2xhcmF0aW9uSGFuZGxlQ2FjaGUoKS5yZW1vdmUobV9zdHlsZURlY2xh
cmF0aW9uLnB0cigpKTsKIH0KIAorQ1NTU3R5bGVEZWNsYXJhdGlvbiogSW5qZWN0ZWRCdW5kbGVD
U1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOjpjb3JlQ1NTU3R5bGVEZWNsYXJhdGlvbigpCit7Cisg
ICAgcmV0dXJuIG1fc3R5bGVEZWNsYXJhdGlvbi5wdHIoKTsKK30KKworU3RyaW5nIEluamVjdGVk
QnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTo6Z2V0UHJvcGVydHlWYWx1ZShjb25zdCBT
dHJpbmcmIHByb3BlcnR5TmFtZSkKK3sKKyAgICByZXR1cm4gbV9zdHlsZURlY2xhcmF0aW9uLT5n
ZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5TmFtZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RP
TS9JbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURl
Y2xhcmF0aW9uSGFuZGxlLmgKaW5kZXggOTVkOTIwY2FiYzI4YzdmNTk0OTk3ZWQ5NjI2NWI1OWRl
MzgyMTk3Mi4uZDkzYTA5MmNiMWRjZWIxOTA0YTZmNDczNTJiY2FmODMyNjcxMjVlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3Rl
ZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJh
dGlvbkhhbmRsZS5oCkBAIC0yNyw4ICsyNywxMCBAQAogI2RlZmluZSBJbmplY3RlZEJ1bmRsZUNT
U1N0eWxlRGVjbGFyYXRpb25IYW5kbGVfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKQEAgLTM4LDkg
KzQwLDE0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBJbmplY3RlZEJ1bmRsZUNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGUgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0
OjpUeXBlOjpCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlPiB7CiBwdWJsaWM6CisgICAg
c3RhdGljIFJlZlB0cjxJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGU+IGdl
dE9yQ3JlYXRlKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYpOwogICAgIHN0YXRpYyBSZWZQdHI8
SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlPiBnZXRPckNyZWF0ZShXZWJD
b3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uKik7CiAgICAgdmlydHVhbCB+SW5qZWN0ZWRCdW5kbGVD
U1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlKCk7CiAKKyAgICBXZWJDb3JlOjpDU1NTdHlsZURlY2xh
cmF0aW9uKiBjb3JlQ1NTU3R5bGVEZWNsYXJhdGlvbigpOworCisgICAgU3RyaW5nIGdldFByb3Bl
cnR5VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpOworCiBwcml2YXRlOgogICAgIElu
amVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZShXZWJDb3JlOjpDU1NTdHlsZURl
Y2xhcmF0aW9uJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmNwcAppbmRleCBjZDY0YzRhMDI0Zjk5ODMyM2FhZjVmZTU2YmVhZTQwOTYwZmVhNmY2Li44
MjgyNTBjNjU0ODE0Y2MyM2U0M2M3YmYwYTk5YWFlNzFmODAxODJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKICNpbmNs
dWRlICJGcmFtZUluZm9EYXRhLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURl
Y2xhcmF0aW9uSGFuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0
LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgiCiAjaW5jbHVkZSAiSW5q
ZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oIgpAQCAtNzE4LDYgKzcxOSwxNyBAQCBXZWJGcmFtZSog
V2ViRnJhbWU6OmZyYW1lRm9yQ29udGV4dChKU0NvbnRleHRSZWYgY29udGV4dCkKICAgICByZXR1
cm4gY29yZUZyYW1lID8gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmNvcmVGcmFtZSkgOiBudWxs
cHRyOwogfQogCitKU1ZhbHVlUmVmIFdlYkZyYW1lOjpqc1dyYXBwZXJGb3JXb3JsZChJbmplY3Rl
ZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUqIGNzc1N0eWxlRGVjbGFyYXRpb25IYW5k
bGUsIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqIHdvcmxkKQoreworICAgIGlmICghbV9jb3Jl
RnJhbWUpCisgICAgICAgIHJldHVybiAwOworCisgICAgSlNET01XaW5kb3cqIGdsb2JhbE9iamVj
dCA9IG1fY29yZUZyYW1lLT5zY3JpcHQoKS5nbG9iYWxPYmplY3Qod29ybGQtPmNvcmVXb3JsZCgp
KTsKKworICAgIEpTTG9ja0hvbGRlciBsb2NrKGdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIHRv
UmVmKGdsb2JhbE9iamVjdCwgdG9KUyhnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgY3NzU3R5
bGVEZWNsYXJhdGlvbkhhbmRsZS0+Y29yZUNTU1N0eWxlRGVjbGFyYXRpb24oKSkpOworfQorCiBK
U1ZhbHVlUmVmIFdlYkZyYW1lOjpqc1dyYXBwZXJGb3JXb3JsZChJbmplY3RlZEJ1bmRsZU5vZGVI
YW5kbGUqIG5vZGVIYW5kbGUsIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqIHdvcmxkKQogewog
ICAgIGlmICghbV9jb3JlRnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViRnJhbWUuaAppbmRleCA1NzI2NmU0ZDU0MDczZTA4OTgzYzlmM2RhZmNkOTQ5MzJhNzkyZjA1
Li4xMDRjNmRiYTE4OTg1NWU4YzkzMjNkYmY2ZTg1OGJjNzY3NjczMzI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKQEAgLTU4LDYgKzU4LDcgQEAgY2xh
c3MgSW50UmVjdDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIEluamVjdGVkQnVuZGxl
Q1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTsKIGNsYXNzIEluamVjdGVkQnVuZGxlSGl0VGVzdFJl
c3VsdDsKIGNsYXNzIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTsKIGNsYXNzIEluamVjdGVkQnVu
ZGxlUmFuZ2VIYW5kbGU7CkBAIC0xNDYsNiArMTQ3LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IFdlYkZyYW1lKiBmcmFtZUZvckNvbnRleHQoSlNDb250ZXh0UmVmKTsKIAorICAgIEpTVmFsdWVS
ZWYganNXcmFwcGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFu
ZGxlKiwgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCopOwogICAgIEpTVmFsdWVSZWYganNXcmFw
cGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlKiwgSW5qZWN0ZWRCdW5kbGVTY3Jp
cHRXb3JsZCopOwogICAgIEpTVmFsdWVSZWYganNXcmFwcGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5k
bGVSYW5nZUhhbmRsZSosIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggZmJk
ZWVmNGMwZjZkZGI3YWMzMzg0ZTc4ODM0MDViNDY0MjlkY2Y2Ni4uNDFiZjU0NDM2ZGJjMGUyMGUw
YjU4YWJkOGM5YThjYTNkOWNkOTE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC02Miw2ICs2Miw3IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUv
Rm9udENhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRDYXNjYWRlLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL0ZyYW1lVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5Q29udHJvbGxlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgogI2ltcG9ydCA8V2ViQ29yZS9JT1N1
cmZhY2UuaD4KQEAgLTc1LDYgKzc2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGVyZm9ybWFuY2VM
b2dnaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgorI2ltcG9ydCA8
V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGlj
YXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9TV0NvbnRleHRNYW5hZ2VyLmg+CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzQzOGZhMzIxOWE4MmRmOTVhNTJm
NWI2ZWU0MzM5ZGEzOTdiMWJjYS4uZDVmN2YxODRmOTY0NzgyNDJjNGU2MWM4NTVlMzA0MTgyNWRi
OTFjMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMyIEBACisyMDIyLTAxLTIwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgU1BJIGZvciBwYXNzaW5nIGFyb3VuZCBhbmQgZ2V0dGluZyBk
ZXRhaWxzIGFib3V0IGBXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uYCBpbiBpbmplY3RlZCBi
dW5kbGUgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM1Mzg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NzU2NjczNz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVByb3RvY29sLmg6
IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxl
Q1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5tbTogQWRkZWQuCisgICAgICAgICgtW0J1bmRsZUNT
U1N0eWxlRGVjbGFyYXRpb25IYW5kbGVSZW1vdGVPYmplY3QgdmVyaWZ5UHJvcGVydHk6dmFsdWU6
XSk6CisgICAgICAgICgtW0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVSZW1vdGVPYmpl
Y3QgdmVyaWZ5U3R5bGU6XSk6CisgICAgICAgIChURVNULldlYktpdC5XS1dlYlByb2Nlc3NQbHVn
SW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQbHVnSW4ubW06
IEFkZGVkLgorICAgICAgICAoLVtCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUGx1Z0lu
IHdlYlByb2Nlc3NQbHVnSW46ZGlkQ3JlYXRlQnJvd3NlckNvbnRleHRDb250cm9sbGVyOl0pOgor
ICAgICAgICAoLVtCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUGx1Z0luIHdlYlByb2Nl
c3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9y
RnJhbWU6XSk6CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQ6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Nvb2tp
ZVByaXZhdGVCcm93c2luZy5tbToKKyAgICAgICAgKC1bQ29va2llUHJpdmF0ZUJyb3dzaW5nRGVs
ZWdhdGUgd2ViVmlldzpydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRl
ZEJ5RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgIChURVNULldlYktpdC5Db29r
aWVQcml2YXRlQnJvd3NpbmcpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvTW9kYWxDb250YWluZXJPYnNlcnZhdGlvbi5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc3RvcmVTZXNzaW9uU3RhdGVXaXRob3V0TmF2aWdhdGlv
bi5tbToKKyAgICAgICAgKC1bU2Vzc2lvblN0YXRlRGVsZWdhdGUgd2ViVmlldzpkaWRGaW5pc2hO
YXZpZ2F0aW9uOl0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y3JlYXRlU2Vzc2lvblN0YXRl
RGF0YSk6CisgICAgICAgIERyaXZlLWJ5OiBVbmlmaWVkIHNvdXJjZXMgZml4ZXMuCisKIDIwMjIt
MDEtMTAgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtn
aXQtd2Via2l0XSBJbXByb3ZlIHNldHVwIHVzYWJpbGl0eQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Tb3VyY2Vz
Q29jb2EudHh0CmluZGV4IDI1NzBlNmI1NWJiODRjM2FiMjI2NDZiMmVmNjI5YzMyZjg4NjJjYjQu
LmEyZDRkMjQ3MjMxZmVlNjg4ODk3YWYxYWY1OGQ5ZGRhNTQzZjJmM2QgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1NvdXJjZXNDb2NvYS50eHQKQEAgLTU0LDYgKzU0LDcgQEAgVGVzdHMvV2ViS2l0Q29jb2Ev
QXVkaW9CdWZmZXJTaXplLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9BdWRpb1JvdXRpbmdBcmJpdHJh
dGlvbi5tbQogVGVzdHMvV2ViS2l0Q29jb2EvQXV0b0ZpbGxBdmFpbGFibGUubW0KIFRlc3RzL1dl
YktpdENvY29hL0F1dG9MYXlvdXRJbnRlZ3JhdGlvbi5tbQorVGVzdHMvV2ViS2l0Q29jb2EvQnVu
ZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5tbQogVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxl
RWRpdGluZ0RlbGVnYXRlLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVGb3JtRGVsZWdhdGUu
bW0KIFRlc3RzL1dlYktpdENvY29hL0J1bmRsZVBhZ2VDb25zb2xlTWVzc2FnZS5tbQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA1YTUwZGZiMmYwMjVkYTQ0MDgzOWEzMzdjNjVlZjU2MmIwZjBl
ZGUzLi42MDcxYzEyODNjZDI0N2RhYzdmOTFlMTNlODgzMjNmMDEyZWFmOTQ4IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNzY4LDYgKzc2OCw3IEBACiAJCTkzRjU2REE3MUU1RjkxNzQwMDNF
REU4NCAvKiBsaWJpY3Vjb3JlLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0M4M0UwMzMxRDBBNUYyNzAwRkVCQ0YzIC8qIGxpYmljdWNvcmUu
ZHlsaWIgKi87IH07CiAJCTkzRjdFODZGMTREQzhFNUMwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjdFODZFMTREQzhFNUIwMEM4NEE5OSAvKiBOZXdG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCAqLzsgfTsKIAkJOTNG
Q0RCMzQyNjM2MzE1NjAwNDZERDdEIC8qIFNvcnRlZEFycmF5TWFwLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRkNEQjMzMjYzNjMxNTYwMDQ2REQ3
RCAvKiBTb3J0ZWRBcnJheU1hcC5jcHAgKi87IH07CisJCTk1MjhFNUZEMjc5QTAzNDEwMDhBREZF
RiAvKiBCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUGx1Z0luLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUyOEU1RkMyNzlBMDMzODAwOEFE
RkVGIC8qIEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQbHVnSW4ubW0gKi87IH07CiAJ
CTk1MkY3MTY3MjcwQkQ5Q0IwMEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUyRjcxNjYy
NzBCRDk5NzAwRDAwRENDIC8qIENTU1ZpZXdwb3J0VW5pdHMuaHRtbCAqLzsgfTsKIAkJOTUyRjcx
NjcyNzBCRDlDQjAwRDAwRENEIC8qIENTU1ZpZXdwb3J0VW5pdHMuc3ZnIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MkY3MTY2MjcwQkQ5OTcw
MEQwMERDRCAvKiBDU1NWaWV3cG9ydFVuaXRzLnN2ZyAqLzsgfTsKIAkJOTVDNTI3MjkyNzVGMzVF
MTAwREE3RTQwIC8qIEZvbnRTaGFkb3dUZXN0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUM1MjcyODI3NUYzNUUxMDBEQTdFNDAgLyogRm9udFNo
YWRvd1Rlc3RzLmNwcCAqLzsgfTsKQEAgLTI1NDAsNiArMjU0MSw5IEBACiAJCTkzRkNEQjMzMjYz
NjMxNTYwMDQ2REQ3RCAvKiBTb3J0ZWRBcnJheU1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTb3J0ZWRBcnJheU1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk1MDk1RjFGMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9y
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2FtcGxlZFBhZ2VU
b3BDb2xvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwRTRDQzAyNTJFNzUy
MzAwNzE2NTlGIC8qIGlPU1N0eWx1c1N1cHBvcnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBpT1NTdHlsdXNTdXBwb3J0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5NTI4RTVGQTI3OUEwMzM3MDA4QURGRUYgLyogQnVuZGxlQ1NTU3R5bGVEZWNs
YXJhdGlvbkhhbmRsZVByb3RvY29sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ1bmRsZUNTU1N0eWxlRGVj
bGFyYXRpb25IYW5kbGVQcm90b2NvbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NTI4RTVGQjI3OUEwMzM3MDA4QURGRUYgLyogQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRs
ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5k
bGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MjhFNUZDMjc5QTAzMzgwMDhB
REZFRiAvKiBCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUGx1Z0luLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVBsdWdJbi5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUyRjcxNjQyNzBCRDk3RTAwRDAwRENDIC8q
IENTU1ZpZXdwb3J0VW5pdHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBDU1NWaWV3cG9ydFVuaXRzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NTJGNzE2NjI3MEJEOTk3MDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5odG1sICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRo
ID0gQ1NTVmlld3BvcnRVbml0cy5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NTJGNzE2NjI3MEJEOTk3MDBEMDBEQ0QgLyogQ1NTVmlld3BvcnRVbml0cy5zdmcgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSBDU1NWaWV3cG9ydFVuaXRzLnN2Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMz
ODgsNiArMzM5Miw5IEBACiAJCQkJMkREMzU1MzUxQkQwODM3ODAwNURGNEE3IC8qIEF1dG9MYXlv
dXRJbnRlZ3JhdGlvbi5tbSAqLywKIAkJCQkwN0NEMzJGNTIwNjVCNTQyMDA2NEE0QkUgLyogQVZG
b3VuZGF0aW9uUHJlZmVyZW5jZS5tbSAqLywKIAkJCQk1QzQyNTk0NDIyNjY5RTlCMDAzOUFBN0Eg
LyogQmFzaWNQcm9wb3NlZENyZWRlbnRpYWxQbHVnSW4ubW0gKi8sCisJCQkJOTUyOEU1RkIyNzlB
MDMzNzAwOEFERkVGIC8qIEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUubW0gKi8sCisJ
CQkJOTUyOEU1RkMyNzlBMDMzODAwOEFERkVGIC8qIEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGVQbHVnSW4ubW0gKi8sCisJCQkJOTUyOEU1RkEyNzlBMDMzNzAwOEFERkVGIC8qIEJ1bmRs
ZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQcm90b2NvbC5oICovLAogCQkJCTM3NEI3QTVFMURG
MzZFRUUwMEFDQ0I2QyAvKiBCdW5kbGVFZGl0aW5nRGVsZWdhdGUubW0gKi8sCiAJCQkJMzc0QjdB
NUYxREYzNkVFRTAwQUNDQjZDIC8qIEJ1bmRsZUVkaXRpbmdEZWxlZ2F0ZVBsdWdJbi5tbSAqLywK
IAkJCQkzNzRCN0E2MjFERjM3MzRDMDBBQ0NCNkMgLyogQnVuZGxlRWRpdGluZ0RlbGVnYXRlUHJv
dG9jb2wuaCAqLywKQEAgLTU4ODgsNiArNTg5NSw3IEBACiAJCQkJNDkxQUVFRjgyNjUyRTMzNTAw
RDUzMEE4IC8qIEFwcFByaXZhY3lSZXBvcnRQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
NTRDRUM4MTFGNjcyMkYyMDBEMDAzOUEgLyogQXV0b0ZpbGxBdmFpbGFibGUubW0gaW4gU291cmNl
cyAqLywKIAkJCQk1QzQyNTk0NjIyNjZBNjhBMDAzOUFBN0EgLyogQmFzaWNQcm9wb3NlZENyZWRl
bnRpYWxQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKKwkJCQk5NTI4RTVGRDI3OUEwMzQxMDA4QURG
RUYgLyogQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVBsdWdJbi5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTM3NEI3QTYxMURGMzcxQ0YwMEFDQ0I2QyAvKiBCdW5kbGVFZGl0aW5nRGVsZWdh
dGVQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QTg5QkI2ODIzMzE2NDNBMDA0MkNCMUUg
LyogQnVuZGxlRm9ybURlbGVnYXRlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3NUM3
QTIyNkY4NzYyMzAwMDNBRjVDIC8qIEJ1bmRsZVBhZ2VDb25zb2xlTWVzc2FnZS5tbSBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9CdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1tCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjg3ZGQ5NGZkNzBlYjRlOGNhYjhlMGNjOWU3OWZhMTgyM2QwZWExNGMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRs
ZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUubW0KQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgor
CisjaW1wb3J0ICJCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJvdG9jb2wuaCIKKyNp
bXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJU
ZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9u
RXh0cmFzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KKyNpbXBv
cnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLUmVtb3Rl
T2JqZWN0SW50ZXJmYWNlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLUmVtb3RlT2JqZWN0UmVnaXN0
cnkuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworc3RhdGljIGJvb2wgZGlkVmVyaWZ5
UHJvcGVydHlBbmRWYWx1ZTsKK3N0YXRpYyBib29sIGRpZFZlcmlmeVN0eWxlOworCitAaW50ZXJm
YWNlIEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVSZW1vdGVPYmplY3QgOiBOU09iamVj
dCA8QnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVByb3RvY29sPgorQGVuZAorCitAaW1w
bGVtZW50YXRpb24gQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVJlbW90ZU9iamVjdAor
CistICh2b2lkKXZlcmlmeVByb3BlcnR5OihOU1N0cmluZyAqKXByb3BlcnR5IHZhbHVlOihOU1N0
cmluZyAqKXZhbHVlCit7CisgICAgaWYgKFtwcm9wZXJ0eSBpc0VxdWFsVG9TdHJpbmc6QCJjb2xv
ciJdKQorICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoInJlZCIsIHZhbHVlKTsKKyAgICBlbHNlCisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworCisgICAgZGlkVmVyaWZ5UHJvcGVydHlBbmRW
YWx1ZSA9IHRydWU7Cit9CisKKy0gKHZvaWQpdmVyaWZ5U3R5bGU6KEJPT0wpdmFsaWQKK3sKKyAg
ICBFWFBFQ1RfVFJVRSh2YWxpZCk7CisKKyAgICBkaWRWZXJpZnlTdHlsZSA9IHRydWU7Cit9CisK
K0BlbmQKKworVEVTVChXZWJLaXQsIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRp
b25IYW5kbGUpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gcmV0YWluUHRyKFtXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFt
ZTpAIkJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQbHVnSW4iXSk7CisgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsK
KworICAgIGF1dG8gb2JqZWN0ID0gYWRvcHROUyhbW0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGVSZW1vdGVPYmplY3QgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGludGVyZmFjZSA9IHJl
dGFpblB0cihbX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlIHJlbW90ZU9iamVjdEludGVyZmFjZVdp
dGhQcm90b2NvbDpAcHJvdG9jb2woQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVByb3Rv
Y29sKV0pOworICAgIFtbd2ViVmlldyBfcmVtb3RlT2JqZWN0UmVnaXN0cnldIHJlZ2lzdGVyRXhw
b3J0ZWRPYmplY3Q6b2JqZWN0LmdldCgpIGludGVyZmFjZTppbnRlcmZhY2UuZ2V0KCldOworCisg
ICAgTlNTdHJpbmcgKmh0bWwgPSBAKAorICAgICAgICAiPHNjcmlwdD4iCisgICAgICAgICJmdW5j
dGlvbiB2ZXJpZnlTdHlsZShzdHlsZSkgeyIKKyAgICAgICAgIiAgICByZXR1cm4gc3R5bGUgPT09
IGRvY3VtZW50LmJvZHkuc3R5bGU7IgorICAgICAgICAifSIKKyAgICAgICAgIjwvc2NyaXB0PiIK
KyAgICAgICAgIjxib2R5IHN0eWxlPSdjb2xvcjogcmVkOyc+IgorICAgICAgICAiICAgIEhlbGxv
IFdvcmxkISIKKyAgICAgICAgIjwvYm9keT4iCisgICAgKTsKKyAgICBbd2ViVmlldyBsb2FkSFRN
TFN0cmluZzpodG1sIGJhc2VVUkw6bmlsXTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZGlkVmVyaWZ5UHJvcGVydHlBbmRWYWx1ZSk7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkaWRWZXJpZnlTdHlsZSk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQbHVnSW4u
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUNTU1N0eWxl
RGVjbGFyYXRpb25IYW5kbGVQbHVnSW4ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2YxNDMwOWQ2NDY5ZTY0ZjY4
YjJjYTNjOTcyZWEzYzFjMmFhNWIyMQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVBs
dWdJbi5tbQpAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisKKyNpbXBvcnQgIkJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQcm90b2NvbC5oIgor
I2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nl
c3NQbHVnSW4uaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXJQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1
Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJv
Y2Vzc1BsdWdJbkZyYW1lLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luTG9h
ZERlbGVnYXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29y
bGQuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaD4KKyNpbXBv
cnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oPgorI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgorCitAaW50ZXJmYWNlIEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQbHVn
SW4gOiBOU09iamVjdCA8V0tXZWJQcm9jZXNzUGx1Z0luLCBXS1dlYlByb2Nlc3NQbHVnSW5Mb2Fk
RGVsZWdhdGU+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBCdW5kbGVDU1NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlUGx1Z0luIHsKKyAgICBSZXRhaW5QdHI8V0tXZWJQcm9jZXNzUGx1Z0luQnJvd3Nl
ckNvbnRleHRDb250cm9sbGVyPiBfYnJvd3NlckNvbnRleHRDb250cm9sbGVyOworICAgIFJldGFp
blB0cjxXS1dlYlByb2Nlc3NQbHVnSW5Db250cm9sbGVyPiBfcGx1Z0luQ29udHJvbGxlcjsKKyAg
ICBSZXRhaW5QdHI8aWQgPEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQcm90b2NvbD4+
IF9yZW1vdGVPYmplY3Q7Cit9CisKKy0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbjooV0tXZWJQcm9j
ZXNzUGx1Z0luQ29udHJvbGxlciAqKXBsdWdJbkNvbnRyb2xsZXIgZGlkQ3JlYXRlQnJvd3NlckNv
bnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xs
ZXIgKilicm93c2VyQ29udGV4dENvbnRyb2xsZXIKK3sKKyAgICBBU1NFUlQoIV9icm93c2VyQ29u
dGV4dENvbnRyb2xsZXIpOworICAgIEFTU0VSVCghX3BsdWdJbkNvbnRyb2xsZXIpOworICAgIF9i
cm93c2VyQ29udGV4dENvbnRyb2xsZXIgPSBicm93c2VyQ29udGV4dENvbnRyb2xsZXI7CisgICAg
X3BsdWdJbkNvbnRyb2xsZXIgPSBwbHVnSW5Db250cm9sbGVyOworCisgICAgYXV0byBpbnRlcmZh
Y2UgPSByZXRhaW5QdHIoW19XS1JlbW90ZU9iamVjdEludGVyZmFjZSByZW1vdGVPYmplY3RJbnRl
cmZhY2VXaXRoUHJvdG9jb2w6QHByb3RvY29sKEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5k
bGVQcm90b2NvbCldKTsKKyAgICBfcmVtb3RlT2JqZWN0ID0gW2Jyb3dzZXJDb250ZXh0Q29udHJv
bGxlci5fcmVtb3RlT2JqZWN0UmVnaXN0cnkgcmVtb3RlT2JqZWN0UHJveHlXaXRoSW50ZXJmYWNl
OmludGVyZmFjZS5nZXQoKV07CisKKyAgICBbX2Jyb3dzZXJDb250ZXh0Q29udHJvbGxlciBzZXRM
b2FkRGVsZWdhdGU6c2VsZl07Cit9CisKKy0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9s
bGVyICopY29udHJvbGxlciBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZTooV0tXZWJQcm9j
ZXNzUGx1Z0luRnJhbWUgKilmcmFtZQoreworICAgIGF1dG8gY29udGV4dCA9IFtmcmFtZSBqc0Nv
bnRleHRGb3JXb3JsZDpXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5ub3JtYWxXb3JsZF07
CisgICAgYXV0byBqc0NTU1N0eWxlRGVjbGFyYXRpb24gPSBbY29udGV4dCBldmFsdWF0ZVNjcmlw
dDpAImRvY3VtZW50LmJvZHkuc3R5bGUiXTsKKyAgICBhdXRvIGNzc1N0eWxlRGVjbGFyYXRpb25I
YW5kbGUgPSBbV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSBjc3NT
dHlsZURlY2xhcmF0aW9uSGFuZGxlV2l0aEpTVmFsdWU6anNDU1NTdHlsZURlY2xhcmF0aW9uIGlu
Q29udGV4dDpjb250ZXh0XTsKKworICAgIFtfcmVtb3RlT2JqZWN0IHZlcmlmeVByb3BlcnR5OkAi
Y29sb3IiIHZhbHVlOltjc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxlIGdldFByb3BlcnR5VmFsdWU6
QCJjb2xvciJdXTsKKworICAgIGF1dG8ganNDU1NTdHlsZURlY2xhcmF0aW9uRm9yQ1NTU3R5bGVE
ZWNsYXJhdGlvbkhhbmRsZSA9IFtmcmFtZSBqc0NTU1N0eWxlRGVjbGFyYXRpb25Gb3JDU1NTdHls
ZURlY2xhcmF0aW9uSGFuZGxlOmNzc1N0eWxlRGVjbGFyYXRpb25IYW5kbGUgaW5Xb3JsZDpXS1dl
YlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5ub3JtYWxXb3JsZF07CisKKyAgICBpZiAoanNDU1NT
dHlsZURlY2xhcmF0aW9uICE9IGpzQ1NTU3R5bGVEZWNsYXJhdGlvbkZvckNTU1N0eWxlRGVjbGFy
YXRpb25IYW5kbGUpCisgICAgICAgIFtfcmVtb3RlT2JqZWN0IHZlcmlmeVN0eWxlOk5PXTsKKyAg
ICBlbHNlIHsKKyAgICAgICAgYXV0byBqc1ZlcmlmeVN0eWxlID0gW2NvbnRleHQgZXZhbHVhdGVT
Y3JpcHQ6QCJ2ZXJpZnlTdHlsZSJdOworICAgICAgICBbX3JlbW90ZU9iamVjdCB2ZXJpZnlTdHls
ZTpbanNWZXJpZnlTdHlsZSBjYWxsV2l0aEFyZ3VtZW50czpAW2pzQ1NTU3R5bGVEZWNsYXJhdGlv
bkZvckNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVdXS50b0Jvb2xdOworICAgIH0KK30KKworQGVu
ZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5k
bGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJvdG9jb2wuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVByb3Rv
Y29sLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmU2ZjExNjBjNTdmMDNmZDg1YmMwYzFmNmI2YmMwYTdhNTI2MDc2
NQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVByb3RvY29sLmgKQEAgLTAsMCArMSwz
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKworQHBy
b3RvY29sIEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQcm90b2NvbCA8TlNPYmplY3Q+
CistICh2b2lkKXZlcmlmeVByb3BlcnR5OihOU1N0cmluZyAqKXByb3BlcnR5IHZhbHVlOihOU1N0
cmluZyAqKXZhbHVlOworLSAodm9pZCl2ZXJpZnlTdHlsZTooQk9PTCl2YWxpZDsKK0BlbmQKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29va2llUHJp
dmF0ZUJyb3dzaW5nLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9D
b29raWVQcml2YXRlQnJvd3NpbmcubW0KaW5kZXggMzQ3YTE1YzllYWZlNDhiZDRjYTk4ZTM2Nzc0
YjFhZjJjMDVlMzM2ZC4uY2FlOTQ2ZDJhMTYxZjQ3ZmI5MzdlODQ3ZjNjNTlkODhjNGRmNzcxMCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db29raWVQ
cml2YXRlQnJvd3NpbmcubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Db29raWVQcml2YXRlQnJvd3NpbmcubW0KQEAgLTM4LDcgKzM4LDcgQEAKICNpbXBvcnQg
PHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogI2ltcG9ydCA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKLXN0YXRpYyBib29sIHJlY2VpdmVkQWxlcnQ7CitzdGF0aWMgYm9vbCBk
aWRSdW5KYXZhU2NyaXB0QWxlcnRGb3JDb29raWVQcml2YXRlQnJvd3Npbmc7CiAKIEBpbnRlcmZh
Y2UgQ29va2llUHJpdmF0ZUJyb3dzaW5nRGVsZWdhdGUgOiBOU09iamVjdCA8V0tVSURlbGVnYXRl
PgogQGVuZApAQCAtNDgsNyArNDgsNyBAQCBAaW1wbGVtZW50YXRpb24gQ29va2llUHJpdmF0ZUJy
b3dzaW5nRGVsZWdhdGUKIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBydW5K
YXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5pdGlh
dGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
Xikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBFWFBFQ1RfU1RSRVEobWVzc2FnZS5V
VEY4U3RyaW5nLCAib2xkIGNvb2tpZTogPD4iKTsKLSAgICByZWNlaXZlZEFsZXJ0ID0gdHJ1ZTsK
KyAgICBkaWRSdW5KYXZhU2NyaXB0QWxlcnRGb3JDb29raWVQcml2YXRlQnJvd3NpbmcgPSB0cnVl
OwogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKQEAgLTY5LDEwICs2OSwxMCBAQCBURVNU
KFdlYktpdCwgQ29va2llUHJpdmF0ZUJyb3dzaW5nKQogICAgIFt2aWV3MiBzZXRVSURlbGVnYXRl
OmRlbGVnYXRlLmdldCgpXTsKICAgICBOU1N0cmluZyAqYWxlcnRPbGRDb29raWUgPSBAIjxzY3Jp
cHQ+dmFyIG9sZENvb2tpZSA9IGRvY3VtZW50LmNvb2tpZTsgZG9jdW1lbnQuY29va2llID0gJ2tl
eT12YWx1ZSc7IGFsZXJ0KCdvbGQgY29va2llOiA8JyArIG9sZENvb2tpZSArICc+Jyk7PC9zY3Jp
cHQ+IjsKICAgICBbdmlldzEgbG9hZEhUTUxTdHJpbmc6YWxlcnRPbGRDb29raWUgYmFzZVVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS8iXV07Ci0gICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZEFsZXJ0KTsKLSAgICByZWNlaXZlZEFsZXJ0ID0g
ZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRSdW5KYXZhU2NyaXB0QWxl
cnRGb3JDb29raWVQcml2YXRlQnJvd3NpbmcpOworICAgIGRpZFJ1bkphdmFTY3JpcHRBbGVydEZv
ckNvb2tpZVByaXZhdGVCcm93c2luZyA9IGZhbHNlOwogICAgIFt2aWV3MiBsb2FkSFRNTFN0cmlu
ZzphbGVydE9sZENvb2tpZSBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL2V4
YW1wbGUuY29tLyJdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkQWxl
cnQpOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkUnVuSmF2YVNjcmlwdEFsZXJ0
Rm9yQ29va2llUHJpdmF0ZUJyb3dzaW5nKTsKIH0KIAogVEVTVChXZWJLaXQsIENvb2tpZUNhY2hl
U3luY0Fjcm9zc1Byb2Nlc3MpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL01vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb24ubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL01vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb24ubW0KaW5k
ZXggYWI0NTczODFmZGM3MWM5OTBjNjFhMzU5NmM5MDhiNjdkMGMyMzlkNC4uYjk4OTBiZTgyNWQ5
NzQ5YjRmMzg2NDJmZmVlZWU0MWQ5ZDU3ZDdkNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Nb2RhbENvbnRhaW5lck9ic2VydmF0aW9uLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTW9kYWxDb250YWluZXJPYnNl
cnZhdGlvbi5tbQpAQCAtMjcsMTAgKzI3LDEyIEBACiAjaW1wb3J0ICJUZXN0LmgiCiAKICNpbXBv
cnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRl
LmgiCiAjaW1wb3J0ICJUZXN0UHJvdG9jb2wuaCIKICNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIK
ICNpbXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaCIKICNpbXBvcnQgPFdlYktp
dC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLVUlEZWxlZ2F0ZVBy
aXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5o
PgogI2ltcG9ydCA8V2ViS2l0L1dLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oPgogI2ltcG9y
dCA8V2ViS2l0L19XS01vZGFsQ29udGFpbmVySW5mby5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXN0b3JlU2Vzc2lvblN0YXRlV2l0aG91dE5h
dmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc3Rv
cmVTZXNzaW9uU3RhdGVXaXRob3V0TmF2aWdhdGlvbi5tbQppbmRleCBjMzUzMGQwYWVlOWQ4ZmVk
ODYyMGQ3NDc0OWY4Yjc5OGM5N2UwYzA0Li5iNzM2OWMxNjlkNjUwY2M1YjRjNWVjYjU4M2QwYzc2
Y2NjYzFmYWIyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1Jlc3RvcmVTZXNzaW9uU3RhdGVXaXRob3V0TmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc3RvcmVTZXNzaW9uU3RhdGVXaXRob3V0
TmF2aWdhdGlvbi5tbQpAQCAtNDUsNyArNDUsNyBAQCBAaW50ZXJmYWNlIFdLV2ViVmlldyAoKQog
LSAoV0tQYWdlUmVmKV9wYWdlRm9yVGVzdGluZzsKIEBlbmQKIAotc3RhdGljIGJvb2wgZGlkRmlu
aXNoTG9hZDsKK3N0YXRpYyBib29sIGRpZEZpbmlzaE5hdmlnYXRpb25Gb3JTZXNzaW9uU3RhdGU7
CiBzdGF0aWMgYm9vbCBkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3Q7CiAgICAgCiBAaW50ZXJmYWNl
IFNlc3Npb25TdGF0ZURlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPgpA
QCAtNTUsNyArNTUsNyBAQCBAaW1wbGVtZW50YXRpb24gU2Vzc2lvblN0YXRlRGVsZWdhdGUKIAog
LSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZpbmlzaE5hdmlnYXRpb246
KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24KIHsKLSAgICBkaWRGaW5pc2hMb2FkID0gdHJ1ZTsK
KyAgICBkaWRGaW5pc2hOYXZpZ2F0aW9uRm9yU2Vzc2lvblN0YXRlID0gdHJ1ZTsKIH0KIAogLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBiYWNrRm9yd2FyZExpc3RJdGVtQWRk
ZWQ6KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW1BZGRlZCByZW1vdmVkOihOU0FycmF5PFdL
QmFja0ZvcndhcmRMaXN0SXRlbSAqPiAqKWl0ZW1zUmVtb3ZlZApAQCAtNzMsOCArNzMsOCBAQCBz
dGF0aWMgV0tSZXRhaW5QdHI8V0tEYXRhUmVmPiBjcmVhdGVTZXNzaW9uU3RhdGVEYXRhKCkKICAg
ICBhdXRvIHZpZXcgPSBhZG9wdE5TKFtXS1dlYlZpZXcgbmV3XSk7CiAgICAgW3ZpZXcgc2V0TmF2
aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKICAgICBbdmlldyBsb2FkUmVxdWVzdDpb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJzaW1wbGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJU
ZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2Fk
KTsKLSAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CisgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hO
YXZpZ2F0aW9uRm9yU2Vzc2lvblN0YXRlKTsKKyAgICBkaWRGaW5pc2hOYXZpZ2F0aW9uRm9yU2Vz
c2lvblN0YXRlID0gZmFsc2U7CiAKICAgICBOU0RhdGEgKmRhdGEgPSBbdmlldyBfc2Vzc2lvblN0
YXRlRGF0YV07CiAgICAgcmV0dXJuIGFkb3B0V0soV0tEYXRhQ3JlYXRlKHN0YXRpY19jYXN0PGNv
bnN0IHVuc2lnbmVkIGNoYXIqPihkYXRhLmJ5dGVzKSwgZGF0YS5sZW5ndGgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449613</attachid>
            <date>2022-01-20 15:22:06 -0800</date>
            <delta_ts>2022-01-20 19:07:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235386-20220120162205.patch</filename>
            <type>text/plain</type>
            <size>48998</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYzRlZTg3MmUwYTQ5ZGY1YzRlMzJlZjEwNDM4OTgyYzMxMzg2NzhiZS4uOTFk
NmM3MzJlMGFiNDgyODFkNGQ2NWMzYzhmMjViNzM2OGFkNWZkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0OCBAQAorMjAyMi0wMS0yMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIFNQSSBmb3IgcGFzc2luZyBhcm91bmQgYW5kIGdldHRpbmcgZGV0YWlscyBh
Ym91dCBgV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbmAgaW4gaW5qZWN0ZWQgYnVuZGxlIGNv
ZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTM4
NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODc1NjY3Mzc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogV2ViS2l0LldLV2ViUHJvY2Vzc1Bs
dWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUKKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxl
Q1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVk
QnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTo6Z2V0T3JDcmVhdGUpOgorICAgICAgICAo
V2ViS2l0OjpJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGU6OmNvcmVDU1NT
dHlsZURlY2xhcmF0aW9uKTogQWRkZWQuCisgICAgICAgIEV4cG9zZSBhIHdheSB0byBnZXQgdGhl
IHJlbGF0ZWQgYFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb25gIChmb3IgYHRvSlNgKS4KKyAg
ICAgICAgQWRkIGEgbWV0aG9kIHRoYXQgcmV0dXJucyB0aGUgc3RyaW5nIHZhbHVlIGZvciBhIGdp
dmVuIHByb3BlcnR5IG5hbWUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmg6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVJbnRlcm5hbC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlBy
b2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1tOiBBZGRlZC4KKyAgICAgICAg
KC1bV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSBkZWFsbG9jXSk6
CisgICAgICAgICgrW1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUg
Y3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVdpdGhKU1ZhbHVlOmluQ29udGV4dDpdKToKKyAgICAg
ICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSBfY3NzU3R5
bGVEZWNsYXJhdGlvbkhhbmRsZV0pOgorICAgICAgICAoLVtXS1dlYlByb2Nlc3NQbHVnSW5DU1NT
dHlsZURlY2xhcmF0aW9uSGFuZGxlIF9hcGlPYmplY3RdKToKKyAgICAgICAgQWRkIE9iakMgU1BJ
IGZvciBtYW5pcHVsYXRpbmcgYFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb25gIChpbiB0aGUg
aW5qZWN0ZWQgYnVuZGxlKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lOjpqc1dyYXBwZXJGb3JXb3JsZCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nl
c3NQbHVnSW5GcmFtZS5tbToKKyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUganND
U1NTdHlsZURlY2xhcmF0aW9uRm9yQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTppbldvcmxkOl0p
OiBBZGRlZC4KKyAgICAgICAgQWRkIG1ldGhvZHMgZm9yIGNvbnZlcnRpbmcgZnJvbSBPYmpDIFNQ
SSB3cmFwcGVycyBvZiBgV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbmAgdG8gSlMuCisKKyAg
ICAgICAgKiBTaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tOgorICAgICAgICAoQVBJOjpPYmplY3Q6
Om5ld09iamVjdCk6CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhdXRvbWF0aWMgY29udmVyc2lv
biBvZiBgV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uUmVmYCB0byBPYmpDIChhYm92ZSkuCisK
KyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0
OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIERyaXZlLWJ5
OiBVbmlmaWVkIHNvdXJjZXMgZml4ZXMuCisKIDIwMjItMDEtMTkgIFNhaWQgQWJvdS1IYWxsYXdh
ICA8c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBJbWFnZUJ1ZmZlcjo6
Y29udmVydFRvTHVtaW5hbmNlTWFzaygpIGFuZCB0cmFuc2Zvcm1Ub0NvbG9yU3BhY2UoKSBzaG91
bGQgbm90IGFjY2VzcyB0aGUgYmFja2VuZCBpbiBXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5j
bWFrZQppbmRleCA4NGFhODgyOGRmYzZhMDkzZTFkNjhmMDY1ODBmYWViNWQ3MDRkYmI2Li5lMjk2
NmQ1MTNiYjU4MzlkZjEyYjMyMmFmMmVlYjA1NGViNGQ2NjU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1NYWMu
Y21ha2UKQEAgLTQ5MCw2ICs0OTAsNyBAQCBsaXN0KEFQUEVORCBXZWJLaXRfUFVCTElDX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgVUlQcm9jZXNzL0NvY29hL1dLU2hhcmVTaGVldC5oCiAKICAgICBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NCdW5kbGVQYXJh
bWV0ZXJzLmgKKyAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlBy
b2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmgKICAgICBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGUu
aAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1Bs
dWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGUuaAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL0FQSU9iamVjdC5tbQppbmRleCAxMzIyOTUyY2FkMTBhNWUyMmIwZTIxZDNlOTc4ZDc1ZTE3
ZTVlMDI2Li40MjZiMjNlOGQ0Y2ViYTc0Zjk3ZTc1M2QzOTc0MGVkM2ZjMDQ5OWYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0KKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tCkBAIC01OSw2ICs1OSw3IEBACiAjaW1w
b3J0ICJXS1VzZXJDb250ZW50Q29udHJvbGxlckludGVybmFsLmgiCiAjaW1wb3J0ICJXS1VzZXJT
Y3JpcHRJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRl
eHRDb250cm9sbGVySW50ZXJuYWwuaCIKKyNpbXBvcnQgIldLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJl
c3VsdEludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5JbnRlcm5hbC5oIgpA
QCAtNDIyLDYgKzQyMywxMCBAQCB2b2lkKiBPYmplY3Q6Om5ld09iamVjdChzaXplX3Qgc2l6ZSwg
VHlwZSB0eXBlKQogICAgICAgICB3cmFwcGVyID0gW1dLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RS
ZXN1bHQgYWxsb2NdOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgVHlwZTo6QnVuZGxlQ1NT
U3R5bGVEZWNsYXJhdGlvbkhhbmRsZToKKyAgICAgICAgd3JhcHBlciA9IFtXS1dlYlByb2Nlc3NQ
bHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlIGFsbG9jXTsKKyAgICAgICAgYnJlYWs7CisK
ICAgICBjYXNlIFR5cGU6OkJ1bmRsZU5vZGVIYW5kbGU6CiAgICAgICAgIHdyYXBwZXIgPSBbV0tX
ZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSBhbGxvY107CiAgICAgICAgIGJyZWFrOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CmluZGV4IDExZjBjMjQwNWFjOTQ3NGJlOGY4ZTgwNWZlZWJjOGYxYmI2OTYw
MDIuLjU1MDcyYTE3NWI2NTExMzI4NzIwODQ3NTE1MWJhNmIzMjUxM2JhMjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQKQEAgLTYzNSw2ICs2MzUsNyBAQCBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL21hYy9XS0J1bmRsZU1hYy5tbQogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9tYWMvV0tCdW5kbGVQYWdlQmFubmVyTWFjLm1tCiAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc0J1bmRsZVBhcmFtZXRlcnMubW0KK1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFy
YXRpb25IYW5kbGUubW0KIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2Vi
UHJvY2Vzc1BsdWdJbkZyYW1lLm1tCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0Lm1tCiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLm1tCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0MWRhNzM3
ZTllZWRjNmQ2OTg1ZWJlZTc4ODdmOTY0NzU4YjA5MGI4Li5hYmFhNzE0ZGUyYTcwNzg1MWZiM2U4
OTUyMzliOTU0MDA5NTY3ZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTE0ODYsNiArMTQ4Niw4IEBACiAJCTkzRTc5OURDMjc2MTIx
MDgwMDc0MDA4QSAvKiBTdG9yYWdlQXJlYUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTc5OUQ2Mjc2MTIxMDgwMDc0MDA4QSAvKiBTdG9yYWdl
QXJlYUJhc2UuaCAqLzsgfTsKIAkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNo
b3RDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTk1
MEYyODgwMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0RTkw
MEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKKwkJOTUyQkMwQTEyNzk3
QTM2ODAwM0YzRDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5k
bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTUyQkMwOUUyNzk3QTM2NjAwM0YzRDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxl
RGVjbGFyYXRpb25IYW5kbGVJbnRlcm5hbC5oICovOyB9OworCQk5NTJCQzBBMzI3OTdBMzY4MDAz
RjNEMjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUyQkMwQTAyNzk3
QTM2NzAwM0YzRDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5k
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5
NTY1MDgzOTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTY1MDgzNzI2RDg3QTJC
MDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmggKi87IH07CiAJCTk1NjUwODNBMjZE
ODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU2NTA4MzgyNkQ4N0EyQjAwRTE1Q0I3
IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmggKi87IH07CiAJCTk1OTM2NzVGMjUyRTVFMzEw
MEQzRjBBMCAvKiBXS1N0eWx1c0RldmljZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTkzNjc1RDI1MkU1RTMwMDBEM0YwQTAgLyogV0tT
dHlsdXNEZXZpY2VPYnNlcnZlci5oICovOyB9OwpAQCAtNTM2NSw2ICs1MzY3LDkgQEAKIAkJOTNG
NTQ5QjUxRTMxNzREQTAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTbmFwc2hvdENvbmZpZ3VyYXRp
b24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEYyODdFMjUyNDE0RTkwMEI3
NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV0tNb3VzZURldmljZU9ic2VydmVyLmg7IHBhdGggPSBpb3MvV0tNb3VzZURldmlj
ZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEYyODdGMjUyNDE0
RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHBhdGggPSBp
b3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5NTJCQzA5RTI3OTdBMzY2MDAzRjNEMjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVE
ZWNsYXJhdGlvbkhhbmRsZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVJbnRlcm5hbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTJCQzA5RjI3OTdBMzY3MDAzRjNEMjUg
LyogV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1
MkJDMEEwMjc5N0EzNjcwMDNGM0QyNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xh
cmF0aW9uSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJv
Y2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTU2NTA4MzcyNkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNl
c1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZU1lZGlhU2Vydmlj
ZXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTU2NTA4MzgyNkQ4N0EyQjAw
RTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk1OTM2NzVEMjUyRTVFMzAwMEQzRjBBMCAvKiBXS1N0eWx1c0RldmljZU9i
c2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLU3R5bHVzRGV2aWNl
T2JzZXJ2ZXIuaDsgcGF0aCA9IGlvcy9XS1N0eWx1c0RldmljZU9ic2VydmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03ODg3LDYgKzc4OTIsOSBAQAogCQkJY2hpbGRyZW4gPSAo
CiAJCQkJMUFBMkU1NjUxOEQ3NzUwODAwMzgxNEJEIC8qIFdLV2ViUHJvY2Vzc0J1bmRsZVBhcmFt
ZXRlcnMuaCAqLywKIAkJCQkxQUEyRTU2NDE4RDc3NTA4MDAzODE0QkQgLyogV0tXZWJQcm9jZXNz
QnVuZGxlUGFyYW1ldGVycy5tbSAqLywKKwkJCQk5NTJCQzBBMDI3OTdBMzY3MDAzRjNEMjUgLyog
V0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oICovLAorCQkJCTk1
MkJDMDlGMjc5N0EzNjcwMDNGM0QyNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xh
cmF0aW9uSGFuZGxlLm1tICovLAorCQkJCTk1MkJDMDlFMjc5N0EzNjYwMDNGM0QyNSAvKiBXS1dl
YlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlSW50ZXJuYWwuaCAqLywKIAkJ
CQkzNzc1MTIyRTFERjBEQzhCMDA4QTM1MUMgLyogV0tXZWJQcm9jZXNzUGx1Z0luRWRpdGluZ0Rl
bGVnYXRlLmggKi8sCiAJCQkJMzc5NTc4OUIxOEFENEYxMTAwQjlFRDJFIC8qIFdLV2ViUHJvY2Vz
c1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGUuaCAqLywKIAkJCQkxRjAxODE2OTE4NThEQzE1MDBG
OTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaCAqLywKQEAgLTEzOTc2LDYgKzEzOTg0
LDggQEAKIAkJCQlCQzhGMkYyQjE2MjczQTJDMDA1RkFDQjUgLyogV0tXZWJQcm9jZXNzUGx1Z0lu
QnJvd3NlckNvbnRleHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzhGMkYyRTE2
MjczQUNDMDA1RkFDQjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9s
bGVySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5NTAxNzI0MTYyQTQ1MDQwMDRBOUQ3
MSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5NTJCQzBBMzI3OTdBMzY4MDAzRjNEMjUgLyogV0tXZWJQcm9j
ZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTUyQkMwQTEyNzk3QTM2ODAwM0YzRDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVj
bGFyYXRpb25IYW5kbGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc3NTEyMkYxREYw
REM4QjAwOEEzNTFDIC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkVkaXRpbmdEZWxlZ2F0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzc5NTc4OUMxOEFENEYxOTAwQjlFRDJFIC8qIFdLV2ViUHJvY2Vzc1Bs
dWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFGNzUwNkIxMTg1
OTE2MzcwMEVDMEZGNyAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9j
ZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmZGFjMWY3
YmI1ZGM2ZDQ1MWQ1NWUyNzdiNzM0MzAxMjk1YzRmYTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vz
c1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaApAQCAtMCwwICsxLDM2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaW1wb3J0IDxGb3Vu
ZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmg+CisKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKQorQGludGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlIDogTlNPYmplY3QKKworKyAoV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJh
dGlvbkhhbmRsZSAqKWNzc1N0eWxlRGVjbGFyYXRpb25IYW5kbGVXaXRoSlNWYWx1ZTooSlNWYWx1
ZSAqKXZhbHVlIGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dDsKKworQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9X
S1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1tIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVn
SW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmYzY2NzM0ZWRiNTFh
YjY5MzQyMWExNGY3OTdjZjZkMTQzN2Q0MWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJ
bkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUubW0KQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5
bGVEZWNsYXJhdGlvbkhhbmRsZUludGVybmFsLmgiCisKKyNpbXBvcnQgPFdlYkNvcmUvQ1NTU3R5
bGVEZWNsYXJhdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgor
CitAaW1wbGVtZW50YXRpb24gV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhh
bmRsZSB7CisgICAgQVBJOjpPYmplY3RTdG9yYWdlPFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVDU1NT
dHlsZURlY2xhcmF0aW9uSGFuZGxlPiBfY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTsKK30KKwor
LSAodm9pZClkZWFsbG9jCit7CisgICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRl
T25NYWluUnVuTG9vcChXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxl
LmNsYXNzLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworICAgIF9jc3NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlLT5+SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlKCk7CisgICAg
W3N1cGVyIGRlYWxsb2NdOworfQorCisrIChXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xh
cmF0aW9uSGFuZGxlICopY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVdpdGhKU1ZhbHVlOihKU1Zh
bHVlICopdmFsdWUgaW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0Cit7CisgICAgSlNDb250
ZXh0UmVmIGNvbnRleHRSZWYgPSBbY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdOworICAgIEpT
T2JqZWN0UmVmIG9iamVjdFJlZiA9IEpTVmFsdWVUb09iamVjdChjb250ZXh0UmVmLCBbdmFsdWUg
SlNWYWx1ZVJlZl0sIG51bGxwdHIpOworICAgIHJldHVybiB3cmFwcGVyKFdlYktpdDo6SW5qZWN0
ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOjpnZXRPckNyZWF0ZShjb250ZXh0UmVm
LCBvYmplY3RSZWYpKTsKK30KKworLSAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVj
bGFyYXRpb25IYW5kbGUmKV9jc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxlCit7CisgICAgcmV0dXJu
ICpfY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTsKK30KKworLy8gTUFSSzogV0tPYmplY3QgcHJv
dG9jb2wgaW1wbGVtZW50YXRpb24KKworLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKK3sKKyAg
ICByZXR1cm4gKl9jc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOworfQorCitAZW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVJbnRlcm5hbC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nl
c3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlSW50ZXJuYWwuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
ODY3ODg0Mzc5NDZkMzFjN2I3Y2MwNTZlNGM3MzcyMzk2Y2MzNTM2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dl
YlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlSW50ZXJuYWwuaApAQCAtMCww
ICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJ
bkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaD4KKworI2ltcG9ydCAiSW5qZWN0ZWRCdW5kbGVD
U1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmgiCisjaW1wb3J0ICJXS09iamVjdC5oIgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgV3JhcHBlclRyYWl0czxJbmplY3Rl
ZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGU+IHsKKyAgICB1c2luZyBXcmFwcGVyQ2xh
c3MgPSBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOworfTsKKwor
fQorCitAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5k
bGUgKCkgPFdLT2JqZWN0PgorCitAcHJvcGVydHkgKHJlYWRvbmx5KSBXZWJLaXQ6OkluamVjdGVk
QnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSYgX2Nzc1N0eWxlRGVjbGFyYXRpb25IYW5k
bGU7CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0lu
RnJhbWUuaAppbmRleCA2MmU2NzYwNGVlNmQwZDhmNjAxYzU4MmEzNDhhMjEzMmM2Nzk5MzY4Li41
NTE0NDkyZDk4NGMxNGY0ZmNjY2E3ZjhlN2ZjZDk5Y2Q4OTgwZjRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vz
c1BsdWdJbkZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5oPgogCiBAY2xhc3MgX1dL
RnJhbWVIYW5kbGU7CitAY2xhc3MgV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlv
bkhhbmRsZTsKIEBjbGFzcyBXS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0OwogQGNsYXNz
IFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGU7CiBAY2xhc3MgV0tXZWJQcm9jZXNzUGx1Z0lu
UmFuZ2VIYW5kbGU7CkBAIC01OCw2ICs1OSw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygx
MC4xMCksIGlvcyg4LjApKQogLSAoSlNDb250ZXh0ICopanNDb250ZXh0Rm9yU2VydmljZVdvcmtl
cldvcmxkOihXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCAqKXdvcmxkOwogLSAoV0tXZWJQ
cm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdCAqKWhpdFRlc3Q6KENHUG9pbnQpcG9pbnQ7CiAtIChX
S1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0ICopaGl0VGVzdDooQ0dQb2ludClwb2ludCBv
cHRpb25zOihXS0hpdFRlc3RPcHRpb25zKW9wdGlvbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
Mi4wKSwgaW9zKDE1LjApKTsKKy0gKEpTVmFsdWUgKilqc0NTU1N0eWxlRGVjbGFyYXRpb25Gb3JD
U1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOihXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xh
cmF0aW9uSGFuZGxlICopY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSBpbldvcmxkOihXS1dlYlBy
b2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCAqKXdvcmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtIChKU1ZhbHVlICopanNOb2RlRm9yTm9kZUhh
bmRsZTooV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSAqKW5vZGVIYW5kbGUgaW5Xb3JsZDoo
V0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgKil3b3JsZDsKIC0gKEpTVmFsdWUgKilqc1Jh
bmdlRm9yUmFuZ2VIYW5kbGU6KFdLV2ViUHJvY2Vzc1BsdWdJblJhbmdlSGFuZGxlICopcmFuZ2VI
YW5kbGUgaW5Xb3JsZDooV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgKil3b3JsZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3MoMTAuMykpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzc1BsdWdJbkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbQppbmRleCBjODExZWFkODI5
Nzg4MDBmZGUwMGRhZmY1YzJjYzRjNzk0NmE4YmM2Li42NzJlMTQ1NjFlODc1ZDE2YjU1YTI1MWFl
NjRhNmI5NThhODBkNGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9j
ZXNzUGx1Z0luRnJhbWUubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIldLTlNBcnJheS5o
IgogI2ltcG9ydCAiV0tOU1VSTEV4dHJhcy5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0lu
QnJvd3NlckNvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKKyNpbXBvcnQgIldLV2ViUHJvY2Vz
c1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tX
ZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdEludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlBy
b2Nlc3NQbHVnSW5Ob2RlSGFuZGxlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2ViUHJvY2Vzc1Bs
dWdJblJhbmdlSGFuZGxlSW50ZXJuYWwuaCIKQEAgLTkxLDYgKzkyLDEyIEBAIC0gKFdLV2ViUHJv
Y2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQgKiloaXRUZXN0OihDR1BvaW50KXBvaW50IG9wdGlvbnM6
KFdLSGl0VGVzdE9wCiAgICAgcmV0dXJuIHdyYXBwZXIoX2ZyYW1lLT5oaXRUZXN0KFdlYkNvcmU6
OkludFBvaW50KHBvaW50KSwgdHlwZXMpKTsKIH0KIAorLSAoSlNWYWx1ZSAqKWpzQ1NTU3R5bGVE
ZWNsYXJhdGlvbkZvckNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGU6KFdLV2ViUHJvY2Vzc1BsdWdJ
bkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUgKiljc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxlIGlu
V29ybGQ6KFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkICopd29ybGQKK3sKKyAgICBKU1Zh
bHVlUmVmIHZhbHVlUmVmID0gX2ZyYW1lLT5qc1dyYXBwZXJGb3JXb3JsZCgmW2Nzc1N0eWxlRGVj
bGFyYXRpb25IYW5kbGUgX2Nzc1N0eWxlRGVjbGFyYXRpb25IYW5kbGVdLCAmW3dvcmxkIF9zY3Jp
cHRXb3JsZF0pOworICAgIHJldHVybiBbSlNWYWx1ZSB2YWx1ZVdpdGhKU1ZhbHVlUmVmOnZhbHVl
UmVmIGluQ29udGV4dDpbc2VsZiBqc0NvbnRleHRGb3JXb3JsZDp3b3JsZF1dOworfQorCiAtIChK
U1ZhbHVlICopanNOb2RlRm9yTm9kZUhhbmRsZTooV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRs
ZSAqKW5vZGVIYW5kbGUgaW5Xb3JsZDooV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgKil3
b3JsZAogewogICAgIEpTVmFsdWVSZWYgdmFsdWVSZWYgPSBfZnJhbWUtPmpzV3JhcHBlckZvcldv
cmxkKCZbbm9kZUhhbmRsZSBfbm9kZUhhbmRsZV0sICZbd29ybGQgX3NjcmlwdFdvcmxkXSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0lu
amVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNs
YXJhdGlvbkhhbmRsZS5jcHAKaW5kZXggOTY1MGJiMzM3YWVhZmM1M2IxZTk5N2EwYTBhZWI5ZmQ1
NmNiNTdhZS4uMzY5NDE0NmM1MDBiYWE1YTdjN2NhZTcxOTYyM2ZkYzBkZTE2ZWU1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3Rl
ZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xh
cmF0aW9uSGFuZGxlLmNwcApAQCAtMjYsNyArMjYsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oIgogCisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ1NT
U3R5bGVEZWNsYXJhdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSlNDU1NTdHlsZURlY2xhcmF0
aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KIApAQCAtNDEsNiArNDMsMTIgQEAgc3RhdGljIERPTVN0eWxlRGVjbGFyYXRpb25I
YW5kbGVDYWNoZSYgZG9tU3R5bGVEZWNsYXJhdGlvbkhhbmRsZUNhY2hlKCkKICAgICByZXR1cm4g
Y2FjaGU7CiB9CiAKK1JlZlB0cjxJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5k
bGU+IEluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTo6Z2V0T3JDcmVhdGUo
SlNDb250ZXh0UmVmLCBKU09iamVjdFJlZiBvYmplY3QpCit7CisgICAgQ1NTU3R5bGVEZWNsYXJh
dGlvbiogY3NzU3R5bGVEZWNsYXJhdGlvbiA9IEpTQ1NTU3R5bGVEZWNsYXJhdGlvbjo6dG9XcmFw
cGVkKHRvSlMob2JqZWN0KS0+dm0oKSwgdG9KUyhvYmplY3QpKTsKKyAgICByZXR1cm4gZ2V0T3JD
cmVhdGUoY3NzU3R5bGVEZWNsYXJhdGlvbik7Cit9CisKIFJlZlB0cjxJbmplY3RlZEJ1bmRsZUNT
U1N0eWxlRGVjbGFyYXRpb25IYW5kbGU+IEluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlv
bkhhbmRsZTo6Z2V0T3JDcmVhdGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGVEZWNsYXJhdGlv
bikKIHsKICAgICBpZiAoIXN0eWxlRGVjbGFyYXRpb24pCkBAIC02NSw0ICs3Myw5IEBAIEluamVj
dGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTo6fkluamVjdGVkQnVuZGxlQ1NTU3R5
bGVEZWNsYXJhdGlvbkhhbmRsCiAgICAgZG9tU3R5bGVEZWNsYXJhdGlvbkhhbmRsZUNhY2hlKCku
cmVtb3ZlKG1fc3R5bGVEZWNsYXJhdGlvbi5wdHIoKSk7CiB9CiAKK0NTU1N0eWxlRGVjbGFyYXRp
b24qIEluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTo6Y29yZUNTU1N0eWxl
RGVjbGFyYXRpb24oKQoreworICAgIHJldHVybiBtX3N0eWxlRGVjbGFyYXRpb24ucHRyKCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRp
b25IYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00v
SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmgKaW5kZXggOTVkOTIwY2Fi
YzI4YzdmNTk0OTk3ZWQ5NjI2NWI1OWRlMzgyMTk3Mi4uZjdjNzJhZmYzZjA0N2I4MWUyOGVmODQ5
MzExN2RjYzRlMWE1MjRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVj
dGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAj
ZGVmaW5lIEluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZV9oCiAKICNpbmNs
dWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Jhc2UuaD4KICNp
bmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCkBAIC0zOCw5ICsz
OSwxMiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgSW5qZWN0ZWRCdW5kbGVDU1NTdHls
ZURlY2xhcmF0aW9uSGFuZGxlIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6
VHlwZTo6QnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZT4gewogcHVibGljOgorICAgIHN0
YXRpYyBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlPiBnZXRP
ckNyZWF0ZShKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmKTsKICAgICBzdGF0aWMgUmVmUHRyPElu
amVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZT4gZ2V0T3JDcmVhdGUoV2ViQ29y
ZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbiopOwogICAgIHZpcnR1YWwgfkluamVjdGVkQnVuZGxlQ1NT
U3R5bGVEZWNsYXJhdGlvbkhhbmRsZSgpOwogCisgICAgV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJh
dGlvbiogY29yZUNTU1N0eWxlRGVjbGFyYXRpb24oKTsKKwogcHJpdmF0ZToKICAgICBJbmplY3Rl
ZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJh
dGlvbiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5j
cHAKaW5kZXggY2Q2NGM0YTAyNGY5OTgzMjNhYWY1ZmU1NmJlYWU0MDk2MGZlYTZmNi4uODI4MjUw
YzY1NDgxNGNjMjNlNDNjN2JmMGE5OWFhZTcxZjgwMTgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1
ZGUgIkFQSUFycmF5LmgiCiAjaW5jbHVkZSAiRG93bmxvYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
RnJhbWVJbmZvRGF0YS5oIgorI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJh
dGlvbkhhbmRsZS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oIgog
I2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oIgogI2luY2x1ZGUgIkluamVjdGVk
QnVuZGxlUmFuZ2VIYW5kbGUuaCIKQEAgLTcxOCw2ICs3MTksMTcgQEAgV2ViRnJhbWUqIFdlYkZy
YW1lOjpmcmFtZUZvckNvbnRleHQoSlNDb250ZXh0UmVmIGNvbnRleHQpCiAgICAgcmV0dXJuIGNv
cmVGcmFtZSA/IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpjb3JlRnJhbWUpIDogbnVsbHB0cjsK
IH0KIAorSlNWYWx1ZVJlZiBXZWJGcmFtZTo6anNXcmFwcGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5k
bGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlKiBjc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLCBJ
bmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkKiB3b3JsZCkKK3sKKyAgICBpZiAoIW1fY29yZUZyYW1l
KQorICAgICAgICByZXR1cm4gMDsKKworICAgIEpTRE9NV2luZG93KiBnbG9iYWxPYmplY3QgPSBt
X2NvcmVGcmFtZS0+c2NyaXB0KCkuZ2xvYmFsT2JqZWN0KHdvcmxkLT5jb3JlV29ybGQoKSk7CisK
KyAgICBKU0xvY2tIb2xkZXIgbG9jayhnbG9iYWxPYmplY3QpOworICAgIHJldHVybiB0b1JlZihn
bG9iYWxPYmplY3QsIHRvSlMoZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsIGNzc1N0eWxlRGVj
bGFyYXRpb25IYW5kbGUtPmNvcmVDU1NTdHlsZURlY2xhcmF0aW9uKCkpKTsKK30KKwogSlNWYWx1
ZVJlZiBXZWJGcmFtZTo6anNXcmFwcGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxl
KiBub2RlSGFuZGxlLCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkKiB3b3JsZCkKIHsKICAgICBp
ZiAoIW1fY29yZUZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmgKaW5kZXggNTcyNjZlNGQ1NDA3M2UwODk4M2M5ZjNkYWZjZDk0OTMyYTc5MmYwNS4uMTA0
YzZkYmExODk4NTVlOGM5MzIzZGJmNmU4NThiYzc2NzY3MzMyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCkBAIC01OCw2ICs1OCw3IEBAIGNsYXNzIElu
dFJlY3Q7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBJbmplY3RlZEJ1bmRsZUNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGU7CiBjbGFzcyBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ7
CiBjbGFzcyBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU7CiBjbGFzcyBJbmplY3RlZEJ1bmRsZVJh
bmdlSGFuZGxlOwpAQCAtMTQ2LDYgKzE0Nyw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBXZWJG
cmFtZSogZnJhbWVGb3JDb250ZXh0KEpTQ29udGV4dFJlZik7CiAKKyAgICBKU1ZhbHVlUmVmIGpz
V3JhcHBlckZvcldvcmxkKEluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSos
IEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqKTsKICAgICBKU1ZhbHVlUmVmIGpzV3JhcHBlckZv
cldvcmxkKEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZSosIEluamVjdGVkQnVuZGxlU2NyaXB0V29y
bGQqKTsKICAgICBKU1ZhbHVlUmVmIGpzV3JhcHBlckZvcldvcmxkKEluamVjdGVkQnVuZGxlUmFu
Z2VIYW5kbGUqLCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkKik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IGZiZGVlZjRj
MGY2ZGRiN2FjMzM4NGU3ODgzNDA1YjQ2NDI5ZGNmNjYuLjQxYmY1NDQzNmRiYzBlMjBlMGI1OGFi
ZDhjOWE4Y2EzZDljZDkxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtNjIsNiArNjIsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRD
YWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Gb250Q2FzY2FkZS5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9GcmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGlzdG9yeUNvbnRyb2xsZXIuaD4KICNp
bXBvcnQgPFdlYkNvcmUvSGlzdG9yeUl0ZW0uaD4KICNpbXBvcnQgPFdlYkNvcmUvSU9TdXJmYWNl
Lmg+CkBAIC03NSw2ICs3Niw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BlcmZvcm1hbmNlTG9nZ2lu
Zy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KICNp
bXBvcnQgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc0MzhmYTMyMTlhODJkZjk1YTUyZjViNmVl
NDMzOWRhMzk3YjFiY2EuLmFhZmMwOGYwZTQzMGNiZWJjYzBjMjAyMzMzY2VkNGExYWMxMzU3ZWMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAyMi0wMS0yMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+
CisKKyAgICAgICAgQWRkIFNQSSBmb3IgcGFzc2luZyBhcm91bmQgYW5kIGdldHRpbmcgZGV0YWls
cyBhYm91dCBgV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbmAgaW4gaW5qZWN0ZWQgYnVuZGxl
IGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NTM4NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODc1NjY3Mzc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQcm90b2NvbC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGUubW06IEFkZGVkLgorICAgICAgICAoLVtCdW5kbGVDU1NTdHls
ZURlY2xhcmF0aW9uSGFuZGxlUmVtb3RlT2JqZWN0IHZlcmlmeVN0eWxlOl0pOgorICAgICAgICAo
VEVTVC5XZWJLaXQuV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVDU1NTdHls
ZURlY2xhcmF0aW9uSGFuZGxlUGx1Z0luLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bQnVuZGxlQ1NT
U3R5bGVEZWNsYXJhdGlvbkhhbmRsZVBsdWdJbiB3ZWJQcm9jZXNzUGx1Z0luOmRpZENyZWF0ZUJy
b3dzZXJDb250ZXh0Q29udHJvbGxlcjpdKToKKyAgICAgICAgKC1bQnVuZGxlQ1NTU3R5bGVEZWNs
YXJhdGlvbkhhbmRsZVBsdWdJbiB3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9s
bGVyOmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lOl0pOgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db29raWVQcml2YXRlQnJvd3NpbmcubW06CisgICAgICAg
ICgtW0Nvb2tpZVByaXZhdGVCcm93c2luZ0RlbGVnYXRlIHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFs
ZXJ0UGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOmNvbXBsZXRpb25IYW5kbGVyOl0p
OgorICAgICAgICAoVEVTVC5XZWJLaXQuQ29va2llUHJpdmF0ZUJyb3dzaW5nKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL01vZGFsQ29udGFpbmVyT2JzZXJ2YXRp
b24ubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXN0b3Jl
U2Vzc2lvblN0YXRlV2l0aG91dE5hdmlnYXRpb24ubW06CisgICAgICAgICgtW1Nlc3Npb25TdGF0
ZURlbGVnYXRlIHdlYlZpZXc6ZGlkRmluaXNoTmF2aWdhdGlvbjpdKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OmNyZWF0ZVNlc3Npb25TdGF0ZURhdGEpOgorICAgICAgICBEcml2ZS1ieTogVW5p
ZmllZCBzb3VyY2VzIGZpeGVzLgorCiAyMDIyLTAxLTEwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVk
YXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbZ2l0LXdlYmtpdF0gSW1wcm92ZSBzZXR1cCB1c2Fi
aWxpdHkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dAppbmRleCAyNTcwZTZiNTViYjg0
YzNhYjIyNjQ2YjJlZjYyOWMzMmY4ODYyY2I0Li5hMmQ0ZDI0NzIzMWZlZTY4ODg5N2FmMWFmNThk
OWRkYTU0M2YyZjNkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0CkBAIC01NCw2
ICs1NCw3IEBAIFRlc3RzL1dlYktpdENvY29hL0F1ZGlvQnVmZmVyU2l6ZS5tbQogVGVzdHMvV2Vi
S2l0Q29jb2EvQXVkaW9Sb3V0aW5nQXJiaXRyYXRpb24ubW0KIFRlc3RzL1dlYktpdENvY29hL0F1
dG9GaWxsQXZhaWxhYmxlLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9BdXRvTGF5b3V0SW50ZWdyYXRp
b24ubW0KK1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUu
bW0KIFRlc3RzL1dlYktpdENvY29hL0J1bmRsZUVkaXRpbmdEZWxlZ2F0ZS5tbQogVGVzdHMvV2Vi
S2l0Q29jb2EvQnVuZGxlRm9ybURlbGVnYXRlLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVQ
YWdlQ29uc29sZU1lc3NhZ2UubW0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWE1MGRmYjJm
MDI1ZGE0NDA4MzlhMzM3YzY1ZWY1NjJiMGYwZWRlMy4uNjA3MWMxMjgzY2QyNDdkYWM3ZjkxZTEz
ZTg4MzIzZjAxMmVhZjk0OCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc2OCw2ICs3Njgs
NyBAQAogCQk5M0Y1NkRBNzFFNUY5MTc0MDAzRURFODQgLyogbGliaWN1Y29yZS5keWxpYiBpbiBG
cmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDODNFMDMzMUQw
QTVGMjcwMEZFQkNGMyAvKiBsaWJpY3Vjb3JlLmR5bGliICovOyB9OwogCQk5M0Y3RTg2RjE0REM4
RTVDMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJhbWVzX0J1bmRs
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y3
RTg2RTE0REM4RTVCMDBDODRBOTkgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RnJh
bWVzX0J1bmRsZS5jcHAgKi87IH07CiAJCTkzRkNEQjM0MjYzNjMxNTYwMDQ2REQ3RCAvKiBTb3J0
ZWRBcnJheU1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0ZDREIzMzI2MzYzMTU2MDA0NkREN0QgLyogU29ydGVkQXJyYXlNYXAuY3BwICovOyB9
OworCQk5NTI4RTVGRDI3OUEwMzQxMDA4QURGRUYgLyogQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlv
bkhhbmRsZVBsdWdJbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk1MjhFNUZDMjc5QTAzMzgwMDhBREZFRiAvKiBCdW5kbGVDU1NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlUGx1Z0luLm1tICovOyB9OwogCQk5NTJGNzE2NzI3MEJEOUNCMDBEMDBEQ0MgLyog
Q1NTVmlld3BvcnRVbml0cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk1MkY3MTY2MjcwQkQ5OTcwMEQwMERDQyAvKiBDU1NWaWV3cG9y
dFVuaXRzLmh0bWwgKi87IH07CiAJCTk1MkY3MTY3MjcwQkQ5Q0IwMEQwMERDRCAvKiBDU1NWaWV3
cG9ydFVuaXRzLnN2ZyBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NTJGNzE2NjI3MEJEOTk3MDBEMDBEQ0QgLyogQ1NTVmlld3BvcnRVbml0cy5z
dmcgKi87IH07CiAJCTk1QzUyNzI5Mjc1RjM1RTEwMERBN0U0MCAvKiBGb250U2hhZG93VGVzdHMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVDNTI3
MjgyNzVGMzVFMTAwREE3RTQwIC8qIEZvbnRTaGFkb3dUZXN0cy5jcHAgKi87IH07CkBAIC0yNTQw
LDYgKzI1NDEsOSBAQAogCQk5M0ZDREIzMzI2MzYzMTU2MDA0NkREN0QgLyogU29ydGVkQXJyYXlN
YXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU29ydGVkQXJyYXlN
YXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTA5NUYxRjI2MkZGRkE1MDAw
MEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFNhbXBsZWRQYWdlVG9wQ29sb3IubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk1MEU0Q0MwMjUyRTc1MjMwMDcxNjU5RiAvKiBpT1NTdHlsdXNTdXBwb3J0
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gaU9TU3R5bHVzU3Vw
cG9ydC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUyOEU1RkEyNzlBMDMzNzAw
OEFERkVGIC8qIEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQcm90b2NvbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJvdG9jb2wuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUyOEU1RkIyNzlBMDMzNzAwOEFERkVGIC8qIEJ1
bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBC
dW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5NTI4RTVGQzI3OUEwMzM4MDA4QURGRUYgLyogQnVuZGxlQ1NTU3R5bGVEZWNsYXJh
dGlvbkhhbmRsZVBsdWdJbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEJ1bmRsZUNTU1N0eWxl
RGVjbGFyYXRpb25IYW5kbGVQbHVnSW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk1MkY3MTY0MjcwQkQ5N0UwMEQwMERDQyAvKiBDU1NWaWV3cG9ydFVuaXRzLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ1NTVmlld3BvcnRVbml0cy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUyRjcxNjYyNzBCRDk5NzAwRDAwRENDIC8qIENT
U1ZpZXdwb3J0VW5pdHMuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IENTU1ZpZXdwb3J0VW5pdHMuaHRtbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUyRjcxNjYyNzBCRDk5NzAwRDAwRENEIC8qIENT
U1ZpZXdwb3J0VW5pdHMuc3ZnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gQ1NTVmlld3BvcnRVbml0cy5zdmc7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMzg4LDYgKzMzOTIsOSBAQAogCQkJCTJERDM1NTM1
MUJEMDgzNzgwMDVERjRBNyAvKiBBdXRvTGF5b3V0SW50ZWdyYXRpb24ubW0gKi8sCiAJCQkJMDdD
RDMyRjUyMDY1QjU0MjAwNjRBNEJFIC8qIEFWRm91bmRhdGlvblByZWZlcmVuY2UubW0gKi8sCiAJ
CQkJNUM0MjU5NDQyMjY2OUU5QjAwMzlBQTdBIC8qIEJhc2ljUHJvcG9zZWRDcmVkZW50aWFsUGx1
Z0luLm1tICovLAorCQkJCTk1MjhFNUZCMjc5QTAzMzcwMDhBREZFRiAvKiBCdW5kbGVDU1NTdHls
ZURlY2xhcmF0aW9uSGFuZGxlLm1tICovLAorCQkJCTk1MjhFNUZDMjc5QTAzMzgwMDhBREZFRiAv
KiBCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUGx1Z0luLm1tICovLAorCQkJCTk1MjhF
NUZBMjc5QTAzMzcwMDhBREZFRiAvKiBCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJv
dG9jb2wuaCAqLywKIAkJCQkzNzRCN0E1RTFERjM2RUVFMDBBQ0NCNkMgLyogQnVuZGxlRWRpdGlu
Z0RlbGVnYXRlLm1tICovLAogCQkJCTM3NEI3QTVGMURGMzZFRUUwMEFDQ0I2QyAvKiBCdW5kbGVF
ZGl0aW5nRGVsZWdhdGVQbHVnSW4ubW0gKi8sCiAJCQkJMzc0QjdBNjIxREYzNzM0QzAwQUNDQjZD
IC8qIEJ1bmRsZUVkaXRpbmdEZWxlZ2F0ZVByb3RvY29sLmggKi8sCkBAIC01ODg4LDYgKzU4OTUs
NyBAQAogCQkJCTQ5MUFFRUY4MjY1MkUzMzUwMEQ1MzBBOCAvKiBBcHBQcml2YWN5UmVwb3J0UGx1
Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU0Q0VDODExRjY3MjJGMjAwRDAwMzlBIC8qIEF1
dG9GaWxsQXZhaWxhYmxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0MjU5NDYyMjY2QTY4QTAw
MzlBQTdBIC8qIEJhc2ljUHJvcG9zZWRDcmVkZW50aWFsUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJOTUyOEU1RkQyNzlBMDM0MTAwOEFERkVGIC8qIEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRp
b25IYW5kbGVQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzRCN0E2MTFERjM3MUNGMDBB
Q0NCNkMgLyogQnVuZGxlRWRpdGluZ0RlbGVnYXRlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0E4OUJCNjgyMzMxNjQzQTAwNDJDQjFFIC8qIEJ1bmRsZUZvcm1EZWxlZ2F0ZVBsdWdJbi5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTUxNzVDN0EyMjZGODc2MjMwMDAzQUY1QyAvKiBCdW5kbGVQ
YWdlQ29uc29sZU1lc3NhZ2UubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhh
bmRsZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlQ1NT
U3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWEzOTU1ODY1YjRiMzU3ZmMx
NTExYTdiYjgzODJhNWY0NzgxMDdiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1t
CkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKworI2ltcG9ydCAiQnVuZGxlQ1NTU3R5bGVEZWNs
YXJhdGlvbkhhbmRsZVByb3RvY29sLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgor
I2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgorI2lt
cG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dL
UHJvY2Vzc1Bvb2xQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5o
PgorI2ltcG9ydCA8V2ViS2l0L19XS1JlbW90ZU9iamVjdEludGVyZmFjZS5oPgorI2ltcG9ydCA8
V2ViS2l0L19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CisKK3N0YXRpYyBib29sIGRpZFZlcmlmeVN0eWxlOworCitAaW50ZXJmYWNlIEJ1bmRsZUNT
U1N0eWxlRGVjbGFyYXRpb25IYW5kbGVSZW1vdGVPYmplY3QgOiBOU09iamVjdCA8QnVuZGxlQ1NT
U3R5bGVEZWNsYXJhdGlvbkhhbmRsZVByb3RvY29sPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24g
QnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVJlbW90ZU9iamVjdAorCistICh2b2lkKXZl
cmlmeVN0eWxlOihCT09MKXZhbGlkCit7CisgICAgRVhQRUNUX1RSVUUodmFsaWQpOworCisgICAg
ZGlkVmVyaWZ5U3R5bGUgPSB0cnVlOworfQorCitAZW5kCisKK1RFU1QoV2ViS2l0LCBXS1dlYlBy
b2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlKQoreworICAgIGF1dG8gY29uZmln
dXJhdGlvbiA9IHJldGFpblB0cihbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1
cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlUGx1Z0luIl0pOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBhdXRvIG9iamVjdCA9IGFkb3B0TlMo
W1tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUmVtb3RlT2JqZWN0IGFsbG9jXSBpbml0
XSk7CisgICAgYXV0byBpbnRlcmZhY2UgPSByZXRhaW5QdHIoW19XS1JlbW90ZU9iamVjdEludGVy
ZmFjZSByZW1vdGVPYmplY3RJbnRlcmZhY2VXaXRoUHJvdG9jb2w6QHByb3RvY29sKEJ1bmRsZUNT
U1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQcm90b2NvbCldKTsKKyAgICBbW3dlYlZpZXcgX3JlbW90
ZU9iamVjdFJlZ2lzdHJ5XSByZWdpc3RlckV4cG9ydGVkT2JqZWN0Om9iamVjdC5nZXQoKSBpbnRl
cmZhY2U6aW50ZXJmYWNlLmdldCgpXTsKKworICAgIE5TU3RyaW5nICpodG1sID0gQCgKKyAgICAg
ICAgIjxzY3JpcHQ+IgorICAgICAgICAiZnVuY3Rpb24gdmVyaWZ5U3R5bGUoc3R5bGUpIHsiCisg
ICAgICAgICIgICAgcmV0dXJuIHN0eWxlID09PSBkb2N1bWVudC5ib2R5LnN0eWxlOyIKKyAgICAg
ICAgIn0iCisgICAgICAgICI8L3NjcmlwdD4iCisgICAgKTsKKyAgICBbd2ViVmlldyBsb2FkSFRN
TFN0cmluZzpodG1sIGJhc2VVUkw6bmlsXTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZGlkVmVyaWZ5U3R5bGUpOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUGx1Z0luLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVDU1NTdHlsZURl
Y2xhcmF0aW9uSGFuZGxlUGx1Z0luLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlYmE3ZjZiNzQ0NWEwYzU0ZGRj
ZDA1ZjcxZmQ3YWY5YWY1MjUzMGIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQbHVn
SW4ubW0KQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
CisjaW1wb3J0ICJCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJvdG9jb2wuaCIKKyNp
bXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNz
UGx1Z0luLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRl
eHRDb250cm9sbGVyUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJ
bkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nl
c3NQbHVnSW5GcmFtZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJbkxvYWRE
ZWxlZ2F0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxk
Lmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlLmg+CisjaW1wb3J0
IDxXZWJLaXQvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4KKworQGludGVyZmFjZSBCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUGx1Z0lu
IDogTlNPYmplY3QgPFdLV2ViUHJvY2Vzc1BsdWdJbiwgV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERl
bGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlv
bkhhbmRsZVBsdWdJbiB7CisgICAgUmV0YWluUHRyPFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlcj4gX2Jyb3dzZXJDb250ZXh0Q29udHJvbGxlcjsKKyAgICBSZXRhaW5Q
dHI8V0tXZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxlcj4gX3BsdWdJbkNvbnRyb2xsZXI7CisgICAg
UmV0YWluUHRyPGlkIDxCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJvdG9jb2w+PiBf
cmVtb3RlT2JqZWN0OworfQorCistICh2b2lkKXdlYlByb2Nlc3NQbHVnSW46KFdLV2ViUHJvY2Vz
c1BsdWdJbkNvbnRyb2xsZXIgKilwbHVnSW5Db250cm9sbGVyIGRpZENyZWF0ZUJyb3dzZXJDb250
ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
ICopYnJvd3NlckNvbnRleHRDb250cm9sbGVyCit7CisgICAgQVNTRVJUKCFfYnJvd3NlckNvbnRl
eHRDb250cm9sbGVyKTsKKyAgICBBU1NFUlQoIV9wbHVnSW5Db250cm9sbGVyKTsKKyAgICBfYnJv
d3NlckNvbnRleHRDb250cm9sbGVyID0gYnJvd3NlckNvbnRleHRDb250cm9sbGVyOworICAgIF9w
bHVnSW5Db250cm9sbGVyID0gcGx1Z0luQ29udHJvbGxlcjsKKworICAgIGF1dG8gaW50ZXJmYWNl
ID0gcmV0YWluUHRyKFtfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgcmVtb3RlT2JqZWN0SW50ZXJm
YWNlV2l0aFByb3RvY29sOkBwcm90b2NvbChCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxl
UHJvdG9jb2wpXSk7CisgICAgX3JlbW90ZU9iamVjdCA9IFticm93c2VyQ29udGV4dENvbnRyb2xs
ZXIuX3JlbW90ZU9iamVjdFJlZ2lzdHJ5IHJlbW90ZU9iamVjdFByb3h5V2l0aEludGVyZmFjZTpp
bnRlcmZhY2UuZ2V0KCldOworCisgICAgW19icm93c2VyQ29udGV4dENvbnRyb2xsZXIgc2V0TG9h
ZERlbGVnYXRlOnNlbGZdOworfQorCistICh2b2lkKXdlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
ciAqKWNvbnRyb2xsZXIgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWU6KFdLV2ViUHJvY2Vz
c1BsdWdJbkZyYW1lICopZnJhbWUKK3sKKyAgICBhdXRvIGNvbnRleHQgPSBbZnJhbWUganNDb250
ZXh0Rm9yV29ybGQ6V0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQubm9ybWFsV29ybGRdOwor
ICAgIGF1dG8ganNDU1NTdHlsZURlY2xhcmF0aW9uID0gW2NvbnRleHQgZXZhbHVhdGVTY3JpcHQ6
QCJkb2N1bWVudC5ib2R5LnN0eWxlIl07CisgICAgYXV0byBjc3NTdHlsZURlY2xhcmF0aW9uSGFu
ZGxlID0gW1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUgY3NzU3R5
bGVEZWNsYXJhdGlvbkhhbmRsZVdpdGhKU1ZhbHVlOmpzQ1NTU3R5bGVEZWNsYXJhdGlvbiBpbkNv
bnRleHQ6Y29udGV4dF07CisgICAgYXV0byBqc0NTU1N0eWxlRGVjbGFyYXRpb25Gb3JDU1NTdHls
ZURlY2xhcmF0aW9uSGFuZGxlID0gW2ZyYW1lIGpzQ1NTU3R5bGVEZWNsYXJhdGlvbkZvckNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGU6Y3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSBpbldvcmxkOldL
V2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLm5vcm1hbFdvcmxkXTsKKyAgICBpZiAoanNDU1NT
dHlsZURlY2xhcmF0aW9uICE9IGpzQ1NTU3R5bGVEZWNsYXJhdGlvbkZvckNTU1N0eWxlRGVjbGFy
YXRpb25IYW5kbGUpCisgICAgICAgIFtfcmVtb3RlT2JqZWN0IHZlcmlmeVN0eWxlOk5PXTsKKyAg
ICBlbHNlIHsKKyAgICAgICAgYXV0byBqc1ZlcmlmeVN0eWxlID0gW2NvbnRleHQgZXZhbHVhdGVT
Y3JpcHQ6QCJ2ZXJpZnlTdHlsZSJdOworICAgICAgICBbX3JlbW90ZU9iamVjdCB2ZXJpZnlTdHls
ZTpbanNWZXJpZnlTdHlsZSBjYWxsV2l0aEFyZ3VtZW50czpAW2pzQ1NTU3R5bGVEZWNsYXJhdGlv
bkZvckNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVdXS50b0Jvb2xdOworICAgIH0KK30KKworQGVu
ZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5k
bGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJvdG9jb2wuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVByb3Rv
Y29sLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTllMTg5NGEwOWNmNmEzZTA2ODljYmUxN2Q1MThjYTBiYzdhNTQ2
YgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVByb3RvY29sLmgKQEAgLTAsMCArMSwz
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKworQHBy
b3RvY29sIEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQcm90b2NvbCA8TlNPYmplY3Q+
CistICh2b2lkKXZlcmlmeVN0eWxlOihCT09MKXZhbGlkOworQGVuZApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db29raWVQcml2YXRlQnJvd3Npbmcu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Nvb2tpZVByaXZhdGVC
cm93c2luZy5tbQppbmRleCAzNDdhMTVjOWVhZmU0OGJkNGNhOThlMzY3NzRiMWFmMmMwNWUzMzZk
Li5jYWU5NDZkMmExNjFmNDdmYjkzN2U4NDdmM2M1OWQ4OGM0ZGY3NzEwIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Nvb2tpZVByaXZhdGVCcm93c2lu
Zy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Nvb2tpZVBy
aXZhdGVCcm93c2luZy5tbQpAQCAtMzgsNyArMzgsNyBAQAogI2ltcG9ydCA8d3RmL3RleHQvU3Ry
aW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAotc3RhdGljIGJvb2wgcmVjZWl2ZWRBbGVydDsKK3N0YXRpYyBib29sIGRpZFJ1bkphdmFTY3Jp
cHRBbGVydEZvckNvb2tpZVByaXZhdGVCcm93c2luZzsKIAogQGludGVyZmFjZSBDb29raWVQcml2
YXRlQnJvd3NpbmdEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGU+CiBAZW5kCkBAIC00
OCw3ICs0OCw3IEBAIEBpbXBsZW1lbnRhdGlvbiBDb29raWVQcml2YXRlQnJvd3NpbmdEZWxlZ2F0
ZQogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bkphdmFTY3JpcHRBbGVy
dFBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihX
S0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21w
bGV0aW9uSGFuZGxlcgogewogICAgIEVYUEVDVF9TVFJFUShtZXNzYWdlLlVURjhTdHJpbmcsICJv
bGQgY29va2llOiA8PiIpOwotICAgIHJlY2VpdmVkQWxlcnQgPSB0cnVlOworICAgIGRpZFJ1bkph
dmFTY3JpcHRBbGVydEZvckNvb2tpZVByaXZhdGVCcm93c2luZyA9IHRydWU7CiAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKIH0KIApAQCAtNjksMTAgKzY5LDEwIEBAIFRFU1QoV2ViS2l0LCBDb29r
aWVQcml2YXRlQnJvd3NpbmcpCiAgICAgW3ZpZXcyIHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0
KCldOwogICAgIE5TU3RyaW5nICphbGVydE9sZENvb2tpZSA9IEAiPHNjcmlwdD52YXIgb2xkQ29v
a2llID0gZG9jdW1lbnQuY29va2llOyBkb2N1bWVudC5jb29raWUgPSAna2V5PXZhbHVlJzsgYWxl
cnQoJ29sZCBjb29raWU6IDwnICsgb2xkQ29va2llICsgJz4nKTs8L3NjcmlwdD4iOwogICAgIFt2
aWV3MSBsb2FkSFRNTFN0cmluZzphbGVydE9sZENvb2tpZSBiYXNlVVJMOltOU1VSTCBVUkxXaXRo
U3RyaW5nOkAiaHR0cDovL2V4YW1wbGUuY29tLyJdXTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJnJlY2VpdmVkQWxlcnQpOwotICAgIHJlY2VpdmVkQWxlcnQgPSBmYWxzZTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZFJ1bkphdmFTY3JpcHRBbGVydEZvckNvb2tpZVBy
aXZhdGVCcm93c2luZyk7CisgICAgZGlkUnVuSmF2YVNjcmlwdEFsZXJ0Rm9yQ29va2llUHJpdmF0
ZUJyb3dzaW5nID0gZmFsc2U7CiAgICAgW3ZpZXcyIGxvYWRIVE1MU3RyaW5nOmFsZXJ0T2xkQ29v
a2llIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vZXhhbXBsZS5jb20vIl1d
OwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRBbGVydCk7CisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRSdW5KYXZhU2NyaXB0QWxlcnRGb3JDb29raWVQcml2
YXRlQnJvd3NpbmcpOwogfQogCiBURVNUKFdlYktpdCwgQ29va2llQ2FjaGVTeW5jQWNyb3NzUHJv
Y2VzcykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
TW9kYWxDb250YWluZXJPYnNlcnZhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvTW9kYWxDb250YWluZXJPYnNlcnZhdGlvbi5tbQppbmRleCBhYjQ1NzM4MWZk
YzcxYzk5MGM2MWEzNTk2YzkwOGI2N2QwYzIzOWQ0Li5iOTg5MGJlODI1ZDk3NDliNGYzODY0MmZm
ZWVlZTQxZDlkNTdkN2Q3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL01vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Nb2RhbENvbnRhaW5lck9ic2VydmF0aW9uLm1tCkBA
IC0yNywxMCArMjcsMTIgQEAKICNpbXBvcnQgIlRlc3QuaCIKIAogI2ltcG9ydCAiUGxhdGZvcm1V
dGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKICNpbXBvcnQg
IlRlc3RQcm90b2NvbC5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgogI2ltcG9ydCAiV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5j
ZXNQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tVSURlbGVnYXRlUHJpdmF0ZS5oPgogI2lt
cG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV0tXZWJwYWdlUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dL
TW9kYWxDb250YWluZXJJbmZvLmg+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Jlc3RvcmVTZXNzaW9uU3RhdGVXaXRob3V0TmF2aWdhdGlvbi5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzdG9yZVNlc3Npb25TdGF0
ZVdpdGhvdXROYXZpZ2F0aW9uLm1tCmluZGV4IGMzNTMwZDBhZWU5ZDhmZWQ4NjIwZDc0NzQ5Zjhi
Nzk4Yzk3ZTBjMDQuLmI3MzY5YzE2OWQ2NTBjYzViNGM1ZWNiNTgzZDBjNzZjY2NjMWZhYjIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzdG9yZVNl
c3Npb25TdGF0ZVdpdGhvdXROYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUmVzdG9yZVNlc3Npb25TdGF0ZVdpdGhvdXROYXZpZ2F0aW9uLm1t
CkBAIC00NSw3ICs0NSw3IEBAIEBpbnRlcmZhY2UgV0tXZWJWaWV3ICgpCiAtIChXS1BhZ2VSZWYp
X3BhZ2VGb3JUZXN0aW5nOwogQGVuZAogCi1zdGF0aWMgYm9vbCBkaWRGaW5pc2hMb2FkOworc3Rh
dGljIGJvb2wgZGlkRmluaXNoTmF2aWdhdGlvbkZvclNlc3Npb25TdGF0ZTsKIHN0YXRpYyBib29s
IGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdDsKICAgICAKIEBpbnRlcmZhY2UgU2Vzc2lvblN0YXRl
RGVsZWdhdGUgOiBOU09iamVjdCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+CkBAIC01NSw3ICs1NSw3
IEBAIEBpbXBsZW1lbnRhdGlvbiBTZXNzaW9uU3RhdGVEZWxlZ2F0ZQogCiAtICh2b2lkKXdlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmluaXNoTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9u
ICopbmF2aWdhdGlvbgogewotICAgIGRpZEZpbmlzaExvYWQgPSB0cnVlOworICAgIGRpZEZpbmlz
aE5hdmlnYXRpb25Gb3JTZXNzaW9uU3RhdGUgPSB0cnVlOwogfQogCiAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGJhY2tGb3J3YXJkTGlzdEl0ZW1BZGRlZDooV0tCYWNrRm9y
d2FyZExpc3RJdGVtICopaXRlbUFkZGVkIHJlbW92ZWQ6KE5TQXJyYXk8V0tCYWNrRm9yd2FyZExp
c3RJdGVtICo+ICopaXRlbXNSZW1vdmVkCkBAIC03Myw4ICs3Myw4IEBAIHN0YXRpYyBXS1JldGFp
blB0cjxXS0RhdGFSZWY+IGNyZWF0ZVNlc3Npb25TdGF0ZURhdGEoKQogICAgIGF1dG8gdmlldyA9
IGFkb3B0TlMoW1dLV2ViVmlldyBuZXddKTsKICAgICBbdmlldyBzZXROYXZpZ2F0aW9uRGVsZWdh
dGU6ZGVsZWdhdGUuZ2V0KCldOwogICAgIFt2aWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNp
bXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl1dXTsKLSAgICBVdGlsOjpydW4oJmRpZEZpbmlzaExvYWQpOwotICAgIGRpZEZp
bmlzaExvYWQgPSBmYWxzZTsKKyAgICBVdGlsOjpydW4oJmRpZEZpbmlzaE5hdmlnYXRpb25Gb3JT
ZXNzaW9uU3RhdGUpOworICAgIGRpZEZpbmlzaE5hdmlnYXRpb25Gb3JTZXNzaW9uU3RhdGUgPSBm
YWxzZTsKIAogICAgIE5TRGF0YSAqZGF0YSA9IFt2aWV3IF9zZXNzaW9uU3RhdGVEYXRhXTsKICAg
ICByZXR1cm4gYWRvcHRXSyhXS0RhdGFDcmVhdGUoc3RhdGljX2Nhc3Q8Y29uc3QgdW5zaWduZWQg
Y2hhcio+KGRhdGEuYnl0ZXMpLCBkYXRhLmxlbmd0aCkpOwo=
</data>
<flag name="review"
          id="475749"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="475750"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449630</attachid>
            <date>2022-01-20 19:07:28 -0800</date>
            <delta_ts>2022-01-20 19:10:47 -0800</delta_ts>
            <desc>[fast-cq] Patch</desc>
            <filename>235386.diff</filename>
            <type>text/plain</type>
            <size>48996</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYzRlZTg3MmUwYTQ5ZGY1YzRlMzJlZjEwNDM4OTgyYzMxMzg2NzhiZS4uOTFk
NmM3MzJlMGFiNDgyODFkNGQ2NWMzYzhmMjViNzM2OGFkNWZkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0OCBAQAorMjAyMi0wMS0yMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIFNQSSBmb3IgcGFzc2luZyBhcm91bmQgYW5kIGdldHRpbmcgZGV0YWlscyBh
Ym91dCBgV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbmAgaW4gaW5qZWN0ZWQgYnVuZGxlIGNv
ZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTM4
NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODc1NjY3Mzc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgVGltIEhvcnRvbi4KKworICAgICAgICBUZXN0OiBXZWJLaXQuV0tXZWJQcm9jZXNzUGx1Z0lu
Q1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZQorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVDU1NT
dHlsZURlY2xhcmF0aW9uSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOjpnZXRPckNyZWF0ZSk6CisgICAgICAgIChXZWJL
aXQ6OkluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTo6Y29yZUNTU1N0eWxl
RGVjbGFyYXRpb24pOiBBZGRlZC4KKyAgICAgICAgRXhwb3NlIGEgd2F5IHRvIGdldCB0aGUgcmVs
YXRlZCBgV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbmAgKGZvciBgdG9KU2ApLgorICAgICAg
ICBBZGQgYSBtZXRob2QgdGhhdCByZXR1cm5zIHRoZSBzdHJpbmcgdmFsdWUgZm9yIGEgZ2l2ZW4g
cHJvcGVydHkgbmFtZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaDogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZUludGVybmFsLmg6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vz
c1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUubW06IEFkZGVkLgorICAgICAgICAoLVtX
S1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlIGRlYWxsb2NdKToKKyAg
ICAgICAgKCtbV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSBjc3NT
dHlsZURlY2xhcmF0aW9uSGFuZGxlV2l0aEpTVmFsdWU6aW5Db250ZXh0Ol0pOgorICAgICAgICAo
LVtXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlIF9jc3NTdHlsZURl
Y2xhcmF0aW9uSGFuZGxlXSk6CisgICAgICAgICgtW1dLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxl
RGVjbGFyYXRpb25IYW5kbGUgX2FwaU9iamVjdF0pOgorICAgICAgICBBZGQgT2JqQyBTUEkgZm9y
IG1hbmlwdWxhdGluZyBgV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbmAgKGluIHRoZSBpbmpl
Y3RlZCBidW5kbGUpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWU6OmpzV3JhcHBlckZvcldvcmxkKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1Bs
dWdJbkZyYW1lLm1tOgorICAgICAgICAoLVtXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSBqc0NTU1N0
eWxlRGVjbGFyYXRpb25Gb3JDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOmluV29ybGQ6XSk6IEFk
ZGVkLgorICAgICAgICBBZGQgbWV0aG9kcyBmb3IgY29udmVydGluZyBmcm9tIE9iakMgU1BJIHdy
YXBwZXJzIG9mIGBXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uYCB0byBKUy4KKworICAgICAg
ICAqIFNoYXJlZC9Db2NvYS9BUElPYmplY3QubW06CisgICAgICAgIChBUEk6Ok9iamVjdDo6bmV3
T2JqZWN0KToKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGF1dG9tYXRpYyBjb252ZXJzaW9uIG9m
IGBXS0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWZgIHRvIE9iakMgKGFib3ZlKS4KKworICAg
ICAgICAqIFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgRHJpdmUtYnk6IFVu
aWZpZWQgc291cmNlcyBmaXhlcy4KKwogMjAyMi0wMS0xOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxz
YWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIEltYWdlQnVmZmVyOjpjb252
ZXJ0VG9MdW1pbmFuY2VNYXNrKCkgYW5kIHRyYW5zZm9ybVRvQ29sb3JTcGFjZSgpIHNob3VsZCBu
b3QgYWNjZXNzIHRoZSBiYWNrZW5kIGluIFdlYlByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtTWFjLmNtYWtl
CmluZGV4IDg0YWE4ODI4ZGZjNmEwOTNlMWQ2OGYwNjU4MGZhZWI1ZDcwNGRiYjYuLmUyOTY2ZDUx
M2JiNTgzOWRmMTJiMzIyYWYyZWViMDU0ZWI0ZDY2NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybU1hYy5jbWFr
ZQpAQCAtNDkwLDYgKzQ5MCw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9QVUJMSUNfRlJBTUVXT1JL
X0hFQURFUlMKICAgICBVSVByb2Nlc3MvQ29jb2EvV0tTaGFyZVNoZWV0LmgKIAogICAgIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc0J1bmRsZVBhcmFtZXRl
cnMuaAorICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vz
c1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaAogICAgIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkVkaXRpbmdEZWxlZ2F0ZS5oCiAg
ICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0lu
Rm9ybURlbGVnYXRlUHJpdmF0ZS5oCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Q29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2Ev
QVBJT2JqZWN0Lm1tCmluZGV4IDEzMjI5NTJjYWQxMGE1ZTIyYjBlMjFkM2U5NzhkNzVlMTdlNWUw
MjYuLjQyNmIyM2U4ZDRjZWJhNzRmOTdlNzUzZDM5NzQwZWQzZmMwNDk5ZjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0KQEAgLTU5LDYgKzU5LDcgQEAKICNpbXBvcnQg
IldLVXNlckNvbnRlbnRDb250cm9sbGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIldLVXNlclNjcmlw
dEludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENv
bnRyb2xsZXJJbnRlcm5hbC5oIgorI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVE
ZWNsYXJhdGlvbkhhbmRsZUludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZUludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0
SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2ViUHJvY2Vzc1BsdWdJbkludGVybmFsLmgiCkBAIC00
MjIsNiArNDIzLDEwIEBAIHZvaWQqIE9iamVjdDo6bmV3T2JqZWN0KHNpemVfdCBzaXplLCBUeXBl
IHR5cGUpCiAgICAgICAgIHdyYXBwZXIgPSBbV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3Vs
dCBhbGxvY107CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBUeXBlOjpCdW5kbGVDU1NTdHls
ZURlY2xhcmF0aW9uSGFuZGxlOgorICAgICAgICB3cmFwcGVyID0gW1dLV2ViUHJvY2Vzc1BsdWdJ
bkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUgYWxsb2NdOworICAgICAgICBicmVhazsKKwogICAg
IGNhc2UgVHlwZTo6QnVuZGxlTm9kZUhhbmRsZToKICAgICAgICAgd3JhcHBlciA9IFtXS1dlYlBy
b2Nlc3NQbHVnSW5Ob2RlSGFuZGxlIGFsbG9jXTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQKaW5kZXggMTFmMGMyNDA1YWM5NDc0YmU4ZjhlODA1ZmVlYmM4ZjFiYjY5NjAwMi4u
NTUwNzJhMTc1YjY1MTEzMjg3MjA4NDc1MTUxYmE2YjMyNTEzYmEyNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dApAQCAtNjM1LDYgKzYzNSw3IEBAIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvbWFjL1dLQnVuZGxlTWFjLm1tCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL21h
Yy9XS0J1bmRsZVBhZ2VCYW5uZXJNYWMubW0KIAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvQ29jb2EvV0tXZWJQcm9jZXNzQnVuZGxlUGFyYW1ldGVycy5tbQorV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlv
bkhhbmRsZS5tbQogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9j
ZXNzUGx1Z0luRnJhbWUubW0KIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQubW0KIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUubW0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQxZGE3MzdlOWVl
ZGM2ZDY5ODVlYmVlNzg4N2Y5NjQ3NThiMDkwYjguLmFiYWE3MTRkZTJhNzA3ODUxZmIzZTg5NTIz
OWI5NTQwMDk1NjdlYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTQ4Niw2ICsxNDg2LDggQEAKIAkJOTNFNzk5REMyNzYxMjEwODAw
NzQwMDhBIC8qIFN0b3JhZ2VBcmVhQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNFNzk5RDYyNzYxMjEwODAwNzQwMDhBIC8qIFN0b3JhZ2VBcmVh
QmFzZS5oICovOyB9OwogCQk5M0Y1NDlCNDFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENv
bmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJOTUwRjI4
ODAyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwRjI4N0UyNTI0MTRFOTAwQjc0
RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICovOyB9OworCQk5NTJCQzBBMTI3OTdBMzY4
MDAzRjNEMjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZUlu
dGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NTJCQzA5RTI3OTdBMzY2MDAzRjNEMjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNs
YXJhdGlvbkhhbmRsZUludGVybmFsLmggKi87IH07CisJCTk1MkJDMEEzMjc5N0EzNjgwMDNGM0Qy
NSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTJCQzBBMDI3OTdBMzY3
MDAzRjNEMjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk1NjUw
ODM5MjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNTUEkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1NjUwODM3MjZEODdBMkIwMEUx
NUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNTUEkuaCAqLzsgfTsKIAkJOTU2NTA4M0EyNkQ4N0Ey
QjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTY1MDgzODI2RDg3QTJCMDBFMTVDQjcgLyog
QXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaCAqLzsgfTsKIAkJOTU5MzY3NUYyNTJFNUUzMTAwRDNG
MEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1OTM2NzVEMjUyRTVFMzAwMEQzRjBBMCAvKiBXS1N0eWx1
c0RldmljZU9ic2VydmVyLmggKi87IH07CkBAIC01MzY1LDYgKzUzNjcsOSBAQAogCQk5M0Y1NDlC
NTFFMzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwRjI4N0UyNTI0MTRFOTAwQjc0RjFD
IC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaDsgcGF0aCA9IGlvcy9XS01vdXNlRGV2aWNlT2Jz
ZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwRjI4N0YyNTI0MTRFQTAw
Qjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbmFtZSA9IFdLTW91c2VEZXZpY2VPYnNlcnZlci5tbTsgcGF0aCA9IGlvcy9X
S01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1
MkJDMDlFMjc5N0EzNjYwMDNGM0QyNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xh
cmF0aW9uSGFuZGxlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZUludGVybmFsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MkJDMDlGMjc5N0EzNjcwMDNGM0QyNSAvKiBX
S1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVE
ZWNsYXJhdGlvbkhhbmRsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUyQkMw
QTAyNzk3QTM2NzAwM0YzRDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRp
b25IYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNz
UGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5NTY1MDgzNzI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJ
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlTWVkaWFTZXJ2aWNlc1NQ
SS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTY1MDgzODI2RDg3QTJCMDBFMTVD
QjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTU5MzY3NUQyNTJFNUUzMDAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tTdHlsdXNEZXZpY2VPYnNl
cnZlci5oOyBwYXRoID0gaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTc4ODcsNiArNzg5Miw5IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJ
CQkxQUEyRTU2NTE4RDc3NTA4MDAzODE0QkQgLyogV0tXZWJQcm9jZXNzQnVuZGxlUGFyYW1ldGVy
cy5oICovLAogCQkJCTFBQTJFNTY0MThENzc1MDgwMDM4MTRCRCAvKiBXS1dlYlByb2Nlc3NCdW5k
bGVQYXJhbWV0ZXJzLm1tICovLAorCQkJCTk1MkJDMEEwMjc5N0EzNjcwMDNGM0QyNSAvKiBXS1dl
YlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmggKi8sCisJCQkJOTUyQkMw
OUYyNzk3QTM2NzAwM0YzRDI1IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRp
b25IYW5kbGUubW0gKi8sCisJCQkJOTUyQkMwOUUyNzk3QTM2NjAwM0YzRDI1IC8qIFdLV2ViUHJv
Y2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVJbnRlcm5hbC5oICovLAogCQkJCTM3
NzUxMjJFMURGMERDOEIwMDhBMzUxQyAvKiBXS1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdh
dGUuaCAqLywKIAkJCQkzNzk1Nzg5QjE4QUQ0RjExMDBCOUVEMkUgLyogV0tXZWJQcm9jZXNzUGx1
Z0luRm9ybURlbGVnYXRlUHJpdmF0ZS5oICovLAogCQkJCTFGMDE4MTY5MTg1OERDMTUwMEY5Mjg4
NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oICovLApAQCAtMTM5NzYsNiArMTM5ODQsOCBA
QAogCQkJCUJDOEYyRjJCMTYyNzNBMkMwMDVGQUNCNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93
c2VyQ29udGV4dENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOEYyRjJFMTYyNzNB
Q0MwMDVGQUNCNSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjk1MDE3MjQxNjJBNDUwNDAwNEE5RDcxIC8q
IFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlclByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTk1MkJDMEEzMjc5N0EzNjgwMDNGM0QyNSAvKiBXS1dlYlByb2Nlc3NQ
bHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NTJC
QzBBMTI3OTdBMzY4MDAzRjNEMjUgLyogV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJh
dGlvbkhhbmRsZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzc1MTIyRjFERjBEQzhC
MDA4QTM1MUMgLyogV0tXZWJQcm9jZXNzUGx1Z0luRWRpdGluZ0RlbGVnYXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzNzk1Nzg5QzE4QUQ0RjE5MDBCOUVEMkUgLyogV0tXZWJQcm9jZXNzUGx1Z0lu
Rm9ybURlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUY3NTA2QjExODU5MTYz
NzAwRUMwRkY3IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29j
b2EvV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQ
bHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWZkYWMxZjdiYjVk
YzZkNDUxZDU1ZTI3N2I3MzQzMDEyOTVjNGZhMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1
Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpbXBvcnQgPEZvdW5kYXRp
b24vRm91bmRhdGlvbi5oPgorI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
aD4KKworV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpCitAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5k
bGUgOiBOU09iamVjdAorCisrIChXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlICopY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVdpdGhKU1ZhbHVlOihKU1ZhbHVlICop
dmFsdWUgaW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0OworCitAZW5kCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2Vi
UHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkNT
U1N0eWxlRGVjbGFyYXRpb25IYW5kbGUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGZjNjY3MzRlZGI1MWFiNjkz
NDIxYTE0Zjc5N2NmNmQxNDM3ZDQxYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luQ1NT
U3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5tbQpAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURl
Y2xhcmF0aW9uSGFuZGxlSW50ZXJuYWwuaCIKKworI2ltcG9ydCA8V2ViQ29yZS9DU1NTdHlsZURl
Y2xhcmF0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CisKK0Bp
bXBsZW1lbnRhdGlvbiBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxl
IHsKKyAgICBBUEk6Ok9iamVjdFN0b3JhZ2U8V2ViS2l0OjpJbmplY3RlZEJ1bmRsZUNTU1N0eWxl
RGVjbGFyYXRpb25IYW5kbGU+IF9jc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOworfQorCistICh2
b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1h
aW5SdW5Mb29wKFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuY2xh
c3MsIHNlbGYpKQorICAgICAgICByZXR1cm47CisgICAgX2Nzc1N0eWxlRGVjbGFyYXRpb25IYW5k
bGUtPn5JbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUoKTsKKyAgICBbc3Vw
ZXIgZGVhbGxvY107Cit9CisKKysgKFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRp
b25IYW5kbGUgKiljc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxlV2l0aEpTVmFsdWU6KEpTVmFsdWUg
Kil2YWx1ZSBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQKK3sKKyAgICBKU0NvbnRleHRS
ZWYgY29udGV4dFJlZiA9IFtjb250ZXh0IEpTR2xvYmFsQ29udGV4dFJlZl07CisgICAgSlNPYmpl
Y3RSZWYgb2JqZWN0UmVmID0gSlNWYWx1ZVRvT2JqZWN0KGNvbnRleHRSZWYsIFt2YWx1ZSBKU1Zh
bHVlUmVmXSwgbnVsbHB0cik7CisgICAgcmV0dXJuIHdyYXBwZXIoV2ViS2l0OjpJbmplY3RlZEJ1
bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGU6OmdldE9yQ3JlYXRlKGNvbnRleHRSZWYsIG9i
amVjdFJlZikpOworfQorCistIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJh
dGlvbkhhbmRsZSYpX2Nzc1N0eWxlRGVjbGFyYXRpb25IYW5kbGUKK3sKKyAgICByZXR1cm4gKl9j
c3NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOworfQorCisvLyBNQVJLOiBXS09iamVjdCBwcm90b2Nv
bCBpbXBsZW1lbnRhdGlvbgorCistIChBUEk6Ok9iamVjdCYpX2FwaU9iamVjdAoreworICAgIHJl
dHVybiAqX2Nzc1N0eWxlRGVjbGFyYXRpb25IYW5kbGU7Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZUludGVybmFsLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1Bs
dWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4Njc4
ODQzNzk0NmQzMWM3YjdjYzA1NmU0YzczNzIzOTZjYzM1MzYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVJbnRlcm5hbC5oCkBAIC0wLDAgKzEs
NDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luQ1NT
U3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oPgorCisjaW1wb3J0ICJJbmplY3RlZEJ1bmRsZUNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGUuaCIKKyNpbXBvcnQgIldLT2JqZWN0LmgiCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBXcmFwcGVyVHJhaXRzPEluamVjdGVkQnVu
ZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZT4geworICAgIHVzaW5nIFdyYXBwZXJDbGFzcyA9
IFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGU7Cit9OworCit9CisK
K0BpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSAo
KSA8V0tPYmplY3Q+CisKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIFdlYktpdDo6SW5qZWN0ZWRCdW5k
bGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlJiBfY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTsK
KworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFt
ZS5oCmluZGV4IDYyZTY3NjA0ZWU2ZDBkOGY2MDFjNTgyYTM0OGEyMTMyYzY3OTkzNjguLjU1MTQ0
OTJkOTg0YzE0ZjRmY2NjYTdmOGU3ZmNkOTljZDg5ODBmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNp
bXBvcnQgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmg+CiAKIEBjbGFzcyBfV0tGcmFt
ZUhhbmRsZTsKK0BjbGFzcyBXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFu
ZGxlOwogQGNsYXNzIFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQ7CiBAY2xhc3MgV0tX
ZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZTsKIEBjbGFzcyBXS1dlYlByb2Nlc3NQbHVnSW5SYW5n
ZUhhbmRsZTsKQEAgLTU4LDYgKzU5LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEw
KSwgaW9zKDguMCkpCiAtIChKU0NvbnRleHQgKilqc0NvbnRleHRGb3JTZXJ2aWNlV29ya2VyV29y
bGQ6KFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkICopd29ybGQ7CiAtIChXS1dlYlByb2Nl
c3NQbHVnSW5IaXRUZXN0UmVzdWx0ICopaGl0VGVzdDooQ0dQb2ludClwb2ludDsKIC0gKFdLV2Vi
UHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQgKiloaXRUZXN0OihDR1BvaW50KXBvaW50IG9wdGlv
bnM6KFdLSGl0VGVzdE9wdGlvbnMpb3B0aW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjAp
LCBpb3MoMTUuMCkpOworLSAoSlNWYWx1ZSAqKWpzQ1NTU3R5bGVEZWNsYXJhdGlvbkZvckNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGU6KFdLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRp
b25IYW5kbGUgKiljc3NTdHlsZURlY2xhcmF0aW9uSGFuZGxlIGluV29ybGQ6KFdLV2ViUHJvY2Vz
c1BsdWdJblNjcmlwdFdvcmxkICopd29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKEpTVmFsdWUgKilqc05vZGVGb3JOb2RlSGFuZGxl
OihXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlICopbm9kZUhhbmRsZSBpbldvcmxkOihXS1dl
YlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCAqKXdvcmxkOwogLSAoSlNWYWx1ZSAqKWpzUmFuZ2VG
b3JSYW5nZUhhbmRsZTooV0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VIYW5kbGUgKilyYW5nZUhhbmRs
ZSBpbldvcmxkOihXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCAqKXdvcmxkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTIuMyksIGlvcygxMC4zKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
UGx1Z0luRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tCmluZGV4IGM4MTFlYWQ4Mjk3ODgw
MGZkZTAwZGFmZjVjMmNjNGM3OTQ2YThiYzYuLjY3MmUxNDU2MWU4NzVkMTZiNTVhMjUxYWU2NGE2
Yjk1OGE4MGQ0ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQ
bHVnSW5GcmFtZS5tbQpAQCAtMjksNiArMjksNyBAQAogI2ltcG9ydCAiV0tOU0FycmF5LmgiCiAj
aW1wb3J0ICJXS05TVVJMRXh0cmFzLmgiCiAjaW1wb3J0ICJXS1dlYlByb2Nlc3NQbHVnSW5Ccm93
c2VyQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgorI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1
Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZUludGVybmFsLmgiCiAjaW1wb3J0ICJXS1dlYlBy
b2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2ViUHJvY2Vz
c1BsdWdJbk5vZGVIYW5kbGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJQcm9jZXNzUGx1Z0lu
UmFuZ2VIYW5kbGVJbnRlcm5hbC5oIgpAQCAtOTEsNiArOTIsMTIgQEAgLSAoV0tXZWJQcm9jZXNz
UGx1Z0luSGl0VGVzdFJlc3VsdCAqKWhpdFRlc3Q6KENHUG9pbnQpcG9pbnQgb3B0aW9uczooV0tI
aXRUZXN0T3AKICAgICByZXR1cm4gd3JhcHBlcihfZnJhbWUtPmhpdFRlc3QoV2ViQ29yZTo6SW50
UG9pbnQocG9pbnQpLCB0eXBlcykpOwogfQogCistIChKU1ZhbHVlICopanNDU1NTdHlsZURlY2xh
cmF0aW9uRm9yQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZTooV0tXZWJQcm9jZXNzUGx1Z0luQ1NT
U3R5bGVEZWNsYXJhdGlvbkhhbmRsZSAqKWNzc1N0eWxlRGVjbGFyYXRpb25IYW5kbGUgaW5Xb3Js
ZDooV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgKil3b3JsZAoreworICAgIEpTVmFsdWVS
ZWYgdmFsdWVSZWYgPSBfZnJhbWUtPmpzV3JhcHBlckZvcldvcmxkKCZbY3NzU3R5bGVEZWNsYXJh
dGlvbkhhbmRsZSBfY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRsZV0sICZbd29ybGQgX3NjcmlwdFdv
cmxkXSk7CisgICAgcmV0dXJuIFtKU1ZhbHVlIHZhbHVlV2l0aEpTVmFsdWVSZWY6dmFsdWVSZWYg
aW5Db250ZXh0OltzZWxmIGpzQ29udGV4dEZvcldvcmxkOndvcmxkXV07Cit9CisKIC0gKEpTVmFs
dWUgKilqc05vZGVGb3JOb2RlSGFuZGxlOihXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlICop
bm9kZUhhbmRsZSBpbldvcmxkOihXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCAqKXdvcmxk
CiB7CiAgICAgSlNWYWx1ZVJlZiB2YWx1ZVJlZiA9IF9mcmFtZS0+anNXcmFwcGVyRm9yV29ybGQo
Jltub2RlSGFuZGxlIF9ub2RlSGFuZGxlXSwgJlt3b3JsZCBfc2NyaXB0V29ybGRdKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0
ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlLmNwcAppbmRleCA5NjUwYmIzMzdhZWFmYzUzYjFlOTk3YTBhMGFlYjlmZDU2Y2I1
N2FlLi4zNjk0MTQ2YzUwMGJhYTVhN2M3Y2FlNzE5NjIzZmRjMGRlMTZlZTVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVu
ZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRp
b25IYW5kbGUuY3BwCkBAIC0yNiw3ICsyNiw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmgiCiAKKyNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DU1NTdHls
ZURlY2xhcmF0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9KU0NTU1N0eWxlRGVjbGFyYXRpb24u
aD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgogCkBAIC00MSw2ICs0MywxMiBAQCBzdGF0aWMgRE9NU3R5bGVEZWNsYXJhdGlvbkhhbmRs
ZUNhY2hlJiBkb21TdHlsZURlY2xhcmF0aW9uSGFuZGxlQ2FjaGUoKQogICAgIHJldHVybiBjYWNo
ZTsKIH0KIAorUmVmUHRyPEluamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZT4g
SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOjpnZXRPckNyZWF0ZShKU0Nv
bnRleHRSZWYsIEpTT2JqZWN0UmVmIG9iamVjdCkKK3sKKyAgICBDU1NTdHlsZURlY2xhcmF0aW9u
KiBjc3NTdHlsZURlY2xhcmF0aW9uID0gSlNDU1NTdHlsZURlY2xhcmF0aW9uOjp0b1dyYXBwZWQo
dG9KUyhvYmplY3QpLT52bSgpLCB0b0pTKG9iamVjdCkpOworICAgIHJldHVybiBnZXRPckNyZWF0
ZShjc3NTdHlsZURlY2xhcmF0aW9uKTsKK30KKwogUmVmUHRyPEluamVjdGVkQnVuZGxlQ1NTU3R5
bGVEZWNsYXJhdGlvbkhhbmRsZT4gSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFu
ZGxlOjpnZXRPckNyZWF0ZShDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZURlY2xhcmF0aW9uKQog
ewogICAgIGlmICghc3R5bGVEZWNsYXJhdGlvbikKQEAgLTY1LDQgKzczLDkgQEAgSW5qZWN0ZWRC
dW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOjp+SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURl
Y2xhcmF0aW9uSGFuZGwKICAgICBkb21TdHlsZURlY2xhcmF0aW9uSGFuZGxlQ2FjaGUoKS5yZW1v
dmUobV9zdHlsZURlY2xhcmF0aW9uLnB0cigpKTsKIH0KIAorQ1NTU3R5bGVEZWNsYXJhdGlvbiog
SW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlOjpjb3JlQ1NTU3R5bGVEZWNs
YXJhdGlvbigpCit7CisgICAgcmV0dXJuIG1fc3R5bGVEZWNsYXJhdGlvbi5wdHIoKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhh
bmRsZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9Jbmpl
Y3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUuaAppbmRleCA5NWQ5MjBjYWJjMjhj
N2Y1OTQ5OTdlZDk2MjY1YjU5ZGUzODIxOTcyLi5mN2M3MmFmZjNmMDQ3YjgxZTI4ZWY4NDkzMTE3
ZGNjNGUxYTUyNGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRC
dW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZp
bmUgSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlX2gKIAogI2luY2x1ZGUg
IkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgogI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKQEAgLTM4LDkgKzM5LDEy
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVj
bGFyYXRpb25IYW5kbGUgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBl
OjpCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlPiB7CiBwdWJsaWM6CisgICAgc3RhdGlj
IFJlZlB0cjxJbmplY3RlZEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGU+IGdldE9yQ3Jl
YXRlKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYpOwogICAgIHN0YXRpYyBSZWZQdHI8SW5qZWN0
ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlPiBnZXRPckNyZWF0ZShXZWJDb3JlOjpD
U1NTdHlsZURlY2xhcmF0aW9uKik7CiAgICAgdmlydHVhbCB+SW5qZWN0ZWRCdW5kbGVDU1NTdHls
ZURlY2xhcmF0aW9uSGFuZGxlKCk7CiAKKyAgICBXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9u
KiBjb3JlQ1NTU3R5bGVEZWNsYXJhdGlvbigpOworCiBwcml2YXRlOgogICAgIEluamVjdGVkQnVu
ZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZShXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9u
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApp
bmRleCBjZDY0YzRhMDI0Zjk5ODMyM2FhZjVmZTU2YmVhZTQwOTYwZmVhNmY2Li44MjgyNTBjNjU0
ODE0Y2MyM2U0M2M3YmYwYTk5YWFlNzFmODAxODJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAi
QVBJQXJyYXkuaCIKICNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKICNpbmNsdWRlICJGcmFt
ZUluZm9EYXRhLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmgiCiAjaW5j
bHVkZSAiSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5k
bGVSYW5nZUhhbmRsZS5oIgpAQCAtNzE4LDYgKzcxOSwxNyBAQCBXZWJGcmFtZSogV2ViRnJhbWU6
OmZyYW1lRm9yQ29udGV4dChKU0NvbnRleHRSZWYgY29udGV4dCkKICAgICByZXR1cm4gY29yZUZy
YW1lID8gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmNvcmVGcmFtZSkgOiBudWxscHRyOwogfQog
CitKU1ZhbHVlUmVmIFdlYkZyYW1lOjpqc1dyYXBwZXJGb3JXb3JsZChJbmplY3RlZEJ1bmRsZUNT
U1N0eWxlRGVjbGFyYXRpb25IYW5kbGUqIGNzc1N0eWxlRGVjbGFyYXRpb25IYW5kbGUsIEluamVj
dGVkQnVuZGxlU2NyaXB0V29ybGQqIHdvcmxkKQoreworICAgIGlmICghbV9jb3JlRnJhbWUpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgSlNET01XaW5kb3cqIGdsb2JhbE9iamVjdCA9
IG1fY29yZUZyYW1lLT5zY3JpcHQoKS5nbG9iYWxPYmplY3Qod29ybGQtPmNvcmVXb3JsZCgpKTsK
KworICAgIEpTTG9ja0hvbGRlciBsb2NrKGdsb2JhbE9iamVjdCk7CisgICAgcmV0dXJuIHRvUmVm
KGdsb2JhbE9iamVjdCwgdG9KUyhnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgY3NzU3R5bGVE
ZWNsYXJhdGlvbkhhbmRsZS0+Y29yZUNTU1N0eWxlRGVjbGFyYXRpb24oKSkpOworfQorCiBKU1Zh
bHVlUmVmIFdlYkZyYW1lOjpqc1dyYXBwZXJGb3JXb3JsZChJbmplY3RlZEJ1bmRsZU5vZGVIYW5k
bGUqIG5vZGVIYW5kbGUsIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqIHdvcmxkKQogewogICAg
IGlmICghbV9jb3JlRnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
RnJhbWUuaAppbmRleCA1NzI2NmU0ZDU0MDczZTA4OTgzYzlmM2RhZmNkOTQ5MzJhNzkyZjA1Li4x
MDRjNmRiYTE4OTg1NWU4YzkzMjNkYmY2ZTg1OGJjNzY3NjczMzI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKQEAgLTU4LDYgKzU4LDcgQEAgY2xhc3Mg
SW50UmVjdDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIEluamVjdGVkQnVuZGxlQ1NT
U3R5bGVEZWNsYXJhdGlvbkhhbmRsZTsKIGNsYXNzIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3Vs
dDsKIGNsYXNzIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTsKIGNsYXNzIEluamVjdGVkQnVuZGxl
UmFuZ2VIYW5kbGU7CkBAIC0xNDYsNiArMTQ3LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFdl
YkZyYW1lKiBmcmFtZUZvckNvbnRleHQoSlNDb250ZXh0UmVmKTsKIAorICAgIEpTVmFsdWVSZWYg
anNXcmFwcGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxl
KiwgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCopOwogICAgIEpTVmFsdWVSZWYganNXcmFwcGVy
Rm9yV29ybGQoSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlKiwgSW5qZWN0ZWRCdW5kbGVTY3JpcHRX
b3JsZCopOwogICAgIEpTVmFsdWVSZWYganNXcmFwcGVyRm9yV29ybGQoSW5qZWN0ZWRCdW5kbGVS
YW5nZUhhbmRsZSosIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQqKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggZmJkZWVm
NGMwZjZkZGI3YWMzMzg0ZTc4ODM0MDViNDY0MjlkY2Y2Ni4uNDFiZjU0NDM2ZGJjMGUyMGUwYjU4
YWJkOGM5YThjYTNkOWNkOTE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC02Miw2ICs2Miw3IEBACiAjaW1wb3J0IDxXZWJD
b3JlL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9u
dENhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRDYXNjYWRlLmg+CisjaW1wb3J0IDxXZWJD
b3JlL0ZyYW1lVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5Q29udHJvbGxlci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgogI2ltcG9ydCA8V2ViQ29yZS9JT1N1cmZh
Y2UuaD4KQEAgLTc1LDYgKzc2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGVyZm9ybWFuY2VMb2dn
aW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgog
I2ltcG9ydCA8V2ViQ29yZS9TV0NvbnRleHRNYW5hZ2VyLmg+CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzQzOGZhMzIxOWE4MmRmOTVhNTJmNWI2
ZWU0MzM5ZGEzOTdiMWJjYS4uYWFmYzA4ZjBlNDMwY2JlYmNjMGMyMDIzMzNjZWQ0YTFhYzEzNTdl
YyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMxIEBACisyMDIyLTAxLTIwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgU1BJIGZvciBwYXNzaW5nIGFyb3VuZCBhbmQgZ2V0dGluZyBkZXRh
aWxzIGFib3V0IGBXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uYCBpbiBpbmplY3RlZCBidW5k
bGUgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM1Mzg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NzU2NjczNz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9CdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJvdG9jb2wuaDogQWRkZWQu
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVDU1NTdHls
ZURlY2xhcmF0aW9uSGFuZGxlLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bQnVuZGxlQ1NTU3R5bGVE
ZWNsYXJhdGlvbkhhbmRsZVJlbW90ZU9iamVjdCB2ZXJpZnlTdHlsZTpdKToKKyAgICAgICAgKFRF
U1QuV2ViS2l0LldLV2ViUHJvY2Vzc1BsdWdJbkNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGUpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlQ1NTU3R5bGVE
ZWNsYXJhdGlvbkhhbmRsZVBsdWdJbi5tbTogQWRkZWQuCisgICAgICAgICgtW0J1bmRsZUNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGVQbHVnSW4gd2ViUHJvY2Vzc1BsdWdJbjpkaWRDcmVhdGVCcm93
c2VyQ29udGV4dENvbnRyb2xsZXI6XSk6CisgICAgICAgICgtW0J1bmRsZUNTU1N0eWxlRGVjbGFy
YXRpb25IYW5kbGVQbHVnSW4gd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
cjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZTpdKToKKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29va2llUHJpdmF0ZUJyb3dzaW5nLm1tOgorICAgICAgICAo
LVtDb29raWVQcml2YXRlQnJvd3NpbmdEZWxlZ2F0ZSB3ZWJWaWV3OnJ1bkphdmFTY3JpcHRBbGVy
dFBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTpjb21wbGV0aW9uSGFuZGxlcjpdKToK
KyAgICAgICAgKFRFU1QuV2ViS2l0LkNvb2tpZVByaXZhdGVCcm93c2luZyk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Nb2RhbENvbnRhaW5lck9ic2VydmF0aW9u
Lm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVzdG9yZVNl
c3Npb25TdGF0ZVdpdGhvdXROYXZpZ2F0aW9uLm1tOgorICAgICAgICAoLVtTZXNzaW9uU3RhdGVE
ZWxlZ2F0ZSB3ZWJWaWV3OmRpZEZpbmlzaE5hdmlnYXRpb246XSk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpjcmVhdGVTZXNzaW9uU3RhdGVEYXRhKToKKyAgICAgICAgRHJpdmUtYnk6IFVuaWZp
ZWQgc291cmNlcyBmaXhlcy4KKwogMjAyMi0wMS0xMCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFy
ZEBhcHBsZS5jb20+CiAKICAgICAgICAgW2dpdC13ZWJraXRdIEltcHJvdmUgc2V0dXAgdXNhYmls
aXR5CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMjU3MGU2YjU1YmI4NGMz
YWIyMjY0NmIyZWY2MjljMzJmODg2MmNiNC4uYTJkNGQyNDcyMzFmZWU2ODg4OTdhZjFhZjU4ZDlk
ZGE1NDNmMmYzZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2Eu
dHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dApAQCAtNTQsNiAr
NTQsNyBAQCBUZXN0cy9XZWJLaXRDb2NvYS9BdWRpb0J1ZmZlclNpemUubW0KIFRlc3RzL1dlYktp
dENvY29hL0F1ZGlvUm91dGluZ0FyYml0cmF0aW9uLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9BdXRv
RmlsbEF2YWlsYWJsZS5tbQogVGVzdHMvV2ViS2l0Q29jb2EvQXV0b0xheW91dEludGVncmF0aW9u
Lm1tCitUZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1t
CiBUZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVFZGl0aW5nRGVsZWdhdGUubW0KIFRlc3RzL1dlYktp
dENvY29hL0J1bmRsZUZvcm1EZWxlZ2F0ZS5tbQogVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlUGFn
ZUNvbnNvbGVNZXNzYWdlLm1tCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDVhNTBkZmIyZjAy
NWRhNDQwODM5YTMzN2M2NWVmNTYyYjBmMGVkZTMuLjYwNzFjMTI4M2NkMjQ3ZGFjN2Y5MWUxM2U4
ODMyM2YwMTJlYWY5NDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NjgsNiArNzY4LDcg
QEAKIAkJOTNGNTZEQTcxRTVGOTE3NDAwM0VERTg0IC8qIGxpYmljdWNvcmUuZHlsaWIgaW4gRnJh
bWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzgzRTAzMzFEMEE1
RjI3MDBGRUJDRjMgLyogbGliaWN1Y29yZS5keWxpYiAqLzsgfTsKIAkJOTNGN0U4NkYxNERDOEU1
QzAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGN0U4
NkUxNERDOEU1QjAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1l
c19CdW5kbGUuY3BwICovOyB9OwogCQk5M0ZDREIzNDI2MzYzMTU2MDA0NkREN0QgLyogU29ydGVk
QXJyYXlNYXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNGQ0RCMzMyNjM2MzE1NjAwNDZERDdEIC8qIFNvcnRlZEFycmF5TWFwLmNwcCAqLzsgfTsK
KwkJOTUyOEU1RkQyNzlBMDM0MTAwOEFERkVGIC8qIEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGVQbHVnSW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NTI4RTVGQzI3OUEwMzM4MDA4QURGRUYgLyogQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlv
bkhhbmRsZVBsdWdJbi5tbSAqLzsgfTsKIAkJOTUyRjcxNjcyNzBCRDlDQjAwRDAwRENDIC8qIENT
U1ZpZXdwb3J0VW5pdHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5NTJGNzE2NjI3MEJEOTk3MDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRV
bml0cy5odG1sICovOyB9OwogCQk5NTJGNzE2NzI3MEJEOUNCMDBEMDBEQ0QgLyogQ1NTVmlld3Bv
cnRVbml0cy5zdmcgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTUyRjcxNjYyNzBCRDk5NzAwRDAwRENEIC8qIENTU1ZpZXdwb3J0VW5pdHMuc3Zn
ICovOyB9OwogCQk5NUM1MjcyOTI3NUYzNUUxMDBEQTdFNDAgLyogRm9udFNoYWRvd1Rlc3RzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QzUyNzI4
Mjc1RjM1RTEwMERBN0U0MCAvKiBGb250U2hhZG93VGVzdHMuY3BwICovOyB9OwpAQCAtMjU0MCw2
ICsyNTQxLDkgQEAKIAkJOTNGQ0RCMzMyNjM2MzE1NjAwNDZERDdEIC8qIFNvcnRlZEFycmF5TWFw
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvcnRlZEFycmF5TWFw
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwOTVGMUYyNjJGRkZBNTAwMDBE
OTIwIC8qIFNhbXBsZWRQYWdlVG9wQ29sb3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBTYW1wbGVkUGFnZVRvcENvbG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5NTBFNENDMDI1MkU3NTIzMDA3MTY1OUYgLyogaU9TU3R5bHVzU3VwcG9ydC5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IGlPU1N0eWx1c1N1cHBv
cnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MjhFNUZBMjc5QTAzMzcwMDhB
REZFRiAvKiBCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJvdG9jb2wuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVByb3RvY29sLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MjhFNUZCMjc5QTAzMzcwMDhBREZFRiAvKiBCdW5k
bGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQnVu
ZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTUyOEU1RkMyNzlBMDMzODAwOEFERkVGIC8qIEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRp
b25IYW5kbGVQbHVnSW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBCdW5kbGVDU1NTdHlsZURl
Y2xhcmF0aW9uSGFuZGxlUGx1Z0luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NTJGNzE2NDI3MEJEOTdFMDBEMDBEQ0MgLyogQ1NTVmlld3BvcnRVbml0cy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENTU1ZpZXdwb3J0VW5pdHMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MkY3MTY2MjcwQkQ5OTcwMEQwMERDQyAvKiBDU1NW
aWV3cG9ydFVuaXRzLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBDU1NWaWV3cG9ydFVuaXRzLmh0bWw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MkY3MTY2MjcwQkQ5OTcwMEQwMERDRCAvKiBDU1NW
aWV3cG9ydFVuaXRzLnN2ZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IENTU1ZpZXdwb3J0VW5pdHMuc3ZnOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzM4OCw2ICszMzkyLDkgQEAKIAkJCQkyREQzNTUzNTFC
RDA4Mzc4MDA1REY0QTcgLyogQXV0b0xheW91dEludGVncmF0aW9uLm1tICovLAogCQkJCTA3Q0Qz
MkY1MjA2NUI1NDIwMDY0QTRCRSAvKiBBVkZvdW5kYXRpb25QcmVmZXJlbmNlLm1tICovLAogCQkJ
CTVDNDI1OTQ0MjI2NjlFOUIwMDM5QUE3QSAvKiBCYXNpY1Byb3Bvc2VkQ3JlZGVudGlhbFBsdWdJ
bi5tbSAqLywKKwkJCQk5NTI4RTVGQjI3OUEwMzM3MDA4QURGRUYgLyogQnVuZGxlQ1NTU3R5bGVE
ZWNsYXJhdGlvbkhhbmRsZS5tbSAqLywKKwkJCQk5NTI4RTVGQzI3OUEwMzM4MDA4QURGRUYgLyog
QnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVBsdWdJbi5tbSAqLywKKwkJCQk5NTI4RTVG
QTI3OUEwMzM3MDA4QURGRUYgLyogQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVByb3Rv
Y29sLmggKi8sCiAJCQkJMzc0QjdBNUUxREYzNkVFRTAwQUNDQjZDIC8qIEJ1bmRsZUVkaXRpbmdE
ZWxlZ2F0ZS5tbSAqLywKIAkJCQkzNzRCN0E1RjFERjM2RUVFMDBBQ0NCNkMgLyogQnVuZGxlRWRp
dGluZ0RlbGVnYXRlUGx1Z0luLm1tICovLAogCQkJCTM3NEI3QTYyMURGMzczNEMwMEFDQ0I2QyAv
KiBCdW5kbGVFZGl0aW5nRGVsZWdhdGVQcm90b2NvbC5oICovLApAQCAtNTg4OCw2ICs1ODk1LDcg
QEAKIAkJCQk0OTFBRUVGODI2NTJFMzM1MDBENTMwQTggLyogQXBwUHJpdmFjeVJlcG9ydFBsdWdJ
bi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTc1NENFQzgxMUY2NzIyRjIwMEQwMDM5QSAvKiBBdXRv
RmlsbEF2YWlsYWJsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDNDI1OTQ2MjI2NkE2OEEwMDM5
QUE3QSAvKiBCYXNpY1Byb3Bvc2VkQ3JlZGVudGlhbFBsdWdJbi5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTk1MjhFNUZEMjc5QTAzNDEwMDhBREZFRiAvKiBCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9u
SGFuZGxlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc0QjdBNjExREYzNzFDRjAwQUND
QjZDIC8qIEJ1bmRsZUVkaXRpbmdEZWxlZ2F0ZVBsdWdJbi5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTdBODlCQjY4MjMzMTY0M0EwMDQyQ0IxRSAvKiBCdW5kbGVGb3JtRGVsZWdhdGVQbHVnSW4ubW0g
aW4gU291cmNlcyAqLywKIAkJCQk1MTc1QzdBMjI2Rjg3NjIzMDAwM0FGNUMgLyogQnVuZGxlUGFn
ZUNvbnNvbGVNZXNzYWdlLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5k
bGUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFhMzk1NTg2NWI0YjM1N2ZjMTUx
MWE3YmI4MzgyYTVmNDc4MTA3YgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZS5tbQpA
QCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpbXBvcnQgIkJ1bmRsZUNTU1N0eWxlRGVjbGFy
YXRpb25IYW5kbGVQcm90b2NvbC5oIgorI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNp
bXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKKyNpbXBv
cnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1By
b2Nlc3NQb29sUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4K
KyNpbXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaD4KKyNpbXBvcnQgPFdl
YktpdC9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgorCitzdGF0aWMgYm9vbCBkaWRWZXJpZnlTdHlsZTsKKworQGludGVyZmFjZSBCdW5kbGVDU1NT
dHlsZURlY2xhcmF0aW9uSGFuZGxlUmVtb3RlT2JqZWN0IDogTlNPYmplY3QgPEJ1bmRsZUNTU1N0
eWxlRGVjbGFyYXRpb25IYW5kbGVQcm90b2NvbD4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIEJ1
bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVSZW1vdGVPYmplY3QKKworLSAodm9pZCl2ZXJp
ZnlTdHlsZTooQk9PTCl2YWxpZAoreworICAgIEVYUEVDVF9UUlVFKHZhbGlkKTsKKworICAgIGRp
ZFZlcmlmeVN0eWxlID0gdHJ1ZTsKK30KKworQGVuZAorCitURVNUKFdlYktpdCwgV0tXZWJQcm9j
ZXNzUGx1Z0luQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZSkKK3sKKyAgICBhdXRvIGNvbmZpZ3Vy
YXRpb24gPSByZXRhaW5QdHIoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJh
dGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhh
bmRsZVBsdWdJbiJdKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAgYXV0byBvYmplY3QgPSBhZG9wdE5TKFtb
QnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVJlbW90ZU9iamVjdCBhbGxvY10gaW5pdF0p
OworICAgIGF1dG8gaW50ZXJmYWNlID0gcmV0YWluUHRyKFtfV0tSZW1vdGVPYmplY3RJbnRlcmZh
Y2UgcmVtb3RlT2JqZWN0SW50ZXJmYWNlV2l0aFByb3RvY29sOkBwcm90b2NvbChCdW5kbGVDU1NT
dHlsZURlY2xhcmF0aW9uSGFuZGxlUHJvdG9jb2wpXSk7CisgICAgW1t3ZWJWaWV3IF9yZW1vdGVP
YmplY3RSZWdpc3RyeV0gcmVnaXN0ZXJFeHBvcnRlZE9iamVjdDpvYmplY3QuZ2V0KCkgaW50ZXJm
YWNlOmludGVyZmFjZS5nZXQoKV07CisKKyAgICBOU1N0cmluZyAqaHRtbCA9IEAoCisgICAgICAg
ICI8c2NyaXB0PiIKKyAgICAgICAgImZ1bmN0aW9uIHZlcmlmeVN0eWxlKHN0eWxlKSB7IgorICAg
ICAgICAiICAgIHJldHVybiBzdHlsZSA9PT0gZG9jdW1lbnQuYm9keS5zdHlsZTsiCisgICAgICAg
ICJ9IgorICAgICAgICAiPC9zY3JpcHQ+IgorICAgICk7CisgICAgW3dlYlZpZXcgbG9hZEhUTUxT
dHJpbmc6aHRtbCBiYXNlVVJMOm5pbF07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRpZFZlcmlmeVN0eWxlKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVBsdWdJbi5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxlQ1NTU3R5bGVEZWNs
YXJhdGlvbkhhbmRsZVBsdWdJbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZWJhN2Y2Yjc0NDVhMGM1NGRkY2Qw
NWY3MWZkN2FmOWFmNTI1MzBiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9CdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUGx1Z0lu
Lm1tCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKwor
I2ltcG9ydCAiQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVByb3RvY29sLmgiCisjaW1w
b3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1Bs
dWdJbi5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlclByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5D
U1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNz
UGx1Z0luRnJhbWUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVs
ZWdhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5o
PgorI2ltcG9ydCA8V2ViS2l0L19XS1JlbW90ZU9iamVjdEludGVyZmFjZS5oPgorI2ltcG9ydCA8
V2ViS2l0L19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CisKK0BpbnRlcmZhY2UgQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVBsdWdJbiA6
IE5TT2JqZWN0IDxXS1dlYlByb2Nlc3NQbHVnSW4sIFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxl
Z2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIEJ1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25I
YW5kbGVQbHVnSW4geworICAgIFJldGFpblB0cjxXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXI+IF9icm93c2VyQ29udGV4dENvbnRyb2xsZXI7CisgICAgUmV0YWluUHRy
PFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXI+IF9wbHVnSW5Db250cm9sbGVyOworICAgIFJl
dGFpblB0cjxpZCA8QnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVByb3RvY29sPj4gX3Jl
bW90ZU9iamVjdDsKK30KKworLSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luOihXS1dlYlByb2Nlc3NQ
bHVnSW5Db250cm9sbGVyICopcGx1Z0luQ29udHJvbGxlciBkaWRDcmVhdGVCcm93c2VyQ29udGV4
dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAq
KWJyb3dzZXJDb250ZXh0Q29udHJvbGxlcgoreworICAgIEFTU0VSVCghX2Jyb3dzZXJDb250ZXh0
Q29udHJvbGxlcik7CisgICAgQVNTRVJUKCFfcGx1Z0luQ29udHJvbGxlcik7CisgICAgX2Jyb3dz
ZXJDb250ZXh0Q29udHJvbGxlciA9IGJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjsKKyAgICBfcGx1
Z0luQ29udHJvbGxlciA9IHBsdWdJbkNvbnRyb2xsZXI7CisKKyAgICBhdXRvIGludGVyZmFjZSA9
IHJldGFpblB0cihbX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlIHJlbW90ZU9iamVjdEludGVyZmFj
ZVdpdGhQcm90b2NvbDpAcHJvdG9jb2woQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVBy
b3RvY29sKV0pOworICAgIF9yZW1vdGVPYmplY3QgPSBbYnJvd3NlckNvbnRleHRDb250cm9sbGVy
Ll9yZW1vdGVPYmplY3RSZWdpc3RyeSByZW1vdGVPYmplY3RQcm94eVdpdGhJbnRlcmZhY2U6aW50
ZXJmYWNlLmdldCgpXTsKKworICAgIFtfYnJvd3NlckNvbnRleHRDb250cm9sbGVyIHNldExvYWRE
ZWxlZ2F0ZTpzZWxmXTsKK30KKworLSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRl
eHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIg
Kiljb250cm9sbGVyIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lOihXS1dlYlByb2Nlc3NQ
bHVnSW5GcmFtZSAqKWZyYW1lCit7CisgICAgYXV0byBjb250ZXh0ID0gW2ZyYW1lIGpzQ29udGV4
dEZvcldvcmxkOldLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLm5vcm1hbFdvcmxkXTsKKyAg
ICBhdXRvIGpzQ1NTU3R5bGVEZWNsYXJhdGlvbiA9IFtjb250ZXh0IGV2YWx1YXRlU2NyaXB0OkAi
ZG9jdW1lbnQuYm9keS5zdHlsZSJdOworICAgIGF1dG8gY3NzU3R5bGVEZWNsYXJhdGlvbkhhbmRs
ZSA9IFtXS1dlYlByb2Nlc3NQbHVnSW5DU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlIGNzc1N0eWxl
RGVjbGFyYXRpb25IYW5kbGVXaXRoSlNWYWx1ZTpqc0NTU1N0eWxlRGVjbGFyYXRpb24gaW5Db250
ZXh0OmNvbnRleHRdOworICAgIGF1dG8ganNDU1NTdHlsZURlY2xhcmF0aW9uRm9yQ1NTU3R5bGVE
ZWNsYXJhdGlvbkhhbmRsZSA9IFtmcmFtZSBqc0NTU1N0eWxlRGVjbGFyYXRpb25Gb3JDU1NTdHls
ZURlY2xhcmF0aW9uSGFuZGxlOmNzc1N0eWxlRGVjbGFyYXRpb25IYW5kbGUgaW5Xb3JsZDpXS1dl
YlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5ub3JtYWxXb3JsZF07CisgICAgaWYgKGpzQ1NTU3R5
bGVEZWNsYXJhdGlvbiAhPSBqc0NTU1N0eWxlRGVjbGFyYXRpb25Gb3JDU1NTdHlsZURlY2xhcmF0
aW9uSGFuZGxlKQorICAgICAgICBbX3JlbW90ZU9iamVjdCB2ZXJpZnlTdHlsZTpOT107CisgICAg
ZWxzZSB7CisgICAgICAgIGF1dG8ganNWZXJpZnlTdHlsZSA9IFtjb250ZXh0IGV2YWx1YXRlU2Ny
aXB0OkAidmVyaWZ5U3R5bGUiXTsKKyAgICAgICAgW19yZW1vdGVPYmplY3QgdmVyaWZ5U3R5bGU6
W2pzVmVyaWZ5U3R5bGUgY2FsbFdpdGhBcmd1bWVudHM6QFtqc0NTU1N0eWxlRGVjbGFyYXRpb25G
b3JDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlXV0udG9Cb29sXTsKKyAgICB9Cit9CisKK0BlbmQK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQnVuZGxl
Q1NTU3R5bGVEZWNsYXJhdGlvbkhhbmRsZVByb3RvY29sLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQcm90b2Nv
bC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE5ZTE4OTRhMDljZjZhM2UwNjg5Y2JlMTdkNTE4Y2EwYmM3YTU0NmIK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0J1bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25IYW5kbGVQcm90b2NvbC5oCkBAIC0wLDAgKzEsMzAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKK0Bwcm90
b2NvbCBCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uSGFuZGxlUHJvdG9jb2wgPE5TT2JqZWN0Pgor
LSAodm9pZCl2ZXJpZnlTdHlsZTooQk9PTCl2YWxpZDsKK0BlbmQKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29va2llUHJpdmF0ZUJyb3dzaW5nLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db29raWVQcml2YXRlQnJv
d3NpbmcubW0KaW5kZXggMzQ3YTE1YzllYWZlNDhiZDRjYTk4ZTM2Nzc0YjFhZjJjMDVlMzM2ZC4u
Y2FlOTQ2ZDJhMTYxZjQ3ZmI5MzdlODQ3ZjNjNTlkODhjNGRmNzcxMCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db29raWVQcml2YXRlQnJvd3Npbmcu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db29raWVQcml2
YXRlQnJvd3NpbmcubW0KQEAgLTM4LDcgKzM4LDcgQEAKICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlTnVtYmVycy5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
LXN0YXRpYyBib29sIHJlY2VpdmVkQWxlcnQ7CitzdGF0aWMgYm9vbCBkaWRSdW5KYXZhU2NyaXB0
QWxlcnRGb3JDb29raWVQcml2YXRlQnJvd3Npbmc7CiAKIEBpbnRlcmZhY2UgQ29va2llUHJpdmF0
ZUJyb3dzaW5nRGVsZWdhdGUgOiBOU09iamVjdCA8V0tVSURlbGVnYXRlPgogQGVuZApAQCAtNDgs
NyArNDgsNyBAQCBAaW1wbGVtZW50YXRpb24gQ29va2llUHJpdmF0ZUJyb3dzaW5nRGVsZWdhdGUK
IC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBydW5KYXZhU2NyaXB0QWxlcnRQ
YW5lbFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTooV0tG
cmFtZUluZm8gKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxl
dGlvbkhhbmRsZXIKIHsKICAgICBFWFBFQ1RfU1RSRVEobWVzc2FnZS5VVEY4U3RyaW5nLCAib2xk
IGNvb2tpZTogPD4iKTsKLSAgICByZWNlaXZlZEFsZXJ0ID0gdHJ1ZTsKKyAgICBkaWRSdW5KYXZh
U2NyaXB0QWxlcnRGb3JDb29raWVQcml2YXRlQnJvd3NpbmcgPSB0cnVlOwogICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CiB9CiAKQEAgLTY5LDEwICs2OSwxMCBAQCBURVNUKFdlYktpdCwgQ29va2ll
UHJpdmF0ZUJyb3dzaW5nKQogICAgIFt2aWV3MiBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgp
XTsKICAgICBOU1N0cmluZyAqYWxlcnRPbGRDb29raWUgPSBAIjxzY3JpcHQ+dmFyIG9sZENvb2tp
ZSA9IGRvY3VtZW50LmNvb2tpZTsgZG9jdW1lbnQuY29va2llID0gJ2tleT12YWx1ZSc7IGFsZXJ0
KCdvbGQgY29va2llOiA8JyArIG9sZENvb2tpZSArICc+Jyk7PC9zY3JpcHQ+IjsKICAgICBbdmll
dzEgbG9hZEhUTUxTdHJpbmc6YWxlcnRPbGRDb29raWUgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS8iXV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZyZWNlaXZlZEFsZXJ0KTsKLSAgICByZWNlaXZlZEFsZXJ0ID0gZmFsc2U7CisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRSdW5KYXZhU2NyaXB0QWxlcnRGb3JDb29raWVQcml2
YXRlQnJvd3NpbmcpOworICAgIGRpZFJ1bkphdmFTY3JpcHRBbGVydEZvckNvb2tpZVByaXZhdGVC
cm93c2luZyA9IGZhbHNlOwogICAgIFt2aWV3MiBsb2FkSFRNTFN0cmluZzphbGVydE9sZENvb2tp
ZSBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL2V4YW1wbGUuY29tLyJdXTsK
LSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkQWxlcnQpOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkUnVuSmF2YVNjcmlwdEFsZXJ0Rm9yQ29va2llUHJpdmF0
ZUJyb3dzaW5nKTsKIH0KIAogVEVTVChXZWJLaXQsIENvb2tpZUNhY2hlU3luY0Fjcm9zc1Byb2Nl
c3MpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL01v
ZGFsQ29udGFpbmVyT2JzZXJ2YXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL01vZGFsQ29udGFpbmVyT2JzZXJ2YXRpb24ubW0KaW5kZXggYWI0NTczODFmZGM3
MWM5OTBjNjFhMzU5NmM5MDhiNjdkMGMyMzlkNC4uYjk4OTBiZTgyNWQ5NzQ5YjRmMzg2NDJmZmVl
ZWU0MWQ5ZDU3ZDdkNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Nb2RhbENvbnRhaW5lck9ic2VydmF0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTW9kYWxDb250YWluZXJPYnNlcnZhdGlvbi5tbQpAQCAt
MjcsMTAgKzI3LDEyIEBACiAjaW1wb3J0ICJUZXN0LmgiCiAKICNpbXBvcnQgIlBsYXRmb3JtVXRp
bGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCiAjaW1wb3J0ICJU
ZXN0UHJvdG9jb2wuaCIKICNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKICNpbXBvcnQgIldLV2Vi
Vmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaCIKICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaD4KICNpbXBv
cnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2Vi
S2l0L1dLV2VicGFnZVByZWZlcmVuY2VzUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS01v
ZGFsQ29udGFpbmVySW5mby5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9SZXN0b3JlU2Vzc2lvblN0YXRlV2l0aG91dE5hdmlnYXRpb24ubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc3RvcmVTZXNzaW9uU3RhdGVX
aXRob3V0TmF2aWdhdGlvbi5tbQppbmRleCBjMzUzMGQwYWVlOWQ4ZmVkODYyMGQ3NDc0OWY4Yjc5
OGM5N2UwYzA0Li5iNzM2OWMxNjlkNjUwY2M1YjRjNWVjYjU4M2QwYzc2Y2NjYzFmYWIyIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jlc3RvcmVTZXNz
aW9uU3RhdGVXaXRob3V0TmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Jlc3RvcmVTZXNzaW9uU3RhdGVXaXRob3V0TmF2aWdhdGlvbi5tbQpA
QCAtNDUsNyArNDUsNyBAQCBAaW50ZXJmYWNlIFdLV2ViVmlldyAoKQogLSAoV0tQYWdlUmVmKV9w
YWdlRm9yVGVzdGluZzsKIEBlbmQKIAotc3RhdGljIGJvb2wgZGlkRmluaXNoTG9hZDsKK3N0YXRp
YyBib29sIGRpZEZpbmlzaE5hdmlnYXRpb25Gb3JTZXNzaW9uU3RhdGU7CiBzdGF0aWMgYm9vbCBk
aWRDaGFuZ2VCYWNrRm9yd2FyZExpc3Q7CiAgICAgCiBAaW50ZXJmYWNlIFNlc3Npb25TdGF0ZURl
bGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPgpAQCAtNTUsNyArNTUsNyBA
QCBAaW1wbGVtZW50YXRpb24gU2Vzc2lvblN0YXRlRGVsZWdhdGUKIAogLSAodm9pZCl3ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZpbmlzaE5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAq
KW5hdmlnYXRpb24KIHsKLSAgICBkaWRGaW5pc2hMb2FkID0gdHJ1ZTsKKyAgICBkaWRGaW5pc2hO
YXZpZ2F0aW9uRm9yU2Vzc2lvblN0YXRlID0gdHJ1ZTsKIH0KIAogLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBiYWNrRm9yd2FyZExpc3RJdGVtQWRkZWQ6KFdLQmFja0Zvcndh
cmRMaXN0SXRlbSAqKWl0ZW1BZGRlZCByZW1vdmVkOihOU0FycmF5PFdLQmFja0ZvcndhcmRMaXN0
SXRlbSAqPiAqKWl0ZW1zUmVtb3ZlZApAQCAtNzMsOCArNzMsOCBAQCBzdGF0aWMgV0tSZXRhaW5Q
dHI8V0tEYXRhUmVmPiBjcmVhdGVTZXNzaW9uU3RhdGVEYXRhKCkKICAgICBhdXRvIHZpZXcgPSBh
ZG9wdE5TKFtXS1dlYlZpZXcgbmV3XSk7CiAgICAgW3ZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRl
OmRlbGVnYXRlLmdldCgpXTsKICAgICBbdmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1w
bGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdXV07Ci0gICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKLSAgICBkaWRGaW5p
c2hMb2FkID0gZmFsc2U7CisgICAgVXRpbDo6cnVuKCZkaWRGaW5pc2hOYXZpZ2F0aW9uRm9yU2Vz
c2lvblN0YXRlKTsKKyAgICBkaWRGaW5pc2hOYXZpZ2F0aW9uRm9yU2Vzc2lvblN0YXRlID0gZmFs
c2U7CiAKICAgICBOU0RhdGEgKmRhdGEgPSBbdmlldyBfc2Vzc2lvblN0YXRlRGF0YV07CiAgICAg
cmV0dXJuIGFkb3B0V0soV0tEYXRhQ3JlYXRlKHN0YXRpY19jYXN0PGNvbnN0IHVuc2lnbmVkIGNo
YXIqPihkYXRhLmJ5dGVzKSwgZGF0YS5sZW5ndGgpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>