<?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>231803</bug_id>
          
          <creation_ts>2021-10-15 05:25:32 -0700</creation_ts>
          <short_desc>Add support for requestVideoFrameCallback API and MediaStreamTrack-based backend support</short_desc>
          <delta_ts>2021-10-20 06:27:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>211945</blocked>
    
    <blocked>231945</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>annulen</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>clopez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>tomac</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>will.morgan</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1804770</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-15 05:25:32 -0700</bug_when>
    <thetext>Add support for requestVideoFrameCallback API and MediaStreamTrack-based backend support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804772</commentid>
    <comment_count>1</comment_count>
      <attachid>441367</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-15 05:34:53 -0700</bug_when>
    <thetext>Created attachment 441367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804787</commentid>
    <comment_count>2</comment_count>
      <attachid>441372</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-15 06:46:44 -0700</bug_when>
    <thetext>Created attachment 441372
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804796</commentid>
    <comment_count>3</comment_count>
      <attachid>441376</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-15 07:15:06 -0700</bug_when>
    <thetext>Created attachment 441376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804834</commentid>
    <comment_count>4</comment_count>
      <attachid>441376</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-10-15 09:00:23 -0700</bug_when>
    <thetext>Comment on attachment 441376
Patch

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

&gt; Source/WebCore/html/HTMLVideoElement.cpp:585
&gt; +    auto identifier =  ++m_nextVideoFrameRequestIndex;

Nit: extra space</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805548</commentid>
    <comment_count>5</comment_count>
      <attachid>441594</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-18 06:01:38 -0700</bug_when>
    <thetext>Created attachment 441594
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805569</commentid>
    <comment_count>6</comment_count>
      <attachid>441603</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-18 07:47:07 -0700</bug_when>
    <thetext>Created attachment 441603
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805895</commentid>
    <comment_count>7</comment_count>
      <attachid>441603</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-18 23:50:55 -0700</bug_when>
    <thetext>Comment on attachment 441603
Patch

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

&gt; Source/WebCore/html/HTMLVideoElement.cpp:585
&gt; +    auto identifier =  ++m_nextVideoFrameRequestIndex;

Should fix the space, as noticed by Eric.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805939</commentid>
    <comment_count>8</comment_count>
      <attachid>441707</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-19 03:46:48 -0700</bug_when>
    <thetext>Created attachment 441707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806024</commentid>
    <comment_count>9</comment_count>
      <attachid>441707</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-10-19 08:37:31 -0700</bug_when>
    <thetext>Comment on attachment 441707
Patch

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

&gt; Source/WebCore/html/HTMLVideoElement.cpp:583
&gt; +    if (m_nextVideoFrameRequestIndex == std::numeric_limits&lt;unsigned&gt;::max())
&gt; +        return 0;

This probably log an error, possibly also to the JS console</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806187</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-19 11:33:19 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #9)
&gt; Comment on attachment 441707 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441707&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLVideoElement.cpp:583
&gt; &gt; +    if (m_nextVideoFrameRequestIndex == std::numeric_limits&lt;unsigned&gt;::max())
&gt; &gt; +        return 0;
&gt; 
&gt; This probably log an error, possibly also to the JS console

Given we are using a Vector, I guess we should just remove this check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806528</commentid>
    <comment_count>11</comment_count>
      <attachid>441855</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-20 00:26:05 -0700</bug_when>
    <thetext>Created attachment 441855
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806552</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-20 02:42:34 -0700</bug_when>
    <thetext>ChangeLog entry in Source/WTF/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806564</commentid>
    <comment_count>13</comment_count>
      <attachid>441864</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-20 04:06:05 -0700</bug_when>
    <thetext>Created attachment 441864
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806590</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-20 06:26:30 -0700</bug_when>
    <thetext>Committed r284528 (243270@main): &lt;https://commits.webkit.org/243270@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441864.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806591</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-20 06:27:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/84459428&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441367</attachid>
            <date>2021-10-15 05:34:53 -0700</date>
            <delta_ts>2021-10-15 06:46:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231803-20211015143450.patch</filename>
            <type>text/plain</type>
            <size>90995</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGRhMzViMzI3MGYyNDk1NjY2M2ZhY2U2
YzJhYzllMDkxMzBmYTMyZmYuLmI1YWE1ODYyOTkxNjA3MzZmMjEzMzNjMmVmNjQyNmRkMmRmNmU2
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTAtMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrIEFQSSBhbmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwMwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorCiAyMDIxLTEw
LTA4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIGRl
ZmF1bHRBbHRlcm5hdGVGb3JtQ29udHJvbERlc2lnbkVuYWJsZWQoKSBjYW4ndCByZWFkIFVJVXNl
ckludGVyZmFjZUlkaW9tIGluIHRoZSBXZWIgQ29udGVudCBwcm9jZXNzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTM1YWU1YmRmYmE2NmRlYTMxZDViZTJjZjQ5NjBlYzZiNTk4YjhkNC4uMzAyY2RmY2VlNDRkZDNh
Mjg4M2JhNDdmMmQyYWEwZGYzNjA3YmFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisy
MDIxLTEwLTE1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgcmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayBBUEkgYW5kIE1lZGlhU3Ry
ZWFtVHJhY2stYmFzZWQgYmFja2VuZCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE4MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgV2ViSURMIHRvIGV4cG9zZSBodHRwczovL3dp
Y2cuZ2l0aHViLmlvL3ZpZGVvLXJ2ZmMvIEFQSS4KKyAgICAgICAgUHV0IHRoZW0gYmVoaW5kIGEg
cnVudGltZSBmbGFnLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgYWxnb3JpdGhtcywg
aW5jbHVkaW5nIHRoZSBpbnRlZ3JhdGlvbiB3aXRoIHRoZSAndXBkYXRlIHRoZSByZW5kZXJpbmcn
IGFsZ29yaXRobS4KKyAgICAgICAgQWRkIGluaXRpYWwgc3VwcG9ydCBmb3IgdmlkZW8gZWxlbWVu
dHMgYmFja2VkIGJ5IE1lZGlhU3RyZWFtIGNvbnRlbnQuCisgICAgICAgIFdlIGV4cG9zZSBhIGxp
bWl0ZWQgc2V0IG9mIG1ldGFkYXRhIGN1cnJlbnRseSwgZm9sbG93LXVwIHBhdGNoZXMgc2hvdWxk
IGFkZCBzdXBwb3J0IGZvciBvdGhlciB2aWRlbyBiYWNrZW5kcyBhbmQgbW9yZSBtZXRhZGF0YS4K
KyAgICAgICAgVGhpcyBzdXBwb3J0IHNob3VsZCBzdGlsbCBlbmFibGUgdG8gb3B0aW1pemUgYSBi
aXQgTWVkaWFTdHJlYW1UcmFjayAtPiBjYW52YXMgcGlwZWxpbmVzLgorCisgICAgICAgIFRlc3Rz
OiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ydmZjLmh0bWwKKyAgICAgICAgICAgICAg
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndp
bmRvdy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHItc2Vzc2lv
bi5odHRwcy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kb20uaHRtbAorICAg
ICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3Jl
cXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMuaHRtbAor
ICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZj
L3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwuaHRtbAorICAgICAgICAgICAg
ICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNh
bGxiYWNrLXdlYnJ0Yy5odHRwcy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay5o
dG1sCisgICAgICAgICAgICAgICB3ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy5odG1sCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogSGVhZGVycy5jbWFrZToK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAg
KiBodG1sL0hUTUxWaWRlb0VsZW1lbnQrUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjay5pZGw6IEFk
ZGVkLgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHA6CisgICAgICAgICogaHRt
bC9IVE1MVmlkZW9FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9WaWRlb0ZyYW1lTWV0YWRhdGEu
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaDog
QWRkZWQuCisgICAgICAgICogaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbDogQWRk
ZWQuCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9WaWRlb0ZyYW1lTWV0YWRhdGEuaDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tOgorCiAyMDIxLTEwLTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2UgTWVkaWFDYXBhYmlsaXRpZXMgdG8gV29ya2Vy
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA2ZTllNmY2ZmQ0NWVkNTA4NmQxMjM0
ZTc3YzIwMWY4OGNjMDBkYjNmLi45MmE4ODUyYmM0ODY0OTk4MTgxOWZjMTIzNDY3NDQ5ZmNiZDZk
ODY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTEwOSw2ICsxMTA5LDE4IEBA
IFJlcXVlc3RTdWJtaXRFbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxz
ZQogCitSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBo
dW1hblJlYWRhYmxlTmFtZTogIlJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2siCisgIGh1bWFuUmVh
ZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSIK
KyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNl
CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAg
ZGVmYXVsdDogZmFsc2UKKwogIyBGSVhNRTogVGhpcyBpcyBvbiBieSBkZWZhdWx0IGluIFdlYktp
dDIuIFBlcmhhcHMgd2Ugc2hvdWxkIGNvbnNpZGVyIHR1cm5pbmcgaXQgb24gZm9yIFdlYktpdExl
Z2FjeSBhcyB3ZWxsLgogUmVzaXplT2JzZXJ2ZXJFbmFibGVkOgogICB0eXBlOiBib29sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IDczMWQzMjlkMTA5ZWYyM2UwNDVlMjMwN2ZlYmQ1MGZjMTRiYmFj
YjYuLjFjNzg1NTQ3MDY5Yjc0Zjk5NjE5N2Q5OTgzMmY4OGVmNDFmZTUxOTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0xMDM0LDYgKzEwMzQsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9G
SUxFUwogICAgIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwKICAgICBodG1sL0hUTUxVTGlzdEVs
ZW1lbnQuaWRsCiAgICAgaHRtbC9IVE1MVW5rbm93bkVsZW1lbnQuaWRsCisgICAgaHRtbC9IVE1M
VmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRsCiAgICAgaHRtbC9IVE1M
VmlkZW9FbGVtZW50LmlkbAogICAgIGh0bWwvSW1hZ2VCaXRtYXAuaWRsCiAgICAgaHRtbC9JbWFn
ZUJpdG1hcE9wdGlvbnMuaWRsCkBAIC0xMDQ5LDYgKzEwNTAsOCBAQCBzZXQoV2ViQ29yZV9OT05f
U1ZHX0lETF9GSUxFUwogICAgIGh0bWwvVGltZVJhbmdlcy5pZGwKICAgICBodG1sL1VSTFNlYXJj
aFBhcmFtcy5pZGwKICAgICBodG1sL1ZhbGlkaXR5U3RhdGUuaWRsCisgICAgaHRtbC9WaWRlb0Zy
YW1lTWV0YWRhdGEuaWRsCisgICAgaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbAog
ICAgIGh0bWwvVm9pZENhbGxiYWNrLmlkbAogCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzQ29tcG9z
aXRpbmcuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAppbmRleCAxODZhN2E0MTI3NmI0YmIwNzE5Yzk5NDIzOTM4MDYxNWJlMjFhZTQxLi45Y2Ux
NmUzZTQ3MDhmMDNhOGEwYmQ1ZjUwYzgyZTVmYTVjNzM0ZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwMDYsNiArMTAwNiw3IEBA
ICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTExpbmtFbGVtZW50LmlkbAogJChQUk9KRUNUX0RJUikv
aHRtbC9IVE1MTWFwRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTE1hcnF1ZWVF
bGVtZW50LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0
cHV0LmlkbAorJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWVkaWFFbGVtZW50K1JlcXVlc3RWaWRl
b0ZyYW1lQ2FsbGJhY2suaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxNZW51RWxlbWVudC5pZGwKICQoUFJPSkVDVF9E
SVIpL2h0bWwvSFRNTE1lbnVJdGVtRWxlbWVudC5pZGwKQEAgLTEwNDUsNiArMTA0Niw3IEBAICQo
UFJPSkVDVF9ESVIpL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0
bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTFVMaXN0RWxl
bWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTFVua25vd25FbGVtZW50LmlkbAorJChQ
Uk9KRUNUX0RJUikvaHRtbC9IVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2suaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaWRsCiAkKFBST0pF
Q1RfRElSKS9odG1sL0ltYWdlQml0bWFwLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9JbWFnZUJp
dG1hcE9wdGlvbnMuaWRsCkBAIC0xMDYwLDYgKzEwNjIsOCBAQCAkKFBST0pFQ1RfRElSKS9odG1s
L1RleHRNZXRyaWNzLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9UaW1lUmFuZ2VzLmlkbAogJChQ
Uk9KRUNUX0RJUikvaHRtbC9VUkxTZWFyY2hQYXJhbXMuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1s
L1ZhbGlkaXR5U3RhdGUuaWRsCiskKFBST0pFQ1RfRElSKS9odG1sL1ZpZGVvRnJhbWVNZXRhZGF0
YS5pZGwKKyQoUFJPSkVDVF9ESVIpL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwK
ICQoUFJPSkVDVF9ESVIpL2h0bWwvVm9pZENhbGxiYWNrLmlkbAogJChQUk9KRUNUX0RJUikvaHRt
bC9XZWJLaXRNZWRpYUtleUVycm9yLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9jYW52YXMvQU5H
TEVJbnN0YW5jZWRBcnJheXMuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDVkY2JlOWNhNTRhNmYwOTBhM2NmZjI1YTdkZmExOGI3
ZGJhMjQzODAuLmZmYWY3OTc2Y2FhZjRmMjJiNzhlNGU4ZjYyNGJiZGU1NmVjNjNmYTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC05
OTUsNiArOTk1LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNIVE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0LmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1l
ZGlhRWxlbWVudCtSZW1vdGVQbGF5YmFjay5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudCtSZW1vdGVQbGF5YmFjay5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZWRpYUVs
ZW1lbnQrUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudCtSZXF1ZXN0VmlkZW9G
cmFtZUNhbGxiYWNrLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTSFRNTE1lZGlhRWxlbWVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZW51RWxlbWVudC5jcHAKQEAgLTEwNzUs
NiArMTA3Nyw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTSFRNTFVua25vd25FbGVtZW50LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNIVE1MVW5rbm93bkVsZW1lbnQuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVmlkZW9FbGVtZW50K1BpY3R1cmVJblBp
Y3R1cmUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0hUTUxWaWRlb0VsZW1lbnQrUGljdHVyZUluUGljdHVyZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxWaWRlb0VsZW1lbnQrUmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFZpZGVvRWxl
bWVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
SFRNTFZpZGVvRWxlbWVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0hhc2hDaGFuZ2VFdmVudC5jcHAKQEAgLTIzMDEsNiArMjMwNSwxMCBAQCAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZhbGlkaXR5U3RhdGUu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZhbGlk
aXR5U3RhdGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNWaWRlb0NvbmZpZ3VyYXRpb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1ZpZGVvQ29uZmlndXJhdGlvbi5oCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZpZGVvRnJhbWVNZXRhZGF0YS5jcHAKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmlkZW9GcmFtZU1ldGFk
YXRhLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmlk
ZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZpZGVvUGxheWJhY2tRdWFsaXR5
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWaWRl
b1BsYXliYWNrUXVhbGl0eS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1ZpZGVvVHJhY2srTWVkaWFTb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCBlZjNjMGY3MjBhZmQ0MTkzOGFhM2M1ZGEyMGJlYjVjMWVjYjM5MzA3Li4y
NjJhYTdiNTE3MDI3MDc4YTA4YWI5NDczNjU0MzU2NjgyNGVhODcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTg5NCw2ICs4OTQsNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAog
ICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9odG1sL0hUTUxVbmtub3duRWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1M
VmlkZW9FbGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxWaWRlb0VsZW1lbnQr
UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9JbWFn
ZUJpdG1hcC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9JbWFnZUJpdG1hcE9wdGlvbnMuaWRs
IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSW1hZ2VEYXRhLmlkbCBcCkBAIC05MDgsNiArOTA5LDgg
QEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvVGltZVJhbmdlcy5p
ZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9VUkxTZWFyY2hQYXJhbXMuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvVmFsaWRpdHlTdGF0ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9WaWRl
b0ZyYW1lTWV0YWRhdGEuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvVmlkZW9GcmFtZVJlcXVl
c3RDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9Wb2lkQ2FsbGJhY2suaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2h0bWwvV2ViS2l0TWVkaWFLZXlFcnJvci5pZGwgXAogICAgICQoV2Vi
Q29yZSkvaHRtbC9jYW52YXMvQU5HTEVJbnN0YW5jZWRBcnJheXMuaWRsIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCmluZGV4IDkxMWE2ODVmZTU1MTRjZTZhZDY3MGFkZmNlMTkwZTkxNzE5NGU0Y2UuLjMxNWRh
N2ZlYzE5MzNjZWE3YTM5ODI3ODI3NDI3YmQxMTg2YzQ2MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpA
QCAtNzU3LDYgKzc1Nyw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBodG1sL1VSTERlY29tcG9zaXRpb24uaAogICAgIGh0bWwvVVJMUmVnaXN0cnkuaAogICAg
IGh0bWwvVmFsaWRpdHlTdGF0ZS5oCisgICAgaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNr
LmgKICAgICBodG1sL1ZvaWRDYWxsYmFjay5oCiAKICAgICBodG1sL2NhbnZhcy9JbWFnZUJpdG1h
cFJlbmRlcmluZ0NvbnRleHRTZXR0aW5ncy5oCkBAIC0xMTc5LDYgKzExODAsNyBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vVXNlckFnZW50LmgK
ICAgICBwbGF0Zm9ybS9Vc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmgKICAgICBwbGF0Zm9y
bS9WYWxpZGF0aW9uQnViYmxlLmgKKyAgICBwbGF0Zm9ybS9WaWRlb0ZyYW1lTWV0YWRhdGEuaAog
ICAgIHBsYXRmb3JtL1dlYkdMU3RhdGVUcmFja2VyLmgKICAgICBwbGF0Zm9ybS9XaWRnZXQuaAog
ICAgIHBsYXRmb3JtL1dpbmRvd3NLZXlib2FyZENvZGVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggZGNh
MDNjZjRkYmI5ZjJiYmUzNzNmN2FkY2E5NTM1ZDBmOGZkNWQ2NS4uNzc2NGE4NDY1Y2Y3MmZjMGZj
NWZiM2UwM2Y0Y2IxZWU0NGY4M2Q3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTM3MzMsNiArMzczMyw4
IEBAIEpTVlRUUmVnaW9uLmNwcAogSlNWVFRSZWdpb25MaXN0LmNwcAogSlNWYWxpZGl0eVN0YXRl
LmNwcAogSlNWaWRlb0NvbmZpZ3VyYXRpb24uY3BwCitKU1ZpZGVvRnJhbWVNZXRhZGF0YS5jcHAK
K0pTVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5jcHAKIEpTVmlkZW9QbGF5YmFja1F1YWxpdHku
Y3BwCiBKU1ZpZGVvVHJhY2suY3BwCiBKU1ZpZGVvVHJhY2tMaXN0LmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVlYTZjMjI5
OWNjMTA0ZDIzOTljYTQ3YjQ0NDc2ZWJmNThlNzY2ZDMuLjM1MDljMTUyMzc5MWYzNGJhYWRmYTgz
MzYyZGQyMThlMzg5YjJiMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExODEsNiArMTE4MSw4IEBACiAJCTQxOEZDQkMxMjcw
NkU0RkIwMEY5NkVDQSAvKiBQdXNoRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxOEZDQkJEMjcwNkU0RjcwMEY5NkVDQSAvKiBQdXNoRXZlbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MThG
Q0JDMjI3MDZFNTAxMDBGOTZFQ0EgLyogUHVzaEV2ZW50SW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4RkNCQkYyNzA2RTRGODAwRjk2RUNBIC8q
IFB1c2hFdmVudEluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0MThGQ0JFNzI3MTVBMjhGMDBGOTZFQ0EgLyogUlRDUnRwQ29kZWNDYXBhYmls
aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUw
QTdEQzIzQkI2M0RCMDA1NjEwNjAgLyogUlRDUnRwQ29kZWNDYXBhYmlsaXR5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE4RkNDMDEyNzE5Njgx
QTAwRjk2RUNBIC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOEZDQzAwMjcxOTY4MTgwMEY5NkVDQSAv
KiBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE4RkNDMDYyNzE5NkFGNjAwRjk2RUNBIC8qIFZpZGVv
RnJhbWVNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDE4RkNDMDUyNzE5NkFGNDAwRjk2RUNBIC8qIFZpZGVvRnJhbWVNZXRhZGF0YS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxOTBGM0E1
MjRBMEI0RUUwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkwRjNBMzI0OUQxNTI4MDA1MzFDNTcgLyog
RnJhbWVSYXRlTW9uaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTQxOTI0MjQ5MjEyN0I5M0UwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5n
VmlkZW9Tb3VyY2VDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxOTI0MjQ3MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VDb2NvYS5tbSAqLzsgfTsKIAkJNDE5QUNGOTIxRjk3RTdEQTAwOUYxQTgzIC8qIFNl
cnZpY2VXb3JrZXJGZXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE5QUNGOEUxRjk3RTdENTAwOUYxQTgzIC8qIFNlcnZpY2VXb3JrZXJGZXRjaC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04MTUy
LDYgKzgxNTQsMTEgQEAKIAkJNDE4RkNCRUEyNzE1QjYwRjAwRjk2RUNBIC8qIFdvcmtlck5hdmln
YXRvcitNZWRpYUNhcGFiaWxpdGllcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gIldvcmtlck5hdmlnYXRvcitNZWRpYUNh
cGFiaWxpdGllcy5pZGwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MThGQ0JFQzI3
MTVCODUxMDBGOTZFQ0EgLyogV29ya2VyTmF2aWdhdG9yTWVkaWFDYXBhYmlsaXRpZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV29ya2VyTmF2aWdhdG9yTWVkaWFDYXBhYmlsaXRpZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4RkNCRUQyNzE1Qjg1MjAwRjk2RUNBIC8qIFdvcmtlck5h
dmlnYXRvck1lZGlhQ2FwYWJpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtlck5h
dmlnYXRvck1lZGlhQ2FwYWJpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDE4RkNCRkQyNzE5NjYzODAwRjk2RUNBIC8qIEhUTUxWaWRlb0VsZW1lbnQrUmVxdWVzdFZp
ZGVvRnJhbWVDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gIkhUTUxWaWRlb0VsZW1lbnQrUmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFjay5pZGwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MThGQ0JG
RjI3MTk2ODE3MDBGOTZFQ0EgLyogVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
VmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxOEZDQzAwMjcxOTY4MTgwMEY5NkVDQSAvKiBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNr
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4RkNDMDMyNzE5NjlGNzAwRjk2RUNBIC8qIFZpZGVvRnJh
bWVNZXRhZGF0YS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlkZW9GcmFtZU1ldGFkYXRhLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDE4RkNDMDUyNzE5NkFGNDAwRjk2RUNBIC8qIFZpZGVvRnJhbWVN
ZXRhZGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0ZyYW1lTWV0
YWRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5MEYzQTEyNDlEMTUyNzAw
NTMxQzU3IC8qIEZyYW1lUmF0ZU1vbml0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRnJhbWVSYXRlTW9uaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxOTBGM0EzMjQ5RDE1MjgwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYW1lUmF0ZU1vbml0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5MjQyNDcyMTI3QjdDQzAwNjM0RkNGIC8qIFJlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlQ29jb2EubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDE1NSw2ICsyNDE2Miw3IEBACiAJCQkJMEYyNkE3
QUEyMDU0RUM1QTAwOTBBMTQxIC8qIEhUTUxVbmtub3duRWxlbWVudC5jcHAgKi8sCiAJCQkJQUQ0
OTkxNDExOEYwODE1MTAwQkYwMDkyIC8qIEhUTUxVbmtub3duRWxlbWVudC5oICovLAogCQkJCUFE
NDk5MTQyMThGMDgxNTEwMEJGMDA5MiAvKiBIVE1MVW5rbm93bkVsZW1lbnQuaWRsICovLAorCQkJ
CTQxOEZDQkZEMjcxOTY2MzgwMEY5NkVDQSAvKiBIVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRl
b0ZyYW1lQ2FsbGJhY2suaWRsICovLAogCQkJCUU0NDYxMzk4MENENjMzMTAwMEZBREE3NSAvKiBI
VE1MVmlkZW9FbGVtZW50LmNwcCAqLywKIAkJCQlFNDQ2MTM5OTBDRDYzMzEwMDBGQURBNzUgLyog
SFRNTFZpZGVvRWxlbWVudC5oICovLAogCQkJCUU0NDYxMzlBMENENjMzMTAwMEZBREE3NSAvKiBI
VE1MVmlkZW9FbGVtZW50LmlkbCAqLywKQEAgLTI0Mjc1LDYgKzI0MjgzLDkgQEAKIAkJCQlGNUEx
NTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLywKIAkJCQkxNUM3
NzA4QTEwMEQzQzZBMDA1QkEyNjcgLyogVmFsaWRpdHlTdGF0ZS5oICovLAogCQkJCTE1Qzc3MDg5
MTAwRDNDNkEwMDVCQTI2NyAvKiBWYWxpZGl0eVN0YXRlLmlkbCAqLywKKwkJCQk0MThGQ0MwMzI3
MTk2OUY3MDBGOTZFQ0EgLyogVmlkZW9GcmFtZU1ldGFkYXRhLmlkbCAqLywKKwkJCQk0MThGQ0Mw
MDI3MTk2ODE4MDBGOTZFQ0EgLyogVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oICovLAorCQkJ
CTQxOEZDQkZGMjcxOTY4MTcwMEY5NkVDQSAvKiBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmlk
bCAqLywKIAkJCQlFNDQ2MTNCNDBDRDYzNDRFMDBGQURBNzUgLyogVm9pZENhbGxiYWNrLmggKi8s
CiAJCQkJRTQ0NjEzQTAwQ0Q2MzMxMDAwRkFEQTc1IC8qIFZvaWRDYWxsYmFjay5pZGwgKi8sCiAJ
CQkJMkQxOTMyMTcxREE2NEUxOTAwQTU0QTA4IC8qIFdlYktpdE1lZGlhS2V5RXJyb3IuaCAqLywK
QEAgLTI4NDA3LDYgKzI4NDE4LDcgQEAKIAkJCQlBM0FGOUQ4MjIwMzI1MzI0MDA2Q0FEMDYgLyog
VXNlckFnZW50LmggKi8sCiAJCQkJNzFDOTE2MDcxRDE0ODNBMzAwQUNBNDdEIC8qIFVzZXJJbnRl
cmZhY2VMYXlvdXREaXJlY3Rpb24uaCAqLywKIAkJCQk4M0M0NUI4RDFEQzJCNjdDMDA4ODcxQkEg
LyogVmFsaWRhdGlvbkJ1YmJsZS5oICovLAorCQkJCTQxOEZDQzA1MjcxOTZBRjQwMEY5NkVDQSAv
KiBWaWRlb0ZyYW1lTWV0YWRhdGEuaCAqLywKIAkJCQk1MTVGNzk1MTFDRkNBM0M3MDBDQ0VEOTMg
LyogV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcCAqLywKIAkJCQk1MTVGNzk1MjFDRkNBM0M3
MDBDQ0VEOTMgLyogV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmggKi8sCiAJCQkJODM5QTJGMkIx
RTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmNwcCAqLywKQEAgLTM1OTM3LDYg
KzM1OTQ5LDggQEAKIAkJCQlERjRFMzhFMDI1Mjc5NTk1MDAyQTc0ODEgLyogVmVyc2lvbkNoZWNr
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBMjU3MTUxMjkzQzAxMDAwN0EyNjNEIC8qIFZlcnRp
Y2FsUG9zaXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRUVGM0IyNTc5OUZBMTAw
NjU2M0JCIC8qIFZpZGVvQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4RkND
MDYyNzE5NkFGNjAwRjk2RUNBIC8qIFZpZGVvRnJhbWVNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNDE4RkNDMDEyNzE5NjgxQTAwRjk2RUNBIC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovLAogCQkJCTUyQjBENEMwMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRl
b0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0ZCQzRBRjQx
ODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MkIwRDRDMjFDNTdGRjkxMDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlTWFjLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4
IDliN2RlMzJjNTI1MDBkODYxNzIxNDNkNTg4ZGViY2UxYTkyOTkyYzcuLjRmNzA4YmM0ZTRlNWM5
OWVjOGY1NDlkN2U5YzliMWNlNmY0N2EzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
NjY5NSw2ICs2Njk1LDMyIEBAIHZvaWQgRG9jdW1lbnQ6OnNlcnZpY2VSZXF1ZXN0QW5pbWF0aW9u
RnJhbWVDYWxsYmFja3MoKQogICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci0+
c2VydmljZVJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrcyhkb21XaW5kb3coKS0+ZnJvemVu
Tm93VGltZXN0YW1wKCkpOwogfQogCit2b2lkIERvY3VtZW50OjpzZXJ2aWNlUmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFja3MoKQoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBpZiAoIWRvbVdpbmRv
dygpKQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIGlzU2VydmljaW5nUmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFja3MgPSBmYWxzZTsKKyAgICBmb3JFYWNoTWVkaWFFbGVtZW50KFtub3cgPSBk
b21XaW5kb3coKS0+ZnJvemVuTm93VGltZXN0YW1wKCksICZpc1NlcnZpY2luZ1JlcXVlc3RWaWRl
b0ZyYW1lQ2FsbGJhY2tzXShhdXRvJiBlbGVtZW50KSB7CisgICAgICAgIGlmICghaXM8SFRNTFZp
ZGVvRWxlbWVudD4oZWxlbWVudCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0
byYgdmlkZW9FbGVtZW50ID0gZG93bmNhc3Q8SFRNTFZpZGVvRWxlbWVudD4oZWxlbWVudCk7Cisg
ICAgICAgIGlmICh2aWRlb0VsZW1lbnQuc2hvdWxkU2VydmljZVJlcXVlc3RWaWRlb0ZyYW1lQ2Fs
bGJhY2tzKCkpIHsKKyAgICAgICAgICAgIGlzU2VydmljaW5nUmVxdWVzdFZpZGVvRnJhbWVDYWxs
YmFja3MgPSB0cnVlOworICAgICAgICAgICAgdmlkZW9FbGVtZW50LnNlcnZpY2VSZXF1ZXN0Vmlk
ZW9GcmFtZUNhbGxiYWNrcyhub3cpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBpZiAoIWlz
U2VydmljaW5nUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja3MpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmIChhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpKQorICAgICAgICBwYWdlLT5zY2hlZHVs
ZVJlbmRlcmluZ1VwZGF0ZShSZW5kZXJpbmdVcGRhdGVTdGVwOjpWaWRlb0ZyYW1lQ2FsbGJhY2tz
KTsKKyNlbmRpZgorfQorCiB2b2lkIERvY3VtZW50Ojp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxh
dGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogewogICAgIGlmIChSZW5kZXJWaWV3KiB2aWV3ID0g
cmVuZGVyVmlldygpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDM4NmUzNzgyODA4OGYzZmQx
ZWE3YmZjODA2ODJlOTVhODUwODkwMDYuLjc2OWMzZDcxMWI2ZGY0YWQxN2Q1YzlhYTg4ZDY0MjIw
YjNkYmVhZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMTAxLDYgKzExMDEsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCByZXN1bWVTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXJDYWxsYmFja3Mo
KTsKIAogICAgIHZvaWQgc2VydmljZVJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrcygpOwor
ICAgIHZvaWQgc2VydmljZVJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tzKCk7CiAKICAgICB2b2lk
IHdpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggZTk4YWI3YzE0ZjAyYjAzYmJmZjQ1ZjEyZmVm
Y2EzM2E2NTM1MTk2MS4uMTYzMjFjNmFhNGU4MGJhNTdjOWM4NGRhMTllMWI4OGFmMTQ0OTUyMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTM5LDYgKzM5LDcgQEAK
ICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIKICNp
bmNsdWRlICJNZWRpYVVuaXF1ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZWR1Y2VkUmVzb2x1
dGlvblNlY29uZHMuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tDbGllbnQuaCIKICNpbmNsdWRlICJW
aWRlb1RyYWNrQ2xpZW50LmgiCiAjaW5jbHVkZSAiVmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RW
aWRlb0ZyYW1lQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVt
ZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5MzI0NDk4ZWRj
ZmUxNGI1NzY3MjBjOGYwMjU4MjA4NWI0NWQ0MDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQrUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjay5p
ZGwKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9VklERU8sCisgICAgRW5hYmxlZEJ5U2V0dGlu
Zz1SZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZAorXSBwYXJ0aWFsIGludGVyZmFjZSBI
VE1MVmlkZW9FbGVtZW50IHsKKyAgICB1bnNpZ25lZCBsb25nIHJlcXVlc3RWaWRlb0ZyYW1lQ2Fs
bGJhY2soVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjayBjYWxsYmFjayk7CisgICAgdW5kZWZpbmVk
IGNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayh1bnNpZ25lZCBsb25nIGhhbmRsZSk7Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKaW5kZXggMDRjMDJiOGM4OWJiNGMw
ZWJkZGNjYTQ1MDI4YmJmZDAwZGE3OWI2Zi4uZDRjNDE1OWJiMjgwYjk4NTU1MmQzNzIyMWU3YzY1
ZDdmNzQ0Yzc2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCkBA
IC01NzcsNiArNTc3LDU5IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZXhpdFRvRnVsbHNjcmVl
bk1vZGVXaXRob3V0QW5pbWF0aW9uSWZQb3NzaWJsZShIVE1MTWVkaWFFCiB9CiAjZW5kaWYKIAor
dW5zaWduZWQgSFRNTFZpZGVvRWxlbWVudDo6cmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayhSZWY8
VmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjaz4mJiBjYWxsYmFjaykKK3sKKyAgICBpZiAobV9uZXh0
VmlkZW9GcmFtZVJlcXVlc3RJbmRleCA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6
bWF4KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgYXV0byBpZGVudGlmaWVyID0gICsrbV9u
ZXh0VmlkZW9GcmFtZVJlcXVlc3RJbmRleDsKKyAgICBtX3ZpZGVvRnJhbWVSZXF1ZXN0cy5hcHBl
bmQobWFrZVVuaXF1ZVJlZjxWaWRlb0ZyYW1lUmVxdWVzdD4oaWRlbnRpZmllciwgV1RGTW92ZShj
YWxsYmFjaykpKTsKKworICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCkpCisg
ICAgICAgIHBhZ2UtPnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKFJlbmRlcmluZ1VwZGF0ZVN0ZXA6
OlZpZGVvRnJhbWVDYWxsYmFja3MpOworCisgICAgcmV0dXJuIGlkZW50aWZpZXI7Cit9CisKK3Zv
aWQgSFRNTFZpZGVvRWxlbWVudDo6Y2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKHVuc2lnbmVkIGlk
ZW50aWZpZXIpCit7CisgICAgYXV0byBpbmRleCA9IG1fdmlkZW9GcmFtZVJlcXVlc3RzLmZpbmRN
YXRjaGluZyhbaWRlbnRpZmllcl0oYXV0byYgcmVxdWVzdCkgeyByZXR1cm4gcmVxdWVzdC0+aWRl
bnRpZmllciA9PSBpZGVudGlmaWVyOyB9KTsKKyAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCisg
ICAgICAgIHJldHVybjsKKyAgICBpZiAobV9pc1J1bm5pbmdWaWRlb0ZyYW1lUmVxdWVzdHMpIHsK
KyAgICAgICAgbV92aWRlb0ZyYW1lUmVxdWVzdHNbaW5kZXhdLT5jYW5jZWxsZWQgPSB0cnVlOwor
ICAgICAgICBtX3Nob3VsZENsZWFuVmlkZW9GcmFtZVJlcXVlc3RzID0gdHJ1ZTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBtX3ZpZGVvRnJhbWVSZXF1ZXN0cy5yZW1vdmUoaW5kZXgpOwor
fQorCit2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNlcnZpY2VSZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrcyhSZWR1Y2VkUmVzb2x1dGlvblNlY29uZHMgbm93KQoreworICAgIGlmICghcGxheWVyKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gdmlkZW9GcmFtZU1ldGFkYXRhID0gcGxheWVy
KCktPnZpZGVvRnJhbWVNZXRhZGF0YSgpOworICAgIGlmICghdmlkZW9GcmFtZU1ldGFkYXRhKQor
ICAgICAgICByZXR1cm47CisKKyAgICBSZWYgcHJvdGVjdGVkVGhpcyB7ICp0aGlzIH07CisKKyAg
ICAvLyBXZSBzdG9yZSB0aGUgc2l6ZSBiZWZvcmUgY2FsbGluZyBjYWxsYmFja3MgYXMgd2UgZG8g
bm90IHdhbnQgdG8gY2FsbCBuZXdseSBhZGRlZCBjYWxsYmFja3MuCisgICAgYXV0byBjYWxsYmFj
a0NvdW50ID0gbV92aWRlb0ZyYW1lUmVxdWVzdHMuc2l6ZSgpOworCisgICAgbV9pc1J1bm5pbmdW
aWRlb0ZyYW1lUmVxdWVzdHMgPSB0cnVlOworICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5k
ZXggPCBjYWxsYmFja0NvdW50OyArK2luZGV4KSB7CisgICAgICAgIGF1dG8mIHJlcXVlc3QgPSBt
X3ZpZGVvRnJhbWVSZXF1ZXN0c1tpbmRleF07CisgICAgICAgIGlmICghcmVxdWVzdC0+Y2FuY2Vs
bGVkKQorICAgICAgICAgICAgbV92aWRlb0ZyYW1lUmVxdWVzdHNbaW5kZXhdLT5jYWxsYmFjay0+
aGFuZGxlRXZlbnQobm93LnZhbHVlKCksICp2aWRlb0ZyYW1lTWV0YWRhdGEpOworICAgIH0KKyAg
ICBtX2lzUnVubmluZ1ZpZGVvRnJhbWVSZXF1ZXN0cyA9IGZhbHNlOworCisgICAgaWYgKG1fc2hv
dWxkQ2xlYW5WaWRlb0ZyYW1lUmVxdWVzdHMpCisgICAgICAgIG1fdmlkZW9GcmFtZVJlcXVlc3Rz
LnJlbW92ZUFsbE1hdGNoaW5nKFtdKGF1dG8mIGNhbGxiYWNrKSB7IHJldHVybiBjYWxsYmFjay0+
Y2FuY2VsbGVkOyB9KTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlk
ZW9FbGVtZW50LmgKaW5kZXggMTA5OTFmMDVmMTQ3NGVlZTVlYjAxZWU3ODMyMzM5MTIwZjZlMzcy
Zi4uNWUxODhiMDA1NGE2NzNkODliZGE5M2UwNDUzZjY1MzMwNzFhNWFlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUg
IkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorI2luY2x1
ZGUgIlZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4LDYgKzM5LDcgQEAgY2xhc3MgSFRNTEltYWdlTG9hZGVy
OwogY2xhc3MgSW1hZ2VCdWZmZXI7CiBjbGFzcyBSZW5kZXJWaWRlbzsKIGNsYXNzIFBpY3R1cmVJ
blBpY3R1cmVPYnNlcnZlcjsKK2NsYXNzIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2s7CiAKIGVu
dW0gY2xhc3MgUGl4ZWxGb3JtYXQgOiB1aW50OF90OwogZW51bSBjbGFzcyBSZW5kZXJpbmdNb2Rl
IDogYm9vbDsKQEAgLTEwOSw2ICsxMTEsMTIgQEAgcHVibGljOgogCiAgICAgUmVuZGVyVmlkZW8q
IHJlbmRlcmVyKCkgY29uc3Q7CiAKKyAgICBib29sIHNob3VsZFNlcnZpY2VSZXF1ZXN0VmlkZW9G
cmFtZUNhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuICFtX3ZpZGVvRnJhbWVSZXF1ZXN0cy5pc0Vt
cHR5KCk7IH0KKyAgICB2b2lkIHNlcnZpY2VSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrcyhSZWR1
Y2VkUmVzb2x1dGlvblNlY29uZHMpOworCisgICAgdW5zaWduZWQgcmVxdWVzdFZpZGVvRnJhbWVD
YWxsYmFjayhSZWY8VmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjaz4mJik7CisgICAgdm9pZCBjYW5j
ZWxWaWRlb0ZyYW1lQ2FsbGJhY2sodW5zaWduZWQpOworCiBwcml2YXRlOgogICAgIEhUTUxWaWRl
b0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQ
YXJzZXIpOwogCkBAIC0xNDcsNiArMTU1LDIzIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFBJQ1RV
UkVfSU5fUElDVFVSRV9BUEkpCiAgICAgUGljdHVyZUluUGljdHVyZU9ic2VydmVyKiBtX3BpY3R1
cmVJblBpY3R1cmVPYnNlcnZlciB7IG51bGxwdHIgfTsKICNlbmRpZgorCisgICAgc3RydWN0IFZp
ZGVvRnJhbWVSZXF1ZXN0IHsKKyAgICAgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVE
OworICAgICAgICBWaWRlb0ZyYW1lUmVxdWVzdCh1bnNpZ25lZCBpZGVudGlmaWVyLCBSZWY8Vmlk
ZW9GcmFtZVJlcXVlc3RDYWxsYmFjaz4mJiBjYWxsYmFjaykKKyAgICAgICAgICAgIDogaWRlbnRp
ZmllcihpZGVudGlmaWVyKQorICAgICAgICAgICAgLCBjYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNr
KSkKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB1bnNpZ25lZCBpZGVu
dGlmaWVyIHsgMCB9OworICAgICAgICBSZWY8VmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjaz4gY2Fs
bGJhY2s7CisgICAgICAgIGJvb2wgY2FuY2VsbGVkIHsgZmFsc2UgfTsKKyAgICB9OworICAgIFZl
Y3RvcjxVbmlxdWVSZWY8VmlkZW9GcmFtZVJlcXVlc3Q+PiBtX3ZpZGVvRnJhbWVSZXF1ZXN0czsK
KyAgICB1bnNpZ25lZCBtX25leHRWaWRlb0ZyYW1lUmVxdWVzdEluZGV4IHsgMCB9OworICAgIGJv
b2wgbV9zaG91bGRDbGVhblZpZGVvRnJhbWVSZXF1ZXN0cyB7IGZhbHNlIH07CisgICAgYm9vbCBt
X2lzUnVubmluZ1ZpZGVvRnJhbWVSZXF1ZXN0cyB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVN
ZXRhZGF0YS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVNZXRhZGF0YS5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmNhOTVlOGYwM2QzMDU3YWMyZTgwYzRhNWQyZmEyMzA1NmFmNzhiZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmlkZW9GcmFtZU1ldGFkYXRhLmlk
bApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKK3R5cGVkZWYgZG91YmxlIERPTUhpZ2hSZXNUaW1lU3RhbXA7CisKK1sKKyAgICBD
b25kaXRpb25hbD1WSURFTywKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10gZGljdGlvbmFy
eSBWaWRlb0ZyYW1lTWV0YWRhdGEgeworICAgIC8vIEZJWE1FOiBleHBvc2UgcHJlc2VudGF0aW9u
VGltZSBhbmQgZXhwZWN0ZWREaXNwbGF5VGltZS4KKyAgICAvLyByZXF1aXJlZCBET01IaWdoUmVz
VGltZVN0YW1wIHByZXNlbnRhdGlvblRpbWU7CisgICAgLy8gcmVxdWlyZWQgRE9NSGlnaFJlc1Rp
bWVTdGFtcCBleHBlY3RlZERpc3BsYXlUaW1lOworCisgICAgcmVxdWlyZWQgdW5zaWduZWQgbG9u
ZyB3aWR0aDsKKyAgICByZXF1aXJlZCB1bnNpZ25lZCBsb25nIGhlaWdodDsKKyAgICByZXF1aXJl
ZCBkb3VibGUgbWVkaWFUaW1lOworCisgICAgcmVxdWlyZWQgdW5zaWduZWQgbG9uZyBwcmVzZW50
ZWRGcmFtZXM7CisgICAgZG91YmxlIHByb2Nlc3NpbmdEdXJhdGlvbjsKKworICAgIERPTUhpZ2hS
ZXNUaW1lU3RhbXAgY2FwdHVyZVRpbWU7CisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCByZWNlaXZl
VGltZTsKKyAgICB1bnNpZ25lZCBsb25nIHJ0cFRpbWVzdGFtcDsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0ZmFi
MmNkNWQwNmNhMzA3MzFhMWE2OWI0OTdjMjQ1YWJiMGE3MjEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaApAQCAtMCwwICsx
LDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisK
KyNpbmNsdWRlICJBY3RpdmVET01DYWxsYmFjay5oIgorI2luY2x1ZGUgIkNhbGxiYWNrUmVzdWx0
LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBWaWRlb0ZyYW1lTWV0YWRhdGE7CisK
K2NsYXNzIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxWaWRl
b0ZyYW1lUmVxdWVzdENhbGxiYWNrPiwgcHVibGljIEFjdGl2ZURPTUNhbGxiYWNrIHsKK3B1Ymxp
YzoKKyAgICB1c2luZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZlRE9NQ2FsbGJhY2s7CisKKyAg
ICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KGRvdWJsZSwgY29uc3Qg
VmlkZW9GcmFtZU1ldGFkYXRhJikgPSAwOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFZJ
REVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENh
bGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFj
ay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uN2RkNmZmNmMxZjhhYjQ0NWRiOTBlZmY4OTZlNDIwZDcwN2U2ZTkw
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmlkZW9GcmFtZVJlcXVl
c3RDYWxsYmFjay5pZGwKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCit0eXBlZGVmIGRvdWJsZSBET01IaWdoUmVzVGltZVN0YW1w
OworCitbCisgICAgQ29uZGl0aW9uYWw9VklERU8sCitdIGNhbGxiYWNrIFZpZGVvRnJhbWVSZXF1
ZXN0Q2FsbGJhY2sgPSB1bmRlZmluZWQoRE9NSGlnaFJlc1RpbWVTdGFtcCBub3csIFZpZGVvRnJh
bWVNZXRhZGF0YSBtZXRhZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA4ODUzM2IzZDJiMzcx
ODJlMTYwNTJmZWQxMjkzNjhhNDZlNDIyOWFmLi4zZTVmZTZlMzc0MzkwYWU1MjhmODRlYmFhNTM1
ZDA1YzgwM2I5ODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE1ODEsNiArMTU4MSwxMCBAQCB2
b2lkIFBhZ2U6OnVwZGF0ZVJlbmRlcmluZygpCiAgICAgLy8gRklYTUU6IFJ1biB0aGUgZnVsbHNj
cmVlbiBzdGVwcy4KICAgICBtX3JlbmRlcmluZ1VwZGF0ZVJlbWFpbmluZ1N0ZXBzLmxhc3QoKS5y
ZW1vdmUoUmVuZGVyaW5nVXBkYXRlU3RlcDo6RnVsbHNjcmVlbik7CiAKKyAgICBydW5Qcm9jZXNz
aW5nU3RlcChSZW5kZXJpbmdVcGRhdGVTdGVwOjpWaWRlb0ZyYW1lQ2FsbGJhY2tzLCBbXSAoRG9j
dW1lbnQmIGRvY3VtZW50KSB7CisgICAgICAgIGRvY3VtZW50LnNlcnZpY2VSZXF1ZXN0VmlkZW9G
cmFtZUNhbGxiYWNrcygpOworICAgIH0pOworCiAgICAgcnVuUHJvY2Vzc2luZ1N0ZXAoUmVuZGVy
aW5nVXBkYXRlU3RlcDo6QW5pbWF0aW9uRnJhbWVDYWxsYmFja3MsIFtdIChEb2N1bWVudCYgZG9j
dW1lbnQpIHsKICAgICAgICAgZG9jdW1lbnQuc2VydmljZVJlcXVlc3RBbmltYXRpb25GcmFtZUNh
bGxiYWNrcygpOwogICAgIH0pOwpAQCAtMzYyMSw2ICszNjI1LDcgQEAgV1RGOjpUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYgdHMsIFJlbmRlcmluZ1VwZGF0ZVN0ZXAgc3Rl
cCkKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogICAgIGNhc2UgUmVuZGVyaW5nVXBkYXRl
U3RlcDo6U2Nyb2xsaW5nVHJlZVVwZGF0ZTogdHMgPDwgIlNjcm9sbGluZ1RyZWVVcGRhdGUiOyBi
cmVhazsKICNlbmRpZgorICAgIGNhc2UgUmVuZGVyaW5nVXBkYXRlU3RlcDo6VmlkZW9GcmFtZUNh
bGxiYWNrczogdHMgPDwgIlZpZGVvRnJhbWVDYWxsYmFja3MiOyBicmVhazsKICAgICB9CiAgICAg
cmV0dXJuIHRzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA5NGY4YjhkYTkyMDY5NjM3ODhjNTE2MTY1
M2U1MDVjY2MwMDUzODM5Li5iNGY3ZjNjZDJhMjk4YmI1ZTIyYjA2Yzc3N2NhNjBiZDM5MTE2OTdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaApAQCAtMjA4LDYgKzIwOCw3IEBAIGVudW0gY2xhc3MgUmVuZGVyaW5n
VXBkYXRlU3RlcCA6IHVpbnQxNl90IHsKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogICAg
IFNjcm9sbGluZ1RyZWVVcGRhdGUgICAgICAgICAgICAgPSAxIDw8IDEzLAogI2VuZGlmCisgICAg
VmlkZW9GcmFtZUNhbGxiYWNrcyAgICAgICAgICAgICA9IDEgPDwgMTQsCiB9OwogCiBjb25zdGV4
cHIgT3B0aW9uU2V0PFJlbmRlcmluZ1VwZGF0ZVN0ZXA+IHVwZGF0ZVJlbmRlcmluZ1N0ZXBzID0g
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZU1ldGFkYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lTWV0YWRhdGEuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44ZmQ5YTQ3MDAyNDhkNGQyNzhkY2UyNzQ5NzgzNjBhNTdiYWY1OWVhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZU1ldGFkYXRhLmgKQEAg
LTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJ
REVPKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBWaWRlb0ZyYW1lTWV0YWRhdGEg
eworICAgIGRvdWJsZSBwcmVzZW50YXRpb25UaW1lIHsgMCB9OworICAgIGRvdWJsZSBleHBlY3Rl
ZERpc3BsYXlUaW1lIHsgMCB9OworCisgICAgdW5zaWduZWQgd2lkdGggeyAwIH07CisgICAgdW5z
aWduZWQgaGVpZ2h0IHsgMCB9OworICAgIGRvdWJsZSBtZWRpYVRpbWUgeyAwIH07CisKKyAgICB1
bnNpZ25lZCBwcmVzZW50ZWRGcmFtZXMgeyAwIH07CisgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+
IHByb2Nlc3NpbmdEdXJhdGlvbjsKKworICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjYXB0dXJl
VGltZTsKKyAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcmVjZWl2ZVRpbWU7CisgICAgc3RkOjpv
cHRpb25hbDx1bnNpZ25lZD4gcnRwVGltZXN0YW1wOworfTsKKworfQorCisjZW5kaWYgLy8gRU5B
QkxFKFZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCmluZGV4IDg4ZTQxZTM5NjY3YTI0MzA5MTY2N2NlNTZmM2E3MjFmNzE2OWE2Nzgu
LjEyMzRlODM4ZDRhYWVlYTgzMGNlNzM3MjkwMTU3NjJjYjRhZWM5YTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTE3MTAsNiAr
MTcxMCwxMSBAQCBNZWRpYVBsYXllcklkZW50aWZpZXIgTWVkaWFQbGF5ZXI6OmlkZW50aWZpZXIo
KSBjb25zdAogICAgIHJldHVybiBtX3ByaXZhdGUtPmlkZW50aWZpZXIoKTsKIH0KIAorc3RkOjpv
cHRpb25hbDxWaWRlb0ZyYW1lTWV0YWRhdGE+IE1lZGlhUGxheWVyOjp2aWRlb0ZyYW1lTWV0YWRh
dGEoKQoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnZpZGVvRnJhbWVNZXRhZGF0YSgpOworfQor
CiBTdHJpbmcgTWVkaWFQbGF5ZXI6OmVsZW1lbnRJZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNs
aWVudCgpLm1lZGlhUGxheWVyRWxlbWVudElkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA5NzEyNjQ4Y2JhYWJlNzU5OWU2N2RmNjVh
ZjJjMzU2YmYyNDE2MzVmLi4wNDg4ZGY1NzFiNzk2Y2UxMzRiZmRmMTE5NDAzYThmMTVjMGQyNTky
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgK
QEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCiAjaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW5EYXRhLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlICJWaWRl
b0ZyYW1lTWV0YWRhdGEuaCIKICNpbmNsdWRlICJWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3Mu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Nv
bXBsZXRpb25IYW5kbGVyLmg+CkBAIC02NzgsNiArNjc5LDggQEAgcHVibGljOgogICAgIE1lZGlh
UGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNNZWRpYUVu
Z2luZSgpIGNvbnN0OwogCisgICAgc3RkOjpvcHRpb25hbDxWaWRlb0ZyYW1lTWV0YWRhdGE+IHZp
ZGVvRnJhbWVNZXRhZGF0YSgpOworCiBwcml2YXRlOgogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxh
eWVyQ2xpZW50Jik7CiAgICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmLCBNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCA2YWI0N2Ix
NTM4ZmZjMmYyOTQ0Yzg0YTlmNDRjNWM4Y2JiNjAyY2Y3Li44OWE2ZThjZWZlOTkyYmFiZGNjZjk0
ZDA1NGZkMDFlODViMGQxZTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtMzIwLDYgKzMyMCw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNQYXVzZUF0SG9zdFRpbWUoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwbGF5QXRIb3N0VGltZShjb25zdCBNb25v
dG9uaWNUaW1lJikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgcGF1c2VBdEhv
c3RUaW1lKGNvbnN0IE1vbm90b25pY1RpbWUmKSB7IHJldHVybiBmYWxzZTsgfQorCisgICAgdmly
dHVhbCBzdGQ6Om9wdGlvbmFsPFZpZGVvRnJhbWVNZXRhZGF0YT4gdmlkZW9GcmFtZU1ldGFkYXRh
KCkgeyByZXR1cm4geyB9OyB9CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4
IDYzZmQ5ZWE5M2Q0N2UyNDcyMDY3MWE0YjZjNWY1ZGRkZjlkY2E4MzUuLjM5ZGRkMDNmNWY2NmFm
N2MwMTcxZDMwMDkxZDBmMjdmMDc3NjFlNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBA
IC0xNTksNiArMTU5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0QnVmZmVyaW5nUG9saWN5
KE1lZGlhUGxheWVyOjpCdWZmZXJpbmdQb2xpY3kpIG92ZXJyaWRlOwogICAgIHZvaWQgYXVkaW9P
dXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CisgICAgc3RkOjpvcHRpb25hbDxWaWRlb0ZyYW1l
TWV0YWRhdGE+IHZpZGVvRnJhbWVNZXRhZGF0YSgpIGZpbmFsOwogCiAgICAgTWVkaWFQbGF5ZXI6
OlJlYWR5U3RhdGUgY3VycmVudFJlYWR5U3RhdGUoKTsKICAgICB2b2lkIHVwZGF0ZVJlYWR5U3Rh
dGUoKTsKQEAgLTI3OCw2ICsyNzksOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1Zpc2libGVJ
blZpZXdQb3J0IHsgZmFsc2UgfTsKICAgICBib29sIG1faGF2ZVNlZW5NZXRhZGF0YSB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JGaXJzdEltYWdlIHsgZmFsc2UgfTsKKworICAgIHVp
bnQ2NF90IG1fc2FtcGxlQ291bnQgeyAwIH07CisgICAgdWludDY0X3QgbV9sYXN0VmlkZW9GcmFt
ZU1ldGFkYXRhU2FtcGxlQ291bnQgeyAwIH07CiB9OwogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLm1tCmluZGV4IDMwMTlmMGE5ZWZjMmY0N2VhM2VjNmUwZTc5ZTY0MTc2ZGNiYTA1Mzcu
Ljk4NTI1NTdjNWYzNGNlYzU2M2NmNzViNzU2Njc3NjQxYzlhYzc0ZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMubW0KQEAgLTMxNiw2ICszMTYsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cHJvY2Vzc05ld1ZpZGVvU2FtcGxlKE1lZGlhU2FtcGxlJiBz
YQogICAgICAgICAgICAgdXBkYXRlUmVhZHlTdGF0ZSgpOwogICAgIH0KIAorICAgICsrbV9zYW1w
bGVDb3VudDsKKwogICAgIGlmIChtX2Rpc3BsYXlNb2RlICE9IExpdmVQcmV2aWV3ICYmICFtX3dh
aXRpbmdGb3JGaXJzdEltYWdlKQogICAgICAgICByZXR1cm47CiAKQEAgLTEwODgsNiArMTA5MCwy
MiBAQCBXVEZMb2dDaGFubmVsJiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OmxvZ0NoYW5uZWwoKSBjb25zdAogICAgIHJldHVybiBMb2dNZWRpYTsKIH0KIAorc3RkOjpvcHRp
b25hbDxWaWRlb0ZyYW1lTWV0YWRhdGE+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6dmlkZW9GcmFtZU1ldGFkYXRhKCkKK3sKKyAgICBpZiAobV9zYW1wbGVDb3VudCA9PSBt
X2xhc3RWaWRlb0ZyYW1lTWV0YWRhdGFTYW1wbGVDb3VudCkKKyAgICAgICAgcmV0dXJuIHsgfTsK
KyAgICBtX2xhc3RWaWRlb0ZyYW1lTWV0YWRhdGFTYW1wbGVDb3VudCA9IG1fc2FtcGxlQ291bnQ7
CisKKyAgICBWaWRlb0ZyYW1lTWV0YWRhdGEgbWV0YWRhdGE7CisgICAgbWV0YWRhdGEud2lkdGgg
PSBtX2ludHJpbnNpY1NpemUud2lkdGgoKTsKKyAgICBtZXRhZGF0YS5oZWlnaHQgPSBtX2ludHJp
bnNpY1NpemUuaGVpZ2h0KCk7CisgICAgbWV0YWRhdGEucHJlc2VudGVkRnJhbWVzID0gbV9zYW1w
bGVDb3VudDsKKworICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBnb29kIHRvIGV4cG9zZSBtb3Jl
IHZpZGVvIGZyYW1lIG1ldGFkYXRhLgorCisgICAgcmV0dXJuIG1ldGFkYXRhOworfQorCiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDlmMDY2MDM2OTdiMjJhNWI4Nzk1MTg3ZDA5OTg4NWM1Y2U1ZjQ3ZDUu
LjE5NTU2ZmVkY2JlZTNlYjcxODAwMDM5OWZjMDU0ZTMyYjUyZTQ1MDkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOCBAQAorMjAyMS0xMC0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sgQVBJIGFu
ZCBNZWRpYVN0cmVhbVRyYWNrLWJhc2VkIGJhY2tlbmQgc3VwcG9ydAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxODAzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAg
ICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ydmZjLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogd2Vi
cnRjL3BlZXJDb25uZWN0aW9uLXJ2ZmMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy5odG1sOiBBZGRlZC4KKwogMjAyMS0xMC0xNCAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgR3VhcmFudGVlIG9yZGVy
IG9mIFdlYlNvY2tldCBldmVudHMgaW4gY2FzZSBvZiBiZWluZyByZXN1bWVkCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAxYjcwMDcwNDU5ZWI0M2Y2MDUyNDZjMzg2MzJiOTNjNjIw
NmExMTkwLi42ZTFhMjliMWQ2ODVkOWQ1YmEwZDlmNjhiYjljN2Y3ZDBlMGNhNjkyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0xMC0xNSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IHJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sgQVBJIGFuZCBNZWRpYVN0cmVhbVRyYWNrLWJhc2Vk
IGJhY2tlbmQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiByZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL01FVEEueW1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9SRUFETUUubWQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
aWRsaGFybmVzcy53aW5kb3cuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53aW5kb3cuanM6IEFkZGVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2st
YmVmb3JlLXhyLXNlc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNr
LWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZG9tLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2
ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kb20uaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxs
YmFjay1kdXJpbmcteHItc2Vzc2lvbi5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2Fs
bGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZp
ZGVvLWZyYW1lLWNhbGxiYWNrLXBhcmFsbGVsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcmVw
ZWF0aW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1yZXBlYXRpbmcuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1l
LWNhbGxiYWNrLXdlYnJ0Yy5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3czYy1pbXBvcnQu
bG9nOiBBZGRlZC4KKwogMjAyMS0xMC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgRXhwb3NlIE1lZGlhQ2FwYWJpbGl0aWVzIHRvIFdvcmtlcnMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDgyNGJkZWM4ZmE2OWE2YWNmY2QzZTdlZmUyNDhmNDljMjEzY2E1M2Eu
LmQ4YjRjZTRmMDBjOTE3OTk1MWJmMGQ4OTBkYTkzNzVmODRmZGI1ZDUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMjE2LDYgKzIxNiw5IEBAIGZhc3QvaGFybmVzcy91aXNjcmlwdGNvbnRyb2xsZXIg
WyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3Jv
bGxpbmcgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50
cy9kb2N1bWVudC1sZXZlbC10b3VjaG1vdmUtZXZlbnQtbGlzdGVuZXItcGFzc2l2ZS1ieS1kZWZh
dWx0LnRlbnRhdGl2ZS5odG1sIFsgU2tpcCBdCiAKKyMgT25seSBNYWMgYW5kIGlPUyBXSzIgaGF2
ZSBhbiBpbXBsZW1lbnRhdGlvbiByaWdodCBub3cuCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3ZpZGVvLXJ2ZmMgWyBTa2lwIF0KKwogIyBUaGlzIHRlc3Qgb25seSBtYWtlcyBzZW5z
ZSBvbiBNYWMKIGZhc3QvYXR0YWNobWVudC9hdHRhY2htZW50LXN1YnRpdGxlLXJlc2l6ZS5odG1s
IFsgU2tpcCBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0
VXNlck1lZGlhLXJ2ZmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9nZXRVc2VyTWVkaWEtcnZmYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQ5ZDhiNWYzMzdk
ZWQ0ZjhhOGYwYzY5ZjE1MzczOTZjZTkzNWQ0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorCisKK1BBU1MgVmFsaWRhdGUgY2FsbGJhY2tzIGNhbiBiZSB1cGRhdGVkIHdp
dGhpbiBhIGNhbGxiYWNrCitQQVNTIFZhbGlkYXRlIGNhbGxiYWNrcyBhbmQgbWV0YWRhdGEgZm9y
IGdldFVzZXJNZWRpYQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L2dldFVzZXJNZWRpYS1ydmZjLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dl
dFVzZXJNZWRpYS1ydmZjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjliODE2Y2JjNGJjYTA2MDhjNjA1OTdj
YTA2ODE0NmFjOWJlMjJmYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMuaHRtbApAQCAtMCwwICsxLDcyIEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+CisgICAgICAgIDx0aXRsZT5UZXN0aW5nIHJ2ZmMgb24gZ2V0VXNlck1lZGlhIHN0cmVhbTwv
dGl0bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAg
ICAgIDx2aWRlbyBpZD0idmlkZW8iIGF1dG9wbGF5PSIiPjwvdmlkZW8+CisgICAgICAgIDxzY3Jp
cHQ+Cithc3luYyBmdW5jdGlvbiBncmFiTmV4dE1ldGFkYXRhKHZpZGVvKQoreworICAgIHJldHVy
biBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGNvbnN0IGlkZW50
aWZpZXIgPSB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKChub3csIG1ldGFkYXRhKSA9
PiB7CisgICAgICAgICAgICByZXNvbHZlKG1ldGFkYXRhKTsKKyAgICAgICAgICAgIHZpZGVvLmNh
bmNlbFZpZGVvRnJhbWVDYWxsYmFjayhpZGVudGlmaWVyKTsKKyAgICAgICAgfSk7CisgICAgICAg
IHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgcmVqZWN0KCJubyBtZXRhZGF0YSBmb3Ig
IiArIGlkZW50aWZpZXIpOworICAgICAgICAgICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxi
YWNrKGlkZW50aWZpZXIpOworICAgICAgICB9LCA1MDAwKTsKKyAgICB9KTsKK30KKworcHJvbWlz
ZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3QgbG9jYWxTdHJlYW0gPSBhd2FpdCBu
YXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHsgd2lkdGg6IDY0MCwg
aGVpZ2h0OiA0ODAgfSB9KTsKKyAgICB2aWRlby5zcmNPYmplY3QgPSBsb2NhbFN0cmVhbTsKKyAg
ICBhd2FpdCB2aWRlby5wbGF5KCk7CisKKyAgICBsZXQgcmVzb2x2ZTsKKyAgICBsZXQgcHJvbWlz
ZSA9IG5ldyBQcm9taXNlKHIgPT4gcmVzb2x2ZSA9IHIpOworICAgIGNvbnN0IGlkMSA9IHZpZGVv
LnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKG5vdywgbWV0YWRhdGEpID0+IHsKKyAgICAgICAg
dmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKGlkMSk7CisgICAgICAgIHZpZGVvLmNhbmNl
bFZpZGVvRnJhbWVDYWxsYmFjayhpZDIpOworCisgICAgICAgIGNvbnN0IGlkMyA9IHZpZGVvLnJl
cXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKG5vdywgbWV0YWRhdGEpID0+IHsgYXNzZXJ0X25vdF9y
ZWFjaGVkKCk7IH0pOworICAgICAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soaWQz
KTsKKyAgICAgICAgc2V0VGltZW91dChyZXNvbHZlLCAxMDApOworICAgIH0pOworCisgICAgY29u
c3QgaWQyID0gdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygobm93LCBtZXRhZGF0YSkg
PT4geworICAgICAgICBhc3NlcnRfbm90X3JlYWNoZWQoKTsKKyAgICB9KTsKKworICAgIHJldHVy
biBwcm9taXNlOworfSwgIlZhbGlkYXRlIGNhbGxiYWNrcyBjYW4gYmUgdXBkYXRlZCB3aXRoaW4g
YSBjYWxsYmFjayIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25z
dCBsb2NhbFN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlh
KHt2aWRlbzogeyB3aWR0aDogNjQwLCBoZWlnaHQ6IDQ4MCB9IH0pOworICAgIHZpZGVvLnNyY09i
amVjdCA9IGxvY2FsU3RyZWFtOworICAgIGF3YWl0IHZpZGVvLnBsYXkoKTsKKworICAgIGxldCBt
ZXRhZGF0YSA9IGF3YWl0IGdyYWJOZXh0TWV0YWRhdGEodmlkZW8pOworICAgIGFzc2VydF9lcXVh
bHMobWV0YWRhdGEud2lkdGgsIDY0MCk7CisgICAgYXNzZXJ0X2VxdWFscyhtZXRhZGF0YS5oZWln
aHQsIDQ4MCk7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5wcmVzZW50ZWRGcmFt
ZXMsIDApOworICAgIGNvbnN0IHByZXNlbnRlZEZyYW1lcyA9IG1ldGFkYXRhLnByZXNlbnRlZEZy
YW1lczsKKworICAgIGF3YWl0IGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0uYXBwbHlD
b25zdHJhaW50cyh7d2lkdGg6IDMyMCwgaGVpZ2h0OiAyNDB9KTsKKworICAgIGxldCBjb3VudGVy
ID0gMDsKKyAgICB3aGlsZSAoKytjb3VudGVyIDwgMTAwICYmIG1ldGFkYXRhLndpZHRoICE9PSAz
MjApIHsKKyAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJl
c29sdmUsIDUwKSk7CisgICAgICAgIG1ldGFkYXRhID0gYXdhaXQgZ3JhYk5leHRNZXRhZGF0YSh2
aWRlbyk7CisgICAgfQorICAgIGFzc2VydF9lcXVhbHMobWV0YWRhdGEud2lkdGgsIDMyMCk7Cisg
ICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXMsIHByZXNlbnRl
ZEZyYW1lcyk7Cit9LCAiVmFsaWRhdGUgY2FsbGJhY2tzIGFuZCBtZXRhZGF0YSBmb3IgZ2V0VXNl
ck1lZGlhIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0
aW9ucy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhw
ZWN0YXRpb25zLmpzb24KaW5kZXggNjEwZGQ1Y2ZkNWFmNTBmYmQ2OTExZmMxNzA1MzhiZmE0MGJk
MjY5Ni4uMDExYWJlMjE1YTMyOGZjMjczNTRlNzZkNjRmZWY0YzkxOTc3OTZmMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25z
Lmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhw
ZWN0YXRpb25zLmpzb24KQEAgLTQ0NSw2ICs0NDUsNyBAQAogICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvdXJsIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdXNlci10aW1pbmci
OiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy92aWJyYXRpb24iOiAic2tpcCIs
IAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYyI6ICJpbXBvcnQiLCAKICAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL3Zpc3VhbC12aWV3cG9ydCI6ICJpbXBvcnQiLCAKICAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL3dhaS1hcmlhIjogInNraXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRl
c3RzL3dhc20iOiAiaW1wb3J0IiwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvTUVUQS55bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvTUVUQS55bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWU1ODFmNDIzNGFkMzljODE5ZTM3MWE1MzJjZDQxNjQyMDYwYTdjNAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlk
ZW8tcnZmYy9NRVRBLnltbApAQCAtMCwwICsxLDMgQEAKK3NwZWM6IGh0dHBzOi8vd2ljZy5naXRo
dWIuaW8vdmlkZW8tcnZmYy8KK3N1Z2dlc3RlZF9yZXZpZXdlcnM6CisgIC0gdGd1aWxiZXJ0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMvUkVBRE1FLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy92aWRlby1ydmZjL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjdhMzUzMDUxNTg2MWM5
MWM0YzAxMmI5M2MyZTBjZjhlOTEzZGVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL1JFQURNRS5tZApAQCAt
MCwwICsxLDcgQEAKKyMgSFRNTFZpZGVvRWxlbWVudC5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNr
IHNwZWNpZmljYXRpb24gVGVzdHMKKworVGhlIEhUTUxWaWRlb0VsZW1lbnQucmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFjayBzcGVjaWZpY2F0aW9uIGlzIGF2YWlsYWJsZSBoZXJlOiBodHRwczovL3dp
Y2cuZ2l0aHViLmlvL3ZpZGVvLXJ2ZmMKKworR2l0SHViIHJlcG9zaXRvcnk6IGh0dHBzOi8vZ2l0
aHViLmNvbS9XSUNHL3ZpZGVvLXJ2ZmMKKworRmlsZSBhbiBpc3N1ZTogaHR0cHM6Ly9naXRodWIu
Y29tL3dpY2cvdmlkZW8tcnZmYy9pc3N1ZXMvbmV3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53aW5k
b3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xNGJjYjYyNGM1NGEwMWQ0MWQ5ODkxYWFjNDBjOTIxZjI4Mzk2NjU4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBACisKK1BB
U1MgaWRsX3Rlc3Qgc2V0dXAKK1BBU1MgaWRsX3Rlc3QgdmFsaWRhdGlvbgorUEFTUyBQYXJ0aWFs
IGludGVyZmFjZSBIVE1MVmlkZW9FbGVtZW50OiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZAor
UEFTUyBQYXJ0aWFsIGludGVyZmFjZSBIVE1MVmlkZW9FbGVtZW50OiBtZW1iZXIgbmFtZXMgYXJl
IHVuaXF1ZQorUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBEb2N1bWVu
dEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBI
VE1MRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q29udGVudEVkaXRhYmxlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQorUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBIVE1MT3JTVkdFbGVtZW50OiBt
ZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6
IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgTm9uRG9jdW1l
bnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGlu
Y2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBp
bmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEhUTUxWaWRl
b0VsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gcmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayhW
aWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrKQorUEFTUyBIVE1MVmlkZW9FbGVtZW50IGludGVyZmFj
ZTogb3BlcmF0aW9uIGNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayh1bnNpZ25lZCBsb25nKQorUEFT
UyBIVE1MVmlkZW9FbGVtZW50IGludGVyZmFjZTogdmlkZW8gbXVzdCBpbmhlcml0IHByb3BlcnR5
ICJyZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2spIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBIVE1MVmlkZW9FbGVtZW50IGludGVyZmFjZTogY2Fs
bGluZyByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2sp
IG9uIHZpZGVvIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IKK1BB
U1MgSFRNTFZpZGVvRWxlbWVudCBpbnRlcmZhY2U6IHZpZGVvIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAiY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKHVuc2lnbmVkIGxvbmcpIiB3aXRoIHRoZSBwcm9w
ZXIgdHlwZQorUEFTUyBIVE1MVmlkZW9FbGVtZW50IGludGVyZmFjZTogY2FsbGluZyBjYW5jZWxW
aWRlb0ZyYW1lQ2FsbGJhY2sodW5zaWduZWQgbG9uZykgb24gdmlkZW8gd2l0aCB0b28gZmV3IGFy
Z3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvcgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53aW5k
b3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlk
ZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkz
YjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53
aW5kb3cuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3Ig
V2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53aW5kb3cu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2
ZmMvaWRsaGFybmVzcy53aW5kb3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmE5ZTRlMDk4OGJmNjdjODhkY2Nk
Mjk3Y2Y1NjRiYjk3ZDVkZTZiZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy5q
cwpAQCAtMCwwICsxLDE3IEBACisvLyBNRVRBOiBzY3JpcHQ9L3Jlc291cmNlcy9XZWJJRExQYXJz
ZXIuanMKKy8vIE1FVEE6IHNjcmlwdD0vcmVzb3VyY2VzL2lkbGhhcm5lc3MuanMKKy8vIE1FVEE6
IHRpbWVvdXQ9bG9uZworCisndXNlIHN0cmljdCc7CisKK2lkbF90ZXN0KAorICBbJ3ZpZGVvLXJ2
ZmMnXSwKKyAgWydodG1sJywgJ2RvbSddLAorICBpZGxfYXJyYXkgPT4geworICAgIGlkbF9hcnJh
eS5hZGRfb2JqZWN0cyh7CisgICAgICBIVE1MVmlkZW9FbGVtZW50OiBbJ3ZpZGVvJ10sCisgICAg
fSk7CisgICAgc2VsZi52aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7Cisg
IH0KKyk7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14
ci1zZXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNr
LWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjQ3N2Mw
OTMxOTlkNTJmMmVjOGIyZmU2ZTE1NTZlZGVkOTE5YTU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVl
c3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhyLXNlc3Npb24uaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsOCBAQAorCitIYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9
IG51bGwKKworVElNRU9VVCBNYWtlIHN1cmUgdmlkZW8uclZGQyB3b3JrcyBkdXJpbmcgYSBub24t
aW1tZXJzaXZlIHNlc3Npb24gLSB3ZWJnbCBUZXN0IHRpbWVkIG91dAorTk9UUlVOIE1ha2Ugc3Vy
ZSB2aWRlby5yVkZDIHdvcmtzIGR1cmluZyBhIG5vbi1pbW1lcnNpdmUgc2Vzc2lvbiAtIHdlYmds
MgorTk9UUlVOIE1ha2Ugc3VyZSB2aWRlby5yVkZDIHdvcmtzIGR1cmluZyBhbiBpbW1lcnNpdmUg
c2Vzc2lvbiAtIHdlYmdsCitOT1RSVU4gTWFrZSBzdXJlIHZpZGVvLnJWRkMgd29ya3MgZHVyaW5n
IGFuIGltbWVyc2l2ZSBzZXNzaW9uIC0gd2ViZ2wyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVv
LWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRl
by1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUyNzdmYmJhOTJmYmY2MzU3OWFkNGQ0ZDVhMmNhMWRjMmUzNTZjZDYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2
ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy5o
dG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8dGl0bGU+VGVz
dCB0aGF0IHZpZGVvLnJWRkMgY2FsbGJhY2tzIHN0YXJ0ZWQgYmVmb3JlIGFuIFhSU2Vzc2lvbiB3
b3JrLjwvdGl0bGU+Cis8Ym9keT4KKzwvYm9keT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL21lZGlhLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi93ZWJ4ci9yZXNvdXJjZXMvd2VieHJfdXRpbC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vd2VieHIvcmVzb3VyY2VzL3dlYnhyX3Rlc3RfY29u
c3RhbnRzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKy8vIFN0YXJ0IHRoZSB2aWRlby5yVkZD
IGNhbGxiYWNrcyBiZWZvcmUgc3RhcnRpbmcgdGhlIFhSIFNlc3Npb24uCitsZXQgdmlkZW8gPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOwordmlkZW8uc3JjID0gZ2V0VmlkZW9VUkko
Jy9tZWRpYS9tb3ZpZV81Jyk7CisKK3ZhciBudW1iZXJWRkNzID0gMDsKK2xldCB2aWRlb0NhbGxi
YWNrID0gKCkgPT4geworICAgIG51bWJlclZGQ3MrKzsKKyAgICB2aWRlby5yZXF1ZXN0VmlkZW9G
cmFtZUNhbGxiYWNrKHZpZGVvQ2FsbGJhY2spOworfQorCit2aWRlby5yZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrKHZpZGVvQ2FsbGJhY2spOwordmlkZW8ucGxheSgpOworCitsZXQgdGVzdEZ1bmN0
aW9uID0gYXN5bmMgZnVuY3Rpb24oc2Vzc2lvbiwgZmFrZURldmljZUNvbnRyb2xsZXIsIHQpIHsK
KyAgICBsZXQgd2F0Y2hlckRvbmUgPSBuZXcgRXZlbnQoIndhdGNoZXJkb25lIik7CisgICAgbGV0
IGV2ZW50V2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIodCwgc2Vzc2lvbiwgWyJlbmQiLCAid2F0
Y2hlcmRvbmUiXSk7CisgICAgbGV0IGV2ZW50UHJvbWlzZSA9IGV2ZW50V2F0Y2hlci53YWl0X2Zv
cihbImVuZCIsICJ3YXRjaGVyZG9uZSJdKTsKKworICAgIG51bWJlclZGQ3MgPSAwOworCisgICAg
ZnVuY3Rpb24gb25YUkZyYW1lKHRpbWUsIGZyYW1lKSB7CisgICAgICAgIGlmKG51bWJlclZGQ3Mg
Pj0gMikgeworICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHZpZGVvLnJWRkNzIGFyZSBzdGlsbCBj
b21pbmcgdGhyb3VnaCBiZWZvcmUgZW5kaW5nIHRoZQorICAgICAgICAgICAgLy8gc2Vzc2lvbi4K
KyAgICAgICAgICAgIHNlc3Npb24uZW5kKCk7CisgICAgICAgIH0KKworICAgICAgICBzZXNzaW9u
LnJlcXVlc3RBbmltYXRpb25GcmFtZShvblhSRnJhbWUpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IG9uU2Vzc2lvbkVuZChldmVudCkgeworICAgICAgICAvLyBNYWtlIHN1cmUgd2UgYXJlIHN0aWxs
IGdldHRpbmcgclZGQyBjYWxsYmFja3MgYWZ0ZXIgdGhlIHNlc3Npb24gZW5kLgorICAgICAgICBu
dW1iZXJWRkNzID0gMDsKKyAgICAgICAgdC5zdGVwX3dhaXRfZnVuYygoKSA9PiBudW1iZXJWRkNz
ID49IDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gc2Vzc2lvbi5kaXNwYXRjaEV2
ZW50KHdhdGNoZXJEb25lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiVGltZSBvdXQgd2Fp
dGluZyBmb3IgVkZDIGNhbGxiYWNrcyIpOworICAgIH0KKworICAgIHNlc3Npb24uYWRkRXZlbnRM
aXN0ZW5lcigiZW5kIiwgb25TZXNzaW9uRW5kLCBmYWxzZSk7CisgICAgc2Vzc2lvbi5yZXF1ZXN0
QW5pbWF0aW9uRnJhbWUob25YUkZyYW1lKTsKKworICAgIHJldHVybiBldmVudFByb21pc2U7Cit9
CisKK3hyX3Nlc3Npb25fcHJvbWlzZV90ZXN0KCdNYWtlIHN1cmUgdmlkZW8uclZGQyB3b3JrcyBk
dXJpbmcgYSBub24taW1tZXJzaXZlIHNlc3Npb24nLAorICAgIHRlc3RGdW5jdGlvbiwgVFJBQ0tF
RF9JTU1FUlNJVkVfREVWSUNFLCAnaW5saW5lJyk7CisKK3ZpZGVvLmN1cnJlbnRUaW1lID0gMDsK
KworeHJfc2Vzc2lvbl9wcm9taXNlX3Rlc3QoJ01ha2Ugc3VyZSB2aWRlby5yVkZDIHdvcmtzIGR1
cmluZyBhbiBpbW1lcnNpdmUgc2Vzc2lvbicsCisgICAgdGVzdEZ1bmN0aW9uLCBUUkFDS0VEX0lN
TUVSU0lWRV9ERVZJQ0UsICdpbW1lcnNpdmUtdnInKTsKKworPC9zY3JpcHQ+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kb20tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3Jl
cXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZG9tLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
NjM5ZDRmMjg4NWUxZjk3NjQ4ZDUwNTQ3NzBlYWZlYjQzMmRjNTBkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZj
L3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZG9tLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDcgQEAKKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK1RJTUVP
VVQgVGVzdCBhIHZpZGVvIG91dHNpZGUgb2YgdGhlIERPTSBjYW4gc3RpbGwgdXNlIHZpZGVvLnJW
RkMuIFRlc3QgdGltZWQgb3V0CitUSU1FT1VUIFRlc3QgdmlkZW8uclZGQyB3b3JrcyB3aXRoICJk
aXNwbGF5Om5vbmUiLiBUZXN0IHRpbWVkIG91dAorVElNRU9VVCBUZXN0IHZpZGVvLnJWRkMgd29y
a3Mgd2l0aCAidmlzaWJpbGl0eTpoaWRkZW4iLiBUZXN0IHRpbWVkIG91dAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
cmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kb20uaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1l
LWNhbGxiYWNrLWRvbS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyNzdkNzI5Nzg4M2M0Y2Q0ZjQ3MmIwOGM0
Mzk5ODA2MjgwZmU4ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxs
YmFjay1kb20uaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PHRpdGxlPlRlc3QgdGhlIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKSBBUEkgZm9y
IG5vbiB2aXNpYmxlIHZpZGVvIGVsZW1lbnRzLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9tZWRp
YS5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzwvYm9keT4KKzxzY3JpcHQ+Cit2YXIgdGVzdFZpZGVv
ID0geworICB1cmw6IGdldFZpZGVvVVJJKCcvbWVkaWEvbW92aWVfNScpLAorICBoZWlnaHQ6IDI0
MCwKKyAgd2lkdGg6IDMyMCwKK30KKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgbGV0
IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKworICAgIHZpZGVvLnJl
cXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodC5zdGVwX2Z1bmNfZG9uZSgpKTsKKyAgICB2aWRlby5z
cmMgPSB0ZXN0VmlkZW8udXJsOworICAgIHZpZGVvLnBsYXkoKTsKKworfSwgJ1Rlc3QgYSB2aWRl
byBvdXRzaWRlIG9mIHRoZSBET00gY2FuIHN0aWxsIHVzZSB2aWRlby5yVkZDLicpOworCitmdW5j
dGlvbiBydmZjU3R5bGVUZXN0KGFwcGx5U3R5bGUsIGRlc2NyaXB0aW9uKSB7CisgICAgYXN5bmNf
dGVzdChmdW5jdGlvbih0KSB7CisgICAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCd2aWRlbycpOworICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7Cisg
ICAgICBhcHBseVN0eWxlKHZpZGVvKTsKKworICAgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVD
YWxsYmFjaygKKyAgICAgICAgdC5zdGVwX2Z1bmMoIF8gPT4geworICAgICAgICAgIC8vIE1ha2Ug
c3VyZSB3ZSBjYW4gcmVjZWl2ZSBtb3JlIHRoYW4gb25lIGNhbGxiYWNrLgorICAgICAgICAgIHZp
ZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodC5zdGVwX2Z1bmNfZG9uZSgpKTsKKyAgICAg
ICAgfSkKKyAgICAgICk7CisKKyAgICAgIHZpZGVvLnNyYyA9IHRlc3RWaWRlby51cmw7CisgICAg
ICB2aWRlby5wbGF5KCk7CisgICAgfSwgZGVzY3JpcHRpb24pOworfQorCitydmZjU3R5bGVUZXN0
KCh2aWRlbykgPT4geyB2aWRlby5zdHlsZS5kaXNwbGF5ID0gIm5vbmUifSwKKyAgJ1Rlc3Qgdmlk
ZW8uclZGQyB3b3JrcyB3aXRoICJkaXNwbGF5Om5vbmUiLicpOworCitydmZjU3R5bGVUZXN0KCh2
aWRlbykgPT4geyB2aWRlby5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiJ9LAorICAnVGVzdCB2
aWRlby5yVkZDIHdvcmtzIHdpdGggInZpc2liaWxpdHk6aGlkZGVuIi4nKTsKKworPC9zY3JpcHQ+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmct
eHItc2Vzc2lvbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFj
ay1kdXJpbmcteHItc2Vzc2lvbi5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTc3MjAy
MGU0OTAyNzFiNDM0MjQxZDk0OTg2MjFmYTllYjgxYTRjNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1
ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmluZy14ci1zZXNzaW9uLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDYgQEAKKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2Ug
PSBudWxsCisKK1RJTUVPVVQgTWFrZSBzdXJlIHZpZGVvLnJWRkMgY2FsbGJhY2tzIHN0YXJ0ZWQg
ZHVyaW5nIGFuIGltbWVyc2l2ZSBzZXNzaW9uIGNvbnRpbnVlIGFmdGVyIGl0IGVuZHMgLSB3ZWJn
bCBUZXN0IHRpbWVkIG91dAorTk9UUlVOIE1ha2Ugc3VyZSB2aWRlby5yVkZDIGNhbGxiYWNrcyBz
dGFydGVkIGR1cmluZyBhbiBpbW1lcnNpdmUgc2Vzc2lvbiBjb250aW51ZSBhZnRlciBpdCBlbmRz
IC0gd2ViZ2wyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmlu
Zy14ci1zZXNzaW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJp
bmcteHItc2Vzc2lvbi5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0NTYxZWU1ZmQwNjU5NDRkMTMz
ZmE1ZDMxNGI2Y2VkMmY3OTQ3M2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFt
ZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5odHRwcy5odG1sCkBAIC0wLDAgKzEsNjAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8dGl0bGU+VGVzdCB0aGF0IHZpZGVvLnJWRkMgY2Fs
bGJhY2tzIHN0YXJ0ZWQgZHVyaW5nIGFuIFhSU2Vzc2lvbiB3b3JrLjwvdGl0bGU+Cis8Ym9keT4K
KyAgICA8Y2FudmFzLz4KKzwvYm9keT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL21lZGlhLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi93ZWJ4ci9yZXNvdXJjZXMvd2VieHJfdXRpbC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vd2VieHIvcmVzb3VyY2VzL3dlYnhyX3Rlc3RfY29uc3RhbnRz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2xldCB0ZXN0RnVuY3Rpb24gPSBhc3luYyBmdW5j
dGlvbihzZXNzaW9uLCBmYWtlRGV2aWNlQ29udHJvbGxlciwgdCkgeworICAgIGxldCB3YXRjaGVy
RG9uZSA9IG5ldyBFdmVudCgid2F0Y2hlcmRvbmUiKTsKKyAgICBsZXQgZXZlbnRXYXRjaGVyID0g
bmV3IEV2ZW50V2F0Y2hlcih0LCBzZXNzaW9uLCBbImVuZCIsICJ3YXRjaGVyZG9uZSJdKTsKKyAg
ICBsZXQgZXZlbnRQcm9taXNlID0gZXZlbnRXYXRjaGVyLndhaXRfZm9yKFsiZW5kIiwgIndhdGNo
ZXJkb25lIl0pOworCisgICAgLy8gU3RhcnQgdGhlIHZpZGVvLnJWRkMgY2FsbGJhY2tzIHdoaWxl
IHdlIGFyZSBpbiB0aGUgdGhlIFhSIFNlc3Npb24uCisgICAgbGV0IHZpZGVvID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICB2aWRlby5zcmMgPSBnZXRWaWRlb1VSSSgnL21l
ZGlhL21vdmllXzUnKTsKKworICAgIHZhciBudW1iZXJWRkNzID0gMDsKKyAgICBsZXQgdmlkZW9D
YWxsYmFjayA9ICgpID0+IHsKKyAgICAgICAgbnVtYmVyVkZDcysrOworICAgICAgICB2aWRlby5y
ZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHZpZGVvQ2FsbGJhY2spOworICAgIH0KKworICAgIHZp
ZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodmlkZW9DYWxsYmFjayk7CisgICAgdmlkZW8u
cGxheSgpOworCisgICAgZnVuY3Rpb24gb25YUkZyYW1lKHRpbWUsIGZyYW1lKSB7CisgICAgICAg
IGlmKG51bWJlclZGQ3MgPj0gMikgeworICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHZpZGVvLnJW
RkNzIGFyZSBjb21pbmcgdGhyb3VnaCBiZWZvcmUgZW5kaW5nIHRoZQorICAgICAgICAgICAgLy8g
c2Vzc2lvbi4KKyAgICAgICAgICAgIHNlc3Npb24uZW5kKCk7CisgICAgICAgIH0KKworICAgICAg
ICBzZXNzaW9uLnJlcXVlc3RBbmltYXRpb25GcmFtZShvblhSRnJhbWUpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIG9uU2Vzc2lvbkVuZChldmVudCkgeworICAgICAgICAvLyBNYWtlIHN1cmUgd2Ug
YXJlIHN0aWxsIGdldHRpbmcgclZGQyBjYWxsYmFja3MgYWZ0ZXIgdGhlIHNlc3Npb24gZW5kLgor
ICAgICAgICBudW1iZXJWRkNzID0gMDsKKyAgICAgICAgdC5zdGVwX3dhaXRfZnVuYygoKSA9PiBu
dW1iZXJWRkNzID49IDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gc2Vzc2lvbi5k
aXNwYXRjaEV2ZW50KHdhdGNoZXJEb25lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiVGlt
ZSBvdXQgd2FpdGluZyBmb3IgVkZDIGNhbGxiYWNrcyIpOworICAgIH0KKworICAgIHNlc3Npb24u
YWRkRXZlbnRMaXN0ZW5lcigiZW5kIiwgb25TZXNzaW9uRW5kLCBmYWxzZSk7CisgICAgc2Vzc2lv
bi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUob25YUkZyYW1lKTsKKworICAgIHJldHVybiBldmVudFBy
b21pc2U7Cit9CisKK3hyX3Nlc3Npb25fcHJvbWlzZV90ZXN0KCdNYWtlIHN1cmUgdmlkZW8uclZG
QyBjYWxsYmFja3Mgc3RhcnRlZCBkdXJpbmcgYW4gaW1tZXJzaXZlIHNlc3Npb24gY29udGludWUg
YWZ0ZXIgaXQgZW5kcycsCisgICAgdGVzdEZ1bmN0aW9uLCBUUkFDS0VEX0lNTUVSU0lWRV9ERVZJ
Q0UsICdpbW1lcnNpdmUtdnInKTsKKworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVx
dWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFt
ZS1jYWxsYmFjay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E3Y2IzZTk0Y2RmYjI1MjU4Yjlk
OTliNGY0ZDQ3ZWRhMGU3NzIxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1l
LWNhbGxiYWNrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKKworSGFybmVzcyBFcnJv
ciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK1RJTUVPVVQgVGVzdCB3ZSBjYW4gcmVnaXN0
ZXIgYSB2aWRlby5yVkZDIGNhbGxiYWNrLiBUZXN0IHRpbWVkIG91dAorVElNRU9VVCBUZXN0IHZp
ZGVvLnJWRkMgY2FsbGJhY2tzIHJ1biBiZWZvcmUgd2luZG93LnJBRiBjYWxsYmFja3MuIFRlc3Qg
dGltZWQgb3V0CitUSU1FT1VUIFRlc3Qgd2UgY2FuIGNhbmNlbCBhIHZpZGVvLnJWRkMgcmVxdWVz
dC4gVGVzdCB0aW1lZCBvdXQKK1BBU1MgVGVzdCBpbnZhbGlkIGNhbGxzIHRvIHRoZSB2aWRlby5y
VkZDIEFQSS4KK1RJTUVPVVQgVGVzdCB2aWRlby5yVkZDIGRvZXMgbm90IHN0b3Agd2hlbiBzd2l0
Y2hpbmcgc291cmNlcy4gVGVzdCB0aW1lZCBvdXQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8t
ZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUt
Y2FsbGJhY2stcGFyYWxsZWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmZTY4NGFlOGU2NmRh
YjhjY2U2OGQyMjc1MzU5NWE4NDQ4YzZiOTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRl
by1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisK
KworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK1RJTUVPVVQgVGVz
dCBjYWxsYmFja3MgZ2V0IHRoZSBzYW1lIGluZm9ybWF0aW9uLiBUZXN0IHRpbWVkIG91dAorVElN
RU9VVCBUZXN0IHdlIGNhbiBjYW5jZWwgY2FsbGJhY2tzIGZyb20gY2FsbGJhY2tzLiBUZXN0IHRp
bWVkIG91dAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxl
bC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRl
by1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xNGM1ZGUxYWRmNTViYTAwMTZhYjk5ODU3NzZjNTY4ZTQ5ZjU5NTZkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRl
by1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwuaHRtbApAQCAtMCww
ICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHRpdGxlPlRlc3QgaGF2aW5nIG11
bHRpcGxlIHZpZGVvLnJWRkMgY2FsbGJhY2tzIGluIGZsaWdodCBmb3IgYSBzaW5nbGUgZWxlbWVu
dC48L3RpdGxlPgorPGJvZHk+PC9ib2R5PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vbWVkaWEuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgbGV0IHZpZGVv
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKHZpZGVvKTsKKworICAgIGxldCBmaXJzdFRpbWU7CisgICAgbGV0IGZpcnN0TWV0
YWRhdGE7CisKKyAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHQuc3RlcF9mdW5j
KCh0aW1lLCBtZXRhZGF0YSkgPT4geworICAgICAgZmlyc3RUaW1lID0gdGltZTsKKyAgICAgIGZp
cnN0TWV0YWRhdGEgPSBtZXRhZGF0YTsKKyAgICB9KSk7CisKKyAgICB2aWRlby5yZXF1ZXN0Vmlk
ZW9GcmFtZUNhbGxiYWNrKHQuc3RlcF9mdW5jX2RvbmUoKHRpbWUsIG1ldGFkYXRhKSA9PiB7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKGZpcnN0VGltZSwgdGltZSk7CisgICAgICBhc3NlcnRfb2JqZWN0
X2VxdWFscyhmaXJzdE1ldGFkYXRhLCBtZXRhZGF0YSk7CisgICAgfSkpOworCisgICAgdmlkZW8u
c3JjID0gZ2V0VmlkZW9VUkkoJy9tZWRpYS9tb3ZpZV81Jyk7CisgICAgdmlkZW8ucGxheSgpOwor
Cit9LCAnVGVzdCBjYWxsYmFja3MgZ2V0IHRoZSBzYW1lIGluZm9ybWF0aW9uLicpOworCithc3lu
Y190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCd2aWRlbycpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOworCisg
ICAgbGV0IHNlY29uZENhbGxiYWNrSWQ7CisKKyAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrKAorICAgICAgdC5zdGVwX2Z1bmMoXyA9PiB7IHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVD
YWxsYmFjayhzZWNvbmRDYWxsYmFja0lkKTsgfSkKKyAgICApOworCisgICAgc2Vjb25kQ2FsbGJh
Y2tJZCA9IHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soCisgICAgICB0LnN0ZXBfZnVu
YyhfID0+IHsKKyAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiQ2FuY2VsbGVkIGNhbGxiYWNrcyBz
aG91bGRuJ3QgYmUgZXhlY3V0ZWQiKQorICAgICAgfSkKKyAgICApOworCisgICAgLy8gTk9URTog
VGhpcyBjYWxsYmFjayBzaG91bGQgYmUgZXhlY3V0ZWQgbGFzdC4KKyAgICB2aWRlby5yZXF1ZXN0
VmlkZW9GcmFtZUNhbGxiYWNrKAorICAgICAgdC5zdGVwX2Z1bmNfZG9uZSgpCisgICAgKTsKKwor
ICAgIHZpZGVvLnNyYyA9IGdldFZpZGVvVVJJKCcvbWVkaWEvbW92aWVfNScpOworICAgIHZpZGVv
LnBsYXkoKTsKK30sICdUZXN0IHdlIGNhbiBjYW5jZWwgY2FsbGJhY2tzIGZyb20gY2FsbGJhY2tz
LicpOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1j
YWxsYmFjay1yZXBlYXRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJh
Y2stcmVwZWF0aW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGE1YmUzZGQyNTEyYjg1YzM4
NTU1YjhmM2NlNzAzNjc4ZWQ0ZGZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJh
bWUtY2FsbGJhY2stcmVwZWF0aW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKworCitI
YXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9VVCBUZXN0IG5l
dyBjYWxsYmFja3MgYXJlIG9ubHkgY2FsbGVkIG9uIHRoZSBuZXh0IGZyYW1lLiBUZXN0IHRpbWVk
IG91dAorVElNRU9VVCBUZXN0IGNoYWluaW5nIGNhbGxzIHRvIHZpZGVvLnJWRkMsIGFuZCB2ZXJp
ZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlcnMuIFRlc3QgdGltZWQgb3V0CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9y
ZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8t
ZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTYzN2EwODcyY2IwZDBj
MTUxZTBhODBhNmE1Njk0NDlmZDIyMmExYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVv
LWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy5odG1sCkBAIC0wLDAgKzEsODAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8dGl0bGU+VGVzdCByZXBlYXRlZGx5IGNoYWluaW5nIHZpZGVvLnJW
RkMoKSBjYWxsYmFja3MuPC90aXRsZT4KKzxib2R5PjwvYm9keT4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL21l
ZGlhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewor
ICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICBsZXQgZmlyc3RUaW1lOworICAg
IHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodC5zdGVwX2Z1bmMoKHRpbWUpID0+IHsK
KyAgICAgIGZpcnN0VGltZSA9IHRpbWU7CisKKyAgICAgIC8vIFF1ZXVlIHVwIGEgY2FsbGJhY2sg
YW5kIG1ha2Ugc3VyZSBpdCdzIG5vdCBpbW1lZGlhdGVseSBleGVjdXRlZC4KKyAgICAgIGxldCBz
ZWNvbmRUaW1lOworICAgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0ZXBf
ZnVuYygodGltZSkgPT4geworICAgICAgICBzZWNvbmRUaW1lID0gdGltZTsKKyAgICAgICAgYXNz
ZXJ0X2dyZWF0ZXJfdGhhbihzZWNvbmRUaW1lLCBmaXJzdFRpbWUsICJDYWxsYmFja3Mgc2hvdWxk
IGJlIGV4ZWN1dGVkIG9uIHRoZSBuZXh0IGZyYW1lIik7CisgICAgICB9KSkKKworICAgICAgLy8g
UXVldWUgdXAgYSBzZWNvbmQgY2FsbGJhY2ssIGFuZCBtYWtlIHN1cmUgaXQncyBjYWxsZWQgYXQg
dGhlIHNhbWUgdGltZQorICAgICAgLy8gYXMgdGhlIG9uZSB3ZSBqdXN0IHF1ZXVlZCB1cC4KKyAg
ICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodC5zdGVwX2Z1bmNfZG9uZSgodGlt
ZSkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHRpbWUsIHNlY29uZFRpbWUsICJDYWxsYmFj
a3MgcXVldWVkIHRvZ2V0aGVyIHNob3VsZCBiZSBjYWxsZWQgYXQgdGhlIHNhbWUgdGltZSIpOwor
ICAgICAgfSkpCisKKyAgICB9KSk7CisKKyAgICB2aWRlby5zcmMgPSBnZXRWaWRlb1VSSSgnL21l
ZGlhL21vdmllXzUnKTsKKyAgICB2aWRlby5wbGF5KCk7CisKK30sICdUZXN0IG5ldyBjYWxsYmFj
a3MgYXJlIG9ubHkgY2FsbGVkIG9uIHRoZSBuZXh0IGZyYW1lLicpOworCithc3luY190ZXN0KGZ1
bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRl
bycpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOworCisgICAgbGV0IG1h
eE51bWJlck9mQ2FsbHMgPSAxMDsKKyAgICBsZXQgY3VycmVudENhbGxOdW1iZXIgPSAwOworICAg
IGxldCBsYXN0TWV0YWRhdGE7CisKKyAgICBmdW5jdGlvbiB2ZXJpZnlNZXRhZGF0YShsYXN0LCBj
dXJyZW50KSB7CisgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGN1cnJlbnQucHJlc2VudGVkRnJh
bWVzLCBsYXN0LnByZXNlbnRlZEZyYW1lcywgInByZXNlbnRlZEZyYW1lcyBzaG91bGQgYmUgbW9u
b3RvbmljYWxseSBpbmNyZWFzaW5nIik7CisgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGN1cnJl
bnQucHJlc2VudGF0aW9uVGltZSwgbGFzdC5wcmVzZW50YXRpb25UaW1lLCAicHJlc2VudGF0aW9u
VGltZSBzaG91bGQgYmUgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIik7CisgICAgICBhc3NlcnRf
Z3JlYXRlcl90aGFuKGN1cnJlbnQuZXhwZWN0ZWREaXNwbGF5VGltZSwgbGFzdC5leHBlY3RlZERp
c3BsYXlUaW1lLCAiZXhwZWN0ZWREaXNwbGF5VGltZSBzaG91bGQgYmUgbW9ub3RvbmljYWxseSBp
bmNyZWFzaW5nIik7CisKKyAgICAgIC8vIFdlIGFyZW4ndCBzZWVraW5nIHRocm91Z2ggdGhlIGZp
bGUsIHNvIHRoaXMgc2hvdWxkIGJlIGluY3JlYXNpbmcgZnJvbSBmcmFtZSB0byBmcmFtZS4KKyAg
ICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oY3VycmVudC5tZWRpYVRpbWUsIGxhc3QubWVkaWFUaW1l
LCAibWVkaWFUaW1lIHNob3VsZCBiZSBpbmNyZWFzaW5nIik7CisKKyAgICAgIC8vIFRoZSB0ZXN0
IHZpZGVvJ3Mgc2l6ZSBkb2Vzbid0IGNoYW5nZS4KKyAgICAgIGFzc2VydF9lcXVhbHMoY3VycmVu
dC53aWR0aCwgbGFzdC53aWR0aCwgIndpZHRoIHNob3VsZCByZW1haW4gY29uc3RhbnQiKTsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoY3VycmVudC5oZWlnaHQsIGxhc3QuaGVpZ2h0LCAiaGVpZ2h0IHNo
b3VsZCByZW1haW4gY29uc3RhbnQiKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZXBlYXRpbmdD
YWxsYmFjayh0aW1lLCBtZXRhZGF0YSkgeworICAgICAgLy8gU2tpcCB0aGUgZmlyc3QgY2FsbCB0
byB2ZXJpZnlNZXRhZGF0YS4KKyAgICAgIGlmIChjdXJyZW50Q2FsbE51bWJlcikKKyAgICAgICAg
dmVyaWZ5TWV0YWRhdGEobGFzdE1ldGFkYXRhLCBtZXRhZGF0YSkKKworICAgICAgbGFzdE1ldGFk
YXRhID0gbWV0YWRhdGE7CisKKyAgICAgIGlmICgrK2N1cnJlbnRDYWxsTnVtYmVyID4gbWF4TnVt
YmVyT2ZDYWxscykgeworICAgICAgICB0LmRvbmUoKQorICAgICAgfSBlbHNlIHsKKyAgICAgICAg
dmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0ZXBfZnVuYyhyZXBlYXRpbmdDYWxs
YmFjaykpOworICAgICAgfQorICAgIH0KKworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2Fs
bGJhY2sodC5zdGVwX2Z1bmMocmVwZWF0aW5nQ2FsbGJhY2spKTsKKworICAgIHZpZGVvLnNyYyA9
IGdldFZpZGVvVVJJKCcvbWVkaWEvbW92aWVfNScpOworICAgIHZpZGVvLnBsYXkoKTsKKworfSwg
J1Rlc3QgY2hhaW5pbmcgY2FsbHMgdG8gdmlkZW8uclZGQywgYW5kIHZlcmlmeSB0aGUgcmVxdWly
ZWQgcGFyYW1ldGVycy4nKTsKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qt
dmlkZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZp
ZGVvLWZyYW1lLWNhbGxiYWNrLXdlYnJ0Yy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGQ1NGQwZWFhZTc4ODY0NmZiMGRmMTE4Mjg4MjMxZmIyNTQ4Nzc3ZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZm
Yy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXdlYnJ0Yy5odHRwcy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0IEBACisKK0ZBSUwgVGVzdCB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrKCkgcGFyYW1ldGVycyBmb3IgV2ViUlRDIGFwcGxpY2F0aW9ucy4gYXNzZXJ0X2dyZWF0ZXJf
dGhhbjogZXhwZWN0ZWQgYSBudW1iZXIgYnV0IGdvdCBhICJ1bmRlZmluZWQiCisKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVz
dC12aWRlby1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kY2Y5
N2U0Y2E5MTA1ZDdlMjllNTc5YmRiNjMyZGI1NTRjNTI1OTMzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3Jl
cXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwx
NjUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPgorICA8
dGl0bGU+V2ViUlRDIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKSB0ZXN0PC90aXRs
ZT4KKyAgPHNjcmlwdCBzcmM9Ii93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICA8ZGl2
PgorICAgIDx2aWRlbyBpZD0ibG9jYWwtdmlldyIgbXV0ZWQgYXV0b3BsYXk9ImF1dG9wbGF5Ij48
L3ZpZGVvPgorICAgIDx2aWRlbyBpZD0icmVtb3RlLXZpZXciIG11dGVkIGF1dG9wbGF5PSJhdXRv
cGxheSIvPgorICAgIDwvdmlkZW8+CisgIDwvZGl2PgorCisgIDwhLS0gVGhlc2UgZmlsZXMgYXJl
IGluIHBsYWNlIHdoZW4gZXhlY3V0aW5nIG9uIFczQy4gLS0+CisgIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+CisgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgnVGVzdCB2aWRlby5yZXF1ZXN0
VmlkZW9GcmFtZUNhbGxiYWNrKCkgcGFyYW1ldGVycyBmb3IgV2ViUlRDIGFwcGxpY2F0aW9ucy4n
KTsKKworICAvLworICAvLyBUaGlzIHRlc3QgaXMgYmFzZWQgb24gL3dlYnJ0Yy9zaW1wbGVjYWxs
Lmh0dHBzLmh0bWwsIGJ1dCBpdCBjYWxscyB0bworICAvLyB2aWRlby5yZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrKCkgYmVmb3JlIGVuZGluZywgdG8gdmVyaWZ5IFdlYlJUQyByZXF1aXJlZAorICAv
LyBhbmQgb3B0aW9uYWwgcGFyYW1ldGVycy4KKyAgLy8KKworICB2YXIgZ0ZpcnN0Q29ubmVjdGlv
biA9IG51bGw7CisgIHZhciBnU2Vjb25kQ29ubmVjdGlvbiA9IG51bGw7CisgIHZhciBnQ2FsbGJh
Y2tDb3VudGVyID0gMDsKKyAgdmFyIHZlcmlmeV9wYXJhbXMgPSAobm93LCBtZXRhZGF0YSkgPT4g
eworICAgIGdDYWxsYmFja0NvdW50ZXIgPSBnQ2FsbGJhY2tDb3VudGVyICsgMTsKKyAgICBhc3Nl
cnRfZ3JlYXRlcl90aGFuKG5vdywgMCk7CisKKyAgICAvLyBWZXJpZnkgYWxsIHJlcXVpcmVkIGZp
ZWxkcworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEucHJlc2VudGF0aW9uVGltZSwg
MCk7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5leHBlY3RlZERpc3BsYXlUaW1l
LCAwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLnByZXNlbnRlZEZyYW1lcywg
MCk7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS53aWR0aCwgMCk7CisgICAgYXNz
ZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5oZWlnaHQsIDApOworICAgIGFzc2VydF90cnVlKCJt
ZWRpYVRpbWUiIGluIG1ldGFkYXRhLCAibWVkaWFUaW1lIHNob3VsZCBiZSBwcmVzZW50Iik7CisK
KyAgICAvLyBWZXJpZnkgV2ViUlRDIG9ubHkgZmllbGRzLgorICAgIGFzc2VydF90cnVlKCJydHBU
aW1lc3RhbXAiIGluIG1ldGFkYXRhLCAicnRwVGltZXN0YW1wIHNob3VsZCBiZSBwcmVzZW50Iik7
CisgICAgYXNzZXJ0X3RydWUoInJlY2VpdmVUaW1lIiBpbiBtZXRhZGF0YSwgInJlY2VpdmVUaW1l
IHNob3VsZCBiZSBwcmVzZW50Iik7CisgICAgLy8gY2FwdHVyZVRpbWUgaXMgbm90IGF2YWlsYWJs
ZSB1bnRpbCByb3VuZHRyaXAgdGltZSBlc3RpbWF0aW9uIGlzIGRvbmUuCisgICAgaWYgKGdDYWxs
YmFja0NvdW50ZXIgPiA2MCB8fCAiY2FwdHVyZVRpbWUiIGluIG1ldGFkYXRhKSB7CisgICAgICBh
c3NlcnRfdHJ1ZSgiY2FwdHVyZVRpbWUiIGluIG1ldGFkYXRhLCAiY2FwdHVyZVRpbWUgc2hvdWxk
IGJlIHByZXNlbnQiKTsKKyAgICAgIHRlc3QuZG9uZSgpOworICAgIH0KKyAgICBlbHNlIHsKKyAg
ICAgIC8vIEtlZXAgcmVxdWVzdGluZyBjYWxsYmFja3MuCisgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncmVtb3RlLXZpZXcnKS5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHRlc3Quc3Rl
cF9mdW5jKHZlcmlmeV9wYXJhbXMpKTsKKyAgICB9CisgIH0KKworICB2YXIgdmVyaWZ5X2xvY2Fs
X21ldGFkYXRhID0gKG5vdywgbWV0YWRhdGEpID0+IHsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFu
KG1ldGFkYXRhLmV4cGVjdGVkRGlzcGxheVRpbWUsIDApOworICAgIGFzc2VydF9ncmVhdGVyX3Ro
YW4obWV0YWRhdGEucHJlc2VudGVkRnJhbWVzLCAwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFu
KG1ldGFkYXRhLndpZHRoLCAwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLmhl
aWdodCwgMCk7CisgICAgYXNzZXJ0X3RydWUoImNhcHR1cmVUaW1lIiBpbiBtZXRhZGF0YSwgImNh
cHR1cmVUaW1lIHNob3VsZCBhbHdheXMgYmUgcHJlc2VudCBmb3IgbG9jYWwgc291cmNlcy4iKTsK
KyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLmNhcHR1cmVUaW1lLCAwKTsKKyAgfQor
CisgIC8vIElmIHRoZSByZW1vdGUgdmlkZW8gZ2V0cyB2aWRlbyBkYXRhIHRoYXQgaW1wbGllcyB0
aGUgbmVnb3RpYXRpb24KKyAgLy8gYXMgd2VsbCBhcyB0aGUgSUNFIGFuZCBEVExTIGNvbm5lY3Rp
b24gYXJlIHVwLgorICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVtb3RlLXZpZXcnKQorICAg
ICAgLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlZG1ldGFkYXRhJywgZnVuY3Rpb24oKSB7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlbW90ZS12aWV3JykucmVxdWVzdFZpZGVvRnJhbWVD
YWxsYmFjayh0ZXN0LnN0ZXBfZnVuYyh2ZXJpZnlfcGFyYW1zKSk7CisgIH0pOworCisgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdsb2NhbC12aWV3JykKKyAgICAgIC5hZGRFdmVudExpc3RlbmVy
KCdsb2FkbWV0YWRhdGEnLCBmdW5jdGlvbigpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnbG9jYWwtdmlldycpLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodGVzdC5zdGVwX2Z1bmNf
ZG9uZSh2ZXJpZnlfbG9jYWxfbWV0YWRhdGEpKTsKKyAgfSk7CisKKworICBmdW5jdGlvbiBnZXRO
b2lzZVN0cmVhbU9rQ2FsbGJhY2sobG9jYWxTdHJlYW0pIHsKKyAgICBnRmlyc3RDb25uZWN0aW9u
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpOworICAgIHRlc3QuYWRkX2NsZWFudXAoKCkg
PT4gZ0ZpcnN0Q29ubmVjdGlvbi5jbG9zZSgpKTsKKyAgICBnRmlyc3RDb25uZWN0aW9uLm9uaWNl
Y2FuZGlkYXRlID0gb25JY2VDYW5kaWRhdGVUb0ZpcnN0OworCisgICAgZ1NlY29uZENvbm5lY3Rp
b24gPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24obnVsbCk7CisgICAgdGVzdC5hZGRfY2xlYW51cCgo
KSA9PiBnU2Vjb25kQ29ubmVjdGlvbi5jbG9zZSgpKTsKKyAgICBnU2Vjb25kQ29ubmVjdGlvbi5v
bmljZWNhbmRpZGF0ZSA9IG9uSWNlQ2FuZGlkYXRlVG9TZWNvbmQ7CisgICAgZ1NlY29uZENvbm5l
Y3Rpb24ub250cmFjayA9IG9uUmVtb3RlVHJhY2s7CisKKyAgICBsb2NhbFN0cmVhbS5nZXRUcmFj
a3MoKS5mb3JFYWNoKGZ1bmN0aW9uKHRyYWNrKSB7CisgICAgICAvLyBCaWRpcmVjdGlvbmFsIHN0
cmVhbXMgYXJlIG5lZWRlZCBpbiBvcmRlciBmb3IgY2FwdHVyZVRpbWUgdG8gYmUKKyAgICAgIC8v
IHBvcHVsYXRlZC4gVXNlIHRoZSBzYW1lIHNvdXJjZSBpbiBib3RoIGRpcmVjdGlvbnMuCisgICAg
ICBnRmlyc3RDb25uZWN0aW9uLmFkZFRyYWNrKHRyYWNrLCBsb2NhbFN0cmVhbSk7CisgICAgICBn
U2Vjb25kQ29ubmVjdGlvbi5hZGRUcmFjayh0cmFjaywgbG9jYWxTdHJlYW0pOworICAgIH0pOwor
CisgICAgZ0ZpcnN0Q29ubmVjdGlvbi5jcmVhdGVPZmZlcigpLnRoZW4ob25PZmZlckNyZWF0ZWQs
IGZhaWxlZCgnY3JlYXRlT2ZmZXInKSk7CisKKyAgICB2YXIgdmlkZW9UYWcgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnbG9jYWwtdmlldycpOworICAgIHZpZGVvVGFnLnNyY09iamVjdCA9IGxv
Y2FsU3RyZWFtOworICB9OworCisgIHZhciBvbk9mZmVyQ3JlYXRlZCA9IHRlc3Quc3RlcF9mdW5j
KGZ1bmN0aW9uKG9mZmVyKSB7CisgICAgZ0ZpcnN0Q29ubmVjdGlvbi5zZXRMb2NhbERlc2NyaXB0
aW9uKG9mZmVyKTsKKworICAgIC8vIFRoaXMgd291bGQgbm9ybWFsbHkgZ28gYWNyb3NzIHRoZSBh
cHBsaWNhdGlvbidzIHNpZ25hbGluZyBzb2x1dGlvbi4KKyAgICAvLyBJbiBvdXIgY2FzZSwgdGhl
ICJzaWduYWxpbmciIGlzIHRvIGNhbGwgdGhpcyBmdW5jdGlvbi4KKyAgICByZWNlaXZlQ2FsbChv
ZmZlci5zZHApOworICB9KTsKKworICBmdW5jdGlvbiByZWNlaXZlQ2FsbChvZmZlclNkcCkgewor
ICAgIHZhciBwYXJzZWRPZmZlciA9IG5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb24oeyB0eXBlOiAn
b2ZmZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZHA6IG9mZmVyU2RwIH0pOworICAgIGdTZWNvbmRDb25uZWN0aW9uLnNldFJlbW90ZURlc2Ny
aXB0aW9uKHBhcnNlZE9mZmVyKTsKKworICAgIGdTZWNvbmRDb25uZWN0aW9uLmNyZWF0ZUFuc3dl
cigpLnRoZW4ob25BbnN3ZXJDcmVhdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmYWlsZWQoJ2NyZWF0ZUFuc3dlcicpKTsKKyAgfTsKKworICB2YXIgb25BbnN3ZXJDcmVh
dGVkID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oYW5zd2VyKSB7CisgICAgZ1NlY29uZENvbm5l
Y3Rpb24uc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworCisgICAgLy8gU2ltaWxhcmx5LCB0
aGlzIHdvdWxkIGdvIG92ZXIgdGhlIGFwcGxpY2F0aW9uJ3Mgc2lnbmFsaW5nIHNvbHV0aW9uLgor
ICAgIGhhbmRsZUFuc3dlcihhbnN3ZXIuc2RwKTsKKyAgfSk7CisKKyAgZnVuY3Rpb24gaGFuZGxl
QW5zd2VyKGFuc3dlclNkcCkgeworICAgIHZhciBwYXJzZWRBbnN3ZXIgPSBuZXcgUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uKHsgdHlwZTogJ2Fuc3dlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZHA6IGFuc3dlclNkcCB9KTsKKyAgICBnRmlyc3RD
b25uZWN0aW9uLnNldFJlbW90ZURlc2NyaXB0aW9uKHBhcnNlZEFuc3dlcik7CisgIH07CisKKyAg
dmFyIG9uSWNlQ2FuZGlkYXRlVG9GaXJzdCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50
KSB7CisgICAgLy8gSWYgZXZlbnQuY2FuZGlkYXRlIGlzIG51bGwgPSBubyBtb3JlIGNhbmRpZGF0
ZXMuCisgICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgeworICAgICAgZ1NlY29uZENvbm5lY3Rpb24u
YWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7CisgICAgfQorICB9KTsKKworICB2YXIg
b25JY2VDYW5kaWRhdGVUb1NlY29uZCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgeworICAgICAgZ0ZpcnN0Q29ubmVjdGlvbi5hZGRJ
Y2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKKyAgICB9CisgIH0pOworCisgIHZhciBvblJl
bW90ZVRyYWNrID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKKyAgICB2YXIgdmlk
ZW9UYWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVtb3RlLXZpZXcnKTsKKyAgICBpZiAo
IXZpZGVvVGFnLnNyY09iamVjdCkgeworICAgICAgdmlkZW9UYWcuc3JjT2JqZWN0ID0gZXZlbnQu
c3RyZWFtc1swXTsKKyAgICB9CisgIH0pOworCisgIC8vIFJldHVybnMgYSBzdWl0YWJsZSBlcnJv
ciBjYWxsYmFjay4KKyAgZnVuY3Rpb24gZmFpbGVkKGZ1bmN0aW9uX25hbWUpIHsKKyAgICByZXR1
cm4gdGVzdC51bnJlYWNoZWRfZnVuYygnV2ViUlRDIGNhbGxlZCBlcnJvciBjYWxsYmFjayBmb3Ig
JyArIGZ1bmN0aW9uX25hbWUpOworICB9CisKKyAgLy8gVGhpcyBmdW5jdGlvbiBzdGFydHMgdGhl
IHRlc3QuCisgIHRlc3Quc3RlcChmdW5jdGlvbigpIHsKKyAgICBnZXROb2lzZVN0cmVhbSh7IHZp
ZGVvOiB0cnVlLCBhdWRpbzogdHJ1ZSB9KQorICAgICAgLnRoZW4odGVzdC5zdGVwX2Z1bmMoZ2V0
Tm9pc2VTdHJlYW1Pa0NhbGxiYWNrKSwgZmFpbGVkKCdnZXROb2lzZVN0cmVhbScpKTsKKyAgfSk7
Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8t
ZnJhbWUtY2FsbGJhY2suaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTQ0MDQxNDNmYTQwOGViYmI4ZjQ5Y2MzMTgwZTA2NWQyMDBmZmE0YQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLmh0bWwKQEAgLTAsMCArMSwx
NTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8dGl0bGU+VGVzdCB0aGUgYmFzaWNzIG9m
IHRoZSB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKCkgQVBJLjwvdGl0bGU+Cis8Ym9k
eT48L2JvZHk+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9tZWRpYS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
dmFyIHRlc3RWaWRlbyA9IHsKKyAgdXJsOiBnZXRWaWRlb1VSSSgnL21lZGlhL21vdmllXzUnKSwK
KyAgaGVpZ2h0OiAyNDAsCisgIHdpZHRoOiAzMjAsCit9CisKK3ZhciBhbHRUZXN0VmlkZW8gPSB7
CisgIHVybDogZ2V0VmlkZW9VUkkoJy9tZWRpYS9jb3VudGluZycpLAorICBoZWlnaHQ6IDI0MCwK
KyAgd2lkdGg6IDMyMCwKK30KKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgbGV0IHZp
ZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKHZpZGVvKTsKKworICAgIGxldCBpZCA9IHZpZGVvLnJlcXVlc3RWaWRlb0Zy
YW1lQ2FsbGJhY2soCisgICAgICB0LnN0ZXBfZnVuY19kb25lKCh0aW1lLCBtZXRhZGF0YSkgPT4g
eworICAgICAgICBhc3NlcnRfdHJ1ZSh0aW1lID4gMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
bWV0YWRhdGEuaGVpZ2h0LCB0ZXN0VmlkZW8uaGVpZ2h0KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhtZXRhZGF0YS53aWR0aCwgdGVzdFZpZGVvLndpZHRoKTsKKyAgICAgIH0pCisgICAgKTsKKwor
ICAgIGFzc2VydF90cnVlKGlkID4gMCk7CisKKyAgICB2aWRlby5zcmMgPSB0ZXN0VmlkZW8udXJs
OworICAgIHZpZGVvLnBsYXkoKTsKKworfSwgJ1Rlc3Qgd2UgY2FuIHJlZ2lzdGVyIGEgdmlkZW8u
clZGQyBjYWxsYmFjay4nKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgbGV0IHZp
ZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKHZpZGVvKTsKKworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2soCisgICAgICB0LnN0ZXBfZnVuYyh2aWRlb19ub3cgPT4geworICAgICAgICAvLyBRdWV1ZSBh
IGNhbGwgdG8gd2luZG93LnJBRiwgYW5kIG1ha2Ugc3VyZSBpdCBpcyBleGVjdXRlZCB3aXRoaW4g
dGhlCisgICAgICAgIC8vIHNhbWUgdHVybiBvZiB0aGUgZXZlbnQgbG9vcCAod2l0aCB0aGUgc2Ft
ZSAndGltZScgcGFyYW1ldGVyKS4KKyAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFt
ZSggdC5zdGVwX2Z1bmNfZG9uZSggd2luZG93X25vdyA9PiB7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyh2aWRlb19ub3csIHdpbmRvd19ub3cpOworICAgICAgICB9KSk7CisgICAgICB9KQorICAg
ICk7CisKKyAgICB2aWRlby5zcmMgPSB0ZXN0VmlkZW8udXJsOworICAgIHZpZGVvLnBsYXkoKTsK
KworfSwgJ1Rlc3QgdmlkZW8uclZGQyBjYWxsYmFja3MgcnVuIGJlZm9yZSB3aW5kb3cuckFGIGNh
bGxiYWNrcy4nKTsKKworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8g
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQodmlkZW8pOworCisgICAgbGV0IGlkID0gdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVD
YWxsYmFjaygKKyAgICAgIHQuc3RlcF9mdW5jKF8gPT4geworICAgICAgICBhc3NlcnRfdW5yZWFj
aGVkKCJDYW5jZWxsZWQgY2FsbGJhY2tzIHNob3VsZG4ndCBiZSBleGVjdXRlZCIpCisgICAgICB9
KQorICAgICk7CisKKyAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soaWQpOworCisg
ICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygKKyAgICAgIHQuc3RlcF9mdW5jKF8g
PT4geworICAgICAgICAvLyBBdCB0aGlzIHBvaW50LCB0aGUgb3RoZXIgY2FsbGJhY2sgc2hvdWxk
bid0IGhhdmUgZmlyZWQsIGJ1dAorICAgICAgICAvLyBnaXZlIGl0IHNvbWUgbW9yZSB0aW1lIGFu
ZCByZWFsbHkgbWFrZSBzdXJlIGl0IGRvZXNuJ3QsIGJ5IGdvaW5nCisgICAgICAgIC8vIHRocm91
Z2h0IHRoZSBldmVudCBsb29wIG9uY2UgbW9yZS4KKyAgICAgICAgdC5zdGVwX3RpbWVvdXQoKCkg
PT4geyB0LmRvbmUoKTsgfSwgMCk7CisgICAgICB9KQorICAgICk7CisKKyAgICB2aWRlby5zcmMg
PSB0ZXN0VmlkZW8udXJsOworICAgIHZpZGVvLnBsYXkoKTsKK30sICdUZXN0IHdlIGNhbiBjYW5j
ZWwgYSB2aWRlby5yVkZDIHJlcXVlc3QuJyk7CisKK3Rlc3QoZnVuY3Rpb24odCkgeworICAgIGxl
dCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICAvLyByZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrKCkgZXhwZWN0cyAxIGZ1bmN0aW9uIGFzIGEgcGFyYW1ldGVyLgorICAgIGFzc2VydF90aHJv
d3NfanMoVHlwZUVycm9yLCBfID0+IHsgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygp
IH0gKTsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgXyA9PiB7IHZpZGVvLnJlcXVl
c3RWaWRlb0ZyYW1lQ2FsbGJhY2soMCkgfSk7CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJy
b3IsIF8gPT4geyB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKCJmb28iKSB9KTsKKwor
ICAgIC8vIGNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjaygpIGV4cGVjdHMgMSBudW1iZXIgYXMgYSBw
YXJhbWV0ZXIKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgXyA9PiB7IHZpZGVvLmNh
bmNlbFZpZGVvRnJhbWVDYWxsYmFjaygpIH0gKTsKKworICAgIC8vIEludmFsaWQgY2FsbHMgYXJl
IGp1c3Qgbm8tb3BzCisgICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKF8gPT4ge30p
OworICAgIHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayhOYU4pOworICAgIHZpZGVvLmNh
bmNlbFZpZGVvRnJhbWVDYWxsYmFjaygiZm9vIik7CisgICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFt
ZUNhbGxiYWNrKDEyMzQ1KTsKKyAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soLTEp
OworCit9LCAnVGVzdCBpbnZhbGlkIGNhbGxzIHRvIHRoZSB2aWRlby5yVkZDIEFQSS4nKTsKKwor
cHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
dmlkZW8pOworCisgICAgbGV0IGZpcnN0X3dpZHRoID0gMDsKKyAgICBsZXQgZmlyc3RfaGVpZ2h0
ID0gMDsKKworICAgIHZpZGVvLnNyYyA9IHRlc3RWaWRlby51cmw7CisKKyAgICBhd2FpdCB2aWRl
by5wbGF5KCk7CisKKyAgICAvLyBTd2l0Y2ggdG8gYW5kIGZyb20gYSBzZWNvbmQgdmlkZW8sIGFu
ZCBtYWtlIHN1cmUgd2UgZ2V0IHJWRkMgY2FsbHMgYXQKKyAgICAvLyBlYWNoIHN0ZXAuCisgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgIGxldCBvblJl
dHVyblRvT3JpZ2luYWxWaWRlbyA9IHQuc3RlcF9mdW5jKChub3csIG1ldGFkYXRhKSA9PiB7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoZmlyc3Rfd2lkdGgsIG1ldGFkYXRhLndpZHRoKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhmaXJzdF9oZWlnaHQsIG1ldGFkYXRhLmhlaWdodCk7CisKKyAgICAg
ICAgcmVzb2x2ZSgpOworICAgICAgfSk7CisKKyAgICAgIGxldCBvbkFsdFZpZGVvRmlyc3RGcmFt
ZSA9IHQuc3RlcF9mdW5jKChub3csIG1ldGFkYXRhKSA9PiB7CisgICAgICAgIC8vIFRoZSB2aWRl
b3MgaGF2ZSBkaWZmZXJlbnQgc2l6ZXMsIGFuZCBzaG91bGRuJ3QgbWF0Y2guCisgICAgICAgIGFz
c2VydF9ub3RfZXF1YWxzKGZpcnN0X3dpZHRoLCBtZXRhZGF0YS53aWR0aCk7CisgICAgICAgIGFz
c2VydF9ub3RfZXF1YWxzKGZpcnN0X2hlaWdodCwgbWV0YWRhdGEuaGVpZ2h0KTsKKworICAgICAg
ICAvLyBTd2l0aCBiYWNrIHRvIHRoZSBvcmlnaW5hbCB2aWRlby4KKyAgICAgICAgdmlkZW8ucmVx
dWVzdFZpZGVvRnJhbWVDYWxsYmFjayhvblJldHVyblRvT3JpZ2luYWxWaWRlbyk7CisgICAgICAg
IHZpZGVvLnNyYyA9IHRlc3RWaWRlby51cmw7CisgICAgICB9KTsKKworICAgICAgbGV0IG9uRmly
c3RGcmFtZSA9IHQuc3RlcF9mdW5jKChub3csIG1ldGFkYXRhKSA9PiB7CisgICAgICAgIGZpcnN0
X3dpZHRoID0gbWV0YWRhdGEud2lkdGg7CisgICAgICAgIGZpcnN0X2hlaWdodCA9IG1ldGFkYXRh
LmhlaWdodDsKKworICAgICAgICAvLyBDYWxsYmFja3Mgc2hvdWxkIHBlcnNpc3QgYWZ0ZXIgY2hh
bmdpbmcgdGhlIHNvdXJjZSB0byB0aGUgYWx0IHZpZGVvLgorICAgICAgICB2aWRlby5yZXF1ZXN0
VmlkZW9GcmFtZUNhbGxiYWNrKG9uQWx0VmlkZW9GaXJzdEZyYW1lKTsKKyAgICAgICAgdmlkZW8u
c3JjID0gYWx0VGVzdFZpZGVvLnVybDsKKyAgICAgIH0pCisKKyAgICAgIHZpZGVvLnJlcXVlc3RW
aWRlb0ZyYW1lQ2FsbGJhY2sob25GaXJzdEZyYW1lKTsKKyAgICB9KTsKK30sICdUZXN0IHZpZGVv
LnJWRkMgZG9lcyBub3Qgc3RvcCB3aGVuIHN3aXRjaGluZyBzb3VyY2VzLicpOworCis8L3Njcmlw
dD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy93M2MtaW1wb3J0LmxvZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hMTZmMTVmZGIzNzYzZmQzZDQ3NmE2YWJhNTgyNjU5M2M4YzgxY2RjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92
aWRlby1ydmZjL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjYgQEAKK1RoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9NRVRBLnlt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZm
Yy9SRUFETUUubWQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53aW5kb3cuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxs
YmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2Fs
bGJhY2stZG9tLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vz
c2lvbi5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZm
Yy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1j
YWxsYmFjay5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggYjE4MDY0NzEyY2NjNjc5Y2VjODdiNjYxYzZjNzg3MjQ0MTM0MjY4NC4uMzQ3
Mjg3MDcwM2VkN2RmMDc2YmQ0NDBlNjJjN2ZkMzJhNjU1YjcxNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTM4LDYgKzEzOCwxNSBAQCBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY25hbWUtY2xvYWtpbmctdG9wLW5vLWNu
YW1lLXN1Yi0xcC1jbmFtZS5odG1sCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
Y25hbWUtY2xvYWtpbmctdG9wLW5vLWNuYW1lLXN1Yi0zcC1jbmFtZS5odG1sIFsgUGFzcyBdCiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY25hbWUtY2xvYWtpbmctdG9wLW5vLWNu
YW1lLXN1Yi1uby1jbmFtZS5odG1sIFsgUGFzcyBdCiAKK2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdmlkZW8tcnZmYyBbIFBhc3MgXQorIyBUaW1pbmcgb3V0IHRlc3RzIHVudGlsIHdl
IGFkZCByZWd1bGFyIHZpZGVvIHN0cmVhbWluZyBiYWNrZW5kIHN1cHBvcnQuCitpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxs
YmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFj
ay1kb20uaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRl
by1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0
cHMuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwuaHRtbCBbIFNraXAgXQor
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8t
ZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLmh0
bWwgWyBTa2lwIF0KKwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyBFbmQg
cGxhdGZvcm0tc3BlY2lmaWMgZGlyZWN0b3JpZXMuCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggMjZmMmRlM2EyNThiOTI1MzlhMzQ1NjNmZjc5ZjY2MjVkMDI0OTM4Ni4uODZkMzFl
NzRkOTUyMWMxZjRhMTdhZDk5ZjA3ODlhODFhMGE1YTE2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTE3LDYgKzExNywxNSBAQCBmYXN0
L2Zvcm1zL2ZpbGUvZW50cmllcy1hcGkvaW1hZ2Utbm8tdHJhbnNjb2RlLW9wZW4tcGFuZWwuaHRt
bCBbIFBhc3MgXQogCiBzdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS10cmFuc2FjdGlvbi1jeWNs
ZS5odG1sIFsgUGFzcyBdCiAKK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8t
cnZmYyBbIFBhc3MgXQorIyBUaW1pbmcgb3V0IHRlc3RzIHVudGlsIHdlIGFkZCByZWd1bGFyIHZp
ZGVvIHN0cmVhbWluZyBiYWNrZW5kIHN1cHBvcnQuCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHIt
c2Vzc2lvbi5odHRwcy5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kb20uaHRtbCBbIFNr
aXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qt
dmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMuaHRtbCBbIFNraXAg
XQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2st
cmVwZWF0aW5nLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLmh0bWwgWyBTa2lwIF0KKwog
Iy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyBFbmQgcGxhdGZvcm0tc3BlY2lm
aWMgZGlyZWN0b3JpZXMuCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDUyODc3OTc3OTc1NWIyNTc2YWZkODMzZmMxMTQ3ZTk3NTkzNGUxZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZjLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworCitQQVNTIFZhbGlkYXRlIGNhbGxiYWNrcyBh
bmQgbWV0YWRhdGEgZm9yIHBlZXIgY29ubmVjdGlvbiB0cmFja3MKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2VicnRjL3BlZXJDb25uZWN0aW9uLXJ2ZmMuaHRtbCBiL0xheW91dFRlc3RzL3dl
YnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU3NzZkODJjNWU2YWY2
ZWMzZWQ2NThjMThhNmZiMjgzNDAzZjI5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZjLmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorICAgICAgICA8dGl0bGU+VGVzdGluZyBydmZjIG9uIHBlZXIgY29ubmVjdGlvbiBzdHJl
YW1zPC90aXRsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0icm91dGluZXMu
anMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHZpZGVvIGlk
PSJ2aWRlbyIgYXV0b3BsYXk9IiI+PC92aWRlbz4KKyAgICAgICAgPHNjcmlwdD4KK2FzeW5jIGZ1
bmN0aW9uIGdyYWJOZXh0TWV0YWRhdGEodmlkZW8pCit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNl
KChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgY29uc3QgaWRlbnRpZmllciA9IHZpZGVv
LnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKG5vdywgbWV0YWRhdGEpID0+IHsKKyAgICAgICAg
ICAgIHJlc29sdmUobWV0YWRhdGEpOworICAgICAgICAgICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFt
ZUNhbGxiYWNrKGlkZW50aWZpZXIpOworICAgICAgICB9KTsKKyAgICAgICAgc2V0VGltZW91dChy
ZWplY3QsIDUwMDApOworICAgIH0pOworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+
IHsKKyAgICBjb25zdCBsb2NhbFN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKHt2aWRlbzogeyB3aWR0aDogNjQwLCBoZWlnaHQ6IDQ4MCB9IH0pOworICAg
IGNvbnN0IHJlbW90ZVN0cmVhbSA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKKyAgICAgICAgY3JlYXRlQ29ubmVjdGlvbnMoKGZpcnN0Q29ubmVjdGlvbikgPT4gewor
ICAgICAgICAgICAgcGMxID0gZmlyc3RDb25uZWN0aW9uOworICAgICAgICAgICAgY29uc3Qgc2Vu
ZGVyID0gZmlyc3RDb25uZWN0aW9uLmFkZFRyYWNrKGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tz
KClbMF0sIGxvY2FsU3RyZWFtKTsKKyAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+IHsK
KyAgICAgICAgICAgIHBjMiA9IHNlY29uZENvbm5lY3Rpb247CisgICAgICAgICAgICBzZWNvbmRD
b25uZWN0aW9uLm9udHJhY2sgPSAodHJhY2tFdmVudCkgPT4geworICAgICAgICAgICAgICAgIHJl
c29sdmUodHJhY2tFdmVudC5zdHJlYW1zWzBdKTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH0p
OworICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwgNTAw
MCk7CisgICAgfSk7CisKKyAgICB2aWRlby5zcmNPYmplY3QgPSByZW1vdGVTdHJlYW07CisgICAg
YXdhaXQgdmlkZW8ucGxheSgpOworCisgICAgbGV0IG1ldGFkYXRhID0gYXdhaXQgZ3JhYk5leHRN
ZXRhZGF0YSh2aWRlbyk7CisgICAgYXNzZXJ0X2VxdWFscyhtZXRhZGF0YS53aWR0aCwgNjQwKTsK
KyAgICBhc3NlcnRfZXF1YWxzKG1ldGFkYXRhLmhlaWdodCwgNDgwKTsKKyAgICBhc3NlcnRfZ3Jl
YXRlcl90aGFuKG1ldGFkYXRhLnByZXNlbnRlZEZyYW1lcywgMCk7CisgICAgY29uc3QgcHJlc2Vu
dGVkRnJhbWVzID0gbWV0YWRhdGEucHJlc2VudGVkRnJhbWVzOworCisgICAgYXdhaXQgbG9jYWxT
dHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXS5hcHBseUNvbnN0cmFpbnRzKHt3aWR0aDogMzIwfSk7
CisKKyAgICBsZXQgY291bnRlciA9IDA7CisgICAgd2hpbGUgKCsrY291bnRlciA8IDEwMCAmJiBt
ZXRhZGF0YS53aWR0aCAhPT0gMzIwKSB7CisgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29s
dmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCA1MCkpOworICAgICAgICBtZXRhZGF0YSA9IGF3YWl0
IGdyYWJOZXh0TWV0YWRhdGEodmlkZW8pOworICAgIH0KKyAgICBhc3NlcnRfZXF1YWxzKG1ldGFk
YXRhLndpZHRoLCAzMjApOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEucHJlc2Vu
dGVkRnJhbWVzLCBwcmVzZW50ZWRGcmFtZXMpOworfSwgIlZhbGlkYXRlIGNhbGxiYWNrcyBhbmQg
bWV0YWRhdGEgZm9yIHBlZXIgY29ubmVjdGlvbiB0cmFja3MiKTsKKyAgICAgICAgPC9zY3JpcHQ+
CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441372</attachid>
            <date>2021-10-15 06:46:44 -0700</date>
            <delta_ts>2021-10-15 07:15:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231803-20211015154639.patch</filename>
            <type>text/plain</type>
            <size>93132</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdjZDU5NmY4NzJlYzA5NDQ1ZGQyMmVh
ZDhhOTZhOTk1MDc3MmI0N2MuLjIxOTM1ZDBjNDk3Yzc2MjFiNzg2YjcxYWI3NWY0OTE1YjdiZTI0
YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTAtMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrIEFQSSBhbmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwMwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorCiAyMDIxLTEw
LTE1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXQg
TWFuYWdlZCBOb3RpZmljYXRpb25zOiBTa2VsZXRvbiBOb3RpZmljYXRpb25Qcm92aWRlci4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBkN2M0ZGU2M2ViMWU0NjYzZDA1ZThjNzQxY2Y5ZjhiN2MwNDZlNWYyLi4wMTlm
NjQ5MDAwZmYzNTg3YWUwOTA0ODAyNTk1NGIxMDk2NjliZGRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTQgQEAKKzIwMjEtMTAtMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSBh
bmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBXZWJJREwgdG8gZXhwb3Nl
IGh0dHBzOi8vd2ljZy5naXRodWIuaW8vdmlkZW8tcnZmYy8gQVBJLgorICAgICAgICBQdXQgdGhl
bSBiZWhpbmQgYSBydW50aW1lIGZsYWcuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBh
bGdvcml0aG1zLCBpbmNsdWRpbmcgdGhlIGludGVncmF0aW9uIHdpdGggdGhlICd1cGRhdGUgdGhl
IHJlbmRlcmluZycgYWxnb3JpdGhtLgorICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciB2
aWRlbyBlbGVtZW50cyBiYWNrZWQgYnkgTWVkaWFTdHJlYW0gY29udGVudC4KKyAgICAgICAgV2Ug
ZXhwb3NlIGEgbGltaXRlZCBzZXQgb2YgbWV0YWRhdGEgY3VycmVudGx5LCBmb2xsb3ctdXAgcGF0
Y2hlcyBzaG91bGQgYWRkIHN1cHBvcnQgZm9yIG90aGVyIHZpZGVvIGJhY2tlbmRzIGFuZCBtb3Jl
IG1ldGFkYXRhLgorICAgICAgICBUaGlzIHN1cHBvcnQgc2hvdWxkIHN0aWxsIGVuYWJsZSB0byBv
cHRpbWl6ZSBhIGJpdCBNZWRpYVN0cmVhbVRyYWNrIC0+IGNhbnZhcyBwaXBlbGluZXMuCisKKyAg
ICAgICAgVGVzdHM6IGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMuaHRtbAorICAg
ICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lk
bGhhcm5lc3Mud2luZG93Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9y
ZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRv
bS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5o
dHRwcy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sCisg
ICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
cmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1yZXBlYXRpbmcuaHRtbAorICAgICAgICAgICAg
ICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1l
LWNhbGxiYWNrLmh0bWwKKyAgICAgICAgICAgICAgIHdlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZj
Lmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrLmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL1ZpZGVvRnJh
bWVNZXRhZGF0YS5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvVmlkZW9GcmFtZVJlcXVlc3RD
YWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJh
Y2suaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL1ZpZGVvRnJhbWVNZXRhZGF0YS5oOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisKIDIwMjEtMTAtMTUgIEFsZXhleSBTaHZh
eWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFtXZWJJRExdIEpTRE9NQnVp
bHRpbkNvbnN0cnVjdG9yIGluc3RhbmNlcyBzaG91bGQgc3VwcG9ydCBzdWJjbGFzc2luZwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBkOWUzNmMxOWVkMzlmYTI5ODc3ZDM2ZGQ1YTFl
ZDgzN2MyNDUwYmU1Li42OWQ0MmNhMTE2MGI4NDliNDQxMTllYzY3NjMyYjNmMGExZWM1NzljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTExNSw2ICsxMTE1LDE4IEBAIFJlcXVl
c3RTdWJtaXRFbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitS
ZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJl
YWRhYmxlTmFtZTogIlJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2siCisgIGh1bWFuUmVhZGFibGVE
ZXNjcmlwdGlvbjogIkVuYWJsZSBSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSIKKyAgZGVm
YXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVs
dDogZmFsc2UKKwogIyBGSVhNRTogVGhpcyBpcyBvbiBieSBkZWZhdWx0IGluIFdlYktpdDIuIFBl
cmhhcHMgd2Ugc2hvdWxkIGNvbnNpZGVyIHR1cm5pbmcgaXQgb24gZm9yIFdlYktpdExlZ2FjeSBh
cyB3ZWxsLgogUmVzaXplT2JzZXJ2ZXJFbmFibGVkOgogICB0eXBlOiBib29sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDIzMTJjNGJmNjdlM2IzMWZlMjdkMzIwN2E3ZTc0MjlhMjdlYjExNzcuLmMx
NmU4YzNmMWM4NWEyY2NiMmU5Yjc4NWMxMzQ2NDdmNDk0NTA5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0xMDM2LDYgKzEwMzYsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwog
ICAgIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwKICAgICBodG1sL0hUTUxVTGlzdEVsZW1lbnQu
aWRsCiAgICAgaHRtbC9IVE1MVW5rbm93bkVsZW1lbnQuaWRsCisgICAgaHRtbC9IVE1MVmlkZW9F
bGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRsCiAgICAgaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmlkbAogICAgIGh0bWwvSW1hZ2VCaXRtYXAuaWRsCiAgICAgaHRtbC9JbWFnZUJpdG1h
cE9wdGlvbnMuaWRsCkBAIC0xMDUxLDYgKzEwNTIsOCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lE
TF9GSUxFUwogICAgIGh0bWwvVGltZVJhbmdlcy5pZGwKICAgICBodG1sL1VSTFNlYXJjaFBhcmFt
cy5pZGwKICAgICBodG1sL1ZhbGlkaXR5U3RhdGUuaWRsCisgICAgaHRtbC9WaWRlb0ZyYW1lTWV0
YWRhdGEuaWRsCisgICAgaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbAogICAgIGh0
bWwvVm9pZENhbGxiYWNrLmlkbAogCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzQ29tcG9zaXRpbmcu
aWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApp
bmRleCA0Y2FiNzMzOThlYzNlYzc1NjdlZmIxYTc3ZjE4MmU0ZThiYTU2MjgyLi5jNDlkYzIzZDlj
ODU3MTFjZDNjYjk0YjRkZTY5MjFkMzBjMjMxMzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwMDgsNiArMTAwOCw3IEBAICQoUFJP
SkVDVF9ESVIpL2h0bWwvSFRNTExpbmtFbGVtZW50LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9I
VE1MTWFwRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50
LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0Lmlk
bAorJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWVkaWFFbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1l
Q2FsbGJhY2suaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsCiAk
KFBST0pFQ1RfRElSKS9odG1sL0hUTUxNZW51RWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0
bWwvSFRNTE1lbnVJdGVtRWxlbWVudC5pZGwKQEAgLTEwNDcsNiArMTA0OCw3IEBAICQoUFJPSkVD
VF9ESVIpL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRN
TFRyYWNrRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5p
ZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTFVua25vd25FbGVtZW50LmlkbAorJChQUk9KRUNU
X0RJUikvaHRtbC9IVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRs
CiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaWRsCiAkKFBST0pFQ1RfRElS
KS9odG1sL0ltYWdlQml0bWFwLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9JbWFnZUJpdG1hcE9w
dGlvbnMuaWRsCkBAIC0xMDYyLDYgKzEwNjQsOCBAQCAkKFBST0pFQ1RfRElSKS9odG1sL1RleHRN
ZXRyaWNzLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9UaW1lUmFuZ2VzLmlkbAogJChQUk9KRUNU
X0RJUikvaHRtbC9VUkxTZWFyY2hQYXJhbXMuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL1ZhbGlk
aXR5U3RhdGUuaWRsCiskKFBST0pFQ1RfRElSKS9odG1sL1ZpZGVvRnJhbWVNZXRhZGF0YS5pZGwK
KyQoUFJPSkVDVF9ESVIpL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwKICQoUFJP
SkVDVF9ESVIpL2h0bWwvVm9pZENhbGxiYWNrLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9XZWJL
aXRNZWRpYUtleUVycm9yLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9jYW52YXMvQU5HTEVJbnN0
YW5jZWRBcnJheXMuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CmluZGV4IDRhMGI4NmYzNWVmNWRkNGMzMTQ2ZjkxM2E1NmNlYzJhZjI2YjVh
YjguLmY0Y2Y2ZTNjOGNlYmU2N2M5MWFkYjY3ODcwMWYyMzIxOTQzYTc0NGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC05OTUsNiAr
OTk1LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNI
VE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0LmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxl
bWVudCtSZW1vdGVQbGF5YmFjay5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudCtSZW1vdGVQbGF5YmFjay5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZWRpYUVsZW1lbnQr
UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
SFRNTE1lZGlhRWxlbWVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZW51RWxlbWVudC5jcHAKQEAgLTEwNzUsNiArMTA3
Nyw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRN
TFVua25vd25FbGVtZW50LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNIVE1MVW5rbm93bkVsZW1lbnQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVmlkZW9FbGVtZW50K1BpY3R1cmVJblBpY3R1cmUu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxW
aWRlb0VsZW1lbnQrUGljdHVyZUluUGljdHVyZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxWaWRlb0VsZW1lbnQrUmVxdWVzdFZpZGVvRnJhbWVD
YWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFZpZGVvRWxlbWVudC5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFZp
ZGVvRWxlbWVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0hhc2hDaGFuZ2VFdmVudC5jcHAKQEAgLTIzMDcsNiArMjMxMSwxMCBAQCAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZhbGlkaXR5U3RhdGUuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZhbGlkaXR5U3Rh
dGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWaWRl
b0NvbmZpZ3VyYXRpb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1ZpZGVvQ29uZmlndXJhdGlvbi5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZpZGVvRnJhbWVNZXRhZGF0YS5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmlkZW9GcmFtZU1ldGFkYXRhLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmlkZW9GcmFt
ZVJlcXVlc3RDYWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZpZGVvUGxheWJhY2tRdWFsaXR5LmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWaWRlb1BsYXli
YWNrUXVhbGl0eS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1ZpZGVvVHJhY2srTWVkaWFTb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCA1Yzc3M2E0ODlkYTE5Y2MyMDg1ZWNjZTcxM2ViMDA3YjIwMGY4ODUyLi4wYmE5ZTBm
YWE5NDVkNmJkYmM4MjkxYWU4ZDAyZmVkZjk3NTEwYmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTg5Niw2ICs4OTYsNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQo
V2ViQ29yZSkvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1s
L0hUTUxVbmtub3duRWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxWaWRlb0VsZW1lbnQrUmVxdWVz
dFZpZGVvRnJhbWVDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9JbWFnZUJpdG1h
cC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9JbWFnZUJpdG1hcE9wdGlvbnMuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2h0bWwvSW1hZ2VEYXRhLmlkbCBcCkBAIC05MTAsNiArOTExLDggQEAgSlNf
QklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvVGltZVJhbmdlcy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvaHRtbC9VUkxTZWFyY2hQYXJhbXMuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvVmFsaWRpdHlTdGF0ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9WaWRlb0ZyYW1l
TWV0YWRhdGEuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxs
YmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9Wb2lkQ2FsbGJhY2suaWRsIFwKICAgICAk
KFdlYkNvcmUpL2h0bWwvV2ViS2l0TWVkaWFLZXlFcnJvci5pZGwgXAogICAgICQoV2ViQ29yZSkv
aHRtbC9jYW52YXMvQU5HTEVJbnN0YW5jZWRBcnJheXMuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmlu
ZGV4IGIwNjU3ZTFjYzlkZTU5YjA5Mjk4NTlkNDkxNzJlZjE5Y2ZkOGU2MzEuLjEyMTJkYTRhNjM0
YjJiMWI5ZWJlMWRiY2YxZTRiYmUxMzM2YWUxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNzU4
LDYgKzc1OCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBo
dG1sL1VSTERlY29tcG9zaXRpb24uaAogICAgIGh0bWwvVVJMUmVnaXN0cnkuaAogICAgIGh0bWwv
VmFsaWRpdHlTdGF0ZS5oCisgICAgaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmgKICAg
ICBodG1sL1ZvaWRDYWxsYmFjay5oCiAKICAgICBodG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRl
cmluZ0NvbnRleHRTZXR0aW5ncy5oCkBAIC0xMTgxLDYgKzExODIsNyBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vVXNlckFnZW50LmgKICAgICBw
bGF0Zm9ybS9Vc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmgKICAgICBwbGF0Zm9ybS9WYWxp
ZGF0aW9uQnViYmxlLmgKKyAgICBwbGF0Zm9ybS9WaWRlb0ZyYW1lTWV0YWRhdGEuaAogICAgIHBs
YXRmb3JtL1dlYkdMU3RhdGVUcmFja2VyLmgKICAgICBwbGF0Zm9ybS9XaWRnZXQuaAogICAgIHBs
YXRmb3JtL1dpbmRvd3NLZXlib2FyZENvZGVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMjU3MjYxOTBj
OTFhZTM4N2RlM2Q0MWVjYjBhOTY5NjlmZGU2YWUxZS4uYWIyODBlMDA0NmVmN2RjYWZkMTNmYjI0
ZmQ3OGYwNDcyYTI2OTNlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTM3MjYsNiArMzcyNiw4IEBAIEpT
VlRUUmVnaW9uLmNwcAogSlNWVFRSZWdpb25MaXN0LmNwcAogSlNWYWxpZGl0eVN0YXRlLmNwcAog
SlNWaWRlb0NvbmZpZ3VyYXRpb24uY3BwCitKU1ZpZGVvRnJhbWVNZXRhZGF0YS5jcHAKK0pTVmlk
ZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5jcHAKIEpTVmlkZW9QbGF5YmFja1F1YWxpdHkuY3BwCiBK
U1ZpZGVvVHJhY2suY3BwCiBKU1ZpZGVvVHJhY2tMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGExMjM2ZWZlYjczMDhk
NTM5MGU1ZjhjZTBkMjc2OTRkYTQxMmQxOWUuLjExYTNmNzA1NjBjMjcwY2JlMjI1MDlkOTA3M2Ez
YjFlZmZlMzI4MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTExODIsNiArMTE4Miw4IEBACiAJCTQxOEZDQkMxMjcwNkU0RkIw
MEY5NkVDQSAvKiBQdXNoRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxOEZDQkJEMjcwNkU0RjcwMEY5NkVDQSAvKiBQdXNoRXZlbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MThGQ0JDMjI3
MDZFNTAxMDBGOTZFQ0EgLyogUHVzaEV2ZW50SW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4RkNCQkYyNzA2RTRGODAwRjk2RUNBIC8qIFB1c2hF
dmVudEluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0MThGQ0JFNzI3MTVBMjhGMDBGOTZFQ0EgLyogUlRDUnRwQ29kZWNDYXBhYmlsaXR5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUwQTdEQzIz
QkI2M0RCMDA1NjEwNjAgLyogUlRDUnRwQ29kZWNDYXBhYmlsaXR5LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE4RkNDMDEyNzE5NjgxQTAwRjk2
RUNBIC8qIChudWxsKSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0MThGQ0MwNjI3MTk2QUY2
MDBGOTZFQ0EgLyogKG51bGwpIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxOTBGM0E1MjRB
MEI0RUUwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkwRjNBMzI0OUQxNTI4MDA1MzFDNTcgLyogRnJh
bWVSYXRlTW9uaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQxOTI0MjQ5MjEyN0I5M0UwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxOTI0MjQ3MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2VDb2NvYS5tbSAqLzsgfTsKIAkJNDE5QUNGOTIxRjk3RTdEQTAwOUYxQTgzIC8qIFNlcnZp
Y2VXb3JrZXJGZXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDE5QUNGOEUxRjk3RTdENTAwOUYxQTgzIC8qIFNlcnZpY2VXb3JrZXJGZXRjaC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjE4LDYg
KzEyMjAsOCBAQAogCQk0MUQyOEQwRDIxMzlFMDU4MDBGNDIwNkYgLyogTGliV2ViUlRDU3RhdHND
b2xsZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDFEMjhEMEIyMTM5RTAxRDAwRjQyMDZGIC8qIExpYldlYlJUQ1N0YXRzQ29sbGVjdG9yLmNw
cCAqLzsgfTsKIAkJNDFENDFDNjcyMjU2ODc0RjAwNjk3OTQyIC8qIFNlcnZpY2VXb3JrZXJJbnRl
cm5hbHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MUQ0MUM2NTIyNTY4NTkyMDA2OTc5NDIgLyogU2VydmljZVdvcmtlckludGVybmFscy5tbSAqLzsg
fTsKIAkJNDFERTdDN0MyMjJEQTE0MzAwNTMyQjY1IC8qIFN0b3JhZ2VRdW90YU1hbmFnZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREU3QzdCMjIy
REExM0UwMDUzMkI2NSAvKiBTdG9yYWdlUXVvdGFNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDFERUVGQjAyNzE5QjI5MDAwQ0I4RDc0
IC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREVFRkFDMjcxOUIyODgwMENCOEQ3NCAvKiBWaWRlb0Zy
YW1lUmVxdWVzdENhbGxiYWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNDFERUVGQjYyNzE5QkExQTAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVNZXRh
ZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFE
RUVGQjQyNzE5QkExOTAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVNZXRhZGF0YS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxREVGQ0I2MUU1NkMxQkQw
MDBEOUU1RiAvKiBKU0RPTU1hcExpa2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxREVGQ0I0MUU1NkMxQjkwMDBEOUU1RiAvKiBKU0RPTU1hcExpa2Uu
aCAqLzsgfTsKIAkJNDFFMTJFOUYyNEZFNzRFMjAwOTNGRkI0IC8qIFdlYlNvY2tldElkZW50aWZp
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTEy
RTlEMjRGRTc0RTIwMDkzRkZCNCAvKiBXZWJTb2NrZXRJZGVudGlmaWVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDFFMUIxRDEwRkY1OTg2OTAw
NTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MUUxQjFDQjBGRjU5ODY5MDA1NzZCM0IgLyogQWJzdHJhY3RXb3Jr
ZXIuaCAqLzsgfTsKQEAgLTgyOTQsNiArODI5OCwxMSBAQAogCQk0MUQ2QkQ5ODI1MUIzQURBMDA1
NUE3QjcgLyogSFRNTE1lZGlhRWxlbWVudCtBdWRpb091dHB1dC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gIkhUTUxNZWRpYUVsZW1lbnQrQXVkaW9PdXRwdXQuaWRsIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDFERTdDN0EyMjJEQTEzRDAwNTMyQjY1IC8qIFN0b3JhZ2VRdW90
YU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFn
ZVF1b3RhTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREU3QzdC
MjIyREExM0UwMDUzMkI2NSAvKiBTdG9yYWdlUXVvdGFNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VRdW90YU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDFERUVGQUMyNzE5QjI4ODAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVSZXF1
ZXN0Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MURFRUZBRTI3MTlCMjg5MDBDQjhENzQg
LyogVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlkZW9GcmFtZVJlcXVlc3RD
YWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxREVFRkFGMjcxOUIy
ODkwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lTWV0YWRhdGEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZpZGVvRnJhbWVNZXRh
ZGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxREVFRkIxMjcxOUIyQkUw
MENCOEQ3NCAvKiBIVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9ICJIVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRsIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFERUVGQjQyNzE5QkExOTAwQ0I4RDc0IC8q
IFZpZGVvRnJhbWVNZXRhZGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aWRlb0ZyYW1lTWV0YWRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFERUZD
QjIxRTU2QzFCOTAwMEQ5RTVGIC8qIEpTRE9NQmluZGluZ0ludGVybmFscy5qcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IEpTRE9NQmluZGluZ0ludGVybmFscy5qczsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFERUZDQjMxRTU2QzFCOTAwMEQ5RTVGIC8q
IEpTRE9NTWFwTGlrZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0RPTU1hcExpa2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MURFRkNCNDFF
NTZDMUI5MDAwRDlFNUYgLyogSlNET01NYXBMaWtlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTRE9NTWFwTGlrZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjQyMjUsNiArMjQyMzQsNyBAQAogCQkJCTBGMjZBN0FBMjA1NEVDNUEwMDkwQTE0MSAvKiBIVE1M
VW5rbm93bkVsZW1lbnQuY3BwICovLAogCQkJCUFENDk5MTQxMThGMDgxNTEwMEJGMDA5MiAvKiBI
VE1MVW5rbm93bkVsZW1lbnQuaCAqLywKIAkJCQlBRDQ5OTE0MjE4RjA4MTUxMDBCRjAwOTIgLyog
SFRNTFVua25vd25FbGVtZW50LmlkbCAqLywKKwkJCQk0MURFRUZCMTI3MTlCMkJFMDBDQjhENzQg
LyogSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrLmlkbCAqLywKIAkJ
CQlFNDQ2MTM5ODBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5jcHAgKi8sCiAJ
CQkJRTQ0NjEzOTkwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxWaWRlb0VsZW1lbnQuaCAqLywKIAkJ
CQlFNDQ2MTM5QTBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5pZGwgKi8sCkBA
IC0yNDM0NSw2ICsyNDM1NSw5IEBACiAJCQkJRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZh
bGlkYXRpb25NZXNzYWdlLmggKi8sCiAJCQkJMTVDNzcwOEExMDBEM0M2QTAwNUJBMjY3IC8qIFZh
bGlkaXR5U3RhdGUuaCAqLywKIAkJCQkxNUM3NzA4OTEwMEQzQzZBMDA1QkEyNjcgLyogVmFsaWRp
dHlTdGF0ZS5pZGwgKi8sCisJCQkJNDFERUVGQUYyNzE5QjI4OTAwQ0I4RDc0IC8qIFZpZGVvRnJh
bWVNZXRhZGF0YS5pZGwgKi8sCisJCQkJNDFERUVGQUMyNzE5QjI4ODAwQ0I4RDc0IC8qIFZpZGVv
RnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCAqLywKKwkJCQk0MURFRUZBRTI3MTlCMjg5MDBDQjhENzQg
LyogVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwgKi8sCiAJCQkJRTQ0NjEzQjQwQ0Q2MzQ0
RTAwRkFEQTc1IC8qIFZvaWRDYWxsYmFjay5oICovLAogCQkJCUU0NDYxM0EwMENENjMzMTAwMEZB
REE3NSAvKiBWb2lkQ2FsbGJhY2suaWRsICovLAogCQkJCTJEMTkzMjE3MURBNjRFMTkwMEE1NEEw
OCAvKiBXZWJLaXRNZWRpYUtleUVycm9yLmggKi8sCkBAIC0yODQ3OSw2ICsyODQ5Miw3IEBACiAJ
CQkJQTNBRjlEODIyMDMyNTMyNDAwNkNBRDA2IC8qIFVzZXJBZ2VudC5oICovLAogCQkJCTcxQzkx
NjA3MUQxNDgzQTMwMEFDQTQ3RCAvKiBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmggKi8s
CiAJCQkJODNDNDVCOEQxREMyQjY3QzAwODg3MUJBIC8qIFZhbGlkYXRpb25CdWJibGUuaCAqLywK
KwkJCQk0MURFRUZCNDI3MTlCQTE5MDBDQjhENzQgLyogVmlkZW9GcmFtZU1ldGFkYXRhLmggKi8s
CiAJCQkJNTE1Rjc5NTExQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1RocmVhZENvcGll
ci5jcHAgKi8sCiAJCQkJNTE1Rjc5NTIxQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1Ro
cmVhZENvcGllci5oICovLAogCQkJCTgzOUEyRjJCMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJHTFN0
YXRlVHJhY2tlci5jcHAgKi8sCkBAIC0zMTYwOCw2ICszMTYyMiw4IEBACiAJCQlpc2EgPSBQQlhI
ZWFkZXJzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlm
aWxlcyA9ICgKKwkJCQk0MThGQ0MwNjI3MTk2QUY2MDBGOTZFQ0EgLyogKG51bGwpIGluIEhlYWRl
cnMgKi8sCisJCQkJNDE4RkNDMDEyNzE5NjgxQTAwRjk2RUNBIC8qIChudWxsKSBpbiBIZWFkZXJz
ICovLAogCQkJCTdDRDBFMkI4MUY4MEE0ODIwMDE2QTRDRSAvKiBBYm9ydENvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTdDRDBFMkJGMUY4MEE1NkUwMDE2QTRDRSAvKiBBYm9ydFNpZ25h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZCOTUxOTUyMDdENjMzNDAwQTdEMkREIC8qIEFic3Ry
YWN0RE9NV2luZG93LmggaW4gSGVhZGVycyAqLywKQEAgLTMzMTUxLDYgKzMzMTY3LDcgQEAKIAkJ
CQk1MTk4RjdBRDFCQkREM0VCMDBFMkNDNUYgLyogSURCVHJhbnNhY3Rpb25JbmZvLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4MzhFRjUzODFEQzE0OUUyMDA4RjBDMzkgLyogSURCVHJhbnNhY3Rpb25N
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTYxMDNBRjFDQURCQTc3MDAxNkI0QzcgLyogSURC
VmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxREVFRkI2MjcxOUJBMUEwMENCOEQ3NCAvKiBW
aWRlb0ZyYW1lTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxODVGQ0IwMUJCNEM0RTgw
MDEyODk4RiAvKiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0
QTgxNEUwMUM3MzM4RUIwMEJGODVBQyAvKiBJZENoYW5nZUludmFsaWRhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUE3MUQ1N0MwRjMzODE5MDAwRjlDRTRFIC8qIElkZW50aWZpZXJSZXAuaCBp
biBIZWFkZXJzICovLApAQCAtMzYwMjIsNiArMzYwMzksNyBAQAogCQkJCURGNEUzOEUwMjUyNzk1
OTUwMDJBNzQ4MSAvKiBWZXJzaW9uQ2hlY2tzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0EyNTcx
NTEyOTNDMDEwMDA3QTI2M0QgLyogVmVydGljYWxQb3NpdGlvbkNhY2hlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDRDNFRUYzQjI1Nzk5RkExMDA2NTYzQkIgLyogVmlkZW9Db25maWd1cmF0aW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MURFRUZCMDI3MTlCMjkwMDBDQjhENzQgLyogVmlkZW9GcmFt
ZVJlcXVlc3RDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJCMEQ0QzAxQzU3RkQ2NjAw
NzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzRkJDNEFGNDE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKaW5kZXggNzI0MmJjMjNkMjc1YWRkYWRmNTBkOWM2Mjk2MzdhNzFlOTYxMjQwMi4u
MzdkMTliYjkxMDFjOGIxODYzNTg2MTBiNjY0ZTZlMmNmN2RhMTBiZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCkBAIC02NzM5LDYgKzY3MzksMzIgQEAgdm9pZCBEb2N1bWVudDo6c2VydmljZVJl
cXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrcygpCiAgICAgICAgIG1fc2NyaXB0ZWRBbmltYXRp
b25Db250cm9sbGVyLT5zZXJ2aWNlUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tzKGRvbVdp
bmRvdygpLT5mcm96ZW5Ob3dUaW1lc3RhbXAoKSk7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OnNlcnZp
Y2VSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrcygpCit7CisjaWYgRU5BQkxFKFZJREVPKQorICAg
IGlmICghZG9tV2luZG93KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGJvb2wgaXNTZXJ2aWNp
bmdSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrcyA9IGZhbHNlOworICAgIGZvckVhY2hNZWRpYUVs
ZW1lbnQoW25vdyA9IGRvbVdpbmRvdygpLT5mcm96ZW5Ob3dUaW1lc3RhbXAoKSwgJmlzU2Vydmlj
aW5nUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja3NdKGF1dG8mIGVsZW1lbnQpIHsKKyAgICAgICAg
aWYgKCFpczxIVE1MVmlkZW9FbGVtZW50PihlbGVtZW50KSkKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBhdXRvJiB2aWRlb0VsZW1lbnQgPSBkb3duY2FzdDxIVE1MVmlkZW9FbGVtZW50
PihlbGVtZW50KTsKKyAgICAgICAgaWYgKHZpZGVvRWxlbWVudC5zaG91bGRTZXJ2aWNlUmVxdWVz
dFZpZGVvRnJhbWVDYWxsYmFja3MoKSkgeworICAgICAgICAgICAgaXNTZXJ2aWNpbmdSZXF1ZXN0
VmlkZW9GcmFtZUNhbGxiYWNrcyA9IHRydWU7CisgICAgICAgICAgICB2aWRlb0VsZW1lbnQuc2Vy
dmljZVJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tzKG5vdyk7CisgICAgICAgIH0KKyAgICB9KTsK
KworICAgIGlmICghaXNTZXJ2aWNpbmdSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrcykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCisgICAgICAg
IHBhZ2UtPnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKFJlbmRlcmluZ1VwZGF0ZVN0ZXA6OlZpZGVv
RnJhbWVDYWxsYmFja3MpOworI2VuZGlmCit9CisKIHZvaWQgRG9jdW1lbnQ6OndpbmRvd1NjcmVl
bkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiB7CiAgICAgaWYgKFJlbmRl
clZpZXcqIHZpZXcgPSByZW5kZXJWaWV3KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNTQ1
NzY0MzVjMjM2NWI3ODAyMDlmZWUxOGExMDJmMjZiOWUwMWYxOS4uOWMzOTNmYjVlZTY5OGQ5MzI1
MjFhZjlmMDA4NmZhZTI0MWE5NTM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTExMTQsNiAr
MTExNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc3VtZVNjcmlwdGVkQW5pbWF0aW9uQ29udHJv
bGxlckNhbGxiYWNrcygpOwogCiAgICAgdm9pZCBzZXJ2aWNlUmVxdWVzdEFuaW1hdGlvbkZyYW1l
Q2FsbGJhY2tzKCk7CisgICAgdm9pZCBzZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja3Mo
KTsKIAogICAgIHZvaWQgd2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlEKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAzYmNjNjg5ZGYzYjdh
YzBhZWFiMTA4NWIyN2QxM2ZjZjlkZDQ0MmI1Li4xYzFiMmRjMTVhYTBiNjkzMjE3OGEyOTMwY2E4
ZjJiODk0MGY1MzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAt
MzksNiArMzksNyBAQAogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQ
cm9kdWNlci5oIgogI2luY2x1ZGUgIk1lZGlhVW5pcXVlSWRlbnRpZmllci5oIgorI2luY2x1ZGUg
IlJlZHVjZWRSZXNvbHV0aW9uU2Vjb25kcy5oIgogI2luY2x1ZGUgIlRleHRUcmFja0NsaWVudC5o
IgogI2luY2x1ZGUgIlZpZGVvVHJhY2tDbGllbnQuaCIKICNpbmNsdWRlICJWaXNpYmlsaXR5Q2hh
bmdlQ2xpZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0Vs
ZW1lbnQrUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxWaWRlb0VsZW1lbnQrUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjay5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTkzMjQ0OThlZGNmZTE0YjU3NjcyMGM4ZjAyNTgyMDg1YjQ1ZDQwNwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9G
cmFtZUNhbGxiYWNrLmlkbApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1WSURFTywKKyAgICBF
bmFibGVkQnlTZXR0aW5nPVJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkCitdIHBhcnRp
YWwgaW50ZXJmYWNlIEhUTUxWaWRlb0VsZW1lbnQgeworICAgIHVuc2lnbmVkIGxvbmcgcmVxdWVz
dFZpZGVvRnJhbWVDYWxsYmFjayhWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrIGNhbGxiYWNrKTsK
KyAgICB1bmRlZmluZWQgY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKHVuc2lnbmVkIGxvbmcgaGFu
ZGxlKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAppbmRleCAw
NGMwMmI4Yzg5YmI0YzBlYmRkY2NhNDUwMjhiYmZkMDBkYTc5YjZmLi5kNGM0MTU5YmIyODBiOTg1
NTUyZDM3MjIxZTdjNjVkN2Y3NDRjNzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVv
RWxlbWVudC5jcHAKQEAgLTU3Nyw2ICs1NzcsNTkgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50Ojpl
eGl0VG9GdWxsc2NyZWVuTW9kZVdpdGhvdXRBbmltYXRpb25JZlBvc3NpYmxlKEhUTUxNZWRpYUUK
IH0KICNlbmRpZgogCit1bnNpZ25lZCBIVE1MVmlkZW9FbGVtZW50OjpyZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrKFJlZjxWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrPiYmIGNhbGxiYWNrKQorewor
ICAgIGlmIChtX25leHRWaWRlb0ZyYW1lUmVxdWVzdEluZGV4ID09IHN0ZDo6bnVtZXJpY19saW1p
dHM8dW5zaWduZWQ+OjptYXgoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBhdXRvIGlkZW50
aWZpZXIgPSAgKyttX25leHRWaWRlb0ZyYW1lUmVxdWVzdEluZGV4OworICAgIG1fdmlkZW9GcmFt
ZVJlcXVlc3RzLmFwcGVuZChtYWtlVW5pcXVlUmVmPFZpZGVvRnJhbWVSZXF1ZXN0PihpZGVudGlm
aWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSkpOworCisgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVu
dCgpLnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoUmVuZGVy
aW5nVXBkYXRlU3RlcDo6VmlkZW9GcmFtZUNhbGxiYWNrcyk7CisKKyAgICByZXR1cm4gaWRlbnRp
ZmllcjsKK30KKwordm9pZCBIVE1MVmlkZW9FbGVtZW50OjpjYW5jZWxWaWRlb0ZyYW1lQ2FsbGJh
Y2sodW5zaWduZWQgaWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGluZGV4ID0gbV92aWRlb0ZyYW1l
UmVxdWVzdHMuZmluZE1hdGNoaW5nKFtpZGVudGlmaWVyXShhdXRvJiByZXF1ZXN0KSB7IHJldHVy
biByZXF1ZXN0LT5pZGVudGlmaWVyID09IGlkZW50aWZpZXI7IH0pOworICAgIGlmIChpbmRleCA9
PSBub3RGb3VuZCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChtX2lzUnVubmluZ1ZpZGVvRnJh
bWVSZXF1ZXN0cykgeworICAgICAgICBtX3ZpZGVvRnJhbWVSZXF1ZXN0c1tpbmRleF0tPmNhbmNl
bGxlZCA9IHRydWU7CisgICAgICAgIG1fc2hvdWxkQ2xlYW5WaWRlb0ZyYW1lUmVxdWVzdHMgPSB0
cnVlOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fdmlkZW9GcmFtZVJlcXVlc3RzLnJl
bW92ZShpbmRleCk7Cit9CisKK3ZvaWQgSFRNTFZpZGVvRWxlbWVudDo6c2VydmljZVJlcXVlc3RW
aWRlb0ZyYW1lQ2FsbGJhY2tzKFJlZHVjZWRSZXNvbHV0aW9uU2Vjb25kcyBub3cpCit7CisgICAg
aWYgKCFwbGF5ZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byB2aWRlb0ZyYW1lTWV0
YWRhdGEgPSBwbGF5ZXIoKS0+dmlkZW9GcmFtZU1ldGFkYXRhKCk7CisgICAgaWYgKCF2aWRlb0Zy
YW1lTWV0YWRhdGEpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZiBwcm90ZWN0ZWRUaGlzIHsg
KnRoaXMgfTsKKworICAgIC8vIFdlIHN0b3JlIHRoZSBzaXplIGJlZm9yZSBjYWxsaW5nIGNhbGxi
YWNrcyBhcyB3ZSBkbyBub3Qgd2FudCB0byBjYWxsIG5ld2x5IGFkZGVkIGNhbGxiYWNrcy4KKyAg
ICBhdXRvIGNhbGxiYWNrQ291bnQgPSBtX3ZpZGVvRnJhbWVSZXF1ZXN0cy5zaXplKCk7CisKKyAg
ICBtX2lzUnVubmluZ1ZpZGVvRnJhbWVSZXF1ZXN0cyA9IHRydWU7CisgICAgZm9yIChzaXplX3Qg
aW5kZXggPSAwOyBpbmRleCA8IGNhbGxiYWNrQ291bnQ7ICsraW5kZXgpIHsKKyAgICAgICAgYXV0
byYgcmVxdWVzdCA9IG1fdmlkZW9GcmFtZVJlcXVlc3RzW2luZGV4XTsKKyAgICAgICAgaWYgKCFy
ZXF1ZXN0LT5jYW5jZWxsZWQpCisgICAgICAgICAgICBtX3ZpZGVvRnJhbWVSZXF1ZXN0c1tpbmRl
eF0tPmNhbGxiYWNrLT5oYW5kbGVFdmVudChub3cudmFsdWUoKSwgKnZpZGVvRnJhbWVNZXRhZGF0
YSk7CisgICAgfQorICAgIG1faXNSdW5uaW5nVmlkZW9GcmFtZVJlcXVlc3RzID0gZmFsc2U7CisK
KyAgICBpZiAobV9zaG91bGRDbGVhblZpZGVvRnJhbWVSZXF1ZXN0cykKKyAgICAgICAgbV92aWRl
b0ZyYW1lUmVxdWVzdHMucmVtb3ZlQWxsTWF0Y2hpbmcoW10oYXV0byYgY2FsbGJhY2spIHsgcmV0
dXJuIGNhbGxiYWNrLT5jYW5jZWxsZWQ7IH0pOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAppbmRleCAxMDk5MWYwNWYxNDc0ZWVlNWViMDFlZTc4
MzIzMzkxMjBmNmUzNzJmLi41ZTE4OGIwMDU0YTY3M2Q4OWJkYTkzZTA0NTNmNjUzMzA3MWE1YWVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaApAQCAtMjksNiArMjksNyBA
QAogCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRh
YmxlLmgiCisjaW5jbHVkZSAiVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oIgogI2luY2x1ZGUg
PG1lbW9yeT4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsNiArMzksNyBAQCBjbGFzcyBI
VE1MSW1hZ2VMb2FkZXI7CiBjbGFzcyBJbWFnZUJ1ZmZlcjsKIGNsYXNzIFJlbmRlclZpZGVvOwog
Y2xhc3MgUGljdHVyZUluUGljdHVyZU9ic2VydmVyOworY2xhc3MgVmlkZW9GcmFtZVJlcXVlc3RD
YWxsYmFjazsKIAogZW51bSBjbGFzcyBQaXhlbEZvcm1hdCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNz
IFJlbmRlcmluZ01vZGUgOiBib29sOwpAQCAtMTA5LDYgKzExMSwxMiBAQCBwdWJsaWM6CiAKICAg
ICBSZW5kZXJWaWRlbyogcmVuZGVyZXIoKSBjb25zdDsKIAorICAgIGJvb2wgc2hvdWxkU2Vydmlj
ZVJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gIW1fdmlkZW9GcmFt
ZVJlcXVlc3RzLmlzRW1wdHkoKTsgfQorICAgIHZvaWQgc2VydmljZVJlcXVlc3RWaWRlb0ZyYW1l
Q2FsbGJhY2tzKFJlZHVjZWRSZXNvbHV0aW9uU2Vjb25kcyk7CisKKyAgICB1bnNpZ25lZCByZXF1
ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKFJlZjxWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrPiYmKTsK
KyAgICB2b2lkIGNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayh1bnNpZ25lZCk7CisKIHByaXZhdGU6
CiAgICAgSFRNTFZpZGVvRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBi
b29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKQEAgLTE0Nyw2ICsxNTUsMjMgQEAgcHJpdmF0ZToKICNp
ZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKICAgICBQaWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXIqIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyIHsgbnVsbHB0ciB9OwogI2VuZGlmCisK
KyAgICBzdHJ1Y3QgVmlkZW9GcmFtZVJlcXVlc3QgeworICAgICAgICBXVEZfTUFLRV9TVFJVQ1Rf
RkFTVF9BTExPQ0FURUQ7CisgICAgICAgIFZpZGVvRnJhbWVSZXF1ZXN0KHVuc2lnbmVkIGlkZW50
aWZpZXIsIFJlZjxWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrPiYmIGNhbGxiYWNrKQorICAgICAg
ICAgICAgOiBpZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgICAgICAgICAsIGNhbGxiYWNrKFdU
Rk1vdmUoY2FsbGJhY2spKQorICAgICAgICB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IHVuc2lnbmVkIGlkZW50aWZpZXIgeyAwIH07CisgICAgICAgIFJlZjxWaWRlb0ZyYW1lUmVxdWVz
dENhbGxiYWNrPiBjYWxsYmFjazsKKyAgICAgICAgYm9vbCBjYW5jZWxsZWQgeyBmYWxzZSB9Owor
ICAgIH07CisgICAgVmVjdG9yPFVuaXF1ZVJlZjxWaWRlb0ZyYW1lUmVxdWVzdD4+IG1fdmlkZW9G
cmFtZVJlcXVlc3RzOworICAgIHVuc2lnbmVkIG1fbmV4dFZpZGVvRnJhbWVSZXF1ZXN0SW5kZXgg
eyAwIH07CisgICAgYm9vbCBtX3Nob3VsZENsZWFuVmlkZW9GcmFtZVJlcXVlc3RzIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1faXNSdW5uaW5nVmlkZW9GcmFtZVJlcXVlc3RzIHsgZmFsc2UgfTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVmlkZW9GcmFtZU1ldGFkYXRhLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmlkZW9GcmFt
ZU1ldGFkYXRhLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yY2E5NWU4ZjAzZDMwNTdhYzJlODBjNGE1ZDJmYTIz
MDU2YWY3OGJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WaWRlb0Zy
YW1lTWV0YWRhdGEuaWRsCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKwordHlwZWRlZiBkb3VibGUgRE9NSGlnaFJlc1RpbWVTdGFt
cDsKKworWworICAgIENvbmRpdGlvbmFsPVZJREVPLAorICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0
LAorXSBkaWN0aW9uYXJ5IFZpZGVvRnJhbWVNZXRhZGF0YSB7CisgICAgLy8gRklYTUU6IGV4cG9z
ZSBwcmVzZW50YXRpb25UaW1lIGFuZCBleHBlY3RlZERpc3BsYXlUaW1lLgorICAgIC8vIHJlcXVp
cmVkIERPTUhpZ2hSZXNUaW1lU3RhbXAgcHJlc2VudGF0aW9uVGltZTsKKyAgICAvLyByZXF1aXJl
ZCBET01IaWdoUmVzVGltZVN0YW1wIGV4cGVjdGVkRGlzcGxheVRpbWU7CisKKyAgICByZXF1aXJl
ZCB1bnNpZ25lZCBsb25nIHdpZHRoOworICAgIHJlcXVpcmVkIHVuc2lnbmVkIGxvbmcgaGVpZ2h0
OworICAgIHJlcXVpcmVkIGRvdWJsZSBtZWRpYVRpbWU7CisKKyAgICByZXF1aXJlZCB1bnNpZ25l
ZCBsb25nIHByZXNlbnRlZEZyYW1lczsKKyAgICBkb3VibGUgcHJvY2Vzc2luZ0R1cmF0aW9uOwor
CisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCBjYXB0dXJlVGltZTsKKyAgICBET01IaWdoUmVzVGlt
ZVN0YW1wIHJlY2VpdmVUaW1lOworICAgIHVuc2lnbmVkIGxvbmcgcnRwVGltZXN0YW1wOworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFj
ay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTRmYWIyY2Q1ZDA2Y2EzMDczMWExYTY5YjQ5N2MyNDVhYmIwYTcyMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFj
ay5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShWSURFTykKKworI2luY2x1ZGUgIkFjdGl2ZURPTUNhbGxiYWNrLmgiCisjaW5jbHVkZSAi
Q2FsbGJhY2tSZXN1bHQuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFZpZGVvRnJh
bWVNZXRhZGF0YTsKKworY2xhc3MgVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjayA6IHB1YmxpYyBS
ZWZDb3VudGVkPFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2s+LCBwdWJsaWMgQWN0aXZlRE9NQ2Fs
bGJhY2sgeworcHVibGljOgorICAgIHVzaW5nIEFjdGl2ZURPTUNhbGxiYWNrOjpBY3RpdmVET01D
YWxsYmFjazsKKworICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQo
ZG91YmxlLCBjb25zdCBWaWRlb0ZyYW1lTWV0YWRhdGEmKSA9IDA7Cit9OworCit9CisKKyNlbmRp
ZiAvLyBFTkFCTEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVv
RnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WaWRlb0ZyYW1l
UmVxdWVzdENhbGxiYWNrLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZGQ2ZmY2YzFmOGFiNDQ1ZGI5MGVmZjg5
NmU0MjBkNzA3ZTZlOTAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9W
aWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbApAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK3R5cGVkZWYgZG91YmxlIERPTUhp
Z2hSZXNUaW1lU3RhbXA7CisKK1sKKyAgICBDb25kaXRpb25hbD1WSURFTywKK10gY2FsbGJhY2sg
VmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjayA9IHVuZGVmaW5lZChET01IaWdoUmVzVGltZVN0YW1w
IG5vdywgVmlkZW9GcmFtZU1ldGFkYXRhIG1ldGFkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4
IDAwNjEzZmE2ODc2YTZiZTZhOTI2MTMzMjE2MWU0OTY4MjJhZjQxODIuLmRhMWE5YzgyMzQzMjlk
MzdiMmI3YjBiYmI2NDNiMDEwMjk5NGM1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTU4NSw2
ICsxNTg1LDEwIEBAIHZvaWQgUGFnZTo6dXBkYXRlUmVuZGVyaW5nKCkKICAgICAvLyBGSVhNRTog
UnVuIHRoZSBmdWxsc2NyZWVuIHN0ZXBzLgogICAgIG1fcmVuZGVyaW5nVXBkYXRlUmVtYWluaW5n
U3RlcHMubGFzdCgpLnJlbW92ZShSZW5kZXJpbmdVcGRhdGVTdGVwOjpGdWxsc2NyZWVuKTsKIAor
ICAgIHJ1blByb2Nlc3NpbmdTdGVwKFJlbmRlcmluZ1VwZGF0ZVN0ZXA6OlZpZGVvRnJhbWVDYWxs
YmFja3MsIFtdIChEb2N1bWVudCYgZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQuc2Vydmlj
ZVJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tzKCk7CisgICAgfSk7CisKICAgICBydW5Qcm9jZXNz
aW5nU3RlcChSZW5kZXJpbmdVcGRhdGVTdGVwOjpBbmltYXRpb25GcmFtZUNhbGxiYWNrcywgW10g
KERvY3VtZW50JiBkb2N1bWVudCkgewogICAgICAgICBkb2N1bWVudC5zZXJ2aWNlUmVxdWVzdEFu
aW1hdGlvbkZyYW1lQ2FsbGJhY2tzKCk7CiAgICAgfSk7CkBAIC0zNjI2LDYgKzM2MzAsNyBAQCBX
VEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiB0cywgUmVuZGVyaW5n
VXBkYXRlU3RlcCBzdGVwKQogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAgICAgY2FzZSBS
ZW5kZXJpbmdVcGRhdGVTdGVwOjpTY3JvbGxpbmdUcmVlVXBkYXRlOiB0cyA8PCAiU2Nyb2xsaW5n
VHJlZVVwZGF0ZSI7IGJyZWFrOwogI2VuZGlmCisgICAgY2FzZSBSZW5kZXJpbmdVcGRhdGVTdGVw
OjpWaWRlb0ZyYW1lQ2FsbGJhY2tzOiB0cyA8PCAiVmlkZW9GcmFtZUNhbGxiYWNrcyI7IGJyZWFr
OwogICAgIH0KICAgICByZXR1cm4gdHM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGVjNzcxMWZlM2Jk
ZDc5ZjdlYWIwMzMwZjFiZTNiZTBkY2FjMDlmZTcuLjYyMWQyZWEyNDJjN2Q5ZmVhZDA5OTUyY2Q5
ODAyNjk1NDBhMGJlOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0yMTUsNiArMjE1LDcgQEAgZW51bSBj
bGFzcyBSZW5kZXJpbmdVcGRhdGVTdGVwIDogdWludDE2X3QgewogICAgIFNjcm9sbGluZ1RyZWVV
cGRhdGUgICAgICAgICAgICAgPSAxIDw8IDEzLAogI2VuZGlmCiAgICAgRmx1c2hBdXRvZm9jdXND
YW5kaWRhdGVzICAgICAgICA9IDEgPDwgMTQsCisgICAgVmlkZW9GcmFtZUNhbGxiYWNrcyAgICAg
ICAgICAgICA9IDEgPDwgMTUsCiB9OwogCiBjb25zdGV4cHIgT3B0aW9uU2V0PFJlbmRlcmluZ1Vw
ZGF0ZVN0ZXA+IHVwZGF0ZVJlbmRlcmluZ1N0ZXBzID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZU1ldGFkYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9WaWRlb0ZyYW1lTWV0YWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZmQ5YTQ3MDAyNDhkNGQyNzhk
Y2UyNzQ5NzgzNjBhNTdiYWY1OWVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVmlkZW9GcmFtZU1ldGFkYXRhLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3N0cnVjdCBWaWRlb0ZyYW1lTWV0YWRhdGEgeworICAgIGRvdWJsZSBwcmVzZW50YXRp
b25UaW1lIHsgMCB9OworICAgIGRvdWJsZSBleHBlY3RlZERpc3BsYXlUaW1lIHsgMCB9OworCisg
ICAgdW5zaWduZWQgd2lkdGggeyAwIH07CisgICAgdW5zaWduZWQgaGVpZ2h0IHsgMCB9OworICAg
IGRvdWJsZSBtZWRpYVRpbWUgeyAwIH07CisKKyAgICB1bnNpZ25lZCBwcmVzZW50ZWRGcmFtZXMg
eyAwIH07CisgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHByb2Nlc3NpbmdEdXJhdGlvbjsKKwor
ICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjYXB0dXJlVGltZTsKKyAgICBzdGQ6Om9wdGlvbmFs
PGRvdWJsZT4gcmVjZWl2ZVRpbWU7CisgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gcnRwVGlt
ZXN0YW1wOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDg0YTdhMDcy
NzMxYzEyNzg4YWNlY2ViYzEyZWE2ODdjZWJkYjBjMmYuLjA5Yjc1OWFmMzI4NDA3YTJjNjY0M2U1
YmY4M2IyYWQzODE4Yjk1OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTE3MTAsNiArMTcxMCwxMSBAQCBNZWRpYVBsYXllcklk
ZW50aWZpZXIgTWVkaWFQbGF5ZXI6OmlkZW50aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBtX3By
aXZhdGUtPmlkZW50aWZpZXIoKTsKIH0KIAorc3RkOjpvcHRpb25hbDxWaWRlb0ZyYW1lTWV0YWRh
dGE+IE1lZGlhUGxheWVyOjp2aWRlb0ZyYW1lTWV0YWRhdGEoKQoreworICAgIHJldHVybiBtX3By
aXZhdGUtPnZpZGVvRnJhbWVNZXRhZGF0YSgpOworfQorCiBTdHJpbmcgTWVkaWFQbGF5ZXI6OmVs
ZW1lbnRJZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNsaWVudCgpLm1lZGlhUGxheWVyRWxlbWVu
dElkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aAppbmRleCA5NzEyNjQ4Y2JhYWJlNzU5OWU2N2RmNjVhZjJjMzU2YmYyNDE2MzVmLi4wNDg4ZGY1
NzFiNzk2Y2UxMzRiZmRmMTE5NDAzYThmMTVjMGQyNTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNs
dWRlICJQbGF0Zm9ybUxheWVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCiAj
aW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlICJWaWRlb0ZyYW1lTWV0YWRhdGEuaCIKICNpbmNs
dWRlICJWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CkBAIC02
NzgsNiArNjc5LDggQEAgcHVibGljOgogICAgIE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlm
aWVyKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNNZWRpYUVuZ2luZSgpIGNvbnN0OwogCisgICAgc3Rk
OjpvcHRpb25hbDxWaWRlb0ZyYW1lTWV0YWRhdGE+IHZpZGVvRnJhbWVNZXRhZGF0YSgpOworCiBw
cml2YXRlOgogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7CiAgICAgTWVkaWFQ
bGF5ZXIoTWVkaWFQbGF5ZXJDbGllbnQmLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclByaXZhdGUuaAppbmRleCA2YWI0N2IxNTM4ZmZjMmYyOTQ0Yzg0YTlmNDRjNWM4
Y2JiNjAyY2Y3Li44OWE2ZThjZWZlOTkyYmFiZGNjZjk0ZDA1NGZkMDFlODViMGQxZTgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclBy
aXZhdGUuaApAQCAtMzIwLDYgKzMyMCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNQYXVzZUF0SG9zdFRpbWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBwbGF5QXRIb3N0VGltZShjb25zdCBNb25vdG9uaWNUaW1lJikgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgcGF1c2VBdEhvc3RUaW1lKGNvbnN0IE1vbm90b25pY1Rp
bWUmKSB7IHJldHVybiBmYWxzZTsgfQorCisgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPFZpZGVv
RnJhbWVNZXRhZGF0YT4gdmlkZW9GcmFtZU1ldGFkYXRhKCkgeyByZXR1cm4geyB9OyB9CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCmluZGV4IDYzZmQ5ZWE5M2Q0N2UyNDcyMDY3MWE0
YjZjNWY1ZGRkZjlkY2E4MzUuLjM5ZGRkMDNmNWY2NmFmN2MwMTcxZDMwMDkxZDBmMjdmMDc3NjFl
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCkBAIC0xNTksNiArMTU5LDcgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgc2V0QnVmZmVyaW5nUG9saWN5KE1lZGlhUGxheWVyOjpCdWZmZXJpbmdQ
b2xpY3kpIG92ZXJyaWRlOwogICAgIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmlu
YWw7CisgICAgc3RkOjpvcHRpb25hbDxWaWRlb0ZyYW1lTWV0YWRhdGE+IHZpZGVvRnJhbWVNZXRh
ZGF0YSgpIGZpbmFsOwogCiAgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgY3VycmVudFJlYWR5
U3RhdGUoKTsKICAgICB2b2lkIHVwZGF0ZVJlYWR5U3RhdGUoKTsKQEAgLTI3OCw2ICsyNzksOSBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1Zpc2libGVJblZpZXdQb3J0IHsgZmFsc2UgfTsKICAg
ICBib29sIG1faGF2ZVNlZW5NZXRhZGF0YSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3dhaXRpbmdG
b3JGaXJzdEltYWdlIHsgZmFsc2UgfTsKKworICAgIHVpbnQ2NF90IG1fc2FtcGxlQ291bnQgeyAw
IH07CisgICAgdWludDY0X3QgbV9sYXN0VmlkZW9GcmFtZU1ldGFkYXRhU2FtcGxlQ291bnQgeyAw
IH07CiB9OwogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IGRkM2FmNjQx
NzdhOTMzODkyY2I3N2ZhMGM0M2JkMjY1MTU2ZDQxNDEuLmU5ZDRkMWNlYmQyYTE0YWYyNDVhMjJl
NzYxMmFhM2RiOGU2MzllNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTMxNiw2
ICszMTYsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cHJv
Y2Vzc05ld1ZpZGVvU2FtcGxlKE1lZGlhU2FtcGxlJiBzYQogICAgICAgICAgICAgdXBkYXRlUmVh
ZHlTdGF0ZSgpOwogICAgIH0KIAorICAgICsrbV9zYW1wbGVDb3VudDsKKwogICAgIGlmIChtX2Rp
c3BsYXlNb2RlICE9IExpdmVQcmV2aWV3ICYmICFtX3dhaXRpbmdGb3JGaXJzdEltYWdlKQogICAg
ICAgICByZXR1cm47CiAKQEAgLTEwODgsNiArMTA5MCwyMiBAQCBXVEZMb2dDaGFubmVsJiBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmxvZ0NoYW5uZWwoKSBjb25zdAogICAg
IHJldHVybiBMb2dNZWRpYTsKIH0KIAorc3RkOjpvcHRpb25hbDxWaWRlb0ZyYW1lTWV0YWRhdGE+
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9GcmFtZU1ldGFkYXRh
KCkKK3sKKyAgICBpZiAobV9zYW1wbGVDb3VudCA9PSBtX2xhc3RWaWRlb0ZyYW1lTWV0YWRhdGFT
YW1wbGVDb3VudCkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBtX2xhc3RWaWRlb0ZyYW1lTWV0
YWRhdGFTYW1wbGVDb3VudCA9IG1fc2FtcGxlQ291bnQ7CisKKyAgICBWaWRlb0ZyYW1lTWV0YWRh
dGEgbWV0YWRhdGE7CisgICAgbWV0YWRhdGEud2lkdGggPSBtX2ludHJpbnNpY1NpemUud2lkdGgo
KTsKKyAgICBtZXRhZGF0YS5oZWlnaHQgPSBtX2ludHJpbnNpY1NpemUuaGVpZ2h0KCk7CisgICAg
bWV0YWRhdGEucHJlc2VudGVkRnJhbWVzID0gbV9zYW1wbGVDb3VudDsKKworICAgIC8vIEZJWE1F
OiBJdCB3b3VsZCBiZSBnb29kIHRvIGV4cG9zZSBtb3JlIHZpZGVvIGZyYW1lIG1ldGFkYXRhLgor
CisgICAgcmV0dXJuIG1ldGFkYXRhOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZlMTkwNGJh
NDA3NDJjNTM3YmNlMmY3NmNhOGU1MzU0NjU2MjFkM2IuLjQ1MThhNWEzZDE1NjAxZTlkN2RhMmQ5
ZjNiMTE0OGRiOTkyMjdlYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMC0xNSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IHJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sgQVBJIGFuZCBNZWRpYVN0cmVhbVRyYWNrLWJhc2Vk
IGJhY2tlbmQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0v
Z2V0VXNlck1lZGlhLXJ2ZmMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21l
ZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ydmZjLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sy
L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogd2VicnRjL3BlZXJDb25uZWN0aW9uLXJ2ZmMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZm
Yy5odG1sOiBBZGRlZC4KKwogMjAyMS0xMC0xNSAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmVydCByMjg0MjMwLCBteSBsYXN0IGZpeGVzIHRvIHRo
ZSB3YXRjaCBidWlsZCBtYWtlIGl0IGJyZWFrIHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwppbmRleCAwNThmOTY4OGFlODY5NWNjODQyYzVjYjRmYWU5M2E2YjE2N2E2N2NmLi4zNzMy
MzBlYjZhOTViNjU0N2ZiNDI2ZWNjZTkxNjQ2NTc2NTVmYjVmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0xMC0xNSAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlcXVlc3RWaWRl
b0ZyYW1lQ2FsbGJhY2sgQVBJIGFuZCBNZWRpYVN0cmVhbVRyYWNrLWJhc2VkIGJhY2tlbmQgc3Vw
cG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMx
ODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBy
ZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uOgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy92aWRlby1ydmZjL01FVEEueW1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvdmlkZW8tcnZmYy9SRUFETUUubWQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53
aW5kb3cuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2
ZmMvaWRsaGFybmVzcy53aW5kb3cuanM6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhyLXNl
c3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14ci1z
ZXNzaW9uLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92
aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZG9tLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay1kb20uaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmct
eHItc2Vzc2lvbi5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5n
LXhyLXNlc3Npb24uaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qt
dmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNh
bGxiYWNrLXBhcmFsbGVsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
cmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1yZXBlYXRpbmcuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1j
YWxsYmFjay13ZWJydGMuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXdl
YnJ0Yy5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlk
ZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3czYy1pbXBvcnQubG9nOiBBZGRlZC4K
KwogMjAyMS0xMC0xNSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAK
ICAgICAgICAgW1dlYklETF0gSlNET01CdWlsdGluQ29uc3RydWN0b3IgaW5zdGFuY2VzIHNob3Vs
ZCBzdXBwb3J0IHN1YmNsYXNzaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2MjlkZTg4NzQ2YTdk
N2IyODNlNmE0MjdkMWQzYzExNGU4ZWE4YWExLi4zNjU5NTJkMTI3OTkyNjk1NDU1Yzc5ZGJlMDQ2
Zjk4YzNiYTE3MjBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIxNiw2ICsyMTYsOSBAQCBmYXN0
L2hhcm5lc3MvdWlzY3JpcHRjb250cm9sbGVyIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvZG9jdW1lbnQtbGV2ZWwtdG91Y2htb3ZlLWV2
ZW50LWxpc3RlbmVyLXBhc3NpdmUtYnktZGVmYXVsdC50ZW50YXRpdmUuaHRtbCBbIFNraXAgXQog
CisjIE9ubHkgTWFjIGFuZCBpT1MgV0syIGhhdmUgYW4gaW1wbGVtZW50YXRpb24gcmlnaHQgbm93
LgoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjIFsgU2tpcCBdCisK
ICMgVGhpcyB0ZXN0IG9ubHkgbWFrZXMgc2Vuc2Ugb24gTWFjCiBmYXN0L2F0dGFjaG1lbnQvYXR0
YWNobWVudC1zdWJ0aXRsZS1yZXNpemUuaHRtbCBbIFNraXAgXQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ydmZjLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg0OWQ4YjVmMzM3ZGVkNGY4YThmMGM2OWYxNTM3Mzk2Y2U5MzVkNDYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJN
ZWRpYS1ydmZjLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworCitQQVNTIFZhbGlkYXRl
IGNhbGxiYWNrcyBjYW4gYmUgdXBkYXRlZCB3aXRoaW4gYSBjYWxsYmFjaworUEFTUyBWYWxpZGF0
ZSBjYWxsYmFja3MgYW5kIG1ldGFkYXRhIGZvciBnZXRVc2VyTWVkaWEKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtcnZmYy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtcnZmYy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI5YjgxNmNiYzRiY2EwNjA4YzYwNTk3Y2EwNjgxNDZhYzliZTIyZmEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ydmZjLmh0
bWwKQEAgLTAsMCArMSw3MiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4K
KyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgICAgICA8dGl0bGU+VGVzdGluZyBy
dmZjIG9uIGdldFVzZXJNZWRpYSBzdHJlYW08L3RpdGxlPgorICAgICAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8dmlkZW8gaWQ9InZpZGVvIiBhdXRvcGxh
eT0iIj48L3ZpZGVvPgorICAgICAgICA8c2NyaXB0PgorYXN5bmMgZnVuY3Rpb24gZ3JhYk5leHRN
ZXRhZGF0YSh2aWRlbykKK3sKKyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVj
dCkgPT4geworICAgICAgICBjb25zdCBpZGVudGlmaWVyID0gdmlkZW8ucmVxdWVzdFZpZGVvRnJh
bWVDYWxsYmFjaygobm93LCBtZXRhZGF0YSkgPT4geworICAgICAgICAgICAgcmVzb2x2ZShtZXRh
ZGF0YSk7CisgICAgICAgICAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soaWRlbnRp
Zmllcik7CisgICAgICAgIH0pOworICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAg
ICAgIHJlamVjdCgibm8gbWV0YWRhdGEgZm9yICIgKyBpZGVudGlmaWVyKTsKKyAgICAgICAgICAg
IHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayhpZGVudGlmaWVyKTsKKyAgICAgICAgfSwg
NTAwMCk7CisgICAgfSk7Cit9CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAg
IGNvbnN0IGxvY2FsU3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2Vy
TWVkaWEoe3ZpZGVvOiB7IHdpZHRoOiA2NDAsIGhlaWdodDogNDgwIH0gfSk7CisgICAgdmlkZW8u
c3JjT2JqZWN0ID0gbG9jYWxTdHJlYW07CisgICAgYXdhaXQgdmlkZW8ucGxheSgpOworCisgICAg
bGV0IHJlc29sdmU7CisgICAgbGV0IHByb21pc2UgPSBuZXcgUHJvbWlzZShyID0+IHJlc29sdmUg
PSByKTsKKyAgICBjb25zdCBpZDEgPSB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKChu
b3csIG1ldGFkYXRhKSA9PiB7CisgICAgICAgIHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFj
ayhpZDEpOworICAgICAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soaWQyKTsKKwor
ICAgICAgICBjb25zdCBpZDMgPSB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKChub3cs
IG1ldGFkYXRhKSA9PiB7IGFzc2VydF9ub3RfcmVhY2hlZCgpOyB9KTsKKyAgICAgICAgdmlkZW8u
Y2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKGlkMyk7CisgICAgICAgIHNldFRpbWVvdXQocmVzb2x2
ZSwgMTAwKTsKKyAgICB9KTsKKworICAgIGNvbnN0IGlkMiA9IHZpZGVvLnJlcXVlc3RWaWRlb0Zy
YW1lQ2FsbGJhY2soKG5vdywgbWV0YWRhdGEpID0+IHsKKyAgICAgICAgYXNzZXJ0X25vdF9yZWFj
aGVkKCk7CisgICAgfSk7CisKKyAgICByZXR1cm4gcHJvbWlzZTsKK30sICJWYWxpZGF0ZSBjYWxs
YmFja3MgY2FuIGJlIHVwZGF0ZWQgd2l0aGluIGEgY2FsbGJhY2siKTsKKworcHJvbWlzZV90ZXN0
KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3QgbG9jYWxTdHJlYW0gPSBhd2FpdCBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHsgd2lkdGg6IDY0MCwgaGVpZ2h0
OiA0ODAgfSB9KTsKKyAgICB2aWRlby5zcmNPYmplY3QgPSBsb2NhbFN0cmVhbTsKKyAgICBhd2Fp
dCB2aWRlby5wbGF5KCk7CisKKyAgICBsZXQgbWV0YWRhdGEgPSBhd2FpdCBncmFiTmV4dE1ldGFk
YXRhKHZpZGVvKTsKKyAgICBhc3NlcnRfZXF1YWxzKG1ldGFkYXRhLndpZHRoLCA2NDApOworICAg
IGFzc2VydF9lcXVhbHMobWV0YWRhdGEuaGVpZ2h0LCA0ODApOworICAgIGFzc2VydF9ncmVhdGVy
X3RoYW4obWV0YWRhdGEucHJlc2VudGVkRnJhbWVzLCAwKTsKKyAgICBjb25zdCBwcmVzZW50ZWRG
cmFtZXMgPSBtZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXM7CisKKyAgICBhd2FpdCBsb2NhbFN0cmVh
bS5nZXRWaWRlb1RyYWNrcygpWzBdLmFwcGx5Q29uc3RyYWludHMoe3dpZHRoOiAzMjAsIGhlaWdo
dDogMjQwfSk7CisKKyAgICBsZXQgY291bnRlciA9IDA7CisgICAgd2hpbGUgKCsrY291bnRlciA8
IDEwMCAmJiBtZXRhZGF0YS53aWR0aCAhPT0gMzIwKSB7CisgICAgICAgIGF3YWl0IG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCA1MCkpOworICAgICAgICBtZXRhZGF0
YSA9IGF3YWl0IGdyYWJOZXh0TWV0YWRhdGEodmlkZW8pOworICAgIH0KKyAgICBhc3NlcnRfZXF1
YWxzKG1ldGFkYXRhLndpZHRoLCAzMjApOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRh
dGEucHJlc2VudGVkRnJhbWVzLCBwcmVzZW50ZWRGcmFtZXMpOworfSwgIlZhbGlkYXRlIGNhbGxi
YWNrcyBhbmQgbWV0YWRhdGEgZm9yIGdldFVzZXJNZWRpYSIpOworICAgICAgICA8L3NjcmlwdD4K
KyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbiBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCmluZGV4IDYxMGRkNWNm
ZDVhZjUwZmJkNjkxMWZjMTcwNTM4YmZhNDBiZDI2OTYuLjAxMWFiZTIxNWEzMjhmYzI3MzU0ZTc2
ZDY0ZmVmNGM5MTk3Nzk2ZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9y
ZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCkBAIC00NDUsNiArNDQ1
LDcgQEAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3VybCI6ICJpbXBvcnQiLCAKICAgICAid2Vi
LXBsYXRmb3JtLXRlc3RzL3VzZXItdGltaW5nIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZv
cm0tdGVzdHMvdmlicmF0aW9uIjogInNraXAiLCAKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy92aXN1YWwtdmll
d3BvcnQiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93YWktYXJpYSI6ICJz
a2lwIiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93YXNtIjogImltcG9ydCIsIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL01FVEEueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy92aWRlby1ydmZjL01FVEEueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlNTgxZjQyMzRhZDM5YzgxOWUzNzFh
NTMyY2Q0MTY0MjA2MGE3YzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvTUVUQS55bWwKQEAgLTAsMCArMSwz
IEBACitzcGVjOiBodHRwczovL3dpY2cuZ2l0aHViLmlvL3ZpZGVvLXJ2ZmMvCitzdWdnZXN0ZWRf
cmV2aWV3ZXJzOgorICAtIHRndWlsYmVydApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL1JFQURNRS5tZCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9SRUFETUUubWQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWI3YTM1MzA1MTU4NjFjOTFjNGMwMTJiOTNjMmUwY2Y4ZTkxM2RlZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdmlkZW8tcnZmYy9SRUFETUUubWQKQEAgLTAsMCArMSw3IEBACisjIEhUTUxWaWRlb0VsZW1l
bnQucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayBzcGVjaWZpY2F0aW9uIFRlc3RzCisKK1RoZSBI
VE1MVmlkZW9FbGVtZW50LnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sgc3BlY2lmaWNhdGlvbiBp
cyBhdmFpbGFibGUgaGVyZTogaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby92aWRlby1ydmZjCisKK0dp
dEh1YiByZXBvc2l0b3J5OiBodHRwczovL2dpdGh1Yi5jb20vV0lDRy92aWRlby1ydmZjCisKK0Zp
bGUgYW4gaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS93aWNnL3ZpZGVvLXJ2ZmMvaXNzdWVzL25l
dwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndp
bmRvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTRiY2I2MjRjNTRhMDFkNDFkOTg5MWFhYzQw
YzkyMWYyODM5NjY1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyMCBAQAorCitQQVNTIGlkbF90ZXN0IHNldHVwCitQQVNTIGlkbF90
ZXN0IHZhbGlkYXRpb24KK1BBU1MgUGFydGlhbCBpbnRlcmZhY2UgSFRNTFZpZGVvRWxlbWVudDog
b3JpZ2luYWwgaW50ZXJmYWNlIGRlZmluZWQKK1BBU1MgUGFydGlhbCBpbnRlcmZhY2UgSFRNTFZp
ZGVvRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgSFRNTEVsZW1lbnQgaW5j
bHVkZXMgR2xvYmFsRXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1Mg
SFRNTEVsZW1lbnQgaW5jbHVkZXMgRG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENv
bnRlbnRFZGl0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgSFRNTEVsZW1lbnQg
aW5jbHVkZXMgSFRNTE9yU1ZHRWxlbWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1Mg
RWxlbWVudCBpbmNsdWRlcyBQYXJlbnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFT
UyBFbGVtZW50IGluY2x1ZGVzIE5vbkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQorUEFTUyBIVE1MVmlkZW9FbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9u
IHJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjaykKK1BB
U1MgSFRNTFZpZGVvRWxlbWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiBjYW5jZWxWaWRlb0ZyYW1l
Q2FsbGJhY2sodW5zaWduZWQgbG9uZykKK1BBU1MgSFRNTFZpZGVvRWxlbWVudCBpbnRlcmZhY2U6
IHZpZGVvIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAicmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayhW
aWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgSFRN
TFZpZGVvRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcgcmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
ayhWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrKSBvbiB2aWRlbyB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yCitQQVNTIEhUTUxWaWRlb0VsZW1lbnQgaW50ZXJmYWNl
OiB2aWRlbyBtdXN0IGluaGVyaXQgcHJvcGVydHkgImNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayh1
bnNpZ25lZCBsb25nKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgSFRNTFZpZGVvRWxlbWVu
dCBpbnRlcmZhY2U6IGNhbGxpbmcgY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKHVuc2lnbmVkIGxv
bmcpIG9uIHZpZGVvIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53aW5kb3cuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93Lmh0bWwKQEAgLTAsMCArMSBAQAorPCEt
LSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRv
IHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92
aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93LmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZhOWU0ZTA5ODhiZjY3Yzg4ZGNjZDI5N2NmNTY0YmI5N2Q1ZGU2YmQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMvaWRsaGFybmVzcy53aW5kb3cuanMKQEAgLTAsMCArMSwxNyBAQAorLy8gTUVUQTog
c2NyaXB0PS9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzCisvLyBNRVRBOiBzY3JpcHQ9L3Jlc291
cmNlcy9pZGxoYXJuZXNzLmpzCisvLyBNRVRBOiB0aW1lb3V0PWxvbmcKKworJ3VzZSBzdHJpY3Qn
OworCitpZGxfdGVzdCgKKyAgWyd2aWRlby1ydmZjJ10sCisgIFsnaHRtbCcsICdkb20nXSwKKyAg
aWRsX2FycmF5ID0+IHsKKyAgICBpZGxfYXJyYXkuYWRkX29iamVjdHMoeworICAgICAgSFRNTFZp
ZGVvRWxlbWVudDogWyd2aWRlbyddLAorICAgIH0pOworICAgIHNlbGYudmlkZW8gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICB9CispOworCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
cmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNGY0NzdjMDkzMTk5ZDUyZjJlYzhiMmZlNmUxNTU2ZWRlZDkx
OWE1OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9y
ZS14ci1zZXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKKworSGFybmVz
cyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK1RJTUVPVVQgTWFrZSBzdXJlIHZp
ZGVvLnJWRkMgd29ya3MgZHVyaW5nIGEgbm9uLWltbWVyc2l2ZSBzZXNzaW9uIC0gd2ViZ2wgVGVz
dCB0aW1lZCBvdXQKK05PVFJVTiBNYWtlIHN1cmUgdmlkZW8uclZGQyB3b3JrcyBkdXJpbmcgYSBu
b24taW1tZXJzaXZlIHNlc3Npb24gLSB3ZWJnbDIKK05PVFJVTiBNYWtlIHN1cmUgdmlkZW8uclZG
QyB3b3JrcyBkdXJpbmcgYW4gaW1tZXJzaXZlIHNlc3Npb24gLSB3ZWJnbAorTk9UUlVOIE1ha2Ug
c3VyZSB2aWRlby5yVkZDIHdvcmtzIGR1cmluZyBhbiBpbW1lcnNpdmUgc2Vzc2lvbiAtIHdlYmds
MgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHItc2Vz
c2lvbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhyLXNl
c3Npb24uaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Mjc3ZmJiYTkyZmJmNjM1NzlhZDRkNGQ1YTJj
YTFkYzJlMzU2Y2Q2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJh
Y2stYmVmb3JlLXhyLXNlc3Npb24uaHR0cHMuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPHRpdGxlPlRlc3QgdGhhdCB2aWRlby5yVkZDIGNhbGxiYWNrcyBz
dGFydGVkIGJlZm9yZSBhbiBYUlNlc3Npb24gd29yay48L3RpdGxlPgorPGJvZHk+Cis8L2JvZHk+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL2NvbW1vbi9tZWRpYS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vd2Vi
eHIvcmVzb3VyY2VzL3dlYnhyX3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3dl
YnhyL3Jlc291cmNlcy93ZWJ4cl90ZXN0X2NvbnN0YW50cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorCisvLyBTdGFydCB0aGUgdmlkZW8uclZGQyBjYWxsYmFja3MgYmVmb3JlIHN0YXJ0aW5nIHRo
ZSBYUiBTZXNzaW9uLgorbGV0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8n
KTsKK3ZpZGVvLnNyYyA9IGdldFZpZGVvVVJJKCcvbWVkaWEvbW92aWVfNScpOworCit2YXIgbnVt
YmVyVkZDcyA9IDA7CitsZXQgdmlkZW9DYWxsYmFjayA9ICgpID0+IHsKKyAgICBudW1iZXJWRkNz
Kys7CisgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh2aWRlb0NhbGxiYWNrKTsK
K30KKwordmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh2aWRlb0NhbGxiYWNrKTsKK3Zp
ZGVvLnBsYXkoKTsKKworbGV0IHRlc3RGdW5jdGlvbiA9IGFzeW5jIGZ1bmN0aW9uKHNlc3Npb24s
IGZha2VEZXZpY2VDb250cm9sbGVyLCB0KSB7CisgICAgbGV0IHdhdGNoZXJEb25lID0gbmV3IEV2
ZW50KCJ3YXRjaGVyZG9uZSIpOworICAgIGxldCBldmVudFdhdGNoZXIgPSBuZXcgRXZlbnRXYXRj
aGVyKHQsIHNlc3Npb24sIFsiZW5kIiwgIndhdGNoZXJkb25lIl0pOworICAgIGxldCBldmVudFBy
b21pc2UgPSBldmVudFdhdGNoZXIud2FpdF9mb3IoWyJlbmQiLCAid2F0Y2hlcmRvbmUiXSk7CisK
KyAgICBudW1iZXJWRkNzID0gMDsKKworICAgIGZ1bmN0aW9uIG9uWFJGcmFtZSh0aW1lLCBmcmFt
ZSkgeworICAgICAgICBpZihudW1iZXJWRkNzID49IDIpIHsKKyAgICAgICAgICAgIC8vIE1ha2Ug
c3VyZSB2aWRlby5yVkZDcyBhcmUgc3RpbGwgY29taW5nIHRocm91Z2ggYmVmb3JlIGVuZGluZyB0
aGUKKyAgICAgICAgICAgIC8vIHNlc3Npb24uCisgICAgICAgICAgICBzZXNzaW9uLmVuZCgpOwor
ICAgICAgICB9CisKKyAgICAgICAgc2Vzc2lvbi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUob25YUkZy
YW1lKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvblNlc3Npb25FbmQoZXZlbnQpIHsKKyAgICAg
ICAgLy8gTWFrZSBzdXJlIHdlIGFyZSBzdGlsbCBnZXR0aW5nIHJWRkMgY2FsbGJhY2tzIGFmdGVy
IHRoZSBzZXNzaW9uIGVuZC4KKyAgICAgICAgbnVtYmVyVkZDcyA9IDA7CisgICAgICAgIHQuc3Rl
cF93YWl0X2Z1bmMoKCkgPT4gbnVtYmVyVkZDcyA+PSAyLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICgpID0+IHNlc3Npb24uZGlzcGF0Y2hFdmVudCh3YXRjaGVyRG9uZSksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIlRpbWUgb3V0IHdhaXRpbmcgZm9yIFZGQyBjYWxsYmFja3MiKTsKKyAg
ICB9CisKKyAgICBzZXNzaW9uLmFkZEV2ZW50TGlzdGVuZXIoImVuZCIsIG9uU2Vzc2lvbkVuZCwg
ZmFsc2UpOworICAgIHNlc3Npb24ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKG9uWFJGcmFtZSk7CisK
KyAgICByZXR1cm4gZXZlbnRQcm9taXNlOworfQorCit4cl9zZXNzaW9uX3Byb21pc2VfdGVzdCgn
TWFrZSBzdXJlIHZpZGVvLnJWRkMgd29ya3MgZHVyaW5nIGEgbm9uLWltbWVyc2l2ZSBzZXNzaW9u
JywKKyAgICB0ZXN0RnVuY3Rpb24sIFRSQUNLRURfSU1NRVJTSVZFX0RFVklDRSwgJ2lubGluZScp
OworCit2aWRlby5jdXJyZW50VGltZSA9IDA7CisKK3hyX3Nlc3Npb25fcHJvbWlzZV90ZXN0KCdN
YWtlIHN1cmUgdmlkZW8uclZGQyB3b3JrcyBkdXJpbmcgYW4gaW1tZXJzaXZlIHNlc3Npb24nLAor
ICAgIHRlc3RGdW5jdGlvbiwgVFJBQ0tFRF9JTU1FUlNJVkVfREVWSUNFLCAnaW1tZXJzaXZlLXZy
Jyk7CisKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUt
Y2FsbGJhY2stZG9tLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRv
bS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjYzOWQ0ZjI4ODVlMWY5NzY0OGQ1MDU0NzcwZWFm
ZWI0MzJkYzUwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNr
LWRvbS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisKK0hhcm5lc3MgRXJyb3IgKFRJTUVP
VVQpLCBtZXNzYWdlID0gbnVsbAorCitUSU1FT1VUIFRlc3QgYSB2aWRlbyBvdXRzaWRlIG9mIHRo
ZSBET00gY2FuIHN0aWxsIHVzZSB2aWRlby5yVkZDLiBUZXN0IHRpbWVkIG91dAorVElNRU9VVCBU
ZXN0IHZpZGVvLnJWRkMgd29ya3Mgd2l0aCAiZGlzcGxheTpub25lIi4gVGVzdCB0aW1lZCBvdXQK
K1RJTUVPVVQgVGVzdCB2aWRlby5yVkZDIHdvcmtzIHdpdGggInZpc2liaWxpdHk6aGlkZGVuIi4g
VGVzdCB0aW1lZCBvdXQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2st
ZG9tLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kb20uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wMjc3ZDcyOTc4ODNjNGNkNGY0NzJiMDhjNDM5OTgwNjI4MGZlOGViCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZG9tLmh0bWwKQEAgLTAsMCArMSw1MCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzx0aXRsZT5UZXN0IHRoZSB2aWRlby5yZXF1ZXN0
VmlkZW9GcmFtZUNhbGxiYWNrKCkgQVBJIGZvciBub24gdmlzaWJsZSB2aWRlbyBlbGVtZW50cy48
L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vbWVkaWEuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8L2Jv
ZHk+Cis8c2NyaXB0PgordmFyIHRlc3RWaWRlbyA9IHsKKyAgdXJsOiBnZXRWaWRlb1VSSSgnL21l
ZGlhL21vdmllXzUnKSwKKyAgaGVpZ2h0OiAyNDAsCisgIHdpZHRoOiAzMjAsCit9CisKK2FzeW5j
X3Rlc3QoZnVuY3Rpb24odCkgeworICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3ZpZGVvJyk7CisKKyAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHQuc3Rl
cF9mdW5jX2RvbmUoKSk7CisgICAgdmlkZW8uc3JjID0gdGVzdFZpZGVvLnVybDsKKyAgICB2aWRl
by5wbGF5KCk7CisKK30sICdUZXN0IGEgdmlkZW8gb3V0c2lkZSBvZiB0aGUgRE9NIGNhbiBzdGls
bCB1c2UgdmlkZW8uclZGQy4nKTsKKworZnVuY3Rpb24gcnZmY1N0eWxlVGVzdChhcHBseVN0eWxl
LCBkZXNjcmlwdGlvbikgeworICAgIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgbGV0
IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOworICAgICAgYXBwbHlTdHlsZSh2aWRlbyk7CisKKyAg
ICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soCisgICAgICAgIHQuc3RlcF9mdW5j
KCBfID0+IHsKKyAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgY2FuIHJlY2VpdmUgbW9yZSB0aGFu
IG9uZSBjYWxsYmFjay4KKyAgICAgICAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNr
KHQuc3RlcF9mdW5jX2RvbmUoKSk7CisgICAgICAgIH0pCisgICAgICApOworCisgICAgICB2aWRl
by5zcmMgPSB0ZXN0VmlkZW8udXJsOworICAgICAgdmlkZW8ucGxheSgpOworICAgIH0sIGRlc2Ny
aXB0aW9uKTsKK30KKworcnZmY1N0eWxlVGVzdCgodmlkZW8pID0+IHsgdmlkZW8uc3R5bGUuZGlz
cGxheSA9ICJub25lIn0sCisgICdUZXN0IHZpZGVvLnJWRkMgd29ya3Mgd2l0aCAiZGlzcGxheTpu
b25lIi4nKTsKKworcnZmY1N0eWxlVGVzdCgodmlkZW8pID0+IHsgdmlkZW8uc3R5bGUudmlzaWJp
bGl0eSA9ICJoaWRkZW4ifSwKKyAgJ1Rlc3QgdmlkZW8uclZGQyB3b3JrcyB3aXRoICJ2aXNpYmls
aXR5OmhpZGRlbiIuJyk7CisKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qt
dmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZj
L3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NzIwMjBlNDkwMjcxYjQzNDI0MWQ5NDk4NjIxZmE5ZWI4
MWE0YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJp
bmcteHItc2Vzc2lvbi5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK0hhcm5l
c3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitUSU1FT1VUIE1ha2Ugc3VyZSB2
aWRlby5yVkZDIGNhbGxiYWNrcyBzdGFydGVkIGR1cmluZyBhbiBpbW1lcnNpdmUgc2Vzc2lvbiBj
b250aW51ZSBhZnRlciBpdCBlbmRzIC0gd2ViZ2wgVGVzdCB0aW1lZCBvdXQKK05PVFJVTiBNYWtl
IHN1cmUgdmlkZW8uclZGQyBjYWxsYmFja3Mgc3RhcnRlZCBkdXJpbmcgYW4gaW1tZXJzaXZlIHNl
c3Npb24gY29udGludWUgYWZ0ZXIgaXQgZW5kcyAtIHdlYmdsMgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVz
dC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVl
c3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zNDU2MWVlNWZkMDY1OTQ0ZDEzM2ZhNWQzMTRiNmNlZDJmNzk0NzNlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92
aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24u
aHR0cHMuaHRtbApAQCAtMCwwICsxLDYwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHRp
dGxlPlRlc3QgdGhhdCB2aWRlby5yVkZDIGNhbGxiYWNrcyBzdGFydGVkIGR1cmluZyBhbiBYUlNl
c3Npb24gd29yay48L3RpdGxlPgorPGJvZHk+CisgICAgPGNhbnZhcy8+Cis8L2JvZHk+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL2NvbW1vbi9tZWRpYS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vd2VieHIvcmVz
b3VyY2VzL3dlYnhyX3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3dlYnhyL3Jl
c291cmNlcy93ZWJ4cl90ZXN0X2NvbnN0YW50cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCits
ZXQgdGVzdEZ1bmN0aW9uID0gYXN5bmMgZnVuY3Rpb24oc2Vzc2lvbiwgZmFrZURldmljZUNvbnRy
b2xsZXIsIHQpIHsKKyAgICBsZXQgd2F0Y2hlckRvbmUgPSBuZXcgRXZlbnQoIndhdGNoZXJkb25l
Iik7CisgICAgbGV0IGV2ZW50V2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIodCwgc2Vzc2lvbiwg
WyJlbmQiLCAid2F0Y2hlcmRvbmUiXSk7CisgICAgbGV0IGV2ZW50UHJvbWlzZSA9IGV2ZW50V2F0
Y2hlci53YWl0X2ZvcihbImVuZCIsICJ3YXRjaGVyZG9uZSJdKTsKKworICAgIC8vIFN0YXJ0IHRo
ZSB2aWRlby5yVkZDIGNhbGxiYWNrcyB3aGlsZSB3ZSBhcmUgaW4gdGhlIHRoZSBYUiBTZXNzaW9u
LgorICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAg
dmlkZW8uc3JjID0gZ2V0VmlkZW9VUkkoJy9tZWRpYS9tb3ZpZV81Jyk7CisKKyAgICB2YXIgbnVt
YmVyVkZDcyA9IDA7CisgICAgbGV0IHZpZGVvQ2FsbGJhY2sgPSAoKSA9PiB7CisgICAgICAgIG51
bWJlclZGQ3MrKzsKKyAgICAgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh2aWRl
b0NhbGxiYWNrKTsKKyAgICB9CisKKyAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNr
KHZpZGVvQ2FsbGJhY2spOworICAgIHZpZGVvLnBsYXkoKTsKKworICAgIGZ1bmN0aW9uIG9uWFJG
cmFtZSh0aW1lLCBmcmFtZSkgeworICAgICAgICBpZihudW1iZXJWRkNzID49IDIpIHsKKyAgICAg
ICAgICAgIC8vIE1ha2Ugc3VyZSB2aWRlby5yVkZDcyBhcmUgY29taW5nIHRocm91Z2ggYmVmb3Jl
IGVuZGluZyB0aGUKKyAgICAgICAgICAgIC8vIHNlc3Npb24uCisgICAgICAgICAgICBzZXNzaW9u
LmVuZCgpOworICAgICAgICB9CisKKyAgICAgICAgc2Vzc2lvbi5yZXF1ZXN0QW5pbWF0aW9uRnJh
bWUob25YUkZyYW1lKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvblNlc3Npb25FbmQoZXZlbnQp
IHsKKyAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGFyZSBzdGlsbCBnZXR0aW5nIHJWRkMgY2FsbGJh
Y2tzIGFmdGVyIHRoZSBzZXNzaW9uIGVuZC4KKyAgICAgICAgbnVtYmVyVkZDcyA9IDA7CisgICAg
ICAgIHQuc3RlcF93YWl0X2Z1bmMoKCkgPT4gbnVtYmVyVkZDcyA+PSAyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICgpID0+IHNlc3Npb24uZGlzcGF0Y2hFdmVudCh3YXRjaGVyRG9uZSksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIlRpbWUgb3V0IHdhaXRpbmcgZm9yIFZGQyBjYWxsYmFj
a3MiKTsKKyAgICB9CisKKyAgICBzZXNzaW9uLmFkZEV2ZW50TGlzdGVuZXIoImVuZCIsIG9uU2Vz
c2lvbkVuZCwgZmFsc2UpOworICAgIHNlc3Npb24ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKG9uWFJG
cmFtZSk7CisKKyAgICByZXR1cm4gZXZlbnRQcm9taXNlOworfQorCit4cl9zZXNzaW9uX3Byb21p
c2VfdGVzdCgnTWFrZSBzdXJlIHZpZGVvLnJWRkMgY2FsbGJhY2tzIHN0YXJ0ZWQgZHVyaW5nIGFu
IGltbWVyc2l2ZSBzZXNzaW9uIGNvbnRpbnVlIGFmdGVyIGl0IGVuZHMnLAorICAgIHRlc3RGdW5j
dGlvbiwgVFJBQ0tFRF9JTU1FUlNJVkVfREVWSUNFLCAnaW1tZXJzaXZlLXZyJyk7CisKKzwvc2Ny
aXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92
aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmNhN2NiM2U5NGNkZmIyNTI1OGI5ZDk5YjRmNGQ0N2VkYTBlNzcyMTYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMCBAQAorCisKK0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAor
CitUSU1FT1VUIFRlc3Qgd2UgY2FuIHJlZ2lzdGVyIGEgdmlkZW8uclZGQyBjYWxsYmFjay4gVGVz
dCB0aW1lZCBvdXQKK1RJTUVPVVQgVGVzdCB2aWRlby5yVkZDIGNhbGxiYWNrcyBydW4gYmVmb3Jl
IHdpbmRvdy5yQUYgY2FsbGJhY2tzLiBUZXN0IHRpbWVkIG91dAorVElNRU9VVCBUZXN0IHdlIGNh
biBjYW5jZWwgYSB2aWRlby5yVkZDIHJlcXVlc3QuIFRlc3QgdGltZWQgb3V0CitQQVNTIFRlc3Qg
aW52YWxpZCBjYWxscyB0byB0aGUgdmlkZW8uclZGQyBBUEkuCitUSU1FT1VUIFRlc3QgdmlkZW8u
clZGQyBkb2VzIG5vdCBzdG9wIHdoZW4gc3dpdGNoaW5nIHNvdXJjZXMuIFRlc3QgdGltZWQgb3V0
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXBhcmFsbGVsLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlk
ZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXBhcmFsbGVsLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42ZmU2ODRhZThlNjZkYWI4Y2NlNjhkMjI3NTM1OTVhODQ0OGM2YjkwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCisKK0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBt
ZXNzYWdlID0gbnVsbAorCitUSU1FT1VUIFRlc3QgY2FsbGJhY2tzIGdldCB0aGUgc2FtZSBpbmZv
cm1hdGlvbi4gVGVzdCB0aW1lZCBvdXQKK1RJTUVPVVQgVGVzdCB3ZSBjYW4gY2FuY2VsIGNhbGxi
YWNrcyBmcm9tIGNhbGxiYWNrcy4gVGVzdCB0aW1lZCBvdXQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qt
dmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNh
bGxiYWNrLXBhcmFsbGVsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTRjNWRlMWFkZjU1YmEwMDE2YWI5OTg1
Nzc2YzU2OGU0OWY1OTU2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNh
bGxiYWNrLXBhcmFsbGVsLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzx0aXRsZT5UZXN0IGhhdmluZyBtdWx0aXBsZSB2aWRlby5yVkZDIGNhbGxiYWNrcyBp
biBmbGlnaHQgZm9yIGEgc2luZ2xlIGVsZW1lbnQuPC90aXRsZT4KKzxib2R5PjwvYm9keT4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvY29tbW9uL21lZGlhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2FzeW5jX3Rlc3Qo
ZnVuY3Rpb24odCkgeworICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Zp
ZGVvJyk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICBsZXQg
Zmlyc3RUaW1lOworICAgIGxldCBmaXJzdE1ldGFkYXRhOworCisgICAgdmlkZW8ucmVxdWVzdFZp
ZGVvRnJhbWVDYWxsYmFjayh0LnN0ZXBfZnVuYygodGltZSwgbWV0YWRhdGEpID0+IHsKKyAgICAg
IGZpcnN0VGltZSA9IHRpbWU7CisgICAgICBmaXJzdE1ldGFkYXRhID0gbWV0YWRhdGE7CisgICAg
fSkpOworCisgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0ZXBfZnVuY19k
b25lKCh0aW1lLCBtZXRhZGF0YSkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhmaXJzdFRpbWUs
IHRpbWUpOworICAgICAgYXNzZXJ0X29iamVjdF9lcXVhbHMoZmlyc3RNZXRhZGF0YSwgbWV0YWRh
dGEpOworICAgIH0pKTsKKworICAgIHZpZGVvLnNyYyA9IGdldFZpZGVvVVJJKCcvbWVkaWEvbW92
aWVfNScpOworICAgIHZpZGVvLnBsYXkoKTsKKworfSwgJ1Rlc3QgY2FsbGJhY2tzIGdldCB0aGUg
c2FtZSBpbmZvcm1hdGlvbi4nKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgbGV0
IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKKworICAgIGxldCBzZWNvbmRDYWxsYmFja0lkOworCisg
ICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygKKyAgICAgIHQuc3RlcF9mdW5jKF8g
PT4geyB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soc2Vjb25kQ2FsbGJhY2tJZCk7IH0p
CisgICAgKTsKKworICAgIHNlY29uZENhbGxiYWNrSWQgPSB2aWRlby5yZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrKAorICAgICAgdC5zdGVwX2Z1bmMoXyA9PiB7CisgICAgICAgIGFzc2VydF91bnJl
YWNoZWQoIkNhbmNlbGxlZCBjYWxsYmFja3Mgc2hvdWxkbid0IGJlIGV4ZWN1dGVkIikKKyAgICAg
IH0pCisgICAgKTsKKworICAgIC8vIE5PVEU6IFRoaXMgY2FsbGJhY2sgc2hvdWxkIGJlIGV4ZWN1
dGVkIGxhc3QuCisgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygKKyAgICAgIHQu
c3RlcF9mdW5jX2RvbmUoKQorICAgICk7CisKKyAgICB2aWRlby5zcmMgPSBnZXRWaWRlb1VSSSgn
L21lZGlhL21vdmllXzUnKTsKKyAgICB2aWRlby5wbGF5KCk7Cit9LCAnVGVzdCB3ZSBjYW4gY2Fu
Y2VsIGNhbGxiYWNrcyBmcm9tIGNhbGxiYWNrcy4nKTsKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRl
by1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZm
Yy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjRhNWJlM2RkMjUxMmI4NWMzODU1NWI4ZjNjZTcwMzY3OGVkNGRmZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw3IEBACisKKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3Nh
Z2UgPSBudWxsCisKK1RJTUVPVVQgVGVzdCBuZXcgY2FsbGJhY2tzIGFyZSBvbmx5IGNhbGxlZCBv
biB0aGUgbmV4dCBmcmFtZS4gVGVzdCB0aW1lZCBvdXQKK1RJTUVPVVQgVGVzdCBjaGFpbmluZyBj
YWxscyB0byB2aWRlby5yVkZDLCBhbmQgdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXJzLiBU
ZXN0IHRpbWVkIG91dAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1y
ZXBlYXRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmU2MzdhMDg3MmNiMGQwYzE1MWUwYTgwYTZhNTY5NDQ5ZmQyMjJhMWIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1yZXBlYXRpbmcuaHRt
bApAQCAtMCwwICsxLDgwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHRpdGxlPlRlc3Qg
cmVwZWF0ZWRseSBjaGFpbmluZyB2aWRlby5yVkZDKCkgY2FsbGJhY2tzLjwvdGl0bGU+Cis8Ym9k
eT48L2JvZHk+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9tZWRpYS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCd2aWRlbycpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8p
OworCisgICAgbGV0IGZpcnN0VGltZTsKKyAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrKHQuc3RlcF9mdW5jKCh0aW1lKSA9PiB7CisgICAgICBmaXJzdFRpbWUgPSB0aW1lOworCisg
ICAgICAvLyBRdWV1ZSB1cCBhIGNhbGxiYWNrIGFuZCBtYWtlIHN1cmUgaXQncyBub3QgaW1tZWRp
YXRlbHkgZXhlY3V0ZWQuCisgICAgICBsZXQgc2Vjb25kVGltZTsKKyAgICAgIHZpZGVvLnJlcXVl
c3RWaWRlb0ZyYW1lQ2FsbGJhY2sodC5zdGVwX2Z1bmMoKHRpbWUpID0+IHsKKyAgICAgICAgc2Vj
b25kVGltZSA9IHRpbWU7CisgICAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oc2Vjb25kVGltZSwg
Zmlyc3RUaW1lLCAiQ2FsbGJhY2tzIHNob3VsZCBiZSBleGVjdXRlZCBvbiB0aGUgbmV4dCBmcmFt
ZSIpOworICAgICAgfSkpCisKKyAgICAgIC8vIFF1ZXVlIHVwIGEgc2Vjb25kIGNhbGxiYWNrLCBh
bmQgbWFrZSBzdXJlIGl0J3MgY2FsbGVkIGF0IHRoZSBzYW1lIHRpbWUKKyAgICAgIC8vIGFzIHRo
ZSBvbmUgd2UganVzdCBxdWV1ZWQgdXAuCisgICAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrKHQuc3RlcF9mdW5jX2RvbmUoKHRpbWUpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyh0aW1lLCBzZWNvbmRUaW1lLCAiQ2FsbGJhY2tzIHF1ZXVlZCB0b2dldGhlciBzaG91bGQgYmUg
Y2FsbGVkIGF0IHRoZSBzYW1lIHRpbWUiKTsKKyAgICAgIH0pKQorCisgICAgfSkpOworCisgICAg
dmlkZW8uc3JjID0gZ2V0VmlkZW9VUkkoJy9tZWRpYS9tb3ZpZV81Jyk7CisgICAgdmlkZW8ucGxh
eSgpOworCit9LCAnVGVzdCBuZXcgY2FsbGJhY2tzIGFyZSBvbmx5IGNhbGxlZCBvbiB0aGUgbmV4
dCBmcmFtZS4nKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgbGV0IHZpZGVvID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKHZpZGVvKTsKKworICAgIGxldCBtYXhOdW1iZXJPZkNhbGxzID0gMTA7CisgICAgbGV0
IGN1cnJlbnRDYWxsTnVtYmVyID0gMDsKKyAgICBsZXQgbGFzdE1ldGFkYXRhOworCisgICAgZnVu
Y3Rpb24gdmVyaWZ5TWV0YWRhdGEobGFzdCwgY3VycmVudCkgeworICAgICAgYXNzZXJ0X2dyZWF0
ZXJfdGhhbihjdXJyZW50LnByZXNlbnRlZEZyYW1lcywgbGFzdC5wcmVzZW50ZWRGcmFtZXMsICJw
cmVzZW50ZWRGcmFtZXMgc2hvdWxkIGJlIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyIpOworICAg
ICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihjdXJyZW50LnByZXNlbnRhdGlvblRpbWUsIGxhc3QucHJl
c2VudGF0aW9uVGltZSwgInByZXNlbnRhdGlvblRpbWUgc2hvdWxkIGJlIG1vbm90b25pY2FsbHkg
aW5jcmVhc2luZyIpOworICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihjdXJyZW50LmV4cGVjdGVk
RGlzcGxheVRpbWUsIGxhc3QuZXhwZWN0ZWREaXNwbGF5VGltZSwgImV4cGVjdGVkRGlzcGxheVRp
bWUgc2hvdWxkIGJlIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyIpOworCisgICAgICAvLyBXZSBh
cmVuJ3Qgc2Vla2luZyB0aHJvdWdoIHRoZSBmaWxlLCBzbyB0aGlzIHNob3VsZCBiZSBpbmNyZWFz
aW5nIGZyb20gZnJhbWUgdG8gZnJhbWUuCisgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGN1cnJl
bnQubWVkaWFUaW1lLCBsYXN0Lm1lZGlhVGltZSwgIm1lZGlhVGltZSBzaG91bGQgYmUgaW5jcmVh
c2luZyIpOworCisgICAgICAvLyBUaGUgdGVzdCB2aWRlbydzIHNpemUgZG9lc24ndCBjaGFuZ2Uu
CisgICAgICBhc3NlcnRfZXF1YWxzKGN1cnJlbnQud2lkdGgsIGxhc3Qud2lkdGgsICJ3aWR0aCBz
aG91bGQgcmVtYWluIGNvbnN0YW50Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKGN1cnJlbnQuaGVp
Z2h0LCBsYXN0LmhlaWdodCwgImhlaWdodCBzaG91bGQgcmVtYWluIGNvbnN0YW50Iik7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcmVwZWF0aW5nQ2FsbGJhY2sodGltZSwgbWV0YWRhdGEpIHsKKyAg
ICAgIC8vIFNraXAgdGhlIGZpcnN0IGNhbGwgdG8gdmVyaWZ5TWV0YWRhdGEuCisgICAgICBpZiAo
Y3VycmVudENhbGxOdW1iZXIpCisgICAgICAgIHZlcmlmeU1ldGFkYXRhKGxhc3RNZXRhZGF0YSwg
bWV0YWRhdGEpCisKKyAgICAgIGxhc3RNZXRhZGF0YSA9IG1ldGFkYXRhOworCisgICAgICBpZiAo
KytjdXJyZW50Q2FsbE51bWJlciA+IG1heE51bWJlck9mQ2FsbHMpIHsKKyAgICAgICAgdC5kb25l
KCkKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2sodC5zdGVwX2Z1bmMocmVwZWF0aW5nQ2FsbGJhY2spKTsKKyAgICAgIH0KKyAgICB9CisKKyAg
ICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHQuc3RlcF9mdW5jKHJlcGVhdGluZ0Nh
bGxiYWNrKSk7CisKKyAgICB2aWRlby5zcmMgPSBnZXRWaWRlb1VSSSgnL21lZGlhL21vdmllXzUn
KTsKKyAgICB2aWRlby5wbGF5KCk7CisKK30sICdUZXN0IGNoYWluaW5nIGNhbGxzIHRvIHZpZGVv
LnJWRkMsIGFuZCB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlcnMuJyk7Cis8L3NjcmlwdD4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXdlYnJ0Yy5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0
cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkNTRkMGVhYWU3ODg2NDZmYjBkZjExODI4ODIz
MWZiMjU0ODc3N2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFj
ay13ZWJydGMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitGQUlMIFRlc3Qg
dmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygpIHBhcmFtZXRlcnMgZm9yIFdlYlJUQyBh
cHBsaWNhdGlvbnMuIGFzc2VydF9ncmVhdGVyX3RoYW46IGV4cGVjdGVkIGEgbnVtYmVyIGJ1dCBn
b3QgYSAidW5kZWZpbmVkIgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxi
YWNrLXdlYnJ0Yy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2std2VicnRj
Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGNmOTdlNGNhOTEwNWQ3ZTI5ZTU3OWJkYjYzMmRiNTU0
YzUyNTkzMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXdl
YnJ0Yy5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTY1IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4
dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KKyAgPHRpdGxlPldlYlJUQyB2aWRlby5yZXF1ZXN0Vmlk
ZW9GcmFtZUNhbGxiYWNrKCkgdGVzdDwvdGl0bGU+CisgIDxzY3JpcHQgc3JjPSIvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
PGRpdiBpZD0ibG9nIj48L2Rpdj4KKyAgPGRpdj4KKyAgICA8dmlkZW8gaWQ9ImxvY2FsLXZpZXci
IG11dGVkIGF1dG9wbGF5PSJhdXRvcGxheSI+PC92aWRlbz4KKyAgICA8dmlkZW8gaWQ9InJlbW90
ZS12aWV3IiBtdXRlZCBhdXRvcGxheT0iYXV0b3BsYXkiLz4KKyAgICA8L3ZpZGVvPgorICA8L2Rp
dj4KKworICA8IS0tIFRoZXNlIGZpbGVzIGFyZSBpbiBwbGFjZSB3aGVuIGV4ZWN1dGluZyBvbiBX
M0MuIC0tPgorICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CisgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICB2YXIgdGVzdCA9IGFz
eW5jX3Rlc3QoJ1Rlc3QgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygpIHBhcmFtZXRl
cnMgZm9yIFdlYlJUQyBhcHBsaWNhdGlvbnMuJyk7CisKKyAgLy8KKyAgLy8gVGhpcyB0ZXN0IGlz
IGJhc2VkIG9uIC93ZWJydGMvc2ltcGxlY2FsbC5odHRwcy5odG1sLCBidXQgaXQgY2FsbHMgdG8K
KyAgLy8gdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygpIGJlZm9yZSBlbmRpbmcsIHRv
IHZlcmlmeSBXZWJSVEMgcmVxdWlyZWQKKyAgLy8gYW5kIG9wdGlvbmFsIHBhcmFtZXRlcnMuCisg
IC8vCisKKyAgdmFyIGdGaXJzdENvbm5lY3Rpb24gPSBudWxsOworICB2YXIgZ1NlY29uZENvbm5l
Y3Rpb24gPSBudWxsOworICB2YXIgZ0NhbGxiYWNrQ291bnRlciA9IDA7CisgIHZhciB2ZXJpZnlf
cGFyYW1zID0gKG5vdywgbWV0YWRhdGEpID0+IHsKKyAgICBnQ2FsbGJhY2tDb3VudGVyID0gZ0Nh
bGxiYWNrQ291bnRlciArIDE7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihub3csIDApOworCisg
ICAgLy8gVmVyaWZ5IGFsbCByZXF1aXJlZCBmaWVsZHMKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFu
KG1ldGFkYXRhLnByZXNlbnRhdGlvblRpbWUsIDApOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4o
bWV0YWRhdGEuZXhwZWN0ZWREaXNwbGF5VGltZSwgMCk7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhh
bihtZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXMsIDApOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4o
bWV0YWRhdGEud2lkdGgsIDApOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEuaGVp
Z2h0LCAwKTsKKyAgICBhc3NlcnRfdHJ1ZSgibWVkaWFUaW1lIiBpbiBtZXRhZGF0YSwgIm1lZGlh
VGltZSBzaG91bGQgYmUgcHJlc2VudCIpOworCisgICAgLy8gVmVyaWZ5IFdlYlJUQyBvbmx5IGZp
ZWxkcy4KKyAgICBhc3NlcnRfdHJ1ZSgicnRwVGltZXN0YW1wIiBpbiBtZXRhZGF0YSwgInJ0cFRp
bWVzdGFtcCBzaG91bGQgYmUgcHJlc2VudCIpOworICAgIGFzc2VydF90cnVlKCJyZWNlaXZlVGlt
ZSIgaW4gbWV0YWRhdGEsICJyZWNlaXZlVGltZSBzaG91bGQgYmUgcHJlc2VudCIpOworICAgIC8v
IGNhcHR1cmVUaW1lIGlzIG5vdCBhdmFpbGFibGUgdW50aWwgcm91bmR0cmlwIHRpbWUgZXN0aW1h
dGlvbiBpcyBkb25lLgorICAgIGlmIChnQ2FsbGJhY2tDb3VudGVyID4gNjAgfHwgImNhcHR1cmVU
aW1lIiBpbiBtZXRhZGF0YSkgeworICAgICAgYXNzZXJ0X3RydWUoImNhcHR1cmVUaW1lIiBpbiBt
ZXRhZGF0YSwgImNhcHR1cmVUaW1lIHNob3VsZCBiZSBwcmVzZW50Iik7CisgICAgICB0ZXN0LmRv
bmUoKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAvLyBLZWVwIHJlcXVlc3RpbmcgY2FsbGJh
Y2tzLgorICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlbW90ZS12aWV3JykucmVxdWVz
dFZpZGVvRnJhbWVDYWxsYmFjayh0ZXN0LnN0ZXBfZnVuYyh2ZXJpZnlfcGFyYW1zKSk7CisgICAg
fQorICB9CisKKyAgdmFyIHZlcmlmeV9sb2NhbF9tZXRhZGF0YSA9IChub3csIG1ldGFkYXRhKSA9
PiB7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5leHBlY3RlZERpc3BsYXlUaW1l
LCAwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLnByZXNlbnRlZEZyYW1lcywg
MCk7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS53aWR0aCwgMCk7CisgICAgYXNz
ZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5oZWlnaHQsIDApOworICAgIGFzc2VydF90cnVlKCJj
YXB0dXJlVGltZSIgaW4gbWV0YWRhdGEsICJjYXB0dXJlVGltZSBzaG91bGQgYWx3YXlzIGJlIHBy
ZXNlbnQgZm9yIGxvY2FsIHNvdXJjZXMuIik7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRh
ZGF0YS5jYXB0dXJlVGltZSwgMCk7CisgIH0KKworICAvLyBJZiB0aGUgcmVtb3RlIHZpZGVvIGdl
dHMgdmlkZW8gZGF0YSB0aGF0IGltcGxpZXMgdGhlIG5lZ290aWF0aW9uCisgIC8vIGFzIHdlbGwg
YXMgdGhlIElDRSBhbmQgRFRMUyBjb25uZWN0aW9uIGFyZSB1cC4KKyAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3JlbW90ZS12aWV3JykKKyAgICAgIC5hZGRFdmVudExpc3RlbmVyKCdsb2FkZWRt
ZXRhZGF0YScsIGZ1bmN0aW9uKCkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW1v
dGUtdmlldycpLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodGVzdC5zdGVwX2Z1bmModmVyaWZ5
X3BhcmFtcykpOworICB9KTsKKworICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9jYWwtdmll
dycpCisgICAgICAuYWRkRXZlbnRMaXN0ZW5lcignbG9hZG1ldGFkYXRhJywgZnVuY3Rpb24oKSB7
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvY2FsLXZpZXcnKS5yZXF1ZXN0VmlkZW9G
cmFtZUNhbGxiYWNrKHRlc3Quc3RlcF9mdW5jX2RvbmUodmVyaWZ5X2xvY2FsX21ldGFkYXRhKSk7
CisgIH0pOworCisKKyAgZnVuY3Rpb24gZ2V0Tm9pc2VTdHJlYW1Pa0NhbGxiYWNrKGxvY2FsU3Ry
ZWFtKSB7CisgICAgZ0ZpcnN0Q29ubmVjdGlvbiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihudWxs
KTsKKyAgICB0ZXN0LmFkZF9jbGVhbnVwKCgpID0+IGdGaXJzdENvbm5lY3Rpb24uY2xvc2UoKSk7
CisgICAgZ0ZpcnN0Q29ubmVjdGlvbi5vbmljZWNhbmRpZGF0ZSA9IG9uSWNlQ2FuZGlkYXRlVG9G
aXJzdDsKKworICAgIGdTZWNvbmRDb25uZWN0aW9uID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKG51
bGwpOworICAgIHRlc3QuYWRkX2NsZWFudXAoKCkgPT4gZ1NlY29uZENvbm5lY3Rpb24uY2xvc2Uo
KSk7CisgICAgZ1NlY29uZENvbm5lY3Rpb24ub25pY2VjYW5kaWRhdGUgPSBvbkljZUNhbmRpZGF0
ZVRvU2Vjb25kOworICAgIGdTZWNvbmRDb25uZWN0aW9uLm9udHJhY2sgPSBvblJlbW90ZVRyYWNr
OworCisgICAgbG9jYWxTdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaChmdW5jdGlvbih0cmFjaykg
eworICAgICAgLy8gQmlkaXJlY3Rpb25hbCBzdHJlYW1zIGFyZSBuZWVkZWQgaW4gb3JkZXIgZm9y
IGNhcHR1cmVUaW1lIHRvIGJlCisgICAgICAvLyBwb3B1bGF0ZWQuIFVzZSB0aGUgc2FtZSBzb3Vy
Y2UgaW4gYm90aCBkaXJlY3Rpb25zLgorICAgICAgZ0ZpcnN0Q29ubmVjdGlvbi5hZGRUcmFjayh0
cmFjaywgbG9jYWxTdHJlYW0pOworICAgICAgZ1NlY29uZENvbm5lY3Rpb24uYWRkVHJhY2sodHJh
Y2ssIGxvY2FsU3RyZWFtKTsKKyAgICB9KTsKKworICAgIGdGaXJzdENvbm5lY3Rpb24uY3JlYXRl
T2ZmZXIoKS50aGVuKG9uT2ZmZXJDcmVhdGVkLCBmYWlsZWQoJ2NyZWF0ZU9mZmVyJykpOworCisg
ICAgdmFyIHZpZGVvVGFnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvY2FsLXZpZXcnKTsK
KyAgICB2aWRlb1RhZy5zcmNPYmplY3QgPSBsb2NhbFN0cmVhbTsKKyAgfTsKKworICB2YXIgb25P
ZmZlckNyZWF0ZWQgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihvZmZlcikgeworICAgIGdGaXJz
dENvbm5lY3Rpb24uc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisKKyAgICAvLyBUaGlzIHdv
dWxkIG5vcm1hbGx5IGdvIGFjcm9zcyB0aGUgYXBwbGljYXRpb24ncyBzaWduYWxpbmcgc29sdXRp
b24uCisgICAgLy8gSW4gb3VyIGNhc2UsIHRoZSAic2lnbmFsaW5nIiBpcyB0byBjYWxsIHRoaXMg
ZnVuY3Rpb24uCisgICAgcmVjZWl2ZUNhbGwob2ZmZXIuc2RwKTsKKyAgfSk7CisKKyAgZnVuY3Rp
b24gcmVjZWl2ZUNhbGwob2ZmZXJTZHApIHsKKyAgICB2YXIgcGFyc2VkT2ZmZXIgPSBuZXcgUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uKHsgdHlwZTogJ29mZmVyJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2RwOiBvZmZlclNkcCB9KTsKKyAgICBnU2Vj
b25kQ29ubmVjdGlvbi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYXJzZWRPZmZlcik7CisKKyAgICBn
U2Vjb25kQ29ubmVjdGlvbi5jcmVhdGVBbnN3ZXIoKS50aGVuKG9uQW5zd2VyQ3JlYXRlZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbGVkKCdjcmVhdGVBbnN3ZXInKSk7
CisgIH07CisKKyAgdmFyIG9uQW5zd2VyQ3JlYXRlZCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9u
KGFuc3dlcikgeworICAgIGdTZWNvbmRDb25uZWN0aW9uLnNldExvY2FsRGVzY3JpcHRpb24oYW5z
d2VyKTsKKworICAgIC8vIFNpbWlsYXJseSwgdGhpcyB3b3VsZCBnbyBvdmVyIHRoZSBhcHBsaWNh
dGlvbidzIHNpZ25hbGluZyBzb2x1dGlvbi4KKyAgICBoYW5kbGVBbnN3ZXIoYW5zd2VyLnNkcCk7
CisgIH0pOworCisgIGZ1bmN0aW9uIGhhbmRsZUFuc3dlcihhbnN3ZXJTZHApIHsKKyAgICB2YXIg
cGFyc2VkQW5zd2VyID0gbmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7IHR5cGU6ICdhbnN3ZXIn
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Rw
OiBhbnN3ZXJTZHAgfSk7CisgICAgZ0ZpcnN0Q29ubmVjdGlvbi5zZXRSZW1vdGVEZXNjcmlwdGlv
bihwYXJzZWRBbnN3ZXIpOworICB9OworCisgIHZhciBvbkljZUNhbmRpZGF0ZVRvRmlyc3QgPSB0
ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgeworICAgIC8vIElmIGV2ZW50LmNhbmRpZGF0
ZSBpcyBudWxsID0gbm8gbW9yZSBjYW5kaWRhdGVzLgorICAgIGlmIChldmVudC5jYW5kaWRhdGUp
IHsKKyAgICAgIGdTZWNvbmRDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRh
dGUpOworICAgIH0KKyAgfSk7CisKKyAgdmFyIG9uSWNlQ2FuZGlkYXRlVG9TZWNvbmQgPSB0ZXN0
LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgeworICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsK
KyAgICAgIGdGaXJzdENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7
CisgICAgfQorICB9KTsKKworICB2YXIgb25SZW1vdGVUcmFjayA9IHRlc3Quc3RlcF9mdW5jKGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgdmFyIHZpZGVvVGFnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3JlbW90ZS12aWV3Jyk7CisgICAgaWYgKCF2aWRlb1RhZy5zcmNPYmplY3QpIHsKKyAgICAg
IHZpZGVvVGFnLnNyY09iamVjdCA9IGV2ZW50LnN0cmVhbXNbMF07CisgICAgfQorICB9KTsKKwor
ICAvLyBSZXR1cm5zIGEgc3VpdGFibGUgZXJyb3IgY2FsbGJhY2suCisgIGZ1bmN0aW9uIGZhaWxl
ZChmdW5jdGlvbl9uYW1lKSB7CisgICAgcmV0dXJuIHRlc3QudW5yZWFjaGVkX2Z1bmMoJ1dlYlJU
QyBjYWxsZWQgZXJyb3IgY2FsbGJhY2sgZm9yICcgKyBmdW5jdGlvbl9uYW1lKTsKKyAgfQorCisg
IC8vIFRoaXMgZnVuY3Rpb24gc3RhcnRzIHRoZSB0ZXN0LgorICB0ZXN0LnN0ZXAoZnVuY3Rpb24o
KSB7CisgICAgZ2V0Tm9pc2VTdHJlYW0oeyB2aWRlbzogdHJ1ZSwgYXVkaW86IHRydWUgfSkKKyAg
ICAgIC50aGVuKHRlc3Quc3RlcF9mdW5jKGdldE5vaXNlU3RyZWFtT2tDYWxsYmFjayksIGZhaWxl
ZCgnZ2V0Tm9pc2VTdHJlYW0nKSk7CisgIH0pOworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0NDA0MTQzZmE0MDhlYmJiOGY0
OWNjMzE4MGUwNjVkMjAwZmZhNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFt
ZS1jYWxsYmFjay5odG1sCkBAIC0wLDAgKzEsMTUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPHRpdGxlPlRlc3QgdGhlIGJhc2ljcyBvZiB0aGUgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVD
YWxsYmFjaygpIEFQSS48L3RpdGxlPgorPGJvZHk+PC9ib2R5PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vbWVk
aWEuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciB0ZXN0VmlkZW8gPSB7CisgIHVybDogZ2V0
VmlkZW9VUkkoJy9tZWRpYS9tb3ZpZV81JyksCisgIGhlaWdodDogMjQwLAorICB3aWR0aDogMzIw
LAorfQorCit2YXIgYWx0VGVzdFZpZGVvID0geworICB1cmw6IGdldFZpZGVvVVJJKCcvbWVkaWEv
Y291bnRpbmcnKSwKKyAgaGVpZ2h0OiAyNDAsCisgIHdpZHRoOiAzMjAsCit9CisKK2FzeW5jX3Rl
c3QoZnVuY3Rpb24odCkgeworICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3ZpZGVvJyk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICBs
ZXQgaWQgPSB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKAorICAgICAgdC5zdGVwX2Z1
bmNfZG9uZSgodGltZSwgbWV0YWRhdGEpID0+IHsKKyAgICAgICAgYXNzZXJ0X3RydWUodGltZSA+
IDApOworICAgICAgICBhc3NlcnRfZXF1YWxzKG1ldGFkYXRhLmhlaWdodCwgdGVzdFZpZGVvLmhl
aWdodCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMobWV0YWRhdGEud2lkdGgsIHRlc3RWaWRlby53
aWR0aCk7CisgICAgICB9KQorICAgICk7CisKKyAgICBhc3NlcnRfdHJ1ZShpZCA+IDApOworCisg
ICAgdmlkZW8uc3JjID0gdGVzdFZpZGVvLnVybDsKKyAgICB2aWRlby5wbGF5KCk7CisKK30sICdU
ZXN0IHdlIGNhbiByZWdpc3RlciBhIHZpZGVvLnJWRkMgY2FsbGJhY2suJyk7CisKK2FzeW5jX3Rl
c3QoZnVuY3Rpb24odCkgeworICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3ZpZGVvJyk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICB2
aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKAorICAgICAgdC5zdGVwX2Z1bmModmlkZW9f
bm93ID0+IHsKKyAgICAgICAgLy8gUXVldWUgYSBjYWxsIHRvIHdpbmRvdy5yQUYsIGFuZCBtYWtl
IHN1cmUgaXQgaXMgZXhlY3V0ZWQgd2l0aGluIHRoZQorICAgICAgICAvLyBzYW1lIHR1cm4gb2Yg
dGhlIGV2ZW50IGxvb3AgKHdpdGggdGhlIHNhbWUgJ3RpbWUnIHBhcmFtZXRlcikuCisgICAgICAg
IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoIHQuc3RlcF9mdW5jX2RvbmUoIHdpbmRvd19u
b3cgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHModmlkZW9fbm93LCB3aW5kb3dfbm93KTsK
KyAgICAgICAgfSkpOworICAgICAgfSkKKyAgICApOworCisgICAgdmlkZW8uc3JjID0gdGVzdFZp
ZGVvLnVybDsKKyAgICB2aWRlby5wbGF5KCk7CisKK30sICdUZXN0IHZpZGVvLnJWRkMgY2FsbGJh
Y2tzIHJ1biBiZWZvcmUgd2luZG93LnJBRiBjYWxsYmFja3MuJyk7CisKKworYXN5bmNfdGVzdChm
dW5jdGlvbih0KSB7CisgICAgbGV0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlk
ZW8nKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKKworICAgIGxldCBp
ZCA9IHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soCisgICAgICB0LnN0ZXBfZnVuYyhf
ID0+IHsKKyAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiQ2FuY2VsbGVkIGNhbGxiYWNrcyBzaG91
bGRuJ3QgYmUgZXhlY3V0ZWQiKQorICAgICAgfSkKKyAgICApOworCisgICAgdmlkZW8uY2FuY2Vs
VmlkZW9GcmFtZUNhbGxiYWNrKGlkKTsKKworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2Fs
bGJhY2soCisgICAgICB0LnN0ZXBfZnVuYyhfID0+IHsKKyAgICAgICAgLy8gQXQgdGhpcyBwb2lu
dCwgdGhlIG90aGVyIGNhbGxiYWNrIHNob3VsZG4ndCBoYXZlIGZpcmVkLCBidXQKKyAgICAgICAg
Ly8gZ2l2ZSBpdCBzb21lIG1vcmUgdGltZSBhbmQgcmVhbGx5IG1ha2Ugc3VyZSBpdCBkb2Vzbid0
LCBieSBnb2luZworICAgICAgICAvLyB0aHJvdWdodCB0aGUgZXZlbnQgbG9vcCBvbmNlIG1vcmUu
CisgICAgICAgIHQuc3RlcF90aW1lb3V0KCgpID0+IHsgdC5kb25lKCk7IH0sIDApOworICAgICAg
fSkKKyAgICApOworCisgICAgdmlkZW8uc3JjID0gdGVzdFZpZGVvLnVybDsKKyAgICB2aWRlby5w
bGF5KCk7Cit9LCAnVGVzdCB3ZSBjYW4gY2FuY2VsIGEgdmlkZW8uclZGQyByZXF1ZXN0LicpOwor
Cit0ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCd2aWRlbycpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOworCisg
ICAgLy8gcmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygpIGV4cGVjdHMgMSBmdW5jdGlvbiBhcyBh
IHBhcmFtZXRlci4KKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgXyA9PiB7IHZpZGVv
LnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKSB9ICk7CisgICAgYXNzZXJ0X3Rocm93c19qcyhU
eXBlRXJyb3IsIF8gPT4geyB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKDApIH0pOwor
ICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBfID0+IHsgdmlkZW8ucmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFjaygiZm9vIikgfSk7CisKKyAgICAvLyBjYW5jZWxWaWRlb0ZyYW1lQ2FsbGJh
Y2soKSBleHBlY3RzIDEgbnVtYmVyIGFzIGEgcGFyYW1ldGVyCisgICAgYXNzZXJ0X3Rocm93c19q
cyhUeXBlRXJyb3IsIF8gPT4geyB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soKSB9ICk7
CisKKyAgICAvLyBJbnZhbGlkIGNhbGxzIGFyZSBqdXN0IG5vLW9wcworICAgIHZpZGVvLmNhbmNl
bFZpZGVvRnJhbWVDYWxsYmFjayhfID0+IHt9KTsKKyAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1l
Q2FsbGJhY2soTmFOKTsKKyAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soImZvbyIp
OworICAgIHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjaygxMjM0NSk7CisgICAgdmlkZW8u
Y2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKC0xKTsKKworfSwgJ1Rlc3QgaW52YWxpZCBjYWxscyB0
byB0aGUgdmlkZW8uclZGQyBBUEkuJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbih0
KSB7CisgICAgbGV0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKKworICAgIGxldCBmaXJzdF93aWR0
aCA9IDA7CisgICAgbGV0IGZpcnN0X2hlaWdodCA9IDA7CisKKyAgICB2aWRlby5zcmMgPSB0ZXN0
VmlkZW8udXJsOworCisgICAgYXdhaXQgdmlkZW8ucGxheSgpOworCisgICAgLy8gU3dpdGNoIHRv
IGFuZCBmcm9tIGEgc2Vjb25kIHZpZGVvLCBhbmQgbWFrZSBzdXJlIHdlIGdldCByVkZDIGNhbGxz
IGF0CisgICAgLy8gZWFjaCBzdGVwLgorICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwg
cmVqZWN0KSA9PiB7CisgICAgICBsZXQgb25SZXR1cm5Ub09yaWdpbmFsVmlkZW8gPSB0LnN0ZXBf
ZnVuYygobm93LCBtZXRhZGF0YSkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKGZpcnN0X3dp
ZHRoLCBtZXRhZGF0YS53aWR0aCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZmlyc3RfaGVpZ2h0
LCBtZXRhZGF0YS5oZWlnaHQpOworCisgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworCisg
ICAgICBsZXQgb25BbHRWaWRlb0ZpcnN0RnJhbWUgPSB0LnN0ZXBfZnVuYygobm93LCBtZXRhZGF0
YSkgPT4geworICAgICAgICAvLyBUaGUgdmlkZW9zIGhhdmUgZGlmZmVyZW50IHNpemVzLCBhbmQg
c2hvdWxkbid0IG1hdGNoLgorICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhmaXJzdF93aWR0aCwg
bWV0YWRhdGEud2lkdGgpOworICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhmaXJzdF9oZWlnaHQs
IG1ldGFkYXRhLmhlaWdodCk7CisKKyAgICAgICAgLy8gU3dpdGggYmFjayB0byB0aGUgb3JpZ2lu
YWwgdmlkZW8uCisgICAgICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sob25SZXR1
cm5Ub09yaWdpbmFsVmlkZW8pOworICAgICAgICB2aWRlby5zcmMgPSB0ZXN0VmlkZW8udXJsOwor
ICAgICAgfSk7CisKKyAgICAgIGxldCBvbkZpcnN0RnJhbWUgPSB0LnN0ZXBfZnVuYygobm93LCBt
ZXRhZGF0YSkgPT4geworICAgICAgICBmaXJzdF93aWR0aCA9IG1ldGFkYXRhLndpZHRoOworICAg
ICAgICBmaXJzdF9oZWlnaHQgPSBtZXRhZGF0YS5oZWlnaHQ7CisKKyAgICAgICAgLy8gQ2FsbGJh
Y2tzIHNob3VsZCBwZXJzaXN0IGFmdGVyIGNoYW5naW5nIHRoZSBzb3VyY2UgdG8gdGhlIGFsdCB2
aWRlby4KKyAgICAgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayhvbkFsdFZpZGVv
Rmlyc3RGcmFtZSk7CisgICAgICAgIHZpZGVvLnNyYyA9IGFsdFRlc3RWaWRlby51cmw7CisgICAg
ICB9KQorCisgICAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKG9uRmlyc3RGcmFt
ZSk7CisgICAgfSk7Cit9LCAnVGVzdCB2aWRlby5yVkZDIGRvZXMgbm90IHN0b3Agd2hlbiBzd2l0
Y2hpbmcgc291cmNlcy4nKTsKKworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE2ZjE1ZmRiMzc2M2ZkM2Q0NzZh
NmFiYTU4MjY1OTNjOGM4MWNkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy93M2MtaW1wb3J0LmxvZwpAQCAt
MCwwICsxLDI2IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1Ro
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvTUVUQS55bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvUkVBRE1FLm1kCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93
LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhyLXNlc3Npb24uaHR0cHMu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8t
cnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8t
ZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVv
LWZyYW1lLWNhbGxiYWNrLXBhcmFsbGVsLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFj
ay1yZXBlYXRpbmcuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXdlYnJ0Yy5odHRw
cy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRl
by1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2suaHRtbApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDg4Zjc5OTI5ZmM5YzJiNWMz
YmJlODFlMzg3MDlhYTgwZWZmMmM1NmIuLmUxMDY5ZWRlY2Y5N2UyZWQ3NzZiODc3ZDQ2ODYzNTUw
OTYxN2NmZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTEzOCw2ICsxMzgsMTUgQEAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NuYW1lLWNsb2FraW5nLXRvcC1uby1jbmFtZS1zdWItMXAtY25hbWUuaHRtbAogaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NuYW1lLWNsb2FraW5nLXRvcC1uby1jbmFtZS1z
dWItM3AtY25hbWUuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2NuYW1lLWNsb2FraW5nLXRvcC1uby1jbmFtZS1zdWItbm8tY25hbWUuaHRtbCBbIFBhc3Mg
XQogCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMgWyBQYXNzIF0K
KyMgVGltaW5nIG91dCB0ZXN0cyB1bnRpbCB3ZSBhZGQgcmVndWxhciB2aWRlbyBzdHJlYW1pbmcg
YmFja2VuZCBzdXBwb3J0LgoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhyLXNlc3Npb24uaHR0cHMu
aHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZj
L3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZG9tLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNh
bGxiYWNrLWR1cmluZy14ci1zZXNzaW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxi
YWNrLXBhcmFsbGVsLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy5odG1s
IFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVx
dWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay5odG1sIFsgU2tpcCBdCisKICMvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIHBsYXRmb3JtLXNwZWNpZmljIGRpcmVjdG9yaWVz
LgogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDE0YmNkNzNhZWMxNWNiOGU0NTkz
MGM5MGNiMGRiNzFiYWM3ZTY2YTcuLjVlMzVlODFhNTYyM2NhZGU5YzAyZTlhMzEyNjA0NmQ1ZDA3
ZTA5NTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTExNyw2ICsxMTcsMTUgQEAgZmFzdC9mb3Jtcy9maWxlL2VudHJpZXMtYXBpL2ltYWdl
LW5vLXRyYW5zY29kZS1vcGVuLXBhbmVsLmh0bWwgWyBQYXNzIF0KIAogc3RvcmFnZS9pbmRleGVk
ZGIvZGF0YWJhc2UtdHJhbnNhY3Rpb24tY3ljbGUuaHRtbCBbIFBhc3MgXQogCitpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMgWyBQYXNzIF0KKyMgVGltaW5nIG91dCB0
ZXN0cyB1bnRpbCB3ZSBhZGQgcmVndWxhciB2aWRlbyBzdHJlYW1pbmcgYmFja2VuZCBzdXBwb3J0
LgoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhyLXNlc3Npb24uaHR0cHMuaHRtbCBbIFNraXAgXQor
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8t
ZnJhbWUtY2FsbGJhY2stZG9tLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmluZy14
ci1zZXNzaW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXBhcmFsbGVsLmh0
bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9y
ZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy5odG1sIFsgU2tpcCBdCitpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFt
ZS1jYWxsYmFjay5odG1sIFsgU2tpcCBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KICMgRW5kIHBsYXRmb3JtLXNwZWNpZmljIGRpcmVjdG9yaWVzLgogIy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3Bl
ZXJDb25uZWN0aW9uLXJ2ZmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2VicnRjL3BlZXJD
b25uZWN0aW9uLXJ2ZmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1Mjg3Nzk3Nzk3NTViMjU3
NmFmZDgzM2ZjMTE0N2U5NzU5MzRlMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisK
KworUEFTUyBWYWxpZGF0ZSBjYWxsYmFja3MgYW5kIG1ldGFkYXRhIGZvciBwZWVyIGNvbm5lY3Rp
b24gdHJhY2tzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyQ29ubmVjdGlv
bi1ydmZjLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA1Nzc2ZDgyYzVlNmFmNmVjM2VkNjU4YzE4YTZmYjI4MzQwM2YyOTkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy5o
dG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+
CisgICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICAgICAgPHRpdGxlPlRlc3Rpbmcg
cnZmYyBvbiBwZWVyIGNvbm5lY3Rpb24gc3RyZWFtczwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9InJvdXRpbmVzLmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+Cisg
ICAgPGJvZHk+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8iIGF1dG9wbGF5PSIiPjwvdmlkZW8+
CisgICAgICAgIDxzY3JpcHQ+Cithc3luYyBmdW5jdGlvbiBncmFiTmV4dE1ldGFkYXRhKHZpZGVv
KQoreworICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAg
ICAgIGNvbnN0IGlkZW50aWZpZXIgPSB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKChu
b3csIG1ldGFkYXRhKSA9PiB7CisgICAgICAgICAgICByZXNvbHZlKG1ldGFkYXRhKTsKKyAgICAg
ICAgICAgIHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayhpZGVudGlmaWVyKTsKKyAgICAg
ICAgfSk7CisgICAgICAgIHNldFRpbWVvdXQocmVqZWN0LCA1MDAwKTsKKyAgICB9KTsKK30KKwor
cHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3QgbG9jYWxTdHJlYW0gPSBh
d2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHsgd2lkdGg6
IDY0MCwgaGVpZ2h0OiA0ODAgfSB9KTsKKyAgICBjb25zdCByZW1vdGVTdHJlYW0gPSBhd2FpdCBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGNyZWF0ZUNvbm5lY3Rp
b25zKChmaXJzdENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgIHBjMSA9IGZpcnN0Q29ubmVj
dGlvbjsKKyAgICAgICAgICAgIGNvbnN0IHNlbmRlciA9IGZpcnN0Q29ubmVjdGlvbi5hZGRUcmFj
ayhsb2NhbFN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLCBsb2NhbFN0cmVhbSk7CisgICAgICAg
IH0sIChzZWNvbmRDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICBwYzIgPSBzZWNvbmRDb25u
ZWN0aW9uOworICAgICAgICAgICAgc2Vjb25kQ29ubmVjdGlvbi5vbnRyYWNrID0gKHRyYWNrRXZl
bnQpID0+IHsKKyAgICAgICAgICAgICAgICByZXNvbHZlKHRyYWNrRXZlbnQuc3RyZWFtc1swXSk7
CisgICAgICAgICAgICB9OworICAgICAgICB9KTsKKyAgICAgICAgc2V0VGltZW91dCgoKSA9PiBy
ZWplY3QoIlRlc3QgdGltZWQgb3V0IiksIDUwMDApOworICAgIH0pOworCisgICAgdmlkZW8uc3Jj
T2JqZWN0ID0gcmVtb3RlU3RyZWFtOworICAgIGF3YWl0IHZpZGVvLnBsYXkoKTsKKworICAgIGxl
dCBtZXRhZGF0YSA9IGF3YWl0IGdyYWJOZXh0TWV0YWRhdGEodmlkZW8pOworICAgIGFzc2VydF9l
cXVhbHMobWV0YWRhdGEud2lkdGgsIDY0MCk7CisgICAgYXNzZXJ0X2VxdWFscyhtZXRhZGF0YS5o
ZWlnaHQsIDQ4MCk7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5wcmVzZW50ZWRG
cmFtZXMsIDApOworICAgIGNvbnN0IHByZXNlbnRlZEZyYW1lcyA9IG1ldGFkYXRhLnByZXNlbnRl
ZEZyYW1lczsKKworICAgIGF3YWl0IGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0uYXBw
bHlDb25zdHJhaW50cyh7d2lkdGg6IDMyMH0pOworCisgICAgbGV0IGNvdW50ZXIgPSAwOworICAg
IHdoaWxlICgrK2NvdW50ZXIgPCAxMDAgJiYgbWV0YWRhdGEud2lkdGggIT09IDMyMCkgeworICAg
ICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgNTAp
KTsKKyAgICAgICAgbWV0YWRhdGEgPSBhd2FpdCBncmFiTmV4dE1ldGFkYXRhKHZpZGVvKTsKKyAg
ICB9CisgICAgYXNzZXJ0X2VxdWFscyhtZXRhZGF0YS53aWR0aCwgMzIwKTsKKyAgICBhc3NlcnRf
Z3JlYXRlcl90aGFuKG1ldGFkYXRhLnByZXNlbnRlZEZyYW1lcywgcHJlc2VudGVkRnJhbWVzKTsK
K30sICJWYWxpZGF0ZSBjYWxsYmFja3MgYW5kIG1ldGFkYXRhIGZvciBwZWVyIGNvbm5lY3Rpb24g
dHJhY2tzIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="commit-queue"
          id="465610"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441376</attachid>
            <date>2021-10-15 07:15:06 -0700</date>
            <delta_ts>2021-10-18 06:01:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231803-20211015161503.patch</filename>
            <type>text/plain</type>
            <size>92936</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdjZDU5NmY4NzJlYzA5NDQ1ZGQyMmVh
ZDhhOTZhOTk1MDc3MmI0N2MuLjIxOTM1ZDBjNDk3Yzc2MjFiNzg2YjcxYWI3NWY0OTE1YjdiZTI0
YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTAtMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrIEFQSSBhbmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwMwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorCiAyMDIxLTEw
LTE1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXQg
TWFuYWdlZCBOb3RpZmljYXRpb25zOiBTa2VsZXRvbiBOb3RpZmljYXRpb25Qcm92aWRlci4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBkN2M0ZGU2M2ViMWU0NjYzZDA1ZThjNzQxY2Y5ZjhiN2MwNDZlNWYyLi4wMTlm
NjQ5MDAwZmYzNTg3YWUwOTA0ODAyNTk1NGIxMDk2NjliZGRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTQgQEAKKzIwMjEtMTAtMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSBh
bmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBXZWJJREwgdG8gZXhwb3Nl
IGh0dHBzOi8vd2ljZy5naXRodWIuaW8vdmlkZW8tcnZmYy8gQVBJLgorICAgICAgICBQdXQgdGhl
bSBiZWhpbmQgYSBydW50aW1lIGZsYWcuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBh
bGdvcml0aG1zLCBpbmNsdWRpbmcgdGhlIGludGVncmF0aW9uIHdpdGggdGhlICd1cGRhdGUgdGhl
IHJlbmRlcmluZycgYWxnb3JpdGhtLgorICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciB2
aWRlbyBlbGVtZW50cyBiYWNrZWQgYnkgTWVkaWFTdHJlYW0gY29udGVudC4KKyAgICAgICAgV2Ug
ZXhwb3NlIGEgbGltaXRlZCBzZXQgb2YgbWV0YWRhdGEgY3VycmVudGx5LCBmb2xsb3ctdXAgcGF0
Y2hlcyBzaG91bGQgYWRkIHN1cHBvcnQgZm9yIG90aGVyIHZpZGVvIGJhY2tlbmRzIGFuZCBtb3Jl
IG1ldGFkYXRhLgorICAgICAgICBUaGlzIHN1cHBvcnQgc2hvdWxkIHN0aWxsIGVuYWJsZSB0byBv
cHRpbWl6ZSBhIGJpdCBNZWRpYVN0cmVhbVRyYWNrIC0+IGNhbnZhcyBwaXBlbGluZXMuCisKKyAg
ICAgICAgVGVzdHM6IGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMuaHRtbAorICAg
ICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lk
bGhhcm5lc3Mud2luZG93Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9y
ZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRv
bS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5o
dHRwcy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sCisg
ICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
cmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1yZXBlYXRpbmcuaHRtbAorICAgICAgICAgICAg
ICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1l
LWNhbGxiYWNrLmh0bWwKKyAgICAgICAgICAgICAgIHdlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZj
Lmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrLmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL1ZpZGVvRnJh
bWVNZXRhZGF0YS5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvVmlkZW9GcmFtZVJlcXVlc3RD
YWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJh
Y2suaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL1ZpZGVvRnJhbWVNZXRhZGF0YS5oOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisKIDIwMjEtMTAtMTUgIEFsZXhleSBTaHZh
eWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFtXZWJJRExdIEpTRE9NQnVp
bHRpbkNvbnN0cnVjdG9yIGluc3RhbmNlcyBzaG91bGQgc3VwcG9ydCBzdWJjbGFzc2luZwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBkOWUzNmMxOWVkMzlmYTI5ODc3ZDM2ZGQ1YTFl
ZDgzN2MyNDUwYmU1Li42OWQ0MmNhMTE2MGI4NDliNDQxMTllYzY3NjMyYjNmMGExZWM1NzljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTExNSw2ICsxMTE1LDE4IEBAIFJlcXVl
c3RTdWJtaXRFbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitS
ZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJl
YWRhYmxlTmFtZTogIlJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2siCisgIGh1bWFuUmVhZGFibGVE
ZXNjcmlwdGlvbjogIkVuYWJsZSBSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSIKKyAgZGVm
YXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVs
dDogZmFsc2UKKwogIyBGSVhNRTogVGhpcyBpcyBvbiBieSBkZWZhdWx0IGluIFdlYktpdDIuIFBl
cmhhcHMgd2Ugc2hvdWxkIGNvbnNpZGVyIHR1cm5pbmcgaXQgb24gZm9yIFdlYktpdExlZ2FjeSBh
cyB3ZWxsLgogUmVzaXplT2JzZXJ2ZXJFbmFibGVkOgogICB0eXBlOiBib29sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDIzMTJjNGJmNjdlM2IzMWZlMjdkMzIwN2E3ZTc0MjlhMjdlYjExNzcuLmMx
NmU4YzNmMWM4NWEyY2NiMmU5Yjc4NWMxMzQ2NDdmNDk0NTA5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0xMDM2LDYgKzEwMzYsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwog
ICAgIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwKICAgICBodG1sL0hUTUxVTGlzdEVsZW1lbnQu
aWRsCiAgICAgaHRtbC9IVE1MVW5rbm93bkVsZW1lbnQuaWRsCisgICAgaHRtbC9IVE1MVmlkZW9F
bGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRsCiAgICAgaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmlkbAogICAgIGh0bWwvSW1hZ2VCaXRtYXAuaWRsCiAgICAgaHRtbC9JbWFnZUJpdG1h
cE9wdGlvbnMuaWRsCkBAIC0xMDUxLDYgKzEwNTIsOCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lE
TF9GSUxFUwogICAgIGh0bWwvVGltZVJhbmdlcy5pZGwKICAgICBodG1sL1VSTFNlYXJjaFBhcmFt
cy5pZGwKICAgICBodG1sL1ZhbGlkaXR5U3RhdGUuaWRsCisgICAgaHRtbC9WaWRlb0ZyYW1lTWV0
YWRhdGEuaWRsCisgICAgaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbAogICAgIGh0
bWwvVm9pZENhbGxiYWNrLmlkbAogCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzQ29tcG9zaXRpbmcu
aWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApp
bmRleCA0Y2FiNzMzOThlYzNlYzc1NjdlZmIxYTc3ZjE4MmU0ZThiYTU2MjgyLi5jNDlkYzIzZDlj
ODU3MTFjZDNjYjk0YjRkZTY5MjFkMzBjMjMxMzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwMDgsNiArMTAwOCw3IEBAICQoUFJP
SkVDVF9ESVIpL2h0bWwvSFRNTExpbmtFbGVtZW50LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9I
VE1MTWFwRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50
LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0Lmlk
bAorJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWVkaWFFbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1l
Q2FsbGJhY2suaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsCiAk
KFBST0pFQ1RfRElSKS9odG1sL0hUTUxNZW51RWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0
bWwvSFRNTE1lbnVJdGVtRWxlbWVudC5pZGwKQEAgLTEwNDcsNiArMTA0OCw3IEBAICQoUFJPSkVD
VF9ESVIpL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRN
TFRyYWNrRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5p
ZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTFVua25vd25FbGVtZW50LmlkbAorJChQUk9KRUNU
X0RJUikvaHRtbC9IVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRs
CiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaWRsCiAkKFBST0pFQ1RfRElS
KS9odG1sL0ltYWdlQml0bWFwLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9JbWFnZUJpdG1hcE9w
dGlvbnMuaWRsCkBAIC0xMDYyLDYgKzEwNjQsOCBAQCAkKFBST0pFQ1RfRElSKS9odG1sL1RleHRN
ZXRyaWNzLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9UaW1lUmFuZ2VzLmlkbAogJChQUk9KRUNU
X0RJUikvaHRtbC9VUkxTZWFyY2hQYXJhbXMuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL1ZhbGlk
aXR5U3RhdGUuaWRsCiskKFBST0pFQ1RfRElSKS9odG1sL1ZpZGVvRnJhbWVNZXRhZGF0YS5pZGwK
KyQoUFJPSkVDVF9ESVIpL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwKICQoUFJP
SkVDVF9ESVIpL2h0bWwvVm9pZENhbGxiYWNrLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9XZWJL
aXRNZWRpYUtleUVycm9yLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9jYW52YXMvQU5HTEVJbnN0
YW5jZWRBcnJheXMuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CmluZGV4IDRhMGI4NmYzNWVmNWRkNGMzMTQ2ZjkxM2E1NmNlYzJhZjI2YjVh
YjguLmY0Y2Y2ZTNjOGNlYmU2N2M5MWFkYjY3ODcwMWYyMzIxOTQzYTc0NGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC05OTUsNiAr
OTk1LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNI
VE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0LmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxl
bWVudCtSZW1vdGVQbGF5YmFjay5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudCtSZW1vdGVQbGF5YmFjay5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZWRpYUVsZW1lbnQr
UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
SFRNTE1lZGlhRWxlbWVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZW51RWxlbWVudC5jcHAKQEAgLTEwNzUsNiArMTA3
Nyw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRN
TFVua25vd25FbGVtZW50LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNIVE1MVW5rbm93bkVsZW1lbnQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVmlkZW9FbGVtZW50K1BpY3R1cmVJblBpY3R1cmUu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxW
aWRlb0VsZW1lbnQrUGljdHVyZUluUGljdHVyZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxWaWRlb0VsZW1lbnQrUmVxdWVzdFZpZGVvRnJhbWVD
YWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFZpZGVvRWxlbWVudC5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFZp
ZGVvRWxlbWVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0hhc2hDaGFuZ2VFdmVudC5jcHAKQEAgLTIzMDcsNiArMjMxMSwxMCBAQCAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZhbGlkaXR5U3RhdGUuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZhbGlkaXR5U3Rh
dGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWaWRl
b0NvbmZpZ3VyYXRpb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1ZpZGVvQ29uZmlndXJhdGlvbi5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZpZGVvRnJhbWVNZXRhZGF0YS5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmlkZW9GcmFtZU1ldGFkYXRhLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmlkZW9GcmFt
ZVJlcXVlc3RDYWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZpZGVvUGxheWJhY2tRdWFsaXR5LmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWaWRlb1BsYXli
YWNrUXVhbGl0eS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1ZpZGVvVHJhY2srTWVkaWFTb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCA1Yzc3M2E0ODlkYTE5Y2MyMDg1ZWNjZTcxM2ViMDA3YjIwMGY4ODUyLi4wYmE5ZTBm
YWE5NDVkNmJkYmM4MjkxYWU4ZDAyZmVkZjk3NTEwYmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTg5Niw2ICs4OTYsNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQo
V2ViQ29yZSkvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1s
L0hUTUxVbmtub3duRWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxWaWRlb0VsZW1lbnQrUmVxdWVz
dFZpZGVvRnJhbWVDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9JbWFnZUJpdG1h
cC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9JbWFnZUJpdG1hcE9wdGlvbnMuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2h0bWwvSW1hZ2VEYXRhLmlkbCBcCkBAIC05MTAsNiArOTExLDggQEAgSlNf
QklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvVGltZVJhbmdlcy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvaHRtbC9VUkxTZWFyY2hQYXJhbXMuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvVmFsaWRpdHlTdGF0ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9WaWRlb0ZyYW1l
TWV0YWRhdGEuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxs
YmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9Wb2lkQ2FsbGJhY2suaWRsIFwKICAgICAk
KFdlYkNvcmUpL2h0bWwvV2ViS2l0TWVkaWFLZXlFcnJvci5pZGwgXAogICAgICQoV2ViQ29yZSkv
aHRtbC9jYW52YXMvQU5HTEVJbnN0YW5jZWRBcnJheXMuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmlu
ZGV4IGIwNjU3ZTFjYzlkZTU5YjA5Mjk4NTlkNDkxNzJlZjE5Y2ZkOGU2MzEuLjEyMTJkYTRhNjM0
YjJiMWI5ZWJlMWRiY2YxZTRiYmUxMzM2YWUxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNzU4
LDYgKzc1OCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBo
dG1sL1VSTERlY29tcG9zaXRpb24uaAogICAgIGh0bWwvVVJMUmVnaXN0cnkuaAogICAgIGh0bWwv
VmFsaWRpdHlTdGF0ZS5oCisgICAgaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmgKICAg
ICBodG1sL1ZvaWRDYWxsYmFjay5oCiAKICAgICBodG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRl
cmluZ0NvbnRleHRTZXR0aW5ncy5oCkBAIC0xMTgxLDYgKzExODIsNyBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vVXNlckFnZW50LmgKICAgICBw
bGF0Zm9ybS9Vc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmgKICAgICBwbGF0Zm9ybS9WYWxp
ZGF0aW9uQnViYmxlLmgKKyAgICBwbGF0Zm9ybS9WaWRlb0ZyYW1lTWV0YWRhdGEuaAogICAgIHBs
YXRmb3JtL1dlYkdMU3RhdGVUcmFja2VyLmgKICAgICBwbGF0Zm9ybS9XaWRnZXQuaAogICAgIHBs
YXRmb3JtL1dpbmRvd3NLZXlib2FyZENvZGVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMjU3MjYxOTBj
OTFhZTM4N2RlM2Q0MWVjYjBhOTY5NjlmZGU2YWUxZS4uYWIyODBlMDA0NmVmN2RjYWZkMTNmYjI0
ZmQ3OGYwNDcyYTI2OTNlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTM3MjYsNiArMzcyNiw4IEBAIEpT
VlRUUmVnaW9uLmNwcAogSlNWVFRSZWdpb25MaXN0LmNwcAogSlNWYWxpZGl0eVN0YXRlLmNwcAog
SlNWaWRlb0NvbmZpZ3VyYXRpb24uY3BwCitKU1ZpZGVvRnJhbWVNZXRhZGF0YS5jcHAKK0pTVmlk
ZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5jcHAKIEpTVmlkZW9QbGF5YmFja1F1YWxpdHkuY3BwCiBK
U1ZpZGVvVHJhY2suY3BwCiBKU1ZpZGVvVHJhY2tMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGExMjM2ZWZlYjczMDhk
NTM5MGU1ZjhjZTBkMjc2OTRkYTQxMmQxOWUuLjJhOTgwYzc5ZGZmM2QwNzAxYjViOTQyNDU5OGNj
NTBjZWNmOGNmZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTExODIsNiArMTE4Miw4IEBACiAJCTQxOEZDQkMxMjcwNkU0RkIw
MEY5NkVDQSAvKiBQdXNoRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxOEZDQkJEMjcwNkU0RjcwMEY5NkVDQSAvKiBQdXNoRXZlbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MThGQ0JDMjI3
MDZFNTAxMDBGOTZFQ0EgLyogUHVzaEV2ZW50SW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4RkNCQkYyNzA2RTRGODAwRjk2RUNBIC8qIFB1c2hF
dmVudEluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0MThGQ0JFNzI3MTVBMjhGMDBGOTZFQ0EgLyogUlRDUnRwQ29kZWNDYXBhYmlsaXR5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUwQTdEQzIz
QkI2M0RCMDA1NjEwNjAgLyogUlRDUnRwQ29kZWNDYXBhYmlsaXR5LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE4RkNDMDEyNzE5NjgxQTAwRjk2
RUNBIC8qIChudWxsKSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0MThGQ0MwNjI3MTk2QUY2
MDBGOTZFQ0EgLyogKG51bGwpIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxOTBGM0E1MjRB
MEI0RUUwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkwRjNBMzI0OUQxNTI4MDA1MzFDNTcgLyogRnJh
bWVSYXRlTW9uaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQxOTI0MjQ5MjEyN0I5M0UwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxOTI0MjQ3MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2VDb2NvYS5tbSAqLzsgfTsKIAkJNDE5QUNGOTIxRjk3RTdEQTAwOUYxQTgzIC8qIFNlcnZp
Y2VXb3JrZXJGZXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDE5QUNGOEUxRjk3RTdENTAwOUYxQTgzIC8qIFNlcnZpY2VXb3JrZXJGZXRjaC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjE4LDYg
KzEyMjAsOCBAQAogCQk0MUQyOEQwRDIxMzlFMDU4MDBGNDIwNkYgLyogTGliV2ViUlRDU3RhdHND
b2xsZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDFEMjhEMEIyMTM5RTAxRDAwRjQyMDZGIC8qIExpYldlYlJUQ1N0YXRzQ29sbGVjdG9yLmNw
cCAqLzsgfTsKIAkJNDFENDFDNjcyMjU2ODc0RjAwNjk3OTQyIC8qIFNlcnZpY2VXb3JrZXJJbnRl
cm5hbHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MUQ0MUM2NTIyNTY4NTkyMDA2OTc5NDIgLyogU2VydmljZVdvcmtlckludGVybmFscy5tbSAqLzsg
fTsKIAkJNDFERTdDN0MyMjJEQTE0MzAwNTMyQjY1IC8qIFN0b3JhZ2VRdW90YU1hbmFnZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREU3QzdCMjIy
REExM0UwMDUzMkI2NSAvKiBTdG9yYWdlUXVvdGFNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDFERUVGQjAyNzE5QjI5MDAwQ0I4RDc0
IC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREVFRkFDMjcxOUIyODgwMENCOEQ3NCAvKiBWaWRlb0Zy
YW1lUmVxdWVzdENhbGxiYWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNDFERUVGQjYyNzE5QkExQTAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVNZXRh
ZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFE
RUVGQjQyNzE5QkExOTAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVNZXRhZGF0YS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxREVGQ0I2MUU1NkMxQkQw
MDBEOUU1RiAvKiBKU0RPTU1hcExpa2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxREVGQ0I0MUU1NkMxQjkwMDBEOUU1RiAvKiBKU0RPTU1hcExpa2Uu
aCAqLzsgfTsKIAkJNDFFMTJFOUYyNEZFNzRFMjAwOTNGRkI0IC8qIFdlYlNvY2tldElkZW50aWZp
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTEy
RTlEMjRGRTc0RTIwMDkzRkZCNCAvKiBXZWJTb2NrZXRJZGVudGlmaWVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDFFMUIxRDEwRkY1OTg2OTAw
NTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MUUxQjFDQjBGRjU5ODY5MDA1NzZCM0IgLyogQWJzdHJhY3RXb3Jr
ZXIuaCAqLzsgfTsKQEAgLTgyOTQsNiArODI5OCwxMSBAQAogCQk0MUQ2QkQ5ODI1MUIzQURBMDA1
NUE3QjcgLyogSFRNTE1lZGlhRWxlbWVudCtBdWRpb091dHB1dC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gIkhUTUxNZWRpYUVsZW1lbnQrQXVkaW9PdXRwdXQuaWRsIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDFERTdDN0EyMjJEQTEzRDAwNTMyQjY1IC8qIFN0b3JhZ2VRdW90
YU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFn
ZVF1b3RhTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREU3QzdC
MjIyREExM0UwMDUzMkI2NSAvKiBTdG9yYWdlUXVvdGFNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VRdW90YU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDFERUVGQUMyNzE5QjI4ODAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVSZXF1
ZXN0Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MURFRUZBRTI3MTlCMjg5MDBDQjhENzQg
LyogVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlkZW9GcmFtZVJlcXVlc3RD
YWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxREVFRkFGMjcxOUIy
ODkwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lTWV0YWRhdGEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZpZGVvRnJhbWVNZXRh
ZGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxREVFRkIxMjcxOUIyQkUw
MENCOEQ3NCAvKiBIVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9ICJIVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRsIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFERUVGQjQyNzE5QkExOTAwQ0I4RDc0IC8q
IFZpZGVvRnJhbWVNZXRhZGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aWRlb0ZyYW1lTWV0YWRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFERUZD
QjIxRTU2QzFCOTAwMEQ5RTVGIC8qIEpTRE9NQmluZGluZ0ludGVybmFscy5qcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IEpTRE9NQmluZGluZ0ludGVybmFscy5qczsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFERUZDQjMxRTU2QzFCOTAwMEQ5RTVGIC8q
IEpTRE9NTWFwTGlrZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0RPTU1hcExpa2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MURFRkNCNDFF
NTZDMUI5MDAwRDlFNUYgLyogSlNET01NYXBMaWtlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTRE9NTWFwTGlrZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjQyMjUsNiArMjQyMzQsNyBAQAogCQkJCTBGMjZBN0FBMjA1NEVDNUEwMDkwQTE0MSAvKiBIVE1M
VW5rbm93bkVsZW1lbnQuY3BwICovLAogCQkJCUFENDk5MTQxMThGMDgxNTEwMEJGMDA5MiAvKiBI
VE1MVW5rbm93bkVsZW1lbnQuaCAqLywKIAkJCQlBRDQ5OTE0MjE4RjA4MTUxMDBCRjAwOTIgLyog
SFRNTFVua25vd25FbGVtZW50LmlkbCAqLywKKwkJCQk0MURFRUZCMTI3MTlCMkJFMDBDQjhENzQg
LyogSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrLmlkbCAqLywKIAkJ
CQlFNDQ2MTM5ODBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5jcHAgKi8sCiAJ
CQkJRTQ0NjEzOTkwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxWaWRlb0VsZW1lbnQuaCAqLywKIAkJ
CQlFNDQ2MTM5QTBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5pZGwgKi8sCkBA
IC0yNDM0NSw2ICsyNDM1NSw5IEBACiAJCQkJRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZh
bGlkYXRpb25NZXNzYWdlLmggKi8sCiAJCQkJMTVDNzcwOEExMDBEM0M2QTAwNUJBMjY3IC8qIFZh
bGlkaXR5U3RhdGUuaCAqLywKIAkJCQkxNUM3NzA4OTEwMEQzQzZBMDA1QkEyNjcgLyogVmFsaWRp
dHlTdGF0ZS5pZGwgKi8sCisJCQkJNDFERUVGQUYyNzE5QjI4OTAwQ0I4RDc0IC8qIFZpZGVvRnJh
bWVNZXRhZGF0YS5pZGwgKi8sCisJCQkJNDFERUVGQUMyNzE5QjI4ODAwQ0I4RDc0IC8qIFZpZGVv
RnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCAqLywKKwkJCQk0MURFRUZBRTI3MTlCMjg5MDBDQjhENzQg
LyogVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwgKi8sCiAJCQkJRTQ0NjEzQjQwQ0Q2MzQ0
RTAwRkFEQTc1IC8qIFZvaWRDYWxsYmFjay5oICovLAogCQkJCUU0NDYxM0EwMENENjMzMTAwMEZB
REE3NSAvKiBWb2lkQ2FsbGJhY2suaWRsICovLAogCQkJCTJEMTkzMjE3MURBNjRFMTkwMEE1NEEw
OCAvKiBXZWJLaXRNZWRpYUtleUVycm9yLmggKi8sCkBAIC0yODQ3OSw2ICsyODQ5Miw3IEBACiAJ
CQkJQTNBRjlEODIyMDMyNTMyNDAwNkNBRDA2IC8qIFVzZXJBZ2VudC5oICovLAogCQkJCTcxQzkx
NjA3MUQxNDgzQTMwMEFDQTQ3RCAvKiBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmggKi8s
CiAJCQkJODNDNDVCOEQxREMyQjY3QzAwODg3MUJBIC8qIFZhbGlkYXRpb25CdWJibGUuaCAqLywK
KwkJCQk0MURFRUZCNDI3MTlCQTE5MDBDQjhENzQgLyogVmlkZW9GcmFtZU1ldGFkYXRhLmggKi8s
CiAJCQkJNTE1Rjc5NTExQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1RocmVhZENvcGll
ci5jcHAgKi8sCiAJCQkJNTE1Rjc5NTIxQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1Ro
cmVhZENvcGllci5oICovLAogCQkJCTgzOUEyRjJCMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJHTFN0
YXRlVHJhY2tlci5jcHAgKi8sCkBAIC0zMTYwOCw2ICszMTYyMiw4IEBACiAJCQlpc2EgPSBQQlhI
ZWFkZXJzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlm
aWxlcyA9ICgKKwkJCQk0MThGQ0MwNjI3MTk2QUY2MDBGOTZFQ0EgLyogKG51bGwpIGluIEhlYWRl
cnMgKi8sCisJCQkJNDE4RkNDMDEyNzE5NjgxQTAwRjk2RUNBIC8qIChudWxsKSBpbiBIZWFkZXJz
ICovLAogCQkJCTdDRDBFMkI4MUY4MEE0ODIwMDE2QTRDRSAvKiBBYm9ydENvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTdDRDBFMkJGMUY4MEE1NkUwMDE2QTRDRSAvKiBBYm9ydFNpZ25h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZCOTUxOTUyMDdENjMzNDAwQTdEMkREIC8qIEFic3Ry
YWN0RE9NV2luZG93LmggaW4gSGVhZGVycyAqLywKQEAgLTM2MDIyLDYgKzM2MDM4LDggQEAKIAkJ
CQlERjRFMzhFMDI1Mjc5NTk1MDAyQTc0ODEgLyogVmVyc2lvbkNoZWNrcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNBMjU3MTUxMjkzQzAxMDAwN0EyNjNEIC8qIFZlcnRpY2FsUG9zaXRpb25DYWNo
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRUVGM0IyNTc5OUZBMTAwNjU2M0JCIC8qIFZpZGVv
Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFERUVGQjYyNzE5QkExQTAwQ0I4
RDc0IC8qIFZpZGVvRnJhbWVNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFERUVGQjAy
NzE5QjI5MDAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUyQjBENEMwMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFu
Z2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0ZCQzRBRjQxODk4ODE1NjAwNDZFRTM4
IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MkIwRDRDMjFDNTdGRjkxMDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDcyNDJiYzIzZDI3NWFk
ZGFkZjUwZDljNjI5NjM3YTcxZTk2MTI0MDIuLjUyNTA2MjlmMmNjNmE0YWFkZDY2MTJlYjVkMjY1
YThiMWU0OGRkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTE3LDYgKzExNyw3IEBA
CiAjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MVW5rbm93bkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVmlk
ZW9FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiSFRU
UFBhcnNlcnMuaCIKICNpbmNsdWRlICJIYXNoQ2hhbmdlRXZlbnQuaCIKQEAgLTY3MzksNiArNjc0
MCwzMiBAQCB2b2lkIERvY3VtZW50OjpzZXJ2aWNlUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2tzKCkKICAgICAgICAgbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXItPnNlcnZpY2VSZXF1
ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja3MoZG9tV2luZG93KCktPmZyb3plbk5vd1RpbWVzdGFt
cCgpKTsKIH0KIAordm9pZCBEb2N1bWVudDo6c2VydmljZVJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2tzKCkKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYgKCFkb21XaW5kb3coKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYm9vbCBpc1NlcnZpY2luZ1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2tzID0gZmFsc2U7CisgICAgZm9yRWFjaE1lZGlhRWxlbWVudChbbm93ID0gZG9tV2luZG93KCkt
PmZyb3plbk5vd1RpbWVzdGFtcCgpLCAmaXNTZXJ2aWNpbmdSZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrc10oYXV0byYgZWxlbWVudCkgeworICAgICAgICBpZiAoIWlzPEhUTUxWaWRlb0VsZW1lbnQ+
KGVsZW1lbnQpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8mIHZpZGVvRWxl
bWVudCA9IGRvd25jYXN0PEhUTUxWaWRlb0VsZW1lbnQ+KGVsZW1lbnQpOworICAgICAgICBpZiAo
dmlkZW9FbGVtZW50LnNob3VsZFNlcnZpY2VSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrcygpKSB7
CisgICAgICAgICAgICBpc1NlcnZpY2luZ1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tzID0gdHJ1
ZTsKKyAgICAgICAgICAgIHZpZGVvRWxlbWVudC5zZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxs
YmFja3Mobm93KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgaWYgKCFpc1NlcnZpY2luZ1Jl
cXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tzKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0
byogcGFnZSA9IHRoaXMtPnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+c2NoZWR1bGVSZW5kZXJpbmdV
cGRhdGUoUmVuZGVyaW5nVXBkYXRlU3RlcDo6VmlkZW9GcmFtZUNhbGxiYWNrcyk7CisjZW5kaWYK
K30KKwogdm9pZCBEb2N1bWVudDo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxh
eUlEIGRpc3BsYXlJRCkKIHsKICAgICBpZiAoUmVuZGVyVmlldyogdmlldyA9IHJlbmRlclZpZXco
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA1NDU3NjQzNWMyMzY1Yjc4MDIwOWZlZTE4YTEw
MmYyNmI5ZTAxZjE5Li45YzM5M2ZiNWVlNjk4ZDkzMjUyMWFmOWYwMDg2ZmFlMjQxYTk1MzhjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTExNCw2ICsxMTE0LDcgQEAgcHVibGljOgogICAgIHZv
aWQgcmVzdW1lU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyQ2FsbGJhY2tzKCk7CiAKICAgICB2
b2lkIHNlcnZpY2VSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja3MoKTsKKyAgICB2b2lkIHNl
cnZpY2VSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrcygpOwogCiAgICAgdm9pZCB3aW5kb3dTY3Jl
ZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oCmluZGV4IDNiY2M2ODlkZjNiN2FjMGFlYWIxMDg1YjI3ZDEzZmNmOWRkNDQy
YjUuLjFjMWIyZGMxNWFhMGI2OTMyMTc4YTI5MzBjYThmMmI4OTQwZjUzNDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAi
TWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCiAjaW5jbHVkZSAiTWVk
aWFVbmlxdWVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUmVkdWNlZFJlc29sdXRpb25TZWNvbmRz
LmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrQ2xpZW50LmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja0Ns
aWVudC5oIgogI2luY2x1ZGUgIlZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0
VmlkZW9GcmFtZUNhbGxiYWNrLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTMyNDQ5OGVkY2ZlMTRiNTc2NzIw
YzhmMDI1ODIwODViNDVkNDA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRsCkBAIC0wLDAg
KzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
WworICAgIENvbmRpdGlvbmFsPVZJREVPLAorICAgIEVuYWJsZWRCeVNldHRpbmc9UmVxdWVzdFZp
ZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQKK10gcGFydGlhbCBpbnRlcmZhY2UgSFRNTFZpZGVvRWxl
bWVudCB7CisgICAgdW5zaWduZWQgbG9uZyByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKFZpZGVv
RnJhbWVSZXF1ZXN0Q2FsbGJhY2sgY2FsbGJhY2spOworICAgIHVuZGVmaW5lZCBjYW5jZWxWaWRl
b0ZyYW1lQ2FsbGJhY2sodW5zaWduZWQgbG9uZyBoYW5kbGUpOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCmluZGV4IDA0YzAyYjhjODliYjRjMGViZGRjY2E0NTAy
OGJiZmQwMGRhNzliNmYuLmQ0YzQxNTliYjI4MGI5ODU1NTJkMzcyMjFlN2M2NWQ3Zjc0NGM3Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcApAQCAtNTc3LDYgKzU3
Nyw1OSBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmV4aXRUb0Z1bGxzY3JlZW5Nb2RlV2l0aG91
dEFuaW1hdGlvbklmUG9zc2libGUoSFRNTE1lZGlhRQogfQogI2VuZGlmCiAKK3Vuc2lnbmVkIEhU
TUxWaWRlb0VsZW1lbnQ6OnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soUmVmPFZpZGVvRnJhbWVS
ZXF1ZXN0Q2FsbGJhY2s+JiYgY2FsbGJhY2spCit7CisgICAgaWYgKG1fbmV4dFZpZGVvRnJhbWVS
ZXF1ZXN0SW5kZXggPT0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIGF1dG8gaWRlbnRpZmllciA9ICArK21fbmV4dFZpZGVvRnJh
bWVSZXF1ZXN0SW5kZXg7CisgICAgbV92aWRlb0ZyYW1lUmVxdWVzdHMuYXBwZW5kKG1ha2VVbmlx
dWVSZWY8VmlkZW9GcmFtZVJlcXVlc3Q+KGlkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKSk7
CisKKyAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpKQorICAgICAgICBwYWdl
LT5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZShSZW5kZXJpbmdVcGRhdGVTdGVwOjpWaWRlb0ZyYW1l
Q2FsbGJhY2tzKTsKKworICAgIHJldHVybiBpZGVudGlmaWVyOworfQorCit2b2lkIEhUTUxWaWRl
b0VsZW1lbnQ6OmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayh1bnNpZ25lZCBpZGVudGlmaWVyKQor
eworICAgIGF1dG8gaW5kZXggPSBtX3ZpZGVvRnJhbWVSZXF1ZXN0cy5maW5kTWF0Y2hpbmcoW2lk
ZW50aWZpZXJdKGF1dG8mIHJlcXVlc3QpIHsgcmV0dXJuIHJlcXVlc3QtPmlkZW50aWZpZXIgPT0g
aWRlbnRpZmllcjsgfSk7CisgICAgaWYgKGluZGV4ID09IG5vdEZvdW5kKQorICAgICAgICByZXR1
cm47CisgICAgaWYgKG1faXNSdW5uaW5nVmlkZW9GcmFtZVJlcXVlc3RzKSB7CisgICAgICAgIG1f
dmlkZW9GcmFtZVJlcXVlc3RzW2luZGV4XS0+Y2FuY2VsbGVkID0gdHJ1ZTsKKyAgICAgICAgbV9z
aG91bGRDbGVhblZpZGVvRnJhbWVSZXF1ZXN0cyA9IHRydWU7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgbV92aWRlb0ZyYW1lUmVxdWVzdHMucmVtb3ZlKGluZGV4KTsKK30KKwordm9pZCBI
VE1MVmlkZW9FbGVtZW50OjpzZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja3MoUmVkdWNl
ZFJlc29sdXRpb25TZWNvbmRzIG5vdykKK3sKKyAgICBpZiAoIXBsYXllcigpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhdXRvIHZpZGVvRnJhbWVNZXRhZGF0YSA9IHBsYXllcigpLT52aWRlb0Zy
YW1lTWV0YWRhdGEoKTsKKyAgICBpZiAoIXZpZGVvRnJhbWVNZXRhZGF0YSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgUmVmIHByb3RlY3RlZFRoaXMgeyAqdGhpcyB9OworCisgICAgLy8gV2Ugc3Rv
cmUgdGhlIHNpemUgYmVmb3JlIGNhbGxpbmcgY2FsbGJhY2tzIGFzIHdlIGRvIG5vdCB3YW50IHRv
IGNhbGwgbmV3bHkgYWRkZWQgY2FsbGJhY2tzLgorICAgIGF1dG8gY2FsbGJhY2tDb3VudCA9IG1f
dmlkZW9GcmFtZVJlcXVlc3RzLnNpemUoKTsKKworICAgIG1faXNSdW5uaW5nVmlkZW9GcmFtZVJl
cXVlc3RzID0gdHJ1ZTsKKyAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgY2FsbGJh
Y2tDb3VudDsgKytpbmRleCkgeworICAgICAgICBhdXRvJiByZXF1ZXN0ID0gbV92aWRlb0ZyYW1l
UmVxdWVzdHNbaW5kZXhdOworICAgICAgICBpZiAoIXJlcXVlc3QtPmNhbmNlbGxlZCkKKyAgICAg
ICAgICAgIG1fdmlkZW9GcmFtZVJlcXVlc3RzW2luZGV4XS0+Y2FsbGJhY2stPmhhbmRsZUV2ZW50
KG5vdy52YWx1ZSgpLCAqdmlkZW9GcmFtZU1ldGFkYXRhKTsKKyAgICB9CisgICAgbV9pc1J1bm5p
bmdWaWRlb0ZyYW1lUmVxdWVzdHMgPSBmYWxzZTsKKworICAgIGlmIChtX3Nob3VsZENsZWFuVmlk
ZW9GcmFtZVJlcXVlc3RzKQorICAgICAgICBtX3ZpZGVvRnJhbWVSZXF1ZXN0cy5yZW1vdmVBbGxN
YXRjaGluZyhbXShhdXRvJiBjYWxsYmFjaykgeyByZXR1cm4gY2FsbGJhY2stPmNhbmNlbGxlZDsg
fSk7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxWaWRlb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5o
CmluZGV4IDEwOTkxZjA1ZjE0NzRlZWU1ZWIwMWVlNzgzMjMzOTEyMGY2ZTM3MmYuLjVlMTg4YjAw
NTRhNjczZDg5YmRhOTNlMDQ1M2Y2NTMzMDcxYTVhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFZpZGVvRWxlbWVudC5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJIVE1MTWVkaWFF
bGVtZW50LmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlICJWaWRlb0Zy
YW1lUmVxdWVzdENhbGxiYWNrLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0zOCw2ICszOSw3IEBAIGNsYXNzIEhUTUxJbWFnZUxvYWRlcjsKIGNsYXNzIElt
YWdlQnVmZmVyOwogY2xhc3MgUmVuZGVyVmlkZW87CiBjbGFzcyBQaWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXI7CitjbGFzcyBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrOwogCiBlbnVtIGNsYXNzIFBp
eGVsRm9ybWF0IDogdWludDhfdDsKIGVudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJvb2w7CkBA
IC0xMDksNiArMTExLDEyIEBAIHB1YmxpYzoKIAogICAgIFJlbmRlclZpZGVvKiByZW5kZXJlcigp
IGNvbnN0OwogCisgICAgYm9vbCBzaG91bGRTZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
a3MoKSBjb25zdCB7IHJldHVybiAhbV92aWRlb0ZyYW1lUmVxdWVzdHMuaXNFbXB0eSgpOyB9Cisg
ICAgdm9pZCBzZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja3MoUmVkdWNlZFJlc29sdXRp
b25TZWNvbmRzKTsKKworICAgIHVuc2lnbmVkIHJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soUmVm
PFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2s+JiYpOworICAgIHZvaWQgY2FuY2VsVmlkZW9GcmFt
ZUNhbGxiYWNrKHVuc2lnbmVkKTsKKwogcHJpdmF0ZToKICAgICBIVE1MVmlkZW9FbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKIApA
QCAtMTQ3LDYgKzE1NSwyMyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RV
UkVfQVBJKQogICAgIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlciogbV9waWN0dXJlSW5QaWN0dXJl
T2JzZXJ2ZXIgeyBudWxscHRyIH07CiAjZW5kaWYKKworICAgIHN0cnVjdCBWaWRlb0ZyYW1lUmVx
dWVzdCB7CisgICAgICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKKyAgICAgICAg
VmlkZW9GcmFtZVJlcXVlc3QodW5zaWduZWQgaWRlbnRpZmllciwgUmVmPFZpZGVvRnJhbWVSZXF1
ZXN0Q2FsbGJhY2s+JiYgY2FsbGJhY2spCisgICAgICAgICAgICA6IGlkZW50aWZpZXIoaWRlbnRp
ZmllcikKKyAgICAgICAgICAgICwgY2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCisgICAgICAg
IHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdW5zaWduZWQgaWRlbnRpZmllciB7IDAg
fTsKKyAgICAgICAgUmVmPFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2s+IGNhbGxiYWNrOworICAg
ICAgICBib29sIGNhbmNlbGxlZCB7IGZhbHNlIH07CisgICAgfTsKKyAgICBWZWN0b3I8VW5pcXVl
UmVmPFZpZGVvRnJhbWVSZXF1ZXN0Pj4gbV92aWRlb0ZyYW1lUmVxdWVzdHM7CisgICAgdW5zaWdu
ZWQgbV9uZXh0VmlkZW9GcmFtZVJlcXVlc3RJbmRleCB7IDAgfTsKKyAgICBib29sIG1fc2hvdWxk
Q2xlYW5WaWRlb0ZyYW1lUmVxdWVzdHMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1J1bm5pbmdW
aWRlb0ZyYW1lUmVxdWVzdHMgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WaWRlb0ZyYW1lTWV0YWRhdGEuaWRs
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9WaWRlb0ZyYW1lTWV0YWRhdGEuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJjYTk1ZThmMDNkMzA1N2FjMmU4MGM0YTVkMmZhMjMwNTZhZjc4YmQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVNZXRhZGF0YS5pZGwKQEAgLTAsMCAr
MSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCit0
eXBlZGVmIGRvdWJsZSBET01IaWdoUmVzVGltZVN0YW1wOworCitbCisgICAgQ29uZGl0aW9uYWw9
VklERU8sCisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdIGRpY3Rpb25hcnkgVmlkZW9GcmFt
ZU1ldGFkYXRhIHsKKyAgICAvLyBGSVhNRTogZXhwb3NlIHByZXNlbnRhdGlvblRpbWUgYW5kIGV4
cGVjdGVkRGlzcGxheVRpbWUuCisgICAgLy8gcmVxdWlyZWQgRE9NSGlnaFJlc1RpbWVTdGFtcCBw
cmVzZW50YXRpb25UaW1lOworICAgIC8vIHJlcXVpcmVkIERPTUhpZ2hSZXNUaW1lU3RhbXAgZXhw
ZWN0ZWREaXNwbGF5VGltZTsKKworICAgIHJlcXVpcmVkIHVuc2lnbmVkIGxvbmcgd2lkdGg7Cisg
ICAgcmVxdWlyZWQgdW5zaWduZWQgbG9uZyBoZWlnaHQ7CisgICAgcmVxdWlyZWQgZG91YmxlIG1l
ZGlhVGltZTsKKworICAgIHJlcXVpcmVkIHVuc2lnbmVkIGxvbmcgcHJlc2VudGVkRnJhbWVzOwor
ICAgIGRvdWJsZSBwcm9jZXNzaW5nRHVyYXRpb247CisKKyAgICBET01IaWdoUmVzVGltZVN0YW1w
IGNhcHR1cmVUaW1lOworICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgcmVjZWl2ZVRpbWU7CisgICAg
dW5zaWduZWQgbG9uZyBydHBUaW1lc3RhbXA7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGZhYjJjZDVkMDZjYTMw
NzMxYTFhNjliNDk3YzI0NWFiYjBhNzIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmgKQEAgLTAsMCArMSw0OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSAi
QWN0aXZlRE9NQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJDYWxsYmFja1Jlc3VsdC5oIgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgVmlkZW9GcmFtZU1ldGFkYXRhOworCitjbGFzcyBWaWRl
b0ZyYW1lUmVxdWVzdENhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8VmlkZW9GcmFtZVJlcXVl
c3RDYWxsYmFjaz4sIHB1YmxpYyBBY3RpdmVET01DYWxsYmFjayB7CitwdWJsaWM6CisgICAgdXNp
bmcgQWN0aXZlRE9NQ2FsbGJhY2s6OkFjdGl2ZURPTUNhbGxiYWNrOworCisgICAgdmlydHVhbCBD
YWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVFdmVudChkb3VibGUsIGNvbnN0IFZpZGVvRnJhbWVN
ZXRhZGF0YSYpID0gMDsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShWSURFTykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjdkZDZmZjZjMWY4YWI0NDVkYjkwZWZmODk2ZTQyMGQ3MDdlNmU5MDAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2su
aWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKwordHlwZWRlZiBkb3VibGUgRE9NSGlnaFJlc1RpbWVTdGFtcDsKKworWworICAg
IENvbmRpdGlvbmFsPVZJREVPLAorXSBjYWxsYmFjayBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNr
ID0gdW5kZWZpbmVkKERPTUhpZ2hSZXNUaW1lU3RhbXAgbm93LCBWaWRlb0ZyYW1lTWV0YWRhdGEg
bWV0YWRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMDA2MTNmYTY4NzZhNmJlNmE5MjYxMzMy
MTYxZTQ5NjgyMmFmNDE4Mi4uZGExYTljODIzNDMyOWQzN2IyYjdiMGJiYjY0M2IwMTAyOTk0YzUw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNTg1LDYgKzE1ODUsMTAgQEAgdm9pZCBQYWdlOjp1
cGRhdGVSZW5kZXJpbmcoKQogICAgIC8vIEZJWE1FOiBSdW4gdGhlIGZ1bGxzY3JlZW4gc3RlcHMu
CiAgICAgbV9yZW5kZXJpbmdVcGRhdGVSZW1haW5pbmdTdGVwcy5sYXN0KCkucmVtb3ZlKFJlbmRl
cmluZ1VwZGF0ZVN0ZXA6OkZ1bGxzY3JlZW4pOwogCisgICAgcnVuUHJvY2Vzc2luZ1N0ZXAoUmVu
ZGVyaW5nVXBkYXRlU3RlcDo6VmlkZW9GcmFtZUNhbGxiYWNrcywgW10gKERvY3VtZW50JiBkb2N1
bWVudCkgeworICAgICAgICBkb2N1bWVudC5zZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
a3MoKTsKKyAgICB9KTsKKwogICAgIHJ1blByb2Nlc3NpbmdTdGVwKFJlbmRlcmluZ1VwZGF0ZVN0
ZXA6OkFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tzLCBbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CiAg
ICAgICAgIGRvY3VtZW50LnNlcnZpY2VSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja3MoKTsK
ICAgICB9KTsKQEAgLTM2MjYsNiArMzYzMCw3IEBAIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChXVEY6OlRleHRTdHJlYW0mIHRzLCBSZW5kZXJpbmdVcGRhdGVTdGVwIHN0ZXApCiAjaWYgRU5B
QkxFKEFTWU5DX1NDUk9MTElORykKICAgICBjYXNlIFJlbmRlcmluZ1VwZGF0ZVN0ZXA6OlNjcm9s
bGluZ1RyZWVVcGRhdGU6IHRzIDw8ICJTY3JvbGxpbmdUcmVlVXBkYXRlIjsgYnJlYWs7CiAjZW5k
aWYKKyAgICBjYXNlIFJlbmRlcmluZ1VwZGF0ZVN0ZXA6OlZpZGVvRnJhbWVDYWxsYmFja3M6IHRz
IDw8ICJWaWRlb0ZyYW1lQ2FsbGJhY2tzIjsgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiB0czsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKaW5kZXggZWM3NzExZmUzYmRkNzlmN2VhYjAzMzBmMWJlM2JlMGRjYWMw
OWZlNy4uNjIxZDJlYTI0MmM3ZDlmZWFkMDk5NTJjZDk4MDI2OTU0MGEwYmU5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKQEAgLTIxNSw2ICsyMTUsNyBAQCBlbnVtIGNsYXNzIFJlbmRlcmluZ1VwZGF0ZVN0ZXAg
OiB1aW50MTZfdCB7CiAgICAgU2Nyb2xsaW5nVHJlZVVwZGF0ZSAgICAgICAgICAgICA9IDEgPDwg
MTMsCiAjZW5kaWYKICAgICBGbHVzaEF1dG9mb2N1c0NhbmRpZGF0ZXMgICAgICAgID0gMSA8PCAx
NCwKKyAgICBWaWRlb0ZyYW1lQ2FsbGJhY2tzICAgICAgICAgICAgID0gMSA8PCAxNSwKIH07CiAK
IGNvbnN0ZXhwciBPcHRpb25TZXQ8UmVuZGVyaW5nVXBkYXRlU3RlcD4gdXBkYXRlUmVuZGVyaW5n
U3RlcHMgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1l
TWV0YWRhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWVNZXRhZGF0YS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhmZDlhNDcwMDI0OGQ0ZDI3OGRjZTI3NDk3ODM2MGE1N2JhZjU5ZWEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lTWV0YWRh
dGEuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoVklERU8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFZpZGVvRnJhbWVN
ZXRhZGF0YSB7CisgICAgZG91YmxlIHByZXNlbnRhdGlvblRpbWUgeyAwIH07CisgICAgZG91Ymxl
IGV4cGVjdGVkRGlzcGxheVRpbWUgeyAwIH07CisKKyAgICB1bnNpZ25lZCB3aWR0aCB7IDAgfTsK
KyAgICB1bnNpZ25lZCBoZWlnaHQgeyAwIH07CisgICAgZG91YmxlIG1lZGlhVGltZSB7IDAgfTsK
KworICAgIHVuc2lnbmVkIHByZXNlbnRlZEZyYW1lcyB7IDAgfTsKKyAgICBzdGQ6Om9wdGlvbmFs
PGRvdWJsZT4gcHJvY2Vzc2luZ0R1cmF0aW9uOworCisgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+
IGNhcHR1cmVUaW1lOworICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiByZWNlaXZlVGltZTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBydHBUaW1lc3RhbXA7Cit9OworCit9CisKKyNlbmRp
ZiAvLyBFTkFCTEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKaW5kZXggODRhN2EwNzI3MzFjMTI3ODhhY2VjZWJjMTJlYTY4N2Nl
YmRiMGMyZi4uMDliNzU5YWYzMjg0MDdhMmM2NjQzZTViZjgzYjJhZDM4MThiOTU5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAt
MTcxMCw2ICsxNzEwLDExIEBAIE1lZGlhUGxheWVySWRlbnRpZmllciBNZWRpYVBsYXllcjo6aWRl
bnRpZmllcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aWRlbnRpZmllcigpOwogfQog
CitzdGQ6Om9wdGlvbmFsPFZpZGVvRnJhbWVNZXRhZGF0YT4gTWVkaWFQbGF5ZXI6OnZpZGVvRnJh
bWVNZXRhZGF0YSgpCit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dmlkZW9GcmFtZU1ldGFkYXRh
KCk7Cit9CisKIFN0cmluZyBNZWRpYVBsYXllcjo6ZWxlbWVudElkKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gY2xpZW50KCkubWVkaWFQbGF5ZXJFbGVtZW50SWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDk3MTI2NDhjYmFhYmU3NTk5
ZTY3ZGY2NWFmMmMzNTZiZjI0MTYzNWYuLjA0ODhkZjU3MWI3OTZjZTEzNGJmZGYxMTk0MDNhOGYx
NWMwZDI1OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1
ZGUgIlZpZGVvRnJhbWVNZXRhZGF0YS5oIgogI2luY2x1ZGUgIlZpZGVvUGxheWJhY2tRdWFsaXR5
TWV0cmljcy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTY3OCw2ICs2NzksOCBAQCBwdWJsaWM6CiAg
ICAgTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdDsKICAgICBib29sIGhh
c01lZGlhRW5naW5lKCkgY29uc3Q7CiAKKyAgICBzdGQ6Om9wdGlvbmFsPFZpZGVvRnJhbWVNZXRh
ZGF0YT4gdmlkZW9GcmFtZU1ldGFkYXRhKCk7CisKIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXIo
TWVkaWFQbGF5ZXJDbGllbnQmKTsKICAgICBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYs
IE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4
IDZhYjQ3YjE1MzhmZmMyZjI5NDRjODRhOWY0NGM1YzhjYmI2MDJjZjcuLjg5YTZlOGNlZmU5OTJi
YWJkY2NmOTRkMDU0ZmQwMWU4NWIwZDFlODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0zMjAsNiArMzIwLDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1BhdXNlQXRIb3N0VGltZSgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHBsYXlBdEhvc3RUaW1lKGNv
bnN0IE1vbm90b25pY1RpbWUmKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBw
YXVzZUF0SG9zdFRpbWUoY29uc3QgTW9ub3RvbmljVGltZSYpIHsgcmV0dXJuIGZhbHNlOyB9CisK
KyAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8VmlkZW9GcmFtZU1ldGFkYXRhPiB2aWRlb0ZyYW1l
TWV0YWRhdGEoKSB7IHJldHVybiB7IH07IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmgKaW5kZXggNjNmZDllYTkzZDQ3ZTI0NzIwNjcxYTRiNmM1ZjVkZGRmOWRjYTgzNS4uMzlkZGQw
M2Y1ZjY2YWY3YzAxNzFkMzAwOTFkMGYyN2YwNzc2MWU2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLmgKQEAgLTE1OSw2ICsxNTksNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRCdWZmZXJp
bmdQb2xpY3koTWVkaWFQbGF5ZXI6OkJ1ZmZlcmluZ1BvbGljeSkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKSBmaW5hbDsKKyAgICBzdGQ6Om9wdGlvbmFsPFZp
ZGVvRnJhbWVNZXRhZGF0YT4gdmlkZW9GcmFtZU1ldGFkYXRhKCkgZmluYWw7CiAKICAgICBNZWRp
YVBsYXllcjo6UmVhZHlTdGF0ZSBjdXJyZW50UmVhZHlTdGF0ZSgpOwogICAgIHZvaWQgdXBkYXRl
UmVhZHlTdGF0ZSgpOwpAQCAtMjc4LDYgKzI3OSw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lz
VmlzaWJsZUluVmlld1BvcnQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXZlU2Vlbk1ldGFkYXRh
IHsgZmFsc2UgfTsKICAgICBib29sIG1fd2FpdGluZ0ZvckZpcnN0SW1hZ2UgeyBmYWxzZSB9Owor
CisgICAgdWludDY0X3QgbV9zYW1wbGVDb3VudCB7IDAgfTsKKyAgICB1aW50NjRfdCBtX2xhc3RW
aWRlb0ZyYW1lTWV0YWRhdGFTYW1wbGVDb3VudCB7IDAgfTsKIH07CiAgICAgCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KaW5kZXggZGQzYWY2NDE3N2E5MzM4OTJjYjc3ZmEwYzQzYmQyNjUx
NTZkNDE0MS4uZTlkNGQxY2ViZDJhMTRhZjI0NWEyMmU3NjEyYWEzZGI4ZTYzOWU3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMzE2LDYgKzMxNiw4IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwcm9jZXNzTmV3VmlkZW9TYW1wbGUoTWVkaWFT
YW1wbGUmIHNhCiAgICAgICAgICAgICB1cGRhdGVSZWFkeVN0YXRlKCk7CiAgICAgfQogCisgICAg
KyttX3NhbXBsZUNvdW50OworCiAgICAgaWYgKG1fZGlzcGxheU1vZGUgIT0gTGl2ZVByZXZpZXcg
JiYgIW1fd2FpdGluZ0ZvckZpcnN0SW1hZ2UpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTA4OCw2
ICsxMDkwLDIyIEBAIFdURkxvZ0NoYW5uZWwmIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6bG9nQ2hhbm5lbCgpIGNvbnN0CiAgICAgcmV0dXJuIExvZ01lZGlhOwogfQogCitz
dGQ6Om9wdGlvbmFsPFZpZGVvRnJhbWVNZXRhZGF0YT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lTWV0YWRhdGEoKQoreworICAgIGlmIChtX3NhbXBsZUNv
dW50ID09IG1fbGFzdFZpZGVvRnJhbWVNZXRhZGF0YVNhbXBsZUNvdW50KQorICAgICAgICByZXR1
cm4geyB9OworICAgIG1fbGFzdFZpZGVvRnJhbWVNZXRhZGF0YVNhbXBsZUNvdW50ID0gbV9zYW1w
bGVDb3VudDsKKworICAgIFZpZGVvRnJhbWVNZXRhZGF0YSBtZXRhZGF0YTsKKyAgICBtZXRhZGF0
YS53aWR0aCA9IG1faW50cmluc2ljU2l6ZS53aWR0aCgpOworICAgIG1ldGFkYXRhLmhlaWdodCA9
IG1faW50cmluc2ljU2l6ZS5oZWlnaHQoKTsKKyAgICBtZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXMg
PSBtX3NhbXBsZUNvdW50OworCisgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIGdvb2QgdG8gZXhw
b3NlIG1vcmUgdmlkZW8gZnJhbWUgbWV0YWRhdGEuCisKKyAgICByZXR1cm4gbWV0YWRhdGE7Cit9
CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmUxOTA0YmE0MDc0MmM1MzdiY2UyZjc2Y2E4ZTUzNTQ2
NTYyMWQzYi4uNDUxOGE1YTNkMTU2MDFlOWQ3ZGEyZDlmM2IxMTQ4ZGI5OTIyN2ViYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE4IEBACisyMDIxLTEwLTE1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
ayBBUEkgYW5kIE1lZGlhU3RyZWFtVHJhY2stYmFzZWQgYmFja2VuZCBzdXBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE4MDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtcnZmYy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2
ZmMuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiB3ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZjLmh0bWw6IEFkZGVkLgorCiAyMDIxLTEw
LTE1ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
ZXJ0IHIyODQyMzAsIG15IGxhc3QgZml4ZXMgdG8gdGhlIHdhdGNoIGJ1aWxkIG1ha2UgaXQgYnJl
YWsgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDA1OGY5Njg4YWU4Njk1
Y2M4NDJjNWNiNGZhZTkzYTZiMTY3YTY3Y2YuLjM3MzIzMGViNmE5NWI2NTQ3ZmI0MjZlY2NlOTE2
NDY1NzY1NWZiNWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDIxLTEwLTE1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgc3VwcG9ydCBmb3IgcmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayBBUEkgYW5kIE1l
ZGlhU3RyZWFtVHJhY2stYmFzZWQgYmFja2VuZCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE4MDMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRp
b25zLmpzb246CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvTUVUQS55
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL1JFQURN
RS5tZDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvaWRs
aGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy5qczog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qt
dmlkZW8tZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhyLXNlc3Npb24uaHR0cHMuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1m
cmFtZS1jYWxsYmFjay1kb20tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1
ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmluZy14ci1zZXNzaW9uLmh0dHBzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVx
dWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5odHRwcy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZp
ZGVvLWZyYW1lLWNhbGxiYWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJh
bGxlbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92
aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRl
by1mcmFtZS1jYWxsYmFjay1yZXBlYXRpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxi
YWNrLXJlcGVhdGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXdlYnJ0Yy5odHRwcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZj
L3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJh
bWUtY2FsbGJhY2suaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMvdzNjLWltcG9ydC5sb2c6IEFkZGVkLgorCiAyMDIxLTEwLTE1ICBBbGV4ZXkgU2h2
YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBbV2ViSURMXSBKU0RPTUJ1
aWx0aW5Db25zdHJ1Y3RvciBpbnN0YW5jZXMgc2hvdWxkIHN1cHBvcnQgc3ViY2xhc3NpbmcKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDYyOWRlODg3NDZhN2Q3YjI4M2U2YTQyN2QxZDNjMTE0ZThlYThh
YTEuLjM2NTk1MmQxMjc5OTI2OTU0NTVjNzlkYmUwNDZmOThjM2JhMTcyMGQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMjE2LDYgKzIxNiw5IEBAIGZhc3QvaGFybmVzcy91aXNjcmlwdGNvbnRyb2xs
ZXIgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9z
Y3JvbGxpbmcgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2
ZW50cy9kb2N1bWVudC1sZXZlbC10b3VjaG1vdmUtZXZlbnQtbGlzdGVuZXItcGFzc2l2ZS1ieS1k
ZWZhdWx0LnRlbnRhdGl2ZS5odG1sIFsgU2tpcCBdCiAKKyMgT25seSBNYWMgYW5kIGlPUyBXSzIg
aGF2ZSBhbiBpbXBsZW1lbnRhdGlvbiByaWdodCBub3cuCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3ZpZGVvLXJ2ZmMgWyBTa2lwIF0KKwogIyBUaGlzIHRlc3Qgb25seSBtYWtlcyBz
ZW5zZSBvbiBNYWMKIGZhc3QvYXR0YWNobWVudC9hdHRhY2htZW50LXN1YnRpdGxlLXJlc2l6ZS5o
dG1sIFsgU2tpcCBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
Z2V0VXNlck1lZGlhLXJ2ZmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9nZXRVc2VyTWVkaWEtcnZmYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQ5ZDhiNWYz
MzdkZWQ0ZjhhOGYwYzY5ZjE1MzczOTZjZTkzNWQ0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorCisKK1BBU1MgVmFsaWRhdGUgY2FsbGJhY2tzIGNhbiBiZSB1cGRhdGVk
IHdpdGhpbiBhIGNhbGxiYWNrCitQQVNTIFZhbGlkYXRlIGNhbGxiYWNrcyBhbmQgbWV0YWRhdGEg
Zm9yIGdldFVzZXJNZWRpYQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL2dldFVzZXJNZWRpYS1ydmZjLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L2dldFVzZXJNZWRpYS1ydmZjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjliODE2Y2JjNGJjYTA2MDhjNjA1
OTdjYTA2ODE0NmFjOWJlMjJmYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMuaHRtbApAQCAtMCwwICsxLDcyIEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+CisgICAgICAgIDx0aXRsZT5UZXN0aW5nIHJ2ZmMgb24gZ2V0VXNlck1lZGlhIHN0cmVh
bTwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+Cisg
ICAgICAgIDx2aWRlbyBpZD0idmlkZW8iIGF1dG9wbGF5PSIiPjwvdmlkZW8+CisgICAgICAgIDxz
Y3JpcHQ+Cithc3luYyBmdW5jdGlvbiBncmFiTmV4dE1ldGFkYXRhKHZpZGVvKQoreworICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGNvbnN0IGlk
ZW50aWZpZXIgPSB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKChub3csIG1ldGFkYXRh
KSA9PiB7CisgICAgICAgICAgICByZXNvbHZlKG1ldGFkYXRhKTsKKyAgICAgICAgICAgIHZpZGVv
LmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayhpZGVudGlmaWVyKTsKKyAgICAgICAgfSk7CisgICAg
ICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgcmVqZWN0KCJubyBtZXRhZGF0YSBm
b3IgIiArIGlkZW50aWZpZXIpOworICAgICAgICAgICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNh
bGxiYWNrKGlkZW50aWZpZXIpOworICAgICAgICB9LCA1MDAwKTsKKyAgICB9KTsKK30KKworcHJv
bWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3QgbG9jYWxTdHJlYW0gPSBhd2Fp
dCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHsgd2lkdGg6IDY0
MCwgaGVpZ2h0OiA0ODAgfSB9KTsKKyAgICB2aWRlby5zcmNPYmplY3QgPSBsb2NhbFN0cmVhbTsK
KyAgICBhd2FpdCB2aWRlby5wbGF5KCk7CisKKyAgICBsZXQgcmVzb2x2ZTsKKyAgICBsZXQgcHJv
bWlzZSA9IG5ldyBQcm9taXNlKHIgPT4gcmVzb2x2ZSA9IHIpOworICAgIGNvbnN0IGlkMSA9IHZp
ZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKG5vdywgbWV0YWRhdGEpID0+IHsKKyAgICAg
ICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKGlkMSk7CisgICAgICAgIHZpZGVvLmNh
bmNlbFZpZGVvRnJhbWVDYWxsYmFjayhpZDIpOworCisgICAgICAgIGNvbnN0IGlkMyA9IHZpZGVv
LnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKG5vdywgbWV0YWRhdGEpID0+IHsgYXNzZXJ0X25v
dF9yZWFjaGVkKCk7IH0pOworICAgICAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2so
aWQzKTsKKyAgICAgICAgc2V0VGltZW91dChyZXNvbHZlLCAxMDApOworICAgIH0pOworCisgICAg
Y29uc3QgaWQyID0gdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygobm93LCBtZXRhZGF0
YSkgPT4geworICAgICAgICBhc3NlcnRfbm90X3JlYWNoZWQoKTsKKyAgICB9KTsKKworICAgIHJl
dHVybiBwcm9taXNlOworfSwgIlZhbGlkYXRlIGNhbGxiYWNrcyBjYW4gYmUgdXBkYXRlZCB3aXRo
aW4gYSBjYWxsYmFjayIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBj
b25zdCBsb2NhbFN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1l
ZGlhKHt2aWRlbzogeyB3aWR0aDogNjQwLCBoZWlnaHQ6IDQ4MCB9IH0pOworICAgIHZpZGVvLnNy
Y09iamVjdCA9IGxvY2FsU3RyZWFtOworICAgIGF3YWl0IHZpZGVvLnBsYXkoKTsKKworICAgIGxl
dCBtZXRhZGF0YSA9IGF3YWl0IGdyYWJOZXh0TWV0YWRhdGEodmlkZW8pOworICAgIGFzc2VydF9l
cXVhbHMobWV0YWRhdGEud2lkdGgsIDY0MCk7CisgICAgYXNzZXJ0X2VxdWFscyhtZXRhZGF0YS5o
ZWlnaHQsIDQ4MCk7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5wcmVzZW50ZWRG
cmFtZXMsIDApOworICAgIGNvbnN0IHByZXNlbnRlZEZyYW1lcyA9IG1ldGFkYXRhLnByZXNlbnRl
ZEZyYW1lczsKKworICAgIGF3YWl0IGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0uYXBw
bHlDb25zdHJhaW50cyh7d2lkdGg6IDMyMCwgaGVpZ2h0OiAyNDB9KTsKKworICAgIGxldCBjb3Vu
dGVyID0gMDsKKyAgICB3aGlsZSAoKytjb3VudGVyIDwgMTAwICYmIG1ldGFkYXRhLndpZHRoICE9
PSAzMjApIHsKKyAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0
KHJlc29sdmUsIDUwKSk7CisgICAgICAgIG1ldGFkYXRhID0gYXdhaXQgZ3JhYk5leHRNZXRhZGF0
YSh2aWRlbyk7CisgICAgfQorICAgIGFzc2VydF9lcXVhbHMobWV0YWRhdGEud2lkdGgsIDMyMCk7
CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXMsIHByZXNl
bnRlZEZyYW1lcyk7Cit9LCAiVmFsaWRhdGUgY2FsbGJhY2tzIGFuZCBtZXRhZGF0YSBmb3IgZ2V0
VXNlck1lZGlhIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVj
dGF0aW9ucy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQt
ZXhwZWN0YXRpb25zLmpzb24KaW5kZXggNjEwZGQ1Y2ZkNWFmNTBmYmQ2OTExZmMxNzA1MzhiZmE0
MGJkMjY5Ni4uMDExYWJlMjE1YTMyOGZjMjczNTRlNzZkNjRmZWY0YzkxOTc3OTZmMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRp
b25zLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQt
ZXhwZWN0YXRpb25zLmpzb24KQEAgLTQ0NSw2ICs0NDUsNyBAQAogICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvdXJsIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdXNlci10aW1p
bmciOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy92aWJyYXRpb24iOiAic2tp
cCIsIAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYyI6ICJpbXBvcnQiLCAKICAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL3Zpc3VhbC12aWV3cG9ydCI6ICJpbXBvcnQiLCAKICAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL3dhaS1hcmlhIjogInNraXAiLCAKICAgICAid2ViLXBsYXRmb3Jt
LXRlc3RzL3dhc20iOiAiaW1wb3J0IiwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvTUVUQS55bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvTUVUQS55bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWU1ODFmNDIzNGFkMzljODE5ZTM3MWE1MzJjZDQxNjQyMDYwYTdjNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9NRVRBLnltbApAQCAtMCwwICsxLDMgQEAKK3NwZWM6IGh0dHBzOi8vd2ljZy5n
aXRodWIuaW8vdmlkZW8tcnZmYy8KK3N1Z2dlc3RlZF9yZXZpZXdlcnM6CisgIC0gdGd1aWxiZXJ0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvUkVBRE1FLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy92aWRlby1ydmZjL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjdhMzUzMDUxNTg2
MWM5MWM0YzAxMmI5M2MyZTBjZjhlOTEzZGVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL1JFQURNRS5tZApA
QCAtMCwwICsxLDcgQEAKKyMgSFRNTFZpZGVvRWxlbWVudC5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrIHNwZWNpZmljYXRpb24gVGVzdHMKKworVGhlIEhUTUxWaWRlb0VsZW1lbnQucmVxdWVzdFZp
ZGVvRnJhbWVDYWxsYmFjayBzcGVjaWZpY2F0aW9uIGlzIGF2YWlsYWJsZSBoZXJlOiBodHRwczov
L3dpY2cuZ2l0aHViLmlvL3ZpZGVvLXJ2ZmMKKworR2l0SHViIHJlcG9zaXRvcnk6IGh0dHBzOi8v
Z2l0aHViLmNvbS9XSUNHL3ZpZGVvLXJ2ZmMKKworRmlsZSBhbiBpc3N1ZTogaHR0cHM6Ly9naXRo
dWIuY29tL3dpY2cvdmlkZW8tcnZmYy9pc3N1ZXMvbmV3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53
aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xNGJjYjYyNGM1NGEwMWQ0MWQ5ODkxYWFjNDBjOTIxZjI4Mzk2NjU4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRl
by1ydmZjL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBACisK
K1BBU1MgaWRsX3Rlc3Qgc2V0dXAKK1BBU1MgaWRsX3Rlc3QgdmFsaWRhdGlvbgorUEFTUyBQYXJ0
aWFsIGludGVyZmFjZSBIVE1MVmlkZW9FbGVtZW50OiBvcmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5l
ZAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBIVE1MVmlkZW9FbGVtZW50OiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQorUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBHbG9iYWxFdmVudEhhbmRsZXJz
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBEb2N1
bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFT
UyBIVE1MRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q29udGVudEVkaXRhYmxlOiBtZW1iZXIgbmFt
ZXMgYXJlIHVuaXF1ZQorUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBIVE1MT3JTVkdFbGVtZW50
OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFBhcmVudE5v
ZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgTm9uRG9j
dW1lbnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50
IGluY2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVu
dCBpbmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEhUTUxW
aWRlb0VsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24gcmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
ayhWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrKQorUEFTUyBIVE1MVmlkZW9FbGVtZW50IGludGVy
ZmFjZTogb3BlcmF0aW9uIGNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayh1bnNpZ25lZCBsb25nKQor
UEFTUyBIVE1MVmlkZW9FbGVtZW50IGludGVyZmFjZTogdmlkZW8gbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJyZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2sp
IiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBIVE1MVmlkZW9FbGVtZW50IGludGVyZmFjZTog
Y2FsbGluZyByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJh
Y2spIG9uIHZpZGVvIHdpdGggdG9vIGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IK
K1BBU1MgSFRNTFZpZGVvRWxlbWVudCBpbnRlcmZhY2U6IHZpZGVvIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAiY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKHVuc2lnbmVkIGxvbmcpIiB3aXRoIHRoZSBw
cm9wZXIgdHlwZQorUEFTUyBIVE1MVmlkZW9FbGVtZW50IGludGVyZmFjZTogY2FsbGluZyBjYW5j
ZWxWaWRlb0ZyYW1lQ2FsbGJhY2sodW5zaWduZWQgbG9uZykgb24gdmlkZW8gd2l0aCB0b28gZmV3
IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvcgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53
aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1Mjhl
NjkzYjNhNWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVz
cy53aW5kb3cuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBm
b3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAt
LT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53aW5k
b3cuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVv
LXJ2ZmMvaWRsaGFybmVzcy53aW5kb3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmE5ZTRlMDk4OGJmNjdjODhk
Y2NkMjk3Y2Y1NjRiYjk3ZDVkZTZiZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRv
dy5qcwpAQCAtMCwwICsxLDE3IEBACisvLyBNRVRBOiBzY3JpcHQ9L3Jlc291cmNlcy9XZWJJRExQ
YXJzZXIuanMKKy8vIE1FVEE6IHNjcmlwdD0vcmVzb3VyY2VzL2lkbGhhcm5lc3MuanMKKy8vIE1F
VEE6IHRpbWVvdXQ9bG9uZworCisndXNlIHN0cmljdCc7CisKK2lkbF90ZXN0KAorICBbJ3ZpZGVv
LXJ2ZmMnXSwKKyAgWydodG1sJywgJ2RvbSddLAorICBpZGxfYXJyYXkgPT4geworICAgIGlkbF9h
cnJheS5hZGRfb2JqZWN0cyh7CisgICAgICBIVE1MVmlkZW9FbGVtZW50OiBbJ3ZpZGVvJ10sCisg
ICAgfSk7CisgICAgc2VsZi52aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7
CisgIH0KKyk7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9y
ZS14ci1zZXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxi
YWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjQ3
N2MwOTMxOTlkNTJmMmVjOGIyZmU2ZTE1NTZlZGVkOTE5YTU4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3Jl
cXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhyLXNlc3Npb24uaHR0cHMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorCitIYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2Fn
ZSA9IG51bGwKKworVElNRU9VVCBNYWtlIHN1cmUgdmlkZW8uclZGQyB3b3JrcyBkdXJpbmcgYSBu
b24taW1tZXJzaXZlIHNlc3Npb24gLSB3ZWJnbCBUZXN0IHRpbWVkIG91dAorTk9UUlVOIE1ha2Ug
c3VyZSB2aWRlby5yVkZDIHdvcmtzIGR1cmluZyBhIG5vbi1pbW1lcnNpdmUgc2Vzc2lvbiAtIHdl
YmdsMgorTk9UUlVOIE1ha2Ugc3VyZSB2aWRlby5yVkZDIHdvcmtzIGR1cmluZyBhbiBpbW1lcnNp
dmUgc2Vzc2lvbiAtIHdlYmdsCitOT1RSVU4gTWFrZSBzdXJlIHZpZGVvLnJWRkMgd29ya3MgZHVy
aW5nIGFuIGltbWVyc2l2ZSBzZXNzaW9uIC0gd2ViZ2wyCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZp
ZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjUyNzdmYmJhOTJmYmY2MzU3OWFkNGQ0ZDVhMmNhMWRjMmUzNTZjZDYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVv
LXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRw
cy5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8dGl0bGU+
VGVzdCB0aGF0IHZpZGVvLnJWRkMgY2FsbGJhY2tzIHN0YXJ0ZWQgYmVmb3JlIGFuIFhSU2Vzc2lv
biB3b3JrLjwvdGl0bGU+Cis8Ym9keT4KKzwvYm9keT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL21lZGlhLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi93ZWJ4ci9yZXNvdXJjZXMvd2VieHJfdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vd2VieHIvcmVzb3VyY2VzL3dlYnhyX3Rlc3Rf
Y29uc3RhbnRzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKy8vIFN0YXJ0IHRoZSB2aWRlby5y
VkZDIGNhbGxiYWNrcyBiZWZvcmUgc3RhcnRpbmcgdGhlIFhSIFNlc3Npb24uCitsZXQgdmlkZW8g
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOwordmlkZW8uc3JjID0gZ2V0VmlkZW9V
UkkoJy9tZWRpYS9tb3ZpZV81Jyk7CisKK3ZhciBudW1iZXJWRkNzID0gMDsKK2xldCB2aWRlb0Nh
bGxiYWNrID0gKCkgPT4geworICAgIG51bWJlclZGQ3MrKzsKKyAgICB2aWRlby5yZXF1ZXN0Vmlk
ZW9GcmFtZUNhbGxiYWNrKHZpZGVvQ2FsbGJhY2spOworfQorCit2aWRlby5yZXF1ZXN0VmlkZW9G
cmFtZUNhbGxiYWNrKHZpZGVvQ2FsbGJhY2spOwordmlkZW8ucGxheSgpOworCitsZXQgdGVzdEZ1
bmN0aW9uID0gYXN5bmMgZnVuY3Rpb24oc2Vzc2lvbiwgZmFrZURldmljZUNvbnRyb2xsZXIsIHQp
IHsKKyAgICBsZXQgd2F0Y2hlckRvbmUgPSBuZXcgRXZlbnQoIndhdGNoZXJkb25lIik7CisgICAg
bGV0IGV2ZW50V2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIodCwgc2Vzc2lvbiwgWyJlbmQiLCAi
d2F0Y2hlcmRvbmUiXSk7CisgICAgbGV0IGV2ZW50UHJvbWlzZSA9IGV2ZW50V2F0Y2hlci53YWl0
X2ZvcihbImVuZCIsICJ3YXRjaGVyZG9uZSJdKTsKKworICAgIG51bWJlclZGQ3MgPSAwOworCisg
ICAgZnVuY3Rpb24gb25YUkZyYW1lKHRpbWUsIGZyYW1lKSB7CisgICAgICAgIGlmKG51bWJlclZG
Q3MgPj0gMikgeworICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHZpZGVvLnJWRkNzIGFyZSBzdGls
bCBjb21pbmcgdGhyb3VnaCBiZWZvcmUgZW5kaW5nIHRoZQorICAgICAgICAgICAgLy8gc2Vzc2lv
bi4KKyAgICAgICAgICAgIHNlc3Npb24uZW5kKCk7CisgICAgICAgIH0KKworICAgICAgICBzZXNz
aW9uLnJlcXVlc3RBbmltYXRpb25GcmFtZShvblhSRnJhbWUpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIG9uU2Vzc2lvbkVuZChldmVudCkgeworICAgICAgICAvLyBNYWtlIHN1cmUgd2UgYXJlIHN0
aWxsIGdldHRpbmcgclZGQyBjYWxsYmFja3MgYWZ0ZXIgdGhlIHNlc3Npb24gZW5kLgorICAgICAg
ICBudW1iZXJWRkNzID0gMDsKKyAgICAgICAgdC5zdGVwX3dhaXRfZnVuYygoKSA9PiBudW1iZXJW
RkNzID49IDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gc2Vzc2lvbi5kaXNwYXRj
aEV2ZW50KHdhdGNoZXJEb25lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiVGltZSBvdXQg
d2FpdGluZyBmb3IgVkZDIGNhbGxiYWNrcyIpOworICAgIH0KKworICAgIHNlc3Npb24uYWRkRXZl
bnRMaXN0ZW5lcigiZW5kIiwgb25TZXNzaW9uRW5kLCBmYWxzZSk7CisgICAgc2Vzc2lvbi5yZXF1
ZXN0QW5pbWF0aW9uRnJhbWUob25YUkZyYW1lKTsKKworICAgIHJldHVybiBldmVudFByb21pc2U7
Cit9CisKK3hyX3Nlc3Npb25fcHJvbWlzZV90ZXN0KCdNYWtlIHN1cmUgdmlkZW8uclZGQyB3b3Jr
cyBkdXJpbmcgYSBub24taW1tZXJzaXZlIHNlc3Npb24nLAorICAgIHRlc3RGdW5jdGlvbiwgVFJB
Q0tFRF9JTU1FUlNJVkVfREVWSUNFLCAnaW5saW5lJyk7CisKK3ZpZGVvLmN1cnJlbnRUaW1lID0g
MDsKKworeHJfc2Vzc2lvbl9wcm9taXNlX3Rlc3QoJ01ha2Ugc3VyZSB2aWRlby5yVkZDIHdvcmtz
IGR1cmluZyBhbiBpbW1lcnNpdmUgc2Vzc2lvbicsCisgICAgdGVzdEZ1bmN0aW9uLCBUUkFDS0VE
X0lNTUVSU0lWRV9ERVZJQ0UsICdpbW1lcnNpdmUtdnInKTsKKworPC9zY3JpcHQ+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kb20tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZj
L3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZG9tLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42NjM5ZDRmMjg4NWUxZjk3NjQ4ZDUwNTQ3NzBlYWZlYjQzMmRjNTBkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZG9tLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDcgQEAKKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK1RJ
TUVPVVQgVGVzdCBhIHZpZGVvIG91dHNpZGUgb2YgdGhlIERPTSBjYW4gc3RpbGwgdXNlIHZpZGVv
LnJWRkMuIFRlc3QgdGltZWQgb3V0CitUSU1FT1VUIFRlc3QgdmlkZW8uclZGQyB3b3JrcyB3aXRo
ICJkaXNwbGF5Om5vbmUiLiBUZXN0IHRpbWVkIG91dAorVElNRU9VVCBUZXN0IHZpZGVvLnJWRkMg
d29ya3Mgd2l0aCAidmlzaWJpbGl0eTpoaWRkZW4iLiBUZXN0IHRpbWVkIG91dAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2
ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kb20uaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZy
YW1lLWNhbGxiYWNrLWRvbS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyNzdkNzI5Nzg4M2M0Y2Q0ZjQ3MmIw
OGM0Mzk5ODA2MjgwZmU4ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1j
YWxsYmFjay1kb20uaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPHRpdGxlPlRlc3QgdGhlIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKSBBUEkg
Zm9yIG5vbiB2aXNpYmxlIHZpZGVvIGVsZW1lbnRzLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9t
ZWRpYS5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzwvYm9keT4KKzxzY3JpcHQ+Cit2YXIgdGVzdFZp
ZGVvID0geworICB1cmw6IGdldFZpZGVvVVJJKCcvbWVkaWEvbW92aWVfNScpLAorICBoZWlnaHQ6
IDI0MCwKKyAgd2lkdGg6IDMyMCwKK30KKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAg
bGV0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKworICAgIHZpZGVv
LnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodC5zdGVwX2Z1bmNfZG9uZSgpKTsKKyAgICB2aWRl
by5zcmMgPSB0ZXN0VmlkZW8udXJsOworICAgIHZpZGVvLnBsYXkoKTsKKworfSwgJ1Rlc3QgYSB2
aWRlbyBvdXRzaWRlIG9mIHRoZSBET00gY2FuIHN0aWxsIHVzZSB2aWRlby5yVkZDLicpOworCitm
dW5jdGlvbiBydmZjU3R5bGVUZXN0KGFwcGx5U3R5bGUsIGRlc2NyaXB0aW9uKSB7CisgICAgYXN5
bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCd2aWRlbycpOworICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7
CisgICAgICBhcHBseVN0eWxlKHZpZGVvKTsKKworICAgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJh
bWVDYWxsYmFjaygKKyAgICAgICAgdC5zdGVwX2Z1bmMoIF8gPT4geworICAgICAgICAgIC8vIE1h
a2Ugc3VyZSB3ZSBjYW4gcmVjZWl2ZSBtb3JlIHRoYW4gb25lIGNhbGxiYWNrLgorICAgICAgICAg
IHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodC5zdGVwX2Z1bmNfZG9uZSgpKTsKKyAg
ICAgICAgfSkKKyAgICAgICk7CisKKyAgICAgIHZpZGVvLnNyYyA9IHRlc3RWaWRlby51cmw7Cisg
ICAgICB2aWRlby5wbGF5KCk7CisgICAgfSwgZGVzY3JpcHRpb24pOworfQorCitydmZjU3R5bGVU
ZXN0KCh2aWRlbykgPT4geyB2aWRlby5zdHlsZS5kaXNwbGF5ID0gIm5vbmUifSwKKyAgJ1Rlc3Qg
dmlkZW8uclZGQyB3b3JrcyB3aXRoICJkaXNwbGF5Om5vbmUiLicpOworCitydmZjU3R5bGVUZXN0
KCh2aWRlbykgPT4geyB2aWRlby5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiJ9LAorICAnVGVz
dCB2aWRlby5yVkZDIHdvcmtzIHdpdGggInZpc2liaWxpdHk6aGlkZGVuIi4nKTsKKworPC9zY3Jp
cHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJp
bmcteHItc2Vzc2lvbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxs
YmFjay1kdXJpbmcteHItc2Vzc2lvbi5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTc3
MjAyMGU0OTAyNzFiNDM0MjQxZDk0OTg2MjFmYTllYjgxYTRjNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9y
ZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmluZy14ci1zZXNzaW9uLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3Nh
Z2UgPSBudWxsCisKK1RJTUVPVVQgTWFrZSBzdXJlIHZpZGVvLnJWRkMgY2FsbGJhY2tzIHN0YXJ0
ZWQgZHVyaW5nIGFuIGltbWVyc2l2ZSBzZXNzaW9uIGNvbnRpbnVlIGFmdGVyIGl0IGVuZHMgLSB3
ZWJnbCBUZXN0IHRpbWVkIG91dAorTk9UUlVOIE1ha2Ugc3VyZSB2aWRlby5yVkZDIGNhbGxiYWNr
cyBzdGFydGVkIGR1cmluZyBhbiBpbW1lcnNpdmUgc2Vzc2lvbiBjb250aW51ZSBhZnRlciBpdCBl
bmRzIC0gd2ViZ2wyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1
cmluZy14ci1zZXNzaW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1k
dXJpbmcteHItc2Vzc2lvbi5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0NTYxZWU1ZmQwNjU5NDRk
MTMzZmE1ZDMxNGI2Y2VkMmY3OTQ3M2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1m
cmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5odHRwcy5odG1sCkBAIC0wLDAgKzEsNjAg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8dGl0bGU+VGVzdCB0aGF0IHZpZGVvLnJWRkMg
Y2FsbGJhY2tzIHN0YXJ0ZWQgZHVyaW5nIGFuIFhSU2Vzc2lvbiB3b3JrLjwvdGl0bGU+Cis8Ym9k
eT4KKyAgICA8Y2FudmFzLz4KKzwvYm9keT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL21lZGlhLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi93ZWJ4ci9yZXNvdXJjZXMvd2VieHJfdXRpbC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vd2VieHIvcmVzb3VyY2VzL3dlYnhyX3Rlc3RfY29uc3Rh
bnRzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2xldCB0ZXN0RnVuY3Rpb24gPSBhc3luYyBm
dW5jdGlvbihzZXNzaW9uLCBmYWtlRGV2aWNlQ29udHJvbGxlciwgdCkgeworICAgIGxldCB3YXRj
aGVyRG9uZSA9IG5ldyBFdmVudCgid2F0Y2hlcmRvbmUiKTsKKyAgICBsZXQgZXZlbnRXYXRjaGVy
ID0gbmV3IEV2ZW50V2F0Y2hlcih0LCBzZXNzaW9uLCBbImVuZCIsICJ3YXRjaGVyZG9uZSJdKTsK
KyAgICBsZXQgZXZlbnRQcm9taXNlID0gZXZlbnRXYXRjaGVyLndhaXRfZm9yKFsiZW5kIiwgIndh
dGNoZXJkb25lIl0pOworCisgICAgLy8gU3RhcnQgdGhlIHZpZGVvLnJWRkMgY2FsbGJhY2tzIHdo
aWxlIHdlIGFyZSBpbiB0aGUgdGhlIFhSIFNlc3Npb24uCisgICAgbGV0IHZpZGVvID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICB2aWRlby5zcmMgPSBnZXRWaWRlb1VSSSgn
L21lZGlhL21vdmllXzUnKTsKKworICAgIHZhciBudW1iZXJWRkNzID0gMDsKKyAgICBsZXQgdmlk
ZW9DYWxsYmFjayA9ICgpID0+IHsKKyAgICAgICAgbnVtYmVyVkZDcysrOworICAgICAgICB2aWRl
by5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHZpZGVvQ2FsbGJhY2spOworICAgIH0KKworICAg
IHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodmlkZW9DYWxsYmFjayk7CisgICAgdmlk
ZW8ucGxheSgpOworCisgICAgZnVuY3Rpb24gb25YUkZyYW1lKHRpbWUsIGZyYW1lKSB7CisgICAg
ICAgIGlmKG51bWJlclZGQ3MgPj0gMikgeworICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHZpZGVv
LnJWRkNzIGFyZSBjb21pbmcgdGhyb3VnaCBiZWZvcmUgZW5kaW5nIHRoZQorICAgICAgICAgICAg
Ly8gc2Vzc2lvbi4KKyAgICAgICAgICAgIHNlc3Npb24uZW5kKCk7CisgICAgICAgIH0KKworICAg
ICAgICBzZXNzaW9uLnJlcXVlc3RBbmltYXRpb25GcmFtZShvblhSRnJhbWUpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIG9uU2Vzc2lvbkVuZChldmVudCkgeworICAgICAgICAvLyBNYWtlIHN1cmUg
d2UgYXJlIHN0aWxsIGdldHRpbmcgclZGQyBjYWxsYmFja3MgYWZ0ZXIgdGhlIHNlc3Npb24gZW5k
LgorICAgICAgICBudW1iZXJWRkNzID0gMDsKKyAgICAgICAgdC5zdGVwX3dhaXRfZnVuYygoKSA9
PiBudW1iZXJWRkNzID49IDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gc2Vzc2lv
bi5kaXNwYXRjaEV2ZW50KHdhdGNoZXJEb25lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAi
VGltZSBvdXQgd2FpdGluZyBmb3IgVkZDIGNhbGxiYWNrcyIpOworICAgIH0KKworICAgIHNlc3Np
b24uYWRkRXZlbnRMaXN0ZW5lcigiZW5kIiwgb25TZXNzaW9uRW5kLCBmYWxzZSk7CisgICAgc2Vz
c2lvbi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUob25YUkZyYW1lKTsKKworICAgIHJldHVybiBldmVu
dFByb21pc2U7Cit9CisKK3hyX3Nlc3Npb25fcHJvbWlzZV90ZXN0KCdNYWtlIHN1cmUgdmlkZW8u
clZGQyBjYWxsYmFja3Mgc3RhcnRlZCBkdXJpbmcgYW4gaW1tZXJzaXZlIHNlc3Npb24gY29udGlu
dWUgYWZ0ZXIgaXQgZW5kcycsCisgICAgdGVzdEZ1bmN0aW9uLCBUUkFDS0VEX0lNTUVSU0lWRV9E
RVZJQ0UsICdpbW1lcnNpdmUtdnInKTsKKworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
cmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1m
cmFtZS1jYWxsYmFjay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E3Y2IzZTk0Y2RmYjI1MjU4
YjlkOTliNGY0ZDQ3ZWRhMGU3NzIxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZy
YW1lLWNhbGxiYWNrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKKworSGFybmVzcyBF
cnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK1RJTUVPVVQgVGVzdCB3ZSBjYW4gcmVn
aXN0ZXIgYSB2aWRlby5yVkZDIGNhbGxiYWNrLiBUZXN0IHRpbWVkIG91dAorVElNRU9VVCBUZXN0
IHZpZGVvLnJWRkMgY2FsbGJhY2tzIHJ1biBiZWZvcmUgd2luZG93LnJBRiBjYWxsYmFja3MuIFRl
c3QgdGltZWQgb3V0CitUSU1FT1VUIFRlc3Qgd2UgY2FuIGNhbmNlbCBhIHZpZGVvLnJWRkMgcmVx
dWVzdC4gVGVzdCB0aW1lZCBvdXQKK1BBU1MgVGVzdCBpbnZhbGlkIGNhbGxzIHRvIHRoZSB2aWRl
by5yVkZDIEFQSS4KK1RJTUVPVVQgVGVzdCB2aWRlby5yVkZDIGRvZXMgbm90IHN0b3Agd2hlbiBz
d2l0Y2hpbmcgc291cmNlcy4gVGVzdCB0aW1lZCBvdXQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJh
bWUtY2FsbGJhY2stcGFyYWxsZWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmZTY4NGFlOGU2
NmRhYjhjY2U2OGQyMjc1MzU5NWE4NDQ4YzZiOTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBA
CisKKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK1RJTUVPVVQg
VGVzdCBjYWxsYmFja3MgZ2V0IHRoZSBzYW1lIGluZm9ybWF0aW9uLiBUZXN0IHRpbWVkIG91dAor
VElNRU9VVCBUZXN0IHdlIGNhbiBjYW5jZWwgY2FsbGJhY2tzIGZyb20gY2FsbGJhY2tzLiBUZXN0
IHRpbWVkIG91dAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJh
bGxlbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92
aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xNGM1ZGUxYWRmNTViYTAwMTZhYjk5ODU3NzZjNTY4ZTQ5ZjU5NTZkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92
aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwuaHRtbApAQCAt
MCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHRpdGxlPlRlc3QgaGF2aW5n
IG11bHRpcGxlIHZpZGVvLnJWRkMgY2FsbGJhY2tzIGluIGZsaWdodCBmb3IgYSBzaW5nbGUgZWxl
bWVudC48L3RpdGxlPgorPGJvZHk+PC9ib2R5PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vbWVkaWEuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgbGV0IHZp
ZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKHZpZGVvKTsKKworICAgIGxldCBmaXJzdFRpbWU7CisgICAgbGV0IGZpcnN0
TWV0YWRhdGE7CisKKyAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHQuc3RlcF9m
dW5jKCh0aW1lLCBtZXRhZGF0YSkgPT4geworICAgICAgZmlyc3RUaW1lID0gdGltZTsKKyAgICAg
IGZpcnN0TWV0YWRhdGEgPSBtZXRhZGF0YTsKKyAgICB9KSk7CisKKyAgICB2aWRlby5yZXF1ZXN0
VmlkZW9GcmFtZUNhbGxiYWNrKHQuc3RlcF9mdW5jX2RvbmUoKHRpbWUsIG1ldGFkYXRhKSA9PiB7
CisgICAgICBhc3NlcnRfZXF1YWxzKGZpcnN0VGltZSwgdGltZSk7CisgICAgICBhc3NlcnRfb2Jq
ZWN0X2VxdWFscyhmaXJzdE1ldGFkYXRhLCBtZXRhZGF0YSk7CisgICAgfSkpOworCisgICAgdmlk
ZW8uc3JjID0gZ2V0VmlkZW9VUkkoJy9tZWRpYS9tb3ZpZV81Jyk7CisgICAgdmlkZW8ucGxheSgp
OworCit9LCAnVGVzdCBjYWxsYmFja3MgZ2V0IHRoZSBzYW1lIGluZm9ybWF0aW9uLicpOworCith
c3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCd2aWRlbycpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOwor
CisgICAgbGV0IHNlY29uZENhbGxiYWNrSWQ7CisKKyAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrKAorICAgICAgdC5zdGVwX2Z1bmMoXyA9PiB7IHZpZGVvLmNhbmNlbFZpZGVvRnJh
bWVDYWxsYmFjayhzZWNvbmRDYWxsYmFja0lkKTsgfSkKKyAgICApOworCisgICAgc2Vjb25kQ2Fs
bGJhY2tJZCA9IHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soCisgICAgICB0LnN0ZXBf
ZnVuYyhfID0+IHsKKyAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiQ2FuY2VsbGVkIGNhbGxiYWNr
cyBzaG91bGRuJ3QgYmUgZXhlY3V0ZWQiKQorICAgICAgfSkKKyAgICApOworCisgICAgLy8gTk9U
RTogVGhpcyBjYWxsYmFjayBzaG91bGQgYmUgZXhlY3V0ZWQgbGFzdC4KKyAgICB2aWRlby5yZXF1
ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKAorICAgICAgdC5zdGVwX2Z1bmNfZG9uZSgpCisgICAgKTsK
KworICAgIHZpZGVvLnNyYyA9IGdldFZpZGVvVVJJKCcvbWVkaWEvbW92aWVfNScpOworICAgIHZp
ZGVvLnBsYXkoKTsKK30sICdUZXN0IHdlIGNhbiBjYW5jZWwgY2FsbGJhY2tzIGZyb20gY2FsbGJh
Y2tzLicpOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFt
ZS1jYWxsYmFjay1yZXBlYXRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2Fs
bGJhY2stcmVwZWF0aW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGE1YmUzZGQyNTEyYjg1
YzM4NTU1YjhmM2NlNzAzNjc4ZWQ0ZGZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8t
ZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKwor
CitIYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9VVCBUZXN0
IG5ldyBjYWxsYmFja3MgYXJlIG9ubHkgY2FsbGVkIG9uIHRoZSBuZXh0IGZyYW1lLiBUZXN0IHRp
bWVkIG91dAorVElNRU9VVCBUZXN0IGNoYWluaW5nIGNhbGxzIHRvIHZpZGVvLnJWRkMsIGFuZCB2
ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlcnMuIFRlc3QgdGltZWQgb3V0CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZm
Yy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTYzN2EwODcyY2Iw
ZDBjMTUxZTBhODBhNmE1Njk0NDlmZDIyMmExYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZp
ZGVvLWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy5odG1sCkBAIC0wLDAgKzEsODAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8dGl0bGU+VGVzdCByZXBlYXRlZGx5IGNoYWluaW5nIHZpZGVv
LnJWRkMoKSBjYWxsYmFja3MuPC90aXRsZT4KKzxib2R5PjwvYm9keT4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9u
L21lZGlhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkg
eworICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICBsZXQgZmlyc3RUaW1lOwor
ICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodC5zdGVwX2Z1bmMoKHRpbWUpID0+
IHsKKyAgICAgIGZpcnN0VGltZSA9IHRpbWU7CisKKyAgICAgIC8vIFF1ZXVlIHVwIGEgY2FsbGJh
Y2sgYW5kIG1ha2Ugc3VyZSBpdCdzIG5vdCBpbW1lZGlhdGVseSBleGVjdXRlZC4KKyAgICAgIGxl
dCBzZWNvbmRUaW1lOworICAgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0
ZXBfZnVuYygodGltZSkgPT4geworICAgICAgICBzZWNvbmRUaW1lID0gdGltZTsKKyAgICAgICAg
YXNzZXJ0X2dyZWF0ZXJfdGhhbihzZWNvbmRUaW1lLCBmaXJzdFRpbWUsICJDYWxsYmFja3Mgc2hv
dWxkIGJlIGV4ZWN1dGVkIG9uIHRoZSBuZXh0IGZyYW1lIik7CisgICAgICB9KSkKKworICAgICAg
Ly8gUXVldWUgdXAgYSBzZWNvbmQgY2FsbGJhY2ssIGFuZCBtYWtlIHN1cmUgaXQncyBjYWxsZWQg
YXQgdGhlIHNhbWUgdGltZQorICAgICAgLy8gYXMgdGhlIG9uZSB3ZSBqdXN0IHF1ZXVlZCB1cC4K
KyAgICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodC5zdGVwX2Z1bmNfZG9uZSgo
dGltZSkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHRpbWUsIHNlY29uZFRpbWUsICJDYWxs
YmFja3MgcXVldWVkIHRvZ2V0aGVyIHNob3VsZCBiZSBjYWxsZWQgYXQgdGhlIHNhbWUgdGltZSIp
OworICAgICAgfSkpCisKKyAgICB9KSk7CisKKyAgICB2aWRlby5zcmMgPSBnZXRWaWRlb1VSSSgn
L21lZGlhL21vdmllXzUnKTsKKyAgICB2aWRlby5wbGF5KCk7CisKK30sICdUZXN0IG5ldyBjYWxs
YmFja3MgYXJlIG9ubHkgY2FsbGVkIG9uIHRoZSBuZXh0IGZyYW1lLicpOworCithc3luY190ZXN0
KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2
aWRlbycpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOworCisgICAgbGV0
IG1heE51bWJlck9mQ2FsbHMgPSAxMDsKKyAgICBsZXQgY3VycmVudENhbGxOdW1iZXIgPSAwOwor
ICAgIGxldCBsYXN0TWV0YWRhdGE7CisKKyAgICBmdW5jdGlvbiB2ZXJpZnlNZXRhZGF0YShsYXN0
LCBjdXJyZW50KSB7CisgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGN1cnJlbnQucHJlc2VudGVk
RnJhbWVzLCBsYXN0LnByZXNlbnRlZEZyYW1lcywgInByZXNlbnRlZEZyYW1lcyBzaG91bGQgYmUg
bW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIik7CisgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGN1
cnJlbnQucHJlc2VudGF0aW9uVGltZSwgbGFzdC5wcmVzZW50YXRpb25UaW1lLCAicHJlc2VudGF0
aW9uVGltZSBzaG91bGQgYmUgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIik7CisgICAgICBhc3Nl
cnRfZ3JlYXRlcl90aGFuKGN1cnJlbnQuZXhwZWN0ZWREaXNwbGF5VGltZSwgbGFzdC5leHBlY3Rl
ZERpc3BsYXlUaW1lLCAiZXhwZWN0ZWREaXNwbGF5VGltZSBzaG91bGQgYmUgbW9ub3RvbmljYWxs
eSBpbmNyZWFzaW5nIik7CisKKyAgICAgIC8vIFdlIGFyZW4ndCBzZWVraW5nIHRocm91Z2ggdGhl
IGZpbGUsIHNvIHRoaXMgc2hvdWxkIGJlIGluY3JlYXNpbmcgZnJvbSBmcmFtZSB0byBmcmFtZS4K
KyAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oY3VycmVudC5tZWRpYVRpbWUsIGxhc3QubWVkaWFU
aW1lLCAibWVkaWFUaW1lIHNob3VsZCBiZSBpbmNyZWFzaW5nIik7CisKKyAgICAgIC8vIFRoZSB0
ZXN0IHZpZGVvJ3Mgc2l6ZSBkb2Vzbid0IGNoYW5nZS4KKyAgICAgIGFzc2VydF9lcXVhbHMoY3Vy
cmVudC53aWR0aCwgbGFzdC53aWR0aCwgIndpZHRoIHNob3VsZCByZW1haW4gY29uc3RhbnQiKTsK
KyAgICAgIGFzc2VydF9lcXVhbHMoY3VycmVudC5oZWlnaHQsIGxhc3QuaGVpZ2h0LCAiaGVpZ2h0
IHNob3VsZCByZW1haW4gY29uc3RhbnQiKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZXBlYXRp
bmdDYWxsYmFjayh0aW1lLCBtZXRhZGF0YSkgeworICAgICAgLy8gU2tpcCB0aGUgZmlyc3QgY2Fs
bCB0byB2ZXJpZnlNZXRhZGF0YS4KKyAgICAgIGlmIChjdXJyZW50Q2FsbE51bWJlcikKKyAgICAg
ICAgdmVyaWZ5TWV0YWRhdGEobGFzdE1ldGFkYXRhLCBtZXRhZGF0YSkKKworICAgICAgbGFzdE1l
dGFkYXRhID0gbWV0YWRhdGE7CisKKyAgICAgIGlmICgrK2N1cnJlbnRDYWxsTnVtYmVyID4gbWF4
TnVtYmVyT2ZDYWxscykgeworICAgICAgICB0LmRvbmUoKQorICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0ZXBfZnVuYyhyZXBlYXRpbmdD
YWxsYmFjaykpOworICAgICAgfQorICAgIH0KKworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1l
Q2FsbGJhY2sodC5zdGVwX2Z1bmMocmVwZWF0aW5nQ2FsbGJhY2spKTsKKworICAgIHZpZGVvLnNy
YyA9IGdldFZpZGVvVVJJKCcvbWVkaWEvbW92aWVfNScpOworICAgIHZpZGVvLnBsYXkoKTsKKwor
fSwgJ1Rlc3QgY2hhaW5pbmcgY2FsbHMgdG8gdmlkZW8uclZGQywgYW5kIHZlcmlmeSB0aGUgcmVx
dWlyZWQgcGFyYW1ldGVycy4nKTsKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVl
c3QtdmlkZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0
LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXdlYnJ0Yy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMGQ1NGQwZWFhZTc4ODY0NmZiMGRmMTE4Mjg4MjMxZmIyNTQ4Nzc3ZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8t
cnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXdlYnJ0Yy5odHRwcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0IEBACisKK0ZBSUwgVGVzdCB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrKCkgcGFyYW1ldGVycyBmb3IgV2ViUlRDIGFwcGxpY2F0aW9ucy4gYXNzZXJ0X2dyZWF0
ZXJfdGhhbjogZXhwZWN0ZWQgYSBudW1iZXIgYnV0IGdvdCBhICJ1bmRlZmluZWQiCisKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRl
by1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVx
dWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
Y2Y5N2U0Y2E5MTA1ZDdlMjllNTc5YmRiNjMyZGI1NTRjNTI1OTMzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZj
L3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLmh0bWwKQEAgLTAsMCAr
MSwxNjUgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPgor
ICA8dGl0bGU+V2ViUlRDIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKSB0ZXN0PC90
aXRsZT4KKyAgPHNjcmlwdCBzcmM9Ii93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICA8
ZGl2PgorICAgIDx2aWRlbyBpZD0ibG9jYWwtdmlldyIgbXV0ZWQgYXV0b3BsYXk9ImF1dG9wbGF5
Ij48L3ZpZGVvPgorICAgIDx2aWRlbyBpZD0icmVtb3RlLXZpZXciIG11dGVkIGF1dG9wbGF5PSJh
dXRvcGxheSIvPgorICAgIDwvdmlkZW8+CisgIDwvZGl2PgorCisgIDwhLS0gVGhlc2UgZmlsZXMg
YXJlIGluIHBsYWNlIHdoZW4gZXhlY3V0aW5nIG9uIFczQy4gLS0+CisgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+CisgIHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgnVGVzdCB2aWRlby5yZXF1
ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKCkgcGFyYW1ldGVycyBmb3IgV2ViUlRDIGFwcGxpY2F0aW9u
cy4nKTsKKworICAvLworICAvLyBUaGlzIHRlc3QgaXMgYmFzZWQgb24gL3dlYnJ0Yy9zaW1wbGVj
YWxsLmh0dHBzLmh0bWwsIGJ1dCBpdCBjYWxscyB0bworICAvLyB2aWRlby5yZXF1ZXN0VmlkZW9G
cmFtZUNhbGxiYWNrKCkgYmVmb3JlIGVuZGluZywgdG8gdmVyaWZ5IFdlYlJUQyByZXF1aXJlZAor
ICAvLyBhbmQgb3B0aW9uYWwgcGFyYW1ldGVycy4KKyAgLy8KKworICB2YXIgZ0ZpcnN0Q29ubmVj
dGlvbiA9IG51bGw7CisgIHZhciBnU2Vjb25kQ29ubmVjdGlvbiA9IG51bGw7CisgIHZhciBnQ2Fs
bGJhY2tDb3VudGVyID0gMDsKKyAgdmFyIHZlcmlmeV9wYXJhbXMgPSAobm93LCBtZXRhZGF0YSkg
PT4geworICAgIGdDYWxsYmFja0NvdW50ZXIgPSBnQ2FsbGJhY2tDb3VudGVyICsgMTsKKyAgICBh
c3NlcnRfZ3JlYXRlcl90aGFuKG5vdywgMCk7CisKKyAgICAvLyBWZXJpZnkgYWxsIHJlcXVpcmVk
IGZpZWxkcworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEucHJlc2VudGF0aW9uVGlt
ZSwgMCk7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5leHBlY3RlZERpc3BsYXlU
aW1lLCAwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLnByZXNlbnRlZEZyYW1l
cywgMCk7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS53aWR0aCwgMCk7CisgICAg
YXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5oZWlnaHQsIDApOworICAgIGFzc2VydF90cnVl
KCJtZWRpYVRpbWUiIGluIG1ldGFkYXRhLCAibWVkaWFUaW1lIHNob3VsZCBiZSBwcmVzZW50Iik7
CisKKyAgICAvLyBWZXJpZnkgV2ViUlRDIG9ubHkgZmllbGRzLgorICAgIGFzc2VydF90cnVlKCJy
dHBUaW1lc3RhbXAiIGluIG1ldGFkYXRhLCAicnRwVGltZXN0YW1wIHNob3VsZCBiZSBwcmVzZW50
Iik7CisgICAgYXNzZXJ0X3RydWUoInJlY2VpdmVUaW1lIiBpbiBtZXRhZGF0YSwgInJlY2VpdmVU
aW1lIHNob3VsZCBiZSBwcmVzZW50Iik7CisgICAgLy8gY2FwdHVyZVRpbWUgaXMgbm90IGF2YWls
YWJsZSB1bnRpbCByb3VuZHRyaXAgdGltZSBlc3RpbWF0aW9uIGlzIGRvbmUuCisgICAgaWYgKGdD
YWxsYmFja0NvdW50ZXIgPiA2MCB8fCAiY2FwdHVyZVRpbWUiIGluIG1ldGFkYXRhKSB7CisgICAg
ICBhc3NlcnRfdHJ1ZSgiY2FwdHVyZVRpbWUiIGluIG1ldGFkYXRhLCAiY2FwdHVyZVRpbWUgc2hv
dWxkIGJlIHByZXNlbnQiKTsKKyAgICAgIHRlc3QuZG9uZSgpOworICAgIH0KKyAgICBlbHNlIHsK
KyAgICAgIC8vIEtlZXAgcmVxdWVzdGluZyBjYWxsYmFja3MuCisgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgncmVtb3RlLXZpZXcnKS5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHRlc3Qu
c3RlcF9mdW5jKHZlcmlmeV9wYXJhbXMpKTsKKyAgICB9CisgIH0KKworICB2YXIgdmVyaWZ5X2xv
Y2FsX21ldGFkYXRhID0gKG5vdywgbWV0YWRhdGEpID0+IHsKKyAgICBhc3NlcnRfZ3JlYXRlcl90
aGFuKG1ldGFkYXRhLmV4cGVjdGVkRGlzcGxheVRpbWUsIDApOworICAgIGFzc2VydF9ncmVhdGVy
X3RoYW4obWV0YWRhdGEucHJlc2VudGVkRnJhbWVzLCAwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90
aGFuKG1ldGFkYXRhLndpZHRoLCAwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRh
LmhlaWdodCwgMCk7CisgICAgYXNzZXJ0X3RydWUoImNhcHR1cmVUaW1lIiBpbiBtZXRhZGF0YSwg
ImNhcHR1cmVUaW1lIHNob3VsZCBhbHdheXMgYmUgcHJlc2VudCBmb3IgbG9jYWwgc291cmNlcy4i
KTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLmNhcHR1cmVUaW1lLCAwKTsKKyAg
fQorCisgIC8vIElmIHRoZSByZW1vdGUgdmlkZW8gZ2V0cyB2aWRlbyBkYXRhIHRoYXQgaW1wbGll
cyB0aGUgbmVnb3RpYXRpb24KKyAgLy8gYXMgd2VsbCBhcyB0aGUgSUNFIGFuZCBEVExTIGNvbm5l
Y3Rpb24gYXJlIHVwLgorICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVtb3RlLXZpZXcnKQor
ICAgICAgLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlZG1ldGFkYXRhJywgZnVuY3Rpb24oKSB7Cisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlbW90ZS12aWV3JykucmVxdWVzdFZpZGVvRnJh
bWVDYWxsYmFjayh0ZXN0LnN0ZXBfZnVuYyh2ZXJpZnlfcGFyYW1zKSk7CisgIH0pOworCisgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2NhbC12aWV3JykKKyAgICAgIC5hZGRFdmVudExpc3Rl
bmVyKCdsb2FkbWV0YWRhdGEnLCBmdW5jdGlvbigpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnbG9jYWwtdmlldycpLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodGVzdC5zdGVwX2Z1
bmNfZG9uZSh2ZXJpZnlfbG9jYWxfbWV0YWRhdGEpKTsKKyAgfSk7CisKKworICBmdW5jdGlvbiBn
ZXROb2lzZVN0cmVhbU9rQ2FsbGJhY2sobG9jYWxTdHJlYW0pIHsKKyAgICBnRmlyc3RDb25uZWN0
aW9uID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpOworICAgIHRlc3QuYWRkX2NsZWFudXAo
KCkgPT4gZ0ZpcnN0Q29ubmVjdGlvbi5jbG9zZSgpKTsKKyAgICBnRmlyc3RDb25uZWN0aW9uLm9u
aWNlY2FuZGlkYXRlID0gb25JY2VDYW5kaWRhdGVUb0ZpcnN0OworCisgICAgZ1NlY29uZENvbm5l
Y3Rpb24gPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24obnVsbCk7CisgICAgdGVzdC5hZGRfY2xlYW51
cCgoKSA9PiBnU2Vjb25kQ29ubmVjdGlvbi5jbG9zZSgpKTsKKyAgICBnU2Vjb25kQ29ubmVjdGlv
bi5vbmljZWNhbmRpZGF0ZSA9IG9uSWNlQ2FuZGlkYXRlVG9TZWNvbmQ7CisgICAgZ1NlY29uZENv
bm5lY3Rpb24ub250cmFjayA9IG9uUmVtb3RlVHJhY2s7CisKKyAgICBsb2NhbFN0cmVhbS5nZXRU
cmFja3MoKS5mb3JFYWNoKGZ1bmN0aW9uKHRyYWNrKSB7CisgICAgICAvLyBCaWRpcmVjdGlvbmFs
IHN0cmVhbXMgYXJlIG5lZWRlZCBpbiBvcmRlciBmb3IgY2FwdHVyZVRpbWUgdG8gYmUKKyAgICAg
IC8vIHBvcHVsYXRlZC4gVXNlIHRoZSBzYW1lIHNvdXJjZSBpbiBib3RoIGRpcmVjdGlvbnMuCisg
ICAgICBnRmlyc3RDb25uZWN0aW9uLmFkZFRyYWNrKHRyYWNrLCBsb2NhbFN0cmVhbSk7CisgICAg
ICBnU2Vjb25kQ29ubmVjdGlvbi5hZGRUcmFjayh0cmFjaywgbG9jYWxTdHJlYW0pOworICAgIH0p
OworCisgICAgZ0ZpcnN0Q29ubmVjdGlvbi5jcmVhdGVPZmZlcigpLnRoZW4ob25PZmZlckNyZWF0
ZWQsIGZhaWxlZCgnY3JlYXRlT2ZmZXInKSk7CisKKyAgICB2YXIgdmlkZW9UYWcgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnbG9jYWwtdmlldycpOworICAgIHZpZGVvVGFnLnNyY09iamVjdCA9
IGxvY2FsU3RyZWFtOworICB9OworCisgIHZhciBvbk9mZmVyQ3JlYXRlZCA9IHRlc3Quc3RlcF9m
dW5jKGZ1bmN0aW9uKG9mZmVyKSB7CisgICAgZ0ZpcnN0Q29ubmVjdGlvbi5zZXRMb2NhbERlc2Ny
aXB0aW9uKG9mZmVyKTsKKworICAgIC8vIFRoaXMgd291bGQgbm9ybWFsbHkgZ28gYWNyb3NzIHRo
ZSBhcHBsaWNhdGlvbidzIHNpZ25hbGluZyBzb2x1dGlvbi4KKyAgICAvLyBJbiBvdXIgY2FzZSwg
dGhlICJzaWduYWxpbmciIGlzIHRvIGNhbGwgdGhpcyBmdW5jdGlvbi4KKyAgICByZWNlaXZlQ2Fs
bChvZmZlci5zZHApOworICB9KTsKKworICBmdW5jdGlvbiByZWNlaXZlQ2FsbChvZmZlclNkcCkg
eworICAgIHZhciBwYXJzZWRPZmZlciA9IG5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb24oeyB0eXBl
OiAnb2ZmZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZHA6IG9mZmVyU2RwIH0pOworICAgIGdTZWNvbmRDb25uZWN0aW9uLnNldFJlbW90ZURl
c2NyaXB0aW9uKHBhcnNlZE9mZmVyKTsKKworICAgIGdTZWNvbmRDb25uZWN0aW9uLmNyZWF0ZUFu
c3dlcigpLnRoZW4ob25BbnN3ZXJDcmVhdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmYWlsZWQoJ2NyZWF0ZUFuc3dlcicpKTsKKyAgfTsKKworICB2YXIgb25BbnN3ZXJD
cmVhdGVkID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oYW5zd2VyKSB7CisgICAgZ1NlY29uZENv
bm5lY3Rpb24uc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworCisgICAgLy8gU2ltaWxhcmx5
LCB0aGlzIHdvdWxkIGdvIG92ZXIgdGhlIGFwcGxpY2F0aW9uJ3Mgc2lnbmFsaW5nIHNvbHV0aW9u
LgorICAgIGhhbmRsZUFuc3dlcihhbnN3ZXIuc2RwKTsKKyAgfSk7CisKKyAgZnVuY3Rpb24gaGFu
ZGxlQW5zd2VyKGFuc3dlclNkcCkgeworICAgIHZhciBwYXJzZWRBbnN3ZXIgPSBuZXcgUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uKHsgdHlwZTogJ2Fuc3dlcicsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZHA6IGFuc3dlclNkcCB9KTsKKyAgICBnRmly
c3RDb25uZWN0aW9uLnNldFJlbW90ZURlc2NyaXB0aW9uKHBhcnNlZEFuc3dlcik7CisgIH07CisK
KyAgdmFyIG9uSWNlQ2FuZGlkYXRlVG9GaXJzdCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2
ZW50KSB7CisgICAgLy8gSWYgZXZlbnQuY2FuZGlkYXRlIGlzIG51bGwgPSBubyBtb3JlIGNhbmRp
ZGF0ZXMuCisgICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgeworICAgICAgZ1NlY29uZENvbm5lY3Rp
b24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7CisgICAgfQorICB9KTsKKworICB2
YXIgb25JY2VDYW5kaWRhdGVUb1NlY29uZCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50
KSB7CisgICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgeworICAgICAgZ0ZpcnN0Q29ubmVjdGlvbi5h
ZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKKyAgICB9CisgIH0pOworCisgIHZhciBv
blJlbW90ZVRyYWNrID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKKyAgICB2YXIg
dmlkZW9UYWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVtb3RlLXZpZXcnKTsKKyAgICBp
ZiAoIXZpZGVvVGFnLnNyY09iamVjdCkgeworICAgICAgdmlkZW9UYWcuc3JjT2JqZWN0ID0gZXZl
bnQuc3RyZWFtc1swXTsKKyAgICB9CisgIH0pOworCisgIC8vIFJldHVybnMgYSBzdWl0YWJsZSBl
cnJvciBjYWxsYmFjay4KKyAgZnVuY3Rpb24gZmFpbGVkKGZ1bmN0aW9uX25hbWUpIHsKKyAgICBy
ZXR1cm4gdGVzdC51bnJlYWNoZWRfZnVuYygnV2ViUlRDIGNhbGxlZCBlcnJvciBjYWxsYmFjayBm
b3IgJyArIGZ1bmN0aW9uX25hbWUpOworICB9CisKKyAgLy8gVGhpcyBmdW5jdGlvbiBzdGFydHMg
dGhlIHRlc3QuCisgIHRlc3Quc3RlcChmdW5jdGlvbigpIHsKKyAgICBnZXROb2lzZVN0cmVhbSh7
IHZpZGVvOiB0cnVlLCBhdWRpbzogdHJ1ZSB9KQorICAgICAgLnRoZW4odGVzdC5zdGVwX2Z1bmMo
Z2V0Tm9pc2VTdHJlYW1Pa0NhbGxiYWNrKSwgZmFpbGVkKCdnZXROb2lzZVN0cmVhbScpKTsKKyAg
fSk7Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2suaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTQ0MDQxNDNmYTQwOGViYmI4ZjQ5Y2MzMTgwZTA2NWQyMDBmZmE0YQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLmh0bWwKQEAgLTAsMCAr
MSwxNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8dGl0bGU+VGVzdCB0aGUgYmFzaWNz
IG9mIHRoZSB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKCkgQVBJLjwvdGl0bGU+Cis8
Ym9keT48L2JvZHk+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9tZWRpYS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgordmFyIHRlc3RWaWRlbyA9IHsKKyAgdXJsOiBnZXRWaWRlb1VSSSgnL21lZGlhL21vdmllXzUn
KSwKKyAgaGVpZ2h0OiAyNDAsCisgIHdpZHRoOiAzMjAsCit9CisKK3ZhciBhbHRUZXN0VmlkZW8g
PSB7CisgIHVybDogZ2V0VmlkZW9VUkkoJy9tZWRpYS9jb3VudGluZycpLAorICBoZWlnaHQ6IDI0
MCwKKyAgd2lkdGg6IDMyMCwKK30KKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgbGV0
IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKKworICAgIGxldCBpZCA9IHZpZGVvLnJlcXVlc3RWaWRl
b0ZyYW1lQ2FsbGJhY2soCisgICAgICB0LnN0ZXBfZnVuY19kb25lKCh0aW1lLCBtZXRhZGF0YSkg
PT4geworICAgICAgICBhc3NlcnRfdHJ1ZSh0aW1lID4gMCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHMobWV0YWRhdGEuaGVpZ2h0LCB0ZXN0VmlkZW8uaGVpZ2h0KTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhtZXRhZGF0YS53aWR0aCwgdGVzdFZpZGVvLndpZHRoKTsKKyAgICAgIH0pCisgICAgKTsK
KworICAgIGFzc2VydF90cnVlKGlkID4gMCk7CisKKyAgICB2aWRlby5zcmMgPSB0ZXN0VmlkZW8u
dXJsOworICAgIHZpZGVvLnBsYXkoKTsKKworfSwgJ1Rlc3Qgd2UgY2FuIHJlZ2lzdGVyIGEgdmlk
ZW8uclZGQyBjYWxsYmFjay4nKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgbGV0
IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKKworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2Fs
bGJhY2soCisgICAgICB0LnN0ZXBfZnVuYyh2aWRlb19ub3cgPT4geworICAgICAgICAvLyBRdWV1
ZSBhIGNhbGwgdG8gd2luZG93LnJBRiwgYW5kIG1ha2Ugc3VyZSBpdCBpcyBleGVjdXRlZCB3aXRo
aW4gdGhlCisgICAgICAgIC8vIHNhbWUgdHVybiBvZiB0aGUgZXZlbnQgbG9vcCAod2l0aCB0aGUg
c2FtZSAndGltZScgcGFyYW1ldGVyKS4KKyAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25G
cmFtZSggdC5zdGVwX2Z1bmNfZG9uZSggd2luZG93X25vdyA9PiB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyh2aWRlb19ub3csIHdpbmRvd19ub3cpOworICAgICAgICB9KSk7CisgICAgICB9KQor
ICAgICk7CisKKyAgICB2aWRlby5zcmMgPSB0ZXN0VmlkZW8udXJsOworICAgIHZpZGVvLnBsYXko
KTsKKworfSwgJ1Rlc3QgdmlkZW8uclZGQyBjYWxsYmFja3MgcnVuIGJlZm9yZSB3aW5kb3cuckFG
IGNhbGxiYWNrcy4nKTsKKworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlk
ZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQodmlkZW8pOworCisgICAgbGV0IGlkID0gdmlkZW8ucmVxdWVzdFZpZGVvRnJh
bWVDYWxsYmFjaygKKyAgICAgIHQuc3RlcF9mdW5jKF8gPT4geworICAgICAgICBhc3NlcnRfdW5y
ZWFjaGVkKCJDYW5jZWxsZWQgY2FsbGJhY2tzIHNob3VsZG4ndCBiZSBleGVjdXRlZCIpCisgICAg
ICB9KQorICAgICk7CisKKyAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soaWQpOwor
CisgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygKKyAgICAgIHQuc3RlcF9mdW5j
KF8gPT4geworICAgICAgICAvLyBBdCB0aGlzIHBvaW50LCB0aGUgb3RoZXIgY2FsbGJhY2sgc2hv
dWxkbid0IGhhdmUgZmlyZWQsIGJ1dAorICAgICAgICAvLyBnaXZlIGl0IHNvbWUgbW9yZSB0aW1l
IGFuZCByZWFsbHkgbWFrZSBzdXJlIGl0IGRvZXNuJ3QsIGJ5IGdvaW5nCisgICAgICAgIC8vIHRo
cm91Z2h0IHRoZSBldmVudCBsb29wIG9uY2UgbW9yZS4KKyAgICAgICAgdC5zdGVwX3RpbWVvdXQo
KCkgPT4geyB0LmRvbmUoKTsgfSwgMCk7CisgICAgICB9KQorICAgICk7CisKKyAgICB2aWRlby5z
cmMgPSB0ZXN0VmlkZW8udXJsOworICAgIHZpZGVvLnBsYXkoKTsKK30sICdUZXN0IHdlIGNhbiBj
YW5jZWwgYSB2aWRlby5yVkZDIHJlcXVlc3QuJyk7CisKK3Rlc3QoZnVuY3Rpb24odCkgeworICAg
IGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICAvLyByZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrKCkgZXhwZWN0cyAxIGZ1bmN0aW9uIGFzIGEgcGFyYW1ldGVyLgorICAgIGFzc2VydF90
aHJvd3NfanMoVHlwZUVycm9yLCBfID0+IHsgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
aygpIH0gKTsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgXyA9PiB7IHZpZGVvLnJl
cXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soMCkgfSk7CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBl
RXJyb3IsIF8gPT4geyB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKCJmb28iKSB9KTsK
KworICAgIC8vIGNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjaygpIGV4cGVjdHMgMSBudW1iZXIgYXMg
YSBwYXJhbWV0ZXIKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgXyA9PiB7IHZpZGVv
LmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjaygpIH0gKTsKKworICAgIC8vIEludmFsaWQgY2FsbHMg
YXJlIGp1c3Qgbm8tb3BzCisgICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKF8gPT4g
e30pOworICAgIHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayhOYU4pOworICAgIHZpZGVv
LmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjaygiZm9vIik7CisgICAgdmlkZW8uY2FuY2VsVmlkZW9G
cmFtZUNhbGxiYWNrKDEyMzQ1KTsKKyAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2so
LTEpOworCit9LCAnVGVzdCBpbnZhbGlkIGNhbGxzIHRvIHRoZSB2aWRlby5yVkZDIEFQSS4nKTsK
KworcHJvbWlzZV90ZXN0KGFzeW5jIGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8gPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQodmlkZW8pOworCisgICAgbGV0IGZpcnN0X3dpZHRoID0gMDsKKyAgICBsZXQgZmlyc3RfaGVp
Z2h0ID0gMDsKKworICAgIHZpZGVvLnNyYyA9IHRlc3RWaWRlby51cmw7CisKKyAgICBhd2FpdCB2
aWRlby5wbGF5KCk7CisKKyAgICAvLyBTd2l0Y2ggdG8gYW5kIGZyb20gYSBzZWNvbmQgdmlkZW8s
IGFuZCBtYWtlIHN1cmUgd2UgZ2V0IHJWRkMgY2FsbHMgYXQKKyAgICAvLyBlYWNoIHN0ZXAuCisg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgIGxldCBv
blJldHVyblRvT3JpZ2luYWxWaWRlbyA9IHQuc3RlcF9mdW5jKChub3csIG1ldGFkYXRhKSA9PiB7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoZmlyc3Rfd2lkdGgsIG1ldGFkYXRhLndpZHRoKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhmaXJzdF9oZWlnaHQsIG1ldGFkYXRhLmhlaWdodCk7CisKKyAg
ICAgICAgcmVzb2x2ZSgpOworICAgICAgfSk7CisKKyAgICAgIGxldCBvbkFsdFZpZGVvRmlyc3RG
cmFtZSA9IHQuc3RlcF9mdW5jKChub3csIG1ldGFkYXRhKSA9PiB7CisgICAgICAgIC8vIFRoZSB2
aWRlb3MgaGF2ZSBkaWZmZXJlbnQgc2l6ZXMsIGFuZCBzaG91bGRuJ3QgbWF0Y2guCisgICAgICAg
IGFzc2VydF9ub3RfZXF1YWxzKGZpcnN0X3dpZHRoLCBtZXRhZGF0YS53aWR0aCk7CisgICAgICAg
IGFzc2VydF9ub3RfZXF1YWxzKGZpcnN0X2hlaWdodCwgbWV0YWRhdGEuaGVpZ2h0KTsKKworICAg
ICAgICAvLyBTd2l0aCBiYWNrIHRvIHRoZSBvcmlnaW5hbCB2aWRlby4KKyAgICAgICAgdmlkZW8u
cmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayhvblJldHVyblRvT3JpZ2luYWxWaWRlbyk7CisgICAg
ICAgIHZpZGVvLnNyYyA9IHRlc3RWaWRlby51cmw7CisgICAgICB9KTsKKworICAgICAgbGV0IG9u
Rmlyc3RGcmFtZSA9IHQuc3RlcF9mdW5jKChub3csIG1ldGFkYXRhKSA9PiB7CisgICAgICAgIGZp
cnN0X3dpZHRoID0gbWV0YWRhdGEud2lkdGg7CisgICAgICAgIGZpcnN0X2hlaWdodCA9IG1ldGFk
YXRhLmhlaWdodDsKKworICAgICAgICAvLyBDYWxsYmFja3Mgc2hvdWxkIHBlcnNpc3QgYWZ0ZXIg
Y2hhbmdpbmcgdGhlIHNvdXJjZSB0byB0aGUgYWx0IHZpZGVvLgorICAgICAgICB2aWRlby5yZXF1
ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKG9uQWx0VmlkZW9GaXJzdEZyYW1lKTsKKyAgICAgICAgdmlk
ZW8uc3JjID0gYWx0VGVzdFZpZGVvLnVybDsKKyAgICAgIH0pCisKKyAgICAgIHZpZGVvLnJlcXVl
c3RWaWRlb0ZyYW1lQ2FsbGJhY2sob25GaXJzdEZyYW1lKTsKKyAgICB9KTsKK30sICdUZXN0IHZp
ZGVvLnJWRkMgZG9lcyBub3Qgc3RvcCB3aGVuIHN3aXRjaGluZyBzb3VyY2VzLicpOworCis8L3Nj
cmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy93M2MtaW1wb3J0LmxvZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hMTZmMTVmZGIzNzYzZmQzZDQ3NmE2YWJhNTgyNjU5M2M4YzgxY2RjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy92aWRlby1ydmZjL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjYgQEAKK1RoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgor
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9NRVRB
LnltbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8t
cnZmYy9SRUFETUUubWQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53aW5kb3cuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1j
YWxsYmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUt
Y2FsbGJhY2stZG9tLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHIt
c2Vzc2lvbi5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8t
cnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qt
dmlkZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFt
ZS1jYWxsYmFjay5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2sy
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggODhmNzk5MjlmYzljMmI1YzNiYmU4MWUzODcwOWFhODBlZmYyYzU2Yi4u
ZTEwNjllZGVjZjk3ZTJlZDc3NmI4NzdkNDY4NjM1NTA5NjE3Y2ZlZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTM4LDYgKzEzOCwxNSBA
QCBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY25hbWUtY2xvYWtpbmctdG9wLW5v
LWNuYW1lLXN1Yi0xcC1jbmFtZS5odG1sCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvY25hbWUtY2xvYWtpbmctdG9wLW5vLWNuYW1lLXN1Yi0zcC1jbmFtZS5odG1sIFsgUGFzcyBd
CiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY25hbWUtY2xvYWtpbmctdG9wLW5v
LWNuYW1lLXN1Yi1uby1jbmFtZS5odG1sIFsgUGFzcyBdCiAKK2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYyBbIFBhc3MgXQorIyBUaW1pbmcgb3V0IHRlc3RzIHVudGls
IHdlIGFkZCByZWd1bGFyIHZpZGVvIHN0cmVhbWluZyBiYWNrZW5kIHN1cHBvcnQuCitpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1j
YWxsYmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxs
YmFjay1kb20uaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92
aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24u
aHR0cHMuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRl
by1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwuaHRtbCBbIFNraXAg
XQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNr
Lmh0bWwgWyBTa2lwIF0KKwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyBF
bmQgcGxhdGZvcm0tc3BlY2lmaWMgZGlyZWN0b3JpZXMuCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggMTRiY2Q3M2FlYzE1Y2I4ZTQ1OTMwYzkwY2IwZGI3MWJhYzdlNjZhNy4uNWUz
NWU4MWE1NjIzY2FkZTljMDJlOWEzMTI2MDQ2ZDVkMDdlMDk1NiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTE3LDYgKzExNywxNSBAQCBm
YXN0L2Zvcm1zL2ZpbGUvZW50cmllcy1hcGkvaW1hZ2Utbm8tdHJhbnNjb2RlLW9wZW4tcGFuZWwu
aHRtbCBbIFBhc3MgXQogCiBzdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS10cmFuc2FjdGlvbi1j
eWNsZS5odG1sIFsgUGFzcyBdCiAKK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlk
ZW8tcnZmYyBbIFBhc3MgXQorIyBUaW1pbmcgb3V0IHRlc3RzIHVudGlsIHdlIGFkZCByZWd1bGFy
IHZpZGVvIHN0cmVhbWluZyBiYWNrZW5kIHN1cHBvcnQuCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUt
eHItc2Vzc2lvbi5odHRwcy5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kb20uaHRtbCBb
IFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVl
c3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMuaHRtbCBbIFNr
aXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qt
dmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJh
Y2stcmVwZWF0aW5nLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLmh0bWwgWyBTa2lwIF0K
KwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyBFbmQgcGxhdGZvcm0tc3Bl
Y2lmaWMgZGlyZWN0b3JpZXMuCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDUyODc3OTc3OTc1NWIyNTc2YWZkODMzZmMxMTQ3ZTk3NTkzNGUxZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZj
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworCitQQVNTIFZhbGlkYXRlIGNhbGxiYWNr
cyBhbmQgbWV0YWRhdGEgZm9yIHBlZXIgY29ubmVjdGlvbiB0cmFja3MKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2VicnRjL3BlZXJDb25uZWN0aW9uLXJ2ZmMuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU3NzZkODJjNWU2
YWY2ZWMzZWQ2NThjMThhNmZiMjgzNDAzZjI5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZjLmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorICAgICAgICA8dGl0bGU+VGVzdGluZyBydmZjIG9uIHBlZXIgY29ubmVjdGlvbiBz
dHJlYW1zPC90aXRsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0icm91dGlu
ZXMuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHZpZGVv
IGlkPSJ2aWRlbyIgYXV0b3BsYXk9IiI+PC92aWRlbz4KKyAgICAgICAgPHNjcmlwdD4KK2FzeW5j
IGZ1bmN0aW9uIGdyYWJOZXh0TWV0YWRhdGEodmlkZW8pCit7CisgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgY29uc3QgaWRlbnRpZmllciA9IHZp
ZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKG5vdywgbWV0YWRhdGEpID0+IHsKKyAgICAg
ICAgICAgIHJlc29sdmUobWV0YWRhdGEpOworICAgICAgICAgICAgdmlkZW8uY2FuY2VsVmlkZW9G
cmFtZUNhbGxiYWNrKGlkZW50aWZpZXIpOworICAgICAgICB9KTsKKyAgICAgICAgc2V0VGltZW91
dChyZWplY3QsIDUwMDApOworICAgIH0pOworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3Qp
ID0+IHsKKyAgICBjb25zdCBsb2NhbFN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmlj
ZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzogeyB3aWR0aDogNjQwLCBoZWlnaHQ6IDQ4MCB9IH0pOwor
ICAgIGNvbnN0IHJlbW90ZVN0cmVhbSA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWpl
Y3QpID0+IHsKKyAgICAgICAgY3JlYXRlQ29ubmVjdGlvbnMoKGZpcnN0Q29ubmVjdGlvbikgPT4g
eworICAgICAgICAgICAgcGMxID0gZmlyc3RDb25uZWN0aW9uOworICAgICAgICAgICAgY29uc3Qg
c2VuZGVyID0gZmlyc3RDb25uZWN0aW9uLmFkZFRyYWNrKGxvY2FsU3RyZWFtLmdldFZpZGVvVHJh
Y2tzKClbMF0sIGxvY2FsU3RyZWFtKTsKKyAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+
IHsKKyAgICAgICAgICAgIHBjMiA9IHNlY29uZENvbm5lY3Rpb247CisgICAgICAgICAgICBzZWNv
bmRDb25uZWN0aW9uLm9udHJhY2sgPSAodHJhY2tFdmVudCkgPT4geworICAgICAgICAgICAgICAg
IHJlc29sdmUodHJhY2tFdmVudC5zdHJlYW1zWzBdKTsKKyAgICAgICAgICAgIH07CisgICAgICAg
IH0pOworICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwg
NTAwMCk7CisgICAgfSk7CisKKyAgICB2aWRlby5zcmNPYmplY3QgPSByZW1vdGVTdHJlYW07Cisg
ICAgYXdhaXQgdmlkZW8ucGxheSgpOworCisgICAgbGV0IG1ldGFkYXRhID0gYXdhaXQgZ3JhYk5l
eHRNZXRhZGF0YSh2aWRlbyk7CisgICAgYXNzZXJ0X2VxdWFscyhtZXRhZGF0YS53aWR0aCwgNjQw
KTsKKyAgICBhc3NlcnRfZXF1YWxzKG1ldGFkYXRhLmhlaWdodCwgNDgwKTsKKyAgICBhc3NlcnRf
Z3JlYXRlcl90aGFuKG1ldGFkYXRhLnByZXNlbnRlZEZyYW1lcywgMCk7CisgICAgY29uc3QgcHJl
c2VudGVkRnJhbWVzID0gbWV0YWRhdGEucHJlc2VudGVkRnJhbWVzOworCisgICAgYXdhaXQgbG9j
YWxTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXS5hcHBseUNvbnN0cmFpbnRzKHt3aWR0aDogMzIw
fSk7CisKKyAgICBsZXQgY291bnRlciA9IDA7CisgICAgd2hpbGUgKCsrY291bnRlciA8IDEwMCAm
JiBtZXRhZGF0YS53aWR0aCAhPT0gMzIwKSB7CisgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJl
c29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCA1MCkpOworICAgICAgICBtZXRhZGF0YSA9IGF3
YWl0IGdyYWJOZXh0TWV0YWRhdGEodmlkZW8pOworICAgIH0KKyAgICBhc3NlcnRfZXF1YWxzKG1l
dGFkYXRhLndpZHRoLCAzMjApOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEucHJl
c2VudGVkRnJhbWVzLCBwcmVzZW50ZWRGcmFtZXMpOworfSwgIlZhbGlkYXRlIGNhbGxiYWNrcyBh
bmQgbWV0YWRhdGEgZm9yIHBlZXIgY29ubmVjdGlvbiB0cmFja3MiKTsKKyAgICAgICAgPC9zY3Jp
cHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441594</attachid>
            <date>2021-10-18 06:01:38 -0700</date>
            <delta_ts>2021-10-18 07:46:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231803-20211018150136.patch</filename>
            <type>text/plain</type>
            <size>97376</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdjZDU5NmY4NzJlYzA5NDQ1ZGQyMmVh
ZDhhOTZhOTk1MDc3MmI0N2MuLjg5MGI1NmE4NGM1NWU3ZjdkYmM4NjMyYmQ3MGJiNTYyMmM1ODg4
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTAtMTggIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrIEFQSSBhbmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwMwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorCiAyMDIxLTEw
LTE1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXQg
TWFuYWdlZCBOb3RpZmljYXRpb25zOiBTa2VsZXRvbiBOb3RpZmljYXRpb25Qcm92aWRlci4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCAyYjNhMjVhMjYwYTg3Zjc1NDIyOTQ2NjcyYWY4Yzg5MjhlNTBmMTk4Li4zNGJm
NTEyZDc0OTBlYWEwODk0MDg0NWY3MWZhMDg4NmI1YTllYmNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTQgQEAKKzIwMjEtMTAtMTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSBh
bmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBXZWJJREwgdG8gZXhwb3Nl
IGh0dHBzOi8vd2ljZy5naXRodWIuaW8vdmlkZW8tcnZmYy8gQVBJLgorICAgICAgICBQdXQgdGhl
bSBiZWhpbmQgYSBydW50aW1lIGZsYWcuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBh
bGdvcml0aG1zLCBpbmNsdWRpbmcgdGhlIGludGVncmF0aW9uIHdpdGggdGhlICd1cGRhdGUgdGhl
IHJlbmRlcmluZycgYWxnb3JpdGhtLgorICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciB2
aWRlbyBlbGVtZW50cyBiYWNrZWQgYnkgTWVkaWFTdHJlYW0gY29udGVudC4KKyAgICAgICAgV2Ug
ZXhwb3NlIGEgbGltaXRlZCBzZXQgb2YgbWV0YWRhdGEgY3VycmVudGx5LCBmb2xsb3ctdXAgcGF0
Y2hlcyBzaG91bGQgYWRkIHN1cHBvcnQgZm9yIG90aGVyIHZpZGVvIGJhY2tlbmRzIGFuZCBtb3Jl
IG1ldGFkYXRhLgorICAgICAgICBUaGlzIHN1cHBvcnQgc2hvdWxkIHN0aWxsIGVuYWJsZSB0byBv
cHRpbWl6ZSBhIGJpdCBNZWRpYVN0cmVhbVRyYWNrIC0+IGNhbnZhcyBwaXBlbGluZXMuCisKKyAg
ICAgICAgVGVzdHM6IGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMuaHRtbAorICAg
ICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lk
bGhhcm5lc3Mud2luZG93Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9y
ZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRv
bS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5o
dHRwcy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sCisg
ICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
cmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1yZXBlYXRpbmcuaHRtbAorICAgICAgICAgICAg
ICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1l
LWNhbGxiYWNrLmh0bWwKKyAgICAgICAgICAgICAgIHdlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZj
Lmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrLmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL1ZpZGVvRnJh
bWVNZXRhZGF0YS5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvVmlkZW9GcmFtZVJlcXVlc3RD
YWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJh
Y2suaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL1ZpZGVvRnJhbWVNZXRhZGF0YS5oOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisKIDIwMjEtMTAtMTggIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFsgd2syIF0gMiBwYWdlLWNhY2hlIGxh
eW91dC10ZXN0cyBhcmUgZmxha2V5IGNyYXNoaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRlZjdhODJmYzgwNzEz
Y2U5M2EyZWM0YWI0NGQ0ZTNhY2IwMjQ3ZjEuLmU1Y2Q2ZjljYjQwMGExZTM2YjBiNzk1ZTIwMDdj
MzUzNTcwOWQ0ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMTAtMTggIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBy
ZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSBhbmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBi
YWNrZW5kIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMTgwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0ZW1wb3JhcnkgZ2V0dGVyL3NldHRlciBvZiBydmZjIGZlYXR1cmUgZmxhZy4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAg
KFdLUHJlZmVyZW5jZXNTZXRSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZCk6CisgICAg
ICAgIChXS1ByZWZlcmVuY2VzR2V0UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmg6CisKIDIwMjEtMTAt
MTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEd1YXJhbnRl
ZSBvcmRlciBvZiBXZWJTb2NrZXQgZXZlbnRzIGluIGNhc2Ugb2YgYmVpbmcgcmVzdW1lZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBkOWUzNmMxOWVkMzlmYTI5ODc3ZDM2ZGQ1YTFl
ZDgzN2MyNDUwYmU1Li42OWQ0MmNhMTE2MGI4NDliNDQxMTllYzY3NjMyYjNmMGExZWM1NzljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTExNSw2ICsxMTE1LDE4IEBAIFJlcXVl
c3RTdWJtaXRFbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitS
ZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJl
YWRhYmxlTmFtZTogIlJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2siCisgIGh1bWFuUmVhZGFibGVE
ZXNjcmlwdGlvbjogIkVuYWJsZSBSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSIKKyAgZGVm
YXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVs
dDogZmFsc2UKKwogIyBGSVhNRTogVGhpcyBpcyBvbiBieSBkZWZhdWx0IGluIFdlYktpdDIuIFBl
cmhhcHMgd2Ugc2hvdWxkIGNvbnNpZGVyIHR1cm5pbmcgaXQgb24gZm9yIFdlYktpdExlZ2FjeSBh
cyB3ZWxsLgogUmVzaXplT2JzZXJ2ZXJFbmFibGVkOgogICB0eXBlOiBib29sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDFmMTQwMjBkZGM0N2M5N2Q3OGE3ODcwMDRiMzczMGYwZjk1NDBiZDEuLmU4
ZGQzYzgzZGQ3OTA0YjYyODJjNWE0ZDcxY2RjMTU4MjUxYjI5NGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0xMDM3LDYgKzEwMzcsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwog
ICAgIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwKICAgICBodG1sL0hUTUxVTGlzdEVsZW1lbnQu
aWRsCiAgICAgaHRtbC9IVE1MVW5rbm93bkVsZW1lbnQuaWRsCisgICAgaHRtbC9IVE1MVmlkZW9F
bGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRsCiAgICAgaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmlkbAogICAgIGh0bWwvSW1hZ2VCaXRtYXAuaWRsCiAgICAgaHRtbC9JbWFnZUJpdG1h
cE9wdGlvbnMuaWRsCkBAIC0xMDUyLDYgKzEwNTMsOCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lE
TF9GSUxFUwogICAgIGh0bWwvVGltZVJhbmdlcy5pZGwKICAgICBodG1sL1VSTFNlYXJjaFBhcmFt
cy5pZGwKICAgICBodG1sL1ZhbGlkaXR5U3RhdGUuaWRsCisgICAgaHRtbC9WaWRlb0ZyYW1lTWV0
YWRhdGEuaWRsCisgICAgaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbAogICAgIGh0
bWwvVm9pZENhbGxiYWNrLmlkbAogCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzQ29tcG9zaXRpbmcu
aWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApp
bmRleCAzNDliYjA0YzdkMmI0NWM4NWIzMzUzNzAxYzk3ZTRkZjE3ZmIyNmI3Li5lMmRjZjQzYzFh
YTE1NjRjYjc2NDM5MjlkZTczYmYxMjJkMGZhNDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwMDksNiArMTAwOSw3IEBAICQoUFJP
SkVDVF9ESVIpL2h0bWwvSFRNTExpbmtFbGVtZW50LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9I
VE1MTWFwRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50
LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0Lmlk
bAorJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWVkaWFFbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1l
Q2FsbGJhY2suaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsCiAk
KFBST0pFQ1RfRElSKS9odG1sL0hUTUxNZW51RWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0
bWwvSFRNTE1lbnVJdGVtRWxlbWVudC5pZGwKQEAgLTEwNDgsNiArMTA0OSw3IEBAICQoUFJPSkVD
VF9ESVIpL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRN
TFRyYWNrRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5p
ZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTFVua25vd25FbGVtZW50LmlkbAorJChQUk9KRUNU
X0RJUikvaHRtbC9IVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRs
CiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaWRsCiAkKFBST0pFQ1RfRElS
KS9odG1sL0ltYWdlQml0bWFwLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9JbWFnZUJpdG1hcE9w
dGlvbnMuaWRsCkBAIC0xMDYzLDYgKzEwNjUsOCBAQCAkKFBST0pFQ1RfRElSKS9odG1sL1RleHRN
ZXRyaWNzLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9UaW1lUmFuZ2VzLmlkbAogJChQUk9KRUNU
X0RJUikvaHRtbC9VUkxTZWFyY2hQYXJhbXMuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL1ZhbGlk
aXR5U3RhdGUuaWRsCiskKFBST0pFQ1RfRElSKS9odG1sL1ZpZGVvRnJhbWVNZXRhZGF0YS5pZGwK
KyQoUFJPSkVDVF9ESVIpL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwKICQoUFJP
SkVDVF9ESVIpL2h0bWwvVm9pZENhbGxiYWNrLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9XZWJL
aXRNZWRpYUtleUVycm9yLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9jYW52YXMvQU5HTEVJbnN0
YW5jZWRBcnJheXMuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CmluZGV4IDk3NjIzMTRhYjJlZDZiMzI4ODViN2Q2MzI2MmRkMjEyMjhkMzYz
YmEuLjhjYWZhMWU4NGM5Nzk0Y2VkOTgzMmI1ZGI5ZDc4OWE2YmQwM2Q5MDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC05OTUsNiAr
OTk1LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNI
VE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0LmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxl
bWVudCtSZW1vdGVQbGF5YmFjay5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudCtSZW1vdGVQbGF5YmFjay5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZWRpYUVsZW1lbnQr
UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
SFRNTE1lZGlhRWxlbWVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZW51RWxlbWVudC5jcHAKQEAgLTEwNzUsNiArMTA3
Nyw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRN
TFVua25vd25FbGVtZW50LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNIVE1MVW5rbm93bkVsZW1lbnQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVmlkZW9FbGVtZW50K1BpY3R1cmVJblBpY3R1cmUu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxW
aWRlb0VsZW1lbnQrUGljdHVyZUluUGljdHVyZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxWaWRlb0VsZW1lbnQrUmVxdWVzdFZpZGVvRnJhbWVD
YWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFZpZGVvRWxlbWVudC5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFZp
ZGVvRWxlbWVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0hhc2hDaGFuZ2VFdmVudC5jcHAKQEAgLTIzMDcsNiArMjMxMSwxMCBAQCAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZhbGlkaXR5U3RhdGUuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZhbGlkaXR5U3Rh
dGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWaWRl
b0NvbmZpZ3VyYXRpb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1ZpZGVvQ29uZmlndXJhdGlvbi5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZpZGVvRnJhbWVNZXRhZGF0YS5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmlkZW9GcmFtZU1ldGFkYXRhLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmlkZW9GcmFt
ZVJlcXVlc3RDYWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZpZGVvUGxheWJhY2tRdWFsaXR5LmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWaWRlb1BsYXli
YWNrUXVhbGl0eS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1ZpZGVvVHJhY2srTWVkaWFTb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCAxNTk5NGFiYzIyMWE3NjU4NDljNGE1OTBjNDk2ZGYxNjAyOTRhYTE0Li5jMTIxN2Ez
YzU0Y2ZmZGFkNjA4ZmY5MzZmMDAyMDk3YmEzNWE1NzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTg5Nyw2ICs4OTcsNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQo
V2ViQ29yZSkvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1s
L0hUTUxVbmtub3duRWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxWaWRlb0VsZW1lbnQrUmVxdWVz
dFZpZGVvRnJhbWVDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9JbWFnZUJpdG1h
cC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9JbWFnZUJpdG1hcE9wdGlvbnMuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2h0bWwvSW1hZ2VEYXRhLmlkbCBcCkBAIC05MTEsNiArOTEyLDggQEAgSlNf
QklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvVGltZVJhbmdlcy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvaHRtbC9VUkxTZWFyY2hQYXJhbXMuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvVmFsaWRpdHlTdGF0ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9WaWRlb0ZyYW1l
TWV0YWRhdGEuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxs
YmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9Wb2lkQ2FsbGJhY2suaWRsIFwKICAgICAk
KFdlYkNvcmUpL2h0bWwvV2ViS2l0TWVkaWFLZXlFcnJvci5pZGwgXAogICAgICQoV2ViQ29yZSkv
aHRtbC9jYW52YXMvQU5HTEVJbnN0YW5jZWRBcnJheXMuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmlu
ZGV4IGIwNjU3ZTFjYzlkZTU5YjA5Mjk4NTlkNDkxNzJlZjE5Y2ZkOGU2MzEuLjEyMTJkYTRhNjM0
YjJiMWI5ZWJlMWRiY2YxZTRiYmUxMzM2YWUxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNzU4
LDYgKzc1OCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBo
dG1sL1VSTERlY29tcG9zaXRpb24uaAogICAgIGh0bWwvVVJMUmVnaXN0cnkuaAogICAgIGh0bWwv
VmFsaWRpdHlTdGF0ZS5oCisgICAgaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmgKICAg
ICBodG1sL1ZvaWRDYWxsYmFjay5oCiAKICAgICBodG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRl
cmluZ0NvbnRleHRTZXR0aW5ncy5oCkBAIC0xMTgxLDYgKzExODIsNyBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vVXNlckFnZW50LmgKICAgICBw
bGF0Zm9ybS9Vc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmgKICAgICBwbGF0Zm9ybS9WYWxp
ZGF0aW9uQnViYmxlLmgKKyAgICBwbGF0Zm9ybS9WaWRlb0ZyYW1lTWV0YWRhdGEuaAogICAgIHBs
YXRmb3JtL1dlYkdMU3RhdGVUcmFja2VyLmgKICAgICBwbGF0Zm9ybS9XaWRnZXQuaAogICAgIHBs
YXRmb3JtL1dpbmRvd3NLZXlib2FyZENvZGVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMTNmNjEyMTg1
ODc3OTMyZTVkMjdhMjMwMzg3MTlhYmIzMjRmODI0ZC4uY2U5NjBkNTA1NjhjM2Y0OGU5OGJmZWFh
ZWI0MTA5YjRjY2Q0MjdmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTM3MjcsNiArMzcyNyw4IEBAIEpT
VlRUUmVnaW9uLmNwcAogSlNWVFRSZWdpb25MaXN0LmNwcAogSlNWYWxpZGl0eVN0YXRlLmNwcAog
SlNWaWRlb0NvbmZpZ3VyYXRpb24uY3BwCitKU1ZpZGVvRnJhbWVNZXRhZGF0YS5jcHAKK0pTVmlk
ZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5jcHAKIEpTVmlkZW9QbGF5YmFja1F1YWxpdHkuY3BwCiBK
U1ZpZGVvVHJhY2suY3BwCiBKU1ZpZGVvVHJhY2tMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE3MmJjZmU2MTlmYjAy
MGUxZWNlZmZkYjZlMmU2MTM0ODQyMGQ3MTcuLjc5MjNlMzE0MjUzZjdmODA3OGQ5Yjg2NDYzODRh
OTJhOGM0YjYwNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTExODIsNiArMTE4Miw4IEBACiAJCTQxOEZDQkMxMjcwNkU0RkIw
MEY5NkVDQSAvKiBQdXNoRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxOEZDQkJEMjcwNkU0RjcwMEY5NkVDQSAvKiBQdXNoRXZlbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MThGQ0JDMjI3
MDZFNTAxMDBGOTZFQ0EgLyogUHVzaEV2ZW50SW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4RkNCQkYyNzA2RTRGODAwRjk2RUNBIC8qIFB1c2hF
dmVudEluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0MThGQ0JFNzI3MTVBMjhGMDBGOTZFQ0EgLyogUlRDUnRwQ29kZWNDYXBhYmlsaXR5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUwQTdEQzIz
QkI2M0RCMDA1NjEwNjAgLyogUlRDUnRwQ29kZWNDYXBhYmlsaXR5LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE4RkNDMDEyNzE5NjgxQTAwRjk2
RUNBIC8qIChudWxsKSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0MThGQ0MwNjI3MTk2QUY2
MDBGOTZFQ0EgLyogKG51bGwpIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxOTBGM0E1MjRB
MEI0RUUwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkwRjNBMzI0OUQxNTI4MDA1MzFDNTcgLyogRnJh
bWVSYXRlTW9uaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQxOTI0MjQ5MjEyN0I5M0UwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxOTI0MjQ3MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2VDb2NvYS5tbSAqLzsgfTsKIAkJNDE5QUNGOTIxRjk3RTdEQTAwOUYxQTgzIC8qIFNlcnZp
Y2VXb3JrZXJGZXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDE5QUNGOEUxRjk3RTdENTAwOUYxQTgzIC8qIFNlcnZpY2VXb3JrZXJGZXRjaC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjE4LDYg
KzEyMjAsOCBAQAogCQk0MUQyOEQwRDIxMzlFMDU4MDBGNDIwNkYgLyogTGliV2ViUlRDU3RhdHND
b2xsZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDFEMjhEMEIyMTM5RTAxRDAwRjQyMDZGIC8qIExpYldlYlJUQ1N0YXRzQ29sbGVjdG9yLmNw
cCAqLzsgfTsKIAkJNDFENDFDNjcyMjU2ODc0RjAwNjk3OTQyIC8qIFNlcnZpY2VXb3JrZXJJbnRl
cm5hbHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MUQ0MUM2NTIyNTY4NTkyMDA2OTc5NDIgLyogU2VydmljZVdvcmtlckludGVybmFscy5tbSAqLzsg
fTsKIAkJNDFERTdDN0MyMjJEQTE0MzAwNTMyQjY1IC8qIFN0b3JhZ2VRdW90YU1hbmFnZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREU3QzdCMjIy
REExM0UwMDUzMkI2NSAvKiBTdG9yYWdlUXVvdGFNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDFERUVGQjAyNzE5QjI5MDAwQ0I4RDc0
IC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREVFRkFDMjcxOUIyODgwMENCOEQ3NCAvKiBWaWRlb0Zy
YW1lUmVxdWVzdENhbGxiYWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNDFERUVGQjYyNzE5QkExQTAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVNZXRh
ZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFE
RUVGQjQyNzE5QkExOTAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVNZXRhZGF0YS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxREVGQ0I2MUU1NkMxQkQw
MDBEOUU1RiAvKiBKU0RPTU1hcExpa2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxREVGQ0I0MUU1NkMxQjkwMDBEOUU1RiAvKiBKU0RPTU1hcExpa2Uu
aCAqLzsgfTsKIAkJNDFFMTJFOUYyNEZFNzRFMjAwOTNGRkI0IC8qIFdlYlNvY2tldElkZW50aWZp
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTEy
RTlEMjRGRTc0RTIwMDkzRkZCNCAvKiBXZWJTb2NrZXRJZGVudGlmaWVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDFFMUIxRDEwRkY1OTg2OTAw
NTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MUUxQjFDQjBGRjU5ODY5MDA1NzZCM0IgLyogQWJzdHJhY3RXb3Jr
ZXIuaCAqLzsgfTsKQEAgLTgyOTYsNiArODMwMCwxMSBAQAogCQk0MUQ2QkQ5ODI1MUIzQURBMDA1
NUE3QjcgLyogSFRNTE1lZGlhRWxlbWVudCtBdWRpb091dHB1dC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gIkhUTUxNZWRpYUVsZW1lbnQrQXVkaW9PdXRwdXQuaWRsIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDFERTdDN0EyMjJEQTEzRDAwNTMyQjY1IC8qIFN0b3JhZ2VRdW90
YU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFn
ZVF1b3RhTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREU3QzdC
MjIyREExM0UwMDUzMkI2NSAvKiBTdG9yYWdlUXVvdGFNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VRdW90YU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDFERUVGQUMyNzE5QjI4ODAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVSZXF1
ZXN0Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MURFRUZBRTI3MTlCMjg5MDBDQjhENzQg
LyogVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlkZW9GcmFtZVJlcXVlc3RD
YWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxREVFRkFGMjcxOUIy
ODkwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lTWV0YWRhdGEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZpZGVvRnJhbWVNZXRh
ZGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxREVFRkIxMjcxOUIyQkUw
MENCOEQ3NCAvKiBIVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9ICJIVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRsIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFERUVGQjQyNzE5QkExOTAwQ0I4RDc0IC8q
IFZpZGVvRnJhbWVNZXRhZGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aWRlb0ZyYW1lTWV0YWRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFERUZD
QjIxRTU2QzFCOTAwMEQ5RTVGIC8qIEpTRE9NQmluZGluZ0ludGVybmFscy5qcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IEpTRE9NQmluZGluZ0ludGVybmFscy5qczsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFERUZDQjMxRTU2QzFCOTAwMEQ5RTVGIC8q
IEpTRE9NTWFwTGlrZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0RPTU1hcExpa2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MURFRkNCNDFF
NTZDMUI5MDAwRDlFNUYgLyogSlNET01NYXBMaWtlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTRE9NTWFwTGlrZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjQyMjYsNiArMjQyMzUsNyBAQAogCQkJCTBGMjZBN0FBMjA1NEVDNUEwMDkwQTE0MSAvKiBIVE1M
VW5rbm93bkVsZW1lbnQuY3BwICovLAogCQkJCUFENDk5MTQxMThGMDgxNTEwMEJGMDA5MiAvKiBI
VE1MVW5rbm93bkVsZW1lbnQuaCAqLywKIAkJCQlBRDQ5OTE0MjE4RjA4MTUxMDBCRjAwOTIgLyog
SFRNTFVua25vd25FbGVtZW50LmlkbCAqLywKKwkJCQk0MURFRUZCMTI3MTlCMkJFMDBDQjhENzQg
LyogSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrLmlkbCAqLywKIAkJ
CQlFNDQ2MTM5ODBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5jcHAgKi8sCiAJ
CQkJRTQ0NjEzOTkwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxWaWRlb0VsZW1lbnQuaCAqLywKIAkJ
CQlFNDQ2MTM5QTBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5pZGwgKi8sCkBA
IC0yNDM0Niw2ICsyNDM1Niw5IEBACiAJCQkJRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZh
bGlkYXRpb25NZXNzYWdlLmggKi8sCiAJCQkJMTVDNzcwOEExMDBEM0M2QTAwNUJBMjY3IC8qIFZh
bGlkaXR5U3RhdGUuaCAqLywKIAkJCQkxNUM3NzA4OTEwMEQzQzZBMDA1QkEyNjcgLyogVmFsaWRp
dHlTdGF0ZS5pZGwgKi8sCisJCQkJNDFERUVGQUYyNzE5QjI4OTAwQ0I4RDc0IC8qIFZpZGVvRnJh
bWVNZXRhZGF0YS5pZGwgKi8sCisJCQkJNDFERUVGQUMyNzE5QjI4ODAwQ0I4RDc0IC8qIFZpZGVv
RnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCAqLywKKwkJCQk0MURFRUZBRTI3MTlCMjg5MDBDQjhENzQg
LyogVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwgKi8sCiAJCQkJRTQ0NjEzQjQwQ0Q2MzQ0
RTAwRkFEQTc1IC8qIFZvaWRDYWxsYmFjay5oICovLAogCQkJCUU0NDYxM0EwMENENjMzMTAwMEZB
REE3NSAvKiBWb2lkQ2FsbGJhY2suaWRsICovLAogCQkJCTJEMTkzMjE3MURBNjRFMTkwMEE1NEEw
OCAvKiBXZWJLaXRNZWRpYUtleUVycm9yLmggKi8sCkBAIC0yODQ4MCw2ICsyODQ5Myw3IEBACiAJ
CQkJQTNBRjlEODIyMDMyNTMyNDAwNkNBRDA2IC8qIFVzZXJBZ2VudC5oICovLAogCQkJCTcxQzkx
NjA3MUQxNDgzQTMwMEFDQTQ3RCAvKiBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmggKi8s
CiAJCQkJODNDNDVCOEQxREMyQjY3QzAwODg3MUJBIC8qIFZhbGlkYXRpb25CdWJibGUuaCAqLywK
KwkJCQk0MURFRUZCNDI3MTlCQTE5MDBDQjhENzQgLyogVmlkZW9GcmFtZU1ldGFkYXRhLmggKi8s
CiAJCQkJNTE1Rjc5NTExQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1RocmVhZENvcGll
ci5jcHAgKi8sCiAJCQkJNTE1Rjc5NTIxQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1Ro
cmVhZENvcGllci5oICovLAogCQkJCTgzOUEyRjJCMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJHTFN0
YXRlVHJhY2tlci5jcHAgKi8sCkBAIC0zMTYxMiw2ICszMTYyNiw4IEBACiAJCQlpc2EgPSBQQlhI
ZWFkZXJzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlm
aWxlcyA9ICgKKwkJCQk0MThGQ0MwNjI3MTk2QUY2MDBGOTZFQ0EgLyogKG51bGwpIGluIEhlYWRl
cnMgKi8sCisJCQkJNDE4RkNDMDEyNzE5NjgxQTAwRjk2RUNBIC8qIChudWxsKSBpbiBIZWFkZXJz
ICovLAogCQkJCTdDRDBFMkI4MUY4MEE0ODIwMDE2QTRDRSAvKiBBYm9ydENvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTdDRDBFMkJGMUY4MEE1NkUwMDE2QTRDRSAvKiBBYm9ydFNpZ25h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZCOTUxOTUyMDdENjMzNDAwQTdEMkREIC8qIEFic3Ry
YWN0RE9NV2luZG93LmggaW4gSGVhZGVycyAqLywKQEAgLTM2MDI2LDYgKzM2MDQyLDggQEAKIAkJ
CQlERjRFMzhFMDI1Mjc5NTk1MDAyQTc0ODEgLyogVmVyc2lvbkNoZWNrcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNBMjU3MTUxMjkzQzAxMDAwN0EyNjNEIC8qIFZlcnRpY2FsUG9zaXRpb25DYWNo
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRUVGM0IyNTc5OUZBMTAwNjU2M0JCIC8qIFZpZGVv
Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFERUVGQjYyNzE5QkExQTAwQ0I4
RDc0IC8qIFZpZGVvRnJhbWVNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFERUVGQjAy
NzE5QjI5MDAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUyQjBENEMwMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFu
Z2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0ZCQzRBRjQxODk4ODE1NjAwNDZFRTM4
IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MkIwRDRDMjFDNTdGRjkxMDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDcyNDJiYzIzZDI3NWFk
ZGFkZjUwZDljNjI5NjM3YTcxZTk2MTI0MDIuLjUyNTA2MjlmMmNjNmE0YWFkZDY2MTJlYjVkMjY1
YThiMWU0OGRkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTE3LDYgKzExNyw3IEBA
CiAjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MVW5rbm93bkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVmlk
ZW9FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiSFRU
UFBhcnNlcnMuaCIKICNpbmNsdWRlICJIYXNoQ2hhbmdlRXZlbnQuaCIKQEAgLTY3MzksNiArNjc0
MCwzMiBAQCB2b2lkIERvY3VtZW50OjpzZXJ2aWNlUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2tzKCkKICAgICAgICAgbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXItPnNlcnZpY2VSZXF1
ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja3MoZG9tV2luZG93KCktPmZyb3plbk5vd1RpbWVzdGFt
cCgpKTsKIH0KIAordm9pZCBEb2N1bWVudDo6c2VydmljZVJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2tzKCkKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYgKCFkb21XaW5kb3coKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYm9vbCBpc1NlcnZpY2luZ1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2tzID0gZmFsc2U7CisgICAgZm9yRWFjaE1lZGlhRWxlbWVudChbbm93ID0gZG9tV2luZG93KCkt
PmZyb3plbk5vd1RpbWVzdGFtcCgpLCAmaXNTZXJ2aWNpbmdSZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrc10oYXV0byYgZWxlbWVudCkgeworICAgICAgICBpZiAoIWlzPEhUTUxWaWRlb0VsZW1lbnQ+
KGVsZW1lbnQpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8mIHZpZGVvRWxl
bWVudCA9IGRvd25jYXN0PEhUTUxWaWRlb0VsZW1lbnQ+KGVsZW1lbnQpOworICAgICAgICBpZiAo
dmlkZW9FbGVtZW50LnNob3VsZFNlcnZpY2VSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrcygpKSB7
CisgICAgICAgICAgICBpc1NlcnZpY2luZ1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tzID0gdHJ1
ZTsKKyAgICAgICAgICAgIHZpZGVvRWxlbWVudC5zZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxs
YmFja3Mobm93KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgaWYgKCFpc1NlcnZpY2luZ1Jl
cXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tzKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0
byogcGFnZSA9IHRoaXMtPnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+c2NoZWR1bGVSZW5kZXJpbmdV
cGRhdGUoUmVuZGVyaW5nVXBkYXRlU3RlcDo6VmlkZW9GcmFtZUNhbGxiYWNrcyk7CisjZW5kaWYK
K30KKwogdm9pZCBEb2N1bWVudDo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxh
eUlEIGRpc3BsYXlJRCkKIHsKICAgICBpZiAoUmVuZGVyVmlldyogdmlldyA9IHJlbmRlclZpZXco
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA1NDU3NjQzNWMyMzY1Yjc4MDIwOWZlZTE4YTEw
MmYyNmI5ZTAxZjE5Li45YzM5M2ZiNWVlNjk4ZDkzMjUyMWFmOWYwMDg2ZmFlMjQxYTk1MzhjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTExNCw2ICsxMTE0LDcgQEAgcHVibGljOgogICAgIHZv
aWQgcmVzdW1lU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyQ2FsbGJhY2tzKCk7CiAKICAgICB2
b2lkIHNlcnZpY2VSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja3MoKTsKKyAgICB2b2lkIHNl
cnZpY2VSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrcygpOwogCiAgICAgdm9pZCB3aW5kb3dTY3Jl
ZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oCmluZGV4IDNiY2M2ODlkZjNiN2FjMGFlYWIxMDg1YjI3ZDEzZmNmOWRkNDQy
YjUuLjFjMWIyZGMxNWFhMGI2OTMyMTc4YTI5MzBjYThmMmI4OTQwZjUzNDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAi
TWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCiAjaW5jbHVkZSAiTWVk
aWFVbmlxdWVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUmVkdWNlZFJlc29sdXRpb25TZWNvbmRz
LmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrQ2xpZW50LmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja0Ns
aWVudC5oIgogI2luY2x1ZGUgIlZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0
VmlkZW9GcmFtZUNhbGxiYWNrLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTMyNDQ5OGVkY2ZlMTRiNTc2NzIw
YzhmMDI1ODIwODViNDVkNDA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRsCkBAIC0wLDAg
KzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
WworICAgIENvbmRpdGlvbmFsPVZJREVPLAorICAgIEVuYWJsZWRCeVNldHRpbmc9UmVxdWVzdFZp
ZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQKK10gcGFydGlhbCBpbnRlcmZhY2UgSFRNTFZpZGVvRWxl
bWVudCB7CisgICAgdW5zaWduZWQgbG9uZyByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKFZpZGVv
RnJhbWVSZXF1ZXN0Q2FsbGJhY2sgY2FsbGJhY2spOworICAgIHVuZGVmaW5lZCBjYW5jZWxWaWRl
b0ZyYW1lQ2FsbGJhY2sodW5zaWduZWQgbG9uZyBoYW5kbGUpOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCmluZGV4IDA0YzAyYjhjODliYjRjMGViZGRjY2E0NTAy
OGJiZmQwMGRhNzliNmYuLmQ0YzQxNTliYjI4MGI5ODU1NTJkMzcyMjFlN2M2NWQ3Zjc0NGM3Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcApAQCAtNTc3LDYgKzU3
Nyw1OSBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmV4aXRUb0Z1bGxzY3JlZW5Nb2RlV2l0aG91
dEFuaW1hdGlvbklmUG9zc2libGUoSFRNTE1lZGlhRQogfQogI2VuZGlmCiAKK3Vuc2lnbmVkIEhU
TUxWaWRlb0VsZW1lbnQ6OnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soUmVmPFZpZGVvRnJhbWVS
ZXF1ZXN0Q2FsbGJhY2s+JiYgY2FsbGJhY2spCit7CisgICAgaWYgKG1fbmV4dFZpZGVvRnJhbWVS
ZXF1ZXN0SW5kZXggPT0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIGF1dG8gaWRlbnRpZmllciA9ICArK21fbmV4dFZpZGVvRnJh
bWVSZXF1ZXN0SW5kZXg7CisgICAgbV92aWRlb0ZyYW1lUmVxdWVzdHMuYXBwZW5kKG1ha2VVbmlx
dWVSZWY8VmlkZW9GcmFtZVJlcXVlc3Q+KGlkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKSk7
CisKKyAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpKQorICAgICAgICBwYWdl
LT5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZShSZW5kZXJpbmdVcGRhdGVTdGVwOjpWaWRlb0ZyYW1l
Q2FsbGJhY2tzKTsKKworICAgIHJldHVybiBpZGVudGlmaWVyOworfQorCit2b2lkIEhUTUxWaWRl
b0VsZW1lbnQ6OmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayh1bnNpZ25lZCBpZGVudGlmaWVyKQor
eworICAgIGF1dG8gaW5kZXggPSBtX3ZpZGVvRnJhbWVSZXF1ZXN0cy5maW5kTWF0Y2hpbmcoW2lk
ZW50aWZpZXJdKGF1dG8mIHJlcXVlc3QpIHsgcmV0dXJuIHJlcXVlc3QtPmlkZW50aWZpZXIgPT0g
aWRlbnRpZmllcjsgfSk7CisgICAgaWYgKGluZGV4ID09IG5vdEZvdW5kKQorICAgICAgICByZXR1
cm47CisgICAgaWYgKG1faXNSdW5uaW5nVmlkZW9GcmFtZVJlcXVlc3RzKSB7CisgICAgICAgIG1f
dmlkZW9GcmFtZVJlcXVlc3RzW2luZGV4XS0+Y2FuY2VsbGVkID0gdHJ1ZTsKKyAgICAgICAgbV9z
aG91bGRDbGVhblZpZGVvRnJhbWVSZXF1ZXN0cyA9IHRydWU7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgbV92aWRlb0ZyYW1lUmVxdWVzdHMucmVtb3ZlKGluZGV4KTsKK30KKwordm9pZCBI
VE1MVmlkZW9FbGVtZW50OjpzZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja3MoUmVkdWNl
ZFJlc29sdXRpb25TZWNvbmRzIG5vdykKK3sKKyAgICBpZiAoIXBsYXllcigpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhdXRvIHZpZGVvRnJhbWVNZXRhZGF0YSA9IHBsYXllcigpLT52aWRlb0Zy
YW1lTWV0YWRhdGEoKTsKKyAgICBpZiAoIXZpZGVvRnJhbWVNZXRhZGF0YSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgUmVmIHByb3RlY3RlZFRoaXMgeyAqdGhpcyB9OworCisgICAgLy8gV2Ugc3Rv
cmUgdGhlIHNpemUgYmVmb3JlIGNhbGxpbmcgY2FsbGJhY2tzIGFzIHdlIGRvIG5vdCB3YW50IHRv
IGNhbGwgbmV3bHkgYWRkZWQgY2FsbGJhY2tzLgorICAgIGF1dG8gY2FsbGJhY2tDb3VudCA9IG1f
dmlkZW9GcmFtZVJlcXVlc3RzLnNpemUoKTsKKworICAgIG1faXNSdW5uaW5nVmlkZW9GcmFtZVJl
cXVlc3RzID0gdHJ1ZTsKKyAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgY2FsbGJh
Y2tDb3VudDsgKytpbmRleCkgeworICAgICAgICBhdXRvJiByZXF1ZXN0ID0gbV92aWRlb0ZyYW1l
UmVxdWVzdHNbaW5kZXhdOworICAgICAgICBpZiAoIXJlcXVlc3QtPmNhbmNlbGxlZCkKKyAgICAg
ICAgICAgIG1fdmlkZW9GcmFtZVJlcXVlc3RzW2luZGV4XS0+Y2FsbGJhY2stPmhhbmRsZUV2ZW50
KG5vdy52YWx1ZSgpLCAqdmlkZW9GcmFtZU1ldGFkYXRhKTsKKyAgICB9CisgICAgbV9pc1J1bm5p
bmdWaWRlb0ZyYW1lUmVxdWVzdHMgPSBmYWxzZTsKKworICAgIGlmIChtX3Nob3VsZENsZWFuVmlk
ZW9GcmFtZVJlcXVlc3RzKQorICAgICAgICBtX3ZpZGVvRnJhbWVSZXF1ZXN0cy5yZW1vdmVBbGxN
YXRjaGluZyhbXShhdXRvJiBjYWxsYmFjaykgeyByZXR1cm4gY2FsbGJhY2stPmNhbmNlbGxlZDsg
fSk7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxWaWRlb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5o
CmluZGV4IDEwOTkxZjA1ZjE0NzRlZWU1ZWIwMWVlNzgzMjMzOTEyMGY2ZTM3MmYuLjVlMTg4YjAw
NTRhNjczZDg5YmRhOTNlMDQ1M2Y2NTMzMDcxYTVhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFZpZGVvRWxlbWVudC5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJIVE1MTWVkaWFF
bGVtZW50LmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlICJWaWRlb0Zy
YW1lUmVxdWVzdENhbGxiYWNrLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0zOCw2ICszOSw3IEBAIGNsYXNzIEhUTUxJbWFnZUxvYWRlcjsKIGNsYXNzIElt
YWdlQnVmZmVyOwogY2xhc3MgUmVuZGVyVmlkZW87CiBjbGFzcyBQaWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXI7CitjbGFzcyBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrOwogCiBlbnVtIGNsYXNzIFBp
eGVsRm9ybWF0IDogdWludDhfdDsKIGVudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJvb2w7CkBA
IC0xMDksNiArMTExLDEyIEBAIHB1YmxpYzoKIAogICAgIFJlbmRlclZpZGVvKiByZW5kZXJlcigp
IGNvbnN0OwogCisgICAgYm9vbCBzaG91bGRTZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
a3MoKSBjb25zdCB7IHJldHVybiAhbV92aWRlb0ZyYW1lUmVxdWVzdHMuaXNFbXB0eSgpOyB9Cisg
ICAgdm9pZCBzZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja3MoUmVkdWNlZFJlc29sdXRp
b25TZWNvbmRzKTsKKworICAgIHVuc2lnbmVkIHJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soUmVm
PFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2s+JiYpOworICAgIHZvaWQgY2FuY2VsVmlkZW9GcmFt
ZUNhbGxiYWNrKHVuc2lnbmVkKTsKKwogcHJpdmF0ZToKICAgICBIVE1MVmlkZW9FbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKIApA
QCAtMTQ3LDYgKzE1NSwyMyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RV
UkVfQVBJKQogICAgIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlciogbV9waWN0dXJlSW5QaWN0dXJl
T2JzZXJ2ZXIgeyBudWxscHRyIH07CiAjZW5kaWYKKworICAgIHN0cnVjdCBWaWRlb0ZyYW1lUmVx
dWVzdCB7CisgICAgICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKKyAgICAgICAg
VmlkZW9GcmFtZVJlcXVlc3QodW5zaWduZWQgaWRlbnRpZmllciwgUmVmPFZpZGVvRnJhbWVSZXF1
ZXN0Q2FsbGJhY2s+JiYgY2FsbGJhY2spCisgICAgICAgICAgICA6IGlkZW50aWZpZXIoaWRlbnRp
ZmllcikKKyAgICAgICAgICAgICwgY2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCisgICAgICAg
IHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdW5zaWduZWQgaWRlbnRpZmllciB7IDAg
fTsKKyAgICAgICAgUmVmPFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2s+IGNhbGxiYWNrOworICAg
ICAgICBib29sIGNhbmNlbGxlZCB7IGZhbHNlIH07CisgICAgfTsKKyAgICBWZWN0b3I8VW5pcXVl
UmVmPFZpZGVvRnJhbWVSZXF1ZXN0Pj4gbV92aWRlb0ZyYW1lUmVxdWVzdHM7CisgICAgdW5zaWdu
ZWQgbV9uZXh0VmlkZW9GcmFtZVJlcXVlc3RJbmRleCB7IDAgfTsKKyAgICBib29sIG1fc2hvdWxk
Q2xlYW5WaWRlb0ZyYW1lUmVxdWVzdHMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1J1bm5pbmdW
aWRlb0ZyYW1lUmVxdWVzdHMgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WaWRlb0ZyYW1lTWV0YWRhdGEuaWRs
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9WaWRlb0ZyYW1lTWV0YWRhdGEuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJjYTk1ZThmMDNkMzA1N2FjMmU4MGM0YTVkMmZhMjMwNTZhZjc4YmQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVNZXRhZGF0YS5pZGwKQEAgLTAsMCAr
MSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCit0
eXBlZGVmIGRvdWJsZSBET01IaWdoUmVzVGltZVN0YW1wOworCitbCisgICAgQ29uZGl0aW9uYWw9
VklERU8sCisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdIGRpY3Rpb25hcnkgVmlkZW9GcmFt
ZU1ldGFkYXRhIHsKKyAgICAvLyBGSVhNRTogZXhwb3NlIHByZXNlbnRhdGlvblRpbWUgYW5kIGV4
cGVjdGVkRGlzcGxheVRpbWUuCisgICAgLy8gcmVxdWlyZWQgRE9NSGlnaFJlc1RpbWVTdGFtcCBw
cmVzZW50YXRpb25UaW1lOworICAgIC8vIHJlcXVpcmVkIERPTUhpZ2hSZXNUaW1lU3RhbXAgZXhw
ZWN0ZWREaXNwbGF5VGltZTsKKworICAgIHJlcXVpcmVkIHVuc2lnbmVkIGxvbmcgd2lkdGg7Cisg
ICAgcmVxdWlyZWQgdW5zaWduZWQgbG9uZyBoZWlnaHQ7CisgICAgcmVxdWlyZWQgZG91YmxlIG1l
ZGlhVGltZTsKKworICAgIHJlcXVpcmVkIHVuc2lnbmVkIGxvbmcgcHJlc2VudGVkRnJhbWVzOwor
ICAgIGRvdWJsZSBwcm9jZXNzaW5nRHVyYXRpb247CisKKyAgICBET01IaWdoUmVzVGltZVN0YW1w
IGNhcHR1cmVUaW1lOworICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgcmVjZWl2ZVRpbWU7CisgICAg
dW5zaWduZWQgbG9uZyBydHBUaW1lc3RhbXA7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGZhYjJjZDVkMDZjYTMw
NzMxYTFhNjliNDk3YzI0NWFiYjBhNzIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmgKQEAgLTAsMCArMSw0OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSAi
QWN0aXZlRE9NQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJDYWxsYmFja1Jlc3VsdC5oIgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgVmlkZW9GcmFtZU1ldGFkYXRhOworCitjbGFzcyBWaWRl
b0ZyYW1lUmVxdWVzdENhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8VmlkZW9GcmFtZVJlcXVl
c3RDYWxsYmFjaz4sIHB1YmxpYyBBY3RpdmVET01DYWxsYmFjayB7CitwdWJsaWM6CisgICAgdXNp
bmcgQWN0aXZlRE9NQ2FsbGJhY2s6OkFjdGl2ZURPTUNhbGxiYWNrOworCisgICAgdmlydHVhbCBD
YWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVFdmVudChkb3VibGUsIGNvbnN0IFZpZGVvRnJhbWVN
ZXRhZGF0YSYpID0gMDsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShWSURFTykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjdkZDZmZjZjMWY4YWI0NDVkYjkwZWZmODk2ZTQyMGQ3MDdlNmU5MDAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2su
aWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKwordHlwZWRlZiBkb3VibGUgRE9NSGlnaFJlc1RpbWVTdGFtcDsKKworWworICAg
IENvbmRpdGlvbmFsPVZJREVPLAorXSBjYWxsYmFjayBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNr
ID0gdW5kZWZpbmVkKERPTUhpZ2hSZXNUaW1lU3RhbXAgbm93LCBWaWRlb0ZyYW1lTWV0YWRhdGEg
bWV0YWRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMDA2MTNmYTY4NzZhNmJlNmE5MjYxMzMy
MTYxZTQ5NjgyMmFmNDE4Mi4uZGExYTljODIzNDMyOWQzN2IyYjdiMGJiYjY0M2IwMTAyOTk0YzUw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNTg1LDYgKzE1ODUsMTAgQEAgdm9pZCBQYWdlOjp1
cGRhdGVSZW5kZXJpbmcoKQogICAgIC8vIEZJWE1FOiBSdW4gdGhlIGZ1bGxzY3JlZW4gc3RlcHMu
CiAgICAgbV9yZW5kZXJpbmdVcGRhdGVSZW1haW5pbmdTdGVwcy5sYXN0KCkucmVtb3ZlKFJlbmRl
cmluZ1VwZGF0ZVN0ZXA6OkZ1bGxzY3JlZW4pOwogCisgICAgcnVuUHJvY2Vzc2luZ1N0ZXAoUmVu
ZGVyaW5nVXBkYXRlU3RlcDo6VmlkZW9GcmFtZUNhbGxiYWNrcywgW10gKERvY3VtZW50JiBkb2N1
bWVudCkgeworICAgICAgICBkb2N1bWVudC5zZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
a3MoKTsKKyAgICB9KTsKKwogICAgIHJ1blByb2Nlc3NpbmdTdGVwKFJlbmRlcmluZ1VwZGF0ZVN0
ZXA6OkFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tzLCBbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CiAg
ICAgICAgIGRvY3VtZW50LnNlcnZpY2VSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja3MoKTsK
ICAgICB9KTsKQEAgLTM2MjYsNiArMzYzMCw3IEBAIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChXVEY6OlRleHRTdHJlYW0mIHRzLCBSZW5kZXJpbmdVcGRhdGVTdGVwIHN0ZXApCiAjaWYgRU5B
QkxFKEFTWU5DX1NDUk9MTElORykKICAgICBjYXNlIFJlbmRlcmluZ1VwZGF0ZVN0ZXA6OlNjcm9s
bGluZ1RyZWVVcGRhdGU6IHRzIDw8ICJTY3JvbGxpbmdUcmVlVXBkYXRlIjsgYnJlYWs7CiAjZW5k
aWYKKyAgICBjYXNlIFJlbmRlcmluZ1VwZGF0ZVN0ZXA6OlZpZGVvRnJhbWVDYWxsYmFja3M6IHRz
IDw8ICJWaWRlb0ZyYW1lQ2FsbGJhY2tzIjsgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiB0czsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKaW5kZXggZWM3NzExZmUzYmRkNzlmN2VhYjAzMzBmMWJlM2JlMGRjYWMw
OWZlNy4uNjIxZDJlYTI0MmM3ZDlmZWFkMDk5NTJjZDk4MDI2OTU0MGEwYmU5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKQEAgLTIxNSw2ICsyMTUsNyBAQCBlbnVtIGNsYXNzIFJlbmRlcmluZ1VwZGF0ZVN0ZXAg
OiB1aW50MTZfdCB7CiAgICAgU2Nyb2xsaW5nVHJlZVVwZGF0ZSAgICAgICAgICAgICA9IDEgPDwg
MTMsCiAjZW5kaWYKICAgICBGbHVzaEF1dG9mb2N1c0NhbmRpZGF0ZXMgICAgICAgID0gMSA8PCAx
NCwKKyAgICBWaWRlb0ZyYW1lQ2FsbGJhY2tzICAgICAgICAgICAgID0gMSA8PCAxNSwKIH07CiAK
IGNvbnN0ZXhwciBPcHRpb25TZXQ8UmVuZGVyaW5nVXBkYXRlU3RlcD4gdXBkYXRlUmVuZGVyaW5n
U3RlcHMgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1l
TWV0YWRhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWVNZXRhZGF0YS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhmZDlhNDcwMDI0OGQ0ZDI3OGRjZTI3NDk3ODM2MGE1N2JhZjU5ZWEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lTWV0YWRh
dGEuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoVklERU8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFZpZGVvRnJhbWVN
ZXRhZGF0YSB7CisgICAgZG91YmxlIHByZXNlbnRhdGlvblRpbWUgeyAwIH07CisgICAgZG91Ymxl
IGV4cGVjdGVkRGlzcGxheVRpbWUgeyAwIH07CisKKyAgICB1bnNpZ25lZCB3aWR0aCB7IDAgfTsK
KyAgICB1bnNpZ25lZCBoZWlnaHQgeyAwIH07CisgICAgZG91YmxlIG1lZGlhVGltZSB7IDAgfTsK
KworICAgIHVuc2lnbmVkIHByZXNlbnRlZEZyYW1lcyB7IDAgfTsKKyAgICBzdGQ6Om9wdGlvbmFs
PGRvdWJsZT4gcHJvY2Vzc2luZ0R1cmF0aW9uOworCisgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+
IGNhcHR1cmVUaW1lOworICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiByZWNlaXZlVGltZTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBydHBUaW1lc3RhbXA7Cit9OworCit9CisKKyNlbmRp
ZiAvLyBFTkFCTEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKaW5kZXggODRhN2EwNzI3MzFjMTI3ODhhY2VjZWJjMTJlYTY4N2Nl
YmRiMGMyZi4uMDliNzU5YWYzMjg0MDdhMmM2NjQzZTViZjgzYjJhZDM4MThiOTU5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAt
MTcxMCw2ICsxNzEwLDExIEBAIE1lZGlhUGxheWVySWRlbnRpZmllciBNZWRpYVBsYXllcjo6aWRl
bnRpZmllcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aWRlbnRpZmllcigpOwogfQog
CitzdGQ6Om9wdGlvbmFsPFZpZGVvRnJhbWVNZXRhZGF0YT4gTWVkaWFQbGF5ZXI6OnZpZGVvRnJh
bWVNZXRhZGF0YSgpCit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dmlkZW9GcmFtZU1ldGFkYXRh
KCk7Cit9CisKIFN0cmluZyBNZWRpYVBsYXllcjo6ZWxlbWVudElkKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gY2xpZW50KCkubWVkaWFQbGF5ZXJFbGVtZW50SWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDk3MTI2NDhjYmFhYmU3NTk5
ZTY3ZGY2NWFmMmMzNTZiZjI0MTYzNWYuLjA0ODhkZjU3MWI3OTZjZTEzNGJmZGYxMTk0MDNhOGYx
NWMwZDI1OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1
ZGUgIlZpZGVvRnJhbWVNZXRhZGF0YS5oIgogI2luY2x1ZGUgIlZpZGVvUGxheWJhY2tRdWFsaXR5
TWV0cmljcy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTY3OCw2ICs2NzksOCBAQCBwdWJsaWM6CiAg
ICAgTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdDsKICAgICBib29sIGhh
c01lZGlhRW5naW5lKCkgY29uc3Q7CiAKKyAgICBzdGQ6Om9wdGlvbmFsPFZpZGVvRnJhbWVNZXRh
ZGF0YT4gdmlkZW9GcmFtZU1ldGFkYXRhKCk7CisKIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXIo
TWVkaWFQbGF5ZXJDbGllbnQmKTsKICAgICBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYs
IE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4
IDZhYjQ3YjE1MzhmZmMyZjI5NDRjODRhOWY0NGM1YzhjYmI2MDJjZjcuLjg5YTZlOGNlZmU5OTJi
YWJkY2NmOTRkMDU0ZmQwMWU4NWIwZDFlODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0zMjAsNiArMzIwLDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1BhdXNlQXRIb3N0VGltZSgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHBsYXlBdEhvc3RUaW1lKGNv
bnN0IE1vbm90b25pY1RpbWUmKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBw
YXVzZUF0SG9zdFRpbWUoY29uc3QgTW9ub3RvbmljVGltZSYpIHsgcmV0dXJuIGZhbHNlOyB9CisK
KyAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8VmlkZW9GcmFtZU1ldGFkYXRhPiB2aWRlb0ZyYW1l
TWV0YWRhdGEoKSB7IHJldHVybiB7IH07IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmgKaW5kZXggNjNmZDllYTkzZDQ3ZTI0NzIwNjcxYTRiNmM1ZjVkZGRmOWRjYTgzNS4uMzlkZGQw
M2Y1ZjY2YWY3YzAxNzFkMzAwOTFkMGYyN2YwNzc2MWU2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLmgKQEAgLTE1OSw2ICsxNTksNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRCdWZmZXJp
bmdQb2xpY3koTWVkaWFQbGF5ZXI6OkJ1ZmZlcmluZ1BvbGljeSkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKSBmaW5hbDsKKyAgICBzdGQ6Om9wdGlvbmFsPFZp
ZGVvRnJhbWVNZXRhZGF0YT4gdmlkZW9GcmFtZU1ldGFkYXRhKCkgZmluYWw7CiAKICAgICBNZWRp
YVBsYXllcjo6UmVhZHlTdGF0ZSBjdXJyZW50UmVhZHlTdGF0ZSgpOwogICAgIHZvaWQgdXBkYXRl
UmVhZHlTdGF0ZSgpOwpAQCAtMjc4LDYgKzI3OSw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lz
VmlzaWJsZUluVmlld1BvcnQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXZlU2Vlbk1ldGFkYXRh
IHsgZmFsc2UgfTsKICAgICBib29sIG1fd2FpdGluZ0ZvckZpcnN0SW1hZ2UgeyBmYWxzZSB9Owor
CisgICAgdWludDY0X3QgbV9zYW1wbGVDb3VudCB7IDAgfTsKKyAgICB1aW50NjRfdCBtX2xhc3RW
aWRlb0ZyYW1lTWV0YWRhdGFTYW1wbGVDb3VudCB7IDAgfTsKIH07CiAgICAgCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KaW5kZXggZGQzYWY2NDE3N2E5MzM4OTJjYjc3ZmEwYzQzYmQyNjUx
NTZkNDE0MS4uZTlkNGQxY2ViZDJhMTRhZjI0NWEyMmU3NjEyYWEzZGI4ZTYzOWU3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMzE2LDYgKzMxNiw4IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwcm9jZXNzTmV3VmlkZW9TYW1wbGUoTWVkaWFT
YW1wbGUmIHNhCiAgICAgICAgICAgICB1cGRhdGVSZWFkeVN0YXRlKCk7CiAgICAgfQogCisgICAg
KyttX3NhbXBsZUNvdW50OworCiAgICAgaWYgKG1fZGlzcGxheU1vZGUgIT0gTGl2ZVByZXZpZXcg
JiYgIW1fd2FpdGluZ0ZvckZpcnN0SW1hZ2UpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTA4OCw2
ICsxMDkwLDIyIEBAIFdURkxvZ0NoYW5uZWwmIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6bG9nQ2hhbm5lbCgpIGNvbnN0CiAgICAgcmV0dXJuIExvZ01lZGlhOwogfQogCitz
dGQ6Om9wdGlvbmFsPFZpZGVvRnJhbWVNZXRhZGF0YT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lTWV0YWRhdGEoKQoreworICAgIGlmIChtX3NhbXBsZUNv
dW50ID09IG1fbGFzdFZpZGVvRnJhbWVNZXRhZGF0YVNhbXBsZUNvdW50KQorICAgICAgICByZXR1
cm4geyB9OworICAgIG1fbGFzdFZpZGVvRnJhbWVNZXRhZGF0YVNhbXBsZUNvdW50ID0gbV9zYW1w
bGVDb3VudDsKKworICAgIFZpZGVvRnJhbWVNZXRhZGF0YSBtZXRhZGF0YTsKKyAgICBtZXRhZGF0
YS53aWR0aCA9IG1faW50cmluc2ljU2l6ZS53aWR0aCgpOworICAgIG1ldGFkYXRhLmhlaWdodCA9
IG1faW50cmluc2ljU2l6ZS5oZWlnaHQoKTsKKyAgICBtZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXMg
PSBtX3NhbXBsZUNvdW50OworCisgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIGdvb2QgdG8gZXhw
b3NlIG1vcmUgdmlkZW8gZnJhbWUgbWV0YWRhdGEuCisKKyAgICByZXR1cm4gbWV0YWRhdGE7Cit9
CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJl
ZmVyZW5jZXMuY3BwCmluZGV4IDIzZGFlYTA1YmRiODY2Zjg1MTEyYzgwZjQwYjNhYjY2MDQzNzg3
OGYuLmJlZDgzMTZmMzc1OGY5MzMzMDE0YzJmYmUyZjJkMjVjMTg5NTliY2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC0yMjI2LDMg
KzIyMjYsMTIgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0WFNTQXVkaXRvckVuYWJsZWQoV0tQcmVm
ZXJlbmNlc1JlZikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgV0tQcmVmZXJlbmNlc1Nl
dFJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5z
ZXRSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZChlbmFibGVkKTsKK30KKworYm9vbCBX
S1ByZWZlcmVuY2VzR2V0UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2Vz
UmVmKS0+cmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQoKTsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWYuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWYuaAppbmRleCAyZjFkYzE1
NThkZWMxNDY4MWFkOGQwYzJmZWM2YzEwYjEyYzAwMDhiLi4yNmIwMDJkNDlmNjE1MmFhYmMyZTJi
MDQ4YmEzODU5ZDBiNjRjYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzUmVmLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlc1JlZi5oCkBAIC0zNTUsNiArMzU1LDEwIEBAIFdLX0VYUE9SVCB2b2lk
IFdLUHJlZmVyZW5jZXNTZXRSZW1vdGVQbGF5YmFja0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlCiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0U2hvdWxkVXNlU2Vydmlj
ZVdvcmtlclNob3J0VGltZW91dChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKTsKIFdL
X0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRTaG91bGRVc2VTZXJ2aWNlV29ya2VyU2hvcnRU
aW1lb3V0KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCk7CiAK
Ky8vIERlZmF1bHRzIHRvIGZhbHNlLgorV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFJl
cXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXNSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFJlcXVlc3RWaWRlb0ZyYW1l
Q2FsbGJhY2tFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5h
YmxlZCk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODFmYTIzMTVjMjc5NjBlZmJiYWUy
YWFkYTQ1MWZhNDNmNzBhYWE4OS4uN2JlOWUyNWYxMDMzNzZmYzAwYzBlOGNkMzEzMWVkYzUzM2Nj
MDQ3NiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDIxLTEwLTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
ayBBUEkgYW5kIE1lZGlhU3RyZWFtVHJhY2stYmFzZWQgYmFja2VuZCBzdXBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE4MDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cmVz
ZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIERpc2FibGUgcnZmYyBv
biB0ZXN0cyBieSBkZWZhdWx0IHVudGlsIHdlIGltcGxlbWVudCBydmZjIGZvciB1c3VhbCB2aWRl
byBzdHJlYW1pbmcuCisKIDIwMjEtMTAtMTQgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgVGVzdFdlYktpdEFQSS5Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5G
cmF1ZFByZXZlbnRpb24gaXMgYSBjb25zdGFudCB0aW1lb3V0CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGZlYjJhMzk3ZTQyYTM2OGM0MTc5ZWNiMzFkNmQx
OTIwNjNmMTlhMDcuLmU2ODQwMWUxOWQ1MjNjZWVmZDQwODA0OTkwNDExNGM4NzYyMGQzZmUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC04OTYsNiArODk2
LDkgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZh
bHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW8KICAgICAgICAgaWYgKGVuYWJsZUFsbEV4cGVy
aW1lbnRhbEZlYXR1cmVzKQogICAgICAgICAgICAgV0tQcmVmZXJlbmNlc0VuYWJsZUFsbEV4cGVy
aW1lbnRhbEZlYXR1cmVzKHByZWZlcmVuY2VzKTsKIAorICAgICAgICAvLyBGSVhNRTogV2UgZGlz
YWJsZSBydmZjIGJ5IGRlZmF1bHQuIFJlbW92ZSB0aGlzIG9uY2UgdGhlIHZpZGVvIGJhY2tlbmQg
c3VwcG9ydCBpcyBnb29kIGVub3VnaC4KKyAgICAgICAgV0tQcmVmZXJlbmNlc1NldFJlcXVlc3RW
aWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkKHByZWZlcmVuY2VzLCBmYWxzZSk7CisKICAgICAgICAg
V0tQcmVmZXJlbmNlc1Jlc2V0QWxsSW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzKHByZWZlcmVuY2VzKTsK
IAogICAgICAgICBXS1ByZWZlcmVuY2VzU2V0UHJvY2Vzc1N3YXBPbk5hdmlnYXRpb25FbmFibGVk
KHByZWZlcmVuY2VzLCBvcHRpb25zLnNob3VsZEVuYWJsZVByb2Nlc3NTd2FwT25OYXZpZ2F0aW9u
KCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDYxMWNmM2JiMGI4YTA1NjQ4YWY4MTliMjcxN2VjY2YzMTA0NGMwMjYuLmM4
NTI2ZjcwZmI1OGM3MmJlMTFhMDVkODExYzdiYWI2Y2U1NGZhNTggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAyMS0xMC0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sgQVBJIGFuZCBN
ZWRpYVN0cmVhbVRyYWNrLWJhc2VkIGJhY2tlbmQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxODAzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ydmZjLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogd2VicnRj
L3BlZXJDb25uZWN0aW9uLXJ2ZmMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJy
dGMvcGVlckNvbm5lY3Rpb24tcnZmYy5odG1sOiBBZGRlZC4KKwogMjAyMS0xMC0xOCAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgWyB3azIgXSAyIHBhZ2UtY2Fj
aGUgbGF5b3V0LXRlc3RzIGFyZSBmbGFrZXkgY3Jhc2hpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCmluZGV4IGE4YTUyODI5ZDgwZjEyY2RkNTczNjQxZTU5Zjg1YTk2MTY1NDY5ZTcuLjhm
NWYwMDI5YWY0NDY1MTQ3ZmRkODlkOGE0NjhjZmEzODAxYmFkMDIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTEwLTE4ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVxdWVzdFZp
ZGVvRnJhbWVDYWxsYmFjayBBUEkgYW5kIE1lZGlhU3RyZWFtVHJhY2stYmFzZWQgYmFja2VuZCBz
dXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzE4MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHJlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb246CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvTUVUQS55bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy92aWRlby1ydmZjL1JFQURNRS5tZDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNz
LndpbmRvdy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8t
cnZmYy9pZGxoYXJuZXNzLndpbmRvdy5qczogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHIt
c2Vzc2lvbi5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhy
LXNlc3Npb24uaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kb20tZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0
LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmlu
Zy14ci1zZXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJp
bmcteHItc2Vzc2lvbi5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVz
dC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUt
Y2FsbGJhY2stcGFyYWxsZWwuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1yZXBlYXRpbmctZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZm
Yy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1l
LWNhbGxiYWNrLXdlYnJ0Yy5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2st
d2VicnRjLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92
aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2suaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvdzNjLWltcG9ydC5sb2c6IEFkZGVk
LgorCiAyMDIxLTEwLTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBHdWFyYW50ZWUgb3JkZXIgb2YgV2ViU29ja2V0IGV2ZW50cyBpbiBjYXNlIG9mIGJlaW5n
IHJlc3VtZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDYyOWRlODg3NDZhN2Q3YjI4M2U2YTQyN2Qx
ZDNjMTE0ZThlYThhYTEuLjM2NTk1MmQxMjc5OTI2OTU0NTVjNzlkYmUwNDZmOThjM2JhMTcyMGQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjE2LDYgKzIxNiw5IEBAIGZhc3QvaGFybmVzcy91aXNj
cmlwdGNvbnRyb2xsZXIgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9zY3JvbGxpbmcgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL2V2ZW50cy9kb2N1bWVudC1sZXZlbC10b3VjaG1vdmUtZXZlbnQtbGlzdGVuZXIt
cGFzc2l2ZS1ieS1kZWZhdWx0LnRlbnRhdGl2ZS5odG1sIFsgU2tpcCBdCiAKKyMgT25seSBNYWMg
YW5kIGlPUyBXSzIgaGF2ZSBhbiBpbXBsZW1lbnRhdGlvbiByaWdodCBub3cuCitpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMgWyBTa2lwIF0KKwogIyBUaGlzIHRlc3Qg
b25seSBtYWtlcyBzZW5zZSBvbiBNYWMKIGZhc3QvYXR0YWNobWVudC9hdHRhY2htZW50LXN1YnRp
dGxlLXJlc2l6ZS5odG1sIFsgU2tpcCBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtcnZmYy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODQ5ZDhiNWYzMzdkZWQ0ZjhhOGYwYzY5ZjE1MzczOTZjZTkzNWQ0NgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCisKK1BBU1MgVmFsaWRhdGUgY2FsbGJhY2tzIGNh
biBiZSB1cGRhdGVkIHdpdGhpbiBhIGNhbGxiYWNrCitQQVNTIFZhbGlkYXRlIGNhbGxiYWNrcyBh
bmQgbWV0YWRhdGEgZm9yIGdldFVzZXJNZWRpYQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ydmZjLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ydmZjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTBlMzAyNzU3
ZWNiOTg2Y2ZjOTQ2ZGUyNTI3YzQwNDA5NWRhNzYwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMuaHRtbApAQCAtMCwwICsx
LDcyIEBACis8IWRvY3R5cGUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFJlcXVlc3RW
aWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgor
ICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICAgIDx0aXRsZT5UZXN0aW5nIHJ2
ZmMgb24gZ2V0VXNlck1lZGlhIHN0cmVhbTwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAg
ICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8iIGF1dG9wbGF5
PSIiPjwvdmlkZW8+CisgICAgICAgIDxzY3JpcHQ+Cithc3luYyBmdW5jdGlvbiBncmFiTmV4dE1l
dGFkYXRhKHZpZGVvKQoreworICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0
KSA9PiB7CisgICAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSB2aWRlby5yZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrKChub3csIG1ldGFkYXRhKSA9PiB7CisgICAgICAgICAgICByZXNvbHZlKG1ldGFk
YXRhKTsKKyAgICAgICAgICAgIHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayhpZGVudGlm
aWVyKTsKKyAgICAgICAgfSk7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAg
ICAgcmVqZWN0KCJubyBtZXRhZGF0YSBmb3IgIiArIGlkZW50aWZpZXIpOworICAgICAgICAgICAg
dmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKGlkZW50aWZpZXIpOworICAgICAgICB9LCA1
MDAwKTsKKyAgICB9KTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAg
Y29uc3QgbG9jYWxTdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJN
ZWRpYSh7dmlkZW86IHsgd2lkdGg6IDY0MCwgaGVpZ2h0OiA0ODAgfSB9KTsKKyAgICB2aWRlby5z
cmNPYmplY3QgPSBsb2NhbFN0cmVhbTsKKyAgICBhd2FpdCB2aWRlby5wbGF5KCk7CisKKyAgICBs
ZXQgcmVzb2x2ZTsKKyAgICBsZXQgcHJvbWlzZSA9IG5ldyBQcm9taXNlKHIgPT4gcmVzb2x2ZSA9
IHIpOworICAgIGNvbnN0IGlkMSA9IHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKG5v
dywgbWV0YWRhdGEpID0+IHsKKyAgICAgICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNr
KGlkMSk7CisgICAgICAgIHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayhpZDIpOworCisg
ICAgICAgIGNvbnN0IGlkMyA9IHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKG5vdywg
bWV0YWRhdGEpID0+IHsgYXNzZXJ0X25vdF9yZWFjaGVkKCk7IH0pOworICAgICAgICB2aWRlby5j
YW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soaWQzKTsKKyAgICAgICAgc2V0VGltZW91dChyZXNvbHZl
LCAxMDApOworICAgIH0pOworCisgICAgY29uc3QgaWQyID0gdmlkZW8ucmVxdWVzdFZpZGVvRnJh
bWVDYWxsYmFjaygobm93LCBtZXRhZGF0YSkgPT4geworICAgICAgICBhc3NlcnRfbm90X3JlYWNo
ZWQoKTsKKyAgICB9KTsKKworICAgIHJldHVybiBwcm9taXNlOworfSwgIlZhbGlkYXRlIGNhbGxi
YWNrcyBjYW4gYmUgdXBkYXRlZCB3aXRoaW4gYSBjYWxsYmFjayIpOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBsb2NhbFN0cmVhbSA9IGF3YWl0IG5hdmlnYXRv
ci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzogeyB3aWR0aDogNjQwLCBoZWlnaHQ6
IDQ4MCB9IH0pOworICAgIHZpZGVvLnNyY09iamVjdCA9IGxvY2FsU3RyZWFtOworICAgIGF3YWl0
IHZpZGVvLnBsYXkoKTsKKworICAgIGxldCBtZXRhZGF0YSA9IGF3YWl0IGdyYWJOZXh0TWV0YWRh
dGEodmlkZW8pOworICAgIGFzc2VydF9lcXVhbHMobWV0YWRhdGEud2lkdGgsIDY0MCk7CisgICAg
YXNzZXJ0X2VxdWFscyhtZXRhZGF0YS5oZWlnaHQsIDQ4MCk7CisgICAgYXNzZXJ0X2dyZWF0ZXJf
dGhhbihtZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXMsIDApOworICAgIGNvbnN0IHByZXNlbnRlZEZy
YW1lcyA9IG1ldGFkYXRhLnByZXNlbnRlZEZyYW1lczsKKworICAgIGF3YWl0IGxvY2FsU3RyZWFt
LmdldFZpZGVvVHJhY2tzKClbMF0uYXBwbHlDb25zdHJhaW50cyh7d2lkdGg6IDMyMCwgaGVpZ2h0
OiAyNDB9KTsKKworICAgIGxldCBjb3VudGVyID0gMDsKKyAgICB3aGlsZSAoKytjb3VudGVyIDwg
MTAwICYmIG1ldGFkYXRhLndpZHRoICE9PSAzMjApIHsKKyAgICAgICAgYXdhaXQgbmV3IFByb21p
c2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDUwKSk7CisgICAgICAgIG1ldGFkYXRh
ID0gYXdhaXQgZ3JhYk5leHRNZXRhZGF0YSh2aWRlbyk7CisgICAgfQorICAgIGFzc2VydF9lcXVh
bHMobWV0YWRhdGEud2lkdGgsIDMyMCk7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0
YS5wcmVzZW50ZWRGcmFtZXMsIHByZXNlbnRlZEZyYW1lcyk7Cit9LCAiVmFsaWRhdGUgY2FsbGJh
Y2tzIGFuZCBtZXRhZGF0YSBmb3IgZ2V0VXNlck1lZGlhIik7CisgICAgICAgIDwvc2NyaXB0Pgor
ICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KaW5kZXggNjEwZGQ1Y2Zk
NWFmNTBmYmQ2OTExZmMxNzA1MzhiZmE0MGJkMjY5Ni4uMDExYWJlMjE1YTMyOGZjMjczNTRlNzZk
NjRmZWY0YzkxOTc3OTZmMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jl
c291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24KQEAgLTQ0NSw2ICs0NDUs
NyBAQAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdXJsIjogImltcG9ydCIsIAogICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvdXNlci10aW1pbmciOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy92aWJyYXRpb24iOiAic2tpcCIsIAorICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdmlk
ZW8tcnZmYyI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Zpc3VhbC12aWV3
cG9ydCI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dhaS1hcmlhIjogInNr
aXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dhc20iOiAiaW1wb3J0IiwgCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2
ZmMvTUVUQS55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvTUVUQS55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWU1ODFmNDIzNGFkMzljODE5ZTM3MWE1
MzJjZDQxNjQyMDYwYTdjNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9NRVRBLnltbApAQCAtMCwwICsxLDMg
QEAKK3NwZWM6IGh0dHBzOi8vd2ljZy5naXRodWIuaW8vdmlkZW8tcnZmYy8KK3N1Z2dlc3RlZF9y
ZXZpZXdlcnM6CisgIC0gdGd1aWxiZXJ0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvUkVBRE1FLm1kIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL1JFQURNRS5tZApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hYjdhMzUzMDUxNTg2MWM5MWM0YzAxMmI5M2MyZTBjZjhlOTEzZGVmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy92aWRlby1ydmZjL1JFQURNRS5tZApAQCAtMCwwICsxLDcgQEAKKyMgSFRNTFZpZGVvRWxlbWVu
dC5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIHNwZWNpZmljYXRpb24gVGVzdHMKKworVGhlIEhU
TUxWaWRlb0VsZW1lbnQucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayBzcGVjaWZpY2F0aW9uIGlz
IGF2YWlsYWJsZSBoZXJlOiBodHRwczovL3dpY2cuZ2l0aHViLmlvL3ZpZGVvLXJ2ZmMKKworR2l0
SHViIHJlcG9zaXRvcnk6IGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL3ZpZGVvLXJ2ZmMKKworRmls
ZSBhbiBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3dpY2cvdmlkZW8tcnZmYy9pc3N1ZXMvbmV3
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2lu
ZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNGJjYjYyNGM1NGEwMWQ0MWQ5ODkxYWFjNDBj
OTIxZjI4Mzk2NjU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDIwIEBACisKK1BBU1MgaWRsX3Rlc3Qgc2V0dXAKK1BBU1MgaWRsX3Rl
c3QgdmFsaWRhdGlvbgorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBIVE1MVmlkZW9FbGVtZW50OiBv
cmlnaW5hbCBpbnRlcmZhY2UgZGVmaW5lZAorUEFTUyBQYXJ0aWFsIGludGVyZmFjZSBIVE1MVmlk
ZW9FbGVtZW50OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBIVE1MRWxlbWVudCBpbmNs
dWRlcyBHbG9iYWxFdmVudEhhbmRsZXJzOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBI
VE1MRWxlbWVudCBpbmNsdWRlcyBEb2N1bWVudEFuZEVsZW1lbnRFdmVudEhhbmRsZXJzOiBtZW1i
ZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBIVE1MRWxlbWVudCBpbmNsdWRlcyBFbGVtZW50Q29u
dGVudEVkaXRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBIVE1MRWxlbWVudCBp
bmNsdWRlcyBIVE1MT3JTVkdFbGVtZW50OiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBF
bGVtZW50IGluY2x1ZGVzIFBhcmVudE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNT
IEVsZW1lbnQgaW5jbHVkZXMgTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMg
YXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIENoaWxkTm9kZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBTbG90dGFibGU6IG1lbWJlciBuYW1l
cyBhcmUgdW5pcXVlCitQQVNTIEhUTUxWaWRlb0VsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24g
cmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayhWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrKQorUEFT
UyBIVE1MVmlkZW9FbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIGNhbmNlbFZpZGVvRnJhbWVD
YWxsYmFjayh1bnNpZ25lZCBsb25nKQorUEFTUyBIVE1MVmlkZW9FbGVtZW50IGludGVyZmFjZTog
dmlkZW8gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJyZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKFZp
ZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2spIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBIVE1M
VmlkZW9FbGVtZW50IGludGVyZmFjZTogY2FsbGluZyByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNr
KFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2spIG9uIHZpZGVvIHdpdGggdG9vIGZldyBhcmd1bWVu
dHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IKK1BBU1MgSFRNTFZpZGVvRWxlbWVudCBpbnRlcmZhY2U6
IHZpZGVvIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKHVu
c2lnbmVkIGxvbmcpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQorUEFTUyBIVE1MVmlkZW9FbGVtZW50
IGludGVyZmFjZTogY2FsbGluZyBjYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2sodW5zaWduZWQgbG9u
Zykgb24gdmlkZW8gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvcgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQ0MDg4ZmU0MmUxZjc0OGM5ZjNjNzNhMGQ0N2YzNjYyMDQ3OTBlOTEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53aW5kb3cuaHRtbApAQCAtMCwwICsxLDIgQEAKKzwh
ZG9jdHlwZSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgUmVxdWVzdFZpZGVvRnJhbWVD
YWxsYmFja0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9y
IFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53aW5kb3cuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53aW5kb3cuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZmE5ZTRlMDk4OGJmNjdjODhkY2NkMjk3Y2Y1NjRiYjk3ZDVkZTZiZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy5qcwpAQCAtMCwwICsxLDE3IEBACisvLyBNRVRB
OiBzY3JpcHQ9L3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMKKy8vIE1FVEE6IHNjcmlwdD0vcmVz
b3VyY2VzL2lkbGhhcm5lc3MuanMKKy8vIE1FVEE6IHRpbWVvdXQ9bG9uZworCisndXNlIHN0cmlj
dCc7CisKK2lkbF90ZXN0KAorICBbJ3ZpZGVvLXJ2ZmMnXSwKKyAgWydodG1sJywgJ2RvbSddLAor
ICBpZGxfYXJyYXkgPT4geworICAgIGlkbF9hcnJheS5hZGRfb2JqZWN0cyh7CisgICAgICBIVE1M
VmlkZW9FbGVtZW50OiBbJ3ZpZGVvJ10sCisgICAgfSk7CisgICAgc2VsZi52aWRlbyA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgIH0KKyk7CisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0
LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZm
Yy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjQ3N2MwOTMxOTlkNTJmMmVjOGIyZmU2ZTE1NTZlZGVk
OTE5YTU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stYmVm
b3JlLXhyLXNlc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorCitIYXJu
ZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9VVCBNYWtlIHN1cmUg
dmlkZW8uclZGQyB3b3JrcyBkdXJpbmcgYSBub24taW1tZXJzaXZlIHNlc3Npb24gLSB3ZWJnbCBU
ZXN0IHRpbWVkIG91dAorTk9UUlVOIE1ha2Ugc3VyZSB2aWRlby5yVkZDIHdvcmtzIGR1cmluZyBh
IG5vbi1pbW1lcnNpdmUgc2Vzc2lvbiAtIHdlYmdsMgorTk9UUlVOIE1ha2Ugc3VyZSB2aWRlby5y
VkZDIHdvcmtzIGR1cmluZyBhbiBpbW1lcnNpdmUgc2Vzc2lvbiAtIHdlYmdsCitOT1RSVU4gTWFr
ZSBzdXJlIHZpZGVvLnJWRkMgd29ya3MgZHVyaW5nIGFuIGltbWVyc2l2ZSBzZXNzaW9uIC0gd2Vi
Z2wyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14ci1z
ZXNzaW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHIt
c2Vzc2lvbi5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyNzdmYmJhOTJmYmY2MzU3OWFkNGQ0ZDVh
MmNhMWRjMmUzNTZjZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxs
YmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8dGl0bGU+VGVzdCB0aGF0IHZpZGVvLnJWRkMgY2FsbGJhY2tz
IHN0YXJ0ZWQgYmVmb3JlIGFuIFhSU2Vzc2lvbiB3b3JrLjwvdGl0bGU+Cis8Ym9keT4KKzwvYm9k
eT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvY29tbW9uL21lZGlhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi93
ZWJ4ci9yZXNvdXJjZXMvd2VieHJfdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
d2VieHIvcmVzb3VyY2VzL3dlYnhyX3Rlc3RfY29uc3RhbnRzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CisKKy8vIFN0YXJ0IHRoZSB2aWRlby5yVkZDIGNhbGxiYWNrcyBiZWZvcmUgc3RhcnRpbmcg
dGhlIFhSIFNlc3Npb24uCitsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRl
bycpOwordmlkZW8uc3JjID0gZ2V0VmlkZW9VUkkoJy9tZWRpYS9tb3ZpZV81Jyk7CisKK3ZhciBu
dW1iZXJWRkNzID0gMDsKK2xldCB2aWRlb0NhbGxiYWNrID0gKCkgPT4geworICAgIG51bWJlclZG
Q3MrKzsKKyAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHZpZGVvQ2FsbGJhY2sp
OworfQorCit2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHZpZGVvQ2FsbGJhY2spOwor
dmlkZW8ucGxheSgpOworCitsZXQgdGVzdEZ1bmN0aW9uID0gYXN5bmMgZnVuY3Rpb24oc2Vzc2lv
biwgZmFrZURldmljZUNvbnRyb2xsZXIsIHQpIHsKKyAgICBsZXQgd2F0Y2hlckRvbmUgPSBuZXcg
RXZlbnQoIndhdGNoZXJkb25lIik7CisgICAgbGV0IGV2ZW50V2F0Y2hlciA9IG5ldyBFdmVudFdh
dGNoZXIodCwgc2Vzc2lvbiwgWyJlbmQiLCAid2F0Y2hlcmRvbmUiXSk7CisgICAgbGV0IGV2ZW50
UHJvbWlzZSA9IGV2ZW50V2F0Y2hlci53YWl0X2ZvcihbImVuZCIsICJ3YXRjaGVyZG9uZSJdKTsK
KworICAgIG51bWJlclZGQ3MgPSAwOworCisgICAgZnVuY3Rpb24gb25YUkZyYW1lKHRpbWUsIGZy
YW1lKSB7CisgICAgICAgIGlmKG51bWJlclZGQ3MgPj0gMikgeworICAgICAgICAgICAgLy8gTWFr
ZSBzdXJlIHZpZGVvLnJWRkNzIGFyZSBzdGlsbCBjb21pbmcgdGhyb3VnaCBiZWZvcmUgZW5kaW5n
IHRoZQorICAgICAgICAgICAgLy8gc2Vzc2lvbi4KKyAgICAgICAgICAgIHNlc3Npb24uZW5kKCk7
CisgICAgICAgIH0KKworICAgICAgICBzZXNzaW9uLnJlcXVlc3RBbmltYXRpb25GcmFtZShvblhS
RnJhbWUpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uU2Vzc2lvbkVuZChldmVudCkgeworICAg
ICAgICAvLyBNYWtlIHN1cmUgd2UgYXJlIHN0aWxsIGdldHRpbmcgclZGQyBjYWxsYmFja3MgYWZ0
ZXIgdGhlIHNlc3Npb24gZW5kLgorICAgICAgICBudW1iZXJWRkNzID0gMDsKKyAgICAgICAgdC5z
dGVwX3dhaXRfZnVuYygoKSA9PiBudW1iZXJWRkNzID49IDIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgKCkgPT4gc2Vzc2lvbi5kaXNwYXRjaEV2ZW50KHdhdGNoZXJEb25lKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAiVGltZSBvdXQgd2FpdGluZyBmb3IgVkZDIGNhbGxiYWNrcyIpOwor
ICAgIH0KKworICAgIHNlc3Npb24uYWRkRXZlbnRMaXN0ZW5lcigiZW5kIiwgb25TZXNzaW9uRW5k
LCBmYWxzZSk7CisgICAgc2Vzc2lvbi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUob25YUkZyYW1lKTsK
KworICAgIHJldHVybiBldmVudFByb21pc2U7Cit9CisKK3hyX3Nlc3Npb25fcHJvbWlzZV90ZXN0
KCdNYWtlIHN1cmUgdmlkZW8uclZGQyB3b3JrcyBkdXJpbmcgYSBub24taW1tZXJzaXZlIHNlc3Np
b24nLAorICAgIHRlc3RGdW5jdGlvbiwgVFJBQ0tFRF9JTU1FUlNJVkVfREVWSUNFLCAnaW5saW5l
Jyk7CisKK3ZpZGVvLmN1cnJlbnRUaW1lID0gMDsKKworeHJfc2Vzc2lvbl9wcm9taXNlX3Rlc3Qo
J01ha2Ugc3VyZSB2aWRlby5yVkZDIHdvcmtzIGR1cmluZyBhbiBpbW1lcnNpdmUgc2Vzc2lvbics
CisgICAgdGVzdEZ1bmN0aW9uLCBUUkFDS0VEX0lNTUVSU0lWRV9ERVZJQ0UsICdpbW1lcnNpdmUt
dnInKTsKKworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFt
ZS1jYWxsYmFjay1kb20tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2st
ZG9tLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjM5ZDRmMjg4NWUxZjk3NjQ4ZDUwNTQ3NzBl
YWZlYjQzMmRjNTBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJh
Y2stZG9tLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKworSGFybmVzcyBFcnJvciAoVElN
RU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK1RJTUVPVVQgVGVzdCBhIHZpZGVvIG91dHNpZGUgb2Yg
dGhlIERPTSBjYW4gc3RpbGwgdXNlIHZpZGVvLnJWRkMuIFRlc3QgdGltZWQgb3V0CitUSU1FT1VU
IFRlc3QgdmlkZW8uclZGQyB3b3JrcyB3aXRoICJkaXNwbGF5Om5vbmUiLiBUZXN0IHRpbWVkIG91
dAorVElNRU9VVCBUZXN0IHZpZGVvLnJWRkMgd29ya3Mgd2l0aCAidmlzaWJpbGl0eTpoaWRkZW4i
LiBUZXN0IHRpbWVkIG91dAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFj
ay1kb20uaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjAyNzdkNzI5Nzg4M2M0Y2Q0ZjQ3MmIwOGM0Mzk5ODA2MjgwZmU4ZWIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVv
LXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kb20uaHRtbApAQCAtMCwwICsxLDUw
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHRpdGxlPlRlc3QgdGhlIHZpZGVvLnJlcXVl
c3RWaWRlb0ZyYW1lQ2FsbGJhY2soKSBBUEkgZm9yIG5vbiB2aXNpYmxlIHZpZGVvIGVsZW1lbnRz
LjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9tZWRpYS5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzwv
Ym9keT4KKzxzY3JpcHQ+Cit2YXIgdGVzdFZpZGVvID0geworICB1cmw6IGdldFZpZGVvVVJJKCcv
bWVkaWEvbW92aWVfNScpLAorICBoZWlnaHQ6IDI0MCwKKyAgd2lkdGg6IDMyMCwKK30KKworYXN5
bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgbGV0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgndmlkZW8nKTsKKworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodC5z
dGVwX2Z1bmNfZG9uZSgpKTsKKyAgICB2aWRlby5zcmMgPSB0ZXN0VmlkZW8udXJsOworICAgIHZp
ZGVvLnBsYXkoKTsKKworfSwgJ1Rlc3QgYSB2aWRlbyBvdXRzaWRlIG9mIHRoZSBET00gY2FuIHN0
aWxsIHVzZSB2aWRlby5yVkZDLicpOworCitmdW5jdGlvbiBydmZjU3R5bGVUZXN0KGFwcGx5U3R5
bGUsIGRlc2NyaXB0aW9uKSB7CisgICAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICBs
ZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisgICAgICBhcHBseVN0eWxlKHZpZGVvKTsKKwor
ICAgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygKKyAgICAgICAgdC5zdGVwX2Z1
bmMoIF8gPT4geworICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBjYW4gcmVjZWl2ZSBtb3JlIHRo
YW4gb25lIGNhbGxiYWNrLgorICAgICAgICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2sodC5zdGVwX2Z1bmNfZG9uZSgpKTsKKyAgICAgICAgfSkKKyAgICAgICk7CisKKyAgICAgIHZp
ZGVvLnNyYyA9IHRlc3RWaWRlby51cmw7CisgICAgICB2aWRlby5wbGF5KCk7CisgICAgfSwgZGVz
Y3JpcHRpb24pOworfQorCitydmZjU3R5bGVUZXN0KCh2aWRlbykgPT4geyB2aWRlby5zdHlsZS5k
aXNwbGF5ID0gIm5vbmUifSwKKyAgJ1Rlc3QgdmlkZW8uclZGQyB3b3JrcyB3aXRoICJkaXNwbGF5
Om5vbmUiLicpOworCitydmZjU3R5bGVUZXN0KCh2aWRlbykgPT4geyB2aWRlby5zdHlsZS52aXNp
YmlsaXR5ID0gImhpZGRlbiJ9LAorICAnVGVzdCB2aWRlby5yVkZDIHdvcmtzIHdpdGggInZpc2li
aWxpdHk6aGlkZGVuIi4nKTsKKworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVz
dC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2
ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5odHRwcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTc3MjAyMGU0OTAyNzFiNDM0MjQxZDk0OTg2MjFmYTll
YjgxYTRjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1
cmluZy14ci1zZXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworSGFy
bmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK1RJTUVPVVQgTWFrZSBzdXJl
IHZpZGVvLnJWRkMgY2FsbGJhY2tzIHN0YXJ0ZWQgZHVyaW5nIGFuIGltbWVyc2l2ZSBzZXNzaW9u
IGNvbnRpbnVlIGFmdGVyIGl0IGVuZHMgLSB3ZWJnbCBUZXN0IHRpbWVkIG91dAorTk9UUlVOIE1h
a2Ugc3VyZSB2aWRlby5yVkZDIGNhbGxiYWNrcyBzdGFydGVkIGR1cmluZyBhbiBpbW1lcnNpdmUg
c2Vzc2lvbiBjb250aW51ZSBhZnRlciBpdCBlbmRzIC0gd2ViZ2wyCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1
ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmluZy14ci1zZXNzaW9uLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVx
dWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5odHRwcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM0NTYxZWU1ZmQwNjU5NDRkMTMzZmE1ZDMxNGI2Y2VkMmY3OTQ3M2UKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lv
bi5odHRwcy5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
dGl0bGU+VGVzdCB0aGF0IHZpZGVvLnJWRkMgY2FsbGJhY2tzIHN0YXJ0ZWQgZHVyaW5nIGFuIFhS
U2Vzc2lvbiB3b3JrLjwvdGl0bGU+Cis8Ym9keT4KKyAgICA8Y2FudmFzLz4KKzwvYm9keT4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvY29tbW9uL21lZGlhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi93ZWJ4ci9y
ZXNvdXJjZXMvd2VieHJfdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vd2VieHIv
cmVzb3VyY2VzL3dlYnhyX3Rlc3RfY29uc3RhbnRzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisK
K2xldCB0ZXN0RnVuY3Rpb24gPSBhc3luYyBmdW5jdGlvbihzZXNzaW9uLCBmYWtlRGV2aWNlQ29u
dHJvbGxlciwgdCkgeworICAgIGxldCB3YXRjaGVyRG9uZSA9IG5ldyBFdmVudCgid2F0Y2hlcmRv
bmUiKTsKKyAgICBsZXQgZXZlbnRXYXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCBzZXNzaW9u
LCBbImVuZCIsICJ3YXRjaGVyZG9uZSJdKTsKKyAgICBsZXQgZXZlbnRQcm9taXNlID0gZXZlbnRX
YXRjaGVyLndhaXRfZm9yKFsiZW5kIiwgIndhdGNoZXJkb25lIl0pOworCisgICAgLy8gU3RhcnQg
dGhlIHZpZGVvLnJWRkMgY2FsbGJhY2tzIHdoaWxlIHdlIGFyZSBpbiB0aGUgdGhlIFhSIFNlc3Np
b24uCisgICAgbGV0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAg
ICB2aWRlby5zcmMgPSBnZXRWaWRlb1VSSSgnL21lZGlhL21vdmllXzUnKTsKKworICAgIHZhciBu
dW1iZXJWRkNzID0gMDsKKyAgICBsZXQgdmlkZW9DYWxsYmFjayA9ICgpID0+IHsKKyAgICAgICAg
bnVtYmVyVkZDcysrOworICAgICAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHZp
ZGVvQ2FsbGJhY2spOworICAgIH0KKworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2sodmlkZW9DYWxsYmFjayk7CisgICAgdmlkZW8ucGxheSgpOworCisgICAgZnVuY3Rpb24gb25Y
UkZyYW1lKHRpbWUsIGZyYW1lKSB7CisgICAgICAgIGlmKG51bWJlclZGQ3MgPj0gMikgeworICAg
ICAgICAgICAgLy8gTWFrZSBzdXJlIHZpZGVvLnJWRkNzIGFyZSBjb21pbmcgdGhyb3VnaCBiZWZv
cmUgZW5kaW5nIHRoZQorICAgICAgICAgICAgLy8gc2Vzc2lvbi4KKyAgICAgICAgICAgIHNlc3Np
b24uZW5kKCk7CisgICAgICAgIH0KKworICAgICAgICBzZXNzaW9uLnJlcXVlc3RBbmltYXRpb25G
cmFtZShvblhSRnJhbWUpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uU2Vzc2lvbkVuZChldmVu
dCkgeworICAgICAgICAvLyBNYWtlIHN1cmUgd2UgYXJlIHN0aWxsIGdldHRpbmcgclZGQyBjYWxs
YmFja3MgYWZ0ZXIgdGhlIHNlc3Npb24gZW5kLgorICAgICAgICBudW1iZXJWRkNzID0gMDsKKyAg
ICAgICAgdC5zdGVwX3dhaXRfZnVuYygoKSA9PiBudW1iZXJWRkNzID49IDIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgKCkgPT4gc2Vzc2lvbi5kaXNwYXRjaEV2ZW50KHdhdGNoZXJEb25lKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAiVGltZSBvdXQgd2FpdGluZyBmb3IgVkZDIGNhbGxi
YWNrcyIpOworICAgIH0KKworICAgIHNlc3Npb24uYWRkRXZlbnRMaXN0ZW5lcigiZW5kIiwgb25T
ZXNzaW9uRW5kLCBmYWxzZSk7CisgICAgc2Vzc2lvbi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUob25Y
UkZyYW1lKTsKKworICAgIHJldHVybiBldmVudFByb21pc2U7Cit9CisKK3hyX3Nlc3Npb25fcHJv
bWlzZV90ZXN0KCdNYWtlIHN1cmUgdmlkZW8uclZGQyBjYWxsYmFja3Mgc3RhcnRlZCBkdXJpbmcg
YW4gaW1tZXJzaXZlIHNlc3Npb24gY29udGludWUgYWZ0ZXIgaXQgZW5kcycsCisgICAgdGVzdEZ1
bmN0aW9uLCBUUkFDS0VEX0lNTUVSU0lWRV9ERVZJQ0UsICdpbW1lcnNpdmUtdnInKTsKKworPC9z
Y3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uY2E3Y2IzZTk0Y2RmYjI1MjU4YjlkOTliNGY0ZDQ3ZWRhMGU3NzIxNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEwIEBACisKKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxs
CisKK1RJTUVPVVQgVGVzdCB3ZSBjYW4gcmVnaXN0ZXIgYSB2aWRlby5yVkZDIGNhbGxiYWNrLiBU
ZXN0IHRpbWVkIG91dAorVElNRU9VVCBUZXN0IHZpZGVvLnJWRkMgY2FsbGJhY2tzIHJ1biBiZWZv
cmUgd2luZG93LnJBRiBjYWxsYmFja3MuIFRlc3QgdGltZWQgb3V0CitUSU1FT1VUIFRlc3Qgd2Ug
Y2FuIGNhbmNlbCBhIHZpZGVvLnJWRkMgcmVxdWVzdC4gVGVzdCB0aW1lZCBvdXQKK1BBU1MgVGVz
dCBpbnZhbGlkIGNhbGxzIHRvIHRoZSB2aWRlby5yVkZDIEFQSS4KK1RJTUVPVVQgVGVzdCB2aWRl
by5yVkZDIGRvZXMgbm90IHN0b3Agd2hlbiBzd2l0Y2hpbmcgc291cmNlcy4gVGVzdCB0aW1lZCBv
dXQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92
aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZmZTY4NGFlOGU2NmRhYjhjY2U2OGQyMjc1MzU5NWE4NDQ4YzZiOTAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisKKworSGFybmVzcyBFcnJvciAoVElNRU9VVCks
IG1lc3NhZ2UgPSBudWxsCisKK1RJTUVPVVQgVGVzdCBjYWxsYmFja3MgZ2V0IHRoZSBzYW1lIGlu
Zm9ybWF0aW9uLiBUZXN0IHRpbWVkIG91dAorVElNRU9VVCBUZXN0IHdlIGNhbiBjYW5jZWwgY2Fs
bGJhY2tzIGZyb20gY2FsbGJhY2tzLiBUZXN0IHRpbWVkIG91dAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVz
dC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUt
Y2FsbGJhY2stcGFyYWxsZWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNGM1ZGUxYWRmNTViYTAwMTZhYjk5
ODU3NzZjNTY4ZTQ5ZjU5NTZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUt
Y2FsbGJhY2stcGFyYWxsZWwuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPHRpdGxlPlRlc3QgaGF2aW5nIG11bHRpcGxlIHZpZGVvLnJWRkMgY2FsbGJhY2tz
IGluIGZsaWdodCBmb3IgYSBzaW5nbGUgZWxlbWVudC48L3RpdGxlPgorPGJvZHk+PC9ib2R5Pgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9jb21tb24vbWVkaWEuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworYXN5bmNfdGVz
dChmdW5jdGlvbih0KSB7CisgICAgbGV0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
dmlkZW8nKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKKworICAgIGxl
dCBmaXJzdFRpbWU7CisgICAgbGV0IGZpcnN0TWV0YWRhdGE7CisKKyAgICB2aWRlby5yZXF1ZXN0
VmlkZW9GcmFtZUNhbGxiYWNrKHQuc3RlcF9mdW5jKCh0aW1lLCBtZXRhZGF0YSkgPT4geworICAg
ICAgZmlyc3RUaW1lID0gdGltZTsKKyAgICAgIGZpcnN0TWV0YWRhdGEgPSBtZXRhZGF0YTsKKyAg
ICB9KSk7CisKKyAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHQuc3RlcF9mdW5j
X2RvbmUoKHRpbWUsIG1ldGFkYXRhKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKGZpcnN0VGlt
ZSwgdGltZSk7CisgICAgICBhc3NlcnRfb2JqZWN0X2VxdWFscyhmaXJzdE1ldGFkYXRhLCBtZXRh
ZGF0YSk7CisgICAgfSkpOworCisgICAgdmlkZW8uc3JjID0gZ2V0VmlkZW9VUkkoJy9tZWRpYS9t
b3ZpZV81Jyk7CisgICAgdmlkZW8ucGxheSgpOworCit9LCAnVGVzdCBjYWxsYmFja3MgZ2V0IHRo
ZSBzYW1lIGluZm9ybWF0aW9uLicpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBs
ZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOworCisgICAgbGV0IHNlY29uZENhbGxiYWNrSWQ7CisK
KyAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKAorICAgICAgdC5zdGVwX2Z1bmMo
XyA9PiB7IHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayhzZWNvbmRDYWxsYmFja0lkKTsg
fSkKKyAgICApOworCisgICAgc2Vjb25kQ2FsbGJhY2tJZCA9IHZpZGVvLnJlcXVlc3RWaWRlb0Zy
YW1lQ2FsbGJhY2soCisgICAgICB0LnN0ZXBfZnVuYyhfID0+IHsKKyAgICAgICAgYXNzZXJ0X3Vu
cmVhY2hlZCgiQ2FuY2VsbGVkIGNhbGxiYWNrcyBzaG91bGRuJ3QgYmUgZXhlY3V0ZWQiKQorICAg
ICAgfSkKKyAgICApOworCisgICAgLy8gTk9URTogVGhpcyBjYWxsYmFjayBzaG91bGQgYmUgZXhl
Y3V0ZWQgbGFzdC4KKyAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKAorICAgICAg
dC5zdGVwX2Z1bmNfZG9uZSgpCisgICAgKTsKKworICAgIHZpZGVvLnNyYyA9IGdldFZpZGVvVVJJ
KCcvbWVkaWEvbW92aWVfNScpOworICAgIHZpZGVvLnBsYXkoKTsKK30sICdUZXN0IHdlIGNhbiBj
YW5jZWwgY2FsbGJhY2tzIGZyb20gY2FsbGJhY2tzLicpOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1yZXBlYXRpbmctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iNGE1YmUzZGQyNTEyYjg1YzM4NTU1YjhmM2NlNzAzNjc4ZWQ0ZGZkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKworCitIYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVz
c2FnZSA9IG51bGwKKworVElNRU9VVCBUZXN0IG5ldyBjYWxsYmFja3MgYXJlIG9ubHkgY2FsbGVk
IG9uIHRoZSBuZXh0IGZyYW1lLiBUZXN0IHRpbWVkIG91dAorVElNRU9VVCBUZXN0IGNoYWluaW5n
IGNhbGxzIHRvIHZpZGVvLnJWRkMsIGFuZCB2ZXJpZnkgdGhlIHJlcXVpcmVkIHBhcmFtZXRlcnMu
IFRlc3QgdGltZWQgb3V0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNr
LXJlcGVhdGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTYzN2EwODcyY2IwZDBjMTUxZTBhODBhNmE1Njk0NDlmZDIyMmExYgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy5o
dG1sCkBAIC0wLDAgKzEsODAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8dGl0bGU+VGVz
dCByZXBlYXRlZGx5IGNoYWluaW5nIHZpZGVvLnJWRkMoKSBjYWxsYmFja3MuPC90aXRsZT4KKzxi
b2R5PjwvYm9keT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL21lZGlhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRl
byk7CisKKyAgICBsZXQgZmlyc3RUaW1lOworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2Fs
bGJhY2sodC5zdGVwX2Z1bmMoKHRpbWUpID0+IHsKKyAgICAgIGZpcnN0VGltZSA9IHRpbWU7CisK
KyAgICAgIC8vIFF1ZXVlIHVwIGEgY2FsbGJhY2sgYW5kIG1ha2Ugc3VyZSBpdCdzIG5vdCBpbW1l
ZGlhdGVseSBleGVjdXRlZC4KKyAgICAgIGxldCBzZWNvbmRUaW1lOworICAgICAgdmlkZW8ucmVx
dWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0ZXBfZnVuYygodGltZSkgPT4geworICAgICAgICBz
ZWNvbmRUaW1lID0gdGltZTsKKyAgICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihzZWNvbmRUaW1l
LCBmaXJzdFRpbWUsICJDYWxsYmFja3Mgc2hvdWxkIGJlIGV4ZWN1dGVkIG9uIHRoZSBuZXh0IGZy
YW1lIik7CisgICAgICB9KSkKKworICAgICAgLy8gUXVldWUgdXAgYSBzZWNvbmQgY2FsbGJhY2ss
IGFuZCBtYWtlIHN1cmUgaXQncyBjYWxsZWQgYXQgdGhlIHNhbWUgdGltZQorICAgICAgLy8gYXMg
dGhlIG9uZSB3ZSBqdXN0IHF1ZXVlZCB1cC4KKyAgICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1l
Q2FsbGJhY2sodC5zdGVwX2Z1bmNfZG9uZSgodGltZSkgPT4geworICAgICAgICBhc3NlcnRfZXF1
YWxzKHRpbWUsIHNlY29uZFRpbWUsICJDYWxsYmFja3MgcXVldWVkIHRvZ2V0aGVyIHNob3VsZCBi
ZSBjYWxsZWQgYXQgdGhlIHNhbWUgdGltZSIpOworICAgICAgfSkpCisKKyAgICB9KSk7CisKKyAg
ICB2aWRlby5zcmMgPSBnZXRWaWRlb1VSSSgnL21lZGlhL21vdmllXzUnKTsKKyAgICB2aWRlby5w
bGF5KCk7CisKK30sICdUZXN0IG5ldyBjYWxsYmFja3MgYXJlIG9ubHkgY2FsbGVkIG9uIHRoZSBu
ZXh0IGZyYW1lLicpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8g
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQodmlkZW8pOworCisgICAgbGV0IG1heE51bWJlck9mQ2FsbHMgPSAxMDsKKyAgICBs
ZXQgY3VycmVudENhbGxOdW1iZXIgPSAwOworICAgIGxldCBsYXN0TWV0YWRhdGE7CisKKyAgICBm
dW5jdGlvbiB2ZXJpZnlNZXRhZGF0YShsYXN0LCBjdXJyZW50KSB7CisgICAgICBhc3NlcnRfZ3Jl
YXRlcl90aGFuKGN1cnJlbnQucHJlc2VudGVkRnJhbWVzLCBsYXN0LnByZXNlbnRlZEZyYW1lcywg
InByZXNlbnRlZEZyYW1lcyBzaG91bGQgYmUgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIik7Cisg
ICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGN1cnJlbnQucHJlc2VudGF0aW9uVGltZSwgbGFzdC5w
cmVzZW50YXRpb25UaW1lLCAicHJlc2VudGF0aW9uVGltZSBzaG91bGQgYmUgbW9ub3RvbmljYWxs
eSBpbmNyZWFzaW5nIik7CisgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGN1cnJlbnQuZXhwZWN0
ZWREaXNwbGF5VGltZSwgbGFzdC5leHBlY3RlZERpc3BsYXlUaW1lLCAiZXhwZWN0ZWREaXNwbGF5
VGltZSBzaG91bGQgYmUgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIik7CisKKyAgICAgIC8vIFdl
IGFyZW4ndCBzZWVraW5nIHRocm91Z2ggdGhlIGZpbGUsIHNvIHRoaXMgc2hvdWxkIGJlIGluY3Jl
YXNpbmcgZnJvbSBmcmFtZSB0byBmcmFtZS4KKyAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oY3Vy
cmVudC5tZWRpYVRpbWUsIGxhc3QubWVkaWFUaW1lLCAibWVkaWFUaW1lIHNob3VsZCBiZSBpbmNy
ZWFzaW5nIik7CisKKyAgICAgIC8vIFRoZSB0ZXN0IHZpZGVvJ3Mgc2l6ZSBkb2Vzbid0IGNoYW5n
ZS4KKyAgICAgIGFzc2VydF9lcXVhbHMoY3VycmVudC53aWR0aCwgbGFzdC53aWR0aCwgIndpZHRo
IHNob3VsZCByZW1haW4gY29uc3RhbnQiKTsKKyAgICAgIGFzc2VydF9lcXVhbHMoY3VycmVudC5o
ZWlnaHQsIGxhc3QuaGVpZ2h0LCAiaGVpZ2h0IHNob3VsZCByZW1haW4gY29uc3RhbnQiKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiByZXBlYXRpbmdDYWxsYmFjayh0aW1lLCBtZXRhZGF0YSkgewor
ICAgICAgLy8gU2tpcCB0aGUgZmlyc3QgY2FsbCB0byB2ZXJpZnlNZXRhZGF0YS4KKyAgICAgIGlm
IChjdXJyZW50Q2FsbE51bWJlcikKKyAgICAgICAgdmVyaWZ5TWV0YWRhdGEobGFzdE1ldGFkYXRh
LCBtZXRhZGF0YSkKKworICAgICAgbGFzdE1ldGFkYXRhID0gbWV0YWRhdGE7CisKKyAgICAgIGlm
ICgrK2N1cnJlbnRDYWxsTnVtYmVyID4gbWF4TnVtYmVyT2ZDYWxscykgeworICAgICAgICB0LmRv
bmUoKQorICAgICAgfSBlbHNlIHsKKyAgICAgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxs
YmFjayh0LnN0ZXBfZnVuYyhyZXBlYXRpbmdDYWxsYmFjaykpOworICAgICAgfQorICAgIH0KKwor
ICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodC5zdGVwX2Z1bmMocmVwZWF0aW5n
Q2FsbGJhY2spKTsKKworICAgIHZpZGVvLnNyYyA9IGdldFZpZGVvVVJJKCcvbWVkaWEvbW92aWVf
NScpOworICAgIHZpZGVvLnBsYXkoKTsKKworfSwgJ1Rlc3QgY2hhaW5pbmcgY2FsbHMgdG8gdmlk
ZW8uclZGQywgYW5kIHZlcmlmeSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVycy4nKTsKKzwvc2NyaXB0
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2std2VicnRj
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXdlYnJ0Yy5o
dHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGQ1NGQwZWFhZTc4ODY0NmZiMGRmMTE4Mjg4
MjMxZmIyNTQ4Nzc3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxi
YWNrLXdlYnJ0Yy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK0ZBSUwgVGVz
dCB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKCkgcGFyYW1ldGVycyBmb3IgV2ViUlRD
IGFwcGxpY2F0aW9ucy4gYXNzZXJ0X2dyZWF0ZXJfdGhhbjogZXhwZWN0ZWQgYSBudW1iZXIgYnV0
IGdvdCBhICJ1bmRlZmluZWQiCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2Fs
bGJhY2std2VicnRjLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay13ZWJy
dGMuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDdlOGQ3ZjNjOWY3YWQxZGE1ZjIzYjlkZGNlZjQ0
Nzc2ODYyMmZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2st
d2VicnRjLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwxNjUgQEAKKzwhZG9jdHlwZSBodG1sPjwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQ9dHJ1
ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPgorICA8dGl0bGU+V2ViUlRDIHZp
ZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKSB0ZXN0PC90aXRsZT4KKyAgPHNjcmlwdCBz
cmM9Ii93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorICA8ZGl2PgorICAgIDx2aWRlbyBp
ZD0ibG9jYWwtdmlldyIgbXV0ZWQgYXV0b3BsYXk9ImF1dG9wbGF5Ij48L3ZpZGVvPgorICAgIDx2
aWRlbyBpZD0icmVtb3RlLXZpZXciIG11dGVkIGF1dG9wbGF5PSJhdXRvcGxheSIvPgorICAgIDwv
dmlkZW8+CisgIDwvZGl2PgorCisgIDwhLS0gVGhlc2UgZmlsZXMgYXJlIGluIHBsYWNlIHdoZW4g
ZXhlY3V0aW5nIG9uIFczQy4gLS0+CisgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cisg
IHZhciB0ZXN0ID0gYXN5bmNfdGVzdCgnVGVzdCB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrKCkgcGFyYW1ldGVycyBmb3IgV2ViUlRDIGFwcGxpY2F0aW9ucy4nKTsKKworICAvLworICAv
LyBUaGlzIHRlc3QgaXMgYmFzZWQgb24gL3dlYnJ0Yy9zaW1wbGVjYWxsLmh0dHBzLmh0bWwsIGJ1
dCBpdCBjYWxscyB0bworICAvLyB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKCkgYmVm
b3JlIGVuZGluZywgdG8gdmVyaWZ5IFdlYlJUQyByZXF1aXJlZAorICAvLyBhbmQgb3B0aW9uYWwg
cGFyYW1ldGVycy4KKyAgLy8KKworICB2YXIgZ0ZpcnN0Q29ubmVjdGlvbiA9IG51bGw7CisgIHZh
ciBnU2Vjb25kQ29ubmVjdGlvbiA9IG51bGw7CisgIHZhciBnQ2FsbGJhY2tDb3VudGVyID0gMDsK
KyAgdmFyIHZlcmlmeV9wYXJhbXMgPSAobm93LCBtZXRhZGF0YSkgPT4geworICAgIGdDYWxsYmFj
a0NvdW50ZXIgPSBnQ2FsbGJhY2tDb3VudGVyICsgMTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFu
KG5vdywgMCk7CisKKyAgICAvLyBWZXJpZnkgYWxsIHJlcXVpcmVkIGZpZWxkcworICAgIGFzc2Vy
dF9ncmVhdGVyX3RoYW4obWV0YWRhdGEucHJlc2VudGF0aW9uVGltZSwgMCk7CisgICAgYXNzZXJ0
X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5leHBlY3RlZERpc3BsYXlUaW1lLCAwKTsKKyAgICBhc3Nl
cnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLnByZXNlbnRlZEZyYW1lcywgMCk7CisgICAgYXNzZXJ0
X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS53aWR0aCwgMCk7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhh
bihtZXRhZGF0YS5oZWlnaHQsIDApOworICAgIGFzc2VydF90cnVlKCJtZWRpYVRpbWUiIGluIG1l
dGFkYXRhLCAibWVkaWFUaW1lIHNob3VsZCBiZSBwcmVzZW50Iik7CisKKyAgICAvLyBWZXJpZnkg
V2ViUlRDIG9ubHkgZmllbGRzLgorICAgIGFzc2VydF90cnVlKCJydHBUaW1lc3RhbXAiIGluIG1l
dGFkYXRhLCAicnRwVGltZXN0YW1wIHNob3VsZCBiZSBwcmVzZW50Iik7CisgICAgYXNzZXJ0X3Ry
dWUoInJlY2VpdmVUaW1lIiBpbiBtZXRhZGF0YSwgInJlY2VpdmVUaW1lIHNob3VsZCBiZSBwcmVz
ZW50Iik7CisgICAgLy8gY2FwdHVyZVRpbWUgaXMgbm90IGF2YWlsYWJsZSB1bnRpbCByb3VuZHRy
aXAgdGltZSBlc3RpbWF0aW9uIGlzIGRvbmUuCisgICAgaWYgKGdDYWxsYmFja0NvdW50ZXIgPiA2
MCB8fCAiY2FwdHVyZVRpbWUiIGluIG1ldGFkYXRhKSB7CisgICAgICBhc3NlcnRfdHJ1ZSgiY2Fw
dHVyZVRpbWUiIGluIG1ldGFkYXRhLCAiY2FwdHVyZVRpbWUgc2hvdWxkIGJlIHByZXNlbnQiKTsK
KyAgICAgIHRlc3QuZG9uZSgpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgIC8vIEtlZXAgcmVx
dWVzdGluZyBjYWxsYmFja3MuCisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVtb3Rl
LXZpZXcnKS5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHRlc3Quc3RlcF9mdW5jKHZlcmlmeV9w
YXJhbXMpKTsKKyAgICB9CisgIH0KKworICB2YXIgdmVyaWZ5X2xvY2FsX21ldGFkYXRhID0gKG5v
dywgbWV0YWRhdGEpID0+IHsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLmV4cGVj
dGVkRGlzcGxheVRpbWUsIDApOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEucHJl
c2VudGVkRnJhbWVzLCAwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLndpZHRo
LCAwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLmhlaWdodCwgMCk7CisgICAg
YXNzZXJ0X3RydWUoImNhcHR1cmVUaW1lIiBpbiBtZXRhZGF0YSwgImNhcHR1cmVUaW1lIHNob3Vs
ZCBhbHdheXMgYmUgcHJlc2VudCBmb3IgbG9jYWwgc291cmNlcy4iKTsKKyAgICBhc3NlcnRfZ3Jl
YXRlcl90aGFuKG1ldGFkYXRhLmNhcHR1cmVUaW1lLCAwKTsKKyAgfQorCisgIC8vIElmIHRoZSBy
ZW1vdGUgdmlkZW8gZ2V0cyB2aWRlbyBkYXRhIHRoYXQgaW1wbGllcyB0aGUgbmVnb3RpYXRpb24K
KyAgLy8gYXMgd2VsbCBhcyB0aGUgSUNFIGFuZCBEVExTIGNvbm5lY3Rpb24gYXJlIHVwLgorICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVtb3RlLXZpZXcnKQorICAgICAgLmFkZEV2ZW50TGlz
dGVuZXIoJ2xvYWRlZG1ldGFkYXRhJywgZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3JlbW90ZS12aWV3JykucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0ZXN0LnN0
ZXBfZnVuYyh2ZXJpZnlfcGFyYW1zKSk7CisgIH0pOworCisgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdsb2NhbC12aWV3JykKKyAgICAgIC5hZGRFdmVudExpc3RlbmVyKCdsb2FkbWV0YWRhdGEn
LCBmdW5jdGlvbigpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9jYWwtdmlldycp
LnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodGVzdC5zdGVwX2Z1bmNfZG9uZSh2ZXJpZnlfbG9j
YWxfbWV0YWRhdGEpKTsKKyAgfSk7CisKKworICBmdW5jdGlvbiBnZXROb2lzZVN0cmVhbU9rQ2Fs
bGJhY2sobG9jYWxTdHJlYW0pIHsKKyAgICBnRmlyc3RDb25uZWN0aW9uID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKG51bGwpOworICAgIHRlc3QuYWRkX2NsZWFudXAoKCkgPT4gZ0ZpcnN0Q29ubmVj
dGlvbi5jbG9zZSgpKTsKKyAgICBnRmlyc3RDb25uZWN0aW9uLm9uaWNlY2FuZGlkYXRlID0gb25J
Y2VDYW5kaWRhdGVUb0ZpcnN0OworCisgICAgZ1NlY29uZENvbm5lY3Rpb24gPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24obnVsbCk7CisgICAgdGVzdC5hZGRfY2xlYW51cCgoKSA9PiBnU2Vjb25kQ29u
bmVjdGlvbi5jbG9zZSgpKTsKKyAgICBnU2Vjb25kQ29ubmVjdGlvbi5vbmljZWNhbmRpZGF0ZSA9
IG9uSWNlQ2FuZGlkYXRlVG9TZWNvbmQ7CisgICAgZ1NlY29uZENvbm5lY3Rpb24ub250cmFjayA9
IG9uUmVtb3RlVHJhY2s7CisKKyAgICBsb2NhbFN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKGZ1
bmN0aW9uKHRyYWNrKSB7CisgICAgICAvLyBCaWRpcmVjdGlvbmFsIHN0cmVhbXMgYXJlIG5lZWRl
ZCBpbiBvcmRlciBmb3IgY2FwdHVyZVRpbWUgdG8gYmUKKyAgICAgIC8vIHBvcHVsYXRlZC4gVXNl
IHRoZSBzYW1lIHNvdXJjZSBpbiBib3RoIGRpcmVjdGlvbnMuCisgICAgICBnRmlyc3RDb25uZWN0
aW9uLmFkZFRyYWNrKHRyYWNrLCBsb2NhbFN0cmVhbSk7CisgICAgICBnU2Vjb25kQ29ubmVjdGlv
bi5hZGRUcmFjayh0cmFjaywgbG9jYWxTdHJlYW0pOworICAgIH0pOworCisgICAgZ0ZpcnN0Q29u
bmVjdGlvbi5jcmVhdGVPZmZlcigpLnRoZW4ob25PZmZlckNyZWF0ZWQsIGZhaWxlZCgnY3JlYXRl
T2ZmZXInKSk7CisKKyAgICB2YXIgdmlkZW9UYWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
bG9jYWwtdmlldycpOworICAgIHZpZGVvVGFnLnNyY09iamVjdCA9IGxvY2FsU3RyZWFtOworICB9
OworCisgIHZhciBvbk9mZmVyQ3JlYXRlZCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKG9mZmVy
KSB7CisgICAgZ0ZpcnN0Q29ubmVjdGlvbi5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKwor
ICAgIC8vIFRoaXMgd291bGQgbm9ybWFsbHkgZ28gYWNyb3NzIHRoZSBhcHBsaWNhdGlvbidzIHNp
Z25hbGluZyBzb2x1dGlvbi4KKyAgICAvLyBJbiBvdXIgY2FzZSwgdGhlICJzaWduYWxpbmciIGlz
IHRvIGNhbGwgdGhpcyBmdW5jdGlvbi4KKyAgICByZWNlaXZlQ2FsbChvZmZlci5zZHApOworICB9
KTsKKworICBmdW5jdGlvbiByZWNlaXZlQ2FsbChvZmZlclNkcCkgeworICAgIHZhciBwYXJzZWRP
ZmZlciA9IG5ldyBSVENTZXNzaW9uRGVzY3JpcHRpb24oeyB0eXBlOiAnb2ZmZXInLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZHA6IG9mZmVyU2Rw
IH0pOworICAgIGdTZWNvbmRDb25uZWN0aW9uLnNldFJlbW90ZURlc2NyaXB0aW9uKHBhcnNlZE9m
ZmVyKTsKKworICAgIGdTZWNvbmRDb25uZWN0aW9uLmNyZWF0ZUFuc3dlcigpLnRoZW4ob25BbnN3
ZXJDcmVhdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsZWQoJ2Ny
ZWF0ZUFuc3dlcicpKTsKKyAgfTsKKworICB2YXIgb25BbnN3ZXJDcmVhdGVkID0gdGVzdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oYW5zd2VyKSB7CisgICAgZ1NlY29uZENvbm5lY3Rpb24uc2V0TG9jYWxE
ZXNjcmlwdGlvbihhbnN3ZXIpOworCisgICAgLy8gU2ltaWxhcmx5LCB0aGlzIHdvdWxkIGdvIG92
ZXIgdGhlIGFwcGxpY2F0aW9uJ3Mgc2lnbmFsaW5nIHNvbHV0aW9uLgorICAgIGhhbmRsZUFuc3dl
cihhbnN3ZXIuc2RwKTsKKyAgfSk7CisKKyAgZnVuY3Rpb24gaGFuZGxlQW5zd2VyKGFuc3dlclNk
cCkgeworICAgIHZhciBwYXJzZWRBbnN3ZXIgPSBuZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKHsg
dHlwZTogJ2Fuc3dlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZHA6IGFuc3dlclNkcCB9KTsKKyAgICBnRmlyc3RDb25uZWN0aW9uLnNldFJl
bW90ZURlc2NyaXB0aW9uKHBhcnNlZEFuc3dlcik7CisgIH07CisKKyAgdmFyIG9uSWNlQ2FuZGlk
YXRlVG9GaXJzdCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgLy8gSWYg
ZXZlbnQuY2FuZGlkYXRlIGlzIG51bGwgPSBubyBtb3JlIGNhbmRpZGF0ZXMuCisgICAgaWYgKGV2
ZW50LmNhbmRpZGF0ZSkgeworICAgICAgZ1NlY29uZENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRl
KGV2ZW50LmNhbmRpZGF0ZSk7CisgICAgfQorICB9KTsKKworICB2YXIgb25JY2VDYW5kaWRhdGVU
b1NlY29uZCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgaWYgKGV2ZW50
LmNhbmRpZGF0ZSkgeworICAgICAgZ0ZpcnN0Q29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZl
bnQuY2FuZGlkYXRlKTsKKyAgICB9CisgIH0pOworCisgIHZhciBvblJlbW90ZVRyYWNrID0gdGVz
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKKyAgICB2YXIgdmlkZW9UYWcgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncmVtb3RlLXZpZXcnKTsKKyAgICBpZiAoIXZpZGVvVGFnLnNyY09i
amVjdCkgeworICAgICAgdmlkZW9UYWcuc3JjT2JqZWN0ID0gZXZlbnQuc3RyZWFtc1swXTsKKyAg
ICB9CisgIH0pOworCisgIC8vIFJldHVybnMgYSBzdWl0YWJsZSBlcnJvciBjYWxsYmFjay4KKyAg
ZnVuY3Rpb24gZmFpbGVkKGZ1bmN0aW9uX25hbWUpIHsKKyAgICByZXR1cm4gdGVzdC51bnJlYWNo
ZWRfZnVuYygnV2ViUlRDIGNhbGxlZCBlcnJvciBjYWxsYmFjayBmb3IgJyArIGZ1bmN0aW9uX25h
bWUpOworICB9CisKKyAgLy8gVGhpcyBmdW5jdGlvbiBzdGFydHMgdGhlIHRlc3QuCisgIHRlc3Qu
c3RlcChmdW5jdGlvbigpIHsKKyAgICBnZXROb2lzZVN0cmVhbSh7IHZpZGVvOiB0cnVlLCBhdWRp
bzogdHJ1ZSB9KQorICAgICAgLnRoZW4odGVzdC5zdGVwX2Z1bmMoZ2V0Tm9pc2VTdHJlYW1Pa0Nh
bGxiYWNrKSwgZmFpbGVkKCdnZXROb2lzZVN0cmVhbScpKTsKKyAgfSk7Cis8L3NjcmlwdD4KKwor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2su
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8t
cnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ0MDQx
NDNmYTQwOGViYmI4ZjQ5Y2MzMTgwZTA2NWQyMDBmZmE0YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1
ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLmh0bWwKQEAgLTAsMCArMSwxNTEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8dGl0bGU+VGVzdCB0aGUgYmFzaWNzIG9mIHRoZSB2aWRlby5yZXF1
ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKCkgQVBJLjwvdGl0bGU+Cis8Ym9keT48L2JvZHk+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL2NvbW1vbi9tZWRpYS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFyIHRlc3RWaWRlbyA9
IHsKKyAgdXJsOiBnZXRWaWRlb1VSSSgnL21lZGlhL21vdmllXzUnKSwKKyAgaGVpZ2h0OiAyNDAs
CisgIHdpZHRoOiAzMjAsCit9CisKK3ZhciBhbHRUZXN0VmlkZW8gPSB7CisgIHVybDogZ2V0Vmlk
ZW9VUkkoJy9tZWRpYS9jb3VudGluZycpLAorICBoZWlnaHQ6IDI0MCwKKyAgd2lkdGg6IDMyMCwK
K30KKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgbGV0IHZpZGVvID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZp
ZGVvKTsKKworICAgIGxldCBpZCA9IHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soCisg
ICAgICB0LnN0ZXBfZnVuY19kb25lKCh0aW1lLCBtZXRhZGF0YSkgPT4geworICAgICAgICBhc3Nl
cnRfdHJ1ZSh0aW1lID4gMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMobWV0YWRhdGEuaGVpZ2h0
LCB0ZXN0VmlkZW8uaGVpZ2h0KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhtZXRhZGF0YS53aWR0
aCwgdGVzdFZpZGVvLndpZHRoKTsKKyAgICAgIH0pCisgICAgKTsKKworICAgIGFzc2VydF90cnVl
KGlkID4gMCk7CisKKyAgICB2aWRlby5zcmMgPSB0ZXN0VmlkZW8udXJsOworICAgIHZpZGVvLnBs
YXkoKTsKKworfSwgJ1Rlc3Qgd2UgY2FuIHJlZ2lzdGVyIGEgdmlkZW8uclZGQyBjYWxsYmFjay4n
KTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgbGV0IHZpZGVvID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZp
ZGVvKTsKKworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soCisgICAgICB0LnN0
ZXBfZnVuYyh2aWRlb19ub3cgPT4geworICAgICAgICAvLyBRdWV1ZSBhIGNhbGwgdG8gd2luZG93
LnJBRiwgYW5kIG1ha2Ugc3VyZSBpdCBpcyBleGVjdXRlZCB3aXRoaW4gdGhlCisgICAgICAgIC8v
IHNhbWUgdHVybiBvZiB0aGUgZXZlbnQgbG9vcCAod2l0aCB0aGUgc2FtZSAndGltZScgcGFyYW1l
dGVyKS4KKyAgICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSggdC5zdGVwX2Z1bmNf
ZG9uZSggd2luZG93X25vdyA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWRlb19ub3cs
IHdpbmRvd19ub3cpOworICAgICAgICB9KSk7CisgICAgICB9KQorICAgICk7CisKKyAgICB2aWRl
by5zcmMgPSB0ZXN0VmlkZW8udXJsOworICAgIHZpZGVvLnBsYXkoKTsKKworfSwgJ1Rlc3Qgdmlk
ZW8uclZGQyBjYWxsYmFja3MgcnVuIGJlZm9yZSB3aW5kb3cuckFGIGNhbGxiYWNrcy4nKTsKKwor
Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCd2aWRlbycpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8p
OworCisgICAgbGV0IGlkID0gdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygKKyAgICAg
IHQuc3RlcF9mdW5jKF8gPT4geworICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJDYW5jZWxsZWQg
Y2FsbGJhY2tzIHNob3VsZG4ndCBiZSBleGVjdXRlZCIpCisgICAgICB9KQorICAgICk7CisKKyAg
ICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soaWQpOworCisgICAgdmlkZW8ucmVxdWVz
dFZpZGVvRnJhbWVDYWxsYmFjaygKKyAgICAgIHQuc3RlcF9mdW5jKF8gPT4geworICAgICAgICAv
LyBBdCB0aGlzIHBvaW50LCB0aGUgb3RoZXIgY2FsbGJhY2sgc2hvdWxkbid0IGhhdmUgZmlyZWQs
IGJ1dAorICAgICAgICAvLyBnaXZlIGl0IHNvbWUgbW9yZSB0aW1lIGFuZCByZWFsbHkgbWFrZSBz
dXJlIGl0IGRvZXNuJ3QsIGJ5IGdvaW5nCisgICAgICAgIC8vIHRocm91Z2h0IHRoZSBldmVudCBs
b29wIG9uY2UgbW9yZS4KKyAgICAgICAgdC5zdGVwX3RpbWVvdXQoKCkgPT4geyB0LmRvbmUoKTsg
fSwgMCk7CisgICAgICB9KQorICAgICk7CisKKyAgICB2aWRlby5zcmMgPSB0ZXN0VmlkZW8udXJs
OworICAgIHZpZGVvLnBsYXkoKTsKK30sICdUZXN0IHdlIGNhbiBjYW5jZWwgYSB2aWRlby5yVkZD
IHJlcXVlc3QuJyk7CisKK3Rlc3QoZnVuY3Rpb24odCkgeworICAgIGxldCB2aWRlbyA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZCh2aWRlbyk7CisKKyAgICAvLyByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKCkgZXhwZWN0cyAx
IGZ1bmN0aW9uIGFzIGEgcGFyYW1ldGVyLgorICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9y
LCBfID0+IHsgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygpIH0gKTsKKyAgICBhc3Nl
cnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgXyA9PiB7IHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2Fs
bGJhY2soMCkgfSk7CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIF8gPT4geyB2aWRl
by5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKCJmb28iKSB9KTsKKworICAgIC8vIGNhbmNlbFZp
ZGVvRnJhbWVDYWxsYmFjaygpIGV4cGVjdHMgMSBudW1iZXIgYXMgYSBwYXJhbWV0ZXIKKyAgICBh
c3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgXyA9PiB7IHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVD
YWxsYmFjaygpIH0gKTsKKworICAgIC8vIEludmFsaWQgY2FsbHMgYXJlIGp1c3Qgbm8tb3BzCisg
ICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKF8gPT4ge30pOworICAgIHZpZGVvLmNh
bmNlbFZpZGVvRnJhbWVDYWxsYmFjayhOYU4pOworICAgIHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVD
YWxsYmFjaygiZm9vIik7CisgICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKDEyMzQ1
KTsKKyAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soLTEpOworCit9LCAnVGVzdCBp
bnZhbGlkIGNhbGxzIHRvIHRoZSB2aWRlby5yVkZDIEFQSS4nKTsKKworcHJvbWlzZV90ZXN0KGFz
eW5jIGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCd2aWRlbycpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOworCisgICAg
bGV0IGZpcnN0X3dpZHRoID0gMDsKKyAgICBsZXQgZmlyc3RfaGVpZ2h0ID0gMDsKKworICAgIHZp
ZGVvLnNyYyA9IHRlc3RWaWRlby51cmw7CisKKyAgICBhd2FpdCB2aWRlby5wbGF5KCk7CisKKyAg
ICAvLyBTd2l0Y2ggdG8gYW5kIGZyb20gYSBzZWNvbmQgdmlkZW8sIGFuZCBtYWtlIHN1cmUgd2Ug
Z2V0IHJWRkMgY2FsbHMgYXQKKyAgICAvLyBlYWNoIHN0ZXAuCisgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgIGxldCBvblJldHVyblRvT3JpZ2luYWxW
aWRlbyA9IHQuc3RlcF9mdW5jKChub3csIG1ldGFkYXRhKSA9PiB7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoZmlyc3Rfd2lkdGgsIG1ldGFkYXRhLndpZHRoKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhmaXJzdF9oZWlnaHQsIG1ldGFkYXRhLmhlaWdodCk7CisKKyAgICAgICAgcmVzb2x2ZSgpOwor
ICAgICAgfSk7CisKKyAgICAgIGxldCBvbkFsdFZpZGVvRmlyc3RGcmFtZSA9IHQuc3RlcF9mdW5j
KChub3csIG1ldGFkYXRhKSA9PiB7CisgICAgICAgIC8vIFRoZSB2aWRlb3MgaGF2ZSBkaWZmZXJl
bnQgc2l6ZXMsIGFuZCBzaG91bGRuJ3QgbWF0Y2guCisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxz
KGZpcnN0X3dpZHRoLCBtZXRhZGF0YS53aWR0aCk7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxz
KGZpcnN0X2hlaWdodCwgbWV0YWRhdGEuaGVpZ2h0KTsKKworICAgICAgICAvLyBTd2l0aCBiYWNr
IHRvIHRoZSBvcmlnaW5hbCB2aWRlby4KKyAgICAgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVD
YWxsYmFjayhvblJldHVyblRvT3JpZ2luYWxWaWRlbyk7CisgICAgICAgIHZpZGVvLnNyYyA9IHRl
c3RWaWRlby51cmw7CisgICAgICB9KTsKKworICAgICAgbGV0IG9uRmlyc3RGcmFtZSA9IHQuc3Rl
cF9mdW5jKChub3csIG1ldGFkYXRhKSA9PiB7CisgICAgICAgIGZpcnN0X3dpZHRoID0gbWV0YWRh
dGEud2lkdGg7CisgICAgICAgIGZpcnN0X2hlaWdodCA9IG1ldGFkYXRhLmhlaWdodDsKKworICAg
ICAgICAvLyBDYWxsYmFja3Mgc2hvdWxkIHBlcnNpc3QgYWZ0ZXIgY2hhbmdpbmcgdGhlIHNvdXJj
ZSB0byB0aGUgYWx0IHZpZGVvLgorICAgICAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrKG9uQWx0VmlkZW9GaXJzdEZyYW1lKTsKKyAgICAgICAgdmlkZW8uc3JjID0gYWx0VGVzdFZp
ZGVvLnVybDsKKyAgICAgIH0pCisKKyAgICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2sob25GaXJzdEZyYW1lKTsKKyAgICB9KTsKK30sICdUZXN0IHZpZGVvLnJWRkMgZG9lcyBub3Qg
c3RvcCB3aGVuIHN3aXRjaGluZyBzb3VyY2VzLicpOworCis8L3NjcmlwdD4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlk
ZW8tcnZmYy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTZmMTVm
ZGIzNzYzZmQzZDQ3NmE2YWJhNTgyNjU5M2M4YzgxY2RjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3czYy1p
bXBvcnQubG9nCkBAIC0wLDAgKzEsMjYgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9NRVRBLnltbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9SRUFETUUubWQKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvaWRs
aGFybmVzcy53aW5kb3cuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHIt
c2Vzc2lvbi5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZG9tLmh0bWwK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
cmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5odHRwcy5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZj
L3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVv
LWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJh
Y2std2VicnRjLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay5odG1sCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggODhm
Nzk5MjlmYzljMmI1YzNiYmU4MWUzODcwOWFhODBlZmYyYzU2Yi4uZTEwNjllZGVjZjk3ZTJlZDc3
NmI4NzdkNDY4NjM1NTA5NjE3Y2ZlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13
azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTM4LDYgKzEzOCwxNSBAQCBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY25hbWUtY2xvYWtpbmctdG9wLW5vLWNuYW1lLXN1Yi0xcC1jbmFt
ZS5odG1sCiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY25hbWUtY2xvYWtpbmct
dG9wLW5vLWNuYW1lLXN1Yi0zcC1jbmFtZS5odG1sIFsgUGFzcyBdCiBodHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvY25hbWUtY2xvYWtpbmctdG9wLW5vLWNuYW1lLXN1Yi1uby1jbmFt
ZS5odG1sIFsgUGFzcyBdCiAKK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8t
cnZmYyBbIFBhc3MgXQorIyBUaW1pbmcgb3V0IHRlc3RzIHVudGlsIHdlIGFkZCByZWd1bGFyIHZp
ZGVvIHN0cmVhbWluZyBiYWNrZW5kIHN1cHBvcnQuCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHIt
c2Vzc2lvbi5odHRwcy5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kb20uaHRtbCBbIFNr
aXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qt
dmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMuaHRtbCBbIFNraXAg
XQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2st
cmVwZWF0aW5nLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLmh0bWwgWyBTa2lwIF0KKwog
Iy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyBFbmQgcGxhdGZvcm0tc3BlY2lm
aWMgZGlyZWN0b3JpZXMuCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggODM0YjNk
ZTQ4Y2EzYTI5YmE2ODdmZmI5ODBmY2JhYmEzOTU2NmRkZS4uMzgyN2UyOGU0OTdlNjQ5MGZhY2I3
OWNmNDdkZmY1YmNlMGYxZjcwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMTE3LDYgKzExNywxNSBAQCBmYXN0L2Zvcm1zL2ZpbGUvZW50
cmllcy1hcGkvaW1hZ2Utbm8tdHJhbnNjb2RlLW9wZW4tcGFuZWwuaHRtbCBbIFBhc3MgXQogCiBz
dG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS10cmFuc2FjdGlvbi1jeWNsZS5odG1sIFsgUGFzcyBd
CiAKK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYyBbIFBhc3MgXQor
IyBUaW1pbmcgb3V0IHRlc3RzIHVudGlsIHdlIGFkZCByZWd1bGFyIHZpZGVvIHN0cmVhbWluZyBi
YWNrZW5kIHN1cHBvcnQuCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2
ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy5o
dG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
cmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kb20uaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2Fs
bGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJh
Y2stcGFyYWxsZWwuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLmh0bWwg
WyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1
ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLmh0bWwgWyBTa2lwIF0KKwogIy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwogIyBFbmQgcGxhdGZvcm0tc3BlY2lmaWMgZGlyZWN0b3JpZXMu
CiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy93ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDUy
ODc3OTc3OTc1NWIyNTc2YWZkODMzZmMxMTQ3ZTk3NTkzNGUxZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZjLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKKworCitQQVNTIFZhbGlkYXRlIGNhbGxiYWNrcyBhbmQgbWV0YWRhdGEgZm9y
IHBlZXIgY29ubmVjdGlvbiB0cmFja3MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRj
L3BlZXJDb25uZWN0aW9uLXJ2ZmMuaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyQ29ubmVj
dGlvbi1ydmZjLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2MzMTk3MGM4NTNlZmEwYTY5ZDkzYWFkOWJjMGY1
MzE5ODkxYmRlZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyQ29u
bmVjdGlvbi1ydmZjLmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPCFkb2N0eXBlIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZD10cnVl
IF0gLS0+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorICAgICAgICA8dGl0bGU+VGVzdGluZyBydmZjIG9uIHBlZXIgY29ubmVjdGlvbiBzdHJlYW1z
PC90aXRsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0icm91dGluZXMuanMi
Pjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHZpZGVvIGlkPSJ2
aWRlbyIgYXV0b3BsYXk9IiI+PC92aWRlbz4KKyAgICAgICAgPHNjcmlwdD4KK2FzeW5jIGZ1bmN0
aW9uIGdyYWJOZXh0TWV0YWRhdGEodmlkZW8pCit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgY29uc3QgaWRlbnRpZmllciA9IHZpZGVvLnJl
cXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKG5vdywgbWV0YWRhdGEpID0+IHsKKyAgICAgICAgICAg
IHJlc29sdmUobWV0YWRhdGEpOworICAgICAgICAgICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNh
bGxiYWNrKGlkZW50aWZpZXIpOworICAgICAgICB9KTsKKyAgICAgICAgc2V0VGltZW91dChyZWpl
Y3QsIDUwMDApOworICAgIH0pOworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsK
KyAgICBjb25zdCBsb2NhbFN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
VXNlck1lZGlhKHt2aWRlbzogeyB3aWR0aDogNjQwLCBoZWlnaHQ6IDQ4MCB9IH0pOworICAgIGNv
bnN0IHJlbW90ZVN0cmVhbSA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+
IHsKKyAgICAgICAgY3JlYXRlQ29ubmVjdGlvbnMoKGZpcnN0Q29ubmVjdGlvbikgPT4geworICAg
ICAgICAgICAgcGMxID0gZmlyc3RDb25uZWN0aW9uOworICAgICAgICAgICAgY29uc3Qgc2VuZGVy
ID0gZmlyc3RDb25uZWN0aW9uLmFkZFRyYWNrKGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClb
MF0sIGxvY2FsU3RyZWFtKTsKKyAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+IHsKKyAg
ICAgICAgICAgIHBjMiA9IHNlY29uZENvbm5lY3Rpb247CisgICAgICAgICAgICBzZWNvbmRDb25u
ZWN0aW9uLm9udHJhY2sgPSAodHJhY2tFdmVudCkgPT4geworICAgICAgICAgICAgICAgIHJlc29s
dmUodHJhY2tFdmVudC5zdHJlYW1zWzBdKTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH0pOwor
ICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwgNTAwMCk7
CisgICAgfSk7CisKKyAgICB2aWRlby5zcmNPYmplY3QgPSByZW1vdGVTdHJlYW07CisgICAgYXdh
aXQgdmlkZW8ucGxheSgpOworCisgICAgbGV0IG1ldGFkYXRhID0gYXdhaXQgZ3JhYk5leHRNZXRh
ZGF0YSh2aWRlbyk7CisgICAgYXNzZXJ0X2VxdWFscyhtZXRhZGF0YS53aWR0aCwgNjQwKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKG1ldGFkYXRhLmhlaWdodCwgNDgwKTsKKyAgICBhc3NlcnRfZ3JlYXRl
cl90aGFuKG1ldGFkYXRhLnByZXNlbnRlZEZyYW1lcywgMCk7CisgICAgY29uc3QgcHJlc2VudGVk
RnJhbWVzID0gbWV0YWRhdGEucHJlc2VudGVkRnJhbWVzOworCisgICAgYXdhaXQgbG9jYWxTdHJl
YW0uZ2V0VmlkZW9UcmFja3MoKVswXS5hcHBseUNvbnN0cmFpbnRzKHt3aWR0aDogMzIwfSk7CisK
KyAgICBsZXQgY291bnRlciA9IDA7CisgICAgd2hpbGUgKCsrY291bnRlciA8IDEwMCAmJiBtZXRh
ZGF0YS53aWR0aCAhPT0gMzIwKSB7CisgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUg
PT4gc2V0VGltZW91dChyZXNvbHZlLCA1MCkpOworICAgICAgICBtZXRhZGF0YSA9IGF3YWl0IGdy
YWJOZXh0TWV0YWRhdGEodmlkZW8pOworICAgIH0KKyAgICBhc3NlcnRfZXF1YWxzKG1ldGFkYXRh
LndpZHRoLCAzMjApOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEucHJlc2VudGVk
RnJhbWVzLCBwcmVzZW50ZWRGcmFtZXMpOworfSwgIlZhbGlkYXRlIGNhbGxiYWNrcyBhbmQgbWV0
YWRhdGEgZm9yIHBlZXIgY29ubmVjdGlvbiB0cmFja3MiKTsKKyAgICAgICAgPC9zY3JpcHQ+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441603</attachid>
            <date>2021-10-18 07:47:07 -0700</date>
            <delta_ts>2021-10-19 03:46:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231803-20211018164703.patch</filename>
            <type>text/plain</type>
            <size>98590</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdjZDU5NmY4NzJlYzA5NDQ1ZGQyMmVh
ZDhhOTZhOTk1MDc3MmI0N2MuLjg5MGI1NmE4NGM1NWU3ZjdkYmM4NjMyYmQ3MGJiNTYyMmM1ODg4
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTAtMTggIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrIEFQSSBhbmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwMwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorCiAyMDIxLTEw
LTE1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXQg
TWFuYWdlZCBOb3RpZmljYXRpb25zOiBTa2VsZXRvbiBOb3RpZmljYXRpb25Qcm92aWRlci4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCAyYjNhMjVhMjYwYTg3Zjc1NDIyOTQ2NjcyYWY4Yzg5MjhlNTBmMTk4Li4zNGJm
NTEyZDc0OTBlYWEwODk0MDg0NWY3MWZhMDg4NmI1YTllYmNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTQgQEAKKzIwMjEtMTAtMTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSBh
bmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBXZWJJREwgdG8gZXhwb3Nl
IGh0dHBzOi8vd2ljZy5naXRodWIuaW8vdmlkZW8tcnZmYy8gQVBJLgorICAgICAgICBQdXQgdGhl
bSBiZWhpbmQgYSBydW50aW1lIGZsYWcuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBh
bGdvcml0aG1zLCBpbmNsdWRpbmcgdGhlIGludGVncmF0aW9uIHdpdGggdGhlICd1cGRhdGUgdGhl
IHJlbmRlcmluZycgYWxnb3JpdGhtLgorICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciB2
aWRlbyBlbGVtZW50cyBiYWNrZWQgYnkgTWVkaWFTdHJlYW0gY29udGVudC4KKyAgICAgICAgV2Ug
ZXhwb3NlIGEgbGltaXRlZCBzZXQgb2YgbWV0YWRhdGEgY3VycmVudGx5LCBmb2xsb3ctdXAgcGF0
Y2hlcyBzaG91bGQgYWRkIHN1cHBvcnQgZm9yIG90aGVyIHZpZGVvIGJhY2tlbmRzIGFuZCBtb3Jl
IG1ldGFkYXRhLgorICAgICAgICBUaGlzIHN1cHBvcnQgc2hvdWxkIHN0aWxsIGVuYWJsZSB0byBv
cHRpbWl6ZSBhIGJpdCBNZWRpYVN0cmVhbVRyYWNrIC0+IGNhbnZhcyBwaXBlbGluZXMuCisKKyAg
ICAgICAgVGVzdHM6IGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMuaHRtbAorICAg
ICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lk
bGhhcm5lc3Mud2luZG93Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9y
ZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRv
bS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5o
dHRwcy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sCisg
ICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
cmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1yZXBlYXRpbmcuaHRtbAorICAgICAgICAgICAg
ICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1l
LWNhbGxiYWNrLmh0bWwKKyAgICAgICAgICAgICAgIHdlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZj
Lmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrLmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL1ZpZGVvRnJh
bWVNZXRhZGF0YS5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvVmlkZW9GcmFtZVJlcXVlc3RD
YWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJh
Y2suaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL1ZpZGVvRnJhbWVNZXRhZGF0YS5oOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisKIDIwMjEtMTAtMTggIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFsgd2syIF0gMiBwYWdlLWNhY2hlIGxh
eW91dC10ZXN0cyBhcmUgZmxha2V5IGNyYXNoaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRlZjdhODJmYzgwNzEz
Y2U5M2EyZWM0YWI0NGQ0ZTNhY2IwMjQ3ZjEuLmU1Y2Q2ZjljYjQwMGExZTM2YjBiNzk1ZTIwMDdj
MzUzNTcwOWQ0ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMTAtMTggIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBy
ZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSBhbmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBi
YWNrZW5kIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMTgwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0ZW1wb3JhcnkgZ2V0dGVyL3NldHRlciBvZiBydmZjIGZlYXR1cmUgZmxhZy4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAg
KFdLUHJlZmVyZW5jZXNTZXRSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZCk6CisgICAg
ICAgIChXS1ByZWZlcmVuY2VzR2V0UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmg6CisKIDIwMjEtMTAt
MTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEd1YXJhbnRl
ZSBvcmRlciBvZiBXZWJTb2NrZXQgZXZlbnRzIGluIGNhc2Ugb2YgYmVpbmcgcmVzdW1lZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBkOWUzNmMxOWVkMzlmYTI5ODc3ZDM2ZGQ1YTFl
ZDgzN2MyNDUwYmU1Li42OWQ0MmNhMTE2MGI4NDliNDQxMTllYzY3NjMyYjNmMGExZWM1NzljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNF
eHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTExNSw2ICsxMTE1LDE4IEBAIFJlcXVl
c3RTdWJtaXRFbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitS
ZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJl
YWRhYmxlTmFtZTogIlJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2siCisgIGh1bWFuUmVhZGFibGVE
ZXNjcmlwdGlvbjogIkVuYWJsZSBSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSIKKyAgZGVm
YXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVmYXVs
dDogZmFsc2UKKwogIyBGSVhNRTogVGhpcyBpcyBvbiBieSBkZWZhdWx0IGluIFdlYktpdDIuIFBl
cmhhcHMgd2Ugc2hvdWxkIGNvbnNpZGVyIHR1cm5pbmcgaXQgb24gZm9yIFdlYktpdExlZ2FjeSBh
cyB3ZWxsLgogUmVzaXplT2JzZXJ2ZXJFbmFibGVkOgogICB0eXBlOiBib29sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDFmMTQwMjBkZGM0N2M5N2Q3OGE3ODcwMDRiMzczMGYwZjk1NDBiZDEuLmU4
ZGQzYzgzZGQ3OTA0YjYyODJjNWE0ZDcxY2RjMTU4MjUxYjI5NGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0xMDM3LDYgKzEwMzcsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwog
ICAgIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwKICAgICBodG1sL0hUTUxVTGlzdEVsZW1lbnQu
aWRsCiAgICAgaHRtbC9IVE1MVW5rbm93bkVsZW1lbnQuaWRsCisgICAgaHRtbC9IVE1MVmlkZW9F
bGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRsCiAgICAgaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmlkbAogICAgIGh0bWwvSW1hZ2VCaXRtYXAuaWRsCiAgICAgaHRtbC9JbWFnZUJpdG1h
cE9wdGlvbnMuaWRsCkBAIC0xMDUyLDYgKzEwNTMsOCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lE
TF9GSUxFUwogICAgIGh0bWwvVGltZVJhbmdlcy5pZGwKICAgICBodG1sL1VSTFNlYXJjaFBhcmFt
cy5pZGwKICAgICBodG1sL1ZhbGlkaXR5U3RhdGUuaWRsCisgICAgaHRtbC9WaWRlb0ZyYW1lTWV0
YWRhdGEuaWRsCisgICAgaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbAogICAgIGh0
bWwvVm9pZENhbGxiYWNrLmlkbAogCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzQ29tcG9zaXRpbmcu
aWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApp
bmRleCAzNDliYjA0YzdkMmI0NWM4NWIzMzUzNzAxYzk3ZTRkZjE3ZmIyNmI3Li5lMmRjZjQzYzFh
YTE1NjRjYjc2NDM5MjlkZTczYmYxMjJkMGZhNDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwMDksNiArMTAwOSw3IEBAICQoUFJP
SkVDVF9ESVIpL2h0bWwvSFRNTExpbmtFbGVtZW50LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9I
VE1MTWFwRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50
LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0Lmlk
bAorJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWVkaWFFbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1l
Q2FsbGJhY2suaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRsCiAk
KFBST0pFQ1RfRElSKS9odG1sL0hUTUxNZW51RWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0
bWwvSFRNTE1lbnVJdGVtRWxlbWVudC5pZGwKQEAgLTEwNDgsNiArMTA0OSw3IEBAICQoUFJPSkVD
VF9ESVIpL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRN
TFRyYWNrRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5p
ZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTFVua25vd25FbGVtZW50LmlkbAorJChQUk9KRUNU
X0RJUikvaHRtbC9IVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRs
CiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaWRsCiAkKFBST0pFQ1RfRElS
KS9odG1sL0ltYWdlQml0bWFwLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9JbWFnZUJpdG1hcE9w
dGlvbnMuaWRsCkBAIC0xMDYzLDYgKzEwNjUsOCBAQCAkKFBST0pFQ1RfRElSKS9odG1sL1RleHRN
ZXRyaWNzLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9UaW1lUmFuZ2VzLmlkbAogJChQUk9KRUNU
X0RJUikvaHRtbC9VUkxTZWFyY2hQYXJhbXMuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL1ZhbGlk
aXR5U3RhdGUuaWRsCiskKFBST0pFQ1RfRElSKS9odG1sL1ZpZGVvRnJhbWVNZXRhZGF0YS5pZGwK
KyQoUFJPSkVDVF9ESVIpL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwKICQoUFJP
SkVDVF9ESVIpL2h0bWwvVm9pZENhbGxiYWNrLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9XZWJL
aXRNZWRpYUtleUVycm9yLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9jYW52YXMvQU5HTEVJbnN0
YW5jZWRBcnJheXMuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CmluZGV4IDk3NjIzMTRhYjJlZDZiMzI4ODViN2Q2MzI2MmRkMjEyMjhkMzYz
YmEuLjhjYWZhMWU4NGM5Nzk0Y2VkOTgzMmI1ZGI5ZDc4OWE2YmQwM2Q5MDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC05OTUsNiAr
OTk1LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNI
VE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0LmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxl
bWVudCtSZW1vdGVQbGF5YmFjay5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudCtSZW1vdGVQbGF5YmFjay5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZWRpYUVsZW1lbnQr
UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
SFRNTE1lZGlhRWxlbWVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZW51RWxlbWVudC5jcHAKQEAgLTEwNzUsNiArMTA3
Nyw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRN
TFVua25vd25FbGVtZW50LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNIVE1MVW5rbm93bkVsZW1lbnQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVmlkZW9FbGVtZW50K1BpY3R1cmVJblBpY3R1cmUu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxW
aWRlb0VsZW1lbnQrUGljdHVyZUluUGljdHVyZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxWaWRlb0VsZW1lbnQrUmVxdWVzdFZpZGVvRnJhbWVD
YWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFZpZGVvRWxlbWVudC5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFZp
ZGVvRWxlbWVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0hhc2hDaGFuZ2VFdmVudC5jcHAKQEAgLTIzMDcsNiArMjMxMSwxMCBAQCAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZhbGlkaXR5U3RhdGUuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZhbGlkaXR5U3Rh
dGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWaWRl
b0NvbmZpZ3VyYXRpb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1ZpZGVvQ29uZmlndXJhdGlvbi5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZpZGVvRnJhbWVNZXRhZGF0YS5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmlkZW9GcmFtZU1ldGFkYXRhLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmlkZW9GcmFt
ZVJlcXVlc3RDYWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZpZGVvUGxheWJhY2tRdWFsaXR5LmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWaWRlb1BsYXli
YWNrUXVhbGl0eS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1ZpZGVvVHJhY2srTWVkaWFTb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCAxNTk5NGFiYzIyMWE3NjU4NDljNGE1OTBjNDk2ZGYxNjAyOTRhYTE0Li5jMTIxN2Ez
YzU0Y2ZmZGFkNjA4ZmY5MzZmMDAyMDk3YmEzNWE1NzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTg5Nyw2ICs4OTcsNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQo
V2ViQ29yZSkvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1s
L0hUTUxVbmtub3duRWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxWaWRlb0VsZW1lbnQrUmVxdWVz
dFZpZGVvRnJhbWVDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9JbWFnZUJpdG1h
cC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9JbWFnZUJpdG1hcE9wdGlvbnMuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2h0bWwvSW1hZ2VEYXRhLmlkbCBcCkBAIC05MTEsNiArOTEyLDggQEAgSlNf
QklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvVGltZVJhbmdlcy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvaHRtbC9VUkxTZWFyY2hQYXJhbXMuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvVmFsaWRpdHlTdGF0ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9WaWRlb0ZyYW1l
TWV0YWRhdGEuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxs
YmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9Wb2lkQ2FsbGJhY2suaWRsIFwKICAgICAk
KFdlYkNvcmUpL2h0bWwvV2ViS2l0TWVkaWFLZXlFcnJvci5pZGwgXAogICAgICQoV2ViQ29yZSkv
aHRtbC9jYW52YXMvQU5HTEVJbnN0YW5jZWRBcnJheXMuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmlu
ZGV4IGIwNjU3ZTFjYzlkZTU5YjA5Mjk4NTlkNDkxNzJlZjE5Y2ZkOGU2MzEuLjEyMTJkYTRhNjM0
YjJiMWI5ZWJlMWRiY2YxZTRiYmUxMzM2YWUxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNzU4
LDYgKzc1OCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBo
dG1sL1VSTERlY29tcG9zaXRpb24uaAogICAgIGh0bWwvVVJMUmVnaXN0cnkuaAogICAgIGh0bWwv
VmFsaWRpdHlTdGF0ZS5oCisgICAgaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmgKICAg
ICBodG1sL1ZvaWRDYWxsYmFjay5oCiAKICAgICBodG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJlbmRl
cmluZ0NvbnRleHRTZXR0aW5ncy5oCkBAIC0xMTgxLDYgKzExODIsNyBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vVXNlckFnZW50LmgKICAgICBw
bGF0Zm9ybS9Vc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmgKICAgICBwbGF0Zm9ybS9WYWxp
ZGF0aW9uQnViYmxlLmgKKyAgICBwbGF0Zm9ybS9WaWRlb0ZyYW1lTWV0YWRhdGEuaAogICAgIHBs
YXRmb3JtL1dlYkdMU3RhdGVUcmFja2VyLmgKICAgICBwbGF0Zm9ybS9XaWRnZXQuaAogICAgIHBs
YXRmb3JtL1dpbmRvd3NLZXlib2FyZENvZGVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMTNmNjEyMTg1
ODc3OTMyZTVkMjdhMjMwMzg3MTlhYmIzMjRmODI0ZC4uY2U5NjBkNTA1NjhjM2Y0OGU5OGJmZWFh
ZWI0MTA5YjRjY2Q0MjdmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTM3MjcsNiArMzcyNyw4IEBAIEpT
VlRUUmVnaW9uLmNwcAogSlNWVFRSZWdpb25MaXN0LmNwcAogSlNWYWxpZGl0eVN0YXRlLmNwcAog
SlNWaWRlb0NvbmZpZ3VyYXRpb24uY3BwCitKU1ZpZGVvRnJhbWVNZXRhZGF0YS5jcHAKK0pTVmlk
ZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5jcHAKIEpTVmlkZW9QbGF5YmFja1F1YWxpdHkuY3BwCiBK
U1ZpZGVvVHJhY2suY3BwCiBKU1ZpZGVvVHJhY2tMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE3MmJjZmU2MTlmYjAy
MGUxZWNlZmZkYjZlMmU2MTM0ODQyMGQ3MTcuLjc5MjNlMzE0MjUzZjdmODA3OGQ5Yjg2NDYzODRh
OTJhOGM0YjYwNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTExODIsNiArMTE4Miw4IEBACiAJCTQxOEZDQkMxMjcwNkU0RkIw
MEY5NkVDQSAvKiBQdXNoRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxOEZDQkJEMjcwNkU0RjcwMEY5NkVDQSAvKiBQdXNoRXZlbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MThGQ0JDMjI3
MDZFNTAxMDBGOTZFQ0EgLyogUHVzaEV2ZW50SW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4RkNCQkYyNzA2RTRGODAwRjk2RUNBIC8qIFB1c2hF
dmVudEluaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0MThGQ0JFNzI3MTVBMjhGMDBGOTZFQ0EgLyogUlRDUnRwQ29kZWNDYXBhYmlsaXR5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUwQTdEQzIz
QkI2M0RCMDA1NjEwNjAgLyogUlRDUnRwQ29kZWNDYXBhYmlsaXR5LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE4RkNDMDEyNzE5NjgxQTAwRjk2
RUNBIC8qIChudWxsKSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0MThGQ0MwNjI3MTk2QUY2
MDBGOTZFQ0EgLyogKG51bGwpIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxOTBGM0E1MjRB
MEI0RUUwMDUzMUM1NyAvKiBGcmFtZVJhdGVNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTkwRjNBMzI0OUQxNTI4MDA1MzFDNTcgLyogRnJh
bWVSYXRlTW9uaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQxOTI0MjQ5MjEyN0I5M0UwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2VDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxOTI0MjQ3MjEyN0I3Q0MwMDYzNEZDRiAvKiBSZWFsdGltZU91dGdvaW5nVmlkZW9T
b3VyY2VDb2NvYS5tbSAqLzsgfTsKIAkJNDE5QUNGOTIxRjk3RTdEQTAwOUYxQTgzIC8qIFNlcnZp
Y2VXb3JrZXJGZXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDE5QUNGOEUxRjk3RTdENTAwOUYxQTgzIC8qIFNlcnZpY2VXb3JrZXJGZXRjaC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjE4LDYg
KzEyMjAsOCBAQAogCQk0MUQyOEQwRDIxMzlFMDU4MDBGNDIwNkYgLyogTGliV2ViUlRDU3RhdHND
b2xsZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDFEMjhEMEIyMTM5RTAxRDAwRjQyMDZGIC8qIExpYldlYlJUQ1N0YXRzQ29sbGVjdG9yLmNw
cCAqLzsgfTsKIAkJNDFENDFDNjcyMjU2ODc0RjAwNjk3OTQyIC8qIFNlcnZpY2VXb3JrZXJJbnRl
cm5hbHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MUQ0MUM2NTIyNTY4NTkyMDA2OTc5NDIgLyogU2VydmljZVdvcmtlckludGVybmFscy5tbSAqLzsg
fTsKIAkJNDFERTdDN0MyMjJEQTE0MzAwNTMyQjY1IC8qIFN0b3JhZ2VRdW90YU1hbmFnZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREU3QzdCMjIy
REExM0UwMDUzMkI2NSAvKiBTdG9yYWdlUXVvdGFNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDFERUVGQjAyNzE5QjI5MDAwQ0I4RDc0
IC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREVFRkFDMjcxOUIyODgwMENCOEQ3NCAvKiBWaWRlb0Zy
YW1lUmVxdWVzdENhbGxiYWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNDFERUVGQjYyNzE5QkExQTAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVNZXRh
ZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFE
RUVGQjQyNzE5QkExOTAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVNZXRhZGF0YS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxREVGQ0I2MUU1NkMxQkQw
MDBEOUU1RiAvKiBKU0RPTU1hcExpa2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxREVGQ0I0MUU1NkMxQjkwMDBEOUU1RiAvKiBKU0RPTU1hcExpa2Uu
aCAqLzsgfTsKIAkJNDFFMTJFOUYyNEZFNzRFMjAwOTNGRkI0IC8qIFdlYlNvY2tldElkZW50aWZp
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTEy
RTlEMjRGRTc0RTIwMDkzRkZCNCAvKiBXZWJTb2NrZXRJZGVudGlmaWVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDFFMUIxRDEwRkY1OTg2OTAw
NTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MUUxQjFDQjBGRjU5ODY5MDA1NzZCM0IgLyogQWJzdHJhY3RXb3Jr
ZXIuaCAqLzsgfTsKQEAgLTgyOTYsNiArODMwMCwxMSBAQAogCQk0MUQ2QkQ5ODI1MUIzQURBMDA1
NUE3QjcgLyogSFRNTE1lZGlhRWxlbWVudCtBdWRpb091dHB1dC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gIkhUTUxNZWRpYUVsZW1lbnQrQXVkaW9PdXRwdXQuaWRsIjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDFERTdDN0EyMjJEQTEzRDAwNTMyQjY1IC8qIFN0b3JhZ2VRdW90
YU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFn
ZVF1b3RhTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREU3QzdC
MjIyREExM0UwMDUzMkI2NSAvKiBTdG9yYWdlUXVvdGFNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VRdW90YU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDFERUVGQUMyNzE5QjI4ODAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVSZXF1
ZXN0Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MURFRUZBRTI3MTlCMjg5MDBDQjhENzQg
LyogVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlkZW9GcmFtZVJlcXVlc3RD
YWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxREVFRkFGMjcxOUIy
ODkwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lTWV0YWRhdGEuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZpZGVvRnJhbWVNZXRh
ZGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxREVFRkIxMjcxOUIyQkUw
MENCOEQ3NCAvKiBIVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9ICJIVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRsIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFERUVGQjQyNzE5QkExOTAwQ0I4RDc0IC8q
IFZpZGVvRnJhbWVNZXRhZGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aWRlb0ZyYW1lTWV0YWRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFERUZD
QjIxRTU2QzFCOTAwMEQ5RTVGIC8qIEpTRE9NQmluZGluZ0ludGVybmFscy5qcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IEpTRE9NQmluZGluZ0ludGVybmFscy5qczsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFERUZDQjMxRTU2QzFCOTAwMEQ5RTVGIC8q
IEpTRE9NTWFwTGlrZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0RPTU1hcExpa2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MURFRkNCNDFF
NTZDMUI5MDAwRDlFNUYgLyogSlNET01NYXBMaWtlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTRE9NTWFwTGlrZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjQyMjYsNiArMjQyMzUsNyBAQAogCQkJCTBGMjZBN0FBMjA1NEVDNUEwMDkwQTE0MSAvKiBIVE1M
VW5rbm93bkVsZW1lbnQuY3BwICovLAogCQkJCUFENDk5MTQxMThGMDgxNTEwMEJGMDA5MiAvKiBI
VE1MVW5rbm93bkVsZW1lbnQuaCAqLywKIAkJCQlBRDQ5OTE0MjE4RjA4MTUxMDBCRjAwOTIgLyog
SFRNTFVua25vd25FbGVtZW50LmlkbCAqLywKKwkJCQk0MURFRUZCMTI3MTlCMkJFMDBDQjhENzQg
LyogSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrLmlkbCAqLywKIAkJ
CQlFNDQ2MTM5ODBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5jcHAgKi8sCiAJ
CQkJRTQ0NjEzOTkwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxWaWRlb0VsZW1lbnQuaCAqLywKIAkJ
CQlFNDQ2MTM5QTBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZpZGVvRWxlbWVudC5pZGwgKi8sCkBA
IC0yNDM0Niw2ICsyNDM1Niw5IEBACiAJCQkJRjVBMTU0MjYxMjc5NTM0RDAwRDBCMEMwIC8qIFZh
bGlkYXRpb25NZXNzYWdlLmggKi8sCiAJCQkJMTVDNzcwOEExMDBEM0M2QTAwNUJBMjY3IC8qIFZh
bGlkaXR5U3RhdGUuaCAqLywKIAkJCQkxNUM3NzA4OTEwMEQzQzZBMDA1QkEyNjcgLyogVmFsaWRp
dHlTdGF0ZS5pZGwgKi8sCisJCQkJNDFERUVGQUYyNzE5QjI4OTAwQ0I4RDc0IC8qIFZpZGVvRnJh
bWVNZXRhZGF0YS5pZGwgKi8sCisJCQkJNDFERUVGQUMyNzE5QjI4ODAwQ0I4RDc0IC8qIFZpZGVv
RnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCAqLywKKwkJCQk0MURFRUZBRTI3MTlCMjg5MDBDQjhENzQg
LyogVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwgKi8sCiAJCQkJRTQ0NjEzQjQwQ0Q2MzQ0
RTAwRkFEQTc1IC8qIFZvaWRDYWxsYmFjay5oICovLAogCQkJCUU0NDYxM0EwMENENjMzMTAwMEZB
REE3NSAvKiBWb2lkQ2FsbGJhY2suaWRsICovLAogCQkJCTJEMTkzMjE3MURBNjRFMTkwMEE1NEEw
OCAvKiBXZWJLaXRNZWRpYUtleUVycm9yLmggKi8sCkBAIC0yODQ4MCw2ICsyODQ5Myw3IEBACiAJ
CQkJQTNBRjlEODIyMDMyNTMyNDAwNkNBRDA2IC8qIFVzZXJBZ2VudC5oICovLAogCQkJCTcxQzkx
NjA3MUQxNDgzQTMwMEFDQTQ3RCAvKiBVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmggKi8s
CiAJCQkJODNDNDVCOEQxREMyQjY3QzAwODg3MUJBIC8qIFZhbGlkYXRpb25CdWJibGUuaCAqLywK
KwkJCQk0MURFRUZCNDI3MTlCQTE5MDBDQjhENzQgLyogVmlkZW9GcmFtZU1ldGFkYXRhLmggKi8s
CiAJCQkJNTE1Rjc5NTExQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1RocmVhZENvcGll
ci5jcHAgKi8sCiAJCQkJNTE1Rjc5NTIxQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1Ro
cmVhZENvcGllci5oICovLAogCQkJCTgzOUEyRjJCMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJHTFN0
YXRlVHJhY2tlci5jcHAgKi8sCkBAIC0zMTYxMiw2ICszMTYyNiw4IEBACiAJCQlpc2EgPSBQQlhI
ZWFkZXJzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlm
aWxlcyA9ICgKKwkJCQk0MThGQ0MwNjI3MTk2QUY2MDBGOTZFQ0EgLyogKG51bGwpIGluIEhlYWRl
cnMgKi8sCisJCQkJNDE4RkNDMDEyNzE5NjgxQTAwRjk2RUNBIC8qIChudWxsKSBpbiBIZWFkZXJz
ICovLAogCQkJCTdDRDBFMkI4MUY4MEE0ODIwMDE2QTRDRSAvKiBBYm9ydENvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTdDRDBFMkJGMUY4MEE1NkUwMDE2QTRDRSAvKiBBYm9ydFNpZ25h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZCOTUxOTUyMDdENjMzNDAwQTdEMkREIC8qIEFic3Ry
YWN0RE9NV2luZG93LmggaW4gSGVhZGVycyAqLywKQEAgLTM2MDI2LDYgKzM2MDQyLDggQEAKIAkJ
CQlERjRFMzhFMDI1Mjc5NTk1MDAyQTc0ODEgLyogVmVyc2lvbkNoZWNrcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNBMjU3MTUxMjkzQzAxMDAwN0EyNjNEIC8qIFZlcnRpY2FsUG9zaXRpb25DYWNo
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRUVGM0IyNTc5OUZBMTAwNjU2M0JCIC8qIFZpZGVv
Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFERUVGQjYyNzE5QkExQTAwQ0I4
RDc0IC8qIFZpZGVvRnJhbWVNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFERUVGQjAy
NzE5QjI5MDAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUyQjBENEMwMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFu
Z2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0ZCQzRBRjQxODk4ODE1NjAwNDZFRTM4
IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MkIwRDRDMjFDNTdGRjkxMDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDcyNDJiYzIzZDI3NWFk
ZGFkZjUwZDljNjI5NjM3YTcxZTk2MTI0MDIuLjUyNTA2MjlmMmNjNmE0YWFkZDY2MTJlYjVkMjY1
YThiMWU0OGRkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTE3LDYgKzExNyw3IEBA
CiAjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MVW5rbm93bkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVmlk
ZW9FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiSFRU
UFBhcnNlcnMuaCIKICNpbmNsdWRlICJIYXNoQ2hhbmdlRXZlbnQuaCIKQEAgLTY3MzksNiArNjc0
MCwzMiBAQCB2b2lkIERvY3VtZW50OjpzZXJ2aWNlUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2tzKCkKICAgICAgICAgbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXItPnNlcnZpY2VSZXF1
ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja3MoZG9tV2luZG93KCktPmZyb3plbk5vd1RpbWVzdGFt
cCgpKTsKIH0KIAordm9pZCBEb2N1bWVudDo6c2VydmljZVJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2tzKCkKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYgKCFkb21XaW5kb3coKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYm9vbCBpc1NlcnZpY2luZ1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2tzID0gZmFsc2U7CisgICAgZm9yRWFjaE1lZGlhRWxlbWVudChbbm93ID0gZG9tV2luZG93KCkt
PmZyb3plbk5vd1RpbWVzdGFtcCgpLCAmaXNTZXJ2aWNpbmdSZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrc10oYXV0byYgZWxlbWVudCkgeworICAgICAgICBpZiAoIWlzPEhUTUxWaWRlb0VsZW1lbnQ+
KGVsZW1lbnQpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGF1dG8mIHZpZGVvRWxl
bWVudCA9IGRvd25jYXN0PEhUTUxWaWRlb0VsZW1lbnQ+KGVsZW1lbnQpOworICAgICAgICBpZiAo
dmlkZW9FbGVtZW50LnNob3VsZFNlcnZpY2VSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrcygpKSB7
CisgICAgICAgICAgICBpc1NlcnZpY2luZ1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tzID0gdHJ1
ZTsKKyAgICAgICAgICAgIHZpZGVvRWxlbWVudC5zZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxs
YmFja3Mobm93KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgaWYgKCFpc1NlcnZpY2luZ1Jl
cXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tzKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0
byogcGFnZSA9IHRoaXMtPnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+c2NoZWR1bGVSZW5kZXJpbmdV
cGRhdGUoUmVuZGVyaW5nVXBkYXRlU3RlcDo6VmlkZW9GcmFtZUNhbGxiYWNrcyk7CisjZW5kaWYK
K30KKwogdm9pZCBEb2N1bWVudDo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxh
eUlEIGRpc3BsYXlJRCkKIHsKICAgICBpZiAoUmVuZGVyVmlldyogdmlldyA9IHJlbmRlclZpZXco
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA1NDU3NjQzNWMyMzY1Yjc4MDIwOWZlZTE4YTEw
MmYyNmI5ZTAxZjE5Li45YzM5M2ZiNWVlNjk4ZDkzMjUyMWFmOWYwMDg2ZmFlMjQxYTk1MzhjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTExNCw2ICsxMTE0LDcgQEAgcHVibGljOgogICAgIHZv
aWQgcmVzdW1lU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyQ2FsbGJhY2tzKCk7CiAKICAgICB2
b2lkIHNlcnZpY2VSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja3MoKTsKKyAgICB2b2lkIHNl
cnZpY2VSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrcygpOwogCiAgICAgdm9pZCB3aW5kb3dTY3Jl
ZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oCmluZGV4IDNiY2M2ODlkZjNiN2FjMGFlYWIxMDg1YjI3ZDEzZmNmOWRkNDQy
YjUuLjFjMWIyZGMxNWFhMGI2OTMyMTc4YTI5MzBjYThmMmI4OTQwZjUzNDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAi
TWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCiAjaW5jbHVkZSAiTWVk
aWFVbmlxdWVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUmVkdWNlZFJlc29sdXRpb25TZWNvbmRz
LmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrQ2xpZW50LmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja0Ns
aWVudC5oIgogI2luY2x1ZGUgIlZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0
VmlkZW9GcmFtZUNhbGxiYWNrLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTMyNDQ5OGVkY2ZlMTRiNTc2NzIw
YzhmMDI1ODIwODViNDVkNDA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRsCkBAIC0wLDAg
KzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
WworICAgIENvbmRpdGlvbmFsPVZJREVPLAorICAgIEVuYWJsZWRCeVNldHRpbmc9UmVxdWVzdFZp
ZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQKK10gcGFydGlhbCBpbnRlcmZhY2UgSFRNTFZpZGVvRWxl
bWVudCB7CisgICAgdW5zaWduZWQgbG9uZyByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKFZpZGVv
RnJhbWVSZXF1ZXN0Q2FsbGJhY2sgY2FsbGJhY2spOworICAgIHVuZGVmaW5lZCBjYW5jZWxWaWRl
b0ZyYW1lQ2FsbGJhY2sodW5zaWduZWQgbG9uZyBoYW5kbGUpOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCmluZGV4IDA0YzAyYjhjODliYjRjMGViZGRjY2E0NTAy
OGJiZmQwMGRhNzliNmYuLmQ0YzQxNTliYjI4MGI5ODU1NTJkMzcyMjFlN2M2NWQ3Zjc0NGM3Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcApAQCAtNTc3LDYgKzU3
Nyw1OSBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmV4aXRUb0Z1bGxzY3JlZW5Nb2RlV2l0aG91
dEFuaW1hdGlvbklmUG9zc2libGUoSFRNTE1lZGlhRQogfQogI2VuZGlmCiAKK3Vuc2lnbmVkIEhU
TUxWaWRlb0VsZW1lbnQ6OnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soUmVmPFZpZGVvRnJhbWVS
ZXF1ZXN0Q2FsbGJhY2s+JiYgY2FsbGJhY2spCit7CisgICAgaWYgKG1fbmV4dFZpZGVvRnJhbWVS
ZXF1ZXN0SW5kZXggPT0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIGF1dG8gaWRlbnRpZmllciA9ICArK21fbmV4dFZpZGVvRnJh
bWVSZXF1ZXN0SW5kZXg7CisgICAgbV92aWRlb0ZyYW1lUmVxdWVzdHMuYXBwZW5kKG1ha2VVbmlx
dWVSZWY8VmlkZW9GcmFtZVJlcXVlc3Q+KGlkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKSk7
CisKKyAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpKQorICAgICAgICBwYWdl
LT5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZShSZW5kZXJpbmdVcGRhdGVTdGVwOjpWaWRlb0ZyYW1l
Q2FsbGJhY2tzKTsKKworICAgIHJldHVybiBpZGVudGlmaWVyOworfQorCit2b2lkIEhUTUxWaWRl
b0VsZW1lbnQ6OmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayh1bnNpZ25lZCBpZGVudGlmaWVyKQor
eworICAgIGF1dG8gaW5kZXggPSBtX3ZpZGVvRnJhbWVSZXF1ZXN0cy5maW5kTWF0Y2hpbmcoW2lk
ZW50aWZpZXJdKGF1dG8mIHJlcXVlc3QpIHsgcmV0dXJuIHJlcXVlc3QtPmlkZW50aWZpZXIgPT0g
aWRlbnRpZmllcjsgfSk7CisgICAgaWYgKGluZGV4ID09IG5vdEZvdW5kKQorICAgICAgICByZXR1
cm47CisgICAgaWYgKG1faXNSdW5uaW5nVmlkZW9GcmFtZVJlcXVlc3RzKSB7CisgICAgICAgIG1f
dmlkZW9GcmFtZVJlcXVlc3RzW2luZGV4XS0+Y2FuY2VsbGVkID0gdHJ1ZTsKKyAgICAgICAgbV9z
aG91bGRDbGVhblZpZGVvRnJhbWVSZXF1ZXN0cyA9IHRydWU7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgbV92aWRlb0ZyYW1lUmVxdWVzdHMucmVtb3ZlKGluZGV4KTsKK30KKwordm9pZCBI
VE1MVmlkZW9FbGVtZW50OjpzZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja3MoUmVkdWNl
ZFJlc29sdXRpb25TZWNvbmRzIG5vdykKK3sKKyAgICBpZiAoIXBsYXllcigpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhdXRvIHZpZGVvRnJhbWVNZXRhZGF0YSA9IHBsYXllcigpLT52aWRlb0Zy
YW1lTWV0YWRhdGEoKTsKKyAgICBpZiAoIXZpZGVvRnJhbWVNZXRhZGF0YSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgUmVmIHByb3RlY3RlZFRoaXMgeyAqdGhpcyB9OworCisgICAgLy8gV2Ugc3Rv
cmUgdGhlIHNpemUgYmVmb3JlIGNhbGxpbmcgY2FsbGJhY2tzIGFzIHdlIGRvIG5vdCB3YW50IHRv
IGNhbGwgbmV3bHkgYWRkZWQgY2FsbGJhY2tzLgorICAgIGF1dG8gY2FsbGJhY2tDb3VudCA9IG1f
dmlkZW9GcmFtZVJlcXVlc3RzLnNpemUoKTsKKworICAgIG1faXNSdW5uaW5nVmlkZW9GcmFtZVJl
cXVlc3RzID0gdHJ1ZTsKKyAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgY2FsbGJh
Y2tDb3VudDsgKytpbmRleCkgeworICAgICAgICBhdXRvJiByZXF1ZXN0ID0gbV92aWRlb0ZyYW1l
UmVxdWVzdHNbaW5kZXhdOworICAgICAgICBpZiAoIXJlcXVlc3QtPmNhbmNlbGxlZCkKKyAgICAg
ICAgICAgIG1fdmlkZW9GcmFtZVJlcXVlc3RzW2luZGV4XS0+Y2FsbGJhY2stPmhhbmRsZUV2ZW50
KG5vdy52YWx1ZSgpLCAqdmlkZW9GcmFtZU1ldGFkYXRhKTsKKyAgICB9CisgICAgbV9pc1J1bm5p
bmdWaWRlb0ZyYW1lUmVxdWVzdHMgPSBmYWxzZTsKKworICAgIGlmIChtX3Nob3VsZENsZWFuVmlk
ZW9GcmFtZVJlcXVlc3RzKQorICAgICAgICBtX3ZpZGVvRnJhbWVSZXF1ZXN0cy5yZW1vdmVBbGxN
YXRjaGluZyhbXShhdXRvJiBjYWxsYmFjaykgeyByZXR1cm4gY2FsbGJhY2stPmNhbmNlbGxlZDsg
fSk7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxWaWRlb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5o
CmluZGV4IDEwOTkxZjA1ZjE0NzRlZWU1ZWIwMWVlNzgzMjMzOTEyMGY2ZTM3MmYuLjVlMTg4YjAw
NTRhNjczZDg5YmRhOTNlMDQ1M2Y2NTMzMDcxYTVhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFZpZGVvRWxlbWVudC5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJIVE1MTWVkaWFF
bGVtZW50LmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlICJWaWRlb0Zy
YW1lUmVxdWVzdENhbGxiYWNrLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0zOCw2ICszOSw3IEBAIGNsYXNzIEhUTUxJbWFnZUxvYWRlcjsKIGNsYXNzIElt
YWdlQnVmZmVyOwogY2xhc3MgUmVuZGVyVmlkZW87CiBjbGFzcyBQaWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXI7CitjbGFzcyBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrOwogCiBlbnVtIGNsYXNzIFBp
eGVsRm9ybWF0IDogdWludDhfdDsKIGVudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJvb2w7CkBA
IC0xMDksNiArMTExLDEyIEBAIHB1YmxpYzoKIAogICAgIFJlbmRlclZpZGVvKiByZW5kZXJlcigp
IGNvbnN0OwogCisgICAgYm9vbCBzaG91bGRTZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
a3MoKSBjb25zdCB7IHJldHVybiAhbV92aWRlb0ZyYW1lUmVxdWVzdHMuaXNFbXB0eSgpOyB9Cisg
ICAgdm9pZCBzZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja3MoUmVkdWNlZFJlc29sdXRp
b25TZWNvbmRzKTsKKworICAgIHVuc2lnbmVkIHJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soUmVm
PFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2s+JiYpOworICAgIHZvaWQgY2FuY2VsVmlkZW9GcmFt
ZUNhbGxiYWNrKHVuc2lnbmVkKTsKKwogcHJpdmF0ZToKICAgICBIVE1MVmlkZW9FbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKIApA
QCAtMTQ3LDYgKzE1NSwyMyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShQSUNUVVJFX0lOX1BJQ1RV
UkVfQVBJKQogICAgIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlciogbV9waWN0dXJlSW5QaWN0dXJl
T2JzZXJ2ZXIgeyBudWxscHRyIH07CiAjZW5kaWYKKworICAgIHN0cnVjdCBWaWRlb0ZyYW1lUmVx
dWVzdCB7CisgICAgICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKKyAgICAgICAg
VmlkZW9GcmFtZVJlcXVlc3QodW5zaWduZWQgaWRlbnRpZmllciwgUmVmPFZpZGVvRnJhbWVSZXF1
ZXN0Q2FsbGJhY2s+JiYgY2FsbGJhY2spCisgICAgICAgICAgICA6IGlkZW50aWZpZXIoaWRlbnRp
ZmllcikKKyAgICAgICAgICAgICwgY2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCisgICAgICAg
IHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdW5zaWduZWQgaWRlbnRpZmllciB7IDAg
fTsKKyAgICAgICAgUmVmPFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2s+IGNhbGxiYWNrOworICAg
ICAgICBib29sIGNhbmNlbGxlZCB7IGZhbHNlIH07CisgICAgfTsKKyAgICBWZWN0b3I8VW5pcXVl
UmVmPFZpZGVvRnJhbWVSZXF1ZXN0Pj4gbV92aWRlb0ZyYW1lUmVxdWVzdHM7CisgICAgdW5zaWdu
ZWQgbV9uZXh0VmlkZW9GcmFtZVJlcXVlc3RJbmRleCB7IDAgfTsKKyAgICBib29sIG1fc2hvdWxk
Q2xlYW5WaWRlb0ZyYW1lUmVxdWVzdHMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1J1bm5pbmdW
aWRlb0ZyYW1lUmVxdWVzdHMgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WaWRlb0ZyYW1lTWV0YWRhdGEuaWRs
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9WaWRlb0ZyYW1lTWV0YWRhdGEuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJjYTk1ZThmMDNkMzA1N2FjMmU4MGM0YTVkMmZhMjMwNTZhZjc4YmQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVNZXRhZGF0YS5pZGwKQEAgLTAsMCAr
MSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCit0
eXBlZGVmIGRvdWJsZSBET01IaWdoUmVzVGltZVN0YW1wOworCitbCisgICAgQ29uZGl0aW9uYWw9
VklERU8sCisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdIGRpY3Rpb25hcnkgVmlkZW9GcmFt
ZU1ldGFkYXRhIHsKKyAgICAvLyBGSVhNRTogZXhwb3NlIHByZXNlbnRhdGlvblRpbWUgYW5kIGV4
cGVjdGVkRGlzcGxheVRpbWUuCisgICAgLy8gcmVxdWlyZWQgRE9NSGlnaFJlc1RpbWVTdGFtcCBw
cmVzZW50YXRpb25UaW1lOworICAgIC8vIHJlcXVpcmVkIERPTUhpZ2hSZXNUaW1lU3RhbXAgZXhw
ZWN0ZWREaXNwbGF5VGltZTsKKworICAgIHJlcXVpcmVkIHVuc2lnbmVkIGxvbmcgd2lkdGg7Cisg
ICAgcmVxdWlyZWQgdW5zaWduZWQgbG9uZyBoZWlnaHQ7CisgICAgcmVxdWlyZWQgZG91YmxlIG1l
ZGlhVGltZTsKKworICAgIHJlcXVpcmVkIHVuc2lnbmVkIGxvbmcgcHJlc2VudGVkRnJhbWVzOwor
ICAgIGRvdWJsZSBwcm9jZXNzaW5nRHVyYXRpb247CisKKyAgICBET01IaWdoUmVzVGltZVN0YW1w
IGNhcHR1cmVUaW1lOworICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgcmVjZWl2ZVRpbWU7CisgICAg
dW5zaWduZWQgbG9uZyBydHBUaW1lc3RhbXA7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGZhYjJjZDVkMDZjYTMw
NzMxYTFhNjliNDk3YzI0NWFiYjBhNzIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmgKQEAgLTAsMCArMSw0OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSAi
QWN0aXZlRE9NQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJDYWxsYmFja1Jlc3VsdC5oIgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgVmlkZW9GcmFtZU1ldGFkYXRhOworCitjbGFzcyBWaWRl
b0ZyYW1lUmVxdWVzdENhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8VmlkZW9GcmFtZVJlcXVl
c3RDYWxsYmFjaz4sIHB1YmxpYyBBY3RpdmVET01DYWxsYmFjayB7CitwdWJsaWM6CisgICAgdXNp
bmcgQWN0aXZlRE9NQ2FsbGJhY2s6OkFjdGl2ZURPTUNhbGxiYWNrOworCisgICAgdmlydHVhbCBD
YWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVFdmVudChkb3VibGUsIGNvbnN0IFZpZGVvRnJhbWVN
ZXRhZGF0YSYpID0gMDsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShWSURFTykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjdkZDZmZjZjMWY4YWI0NDVkYjkwZWZmODk2ZTQyMGQ3MDdlNmU5MDAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2su
aWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKwordHlwZWRlZiBkb3VibGUgRE9NSGlnaFJlc1RpbWVTdGFtcDsKKworWworICAg
IENvbmRpdGlvbmFsPVZJREVPLAorXSBjYWxsYmFjayBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNr
ID0gdW5kZWZpbmVkKERPTUhpZ2hSZXNUaW1lU3RhbXAgbm93LCBWaWRlb0ZyYW1lTWV0YWRhdGEg
bWV0YWRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMDA2MTNmYTY4NzZhNmJlNmE5MjYxMzMy
MTYxZTQ5NjgyMmFmNDE4Mi4uZGExYTljODIzNDMyOWQzN2IyYjdiMGJiYjY0M2IwMTAyOTk0YzUw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNTg1LDYgKzE1ODUsMTAgQEAgdm9pZCBQYWdlOjp1
cGRhdGVSZW5kZXJpbmcoKQogICAgIC8vIEZJWE1FOiBSdW4gdGhlIGZ1bGxzY3JlZW4gc3RlcHMu
CiAgICAgbV9yZW5kZXJpbmdVcGRhdGVSZW1haW5pbmdTdGVwcy5sYXN0KCkucmVtb3ZlKFJlbmRl
cmluZ1VwZGF0ZVN0ZXA6OkZ1bGxzY3JlZW4pOwogCisgICAgcnVuUHJvY2Vzc2luZ1N0ZXAoUmVu
ZGVyaW5nVXBkYXRlU3RlcDo6VmlkZW9GcmFtZUNhbGxiYWNrcywgW10gKERvY3VtZW50JiBkb2N1
bWVudCkgeworICAgICAgICBkb2N1bWVudC5zZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
a3MoKTsKKyAgICB9KTsKKwogICAgIHJ1blByb2Nlc3NpbmdTdGVwKFJlbmRlcmluZ1VwZGF0ZVN0
ZXA6OkFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tzLCBbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CiAg
ICAgICAgIGRvY3VtZW50LnNlcnZpY2VSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja3MoKTsK
ICAgICB9KTsKQEAgLTM2MjYsNiArMzYzMCw3IEBAIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChXVEY6OlRleHRTdHJlYW0mIHRzLCBSZW5kZXJpbmdVcGRhdGVTdGVwIHN0ZXApCiAjaWYgRU5B
QkxFKEFTWU5DX1NDUk9MTElORykKICAgICBjYXNlIFJlbmRlcmluZ1VwZGF0ZVN0ZXA6OlNjcm9s
bGluZ1RyZWVVcGRhdGU6IHRzIDw8ICJTY3JvbGxpbmdUcmVlVXBkYXRlIjsgYnJlYWs7CiAjZW5k
aWYKKyAgICBjYXNlIFJlbmRlcmluZ1VwZGF0ZVN0ZXA6OlZpZGVvRnJhbWVDYWxsYmFja3M6IHRz
IDw8ICJWaWRlb0ZyYW1lQ2FsbGJhY2tzIjsgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiB0czsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKaW5kZXggZWM3NzExZmUzYmRkNzlmN2VhYjAzMzBmMWJlM2JlMGRjYWMw
OWZlNy4uNjIxZDJlYTI0MmM3ZDlmZWFkMDk5NTJjZDk4MDI2OTU0MGEwYmU5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKQEAgLTIxNSw2ICsyMTUsNyBAQCBlbnVtIGNsYXNzIFJlbmRlcmluZ1VwZGF0ZVN0ZXAg
OiB1aW50MTZfdCB7CiAgICAgU2Nyb2xsaW5nVHJlZVVwZGF0ZSAgICAgICAgICAgICA9IDEgPDwg
MTMsCiAjZW5kaWYKICAgICBGbHVzaEF1dG9mb2N1c0NhbmRpZGF0ZXMgICAgICAgID0gMSA8PCAx
NCwKKyAgICBWaWRlb0ZyYW1lQ2FsbGJhY2tzICAgICAgICAgICAgID0gMSA8PCAxNSwKIH07CiAK
IGNvbnN0ZXhwciBPcHRpb25TZXQ8UmVuZGVyaW5nVXBkYXRlU3RlcD4gdXBkYXRlUmVuZGVyaW5n
U3RlcHMgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1l
TWV0YWRhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWVNZXRhZGF0YS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhmZDlhNDcwMDI0OGQ0ZDI3OGRjZTI3NDk3ODM2MGE1N2JhZjU5ZWEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lTWV0YWRh
dGEuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoVklERU8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFZpZGVvRnJhbWVN
ZXRhZGF0YSB7CisgICAgZG91YmxlIHByZXNlbnRhdGlvblRpbWUgeyAwIH07CisgICAgZG91Ymxl
IGV4cGVjdGVkRGlzcGxheVRpbWUgeyAwIH07CisKKyAgICB1bnNpZ25lZCB3aWR0aCB7IDAgfTsK
KyAgICB1bnNpZ25lZCBoZWlnaHQgeyAwIH07CisgICAgZG91YmxlIG1lZGlhVGltZSB7IDAgfTsK
KworICAgIHVuc2lnbmVkIHByZXNlbnRlZEZyYW1lcyB7IDAgfTsKKyAgICBzdGQ6Om9wdGlvbmFs
PGRvdWJsZT4gcHJvY2Vzc2luZ0R1cmF0aW9uOworCisgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+
IGNhcHR1cmVUaW1lOworICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiByZWNlaXZlVGltZTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBydHBUaW1lc3RhbXA7Cit9OworCit9CisKKyNlbmRp
ZiAvLyBFTkFCTEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKaW5kZXggODRhN2EwNzI3MzFjMTI3ODhhY2VjZWJjMTJlYTY4N2Nl
YmRiMGMyZi4uMDliNzU5YWYzMjg0MDdhMmM2NjQzZTViZjgzYjJhZDM4MThiOTU5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAt
MTcxMCw2ICsxNzEwLDExIEBAIE1lZGlhUGxheWVySWRlbnRpZmllciBNZWRpYVBsYXllcjo6aWRl
bnRpZmllcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+aWRlbnRpZmllcigpOwogfQog
CitzdGQ6Om9wdGlvbmFsPFZpZGVvRnJhbWVNZXRhZGF0YT4gTWVkaWFQbGF5ZXI6OnZpZGVvRnJh
bWVNZXRhZGF0YSgpCit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+dmlkZW9GcmFtZU1ldGFkYXRh
KCk7Cit9CisKIFN0cmluZyBNZWRpYVBsYXllcjo6ZWxlbWVudElkKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gY2xpZW50KCkubWVkaWFQbGF5ZXJFbGVtZW50SWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDk3MTI2NDhjYmFhYmU3NTk5
ZTY3ZGY2NWFmMmMzNTZiZjI0MTYzNWYuLjA0ODhkZjU3MWI3OTZjZTEzNGJmZGYxMTk0MDNhOGYx
NWMwZDI1OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1
ZGUgIlZpZGVvRnJhbWVNZXRhZGF0YS5oIgogI2luY2x1ZGUgIlZpZGVvUGxheWJhY2tRdWFsaXR5
TWV0cmljcy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTY3OCw2ICs2NzksOCBAQCBwdWJsaWM6CiAg
ICAgTWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdDsKICAgICBib29sIGhh
c01lZGlhRW5naW5lKCkgY29uc3Q7CiAKKyAgICBzdGQ6Om9wdGlvbmFsPFZpZGVvRnJhbWVNZXRh
ZGF0YT4gdmlkZW9GcmFtZU1ldGFkYXRhKCk7CisKIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXIo
TWVkaWFQbGF5ZXJDbGllbnQmKTsKICAgICBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYs
IE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4
IDZhYjQ3YjE1MzhmZmMyZjI5NDRjODRhOWY0NGM1YzhjYmI2MDJjZjcuLjg5YTZlOGNlZmU5OTJi
YWJkY2NmOTRkMDU0ZmQwMWU4NWIwZDFlODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0zMjAsNiArMzIwLDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1BhdXNlQXRIb3N0VGltZSgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHBsYXlBdEhvc3RUaW1lKGNv
bnN0IE1vbm90b25pY1RpbWUmKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBw
YXVzZUF0SG9zdFRpbWUoY29uc3QgTW9ub3RvbmljVGltZSYpIHsgcmV0dXJuIGZhbHNlOyB9CisK
KyAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8VmlkZW9GcmFtZU1ldGFkYXRhPiB2aWRlb0ZyYW1l
TWV0YWRhdGEoKSB7IHJldHVybiB7IH07IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmgKaW5kZXggNjNmZDllYTkzZDQ3ZTI0NzIwNjcxYTRiNmM1ZjVkZGRmOWRjYTgzNS4uMzlkZGQw
M2Y1ZjY2YWY3YzAxNzFkMzAwOTFkMGYyN2YwNzc2MWU2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLmgKQEAgLTE1OSw2ICsxNTksNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRCdWZmZXJp
bmdQb2xpY3koTWVkaWFQbGF5ZXI6OkJ1ZmZlcmluZ1BvbGljeSkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBhdWRpb091dHB1dERldmljZUNoYW5nZWQoKSBmaW5hbDsKKyAgICBzdGQ6Om9wdGlvbmFsPFZp
ZGVvRnJhbWVNZXRhZGF0YT4gdmlkZW9GcmFtZU1ldGFkYXRhKCkgZmluYWw7CiAKICAgICBNZWRp
YVBsYXllcjo6UmVhZHlTdGF0ZSBjdXJyZW50UmVhZHlTdGF0ZSgpOwogICAgIHZvaWQgdXBkYXRl
UmVhZHlTdGF0ZSgpOwpAQCAtMjc4LDYgKzI3OSw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lz
VmlzaWJsZUluVmlld1BvcnQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXZlU2Vlbk1ldGFkYXRh
IHsgZmFsc2UgfTsKICAgICBib29sIG1fd2FpdGluZ0ZvckZpcnN0SW1hZ2UgeyBmYWxzZSB9Owor
CisgICAgdWludDY0X3QgbV9zYW1wbGVDb3VudCB7IDAgfTsKKyAgICB1aW50NjRfdCBtX2xhc3RW
aWRlb0ZyYW1lTWV0YWRhdGFTYW1wbGVDb3VudCB7IDAgfTsKIH07CiAgICAgCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KaW5kZXggZGQzYWY2NDE3N2E5MzM4OTJjYjc3ZmEwYzQzYmQyNjUx
NTZkNDE0MS4uZTlkNGQxY2ViZDJhMTRhZjI0NWEyMmU3NjEyYWEzZGI4ZTYzOWU3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMzE2LDYgKzMxNiw4IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwcm9jZXNzTmV3VmlkZW9TYW1wbGUoTWVkaWFT
YW1wbGUmIHNhCiAgICAgICAgICAgICB1cGRhdGVSZWFkeVN0YXRlKCk7CiAgICAgfQogCisgICAg
KyttX3NhbXBsZUNvdW50OworCiAgICAgaWYgKG1fZGlzcGxheU1vZGUgIT0gTGl2ZVByZXZpZXcg
JiYgIW1fd2FpdGluZ0ZvckZpcnN0SW1hZ2UpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTA4OCw2
ICsxMDkwLDIyIEBAIFdURkxvZ0NoYW5uZWwmIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6bG9nQ2hhbm5lbCgpIGNvbnN0CiAgICAgcmV0dXJuIExvZ01lZGlhOwogfQogCitz
dGQ6Om9wdGlvbmFsPFZpZGVvRnJhbWVNZXRhZGF0YT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lTWV0YWRhdGEoKQoreworICAgIGlmIChtX3NhbXBsZUNv
dW50ID09IG1fbGFzdFZpZGVvRnJhbWVNZXRhZGF0YVNhbXBsZUNvdW50KQorICAgICAgICByZXR1
cm4geyB9OworICAgIG1fbGFzdFZpZGVvRnJhbWVNZXRhZGF0YVNhbXBsZUNvdW50ID0gbV9zYW1w
bGVDb3VudDsKKworICAgIFZpZGVvRnJhbWVNZXRhZGF0YSBtZXRhZGF0YTsKKyAgICBtZXRhZGF0
YS53aWR0aCA9IG1faW50cmluc2ljU2l6ZS53aWR0aCgpOworICAgIG1ldGFkYXRhLmhlaWdodCA9
IG1faW50cmluc2ljU2l6ZS5oZWlnaHQoKTsKKyAgICBtZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXMg
PSBtX3NhbXBsZUNvdW50OworCisgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIGdvb2QgdG8gZXhw
b3NlIG1vcmUgdmlkZW8gZnJhbWUgbWV0YWRhdGEuCisKKyAgICByZXR1cm4gbWV0YWRhdGE7Cit9
CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJl
ZmVyZW5jZXMuY3BwCmluZGV4IDIzZGFlYTA1YmRiODY2Zjg1MTEyYzgwZjQwYjNhYjY2MDQzNzg3
OGYuLmJlZDgzMTZmMzc1OGY5MzMzMDE0YzJmYmUyZjJkMjVjMTg5NTliY2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC0yMjI2LDMg
KzIyMjYsMTIgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0WFNTQXVkaXRvckVuYWJsZWQoV0tQcmVm
ZXJlbmNlc1JlZikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgV0tQcmVmZXJlbmNlc1Nl
dFJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5z
ZXRSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZChlbmFibGVkKTsKK30KKworYm9vbCBX
S1ByZWZlcmVuY2VzR2V0UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2Vz
UmVmKS0+cmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQoKTsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWYuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWYuaAppbmRleCAyZjFkYzE1
NThkZWMxNDY4MWFkOGQwYzJmZWM2YzEwYjEyYzAwMDhiLi4yNmIwMDJkNDlmNjE1MmFhYmMyZTJi
MDQ4YmEzODU5ZDBiNjRjYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzUmVmLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlc1JlZi5oCkBAIC0zNTUsNiArMzU1LDEwIEBAIFdLX0VYUE9SVCB2b2lk
IFdLUHJlZmVyZW5jZXNTZXRSZW1vdGVQbGF5YmFja0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlCiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0U2hvdWxkVXNlU2Vydmlj
ZVdvcmtlclNob3J0VGltZW91dChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKTsKIFdL
X0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRTaG91bGRVc2VTZXJ2aWNlV29ya2VyU2hvcnRU
aW1lb3V0KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCk7CiAK
Ky8vIERlZmF1bHRzIHRvIGZhbHNlLgorV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFJl
cXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXNSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFJlcXVlc3RWaWRlb0ZyYW1l
Q2FsbGJhY2tFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5h
YmxlZCk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODFmYTIzMTVjMjc5NjBlZmJiYWUy
YWFkYTQ1MWZhNDNmNzBhYWE4OS4uYzhhZDVlYzk4YWMwM2IzZjQ1NjBlMzQwMzI4OGRjYTg0NWRl
OTRjMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE4IEBACisyMDIxLTEwLTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
ayBBUEkgYW5kIE1lZGlhU3RyZWFtVHJhY2stYmFzZWQgYmFja2VuZCBzdXBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE4MDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEaXNhYmxlIHJ2ZmMgb24g
dGVzdHMgYnkgZGVmYXVsdCB1bnRpbCB3ZSBpbXBsZW1lbnQgcnZmYyBmb3IgdXN1YWwgdmlkZW8g
c3RyZWFtaW5nLgorICAgICAgICBXZWJSVEMgdGVzdHMgZW5hYmxlIHJ2ZmMgdGhlbXNlbHZlcy4K
KworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAg
ICAgKHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisKIDIwMjEtMTAtMTQgIEpv
aG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgVGVzdFdlYktpdEFQ
SS5Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5GcmF1ZFByZXZlbnRpb24gaXMgYSBjb25zdGFudCB0
aW1lb3V0CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXgg
YzFmYjYxNTE5ZDE4NWI3MzhiZjNmNDA2ODg2Yjk3OGJlYzdjNjRiNi4uZmI2OTc4OTEwZGNkMTMw
OGZhN2QwODExNThhOTE3NTgzYmFiYTQwNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbQpAQCAtODY2LDggKzg2NiwxMSBAQCBzdGF0aWMgdm9pZCBzZXRXZWJQ
cmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKFdlYlByZWZlcmVuY2VzICpwcmVmZXJlbmNlcywgY29u
c3QgVwogICAgICAgICBbcHJlZmVyZW5jZXMgX3Jlc2V0Rm9yVGVzdGluZ107CiAKICAgICAgICAg
aWYgKGVuYWJsZUFsbEV4cGVyaW1lbnRhbEZlYXR1cmVzKSB7Ci0gICAgICAgICAgICBmb3IgKFdl
YkZlYXR1cmUgKmZlYXR1cmUgaW4gW1dlYlByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJl
c10pCi0gICAgICAgICAgICAgICAgW3ByZWZlcmVuY2VzIF9zZXRFbmFibGVkOllFUyBmb3JGZWF0
dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgZm9yIChXZWJGZWF0dXJlICpmZWF0dXJlIGluIFtX
ZWJQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IFdlIGRpc2FibGUgcnZmYyBieSBkZWZhdWx0LiBFbmFibGUgaXQgd2hlbiB0aGUg
dmlkZW8gYmFja2VuZCBzdXBwb3J0IGlzIGdvb2QgZW5vdWdoLgorICAgICAgICAgICAgICAgIGF1
dG8gZW5hYmxlZCA9IFtmZWF0dXJlLm5hbWUgaXNFcXVhbDpAIlJlcXVlc3RWaWRlb0ZyYW1lQ2Fs
bGJhY2siXSA/IE5PIDogWUVTOworICAgICAgICAgICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0RW5h
YmxlZDplbmFibGVkIGZvckZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgICAgICB9CiAgICAgICAg
IH0KIAogICAgICAgICBpZiAocGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oKSkgewpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBmZWIyYTM5N2U0
MmEzNjhjNDE3OWVjYjMxZDZkMTkyMDYzZjE5YTA3Li4zYmRlNDhlMWNlNzViYTdhYTYwOTc0ODE4
ZWI2MGY5ZTI4YzdjODVhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcApAQCAtODk2LDYgKzg5Niw5IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnJlc2V0UHJlZmVy
ZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvCiAgICAgICAg
IGlmIChlbmFibGVBbGxFeHBlcmltZW50YWxGZWF0dXJlcykKICAgICAgICAgICAgIFdLUHJlZmVy
ZW5jZXNFbmFibGVBbGxFeHBlcmltZW50YWxGZWF0dXJlcyhwcmVmZXJlbmNlcyk7CiAKKyAgICAg
ICAgLy8gRklYTUU6IFdlIGRpc2FibGUgcnZmYyBieSBkZWZhdWx0LiBFbmFibGUgaXQgd2hlbiB0
aGUgdmlkZW8gYmFja2VuZCBzdXBwb3J0IGlzIGdvb2QgZW5vdWdoLgorICAgICAgICBXS1ByZWZl
cmVuY2VzU2V0UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQocHJlZmVyZW5jZXMsIGZh
bHNlKTsKKwogICAgICAgICBXS1ByZWZlcmVuY2VzUmVzZXRBbGxJbnRlcm5hbERlYnVnRmVhdHVy
ZXMocHJlZmVyZW5jZXMpOwogCiAgICAgICAgIFdLUHJlZmVyZW5jZXNTZXRQcm9jZXNzU3dhcE9u
TmF2aWdhdGlvbkVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuc2hvdWxkRW5hYmxlUHJvY2Vz
c1N3YXBPbk5hdmlnYXRpb24oKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjExY2YzYmIwYjhhMDU2NDhhZjgxOWIyNzE3
ZWNjZjMxMDQ0YzAyNi4uYzg1MjZmNzBmYjU4YzcyYmUxMWEwNWQ4MTFjN2JhYjZjZTU0ZmE1OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTEwLTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVxdWVzdFZpZGVvRnJhbWVD
YWxsYmFjayBBUEkgYW5kIE1lZGlhU3RyZWFtVHJhY2stYmFzZWQgYmFja2VuZCBzdXBwb3J0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE4MDMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtcnZmYy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1l
ZGlhLXJ2ZmMuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhw
ZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgKiB3ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHdlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZjLmh0bWw6IEFkZGVkLgorCiAy
MDIxLTEwLTE4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBb
IHdrMiBdIDIgcGFnZS1jYWNoZSBsYXlvdXQtdGVzdHMgYXJlIGZsYWtleSBjcmFzaGluZwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggYThhNTI4MjlkODBmMTJjZGQ1NzM2NDFlNTlm
ODVhOTYxNjU0NjllNy4uOGY1ZjAwMjlhZjQ0NjUxNDdmZGQ4OWQ4YTQ2OGNmYTM4MDFiYWQwMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjEtMTAt
MTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSBhbmQgTWVkaWFTdHJlYW1UcmFj
ay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTgwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbjoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9NRVRBLnltbDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvUkVBRE1FLm1kOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRv
dy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRl
by1ydmZjL2lkbGhhcm5lc3Mud2luZG93Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93LmpzOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNh
bGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1j
YWxsYmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNr
LWRvbS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92
aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZG9tLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJh
bWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZy
YW1lLWNhbGxiYWNrLWR1cmluZy14ci1zZXNzaW9uLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2Fs
bGJhY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXBhcmFsbGVsLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVx
dWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxi
YWNrLXJlcGVhdGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5n
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3Jl
cXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRl
by1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy93M2Mt
aW1wb3J0LmxvZzogQWRkZWQuCisKIDIwMjEtMTAtMTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIEd1YXJhbnRlZSBvcmRlciBvZiBXZWJTb2NrZXQgZXZlbnRz
IGluIGNhc2Ugb2YgYmVpbmcgcmVzdW1lZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjI5ZGU4ODc0
NmE3ZDdiMjgzZTZhNDI3ZDFkM2MxMTRlOGVhOGFhMS4uMzY1OTUyZDEyNzk5MjY5NTQ1NWM3OWRi
ZTA0NmY5OGMzYmExNzIwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMTYsNiArMjE2LDkgQEAg
ZmFzdC9oYXJuZXNzL3Vpc2NyaXB0Y29udHJvbGxlciBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZyBbIFNraXAgXQogaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL2RvY3VtZW50LWxldmVsLXRvdWNobW92
ZS1ldmVudC1saXN0ZW5lci1wYXNzaXZlLWJ5LWRlZmF1bHQudGVudGF0aXZlLmh0bWwgWyBTa2lw
IF0KIAorIyBPbmx5IE1hYyBhbmQgaU9TIFdLMiBoYXZlIGFuIGltcGxlbWVudGF0aW9uIHJpZ2h0
IG5vdy4KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYyBbIFNraXAg
XQorCiAjIFRoaXMgdGVzdCBvbmx5IG1ha2VzIHNlbnNlIG9uIE1hYwogZmFzdC9hdHRhY2htZW50
L2F0dGFjaG1lbnQtc3VidGl0bGUtcmVzaXplLmh0bWwgWyBTa2lwIF0KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtcnZmYy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ydmZjLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44NDlkOGI1ZjMzN2RlZDRmOGE4ZjBjNjlmMTUzNzM5NmNlOTM1
ZDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRV
c2VyTWVkaWEtcnZmYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKKworUEFTUyBWYWxp
ZGF0ZSBjYWxsYmFja3MgY2FuIGJlIHVwZGF0ZWQgd2l0aGluIGEgY2FsbGJhY2sKK1BBU1MgVmFs
aWRhdGUgY2FsbGJhY2tzIGFuZCBtZXRhZGF0YSBmb3IgZ2V0VXNlck1lZGlhCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45MGUzMDI3NTdlY2I5ODZjZmM5NDZkZTI1MjdjNDA0MDk1ZGE3NjA3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtcnZm
Yy5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhZG9jdHlwZSBodG1sPjwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0
bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICAgICAg
PHRpdGxlPlRlc3RpbmcgcnZmYyBvbiBnZXRVc2VyTWVkaWEgc3RyZWFtPC90aXRsZT4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHZpZGVvIGlk
PSJ2aWRlbyIgYXV0b3BsYXk9IiI+PC92aWRlbz4KKyAgICAgICAgPHNjcmlwdD4KK2FzeW5jIGZ1
bmN0aW9uIGdyYWJOZXh0TWV0YWRhdGEodmlkZW8pCit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNl
KChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgY29uc3QgaWRlbnRpZmllciA9IHZpZGVv
LnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKG5vdywgbWV0YWRhdGEpID0+IHsKKyAgICAgICAg
ICAgIHJlc29sdmUobWV0YWRhdGEpOworICAgICAgICAgICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFt
ZUNhbGxiYWNrKGlkZW50aWZpZXIpOworICAgICAgICB9KTsKKyAgICAgICAgc2V0VGltZW91dCgo
KSA9PiB7CisgICAgICAgICAgICByZWplY3QoIm5vIG1ldGFkYXRhIGZvciAiICsgaWRlbnRpZmll
cik7CisgICAgICAgICAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soaWRlbnRpZmll
cik7CisgICAgICAgIH0sIDUwMDApOworICAgIH0pOworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMg
KHRlc3QpID0+IHsKKyAgICBjb25zdCBsb2NhbFN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRp
YURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzogeyB3aWR0aDogNjQwLCBoZWlnaHQ6IDQ4MCB9
IH0pOworICAgIHZpZGVvLnNyY09iamVjdCA9IGxvY2FsU3RyZWFtOworICAgIGF3YWl0IHZpZGVv
LnBsYXkoKTsKKworICAgIGxldCByZXNvbHZlOworICAgIGxldCBwcm9taXNlID0gbmV3IFByb21p
c2UociA9PiByZXNvbHZlID0gcik7CisgICAgY29uc3QgaWQxID0gdmlkZW8ucmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFjaygobm93LCBtZXRhZGF0YSkgPT4geworICAgICAgICB2aWRlby5jYW5jZWxW
aWRlb0ZyYW1lQ2FsbGJhY2soaWQxKTsKKyAgICAgICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNh
bGxiYWNrKGlkMik7CisKKyAgICAgICAgY29uc3QgaWQzID0gdmlkZW8ucmVxdWVzdFZpZGVvRnJh
bWVDYWxsYmFjaygobm93LCBtZXRhZGF0YSkgPT4geyBhc3NlcnRfbm90X3JlYWNoZWQoKTsgfSk7
CisgICAgICAgIHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayhpZDMpOworICAgICAgICBz
ZXRUaW1lb3V0KHJlc29sdmUsIDEwMCk7CisgICAgfSk7CisKKyAgICBjb25zdCBpZDIgPSB2aWRl
by5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKChub3csIG1ldGFkYXRhKSA9PiB7CisgICAgICAg
IGFzc2VydF9ub3RfcmVhY2hlZCgpOworICAgIH0pOworCisgICAgcmV0dXJuIHByb21pc2U7Cit9
LCAiVmFsaWRhdGUgY2FsbGJhY2tzIGNhbiBiZSB1cGRhdGVkIHdpdGhpbiBhIGNhbGxiYWNrIik7
CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGNvbnN0IGxvY2FsU3RyZWFt
ID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB7IHdp
ZHRoOiA2NDAsIGhlaWdodDogNDgwIH0gfSk7CisgICAgdmlkZW8uc3JjT2JqZWN0ID0gbG9jYWxT
dHJlYW07CisgICAgYXdhaXQgdmlkZW8ucGxheSgpOworCisgICAgbGV0IG1ldGFkYXRhID0gYXdh
aXQgZ3JhYk5leHRNZXRhZGF0YSh2aWRlbyk7CisgICAgYXNzZXJ0X2VxdWFscyhtZXRhZGF0YS53
aWR0aCwgNjQwKTsKKyAgICBhc3NlcnRfZXF1YWxzKG1ldGFkYXRhLmhlaWdodCwgNDgwKTsKKyAg
ICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLnByZXNlbnRlZEZyYW1lcywgMCk7CisgICAg
Y29uc3QgcHJlc2VudGVkRnJhbWVzID0gbWV0YWRhdGEucHJlc2VudGVkRnJhbWVzOworCisgICAg
YXdhaXQgbG9jYWxTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXS5hcHBseUNvbnN0cmFpbnRzKHt3
aWR0aDogMzIwLCBoZWlnaHQ6IDI0MH0pOworCisgICAgbGV0IGNvdW50ZXIgPSAwOworICAgIHdo
aWxlICgrK2NvdW50ZXIgPCAxMDAgJiYgbWV0YWRhdGEud2lkdGggIT09IDMyMCkgeworICAgICAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgNTApKTsK
KyAgICAgICAgbWV0YWRhdGEgPSBhd2FpdCBncmFiTmV4dE1ldGFkYXRhKHZpZGVvKTsKKyAgICB9
CisgICAgYXNzZXJ0X2VxdWFscyhtZXRhZGF0YS53aWR0aCwgMzIwKTsKKyAgICBhc3NlcnRfZ3Jl
YXRlcl90aGFuKG1ldGFkYXRhLnByZXNlbnRlZEZyYW1lcywgcHJlc2VudGVkRnJhbWVzKTsKK30s
ICJWYWxpZGF0ZSBjYWxsYmFja3MgYW5kIG1ldGFkYXRhIGZvciBnZXRVc2VyTWVkaWEiKTsKKyAg
ICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24gYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNv
bgppbmRleCA2MTBkZDVjZmQ1YWY1MGZiZDY5MTFmYzE3MDUzOGJmYTQwYmQyNjk2Li4wMTFhYmUy
MTVhMzI4ZmMyNzM1NGU3NmQ2NGZlZjRjOTE5Nzc5NmYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNv
bgpAQCAtNDQ1LDYgKzQ0NSw3IEBACiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy91cmwiOiAiaW1w
b3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy91c2VyLXRpbWluZyI6ICJpbXBvcnQiLCAK
ICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3ZpYnJhdGlvbiI6ICJza2lwIiwgCisgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvdmlzdWFsLXZpZXdwb3J0IjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvd2FpLWFyaWEiOiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbSI6ICJp
bXBvcnQiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdmlkZW8tcnZmYy9NRVRBLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9NRVRBLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTU4MWY0
MjM0YWQzOWM4MTllMzcxYTUzMmNkNDE2NDIwNjBhN2M0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL01FVEEu
eW1sCkBAIC0wLDAgKzEsMyBAQAorc3BlYzogaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby92aWRlby1y
dmZjLworc3VnZ2VzdGVkX3Jldmlld2VyczoKKyAgLSB0Z3VpbGJlcnQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9SRUFE
TUUubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVv
LXJ2ZmMvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiN2EzNTMwNTE1ODYxYzkxYzRjMDEyYjkzYzJl
MGNmOGU5MTNkZWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvUkVBRE1FLm1kCkBAIC0wLDAgKzEsNyBAQAor
IyBIVE1MVmlkZW9FbGVtZW50LnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sgc3BlY2lmaWNhdGlv
biBUZXN0cworCitUaGUgSFRNTFZpZGVvRWxlbWVudC5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNr
IHNwZWNpZmljYXRpb24gaXMgYXZhaWxhYmxlIGhlcmU6IGh0dHBzOi8vd2ljZy5naXRodWIuaW8v
dmlkZW8tcnZmYworCitHaXRIdWIgcmVwb3NpdG9yeTogaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cv
dmlkZW8tcnZmYworCitGaWxlIGFuIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vd2ljZy92aWRl
by1ydmZjL2lzc3Vlcy9uZXcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2
ZmMvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0YmNiNjI0YzU0
YTAxZDQxZDk4OTFhYWM0MGM5MjFmMjgzOTY2NTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVz
cy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKKworUEFTUyBpZGxfdGVzdCBz
ZXR1cAorUEFTUyBpZGxfdGVzdCB2YWxpZGF0aW9uCitQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIEhU
TUxWaWRlb0VsZW1lbnQ6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkCitQQVNTIFBhcnRpYWwg
aW50ZXJmYWNlIEhUTUxWaWRlb0VsZW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNT
IEhUTUxFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2
ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEhUTUxFbGVtZW50IGlu
Y2x1ZGVzIEVsZW1lbnRDb250ZW50RWRpdGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQ
QVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEhUTUxPclNWR0VsZW1lbnQ6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5v
ZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGRO
b2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0
YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgSFRNTFZpZGVvRWxlbWVudCBpbnRl
cmZhY2U6IG9wZXJhdGlvbiByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKFZpZGVvRnJhbWVSZXF1
ZXN0Q2FsbGJhY2spCitQQVNTIEhUTUxWaWRlb0VsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24g
Y2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKHVuc2lnbmVkIGxvbmcpCitQQVNTIEhUTUxWaWRlb0Vs
ZW1lbnQgaW50ZXJmYWNlOiB2aWRlbyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlcXVlc3RWaWRl
b0ZyYW1lQ2FsbGJhY2soVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjaykiIHdpdGggdGhlIHByb3Bl
ciB0eXBlCitQQVNTIEhUTUxWaWRlb0VsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcXVlc3RW
aWRlb0ZyYW1lQ2FsbGJhY2soVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjaykgb24gdmlkZW8gd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvcgorUEFTUyBIVE1MVmlkZW9F
bGVtZW50IGludGVyZmFjZTogdmlkZW8gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjYW5jZWxWaWRl
b0ZyYW1lQ2FsbGJhY2sodW5zaWduZWQgbG9uZykiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNT
IEhUTUxWaWRlb0VsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGNhbmNlbFZpZGVvRnJhbWVDYWxs
YmFjayh1bnNpZ25lZCBsb25nKSBvbiB2aWRlbyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhh
cm5lc3Mud2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQwODhmZTQyZTFmNzQ4YzlmM2M3M2EwZDQ3
ZjM2NjIwNDc5MGU5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy5odG1sCkBA
IC0wLDAgKzEsMiBAQAorPCFkb2N0eXBlIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBS
ZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZD10cnVlIF0gLS0+Cis8IS0tIFRoaXMgZmls
ZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0
ZW1wbGF0ZWQgdGVzdCAtLT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJu
ZXNzLndpbmRvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTllNGUwOTg4YmY2N2M4OGRjY2QyOTdjZjU2NGJi
OTdkNWRlNmJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93LmpzCkBAIC0wLDAg
KzEsMTcgQEAKKy8vIE1FVEE6IHNjcmlwdD0vcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcworLy8g
TUVUQTogc2NyaXB0PS9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcworLy8gTUVUQTogdGltZW91dD1s
b25nCisKKyd1c2Ugc3RyaWN0JzsKKworaWRsX3Rlc3QoCisgIFsndmlkZW8tcnZmYyddLAorICBb
J2h0bWwnLCAnZG9tJ10sCisgIGlkbF9hcnJheSA9PiB7CisgICAgaWRsX2FycmF5LmFkZF9vYmpl
Y3RzKHsKKyAgICAgIEhUTUxWaWRlb0VsZW1lbnQ6IFsndmlkZW8nXSwKKyAgICB9KTsKKyAgICBz
ZWxmLnZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgfQorKTsKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92
aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhyLXNlc3Npb24u
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhy
LXNlc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmNDc3YzA5MzE5OWQ1MmYy
ZWM4YjJmZTZlMTU1NmVkZWQ5MTlhNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1m
cmFtZS1jYWxsYmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw4IEBACisKK0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitU
SU1FT1VUIE1ha2Ugc3VyZSB2aWRlby5yVkZDIHdvcmtzIGR1cmluZyBhIG5vbi1pbW1lcnNpdmUg
c2Vzc2lvbiAtIHdlYmdsIFRlc3QgdGltZWQgb3V0CitOT1RSVU4gTWFrZSBzdXJlIHZpZGVvLnJW
RkMgd29ya3MgZHVyaW5nIGEgbm9uLWltbWVyc2l2ZSBzZXNzaW9uIC0gd2ViZ2wyCitOT1RSVU4g
TWFrZSBzdXJlIHZpZGVvLnJWRkMgd29ya3MgZHVyaW5nIGFuIGltbWVyc2l2ZSBzZXNzaW9uIC0g
d2ViZ2wKK05PVFJVTiBNYWtlIHN1cmUgdmlkZW8uclZGQyB3b3JrcyBkdXJpbmcgYW4gaW1tZXJz
aXZlIHNlc3Npb24gLSB3ZWJnbDIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2Fs
bGJhY2stYmVmb3JlLXhyLXNlc3Npb24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNh
bGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTI3N2ZiYmE5
MmZiZjYzNTc5YWQ0ZDRkNWEyY2ExZGMyZTM1NmNkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0
LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwKQEAgLTAs
MCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzx0aXRsZT5UZXN0IHRoYXQgdmlk
ZW8uclZGQyBjYWxsYmFja3Mgc3RhcnRlZCBiZWZvcmUgYW4gWFJTZXNzaW9uIHdvcmsuPC90aXRs
ZT4KKzxib2R5PgorPC9ib2R5PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vbWVkaWEuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL3dlYnhyL3Jlc291cmNlcy93ZWJ4cl91dGlsLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi93ZWJ4ci9yZXNvdXJjZXMvd2VieHJfdGVzdF9jb25zdGFudHMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKworLy8gU3RhcnQgdGhlIHZpZGVvLnJWRkMgY2FsbGJhY2tz
IGJlZm9yZSBzdGFydGluZyB0aGUgWFIgU2Vzc2lvbi4KK2xldCB2aWRlbyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7Cit2aWRlby5zcmMgPSBnZXRWaWRlb1VSSSgnL21lZGlhL21v
dmllXzUnKTsKKwordmFyIG51bWJlclZGQ3MgPSAwOworbGV0IHZpZGVvQ2FsbGJhY2sgPSAoKSA9
PiB7CisgICAgbnVtYmVyVkZDcysrOworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2sodmlkZW9DYWxsYmFjayk7Cit9CisKK3ZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2so
dmlkZW9DYWxsYmFjayk7Cit2aWRlby5wbGF5KCk7CisKK2xldCB0ZXN0RnVuY3Rpb24gPSBhc3lu
YyBmdW5jdGlvbihzZXNzaW9uLCBmYWtlRGV2aWNlQ29udHJvbGxlciwgdCkgeworICAgIGxldCB3
YXRjaGVyRG9uZSA9IG5ldyBFdmVudCgid2F0Y2hlcmRvbmUiKTsKKyAgICBsZXQgZXZlbnRXYXRj
aGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCBzZXNzaW9uLCBbImVuZCIsICJ3YXRjaGVyZG9uZSJd
KTsKKyAgICBsZXQgZXZlbnRQcm9taXNlID0gZXZlbnRXYXRjaGVyLndhaXRfZm9yKFsiZW5kIiwg
IndhdGNoZXJkb25lIl0pOworCisgICAgbnVtYmVyVkZDcyA9IDA7CisKKyAgICBmdW5jdGlvbiBv
blhSRnJhbWUodGltZSwgZnJhbWUpIHsKKyAgICAgICAgaWYobnVtYmVyVkZDcyA+PSAyKSB7Cisg
ICAgICAgICAgICAvLyBNYWtlIHN1cmUgdmlkZW8uclZGQ3MgYXJlIHN0aWxsIGNvbWluZyB0aHJv
dWdoIGJlZm9yZSBlbmRpbmcgdGhlCisgICAgICAgICAgICAvLyBzZXNzaW9uLgorICAgICAgICAg
ICAgc2Vzc2lvbi5lbmQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHNlc3Npb24ucmVxdWVzdEFu
aW1hdGlvbkZyYW1lKG9uWFJGcmFtZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25TZXNzaW9u
RW5kKGV2ZW50KSB7CisgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBhcmUgc3RpbGwgZ2V0dGluZyBy
VkZDIGNhbGxiYWNrcyBhZnRlciB0aGUgc2Vzc2lvbiBlbmQuCisgICAgICAgIG51bWJlclZGQ3Mg
PSAwOworICAgICAgICB0LnN0ZXBfd2FpdF9mdW5jKCgpID0+IG51bWJlclZGQ3MgPj0gMiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiBzZXNzaW9uLmRpc3BhdGNoRXZlbnQod2F0Y2hl
ckRvbmUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJUaW1lIG91dCB3YWl0aW5nIGZvciBW
RkMgY2FsbGJhY2tzIik7CisgICAgfQorCisgICAgc2Vzc2lvbi5hZGRFdmVudExpc3RlbmVyKCJl
bmQiLCBvblNlc3Npb25FbmQsIGZhbHNlKTsKKyAgICBzZXNzaW9uLnJlcXVlc3RBbmltYXRpb25G
cmFtZShvblhSRnJhbWUpOworCisgICAgcmV0dXJuIGV2ZW50UHJvbWlzZTsKK30KKworeHJfc2Vz
c2lvbl9wcm9taXNlX3Rlc3QoJ01ha2Ugc3VyZSB2aWRlby5yVkZDIHdvcmtzIGR1cmluZyBhIG5v
bi1pbW1lcnNpdmUgc2Vzc2lvbicsCisgICAgdGVzdEZ1bmN0aW9uLCBUUkFDS0VEX0lNTUVSU0lW
RV9ERVZJQ0UsICdpbmxpbmUnKTsKKwordmlkZW8uY3VycmVudFRpbWUgPSAwOworCit4cl9zZXNz
aW9uX3Byb21pc2VfdGVzdCgnTWFrZSBzdXJlIHZpZGVvLnJWRkMgd29ya3MgZHVyaW5nIGFuIGlt
bWVyc2l2ZSBzZXNzaW9uJywKKyAgICB0ZXN0RnVuY3Rpb24sIFRSQUNLRURfSU1NRVJTSVZFX0RF
VklDRSwgJ2ltbWVyc2l2ZS12cicpOworCis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9y
ZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRl
by1mcmFtZS1jYWxsYmFjay1kb20tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2MzlkNGYyODg1
ZTFmOTc2NDhkNTA1NDc3MGVhZmViNDMyZGM1MGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay1kb20tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitI
YXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9VVCBUZXN0IGEg
dmlkZW8gb3V0c2lkZSBvZiB0aGUgRE9NIGNhbiBzdGlsbCB1c2UgdmlkZW8uclZGQy4gVGVzdCB0
aW1lZCBvdXQKK1RJTUVPVVQgVGVzdCB2aWRlby5yVkZDIHdvcmtzIHdpdGggImRpc3BsYXk6bm9u
ZSIuIFRlc3QgdGltZWQgb3V0CitUSU1FT1VUIFRlc3QgdmlkZW8uclZGQyB3b3JrcyB3aXRoICJ2
aXNpYmlsaXR5OmhpZGRlbiIuIFRlc3QgdGltZWQgb3V0CisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZp
ZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2st
ZG9tLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDI3N2Q3Mjk3ODgzYzRjZDRmNDcyYjA4YzQzOTk4MDYyODBm
ZThlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS5o
dG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8dGl0bGU+VGVz
dCB0aGUgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygpIEFQSSBmb3Igbm9uIHZpc2li
bGUgdmlkZW8gZWxlbWVudHMuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL21lZGlhLmpzIj48L3Nj
cmlwdD4KKzxib2R5PgorPC9ib2R5PgorPHNjcmlwdD4KK3ZhciB0ZXN0VmlkZW8gPSB7CisgIHVy
bDogZ2V0VmlkZW9VUkkoJy9tZWRpYS9tb3ZpZV81JyksCisgIGhlaWdodDogMjQwLAorICB3aWR0
aDogMzIwLAorfQorCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8gPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworCisgICAgdmlkZW8ucmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFjayh0LnN0ZXBfZnVuY19kb25lKCkpOworICAgIHZpZGVvLnNyYyA9IHRlc3RW
aWRlby51cmw7CisgICAgdmlkZW8ucGxheSgpOworCit9LCAnVGVzdCBhIHZpZGVvIG91dHNpZGUg
b2YgdGhlIERPTSBjYW4gc3RpbGwgdXNlIHZpZGVvLnJWRkMuJyk7CisKK2Z1bmN0aW9uIHJ2ZmNT
dHlsZVRlc3QoYXBwbHlTdHlsZSwgZGVzY3JpcHRpb24pIHsKKyAgICBhc3luY190ZXN0KGZ1bmN0
aW9uKHQpIHsKKyAgICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVv
Jyk7CisgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKKyAgICAgIGFwcGx5
U3R5bGUodmlkZW8pOworCisgICAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKAor
ICAgICAgICB0LnN0ZXBfZnVuYyggXyA9PiB7CisgICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGNh
biByZWNlaXZlIG1vcmUgdGhhbiBvbmUgY2FsbGJhY2suCisgICAgICAgICAgdmlkZW8ucmVxdWVz
dFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0ZXBfZnVuY19kb25lKCkpOworICAgICAgICB9KQorICAg
ICAgKTsKKworICAgICAgdmlkZW8uc3JjID0gdGVzdFZpZGVvLnVybDsKKyAgICAgIHZpZGVvLnBs
YXkoKTsKKyAgICB9LCBkZXNjcmlwdGlvbik7Cit9CisKK3J2ZmNTdHlsZVRlc3QoKHZpZGVvKSA9
PiB7IHZpZGVvLnN0eWxlLmRpc3BsYXkgPSAibm9uZSJ9LAorICAnVGVzdCB2aWRlby5yVkZDIHdv
cmtzIHdpdGggImRpc3BsYXk6bm9uZSIuJyk7CisKK3J2ZmNTdHlsZVRlc3QoKHZpZGVvKSA9PiB7
IHZpZGVvLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIn0sCisgICdUZXN0IHZpZGVvLnJWRkMg
d29ya3Mgd2l0aCAidmlzaWJpbGl0eTpoaWRkZW4iLicpOworCis8L3NjcmlwdD4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmluZy14ci1zZXNzaW9u
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmluZy14
ci1zZXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzcyMDIwZTQ5MDI3MWI0
MzQyNDFkOTQ5ODYyMWZhOWViODFhNGM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8t
ZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNiBAQAorCitIYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKwor
VElNRU9VVCBNYWtlIHN1cmUgdmlkZW8uclZGQyBjYWxsYmFja3Mgc3RhcnRlZCBkdXJpbmcgYW4g
aW1tZXJzaXZlIHNlc3Npb24gY29udGludWUgYWZ0ZXIgaXQgZW5kcyAtIHdlYmdsIFRlc3QgdGlt
ZWQgb3V0CitOT1RSVU4gTWFrZSBzdXJlIHZpZGVvLnJWRkMgY2FsbGJhY2tzIHN0YXJ0ZWQgZHVy
aW5nIGFuIGltbWVyc2l2ZSBzZXNzaW9uIGNvbnRpbnVlIGFmdGVyIGl0IGVuZHMgLSB3ZWJnbDIK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Np
b24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmluZy14ci1zZXNz
aW9uLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQ1NjFlZTVmZDA2NTk0NGQxMzNmYTVkMzE0YjZj
ZWQyZjc5NDczZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNr
LWR1cmluZy14ci1zZXNzaW9uLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzx0aXRsZT5UZXN0IHRoYXQgdmlkZW8uclZGQyBjYWxsYmFja3Mgc3Rh
cnRlZCBkdXJpbmcgYW4gWFJTZXNzaW9uIHdvcmsuPC90aXRsZT4KKzxib2R5PgorICAgIDxjYW52
YXMvPgorPC9ib2R5PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vbWVkaWEuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3dlYnhyL3Jlc291cmNlcy93ZWJ4cl91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi93ZWJ4ci9yZXNvdXJjZXMvd2VieHJfdGVzdF9jb25zdGFudHMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKworbGV0IHRlc3RGdW5jdGlvbiA9IGFzeW5jIGZ1bmN0aW9uKHNlc3Np
b24sIGZha2VEZXZpY2VDb250cm9sbGVyLCB0KSB7CisgICAgbGV0IHdhdGNoZXJEb25lID0gbmV3
IEV2ZW50KCJ3YXRjaGVyZG9uZSIpOworICAgIGxldCBldmVudFdhdGNoZXIgPSBuZXcgRXZlbnRX
YXRjaGVyKHQsIHNlc3Npb24sIFsiZW5kIiwgIndhdGNoZXJkb25lIl0pOworICAgIGxldCBldmVu
dFByb21pc2UgPSBldmVudFdhdGNoZXIud2FpdF9mb3IoWyJlbmQiLCAid2F0Y2hlcmRvbmUiXSk7
CisKKyAgICAvLyBTdGFydCB0aGUgdmlkZW8uclZGQyBjYWxsYmFja3Mgd2hpbGUgd2UgYXJlIGlu
IHRoZSB0aGUgWFIgU2Vzc2lvbi4KKyAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCd2aWRlbycpOworICAgIHZpZGVvLnNyYyA9IGdldFZpZGVvVVJJKCcvbWVkaWEvbW92aWVf
NScpOworCisgICAgdmFyIG51bWJlclZGQ3MgPSAwOworICAgIGxldCB2aWRlb0NhbGxiYWNrID0g
KCkgPT4geworICAgICAgICBudW1iZXJWRkNzKys7CisgICAgICAgIHZpZGVvLnJlcXVlc3RWaWRl
b0ZyYW1lQ2FsbGJhY2sodmlkZW9DYWxsYmFjayk7CisgICAgfQorCisgICAgdmlkZW8ucmVxdWVz
dFZpZGVvRnJhbWVDYWxsYmFjayh2aWRlb0NhbGxiYWNrKTsKKyAgICB2aWRlby5wbGF5KCk7CisK
KyAgICBmdW5jdGlvbiBvblhSRnJhbWUodGltZSwgZnJhbWUpIHsKKyAgICAgICAgaWYobnVtYmVy
VkZDcyA+PSAyKSB7CisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdmlkZW8uclZGQ3MgYXJlIGNv
bWluZyB0aHJvdWdoIGJlZm9yZSBlbmRpbmcgdGhlCisgICAgICAgICAgICAvLyBzZXNzaW9uLgor
ICAgICAgICAgICAgc2Vzc2lvbi5lbmQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHNlc3Npb24u
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKG9uWFJGcmFtZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
b25TZXNzaW9uRW5kKGV2ZW50KSB7CisgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBhcmUgc3RpbGwg
Z2V0dGluZyByVkZDIGNhbGxiYWNrcyBhZnRlciB0aGUgc2Vzc2lvbiBlbmQuCisgICAgICAgIG51
bWJlclZGQ3MgPSAwOworICAgICAgICB0LnN0ZXBfd2FpdF9mdW5jKCgpID0+IG51bWJlclZGQ3Mg
Pj0gMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiBzZXNzaW9uLmRpc3BhdGNoRXZl
bnQod2F0Y2hlckRvbmUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJUaW1lIG91dCB3YWl0
aW5nIGZvciBWRkMgY2FsbGJhY2tzIik7CisgICAgfQorCisgICAgc2Vzc2lvbi5hZGRFdmVudExp
c3RlbmVyKCJlbmQiLCBvblNlc3Npb25FbmQsIGZhbHNlKTsKKyAgICBzZXNzaW9uLnJlcXVlc3RB
bmltYXRpb25GcmFtZShvblhSRnJhbWUpOworCisgICAgcmV0dXJuIGV2ZW50UHJvbWlzZTsKK30K
KworeHJfc2Vzc2lvbl9wcm9taXNlX3Rlc3QoJ01ha2Ugc3VyZSB2aWRlby5yVkZDIGNhbGxiYWNr
cyBzdGFydGVkIGR1cmluZyBhbiBpbW1lcnNpdmUgc2Vzc2lvbiBjb250aW51ZSBhZnRlciBpdCBl
bmRzJywKKyAgICB0ZXN0RnVuY3Rpb24sIFRSQUNLRURfSU1NRVJTSVZFX0RFVklDRSwgJ2ltbWVy
c2l2ZS12cicpOworCis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVv
LWZyYW1lLWNhbGxiYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNr
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTdjYjNlOTRjZGZiMjUyNThiOWQ5OWI0ZjRkNDdl
ZGEwZTc3MjE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2st
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworCitIYXJuZXNzIEVycm9yIChUSU1FT1VU
KSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9VVCBUZXN0IHdlIGNhbiByZWdpc3RlciBhIHZpZGVv
LnJWRkMgY2FsbGJhY2suIFRlc3QgdGltZWQgb3V0CitUSU1FT1VUIFRlc3QgdmlkZW8uclZGQyBj
YWxsYmFja3MgcnVuIGJlZm9yZSB3aW5kb3cuckFGIGNhbGxiYWNrcy4gVGVzdCB0aW1lZCBvdXQK
K1RJTUVPVVQgVGVzdCB3ZSBjYW4gY2FuY2VsIGEgdmlkZW8uclZGQyByZXF1ZXN0LiBUZXN0IHRp
bWVkIG91dAorUEFTUyBUZXN0IGludmFsaWQgY2FsbHMgdG8gdGhlIHZpZGVvLnJWRkMgQVBJLgor
VElNRU9VVCBUZXN0IHZpZGVvLnJWRkMgZG9lcyBub3Qgc3RvcCB3aGVuIHN3aXRjaGluZyBzb3Vy
Y2VzLiBUZXN0IHRpbWVkIG91dAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxs
YmFjay1wYXJhbGxlbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1w
YXJhbGxlbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmZlNjg0YWU4ZTY2ZGFiOGNjZTY4ZDIy
NzUzNTk1YTg0NDhjNmI5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNh
bGxiYWNrLXBhcmFsbGVsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKworCitIYXJuZXNz
IEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9VVCBUZXN0IGNhbGxiYWNr
cyBnZXQgdGhlIHNhbWUgaW5mb3JtYXRpb24uIFRlc3QgdGltZWQgb3V0CitUSU1FT1VUIFRlc3Qg
d2UgY2FuIGNhbmNlbCBjYWxsYmFja3MgZnJvbSBjYWxsYmFja3MuIFRlc3QgdGltZWQgb3V0CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXBhcmFsbGVsLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVx
dWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0YzVk
ZTFhZGY1NWJhMDAxNmFiOTk4NTc3NmM1NjhlNDlmNTk1NmQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVx
dWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sCkBAIC0wLDAgKzEsNTcgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8dGl0bGU+VGVzdCBoYXZpbmcgbXVsdGlwbGUgdmlk
ZW8uclZGQyBjYWxsYmFja3MgaW4gZmxpZ2h0IGZvciBhIHNpbmdsZSBlbGVtZW50LjwvdGl0bGU+
Cis8Ym9keT48L2JvZHk+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9tZWRpYS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
dmlkZW8pOworCisgICAgbGV0IGZpcnN0VGltZTsKKyAgICBsZXQgZmlyc3RNZXRhZGF0YTsKKwor
ICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodC5zdGVwX2Z1bmMoKHRpbWUsIG1l
dGFkYXRhKSA9PiB7CisgICAgICBmaXJzdFRpbWUgPSB0aW1lOworICAgICAgZmlyc3RNZXRhZGF0
YSA9IG1ldGFkYXRhOworICAgIH0pKTsKKworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2Fs
bGJhY2sodC5zdGVwX2Z1bmNfZG9uZSgodGltZSwgbWV0YWRhdGEpID0+IHsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoZmlyc3RUaW1lLCB0aW1lKTsKKyAgICAgIGFzc2VydF9vYmplY3RfZXF1YWxzKGZp
cnN0TWV0YWRhdGEsIG1ldGFkYXRhKTsKKyAgICB9KSk7CisKKyAgICB2aWRlby5zcmMgPSBnZXRW
aWRlb1VSSSgnL21lZGlhL21vdmllXzUnKTsKKyAgICB2aWRlby5wbGF5KCk7CisKK30sICdUZXN0
IGNhbGxiYWNrcyBnZXQgdGhlIHNhbWUgaW5mb3JtYXRpb24uJyk7CisKK2FzeW5jX3Rlc3QoZnVu
Y3Rpb24odCkgeworICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVv
Jyk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICBsZXQgc2Vj
b25kQ2FsbGJhY2tJZDsKKworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soCisg
ICAgICB0LnN0ZXBfZnVuYyhfID0+IHsgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKHNl
Y29uZENhbGxiYWNrSWQpOyB9KQorICAgICk7CisKKyAgICBzZWNvbmRDYWxsYmFja0lkID0gdmlk
ZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygKKyAgICAgIHQuc3RlcF9mdW5jKF8gPT4gewor
ICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJDYW5jZWxsZWQgY2FsbGJhY2tzIHNob3VsZG4ndCBi
ZSBleGVjdXRlZCIpCisgICAgICB9KQorICAgICk7CisKKyAgICAvLyBOT1RFOiBUaGlzIGNhbGxi
YWNrIHNob3VsZCBiZSBleGVjdXRlZCBsYXN0LgorICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1l
Q2FsbGJhY2soCisgICAgICB0LnN0ZXBfZnVuY19kb25lKCkKKyAgICApOworCisgICAgdmlkZW8u
c3JjID0gZ2V0VmlkZW9VUkkoJy9tZWRpYS9tb3ZpZV81Jyk7CisgICAgdmlkZW8ucGxheSgpOwor
fSwgJ1Rlc3Qgd2UgY2FuIGNhbmNlbCBjYWxsYmFja3MgZnJvbSBjYWxsYmFja3MuJyk7Cis8L3Nj
cmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXJl
cGVhdGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1yZXBlYXRp
bmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0YTViZTNkZDI1MTJiODVjMzg1NTViOGYzY2U3
MDM2NzhlZDRkZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFj
ay1yZXBlYXRpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCisKK0hhcm5lc3MgRXJy
b3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitUSU1FT1VUIFRlc3QgbmV3IGNhbGxiYWNr
cyBhcmUgb25seSBjYWxsZWQgb24gdGhlIG5leHQgZnJhbWUuIFRlc3QgdGltZWQgb3V0CitUSU1F
T1VUIFRlc3QgY2hhaW5pbmcgY2FsbHMgdG8gdmlkZW8uclZGQywgYW5kIHZlcmlmeSB0aGUgcmVx
dWlyZWQgcGFyYW1ldGVycy4gVGVzdCB0aW1lZCBvdXQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxs
YmFjay1yZXBlYXRpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjM3YTA4NzJjYjBkMGMxNTFlMGE4MGE2
YTU2OTQ0OWZkMjIyYTFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2Fs
bGJhY2stcmVwZWF0aW5nLmh0bWwKQEAgLTAsMCArMSw4MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzx0aXRsZT5UZXN0IHJlcGVhdGVkbHkgY2hhaW5pbmcgdmlkZW8uclZGQygpIGNhbGxi
YWNrcy48L3RpdGxlPgorPGJvZHk+PC9ib2R5PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vbWVkaWEuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgbGV0IHZp
ZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKHZpZGVvKTsKKworICAgIGxldCBmaXJzdFRpbWU7CisgICAgdmlkZW8ucmVx
dWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0ZXBfZnVuYygodGltZSkgPT4geworICAgICAgZmly
c3RUaW1lID0gdGltZTsKKworICAgICAgLy8gUXVldWUgdXAgYSBjYWxsYmFjayBhbmQgbWFrZSBz
dXJlIGl0J3Mgbm90IGltbWVkaWF0ZWx5IGV4ZWN1dGVkLgorICAgICAgbGV0IHNlY29uZFRpbWU7
CisgICAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHQuc3RlcF9mdW5jKCh0aW1l
KSA9PiB7CisgICAgICAgIHNlY29uZFRpbWUgPSB0aW1lOworICAgICAgICBhc3NlcnRfZ3JlYXRl
cl90aGFuKHNlY29uZFRpbWUsIGZpcnN0VGltZSwgIkNhbGxiYWNrcyBzaG91bGQgYmUgZXhlY3V0
ZWQgb24gdGhlIG5leHQgZnJhbWUiKTsKKyAgICAgIH0pKQorCisgICAgICAvLyBRdWV1ZSB1cCBh
IHNlY29uZCBjYWxsYmFjaywgYW5kIG1ha2Ugc3VyZSBpdCdzIGNhbGxlZCBhdCB0aGUgc2FtZSB0
aW1lCisgICAgICAvLyBhcyB0aGUgb25lIHdlIGp1c3QgcXVldWVkIHVwLgorICAgICAgdmlkZW8u
cmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0ZXBfZnVuY19kb25lKCh0aW1lKSA9PiB7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHModGltZSwgc2Vjb25kVGltZSwgIkNhbGxiYWNrcyBxdWV1ZWQg
dG9nZXRoZXIgc2hvdWxkIGJlIGNhbGxlZCBhdCB0aGUgc2FtZSB0aW1lIik7CisgICAgICB9KSkK
KworICAgIH0pKTsKKworICAgIHZpZGVvLnNyYyA9IGdldFZpZGVvVVJJKCcvbWVkaWEvbW92aWVf
NScpOworICAgIHZpZGVvLnBsYXkoKTsKKworfSwgJ1Rlc3QgbmV3IGNhbGxiYWNrcyBhcmUgb25s
eSBjYWxsZWQgb24gdGhlIG5leHQgZnJhbWUuJyk7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkg
eworICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICBsZXQgbWF4TnVtYmVyT2ZD
YWxscyA9IDEwOworICAgIGxldCBjdXJyZW50Q2FsbE51bWJlciA9IDA7CisgICAgbGV0IGxhc3RN
ZXRhZGF0YTsKKworICAgIGZ1bmN0aW9uIHZlcmlmeU1ldGFkYXRhKGxhc3QsIGN1cnJlbnQpIHsK
KyAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oY3VycmVudC5wcmVzZW50ZWRGcmFtZXMsIGxhc3Qu
cHJlc2VudGVkRnJhbWVzLCAicHJlc2VudGVkRnJhbWVzIHNob3VsZCBiZSBtb25vdG9uaWNhbGx5
IGluY3JlYXNpbmciKTsKKyAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oY3VycmVudC5wcmVzZW50
YXRpb25UaW1lLCBsYXN0LnByZXNlbnRhdGlvblRpbWUsICJwcmVzZW50YXRpb25UaW1lIHNob3Vs
ZCBiZSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmciKTsKKyAgICAgIGFzc2VydF9ncmVhdGVyX3Ro
YW4oY3VycmVudC5leHBlY3RlZERpc3BsYXlUaW1lLCBsYXN0LmV4cGVjdGVkRGlzcGxheVRpbWUs
ICJleHBlY3RlZERpc3BsYXlUaW1lIHNob3VsZCBiZSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmci
KTsKKworICAgICAgLy8gV2UgYXJlbid0IHNlZWtpbmcgdGhyb3VnaCB0aGUgZmlsZSwgc28gdGhp
cyBzaG91bGQgYmUgaW5jcmVhc2luZyBmcm9tIGZyYW1lIHRvIGZyYW1lLgorICAgICAgYXNzZXJ0
X2dyZWF0ZXJfdGhhbihjdXJyZW50Lm1lZGlhVGltZSwgbGFzdC5tZWRpYVRpbWUsICJtZWRpYVRp
bWUgc2hvdWxkIGJlIGluY3JlYXNpbmciKTsKKworICAgICAgLy8gVGhlIHRlc3QgdmlkZW8ncyBz
aXplIGRvZXNuJ3QgY2hhbmdlLgorICAgICAgYXNzZXJ0X2VxdWFscyhjdXJyZW50LndpZHRoLCBs
YXN0LndpZHRoLCAid2lkdGggc2hvdWxkIHJlbWFpbiBjb25zdGFudCIpOworICAgICAgYXNzZXJ0
X2VxdWFscyhjdXJyZW50LmhlaWdodCwgbGFzdC5oZWlnaHQsICJoZWlnaHQgc2hvdWxkIHJlbWFp
biBjb25zdGFudCIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlcGVhdGluZ0NhbGxiYWNrKHRp
bWUsIG1ldGFkYXRhKSB7CisgICAgICAvLyBTa2lwIHRoZSBmaXJzdCBjYWxsIHRvIHZlcmlmeU1l
dGFkYXRhLgorICAgICAgaWYgKGN1cnJlbnRDYWxsTnVtYmVyKQorICAgICAgICB2ZXJpZnlNZXRh
ZGF0YShsYXN0TWV0YWRhdGEsIG1ldGFkYXRhKQorCisgICAgICBsYXN0TWV0YWRhdGEgPSBtZXRh
ZGF0YTsKKworICAgICAgaWYgKCsrY3VycmVudENhbGxOdW1iZXIgPiBtYXhOdW1iZXJPZkNhbGxz
KSB7CisgICAgICAgIHQuZG9uZSgpCisgICAgICB9IGVsc2UgeworICAgICAgICB2aWRlby5yZXF1
ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHQuc3RlcF9mdW5jKHJlcGVhdGluZ0NhbGxiYWNrKSk7Cisg
ICAgICB9CisgICAgfQorCisgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0
ZXBfZnVuYyhyZXBlYXRpbmdDYWxsYmFjaykpOworCisgICAgdmlkZW8uc3JjID0gZ2V0VmlkZW9V
UkkoJy9tZWRpYS9tb3ZpZV81Jyk7CisgICAgdmlkZW8ucGxheSgpOworCit9LCAnVGVzdCBjaGFp
bmluZyBjYWxscyB0byB2aWRlby5yVkZDLCBhbmQgdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0
ZXJzLicpOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFt
ZS1jYWxsYmFjay13ZWJydGMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUt
Y2FsbGJhY2std2VicnRjLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZDU0ZDBlYWFl
Nzg4NjQ2ZmIwZGYxMTgyODgyMzFmYjI1NDg3NzdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qt
dmlkZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDQgQEAKKworRkFJTCBUZXN0IHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKSBwYXJh
bWV0ZXJzIGZvciBXZWJSVEMgYXBwbGljYXRpb25zLiBhc3NlcnRfZ3JlYXRlcl90aGFuOiBleHBl
Y3RlZCBhIG51bWJlciBidXQgZ290IGEgInVuZGVmaW5lZCIKKworCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVz
dC12aWRlby1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZy
YW1lLWNhbGxiYWNrLXdlYnJ0Yy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkN2U4ZDdmM2M5Zjdh
ZDFkYTVmMjNiOWRkY2VmNDQ3NzY4NjIyZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRl
by1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMuaHRtbApAQCAtMCwwICsxLDE2NSBAQAorPCFk
b2N0eXBlIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBSZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVx
dWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+Cisg
IDx0aXRsZT5XZWJSVEMgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygpIHRlc3Q8L3Rp
dGxlPgorICA8c2NyaXB0IHNyYz0iL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDxk
aXY+CisgICAgPHZpZGVvIGlkPSJsb2NhbC12aWV3IiBtdXRlZCBhdXRvcGxheT0iYXV0b3BsYXki
PjwvdmlkZW8+CisgICAgPHZpZGVvIGlkPSJyZW1vdGUtdmlldyIgbXV0ZWQgYXV0b3BsYXk9ImF1
dG9wbGF5Ii8+CisgICAgPC92aWRlbz4KKyAgPC9kaXY+CisKKyAgPCEtLSBUaGVzZSBmaWxlcyBh
cmUgaW4gcGxhY2Ugd2hlbiBleGVjdXRpbmcgb24gVzNDLiAtLT4KKyAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKyAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCdUZXN0IHZpZGVvLnJlcXVl
c3RWaWRlb0ZyYW1lQ2FsbGJhY2soKSBwYXJhbWV0ZXJzIGZvciBXZWJSVEMgYXBwbGljYXRpb25z
LicpOworCisgIC8vCisgIC8vIFRoaXMgdGVzdCBpcyBiYXNlZCBvbiAvd2VicnRjL3NpbXBsZWNh
bGwuaHR0cHMuaHRtbCwgYnV0IGl0IGNhbGxzIHRvCisgIC8vIHZpZGVvLnJlcXVlc3RWaWRlb0Zy
YW1lQ2FsbGJhY2soKSBiZWZvcmUgZW5kaW5nLCB0byB2ZXJpZnkgV2ViUlRDIHJlcXVpcmVkCisg
IC8vIGFuZCBvcHRpb25hbCBwYXJhbWV0ZXJzLgorICAvLworCisgIHZhciBnRmlyc3RDb25uZWN0
aW9uID0gbnVsbDsKKyAgdmFyIGdTZWNvbmRDb25uZWN0aW9uID0gbnVsbDsKKyAgdmFyIGdDYWxs
YmFja0NvdW50ZXIgPSAwOworICB2YXIgdmVyaWZ5X3BhcmFtcyA9IChub3csIG1ldGFkYXRhKSA9
PiB7CisgICAgZ0NhbGxiYWNrQ291bnRlciA9IGdDYWxsYmFja0NvdW50ZXIgKyAxOworICAgIGFz
c2VydF9ncmVhdGVyX3RoYW4obm93LCAwKTsKKworICAgIC8vIFZlcmlmeSBhbGwgcmVxdWlyZWQg
ZmllbGRzCisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5wcmVzZW50YXRpb25UaW1l
LCAwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLmV4cGVjdGVkRGlzcGxheVRp
bWUsIDApOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEucHJlc2VudGVkRnJhbWVz
LCAwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLndpZHRoLCAwKTsKKyAgICBh
c3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLmhlaWdodCwgMCk7CisgICAgYXNzZXJ0X3RydWUo
Im1lZGlhVGltZSIgaW4gbWV0YWRhdGEsICJtZWRpYVRpbWUgc2hvdWxkIGJlIHByZXNlbnQiKTsK
KworICAgIC8vIFZlcmlmeSBXZWJSVEMgb25seSBmaWVsZHMuCisgICAgYXNzZXJ0X3RydWUoInJ0
cFRpbWVzdGFtcCIgaW4gbWV0YWRhdGEsICJydHBUaW1lc3RhbXAgc2hvdWxkIGJlIHByZXNlbnQi
KTsKKyAgICBhc3NlcnRfdHJ1ZSgicmVjZWl2ZVRpbWUiIGluIG1ldGFkYXRhLCAicmVjZWl2ZVRp
bWUgc2hvdWxkIGJlIHByZXNlbnQiKTsKKyAgICAvLyBjYXB0dXJlVGltZSBpcyBub3QgYXZhaWxh
YmxlIHVudGlsIHJvdW5kdHJpcCB0aW1lIGVzdGltYXRpb24gaXMgZG9uZS4KKyAgICBpZiAoZ0Nh
bGxiYWNrQ291bnRlciA+IDYwIHx8ICJjYXB0dXJlVGltZSIgaW4gbWV0YWRhdGEpIHsKKyAgICAg
IGFzc2VydF90cnVlKCJjYXB0dXJlVGltZSIgaW4gbWV0YWRhdGEsICJjYXB0dXJlVGltZSBzaG91
bGQgYmUgcHJlc2VudCIpOworICAgICAgdGVzdC5kb25lKCk7CisgICAgfQorICAgIGVsc2Ugewor
ICAgICAgLy8gS2VlcCByZXF1ZXN0aW5nIGNhbGxiYWNrcy4KKyAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdyZW1vdGUtdmlldycpLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodGVzdC5z
dGVwX2Z1bmModmVyaWZ5X3BhcmFtcykpOworICAgIH0KKyAgfQorCisgIHZhciB2ZXJpZnlfbG9j
YWxfbWV0YWRhdGEgPSAobm93LCBtZXRhZGF0YSkgPT4geworICAgIGFzc2VydF9ncmVhdGVyX3Ro
YW4obWV0YWRhdGEuZXhwZWN0ZWREaXNwbGF5VGltZSwgMCk7CisgICAgYXNzZXJ0X2dyZWF0ZXJf
dGhhbihtZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXMsIDApOworICAgIGFzc2VydF9ncmVhdGVyX3Ro
YW4obWV0YWRhdGEud2lkdGgsIDApOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEu
aGVpZ2h0LCAwKTsKKyAgICBhc3NlcnRfdHJ1ZSgiY2FwdHVyZVRpbWUiIGluIG1ldGFkYXRhLCAi
Y2FwdHVyZVRpbWUgc2hvdWxkIGFsd2F5cyBiZSBwcmVzZW50IGZvciBsb2NhbCBzb3VyY2VzLiIp
OworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEuY2FwdHVyZVRpbWUsIDApOworICB9
CisKKyAgLy8gSWYgdGhlIHJlbW90ZSB2aWRlbyBnZXRzIHZpZGVvIGRhdGEgdGhhdCBpbXBsaWVz
IHRoZSBuZWdvdGlhdGlvbgorICAvLyBhcyB3ZWxsIGFzIHRoZSBJQ0UgYW5kIERUTFMgY29ubmVj
dGlvbiBhcmUgdXAuCisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW1vdGUtdmlldycpCisg
ICAgICAuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVkbWV0YWRhdGEnLCBmdW5jdGlvbigpIHsKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVtb3RlLXZpZXcnKS5yZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrKHRlc3Quc3RlcF9mdW5jKHZlcmlmeV9wYXJhbXMpKTsKKyAgfSk7CisKKyAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvY2FsLXZpZXcnKQorICAgICAgLmFkZEV2ZW50TGlzdGVu
ZXIoJ2xvYWRtZXRhZGF0YScsIGZ1bmN0aW9uKCkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdsb2NhbC12aWV3JykucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0ZXN0LnN0ZXBfZnVu
Y19kb25lKHZlcmlmeV9sb2NhbF9tZXRhZGF0YSkpOworICB9KTsKKworCisgIGZ1bmN0aW9uIGdl
dE5vaXNlU3RyZWFtT2tDYWxsYmFjayhsb2NhbFN0cmVhbSkgeworICAgIGdGaXJzdENvbm5lY3Rp
b24gPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24obnVsbCk7CisgICAgdGVzdC5hZGRfY2xlYW51cCgo
KSA9PiBnRmlyc3RDb25uZWN0aW9uLmNsb3NlKCkpOworICAgIGdGaXJzdENvbm5lY3Rpb24ub25p
Y2VjYW5kaWRhdGUgPSBvbkljZUNhbmRpZGF0ZVRvRmlyc3Q7CisKKyAgICBnU2Vjb25kQ29ubmVj
dGlvbiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihudWxsKTsKKyAgICB0ZXN0LmFkZF9jbGVhbnVw
KCgpID0+IGdTZWNvbmRDb25uZWN0aW9uLmNsb3NlKCkpOworICAgIGdTZWNvbmRDb25uZWN0aW9u
Lm9uaWNlY2FuZGlkYXRlID0gb25JY2VDYW5kaWRhdGVUb1NlY29uZDsKKyAgICBnU2Vjb25kQ29u
bmVjdGlvbi5vbnRyYWNrID0gb25SZW1vdGVUcmFjazsKKworICAgIGxvY2FsU3RyZWFtLmdldFRy
YWNrcygpLmZvckVhY2goZnVuY3Rpb24odHJhY2spIHsKKyAgICAgIC8vIEJpZGlyZWN0aW9uYWwg
c3RyZWFtcyBhcmUgbmVlZGVkIGluIG9yZGVyIGZvciBjYXB0dXJlVGltZSB0byBiZQorICAgICAg
Ly8gcG9wdWxhdGVkLiBVc2UgdGhlIHNhbWUgc291cmNlIGluIGJvdGggZGlyZWN0aW9ucy4KKyAg
ICAgIGdGaXJzdENvbm5lY3Rpb24uYWRkVHJhY2sodHJhY2ssIGxvY2FsU3RyZWFtKTsKKyAgICAg
IGdTZWNvbmRDb25uZWN0aW9uLmFkZFRyYWNrKHRyYWNrLCBsb2NhbFN0cmVhbSk7CisgICAgfSk7
CisKKyAgICBnRmlyc3RDb25uZWN0aW9uLmNyZWF0ZU9mZmVyKCkudGhlbihvbk9mZmVyQ3JlYXRl
ZCwgZmFpbGVkKCdjcmVhdGVPZmZlcicpKTsKKworICAgIHZhciB2aWRlb1RhZyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdsb2NhbC12aWV3Jyk7CisgICAgdmlkZW9UYWcuc3JjT2JqZWN0ID0g
bG9jYWxTdHJlYW07CisgIH07CisKKyAgdmFyIG9uT2ZmZXJDcmVhdGVkID0gdGVzdC5zdGVwX2Z1
bmMoZnVuY3Rpb24ob2ZmZXIpIHsKKyAgICBnRmlyc3RDb25uZWN0aW9uLnNldExvY2FsRGVzY3Jp
cHRpb24ob2ZmZXIpOworCisgICAgLy8gVGhpcyB3b3VsZCBub3JtYWxseSBnbyBhY3Jvc3MgdGhl
IGFwcGxpY2F0aW9uJ3Mgc2lnbmFsaW5nIHNvbHV0aW9uLgorICAgIC8vIEluIG91ciBjYXNlLCB0
aGUgInNpZ25hbGluZyIgaXMgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uLgorICAgIHJlY2VpdmVDYWxs
KG9mZmVyLnNkcCk7CisgIH0pOworCisgIGZ1bmN0aW9uIHJlY2VpdmVDYWxsKG9mZmVyU2RwKSB7
CisgICAgdmFyIHBhcnNlZE9mZmVyID0gbmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7IHR5cGU6
ICdvZmZlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNkcDogb2ZmZXJTZHAgfSk7CisgICAgZ1NlY29uZENvbm5lY3Rpb24uc2V0UmVtb3RlRGVz
Y3JpcHRpb24ocGFyc2VkT2ZmZXIpOworCisgICAgZ1NlY29uZENvbm5lY3Rpb24uY3JlYXRlQW5z
d2VyKCkudGhlbihvbkFuc3dlckNyZWF0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZhaWxlZCgnY3JlYXRlQW5zd2VyJykpOworICB9OworCisgIHZhciBvbkFuc3dlckNy
ZWF0ZWQgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihhbnN3ZXIpIHsKKyAgICBnU2Vjb25kQ29u
bmVjdGlvbi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisKKyAgICAvLyBTaW1pbGFybHks
IHRoaXMgd291bGQgZ28gb3ZlciB0aGUgYXBwbGljYXRpb24ncyBzaWduYWxpbmcgc29sdXRpb24u
CisgICAgaGFuZGxlQW5zd2VyKGFuc3dlci5zZHApOworICB9KTsKKworICBmdW5jdGlvbiBoYW5k
bGVBbnN3ZXIoYW5zd2VyU2RwKSB7CisgICAgdmFyIHBhcnNlZEFuc3dlciA9IG5ldyBSVENTZXNz
aW9uRGVzY3JpcHRpb24oeyB0eXBlOiAnYW5zd2VyJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNkcDogYW5zd2VyU2RwIH0pOworICAgIGdGaXJz
dENvbm5lY3Rpb24uc2V0UmVtb3RlRGVzY3JpcHRpb24ocGFyc2VkQW5zd2VyKTsKKyAgfTsKKwor
ICB2YXIgb25JY2VDYW5kaWRhdGVUb0ZpcnN0ID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICAvLyBJZiBldmVudC5jYW5kaWRhdGUgaXMgbnVsbCA9IG5vIG1vcmUgY2FuZGlk
YXRlcy4KKyAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7CisgICAgICBnU2Vjb25kQ29ubmVjdGlv
bi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKKyAgICB9CisgIH0pOworCisgIHZh
ciBvbkljZUNhbmRpZGF0ZVRvU2Vjb25kID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7CisgICAgICBnRmlyc3RDb25uZWN0aW9uLmFk
ZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOworICAgIH0KKyAgfSk7CisKKyAgdmFyIG9u
UmVtb3RlVHJhY2sgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgeworICAgIHZhciB2
aWRlb1RhZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW1vdGUtdmlldycpOworICAgIGlm
ICghdmlkZW9UYWcuc3JjT2JqZWN0KSB7CisgICAgICB2aWRlb1RhZy5zcmNPYmplY3QgPSBldmVu
dC5zdHJlYW1zWzBdOworICAgIH0KKyAgfSk7CisKKyAgLy8gUmV0dXJucyBhIHN1aXRhYmxlIGVy
cm9yIGNhbGxiYWNrLgorICBmdW5jdGlvbiBmYWlsZWQoZnVuY3Rpb25fbmFtZSkgeworICAgIHJl
dHVybiB0ZXN0LnVucmVhY2hlZF9mdW5jKCdXZWJSVEMgY2FsbGVkIGVycm9yIGNhbGxiYWNrIGZv
ciAnICsgZnVuY3Rpb25fbmFtZSk7CisgIH0KKworICAvLyBUaGlzIGZ1bmN0aW9uIHN0YXJ0cyB0
aGUgdGVzdC4KKyAgdGVzdC5zdGVwKGZ1bmN0aW9uKCkgeworICAgIGdldE5vaXNlU3RyZWFtKHsg
dmlkZW86IHRydWUsIGF1ZGlvOiB0cnVlIH0pCisgICAgICAudGhlbih0ZXN0LnN0ZXBfZnVuYyhn
ZXROb2lzZVN0cmVhbU9rQ2FsbGJhY2spLCBmYWlsZWQoJ2dldE5vaXNlU3RyZWFtJykpOworICB9
KTsKKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRl
by1mcmFtZS1jYWxsYmFjay5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2suaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNDQwNDE0M2ZhNDA4ZWJiYjhmNDljYzMxODBlMDY1ZDIwMGZmYTRhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2suaHRtbApAQCAtMCwwICsx
LDE1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzx0aXRsZT5UZXN0IHRoZSBiYXNpY3Mg
b2YgdGhlIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKSBBUEkuPC90aXRsZT4KKzxi
b2R5PjwvYm9keT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL21lZGlhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
Cit2YXIgdGVzdFZpZGVvID0geworICB1cmw6IGdldFZpZGVvVVJJKCcvbWVkaWEvbW92aWVfNScp
LAorICBoZWlnaHQ6IDI0MCwKKyAgd2lkdGg6IDMyMCwKK30KKwordmFyIGFsdFRlc3RWaWRlbyA9
IHsKKyAgdXJsOiBnZXRWaWRlb1VSSSgnL21lZGlhL2NvdW50aW5nJyksCisgIGhlaWdodDogMjQw
LAorICB3aWR0aDogMzIwLAorfQorCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQg
dmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQodmlkZW8pOworCisgICAgbGV0IGlkID0gdmlkZW8ucmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFjaygKKyAgICAgIHQuc3RlcF9mdW5jX2RvbmUoKHRpbWUsIG1ldGFkYXRhKSA9
PiB7CisgICAgICAgIGFzc2VydF90cnVlKHRpbWUgPiAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhtZXRhZGF0YS5oZWlnaHQsIHRlc3RWaWRlby5oZWlnaHQpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKG1ldGFkYXRhLndpZHRoLCB0ZXN0VmlkZW8ud2lkdGgpOworICAgICAgfSkKKyAgICApOwor
CisgICAgYXNzZXJ0X3RydWUoaWQgPiAwKTsKKworICAgIHZpZGVvLnNyYyA9IHRlc3RWaWRlby51
cmw7CisgICAgdmlkZW8ucGxheSgpOworCit9LCAnVGVzdCB3ZSBjYW4gcmVnaXN0ZXIgYSB2aWRl
by5yVkZDIGNhbGxiYWNrLicpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQg
dmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQodmlkZW8pOworCisgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxs
YmFjaygKKyAgICAgIHQuc3RlcF9mdW5jKHZpZGVvX25vdyA9PiB7CisgICAgICAgIC8vIFF1ZXVl
IGEgY2FsbCB0byB3aW5kb3cuckFGLCBhbmQgbWFrZSBzdXJlIGl0IGlzIGV4ZWN1dGVkIHdpdGhp
biB0aGUKKyAgICAgICAgLy8gc2FtZSB0dXJuIG9mIHRoZSBldmVudCBsb29wICh3aXRoIHRoZSBz
YW1lICd0aW1lJyBwYXJhbWV0ZXIpLgorICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZy
YW1lKCB0LnN0ZXBfZnVuY19kb25lKCB3aW5kb3dfbm93ID0+IHsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHZpZGVvX25vdywgd2luZG93X25vdyk7CisgICAgICAgIH0pKTsKKyAgICAgIH0pCisg
ICAgKTsKKworICAgIHZpZGVvLnNyYyA9IHRlc3RWaWRlby51cmw7CisgICAgdmlkZW8ucGxheSgp
OworCit9LCAnVGVzdCB2aWRlby5yVkZDIGNhbGxiYWNrcyBydW4gYmVmb3JlIHdpbmRvdy5yQUYg
Y2FsbGJhY2tzLicpOworCisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIGxldCB2aWRl
byA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICBsZXQgaWQgPSB2aWRlby5yZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrKAorICAgICAgdC5zdGVwX2Z1bmMoXyA9PiB7CisgICAgICAgIGFzc2VydF91bnJl
YWNoZWQoIkNhbmNlbGxlZCBjYWxsYmFja3Mgc2hvdWxkbid0IGJlIGV4ZWN1dGVkIikKKyAgICAg
IH0pCisgICAgKTsKKworICAgIHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayhpZCk7CisK
KyAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKAorICAgICAgdC5zdGVwX2Z1bmMo
XyA9PiB7CisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIHRoZSBvdGhlciBjYWxsYmFjayBzaG91
bGRuJ3QgaGF2ZSBmaXJlZCwgYnV0CisgICAgICAgIC8vIGdpdmUgaXQgc29tZSBtb3JlIHRpbWUg
YW5kIHJlYWxseSBtYWtlIHN1cmUgaXQgZG9lc24ndCwgYnkgZ29pbmcKKyAgICAgICAgLy8gdGhy
b3VnaHQgdGhlIGV2ZW50IGxvb3Agb25jZSBtb3JlLgorICAgICAgICB0LnN0ZXBfdGltZW91dCgo
KSA9PiB7IHQuZG9uZSgpOyB9LCAwKTsKKyAgICAgIH0pCisgICAgKTsKKworICAgIHZpZGVvLnNy
YyA9IHRlc3RWaWRlby51cmw7CisgICAgdmlkZW8ucGxheSgpOworfSwgJ1Rlc3Qgd2UgY2FuIGNh
bmNlbCBhIHZpZGVvLnJWRkMgcmVxdWVzdC4nKTsKKwordGVzdChmdW5jdGlvbih0KSB7CisgICAg
bGV0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKKworICAgIC8vIHJlcXVlc3RWaWRlb0ZyYW1lQ2Fs
bGJhY2soKSBleHBlY3RzIDEgZnVuY3Rpb24gYXMgYSBwYXJhbWV0ZXIuCisgICAgYXNzZXJ0X3Ro
cm93c19qcyhUeXBlRXJyb3IsIF8gPT4geyB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNr
KCkgfSApOworICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBfID0+IHsgdmlkZW8ucmVx
dWVzdFZpZGVvRnJhbWVDYWxsYmFjaygwKSB9KTsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVF
cnJvciwgXyA9PiB7IHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soImZvbyIpIH0pOwor
CisgICAgLy8gY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKCkgZXhwZWN0cyAxIG51bWJlciBhcyBh
IHBhcmFtZXRlcgorICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBfID0+IHsgdmlkZW8u
Y2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKCkgfSApOworCisgICAgLy8gSW52YWxpZCBjYWxscyBh
cmUganVzdCBuby1vcHMKKyAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soXyA9PiB7
fSk7CisgICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKE5hTik7CisgICAgdmlkZW8u
Y2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKCJmb28iKTsKKyAgICB2aWRlby5jYW5jZWxWaWRlb0Zy
YW1lQ2FsbGJhY2soMTIzNDUpOworICAgIHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjaygt
MSk7CisKK30sICdUZXN0IGludmFsaWQgY2FsbHMgdG8gdGhlIHZpZGVvLnJWRkMgQVBJLicpOwor
Citwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24odCkgeworICAgIGxldCB2aWRlbyA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZCh2aWRlbyk7CisKKyAgICBsZXQgZmlyc3Rfd2lkdGggPSAwOworICAgIGxldCBmaXJzdF9oZWln
aHQgPSAwOworCisgICAgdmlkZW8uc3JjID0gdGVzdFZpZGVvLnVybDsKKworICAgIGF3YWl0IHZp
ZGVvLnBsYXkoKTsKKworICAgIC8vIFN3aXRjaCB0byBhbmQgZnJvbSBhIHNlY29uZCB2aWRlbywg
YW5kIG1ha2Ugc3VyZSB3ZSBnZXQgclZGQyBjYWxscyBhdAorICAgIC8vIGVhY2ggc3RlcC4KKyAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgbGV0IG9u
UmV0dXJuVG9PcmlnaW5hbFZpZGVvID0gdC5zdGVwX2Z1bmMoKG5vdywgbWV0YWRhdGEpID0+IHsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhmaXJzdF93aWR0aCwgbWV0YWRhdGEud2lkdGgpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKGZpcnN0X2hlaWdodCwgbWV0YWRhdGEuaGVpZ2h0KTsKKworICAg
ICAgICByZXNvbHZlKCk7CisgICAgICB9KTsKKworICAgICAgbGV0IG9uQWx0VmlkZW9GaXJzdEZy
YW1lID0gdC5zdGVwX2Z1bmMoKG5vdywgbWV0YWRhdGEpID0+IHsKKyAgICAgICAgLy8gVGhlIHZp
ZGVvcyBoYXZlIGRpZmZlcmVudCBzaXplcywgYW5kIHNob3VsZG4ndCBtYXRjaC4KKyAgICAgICAg
YXNzZXJ0X25vdF9lcXVhbHMoZmlyc3Rfd2lkdGgsIG1ldGFkYXRhLndpZHRoKTsKKyAgICAgICAg
YXNzZXJ0X25vdF9lcXVhbHMoZmlyc3RfaGVpZ2h0LCBtZXRhZGF0YS5oZWlnaHQpOworCisgICAg
ICAgIC8vIFN3aXRoIGJhY2sgdG8gdGhlIG9yaWdpbmFsIHZpZGVvLgorICAgICAgICB2aWRlby5y
ZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKG9uUmV0dXJuVG9PcmlnaW5hbFZpZGVvKTsKKyAgICAg
ICAgdmlkZW8uc3JjID0gdGVzdFZpZGVvLnVybDsKKyAgICAgIH0pOworCisgICAgICBsZXQgb25G
aXJzdEZyYW1lID0gdC5zdGVwX2Z1bmMoKG5vdywgbWV0YWRhdGEpID0+IHsKKyAgICAgICAgZmly
c3Rfd2lkdGggPSBtZXRhZGF0YS53aWR0aDsKKyAgICAgICAgZmlyc3RfaGVpZ2h0ID0gbWV0YWRh
dGEuaGVpZ2h0OworCisgICAgICAgIC8vIENhbGxiYWNrcyBzaG91bGQgcGVyc2lzdCBhZnRlciBj
aGFuZ2luZyB0aGUgc291cmNlIHRvIHRoZSBhbHQgdmlkZW8uCisgICAgICAgIHZpZGVvLnJlcXVl
c3RWaWRlb0ZyYW1lQ2FsbGJhY2sob25BbHRWaWRlb0ZpcnN0RnJhbWUpOworICAgICAgICB2aWRl
by5zcmMgPSBhbHRUZXN0VmlkZW8udXJsOworICAgICAgfSkKKworICAgICAgdmlkZW8ucmVxdWVz
dFZpZGVvRnJhbWVDYWxsYmFjayhvbkZpcnN0RnJhbWUpOworICAgIH0pOworfSwgJ1Rlc3Qgdmlk
ZW8uclZGQyBkb2VzIG5vdCBzdG9wIHdoZW4gc3dpdGNoaW5nIHNvdXJjZXMuJyk7CisKKzwvc2Ny
aXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3czYy1pbXBvcnQubG9nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmExNmYxNWZkYjM3NjNmZDNkNDc2YTZhYmE1ODI2NTkzYzhjODFjZGMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyNiBAQAorVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitE
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL01FVEEu
eW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL1JFQURNRS5tZAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy5qcworL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNh
bGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1j
YWxsYmFjay1kb20uaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmluZy14ci1z
ZXNzaW9uLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5o
dG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1l
LWNhbGxiYWNrLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA4OGY3OTkyOWZjOWMyYjVjM2JiZTgxZTM4NzA5YWE4MGVmZjJjNTZiLi5l
MTA2OWVkZWNmOTdlMmVkNzc2Yjg3N2Q0Njg2MzU1MDk2MTdjZmVkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMzgsNiArMTM4LDE1IEBA
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbmFtZS1jbG9ha2luZy10b3Atbm8t
Y25hbWUtc3ViLTFwLWNuYW1lLmh0bWwKIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbmFtZS1jbG9ha2luZy10b3Atbm8tY25hbWUtc3ViLTNwLWNuYW1lLmh0bWwgWyBQYXNzIF0K
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbmFtZS1jbG9ha2luZy10b3Atbm8t
Y25hbWUtc3ViLW5vLWNuYW1lLmh0bWwgWyBQYXNzIF0KIAoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy92aWRlby1ydmZjIFsgUGFzcyBdCisjIFRpbWluZyBvdXQgdGVzdHMgdW50aWwg
d2UgYWRkIHJlZ3VsYXIgdmlkZW8gc3RyZWFtaW5nIGJhY2tlbmQgc3VwcG9ydC4KK2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNh
bGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxi
YWNrLWRvbS5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5o
dHRwcy5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVv
LXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sIFsgU2tpcCBd
CitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRl
by1mcmFtZS1jYWxsYmFjay1yZXBlYXRpbmcuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2su
aHRtbCBbIFNraXAgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVu
ZCBwbGF0Zm9ybS1zcGVjaWZpYyBkaXJlY3Rvcmllcy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCA4MzRiM2RlNDhjYTNhMjliYTY4N2ZmYjk4MGZjYmFiYTM5NTY2ZGRlLi4zODI3
ZTI4ZTQ5N2U2NDkwZmFjYjc5Y2Y0N2RmZjViY2UwZjFmNzAzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMTcsNiArMTE3LDE1IEBAIGZh
c3QvZm9ybXMvZmlsZS9lbnRyaWVzLWFwaS9pbWFnZS1uby10cmFuc2NvZGUtb3Blbi1wYW5lbC5o
dG1sIFsgUGFzcyBdCiAKIHN0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLXRyYW5zYWN0aW9uLWN5
Y2xlLmh0bWwgWyBQYXNzIF0KIAoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRl
by1ydmZjIFsgUGFzcyBdCisjIFRpbWluZyBvdXQgdGVzdHMgdW50aWwgd2UgYWRkIHJlZ3VsYXIg
dmlkZW8gc3RyZWFtaW5nIGJhY2tlbmQgc3VwcG9ydC4KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14
ci1zZXNzaW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS5odG1sIFsg
U2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVz
dC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5odHRwcy5odG1sIFsgU2tp
cCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFj
ay1yZXBlYXRpbmcuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2suaHRtbCBbIFNraXAgXQor
CiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBwbGF0Zm9ybS1zcGVj
aWZpYyBkaXJlY3Rvcmllcy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZjLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZjLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40NTI4Nzc5Nzc5NzU1YjI1NzZhZmQ4MzNmYzExNDdlOTc1OTM0ZTFmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3BlZXJDb25uZWN0aW9uLXJ2ZmMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgVmFsaWRhdGUgY2FsbGJhY2tz
IGFuZCBtZXRhZGF0YSBmb3IgcGVlciBjb25uZWN0aW9uIHRyYWNrcworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy5odG1sIGIvTGF5b3V0VGVzdHMv
d2VicnRjL3BlZXJDb25uZWN0aW9uLXJ2ZmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzMxOTcwYzg1M2Vm
YTBhNjlkOTNhYWQ5YmMwZjUzMTk4OTFiZGVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2VicnRjL3BlZXJDb25uZWN0aW9uLXJ2ZmMuaHRtbApAQCAtMCwwICsxLDYwIEBACis8IWRv
Y3R5cGUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFJlcXVlc3RWaWRlb0ZyYW1lQ2Fs
bGJhY2tFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICAgIDx0aXRsZT5UZXN0aW5nIHJ2ZmMgb24gcGVlciBj
b25uZWN0aW9uIHN0cmVhbXM8L3RpdGxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSJyb3V0aW5lcy5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAg
ICAgICA8dmlkZW8gaWQ9InZpZGVvIiBhdXRvcGxheT0iIj48L3ZpZGVvPgorICAgICAgICA8c2Ny
aXB0PgorYXN5bmMgZnVuY3Rpb24gZ3JhYk5leHRNZXRhZGF0YSh2aWRlbykKK3sKKyAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBjb25zdCBpZGVu
dGlmaWVyID0gdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygobm93LCBtZXRhZGF0YSkg
PT4geworICAgICAgICAgICAgcmVzb2x2ZShtZXRhZGF0YSk7CisgICAgICAgICAgICB2aWRlby5j
YW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soaWRlbnRpZmllcik7CisgICAgICAgIH0pOworICAgICAg
ICBzZXRUaW1lb3V0KHJlamVjdCwgNTAwMCk7CisgICAgfSk7Cit9CisKK3Byb21pc2VfdGVzdChh
c3luYyAodGVzdCkgPT4geworICAgIGNvbnN0IGxvY2FsU3RyZWFtID0gYXdhaXQgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB7IHdpZHRoOiA2NDAsIGhlaWdodDog
NDgwIH0gfSk7CisgICAgY29uc3QgcmVtb3RlU3RyZWFtID0gYXdhaXQgbmV3IFByb21pc2UoKHJl
c29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygoZmlyc3RDb25u
ZWN0aW9uKSA9PiB7CisgICAgICAgICAgICBwYzEgPSBmaXJzdENvbm5lY3Rpb247CisgICAgICAg
ICAgICBjb25zdCBzZW5kZXIgPSBmaXJzdENvbm5lY3Rpb24uYWRkVHJhY2sobG9jYWxTdHJlYW0u
Z2V0VmlkZW9UcmFja3MoKVswXSwgbG9jYWxTdHJlYW0pOworICAgICAgICB9LCAoc2Vjb25kQ29u
bmVjdGlvbikgPT4geworICAgICAgICAgICAgcGMyID0gc2Vjb25kQ29ubmVjdGlvbjsKKyAgICAg
ICAgICAgIHNlY29uZENvbm5lY3Rpb24ub250cmFjayA9ICh0cmFja0V2ZW50KSA9PiB7CisgICAg
ICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0cmVhbXNbMF0pOworICAgICAgICAgICAg
fTsKKyAgICAgICAgfSk7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRp
bWVkIG91dCIpLCA1MDAwKTsKKyAgICB9KTsKKworICAgIHZpZGVvLnNyY09iamVjdCA9IHJlbW90
ZVN0cmVhbTsKKyAgICBhd2FpdCB2aWRlby5wbGF5KCk7CisKKyAgICBsZXQgbWV0YWRhdGEgPSBh
d2FpdCBncmFiTmV4dE1ldGFkYXRhKHZpZGVvKTsKKyAgICBhc3NlcnRfZXF1YWxzKG1ldGFkYXRh
LndpZHRoLCA2NDApOworICAgIGFzc2VydF9lcXVhbHMobWV0YWRhdGEuaGVpZ2h0LCA0ODApOwor
ICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEucHJlc2VudGVkRnJhbWVzLCAwKTsKKyAg
ICBjb25zdCBwcmVzZW50ZWRGcmFtZXMgPSBtZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXM7CisKKyAg
ICBhd2FpdCBsb2NhbFN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLmFwcGx5Q29uc3RyYWludHMo
e3dpZHRoOiAzMjB9KTsKKworICAgIGxldCBjb3VudGVyID0gMDsKKyAgICB3aGlsZSAoKytjb3Vu
dGVyIDwgMTAwICYmIG1ldGFkYXRhLndpZHRoICE9PSAzMjApIHsKKyAgICAgICAgYXdhaXQgbmV3
IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDUwKSk7CisgICAgICAgIG1l
dGFkYXRhID0gYXdhaXQgZ3JhYk5leHRNZXRhZGF0YSh2aWRlbyk7CisgICAgfQorICAgIGFzc2Vy
dF9lcXVhbHMobWV0YWRhdGEud2lkdGgsIDMyMCk7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbiht
ZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXMsIHByZXNlbnRlZEZyYW1lcyk7Cit9LCAiVmFsaWRhdGUg
Y2FsbGJhY2tzIGFuZCBtZXRhZGF0YSBmb3IgcGVlciBjb25uZWN0aW9uIHRyYWNrcyIpOworICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441707</attachid>
            <date>2021-10-19 03:46:48 -0700</date>
            <delta_ts>2021-10-20 00:25:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231803-20211019124644.patch</filename>
            <type>text/plain</type>
            <size>99017</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdjZDU5NmY4NzJlYzA5NDQ1ZGQyMmVh
ZDhhOTZhOTk1MDc3MmI0N2MuLjZmMTg2OGRlOWFjMjM3ZDc5MWQ5NjRjOTUxY2NiMGY2M2EwNTdm
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTAtMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrIEFQSSBhbmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwMwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorCiAyMDIxLTEw
LTE1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXQg
TWFuYWdlZCBOb3RpZmljYXRpb25zOiBTa2VsZXRvbiBOb3RpZmljYXRpb25Qcm92aWRlci4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA4MWI3OGQ4ZWU0Mjc0YzdhYWU1MWVlNGJmMzJmZDQ0M2E5NGQ3M2JkLi41NzFm
MjI5MGY1Y2I1MjYyOWJkNDhhMTgwZTZjNzI5Mzk1OTA4ZmM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTQgQEAKKzIwMjEtMTAtMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSBh
bmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBXZWJJREwgdG8gZXhwb3Nl
IGh0dHBzOi8vd2ljZy5naXRodWIuaW8vdmlkZW8tcnZmYy8gQVBJLgorICAgICAgICBQdXQgdGhl
bSBiZWhpbmQgYSBydW50aW1lIGZsYWcuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBh
bGdvcml0aG1zLCBpbmNsdWRpbmcgdGhlIGludGVncmF0aW9uIHdpdGggdGhlICd1cGRhdGUgdGhl
IHJlbmRlcmluZycgYWxnb3JpdGhtLgorICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciB2
aWRlbyBlbGVtZW50cyBiYWNrZWQgYnkgTWVkaWFTdHJlYW0gY29udGVudC4KKyAgICAgICAgV2Ug
ZXhwb3NlIGEgbGltaXRlZCBzZXQgb2YgbWV0YWRhdGEgY3VycmVudGx5LCBmb2xsb3ctdXAgcGF0
Y2hlcyBzaG91bGQgYWRkIHN1cHBvcnQgZm9yIG90aGVyIHZpZGVvIGJhY2tlbmRzIGFuZCBtb3Jl
IG1ldGFkYXRhLgorICAgICAgICBUaGlzIHN1cHBvcnQgc2hvdWxkIHN0aWxsIGVuYWJsZSB0byBv
cHRpbWl6ZSBhIGJpdCBNZWRpYVN0cmVhbVRyYWNrIC0+IGNhbnZhcyBwaXBlbGluZXMuCisKKyAg
ICAgICAgVGVzdHM6IGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMuaHRtbAorICAg
ICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lk
bGhhcm5lc3Mud2luZG93Lmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9y
ZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRv
bS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5o
dHRwcy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sCisg
ICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
cmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1yZXBlYXRpbmcuaHRtbAorICAgICAgICAgICAg
ICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1l
LWNhbGxiYWNrLmh0bWwKKyAgICAgICAgICAgICAgIHdlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZj
Lmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrLmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL1ZpZGVvRnJh
bWVNZXRhZGF0YS5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvVmlkZW9GcmFtZVJlcXVlc3RD
YWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJh
Y2suaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL1ZpZGVvRnJhbWVNZXRhZGF0YS5oOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW06CisKIDIwMjEtMTAtMTkgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEd1YXJhbnRlZSBvcmRlciBvZiBXZWJT
b2NrZXQgZXZlbnRzIGluIGNhc2Ugb2YgYmVpbmcgcmVzdW1lZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5NTkyMmRm
NTMyODU1YTVhZmEyMDdmM2ViYjUzMDFlZDMzMmY2NmI4Li5iYmYxMjU2OTU0ODA5NjkwM2RkNGI3
YWMzOWNiMGQ0ZWQzZGE2YzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEwLTE5
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgcmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayBBUEkgYW5kIE1lZGlhU3RyZWFtVHJhY2st
YmFzZWQgYmFja2VuZCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE4MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgdGVtcG9yYXJ5IGdldHRlci9zZXR0ZXIgb2YgcnZmYyBmZWF0dXJl
IGZsYWcuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6Cisg
ICAgICAgIChXS1ByZWZlcmVuY2VzU2V0UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQp
OgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldFJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tFbmFi
bGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZi5oOgorCiAy
MDIxLTEwLTE5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBH
dWFyYW50ZWUgb3JkZXIgb2YgV2ViU29ja2V0IGV2ZW50cyBpbiBjYXNlIG9mIGJlaW5nIHJlc3Vt
ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggZDllMzZjMTllZDM5ZmEyOTg3N2Qz
NmRkNWExZWQ4MzdjMjQ1MGJlNS4uNjlkNDJjYTExNjBiODQ5YjQ0MTE5ZWM2NzYzMmIzZjBhMWVj
NTc5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTExMTUsNiArMTExNSwxOCBA
QCBSZXF1ZXN0U3VibWl0RW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFs
c2UKIAorUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAg
aHVtYW5SZWFkYWJsZU5hbWU6ICJSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIgorICBodW1hblJl
YWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayBBUEki
CisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxz
ZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAg
IGRlZmF1bHQ6IGZhbHNlCisKICMgRklYTUU6IFRoaXMgaXMgb24gYnkgZGVmYXVsdCBpbiBXZWJL
aXQyLiBQZXJoYXBzIHdlIHNob3VsZCBjb25zaWRlciB0dXJuaW5nIGl0IG9uIGZvciBXZWJLaXRM
ZWdhY3kgYXMgd2VsbC4KIFJlc2l6ZU9ic2VydmVyRW5hYmxlZDoKICAgdHlwZTogYm9vbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCAxZjE0MDIwZGRjNDdjOTdkNzhhNzg3MDA0YjM3MzBmMGY5NTQw
YmQxLi5lOGRkM2M4M2RkNzkwNGI2MjgyYzVhNGQ3MWNkYzE1ODI1MWIyOTRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtMTAzNyw2ICsxMDM3LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExf
RklMRVMKICAgICBodG1sL0hUTUxUcmFja0VsZW1lbnQuaWRsCiAgICAgaHRtbC9IVE1MVUxpc3RF
bGVtZW50LmlkbAogICAgIGh0bWwvSFRNTFVua25vd25FbGVtZW50LmlkbAorICAgIGh0bWwvSFRN
TFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrLmlkbAogICAgIGh0bWwvSFRN
TFZpZGVvRWxlbWVudC5pZGwKICAgICBodG1sL0ltYWdlQml0bWFwLmlkbAogICAgIGh0bWwvSW1h
Z2VCaXRtYXBPcHRpb25zLmlkbApAQCAtMTA1Miw2ICsxMDUzLDggQEAgc2V0KFdlYkNvcmVfTk9O
X1NWR19JRExfRklMRVMKICAgICBodG1sL1RpbWVSYW5nZXMuaWRsCiAgICAgaHRtbC9VUkxTZWFy
Y2hQYXJhbXMuaWRsCiAgICAgaHRtbC9WYWxpZGl0eVN0YXRlLmlkbAorICAgIGh0bWwvVmlkZW9G
cmFtZU1ldGFkYXRhLmlkbAorICAgIGh0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwK
ICAgICBodG1sL1ZvaWRDYWxsYmFjay5pZGwKIAogICAgIGh0bWwvY2FudmFzL0NhbnZhc0NvbXBv
c2l0aW5nLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKaW5kZXggMzQ5YmIwNGM3ZDJiNDVjODViMzM1MzcwMWM5N2U0ZGYxN2ZiMjZiNy4uZTJk
Y2Y0M2MxYWExNTY0Y2I3NjQzOTI5ZGU3M2JmMTIyZDBmYTQ5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xMDA5LDYgKzEwMDksNyBA
QCAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxMaW5rRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIp
L2h0bWwvSFRNTE1hcEVsZW1lbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxNYXJxdWVl
RWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTE1lZGlhRWxlbWVudCtBdWRpb091
dHB1dC5pZGwKKyQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTE1lZGlhRWxlbWVudCtSZXF1ZXN0Vmlk
ZW9GcmFtZUNhbGxiYWNrLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWVudUVsZW1lbnQuaWRsCiAkKFBST0pFQ1Rf
RElSKS9odG1sL0hUTUxNZW51SXRlbUVsZW1lbnQuaWRsCkBAIC0xMDQ4LDYgKzEwNDksNyBAQCAk
KFBST0pFQ1RfRElSKS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9o
dG1sL0hUTUxUcmFja0VsZW1lbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxVTGlzdEVs
ZW1lbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxVbmtub3duRWxlbWVudC5pZGwKKyQo
UFJPSkVDVF9ESVIpL2h0bWwvSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmlkbAogJChQUk9K
RUNUX0RJUikvaHRtbC9JbWFnZUJpdG1hcC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSW1hZ2VC
aXRtYXBPcHRpb25zLmlkbApAQCAtMTA2Myw2ICsxMDY1LDggQEAgJChQUk9KRUNUX0RJUikvaHRt
bC9UZXh0TWV0cmljcy5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvVGltZVJhbmdlcy5pZGwKICQo
UFJPSkVDVF9ESVIpL2h0bWwvVVJMU2VhcmNoUGFyYW1zLmlkbAogJChQUk9KRUNUX0RJUikvaHRt
bC9WYWxpZGl0eVN0YXRlLmlkbAorJChQUk9KRUNUX0RJUikvaHRtbC9WaWRlb0ZyYW1lTWV0YWRh
dGEuaWRsCiskKFBST0pFQ1RfRElSKS9odG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRs
CiAkKFBST0pFQ1RfRElSKS9odG1sL1ZvaWRDYWxsYmFjay5pZGwKICQoUFJPSkVDVF9ESVIpL2h0
bWwvV2ViS2l0TWVkaWFLZXlFcnJvci5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvY2FudmFzL0FO
R0xFSW5zdGFuY2VkQXJyYXlzLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA5NzYyMzE0YWIyZWQ2YjMyODg1YjdkNjMyNjJkZDIx
MjI4ZDM2M2JhLi44Y2FmYTFlODRjOTc5NGNlZDk4MzJiNWRiOWQ3ODlhNmJkMDNkOTAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAt
OTk1LDYgKzk5NSw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTSFRNTE1lZGlhRWxlbWVudCtBdWRpb091dHB1dC5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudCtBdWRpb091dHB1
dC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxN
ZWRpYUVsZW1lbnQrUmVtb3RlUGxheWJhY2suY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZWRpYUVsZW1lbnQrUmVtb3RlUGxheWJhY2suaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVkaWFF
bGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZWRpYUVsZW1lbnQrUmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFjay5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0hUTUxNZWRpYUVsZW1lbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZWRpYUVsZW1lbnQuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVudUVsZW1lbnQuY3BwCkBAIC0xMDc1
LDYgKzEwNzcsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0hUTUxVbmtub3duRWxlbWVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTSFRNTFVua25vd25FbGVtZW50LmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFZpZGVvRWxlbWVudCtQaWN0dXJlSW5Q
aWN0dXJlLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNIVE1MVmlkZW9FbGVtZW50K1BpY3R1cmVJblBpY3R1cmUuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRl
b0ZyYW1lQ2FsbGJhY2suY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0hUTUxWaWRlb0VsZW1lbnQrUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjay5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxWaWRlb0Vs
ZW1lbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0hUTUxWaWRlb0VsZW1lbnQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNIYXNoQ2hhbmdlRXZlbnQuY3BwCkBAIC0yMzA3LDYgKzIzMTEsMTAgQEAgJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWYWxpZGl0eVN0YXRl
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWYWxp
ZGl0eVN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTVmlkZW9Db25maWd1cmF0aW9uLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNWaWRlb0NvbmZpZ3VyYXRpb24uaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWaWRlb0ZyYW1lTWV0YWRhdGEuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZpZGVvRnJhbWVNZXRh
ZGF0YS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Zp
ZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWaWRlb1BsYXliYWNrUXVhbGl0
eS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmlk
ZW9QbGF5YmFja1F1YWxpdHkuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNWaWRlb1RyYWNrK01lZGlhU291cmNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggMTU5OTRhYmMyMjFhNzY1ODQ5YzRhNTkwYzQ5NmRmMTYwMjk0YWExNC4u
YzEyMTdhM2M1NGNmZmRhZDYwOGZmOTM2ZjAwMjA5N2JhMzVhNTc0MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC04OTcsNiArODk3LDcgQEAgSlNfQklORElOR19JRExTIDo9IFwK
ICAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29y
ZSkvaHRtbC9IVE1MVW5rbm93bkVsZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSFRN
TFZpZGVvRWxlbWVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVmlkZW9FbGVtZW50
K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSW1h
Z2VCaXRtYXAuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSW1hZ2VCaXRtYXBPcHRpb25zLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9odG1sL0ltYWdlRGF0YS5pZGwgXApAQCAtOTExLDYgKzkxMiw4
IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS9odG1sL1RpbWVSYW5nZXMu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvVVJMU2VhcmNoUGFyYW1zLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9odG1sL1ZhbGlkaXR5U3RhdGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvVmlk
ZW9GcmFtZU1ldGFkYXRhLmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL1ZpZGVvRnJhbWVSZXF1
ZXN0Q2FsbGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvVm9pZENhbGxiYWNrLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9odG1sL1dlYktpdE1lZGlhS2V5RXJyb3IuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL0FOR0xFSW5zdGFuY2VkQXJyYXlzLmlkbCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQppbmRleCBiMDY1N2UxY2M5ZGU1OWIwOTI5ODU5ZDQ5MTcyZWYxOWNmZDhlNjMxLi4xMjEy
ZGE0YTYzNGIyYjFiOWViZTFkYmNmMWU0YmJlMTMzNmFlMTRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
QEAgLTc1OCw2ICs3NTgsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
CiAgICAgaHRtbC9VUkxEZWNvbXBvc2l0aW9uLmgKICAgICBodG1sL1VSTFJlZ2lzdHJ5LmgKICAg
ICBodG1sL1ZhbGlkaXR5U3RhdGUuaAorICAgIGh0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFj
ay5oCiAgICAgaHRtbC9Wb2lkQ2FsbGJhY2suaAogCiAgICAgaHRtbC9jYW52YXMvSW1hZ2VCaXRt
YXBSZW5kZXJpbmdDb250ZXh0U2V0dGluZ3MuaApAQCAtMTE4MSw2ICsxMTgyLDcgQEAgc2V0KFdl
YkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL1VzZXJBZ2VudC5o
CiAgICAgcGxhdGZvcm0vVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbi5oCiAgICAgcGxhdGZv
cm0vVmFsaWRhdGlvbkJ1YmJsZS5oCisgICAgcGxhdGZvcm0vVmlkZW9GcmFtZU1ldGFkYXRhLmgK
ICAgICBwbGF0Zm9ybS9XZWJHTFN0YXRlVHJhY2tlci5oCiAgICAgcGxhdGZvcm0vV2lkZ2V0LmgK
ICAgICBwbGF0Zm9ybS9XaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDEz
ZjYxMjE4NTg3NzkzMmU1ZDI3YTIzMDM4NzE5YWJiMzI0ZjgyNGQuLmNlOTYwZDUwNTY4YzNmNDhl
OThiZmVhYWViNDEwOWI0Y2NkNDI3ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0zNzI3LDYgKzM3Mjcs
OCBAQCBKU1ZUVFJlZ2lvbi5jcHAKIEpTVlRUUmVnaW9uTGlzdC5jcHAKIEpTVmFsaWRpdHlTdGF0
ZS5jcHAKIEpTVmlkZW9Db25maWd1cmF0aW9uLmNwcAorSlNWaWRlb0ZyYW1lTWV0YWRhdGEuY3Bw
CitKU1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suY3BwCiBKU1ZpZGVvUGxheWJhY2tRdWFsaXR5
LmNwcAogSlNWaWRlb1RyYWNrLmNwcAogSlNWaWRlb1RyYWNrTGlzdC5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNzJiY2Zl
NjE5ZmIwMjBlMWVjZWZmZGI2ZTJlNjEzNDg0MjBkNzE3Li43OTIzZTMxNDI1M2Y3ZjgwNzhkOWI4
NjQ2Mzg0YTkyYThjNGI2MDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTgyLDYgKzExODIsOCBAQAogCQk0MThGQ0JDMTI3
MDZFNEZCMDBGOTZFQ0EgLyogUHVzaEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MThGQ0JCRDI3MDZFNEY3MDBGOTZFQ0EgLyogUHVzaEV2ZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE4
RkNCQzIyNzA2RTUwMTAwRjk2RUNBIC8qIFB1c2hFdmVudEluaXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxOEZDQkJGMjcwNkU0RjgwMEY5NkVDQSAv
KiBQdXNoRXZlbnRJbml0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNDE4RkNCRTcyNzE1QTI4RjAwRjk2RUNBIC8qIFJUQ1J0cENvZGVjQ2FwYWJp
bGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFF
MEE3REMyM0JCNjNEQjAwNTYxMDYwIC8qIFJUQ1J0cENvZGVjQ2FwYWJpbGl0eS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxOEZDQzAxMjcxOTY4
MUEwMEY5NkVDQSAvKiAobnVsbCkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE4RkNDMDYy
NzE5NkFGNjAwRjk2RUNBIC8qIChudWxsKSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTkw
RjNBNTI0QTBCNEVFMDA1MzFDNTcgLyogRnJhbWVSYXRlTW9uaXRvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE5MEYzQTMyNDlEMTUyODAwNTMxQzU3
IC8qIEZyYW1lUmF0ZU1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk0MTkyNDI0OTIxMjdCOTNFMDA2MzRGQ0YgLyogUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTkyNDI0NzIxMjdCN0NDMDA2MzRGQ0YgLyogUmVhbHRpbWVPdXRnb2lu
Z1ZpZGVvU291cmNlQ29jb2EubW0gKi87IH07CiAJCTQxOUFDRjkyMUY5N0U3REEwMDlGMUE4MyAv
KiBTZXJ2aWNlV29ya2VyRmV0Y2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxOUFDRjhFMUY5N0U3RDUwMDlGMUE4MyAvKiBTZXJ2aWNlV29ya2VyRmV0
Y2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
MTIxOCw2ICsxMjIwLDggQEAKIAkJNDFEMjhEMEQyMTM5RTA1ODAwRjQyMDZGIC8qIExpYldlYlJU
Q1N0YXRzQ29sbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxRDI4RDBCMjEzOUUwMUQwMEY0MjA2RiAvKiBMaWJXZWJSVENTdGF0c0NvbGxl
Y3Rvci5jcHAgKi87IH07CiAJCTQxRDQxQzY3MjI1Njg3NEYwMDY5Nzk0MiAvKiBTZXJ2aWNlV29y
a2VySW50ZXJuYWxzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDFENDFDNjUyMjU2ODU5MjAwNjk3OTQyIC8qIFNlcnZpY2VXb3JrZXJJbnRlcm5hbHMu
bW0gKi87IH07CiAJCTQxREU3QzdDMjIyREExNDMwMDUzMkI2NSAvKiBTdG9yYWdlUXVvdGFNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURF
N0M3QjIyMkRBMTNFMDA1MzJCNjUgLyogU3RvcmFnZVF1b3RhTWFuYWdlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxREVFRkIwMjcxOUIyOTAw
MENCOEQ3NCAvKiBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURFRUZBQzI3MTlCMjg4MDBDQjhENzQgLyog
VmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTQxREVFRkI2MjcxOUJBMUEwMENCOEQ3NCAvKiBWaWRlb0Zy
YW1lTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxREVFRkI0MjcxOUJBMTkwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lTWV0YWRhdGEuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MURFRkNCNjFF
NTZDMUJEMDAwRDlFNUYgLyogSlNET01NYXBMaWtlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURFRkNCNDFFNTZDMUI5MDAwRDlFNUYgLyogSlNET01N
YXBMaWtlLmggKi87IH07CiAJCTQxRTEyRTlGMjRGRTc0RTIwMDkzRkZCNCAvKiBXZWJTb2NrZXRJ
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MUUxMkU5RDI0RkU3NEUyMDA5M0ZGQjQgLyogV2ViU29ja2V0SWRlbnRpZmllci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxRTFCMUQxMEZG
NTk4NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFMUIxQ0IwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3Ry
YWN0V29ya2VyLmggKi87IH07CkBAIC04Mjk2LDYgKzgzMDAsMTEgQEAKIAkJNDFENkJEOTgyNTFC
M0FEQTAwNTVBN0I3IC8qIEhUTUxNZWRpYUVsZW1lbnQrQXVkaW9PdXRwdXQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9ICJIVE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0LmlkbCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREU3QzdBMjIyREExM0QwMDUzMkI2NSAvKiBTdG9y
YWdlUXVvdGFNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFN0b3JhZ2VRdW90YU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MURFN0M3QjIyMkRBMTNFMDA1MzJCNjUgLyogU3RvcmFnZVF1b3RhTWFuYWdlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlUXVvdGFNYW5hZ2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxREVFRkFDMjcxOUIyODgwMENCOEQ3NCAvKiBWaWRlb0Zy
YW1lUmVxdWVzdENhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnJhbWVSZXF1ZXN0Q2Fs
bGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFERUVGQUUyNzE5QjI4OTAw
Q0I4RDc0IC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZpZGVvRnJhbWVS
ZXF1ZXN0Q2FsbGJhY2suaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MURFRUZB
RjI3MTlCMjg5MDBDQjhENzQgLyogVmlkZW9GcmFtZU1ldGFkYXRhLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBWaWRlb0Zy
YW1lTWV0YWRhdGEuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MURFRUZCMTI3
MTlCMkJFMDBDQjhENzQgLyogSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSAiSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNr
LmlkbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxREVFRkI0MjcxOUJBMTkwMENC
OEQ3NCAvKiBWaWRlb0ZyYW1lTWV0YWRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVmlkZW9GcmFtZU1ldGFkYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxREVGQ0IyMUU1NkMxQjkwMDBEOUU1RiAvKiBKU0RPTUJpbmRpbmdJbnRlcm5hbHMuanMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBKU0RPTUJpbmRpbmdJbnRlcm5h
bHMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREVGQ0IzMUU1NkMxQjkwMDBE
OUU1RiAvKiBKU0RPTU1hcExpa2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNET01NYXBMaWtlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFE
RUZDQjQxRTU2QzFCOTAwMEQ5RTVGIC8qIEpTRE9NTWFwTGlrZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0RPTU1hcExpa2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTI0MjI2LDYgKzI0MjM1LDcgQEAKIAkJCQkwRjI2QTdBQTIwNTRFQzVBMDA5MEExNDEg
LyogSFRNTFVua25vd25FbGVtZW50LmNwcCAqLywKIAkJCQlBRDQ5OTE0MTE4RjA4MTUxMDBCRjAw
OTIgLyogSFRNTFVua25vd25FbGVtZW50LmggKi8sCiAJCQkJQUQ0OTkxNDIxOEYwODE1MTAwQkYw
MDkyIC8qIEhUTUxVbmtub3duRWxlbWVudC5pZGwgKi8sCisJCQkJNDFERUVGQjEyNzE5QjJCRTAw
Q0I4RDc0IC8qIEhUTUxWaWRlb0VsZW1lbnQrUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjay5pZGwg
Ki8sCiAJCQkJRTQ0NjEzOTgwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxWaWRlb0VsZW1lbnQuY3Bw
ICovLAogCQkJCUU0NDYxMzk5MENENjMzMTAwMEZBREE3NSAvKiBIVE1MVmlkZW9FbGVtZW50Lmgg
Ki8sCiAJCQkJRTQ0NjEzOUEwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxWaWRlb0VsZW1lbnQuaWRs
ICovLApAQCAtMjQzNDYsNiArMjQzNTYsOSBAQAogCQkJCUY1QTE1NDI2MTI3OTUzNEQwMEQwQjBD
MCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oICovLAogCQkJCTE1Qzc3MDhBMTAwRDNDNkEwMDVCQTI2
NyAvKiBWYWxpZGl0eVN0YXRlLmggKi8sCiAJCQkJMTVDNzcwODkxMDBEM0M2QTAwNUJBMjY3IC8q
IFZhbGlkaXR5U3RhdGUuaWRsICovLAorCQkJCTQxREVFRkFGMjcxOUIyODkwMENCOEQ3NCAvKiBW
aWRlb0ZyYW1lTWV0YWRhdGEuaWRsICovLAorCQkJCTQxREVFRkFDMjcxOUIyODgwMENCOEQ3NCAv
KiBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmggKi8sCisJCQkJNDFERUVGQUUyNzE5QjI4OTAw
Q0I4RDc0IC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsICovLAogCQkJCUU0NDYxM0I0
MENENjM0NEUwMEZBREE3NSAvKiBWb2lkQ2FsbGJhY2suaCAqLywKIAkJCQlFNDQ2MTNBMDBDRDYz
MzEwMDBGQURBNzUgLyogVm9pZENhbGxiYWNrLmlkbCAqLywKIAkJCQkyRDE5MzIxNzFEQTY0RTE5
MDBBNTRBMDggLyogV2ViS2l0TWVkaWFLZXlFcnJvci5oICovLApAQCAtMjg0ODAsNiArMjg0OTMs
NyBAQAogCQkJCUEzQUY5RDgyMjAzMjUzMjQwMDZDQUQwNiAvKiBVc2VyQWdlbnQuaCAqLywKIAkJ
CQk3MUM5MTYwNzFEMTQ4M0EzMDBBQ0E0N0QgLyogVXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
bi5oICovLAogCQkJCTgzQzQ1QjhEMURDMkI2N0MwMDg4NzFCQSAvKiBWYWxpZGF0aW9uQnViYmxl
LmggKi8sCisJCQkJNDFERUVGQjQyNzE5QkExOTAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVNZXRhZGF0
YS5oICovLAogCQkJCTUxNUY3OTUxMUNGQ0EzQzcwMENDRUQ5MyAvKiBXZWJDb3JlQ3Jvc3NUaHJl
YWRDb3BpZXIuY3BwICovLAogCQkJCTUxNUY3OTUyMUNGQ0EzQzcwMENDRUQ5MyAvKiBXZWJDb3Jl
Q3Jvc3NUaHJlYWRDb3BpZXIuaCAqLywKIAkJCQk4MzlBMkYyQjFFMjA0QTZEMDAzOTA1N0UgLyog
V2ViR0xTdGF0ZVRyYWNrZXIuY3BwICovLApAQCAtMzE2MTIsNiArMzE2MjYsOCBAQAogCQkJaXNh
ID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OwogCQkJZmlsZXMgPSAoCisJCQkJNDE4RkNDMDYyNzE5NkFGNjAwRjk2RUNBIC8qIChudWxsKSBp
biBIZWFkZXJzICovLAorCQkJCTQxOEZDQzAxMjcxOTY4MUEwMEY5NkVDQSAvKiAobnVsbCkgaW4g
SGVhZGVycyAqLywKIAkJCQk3Q0QwRTJCODFGODBBNDgyMDAxNkE0Q0UgLyogQWJvcnRDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0QwRTJCRjFGODBBNTZFMDAxNkE0Q0UgLyogQWJv
cnRTaWduYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2Qjk1MTk1MjA3RDYzMzQwMEE3RDJERCAv
KiBBYnN0cmFjdERPTVdpbmRvdy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNjAyNiw2ICszNjA0Miw4
IEBACiAJCQkJREY0RTM4RTAyNTI3OTU5NTAwMkE3NDgxIC8qIFZlcnNpb25DaGVja3MuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDQTI1NzE1MTI5M0MwMTAwMDdBMjYzRCAvKiBWZXJ0aWNhbFBvc2l0
aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEM0VFRjNCMjU3OTlGQTEwMDY1NjNCQiAv
KiBWaWRlb0NvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxREVFRkI2MjcxOUJB
MUEwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
REVFRkIwMjcxOUIyOTAwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2Ny
ZWVuQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTNGQkM0QUY0MTg5ODgxNTYw
MDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTJCMEQ0QzIxQzU3RkY5MTAwNzdDRTUzIC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZU1hYy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA3MjQyYmMy
M2QyNzVhZGRhZGY1MGQ5YzYyOTYzN2E3MWU5NjEyNDAyLi41MjUwNjI5ZjJjYzZhNGFhZGQ2NjEy
ZWI1ZDI2NWE4YjFlNDhkZGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTExNyw2ICsx
MTcsNyBAQAogI2luY2x1ZGUgIkhUTUxTdHlsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGl0
bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFVua25vd25FbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTFZpZGVvRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUVFBIZWFkZXJOYW1lcy5oIgogI2luY2x1
ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiSGFzaENoYW5nZUV2ZW50LmgiCkBAIC02NzM5
LDYgKzY3NDAsMzIgQEAgdm9pZCBEb2N1bWVudDo6c2VydmljZVJlcXVlc3RBbmltYXRpb25GcmFt
ZUNhbGxiYWNrcygpCiAgICAgICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLT5zZXJ2
aWNlUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tzKGRvbVdpbmRvdygpLT5mcm96ZW5Ob3dU
aW1lc3RhbXAoKSk7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OnNlcnZpY2VSZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrcygpCit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIGlmICghZG9tV2luZG93KCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGJvb2wgaXNTZXJ2aWNpbmdSZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrcyA9IGZhbHNlOworICAgIGZvckVhY2hNZWRpYUVsZW1lbnQoW25vdyA9IGRvbVdp
bmRvdygpLT5mcm96ZW5Ob3dUaW1lc3RhbXAoKSwgJmlzU2VydmljaW5nUmVxdWVzdFZpZGVvRnJh
bWVDYWxsYmFja3NdKGF1dG8mIGVsZW1lbnQpIHsKKyAgICAgICAgaWYgKCFpczxIVE1MVmlkZW9F
bGVtZW50PihlbGVtZW50KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvJiB2
aWRlb0VsZW1lbnQgPSBkb3duY2FzdDxIVE1MVmlkZW9FbGVtZW50PihlbGVtZW50KTsKKyAgICAg
ICAgaWYgKHZpZGVvRWxlbWVudC5zaG91bGRTZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
a3MoKSkgeworICAgICAgICAgICAgaXNTZXJ2aWNpbmdSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNr
cyA9IHRydWU7CisgICAgICAgICAgICB2aWRlb0VsZW1lbnQuc2VydmljZVJlcXVlc3RWaWRlb0Zy
YW1lQ2FsbGJhY2tzKG5vdyk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIGlmICghaXNTZXJ2
aWNpbmdSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrcykKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKGF1dG8qIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCisgICAgICAgIHBhZ2UtPnNjaGVkdWxlUmVu
ZGVyaW5nVXBkYXRlKFJlbmRlcmluZ1VwZGF0ZVN0ZXA6OlZpZGVvRnJhbWVDYWxsYmFja3MpOwor
I2VuZGlmCit9CisKIHZvaWQgRG9jdW1lbnQ6OndpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9y
bURpc3BsYXlJRCBkaXNwbGF5SUQpCiB7CiAgICAgaWYgKFJlbmRlclZpZXcqIHZpZXcgPSByZW5k
ZXJWaWV3KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNTQ1NzY0MzVjMjM2NWI3ODAyMDlm
ZWUxOGExMDJmMjZiOWUwMWYxOS4uOWMzOTNmYjVlZTY5OGQ5MzI1MjFhZjlmMDA4NmZhZTI0MWE5
NTM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTExMTQsNiArMTExNCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlc3VtZVNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlckNhbGxiYWNrcygpOwog
CiAgICAgdm9pZCBzZXJ2aWNlUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2tzKCk7CisgICAg
dm9pZCBzZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja3MoKTsKIAogICAgIHZvaWQgd2lu
ZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlEKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAzYmNjNjg5ZGYzYjdhYzBhZWFiMTA4NWIyN2QxM2Zj
ZjlkZDQ0MmI1Li4xYzFiMmRjMTVhYTBiNjkzMjE3OGEyOTMwY2E4ZjJiODk0MGY1MzQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMzksNiArMzksNyBAQAogI2lu
Y2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgogI2luY2x1
ZGUgIk1lZGlhVW5pcXVlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlJlZHVjZWRSZXNvbHV0aW9u
U2Vjb25kcy5oIgogI2luY2x1ZGUgIlRleHRUcmFja0NsaWVudC5oIgogI2luY2x1ZGUgIlZpZGVv
VHJhY2tDbGllbnQuaCIKICNpbmNsdWRlICJWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQrUmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQr
UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTkzMjQ0OThlZGNmZTE0
YjU3NjcyMGM4ZjAyNTgyMDg1YjQ1ZDQwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrLmlkbApA
QCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKK1sKKyAgICBDb25kaXRpb25hbD1WSURFTywKKyAgICBFbmFibGVkQnlTZXR0aW5nPVJl
cXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkCitdIHBhcnRpYWwgaW50ZXJmYWNlIEhUTUxW
aWRlb0VsZW1lbnQgeworICAgIHVuc2lnbmVkIGxvbmcgcmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
ayhWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrIGNhbGxiYWNrKTsKKyAgICB1bmRlZmluZWQgY2Fu
Y2VsVmlkZW9GcmFtZUNhbGxiYWNrKHVuc2lnbmVkIGxvbmcgaGFuZGxlKTsKK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAppbmRleCAwNGMwMmI4Yzg5YmI0YzBlYmRk
Y2NhNDUwMjhiYmZkMDBkYTc5YjZmLi45ZWM2MTZlNmRjZTQ4ZmZjMjM2ZDk4OWEyNzg2YTQwYzk2
OGFhM2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKQEAgLTU3
Nyw2ICs1NzcsNTkgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpleGl0VG9GdWxsc2NyZWVuTW9k
ZVdpdGhvdXRBbmltYXRpb25JZlBvc3NpYmxlKEhUTUxNZWRpYUUKIH0KICNlbmRpZgogCit1bnNp
Z25lZCBIVE1MVmlkZW9FbGVtZW50OjpyZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKFJlZjxWaWRl
b0ZyYW1lUmVxdWVzdENhbGxiYWNrPiYmIGNhbGxiYWNrKQoreworICAgIGlmIChtX25leHRWaWRl
b0ZyYW1lUmVxdWVzdEluZGV4ID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgo
KSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBhdXRvIGlkZW50aWZpZXIgPSArK21fbmV4dFZp
ZGVvRnJhbWVSZXF1ZXN0SW5kZXg7CisgICAgbV92aWRlb0ZyYW1lUmVxdWVzdHMuYXBwZW5kKG1h
a2VVbmlxdWVSZWY8VmlkZW9GcmFtZVJlcXVlc3Q+KGlkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJh
Y2spKSk7CisKKyAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpKQorICAgICAg
ICBwYWdlLT5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZShSZW5kZXJpbmdVcGRhdGVTdGVwOjpWaWRl
b0ZyYW1lQ2FsbGJhY2tzKTsKKworICAgIHJldHVybiBpZGVudGlmaWVyOworfQorCit2b2lkIEhU
TUxWaWRlb0VsZW1lbnQ6OmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayh1bnNpZ25lZCBpZGVudGlm
aWVyKQoreworICAgIGF1dG8gaW5kZXggPSBtX3ZpZGVvRnJhbWVSZXF1ZXN0cy5maW5kTWF0Y2hp
bmcoW2lkZW50aWZpZXJdKGF1dG8mIHJlcXVlc3QpIHsgcmV0dXJuIHJlcXVlc3QtPmlkZW50aWZp
ZXIgPT0gaWRlbnRpZmllcjsgfSk7CisgICAgaWYgKGluZGV4ID09IG5vdEZvdW5kKQorICAgICAg
ICByZXR1cm47CisgICAgaWYgKG1faXNSdW5uaW5nVmlkZW9GcmFtZVJlcXVlc3RzKSB7CisgICAg
ICAgIG1fdmlkZW9GcmFtZVJlcXVlc3RzW2luZGV4XS0+Y2FuY2VsbGVkID0gdHJ1ZTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBtX3ZpZGVvRnJhbWVSZXF1ZXN0cy5yZW1vdmUoaW5kZXgp
OworfQorCit2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNlcnZpY2VSZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrcyhSZWR1Y2VkUmVzb2x1dGlvblNlY29uZHMgbm93KQoreworICAgIGlmICghcGxheWVy
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gdmlkZW9GcmFtZU1ldGFkYXRhID0gcGxh
eWVyKCktPnZpZGVvRnJhbWVNZXRhZGF0YSgpOworICAgIGlmICghdmlkZW9GcmFtZU1ldGFkYXRh
KQorICAgICAgICByZXR1cm47CisKKyAgICBSZWYgcHJvdGVjdGVkVGhpcyB7ICp0aGlzIH07CisK
KyAgICAvLyBXZSBzdG9yZSB0aGUgc2l6ZSBiZWZvcmUgY2FsbGluZyBjYWxsYmFja3MgYXMgd2Ug
ZG8gbm90IHdhbnQgdG8gY2FsbCBuZXdseSBhZGRlZCBjYWxsYmFja3MuCisgICAgYXV0byBjYWxs
YmFja0NvdW50ID0gbV92aWRlb0ZyYW1lUmVxdWVzdHMuc2l6ZSgpOworCisgICAgbV9pc1J1bm5p
bmdWaWRlb0ZyYW1lUmVxdWVzdHMgPSB0cnVlOworICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsg
aW5kZXggPCBjYWxsYmFja0NvdW50OyArK2luZGV4KSB7CisgICAgICAgIGF1dG8mIHJlcXVlc3Qg
PSBtX3ZpZGVvRnJhbWVSZXF1ZXN0c1tpbmRleF07CisgICAgICAgIGlmICghcmVxdWVzdC0+Y2Fu
Y2VsbGVkKSB7CisgICAgICAgICAgICByZXF1ZXN0LT5jYWxsYmFjay0+aGFuZGxlRXZlbnQobm93
LnZhbHVlKCksICp2aWRlb0ZyYW1lTWV0YWRhdGEpOworICAgICAgICAgICAgcmVxdWVzdC0+Y2Fu
Y2VsbGVkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBtX2lzUnVubmluZ1ZpZGVvRnJh
bWVSZXF1ZXN0cyA9IGZhbHNlOworCisgICAgbV92aWRlb0ZyYW1lUmVxdWVzdHMucmVtb3ZlQWxs
TWF0Y2hpbmcoW10oYXV0byYgY2FsbGJhY2spIHsgcmV0dXJuIGNhbGxiYWNrLT5jYW5jZWxsZWQ7
IH0pOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVmlkZW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQu
aAppbmRleCAxMDk5MWYwNWYxNDc0ZWVlNWViMDFlZTc4MzIzMzkxMjBmNmUzNzJmLi40MmQ0ZjQy
YzljZDNiMTNmODgyNzgwNzZmODY5MWVkNWM4NGY4ZGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxWaWRlb0VsZW1lbnQuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiSFRNTE1lZGlh
RWxlbWVudC5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisjaW5jbHVkZSAiVmlkZW9G
cmFtZVJlcXVlc3RDYWxsYmFjay5oIgogI2luY2x1ZGUgPG1lbW9yeT4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMzgsNiArMzksNyBAQCBjbGFzcyBIVE1MSW1hZ2VMb2FkZXI7CiBjbGFzcyBJ
bWFnZUJ1ZmZlcjsKIGNsYXNzIFJlbmRlclZpZGVvOwogY2xhc3MgUGljdHVyZUluUGljdHVyZU9i
c2VydmVyOworY2xhc3MgVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjazsKIAogZW51bSBjbGFzcyBQ
aXhlbEZvcm1hdCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFJlbmRlcmluZ01vZGUgOiBib29sOwpA
QCAtMTA5LDYgKzExMSwxMiBAQCBwdWJsaWM6CiAKICAgICBSZW5kZXJWaWRlbyogcmVuZGVyZXIo
KSBjb25zdDsKIAorICAgIGJvb2wgc2hvdWxkU2VydmljZVJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2tzKCkgY29uc3QgeyByZXR1cm4gIW1fdmlkZW9GcmFtZVJlcXVlc3RzLmlzRW1wdHkoKTsgfQor
ICAgIHZvaWQgc2VydmljZVJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tzKFJlZHVjZWRSZXNvbHV0
aW9uU2Vjb25kcyk7CisKKyAgICB1bnNpZ25lZCByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKFJl
ZjxWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrPiYmKTsKKyAgICB2b2lkIGNhbmNlbFZpZGVvRnJh
bWVDYWxsYmFjayh1bnNpZ25lZCk7CisKIHByaXZhdGU6CiAgICAgSFRNTFZpZGVvRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAK
QEAgLTE0Nyw2ICsxNTUsMjIgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNU
VVJFX0FQSSkKICAgICBQaWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIqIG1fcGljdHVyZUluUGljdHVy
ZU9ic2VydmVyIHsgbnVsbHB0ciB9OwogI2VuZGlmCisKKyAgICBzdHJ1Y3QgVmlkZW9GcmFtZVJl
cXVlc3QgeworICAgICAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CisgICAgICAg
IFZpZGVvRnJhbWVSZXF1ZXN0KHVuc2lnbmVkIGlkZW50aWZpZXIsIFJlZjxWaWRlb0ZyYW1lUmVx
dWVzdENhbGxiYWNrPiYmIGNhbGxiYWNrKQorICAgICAgICAgICAgOiBpZGVudGlmaWVyKGlkZW50
aWZpZXIpCisgICAgICAgICAgICAsIGNhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQorICAgICAg
ICB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHVuc2lnbmVkIGlkZW50aWZpZXIgeyAw
IH07CisgICAgICAgIFJlZjxWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrPiBjYWxsYmFjazsKKyAg
ICAgICAgYm9vbCBjYW5jZWxsZWQgeyBmYWxzZSB9OworICAgIH07CisgICAgVmVjdG9yPFVuaXF1
ZVJlZjxWaWRlb0ZyYW1lUmVxdWVzdD4+IG1fdmlkZW9GcmFtZVJlcXVlc3RzOworICAgIHVuc2ln
bmVkIG1fbmV4dFZpZGVvRnJhbWVSZXF1ZXN0SW5kZXggeyAwIH07CisgICAgYm9vbCBtX2lzUnVu
bmluZ1ZpZGVvRnJhbWVSZXF1ZXN0cyB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVNZXRhZGF0
YS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVNZXRhZGF0YS5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmNhOTVlOGYwM2QzMDU3YWMyZTgwYzRhNWQyZmEyMzA1NmFmNzhiZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmlkZW9GcmFtZU1ldGFkYXRhLmlkbApAQCAt
MCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKK3R5cGVkZWYgZG91YmxlIERPTUhpZ2hSZXNUaW1lU3RhbXA7CisKK1sKKyAgICBDb25kaXRp
b25hbD1WSURFTywKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10gZGljdGlvbmFyeSBWaWRl
b0ZyYW1lTWV0YWRhdGEgeworICAgIC8vIEZJWE1FOiBleHBvc2UgcHJlc2VudGF0aW9uVGltZSBh
bmQgZXhwZWN0ZWREaXNwbGF5VGltZS4KKyAgICAvLyByZXF1aXJlZCBET01IaWdoUmVzVGltZVN0
YW1wIHByZXNlbnRhdGlvblRpbWU7CisgICAgLy8gcmVxdWlyZWQgRE9NSGlnaFJlc1RpbWVTdGFt
cCBleHBlY3RlZERpc3BsYXlUaW1lOworCisgICAgcmVxdWlyZWQgdW5zaWduZWQgbG9uZyB3aWR0
aDsKKyAgICByZXF1aXJlZCB1bnNpZ25lZCBsb25nIGhlaWdodDsKKyAgICByZXF1aXJlZCBkb3Vi
bGUgbWVkaWFUaW1lOworCisgICAgcmVxdWlyZWQgdW5zaWduZWQgbG9uZyBwcmVzZW50ZWRGcmFt
ZXM7CisgICAgZG91YmxlIHByb2Nlc3NpbmdEdXJhdGlvbjsKKworICAgIERPTUhpZ2hSZXNUaW1l
U3RhbXAgY2FwdHVyZVRpbWU7CisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCByZWNlaXZlVGltZTsK
KyAgICB1bnNpZ25lZCBsb25nIHJ0cFRpbWVzdGFtcDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0ZmFiMmNkNWQw
NmNhMzA3MzFhMWE2OWI0OTdjMjQ1YWJiMGE3MjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaApAQCAtMCwwICsxLDQ4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbmNs
dWRlICJBY3RpdmVET01DYWxsYmFjay5oIgorI2luY2x1ZGUgIkNhbGxiYWNrUmVzdWx0LmgiCisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBWaWRlb0ZyYW1lTWV0YWRhdGE7CisKK2NsYXNz
IFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxWaWRlb0ZyYW1l
UmVxdWVzdENhbGxiYWNrPiwgcHVibGljIEFjdGl2ZURPTUNhbGxiYWNrIHsKK3B1YmxpYzoKKyAg
ICB1c2luZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZlRE9NQ2FsbGJhY2s7CisKKyAgICB2aXJ0
dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KGRvdWJsZSwgY29uc3QgVmlkZW9G
cmFtZU1ldGFkYXRhJikgPSAwOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNr
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2RkNmZmNmMxZjhhYjQ0NWRiOTBlZmY4OTZlNDIwZDcwN2U2ZTkwMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxs
YmFjay5pZGwKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCit0eXBlZGVmIGRvdWJsZSBET01IaWdoUmVzVGltZVN0YW1wOworCitb
CisgICAgQ29uZGl0aW9uYWw9VklERU8sCitdIGNhbGxiYWNrIFZpZGVvRnJhbWVSZXF1ZXN0Q2Fs
bGJhY2sgPSB1bmRlZmluZWQoRE9NSGlnaFJlc1RpbWVTdGFtcCBub3csIFZpZGVvRnJhbWVNZXRh
ZGF0YSBtZXRhZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAwMDYxM2ZhNjg3NmE2YmU2YTky
NjEzMzIxNjFlNDk2ODIyYWY0MTgyLi5kYTFhOWM4MjM0MzI5ZDM3YjJiN2IwYmJiNjQzYjAxMDI5
OTRjNTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE1ODUsNiArMTU4NSwxMCBAQCB2b2lkIFBh
Z2U6OnVwZGF0ZVJlbmRlcmluZygpCiAgICAgLy8gRklYTUU6IFJ1biB0aGUgZnVsbHNjcmVlbiBz
dGVwcy4KICAgICBtX3JlbmRlcmluZ1VwZGF0ZVJlbWFpbmluZ1N0ZXBzLmxhc3QoKS5yZW1vdmUo
UmVuZGVyaW5nVXBkYXRlU3RlcDo6RnVsbHNjcmVlbik7CiAKKyAgICBydW5Qcm9jZXNzaW5nU3Rl
cChSZW5kZXJpbmdVcGRhdGVTdGVwOjpWaWRlb0ZyYW1lQ2FsbGJhY2tzLCBbXSAoRG9jdW1lbnQm
IGRvY3VtZW50KSB7CisgICAgICAgIGRvY3VtZW50LnNlcnZpY2VSZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrcygpOworICAgIH0pOworCiAgICAgcnVuUHJvY2Vzc2luZ1N0ZXAoUmVuZGVyaW5nVXBk
YXRlU3RlcDo6QW5pbWF0aW9uRnJhbWVDYWxsYmFja3MsIFtdIChEb2N1bWVudCYgZG9jdW1lbnQp
IHsKICAgICAgICAgZG9jdW1lbnQuc2VydmljZVJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNr
cygpOwogICAgIH0pOwpAQCAtMzYyNiw2ICszNjMwLDcgQEAgV1RGOjpUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFdURjo6VGV4dFN0cmVhbSYgdHMsIFJlbmRlcmluZ1VwZGF0ZVN0ZXAgc3RlcCkKICNp
ZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogICAgIGNhc2UgUmVuZGVyaW5nVXBkYXRlU3RlcDo6
U2Nyb2xsaW5nVHJlZVVwZGF0ZTogdHMgPDwgIlNjcm9sbGluZ1RyZWVVcGRhdGUiOyBicmVhazsK
ICNlbmRpZgorICAgIGNhc2UgUmVuZGVyaW5nVXBkYXRlU3RlcDo6VmlkZW9GcmFtZUNhbGxiYWNr
czogdHMgPDwgIlZpZGVvRnJhbWVDYWxsYmFja3MiOyBicmVhazsKICAgICB9CiAgICAgcmV0dXJu
IHRzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBlYzc3MTFmZTNiZGQ3OWY3ZWFiMDMzMGYxYmUzYmUw
ZGNhYzA5ZmU3Li42MjFkMmVhMjQyYzdkOWZlYWQwOTk1MmNkOTgwMjY5NTQwYTBiZTljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaApAQCAtMjE1LDYgKzIxNSw3IEBAIGVudW0gY2xhc3MgUmVuZGVyaW5nVXBkYXRl
U3RlcCA6IHVpbnQxNl90IHsKICAgICBTY3JvbGxpbmdUcmVlVXBkYXRlICAgICAgICAgICAgID0g
MSA8PCAxMywKICNlbmRpZgogICAgIEZsdXNoQXV0b2ZvY3VzQ2FuZGlkYXRlcyAgICAgICAgPSAx
IDw8IDE0LAorICAgIFZpZGVvRnJhbWVDYWxsYmFja3MgICAgICAgICAgICAgPSAxIDw8IDE1LAog
fTsKIAogY29uc3RleHByIE9wdGlvblNldDxSZW5kZXJpbmdVcGRhdGVTdGVwPiB1cGRhdGVSZW5k
ZXJpbmdTdGVwcyA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVv
RnJhbWVNZXRhZGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZU1ldGFk
YXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGZkOWE0NzAwMjQ4ZDRkMjc4ZGNlMjc0OTc4MzYwYTU3YmFmNTll
YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWVN
ZXRhZGF0YS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShWSURFTykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgVmlkZW9G
cmFtZU1ldGFkYXRhIHsKKyAgICBkb3VibGUgcHJlc2VudGF0aW9uVGltZSB7IDAgfTsKKyAgICBk
b3VibGUgZXhwZWN0ZWREaXNwbGF5VGltZSB7IDAgfTsKKworICAgIHVuc2lnbmVkIHdpZHRoIHsg
MCB9OworICAgIHVuc2lnbmVkIGhlaWdodCB7IDAgfTsKKyAgICBkb3VibGUgbWVkaWFUaW1lIHsg
MCB9OworCisgICAgdW5zaWduZWQgcHJlc2VudGVkRnJhbWVzIHsgMCB9OworICAgIHN0ZDo6b3B0
aW9uYWw8ZG91YmxlPiBwcm9jZXNzaW5nRHVyYXRpb247CisKKyAgICBzdGQ6Om9wdGlvbmFsPGRv
dWJsZT4gY2FwdHVyZVRpbWU7CisgICAgc3RkOjpvcHRpb25hbDxkb3VibGU+IHJlY2VpdmVUaW1l
OworICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IHJ0cFRpbWVzdGFtcDsKK307CisKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA4NGE3YTA3MjczMWMxMjc4OGFjZWNlYmMxMmVh
Njg3Y2ViZGIwYzJmLi4wOWI3NTlhZjMyODQwN2EyYzY2NDNlNWJmODNiMmFkMzgxOGI5NTk2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
CkBAIC0xNzEwLDYgKzE3MTAsMTEgQEAgTWVkaWFQbGF5ZXJJZGVudGlmaWVyIE1lZGlhUGxheWVy
OjppZGVudGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gbV9wcml2YXRlLT5pZGVudGlmaWVyKCk7
CiB9CiAKK3N0ZDo6b3B0aW9uYWw8VmlkZW9GcmFtZU1ldGFkYXRhPiBNZWRpYVBsYXllcjo6dmlk
ZW9GcmFtZU1ldGFkYXRhKCkKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT52aWRlb0ZyYW1lTWV0
YWRhdGEoKTsKK30KKwogU3RyaW5nIE1lZGlhUGxheWVyOjplbGVtZW50SWQoKSBjb25zdAogewog
ICAgIHJldHVybiBjbGllbnQoKS5tZWRpYVBsYXllckVsZW1lbnRJZCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggOTcxMjY0OGNiYWFi
ZTc1OTllNjdkZjY1YWYyYzM1NmJmMjQxNjM1Zi4uMDQ4OGRmNTcxYjc5NmNlMTM0YmZkZjExOTQw
M2E4ZjE1YzBkMjU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5o
IgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCisj
aW5jbHVkZSAiVmlkZW9GcmFtZU1ldGFkYXRhLmgiCiAjaW5jbHVkZSAiVmlkZW9QbGF5YmFja1F1
YWxpdHlNZXRyaWNzLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgpAQCAtNjc4LDYgKzY3OSw4IEBAIHB1Ymxp
YzoKICAgICBNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0OwogICAgIGJv
b2wgaGFzTWVkaWFFbmdpbmUoKSBjb25zdDsKIAorICAgIHN0ZDo6b3B0aW9uYWw8VmlkZW9GcmFt
ZU1ldGFkYXRhPiB2aWRlb0ZyYW1lTWV0YWRhdGEoKTsKKwogcHJpdmF0ZToKICAgICBNZWRpYVBs
YXllcihNZWRpYVBsYXllckNsaWVudCYpOwogICAgIE1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xp
ZW50JiwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
aW5kZXggNmFiNDdiMTUzOGZmYzJmMjk0NGM4NGE5ZjQ0YzVjOGNiYjYwMmNmNy4uODlhNmU4Y2Vm
ZTk5MmJhYmRjY2Y5NGQwNTRmZDAxZTg1YjBkMWU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTMyMCw2ICsz
MjAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzUGF1c2VBdEhvc3RUaW1l
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgcGxheUF0SG9zdFRp
bWUoY29uc3QgTW9ub3RvbmljVGltZSYpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIHBhdXNlQXRIb3N0VGltZShjb25zdCBNb25vdG9uaWNUaW1lJikgeyByZXR1cm4gZmFsc2U7
IH0KKworICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDxWaWRlb0ZyYW1lTWV0YWRhdGE+IHZpZGVv
RnJhbWVNZXRhZGF0YSgpIHsgcmV0dXJuIHsgfTsgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMuaAppbmRleCA2M2ZkOWVhOTNkNDdlMjQ3MjA2NzFhNGI2YzVmNWRkZGY5ZGNhODM1Li4z
OWRkZDAzZjVmNjZhZjdjMDE3MWQzMDA5MWQwZjI3ZjA3NzYxZTZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMuaApAQCAtMTU5LDYgKzE1OSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldEJ1
ZmZlcmluZ1BvbGljeShNZWRpYVBsYXllcjo6QnVmZmVyaW5nUG9saWN5KSBvdmVycmlkZTsKICAg
ICB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpIGZpbmFsOworICAgIHN0ZDo6b3B0aW9u
YWw8VmlkZW9GcmFtZU1ldGFkYXRhPiB2aWRlb0ZyYW1lTWV0YWRhdGEoKSBmaW5hbDsKIAogICAg
IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIGN1cnJlbnRSZWFkeVN0YXRlKCk7CiAgICAgdm9pZCB1
cGRhdGVSZWFkeVN0YXRlKCk7CkBAIC0yNzgsNiArMjc5LDkgQEAgcHJpdmF0ZToKICAgICBib29s
IG1faXNWaXNpYmxlSW5WaWV3UG9ydCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhdmVTZWVuTWV0
YWRhdGEgeyBmYWxzZSB9OwogICAgIGJvb2wgbV93YWl0aW5nRm9yRmlyc3RJbWFnZSB7IGZhbHNl
IH07CisKKyAgICB1aW50NjRfdCBtX3NhbXBsZUNvdW50IHsgMCB9OworICAgIHVpbnQ2NF90IG1f
bGFzdFZpZGVvRnJhbWVNZXRhZGF0YVNhbXBsZUNvdW50IHsgMCB9OwogfTsKICAgICAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRleCBkZDNhZjY0MTc3YTkzMzg5MmNiNzdmYTBjNDNi
ZDI2NTE1NmQ0MTQxLi5lOWQ0ZDFjZWJkMmExNGFmMjQ1YTIyZTc2MTJhYTNkYjhlNjM5ZTc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCkBAIC0zMTYsNiArMzE2LDggQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnByb2Nlc3NOZXdWaWRlb1NhbXBsZShN
ZWRpYVNhbXBsZSYgc2EKICAgICAgICAgICAgIHVwZGF0ZVJlYWR5U3RhdGUoKTsKICAgICB9CiAK
KyAgICArK21fc2FtcGxlQ291bnQ7CisKICAgICBpZiAobV9kaXNwbGF5TW9kZSAhPSBMaXZlUHJl
dmlldyAmJiAhbV93YWl0aW5nRm9yRmlyc3RJbWFnZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0x
MDg4LDYgKzEwOTAsMjIgQEAgV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjpsb2dDaGFubmVsKCkgY29uc3QKICAgICByZXR1cm4gTG9nTWVkaWE7CiB9
CiAKK3N0ZDo6b3B0aW9uYWw8VmlkZW9GcmFtZU1ldGFkYXRhPiBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnZpZGVvRnJhbWVNZXRhZGF0YSgpCit7CisgICAgaWYgKG1fc2Ft
cGxlQ291bnQgPT0gbV9sYXN0VmlkZW9GcmFtZU1ldGFkYXRhU2FtcGxlQ291bnQpCisgICAgICAg
IHJldHVybiB7IH07CisgICAgbV9sYXN0VmlkZW9GcmFtZU1ldGFkYXRhU2FtcGxlQ291bnQgPSBt
X3NhbXBsZUNvdW50OworCisgICAgVmlkZW9GcmFtZU1ldGFkYXRhIG1ldGFkYXRhOworICAgIG1l
dGFkYXRhLndpZHRoID0gbV9pbnRyaW5zaWNTaXplLndpZHRoKCk7CisgICAgbWV0YWRhdGEuaGVp
Z2h0ID0gbV9pbnRyaW5zaWNTaXplLmhlaWdodCgpOworICAgIG1ldGFkYXRhLnByZXNlbnRlZEZy
YW1lcyA9IG1fc2FtcGxlQ291bnQ7CisKKyAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgZ29vZCB0
byBleHBvc2UgbW9yZSB2aWRlbyBmcmFtZSBtZXRhZGF0YS4KKworICAgIHJldHVybiBtZXRhZGF0
YTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggMjNkYWVhMDViZGI4NjZmODUxMTJjODBmNDBiM2FiNjYw
NDM3ODc4Zi4uYmVkODMxNmYzNzU4ZjkzMzMwMTRjMmZiZTJmMmQyNWMxODk1OWJjYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTIy
MjYsMyArMjIyNiwxMiBAQCBib29sIFdLUHJlZmVyZW5jZXNHZXRYU1NBdWRpdG9yRW5hYmxlZChX
S1ByZWZlcmVuY2VzUmVmKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBXS1ByZWZlcmVu
Y2VzU2V0UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1Jl
ZiktPnNldFJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkKGVuYWJsZWQpOworfQorCiti
b29sIFdLUHJlZmVyZW5jZXNHZXRSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZChXS1By
ZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocHJlZmVy
ZW5jZXNSZWYpLT5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZCgpOworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZi5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZi5oCmluZGV4IDJm
MWRjMTU1OGRlYzE0NjgxYWQ4ZDBjMmZlYzZjMTBiMTJjMDAwOGIuLjI2YjAwMmQ0OWY2MTUyYWFi
YzJlMmIwNDhiYTM4NTlkMGI2NGNjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWYuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmgKQEAgLTM1NSw2ICszNTUsMTAgQEAgV0tfRVhQT1JU
IHZvaWQgV0tQcmVmZXJlbmNlc1NldFJlbW90ZVBsYXliYWNrRW5hYmxlZChXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2UKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRTaG91bGRVc2VT
ZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYp
OwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFNob3VsZFVzZVNlcnZpY2VXb3JrZXJT
aG9ydFRpbWVvdXQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVk
KTsKIAorLy8gRGVmYXVsdHMgdG8gZmFsc2UuCitXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2Vz
R2V0UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZik7CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0UmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFja0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9v
bCBlbmFibGVkKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4MWZhMjMxNWMyNzk2MGVm
YmJhZTJhYWRhNDUxZmE0M2Y3MGFhYTg5Li4yMzdjOGM2OGNkZWMwNTZiZTU0ZjFjZGRiODM1ZDBl
ZGI5NTVkOTA1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMTAtMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrIEFQSSBhbmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwMworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERpc2FibGUgcnZm
YyBvbiB0ZXN0cyBieSBkZWZhdWx0IHVudGlsIHdlIGltcGxlbWVudCBydmZjIGZvciB1c3VhbCB2
aWRlbyBzdHJlYW1pbmcuCisgICAgICAgIFdlYlJUQyB0ZXN0cyBlbmFibGUgcnZmYyB0aGVtc2Vs
dmVzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgor
ICAgICAgICAoc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKwogMjAyMS0xMC0x
NCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBUZXN0V2Vi
S2l0QVBJLlByaXZhdGVDbGlja01lYXN1cmVtZW50LkZyYXVkUHJldmVudGlvbiBpcyBhIGNvbnN0
YW50IHRpbWVvdXQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpp
bmRleCBjMWZiNjE1MTlkMTg1YjczOGJmM2Y0MDY4ODZiOTc4YmVjN2M2NGI2Li5mYjY5Nzg5MTBk
Y2QxMzA4ZmE3ZDA4MTE1OGE5MTc1ODNiYWJhNDA1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC04NjYsOCArODY2LDExIEBAIHN0YXRpYyB2b2lkIHNl
dFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMoV2ViUHJlZmVyZW5jZXMgKnByZWZlcmVuY2Vz
LCBjb25zdCBXCiAgICAgICAgIFtwcmVmZXJlbmNlcyBfcmVzZXRGb3JUZXN0aW5nXTsKIAogICAg
ICAgICBpZiAoZW5hYmxlQWxsRXhwZXJpbWVudGFsRmVhdHVyZXMpIHsKLSAgICAgICAgICAgIGZv
ciAoV2ViRmVhdHVyZSAqZmVhdHVyZSBpbiBbV2ViUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZl
YXR1cmVzXSkKLSAgICAgICAgICAgICAgICBbcHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6WUVTIGZv
ckZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgICAgICBmb3IgKFdlYkZlYXR1cmUgKmZlYXR1cmUg
aW4gW1dlYlByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc10pIHsKKyAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogV2UgZGlzYWJsZSBydmZjIGJ5IGRlZmF1bHQuIEVuYWJsZSBpdCB3aGVu
IHRoZSB2aWRlbyBiYWNrZW5kIHN1cHBvcnQgaXMgZ29vZCBlbm91Z2guCisgICAgICAgICAgICAg
ICAgYXV0byBlbmFibGVkID0gW2ZlYXR1cmUubmFtZSBpc0VxdWFsOkAiUmVxdWVzdFZpZGVvRnJh
bWVDYWxsYmFjayJdID8gTk8gOiBZRVM7CisgICAgICAgICAgICAgICAgW3ByZWZlcmVuY2VzIF9z
ZXRFbmFibGVkOmVuYWJsZWQgZm9yRmVhdHVyZTpmZWF0dXJlXTsKKyAgICAgICAgICAgIH0KICAg
ICAgICAgfQogCiAgICAgICAgIGlmIChwZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRMb2NhdGlvbigp
KSB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGZlYjJh
Mzk3ZTQyYTM2OGM0MTc5ZWNiMzFkNmQxOTIwNjNmMTlhMDcuLjNiZGU0OGUxY2U3NWJhN2FhNjA5
NzQ4MThlYjYwZjllMjhjN2M4NWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCkBAIC04OTYsNiArODk2LDkgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQ
cmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW8KICAg
ICAgICAgaWYgKGVuYWJsZUFsbEV4cGVyaW1lbnRhbEZlYXR1cmVzKQogICAgICAgICAgICAgV0tQ
cmVmZXJlbmNlc0VuYWJsZUFsbEV4cGVyaW1lbnRhbEZlYXR1cmVzKHByZWZlcmVuY2VzKTsKIAor
ICAgICAgICAvLyBGSVhNRTogV2UgZGlzYWJsZSBydmZjIGJ5IGRlZmF1bHQuIEVuYWJsZSBpdCB3
aGVuIHRoZSB2aWRlbyBiYWNrZW5kIHN1cHBvcnQgaXMgZ29vZCBlbm91Z2guCisgICAgICAgIFdL
UHJlZmVyZW5jZXNTZXRSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZChwcmVmZXJlbmNl
cywgZmFsc2UpOworCiAgICAgICAgIFdLUHJlZmVyZW5jZXNSZXNldEFsbEludGVybmFsRGVidWdG
ZWF0dXJlcyhwcmVmZXJlbmNlcyk7CiAKICAgICAgICAgV0tQcmVmZXJlbmNlc1NldFByb2Nlc3NT
d2FwT25OYXZpZ2F0aW9uRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5zaG91bGRFbmFibGVQ
cm9jZXNzU3dhcE9uTmF2aWdhdGlvbigpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5ZjQ0YTQ0NTY5MTA4YmFmMzc1M2Zm
YTk2ZDMzYmMxODA1NDJjYTlmLi45Y2VkNzI0NWUzOTZjM2Q3NDllMzcxZWFjNWY5YmY2Y2NiYTI1
OGQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMTAtMTkgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9G
cmFtZUNhbGxiYWNrIEFQSSBhbmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBv
cnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgw
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1y
dmZjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRV
c2VyTWVkaWEtcnZmYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL1Rl
c3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIHdlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZjLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogd2VicnRjL3BlZXJDb25uZWN0aW9uLXJ2ZmMuaHRtbDogQWRkZWQu
CisKIDIwMjEtMTAtMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEd1YXJhbnRlZSBvcmRlciBvZiBXZWJTb2NrZXQgZXZlbnRzIGluIGNhc2Ugb2YgYmVpbmcg
cmVzdW1lZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNjc1ZGE5OTBiM2VjMzU1
ZTMwMmI2NTM5MDk5MDZjZjUyYjJjZTA5YS4uNjg2MThmNmE0Zjc5MTQ5MzU5OWZiMGM0ZjgyN2Q1
ZTM0ZGFkZWFlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMjEtMTAtMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSBhbmQgTWVk
aWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwMworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlv
bnMuanNvbjoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9NRVRBLnlt
bDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvUkVBRE1F
Lm1kOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxo
YXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93LmpzOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZp
ZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZy
YW1lLWNhbGxiYWNrLWRvbS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZG9tLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVl
c3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1
ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmluZy14ci1zZXNzaW9uLmh0dHBzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXBhcmFs
bGVsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVv
LWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJh
Y2stcmVwZWF0aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92
aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
cmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFt
ZS1jYWxsYmFjay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlk
ZW8tcnZmYy93M2MtaW1wb3J0LmxvZzogQWRkZWQuCisKIDIwMjEtMTAtMTkgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEd1YXJhbnRlZSBvcmRlciBvZiBXZWJT
b2NrZXQgZXZlbnRzIGluIGNhc2Ugb2YgYmVpbmcgcmVzdW1lZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggNjI5ZGU4ODc0NmE3ZDdiMjgzZTZhNDI3ZDFkM2MxMTRlOGVhOGFhMS4uMzY1OTUyZDEyNzk5
MjY5NTQ1NWM3OWRiZTA0NmY5OGMzYmExNzIwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMTYs
NiArMjE2LDkgQEAgZmFzdC9oYXJuZXNzL3Vpc2NyaXB0Y29udHJvbGxlciBbIFNraXAgXQogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZyBbIFNraXAg
XQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL2RvY3VtZW50LWxl
dmVsLXRvdWNobW92ZS1ldmVudC1saXN0ZW5lci1wYXNzaXZlLWJ5LWRlZmF1bHQudGVudGF0aXZl
Lmh0bWwgWyBTa2lwIF0KIAorIyBPbmx5IE1hYyBhbmQgaU9TIFdLMiBoYXZlIGFuIGltcGxlbWVu
dGF0aW9uIHJpZ2h0IG5vdy4KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8t
cnZmYyBbIFNraXAgXQorCiAjIFRoaXMgdGVzdCBvbmx5IG1ha2VzIHNlbnNlIG9uIE1hYwogZmFz
dC9hdHRhY2htZW50L2F0dGFjaG1lbnQtc3VidGl0bGUtcmVzaXplLmh0bWwgWyBTa2lwIF0KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtcnZm
Yy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRp
YS1ydmZjLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjU5YjQyYmQ2NTM0OWVhYjQyMzZiZTYz
MGExMjdlZDUwZTc5NDljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9nZXRVc2VyTWVkaWEtcnZmYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisK
KworUEFTUyBWYWxpZGF0ZSBjYWxsYmFja3MgY2FuIGJlIHVwZGF0ZWQgd2l0aGluIGEgY2FsbGJh
Y2sKK1BBU1MgVmFsaWRhdGUgY2FsbGJhY2tzIGFuZCBtZXRhZGF0YSBmb3IgZ2V0VXNlck1lZGlh
CitQQVNTIFZhbGlkYXRlIGNhbGxiYWNrcyBhcmUgY2FsbGVkIG9ubHkgb25jZQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ydmZjLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ydmZjLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDcwNzNjZmExNWYzYWRlOTlkYWNjNzZkMThjNmU2MGMyM2EyZjhmYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2
ZmMuaHRtbApAQCAtMCwwICsxLDg5IEBACis8IWRvY3R5cGUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIFJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkPXRydWUgXSAtLT4KKzxo
dG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICAg
IDx0aXRsZT5UZXN0aW5nIHJ2ZmMgb24gZ2V0VXNlck1lZGlhIHN0cmVhbTwvdGl0bGU+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDx2aWRlbyBp
ZD0idmlkZW8iIGF1dG9wbGF5PSIiPjwvdmlkZW8+CisgICAgICAgIDxzY3JpcHQ+Cithc3luYyBm
dW5jdGlvbiBncmFiTmV4dE1ldGFkYXRhKHZpZGVvKQoreworICAgIHJldHVybiBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSB2aWRl
by5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKChub3csIG1ldGFkYXRhKSA9PiB7CisgICAgICAg
ICAgICByZXNvbHZlKG1ldGFkYXRhKTsKKyAgICAgICAgfSk7CisgICAgICAgIHNldFRpbWVvdXQo
KCkgPT4geworICAgICAgICAgICAgcmVqZWN0KCJubyBtZXRhZGF0YSBmb3IgIiArIGlkZW50aWZp
ZXIpOworICAgICAgICAgICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKGlkZW50aWZp
ZXIpOworICAgICAgICB9LCA1MDAwKTsKKyAgICB9KTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5j
ICh0ZXN0KSA9PiB7CisgICAgY29uc3QgbG9jYWxTdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVk
aWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHsgd2lkdGg6IDY0MCwgaGVpZ2h0OiA0ODAg
fSB9KTsKKyAgICB2aWRlby5zcmNPYmplY3QgPSBsb2NhbFN0cmVhbTsKKyAgICBhd2FpdCB2aWRl
by5wbGF5KCk7CisKKyAgICBsZXQgcmVzb2x2ZTsKKyAgICBsZXQgcHJvbWlzZSA9IG5ldyBQcm9t
aXNlKHIgPT4gcmVzb2x2ZSA9IHIpOworICAgIGNvbnN0IGlkMSA9IHZpZGVvLnJlcXVlc3RWaWRl
b0ZyYW1lQ2FsbGJhY2soKG5vdywgbWV0YWRhdGEpID0+IHsKKyAgICAgICAgdmlkZW8uY2FuY2Vs
VmlkZW9GcmFtZUNhbGxiYWNrKGlkMSk7CisgICAgICAgIHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVD
YWxsYmFjayhpZDIpOworCisgICAgICAgIGNvbnN0IGlkMyA9IHZpZGVvLnJlcXVlc3RWaWRlb0Zy
YW1lQ2FsbGJhY2soKG5vdywgbWV0YWRhdGEpID0+IHsgYXNzZXJ0X25vdF9yZWFjaGVkKCk7IH0p
OworICAgICAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soaWQzKTsKKyAgICAgICAg
c2V0VGltZW91dChyZXNvbHZlLCAxMDApOworICAgIH0pOworCisgICAgY29uc3QgaWQyID0gdmlk
ZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygobm93LCBtZXRhZGF0YSkgPT4geworICAgICAg
ICBhc3NlcnRfbm90X3JlYWNoZWQoKTsKKyAgICB9KTsKKworICAgIHJldHVybiBwcm9taXNlOwor
fSwgIlZhbGlkYXRlIGNhbGxiYWNrcyBjYW4gYmUgdXBkYXRlZCB3aXRoaW4gYSBjYWxsYmFjayIp
OworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBsb2NhbFN0cmVh
bSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzogeyB3
aWR0aDogNjQwLCBoZWlnaHQ6IDQ4MCB9IH0pOworICAgIHZpZGVvLnNyY09iamVjdCA9IGxvY2Fs
U3RyZWFtOworICAgIGF3YWl0IHZpZGVvLnBsYXkoKTsKKworICAgIGxldCBtZXRhZGF0YSA9IGF3
YWl0IGdyYWJOZXh0TWV0YWRhdGEodmlkZW8pOworICAgIGFzc2VydF9lcXVhbHMobWV0YWRhdGEu
d2lkdGgsIDY0MCk7CisgICAgYXNzZXJ0X2VxdWFscyhtZXRhZGF0YS5oZWlnaHQsIDQ4MCk7Cisg
ICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXMsIDApOworICAg
IGNvbnN0IHByZXNlbnRlZEZyYW1lcyA9IG1ldGFkYXRhLnByZXNlbnRlZEZyYW1lczsKKworICAg
IGF3YWl0IGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0uYXBwbHlDb25zdHJhaW50cyh7
d2lkdGg6IDMyMCwgaGVpZ2h0OiAyNDB9KTsKKworICAgIGxldCBjb3VudGVyID0gMDsKKyAgICB3
aGlsZSAoKytjb3VudGVyIDwgMTAwICYmIG1ldGFkYXRhLndpZHRoICE9PSAzMjApIHsKKyAgICAg
ICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDUwKSk7
CisgICAgICAgIG1ldGFkYXRhID0gYXdhaXQgZ3JhYk5leHRNZXRhZGF0YSh2aWRlbyk7CisgICAg
fQorICAgIGFzc2VydF9lcXVhbHMobWV0YWRhdGEud2lkdGgsIDMyMCk7CisgICAgYXNzZXJ0X2dy
ZWF0ZXJfdGhhbihtZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXMsIHByZXNlbnRlZEZyYW1lcyk7Cit9
LCAiVmFsaWRhdGUgY2FsbGJhY2tzIGFuZCBtZXRhZGF0YSBmb3IgZ2V0VXNlck1lZGlhIik7CisK
K3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGNvbnN0IGxvY2FsU3RyZWFtID0g
YXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB7IHdpZHRo
OiA2NDAsIGhlaWdodDogNDgwIH0gfSk7CisgICAgdmlkZW8uc3JjT2JqZWN0ID0gbG9jYWxTdHJl
YW07CisgICAgYXdhaXQgdmlkZW8ucGxheSgpOworCisgICAgbGV0IGNvdW50ZXIgPSAwOworICAg
IGxldCByZXNvbHZlOworICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZShyID0+IHJlc29s
dmUgPSByKTsKKyAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKCgpID0+IHsKKyAg
ICAgICAgKytjb3VudGVyOworICAgICAgICByZXNvbHZlKCk7CisgICAgfSk7CisgICAgYXdhaXQg
cHJvbWlzZTsKKworICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdmlkZW8ucmVxdWVz
dFZpZGVvRnJhbWVDYWxsYmFjayhyZXNvbHZlKSk7CisgICAgYXNzZXJ0X2VxdWFscyhjb3VudGVy
LCAxKTsKK30sICJWYWxpZGF0ZSBjYWxsYmFja3MgYXJlIGNhbGxlZCBvbmx5IG9uY2UiKTsKKyAg
ICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24gYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNv
bgppbmRleCA2MTBkZDVjZmQ1YWY1MGZiZDY5MTFmYzE3MDUzOGJmYTQwYmQyNjk2Li4wMTFhYmUy
MTVhMzI4ZmMyNzM1NGU3NmQ2NGZlZjRjOTE5Nzc5NmYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNv
bgpAQCAtNDQ1LDYgKzQ0NSw3IEBACiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy91cmwiOiAiaW1w
b3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy91c2VyLXRpbWluZyI6ICJpbXBvcnQiLCAK
ICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3ZpYnJhdGlvbiI6ICJza2lwIiwgCisgICAgIndlYi1w
bGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvdmlzdWFsLXZpZXdwb3J0IjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVz
dHMvd2FpLWFyaWEiOiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2FzbSI6ICJp
bXBvcnQiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdmlkZW8tcnZmYy9NRVRBLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9NRVRBLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTU4MWY0
MjM0YWQzOWM4MTllMzcxYTUzMmNkNDE2NDIwNjBhN2M0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL01FVEEu
eW1sCkBAIC0wLDAgKzEsMyBAQAorc3BlYzogaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby92aWRlby1y
dmZjLworc3VnZ2VzdGVkX3Jldmlld2VyczoKKyAgLSB0Z3VpbGJlcnQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9SRUFE
TUUubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVv
LXJ2ZmMvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiN2EzNTMwNTE1ODYxYzkxYzRjMDEyYjkzYzJl
MGNmOGU5MTNkZWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvUkVBRE1FLm1kCkBAIC0wLDAgKzEsNyBAQAor
IyBIVE1MVmlkZW9FbGVtZW50LnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sgc3BlY2lmaWNhdGlv
biBUZXN0cworCitUaGUgSFRNTFZpZGVvRWxlbWVudC5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNr
IHNwZWNpZmljYXRpb24gaXMgYXZhaWxhYmxlIGhlcmU6IGh0dHBzOi8vd2ljZy5naXRodWIuaW8v
dmlkZW8tcnZmYworCitHaXRIdWIgcmVwb3NpdG9yeTogaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cv
dmlkZW8tcnZmYworCitGaWxlIGFuIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20vd2ljZy92aWRl
by1ydmZjL2lzc3Vlcy9uZXcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2
ZmMvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0YmNiNjI0YzU0
YTAxZDQxZDk4OTFhYWM0MGM5MjFmMjgzOTY2NTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVz
cy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKKworUEFTUyBpZGxfdGVzdCBz
ZXR1cAorUEFTUyBpZGxfdGVzdCB2YWxpZGF0aW9uCitQQVNTIFBhcnRpYWwgaW50ZXJmYWNlIEhU
TUxWaWRlb0VsZW1lbnQ6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkCitQQVNTIFBhcnRpYWwg
aW50ZXJmYWNlIEhUTUxWaWRlb0VsZW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNT
IEhUTUxFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5kRWxlbWVudEV2
ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEhUTUxFbGVtZW50IGlu
Y2x1ZGVzIEVsZW1lbnRDb250ZW50RWRpdGFibGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQ
QVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEhUTUxPclNWR0VsZW1lbnQ6IG1lbWJlciBuYW1lcyBh
cmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVtYmVyIG5hbWVz
IGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5cGVDaGlsZE5v
ZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgQ2hpbGRO
b2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIFNsb3R0
YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgSFRNTFZpZGVvRWxlbWVudCBpbnRl
cmZhY2U6IG9wZXJhdGlvbiByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKFZpZGVvRnJhbWVSZXF1
ZXN0Q2FsbGJhY2spCitQQVNTIEhUTUxWaWRlb0VsZW1lbnQgaW50ZXJmYWNlOiBvcGVyYXRpb24g
Y2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKHVuc2lnbmVkIGxvbmcpCitQQVNTIEhUTUxWaWRlb0Vs
ZW1lbnQgaW50ZXJmYWNlOiB2aWRlbyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJlcXVlc3RWaWRl
b0ZyYW1lQ2FsbGJhY2soVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjaykiIHdpdGggdGhlIHByb3Bl
ciB0eXBlCitQQVNTIEhUTUxWaWRlb0VsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIHJlcXVlc3RW
aWRlb0ZyYW1lQ2FsbGJhY2soVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjaykgb24gdmlkZW8gd2l0
aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvcgorUEFTUyBIVE1MVmlkZW9F
bGVtZW50IGludGVyZmFjZTogdmlkZW8gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJjYW5jZWxWaWRl
b0ZyYW1lQ2FsbGJhY2sodW5zaWduZWQgbG9uZykiIHdpdGggdGhlIHByb3BlciB0eXBlCitQQVNT
IEhUTUxWaWRlb0VsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGNhbmNlbFZpZGVvRnJhbWVDYWxs
YmFjayh1bnNpZ25lZCBsb25nKSBvbiB2aWRlbyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3Qg
dGhyb3cgVHlwZUVycm9yCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhh
cm5lc3Mud2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQwODhmZTQyZTFmNzQ4YzlmM2M3M2EwZDQ3
ZjM2NjIwNDc5MGU5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy5odG1sCkBA
IC0wLDAgKzEsMiBAQAorPCFkb2N0eXBlIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBS
ZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZD10cnVlIF0gLS0+Cis8IS0tIFRoaXMgZmls
ZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0
ZW1wbGF0ZWQgdGVzdCAtLT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJu
ZXNzLndpbmRvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTllNGUwOTg4YmY2N2M4OGRjY2QyOTdjZjU2NGJi
OTdkNWRlNmJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93LmpzCkBAIC0wLDAg
KzEsMTcgQEAKKy8vIE1FVEE6IHNjcmlwdD0vcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcworLy8g
TUVUQTogc2NyaXB0PS9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcworLy8gTUVUQTogdGltZW91dD1s
b25nCisKKyd1c2Ugc3RyaWN0JzsKKworaWRsX3Rlc3QoCisgIFsndmlkZW8tcnZmYyddLAorICBb
J2h0bWwnLCAnZG9tJ10sCisgIGlkbF9hcnJheSA9PiB7CisgICAgaWRsX2FycmF5LmFkZF9vYmpl
Y3RzKHsKKyAgICAgIEhUTUxWaWRlb0VsZW1lbnQ6IFsndmlkZW8nXSwKKyAgICB9KTsKKyAgICBz
ZWxmLnZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgfQorKTsKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92
aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhyLXNlc3Npb24u
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhy
LXNlc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmNDc3YzA5MzE5OWQ1MmYy
ZWM4YjJmZTZlMTU1NmVkZWQ5MTlhNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1m
cmFtZS1jYWxsYmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw4IEBACisKK0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitU
SU1FT1VUIE1ha2Ugc3VyZSB2aWRlby5yVkZDIHdvcmtzIGR1cmluZyBhIG5vbi1pbW1lcnNpdmUg
c2Vzc2lvbiAtIHdlYmdsIFRlc3QgdGltZWQgb3V0CitOT1RSVU4gTWFrZSBzdXJlIHZpZGVvLnJW
RkMgd29ya3MgZHVyaW5nIGEgbm9uLWltbWVyc2l2ZSBzZXNzaW9uIC0gd2ViZ2wyCitOT1RSVU4g
TWFrZSBzdXJlIHZpZGVvLnJWRkMgd29ya3MgZHVyaW5nIGFuIGltbWVyc2l2ZSBzZXNzaW9uIC0g
d2ViZ2wKK05PVFJVTiBNYWtlIHN1cmUgdmlkZW8uclZGQyB3b3JrcyBkdXJpbmcgYW4gaW1tZXJz
aXZlIHNlc3Npb24gLSB3ZWJnbDIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2Fs
bGJhY2stYmVmb3JlLXhyLXNlc3Npb24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNh
bGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTI3N2ZiYmE5
MmZiZjYzNTc5YWQ0ZDRkNWEyY2ExZGMyZTM1NmNkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0
LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwKQEAgLTAs
MCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzx0aXRsZT5UZXN0IHRoYXQgdmlk
ZW8uclZGQyBjYWxsYmFja3Mgc3RhcnRlZCBiZWZvcmUgYW4gWFJTZXNzaW9uIHdvcmsuPC90aXRs
ZT4KKzxib2R5PgorPC9ib2R5PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vbWVkaWEuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL3dlYnhyL3Jlc291cmNlcy93ZWJ4cl91dGlsLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi93ZWJ4ci9yZXNvdXJjZXMvd2VieHJfdGVzdF9jb25zdGFudHMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKworLy8gU3RhcnQgdGhlIHZpZGVvLnJWRkMgY2FsbGJhY2tz
IGJlZm9yZSBzdGFydGluZyB0aGUgWFIgU2Vzc2lvbi4KK2xldCB2aWRlbyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7Cit2aWRlby5zcmMgPSBnZXRWaWRlb1VSSSgnL21lZGlhL21v
dmllXzUnKTsKKwordmFyIG51bWJlclZGQ3MgPSAwOworbGV0IHZpZGVvQ2FsbGJhY2sgPSAoKSA9
PiB7CisgICAgbnVtYmVyVkZDcysrOworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2sodmlkZW9DYWxsYmFjayk7Cit9CisKK3ZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2so
dmlkZW9DYWxsYmFjayk7Cit2aWRlby5wbGF5KCk7CisKK2xldCB0ZXN0RnVuY3Rpb24gPSBhc3lu
YyBmdW5jdGlvbihzZXNzaW9uLCBmYWtlRGV2aWNlQ29udHJvbGxlciwgdCkgeworICAgIGxldCB3
YXRjaGVyRG9uZSA9IG5ldyBFdmVudCgid2F0Y2hlcmRvbmUiKTsKKyAgICBsZXQgZXZlbnRXYXRj
aGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCBzZXNzaW9uLCBbImVuZCIsICJ3YXRjaGVyZG9uZSJd
KTsKKyAgICBsZXQgZXZlbnRQcm9taXNlID0gZXZlbnRXYXRjaGVyLndhaXRfZm9yKFsiZW5kIiwg
IndhdGNoZXJkb25lIl0pOworCisgICAgbnVtYmVyVkZDcyA9IDA7CisKKyAgICBmdW5jdGlvbiBv
blhSRnJhbWUodGltZSwgZnJhbWUpIHsKKyAgICAgICAgaWYobnVtYmVyVkZDcyA+PSAyKSB7Cisg
ICAgICAgICAgICAvLyBNYWtlIHN1cmUgdmlkZW8uclZGQ3MgYXJlIHN0aWxsIGNvbWluZyB0aHJv
dWdoIGJlZm9yZSBlbmRpbmcgdGhlCisgICAgICAgICAgICAvLyBzZXNzaW9uLgorICAgICAgICAg
ICAgc2Vzc2lvbi5lbmQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHNlc3Npb24ucmVxdWVzdEFu
aW1hdGlvbkZyYW1lKG9uWFJGcmFtZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25TZXNzaW9u
RW5kKGV2ZW50KSB7CisgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBhcmUgc3RpbGwgZ2V0dGluZyBy
VkZDIGNhbGxiYWNrcyBhZnRlciB0aGUgc2Vzc2lvbiBlbmQuCisgICAgICAgIG51bWJlclZGQ3Mg
PSAwOworICAgICAgICB0LnN0ZXBfd2FpdF9mdW5jKCgpID0+IG51bWJlclZGQ3MgPj0gMiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiBzZXNzaW9uLmRpc3BhdGNoRXZlbnQod2F0Y2hl
ckRvbmUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJUaW1lIG91dCB3YWl0aW5nIGZvciBW
RkMgY2FsbGJhY2tzIik7CisgICAgfQorCisgICAgc2Vzc2lvbi5hZGRFdmVudExpc3RlbmVyKCJl
bmQiLCBvblNlc3Npb25FbmQsIGZhbHNlKTsKKyAgICBzZXNzaW9uLnJlcXVlc3RBbmltYXRpb25G
cmFtZShvblhSRnJhbWUpOworCisgICAgcmV0dXJuIGV2ZW50UHJvbWlzZTsKK30KKworeHJfc2Vz
c2lvbl9wcm9taXNlX3Rlc3QoJ01ha2Ugc3VyZSB2aWRlby5yVkZDIHdvcmtzIGR1cmluZyBhIG5v
bi1pbW1lcnNpdmUgc2Vzc2lvbicsCisgICAgdGVzdEZ1bmN0aW9uLCBUUkFDS0VEX0lNTUVSU0lW
RV9ERVZJQ0UsICdpbmxpbmUnKTsKKwordmlkZW8uY3VycmVudFRpbWUgPSAwOworCit4cl9zZXNz
aW9uX3Byb21pc2VfdGVzdCgnTWFrZSBzdXJlIHZpZGVvLnJWRkMgd29ya3MgZHVyaW5nIGFuIGlt
bWVyc2l2ZSBzZXNzaW9uJywKKyAgICB0ZXN0RnVuY3Rpb24sIFRSQUNLRURfSU1NRVJTSVZFX0RF
VklDRSwgJ2ltbWVyc2l2ZS12cicpOworCis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9y
ZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRl
by1mcmFtZS1jYWxsYmFjay1kb20tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2MzlkNGYyODg1
ZTFmOTc2NDhkNTA1NDc3MGVhZmViNDMyZGM1MGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay1kb20tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitI
YXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9VVCBUZXN0IGEg
dmlkZW8gb3V0c2lkZSBvZiB0aGUgRE9NIGNhbiBzdGlsbCB1c2UgdmlkZW8uclZGQy4gVGVzdCB0
aW1lZCBvdXQKK1RJTUVPVVQgVGVzdCB2aWRlby5yVkZDIHdvcmtzIHdpdGggImRpc3BsYXk6bm9u
ZSIuIFRlc3QgdGltZWQgb3V0CitUSU1FT1VUIFRlc3QgdmlkZW8uclZGQyB3b3JrcyB3aXRoICJ2
aXNpYmlsaXR5OmhpZGRlbiIuIFRlc3QgdGltZWQgb3V0CisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZp
ZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2st
ZG9tLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDI3N2Q3Mjk3ODgzYzRjZDRmNDcyYjA4YzQzOTk4MDYyODBm
ZThlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS5o
dG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8dGl0bGU+VGVz
dCB0aGUgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygpIEFQSSBmb3Igbm9uIHZpc2li
bGUgdmlkZW8gZWxlbWVudHMuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL21lZGlhLmpzIj48L3Nj
cmlwdD4KKzxib2R5PgorPC9ib2R5PgorPHNjcmlwdD4KK3ZhciB0ZXN0VmlkZW8gPSB7CisgIHVy
bDogZ2V0VmlkZW9VUkkoJy9tZWRpYS9tb3ZpZV81JyksCisgIGhlaWdodDogMjQwLAorICB3aWR0
aDogMzIwLAorfQorCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8gPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworCisgICAgdmlkZW8ucmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFjayh0LnN0ZXBfZnVuY19kb25lKCkpOworICAgIHZpZGVvLnNyYyA9IHRlc3RW
aWRlby51cmw7CisgICAgdmlkZW8ucGxheSgpOworCit9LCAnVGVzdCBhIHZpZGVvIG91dHNpZGUg
b2YgdGhlIERPTSBjYW4gc3RpbGwgdXNlIHZpZGVvLnJWRkMuJyk7CisKK2Z1bmN0aW9uIHJ2ZmNT
dHlsZVRlc3QoYXBwbHlTdHlsZSwgZGVzY3JpcHRpb24pIHsKKyAgICBhc3luY190ZXN0KGZ1bmN0
aW9uKHQpIHsKKyAgICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVv
Jyk7CisgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKKyAgICAgIGFwcGx5
U3R5bGUodmlkZW8pOworCisgICAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKAor
ICAgICAgICB0LnN0ZXBfZnVuYyggXyA9PiB7CisgICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGNh
biByZWNlaXZlIG1vcmUgdGhhbiBvbmUgY2FsbGJhY2suCisgICAgICAgICAgdmlkZW8ucmVxdWVz
dFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0ZXBfZnVuY19kb25lKCkpOworICAgICAgICB9KQorICAg
ICAgKTsKKworICAgICAgdmlkZW8uc3JjID0gdGVzdFZpZGVvLnVybDsKKyAgICAgIHZpZGVvLnBs
YXkoKTsKKyAgICB9LCBkZXNjcmlwdGlvbik7Cit9CisKK3J2ZmNTdHlsZVRlc3QoKHZpZGVvKSA9
PiB7IHZpZGVvLnN0eWxlLmRpc3BsYXkgPSAibm9uZSJ9LAorICAnVGVzdCB2aWRlby5yVkZDIHdv
cmtzIHdpdGggImRpc3BsYXk6bm9uZSIuJyk7CisKK3J2ZmNTdHlsZVRlc3QoKHZpZGVvKSA9PiB7
IHZpZGVvLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIn0sCisgICdUZXN0IHZpZGVvLnJWRkMg
d29ya3Mgd2l0aCAidmlzaWJpbGl0eTpoaWRkZW4iLicpOworCis8L3NjcmlwdD4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmluZy14ci1zZXNzaW9u
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmluZy14
ci1zZXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzcyMDIwZTQ5MDI3MWI0
MzQyNDFkOTQ5ODYyMWZhOWViODFhNGM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8t
ZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNiBAQAorCitIYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKwor
VElNRU9VVCBNYWtlIHN1cmUgdmlkZW8uclZGQyBjYWxsYmFja3Mgc3RhcnRlZCBkdXJpbmcgYW4g
aW1tZXJzaXZlIHNlc3Npb24gY29udGludWUgYWZ0ZXIgaXQgZW5kcyAtIHdlYmdsIFRlc3QgdGlt
ZWQgb3V0CitOT1RSVU4gTWFrZSBzdXJlIHZpZGVvLnJWRkMgY2FsbGJhY2tzIHN0YXJ0ZWQgZHVy
aW5nIGFuIGltbWVyc2l2ZSBzZXNzaW9uIGNvbnRpbnVlIGFmdGVyIGl0IGVuZHMgLSB3ZWJnbDIK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Np
b24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmluZy14ci1zZXNz
aW9uLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQ1NjFlZTVmZDA2NTk0NGQxMzNmYTVkMzE0YjZj
ZWQyZjc5NDczZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNr
LWR1cmluZy14ci1zZXNzaW9uLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzx0aXRsZT5UZXN0IHRoYXQgdmlkZW8uclZGQyBjYWxsYmFja3Mgc3Rh
cnRlZCBkdXJpbmcgYW4gWFJTZXNzaW9uIHdvcmsuPC90aXRsZT4KKzxib2R5PgorICAgIDxjYW52
YXMvPgorPC9ib2R5PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vbWVkaWEuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3dlYnhyL3Jlc291cmNlcy93ZWJ4cl91dGlsLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi93ZWJ4ci9yZXNvdXJjZXMvd2VieHJfdGVzdF9jb25zdGFudHMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKworbGV0IHRlc3RGdW5jdGlvbiA9IGFzeW5jIGZ1bmN0aW9uKHNlc3Np
b24sIGZha2VEZXZpY2VDb250cm9sbGVyLCB0KSB7CisgICAgbGV0IHdhdGNoZXJEb25lID0gbmV3
IEV2ZW50KCJ3YXRjaGVyZG9uZSIpOworICAgIGxldCBldmVudFdhdGNoZXIgPSBuZXcgRXZlbnRX
YXRjaGVyKHQsIHNlc3Npb24sIFsiZW5kIiwgIndhdGNoZXJkb25lIl0pOworICAgIGxldCBldmVu
dFByb21pc2UgPSBldmVudFdhdGNoZXIud2FpdF9mb3IoWyJlbmQiLCAid2F0Y2hlcmRvbmUiXSk7
CisKKyAgICAvLyBTdGFydCB0aGUgdmlkZW8uclZGQyBjYWxsYmFja3Mgd2hpbGUgd2UgYXJlIGlu
IHRoZSB0aGUgWFIgU2Vzc2lvbi4KKyAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCd2aWRlbycpOworICAgIHZpZGVvLnNyYyA9IGdldFZpZGVvVVJJKCcvbWVkaWEvbW92aWVf
NScpOworCisgICAgdmFyIG51bWJlclZGQ3MgPSAwOworICAgIGxldCB2aWRlb0NhbGxiYWNrID0g
KCkgPT4geworICAgICAgICBudW1iZXJWRkNzKys7CisgICAgICAgIHZpZGVvLnJlcXVlc3RWaWRl
b0ZyYW1lQ2FsbGJhY2sodmlkZW9DYWxsYmFjayk7CisgICAgfQorCisgICAgdmlkZW8ucmVxdWVz
dFZpZGVvRnJhbWVDYWxsYmFjayh2aWRlb0NhbGxiYWNrKTsKKyAgICB2aWRlby5wbGF5KCk7CisK
KyAgICBmdW5jdGlvbiBvblhSRnJhbWUodGltZSwgZnJhbWUpIHsKKyAgICAgICAgaWYobnVtYmVy
VkZDcyA+PSAyKSB7CisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdmlkZW8uclZGQ3MgYXJlIGNv
bWluZyB0aHJvdWdoIGJlZm9yZSBlbmRpbmcgdGhlCisgICAgICAgICAgICAvLyBzZXNzaW9uLgor
ICAgICAgICAgICAgc2Vzc2lvbi5lbmQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHNlc3Npb24u
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKG9uWFJGcmFtZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
b25TZXNzaW9uRW5kKGV2ZW50KSB7CisgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBhcmUgc3RpbGwg
Z2V0dGluZyByVkZDIGNhbGxiYWNrcyBhZnRlciB0aGUgc2Vzc2lvbiBlbmQuCisgICAgICAgIG51
bWJlclZGQ3MgPSAwOworICAgICAgICB0LnN0ZXBfd2FpdF9mdW5jKCgpID0+IG51bWJlclZGQ3Mg
Pj0gMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiBzZXNzaW9uLmRpc3BhdGNoRXZl
bnQod2F0Y2hlckRvbmUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJUaW1lIG91dCB3YWl0
aW5nIGZvciBWRkMgY2FsbGJhY2tzIik7CisgICAgfQorCisgICAgc2Vzc2lvbi5hZGRFdmVudExp
c3RlbmVyKCJlbmQiLCBvblNlc3Npb25FbmQsIGZhbHNlKTsKKyAgICBzZXNzaW9uLnJlcXVlc3RB
bmltYXRpb25GcmFtZShvblhSRnJhbWUpOworCisgICAgcmV0dXJuIGV2ZW50UHJvbWlzZTsKK30K
KworeHJfc2Vzc2lvbl9wcm9taXNlX3Rlc3QoJ01ha2Ugc3VyZSB2aWRlby5yVkZDIGNhbGxiYWNr
cyBzdGFydGVkIGR1cmluZyBhbiBpbW1lcnNpdmUgc2Vzc2lvbiBjb250aW51ZSBhZnRlciBpdCBl
bmRzJywKKyAgICB0ZXN0RnVuY3Rpb24sIFRSQUNLRURfSU1NRVJTSVZFX0RFVklDRSwgJ2ltbWVy
c2l2ZS12cicpOworCis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVv
LWZyYW1lLWNhbGxiYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNr
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTdjYjNlOTRjZGZiMjUyNThiOWQ5OWI0ZjRkNDdl
ZGEwZTc3MjE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2st
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworCitIYXJuZXNzIEVycm9yIChUSU1FT1VU
KSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9VVCBUZXN0IHdlIGNhbiByZWdpc3RlciBhIHZpZGVv
LnJWRkMgY2FsbGJhY2suIFRlc3QgdGltZWQgb3V0CitUSU1FT1VUIFRlc3QgdmlkZW8uclZGQyBj
YWxsYmFja3MgcnVuIGJlZm9yZSB3aW5kb3cuckFGIGNhbGxiYWNrcy4gVGVzdCB0aW1lZCBvdXQK
K1RJTUVPVVQgVGVzdCB3ZSBjYW4gY2FuY2VsIGEgdmlkZW8uclZGQyByZXF1ZXN0LiBUZXN0IHRp
bWVkIG91dAorUEFTUyBUZXN0IGludmFsaWQgY2FsbHMgdG8gdGhlIHZpZGVvLnJWRkMgQVBJLgor
VElNRU9VVCBUZXN0IHZpZGVvLnJWRkMgZG9lcyBub3Qgc3RvcCB3aGVuIHN3aXRjaGluZyBzb3Vy
Y2VzLiBUZXN0IHRpbWVkIG91dAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxs
YmFjay1wYXJhbGxlbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1w
YXJhbGxlbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmZlNjg0YWU4ZTY2ZGFiOGNjZTY4ZDIy
NzUzNTk1YTg0NDhjNmI5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNh
bGxiYWNrLXBhcmFsbGVsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKworCitIYXJuZXNz
IEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9VVCBUZXN0IGNhbGxiYWNr
cyBnZXQgdGhlIHNhbWUgaW5mb3JtYXRpb24uIFRlc3QgdGltZWQgb3V0CitUSU1FT1VUIFRlc3Qg
d2UgY2FuIGNhbmNlbCBjYWxsYmFja3MgZnJvbSBjYWxsYmFja3MuIFRlc3QgdGltZWQgb3V0CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXBhcmFsbGVsLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVx
dWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0YzVk
ZTFhZGY1NWJhMDAxNmFiOTk4NTc3NmM1NjhlNDlmNTk1NmQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVx
dWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sCkBAIC0wLDAgKzEsNTcgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8dGl0bGU+VGVzdCBoYXZpbmcgbXVsdGlwbGUgdmlk
ZW8uclZGQyBjYWxsYmFja3MgaW4gZmxpZ2h0IGZvciBhIHNpbmdsZSBlbGVtZW50LjwvdGl0bGU+
Cis8Ym9keT48L2JvZHk+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9tZWRpYS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
dmlkZW8pOworCisgICAgbGV0IGZpcnN0VGltZTsKKyAgICBsZXQgZmlyc3RNZXRhZGF0YTsKKwor
ICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodC5zdGVwX2Z1bmMoKHRpbWUsIG1l
dGFkYXRhKSA9PiB7CisgICAgICBmaXJzdFRpbWUgPSB0aW1lOworICAgICAgZmlyc3RNZXRhZGF0
YSA9IG1ldGFkYXRhOworICAgIH0pKTsKKworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2Fs
bGJhY2sodC5zdGVwX2Z1bmNfZG9uZSgodGltZSwgbWV0YWRhdGEpID0+IHsKKyAgICAgIGFzc2Vy
dF9lcXVhbHMoZmlyc3RUaW1lLCB0aW1lKTsKKyAgICAgIGFzc2VydF9vYmplY3RfZXF1YWxzKGZp
cnN0TWV0YWRhdGEsIG1ldGFkYXRhKTsKKyAgICB9KSk7CisKKyAgICB2aWRlby5zcmMgPSBnZXRW
aWRlb1VSSSgnL21lZGlhL21vdmllXzUnKTsKKyAgICB2aWRlby5wbGF5KCk7CisKK30sICdUZXN0
IGNhbGxiYWNrcyBnZXQgdGhlIHNhbWUgaW5mb3JtYXRpb24uJyk7CisKK2FzeW5jX3Rlc3QoZnVu
Y3Rpb24odCkgeworICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVv
Jyk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICBsZXQgc2Vj
b25kQ2FsbGJhY2tJZDsKKworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soCisg
ICAgICB0LnN0ZXBfZnVuYyhfID0+IHsgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKHNl
Y29uZENhbGxiYWNrSWQpOyB9KQorICAgICk7CisKKyAgICBzZWNvbmRDYWxsYmFja0lkID0gdmlk
ZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygKKyAgICAgIHQuc3RlcF9mdW5jKF8gPT4gewor
ICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJDYW5jZWxsZWQgY2FsbGJhY2tzIHNob3VsZG4ndCBi
ZSBleGVjdXRlZCIpCisgICAgICB9KQorICAgICk7CisKKyAgICAvLyBOT1RFOiBUaGlzIGNhbGxi
YWNrIHNob3VsZCBiZSBleGVjdXRlZCBsYXN0LgorICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1l
Q2FsbGJhY2soCisgICAgICB0LnN0ZXBfZnVuY19kb25lKCkKKyAgICApOworCisgICAgdmlkZW8u
c3JjID0gZ2V0VmlkZW9VUkkoJy9tZWRpYS9tb3ZpZV81Jyk7CisgICAgdmlkZW8ucGxheSgpOwor
fSwgJ1Rlc3Qgd2UgY2FuIGNhbmNlbCBjYWxsYmFja3MgZnJvbSBjYWxsYmFja3MuJyk7Cis8L3Nj
cmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXJl
cGVhdGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1yZXBlYXRp
bmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0YTViZTNkZDI1MTJiODVjMzg1NTViOGYzY2U3
MDM2NzhlZDRkZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFj
ay1yZXBlYXRpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCisKK0hhcm5lc3MgRXJy
b3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitUSU1FT1VUIFRlc3QgbmV3IGNhbGxiYWNr
cyBhcmUgb25seSBjYWxsZWQgb24gdGhlIG5leHQgZnJhbWUuIFRlc3QgdGltZWQgb3V0CitUSU1F
T1VUIFRlc3QgY2hhaW5pbmcgY2FsbHMgdG8gdmlkZW8uclZGQywgYW5kIHZlcmlmeSB0aGUgcmVx
dWlyZWQgcGFyYW1ldGVycy4gVGVzdCB0aW1lZCBvdXQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxs
YmFjay1yZXBlYXRpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjM3YTA4NzJjYjBkMGMxNTFlMGE4MGE2
YTU2OTQ0OWZkMjIyYTFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2Fs
bGJhY2stcmVwZWF0aW5nLmh0bWwKQEAgLTAsMCArMSw4MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzx0aXRsZT5UZXN0IHJlcGVhdGVkbHkgY2hhaW5pbmcgdmlkZW8uclZGQygpIGNhbGxi
YWNrcy48L3RpdGxlPgorPGJvZHk+PC9ib2R5PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vbWVkaWEuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgbGV0IHZp
ZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKHZpZGVvKTsKKworICAgIGxldCBmaXJzdFRpbWU7CisgICAgdmlkZW8ucmVx
dWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0ZXBfZnVuYygodGltZSkgPT4geworICAgICAgZmly
c3RUaW1lID0gdGltZTsKKworICAgICAgLy8gUXVldWUgdXAgYSBjYWxsYmFjayBhbmQgbWFrZSBz
dXJlIGl0J3Mgbm90IGltbWVkaWF0ZWx5IGV4ZWN1dGVkLgorICAgICAgbGV0IHNlY29uZFRpbWU7
CisgICAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHQuc3RlcF9mdW5jKCh0aW1l
KSA9PiB7CisgICAgICAgIHNlY29uZFRpbWUgPSB0aW1lOworICAgICAgICBhc3NlcnRfZ3JlYXRl
cl90aGFuKHNlY29uZFRpbWUsIGZpcnN0VGltZSwgIkNhbGxiYWNrcyBzaG91bGQgYmUgZXhlY3V0
ZWQgb24gdGhlIG5leHQgZnJhbWUiKTsKKyAgICAgIH0pKQorCisgICAgICAvLyBRdWV1ZSB1cCBh
IHNlY29uZCBjYWxsYmFjaywgYW5kIG1ha2Ugc3VyZSBpdCdzIGNhbGxlZCBhdCB0aGUgc2FtZSB0
aW1lCisgICAgICAvLyBhcyB0aGUgb25lIHdlIGp1c3QgcXVldWVkIHVwLgorICAgICAgdmlkZW8u
cmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0ZXBfZnVuY19kb25lKCh0aW1lKSA9PiB7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHModGltZSwgc2Vjb25kVGltZSwgIkNhbGxiYWNrcyBxdWV1ZWQg
dG9nZXRoZXIgc2hvdWxkIGJlIGNhbGxlZCBhdCB0aGUgc2FtZSB0aW1lIik7CisgICAgICB9KSkK
KworICAgIH0pKTsKKworICAgIHZpZGVvLnNyYyA9IGdldFZpZGVvVVJJKCcvbWVkaWEvbW92aWVf
NScpOworICAgIHZpZGVvLnBsYXkoKTsKKworfSwgJ1Rlc3QgbmV3IGNhbGxiYWNrcyBhcmUgb25s
eSBjYWxsZWQgb24gdGhlIG5leHQgZnJhbWUuJyk7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkg
eworICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICBsZXQgbWF4TnVtYmVyT2ZD
YWxscyA9IDEwOworICAgIGxldCBjdXJyZW50Q2FsbE51bWJlciA9IDA7CisgICAgbGV0IGxhc3RN
ZXRhZGF0YTsKKworICAgIGZ1bmN0aW9uIHZlcmlmeU1ldGFkYXRhKGxhc3QsIGN1cnJlbnQpIHsK
KyAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oY3VycmVudC5wcmVzZW50ZWRGcmFtZXMsIGxhc3Qu
cHJlc2VudGVkRnJhbWVzLCAicHJlc2VudGVkRnJhbWVzIHNob3VsZCBiZSBtb25vdG9uaWNhbGx5
IGluY3JlYXNpbmciKTsKKyAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oY3VycmVudC5wcmVzZW50
YXRpb25UaW1lLCBsYXN0LnByZXNlbnRhdGlvblRpbWUsICJwcmVzZW50YXRpb25UaW1lIHNob3Vs
ZCBiZSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmciKTsKKyAgICAgIGFzc2VydF9ncmVhdGVyX3Ro
YW4oY3VycmVudC5leHBlY3RlZERpc3BsYXlUaW1lLCBsYXN0LmV4cGVjdGVkRGlzcGxheVRpbWUs
ICJleHBlY3RlZERpc3BsYXlUaW1lIHNob3VsZCBiZSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmci
KTsKKworICAgICAgLy8gV2UgYXJlbid0IHNlZWtpbmcgdGhyb3VnaCB0aGUgZmlsZSwgc28gdGhp
cyBzaG91bGQgYmUgaW5jcmVhc2luZyBmcm9tIGZyYW1lIHRvIGZyYW1lLgorICAgICAgYXNzZXJ0
X2dyZWF0ZXJfdGhhbihjdXJyZW50Lm1lZGlhVGltZSwgbGFzdC5tZWRpYVRpbWUsICJtZWRpYVRp
bWUgc2hvdWxkIGJlIGluY3JlYXNpbmciKTsKKworICAgICAgLy8gVGhlIHRlc3QgdmlkZW8ncyBz
aXplIGRvZXNuJ3QgY2hhbmdlLgorICAgICAgYXNzZXJ0X2VxdWFscyhjdXJyZW50LndpZHRoLCBs
YXN0LndpZHRoLCAid2lkdGggc2hvdWxkIHJlbWFpbiBjb25zdGFudCIpOworICAgICAgYXNzZXJ0
X2VxdWFscyhjdXJyZW50LmhlaWdodCwgbGFzdC5oZWlnaHQsICJoZWlnaHQgc2hvdWxkIHJlbWFp
biBjb25zdGFudCIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlcGVhdGluZ0NhbGxiYWNrKHRp
bWUsIG1ldGFkYXRhKSB7CisgICAgICAvLyBTa2lwIHRoZSBmaXJzdCBjYWxsIHRvIHZlcmlmeU1l
dGFkYXRhLgorICAgICAgaWYgKGN1cnJlbnRDYWxsTnVtYmVyKQorICAgICAgICB2ZXJpZnlNZXRh
ZGF0YShsYXN0TWV0YWRhdGEsIG1ldGFkYXRhKQorCisgICAgICBsYXN0TWV0YWRhdGEgPSBtZXRh
ZGF0YTsKKworICAgICAgaWYgKCsrY3VycmVudENhbGxOdW1iZXIgPiBtYXhOdW1iZXJPZkNhbGxz
KSB7CisgICAgICAgIHQuZG9uZSgpCisgICAgICB9IGVsc2UgeworICAgICAgICB2aWRlby5yZXF1
ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHQuc3RlcF9mdW5jKHJlcGVhdGluZ0NhbGxiYWNrKSk7Cisg
ICAgICB9CisgICAgfQorCisgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0
ZXBfZnVuYyhyZXBlYXRpbmdDYWxsYmFjaykpOworCisgICAgdmlkZW8uc3JjID0gZ2V0VmlkZW9V
UkkoJy9tZWRpYS9tb3ZpZV81Jyk7CisgICAgdmlkZW8ucGxheSgpOworCit9LCAnVGVzdCBjaGFp
bmluZyBjYWxscyB0byB2aWRlby5yVkZDLCBhbmQgdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0
ZXJzLicpOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFt
ZS1jYWxsYmFjay13ZWJydGMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUt
Y2FsbGJhY2std2VicnRjLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZDU0ZDBlYWFl
Nzg4NjQ2ZmIwZGYxMTgyODgyMzFmYjI1NDg3NzdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qt
dmlkZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDQgQEAKKworRkFJTCBUZXN0IHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKSBwYXJh
bWV0ZXJzIGZvciBXZWJSVEMgYXBwbGljYXRpb25zLiBhc3NlcnRfZ3JlYXRlcl90aGFuOiBleHBl
Y3RlZCBhIG51bWJlciBidXQgZ290IGEgInVuZGVmaW5lZCIKKworCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVz
dC12aWRlby1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZy
YW1lLWNhbGxiYWNrLXdlYnJ0Yy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkN2U4ZDdmM2M5Zjdh
ZDFkYTVmMjNiOWRkY2VmNDQ3NzY4NjIyZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRl
by1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMuaHRtbApAQCAtMCwwICsxLDE2NSBAQAorPCFk
b2N0eXBlIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBSZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICA8bWV0YSBodHRwLWVx
dWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+Cisg
IDx0aXRsZT5XZWJSVEMgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygpIHRlc3Q8L3Rp
dGxlPgorICA8c2NyaXB0IHNyYz0iL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+CisgIDxk
aXY+CisgICAgPHZpZGVvIGlkPSJsb2NhbC12aWV3IiBtdXRlZCBhdXRvcGxheT0iYXV0b3BsYXki
PjwvdmlkZW8+CisgICAgPHZpZGVvIGlkPSJyZW1vdGUtdmlldyIgbXV0ZWQgYXV0b3BsYXk9ImF1
dG9wbGF5Ii8+CisgICAgPC92aWRlbz4KKyAgPC9kaXY+CisKKyAgPCEtLSBUaGVzZSBmaWxlcyBh
cmUgaW4gcGxhY2Ugd2hlbiBleGVjdXRpbmcgb24gVzNDLiAtLT4KKyAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKyAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCdUZXN0IHZpZGVvLnJlcXVl
c3RWaWRlb0ZyYW1lQ2FsbGJhY2soKSBwYXJhbWV0ZXJzIGZvciBXZWJSVEMgYXBwbGljYXRpb25z
LicpOworCisgIC8vCisgIC8vIFRoaXMgdGVzdCBpcyBiYXNlZCBvbiAvd2VicnRjL3NpbXBsZWNh
bGwuaHR0cHMuaHRtbCwgYnV0IGl0IGNhbGxzIHRvCisgIC8vIHZpZGVvLnJlcXVlc3RWaWRlb0Zy
YW1lQ2FsbGJhY2soKSBiZWZvcmUgZW5kaW5nLCB0byB2ZXJpZnkgV2ViUlRDIHJlcXVpcmVkCisg
IC8vIGFuZCBvcHRpb25hbCBwYXJhbWV0ZXJzLgorICAvLworCisgIHZhciBnRmlyc3RDb25uZWN0
aW9uID0gbnVsbDsKKyAgdmFyIGdTZWNvbmRDb25uZWN0aW9uID0gbnVsbDsKKyAgdmFyIGdDYWxs
YmFja0NvdW50ZXIgPSAwOworICB2YXIgdmVyaWZ5X3BhcmFtcyA9IChub3csIG1ldGFkYXRhKSA9
PiB7CisgICAgZ0NhbGxiYWNrQ291bnRlciA9IGdDYWxsYmFja0NvdW50ZXIgKyAxOworICAgIGFz
c2VydF9ncmVhdGVyX3RoYW4obm93LCAwKTsKKworICAgIC8vIFZlcmlmeSBhbGwgcmVxdWlyZWQg
ZmllbGRzCisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5wcmVzZW50YXRpb25UaW1l
LCAwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLmV4cGVjdGVkRGlzcGxheVRp
bWUsIDApOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEucHJlc2VudGVkRnJhbWVz
LCAwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLndpZHRoLCAwKTsKKyAgICBh
c3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLmhlaWdodCwgMCk7CisgICAgYXNzZXJ0X3RydWUo
Im1lZGlhVGltZSIgaW4gbWV0YWRhdGEsICJtZWRpYVRpbWUgc2hvdWxkIGJlIHByZXNlbnQiKTsK
KworICAgIC8vIFZlcmlmeSBXZWJSVEMgb25seSBmaWVsZHMuCisgICAgYXNzZXJ0X3RydWUoInJ0
cFRpbWVzdGFtcCIgaW4gbWV0YWRhdGEsICJydHBUaW1lc3RhbXAgc2hvdWxkIGJlIHByZXNlbnQi
KTsKKyAgICBhc3NlcnRfdHJ1ZSgicmVjZWl2ZVRpbWUiIGluIG1ldGFkYXRhLCAicmVjZWl2ZVRp
bWUgc2hvdWxkIGJlIHByZXNlbnQiKTsKKyAgICAvLyBjYXB0dXJlVGltZSBpcyBub3QgYXZhaWxh
YmxlIHVudGlsIHJvdW5kdHJpcCB0aW1lIGVzdGltYXRpb24gaXMgZG9uZS4KKyAgICBpZiAoZ0Nh
bGxiYWNrQ291bnRlciA+IDYwIHx8ICJjYXB0dXJlVGltZSIgaW4gbWV0YWRhdGEpIHsKKyAgICAg
IGFzc2VydF90cnVlKCJjYXB0dXJlVGltZSIgaW4gbWV0YWRhdGEsICJjYXB0dXJlVGltZSBzaG91
bGQgYmUgcHJlc2VudCIpOworICAgICAgdGVzdC5kb25lKCk7CisgICAgfQorICAgIGVsc2Ugewor
ICAgICAgLy8gS2VlcCByZXF1ZXN0aW5nIGNhbGxiYWNrcy4KKyAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdyZW1vdGUtdmlldycpLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodGVzdC5z
dGVwX2Z1bmModmVyaWZ5X3BhcmFtcykpOworICAgIH0KKyAgfQorCisgIHZhciB2ZXJpZnlfbG9j
YWxfbWV0YWRhdGEgPSAobm93LCBtZXRhZGF0YSkgPT4geworICAgIGFzc2VydF9ncmVhdGVyX3Ro
YW4obWV0YWRhdGEuZXhwZWN0ZWREaXNwbGF5VGltZSwgMCk7CisgICAgYXNzZXJ0X2dyZWF0ZXJf
dGhhbihtZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXMsIDApOworICAgIGFzc2VydF9ncmVhdGVyX3Ro
YW4obWV0YWRhdGEud2lkdGgsIDApOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEu
aGVpZ2h0LCAwKTsKKyAgICBhc3NlcnRfdHJ1ZSgiY2FwdHVyZVRpbWUiIGluIG1ldGFkYXRhLCAi
Y2FwdHVyZVRpbWUgc2hvdWxkIGFsd2F5cyBiZSBwcmVzZW50IGZvciBsb2NhbCBzb3VyY2VzLiIp
OworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEuY2FwdHVyZVRpbWUsIDApOworICB9
CisKKyAgLy8gSWYgdGhlIHJlbW90ZSB2aWRlbyBnZXRzIHZpZGVvIGRhdGEgdGhhdCBpbXBsaWVz
IHRoZSBuZWdvdGlhdGlvbgorICAvLyBhcyB3ZWxsIGFzIHRoZSBJQ0UgYW5kIERUTFMgY29ubmVj
dGlvbiBhcmUgdXAuCisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW1vdGUtdmlldycpCisg
ICAgICAuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVkbWV0YWRhdGEnLCBmdW5jdGlvbigpIHsKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVtb3RlLXZpZXcnKS5yZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrKHRlc3Quc3RlcF9mdW5jKHZlcmlmeV9wYXJhbXMpKTsKKyAgfSk7CisKKyAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvY2FsLXZpZXcnKQorICAgICAgLmFkZEV2ZW50TGlzdGVu
ZXIoJ2xvYWRtZXRhZGF0YScsIGZ1bmN0aW9uKCkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdsb2NhbC12aWV3JykucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0ZXN0LnN0ZXBfZnVu
Y19kb25lKHZlcmlmeV9sb2NhbF9tZXRhZGF0YSkpOworICB9KTsKKworCisgIGZ1bmN0aW9uIGdl
dE5vaXNlU3RyZWFtT2tDYWxsYmFjayhsb2NhbFN0cmVhbSkgeworICAgIGdGaXJzdENvbm5lY3Rp
b24gPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24obnVsbCk7CisgICAgdGVzdC5hZGRfY2xlYW51cCgo
KSA9PiBnRmlyc3RDb25uZWN0aW9uLmNsb3NlKCkpOworICAgIGdGaXJzdENvbm5lY3Rpb24ub25p
Y2VjYW5kaWRhdGUgPSBvbkljZUNhbmRpZGF0ZVRvRmlyc3Q7CisKKyAgICBnU2Vjb25kQ29ubmVj
dGlvbiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihudWxsKTsKKyAgICB0ZXN0LmFkZF9jbGVhbnVw
KCgpID0+IGdTZWNvbmRDb25uZWN0aW9uLmNsb3NlKCkpOworICAgIGdTZWNvbmRDb25uZWN0aW9u
Lm9uaWNlY2FuZGlkYXRlID0gb25JY2VDYW5kaWRhdGVUb1NlY29uZDsKKyAgICBnU2Vjb25kQ29u
bmVjdGlvbi5vbnRyYWNrID0gb25SZW1vdGVUcmFjazsKKworICAgIGxvY2FsU3RyZWFtLmdldFRy
YWNrcygpLmZvckVhY2goZnVuY3Rpb24odHJhY2spIHsKKyAgICAgIC8vIEJpZGlyZWN0aW9uYWwg
c3RyZWFtcyBhcmUgbmVlZGVkIGluIG9yZGVyIGZvciBjYXB0dXJlVGltZSB0byBiZQorICAgICAg
Ly8gcG9wdWxhdGVkLiBVc2UgdGhlIHNhbWUgc291cmNlIGluIGJvdGggZGlyZWN0aW9ucy4KKyAg
ICAgIGdGaXJzdENvbm5lY3Rpb24uYWRkVHJhY2sodHJhY2ssIGxvY2FsU3RyZWFtKTsKKyAgICAg
IGdTZWNvbmRDb25uZWN0aW9uLmFkZFRyYWNrKHRyYWNrLCBsb2NhbFN0cmVhbSk7CisgICAgfSk7
CisKKyAgICBnRmlyc3RDb25uZWN0aW9uLmNyZWF0ZU9mZmVyKCkudGhlbihvbk9mZmVyQ3JlYXRl
ZCwgZmFpbGVkKCdjcmVhdGVPZmZlcicpKTsKKworICAgIHZhciB2aWRlb1RhZyA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdsb2NhbC12aWV3Jyk7CisgICAgdmlkZW9UYWcuc3JjT2JqZWN0ID0g
bG9jYWxTdHJlYW07CisgIH07CisKKyAgdmFyIG9uT2ZmZXJDcmVhdGVkID0gdGVzdC5zdGVwX2Z1
bmMoZnVuY3Rpb24ob2ZmZXIpIHsKKyAgICBnRmlyc3RDb25uZWN0aW9uLnNldExvY2FsRGVzY3Jp
cHRpb24ob2ZmZXIpOworCisgICAgLy8gVGhpcyB3b3VsZCBub3JtYWxseSBnbyBhY3Jvc3MgdGhl
IGFwcGxpY2F0aW9uJ3Mgc2lnbmFsaW5nIHNvbHV0aW9uLgorICAgIC8vIEluIG91ciBjYXNlLCB0
aGUgInNpZ25hbGluZyIgaXMgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uLgorICAgIHJlY2VpdmVDYWxs
KG9mZmVyLnNkcCk7CisgIH0pOworCisgIGZ1bmN0aW9uIHJlY2VpdmVDYWxsKG9mZmVyU2RwKSB7
CisgICAgdmFyIHBhcnNlZE9mZmVyID0gbmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7IHR5cGU6
ICdvZmZlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNkcDogb2ZmZXJTZHAgfSk7CisgICAgZ1NlY29uZENvbm5lY3Rpb24uc2V0UmVtb3RlRGVz
Y3JpcHRpb24ocGFyc2VkT2ZmZXIpOworCisgICAgZ1NlY29uZENvbm5lY3Rpb24uY3JlYXRlQW5z
d2VyKCkudGhlbihvbkFuc3dlckNyZWF0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZhaWxlZCgnY3JlYXRlQW5zd2VyJykpOworICB9OworCisgIHZhciBvbkFuc3dlckNy
ZWF0ZWQgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihhbnN3ZXIpIHsKKyAgICBnU2Vjb25kQ29u
bmVjdGlvbi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisKKyAgICAvLyBTaW1pbGFybHks
IHRoaXMgd291bGQgZ28gb3ZlciB0aGUgYXBwbGljYXRpb24ncyBzaWduYWxpbmcgc29sdXRpb24u
CisgICAgaGFuZGxlQW5zd2VyKGFuc3dlci5zZHApOworICB9KTsKKworICBmdW5jdGlvbiBoYW5k
bGVBbnN3ZXIoYW5zd2VyU2RwKSB7CisgICAgdmFyIHBhcnNlZEFuc3dlciA9IG5ldyBSVENTZXNz
aW9uRGVzY3JpcHRpb24oeyB0eXBlOiAnYW5zd2VyJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNkcDogYW5zd2VyU2RwIH0pOworICAgIGdGaXJz
dENvbm5lY3Rpb24uc2V0UmVtb3RlRGVzY3JpcHRpb24ocGFyc2VkQW5zd2VyKTsKKyAgfTsKKwor
ICB2YXIgb25JY2VDYW5kaWRhdGVUb0ZpcnN0ID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICAvLyBJZiBldmVudC5jYW5kaWRhdGUgaXMgbnVsbCA9IG5vIG1vcmUgY2FuZGlk
YXRlcy4KKyAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7CisgICAgICBnU2Vjb25kQ29ubmVjdGlv
bi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKKyAgICB9CisgIH0pOworCisgIHZh
ciBvbkljZUNhbmRpZGF0ZVRvU2Vjb25kID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7CisgICAgICBnRmlyc3RDb25uZWN0aW9uLmFk
ZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOworICAgIH0KKyAgfSk7CisKKyAgdmFyIG9u
UmVtb3RlVHJhY2sgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgeworICAgIHZhciB2
aWRlb1RhZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW1vdGUtdmlldycpOworICAgIGlm
ICghdmlkZW9UYWcuc3JjT2JqZWN0KSB7CisgICAgICB2aWRlb1RhZy5zcmNPYmplY3QgPSBldmVu
dC5zdHJlYW1zWzBdOworICAgIH0KKyAgfSk7CisKKyAgLy8gUmV0dXJucyBhIHN1aXRhYmxlIGVy
cm9yIGNhbGxiYWNrLgorICBmdW5jdGlvbiBmYWlsZWQoZnVuY3Rpb25fbmFtZSkgeworICAgIHJl
dHVybiB0ZXN0LnVucmVhY2hlZF9mdW5jKCdXZWJSVEMgY2FsbGVkIGVycm9yIGNhbGxiYWNrIGZv
ciAnICsgZnVuY3Rpb25fbmFtZSk7CisgIH0KKworICAvLyBUaGlzIGZ1bmN0aW9uIHN0YXJ0cyB0
aGUgdGVzdC4KKyAgdGVzdC5zdGVwKGZ1bmN0aW9uKCkgeworICAgIGdldE5vaXNlU3RyZWFtKHsg
dmlkZW86IHRydWUsIGF1ZGlvOiB0cnVlIH0pCisgICAgICAudGhlbih0ZXN0LnN0ZXBfZnVuYyhn
ZXROb2lzZVN0cmVhbU9rQ2FsbGJhY2spLCBmYWlsZWQoJ2dldE5vaXNlU3RyZWFtJykpOworICB9
KTsKKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRl
by1mcmFtZS1jYWxsYmFjay5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2suaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNDQwNDE0M2ZhNDA4ZWJiYjhmNDljYzMxODBlMDY1ZDIwMGZmYTRhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2suaHRtbApAQCAtMCwwICsx
LDE1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzx0aXRsZT5UZXN0IHRoZSBiYXNpY3Mg
b2YgdGhlIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKSBBUEkuPC90aXRsZT4KKzxi
b2R5PjwvYm9keT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL21lZGlhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
Cit2YXIgdGVzdFZpZGVvID0geworICB1cmw6IGdldFZpZGVvVVJJKCcvbWVkaWEvbW92aWVfNScp
LAorICBoZWlnaHQ6IDI0MCwKKyAgd2lkdGg6IDMyMCwKK30KKwordmFyIGFsdFRlc3RWaWRlbyA9
IHsKKyAgdXJsOiBnZXRWaWRlb1VSSSgnL21lZGlhL2NvdW50aW5nJyksCisgIGhlaWdodDogMjQw
LAorICB3aWR0aDogMzIwLAorfQorCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQg
dmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQodmlkZW8pOworCisgICAgbGV0IGlkID0gdmlkZW8ucmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFjaygKKyAgICAgIHQuc3RlcF9mdW5jX2RvbmUoKHRpbWUsIG1ldGFkYXRhKSA9
PiB7CisgICAgICAgIGFzc2VydF90cnVlKHRpbWUgPiAwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhtZXRhZGF0YS5oZWlnaHQsIHRlc3RWaWRlby5oZWlnaHQpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKG1ldGFkYXRhLndpZHRoLCB0ZXN0VmlkZW8ud2lkdGgpOworICAgICAgfSkKKyAgICApOwor
CisgICAgYXNzZXJ0X3RydWUoaWQgPiAwKTsKKworICAgIHZpZGVvLnNyYyA9IHRlc3RWaWRlby51
cmw7CisgICAgdmlkZW8ucGxheSgpOworCit9LCAnVGVzdCB3ZSBjYW4gcmVnaXN0ZXIgYSB2aWRl
by5yVkZDIGNhbGxiYWNrLicpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQg
dmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQodmlkZW8pOworCisgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxs
YmFjaygKKyAgICAgIHQuc3RlcF9mdW5jKHZpZGVvX25vdyA9PiB7CisgICAgICAgIC8vIFF1ZXVl
IGEgY2FsbCB0byB3aW5kb3cuckFGLCBhbmQgbWFrZSBzdXJlIGl0IGlzIGV4ZWN1dGVkIHdpdGhp
biB0aGUKKyAgICAgICAgLy8gc2FtZSB0dXJuIG9mIHRoZSBldmVudCBsb29wICh3aXRoIHRoZSBz
YW1lICd0aW1lJyBwYXJhbWV0ZXIpLgorICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZy
YW1lKCB0LnN0ZXBfZnVuY19kb25lKCB3aW5kb3dfbm93ID0+IHsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHZpZGVvX25vdywgd2luZG93X25vdyk7CisgICAgICAgIH0pKTsKKyAgICAgIH0pCisg
ICAgKTsKKworICAgIHZpZGVvLnNyYyA9IHRlc3RWaWRlby51cmw7CisgICAgdmlkZW8ucGxheSgp
OworCit9LCAnVGVzdCB2aWRlby5yVkZDIGNhbGxiYWNrcyBydW4gYmVmb3JlIHdpbmRvdy5yQUYg
Y2FsbGJhY2tzLicpOworCisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIGxldCB2aWRl
byA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICBsZXQgaWQgPSB2aWRlby5yZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrKAorICAgICAgdC5zdGVwX2Z1bmMoXyA9PiB7CisgICAgICAgIGFzc2VydF91bnJl
YWNoZWQoIkNhbmNlbGxlZCBjYWxsYmFja3Mgc2hvdWxkbid0IGJlIGV4ZWN1dGVkIikKKyAgICAg
IH0pCisgICAgKTsKKworICAgIHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayhpZCk7CisK
KyAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKAorICAgICAgdC5zdGVwX2Z1bmMo
XyA9PiB7CisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIHRoZSBvdGhlciBjYWxsYmFjayBzaG91
bGRuJ3QgaGF2ZSBmaXJlZCwgYnV0CisgICAgICAgIC8vIGdpdmUgaXQgc29tZSBtb3JlIHRpbWUg
YW5kIHJlYWxseSBtYWtlIHN1cmUgaXQgZG9lc24ndCwgYnkgZ29pbmcKKyAgICAgICAgLy8gdGhy
b3VnaHQgdGhlIGV2ZW50IGxvb3Agb25jZSBtb3JlLgorICAgICAgICB0LnN0ZXBfdGltZW91dCgo
KSA9PiB7IHQuZG9uZSgpOyB9LCAwKTsKKyAgICAgIH0pCisgICAgKTsKKworICAgIHZpZGVvLnNy
YyA9IHRlc3RWaWRlby51cmw7CisgICAgdmlkZW8ucGxheSgpOworfSwgJ1Rlc3Qgd2UgY2FuIGNh
bmNlbCBhIHZpZGVvLnJWRkMgcmVxdWVzdC4nKTsKKwordGVzdChmdW5jdGlvbih0KSB7CisgICAg
bGV0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKKworICAgIC8vIHJlcXVlc3RWaWRlb0ZyYW1lQ2Fs
bGJhY2soKSBleHBlY3RzIDEgZnVuY3Rpb24gYXMgYSBwYXJhbWV0ZXIuCisgICAgYXNzZXJ0X3Ro
cm93c19qcyhUeXBlRXJyb3IsIF8gPT4geyB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNr
KCkgfSApOworICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBfID0+IHsgdmlkZW8ucmVx
dWVzdFZpZGVvRnJhbWVDYWxsYmFjaygwKSB9KTsKKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVF
cnJvciwgXyA9PiB7IHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soImZvbyIpIH0pOwor
CisgICAgLy8gY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKCkgZXhwZWN0cyAxIG51bWJlciBhcyBh
IHBhcmFtZXRlcgorICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBfID0+IHsgdmlkZW8u
Y2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKCkgfSApOworCisgICAgLy8gSW52YWxpZCBjYWxscyBh
cmUganVzdCBuby1vcHMKKyAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soXyA9PiB7
fSk7CisgICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKE5hTik7CisgICAgdmlkZW8u
Y2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKCJmb28iKTsKKyAgICB2aWRlby5jYW5jZWxWaWRlb0Zy
YW1lQ2FsbGJhY2soMTIzNDUpOworICAgIHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjaygt
MSk7CisKK30sICdUZXN0IGludmFsaWQgY2FsbHMgdG8gdGhlIHZpZGVvLnJWRkMgQVBJLicpOwor
Citwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24odCkgeworICAgIGxldCB2aWRlbyA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZCh2aWRlbyk7CisKKyAgICBsZXQgZmlyc3Rfd2lkdGggPSAwOworICAgIGxldCBmaXJzdF9oZWln
aHQgPSAwOworCisgICAgdmlkZW8uc3JjID0gdGVzdFZpZGVvLnVybDsKKworICAgIGF3YWl0IHZp
ZGVvLnBsYXkoKTsKKworICAgIC8vIFN3aXRjaCB0byBhbmQgZnJvbSBhIHNlY29uZCB2aWRlbywg
YW5kIG1ha2Ugc3VyZSB3ZSBnZXQgclZGQyBjYWxscyBhdAorICAgIC8vIGVhY2ggc3RlcC4KKyAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgbGV0IG9u
UmV0dXJuVG9PcmlnaW5hbFZpZGVvID0gdC5zdGVwX2Z1bmMoKG5vdywgbWV0YWRhdGEpID0+IHsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhmaXJzdF93aWR0aCwgbWV0YWRhdGEud2lkdGgpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKGZpcnN0X2hlaWdodCwgbWV0YWRhdGEuaGVpZ2h0KTsKKworICAg
ICAgICByZXNvbHZlKCk7CisgICAgICB9KTsKKworICAgICAgbGV0IG9uQWx0VmlkZW9GaXJzdEZy
YW1lID0gdC5zdGVwX2Z1bmMoKG5vdywgbWV0YWRhdGEpID0+IHsKKyAgICAgICAgLy8gVGhlIHZp
ZGVvcyBoYXZlIGRpZmZlcmVudCBzaXplcywgYW5kIHNob3VsZG4ndCBtYXRjaC4KKyAgICAgICAg
YXNzZXJ0X25vdF9lcXVhbHMoZmlyc3Rfd2lkdGgsIG1ldGFkYXRhLndpZHRoKTsKKyAgICAgICAg
YXNzZXJ0X25vdF9lcXVhbHMoZmlyc3RfaGVpZ2h0LCBtZXRhZGF0YS5oZWlnaHQpOworCisgICAg
ICAgIC8vIFN3aXRoIGJhY2sgdG8gdGhlIG9yaWdpbmFsIHZpZGVvLgorICAgICAgICB2aWRlby5y
ZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKG9uUmV0dXJuVG9PcmlnaW5hbFZpZGVvKTsKKyAgICAg
ICAgdmlkZW8uc3JjID0gdGVzdFZpZGVvLnVybDsKKyAgICAgIH0pOworCisgICAgICBsZXQgb25G
aXJzdEZyYW1lID0gdC5zdGVwX2Z1bmMoKG5vdywgbWV0YWRhdGEpID0+IHsKKyAgICAgICAgZmly
c3Rfd2lkdGggPSBtZXRhZGF0YS53aWR0aDsKKyAgICAgICAgZmlyc3RfaGVpZ2h0ID0gbWV0YWRh
dGEuaGVpZ2h0OworCisgICAgICAgIC8vIENhbGxiYWNrcyBzaG91bGQgcGVyc2lzdCBhZnRlciBj
aGFuZ2luZyB0aGUgc291cmNlIHRvIHRoZSBhbHQgdmlkZW8uCisgICAgICAgIHZpZGVvLnJlcXVl
c3RWaWRlb0ZyYW1lQ2FsbGJhY2sob25BbHRWaWRlb0ZpcnN0RnJhbWUpOworICAgICAgICB2aWRl
by5zcmMgPSBhbHRUZXN0VmlkZW8udXJsOworICAgICAgfSkKKworICAgICAgdmlkZW8ucmVxdWVz
dFZpZGVvRnJhbWVDYWxsYmFjayhvbkZpcnN0RnJhbWUpOworICAgIH0pOworfSwgJ1Rlc3Qgdmlk
ZW8uclZGQyBkb2VzIG5vdCBzdG9wIHdoZW4gc3dpdGNoaW5nIHNvdXJjZXMuJyk7CisKKzwvc2Ny
aXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3czYy1pbXBvcnQubG9nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmExNmYxNWZkYjM3NjNmZDNkNDc2YTZhYmE1ODI2NTkzYzhjODFjZGMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyNiBAQAorVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitE
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL01FVEEu
eW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL1JFQURNRS5tZAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy5qcworL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNh
bGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1j
YWxsYmFjay1kb20uaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmluZy14ci1z
ZXNzaW9uLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5o
dG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1l
LWNhbGxiYWNrLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA4OGY3OTkyOWZjOWMyYjVjM2JiZTgxZTM4NzA5YWE4MGVmZjJjNTZiLi5l
MTA2OWVkZWNmOTdlMmVkNzc2Yjg3N2Q0Njg2MzU1MDk2MTdjZmVkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMzgsNiArMTM4LDE1IEBA
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbmFtZS1jbG9ha2luZy10b3Atbm8t
Y25hbWUtc3ViLTFwLWNuYW1lLmh0bWwKIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9jbmFtZS1jbG9ha2luZy10b3Atbm8tY25hbWUtc3ViLTNwLWNuYW1lLmh0bWwgWyBQYXNzIF0K
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbmFtZS1jbG9ha2luZy10b3Atbm8t
Y25hbWUtc3ViLW5vLWNuYW1lLmh0bWwgWyBQYXNzIF0KIAoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy92aWRlby1ydmZjIFsgUGFzcyBdCisjIFRpbWluZyBvdXQgdGVzdHMgdW50aWwg
d2UgYWRkIHJlZ3VsYXIgdmlkZW8gc3RyZWFtaW5nIGJhY2tlbmQgc3VwcG9ydC4KK2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNh
bGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxi
YWNrLWRvbS5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5o
dHRwcy5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVv
LXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sIFsgU2tpcCBd
CitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRl
by1mcmFtZS1jYWxsYmFjay1yZXBlYXRpbmcuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2su
aHRtbCBbIFNraXAgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVu
ZCBwbGF0Zm9ybS1zcGVjaWZpYyBkaXJlY3Rvcmllcy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCAxNGJjZDczYWVjMTVjYjhlNDU5MzBjOTBjYjBkYjcxYmFjN2U2NmE3Li41ZTM1
ZTgxYTU2MjNjYWRlOWMwMmU5YTMxMjYwNDZkNWQwN2UwOTU2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMTcsNiArMTE3LDE1IEBAIGZh
c3QvZm9ybXMvZmlsZS9lbnRyaWVzLWFwaS9pbWFnZS1uby10cmFuc2NvZGUtb3Blbi1wYW5lbC5o
dG1sIFsgUGFzcyBdCiAKIHN0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLXRyYW5zYWN0aW9uLWN5
Y2xlLmh0bWwgWyBQYXNzIF0KIAoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRl
by1ydmZjIFsgUGFzcyBdCisjIFRpbWluZyBvdXQgdGVzdHMgdW50aWwgd2UgYWRkIHJlZ3VsYXIg
dmlkZW8gc3RyZWFtaW5nIGJhY2tlbmQgc3VwcG9ydC4KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14
ci1zZXNzaW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS5odG1sIFsg
U2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVz
dC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5odHRwcy5odG1sIFsgU2tp
cCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFj
ay1yZXBlYXRpbmcuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2suaHRtbCBbIFNraXAgXQor
CiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBwbGF0Zm9ybS1zcGVj
aWZpYyBkaXJlY3Rvcmllcy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZjLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZjLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40NTI4Nzc5Nzc5NzU1YjI1NzZhZmQ4MzNmYzExNDdlOTc1OTM0ZTFmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3BlZXJDb25uZWN0aW9uLXJ2ZmMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgVmFsaWRhdGUgY2FsbGJhY2tz
IGFuZCBtZXRhZGF0YSBmb3IgcGVlciBjb25uZWN0aW9uIHRyYWNrcworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy5odG1sIGIvTGF5b3V0VGVzdHMv
d2VicnRjL3BlZXJDb25uZWN0aW9uLXJ2ZmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDc5Mzk4MjY4MGVh
NjgyYWUwOGI0YjJlNzdjYjkzOGEwMzBlMWYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2VicnRjL3BlZXJDb25uZWN0aW9uLXJ2ZmMuaHRtbApAQCAtMCwwICsxLDU5IEBACis8IWRv
Y3R5cGUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFJlcXVlc3RWaWRlb0ZyYW1lQ2Fs
bGJhY2tFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICAgIDx0aXRsZT5UZXN0aW5nIHJ2ZmMgb24gcGVlciBj
b25uZWN0aW9uIHN0cmVhbXM8L3RpdGxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSJyb3V0aW5lcy5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAg
ICAgICA8dmlkZW8gaWQ9InZpZGVvIiBhdXRvcGxheT0iIj48L3ZpZGVvPgorICAgICAgICA8c2Ny
aXB0PgorYXN5bmMgZnVuY3Rpb24gZ3JhYk5leHRNZXRhZGF0YSh2aWRlbykKK3sKKyAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBjb25zdCBpZGVu
dGlmaWVyID0gdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygobm93LCBtZXRhZGF0YSkg
PT4geworICAgICAgICAgICAgcmVzb2x2ZShtZXRhZGF0YSk7CisgICAgICAgIH0pOworICAgICAg
ICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiVGltZWQgb3V0IG1ldGFkYXRhIiksIDUwMDApOwor
ICAgIH0pOworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBs
b2NhbFN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2
aWRlbzogeyB3aWR0aDogNjQwLCBoZWlnaHQ6IDQ4MCB9IH0pOworICAgIGNvbnN0IHJlbW90ZVN0
cmVhbSA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAg
Y3JlYXRlQ29ubmVjdGlvbnMoKGZpcnN0Q29ubmVjdGlvbikgPT4geworICAgICAgICAgICAgcGMx
ID0gZmlyc3RDb25uZWN0aW9uOworICAgICAgICAgICAgY29uc3Qgc2VuZGVyID0gZmlyc3RDb25u
ZWN0aW9uLmFkZFRyYWNrKGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0sIGxvY2FsU3Ry
ZWFtKTsKKyAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgIHBj
MiA9IHNlY29uZENvbm5lY3Rpb247CisgICAgICAgICAgICBzZWNvbmRDb25uZWN0aW9uLm9udHJh
Y2sgPSAodHJhY2tFdmVudCkgPT4geworICAgICAgICAgICAgICAgIHJlc29sdmUodHJhY2tFdmVu
dC5zdHJlYW1zWzBdKTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH0pOworICAgICAgICBzZXRU
aW1lb3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwgNTAwMCk7CisgICAgfSk7CisK
KyAgICB2aWRlby5zcmNPYmplY3QgPSByZW1vdGVTdHJlYW07CisgICAgYXdhaXQgdmlkZW8ucGxh
eSgpOworCisgICAgbGV0IG1ldGFkYXRhID0gYXdhaXQgZ3JhYk5leHRNZXRhZGF0YSh2aWRlbyk7
CisgICAgYXNzZXJ0X2VxdWFscyhtZXRhZGF0YS53aWR0aCwgNjQwKTsKKyAgICBhc3NlcnRfZXF1
YWxzKG1ldGFkYXRhLmhlaWdodCwgNDgwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFk
YXRhLnByZXNlbnRlZEZyYW1lcywgMCk7CisgICAgY29uc3QgcHJlc2VudGVkRnJhbWVzID0gbWV0
YWRhdGEucHJlc2VudGVkRnJhbWVzOworCisgICAgYXdhaXQgbG9jYWxTdHJlYW0uZ2V0VmlkZW9U
cmFja3MoKVswXS5hcHBseUNvbnN0cmFpbnRzKHt3aWR0aDogMzIwfSk7CisKKyAgICBsZXQgY291
bnRlciA9IDA7CisgICAgd2hpbGUgKCsrY291bnRlciA8IDEwMCAmJiBtZXRhZGF0YS53aWR0aCAh
PT0gMzIwKSB7CisgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91
dChyZXNvbHZlLCA1MCkpOworICAgICAgICBtZXRhZGF0YSA9IGF3YWl0IGdyYWJOZXh0TWV0YWRh
dGEodmlkZW8pOworICAgIH0KKyAgICBhc3NlcnRfZXF1YWxzKG1ldGFkYXRhLndpZHRoLCAzMjAp
OworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEucHJlc2VudGVkRnJhbWVzLCBwcmVz
ZW50ZWRGcmFtZXMpOworfSwgIlZhbGlkYXRlIGNhbGxiYWNrcyBhbmQgbWV0YWRhdGEgZm9yIHBl
ZXIgY29ubmVjdGlvbiB0cmFja3MiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441855</attachid>
            <date>2021-10-20 00:26:05 -0700</date>
            <delta_ts>2021-10-20 04:05:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231803-20211020092602.patch</filename>
            <type>text/plain</type>
            <size>97088</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdjZDU5NmY4NzJlYzA5NDQ1ZGQyMmVh
ZDhhOTZhOTk1MDc3MmI0N2MuLjZmMTg2OGRlOWFjMjM3ZDc5MWQ5NjRjOTUxY2NiMGY2M2EwNTdm
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTAtMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrIEFQSSBhbmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwMwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0
cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorCiAyMDIxLTEw
LTE1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXQg
TWFuYWdlZCBOb3RpZmljYXRpb25zOiBTa2VsZXRvbiBOb3RpZmljYXRpb25Qcm92aWRlci4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA4MWI3OGQ4ZWU0Mjc0YzdhYWU1MWVlNGJmMzJmZDQ0M2E5NGQ3M2JkLi4wNTNh
YjM5YzBiMTMwNWEwZTg3NzBlZTIxYzkwMThlNDI4ODUwNzYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTQgQEAKKzIwMjEtMTAtMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSBh
bmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwMworCisgICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBVcGRhdGUgV2ViSURMIHRvIGV4cG9zZSBo
dHRwczovL3dpY2cuZ2l0aHViLmlvL3ZpZGVvLXJ2ZmMvIEFQSS4KKyAgICAgICAgUHV0IHRoZW0g
YmVoaW5kIGEgcnVudGltZSBmbGFnLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgYWxn
b3JpdGhtcywgaW5jbHVkaW5nIHRoZSBpbnRlZ3JhdGlvbiB3aXRoIHRoZSAndXBkYXRlIHRoZSBy
ZW5kZXJpbmcnIGFsZ29yaXRobS4KKyAgICAgICAgQWRkIGluaXRpYWwgc3VwcG9ydCBmb3Igdmlk
ZW8gZWxlbWVudHMgYmFja2VkIGJ5IE1lZGlhU3RyZWFtIGNvbnRlbnQuCisgICAgICAgIFdlIGV4
cG9zZSBhIGxpbWl0ZWQgc2V0IG9mIG1ldGFkYXRhIGN1cnJlbnRseSwgZm9sbG93LXVwIHBhdGNo
ZXMgc2hvdWxkIGFkZCBzdXBwb3J0IGZvciBvdGhlciB2aWRlbyBiYWNrZW5kcyBhbmQgbW9yZSBt
ZXRhZGF0YS4KKyAgICAgICAgVGhpcyBzdXBwb3J0IHNob3VsZCBzdGlsbCBlbmFibGUgdG8gb3B0
aW1pemUgYSBiaXQgTWVkaWFTdHJlYW1UcmFjayAtPiBjYW52YXMgcGlwZWxpbmVzLgorCisgICAg
ICAgIFRlc3RzOiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ydmZjLmh0bWwKKyAgICAg
ICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxo
YXJuZXNzLndpbmRvdy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUt
eHItc2Vzc2lvbi5odHRwcy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kb20u
aHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRl
by1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0
cHMuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92
aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwuaHRtbAorICAg
ICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3Jl
cXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLmh0bWwKKyAgICAgICAgICAgICAg
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVv
LWZyYW1lLWNhbGxiYWNrLXdlYnJ0Yy5odHRwcy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1j
YWxsYmFjay5odG1sCisgICAgICAgICAgICAgICB3ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy5o
dG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogSGVhZGVy
cy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQrUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
ay5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHA6CisgICAg
ICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9WaWRlb0ZyYW1l
TWV0YWRhdGEuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2Fs
bGJhY2suaDogQWRkZWQuCisgICAgICAgICogaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNr
LmlkbDogQWRkZWQuCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKiBwYWdlL1Bh
Z2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9WaWRlb0ZyYW1lTWV0YWRhdGEuaDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOgorCiAyMDIxLTEwLTE5ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBHdWFyYW50ZWUgb3JkZXIgb2YgV2ViU29j
a2V0IGV2ZW50cyBpbiBjYXNlIG9mIGJlaW5nIHJlc3VtZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOTU5MjJkZjUz
Mjg1NWE1YWZhMjA3ZjNlYmI1MzAxZWQzMzJmNjZiOC4uMWE0MmIzZWU5YTcyYzdhNWJhZWJkMjQ4
OGQ0MDk5NDM1M2VhNWRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0xMC0xOSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIHJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sgQVBJIGFuZCBNZWRpYVN0cmVhbVRyYWNrLWJh
c2VkIGJhY2tlbmQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMxODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgIEFkZCB0ZW1wb3JhcnkgZ2V0dGVyL3NldHRlciBvZiBydmZjIGZlYXR1cmUgZmxh
Zy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAg
ICAgKFdLUHJlZmVyZW5jZXNTZXRSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZCk6Cisg
ICAgICAgIChXS1ByZWZlcmVuY2VzR2V0UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmg6CisKIDIwMjEt
MTAtMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEd1YXJh
bnRlZSBvcmRlciBvZiBXZWJTb2NrZXQgZXZlbnRzIGluIGNhc2Ugb2YgYmVpbmcgcmVzdW1lZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBkOWUzNmMxOWVkMzlmYTI5ODc3ZDM2ZGQ1
YTFlZDgzN2MyNDUwYmU1Li42OWQ0MmNhMTE2MGI4NDliNDQxMTllYzY3NjMyYjNmMGExZWM1Nzlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTExNSw2ICsxMTE1LDE4IEBAIFJl
cXVlc3RTdWJtaXRFbmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQog
CitSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1h
blJlYWRhYmxlTmFtZTogIlJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2siCisgIGh1bWFuUmVhZGFi
bGVEZXNjcmlwdGlvbjogIkVuYWJsZSBSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSIKKyAg
ZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisg
ICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJDb3JlOgorICAgICAgZGVm
YXVsdDogZmFsc2UKKwogIyBGSVhNRTogVGhpcyBpcyBvbiBieSBkZWZhdWx0IGluIFdlYktpdDIu
IFBlcmhhcHMgd2Ugc2hvdWxkIGNvbnNpZGVyIHR1cm5pbmcgaXQgb24gZm9yIFdlYktpdExlZ2Fj
eSBhcyB3ZWxsLgogUmVzaXplT2JzZXJ2ZXJFbmFibGVkOgogICB0eXBlOiBib29sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IDFmMTQwMjBkZGM0N2M5N2Q3OGE3ODcwMDRiMzczMGYwZjk1NDBiZDEu
LmU4ZGQzYzgzZGQ3OTA0YjYyODJjNWE0ZDcxY2RjMTU4MjUxYjI5NGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC0xMDM3LDYgKzEwMzcsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxF
UwogICAgIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5pZGwKICAgICBodG1sL0hUTUxVTGlzdEVsZW1l
bnQuaWRsCiAgICAgaHRtbC9IVE1MVW5rbm93bkVsZW1lbnQuaWRsCisgICAgaHRtbC9IVE1MVmlk
ZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRsCiAgICAgaHRtbC9IVE1MVmlk
ZW9FbGVtZW50LmlkbAogICAgIGh0bWwvSW1hZ2VCaXRtYXAuaWRsCiAgICAgaHRtbC9JbWFnZUJp
dG1hcE9wdGlvbnMuaWRsCkBAIC0xMDUyLDYgKzEwNTMsOCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZH
X0lETF9GSUxFUwogICAgIGh0bWwvVGltZVJhbmdlcy5pZGwKICAgICBodG1sL1VSTFNlYXJjaFBh
cmFtcy5pZGwKICAgICBodG1sL1ZhbGlkaXR5U3RhdGUuaWRsCisgICAgaHRtbC9WaWRlb0ZyYW1l
TWV0YWRhdGEuaWRsCisgICAgaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbAogICAg
IGh0bWwvVm9pZENhbGxiYWNrLmlkbAogCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzQ29tcG9zaXRp
bmcuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dAppbmRleCAzNDliYjA0YzdkMmI0NWM4NWIzMzUzNzAxYzk3ZTRkZjE3ZmIyNmI3Li5lMmRjZjQz
YzFhYTE1NjRjYjc2NDM5MjlkZTczYmYxMjJkMGZhNDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwMDksNiArMTAwOSw3IEBAICQo
UFJPSkVDVF9ESVIpL2h0bWwvSFRNTExpbmtFbGVtZW50LmlkbAogJChQUk9KRUNUX0RJUikvaHRt
bC9IVE1MTWFwRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTE1hcnF1ZWVFbGVt
ZW50LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0
LmlkbAorJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWVkaWFFbGVtZW50K1JlcXVlc3RWaWRlb0Zy
YW1lQ2FsbGJhY2suaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaWRs
CiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxNZW51RWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIp
L2h0bWwvSFRNTE1lbnVJdGVtRWxlbWVudC5pZGwKQEAgLTEwNDgsNiArMTA0OSw3IEBAICQoUFJP
SkVDVF9ESVIpL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwv
SFRNTFRyYWNrRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTFVMaXN0RWxlbWVu
dC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTFVua25vd25FbGVtZW50LmlkbAorJChQUk9K
RUNUX0RJUikvaHRtbC9IVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2su
aWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaWRsCiAkKFBST0pFQ1Rf
RElSKS9odG1sL0ltYWdlQml0bWFwLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9JbWFnZUJpdG1h
cE9wdGlvbnMuaWRsCkBAIC0xMDYzLDYgKzEwNjUsOCBAQCAkKFBST0pFQ1RfRElSKS9odG1sL1Rl
eHRNZXRyaWNzLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9UaW1lUmFuZ2VzLmlkbAogJChQUk9K
RUNUX0RJUikvaHRtbC9VUkxTZWFyY2hQYXJhbXMuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL1Zh
bGlkaXR5U3RhdGUuaWRsCiskKFBST0pFQ1RfRElSKS9odG1sL1ZpZGVvRnJhbWVNZXRhZGF0YS5p
ZGwKKyQoUFJPSkVDVF9ESVIpL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5pZGwKICQo
UFJPSkVDVF9ESVIpL2h0bWwvVm9pZENhbGxiYWNrLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9X
ZWJLaXRNZWRpYUtleUVycm9yLmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9jYW52YXMvQU5HTEVJ
bnN0YW5jZWRBcnJheXMuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDk3NjIzMTRhYjJlZDZiMzI4ODViN2Q2MzI2MmRkMjEyMjhk
MzYzYmEuLjhjYWZhMWU4NGM5Nzk0Y2VkOTgzMmI1ZGI5ZDc4OWE2YmQwM2Q5MDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC05OTUs
NiArOTk1LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNIVE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0LmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlh
RWxlbWVudCtSZW1vdGVQbGF5YmFjay5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudCtSZW1vdGVQbGF5YmFjay5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZWRpYUVsZW1l
bnQrUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTSFRNTE1lZGlhRWxlbWVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZW51RWxlbWVudC5jcHAKQEAgLTEwNzUsNiAr
MTA3Nyw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
SFRNTFVua25vd25FbGVtZW50LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNIVE1MVW5rbm93bkVsZW1lbnQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVmlkZW9FbGVtZW50K1BpY3R1cmVJblBpY3R1
cmUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hU
TUxWaWRlb0VsZW1lbnQrUGljdHVyZUluUGljdHVyZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxWaWRlb0VsZW1lbnQrUmVxdWVzdFZpZGVvRnJh
bWVDYWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFZpZGVvRWxlbWVu
dC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRN
TFZpZGVvRWxlbWVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0hhc2hDaGFuZ2VFdmVudC5jcHAKQEAgLTIzMDcsNiArMjMxMSwxMCBAQCAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZhbGlkaXR5U3RhdGUuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZhbGlkaXR5
U3RhdGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNW
aWRlb0NvbmZpZ3VyYXRpb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1ZpZGVvQ29uZmlndXJhdGlvbi5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZpZGVvRnJhbWVNZXRhZGF0YS5jcHAKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmlkZW9GcmFtZU1ldGFkYXRh
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmlkZW9G
cmFtZVJlcXVlc3RDYWxsYmFjay5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZpZGVvUGxheWJhY2tRdWFsaXR5LmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWaWRlb1Bs
YXliYWNrUXVhbGl0eS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1ZpZGVvVHJhY2srTWVkaWFTb3VyY2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCAxNTk5NGFiYzIyMWE3NjU4NDljNGE1OTBjNDk2ZGYxNjAyOTRhYTE0Li5jMTIx
N2EzYzU0Y2ZmZGFkNjA4ZmY5MzZmMDAyMDk3YmEzNWE1NzQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTg5Nyw2ICs4OTcsNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAg
ICQoV2ViQ29yZSkvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9o
dG1sL0hUTUxVbmtub3duRWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVmlk
ZW9FbGVtZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL0hUTUxWaWRlb0VsZW1lbnQrUmVx
dWVzdFZpZGVvRnJhbWVDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9JbWFnZUJp
dG1hcC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9JbWFnZUJpdG1hcE9wdGlvbnMuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2h0bWwvSW1hZ2VEYXRhLmlkbCBcCkBAIC05MTEsNiArOTEyLDggQEAg
SlNfQklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvVGltZVJhbmdlcy5pZGwg
XAogICAgICQoV2ViQ29yZSkvaHRtbC9VUkxTZWFyY2hQYXJhbXMuaWRsIFwKICAgICAkKFdlYkNv
cmUpL2h0bWwvVmFsaWRpdHlTdGF0ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9WaWRlb0Zy
YW1lTWV0YWRhdGEuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RD
YWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9Wb2lkQ2FsbGJhY2suaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2h0bWwvV2ViS2l0TWVkaWFLZXlFcnJvci5pZGwgXAogICAgICQoV2ViQ29y
ZSkvaHRtbC9jYW52YXMvQU5HTEVJbnN0YW5jZWRBcnJheXMuaWRsIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CmluZGV4IGIwNjU3ZTFjYzlkZTU5YjA5Mjk4NTlkNDkxNzJlZjE5Y2ZkOGU2MzEuLjEyMTJkYTRh
NjM0YjJiMWI5ZWJlMWRiY2YxZTRiYmUxMzM2YWUxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAt
NzU4LDYgKzc1OCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAg
ICBodG1sL1VSTERlY29tcG9zaXRpb24uaAogICAgIGh0bWwvVVJMUmVnaXN0cnkuaAogICAgIGh0
bWwvVmFsaWRpdHlTdGF0ZS5oCisgICAgaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmgK
ICAgICBodG1sL1ZvaWRDYWxsYmFjay5oCiAKICAgICBodG1sL2NhbnZhcy9JbWFnZUJpdG1hcFJl
bmRlcmluZ0NvbnRleHRTZXR0aW5ncy5oCkBAIC0xMTgxLDYgKzExODIsNyBAQCBzZXQoV2ViQ29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vVXNlckFnZW50LmgKICAg
ICBwbGF0Zm9ybS9Vc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmgKICAgICBwbGF0Zm9ybS9W
YWxpZGF0aW9uQnViYmxlLmgKKyAgICBwbGF0Zm9ybS9WaWRlb0ZyYW1lTWV0YWRhdGEuaAogICAg
IHBsYXRmb3JtL1dlYkdMU3RhdGVUcmFja2VyLmgKICAgICBwbGF0Zm9ybS9XaWRnZXQuaAogICAg
IHBsYXRmb3JtL1dpbmRvd3NLZXlib2FyZENvZGVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMTNmNjEy
MTg1ODc3OTMyZTVkMjdhMjMwMzg3MTlhYmIzMjRmODI0ZC4uY2U5NjBkNTA1NjhjM2Y0OGU5OGJm
ZWFhZWI0MTA5YjRjY2Q0MjdmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTM3MjcsNiArMzcyNyw4IEBA
IEpTVlRUUmVnaW9uLmNwcAogSlNWVFRSZWdpb25MaXN0LmNwcAogSlNWYWxpZGl0eVN0YXRlLmNw
cAogSlNWaWRlb0NvbmZpZ3VyYXRpb24uY3BwCitKU1ZpZGVvRnJhbWVNZXRhZGF0YS5jcHAKK0pT
VmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5jcHAKIEpTVmlkZW9QbGF5YmFja1F1YWxpdHkuY3Bw
CiBKU1ZpZGVvVHJhY2suY3BwCiBKU1ZpZGVvVHJhY2tMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE3MmJjZmU2MTlm
YjAyMGUxZWNlZmZkYjZlMmU2MTM0ODQyMGQ3MTcuLjBmZWMwYjExODU0MTJlZDRmZjg4ZWJhNTc5
NTA0MDczMDY0NTExZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMTgsNiArMTIxOCw4IEBACiAJCTQxRDI4RDBEMjEzOUUw
NTgwMEY0MjA2RiAvKiBMaWJXZWJSVENTdGF0c0NvbGxlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUQyOEQwQjIxMzlFMDFEMDBGNDIwNkYg
LyogTGliV2ViUlRDU3RhdHNDb2xsZWN0b3IuY3BwICovOyB9OwogCQk0MUQ0MUM2NzIyNTY4NzRG
MDA2OTc5NDIgLyogU2VydmljZVdvcmtlckludGVybmFscy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRDQxQzY1MjI1Njg1OTIwMDY5Nzk0MiAvKiBT
ZXJ2aWNlV29ya2VySW50ZXJuYWxzLm1tICovOyB9OwogCQk0MURFN0M3QzIyMkRBMTQzMDA1MzJC
NjUgLyogU3RvcmFnZVF1b3RhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDFERTdDN0IyMjJEQTEzRTAwNTMyQjY1IC8qIFN0b3JhZ2VRdW90
YU1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk0MURFRUZCMDI3MTlCMjkwMDBDQjhENzQgLyogVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFj
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFERUVG
QUMyNzE5QjI4ODAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0MURFRUZCNjI3MTlC
QTFBMDBDQjhENzQgLyogVmlkZW9GcmFtZU1ldGFkYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURFRUZCNDI3MTlCQTE5MDBDQjhENzQgLyogVmlk
ZW9GcmFtZU1ldGFkYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNDFERUZDQjYxRTU2QzFCRDAwMEQ5RTVGIC8qIEpTRE9NTWFwTGlrZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFERUZDQjQxRTU2
QzFCOTAwMEQ5RTVGIC8qIEpTRE9NTWFwTGlrZS5oICovOyB9OwogCQk0MUUxMkU5RjI0RkU3NEUy
MDA5M0ZGQjQgLyogV2ViU29ja2V0SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFMTJFOUQyNEZFNzRFMjAwOTNGRkI0IC8qIFdlYlNv
Y2tldElkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0MUUxQjFEMTBGRjU5ODY5MDA1NzZCM0IgLyogQWJzdHJhY3RXb3JrZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTFCMUNCMEZG
NTk4NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5oICovOyB9OwpAQCAtODI5Niw2ICs4Mjk4
LDExIEBACiAJCTQxRDZCRDk4MjUxQjNBREEwMDU1QTdCNyAvKiBIVE1MTWVkaWFFbGVtZW50K0F1
ZGlvT3V0cHV0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSAiSFRNTE1lZGlhRWxlbWVudCtB
dWRpb091dHB1dC5pZGwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MURFN0M3QTIy
MkRBMTNEMDA1MzJCNjUgLyogU3RvcmFnZVF1b3RhTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlUXVvdGFNYW5hZ2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFERTdDN0IyMjJEQTEzRTAwNTMyQjY1IC8qIFN0b3JhZ2VR
dW90YU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZVF1
b3RhTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MURFRUZBQzI3MTlC
Mjg4MDBDQjhENzQgLyogVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxREVFRkFFMjcxOUIyODkwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNr
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDFERUVGQUYyNzE5QjI4OTAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVNZXRh
ZGF0YS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gVmlkZW9GcmFtZU1ldGFkYXRhLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDFERUVGQjEyNzE5QjJCRTAwQ0I4RDc0IC8qIEhUTUxWaWRlb0VsZW1lbnQr
UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gIkhUTUxWaWRlb0VsZW1lbnQrUmVx
dWVzdFZpZGVvRnJhbWVDYWxsYmFjay5pZGwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MURFRUZCNDI3MTlCQTE5MDBDQjhENzQgLyogVmlkZW9GcmFtZU1ldGFkYXRhLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnJhbWVNZXRhZGF0YS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MURFRkNCMjFFNTZDMUI5MDAwRDlFNUYgLyogSlNET01C
aW5kaW5nSW50ZXJuYWxzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRo
ID0gSlNET01CaW5kaW5nSW50ZXJuYWxzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MURFRkNCMzFFNTZDMUI5MDAwRDlFNUYgLyogSlNET01NYXBMaWtlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NTWFwTGlrZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxREVGQ0I0MUU1NkMxQjkwMDBEOUU1RiAvKiBKU0RPTU1hcExp
a2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01NYXBMaWtlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDIyNiw2ICsyNDIzMyw3IEBACiAJCQkJMEYy
NkE3QUEyMDU0RUM1QTAwOTBBMTQxIC8qIEhUTUxVbmtub3duRWxlbWVudC5jcHAgKi8sCiAJCQkJ
QUQ0OTkxNDExOEYwODE1MTAwQkYwMDkyIC8qIEhUTUxVbmtub3duRWxlbWVudC5oICovLAogCQkJ
CUFENDk5MTQyMThGMDgxNTEwMEJGMDA5MiAvKiBIVE1MVW5rbm93bkVsZW1lbnQuaWRsICovLAor
CQkJCTQxREVFRkIxMjcxOUIyQkUwMENCOEQ3NCAvKiBIVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RW
aWRlb0ZyYW1lQ2FsbGJhY2suaWRsICovLAogCQkJCUU0NDYxMzk4MENENjMzMTAwMEZBREE3NSAv
KiBIVE1MVmlkZW9FbGVtZW50LmNwcCAqLywKIAkJCQlFNDQ2MTM5OTBDRDYzMzEwMDBGQURBNzUg
LyogSFRNTFZpZGVvRWxlbWVudC5oICovLAogCQkJCUU0NDYxMzlBMENENjMzMTAwMEZBREE3NSAv
KiBIVE1MVmlkZW9FbGVtZW50LmlkbCAqLywKQEAgLTI0MzQ2LDYgKzI0MzU0LDkgQEAKIAkJCQlG
NUExNTQyNjEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuaCAqLywKIAkJCQkx
NUM3NzA4QTEwMEQzQzZBMDA1QkEyNjcgLyogVmFsaWRpdHlTdGF0ZS5oICovLAogCQkJCTE1Qzc3
MDg5MTAwRDNDNkEwMDVCQTI2NyAvKiBWYWxpZGl0eVN0YXRlLmlkbCAqLywKKwkJCQk0MURFRUZB
RjI3MTlCMjg5MDBDQjhENzQgLyogVmlkZW9GcmFtZU1ldGFkYXRhLmlkbCAqLywKKwkJCQk0MURF
RUZBQzI3MTlCMjg4MDBDQjhENzQgLyogVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oICovLAor
CQkJCTQxREVFRkFFMjcxOUIyODkwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNr
LmlkbCAqLywKIAkJCQlFNDQ2MTNCNDBDRDYzNDRFMDBGQURBNzUgLyogVm9pZENhbGxiYWNrLmgg
Ki8sCiAJCQkJRTQ0NjEzQTAwQ0Q2MzMxMDAwRkFEQTc1IC8qIFZvaWRDYWxsYmFjay5pZGwgKi8s
CiAJCQkJMkQxOTMyMTcxREE2NEUxOTAwQTU0QTA4IC8qIFdlYktpdE1lZGlhS2V5RXJyb3IuaCAq
LywKQEAgLTI4NDgwLDYgKzI4NDkxLDcgQEAKIAkJCQlBM0FGOUQ4MjIwMzI1MzI0MDA2Q0FEMDYg
LyogVXNlckFnZW50LmggKi8sCiAJCQkJNzFDOTE2MDcxRDE0ODNBMzAwQUNBNDdEIC8qIFVzZXJJ
bnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaCAqLywKIAkJCQk4M0M0NUI4RDFEQzJCNjdDMDA4ODcx
QkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oICovLAorCQkJCTQxREVFRkI0MjcxOUJBMTkwMENCOEQ3
NCAvKiBWaWRlb0ZyYW1lTWV0YWRhdGEuaCAqLywKIAkJCQk1MTVGNzk1MTFDRkNBM0M3MDBDQ0VE
OTMgLyogV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcCAqLywKIAkJCQk1MTVGNzk1MjFDRkNB
M0M3MDBDQ0VEOTMgLyogV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmggKi8sCiAJCQkJODM5QTJG
MkIxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmNwcCAqLywKQEAgLTM2MDI2
LDYgKzM2MDM4LDggQEAKIAkJCQlERjRFMzhFMDI1Mjc5NTk1MDAyQTc0ODEgLyogVmVyc2lvbkNo
ZWNrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBMjU3MTUxMjkzQzAxMDAwN0EyNjNEIC8qIFZl
cnRpY2FsUG9zaXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRUVGM0IyNTc5OUZB
MTAwNjU2M0JCIC8qIFZpZGVvQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFE
RUVGQjYyNzE5QkExQTAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVNZXRhZGF0YS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDFERUVGQjAyNzE5QjI5MDAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTUyQjBENEMwMUM1N0ZENjYwMDc3Q0U1MyAvKiBW
aWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0ZCQzRB
RjQxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MkIwRDRDMjFDNTdGRjkxMDA3N0NFNTMgLyogVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlTWFjLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDcyNDJiYzIzZDI3NWFkZGFkZjUwZDljNjI5NjM3YTcxZTk2MTI0MDIuLjUyNTA2MjlmMmNj
NmE0YWFkZDY2MTJlYjVkMjY1YThiMWU0OGRkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtMTE3LDYgKzExNyw3IEBACiAjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVW5rbm93bkVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVz
LmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJIYXNoQ2hhbmdlRXZlbnQu
aCIKQEAgLTY3MzksNiArNjc0MCwzMiBAQCB2b2lkIERvY3VtZW50OjpzZXJ2aWNlUmVxdWVzdEFu
aW1hdGlvbkZyYW1lQ2FsbGJhY2tzKCkKICAgICAgICAgbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRy
b2xsZXItPnNlcnZpY2VSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja3MoZG9tV2luZG93KCkt
PmZyb3plbk5vd1RpbWVzdGFtcCgpKTsKIH0KIAordm9pZCBEb2N1bWVudDo6c2VydmljZVJlcXVl
c3RWaWRlb0ZyYW1lQ2FsbGJhY2tzKCkKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgaWYgKCFk
b21XaW5kb3coKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBpc1NlcnZpY2luZ1JlcXVl
c3RWaWRlb0ZyYW1lQ2FsbGJhY2tzID0gZmFsc2U7CisgICAgZm9yRWFjaE1lZGlhRWxlbWVudChb
bm93ID0gZG9tV2luZG93KCktPmZyb3plbk5vd1RpbWVzdGFtcCgpLCAmaXNTZXJ2aWNpbmdSZXF1
ZXN0VmlkZW9GcmFtZUNhbGxiYWNrc10oYXV0byYgZWxlbWVudCkgeworICAgICAgICBpZiAoIWlz
PEhUTUxWaWRlb0VsZW1lbnQ+KGVsZW1lbnQpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIGF1dG8mIHZpZGVvRWxlbWVudCA9IGRvd25jYXN0PEhUTUxWaWRlb0VsZW1lbnQ+KGVsZW1l
bnQpOworICAgICAgICBpZiAodmlkZW9FbGVtZW50LnNob3VsZFNlcnZpY2VSZXF1ZXN0VmlkZW9G
cmFtZUNhbGxiYWNrcygpKSB7CisgICAgICAgICAgICBpc1NlcnZpY2luZ1JlcXVlc3RWaWRlb0Zy
YW1lQ2FsbGJhY2tzID0gdHJ1ZTsKKyAgICAgICAgICAgIHZpZGVvRWxlbWVudC5zZXJ2aWNlUmVx
dWVzdFZpZGVvRnJhbWVDYWxsYmFja3Mobm93KTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAg
aWYgKCFpc1NlcnZpY2luZ1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tzKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoYXV0byogcGFnZSA9IHRoaXMtPnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+
c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoUmVuZGVyaW5nVXBkYXRlU3RlcDo6VmlkZW9GcmFtZUNh
bGxiYWNrcyk7CisjZW5kaWYKK30KKwogdm9pZCBEb2N1bWVudDo6d2luZG93U2NyZWVuRGlkQ2hh
bmdlKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKIHsKICAgICBpZiAoUmVuZGVyVmlldyog
dmlldyA9IHJlbmRlclZpZXcoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA1NDU3NjQzNWMy
MzY1Yjc4MDIwOWZlZTE4YTEwMmYyNmI5ZTAxZjE5Li45YzM5M2ZiNWVlNjk4ZDkzMjUyMWFmOWYw
MDg2ZmFlMjQxYTk1MzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTExNCw2ICsxMTE0LDcg
QEAgcHVibGljOgogICAgIHZvaWQgcmVzdW1lU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyQ2Fs
bGJhY2tzKCk7CiAKICAgICB2b2lkIHNlcnZpY2VSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFj
a3MoKTsKKyAgICB2b2lkIHNlcnZpY2VSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrcygpOwogCiAg
ICAgdm9pZCB3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDNiY2M2ODlkZjNiN2FjMGFlYWIx
MDg1YjI3ZDEzZmNmOWRkNDQyYjUuLjFjMWIyZGMxNWFhMGI2OTMyMTc4YTI5MzBjYThmMmI4OTQw
ZjUzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0zOSw2ICsz
OSw3IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2Vy
LmgiCiAjaW5jbHVkZSAiTWVkaWFVbmlxdWVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUmVkdWNl
ZFJlc29sdXRpb25TZWNvbmRzLmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrQ2xpZW50LmgiCiAjaW5j
bHVkZSAiVmlkZW9UcmFja0NsaWVudC5oIgogI2luY2x1ZGUgIlZpc2liaWxpdHlDaGFuZ2VDbGll
bnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudCtS
ZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrLmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTI2
NGRjNmNhODczZTAxNjZiODQ3NWNkYjQ1YWJkMGYxZTkyMmRkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2Fs
bGJhY2suaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9VklERU8sCisgICAgRW5hYmxlZEJ5
U2V0dGluZz1SZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZAorXSBwYXJ0aWFsIGludGVy
ZmFjZSBIVE1MVmlkZW9FbGVtZW50IHsKKyAgICB1bnNpZ25lZCBsb25nIHJlcXVlc3RWaWRlb0Zy
YW1lQ2FsbGJhY2soVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjayBjYWxsYmFjayk7CisgICAgdW5k
ZWZpbmVkIGNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayh1bnNpZ25lZCBsb25nIGhhbmRsZSk7Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKaW5kZXggMDRjMDJiOGM4
OWJiNGMwZWJkZGNjYTQ1MDI4YmJmZDAwZGE3OWI2Zi4uNTA4MDU3Nzc5NzQ2ZmQzNGQ3YmNhNmFk
ZTEwYWY3MmM4MDRmZWY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlk
ZW9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQu
Y3BwCkBAIC01NzcsNiArNTc3LDU2IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZXhpdFRvRnVs
bHNjcmVlbk1vZGVXaXRob3V0QW5pbWF0aW9uSWZQb3NzaWJsZShIVE1MTWVkaWFFCiB9CiAjZW5k
aWYKIAordW5zaWduZWQgSFRNTFZpZGVvRWxlbWVudDo6cmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
ayhSZWY8VmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjaz4mJiBjYWxsYmFjaykKK3sKKyAgICBhdXRv
IGlkZW50aWZpZXIgPSArK21fbmV4dFZpZGVvRnJhbWVSZXF1ZXN0SW5kZXg7CisgICAgbV92aWRl
b0ZyYW1lUmVxdWVzdHMuYXBwZW5kKG1ha2VVbmlxdWVSZWY8VmlkZW9GcmFtZVJlcXVlc3Q+KGlk
ZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKSk7CisKKyAgICBpZiAoYXV0byogcGFnZSA9IGRv
Y3VtZW50KCkucGFnZSgpKQorICAgICAgICBwYWdlLT5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZShS
ZW5kZXJpbmdVcGRhdGVTdGVwOjpWaWRlb0ZyYW1lQ2FsbGJhY2tzKTsKKworICAgIHJldHVybiBp
ZGVudGlmaWVyOworfQorCit2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmNhbmNlbFZpZGVvRnJhbWVD
YWxsYmFjayh1bnNpZ25lZCBpZGVudGlmaWVyKQoreworICAgIGF1dG8gaW5kZXggPSBtX3ZpZGVv
RnJhbWVSZXF1ZXN0cy5maW5kTWF0Y2hpbmcoW2lkZW50aWZpZXJdKGF1dG8mIHJlcXVlc3QpIHsg
cmV0dXJuIHJlcXVlc3QtPmlkZW50aWZpZXIgPT0gaWRlbnRpZmllcjsgfSk7CisgICAgaWYgKGlu
ZGV4ID09IG5vdEZvdW5kKQorICAgICAgICByZXR1cm47CisgICAgaWYgKG1faXNSdW5uaW5nVmlk
ZW9GcmFtZVJlcXVlc3RzKSB7CisgICAgICAgIG1fdmlkZW9GcmFtZVJlcXVlc3RzW2luZGV4XS0+
Y2FuY2VsbGVkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX3ZpZGVvRnJh
bWVSZXF1ZXN0cy5yZW1vdmUoaW5kZXgpOworfQorCit2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNl
cnZpY2VSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrcyhSZWR1Y2VkUmVzb2x1dGlvblNlY29uZHMg
bm93KQoreworICAgIGlmICghcGxheWVyKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8g
dmlkZW9GcmFtZU1ldGFkYXRhID0gcGxheWVyKCktPnZpZGVvRnJhbWVNZXRhZGF0YSgpOworICAg
IGlmICghdmlkZW9GcmFtZU1ldGFkYXRhKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWYgcHJv
dGVjdGVkVGhpcyB7ICp0aGlzIH07CisKKyAgICAvLyBXZSBzdG9yZSB0aGUgc2l6ZSBiZWZvcmUg
Y2FsbGluZyBjYWxsYmFja3MgYXMgd2UgZG8gbm90IHdhbnQgdG8gY2FsbCBuZXdseSBhZGRlZCBj
YWxsYmFja3MuCisgICAgYXV0byBjYWxsYmFja0NvdW50ID0gbV92aWRlb0ZyYW1lUmVxdWVzdHMu
c2l6ZSgpOworCisgICAgbV9pc1J1bm5pbmdWaWRlb0ZyYW1lUmVxdWVzdHMgPSB0cnVlOworICAg
IGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBjYWxsYmFja0NvdW50OyArK2luZGV4KSB7
CisgICAgICAgIGF1dG8mIHJlcXVlc3QgPSBtX3ZpZGVvRnJhbWVSZXF1ZXN0c1tpbmRleF07Cisg
ICAgICAgIGlmICghcmVxdWVzdC0+Y2FuY2VsbGVkKSB7CisgICAgICAgICAgICByZXF1ZXN0LT5j
YWxsYmFjay0+aGFuZGxlRXZlbnQobm93LnZhbHVlKCksICp2aWRlb0ZyYW1lTWV0YWRhdGEpOwor
ICAgICAgICAgICAgcmVxdWVzdC0+Y2FuY2VsbGVkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0K
KyAgICBtX2lzUnVubmluZ1ZpZGVvRnJhbWVSZXF1ZXN0cyA9IGZhbHNlOworCisgICAgbV92aWRl
b0ZyYW1lUmVxdWVzdHMucmVtb3ZlQWxsTWF0Y2hpbmcoW10oYXV0byYgY2FsbGJhY2spIHsgcmV0
dXJuIGNhbGxiYWNrLT5jYW5jZWxsZWQ7IH0pOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAppbmRleCAxMDk5MWYwNWYxNDc0ZWVlNWViMDFlZTc4
MzIzMzkxMjBmNmUzNzJmLi5iNGUxNmQ2MzBhYWMzMWZkNmY4MTg3Y2U1YjhjNTFlM2ZmNzI5YWI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaApAQCAtMjksNiArMjksNyBA
QAogCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRh
YmxlLmgiCisjaW5jbHVkZSAiVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oIgogI2luY2x1ZGUg
PG1lbW9yeT4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsNiArMzksNyBAQCBjbGFzcyBI
VE1MSW1hZ2VMb2FkZXI7CiBjbGFzcyBJbWFnZUJ1ZmZlcjsKIGNsYXNzIFJlbmRlclZpZGVvOwog
Y2xhc3MgUGljdHVyZUluUGljdHVyZU9ic2VydmVyOworY2xhc3MgVmlkZW9GcmFtZVJlcXVlc3RD
YWxsYmFjazsKIAogZW51bSBjbGFzcyBQaXhlbEZvcm1hdCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNz
IFJlbmRlcmluZ01vZGUgOiBib29sOwpAQCAtMTA5LDYgKzExMSwxMiBAQCBwdWJsaWM6CiAKICAg
ICBSZW5kZXJWaWRlbyogcmVuZGVyZXIoKSBjb25zdDsKIAorICAgIGJvb2wgc2hvdWxkU2Vydmlj
ZVJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gIW1fdmlkZW9GcmFt
ZVJlcXVlc3RzLmlzRW1wdHkoKTsgfQorICAgIHZvaWQgc2VydmljZVJlcXVlc3RWaWRlb0ZyYW1l
Q2FsbGJhY2tzKFJlZHVjZWRSZXNvbHV0aW9uU2Vjb25kcyk7CisKKyAgICB1bnNpZ25lZCByZXF1
ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKFJlZjxWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrPiYmKTsK
KyAgICB2b2lkIGNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayh1bnNpZ25lZCk7CisKIHByaXZhdGU6
CiAgICAgSFRNTFZpZGVvRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBi
b29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKQEAgLTE0Nyw2ICsxNTUsMjIgQEAgcHJpdmF0ZToKICNp
ZiBFTkFCTEUoUElDVFVSRV9JTl9QSUNUVVJFX0FQSSkKICAgICBQaWN0dXJlSW5QaWN0dXJlT2Jz
ZXJ2ZXIqIG1fcGljdHVyZUluUGljdHVyZU9ic2VydmVyIHsgbnVsbHB0ciB9OwogI2VuZGlmCisK
KyAgICBzdHJ1Y3QgVmlkZW9GcmFtZVJlcXVlc3QgeworICAgICAgICBXVEZfTUFLRV9TVFJVQ1Rf
RkFTVF9BTExPQ0FURUQ7CisgICAgICAgIFZpZGVvRnJhbWVSZXF1ZXN0KHVuc2lnbmVkIGlkZW50
aWZpZXIsIFJlZjxWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrPiYmIGNhbGxiYWNrKQorICAgICAg
ICAgICAgOiBpZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgICAgICAgICAsIGNhbGxiYWNrKFdU
Rk1vdmUoY2FsbGJhY2spKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICB1bnNpZ25l
ZCBpZGVudGlmaWVyIHsgMCB9OworICAgICAgICBSZWY8VmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFj
az4gY2FsbGJhY2s7CisgICAgICAgIGJvb2wgY2FuY2VsbGVkIHsgZmFsc2UgfTsKKyAgICB9Owor
ICAgIFZlY3RvcjxVbmlxdWVSZWY8VmlkZW9GcmFtZVJlcXVlc3Q+PiBtX3ZpZGVvRnJhbWVSZXF1
ZXN0czsKKyAgICB1bnNpZ25lZCBtX25leHRWaWRlb0ZyYW1lUmVxdWVzdEluZGV4IHsgMCB9Owor
ICAgIGJvb2wgbV9pc1J1bm5pbmdWaWRlb0ZyYW1lUmVxdWVzdHMgeyBmYWxzZSB9OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9W
aWRlb0ZyYW1lTWV0YWRhdGEuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WaWRlb0ZyYW1lTWV0
YWRhdGEuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjYTk1ZThmMDNkMzA1N2FjMmU4MGM0YTVkMmZhMjMwNTZh
Zjc4YmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVN
ZXRhZGF0YS5pZGwKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCit0eXBlZGVmIGRvdWJsZSBET01IaWdoUmVzVGltZVN0YW1wOwor
CitbCisgICAgQ29uZGl0aW9uYWw9VklERU8sCisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitd
IGRpY3Rpb25hcnkgVmlkZW9GcmFtZU1ldGFkYXRhIHsKKyAgICAvLyBGSVhNRTogZXhwb3NlIHBy
ZXNlbnRhdGlvblRpbWUgYW5kIGV4cGVjdGVkRGlzcGxheVRpbWUuCisgICAgLy8gcmVxdWlyZWQg
RE9NSGlnaFJlc1RpbWVTdGFtcCBwcmVzZW50YXRpb25UaW1lOworICAgIC8vIHJlcXVpcmVkIERP
TUhpZ2hSZXNUaW1lU3RhbXAgZXhwZWN0ZWREaXNwbGF5VGltZTsKKworICAgIHJlcXVpcmVkIHVu
c2lnbmVkIGxvbmcgd2lkdGg7CisgICAgcmVxdWlyZWQgdW5zaWduZWQgbG9uZyBoZWlnaHQ7Cisg
ICAgcmVxdWlyZWQgZG91YmxlIG1lZGlhVGltZTsKKworICAgIHJlcXVpcmVkIHVuc2lnbmVkIGxv
bmcgcHJlc2VudGVkRnJhbWVzOworICAgIGRvdWJsZSBwcm9jZXNzaW5nRHVyYXRpb247CisKKyAg
ICBET01IaWdoUmVzVGltZVN0YW1wIGNhcHR1cmVUaW1lOworICAgIERPTUhpZ2hSZXNUaW1lU3Rh
bXAgcmVjZWl2ZVRpbWU7CisgICAgdW5zaWduZWQgbG9uZyBydHBUaW1lc3RhbXA7Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lNGZhYjJjZDVkMDZjYTMwNzMxYTFhNjliNDk3YzI0NWFiYjBhNzIxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmgK
QEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFZJREVPKQorCisjaW5jbHVkZSAiQWN0aXZlRE9NQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJDYWxs
YmFja1Jlc3VsdC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgVmlkZW9GcmFtZU1l
dGFkYXRhOworCitjbGFzcyBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrIDogcHVibGljIFJlZkNv
dW50ZWQ8VmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjaz4sIHB1YmxpYyBBY3RpdmVET01DYWxsYmFj
ayB7CitwdWJsaWM6CisgICAgdXNpbmcgQWN0aXZlRE9NQ2FsbGJhY2s6OkFjdGl2ZURPTUNhbGxi
YWNrOworCisgICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVFdmVudChkb3Vi
bGUsIGNvbnN0IFZpZGVvRnJhbWVNZXRhZGF0YSYpID0gMDsKK307CisKK30KKworI2VuZGlmIC8v
IEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmlkZW9GcmFt
ZVJlcXVlc3RDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVSZXF1
ZXN0Q2FsbGJhY2suaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzZjdlMWIxYjkxMGQ4Mzk3ZTg0NzA0NzRiMDc4
MmE4OGExZTc3OWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVv
RnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCit0eXBlZGVmIGRvdWJsZSBET01IaWdoUmVz
VGltZVN0YW1wOworCitbCisgICAgQ29uZGl0aW9uYWw9VklERU8sCitdIGNhbGxiYWNrIFZpZGVv
RnJhbWVSZXF1ZXN0Q2FsbGJhY2sgPSB1bmRlZmluZWQoRE9NSGlnaFJlc1RpbWVTdGFtcCBub3cs
IFZpZGVvRnJhbWVNZXRhZGF0YSBtZXRhZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAwMDYx
M2ZhNjg3NmE2YmU2YTkyNjEzMzIxNjFlNDk2ODIyYWY0MTgyLi5kYTFhOWM4MjM0MzI5ZDM3YjJi
N2IwYmJiNjQzYjAxMDI5OTRjNTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE1ODUsNiArMTU4
NSwxMCBAQCB2b2lkIFBhZ2U6OnVwZGF0ZVJlbmRlcmluZygpCiAgICAgLy8gRklYTUU6IFJ1biB0
aGUgZnVsbHNjcmVlbiBzdGVwcy4KICAgICBtX3JlbmRlcmluZ1VwZGF0ZVJlbWFpbmluZ1N0ZXBz
Lmxhc3QoKS5yZW1vdmUoUmVuZGVyaW5nVXBkYXRlU3RlcDo6RnVsbHNjcmVlbik7CiAKKyAgICBy
dW5Qcm9jZXNzaW5nU3RlcChSZW5kZXJpbmdVcGRhdGVTdGVwOjpWaWRlb0ZyYW1lQ2FsbGJhY2tz
LCBbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CisgICAgICAgIGRvY3VtZW50LnNlcnZpY2VSZXF1
ZXN0VmlkZW9GcmFtZUNhbGxiYWNrcygpOworICAgIH0pOworCiAgICAgcnVuUHJvY2Vzc2luZ1N0
ZXAoUmVuZGVyaW5nVXBkYXRlU3RlcDo6QW5pbWF0aW9uRnJhbWVDYWxsYmFja3MsIFtdIChEb2N1
bWVudCYgZG9jdW1lbnQpIHsKICAgICAgICAgZG9jdW1lbnQuc2VydmljZVJlcXVlc3RBbmltYXRp
b25GcmFtZUNhbGxiYWNrcygpOwogICAgIH0pOwpAQCAtMzYyNiw2ICszNjMwLDcgQEAgV1RGOjpU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYgdHMsIFJlbmRlcmluZ1VwZGF0
ZVN0ZXAgc3RlcCkKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogICAgIGNhc2UgUmVuZGVy
aW5nVXBkYXRlU3RlcDo6U2Nyb2xsaW5nVHJlZVVwZGF0ZTogdHMgPDwgIlNjcm9sbGluZ1RyZWVV
cGRhdGUiOyBicmVhazsKICNlbmRpZgorICAgIGNhc2UgUmVuZGVyaW5nVXBkYXRlU3RlcDo6Vmlk
ZW9GcmFtZUNhbGxiYWNrczogdHMgPDwgIlZpZGVvRnJhbWVDYWxsYmFja3MiOyBicmVhazsKICAg
ICB9CiAgICAgcmV0dXJuIHRzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBlYzc3MTFmZTNiZGQ3OWY3
ZWFiMDMzMGYxYmUzYmUwZGNhYzA5ZmU3Li42MjFkMmVhMjQyYzdkOWZlYWQwOTk1MmNkOTgwMjY5
NTQwYTBiZTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMjE1LDYgKzIxNSw3IEBAIGVudW0gY2xhc3Mg
UmVuZGVyaW5nVXBkYXRlU3RlcCA6IHVpbnQxNl90IHsKICAgICBTY3JvbGxpbmdUcmVlVXBkYXRl
ICAgICAgICAgICAgID0gMSA8PCAxMywKICNlbmRpZgogICAgIEZsdXNoQXV0b2ZvY3VzQ2FuZGlk
YXRlcyAgICAgICAgPSAxIDw8IDE0LAorICAgIFZpZGVvRnJhbWVDYWxsYmFja3MgICAgICAgICAg
ICAgPSAxIDw8IDE1LAogfTsKIAogY29uc3RleHByIE9wdGlvblNldDxSZW5kZXJpbmdVcGRhdGVT
dGVwPiB1cGRhdGVSZW5kZXJpbmdTdGVwcyA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1ZpZGVvRnJhbWVNZXRhZGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
VmlkZW9GcmFtZU1ldGFkYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZkOWE0NzAwMjQ4ZDRkMjc4ZGNlMjc0
OTc4MzYwYTU3YmFmNTllYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1ZpZGVvRnJhbWVNZXRhZGF0YS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFTykKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdHJ1Y3QgVmlkZW9GcmFtZU1ldGFkYXRhIHsKKyAgICBkb3VibGUgcHJlc2VudGF0aW9uVGlt
ZSB7IDAgfTsKKyAgICBkb3VibGUgZXhwZWN0ZWREaXNwbGF5VGltZSB7IDAgfTsKKworICAgIHVu
c2lnbmVkIHdpZHRoIHsgMCB9OworICAgIHVuc2lnbmVkIGhlaWdodCB7IDAgfTsKKyAgICBkb3Vi
bGUgbWVkaWFUaW1lIHsgMCB9OworCisgICAgdW5zaWduZWQgcHJlc2VudGVkRnJhbWVzIHsgMCB9
OworICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBwcm9jZXNzaW5nRHVyYXRpb247CisKKyAgICBz
dGQ6Om9wdGlvbmFsPGRvdWJsZT4gY2FwdHVyZVRpbWU7CisgICAgc3RkOjpvcHRpb25hbDxkb3Vi
bGU+IHJlY2VpdmVUaW1lOworICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IHJ0cFRpbWVzdGFt
cDsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA4NGE3YTA3MjczMWMx
Mjc4OGFjZWNlYmMxMmVhNjg3Y2ViZGIwYzJmLi4wOWI3NTlhZjMyODQwN2EyYzY2NDNlNWJmODNi
MmFkMzgxOGI5NTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwCkBAIC0xNzEwLDYgKzE3MTAsMTEgQEAgTWVkaWFQbGF5ZXJJZGVudGlm
aWVyIE1lZGlhUGxheWVyOjppZGVudGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gbV9wcml2YXRl
LT5pZGVudGlmaWVyKCk7CiB9CiAKK3N0ZDo6b3B0aW9uYWw8VmlkZW9GcmFtZU1ldGFkYXRhPiBN
ZWRpYVBsYXllcjo6dmlkZW9GcmFtZU1ldGFkYXRhKCkKK3sKKyAgICByZXR1cm4gbV9wcml2YXRl
LT52aWRlb0ZyYW1lTWV0YWRhdGEoKTsKK30KKwogU3RyaW5nIE1lZGlhUGxheWVyOjplbGVtZW50
SWQoKSBjb25zdAogewogICAgIHJldHVybiBjbGllbnQoKS5tZWRpYVBsYXllckVsZW1lbnRJZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5k
ZXggOTcxMjY0OGNiYWFiZTc1OTllNjdkZjY1YWYyYzM1NmJmMjQxNjM1Zi4uMDQ4OGRmNTcxYjc5
NmNlMTM0YmZkZjExOTQwM2E4ZjE1YzBkMjU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAi
UGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSAiVmlkZW9GcmFtZU1ldGFkYXRhLmgiCiAjaW5jbHVkZSAi
VmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgpAQCAtNjc4LDYg
KzY3OSw4IEBAIHB1YmxpYzoKICAgICBNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllcigp
IGNvbnN0OwogICAgIGJvb2wgaGFzTWVkaWFFbmdpbmUoKSBjb25zdDsKIAorICAgIHN0ZDo6b3B0
aW9uYWw8VmlkZW9GcmFtZU1ldGFkYXRhPiB2aWRlb0ZyYW1lTWV0YWRhdGEoKTsKKwogcHJpdmF0
ZToKICAgICBNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCYpOwogICAgIE1lZGlhUGxheWVy
KE1lZGlhUGxheWVyQ2xpZW50JiwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlm
aWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgKaW5kZXggNmFiNDdiMTUzOGZmYzJmMjk0NGM4NGE5ZjQ0YzVjOGNiYjYw
MmNmNy4uODlhNmU4Y2VmZTk5MmJhYmRjY2Y5NGQwNTRmZDAxZTg1YjBkMWU4MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRl
LmgKQEAgLTMyMCw2ICszMjAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
UGF1c2VBdEhvc3RUaW1lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgcGxheUF0SG9zdFRpbWUoY29uc3QgTW9ub3RvbmljVGltZSYpIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIHBhdXNlQXRIb3N0VGltZShjb25zdCBNb25vdG9uaWNUaW1lJikg
eyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDxWaWRlb0ZyYW1l
TWV0YWRhdGE+IHZpZGVvRnJhbWVNZXRhZGF0YSgpIHsgcmV0dXJuIHsgfTsgfQogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRleCA2M2ZkOWVhOTNkNDdlMjQ3MjA2NzFhNGI2YzVm
NWRkZGY5ZGNhODM1Li4zOWRkZDAzZjVmNjZhZjdjMDE3MWQzMDA5MWQwZjI3ZjA3NzYxZTZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApAQCAtMTU5LDYgKzE1OSw3IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIHNldEJ1ZmZlcmluZ1BvbGljeShNZWRpYVBsYXllcjo6QnVmZmVyaW5nUG9saWN5
KSBvdmVycmlkZTsKICAgICB2b2lkIGF1ZGlvT3V0cHV0RGV2aWNlQ2hhbmdlZCgpIGZpbmFsOwor
ICAgIHN0ZDo6b3B0aW9uYWw8VmlkZW9GcmFtZU1ldGFkYXRhPiB2aWRlb0ZyYW1lTWV0YWRhdGEo
KSBmaW5hbDsKIAogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIGN1cnJlbnRSZWFkeVN0YXRl
KCk7CiAgICAgdm9pZCB1cGRhdGVSZWFkeVN0YXRlKCk7CkBAIC0yNzgsNiArMjc5LDkgQEAgcHJp
dmF0ZToKICAgICBib29sIG1faXNWaXNpYmxlSW5WaWV3UG9ydCB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2hhdmVTZWVuTWV0YWRhdGEgeyBmYWxzZSB9OwogICAgIGJvb2wgbV93YWl0aW5nRm9yRmly
c3RJbWFnZSB7IGZhbHNlIH07CisKKyAgICB1aW50NjRfdCBtX3NhbXBsZUNvdW50IHsgMCB9Owor
ICAgIHVpbnQ2NF90IG1fbGFzdFZpZGVvRnJhbWVNZXRhZGF0YVNhbXBsZUNvdW50IHsgMCB9Owog
fTsKICAgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQppbmRleCBkZDNhZjY0MTc3YTkz
Mzg5MmNiNzdmYTBjNDNiZDI2NTE1NmQ0MTQxLi5lOWQ0ZDFjZWJkMmExNGFmMjQ1YTIyZTc2MTJh
YTNkYjhlNjM5ZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCkBAIC0zMTYsNiArMzE2
LDggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnByb2Nlc3NO
ZXdWaWRlb1NhbXBsZShNZWRpYVNhbXBsZSYgc2EKICAgICAgICAgICAgIHVwZGF0ZVJlYWR5U3Rh
dGUoKTsKICAgICB9CiAKKyAgICArK21fc2FtcGxlQ291bnQ7CisKICAgICBpZiAobV9kaXNwbGF5
TW9kZSAhPSBMaXZlUHJldmlldyAmJiAhbV93YWl0aW5nRm9yRmlyc3RJbWFnZSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC0xMDg4LDYgKzEwOTAsMjIgQEAgV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpsb2dDaGFubmVsKCkgY29uc3QKICAgICByZXR1
cm4gTG9nTWVkaWE7CiB9CiAKK3N0ZDo6b3B0aW9uYWw8VmlkZW9GcmFtZU1ldGFkYXRhPiBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnZpZGVvRnJhbWVNZXRhZGF0YSgpCit7
CisgICAgaWYgKG1fc2FtcGxlQ291bnQgPT0gbV9sYXN0VmlkZW9GcmFtZU1ldGFkYXRhU2FtcGxl
Q291bnQpCisgICAgICAgIHJldHVybiB7IH07CisgICAgbV9sYXN0VmlkZW9GcmFtZU1ldGFkYXRh
U2FtcGxlQ291bnQgPSBtX3NhbXBsZUNvdW50OworCisgICAgVmlkZW9GcmFtZU1ldGFkYXRhIG1l
dGFkYXRhOworICAgIG1ldGFkYXRhLndpZHRoID0gbV9pbnRyaW5zaWNTaXplLndpZHRoKCk7Cisg
ICAgbWV0YWRhdGEuaGVpZ2h0ID0gbV9pbnRyaW5zaWNTaXplLmhlaWdodCgpOworICAgIG1ldGFk
YXRhLnByZXNlbnRlZEZyYW1lcyA9IG1fc2FtcGxlQ291bnQ7CisKKyAgICAvLyBGSVhNRTogSXQg
d291bGQgYmUgZ29vZCB0byBleHBvc2UgbW9yZSB2aWRlbyBmcmFtZSBtZXRhZGF0YS4KKworICAg
IHJldHVybiBtZXRhZGF0YTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggMjNkYWVhMDViZGI4NjZmODUx
MTJjODBmNDBiM2FiNjYwNDM3ODc4Zi4uYmVkODMxNmYzNzU4ZjkzMzMwMTRjMmZiZTJmMmQyNWMx
ODk1OWJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5jcHAKQEAgLTIyMjYsMyArMjIyNiwxMiBAQCBib29sIFdLUHJlZmVyZW5jZXNHZXRYU1NB
dWRpdG9yRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
dm9pZCBXS1ByZWZlcmVuY2VzU2V0UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQoreworICAgIHRvSW1w
bChwcmVmZXJlbmNlc1JlZiktPnNldFJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkKGVu
YWJsZWQpOworfQorCitib29sIFdLUHJlZmVyZW5jZXNHZXRSZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVy
biB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxl
ZCgpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlc1JlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNl
c1JlZi5oCmluZGV4IDJmMWRjMTU1OGRlYzE0NjgxYWQ4ZDBjMmZlYzZjMTBiMTJjMDAwOGIuLjI2
YjAwMmQ0OWY2MTUyYWFiYzJlMmIwNDhiYTM4NTlkMGI2NGNjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWYuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmgKQEAgLTM1NSw2ICszNTUs
MTAgQEAgV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFJlbW90ZVBsYXliYWNrRW5hYmxl
ZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2UKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5j
ZXNHZXRTaG91bGRVc2VTZXJ2aWNlV29ya2VyU2hvcnRUaW1lb3V0KFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXNSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFNob3VsZFVz
ZVNlcnZpY2VXb3JrZXJTaG9ydFRpbWVvdXQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1Jl
ZiwgYm9vbCBlbmFibGVkKTsKIAorLy8gRGVmYXVsdHMgdG8gZmFsc2UuCitXS19FWFBPUlQgYm9v
bCBXS1ByZWZlcmVuY2VzR2V0UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQoV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2Vz
U2V0UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4
MWZhMjMxNWMyNzk2MGVmYmJhZTJhYWRhNDUxZmE0M2Y3MGFhYTg5Li5kOThhY2ZjYTc0ODEwOGM4
Y2Y2NzUzMDA0ZmEyZTM4ODJjYmVlMDg2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMTAtMTkgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1
ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSBhbmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNr
ZW5kIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMTgwMworCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAg
ICBEaXNhYmxlIHJ2ZmMgb24gdGVzdHMgYnkgZGVmYXVsdCB1bnRpbCB3ZSBpbXBsZW1lbnQgcnZm
YyBmb3IgdXN1YWwgdmlkZW8gc3RyZWFtaW5nLgorICAgICAgICBXZWJSVEMgdGVzdHMgZW5hYmxl
IHJ2ZmMgdGhlbXNlbHZlcy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbToKKyAgICAgICAgKHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMpOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6
CisKIDIwMjEtMTAtMTQgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgVGVzdFdlYktpdEFQSS5Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5GcmF1ZFByZXZlbnRp
b24gaXMgYSBjb25zdGFudCB0aW1lb3V0CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0KaW5kZXggYzFmYjYxNTE5ZDE4NWI3MzhiZjNmNDA2ODg2Yjk3OGJlYzdjNjRi
Ni4uZmI2OTc4OTEwZGNkMTMwOGZhN2QwODExNThhOTE3NTgzYmFiYTQwNSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtODY2LDggKzg2NiwxMSBAQCBz
dGF0aWMgdm9pZCBzZXRXZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKFdlYlByZWZlcmVuY2Vz
ICpwcmVmZXJlbmNlcywgY29uc3QgVwogICAgICAgICBbcHJlZmVyZW5jZXMgX3Jlc2V0Rm9yVGVz
dGluZ107CiAKICAgICAgICAgaWYgKGVuYWJsZUFsbEV4cGVyaW1lbnRhbEZlYXR1cmVzKSB7Ci0g
ICAgICAgICAgICBmb3IgKFdlYkZlYXR1cmUgKmZlYXR1cmUgaW4gW1dlYlByZWZlcmVuY2VzIF9l
eHBlcmltZW50YWxGZWF0dXJlc10pCi0gICAgICAgICAgICAgICAgW3ByZWZlcmVuY2VzIF9zZXRF
bmFibGVkOllFUyBmb3JGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgZm9yIChXZWJGZWF0
dXJlICpmZWF0dXJlIGluIFtXZWJQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7
CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdlIGRpc2FibGUgcnZmYyBieSBkZWZhdWx0LiBF
bmFibGUgaXQgd2hlbiB0aGUgdmlkZW8gYmFja2VuZCBzdXBwb3J0IGlzIGdvb2QgZW5vdWdoLgor
ICAgICAgICAgICAgICAgIGF1dG8gZW5hYmxlZCA9IFtmZWF0dXJlLm5hbWUgaXNFcXVhbDpAIlJl
cXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2siXSA/IE5PIDogWUVTOworICAgICAgICAgICAgICAgIFtw
cmVmZXJlbmNlcyBfc2V0RW5hYmxlZDplbmFibGVkIGZvckZlYXR1cmU6ZmVhdHVyZV07CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocGVyc2lzdGVudFVzZXJTdHlsZVNo
ZWV0TG9jYXRpb24oKSkgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cAppbmRleCBmZWIyYTM5N2U0MmEzNjhjNDE3OWVjYjMxZDZkMTkyMDYzZjE5YTA3Li4zYmRlNDhl
MWNlNzViYTdhYTYwOTc0ODE4ZWI2MGY5ZTI4YzdjODVhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtODk2LDYgKzg5Niw5IEBAIHZvaWQgVGVzdENvbnRy
b2xsZXI6OnJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlv
bnMmIG9wdGlvCiAgICAgICAgIGlmIChlbmFibGVBbGxFeHBlcmltZW50YWxGZWF0dXJlcykKICAg
ICAgICAgICAgIFdLUHJlZmVyZW5jZXNFbmFibGVBbGxFeHBlcmltZW50YWxGZWF0dXJlcyhwcmVm
ZXJlbmNlcyk7CiAKKyAgICAgICAgLy8gRklYTUU6IFdlIGRpc2FibGUgcnZmYyBieSBkZWZhdWx0
LiBFbmFibGUgaXQgd2hlbiB0aGUgdmlkZW8gYmFja2VuZCBzdXBwb3J0IGlzIGdvb2QgZW5vdWdo
LgorICAgICAgICBXS1ByZWZlcmVuY2VzU2V0UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJs
ZWQocHJlZmVyZW5jZXMsIGZhbHNlKTsKKwogICAgICAgICBXS1ByZWZlcmVuY2VzUmVzZXRBbGxJ
bnRlcm5hbERlYnVnRmVhdHVyZXMocHJlZmVyZW5jZXMpOwogCiAgICAgICAgIFdLUHJlZmVyZW5j
ZXNTZXRQcm9jZXNzU3dhcE9uTmF2aWdhdGlvbkVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMu
c2hvdWxkRW5hYmxlUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24oKSk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWY0NGE0NDU2
OTEwOGJhZjM3NTNmZmE5NmQzM2JjMTgwNTQyY2E5Zi4uZDBhZjZkZTI4OTA1NWRiYTRiN2RkODk2
ZjM4YjQyYTE5OWQ0NmFlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTEwLTE5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
cmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayBBUEkgYW5kIE1lZGlhU3RyZWFtVHJhY2stYmFzZWQg
YmFja2VuZCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzE4MDMKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAg
ICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0
VXNlck1lZGlhLXJ2ZmMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlh
c3RyZWFtL2dldFVzZXJNZWRpYS1ydmZjLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2lvcy13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rl
c3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogd2VicnRjL3BlZXJDb25uZWN0aW9uLXJ2ZmMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy5o
dG1sOiBBZGRlZC4KKwogMjAyMS0xMC0xOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgR3VhcmFudGVlIG9yZGVyIG9mIFdlYlNvY2tldCBldmVudHMgaW4gY2Fz
ZSBvZiBiZWluZyByZXN1bWVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA2NzVk
YTk5MGIzZWMzNTVlMzAyYjY1MzkwOTkwNmNmNTJiMmNlMDlhLi4xZTExNzgwYjM4ODI3NWU4NWU2
ZjMyNmJkYTViN2NhMGZiNmFmZGEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMiBAQAorMjAyMS0xMC0xOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sg
QVBJIGFuZCBNZWRpYVN0cmVhbVRyYWNrLWJhc2VkIGJhY2tlbmQgc3VwcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxODAzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogcmVzb3VyY2VzL2ltcG9ydC1l
eHBlY3RhdGlvbnMuanNvbjoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZm
Yy9NRVRBLnltbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2
ZmMvUkVBRE1FLm1kOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8t
cnZmYy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2lu
ZG93LmpzOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9y
ZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
cmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0
LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJh
Y2stZG9tLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8t
cnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmluZy14ci1zZXNzaW9uLmh0dHBz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3Jl
cXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxi
YWNrLXBhcmFsbGVsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1
ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJh
bWUtY2FsbGJhY2stcmVwZWF0aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0
dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvdmlkZW8tcnZmYy93M2MtaW1wb3J0LmxvZzogQWRkZWQuCisKIDIwMjEtMTAtMTkgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEd1YXJhbnRlZSBvcmRl
ciBvZiBXZWJTb2NrZXQgZXZlbnRzIGluIGNhc2Ugb2YgYmVpbmcgcmVzdW1lZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggNjI5ZGU4ODc0NmE3ZDdiMjgzZTZhNDI3ZDFkM2MxMTRlOGVhOGFhMS4uMzY1
OTUyZDEyNzk5MjY5NTQ1NWM3OWRiZTA0NmY5OGMzYmExNzIwZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CkBAIC0yMTYsNiArMjE2LDkgQEAgZmFzdC9oYXJuZXNzL3Vpc2NyaXB0Y29udHJvbGxlciBbIFNr
aXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGlu
ZyBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL2Rv
Y3VtZW50LWxldmVsLXRvdWNobW92ZS1ldmVudC1saXN0ZW5lci1wYXNzaXZlLWJ5LWRlZmF1bHQu
dGVudGF0aXZlLmh0bWwgWyBTa2lwIF0KIAorIyBPbmx5IE1hYyBhbmQgaU9TIFdLMiBoYXZlIGFu
IGltcGxlbWVudGF0aW9uIHJpZ2h0IG5vdy4KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdmlkZW8tcnZmYyBbIFNraXAgXQorCiAjIFRoaXMgdGVzdCBvbmx5IG1ha2VzIHNlbnNlIG9u
IE1hYwogZmFzdC9hdHRhY2htZW50L2F0dGFjaG1lbnQtc3VidGl0bGUtcmVzaXplLmh0bWwgWyBT
a2lwIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2Vy
TWVkaWEtcnZmYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dl
dFVzZXJNZWRpYS1ydmZjLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjU5YjQyYmQ2NTM0OWVh
YjQyMzZiZTYzMGExMjdlZDUwZTc5NDljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtcnZmYy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw2IEBACisKKworUEFTUyBWYWxpZGF0ZSBjYWxsYmFja3MgY2FuIGJlIHVwZGF0ZWQgd2l0aGlu
IGEgY2FsbGJhY2sKK1BBU1MgVmFsaWRhdGUgY2FsbGJhY2tzIGFuZCBtZXRhZGF0YSBmb3IgZ2V0
VXNlck1lZGlhCitQQVNTIFZhbGlkYXRlIGNhbGxiYWNrcyBhcmUgY2FsbGVkIG9ubHkgb25jZQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1y
dmZjLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ydmZj
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDcwNzNjZmExNWYzYWRlOTlkYWNjNzZkMThjNmU2MGMyM2EyZjhm
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNl
ck1lZGlhLXJ2ZmMuaHRtbApAQCAtMCwwICsxLDg5IEBACis8IWRvY3R5cGUgaHRtbD48IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIFJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkPXRydWUg
XSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
CisgICAgICAgIDx0aXRsZT5UZXN0aW5nIHJ2ZmMgb24gZ2V0VXNlck1lZGlhIHN0cmVhbTwvdGl0
bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAg
IDx2aWRlbyBpZD0idmlkZW8iIGF1dG9wbGF5PSIiPjwvdmlkZW8+CisgICAgICAgIDxzY3JpcHQ+
Cithc3luYyBmdW5jdGlvbiBncmFiTmV4dE1ldGFkYXRhKHZpZGVvKQoreworICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGNvbnN0IGlkZW50aWZp
ZXIgPSB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKChub3csIG1ldGFkYXRhKSA9PiB7
CisgICAgICAgICAgICByZXNvbHZlKG1ldGFkYXRhKTsKKyAgICAgICAgfSk7CisgICAgICAgIHNl
dFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgcmVqZWN0KCJubyBtZXRhZGF0YSBmb3IgIiAr
IGlkZW50aWZpZXIpOworICAgICAgICAgICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNr
KGlkZW50aWZpZXIpOworICAgICAgICB9LCA1MDAwKTsKKyAgICB9KTsKK30KKworcHJvbWlzZV90
ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3QgbG9jYWxTdHJlYW0gPSBhd2FpdCBuYXZp
Z2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7dmlkZW86IHsgd2lkdGg6IDY0MCwgaGVp
Z2h0OiA0ODAgfSB9KTsKKyAgICB2aWRlby5zcmNPYmplY3QgPSBsb2NhbFN0cmVhbTsKKyAgICBh
d2FpdCB2aWRlby5wbGF5KCk7CisKKyAgICBsZXQgcmVzb2x2ZTsKKyAgICBsZXQgcHJvbWlzZSA9
IG5ldyBQcm9taXNlKHIgPT4gcmVzb2x2ZSA9IHIpOworICAgIGNvbnN0IGlkMSA9IHZpZGVvLnJl
cXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKG5vdywgbWV0YWRhdGEpID0+IHsKKyAgICAgICAgdmlk
ZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKGlkMSk7CisgICAgICAgIHZpZGVvLmNhbmNlbFZp
ZGVvRnJhbWVDYWxsYmFjayhpZDIpOworCisgICAgICAgIGNvbnN0IGlkMyA9IHZpZGVvLnJlcXVl
c3RWaWRlb0ZyYW1lQ2FsbGJhY2soKG5vdywgbWV0YWRhdGEpID0+IHsgYXNzZXJ0X25vdF9yZWFj
aGVkKCk7IH0pOworICAgICAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soaWQzKTsK
KyAgICAgICAgc2V0VGltZW91dChyZXNvbHZlLCAxMDApOworICAgIH0pOworCisgICAgY29uc3Qg
aWQyID0gdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygobm93LCBtZXRhZGF0YSkgPT4g
eworICAgICAgICBhc3NlcnRfbm90X3JlYWNoZWQoKTsKKyAgICB9KTsKKworICAgIHJldHVybiBw
cm9taXNlOworfSwgIlZhbGlkYXRlIGNhbGxiYWNrcyBjYW4gYmUgdXBkYXRlZCB3aXRoaW4gYSBj
YWxsYmFjayIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBs
b2NhbFN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2
aWRlbzogeyB3aWR0aDogNjQwLCBoZWlnaHQ6IDQ4MCB9IH0pOworICAgIHZpZGVvLnNyY09iamVj
dCA9IGxvY2FsU3RyZWFtOworICAgIGF3YWl0IHZpZGVvLnBsYXkoKTsKKworICAgIGxldCBtZXRh
ZGF0YSA9IGF3YWl0IGdyYWJOZXh0TWV0YWRhdGEodmlkZW8pOworICAgIGFzc2VydF9lcXVhbHMo
bWV0YWRhdGEud2lkdGgsIDY0MCk7CisgICAgYXNzZXJ0X2VxdWFscyhtZXRhZGF0YS5oZWlnaHQs
IDQ4MCk7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXMs
IDApOworICAgIGNvbnN0IHByZXNlbnRlZEZyYW1lcyA9IG1ldGFkYXRhLnByZXNlbnRlZEZyYW1l
czsKKworICAgIGF3YWl0IGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0uYXBwbHlDb25z
dHJhaW50cyh7d2lkdGg6IDMyMCwgaGVpZ2h0OiAyNDB9KTsKKworICAgIGxldCBjb3VudGVyID0g
MDsKKyAgICB3aGlsZSAoKytjb3VudGVyIDwgMTAwICYmIG1ldGFkYXRhLndpZHRoICE9PSAzMjAp
IHsKKyAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29s
dmUsIDUwKSk7CisgICAgICAgIG1ldGFkYXRhID0gYXdhaXQgZ3JhYk5leHRNZXRhZGF0YSh2aWRl
byk7CisgICAgfQorICAgIGFzc2VydF9lcXVhbHMobWV0YWRhdGEud2lkdGgsIDMyMCk7CisgICAg
YXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXMsIHByZXNlbnRlZEZy
YW1lcyk7Cit9LCAiVmFsaWRhdGUgY2FsbGJhY2tzIGFuZCBtZXRhZGF0YSBmb3IgZ2V0VXNlck1l
ZGlhIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGNvbnN0IGxvY2Fs
U3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVv
OiB7IHdpZHRoOiA2NDAsIGhlaWdodDogNDgwIH0gfSk7CisgICAgdmlkZW8uc3JjT2JqZWN0ID0g
bG9jYWxTdHJlYW07CisgICAgYXdhaXQgdmlkZW8ucGxheSgpOworCisgICAgbGV0IGNvdW50ZXIg
PSAwOworICAgIGxldCByZXNvbHZlOworICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZShy
ID0+IHJlc29sdmUgPSByKTsKKyAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKCgp
ID0+IHsKKyAgICAgICAgKytjb3VudGVyOworICAgICAgICByZXNvbHZlKCk7CisgICAgfSk7Cisg
ICAgYXdhaXQgcHJvbWlzZTsKKworICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdmlk
ZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayhyZXNvbHZlKSk7CisgICAgYXNzZXJ0X2VxdWFs
cyhjb3VudGVyLCAxKTsKK30sICJWYWxpZGF0ZSBjYWxsYmFja3MgYXJlIGNhbGxlZCBvbmx5IG9u
Y2UiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25z
Lmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3Rh
dGlvbnMuanNvbgppbmRleCA2MTBkZDVjZmQ1YWY1MGZiZDY5MTFmYzE3MDUzOGJmYTQwYmQyNjk2
Li4wMTFhYmUyMTVhMzI4ZmMyNzM1NGU3NmQ2NGZlZjRjOTE5Nzc5NmYxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNv
bgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3Rh
dGlvbnMuanNvbgpAQCAtNDQ1LDYgKzQ0NSw3IEBACiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy91
cmwiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy91c2VyLXRpbWluZyI6ICJp
bXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3ZpYnJhdGlvbiI6ICJza2lwIiwgCisg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjIjogImltcG9ydCIsIAogICAgICJ3ZWIt
cGxhdGZvcm0tdGVzdHMvdmlzdWFsLXZpZXdwb3J0IjogImltcG9ydCIsIAogICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvd2FpLWFyaWEiOiAic2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
d2FzbSI6ICJpbXBvcnQiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9NRVRBLnltbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9NRVRBLnltbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41ZTU4MWY0MjM0YWQzOWM4MTllMzcxYTUzMmNkNDE2NDIwNjBhN2M0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL01FVEEueW1sCkBAIC0wLDAgKzEsMyBAQAorc3BlYzogaHR0cHM6Ly93aWNnLmdpdGh1Yi5p
by92aWRlby1ydmZjLworc3VnZ2VzdGVkX3Jldmlld2VyczoKKyAgLSB0Z3VpbGJlcnQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8t
cnZmYy9SRUFETUUubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3ZpZGVvLXJ2ZmMvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiN2EzNTMwNTE1ODYxYzkxYzRj
MDEyYjkzYzJlMGNmOGU5MTNkZWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvUkVBRE1FLm1kCkBAIC0wLDAg
KzEsNyBAQAorIyBIVE1MVmlkZW9FbGVtZW50LnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sgc3Bl
Y2lmaWNhdGlvbiBUZXN0cworCitUaGUgSFRNTFZpZGVvRWxlbWVudC5yZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrIHNwZWNpZmljYXRpb24gaXMgYXZhaWxhYmxlIGhlcmU6IGh0dHBzOi8vd2ljZy5n
aXRodWIuaW8vdmlkZW8tcnZmYworCitHaXRIdWIgcmVwb3NpdG9yeTogaHR0cHM6Ly9naXRodWIu
Y29tL1dJQ0cvdmlkZW8tcnZmYworCitGaWxlIGFuIGlzc3VlOiBodHRwczovL2dpdGh1Yi5jb20v
d2ljZy92aWRlby1ydmZjL2lzc3Vlcy9uZXcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0
YmNiNjI0YzU0YTAxZDQxZDk4OTFhYWM0MGM5MjFmMjgzOTY2NTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
aWRsaGFybmVzcy53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKKworUEFTUyBp
ZGxfdGVzdCBzZXR1cAorUEFTUyBpZGxfdGVzdCB2YWxpZGF0aW9uCitQQVNTIFBhcnRpYWwgaW50
ZXJmYWNlIEhUTUxWaWRlb0VsZW1lbnQ6IG9yaWdpbmFsIGludGVyZmFjZSBkZWZpbmVkCitQQVNT
IFBhcnRpYWwgaW50ZXJmYWNlIEhUTUxWaWRlb0VsZW1lbnQ6IG1lbWJlciBuYW1lcyBhcmUgdW5p
cXVlCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEdsb2JhbEV2ZW50SGFuZGxlcnM6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIERvY3VtZW50QW5k
RWxlbWVudEV2ZW50SGFuZGxlcnM6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEhUTUxF
bGVtZW50IGluY2x1ZGVzIEVsZW1lbnRDb250ZW50RWRpdGFibGU6IG1lbWJlciBuYW1lcyBhcmUg
dW5pcXVlCitQQVNTIEhUTUxFbGVtZW50IGluY2x1ZGVzIEhUTUxPclNWR0VsZW1lbnQ6IG1lbWJl
ciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVkZXMgUGFyZW50Tm9kZTogbWVt
YmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBOb25Eb2N1bWVudFR5
cGVDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVsZW1lbnQgaW5jbHVk
ZXMgQ2hpbGROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1
ZGVzIFNsb3R0YWJsZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgSFRNTFZpZGVvRWxl
bWVudCBpbnRlcmZhY2U6IG9wZXJhdGlvbiByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKFZpZGVv
RnJhbWVSZXF1ZXN0Q2FsbGJhY2spCitQQVNTIEhUTUxWaWRlb0VsZW1lbnQgaW50ZXJmYWNlOiBv
cGVyYXRpb24gY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKHVuc2lnbmVkIGxvbmcpCitQQVNTIEhU
TUxWaWRlb0VsZW1lbnQgaW50ZXJmYWNlOiB2aWRlbyBtdXN0IGluaGVyaXQgcHJvcGVydHkgInJl
cXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjaykiIHdpdGgg
dGhlIHByb3BlciB0eXBlCitQQVNTIEhUTUxWaWRlb0VsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5n
IHJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjaykgb24g
dmlkZW8gd2l0aCB0b28gZmV3IGFyZ3VtZW50cyBtdXN0IHRocm93IFR5cGVFcnJvcgorUEFTUyBI
VE1MVmlkZW9FbGVtZW50IGludGVyZmFjZTogdmlkZW8gbXVzdCBpbmhlcml0IHByb3BlcnR5ICJj
YW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2sodW5zaWduZWQgbG9uZykiIHdpdGggdGhlIHByb3BlciB0
eXBlCitQQVNTIEhUTUxWaWRlb0VsZW1lbnQgaW50ZXJmYWNlOiBjYWxsaW5nIGNhbmNlbFZpZGVv
RnJhbWVDYWxsYmFjayh1bnNpZ25lZCBsb25nKSBvbiB2aWRlbyB3aXRoIHRvbyBmZXcgYXJndW1l
bnRzIG11c3QgdGhyb3cgVHlwZUVycm9yCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL2lkbGhhcm5lc3Mud2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQwODhmZTQyZTFmNzQ4Yzlm
M2M3M2EwZDQ3ZjM2NjIwNDc5MGU5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRv
dy5odG1sCkBAIC0wLDAgKzEsMiBAQAorPCFkb2N0eXBlIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZD10cnVlIF0gLS0+Cis8IS0t
IFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8g
cnVuIHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy5q
cyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZm
Yy9pZGxoYXJuZXNzLndpbmRvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTllNGUwOTg4YmY2N2M4OGRjY2Qy
OTdjZjU2NGJiOTdkNWRlNmJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93Lmpz
CkBAIC0wLDAgKzEsMTcgQEAKKy8vIE1FVEE6IHNjcmlwdD0vcmVzb3VyY2VzL1dlYklETFBhcnNl
ci5qcworLy8gTUVUQTogc2NyaXB0PS9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcworLy8gTUVUQTog
dGltZW91dD1sb25nCisKKyd1c2Ugc3RyaWN0JzsKKworaWRsX3Rlc3QoCisgIFsndmlkZW8tcnZm
YyddLAorICBbJ2h0bWwnLCAnZG9tJ10sCisgIGlkbF9hcnJheSA9PiB7CisgICAgaWRsX2FycmF5
LmFkZF9vYmplY3RzKHsKKyAgICAgIEhUTUxWaWRlb0VsZW1lbnQ6IFsndmlkZW8nXSwKKyAgICB9
KTsKKyAgICBzZWxmLnZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAg
fQorKTsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhy
LXNlc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2st
YmVmb3JlLXhyLXNlc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmNDc3YzA5
MzE5OWQ1MmYyZWM4YjJmZTZlMTU1NmVkZWQ5MTlhNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVz
dC12aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw4IEBACisKK0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0g
bnVsbAorCitUSU1FT1VUIE1ha2Ugc3VyZSB2aWRlby5yVkZDIHdvcmtzIGR1cmluZyBhIG5vbi1p
bW1lcnNpdmUgc2Vzc2lvbiAtIHdlYmdsIFRlc3QgdGltZWQgb3V0CitOT1RSVU4gTWFrZSBzdXJl
IHZpZGVvLnJWRkMgd29ya3MgZHVyaW5nIGEgbm9uLWltbWVyc2l2ZSBzZXNzaW9uIC0gd2ViZ2wy
CitOT1RSVU4gTWFrZSBzdXJlIHZpZGVvLnJWRkMgd29ya3MgZHVyaW5nIGFuIGltbWVyc2l2ZSBz
ZXNzaW9uIC0gd2ViZ2wKK05PVFJVTiBNYWtlIHN1cmUgdmlkZW8uclZGQyB3b3JrcyBkdXJpbmcg
YW4gaW1tZXJzaXZlIHNlc3Npb24gLSB3ZWJnbDIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8t
ZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhyLXNlc3Npb24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVv
LWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTI3N2ZiYmE5MmZiZjYzNTc5YWQ0ZDRkNWEyY2ExZGMyZTM1NmNkNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZm
Yy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLmh0
bWwKQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzx0aXRsZT5UZXN0
IHRoYXQgdmlkZW8uclZGQyBjYWxsYmFja3Mgc3RhcnRlZCBiZWZvcmUgYW4gWFJTZXNzaW9uIHdv
cmsuPC90aXRsZT4KKzxib2R5PgorPC9ib2R5PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vbWVkaWEuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3dlYnhyL3Jlc291cmNlcy93ZWJ4cl91dGlsLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi93ZWJ4ci9yZXNvdXJjZXMvd2VieHJfdGVzdF9jb25z
dGFudHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworLy8gU3RhcnQgdGhlIHZpZGVvLnJWRkMg
Y2FsbGJhY2tzIGJlZm9yZSBzdGFydGluZyB0aGUgWFIgU2Vzc2lvbi4KK2xldCB2aWRlbyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7Cit2aWRlby5zcmMgPSBnZXRWaWRlb1VSSSgn
L21lZGlhL21vdmllXzUnKTsKKwordmFyIG51bWJlclZGQ3MgPSAwOworbGV0IHZpZGVvQ2FsbGJh
Y2sgPSAoKSA9PiB7CisgICAgbnVtYmVyVkZDcysrOworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0Zy
YW1lQ2FsbGJhY2sodmlkZW9DYWxsYmFjayk7Cit9CisKK3ZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1l
Q2FsbGJhY2sodmlkZW9DYWxsYmFjayk7Cit2aWRlby5wbGF5KCk7CisKK2xldCB0ZXN0RnVuY3Rp
b24gPSBhc3luYyBmdW5jdGlvbihzZXNzaW9uLCBmYWtlRGV2aWNlQ29udHJvbGxlciwgdCkgewor
ICAgIGxldCB3YXRjaGVyRG9uZSA9IG5ldyBFdmVudCgid2F0Y2hlcmRvbmUiKTsKKyAgICBsZXQg
ZXZlbnRXYXRjaGVyID0gbmV3IEV2ZW50V2F0Y2hlcih0LCBzZXNzaW9uLCBbImVuZCIsICJ3YXRj
aGVyZG9uZSJdKTsKKyAgICBsZXQgZXZlbnRQcm9taXNlID0gZXZlbnRXYXRjaGVyLndhaXRfZm9y
KFsiZW5kIiwgIndhdGNoZXJkb25lIl0pOworCisgICAgbnVtYmVyVkZDcyA9IDA7CisKKyAgICBm
dW5jdGlvbiBvblhSRnJhbWUodGltZSwgZnJhbWUpIHsKKyAgICAgICAgaWYobnVtYmVyVkZDcyA+
PSAyKSB7CisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdmlkZW8uclZGQ3MgYXJlIHN0aWxsIGNv
bWluZyB0aHJvdWdoIGJlZm9yZSBlbmRpbmcgdGhlCisgICAgICAgICAgICAvLyBzZXNzaW9uLgor
ICAgICAgICAgICAgc2Vzc2lvbi5lbmQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHNlc3Npb24u
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKG9uWFJGcmFtZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
b25TZXNzaW9uRW5kKGV2ZW50KSB7CisgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBhcmUgc3RpbGwg
Z2V0dGluZyByVkZDIGNhbGxiYWNrcyBhZnRlciB0aGUgc2Vzc2lvbiBlbmQuCisgICAgICAgIG51
bWJlclZGQ3MgPSAwOworICAgICAgICB0LnN0ZXBfd2FpdF9mdW5jKCgpID0+IG51bWJlclZGQ3Mg
Pj0gMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiBzZXNzaW9uLmRpc3BhdGNoRXZl
bnQod2F0Y2hlckRvbmUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJUaW1lIG91dCB3YWl0
aW5nIGZvciBWRkMgY2FsbGJhY2tzIik7CisgICAgfQorCisgICAgc2Vzc2lvbi5hZGRFdmVudExp
c3RlbmVyKCJlbmQiLCBvblNlc3Npb25FbmQsIGZhbHNlKTsKKyAgICBzZXNzaW9uLnJlcXVlc3RB
bmltYXRpb25GcmFtZShvblhSRnJhbWUpOworCisgICAgcmV0dXJuIGV2ZW50UHJvbWlzZTsKK30K
KworeHJfc2Vzc2lvbl9wcm9taXNlX3Rlc3QoJ01ha2Ugc3VyZSB2aWRlby5yVkZDIHdvcmtzIGR1
cmluZyBhIG5vbi1pbW1lcnNpdmUgc2Vzc2lvbicsCisgICAgdGVzdEZ1bmN0aW9uLCBUUkFDS0VE
X0lNTUVSU0lWRV9ERVZJQ0UsICdpbmxpbmUnKTsKKwordmlkZW8uY3VycmVudFRpbWUgPSAwOwor
Cit4cl9zZXNzaW9uX3Byb21pc2VfdGVzdCgnTWFrZSBzdXJlIHZpZGVvLnJWRkMgd29ya3MgZHVy
aW5nIGFuIGltbWVyc2l2ZSBzZXNzaW9uJywKKyAgICB0ZXN0RnVuY3Rpb24sIFRSQUNLRURfSU1N
RVJTSVZFX0RFVklDRSwgJ2ltbWVyc2l2ZS12cicpOworCis8L3NjcmlwdD4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlk
ZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVx
dWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kb20tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2
MzlkNGYyODg1ZTFmOTc2NDhkNTA1NDc3MGVhZmViNDMyZGM1MGQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
cmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kb20tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NyBAQAorCitIYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9V
VCBUZXN0IGEgdmlkZW8gb3V0c2lkZSBvZiB0aGUgRE9NIGNhbiBzdGlsbCB1c2UgdmlkZW8uclZG
Qy4gVGVzdCB0aW1lZCBvdXQKK1RJTUVPVVQgVGVzdCB2aWRlby5yVkZDIHdvcmtzIHdpdGggImRp
c3BsYXk6bm9uZSIuIFRlc3QgdGltZWQgb3V0CitUSU1FT1VUIFRlc3QgdmlkZW8uclZGQyB3b3Jr
cyB3aXRoICJ2aXNpYmlsaXR5OmhpZGRlbiIuIFRlc3QgdGltZWQgb3V0CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9y
ZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUt
Y2FsbGJhY2stZG9tLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDI3N2Q3Mjk3ODgzYzRjZDRmNDcyYjA4YzQz
OTk4MDYyODBmZThlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxi
YWNrLWRvbS5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
dGl0bGU+VGVzdCB0aGUgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygpIEFQSSBmb3Ig
bm9uIHZpc2libGUgdmlkZW8gZWxlbWVudHMuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL21lZGlh
LmpzIj48L3NjcmlwdD4KKzxib2R5PgorPC9ib2R5PgorPHNjcmlwdD4KK3ZhciB0ZXN0VmlkZW8g
PSB7CisgIHVybDogZ2V0VmlkZW9VUkkoJy9tZWRpYS9tb3ZpZV81JyksCisgIGhlaWdodDogMjQw
LAorICB3aWR0aDogMzIwLAorfQorCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQg
dmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworCisgICAgdmlkZW8ucmVx
dWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0ZXBfZnVuY19kb25lKCkpOworICAgIHZpZGVvLnNy
YyA9IHRlc3RWaWRlby51cmw7CisgICAgdmlkZW8ucGxheSgpOworCit9LCAnVGVzdCBhIHZpZGVv
IG91dHNpZGUgb2YgdGhlIERPTSBjYW4gc3RpbGwgdXNlIHZpZGVvLnJWRkMuJyk7CisKK2Z1bmN0
aW9uIHJ2ZmNTdHlsZVRlc3QoYXBwbHlTdHlsZSwgZGVzY3JpcHRpb24pIHsKKyAgICBhc3luY190
ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3ZpZGVvJyk7CisgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKKyAg
ICAgIGFwcGx5U3R5bGUodmlkZW8pOworCisgICAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrKAorICAgICAgICB0LnN0ZXBfZnVuYyggXyA9PiB7CisgICAgICAgICAgLy8gTWFrZSBz
dXJlIHdlIGNhbiByZWNlaXZlIG1vcmUgdGhhbiBvbmUgY2FsbGJhY2suCisgICAgICAgICAgdmlk
ZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0ZXBfZnVuY19kb25lKCkpOworICAgICAg
ICB9KQorICAgICAgKTsKKworICAgICAgdmlkZW8uc3JjID0gdGVzdFZpZGVvLnVybDsKKyAgICAg
IHZpZGVvLnBsYXkoKTsKKyAgICB9LCBkZXNjcmlwdGlvbik7Cit9CisKK3J2ZmNTdHlsZVRlc3Qo
KHZpZGVvKSA9PiB7IHZpZGVvLnN0eWxlLmRpc3BsYXkgPSAibm9uZSJ9LAorICAnVGVzdCB2aWRl
by5yVkZDIHdvcmtzIHdpdGggImRpc3BsYXk6bm9uZSIuJyk7CisKK3J2ZmNTdHlsZVRlc3QoKHZp
ZGVvKSA9PiB7IHZpZGVvLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIn0sCisgICdUZXN0IHZp
ZGVvLnJWRkMgd29ya3Mgd2l0aCAidmlzaWJpbGl0eTpoaWRkZW4iLicpOworCis8L3NjcmlwdD4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmluZy14
ci1zZXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNr
LWR1cmluZy14ci1zZXNzaW9uLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzcyMDIw
ZTQ5MDI3MWI0MzQyNDFkOTQ5ODYyMWZhOWViODFhNGM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVl
c3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNiBAQAorCitIYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9
IG51bGwKKworVElNRU9VVCBNYWtlIHN1cmUgdmlkZW8uclZGQyBjYWxsYmFja3Mgc3RhcnRlZCBk
dXJpbmcgYW4gaW1tZXJzaXZlIHNlc3Npb24gY29udGludWUgYWZ0ZXIgaXQgZW5kcyAtIHdlYmds
IFRlc3QgdGltZWQgb3V0CitOT1RSVU4gTWFrZSBzdXJlIHZpZGVvLnJWRkMgY2FsbGJhY2tzIHN0
YXJ0ZWQgZHVyaW5nIGFuIGltbWVyc2l2ZSBzZXNzaW9uIGNvbnRpbnVlIGFmdGVyIGl0IGVuZHMg
LSB3ZWJnbDIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5n
LXhyLXNlc3Npb24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmlu
Zy14ci1zZXNzaW9uLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQ1NjFlZTVmZDA2NTk0NGQxMzNm
YTVkMzE0YjZjZWQyZjc5NDczZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1l
LWNhbGxiYWNrLWR1cmluZy14ci1zZXNzaW9uLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw2MCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzx0aXRsZT5UZXN0IHRoYXQgdmlkZW8uclZGQyBjYWxs
YmFja3Mgc3RhcnRlZCBkdXJpbmcgYW4gWFJTZXNzaW9uIHdvcmsuPC90aXRsZT4KKzxib2R5Pgor
ICAgIDxjYW52YXMvPgorPC9ib2R5PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vbWVkaWEuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL3dlYnhyL3Jlc291cmNlcy93ZWJ4cl91dGlsLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi93ZWJ4ci9yZXNvdXJjZXMvd2VieHJfdGVzdF9jb25zdGFudHMu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworbGV0IHRlc3RGdW5jdGlvbiA9IGFzeW5jIGZ1bmN0
aW9uKHNlc3Npb24sIGZha2VEZXZpY2VDb250cm9sbGVyLCB0KSB7CisgICAgbGV0IHdhdGNoZXJE
b25lID0gbmV3IEV2ZW50KCJ3YXRjaGVyZG9uZSIpOworICAgIGxldCBldmVudFdhdGNoZXIgPSBu
ZXcgRXZlbnRXYXRjaGVyKHQsIHNlc3Npb24sIFsiZW5kIiwgIndhdGNoZXJkb25lIl0pOworICAg
IGxldCBldmVudFByb21pc2UgPSBldmVudFdhdGNoZXIud2FpdF9mb3IoWyJlbmQiLCAid2F0Y2hl
cmRvbmUiXSk7CisKKyAgICAvLyBTdGFydCB0aGUgdmlkZW8uclZGQyBjYWxsYmFja3Mgd2hpbGUg
d2UgYXJlIGluIHRoZSB0aGUgWFIgU2Vzc2lvbi4KKyAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIHZpZGVvLnNyYyA9IGdldFZpZGVvVVJJKCcvbWVk
aWEvbW92aWVfNScpOworCisgICAgdmFyIG51bWJlclZGQ3MgPSAwOworICAgIGxldCB2aWRlb0Nh
bGxiYWNrID0gKCkgPT4geworICAgICAgICBudW1iZXJWRkNzKys7CisgICAgICAgIHZpZGVvLnJl
cXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodmlkZW9DYWxsYmFjayk7CisgICAgfQorCisgICAgdmlk
ZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh2aWRlb0NhbGxiYWNrKTsKKyAgICB2aWRlby5w
bGF5KCk7CisKKyAgICBmdW5jdGlvbiBvblhSRnJhbWUodGltZSwgZnJhbWUpIHsKKyAgICAgICAg
aWYobnVtYmVyVkZDcyA+PSAyKSB7CisgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdmlkZW8uclZG
Q3MgYXJlIGNvbWluZyB0aHJvdWdoIGJlZm9yZSBlbmRpbmcgdGhlCisgICAgICAgICAgICAvLyBz
ZXNzaW9uLgorICAgICAgICAgICAgc2Vzc2lvbi5lbmQoKTsKKyAgICAgICAgfQorCisgICAgICAg
IHNlc3Npb24ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKG9uWFJGcmFtZSk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gb25TZXNzaW9uRW5kKGV2ZW50KSB7CisgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBh
cmUgc3RpbGwgZ2V0dGluZyByVkZDIGNhbGxiYWNrcyBhZnRlciB0aGUgc2Vzc2lvbiBlbmQuCisg
ICAgICAgIG51bWJlclZGQ3MgPSAwOworICAgICAgICB0LnN0ZXBfd2FpdF9mdW5jKCgpID0+IG51
bWJlclZGQ3MgPj0gMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiBzZXNzaW9uLmRp
c3BhdGNoRXZlbnQod2F0Y2hlckRvbmUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJUaW1l
IG91dCB3YWl0aW5nIGZvciBWRkMgY2FsbGJhY2tzIik7CisgICAgfQorCisgICAgc2Vzc2lvbi5h
ZGRFdmVudExpc3RlbmVyKCJlbmQiLCBvblNlc3Npb25FbmQsIGZhbHNlKTsKKyAgICBzZXNzaW9u
LnJlcXVlc3RBbmltYXRpb25GcmFtZShvblhSRnJhbWUpOworCisgICAgcmV0dXJuIGV2ZW50UHJv
bWlzZTsKK30KKworeHJfc2Vzc2lvbl9wcm9taXNlX3Rlc3QoJ01ha2Ugc3VyZSB2aWRlby5yVkZD
IGNhbGxiYWNrcyBzdGFydGVkIGR1cmluZyBhbiBpbW1lcnNpdmUgc2Vzc2lvbiBjb250aW51ZSBh
ZnRlciBpdCBlbmRzJywKKyAgICB0ZXN0RnVuY3Rpb24sIFRSQUNLRURfSU1NRVJTSVZFX0RFVklD
RSwgJ2ltbWVyc2l2ZS12cicpOworCis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1
ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1l
LWNhbGxiYWNrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTdjYjNlOTRjZGZiMjUyNThiOWQ5
OWI0ZjRkNDdlZGEwZTc3MjE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUt
Y2FsbGJhY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworCitIYXJuZXNzIEVycm9y
IChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9VVCBUZXN0IHdlIGNhbiByZWdpc3Rl
ciBhIHZpZGVvLnJWRkMgY2FsbGJhY2suIFRlc3QgdGltZWQgb3V0CitUSU1FT1VUIFRlc3Qgdmlk
ZW8uclZGQyBjYWxsYmFja3MgcnVuIGJlZm9yZSB3aW5kb3cuckFGIGNhbGxiYWNrcy4gVGVzdCB0
aW1lZCBvdXQKK1RJTUVPVVQgVGVzdCB3ZSBjYW4gY2FuY2VsIGEgdmlkZW8uclZGQyByZXF1ZXN0
LiBUZXN0IHRpbWVkIG91dAorUEFTUyBUZXN0IGludmFsaWQgY2FsbHMgdG8gdGhlIHZpZGVvLnJW
RkMgQVBJLgorVElNRU9VVCBUZXN0IHZpZGVvLnJWRkMgZG9lcyBub3Qgc3RvcCB3aGVuIHN3aXRj
aGluZyBzb3VyY2VzLiBUZXN0IHRpbWVkIG91dAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1m
cmFtZS1jYWxsYmFjay1wYXJhbGxlbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1j
YWxsYmFjay1wYXJhbGxlbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmZlNjg0YWU4ZTY2ZGFi
OGNjZTY4ZDIyNzUzNTk1YTg0NDhjNmI5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVv
LWZyYW1lLWNhbGxiYWNrLXBhcmFsbGVsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKwor
CitIYXJuZXNzIEVycm9yIChUSU1FT1VUKSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9VVCBUZXN0
IGNhbGxiYWNrcyBnZXQgdGhlIHNhbWUgaW5mb3JtYXRpb24uIFRlc3QgdGltZWQgb3V0CitUSU1F
T1VUIFRlc3Qgd2UgY2FuIGNhbmNlbCBjYWxsYmFja3MgZnJvbSBjYWxsYmFja3MuIFRlc3QgdGlt
ZWQgb3V0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXBhcmFsbGVs
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVv
LXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE0YzVkZTFhZGY1NWJhMDAxNmFiOTk4NTc3NmM1NjhlNDlmNTk1NmQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVv
LXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sCkBAIC0wLDAg
KzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8dGl0bGU+VGVzdCBoYXZpbmcgbXVs
dGlwbGUgdmlkZW8uclZGQyBjYWxsYmFja3MgaW4gZmxpZ2h0IGZvciBhIHNpbmdsZSBlbGVtZW50
LjwvdGl0bGU+Cis8Ym9keT48L2JvZHk+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9tZWRpYS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8g
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQodmlkZW8pOworCisgICAgbGV0IGZpcnN0VGltZTsKKyAgICBsZXQgZmlyc3RNZXRh
ZGF0YTsKKworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodC5zdGVwX2Z1bmMo
KHRpbWUsIG1ldGFkYXRhKSA9PiB7CisgICAgICBmaXJzdFRpbWUgPSB0aW1lOworICAgICAgZmly
c3RNZXRhZGF0YSA9IG1ldGFkYXRhOworICAgIH0pKTsKKworICAgIHZpZGVvLnJlcXVlc3RWaWRl
b0ZyYW1lQ2FsbGJhY2sodC5zdGVwX2Z1bmNfZG9uZSgodGltZSwgbWV0YWRhdGEpID0+IHsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoZmlyc3RUaW1lLCB0aW1lKTsKKyAgICAgIGFzc2VydF9vYmplY3Rf
ZXF1YWxzKGZpcnN0TWV0YWRhdGEsIG1ldGFkYXRhKTsKKyAgICB9KSk7CisKKyAgICB2aWRlby5z
cmMgPSBnZXRWaWRlb1VSSSgnL21lZGlhL21vdmllXzUnKTsKKyAgICB2aWRlby5wbGF5KCk7CisK
K30sICdUZXN0IGNhbGxiYWNrcyBnZXQgdGhlIHNhbWUgaW5mb3JtYXRpb24uJyk7CisKK2FzeW5j
X3Rlc3QoZnVuY3Rpb24odCkgeworICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3ZpZGVvJyk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisKKyAg
ICBsZXQgc2Vjb25kQ2FsbGJhY2tJZDsKKworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2Fs
bGJhY2soCisgICAgICB0LnN0ZXBfZnVuYyhfID0+IHsgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNh
bGxiYWNrKHNlY29uZENhbGxiYWNrSWQpOyB9KQorICAgICk7CisKKyAgICBzZWNvbmRDYWxsYmFj
a0lkID0gdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygKKyAgICAgIHQuc3RlcF9mdW5j
KF8gPT4geworICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJDYW5jZWxsZWQgY2FsbGJhY2tzIHNo
b3VsZG4ndCBiZSBleGVjdXRlZCIpCisgICAgICB9KQorICAgICk7CisKKyAgICAvLyBOT1RFOiBU
aGlzIGNhbGxiYWNrIHNob3VsZCBiZSBleGVjdXRlZCBsYXN0LgorICAgIHZpZGVvLnJlcXVlc3RW
aWRlb0ZyYW1lQ2FsbGJhY2soCisgICAgICB0LnN0ZXBfZnVuY19kb25lKCkKKyAgICApOworCisg
ICAgdmlkZW8uc3JjID0gZ2V0VmlkZW9VUkkoJy9tZWRpYS9tb3ZpZV81Jyk7CisgICAgdmlkZW8u
cGxheSgpOworfSwgJ1Rlc3Qgd2UgY2FuIGNhbmNlbCBjYWxsYmFja3MgZnJvbSBjYWxsYmFja3Mu
Jyk7Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNh
bGxiYWNrLXJlcGVhdGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFj
ay1yZXBlYXRpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0YTViZTNkZDI1MTJiODVjMzg1
NTViOGYzY2U3MDM2NzhlZDRkZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFt
ZS1jYWxsYmFjay1yZXBlYXRpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCisKK0hh
cm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitUSU1FT1VUIFRlc3QgbmV3
IGNhbGxiYWNrcyBhcmUgb25seSBjYWxsZWQgb24gdGhlIG5leHQgZnJhbWUuIFRlc3QgdGltZWQg
b3V0CitUSU1FT1VUIFRlc3QgY2hhaW5pbmcgY2FsbHMgdG8gdmlkZW8uclZGQywgYW5kIHZlcmlm
eSB0aGUgcmVxdWlyZWQgcGFyYW1ldGVycy4gVGVzdCB0aW1lZCBvdXQKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3Jl
cXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1m
cmFtZS1jYWxsYmFjay1yZXBlYXRpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjM3YTA4NzJjYjBkMGMx
NTFlMGE4MGE2YTU2OTQ0OWZkMjIyYTFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8t
ZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLmh0bWwKQEAgLTAsMCArMSw4MCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzx0aXRsZT5UZXN0IHJlcGVhdGVkbHkgY2hhaW5pbmcgdmlkZW8uclZG
QygpIGNhbGxiYWNrcy48L3RpdGxlPgorPGJvZHk+PC9ib2R5PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vbWVk
aWEuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Cisg
ICAgbGV0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKKworICAgIGxldCBmaXJzdFRpbWU7CisgICAg
dmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0ZXBfZnVuYygodGltZSkgPT4gewor
ICAgICAgZmlyc3RUaW1lID0gdGltZTsKKworICAgICAgLy8gUXVldWUgdXAgYSBjYWxsYmFjayBh
bmQgbWFrZSBzdXJlIGl0J3Mgbm90IGltbWVkaWF0ZWx5IGV4ZWN1dGVkLgorICAgICAgbGV0IHNl
Y29uZFRpbWU7CisgICAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHQuc3RlcF9m
dW5jKCh0aW1lKSA9PiB7CisgICAgICAgIHNlY29uZFRpbWUgPSB0aW1lOworICAgICAgICBhc3Nl
cnRfZ3JlYXRlcl90aGFuKHNlY29uZFRpbWUsIGZpcnN0VGltZSwgIkNhbGxiYWNrcyBzaG91bGQg
YmUgZXhlY3V0ZWQgb24gdGhlIG5leHQgZnJhbWUiKTsKKyAgICAgIH0pKQorCisgICAgICAvLyBR
dWV1ZSB1cCBhIHNlY29uZCBjYWxsYmFjaywgYW5kIG1ha2Ugc3VyZSBpdCdzIGNhbGxlZCBhdCB0
aGUgc2FtZSB0aW1lCisgICAgICAvLyBhcyB0aGUgb25lIHdlIGp1c3QgcXVldWVkIHVwLgorICAg
ICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0ZXBfZnVuY19kb25lKCh0aW1l
KSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHModGltZSwgc2Vjb25kVGltZSwgIkNhbGxiYWNr
cyBxdWV1ZWQgdG9nZXRoZXIgc2hvdWxkIGJlIGNhbGxlZCBhdCB0aGUgc2FtZSB0aW1lIik7Cisg
ICAgICB9KSkKKworICAgIH0pKTsKKworICAgIHZpZGVvLnNyYyA9IGdldFZpZGVvVVJJKCcvbWVk
aWEvbW92aWVfNScpOworICAgIHZpZGVvLnBsYXkoKTsKKworfSwgJ1Rlc3QgbmV3IGNhbGxiYWNr
cyBhcmUgb25seSBjYWxsZWQgb24gdGhlIG5leHQgZnJhbWUuJyk7CisKK2FzeW5jX3Rlc3QoZnVu
Y3Rpb24odCkgeworICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVv
Jyk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICBsZXQgbWF4
TnVtYmVyT2ZDYWxscyA9IDEwOworICAgIGxldCBjdXJyZW50Q2FsbE51bWJlciA9IDA7CisgICAg
bGV0IGxhc3RNZXRhZGF0YTsKKworICAgIGZ1bmN0aW9uIHZlcmlmeU1ldGFkYXRhKGxhc3QsIGN1
cnJlbnQpIHsKKyAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oY3VycmVudC5wcmVzZW50ZWRGcmFt
ZXMsIGxhc3QucHJlc2VudGVkRnJhbWVzLCAicHJlc2VudGVkRnJhbWVzIHNob3VsZCBiZSBtb25v
dG9uaWNhbGx5IGluY3JlYXNpbmciKTsKKyAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oY3VycmVu
dC5wcmVzZW50YXRpb25UaW1lLCBsYXN0LnByZXNlbnRhdGlvblRpbWUsICJwcmVzZW50YXRpb25U
aW1lIHNob3VsZCBiZSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmciKTsKKyAgICAgIGFzc2VydF9n
cmVhdGVyX3RoYW4oY3VycmVudC5leHBlY3RlZERpc3BsYXlUaW1lLCBsYXN0LmV4cGVjdGVkRGlz
cGxheVRpbWUsICJleHBlY3RlZERpc3BsYXlUaW1lIHNob3VsZCBiZSBtb25vdG9uaWNhbGx5IGlu
Y3JlYXNpbmciKTsKKworICAgICAgLy8gV2UgYXJlbid0IHNlZWtpbmcgdGhyb3VnaCB0aGUgZmls
ZSwgc28gdGhpcyBzaG91bGQgYmUgaW5jcmVhc2luZyBmcm9tIGZyYW1lIHRvIGZyYW1lLgorICAg
ICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihjdXJyZW50Lm1lZGlhVGltZSwgbGFzdC5tZWRpYVRpbWUs
ICJtZWRpYVRpbWUgc2hvdWxkIGJlIGluY3JlYXNpbmciKTsKKworICAgICAgLy8gVGhlIHRlc3Qg
dmlkZW8ncyBzaXplIGRvZXNuJ3QgY2hhbmdlLgorICAgICAgYXNzZXJ0X2VxdWFscyhjdXJyZW50
LndpZHRoLCBsYXN0LndpZHRoLCAid2lkdGggc2hvdWxkIHJlbWFpbiBjb25zdGFudCIpOworICAg
ICAgYXNzZXJ0X2VxdWFscyhjdXJyZW50LmhlaWdodCwgbGFzdC5oZWlnaHQsICJoZWlnaHQgc2hv
dWxkIHJlbWFpbiBjb25zdGFudCIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlcGVhdGluZ0Nh
bGxiYWNrKHRpbWUsIG1ldGFkYXRhKSB7CisgICAgICAvLyBTa2lwIHRoZSBmaXJzdCBjYWxsIHRv
IHZlcmlmeU1ldGFkYXRhLgorICAgICAgaWYgKGN1cnJlbnRDYWxsTnVtYmVyKQorICAgICAgICB2
ZXJpZnlNZXRhZGF0YShsYXN0TWV0YWRhdGEsIG1ldGFkYXRhKQorCisgICAgICBsYXN0TWV0YWRh
dGEgPSBtZXRhZGF0YTsKKworICAgICAgaWYgKCsrY3VycmVudENhbGxOdW1iZXIgPiBtYXhOdW1i
ZXJPZkNhbGxzKSB7CisgICAgICAgIHQuZG9uZSgpCisgICAgICB9IGVsc2UgeworICAgICAgICB2
aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHQuc3RlcF9mdW5jKHJlcGVhdGluZ0NhbGxi
YWNrKSk7CisgICAgICB9CisgICAgfQorCisgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxs
YmFjayh0LnN0ZXBfZnVuYyhyZXBlYXRpbmdDYWxsYmFjaykpOworCisgICAgdmlkZW8uc3JjID0g
Z2V0VmlkZW9VUkkoJy9tZWRpYS9tb3ZpZV81Jyk7CisgICAgdmlkZW8ucGxheSgpOworCit9LCAn
VGVzdCBjaGFpbmluZyBjYWxscyB0byB2aWRlby5yVkZDLCBhbmQgdmVyaWZ5IHRoZSByZXF1aXJl
ZCBwYXJhbWV0ZXJzLicpOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
ZDU0ZDBlYWFlNzg4NjQ2ZmIwZGYxMTgyODgyMzFmYjI1NDg3NzdkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZj
L3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKKworRkFJTCBUZXN0IHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2soKSBwYXJhbWV0ZXJzIGZvciBXZWJSVEMgYXBwbGljYXRpb25zLiBhc3NlcnRfZ3JlYXRlcl90
aGFuOiBleHBlY3RlZCBhIG51bWJlciBidXQgZ290IGEgInVuZGVmaW5lZCIKKworCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2
ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0
LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXdlYnJ0Yy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkN2U4
ZDdmM2M5ZjdhZDFkYTVmMjNiOWRkY2VmNDQ3NzY4NjIyZmIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVx
dWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMuaHRtbApAQCAtMCwwICsxLDE2
NSBAQAorPCFkb2N0eXBlIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBSZXF1ZXN0Vmlk
ZW9GcmFtZUNhbGxiYWNrRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICA8bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1V
VEYtOCI+CisgIDx0aXRsZT5XZWJSVEMgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygp
IHRlc3Q8L3RpdGxlPgorICA8c2NyaXB0IHNyYz0iL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgaWQ9ImxvZyI+PC9k
aXY+CisgIDxkaXY+CisgICAgPHZpZGVvIGlkPSJsb2NhbC12aWV3IiBtdXRlZCBhdXRvcGxheT0i
YXV0b3BsYXkiPjwvdmlkZW8+CisgICAgPHZpZGVvIGlkPSJyZW1vdGUtdmlldyIgbXV0ZWQgYXV0
b3BsYXk9ImF1dG9wbGF5Ii8+CisgICAgPC92aWRlbz4KKyAgPC9kaXY+CisKKyAgPCEtLSBUaGVz
ZSBmaWxlcyBhcmUgaW4gcGxhY2Ugd2hlbiBleGVjdXRpbmcgb24gVzNDLiAtLT4KKyAgPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgdmFyIHRlc3QgPSBhc3luY190ZXN0KCdUZXN0IHZp
ZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKSBwYXJhbWV0ZXJzIGZvciBXZWJSVEMgYXBw
bGljYXRpb25zLicpOworCisgIC8vCisgIC8vIFRoaXMgdGVzdCBpcyBiYXNlZCBvbiAvd2VicnRj
L3NpbXBsZWNhbGwuaHR0cHMuaHRtbCwgYnV0IGl0IGNhbGxzIHRvCisgIC8vIHZpZGVvLnJlcXVl
c3RWaWRlb0ZyYW1lQ2FsbGJhY2soKSBiZWZvcmUgZW5kaW5nLCB0byB2ZXJpZnkgV2ViUlRDIHJl
cXVpcmVkCisgIC8vIGFuZCBvcHRpb25hbCBwYXJhbWV0ZXJzLgorICAvLworCisgIHZhciBnRmly
c3RDb25uZWN0aW9uID0gbnVsbDsKKyAgdmFyIGdTZWNvbmRDb25uZWN0aW9uID0gbnVsbDsKKyAg
dmFyIGdDYWxsYmFja0NvdW50ZXIgPSAwOworICB2YXIgdmVyaWZ5X3BhcmFtcyA9IChub3csIG1l
dGFkYXRhKSA9PiB7CisgICAgZ0NhbGxiYWNrQ291bnRlciA9IGdDYWxsYmFja0NvdW50ZXIgKyAx
OworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obm93LCAwKTsKKworICAgIC8vIFZlcmlmeSBhbGwg
cmVxdWlyZWQgZmllbGRzCisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5wcmVzZW50
YXRpb25UaW1lLCAwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLmV4cGVjdGVk
RGlzcGxheVRpbWUsIDApOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEucHJlc2Vu
dGVkRnJhbWVzLCAwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLndpZHRoLCAw
KTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLmhlaWdodCwgMCk7CisgICAgYXNz
ZXJ0X3RydWUoIm1lZGlhVGltZSIgaW4gbWV0YWRhdGEsICJtZWRpYVRpbWUgc2hvdWxkIGJlIHBy
ZXNlbnQiKTsKKworICAgIC8vIFZlcmlmeSBXZWJSVEMgb25seSBmaWVsZHMuCisgICAgYXNzZXJ0
X3RydWUoInJ0cFRpbWVzdGFtcCIgaW4gbWV0YWRhdGEsICJydHBUaW1lc3RhbXAgc2hvdWxkIGJl
IHByZXNlbnQiKTsKKyAgICBhc3NlcnRfdHJ1ZSgicmVjZWl2ZVRpbWUiIGluIG1ldGFkYXRhLCAi
cmVjZWl2ZVRpbWUgc2hvdWxkIGJlIHByZXNlbnQiKTsKKyAgICAvLyBjYXB0dXJlVGltZSBpcyBu
b3QgYXZhaWxhYmxlIHVudGlsIHJvdW5kdHJpcCB0aW1lIGVzdGltYXRpb24gaXMgZG9uZS4KKyAg
ICBpZiAoZ0NhbGxiYWNrQ291bnRlciA+IDYwIHx8ICJjYXB0dXJlVGltZSIgaW4gbWV0YWRhdGEp
IHsKKyAgICAgIGFzc2VydF90cnVlKCJjYXB0dXJlVGltZSIgaW4gbWV0YWRhdGEsICJjYXB0dXJl
VGltZSBzaG91bGQgYmUgcHJlc2VudCIpOworICAgICAgdGVzdC5kb25lKCk7CisgICAgfQorICAg
IGVsc2UgeworICAgICAgLy8gS2VlcCByZXF1ZXN0aW5nIGNhbGxiYWNrcy4KKyAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdyZW1vdGUtdmlldycpLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2sodGVzdC5zdGVwX2Z1bmModmVyaWZ5X3BhcmFtcykpOworICAgIH0KKyAgfQorCisgIHZhciB2
ZXJpZnlfbG9jYWxfbWV0YWRhdGEgPSAobm93LCBtZXRhZGF0YSkgPT4geworICAgIGFzc2VydF9n
cmVhdGVyX3RoYW4obWV0YWRhdGEuZXhwZWN0ZWREaXNwbGF5VGltZSwgMCk7CisgICAgYXNzZXJ0
X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXMsIDApOworICAgIGFzc2VydF9n
cmVhdGVyX3RoYW4obWV0YWRhdGEud2lkdGgsIDApOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4o
bWV0YWRhdGEuaGVpZ2h0LCAwKTsKKyAgICBhc3NlcnRfdHJ1ZSgiY2FwdHVyZVRpbWUiIGluIG1l
dGFkYXRhLCAiY2FwdHVyZVRpbWUgc2hvdWxkIGFsd2F5cyBiZSBwcmVzZW50IGZvciBsb2NhbCBz
b3VyY2VzLiIpOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEuY2FwdHVyZVRpbWUs
IDApOworICB9CisKKyAgLy8gSWYgdGhlIHJlbW90ZSB2aWRlbyBnZXRzIHZpZGVvIGRhdGEgdGhh
dCBpbXBsaWVzIHRoZSBuZWdvdGlhdGlvbgorICAvLyBhcyB3ZWxsIGFzIHRoZSBJQ0UgYW5kIERU
TFMgY29ubmVjdGlvbiBhcmUgdXAuCisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW1vdGUt
dmlldycpCisgICAgICAuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVkbWV0YWRhdGEnLCBmdW5jdGlv
bigpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVtb3RlLXZpZXcnKS5yZXF1ZXN0
VmlkZW9GcmFtZUNhbGxiYWNrKHRlc3Quc3RlcF9mdW5jKHZlcmlmeV9wYXJhbXMpKTsKKyAgfSk7
CisKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvY2FsLXZpZXcnKQorICAgICAgLmFkZEV2
ZW50TGlzdGVuZXIoJ2xvYWRtZXRhZGF0YScsIGZ1bmN0aW9uKCkgeworICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdsb2NhbC12aWV3JykucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0ZXN0
LnN0ZXBfZnVuY19kb25lKHZlcmlmeV9sb2NhbF9tZXRhZGF0YSkpOworICB9KTsKKworCisgIGZ1
bmN0aW9uIGdldE5vaXNlU3RyZWFtT2tDYWxsYmFjayhsb2NhbFN0cmVhbSkgeworICAgIGdGaXJz
dENvbm5lY3Rpb24gPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24obnVsbCk7CisgICAgdGVzdC5hZGRf
Y2xlYW51cCgoKSA9PiBnRmlyc3RDb25uZWN0aW9uLmNsb3NlKCkpOworICAgIGdGaXJzdENvbm5l
Y3Rpb24ub25pY2VjYW5kaWRhdGUgPSBvbkljZUNhbmRpZGF0ZVRvRmlyc3Q7CisKKyAgICBnU2Vj
b25kQ29ubmVjdGlvbiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihudWxsKTsKKyAgICB0ZXN0LmFk
ZF9jbGVhbnVwKCgpID0+IGdTZWNvbmRDb25uZWN0aW9uLmNsb3NlKCkpOworICAgIGdTZWNvbmRD
b25uZWN0aW9uLm9uaWNlY2FuZGlkYXRlID0gb25JY2VDYW5kaWRhdGVUb1NlY29uZDsKKyAgICBn
U2Vjb25kQ29ubmVjdGlvbi5vbnRyYWNrID0gb25SZW1vdGVUcmFjazsKKworICAgIGxvY2FsU3Ry
ZWFtLmdldFRyYWNrcygpLmZvckVhY2goZnVuY3Rpb24odHJhY2spIHsKKyAgICAgIC8vIEJpZGly
ZWN0aW9uYWwgc3RyZWFtcyBhcmUgbmVlZGVkIGluIG9yZGVyIGZvciBjYXB0dXJlVGltZSB0byBi
ZQorICAgICAgLy8gcG9wdWxhdGVkLiBVc2UgdGhlIHNhbWUgc291cmNlIGluIGJvdGggZGlyZWN0
aW9ucy4KKyAgICAgIGdGaXJzdENvbm5lY3Rpb24uYWRkVHJhY2sodHJhY2ssIGxvY2FsU3RyZWFt
KTsKKyAgICAgIGdTZWNvbmRDb25uZWN0aW9uLmFkZFRyYWNrKHRyYWNrLCBsb2NhbFN0cmVhbSk7
CisgICAgfSk7CisKKyAgICBnRmlyc3RDb25uZWN0aW9uLmNyZWF0ZU9mZmVyKCkudGhlbihvbk9m
ZmVyQ3JlYXRlZCwgZmFpbGVkKCdjcmVhdGVPZmZlcicpKTsKKworICAgIHZhciB2aWRlb1RhZyA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2NhbC12aWV3Jyk7CisgICAgdmlkZW9UYWcuc3Jj
T2JqZWN0ID0gbG9jYWxTdHJlYW07CisgIH07CisKKyAgdmFyIG9uT2ZmZXJDcmVhdGVkID0gdGVz
dC5zdGVwX2Z1bmMoZnVuY3Rpb24ob2ZmZXIpIHsKKyAgICBnRmlyc3RDb25uZWN0aW9uLnNldExv
Y2FsRGVzY3JpcHRpb24ob2ZmZXIpOworCisgICAgLy8gVGhpcyB3b3VsZCBub3JtYWxseSBnbyBh
Y3Jvc3MgdGhlIGFwcGxpY2F0aW9uJ3Mgc2lnbmFsaW5nIHNvbHV0aW9uLgorICAgIC8vIEluIG91
ciBjYXNlLCB0aGUgInNpZ25hbGluZyIgaXMgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uLgorICAgIHJl
Y2VpdmVDYWxsKG9mZmVyLnNkcCk7CisgIH0pOworCisgIGZ1bmN0aW9uIHJlY2VpdmVDYWxsKG9m
ZmVyU2RwKSB7CisgICAgdmFyIHBhcnNlZE9mZmVyID0gbmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bih7IHR5cGU6ICdvZmZlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNkcDogb2ZmZXJTZHAgfSk7CisgICAgZ1NlY29uZENvbm5lY3Rpb24uc2V0
UmVtb3RlRGVzY3JpcHRpb24ocGFyc2VkT2ZmZXIpOworCisgICAgZ1NlY29uZENvbm5lY3Rpb24u
Y3JlYXRlQW5zd2VyKCkudGhlbihvbkFuc3dlckNyZWF0ZWQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZhaWxlZCgnY3JlYXRlQW5zd2VyJykpOworICB9OworCisgIHZhciBv
bkFuc3dlckNyZWF0ZWQgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihhbnN3ZXIpIHsKKyAgICBn
U2Vjb25kQ29ubmVjdGlvbi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisKKyAgICAvLyBT
aW1pbGFybHksIHRoaXMgd291bGQgZ28gb3ZlciB0aGUgYXBwbGljYXRpb24ncyBzaWduYWxpbmcg
c29sdXRpb24uCisgICAgaGFuZGxlQW5zd2VyKGFuc3dlci5zZHApOworICB9KTsKKworICBmdW5j
dGlvbiBoYW5kbGVBbnN3ZXIoYW5zd2VyU2RwKSB7CisgICAgdmFyIHBhcnNlZEFuc3dlciA9IG5l
dyBSVENTZXNzaW9uRGVzY3JpcHRpb24oeyB0eXBlOiAnYW5zd2VyJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNkcDogYW5zd2VyU2RwIH0pOwor
ICAgIGdGaXJzdENvbm5lY3Rpb24uc2V0UmVtb3RlRGVzY3JpcHRpb24ocGFyc2VkQW5zd2VyKTsK
KyAgfTsKKworICB2YXIgb25JY2VDYW5kaWRhdGVUb0ZpcnN0ID0gdGVzdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZXZlbnQpIHsKKyAgICAvLyBJZiBldmVudC5jYW5kaWRhdGUgaXMgbnVsbCA9IG5vIG1v
cmUgY2FuZGlkYXRlcy4KKyAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7CisgICAgICBnU2Vjb25k
Q29ubmVjdGlvbi5hZGRJY2VDYW5kaWRhdGUoZXZlbnQuY2FuZGlkYXRlKTsKKyAgICB9CisgIH0p
OworCisgIHZhciBvbkljZUNhbmRpZGF0ZVRvU2Vjb25kID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZXZlbnQpIHsKKyAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7CisgICAgICBnRmlyc3RDb25u
ZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOworICAgIH0KKyAgfSk7CisK
KyAgdmFyIG9uUmVtb3RlVHJhY2sgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgewor
ICAgIHZhciB2aWRlb1RhZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW1vdGUtdmlldycp
OworICAgIGlmICghdmlkZW9UYWcuc3JjT2JqZWN0KSB7CisgICAgICB2aWRlb1RhZy5zcmNPYmpl
Y3QgPSBldmVudC5zdHJlYW1zWzBdOworICAgIH0KKyAgfSk7CisKKyAgLy8gUmV0dXJucyBhIHN1
aXRhYmxlIGVycm9yIGNhbGxiYWNrLgorICBmdW5jdGlvbiBmYWlsZWQoZnVuY3Rpb25fbmFtZSkg
eworICAgIHJldHVybiB0ZXN0LnVucmVhY2hlZF9mdW5jKCdXZWJSVEMgY2FsbGVkIGVycm9yIGNh
bGxiYWNrIGZvciAnICsgZnVuY3Rpb25fbmFtZSk7CisgIH0KKworICAvLyBUaGlzIGZ1bmN0aW9u
IHN0YXJ0cyB0aGUgdGVzdC4KKyAgdGVzdC5zdGVwKGZ1bmN0aW9uKCkgeworICAgIGdldE5vaXNl
U3RyZWFtKHsgdmlkZW86IHRydWUsIGF1ZGlvOiB0cnVlIH0pCisgICAgICAudGhlbih0ZXN0LnN0
ZXBfZnVuYyhnZXROb2lzZVN0cmVhbU9rQ2FsbGJhY2spLCBmYWlsZWQoJ2dldE5vaXNlU3RyZWFt
JykpOworICB9KTsKKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVx
dWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJh
Y2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNDQwNDE0M2ZhNDA4ZWJiYjhmNDljYzMxODBlMDY1ZDIwMGZm
YTRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2suaHRtbApA
QCAtMCwwICsxLDE1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzx0aXRsZT5UZXN0IHRo
ZSBiYXNpY3Mgb2YgdGhlIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKSBBUEkuPC90
aXRsZT4KKzxib2R5PjwvYm9keT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL21lZGlhLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+Cit2YXIgdGVzdFZpZGVvID0geworICB1cmw6IGdldFZpZGVvVVJJKCcvbWVkaWEv
bW92aWVfNScpLAorICBoZWlnaHQ6IDI0MCwKKyAgd2lkdGg6IDMyMCwKK30KKwordmFyIGFsdFRl
c3RWaWRlbyA9IHsKKyAgdXJsOiBnZXRWaWRlb1VSSSgnL21lZGlhL2NvdW50aW5nJyksCisgIGhl
aWdodDogMjQwLAorICB3aWR0aDogMzIwLAorfQorCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsK
KyAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOworCisgICAgbGV0IGlkID0gdmlkZW8ucmVx
dWVzdFZpZGVvRnJhbWVDYWxsYmFjaygKKyAgICAgIHQuc3RlcF9mdW5jX2RvbmUoKHRpbWUsIG1l
dGFkYXRhKSA9PiB7CisgICAgICAgIGFzc2VydF90cnVlKHRpbWUgPiAwKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhtZXRhZGF0YS5oZWlnaHQsIHRlc3RWaWRlby5oZWlnaHQpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKG1ldGFkYXRhLndpZHRoLCB0ZXN0VmlkZW8ud2lkdGgpOworICAgICAgfSkK
KyAgICApOworCisgICAgYXNzZXJ0X3RydWUoaWQgPiAwKTsKKworICAgIHZpZGVvLnNyYyA9IHRl
c3RWaWRlby51cmw7CisgICAgdmlkZW8ucGxheSgpOworCit9LCAnVGVzdCB3ZSBjYW4gcmVnaXN0
ZXIgYSB2aWRlby5yVkZDIGNhbGxiYWNrLicpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsK
KyAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOworCisgICAgdmlkZW8ucmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFjaygKKyAgICAgIHQuc3RlcF9mdW5jKHZpZGVvX25vdyA9PiB7CisgICAgICAg
IC8vIFF1ZXVlIGEgY2FsbCB0byB3aW5kb3cuckFGLCBhbmQgbWFrZSBzdXJlIGl0IGlzIGV4ZWN1
dGVkIHdpdGhpbiB0aGUKKyAgICAgICAgLy8gc2FtZSB0dXJuIG9mIHRoZSBldmVudCBsb29wICh3
aXRoIHRoZSBzYW1lICd0aW1lJyBwYXJhbWV0ZXIpLgorICAgICAgICB3aW5kb3cucmVxdWVzdEFu
aW1hdGlvbkZyYW1lKCB0LnN0ZXBfZnVuY19kb25lKCB3aW5kb3dfbm93ID0+IHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHZpZGVvX25vdywgd2luZG93X25vdyk7CisgICAgICAgIH0pKTsKKyAg
ICAgIH0pCisgICAgKTsKKworICAgIHZpZGVvLnNyYyA9IHRlc3RWaWRlby51cmw7CisgICAgdmlk
ZW8ucGxheSgpOworCit9LCAnVGVzdCB2aWRlby5yVkZDIGNhbGxiYWNrcyBydW4gYmVmb3JlIHdp
bmRvdy5yQUYgY2FsbGJhY2tzLicpOworCisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAg
IGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICBsZXQgaWQgPSB2aWRlby5yZXF1ZXN0
VmlkZW9GcmFtZUNhbGxiYWNrKAorICAgICAgdC5zdGVwX2Z1bmMoXyA9PiB7CisgICAgICAgIGFz
c2VydF91bnJlYWNoZWQoIkNhbmNlbGxlZCBjYWxsYmFja3Mgc2hvdWxkbid0IGJlIGV4ZWN1dGVk
IikKKyAgICAgIH0pCisgICAgKTsKKworICAgIHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFj
ayhpZCk7CisKKyAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKAorICAgICAgdC5z
dGVwX2Z1bmMoXyA9PiB7CisgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIHRoZSBvdGhlciBjYWxs
YmFjayBzaG91bGRuJ3QgaGF2ZSBmaXJlZCwgYnV0CisgICAgICAgIC8vIGdpdmUgaXQgc29tZSBt
b3JlIHRpbWUgYW5kIHJlYWxseSBtYWtlIHN1cmUgaXQgZG9lc24ndCwgYnkgZ29pbmcKKyAgICAg
ICAgLy8gdGhyb3VnaHQgdGhlIGV2ZW50IGxvb3Agb25jZSBtb3JlLgorICAgICAgICB0LnN0ZXBf
dGltZW91dCgoKSA9PiB7IHQuZG9uZSgpOyB9LCAwKTsKKyAgICAgIH0pCisgICAgKTsKKworICAg
IHZpZGVvLnNyYyA9IHRlc3RWaWRlby51cmw7CisgICAgdmlkZW8ucGxheSgpOworfSwgJ1Rlc3Qg
d2UgY2FuIGNhbmNlbCBhIHZpZGVvLnJWRkMgcmVxdWVzdC4nKTsKKwordGVzdChmdW5jdGlvbih0
KSB7CisgICAgbGV0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKKworICAgIC8vIHJlcXVlc3RWaWRl
b0ZyYW1lQ2FsbGJhY2soKSBleHBlY3RzIDEgZnVuY3Rpb24gYXMgYSBwYXJhbWV0ZXIuCisgICAg
YXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsIF8gPT4geyB2aWRlby5yZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrKCkgfSApOworICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBfID0+IHsg
dmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygwKSB9KTsKKyAgICBhc3NlcnRfdGhyb3dz
X2pzKFR5cGVFcnJvciwgXyA9PiB7IHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soImZv
byIpIH0pOworCisgICAgLy8gY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKCkgZXhwZWN0cyAxIG51
bWJlciBhcyBhIHBhcmFtZXRlcgorICAgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBfID0+
IHsgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKCkgfSApOworCisgICAgLy8gSW52YWxp
ZCBjYWxscyBhcmUganVzdCBuby1vcHMKKyAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJh
Y2soXyA9PiB7fSk7CisgICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKE5hTik7Cisg
ICAgdmlkZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKCJmb28iKTsKKyAgICB2aWRlby5jYW5j
ZWxWaWRlb0ZyYW1lQ2FsbGJhY2soMTIzNDUpOworICAgIHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVD
YWxsYmFjaygtMSk7CisKK30sICdUZXN0IGludmFsaWQgY2FsbHMgdG8gdGhlIHZpZGVvLnJWRkMg
QVBJLicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgZnVuY3Rpb24odCkgeworICAgIGxldCB2aWRl
byA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICBsZXQgZmlyc3Rfd2lkdGggPSAwOworICAgIGxldCBm
aXJzdF9oZWlnaHQgPSAwOworCisgICAgdmlkZW8uc3JjID0gdGVzdFZpZGVvLnVybDsKKworICAg
IGF3YWl0IHZpZGVvLnBsYXkoKTsKKworICAgIC8vIFN3aXRjaCB0byBhbmQgZnJvbSBhIHNlY29u
ZCB2aWRlbywgYW5kIG1ha2Ugc3VyZSB3ZSBnZXQgclZGQyBjYWxscyBhdAorICAgIC8vIGVhY2gg
c3RlcC4KKyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAg
ICAgbGV0IG9uUmV0dXJuVG9PcmlnaW5hbFZpZGVvID0gdC5zdGVwX2Z1bmMoKG5vdywgbWV0YWRh
dGEpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhmaXJzdF93aWR0aCwgbWV0YWRhdGEud2lk
dGgpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGZpcnN0X2hlaWdodCwgbWV0YWRhdGEuaGVpZ2h0
KTsKKworICAgICAgICByZXNvbHZlKCk7CisgICAgICB9KTsKKworICAgICAgbGV0IG9uQWx0Vmlk
ZW9GaXJzdEZyYW1lID0gdC5zdGVwX2Z1bmMoKG5vdywgbWV0YWRhdGEpID0+IHsKKyAgICAgICAg
Ly8gVGhlIHZpZGVvcyBoYXZlIGRpZmZlcmVudCBzaXplcywgYW5kIHNob3VsZG4ndCBtYXRjaC4K
KyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoZmlyc3Rfd2lkdGgsIG1ldGFkYXRhLndpZHRoKTsK
KyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoZmlyc3RfaGVpZ2h0LCBtZXRhZGF0YS5oZWlnaHQp
OworCisgICAgICAgIC8vIFN3aXRoIGJhY2sgdG8gdGhlIG9yaWdpbmFsIHZpZGVvLgorICAgICAg
ICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKG9uUmV0dXJuVG9PcmlnaW5hbFZpZGVv
KTsKKyAgICAgICAgdmlkZW8uc3JjID0gdGVzdFZpZGVvLnVybDsKKyAgICAgIH0pOworCisgICAg
ICBsZXQgb25GaXJzdEZyYW1lID0gdC5zdGVwX2Z1bmMoKG5vdywgbWV0YWRhdGEpID0+IHsKKyAg
ICAgICAgZmlyc3Rfd2lkdGggPSBtZXRhZGF0YS53aWR0aDsKKyAgICAgICAgZmlyc3RfaGVpZ2h0
ID0gbWV0YWRhdGEuaGVpZ2h0OworCisgICAgICAgIC8vIENhbGxiYWNrcyBzaG91bGQgcGVyc2lz
dCBhZnRlciBjaGFuZ2luZyB0aGUgc291cmNlIHRvIHRoZSBhbHQgdmlkZW8uCisgICAgICAgIHZp
ZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sob25BbHRWaWRlb0ZpcnN0RnJhbWUpOworICAg
ICAgICB2aWRlby5zcmMgPSBhbHRUZXN0VmlkZW8udXJsOworICAgICAgfSkKKworICAgICAgdmlk
ZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayhvbkZpcnN0RnJhbWUpOworICAgIH0pOworfSwg
J1Rlc3QgdmlkZW8uclZGQyBkb2VzIG5vdCBzdG9wIHdoZW4gc3dpdGNoaW5nIHNvdXJjZXMuJyk7
CisKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3czYy1pbXBv
cnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmExNmYxNWZkYjM3NjNmZDNkNDc2YTZhYmE1ODI2NTkzYzhjODFj
ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyNiBAQAorVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0lu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmls
ZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL01FVEEueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy92aWRlby1ydmZjL1JFQURNRS5tZAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy5qcworL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVv
LWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRl
by1mcmFtZS1jYWxsYmFjay1kb20uaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1
cmluZy14ci1zZXNzaW9uLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1w
YXJhbGxlbC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLmh0bWwK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
cmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMuaHRtbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZp
ZGVvLWZyYW1lLWNhbGxiYWNrLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA4OGY3OTkyOWZjOWMyYjVjM2JiZTgxZTM4NzA5YWE4MGVm
ZjJjNTZiLi5lMTA2OWVkZWNmOTdlMmVkNzc2Yjg3N2Q0Njg2MzU1MDk2MTdjZmVkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMzgsNiAr
MTM4LDE1IEBAIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbmFtZS1jbG9ha2lu
Zy10b3Atbm8tY25hbWUtc3ViLTFwLWNuYW1lLmh0bWwKIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9jbmFtZS1jbG9ha2luZy10b3Atbm8tY25hbWUtc3ViLTNwLWNuYW1lLmh0bWwg
WyBQYXNzIF0KIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9jbmFtZS1jbG9ha2lu
Zy10b3Atbm8tY25hbWUtc3ViLW5vLWNuYW1lLmh0bWwgWyBQYXNzIF0KIAoraW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjIFsgUGFzcyBdCisjIFRpbWluZyBvdXQgdGVz
dHMgdW50aWwgd2UgYWRkIHJlZ3VsYXIgdmlkZW8gc3RyZWFtaW5nIGJhY2tlbmQgc3VwcG9ydC4K
K2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVv
LWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZy
YW1lLWNhbGxiYWNrLWRvbS5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHIt
c2Vzc2lvbi5odHRwcy5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1s
IFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVx
dWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1yZXBlYXRpbmcuaHRtbCBbIFNraXAgXQoraW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUt
Y2FsbGJhY2suaHRtbCBbIFNraXAgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCiAjIEVuZCBwbGF0Zm9ybS1zcGVjaWZpYyBkaXJlY3Rvcmllcy4KICMvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCAxNGJjZDczYWVjMTVjYjhlNDU5MzBjOTBjYjBkYjcxYmFjN2U2
NmE3Li41ZTM1ZTgxYTU2MjNjYWRlOWMwMmU5YTMxMjYwNDZkNWQwN2UwOTU2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMTcsNiArMTE3
LDE1IEBAIGZhc3QvZm9ybXMvZmlsZS9lbnRyaWVzLWFwaS9pbWFnZS1uby10cmFuc2NvZGUtb3Bl
bi1wYW5lbC5odG1sIFsgUGFzcyBdCiAKIHN0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLXRyYW5z
YWN0aW9uLWN5Y2xlLmh0bWwgWyBQYXNzIF0KIAoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy92aWRlby1ydmZjIFsgUGFzcyBdCisjIFRpbWluZyBvdXQgdGVzdHMgdW50aWwgd2UgYWRk
IHJlZ3VsYXIgdmlkZW8gc3RyZWFtaW5nIGJhY2tlbmQgc3VwcG9ydC4KK2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNr
LWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRv
bS5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2
ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5odHRwcy5o
dG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
cmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sIFsgU2tpcCBdCitpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFt
ZS1jYWxsYmFjay1yZXBlYXRpbmcuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2suaHRtbCBb
IFNraXAgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBwbGF0
Zm9ybS1zcGVjaWZpYyBkaXJlY3Rvcmllcy4KICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZj
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZjLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NTI4Nzc5Nzc5NzU1YjI1NzZhZmQ4MzNmYzExNDdlOTc1
OTM0ZTFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3BlZXJDb25uZWN0
aW9uLXJ2ZmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgVmFsaWRhdGUg
Y2FsbGJhY2tzIGFuZCBtZXRhZGF0YSBmb3IgcGVlciBjb25uZWN0aW9uIHRyYWNrcworCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy5odG1sIGIvTGF5
b3V0VGVzdHMvd2VicnRjL3BlZXJDb25uZWN0aW9uLXJ2ZmMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDc5
Mzk4MjY4MGVhNjgyYWUwOGI0YjJlNzdjYjkzOGEwMzBlMWYxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2VicnRjL3BlZXJDb25uZWN0aW9uLXJ2ZmMuaHRtbApAQCAtMCwwICsxLDU5
IEBACis8IWRvY3R5cGUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFJlcXVlc3RWaWRl
b0ZyYW1lQ2FsbGJhY2tFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAg
ICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICAgIDx0aXRsZT5UZXN0aW5nIHJ2ZmMg
b24gcGVlciBjb25uZWN0aW9uIHN0cmVhbXM8L3RpdGxlPgorICAgICAgICA8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSJyb3V0aW5lcy5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxi
b2R5PgorICAgICAgICA8dmlkZW8gaWQ9InZpZGVvIiBhdXRvcGxheT0iIj48L3ZpZGVvPgorICAg
ICAgICA8c2NyaXB0PgorYXN5bmMgZnVuY3Rpb24gZ3JhYk5leHRNZXRhZGF0YSh2aWRlbykKK3sK
KyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBj
b25zdCBpZGVudGlmaWVyID0gdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygobm93LCBt
ZXRhZGF0YSkgPT4geworICAgICAgICAgICAgcmVzb2x2ZShtZXRhZGF0YSk7CisgICAgICAgIH0p
OworICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiVGltZWQgb3V0IG1ldGFkYXRhIiks
IDUwMDApOworICAgIH0pOworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAg
ICBjb25zdCBsb2NhbFN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNl
ck1lZGlhKHt2aWRlbzogeyB3aWR0aDogNjQwLCBoZWlnaHQ6IDQ4MCB9IH0pOworICAgIGNvbnN0
IHJlbW90ZVN0cmVhbSA9IGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsK
KyAgICAgICAgY3JlYXRlQ29ubmVjdGlvbnMoKGZpcnN0Q29ubmVjdGlvbikgPT4geworICAgICAg
ICAgICAgcGMxID0gZmlyc3RDb25uZWN0aW9uOworICAgICAgICAgICAgY29uc3Qgc2VuZGVyID0g
Zmlyc3RDb25uZWN0aW9uLmFkZFRyYWNrKGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0s
IGxvY2FsU3RyZWFtKTsKKyAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+IHsKKyAgICAg
ICAgICAgIHBjMiA9IHNlY29uZENvbm5lY3Rpb247CisgICAgICAgICAgICBzZWNvbmRDb25uZWN0
aW9uLm9udHJhY2sgPSAodHJhY2tFdmVudCkgPT4geworICAgICAgICAgICAgICAgIHJlc29sdmUo
dHJhY2tFdmVudC5zdHJlYW1zWzBdKTsKKyAgICAgICAgICAgIH07CisgICAgICAgIH0pOworICAg
ICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwgNTAwMCk7Cisg
ICAgfSk7CisKKyAgICB2aWRlby5zcmNPYmplY3QgPSByZW1vdGVTdHJlYW07CisgICAgYXdhaXQg
dmlkZW8ucGxheSgpOworCisgICAgbGV0IG1ldGFkYXRhID0gYXdhaXQgZ3JhYk5leHRNZXRhZGF0
YSh2aWRlbyk7CisgICAgYXNzZXJ0X2VxdWFscyhtZXRhZGF0YS53aWR0aCwgNjQwKTsKKyAgICBh
c3NlcnRfZXF1YWxzKG1ldGFkYXRhLmhlaWdodCwgNDgwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90
aGFuKG1ldGFkYXRhLnByZXNlbnRlZEZyYW1lcywgMCk7CisgICAgY29uc3QgcHJlc2VudGVkRnJh
bWVzID0gbWV0YWRhdGEucHJlc2VudGVkRnJhbWVzOworCisgICAgYXdhaXQgbG9jYWxTdHJlYW0u
Z2V0VmlkZW9UcmFja3MoKVswXS5hcHBseUNvbnN0cmFpbnRzKHt3aWR0aDogMzIwfSk7CisKKyAg
ICBsZXQgY291bnRlciA9IDA7CisgICAgd2hpbGUgKCsrY291bnRlciA8IDEwMCAmJiBtZXRhZGF0
YS53aWR0aCAhPT0gMzIwKSB7CisgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
c2V0VGltZW91dChyZXNvbHZlLCA1MCkpOworICAgICAgICBtZXRhZGF0YSA9IGF3YWl0IGdyYWJO
ZXh0TWV0YWRhdGEodmlkZW8pOworICAgIH0KKyAgICBhc3NlcnRfZXF1YWxzKG1ldGFkYXRhLndp
ZHRoLCAzMjApOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEucHJlc2VudGVkRnJh
bWVzLCBwcmVzZW50ZWRGcmFtZXMpOworfSwgIlZhbGlkYXRlIGNhbGxiYWNrcyBhbmQgbWV0YWRh
dGEgZm9yIHBlZXIgY29ubmVjdGlvbiB0cmFja3MiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAg
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441864</attachid>
            <date>2021-10-20 04:06:05 -0700</date>
            <delta_ts>2021-10-20 06:26:33 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231803-20211020130603.patch</filename>
            <type>text/plain</type>
            <size>97042</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhjMDJhZmJkNWI3YjI1M2Q1M2I3ZDA1
Nzc2ZGMyOWRmODMzOTllM2EuLjJmZmFjYmY2ZTFmZThhZTcxZjlhNGQ1OTI3NDRjNWNlMjg4NzQ1
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTAtMjAgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrIEFQSSBhbmQgTWVkaWFTdHJlYW1UcmFjay1iYXNlZCBiYWNrZW5kIHN1cHBvcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTgwMwor
CisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIFNjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAyMS0xMC0x
OSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBv
bGQgR0NDIHdvcmthcm91bmQgZm9yIEFsbG9jYXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGI2N2IwM2IyOGY1
ZmViNjgzOTk1ZjcyMGY0MDQ1Njk5Y2U1Mjk4M2QuLmI3MGM2MWZhZmE3YjJmYTg4MDdmMDg5YjYz
NzczYTIxNjA3Mzg3MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMS0xMC0yMCAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIHJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sgQVBJIGFuZCBNZWRpYVN0cmVhbVRyYWNrLWJh
c2VkIGJhY2tlbmQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMxODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgIFVwZGF0ZSBXZWJJREwgdG8gZXhwb3NlIGh0dHBzOi8vd2ljZy5naXRodWIuaW8v
dmlkZW8tcnZmYy8gQVBJLgorICAgICAgICBQdXQgdGhlbSBiZWhpbmQgYSBydW50aW1lIGZsYWcu
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBhbGdvcml0aG1zLCBpbmNsdWRpbmcgdGhl
IGludGVncmF0aW9uIHdpdGggdGhlICd1cGRhdGUgdGhlIHJlbmRlcmluZycgYWxnb3JpdGhtLgor
ICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciB2aWRlbyBlbGVtZW50cyBiYWNrZWQgYnkg
TWVkaWFTdHJlYW0gY29udGVudC4KKyAgICAgICAgV2UgZXhwb3NlIGEgbGltaXRlZCBzZXQgb2Yg
bWV0YWRhdGEgY3VycmVudGx5LCBmb2xsb3ctdXAgcGF0Y2hlcyBzaG91bGQgYWRkIHN1cHBvcnQg
Zm9yIG90aGVyIHZpZGVvIGJhY2tlbmRzIGFuZCBtb3JlIG1ldGFkYXRhLgorICAgICAgICBUaGlz
IHN1cHBvcnQgc2hvdWxkIHN0aWxsIGVuYWJsZSB0byBvcHRpbWl6ZSBhIGJpdCBNZWRpYVN0cmVh
bVRyYWNrIC0+IGNhbnZhcyBwaXBlbGluZXMuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvbWVkaWFz
dHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93Lmh0bWwKKyAg
ICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9y
ZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLmh0bWwK
KyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZm
Yy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS5odG1sCisgICAgICAgICAgICAgICBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1m
cmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5odHRwcy5odG1sCisgICAgICAgICAgICAg
ICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRl
by1mcmFtZS1jYWxsYmFjay1wYXJhbGxlbC5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxs
YmFjay1yZXBlYXRpbmcuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2std2VicnRj
Lmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLmh0bWwKKyAgICAgICAg
ICAgICAgIHdlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZjLmh0bWwKKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFZp
ZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrLmlkbDogQWRkZWQuCisgICAgICAg
ICogaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0Vs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL1ZpZGVvRnJhbWVNZXRhZGF0YS5pZGw6IEFkZGVkLgor
ICAgICAgICAqIGh0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oOiBBZGRlZC4KKyAgICAg
ICAgKiBodG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsOiBBZGRlZC4KKyAgICAgICAg
KiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL1ZpZGVvRnJhbWVNZXRhZGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMubW06CisKIDIwMjEtMTAtMjAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIEF1ZGlvIG92ZXIgcGVlciBjb25uZWN0aW9uIGJlY29tZXMgbGF0ZW50IHdoZW4g
Y2hhbmdpbmcgdGhlIG91dHB1dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwNmJmNTdhMWEyOWVkMWQxNDA1YTRlZmQ3
YzdhMGRjNmE2ZjNmZTJlLi5kZWU3OWFkNWQ5YzZjOGNiZTQ2NjdkMDU3Y2U0YzNmNjYyNjg1ZTZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEwLTIwICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFjayBBUEkgYW5kIE1lZGlhU3RyZWFtVHJhY2stYmFzZWQgYmFja2VuZCBzdXBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE4
MDMKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIHRl
bXBvcmFyeSBnZXR0ZXIvc2V0dGVyIG9mIHJ2ZmMgZmVhdHVyZSBmbGFnLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNl
c1NldFJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkKToKKyAgICAgICAgKFdLUHJlZmVy
ZW5jZXNHZXRSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWYuaDoKKwogMjAyMS0xMC0yMCAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQXVkaW8gb3ZlciBwZWVyIGNvbm5l
Y3Rpb24gYmVjb21lcyBsYXRlbnQgd2hlbiBjaGFuZ2luZyB0aGUgb3V0cHV0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50
YWwueWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCmluZGV4IDQ4MTFmNGZjM2YxZjkzY2QyZjk2OGM4NWYwMjIzZGYyMDBj
ODMzMTQuLmI1NTYzZWY4ZjU0YTkwNDhkZWIwOWViYzRmYzA3ZmMyMjY5YzQ3NTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC0xMTI3LDYgKzExMjcsMTggQEAgUmVxdWVzdFN1Ym1p
dEVuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKK1JlcXVlc3RW
aWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVO
YW1lOiAiUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0
aW9uOiAiRW5hYmxlIFJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sgQVBJIgorICBkZWZhdWx0VmFs
dWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXQ6
CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxz
ZQorCiAjIEZJWE1FOiBUaGlzIGlzIG9uIGJ5IGRlZmF1bHQgaW4gV2ViS2l0Mi4gUGVyaGFwcyB3
ZSBzaG91bGQgY29uc2lkZXIgdHVybmluZyBpdCBvbiBmb3IgV2ViS2l0TGVnYWN5IGFzIHdlbGwu
CiBSZXNpemVPYnNlcnZlckVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggNjZlODc5ZDFhZDM0NTk3ZGE1NTFkZjZjMTljNzE2YzRiNDJmYTEzMC4uYmNjODE4Zjk3
OGM4YzRiYjk1M2ZlMjI5ZGI4YzIxOGNkYWJiNmMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTEwMzcsNiArMTAzNyw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgaHRt
bC9IVE1MVHJhY2tFbGVtZW50LmlkbAogICAgIGh0bWwvSFRNTFVMaXN0RWxlbWVudC5pZGwKICAg
ICBodG1sL0hUTUxVbmtub3duRWxlbWVudC5pZGwKKyAgICBodG1sL0hUTUxWaWRlb0VsZW1lbnQr
UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjay5pZGwKICAgICBodG1sL0hUTUxWaWRlb0VsZW1lbnQu
aWRsCiAgICAgaHRtbC9JbWFnZUJpdG1hcC5pZGwKICAgICBodG1sL0ltYWdlQml0bWFwT3B0aW9u
cy5pZGwKQEAgLTEwNTIsNiArMTA1Myw4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVT
CiAgICAgaHRtbC9UaW1lUmFuZ2VzLmlkbAogICAgIGh0bWwvVVJMU2VhcmNoUGFyYW1zLmlkbAog
ICAgIGh0bWwvVmFsaWRpdHlTdGF0ZS5pZGwKKyAgICBodG1sL1ZpZGVvRnJhbWVNZXRhZGF0YS5p
ZGwKKyAgICBodG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsCiAgICAgaHRtbC9Wb2lk
Q2FsbGJhY2suaWRsCiAKICAgICBodG1sL2NhbnZhcy9DYW52YXNDb21wb3NpdGluZy5pZGwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Qg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDEy
ODg1N2I1ZjFmMjZjZDVkNjNhZmE0YjBiMmQ0MzE3ZDg4YWU0NzQuLmEwOWMyOThiOGRlYjU0MjBh
YWU3NDk2YWFhYmU2Mjg0NDA2YmIzMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTAxNSw2ICsxMDE1LDcgQEAgJChQUk9KRUNUX0RJ
UikvaHRtbC9IVE1MTGlua0VsZW1lbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL0hUTUxNYXBF
bGVtZW50LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaWRsCiAk
KFBST0pFQ1RfRElSKS9odG1sL0hUTUxNZWRpYUVsZW1lbnQrQXVkaW9PdXRwdXQuaWRsCiskKFBS
T0pFQ1RfRElSKS9odG1sL0hUTUxNZWRpYUVsZW1lbnQrUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
ay5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5pZGwKICQoUFJPSkVD
VF9ESVIpL2h0bWwvSFRNTE1lbnVFbGVtZW50LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9IVE1M
TWVudUl0ZW1FbGVtZW50LmlkbApAQCAtMTA1NCw2ICsxMDU1LDcgQEAgJChQUk9KRUNUX0RJUikv
aHRtbC9IVE1MVGl0bGVFbGVtZW50LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MVHJhY2tF
bGVtZW50LmlkbAogJChQUk9KRUNUX0RJUikvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmlkbAogJChQ
Uk9KRUNUX0RJUikvaHRtbC9IVE1MVW5rbm93bkVsZW1lbnQuaWRsCiskKFBST0pFQ1RfRElSKS9o
dG1sL0hUTUxWaWRlb0VsZW1lbnQrUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjay5pZGwKICQoUFJP
SkVDVF9ESVIpL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwv
SW1hZ2VCaXRtYXAuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL0ltYWdlQml0bWFwT3B0aW9ucy5p
ZGwKQEAgLTEwNjksNiArMTA3MSw4IEBAICQoUFJPSkVDVF9ESVIpL2h0bWwvVGV4dE1ldHJpY3Mu
aWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL1RpbWVSYW5nZXMuaWRsCiAkKFBST0pFQ1RfRElSKS9o
dG1sL1VSTFNlYXJjaFBhcmFtcy5pZGwKICQoUFJPSkVDVF9ESVIpL2h0bWwvVmFsaWRpdHlTdGF0
ZS5pZGwKKyQoUFJPSkVDVF9ESVIpL2h0bWwvVmlkZW9GcmFtZU1ldGFkYXRhLmlkbAorJChQUk9K
RUNUX0RJUikvaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmlkbAogJChQUk9KRUNUX0RJ
UikvaHRtbC9Wb2lkQ2FsbGJhY2suaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL1dlYktpdE1lZGlh
S2V5RXJyb3IuaWRsCiAkKFBST0pFQ1RfRElSKS9odG1sL2NhbnZhcy9BTkdMRUluc3RhbmNlZEFy
cmF5cy5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKaW5kZXggOWQ0MWU3MzQ0MDAzNDhhYTk4YTZhY2M1NWVkYWMyNDNkYWRlNWJjNS4uODIy
ZmM4NWExMTZlYWU2Y2E1MDRiNmI1MTZlMWVhMjY4ODIwNDBjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTk5NSw2ICs5OTUsOCBA
QCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxNZWRp
YUVsZW1lbnQrQXVkaW9PdXRwdXQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0hUTUxNZWRpYUVsZW1lbnQrQXVkaW9PdXRwdXQuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVkaWFFbGVtZW50K1Jl
bW90ZVBsYXliYWNrLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNIVE1MTWVkaWFFbGVtZW50K1JlbW90ZVBsYXliYWNrLmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTE1lZGlhRWxlbWVudCtSZXF1ZXN0
VmlkZW9GcmFtZUNhbGxiYWNrLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNIVE1MTWVkaWFFbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2su
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MTWVk
aWFFbGVtZW50LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNIVE1MTWVkaWFFbGVtZW50LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTSFRNTE1lbnVFbGVtZW50LmNwcApAQCAtMTA3NSw2ICsxMDc3LDggQEAg
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVW5rbm93
bkVsZW1lbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0hUTUxVbmtub3duRWxlbWVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0hUTUxWaWRlb0VsZW1lbnQrUGljdHVyZUluUGljdHVyZS5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFZpZGVvRWxl
bWVudCtQaWN0dXJlSW5QaWN0dXJlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNr
LmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1M
VmlkZW9FbGVtZW50K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVmlkZW9FbGVtZW50LmNwcAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVmlkZW9FbGVt
ZW50LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSGFz
aENoYW5nZUV2ZW50LmNwcApAQCAtMjMwNyw2ICsyMzExLDEwIEBAICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmFsaWRpdHlTdGF0ZS5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmFsaWRpdHlTdGF0ZS5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZpZGVvQ29uZmln
dXJhdGlvbi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTVmlkZW9Db25maWd1cmF0aW9uLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTVmlkZW9GcmFtZU1ldGFkYXRhLmNwcAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWaWRlb0ZyYW1lTWV0YWRhdGEuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNWaWRlb0ZyYW1lUmVxdWVz
dENhbGxiYWNrLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmlkZW9QbGF5YmFja1F1YWxpdHkuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1ZpZGVvUGxheWJhY2tRdWFs
aXR5LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVmlk
ZW9UcmFjaytNZWRpYVNvdXJjZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4
IDRkNmQ5MWY0ZjlmMjg1MGZiMTY1NjgwNWM1Y2MyMzg2M2FmNTMwZDkuLmQ5MjRhYmU5YTc3Zjc3
OWRjMjI1NmU5M2VmZDMzMjAwNGY1NTY5OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQpAQCAtOTA2LDYgKzkwNiw3IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3Jl
KS9odG1sL0hUTUxVTGlzdEVsZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFVu
a25vd25FbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL0hUTUxWaWRlb0VsZW1lbnQu
aWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9G
cmFtZUNhbGxiYWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL0ltYWdlQml0bWFwLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9odG1sL0ltYWdlQml0bWFwT3B0aW9ucy5pZGwgXAogICAgICQoV2Vi
Q29yZSkvaHRtbC9JbWFnZURhdGEuaWRsIFwKQEAgLTkyMCw2ICs5MjEsOCBAQCBKU19CSU5ESU5H
X0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkvaHRtbC9UaW1lUmFuZ2VzLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9odG1sL1VSTFNlYXJjaFBhcmFtcy5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9W
YWxpZGl0eVN0YXRlLmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL1ZpZGVvRnJhbWVNZXRhZGF0
YS5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9odG1sL1ZvaWRDYWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29y
ZSkvaHRtbC9XZWJLaXRNZWRpYUtleUVycm9yLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2Nh
bnZhcy9BTkdMRUluc3RhbmNlZEFycmF5cy5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYWMw
NjBkZGE3ZDQ4MzNjZGU4ZjQyOTE2N2Y4NGMwNjRmMzIzZDhmYy4uNjkxNTk2YzE5MGRiYmE0ZmZk
MzViMTE0NTUxMWJhNTk3YzlmZWViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC03NjEsNiArNzYx
LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIGh0bWwvVVJM
RGVjb21wb3NpdGlvbi5oCiAgICAgaHRtbC9VUkxSZWdpc3RyeS5oCiAgICAgaHRtbC9WYWxpZGl0
eVN0YXRlLmgKKyAgICBodG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaAogICAgIGh0bWwv
Vm9pZENhbGxiYWNrLmgKIAogICAgIGh0bWwvY2FudmFzL0ltYWdlQml0bWFwUmVuZGVyaW5nQ29u
dGV4dFNldHRpbmdzLmgKQEAgLTExODcsNiArMTE4OCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9Vc2VyQWdlbnQuaAogICAgIHBsYXRmb3Jt
L1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaAogICAgIHBsYXRmb3JtL1ZhbGlkYXRpb25C
dWJibGUuaAorICAgIHBsYXRmb3JtL1ZpZGVvRnJhbWVNZXRhZGF0YS5oCiAgICAgcGxhdGZvcm0v
V2ViR0xTdGF0ZVRyYWNrZXIuaAogICAgIHBsYXRmb3JtL1dpZGdldC5oCiAgICAgcGxhdGZvcm0v
V2luZG93c0tleWJvYXJkQ29kZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBmMzQxMzFlZmM4ZmZkZTU1
MDVmYTE2MDNlYTEwMjA1NTA4MWI4MWI0Li40YmVhMTRmNDRmYmY1MjExOTBmNjMzYWI2NzMwNjkx
MjMzYTU1YmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMzc0NCw2ICszNzQ0LDggQEAgSlNWVFRSZWdp
b24uY3BwCiBKU1ZUVFJlZ2lvbkxpc3QuY3BwCiBKU1ZhbGlkaXR5U3RhdGUuY3BwCiBKU1ZpZGVv
Q29uZmlndXJhdGlvbi5jcHAKK0pTVmlkZW9GcmFtZU1ldGFkYXRhLmNwcAorSlNWaWRlb0ZyYW1l
UmVxdWVzdENhbGxiYWNrLmNwcAogSlNWaWRlb1BsYXliYWNrUXVhbGl0eS5jcHAKIEpTVmlkZW9U
cmFjay5jcHAKIEpTVmlkZW9UcmFja0xpc3QuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDJiZTM4OGMxNjAwYTRmYzA1MDNh
YzhhMmViNGEwMzc1Y2U3YzliNS4uMzQwZTQyMGJhYjU5YmJmNzhhYjBhZjY1ZmE0ZDlmMzEyMDY3
MTNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTIyNSw2ICsxMjI1LDggQEAKIAkJNDFEMjhEMEQyMTM5RTA1ODAwRjQyMDZG
IC8qIExpYldlYlJUQ1N0YXRzQ29sbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRDI4RDBCMjEzOUUwMUQwMEY0MjA2RiAvKiBMaWJXZWJS
VENTdGF0c0NvbGxlY3Rvci5jcHAgKi87IH07CiAJCTQxRDQxQzY3MjI1Njg3NEYwMDY5Nzk0MiAv
KiBTZXJ2aWNlV29ya2VySW50ZXJuYWxzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDFENDFDNjUyMjU2ODU5MjAwNjk3OTQyIC8qIFNlcnZpY2VXb3Jr
ZXJJbnRlcm5hbHMubW0gKi87IH07CiAJCTQxREU3QzdDMjIyREExNDMwMDUzMkI2NSAvKiBTdG9y
YWdlUXVvdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MURFN0M3QjIyMkRBMTNFMDA1MzJCNjUgLyogU3RvcmFnZVF1b3RhTWFuYWdlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxREVF
RkIwMjcxOUIyOTAwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURFRUZBQzI3MTlCMjg4
MDBDQjhENzQgLyogVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxREVFRkI2MjcxOUJBMUEwMENCOEQ3
NCAvKiBWaWRlb0ZyYW1lTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxREVFRkI0MjcxOUJBMTkwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lTWV0
YWRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0MURFRkNCNjFFNTZDMUJEMDAwRDlFNUYgLyogSlNET01NYXBMaWtlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MURFRkNCNDFFNTZDMUI5MDAwRDlF
NUYgLyogSlNET01NYXBMaWtlLmggKi87IH07CiAJCTQxRTEyRTlGMjRGRTc0RTIwMDkzRkZCNCAv
KiBXZWJTb2NrZXRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MUUxMkU5RDI0RkU3NEUyMDA5M0ZGQjQgLyogV2ViU29ja2V0SWRlbnRp
Zmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTQxRTFCMUQxMEZGNTk4NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFMUIxQ0IwRkY1OTg2OTAwNTc2
QjNCIC8qIEFic3RyYWN0V29ya2VyLmggKi87IH07CkBAIC04Mjk0LDYgKzgyOTYsMTEgQEAKIAkJ
NDFENkJEOTgyNTFCM0FEQTAwNTVBN0I3IC8qIEhUTUxNZWRpYUVsZW1lbnQrQXVkaW9PdXRwdXQu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9ICJIVE1MTWVkaWFFbGVtZW50K0F1ZGlvT3V0cHV0
LmlkbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREU3QzdBMjIyREExM0QwMDUz
MkI2NSAvKiBTdG9yYWdlUXVvdGFNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFN0b3JhZ2VRdW90YU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MURFN0M3QjIyMkRBMTNFMDA1MzJCNjUgLyogU3RvcmFnZVF1b3RhTWFuYWdl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlUXVvdGFNYW5hZ2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxREVFRkFDMjcxOUIyODgwMENCOEQ3
NCAvKiBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnJh
bWVSZXF1ZXN0Q2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFERUVG
QUUyNzE5QjI4OTAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MURFRUZBRjI3MTlCMjg5MDBDQjhENzQgLyogVmlkZW9GcmFtZU1ldGFkYXRhLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBWaWRlb0ZyYW1lTWV0YWRhdGEuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MURFRUZCMTI3MTlCMkJFMDBDQjhENzQgLyogSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0Vmlk
ZW9GcmFtZUNhbGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSAiSFRNTFZpZGVvRWxlbWVudCtSZXF1ZXN0VmlkZW9G
cmFtZUNhbGxiYWNrLmlkbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxREVFRkI0
MjcxOUJBMTkwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lTWV0YWRhdGEuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GcmFtZU1ldGFkYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxREVGQ0IyMUU1NkMxQjkwMDBEOUU1RiAvKiBKU0RPTUJpbmRpbmdJbnRl
cm5hbHMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSBKU0RPTUJp
bmRpbmdJbnRlcm5hbHMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREVGQ0Iz
MUU1NkMxQjkwMDBEOUU1RiAvKiBKU0RPTU1hcExpa2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNET01NYXBMaWtlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDFERUZDQjQxRTU2QzFCOTAwMEQ5RTVGIC8qIEpTRE9NTWFwTGlrZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTU1hcExpa2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTI0MjIyLDYgKzI0MjI5LDcgQEAKIAkJCQkwRjI2QTdBQTIwNTRF
QzVBMDA5MEExNDEgLyogSFRNTFVua25vd25FbGVtZW50LmNwcCAqLywKIAkJCQlBRDQ5OTE0MTE4
RjA4MTUxMDBCRjAwOTIgLyogSFRNTFVua25vd25FbGVtZW50LmggKi8sCiAJCQkJQUQ0OTkxNDIx
OEYwODE1MTAwQkYwMDkyIC8qIEhUTUxVbmtub3duRWxlbWVudC5pZGwgKi8sCisJCQkJNDFERUVG
QjEyNzE5QjJCRTAwQ0I4RDc0IC8qIEhUTUxWaWRlb0VsZW1lbnQrUmVxdWVzdFZpZGVvRnJhbWVD
YWxsYmFjay5pZGwgKi8sCiAJCQkJRTQ0NjEzOTgwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxWaWRl
b0VsZW1lbnQuY3BwICovLAogCQkJCUU0NDYxMzk5MENENjMzMTAwMEZBREE3NSAvKiBIVE1MVmlk
ZW9FbGVtZW50LmggKi8sCiAJCQkJRTQ0NjEzOUEwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxWaWRl
b0VsZW1lbnQuaWRsICovLApAQCAtMjQzNDIsNiArMjQzNTAsOSBAQAogCQkJCUY1QTE1NDI2MTI3
OTUzNEQwMEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5oICovLAogCQkJCTE1Qzc3MDhBMTAw
RDNDNkEwMDVCQTI2NyAvKiBWYWxpZGl0eVN0YXRlLmggKi8sCiAJCQkJMTVDNzcwODkxMDBEM0M2
QTAwNUJBMjY3IC8qIFZhbGlkaXR5U3RhdGUuaWRsICovLAorCQkJCTQxREVFRkFGMjcxOUIyODkw
MENCOEQ3NCAvKiBWaWRlb0ZyYW1lTWV0YWRhdGEuaWRsICovLAorCQkJCTQxREVFRkFDMjcxOUIy
ODgwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmggKi8sCisJCQkJNDFERUVG
QUUyNzE5QjI4OTAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaWRsICovLAog
CQkJCUU0NDYxM0I0MENENjM0NEUwMEZBREE3NSAvKiBWb2lkQ2FsbGJhY2suaCAqLywKIAkJCQlF
NDQ2MTNBMDBDRDYzMzEwMDBGQURBNzUgLyogVm9pZENhbGxiYWNrLmlkbCAqLywKIAkJCQkyRDE5
MzIxNzFEQTY0RTE5MDBBNTRBMDggLyogV2ViS2l0TWVkaWFLZXlFcnJvci5oICovLApAQCAtMjg0
NzgsNiArMjg0ODksNyBAQAogCQkJCUEzQUY5RDgyMjAzMjUzMjQwMDZDQUQwNiAvKiBVc2VyQWdl
bnQuaCAqLywKIAkJCQk3MUM5MTYwNzFEMTQ4M0EzMDBBQ0E0N0QgLyogVXNlckludGVyZmFjZUxh
eW91dERpcmVjdGlvbi5oICovLAogCQkJCTgzQzQ1QjhEMURDMkI2N0MwMDg4NzFCQSAvKiBWYWxp
ZGF0aW9uQnViYmxlLmggKi8sCisJCQkJNDFERUVGQjQyNzE5QkExOTAwQ0I4RDc0IC8qIFZpZGVv
RnJhbWVNZXRhZGF0YS5oICovLAogCQkJCTUxNUY3OTUxMUNGQ0EzQzcwMENDRUQ5MyAvKiBXZWJD
b3JlQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICovLAogCQkJCTUxNUY3OTUyMUNGQ0EzQzcwMENDRUQ5
MyAvKiBXZWJDb3JlQ3Jvc3NUaHJlYWRDb3BpZXIuaCAqLywKIAkJCQk4MzlBMkYyQjFFMjA0QTZE
MDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuY3BwICovLApAQCAtMzYwMzksNiArMzYwNTEs
OCBAQAogCQkJCURGNEUzOEUwMjUyNzk1OTUwMDJBNzQ4MSAvKiBWZXJzaW9uQ2hlY2tzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0EyNTcxNTEyOTNDMDEwMDA3QTI2M0QgLyogVmVydGljYWxQb3Np
dGlvbkNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDNFRUYzQjI1Nzk5RkExMDA2NTYzQkIg
LyogVmlkZW9Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MURFRUZCNjI3MTlC
QTFBMDBDQjhENzQgLyogVmlkZW9GcmFtZU1ldGFkYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MURFRUZCMDI3MTlCMjkwMDBDQjhENzQgLyogVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTJCMEQ0QzAxQzU3RkQ2NjAwNzdDRTUzIC8qIFZpZGVvRnVsbHNj
cmVlbkNoYW5nZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzRkJDNEFGNDE4OTg4MTU2
MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUyQjBENEMyMUM1N0ZGOTEwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VNYWMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNzI0MmJj
MjNkMjc1YWRkYWRmNTBkOWM2Mjk2MzdhNzFlOTYxMjQwMi4uNTI1MDYyOWYyY2M2YTRhYWRkNjYx
MmViNWQyNjVhOGIxZTQ4ZGRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMTcsNiAr
MTE3LDcgQEAKICNpbmNsdWRlICJIVE1MU3R5bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRp
dGxlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxVbmtub3duRWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxWaWRlb0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIKICNpbmNs
dWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIkhhc2hDaGFuZ2VFdmVudC5oIgpAQCAtNjcz
OSw2ICs2NzQwLDMyIEBAIHZvaWQgRG9jdW1lbnQ6OnNlcnZpY2VSZXF1ZXN0QW5pbWF0aW9uRnJh
bWVDYWxsYmFja3MoKQogICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci0+c2Vy
dmljZVJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrcyhkb21XaW5kb3coKS0+ZnJvemVuTm93
VGltZXN0YW1wKCkpOwogfQogCit2b2lkIERvY3VtZW50OjpzZXJ2aWNlUmVxdWVzdFZpZGVvRnJh
bWVDYWxsYmFja3MoKQoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBpZiAoIWRvbVdpbmRvdygp
KQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIGlzU2VydmljaW5nUmVxdWVzdFZpZGVvRnJh
bWVDYWxsYmFja3MgPSBmYWxzZTsKKyAgICBmb3JFYWNoTWVkaWFFbGVtZW50KFtub3cgPSBkb21X
aW5kb3coKS0+ZnJvemVuTm93VGltZXN0YW1wKCksICZpc1NlcnZpY2luZ1JlcXVlc3RWaWRlb0Zy
YW1lQ2FsbGJhY2tzXShhdXRvJiBlbGVtZW50KSB7CisgICAgICAgIGlmICghaXM8SFRNTFZpZGVv
RWxlbWVudD4oZWxlbWVudCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byYg
dmlkZW9FbGVtZW50ID0gZG93bmNhc3Q8SFRNTFZpZGVvRWxlbWVudD4oZWxlbWVudCk7CisgICAg
ICAgIGlmICh2aWRlb0VsZW1lbnQuc2hvdWxkU2VydmljZVJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2tzKCkpIHsKKyAgICAgICAgICAgIGlzU2VydmljaW5nUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
a3MgPSB0cnVlOworICAgICAgICAgICAgdmlkZW9FbGVtZW50LnNlcnZpY2VSZXF1ZXN0VmlkZW9G
cmFtZUNhbGxiYWNrcyhub3cpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBpZiAoIWlzU2Vy
dmljaW5nUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja3MpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpKQorICAgICAgICBwYWdlLT5zY2hlZHVsZVJl
bmRlcmluZ1VwZGF0ZShSZW5kZXJpbmdVcGRhdGVTdGVwOjpWaWRlb0ZyYW1lQ2FsbGJhY2tzKTsK
KyNlbmRpZgorfQorCiB2b2lkIERvY3VtZW50Ojp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZv
cm1EaXNwbGF5SUQgZGlzcGxheUlEKQogewogICAgIGlmIChSZW5kZXJWaWV3KiB2aWV3ID0gcmVu
ZGVyVmlldygpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDEzYzk5ZGMyMTVjM2M0NmRlZGEz
ODE3MWFjZWVkMzAzYWZlZTk1MWYuLjUzYzdlNDlhOGQ2MWYxNzRjMThmMzdlYjZlM2Q0ZWY2ZjNl
NTQ3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMTE0LDYgKzExMTQsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCByZXN1bWVTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXJDYWxsYmFja3MoKTsK
IAogICAgIHZvaWQgc2VydmljZVJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrcygpOworICAg
IHZvaWQgc2VydmljZVJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tzKCk7CiAKICAgICB2b2lkIHdp
bmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggM2JjYzY4OWRmM2I3YWMwYWVhYjEwODViMjdkMTNm
Y2Y5ZGQ0NDJiNS4uMWMxYjJkYzE1YWEwYjY5MzIxNzhhMjkzMGNhOGYyYjg5NDBmNTM0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTM5LDYgKzM5LDcgQEAKICNp
bmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIKICNpbmNs
dWRlICJNZWRpYVVuaXF1ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZWR1Y2VkUmVzb2x1dGlv
blNlY29uZHMuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tDbGllbnQuaCIKICNpbmNsdWRlICJWaWRl
b1RyYWNrQ2xpZW50LmgiCiAjaW5jbHVkZSAiVmlzaWJpbGl0eUNoYW5nZUNsaWVudC5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50K1JlcXVlc3RWaWRl
b0ZyYW1lQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50
K1JlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2suaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxMjY0ZGM2Y2E4NzNl
MDE2NmI4NDc1Y2RiNDVhYmQwZjFlOTIyZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQrUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjay5pZGwK
QEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK1sKKyAgICBDb25kaXRpb25hbD1WSURFTywKKyAgICBFbmFibGVkQnlTZXR0aW5nPVJl
cXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkCitdIHBhcnRpYWwgaW50ZXJmYWNlIEhUTUxW
aWRlb0VsZW1lbnQgeworICAgIHVuc2lnbmVkIGxvbmcgcmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
ayhWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrIGNhbGxiYWNrKTsKKyAgICB1bmRlZmluZWQgY2Fu
Y2VsVmlkZW9GcmFtZUNhbGxiYWNrKHVuc2lnbmVkIGxvbmcgaGFuZGxlKTsKK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAppbmRleCBiNzJkMDQzZDMxZjM5MjVhMTA5
ZmYyMzMwM2NkOWYyN2FmNTM5MTdhLi5iYjA1ZTI3NjFmODJkYzlkZTMxMWQ0Y2JhMjM0Nzk1MTY5
MDljMzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKQEAgLTU4
Niw2ICs1ODYsNTYgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpleGl0VG9GdWxsc2NyZWVuTW9k
ZVdpdGhvdXRBbmltYXRpb25JZlBvc3NpYmxlKEhUTUxNZWRpYUUKIH0KICNlbmRpZgogCit1bnNp
Z25lZCBIVE1MVmlkZW9FbGVtZW50OjpyZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKFJlZjxWaWRl
b0ZyYW1lUmVxdWVzdENhbGxiYWNrPiYmIGNhbGxiYWNrKQoreworICAgIGF1dG8gaWRlbnRpZmll
ciA9ICsrbV9uZXh0VmlkZW9GcmFtZVJlcXVlc3RJbmRleDsKKyAgICBtX3ZpZGVvRnJhbWVSZXF1
ZXN0cy5hcHBlbmQobWFrZVVuaXF1ZVJlZjxWaWRlb0ZyYW1lUmVxdWVzdD4oaWRlbnRpZmllciwg
V1RGTW92ZShjYWxsYmFjaykpKTsKKworICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS5w
YWdlKCkpCisgICAgICAgIHBhZ2UtPnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKFJlbmRlcmluZ1Vw
ZGF0ZVN0ZXA6OlZpZGVvRnJhbWVDYWxsYmFja3MpOworCisgICAgcmV0dXJuIGlkZW50aWZpZXI7
Cit9CisKK3ZvaWQgSFRNTFZpZGVvRWxlbWVudDo6Y2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKHVu
c2lnbmVkIGlkZW50aWZpZXIpCit7CisgICAgYXV0byBpbmRleCA9IG1fdmlkZW9GcmFtZVJlcXVl
c3RzLmZpbmRNYXRjaGluZyhbaWRlbnRpZmllcl0oYXV0byYgcmVxdWVzdCkgeyByZXR1cm4gcmVx
dWVzdC0+aWRlbnRpZmllciA9PSBpZGVudGlmaWVyOyB9KTsKKyAgICBpZiAoaW5kZXggPT0gbm90
Rm91bmQpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAobV9pc1J1bm5pbmdWaWRlb0ZyYW1lUmVx
dWVzdHMpIHsKKyAgICAgICAgbV92aWRlb0ZyYW1lUmVxdWVzdHNbaW5kZXhdLT5jYW5jZWxsZWQg
PSB0cnVlOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fdmlkZW9GcmFtZVJlcXVlc3Rz
LnJlbW92ZShpbmRleCk7Cit9CisKK3ZvaWQgSFRNTFZpZGVvRWxlbWVudDo6c2VydmljZVJlcXVl
c3RWaWRlb0ZyYW1lQ2FsbGJhY2tzKFJlZHVjZWRSZXNvbHV0aW9uU2Vjb25kcyBub3cpCit7Cisg
ICAgaWYgKCFwbGF5ZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byB2aWRlb0ZyYW1l
TWV0YWRhdGEgPSBwbGF5ZXIoKS0+dmlkZW9GcmFtZU1ldGFkYXRhKCk7CisgICAgaWYgKCF2aWRl
b0ZyYW1lTWV0YWRhdGEpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZiBwcm90ZWN0ZWRUaGlz
IHsgKnRoaXMgfTsKKworICAgIC8vIFdlIHN0b3JlIHRoZSBzaXplIGJlZm9yZSBjYWxsaW5nIGNh
bGxiYWNrcyBhcyB3ZSBkbyBub3Qgd2FudCB0byBjYWxsIG5ld2x5IGFkZGVkIGNhbGxiYWNrcy4K
KyAgICBhdXRvIGNhbGxiYWNrQ291bnQgPSBtX3ZpZGVvRnJhbWVSZXF1ZXN0cy5zaXplKCk7CisK
KyAgICBtX2lzUnVubmluZ1ZpZGVvRnJhbWVSZXF1ZXN0cyA9IHRydWU7CisgICAgZm9yIChzaXpl
X3QgaW5kZXggPSAwOyBpbmRleCA8IGNhbGxiYWNrQ291bnQ7ICsraW5kZXgpIHsKKyAgICAgICAg
YXV0byYgcmVxdWVzdCA9IG1fdmlkZW9GcmFtZVJlcXVlc3RzW2luZGV4XTsKKyAgICAgICAgaWYg
KCFyZXF1ZXN0LT5jYW5jZWxsZWQpIHsKKyAgICAgICAgICAgIHJlcXVlc3QtPmNhbGxiYWNrLT5o
YW5kbGVFdmVudChub3cudmFsdWUoKSwgKnZpZGVvRnJhbWVNZXRhZGF0YSk7CisgICAgICAgICAg
ICByZXF1ZXN0LT5jYW5jZWxsZWQgPSB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIG1faXNS
dW5uaW5nVmlkZW9GcmFtZVJlcXVlc3RzID0gZmFsc2U7CisKKyAgICBtX3ZpZGVvRnJhbWVSZXF1
ZXN0cy5yZW1vdmVBbGxNYXRjaGluZyhbXShhdXRvJiBjYWxsYmFjaykgeyByZXR1cm4gY2FsbGJh
Y2stPmNhbmNlbGxlZDsgfSk7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFZpZGVvRWxlbWVudC5oCmluZGV4IGU4NzJiOGJjZDM3YzhmMjhmNjEzZTc3ZjhjZWMwYzc5ZTVh
M2FiNzIuLjllYjhmNmU1YjhjN2FlMDBjNGU3NDE0OGM3OGQ4MzNkNjY3MDI4NTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNs
dWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNp
bmNsdWRlICJWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmgiCiAjaW5jbHVkZSA8bWVtb3J5Pgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOCw2ICszOSw3IEBAIGNsYXNzIEhUTUxJbWFnZUxv
YWRlcjsKIGNsYXNzIEltYWdlQnVmZmVyOwogY2xhc3MgUmVuZGVyVmlkZW87CiBjbGFzcyBQaWN0
dXJlSW5QaWN0dXJlT2JzZXJ2ZXI7CitjbGFzcyBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrOwog
CiBlbnVtIGNsYXNzIFBpeGVsRm9ybWF0IDogdWludDhfdDsKIGVudW0gY2xhc3MgUmVuZGVyaW5n
TW9kZSA6IGJvb2w7CkBAIC0xMTAsNiArMTEyLDEyIEBAIHB1YmxpYzoKIAogICAgIFJlbmRlclZp
ZGVvKiByZW5kZXJlcigpIGNvbnN0OwogCisgICAgYm9vbCBzaG91bGRTZXJ2aWNlUmVxdWVzdFZp
ZGVvRnJhbWVDYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiAhbV92aWRlb0ZyYW1lUmVxdWVzdHMu
aXNFbXB0eSgpOyB9CisgICAgdm9pZCBzZXJ2aWNlUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja3Mo
UmVkdWNlZFJlc29sdXRpb25TZWNvbmRzKTsKKworICAgIHVuc2lnbmVkIHJlcXVlc3RWaWRlb0Zy
YW1lQ2FsbGJhY2soUmVmPFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2s+JiYpOworICAgIHZvaWQg
Y2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKHVuc2lnbmVkKTsKKwogcHJpdmF0ZToKICAgICBIVE1M
VmlkZW9FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgY3JlYXRl
ZEJ5UGFyc2VyKTsKIApAQCAtMTQ4LDYgKzE1NiwyMiBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShQ
SUNUVVJFX0lOX1BJQ1RVUkVfQVBJKQogICAgIFBpY3R1cmVJblBpY3R1cmVPYnNlcnZlciogbV9w
aWN0dXJlSW5QaWN0dXJlT2JzZXJ2ZXIgeyBudWxscHRyIH07CiAjZW5kaWYKKworICAgIHN0cnVj
dCBWaWRlb0ZyYW1lUmVxdWVzdCB7CisgICAgICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9D
QVRFRDsKKyAgICAgICAgVmlkZW9GcmFtZVJlcXVlc3QodW5zaWduZWQgaWRlbnRpZmllciwgUmVm
PFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2s+JiYgY2FsbGJhY2spCisgICAgICAgICAgICA6IGlk
ZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAgICAgICAgICwgY2FsbGJhY2soV1RGTW92ZShjYWxs
YmFjaykpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIHVuc2lnbmVkIGlkZW50aWZp
ZXIgeyAwIH07CisgICAgICAgIFJlZjxWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrPiBjYWxsYmFj
azsKKyAgICAgICAgYm9vbCBjYW5jZWxsZWQgeyBmYWxzZSB9OworICAgIH07CisgICAgVmVjdG9y
PFVuaXF1ZVJlZjxWaWRlb0ZyYW1lUmVxdWVzdD4+IG1fdmlkZW9GcmFtZVJlcXVlc3RzOworICAg
IHVuc2lnbmVkIG1fbmV4dFZpZGVvRnJhbWVSZXF1ZXN0SW5kZXggeyAwIH07CisgICAgYm9vbCBt
X2lzUnVubmluZ1ZpZGVvRnJhbWVSZXF1ZXN0cyB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVN
ZXRhZGF0YS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVNZXRhZGF0YS5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmNhOTVlOGYwM2QzMDU3YWMyZTgwYzRhNWQyZmEyMzA1NmFmNzhiZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmlkZW9GcmFtZU1ldGFkYXRhLmlk
bApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKK3R5cGVkZWYgZG91YmxlIERPTUhpZ2hSZXNUaW1lU3RhbXA7CisKK1sKKyAgICBD
b25kaXRpb25hbD1WSURFTywKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10gZGljdGlvbmFy
eSBWaWRlb0ZyYW1lTWV0YWRhdGEgeworICAgIC8vIEZJWE1FOiBleHBvc2UgcHJlc2VudGF0aW9u
VGltZSBhbmQgZXhwZWN0ZWREaXNwbGF5VGltZS4KKyAgICAvLyByZXF1aXJlZCBET01IaWdoUmVz
VGltZVN0YW1wIHByZXNlbnRhdGlvblRpbWU7CisgICAgLy8gcmVxdWlyZWQgRE9NSGlnaFJlc1Rp
bWVTdGFtcCBleHBlY3RlZERpc3BsYXlUaW1lOworCisgICAgcmVxdWlyZWQgdW5zaWduZWQgbG9u
ZyB3aWR0aDsKKyAgICByZXF1aXJlZCB1bnNpZ25lZCBsb25nIGhlaWdodDsKKyAgICByZXF1aXJl
ZCBkb3VibGUgbWVkaWFUaW1lOworCisgICAgcmVxdWlyZWQgdW5zaWduZWQgbG9uZyBwcmVzZW50
ZWRGcmFtZXM7CisgICAgZG91YmxlIHByb2Nlc3NpbmdEdXJhdGlvbjsKKworICAgIERPTUhpZ2hS
ZXNUaW1lU3RhbXAgY2FwdHVyZVRpbWU7CisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCByZWNlaXZl
VGltZTsKKyAgICB1bnNpZ25lZCBsb25nIHJ0cFRpbWVzdGFtcDsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0ZmFi
MmNkNWQwNmNhMzA3MzFhMWE2OWI0OTdjMjQ1YWJiMGE3MjEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1ZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaApAQCAtMCwwICsx
LDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU8pCisK
KyNpbmNsdWRlICJBY3RpdmVET01DYWxsYmFjay5oIgorI2luY2x1ZGUgIkNhbGxiYWNrUmVzdWx0
LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBWaWRlb0ZyYW1lTWV0YWRhdGE7CisK
K2NsYXNzIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxWaWRl
b0ZyYW1lUmVxdWVzdENhbGxiYWNrPiwgcHVibGljIEFjdGl2ZURPTUNhbGxiYWNrIHsKK3B1Ymxp
YzoKKyAgICB1c2luZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZlRE9NQ2FsbGJhY2s7CisKKyAg
ICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KGRvdWJsZSwgY29uc3Qg
VmlkZW9GcmFtZU1ldGFkYXRhJikgPSAwOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFZJ
REVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WaWRlb0ZyYW1lUmVxdWVzdENh
bGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFj
ay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjNmN2UxYjFiOTEwZDgzOTdlODQ3MDQ3NGIwNzgyYTg4YTFlNzc5
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmlkZW9GcmFtZVJlcXVl
c3RDYWxsYmFjay5pZGwKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK3R5cGVkZWYgZG91YmxlIERPTUhpZ2hSZXNUaW1lU3RhbXA7
CisKK1sKKyAgICBDb25kaXRpb25hbD1WSURFTywKK10gY2FsbGJhY2sgVmlkZW9GcmFtZVJlcXVl
c3RDYWxsYmFjayA9IHVuZGVmaW5lZChET01IaWdoUmVzVGltZVN0YW1wIG5vdywgVmlkZW9GcmFt
ZU1ldGFkYXRhIG1ldGFkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDAwNjEzZmE2ODc2YTZi
ZTZhOTI2MTMzMjE2MWU0OTY4MjJhZjQxODIuLmRhMWE5YzgyMzQzMjlkMzdiMmI3YjBiYmI2NDNi
MDEwMjk5NGM1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTU4NSw2ICsxNTg1LDEwIEBAIHZv
aWQgUGFnZTo6dXBkYXRlUmVuZGVyaW5nKCkKICAgICAvLyBGSVhNRTogUnVuIHRoZSBmdWxsc2Ny
ZWVuIHN0ZXBzLgogICAgIG1fcmVuZGVyaW5nVXBkYXRlUmVtYWluaW5nU3RlcHMubGFzdCgpLnJl
bW92ZShSZW5kZXJpbmdVcGRhdGVTdGVwOjpGdWxsc2NyZWVuKTsKIAorICAgIHJ1blByb2Nlc3Np
bmdTdGVwKFJlbmRlcmluZ1VwZGF0ZVN0ZXA6OlZpZGVvRnJhbWVDYWxsYmFja3MsIFtdIChEb2N1
bWVudCYgZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQuc2VydmljZVJlcXVlc3RWaWRlb0Zy
YW1lQ2FsbGJhY2tzKCk7CisgICAgfSk7CisKICAgICBydW5Qcm9jZXNzaW5nU3RlcChSZW5kZXJp
bmdVcGRhdGVTdGVwOjpBbmltYXRpb25GcmFtZUNhbGxiYWNrcywgW10gKERvY3VtZW50JiBkb2N1
bWVudCkgewogICAgICAgICBkb2N1bWVudC5zZXJ2aWNlUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2Fs
bGJhY2tzKCk7CiAgICAgfSk7CkBAIC0zNjI2LDYgKzM2MzAsNyBAQCBXVEY6OlRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiB0cywgUmVuZGVyaW5nVXBkYXRlU3RlcCBzdGVw
KQogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAgICAgY2FzZSBSZW5kZXJpbmdVcGRhdGVT
dGVwOjpTY3JvbGxpbmdUcmVlVXBkYXRlOiB0cyA8PCAiU2Nyb2xsaW5nVHJlZVVwZGF0ZSI7IGJy
ZWFrOwogI2VuZGlmCisgICAgY2FzZSBSZW5kZXJpbmdVcGRhdGVTdGVwOjpWaWRlb0ZyYW1lQ2Fs
bGJhY2tzOiB0cyA8PCAiVmlkZW9GcmFtZUNhbGxiYWNrcyI7IGJyZWFrOwogICAgIH0KICAgICBy
ZXR1cm4gdHM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGVjNzcxMWZlM2JkZDc5ZjdlYWIwMzMwZjFi
ZTNiZTBkY2FjMDlmZTcuLjYyMWQyZWEyNDJjN2Q5ZmVhZDA5OTUyY2Q5ODAyNjk1NDBhMGJlOWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCkBAIC0yMTUsNiArMjE1LDcgQEAgZW51bSBjbGFzcyBSZW5kZXJpbmdV
cGRhdGVTdGVwIDogdWludDE2X3QgewogICAgIFNjcm9sbGluZ1RyZWVVcGRhdGUgICAgICAgICAg
ICAgPSAxIDw8IDEzLAogI2VuZGlmCiAgICAgRmx1c2hBdXRvZm9jdXNDYW5kaWRhdGVzICAgICAg
ICA9IDEgPDwgMTQsCisgICAgVmlkZW9GcmFtZUNhbGxiYWNrcyAgICAgICAgICAgICA9IDEgPDwg
MTUsCiB9OwogCiBjb25zdGV4cHIgT3B0aW9uU2V0PFJlbmRlcmluZ1VwZGF0ZVN0ZXA+IHVwZGF0
ZVJlbmRlcmluZ1N0ZXBzID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
VmlkZW9GcmFtZU1ldGFkYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1l
TWV0YWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZmQ5YTQ3MDAyNDhkNGQyNzhkY2UyNzQ5NzgzNjBhNTdi
YWY1OWVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9G
cmFtZU1ldGFkYXRhLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFZJREVPKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBW
aWRlb0ZyYW1lTWV0YWRhdGEgeworICAgIGRvdWJsZSBwcmVzZW50YXRpb25UaW1lIHsgMCB9Owor
ICAgIGRvdWJsZSBleHBlY3RlZERpc3BsYXlUaW1lIHsgMCB9OworCisgICAgdW5zaWduZWQgd2lk
dGggeyAwIH07CisgICAgdW5zaWduZWQgaGVpZ2h0IHsgMCB9OworICAgIGRvdWJsZSBtZWRpYVRp
bWUgeyAwIH07CisKKyAgICB1bnNpZ25lZCBwcmVzZW50ZWRGcmFtZXMgeyAwIH07CisgICAgc3Rk
OjpvcHRpb25hbDxkb3VibGU+IHByb2Nlc3NpbmdEdXJhdGlvbjsKKworICAgIHN0ZDo6b3B0aW9u
YWw8ZG91YmxlPiBjYXB0dXJlVGltZTsKKyAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gcmVjZWl2
ZVRpbWU7CisgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gcnRwVGltZXN0YW1wOworfTsKKwor
fQorCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGNlNzFkNzcyMmQwZGE1Mjg3MmZlNmY3
NmI3ODdlN2Y1YTM5NWMxYWUuLjU2NWYxY2ViZGYxMTY5YzM3OTEzZjkyYjBmYjMzYzg2NzNkMDFl
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKQEAgLTE3MTYsNiArMTcxNiwxMSBAQCBNZWRpYVBsYXllcklkZW50aWZpZXIgTWVkaWFQ
bGF5ZXI6OmlkZW50aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBtX3ByaXZhdGUtPmlkZW50aWZp
ZXIoKTsKIH0KIAorc3RkOjpvcHRpb25hbDxWaWRlb0ZyYW1lTWV0YWRhdGE+IE1lZGlhUGxheWVy
Ojp2aWRlb0ZyYW1lTWV0YWRhdGEoKQoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnZpZGVvRnJh
bWVNZXRhZGF0YSgpOworfQorCiBTdHJpbmcgTWVkaWFQbGF5ZXI6OmVsZW1lbnRJZCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIGNsaWVudCgpLm1lZGlhUGxheWVyRWxlbWVudElkKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCAwNGNmZTE1
MDM1MjNlZjE1ODhiYjUyMjUwNmVjM2FhNmFlYzcwMWM0Li5kYjg1YTMzZDg3YzUyYTM3NzljNTJh
NTAyMTlhYThhMjQxMjQzODg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybUxh
eWVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCiAjaW5jbHVkZSAiVGltZXIu
aCIKKyNpbmNsdWRlICJWaWRlb0ZyYW1lTWV0YWRhdGEuaCIKICNpbmNsdWRlICJWaWRlb1BsYXli
YWNrUXVhbGl0eU1ldHJpY3MuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CkBAIC02NzksNiArNjgwLDggQEAg
cHVibGljOgogICAgIE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3Q7CiAg
ICAgYm9vbCBoYXNNZWRpYUVuZ2luZSgpIGNvbnN0OwogCisgICAgc3RkOjpvcHRpb25hbDxWaWRl
b0ZyYW1lTWV0YWRhdGE+IHZpZGVvRnJhbWVNZXRhZGF0YSgpOworCiBwcml2YXRlOgogICAgIE1l
ZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50Jik7CiAgICAgTWVkaWFQbGF5ZXIoTWVkaWFQbGF5
ZXJDbGllbnQmLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZh
dGUuaAppbmRleCBmMjFlNDRmYzRjNDg0ODRlMzg1NmY2MmEzOGE4NWJjNzFiOTE1NWQwLi5jNTAz
YzY0YzdkNDk0OGE4ZmRlNGU5NGM2MTc5M2U4MTFmOWIxMjAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtMzIx
LDYgKzMyMSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNQYXVzZUF0SG9z
dFRpbWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwbGF5QXRI
b3N0VGltZShjb25zdCBNb25vdG9uaWNUaW1lJikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIGJvb2wgcGF1c2VBdEhvc3RUaW1lKGNvbnN0IE1vbm90b25pY1RpbWUmKSB7IHJldHVybiBm
YWxzZTsgfQorCisgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPFZpZGVvRnJhbWVNZXRhZGF0YT4g
dmlkZW9GcmFtZU1ldGFkYXRhKCkgeyByZXR1cm4geyB9OyB9CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQy5oCmluZGV4IDZhZDkyNThjMGZjMTQ5NjcwNmJkMjExMTY1ZTExMWFhODYwNDgw
YzcuLjRjNGExNmNlNTk2ZTEzYmIzMmRkYzg1ODQ3ZTk4NjlmNjYxNmYyYzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5oCkBAIC0xNjAsNiArMTYwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
c2V0QnVmZmVyaW5nUG9saWN5KE1lZGlhUGxheWVyOjpCdWZmZXJpbmdQb2xpY3kpIG92ZXJyaWRl
OwogICAgIHZvaWQgYXVkaW9PdXRwdXREZXZpY2VDaGFuZ2VkKCkgZmluYWw7CisgICAgc3RkOjpv
cHRpb25hbDxWaWRlb0ZyYW1lTWV0YWRhdGE+IHZpZGVvRnJhbWVNZXRhZGF0YSgpIGZpbmFsOwog
CiAgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgY3VycmVudFJlYWR5U3RhdGUoKTsKICAgICB2
b2lkIHVwZGF0ZVJlYWR5U3RhdGUoKTsKQEAgLTI3OSw2ICsyODAsOSBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9pc1Zpc2libGVJblZpZXdQb3J0IHsgZmFsc2UgfTsKICAgICBib29sIG1faGF2ZVNl
ZW5NZXRhZGF0YSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JGaXJzdEltYWdlIHsg
ZmFsc2UgfTsKKworICAgIHVpbnQ2NF90IG1fc2FtcGxlQ291bnQgeyAwIH07CisgICAgdWludDY0
X3QgbV9sYXN0VmlkZW9GcmFtZU1ldGFkYXRhU2FtcGxlQ291bnQgeyAwIH07CiB9OwogICAgIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDY4MGY4ODdkNTJlYWE1MjJiYThjMGYw
ZTU1YWYxZmM5NTg5NjRlYzQuLjdiYjIyZGJjYzA0ZTIxNDJhYzI2NTVkNjI0YjBlOTdkZWI4Mjlh
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTMxNiw2ICszMTYsOCBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cHJvY2Vzc05ld1ZpZGVvU2Ft
cGxlKE1lZGlhU2FtcGxlJiBzYQogICAgICAgICAgICAgdXBkYXRlUmVhZHlTdGF0ZSgpOwogICAg
IH0KIAorICAgICsrbV9zYW1wbGVDb3VudDsKKwogICAgIGlmIChtX2Rpc3BsYXlNb2RlICE9IExp
dmVQcmV2aWV3ICYmICFtX3dhaXRpbmdGb3JGaXJzdEltYWdlKQogICAgICAgICByZXR1cm47CiAK
QEAgLTEwOTQsNiArMTA5NiwyMiBAQCBXVEZMb2dDaGFubmVsJiBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OmxvZ0NoYW5uZWwoKSBjb25zdAogICAgIHJldHVybiBMb2dNZWRp
YTsKIH0KIAorc3RkOjpvcHRpb25hbDxWaWRlb0ZyYW1lTWV0YWRhdGE+IE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9GcmFtZU1ldGFkYXRhKCkKK3sKKyAgICBpZiAo
bV9zYW1wbGVDb3VudCA9PSBtX2xhc3RWaWRlb0ZyYW1lTWV0YWRhdGFTYW1wbGVDb3VudCkKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICBtX2xhc3RWaWRlb0ZyYW1lTWV0YWRhdGFTYW1wbGVDb3Vu
dCA9IG1fc2FtcGxlQ291bnQ7CisKKyAgICBWaWRlb0ZyYW1lTWV0YWRhdGEgbWV0YWRhdGE7Cisg
ICAgbWV0YWRhdGEud2lkdGggPSBtX2ludHJpbnNpY1NpemUud2lkdGgoKTsKKyAgICBtZXRhZGF0
YS5oZWlnaHQgPSBtX2ludHJpbnNpY1NpemUuaGVpZ2h0KCk7CisgICAgbWV0YWRhdGEucHJlc2Vu
dGVkRnJhbWVzID0gbV9zYW1wbGVDb3VudDsKKworICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBn
b29kIHRvIGV4cG9zZSBtb3JlIHZpZGVvIGZyYW1lIG1ldGFkYXRhLgorCisgICAgcmV0dXJuIG1l
dGFkYXRhOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCAyM2RhZWEwNWJkYjg2NmY4NTExMmM4MGY0MGIz
YWI2NjA0Mzc4NzhmLi5iZWQ4MzE2ZjM3NThmOTMzMzAxNGMyZmJlMmYyZDI1YzE4OTU5YmNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApA
QCAtMjIyNiwzICsyMjI2LDEyIEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldFhTU0F1ZGl0b3JFbmFi
bGVkKFdLUHJlZmVyZW5jZXNSZWYpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIFdLUHJl
ZmVyZW5jZXNTZXRSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZChXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpCit7CisgICAgdG9JbXBsKHByZWZlcmVu
Y2VzUmVmKS0+c2V0UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQoZW5hYmxlZCk7Cit9
CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldFJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVk
KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChw
cmVmZXJlbmNlc1JlZiktPnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkKCk7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVm
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmgKaW5k
ZXggMmYxZGMxNTU4ZGVjMTQ2ODFhZDhkMGMyZmVjNmMxMGIxMmMwMDA4Yi4uMjZiMDAyZDQ5ZjYx
NTJhYWJjMmUyYjA0OGJhMzg1OWQwYjY0Y2MxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWYuaApAQCAtMzU1LDYgKzM1NSwxMCBAQCBXS19F
WFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0UmVtb3RlUGxheWJhY2tFbmFibGVkKFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZQogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFNob3Vs
ZFVzZVNlcnZpY2VXb3JrZXJTaG9ydFRpbWVvdXQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
c1JlZik7CiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0U2hvdWxkVXNlU2VydmljZVdv
cmtlclNob3J0VGltZW91dChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVu
YWJsZWQpOwogCisvLyBEZWZhdWx0cyB0byBmYWxzZS4KK1dLX0VYUE9SVCBib29sIFdLUHJlZmVy
ZW5jZXNHZXRSZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRSZXF1ZXN0
VmlkZW9GcmFtZUNhbGxiYWNrRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVm
LCBib29sIGVuYWJsZWQpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDY2YWIzZmU4M2E5
Zjk3ZWNkODlhOGYwMDM4MmRiYzBkMjk1N2M5NmUuLmQ0MmI3MDY0ZjVmNjU2ZjYwNGU5YjgwYzll
ZWZjYjJjZDc4NDZlMWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMC0yMCAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlcXVlc3RWaWRlb0Zy
YW1lQ2FsbGJhY2sgQVBJIGFuZCBNZWRpYVN0cmVhbVRyYWNrLWJhc2VkIGJhY2tlbmQgc3VwcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxODAz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIERpc2FibGUg
cnZmYyBvbiB0ZXN0cyBieSBkZWZhdWx0IHVudGlsIHdlIGltcGxlbWVudCBydmZjIGZvciB1c3Vh
bCB2aWRlbyBzdHJlYW1pbmcuCisgICAgICAgIFdlYlJUQyB0ZXN0cyBlbmFibGUgcnZmYyB0aGVt
c2VsdmVzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
OgorICAgICAgICAoc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKwogMjAyMS0x
MC0yMCAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEl0
IHNob3VsZCBiZSBwb3NzaWJsZSB0byBmb3JtYXQgQysrIGNvZGUgdG8gcHJvamVjdCBzdHlsZSB3
aXRoIFdlYktpdCB0b29scwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1
bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tCmluZGV4IGYzMzlhNDMzM2MwYTkwZjVhNGRlM2VlNmY3YzcwODZlNzYwMThmYzUuLjVkMjAx
MDU0MWUxYjQ0YjE3NGMyZTFjZGU1MjQ0MTI2OTI0NTViMGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTg2Myw4ICs4NjMsMTEgQEAgc3RhdGljIHZv
aWQgc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyhXZWJQcmVmZXJlbmNlcyAqcHJlZmVy
ZW5jZXMsIGNvbnN0IFcKICAgICAgICAgW3ByZWZlcmVuY2VzIF9yZXNldEZvclRlc3RpbmddOwog
CiAgICAgICAgIGlmIChlbmFibGVBbGxFeHBlcmltZW50YWxGZWF0dXJlcykgewotICAgICAgICAg
ICAgZm9yIChXZWJGZWF0dXJlICpmZWF0dXJlIGluIFtXZWJQcmVmZXJlbmNlcyBfZXhwZXJpbWVu
dGFsRmVhdHVyZXNdKQotICAgICAgICAgICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDpZ
RVMgZm9yRmVhdHVyZTpmZWF0dXJlXTsKKyAgICAgICAgICAgIGZvciAoV2ViRmVhdHVyZSAqZmVh
dHVyZSBpbiBbV2ViUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXSkgeworICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBXZSBkaXNhYmxlIHJ2ZmMgYnkgZGVmYXVsdC4gRW5hYmxlIGl0
IHdoZW4gdGhlIHZpZGVvIGJhY2tlbmQgc3VwcG9ydCBpcyBnb29kIGVub3VnaC4KKyAgICAgICAg
ICAgICAgICBhdXRvIGVuYWJsZWQgPSBbZmVhdHVyZS5uYW1lIGlzRXF1YWw6QCJSZXF1ZXN0Vmlk
ZW9GcmFtZUNhbGxiYWNrIl0gPyBOTyA6IFlFUzsKKyAgICAgICAgICAgICAgICBbcHJlZmVyZW5j
ZXMgX3NldEVuYWJsZWQ6ZW5hYmxlZCBmb3JGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAg
fQogICAgICAgICB9CiAKICAgICAgICAgaWYgKHBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldExvY2F0
aW9uKCkpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXgg
YmQwNTY0MTAyY2FhYzIxMTJmYjAyYzgxNjQ1N2EwNTc4YmMyM2EwMS4uNzRhNWMxNDE5NjhjODY5
MjZiOTBiMWRjNjU1YjI4MzZiMzJhZTcwNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKQEAgLTg5Nyw2ICs4OTcsOSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpy
ZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRp
bwogICAgICAgICBpZiAoZW5hYmxlQWxsRXhwZXJpbWVudGFsRmVhdHVyZXMpCiAgICAgICAgICAg
ICBXS1ByZWZlcmVuY2VzRW5hYmxlQWxsRXhwZXJpbWVudGFsRmVhdHVyZXMocHJlZmVyZW5jZXMp
OwogCisgICAgICAgIC8vIEZJWE1FOiBXZSBkaXNhYmxlIHJ2ZmMgYnkgZGVmYXVsdC4gRW5hYmxl
IGl0IHdoZW4gdGhlIHZpZGVvIGJhY2tlbmQgc3VwcG9ydCBpcyBnb29kIGVub3VnaC4KKyAgICAg
ICAgV0tQcmVmZXJlbmNlc1NldFJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkKHByZWZl
cmVuY2VzLCBmYWxzZSk7CisKICAgICAgICAgV0tQcmVmZXJlbmNlc1Jlc2V0QWxsSW50ZXJuYWxE
ZWJ1Z0ZlYXR1cmVzKHByZWZlcmVuY2VzKTsKIAogICAgICAgICBXS1ByZWZlcmVuY2VzU2V0UHJv
Y2Vzc1N3YXBPbk5hdmlnYXRpb25FbmFibGVkKHByZWZlcmVuY2VzLCBvcHRpb25zLnNob3VsZEVu
YWJsZVByb2Nlc3NTd2FwT25OYXZpZ2F0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFiZjMyMGFiMDM2NWY0M2Rl
MzA5Y2M3MjM5NGE3YjM2YTk0NGNhNTUuLmQyYTEyMWNmNjliNzM1NzMxYTczOGNiZjAzNzcxOTgx
ZjcyMWI2NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMC0yMCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlcXVlc3RW
aWRlb0ZyYW1lQ2FsbGJhY2sgQVBJIGFuZCBNZWRpYVN0cmVhbVRyYWNrLWJhc2VkIGJhY2tlbmQg
c3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMxODAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICog
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRp
YS1ydmZjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9n
ZXRVc2VyTWVkaWEtcnZmYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2sy
L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIHdlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZjLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2VicnRjL3BlZXJDb25uZWN0aW9uLXJ2ZmMuaHRtbDogQWRk
ZWQuCisKIDIwMjEtMTAtMTkgIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIE5ldHdvcmtQcm9jZXNzIHN0dWJzIGZvciBwdXNoIHN1YnNjcmlwdGlvbnMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGE5NWNkNDY1ZWU4NmJmNTkwNGFjNWUzZDQzZjc5YzRh
MGFmMThjNWMuLmI4ZjA3M2IzZGE2NTMxMzVkODJiOTRjNjA2MDhiMzczMmMyNzEzMTQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIxLTEwLTIwICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgcmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayBBUEkgYW5kIE1lZGlhU3RyZWFtVHJhY2stYmFz
ZWQgYmFja2VuZCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzE4MDMKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisK
KyAgICAgICAgKiByZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL01FVEEueW1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9SRUFETUUubWQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
aWRsaGFybmVzcy53aW5kb3cuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53aW5kb3cuanM6IEFkZGVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2st
YmVmb3JlLXhyLXNlc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNr
LWJlZm9yZS14ci1zZXNzaW9uLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZG9tLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2
ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kb20uaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxs
YmFjay1kdXJpbmcteHItc2Vzc2lvbi5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2Fs
bGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZp
ZGVvLWZyYW1lLWNhbGxiYWNrLXBhcmFsbGVsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcmVw
ZWF0aW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1yZXBlYXRpbmcuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1l
LWNhbGxiYWNrLXdlYnJ0Yy5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3czYy1pbXBvcnQu
bG9nOiBBZGRlZC4KKwogMjAyMS0xMC0xOSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0
Lm9yZz4KIAogICAgICAgICBTdXBwb3J0IG1vcmUgQ1NTIHByb3BlcnRpZXMgZm9yIDo6bWFya2Vy
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA0NTMxMjliM2IwMmRkNDQ4MzQwOWU4ZDA2ZTAyZTljZGM2
M2M0OTQ5Li5iYWE3YjM1ZGMyNGVmMTdjYTRhMTcxNWNjZDNhYjllYmYxM2E2ZTE2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTIxNiw2ICsyMTYsOSBAQCBmYXN0L2hhcm5lc3MvdWlzY3JpcHRjb250
cm9sbGVyIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVu
dHMvc2Nyb2xsaW5nIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ldmVudHMvZG9jdW1lbnQtbGV2ZWwtdG91Y2htb3ZlLWV2ZW50LWxpc3RlbmVyLXBhc3NpdmUt
YnktZGVmYXVsdC50ZW50YXRpdmUuaHRtbCBbIFNraXAgXQogCisjIE9ubHkgTWFjIGFuZCBpT1Mg
V0syIGhhdmUgYW4gaW1wbGVtZW50YXRpb24gcmlnaHQgbm93LgoraW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjIFsgU2tpcCBdCisKICMgVGhpcyB0ZXN0IG9ubHkgbWFr
ZXMgc2Vuc2Ugb24gTWFjCiBmYXN0L2F0dGFjaG1lbnQvYXR0YWNobWVudC1zdWJ0aXRsZS1yZXNp
emUuaHRtbCBbIFNraXAgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL2dldFVzZXJNZWRpYS1ydmZjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vZ2V0VXNlck1lZGlhLXJ2ZmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2NTli
NDJiZDY1MzQ5ZWFiNDIzNmJlNjMwYTEyN2VkNTBlNzk0OWMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ydmZjLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDYgQEAKKworCitQQVNTIFZhbGlkYXRlIGNhbGxiYWNrcyBjYW4gYmUgdXBk
YXRlZCB3aXRoaW4gYSBjYWxsYmFjaworUEFTUyBWYWxpZGF0ZSBjYWxsYmFja3MgYW5kIG1ldGFk
YXRhIGZvciBnZXRVc2VyTWVkaWEKK1BBU1MgVmFsaWRhdGUgY2FsbGJhY2tzIGFyZSBjYWxsZWQg
b25seSBvbmNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0
VXNlck1lZGlhLXJ2ZmMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNl
ck1lZGlhLXJ2ZmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzA3M2NmYTE1ZjNhZGU5OWRhY2M3NmQxOGM2
ZTYwYzIzYTJmOGZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9nZXRVc2VyTWVkaWEtcnZmYy5odG1sCkBAIC0wLDAgKzEsODkgQEAKKzwhZG9jdHlwZSBo
dG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgUmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0Vu
YWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKyAgICAgICAgPHRpdGxlPlRlc3RpbmcgcnZmYyBvbiBnZXRVc2VyTWVkaWEg
c3RyZWFtPC90aXRsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9k
eT4KKyAgICAgICAgPHZpZGVvIGlkPSJ2aWRlbyIgYXV0b3BsYXk9IiI+PC92aWRlbz4KKyAgICAg
ICAgPHNjcmlwdD4KK2FzeW5jIGZ1bmN0aW9uIGdyYWJOZXh0TWV0YWRhdGEodmlkZW8pCit7Cisg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgY29u
c3QgaWRlbnRpZmllciA9IHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soKG5vdywgbWV0
YWRhdGEpID0+IHsKKyAgICAgICAgICAgIHJlc29sdmUobWV0YWRhdGEpOworICAgICAgICB9KTsK
KyAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICByZWplY3QoIm5vIG1ldGFk
YXRhIGZvciAiICsgaWRlbnRpZmllcik7CisgICAgICAgICAgICB2aWRlby5jYW5jZWxWaWRlb0Zy
YW1lQ2FsbGJhY2soaWRlbnRpZmllcik7CisgICAgICAgIH0sIDUwMDApOworICAgIH0pOworfQor
Citwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBsb2NhbFN0cmVhbSA9
IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzogeyB3aWR0
aDogNjQwLCBoZWlnaHQ6IDQ4MCB9IH0pOworICAgIHZpZGVvLnNyY09iamVjdCA9IGxvY2FsU3Ry
ZWFtOworICAgIGF3YWl0IHZpZGVvLnBsYXkoKTsKKworICAgIGxldCByZXNvbHZlOworICAgIGxl
dCBwcm9taXNlID0gbmV3IFByb21pc2UociA9PiByZXNvbHZlID0gcik7CisgICAgY29uc3QgaWQx
ID0gdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygobm93LCBtZXRhZGF0YSkgPT4gewor
ICAgICAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soaWQxKTsKKyAgICAgICAgdmlk
ZW8uY2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKGlkMik7CisKKyAgICAgICAgY29uc3QgaWQzID0g
dmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygobm93LCBtZXRhZGF0YSkgPT4geyBhc3Nl
cnRfbm90X3JlYWNoZWQoKTsgfSk7CisgICAgICAgIHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVDYWxs
YmFjayhpZDMpOworICAgICAgICBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMCk7CisgICAgfSk7CisK
KyAgICBjb25zdCBpZDIgPSB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKChub3csIG1l
dGFkYXRhKSA9PiB7CisgICAgICAgIGFzc2VydF9ub3RfcmVhY2hlZCgpOworICAgIH0pOworCisg
ICAgcmV0dXJuIHByb21pc2U7Cit9LCAiVmFsaWRhdGUgY2FsbGJhY2tzIGNhbiBiZSB1cGRhdGVk
IHdpdGhpbiBhIGNhbGxiYWNrIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewor
ICAgIGNvbnN0IGxvY2FsU3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRV
c2VyTWVkaWEoe3ZpZGVvOiB7IHdpZHRoOiA2NDAsIGhlaWdodDogNDgwIH0gfSk7CisgICAgdmlk
ZW8uc3JjT2JqZWN0ID0gbG9jYWxTdHJlYW07CisgICAgYXdhaXQgdmlkZW8ucGxheSgpOworCisg
ICAgbGV0IG1ldGFkYXRhID0gYXdhaXQgZ3JhYk5leHRNZXRhZGF0YSh2aWRlbyk7CisgICAgYXNz
ZXJ0X2VxdWFscyhtZXRhZGF0YS53aWR0aCwgNjQwKTsKKyAgICBhc3NlcnRfZXF1YWxzKG1ldGFk
YXRhLmhlaWdodCwgNDgwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLnByZXNl
bnRlZEZyYW1lcywgMCk7CisgICAgY29uc3QgcHJlc2VudGVkRnJhbWVzID0gbWV0YWRhdGEucHJl
c2VudGVkRnJhbWVzOworCisgICAgYXdhaXQgbG9jYWxTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVsw
XS5hcHBseUNvbnN0cmFpbnRzKHt3aWR0aDogMzIwLCBoZWlnaHQ6IDI0MH0pOworCisgICAgbGV0
IGNvdW50ZXIgPSAwOworICAgIHdoaWxlICgrK2NvdW50ZXIgPCAxMDAgJiYgbWV0YWRhdGEud2lk
dGggIT09IDMyMCkgeworICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRp
bWVvdXQocmVzb2x2ZSwgNTApKTsKKyAgICAgICAgbWV0YWRhdGEgPSBhd2FpdCBncmFiTmV4dE1l
dGFkYXRhKHZpZGVvKTsKKyAgICB9CisgICAgYXNzZXJ0X2VxdWFscyhtZXRhZGF0YS53aWR0aCwg
MzIwKTsKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLnByZXNlbnRlZEZyYW1lcywg
cHJlc2VudGVkRnJhbWVzKTsKK30sICJWYWxpZGF0ZSBjYWxsYmFja3MgYW5kIG1ldGFkYXRhIGZv
ciBnZXRVc2VyTWVkaWEiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAg
Y29uc3QgbG9jYWxTdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJN
ZWRpYSh7dmlkZW86IHsgd2lkdGg6IDY0MCwgaGVpZ2h0OiA0ODAgfSB9KTsKKyAgICB2aWRlby5z
cmNPYmplY3QgPSBsb2NhbFN0cmVhbTsKKyAgICBhd2FpdCB2aWRlby5wbGF5KCk7CisKKyAgICBs
ZXQgY291bnRlciA9IDA7CisgICAgbGV0IHJlc29sdmU7CisgICAgY29uc3QgcHJvbWlzZSA9IG5l
dyBQcm9taXNlKHIgPT4gcmVzb2x2ZSA9IHIpOworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1l
Q2FsbGJhY2soKCkgPT4geworICAgICAgICArK2NvdW50ZXI7CisgICAgICAgIHJlc29sdmUoKTsK
KyAgICB9KTsKKyAgICBhd2FpdCBwcm9taXNlOworCisgICAgYXdhaXQgbmV3IFByb21pc2UocmVz
b2x2ZSA9PiB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHJlc29sdmUpKTsKKyAgICBh
c3NlcnRfZXF1YWxzKGNvdW50ZXIsIDEpOworfSwgIlZhbGlkYXRlIGNhbGxiYWNrcyBhcmUgY2Fs
bGVkIG9ubHkgb25jZSIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1l
eHBlY3RhdGlvbnMuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1w
b3J0LWV4cGVjdGF0aW9ucy5qc29uCmluZGV4IDYxMGRkNWNmZDVhZjUwZmJkNjkxMWZjMTcwNTM4
YmZhNDBiZDI2OTYuLjAxMWFiZTIxNWEzMjhmYzI3MzU0ZTc2ZDY0ZmVmNGM5MTk3Nzk2ZjEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVj
dGF0aW9ucy5qc29uCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1w
b3J0LWV4cGVjdGF0aW9ucy5qc29uCkBAIC00NDUsNiArNDQ1LDcgQEAKICAgICAid2ViLXBsYXRm
b3JtLXRlc3RzL3VybCI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3VzZXIt
dGltaW5nIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdmlicmF0aW9uIjog
InNraXAiLCAKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMiOiAiaW1wb3J0Iiwg
CiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy92aXN1YWwtdmlld3BvcnQiOiAiaW1wb3J0IiwgCiAg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93YWktYXJpYSI6ICJza2lwIiwgCiAgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy93YXNtIjogImltcG9ydCIsIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL01FVEEueW1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL01FVEEueW1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjVlNTgxZjQyMzRhZDM5YzgxOWUzNzFhNTMyY2Q0MTY0MjA2MGE3YzQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3ZpZGVvLXJ2ZmMvTUVUQS55bWwKQEAgLTAsMCArMSwzIEBACitzcGVjOiBodHRwczovL3dp
Y2cuZ2l0aHViLmlvL3ZpZGVvLXJ2ZmMvCitzdWdnZXN0ZWRfcmV2aWV3ZXJzOgorICAtIHRndWls
YmVydApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy92aWRlby1ydmZjL1JFQURNRS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWI3YTM1MzA1
MTU4NjFjOTFjNGMwMTJiOTNjMmUwY2Y4ZTkxM2RlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9SRUFETUUu
bWQKQEAgLTAsMCArMSw3IEBACisjIEhUTUxWaWRlb0VsZW1lbnQucmVxdWVzdFZpZGVvRnJhbWVD
YWxsYmFjayBzcGVjaWZpY2F0aW9uIFRlc3RzCisKK1RoZSBIVE1MVmlkZW9FbGVtZW50LnJlcXVl
c3RWaWRlb0ZyYW1lQ2FsbGJhY2sgc3BlY2lmaWNhdGlvbiBpcyBhdmFpbGFibGUgaGVyZTogaHR0
cHM6Ly93aWNnLmdpdGh1Yi5pby92aWRlby1ydmZjCisKK0dpdEh1YiByZXBvc2l0b3J5OiBodHRw
czovL2dpdGh1Yi5jb20vV0lDRy92aWRlby1ydmZjCisKK0ZpbGUgYW4gaXNzdWU6IGh0dHBzOi8v
Z2l0aHViLmNvbS93aWNnL3ZpZGVvLXJ2ZmMvaXNzdWVzL25ldwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5l
c3Mud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTRiY2I2MjRjNTRhMDFkNDFkOTg5MWFhYzQwYzkyMWYyODM5NjY1OAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9pZGxoYXJuZXNzLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBA
QAorCitQQVNTIGlkbF90ZXN0IHNldHVwCitQQVNTIGlkbF90ZXN0IHZhbGlkYXRpb24KK1BBU1Mg
UGFydGlhbCBpbnRlcmZhY2UgSFRNTFZpZGVvRWxlbWVudDogb3JpZ2luYWwgaW50ZXJmYWNlIGRl
ZmluZWQKK1BBU1MgUGFydGlhbCBpbnRlcmZhY2UgSFRNTFZpZGVvRWxlbWVudDogbWVtYmVyIG5h
bWVzIGFyZSB1bmlxdWUKK1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgR2xvYmFsRXZlbnRIYW5k
bGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMg
RG9jdW1lbnRBbmRFbGVtZW50RXZlbnRIYW5kbGVyczogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUK
K1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgRWxlbWVudENvbnRlbnRFZGl0YWJsZTogbWVtYmVy
IG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgSFRNTEVsZW1lbnQgaW5jbHVkZXMgSFRNTE9yU1ZHRWxl
bWVudDogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxlbWVudCBpbmNsdWRlcyBQYXJl
bnROb2RlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBFbGVtZW50IGluY2x1ZGVzIE5v
bkRvY3VtZW50VHlwZUNoaWxkTm9kZTogbWVtYmVyIG5hbWVzIGFyZSB1bmlxdWUKK1BBU1MgRWxl
bWVudCBpbmNsdWRlcyBDaGlsZE5vZGU6IG1lbWJlciBuYW1lcyBhcmUgdW5pcXVlCitQQVNTIEVs
ZW1lbnQgaW5jbHVkZXMgU2xvdHRhYmxlOiBtZW1iZXIgbmFtZXMgYXJlIHVuaXF1ZQorUEFTUyBI
VE1MVmlkZW9FbGVtZW50IGludGVyZmFjZTogb3BlcmF0aW9uIHJlcXVlc3RWaWRlb0ZyYW1lQ2Fs
bGJhY2soVmlkZW9GcmFtZVJlcXVlc3RDYWxsYmFjaykKK1BBU1MgSFRNTFZpZGVvRWxlbWVudCBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBjYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2sodW5zaWduZWQgbG9u
ZykKK1BBU1MgSFRNTFZpZGVvRWxlbWVudCBpbnRlcmZhY2U6IHZpZGVvIG11c3QgaW5oZXJpdCBw
cm9wZXJ0eSAicmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayhWaWRlb0ZyYW1lUmVxdWVzdENhbGxi
YWNrKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKK1BBU1MgSFRNTFZpZGVvRWxlbWVudCBpbnRlcmZh
Y2U6IGNhbGxpbmcgcmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayhWaWRlb0ZyYW1lUmVxdWVzdENh
bGxiYWNrKSBvbiB2aWRlbyB3aXRoIHRvbyBmZXcgYXJndW1lbnRzIG11c3QgdGhyb3cgVHlwZUVy
cm9yCitQQVNTIEhUTUxWaWRlb0VsZW1lbnQgaW50ZXJmYWNlOiB2aWRlbyBtdXN0IGluaGVyaXQg
cHJvcGVydHkgImNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjayh1bnNpZ25lZCBsb25nKSIgd2l0aCB0
aGUgcHJvcGVyIHR5cGUKK1BBU1MgSFRNTFZpZGVvRWxlbWVudCBpbnRlcmZhY2U6IGNhbGxpbmcg
Y2FuY2VsVmlkZW9GcmFtZUNhbGxiYWNrKHVuc2lnbmVkIGxvbmcpIG9uIHZpZGVvIHdpdGggdG9v
IGZldyBhcmd1bWVudHMgbXVzdCB0aHJvdyBUeXBlRXJyb3IKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5l
c3Mud2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVzcy53aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDA4OGZl
NDJlMWY3NDhjOWYzYzczYTBkNDdmMzY2MjA0NzkwZTkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhh
cm5lc3Mud2luZG93Lmh0bWwKQEAgLTAsMCArMSwyIEBACis8IWRvY3R5cGUgaHRtbD48IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIFJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkPXRydWUg
XSAtLT4KKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0
cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5l
c3Mud2luZG93LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhOWU0ZTA5ODhi
ZjY3Yzg4ZGNjZDI5N2NmNTY0YmI5N2Q1ZGU2YmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvaWRsaGFybmVz
cy53aW5kb3cuanMKQEAgLTAsMCArMSwxNyBAQAorLy8gTUVUQTogc2NyaXB0PS9yZXNvdXJjZXMv
V2ViSURMUGFyc2VyLmpzCisvLyBNRVRBOiBzY3JpcHQ9L3Jlc291cmNlcy9pZGxoYXJuZXNzLmpz
CisvLyBNRVRBOiB0aW1lb3V0PWxvbmcKKworJ3VzZSBzdHJpY3QnOworCitpZGxfdGVzdCgKKyAg
Wyd2aWRlby1ydmZjJ10sCisgIFsnaHRtbCcsICdkb20nXSwKKyAgaWRsX2FycmF5ID0+IHsKKyAg
ICBpZGxfYXJyYXkuYWRkX29iamVjdHMoeworICAgICAgSFRNTFZpZGVvRWxlbWVudDogWyd2aWRl
byddLAorICAgIH0pOworICAgIHNlbGYudmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2
aWRlbycpOworICB9CispOworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFj
ay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFt
ZS1jYWxsYmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGY0NzdjMDkzMTk5ZDUyZjJlYzhiMmZlNmUxNTU2ZWRlZDkxOWE1OAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8t
cnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWJlZm9yZS14ci1zZXNzaW9uLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKKworSGFybmVzcyBFcnJvciAoVElNRU9VVCks
IG1lc3NhZ2UgPSBudWxsCisKK1RJTUVPVVQgTWFrZSBzdXJlIHZpZGVvLnJWRkMgd29ya3MgZHVy
aW5nIGEgbm9uLWltbWVyc2l2ZSBzZXNzaW9uIC0gd2ViZ2wgVGVzdCB0aW1lZCBvdXQKK05PVFJV
TiBNYWtlIHN1cmUgdmlkZW8uclZGQyB3b3JrcyBkdXJpbmcgYSBub24taW1tZXJzaXZlIHNlc3Np
b24gLSB3ZWJnbDIKK05PVFJVTiBNYWtlIHN1cmUgdmlkZW8uclZGQyB3b3JrcyBkdXJpbmcgYW4g
aW1tZXJzaXZlIHNlc3Npb24gLSB3ZWJnbAorTk9UUlVOIE1ha2Ugc3VyZSB2aWRlby5yVkZDIHdv
cmtzIGR1cmluZyBhbiBpbW1lcnNpdmUgc2Vzc2lvbiAtIHdlYmdsMgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVx
dWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1iZWZvcmUteHItc2Vzc2lvbi5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3Jl
cXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhyLXNlc3Npb24uaHR0cHMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41Mjc3ZmJiYTkyZmJmNjM1NzlhZDRkNGQ1YTJjYTFkYzJlMzU2Y2Q2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhyLXNlc3Np
b24uaHR0cHMuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PHRpdGxlPlRlc3QgdGhhdCB2aWRlby5yVkZDIGNhbGxiYWNrcyBzdGFydGVkIGJlZm9yZSBhbiBY
UlNlc3Npb24gd29yay48L3RpdGxlPgorPGJvZHk+Cis8L2JvZHk+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9t
ZWRpYS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vd2VieHIvcmVzb3VyY2VzL3dlYnhy
X3V0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3dlYnhyL3Jlc291cmNlcy93ZWJ4
cl90ZXN0X2NvbnN0YW50cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisvLyBTdGFydCB0aGUg
dmlkZW8uclZGQyBjYWxsYmFja3MgYmVmb3JlIHN0YXJ0aW5nIHRoZSBYUiBTZXNzaW9uLgorbGV0
IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKK3ZpZGVvLnNyYyA9IGdl
dFZpZGVvVVJJKCcvbWVkaWEvbW92aWVfNScpOworCit2YXIgbnVtYmVyVkZDcyA9IDA7CitsZXQg
dmlkZW9DYWxsYmFjayA9ICgpID0+IHsKKyAgICBudW1iZXJWRkNzKys7CisgICAgdmlkZW8ucmVx
dWVzdFZpZGVvRnJhbWVDYWxsYmFjayh2aWRlb0NhbGxiYWNrKTsKK30KKwordmlkZW8ucmVxdWVz
dFZpZGVvRnJhbWVDYWxsYmFjayh2aWRlb0NhbGxiYWNrKTsKK3ZpZGVvLnBsYXkoKTsKKworbGV0
IHRlc3RGdW5jdGlvbiA9IGFzeW5jIGZ1bmN0aW9uKHNlc3Npb24sIGZha2VEZXZpY2VDb250cm9s
bGVyLCB0KSB7CisgICAgbGV0IHdhdGNoZXJEb25lID0gbmV3IEV2ZW50KCJ3YXRjaGVyZG9uZSIp
OworICAgIGxldCBldmVudFdhdGNoZXIgPSBuZXcgRXZlbnRXYXRjaGVyKHQsIHNlc3Npb24sIFsi
ZW5kIiwgIndhdGNoZXJkb25lIl0pOworICAgIGxldCBldmVudFByb21pc2UgPSBldmVudFdhdGNo
ZXIud2FpdF9mb3IoWyJlbmQiLCAid2F0Y2hlcmRvbmUiXSk7CisKKyAgICBudW1iZXJWRkNzID0g
MDsKKworICAgIGZ1bmN0aW9uIG9uWFJGcmFtZSh0aW1lLCBmcmFtZSkgeworICAgICAgICBpZihu
dW1iZXJWRkNzID49IDIpIHsKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB2aWRlby5yVkZDcyBh
cmUgc3RpbGwgY29taW5nIHRocm91Z2ggYmVmb3JlIGVuZGluZyB0aGUKKyAgICAgICAgICAgIC8v
IHNlc3Npb24uCisgICAgICAgICAgICBzZXNzaW9uLmVuZCgpOworICAgICAgICB9CisKKyAgICAg
ICAgc2Vzc2lvbi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUob25YUkZyYW1lKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBvblNlc3Npb25FbmQoZXZlbnQpIHsKKyAgICAgICAgLy8gTWFrZSBzdXJlIHdl
IGFyZSBzdGlsbCBnZXR0aW5nIHJWRkMgY2FsbGJhY2tzIGFmdGVyIHRoZSBzZXNzaW9uIGVuZC4K
KyAgICAgICAgbnVtYmVyVkZDcyA9IDA7CisgICAgICAgIHQuc3RlcF93YWl0X2Z1bmMoKCkgPT4g
bnVtYmVyVkZDcyA+PSAyLAorICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHNlc3Npb24u
ZGlzcGF0Y2hFdmVudCh3YXRjaGVyRG9uZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIlRp
bWUgb3V0IHdhaXRpbmcgZm9yIFZGQyBjYWxsYmFja3MiKTsKKyAgICB9CisKKyAgICBzZXNzaW9u
LmFkZEV2ZW50TGlzdGVuZXIoImVuZCIsIG9uU2Vzc2lvbkVuZCwgZmFsc2UpOworICAgIHNlc3Np
b24ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKG9uWFJGcmFtZSk7CisKKyAgICByZXR1cm4gZXZlbnRQ
cm9taXNlOworfQorCit4cl9zZXNzaW9uX3Byb21pc2VfdGVzdCgnTWFrZSBzdXJlIHZpZGVvLnJW
RkMgd29ya3MgZHVyaW5nIGEgbm9uLWltbWVyc2l2ZSBzZXNzaW9uJywKKyAgICB0ZXN0RnVuY3Rp
b24sIFRSQUNLRURfSU1NRVJTSVZFX0RFVklDRSwgJ2lubGluZScpOworCit2aWRlby5jdXJyZW50
VGltZSA9IDA7CisKK3hyX3Nlc3Npb25fcHJvbWlzZV90ZXN0KCdNYWtlIHN1cmUgdmlkZW8uclZG
QyB3b3JrcyBkdXJpbmcgYW4gaW1tZXJzaXZlIHNlc3Npb24nLAorICAgIHRlc3RGdW5jdGlvbiwg
VFJBQ0tFRF9JTU1FUlNJVkVfREVWSUNFLCAnaW1tZXJzaXZlLXZyJyk7CisKKzwvc2NyaXB0Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZG9tLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlk
ZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjYzOWQ0ZjI4ODVlMWY5NzY0OGQ1MDU0NzcwZWFmZWI0MzJkYzUwZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw3IEBACisKK0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVs
bAorCitUSU1FT1VUIFRlc3QgYSB2aWRlbyBvdXRzaWRlIG9mIHRoZSBET00gY2FuIHN0aWxsIHVz
ZSB2aWRlby5yVkZDLiBUZXN0IHRpbWVkIG91dAorVElNRU9VVCBUZXN0IHZpZGVvLnJWRkMgd29y
a3Mgd2l0aCAiZGlzcGxheTpub25lIi4gVGVzdCB0aW1lZCBvdXQKK1RJTUVPVVQgVGVzdCB2aWRl
by5yVkZDIHdvcmtzIHdpdGggInZpc2liaWxpdHk6aGlkZGVuIi4gVGVzdCB0aW1lZCBvdXQKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92
aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZG9tLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay1kb20uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjc3ZDcyOTc4ODNjNGNk
NGY0NzJiMDhjNDM5OTgwNjI4MGZlOGViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8t
ZnJhbWUtY2FsbGJhY2stZG9tLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzx0aXRsZT5UZXN0IHRoZSB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNr
KCkgQVBJIGZvciBub24gdmlzaWJsZSB2aWRlbyBlbGVtZW50cy48L3RpdGxlPgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9j
b21tb24vbWVkaWEuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8L2JvZHk+Cis8c2NyaXB0PgordmFy
IHRlc3RWaWRlbyA9IHsKKyAgdXJsOiBnZXRWaWRlb1VSSSgnL21lZGlhL21vdmllXzUnKSwKKyAg
aGVpZ2h0OiAyNDAsCisgIHdpZHRoOiAzMjAsCit9CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkg
eworICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisKKyAg
ICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHQuc3RlcF9mdW5jX2RvbmUoKSk7Cisg
ICAgdmlkZW8uc3JjID0gdGVzdFZpZGVvLnVybDsKKyAgICB2aWRlby5wbGF5KCk7CisKK30sICdU
ZXN0IGEgdmlkZW8gb3V0c2lkZSBvZiB0aGUgRE9NIGNhbiBzdGlsbCB1c2UgdmlkZW8uclZGQy4n
KTsKKworZnVuY3Rpb24gcnZmY1N0eWxlVGVzdChhcHBseVN0eWxlLCBkZXNjcmlwdGlvbikgewor
ICAgIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgbGV0IHZpZGVvID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
dmlkZW8pOworICAgICAgYXBwbHlTdHlsZSh2aWRlbyk7CisKKyAgICAgIHZpZGVvLnJlcXVlc3RW
aWRlb0ZyYW1lQ2FsbGJhY2soCisgICAgICAgIHQuc3RlcF9mdW5jKCBfID0+IHsKKyAgICAgICAg
ICAvLyBNYWtlIHN1cmUgd2UgY2FuIHJlY2VpdmUgbW9yZSB0aGFuIG9uZSBjYWxsYmFjay4KKyAg
ICAgICAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHQuc3RlcF9mdW5jX2RvbmUo
KSk7CisgICAgICAgIH0pCisgICAgICApOworCisgICAgICB2aWRlby5zcmMgPSB0ZXN0VmlkZW8u
dXJsOworICAgICAgdmlkZW8ucGxheSgpOworICAgIH0sIGRlc2NyaXB0aW9uKTsKK30KKworcnZm
Y1N0eWxlVGVzdCgodmlkZW8pID0+IHsgdmlkZW8uc3R5bGUuZGlzcGxheSA9ICJub25lIn0sCisg
ICdUZXN0IHZpZGVvLnJWRkMgd29ya3Mgd2l0aCAiZGlzcGxheTpub25lIi4nKTsKKworcnZmY1N0
eWxlVGVzdCgodmlkZW8pID0+IHsgdmlkZW8uc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4ifSwK
KyAgJ1Rlc3QgdmlkZW8uclZGQyB3b3JrcyB3aXRoICJ2aXNpYmlsaXR5OmhpZGRlbiIuJyk7CisK
Kzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJh
Y2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJh
bWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU3NzIwMjBlNDkwMjcxYjQzNDI0MWQ5NDk4NjIxZmE5ZWI4MWE0YzcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVv
LXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1kdXJpbmcteHItc2Vzc2lvbi5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQp
LCBtZXNzYWdlID0gbnVsbAorCitUSU1FT1VUIE1ha2Ugc3VyZSB2aWRlby5yVkZDIGNhbGxiYWNr
cyBzdGFydGVkIGR1cmluZyBhbiBpbW1lcnNpdmUgc2Vzc2lvbiBjb250aW51ZSBhZnRlciBpdCBl
bmRzIC0gd2ViZ2wgVGVzdCB0aW1lZCBvdXQKK05PVFJVTiBNYWtlIHN1cmUgdmlkZW8uclZGQyBj
YWxsYmFja3Mgc3RhcnRlZCBkdXJpbmcgYW4gaW1tZXJzaXZlIHNlc3Npb24gY29udGludWUgYWZ0
ZXIgaXQgZW5kcyAtIHdlYmdsMgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxs
YmFjay1kdXJpbmcteHItc2Vzc2lvbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2Fs
bGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDU2MWVlNWZk
MDY1OTQ0ZDEzM2ZhNWQzMTRiNmNlZDJmNzk0NzNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qt
dmlkZW8tZnJhbWUtY2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMuaHRtbApAQCAtMCww
ICsxLDYwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHRpdGxlPlRlc3QgdGhhdCB2aWRl
by5yVkZDIGNhbGxiYWNrcyBzdGFydGVkIGR1cmluZyBhbiBYUlNlc3Npb24gd29yay48L3RpdGxl
PgorPGJvZHk+CisgICAgPGNhbnZhcy8+Cis8L2JvZHk+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9tZWRpYS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vd2VieHIvcmVzb3VyY2VzL3dlYnhyX3V0aWwu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3dlYnhyL3Jlc291cmNlcy93ZWJ4cl90ZXN0
X2NvbnN0YW50cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitsZXQgdGVzdEZ1bmN0aW9uID0g
YXN5bmMgZnVuY3Rpb24oc2Vzc2lvbiwgZmFrZURldmljZUNvbnRyb2xsZXIsIHQpIHsKKyAgICBs
ZXQgd2F0Y2hlckRvbmUgPSBuZXcgRXZlbnQoIndhdGNoZXJkb25lIik7CisgICAgbGV0IGV2ZW50
V2F0Y2hlciA9IG5ldyBFdmVudFdhdGNoZXIodCwgc2Vzc2lvbiwgWyJlbmQiLCAid2F0Y2hlcmRv
bmUiXSk7CisgICAgbGV0IGV2ZW50UHJvbWlzZSA9IGV2ZW50V2F0Y2hlci53YWl0X2ZvcihbImVu
ZCIsICJ3YXRjaGVyZG9uZSJdKTsKKworICAgIC8vIFN0YXJ0IHRoZSB2aWRlby5yVkZDIGNhbGxi
YWNrcyB3aGlsZSB3ZSBhcmUgaW4gdGhlIHRoZSBYUiBTZXNzaW9uLgorICAgIGxldCB2aWRlbyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgdmlkZW8uc3JjID0gZ2V0Vmlk
ZW9VUkkoJy9tZWRpYS9tb3ZpZV81Jyk7CisKKyAgICB2YXIgbnVtYmVyVkZDcyA9IDA7CisgICAg
bGV0IHZpZGVvQ2FsbGJhY2sgPSAoKSA9PiB7CisgICAgICAgIG51bWJlclZGQ3MrKzsKKyAgICAg
ICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh2aWRlb0NhbGxiYWNrKTsKKyAgICB9
CisKKyAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHZpZGVvQ2FsbGJhY2spOwor
ICAgIHZpZGVvLnBsYXkoKTsKKworICAgIGZ1bmN0aW9uIG9uWFJGcmFtZSh0aW1lLCBmcmFtZSkg
eworICAgICAgICBpZihudW1iZXJWRkNzID49IDIpIHsKKyAgICAgICAgICAgIC8vIE1ha2Ugc3Vy
ZSB2aWRlby5yVkZDcyBhcmUgY29taW5nIHRocm91Z2ggYmVmb3JlIGVuZGluZyB0aGUKKyAgICAg
ICAgICAgIC8vIHNlc3Npb24uCisgICAgICAgICAgICBzZXNzaW9uLmVuZCgpOworICAgICAgICB9
CisKKyAgICAgICAgc2Vzc2lvbi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUob25YUkZyYW1lKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBvblNlc3Npb25FbmQoZXZlbnQpIHsKKyAgICAgICAgLy8gTWFr
ZSBzdXJlIHdlIGFyZSBzdGlsbCBnZXR0aW5nIHJWRkMgY2FsbGJhY2tzIGFmdGVyIHRoZSBzZXNz
aW9uIGVuZC4KKyAgICAgICAgbnVtYmVyVkZDcyA9IDA7CisgICAgICAgIHQuc3RlcF93YWl0X2Z1
bmMoKCkgPT4gbnVtYmVyVkZDcyA+PSAyLAorICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+
IHNlc3Npb24uZGlzcGF0Y2hFdmVudCh3YXRjaGVyRG9uZSksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIlRpbWUgb3V0IHdhaXRpbmcgZm9yIFZGQyBjYWxsYmFja3MiKTsKKyAgICB9CisKKyAg
ICBzZXNzaW9uLmFkZEV2ZW50TGlzdGVuZXIoImVuZCIsIG9uU2Vzc2lvbkVuZCwgZmFsc2UpOwor
ICAgIHNlc3Npb24ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKG9uWFJGcmFtZSk7CisKKyAgICByZXR1
cm4gZXZlbnRQcm9taXNlOworfQorCit4cl9zZXNzaW9uX3Byb21pc2VfdGVzdCgnTWFrZSBzdXJl
IHZpZGVvLnJWRkMgY2FsbGJhY2tzIHN0YXJ0ZWQgZHVyaW5nIGFuIGltbWVyc2l2ZSBzZXNzaW9u
IGNvbnRpbnVlIGFmdGVyIGl0IGVuZHMnLAorICAgIHRlc3RGdW5jdGlvbiwgVFJBQ0tFRF9JTU1F
UlNJVkVfREVWSUNFLCAnaW1tZXJzaXZlLXZyJyk7CisKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRl
by1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qt
dmlkZW8tZnJhbWUtY2FsbGJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhN2NiM2U5NGNk
ZmIyNTI1OGI5ZDk5YjRmNGQ0N2VkYTBlNzcyMTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorCisKK0hh
cm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitUSU1FT1VUIFRlc3Qgd2Ug
Y2FuIHJlZ2lzdGVyIGEgdmlkZW8uclZGQyBjYWxsYmFjay4gVGVzdCB0aW1lZCBvdXQKK1RJTUVP
VVQgVGVzdCB2aWRlby5yVkZDIGNhbGxiYWNrcyBydW4gYmVmb3JlIHdpbmRvdy5yQUYgY2FsbGJh
Y2tzLiBUZXN0IHRpbWVkIG91dAorVElNRU9VVCBUZXN0IHdlIGNhbiBjYW5jZWwgYSB2aWRlby5y
VkZDIHJlcXVlc3QuIFRlc3QgdGltZWQgb3V0CitQQVNTIFRlc3QgaW52YWxpZCBjYWxscyB0byB0
aGUgdmlkZW8uclZGQyBBUEkuCitUSU1FT1VUIFRlc3QgdmlkZW8uclZGQyBkb2VzIG5vdCBzdG9w
IHdoZW4gc3dpdGNoaW5nIHNvdXJjZXMuIFRlc3QgdGltZWQgb3V0CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1
ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXBhcmFsbGVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZp
ZGVvLWZyYW1lLWNhbGxiYWNrLXBhcmFsbGVsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZmU2
ODRhZThlNjZkYWI4Y2NlNjhkMjI3NTM1OTVhODQ0OGM2YjkwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3Jl
cXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stcGFyYWxsZWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNyBAQAorCisKK0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0gbnVsbAorCitU
SU1FT1VUIFRlc3QgY2FsbGJhY2tzIGdldCB0aGUgc2FtZSBpbmZvcm1hdGlvbi4gVGVzdCB0aW1l
ZCBvdXQKK1RJTUVPVVQgVGVzdCB3ZSBjYW4gY2FuY2VsIGNhbGxiYWNrcyBmcm9tIGNhbGxiYWNr
cy4gVGVzdCB0aW1lZCBvdXQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJh
Y2stcGFyYWxsZWwuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXBhcmFsbGVsLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTRjNWRlMWFkZjU1YmEwMDE2YWI5OTg1Nzc2YzU2OGU0OWY1OTU2ZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXBhcmFsbGVsLmh0
bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzx0aXRsZT5UZXN0
IGhhdmluZyBtdWx0aXBsZSB2aWRlby5yVkZDIGNhbGxiYWNrcyBpbiBmbGlnaHQgZm9yIGEgc2lu
Z2xlIGVsZW1lbnQuPC90aXRsZT4KKzxib2R5PjwvYm9keT4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL21lZGlh
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAg
IGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICBsZXQgZmlyc3RUaW1lOworICAgIGxl
dCBmaXJzdE1ldGFkYXRhOworCisgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0
LnN0ZXBfZnVuYygodGltZSwgbWV0YWRhdGEpID0+IHsKKyAgICAgIGZpcnN0VGltZSA9IHRpbWU7
CisgICAgICBmaXJzdE1ldGFkYXRhID0gbWV0YWRhdGE7CisgICAgfSkpOworCisgICAgdmlkZW8u
cmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayh0LnN0ZXBfZnVuY19kb25lKCh0aW1lLCBtZXRhZGF0
YSkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhmaXJzdFRpbWUsIHRpbWUpOworICAgICAgYXNz
ZXJ0X29iamVjdF9lcXVhbHMoZmlyc3RNZXRhZGF0YSwgbWV0YWRhdGEpOworICAgIH0pKTsKKwor
ICAgIHZpZGVvLnNyYyA9IGdldFZpZGVvVVJJKCcvbWVkaWEvbW92aWVfNScpOworICAgIHZpZGVv
LnBsYXkoKTsKKworfSwgJ1Rlc3QgY2FsbGJhY2tzIGdldCB0aGUgc2FtZSBpbmZvcm1hdGlvbi4n
KTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgbGV0IHZpZGVvID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZp
ZGVvKTsKKworICAgIGxldCBzZWNvbmRDYWxsYmFja0lkOworCisgICAgdmlkZW8ucmVxdWVzdFZp
ZGVvRnJhbWVDYWxsYmFjaygKKyAgICAgIHQuc3RlcF9mdW5jKF8gPT4geyB2aWRlby5jYW5jZWxW
aWRlb0ZyYW1lQ2FsbGJhY2soc2Vjb25kQ2FsbGJhY2tJZCk7IH0pCisgICAgKTsKKworICAgIHNl
Y29uZENhbGxiYWNrSWQgPSB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKAorICAgICAg
dC5zdGVwX2Z1bmMoXyA9PiB7CisgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIkNhbmNlbGxlZCBj
YWxsYmFja3Mgc2hvdWxkbid0IGJlIGV4ZWN1dGVkIikKKyAgICAgIH0pCisgICAgKTsKKworICAg
IC8vIE5PVEU6IFRoaXMgY2FsbGJhY2sgc2hvdWxkIGJlIGV4ZWN1dGVkIGxhc3QuCisgICAgdmlk
ZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygKKyAgICAgIHQuc3RlcF9mdW5jX2RvbmUoKQor
ICAgICk7CisKKyAgICB2aWRlby5zcmMgPSBnZXRWaWRlb1VSSSgnL21lZGlhL21vdmllXzUnKTsK
KyAgICB2aWRlby5wbGF5KCk7Cit9LCAnVGVzdCB3ZSBjYW4gY2FuY2VsIGNhbGxiYWNrcyBmcm9t
IGNhbGxiYWNrcy4nKTsKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3Qtdmlk
ZW8tZnJhbWUtY2FsbGJhY2stcmVwZWF0aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZy
YW1lLWNhbGxiYWNrLXJlcGVhdGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRhNWJlM2Rk
MjUxMmI4NWMzODU1NWI4ZjNjZTcwMzY3OGVkNGRmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0
LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
IEBACisKKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK1RJTUVP
VVQgVGVzdCBuZXcgY2FsbGJhY2tzIGFyZSBvbmx5IGNhbGxlZCBvbiB0aGUgbmV4dCBmcmFtZS4g
VGVzdCB0aW1lZCBvdXQKK1RJTUVPVVQgVGVzdCBjaGFpbmluZyBjYWxscyB0byB2aWRlby5yVkZD
LCBhbmQgdmVyaWZ5IHRoZSByZXF1aXJlZCBwYXJhbWV0ZXJzLiBUZXN0IHRpbWVkIG91dAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Zp
ZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1yZXBlYXRpbmcuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1
ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2Mzdh
MDg3MmNiMGQwYzE1MWUwYTgwYTZhNTY5NDQ5ZmQyMjJhMWIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVx
dWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1yZXBlYXRpbmcuaHRtbApAQCAtMCwwICsxLDgwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHRpdGxlPlRlc3QgcmVwZWF0ZWRseSBjaGFpbmlu
ZyB2aWRlby5yVkZDKCkgY2FsbGJhY2tzLjwvdGl0bGU+Cis8Ym9keT48L2JvZHk+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L2NvbW1vbi9tZWRpYS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCithc3luY190ZXN0KGZ1bmN0
aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycp
OworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOworCisgICAgbGV0IGZpcnN0
VGltZTsKKyAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHQuc3RlcF9mdW5jKCh0
aW1lKSA9PiB7CisgICAgICBmaXJzdFRpbWUgPSB0aW1lOworCisgICAgICAvLyBRdWV1ZSB1cCBh
IGNhbGxiYWNrIGFuZCBtYWtlIHN1cmUgaXQncyBub3QgaW1tZWRpYXRlbHkgZXhlY3V0ZWQuCisg
ICAgICBsZXQgc2Vjb25kVGltZTsKKyAgICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJh
Y2sodC5zdGVwX2Z1bmMoKHRpbWUpID0+IHsKKyAgICAgICAgc2Vjb25kVGltZSA9IHRpbWU7Cisg
ICAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oc2Vjb25kVGltZSwgZmlyc3RUaW1lLCAiQ2FsbGJh
Y2tzIHNob3VsZCBiZSBleGVjdXRlZCBvbiB0aGUgbmV4dCBmcmFtZSIpOworICAgICAgfSkpCisK
KyAgICAgIC8vIFF1ZXVlIHVwIGEgc2Vjb25kIGNhbGxiYWNrLCBhbmQgbWFrZSBzdXJlIGl0J3Mg
Y2FsbGVkIGF0IHRoZSBzYW1lIHRpbWUKKyAgICAgIC8vIGFzIHRoZSBvbmUgd2UganVzdCBxdWV1
ZWQgdXAuCisgICAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKHQuc3RlcF9mdW5j
X2RvbmUoKHRpbWUpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh0aW1lLCBzZWNvbmRUaW1l
LCAiQ2FsbGJhY2tzIHF1ZXVlZCB0b2dldGhlciBzaG91bGQgYmUgY2FsbGVkIGF0IHRoZSBzYW1l
IHRpbWUiKTsKKyAgICAgIH0pKQorCisgICAgfSkpOworCisgICAgdmlkZW8uc3JjID0gZ2V0Vmlk
ZW9VUkkoJy9tZWRpYS9tb3ZpZV81Jyk7CisgICAgdmlkZW8ucGxheSgpOworCit9LCAnVGVzdCBu
ZXcgY2FsbGJhY2tzIGFyZSBvbmx5IGNhbGxlZCBvbiB0aGUgbmV4dCBmcmFtZS4nKTsKKworYXN5
bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgbGV0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgndmlkZW8nKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKKwor
ICAgIGxldCBtYXhOdW1iZXJPZkNhbGxzID0gMTA7CisgICAgbGV0IGN1cnJlbnRDYWxsTnVtYmVy
ID0gMDsKKyAgICBsZXQgbGFzdE1ldGFkYXRhOworCisgICAgZnVuY3Rpb24gdmVyaWZ5TWV0YWRh
dGEobGFzdCwgY3VycmVudCkgeworICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihjdXJyZW50LnBy
ZXNlbnRlZEZyYW1lcywgbGFzdC5wcmVzZW50ZWRGcmFtZXMsICJwcmVzZW50ZWRGcmFtZXMgc2hv
dWxkIGJlIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyIpOworICAgICAgYXNzZXJ0X2dyZWF0ZXJf
dGhhbihjdXJyZW50LnByZXNlbnRhdGlvblRpbWUsIGxhc3QucHJlc2VudGF0aW9uVGltZSwgInBy
ZXNlbnRhdGlvblRpbWUgc2hvdWxkIGJlIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyIpOworICAg
ICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihjdXJyZW50LmV4cGVjdGVkRGlzcGxheVRpbWUsIGxhc3Qu
ZXhwZWN0ZWREaXNwbGF5VGltZSwgImV4cGVjdGVkRGlzcGxheVRpbWUgc2hvdWxkIGJlIG1vbm90
b25pY2FsbHkgaW5jcmVhc2luZyIpOworCisgICAgICAvLyBXZSBhcmVuJ3Qgc2Vla2luZyB0aHJv
dWdoIHRoZSBmaWxlLCBzbyB0aGlzIHNob3VsZCBiZSBpbmNyZWFzaW5nIGZyb20gZnJhbWUgdG8g
ZnJhbWUuCisgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGN1cnJlbnQubWVkaWFUaW1lLCBsYXN0
Lm1lZGlhVGltZSwgIm1lZGlhVGltZSBzaG91bGQgYmUgaW5jcmVhc2luZyIpOworCisgICAgICAv
LyBUaGUgdGVzdCB2aWRlbydzIHNpemUgZG9lc24ndCBjaGFuZ2UuCisgICAgICBhc3NlcnRfZXF1
YWxzKGN1cnJlbnQud2lkdGgsIGxhc3Qud2lkdGgsICJ3aWR0aCBzaG91bGQgcmVtYWluIGNvbnN0
YW50Iik7CisgICAgICBhc3NlcnRfZXF1YWxzKGN1cnJlbnQuaGVpZ2h0LCBsYXN0LmhlaWdodCwg
ImhlaWdodCBzaG91bGQgcmVtYWluIGNvbnN0YW50Iik7CisgICAgfQorCisgICAgZnVuY3Rpb24g
cmVwZWF0aW5nQ2FsbGJhY2sodGltZSwgbWV0YWRhdGEpIHsKKyAgICAgIC8vIFNraXAgdGhlIGZp
cnN0IGNhbGwgdG8gdmVyaWZ5TWV0YWRhdGEuCisgICAgICBpZiAoY3VycmVudENhbGxOdW1iZXIp
CisgICAgICAgIHZlcmlmeU1ldGFkYXRhKGxhc3RNZXRhZGF0YSwgbWV0YWRhdGEpCisKKyAgICAg
IGxhc3RNZXRhZGF0YSA9IG1ldGFkYXRhOworCisgICAgICBpZiAoKytjdXJyZW50Q2FsbE51bWJl
ciA+IG1heE51bWJlck9mQ2FsbHMpIHsKKyAgICAgICAgdC5kb25lKCkKKyAgICAgIH0gZWxzZSB7
CisgICAgICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodC5zdGVwX2Z1bmMocmVw
ZWF0aW5nQ2FsbGJhY2spKTsKKyAgICAgIH0KKyAgICB9CisKKyAgICB2aWRlby5yZXF1ZXN0Vmlk
ZW9GcmFtZUNhbGxiYWNrKHQuc3RlcF9mdW5jKHJlcGVhdGluZ0NhbGxiYWNrKSk7CisKKyAgICB2
aWRlby5zcmMgPSBnZXRWaWRlb1VSSSgnL21lZGlhL21vdmllXzUnKTsKKyAgICB2aWRlby5wbGF5
KCk7CisKK30sICdUZXN0IGNoYWluaW5nIGNhbGxzIHRvIHZpZGVvLnJWRkMsIGFuZCB2ZXJpZnkg
dGhlIHJlcXVpcmVkIHBhcmFtZXRlcnMuJyk7Cis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZm
Yy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXdlYnJ0Yy5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMv
cmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBkNTRkMGVhYWU3ODg2NDZmYjBkZjExODI4ODIzMWZiMjU0ODc3N2QKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay13ZWJydGMuaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitGQUlMIFRlc3QgdmlkZW8ucmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFjaygpIHBhcmFtZXRlcnMgZm9yIFdlYlJUQyBhcHBsaWNhdGlvbnMuIGFzc2Vy
dF9ncmVhdGVyX3RoYW46IGV4cGVjdGVkIGEgbnVtYmVyIGJ1dCBnb3QgYSAidW5kZWZpbmVkIgor
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXdlYnJ0Yy5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1y
dmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2std2VicnRjLmh0dHBzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmQ3ZThkN2YzYzlmN2FkMWRhNWYyM2I5ZGRjZWY0NDc3Njg2MjJmYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlk
ZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXdlYnJ0Yy5odHRwcy5odG1sCkBA
IC0wLDAgKzEsMTY1IEBACis8IWRvY3R5cGUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IFJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2tFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhl
YWQ+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1s
OyBjaGFyc2V0PVVURi04Ij4KKyAgPHRpdGxlPldlYlJUQyB2aWRlby5yZXF1ZXN0VmlkZW9GcmFt
ZUNhbGxiYWNrKCkgdGVzdDwvdGl0bGU+CisgIDxzY3JpcHQgc3JjPSIvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KKyAgPGRpdj4KKyAgICA8dmlkZW8gaWQ9ImxvY2FsLXZpZXciIG11dGVk
IGF1dG9wbGF5PSJhdXRvcGxheSI+PC92aWRlbz4KKyAgICA8dmlkZW8gaWQ9InJlbW90ZS12aWV3
IiBtdXRlZCBhdXRvcGxheT0iYXV0b3BsYXkiLz4KKyAgICA8L3ZpZGVvPgorICA8L2Rpdj4KKwor
ICA8IS0tIFRoZXNlIGZpbGVzIGFyZSBpbiBwbGFjZSB3aGVuIGV4ZWN1dGluZyBvbiBXM0MuIC0t
PgorICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cisg
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICB2YXIgdGVzdCA9IGFzeW5jX3Rl
c3QoJ1Rlc3QgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygpIHBhcmFtZXRlcnMgZm9y
IFdlYlJUQyBhcHBsaWNhdGlvbnMuJyk7CisKKyAgLy8KKyAgLy8gVGhpcyB0ZXN0IGlzIGJhc2Vk
IG9uIC93ZWJydGMvc2ltcGxlY2FsbC5odHRwcy5odG1sLCBidXQgaXQgY2FsbHMgdG8KKyAgLy8g
dmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygpIGJlZm9yZSBlbmRpbmcsIHRvIHZlcmlm
eSBXZWJSVEMgcmVxdWlyZWQKKyAgLy8gYW5kIG9wdGlvbmFsIHBhcmFtZXRlcnMuCisgIC8vCisK
KyAgdmFyIGdGaXJzdENvbm5lY3Rpb24gPSBudWxsOworICB2YXIgZ1NlY29uZENvbm5lY3Rpb24g
PSBudWxsOworICB2YXIgZ0NhbGxiYWNrQ291bnRlciA9IDA7CisgIHZhciB2ZXJpZnlfcGFyYW1z
ID0gKG5vdywgbWV0YWRhdGEpID0+IHsKKyAgICBnQ2FsbGJhY2tDb3VudGVyID0gZ0NhbGxiYWNr
Q291bnRlciArIDE7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihub3csIDApOworCisgICAgLy8g
VmVyaWZ5IGFsbCByZXF1aXJlZCBmaWVsZHMKKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFk
YXRhLnByZXNlbnRhdGlvblRpbWUsIDApOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRh
dGEuZXhwZWN0ZWREaXNwbGF5VGltZSwgMCk7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRh
ZGF0YS5wcmVzZW50ZWRGcmFtZXMsIDApOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRh
dGEud2lkdGgsIDApOworICAgIGFzc2VydF9ncmVhdGVyX3RoYW4obWV0YWRhdGEuaGVpZ2h0LCAw
KTsKKyAgICBhc3NlcnRfdHJ1ZSgibWVkaWFUaW1lIiBpbiBtZXRhZGF0YSwgIm1lZGlhVGltZSBz
aG91bGQgYmUgcHJlc2VudCIpOworCisgICAgLy8gVmVyaWZ5IFdlYlJUQyBvbmx5IGZpZWxkcy4K
KyAgICBhc3NlcnRfdHJ1ZSgicnRwVGltZXN0YW1wIiBpbiBtZXRhZGF0YSwgInJ0cFRpbWVzdGFt
cCBzaG91bGQgYmUgcHJlc2VudCIpOworICAgIGFzc2VydF90cnVlKCJyZWNlaXZlVGltZSIgaW4g
bWV0YWRhdGEsICJyZWNlaXZlVGltZSBzaG91bGQgYmUgcHJlc2VudCIpOworICAgIC8vIGNhcHR1
cmVUaW1lIGlzIG5vdCBhdmFpbGFibGUgdW50aWwgcm91bmR0cmlwIHRpbWUgZXN0aW1hdGlvbiBp
cyBkb25lLgorICAgIGlmIChnQ2FsbGJhY2tDb3VudGVyID4gNjAgfHwgImNhcHR1cmVUaW1lIiBp
biBtZXRhZGF0YSkgeworICAgICAgYXNzZXJ0X3RydWUoImNhcHR1cmVUaW1lIiBpbiBtZXRhZGF0
YSwgImNhcHR1cmVUaW1lIHNob3VsZCBiZSBwcmVzZW50Iik7CisgICAgICB0ZXN0LmRvbmUoKTsK
KyAgICB9CisgICAgZWxzZSB7CisgICAgICAvLyBLZWVwIHJlcXVlc3RpbmcgY2FsbGJhY2tzLgor
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlbW90ZS12aWV3JykucmVxdWVzdFZpZGVv
RnJhbWVDYWxsYmFjayh0ZXN0LnN0ZXBfZnVuYyh2ZXJpZnlfcGFyYW1zKSk7CisgICAgfQorICB9
CisKKyAgdmFyIHZlcmlmeV9sb2NhbF9tZXRhZGF0YSA9IChub3csIG1ldGFkYXRhKSA9PiB7Cisg
ICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5leHBlY3RlZERpc3BsYXlUaW1lLCAwKTsK
KyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1ldGFkYXRhLnByZXNlbnRlZEZyYW1lcywgMCk7Cisg
ICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS53aWR0aCwgMCk7CisgICAgYXNzZXJ0X2dy
ZWF0ZXJfdGhhbihtZXRhZGF0YS5oZWlnaHQsIDApOworICAgIGFzc2VydF90cnVlKCJjYXB0dXJl
VGltZSIgaW4gbWV0YWRhdGEsICJjYXB0dXJlVGltZSBzaG91bGQgYWx3YXlzIGJlIHByZXNlbnQg
Zm9yIGxvY2FsIHNvdXJjZXMuIik7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5j
YXB0dXJlVGltZSwgMCk7CisgIH0KKworICAvLyBJZiB0aGUgcmVtb3RlIHZpZGVvIGdldHMgdmlk
ZW8gZGF0YSB0aGF0IGltcGxpZXMgdGhlIG5lZ290aWF0aW9uCisgIC8vIGFzIHdlbGwgYXMgdGhl
IElDRSBhbmQgRFRMUyBjb25uZWN0aW9uIGFyZSB1cC4KKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3JlbW90ZS12aWV3JykKKyAgICAgIC5hZGRFdmVudExpc3RlbmVyKCdsb2FkZWRtZXRhZGF0
YScsIGZ1bmN0aW9uKCkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW1vdGUtdmll
dycpLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sodGVzdC5zdGVwX2Z1bmModmVyaWZ5X3BhcmFt
cykpOworICB9KTsKKworICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9jYWwtdmlldycpCisg
ICAgICAuYWRkRXZlbnRMaXN0ZW5lcignbG9hZG1ldGFkYXRhJywgZnVuY3Rpb24oKSB7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvY2FsLXZpZXcnKS5yZXF1ZXN0VmlkZW9GcmFtZUNh
bGxiYWNrKHRlc3Quc3RlcF9mdW5jX2RvbmUodmVyaWZ5X2xvY2FsX21ldGFkYXRhKSk7CisgIH0p
OworCisKKyAgZnVuY3Rpb24gZ2V0Tm9pc2VTdHJlYW1Pa0NhbGxiYWNrKGxvY2FsU3RyZWFtKSB7
CisgICAgZ0ZpcnN0Q29ubmVjdGlvbiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihudWxsKTsKKyAg
ICB0ZXN0LmFkZF9jbGVhbnVwKCgpID0+IGdGaXJzdENvbm5lY3Rpb24uY2xvc2UoKSk7CisgICAg
Z0ZpcnN0Q29ubmVjdGlvbi5vbmljZWNhbmRpZGF0ZSA9IG9uSWNlQ2FuZGlkYXRlVG9GaXJzdDsK
KworICAgIGdTZWNvbmRDb25uZWN0aW9uID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKG51bGwpOwor
ICAgIHRlc3QuYWRkX2NsZWFudXAoKCkgPT4gZ1NlY29uZENvbm5lY3Rpb24uY2xvc2UoKSk7Cisg
ICAgZ1NlY29uZENvbm5lY3Rpb24ub25pY2VjYW5kaWRhdGUgPSBvbkljZUNhbmRpZGF0ZVRvU2Vj
b25kOworICAgIGdTZWNvbmRDb25uZWN0aW9uLm9udHJhY2sgPSBvblJlbW90ZVRyYWNrOworCisg
ICAgbG9jYWxTdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaChmdW5jdGlvbih0cmFjaykgeworICAg
ICAgLy8gQmlkaXJlY3Rpb25hbCBzdHJlYW1zIGFyZSBuZWVkZWQgaW4gb3JkZXIgZm9yIGNhcHR1
cmVUaW1lIHRvIGJlCisgICAgICAvLyBwb3B1bGF0ZWQuIFVzZSB0aGUgc2FtZSBzb3VyY2UgaW4g
Ym90aCBkaXJlY3Rpb25zLgorICAgICAgZ0ZpcnN0Q29ubmVjdGlvbi5hZGRUcmFjayh0cmFjaywg
bG9jYWxTdHJlYW0pOworICAgICAgZ1NlY29uZENvbm5lY3Rpb24uYWRkVHJhY2sodHJhY2ssIGxv
Y2FsU3RyZWFtKTsKKyAgICB9KTsKKworICAgIGdGaXJzdENvbm5lY3Rpb24uY3JlYXRlT2ZmZXIo
KS50aGVuKG9uT2ZmZXJDcmVhdGVkLCBmYWlsZWQoJ2NyZWF0ZU9mZmVyJykpOworCisgICAgdmFy
IHZpZGVvVGFnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvY2FsLXZpZXcnKTsKKyAgICB2
aWRlb1RhZy5zcmNPYmplY3QgPSBsb2NhbFN0cmVhbTsKKyAgfTsKKworICB2YXIgb25PZmZlckNy
ZWF0ZWQgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlvbihvZmZlcikgeworICAgIGdGaXJzdENvbm5l
Y3Rpb24uc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisKKyAgICAvLyBUaGlzIHdvdWxkIG5v
cm1hbGx5IGdvIGFjcm9zcyB0aGUgYXBwbGljYXRpb24ncyBzaWduYWxpbmcgc29sdXRpb24uCisg
ICAgLy8gSW4gb3VyIGNhc2UsIHRoZSAic2lnbmFsaW5nIiBpcyB0byBjYWxsIHRoaXMgZnVuY3Rp
b24uCisgICAgcmVjZWl2ZUNhbGwob2ZmZXIuc2RwKTsKKyAgfSk7CisKKyAgZnVuY3Rpb24gcmVj
ZWl2ZUNhbGwob2ZmZXJTZHApIHsKKyAgICB2YXIgcGFyc2VkT2ZmZXIgPSBuZXcgUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uKHsgdHlwZTogJ29mZmVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2RwOiBvZmZlclNkcCB9KTsKKyAgICBnU2Vjb25kQ29u
bmVjdGlvbi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYXJzZWRPZmZlcik7CisKKyAgICBnU2Vjb25k
Q29ubmVjdGlvbi5jcmVhdGVBbnN3ZXIoKS50aGVuKG9uQW5zd2VyQ3JlYXRlZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbGVkKCdjcmVhdGVBbnN3ZXInKSk7CisgIH07
CisKKyAgdmFyIG9uQW5zd2VyQ3JlYXRlZCA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9uKGFuc3dl
cikgeworICAgIGdTZWNvbmRDb25uZWN0aW9uLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsK
KworICAgIC8vIFNpbWlsYXJseSwgdGhpcyB3b3VsZCBnbyBvdmVyIHRoZSBhcHBsaWNhdGlvbidz
IHNpZ25hbGluZyBzb2x1dGlvbi4KKyAgICBoYW5kbGVBbnN3ZXIoYW5zd2VyLnNkcCk7CisgIH0p
OworCisgIGZ1bmN0aW9uIGhhbmRsZUFuc3dlcihhbnN3ZXJTZHApIHsKKyAgICB2YXIgcGFyc2Vk
QW5zd2VyID0gbmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7IHR5cGU6ICdhbnN3ZXInLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2RwOiBhbnN3
ZXJTZHAgfSk7CisgICAgZ0ZpcnN0Q29ubmVjdGlvbi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYXJz
ZWRBbnN3ZXIpOworICB9OworCisgIHZhciBvbkljZUNhbmRpZGF0ZVRvRmlyc3QgPSB0ZXN0LnN0
ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgeworICAgIC8vIElmIGV2ZW50LmNhbmRpZGF0ZSBpcyBu
dWxsID0gbm8gbW9yZSBjYW5kaWRhdGVzLgorICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKKyAg
ICAgIGdTZWNvbmRDb25uZWN0aW9uLmFkZEljZUNhbmRpZGF0ZShldmVudC5jYW5kaWRhdGUpOwor
ICAgIH0KKyAgfSk7CisKKyAgdmFyIG9uSWNlQ2FuZGlkYXRlVG9TZWNvbmQgPSB0ZXN0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihldmVudCkgeworICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKKyAgICAg
IGdGaXJzdENvbm5lY3Rpb24uYWRkSWNlQ2FuZGlkYXRlKGV2ZW50LmNhbmRpZGF0ZSk7CisgICAg
fQorICB9KTsKKworICB2YXIgb25SZW1vdGVUcmFjayA9IHRlc3Quc3RlcF9mdW5jKGZ1bmN0aW9u
KGV2ZW50KSB7CisgICAgdmFyIHZpZGVvVGFnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jl
bW90ZS12aWV3Jyk7CisgICAgaWYgKCF2aWRlb1RhZy5zcmNPYmplY3QpIHsKKyAgICAgIHZpZGVv
VGFnLnNyY09iamVjdCA9IGV2ZW50LnN0cmVhbXNbMF07CisgICAgfQorICB9KTsKKworICAvLyBS
ZXR1cm5zIGEgc3VpdGFibGUgZXJyb3IgY2FsbGJhY2suCisgIGZ1bmN0aW9uIGZhaWxlZChmdW5j
dGlvbl9uYW1lKSB7CisgICAgcmV0dXJuIHRlc3QudW5yZWFjaGVkX2Z1bmMoJ1dlYlJUQyBjYWxs
ZWQgZXJyb3IgY2FsbGJhY2sgZm9yICcgKyBmdW5jdGlvbl9uYW1lKTsKKyAgfQorCisgIC8vIFRo
aXMgZnVuY3Rpb24gc3RhcnRzIHRoZSB0ZXN0LgorICB0ZXN0LnN0ZXAoZnVuY3Rpb24oKSB7Cisg
ICAgZ2V0Tm9pc2VTdHJlYW0oeyB2aWRlbzogdHJ1ZSwgYXVkaW86IHRydWUgfSkKKyAgICAgIC50
aGVuKHRlc3Quc3RlcF9mdW5jKGdldE5vaXNlU3RyZWFtT2tDYWxsYmFjayksIGZhaWxlZCgnZ2V0
Tm9pc2VTdHJlYW0nKSk7CisgIH0pOworPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlk
ZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1m
cmFtZS1jYWxsYmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0NDA0MTQzZmE0MDhlYmJiOGY0OWNjMzE4
MGUwNjVkMjAwZmZhNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxs
YmFjay5odG1sCkBAIC0wLDAgKzEsMTUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHRp
dGxlPlRlc3QgdGhlIGJhc2ljcyBvZiB0aGUgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFj
aygpIEFQSS48L3RpdGxlPgorPGJvZHk+PC9ib2R5PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vbWVkaWEuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciB0ZXN0VmlkZW8gPSB7CisgIHVybDogZ2V0VmlkZW9V
UkkoJy9tZWRpYS9tb3ZpZV81JyksCisgIGhlaWdodDogMjQwLAorICB3aWR0aDogMzIwLAorfQor
Cit2YXIgYWx0VGVzdFZpZGVvID0geworICB1cmw6IGdldFZpZGVvVVJJKCcvbWVkaWEvY291bnRp
bmcnKSwKKyAgaGVpZ2h0OiAyNDAsCisgIHdpZHRoOiAzMjAsCit9CisKK2FzeW5jX3Rlc3QoZnVu
Y3Rpb24odCkgeworICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVv
Jyk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICBsZXQgaWQg
PSB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKAorICAgICAgdC5zdGVwX2Z1bmNfZG9u
ZSgodGltZSwgbWV0YWRhdGEpID0+IHsKKyAgICAgICAgYXNzZXJ0X3RydWUodGltZSA+IDApOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKG1ldGFkYXRhLmhlaWdodCwgdGVzdFZpZGVvLmhlaWdodCk7
CisgICAgICAgIGFzc2VydF9lcXVhbHMobWV0YWRhdGEud2lkdGgsIHRlc3RWaWRlby53aWR0aCk7
CisgICAgICB9KQorICAgICk7CisKKyAgICBhc3NlcnRfdHJ1ZShpZCA+IDApOworCisgICAgdmlk
ZW8uc3JjID0gdGVzdFZpZGVvLnVybDsKKyAgICB2aWRlby5wbGF5KCk7CisKK30sICdUZXN0IHdl
IGNhbiByZWdpc3RlciBhIHZpZGVvLnJWRkMgY2FsbGJhY2suJyk7CisKK2FzeW5jX3Rlc3QoZnVu
Y3Rpb24odCkgeworICAgIGxldCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVv
Jyk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWRlbyk7CisKKyAgICB2aWRlby5y
ZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKAorICAgICAgdC5zdGVwX2Z1bmModmlkZW9fbm93ID0+
IHsKKyAgICAgICAgLy8gUXVldWUgYSBjYWxsIHRvIHdpbmRvdy5yQUYsIGFuZCBtYWtlIHN1cmUg
aXQgaXMgZXhlY3V0ZWQgd2l0aGluIHRoZQorICAgICAgICAvLyBzYW1lIHR1cm4gb2YgdGhlIGV2
ZW50IGxvb3AgKHdpdGggdGhlIHNhbWUgJ3RpbWUnIHBhcmFtZXRlcikuCisgICAgICAgIHdpbmRv
dy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoIHQuc3RlcF9mdW5jX2RvbmUoIHdpbmRvd19ub3cgPT4g
eworICAgICAgICAgIGFzc2VydF9lcXVhbHModmlkZW9fbm93LCB3aW5kb3dfbm93KTsKKyAgICAg
ICAgfSkpOworICAgICAgfSkKKyAgICApOworCisgICAgdmlkZW8uc3JjID0gdGVzdFZpZGVvLnVy
bDsKKyAgICB2aWRlby5wbGF5KCk7CisKK30sICdUZXN0IHZpZGVvLnJWRkMgY2FsbGJhY2tzIHJ1
biBiZWZvcmUgd2luZG93LnJBRiBjYWxsYmFja3MuJyk7CisKKworYXN5bmNfdGVzdChmdW5jdGlv
bih0KSB7CisgICAgbGV0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsK
KyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKKworICAgIGxldCBpZCA9IHZp
ZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2soCisgICAgICB0LnN0ZXBfZnVuYyhfID0+IHsK
KyAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiQ2FuY2VsbGVkIGNhbGxiYWNrcyBzaG91bGRuJ3Qg
YmUgZXhlY3V0ZWQiKQorICAgICAgfSkKKyAgICApOworCisgICAgdmlkZW8uY2FuY2VsVmlkZW9G
cmFtZUNhbGxiYWNrKGlkKTsKKworICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2so
CisgICAgICB0LnN0ZXBfZnVuYyhfID0+IHsKKyAgICAgICAgLy8gQXQgdGhpcyBwb2ludCwgdGhl
IG90aGVyIGNhbGxiYWNrIHNob3VsZG4ndCBoYXZlIGZpcmVkLCBidXQKKyAgICAgICAgLy8gZ2l2
ZSBpdCBzb21lIG1vcmUgdGltZSBhbmQgcmVhbGx5IG1ha2Ugc3VyZSBpdCBkb2Vzbid0LCBieSBn
b2luZworICAgICAgICAvLyB0aHJvdWdodCB0aGUgZXZlbnQgbG9vcCBvbmNlIG1vcmUuCisgICAg
ICAgIHQuc3RlcF90aW1lb3V0KCgpID0+IHsgdC5kb25lKCk7IH0sIDApOworICAgICAgfSkKKyAg
ICApOworCisgICAgdmlkZW8uc3JjID0gdGVzdFZpZGVvLnVybDsKKyAgICB2aWRlby5wbGF5KCk7
Cit9LCAnVGVzdCB3ZSBjYW4gY2FuY2VsIGEgdmlkZW8uclZGQyByZXF1ZXN0LicpOworCit0ZXN0
KGZ1bmN0aW9uKHQpIHsKKyAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2
aWRlbycpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodmlkZW8pOworCisgICAgLy8g
cmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjaygpIGV4cGVjdHMgMSBmdW5jdGlvbiBhcyBhIHBhcmFt
ZXRlci4KKyAgICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgXyA9PiB7IHZpZGVvLnJlcXVl
c3RWaWRlb0ZyYW1lQ2FsbGJhY2soKSB9ICk7CisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJy
b3IsIF8gPT4geyB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKDApIH0pOworICAgIGFz
c2VydF90aHJvd3NfanMoVHlwZUVycm9yLCBfID0+IHsgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVD
YWxsYmFjaygiZm9vIikgfSk7CisKKyAgICAvLyBjYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soKSBl
eHBlY3RzIDEgbnVtYmVyIGFzIGEgcGFyYW1ldGVyCisgICAgYXNzZXJ0X3Rocm93c19qcyhUeXBl
RXJyb3IsIF8gPT4geyB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soKSB9ICk7CisKKyAg
ICAvLyBJbnZhbGlkIGNhbGxzIGFyZSBqdXN0IG5vLW9wcworICAgIHZpZGVvLmNhbmNlbFZpZGVv
RnJhbWVDYWxsYmFjayhfID0+IHt9KTsKKyAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJh
Y2soTmFOKTsKKyAgICB2aWRlby5jYW5jZWxWaWRlb0ZyYW1lQ2FsbGJhY2soImZvbyIpOworICAg
IHZpZGVvLmNhbmNlbFZpZGVvRnJhbWVDYWxsYmFjaygxMjM0NSk7CisgICAgdmlkZW8uY2FuY2Vs
VmlkZW9GcmFtZUNhbGxiYWNrKC0xKTsKKworfSwgJ1Rlc3QgaW52YWxpZCBjYWxscyB0byB0aGUg
dmlkZW8uclZGQyBBUEkuJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyBmdW5jdGlvbih0KSB7Cisg
ICAgbGV0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZGVvKTsKKworICAgIGxldCBmaXJzdF93aWR0aCA9IDA7
CisgICAgbGV0IGZpcnN0X2hlaWdodCA9IDA7CisKKyAgICB2aWRlby5zcmMgPSB0ZXN0VmlkZW8u
dXJsOworCisgICAgYXdhaXQgdmlkZW8ucGxheSgpOworCisgICAgLy8gU3dpdGNoIHRvIGFuZCBm
cm9tIGEgc2Vjb25kIHZpZGVvLCBhbmQgbWFrZSBzdXJlIHdlIGdldCByVkZDIGNhbGxzIGF0Cisg
ICAgLy8gZWFjaCBzdGVwLgorICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0
KSA9PiB7CisgICAgICBsZXQgb25SZXR1cm5Ub09yaWdpbmFsVmlkZW8gPSB0LnN0ZXBfZnVuYygo
bm93LCBtZXRhZGF0YSkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKGZpcnN0X3dpZHRoLCBt
ZXRhZGF0YS53aWR0aCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZmlyc3RfaGVpZ2h0LCBtZXRh
ZGF0YS5oZWlnaHQpOworCisgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0pOworCisgICAgICBs
ZXQgb25BbHRWaWRlb0ZpcnN0RnJhbWUgPSB0LnN0ZXBfZnVuYygobm93LCBtZXRhZGF0YSkgPT4g
eworICAgICAgICAvLyBUaGUgdmlkZW9zIGhhdmUgZGlmZmVyZW50IHNpemVzLCBhbmQgc2hvdWxk
bid0IG1hdGNoLgorICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhmaXJzdF93aWR0aCwgbWV0YWRh
dGEud2lkdGgpOworICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhmaXJzdF9oZWlnaHQsIG1ldGFk
YXRhLmhlaWdodCk7CisKKyAgICAgICAgLy8gU3dpdGggYmFjayB0byB0aGUgb3JpZ2luYWwgdmlk
ZW8uCisgICAgICAgIHZpZGVvLnJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sob25SZXR1cm5Ub09y
aWdpbmFsVmlkZW8pOworICAgICAgICB2aWRlby5zcmMgPSB0ZXN0VmlkZW8udXJsOworICAgICAg
fSk7CisKKyAgICAgIGxldCBvbkZpcnN0RnJhbWUgPSB0LnN0ZXBfZnVuYygobm93LCBtZXRhZGF0
YSkgPT4geworICAgICAgICBmaXJzdF93aWR0aCA9IG1ldGFkYXRhLndpZHRoOworICAgICAgICBm
aXJzdF9oZWlnaHQgPSBtZXRhZGF0YS5oZWlnaHQ7CisKKyAgICAgICAgLy8gQ2FsbGJhY2tzIHNo
b3VsZCBwZXJzaXN0IGFmdGVyIGNoYW5naW5nIHRoZSBzb3VyY2UgdG8gdGhlIGFsdCB2aWRlby4K
KyAgICAgICAgdmlkZW8ucmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFjayhvbkFsdFZpZGVvRmlyc3RG
cmFtZSk7CisgICAgICAgIHZpZGVvLnNyYyA9IGFsdFRlc3RWaWRlby51cmw7CisgICAgICB9KQor
CisgICAgICB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrKG9uRmlyc3RGcmFtZSk7Cisg
ICAgfSk7Cit9LCAnVGVzdCB2aWRlby5yVkZDIGRvZXMgbm90IHN0b3Agd2hlbiBzd2l0Y2hpbmcg
c291cmNlcy4nKTsKKworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2
ZmMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE2ZjE1ZmRiMzc2M2ZkM2Q0NzZhNmFiYTU4
MjY1OTNjOGM4MWNkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsx
LDI2IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
TGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3ZpZGVvLXJ2ZmMvTUVUQS55bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvUkVBRE1FLm1kCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL2lkbGhhcm5lc3Mud2luZG93LmpzCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3Jl
cXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhyLXNlc3Npb24uaHR0cHMuaHRtbAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9y
ZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWRvbS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUt
Y2FsbGJhY2stZHVyaW5nLXhyLXNlc3Npb24uaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1l
LWNhbGxiYWNrLXBhcmFsbGVsLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxsYmFjay1yZXBl
YXRpbmcuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXdlYnJ0Yy5odHRwcy5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZj
L3JlcXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2suaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGFkZDk5M2Q3YTk0MDQxZTU3N2YwYjky
MTIzYTQzODg3NWY5MGE5MTkuLmQ4ZDE3YjNkMzBhN2Q0NTM2NmY2MWMzYjlmZTdiMWFlODc2Nzk0
OTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTEzOCw2ICsxMzgsMTUgQEAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nu
YW1lLWNsb2FraW5nLXRvcC1uby1jbmFtZS1zdWItMXAtY25hbWUuaHRtbAogaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2NuYW1lLWNsb2FraW5nLXRvcC1uby1jbmFtZS1zdWItM3At
Y25hbWUuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Nu
YW1lLWNsb2FraW5nLXRvcC1uby1jbmFtZS1zdWItbm8tY25hbWUuaHRtbCBbIFBhc3MgXQogCitp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMgWyBQYXNzIF0KKyMgVGlt
aW5nIG91dCB0ZXN0cyB1bnRpbCB3ZSBhZGQgcmVndWxhciB2aWRlbyBzdHJlYW1pbmcgYmFja2Vu
ZCBzdXBwb3J0LgoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3Jl
cXVlc3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stYmVmb3JlLXhyLXNlc3Npb24uaHR0cHMuaHRtbCBb
IFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVl
c3QtdmlkZW8tZnJhbWUtY2FsbGJhY2stZG9tLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNr
LWR1cmluZy14ci1zZXNzaW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXBh
cmFsbGVsLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlk
ZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy5odG1sIFsgU2tp
cCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12
aWRlby1mcmFtZS1jYWxsYmFjay5odG1sIFsgU2tpcCBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KICMgRW5kIHBsYXRmb3JtLXNwZWNpZmljIGRpcmVjdG9yaWVzLgogIy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDczMTFiOWEzZmZkOTI4ODU2ZDA0YWFiNGUz
N2Q1ZmY1MzU4YzgzNDMuLjk5YjhhNTg4YjliYTU4MmRhYmE3OTM5ZjA3YjA2ODQxNDQ2OWE1N2Yg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTExNyw2ICsxMTcsMTUgQEAgZmFzdC9mb3Jtcy9maWxlL2VudHJpZXMtYXBpL2ltYWdlLW5vLXRy
YW5zY29kZS1vcGVuLXBhbmVsLmh0bWwgWyBQYXNzIF0KIAogc3RvcmFnZS9pbmRleGVkZGIvZGF0
YWJhc2UtdHJhbnNhY3Rpb24tY3ljbGUuaHRtbCBbIFBhc3MgXQogCitpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMgWyBQYXNzIF0KKyMgVGltaW5nIG91dCB0ZXN0cyB1
bnRpbCB3ZSBhZGQgcmVndWxhciB2aWRlbyBzdHJlYW1pbmcgYmFja2VuZCBzdXBwb3J0LgoraW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJh
bWUtY2FsbGJhY2stYmVmb3JlLXhyLXNlc3Npb24uaHR0cHMuaHRtbCBbIFNraXAgXQoraW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy92aWRlby1ydmZjL3JlcXVlc3QtdmlkZW8tZnJhbWUt
Y2FsbGJhY2stZG9tLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLWR1cmluZy14ci1zZXNz
aW9uLmh0dHBzLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dmlkZW8tcnZmYy9yZXF1ZXN0LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXBhcmFsbGVsLmh0bWwgWyBT
a2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdmlkZW8tcnZmYy9yZXF1ZXN0
LXZpZGVvLWZyYW1lLWNhbGxiYWNrLXJlcGVhdGluZy5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3ZpZGVvLXJ2ZmMvcmVxdWVzdC12aWRlby1mcmFtZS1jYWxs
YmFjay5odG1sIFsgU2tpcCBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
ICMgRW5kIHBsYXRmb3JtLXNwZWNpZmljIGRpcmVjdG9yaWVzLgogIy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3BlZXJDb25u
ZWN0aW9uLXJ2ZmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2VicnRjL3BlZXJDb25uZWN0
aW9uLXJ2ZmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1Mjg3Nzk3Nzk3NTViMjU3NmFmZDgz
M2ZjMTE0N2U5NzU5MzRlMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMv
cGVlckNvbm5lY3Rpb24tcnZmYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKKworUEFT
UyBWYWxpZGF0ZSBjYWxsYmFja3MgYW5kIG1ldGFkYXRhIGZvciBwZWVyIGNvbm5lY3Rpb24gdHJh
Y2tzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9wZWVyQ29ubmVjdGlvbi1ydmZj
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRkNzkzOTgyNjgwZWE2ODJhZTA4YjRiMmU3N2NiOTM4YTAzMGUxZjEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvcGVlckNvbm5lY3Rpb24tcnZmYy5odG1sCkBA
IC0wLDAgKzEsNTkgQEAKKzwhZG9jdHlwZSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
UmVxdWVzdFZpZGVvRnJhbWVDYWxsYmFja0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+CisgICAg
PGhlYWQ+CisgICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICAgICAgPHRpdGxlPlRl
c3RpbmcgcnZmYyBvbiBwZWVyIGNvbm5lY3Rpb24gc3RyZWFtczwvdGl0bGU+CisgICAgICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKyAgICAgICAgPHNjcmlwdCBzcmM9InJvdXRpbmVzLmpzIj48L3NjcmlwdD4KKyAgICA8L2hl
YWQ+CisgICAgPGJvZHk+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8iIGF1dG9wbGF5PSIiPjwv
dmlkZW8+CisgICAgICAgIDxzY3JpcHQ+Cithc3luYyBmdW5jdGlvbiBncmFiTmV4dE1ldGFkYXRh
KHZpZGVvKQoreworICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7
CisgICAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSB2aWRlby5yZXF1ZXN0VmlkZW9GcmFtZUNhbGxi
YWNrKChub3csIG1ldGFkYXRhKSA9PiB7CisgICAgICAgICAgICByZXNvbHZlKG1ldGFkYXRhKTsK
KyAgICAgICAgfSk7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUaW1lZCBvdXQg
bWV0YWRhdGEiKSwgNTAwMCk7CisgICAgfSk7Cit9CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVz
dCkgPT4geworICAgIGNvbnN0IGxvY2FsU3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2
aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB7IHdpZHRoOiA2NDAsIGhlaWdodDogNDgwIH0gfSk7
CisgICAgY29uc3QgcmVtb3RlU3RyZWFtID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJl
amVjdCkgPT4geworICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9
PiB7CisgICAgICAgICAgICBwYzEgPSBmaXJzdENvbm5lY3Rpb247CisgICAgICAgICAgICBjb25z
dCBzZW5kZXIgPSBmaXJzdENvbm5lY3Rpb24uYWRkVHJhY2sobG9jYWxTdHJlYW0uZ2V0VmlkZW9U
cmFja3MoKVswXSwgbG9jYWxTdHJlYW0pOworICAgICAgICB9LCAoc2Vjb25kQ29ubmVjdGlvbikg
PT4geworICAgICAgICAgICAgcGMyID0gc2Vjb25kQ29ubmVjdGlvbjsKKyAgICAgICAgICAgIHNl
Y29uZENvbm5lY3Rpb24ub250cmFjayA9ICh0cmFja0V2ZW50KSA9PiB7CisgICAgICAgICAgICAg
ICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0cmVhbXNbMF0pOworICAgICAgICAgICAgfTsKKyAgICAg
ICAgfSk7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIp
LCA1MDAwKTsKKyAgICB9KTsKKworICAgIHZpZGVvLnNyY09iamVjdCA9IHJlbW90ZVN0cmVhbTsK
KyAgICBhd2FpdCB2aWRlby5wbGF5KCk7CisKKyAgICBsZXQgbWV0YWRhdGEgPSBhd2FpdCBncmFi
TmV4dE1ldGFkYXRhKHZpZGVvKTsKKyAgICBhc3NlcnRfZXF1YWxzKG1ldGFkYXRhLndpZHRoLCA2
NDApOworICAgIGFzc2VydF9lcXVhbHMobWV0YWRhdGEuaGVpZ2h0LCA0ODApOworICAgIGFzc2Vy
dF9ncmVhdGVyX3RoYW4obWV0YWRhdGEucHJlc2VudGVkRnJhbWVzLCAwKTsKKyAgICBjb25zdCBw
cmVzZW50ZWRGcmFtZXMgPSBtZXRhZGF0YS5wcmVzZW50ZWRGcmFtZXM7CisKKyAgICBhd2FpdCBs
b2NhbFN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLmFwcGx5Q29uc3RyYWludHMoe3dpZHRoOiAz
MjB9KTsKKworICAgIGxldCBjb3VudGVyID0gMDsKKyAgICB3aGlsZSAoKytjb3VudGVyIDwgMTAw
ICYmIG1ldGFkYXRhLndpZHRoICE9PSAzMjApIHsKKyAgICAgICAgYXdhaXQgbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDUwKSk7CisgICAgICAgIG1ldGFkYXRhID0g
YXdhaXQgZ3JhYk5leHRNZXRhZGF0YSh2aWRlbyk7CisgICAgfQorICAgIGFzc2VydF9lcXVhbHMo
bWV0YWRhdGEud2lkdGgsIDMyMCk7CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZXRhZGF0YS5w
cmVzZW50ZWRGcmFtZXMsIHByZXNlbnRlZEZyYW1lcyk7Cit9LCAiVmFsaWRhdGUgY2FsbGJhY2tz
IGFuZCBtZXRhZGF0YSBmb3IgcGVlciBjb25uZWN0aW9uIHRyYWNrcyIpOworICAgICAgICA8L3Nj
cmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>