<?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>222995</bug_id>
          
          <creation_ts>2021-03-09 14:48:57 -0800</creation_ts>
          <short_desc>Add some logging to help debug flaky quota tests</short_desc>
          <delta_ts>2021-03-12 10:50:15 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=223086</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>cdumez</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1737775</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-09 14:48:57 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737782</commentid>
    <comment_count>1</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-09 14:50:13 -0800</bug_when>
    <thetext>Like https://bugs.webkit.org/show_bug.cgi?id=209189 and https://bugs.webkit.org/show_bug.cgi?id=213292.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737787</commentid>
    <comment_count>2</comment_count>
      <attachid>422765</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-09 14:56:58 -0800</bug_when>
    <thetext>Created attachment 422765
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738084</commentid>
    <comment_count>3</comment_count>
      <attachid>422838</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-10 09:27:06 -0800</bug_when>
    <thetext>Created attachment 422838
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738541</commentid>
    <comment_count>4</comment_count>
      <attachid>422838</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-11 11:06:52 -0800</bug_when>
    <thetext>Comment on attachment 422838
Patch

I guess the idea is to remove that logging after investigation.
That seems ok.
Otherwise, I would go with something like RELEASE_LOG_WITH_LEVEL_IF, pass session IDs as part of the IF, and use Verbose level.

And maybe add some test runner API to turn the logging info on a per test basis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738603</commentid>
    <comment_count>5</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-11 13:52:52 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #4)
&gt; Comment on attachment 422838 [details]
&gt; Patch
&gt; 
&gt; I guess the idea is to remove that logging after investigation.
&gt; That seems ok.
&gt; Otherwise, I would go with something like RELEASE_LOG_WITH_LEVEL_IF, pass
&gt; session IDs as part of the IF, and use Verbose level.
&gt; 
&gt; And maybe add some test runner API to turn the logging info on a per test
&gt; basis.

Yes, let&apos;s remove it when tests are fixed: https://bugs.webkit.org/show_bug.cgi?id=223086.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738610</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-11 14:04:06 -0800</bug_when>
    <thetext>commit-queue failed to commit attachment 422838 to WebKit repository. To retry, please set cq+ flag again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738738</commentid>
    <comment_count>7</comment_count>
      <attachid>423006</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-11 19:25:23 -0800</bug_when>
    <thetext>Created attachment 423006
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738752</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-11 20:42:32 -0800</bug_when>
    <thetext>Committed r274323: &lt;https://commits.webkit.org/r274323&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423006.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738754</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-11 20:43:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/75346752&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738952</commentid>
    <comment_count>10</comment_count>
      <attachid>423006</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-12 10:47:42 -0800</bug_when>
    <thetext>Comment on attachment 423006
Patch for landing

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

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2407
&gt; +        return;

Fails to call completion handler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738956</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-12 10:50:15 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #10)
&gt; Comment on attachment 423006 [details]
&gt; Patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423006&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2407
&gt; &gt; +        return;
&gt; 
&gt; Fails to call completion handler.

Fixed in &lt;https://commits.webkit.org/r274364&gt; to address assertions on the bots.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422765</attachid>
            <date>2021-03-09 14:56:58 -0800</date>
            <delta_ts>2021-03-10 09:27:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222995-20210309145657.patch</filename>
            <type>text/plain</type>
            <size>30423</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQ1OWU2Yjc0NjE4YzJk
NjBjOTMxOWMxNGIxODhiNTEwYzliZTI3ZS4uMjg5MzRkOWQ4ZDc0NzY3YWRlMmI2MjY0NjZmY2Q5
OTA2ZTkwNjFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTAzLTA5ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwZS5jb20+CisKKyAgICAgICAgQWRkIHNvbWUgbG9nZ2luZyB0
byBoZWxwIGRlYnVnIGZsYWt5IHF1b3RhIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI5OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBodHRwL3Rlc3RzL0luZGV4ZWREQi9zdG9yYWdlLWxpbWl0
KiBoYXZlIGJlZW4gZmxha3kgb24gYm90cyBzaW5jZSB0aGV5IHdlcmUgYWRkZWQuIEFkZCBhbiBv
cHRpb24gdG8gYWxsb3cgCisgICAgICAgIHByaW50aW5nIHNvbWUgbG9nZ2luZyBpbiB0aGVzZSB0
ZXN0cy4KKworICAgICAgICBObyBuZXcgdGVzdCBhcyBubyBiZWhhdmlvciBjaGFuZ2UgaW4gcXVv
dGEgbWFuYWdlbWVudC4KKworICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVF1b3RhTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlUXVvdGFNYW5hZ2VyOjpyZXF1ZXN0U3BhY2VP
bkJhY2tncm91bmRUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVF1b3RhTWFuYWdl
cjo6dHJ5R3JhbnRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VRdW90YU1hbmFn
ZXI6OnNldExvZ2dpbmdFbmFibGVkKToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VRdW90YU1h
bmFnZXIuaDoKKwogMjAyMS0wMy0wOCAgSmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29t
PgogCiAgICAgICAgIEZpeCB1bmlmaWVkIGJ1aWxkIGR1ZSB0byBtaXNzaW5nIGhlYWRlciBpbmNs
dWRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBjYzMxMGY3MDZlMWU0YWZmM2Q1Zjc2YjcyM2ZjZmJiOGEwN2JiNjMy
Li4zNmQ2ZjM1MDM2M2QwMmEyZGIzZTU0OGUwNzU5MDk1ZjNiMTA3MDM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI1IEBACisyMDIxLTAzLTA5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwZS5jb20+
CisKKyAgICAgICAgQWRkIHNvbWUgbG9nZ2luZyB0byBoZWxwIGRlYnVnIGZsYWt5IHF1b3RhIHRl
c3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI5
OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OnNldFF1b3RhTG9nZ2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6c3RvcmFnZVF1b3RhTWFuYWdlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0
YVN0b3JlUmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNldFF1b3RhTG9nZ2lu
Z0VuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVS
ZWYuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UXVvdGFMb2dnaW5n
RW5hYmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0UXVvdGFMb2dnaW5nRW5h
YmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
aDoKKwogMjAyMS0wMy0wOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbQ29jb2FdW0dQVVBdIEVuYWJsZSBXZWJNL1ZvcmJpcy9PcHVzIGluIHRoZSBHUFUgcHJv
Y2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L0NoYW5nZUxvZwppbmRleCAwNGRiZWVjODY2YWI0NzYwYzBjNmQwMGNmNTk1
YzUyZDI1MWRmNzIyLi4wNWJiNGJjYzMwNmFiY2Y1ZTBjNTUwZWZhMTM1NjBiNzY2NjQ0NDMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTAzLTA5ICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwZS5jb20+CisKKyAgICAgICAgQWRkIHNvbWUgbG9nZ2luZyB0byBo
ZWxwIGRlYnVnIGZsYWt5IHF1b3RhIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI5OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFN0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmNwcDoKKyAg
ICAgICAgKEluUHJvY2Vzc0lEQlNlcnZlcjo6cXVvdGFNYW5hZ2VyKToKKwogMjAyMS0wMy0wNSAg
RG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtDTWFrZV0g
QnVtcCBjbWFrZV9taW5pbXVtX3JlcXVpcmVkIHZlcnNpb24gdG8gMy4xMiBvciBsYXRlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVF1b3RhTWFuYWdlci5jcHAKaW5kZXggMGM2
MTNkMWE3MmRmZWE2NTljYjJlNzFhODIwYWFhYjYwOWFhOTYxNS4uNDgwYmM1ZjRkMGFmMmFmM2I5
OTQ0YjVmNzNmODFhNWRlMzJkNGFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VRdW90YU1hbmFnZXIuY3BwCkBAIC03OCw3ICs3OCw4IEBAIFN0b3JhZ2VRdW90YU1hbmFn
ZXI6OkRlY2lzaW9uIFN0b3JhZ2VRdW90YU1hbmFnZXI6OnJlcXVlc3RTcGFjZU9uQmFja2dyb3Vu
ZFRocmVhCiAgICAgaWYgKHRyeUdyYW50UmVxdWVzdChzcGFjZVJlcXVlc3RlZCkpCiAgICAgICAg
IHJldHVybiBEZWNpc2lvbjo6R3JhbnQ7CiAKLSAgICBtX3VzYWdlID0gbV91c2FnZUdldHRlcigp
OworICAgIGF1dG8gc2hvdWxkUHJpbnRVc2FnZURldGFpbCA9IG1fbG9nZ2luZ0VuYWJsZWQgPyBT
aG91bGRQcmludFVzYWdlRGV0YWlsOjpZZXMgOiBTaG91bGRQcmludFVzYWdlRGV0YWlsOjpObzsK
KyAgICBtX3VzYWdlID0gbV91c2FnZUdldHRlcihzaG91bGRQcmludFVzYWdlRGV0YWlsKTsKICAg
ICB1cGRhdGVRdW90YUJhc2VkT25Vc2FnZSgpOwogICAgIG1fcXVvdGFDb3VudERvd24gPSBtX3Vz
YWdlIDwgbV9xdW90YSA/IG1fcXVvdGEgLSBtX3VzYWdlIDogMDsKICAgICBpZiAodHJ5R3JhbnRS
ZXF1ZXN0KHNwYWNlUmVxdWVzdGVkKSkKQEAgLTEwMSw3ICsxMDIsNyBAQCBTdG9yYWdlUXVvdGFN
YW5hZ2VyOjpEZWNpc2lvbiBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpyZXF1ZXN0U3BhY2VPbkJhY2tn
cm91bmRUaHJlYQogCiAgICAgc2VtYXBob3JlLndhaXQoKTsKIAotICAgIG1fdXNhZ2UgPSBtX3Vz
YWdlR2V0dGVyKCk7CisgICAgbV91c2FnZSA9IG1fdXNhZ2VHZXR0ZXIoc2hvdWxkUHJpbnRVc2Fn
ZURldGFpbCk7CiAgICAgbV9xdW90YUNvdW50RG93biA9IG1fdXNhZ2UgPCBtX3F1b3RhID8gbV9x
dW90YSAtIG1fdXNhZ2UgOiAwOwogICAgIHJldHVybiB0cnlHcmFudFJlcXVlc3Qoc3BhY2VSZXF1
ZXN0ZWQpID8gRGVjaXNpb246OkdyYW50IDogRGVjaXNpb246OkRlbnk7CiB9CkBAIC0xMDksNiAr
MTEwLDEwIEBAIFN0b3JhZ2VRdW90YU1hbmFnZXI6OkRlY2lzaW9uIFN0b3JhZ2VRdW90YU1hbmFn
ZXI6OnJlcXVlc3RTcGFjZU9uQmFja2dyb3VuZFRocmVhCiBib29sIFN0b3JhZ2VRdW90YU1hbmFn
ZXI6OnRyeUdyYW50UmVxdWVzdCh1aW50NjRfdCBzcGFjZVJlcXVlc3RlZCkKIHsKICAgICBBU1NF
UlQobV9xdW90YUNvdW50RG93bkxvY2suaXNMb2NrZWQoKSk7CisKKyAgICBpZiAobV9sb2dnaW5n
RW5hYmxlZCkKKyAgICAgICAgV1RGTG9nQWx3YXlzKCIlcCAtIFN0b3JhZ2VRdW90YU1hbmFnZXIg
dHJ5R3JhbnRSZXF1ZXN0IG1fcXVvdGEgJWxsdSwgbV91c2FnZSAlbGx1LCBtX3F1b3RhQ291bnRE
b3duICVsbHUsIHNwYWNlUmVxdWVzdGVkICVsbHUiLCB0aGlzLCBtX3F1b3RhLCBtX3VzYWdlLCBt
X3F1b3RhQ291bnREb3duLCBzcGFjZVJlcXVlc3RlZCk7CisKICAgICBpZiAoc3BhY2VSZXF1ZXN0
ZWQgPD0gbV9xdW90YUNvdW50RG93bikgewogICAgICAgICBtX3F1b3RhQ291bnREb3duIC09IHNw
YWNlUmVxdWVzdGVkOwogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE0Myw0ICsxNDgsOSBAQCB2
b2lkIFN0b3JhZ2VRdW90YU1hbmFnZXI6OnJlc2V0UXVvdGFGb3JUZXN0aW5nKCkKICAgICBtX3F1
b3RhQ291bnREb3duID0gMDsKIH0KIAordm9pZCBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpzZXRMb2dn
aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgbV9sb2dnaW5nRW5hYmxlZCA9IGVuYWJs
ZWQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZVF1b3RhTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmgKaW5kZXggOWJkZmRkNDdhMThhMTc2YzViYzMzZjRiODYy
ODkyMjM0YWQyOWFiMi4uYWViODAyZDgyZDg5OGZiNmFjOGQyYzRiYzgwOWVkMDljZDZlNThhNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmgKQEAgLTM3
LDcgKzM3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU3RvcmFnZVF1b3RhTWFuYWdl
ciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTdG9yYWdlUXVvdGFNYW5hZ2VyPiwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPFN0b3JhZ2VRdW90YU1hbmFnZXI+IHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICB1c2luZyBVc2FnZUdldHRlciA9IEZ1bmN0aW9u
PHVpbnQ2NF90KCk+OworICAgIGVudW0gY2xhc3MgU2hvdWxkUHJpbnRVc2FnZURldGFpbCB7IE5v
LCBZZXMgfTsKKyAgICB1c2luZyBVc2FnZUdldHRlciA9IEZ1bmN0aW9uPHVpbnQ2NF90KFNob3Vs
ZFByaW50VXNhZ2VEZXRhaWwpPjsKICAgICB1c2luZyBRdW90YUluY3JlYXNlUmVxdWVzdGVyID0g
RnVuY3Rpb248dm9pZCh1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRVc2Fn
ZSwgdWludDY0X3QgcmVxdWVzdGVkSW5jcmVhc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8dWludDY0X3Q+KT4mJik+OwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8U3Rv
cmFnZVF1b3RhTWFuYWdlcj4gY3JlYXRlKHVpbnQ2NF90IHF1b3RhLCBVc2FnZUdldHRlciYmLCBR
dW90YUluY3JlYXNlUmVxdWVzdGVyJiYpOwogCkBAIC01Miw2ICs1Myw3IEBAIHB1YmxpYzoKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzZXRRdW90YVVwZGF0ZWRCYXNlZE9uVXNhZ2VGb3JU
ZXN0aW5nKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXNldFF1b3RhRm9yVGVzdGluZygp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TG9nZ2luZ0VuYWJsZWQoYm9vbCk7CiAKIHBy
aXZhdGU6CiAgICAgU3RvcmFnZVF1b3RhTWFuYWdlcih1aW50NjRfdCBxdW90YSwgVXNhZ2VHZXR0
ZXImJiwgUXVvdGFJbmNyZWFzZVJlcXVlc3RlciYmKTsKQEAgLTczLDYgKzc1LDcgQEAgcHJpdmF0
ZToKIAogICAgIC8vIFRlc3Qgb25seS4KICAgICB1aW50NjRfdCBtX2luaXRpYWxRdW90YSB7IDAg
fTsKKyAgICBib29sIG1fbG9nZ2luZ0VuYWJsZWQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAppbmRleCBmYThjMjQ0MTYyYjgxYmFlNjhiZWZkZTA4NzI5NzljYzg4YjIwYWE2
Li5mMmRmYjZlYjU3NTMzMzk4Y2E0YTdjMDFhYTcwYzMyNDVhODFhNGZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMjM5Niw2ICsy
Mzk2LDIwIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlc2V0UXVvdGEoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkCiAgICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UXVvdGFMb2dnaW5nRW5hYmxlZChQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChtX3F1b3RhTG9nZ2luZ0VuYWJs
ZWQgPT0gZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fcXVvdGFMb2dnaW5nRW5hYmxl
ZCA9IGVuYWJsZWQ7CisKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Nlc3Npb25TdG9yYWdlUXVv
dGFNYW5hZ2Vyc0xvY2spOworICAgIGlmIChhdXRvKiBzZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdl
ciA9IG1fc2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXJzLmdldChzZXNzaW9uSUQpKSB7CisgICAg
ICAgIGZvciAoYXV0byBzdG9yYWdlUXVvdGFNYW5hZ2VyIDogc2Vzc2lvblN0b3JhZ2VRdW90YU1h
bmFnZXItPmV4aXN0aW5nU3RvcmFnZVF1b3RhTWFuYWdlcnMoKSkKKyAgICAgICAgICAgIHN0b3Jh
Z2VRdW90YU1hbmFnZXItPnNldExvZ2dpbmdFbmFibGVkKG1fcXVvdGFMb2dnaW5nRW5hYmxlZCk7
CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OnJlbmFtZU9yaWdpbkluV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBVUkwmIG9sZE5hbWUsIGNvbnN0IFVSTCYgbmV3TmFtZSwgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4gZGF0YVR5cGVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgYXV0byBhZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpj
cmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwpAQCAtMjUwNCwxNCArMjUxOCwxOSBA
QCBSZWZQdHI8U3RvcmFnZVF1b3RhTWFuYWdlcj4gTmV0d29ya1Byb2Nlc3M6OnN0b3JhZ2VRdW90
YU1hbmFnZXIoUEFMOjpTZXNzaW9uSUQgcwogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQog
ICAgIGlkYlJvb3RQYXRoID0gc2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXItPmlkYlJvb3RQYXRo
KCk7CiAjZW5kaWYKLSAgICBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpVc2FnZUdldHRlciB1c2FnZUdl
dHRlciA9IFtjYWNoZVJvb3RQYXRoID0gc2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXItPmNhY2hl
Um9vdFBhdGgoKS5pc29sYXRlZENvcHkoKSwgaWRiUm9vdFBhdGggPSBpZGJSb290UGF0aC5pc29s
YXRlZENvcHkoKSwgb3JpZ2luID0gb3JpZ2luLmlzb2xhdGVkQ29weSgpXSgpIHsKKyAgICBTdG9y
YWdlUXVvdGFNYW5hZ2VyOjpVc2FnZUdldHRlciB1c2FnZUdldHRlciA9IFtjYWNoZVJvb3RQYXRo
ID0gc2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXItPmNhY2hlUm9vdFBhdGgoKS5pc29sYXRlZENv
cHkoKSwgaWRiUm9vdFBhdGggPSBpZGJSb290UGF0aC5pc29sYXRlZENvcHkoKSwgb3JpZ2luID0g
b3JpZ2luLmlzb2xhdGVkQ29weSgpXShTdG9yYWdlUXVvdGFNYW5hZ2VyOjpTaG91bGRQcmludFVz
YWdlRGV0YWlsIHNob3VsZFByaW50dXNhZ2VEZXRhaWwpIHsKICAgICAgICAgQVNTRVJUKCFpc01h
aW5UaHJlYWQoKSk7ICAgIAogCi0gICAgICAgIHVpbnQ2NF90IHVzYWdlID0gQ2FjaGVTdG9yYWdl
OjpFbmdpbmU6OmRpc2tVc2FnZShjYWNoZVJvb3RQYXRoLCBvcmlnaW4pOworICAgICAgICB1aW50
NjRfdCBjYWNoZVVzYWdlID0gQ2FjaGVTdG9yYWdlOjpFbmdpbmU6OmRpc2tVc2FnZShjYWNoZVJv
b3RQYXRoLCBvcmlnaW4pOworICAgICAgICB1aW50NjRfdCB1c2FnZSA9IGNhY2hlVXNhZ2U7CisK
ICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICAgICAgdXNhZ2UgKz0gSURCU2VydmVy
OjpJREJTZXJ2ZXI6OmRpc2tVc2FnZShpZGJSb290UGF0aCwgb3JpZ2luKTsKICNlbmRpZgogCisg
ICAgICAgIGlmIChzaG91bGRQcmludHVzYWdlRGV0YWlsID09IFN0b3JhZ2VRdW90YU1hbmFnZXI6
OlNob3VsZFByaW50VXNhZ2VEZXRhaWw6OlllcykKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygi
U3RvcmFnZVF1b3RhTWFuYWdlcjo6VXNhZ2VHZXR0ZXIgQ2FjaGNlIHVzYWdlICVsbHUsIElEQiB1
c2FnZSAlbGx1IiwgY2FjaGVVc2FnZSwgdXNhZ2UpOworCiAgICAgICAgIHJldHVybiB1c2FnZTsK
ICAgICB9OwogICAgIFN0b3JhZ2VRdW90YU1hbmFnZXI6OlF1b3RhSW5jcmVhc2VSZXF1ZXN0ZXIg
cXVvdGFJbmNyZWFzZVJlcXVlc3RlciA9IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKSwgc2Vzc2lvbklELCBvcmlnaW5dICh1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90
IGN1cnJlbnRTcGFjZSwgdWludDY0X3QgcmVxdWVzdGVkSW5jcmVhc2UsIGF1dG8mJiBjYWxsYmFj
aykgewpAQCAtMjUyMSw3ICsyNTQwLDkgQEAgUmVmUHRyPFN0b3JhZ2VRdW90YU1hbmFnZXI+IE5l
dHdvcmtQcm9jZXNzOjpzdG9yYWdlUXVvdGFNYW5hZ2VyKFBBTDo6U2Vzc2lvbklEIHMKICAgICAg
ICAgcmVxdWVzdFN0b3JhZ2VTcGFjZShzZXNzaW9uSUQsIG9yaWdpbiwgY3VycmVudFF1b3RhLCBj
dXJyZW50U3BhY2UsIHJlcXVlc3RlZEluY3JlYXNlLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAg
fTsKIAotICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlci0+ZW5zdXJlT3JpZ2lu
U3RvcmFnZVF1b3RhTWFuYWdlcihvcmlnaW4sIHNlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2VyLT5k
ZWZhdWx0UXVvdGEob3JpZ2luKSwgV1RGTW92ZSh1c2FnZUdldHRlciksIFdURk1vdmUocXVvdGFJ
bmNyZWFzZVJlcXVlc3RlcikpLnB0cigpOworICAgIGF1dG8gb3JpZ2luU3RvcmFnZVF1b3RhTWFu
YWdlciA9IHNlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2VyLT5lbnN1cmVPcmlnaW5TdG9yYWdlUXVv
dGFNYW5hZ2VyKG9yaWdpbiwgc2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXItPmRlZmF1bHRRdW90
YShvcmlnaW4pLCBXVEZNb3ZlKHVzYWdlR2V0dGVyKSwgV1RGTW92ZShxdW90YUluY3JlYXNlUmVx
dWVzdGVyKSkucHRyKCk7CisgICAgb3JpZ2luU3RvcmFnZVF1b3RhTWFuYWdlci0+c2V0TG9nZ2lu
Z0VuYWJsZWQobV9xdW90YUxvZ2dpbmdFbmFibGVkKTsKKyAgICByZXR1cm4gb3JpZ2luU3RvcmFn
ZVF1b3RhTWFuYWdlcjsKIH0KIAogI2lmICFQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAzZjExMjAyY2MwZjZmMzUx
Mzg2NWFmMGY5MzJlNzU5YTEwNjUzOTFhLi5hNDljMjRmMDdmNmM0ODRlY2ZlMTUxOWNjZTc0MDRi
M2U4ZDBmNGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCkBAIC0zMDIsNiArMzAyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc3luY0xvY2FsU3Rv
cmFnZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgdm9pZCByZXNldFF1b3Rh
KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQg
c2V0UXVvdGFMb2dnaW5nRW5hYmxlZChQQUw6OlNlc3Npb25JRCwgYm9vbCBlbmFibGVkLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVuYW1lT3JpZ2luSW5XZWJzaXRl
RGF0YShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiwgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhVHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICNpZiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCkBAIC01ODQsNiArNTg1LDcgQEAgcHJpdmF0ZToKICAgICAKICAg
ICBMb2NrIG1fc2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXJzTG9jazsKICAgICBIYXNoTWFwPFBB
TDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8U2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXI+
PiBtX3Nlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2VyczsKKyAgICBib29sIG1fcXVvdGFMb2dnaW5n
RW5hYmxlZCB7IGZhbHNlIH07CiAKICAgICBPcHRpb25TZXQ8TmV0d29ya0NhY2hlOjpDYWNoZU9w
dGlvbj4gbV9jYWNoZU9wdGlvbnM7CiAgICAgV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUmVn
aXN0cnkgbV9tZXNzYWdlUG9ydENoYW5uZWxSZWdpc3RyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDYx
NDMyMmI2NmUzYTJjNDFhY2RjOTMxYWQwYjQ2YjQ2YzViMDgyMmQuLjhhMzFhN2Y2OTk1YzgzM2Vl
NmZjOGRkNTdjYTA4YmE5NzFhMzRhZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTc4LDYgKzE3OCw3
IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBSZXNl
dFNlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXRGb3JUZXN0aW5nKCkgLT4gKCkgU3luY2hyb25vdXMK
IAogICAgIFJlc2V0UXVvdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwor
ICAgIFNldFF1b3RhTG9nZ2luZ0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29s
IGVuYWJsZWQpIC0+ICgpIEFzeW5jCiAgICAgCiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5T
KQogICAgIEhhc0FwcEJvdW5kU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChi
b29sIGhhc0FwcEJvdW5kU2Vzc2lvbikgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCmluZGV4IGQ5MjI4N2Qz
M2QwNTIxY2JlNTJlNzVhZjkyY2MzNTQxNjU1NmUwYTUuLjA1ZDY5OTIwMGNlOWFkYWRjMDMyYWRk
MWMyMDNhNmYzN2YzZTlhOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcApAQCAtODM4LDYgKzgzOCwxNCBAQCB2
b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVJlc2V0UXVvdGEoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRh
dGFTdG9yZVJlZiwgdm9pZCogY29udAogICAgIH0pOwogfQogCit2b2lkIFdLV2Vic2l0ZURhdGFT
dG9yZVNldFF1b3RhTG9nZ2luZ0VuYWJsZWQoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9y
ZVJlZiwgYm9vbCBlbmFibGVkLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRR
dW90YUxvZ2dpbmdFbmFibGVkQ2FsbGJhY2sgY2FsbGJhY2spCit7CisgICAgV2ViS2l0Ojp0b0lt
cGwoZGF0YVN0b3JlUmVmKS0+c2V0UXVvdGFMb2dnaW5nRW5hYmxlZChlbmFibGVkLCBbY29udGV4
dCwgY2FsbGJhY2tdIHsKKyAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgY2FsbGJh
Y2soY29udGV4dCk7CisgICAgfSk7Cit9CisKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJB
cHBCb3VuZFNlc3Npb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgdm9pZCog
Y29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBcHBCb3VuZFNlc3Npb25GdW5jdGlvbiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICNpZiBFTkFCTEUoQVBQX0JPVU5EX0RPTUFJTlMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVS
ZWYuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJl
Zi5oCmluZGV4IGQ1YzllZWUyYTQwNGZkM2NiNDdjOWY4NzczNWMzOTc2ODFkMjkzYTcuLjgzZGE0
YTM5NmQyN2MyYjY3M2QwMWVmYTJjN2U1NDc5NTkzMzcxMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCkBAIC0xOTQs
NiArMTk0LDkgQEAgV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0Q2FjaGVNb2Rl
bFN5bmNocm9ub3VzbHlGb3JUZXN0aW5nKFdLV2Vic2l0ZUQKIHR5cGVkZWYgdm9pZCAoKldLV2Vi
c2l0ZURhdGFTdG9yZVJlc2V0UXVvdGFDYWxsYmFjaykodm9pZCogZnVuY3Rpb25Db250ZXh0KTsK
IFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVJlc2V0UXVvdGEoV0tXZWJzaXRlRGF0
YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3Jl
UmVzZXRRdW90YUNhbGxiYWNrIGNhbGxiYWNrKTsKIAordHlwZWRlZiB2b2lkICgqV0tXZWJzaXRl
RGF0YVN0b3JlU2V0UXVvdGFMb2dnaW5nRW5hYmxlZENhbGxiYWNrKSh2b2lkKiBmdW5jdGlvbkNv
bnRleHQpOworV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UXVvdGFMb2dnaW5n
RW5hYmxlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBib29sIGVuYWJsZWQs
IHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVNldFF1b3RhTG9nZ2luZ0VuYWJsZWRD
YWxsYmFjayBjYWxsYmFjayk7CisKIHR5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZUNs
ZWFyQXBwQm91bmRTZXNzaW9uRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19F
WFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckFwcEJvdW5kU2Vzc2lvbihXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRh
U3RvcmVDbGVhckFwcEJvdW5kU2Vzc2lvbkZ1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHAKaW5kZXggNzgwYzkzMThmNDJhNTViZjRjYjcxYmQ1MTkxMWFjMWQ3MjBmZDYx
Zi4uZjU5ZjMzYmI3YWUwNDY2MjBlOGE2NDM5ODUxYWU5ZGI1ZWQwY2MxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwCkBAIC0xNjA2LDYgKzE2MDYsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXNl
dFF1b3RhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXIKICAgICBz
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpSZXNldFF1b3RhKHNl
c3Npb25JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZXRRdW90YUxvZ2dpbmdFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgYm9vbCBlbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzczo6U2V0UXVvdGFMb2dnaW5nRW5hYmxlZChzZXNzaW9uSUQsIGVuYWJsZWQpLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKICNpZiBFTkFCTEUoQVBQX0JPVU5EX0RPTUFJTlMp
CiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Omhhc0FwcEJvdW5kU2Vzc2lvbihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IGExZTkxMDgyNjcxYWJmZjA2MDdjZGIyZjkyM2I5
ODk4ZDkyYTBkNzIuLjhkOWU3OGEzOGQ2NDBmMGFlZmM1NTU3ZGQxZWZkNmQ2MmY4ODgzYzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5oCkBAIC0yNDAsNiArMjQwLDcgQEAgcHVibGljOgogICAgIHZvaWQgbmV0d29ya1By
b2Nlc3NDcmFzaGVkKCk7CiAgICAgCiAgICAgdm9pZCByZXNldFF1b3RhKFBBTDo6U2Vzc2lvbklE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0UXVvdGFMb2dnaW5n
RW5hYmxlZChQQUw6OlNlc3Npb25JRCwgYm9vbCBlbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogCiAgICAgdm9pZCByZXNvdXJjZUxvYWREaWRTZW5kUmVxdWVzdChXZWJQYWdl
UHJveHlJZGVudGlmaWVyLCBSZXNvdXJjZUxvYWRJbmZvJiYsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBPcHRpb25hbDxJUEM6OkZvcm1EYXRhUmVmZXJlbmNlPiYmKTsKICAgICB2b2lkIHJl
c291cmNlTG9hZERpZFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViUGFnZVByb3h5SWRlbnRpZmll
ciwgUmVzb3VyY2VMb2FkSW5mbyYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMjM3YjIxM2EzOTA0
MTgwN2M5NGEzMjIzYmI3OWRjYjlmYTc2ZTA4Ni4uMDIyODI1YTZhODgxZDlhZjFmNGVmYjE2NzE5
Y2QwOGRkZDliMTYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTIwOTgsNiArMjA5OCwxMiBAQCB2
b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlc2V0UXVvdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAgIG5ldHdvcmtQcm9jZXNzKCkucmVzZXRRdW90YSht
X3Nlc3Npb25JRCwgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKIH0KIAordm9pZCBXZWJzaXRl
RGF0YVN0b3JlOjpzZXRRdW90YUxvZ2dpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gY2FsbGJh
Y2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2V0UXVvdGFMb2dnaW5nRW5hYmxl
ZChtX3Nlc3Npb25JRCwgZW5hYmxlZCwgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKK30KKwog
I2lmICFQTEFURk9STShDT0NPQSkKIFdURjo6U3RyaW5nIFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1
bHRNZWRpYUNhY2hlRGlyZWN0b3J5KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCA0ODIyMTZmYTQ4MmYw
YTUyNTliNDBmM2VmOWUyNGU4NjAxOGYxMDMzLi5iODkzYjQ3NDgzOTZjZDRmNmU0NDQ1MjMwMzY2
OWM1MWZkMmYxN2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0zMzYsNiArMzM2LDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBib29sIGh0dHAzRW5hYmxlZCgpOwogCiAgICAgdm9pZCByZXNldFF1b3RhKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRRdW90YUxvZ2dpbmdFbmFi
bGVkKGJvb2wgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogI2lmIEVO
QUJMRShBUFBfQk9VTkRfRE9NQUlOUykKICAgICB2b2lkIGhhc0FwcEJvdW5kU2Vzc2lvbihDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktp
dExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKaW5kZXggYTc5NmYwODIxMWNm
NzQ1MjRmNWQ0ODM5NTMyNzZmODA3ODU2ODY1NC4uYmIzYTQwMWE5Y2FiZjM1NTJjMjU3MzczYmEw
YjgyZjNjOTUzYTVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0lu
UHJvY2Vzc0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL0lu
UHJvY2Vzc0lEQlNlcnZlci5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgSW5Qcm9jZXNzSURCU2VydmVy
Ojp+SW5Qcm9jZXNzSURCU2VydmVyKCkKIFN0b3JhZ2VRdW90YU1hbmFnZXIqIEluUHJvY2Vzc0lE
QlNlcnZlcjo6cXVvdGFNYW5hZ2VyKGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKQogewogICAg
IHJldHVybiBtX3F1b3RhTWFuYWdlcnMuZW5zdXJlKG9yaWdpbiwgW10gewotICAgICAgICByZXR1
cm4gU3RvcmFnZVF1b3RhTWFuYWdlcjo6Y3JlYXRlKFN0b3JhZ2VRdW90YU1hbmFnZXI6OmRlZmF1
bHRRdW90YSgpLCBbXSB7CisgICAgICAgIHJldHVybiBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpjcmVh
dGUoU3RvcmFnZVF1b3RhTWFuYWdlcjo6ZGVmYXVsdFF1b3RhKCksIFtdKGF1dG8pIHsKICAgICAg
ICAgICAgIHJldHVybiAwOwogICAgICAgICB9LCBbXSh1aW50NjRfdCBxdW90YSwgdWludDY0X3Qg
Y3VycmVudFNwYWNlLCB1aW50NjRfdCBzcGFjZUluY3JlYXNlLCBhdXRvIGNhbGxiYWNrKSB7CiAg
ICAgICAgICAgICBjYWxsYmFjayhxdW90YSArIGN1cnJlbnRTcGFjZSArIHNwYWNlSW5jcmVhc2Up
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDM3
ODgzNmIzMDZlNWQ2NmRhMWE4ODU5NTNjYjQ3MzFiYTViYzA4ZmMuLjgxYWI2ZDk4NGU1NDk1ZWM3
MDRiODczZThiZTIxNTIzMGIwMGEwMjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMS0wMy0wOSAgU2lodWkgTGl1
ICA8c2lodWlfbGl1QGFwcGUuY29tPgorCisgICAgICAgIEFkZCBzb21lIGxvZ2dpbmcgdG8gaGVs
cCBkZWJ1ZyBmbGFreSBxdW90YSB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRp
bmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFF1b3Rh
TG9nZ2luZ0VuYWJsZWQpOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRJc1NwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQpOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpz
ZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6c2V0UXVvdGFMb2dnaW5nRW5hYmxlZCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9u
b3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisKIDIwMjEtMDMtMDggIEFuZHJlcyBHb256
YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSBhY2Nlc3NpYmls
aXR5L2FyaWEtaW52YWxpZC5odG1sIHRlc3Qgb24gaU9TLgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwKaW5kZXggNDdhYjExNTYwNWRiYzUzNTNkNjZjYzNhZDNkMGFlNTVjMTIwZmI5ZC4uMDhkYTkw
YWNmMjM4MGMyMjJmNGJhMjFjODU4MzhjNWZkNzdjOWYyNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsCkBAIC0xMzEsNiArMTMxLDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIC8v
IExvY2FsIHN0b3JhZ2UgQVBJCiAgICAgdW5kZWZpbmVkIGNsZWFyQWxsRGF0YWJhc2VzKCk7CiAg
ICAgdW5kZWZpbmVkIHNldERhdGFiYXNlUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKTsK
KyAgICB1bmRlZmluZWQgc2V0UXVvdGFMb2dnaW5nRW5hYmxlZChib29sZWFuIGVuYWJsZWQpOwog
ICAgIERPTVN0cmluZyBwYXRoVG9Mb2NhbFJlc291cmNlKERPTVN0cmluZyB1cmwpOwogICAgIHVu
ZGVmaW5lZCBzeW5jTG9jYWxTdG9yYWdlKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGVmODM2ZDUwMWQ3ZDFh
ZDNiZjhlY2Y2NTBmMzg0YzBjOWJjN2Y5MmUuLmJlZGRiY2VjMTEzNDQ1YTUxZjgzMmY3YTAyYmZh
NDA4NDQ5MzdmMDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMzgzLDYgKzM4MywxMSBAQCB2b2lkIFRlc3RSdW5u
ZXI6OnNldERhdGFiYXNlUXVvdGEodWludDY0X3QgcXVvdGEpCiAgICAgcmV0dXJuIFdLQnVuZGxl
U2V0RGF0YWJhc2VRdW90YShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIHF1
b3RhKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRRdW90YUxvZ2dpbmdFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKK3sKKyAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiU2V0UXVvdGFMb2dn
aW5nRW5hYmxlZCIsIGVuYWJsZWQpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6OnN5bmNMb2NhbFN0
b3JhZ2UoKQogewogICAgIHBvc3RTeW5jaHJvbm91c01lc3NhZ2UoIlN5bmNMb2NhbFN0b3JhZ2Ui
LCB0cnVlKTsKQEAgLTIxMDQsMTIgKzIxMDksMTIgQEAgdm9pZCBUZXN0UnVubmVyOjpkaWRTZXRB
cHBCb3VuZERvbWFpbnNDYWxsYmFjaygpCiAKIHZvaWQgVGVzdFJ1bm5lcjo6c2V0SXNTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkKGJvb2wgZ3JhbnRlZCkKIHsKLSAgICBwb3N0U3lu
Y2hyb25vdXNQYWdlTWVzc2FnZSgic2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFu
dGVkIiwgZ3JhbnRlZCk7CisgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIlNldElzU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZCIsIGdyYW50ZWQpOwogfQogCiB2b2lkIFRl
c3RSdW5uZXI6OnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sIGdyYW50
ZWQpCiB7Ci0gICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoInNldElzTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uR3JhbnRlZCIsIGdyYW50ZWQpOworICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VN
ZXNzYWdlKCJTZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQiLCBncmFudGVkKTsK
IH0KIAogQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDA1MjkzN2Fl
OWNmYWI1YWY3ODQ3OTRmNGExNjM3MzAwN2E3NTc2MDMuLjIxYTEyYmE2MzI3N2QxMDIyNWVkN2Q2
MmVjOTRjOGY5Nzc3M2I2YzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0xNDEsNiArMTQxLDcgQEAgcHVibGljOgogICAg
IC8vIExvY2FsIHN0b3JhZ2UKICAgICB2b2lkIGNsZWFyQWxsRGF0YWJhc2VzKCk7CiAgICAgdm9p
ZCBzZXREYXRhYmFzZVF1b3RhKHVpbnQ2NF90KTsKKyAgICB2b2lkIHNldFF1b3RhTG9nZ2luZ0Vu
YWJsZWQoYm9vbCk7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBhdGhUb0xvY2FsUmVz
b3VyY2UoSlNTdHJpbmdSZWYpOwogICAgIHZvaWQgc3luY0xvY2FsU3RvcmFnZSgpOwogCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDM5ZmVlODkwMTAyZDYy
Yjk5MjFjMmVlMDg2MjA4MDhkMmZmZDIyMmUuLmUzMmEwZmQxYmIzN2M0ZDFhMjA3NjZhZTVkMTZl
Y2I0NTJjMTM0NjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CkBAIC0yOTA2LDYgKzI5MDYsMTMgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRRdW90YSgp
CiAgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOwogfQogCit2b2lkIFRlc3RD
b250cm9sbGVyOjpzZXRRdW90YUxvZ2dpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBT
dG9yYWdlVm9pZENhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlzKTsKKyAgICBXS1dlYnNpdGVE
YXRhU3RvcmVTZXRRdW90YUxvZ2dpbmdFbmFibGVkKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0
YVN0b3JlKCksIGVuYWJsZWQsICZjb250ZXh0LCBTdG9yYWdlVm9pZENhbGxiYWNrKTsKKyAgICBy
dW5VbnRpbChjb250ZXh0LmRvbmUsIG5vVGltZW91dCk7Cit9CisKIHN0cnVjdCBGZXRjaENhY2hl
T3JpZ2luc0NhbGxiYWNrQ29udGV4dCB7CiAgICAgRmV0Y2hDYWNoZU9yaWdpbnNDYWxsYmFja0Nv
bnRleHQoVGVzdENvbnRyb2xsZXImIGNvbnRyb2xsZXIsIFdLU3RyaW5nUmVmIG9yaWdpbikKICAg
ICAgICAgOiB0ZXN0Q29udHJvbGxlcihjb250cm9sbGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5oCmluZGV4IGEwNzNiMzAxMjE2YjA4YWJmNzQ0ODc1MzRhOGU1YjE5MjM2
ZWFhMmEuLjhhYzcwYTM2MDRmNzFkZTI2Zjg3Y2ZjM2I2NTdkY2UwMmMzMzZlZDIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTI4MSw2ICsyODEsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VycygpOwogCiAgICAgdm9pZCByZXNl
dFF1b3RhKCk7CisgICAgdm9pZCBzZXRRdW90YUxvZ2dpbmdFbmFibGVkKGJvb2wpOwogCiAgICAg
dm9pZCByZW1vdmVBbGxTZXNzaW9uQ3JlZGVudGlhbHMoKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCBjYzZjNTY1NWI3MGU5YjliNzlmMGVmZDg0NDc5
YmFkZTYzMDBiYjExLi4xNmZjZGI0ZGI3OTRjZDBhNDBjYzcwN2UyNTZjZTcyMWJiNzIxMjk2IDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTM3OSwxNiAr
MTM3OSwyMSBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNl
aXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAKLSAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdl
TmFtZSwgInNldElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZCIpKSB7CisgICAg
aWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRJc1NwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQiKSkgewogICAgICAgICBUZXN0Q29udHJvbGxl
cjo6c2luZ2xldG9uKCkuc2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkKGJv
b2xlYW5WYWx1ZShtZXNzYWdlQm9keSkpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CiAKLSAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgInNl
dElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCIpKSB7CisgICAgaWYgKFdLU3RyaW5n
SXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRJc01lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkdyYW50ZWQiKSkgewogICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCku
c2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKGJvb2xlYW5WYWx1ZShtZXNzYWdl
Qm9keSkpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFF1b3RhTG9nZ2luZ0VuYWJs
ZWQiKSkgeworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0UXVvdGFMb2dn
aW5nRW5hYmxlZChtZXNzYWdlQm9keSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGFiZTM1MzkzZDY2MDE0YWZjODM3ZjFmNjgwNWRhZDM2NTg0MjcxMDguLmM5MWIxNDlhY2Q4
YTUyZjY2NzJiYmUwMzFmODYyYWQ0MWFkOWU5OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAy
MS0wMy0wOSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGUuY29tPgorCisgICAgICAgIEFkZCBz
b21lIGxvZ2dpbmcgdG8gaGVscCBkZWJ1ZyBmbGFreSBxdW90YSB0ZXN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTk1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL0luZGV4ZWRE
Qi9zdG9yYWdlLWxpbWl0LTEuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL0luZGV4
ZWREQi9zdG9yYWdlLWxpbWl0LTIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL0lu
ZGV4ZWREQi9zdG9yYWdlLWxpbWl0Lmh0dHBzLmh0bWw6CisKIDIwMjEtMDMtMDggIEFuZHJlcyBH
b256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSBhY2Nlc3Np
YmlsaXR5L2FyaWEtaW52YWxpZC5odG1sIHRlc3Qgb24gaU9TLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9JbmRleGVkREIvc3RvcmFnZS1saW1pdC0xLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL0luZGV4ZWREQi9zdG9yYWdlLWxpbWl0LTEuaHR0cHMuaHRt
bAppbmRleCAzNTBlM2UzYTNjZGI0NTE1ZmJhZGZiOWY3NGM0ODQ1OWQ4MTgyZDJmLi5kMmRiOTVk
ZTI3NDBjOGIyNDg4YzFlOTU5MGQ3NTY5OWE1M2E2NWM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL0luZGV4ZWREQi9zdG9yYWdlLWxpbWl0LTEuaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL0luZGV4ZWREQi9zdG9yYWdlLWxpbWl0LTEuaHR0cHMuaHRt
bApAQCAtNSwxMCArNSwxMiBAQAogPC9oZWFkPgogPGJvZHk+CiA8c2NyaXB0PgotaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5z
ZXRRdW90YUxvZ2dpbmdFbmFibGVkKHRydWUpOwogICAgIHRlc3RSdW5uZXIuc2V0QWxsb3dTdG9y
YWdlUXVvdGFJbmNyZWFzZShmYWxzZSk7Cit9CiAKLWRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgbWFr
ZXMgc3VyZSB0aGF0IHN0b3JhZ2Ugb2YgaW5kZXhlZERCICBhbmQgQ2FjaGUgQVBJIGRvIG5vdCBn
cm93IHVuYm91bmRlZGx5LiIpOworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBtYWtlcyBzdXJlIHRo
YXQgc3RvcmFnZSBvZiBpbmRleGVkREIgYW5kIENhY2hlIEFQSSBkbyBub3QgZ3JvdyB1bmJvdW5k
ZWRseS4iKTsKIAogd2luZG93LmNhY2hlcy5vcGVuKCJ0ZXN0IikudGhlbihjYWNoZSA9PiB7CiAg
ICAgcmV0dXJuIGNhY2hlLnB1dChuZXcgUmVxdWVzdCgiL3Rlc3QiKSwgbmV3IFJlc3BvbnNlKG5l
dyBVaW50OEFycmF5KDIwMCAqIDEwMjQpKSk7CkBAIC0yNSw3ICsyNyw3IEBAIHdpbmRvdy5jYWNo
ZXMub3BlbigidGVzdCIpLnRoZW4oY2FjaGUgPT4gewogICAgIGluZGV4ZWREQlRlc3QocHJlcGFy
ZURhdGFiYXNlLCBvbk9wZW5TdWNjZXNzLCB7J3N1ZmZpeCc6ICctMSd9KTsKIH0pLmNhdGNoKGUg
PT4gewogICAgIHRlc3RGYWlsZWQoIkNhY2hlIEFQSSBzdG9yZSBvcGVyYXRpb24gZmFpbGVkOiAi
ICsgZSk7Ci0gICAgZmluaXNoSlNUZXN0KCk7CisgICAgZmluaXNoVGVzdCgpOwogfSk7CiAKIGZ1
bmN0aW9uIHByZXBhcmVEYXRhYmFzZShldmVudCkKQEAgLTQ1LDEzICs0NywxOSBAQCBhc3luYyBm
dW5jdGlvbiBvbk9wZW5TdWNjZXNzKGV2ZW50KQogICAgICAgICBzaG91bGRCZVRydWUoIidlcnJv
cicgaW4gcmVxdWVzdCIpOwogICAgICAgICBzaG91bGRCZSgicmVxdWVzdC5lcnJvci5jb2RlIiwg
IkRPTUV4Y2VwdGlvbi5RVU9UQV9FWENFRURFRF9FUlIiKTsKICAgICAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZXF1ZXN0LmVycm9yLm5hbWUiLCAiUXVvdGFFeGNlZWRlZEVycm9yIik7Ci0g
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICBmaW5pc2hUZXN0KCk7CiAgICAgfQogCiAg
ICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgewogICAgICAgICB0ZXN0RmFp
bGVkKCJBZGQgb3BlcmF0aW9uIHNob3VsZCBmYWlsIGJlY2F1c2Ugc3RvcmFnZSBsaW1pdCBpcyBy
ZWFjaGVkLCBidXQgc3VjY2VlZGVkLiIpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAg
ICAgZmluaXNoVGVzdCgpOwogICAgIH0KLX08L3NjcmlwdD4KK30KKworZnVuY3Rpb24gZmluaXNo
VGVzdCgpIHsKKyAgICB0ZXN0UnVubmVyLnNldFF1b3RhTG9nZ2luZ0VuYWJsZWQoZmFsc2UpOwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL0luZGV4ZWREQi9zdG9yYWdlLWxpbWl0LTIu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvSW5kZXhlZERCL3N0b3JhZ2UtbGlt
aXQtMi5odHRwcy5odG1sCmluZGV4IDQyNzE4ZWNhODY1YjAwYzU3MzE3NjNlZTIxYjk2MWVhYzI3
ZDA0OTIuLjBhMTlhNzJiZDI0ZWY3MjdlODU2YWIyODU5M2MwYTEyOTE2ZmM0NzkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvSW5kZXhlZERCL3N0b3JhZ2UtbGltaXQtMi5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvSW5kZXhlZERCL3N0b3JhZ2UtbGlt
aXQtMi5odHRwcy5odG1sCkBAIC01LDggKzUsMTAgQEAKIDwvaGVhZD4KIDxib2R5PgogPHNjcmlw
dD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
IHRlc3RSdW5uZXIuc2V0UXVvdGFMb2dnaW5nRW5hYmxlZCh0cnVlKTsKICAgICB0ZXN0UnVubmVy
LnNldEFsbG93U3RvcmFnZVF1b3RhSW5jcmVhc2UoZmFsc2UpOworfQogCiBkZXNjcmlwdGlvbigi
VGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBzdG9yYWdlIG9mIGluZGV4ZWREQiBhbmQgQ2FjaGUg
QVBJIGRvIG5vdCBncm93IHVuYm91bmRlZGx5LiIpOwogCkBAIC0yNyw3ICsyOSw3IEBAIGFzeW5j
IGZ1bmN0aW9uIG9uT3BlblN1Y2Nlc3MoZXZlbnQpCiAgICAgZXZhbEFuZExvZygicmVxdWVzdCA9
IHN0b3JlLmFkZChuZXcgVWludDhBcnJheSgyMDQ4MDApLCAna2V5JykiKTsKICAgICByZXF1ZXN0
Lm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgewogICAgICAgICB0ZXN0RmFpbGVkKCJBZGQgb3Bl
cmF0aW9uIHNob3VsZCBmYWlsIGJlY2F1c2Ugc3RvcmFnZSBsaW1pdCBpcyByZWFjaGVkLCBidXQg
c3VjY2VlZGVkLiIpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgZmluaXNoVGVz
dCgpOwogICAgIH0KIAogICAgIHJlcXVlc3Qub25zdWNjZXNzID0gYXN5bmMgKGV2ZW50KSA9PiB7
CkBAIC01MSwxMiArNTMsMTcgQEAgZnVuY3Rpb24gY2FjaGVUZXN0KCkKICAgICAgICAgcmV0dXJu
IGNhY2hlLnB1dChuZXcgUmVxdWVzdCgiL3Rlc3QiKSwgbmV3IFJlc3BvbnNlKG5ldyBVaW50OEFy
cmF5KDMwNDgwMCkpKTsKICAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgdGVzdEZhaWxlZCgi
Q2FjaGUgQVBJIHN0b3JlIG9wZXJhdGlvbiBzdWNjZWVkZWQiKTsKLSAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgIGZpbmlzaFRlc3QoKTsKICAgICB9KS5jYXRjaChlID0+IHsKICAgICAg
ICAgZGVidWcoIkNhY2hlIEFQSSBzdG9yZSBvcGVyYXRpb24gZmFpbGVkOiAiICsgZSk7Ci0gICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICBmaW5pc2hUZXN0KCk7CiAgICAgfSk7CiB9CisK
K2Z1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgdGVzdFJ1bm5lci5zZXRRdW90YUxvZ2dpbmdF
bmFibGVkKGZhbHNlKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KIDwvc2NyaXB0PgogPC9ib2R5
PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9JbmRleGVkREIv
c3RvcmFnZS1saW1pdC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9JbmRleGVk
REIvc3RvcmFnZS1saW1pdC5odHRwcy5odG1sCmluZGV4IDdlYjkyOTk3YTE2MTE5OGY0YThiMTVl
OWNiMTM4MmRhZTI4ZTUxMjAuLjRiZmQ2ZDAwM2ZhYWI0MWViYTBiOGYwOTVlODI0ZmRlOTk4ZjA3
OTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvSW5kZXhlZERCL3N0b3JhZ2Ut
bGltaXQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL0luZGV4ZWREQi9z
dG9yYWdlLWxpbWl0Lmh0dHBzLmh0bWwKQEAgLTUsOCArNSwxMCBAQAogPC9oZWFkPgogPGJvZHk+
CiA8c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQoraWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgdGVzdFJ1bm5lci5zZXRRdW90YUxvZ2dpbmdFbmFibGVkKHRydWUpOwogICAgIHRl
c3RSdW5uZXIuc2V0QWxsb3dTdG9yYWdlUXVvdGFJbmNyZWFzZShmYWxzZSk7Cit9CiAKIGRlc2Ny
aXB0aW9uKCJUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IHN0b3JhZ2Ugb2YgaW5kZXhlZERCIGRv
ZXMgbm90IGdyb3cgdW5ib3VuZGVkbHkuIik7CiAKQEAgLTE2LDcgKzE4LDcgQEAgd2luZG93LmNh
Y2hlcy5vcGVuKCJ0ZXN0IikudGhlbihjYWNoZSA9PiB7CiAgICAgaW5kZXhlZERCVGVzdChwcmVw
YXJlRGF0YWJhc2UsIG9uT3BlblN1Y2Nlc3MsIHsnc3VmZml4JzogJy0xJ30pOwogfSkuY2F0Y2go
ZSA9PiB7CiAgICAgdGVzdEZhaWxlZCgiQ2FjaGUgQVBJIHN0b3JlIG9wZXJhdGlvbiBmYWlsZWQ6
ICIgKyBlKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICBmaW5pc2hUZXN0KCk7CiB9KTsKIAog
ZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2ZW50KQpAQCAtMzYsMTQgKzM4LDE5IEBAIGFzeW5j
IGZ1bmN0aW9uIG9uT3BlblN1Y2Nlc3MoZXZlbnQpCiAgICAgICAgIHNob3VsZEJlVHJ1ZSgiJ2Vy
cm9yJyBpbiByZXF1ZXN0Iik7CiAgICAgICAgIHNob3VsZEJlKCJyZXF1ZXN0LmVycm9yLmNvZGUi
LCAiRE9NRXhjZXB0aW9uLlFVT1RBX0VYQ0VFREVEX0VSUiIpOwogICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlcXVlc3QuZXJyb3IubmFtZSIsICJRdW90YUV4Y2VlZGVkRXJyb3IiKTsK
LSAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIGZpbmlzaFRlc3QoKTsKICAgICB9CiAK
ICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgIHRlc3RG
YWlsZWQoIkFkZCBvcGVyYXRpb24gc2hvdWxkIGZhaWwgYmVjYXVzZSBzdG9yYWdlIGxpbWl0IGlz
IHJlYWNoZWQsIGJ1dCBzdWNjZWVkZWQuIik7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICBmaW5pc2hUZXN0KCk7CiAgICAgfQogfQorCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewor
ICAgIHRlc3RSdW5uZXIuc2V0UXVvdGFMb2dnaW5nRW5hYmxlZChmYWxzZSk7CisgICAgZmluaXNo
SlNUZXN0KCk7Cit9CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422838</attachid>
            <date>2021-03-10 09:27:06 -0800</date>
            <delta_ts>2021-03-11 19:25:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222995-20210310092705.patch</filename>
            <type>text/plain</type>
            <size>30311</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTg5NzRkMGM0ZWFiZDcy
NjMzM2E5YjcyOGZjYzM2ZmEyM2NkMTJjMy4uNTVjNzQ4ZWM2ZDYyYjk4NWE3OGQwMzBjYTA5OWVi
MTBlMWY0NzcyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTAzLTEwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwZS5jb20+CisKKyAgICAgICAgQWRkIHNvbWUgbG9nZ2luZyB0
byBoZWxwIGRlYnVnIGZsYWt5IHF1b3RhIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI5OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBodHRwL3Rlc3RzL0luZGV4ZWREQi9zdG9yYWdlLWxpbWl0
KiBoYXZlIGJlZW4gZmxha3kgb24gYm90cyBzaW5jZSB0aGV5IHdlcmUgYWRkZWQuIEFkZCBhbiBv
cHRpb24gdG8gYWxsb3cgCisgICAgICAgIHByaW50aW5nIHNvbWUgbG9nZ2luZyBpbiB0aGVzZSB0
ZXN0cy4KKworICAgICAgICBObyBuZXcgdGVzdCBhcyBubyBiZWhhdmlvciBjaGFuZ2UgaW4gcXVv
dGEgbWFuYWdlbWVudC4KKworICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVF1b3RhTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlUXVvdGFNYW5hZ2VyOjpyZXF1ZXN0U3BhY2VP
bkJhY2tncm91bmRUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVF1b3RhTWFuYWdl
cjo6dHJ5R3JhbnRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VRdW90YU1hbmFn
ZXI6OnNldExvZ2dpbmdFbmFibGVkKToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VRdW90YU1h
bmFnZXIuaDoKKwogMjAyMS0wMy0xMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KIAogICAgICAgICBMb2dpYyBmb3IgdXBkYXRpbmcgdGhlIHRleHQgc2VsZWN0aW9uIHdo
ZW4gZHJhZ2dpbmcgc2VsZWN0aW9uIGhhbmRsZXMgc2hvdWxkIGFjY291bnQgZm9yIGltYWdlIG92
ZXJsYXlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDRmNjY4MTU1ZjM5ZWY3ZmE0MDI5YWQ0YzYwMzRjODdlOWRlNWYx
Y2YuLjgxYzRjZTA4NDRlZmFlNWIwYmY0YjI3NzMxZWM1NTJlZjE3ZmUwZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMjEtMDMtMTAgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBlLmNv
bT4KKworICAgICAgICBBZGQgc29tZSBsb2dnaW5nIHRvIGhlbHAgZGVidWcgZmxha3kgcXVvdGEg
dGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
Mjk5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6c2V0UXVvdGFMb2dnaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpzdG9yYWdlUXVvdGFNYW5hZ2VyKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVE
YXRhU3RvcmVSZWYuY3BwOgorICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0UXVvdGFMb2dn
aW5nRW5hYmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9y
ZVJlZi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRRdW90YUxvZ2dp
bmdFbmFibGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpzZXRRdW90YUxvZ2dpbmdF
bmFibGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oOgorCiAyMDIxLTAzLTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIExvZ2ljIGZvciB1cGRhdGluZyB0aGUgdGV4dCBzZWxlY3Rpb24gd2hlbiBk
cmFnZ2luZyBzZWxlY3Rpb24gaGFuZGxlcyBzaG91bGQgYWNjb3VudCBmb3IgaW1hZ2Ugb3Zlcmxh
eXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggMDRkYmVlYzg2NmFiNDc2MGMwYzZkMDBjZjU5NWM1
MmQyNTFkZjcyMi4uODQ1NWYyZDE0MGYxNGJiMmMxOTg4MzI1YWE2NGYxOTIyNzVmNjUyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wMy0xMCAgU2lodWkgTGl1
ICA8c2lodWlfbGl1QGFwcGUuY29tPgorCisgICAgICAgIEFkZCBzb21lIGxvZ2dpbmcgdG8gaGVs
cCBkZWJ1ZyBmbGFreSBxdW90YSB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5jcHA6CisgICAg
ICAgIChJblByb2Nlc3NJREJTZXJ2ZXI6OnF1b3RhTWFuYWdlcik6CisKIDIwMjEtMDMtMDUgIERv
biBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBbQ01ha2VdIEJ1
bXAgY21ha2VfbWluaW11bV9yZXF1aXJlZCB2ZXJzaW9uIHRvIDMuMTIgb3IgbGF0ZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVF1b3RhTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VRdW90YU1hbmFnZXIuY3BwCmluZGV4IDBjNjEz
ZDFhNzJkZmVhNjU5Y2IyZTcxYTgyMGFhYWI2MDlhYTk2MTUuLjQ4MGJjNWY0ZDBhZjJhZjNiOTk0
NGI1ZjczZjgxYTVkZTMyZDRhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U3RvcmFnZVF1b3RhTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlUXVvdGFNYW5hZ2VyLmNwcApAQCAtNzgsNyArNzgsOCBAQCBTdG9yYWdlUXVvdGFNYW5hZ2Vy
OjpEZWNpc2lvbiBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpyZXF1ZXN0U3BhY2VPbkJhY2tncm91bmRU
aHJlYQogICAgIGlmICh0cnlHcmFudFJlcXVlc3Qoc3BhY2VSZXF1ZXN0ZWQpKQogICAgICAgICBy
ZXR1cm4gRGVjaXNpb246OkdyYW50OwogCi0gICAgbV91c2FnZSA9IG1fdXNhZ2VHZXR0ZXIoKTsK
KyAgICBhdXRvIHNob3VsZFByaW50VXNhZ2VEZXRhaWwgPSBtX2xvZ2dpbmdFbmFibGVkID8gU2hv
dWxkUHJpbnRVc2FnZURldGFpbDo6WWVzIDogU2hvdWxkUHJpbnRVc2FnZURldGFpbDo6Tm87Cisg
ICAgbV91c2FnZSA9IG1fdXNhZ2VHZXR0ZXIoc2hvdWxkUHJpbnRVc2FnZURldGFpbCk7CiAgICAg
dXBkYXRlUXVvdGFCYXNlZE9uVXNhZ2UoKTsKICAgICBtX3F1b3RhQ291bnREb3duID0gbV91c2Fn
ZSA8IG1fcXVvdGEgPyBtX3F1b3RhIC0gbV91c2FnZSA6IDA7CiAgICAgaWYgKHRyeUdyYW50UmVx
dWVzdChzcGFjZVJlcXVlc3RlZCkpCkBAIC0xMDEsNyArMTAyLDcgQEAgU3RvcmFnZVF1b3RhTWFu
YWdlcjo6RGVjaXNpb24gU3RvcmFnZVF1b3RhTWFuYWdlcjo6cmVxdWVzdFNwYWNlT25CYWNrZ3Jv
dW5kVGhyZWEKIAogICAgIHNlbWFwaG9yZS53YWl0KCk7CiAKLSAgICBtX3VzYWdlID0gbV91c2Fn
ZUdldHRlcigpOworICAgIG1fdXNhZ2UgPSBtX3VzYWdlR2V0dGVyKHNob3VsZFByaW50VXNhZ2VE
ZXRhaWwpOwogICAgIG1fcXVvdGFDb3VudERvd24gPSBtX3VzYWdlIDwgbV9xdW90YSA/IG1fcXVv
dGEgLSBtX3VzYWdlIDogMDsKICAgICByZXR1cm4gdHJ5R3JhbnRSZXF1ZXN0KHNwYWNlUmVxdWVz
dGVkKSA/IERlY2lzaW9uOjpHcmFudCA6IERlY2lzaW9uOjpEZW55OwogfQpAQCAtMTA5LDYgKzEx
MCwxMCBAQCBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpEZWNpc2lvbiBTdG9yYWdlUXVvdGFNYW5hZ2Vy
OjpyZXF1ZXN0U3BhY2VPbkJhY2tncm91bmRUaHJlYQogYm9vbCBTdG9yYWdlUXVvdGFNYW5hZ2Vy
Ojp0cnlHcmFudFJlcXVlc3QodWludDY0X3Qgc3BhY2VSZXF1ZXN0ZWQpCiB7CiAgICAgQVNTRVJU
KG1fcXVvdGFDb3VudERvd25Mb2NrLmlzTG9ja2VkKCkpOworCisgICAgaWYgKG1fbG9nZ2luZ0Vu
YWJsZWQpCisgICAgICAgIFdURkxvZ0Fsd2F5cygiJXAgLSBTdG9yYWdlUXVvdGFNYW5hZ2VyIHRy
eUdyYW50UmVxdWVzdCBtX3F1b3RhICVsbHUsIG1fdXNhZ2UgJWxsdSwgbV9xdW90YUNvdW50RG93
biAlbGx1LCBzcGFjZVJlcXVlc3RlZCAlbGx1IiwgdGhpcywgbV9xdW90YSwgbV91c2FnZSwgbV9x
dW90YUNvdW50RG93biwgc3BhY2VSZXF1ZXN0ZWQpOworCiAgICAgaWYgKHNwYWNlUmVxdWVzdGVk
IDw9IG1fcXVvdGFDb3VudERvd24pIHsKICAgICAgICAgbV9xdW90YUNvdW50RG93biAtPSBzcGFj
ZVJlcXVlc3RlZDsKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xNDMsNCArMTQ4LDkgQEAgdm9p
ZCBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpyZXNldFF1b3RhRm9yVGVzdGluZygpCiAgICAgbV9xdW90
YUNvdW50RG93biA9IDA7CiB9CiAKK3ZvaWQgU3RvcmFnZVF1b3RhTWFuYWdlcjo6c2V0TG9nZ2lu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIG1fbG9nZ2luZ0VuYWJsZWQgPSBlbmFibGVk
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL1N0b3JhZ2VRdW90YU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U3RvcmFnZVF1b3RhTWFuYWdlci5oCmluZGV4IDliZGZkZDQ3YTE4YTE3NmM1YmMzM2Y0Yjg2Mjg5
MjIzNGFkMjlhYjIuLmFlYjgwMmQ4MmQ4OThmYjZhYzhkMmM0YmM4MDllZDA5Y2Q2ZTU4YTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVF1b3RhTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVF1b3RhTWFuYWdlci5oCkBAIC0zNyw3
ICszNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFN0b3JhZ2VRdW90YU1hbmFnZXIg
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U3RvcmFnZVF1b3RhTWFuYWdlcj4sIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxTdG9yYWdlUXVvdGFNYW5hZ2VyPiB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgdXNpbmcgVXNhZ2VHZXR0ZXIgPSBGdW5jdGlvbjx1
aW50NjRfdCgpPjsKKyAgICBlbnVtIGNsYXNzIFNob3VsZFByaW50VXNhZ2VEZXRhaWwgeyBObywg
WWVzIH07CisgICAgdXNpbmcgVXNhZ2VHZXR0ZXIgPSBGdW5jdGlvbjx1aW50NjRfdChTaG91bGRQ
cmludFVzYWdlRGV0YWlsKT47CiAgICAgdXNpbmcgUXVvdGFJbmNyZWFzZVJlcXVlc3RlciA9IEZ1
bmN0aW9uPHZvaWQodWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50VXNhZ2Us
IHVpbnQ2NF90IHJlcXVlc3RlZEluY3JlYXNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPHVpbnQ2NF90Pik+JiYpPjsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFN0b3Jh
Z2VRdW90YU1hbmFnZXI+IGNyZWF0ZSh1aW50NjRfdCBxdW90YSwgVXNhZ2VHZXR0ZXImJiwgUXVv
dGFJbmNyZWFzZVJlcXVlc3RlciYmKTsKIApAQCAtNTIsNiArNTMsNyBAQCBwdWJsaWM6CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc2V0UXVvdGFVcGRhdGVkQmFzZWRPblVzYWdlRm9yVGVz
dGluZygpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVzZXRRdW90YUZvclRlc3RpbmcoKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldExvZ2dpbmdFbmFibGVkKGJvb2wpOwogCiBwcml2
YXRlOgogICAgIFN0b3JhZ2VRdW90YU1hbmFnZXIodWludDY0X3QgcXVvdGEsIFVzYWdlR2V0dGVy
JiYsIFF1b3RhSW5jcmVhc2VSZXF1ZXN0ZXImJik7CkBAIC03Myw2ICs3NSw3IEBAIHByaXZhdGU6
CiAKICAgICAvLyBUZXN0IG9ubHkuCiAgICAgdWludDY0X3QgbV9pbml0aWFsUXVvdGEgeyAwIH07
CisgICAgYm9vbCBtX2xvZ2dpbmdFbmFibGVkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKaW5kZXggMWE5ZjcxOWQ2NTFmYThhZWQxOWY2ZWZmMDUxNTdmMDk1MmRiZWUxMS4u
NjE5YjIwZGI4MGY1MGY4Y2M2NjY4YWJlZjY5ODU0ODliNDJhOGRmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTI0MDEsNiArMjQw
MSwyMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpyZXNldFF1b3RhKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZAogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFF1b3RhTG9nZ2luZ0VuYWJsZWQoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIGVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAobV9xdW90YUxvZ2dpbmdFbmFibGVk
ID09IGVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKyAgICBtX3F1b3RhTG9nZ2luZ0VuYWJsZWQg
PSBlbmFibGVkOworCisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zZXNzaW9uU3RvcmFnZVF1b3Rh
TWFuYWdlcnNMb2NrKTsKKyAgICBpZiAoYXV0byogc2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXIg
PSBtX3Nlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2Vycy5nZXQoc2Vzc2lvbklEKSkgeworICAgICAg
ICBmb3IgKGF1dG8gc3RvcmFnZVF1b3RhTWFuYWdlciA6IHNlc3Npb25TdG9yYWdlUXVvdGFNYW5h
Z2VyLT5leGlzdGluZ1N0b3JhZ2VRdW90YU1hbmFnZXJzKCkpCisgICAgICAgICAgICBzdG9yYWdl
UXVvdGFNYW5hZ2VyLT5zZXRMb2dnaW5nRW5hYmxlZChtX3F1b3RhTG9nZ2luZ0VuYWJsZWQpOwor
ICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcigpOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNz
OjpyZW5hbWVPcmlnaW5JbldlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgVVJMJiBvbGROYW1lLCBjb25zdCBVUkwmIG5ld05hbWUsIE9wdGlvblNldDxXZWJzaXRlRGF0
YVR5cGU+IGRhdGFUeXBlcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIGF1dG8gYWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3Jl
YXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKQEAgLTI1MDksMTMgKzI1MjMsMTcgQEAg
UmVmUHRyPFN0b3JhZ2VRdW90YU1hbmFnZXI+IE5ldHdvcmtQcm9jZXNzOjpzdG9yYWdlUXVvdGFN
YW5hZ2VyKFBBTDo6U2Vzc2lvbklEIHMKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAg
ICBpZGJSb290UGF0aCA9IHNlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2VyLT5pZGJSb290UGF0aCgp
OwogI2VuZGlmCi0gICAgU3RvcmFnZVF1b3RhTWFuYWdlcjo6VXNhZ2VHZXR0ZXIgdXNhZ2VHZXR0
ZXIgPSBbY2FjaGVSb290UGF0aCA9IHNlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2VyLT5jYWNoZVJv
b3RQYXRoKCkuaXNvbGF0ZWRDb3B5KCksIGlkYlJvb3RQYXRoID0gaWRiUm9vdFBhdGguaXNvbGF0
ZWRDb3B5KCksIG9yaWdpbiA9IG9yaWdpbi5pc29sYXRlZENvcHkoKV0oKSB7CisgICAgU3RvcmFn
ZVF1b3RhTWFuYWdlcjo6VXNhZ2VHZXR0ZXIgdXNhZ2VHZXR0ZXIgPSBbY2FjaGVSb290UGF0aCA9
IHNlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2VyLT5jYWNoZVJvb3RQYXRoKCkuaXNvbGF0ZWRDb3B5
KCksIGlkYlJvb3RQYXRoID0gaWRiUm9vdFBhdGguaXNvbGF0ZWRDb3B5KCksIG9yaWdpbiA9IG9y
aWdpbi5pc29sYXRlZENvcHkoKV0oU3RvcmFnZVF1b3RhTWFuYWdlcjo6U2hvdWxkUHJpbnRVc2Fn
ZURldGFpbCBzaG91bGRQcmludHVzYWdlRGV0YWlsKSB7CiAgICAgICAgIEFTU0VSVCghaXNNYWlu
UnVuTG9vcCgpKTsKIAotICAgICAgICB1aW50NjRfdCB1c2FnZSA9IENhY2hlU3RvcmFnZTo6RW5n
aW5lOjpkaXNrVXNhZ2UoY2FjaGVSb290UGF0aCwgb3JpZ2luKTsKKyAgICAgICAgdWludDY0X3Qg
Y2FjaGVVc2FnZSA9IENhY2hlU3RvcmFnZTo6RW5naW5lOjpkaXNrVXNhZ2UoY2FjaGVSb290UGF0
aCwgb3JpZ2luKTsKKyAgICAgICAgdWludDY0X3QgdXNhZ2UgPSBjYWNoZVVzYWdlOworCiAjaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgICAgIHVzYWdlICs9IElEQlNlcnZlcjo6SURC
U2VydmVyOjpkaXNrVXNhZ2UoaWRiUm9vdFBhdGgsIG9yaWdpbik7CiAjZW5kaWYKKyAgICAgICAg
aWYgKHNob3VsZFByaW50dXNhZ2VEZXRhaWwgPT0gU3RvcmFnZVF1b3RhTWFuYWdlcjo6U2hvdWxk
UHJpbnRVc2FnZURldGFpbDo6WWVzKQorICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJTdG9yYWdl
UXVvdGFNYW5hZ2VyOjpVc2FnZUdldHRlciBDYWNoY2UgdXNhZ2UgJWxsdSwgSURCIHVzYWdlICVs
bHUiLCBjYWNoZVVzYWdlLCB1c2FnZSk7CiAKICAgICAgICAgcmV0dXJuIHVzYWdlOwogICAgIH07
CkBAIC0yNTI2LDcgKzI1NDQsOSBAQCBSZWZQdHI8U3RvcmFnZVF1b3RhTWFuYWdlcj4gTmV0d29y
a1Byb2Nlc3M6OnN0b3JhZ2VRdW90YU1hbmFnZXIoUEFMOjpTZXNzaW9uSUQgcwogICAgICAgICBy
ZXF1ZXN0U3RvcmFnZVNwYWNlKHNlc3Npb25JRCwgb3JpZ2luLCBjdXJyZW50UXVvdGEsIGN1cnJl
bnRTcGFjZSwgcmVxdWVzdGVkSW5jcmVhc2UsIFdURk1vdmUoY2FsbGJhY2spKTsKICAgICB9Owog
Ci0gICAgcmV0dXJuIHNlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2VyLT5lbnN1cmVPcmlnaW5TdG9y
YWdlUXVvdGFNYW5hZ2VyKG9yaWdpbiwgc2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXItPmRlZmF1
bHRRdW90YShvcmlnaW4pLCBXVEZNb3ZlKHVzYWdlR2V0dGVyKSwgV1RGTW92ZShxdW90YUluY3Jl
YXNlUmVxdWVzdGVyKSkucHRyKCk7CisgICAgYXV0byBvcmlnaW5TdG9yYWdlUXVvdGFNYW5hZ2Vy
ID0gc2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXItPmVuc3VyZU9yaWdpblN0b3JhZ2VRdW90YU1h
bmFnZXIob3JpZ2luLCBzZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlci0+ZGVmYXVsdFF1b3RhKG9y
aWdpbiksIFdURk1vdmUodXNhZ2VHZXR0ZXIpLCBXVEZNb3ZlKHF1b3RhSW5jcmVhc2VSZXF1ZXN0
ZXIpKS5wdHIoKTsKKyAgICBvcmlnaW5TdG9yYWdlUXVvdGFNYW5hZ2VyLT5zZXRMb2dnaW5nRW5h
YmxlZChtX3F1b3RhTG9nZ2luZ0VuYWJsZWQpOworICAgIHJldHVybiBvcmlnaW5TdG9yYWdlUXVv
dGFNYW5hZ2VyOwogfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGZhNDIzMzRlYzBjYTFhZDA1MDIz
ZWNiZjc4ZDEzMWQwMWIzZWYzNmYuLmM4MTgwNzY1Mzc1ZmRiMjE3MzE2MTg1YjJjMTQ4NmQ1YmQy
YmI2MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKQEAgLTMwMiw2ICszMDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzeW5jTG9jYWxTdG9yYWdl
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICB2b2lkIHJlc2V0UXVvdGEoUEFM
OjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRR
dW90YUxvZ2dpbmdFbmFibGVkKFBBTDo6U2Vzc2lvbklELCBib29sIGVuYWJsZWQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZW5hbWVPcmlnaW5JbldlYnNpdGVEYXRh
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25zdCBVUkwmLCBPcHRpb25TZXQ8V2Vic2l0
ZURhdGFUeXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKQEAgLTU4NCw2ICs1ODUsNyBAQCBwcml2YXRlOgogICAgIAogICAgIExv
Y2sgbV9zZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlcnNMb2NrOwogICAgIEhhc2hNYXA8UEFMOjpT
ZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxTZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlcj4+IG1f
c2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXJzOworICAgIGJvb2wgbV9xdW90YUxvZ2dpbmdFbmFi
bGVkIHsgZmFsc2UgfTsKIAogICAgIE9wdGlvblNldDxOZXR3b3JrQ2FjaGU6OkNhY2hlT3B0aW9u
PiBtX2NhY2hlT3B0aW9uczsKICAgICBXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxSZWdpc3Ry
eSBtX21lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNjE0MzIy
YjY2ZTNhMmM0MWFjZGM5MzFhZDBiNDZiNDZjNWIwODIyZC4uOGEzMWE3ZjY5OTVjODMzZWU2ZmM4
ZGQ1N2NhMDhiYTk3MWEzNGFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xNzgsNiArMTc4LDcgQEAg
bWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFJlc2V0U2Vy
dmljZVdvcmtlckZldGNoVGltZW91dEZvclRlc3RpbmcoKSAtPiAoKSBTeW5jaHJvbm91cwogCiAg
ICAgUmVzZXRRdW90YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCisgICAg
U2V0UXVvdGFMb2dnaW5nRW5hYmxlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgZW5h
YmxlZCkgLT4gKCkgQXN5bmMKICAgICAKICNpZiBFTkFCTEUoQVBQX0JPVU5EX0RPTUFJTlMpCiAg
ICAgSGFzQXBwQm91bmRTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKGJvb2wg
aGFzQXBwQm91bmRTZXNzaW9uKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5kZXggZDkyMjg3ZDMzZDA1
MjFjYmU1MmU3NWFmOTJjYzM1NDE2NTU2ZTBhNS4uMDVkNjk5MjAwY2U5YWRhZGMwMzJhZGQxYzIw
M2E2ZjM3ZjNlOWE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC04MzgsNiArODM4LDE0IEBAIHZvaWQg
V0tXZWJzaXRlRGF0YVN0b3JlUmVzZXRRdW90YShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0
b3JlUmVmLCB2b2lkKiBjb250CiAgICAgfSk7CiB9CiAKK3ZvaWQgV0tXZWJzaXRlRGF0YVN0b3Jl
U2V0UXVvdGFMb2dnaW5nRW5hYmxlZChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVm
LCBib29sIGVuYWJsZWQsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVNldFF1b3Rh
TG9nZ2luZ0VuYWJsZWRDYWxsYmFjayBjYWxsYmFjaykKK3sKKyAgICBXZWJLaXQ6OnRvSW1wbChk
YXRhU3RvcmVSZWYpLT5zZXRRdW90YUxvZ2dpbmdFbmFibGVkKGVuYWJsZWQsIFtjb250ZXh0LCBj
YWxsYmFja10geworICAgICAgICBpZiAoY2FsbGJhY2spCisgICAgICAgICAgICBjYWxsYmFjayhj
b250ZXh0KTsKKyAgICB9KTsKK30KKwogdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckFwcEJv
dW5kU2Vzc2lvbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCB2b2lkKiBjb250
ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckFwcEJvdW5kU2Vzc2lvbkZ1bmN0aW9uIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlOUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgK
aW5kZXggZDVjOWVlZTJhNDA0ZmQzY2I0N2M5Zjg3NzM1YzM5NzY4MWQyOTNhNy4uODNkYTRhMzk2
ZDI3YzJiNjczZDAxZWZhMmM3ZTU0Nzk1OTMzNzExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKQEAgLTE5NCw2ICsx
OTQsOSBAQCBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRDYWNoZU1vZGVsU3lu
Y2hyb25vdXNseUZvclRlc3RpbmcoV0tXZWJzaXRlRAogdHlwZWRlZiB2b2lkICgqV0tXZWJzaXRl
RGF0YVN0b3JlUmVzZXRRdW90YUNhbGxiYWNrKSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwogV0tf
RVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlUmVzZXRRdW90YShXS1dlYnNpdGVEYXRhU3Rv
cmVSZWYgZGF0YVN0b3JlUmVmLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVSZXNl
dFF1b3RhQ2FsbGJhY2sgY2FsbGJhY2spOwogCit0eXBlZGVmIHZvaWQgKCpXS1dlYnNpdGVEYXRh
U3RvcmVTZXRRdW90YUxvZ2dpbmdFbmFibGVkQ2FsbGJhY2spKHZvaWQqIGZ1bmN0aW9uQ29udGV4
dCk7CitXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRRdW90YUxvZ2dpbmdFbmFi
bGVkKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wgZW5hYmxlZCwgdm9p
ZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UXVvdGFMb2dnaW5nRW5hYmxlZENhbGxi
YWNrIGNhbGxiYWNrKTsKKwogdHlwZWRlZiB2b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJB
cHBCb3VuZFNlc3Npb25GdW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKIFdLX0VYUE9S
VCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQXBwQm91bmRTZXNzaW9uKFdLV2Vic2l0ZURh
dGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9y
ZUNsZWFyQXBwQm91bmRTZXNzaW9uRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAppbmRleCAxMDYyYmFjZDU4MzMzYmE1NGUwOWU2ZTkzMGU1ODFjZWExNzEwYTYzLi4y
MDVmMTY5ZGM5YjNlNmUyOWQ2NDFlMDBhMDk0ZDM3NjJkM2NkNTJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAK
QEAgLTE2MDYsNiArMTYwNiwxMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJlc2V0UXVv
dGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcgogICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlJlc2V0UXVvdGEoc2Vzc2lv
bklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OnNldFF1b3RhTG9nZ2luZ0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBib29sIGVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpTZXRRdW90YUxvZ2dpbmdFbmFibGVkKHNlc3Npb25JRCwgZW5hYmxlZCksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKK30KKwogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlOUykKIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aGFzQXBwQm91bmRTZXNzaW9uKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggMTM1ZmM1M2JjMGYzZmVlNmU2ZTE1ZWU3NzIyYjg3NTc2
MzBlNTMyOC4uMDdlNzE0MzY0ZmVhMjQwZGRiYmMyZWFjYjMzZWI4ZWMzMzg5N2E3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmgKQEAgLTI0MCw2ICsyNDAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vz
c0NyYXNoZWQoKTsKICAgICAKICAgICB2b2lkIHJlc2V0UXVvdGEoUEFMOjpTZXNzaW9uSUQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRRdW90YUxvZ2dpbmdFbmFi
bGVkKFBBTDo6U2Vzc2lvbklELCBib29sIGVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAKICAgICB2b2lkIHJlc291cmNlTG9hZERpZFNlbmRSZXF1ZXN0KFdlYlBhZ2VQcm94
eUlkZW50aWZpZXIsIFJlc291cmNlTG9hZEluZm8mJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYsIE9wdGlvbmFsPElQQzo6Rm9ybURhdGFSZWZlcmVuY2U+JiYpOwogICAgIHZvaWQgcmVzb3Vy
Y2VMb2FkRGlkUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBS
ZXNvdXJjZUxvYWRJbmZvJiYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCA3ZWM3OGVjNTAzMzdjYzMy
MTU2ZDk2OTMxNWI3MjZlN2RmOGRmYjIyLi4zODg4ZDAwOTY4N2UwMzAzMzM3MTg0NjJmN2I5ODY2
ZDU1YmEzZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMjA3Miw2ICsyMDcyLDEyIEBAIHZvaWQg
V2Vic2l0ZURhdGFTdG9yZTo6cmVzZXRRdW90YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiAgICAgbmV0d29ya1Byb2Nlc3MoKS5yZXNldFF1b3RhKG1fc2Vz
c2lvbklELCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogfQogCit2b2lkIFdlYnNpdGVEYXRh
U3RvcmU6OnNldFF1b3RhTG9nZ2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBjYWxsYmFja0Fn
Z3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CisgICAgbmV0d29ya1Byb2Nlc3MoKS5zZXRRdW90YUxvZ2dpbmdFbmFibGVkKG1f
c2Vzc2lvbklELCBlbmFibGVkLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOworfQorCiAjaWYg
IVBMQVRGT1JNKENPQ09BKQogV1RGOjpTdHJpbmcgV2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdE1l
ZGlhQ2FjaGVEaXJlY3RvcnkoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDQ4MjIxNmZhNDgyZjBhNTI1
OWI0MGYzZWY5ZTI0ZTg2MDE4ZjEwMzMuLmI4OTNiNDc0ODM5NmNkNGY2ZTQ0NDUyMzAzNjY5YzUx
ZmQyZjE3YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTMzNiw2ICszMzYsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIGJvb2wgaHR0cDNFbmFibGVkKCk7CiAKICAgICB2b2lkIHJlc2V0UXVvdGEoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFF1b3RhTG9nZ2luZ0VuYWJsZWQo
Ym9vbCBlbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAjaWYgRU5BQkxF
KEFQUF9CT1VORF9ET01BSU5TKQogICAgIHZvaWQgaGFzQXBwQm91bmRTZXNzaW9uKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9TdG9yYWdlL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L1N0b3JhZ2UvSW5Qcm9jZXNzSURCU2VydmVyLmNwcAppbmRleCBhNzk2ZjA4MjExY2Y3NDUy
NGY1ZDQ4Mzk1MzI3NmY4MDc4NTY4NjU0Li5iYjNhNDAxYTljYWJmMzU1MmMyNTczNzNiYTBiODJm
M2M5NTNhNWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9j
ZXNzSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9j
ZXNzSURCU2VydmVyLmNwcApAQCAtNzQsNyArNzQsNyBAQCBJblByb2Nlc3NJREJTZXJ2ZXI6On5J
blByb2Nlc3NJREJTZXJ2ZXIoKQogU3RvcmFnZVF1b3RhTWFuYWdlciogSW5Qcm9jZXNzSURCU2Vy
dmVyOjpxdW90YU1hbmFnZXIoY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4pCiB7CiAgICAgcmV0
dXJuIG1fcXVvdGFNYW5hZ2Vycy5lbnN1cmUob3JpZ2luLCBbXSB7Ci0gICAgICAgIHJldHVybiBT
dG9yYWdlUXVvdGFNYW5hZ2VyOjpjcmVhdGUoU3RvcmFnZVF1b3RhTWFuYWdlcjo6ZGVmYXVsdFF1
b3RhKCksIFtdIHsKKyAgICAgICAgcmV0dXJuIFN0b3JhZ2VRdW90YU1hbmFnZXI6OmNyZWF0ZShT
dG9yYWdlUXVvdGFNYW5hZ2VyOjpkZWZhdWx0UXVvdGEoKSwgW10oYXV0bykgewogICAgICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgICAgIH0sIFtdKHVpbnQ2NF90IHF1b3RhLCB1aW50NjRfdCBjdXJy
ZW50U3BhY2UsIHVpbnQ2NF90IHNwYWNlSW5jcmVhc2UsIGF1dG8gY2FsbGJhY2spIHsKICAgICAg
ICAgICAgIGNhbGxiYWNrKHF1b3RhICsgY3VycmVudFNwYWNlICsgc3BhY2VJbmNyZWFzZSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjBjOWEy
ODI1ZGIwZDdjZTVhNjlmNTJiNWI0NmQwNGRhMTEyZjI1Zi4uYTc1YmE0ZGNmNDIwMDJkOGI0Y2Ez
NzkwYWVjNWNlZjgxMTNhMjY4YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTAzLTEwICBTaWh1aSBMaXUgIDxz
aWh1aV9saXVAYXBwZS5jb20+CisKKyAgICAgICAgQWRkIHNvbWUgbG9nZ2luZyB0byBoZWxwIGRl
YnVnIGZsYWt5IHF1b3RhIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjI5OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0UXVvdGFMb2dn
aW5nRW5hYmxlZCk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldElzU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uR3JhbnRlZCk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldElz
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpz
ZXRRdW90YUxvZ2dpbmdFbmFibGVkKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNN
ZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAyMS0wMy0xMCAgSm9uYXRoYW4gQmVkYXJk
ICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgZ2l0LXdlYmtpdCBzaG91bGQgaGF2ZSBh
biAiaW5mbyIgY29tbWFuZApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggNDdhYjExNTYw
NWRiYzUzNTNkNjZjYzNhZDNkMGFlNTVjMTIwZmI5ZC4uMDhkYTkwYWNmMjM4MGMyMjJmNGJhMjFj
ODU4MzhjNWZkNzdjOWYyNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0xMzEsNiAr
MTMxLDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIC8vIExvY2FsIHN0b3JhZ2UgQVBJ
CiAgICAgdW5kZWZpbmVkIGNsZWFyQWxsRGF0YWJhc2VzKCk7CiAgICAgdW5kZWZpbmVkIHNldERh
dGFiYXNlUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKTsKKyAgICB1bmRlZmluZWQgc2V0
UXVvdGFMb2dnaW5nRW5hYmxlZChib29sZWFuIGVuYWJsZWQpOwogICAgIERPTVN0cmluZyBwYXRo
VG9Mb2NhbFJlc291cmNlKERPTVN0cmluZyB1cmwpOwogICAgIHVuZGVmaW5lZCBzeW5jTG9jYWxT
dG9yYWdlKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGVmODM2ZDUwMWQ3ZDFhZDNiZjhlY2Y2NTBmMzg0YzBj
OWJjN2Y5MmUuLmJlZGRiY2VjMTEzNDQ1YTUxZjgzMmY3YTAyYmZhNDA4NDQ5MzdmMDUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcApAQCAtMzgzLDYgKzM4MywxMSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldERhdGFiYXNlUXVv
dGEodWludDY0X3QgcXVvdGEpCiAgICAgcmV0dXJuIFdLQnVuZGxlU2V0RGF0YWJhc2VRdW90YShJ
bmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIHF1b3RhKTsKIH0KIAordm9pZCBU
ZXN0UnVubmVyOjpzZXRRdW90YUxvZ2dpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBw
b3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiU2V0UXVvdGFMb2dnaW5nRW5hYmxlZCIsIGVuYWJs
ZWQpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6OnN5bmNMb2NhbFN0b3JhZ2UoKQogewogICAgIHBv
c3RTeW5jaHJvbm91c01lc3NhZ2UoIlN5bmNMb2NhbFN0b3JhZ2UiLCB0cnVlKTsKQEAgLTIxMDQs
MTIgKzIxMDksMTIgQEAgdm9pZCBUZXN0UnVubmVyOjpkaWRTZXRBcHBCb3VuZERvbWFpbnNDYWxs
YmFjaygpCiAKIHZvaWQgVGVzdFJ1bm5lcjo6c2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25HcmFudGVkKGJvb2wgZ3JhbnRlZCkKIHsKLSAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2Fn
ZSgic2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkIiwgZ3JhbnRlZCk7Cisg
ICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIlNldElzU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uR3JhbnRlZCIsIGdyYW50ZWQpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNldElzTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sIGdyYW50ZWQpCiB7Ci0gICAgcG9zdFN5
bmNocm9ub3VzUGFnZU1lc3NhZ2UoInNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRl
ZCIsIGdyYW50ZWQpOworICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJTZXRJc01lZGlh
S2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQiLCBncmFudGVkKTsKIH0KIAogQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDA1MjkzN2FlOWNmYWI1YWY3ODQ3OTRmNGEx
NjM3MzAwN2E3NTc2MDMuLjIxYTEyYmE2MzI3N2QxMDIyNWVkN2Q2MmVjOTRjOGY5Nzc3M2I2Yzkg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oCkBAIC0xNDEsNiArMTQxLDcgQEAgcHVibGljOgogICAgIC8vIExvY2FsIHN0b3JhZ2UK
ICAgICB2b2lkIGNsZWFyQWxsRGF0YWJhc2VzKCk7CiAgICAgdm9pZCBzZXREYXRhYmFzZVF1b3Rh
KHVpbnQ2NF90KTsKKyAgICB2b2lkIHNldFF1b3RhTG9nZ2luZ0VuYWJsZWQoYm9vbCk7CiAgICAg
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBhdGhUb0xvY2FsUmVzb3VyY2UoSlNTdHJpbmdSZWYp
OwogICAgIHZvaWQgc3luY0xvY2FsU3RvcmFnZSgpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDM5ZmVlODkwMTAyZDYyYjk5MjFjMmVlMDg2MjA4MDhk
MmZmZDIyMmUuLmUzMmEwZmQxYmIzN2M0ZDFhMjA3NjZhZTVkMTZlY2I0NTJjMTM0NjUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0yOTA2LDYgKzI5MDYs
MTMgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRRdW90YSgpCiAgICAgcnVuVW50aWwoY29u
dGV4dC5kb25lLCBub1RpbWVvdXQpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRRdW90
YUxvZ2dpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBTdG9yYWdlVm9pZENhbGxiYWNr
Q29udGV4dCBjb250ZXh0KCp0aGlzKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVTZXRRdW90YUxv
Z2dpbmdFbmFibGVkKFRlc3RDb250cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCksIGVuYWJsZWQs
ICZjb250ZXh0LCBTdG9yYWdlVm9pZENhbGxiYWNrKTsKKyAgICBydW5VbnRpbChjb250ZXh0LmRv
bmUsIG5vVGltZW91dCk7Cit9CisKIHN0cnVjdCBGZXRjaENhY2hlT3JpZ2luc0NhbGxiYWNrQ29u
dGV4dCB7CiAgICAgRmV0Y2hDYWNoZU9yaWdpbnNDYWxsYmFja0NvbnRleHQoVGVzdENvbnRyb2xs
ZXImIGNvbnRyb2xsZXIsIFdLU3RyaW5nUmVmIG9yaWdpbikKICAgICAgICAgOiB0ZXN0Q29udHJv
bGxlcihjb250cm9sbGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmlu
ZGV4IGEwNzNiMzAxMjE2YjA4YWJmNzQ0ODc1MzRhOGU1YjE5MjM2ZWFhMmEuLjhhYzcwYTM2MDRm
NzFkZTI2Zjg3Y2ZjM2I2NTdkY2UwMmMzMzZlZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKQEAgLTI4MSw2ICsyODEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB0ZXJt
aW5hdGVTZXJ2aWNlV29ya2VycygpOwogCiAgICAgdm9pZCByZXNldFF1b3RhKCk7CisgICAgdm9p
ZCBzZXRRdW90YUxvZ2dpbmdFbmFibGVkKGJvb2wpOwogCiAgICAgdm9pZCByZW1vdmVBbGxTZXNz
aW9uQ3JlZGVudGlhbHMoKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmNwcAppbmRleCBjYzZjNTY1NWI3MGU5YjliNzlmMGVmZDg0NDc5YmFkZTYzMDBiYjExLi4xNmZj
ZGI0ZGI3OTRjZDBhNDBjYzcwN2UyNTZjZTcyMWJiNzIxMjk2IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTM3OSwxNiArMTM3OSwyMSBAQCBXS1JldGFp
blB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNz
YWdlRnJvbUluamVjdGVkQgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBp
ZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgInNldElzU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZCIpKSB7CisgICAgaWYgKFdLU3RyaW5nSXNFcXVh
bFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvbkdyYW50ZWQiKSkgewogICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0
SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkKGJvb2xlYW5WYWx1ZShtZXNzYWdl
Qm9keSkpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKLSAgICBpZiAoV0tTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgInNldElzTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uR3JhbnRlZCIpKSB7CisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmcobWVzc2FnZU5hbWUsICJTZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQiKSkg
ewogICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0SXNNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25HcmFudGVkKGJvb2xlYW5WYWx1ZShtZXNzYWdlQm9keSkpOwogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhtZXNzYWdlTmFtZSwgIlNldFF1b3RhTG9nZ2luZ0VuYWJsZWQiKSkgeworICAgICAgICBU
ZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0UXVvdGFMb2dnaW5nRW5hYmxlZChtZXNzYWdl
Qm9keSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdiZDdmNzRiNTkxMWRh
MDBjMjQzZjIxYWQ3MTdkMThiODg4NjBjODcuLjNkMDExOTk4NTU5M2U0OTgxMjljMGQ4NzI2MDFi
MWExYjQxZTNkMTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wMy0xMCAgU2lodWkgTGl1
ICA8c2lodWlfbGl1QGFwcGUuY29tPgorCisgICAgICAgIEFkZCBzb21lIGxvZ2dpbmcgdG8gaGVs
cCBkZWJ1ZyBmbGFreSBxdW90YSB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL0luZGV4ZWREQi9zdG9yYWdlLWxpbWl0LTEu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL0luZGV4ZWREQi9zdG9yYWdlLWxpbWl0
LTIuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL0luZGV4ZWREQi9zdG9yYWdlLWxp
bWl0Lmh0dHBzLmh0bWw6CisKIDIwMjEtMDMtMTAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBnZXRVc2VyTWVkaWEgZGVuaWVkIHJlcXVlc3RzIGlm
IHVzZXIgZ3JhbnRzIGEgbmV3IGdldFVzZXJNZWRpYSByZXF1ZXN0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL0luZGV4ZWREQi9zdG9yYWdlLWxpbWl0LTEuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvSW5kZXhlZERCL3N0b3JhZ2UtbGltaXQtMS5odHRwcy5o
dG1sCmluZGV4IDM1MGUzZTNhM2NkYjQ1MTVmYmFkZmI5Zjc0YzQ4NDU5ZDgxODJkMmYuLmQyZGI5
NWRlMjc0MGM4YjI0ODhjMWU5NTkwZDc1Njk5YTUzYTY1YzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvSW5kZXhlZERCL3N0b3JhZ2UtbGltaXQtMS5odHRwcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvSW5kZXhlZERCL3N0b3JhZ2UtbGltaXQtMS5odHRwcy5o
dG1sCkBAIC01LDEwICs1LDEyIEBACiA8L2hlYWQ+CiA8Ym9keT4KIDxzY3JpcHQ+Ci1pZiAod2lu
ZG93LnRlc3RSdW5uZXIpCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVy
LnNldFF1b3RhTG9nZ2luZ0VuYWJsZWQodHJ1ZSk7CiAgICAgdGVzdFJ1bm5lci5zZXRBbGxvd1N0
b3JhZ2VRdW90YUluY3JlYXNlKGZhbHNlKTsKK30KIAotZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBt
YWtlcyBzdXJlIHRoYXQgc3RvcmFnZSBvZiBpbmRleGVkREIgIGFuZCBDYWNoZSBBUEkgZG8gbm90
IGdyb3cgdW5ib3VuZGVkbHkuIik7CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IG1ha2VzIHN1cmUg
dGhhdCBzdG9yYWdlIG9mIGluZGV4ZWREQiBhbmQgQ2FjaGUgQVBJIGRvIG5vdCBncm93IHVuYm91
bmRlZGx5LiIpOwogCiB3aW5kb3cuY2FjaGVzLm9wZW4oInRlc3QiKS50aGVuKGNhY2hlID0+IHsK
ICAgICByZXR1cm4gY2FjaGUucHV0KG5ldyBSZXF1ZXN0KCIvdGVzdCIpLCBuZXcgUmVzcG9uc2Uo
bmV3IFVpbnQ4QXJyYXkoMjAwICogMTAyNCkpKTsKQEAgLTI1LDcgKzI3LDcgQEAgd2luZG93LmNh
Y2hlcy5vcGVuKCJ0ZXN0IikudGhlbihjYWNoZSA9PiB7CiAgICAgaW5kZXhlZERCVGVzdChwcmVw
YXJlRGF0YWJhc2UsIG9uT3BlblN1Y2Nlc3MsIHsnc3VmZml4JzogJy0xJ30pOwogfSkuY2F0Y2go
ZSA9PiB7CiAgICAgdGVzdEZhaWxlZCgiQ2FjaGUgQVBJIHN0b3JlIG9wZXJhdGlvbiBmYWlsZWQ6
ICIgKyBlKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICBmaW5pc2hUZXN0KCk7CiB9KTsKIAog
ZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2ZW50KQpAQCAtNDUsMTMgKzQ3LDE5IEBAIGFzeW5j
IGZ1bmN0aW9uIG9uT3BlblN1Y2Nlc3MoZXZlbnQpCiAgICAgICAgIHNob3VsZEJlVHJ1ZSgiJ2Vy
cm9yJyBpbiByZXF1ZXN0Iik7CiAgICAgICAgIHNob3VsZEJlKCJyZXF1ZXN0LmVycm9yLmNvZGUi
LCAiRE9NRXhjZXB0aW9uLlFVT1RBX0VYQ0VFREVEX0VSUiIpOwogICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlcXVlc3QuZXJyb3IubmFtZSIsICJRdW90YUV4Y2VlZGVkRXJyb3IiKTsK
LSAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIGZpbmlzaFRlc3QoKTsKICAgICB9CiAK
ICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgIHRlc3RG
YWlsZWQoIkFkZCBvcGVyYXRpb24gc2hvdWxkIGZhaWwgYmVjYXVzZSBzdG9yYWdlIGxpbWl0IGlz
IHJlYWNoZWQsIGJ1dCBzdWNjZWVkZWQuIik7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
ICAgICBmaW5pc2hUZXN0KCk7CiAgICAgfQotfTwvc2NyaXB0PgorfQorCitmdW5jdGlvbiBmaW5p
c2hUZXN0KCkgeworICAgIHRlc3RSdW5uZXIuc2V0UXVvdGFMb2dnaW5nRW5hYmxlZChmYWxzZSk7
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cis8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvSW5kZXhlZERCL3N0b3JhZ2UtbGltaXQt
Mi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9JbmRleGVkREIvc3RvcmFnZS1s
aW1pdC0yLmh0dHBzLmh0bWwKaW5kZXggNDI3MThlY2E4NjViMDBjNTczMTc2M2VlMjFiOTYxZWFj
MjdkMDQ5Mi4uMGExOWE3MmJkMjRlZjcyN2U4NTZhYjI4NTkzYzBhMTI5MTZmYzQ3OSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9JbmRleGVkREIvc3RvcmFnZS1saW1pdC0yLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9JbmRleGVkREIvc3RvcmFnZS1s
aW1pdC0yLmh0dHBzLmh0bWwKQEAgLTUsOCArNSwxMCBAQAogPC9oZWFkPgogPGJvZHk+CiA8c2Ny
aXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgdGVzdFJ1bm5lci5zZXRRdW90YUxvZ2dpbmdFbmFibGVkKHRydWUpOwogICAgIHRlc3RSdW5u
ZXIuc2V0QWxsb3dTdG9yYWdlUXVvdGFJbmNyZWFzZShmYWxzZSk7Cit9CiAKIGRlc2NyaXB0aW9u
KCJUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IHN0b3JhZ2Ugb2YgaW5kZXhlZERCIGFuZCBDYWNo
ZSBBUEkgZG8gbm90IGdyb3cgdW5ib3VuZGVkbHkuIik7CiAKQEAgLTI3LDcgKzI5LDcgQEAgYXN5
bmMgZnVuY3Rpb24gb25PcGVuU3VjY2VzcyhldmVudCkKICAgICBldmFsQW5kTG9nKCJyZXF1ZXN0
ID0gc3RvcmUuYWRkKG5ldyBVaW50OEFycmF5KDIwNDgwMCksICdrZXknKSIpOwogICAgIHJlcXVl
c3Qub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgIHRlc3RGYWlsZWQoIkFkZCBv
cGVyYXRpb24gc2hvdWxkIGZhaWwgYmVjYXVzZSBzdG9yYWdlIGxpbWl0IGlzIHJlYWNoZWQsIGJ1
dCBzdWNjZWVkZWQuIik7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICBmaW5pc2hU
ZXN0KCk7CiAgICAgfQogCiAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBhc3luYyAoZXZlbnQpID0+
IHsKQEAgLTUxLDEyICs1MywxNyBAQCBmdW5jdGlvbiBjYWNoZVRlc3QoKQogICAgICAgICByZXR1
cm4gY2FjaGUucHV0KG5ldyBSZXF1ZXN0KCIvdGVzdCIpLCBuZXcgUmVzcG9uc2UobmV3IFVpbnQ4
QXJyYXkoMzA0ODAwKSkpOwogICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICB0ZXN0RmFpbGVk
KCJDYWNoZSBBUEkgc3RvcmUgb3BlcmF0aW9uIHN1Y2NlZWRlZCIpOwotICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICAgICAgZmluaXNoVGVzdCgpOwogICAgIH0pLmNhdGNoKGUgPT4gewogICAg
ICAgICBkZWJ1ZygiQ2FjaGUgQVBJIHN0b3JlIG9wZXJhdGlvbiBmYWlsZWQ6ICIgKyBlKTsKLSAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIGZpbmlzaFRlc3QoKTsKICAgICB9KTsKIH0K
KworZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICB0ZXN0UnVubmVyLnNldFF1b3RhTG9nZ2lu
Z0VuYWJsZWQoZmFsc2UpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQogPC9zY3JpcHQ+CiA8L2Jv
ZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL0luZGV4ZWRE
Qi9zdG9yYWdlLWxpbWl0Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL0luZGV4
ZWREQi9zdG9yYWdlLWxpbWl0Lmh0dHBzLmh0bWwKaW5kZXggN2ViOTI5OTdhMTYxMTk4ZjRhOGIx
NWU5Y2IxMzgyZGFlMjhlNTEyMC4uNGJmZDZkMDAzZmFhYjQxZWJhMGI4ZjA5NWU4MjRmZGU5OThm
MDc5NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9JbmRleGVkREIvc3RvcmFn
ZS1saW1pdC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvSW5kZXhlZERC
L3N0b3JhZ2UtbGltaXQuaHR0cHMuaHRtbApAQCAtNSw4ICs1LDEwIEBACiA8L2hlYWQ+CiA8Ym9k
eT4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCitpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICB0ZXN0UnVubmVyLnNldFF1b3RhTG9nZ2luZ0VuYWJsZWQodHJ1ZSk7CiAgICAg
dGVzdFJ1bm5lci5zZXRBbGxvd1N0b3JhZ2VRdW90YUluY3JlYXNlKGZhbHNlKTsKK30KIAogZGVz
Y3JpcHRpb24oIlRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgc3RvcmFnZSBvZiBpbmRleGVkREIg
ZG9lcyBub3QgZ3JvdyB1bmJvdW5kZWRseS4iKTsKIApAQCAtMTYsNyArMTgsNyBAQCB3aW5kb3cu
Y2FjaGVzLm9wZW4oInRlc3QiKS50aGVuKGNhY2hlID0+IHsKICAgICBpbmRleGVkREJUZXN0KHBy
ZXBhcmVEYXRhYmFzZSwgb25PcGVuU3VjY2VzcywgeydzdWZmaXgnOiAnLTEnfSk7CiB9KS5jYXRj
aChlID0+IHsKICAgICB0ZXN0RmFpbGVkKCJDYWNoZSBBUEkgc3RvcmUgb3BlcmF0aW9uIGZhaWxl
ZDogIiArIGUpOwotICAgIGZpbmlzaEpTVGVzdCgpOworICAgIGZpbmlzaFRlc3QoKTsKIH0pOwog
CiBmdW5jdGlvbiBwcmVwYXJlRGF0YWJhc2UoZXZlbnQpCkBAIC0zNiwxNCArMzgsMTkgQEAgYXN5
bmMgZnVuY3Rpb24gb25PcGVuU3VjY2VzcyhldmVudCkKICAgICAgICAgc2hvdWxkQmVUcnVlKCIn
ZXJyb3InIGluIHJlcXVlc3QiKTsKICAgICAgICAgc2hvdWxkQmUoInJlcXVlc3QuZXJyb3IuY29k
ZSIsICJET01FeGNlcHRpb24uUVVPVEFfRVhDRUVERURfRVJSIik7CiAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygicmVxdWVzdC5lcnJvci5uYW1lIiwgIlF1b3RhRXhjZWVkZWRFcnJvciIp
OwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgZmluaXNoVGVzdCgpOwogICAgIH0K
IAogICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgdGVz
dEZhaWxlZCgiQWRkIG9wZXJhdGlvbiBzaG91bGQgZmFpbCBiZWNhdXNlIHN0b3JhZ2UgbGltaXQg
aXMgcmVhY2hlZCwgYnV0IHN1Y2NlZWRlZC4iKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICAgIGZpbmlzaFRlc3QoKTsKICAgICB9CiB9CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKSB7
CisgICAgdGVzdFJ1bm5lci5zZXRRdW90YUxvZ2dpbmdFbmFibGVkKGZhbHNlKTsKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKK30KIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423006</attachid>
            <date>2021-03-11 19:25:23 -0800</date>
            <delta_ts>2021-03-11 20:42:32 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-222995-20210311192522.patch</filename>
            <type>text/plain</type>
            <size>30279</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBkM2JlMmY4NTJmOTdk
NDlmZmFkN2QxZTkwYTk5ZmU5MDMyMDcwNy4uZjFmYzcyNzIxYWE1NGJmMjgwZWMzMjBlNTM3MTZl
OGE1MjQxZWExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTAzLTExICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwZS5jb20+CisKKyAgICAgICAgQWRkIHNvbWUgbG9nZ2luZyB0
byBoZWxwIGRlYnVnIGZsYWt5IHF1b3RhIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI5OTUKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vl
bm4gRmFibGV0LgorCisgICAgICAgIGh0dHAvdGVzdHMvSW5kZXhlZERCL3N0b3JhZ2UtbGltaXQq
IGhhdmUgYmVlbiBmbGFreSBvbiBib3RzIHNpbmNlIHRoZXkgd2VyZSBhZGRlZC4gQWRkIGFuIG9w
dGlvbiB0byBhbGxvdyAKKyAgICAgICAgcHJpbnRpbmcgc29tZSBsb2dnaW5nIGluIHRoZXNlIHRl
c3RzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0IGFzIG5vIGJlaGF2aW9yIGNoYW5nZSBpbiBxdW90
YSBtYW5hZ2VtZW50LgorCisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VRdW90YU1hbmFnZXI6OnJlcXVlc3RTcGFjZU9u
QmFja2dyb3VuZFRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlUXVvdGFNYW5hZ2Vy
Ojp0cnlHcmFudFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVF1b3RhTWFuYWdl
cjo6c2V0TG9nZ2luZ0VuYWJsZWQpOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVF1b3RhTWFu
YWdlci5oOgorCiAyMDIxLTAzLTExICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbQmlnU3VyIHdrMSBhcm02NF0gcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9sb25nbG9u
Z1Rlc3QuaHRtbCBpcyBhIGNvbnNpc3RlbnQgZmFpbHVyZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNmZlZDExNzc0
ZGI5MDYxYzQ4YTI3MTMyNGJlZjM1MGIxNTVhMmFkMi4uNzFkMjI5NzRiODNjZTQxMjFiNDc3MDRi
NWU1NWM3OWEyN2E3OWIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMS0wMy0xMSAg
U2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGUuY29tPgorCisgICAgICAgIEFkZCBzb21lIGxvZ2dp
bmcgdG8gaGVscCBkZWJ1ZyBmbGFreSBxdW90YSB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
WW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFF1b3RhTG9nZ2luZ0Vu
YWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c3RvcmFnZVF1b3RhTWFu
YWdlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoKKyAgICAgICAgKFdL
V2Vic2l0ZURhdGFTdG9yZVNldFF1b3RhTG9nZ2luZ0VuYWJsZWQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6c2V0UXVvdGFMb2dnaW5nRW5hYmxlZCk6CisgICAgICAgICogVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZTo6c2V0UXVvdGFMb2dnaW5nRW5hYmxlZCk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKwogMjAyMS0wMy0xMSAgQnJlbnQgRnVs
Z2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TLCBtYWNPU10gUmUtYWxs
b3cgV2ViQ29udGVudCBzYW5kYm94IHBlcm1pc3Npb25zIGZvciBzcGVjaWZpYyAvZXRjIGZpbGVz
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L0NoYW5nZUxvZwppbmRleCAxMWQzOWVlNTczMDRmYTI4MDFkMWZjYjgxMzNiYWNi
OTkzYjJlMDEyLi5mZGZlYTJlOTY0Nzg5YzY5YmNlMjIxZjg5OGZhOWIxMzUxMzNiYmMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTAzLTExICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwZS5jb20+CisKKyAgICAgICAgQWRkIHNvbWUgbG9nZ2luZyB0byBoZWxw
IGRlYnVnIGZsYWt5IHF1b3RhIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjI5OTUKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFi
bGV0LgorCisgICAgICAgICogU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwOgorICAgICAg
ICAoSW5Qcm9jZXNzSURCU2VydmVyOjpxdW90YU1hbmFnZXIpOgorCiAyMDIxLTAzLTEwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIFJldGFpblB0cjw+IC8g
T1NPYmplY3RQdHI8PiBtb3JlIGluIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U3RvcmFnZVF1b3RhTWFuYWdlci5jcHAKaW5kZXggMGM2MTNkMWE3MmRmZWE2NTljYjJlNzFhODIw
YWFhYjYwOWFhOTYxNS4uNDgwYmM1ZjRkMGFmMmFmM2I5OTQ0YjVmNzNmODFhNWRlMzJkNGFlYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VRdW90YU1hbmFnZXIuY3BwCkBA
IC03OCw3ICs3OCw4IEBAIFN0b3JhZ2VRdW90YU1hbmFnZXI6OkRlY2lzaW9uIFN0b3JhZ2VRdW90
YU1hbmFnZXI6OnJlcXVlc3RTcGFjZU9uQmFja2dyb3VuZFRocmVhCiAgICAgaWYgKHRyeUdyYW50
UmVxdWVzdChzcGFjZVJlcXVlc3RlZCkpCiAgICAgICAgIHJldHVybiBEZWNpc2lvbjo6R3JhbnQ7
CiAKLSAgICBtX3VzYWdlID0gbV91c2FnZUdldHRlcigpOworICAgIGF1dG8gc2hvdWxkUHJpbnRV
c2FnZURldGFpbCA9IG1fbG9nZ2luZ0VuYWJsZWQgPyBTaG91bGRQcmludFVzYWdlRGV0YWlsOjpZ
ZXMgOiBTaG91bGRQcmludFVzYWdlRGV0YWlsOjpObzsKKyAgICBtX3VzYWdlID0gbV91c2FnZUdl
dHRlcihzaG91bGRQcmludFVzYWdlRGV0YWlsKTsKICAgICB1cGRhdGVRdW90YUJhc2VkT25Vc2Fn
ZSgpOwogICAgIG1fcXVvdGFDb3VudERvd24gPSBtX3VzYWdlIDwgbV9xdW90YSA/IG1fcXVvdGEg
LSBtX3VzYWdlIDogMDsKICAgICBpZiAodHJ5R3JhbnRSZXF1ZXN0KHNwYWNlUmVxdWVzdGVkKSkK
QEAgLTEwMSw3ICsxMDIsNyBAQCBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpEZWNpc2lvbiBTdG9yYWdl
UXVvdGFNYW5hZ2VyOjpyZXF1ZXN0U3BhY2VPbkJhY2tncm91bmRUaHJlYQogCiAgICAgc2VtYXBo
b3JlLndhaXQoKTsKIAotICAgIG1fdXNhZ2UgPSBtX3VzYWdlR2V0dGVyKCk7CisgICAgbV91c2Fn
ZSA9IG1fdXNhZ2VHZXR0ZXIoc2hvdWxkUHJpbnRVc2FnZURldGFpbCk7CiAgICAgbV9xdW90YUNv
dW50RG93biA9IG1fdXNhZ2UgPCBtX3F1b3RhID8gbV9xdW90YSAtIG1fdXNhZ2UgOiAwOwogICAg
IHJldHVybiB0cnlHcmFudFJlcXVlc3Qoc3BhY2VSZXF1ZXN0ZWQpID8gRGVjaXNpb246OkdyYW50
IDogRGVjaXNpb246OkRlbnk7CiB9CkBAIC0xMDksNiArMTEwLDEwIEBAIFN0b3JhZ2VRdW90YU1h
bmFnZXI6OkRlY2lzaW9uIFN0b3JhZ2VRdW90YU1hbmFnZXI6OnJlcXVlc3RTcGFjZU9uQmFja2dy
b3VuZFRocmVhCiBib29sIFN0b3JhZ2VRdW90YU1hbmFnZXI6OnRyeUdyYW50UmVxdWVzdCh1aW50
NjRfdCBzcGFjZVJlcXVlc3RlZCkKIHsKICAgICBBU1NFUlQobV9xdW90YUNvdW50RG93bkxvY2su
aXNMb2NrZWQoKSk7CisKKyAgICBpZiAobV9sb2dnaW5nRW5hYmxlZCkKKyAgICAgICAgV1RGTG9n
QWx3YXlzKCIlcCAtIFN0b3JhZ2VRdW90YU1hbmFnZXIgdHJ5R3JhbnRSZXF1ZXN0IG1fcXVvdGEg
JWxsdSwgbV91c2FnZSAlbGx1LCBtX3F1b3RhQ291bnREb3duICVsbHUsIHNwYWNlUmVxdWVzdGVk
ICVsbHUiLCB0aGlzLCBtX3F1b3RhLCBtX3VzYWdlLCBtX3F1b3RhQ291bnREb3duLCBzcGFjZVJl
cXVlc3RlZCk7CisKICAgICBpZiAoc3BhY2VSZXF1ZXN0ZWQgPD0gbV9xdW90YUNvdW50RG93bikg
ewogICAgICAgICBtX3F1b3RhQ291bnREb3duIC09IHNwYWNlUmVxdWVzdGVkOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTE0Myw0ICsxNDgsOSBAQCB2b2lkIFN0b3JhZ2VRdW90YU1hbmFnZXI6
OnJlc2V0UXVvdGFGb3JUZXN0aW5nKCkKICAgICBtX3F1b3RhQ291bnREb3duID0gMDsKIH0KIAor
dm9pZCBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpzZXRMb2dnaW5nRW5hYmxlZChib29sIGVuYWJsZWQp
Cit7CisgICAgbV9sb2dnaW5nRW5hYmxlZCA9IGVuYWJsZWQ7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVF1b3Rh
TWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmgK
aW5kZXggOWJkZmRkNDdhMThhMTc2YzViYzMzZjRiODYyODkyMjM0YWQyOWFiMi4uYWViODAyZDgy
ZDg5OGZiNmFjOGQyYzRiYzgwOWVkMDljZDZlNThhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmgKQEAgLTM3LDcgKzM3LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgU3RvcmFnZVF1b3RhTWFuYWdlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxTdG9yYWdlUXVvdGFNYW5hZ2VyPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFN0b3Jh
Z2VRdW90YU1hbmFnZXI+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
LSAgICB1c2luZyBVc2FnZUdldHRlciA9IEZ1bmN0aW9uPHVpbnQ2NF90KCk+OworICAgIGVudW0g
Y2xhc3MgU2hvdWxkUHJpbnRVc2FnZURldGFpbCB7IE5vLCBZZXMgfTsKKyAgICB1c2luZyBVc2Fn
ZUdldHRlciA9IEZ1bmN0aW9uPHVpbnQ2NF90KFNob3VsZFByaW50VXNhZ2VEZXRhaWwpPjsKICAg
ICB1c2luZyBRdW90YUluY3JlYXNlUmVxdWVzdGVyID0gRnVuY3Rpb248dm9pZCh1aW50NjRfdCBj
dXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRVc2FnZSwgdWludDY0X3QgcmVxdWVzdGVkSW5j
cmVhc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8dWludDY0X3Q+KT4mJik+Owog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8U3RvcmFnZVF1b3RhTWFuYWdlcj4gY3JlYXRl
KHVpbnQ2NF90IHF1b3RhLCBVc2FnZUdldHRlciYmLCBRdW90YUluY3JlYXNlUmVxdWVzdGVyJiYp
OwogCkBAIC01Miw2ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cmVzZXRRdW90YVVwZGF0ZWRCYXNlZE9uVXNhZ2VGb3JUZXN0aW5nKCk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZXNldFF1b3RhRm9yVGVzdGluZygpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0TG9nZ2luZ0VuYWJsZWQoYm9vbCk7CiAKIHByaXZhdGU6CiAgICAgU3RvcmFnZVF1b3Rh
TWFuYWdlcih1aW50NjRfdCBxdW90YSwgVXNhZ2VHZXR0ZXImJiwgUXVvdGFJbmNyZWFzZVJlcXVl
c3RlciYmKTsKQEAgLTczLDYgKzc1LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFRlc3Qgb25seS4K
ICAgICB1aW50NjRfdCBtX2luaXRpYWxRdW90YSB7IDAgfTsKKyAgICBib29sIG1fbG9nZ2luZ0Vu
YWJsZWQgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBjNTM3ZWEy
OGQ5MWM1MDVhMjU4YjljODA2ZTdlODNjZTJjZjQwZTUxLi4yOGE4MTBjZDFiOTNkODRkNzBmYWE0
M2VjZTE1YjhjOTk0NDRmYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMjQwMSw2ICsyNDAxLDIwIEBAIHZvaWQgTmV0d29ya1By
b2Nlc3M6OnJlc2V0UXVvdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAordm9pZCBOZXR3b3JrUHJv
Y2Vzczo6c2V0UXVvdGFMb2dnaW5nRW5hYmxlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJv
b2wgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIGlmIChtX3F1b3RhTG9nZ2luZ0VuYWJsZWQgPT0gZW5hYmxlZCkKKyAgICAgICAg
cmV0dXJuOworICAgIG1fcXVvdGFMb2dnaW5nRW5hYmxlZCA9IGVuYWJsZWQ7CisKKyAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX3Nlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2Vyc0xvY2spOworICAgIGlm
IChhdXRvKiBzZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlciA9IG1fc2Vzc2lvblN0b3JhZ2VRdW90
YU1hbmFnZXJzLmdldChzZXNzaW9uSUQpKSB7CisgICAgICAgIGZvciAoYXV0byBzdG9yYWdlUXVv
dGFNYW5hZ2VyIDogc2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXItPmV4aXN0aW5nU3RvcmFnZVF1
b3RhTWFuYWdlcnMoKSkKKyAgICAgICAgICAgIHN0b3JhZ2VRdW90YU1hbmFnZXItPnNldExvZ2dp
bmdFbmFibGVkKG1fcXVvdGFMb2dnaW5nRW5hYmxlZCk7CisgICAgfQorICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlbmFtZU9yaWdpbkluV2Vic2l0
ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIG9sZE5hbWUsIGNvbnN0
IFVSTCYgbmV3TmFtZSwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byBh
Z2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwpAQCAtMjUwOSwxMyArMjUyMywxNyBAQCBSZWZQdHI8U3RvcmFnZVF1b3RhTWFu
YWdlcj4gTmV0d29ya1Byb2Nlc3M6OnN0b3JhZ2VRdW90YU1hbmFnZXIoUEFMOjpTZXNzaW9uSUQg
cwogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIGlkYlJvb3RQYXRoID0gc2Vzc2lv
blN0b3JhZ2VRdW90YU1hbmFnZXItPmlkYlJvb3RQYXRoKCk7CiAjZW5kaWYKLSAgICBTdG9yYWdl
UXVvdGFNYW5hZ2VyOjpVc2FnZUdldHRlciB1c2FnZUdldHRlciA9IFtjYWNoZVJvb3RQYXRoID0g
c2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFnZXItPmNhY2hlUm9vdFBhdGgoKS5pc29sYXRlZENvcHko
KSwgaWRiUm9vdFBhdGggPSBpZGJSb290UGF0aC5pc29sYXRlZENvcHkoKSwgb3JpZ2luID0gb3Jp
Z2luLmlzb2xhdGVkQ29weSgpXSgpIHsKKyAgICBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpVc2FnZUdl
dHRlciB1c2FnZUdldHRlciA9IFtjYWNoZVJvb3RQYXRoID0gc2Vzc2lvblN0b3JhZ2VRdW90YU1h
bmFnZXItPmNhY2hlUm9vdFBhdGgoKS5pc29sYXRlZENvcHkoKSwgaWRiUm9vdFBhdGggPSBpZGJS
b290UGF0aC5pc29sYXRlZENvcHkoKSwgb3JpZ2luID0gb3JpZ2luLmlzb2xhdGVkQ29weSgpXShT
dG9yYWdlUXVvdGFNYW5hZ2VyOjpTaG91bGRQcmludFVzYWdlRGV0YWlsIHNob3VsZFByaW50dXNh
Z2VEZXRhaWwpIHsKICAgICAgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogCi0gICAgICAg
IHVpbnQ2NF90IHVzYWdlID0gQ2FjaGVTdG9yYWdlOjpFbmdpbmU6OmRpc2tVc2FnZShjYWNoZVJv
b3RQYXRoLCBvcmlnaW4pOworICAgICAgICB1aW50NjRfdCBjYWNoZVVzYWdlID0gQ2FjaGVTdG9y
YWdlOjpFbmdpbmU6OmRpc2tVc2FnZShjYWNoZVJvb3RQYXRoLCBvcmlnaW4pOworICAgICAgICB1
aW50NjRfdCB1c2FnZSA9IGNhY2hlVXNhZ2U7CisKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKICAgICAgICAgdXNhZ2UgKz0gSURCU2VydmVyOjpJREJTZXJ2ZXI6OmRpc2tVc2FnZShpZGJS
b290UGF0aCwgb3JpZ2luKTsKICNlbmRpZgorICAgICAgICBpZiAoc2hvdWxkUHJpbnR1c2FnZURl
dGFpbCA9PSBTdG9yYWdlUXVvdGFNYW5hZ2VyOjpTaG91bGRQcmludFVzYWdlRGV0YWlsOjpZZXMp
CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIlN0b3JhZ2VRdW90YU1hbmFnZXI6OlVzYWdlR2V0
dGVyIENhY2hjZSB1c2FnZSAlbGx1LCBJREIgdXNhZ2UgJWxsdSIsIGNhY2hlVXNhZ2UsIHVzYWdl
KTsKIAogICAgICAgICByZXR1cm4gdXNhZ2U7CiAgICAgfTsKQEAgLTI1MjYsNyArMjU0NCw5IEBA
IFJlZlB0cjxTdG9yYWdlUXVvdGFNYW5hZ2VyPiBOZXR3b3JrUHJvY2Vzczo6c3RvcmFnZVF1b3Rh
TWFuYWdlcihQQUw6OlNlc3Npb25JRCBzCiAgICAgICAgIHJlcXVlc3RTdG9yYWdlU3BhY2Uoc2Vz
c2lvbklELCBvcmlnaW4sIGN1cnJlbnRRdW90YSwgY3VycmVudFNwYWNlLCByZXF1ZXN0ZWRJbmNy
ZWFzZSwgV1RGTW92ZShjYWxsYmFjaykpOwogICAgIH07CiAKLSAgICByZXR1cm4gc2Vzc2lvblN0
b3JhZ2VRdW90YU1hbmFnZXItPmVuc3VyZU9yaWdpblN0b3JhZ2VRdW90YU1hbmFnZXIob3JpZ2lu
LCBzZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlci0+ZGVmYXVsdFF1b3RhKG9yaWdpbiksIFdURk1v
dmUodXNhZ2VHZXR0ZXIpLCBXVEZNb3ZlKHF1b3RhSW5jcmVhc2VSZXF1ZXN0ZXIpKS5wdHIoKTsK
KyAgICBhdXRvIG9yaWdpblN0b3JhZ2VRdW90YU1hbmFnZXIgPSBzZXNzaW9uU3RvcmFnZVF1b3Rh
TWFuYWdlci0+ZW5zdXJlT3JpZ2luU3RvcmFnZVF1b3RhTWFuYWdlcihvcmlnaW4sIHNlc3Npb25T
dG9yYWdlUXVvdGFNYW5hZ2VyLT5kZWZhdWx0UXVvdGEob3JpZ2luKSwgV1RGTW92ZSh1c2FnZUdl
dHRlciksIFdURk1vdmUocXVvdGFJbmNyZWFzZVJlcXVlc3RlcikpLnB0cigpOworICAgIG9yaWdp
blN0b3JhZ2VRdW90YU1hbmFnZXItPnNldExvZ2dpbmdFbmFibGVkKG1fcXVvdGFMb2dnaW5nRW5h
YmxlZCk7CisgICAgcmV0dXJuIG9yaWdpblN0b3JhZ2VRdW90YU1hbmFnZXI7CiB9CiAKICNpZiAh
UExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmgKaW5kZXggNDg1N2U1OTY3N2Y5MTBmMzMxZTJkNmZhMzE5OGYwM2Q1ZjRhNDQ4Zi4u
MDc0MTc4ODk1MmQ1MTkzMTQxZjJjOGIzMmQ5MTllZTUzZmU3NmQ0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMzAzLDYgKzMwMyw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHN5bmNMb2NhbFN0b3JhZ2UoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKIAogICAgIHZvaWQgcmVzZXRRdW90YShQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFF1b3RhTG9nZ2luZ0VuYWJsZWQoUEFM
OjpTZXNzaW9uSUQsIGJvb2wgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIHJlbmFtZU9yaWdpbkluV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFVSTCYsIGNvbnN0IFVSTCYsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpAQCAtNTg1
LDYgKzU4Niw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgTG9jayBtX3Nlc3Npb25TdG9yYWdlUXVv
dGFNYW5hZ2Vyc0xvY2s7CiAgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgc3RkOjp1bmlxdWVf
cHRyPFNlc3Npb25TdG9yYWdlUXVvdGFNYW5hZ2VyPj4gbV9zZXNzaW9uU3RvcmFnZVF1b3RhTWFu
YWdlcnM7CisgICAgYm9vbCBtX3F1b3RhTG9nZ2luZ0VuYWJsZWQgeyBmYWxzZSB9OwogCiAgICAg
T3B0aW9uU2V0PE5ldHdvcmtDYWNoZTo6Q2FjaGVPcHRpb24+IG1fY2FjaGVPcHRpb25zOwogICAg
IFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lzdHJ5IG1fbWVzc2FnZVBvcnRDaGFubmVs
UmVnaXN0cnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA2MTQzMjJiNjZlM2EyYzQxYWNkYzkzMWFkMGI0
NmI0NmM1YjA4MjJkLi44YTMxYTdmNjk5NWM4MzNlZTZmYzhkZDU3Y2EwOGJhOTcxYTM0YWY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MubWVzc2FnZXMuaW4KQEAgLTE3OCw2ICsxNzgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJv
Y2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgUmVzZXRTZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0
Rm9yVGVzdGluZygpIC0+ICgpIFN5bmNocm9ub3VzCiAKICAgICBSZXNldFF1b3RhKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKKyAgICBTZXRRdW90YUxvZ2dpbmdFbmFibGVk
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBlbmFibGVkKSAtPiAoKSBBc3luYwogICAg
IAogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlOUykKICAgICBIYXNBcHBCb3VuZFNlc3Npb24o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoYm9vbCBoYXNBcHBCb3VuZFNlc3Npb24pIEFz
eW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVE
YXRhU3RvcmVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRl
RGF0YVN0b3JlUmVmLmNwcAppbmRleCBkOTIyODdkMzNkMDUyMWNiZTUyZTc1YWY5MmNjMzU0MTY1
NTZlMGE1Li4wNWQ2OTkyMDBjZTlhZGFkYzAzMmFkZDFjMjAzYTZmMzdmM2U5YTllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9y
ZVJlZi5jcHAKQEAgLTgzOCw2ICs4MzgsMTQgQEAgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVSZXNl
dFF1b3RhKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnQKICAg
ICB9KTsKIH0KIAordm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRRdW90YUxvZ2dpbmdFbmFibGVk
KFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGJvb2wgZW5hYmxlZCwgdm9pZCog
Y29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlU2V0UXVvdGFMb2dnaW5nRW5hYmxlZENhbGxiYWNr
IGNhbGxiYWNrKQoreworICAgIFdlYktpdDo6dG9JbXBsKGRhdGFTdG9yZVJlZiktPnNldFF1b3Rh
TG9nZ2luZ0VuYWJsZWQoZW5hYmxlZCwgW2NvbnRleHQsIGNhbGxiYWNrXSB7CisgICAgICAgIGlm
IChjYWxsYmFjaykKKyAgICAgICAgICAgIGNhbGxiYWNrKGNvbnRleHQpOworICAgIH0pOworfQor
CiB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQXBwQm91bmRTZXNzaW9uKFdLV2Vic2l0ZURh
dGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9y
ZUNsZWFyQXBwQm91bmRTZXNzaW9uRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCiB7CiAjaWYg
RU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaAppbmRleCBkNWM5ZWVlMmE0MDRmZDNj
YjQ3YzlmODc3MzVjMzk3NjgxZDI5M2E3Li44M2RhNGEzOTZkMjdjMmI2NzNkMDFlZmEyYzdlNTQ3
OTU5MzM3MTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dl
YnNpdGVEYXRhU3RvcmVSZWYuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1dlYnNpdGVEYXRhU3RvcmVSZWYuaApAQCAtMTk0LDYgKzE5NCw5IEBAIFdLX0VYUE9SVCB2b2lk
IFdLV2Vic2l0ZURhdGFTdG9yZVNldENhY2hlTW9kZWxTeW5jaHJvbm91c2x5Rm9yVGVzdGluZyhX
S1dlYnNpdGVECiB0eXBlZGVmIHZvaWQgKCpXS1dlYnNpdGVEYXRhU3RvcmVSZXNldFF1b3RhQ2Fs
bGJhY2spKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVSZXNldFF1b3RhKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZv
aWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVJlc2V0UXVvdGFDYWxsYmFjayBjYWxsYmFj
ayk7CiAKK3R5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZVNldFF1b3RhTG9nZ2luZ0Vu
YWJsZWRDYWxsYmFjaykodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdL
V2Vic2l0ZURhdGFTdG9yZVNldFF1b3RhTG9nZ2luZ0VuYWJsZWQoV0tXZWJzaXRlRGF0YVN0b3Jl
UmVmIGRhdGFTdG9yZVJlZiwgYm9vbCBlbmFibGVkLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVE
YXRhU3RvcmVTZXRRdW90YUxvZ2dpbmdFbmFibGVkQ2FsbGJhY2sgY2FsbGJhY2spOworCiB0eXBl
ZGVmIHZvaWQgKCpXS1dlYnNpdGVEYXRhU3RvcmVDbGVhckFwcEJvdW5kU2Vzc2lvbkZ1bmN0aW9u
KSh2b2lkKiBmdW5jdGlvbkNvbnRleHQpOwogV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0
b3JlQ2xlYXJBcHBCb3VuZFNlc3Npb24oV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJl
Ziwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJBcHBCb3VuZFNlc3Npb25G
dW5jdGlvbiBjb21wbGV0aW9uSGFuZGxlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDEwNjJiYWNk
NTgzMzNiYTU0ZTA5ZTZlOTMwZTU4MWNlYTE3MTBhNjMuLjIwNWYxNjlkYzliM2U2ZTI5ZDY0MWUw
MGEwOTRkMzc2MmQzY2Q1MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTYwNiw2ICsxNjA2LDExIEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVzZXRRdW90YShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIENvbXBsZXRpb25IYW5kbGVyCiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6UmVzZXRRdW90YShzZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UXVvdGFMb2dn
aW5nRW5hYmxlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgZW5hYmxlZCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFF1b3RhTG9nZ2luZ0VuYWJs
ZWQoc2Vzc2lvbklELCBlbmFibGVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQor
CiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpoYXNBcHBCb3VuZFNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRl
eCAxMzVmYzUzYmMwZjNmZWU2ZTZlMTVlZTc3MjJiODc1NzYzMGU1MzI4Li4wN2U3MTQzNjRmZWEy
NDBkZGJiYzJlYWNiMzNlYjhlYzMzODk3YTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMjQwLDYgKzI0MCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNzQ3Jhc2hlZCgpOwogICAgIAogICAg
IHZvaWQgcmVzZXRRdW90YShQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKKyAgICB2b2lkIHNldFF1b3RhTG9nZ2luZ0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQsIGJv
b2wgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIHZvaWQgcmVz
b3VyY2VMb2FkRGlkU2VuZFJlcXVlc3QoV2ViUGFnZVByb3h5SWRlbnRpZmllciwgUmVzb3VyY2VM
b2FkSW5mbyYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgT3B0aW9uYWw8SVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZT4mJik7CiAgICAgdm9pZCByZXNvdXJjZUxvYWREaWRQZXJmb3JtSFRUUFJl
ZGlyZWN0aW9uKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFJlc291cmNlTG9hZEluZm8mJiwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwCmluZGV4IDk1OGI4NGRlOTdlYzYwOGMxY2ZkODNjZjA1NTQ3OThiMmRhOTY1
NjcuLjg3ODE4ZWMwMjcwYzIxMzQ5NDMyNzU2NmQwZjEyNDg2Mjk5ZTRhMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwCkBAIC0yMDY3LDYgKzIwNjcsMTIgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZXNl
dFF1b3RhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAg
ICBuZXR3b3JrUHJvY2VzcygpLnJlc2V0UXVvdGEobV9zZXNzaW9uSUQsIFtjYWxsYmFja0FnZ3Jl
Z2F0b3JdIHsgfSk7CiB9CiAKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0UXVvdGFMb2dnaW5n
RW5hYmxlZChib29sIGVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdn
cmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBuZXR3b3Jr
UHJvY2VzcygpLnNldFF1b3RhTG9nZ2luZ0VuYWJsZWQobV9zZXNzaW9uSUQsIGVuYWJsZWQsIFtj
YWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7Cit9CisKICNpZiAhUExBVEZPUk0oQ09DT0EpCiBXVEY6
OlN0cmluZyBXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0TWVkaWFDYWNoZURpcmVjdG9yeSgpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmgKaW5kZXggZjI3Mzc4YTY1N2RjM2ViZDRkYjc4OTYzMWM5MzUzM2Q4M2EzYTFm
OC4uODM2MTJiMDU0OGI5OWIzZTg0MTZiMDYxZjk3ZTg4YzdlYjkxOWIzYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
aApAQCAtMzM2LDYgKzMzNiw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBodHRwM0VuYWJs
ZWQoKTsKIAogICAgIHZvaWQgcmVzZXRRdW90YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OworICAgIHZvaWQgc2V0UXVvdGFMb2dnaW5nRW5hYmxlZChib29sIGVuYWJsZWQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICNpZiBFTkFCTEUoQVBQX0JPVU5EX0RPTUFJTlMpCiAg
ICAgdm9pZCBoYXNBcHBCb3VuZFNlc3Npb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvSW5Qcm9j
ZXNzSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJ
REJTZXJ2ZXIuY3BwCmluZGV4IGE3OTZmMDgyMTFjZjc0NTI0ZjVkNDgzOTUzMjc2ZjgwNzg1Njg2
NTQuLmJiM2E0MDFhOWNhYmYzNTUyYzI1NzM3M2JhMGI4MmYzYzk1M2E1Y2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwCkBAIC03
NCw3ICs3NCw3IEBAIEluUHJvY2Vzc0lEQlNlcnZlcjo6fkluUHJvY2Vzc0lEQlNlcnZlcigpCiBT
dG9yYWdlUXVvdGFNYW5hZ2VyKiBJblByb2Nlc3NJREJTZXJ2ZXI6OnF1b3RhTWFuYWdlcihjb25z
dCBDbGllbnRPcmlnaW4mIG9yaWdpbikKIHsKICAgICByZXR1cm4gbV9xdW90YU1hbmFnZXJzLmVu
c3VyZShvcmlnaW4sIFtdIHsKLSAgICAgICAgcmV0dXJuIFN0b3JhZ2VRdW90YU1hbmFnZXI6OmNy
ZWF0ZShTdG9yYWdlUXVvdGFNYW5hZ2VyOjpkZWZhdWx0UXVvdGEoKSwgW10geworICAgICAgICBy
ZXR1cm4gU3RvcmFnZVF1b3RhTWFuYWdlcjo6Y3JlYXRlKFN0b3JhZ2VRdW90YU1hbmFnZXI6OmRl
ZmF1bHRRdW90YSgpLCBbXShhdXRvKSB7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAg
fSwgW10odWludDY0X3QgcXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRTcGFjZSwgdWludDY0X3Qgc3Bh
Y2VJbmNyZWFzZSwgYXV0byBjYWxsYmFjaykgewogICAgICAgICAgICAgY2FsbGJhY2socXVvdGEg
KyBjdXJyZW50U3BhY2UgKyBzcGFjZUluY3JlYXNlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5MjNjNWFmNzk0ZDAxNTg4NTA3MDZmNWRmOTBk
NzEzMmU4NDU4OThhLi4yYzg4NGFlYjg5ZmFjNDBiM2QxMGQ1OWNiZjU3MmYyNGQwMmUyYWJkIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMjEtMDMtMTEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKwor
ICAgICAgICBBZGQgc29tZSBsb2dnaW5nIHRvIGhlbHAgZGVidWcgZmxha3kgcXVvdGEgdGVzdHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjk5NQor
CisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFF1b3RhTG9nZ2luZ0VuYWJsZWQpOgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjpzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQp
OgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkdyYW50ZWQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0UXVvdGFMb2dnaW5nRW5hYmxlZCk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0
SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRs
ZSk6CisKIDIwMjEtMDMtMTEgIEFtaXIgTWFyayBKciAgPGFtaXJfbWFya0BhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkaW5nIG15c2VsZiBhcyBhIGNvbW1pdHRlciBpbiB0aGUgY29udHJpYnV0b3Jz
IGZpbGUgCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA0N2FiMTE1NjA1ZGJjNTM1M2Q2
NmNjM2FkM2QwYWU1NWMxMjBmYjlkLi4wOGRhOTBhY2YyMzgwYzIyMmY0YmEyMWM4NTgzOGM1ZmQ3
N2M5ZjI0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTEzMSw2ICsxMzEsNyBAQCBp
bnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgLy8gTG9jYWwgc3RvcmFnZSBBUEkKICAgICB1bmRl
ZmluZWQgY2xlYXJBbGxEYXRhYmFzZXMoKTsKICAgICB1bmRlZmluZWQgc2V0RGF0YWJhc2VRdW90
YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpOworICAgIHVuZGVmaW5lZCBzZXRRdW90YUxvZ2dp
bmdFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CiAgICAgRE9NU3RyaW5nIHBhdGhUb0xvY2FsUmVz
b3VyY2UoRE9NU3RyaW5nIHVybCk7CiAgICAgdW5kZWZpbmVkIHN5bmNMb2NhbFN0b3JhZ2UoKTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKaW5kZXggZWY4MzZkNTAxZDdkMWFkM2JmOGVjZjY1MGYzODRjMGM5YmM3ZjkyZS4u
YmVkZGJjZWMxMTM0NDVhNTFmODMyZjdhMDJiZmE0MDg0NDkzN2YwNSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0z
ODMsNiArMzgzLDExIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0RGF0YWJhc2VRdW90YSh1aW50NjRf
dCBxdW90YSkKICAgICByZXR1cm4gV0tCdW5kbGVTZXREYXRhYmFzZVF1b3RhKEluamVjdGVkQnVu
ZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgcXVvdGEpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6
OnNldFF1b3RhTG9nZ2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIHBvc3RTeW5jaHJv
bm91c1BhZ2VNZXNzYWdlKCJTZXRRdW90YUxvZ2dpbmdFbmFibGVkIiwgZW5hYmxlZCk7Cit9CisK
IHZvaWQgVGVzdFJ1bm5lcjo6c3luY0xvY2FsU3RvcmFnZSgpCiB7CiAgICAgcG9zdFN5bmNocm9u
b3VzTWVzc2FnZSgiU3luY0xvY2FsU3RvcmFnZSIsIHRydWUpOwpAQCAtMjEwNCwxMiArMjEwOSwx
MiBAQCB2b2lkIFRlc3RSdW5uZXI6OmRpZFNldEFwcEJvdW5kRG9tYWluc0NhbGxiYWNrKCkKIAog
dm9pZCBUZXN0UnVubmVyOjpzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQo
Ym9vbCBncmFudGVkKQogewotICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJzZXRJc1Nw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQiLCBncmFudGVkKTsKKyAgICBwb3N0U3lu
Y2hyb25vdXNQYWdlTWVzc2FnZSgiU2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFu
dGVkIiwgZ3JhbnRlZCk7CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6c2V0SXNNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25HcmFudGVkKGJvb2wgZ3JhbnRlZCkKIHsKLSAgICBwb3N0U3luY2hyb25vdXNQ
YWdlTWVzc2FnZSgic2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkIiwgZ3JhbnRl
ZCk7CisgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIlNldElzTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uR3JhbnRlZCIsIGdyYW50ZWQpOwogfQogCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmgKaW5kZXggMDUyOTM3YWU5Y2ZhYjVhZjc4NDc5NGY0YTE2MzczMDA3YTc1
NzYwMy4uMjFhMTJiYTYzMjc3ZDEwMjI1ZWQ3ZDYyZWM5NGM4Zjk3NzczYjZjOSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAg
LTE0MSw2ICsxNDEsNyBAQCBwdWJsaWM6CiAgICAgLy8gTG9jYWwgc3RvcmFnZQogICAgIHZvaWQg
Y2xlYXJBbGxEYXRhYmFzZXMoKTsKICAgICB2b2lkIHNldERhdGFiYXNlUXVvdGEodWludDY0X3Qp
OworICAgIHZvaWQgc2V0UXVvdGFMb2dnaW5nRW5hYmxlZChib29sKTsKICAgICBKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gcGF0aFRvTG9jYWxSZXNvdXJjZShKU1N0cmluZ1JlZik7CiAgICAgdm9p
ZCBzeW5jTG9jYWxTdG9yYWdlKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAKaW5kZXggMzlmZWU4OTAxMDJkNjJiOTkyMWMyZWUwODYyMDgwOGQyZmZkMjIyZS4u
ZTMyYTBmZDFiYjM3YzRkMWEyMDc2NmFlNWQxNmVjYjQ1MmMxMzQ2NSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTI5MDYsNiArMjkwNiwxMyBAQCB2b2lk
IFRlc3RDb250cm9sbGVyOjpyZXNldFF1b3RhKCkKICAgICBydW5VbnRpbChjb250ZXh0LmRvbmUs
IG5vVGltZW91dCk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFF1b3RhTG9nZ2luZ0Vu
YWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIFN0b3JhZ2VWb2lkQ2FsbGJhY2tDb250ZXh0IGNv
bnRleHQoKnRoaXMpOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldFF1b3RhTG9nZ2luZ0VuYWJs
ZWQoVGVzdENvbnRyb2xsZXI6OndlYnNpdGVEYXRhU3RvcmUoKSwgZW5hYmxlZCwgJmNvbnRleHQs
IFN0b3JhZ2VWb2lkQ2FsbGJhY2spOworICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1l
b3V0KTsKK30KKwogc3RydWN0IEZldGNoQ2FjaGVPcmlnaW5zQ2FsbGJhY2tDb250ZXh0IHsKICAg
ICBGZXRjaENhY2hlT3JpZ2luc0NhbGxiYWNrQ29udGV4dChUZXN0Q29udHJvbGxlciYgY29udHJv
bGxlciwgV0tTdHJpbmdSZWYgb3JpZ2luKQogICAgICAgICA6IHRlc3RDb250cm9sbGVyKGNvbnRy
b2xsZXIpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggYTA3M2Iz
MDEyMTZiMDhhYmY3NDQ4NzUzNGE4ZTViMTkyMzZlYWEyYS4uOGFjNzBhMzYwNGY3MWRlMjZmODdj
ZmMzYjY1N2RjZTAyYzMzNmVkMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaApAQCAtMjgxLDYgKzI4MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHRlcm1pbmF0ZVNlcnZp
Y2VXb3JrZXJzKCk7CiAKICAgICB2b2lkIHJlc2V0UXVvdGEoKTsKKyAgICB2b2lkIHNldFF1b3Rh
TG9nZ2luZ0VuYWJsZWQoYm9vbCk7CiAKICAgICB2b2lkIHJlbW92ZUFsbFNlc3Npb25DcmVkZW50
aWFscygpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4
IGNjNmM1NjU1YjcwZTliOWI3OWYwZWZkODQ0NzliYWRlNjMwMGJiMTEuLjE2ZmNkYjRkYjc5NGNk
MGE0MGNjNzA3ZTI1NmNlNzIxYmI3MjEyOTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCkBAIC0xMzc5LDE2ICsxMzc5LDIxIEBAIFdLUmV0YWluUHRyPFdLVHlw
ZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5q
ZWN0ZWRCCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlmIChXS1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAic2V0SXNTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25HcmFudGVkIikpIHsKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhtZXNzYWdlTmFtZSwgIlNldElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRl
ZCIpKSB7CiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRJc1NwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9vbGVhblZhbHVlKG1lc3NhZ2VCb2R5KSk7CiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAic2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25H
cmFudGVkIikpIHsKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdl
TmFtZSwgIlNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCIpKSB7CiAgICAgICAg
IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkdyYW50ZWQoYm9vbGVhblZhbHVlKG1lc3NhZ2VCb2R5KSk7CiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3Nh
Z2VOYW1lLCAiU2V0UXVvdGFMb2dnaW5nRW5hYmxlZCIpKSB7CisgICAgICAgIFRlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5zZXRRdW90YUxvZ2dpbmdFbmFibGVkKG1lc3NhZ2VCb2R5KTsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTFmNjYxYmEyYmM3OGY2Yjk5MDQ1MDc3
NjI3MzAyMmU3ZmZjMTQ4Yy4uYjAzNjYwNGU2MDhhNDk0NWViYjVmYzU4NDE2NjMyMWMxNGQ4NmVj
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTAzLTExICBTaWh1aSBMaXUgIDxzaWh1aV9s
aXVAYXBwZS5jb20+CisKKyAgICAgICAgQWRkIHNvbWUgbG9nZ2luZyB0byBoZWxwIGRlYnVnIGZs
YWt5IHF1b3RhIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjI5OTUKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisg
ICAgICAgICogaHR0cC90ZXN0cy9JbmRleGVkREIvc3RvcmFnZS1saW1pdC0xLmh0dHBzLmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy9JbmRleGVkREIvc3RvcmFnZS1saW1pdC0yLmh0dHBzLmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9JbmRleGVkREIvc3RvcmFnZS1saW1pdC5odHRwcy5o
dG1sOgorCiAyMDIxLTAzLTExICBBbWlyIE1hcmsgSnIgIDxhbWlyX21hcmtAYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04gKHIyNzQyNjQpIFtNYWNPUyBXazFdIGNvbXBvc2l0aW5nL3Zp
c2liaWxpdHkvaWZyYW1lLXZpc2liaWxpdHktaGlkZGVuLmh0bWwgaXMgYSBmbGFrZXkgaW1hZ2Ug
ZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9JbmRleGVkREIvc3Rv
cmFnZS1saW1pdC0xLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL0luZGV4ZWRE
Qi9zdG9yYWdlLWxpbWl0LTEuaHR0cHMuaHRtbAppbmRleCAzNTBlM2UzYTNjZGI0NTE1ZmJhZGZi
OWY3NGM0ODQ1OWQ4MTgyZDJmLi5kMmRiOTVkZTI3NDBjOGIyNDg4YzFlOTU5MGQ3NTY5OWE1M2E2
NWM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL0luZGV4ZWREQi9zdG9yYWdl
LWxpbWl0LTEuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL0luZGV4ZWRE
Qi9zdG9yYWdlLWxpbWl0LTEuaHR0cHMuaHRtbApAQCAtNSwxMCArNSwxMiBAQAogPC9oZWFkPgog
PGJvZHk+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQoraWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5zZXRRdW90YUxvZ2dpbmdFbmFibGVkKHRydWUpOwog
ICAgIHRlc3RSdW5uZXIuc2V0QWxsb3dTdG9yYWdlUXVvdGFJbmNyZWFzZShmYWxzZSk7Cit9CiAK
LWRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IHN0b3JhZ2Ugb2YgaW5kZXhl
ZERCICBhbmQgQ2FjaGUgQVBJIGRvIG5vdCBncm93IHVuYm91bmRlZGx5LiIpOworZGVzY3JpcHRp
b24oIlRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgc3RvcmFnZSBvZiBpbmRleGVkREIgYW5kIENh
Y2hlIEFQSSBkbyBub3QgZ3JvdyB1bmJvdW5kZWRseS4iKTsKIAogd2luZG93LmNhY2hlcy5vcGVu
KCJ0ZXN0IikudGhlbihjYWNoZSA9PiB7CiAgICAgcmV0dXJuIGNhY2hlLnB1dChuZXcgUmVxdWVz
dCgiL3Rlc3QiKSwgbmV3IFJlc3BvbnNlKG5ldyBVaW50OEFycmF5KDIwMCAqIDEwMjQpKSk7CkBA
IC0yNSw3ICsyNyw3IEBAIHdpbmRvdy5jYWNoZXMub3BlbigidGVzdCIpLnRoZW4oY2FjaGUgPT4g
ewogICAgIGluZGV4ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCBvbk9wZW5TdWNjZXNzLCB7J3N1
ZmZpeCc6ICctMSd9KTsKIH0pLmNhdGNoKGUgPT4gewogICAgIHRlc3RGYWlsZWQoIkNhY2hlIEFQ
SSBzdG9yZSBvcGVyYXRpb24gZmFpbGVkOiAiICsgZSk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgZmluaXNoVGVzdCgpOwogfSk7CiAKIGZ1bmN0aW9uIHByZXBhcmVEYXRhYmFzZShldmVudCkK
QEAgLTQ1LDEzICs0NywxOSBAQCBhc3luYyBmdW5jdGlvbiBvbk9wZW5TdWNjZXNzKGV2ZW50KQog
ICAgICAgICBzaG91bGRCZVRydWUoIidlcnJvcicgaW4gcmVxdWVzdCIpOwogICAgICAgICBzaG91
bGRCZSgicmVxdWVzdC5lcnJvci5jb2RlIiwgIkRPTUV4Y2VwdGlvbi5RVU9UQV9FWENFRURFRF9F
UlIiKTsKICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXF1ZXN0LmVycm9yLm5hbWUi
LCAiUXVvdGFFeGNlZWRlZEVycm9yIik7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAg
ICBmaW5pc2hUZXN0KCk7CiAgICAgfQogCiAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihldmVudCkgewogICAgICAgICB0ZXN0RmFpbGVkKCJBZGQgb3BlcmF0aW9uIHNob3VsZCBmYWls
IGJlY2F1c2Ugc3RvcmFnZSBsaW1pdCBpcyByZWFjaGVkLCBidXQgc3VjY2VlZGVkLiIpOwotICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgZmluaXNoVGVzdCgpOwogICAgIH0KLX08L3Nj
cmlwdD4KK30KKworZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICB0ZXN0UnVubmVyLnNldFF1
b3RhTG9nZ2luZ0VuYWJsZWQoZmFsc2UpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9zY3Jp
cHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L0luZGV4ZWREQi9zdG9yYWdlLWxpbWl0LTIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvSW5kZXhlZERCL3N0b3JhZ2UtbGltaXQtMi5odHRwcy5odG1sCmluZGV4IDQyNzE4ZWNh
ODY1YjAwYzU3MzE3NjNlZTIxYjk2MWVhYzI3ZDA0OTIuLjBhMTlhNzJiZDI0ZWY3MjdlODU2YWIy
ODU5M2MwYTEyOTE2ZmM0NzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvSW5k
ZXhlZERCL3N0b3JhZ2UtbGltaXQtMi5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvSW5kZXhlZERCL3N0b3JhZ2UtbGltaXQtMi5odHRwcy5odG1sCkBAIC01LDggKzUsMTAg
QEAKIDwvaGVhZD4KIDxib2R5PgogPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuc2V0UXVvdGFMb2dnaW5nRW5h
YmxlZCh0cnVlKTsKICAgICB0ZXN0UnVubmVyLnNldEFsbG93U3RvcmFnZVF1b3RhSW5jcmVhc2Uo
ZmFsc2UpOworfQogCiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBzdG9y
YWdlIG9mIGluZGV4ZWREQiBhbmQgQ2FjaGUgQVBJIGRvIG5vdCBncm93IHVuYm91bmRlZGx5LiIp
OwogCkBAIC0yNyw3ICsyOSw3IEBAIGFzeW5jIGZ1bmN0aW9uIG9uT3BlblN1Y2Nlc3MoZXZlbnQp
CiAgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IHN0b3JlLmFkZChuZXcgVWludDhBcnJheSgyMDQ4
MDApLCAna2V5JykiKTsKICAgICByZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgewog
ICAgICAgICB0ZXN0RmFpbGVkKCJBZGQgb3BlcmF0aW9uIHNob3VsZCBmYWlsIGJlY2F1c2Ugc3Rv
cmFnZSBsaW1pdCBpcyByZWFjaGVkLCBidXQgc3VjY2VlZGVkLiIpOwotICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICAgICAgZmluaXNoVGVzdCgpOwogICAgIH0KIAogICAgIHJlcXVlc3Qub25z
dWNjZXNzID0gYXN5bmMgKGV2ZW50KSA9PiB7CkBAIC01MSwxMiArNTMsMTcgQEAgZnVuY3Rpb24g
Y2FjaGVUZXN0KCkKICAgICAgICAgcmV0dXJuIGNhY2hlLnB1dChuZXcgUmVxdWVzdCgiL3Rlc3Qi
KSwgbmV3IFJlc3BvbnNlKG5ldyBVaW50OEFycmF5KDMwNDgwMCkpKTsKICAgICB9KS50aGVuKCgp
ID0+IHsKICAgICAgICAgdGVzdEZhaWxlZCgiQ2FjaGUgQVBJIHN0b3JlIG9wZXJhdGlvbiBzdWNj
ZWVkZWQiKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIGZpbmlzaFRlc3QoKTsK
ICAgICB9KS5jYXRjaChlID0+IHsKICAgICAgICAgZGVidWcoIkNhY2hlIEFQSSBzdG9yZSBvcGVy
YXRpb24gZmFpbGVkOiAiICsgZSk7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICBm
aW5pc2hUZXN0KCk7CiAgICAgfSk7CiB9CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAg
dGVzdFJ1bm5lci5zZXRRdW90YUxvZ2dpbmdFbmFibGVkKGZhbHNlKTsKKyAgICBmaW5pc2hKU1Rl
c3QoKTsKK30KIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9JbmRleGVkREIvc3RvcmFnZS1saW1pdC5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9JbmRleGVkREIvc3RvcmFnZS1saW1pdC5odHRwcy5odG1sCmlu
ZGV4IDdlYjkyOTk3YTE2MTE5OGY0YThiMTVlOWNiMTM4MmRhZTI4ZTUxMjAuLjRiZmQ2ZDAwM2Zh
YWI0MWViYTBiOGYwOTVlODI0ZmRlOTk4ZjA3OTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvSW5kZXhlZERCL3N0b3JhZ2UtbGltaXQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL0luZGV4ZWREQi9zdG9yYWdlLWxpbWl0Lmh0dHBzLmh0bWwKQEAgLTUs
OCArNSwxMCBAQAogPC9oZWFkPgogPGJvZHk+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5zZXRRdW90YUxv
Z2dpbmdFbmFibGVkKHRydWUpOwogICAgIHRlc3RSdW5uZXIuc2V0QWxsb3dTdG9yYWdlUXVvdGFJ
bmNyZWFzZShmYWxzZSk7Cit9CiAKIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgbWFrZXMgc3VyZSB0
aGF0IHN0b3JhZ2Ugb2YgaW5kZXhlZERCIGRvZXMgbm90IGdyb3cgdW5ib3VuZGVkbHkuIik7CiAK
QEAgLTE2LDcgKzE4LDcgQEAgd2luZG93LmNhY2hlcy5vcGVuKCJ0ZXN0IikudGhlbihjYWNoZSA9
PiB7CiAgICAgaW5kZXhlZERCVGVzdChwcmVwYXJlRGF0YWJhc2UsIG9uT3BlblN1Y2Nlc3MsIHsn
c3VmZml4JzogJy0xJ30pOwogfSkuY2F0Y2goZSA9PiB7CiAgICAgdGVzdEZhaWxlZCgiQ2FjaGUg
QVBJIHN0b3JlIG9wZXJhdGlvbiBmYWlsZWQ6ICIgKyBlKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICBmaW5pc2hUZXN0KCk7CiB9KTsKIAogZnVuY3Rpb24gcHJlcGFyZURhdGFiYXNlKGV2ZW50
KQpAQCAtMzYsMTQgKzM4LDE5IEBAIGFzeW5jIGZ1bmN0aW9uIG9uT3BlblN1Y2Nlc3MoZXZlbnQp
CiAgICAgICAgIHNob3VsZEJlVHJ1ZSgiJ2Vycm9yJyBpbiByZXF1ZXN0Iik7CiAgICAgICAgIHNo
b3VsZEJlKCJyZXF1ZXN0LmVycm9yLmNvZGUiLCAiRE9NRXhjZXB0aW9uLlFVT1RBX0VYQ0VFREVE
X0VSUiIpOwogICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlcXVlc3QuZXJyb3IubmFt
ZSIsICJRdW90YUV4Y2VlZGVkRXJyb3IiKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
ICAgIGZpbmlzaFRlc3QoKTsKICAgICB9CiAKICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKGV2ZW50KSB7CiAgICAgICAgIHRlc3RGYWlsZWQoIkFkZCBvcGVyYXRpb24gc2hvdWxkIGZh
aWwgYmVjYXVzZSBzdG9yYWdlIGxpbWl0IGlzIHJlYWNoZWQsIGJ1dCBzdWNjZWVkZWQuIik7Ci0g
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICBmaW5pc2hUZXN0KCk7CiAgICAgfQogfQor
CitmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgIHRlc3RSdW5uZXIuc2V0UXVvdGFMb2dnaW5n
RW5hYmxlZChmYWxzZSk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CiA8L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>