<?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>200885</bug_id>
          
          <creation_ts>2019-08-19 06:16:39 -0700</creation_ts>
          <short_desc>[geolocation] Rename interfaces and remove [NoInterfaceObject]</short_desc>
          <delta_ts>2019-08-23 14:02:30 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anssi Kostiainen">anssi.kostiainen</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>anssi.kostiainen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1562707</commentid>
    <comment_count>0</comment_count>
    <who name="Anssi Kostiainen">anssi.kostiainen</who>
    <bug_when>2019-08-19 06:16:39 -0700</bug_when>
    <thetext>The Geolocation API specification renamed the following interfaces and removed the [NoInterfaceObject] annotation so that these types are now exposed to script:

  Coordinates   -&gt; GeolocationCoordinates
  Position      -&gt; GeolocationPosition
  PositionError -&gt; GeolocationPositionError

This is done in response to an effort to remove the [NoInterfaceObject] annotation from WebIDL.

Spec pull requests (merged):
https://github.com/w3c/geolocation-api/pull/20
https://github.com/w3c/geolocation-api/pull/23

Chromium CL:
https://chromium-review.googlesource.com/c/chromium/src/+/1471230</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564015</commentid>
    <comment_count>1</comment_count>
    <who name="Anssi Kostiainen">anssi.kostiainen</who>
    <bug_when>2019-08-22 03:33:03 -0700</bug_when>
    <thetext>Also:

Add [Exposed=Window] to these three interfaces:
https://github.com/w3c/geolocation-api/pull/32</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564285</commentid>
    <comment_count>2</comment_count>
      <attachid>377067</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-22 16:18:28 -0700</bug_when>
    <thetext>Created attachment 377067
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564286</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-22 16:20:13 -0700</bug_when>
    <thetext>Attachment 377067 did not pass style-queue:


ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:36:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:37:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:38:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 3 in 42 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564288</commentid>
    <comment_count>4</comment_count>
      <attachid>377069</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-22 16:25:49 -0700</bug_when>
    <thetext>Created attachment 377069
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564290</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-22 16:27:23 -0700</bug_when>
    <thetext>Attachment 377069 did not pass style-queue:


ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:36:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:37:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:38:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 3 in 46 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564291</commentid>
    <comment_count>6</comment_count>
      <attachid>377070</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-22 16:27:59 -0700</bug_when>
    <thetext>Created attachment 377070
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564295</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-22 16:30:51 -0700</bug_when>
    <thetext>Attachment 377070 did not pass style-queue:


ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:36:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:37:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:38:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 3 in 47 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564296</commentid>
    <comment_count>8</comment_count>
      <attachid>377072</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-22 16:30:52 -0700</bug_when>
    <thetext>Created attachment 377072
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564298</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-22 16:33:07 -0700</bug_when>
    <thetext>Attachment 377072 did not pass style-queue:


ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:36:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:37:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:38:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 3 in 47 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564311</commentid>
    <comment_count>10</comment_count>
      <attachid>377076</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-22 16:55:26 -0700</bug_when>
    <thetext>Created attachment 377076
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564315</commentid>
    <comment_count>11</comment_count>
      <attachid>377077</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-22 16:57:44 -0700</bug_when>
    <thetext>Created attachment 377077
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564339</commentid>
    <comment_count>12</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-22 17:57:39 -0700</bug_when>
    <thetext>Attachment 377077 did not pass style-queue:


ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:36:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:37:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:38:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 3 in 60 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564493</commentid>
    <comment_count>13</comment_count>
      <attachid>377132</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-23 10:26:38 -0700</bug_when>
    <thetext>Created attachment 377132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564497</commentid>
    <comment_count>14</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-23 10:28:24 -0700</bug_when>
    <thetext>Attachment 377132 did not pass style-queue:


ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:36:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:37:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:38:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebKit/UIProcess/API/glib/WebKitGeolocationManager.cpp:73:  _WebKitGeolocationPosition is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit/UIProcess/API/glib/WebKitGeolocationManager.cpp:78:  _WebKitGeolocationPosition is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 5 in 66 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564507</commentid>
    <comment_count>15</comment_count>
      <attachid>377135</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-23 10:53:19 -0700</bug_when>
    <thetext>Created attachment 377135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564508</commentid>
    <comment_count>16</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-23 10:54:59 -0700</bug_when>
    <thetext>Attachment 377135 did not pass style-queue:


ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:36:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:37:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:38:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebKit/UIProcess/API/glib/WebKitGeolocationManager.cpp:73:  _WebKitGeolocationPosition is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit/UIProcess/API/glib/WebKitGeolocationManager.cpp:78:  _WebKitGeolocationPosition is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 5 in 66 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564534</commentid>
    <comment_count>17</comment_count>
      <attachid>377142</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-23 11:46:37 -0700</bug_when>
    <thetext>Created attachment 377142
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564540</commentid>
    <comment_count>18</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-23 11:49:35 -0700</bug_when>
    <thetext>Attachment 377142 did not pass style-queue:


ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:36:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:37:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/Modules/geolocation/GeolocationPositionError.h:38:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebKit/UIProcess/API/glib/WebKitGeolocationManager.cpp:73:  _WebKitGeolocationPosition is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebKit/UIProcess/API/glib/WebKitGeolocationManager.cpp:78:  _WebKitGeolocationPosition is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 5 in 66 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564584</commentid>
    <comment_count>19</comment_count>
      <attachid>377142</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-23 13:59:36 -0700</bug_when>
    <thetext>Comment on attachment 377142
Patch

Clearing flags on attachment: 377142

Committed r249066: &lt;https://trac.webkit.org/changeset/249066&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564585</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-23 14:00:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564586</commentid>
    <comment_count>21</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-23 14:02:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/54653181&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377067</attachid>
            <date>2019-08-22 16:18:28 -0700</date>
            <delta_ts>2019-08-22 16:25:49 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>200885_GeolocationPosition_wip.patch</filename>
            <type>text/plain</type>
            <size>82490</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4
IGU0MDgzZGQ5MGM3Li4zNTI2ZmRhNmNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC05OSw2ICs5OSw5IEBAICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZ2Vv
bG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL0dlb2xvY2F0aW9uLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9H
ZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb3Bvc2l0aW9uLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggOTA2YzMxNDUzNzguLmViNzMz
ZmY3MGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdApAQCAtNjU1LDYgKzY1NSwxMiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0dhbWVwYWRXZWJWUi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2FtZXBhZFdlYlZSLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb24uY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb25D
b29yZGluYXRlcy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTR2VvbG9jYXRpb25Db29yZGluYXRlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uUG9zaXRpb24u
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHZW9sb2Nh
dGlvblBvc2l0aW9uRXJyb3IuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb3Bvc2l0aW9uLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHZW9wb3NpdGlvbi5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlc3R1cmVFdmVudC5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDQ2NGMxM2YyNjE0Li4wYzI4YjY1
N2I4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNzEsMTIgKzE3MSwxMiBA
QCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dhbWVwYWQvR2Ft
ZXBhZEJ1dHRvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRF
dmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVw
YWQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRs
IFwKLSAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsIFwK
KyAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRl
cy5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBv
c2l0aW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uUG9zaXRpb25FcnJvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlv
bi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2Vv
bG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmlkbCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZpZXIuY3BwCmluZGV4IDc3
ZWJmMzQyMWM5Li43MGY4OTYyMWZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9Ob3RpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9Ob3RpZmllci5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgR2VvTm90aWZp
ZXI6Okdlb05vdGlmaWVyKEdlb2xvY2F0aW9uJiBnZW9sb2NhdGlvbiwgUmVmPFBvc2l0aW9uQ2Fs
bGJhY2s+JiYgc3VjY2UKIHsKIH0KIAotdm9pZCBHZW9Ob3RpZmllcjo6c2V0RmF0YWxFcnJvcihS
ZWZQdHI8UG9zaXRpb25FcnJvcj4mJiBlcnJvcikKK3ZvaWQgR2VvTm90aWZpZXI6OnNldEZhdGFs
RXJyb3IoUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4mJiBlcnJvcikKIHsKICAgICAv
LyBJZiBhIGZhdGFsIGVycm9yIGhhcyBhbHJlYWR5IGJlZW4gc2V0LCBzdGljayB3aXRoIGl0LiBU
aGlzIG1ha2VzIHN1cmUgdGhhdAogICAgIC8vIHdoZW4gcGVybWlzc2lvbiBpcyBkZW5pZWQsIHRo
aXMgaXMgdGhlIGVycm9yIHJlcG9ydGVkLCBhcyByZXF1aXJlZCBieSB0aGUKQEAgLTY5LDcgKzY5
LDcgQEAgYm9vbCBHZW9Ob3RpZmllcjo6aGFzWmVyb1RpbWVvdXQoKSBjb25zdAogICAgIHJldHVy
biAhbV9vcHRpb25zLnRpbWVvdXQ7CiB9CiAKLXZvaWQgR2VvTm90aWZpZXI6OnJ1blN1Y2Nlc3ND
YWxsYmFjayhHZW9wb3NpdGlvbiogcG9zaXRpb24pCit2b2lkIEdlb05vdGlmaWVyOjpydW5TdWNj
ZXNzQ2FsbGJhY2soR2VvbG9jYXRpb25Qb3NpdGlvbiogcG9zaXRpb24pCiB7CiAgICAgLy8gSWYg
d2UgYXJlIGhlcmUgYW5kIHRoZSBHZW9sb2NhdGlvbiBwZXJtaXNzaW9uIGlzIG5vdCBhcHByb3Zl
ZCwgc29tZXRoaW5nIGhhcwogICAgIC8vIGdvbmUgaG9ycmlibHkgd3JvbmcuCkBAIC03OSw3ICs3
OSw3IEBAIHZvaWQgR2VvTm90aWZpZXI6OnJ1blN1Y2Nlc3NDYWxsYmFjayhHZW9wb3NpdGlvbiog
cG9zaXRpb24pCiAgICAgbV9zdWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2ZW50KHBvc2l0aW9uKTsK
IH0KIAotdm9pZCBHZW9Ob3RpZmllcjo6cnVuRXJyb3JDYWxsYmFjayhQb3NpdGlvbkVycm9yJiBl
cnJvcikKK3ZvaWQgR2VvTm90aWZpZXI6OnJ1bkVycm9yQ2FsbGJhY2soR2VvbG9jYXRpb25Qb3Np
dGlvbkVycm9yJiBlcnJvcikKIHsKICAgICBpZiAobV9lcnJvckNhbGxiYWNrKQogICAgICAgICBt
X2Vycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KGVycm9yKTsKQEAgLTEyMSw3ICsxMjEsNyBAQCB2
b2lkIEdlb05vdGlmaWVyOjp0aW1lckZpcmVkKCkKICAgICB9CiAgICAgCiAgICAgaWYgKG1fZXJy
b3JDYWxsYmFjaykgewotICAgICAgICBhdXRvIGVycm9yID0gUG9zaXRpb25FcnJvcjo6Y3JlYXRl
KFBvc2l0aW9uRXJyb3I6OlRJTUVPVVQsICJUaW1lb3V0IGV4cGlyZWQiX3MpOworICAgICAgICBh
dXRvIGVycm9yID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yOjpUSU1FT1VULCAiVGltZW91dCBleHBpcmVkIl9zKTsKICAgICAgICAgbV9l
cnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChlcnJvcik7CiAgICAgfQogICAgIG1fZ2VvbG9jYXRp
b24tPnJlcXVlc3RUaW1lZE91dCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vR2VvTm90aWZpZXIuaAppbmRleCBmYjMyY2U4ZDliZi4uZGI5MTNlZjkwYzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZp
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVy
LmgKQEAgLTM2LDEwICszNiwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEdl
b3Bvc2l0aW9uOwogY2xhc3MgR2VvbG9jYXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9u
OworY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOwogY2xhc3MgUG9zaXRpb25DYWxsYmFj
azsKLWNsYXNzIFBvc2l0aW9uRXJyb3I7CiBjbGFzcyBQb3NpdGlvbkVycm9yQ2FsbGJhY2s7CiAK
IGNsYXNzIEdlb05vdGlmaWVyIDogcHVibGljIFJlZkNvdW50ZWQ8R2VvTm90aWZpZXI+IHsKQEAg
LTUwLDEzICs1MCwxMyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgY29uc3QgUG9zaXRpb25PcHRp
b25zJiBvcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zOyB9Ci0gICAgdm9pZCBzZXRG
YXRhbEVycm9yKFJlZlB0cjxQb3NpdGlvbkVycm9yPiYmKTsKKyAgICB2b2lkIHNldEZhdGFsRXJy
b3IoUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4mJik7CiAKICAgICBib29sIHVzZUNh
Y2hlZFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV91c2VDYWNoZWRQb3NpdGlvbjsgfQogICAg
IHZvaWQgc2V0VXNlQ2FjaGVkUG9zaXRpb24oKTsKIAotICAgIHZvaWQgcnVuU3VjY2Vzc0NhbGxi
YWNrKEdlb3Bvc2l0aW9uKik7IC8vIEZJWE1FOiBUaGlzIHNob3VsZCB0YWtlIGEgcmVmZXJlbmNl
LgotICAgIHZvaWQgcnVuRXJyb3JDYWxsYmFjayhQb3NpdGlvbkVycm9yJik7CisgICAgdm9pZCBy
dW5TdWNjZXNzQ2FsbGJhY2soR2VvbG9jYXRpb25Qb3NpdGlvbiopOyAvLyBGSVhNRTogVGhpcyBz
aG91bGQgdGFrZSBhIHJlZmVyZW5jZS4KKyAgICB2b2lkIHJ1bkVycm9yQ2FsbGJhY2soR2VvbG9j
YXRpb25Qb3NpdGlvbkVycm9yJik7CiAKICAgICB2b2lkIHN0YXJ0VGltZXJJZk5lZWRlZCgpOwog
ICAgIHZvaWQgc3RvcFRpbWVyKCk7CkBAIC03MSw3ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgUmVm
UHRyPFBvc2l0aW9uRXJyb3JDYWxsYmFjaz4gbV9lcnJvckNhbGxiYWNrOwogICAgIFBvc2l0aW9u
T3B0aW9ucyBtX29wdGlvbnM7CiAgICAgVGltZXIgbV90aW1lcjsKLSAgICBSZWZQdHI8UG9zaXRp
b25FcnJvcj4gbV9mYXRhbEVycm9yOworICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uRXJy
b3I+IG1fZmF0YWxFcnJvcjsKICAgICBib29sIG1fdXNlQ2FjaGVkUG9zaXRpb247CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3Bw
CmluZGV4IGUyNjkxZjU5N2ZlLi5mMTJlMTQ5MGZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKQEAgLTMwLDE3ICszMCwxNiBA
QAogCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogCi0jaW5jbHVkZSAiQ29vcmRpbmF0ZXMuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiR2Vv
Tm90aWZpZXIuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRl
ICJHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25FcnJvci5o
IgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKLSNpbmNsdWRlICJHZW9wb3NpdGlv
bi5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiTmF2
aWdhdG9yLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIK
ICNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC01NiwyOCAr
NTUsMjggQEAgc3RhdGljIGNvbnN0IEFTQ0lJTGl0ZXJhbCBvcmlnaW5DYW5ub3RSZXF1ZXN0R2Vv
bG9jYXRpb25FcnJvck1lc3NhZ2UgeyAiT3JpZ2luIGQKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKEdlb2xvY2F0aW9uKTsKIAotc3RhdGljIFJlZlB0cjxHZW9wb3NpdGlvbj4gY3JlYXRl
R2VvcG9zaXRpb24oT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4mJiBwb3NpdGlvbikKK3N0
YXRpYyBSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlv
bihPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4mJiBwb3NpdGlvbikKIHsKICAgICBp
ZiAoIXBvc2l0aW9uKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBET01UaW1l
U3RhbXAgdGltZXN0YW1wID0gY29udmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcChwb3NpdGlvbi0+
dGltZXN0YW1wKTsKLSAgICByZXR1cm4gR2VvcG9zaXRpb246OmNyZWF0ZShDb29yZGluYXRlczo6
Y3JlYXRlKFdURk1vdmUocG9zaXRpb24udmFsdWUoKSkpLCB0aW1lc3RhbXApOworICAgIHJldHVy
biBHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoR2VvbG9jYXRpb25Db29yZGluYXRlczo6Y3Jl
YXRlKFdURk1vdmUocG9zaXRpb24udmFsdWUoKSkpLCB0aW1lc3RhbXApOwogfQogCi1zdGF0aWMg
UmVmPFBvc2l0aW9uRXJyb3I+IGNyZWF0ZVBvc2l0aW9uRXJyb3IoR2VvbG9jYXRpb25FcnJvciYg
ZXJyb3IpCitzdGF0aWMgUmVmPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gY3JlYXRlR2VvbG9j
YXRpb25Qb3NpdGlvbkVycm9yKEdlb2xvY2F0aW9uRXJyb3ImIGVycm9yKQogewotICAgIFBvc2l0
aW9uRXJyb3I6OkVycm9yQ29kZSBjb2RlID0gUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJ
TEFCTEU7CisgICAgYXV0byBjb2RlID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQT1NJVElP
Tl9VTkFWQUlMQUJMRTsKICAgICBzd2l0Y2ggKGVycm9yLmNvZGUoKSkgewogICAgIGNhc2UgR2Vv
bG9jYXRpb25FcnJvcjo6UGVybWlzc2lvbkRlbmllZDoKLSAgICAgICAgY29kZSA9IFBvc2l0aW9u
RXJyb3I6OlBFUk1JU1NJT05fREVOSUVEOworICAgICAgICBjb2RlID0gR2VvbG9jYXRpb25Qb3Np
dGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBH
ZW9sb2NhdGlvbkVycm9yOjpQb3NpdGlvblVuYXZhaWxhYmxlOgotICAgICAgICBjb2RlID0gUG9z
aXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEU7CisgICAgICAgIGNvZGUgPSBHZW9sb2Nh
dGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxFOwogICAgICAgICBicmVhazsK
ICAgICB9CiAKLSAgICByZXR1cm4gUG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIGVycm9yLm1l
c3NhZ2UoKSk7CisgICAgcmV0dXJuIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNv
ZGUsIGVycm9yLm1lc3NhZ2UoKSk7CiB9CiAKIGJvb2wgR2VvbG9jYXRpb246OldhdGNoZXJzOjph
ZGQoaW50IGlkLCBSZWZQdHI8R2VvTm90aWZpZXI+JiYgbm90aWZpZXIpCkBAIC0yOTAsMTMgKzI4
OSwxMyBAQCBjb25zdCBjaGFyKiBHZW9sb2NhdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0CiAgICAgcmV0dXJuICJHZW9sb2NhdGlvbiI7CiB9CiAKLUdlb3Bvc2l0aW9uKiBHZW9sb2Nh
dGlvbjo6bGFzdFBvc2l0aW9uKCkKK0dlb2xvY2F0aW9uUG9zaXRpb24qIEdlb2xvY2F0aW9uOjps
YXN0UG9zaXRpb24oKQogewogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgaWYg
KCFwYWdlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIG1fbGFzdFBvc2l0aW9uID0g
Y3JlYXRlR2VvcG9zaXRpb24oR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5sYXN0
UG9zaXRpb24oKSk7CisgICAgbV9sYXN0UG9zaXRpb24gPSBjcmVhdGVHZW9sb2NhdGlvblBvc2l0
aW9uKEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKS0+bGFzdFBvc2l0aW9uKCkpOwog
CiAgICAgcmV0dXJuIG1fbGFzdFBvc2l0aW9uLmdldCgpOwogfQpAQCAtMzczLDcgKzM3Miw3IEBA
IGJvb2wgR2VvbG9jYXRpb246OnNob3VsZEJsb2NrR2VvbG9jYXRpb25SZXF1ZXN0cygpCiB2b2lk
IEdlb2xvY2F0aW9uOjpzdGFydFJlcXVlc3QoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogewogICAg
IGlmIChzaG91bGRCbG9ja0dlb2xvY2F0aW9uUmVxdWVzdHMoKSkgewotICAgICAgICBub3RpZmll
ci0+c2V0RmF0YWxFcnJvcihQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UE9T
SVRJT05fVU5BVkFJTEFCTEUsIG9yaWdpbkNhbm5vdFJlcXVlc3RHZW9sb2NhdGlvbkVycm9yTWVz
c2FnZSkpOworICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihHZW9sb2NhdGlvblBvc2l0
aW9uRXJyb3I6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZB
SUxBQkxFLCBvcmlnaW5DYW5ub3RSZXF1ZXN0R2VvbG9jYXRpb25FcnJvck1lc3NhZ2UpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBkb2N1bWVudCgpLT5zZXRHZW9sb2NhdGlvbkFjY2Vz
c2VkKCk7CkBAIC0zODEsNyArMzgwLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RhcnRSZXF1ZXN0
KEdlb05vdGlmaWVyKiBub3RpZmllcikKICAgICAvLyBDaGVjayB3aGV0aGVyIHBlcm1pc3Npb25z
IGhhdmUgYWxyZWFkeSBiZWVuIGRlbmllZC4gTm90ZSB0aGF0IGlmIHRoaXMgaXMgdGhlIGNhc2Us
CiAgICAgLy8gdGhlIHBlcm1pc3Npb24gc3RhdGUgY2FuIG5vdCBjaGFuZ2UgYWdhaW4gaW4gdGhl
IGxpZmV0aW1lIG9mIHRoaXMgcGFnZS4KICAgICBpZiAoaXNEZW5pZWQoKSkKLSAgICAgICAgbm90
aWZpZXItPnNldEZhdGFsRXJyb3IoUG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6
OlBFUk1JU1NJT05fREVOSUVELCBwZXJtaXNzaW9uRGVuaWVkRXJyb3JNZXNzYWdlKSk7CisgICAg
ICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3Jl
YXRlKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Np
b25EZW5pZWRFcnJvck1lc3NhZ2UpKTsKICAgICBlbHNlIGlmIChoYXZlU3VpdGFibGVDYWNoZWRQ
b3NpdGlvbihub3RpZmllci0+b3B0aW9ucygpKSkKICAgICAgICAgbm90aWZpZXItPnNldFVzZUNh
Y2hlZFBvc2l0aW9uKCk7CiAgICAgZWxzZSBpZiAobm90aWZpZXItPmhhc1plcm9UaW1lb3V0KCkp
CkBAIC0zOTMsNyArMzkyLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RhcnRSZXF1ZXN0KEdlb05v
dGlmaWVyKiBub3RpZmllcikKICAgICB9IGVsc2UgaWYgKHN0YXJ0VXBkYXRpbmcobm90aWZpZXIp
KQogICAgICAgICBub3RpZmllci0+c3RhcnRUaW1lcklmTmVlZGVkKCk7CiAgICAgZWxzZQotICAg
ICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRp
b25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JN
ZXNzYWdlKSk7CisgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKEdlb2xvY2F0aW9uUG9z
aXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5B
VkFJTEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CiB9CiAKIHZvaWQg
R2VvbG9jYXRpb246OmZhdGFsRXJyb3JPY2N1cnJlZChHZW9Ob3RpZmllciogbm90aWZpZXIpCkBA
IC00MTEsNyArNDEwLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6cmVxdWVzdFVzZXNDYWNoZWRQb3Np
dGlvbihHZW9Ob3RpZmllciogbm90aWZpZXIpCiAgICAgLy8gVGhpcyBpcyBjYWxsZWQgYXN5bmNo
cm9ub3VzbHksIHNvIHRoZSBwZXJtaXNzaW9ucyBjb3VsZCBoYXZlIGJlZW4gZGVuaWVkCiAgICAg
Ly8gc2luY2Ugd2UgbGFzdCBjaGVja2VkIGluIHN0YXJ0UmVxdWVzdC4KICAgICBpZiAoaXNEZW5p
ZWQoKSkgewotICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihQb3NpdGlvbkVycm9yOjpj
cmVhdGUoUG9zaXRpb25FcnJvcjo6UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Npb25EZW5pZWRF
cnJvck1lc3NhZ2UpKTsKKyAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRp
b25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNT
SU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZSkpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC00NDMsNyArNDQyLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6bWFrZUNh
Y2hlZFBvc2l0aW9uQ2FsbGJhY2tzKCkKICAgICAgICAgICAgIGlmIChub3RpZmllci0+aGFzWmVy
b1RpbWVvdXQoKSB8fCBzdGFydFVwZGF0aW5nKG5vdGlmaWVyLmdldCgpKSkKICAgICAgICAgICAg
ICAgICBub3RpZmllci0+c3RhcnRUaW1lcklmTmVlZGVkKCk7CiAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoUG9zaXRpb25FcnJvcjo6Y3Jl
YXRlKFBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxFLCBmYWlsZWRUb1N0YXJ0U2Vy
dmljZUVycm9yTWVzc2FnZSkpOworICAgICAgICAgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVy
cm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb25F
cnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JNZXNz
YWdlKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTQ2NCw3ICs0NjMsNyBAQCB2b2lkIEdlb2xv
Y2F0aW9uOjpyZXF1ZXN0VGltZWRPdXQoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogCiBib29sIEdl
b2xvY2F0aW9uOjpoYXZlU3VpdGFibGVDYWNoZWRQb3NpdGlvbihjb25zdCBQb3NpdGlvbk9wdGlv
bnMmIG9wdGlvbnMpCiB7Ci0gICAgR2VvcG9zaXRpb24qIGNhY2hlZFBvc2l0aW9uID0gbGFzdFBv
c2l0aW9uKCk7CisgICAgYXV0byogY2FjaGVkUG9zaXRpb24gPSBsYXN0UG9zaXRpb24oKTsKICAg
ICBpZiAoIWNhY2hlZFBvc2l0aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFv
cHRpb25zLm1heGltdW1BZ2UpCkBAIC01MDYsNyArNTA1LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6
c2V0SXNBbGxvd2VkKGJvb2wgYWxsb3dlZCkKICAgICB9CiAKICAgICBpZiAoIWlzQWxsb3dlZCgp
KSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25F
cnJvcjo6UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2UpOwor
ICAgICAgICBhdXRvIGVycm9yID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2Vv
bG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmll
ZEVycm9yTWVzc2FnZSk7CiAgICAgICAgIGVycm9yLT5zZXRJc0ZhdGFsKHRydWUpOwogICAgICAg
ICBoYW5kbGVFcnJvcihlcnJvcik7CiAgICAgICAgIG1fcmVxdWVzdHNBd2FpdGluZ0NhY2hlZFBv
c2l0aW9uLmNsZWFyKCk7CkBAIC01MTgsMTkgKzUxNywxOSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpz
ZXRJc0FsbG93ZWQoYm9vbCBhbGxvd2VkKQogICAgIC8vIElmIHRoZSBzZXJ2aWNlIGhhcyBhIGxh
c3QgcG9zaXRpb24sIHVzZSBpdCB0byBjYWxsIGJhY2sgZm9yIGFsbCByZXF1ZXN0cy4KICAgICAv
LyBJZiBhbnkgb2YgdGhlIHJlcXVlc3RzIGFyZSB3YWl0aW5nIGZvciBwZXJtaXNzaW9uIGZvciBh
IGNhY2hlZCBwb3NpdGlvbiwKICAgICAvLyB0aGUgcG9zaXRpb24gZnJvbSB0aGUgc2VydmljZSB3
aWxsIGJlIGF0IGxlYXN0IGFzIGZyZXNoLgotICAgIGlmIChSZWZQdHI8R2VvcG9zaXRpb24+IHBv
c2l0aW9uID0gbGFzdFBvc2l0aW9uKCkpCisgICAgaWYgKFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0
aW9uPiBwb3NpdGlvbiA9IGxhc3RQb3NpdGlvbigpKQogICAgICAgICBtYWtlU3VjY2Vzc0NhbGxi
YWNrcygqcG9zaXRpb24pOwogICAgIGVsc2UKICAgICAgICAgbWFrZUNhY2hlZFBvc2l0aW9uQ2Fs
bGJhY2tzKCk7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb246OnNlbmRFcnJvcihHZW9Ob3RpZmllclZl
Y3RvciYgbm90aWZpZXJzLCBQb3NpdGlvbkVycm9yJiBlcnJvcikKK3ZvaWQgR2VvbG9jYXRpb246
OnNlbmRFcnJvcihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZpZXJzLCBHZW9sb2NhdGlvblBvc2l0
aW9uRXJyb3ImIGVycm9yKQogewogICAgIGZvciAoYXV0byYgbm90aWZpZXIgOiBub3RpZmllcnMp
CiAgICAgICAgIG5vdGlmaWVyLT5ydW5FcnJvckNhbGxiYWNrKGVycm9yKTsKIH0KIAotdm9pZCBH
ZW9sb2NhdGlvbjo6c2VuZFBvc2l0aW9uKEdlb05vdGlmaWVyVmVjdG9yJiBub3RpZmllcnMsIEdl
b3Bvc2l0aW9uJiBwb3NpdGlvbikKK3ZvaWQgR2VvbG9jYXRpb246OnNlbmRQb3NpdGlvbihHZW9O
b3RpZmllclZlY3RvciYgbm90aWZpZXJzLCBHZW9sb2NhdGlvblBvc2l0aW9uJiBwb3NpdGlvbikK
IHsKICAgICBmb3IgKGF1dG8mIG5vdGlmaWVyIDogbm90aWZpZXJzKQogICAgICAgICBub3RpZmll
ci0+cnVuU3VjY2Vzc0NhbGxiYWNrKCZwb3NpdGlvbik7CkBAIC01NjUsNyArNTY0LDcgQEAgdm9p
ZCBHZW9sb2NhdGlvbjo6c3RvcFRpbWVycygpCiB2b2lkIEdlb2xvY2F0aW9uOjpjYW5jZWxSZXF1
ZXN0cyhHZW9Ob3RpZmllclZlY3RvciYgbm90aWZpZXJzKQogewogICAgIGZvciAoYXV0byYgbm90
aWZpZXIgOiBub3RpZmllcnMpCi0gICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBvc2l0
aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgZnJh
bWVsZXNzRG9jdW1lbnRFcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgbm90aWZpZXItPnNldEZhdGFs
RXJyb3IoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlv
bkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgZnJhbWVsZXNzRG9jdW1lbnRFcnJvck1lc3Nh
Z2UpKTsKIH0KIAogdm9pZCBHZW9sb2NhdGlvbjo6Y2FuY2VsQWxsUmVxdWVzdHMoKQpAQCAtNTk1
LDcgKzU5NCw3IEBAIHZvaWQgR2VvbG9jYXRpb246OmNvcHlUb1NldChjb25zdCBHZW9Ob3RpZmll
clZlY3RvciYgc3JjLCBHZW9Ob3RpZmllclNldCYgZGVzdCkKICAgICAgICAgZGVzdC5hZGQobm90
aWZpZXIuZ2V0KCkpOwogfQogCi12b2lkIEdlb2xvY2F0aW9uOjpoYW5kbGVFcnJvcihQb3NpdGlv
bkVycm9yJiBlcnJvcikKK3ZvaWQgR2VvbG9jYXRpb246OmhhbmRsZUVycm9yKEdlb2xvY2F0aW9u
UG9zaXRpb25FcnJvciYgZXJyb3IpCiB7CiAgICAgYXV0byBvbmVTaG90c0NvcHkgPSBjb3B5VG9W
ZWN0b3IobV9vbmVTaG90cyk7CiAKQEAgLTY0Myw3ICs2NDIsNyBAQCB2b2lkIEdlb2xvY2F0aW9u
OjpyZXF1ZXN0UGVybWlzc2lvbigpCiAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBh
Z2UpLT5yZXF1ZXN0UGVybWlzc2lvbigqdGhpcyk7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb246Om1h
a2VTdWNjZXNzQ2FsbGJhY2tzKEdlb3Bvc2l0aW9uJiBwb3NpdGlvbikKK3ZvaWQgR2VvbG9jYXRp
b246Om1ha2VTdWNjZXNzQ2FsbGJhY2tzKEdlb2xvY2F0aW9uUG9zaXRpb24mIHBvc2l0aW9uKQog
ewogICAgIEFTU0VSVChsYXN0UG9zaXRpb24oKSk7CiAgICAgQVNTRVJUKGlzQWxsb3dlZCgpKTsK
QEAgLTY3Nyw3ICs2NzYsNyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpwb3NpdGlvbkNoYW5nZWQoKQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUmVmUHRyPEdlb3Bvc2l0aW9uPiBwb3NpdGlv
biA9IGxhc3RQb3NpdGlvbigpOworICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3Np
dGlvbiA9IGxhc3RQb3NpdGlvbigpOwogICAgIEFTU0VSVChwb3NpdGlvbik7CiAKICAgICBtYWtl
U3VjY2Vzc0NhbGxiYWNrcygqcG9zaXRpb24pOwpAQCAtNjg2LDExICs2ODUsMTEgQEAgdm9pZCBH
ZW9sb2NhdGlvbjo6cG9zaXRpb25DaGFuZ2VkKCkKIHZvaWQgR2VvbG9jYXRpb246OnNldEVycm9y
KEdlb2xvY2F0aW9uRXJyb3ImIGVycm9yKQogewogICAgIGlmIChtX2lzU3VzcGVuZGVkKSB7Ci0g
ICAgICAgIG1fZXJyb3JXYWl0aW5nRm9yUmVzdW1lID0gY3JlYXRlUG9zaXRpb25FcnJvcihlcnJv
cik7CisgICAgICAgIG1fZXJyb3JXYWl0aW5nRm9yUmVzdW1lID0gY3JlYXRlR2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yKGVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8g
cG9zaXRpb25FcnJvciA9IGNyZWF0ZVBvc2l0aW9uRXJyb3IoZXJyb3IpOworICAgIGF1dG8gcG9z
aXRpb25FcnJvciA9IGNyZWF0ZUdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcihlcnJvcik7CiAgICAg
aGFuZGxlRXJyb3IocG9zaXRpb25FcnJvcik7CiB9CiAKQEAgLTcyNCw5ICs3MjMsOSBAQCB2b2lk
IEdlb2xvY2F0aW9uOjpoYW5kbGVQZW5kaW5nUGVybWlzc2lvbk5vdGlmaWVycygpCiAgICAgICAg
ICAgICBpZiAoc3RhcnRVcGRhdGluZyhub3RpZmllci5nZXQoKSkpCiAgICAgICAgICAgICAgICAg
bm90aWZpZXItPnN0YXJ0VGltZXJJZk5lZWRlZCgpOwogICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQ
b3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgZmFpbGVkVG9TdGFydFNlcnZpY2VF
cnJvck1lc3NhZ2UpKTsKKyAgICAgICAgICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihH
ZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6
OlBPU0lUSU9OX1VOQVZBSUxBQkxFLCBmYWlsZWRUb1N0YXJ0U2VydmljZUVycm9yTWVzc2FnZSkp
OwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBv
c2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVy
bWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZSkpOworICAgICAgICAgICAgbm90aWZpZXItPnNldEZh
dGFsRXJyb3IoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3Np
dGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2Fn
ZSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5oCmluZGV4IDJhMDE5OGVlY2RjLi40NjBjOTEyMTg0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaApAQCAtMzAs
OSArMzAsOSBAQAogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKLSNpbmNsdWRlICJHZW9wb3NpdGlvbi5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9u
UG9zaXRpb24uaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaCIKICNpbmNs
dWRlICJQb3NpdGlvbkNhbGxiYWNrLmgiCi0jaW5jbHVkZSAiUG9zaXRpb25FcnJvci5oIgogI2lu
Y2x1ZGUgIlBvc2l0aW9uRXJyb3JDYWxsYmFjay5oIgogI2luY2x1ZGUgIlBvc2l0aW9uT3B0aW9u
cy5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgpAQCAtNzksNyArNzksNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEdlb2xvY2F0aW9uKE5hdmlnYXRvciYpOwogCi0g
ICAgR2VvcG9zaXRpb24qIGxhc3RQb3NpdGlvbigpOworICAgIEdlb2xvY2F0aW9uUG9zaXRpb24q
IGxhc3RQb3NpdGlvbigpOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgdm9pZCBzdG9w
KCkgb3ZlcnJpZGU7CkBAIC0xMTUsOCArMTE1LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaGFz
TGlzdGVuZXJzKCkgY29uc3QgeyByZXR1cm4gIW1fb25lU2hvdHMuaXNFbXB0eSgpIHx8ICFtX3dh
dGNoZXJzLmlzRW1wdHkoKTsgfQogCi0gICAgdm9pZCBzZW5kRXJyb3IoR2VvTm90aWZpZXJWZWN0
b3ImLCBQb3NpdGlvbkVycm9yJik7Ci0gICAgdm9pZCBzZW5kUG9zaXRpb24oR2VvTm90aWZpZXJW
ZWN0b3ImLCBHZW9wb3NpdGlvbiYpOworICAgIHZvaWQgc2VuZEVycm9yKEdlb05vdGlmaWVyVmVj
dG9yJiwgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yJik7CisgICAgdm9pZCBzZW5kUG9zaXRpb24o
R2VvTm90aWZpZXJWZWN0b3ImLCBHZW9sb2NhdGlvblBvc2l0aW9uJik7CiAKICAgICBzdGF0aWMg
dm9pZCBleHRyYWN0Tm90aWZpZXJzV2l0aENhY2hlZFBvc2l0aW9uKEdlb05vdGlmaWVyVmVjdG9y
JiBub3RpZmllcnMsIEdlb05vdGlmaWVyVmVjdG9yKiBjYWNoZWQpOwogICAgIHN0YXRpYyB2b2lk
IGNvcHlUb1NldChjb25zdCBHZW9Ob3RpZmllclZlY3RvciYsIEdlb05vdGlmaWVyU2V0Jik7CkBA
IC0xMjksOCArMTI5LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGNhbmNlbFJlcXVlc3RzKEdlb05v
dGlmaWVyVmVjdG9yJik7CiAgICAgdm9pZCBjYW5jZWxBbGxSZXF1ZXN0cygpOwogCi0gICAgdm9p
ZCBtYWtlU3VjY2Vzc0NhbGxiYWNrcyhHZW9wb3NpdGlvbiYpOwotICAgIHZvaWQgaGFuZGxlRXJy
b3IoUG9zaXRpb25FcnJvciYpOworICAgIHZvaWQgbWFrZVN1Y2Nlc3NDYWxsYmFja3MoR2VvbG9j
YXRpb25Qb3NpdGlvbiYpOworICAgIHZvaWQgaGFuZGxlRXJyb3IoR2VvbG9jYXRpb25Qb3NpdGlv
bkVycm9yJik7CiAKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKCk7CiAKQEAgLTE1MywxMyAr
MTUzLDEzIEBAIHByaXZhdGU6CiAgICAgR2VvTm90aWZpZXJTZXQgbV9vbmVTaG90czsKICAgICBX
YXRjaGVycyBtX3dhdGNoZXJzOwogICAgIEdlb05vdGlmaWVyU2V0IG1fcGVuZGluZ0ZvclBlcm1p
c3Npb25Ob3RpZmllcnM7Ci0gICAgUmVmUHRyPEdlb3Bvc2l0aW9uPiBtX2xhc3RQb3NpdGlvbjsK
KyAgICBSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247CiAKICAgICBl
bnVtIHsgVW5rbm93biwgSW5Qcm9ncmVzcywgWWVzLCBObyB9IG1fYWxsb3dHZW9sb2NhdGlvbiB7
IFVua25vd24gfTsKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9yZXNldE9uUmVzdW1lIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzQ2hhbmdlZFBvc2l0aW9u
IHsgZmFsc2UgfTsKLSAgICBSZWZQdHI8UG9zaXRpb25FcnJvcj4gbV9lcnJvcldhaXRpbmdGb3JS
ZXN1bWU7CisgICAgUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gbV9lcnJvcldhaXRp
bmdGb3JSZXN1bWU7CiAgICAgVGltZXIgbV9yZXN1bWVUaW1lcjsKICAgICBHZW9Ob3RpZmllclNl
dCBtX3JlcXVlc3RzQXdhaXRpbmdDYWNoZWRQb3NpdGlvbjsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xpZW50LmgKaW5kZXgg
ZTdlMGU3NmQ0MGYuLjI5NzAzZmJiN2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNsaWVudC5oCkBAIC0zMCw3ICszMCw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdlb2xvY2F0aW9uOwotY2xhc3MgR2VvbG9j
YXRpb25Qb3NpdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOwogY2xhc3MgUGFn
ZTsKIAogY2xhc3MgR2VvbG9jYXRpb25DbGllbnQgewpAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6
CiAgICAgLy8gV2Ugc2hvdWxkIHVwZGF0ZSBXZWJLaXQgdG8gcmVmbGVjdCB0aGlzIGlmIGFuZCB3
aGVuIHRoZSBWMiBzcGVjaWZpY2F0aW9uCiAgICAgLy8gaXMgcHVibGlzaGVkLgogICAgIHZpcnR1
YWwgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgT3B0
aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbGFzdFBvc2l0aW9uKCkgPSAwOworICAgIHZpcnR1
YWwgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlvbigpID0gMDsK
IAogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihHZW9sb2NhdGlvbiYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoR2VvbG9jYXRpb24mKSA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggY2Q4MDcwYjIwN2QuLmM2YTI4MmZjZTkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAKICNpbmNsdWRl
ICJHZW9sb2NhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uRXJyb3IuaCIKLSNp
bmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCisjaW5jbHVkZSAiR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC05OSw3ICs5OSw3IEBAIHZv
aWQgR2VvbG9jYXRpb25Db250cm9sbGVyOjpjYW5jZWxQZXJtaXNzaW9uUmVxdWVzdChHZW9sb2Nh
dGlvbiYgZ2VvbG9jYXRpb24pCiAgICAgbV9jbGllbnQuY2FuY2VsUGVybWlzc2lvblJlcXVlc3Qo
Z2VvbG9jYXRpb24pOwogfQogCi12b2lkIEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6cG9zaXRpb25D
aGFuZ2VkKGNvbnN0IE9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+JiBwb3NpdGlvbikKK3Zv
aWQgR2VvbG9jYXRpb25Db250cm9sbGVyOjpwb3NpdGlvbkNoYW5nZWQoY29uc3QgT3B0aW9uYWw8
R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+JiBwb3NpdGlvbikKIHsKICAgICBtX2xhc3RQb3NpdGlv
biA9IHBvc2l0aW9uOwogICAgIFZlY3RvcjxSZWY8R2VvbG9jYXRpb24+PiBvYnNlcnZlcnNWZWN0
b3I7CkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmVycm9y
T2NjdXJyZWQoR2VvbG9jYXRpb25FcnJvciYgZXJyb3IpCiAgICAgICAgIG9ic2VydmVyLT5zZXRF
cnJvcihlcnJvcik7CiB9CiAKLU9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+IEdlb2xvY2F0
aW9uQ29udHJvbGxlcjo6bGFzdFBvc2l0aW9uKCkKK09wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRp
b25EYXRhPiBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgaWYg
KG1fbGFzdFBvc2l0aW9uKQogICAgICAgICByZXR1cm4gbV9sYXN0UG9zaXRpb24udmFsdWUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uQ29udHJvbGxlci5oCmluZGV4IDBjNzA0OWJhMTAxLi41NDkzNGQ3OWEwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uQ29udHJvbGxlci5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgR2VvbG9jYXRpb25DbGllbnQ7CiBjbGFzcyBHZW9sb2NhdGlvbkVycm9yOwotY2xhc3Mg
R2VvbG9jYXRpb25Qb3NpdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOwogCiBj
bGFzcyBHZW9sb2NhdGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdlPiwgcHJp
dmF0ZSBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwpAQCAtNTMsMTAgKzUzLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RQZXJt
aXNzaW9uKEdlb2xvY2F0aW9uJik7CiAgICAgdm9pZCBjYW5jZWxQZXJtaXNzaW9uUmVxdWVzdChH
ZW9sb2NhdGlvbiYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3NpdGlvbkNoYW5nZWQo
Y29uc3QgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4mKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHBvc2l0aW9uQ2hhbmdlZChjb25zdCBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9u
RGF0YT4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVycm9yT2NjdXJyZWQoR2VvbG9jYXRp
b25FcnJvciYpOwogCi0gICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbGFzdFBvc2l0
aW9uKCk7CisgICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlv
bigpOwogCiAgICAgR2VvbG9jYXRpb25DbGllbnQmIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50
OyB9CiAKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgYWN0aXZpdHlTdGF0
ZURpZENoYW5nZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4gb2xkQWN0aXZpdHlTdGF0
ZSwgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU6OkZsYWc+IG5ld0FjdGl2aXR5U3RhdGUpIG92ZXJy
aWRlOwogCi0gICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247
CisgICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IG1fbGFzdFBvc2l0aW9uOwog
CiAgICAgdHlwZWRlZiBIYXNoU2V0PFJlZjxHZW9sb2NhdGlvbj4+IE9ic2VydmVyc1NldDsKICAg
ICAvLyBBbGwgb2JzZXJ2ZXJzOyBib3RoIHRob3NlIHJlcXVlc3RpbmcgaGlnaCBhY2N1cmFjeSBh
bmQgdGhvc2Ugbm90LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9Db29yZGluYXRlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwCnNpbWlsYXJpdHkgaW5kZXggOTIlCnJlbmFtZSBm
cm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuY3BwCnJl
bmFtZSB0byBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29v
cmRpbmF0ZXMuY3BwCmluZGV4IDljZWJkZmMwZjY1Li5lMmViMGRjYTAzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVz
LmNwcApAQCAtMjQsMTEgKzI0LDExIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkNvb3JkaW5hdGVzLmgiCisjaW5jbHVkZSAiR2VvbG9jYXRpb25Db29yZGluYXRlcy5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNvb3JkaW5hdGVzOjpDb29yZGluYXRlcyhHZW9s
b2NhdGlvblBvc2l0aW9uJiYgcG9zaXRpb24pCitHZW9sb2NhdGlvbkNvb3JkaW5hdGVzOjpHZW9s
b2NhdGlvbkNvb3JkaW5hdGVzKEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYgcG9zaXRpb24pCiAg
ICAgOiBtX3Bvc2l0aW9uKFdURk1vdmUocG9zaXRpb24pKQogewogICAgIEFTU0VSVChtX3Bvc2l0
aW9uLmlzVmFsaWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0Nvb3JkaW5hdGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaApzaW1pbGFyaXR5IGluZGV4IDgwJQpyZW5hbWUgZnJv
bSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmgKcmVuYW1l
IHRvIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGlu
YXRlcy5oCmluZGV4IDZkNTE4MjgyYWVjLi44NzUxY2FjNDc0MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5oCkBAIC0y
NSwyMyArMjUsMjMgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJHZW9sb2NhdGlvblBv
c2l0aW9uLmgiCisjaW5jbHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaCIKICNpbmNsdWRl
IDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDb29yZGluYXRlcyA6
IHB1YmxpYyBSZWZDb3VudGVkPENvb3JkaW5hdGVzPiB7CitjbGFzcyBHZW9sb2NhdGlvbkNvb3Jk
aW5hdGVzIDogcHVibGljIFJlZkNvdW50ZWQ8R2VvbG9jYXRpb25Db29yZGluYXRlcz4gewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8Q29vcmRpbmF0ZXM+IGNyZWF0ZShHZW9sb2NhdGlvblBvc2l0
aW9uJiYgcG9zaXRpb24pCisgICAgc3RhdGljIFJlZjxHZW9sb2NhdGlvbkNvb3JkaW5hdGVzPiBj
cmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiBwb3NpdGlvbikKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IENvb3JkaW5hdGVzKFdURk1vdmUocG9zaXRpb24pKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMoV1RGTW92
ZShwb3NpdGlvbikpKTsKICAgICB9CiAKLSAgICBSZWY8Q29vcmRpbmF0ZXM+IGlzb2xhdGVkQ29w
eSgpIGNvbnN0CisgICAgUmVmPEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXM+IGlzb2xhdGVkQ29weSgp
IGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gQ29vcmRpbmF0ZXM6OmNyZWF0ZShHZW9sb2Nh
dGlvblBvc2l0aW9uKG1fcG9zaXRpb24pKTsKKyAgICAgICAgcmV0dXJuIEdlb2xvY2F0aW9uQ29v
cmRpbmF0ZXM6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRGF0YShtX3Bvc2l0aW9uKSk7CiAg
ICAgfQogCiAgICAgZG91YmxlIGxhdGl0dWRlKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5s
YXRpdHVkZTsgfQpAQCAtNTQsOSArNTQsOSBAQCBwdWJsaWM6CiAgICAgT3B0aW9uYWw8ZG91Ymxl
PiBmbG9vckxldmVsKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5mbG9vckxldmVsOyB9CiAg
ICAgCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IENvb3JkaW5hdGVzKEdlb2xvY2F0aW9uUG9zaXRp
b24mJik7CisgICAgZXhwbGljaXQgR2VvbG9jYXRpb25Db29yZGluYXRlcyhHZW9sb2NhdGlvblBv
c2l0aW9uRGF0YSYmKTsKIAotICAgIEdlb2xvY2F0aW9uUG9zaXRpb24gbV9wb3NpdGlvbjsKKyAg
ICBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBtX3Bvc2l0aW9uOwogfTsKICAgICAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vQ29vcmRpbmF0ZXMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmlkbApzaW1pbGFyaXR5IGluZGV4IDkzJQpyZW5hbWUg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmlkbApy
ZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNv
b3JkaW5hdGVzLmlkbAppbmRleCAyZjVjZWZiMGZjMC4uZmYzOTU2NGM0MzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRl
cy5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE5IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjQsMTAgKzI0LDkgQEAKICAqLwogCiBbCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCiAg
ICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJT04sCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZQotXSBpbnRlcmZhY2UgQ29vcmRpbmF0ZXMgeworXSBpbnRlcmZhY2UgR2VvbG9jYXRpb25Db29y
ZGluYXRlcyB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbGF0
aXR1ZGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbG9uZ2l0
dWRlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlPyBhbHRpdHVk
ZTsKQEAgLTM1LDUgKzM0LDcgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVk
IGRvdWJsZT8gYWx0aXR1ZGVBY2N1cmFjeTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0
cmljdGVkIGRvdWJsZT8gaGVhZGluZzsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmlj
dGVkIGRvdWJsZT8gc3BlZWQ7CisgICAgCisgICAgLy8gTm9uIHN0YW5kYXJkLgogICAgIFtFbmFi
bGVkQnlTZXR0aW5nPUdlb2xvY2F0aW9uRmxvb3JMZXZlbF0gcmVhZG9ubHkgYXR0cmlidXRlIHVu
cmVzdHJpY3RlZCBkb3VibGU/IGZsb29yTGV2ZWw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaAppbmRleCBk
NjlkYjU0M2Y4ZS4uYjkxMDAwNTI4ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbi5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwLDEwOCArMTAsNTIg
QEAKICAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKICAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKICAqLwogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPGNtYXRoPgotI2luY2x1ZGUgPHd0
Zi9PcHRpb25hbC5oPgotI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlICJET01UaW1lU3Rh
bXAuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgiCiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1PQkpDX0NMQVNTIENM
TG9jYXRpb247Ci0jZW5kaWYKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uIHsKK2NsYXNzIEdl
b2xvY2F0aW9uUG9zaXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxHZW9sb2NhdGlvblBvc2l0aW9u
PiB7CiBwdWJsaWM6Ci0gICAgR2VvbG9jYXRpb25Qb3NpdGlvbigpID0gZGVmYXVsdDsKLQotICAg
IEdlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBk
b3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCi0gICAgICAgIDogdGltZXN0YW1wKHRp
bWVzdGFtcCkKLSAgICAgICAgLCBsYXRpdHVkZShsYXRpdHVkZSkKLSAgICAgICAgLCBsb25naXR1
ZGUobG9uZ2l0dWRlKQotICAgICAgICAsIGFjY3VyYWN5KGFjY3VyYWN5KQorICAgIHN0YXRpYyBS
ZWY8R2VvbG9jYXRpb25Qb3NpdGlvbj4gY3JlYXRlKFJlZjxHZW9sb2NhdGlvbkNvb3JkaW5hdGVz
PiYmIGNvb3JkaW5hdGVzLCBET01UaW1lU3RhbXAgdGltZXN0YW1wKQogICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgR2VvbG9jYXRpb25Qb3NpdGlvbihXVEZNb3ZlKGNvb3JkaW5h
dGVzKSwgdGltZXN0YW1wKSk7CiAgICAgfQogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBHZW9sb2NhdGlvblBvc2l0aW9uKENMTG9jYXRpb24q
KTsKLSNlbmRpZgotCi0gICAgZG91YmxlIHRpbWVzdGFtcCB7IHN0ZDo6bnVtZXJpY19saW1pdHM8
ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsKLQotICAgIGRvdWJsZSBsYXRpdHVkZSB7IHN0ZDo6bnVt
ZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsKLSAgICBkb3VibGUgbG9uZ2l0dWRl
IHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OwotICAgIGRvdWJs
ZSBhY2N1cmFjeSB7IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsK
LQotICAgIE9wdGlvbmFsPGRvdWJsZT4gYWx0aXR1ZGU7Ci0gICAgT3B0aW9uYWw8ZG91YmxlPiBh
bHRpdHVkZUFjY3VyYWN5OwotICAgIE9wdGlvbmFsPGRvdWJsZT4gaGVhZGluZzsKLSAgICBPcHRp
b25hbDxkb3VibGU+IHNwZWVkOwotICAgIE9wdGlvbmFsPGRvdWJsZT4gZmxvb3JMZXZlbDsKKyAg
ICBSZWY8R2VvbG9jYXRpb25Qb3NpdGlvbj4gaXNvbGF0ZWRDb3B5KCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiBjcmVhdGUobV9jb29yZGluYXRlcy0+aXNvbGF0ZWRDb3B5KCksIG1fdGlt
ZXN0YW1wKTsKKyAgICB9CiAKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKKyAgICBET01UaW1l
U3RhbXAgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KKyAgICBjb25z
dCBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzJiBjb29yZHMoKSBjb25zdCB7IHJldHVybiBtX2Nvb3Jk
aW5hdGVzLmdldCgpOyB9CisgICAgCitwcml2YXRlOgorICAgIEdlb2xvY2F0aW9uUG9zaXRpb24o
UmVmPEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXM+JiYgY29vcmRpbmF0ZXMsIERPTVRpbWVTdGFtcCB0
aW1lc3RhbXApCisgICAgICAgIDogbV9jb29yZGluYXRlcyhXVEZNb3ZlKGNvb3JkaW5hdGVzKSkK
KyAgICAgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCisgICAgeworICAgIH0KIAotICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIEdlb2xv
Y2F0aW9uUG9zaXRpb24mKTsKKyAgICBSZWY8R2VvbG9jYXRpb25Db29yZGluYXRlcz4gbV9jb29y
ZGluYXRlczsKKyAgICBET01UaW1lU3RhbXAgbV90aW1lc3RhbXA7CiB9OwotCi10ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPgotdm9pZCBHZW9sb2NhdGlvblBvc2l0aW9uOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNvZGVyIDw8IHRpbWVzdGFtcDsKLSAgICBlbmNvZGVy
IDw8IGxhdGl0dWRlOwotICAgIGVuY29kZXIgPDwgbG9uZ2l0dWRlOwotICAgIGVuY29kZXIgPDwg
YWNjdXJhY3k7Ci0gICAgZW5jb2RlciA8PCBhbHRpdHVkZTsKLSAgICBlbmNvZGVyIDw8IGFsdGl0
dWRlQWNjdXJhY3k7Ci0gICAgZW5jb2RlciA8PCBoZWFkaW5nOwotICAgIGVuY29kZXIgPDwgc3Bl
ZWQ7Ci0gICAgZW5jb2RlciA8PCBmbG9vckxldmVsOwotfQotCi10ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPgotYm9vbCBHZW9sb2NhdGlvblBvc2l0aW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
R2VvbG9jYXRpb25Qb3NpdGlvbiYgcG9zaXRpb24pCi17Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwb3NpdGlvbi50aW1lc3RhbXApKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwb3NpdGlvbi5sYXRpdHVkZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmxvbmdpdHVkZSkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmFjY3VyYWN5KSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24u
YWx0aXR1ZGUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwb3NpdGlvbi5hbHRpdHVkZUFjY3VyYWN5KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24uaGVhZGluZykpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLnNwZWVkKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24uZmxvb3JMZXZl
bCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi1pbmxp
bmUgYm9vbCBHZW9sb2NhdGlvblBvc2l0aW9uOjppc1ZhbGlkKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gIXN0ZDo6aXNuYW4odGltZXN0YW1wKSAmJiAhc3RkOjppc25hbihsYXRpdHVkZSkgJiYgIXN0
ZDo6aXNuYW4obG9uZ2l0dWRlKSAmJiAhc3RkOjppc25hbihhY2N1cmFjeSk7Ci19Ci0KKyAgICAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbApzaW1pbGFyaXR5IGluZGV4IDkwJQpy
ZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bvc2l0aW9u
LmlkbApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvblBvc2l0aW9uLmlkbAppbmRleCBiZjhjYjA5YjJmYi4uNjMyZjhkOWZhOGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlv
bi5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjQsMTAgKzI0LDkgQEAKICAqLwogCiBbCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCiAg
ICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJT04sCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZQotXSBpbnRlcmZhY2UgR2VvcG9zaXRpb24gewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDb29y
ZGluYXRlcyBjb29yZHM7CitdIGludGVyZmFjZSBHZW9sb2NhdGlvblBvc2l0aW9uIHsKKyAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgR2VvbG9jYXRpb25Db29yZGluYXRlcyBjb29yZHM7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVRpbWVTdGFtcCB0aW1lc3RhbXA7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRGF0
YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0
aW9uRGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kYzJiNGUz
NDVjMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCitPQkpDX0NMQVNTIENMTG9jYXRpb247
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YSB7CitwdWJsaWM6CisgICAgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoKSA9IGRlZmF1
bHQ7CisKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YShkb3VibGUgdGltZXN0YW1wLCBkb3Vi
bGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKKyAgICAgICAg
OiB0aW1lc3RhbXAodGltZXN0YW1wKQorICAgICAgICAsIGxhdGl0dWRlKGxhdGl0dWRlKQorICAg
ICAgICAsIGxvbmdpdHVkZShsb25naXR1ZGUpCisgICAgICAgICwgYWNjdXJhY3koYWNjdXJhY3kp
CisgICAgeworICAgIH0KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgV0VCQ09SRV9F
WFBPUlQgZXhwbGljaXQgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoQ0xMb2NhdGlvbiopOworI2Vu
ZGlmCisKKyAgICBkb3VibGUgdGltZXN0YW1wIHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKSB9OworCisgICAgZG91YmxlIGxhdGl0dWRlIHsgc3RkOjpudW1lcmljX2xp
bWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OworICAgIGRvdWJsZSBsb25naXR1ZGUgeyBzdGQ6
Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07CisgICAgZG91YmxlIGFjY3Vy
YWN5IHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OworCisgICAg
T3B0aW9uYWw8ZG91YmxlPiBhbHRpdHVkZTsKKyAgICBPcHRpb25hbDxkb3VibGU+IGFsdGl0dWRl
QWNjdXJhY3k7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBoZWFkaW5nOworICAgIE9wdGlvbmFsPGRv
dWJsZT4gc3BlZWQ7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBmbG9vckxldmVsOworCisgICAgYm9v
bCBpc1ZhbGlkKCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IGJvb2wgZGVjb2RlKERlY29kZXImLCBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYpOworfTsKKwor
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdGltZXN0YW1w
OworICAgIGVuY29kZXIgPDwgbGF0aXR1ZGU7CisgICAgZW5jb2RlciA8PCBsb25naXR1ZGU7Cisg
ICAgZW5jb2RlciA8PCBhY2N1cmFjeTsKKyAgICBlbmNvZGVyIDw8IGFsdGl0dWRlOworICAgIGVu
Y29kZXIgPDwgYWx0aXR1ZGVBY2N1cmFjeTsKKyAgICBlbmNvZGVyIDw8IGhlYWRpbmc7CisgICAg
ZW5jb2RlciA8PCBzcGVlZDsKKyAgICBlbmNvZGVyIDw8IGZsb29yTGV2ZWw7Cit9CisKK3RlbXBs
YXRlPGNsYXNzIERlY29kZXI+Citib29sIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmIHBvc2l0aW9uKQorewor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24udGltZXN0YW1wKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24ubGF0aXR1ZGUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5s
b25naXR1ZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwb3NpdGlvbi5hY2N1cmFjeSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBvc2l0aW9uLmFsdGl0dWRlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24uYWx0aXR1ZGVBY2N1cmFjeSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmhlYWRp
bmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3Np
dGlvbi5zcGVlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBvc2l0aW9uLmZsb29yTGV2ZWwpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworaW5saW5lIGJvb2wgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6Omlz
VmFsaWQoKSBjb25zdAoreworICAgIHJldHVybiAhc3RkOjppc25hbih0aW1lc3RhbXApICYmICFz
dGQ6OmlzbmFuKGxhdGl0dWRlKSAmJiAhc3RkOjppc25hbihsb25naXR1ZGUpICYmICFzdGQ6Omlz
bmFuKGFjY3VyYWN5KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5o
CnNpbWlsYXJpdHkgaW5kZXggODclCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5oCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oCmluZGV4IDI2NDIyZWY5
YjZkLi4wYTQ0ZTFlMjdiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Qb3NpdGlvbkVycm9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaApAQCAtMzAsNyArMzAsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCi1jbGFzcyBQb3NpdGlvbkVycm9yIDogcHVibGljIFJl
ZkNvdW50ZWQ8UG9zaXRpb25FcnJvcj4geworY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9y
IDogcHVibGljIFJlZkNvdW50ZWQ8R2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yPiB7CiBwdWJsaWM6
CiAgICAgZW51bSBFcnJvckNvZGUgewogICAgICAgICBQRVJNSVNTSU9OX0RFTklFRCA9IDEsCkBA
IC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICAgICAgVElNRU9VVCA9IDMKICAgICB9OwogICAg
IAotICAgIHN0YXRpYyBSZWY8UG9zaXRpb25FcnJvcj4gY3JlYXRlKEVycm9yQ29kZSBjb2RlLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUG9zaXRpb25FcnJv
cihjb2RlLCBtZXNzYWdlKSk7IH0KKyAgICBzdGF0aWMgUmVmPEdlb2xvY2F0aW9uUG9zaXRpb25F
cnJvcj4gY3JlYXRlKEVycm9yQ29kZSBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKGNvZGUsIG1lc3NhZ2Up
KTsgfQogCiAgICAgRXJyb3JDb2RlIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KICAg
ICBjb25zdCBTdHJpbmcmIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KQEAg
LTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNGYXRhbCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNGYXRhbDsgfQogICAgIAogcHJpdmF0ZToKLSAgICBQb3NpdGlvbkVycm9yKEVycm9yQ29k
ZSBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIAorICAgIEdlb2xvY2F0aW9uUG9zaXRpb25F
cnJvcihFcnJvckNvZGUgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgICAgICA6IG1f
Y29kZShjb2RlKQogICAgICAgICAsIG1fbWVzc2FnZShtZXNzYWdlKQogICAgICAgICAsIG1faXNG
YXRhbChmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vUG9zaXRpb25FcnJvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwKc2ltaWxhcml0eSBpbmRleCA5MyUKcmVuYW1l
IGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlk
bApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3IuaWRsCmluZGV4IDVjMWYzYTI3MmE2Li4zNGE1YzA3NGU5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9z
aXRpb25FcnJvci5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0y
MDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjQsMTUgKzI0LDEzIEBACiAgKi8KIAogWwotICAgIE5vSW50ZXJmYWNl
T2JqZWN0LAogICAgIENvbmRpdGlvbmFsPUdFT0xPQ0FUSU9OLAogICAgIEltcGxlbWVudGF0aW9u
TGFja3NWVGFibGUKLV0gaW50ZXJmYWNlIFBvc2l0aW9uRXJyb3IgewotICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBjb2RlOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgbWVzc2FnZTsKLQorXSBpbnRlcmZhY2UgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yIHsK
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBQRVJNSVNTSU9OX0RFTklFRCA9IDE7CiAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgUE9TSVRJT05fVU5BVkFJTEFCTEUgPSAyOwogICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFRJTUVPVVQgPSAzOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBzaG9ydCBjb2RlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVzc2FnZTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2Vv
cG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRp
b24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWEzMzBkZTU4ZTIuLjAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24u
aAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDb29yZGlu
YXRlcy5oIgotI2luY2x1ZGUgIkRPTVRpbWVTdGFtcC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotY2xhc3MgR2VvcG9zaXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxHZW9wb3NpdGlv
bj4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8R2VvcG9zaXRpb24+IGNyZWF0ZShSZWY8Q29v
cmRpbmF0ZXM+JiYgY29vcmRpbmF0ZXMsIERPTVRpbWVTdGFtcCB0aW1lc3RhbXApCi0gICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHZW9wb3NpdGlvbihXVEZNb3ZlKGNvb3JkaW5h
dGVzKSwgdGltZXN0YW1wKSk7Ci0gICAgfQotCi0gICAgUmVmPEdlb3Bvc2l0aW9uPiBpc29sYXRl
ZENvcHkoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZShtX2Nvb3JkaW5hdGVz
LT5pc29sYXRlZENvcHkoKSwgbV90aW1lc3RhbXApOwotICAgIH0KLQotICAgIERPTVRpbWVTdGFt
cCB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQotICAgIGNvbnN0IENv
b3JkaW5hdGVzJiBjb29yZHMoKSBjb25zdCB7IHJldHVybiBtX2Nvb3JkaW5hdGVzLmdldCgpOyB9
Ci0gICAgCi1wcml2YXRlOgotICAgIEdlb3Bvc2l0aW9uKFJlZjxDb29yZGluYXRlcz4mJiBjb29y
ZGluYXRlcywgRE9NVGltZVN0YW1wIHRpbWVzdGFtcCkKLSAgICAgICAgOiBtX2Nvb3JkaW5hdGVz
KFdURk1vdmUoY29vcmRpbmF0ZXMpKQotICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkK
LSAgICB7Ci0gICAgfQotCi0gICAgUmVmPENvb3JkaW5hdGVzPiBtX2Nvb3JkaW5hdGVzOwotICAg
IERPTVRpbWVTdGFtcCBtX3RpbWVzdGFtcDsKLX07Ci0gICAgCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0
aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRp
b25DYWxsYmFjay5oCmluZGV4IDRiNTczODI0MDg5Li5hMjc5NTM5OTFiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmgK
QEAgLTMxLDEzICszMSwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEdlb3Bv
c2l0aW9uOworY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKIAogY2xhc3MgUG9zaXRpb25DYWxs
YmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFBvc2l0aW9uQ2FsbGJhY2s+LCBwdWJsaWMgQWN0aXZl
RE9NQ2FsbGJhY2sgewogcHVibGljOgogICAgIHVzaW5nIEFjdGl2ZURPTUNhbGxiYWNrOjpBY3Rp
dmVET01DYWxsYmFjazsKIAotICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxl
RXZlbnQoR2VvcG9zaXRpb24qKSA9IDA7CisgICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lk
PiBoYW5kbGVFdmVudChHZW9sb2NhdGlvblBvc2l0aW9uKikgPSAwOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwKaW5kZXggYWQ2NjFmNWVmYzIuLmQ1Y2U4NTYzNzA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9u
Q2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9z
aXRpb25DYWxsYmFjay5pZGwKQEAgLTI0LDQgKzI0LDQgQEAKIAogWwogICAgIENvbmRpdGlvbmFs
PUdFT0xPQ0FUSU9OLAotXSBjYWxsYmFjayBQb3NpdGlvbkNhbGxiYWNrID0gdm9pZCAoR2VvcG9z
aXRpb24/IHBvc2l0aW9uKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4K
K10gY2FsbGJhY2sgUG9zaXRpb25DYWxsYmFjayA9IHZvaWQgKEdlb2xvY2F0aW9uUG9zaXRpb24/
IHBvc2l0aW9uKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNh
bGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJy
b3JDYWxsYmFjay5oCmluZGV4IDQ4MTZiMWRiMWQzLi5hNzVlMDc4OGY1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2su
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JD
YWxsYmFjay5oCkBAIC0zMSwxMyArMzEsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBQb3NpdGlvbkVycm9yOworY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOwogCiBj
bGFzcyBQb3NpdGlvbkVycm9yQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxQb3NpdGlvbkVy
cm9yQ2FsbGJhY2s+LCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2sgewogcHVibGljOgogICAgIHVz
aW5nIEFjdGl2ZURPTUNhbGxiYWNrOjpBY3RpdmVET01DYWxsYmFjazsKIAotICAgIHZpcnR1YWwg
Q2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQoUG9zaXRpb25FcnJvciYpID0gMDsKKyAg
ICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KEdlb2xvY2F0aW9uUG9z
aXRpb25FcnJvciYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxi
YWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJv
ckNhbGxiYWNrLmlkbAppbmRleCA1N2I0OTNjY2JmNS4uZmEwOTgwZTM2MDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNr
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJy
b3JDYWxsYmFjay5pZGwKQEAgLTI0LDQgKzI0LDQgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPUdF
T0xPQ0FUSU9OLAotXSBjYWxsYmFjayBQb3NpdGlvbkVycm9yQ2FsbGJhY2sgPSB2b2lkIChQb3Np
dGlvbkVycm9yIGVycm9yKTsKK10gY2FsbGJhY2sgUG9zaXRpb25FcnJvckNhbGxiYWNrID0gdm9p
ZCAoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yIGVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0
aW9uRGF0YUlPUy5tbQpzaW1pbGFyaXR5IGluZGV4IDk2JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tCnJl
bmFtZSB0byBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL2lvcy9HZW9sb2NhdGlv
blBvc2l0aW9uRGF0YUlPUy5tbQppbmRleCA1MTM2YTUxZTJiNi4uOThkOWEyNDIxZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vaW9zL0dlb2xvY2F0aW9u
UG9zaXRpb25JT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9p
b3MvR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW0KQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1HZW9sb2NhdGlvblBvc2l0aW9uOjpHZW9sb2NhdGlvblBvc2l0
aW9uKENMTG9jYXRpb24qIGxvY2F0aW9uKQorR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6Okdlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhKENMTG9jYXRpb24qIGxvY2F0aW9uKQogICAgIDogdGltZXN0YW1w
KGxvY2F0aW9uLnRpbWVzdGFtcC50aW1lSW50ZXJ2YWxTaW5jZTE5NzApCiAgICAgLCBsYXRpdHVk
ZShsb2NhdGlvbi5jb29yZGluYXRlLmxhdGl0dWRlKQogICAgICwgbG9uZ2l0dWRlKGxvY2F0aW9u
LmNvb3JkaW5hdGUubG9uZ2l0dWRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAwYTM4ZGQ0NmM3ZC4uZmZk
NWViMDcyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC02NywxMCArNjcsMTAgQEAgTW9kdWxlcy9mZXRj
aC9GZXRjaFJlcXVlc3QuY3BwCiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCiBNb2R1
bGVzL2ZldGNoL1dvcmtlckdsb2JhbFNjb3BlRmV0Y2guY3BwCiAKLU1vZHVsZXMvZ2VvbG9jYXRp
b24vQ29vcmRpbmF0ZXMuY3BwCiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcAog
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAorTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bkNvb3JkaW5hdGVzLmNwcAogTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlv
bi5jcHAKIAogTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcApA
QCAtMjY3Miw3ICsyNjcyLDYgQEAgSlNDb21wb3NpdGVPcGVyYXRpb24uY3BwCiBKU0NvbXBvc2l0
ZU9wZXJhdGlvbk9yQXV0by5jcHAKIEpTQ29tcHV0ZWRFZmZlY3RUaW1pbmcuY3BwCiBKU0NvbnZv
bHZlck5vZGUuY3BwCi1KU0Nvb3JkaW5hdGVzLmNwcAogSlNDb3VudFF1ZXVpbmdTdHJhdGVneS5j
cHAKIEpTQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5jcHAKIEpTQ3JlZGVudGlhbFJlcXVlc3RP
cHRpb25zLmNwcApAQCAtMjgzMSw3ICsyODMwLDkgQEAgSlNHUFVWZXJ0ZXhCdWZmZXJEZXNjcmlw
dG9yLmNwcAogSlNHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuY3BwCiBKU0dhaW5Ob2RlLmNwcAog
SlNHZW9sb2NhdGlvbi5jcHAKLUpTR2VvcG9zaXRpb24uY3BwCitKU0dlb2xvY2F0aW9uQ29vcmRp
bmF0ZXMuY3BwCitKU0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwCitKU0dlb2xvY2F0aW9uUG9zaXRp
b25FcnJvci5jcHAKIEpTR2xvYmFsQ3J5cHRvLmNwcAogSlNHbG9iYWxFdmVudEhhbmRsZXJzLmNw
cAogSlNHbG9iYWxQZXJmb3JtYW5jZS5jcHAKQEAgLTMwNzIsNyArMzA3Myw2IEBAIEpTUGxheWJh
Y2tEaXJlY3Rpb24uY3BwCiBKU1BvaW50ZXJFdmVudC5jcHAKIEpTUG9wU3RhdGVFdmVudC5jcHAK
IEpTUG9zaXRpb25DYWxsYmFjay5jcHAKLUpTUG9zaXRpb25FcnJvci5jcHAKIEpTUG9zaXRpb25F
cnJvckNhbGxiYWNrLmNwcAogSlNQb3NpdGlvbk9wdGlvbnMuY3BwCiBKU1Byb2Nlc3NpbmdJbnN0
cnVjdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAzODUyZDNkMzkzNy4uYmU0ODMyMzk2NzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIzOTIsNyAr
MjM5Miw3IEBACiAJCTgzNzJEQjMxMUE2NzgwQTgwMEM2OTdDNSAvKiBEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzNzJEQjMwMUE2NzgwQTgwMEM2OTdDNSAvKiBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5
cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
Mzc2NUY5NTFEQUM1MjJGMDBDMDY1MzcgLyogTW91c2VFdmVudEluaXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNzY1Rjk0MURBQzUyMTgwMEMwNjUz
NyAvKiBNb3VzZUV2ZW50SW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTgzNzkzNjNGMUZCQkIwQjQwMEM4MDIzQyAvKiBTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM3OTM2M0UxRkJCQjBBNTAwQzgwMjNDIC8qIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJODM3OTY0
Q0YxRjhEQjY5RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzc5NjRDRTFGOERCNjlBMDAy
MThFQTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbSAqLzsgfTsKKwkJODM3OTY0Q0YxRjhE
QjY5RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhSU9TLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3OTY0Q0UxRjhEQjY5QTAwMjE4
RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhSU9TLm1tICovOyB9OwogCQk4MzdBODAxMzFF
MUUxMjczMDAwMjZCOUYgLyogTG9jYWxpemFibGUuc3RyaW5nc2RpY3QgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0E4MDExMUUxRTEyNzMwMDAyNkI5
RiAvKiBMb2NhbGl6YWJsZS5zdHJpbmdzZGljdCAqLzsgfTsKIAkJODM3RDQ2MjcxRkEyQThDRTAw
NTRFMUZBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzdENDYyNTFGQTJBOEM1MDA1NEUxRkEg
LyogU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzdGQjM0NTFGOUVBMDZEMDBEMEZDMzEgLyog
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM3RkIzNDAxRjlFQTA2NjAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNz
YWdlRXZlbnQuaCAqLzsgfTsKQEAgLTI3MjgsMTUgKzI3MjgsMTUgQEAKIAkJOTczODg5QTExMTZF
QTlEQzAwQURGMzEzIC8qIERvY3VtZW50V3JpdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzM4ODk5RjExNkVBOURDMDBBREYzMTMgLyogRG9jdW1l
bnRXcml0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5NzNFMzI1NzEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3VyY2VMb2FkTm90aWZpZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3M0UzMjU1MTA4
ODNCN0MwMDVCQzQ5MyAvKiBSZXNvdXJjZUxvYWROb3RpZmllci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3M0Y0MThBMTY5Qjk1RkYwMDA2QkY2
MCAvKiBIVE1MUGFyc2VyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTczRjQxODgxNjlCOTVFRjAwMDZCRjYwIC8qIEhUTUxQYXJzZXJPcHRp
b25zLmggKi87IH07Ci0JCTk3NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBDb29yZGluYXRlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMTEx
NEY0RERFNjAwM0U3QTcwIC8qIENvb3JkaW5hdGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTc0NkFGMjExNEY0RERFNjAwM0U3QTcxIC8qIEdl
b2xvY2F0aW9uQ29vcmRpbmF0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk3NDZBRjExMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvb3Jk
aW5hdGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTc0NkFGMjQxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxNDE0RjREREU2MDAzRTdB
NzAgLyogR2VvbG9jYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5NzQ2QUYyNTE0RjREREU2MDAzRTdBNzEgLyogR2VvbG9jYXRpb25DbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZB
RjE1MTRGNERERTYwMDNFN0E3MSAvKiBHZW9sb2NhdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NDZBRjI3MTRGNERERTYwMDNF
N0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjE3MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2Nh
dGlvbkNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5NzQ2QUYyODE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25FcnJvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMTgx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5NzQ2QUYyOTE0RjREREU2MDAzRTdBNzAg
LyogR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTc0NkFGMTkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9z
aXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk5NzQ2QUYyQTE0RjREREU2MDAzRTdBNzAgLyogR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjFBMTRGNERERTYwMDNFN0E3
MCAvKiBHZW9wb3NpdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTk3NDZBRjI5MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTc0NkFGMTkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTc0NkFGMkEx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjFBMTRGNERERTYwMDNFN0E3MCAv
KiBHZW9sb2NhdGlvblBvc2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFGMkMxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uQ2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3
NDZBRjFDMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkNhbGxiYWNrLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTc0NkFGMkUxNEY0RERFNjAw
M0U3QTcwIC8qIFBvc2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3NDZBRjFFMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9y
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTc0
NkFGMkUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMUUxNEY0RERF
NjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NDZBRjMwMTRGNERERTYwMDNFN0E3
MCAvKiBQb3NpdGlvbkVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjIwMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVy
cm9yQ2FsbGJhY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5NzQ2QUYzMjE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25PcHRpb25zLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYyMjE0RjRE
REU2MDAzRTdBNzAgLyogUG9zaXRpb25PcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0QTg2MjMxNEI3QURCQjAwM0ZEQzc2IC8qIEZy
YW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTc0QTg2MjExNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rp
b25PYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC0xMDA2Myw3ICsxMDA2Myw3IEBACiAJCTgzNzY1Rjk0MURBQzUyMTgwMEMwNjUzNyAv
KiBNb3VzZUV2ZW50SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb3Vz
ZUV2ZW50SW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzc5MzYzQzFGQkJC
MEE0MDBDODAyM0MgLyogU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzc5MzYzRTFGQkJCMEE1MDBDODAyM0MgLyogU2Vy
dmljZVdvcmtlckNsaWVudERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2VydmljZVdvcmtlckNsaWVudERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
ODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBHZW9sb2NhdGlvblBvc2l0aW9u
SU9TLm1tOyBwYXRoID0gTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2VvbG9jYXRpb25Qb3NpdGlv
bklPUy5tbTsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQk4Mzc5NjRDRTFGOERCNjlB
MDAyMThFQTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5tbTsg
cGF0aCA9IE1vZHVsZXMvZ2VvbG9jYXRpb24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhSU9T
Lm1tOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTgzN0E4MDEyMUUxRTEyNzMwMDAy
NkI5RiAvKiBlbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQucGxpc3Quc3RyaW5nc2RpY3Q7IG5hbWUgPSBlbjsgcGF0aCA9IGVuLmxwcm9qL0xv
Y2FsaXphYmxlLnN0cmluZ3NkaWN0OyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTgz
N0I3RDFGMURDM0Y1NEMwMEQwNTFGQyAvKiBWYWxpZGF0aW9uQnViYmxlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmFsaWRhdGlvbkJ1YmJsZUlPUy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM3RDQ2MjUxRkEyQThDNTAwNTRFMUZBIC8q
IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMDc0Myw5ICsxMDc0Myw5IEBACiAJCTk3M0UzMjU1MTA4ODNCN0Mw
MDVCQzQ5MyAvKiBSZXNvdXJjZUxvYWROb3RpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZXNvdXJjZUxvYWROb3RpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5NzNGNDE4NzE2OUI5NUVGMDAwNkJGNjAgLyogSFRNTFBhcnNlck9wdGlvbnMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFBhcnNlck9wdGlvbnMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzNGNDE4ODE2OUI5NUVGMDAwNkJG
NjAgLyogSFRNTFBhcnNlck9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSFRNTFBhcnNlck9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTc0
NkFGMTExNEY0RERFNjAwM0U3QTcwIC8qIENvb3JkaW5hdGVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENvb3JkaW5hdGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTk3NDZBRjExMTRGNERERTYwMDNFN0E3MiAvKiBDb29yZGluYXRlcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb29yZGluYXRlcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTk3NDZBRjEyMTRGNERERTYwMDNFN0E3MCAvKiBDb29yZGluYXRl
cy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ29vcmRpbmF0ZXMuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRp
b25Db29yZGluYXRlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2Nh
dGlvbkNvb3JkaW5hdGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3NDZBRjEx
MTRGNERERTYwMDNFN0E3MiAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzQ2QUYxMjE0RjREREU2MDAzRTdBNzAgLyog
R2VvbG9jYXRpb25Db29yZGluYXRlcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2VvbG9j
YXRpb25Db29yZGluYXRlcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NDZB
RjEzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBHZW9sb2NhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk3NDZBRjE0MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5NzQ2QUYxNTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24u
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEdlb2xvY2F0aW9uLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNzUzLDEzICsxMDc1MywxMyBAQAogCQk5NzQ2QUYxNjE0RjRE
REU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NDZBRjE3MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2Nh
dGlvbkNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9j
YXRpb25Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NDZBRjE4
MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTc0NkFGMTkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAg
LyogR2VvcG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvcG9z
aXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTc0NkFGMUIxNEY0RERFNjAw
M0U3QTcwIC8qIEdlb3Bvc2l0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHZW9wb3Np
dGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3NDZBRjE5MTRGNERERTYw
MDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3Np
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvblBvc2l0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3NDZBRjFCMTRGNERERTYwMDNF
N0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBH
ZW9sb2NhdGlvblBvc2l0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0
NkFGMUMxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUG9zaXRpb25DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5NzQ2QUYxRDE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25DYWxsYmFj
ay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUG9zaXRpb25DYWxsYmFjay5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk3NDZBRjFFMTRGNERERTYwMDNFN0E3MCAvKiBQb3Np
dGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvc2l0aW9uRXJy
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTc0NkFGMUYxNEY0RERFNjAwM0U3
QTcwIC8qIFBvc2l0aW9uRXJyb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBvc2l0aW9u
RXJyb3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzQ2QUYxRTE0RjREREU2
MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5NzQ2QUYxRjE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHZW9sb2NhdGlvblBvc2l0
aW9uRXJyb3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYyMDE0RjRE
REU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvckNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBvc2l0aW9uRXJyb3JDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5NzQ2QUYyMTE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvckNh
bGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQb3NpdGlvbkVycm9yQ2FsbGJhY2su
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYyMjE0RjREREU2MDAzRTdB
NzAgLyogUG9zaXRpb25PcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBvc2l0aW9uT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA5MjUs
NyArMjA5MjUsNyBAQAogCQk4Mzc5NjRDQzFGOERCNjdEMDAyMThFQTAgLyogaW9zICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk4Mzc5NjRDRTFGOERCNjlB
MDAyMThFQTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbSAqLywKKwkJCQk4Mzc5NjRDRTFG
OERCNjlBMDAyMThFQTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW0gKi8sCiAJCQkp
OwogCQkJbmFtZSA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMTg0Miw5
ICsyMTg0Miw5IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTgz
Nzk2NENDMUY4REI2N0QwMDIxOEVBMCAvKiBpb3MgKi8sCi0JCQkJOTc0NkFGMTExNEY0RERFNjAw
M0U3QTcyIC8qIENvb3JkaW5hdGVzLmNwcCAqLywKLQkJCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdB
NzAgLyogQ29vcmRpbmF0ZXMuaCAqLywKLQkJCQk5NzQ2QUYxMjE0RjREREU2MDAzRTdBNzAgLyog
Q29vcmRpbmF0ZXMuaWRsICovLAorCQkJCTk3NDZBRjExMTRGNERERTYwMDNFN0E3MiAvKiBHZW9s
b2NhdGlvbkNvb3JkaW5hdGVzLmNwcCAqLywKKwkJCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzAg
LyogR2VvbG9jYXRpb25Db29yZGluYXRlcy5oICovLAorCQkJCTk3NDZBRjEyMTRGNERERTYwMDNF
N0E3MCAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmlkbCAqLywKIAkJCQk5NzQ2QUYxMzE0RjRE
REU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uY3BwICovLAogCQkJCTk3NDZBRjE0MTRGNERERTYw
MDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5oICovLAogCQkJCTk3NDZBRjE1MTRGNERERTYwMDNFN0E3
MCAvKiBHZW9sb2NhdGlvbi5pZGwgKi8sCkBAIC0yMTg1MiwxOCArMjE4NTIsMTggQEAKIAkJCQk5
NzQ2QUYxNjE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCAqLywK
IAkJCQk5NzQ2QUYxNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmgg
Ki8sCiAJCQkJOTc0NkFGMTgxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uRXJyb3IuaCAq
LywKLQkJCQk5NzQ2QUYxOTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbi5o
ICovLAogCQkJCTQ2QzgzRUZCMUE5QkJFMjkwMEE3OUE0MSAvKiBHZW9Ob3RpZmllci5jcHAgKi8s
CiAJCQkJNDZDODNFRkMxQTlCQkUyOTAwQTc5QTQxIC8qIEdlb05vdGlmaWVyLmggKi8sCi0JCQkJ
OTc0NkFGMUExNEY0RERFNjAwM0U3QTcwIC8qIEdlb3Bvc2l0aW9uLmggKi8sCi0JCQkJOTc0NkFG
MUIxNEY0RERFNjAwM0U3QTcwIC8qIEdlb3Bvc2l0aW9uLmlkbCAqLywKKwkJCQk5NzQ2QUYxQTE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbi5oICovLAorCQkJCTk3NDZBRjFC
MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmlkbCAqLywKKwkJCQk5NzQ2
QUYxOTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaCAqLywKIAkJ
CQk5NzExNDYwMDE0RUYwMDlBMDA2NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwICov
LAogCQkJCTk3MTE0NjAxMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5o
ICovLAogCQkJCTk3MTE0NjAyMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlv
bi5pZGwgKi8sCiAJCQkJOTc0NkFGMUMxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uQ2FsbGJh
Y2suaCAqLywKIAkJCQk5NzQ2QUYxRDE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25DYWxsYmFj
ay5pZGwgKi8sCi0JCQkJOTc0NkFGMUUxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uRXJyb3Iu
aCAqLywKLQkJCQk5NzQ2QUYxRjE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5pZGwg
Ki8sCisJCQkJOTc0NkFGMUUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25F
cnJvci5oICovLAorCQkJCTk3NDZBRjFGMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBv
c2l0aW9uRXJyb3IuaWRsICovLAogCQkJCTk3NDZBRjIwMTRGNERERTYwMDNFN0E3MCAvKiBQb3Np
dGlvbkVycm9yQ2FsbGJhY2suaCAqLywKIAkJCQk5NzQ2QUYyMTE0RjREREU2MDAzRTdBNzAgLyog
UG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbCAqLywKIAkJCQk5NzQ2QUYyMjE0RjREREU2MDAzRTdB
NzAgLyogUG9zaXRpb25PcHRpb25zLmggKi8sCkBAIC0yODY2NSw3ICsyODY2NSw3IEBACiAJCQkJ
N0E1Njk5NzAyMDg2QzYxOTAwMEUwNDMzIC8qIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzM0QwMjEyRDEzMURCMzdCMDA0MDkxQTggLyogQ29va2ll
U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyMEJCQUYxRjFDRUNFNzAwRUZFQkYxIC8q
IENvb2tpZVN0b3JhZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTc0NkFGMjExNEY0
RERFNjAwM0U3QTcxIC8qIENvb3JkaW5hdGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NzQ2QUYy
MTE0RjREREU2MDAzRTdBNzEgLyogR2VvbG9jYXRpb25Db29yZGluYXRlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJM0Y4MDIwMzUxRTlFNDdCRjAwREVDNjFEIC8qIENvcmVBdWRpb0NhcHR1cmVEZXZp
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTNGODAyMDM3MUU5RTQ3QzUwMERFQzYxRCAvKiBDb3Jl
QXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdBRkY0MjIx
RUZCMTQ0OTAwQjU0NUIzIC8qIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjkyOTMsMTAgKzI5MjkzLDEwIEBACiAJCQkJOTc0NkFGMjUxNEY0RERFNjAwM0U3
QTcxIC8qIEdlb2xvY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYyNzE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5NzQ2QUYyODE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25FcnJvci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJOTc0NkFGMjkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9z
aXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTk3NDZBRjI5MTRGNERERTYwMDNFN0E3MCAvKiBH
ZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCNjI1MkYxOERF
MUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
NkM4M0VGRTFBOUJCRTI5MDBBNzlBNDEgLyogR2VvTm90aWZpZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTk3NDZBRjJBMTRGNERERTYwMDNFN0E3MCAvKiBHZW9wb3NpdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTc0NkFGMkExNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ2Qjk1MTk4MjA3RDYzNDcwMEE3RDJERCAvKiBHbG9iYWxG
cmFtZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2Qjk1MTk3MjA3RDYzNDAwMEE3
RDJERCAvKiBHbG9iYWxXaW5kb3dJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODZC
QkQwRjEzNjAzOUMyMDA4QjE1RDggLyogR2x5cGguaCBpbiBIZWFkZXJzICovLApAQCAtMzEwNDgs
NyArMzEwNDgsNyBAQAogCQkJCTM3RjU2N0NFMTY1MzU4RjQwMERERTkyQiAvKiBQb3B1cE9wZW5p
bmdPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5REUwODI0NUU1OTAwMUU5QUJD
IC8qIFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYyQzE0RjREREU2MDAzRTdB
NzAgLyogUG9zaXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTc0NkFGMkUxNEY0
RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTk3NDZB
RjJFMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3NDZBRjMwMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9yQ2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTM3OTE5QzI0MEI3RDE4ODYwMEE1Njk5OCAvKiBQ
b3NpdGlvbkl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYzMjE0RjREREU2MDAz
RTdBNzAgLyogUG9zaXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLywKQEAgLTMyODA0LDcgKzMy
ODA0LDcgQEAKIAkJCQk1MTZDNjIyMDE5NTBENDg3MDAzMzdFNzUgLyogR2FtZXBhZEV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlEOUU5MTk1QjkzMUYwMDFCMkI1QyAvKiBHYW1lcGFk
TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTVCRTE5MTFENTRGNUZCMDBERDdDNjgg
LyogR2FtZXBhZFByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTgzNzk2NENGMUY4REI2
OUQwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJODM3OTY0Q0YxRjhEQjY5RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhSU9T
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNkUyMUM2QzAxMTI2MzM4NTAwQTdCRTAyIC8qIEdyYXBo
aWNzQ29udGV4dDNELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFNzJGNTRFMjI5RENEMTAwMEIz
RTE1MSAvKiBHcmFwaGljc0NvbnRleHQzREFOR0xFLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdD
M0U1MTBCMThERjhGMzUwMEMxMTJGNyAvKiBIVE1MQ29udmVydGVyLm1tIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xp
ZW50TW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xp
ZW50TW9jay5jcHAKaW5kZXggYjgwY2MxZTBmY2EuLmU4ZWMxYzg0ZDRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3Bw
CkBAIC02MSw3ICs2MSw3IEBAIHZvaWQgR2VvbG9jYXRpb25DbGllbnRNb2NrOjpzZXRDb250cm9s
bGVyKEdlb2xvY2F0aW9uQ29udHJvbGxlciAqY29udHJvbGxlcikKICAgICBtX2NvbnRyb2xsZXIg
PSBjb250cm9sbGVyOwogfQogCi12b2lkIEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6c2V0UG9zaXRp
b24oR2VvbG9jYXRpb25Qb3NpdGlvbiYmIHBvc2l0aW9uKQordm9pZCBHZW9sb2NhdGlvbkNsaWVu
dE1vY2s6OnNldFBvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYgcG9zaXRpb24pCiB7
CiAgICAgbV9sYXN0UG9zaXRpb24gPSBXVEZNb3ZlKHBvc2l0aW9uKTsKICAgICBjbGVhckVycm9y
KCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnNldEVu
YWJsZUhpZ2hBY2N1cmFjeShib29sKQogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDk0MzgKIH0KIAotT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlv
bj4gR2VvbG9jYXRpb25DbGllbnRNb2NrOjpsYXN0UG9zaXRpb24oKQorT3B0aW9uYWw8R2VvbG9j
YXRpb25Qb3NpdGlvbkRhdGE+IEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6bGFzdFBvc2l0aW9uKCkK
IHsKICAgICByZXR1cm4gbV9sYXN0UG9zaXRpb247CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaAppbmRleCAyN2NjZDk0MzE2
NS4uZTIyYWZjNTA4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
R2VvbG9jYXRpb25DbGllbnRNb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaApAQCAtMzIsNyArMzIsNyBAQAogI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVudC5oIgotI2luY2x1ZGUgIkdlb2xvY2F0aW9u
UG9zaXRpb24uaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0KCk7CiAgICAg
dm9pZCBzZXRDb250cm9sbGVyKEdlb2xvY2F0aW9uQ29udHJvbGxlciopOwogCi0gICAgdm9pZCBz
ZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uJiYpOworICAgIHZvaWQgc2V0UG9zaXRpb24o
R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJik7CiAgICAgdm9pZCBzZXRQb3NpdGlvblVuYXZhaWxh
YmxlRXJyb3IoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgc2V0UGVybWlz
c2lvbihib29sIGFsbG93ZWQpOwogICAgIGludCBudW1iZXJPZlBlbmRpbmdQZXJtaXNzaW9uUmVx
dWVzdHMoKSBjb25zdDsKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnRV
cGRhdGluZygpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcFVwZGF0aW5nKCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkgb3ZlcnJpZGU7Ci0gICAgT3B0aW9u
YWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbGFzdFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgT3B0
aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlvbigpIG92ZXJyaWRlOwog
ICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oR2VvbG9jYXRpb24mKSBvdmVycmlkZTsKICAgICB2
b2lkIGNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KEdlb2xvY2F0aW9uJikgb3ZlcnJpZGU7CiAKQEAg
LTc2LDcgKzc2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsZWFyRXJyb3IoKTsKIAogICAgIEdl
b2xvY2F0aW9uQ29udHJvbGxlciogbV9jb250cm9sbGVyOwotICAgIE9wdGlvbmFsPEdlb2xvY2F0
aW9uUG9zaXRpb24+IG1fbGFzdFBvc2l0aW9uOworICAgIE9wdGlvbmFsPEdlb2xvY2F0aW9uUG9z
aXRpb25EYXRhPiBtX2xhc3RQb3NpdGlvbjsKICAgICBib29sIG1faGFzRXJyb3I7CiAgICAgU3Ry
aW5nIG1fZXJyb3JNZXNzYWdlOwogICAgIFRpbWVyIG1fY29udHJvbGxlclRpbWVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAppbmRleCAzZjE1
NThiNzUyYi4uZTk5ZGNjNWMwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
Ykdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdl
b2xvY2F0aW9uUG9zaXRpb24uY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFdlYkdlb2xvY2F0aW9uUG9zaXRp
b24+IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uJiYg
Z2VvbG9jYXRpb25Qb3NpdGlvbikKK1JlZjxXZWJHZW9sb2NhdGlvblBvc2l0aW9uPiBXZWJHZW9s
b2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiBnZW9sb2Nh
dGlvblBvc2l0aW9uKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdlb2xvY2F0aW9u
UG9zaXRpb24oV1RGTW92ZShnZW9sb2NhdGlvblBvc2l0aW9uKSkpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCmluZGV4IGMxZmNjYTdjYmI1Li5h
OTY4Zjg0ZjlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9z
aXRpb24uaApAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBXZWJHZW9sb2NhdGlvblBvc2l0aW9u
X2gKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRp
b25Qb3NpdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtMzksNyAr
MzksNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViR2VvbG9jYXRpb25Qb3NpdGlv
biA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6Okdlb2xvY2F0aW9u
UG9zaXRpb24+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkdlb2xvY2F0aW9uUG9zaXRp
b24+IGNyZWF0ZShXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uJiYpOworICAgIHN0YXRpYyBS
ZWY8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbj4gY3JlYXRlKFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9z
aXRpb25EYXRhJiYpOwogCiAgICAgdmlydHVhbCB+V2ViR2VvbG9jYXRpb25Qb3NpdGlvbigpOwog
CkBAIC01MiwxNSArNTIsMTUgQEAgcHVibGljOgogICAgIE9wdGlvbmFsPGRvdWJsZT4gaGVhZGlu
ZygpIGNvbnN0IHsgcmV0dXJuIG1fY29yZVBvc2l0aW9uLmhlYWRpbmc7IH0KICAgICBPcHRpb25h
bDxkb3VibGU+IHNwZWVkKCkgY29uc3QgeyByZXR1cm4gbV9jb3JlUG9zaXRpb24uc3BlZWQ7IH0K
IAotICAgIGNvbnN0IFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24mIGNvcmVQb3NpdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fY29yZVBvc2l0aW9uOyB9CisgICAgY29uc3QgV2ViQ29yZTo6R2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGEmIGNvcmVQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29y
ZVBvc2l0aW9uOyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uJiYgZ2VvbG9jYXRpb25Qb3NpdGlvbikK
KyAgICBleHBsaWNpdCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uKFdlYkNvcmU6Okdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhJiYgZ2VvbG9jYXRpb25Qb3NpdGlvbikKICAgICAgICAgOiBtX2NvcmVQb3Np
dGlvbihXVEZNb3ZlKGdlb2xvY2F0aW9uUG9zaXRpb24pKQogICAgIHsKICAgICB9CiAKLSAgICBX
ZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uIG1fY29yZVBvc2l0aW9uOworICAgIFdlYkNvcmU6
Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIG1fY29yZVBvc2l0aW9uOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAppbmRleCBhYWJjM2Q5ZjZkOS4uYzA4ZTRhZGNhNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25Q
b3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2Nh
dGlvblBvc2l0aW9uLmNwcApAQCAtNDgsNyArNDgsNyBAQCBXS0dlb2xvY2F0aW9uUG9zaXRpb25S
ZWYgV0tHZW9sb2NhdGlvblBvc2l0aW9uQ3JlYXRlX2IoZG91YmxlIHRpbWVzdGFtcCwgZG91Ymxl
CiAKIFdLR2VvbG9jYXRpb25Qb3NpdGlvblJlZiBXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGVf
Yyhkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRv
dWJsZSBhY2N1cmFjeSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGJv
b2wgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9v
bCBwcm92aWRlc0hlYWRpbmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRv
dWJsZSBzcGVlZCwgYm9vbCBwcm92aWRlc0Zsb29yTGV2ZWwsIGRvdWJsZSBmbG9vckxldmVsKQog
ewotICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24gY29yZVBvc2l0aW9uIHsgdGltZXN0
YW1wLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSB9OworICAgIFdlYkNvcmU6Okdlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhIGNvcmVQb3NpdGlvbiB7IHRpbWVzdGFtcCwgbGF0aXR1ZGUsIGxv
bmdpdHVkZSwgYWNjdXJhY3kgfTsKICAgICBpZiAocHJvdmlkZXNBbHRpdHVkZSkKICAgICAgICAg
Y29yZVBvc2l0aW9uLmFsdGl0dWRlID0gYWx0aXR1ZGU7CiAgICAgaWYgKHByb3ZpZGVzQWx0aXR1
ZGVBY2N1cmFjeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eS5oCmluZGV4IDE3YzA4NjljYWU2Li42YjY0Y2ZmMmMwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94
eS5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRTdXBwbGVtZW50LmgiCi0j
aW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGlj
OgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCByZXNldFBlcm1pc3Npb25zKCk7
CiAjZW5kaWYKLSAgICBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9u
PiYgbGFzdFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0UG9zaXRpb247IH0KKyAgICBj
b25zdCBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4mIGxhc3RQb3Np
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFBvc2l0aW9uOyB9CiAKICAgICB1c2luZyBBUEk6
Ok9iamVjdDo6cmVmOwogICAgIHVzaW5nIEFQSTo6T2JqZWN0OjpkZXJlZjsKQEAgLTg0LDcgKzg0
LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PGNvbnN0IElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50
Kj4gbV9oaWdoQWNjdXJhY3lSZXF1ZXN0ZXJzOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEFQSTo6
R2VvbG9jYXRpb25Qcm92aWRlcj4gbV9wcm92aWRlcjsKLSAgICBPcHRpb25hbDxXZWJDb3JlOjpH
ZW9sb2NhdGlvblBvc2l0aW9uPiBtX2xhc3RQb3NpdGlvbjsKKyAgICBPcHRpb25hbDxXZWJDb3Jl
OjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gbV9sYXN0UG9zaXRpb247CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9s
b2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMDIwMjQwMjNj
OWYuLjdiMzBkZDBmNWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2Vv
bG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcApAQCAtOTAsNyAr
OTAsNyBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5
Rm9yUGFnZShXZWJQYWdlJiBwYWdlLCBib29sIGVuYQogICAgICAgICBtX3Byb2Nlc3MucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHk6OlNldEVuYWJsZUhpZ2hBY2N1cmFjeShoaWdoQWNjdXJhY3lTaG91bGRCZUVuYWJsZWQp
LCAwKTsKIH0KIAotdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9u
KGNvbnN0IEdlb2xvY2F0aW9uUG9zaXRpb24mIHBvc2l0aW9uKQordm9pZCBXZWJHZW9sb2NhdGlv
bk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKGNvbnN0IEdlb2xvY2F0aW9uUG9zaXRpb25EYXRh
JiBwb3NpdGlvbikKIHsKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgZm9yIChhdXRvJiBw
YWdlIDogY29weVRvVmVjdG9yKG1fcGFnZVNldCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaApp
bmRleCBhNmMyODcxNmFiMS4uZDc4MDkzZTRkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgK
QEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzVXBkYXRpbmcoKSBjb25zdCB7
IHJldHVybiAhbV9wYWdlU2V0LmlzRW1wdHkoKTsgfQogICAgIGJvb2wgaXNIaWdoQWNjdXJhY3lF
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gIW1faGlnaEFjY3VyYWN5UGFnZVNldC5pc0VtcHR5KCk7
IH0KIAotICAgIHZvaWQgZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6R2VvbG9jYXRp
b25Qb3NpdGlvbiYpOworICAgIHZvaWQgZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6
R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmKTsKICAgICB2b2lkIGRpZEZhaWxUb0RldGVybWluZVBv
c2l0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIHZvaWQgcmVzZXRQZXJtaXNzaW9ucygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlv
bk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggMDQzZWY2NDk0OTAuLmI1MmU4MTYyMDU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRp
b25NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9s
b2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTIxLDcgKzIxLDcg
QEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gV2ViR2VvbG9jYXRpb25NYW5hZ2VyIHsK
LSAgICBEaWRDaGFuZ2VQb3NpdGlvbihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uIHBvc2l0
aW9uKTsKKyAgICBEaWRDaGFuZ2VQb3NpdGlvbihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9u
RGF0YSBwb3NpdGlvbik7CiAgICAgRGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oU3RyaW5nIGVy
cm9yTWVzc2FnZSk7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBSZXNldFBlcm1pc3Np
b25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAppbmRleCBhMjRlMGZmMjFjYy4u
ZjIyNzUxMjU5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcApAQCAtNjMsNyAr
NjMsNyBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpzZXRFbmFibGVIaWdoQWNjdXJhY3ko
Ym9vbCBlbmFibGVkKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8V2Vi
R2VvbG9jYXRpb25NYW5hZ2VyPigpLT5zZXRFbmFibGVIaWdoQWNjdXJhY3lGb3JQYWdlKG1fcGFn
ZSwgZW5hYmxlZCk7CiB9CiAKLU9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+IFdlYkdlb2xv
Y2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24oKQorT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlv
bkRhdGE+IFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24oKQogewogICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCmluZGV4IDM1YTMx
ZmMyYTM0Li5kNDc3NmU5MTUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKQEAgLTQ4
LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0b3BVcGRhdGluZygpIG92ZXJyaWRlOwog
ICAgIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpIG92ZXJyaWRlOwogCi0gICAgT3B0
aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbj4gbGFzdFBvc2l0aW9uKCkgb3ZlcnJp
ZGU7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQ
b3NpdGlvbigpIG92ZXJyaWRlOwogCiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3Jl
OjpHZW9sb2NhdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVl
c3QoV2ViQ29yZTo6R2VvbG9jYXRpb24mKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQppbmRl
eCBjMmZmMzUwZjc0NS4uNWU3Nzc5NjRmMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KQEAgLTQyLDcg
KzQyLDcgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBAaW50ZXJmYWNlIFdlYkdlb2xv
Y2F0aW9uUG9zaXRpb24gKEludGVybmFsKQotLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0
aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb247CistIChp
ZClpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246KEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYp
Y29yZUdlb2xvY2F0aW9uUG9zaXRpb247CiBAZW5kCiAKIC8vIENvcmVMb2NhdGlvbiBydW5zIGlu
IHRoZSBtYWluIHRocmVhZC4gV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUyBsaXZlcyBvbiB0aGUg
V2ViVGhyZWFkLgpAQCAtMzQ4LDcgKzM0OCw3IEBAIC0gKHZvaWQpZ2VvbG9jYXRpb25BdXRob3Jp
emF0aW9uRGVuaWVkCiAgICAgfSk7CiB9CiAKLS0gKHZvaWQpcG9zaXRpb25DaGFuZ2VkOihXZWJD
b3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uJiYpcG9zaXRpb24KKy0gKHZvaWQpcG9zaXRpb25DaGFu
Z2VkOihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKXBvc2l0aW9uCiB7CiAgICAg
UmV0YWluUHRyPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IHdlYlBvc2l0aW9uID0gYWRvcHROUyhb
W1dlYkdlb2xvY2F0aW9uUG9zaXRpb24gYWxsb2NdIGluaXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlv
bjpXVEZNb3ZlKHBvc2l0aW9uKV0pOwogICAgIFdlYlRocmVhZFJ1biheewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ2xpZW50LmgKaW5kZXggZmZkYmFjZmMyNzQuLjhhMWI3ZjAwOWQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xv
Y2F0aW9uQ2xpZW50LmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgR2VvbG9jYXRpb247Ci1jbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOworY2xhc3MgR2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGE7CiB9CiAKIEBjbGFzcyBXZWJWaWV3OwpAQCAtNDgsNyArNDgs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkgb3ZlcnJp
ZGUgeyB9CiAjZW5kaWYKIAotICAgIE9wdGlvbmFsPFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRp
b24+IGxhc3RQb3NpdGlvbigpIG92ZXJyaWRlOworICAgIE9wdGlvbmFsPFdlYkNvcmU6Okdlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhPiBsYXN0UG9zaXRpb24oKSBvdmVycmlkZTsKIAogICAgIHZvaWQg
cmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6R2VvbG9jYXRpb24mKSBvdmVycmlkZTsKICAgICB2
b2lkIGNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KFdlYkNvcmU6Okdlb2xvY2F0aW9uJikgb3ZlcnJp
ZGUgeyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQppbmRleCAyY2Y3MTVlMmQ5MC4uODdk
YTczMGZlYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCkBAIC0xMzIsNyArMTMyLDcg
QEAgdm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oR2VvbG9jYXRp
b24mIGdlb2xvY2F0aW9uKQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKLU9w
dGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+IFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9z
aXRpb24oKQorT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IFdlYkdlb2xvY2F0aW9u
Q2xpZW50OjpsYXN0UG9zaXRpb24oKQogewogICAgIHJldHVybiBjb3JlKFtbbV93ZWJWaWV3IF9n
ZW9sb2NhdGlvblByb3ZpZGVyXSBsYXN0UG9zaXRpb25dKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQpp
bmRleCBkMTVmNWY5YzY5ZS4uNWRiZmQzNTVhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0KQEAgLTI2
LDcgKzI2LDcgQEAKICNpbXBvcnQgIldlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKIAogI2ltcG9y
dCAiV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmgiCi0jaW1wb3J0IDxXZWJDb3JlL0dl
b2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlv
bkRhdGEuaD4KICNpbXBvcnQgPHd0Zi9PcHRpb25hbC5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5o
PgogCkBAIC0zNSwxNSArMzUsMTUgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBAaW50ZXJm
YWNlIFdlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbCA6IE5TT2JqZWN0CiB7CiBAcHVibGlj
Ci0gICAgR2VvbG9jYXRpb25Qb3NpdGlvbiBfcG9zaXRpb247CisgICAgR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEgX3Bvc2l0aW9uOwogfQogCi0tIChpZClpbml0V2l0aENvcmVHZW9sb2NhdGlvblBv
c2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb247Cist
IChpZClpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9u
RGF0YSYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24g
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsCiAKLS0gKGlkKWluaXRXaXRoQ29yZUdlb2xv
Y2F0aW9uUG9zaXRpb246KEdlb2xvY2F0aW9uUG9zaXRpb24mJiljb3JlR2VvbG9jYXRpb25Qb3Np
dGlvbgorLSAoaWQpaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjooR2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGEmJiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbgogewogICAgIHNlbGYgPSBbc3Vw
ZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQpAQCAtNTYsNyArNTYsNyBAQCBAZW5kCiAKIEBpbXBs
ZW1lbnRhdGlvbiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uCiAKLU9wdGlvbmFsPEdlb2xvY2F0aW9u
UG9zaXRpb24+IGNvcmUoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiAqcG9zaXRpb24pCitPcHRpb25h
bDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gY29yZShXZWJHZW9sb2NhdGlvblBvc2l0aW9uICpw
b3NpdGlvbikKIHsKICAgICBpZiAoIXBvc2l0aW9uKQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwpAQCAtNjgsMTEgKzY4LDExIEBAIC0gKGlkKWluaXRXaXRoVGltZXN0YW1wOihkb3VibGUp
dGltZXN0YW1wIGxhdGl0dWRlOihkb3VibGUpbGF0aXR1ZGUgbG9uZ2l0dWRlOihkCiAgICAgc2Vs
ZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7Ci0g
ICAgX2ludGVybmFsID0gW1tXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwgYWxsb2NdIGlu
aXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246R2VvbG9jYXRpb25Qb3NpdGlvbiB7IHRpbWVz
dGFtcCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kgfV07CisgICAgX2ludGVybmFsID0g
W1tXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwgYWxsb2NdIGluaXRXaXRoQ29yZUdlb2xv
Y2F0aW9uUG9zaXRpb246R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEgeyB0aW1lc3RhbXAsIGxhdGl0
dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH1dOwogICAgIHJldHVybiBzZWxmOwogfQogCi0tIChp
ZClpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246KEdlb2xvY2F0aW9uUG9zaXRpb24mJiljb3Jl
R2VvbG9jYXRpb25Qb3NpdGlvbgorLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0aW9uOihH
ZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uCiB7CiAgICAg
c2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5o
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9u
SW50ZXJuYWwuaAppbmRleCAzNDc2MzAyZjJkNi4uN2VhYWE5YzBlY2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVy
bmFsLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlv
blBvc2l0aW9uSW50ZXJuYWwuaApAQCAtMjcsOCArMjcsOCBAQAogI2ltcG9ydCA8d3RmL09wdGlv
bmFsLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBjbGFzcyBHZW9sb2NhdGlvblBvc2l0
aW9uOworY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE7CiB9CiAKLU9wdGlvbmFsPFdlYkNv
cmU6Okdlb2xvY2F0aW9uUG9zaXRpb24+IGNvcmUoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiAqKTsK
K09wdGlvbmFsPFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBjb3JlKFdlYkdlb2xv
Y2F0aW9uUG9zaXRpb24gKik7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9UZXN0UnVubmVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJN
YWMubW0KaW5kZXggMWY5NjBhYWUyZGQuLjAwNjU5NTZjODFkIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAtNDEsNyArNDEsNyBAQAogI2ltcG9ydCAiV29y
a1F1ZXVlSXRlbS5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0
IDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1JlZkNGLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0dlb2xv
Y2F0aW9uUG9zaXRpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbkRh
dGEuaD4KICNpbXBvcnQgPFdlYktpdC9ET01Eb2N1bWVudC5oPgogI2ltcG9ydCA8V2ViS2l0L0RP
TUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYktpdC9ET01IVE1MSW5wdXRFbGVtZW50UHJpdmF0ZS5o
PgpAQCAtMTE5LDcgKzExOSw3IEBAIEBlbmQKICNlbmRpZgogCiBAaW50ZXJmYWNlIFdlYkdlb2xv
Y2F0aW9uUG9zaXRpb24gKEludGVybmFsKQotLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0
aW9uOihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRp
b247CistIChpZClpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246KFdlYkNvcmU6Okdlb2xvY2F0
aW9uUG9zaXRpb25EYXRhJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb247CiBAZW5kCiAKIFRlc3RS
dW5uZXI6On5UZXN0UnVubmVyKCkKQEAgLTQ3Miw3ICs0NzIsNyBAQCB2b2lkIFRlc3RSdW5uZXI6
OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdp
dHVkZSwgZAogICAgICAgICAvLyBUZXN0IHRoZSBleHBvc2VkIEFQSS4KICAgICAgICAgcG9zaXRp
b24gPSBbW1dlYkdlb2xvY2F0aW9uUG9zaXRpb24gYWxsb2NdIGluaXRXaXRoVGltZXN0YW1wOldh
bGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSBsYXRpdHVkZTpsYXRp
dHVkZSBsb25naXR1ZGU6bG9uZ2l0dWRlIGFjY3VyYWN5OmFjY3VyYWN5XTsKICAgICB9IGVsc2Ug
ewotICAgICAgICBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uIGdlb2xvY2F0aW9uUG9zaXRp
b24geyBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCksIGxhdGl0
dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH07CisgICAgICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhIGdlb2xvY2F0aW9uUG9zaXRpb24geyBXYWxsVGltZTo6bm93KCkuc2Vjb25k
c1NpbmNlRXBvY2goKS5zZWNvbmRzKCksIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH07
CiAgICAgICAgIGlmIChwcm92aWRlc0FsdGl0dWRlKQogICAgICAgICAgICAgZ2VvbG9jYXRpb25Q
b3NpdGlvbi5hbHRpdHVkZSA9IGFsdGl0dWRlOwogICAgICAgICBpZiAocHJvdmlkZXNBbHRpdHVk
ZUFjY3VyYWN5KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377069</attachid>
            <date>2019-08-22 16:25:49 -0700</date>
            <delta_ts>2019-08-22 16:27:59 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>200885_GeolocationPosition_wip.patch</filename>
            <type>text/plain</type>
            <size>85935</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMGUyOTNkMjUyOTMuLmE1YjYyZjQwOGRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMjYxLDEyICsyNjEsMTIgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19J
RExfRklMRVMKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaWRsCiAgICAgTW9kdWxl
cy9mZXRjaC9Xb3JrZXJHbG9iYWxTY29wZUZldGNoLmlkbAogCi0gICAgTW9kdWxlcy9nZW9sb2Nh
dGlvbi9Db29yZGluYXRlcy5pZGwKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmlkbAotICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCisgICAgTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmlkbAorICAgIE1vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbi5pZGwKKyAgICBNb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL05h
dmlnYXRvckdlb2xvY2F0aW9uLmlkbAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25D
YWxsYmFjay5pZGwKLSAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsCiAg
ICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsCiAgICAgTW9k
dWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IGU0MDgzZGQ5MGM3Li4zNTI2
ZmRhNmNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CkBAIC05OSw2ICs5OSw5IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZ2FtZXBhZC9H
YW1lcGFkRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9y
R2FtZXBhZC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0
ZXMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlk
bAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5h
dGVzLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBv
c2l0aW9uLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3IuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b3Bvc2l0aW9uLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0
b3JHZW9sb2NhdGlvbi5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9z
aXRpb25DYWxsYmFjay5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKaW5kZXggOTA2YzMxNDUzNzguLmViNzMzZmY3MGI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNjU1LDYg
KzY1NSwxMiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0dhbWVwYWRXZWJWUi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTR2FtZXBhZFdlYlZSLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb25D
b29yZGluYXRlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uUG9zaXRpb24uaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3Iu
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xv
Y2F0aW9uUG9zaXRpb25FcnJvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0dlb3Bvc2l0aW9uLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNHZW9wb3NpdGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlc3R1cmVFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCmluZGV4IDQ2NGMxM2YyNjE0Li4wYzI4YjY1N2I4NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNzEsMTIgKzE3MSwxMiBAQCBKU19CSU5ESU5HX0lETFMg
PSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZEJ1dHRvbi5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRFdmVudC5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaWRsIFwKLSAgICAkKFdl
YkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsIFwKLSAgICAkKFdlYkNvcmUp
L01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsIFwKKyAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbCBcCisgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2Nh
dGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNh
bGxiYWNrLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9u
RXJyb3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25F
cnJvckNhbGxiYWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bv
c2l0aW9uT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvRE9N
V2luZG93SW5kZXhlZERhdGFiYXNlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZpZXIuY3BwCmluZGV4IDc3ZWJmMzQyMWM5Li43MGY4OTYy
MWZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9O
b3RpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9O
b3RpZmllci5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgR2VvTm90aWZpZXI6Okdlb05vdGlmaWVyKEdl
b2xvY2F0aW9uJiBnZW9sb2NhdGlvbiwgUmVmPFBvc2l0aW9uQ2FsbGJhY2s+JiYgc3VjY2UKIHsK
IH0KIAotdm9pZCBHZW9Ob3RpZmllcjo6c2V0RmF0YWxFcnJvcihSZWZQdHI8UG9zaXRpb25FcnJv
cj4mJiBlcnJvcikKK3ZvaWQgR2VvTm90aWZpZXI6OnNldEZhdGFsRXJyb3IoUmVmUHRyPEdlb2xv
Y2F0aW9uUG9zaXRpb25FcnJvcj4mJiBlcnJvcikKIHsKICAgICAvLyBJZiBhIGZhdGFsIGVycm9y
IGhhcyBhbHJlYWR5IGJlZW4gc2V0LCBzdGljayB3aXRoIGl0LiBUaGlzIG1ha2VzIHN1cmUgdGhh
dAogICAgIC8vIHdoZW4gcGVybWlzc2lvbiBpcyBkZW5pZWQsIHRoaXMgaXMgdGhlIGVycm9yIHJl
cG9ydGVkLCBhcyByZXF1aXJlZCBieSB0aGUKQEAgLTY5LDcgKzY5LDcgQEAgYm9vbCBHZW9Ob3Rp
Zmllcjo6aGFzWmVyb1RpbWVvdXQoKSBjb25zdAogICAgIHJldHVybiAhbV9vcHRpb25zLnRpbWVv
dXQ7CiB9CiAKLXZvaWQgR2VvTm90aWZpZXI6OnJ1blN1Y2Nlc3NDYWxsYmFjayhHZW9wb3NpdGlv
biogcG9zaXRpb24pCit2b2lkIEdlb05vdGlmaWVyOjpydW5TdWNjZXNzQ2FsbGJhY2soR2VvbG9j
YXRpb25Qb3NpdGlvbiogcG9zaXRpb24pCiB7CiAgICAgLy8gSWYgd2UgYXJlIGhlcmUgYW5kIHRo
ZSBHZW9sb2NhdGlvbiBwZXJtaXNzaW9uIGlzIG5vdCBhcHByb3ZlZCwgc29tZXRoaW5nIGhhcwog
ICAgIC8vIGdvbmUgaG9ycmlibHkgd3JvbmcuCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgR2VvTm90
aWZpZXI6OnJ1blN1Y2Nlc3NDYWxsYmFjayhHZW9wb3NpdGlvbiogcG9zaXRpb24pCiAgICAgbV9z
dWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2ZW50KHBvc2l0aW9uKTsKIH0KIAotdm9pZCBHZW9Ob3Rp
Zmllcjo6cnVuRXJyb3JDYWxsYmFjayhQb3NpdGlvbkVycm9yJiBlcnJvcikKK3ZvaWQgR2VvTm90
aWZpZXI6OnJ1bkVycm9yQ2FsbGJhY2soR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yJiBlcnJvcikK
IHsKICAgICBpZiAobV9lcnJvckNhbGxiYWNrKQogICAgICAgICBtX2Vycm9yQ2FsbGJhY2stPmhh
bmRsZUV2ZW50KGVycm9yKTsKQEAgLTEyMSw3ICsxMjEsNyBAQCB2b2lkIEdlb05vdGlmaWVyOjp0
aW1lckZpcmVkKCkKICAgICB9CiAgICAgCiAgICAgaWYgKG1fZXJyb3JDYWxsYmFjaykgewotICAg
ICAgICBhdXRvIGVycm9yID0gUG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlRJ
TUVPVVQsICJUaW1lb3V0IGV4cGlyZWQiX3MpOworICAgICAgICBhdXRvIGVycm9yID0gR2VvbG9j
YXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpUSU1F
T1VULCAiVGltZW91dCBleHBpcmVkIl9zKTsKICAgICAgICAgbV9lcnJvckNhbGxiYWNrLT5oYW5k
bGVFdmVudChlcnJvcik7CiAgICAgfQogICAgIG1fZ2VvbG9jYXRpb24tPnJlcXVlc3RUaW1lZE91
dCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvTm90aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90
aWZpZXIuaAppbmRleCBmYjMyY2U4ZDliZi4uZGI5MTNlZjkwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZpZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmgKQEAgLTM2LDEwICszNiwx
MCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEdlb3Bvc2l0aW9uOwogY2xhc3Mg
R2VvbG9jYXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOworY2xhc3MgR2VvbG9jYXRp
b25Qb3NpdGlvbkVycm9yOwogY2xhc3MgUG9zaXRpb25DYWxsYmFjazsKLWNsYXNzIFBvc2l0aW9u
RXJyb3I7CiBjbGFzcyBQb3NpdGlvbkVycm9yQ2FsbGJhY2s7CiAKIGNsYXNzIEdlb05vdGlmaWVy
IDogcHVibGljIFJlZkNvdW50ZWQ8R2VvTm90aWZpZXI+IHsKQEAgLTUwLDEzICs1MCwxMyBAQCBw
dWJsaWM6CiAgICAgfQogCiAgICAgY29uc3QgUG9zaXRpb25PcHRpb25zJiBvcHRpb25zKCkgY29u
c3QgeyByZXR1cm4gbV9vcHRpb25zOyB9Ci0gICAgdm9pZCBzZXRGYXRhbEVycm9yKFJlZlB0cjxQ
b3NpdGlvbkVycm9yPiYmKTsKKyAgICB2b2lkIHNldEZhdGFsRXJyb3IoUmVmUHRyPEdlb2xvY2F0
aW9uUG9zaXRpb25FcnJvcj4mJik7CiAKICAgICBib29sIHVzZUNhY2hlZFBvc2l0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV91c2VDYWNoZWRQb3NpdGlvbjsgfQogICAgIHZvaWQgc2V0VXNlQ2FjaGVk
UG9zaXRpb24oKTsKIAotICAgIHZvaWQgcnVuU3VjY2Vzc0NhbGxiYWNrKEdlb3Bvc2l0aW9uKik7
IC8vIEZJWE1FOiBUaGlzIHNob3VsZCB0YWtlIGEgcmVmZXJlbmNlLgotICAgIHZvaWQgcnVuRXJy
b3JDYWxsYmFjayhQb3NpdGlvbkVycm9yJik7CisgICAgdm9pZCBydW5TdWNjZXNzQ2FsbGJhY2so
R2VvbG9jYXRpb25Qb3NpdGlvbiopOyAvLyBGSVhNRTogVGhpcyBzaG91bGQgdGFrZSBhIHJlZmVy
ZW5jZS4KKyAgICB2b2lkIHJ1bkVycm9yQ2FsbGJhY2soR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9y
Jik7CiAKICAgICB2b2lkIHN0YXJ0VGltZXJJZk5lZWRlZCgpOwogICAgIHZvaWQgc3RvcFRpbWVy
KCk7CkBAIC03MSw3ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFBvc2l0aW9uRXJyb3JD
YWxsYmFjaz4gbV9lcnJvckNhbGxiYWNrOwogICAgIFBvc2l0aW9uT3B0aW9ucyBtX29wdGlvbnM7
CiAgICAgVGltZXIgbV90aW1lcjsKLSAgICBSZWZQdHI8UG9zaXRpb25FcnJvcj4gbV9mYXRhbEVy
cm9yOworICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I+IG1fZmF0YWxFcnJvcjsK
ICAgICBib29sIG1fdXNlQ2FjaGVkUG9zaXRpb247CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCmluZGV4IGUyNjkxZjU5N2Zl
Li5mMTJlMTQ5MGZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvbi5jcHAKQEAgLTMwLDE3ICszMCwxNiBAQAogCiAjaWYgRU5BQkxFKEdF
T0xPQ0FUSU9OKQogCi0jaW5jbHVkZSAiQ29vcmRpbmF0ZXMuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiR2VvTm90aWZpZXIuaCIKICNpbmNs
dWRlICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkNvb3Jk
aW5hdGVzLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25FcnJvci5oIgogI2luY2x1ZGUgIkdlb2xv
Y2F0aW9uUG9zaXRpb24uaCIKLSNpbmNsdWRlICJHZW9wb3NpdGlvbi5oIgorI2luY2x1ZGUgIkdl
b2xvY2F0aW9uUG9zaXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKICNpbmNsdWRlICJSdW50aW1l
QXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC01NiwyOCArNTUsMjggQEAgc3RhdGljIGNv
bnN0IEFTQ0lJTGl0ZXJhbCBvcmlnaW5DYW5ub3RSZXF1ZXN0R2VvbG9jYXRpb25FcnJvck1lc3Nh
Z2UgeyAiT3JpZ2luIGQKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEdlb2xvY2F0aW9u
KTsKIAotc3RhdGljIFJlZlB0cjxHZW9wb3NpdGlvbj4gY3JlYXRlR2VvcG9zaXRpb24oT3B0aW9u
YWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4mJiBwb3NpdGlvbikKK3N0YXRpYyBSZWZQdHI8R2VvbG9j
YXRpb25Qb3NpdGlvbj4gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbihPcHRpb25hbDxHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YT4mJiBwb3NpdGlvbikKIHsKICAgICBpZiAoIXBvc2l0aW9uKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBET01UaW1lU3RhbXAgdGltZXN0YW1wID0g
Y29udmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcChwb3NpdGlvbi0+dGltZXN0YW1wKTsKLSAgICBy
ZXR1cm4gR2VvcG9zaXRpb246OmNyZWF0ZShDb29yZGluYXRlczo6Y3JlYXRlKFdURk1vdmUocG9z
aXRpb24udmFsdWUoKSkpLCB0aW1lc3RhbXApOworICAgIHJldHVybiBHZW9sb2NhdGlvblBvc2l0
aW9uOjpjcmVhdGUoR2VvbG9jYXRpb25Db29yZGluYXRlczo6Y3JlYXRlKFdURk1vdmUocG9zaXRp
b24udmFsdWUoKSkpLCB0aW1lc3RhbXApOwogfQogCi1zdGF0aWMgUmVmPFBvc2l0aW9uRXJyb3I+
IGNyZWF0ZVBvc2l0aW9uRXJyb3IoR2VvbG9jYXRpb25FcnJvciYgZXJyb3IpCitzdGF0aWMgUmVm
PEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9y
KEdlb2xvY2F0aW9uRXJyb3ImIGVycm9yKQogewotICAgIFBvc2l0aW9uRXJyb3I6OkVycm9yQ29k
ZSBjb2RlID0gUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEU7CisgICAgYXV0byBj
b2RlID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRTsKICAg
ICBzd2l0Y2ggKGVycm9yLmNvZGUoKSkgewogICAgIGNhc2UgR2VvbG9jYXRpb25FcnJvcjo6UGVy
bWlzc2lvbkRlbmllZDoKLSAgICAgICAgY29kZSA9IFBvc2l0aW9uRXJyb3I6OlBFUk1JU1NJT05f
REVOSUVEOworICAgICAgICBjb2RlID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNT
SU9OX0RFTklFRDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHZW9sb2NhdGlvbkVycm9yOjpQ
b3NpdGlvblVuYXZhaWxhYmxlOgotICAgICAgICBjb2RlID0gUG9zaXRpb25FcnJvcjo6UE9TSVRJ
T05fVU5BVkFJTEFCTEU7CisgICAgICAgIGNvZGUgPSBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6
OlBPU0lUSU9OX1VOQVZBSUxBQkxFOwogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICByZXR1
cm4gUG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIGVycm9yLm1lc3NhZ2UoKSk7CisgICAgcmV0
dXJuIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIGVycm9yLm1lc3NhZ2Uo
KSk7CiB9CiAKIGJvb2wgR2VvbG9jYXRpb246OldhdGNoZXJzOjphZGQoaW50IGlkLCBSZWZQdHI8
R2VvTm90aWZpZXI+JiYgbm90aWZpZXIpCkBAIC0yOTAsMTMgKzI4OSwxMyBAQCBjb25zdCBjaGFy
KiBHZW9sb2NhdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJH
ZW9sb2NhdGlvbiI7CiB9CiAKLUdlb3Bvc2l0aW9uKiBHZW9sb2NhdGlvbjo6bGFzdFBvc2l0aW9u
KCkKK0dlb2xvY2F0aW9uUG9zaXRpb24qIEdlb2xvY2F0aW9uOjpsYXN0UG9zaXRpb24oKQogewog
ICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgIG1fbGFzdFBvc2l0aW9uID0gY3JlYXRlR2VvcG9zaXRpb24o
R2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5sYXN0UG9zaXRpb24oKSk7CisgICAg
bV9sYXN0UG9zaXRpb24gPSBjcmVhdGVHZW9sb2NhdGlvblBvc2l0aW9uKEdlb2xvY2F0aW9uQ29u
dHJvbGxlcjo6ZnJvbShwYWdlKS0+bGFzdFBvc2l0aW9uKCkpOwogCiAgICAgcmV0dXJuIG1fbGFz
dFBvc2l0aW9uLmdldCgpOwogfQpAQCAtMzczLDcgKzM3Miw3IEBAIGJvb2wgR2VvbG9jYXRpb246
OnNob3VsZEJsb2NrR2VvbG9jYXRpb25SZXF1ZXN0cygpCiB2b2lkIEdlb2xvY2F0aW9uOjpzdGFy
dFJlcXVlc3QoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogewogICAgIGlmIChzaG91bGRCbG9ja0dl
b2xvY2F0aW9uUmVxdWVzdHMoKSkgewotICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihQ
b3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUs
IG9yaWdpbkNhbm5vdFJlcXVlc3RHZW9sb2NhdGlvbkVycm9yTWVzc2FnZSkpOworICAgICAgICBu
b3RpZmllci0+c2V0RmF0YWxFcnJvcihHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNyZWF0ZShH
ZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxFLCBvcmlnaW5DYW5u
b3RSZXF1ZXN0R2VvbG9jYXRpb25FcnJvck1lc3NhZ2UpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBkb2N1bWVudCgpLT5zZXRHZW9sb2NhdGlvbkFjY2Vzc2VkKCk7CkBAIC0zODEsNyAr
MzgwLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RhcnRSZXF1ZXN0KEdlb05vdGlmaWVyKiBub3Rp
ZmllcikKICAgICAvLyBDaGVjayB3aGV0aGVyIHBlcm1pc3Npb25zIGhhdmUgYWxyZWFkeSBiZWVu
IGRlbmllZC4gTm90ZSB0aGF0IGlmIHRoaXMgaXMgdGhlIGNhc2UsCiAgICAgLy8gdGhlIHBlcm1p
c3Npb24gc3RhdGUgY2FuIG5vdCBjaGFuZ2UgYWdhaW4gaW4gdGhlIGxpZmV0aW1lIG9mIHRoaXMg
cGFnZS4KICAgICBpZiAoaXNEZW5pZWQoKSkKLSAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJy
b3IoUG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlBFUk1JU1NJT05fREVOSUVE
LCBwZXJtaXNzaW9uRGVuaWVkRXJyb3JNZXNzYWdlKSk7CisgICAgICAgIG5vdGlmaWVyLT5zZXRG
YXRhbEVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9z
aXRpb25FcnJvcjo6UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3Nh
Z2UpKTsKICAgICBlbHNlIGlmIChoYXZlU3VpdGFibGVDYWNoZWRQb3NpdGlvbihub3RpZmllci0+
b3B0aW9ucygpKSkKICAgICAgICAgbm90aWZpZXItPnNldFVzZUNhY2hlZFBvc2l0aW9uKCk7CiAg
ICAgZWxzZSBpZiAobm90aWZpZXItPmhhc1plcm9UaW1lb3V0KCkpCkBAIC0zOTMsNyArMzkyLDcg
QEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RhcnRSZXF1ZXN0KEdlb05vdGlmaWVyKiBub3RpZmllcikK
ICAgICB9IGVsc2UgaWYgKHN0YXJ0VXBkYXRpbmcobm90aWZpZXIpKQogICAgICAgICBub3RpZmll
ci0+c3RhcnRUaW1lcklmTmVlZGVkKCk7CiAgICAgZWxzZQotICAgICAgICBub3RpZmllci0+c2V0
RmF0YWxFcnJvcihQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UE9TSVRJT05f
VU5BVkFJTEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CisgICAgICAg
IG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRl
KEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIGZhaWxlZFRv
U3RhcnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CiB9CiAKIHZvaWQgR2VvbG9jYXRpb246OmZhdGFs
RXJyb3JPY2N1cnJlZChHZW9Ob3RpZmllciogbm90aWZpZXIpCkBAIC00MTEsNyArNDEwLDcgQEAg
dm9pZCBHZW9sb2NhdGlvbjo6cmVxdWVzdFVzZXNDYWNoZWRQb3NpdGlvbihHZW9Ob3RpZmllciog
bm90aWZpZXIpCiAgICAgLy8gVGhpcyBpcyBjYWxsZWQgYXN5bmNocm9ub3VzbHksIHNvIHRoZSBw
ZXJtaXNzaW9ucyBjb3VsZCBoYXZlIGJlZW4gZGVuaWVkCiAgICAgLy8gc2luY2Ugd2UgbGFzdCBj
aGVja2VkIGluIHN0YXJ0UmVxdWVzdC4KICAgICBpZiAoaXNEZW5pZWQoKSkgewotICAgICAgICBu
b3RpZmllci0+c2V0RmF0YWxFcnJvcihQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJv
cjo6UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2UpKTsKKyAg
ICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpj
cmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlz
c2lvbkRlbmllZEVycm9yTWVzc2FnZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00
NDMsNyArNDQyLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6bWFrZUNhY2hlZFBvc2l0aW9uQ2FsbGJh
Y2tzKCkKICAgICAgICAgICAgIGlmIChub3RpZmllci0+aGFzWmVyb1RpbWVvdXQoKSB8fCBzdGFy
dFVwZGF0aW5nKG5vdGlmaWVyLmdldCgpKSkKICAgICAgICAgICAgICAgICBub3RpZmllci0+c3Rh
cnRUaW1lcklmTmVlZGVkKCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbm90
aWZpZXItPnNldEZhdGFsRXJyb3IoUG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6
OlBPU0lUSU9OX1VOQVZBSUxBQkxFLCBmYWlsZWRUb1N0YXJ0U2VydmljZUVycm9yTWVzc2FnZSkp
OworICAgICAgICAgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKEdlb2xvY2F0aW9uUG9z
aXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5B
VkFJTEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CiAgICAgICAgIH0K
ICAgICB9CiAKQEAgLTQ2NCw3ICs0NjMsNyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpyZXF1ZXN0VGlt
ZWRPdXQoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogCiBib29sIEdlb2xvY2F0aW9uOjpoYXZlU3Vp
dGFibGVDYWNoZWRQb3NpdGlvbihjb25zdCBQb3NpdGlvbk9wdGlvbnMmIG9wdGlvbnMpCiB7Ci0g
ICAgR2VvcG9zaXRpb24qIGNhY2hlZFBvc2l0aW9uID0gbGFzdFBvc2l0aW9uKCk7CisgICAgYXV0
byogY2FjaGVkUG9zaXRpb24gPSBsYXN0UG9zaXRpb24oKTsKICAgICBpZiAoIWNhY2hlZFBvc2l0
aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFvcHRpb25zLm1heGltdW1BZ2Up
CkBAIC01MDYsNyArNTA1LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c2V0SXNBbGxvd2VkKGJvb2wg
YWxsb3dlZCkKICAgICB9CiAKICAgICBpZiAoIWlzQWxsb3dlZCgpKSB7Ci0gICAgICAgIGF1dG8g
ZXJyb3IgPSBQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UEVSTUlTU0lPTl9E
RU5JRUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2UpOworICAgICAgICBhdXRvIGVycm9y
ID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVy
cm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZSk7CiAg
ICAgICAgIGVycm9yLT5zZXRJc0ZhdGFsKHRydWUpOwogICAgICAgICBoYW5kbGVFcnJvcihlcnJv
cik7CiAgICAgICAgIG1fcmVxdWVzdHNBd2FpdGluZ0NhY2hlZFBvc2l0aW9uLmNsZWFyKCk7CkBA
IC01MTgsMTkgKzUxNywxOSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpzZXRJc0FsbG93ZWQoYm9vbCBh
bGxvd2VkKQogICAgIC8vIElmIHRoZSBzZXJ2aWNlIGhhcyBhIGxhc3QgcG9zaXRpb24sIHVzZSBp
dCB0byBjYWxsIGJhY2sgZm9yIGFsbCByZXF1ZXN0cy4KICAgICAvLyBJZiBhbnkgb2YgdGhlIHJl
cXVlc3RzIGFyZSB3YWl0aW5nIGZvciBwZXJtaXNzaW9uIGZvciBhIGNhY2hlZCBwb3NpdGlvbiwK
ICAgICAvLyB0aGUgcG9zaXRpb24gZnJvbSB0aGUgc2VydmljZSB3aWxsIGJlIGF0IGxlYXN0IGFz
IGZyZXNoLgotICAgIGlmIChSZWZQdHI8R2VvcG9zaXRpb24+IHBvc2l0aW9uID0gbGFzdFBvc2l0
aW9uKCkpCisgICAgaWYgKFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3NpdGlvbiA9IGxh
c3RQb3NpdGlvbigpKQogICAgICAgICBtYWtlU3VjY2Vzc0NhbGxiYWNrcygqcG9zaXRpb24pOwog
ICAgIGVsc2UKICAgICAgICAgbWFrZUNhY2hlZFBvc2l0aW9uQ2FsbGJhY2tzKCk7CiB9CiAKLXZv
aWQgR2VvbG9jYXRpb246OnNlbmRFcnJvcihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZpZXJzLCBQ
b3NpdGlvbkVycm9yJiBlcnJvcikKK3ZvaWQgR2VvbG9jYXRpb246OnNlbmRFcnJvcihHZW9Ob3Rp
ZmllclZlY3RvciYgbm90aWZpZXJzLCBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImIGVycm9yKQog
ewogICAgIGZvciAoYXV0byYgbm90aWZpZXIgOiBub3RpZmllcnMpCiAgICAgICAgIG5vdGlmaWVy
LT5ydW5FcnJvckNhbGxiYWNrKGVycm9yKTsKIH0KIAotdm9pZCBHZW9sb2NhdGlvbjo6c2VuZFBv
c2l0aW9uKEdlb05vdGlmaWVyVmVjdG9yJiBub3RpZmllcnMsIEdlb3Bvc2l0aW9uJiBwb3NpdGlv
bikKK3ZvaWQgR2VvbG9jYXRpb246OnNlbmRQb3NpdGlvbihHZW9Ob3RpZmllclZlY3RvciYgbm90
aWZpZXJzLCBHZW9sb2NhdGlvblBvc2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBmb3IgKGF1dG8m
IG5vdGlmaWVyIDogbm90aWZpZXJzKQogICAgICAgICBub3RpZmllci0+cnVuU3VjY2Vzc0NhbGxi
YWNrKCZwb3NpdGlvbik7CkBAIC01NjUsNyArNTY0LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3Rv
cFRpbWVycygpCiB2b2lkIEdlb2xvY2F0aW9uOjpjYW5jZWxSZXF1ZXN0cyhHZW9Ob3RpZmllclZl
Y3RvciYgbm90aWZpZXJzKQogewogICAgIGZvciAoYXV0byYgbm90aWZpZXIgOiBub3RpZmllcnMp
Ci0gICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQ
b3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgZnJhbWVsZXNzRG9jdW1lbnRFcnJv
ck1lc3NhZ2UpKTsKKyAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQT1NJVElPTl9V
TkFWQUlMQUJMRSwgZnJhbWVsZXNzRG9jdW1lbnRFcnJvck1lc3NhZ2UpKTsKIH0KIAogdm9pZCBH
ZW9sb2NhdGlvbjo6Y2FuY2VsQWxsUmVxdWVzdHMoKQpAQCAtNTk1LDcgKzU5NCw3IEBAIHZvaWQg
R2VvbG9jYXRpb246OmNvcHlUb1NldChjb25zdCBHZW9Ob3RpZmllclZlY3RvciYgc3JjLCBHZW9O
b3RpZmllclNldCYgZGVzdCkKICAgICAgICAgZGVzdC5hZGQobm90aWZpZXIuZ2V0KCkpOwogfQog
Ci12b2lkIEdlb2xvY2F0aW9uOjpoYW5kbGVFcnJvcihQb3NpdGlvbkVycm9yJiBlcnJvcikKK3Zv
aWQgR2VvbG9jYXRpb246OmhhbmRsZUVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciYgZXJy
b3IpCiB7CiAgICAgYXV0byBvbmVTaG90c0NvcHkgPSBjb3B5VG9WZWN0b3IobV9vbmVTaG90cyk7
CiAKQEAgLTY0Myw3ICs2NDIsNyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lv
bigpCiAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5yZXF1ZXN0UGVybWlz
c2lvbigqdGhpcyk7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb246Om1ha2VTdWNjZXNzQ2FsbGJhY2tz
KEdlb3Bvc2l0aW9uJiBwb3NpdGlvbikKK3ZvaWQgR2VvbG9jYXRpb246Om1ha2VTdWNjZXNzQ2Fs
bGJhY2tzKEdlb2xvY2F0aW9uUG9zaXRpb24mIHBvc2l0aW9uKQogewogICAgIEFTU0VSVChsYXN0
UG9zaXRpb24oKSk7CiAgICAgQVNTRVJUKGlzQWxsb3dlZCgpKTsKQEAgLTY3Nyw3ICs2NzYsNyBA
QCB2b2lkIEdlb2xvY2F0aW9uOjpwb3NpdGlvbkNoYW5nZWQoKQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgUmVmUHRyPEdlb3Bvc2l0aW9uPiBwb3NpdGlvbiA9IGxhc3RQb3NpdGlvbigp
OworICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3NpdGlvbiA9IGxhc3RQb3NpdGlv
bigpOwogICAgIEFTU0VSVChwb3NpdGlvbik7CiAKICAgICBtYWtlU3VjY2Vzc0NhbGxiYWNrcygq
cG9zaXRpb24pOwpAQCAtNjg2LDExICs2ODUsMTEgQEAgdm9pZCBHZW9sb2NhdGlvbjo6cG9zaXRp
b25DaGFuZ2VkKCkKIHZvaWQgR2VvbG9jYXRpb246OnNldEVycm9yKEdlb2xvY2F0aW9uRXJyb3Im
IGVycm9yKQogewogICAgIGlmIChtX2lzU3VzcGVuZGVkKSB7Ci0gICAgICAgIG1fZXJyb3JXYWl0
aW5nRm9yUmVzdW1lID0gY3JlYXRlUG9zaXRpb25FcnJvcihlcnJvcik7CisgICAgICAgIG1fZXJy
b3JXYWl0aW5nRm9yUmVzdW1lID0gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKGVycm9y
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcG9zaXRpb25FcnJvciA9IGNy
ZWF0ZVBvc2l0aW9uRXJyb3IoZXJyb3IpOworICAgIGF1dG8gcG9zaXRpb25FcnJvciA9IGNyZWF0
ZUdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcihlcnJvcik7CiAgICAgaGFuZGxlRXJyb3IocG9zaXRp
b25FcnJvcik7CiB9CiAKQEAgLTcyNCw5ICs3MjMsOSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpoYW5k
bGVQZW5kaW5nUGVybWlzc2lvbk5vdGlmaWVycygpCiAgICAgICAgICAgICBpZiAoc3RhcnRVcGRh
dGluZyhub3RpZmllci5nZXQoKSkpCiAgICAgICAgICAgICAgICAgbm90aWZpZXItPnN0YXJ0VGlt
ZXJJZk5lZWRlZCgpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG5vdGlmaWVy
LT5zZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQT1NJ
VElPTl9VTkFWQUlMQUJMRSwgZmFpbGVkVG9TdGFydFNlcnZpY2VFcnJvck1lc3NhZ2UpKTsKKyAg
ICAgICAgICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihHZW9sb2NhdGlvblBvc2l0aW9u
RXJyb3I6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxB
QkxFLCBmYWlsZWRUb1N0YXJ0U2VydmljZUVycm9yTWVzc2FnZSkpOwogICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0
ZShQb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9y
TWVzc2FnZSkpOworICAgICAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRp
b25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNT
SU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZSkpOwogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCmlu
ZGV4IDJhMDE5OGVlY2RjLi40NjBjOTEyMTg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaApAQCAtMzAsOSArMzAsOSBAQAogCiAjaW5j
bHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRl
ICJHZW9wb3NpdGlvbi5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKKyNpbmNs
dWRlICJHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaCIKICNpbmNsdWRlICJQb3NpdGlvbkNhbGxi
YWNrLmgiCi0jaW5jbHVkZSAiUG9zaXRpb25FcnJvci5oIgogI2luY2x1ZGUgIlBvc2l0aW9uRXJy
b3JDYWxsYmFjay5oIgogI2luY2x1ZGUgIlBvc2l0aW9uT3B0aW9ucy5oIgogI2luY2x1ZGUgIlNj
cmlwdFdyYXBwYWJsZS5oIgpAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IEdlb2xvY2F0aW9uKE5hdmlnYXRvciYpOwogCi0gICAgR2VvcG9zaXRpb24qIGxh
c3RQb3NpdGlvbigpOworICAgIEdlb2xvY2F0aW9uUG9zaXRpb24qIGxhc3RQb3NpdGlvbigpOwog
CiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CkBAIC0x
MTUsOCArMTE1LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaGFzTGlzdGVuZXJzKCkgY29uc3Qg
eyByZXR1cm4gIW1fb25lU2hvdHMuaXNFbXB0eSgpIHx8ICFtX3dhdGNoZXJzLmlzRW1wdHkoKTsg
fQogCi0gICAgdm9pZCBzZW5kRXJyb3IoR2VvTm90aWZpZXJWZWN0b3ImLCBQb3NpdGlvbkVycm9y
Jik7Ci0gICAgdm9pZCBzZW5kUG9zaXRpb24oR2VvTm90aWZpZXJWZWN0b3ImLCBHZW9wb3NpdGlv
biYpOworICAgIHZvaWQgc2VuZEVycm9yKEdlb05vdGlmaWVyVmVjdG9yJiwgR2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yJik7CisgICAgdm9pZCBzZW5kUG9zaXRpb24oR2VvTm90aWZpZXJWZWN0b3Im
LCBHZW9sb2NhdGlvblBvc2l0aW9uJik7CiAKICAgICBzdGF0aWMgdm9pZCBleHRyYWN0Tm90aWZp
ZXJzV2l0aENhY2hlZFBvc2l0aW9uKEdlb05vdGlmaWVyVmVjdG9yJiBub3RpZmllcnMsIEdlb05v
dGlmaWVyVmVjdG9yKiBjYWNoZWQpOwogICAgIHN0YXRpYyB2b2lkIGNvcHlUb1NldChjb25zdCBH
ZW9Ob3RpZmllclZlY3RvciYsIEdlb05vdGlmaWVyU2V0Jik7CkBAIC0xMjksOCArMTI5LDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIGNhbmNlbFJlcXVlc3RzKEdlb05vdGlmaWVyVmVjdG9yJik7CiAg
ICAgdm9pZCBjYW5jZWxBbGxSZXF1ZXN0cygpOwogCi0gICAgdm9pZCBtYWtlU3VjY2Vzc0NhbGxi
YWNrcyhHZW9wb3NpdGlvbiYpOwotICAgIHZvaWQgaGFuZGxlRXJyb3IoUG9zaXRpb25FcnJvciYp
OworICAgIHZvaWQgbWFrZVN1Y2Nlc3NDYWxsYmFja3MoR2VvbG9jYXRpb25Qb3NpdGlvbiYpOwor
ICAgIHZvaWQgaGFuZGxlRXJyb3IoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yJik7CiAKICAgICB2
b2lkIHJlcXVlc3RQZXJtaXNzaW9uKCk7CiAKQEAgLTE1MywxMyArMTUzLDEzIEBAIHByaXZhdGU6
CiAgICAgR2VvTm90aWZpZXJTZXQgbV9vbmVTaG90czsKICAgICBXYXRjaGVycyBtX3dhdGNoZXJz
OwogICAgIEdlb05vdGlmaWVyU2V0IG1fcGVuZGluZ0ZvclBlcm1pc3Npb25Ob3RpZmllcnM7Ci0g
ICAgUmVmUHRyPEdlb3Bvc2l0aW9uPiBtX2xhc3RQb3NpdGlvbjsKKyAgICBSZWZQdHI8R2VvbG9j
YXRpb25Qb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247CiAKICAgICBlbnVtIHsgVW5rbm93biwgSW5Q
cm9ncmVzcywgWWVzLCBObyB9IG1fYWxsb3dHZW9sb2NhdGlvbiB7IFVua25vd24gfTsKICAgICBi
b29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9yZXNldE9uUmVzdW1lIHsg
ZmFsc2UgfTsKICAgICBib29sIG1faGFzQ2hhbmdlZFBvc2l0aW9uIHsgZmFsc2UgfTsKLSAgICBS
ZWZQdHI8UG9zaXRpb25FcnJvcj4gbV9lcnJvcldhaXRpbmdGb3JSZXN1bWU7CisgICAgUmVmUHRy
PEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gbV9lcnJvcldhaXRpbmdGb3JSZXN1bWU7CiAgICAg
VGltZXIgbV9yZXN1bWVUaW1lcjsKICAgICBHZW9Ob3RpZmllclNldCBtX3JlcXVlc3RzQXdhaXRp
bmdDYWNoZWRQb3NpdGlvbjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xpZW50LmgKaW5kZXggZTdlMGU3NmQ0MGYuLjI5NzAz
ZmJiN2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbkNsaWVudC5oCkBAIC0zMCw3ICszMCw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEdlb2xvY2F0aW9uOwotY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKK2Ns
YXNzIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOwogY2xhc3MgUGFnZTsKIAogY2xhc3MgR2VvbG9j
YXRpb25DbGllbnQgewpAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgLy8gV2Ugc2hvdWxk
IHVwZGF0ZSBXZWJLaXQgdG8gcmVmbGVjdCB0aGlzIGlmIGFuZCB3aGVuIHRoZSBWMiBzcGVjaWZp
Y2F0aW9uCiAgICAgLy8gaXMgcHVibGlzaGVkLgogICAgIHZpcnR1YWwgdm9pZCBzZXRFbmFibGVI
aWdoQWNjdXJhY3koYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgT3B0aW9uYWw8R2VvbG9jYXRpb25Q
b3NpdGlvbj4gbGFzdFBvc2l0aW9uKCkgPSAwOworICAgIHZpcnR1YWwgT3B0aW9uYWw8R2VvbG9j
YXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlvbigpID0gMDsKIAogICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0UGVybWlzc2lvbihHZW9sb2NhdGlvbiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
Y2FuY2VsUGVybWlzc2lvblJlcXVlc3QoR2VvbG9jYXRpb24mKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJv
bGxlci5jcHAKaW5kZXggY2Q4MDcwYjIwN2QuLmM2YTI4MmZjZTkzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRy
b2xsZXIuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAKICNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVu
dC5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uRXJyb3IuaCIKLSNpbmNsdWRlICJHZW9sb2NhdGlv
blBvc2l0aW9uLmgiCisjaW5jbHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgR2VvbG9jYXRpb25Db250
cm9sbGVyOjpjYW5jZWxQZXJtaXNzaW9uUmVxdWVzdChHZW9sb2NhdGlvbiYgZ2VvbG9jYXRpb24p
CiAgICAgbV9jbGllbnQuY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoZ2VvbG9jYXRpb24pOwogfQog
Ci12b2lkIEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6cG9zaXRpb25DaGFuZ2VkKGNvbnN0IE9wdGlv
bmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+JiBwb3NpdGlvbikKK3ZvaWQgR2VvbG9jYXRpb25Db250
cm9sbGVyOjpwb3NpdGlvbkNoYW5nZWQoY29uc3QgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlv
bkRhdGE+JiBwb3NpdGlvbikKIHsKICAgICBtX2xhc3RQb3NpdGlvbiA9IHBvc2l0aW9uOwogICAg
IFZlY3RvcjxSZWY8R2VvbG9jYXRpb24+PiBvYnNlcnZlcnNWZWN0b3I7CkBAIC0xMjAsNyArMTIw
LDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmVycm9yT2NjdXJyZWQoR2VvbG9jYXRp
b25FcnJvciYgZXJyb3IpCiAgICAgICAgIG9ic2VydmVyLT5zZXRFcnJvcihlcnJvcik7CiB9CiAK
LU9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+IEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6bGFz
dFBvc2l0aW9uKCkKK09wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBHZW9sb2NhdGlv
bkNvbnRyb2xsZXI6Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgaWYgKG1fbGFzdFBvc2l0aW9uKQog
ICAgICAgICByZXR1cm4gbV9sYXN0UG9zaXRpb24udmFsdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5o
CmluZGV4IDBjNzA0OWJhMTAxLi41NDkzNGQ3OWEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oCkBA
IC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR2VvbG9jYXRpb25D
bGllbnQ7CiBjbGFzcyBHZW9sb2NhdGlvbkVycm9yOwotY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlv
bjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOwogCiBjbGFzcyBHZW9sb2NhdGlvbkNv
bnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdlPiwgcHJpdmF0ZSBBY3Rpdml0eVN0YXRl
Q2hhbmdlT2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNTMsMTAg
KzUzLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKEdlb2xvY2F0aW9u
Jik7CiAgICAgdm9pZCBjYW5jZWxQZXJtaXNzaW9uUmVxdWVzdChHZW9sb2NhdGlvbiYpOwogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3NpdGlvbkNoYW5nZWQoY29uc3QgT3B0aW9uYWw8R2Vv
bG9jYXRpb25Qb3NpdGlvbj4mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc2l0aW9uQ2hh
bmdlZChjb25zdCBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4mKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGVycm9yT2NjdXJyZWQoR2VvbG9jYXRpb25FcnJvciYpOwogCi0gICAg
T3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbGFzdFBvc2l0aW9uKCk7CisgICAgT3B0aW9u
YWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlvbigpOwogCiAgICAgR2VvbG9j
YXRpb25DbGllbnQmIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKQEAgLTY5LDcgKzY5
LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgYWN0aXZpdHlTdGF0ZURpZENoYW5nZShPcHRpb25T
ZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4gb2xkQWN0aXZpdHlTdGF0ZSwgT3B0aW9uU2V0PEFjdGl2
aXR5U3RhdGU6OkZsYWc+IG5ld0FjdGl2aXR5U3RhdGUpIG92ZXJyaWRlOwogCi0gICAgT3B0aW9u
YWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247CisgICAgT3B0aW9uYWw8R2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGE+IG1fbGFzdFBvc2l0aW9uOwogCiAgICAgdHlwZWRlZiBIYXNo
U2V0PFJlZjxHZW9sb2NhdGlvbj4+IE9ic2VydmVyc1NldDsKICAgICAvLyBBbGwgb2JzZXJ2ZXJz
OyBib3RoIHRob3NlIHJlcXVlc3RpbmcgaGlnaCBhY2N1cmFjeSBhbmQgdGhvc2Ugbm90LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRp
bmF0ZXMuY3BwCnNpbWlsYXJpdHkgaW5kZXggOTIlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuY3BwCnJlbmFtZSB0byBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwCmluZGV4
IDljZWJkZmMwZjY1Li5lMmViMGRjYTAzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcApAQCAtMjQsMTEgKzI0
LDExIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNvb3JkaW5hdGVz
LmgiCisjaW5jbHVkZSAiR2VvbG9jYXRpb25Db29yZGluYXRlcy5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLUNvb3JkaW5hdGVzOjpDb29yZGluYXRlcyhHZW9sb2NhdGlvblBvc2l0aW9uJiYg
cG9zaXRpb24pCitHZW9sb2NhdGlvbkNvb3JkaW5hdGVzOjpHZW9sb2NhdGlvbkNvb3JkaW5hdGVz
KEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYgcG9zaXRpb24pCiAgICAgOiBtX3Bvc2l0aW9uKFdU
Rk1vdmUocG9zaXRpb24pKQogewogICAgIEFTU0VSVChtX3Bvc2l0aW9uLmlzVmFsaWQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRp
bmF0ZXMuaApzaW1pbGFyaXR5IGluZGV4IDgwJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5oCmluZGV4IDZkNTE4
MjgyYWVjLi44NzUxY2FjNDc0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9Db29yZGluYXRlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5oCkBAIC0yNSwyMyArMjUsMjMgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCisjaW5jbHVk
ZSAiR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDb29yZGluYXRlcyA6IHB1YmxpYyBSZWZDb3VudGVk
PENvb3JkaW5hdGVzPiB7CitjbGFzcyBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzIDogcHVibGljIFJl
ZkNvdW50ZWQ8R2VvbG9jYXRpb25Db29yZGluYXRlcz4gewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8Q29vcmRpbmF0ZXM+IGNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uJiYgcG9zaXRpb24pCisg
ICAgc3RhdGljIFJlZjxHZW9sb2NhdGlvbkNvb3JkaW5hdGVzPiBjcmVhdGUoR2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGEmJiBwb3NpdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IENvb3JkaW5hdGVzKFdURk1vdmUocG9zaXRpb24pKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMoV1RGTW92ZShwb3NpdGlvbikpKTsKICAg
ICB9CiAKLSAgICBSZWY8Q29vcmRpbmF0ZXM+IGlzb2xhdGVkQ29weSgpIGNvbnN0CisgICAgUmVm
PEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXM+IGlzb2xhdGVkQ29weSgpIGNvbnN0CiAgICAgewotICAg
ICAgICByZXR1cm4gQ29vcmRpbmF0ZXM6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uKG1fcG9z
aXRpb24pKTsKKyAgICAgICAgcmV0dXJuIEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXM6OmNyZWF0ZShH
ZW9sb2NhdGlvblBvc2l0aW9uRGF0YShtX3Bvc2l0aW9uKSk7CiAgICAgfQogCiAgICAgZG91Ymxl
IGxhdGl0dWRlKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5sYXRpdHVkZTsgfQpAQCAtNTQs
OSArNTQsOSBAQCBwdWJsaWM6CiAgICAgT3B0aW9uYWw8ZG91YmxlPiBmbG9vckxldmVsKCkgY29u
c3QgeyByZXR1cm4gbV9wb3NpdGlvbi5mbG9vckxldmVsOyB9CiAgICAgCiBwcml2YXRlOgotICAg
IGV4cGxpY2l0IENvb3JkaW5hdGVzKEdlb2xvY2F0aW9uUG9zaXRpb24mJik7CisgICAgZXhwbGlj
aXQgR2VvbG9jYXRpb25Db29yZGluYXRlcyhHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKTsKIAot
ICAgIEdlb2xvY2F0aW9uUG9zaXRpb24gbV9wb3NpdGlvbjsKKyAgICBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YSBtX3Bvc2l0aW9uOwogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMu
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3Jk
aW5hdGVzLmlkbApzaW1pbGFyaXR5IGluZGV4IDkzJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmlkbApyZW5hbWUgdG8gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmlkbAppbmRl
eCAyZjVjZWZiMGZjMC4uZmYzOTU2NGM0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5pZGwKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsMTAgKzI0LDkg
QEAKICAqLwogCiBbCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9R0VP
TE9DQVRJT04sCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRlcmZhY2UgQ29v
cmRpbmF0ZXMgeworXSBpbnRlcmZhY2UgR2VvbG9jYXRpb25Db29yZGluYXRlcyB7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbGF0aXR1ZGU7CiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbG9uZ2l0dWRlOwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlPyBhbHRpdHVkZTsKQEAgLTM1LDUgKzM0LDcg
QEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gYWx0aXR1ZGVB
Y2N1cmFjeTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gaGVh
ZGluZzsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gc3BlZWQ7
CisgICAgCisgICAgLy8gTm9uIHN0YW5kYXJkLgogICAgIFtFbmFibGVkQnlTZXR0aW5nPUdlb2xv
Y2F0aW9uRmxvb3JMZXZlbF0gcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGU/
IGZsb29yTGV2ZWw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaAppbmRleCBkNjlkYjU0M2Y4ZS4uYjkxMDAw
NTI4ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2Vv
bG9jYXRpb25Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Qb3NpdGlvbi5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwLDEwOCArMTAsNTIgQEAKICAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKICAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCiAjcHJhZ21h
IG9uY2UKIAotI2luY2x1ZGUgPGNtYXRoPgotI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgotI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIKKyNpbmNsdWRlICJH
ZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQot
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1PQkpDX0NMQVNTIENMTG9jYXRpb247Ci0jZW5kaWYK
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uIHsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb24g
OiBwdWJsaWMgUmVmQ291bnRlZDxHZW9sb2NhdGlvblBvc2l0aW9uPiB7CiBwdWJsaWM6Ci0gICAg
R2VvbG9jYXRpb25Qb3NpdGlvbigpID0gZGVmYXVsdDsKLQotICAgIEdlb2xvY2F0aW9uUG9zaXRp
b24oZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBk
b3VibGUgYWNjdXJhY3kpCi0gICAgICAgIDogdGltZXN0YW1wKHRpbWVzdGFtcCkKLSAgICAgICAg
LCBsYXRpdHVkZShsYXRpdHVkZSkKLSAgICAgICAgLCBsb25naXR1ZGUobG9uZ2l0dWRlKQotICAg
ICAgICAsIGFjY3VyYWN5KGFjY3VyYWN5KQorICAgIHN0YXRpYyBSZWY8R2VvbG9jYXRpb25Qb3Np
dGlvbj4gY3JlYXRlKFJlZjxHZW9sb2NhdGlvbkNvb3JkaW5hdGVzPiYmIGNvb3JkaW5hdGVzLCBE
T01UaW1lU3RhbXAgdGltZXN0YW1wKQogICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgR2VvbG9jYXRpb25Qb3NpdGlvbihXVEZNb3ZlKGNvb3JkaW5hdGVzKSwgdGltZXN0YW1wKSk7
CiAgICAgfQogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBXRUJDT1JFX0VYUE9SVCBl
eHBsaWNpdCBHZW9sb2NhdGlvblBvc2l0aW9uKENMTG9jYXRpb24qKTsKLSNlbmRpZgotCi0gICAg
ZG91YmxlIHRpbWVzdGFtcCB7IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFO
KCkgfTsKLQotICAgIGRvdWJsZSBsYXRpdHVkZSB7IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91Ymxl
Pjo6cXVpZXRfTmFOKCkgfTsKLSAgICBkb3VibGUgbG9uZ2l0dWRlIHsgc3RkOjpudW1lcmljX2xp
bWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OwotICAgIGRvdWJsZSBhY2N1cmFjeSB7IHN0ZDo6
bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsKLQotICAgIE9wdGlvbmFsPGRv
dWJsZT4gYWx0aXR1ZGU7Ci0gICAgT3B0aW9uYWw8ZG91YmxlPiBhbHRpdHVkZUFjY3VyYWN5Owot
ICAgIE9wdGlvbmFsPGRvdWJsZT4gaGVhZGluZzsKLSAgICBPcHRpb25hbDxkb3VibGU+IHNwZWVk
OwotICAgIE9wdGlvbmFsPGRvdWJsZT4gZmxvb3JMZXZlbDsKKyAgICBSZWY8R2VvbG9jYXRpb25Q
b3NpdGlvbj4gaXNvbGF0ZWRDb3B5KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBjcmVh
dGUobV9jb29yZGluYXRlcy0+aXNvbGF0ZWRDb3B5KCksIG1fdGltZXN0YW1wKTsKKyAgICB9CiAK
LSAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKKyAgICBET01UaW1lU3RhbXAgdGltZXN0YW1wKCkg
Y29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KKyAgICBjb25zdCBHZW9sb2NhdGlvbkNvb3Jk
aW5hdGVzJiBjb29yZHMoKSBjb25zdCB7IHJldHVybiBtX2Nvb3JkaW5hdGVzLmdldCgpOyB9Cisg
ICAgCitwcml2YXRlOgorICAgIEdlb2xvY2F0aW9uUG9zaXRpb24oUmVmPEdlb2xvY2F0aW9uQ29v
cmRpbmF0ZXM+JiYgY29vcmRpbmF0ZXMsIERPTVRpbWVTdGFtcCB0aW1lc3RhbXApCisgICAgICAg
IDogbV9jb29yZGluYXRlcyhXVEZNb3ZlKGNvb3JkaW5hdGVzKSkKKyAgICAgICAgLCBtX3RpbWVz
dGFtcCh0aW1lc3RhbXApCisgICAgeworICAgIH0KIAotICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIEdlb2xvY2F0aW9uUG9zaXRpb24mKTsK
KyAgICBSZWY8R2VvbG9jYXRpb25Db29yZGluYXRlcz4gbV9jb29yZGluYXRlczsKKyAgICBET01U
aW1lU3RhbXAgbV90aW1lc3RhbXA7CiB9OwotCi10ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgotdm9p
ZCBHZW9sb2NhdGlvblBvc2l0aW9uOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsK
LSAgICBlbmNvZGVyIDw8IHRpbWVzdGFtcDsKLSAgICBlbmNvZGVyIDw8IGxhdGl0dWRlOwotICAg
IGVuY29kZXIgPDwgbG9uZ2l0dWRlOwotICAgIGVuY29kZXIgPDwgYWNjdXJhY3k7Ci0gICAgZW5j
b2RlciA8PCBhbHRpdHVkZTsKLSAgICBlbmNvZGVyIDw8IGFsdGl0dWRlQWNjdXJhY3k7Ci0gICAg
ZW5jb2RlciA8PCBoZWFkaW5nOwotICAgIGVuY29kZXIgPDwgc3BlZWQ7Ci0gICAgZW5jb2RlciA8
PCBmbG9vckxldmVsOwotfQotCi10ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgotYm9vbCBHZW9sb2Nh
dGlvblBvc2l0aW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgR2VvbG9jYXRpb25Qb3NpdGlv
biYgcG9zaXRpb24pCi17Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi50aW1lc3Rh
bXApKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3Np
dGlvbi5sYXRpdHVkZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBvc2l0aW9uLmxvbmdpdHVkZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmFjY3VyYWN5KSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24uYWx0aXR1ZGUpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5hbHRpdHVk
ZUFjY3VyYWN5KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocG9zaXRpb24uaGVhZGluZykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBvc2l0aW9uLnNwZWVkKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24uZmxvb3JMZXZlbCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi1pbmxpbmUgYm9vbCBHZW9sb2NhdGlv
blBvc2l0aW9uOjppc1ZhbGlkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gIXN0ZDo6aXNuYW4odGlt
ZXN0YW1wKSAmJiAhc3RkOjppc25hbihsYXRpdHVkZSkgJiYgIXN0ZDo6aXNuYW4obG9uZ2l0dWRl
KSAmJiAhc3RkOjppc25hbihhY2N1cmFjeSk7Ci19Ci0KKyAgICAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2Vv
cG9zaXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvblBvc2l0aW9uLmlkbApzaW1pbGFyaXR5IGluZGV4IDkwJQpyZW5hbWUgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bvc2l0aW9uLmlkbApyZW5hbWUgdG8gU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbApp
bmRleCBiZjhjYjA5YjJmYi4uNjMyZjhkOWZhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbi5pZGwKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsMTAgKzI0LDkg
QEAKICAqLwogCiBbCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9R0VP
TE9DQVRJT04sCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRlcmZhY2UgR2Vv
cG9zaXRpb24gewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDb29yZGluYXRlcyBjb29yZHM7Citd
IGludGVyZmFjZSBHZW9sb2NhdGlvblBvc2l0aW9uIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
R2VvbG9jYXRpb25Db29yZGluYXRlcyBjb29yZHM7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVRpbWVTdGFtcCB0aW1lc3RhbXA7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kYzJiNGUzNDVjMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEuaApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOS0y
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCitPQkpDX0NMQVNTIENMTG9jYXRpb247CisjZW5kaWYKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSB7CitwdWJsaWM6
CisgICAgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoKSA9IGRlZmF1bHQ7CisKKyAgICBHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YShkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJs
ZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKKyAgICAgICAgOiB0aW1lc3RhbXAodGltZXN0
YW1wKQorICAgICAgICAsIGxhdGl0dWRlKGxhdGl0dWRlKQorICAgICAgICAsIGxvbmdpdHVkZShs
b25naXR1ZGUpCisgICAgICAgICwgYWNjdXJhY3koYWNjdXJhY3kpCisgICAgeworICAgIH0KKwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgR2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGEoQ0xMb2NhdGlvbiopOworI2VuZGlmCisKKyAgICBkb3VibGUg
dGltZXN0YW1wIHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9Owor
CisgICAgZG91YmxlIGxhdGl0dWRlIHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWll
dF9OYU4oKSB9OworICAgIGRvdWJsZSBsb25naXR1ZGUgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRv
dWJsZT46OnF1aWV0X05hTigpIH07CisgICAgZG91YmxlIGFjY3VyYWN5IHsgc3RkOjpudW1lcmlj
X2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OworCisgICAgT3B0aW9uYWw8ZG91YmxlPiBh
bHRpdHVkZTsKKyAgICBPcHRpb25hbDxkb3VibGU+IGFsdGl0dWRlQWNjdXJhY3k7CisgICAgT3B0
aW9uYWw8ZG91YmxlPiBoZWFkaW5nOworICAgIE9wdGlvbmFsPGRvdWJsZT4gc3BlZWQ7CisgICAg
T3B0aW9uYWw8ZG91YmxlPiBmbG9vckxldmVsOworCisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7
CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4KK3ZvaWQgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdGltZXN0YW1wOworICAgIGVuY29kZXIgPDwg
bGF0aXR1ZGU7CisgICAgZW5jb2RlciA8PCBsb25naXR1ZGU7CisgICAgZW5jb2RlciA8PCBhY2N1
cmFjeTsKKyAgICBlbmNvZGVyIDw8IGFsdGl0dWRlOworICAgIGVuY29kZXIgPDwgYWx0aXR1ZGVB
Y2N1cmFjeTsKKyAgICBlbmNvZGVyIDw8IGhlYWRpbmc7CisgICAgZW5jb2RlciA8PCBzcGVlZDsK
KyAgICBlbmNvZGVyIDw8IGZsb29yTGV2ZWw7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+
Citib29sIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmIHBvc2l0aW9uKQoreworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocG9zaXRpb24udGltZXN0YW1wKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24ubGF0aXR1ZGUpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5sb25naXR1ZGUpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5hY2N1cmFj
eSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0
aW9uLmFsdGl0dWRlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocG9zaXRpb24uYWx0aXR1ZGVBY2N1cmFjeSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmhlYWRpbmcpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5zcGVlZCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmZsb29y
TGV2ZWwpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
aW5saW5lIGJvb2wgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6OmlzVmFsaWQoKSBjb25zdAorewor
ICAgIHJldHVybiAhc3RkOjppc25hbih0aW1lc3RhbXApICYmICFzdGQ6OmlzbmFuKGxhdGl0dWRl
KSAmJiAhc3RkOjppc25hbihsb25naXR1ZGUpICYmICFzdGQ6OmlzbmFuKGFjY3VyYWN5KTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oCnNpbWlsYXJpdHkgaW5kZXgg
ODclCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRp
b25FcnJvci5oCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uUG9zaXRpb25FcnJvci5oCmluZGV4IDI2NDIyZWY5YjZkLi4wYTQ0ZTFlMjdiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVy
cm9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3IuaApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgCi1jbGFzcyBQb3NpdGlvbkVycm9yIDogcHVibGljIFJlZkNvdW50ZWQ8UG9zaXRpb25F
cnJvcj4geworY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yIDogcHVibGljIFJlZkNvdW50
ZWQ8R2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yPiB7CiBwdWJsaWM6CiAgICAgZW51bSBFcnJvckNv
ZGUgewogICAgICAgICBQRVJNSVNTSU9OX0RFTklFRCA9IDEsCkBAIC0zOCw3ICszOCw3IEBAIHB1
YmxpYzoKICAgICAgICAgVElNRU9VVCA9IDMKICAgICB9OwogICAgIAotICAgIHN0YXRpYyBSZWY8
UG9zaXRpb25FcnJvcj4gY3JlYXRlKEVycm9yQ29kZSBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUG9zaXRpb25FcnJvcihjb2RlLCBtZXNzYWdlKSk7
IH0KKyAgICBzdGF0aWMgUmVmPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gY3JlYXRlKEVycm9y
Q29kZSBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
R2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKGNvZGUsIG1lc3NhZ2UpKTsgfQogCiAgICAgRXJyb3JD
b2RlIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KICAgICBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KQEAgLTQ2LDcgKzQ2LDcgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNGYXRhbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNGYXRhbDsgfQogICAg
IAogcHJpdmF0ZToKLSAgICBQb3NpdGlvbkVycm9yKEVycm9yQ29kZSBjb2RlLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpIAorICAgIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcihFcnJvckNvZGUgY29k
ZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgICAgICA6IG1fY29kZShjb2RlKQogICAgICAg
ICAsIG1fbWVzc2FnZShtZXNzYWdlKQogICAgICAgICAsIG1faXNGYXRhbChmYWxzZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRp
b25FcnJvci5pZGwKc2ltaWxhcml0eSBpbmRleCA5MyUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbApyZW5hbWUgdG8gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRs
CmluZGV4IDVjMWYzYTI3MmE2Li4zNGE1YzA3NGU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQs
MTUgKzI0LDEzIEBACiAgKi8KIAogWwotICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogICAgIENvbmRp
dGlvbmFsPUdFT0xPQ0FUSU9OLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKLV0gaW50
ZXJmYWNlIFBvc2l0aW9uRXJyb3IgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBz
aG9ydCBjb2RlOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVzc2FnZTsKLQor
XSBpbnRlcmZhY2UgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yIHsKICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBQRVJNSVNTSU9OX0RFTklFRCA9IDE7CiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
UE9TSVRJT05fVU5BVkFJTEFCTEUgPSAyOwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFRJTUVP
VVQgPSAzOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBjb2RlOworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVzc2FnZTsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNWEzMzBkZTU4ZTIuLjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaAorKysgL2Rldi9udWxsCkBA
IC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0g
Ki8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDb29yZGluYXRlcy5oIgotI2luY2x1ZGUg
IkRPTVRpbWVTdGFtcC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgR2Vv
cG9zaXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxHZW9wb3NpdGlvbj4gewotcHVibGljOgotICAg
IHN0YXRpYyBSZWY8R2VvcG9zaXRpb24+IGNyZWF0ZShSZWY8Q29vcmRpbmF0ZXM+JiYgY29vcmRp
bmF0ZXMsIERPTVRpbWVTdGFtcCB0aW1lc3RhbXApCi0gICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBHZW9wb3NpdGlvbihXVEZNb3ZlKGNvb3JkaW5hdGVzKSwgdGltZXN0YW1wKSk7
Ci0gICAgfQotCi0gICAgUmVmPEdlb3Bvc2l0aW9uPiBpc29sYXRlZENvcHkoKSBjb25zdAotICAg
IHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZShtX2Nvb3JkaW5hdGVzLT5pc29sYXRlZENvcHkoKSwg
bV90aW1lc3RhbXApOwotICAgIH0KLQotICAgIERPTVRpbWVTdGFtcCB0aW1lc3RhbXAoKSBjb25z
dCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQotICAgIGNvbnN0IENvb3JkaW5hdGVzJiBjb29yZHMo
KSBjb25zdCB7IHJldHVybiBtX2Nvb3JkaW5hdGVzLmdldCgpOyB9Ci0gICAgCi1wcml2YXRlOgot
ICAgIEdlb3Bvc2l0aW9uKFJlZjxDb29yZGluYXRlcz4mJiBjb29yZGluYXRlcywgRE9NVGltZVN0
YW1wIHRpbWVzdGFtcCkKLSAgICAgICAgOiBtX2Nvb3JkaW5hdGVzKFdURk1vdmUoY29vcmRpbmF0
ZXMpKQotICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKLSAgICB7Ci0gICAgfQotCi0g
ICAgUmVmPENvb3JkaW5hdGVzPiBtX2Nvb3JkaW5hdGVzOwotICAgIERPTVRpbWVTdGFtcCBtX3Rp
bWVzdGFtcDsKLX07Ci0gICAgCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5oCmluZGV4
IDRiNTczODI0MDg5Li5hMjc5NTM5OTFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmgKQEAgLTMxLDEzICszMSwxMyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEdlb3Bvc2l0aW9uOworY2xhc3MgR2Vv
bG9jYXRpb25Qb3NpdGlvbjsKIAogY2xhc3MgUG9zaXRpb25DYWxsYmFjayA6IHB1YmxpYyBSZWZD
b3VudGVkPFBvc2l0aW9uQ2FsbGJhY2s+LCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2sgewogcHVi
bGljOgogICAgIHVzaW5nIEFjdGl2ZURPTUNhbGxiYWNrOjpBY3RpdmVET01DYWxsYmFjazsKIAot
ICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQoR2VvcG9zaXRpb24q
KSA9IDA7CisgICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVFdmVudChHZW9s
b2NhdGlvblBvc2l0aW9uKikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxi
YWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxs
YmFjay5pZGwKaW5kZXggYWQ2NjFmNWVmYzIuLmQ1Y2U4NTYzNzA3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwK
QEAgLTI0LDQgKzI0LDQgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPUdFT0xPQ0FUSU9OLAotXSBj
YWxsYmFjayBQb3NpdGlvbkNhbGxiYWNrID0gdm9pZCAoR2VvcG9zaXRpb24/IHBvc2l0aW9uKTsg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4KK10gY2FsbGJhY2sgUG9zaXRp
b25DYWxsYmFjayA9IHZvaWQgKEdlb2xvY2F0aW9uUG9zaXRpb24/IHBvc2l0aW9uKTsgLy8gRklY
TUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5oCmluZGV4
IDQ4MTZiMWRiMWQzLi5hNzVlMDc4OGY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5oCkBAIC0zMSwx
MyArMzEsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBQb3NpdGlvbkVycm9y
OworY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOwogCiBjbGFzcyBQb3NpdGlvbkVycm9y
Q2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxQb3NpdGlvbkVycm9yQ2FsbGJhY2s+LCBwdWJs
aWMgQWN0aXZlRE9NQ2FsbGJhY2sgewogcHVibGljOgogICAgIHVzaW5nIEFjdGl2ZURPTUNhbGxi
YWNrOjpBY3RpdmVET01DYWxsYmFjazsKIAotICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9p
ZD4gaGFuZGxlRXZlbnQoUG9zaXRpb25FcnJvciYpID0gMDsKKyAgICB2aXJ0dWFsIENhbGxiYWNr
UmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciYpID0gMDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbAppbmRl
eCA1N2I0OTNjY2JmNS4uZmEwOTgwZTM2MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwKQEAg
LTI0LDQgKzI0LDQgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPUdFT0xPQ0FUSU9OLAotXSBjYWxs
YmFjayBQb3NpdGlvbkVycm9yQ2FsbGJhY2sgPSB2b2lkIChQb3NpdGlvbkVycm9yIGVycm9yKTsK
K10gY2FsbGJhY2sgUG9zaXRpb25FcnJvckNhbGxiYWNrID0gdm9pZCAoR2VvbG9jYXRpb25Qb3Np
dGlvbkVycm9yIGVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dlb2xvY2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5tbQpzaW1p
bGFyaXR5IGluZGV4IDk2JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tCnJlbmFtZSB0byBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5t
bQppbmRleCA1MTM2YTUxZTJiNi4uOThkOWEyNDIxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGFJT1MubW0KQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1HZW9sb2NhdGlvblBvc2l0aW9uOjpHZW9sb2NhdGlvblBvc2l0aW9uKENMTG9jYXRpb24qIGxv
Y2F0aW9uKQorR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRh
KENMTG9jYXRpb24qIGxvY2F0aW9uKQogICAgIDogdGltZXN0YW1wKGxvY2F0aW9uLnRpbWVzdGFt
cC50aW1lSW50ZXJ2YWxTaW5jZTE5NzApCiAgICAgLCBsYXRpdHVkZShsb2NhdGlvbi5jb29yZGlu
YXRlLmxhdGl0dWRlKQogICAgICwgbG9uZ2l0dWRlKGxvY2F0aW9uLmNvb3JkaW5hdGUubG9uZ2l0
dWRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAppbmRleCAwYTM4ZGQ0NmM3ZC4uZmZkNWViMDcyOGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC02NywxMCArNjcsMTAgQEAgTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3Bw
CiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCiBNb2R1bGVzL2ZldGNoL1dvcmtlckds
b2JhbFNjb3BlRmV0Y2guY3BwCiAKLU1vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuY3Bw
CiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcAogTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9s
bGVyLmNwcAorTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcAog
TW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAKIAogTW9kdWxlcy9p
bmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcApAQCAtMjY3Miw3ICsyNjcyLDYg
QEAgSlNDb21wb3NpdGVPcGVyYXRpb24uY3BwCiBKU0NvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0by5j
cHAKIEpTQ29tcHV0ZWRFZmZlY3RUaW1pbmcuY3BwCiBKU0NvbnZvbHZlck5vZGUuY3BwCi1KU0Nv
b3JkaW5hdGVzLmNwcAogSlNDb3VudFF1ZXVpbmdTdHJhdGVneS5jcHAKIEpTQ3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucy5jcHAKIEpTQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmNwcApAQCAtMjgz
MSw3ICsyODMwLDkgQEAgSlNHUFVWZXJ0ZXhCdWZmZXJEZXNjcmlwdG9yLmNwcAogSlNHUFVWZXJ0
ZXhJbnB1dERlc2NyaXB0b3IuY3BwCiBKU0dhaW5Ob2RlLmNwcAogSlNHZW9sb2NhdGlvbi5jcHAK
LUpTR2VvcG9zaXRpb24uY3BwCitKU0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwCitKU0dlb2xv
Y2F0aW9uUG9zaXRpb24uY3BwCitKU0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5jcHAKIEpTR2xv
YmFsQ3J5cHRvLmNwcAogSlNHbG9iYWxFdmVudEhhbmRsZXJzLmNwcAogSlNHbG9iYWxQZXJmb3Jt
YW5jZS5jcHAKQEAgLTMwNzIsNyArMzA3Myw2IEBAIEpTUGxheWJhY2tEaXJlY3Rpb24uY3BwCiBK
U1BvaW50ZXJFdmVudC5jcHAKIEpTUG9wU3RhdGVFdmVudC5jcHAKIEpTUG9zaXRpb25DYWxsYmFj
ay5jcHAKLUpTUG9zaXRpb25FcnJvci5jcHAKIEpTUG9zaXRpb25FcnJvckNhbGxiYWNrLmNwcAog
SlNQb3NpdGlvbk9wdGlvbnMuY3BwCiBKU1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAz
ODUyZDNkMzkzNy4uYmU0ODMyMzk2NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIzOTIsNyArMjM5Miw3IEBACiAJCTgzNzJE
QjMxMUE2NzgwQTgwMEM2OTdDNSAvKiBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNzJEQjMwMUE2Nzgw
QTgwMEM2OTdDNSAvKiBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4Mzc2NUY5NTFEQUM1MjJGMDBD
MDY1MzcgLyogTW91c2VFdmVudEluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzNzY1Rjk0MURBQzUyMTgwMEMwNjUzNyAvKiBNb3VzZUV2ZW50SW5p
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgz
NzkzNjNGMUZCQkIwQjQwMEM4MDIzQyAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3OTM2M0UxRkJCQjBB
NTAwQzgwMjNDIC8qIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJODM3OTY0Q0YxRjhEQjY5RDAwMjE4RUEw
IC8qIEdlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzc5NjRDRTFGOERCNjlBMDAyMThFQTAgLyogR2VvbG9jYXRp
b25Qb3NpdGlvbklPUy5tbSAqLzsgfTsKKwkJODM3OTY0Q0YxRjhEQjY5RDAwMjE4RUEwIC8qIEdl
b2xvY2F0aW9uUG9zaXRpb25EYXRhSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhSU9TLm1tICovOyB9OwogCQk4MzdBODAxMzFFMUUxMjczMDAwMjZCOUYgLyog
TG9jYWxpemFibGUuc3RyaW5nc2RpY3QgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzN0E4MDExMUUxRTEyNzMwMDAyNkI5RiAvKiBMb2NhbGl6YWJsZS5z
dHJpbmdzZGljdCAqLzsgfTsKIAkJODM3RDQ2MjcxRkEyQThDRTAwNTRFMUZBIC8qIFNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzdENDYyNTFGQTJBOEM1MDA1NEUxRkEgLyogU2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk4MzdGQjM0NTFGOUVBMDZEMDBEMEZDMzEgLyogRXh0ZW5kYWJsZU1lc3NhZ2VF
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3
RkIzNDAxRjlFQTA2NjAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCAqLzsgfTsK
QEAgLTI3MjgsMTUgKzI3MjgsMTUgQEAKIAkJOTczODg5QTExMTZFQTlEQzAwQURGMzEzIC8qIERv
Y3VtZW50V3JpdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NzM4ODk5RjExNkVBOURDMDBBREYzMTMgLyogRG9jdW1lbnRXcml0ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzNFMzI1NzEwODgz
QjdDMDA1QkM0OTMgLyogUmVzb3VyY2VMb2FkTm90aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3M0UzMjU1MTA4ODNCN0MwMDVCQzQ5MyAvKiBS
ZXNvdXJjZUxvYWROb3RpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTk3M0Y0MThBMTY5Qjk1RkYwMDA2QkY2MCAvKiBIVE1MUGFyc2VyT3B0
aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcz
RjQxODgxNjlCOTVFRjAwMDZCRjYwIC8qIEhUTUxQYXJzZXJPcHRpb25zLmggKi87IH07Ci0JCTk3
NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBDb29yZGluYXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMTExNEY0RERFNjAwM0U3QTcwIC8q
IENvb3JkaW5hdGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJOTc0NkFGMjExNEY0RERFNjAwM0U3QTcxIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZB
RjExMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFGMjQxNEY0RERF
NjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxNDE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzQ2
QUYyNTE0RjREREU2MDAzRTdBNzEgLyogR2VvbG9jYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjE1MTRGNERERTYwMDNFN0E3
MSAvKiBHZW9sb2NhdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTk3NDZBRjI3MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlv
bkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3NDZBRjE3MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzQ2QUYy
ODE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMTgxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQk5NzQ2QUYyOTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3Np
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0
NkFGMTkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5NzQ2QUYyQTE0RjREREU2
MDAzRTdBNzAgLyogR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3NDZBRjFBMTRGNERERTYwMDNFN0E3MCAvKiBHZW9wb3NpdGlvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk3NDZB
RjI5MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMTkxNEY0RERFNjAw
M0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTc0NkFGMkExNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk3NDZBRjFBMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTc0NkFGMkMxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjFDMTRGNERERTYwMDNF
N0E3MCAvKiBQb3NpdGlvbkNhbGxiYWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTc0NkFGMkUxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9u
RXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3
NDZBRjFFMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9yLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTc0NkFGMkUxNEY0RERFNjAwM0U3
QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMUUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xv
Y2F0aW9uUG9zaXRpb25FcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTk3NDZBRjMwMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9y
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk3NDZBRjIwMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9yQ2FsbGJhY2suaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzQ2QUYzMjE0
RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYyMjE0RjREREU2MDAzRTdBNzAgLyogUG9z
aXRpb25PcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTc0QTg2MjMxNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNl
cnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0
QTg2MjExNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMDA2Myw3ICsx
MDA2Myw3IEBACiAJCTgzNzY1Rjk0MURBQzUyMTgwMEMwNjUzNyAvKiBNb3VzZUV2ZW50SW5pdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb3VzZUV2ZW50SW5pdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzc5MzYzQzFGQkJCMEE0MDBDODAyM0MgLyogU2Vy
dmljZVdvcmtlckNsaWVudERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4Mzc5MzYzRTFGQkJCMEE1MDBDODAyM0MgLyogU2VydmljZVdvcmtlckNsaWVudERh
dGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlckNsaWVu
dERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODM3OTY0Q0UxRjhEQjY5QTAw
MjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBHZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tOyBwYXRoID0gTW9k
dWxlcy9nZW9sb2NhdGlvbi9pb3MvR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbTsgc291cmNlVHJl
ZSA9IFNPVVJDRV9ST09UOyB9OworCQk4Mzc5NjRDRTFGOERCNjlBMDAyMThFQTAgLyogR2VvbG9j
YXRpb25Qb3NpdGlvbkRhdGFJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5tbTsgcGF0aCA9IE1vZHVsZXMvZ2Vv
bG9jYXRpb24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhSU9TLm1tOyBzb3VyY2VUcmVlID0g
U09VUkNFX1JPT1Q7IH07CiAJCTgzN0E4MDEyMUUxRTEyNzMwMDAyNkI5RiAvKiBlbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3Quc3Ry
aW5nc2RpY3Q7IG5hbWUgPSBlbjsgcGF0aCA9IGVuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3Nk
aWN0OyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTgzN0I3RDFGMURDM0Y1NEMwMEQw
NTFGQyAvKiBWYWxpZGF0aW9uQnViYmxlSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gVmFsaWRhdGlvbkJ1YmJsZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODM3RDQ2MjUxRkEyQThDNTAwNTRFMUZBIC8qIFNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MDc0Myw5ICsxMDc0Myw5IEBACiAJCTk3M0UzMjU1MTA4ODNCN0MwMDVCQzQ5MyAvKiBSZXNvdXJj
ZUxvYWROb3RpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJj
ZUxvYWROb3RpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzNGNDE4NzE2
OUI5NUVGMDAwNkJGNjAgLyogSFRNTFBhcnNlck9wdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFBhcnNlck9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5NzNGNDE4ODE2OUI5NUVGMDAwNkJGNjAgLyogSFRNTFBhcnNlck9w
dGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFBhcnNlck9wdGlv
bnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTc0NkFGMTExNEY0RERFNjAwM0U3
QTcwIC8qIENvb3JkaW5hdGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
b3JkaW5hdGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk3NDZBRjExMTRGNERE
RTYwMDNFN0E3MiAvKiBDb29yZGluYXRlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDb29yZGluYXRlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTk3NDZBRjEyMTRGNERERTYwMDNFN0E3MCAvKiBDb29yZGluYXRlcy5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gQ29vcmRpbmF0ZXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db29yZGluYXRlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3NDZBRjExMTRGNERERTYwMDNFN0E3MiAv
KiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5NzQ2QUYxMjE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db29yZGlu
YXRlcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2VvbG9jYXRpb25Db29yZGluYXRlcy5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NDZBRjEzMTRGNERERTYwMDNFN0E3
MCAvKiBHZW9sb2NhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBHZW9sb2NhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NDZBRjE0
MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHZW9sb2NhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NzQ2QUYxNTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEdlb2xvY2F0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEwNzUzLDEzICsxMDc1MywxMyBAQAogCQk5NzQ2QUYxNjE0RjREREU2MDAzRTdBNzAgLyogR2Vv
bG9jYXRpb25Db250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk3NDZBRjE3MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Db250cm9sbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NDZBRjE4MTRGNERERTYwMDNFN0E3MCAv
KiBHZW9sb2NhdGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdl
b2xvY2F0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTc0NkFGMTkx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvcG9zaXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvcG9zaXRpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTc0NkFGMUIxNEY0RERFNjAwM0U3QTcwIC8qIEdlb3Bvc2l0
aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHZW9wb3NpdGlvbi5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3NDZBRjE5MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9s
b2NhdGlvblBvc2l0aW9uRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzQ2
QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvblBvc2l0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk3NDZBRjFCMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlv
blBvc2l0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHZW9sb2NhdGlvblBvc2l0aW9u
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFGMUMxNEY0RERFNjAwM0U3
QTcwIC8qIFBvc2l0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUG9zaXRpb25DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2
QUYxRDE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25DYWxsYmFjay5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUG9zaXRpb25DYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTk3NDZBRjFFMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvc2l0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJOTc0NkFGMUYxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uRXJy
b3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBvc2l0aW9uRXJyb3IuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5NzQ2QUYxRTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9j
YXRpb25Qb3NpdGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdl
b2xvY2F0aW9uUG9zaXRpb25FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NzQ2QUYxRjE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYyMDE0RjREREU2MDAzRTdBNzAgLyogUG9z
aXRpb25FcnJvckNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBv
c2l0aW9uRXJyb3JDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2
QUYyMTE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBQb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5NzQ2QUYyMjE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25PcHRp
b25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvc2l0aW9uT3B0aW9ucy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA5MjUsNyArMjA5MjUsNyBAQAogCQk4
Mzc5NjRDQzFGOERCNjdEMDAyMThFQTAgLyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk4Mzc5NjRDRTFGOERCNjlBMDAyMThFQTAgLyogR2VvbG9j
YXRpb25Qb3NpdGlvbklPUy5tbSAqLywKKwkJCQk4Mzc5NjRDRTFGOERCNjlBMDAyMThFQTAgLyog
R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IGlvczsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMTg0Miw5ICsyMTg0Miw5IEBACiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTgzNzk2NENDMUY4REI2N0QwMDIx
OEVBMCAvKiBpb3MgKi8sCi0JCQkJOTc0NkFGMTExNEY0RERFNjAwM0U3QTcyIC8qIENvb3JkaW5h
dGVzLmNwcCAqLywKLQkJCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMu
aCAqLywKLQkJCQk5NzQ2QUYxMjE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMuaWRsICov
LAorCQkJCTk3NDZBRjExMTRGNERERTYwMDNFN0E3MiAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVz
LmNwcCAqLywKKwkJCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db29y
ZGluYXRlcy5oICovLAorCQkJCTk3NDZBRjEyMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlv
bkNvb3JkaW5hdGVzLmlkbCAqLywKIAkJCQk5NzQ2QUYxMzE0RjREREU2MDAzRTdBNzAgLyogR2Vv
bG9jYXRpb24uY3BwICovLAogCQkJCTk3NDZBRjE0MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2Nh
dGlvbi5oICovLAogCQkJCTk3NDZBRjE1MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5p
ZGwgKi8sCkBAIC0yMTg1MiwxOCArMjE4NTIsMTggQEAKIAkJCQk5NzQ2QUYxNjE0RjREREU2MDAz
RTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCAqLywKIAkJCQk5NzQ2QUYxNzE0RjRE
REU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggKi8sCiAJCQkJOTc0NkFGMTgx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uRXJyb3IuaCAqLywKLQkJCQk5NzQ2QUYxOTE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbi5oICovLAogCQkJCTQ2QzgzRUZC
MUE5QkJFMjkwMEE3OUE0MSAvKiBHZW9Ob3RpZmllci5jcHAgKi8sCiAJCQkJNDZDODNFRkMxQTlC
QkUyOTAwQTc5QTQxIC8qIEdlb05vdGlmaWVyLmggKi8sCi0JCQkJOTc0NkFGMUExNEY0RERFNjAw
M0U3QTcwIC8qIEdlb3Bvc2l0aW9uLmggKi8sCi0JCQkJOTc0NkFGMUIxNEY0RERFNjAwM0U3QTcw
IC8qIEdlb3Bvc2l0aW9uLmlkbCAqLywKKwkJCQk5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyog
R2VvbG9jYXRpb25Qb3NpdGlvbi5oICovLAorCQkJCTk3NDZBRjFCMTRGNERERTYwMDNFN0E3MCAv
KiBHZW9sb2NhdGlvblBvc2l0aW9uLmlkbCAqLywKKwkJCQk5NzQ2QUYxOTE0RjREREU2MDAzRTdB
NzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaCAqLywKIAkJCQk5NzExNDYwMDE0RUYwMDlB
MDA2NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwICovLAogCQkJCTk3MTE0NjAxMTRF
RjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5oICovLAogCQkJCTk3MTE0NjAy
MTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwgKi8sCiAJCQkJOTc0
NkFGMUMxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uQ2FsbGJhY2suaCAqLywKIAkJCQk5NzQ2
QUYxRDE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25DYWxsYmFjay5pZGwgKi8sCi0JCQkJOTc0
NkFGMUUxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uRXJyb3IuaCAqLywKLQkJCQk5NzQ2QUYx
RjE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5pZGwgKi8sCisJCQkJOTc0NkFGMUUx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oICovLAorCQkJCTk3
NDZBRjFGMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRsICov
LAogCQkJCTk3NDZBRjIwMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9yQ2FsbGJhY2su
aCAqLywKIAkJCQk5NzQ2QUYyMTE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvckNhbGxi
YWNrLmlkbCAqLywKIAkJCQk5NzQ2QUYyMjE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25PcHRp
b25zLmggKi8sCkBAIC0yODY2NSw3ICsyODY2NSw3IEBACiAJCQkJN0E1Njk5NzAyMDg2QzYxOTAw
MEUwNDMzIC8qIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmggaW4gSGVhZGVycyAqLywK
IAkJCQkzM0QwMjEyRDEzMURCMzdCMDA0MDkxQTggLyogQ29va2llU3RvcmFnZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTEyMEJCQUYxRjFDRUNFNzAwRUZFQkYxIC8qIENvb2tpZVN0b3JhZ2VPYnNl
cnZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTc0NkFGMjExNEY0RERFNjAwM0U3QTcxIC8qIENv
b3JkaW5hdGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NzQ2QUYyMTE0RjREREU2MDAzRTdBNzEg
LyogR2VvbG9jYXRpb25Db29yZGluYXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0Y4MDIwMzUx
RTlFNDdCRjAwREVDNjFEIC8qIENvcmVBdWRpb0NhcHR1cmVEZXZpY2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTNGODAyMDM3MUU5RTQ3QzUwMERFQzYxRCAvKiBDb3JlQXVkaW9DYXB0dXJlRGV2aWNl
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdBRkY0MjIxRUZCMTQ0OTAwQjU0NUIzIC8q
IENvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MuaCBpbiBIZWFkZXJzICovLApAQCAtMjkyOTMsMTAg
KzI5MjkzLDEwIEBACiAJCQkJOTc0NkFGMjUxNEY0RERFNjAwM0U3QTcxIC8qIEdlb2xvY2F0aW9u
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYyNzE0RjREREU2MDAzRTdBNzAgLyog
R2VvbG9jYXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYyODE0RjRE
REU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTc0
NkFGMjkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCBpbiBIZWFkZXJz
ICovLAorCQkJCTk3NDZBRjI5MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9u
RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCNjI1MkYxOERFMUIxNTAwQTA3QzA1IC8qIEdl
b21ldHJ5VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkM4M0VGRTFBOUJCRTI5MDBB
NzlBNDEgLyogR2VvTm90aWZpZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTk3NDZBRjJBMTRGNERE
RTYwMDNFN0E3MCAvKiBHZW9wb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTc0NkFGMkEx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTQ2Qjk1MTk4MjA3RDYzNDcwMEE3RDJERCAvKiBHbG9iYWxGcmFtZUlkZW50aWZpZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTQ2Qjk1MTk3MjA3RDYzNDAwMEE3RDJERCAvKiBHbG9iYWxXaW5k
b3dJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODZCQkQwRjEzNjAzOUMyMDA4QjE1
RDggLyogR2x5cGguaCBpbiBIZWFkZXJzICovLApAQCAtMzEwNDgsNyArMzEwNDgsNyBAQAogCQkJ
CTM3RjU2N0NFMTY1MzU4RjQwMERERTkyQiAvKiBQb3B1cE9wZW5pbmdPYnNlcnZlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTNGMTk5REUwODI0NUU1OTAwMUU5QUJDIC8qIFBvc2l0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5NzQ2QUYyQzE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25DYWxs
YmFjay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTc0NkFGMkUxNEY0RERFNjAwM0U3QTcwIC8qIFBv
c2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTk3NDZBRjJFMTRGNERERTYwMDNFN0E3
MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NDZB
RjMwMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCTM3OTE5QzI0MEI3RDE4ODYwMEE1Njk5OCAvKiBQb3NpdGlvbkl0ZXJhdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYzMjE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25P
cHRpb25zLmggaW4gSGVhZGVycyAqLywKQEAgLTMyODA0LDcgKzMyODA0LDcgQEAKIAkJCQk1MTZD
NjIyMDE5NTBENDg3MDAzMzdFNzUgLyogR2FtZXBhZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxQTlEOUU5MTk1QjkzMUYwMDFCMkI1QyAvKiBHYW1lcGFkTWFuYWdlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MTVCRTE5MTFENTRGNUZCMDBERDdDNjggLyogR2FtZXBhZFByb3ZpZGVy
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTgzNzk2NENGMUY4REI2OUQwMDIxOEVBMCAvKiBHZW9s
b2NhdGlvblBvc2l0aW9uSU9TLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJODM3OTY0Q0YxRjhEQjY5
RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhSU9TLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNkUyMUM2QzAxMTI2MzM4NTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTZFNzJGNTRFMjI5RENEMTAwMEIzRTE1MSAvKiBHcmFwaGljc0Nv
bnRleHQzREFOR0xFLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDM0U1MTBCMThERjhGMzUwMEMx
MTJGNyAvKiBIVE1MQ29udmVydGVyLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKaW5kZXgg
YjgwY2MxZTBmY2EuLmU4ZWMxYzg0ZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwCkBAIC02MSw3ICs2MSw3IEBA
IHZvaWQgR2VvbG9jYXRpb25DbGllbnRNb2NrOjpzZXRDb250cm9sbGVyKEdlb2xvY2F0aW9uQ29u
dHJvbGxlciAqY29udHJvbGxlcikKICAgICBtX2NvbnRyb2xsZXIgPSBjb250cm9sbGVyOwogfQog
Ci12b2lkIEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6c2V0UG9zaXRpb24oR2VvbG9jYXRpb25Qb3Np
dGlvbiYmIHBvc2l0aW9uKQordm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnNldFBvc2l0aW9u
KEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYgcG9zaXRpb24pCiB7CiAgICAgbV9sYXN0UG9zaXRp
b24gPSBXVEZNb3ZlKHBvc2l0aW9uKTsKICAgICBjbGVhckVycm9yKCk7CkBAIC0xNTYsNyArMTU2
LDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeShi
b29sKQogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDk0MzgKIH0KIAotT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gR2VvbG9jYXRpb25DbGll
bnRNb2NrOjpsYXN0UG9zaXRpb24oKQorT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+
IEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6bGFzdFBvc2l0aW9uKCkKIHsKICAgICByZXR1cm4gbV9s
YXN0UG9zaXRpb247CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9H
ZW9sb2NhdGlvbkNsaWVudE1vY2suaAppbmRleCAyN2NjZDk0MzE2NS4uZTIyYWZjNTA4ZmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRN
b2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVu
dE1vY2suaApAQCAtMzIsNyArMzIsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJHZW9s
b2NhdGlvbkNsaWVudC5oIgotI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKKyNpbmNs
dWRlICJHZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC01Miw3ICs1
Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0KCk7CiAgICAgdm9pZCBzZXRDb250cm9sbGVy
KEdlb2xvY2F0aW9uQ29udHJvbGxlciopOwogCi0gICAgdm9pZCBzZXRQb3NpdGlvbihHZW9sb2Nh
dGlvblBvc2l0aW9uJiYpOworICAgIHZvaWQgc2V0UG9zaXRpb24oR2VvbG9jYXRpb25Qb3NpdGlv
bkRhdGEmJik7CiAgICAgdm9pZCBzZXRQb3NpdGlvblVuYXZhaWxhYmxlRXJyb3IoY29uc3QgU3Ry
aW5nJiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgc2V0UGVybWlzc2lvbihib29sIGFsbG93ZWQp
OwogICAgIGludCBudW1iZXJPZlBlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMoKSBjb25zdDsKQEAg
LTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnRVcGRhdGluZygpIG92ZXJyaWRl
OwogICAgIHZvaWQgc3RvcFVwZGF0aW5nKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRFbmFibGVI
aWdoQWNjdXJhY3koYm9vbCkgb3ZlcnJpZGU7Ci0gICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3Np
dGlvbj4gbGFzdFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlvbigpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVxdWVzdFBl
cm1pc3Npb24oR2VvbG9jYXRpb24mKSBvdmVycmlkZTsKICAgICB2b2lkIGNhbmNlbFBlcm1pc3Np
b25SZXF1ZXN0KEdlb2xvY2F0aW9uJikgb3ZlcnJpZGU7CiAKQEAgLTc2LDcgKzc2LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGNsZWFyRXJyb3IoKTsKIAogICAgIEdlb2xvY2F0aW9uQ29udHJvbGxl
ciogbV9jb250cm9sbGVyOwotICAgIE9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+IG1fbGFz
dFBvc2l0aW9uOworICAgIE9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBtX2xhc3RQ
b3NpdGlvbjsKICAgICBib29sIG1faGFzRXJyb3I7CiAgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdl
OwogICAgIFRpbWVyIG1fY29udHJvbGxlclRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAppbmRleCAzZjE1NThiNzUyYi4uZTk5ZGNjNWMw
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24u
Y3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAotUmVmPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IFdlYkdlb2xvY2F0aW9u
UG9zaXRpb246OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uJiYgZ2VvbG9jYXRpb25Qb3NpdGlv
bikKK1JlZjxXZWJHZW9sb2NhdGlvblBvc2l0aW9uPiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpj
cmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiBnZW9sb2NhdGlvblBvc2l0aW9uKQogewog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24oV1RGTW92ZShn
ZW9sb2NhdGlvblBvc2l0aW9uKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbi5oCmluZGV4IGMxZmNjYTdjYmI1Li5hOTY4Zjg0ZjlhYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaApAQCAtMjcsNyAr
MjcsNyBAQAogI2RlZmluZSBXZWJHZW9sb2NhdGlvblBvc2l0aW9uX2gKIAogI2luY2x1ZGUgIkFQ
SU9iamVjdC5oIgotI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiA6IHB1YmxpYyBBUEk6Ok9i
amVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6Okdlb2xvY2F0aW9uUG9zaXRpb24+IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IGNyZWF0ZShXZWJDb3Jl
OjpHZW9sb2NhdGlvblBvc2l0aW9uJiYpOworICAgIHN0YXRpYyBSZWY8V2ViR2VvbG9jYXRpb25Q
b3NpdGlvbj4gY3JlYXRlKFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYpOwogCiAg
ICAgdmlydHVhbCB+V2ViR2VvbG9jYXRpb25Qb3NpdGlvbigpOwogCkBAIC01MiwxNSArNTIsMTUg
QEAgcHVibGljOgogICAgIE9wdGlvbmFsPGRvdWJsZT4gaGVhZGluZygpIGNvbnN0IHsgcmV0dXJu
IG1fY29yZVBvc2l0aW9uLmhlYWRpbmc7IH0KICAgICBPcHRpb25hbDxkb3VibGU+IHNwZWVkKCkg
Y29uc3QgeyByZXR1cm4gbV9jb3JlUG9zaXRpb24uc3BlZWQ7IH0KIAotICAgIGNvbnN0IFdlYkNv
cmU6Okdlb2xvY2F0aW9uUG9zaXRpb24mIGNvcmVQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
Y29yZVBvc2l0aW9uOyB9CisgICAgY29uc3QgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRh
dGEmIGNvcmVQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29yZVBvc2l0aW9uOyB9CiAKIHBy
aXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbihXZWJDb3JlOjpHZW9s
b2NhdGlvblBvc2l0aW9uJiYgZ2VvbG9jYXRpb25Qb3NpdGlvbikKKyAgICBleHBsaWNpdCBXZWJH
ZW9sb2NhdGlvblBvc2l0aW9uKFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYgZ2Vv
bG9jYXRpb25Qb3NpdGlvbikKICAgICAgICAgOiBtX2NvcmVQb3NpdGlvbihXVEZNb3ZlKGdlb2xv
Y2F0aW9uUG9zaXRpb24pKQogICAgIHsKICAgICB9CiAKLSAgICBXZWJDb3JlOjpHZW9sb2NhdGlv
blBvc2l0aW9uIG1fY29yZVBvc2l0aW9uOworICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRp
b25EYXRhIG1fY29yZVBvc2l0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRp
b24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0
aW9uLmNwcAppbmRleCBhYWJjM2Q5ZjZkOS4uYzA4ZTRhZGNhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcApA
QCAtNDgsNyArNDgsNyBAQCBXS0dlb2xvY2F0aW9uUG9zaXRpb25SZWYgV0tHZW9sb2NhdGlvblBv
c2l0aW9uQ3JlYXRlX2IoZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlCiAKIFdLR2VvbG9jYXRpb25Q
b3NpdGlvblJlZiBXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGVfYyhkb3VibGUgdGltZXN0YW1w
LCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9v
bCBwcm92aWRlc0FsdGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGJvb2wgcHJvdmlkZXNBbHRpdHVk
ZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBwcm92aWRlc0hlYWRpbmcs
IGRvdWJsZSBoZWFkaW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRvdWJsZSBzcGVlZCwgYm9vbCBw
cm92aWRlc0Zsb29yTGV2ZWwsIGRvdWJsZSBmbG9vckxldmVsKQogewotICAgIFdlYkNvcmU6Okdl
b2xvY2F0aW9uUG9zaXRpb24gY29yZVBvc2l0aW9uIHsgdGltZXN0YW1wLCBsYXRpdHVkZSwgbG9u
Z2l0dWRlLCBhY2N1cmFjeSB9OworICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRh
IGNvcmVQb3NpdGlvbiB7IHRpbWVzdGFtcCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kg
fTsKICAgICBpZiAocHJvdmlkZXNBbHRpdHVkZSkKICAgICAgICAgY29yZVBvc2l0aW9uLmFsdGl0
dWRlID0gYWx0aXR1ZGU7CiAgICAgaWYgKHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5o
CmluZGV4IDE3YzA4NjljYWU2Li42YjY0Y2ZmMmMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oCkBAIC0yOSw3ICsyOSw3
IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5o
IgogI2luY2x1ZGUgIldlYkNvbnRleHRTdXBwbGVtZW50LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9H
ZW9sb2NhdGlvblBvc2l0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0
aW9uRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgdm9pZCByZXNldFBlcm1pc3Npb25zKCk7CiAjZW5kaWYKLSAgICBjb25z
dCBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiYgbGFzdFBvc2l0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9sYXN0UG9zaXRpb247IH0KKyAgICBjb25zdCBPcHRpb25hbDxXZWJD
b3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4mIGxhc3RQb3NpdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fbGFzdFBvc2l0aW9uOyB9CiAKICAgICB1c2luZyBBUEk6Ok9iamVjdDo6cmVmOwogICAg
IHVzaW5nIEFQSTo6T2JqZWN0OjpkZXJlZjsKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKICAg
ICBIYXNoU2V0PGNvbnN0IElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Kj4gbV9oaWdoQWNjdXJhY3lS
ZXF1ZXN0ZXJzOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEFQSTo6R2VvbG9jYXRpb25Qcm92aWRl
cj4gbV9wcm92aWRlcjsKLSAgICBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9u
PiBtX2xhc3RQb3NpdGlvbjsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YT4gbV9sYXN0UG9zaXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlk
ZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3Zp
ZGVySU9TLm1tCmluZGV4IDUyNWZiMmY4ZGNjLi4xMzA5Y2VhYTQ2YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1t
CkBAIC0yOTYsNyArMjk2LDcgQEAgLSAodm9pZClnZW9sb2NhdGlvbkF1dGhvcml6YXRpb25EZW5p
ZWQKICAgICBbX2xpc3RlbmVyIGdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkRlbmllZF07CiB9CiAK
LS0gKHZvaWQpcG9zaXRpb25DaGFuZ2VkOihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uJiYp
Y29yZVBvc2l0aW9uCistICh2b2lkKXBvc2l0aW9uQ2hhbmdlZDooV2ViQ29yZTo6R2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGEmJiljb3JlUG9zaXRpb24KIHsKICAgICBBU1NFUlQoX2xpc3RlbmVyKTsK
ICAgICBhdXRvIHBvc2l0aW9uID0gV2ViS2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVh
dGUoV1RGTW92ZShjb3JlUG9zaXRpb24pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKaW5k
ZXggMDIwMjQwMjNjOWYuLjdiMzBkZDBmNWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNw
cApAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6c2V0RW5hYmxl
SGlnaEFjY3VyYWN5Rm9yUGFnZShXZWJQYWdlJiBwYWdlLCBib29sIGVuYQogICAgICAgICBtX3By
b2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHk6OlNldEVuYWJsZUhpZ2hBY2N1cmFjeShoaWdoQWNjdXJhY3lTaG91
bGRCZUVuYWJsZWQpLCAwKTsKIH0KIAotdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENo
YW5nZVBvc2l0aW9uKGNvbnN0IEdlb2xvY2F0aW9uUG9zaXRpb24mIHBvc2l0aW9uKQordm9pZCBX
ZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKGNvbnN0IEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhJiBwb3NpdGlvbikKIHsKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAg
Zm9yIChhdXRvJiBwYWdlIDogY29weVRvVmVjdG9yKG1fcGFnZVNldCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlv
bk1hbmFnZXIuaAppbmRleCBhNmMyODcxNmFiMS4uZDc4MDkzZTRkNjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRp
b25NYW5hZ2VyLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzVXBkYXRp
bmcoKSBjb25zdCB7IHJldHVybiAhbV9wYWdlU2V0LmlzRW1wdHkoKTsgfQogICAgIGJvb2wgaXNI
aWdoQWNjdXJhY3lFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gIW1faGlnaEFjY3VyYWN5UGFnZVNl
dC5pc0VtcHR5KCk7IH0KIAotICAgIHZvaWQgZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgV2ViQ29y
ZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiYpOworICAgIHZvaWQgZGlkQ2hhbmdlUG9zaXRpb24oY29u
c3QgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmKTsKICAgICB2b2lkIGRpZEZhaWxU
b0RldGVybWluZVBvc2l0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgcmVzZXRQZXJtaXNzaW9ucygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFu
YWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggMDQzZWY2NDk0OTAuLmI1MmU4
MTYyMDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24v
V2ViR2VvbG9jYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KQEAg
LTIxLDcgKzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gV2ViR2VvbG9jYXRp
b25NYW5hZ2VyIHsKLSAgICBEaWRDaGFuZ2VQb3NpdGlvbihXZWJDb3JlOjpHZW9sb2NhdGlvblBv
c2l0aW9uIHBvc2l0aW9uKTsKKyAgICBEaWRDaGFuZ2VQb3NpdGlvbihXZWJDb3JlOjpHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YSBwb3NpdGlvbik7CiAgICAgRGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRp
b24oU3RyaW5nIGVycm9yTWVzc2FnZSk7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBS
ZXNldFBlcm1pc3Npb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAppbmRleCBh
MjRlMGZmMjFjYy4uZjIyNzUxMjU5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNw
cApAQCAtNjMsNyArNjMsNyBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpzZXRFbmFibGVI
aWdoQWNjdXJhY3koYm9vbCBlbmFibGVkKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1
cHBsZW1lbnQ8V2ViR2VvbG9jYXRpb25NYW5hZ2VyPigpLT5zZXRFbmFibGVIaWdoQWNjdXJhY3lG
b3JQYWdlKG1fcGFnZSwgZW5hYmxlZCk7CiB9CiAKLU9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRp
b24+IFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24oKQorT3B0aW9uYWw8R2VvbG9j
YXRpb25Qb3NpdGlvbkRhdGE+IFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24oKQog
ewogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5o
CmluZGV4IDM1YTMxZmMyYTM0Li5kNDc3NmU5MTUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xp
ZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0b3BVcGRhdGluZygp
IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpIG92ZXJyaWRl
OwogCi0gICAgT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbj4gbGFzdFBvc2l0
aW9uKCkgb3ZlcnJpZGU7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlv
bkRhdGE+IGxhc3RQb3NpdGlvbigpIG92ZXJyaWRlOwogCiAgICAgdm9pZCByZXF1ZXN0UGVybWlz
c2lvbihXZWJDb3JlOjpHZW9sb2NhdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUGVy
bWlzc2lvblJlcXVlc3QoV2ViQ29yZTo6R2VvbG9jYXRpb24mKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRp
b25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlv
bkNvcmVMb2NhdGlvblByb3ZpZGVyLmgKaW5kZXggMDQ5MGZjZmIxZGIuLjg0MjdjYjgxMDJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uQ29y
ZUxvY2F0aW9uUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dl
Ykdlb2xvY2F0aW9uQ29yZUxvY2F0aW9uUHJvdmlkZXIuaApAQCAtMjksNyArMjksNyBAQAogQGNs
YXNzIE5TU3RyaW5nOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBHZW9sb2NhdGlvblBv
c2l0aW9uOworY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE7CiB9CiAKIC8vIFdlYkdlb2xv
Y2F0aW9uQ29yZUxvY2F0aW9uRGVsZWdhdGUgYWJzdHJhY3RzIHRoZSBsb2NhdGlvbiBzZXJ2aWNl
cyBvZiBDb3JlTG9jYXRpb24uCkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIEdlb2xvY2F0aW9uUG9z
aXRpb247CiAtICh2b2lkKWdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkdyYW50ZWQ7CiAtICh2b2lk
KWdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkRlbmllZDsKIAotLSAodm9pZClwb3NpdGlvbkNoYW5n
ZWQ6KFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24mJilwb3NpdGlvbjsKKy0gKHZvaWQpcG9z
aXRpb25DaGFuZ2VkOihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKXBvc2l0aW9u
OwogLSAodm9pZCllcnJvck9jY3VycmVkOihOU1N0cmluZyAqKWVycm9yTWVzc2FnZTsKIC0gKHZv
aWQpcmVzZXRHZW9sb2NhdGlvbjsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRl
ci5tbQppbmRleCBjNWY2NDZiMmE0NS4uZGU5MTMzYmYwOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uQ29yZUxv
Y2F0aW9uUHJvdmlkZXIubW0KQEAgLTMwLDcgKzMwLDcgQEAKICNpbXBvcnQgPENvcmVMb2NhdGlv
bi9DTExvY2F0aW9uLmg+CiAjaW1wb3J0IDxDb3JlTG9jYXRpb24vQ0xMb2NhdGlvbk1hbmFnZXJE
ZWxlZ2F0ZS5oPgogI2ltcG9ydCA8Q29yZUxvY2F0aW9uL0NvcmVMb2NhdGlvbi5oPgotI2ltcG9y
dCA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL0dlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhLmg+CiAjaW1wb3J0IDxXZWJLaXRMb2dnaW5nLmg+CiAjaW1wb3J0
IDxvYmpjL29iamMtcnVudGltZS5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgpAQCAtMTcwLDcg
KzE3MCw3IEBAIC0gKHZvaWQpbG9jYXRpb25NYW5hZ2VyOihDTExvY2F0aW9uTWFuYWdlciAqKW1h
bmFnZXIgZGlkQ2hhbmdlQXV0aG9yaXphdGlvblN0YXR1CiAKIC0gKHZvaWQpc2VuZExvY2F0aW9u
OihDTExvY2F0aW9uICopbmV3TG9jYXRpb24KIHsKLSAgICBbX3Bvc2l0aW9uTGlzdGVuZXIgcG9z
aXRpb25DaGFuZ2VkOkdlb2xvY2F0aW9uUG9zaXRpb24geyBuZXdMb2NhdGlvbiB9XTsKKyAgICBb
X3Bvc2l0aW9uTGlzdGVuZXIgcG9zaXRpb25DaGFuZ2VkOkdlb2xvY2F0aW9uUG9zaXRpb25EYXRh
IHsgbmV3TG9jYXRpb24gfV07CiB9CiAKIC0gKHZvaWQpbG9jYXRpb25NYW5hZ2VyOihDTExvY2F0
aW9uTWFuYWdlciAqKW1hbmFnZXIgZGlkVXBkYXRlTG9jYXRpb25zOihOU0FycmF5ICopbG9jYXRp
b25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0
aW9uUHJvdmlkZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xv
Y2F0aW9uUHJvdmlkZXJJT1MubW0KaW5kZXggYzJmZjM1MGY3NDUuLjVlNzc3OTY0ZjE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlk
ZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlv
blByb3ZpZGVySU9TLm1tCkBAIC00Miw3ICs0Miw3IEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAogQGludGVyZmFjZSBXZWJHZW9sb2NhdGlvblBvc2l0aW9uIChJbnRlcm5hbCkKLS0gKGlk
KWluaXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlvbjooR2VvbG9jYXRpb25Qb3NpdGlvbiYmKWNvcmVH
ZW9sb2NhdGlvblBvc2l0aW9uOworLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0aW9uOihH
ZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOwogQGVuZAog
CiAvLyBDb3JlTG9jYXRpb24gcnVucyBpbiB0aGUgbWFpbiB0aHJlYWQuIFdlYkdlb2xvY2F0aW9u
UHJvdmlkZXJJT1MgbGl2ZXMgb24gdGhlIFdlYlRocmVhZC4KQEAgLTM0OCw3ICszNDgsNyBAQCAt
ICh2b2lkKWdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkRlbmllZAogICAgIH0pOwogfQogCi0tICh2
b2lkKXBvc2l0aW9uQ2hhbmdlZDooV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiYmKXBvc2l0
aW9uCistICh2b2lkKXBvc2l0aW9uQ2hhbmdlZDooV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlv
bkRhdGEmJilwb3NpdGlvbgogewogICAgIFJldGFpblB0cjxXZWJHZW9sb2NhdGlvblBvc2l0aW9u
PiB3ZWJQb3NpdGlvbiA9IGFkb3B0TlMoW1tXZWJHZW9sb2NhdGlvblBvc2l0aW9uIGFsbG9jXSBp
bml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246V1RGTW92ZShwb3NpdGlvbildKTsKICAgICBXZWJU
aHJlYWRSdW4oXnsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCmluZGV4IGZmZGJhY2ZjMjc0Li44
YTFiN2YwMDlkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCkBAIC0yNyw3ICsyNyw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdlb2xvY2F0aW9uOwotY2xhc3MgR2VvbG9j
YXRpb25Qb3NpdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOwogfQogCiBAY2xh
c3MgV2ViVmlldzsKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RW5hYmxl
SGlnaEFjY3VyYWN5KGJvb2wpIG92ZXJyaWRlIHsgfQogI2VuZGlmCiAKLSAgICBPcHRpb25hbDxX
ZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiBsYXN0UG9zaXRpb24oKSBvdmVycmlkZTsKKyAg
ICBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gbGFzdFBvc2l0aW9u
KCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6Okdlb2xv
Y2F0aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjYW5jZWxQZXJtaXNzaW9uUmVxdWVzdChXZWJD
b3JlOjpHZW9sb2NhdGlvbiYpIG92ZXJyaWRlIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQu
bW0KaW5kZXggMmNmNzE1ZTJkOTAuLjg3ZGE3MzBmZWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNs
aWVudC5tbQpAQCAtMTMyLDcgKzEzMiw3IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnJl
cXVlc3RQZXJtaXNzaW9uKEdlb2xvY2F0aW9uJiBnZW9sb2NhdGlvbikKICAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TOwogfQogCi1PcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uPiBXZWJH
ZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKCkKK09wdGlvbmFsPEdlb2xvY2F0aW9uUG9z
aXRpb25EYXRhPiBXZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKCkKIHsKICAgICBy
ZXR1cm4gY29yZShbW21fd2ViVmlldyBfZ2VvbG9jYXRpb25Qcm92aWRlcl0gbGFzdFBvc2l0aW9u
XSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkdl
b2xvY2F0aW9uUG9zaXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
Ykdlb2xvY2F0aW9uUG9zaXRpb24ubW0KaW5kZXggZDE1ZjVmOWM2OWUuLjVkYmZkMzU1YTg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9u
UG9zaXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9s
b2NhdGlvblBvc2l0aW9uLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0ICJXZWJHZW9sb2Nh
dGlvblBvc2l0aW9uLmgiCiAKICNpbXBvcnQgIldlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5h
bC5oIgotI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmg+CiAjaW1wb3J0IDx3dGYvT3B0aW9uYWwu
aD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KIApAQCAtMzUsMTUgKzM1LDE1IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogQGludGVyZmFjZSBXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJu
YWwgOiBOU09iamVjdAogewogQHB1YmxpYwotICAgIEdlb2xvY2F0aW9uUG9zaXRpb24gX3Bvc2l0
aW9uOworICAgIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIF9wb3NpdGlvbjsKIH0KIAotLSAoaWQp
aW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjooR2VvbG9jYXRpb25Qb3NpdGlvbiYmKWNv
cmVHZW9sb2NhdGlvblBvc2l0aW9uOworLSAoaWQpaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3Np
dGlvbjooR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjsK
IEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbAog
Ci0tIChpZClpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0
aW9uJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb24KKy0gKGlkKWluaXRXaXRoQ29yZUdlb2xvY2F0
aW9uUG9zaXRpb246KEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYpY29yZUdlb2xvY2F0aW9uUG9z
aXRpb24KIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKQEAgLTU2
LDcgKzU2LDcgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bgogCi1PcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uPiBjb3JlKFdlYkdlb2xvY2F0aW9uUG9z
aXRpb24gKnBvc2l0aW9uKQorT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGNvcmUo
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbiAqcG9zaXRpb24pCiB7CiAgICAgaWYgKCFwb3NpdGlvbikK
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKQEAgLTY4LDExICs2OCwxMSBAQCAtIChpZClp
bml0V2l0aFRpbWVzdGFtcDooZG91YmxlKXRpbWVzdGFtcCBsYXRpdHVkZTooZG91YmxlKWxhdGl0
dWRlIGxvbmdpdHVkZTooZAogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxm
KQogICAgICAgICByZXR1cm4gbmlsOwotICAgIF9pbnRlcm5hbCA9IFtbV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbkludGVybmFsIGFsbG9jXSBpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOkdl
b2xvY2F0aW9uUG9zaXRpb24geyB0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3Vy
YWN5IH1dOworICAgIF9pbnRlcm5hbCA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFs
IGFsbG9jXSBpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOkdlb2xvY2F0aW9uUG9zaXRp
b25EYXRhIHsgdGltZXN0YW1wLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSB9XTsKICAg
ICByZXR1cm4gc2VsZjsKIH0KIAotLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0aW9uOihH
ZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb24KKy0gKGlkKWluaXRX
aXRoR2VvbG9jYXRpb25Qb3NpdGlvbjooR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiljb3JlR2Vv
bG9jYXRpb25Qb3NpdGlvbgogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFz
ZWxmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9s
b2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmgKaW5kZXggMzQ3NjMwMmYyZDYuLjdl
YWFhOWMwZWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
Ykdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmgKQEAgLTI3LDggKzI3
LDggQEAKICNpbXBvcnQgPHd0Zi9PcHRpb25hbC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0g
ICAgY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb25E
YXRhOwogfQogCi1PcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiBjb3JlKFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24gKik7CitPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBv
c2l0aW9uRGF0YT4gY29yZShXZWJHZW9sb2NhdGlvblBvc2l0aW9uICopOwogCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbSBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCmluZGV4IDFmOTYwYWFlMmRkLi4wMDY1OTU2
YzgxZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMu
bW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KQEAgLTQx
LDcgKzQxLDcgQEAKICNpbXBvcnQgIldvcmtRdWV1ZUl0ZW0uaCIKICNpbXBvcnQgPEZvdW5kYXRp
b24vRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdSZWZDRi5o
PgotI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+CisjaW1wb3J0IDxXZWJD
b3JlL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmg+CiAjaW1wb3J0IDxXZWJLaXQvRE9NRG9jdW1l
bnQuaD4KICNpbXBvcnQgPFdlYktpdC9ET01FbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJLaXQvRE9N
SFRNTElucHV0RWxlbWVudFByaXZhdGUuaD4KQEAgLTExOSw3ICsxMTksNyBAQCBAZW5kCiAjZW5k
aWYKIAogQGludGVyZmFjZSBXZWJHZW9sb2NhdGlvblBvc2l0aW9uIChJbnRlcm5hbCkKLS0gKGlk
KWluaXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlvbjooV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlv
biYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOworLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvblBv
c2l0aW9uOihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKWNvcmVHZW9sb2NhdGlv
blBvc2l0aW9uOwogQGVuZAogCiBUZXN0UnVubmVyOjp+VGVzdFJ1bm5lcigpCkBAIC00NzIsNyAr
NDcyLDcgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3Vi
bGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGQKICAgICAgICAgLy8gVGVzdCB0aGUgZXhw
b3NlZCBBUEkuCiAgICAgICAgIHBvc2l0aW9uID0gW1tXZWJHZW9sb2NhdGlvblBvc2l0aW9uIGFs
bG9jXSBpbml0V2l0aFRpbWVzdGFtcDpXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2go
KS5zZWNvbmRzKCkgbGF0aXR1ZGU6bGF0aXR1ZGUgbG9uZ2l0dWRlOmxvbmdpdHVkZSBhY2N1cmFj
eTphY2N1cmFjeV07CiAgICAgfSBlbHNlIHsKLSAgICAgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Q
b3NpdGlvbiBnZW9sb2NhdGlvblBvc2l0aW9uIHsgV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5j
ZUVwb2NoKCkuc2Vjb25kcygpLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSB9OworICAg
ICAgICBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBnZW9sb2NhdGlvblBvc2l0aW9u
IHsgV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpLCBsYXRpdHVk
ZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSB9OwogICAgICAgICBpZiAocHJvdmlkZXNBbHRpdHVkZSkK
ICAgICAgICAgICAgIGdlb2xvY2F0aW9uUG9zaXRpb24uYWx0aXR1ZGUgPSBhbHRpdHVkZTsKICAg
ICAgICAgaWYgKHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377070</attachid>
            <date>2019-08-22 16:27:59 -0700</date>
            <delta_ts>2019-08-22 16:30:52 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>200885_GeolocationPosition_wip.patch</filename>
            <type>text/plain</type>
            <size>86922</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMGUyOTNkMjUyOTMuLmE1YjYyZjQwOGRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMjYxLDEyICsyNjEsMTIgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19J
RExfRklMRVMKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaWRsCiAgICAgTW9kdWxl
cy9mZXRjaC9Xb3JrZXJHbG9iYWxTY29wZUZldGNoLmlkbAogCi0gICAgTW9kdWxlcy9nZW9sb2Nh
dGlvbi9Db29yZGluYXRlcy5pZGwKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmlkbAotICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCisgICAgTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmlkbAorICAgIE1vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbi5pZGwKKyAgICBNb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL05h
dmlnYXRvckdlb2xvY2F0aW9uLmlkbAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25D
YWxsYmFjay5pZGwKLSAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsCiAg
ICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsCiAgICAgTW9k
dWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IGU0MDgzZGQ5MGM3Li4zNTI2
ZmRhNmNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CkBAIC05OSw2ICs5OSw5IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZ2FtZXBhZC9H
YW1lcGFkRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9y
R2FtZXBhZC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0
ZXMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlk
bAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5h
dGVzLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBv
c2l0aW9uLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3IuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b3Bvc2l0aW9uLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0
b3JHZW9sb2NhdGlvbi5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9z
aXRpb25DYWxsYmFjay5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKaW5kZXggOTA2YzMxNDUzNzguLmViNzMzZmY3MGI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNjU1LDYg
KzY1NSwxMiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0dhbWVwYWRXZWJWUi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTR2FtZXBhZFdlYlZSLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb25D
b29yZGluYXRlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uUG9zaXRpb24uaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3Iu
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xv
Y2F0aW9uUG9zaXRpb25FcnJvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0dlb3Bvc2l0aW9uLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNHZW9wb3NpdGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlc3R1cmVFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCmluZGV4IDQ2NGMxM2YyNjE0Li4wYzI4YjY1N2I4NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNzEsMTIgKzE3MSwxMiBAQCBKU19CSU5ESU5HX0lETFMg
PSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZEJ1dHRvbi5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRFdmVudC5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaWRsIFwKLSAgICAkKFdl
YkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsIFwKLSAgICAkKFdlYkNvcmUp
L01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsIFwKKyAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbCBcCisgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2Nh
dGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNh
bGxiYWNrLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9u
RXJyb3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25F
cnJvckNhbGxiYWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bv
c2l0aW9uT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvRE9N
V2luZG93SW5kZXhlZERhdGFiYXNlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA3YjgyODBl
YmQwMi4uOTQzZjcwNDMyYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMjUsMTUgKzI1LDE1IEBA
IHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2ZldGNo
L0ZldGNoTG9hZGVyLmgKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyQ2xpZW50LmgKIAot
ICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaAotICAgIE1vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb24uaAorICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
aGkKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xpZW50LmgKICAgICBNb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oCisgICAgTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uRXJyb3IuaAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Q
b3NpdGlvbi5oCi0gICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5oCisgICAgTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oCisgICAgTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaAogICAgIE1vZHVsZXMvZ2VvbG9j
YXRpb24vUG9zaXRpb25DYWxsYmFjay5oCi0gICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlv
bkVycm9yLmgKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5o
CiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZpZXIuY3BwCmluZGV4IDc3
ZWJmMzQyMWM5Li43MGY4OTYyMWZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9Ob3RpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9Ob3RpZmllci5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgR2VvTm90aWZp
ZXI6Okdlb05vdGlmaWVyKEdlb2xvY2F0aW9uJiBnZW9sb2NhdGlvbiwgUmVmPFBvc2l0aW9uQ2Fs
bGJhY2s+JiYgc3VjY2UKIHsKIH0KIAotdm9pZCBHZW9Ob3RpZmllcjo6c2V0RmF0YWxFcnJvcihS
ZWZQdHI8UG9zaXRpb25FcnJvcj4mJiBlcnJvcikKK3ZvaWQgR2VvTm90aWZpZXI6OnNldEZhdGFs
RXJyb3IoUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4mJiBlcnJvcikKIHsKICAgICAv
LyBJZiBhIGZhdGFsIGVycm9yIGhhcyBhbHJlYWR5IGJlZW4gc2V0LCBzdGljayB3aXRoIGl0LiBU
aGlzIG1ha2VzIHN1cmUgdGhhdAogICAgIC8vIHdoZW4gcGVybWlzc2lvbiBpcyBkZW5pZWQsIHRo
aXMgaXMgdGhlIGVycm9yIHJlcG9ydGVkLCBhcyByZXF1aXJlZCBieSB0aGUKQEAgLTY5LDcgKzY5
LDcgQEAgYm9vbCBHZW9Ob3RpZmllcjo6aGFzWmVyb1RpbWVvdXQoKSBjb25zdAogICAgIHJldHVy
biAhbV9vcHRpb25zLnRpbWVvdXQ7CiB9CiAKLXZvaWQgR2VvTm90aWZpZXI6OnJ1blN1Y2Nlc3ND
YWxsYmFjayhHZW9wb3NpdGlvbiogcG9zaXRpb24pCit2b2lkIEdlb05vdGlmaWVyOjpydW5TdWNj
ZXNzQ2FsbGJhY2soR2VvbG9jYXRpb25Qb3NpdGlvbiogcG9zaXRpb24pCiB7CiAgICAgLy8gSWYg
d2UgYXJlIGhlcmUgYW5kIHRoZSBHZW9sb2NhdGlvbiBwZXJtaXNzaW9uIGlzIG5vdCBhcHByb3Zl
ZCwgc29tZXRoaW5nIGhhcwogICAgIC8vIGdvbmUgaG9ycmlibHkgd3JvbmcuCkBAIC03OSw3ICs3
OSw3IEBAIHZvaWQgR2VvTm90aWZpZXI6OnJ1blN1Y2Nlc3NDYWxsYmFjayhHZW9wb3NpdGlvbiog
cG9zaXRpb24pCiAgICAgbV9zdWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2ZW50KHBvc2l0aW9uKTsK
IH0KIAotdm9pZCBHZW9Ob3RpZmllcjo6cnVuRXJyb3JDYWxsYmFjayhQb3NpdGlvbkVycm9yJiBl
cnJvcikKK3ZvaWQgR2VvTm90aWZpZXI6OnJ1bkVycm9yQ2FsbGJhY2soR2VvbG9jYXRpb25Qb3Np
dGlvbkVycm9yJiBlcnJvcikKIHsKICAgICBpZiAobV9lcnJvckNhbGxiYWNrKQogICAgICAgICBt
X2Vycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KGVycm9yKTsKQEAgLTEyMSw3ICsxMjEsNyBAQCB2
b2lkIEdlb05vdGlmaWVyOjp0aW1lckZpcmVkKCkKICAgICB9CiAgICAgCiAgICAgaWYgKG1fZXJy
b3JDYWxsYmFjaykgewotICAgICAgICBhdXRvIGVycm9yID0gUG9zaXRpb25FcnJvcjo6Y3JlYXRl
KFBvc2l0aW9uRXJyb3I6OlRJTUVPVVQsICJUaW1lb3V0IGV4cGlyZWQiX3MpOworICAgICAgICBh
dXRvIGVycm9yID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yOjpUSU1FT1VULCAiVGltZW91dCBleHBpcmVkIl9zKTsKICAgICAgICAgbV9l
cnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChlcnJvcik7CiAgICAgfQogICAgIG1fZ2VvbG9jYXRp
b24tPnJlcXVlc3RUaW1lZE91dCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vR2VvTm90aWZpZXIuaAppbmRleCBmYjMyY2U4ZDliZi4uZGI5MTNlZjkwYzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZp
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVy
LmgKQEAgLTM2LDEwICszNiwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEdl
b3Bvc2l0aW9uOwogY2xhc3MgR2VvbG9jYXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9u
OworY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOwogY2xhc3MgUG9zaXRpb25DYWxsYmFj
azsKLWNsYXNzIFBvc2l0aW9uRXJyb3I7CiBjbGFzcyBQb3NpdGlvbkVycm9yQ2FsbGJhY2s7CiAK
IGNsYXNzIEdlb05vdGlmaWVyIDogcHVibGljIFJlZkNvdW50ZWQ8R2VvTm90aWZpZXI+IHsKQEAg
LTUwLDEzICs1MCwxMyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgY29uc3QgUG9zaXRpb25PcHRp
b25zJiBvcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zOyB9Ci0gICAgdm9pZCBzZXRG
YXRhbEVycm9yKFJlZlB0cjxQb3NpdGlvbkVycm9yPiYmKTsKKyAgICB2b2lkIHNldEZhdGFsRXJy
b3IoUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4mJik7CiAKICAgICBib29sIHVzZUNh
Y2hlZFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV91c2VDYWNoZWRQb3NpdGlvbjsgfQogICAg
IHZvaWQgc2V0VXNlQ2FjaGVkUG9zaXRpb24oKTsKIAotICAgIHZvaWQgcnVuU3VjY2Vzc0NhbGxi
YWNrKEdlb3Bvc2l0aW9uKik7IC8vIEZJWE1FOiBUaGlzIHNob3VsZCB0YWtlIGEgcmVmZXJlbmNl
LgotICAgIHZvaWQgcnVuRXJyb3JDYWxsYmFjayhQb3NpdGlvbkVycm9yJik7CisgICAgdm9pZCBy
dW5TdWNjZXNzQ2FsbGJhY2soR2VvbG9jYXRpb25Qb3NpdGlvbiopOyAvLyBGSVhNRTogVGhpcyBz
aG91bGQgdGFrZSBhIHJlZmVyZW5jZS4KKyAgICB2b2lkIHJ1bkVycm9yQ2FsbGJhY2soR2VvbG9j
YXRpb25Qb3NpdGlvbkVycm9yJik7CiAKICAgICB2b2lkIHN0YXJ0VGltZXJJZk5lZWRlZCgpOwog
ICAgIHZvaWQgc3RvcFRpbWVyKCk7CkBAIC03MSw3ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgUmVm
UHRyPFBvc2l0aW9uRXJyb3JDYWxsYmFjaz4gbV9lcnJvckNhbGxiYWNrOwogICAgIFBvc2l0aW9u
T3B0aW9ucyBtX29wdGlvbnM7CiAgICAgVGltZXIgbV90aW1lcjsKLSAgICBSZWZQdHI8UG9zaXRp
b25FcnJvcj4gbV9mYXRhbEVycm9yOworICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uRXJy
b3I+IG1fZmF0YWxFcnJvcjsKICAgICBib29sIG1fdXNlQ2FjaGVkUG9zaXRpb247CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3Bw
CmluZGV4IGUyNjkxZjU5N2ZlLi5mMTJlMTQ5MGZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKQEAgLTMwLDE3ICszMCwxNiBA
QAogCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogCi0jaW5jbHVkZSAiQ29vcmRpbmF0ZXMuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiR2Vv
Tm90aWZpZXIuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRl
ICJHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25FcnJvci5o
IgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKLSNpbmNsdWRlICJHZW9wb3NpdGlv
bi5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiTmF2
aWdhdG9yLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIK
ICNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC01NiwyOCAr
NTUsMjggQEAgc3RhdGljIGNvbnN0IEFTQ0lJTGl0ZXJhbCBvcmlnaW5DYW5ub3RSZXF1ZXN0R2Vv
bG9jYXRpb25FcnJvck1lc3NhZ2UgeyAiT3JpZ2luIGQKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRF
RF9JTVBMKEdlb2xvY2F0aW9uKTsKIAotc3RhdGljIFJlZlB0cjxHZW9wb3NpdGlvbj4gY3JlYXRl
R2VvcG9zaXRpb24oT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4mJiBwb3NpdGlvbikKK3N0
YXRpYyBSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlv
bihPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4mJiBwb3NpdGlvbikKIHsKICAgICBp
ZiAoIXBvc2l0aW9uKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBET01UaW1l
U3RhbXAgdGltZXN0YW1wID0gY29udmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcChwb3NpdGlvbi0+
dGltZXN0YW1wKTsKLSAgICByZXR1cm4gR2VvcG9zaXRpb246OmNyZWF0ZShDb29yZGluYXRlczo6
Y3JlYXRlKFdURk1vdmUocG9zaXRpb24udmFsdWUoKSkpLCB0aW1lc3RhbXApOworICAgIHJldHVy
biBHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoR2VvbG9jYXRpb25Db29yZGluYXRlczo6Y3Jl
YXRlKFdURk1vdmUocG9zaXRpb24udmFsdWUoKSkpLCB0aW1lc3RhbXApOwogfQogCi1zdGF0aWMg
UmVmPFBvc2l0aW9uRXJyb3I+IGNyZWF0ZVBvc2l0aW9uRXJyb3IoR2VvbG9jYXRpb25FcnJvciYg
ZXJyb3IpCitzdGF0aWMgUmVmPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gY3JlYXRlR2VvbG9j
YXRpb25Qb3NpdGlvbkVycm9yKEdlb2xvY2F0aW9uRXJyb3ImIGVycm9yKQogewotICAgIFBvc2l0
aW9uRXJyb3I6OkVycm9yQ29kZSBjb2RlID0gUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJ
TEFCTEU7CisgICAgYXV0byBjb2RlID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQT1NJVElP
Tl9VTkFWQUlMQUJMRTsKICAgICBzd2l0Y2ggKGVycm9yLmNvZGUoKSkgewogICAgIGNhc2UgR2Vv
bG9jYXRpb25FcnJvcjo6UGVybWlzc2lvbkRlbmllZDoKLSAgICAgICAgY29kZSA9IFBvc2l0aW9u
RXJyb3I6OlBFUk1JU1NJT05fREVOSUVEOworICAgICAgICBjb2RlID0gR2VvbG9jYXRpb25Qb3Np
dGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBH
ZW9sb2NhdGlvbkVycm9yOjpQb3NpdGlvblVuYXZhaWxhYmxlOgotICAgICAgICBjb2RlID0gUG9z
aXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEU7CisgICAgICAgIGNvZGUgPSBHZW9sb2Nh
dGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxFOwogICAgICAgICBicmVhazsK
ICAgICB9CiAKLSAgICByZXR1cm4gUG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIGVycm9yLm1l
c3NhZ2UoKSk7CisgICAgcmV0dXJuIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNv
ZGUsIGVycm9yLm1lc3NhZ2UoKSk7CiB9CiAKIGJvb2wgR2VvbG9jYXRpb246OldhdGNoZXJzOjph
ZGQoaW50IGlkLCBSZWZQdHI8R2VvTm90aWZpZXI+JiYgbm90aWZpZXIpCkBAIC0yOTAsMTMgKzI4
OSwxMyBAQCBjb25zdCBjaGFyKiBHZW9sb2NhdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0CiAgICAgcmV0dXJuICJHZW9sb2NhdGlvbiI7CiB9CiAKLUdlb3Bvc2l0aW9uKiBHZW9sb2Nh
dGlvbjo6bGFzdFBvc2l0aW9uKCkKK0dlb2xvY2F0aW9uUG9zaXRpb24qIEdlb2xvY2F0aW9uOjps
YXN0UG9zaXRpb24oKQogewogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgaWYg
KCFwYWdlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIG1fbGFzdFBvc2l0aW9uID0g
Y3JlYXRlR2VvcG9zaXRpb24oR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5sYXN0
UG9zaXRpb24oKSk7CisgICAgbV9sYXN0UG9zaXRpb24gPSBjcmVhdGVHZW9sb2NhdGlvblBvc2l0
aW9uKEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKS0+bGFzdFBvc2l0aW9uKCkpOwog
CiAgICAgcmV0dXJuIG1fbGFzdFBvc2l0aW9uLmdldCgpOwogfQpAQCAtMzczLDcgKzM3Miw3IEBA
IGJvb2wgR2VvbG9jYXRpb246OnNob3VsZEJsb2NrR2VvbG9jYXRpb25SZXF1ZXN0cygpCiB2b2lk
IEdlb2xvY2F0aW9uOjpzdGFydFJlcXVlc3QoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogewogICAg
IGlmIChzaG91bGRCbG9ja0dlb2xvY2F0aW9uUmVxdWVzdHMoKSkgewotICAgICAgICBub3RpZmll
ci0+c2V0RmF0YWxFcnJvcihQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UE9T
SVRJT05fVU5BVkFJTEFCTEUsIG9yaWdpbkNhbm5vdFJlcXVlc3RHZW9sb2NhdGlvbkVycm9yTWVz
c2FnZSkpOworICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihHZW9sb2NhdGlvblBvc2l0
aW9uRXJyb3I6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZB
SUxBQkxFLCBvcmlnaW5DYW5ub3RSZXF1ZXN0R2VvbG9jYXRpb25FcnJvck1lc3NhZ2UpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBkb2N1bWVudCgpLT5zZXRHZW9sb2NhdGlvbkFjY2Vz
c2VkKCk7CkBAIC0zODEsNyArMzgwLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RhcnRSZXF1ZXN0
KEdlb05vdGlmaWVyKiBub3RpZmllcikKICAgICAvLyBDaGVjayB3aGV0aGVyIHBlcm1pc3Npb25z
IGhhdmUgYWxyZWFkeSBiZWVuIGRlbmllZC4gTm90ZSB0aGF0IGlmIHRoaXMgaXMgdGhlIGNhc2Us
CiAgICAgLy8gdGhlIHBlcm1pc3Npb24gc3RhdGUgY2FuIG5vdCBjaGFuZ2UgYWdhaW4gaW4gdGhl
IGxpZmV0aW1lIG9mIHRoaXMgcGFnZS4KICAgICBpZiAoaXNEZW5pZWQoKSkKLSAgICAgICAgbm90
aWZpZXItPnNldEZhdGFsRXJyb3IoUG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6
OlBFUk1JU1NJT05fREVOSUVELCBwZXJtaXNzaW9uRGVuaWVkRXJyb3JNZXNzYWdlKSk7CisgICAg
ICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3Jl
YXRlKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Np
b25EZW5pZWRFcnJvck1lc3NhZ2UpKTsKICAgICBlbHNlIGlmIChoYXZlU3VpdGFibGVDYWNoZWRQ
b3NpdGlvbihub3RpZmllci0+b3B0aW9ucygpKSkKICAgICAgICAgbm90aWZpZXItPnNldFVzZUNh
Y2hlZFBvc2l0aW9uKCk7CiAgICAgZWxzZSBpZiAobm90aWZpZXItPmhhc1plcm9UaW1lb3V0KCkp
CkBAIC0zOTMsNyArMzkyLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RhcnRSZXF1ZXN0KEdlb05v
dGlmaWVyKiBub3RpZmllcikKICAgICB9IGVsc2UgaWYgKHN0YXJ0VXBkYXRpbmcobm90aWZpZXIp
KQogICAgICAgICBub3RpZmllci0+c3RhcnRUaW1lcklmTmVlZGVkKCk7CiAgICAgZWxzZQotICAg
ICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRp
b25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JN
ZXNzYWdlKSk7CisgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKEdlb2xvY2F0aW9uUG9z
aXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5B
VkFJTEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CiB9CiAKIHZvaWQg
R2VvbG9jYXRpb246OmZhdGFsRXJyb3JPY2N1cnJlZChHZW9Ob3RpZmllciogbm90aWZpZXIpCkBA
IC00MTEsNyArNDEwLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6cmVxdWVzdFVzZXNDYWNoZWRQb3Np
dGlvbihHZW9Ob3RpZmllciogbm90aWZpZXIpCiAgICAgLy8gVGhpcyBpcyBjYWxsZWQgYXN5bmNo
cm9ub3VzbHksIHNvIHRoZSBwZXJtaXNzaW9ucyBjb3VsZCBoYXZlIGJlZW4gZGVuaWVkCiAgICAg
Ly8gc2luY2Ugd2UgbGFzdCBjaGVja2VkIGluIHN0YXJ0UmVxdWVzdC4KICAgICBpZiAoaXNEZW5p
ZWQoKSkgewotICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihQb3NpdGlvbkVycm9yOjpj
cmVhdGUoUG9zaXRpb25FcnJvcjo6UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Npb25EZW5pZWRF
cnJvck1lc3NhZ2UpKTsKKyAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRp
b25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNT
SU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZSkpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC00NDMsNyArNDQyLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6bWFrZUNh
Y2hlZFBvc2l0aW9uQ2FsbGJhY2tzKCkKICAgICAgICAgICAgIGlmIChub3RpZmllci0+aGFzWmVy
b1RpbWVvdXQoKSB8fCBzdGFydFVwZGF0aW5nKG5vdGlmaWVyLmdldCgpKSkKICAgICAgICAgICAg
ICAgICBub3RpZmllci0+c3RhcnRUaW1lcklmTmVlZGVkKCk7CiAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoUG9zaXRpb25FcnJvcjo6Y3Jl
YXRlKFBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxFLCBmYWlsZWRUb1N0YXJ0U2Vy
dmljZUVycm9yTWVzc2FnZSkpOworICAgICAgICAgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVy
cm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb25F
cnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JNZXNz
YWdlKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTQ2NCw3ICs0NjMsNyBAQCB2b2lkIEdlb2xv
Y2F0aW9uOjpyZXF1ZXN0VGltZWRPdXQoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogCiBib29sIEdl
b2xvY2F0aW9uOjpoYXZlU3VpdGFibGVDYWNoZWRQb3NpdGlvbihjb25zdCBQb3NpdGlvbk9wdGlv
bnMmIG9wdGlvbnMpCiB7Ci0gICAgR2VvcG9zaXRpb24qIGNhY2hlZFBvc2l0aW9uID0gbGFzdFBv
c2l0aW9uKCk7CisgICAgYXV0byogY2FjaGVkUG9zaXRpb24gPSBsYXN0UG9zaXRpb24oKTsKICAg
ICBpZiAoIWNhY2hlZFBvc2l0aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFv
cHRpb25zLm1heGltdW1BZ2UpCkBAIC01MDYsNyArNTA1LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6
c2V0SXNBbGxvd2VkKGJvb2wgYWxsb3dlZCkKICAgICB9CiAKICAgICBpZiAoIWlzQWxsb3dlZCgp
KSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25F
cnJvcjo6UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2UpOwor
ICAgICAgICBhdXRvIGVycm9yID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2Vv
bG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmll
ZEVycm9yTWVzc2FnZSk7CiAgICAgICAgIGVycm9yLT5zZXRJc0ZhdGFsKHRydWUpOwogICAgICAg
ICBoYW5kbGVFcnJvcihlcnJvcik7CiAgICAgICAgIG1fcmVxdWVzdHNBd2FpdGluZ0NhY2hlZFBv
c2l0aW9uLmNsZWFyKCk7CkBAIC01MTgsMTkgKzUxNywxOSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpz
ZXRJc0FsbG93ZWQoYm9vbCBhbGxvd2VkKQogICAgIC8vIElmIHRoZSBzZXJ2aWNlIGhhcyBhIGxh
c3QgcG9zaXRpb24sIHVzZSBpdCB0byBjYWxsIGJhY2sgZm9yIGFsbCByZXF1ZXN0cy4KICAgICAv
LyBJZiBhbnkgb2YgdGhlIHJlcXVlc3RzIGFyZSB3YWl0aW5nIGZvciBwZXJtaXNzaW9uIGZvciBh
IGNhY2hlZCBwb3NpdGlvbiwKICAgICAvLyB0aGUgcG9zaXRpb24gZnJvbSB0aGUgc2VydmljZSB3
aWxsIGJlIGF0IGxlYXN0IGFzIGZyZXNoLgotICAgIGlmIChSZWZQdHI8R2VvcG9zaXRpb24+IHBv
c2l0aW9uID0gbGFzdFBvc2l0aW9uKCkpCisgICAgaWYgKFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0
aW9uPiBwb3NpdGlvbiA9IGxhc3RQb3NpdGlvbigpKQogICAgICAgICBtYWtlU3VjY2Vzc0NhbGxi
YWNrcygqcG9zaXRpb24pOwogICAgIGVsc2UKICAgICAgICAgbWFrZUNhY2hlZFBvc2l0aW9uQ2Fs
bGJhY2tzKCk7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb246OnNlbmRFcnJvcihHZW9Ob3RpZmllclZl
Y3RvciYgbm90aWZpZXJzLCBQb3NpdGlvbkVycm9yJiBlcnJvcikKK3ZvaWQgR2VvbG9jYXRpb246
OnNlbmRFcnJvcihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZpZXJzLCBHZW9sb2NhdGlvblBvc2l0
aW9uRXJyb3ImIGVycm9yKQogewogICAgIGZvciAoYXV0byYgbm90aWZpZXIgOiBub3RpZmllcnMp
CiAgICAgICAgIG5vdGlmaWVyLT5ydW5FcnJvckNhbGxiYWNrKGVycm9yKTsKIH0KIAotdm9pZCBH
ZW9sb2NhdGlvbjo6c2VuZFBvc2l0aW9uKEdlb05vdGlmaWVyVmVjdG9yJiBub3RpZmllcnMsIEdl
b3Bvc2l0aW9uJiBwb3NpdGlvbikKK3ZvaWQgR2VvbG9jYXRpb246OnNlbmRQb3NpdGlvbihHZW9O
b3RpZmllclZlY3RvciYgbm90aWZpZXJzLCBHZW9sb2NhdGlvblBvc2l0aW9uJiBwb3NpdGlvbikK
IHsKICAgICBmb3IgKGF1dG8mIG5vdGlmaWVyIDogbm90aWZpZXJzKQogICAgICAgICBub3RpZmll
ci0+cnVuU3VjY2Vzc0NhbGxiYWNrKCZwb3NpdGlvbik7CkBAIC01NjUsNyArNTY0LDcgQEAgdm9p
ZCBHZW9sb2NhdGlvbjo6c3RvcFRpbWVycygpCiB2b2lkIEdlb2xvY2F0aW9uOjpjYW5jZWxSZXF1
ZXN0cyhHZW9Ob3RpZmllclZlY3RvciYgbm90aWZpZXJzKQogewogICAgIGZvciAoYXV0byYgbm90
aWZpZXIgOiBub3RpZmllcnMpCi0gICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBvc2l0
aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgZnJh
bWVsZXNzRG9jdW1lbnRFcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgbm90aWZpZXItPnNldEZhdGFs
RXJyb3IoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlv
bkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgZnJhbWVsZXNzRG9jdW1lbnRFcnJvck1lc3Nh
Z2UpKTsKIH0KIAogdm9pZCBHZW9sb2NhdGlvbjo6Y2FuY2VsQWxsUmVxdWVzdHMoKQpAQCAtNTk1
LDcgKzU5NCw3IEBAIHZvaWQgR2VvbG9jYXRpb246OmNvcHlUb1NldChjb25zdCBHZW9Ob3RpZmll
clZlY3RvciYgc3JjLCBHZW9Ob3RpZmllclNldCYgZGVzdCkKICAgICAgICAgZGVzdC5hZGQobm90
aWZpZXIuZ2V0KCkpOwogfQogCi12b2lkIEdlb2xvY2F0aW9uOjpoYW5kbGVFcnJvcihQb3NpdGlv
bkVycm9yJiBlcnJvcikKK3ZvaWQgR2VvbG9jYXRpb246OmhhbmRsZUVycm9yKEdlb2xvY2F0aW9u
UG9zaXRpb25FcnJvciYgZXJyb3IpCiB7CiAgICAgYXV0byBvbmVTaG90c0NvcHkgPSBjb3B5VG9W
ZWN0b3IobV9vbmVTaG90cyk7CiAKQEAgLTY0Myw3ICs2NDIsNyBAQCB2b2lkIEdlb2xvY2F0aW9u
OjpyZXF1ZXN0UGVybWlzc2lvbigpCiAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBh
Z2UpLT5yZXF1ZXN0UGVybWlzc2lvbigqdGhpcyk7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb246Om1h
a2VTdWNjZXNzQ2FsbGJhY2tzKEdlb3Bvc2l0aW9uJiBwb3NpdGlvbikKK3ZvaWQgR2VvbG9jYXRp
b246Om1ha2VTdWNjZXNzQ2FsbGJhY2tzKEdlb2xvY2F0aW9uUG9zaXRpb24mIHBvc2l0aW9uKQog
ewogICAgIEFTU0VSVChsYXN0UG9zaXRpb24oKSk7CiAgICAgQVNTRVJUKGlzQWxsb3dlZCgpKTsK
QEAgLTY3Nyw3ICs2NzYsNyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpwb3NpdGlvbkNoYW5nZWQoKQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUmVmUHRyPEdlb3Bvc2l0aW9uPiBwb3NpdGlv
biA9IGxhc3RQb3NpdGlvbigpOworICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3Np
dGlvbiA9IGxhc3RQb3NpdGlvbigpOwogICAgIEFTU0VSVChwb3NpdGlvbik7CiAKICAgICBtYWtl
U3VjY2Vzc0NhbGxiYWNrcygqcG9zaXRpb24pOwpAQCAtNjg2LDExICs2ODUsMTEgQEAgdm9pZCBH
ZW9sb2NhdGlvbjo6cG9zaXRpb25DaGFuZ2VkKCkKIHZvaWQgR2VvbG9jYXRpb246OnNldEVycm9y
KEdlb2xvY2F0aW9uRXJyb3ImIGVycm9yKQogewogICAgIGlmIChtX2lzU3VzcGVuZGVkKSB7Ci0g
ICAgICAgIG1fZXJyb3JXYWl0aW5nRm9yUmVzdW1lID0gY3JlYXRlUG9zaXRpb25FcnJvcihlcnJv
cik7CisgICAgICAgIG1fZXJyb3JXYWl0aW5nRm9yUmVzdW1lID0gY3JlYXRlR2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yKGVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8g
cG9zaXRpb25FcnJvciA9IGNyZWF0ZVBvc2l0aW9uRXJyb3IoZXJyb3IpOworICAgIGF1dG8gcG9z
aXRpb25FcnJvciA9IGNyZWF0ZUdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcihlcnJvcik7CiAgICAg
aGFuZGxlRXJyb3IocG9zaXRpb25FcnJvcik7CiB9CiAKQEAgLTcyNCw5ICs3MjMsOSBAQCB2b2lk
IEdlb2xvY2F0aW9uOjpoYW5kbGVQZW5kaW5nUGVybWlzc2lvbk5vdGlmaWVycygpCiAgICAgICAg
ICAgICBpZiAoc3RhcnRVcGRhdGluZyhub3RpZmllci5nZXQoKSkpCiAgICAgICAgICAgICAgICAg
bm90aWZpZXItPnN0YXJ0VGltZXJJZk5lZWRlZCgpOwogICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQ
b3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgZmFpbGVkVG9TdGFydFNlcnZpY2VF
cnJvck1lc3NhZ2UpKTsKKyAgICAgICAgICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihH
ZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6
OlBPU0lUSU9OX1VOQVZBSUxBQkxFLCBmYWlsZWRUb1N0YXJ0U2VydmljZUVycm9yTWVzc2FnZSkp
OwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBv
c2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVy
bWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZSkpOworICAgICAgICAgICAgbm90aWZpZXItPnNldEZh
dGFsRXJyb3IoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3Np
dGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2Fn
ZSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5oCmluZGV4IDJhMDE5OGVlY2RjLi40NjBjOTEyMTg0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaApAQCAtMzAs
OSArMzAsOSBAQAogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKLSNpbmNsdWRlICJHZW9wb3NpdGlvbi5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9u
UG9zaXRpb24uaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaCIKICNpbmNs
dWRlICJQb3NpdGlvbkNhbGxiYWNrLmgiCi0jaW5jbHVkZSAiUG9zaXRpb25FcnJvci5oIgogI2lu
Y2x1ZGUgIlBvc2l0aW9uRXJyb3JDYWxsYmFjay5oIgogI2luY2x1ZGUgIlBvc2l0aW9uT3B0aW9u
cy5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgpAQCAtNzksNyArNzksNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEdlb2xvY2F0aW9uKE5hdmlnYXRvciYpOwogCi0g
ICAgR2VvcG9zaXRpb24qIGxhc3RQb3NpdGlvbigpOworICAgIEdlb2xvY2F0aW9uUG9zaXRpb24q
IGxhc3RQb3NpdGlvbigpOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgdm9pZCBzdG9w
KCkgb3ZlcnJpZGU7CkBAIC0xMTUsOCArMTE1LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaGFz
TGlzdGVuZXJzKCkgY29uc3QgeyByZXR1cm4gIW1fb25lU2hvdHMuaXNFbXB0eSgpIHx8ICFtX3dh
dGNoZXJzLmlzRW1wdHkoKTsgfQogCi0gICAgdm9pZCBzZW5kRXJyb3IoR2VvTm90aWZpZXJWZWN0
b3ImLCBQb3NpdGlvbkVycm9yJik7Ci0gICAgdm9pZCBzZW5kUG9zaXRpb24oR2VvTm90aWZpZXJW
ZWN0b3ImLCBHZW9wb3NpdGlvbiYpOworICAgIHZvaWQgc2VuZEVycm9yKEdlb05vdGlmaWVyVmVj
dG9yJiwgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yJik7CisgICAgdm9pZCBzZW5kUG9zaXRpb24o
R2VvTm90aWZpZXJWZWN0b3ImLCBHZW9sb2NhdGlvblBvc2l0aW9uJik7CiAKICAgICBzdGF0aWMg
dm9pZCBleHRyYWN0Tm90aWZpZXJzV2l0aENhY2hlZFBvc2l0aW9uKEdlb05vdGlmaWVyVmVjdG9y
JiBub3RpZmllcnMsIEdlb05vdGlmaWVyVmVjdG9yKiBjYWNoZWQpOwogICAgIHN0YXRpYyB2b2lk
IGNvcHlUb1NldChjb25zdCBHZW9Ob3RpZmllclZlY3RvciYsIEdlb05vdGlmaWVyU2V0Jik7CkBA
IC0xMjksOCArMTI5LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGNhbmNlbFJlcXVlc3RzKEdlb05v
dGlmaWVyVmVjdG9yJik7CiAgICAgdm9pZCBjYW5jZWxBbGxSZXF1ZXN0cygpOwogCi0gICAgdm9p
ZCBtYWtlU3VjY2Vzc0NhbGxiYWNrcyhHZW9wb3NpdGlvbiYpOwotICAgIHZvaWQgaGFuZGxlRXJy
b3IoUG9zaXRpb25FcnJvciYpOworICAgIHZvaWQgbWFrZVN1Y2Nlc3NDYWxsYmFja3MoR2VvbG9j
YXRpb25Qb3NpdGlvbiYpOworICAgIHZvaWQgaGFuZGxlRXJyb3IoR2VvbG9jYXRpb25Qb3NpdGlv
bkVycm9yJik7CiAKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKCk7CiAKQEAgLTE1MywxMyAr
MTUzLDEzIEBAIHByaXZhdGU6CiAgICAgR2VvTm90aWZpZXJTZXQgbV9vbmVTaG90czsKICAgICBX
YXRjaGVycyBtX3dhdGNoZXJzOwogICAgIEdlb05vdGlmaWVyU2V0IG1fcGVuZGluZ0ZvclBlcm1p
c3Npb25Ob3RpZmllcnM7Ci0gICAgUmVmUHRyPEdlb3Bvc2l0aW9uPiBtX2xhc3RQb3NpdGlvbjsK
KyAgICBSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247CiAKICAgICBl
bnVtIHsgVW5rbm93biwgSW5Qcm9ncmVzcywgWWVzLCBObyB9IG1fYWxsb3dHZW9sb2NhdGlvbiB7
IFVua25vd24gfTsKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9yZXNldE9uUmVzdW1lIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzQ2hhbmdlZFBvc2l0aW9u
IHsgZmFsc2UgfTsKLSAgICBSZWZQdHI8UG9zaXRpb25FcnJvcj4gbV9lcnJvcldhaXRpbmdGb3JS
ZXN1bWU7CisgICAgUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gbV9lcnJvcldhaXRp
bmdGb3JSZXN1bWU7CiAgICAgVGltZXIgbV9yZXN1bWVUaW1lcjsKICAgICBHZW9Ob3RpZmllclNl
dCBtX3JlcXVlc3RzQXdhaXRpbmdDYWNoZWRQb3NpdGlvbjsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xpZW50LmgKaW5kZXgg
ZTdlMGU3NmQ0MGYuLjI5NzAzZmJiN2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNsaWVudC5oCkBAIC0zMCw3ICszMCw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEdlb2xvY2F0aW9uOwotY2xhc3MgR2VvbG9j
YXRpb25Qb3NpdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOwogY2xhc3MgUGFn
ZTsKIAogY2xhc3MgR2VvbG9jYXRpb25DbGllbnQgewpAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6
CiAgICAgLy8gV2Ugc2hvdWxkIHVwZGF0ZSBXZWJLaXQgdG8gcmVmbGVjdCB0aGlzIGlmIGFuZCB3
aGVuIHRoZSBWMiBzcGVjaWZpY2F0aW9uCiAgICAgLy8gaXMgcHVibGlzaGVkLgogICAgIHZpcnR1
YWwgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgT3B0
aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbGFzdFBvc2l0aW9uKCkgPSAwOworICAgIHZpcnR1
YWwgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlvbigpID0gMDsK
IAogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihHZW9sb2NhdGlvbiYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoR2VvbG9jYXRpb24mKSA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggY2Q4MDcwYjIwN2QuLmM2YTI4MmZjZTkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAKICNpbmNsdWRl
ICJHZW9sb2NhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uRXJyb3IuaCIKLSNp
bmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCisjaW5jbHVkZSAiR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC05OSw3ICs5OSw3IEBAIHZv
aWQgR2VvbG9jYXRpb25Db250cm9sbGVyOjpjYW5jZWxQZXJtaXNzaW9uUmVxdWVzdChHZW9sb2Nh
dGlvbiYgZ2VvbG9jYXRpb24pCiAgICAgbV9jbGllbnQuY2FuY2VsUGVybWlzc2lvblJlcXVlc3Qo
Z2VvbG9jYXRpb24pOwogfQogCi12b2lkIEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6cG9zaXRpb25D
aGFuZ2VkKGNvbnN0IE9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+JiBwb3NpdGlvbikKK3Zv
aWQgR2VvbG9jYXRpb25Db250cm9sbGVyOjpwb3NpdGlvbkNoYW5nZWQoY29uc3QgT3B0aW9uYWw8
R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+JiBwb3NpdGlvbikKIHsKICAgICBtX2xhc3RQb3NpdGlv
biA9IHBvc2l0aW9uOwogICAgIFZlY3RvcjxSZWY8R2VvbG9jYXRpb24+PiBvYnNlcnZlcnNWZWN0
b3I7CkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmVycm9y
T2NjdXJyZWQoR2VvbG9jYXRpb25FcnJvciYgZXJyb3IpCiAgICAgICAgIG9ic2VydmVyLT5zZXRF
cnJvcihlcnJvcik7CiB9CiAKLU9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+IEdlb2xvY2F0
aW9uQ29udHJvbGxlcjo6bGFzdFBvc2l0aW9uKCkKK09wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRp
b25EYXRhPiBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgaWYg
KG1fbGFzdFBvc2l0aW9uKQogICAgICAgICByZXR1cm4gbV9sYXN0UG9zaXRpb24udmFsdWUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uQ29udHJvbGxlci5oCmluZGV4IDBjNzA0OWJhMTAxLi41NDkzNGQ3OWEwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uQ29udHJvbGxlci5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgR2VvbG9jYXRpb25DbGllbnQ7CiBjbGFzcyBHZW9sb2NhdGlvbkVycm9yOwotY2xhc3Mg
R2VvbG9jYXRpb25Qb3NpdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOwogCiBj
bGFzcyBHZW9sb2NhdGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdlPiwgcHJp
dmF0ZSBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwpAQCAtNTMsMTAgKzUzLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RQZXJt
aXNzaW9uKEdlb2xvY2F0aW9uJik7CiAgICAgdm9pZCBjYW5jZWxQZXJtaXNzaW9uUmVxdWVzdChH
ZW9sb2NhdGlvbiYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3NpdGlvbkNoYW5nZWQo
Y29uc3QgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4mKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHBvc2l0aW9uQ2hhbmdlZChjb25zdCBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9u
RGF0YT4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVycm9yT2NjdXJyZWQoR2VvbG9jYXRp
b25FcnJvciYpOwogCi0gICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbGFzdFBvc2l0
aW9uKCk7CisgICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlv
bigpOwogCiAgICAgR2VvbG9jYXRpb25DbGllbnQmIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50
OyB9CiAKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgYWN0aXZpdHlTdGF0
ZURpZENoYW5nZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4gb2xkQWN0aXZpdHlTdGF0
ZSwgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU6OkZsYWc+IG5ld0FjdGl2aXR5U3RhdGUpIG92ZXJy
aWRlOwogCi0gICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247
CisgICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IG1fbGFzdFBvc2l0aW9uOwog
CiAgICAgdHlwZWRlZiBIYXNoU2V0PFJlZjxHZW9sb2NhdGlvbj4+IE9ic2VydmVyc1NldDsKICAg
ICAvLyBBbGwgb2JzZXJ2ZXJzOyBib3RoIHRob3NlIHJlcXVlc3RpbmcgaGlnaCBhY2N1cmFjeSBh
bmQgdGhvc2Ugbm90LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9Db29yZGluYXRlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwCnNpbWlsYXJpdHkgaW5kZXggOTIlCnJlbmFtZSBm
cm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuY3BwCnJl
bmFtZSB0byBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29v
cmRpbmF0ZXMuY3BwCmluZGV4IDljZWJkZmMwZjY1Li5lMmViMGRjYTAzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVz
LmNwcApAQCAtMjQsMTEgKzI0LDExIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkNvb3JkaW5hdGVzLmgiCisjaW5jbHVkZSAiR2VvbG9jYXRpb25Db29yZGluYXRlcy5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNvb3JkaW5hdGVzOjpDb29yZGluYXRlcyhHZW9s
b2NhdGlvblBvc2l0aW9uJiYgcG9zaXRpb24pCitHZW9sb2NhdGlvbkNvb3JkaW5hdGVzOjpHZW9s
b2NhdGlvbkNvb3JkaW5hdGVzKEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYgcG9zaXRpb24pCiAg
ICAgOiBtX3Bvc2l0aW9uKFdURk1vdmUocG9zaXRpb24pKQogewogICAgIEFTU0VSVChtX3Bvc2l0
aW9uLmlzVmFsaWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0Nvb3JkaW5hdGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaApzaW1pbGFyaXR5IGluZGV4IDgwJQpyZW5hbWUgZnJv
bSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmgKcmVuYW1l
IHRvIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGlu
YXRlcy5oCmluZGV4IDZkNTE4MjgyYWVjLi44NzUxY2FjNDc0MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5oCkBAIC0y
NSwyMyArMjUsMjMgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJHZW9sb2NhdGlvblBv
c2l0aW9uLmgiCisjaW5jbHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaCIKICNpbmNsdWRl
IDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDb29yZGluYXRlcyA6
IHB1YmxpYyBSZWZDb3VudGVkPENvb3JkaW5hdGVzPiB7CitjbGFzcyBHZW9sb2NhdGlvbkNvb3Jk
aW5hdGVzIDogcHVibGljIFJlZkNvdW50ZWQ8R2VvbG9jYXRpb25Db29yZGluYXRlcz4gewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8Q29vcmRpbmF0ZXM+IGNyZWF0ZShHZW9sb2NhdGlvblBvc2l0
aW9uJiYgcG9zaXRpb24pCisgICAgc3RhdGljIFJlZjxHZW9sb2NhdGlvbkNvb3JkaW5hdGVzPiBj
cmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiBwb3NpdGlvbikKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IENvb3JkaW5hdGVzKFdURk1vdmUocG9zaXRpb24pKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMoV1RGTW92
ZShwb3NpdGlvbikpKTsKICAgICB9CiAKLSAgICBSZWY8Q29vcmRpbmF0ZXM+IGlzb2xhdGVkQ29w
eSgpIGNvbnN0CisgICAgUmVmPEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXM+IGlzb2xhdGVkQ29weSgp
IGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gQ29vcmRpbmF0ZXM6OmNyZWF0ZShHZW9sb2Nh
dGlvblBvc2l0aW9uKG1fcG9zaXRpb24pKTsKKyAgICAgICAgcmV0dXJuIEdlb2xvY2F0aW9uQ29v
cmRpbmF0ZXM6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRGF0YShtX3Bvc2l0aW9uKSk7CiAg
ICAgfQogCiAgICAgZG91YmxlIGxhdGl0dWRlKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5s
YXRpdHVkZTsgfQpAQCAtNTQsOSArNTQsOSBAQCBwdWJsaWM6CiAgICAgT3B0aW9uYWw8ZG91Ymxl
PiBmbG9vckxldmVsKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5mbG9vckxldmVsOyB9CiAg
ICAgCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IENvb3JkaW5hdGVzKEdlb2xvY2F0aW9uUG9zaXRp
b24mJik7CisgICAgZXhwbGljaXQgR2VvbG9jYXRpb25Db29yZGluYXRlcyhHZW9sb2NhdGlvblBv
c2l0aW9uRGF0YSYmKTsKIAotICAgIEdlb2xvY2F0aW9uUG9zaXRpb24gbV9wb3NpdGlvbjsKKyAg
ICBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBtX3Bvc2l0aW9uOwogfTsKICAgICAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vQ29vcmRpbmF0ZXMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmlkbApzaW1pbGFyaXR5IGluZGV4IDkzJQpyZW5hbWUg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmlkbApy
ZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNv
b3JkaW5hdGVzLmlkbAppbmRleCAyZjVjZWZiMGZjMC4uZmYzOTU2NGM0MzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRl
cy5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE5IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjQsMTAgKzI0LDkgQEAKICAqLwogCiBbCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCiAg
ICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJT04sCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZQotXSBpbnRlcmZhY2UgQ29vcmRpbmF0ZXMgeworXSBpbnRlcmZhY2UgR2VvbG9jYXRpb25Db29y
ZGluYXRlcyB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbGF0
aXR1ZGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbG9uZ2l0
dWRlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlPyBhbHRpdHVk
ZTsKQEAgLTM1LDUgKzM0LDcgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVk
IGRvdWJsZT8gYWx0aXR1ZGVBY2N1cmFjeTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0
cmljdGVkIGRvdWJsZT8gaGVhZGluZzsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmlj
dGVkIGRvdWJsZT8gc3BlZWQ7CisgICAgCisgICAgLy8gTm9uIHN0YW5kYXJkLgogICAgIFtFbmFi
bGVkQnlTZXR0aW5nPUdlb2xvY2F0aW9uRmxvb3JMZXZlbF0gcmVhZG9ubHkgYXR0cmlidXRlIHVu
cmVzdHJpY3RlZCBkb3VibGU/IGZsb29yTGV2ZWw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaAppbmRleCBk
NjlkYjU0M2Y4ZS4uYjkxMDAwNTI4ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbi5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwLDEwOCArMTAsNTIg
QEAKICAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKICAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKICAqLwogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPGNtYXRoPgotI2luY2x1ZGUgPHd0
Zi9PcHRpb25hbC5oPgotI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlICJET01UaW1lU3Rh
bXAuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgiCiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1PQkpDX0NMQVNTIENM
TG9jYXRpb247Ci0jZW5kaWYKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uIHsKK2NsYXNzIEdl
b2xvY2F0aW9uUG9zaXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxHZW9sb2NhdGlvblBvc2l0aW9u
PiB7CiBwdWJsaWM6Ci0gICAgR2VvbG9jYXRpb25Qb3NpdGlvbigpID0gZGVmYXVsdDsKLQotICAg
IEdlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBk
b3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCi0gICAgICAgIDogdGltZXN0YW1wKHRp
bWVzdGFtcCkKLSAgICAgICAgLCBsYXRpdHVkZShsYXRpdHVkZSkKLSAgICAgICAgLCBsb25naXR1
ZGUobG9uZ2l0dWRlKQotICAgICAgICAsIGFjY3VyYWN5KGFjY3VyYWN5KQorICAgIHN0YXRpYyBS
ZWY8R2VvbG9jYXRpb25Qb3NpdGlvbj4gY3JlYXRlKFJlZjxHZW9sb2NhdGlvbkNvb3JkaW5hdGVz
PiYmIGNvb3JkaW5hdGVzLCBET01UaW1lU3RhbXAgdGltZXN0YW1wKQogICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgR2VvbG9jYXRpb25Qb3NpdGlvbihXVEZNb3ZlKGNvb3JkaW5h
dGVzKSwgdGltZXN0YW1wKSk7CiAgICAgfQogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBHZW9sb2NhdGlvblBvc2l0aW9uKENMTG9jYXRpb24q
KTsKLSNlbmRpZgotCi0gICAgZG91YmxlIHRpbWVzdGFtcCB7IHN0ZDo6bnVtZXJpY19saW1pdHM8
ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsKLQotICAgIGRvdWJsZSBsYXRpdHVkZSB7IHN0ZDo6bnVt
ZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsKLSAgICBkb3VibGUgbG9uZ2l0dWRl
IHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OwotICAgIGRvdWJs
ZSBhY2N1cmFjeSB7IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsK
LQotICAgIE9wdGlvbmFsPGRvdWJsZT4gYWx0aXR1ZGU7Ci0gICAgT3B0aW9uYWw8ZG91YmxlPiBh
bHRpdHVkZUFjY3VyYWN5OwotICAgIE9wdGlvbmFsPGRvdWJsZT4gaGVhZGluZzsKLSAgICBPcHRp
b25hbDxkb3VibGU+IHNwZWVkOwotICAgIE9wdGlvbmFsPGRvdWJsZT4gZmxvb3JMZXZlbDsKKyAg
ICBSZWY8R2VvbG9jYXRpb25Qb3NpdGlvbj4gaXNvbGF0ZWRDb3B5KCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiBjcmVhdGUobV9jb29yZGluYXRlcy0+aXNvbGF0ZWRDb3B5KCksIG1fdGlt
ZXN0YW1wKTsKKyAgICB9CiAKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKKyAgICBET01UaW1l
U3RhbXAgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KKyAgICBjb25z
dCBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzJiBjb29yZHMoKSBjb25zdCB7IHJldHVybiBtX2Nvb3Jk
aW5hdGVzLmdldCgpOyB9CisgICAgCitwcml2YXRlOgorICAgIEdlb2xvY2F0aW9uUG9zaXRpb24o
UmVmPEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXM+JiYgY29vcmRpbmF0ZXMsIERPTVRpbWVTdGFtcCB0
aW1lc3RhbXApCisgICAgICAgIDogbV9jb29yZGluYXRlcyhXVEZNb3ZlKGNvb3JkaW5hdGVzKSkK
KyAgICAgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCisgICAgeworICAgIH0KIAotICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIEdlb2xv
Y2F0aW9uUG9zaXRpb24mKTsKKyAgICBSZWY8R2VvbG9jYXRpb25Db29yZGluYXRlcz4gbV9jb29y
ZGluYXRlczsKKyAgICBET01UaW1lU3RhbXAgbV90aW1lc3RhbXA7CiB9OwotCi10ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPgotdm9pZCBHZW9sb2NhdGlvblBvc2l0aW9uOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNvZGVyIDw8IHRpbWVzdGFtcDsKLSAgICBlbmNvZGVy
IDw8IGxhdGl0dWRlOwotICAgIGVuY29kZXIgPDwgbG9uZ2l0dWRlOwotICAgIGVuY29kZXIgPDwg
YWNjdXJhY3k7Ci0gICAgZW5jb2RlciA8PCBhbHRpdHVkZTsKLSAgICBlbmNvZGVyIDw8IGFsdGl0
dWRlQWNjdXJhY3k7Ci0gICAgZW5jb2RlciA8PCBoZWFkaW5nOwotICAgIGVuY29kZXIgPDwgc3Bl
ZWQ7Ci0gICAgZW5jb2RlciA8PCBmbG9vckxldmVsOwotfQotCi10ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPgotYm9vbCBHZW9sb2NhdGlvblBvc2l0aW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
R2VvbG9jYXRpb25Qb3NpdGlvbiYgcG9zaXRpb24pCi17Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwb3NpdGlvbi50aW1lc3RhbXApKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwb3NpdGlvbi5sYXRpdHVkZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmxvbmdpdHVkZSkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmFjY3VyYWN5KSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24u
YWx0aXR1ZGUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwb3NpdGlvbi5hbHRpdHVkZUFjY3VyYWN5KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24uaGVhZGluZykpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLnNwZWVkKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24uZmxvb3JMZXZl
bCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi1pbmxp
bmUgYm9vbCBHZW9sb2NhdGlvblBvc2l0aW9uOjppc1ZhbGlkKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gIXN0ZDo6aXNuYW4odGltZXN0YW1wKSAmJiAhc3RkOjppc25hbihsYXRpdHVkZSkgJiYgIXN0
ZDo6aXNuYW4obG9uZ2l0dWRlKSAmJiAhc3RkOjppc25hbihhY2N1cmFjeSk7Ci19Ci0KKyAgICAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbApzaW1pbGFyaXR5IGluZGV4IDkwJQpy
ZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bvc2l0aW9u
LmlkbApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvblBvc2l0aW9uLmlkbAppbmRleCBiZjhjYjA5YjJmYi4uNjMyZjhkOWZhOGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlv
bi5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjQsMTAgKzI0LDkgQEAKICAqLwogCiBbCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCiAg
ICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJT04sCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZQotXSBpbnRlcmZhY2UgR2VvcG9zaXRpb24gewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDb29y
ZGluYXRlcyBjb29yZHM7CitdIGludGVyZmFjZSBHZW9sb2NhdGlvblBvc2l0aW9uIHsKKyAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgR2VvbG9jYXRpb25Db29yZGluYXRlcyBjb29yZHM7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVRpbWVTdGFtcCB0aW1lc3RhbXA7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRGF0
YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0
aW9uRGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kYzJiNGUz
NDVjMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCitPQkpDX0NMQVNTIENMTG9jYXRpb247
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YSB7CitwdWJsaWM6CisgICAgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoKSA9IGRlZmF1
bHQ7CisKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YShkb3VibGUgdGltZXN0YW1wLCBkb3Vi
bGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKKyAgICAgICAg
OiB0aW1lc3RhbXAodGltZXN0YW1wKQorICAgICAgICAsIGxhdGl0dWRlKGxhdGl0dWRlKQorICAg
ICAgICAsIGxvbmdpdHVkZShsb25naXR1ZGUpCisgICAgICAgICwgYWNjdXJhY3koYWNjdXJhY3kp
CisgICAgeworICAgIH0KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgV0VCQ09SRV9F
WFBPUlQgZXhwbGljaXQgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoQ0xMb2NhdGlvbiopOworI2Vu
ZGlmCisKKyAgICBkb3VibGUgdGltZXN0YW1wIHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKSB9OworCisgICAgZG91YmxlIGxhdGl0dWRlIHsgc3RkOjpudW1lcmljX2xp
bWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OworICAgIGRvdWJsZSBsb25naXR1ZGUgeyBzdGQ6
Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07CisgICAgZG91YmxlIGFjY3Vy
YWN5IHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OworCisgICAg
T3B0aW9uYWw8ZG91YmxlPiBhbHRpdHVkZTsKKyAgICBPcHRpb25hbDxkb3VibGU+IGFsdGl0dWRl
QWNjdXJhY3k7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBoZWFkaW5nOworICAgIE9wdGlvbmFsPGRv
dWJsZT4gc3BlZWQ7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBmbG9vckxldmVsOworCisgICAgYm9v
bCBpc1ZhbGlkKCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IGJvb2wgZGVjb2RlKERlY29kZXImLCBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYpOworfTsKKwor
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdGltZXN0YW1w
OworICAgIGVuY29kZXIgPDwgbGF0aXR1ZGU7CisgICAgZW5jb2RlciA8PCBsb25naXR1ZGU7Cisg
ICAgZW5jb2RlciA8PCBhY2N1cmFjeTsKKyAgICBlbmNvZGVyIDw8IGFsdGl0dWRlOworICAgIGVu
Y29kZXIgPDwgYWx0aXR1ZGVBY2N1cmFjeTsKKyAgICBlbmNvZGVyIDw8IGhlYWRpbmc7CisgICAg
ZW5jb2RlciA8PCBzcGVlZDsKKyAgICBlbmNvZGVyIDw8IGZsb29yTGV2ZWw7Cit9CisKK3RlbXBs
YXRlPGNsYXNzIERlY29kZXI+Citib29sIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmIHBvc2l0aW9uKQorewor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24udGltZXN0YW1wKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24ubGF0aXR1ZGUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5s
b25naXR1ZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwb3NpdGlvbi5hY2N1cmFjeSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBvc2l0aW9uLmFsdGl0dWRlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24uYWx0aXR1ZGVBY2N1cmFjeSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmhlYWRp
bmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3Np
dGlvbi5zcGVlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBvc2l0aW9uLmZsb29yTGV2ZWwpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworaW5saW5lIGJvb2wgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6Omlz
VmFsaWQoKSBjb25zdAoreworICAgIHJldHVybiAhc3RkOjppc25hbih0aW1lc3RhbXApICYmICFz
dGQ6OmlzbmFuKGxhdGl0dWRlKSAmJiAhc3RkOjppc25hbihsb25naXR1ZGUpICYmICFzdGQ6Omlz
bmFuKGFjY3VyYWN5KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5o
CnNpbWlsYXJpdHkgaW5kZXggODclCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5oCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oCmluZGV4IDI2NDIyZWY5
YjZkLi4wYTQ0ZTFlMjdiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Qb3NpdGlvbkVycm9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaApAQCAtMzAsNyArMzAsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCi1jbGFzcyBQb3NpdGlvbkVycm9yIDogcHVibGljIFJl
ZkNvdW50ZWQ8UG9zaXRpb25FcnJvcj4geworY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9y
IDogcHVibGljIFJlZkNvdW50ZWQ8R2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yPiB7CiBwdWJsaWM6
CiAgICAgZW51bSBFcnJvckNvZGUgewogICAgICAgICBQRVJNSVNTSU9OX0RFTklFRCA9IDEsCkBA
IC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICAgICAgVElNRU9VVCA9IDMKICAgICB9OwogICAg
IAotICAgIHN0YXRpYyBSZWY8UG9zaXRpb25FcnJvcj4gY3JlYXRlKEVycm9yQ29kZSBjb2RlLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUG9zaXRpb25FcnJv
cihjb2RlLCBtZXNzYWdlKSk7IH0KKyAgICBzdGF0aWMgUmVmPEdlb2xvY2F0aW9uUG9zaXRpb25F
cnJvcj4gY3JlYXRlKEVycm9yQ29kZSBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKGNvZGUsIG1lc3NhZ2Up
KTsgfQogCiAgICAgRXJyb3JDb2RlIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KICAg
ICBjb25zdCBTdHJpbmcmIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KQEAg
LTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNGYXRhbCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNGYXRhbDsgfQogICAgIAogcHJpdmF0ZToKLSAgICBQb3NpdGlvbkVycm9yKEVycm9yQ29k
ZSBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIAorICAgIEdlb2xvY2F0aW9uUG9zaXRpb25F
cnJvcihFcnJvckNvZGUgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgICAgICA6IG1f
Y29kZShjb2RlKQogICAgICAgICAsIG1fbWVzc2FnZShtZXNzYWdlKQogICAgICAgICAsIG1faXNG
YXRhbChmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vUG9zaXRpb25FcnJvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwKc2ltaWxhcml0eSBpbmRleCA5MyUKcmVuYW1l
IGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlk
bApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3IuaWRsCmluZGV4IDVjMWYzYTI3MmE2Li4zNGE1YzA3NGU5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9z
aXRpb25FcnJvci5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOC0y
MDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjQsMTUgKzI0LDEzIEBACiAgKi8KIAogWwotICAgIE5vSW50ZXJmYWNl
T2JqZWN0LAogICAgIENvbmRpdGlvbmFsPUdFT0xPQ0FUSU9OLAogICAgIEltcGxlbWVudGF0aW9u
TGFja3NWVGFibGUKLV0gaW50ZXJmYWNlIFBvc2l0aW9uRXJyb3IgewotICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBjb2RlOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgbWVzc2FnZTsKLQorXSBpbnRlcmZhY2UgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yIHsK
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBQRVJNSVNTSU9OX0RFTklFRCA9IDE7CiAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgUE9TSVRJT05fVU5BVkFJTEFCTEUgPSAyOwogICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFRJTUVPVVQgPSAzOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBzaG9ydCBjb2RlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbWVzc2FnZTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2Vv
cG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRp
b24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWEzMzBkZTU4ZTIuLjAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24u
aAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDb29yZGlu
YXRlcy5oIgotI2luY2x1ZGUgIkRPTVRpbWVTdGFtcC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotY2xhc3MgR2VvcG9zaXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxHZW9wb3NpdGlv
bj4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8R2VvcG9zaXRpb24+IGNyZWF0ZShSZWY8Q29v
cmRpbmF0ZXM+JiYgY29vcmRpbmF0ZXMsIERPTVRpbWVTdGFtcCB0aW1lc3RhbXApCi0gICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHZW9wb3NpdGlvbihXVEZNb3ZlKGNvb3JkaW5h
dGVzKSwgdGltZXN0YW1wKSk7Ci0gICAgfQotCi0gICAgUmVmPEdlb3Bvc2l0aW9uPiBpc29sYXRl
ZENvcHkoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZShtX2Nvb3JkaW5hdGVz
LT5pc29sYXRlZENvcHkoKSwgbV90aW1lc3RhbXApOwotICAgIH0KLQotICAgIERPTVRpbWVTdGFt
cCB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQotICAgIGNvbnN0IENv
b3JkaW5hdGVzJiBjb29yZHMoKSBjb25zdCB7IHJldHVybiBtX2Nvb3JkaW5hdGVzLmdldCgpOyB9
Ci0gICAgCi1wcml2YXRlOgotICAgIEdlb3Bvc2l0aW9uKFJlZjxDb29yZGluYXRlcz4mJiBjb29y
ZGluYXRlcywgRE9NVGltZVN0YW1wIHRpbWVzdGFtcCkKLSAgICAgICAgOiBtX2Nvb3JkaW5hdGVz
KFdURk1vdmUoY29vcmRpbmF0ZXMpKQotICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkK
LSAgICB7Ci0gICAgfQotCi0gICAgUmVmPENvb3JkaW5hdGVzPiBtX2Nvb3JkaW5hdGVzOwotICAg
IERPTVRpbWVTdGFtcCBtX3RpbWVzdGFtcDsKLX07Ci0gICAgCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0
aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRp
b25DYWxsYmFjay5oCmluZGV4IDRiNTczODI0MDg5Li5hMjc5NTM5OTFiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmgK
QEAgLTMxLDEzICszMSwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEdlb3Bv
c2l0aW9uOworY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKIAogY2xhc3MgUG9zaXRpb25DYWxs
YmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFBvc2l0aW9uQ2FsbGJhY2s+LCBwdWJsaWMgQWN0aXZl
RE9NQ2FsbGJhY2sgewogcHVibGljOgogICAgIHVzaW5nIEFjdGl2ZURPTUNhbGxiYWNrOjpBY3Rp
dmVET01DYWxsYmFjazsKIAotICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxl
RXZlbnQoR2VvcG9zaXRpb24qKSA9IDA7CisgICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lk
PiBoYW5kbGVFdmVudChHZW9sb2NhdGlvblBvc2l0aW9uKikgPSAwOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwKaW5kZXggYWQ2NjFmNWVmYzIuLmQ1Y2U4NTYzNzA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9u
Q2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9z
aXRpb25DYWxsYmFjay5pZGwKQEAgLTI0LDQgKzI0LDQgQEAKIAogWwogICAgIENvbmRpdGlvbmFs
PUdFT0xPQ0FUSU9OLAotXSBjYWxsYmFjayBQb3NpdGlvbkNhbGxiYWNrID0gdm9pZCAoR2VvcG9z
aXRpb24/IHBvc2l0aW9uKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4K
K10gY2FsbGJhY2sgUG9zaXRpb25DYWxsYmFjayA9IHZvaWQgKEdlb2xvY2F0aW9uUG9zaXRpb24/
IHBvc2l0aW9uKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNh
bGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJy
b3JDYWxsYmFjay5oCmluZGV4IDQ4MTZiMWRiMWQzLi5hNzVlMDc4OGY1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2su
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JD
YWxsYmFjay5oCkBAIC0zMSwxMyArMzEsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBQb3NpdGlvbkVycm9yOworY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOwogCiBj
bGFzcyBQb3NpdGlvbkVycm9yQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxQb3NpdGlvbkVy
cm9yQ2FsbGJhY2s+LCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2sgewogcHVibGljOgogICAgIHVz
aW5nIEFjdGl2ZURPTUNhbGxiYWNrOjpBY3RpdmVET01DYWxsYmFjazsKIAotICAgIHZpcnR1YWwg
Q2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQoUG9zaXRpb25FcnJvciYpID0gMDsKKyAg
ICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KEdlb2xvY2F0aW9uUG9z
aXRpb25FcnJvciYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxi
YWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJv
ckNhbGxiYWNrLmlkbAppbmRleCA1N2I0OTNjY2JmNS4uZmEwOTgwZTM2MDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNr
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJy
b3JDYWxsYmFjay5pZGwKQEAgLTI0LDQgKzI0LDQgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPUdF
T0xPQ0FUSU9OLAotXSBjYWxsYmFjayBQb3NpdGlvbkVycm9yQ2FsbGJhY2sgPSB2b2lkIChQb3Np
dGlvbkVycm9yIGVycm9yKTsKK10gY2FsbGJhY2sgUG9zaXRpb25FcnJvckNhbGxiYWNrID0gdm9p
ZCAoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yIGVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0
aW9uRGF0YUlPUy5tbQpzaW1pbGFyaXR5IGluZGV4IDk2JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tCnJl
bmFtZSB0byBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL2lvcy9HZW9sb2NhdGlv
blBvc2l0aW9uRGF0YUlPUy5tbQppbmRleCA1MTM2YTUxZTJiNi4uOThkOWEyNDIxZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vaW9zL0dlb2xvY2F0aW9u
UG9zaXRpb25JT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9p
b3MvR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW0KQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1HZW9sb2NhdGlvblBvc2l0aW9uOjpHZW9sb2NhdGlvblBvc2l0
aW9uKENMTG9jYXRpb24qIGxvY2F0aW9uKQorR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6Okdlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhKENMTG9jYXRpb24qIGxvY2F0aW9uKQogICAgIDogdGltZXN0YW1w
KGxvY2F0aW9uLnRpbWVzdGFtcC50aW1lSW50ZXJ2YWxTaW5jZTE5NzApCiAgICAgLCBsYXRpdHVk
ZShsb2NhdGlvbi5jb29yZGluYXRlLmxhdGl0dWRlKQogICAgICwgbG9uZ2l0dWRlKGxvY2F0aW9u
LmNvb3JkaW5hdGUubG9uZ2l0dWRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAwYTM4ZGQ0NmM3ZC4uZmZk
NWViMDcyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC02NywxMCArNjcsMTAgQEAgTW9kdWxlcy9mZXRj
aC9GZXRjaFJlcXVlc3QuY3BwCiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCiBNb2R1
bGVzL2ZldGNoL1dvcmtlckdsb2JhbFNjb3BlRmV0Y2guY3BwCiAKLU1vZHVsZXMvZ2VvbG9jYXRp
b24vQ29vcmRpbmF0ZXMuY3BwCiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcAog
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAorTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bkNvb3JkaW5hdGVzLmNwcAogTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlv
bi5jcHAKIAogTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcApA
QCAtMjY3Miw3ICsyNjcyLDYgQEAgSlNDb21wb3NpdGVPcGVyYXRpb24uY3BwCiBKU0NvbXBvc2l0
ZU9wZXJhdGlvbk9yQXV0by5jcHAKIEpTQ29tcHV0ZWRFZmZlY3RUaW1pbmcuY3BwCiBKU0NvbnZv
bHZlck5vZGUuY3BwCi1KU0Nvb3JkaW5hdGVzLmNwcAogSlNDb3VudFF1ZXVpbmdTdHJhdGVneS5j
cHAKIEpTQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5jcHAKIEpTQ3JlZGVudGlhbFJlcXVlc3RP
cHRpb25zLmNwcApAQCAtMjgzMSw3ICsyODMwLDkgQEAgSlNHUFVWZXJ0ZXhCdWZmZXJEZXNjcmlw
dG9yLmNwcAogSlNHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3IuY3BwCiBKU0dhaW5Ob2RlLmNwcAog
SlNHZW9sb2NhdGlvbi5jcHAKLUpTR2VvcG9zaXRpb24uY3BwCitKU0dlb2xvY2F0aW9uQ29vcmRp
bmF0ZXMuY3BwCitKU0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwCitKU0dlb2xvY2F0aW9uUG9zaXRp
b25FcnJvci5jcHAKIEpTR2xvYmFsQ3J5cHRvLmNwcAogSlNHbG9iYWxFdmVudEhhbmRsZXJzLmNw
cAogSlNHbG9iYWxQZXJmb3JtYW5jZS5jcHAKQEAgLTMwNzIsNyArMzA3Myw2IEBAIEpTUGxheWJh
Y2tEaXJlY3Rpb24uY3BwCiBKU1BvaW50ZXJFdmVudC5jcHAKIEpTUG9wU3RhdGVFdmVudC5jcHAK
IEpTUG9zaXRpb25DYWxsYmFjay5jcHAKLUpTUG9zaXRpb25FcnJvci5jcHAKIEpTUG9zaXRpb25F
cnJvckNhbGxiYWNrLmNwcAogSlNQb3NpdGlvbk9wdGlvbnMuY3BwCiBKU1Byb2Nlc3NpbmdJbnN0
cnVjdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAzODUyZDNkMzkzNy4uYmU0ODMyMzk2NzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIzOTIsNyAr
MjM5Miw3IEBACiAJCTgzNzJEQjMxMUE2NzgwQTgwMEM2OTdDNSAvKiBEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzNzJEQjMwMUE2NzgwQTgwMEM2OTdDNSAvKiBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5
cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
Mzc2NUY5NTFEQUM1MjJGMDBDMDY1MzcgLyogTW91c2VFdmVudEluaXQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNzY1Rjk0MURBQzUyMTgwMEMwNjUz
NyAvKiBNb3VzZUV2ZW50SW5pdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTgzNzkzNjNGMUZCQkIwQjQwMEM4MDIzQyAvKiBTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM3OTM2M0UxRkJCQjBBNTAwQzgwMjNDIC8qIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJODM3OTY0
Q0YxRjhEQjY5RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzc5NjRDRTFGOERCNjlBMDAy
MThFQTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbSAqLzsgfTsKKwkJODM3OTY0Q0YxRjhE
QjY5RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhSU9TLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3OTY0Q0UxRjhEQjY5QTAwMjE4
RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhSU9TLm1tICovOyB9OwogCQk4MzdBODAxMzFF
MUUxMjczMDAwMjZCOUYgLyogTG9jYWxpemFibGUuc3RyaW5nc2RpY3QgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0E4MDExMUUxRTEyNzMwMDAyNkI5
RiAvKiBMb2NhbGl6YWJsZS5zdHJpbmdzZGljdCAqLzsgfTsKIAkJODM3RDQ2MjcxRkEyQThDRTAw
NTRFMUZBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzdENDYyNTFGQTJBOEM1MDA1NEUxRkEg
LyogU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzdGQjM0NTFGOUVBMDZEMDBEMEZDMzEgLyog
RXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM3RkIzNDAxRjlFQTA2NjAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNz
YWdlRXZlbnQuaCAqLzsgfTsKQEAgLTI3MjgsMTUgKzI3MjgsMTUgQEAKIAkJOTczODg5QTExMTZF
QTlEQzAwQURGMzEzIC8qIERvY3VtZW50V3JpdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzM4ODk5RjExNkVBOURDMDBBREYzMTMgLyogRG9jdW1l
bnRXcml0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5NzNFMzI1NzEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3VyY2VMb2FkTm90aWZpZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3M0UzMjU1MTA4
ODNCN0MwMDVCQzQ5MyAvKiBSZXNvdXJjZUxvYWROb3RpZmllci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3M0Y0MThBMTY5Qjk1RkYwMDA2QkY2
MCAvKiBIVE1MUGFyc2VyT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTczRjQxODgxNjlCOTVFRjAwMDZCRjYwIC8qIEhUTUxQYXJzZXJPcHRp
b25zLmggKi87IH07Ci0JCTk3NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBDb29yZGluYXRlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMTEx
NEY0RERFNjAwM0U3QTcwIC8qIENvb3JkaW5hdGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTc0NkFGMjExNEY0RERFNjAwM0U3QTcxIC8qIEdl
b2xvY2F0aW9uQ29vcmRpbmF0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk3NDZBRjExMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvb3Jk
aW5hdGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTc0NkFGMjQxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxNDE0RjREREU2MDAzRTdB
NzAgLyogR2VvbG9jYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5NzQ2QUYyNTE0RjREREU2MDAzRTdBNzEgLyogR2VvbG9jYXRpb25DbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZB
RjE1MTRGNERERTYwMDNFN0E3MSAvKiBHZW9sb2NhdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NDZBRjI3MTRGNERERTYwMDNF
N0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjE3MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2Nh
dGlvbkNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5NzQ2QUYyODE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25FcnJvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMTgx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5NzQ2QUYyOTE0RjREREU2MDAzRTdBNzAg
LyogR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTc0NkFGMTkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9z
aXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk5NzQ2QUYyQTE0RjREREU2MDAzRTdBNzAgLyogR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjFBMTRGNERERTYwMDNFN0E3
MCAvKiBHZW9wb3NpdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTk3NDZBRjI5MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTc0NkFGMTkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTc0NkFGMkEx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjFBMTRGNERERTYwMDNFN0E3MCAv
KiBHZW9sb2NhdGlvblBvc2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFGMkMxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uQ2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3
NDZBRjFDMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkNhbGxiYWNrLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTc0NkFGMkUxNEY0RERFNjAw
M0U3QTcwIC8qIFBvc2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3NDZBRjFFMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9y
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTc0
NkFGMkUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMUUxNEY0RERF
NjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NDZBRjMwMTRGNERERTYwMDNFN0E3
MCAvKiBQb3NpdGlvbkVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjIwMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVy
cm9yQ2FsbGJhY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5NzQ2QUYzMjE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25PcHRpb25zLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYyMjE0RjRE
REU2MDAzRTdBNzAgLyogUG9zaXRpb25PcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0QTg2MjMxNEI3QURCQjAwM0ZEQzc2IC8qIEZy
YW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTc0QTg2MjExNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rp
b25PYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC0xMDA2Myw3ICsxMDA2Myw3IEBACiAJCTgzNzY1Rjk0MURBQzUyMTgwMEMwNjUzNyAv
KiBNb3VzZUV2ZW50SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb3Vz
ZUV2ZW50SW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzc5MzYzQzFGQkJC
MEE0MDBDODAyM0MgLyogU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzc5MzYzRTFGQkJCMEE1MDBDODAyM0MgLyogU2Vy
dmljZVdvcmtlckNsaWVudERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2VydmljZVdvcmtlckNsaWVudERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
ODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBHZW9sb2NhdGlvblBvc2l0aW9u
SU9TLm1tOyBwYXRoID0gTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2VvbG9jYXRpb25Qb3NpdGlv
bklPUy5tbTsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQk4Mzc5NjRDRTFGOERCNjlB
MDAyMThFQTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5tbTsg
cGF0aCA9IE1vZHVsZXMvZ2VvbG9jYXRpb24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhSU9T
Lm1tOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTgzN0E4MDEyMUUxRTEyNzMwMDAy
NkI5RiAvKiBlbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQucGxpc3Quc3RyaW5nc2RpY3Q7IG5hbWUgPSBlbjsgcGF0aCA9IGVuLmxwcm9qL0xv
Y2FsaXphYmxlLnN0cmluZ3NkaWN0OyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTgz
N0I3RDFGMURDM0Y1NEMwMEQwNTFGQyAvKiBWYWxpZGF0aW9uQnViYmxlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmFsaWRhdGlvbkJ1YmJsZUlPUy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM3RDQ2MjUxRkEyQThDNTAwNTRFMUZBIC8q
IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMDc0Myw5ICsxMDc0Myw5IEBACiAJCTk3M0UzMjU1MTA4ODNCN0Mw
MDVCQzQ5MyAvKiBSZXNvdXJjZUxvYWROb3RpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZXNvdXJjZUxvYWROb3RpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5NzNGNDE4NzE2OUI5NUVGMDAwNkJGNjAgLyogSFRNTFBhcnNlck9wdGlvbnMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFBhcnNlck9wdGlvbnMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzNGNDE4ODE2OUI5NUVGMDAwNkJG
NjAgLyogSFRNTFBhcnNlck9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSFRNTFBhcnNlck9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTc0
NkFGMTExNEY0RERFNjAwM0U3QTcwIC8qIENvb3JkaW5hdGVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENvb3JkaW5hdGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTk3NDZBRjExMTRGNERERTYwMDNFN0E3MiAvKiBDb29yZGluYXRlcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb29yZGluYXRlcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTk3NDZBRjEyMTRGNERERTYwMDNFN0E3MCAvKiBDb29yZGluYXRl
cy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ29vcmRpbmF0ZXMuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRp
b25Db29yZGluYXRlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2Nh
dGlvbkNvb3JkaW5hdGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3NDZBRjEx
MTRGNERERTYwMDNFN0E3MiAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzQ2QUYxMjE0RjREREU2MDAzRTdBNzAgLyog
R2VvbG9jYXRpb25Db29yZGluYXRlcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2VvbG9j
YXRpb25Db29yZGluYXRlcy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NDZB
RjEzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBHZW9sb2NhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk3NDZBRjE0MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5NzQ2QUYxNTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24u
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEdlb2xvY2F0aW9uLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNzUzLDEzICsxMDc1MywxMyBAQAogCQk5NzQ2QUYxNjE0RjRE
REU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlb2xvY2F0aW9uQ29udHJvbGxlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NDZBRjE3MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2Nh
dGlvbkNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9j
YXRpb25Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NDZBRjE4
MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTc0NkFGMTkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAg
LyogR2VvcG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvcG9z
aXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTc0NkFGMUIxNEY0RERFNjAw
M0U3QTcwIC8qIEdlb3Bvc2l0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHZW9wb3Np
dGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3NDZBRjE5MTRGNERERTYw
MDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3Np
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvblBvc2l0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3NDZBRjFCMTRGNERERTYwMDNF
N0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBH
ZW9sb2NhdGlvblBvc2l0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0
NkFGMUMxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUG9zaXRpb25DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5NzQ2QUYxRDE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25DYWxsYmFj
ay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUG9zaXRpb25DYWxsYmFjay5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk3NDZBRjFFMTRGNERERTYwMDNFN0E3MCAvKiBQb3Np
dGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvc2l0aW9uRXJy
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTc0NkFGMUYxNEY0RERFNjAwM0U3
QTcwIC8qIFBvc2l0aW9uRXJyb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBvc2l0aW9u
RXJyb3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzQ2QUYxRTE0RjREREU2
MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5NzQ2QUYxRjE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHZW9sb2NhdGlvblBvc2l0
aW9uRXJyb3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYyMDE0RjRE
REU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvckNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBvc2l0aW9uRXJyb3JDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5NzQ2QUYyMTE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvckNh
bGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQb3NpdGlvbkVycm9yQ2FsbGJhY2su
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYyMjE0RjREREU2MDAzRTdB
NzAgLyogUG9zaXRpb25PcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBvc2l0aW9uT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA5MjUs
NyArMjA5MjUsNyBAQAogCQk4Mzc5NjRDQzFGOERCNjdEMDAyMThFQTAgLyogaW9zICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk4Mzc5NjRDRTFGOERCNjlB
MDAyMThFQTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbSAqLywKKwkJCQk4Mzc5NjRDRTFG
OERCNjlBMDAyMThFQTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW0gKi8sCiAJCQkp
OwogCQkJbmFtZSA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMTg0Miw5
ICsyMTg0Miw5IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTgz
Nzk2NENDMUY4REI2N0QwMDIxOEVBMCAvKiBpb3MgKi8sCi0JCQkJOTc0NkFGMTExNEY0RERFNjAw
M0U3QTcyIC8qIENvb3JkaW5hdGVzLmNwcCAqLywKLQkJCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdB
NzAgLyogQ29vcmRpbmF0ZXMuaCAqLywKLQkJCQk5NzQ2QUYxMjE0RjREREU2MDAzRTdBNzAgLyog
Q29vcmRpbmF0ZXMuaWRsICovLAorCQkJCTk3NDZBRjExMTRGNERERTYwMDNFN0E3MiAvKiBHZW9s
b2NhdGlvbkNvb3JkaW5hdGVzLmNwcCAqLywKKwkJCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzAg
LyogR2VvbG9jYXRpb25Db29yZGluYXRlcy5oICovLAorCQkJCTk3NDZBRjEyMTRGNERERTYwMDNF
N0E3MCAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmlkbCAqLywKIAkJCQk5NzQ2QUYxMzE0RjRE
REU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uY3BwICovLAogCQkJCTk3NDZBRjE0MTRGNERERTYw
MDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5oICovLAogCQkJCTk3NDZBRjE1MTRGNERERTYwMDNFN0E3
MCAvKiBHZW9sb2NhdGlvbi5pZGwgKi8sCkBAIC0yMTg1MiwxOCArMjE4NTIsMTggQEAKIAkJCQk5
NzQ2QUYxNjE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCAqLywK
IAkJCQk5NzQ2QUYxNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmgg
Ki8sCiAJCQkJOTc0NkFGMTgxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uRXJyb3IuaCAq
LywKLQkJCQk5NzQ2QUYxOTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbi5o
ICovLAogCQkJCTQ2QzgzRUZCMUE5QkJFMjkwMEE3OUE0MSAvKiBHZW9Ob3RpZmllci5jcHAgKi8s
CiAJCQkJNDZDODNFRkMxQTlCQkUyOTAwQTc5QTQxIC8qIEdlb05vdGlmaWVyLmggKi8sCi0JCQkJ
OTc0NkFGMUExNEY0RERFNjAwM0U3QTcwIC8qIEdlb3Bvc2l0aW9uLmggKi8sCi0JCQkJOTc0NkFG
MUIxNEY0RERFNjAwM0U3QTcwIC8qIEdlb3Bvc2l0aW9uLmlkbCAqLywKKwkJCQk5NzQ2QUYxQTE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbi5oICovLAorCQkJCTk3NDZBRjFC
MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmlkbCAqLywKKwkJCQk5NzQ2
QUYxOTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaCAqLywKIAkJ
CQk5NzExNDYwMDE0RUYwMDlBMDA2NzRGRDkgLyogTmF2aWdhdG9yR2VvbG9jYXRpb24uY3BwICov
LAogCQkJCTk3MTE0NjAxMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlvbi5o
ICovLAogCQkJCTk3MTE0NjAyMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JHZW9sb2NhdGlv
bi5pZGwgKi8sCiAJCQkJOTc0NkFGMUMxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uQ2FsbGJh
Y2suaCAqLywKIAkJCQk5NzQ2QUYxRDE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25DYWxsYmFj
ay5pZGwgKi8sCi0JCQkJOTc0NkFGMUUxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uRXJyb3Iu
aCAqLywKLQkJCQk5NzQ2QUYxRjE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5pZGwg
Ki8sCisJCQkJOTc0NkFGMUUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25F
cnJvci5oICovLAorCQkJCTk3NDZBRjFGMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBv
c2l0aW9uRXJyb3IuaWRsICovLAogCQkJCTk3NDZBRjIwMTRGNERERTYwMDNFN0E3MCAvKiBQb3Np
dGlvbkVycm9yQ2FsbGJhY2suaCAqLywKIAkJCQk5NzQ2QUYyMTE0RjREREU2MDAzRTdBNzAgLyog
UG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbCAqLywKIAkJCQk5NzQ2QUYyMjE0RjREREU2MDAzRTdB
NzAgLyogUG9zaXRpb25PcHRpb25zLmggKi8sCkBAIC0yODY2NSw3ICsyODY2NSw3IEBACiAJCQkJ
N0E1Njk5NzAyMDg2QzYxOTAwMEUwNDMzIC8qIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzM0QwMjEyRDEzMURCMzdCMDA0MDkxQTggLyogQ29va2ll
U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyMEJCQUYxRjFDRUNFNzAwRUZFQkYxIC8q
IENvb2tpZVN0b3JhZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTc0NkFGMjExNEY0
RERFNjAwM0U3QTcxIC8qIENvb3JkaW5hdGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NzQ2QUYy
MTE0RjREREU2MDAzRTdBNzEgLyogR2VvbG9jYXRpb25Db29yZGluYXRlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJM0Y4MDIwMzUxRTlFNDdCRjAwREVDNjFEIC8qIENvcmVBdWRpb0NhcHR1cmVEZXZp
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTNGODAyMDM3MUU5RTQ3QzUwMERFQzYxRCAvKiBDb3Jl
QXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdBRkY0MjIx
RUZCMTQ0OTAwQjU0NUIzIC8qIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjkyOTMsMTAgKzI5MjkzLDEwIEBACiAJCQkJOTc0NkFGMjUxNEY0RERFNjAwM0U3
QTcxIC8qIEdlb2xvY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYyNzE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5NzQ2QUYyODE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25FcnJvci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJOTc0NkFGMjkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9z
aXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTk3NDZBRjI5MTRGNERERTYwMDNFN0E3MCAvKiBH
ZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCNjI1MkYxOERF
MUIxNTAwQTA3QzA1IC8qIEdlb21ldHJ5VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
NkM4M0VGRTFBOUJCRTI5MDBBNzlBNDEgLyogR2VvTm90aWZpZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTk3NDZBRjJBMTRGNERERTYwMDNFN0E3MCAvKiBHZW9wb3NpdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTc0NkFGMkExNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ2Qjk1MTk4MjA3RDYzNDcwMEE3RDJERCAvKiBHbG9iYWxG
cmFtZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2Qjk1MTk3MjA3RDYzNDAwMEE3
RDJERCAvKiBHbG9iYWxXaW5kb3dJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODZC
QkQwRjEzNjAzOUMyMDA4QjE1RDggLyogR2x5cGguaCBpbiBIZWFkZXJzICovLApAQCAtMzEwNDgs
NyArMzEwNDgsNyBAQAogCQkJCTM3RjU2N0NFMTY1MzU4RjQwMERERTkyQiAvKiBQb3B1cE9wZW5p
bmdPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5REUwODI0NUU1OTAwMUU5QUJD
IC8qIFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYyQzE0RjREREU2MDAzRTdB
NzAgLyogUG9zaXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTc0NkFGMkUxNEY0
RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTk3NDZB
RjJFMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3NDZBRjMwMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9yQ2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTM3OTE5QzI0MEI3RDE4ODYwMEE1Njk5OCAvKiBQ
b3NpdGlvbkl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYzMjE0RjREREU2MDAz
RTdBNzAgLyogUG9zaXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLywKQEAgLTMyODA0LDcgKzMy
ODA0LDcgQEAKIAkJCQk1MTZDNjIyMDE5NTBENDg3MDAzMzdFNzUgLyogR2FtZXBhZEV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlEOUU5MTk1QjkzMUYwMDFCMkI1QyAvKiBHYW1lcGFk
TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTVCRTE5MTFENTRGNUZCMDBERDdDNjgg
LyogR2FtZXBhZFByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTgzNzk2NENGMUY4REI2
OUQwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJODM3OTY0Q0YxRjhEQjY5RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhSU9T
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNkUyMUM2QzAxMTI2MzM4NTAwQTdCRTAyIC8qIEdyYXBo
aWNzQ29udGV4dDNELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFNzJGNTRFMjI5RENEMTAwMEIz
RTE1MSAvKiBHcmFwaGljc0NvbnRleHQzREFOR0xFLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdD
M0U1MTBCMThERjhGMzUwMEMxMTJGNyAvKiBIVE1MQ29udmVydGVyLm1tIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xp
ZW50TW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xp
ZW50TW9jay5jcHAKaW5kZXggYjgwY2MxZTBmY2EuLmU4ZWMxYzg0ZDRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3Bw
CkBAIC02MSw3ICs2MSw3IEBAIHZvaWQgR2VvbG9jYXRpb25DbGllbnRNb2NrOjpzZXRDb250cm9s
bGVyKEdlb2xvY2F0aW9uQ29udHJvbGxlciAqY29udHJvbGxlcikKICAgICBtX2NvbnRyb2xsZXIg
PSBjb250cm9sbGVyOwogfQogCi12b2lkIEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6c2V0UG9zaXRp
b24oR2VvbG9jYXRpb25Qb3NpdGlvbiYmIHBvc2l0aW9uKQordm9pZCBHZW9sb2NhdGlvbkNsaWVu
dE1vY2s6OnNldFBvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYgcG9zaXRpb24pCiB7
CiAgICAgbV9sYXN0UG9zaXRpb24gPSBXVEZNb3ZlKHBvc2l0aW9uKTsKICAgICBjbGVhckVycm9y
KCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnNldEVu
YWJsZUhpZ2hBY2N1cmFjeShib29sKQogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDk0MzgKIH0KIAotT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlv
bj4gR2VvbG9jYXRpb25DbGllbnRNb2NrOjpsYXN0UG9zaXRpb24oKQorT3B0aW9uYWw8R2VvbG9j
YXRpb25Qb3NpdGlvbkRhdGE+IEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6bGFzdFBvc2l0aW9uKCkK
IHsKICAgICByZXR1cm4gbV9sYXN0UG9zaXRpb247CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaAppbmRleCAyN2NjZDk0MzE2
NS4uZTIyYWZjNTA4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
R2VvbG9jYXRpb25DbGllbnRNb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaApAQCAtMzIsNyArMzIsNyBAQAogI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVudC5oIgotI2luY2x1ZGUgIkdlb2xvY2F0aW9u
UG9zaXRpb24uaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0KCk7CiAgICAg
dm9pZCBzZXRDb250cm9sbGVyKEdlb2xvY2F0aW9uQ29udHJvbGxlciopOwogCi0gICAgdm9pZCBz
ZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uJiYpOworICAgIHZvaWQgc2V0UG9zaXRpb24o
R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJik7CiAgICAgdm9pZCBzZXRQb3NpdGlvblVuYXZhaWxh
YmxlRXJyb3IoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogICAgIHZvaWQgc2V0UGVybWlz
c2lvbihib29sIGFsbG93ZWQpOwogICAgIGludCBudW1iZXJPZlBlbmRpbmdQZXJtaXNzaW9uUmVx
dWVzdHMoKSBjb25zdDsKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnRV
cGRhdGluZygpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcFVwZGF0aW5nKCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkgb3ZlcnJpZGU7Ci0gICAgT3B0aW9u
YWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbGFzdFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgT3B0
aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlvbigpIG92ZXJyaWRlOwog
ICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oR2VvbG9jYXRpb24mKSBvdmVycmlkZTsKICAgICB2
b2lkIGNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KEdlb2xvY2F0aW9uJikgb3ZlcnJpZGU7CiAKQEAg
LTc2LDcgKzc2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsZWFyRXJyb3IoKTsKIAogICAgIEdl
b2xvY2F0aW9uQ29udHJvbGxlciogbV9jb250cm9sbGVyOwotICAgIE9wdGlvbmFsPEdlb2xvY2F0
aW9uUG9zaXRpb24+IG1fbGFzdFBvc2l0aW9uOworICAgIE9wdGlvbmFsPEdlb2xvY2F0aW9uUG9z
aXRpb25EYXRhPiBtX2xhc3RQb3NpdGlvbjsKICAgICBib29sIG1faGFzRXJyb3I7CiAgICAgU3Ry
aW5nIG1fZXJyb3JNZXNzYWdlOwogICAgIFRpbWVyIG1fY29udHJvbGxlclRpbWVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAppbmRleCAzZjE1
NThiNzUyYi4uZTk5ZGNjNWMwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
Ykdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdl
b2xvY2F0aW9uUG9zaXRpb24uY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFdlYkdlb2xvY2F0aW9uUG9zaXRp
b24+IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uJiYg
Z2VvbG9jYXRpb25Qb3NpdGlvbikKK1JlZjxXZWJHZW9sb2NhdGlvblBvc2l0aW9uPiBXZWJHZW9s
b2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiBnZW9sb2Nh
dGlvblBvc2l0aW9uKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkdlb2xvY2F0aW9u
UG9zaXRpb24oV1RGTW92ZShnZW9sb2NhdGlvblBvc2l0aW9uKSkpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCmluZGV4IGMxZmNjYTdjYmI1Li5h
OTY4Zjg0ZjlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9z
aXRpb24uaApAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBXZWJHZW9sb2NhdGlvblBvc2l0aW9u
X2gKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRp
b25Qb3NpdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtMzksNyAr
MzksNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViR2VvbG9jYXRpb25Qb3NpdGlv
biA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6Okdlb2xvY2F0aW9u
UG9zaXRpb24+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkdlb2xvY2F0aW9uUG9zaXRp
b24+IGNyZWF0ZShXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uJiYpOworICAgIHN0YXRpYyBS
ZWY8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbj4gY3JlYXRlKFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9z
aXRpb25EYXRhJiYpOwogCiAgICAgdmlydHVhbCB+V2ViR2VvbG9jYXRpb25Qb3NpdGlvbigpOwog
CkBAIC01MiwxNSArNTIsMTUgQEAgcHVibGljOgogICAgIE9wdGlvbmFsPGRvdWJsZT4gaGVhZGlu
ZygpIGNvbnN0IHsgcmV0dXJuIG1fY29yZVBvc2l0aW9uLmhlYWRpbmc7IH0KICAgICBPcHRpb25h
bDxkb3VibGU+IHNwZWVkKCkgY29uc3QgeyByZXR1cm4gbV9jb3JlUG9zaXRpb24uc3BlZWQ7IH0K
IAotICAgIGNvbnN0IFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24mIGNvcmVQb3NpdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fY29yZVBvc2l0aW9uOyB9CisgICAgY29uc3QgV2ViQ29yZTo6R2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGEmIGNvcmVQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29y
ZVBvc2l0aW9uOyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uJiYgZ2VvbG9jYXRpb25Qb3NpdGlvbikK
KyAgICBleHBsaWNpdCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uKFdlYkNvcmU6Okdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhJiYgZ2VvbG9jYXRpb25Qb3NpdGlvbikKICAgICAgICAgOiBtX2NvcmVQb3Np
dGlvbihXVEZNb3ZlKGdlb2xvY2F0aW9uUG9zaXRpb24pKQogICAgIHsKICAgICB9CiAKLSAgICBX
ZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uIG1fY29yZVBvc2l0aW9uOworICAgIFdlYkNvcmU6
Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIG1fY29yZVBvc2l0aW9uOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAppbmRleCBhYWJjM2Q5ZjZkOS4uYzA4ZTRhZGNhNmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25Q
b3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2Nh
dGlvblBvc2l0aW9uLmNwcApAQCAtNDgsNyArNDgsNyBAQCBXS0dlb2xvY2F0aW9uUG9zaXRpb25S
ZWYgV0tHZW9sb2NhdGlvblBvc2l0aW9uQ3JlYXRlX2IoZG91YmxlIHRpbWVzdGFtcCwgZG91Ymxl
CiAKIFdLR2VvbG9jYXRpb25Qb3NpdGlvblJlZiBXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGVf
Yyhkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRv
dWJsZSBhY2N1cmFjeSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGJv
b2wgcHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9v
bCBwcm92aWRlc0hlYWRpbmcsIGRvdWJsZSBoZWFkaW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRv
dWJsZSBzcGVlZCwgYm9vbCBwcm92aWRlc0Zsb29yTGV2ZWwsIGRvdWJsZSBmbG9vckxldmVsKQog
ewotICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24gY29yZVBvc2l0aW9uIHsgdGltZXN0
YW1wLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSB9OworICAgIFdlYkNvcmU6Okdlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhIGNvcmVQb3NpdGlvbiB7IHRpbWVzdGFtcCwgbGF0aXR1ZGUsIGxv
bmdpdHVkZSwgYWNjdXJhY3kgfTsKICAgICBpZiAocHJvdmlkZXNBbHRpdHVkZSkKICAgICAgICAg
Y29yZVBvc2l0aW9uLmFsdGl0dWRlID0gYWx0aXR1ZGU7CiAgICAgaWYgKHByb3ZpZGVzQWx0aXR1
ZGVBY2N1cmFjeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eS5oCmluZGV4IDE3YzA4NjljYWU2Li42YjY0Y2ZmMmMwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94
eS5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRTdXBwbGVtZW50LmgiCi0j
aW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGlj
OgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCByZXNldFBlcm1pc3Npb25zKCk7
CiAjZW5kaWYKLSAgICBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9u
PiYgbGFzdFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0UG9zaXRpb247IH0KKyAgICBj
b25zdCBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4mIGxhc3RQb3Np
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFBvc2l0aW9uOyB9CiAKICAgICB1c2luZyBBUEk6
Ok9iamVjdDo6cmVmOwogICAgIHVzaW5nIEFQSTo6T2JqZWN0OjpkZXJlZjsKQEAgLTg0LDcgKzg0
LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PGNvbnN0IElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50
Kj4gbV9oaWdoQWNjdXJhY3lSZXF1ZXN0ZXJzOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEFQSTo6
R2VvbG9jYXRpb25Qcm92aWRlcj4gbV9wcm92aWRlcjsKLSAgICBPcHRpb25hbDxXZWJDb3JlOjpH
ZW9sb2NhdGlvblBvc2l0aW9uPiBtX2xhc3RQb3NpdGlvbjsKKyAgICBPcHRpb25hbDxXZWJDb3Jl
OjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gbV9sYXN0UG9zaXRpb247CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCmluZGV4IDUyNWZiMmY4ZGNjLi4xMzA5Y2VhYTQ2
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Q
cm92aWRlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2Nh
dGlvblByb3ZpZGVySU9TLm1tCkBAIC0yOTYsNyArMjk2LDcgQEAgLSAodm9pZClnZW9sb2NhdGlv
bkF1dGhvcml6YXRpb25EZW5pZWQKICAgICBbX2xpc3RlbmVyIGdlb2xvY2F0aW9uQXV0aG9yaXph
dGlvbkRlbmllZF07CiB9CiAKLS0gKHZvaWQpcG9zaXRpb25DaGFuZ2VkOihXZWJDb3JlOjpHZW9s
b2NhdGlvblBvc2l0aW9uJiYpY29yZVBvc2l0aW9uCistICh2b2lkKXBvc2l0aW9uQ2hhbmdlZDoo
V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiljb3JlUG9zaXRpb24KIHsKICAgICBB
U1NFUlQoX2xpc3RlbmVyKTsKICAgICBhdXRvIHBvc2l0aW9uID0gV2ViS2l0OjpXZWJHZW9sb2Nh
dGlvblBvc2l0aW9uOjpjcmVhdGUoV1RGTW92ZShjb3JlUG9zaXRpb24pKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0
aW9uTWFuYWdlci5jcHAKaW5kZXggMDIwMjQwMjNjOWYuLjdiMzBkZDBmNWFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyLmNwcApAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFdlYkdlb2xvY2F0aW9u
TWFuYWdlcjo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5Rm9yUGFnZShXZWJQYWdlJiBwYWdlLCBib29s
IGVuYQogICAgICAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OlNldEVuYWJsZUhpZ2hBY2N1cmFj
eShoaWdoQWNjdXJhY3lTaG91bGRCZUVuYWJsZWQpLCAwKTsKIH0KIAotdm9pZCBXZWJHZW9sb2Nh
dGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKGNvbnN0IEdlb2xvY2F0aW9uUG9zaXRpb24m
IHBvc2l0aW9uKQordm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9u
KGNvbnN0IEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiBwb3NpdGlvbikKIHsKICNpZiBFTkFCTEUo
R0VPTE9DQVRJT04pCiAgICAgZm9yIChhdXRvJiBwYWdlIDogY29weVRvVmVjdG9yKG1fcGFnZVNl
dCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2Nh
dGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaAppbmRleCBhNmMyODcxNmFiMS4uZDc4MDkzZTRk
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJH
ZW9sb2NhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9j
YXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIGlzVXBkYXRpbmcoKSBjb25zdCB7IHJldHVybiAhbV9wYWdlU2V0LmlzRW1wdHko
KTsgfQogICAgIGJvb2wgaXNIaWdoQWNjdXJhY3lFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gIW1f
aGlnaEFjY3VyYWN5UGFnZVNldC5pc0VtcHR5KCk7IH0KIAotICAgIHZvaWQgZGlkQ2hhbmdlUG9z
aXRpb24oY29uc3QgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiYpOworICAgIHZvaWQgZGlk
Q2hhbmdlUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmKTsK
ICAgICB2b2lkIGRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlKTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgcmVzZXRQZXJtaXNz
aW9ucygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9u
L1dlYkdlb2xvY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXgg
MDQzZWY2NDk0OTAuLmI1MmU4MTYyMDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXIubWVzc2FnZXMuaW4KQEAgLTIxLDcgKzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2Fn
ZXMgLT4gV2ViR2VvbG9jYXRpb25NYW5hZ2VyIHsKLSAgICBEaWRDaGFuZ2VQb3NpdGlvbihXZWJD
b3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uIHBvc2l0aW9uKTsKKyAgICBEaWRDaGFuZ2VQb3NpdGlv
bihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBwb3NpdGlvbik7CiAgICAgRGlkRmFp
bFRvRGV0ZXJtaW5lUG9zaXRpb24oU3RyaW5nIGVycm9yTWVzc2FnZSk7CiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKICAgICBSZXNldFBlcm1pc3Npb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9u
Q2xpZW50LmNwcAppbmRleCBhMjRlMGZmMjFjYy4uZjIyNzUxMjU5ZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdl
b2xvY2F0aW9uQ2xpZW50LmNwcApAQCAtNjMsNyArNjMsNyBAQCB2b2lkIFdlYkdlb2xvY2F0aW9u
Q2xpZW50OjpzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCBlbmFibGVkKQogICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8V2ViR2VvbG9jYXRpb25NYW5hZ2VyPigpLT5zZXRF
bmFibGVIaWdoQWNjdXJhY3lGb3JQYWdlKG1fcGFnZSwgZW5hYmxlZCk7CiB9CiAKLU9wdGlvbmFs
PEdlb2xvY2F0aW9uUG9zaXRpb24+IFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24o
KQorT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IFdlYkdlb2xvY2F0aW9uQ2xpZW50
OjpsYXN0UG9zaXRpb24oKQogewogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRp
b25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJH
ZW9sb2NhdGlvbkNsaWVudC5oCmluZGV4IDM1YTMxZmMyYTM0Li5kNDc3NmU5MTUxYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHN0b3BVcGRhdGluZygpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3Vy
YWN5KGJvb2wpIG92ZXJyaWRlOwogCi0gICAgT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Q
b3NpdGlvbj4gbGFzdFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6
R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlvbigpIG92ZXJyaWRlOwogCiAgICAg
dm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpHZW9sb2NhdGlvbiYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoV2ViQ29yZTo6R2VvbG9jYXRpb24mKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2Vv
bG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3Mv
TWlzYy9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmgKaW5kZXggMDQ5MGZjZmIx
ZGIuLjg0MjdjYjgxMDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNj
L1dlYkdlb2xvY2F0aW9uQ29yZUxvY2F0aW9uUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uQ29yZUxvY2F0aW9uUHJvdmlkZXIuaApAQCAt
MjksNyArMjksNyBAQAogQGNsYXNzIE5TU3RyaW5nOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1j
bGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOworY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE7
CiB9CiAKIC8vIFdlYkdlb2xvY2F0aW9uQ29yZUxvY2F0aW9uRGVsZWdhdGUgYWJzdHJhY3RzIHRo
ZSBsb2NhdGlvbiBzZXJ2aWNlcyBvZiBDb3JlTG9jYXRpb24uCkBAIC00Myw3ICs0Myw3IEBAIGNs
YXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CiAtICh2b2lkKWdlb2xvY2F0aW9uQXV0aG9yaXphdGlv
bkdyYW50ZWQ7CiAtICh2b2lkKWdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkRlbmllZDsKIAotLSAo
dm9pZClwb3NpdGlvbkNoYW5nZWQ6KFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24mJilwb3Np
dGlvbjsKKy0gKHZvaWQpcG9zaXRpb25DaGFuZ2VkOihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YSYmKXBvc2l0aW9uOwogLSAodm9pZCllcnJvck9jY3VycmVkOihOU1N0cmluZyAqKWVy
cm9yTWVzc2FnZTsKIC0gKHZvaWQpcmVzZXRHZW9sb2NhdGlvbjsKIEBlbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Q
cm92aWRlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25D
b3JlTG9jYXRpb25Qcm92aWRlci5tbQppbmRleCBjNWY2NDZiMmE0NS4uZGU5MTMzYmYwOGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Db3Jl
TG9jYXRpb25Qcm92aWRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dl
Ykdlb2xvY2F0aW9uQ29yZUxvY2F0aW9uUHJvdmlkZXIubW0KQEAgLTMwLDcgKzMwLDcgQEAKICNp
bXBvcnQgPENvcmVMb2NhdGlvbi9DTExvY2F0aW9uLmg+CiAjaW1wb3J0IDxDb3JlTG9jYXRpb24v
Q0xMb2NhdGlvbk1hbmFnZXJEZWxlZ2F0ZS5oPgogI2ltcG9ydCA8Q29yZUxvY2F0aW9uL0NvcmVM
b2NhdGlvbi5oPgotI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+CisjaW1w
b3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmg+CiAjaW1wb3J0IDxXZWJLaXRM
b2dnaW5nLmg+CiAjaW1wb3J0IDxvYmpjL29iamMtcnVudGltZS5oPgogI2ltcG9ydCA8d3RmL1Jl
ZlB0ci5oPgpAQCAtMTcwLDcgKzE3MCw3IEBAIC0gKHZvaWQpbG9jYXRpb25NYW5hZ2VyOihDTExv
Y2F0aW9uTWFuYWdlciAqKW1hbmFnZXIgZGlkQ2hhbmdlQXV0aG9yaXphdGlvblN0YXR1CiAKIC0g
KHZvaWQpc2VuZExvY2F0aW9uOihDTExvY2F0aW9uICopbmV3TG9jYXRpb24KIHsKLSAgICBbX3Bv
c2l0aW9uTGlzdGVuZXIgcG9zaXRpb25DaGFuZ2VkOkdlb2xvY2F0aW9uUG9zaXRpb24geyBuZXdM
b2NhdGlvbiB9XTsKKyAgICBbX3Bvc2l0aW9uTGlzdGVuZXIgcG9zaXRpb25DaGFuZ2VkOkdlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhIHsgbmV3TG9jYXRpb24gfV07CiB9CiAKIC0gKHZvaWQpbG9jYXRp
b25NYW5hZ2VyOihDTExvY2F0aW9uTWFuYWdlciAqKW1hbmFnZXIgZGlkVXBkYXRlTG9jYXRpb25z
OihOU0FycmF5ICopbG9jYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lv
cy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KaW5kZXggYzJmZjM1MGY3NDUu
LjVlNzc3OTY0ZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dl
Ykdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3Mv
TWlzYy9XZWJHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCkBAIC00Miw3ICs0Miw3IEBACiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogQGludGVyZmFjZSBXZWJHZW9sb2NhdGlvblBvc2l0aW9u
IChJbnRlcm5hbCkKLS0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlvbjooR2VvbG9jYXRp
b25Qb3NpdGlvbiYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOworLSAoaWQpaW5pdFdpdGhHZW9s
b2NhdGlvblBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKWNvcmVHZW9sb2NhdGlv
blBvc2l0aW9uOwogQGVuZAogCiAvLyBDb3JlTG9jYXRpb24gcnVucyBpbiB0aGUgbWFpbiB0aHJl
YWQuIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MgbGl2ZXMgb24gdGhlIFdlYlRocmVhZC4KQEAg
LTM0OCw3ICszNDgsNyBAQCAtICh2b2lkKWdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkRlbmllZAog
ICAgIH0pOwogfQogCi0tICh2b2lkKXBvc2l0aW9uQ2hhbmdlZDooV2ViQ29yZTo6R2VvbG9jYXRp
b25Qb3NpdGlvbiYmKXBvc2l0aW9uCistICh2b2lkKXBvc2l0aW9uQ2hhbmdlZDooV2ViQ29yZTo6
R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJilwb3NpdGlvbgogewogICAgIFJldGFpblB0cjxXZWJH
ZW9sb2NhdGlvblBvc2l0aW9uPiB3ZWJQb3NpdGlvbiA9IGFkb3B0TlMoW1tXZWJHZW9sb2NhdGlv
blBvc2l0aW9uIGFsbG9jXSBpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246V1RGTW92ZShwb3Np
dGlvbildKTsKICAgICBXZWJUaHJlYWRSdW4oXnsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCmlu
ZGV4IGZmZGJhY2ZjMjc0Li44YTFiN2YwMDlkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5o
CkBAIC0yNyw3ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdlb2xvY2F0
aW9uOwotY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRp
b25EYXRhOwogfQogCiBAY2xhc3MgV2ViVmlldzsKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpIG92ZXJyaWRlIHsgfQogI2VuZGlm
CiAKLSAgICBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiBsYXN0UG9zaXRp
b24oKSBvdmVycmlkZTsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9u
RGF0YT4gbGFzdFBvc2l0aW9uKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNz
aW9uKFdlYkNvcmU6Okdlb2xvY2F0aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjYW5jZWxQZXJt
aXNzaW9uUmVxdWVzdChXZWJDb3JlOjpHZW9sb2NhdGlvbiYpIG92ZXJyaWRlIHsgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
R2VvbG9jYXRpb25DbGllbnQubW0KaW5kZXggMmNmNzE1ZTJkOTAuLjg3ZGE3MzBmZWFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2Nh
dGlvbkNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQpAQCAtMTMyLDcgKzEzMiw3IEBAIHZvaWQgV2ViR2Vv
bG9jYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKEdlb2xvY2F0aW9uJiBnZW9sb2NhdGlv
bikKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogfQogCi1PcHRpb25hbDxHZW9sb2Nh
dGlvblBvc2l0aW9uPiBXZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKCkKK09wdGlv
bmFsPEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBXZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBv
c2l0aW9uKCkKIHsKICAgICByZXR1cm4gY29yZShbW21fd2ViVmlldyBfZ2VvbG9jYXRpb25Qcm92
aWRlcl0gbGFzdFBvc2l0aW9uXSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0KaW5kZXggZDE1ZjVmOWM2
OWUuLjVkYmZkMzU1YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tCkBAIC0yNiw3ICsyNiw3IEBACiAj
aW1wb3J0ICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAKICNpbXBvcnQgIldlYkdlb2xvY2F0
aW9uUG9zaXRpb25JbnRlcm5hbC5oIgotI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0
aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmg+CiAjaW1w
b3J0IDx3dGYvT3B0aW9uYWwuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KIApAQCAtMzUsMTUg
KzM1LDE1IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogQGludGVyZmFjZSBXZWJHZW9sb2Nh
dGlvblBvc2l0aW9uSW50ZXJuYWwgOiBOU09iamVjdAogewogQHB1YmxpYwotICAgIEdlb2xvY2F0
aW9uUG9zaXRpb24gX3Bvc2l0aW9uOworICAgIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIF9wb3Np
dGlvbjsKIH0KIAotLSAoaWQpaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjooR2VvbG9j
YXRpb25Qb3NpdGlvbiYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOworLSAoaWQpaW5pdFdpdGhD
b3JlR2VvbG9jYXRpb25Qb3NpdGlvbjooR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiljb3JlR2Vv
bG9jYXRpb25Qb3NpdGlvbjsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkdlb2xvY2F0aW9u
UG9zaXRpb25JbnRlcm5hbAogCi0tIChpZClpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9u
OihHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb24KKy0gKGlkKWlu
aXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246KEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYp
Y29yZUdlb2xvY2F0aW9uUG9zaXRpb24KIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAg
IGlmICghc2VsZikKQEAgLTU2LDcgKzU2LDcgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbgogCi1PcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uPiBjb3Jl
KFdlYkdlb2xvY2F0aW9uUG9zaXRpb24gKnBvc2l0aW9uKQorT3B0aW9uYWw8R2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGE+IGNvcmUoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiAqcG9zaXRpb24pCiB7CiAg
ICAgaWYgKCFwb3NpdGlvbikKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKQEAgLTY4LDEx
ICs2OCwxMSBAQCAtIChpZClpbml0V2l0aFRpbWVzdGFtcDooZG91YmxlKXRpbWVzdGFtcCBsYXRp
dHVkZTooZG91YmxlKWxhdGl0dWRlIGxvbmdpdHVkZTooZAogICAgIHNlbGYgPSBbc3VwZXIgaW5p
dF07CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIF9pbnRlcm5hbCA9
IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsIGFsbG9jXSBpbml0V2l0aENvcmVHZW9s
b2NhdGlvblBvc2l0aW9uOkdlb2xvY2F0aW9uUG9zaXRpb24geyB0aW1lc3RhbXAsIGxhdGl0dWRl
LCBsb25naXR1ZGUsIGFjY3VyYWN5IH1dOworICAgIF9pbnRlcm5hbCA9IFtbV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbkludGVybmFsIGFsbG9jXSBpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9u
Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIHsgdGltZXN0YW1wLCBsYXRpdHVkZSwgbG9uZ2l0dWRl
LCBhY2N1cmFjeSB9XTsKICAgICByZXR1cm4gc2VsZjsKIH0KIAotLSAoaWQpaW5pdFdpdGhHZW9s
b2NhdGlvblBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZUdlb2xvY2F0aW9uUG9z
aXRpb24KKy0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlvbjooR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEmJiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbgogewogICAgIHNlbGYgPSBbc3VwZXIg
aW5pdF07CiAgICAgaWYgKCFzZWxmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmgKaW5k
ZXggMzQ3NjMwMmYyZDYuLjdlYWFhOWMwZWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVy
bmFsLmgKQEAgLTI3LDggKzI3LDggQEAKICNpbXBvcnQgPHd0Zi9PcHRpb25hbC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKK2NsYXNzIEdl
b2xvY2F0aW9uUG9zaXRpb25EYXRhOwogfQogCi1PcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlv
blBvc2l0aW9uPiBjb3JlKFdlYkdlb2xvY2F0aW9uUG9zaXRpb24gKik7CitPcHRpb25hbDxXZWJD
b3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gY29yZShXZWJHZW9sb2NhdGlvblBvc2l0aW9u
ICopOwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1h
Yy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCmluZGV4IDFm
OTYwYWFlMmRkLi4wMDY1OTU2YzgxZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL1Rlc3RSdW5uZXJNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RS
dW5uZXJNYWMubW0KQEAgLTQxLDcgKzQxLDcgQEAKICNpbXBvcnQgIldvcmtRdWV1ZUl0ZW0uaCIK
ICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENv
cmUvSlNTdHJpbmdSZWZDRi5oPgotI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9u
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmg+CiAjaW1wb3J0
IDxXZWJLaXQvRE9NRG9jdW1lbnQuaD4KICNpbXBvcnQgPFdlYktpdC9ET01FbGVtZW50Lmg+CiAj
aW1wb3J0IDxXZWJLaXQvRE9NSFRNTElucHV0RWxlbWVudFByaXZhdGUuaD4KQEAgLTExOSw3ICsx
MTksNyBAQCBAZW5kCiAjZW5kaWYKIAogQGludGVyZmFjZSBXZWJHZW9sb2NhdGlvblBvc2l0aW9u
IChJbnRlcm5hbCkKLS0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlvbjooV2ViQ29yZTo6
R2VvbG9jYXRpb25Qb3NpdGlvbiYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOworLSAoaWQpaW5p
dFdpdGhHZW9sb2NhdGlvblBvc2l0aW9uOihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YSYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOwogQGVuZAogCiBUZXN0UnVubmVyOjp+VGVzdFJ1
bm5lcigpCkBAIC00NzIsNyArNDcyLDcgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9j
YXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGQKICAgICAg
ICAgLy8gVGVzdCB0aGUgZXhwb3NlZCBBUEkuCiAgICAgICAgIHBvc2l0aW9uID0gW1tXZWJHZW9s
b2NhdGlvblBvc2l0aW9uIGFsbG9jXSBpbml0V2l0aFRpbWVzdGFtcDpXYWxsVGltZTo6bm93KCku
c2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCkgbGF0aXR1ZGU6bGF0aXR1ZGUgbG9uZ2l0dWRl
OmxvbmdpdHVkZSBhY2N1cmFjeTphY2N1cmFjeV07CiAgICAgfSBlbHNlIHsKLSAgICAgICAgV2Vi
Q29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiBnZW9sb2NhdGlvblBvc2l0aW9uIHsgV2FsbFRpbWU6
Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpLCBsYXRpdHVkZSwgbG9uZ2l0dWRl
LCBhY2N1cmFjeSB9OworICAgICAgICBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBn
ZW9sb2NhdGlvblBvc2l0aW9uIHsgV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCku
c2Vjb25kcygpLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSB9OwogICAgICAgICBpZiAo
cHJvdmlkZXNBbHRpdHVkZSkKICAgICAgICAgICAgIGdlb2xvY2F0aW9uUG9zaXRpb24uYWx0aXR1
ZGUgPSBhbHRpdHVkZTsKICAgICAgICAgaWYgKHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377072</attachid>
            <date>2019-08-22 16:30:52 -0700</date>
            <delta_ts>2019-08-22 16:55:24 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>200885_GeolocationPosition_wip.patch</filename>
            <type>text/plain</type>
            <size>86882</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMGUyOTNkMjUyOTMuLmE1YjYyZjQwOGRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMjYxLDEyICsyNjEsMTIgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19J
RExfRklMRVMKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaWRsCiAgICAgTW9kdWxl
cy9mZXRjaC9Xb3JrZXJHbG9iYWxTY29wZUZldGNoLmlkbAogCi0gICAgTW9kdWxlcy9nZW9sb2Nh
dGlvbi9Db29yZGluYXRlcy5pZGwKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmlkbAotICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCisgICAgTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmlkbAorICAgIE1vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbi5pZGwKKyAgICBNb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL05h
dmlnYXRvckdlb2xvY2F0aW9uLmlkbAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25D
YWxsYmFjay5pZGwKLSAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsCiAg
ICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsCiAgICAgTW9k
dWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IGU0MDgzZGQ5MGM3Li4zNTI2
ZmRhNmNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CkBAIC05OSw2ICs5OSw5IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZ2FtZXBhZC9H
YW1lcGFkRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9y
R2FtZXBhZC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0
ZXMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmlk
bAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5h
dGVzLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBv
c2l0aW9uLmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3IuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b3Bvc2l0aW9uLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0
b3JHZW9sb2NhdGlvbi5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9z
aXRpb25DYWxsYmFjay5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKaW5kZXggOTA2YzMxNDUzNzguLmViNzMzZmY3MGI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNjU1LDYg
KzY1NSwxMiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0dhbWVwYWRXZWJWUi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTR2FtZXBhZFdlYlZSLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb25D
b29yZGluYXRlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uUG9zaXRpb24uaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3Iu
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xv
Y2F0aW9uUG9zaXRpb25FcnJvci5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0dlb3Bvc2l0aW9uLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNHZW9wb3NpdGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlc3R1cmVFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCmluZGV4IDQ2NGMxM2YyNjE0Li4wYzI4YjY1N2I4NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNzEsMTIgKzE3MSwxMiBAQCBKU19CSU5ESU5HX0lETFMg
PSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dhbWVwYWQvR2FtZXBhZEJ1dHRvbi5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRFdmVudC5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVwYWQuaWRsIFwKLSAgICAkKFdl
YkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsIFwKLSAgICAkKFdlYkNvcmUp
L01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsIFwKKyAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbCBcCisgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2Nh
dGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNh
bGxiYWNrLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9u
RXJyb3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25F
cnJvckNhbGxiYWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bv
c2l0aW9uT3B0aW9ucy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvRE9N
V2luZG93SW5kZXhlZERhdGFiYXNlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA3YjgyODBl
YmQwMi4uNWQ5NjE2YTQ1NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMjUsMTUgKzI1LDE1IEBA
IHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2ZldGNo
L0ZldGNoTG9hZGVyLmgKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyQ2xpZW50LmgKIAot
ICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaAogICAgIE1vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb24uaAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25D
bGllbnQuaAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmgK
KyAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaAogICAgIE1v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25FcnJvci5oCiAgICAgTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmgKLSAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bv
c2l0aW9uLmgKKyAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRh
LmgKKyAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oCiAg
ICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmgKLSAgICBNb2R1bGVzL2dl
b2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRp
b25FcnJvckNhbGxiYWNrLmgKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uT3B0aW9u
cy5oCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2Vv
Tm90aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9Ob3Rp
Zmllci5jcHAKaW5kZXggNzdlYmYzNDIxYzkuLjcwZjg5NjIxZmNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcApAQCAtNDQsNyAr
NDQsNyBAQCBHZW9Ob3RpZmllcjo6R2VvTm90aWZpZXIoR2VvbG9jYXRpb24mIGdlb2xvY2F0aW9u
LCBSZWY8UG9zaXRpb25DYWxsYmFjaz4mJiBzdWNjZQogewogfQogCi12b2lkIEdlb05vdGlmaWVy
OjpzZXRGYXRhbEVycm9yKFJlZlB0cjxQb3NpdGlvbkVycm9yPiYmIGVycm9yKQordm9pZCBHZW9O
b3RpZmllcjo6c2V0RmF0YWxFcnJvcihSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yPiYm
IGVycm9yKQogewogICAgIC8vIElmIGEgZmF0YWwgZXJyb3IgaGFzIGFscmVhZHkgYmVlbiBzZXQs
IHN0aWNrIHdpdGggaXQuIFRoaXMgbWFrZXMgc3VyZSB0aGF0CiAgICAgLy8gd2hlbiBwZXJtaXNz
aW9uIGlzIGRlbmllZCwgdGhpcyBpcyB0aGUgZXJyb3IgcmVwb3J0ZWQsIGFzIHJlcXVpcmVkIGJ5
IHRoZQpAQCAtNjksNyArNjksNyBAQCBib29sIEdlb05vdGlmaWVyOjpoYXNaZXJvVGltZW91dCgp
IGNvbnN0CiAgICAgcmV0dXJuICFtX29wdGlvbnMudGltZW91dDsKIH0KIAotdm9pZCBHZW9Ob3Rp
Zmllcjo6cnVuU3VjY2Vzc0NhbGxiYWNrKEdlb3Bvc2l0aW9uKiBwb3NpdGlvbikKK3ZvaWQgR2Vv
Tm90aWZpZXI6OnJ1blN1Y2Nlc3NDYWxsYmFjayhHZW9sb2NhdGlvblBvc2l0aW9uKiBwb3NpdGlv
bikKIHsKICAgICAvLyBJZiB3ZSBhcmUgaGVyZSBhbmQgdGhlIEdlb2xvY2F0aW9uIHBlcm1pc3Np
b24gaXMgbm90IGFwcHJvdmVkLCBzb21ldGhpbmcgaGFzCiAgICAgLy8gZ29uZSBob3JyaWJseSB3
cm9uZy4KQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBHZW9Ob3RpZmllcjo6cnVuU3VjY2Vzc0NhbGxi
YWNrKEdlb3Bvc2l0aW9uKiBwb3NpdGlvbikKICAgICBtX3N1Y2Nlc3NDYWxsYmFjay0+aGFuZGxl
RXZlbnQocG9zaXRpb24pOwogfQogCi12b2lkIEdlb05vdGlmaWVyOjpydW5FcnJvckNhbGxiYWNr
KFBvc2l0aW9uRXJyb3ImIGVycm9yKQordm9pZCBHZW9Ob3RpZmllcjo6cnVuRXJyb3JDYWxsYmFj
ayhHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImIGVycm9yKQogewogICAgIGlmIChtX2Vycm9yQ2Fs
bGJhY2spCiAgICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoZXJyb3IpOwpAQCAt
MTIxLDcgKzEyMSw3IEBAIHZvaWQgR2VvTm90aWZpZXI6OnRpbWVyRmlyZWQoKQogICAgIH0KICAg
ICAKICAgICBpZiAobV9lcnJvckNhbGxiYWNrKSB7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBQb3Np
dGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6VElNRU9VVCwgIlRpbWVvdXQgZXhwaXJl
ZCJfcyk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNy
ZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlRJTUVPVVQsICJUaW1lb3V0IGV4cGlyZWQi
X3MpOwogICAgICAgICBtX2Vycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KGVycm9yKTsKICAgICB9
CiAgICAgbV9nZW9sb2NhdGlvbi0+cmVxdWVzdFRpbWVkT3V0KHRoaXMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9Ob3RpZmllci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9Ob3RpZmllci5oCmluZGV4IGZiMzJjZThk
OWJmLi5kYjkxM2VmOTBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9Ob3RpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvTm90aWZpZXIuaApAQCAtMzYsMTAgKzM2LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgR2VvcG9zaXRpb247CiBjbGFzcyBHZW9sb2NhdGlvbjsKK2NsYXNzIEdl
b2xvY2F0aW9uUG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I7CiBjbGFz
cyBQb3NpdGlvbkNhbGxiYWNrOwotY2xhc3MgUG9zaXRpb25FcnJvcjsKIGNsYXNzIFBvc2l0aW9u
RXJyb3JDYWxsYmFjazsKIAogY2xhc3MgR2VvTm90aWZpZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxH
ZW9Ob3RpZmllcj4gewpAQCAtNTAsMTMgKzUwLDEzIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBj
b25zdCBQb3NpdGlvbk9wdGlvbnMmIG9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnM7
IH0KLSAgICB2b2lkIHNldEZhdGFsRXJyb3IoUmVmUHRyPFBvc2l0aW9uRXJyb3I+JiYpOworICAg
IHZvaWQgc2V0RmF0YWxFcnJvcihSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yPiYmKTsK
IAogICAgIGJvb2wgdXNlQ2FjaGVkUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3VzZUNhY2hl
ZFBvc2l0aW9uOyB9CiAgICAgdm9pZCBzZXRVc2VDYWNoZWRQb3NpdGlvbigpOwogCi0gICAgdm9p
ZCBydW5TdWNjZXNzQ2FsbGJhY2soR2VvcG9zaXRpb24qKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxk
IHRha2UgYSByZWZlcmVuY2UuCi0gICAgdm9pZCBydW5FcnJvckNhbGxiYWNrKFBvc2l0aW9uRXJy
b3ImKTsKKyAgICB2b2lkIHJ1blN1Y2Nlc3NDYWxsYmFjayhHZW9sb2NhdGlvblBvc2l0aW9uKik7
IC8vIEZJWE1FOiBUaGlzIHNob3VsZCB0YWtlIGEgcmVmZXJlbmNlLgorICAgIHZvaWQgcnVuRXJy
b3JDYWxsYmFjayhHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImKTsKIAogICAgIHZvaWQgc3RhcnRU
aW1lcklmTmVlZGVkKCk7CiAgICAgdm9pZCBzdG9wVGltZXIoKTsKQEAgLTcxLDcgKzcxLDcgQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxiYWNrPiBtX2Vycm9yQ2FsbGJh
Y2s7CiAgICAgUG9zaXRpb25PcHRpb25zIG1fb3B0aW9uczsKICAgICBUaW1lciBtX3RpbWVyOwot
ICAgIFJlZlB0cjxQb3NpdGlvbkVycm9yPiBtX2ZhdGFsRXJyb3I7CisgICAgUmVmUHRyPEdlb2xv
Y2F0aW9uUG9zaXRpb25FcnJvcj4gbV9mYXRhbEVycm9yOwogICAgIGJvb2wgbV91c2VDYWNoZWRQ
b3NpdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAKaW5kZXggZTI2OTFmNTk3ZmUuLmYxMmUxNDkwZmQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcApA
QCAtMzAsMTcgKzMwLDE2IEBACiAKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAKLSNpbmNsdWRl
ICJDb29yZGluYXRlcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJHZW9Ob3RpZmllci5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJv
bGxlci5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaCIKICNpbmNsdWRlICJH
ZW9sb2NhdGlvbkVycm9yLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgotI2lu
Y2x1ZGUgIkdlb3Bvc2l0aW9uLmgiCisjaW5jbHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEu
aCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAi
UG9zaXRpb25FcnJvci5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgog
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KQEAgLTU2LDI4ICs1NSwyOCBAQCBzdGF0aWMgY29uc3QgQVNDSUlMaXRlcmFsIG9yaWdp
bkNhbm5vdFJlcXVlc3RHZW9sb2NhdGlvbkVycm9yTWVzc2FnZSB7ICJPcmlnaW4gZAogCiBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoR2VvbG9jYXRpb24pOwogCi1zdGF0aWMgUmVmUHRyPEdl
b3Bvc2l0aW9uPiBjcmVhdGVHZW9wb3NpdGlvbihPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9u
PiYmIHBvc2l0aW9uKQorc3RhdGljIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBjcmVhdGVH
ZW9sb2NhdGlvblBvc2l0aW9uKE9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiYmIHBv
c2l0aW9uKQogewogICAgIGlmICghcG9zaXRpb24pCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIAogICAgIERPTVRpbWVTdGFtcCB0aW1lc3RhbXAgPSBjb252ZXJ0U2Vjb25kc1RvRE9NVGlt
ZVN0YW1wKHBvc2l0aW9uLT50aW1lc3RhbXApOwotICAgIHJldHVybiBHZW9wb3NpdGlvbjo6Y3Jl
YXRlKENvb3JkaW5hdGVzOjpjcmVhdGUoV1RGTW92ZShwb3NpdGlvbi52YWx1ZSgpKSksIHRpbWVz
dGFtcCk7CisgICAgcmV0dXJuIEdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZShHZW9sb2NhdGlv
bkNvb3JkaW5hdGVzOjpjcmVhdGUoV1RGTW92ZShwb3NpdGlvbi52YWx1ZSgpKSksIHRpbWVzdGFt
cCk7CiB9CiAKLXN0YXRpYyBSZWY8UG9zaXRpb25FcnJvcj4gY3JlYXRlUG9zaXRpb25FcnJvcihH
ZW9sb2NhdGlvbkVycm9yJiBlcnJvcikKK3N0YXRpYyBSZWY8R2VvbG9jYXRpb25Qb3NpdGlvbkVy
cm9yPiBjcmVhdGVHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IoR2VvbG9jYXRpb25FcnJvciYgZXJy
b3IpCiB7Ci0gICAgUG9zaXRpb25FcnJvcjo6RXJyb3JDb2RlIGNvZGUgPSBQb3NpdGlvbkVycm9y
OjpQT1NJVElPTl9VTkFWQUlMQUJMRTsKKyAgICBhdXRvIGNvZGUgPSBHZW9sb2NhdGlvblBvc2l0
aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxFOwogICAgIHN3aXRjaCAoZXJyb3IuY29kZSgp
KSB7CiAgICAgY2FzZSBHZW9sb2NhdGlvbkVycm9yOjpQZXJtaXNzaW9uRGVuaWVkOgotICAgICAg
ICBjb2RlID0gUG9zaXRpb25FcnJvcjo6UEVSTUlTU0lPTl9ERU5JRUQ7CisgICAgICAgIGNvZGUg
PSBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBFUk1JU1NJT05fREVOSUVEOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEdlb2xvY2F0aW9uRXJyb3I6OlBvc2l0aW9uVW5hdmFpbGFibGU6Ci0g
ICAgICAgIGNvZGUgPSBQb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRTsKKyAgICAg
ICAgY29kZSA9IEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEU7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIHJldHVybiBQb3NpdGlvbkVycm9yOjpjcmVh
dGUoY29kZSwgZXJyb3IubWVzc2FnZSgpKTsKKyAgICByZXR1cm4gR2VvbG9jYXRpb25Qb3NpdGlv
bkVycm9yOjpjcmVhdGUoY29kZSwgZXJyb3IubWVzc2FnZSgpKTsKIH0KIAogYm9vbCBHZW9sb2Nh
dGlvbjo6V2F0Y2hlcnM6OmFkZChpbnQgaWQsIFJlZlB0cjxHZW9Ob3RpZmllcj4mJiBub3RpZmll
cikKQEAgLTI5MCwxMyArMjg5LDEzIEBAIGNvbnN0IGNoYXIqIEdlb2xvY2F0aW9uOjphY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QKICAgICByZXR1cm4gIkdlb2xvY2F0aW9uIjsKIH0KIAotR2Vv
cG9zaXRpb24qIEdlb2xvY2F0aW9uOjpsYXN0UG9zaXRpb24oKQorR2VvbG9jYXRpb25Qb3NpdGlv
biogR2VvbG9jYXRpb246Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgUGFnZSogcGFnZSA9IHRoaXMt
PnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAg
bV9sYXN0UG9zaXRpb24gPSBjcmVhdGVHZW9wb3NpdGlvbihHZW9sb2NhdGlvbkNvbnRyb2xsZXI6
OmZyb20ocGFnZSktPmxhc3RQb3NpdGlvbigpKTsKKyAgICBtX2xhc3RQb3NpdGlvbiA9IGNyZWF0
ZUdlb2xvY2F0aW9uUG9zaXRpb24oR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5s
YXN0UG9zaXRpb24oKSk7CiAKICAgICByZXR1cm4gbV9sYXN0UG9zaXRpb24uZ2V0KCk7CiB9CkBA
IC0zNzMsNyArMzcyLDcgQEAgYm9vbCBHZW9sb2NhdGlvbjo6c2hvdWxkQmxvY2tHZW9sb2NhdGlv
blJlcXVlc3RzKCkKIHZvaWQgR2VvbG9jYXRpb246OnN0YXJ0UmVxdWVzdChHZW9Ob3RpZmllciog
bm90aWZpZXIpCiB7CiAgICAgaWYgKHNob3VsZEJsb2NrR2VvbG9jYXRpb25SZXF1ZXN0cygpKSB7
Ci0gICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQ
b3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgb3JpZ2luQ2Fubm90UmVxdWVzdEdl
b2xvY2F0aW9uRXJyb3JNZXNzYWdlKSk7CisgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9y
KEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJv
cjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIG9yaWdpbkNhbm5vdFJlcXVlc3RHZW9sb2NhdGlvbkVy
cm9yTWVzc2FnZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGRvY3VtZW50KCktPnNl
dEdlb2xvY2F0aW9uQWNjZXNzZWQoKTsKQEAgLTM4MSw3ICszODAsNyBAQCB2b2lkIEdlb2xvY2F0
aW9uOjpzdGFydFJlcXVlc3QoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogICAgIC8vIENoZWNrIHdo
ZXRoZXIgcGVybWlzc2lvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gZGVuaWVkLiBOb3RlIHRoYXQgaWYg
dGhpcyBpcyB0aGUgY2FzZSwKICAgICAvLyB0aGUgcGVybWlzc2lvbiBzdGF0ZSBjYW4gbm90IGNo
YW5nZSBhZ2FpbiBpbiB0aGUgbGlmZXRpbWUgb2YgdGhpcyBwYWdlLgogICAgIGlmIChpc0Rlbmll
ZCgpKQotICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihQb3NpdGlvbkVycm9yOjpjcmVh
dGUoUG9zaXRpb25FcnJvcjo6UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Npb25EZW5pZWRFcnJv
ck1lc3NhZ2UpKTsKKyAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9O
X0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZSkpOwogICAgIGVsc2UgaWYgKGhh
dmVTdWl0YWJsZUNhY2hlZFBvc2l0aW9uKG5vdGlmaWVyLT5vcHRpb25zKCkpKQogICAgICAgICBu
b3RpZmllci0+c2V0VXNlQ2FjaGVkUG9zaXRpb24oKTsKICAgICBlbHNlIGlmIChub3RpZmllci0+
aGFzWmVyb1RpbWVvdXQoKSkKQEAgLTM5Myw3ICszOTIsNyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpz
dGFydFJlcXVlc3QoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogICAgIH0gZWxzZSBpZiAoc3RhcnRV
cGRhdGluZyhub3RpZmllcikpCiAgICAgICAgIG5vdGlmaWVyLT5zdGFydFRpbWVySWZOZWVkZWQo
KTsKICAgICBlbHNlCi0gICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJy
b3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgZmFpbGVkVG9T
dGFydFNlcnZpY2VFcnJvck1lc3NhZ2UpKTsKKyAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJy
b3IoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVy
cm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgZmFpbGVkVG9TdGFydFNlcnZpY2VFcnJvck1lc3Nh
Z2UpKTsKIH0KIAogdm9pZCBHZW9sb2NhdGlvbjo6ZmF0YWxFcnJvck9jY3VycmVkKEdlb05vdGlm
aWVyKiBub3RpZmllcikKQEAgLTQxMSw3ICs0MTAsNyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpyZXF1
ZXN0VXNlc0NhY2hlZFBvc2l0aW9uKEdlb05vdGlmaWVyKiBub3RpZmllcikKICAgICAvLyBUaGlz
IGlzIGNhbGxlZCBhc3luY2hyb25vdXNseSwgc28gdGhlIHBlcm1pc3Npb25zIGNvdWxkIGhhdmUg
YmVlbiBkZW5pZWQKICAgICAvLyBzaW5jZSB3ZSBsYXN0IGNoZWNrZWQgaW4gc3RhcnRSZXF1ZXN0
LgogICAgIGlmIChpc0RlbmllZCgpKSB7Ci0gICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9y
KFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwg
cGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZSkpOworICAgICAgICBub3RpZmllci0+c2V0RmF0
YWxFcnJvcihHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0
aW9uRXJyb3I6OlBFUk1JU1NJT05fREVOSUVELCBwZXJtaXNzaW9uRGVuaWVkRXJyb3JNZXNzYWdl
KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQ0Myw3ICs0NDIsNyBAQCB2b2lkIEdl
b2xvY2F0aW9uOjptYWtlQ2FjaGVkUG9zaXRpb25DYWxsYmFja3MoKQogICAgICAgICAgICAgaWYg
KG5vdGlmaWVyLT5oYXNaZXJvVGltZW91dCgpIHx8IHN0YXJ0VXBkYXRpbmcobm90aWZpZXIuZ2V0
KCkpKQogICAgICAgICAgICAgICAgIG5vdGlmaWVyLT5zdGFydFRpbWVySWZOZWVkZWQoKTsKICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihQ
b3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUs
IGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CisgICAgICAgICAgICAgICAgbm90
aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2Vv
bG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgZmFpbGVkVG9TdGFy
dFNlcnZpY2VFcnJvck1lc3NhZ2UpKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNDY0LDcgKzQ2
Myw3IEBAIHZvaWQgR2VvbG9jYXRpb246OnJlcXVlc3RUaW1lZE91dChHZW9Ob3RpZmllciogbm90
aWZpZXIpCiAKIGJvb2wgR2VvbG9jYXRpb246OmhhdmVTdWl0YWJsZUNhY2hlZFBvc2l0aW9uKGNv
bnN0IFBvc2l0aW9uT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBHZW9wb3NpdGlvbiogY2FjaGVk
UG9zaXRpb24gPSBsYXN0UG9zaXRpb24oKTsKKyAgICBhdXRvKiBjYWNoZWRQb3NpdGlvbiA9IGxh
c3RQb3NpdGlvbigpOwogICAgIGlmICghY2FjaGVkUG9zaXRpb24pCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoIW9wdGlvbnMubWF4aW11bUFnZSkKQEAgLTUwNiw3ICs1MDUsNyBAQCB2
b2lkIEdlb2xvY2F0aW9uOjpzZXRJc0FsbG93ZWQoYm9vbCBhbGxvd2VkKQogICAgIH0KIAogICAg
IGlmICghaXNBbGxvd2VkKCkpIHsKLSAgICAgICAgYXV0byBlcnJvciA9IFBvc2l0aW9uRXJyb3I6
OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmll
ZEVycm9yTWVzc2FnZSk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBHZW9sb2NhdGlvblBvc2l0aW9u
RXJyb3I6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBFUk1JU1NJT05fREVOSUVE
LCBwZXJtaXNzaW9uRGVuaWVkRXJyb3JNZXNzYWdlKTsKICAgICAgICAgZXJyb3ItPnNldElzRmF0
YWwodHJ1ZSk7CiAgICAgICAgIGhhbmRsZUVycm9yKGVycm9yKTsKICAgICAgICAgbV9yZXF1ZXN0
c0F3YWl0aW5nQ2FjaGVkUG9zaXRpb24uY2xlYXIoKTsKQEAgLTUxOCwxOSArNTE3LDE5IEBAIHZv
aWQgR2VvbG9jYXRpb246OnNldElzQWxsb3dlZChib29sIGFsbG93ZWQpCiAgICAgLy8gSWYgdGhl
IHNlcnZpY2UgaGFzIGEgbGFzdCBwb3NpdGlvbiwgdXNlIGl0IHRvIGNhbGwgYmFjayBmb3IgYWxs
IHJlcXVlc3RzLgogICAgIC8vIElmIGFueSBvZiB0aGUgcmVxdWVzdHMgYXJlIHdhaXRpbmcgZm9y
IHBlcm1pc3Npb24gZm9yIGEgY2FjaGVkIHBvc2l0aW9uLAogICAgIC8vIHRoZSBwb3NpdGlvbiBm
cm9tIHRoZSBzZXJ2aWNlIHdpbGwgYmUgYXQgbGVhc3QgYXMgZnJlc2guCi0gICAgaWYgKFJlZlB0
cjxHZW9wb3NpdGlvbj4gcG9zaXRpb24gPSBsYXN0UG9zaXRpb24oKSkKKyAgICBpZiAoUmVmUHRy
PEdlb2xvY2F0aW9uUG9zaXRpb24+IHBvc2l0aW9uID0gbGFzdFBvc2l0aW9uKCkpCiAgICAgICAg
IG1ha2VTdWNjZXNzQ2FsbGJhY2tzKCpwb3NpdGlvbik7CiAgICAgZWxzZQogICAgICAgICBtYWtl
Q2FjaGVkUG9zaXRpb25DYWxsYmFja3MoKTsKIH0KIAotdm9pZCBHZW9sb2NhdGlvbjo6c2VuZEVy
cm9yKEdlb05vdGlmaWVyVmVjdG9yJiBub3RpZmllcnMsIFBvc2l0aW9uRXJyb3ImIGVycm9yKQor
dm9pZCBHZW9sb2NhdGlvbjo6c2VuZEVycm9yKEdlb05vdGlmaWVyVmVjdG9yJiBub3RpZmllcnMs
IEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciYgZXJyb3IpCiB7CiAgICAgZm9yIChhdXRvJiBub3Rp
ZmllciA6IG5vdGlmaWVycykKICAgICAgICAgbm90aWZpZXItPnJ1bkVycm9yQ2FsbGJhY2soZXJy
b3IpOwogfQogCi12b2lkIEdlb2xvY2F0aW9uOjpzZW5kUG9zaXRpb24oR2VvTm90aWZpZXJWZWN0
b3ImIG5vdGlmaWVycywgR2VvcG9zaXRpb24mIHBvc2l0aW9uKQordm9pZCBHZW9sb2NhdGlvbjo6
c2VuZFBvc2l0aW9uKEdlb05vdGlmaWVyVmVjdG9yJiBub3RpZmllcnMsIEdlb2xvY2F0aW9uUG9z
aXRpb24mIHBvc2l0aW9uKQogewogICAgIGZvciAoYXV0byYgbm90aWZpZXIgOiBub3RpZmllcnMp
CiAgICAgICAgIG5vdGlmaWVyLT5ydW5TdWNjZXNzQ2FsbGJhY2soJnBvc2l0aW9uKTsKQEAgLTU2
NSw3ICs1NjQsNyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpzdG9wVGltZXJzKCkKIHZvaWQgR2VvbG9j
YXRpb246OmNhbmNlbFJlcXVlc3RzKEdlb05vdGlmaWVyVmVjdG9yJiBub3RpZmllcnMpCiB7CiAg
ICAgZm9yIChhdXRvJiBub3RpZmllciA6IG5vdGlmaWVycykKLSAgICAgICAgbm90aWZpZXItPnNl
dEZhdGFsRXJyb3IoUG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlBPU0lUSU9O
X1VOQVZBSUxBQkxFLCBmcmFtZWxlc3NEb2N1bWVudEVycm9yTWVzc2FnZSkpOworICAgICAgICBu
b3RpZmllci0+c2V0RmF0YWxFcnJvcihHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNyZWF0ZShH
ZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxFLCBmcmFtZWxlc3NE
b2N1bWVudEVycm9yTWVzc2FnZSkpOwogfQogCiB2b2lkIEdlb2xvY2F0aW9uOjpjYW5jZWxBbGxS
ZXF1ZXN0cygpCkBAIC01OTUsNyArNTk0LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6Y29weVRvU2V0
KGNvbnN0IEdlb05vdGlmaWVyVmVjdG9yJiBzcmMsIEdlb05vdGlmaWVyU2V0JiBkZXN0KQogICAg
ICAgICBkZXN0LmFkZChub3RpZmllci5nZXQoKSk7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb246Omhh
bmRsZUVycm9yKFBvc2l0aW9uRXJyb3ImIGVycm9yKQordm9pZCBHZW9sb2NhdGlvbjo6aGFuZGxl
RXJyb3IoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yJiBlcnJvcikKIHsKICAgICBhdXRvIG9uZVNo
b3RzQ29weSA9IGNvcHlUb1ZlY3RvcihtX29uZVNob3RzKTsKIApAQCAtNjQzLDcgKzY0Miw3IEBA
IHZvaWQgR2VvbG9jYXRpb246OnJlcXVlc3RQZXJtaXNzaW9uKCkKICAgICBHZW9sb2NhdGlvbkNv
bnRyb2xsZXI6OmZyb20ocGFnZSktPnJlcXVlc3RQZXJtaXNzaW9uKCp0aGlzKTsKIH0KIAotdm9p
ZCBHZW9sb2NhdGlvbjo6bWFrZVN1Y2Nlc3NDYWxsYmFja3MoR2VvcG9zaXRpb24mIHBvc2l0aW9u
KQordm9pZCBHZW9sb2NhdGlvbjo6bWFrZVN1Y2Nlc3NDYWxsYmFja3MoR2VvbG9jYXRpb25Qb3Np
dGlvbiYgcG9zaXRpb24pCiB7CiAgICAgQVNTRVJUKGxhc3RQb3NpdGlvbigpKTsKICAgICBBU1NF
UlQoaXNBbGxvd2VkKCkpOwpAQCAtNjc3LDcgKzY3Niw3IEBAIHZvaWQgR2VvbG9jYXRpb246OnBv
c2l0aW9uQ2hhbmdlZCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSZWZQdHI8R2Vv
cG9zaXRpb24+IHBvc2l0aW9uID0gbGFzdFBvc2l0aW9uKCk7CisgICAgUmVmUHRyPEdlb2xvY2F0
aW9uUG9zaXRpb24+IHBvc2l0aW9uID0gbGFzdFBvc2l0aW9uKCk7CiAgICAgQVNTRVJUKHBvc2l0
aW9uKTsKIAogICAgIG1ha2VTdWNjZXNzQ2FsbGJhY2tzKCpwb3NpdGlvbik7CkBAIC02ODYsMTEg
KzY4NSwxMSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpwb3NpdGlvbkNoYW5nZWQoKQogdm9pZCBHZW9s
b2NhdGlvbjo6c2V0RXJyb3IoR2VvbG9jYXRpb25FcnJvciYgZXJyb3IpCiB7CiAgICAgaWYgKG1f
aXNTdXNwZW5kZWQpIHsKLSAgICAgICAgbV9lcnJvcldhaXRpbmdGb3JSZXN1bWUgPSBjcmVhdGVQ
b3NpdGlvbkVycm9yKGVycm9yKTsKKyAgICAgICAgbV9lcnJvcldhaXRpbmdGb3JSZXN1bWUgPSBj
cmVhdGVHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IoZXJyb3IpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgYXV0byBwb3NpdGlvbkVycm9yID0gY3JlYXRlUG9zaXRpb25FcnJvcihlcnJv
cik7CisgICAgYXV0byBwb3NpdGlvbkVycm9yID0gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbkVy
cm9yKGVycm9yKTsKICAgICBoYW5kbGVFcnJvcihwb3NpdGlvbkVycm9yKTsKIH0KIApAQCAtNzI0
LDkgKzcyMyw5IEBAIHZvaWQgR2VvbG9jYXRpb246OmhhbmRsZVBlbmRpbmdQZXJtaXNzaW9uTm90
aWZpZXJzKCkKICAgICAgICAgICAgIGlmIChzdGFydFVwZGF0aW5nKG5vdGlmaWVyLmdldCgpKSkK
ICAgICAgICAgICAgICAgICBub3RpZmllci0+c3RhcnRUaW1lcklmTmVlZGVkKCk7CiAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoUG9zaXRp
b25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxFLCBmYWls
ZWRUb1N0YXJ0U2VydmljZUVycm9yTWVzc2FnZSkpOworICAgICAgICAgICAgICAgIG5vdGlmaWVy
LT5zZXRGYXRhbEVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0
aW9uUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2
aWNlRXJyb3JNZXNzYWdlKSk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbm90aWZpZXIt
PnNldEZhdGFsRXJyb3IoUG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlBFUk1J
U1NJT05fREVOSUVELCBwZXJtaXNzaW9uRGVuaWVkRXJyb3JNZXNzYWdlKSk7CisgICAgICAgICAg
ICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNyZWF0
ZShHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBFUk1JU1NJT05fREVOSUVELCBwZXJtaXNzaW9u
RGVuaWVkRXJyb3JNZXNzYWdlKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgKaW5kZXggMmEwMTk4ZWVjZGMuLjQ2MGM5
MTIxODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9s
b2NhdGlvbi5oCkBAIC0zMCw5ICszMCw5IEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3Qu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkdlb3Bvc2l0aW9uLmgiCisjaW5j
bHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRp
b25FcnJvci5oIgogI2luY2x1ZGUgIlBvc2l0aW9uQ2FsbGJhY2suaCIKLSNpbmNsdWRlICJQb3Np
dGlvbkVycm9yLmgiCiAjaW5jbHVkZSAiUG9zaXRpb25FcnJvckNhbGxiYWNrLmgiCiAjaW5jbHVk
ZSAiUG9zaXRpb25PcHRpb25zLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCkBAIC03
OSw3ICs3OSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgR2VvbG9jYXRpb24o
TmF2aWdhdG9yJik7CiAKLSAgICBHZW9wb3NpdGlvbiogbGFzdFBvc2l0aW9uKCk7CisgICAgR2Vv
bG9jYXRpb25Qb3NpdGlvbiogbGFzdFBvc2l0aW9uKCk7CiAKICAgICAvLyBBY3RpdmVET01PYmpl
Y3QKICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKQEAgLTExNSw4ICsxMTUsOCBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBoYXNMaXN0ZW5lcnMoKSBjb25zdCB7IHJldHVybiAhbV9vbmVTaG90cy5p
c0VtcHR5KCkgfHwgIW1fd2F0Y2hlcnMuaXNFbXB0eSgpOyB9CiAKLSAgICB2b2lkIHNlbmRFcnJv
cihHZW9Ob3RpZmllclZlY3RvciYsIFBvc2l0aW9uRXJyb3ImKTsKLSAgICB2b2lkIHNlbmRQb3Np
dGlvbihHZW9Ob3RpZmllclZlY3RvciYsIEdlb3Bvc2l0aW9uJik7CisgICAgdm9pZCBzZW5kRXJy
b3IoR2VvTm90aWZpZXJWZWN0b3ImLCBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImKTsKKyAgICB2
b2lkIHNlbmRQb3NpdGlvbihHZW9Ob3RpZmllclZlY3RvciYsIEdlb2xvY2F0aW9uUG9zaXRpb24m
KTsKIAogICAgIHN0YXRpYyB2b2lkIGV4dHJhY3ROb3RpZmllcnNXaXRoQ2FjaGVkUG9zaXRpb24o
R2VvTm90aWZpZXJWZWN0b3ImIG5vdGlmaWVycywgR2VvTm90aWZpZXJWZWN0b3IqIGNhY2hlZCk7
CiAgICAgc3RhdGljIHZvaWQgY29weVRvU2V0KGNvbnN0IEdlb05vdGlmaWVyVmVjdG9yJiwgR2Vv
Tm90aWZpZXJTZXQmKTsKQEAgLTEyOSw4ICsxMjksOCBAQCBwcml2YXRlOgogICAgIHZvaWQgY2Fu
Y2VsUmVxdWVzdHMoR2VvTm90aWZpZXJWZWN0b3ImKTsKICAgICB2b2lkIGNhbmNlbEFsbFJlcXVl
c3RzKCk7CiAKLSAgICB2b2lkIG1ha2VTdWNjZXNzQ2FsbGJhY2tzKEdlb3Bvc2l0aW9uJik7Ci0g
ICAgdm9pZCBoYW5kbGVFcnJvcihQb3NpdGlvbkVycm9yJik7CisgICAgdm9pZCBtYWtlU3VjY2Vz
c0NhbGxiYWNrcyhHZW9sb2NhdGlvblBvc2l0aW9uJik7CisgICAgdm9pZCBoYW5kbGVFcnJvcihH
ZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImKTsKIAogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24o
KTsKIApAQCAtMTUzLDEzICsxNTMsMTMgQEAgcHJpdmF0ZToKICAgICBHZW9Ob3RpZmllclNldCBt
X29uZVNob3RzOwogICAgIFdhdGNoZXJzIG1fd2F0Y2hlcnM7CiAgICAgR2VvTm90aWZpZXJTZXQg
bV9wZW5kaW5nRm9yUGVybWlzc2lvbk5vdGlmaWVyczsKLSAgICBSZWZQdHI8R2VvcG9zaXRpb24+
IG1fbGFzdFBvc2l0aW9uOworICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBtX2xhc3RQ
b3NpdGlvbjsKIAogICAgIGVudW0geyBVbmtub3duLCBJblByb2dyZXNzLCBZZXMsIE5vIH0gbV9h
bGxvd0dlb2xvY2F0aW9uIHsgVW5rbm93biB9OwogICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX3Jlc2V0T25SZXN1bWUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9o
YXNDaGFuZ2VkUG9zaXRpb24geyBmYWxzZSB9OwotICAgIFJlZlB0cjxQb3NpdGlvbkVycm9yPiBt
X2Vycm9yV2FpdGluZ0ZvclJlc3VtZTsKKyAgICBSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbkVy
cm9yPiBtX2Vycm9yV2FpdGluZ0ZvclJlc3VtZTsKICAgICBUaW1lciBtX3Jlc3VtZVRpbWVyOwog
ICAgIEdlb05vdGlmaWVyU2V0IG1fcmVxdWVzdHNBd2FpdGluZ0NhY2hlZFBvc2l0aW9uOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b25DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b25DbGllbnQuaAppbmRleCBlN2UwZTc2ZDQwZi4uMjk3MDNmYmI3YmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25DbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xpZW50LmgK
QEAgLTMwLDcgKzMwLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR2VvbG9jYXRp
b247Ci1jbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOworY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlv
bkRhdGE7CiBjbGFzcyBQYWdlOwogCiBjbGFzcyBHZW9sb2NhdGlvbkNsaWVudCB7CkBAIC00NCw3
ICs0NCw3IEBAIHB1YmxpYzoKICAgICAvLyBXZSBzaG91bGQgdXBkYXRlIFdlYktpdCB0byByZWZs
ZWN0IHRoaXMgaWYgYW5kIHdoZW4gdGhlIFYyIHNwZWNpZmljYXRpb24KICAgICAvLyBpcyBwdWJs
aXNoZWQuCiAgICAgdmlydHVhbCB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKSA9IDA7
Ci0gICAgdmlydHVhbCBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uPiBsYXN0UG9zaXRpb24o
KSA9IDA7CisgICAgdmlydHVhbCBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gbGFz
dFBvc2l0aW9uKCkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKEdl
b2xvY2F0aW9uJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxQZXJtaXNzaW9uUmVxdWVz
dChHZW9sb2NhdGlvbiYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAppbmRleCBjZDgwNzBi
MjA3ZC4uYzZhMjgyZmNlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKQEAgLTMwLDcgKzMw
LDcgQEAKIAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiR2VvbG9j
YXRpb25FcnJvci5oIgotI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKKyNpbmNsdWRl
ICJHZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTk5LDcgKzk5LDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmNhbmNlbFBlcm1pc3Np
b25SZXF1ZXN0KEdlb2xvY2F0aW9uJiBnZW9sb2NhdGlvbikKICAgICBtX2NsaWVudC5jYW5jZWxQ
ZXJtaXNzaW9uUmVxdWVzdChnZW9sb2NhdGlvbik7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb25Db250
cm9sbGVyOjpwb3NpdGlvbkNoYW5nZWQoY29uc3QgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlv
bj4mIHBvc2l0aW9uKQordm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OnBvc2l0aW9uQ2hhbmdl
ZChjb25zdCBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4mIHBvc2l0aW9uKQogewog
ICAgIG1fbGFzdFBvc2l0aW9uID0gcG9zaXRpb247CiAgICAgVmVjdG9yPFJlZjxHZW9sb2NhdGlv
bj4+IG9ic2VydmVyc1ZlY3RvcjsKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIEdlb2xvY2F0aW9u
Q29udHJvbGxlcjo6ZXJyb3JPY2N1cnJlZChHZW9sb2NhdGlvbkVycm9yJiBlcnJvcikKICAgICAg
ICAgb2JzZXJ2ZXItPnNldEVycm9yKGVycm9yKTsKIH0KIAotT3B0aW9uYWw8R2VvbG9jYXRpb25Q
b3NpdGlvbj4gR2VvbG9jYXRpb25Db250cm9sbGVyOjpsYXN0UG9zaXRpb24oKQorT3B0aW9uYWw8
R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6bGFzdFBvc2l0
aW9uKCkKIHsKICAgICBpZiAobV9sYXN0UG9zaXRpb24pCiAgICAgICAgIHJldHVybiBtX2xhc3RQ
b3NpdGlvbi52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmgKaW5kZXggMGM3MDQ5YmExMDEuLjU0
OTM0ZDc5YTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBHZW9sb2NhdGlvbkNsaWVudDsKIGNsYXNzIEdlb2xvY2F0
aW9uRXJyb3I7Ci1jbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOworY2xhc3MgR2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGE7CiAKIGNsYXNzIEdlb2xvY2F0aW9uQ29udHJvbGxlciA6IHB1YmxpYyBTdXBw
bGVtZW50PFBhZ2U+LCBwcml2YXRlIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlciB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC01MywxMCArNTMsMTAgQEAgcHVibGljOgogICAg
IHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oR2VvbG9jYXRpb24mKTsKICAgICB2b2lkIGNhbmNlbFBl
cm1pc3Npb25SZXF1ZXN0KEdlb2xvY2F0aW9uJik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHBvc2l0aW9uQ2hhbmdlZChjb25zdCBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uPiYpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zaXRpb25DaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPEdl
b2xvY2F0aW9uUG9zaXRpb25EYXRhPiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXJyb3JP
Y2N1cnJlZChHZW9sb2NhdGlvbkVycm9yJik7CiAKLSAgICBPcHRpb25hbDxHZW9sb2NhdGlvblBv
c2l0aW9uPiBsYXN0UG9zaXRpb24oKTsKKyAgICBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9u
RGF0YT4gbGFzdFBvc2l0aW9uKCk7CiAKICAgICBHZW9sb2NhdGlvbkNsaWVudCYgY2xpZW50KCkg
eyByZXR1cm4gbV9jbGllbnQ7IH0KIApAQCAtNjksNyArNjksNyBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBhY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKE9wdGlvblNldDxBY3Rpdml0eVN0YXRlOjpGbGFn
PiBvbGRBY3Rpdml0eVN0YXRlLCBPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4gbmV3QWN0
aXZpdHlTdGF0ZSkgb3ZlcnJpZGU7CiAKLSAgICBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9u
PiBtX2xhc3RQb3NpdGlvbjsKKyAgICBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4g
bV9sYXN0UG9zaXRpb247CiAKICAgICB0eXBlZGVmIEhhc2hTZXQ8UmVmPEdlb2xvY2F0aW9uPj4g
T2JzZXJ2ZXJzU2V0OwogICAgIC8vIEFsbCBvYnNlcnZlcnM7IGJvdGggdGhvc2UgcmVxdWVzdGlu
ZyBoaWdoIGFjY3VyYWN5IGFuZCB0aG9zZSBub3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKc2ltaWxhcml0eSBp
bmRleCA5MiUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9D
b29yZGluYXRlcy5jcHAKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKaW5kZXggOWNlYmRmYzBmNjUuLmUyZWIwZGNh
MDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3Jk
aW5hdGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uQ29vcmRpbmF0ZXMuY3BwCkBAIC0yNCwxMSArMjQsMTEgQEAKICAqLwogCiAjaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ29vcmRpbmF0ZXMuaCIKKyNpbmNsdWRlICJHZW9sb2Nh
dGlvbkNvb3JkaW5hdGVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ29vcmRpbmF0ZXM6
OkNvb3JkaW5hdGVzKEdlb2xvY2F0aW9uUG9zaXRpb24mJiBwb3NpdGlvbikKK0dlb2xvY2F0aW9u
Q29vcmRpbmF0ZXM6Okdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMoR2VvbG9jYXRpb25Qb3NpdGlvbkRh
dGEmJiBwb3NpdGlvbikKICAgICA6IG1fcG9zaXRpb24oV1RGTW92ZShwb3NpdGlvbikpCiB7CiAg
ICAgQVNTRVJUKG1fcG9zaXRpb24uaXNWYWxpZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5oCnNpbWlsYXJpdHkgaW5k
ZXggODAlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29v
cmRpbmF0ZXMuaApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9H
ZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgKaW5kZXggNmQ1MTgyODJhZWMuLjg3NTFjYWM0NzQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNv
b3JkaW5hdGVzLmgKQEAgLTI1LDIzICsyNSwyMyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1
ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9u
RGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIENvb3JkaW5hdGVzIDogcHVibGljIFJlZkNvdW50ZWQ8Q29vcmRpbmF0ZXM+IHsKK2NsYXNz
IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMgOiBwdWJsaWMgUmVmQ291bnRlZDxHZW9sb2NhdGlvbkNv
b3JkaW5hdGVzPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxDb29yZGluYXRlcz4gY3JlYXRl
KEdlb2xvY2F0aW9uUG9zaXRpb24mJiBwb3NpdGlvbikKKyAgICBzdGF0aWMgUmVmPEdlb2xvY2F0
aW9uQ29vcmRpbmF0ZXM+IGNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmIHBvc2l0aW9u
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29vcmRpbmF0ZXMoV1RGTW92
ZShwb3NpdGlvbikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR2VvbG9jYXRpb25D
b29yZGluYXRlcyhXVEZNb3ZlKHBvc2l0aW9uKSkpOwogICAgIH0KIAotICAgIFJlZjxDb29yZGlu
YXRlcz4gaXNvbGF0ZWRDb3B5KCkgY29uc3QKKyAgICBSZWY8R2VvbG9jYXRpb25Db29yZGluYXRl
cz4gaXNvbGF0ZWRDb3B5KCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBDb29yZGluYXRl
czo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb24obV9wb3NpdGlvbikpOworICAgICAgICByZXR1
cm4gR2VvbG9jYXRpb25Db29yZGluYXRlczo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb25EYXRh
KG1fcG9zaXRpb24pKTsKICAgICB9CiAKICAgICBkb3VibGUgbGF0aXR1ZGUoKSBjb25zdCB7IHJl
dHVybiBtX3Bvc2l0aW9uLmxhdGl0dWRlOyB9CkBAIC01NCw5ICs1NCw5IEBAIHB1YmxpYzoKICAg
ICBPcHRpb25hbDxkb3VibGU+IGZsb29yTGV2ZWwoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9u
LmZsb29yTGV2ZWw7IH0KICAgICAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgQ29vcmRpbmF0ZXMo
R2VvbG9jYXRpb25Qb3NpdGlvbiYmKTsKKyAgICBleHBsaWNpdCBHZW9sb2NhdGlvbkNvb3JkaW5h
dGVzKEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYpOwogCi0gICAgR2VvbG9jYXRpb25Qb3NpdGlv
biBtX3Bvc2l0aW9uOworICAgIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIG1fcG9zaXRpb247CiB9
OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRsCnNpbWlsYXJpdHkg
aW5kZXggOTMlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
Q29vcmRpbmF0ZXMuaWRsCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRsCmluZGV4IDJmNWNlZmIwZmMwLi5mZjM5NTY0
YzQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29y
ZGluYXRlcy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9s
b2NhdGlvbkNvb3JkaW5hdGVzLmlkbApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA5LTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwxMCArMjQsOSBAQAogICovCiAKIFsKLSAgICBOb0lu
dGVyZmFjZU9iamVjdCwKICAgICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwKICAgICBJbXBsZW1l
bnRhdGlvbkxhY2tzVlRhYmxlCi1dIGludGVyZmFjZSBDb29yZGluYXRlcyB7CitdIGludGVyZmFj
ZSBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0
cmljdGVkIGRvdWJsZSBsYXRpdHVkZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmlj
dGVkIGRvdWJsZSBsb25naXR1ZGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3Rl
ZCBkb3VibGU/IGFsdGl0dWRlOwpAQCAtMzUsNSArMzQsNyBAQAogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlPyBhbHRpdHVkZUFjY3VyYWN5OwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlPyBoZWFkaW5nOwogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlPyBzcGVlZDsKKyAgICAKKyAgICAvLyBOb24gc3Rh
bmRhcmQuCiAgICAgW0VuYWJsZWRCeVNldHRpbmc9R2VvbG9jYXRpb25GbG9vckxldmVsXSByZWFk
b25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gZmxvb3JMZXZlbDsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9z
aXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Q
b3NpdGlvbi5oCmluZGV4IGQ2OWRiNTQzZjhlLi5iOTEwMDA1MjhmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9u
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMTAsMTA4ICsxMCw1MiBAQAogICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
ICAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8Y21h
dGg+Ci0jaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZi5oPgorI2lu
Y2x1ZGUgIkRPTVRpbWVTdGFtcC5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMu
aCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLU9CSkNfQ0xBU1MgQ0xMb2NhdGlvbjsKLSNlbmRpZgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEdlb2xvY2F0aW9uUG9z
aXRpb24geworY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPEdl
b2xvY2F0aW9uUG9zaXRpb24+IHsKIHB1YmxpYzoKLSAgICBHZW9sb2NhdGlvblBvc2l0aW9uKCkg
PSBkZWZhdWx0OwotCi0gICAgR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgdGltZXN0YW1wLCBk
b3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKLSAgICAg
ICAgOiB0aW1lc3RhbXAodGltZXN0YW1wKQotICAgICAgICAsIGxhdGl0dWRlKGxhdGl0dWRlKQot
ICAgICAgICAsIGxvbmdpdHVkZShsb25naXR1ZGUpCi0gICAgICAgICwgYWNjdXJhY3koYWNjdXJh
Y3kpCisgICAgc3RhdGljIFJlZjxHZW9sb2NhdGlvblBvc2l0aW9uPiBjcmVhdGUoUmVmPEdlb2xv
Y2F0aW9uQ29vcmRpbmF0ZXM+JiYgY29vcmRpbmF0ZXMsIERPTVRpbWVTdGFtcCB0aW1lc3RhbXAp
CiAgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHZW9sb2NhdGlvblBvc2l0aW9u
KFdURk1vdmUoY29vcmRpbmF0ZXMpLCB0aW1lc3RhbXApKTsKICAgICB9CiAKLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEdlb2xvY2F0aW9uUG9z
aXRpb24oQ0xMb2NhdGlvbiopOwotI2VuZGlmCi0KLSAgICBkb3VibGUgdGltZXN0YW1wIHsgc3Rk
OjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OwotCi0gICAgZG91YmxlIGxh
dGl0dWRlIHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OwotICAg
IGRvdWJsZSBsb25naXR1ZGUgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05h
TigpIH07Ci0gICAgZG91YmxlIGFjY3VyYWN5IHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKSB9OwotCi0gICAgT3B0aW9uYWw8ZG91YmxlPiBhbHRpdHVkZTsKLSAgICBP
cHRpb25hbDxkb3VibGU+IGFsdGl0dWRlQWNjdXJhY3k7Ci0gICAgT3B0aW9uYWw8ZG91YmxlPiBo
ZWFkaW5nOwotICAgIE9wdGlvbmFsPGRvdWJsZT4gc3BlZWQ7Ci0gICAgT3B0aW9uYWw8ZG91Ymxl
PiBmbG9vckxldmVsOworICAgIFJlZjxHZW9sb2NhdGlvblBvc2l0aW9uPiBpc29sYXRlZENvcHko
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShtX2Nvb3JkaW5hdGVzLT5pc29s
YXRlZENvcHkoKSwgbV90aW1lc3RhbXApOworICAgIH0KIAotICAgIGJvb2wgaXNWYWxpZCgpIGNv
bnN0OworICAgIERPTVRpbWVTdGFtcCB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVz
dGFtcDsgfQorICAgIGNvbnN0IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMmIGNvb3JkcygpIGNvbnN0
IHsgcmV0dXJuIG1fY29vcmRpbmF0ZXMuZ2V0KCk7IH0KKyAgICAKK3ByaXZhdGU6CisgICAgR2Vv
bG9jYXRpb25Qb3NpdGlvbihSZWY8R2VvbG9jYXRpb25Db29yZGluYXRlcz4mJiBjb29yZGluYXRl
cywgRE9NVGltZVN0YW1wIHRpbWVzdGFtcCkKKyAgICAgICAgOiBtX2Nvb3JkaW5hdGVzKFdURk1v
dmUoY29vcmRpbmF0ZXMpKQorICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKKyAgICB7
CisgICAgfQogCi0gICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OwotICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBib29sIGRlY29k
ZShEZWNvZGVyJiwgR2VvbG9jYXRpb25Qb3NpdGlvbiYpOworICAgIFJlZjxHZW9sb2NhdGlvbkNv
b3JkaW5hdGVzPiBtX2Nvb3JkaW5hdGVzOworICAgIERPTVRpbWVTdGFtcCBtX3RpbWVzdGFtcDsK
IH07Ci0KLXRlbXBsYXRlPGNsYXNzIEVuY29kZXI+Ci12b2lkIEdlb2xvY2F0aW9uUG9zaXRpb246
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAgIGVuY29kZXIgPDwgdGltZXN0
YW1wOwotICAgIGVuY29kZXIgPDwgbGF0aXR1ZGU7Ci0gICAgZW5jb2RlciA8PCBsb25naXR1ZGU7
Ci0gICAgZW5jb2RlciA8PCBhY2N1cmFjeTsKLSAgICBlbmNvZGVyIDw8IGFsdGl0dWRlOwotICAg
IGVuY29kZXIgPDwgYWx0aXR1ZGVBY2N1cmFjeTsKLSAgICBlbmNvZGVyIDw8IGhlYWRpbmc7Ci0g
ICAgZW5jb2RlciA8PCBzcGVlZDsKLSAgICBlbmNvZGVyIDw8IGZsb29yTGV2ZWw7Ci19Ci0KLXRl
bXBsYXRlPGNsYXNzIERlY29kZXI+Ci1ib29sIEdlb2xvY2F0aW9uUG9zaXRpb246OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBHZW9sb2NhdGlvblBvc2l0aW9uJiBwb3NpdGlvbikKLXsKLSAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLnRpbWVzdGFtcCkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmxhdGl0dWRlKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24ubG9uZ2l0
dWRlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9z
aXRpb24uYWNjdXJhY3kpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwb3NpdGlvbi5hbHRpdHVkZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmFsdGl0dWRlQWNjdXJhY3kpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5oZWFkaW5nKSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24u
c3BlZWQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
b3NpdGlvbi5mbG9vckxldmVsKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KLWlubGluZSBib29sIEdlb2xvY2F0aW9uUG9zaXRpb246OmlzVmFsaWQoKSBj
b25zdAotewotICAgIHJldHVybiAhc3RkOjppc25hbih0aW1lc3RhbXApICYmICFzdGQ6OmlzbmFu
KGxhdGl0dWRlKSAmJiAhc3RkOjppc25hbihsb25naXR1ZGUpICYmICFzdGQ6OmlzbmFuKGFjY3Vy
YWN5KTsKLX0KLQorICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaWRsCnNpbWls
YXJpdHkgaW5kZXggOTAlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvcG9zaXRpb24uaWRsCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaWRsCmluZGV4IGJmOGNiMDliMmZiLi42MzJm
OGQ5ZmE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9H
ZW9wb3NpdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9H
ZW9sb2NhdGlvblBvc2l0aW9uLmlkbApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwxMCArMjQsOSBAQAogICovCiAKIFsKLSAgICBOb0lu
dGVyZmFjZU9iamVjdCwKICAgICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwKICAgICBJbXBsZW1l
bnRhdGlvbkxhY2tzVlRhYmxlCi1dIGludGVyZmFjZSBHZW9wb3NpdGlvbiB7Ci0gICAgcmVhZG9u
bHkgYXR0cmlidXRlIENvb3JkaW5hdGVzIGNvb3JkczsKK10gaW50ZXJmYWNlIEdlb2xvY2F0aW9u
UG9zaXRpb24geworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBHZW9sb2NhdGlvbkNvb3JkaW5hdGVz
IGNvb3JkczsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NVGltZVN0YW1wIHRpbWVzdGFtcDsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmRjMmI0ZTM0NWMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oCkBAIC0wLDAgKzEs
MTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPGNtYXRo
PgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK09CSkNf
Q0xBU1MgQ0xMb2NhdGlvbjsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIHsKK3B1YmxpYzoKKyAgICBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YSgpID0gZGVmYXVsdDsKKworICAgIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhKGRvdWJs
ZSB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFj
Y3VyYWN5KQorICAgICAgICA6IHRpbWVzdGFtcCh0aW1lc3RhbXApCisgICAgICAgICwgbGF0aXR1
ZGUobGF0aXR1ZGUpCisgICAgICAgICwgbG9uZ2l0dWRlKGxvbmdpdHVkZSkKKyAgICAgICAgLCBh
Y2N1cmFjeShhY2N1cmFjeSkKKyAgICB7CisgICAgfQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YShD
TExvY2F0aW9uKik7CisjZW5kaWYKKworICAgIGRvdWJsZSB0aW1lc3RhbXAgeyBzdGQ6Om51bWVy
aWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07CisKKyAgICBkb3VibGUgbGF0aXR1ZGUg
eyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07CisgICAgZG91Ymxl
IGxvbmdpdHVkZSB7IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsK
KyAgICBkb3VibGUgYWNjdXJhY3kgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0
X05hTigpIH07CisKKyAgICBPcHRpb25hbDxkb3VibGU+IGFsdGl0dWRlOworICAgIE9wdGlvbmFs
PGRvdWJsZT4gYWx0aXR1ZGVBY2N1cmFjeTsKKyAgICBPcHRpb25hbDxkb3VibGU+IGhlYWRpbmc7
CisgICAgT3B0aW9uYWw8ZG91YmxlPiBzcGVlZDsKKyAgICBPcHRpb25hbDxkb3VibGU+IGZsb29y
TGV2ZWw7CisKKyAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKKworICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIEdlb2xvY2F0aW9uUG9zaXRp
b25EYXRhJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBHZW9sb2NhdGlv
blBvc2l0aW9uRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5j
b2RlciA8PCB0aW1lc3RhbXA7CisgICAgZW5jb2RlciA8PCBsYXRpdHVkZTsKKyAgICBlbmNvZGVy
IDw8IGxvbmdpdHVkZTsKKyAgICBlbmNvZGVyIDw8IGFjY3VyYWN5OworICAgIGVuY29kZXIgPDwg
YWx0aXR1ZGU7CisgICAgZW5jb2RlciA8PCBhbHRpdHVkZUFjY3VyYWN5OworICAgIGVuY29kZXIg
PDwgaGVhZGluZzsKKyAgICBlbmNvZGVyIDw8IHNwZWVkOworICAgIGVuY29kZXIgPDwgZmxvb3JM
ZXZlbDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YSYgcG9zaXRpb24pCit7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi50aW1lc3Rh
bXApKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3Np
dGlvbi5sYXRpdHVkZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBvc2l0aW9uLmxvbmdpdHVkZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmFjY3VyYWN5KSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24uYWx0aXR1ZGUpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5hbHRpdHVk
ZUFjY3VyYWN5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocG9zaXRpb24uaGVhZGluZykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBvc2l0aW9uLnNwZWVkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24uZmxvb3JMZXZlbCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCitpbmxpbmUgYm9vbCBHZW9sb2NhdGlv
blBvc2l0aW9uRGF0YTo6aXNWYWxpZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuICFzdGQ6OmlzbmFu
KHRpbWVzdGFtcCkgJiYgIXN0ZDo6aXNuYW4obGF0aXR1ZGUpICYmICFzdGQ6OmlzbmFuKGxvbmdp
dHVkZSkgJiYgIXN0ZDo6aXNuYW4oYWNjdXJhY3kpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0
aW9uRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b25Qb3NpdGlvbkVycm9yLmgKc2ltaWxhcml0eSBpbmRleCA4NyUKcmVuYW1lIGZyb20gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmgKcmVuYW1lIHRvIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9y
LmgKaW5kZXggMjY0MjJlZjliNmQuLjBhNDRlMWUyN2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oCkBAIC0z
MCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKLWNsYXNzIFBvc2l0aW9u
RXJyb3IgOiBwdWJsaWMgUmVmQ291bnRlZDxQb3NpdGlvbkVycm9yPiB7CitjbGFzcyBHZW9sb2Nh
dGlvblBvc2l0aW9uRXJyb3IgOiBwdWJsaWMgUmVmQ291bnRlZDxHZW9sb2NhdGlvblBvc2l0aW9u
RXJyb3I+IHsKIHB1YmxpYzoKICAgICBlbnVtIEVycm9yQ29kZSB7CiAgICAgICAgIFBFUk1JU1NJ
T05fREVOSUVEID0gMSwKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgICAgICBUSU1FT1VU
ID0gMwogICAgIH07CiAgICAgCi0gICAgc3RhdGljIFJlZjxQb3NpdGlvbkVycm9yPiBjcmVhdGUo
RXJyb3JDb2RlIGNvZGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBQb3NpdGlvbkVycm9yKGNvZGUsIG1lc3NhZ2UpKTsgfQorICAgIHN0YXRpYyBSZWY8R2Vv
bG9jYXRpb25Qb3NpdGlvbkVycm9yPiBjcmVhdGUoRXJyb3JDb2RlIGNvZGUsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBHZW9sb2NhdGlvblBvc2l0aW9uRXJy
b3IoY29kZSwgbWVzc2FnZSkpOyB9CiAKICAgICBFcnJvckNvZGUgY29kZSgpIGNvbnN0IHsgcmV0
dXJuIG1fY29kZTsgfQogICAgIGNvbnN0IFN0cmluZyYgbWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJu
IG1fbWVzc2FnZTsgfQpAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0ZhdGFs
KCkgY29uc3QgeyByZXR1cm4gbV9pc0ZhdGFsOyB9CiAgICAgCiBwcml2YXRlOgotICAgIFBvc2l0
aW9uRXJyb3IoRXJyb3JDb2RlIGNvZGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgCisgICAgR2Vv
bG9jYXRpb25Qb3NpdGlvbkVycm9yKEVycm9yQ29kZSBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCiAgICAgICAgIDogbV9jb2RlKGNvZGUpCiAgICAgICAgICwgbV9tZXNzYWdlKG1lc3NhZ2Up
CiAgICAgICAgICwgbV9pc0ZhdGFsKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmlkbApzaW1pbGFyaXR5
IGluZGV4IDkzJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L1Bvc2l0aW9uRXJyb3IuaWRsCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwKaW5kZXggNWMxZjNhMjcyYTYuLjM0
YTVjMDc0ZTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L1Bvc2l0aW9uRXJyb3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmlkbApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNCwxNSArMjQsMTMgQEAKICAqLwogCiBb
Ci0gICAgTm9JbnRlcmZhY2VPYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJT04sCiAg
ICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRlcmZhY2UgUG9zaXRpb25FcnJvciB7
Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNvZGU7Ci0gICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXNzYWdlOwotCitdIGludGVyZmFjZSBHZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3IgewogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFBFUk1JU1NJT05fREVO
SUVEID0gMTsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBQT1NJVElPTl9VTkFWQUlMQUJMRSA9
IDI7CiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVElNRU9VVCA9IDM7CisgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNvZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBtZXNzYWdlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9wb3NpdGlvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTMz
MGRlNThlMi4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9wb3NpdGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQot
I2luY2x1ZGUgIkNvb3JkaW5hdGVzLmgiCi0jaW5jbHVkZSAiRE9NVGltZVN0YW1wLmgiCi0jaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBHZW9wb3NpdGlvbiA6IHB1YmxpYyBSZWZD
b3VudGVkPEdlb3Bvc2l0aW9uPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxHZW9wb3NpdGlv
bj4gY3JlYXRlKFJlZjxDb29yZGluYXRlcz4mJiBjb29yZGluYXRlcywgRE9NVGltZVN0YW1wIHRp
bWVzdGFtcCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdlb3Bvc2l0aW9u
KFdURk1vdmUoY29vcmRpbmF0ZXMpLCB0aW1lc3RhbXApKTsKLSAgICB9Ci0KLSAgICBSZWY8R2Vv
cG9zaXRpb24+IGlzb2xhdGVkQ29weSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gY3Jl
YXRlKG1fY29vcmRpbmF0ZXMtPmlzb2xhdGVkQ29weSgpLCBtX3RpbWVzdGFtcCk7Ci0gICAgfQot
Ci0gICAgRE9NVGltZVN0YW1wIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1w
OyB9Ci0gICAgY29uc3QgQ29vcmRpbmF0ZXMmIGNvb3JkcygpIGNvbnN0IHsgcmV0dXJuIG1fY29v
cmRpbmF0ZXMuZ2V0KCk7IH0KLSAgICAKLXByaXZhdGU6Ci0gICAgR2VvcG9zaXRpb24oUmVmPENv
b3JkaW5hdGVzPiYmIGNvb3JkaW5hdGVzLCBET01UaW1lU3RhbXAgdGltZXN0YW1wKQotICAgICAg
ICA6IG1fY29vcmRpbmF0ZXMoV1RGTW92ZShjb29yZGluYXRlcykpCi0gICAgICAgICwgbV90aW1l
c3RhbXAodGltZXN0YW1wKQotICAgIHsKLSAgICB9Ci0KLSAgICBSZWY8Q29vcmRpbmF0ZXM+IG1f
Y29vcmRpbmF0ZXM7Ci0gICAgRE9NVGltZVN0YW1wIG1fdGltZXN0YW1wOwotfTsKLSAgICAKLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmgKaW5kZXggNGI1NzM4MjQwODkuLmEyNzk1Mzk5
MWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0
aW9uQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bv
c2l0aW9uQ2FsbGJhY2suaApAQCAtMzEsMTMgKzMxLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgR2VvcG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOwogCiBj
bGFzcyBQb3NpdGlvbkNhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8UG9zaXRpb25DYWxsYmFj
az4sIHB1YmxpYyBBY3RpdmVET01DYWxsYmFjayB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQWN0aXZl
RE9NQ2FsbGJhY2s6OkFjdGl2ZURPTUNhbGxiYWNrOwogCi0gICAgdmlydHVhbCBDYWxsYmFja1Jl
c3VsdDx2b2lkPiBoYW5kbGVFdmVudChHZW9wb3NpdGlvbiopID0gMDsKKyAgICB2aXJ0dWFsIENh
bGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KEdlb2xvY2F0aW9uUG9zaXRpb24qKSA9IDA7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbAppbmRleCBhZDY2MWY1
ZWZjMi4uZDVjZTg1NjM3MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbApAQCAtMjQsNCArMjQsNCBAQAogCiBb
CiAgICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJT04sCi1dIGNhbGxiYWNrIFBvc2l0aW9uQ2FsbGJh
Y2sgPSB2b2lkIChHZW9wb3NpdGlvbj8gcG9zaXRpb24pOyAvLyBGSVhNRTogVGhpcyBzaG91bGQg
bm90IGJlIG51bGxhYmxlLgorXSBjYWxsYmFjayBQb3NpdGlvbkNhbGxiYWNrID0gdm9pZCAoR2Vv
bG9jYXRpb25Qb3NpdGlvbj8gcG9zaXRpb24pOyAvLyBGSVhNRTogVGhpcyBzaG91bGQgbm90IGJl
IG51bGxhYmxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmgKaW5kZXggNDgxNmIxZGIxZDMuLmE3NWUwNzg4
ZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0
aW9uRXJyb3JDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmgKQEAgLTMxLDEzICszMSwxMyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIFBvc2l0aW9uRXJyb3I7CitjbGFzcyBHZW9sb2NhdGlvblBv
c2l0aW9uRXJyb3I7CiAKIGNsYXNzIFBvc2l0aW9uRXJyb3JDYWxsYmFjayA6IHB1YmxpYyBSZWZD
b3VudGVkPFBvc2l0aW9uRXJyb3JDYWxsYmFjaz4sIHB1YmxpYyBBY3RpdmVET01DYWxsYmFjayB7
CiBwdWJsaWM6CiAgICAgdXNpbmcgQWN0aXZlRE9NQ2FsbGJhY2s6OkFjdGl2ZURPTUNhbGxiYWNr
OwogCi0gICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVFdmVudChQb3NpdGlv
bkVycm9yJikgPSAwOworICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZl
bnQoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yJikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Q
b3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsCmluZGV4IDU3YjQ5M2NjYmY1Li5mYTA5ODBl
MzYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3Np
dGlvbkVycm9yQ2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbApAQCAtMjQsNCArMjQsNCBAQAogCiBbCiAg
ICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJT04sCi1dIGNhbGxiYWNrIFBvc2l0aW9uRXJyb3JDYWxs
YmFjayA9IHZvaWQgKFBvc2l0aW9uRXJyb3IgZXJyb3IpOworXSBjYWxsYmFjayBQb3NpdGlvbkVy
cm9yQ2FsbGJhY2sgPSB2b2lkIChHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IgZXJyb3IpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2VvbG9jYXRp
b25Qb3NpdGlvbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vaW9z
L0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhSU9TLm1tCnNpbWlsYXJpdHkgaW5kZXggOTYlCnJlbmFt
ZSBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vaW9zL0dlb2xvY2F0aW9u
UG9zaXRpb25JT1MubW0KcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhSU9TLm1tCmluZGV4IDUxMzZhNTFlMmI2Li45
OGQ5YTI0MjFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9pb3MvR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5tbQpAQCAtMzIs
NyArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdlb2xvY2F0aW9uUG9zaXRpb246
Okdlb2xvY2F0aW9uUG9zaXRpb24oQ0xMb2NhdGlvbiogbG9jYXRpb24pCitHZW9sb2NhdGlvblBv
c2l0aW9uRGF0YTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoQ0xMb2NhdGlvbiogbG9jYXRpb24p
CiAgICAgOiB0aW1lc3RhbXAobG9jYXRpb24udGltZXN0YW1wLnRpbWVJbnRlcnZhbFNpbmNlMTk3
MCkKICAgICAsIGxhdGl0dWRlKGxvY2F0aW9uLmNvb3JkaW5hdGUubGF0aXR1ZGUpCiAgICAgLCBs
b25naXR1ZGUobG9jYXRpb24uY29vcmRpbmF0ZS5sb25naXR1ZGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4
IDBhMzhkZDQ2YzdkLi5mZmQ1ZWIwNzI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTY3LDEwICs2Nywx
MCBAQCBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKIE1vZHVsZXMvZmV0Y2gvRmV0Y2hS
ZXNwb25zZS5jcHAKIE1vZHVsZXMvZmV0Y2gvV29ya2VyR2xvYmFsU2NvcGVGZXRjaC5jcHAKIAot
TW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvTm90aWZpZXIuY3BwCiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAogTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwCitNb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwCiBNb2R1bGVzL2dlb2xvY2F0aW9uL05h
dmlnYXRvckdlb2xvY2F0aW9uLmNwcAogCiBNb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRl
eGVkRGF0YWJhc2UuY3BwCkBAIC0yNjcyLDcgKzI2NzIsNiBAQCBKU0NvbXBvc2l0ZU9wZXJhdGlv
bi5jcHAKIEpTQ29tcG9zaXRlT3BlcmF0aW9uT3JBdXRvLmNwcAogSlNDb21wdXRlZEVmZmVjdFRp
bWluZy5jcHAKIEpTQ29udm9sdmVyTm9kZS5jcHAKLUpTQ29vcmRpbmF0ZXMuY3BwCiBKU0NvdW50
UXVldWluZ1N0cmF0ZWd5LmNwcAogSlNDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmNwcAogSlND
cmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuY3BwCkBAIC0yODMxLDcgKzI4MzAsOSBAQCBKU0dQVVZl
cnRleEJ1ZmZlckRlc2NyaXB0b3IuY3BwCiBKU0dQVVZlcnRleElucHV0RGVzY3JpcHRvci5jcHAK
IEpTR2Fpbk5vZGUuY3BwCiBKU0dlb2xvY2F0aW9uLmNwcAotSlNHZW9wb3NpdGlvbi5jcHAKK0pT
R2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKK0pTR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKK0pT
R2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmNwcAogSlNHbG9iYWxDcnlwdG8uY3BwCiBKU0dsb2Jh
bEV2ZW50SGFuZGxlcnMuY3BwCiBKU0dsb2JhbFBlcmZvcm1hbmNlLmNwcApAQCAtMzA3Miw3ICsz
MDczLDYgQEAgSlNQbGF5YmFja0RpcmVjdGlvbi5jcHAKIEpTUG9pbnRlckV2ZW50LmNwcAogSlNQ
b3BTdGF0ZUV2ZW50LmNwcAogSlNQb3NpdGlvbkNhbGxiYWNrLmNwcAotSlNQb3NpdGlvbkVycm9y
LmNwcAogSlNQb3NpdGlvbkVycm9yQ2FsbGJhY2suY3BwCiBKU1Bvc2l0aW9uT3B0aW9ucy5jcHAK
IEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM4NTJkM2QzOTM3Li5iZTQ4MzIzOTY3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMjM5Miw3ICsyMzkyLDcgQEAKIAkJODM3MkRCMzExQTY3ODBBODAwQzY5N0M1IC8q
IERpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODM3MkRCMzAxQTY3ODBBODAwQzY5N0M1IC8qIERpYWdub3N0
aWNMb2dnaW5nUmVzdWx0VHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTgzNzY1Rjk1MURBQzUyMkYwMEMwNjUzNyAvKiBNb3VzZUV2ZW50SW5p
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3NjVG
OTQxREFDNTIxODAwQzA2NTM3IC8qIE1vdXNlRXZlbnRJbml0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM3OTM2M0YxRkJCQjBCNDAwQzgwMjND
IC8qIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzc5MzYzRTFGQkJCMEE1MDBDODAyM0MgLyogU2VydmljZVdv
cmtlckNsaWVudERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQk4Mzc5NjRDRjFGOERCNjlEMDAyMThFQTAgLyogR2VvbG9jYXRpb25Qb3NpdGlv
bklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
Nzk2NENFMUY4REI2OUEwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tICovOyB9
OworCQk4Mzc5NjRDRjFGOERCNjlEMDAyMThFQTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGFJ
T1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzc5
NjRDRTFGOERCNjlBMDAyMThFQTAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW0gKi87
IH07CiAJCTgzN0E4MDEzMUUxRTEyNzMwMDAyNkI5RiAvKiBMb2NhbGl6YWJsZS5zdHJpbmdzZGlj
dCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3QTgw
MTExRTFFMTI3MzAwMDI2QjlGIC8qIExvY2FsaXphYmxlLnN0cmluZ3NkaWN0ICovOyB9OwogCQk4
MzdENDYyNzFGQTJBOENFMDA1NEUxRkEgLyogU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0Q0NjI1
MUZBMkE4QzUwMDU0RTFGQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzN0ZCMzQ1MUY5
RUEwNkQwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzdGQjM0MDFGOUVBMDY2MDBEMEZDMzEg
LyogRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oICovOyB9OwpAQCAtMjcyOCwxNSArMjcyOCwxNSBA
QAogCQk5NzM4ODlBMTExNkVBOURDMDBBREYzMTMgLyogRG9jdW1lbnRXcml0ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3Mzg4OTlGMTE2RUE5REMw
MEFERjMxMyAvKiBEb2N1bWVudFdyaXRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTk3M0UzMjU3MTA4ODNCN0MwMDVCQzQ5MyAvKiBSZXNvdXJj
ZUxvYWROb3RpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTczRTMyNTUxMDg4M0I3QzAwNUJDNDkzIC8qIFJlc291cmNlTG9hZE5vdGlmaWVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTczRjQx
OEExNjlCOTVGRjAwMDZCRjYwIC8qIEhUTUxQYXJzZXJPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzNGNDE4ODE2OUI5NUVGMDAwNkJGNjAg
LyogSFRNTFBhcnNlck9wdGlvbnMuaCAqLzsgfTsKLQkJOTc0NkFGMjExNEY0RERFNjAwM0U3QTcx
IC8qIENvb3JkaW5hdGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NzQ2QUYyMTE0RjRE
REU2MDAzRTdBNzEgLyogR2VvbG9jYXRpb25Db29yZGluYXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMTExNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5NzQ2QUYyNDE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZB
RjE0MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NDZBRjI1MTRGNERERTYwMDNFN0E3MSAv
KiBHZW9sb2NhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTc0NkFGMTUxNEY0RERFNjAwM0U3QTcxIC8qIEdlb2xvY2F0aW9uQ2xpZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0
NkFGMjcxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMTcxNEY0RERFNjAw
M0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NDZBRjI4MTRGNERERTYwMDNFN0E3MCAvKiBH
ZW9sb2NhdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NzQ2QUYxODE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25FcnJvci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTk3NDZBRjI5
MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxOTE0RjREREU2MDAzRTdBNzAg
LyogR2VvbG9jYXRpb25Qb3NpdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCTk3NDZBRjJBMTRGNERERTYwMDNFN0E3MCAvKiBHZW9wb3NpdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFG
MUExNEY0RERFNjAwM0U3QTcwIC8qIEdlb3Bvc2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTc0NkFGMjkxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxOTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk5NzQ2QUYyQTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMUEx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzQ2QUYyQzE0RjREREU2MDAzRTdB
NzAgLyogUG9zaXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTc0NkFGMUMxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uQ2FsbGJh
Y2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5
NzQ2QUYyRTE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMUUxNEY0RERFNjAwM0U3QTcw
IC8qIFBvc2l0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk5NzQ2QUYyRTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3Np
dGlvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NzQ2QUYxRTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFG
MzAxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uRXJyb3JDYWxsYmFjay5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMjAxNEY0RERFNjAwM0U3
QTcwIC8qIFBvc2l0aW9uRXJyb3JDYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NDZBRjMyMTRGNERERTYwMDNFN0E3MCAvKiBQb3Np
dGlvbk9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3NDZBRjIyMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbk9wdGlvbnMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzRBODYyMzE0QjdB
REJCMDAzRkRDNzYgLyogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzRBODYyMTE0QjdBREJCMDAzRkRDNzYg
LyogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwMDYzLDcgKzEwMDYzLDcgQEAKIAkJODM3NjVGOTQx
REFDNTIxODAwQzA2NTM3IC8qIE1vdXNlRXZlbnRJbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1vdXNlRXZlbnRJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgzNzkzNjNDMUZCQkIwQTQwMEM4MDIzQyAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNzkzNjNFMUZCQkIw
QTUwMEM4MDIzQyAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk4Mzc5NjRDRTFGOERCNjlBMDAyMThFQTAgLyogR2VvbG9jYXRpb25Q
b3NpdGlvbklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEdl
b2xvY2F0aW9uUG9zaXRpb25JT1MubW07IHBhdGggPSBNb2R1bGVzL2dlb2xvY2F0aW9uL2lvcy9H
ZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJ
CTgzNzk2NENFMUY4REI2OUEwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEdlb2xvY2F0aW9uUG9z
aXRpb25EYXRhSU9TLm1tOyBwYXRoID0gTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGFJT1MubW07IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJODM3
QTgwMTIxRTFFMTI3MzAwMDI2QjlGIC8qIGVuICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC5zdHJpbmdzZGljdDsgbmFtZSA9IGVuOyBw
YXRoID0gZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5nc2RpY3Q7IHNvdXJjZVRyZWUgPSBTT1VS
Q0VfUk9PVDsgfTsKIAkJODM3QjdEMUYxREMzRjU0QzAwRDA1MUZDIC8qIFZhbGlkYXRpb25CdWJi
bGVJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWYWxpZGF0
aW9uQnViYmxlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzdENDYyNTFG
QTJBOEM1MDA1NEUxRkEgLyogU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNzQzLDkgKzEwNzQzLDkgQEAKIAkJ
OTczRTMyNTUxMDg4M0I3QzAwNUJDNDkzIC8qIFJlc291cmNlTG9hZE5vdGlmaWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZE5vdGlmaWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3M0Y0MTg3MTY5Qjk1RUYwMDA2QkY2MCAvKiBIVE1M
UGFyc2VyT3B0aW9ucy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
VE1MUGFyc2VyT3B0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3M0Y0
MTg4MTY5Qjk1RUYwMDA2QkY2MCAvKiBIVE1MUGFyc2VyT3B0aW9ucy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MUGFyc2VyT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29vcmRpbmF0ZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTc0NkFGMTExNEY0RERFNjAwM0U3QTcyIC8qIENvb3JkaW5h
dGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvb3JkaW5hdGVz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTc0NkFGMTIxNEY0RERFNjAwM0U3
QTcwIC8qIENvb3JkaW5hdGVzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDb29yZGluYXRl
cy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3NDZBRjExMTRGNERERTYwMDNF
N0E3MCAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTc0NkFGMTExNEY0RERFNjAwM0U3QTcyIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0
ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VvbG9jYXRpb25D
b29yZGluYXRlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3NDZBRjEyMTRG
NERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTc0NkFGMTMxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdlb2xvY2F0aW9uLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFGMTQxNEY0RERFNjAwM0U3QTcwIC8qIEdl
b2xvY2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NDZBRjE1MTRGNERERTYwMDNFN0E3
MCAvKiBHZW9sb2NhdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2VvbG9jYXRpb24u
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3NTMsMTMgKzEwNzUzLDEzIEBA
CiAJCTk3NDZBRjE2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2VvbG9jYXRpb25Db250cm9s
bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFGMTcxNEY0RERFNjAw
M0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTc0NkFGMTgxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uRXJyb3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25FcnJvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzQ2QUYxOTE0RjREREU2MDAzRTdBNzAgLyogR2Vv
bG9jYXRpb25Qb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9s
b2NhdGlvblBvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk3NDZBRjFB
MTRGNERERTYwMDNFN0E3MCAvKiBHZW9wb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBHZW9wb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5
NzQ2QUYxQjE0RjREREU2MDAzRTdBNzAgLyogR2VvcG9zaXRpb24uaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEdlb3Bvc2l0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTc0NkFGMTkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3NDZBRjFBMTRGNERERTYwMDNFN0E3MCAv
KiBHZW9sb2NhdGlvblBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEdlb2xvY2F0aW9uUG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc0
NkFGMUIxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IEdlb2xvY2F0aW9uUG9zaXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5NzQ2QUYxQzE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25DYWxsYmFj
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3NpdGlvbkNhbGxiYWNrLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NDZBRjFEMTRGNERERTYwMDNFN0E3MCAv
KiBQb3NpdGlvbkNhbGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQb3NpdGlvbkNh
bGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTc0NkFGMUUxNEY0RERF
NjAwM0U3QTcwIC8qIFBvc2l0aW9uRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUG9zaXRpb25FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzQ2
QUYxRjE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gUG9zaXRpb25FcnJvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTk3NDZBRjFFMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3NDZBRjFGMTRGNERERTYwMDNFN0E3
MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk3NDZBRjIwMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9yQ2FsbGJhY2suaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9zaXRpb25FcnJvckNhbGxiYWNrLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NDZBRjIxMTRGNERERTYwMDNFN0E3MCAv
KiBQb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBvc2l0
aW9uRXJyb3JDYWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NDZB
RjIyMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbk9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUG9zaXRpb25PcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yMDkyNSw3ICsyMDkyNSw3IEBACiAJCTgzNzk2NENDMUY4REI2N0QwMDIxOEVB
MCAvKiBpb3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJ
CTgzNzk2NENFMUY4REI2OUEwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tICov
LAorCQkJCTgzNzk2NENFMUY4REI2OUEwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YUlPUy5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTIxODQyLDkgKzIxODQyLDkgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCiAJCQkJODM3OTY0Q0MxRjhEQjY3RDAwMjE4RUEwIC8qIGlvcyAqLywKLQkJCQk5
NzQ2QUYxMTE0RjREREU2MDAzRTdBNzIgLyogQ29vcmRpbmF0ZXMuY3BwICovLAotCQkJCTk3NDZB
RjExMTRGNERERTYwMDNFN0E3MCAvKiBDb29yZGluYXRlcy5oICovLAotCQkJCTk3NDZBRjEyMTRG
NERERTYwMDNFN0E3MCAvKiBDb29yZGluYXRlcy5pZGwgKi8sCisJCQkJOTc0NkFGMTExNEY0RERF
NjAwM0U3QTcyIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwICovLAorCQkJCTk3NDZBRjEx
MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmggKi8sCisJCQkJOTc0
NkFGMTIxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRsICovLAog
CQkJCTk3NDZBRjEzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgKi8sCiAJCQkJ
OTc0NkFGMTQxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmggKi8sCiAJCQkJOTc0NkFG
MTUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmlkbCAqLywKQEAgLTIxODUyLDE4ICsy
MTg1MiwxOCBAQAogCQkJCTk3NDZBRjE2MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNv
bnRyb2xsZXIuY3BwICovLAogCQkJCTk3NDZBRjE3MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2Nh
dGlvbkNvbnRyb2xsZXIuaCAqLywKIAkJCQk5NzQ2QUYxODE0RjREREU2MDAzRTdBNzAgLyogR2Vv
bG9jYXRpb25FcnJvci5oICovLAotCQkJCTk3NDZBRjE5MTRGNERERTYwMDNFN0E3MCAvKiBHZW9s
b2NhdGlvblBvc2l0aW9uLmggKi8sCiAJCQkJNDZDODNFRkIxQTlCQkUyOTAwQTc5QTQxIC8qIEdl
b05vdGlmaWVyLmNwcCAqLywKIAkJCQk0NkM4M0VGQzFBOUJCRTI5MDBBNzlBNDEgLyogR2VvTm90
aWZpZXIuaCAqLywKLQkJCQk5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvcG9zaXRpb24u
aCAqLywKLQkJCQk5NzQ2QUYxQjE0RjREREU2MDAzRTdBNzAgLyogR2VvcG9zaXRpb24uaWRsICov
LAorCQkJCTk3NDZBRjFBMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmgg
Ki8sCisJCQkJOTc0NkFGMUIxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24u
aWRsICovLAorCQkJCTk3NDZBRjE5MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YS5oICovLAogCQkJCTk3MTE0NjAwMTRFRjAwOUEwMDY3NEZEOSAvKiBOYXZpZ2F0b3JH
ZW9sb2NhdGlvbi5jcHAgKi8sCiAJCQkJOTcxMTQ2MDExNEVGMDA5QTAwNjc0RkQ5IC8qIE5hdmln
YXRvckdlb2xvY2F0aW9uLmggKi8sCiAJCQkJOTcxMTQ2MDIxNEVGMDA5QTAwNjc0RkQ5IC8qIE5h
dmlnYXRvckdlb2xvY2F0aW9uLmlkbCAqLywKIAkJCQk5NzQ2QUYxQzE0RjREREU2MDAzRTdBNzAg
LyogUG9zaXRpb25DYWxsYmFjay5oICovLAogCQkJCTk3NDZBRjFEMTRGNERERTYwMDNFN0E3MCAv
KiBQb3NpdGlvbkNhbGxiYWNrLmlkbCAqLywKLQkJCQk5NzQ2QUYxRTE0RjREREU2MDAzRTdBNzAg
LyogUG9zaXRpb25FcnJvci5oICovLAotCQkJCTk3NDZBRjFGMTRGNERERTYwMDNFN0E3MCAvKiBQ
b3NpdGlvbkVycm9yLmlkbCAqLywKKwkJCQk5NzQ2QUYxRTE0RjREREU2MDAzRTdBNzAgLyogR2Vv
bG9jYXRpb25Qb3NpdGlvbkVycm9yLmggKi8sCisJCQkJOTc0NkFGMUYxNEY0RERFNjAwM0U3QTcw
IC8qIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwgKi8sCiAJCQkJOTc0NkFGMjAxNEY0RERF
NjAwM0U3QTcwIC8qIFBvc2l0aW9uRXJyb3JDYWxsYmFjay5oICovLAogCQkJCTk3NDZBRjIxMTRG
NERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsICovLAogCQkJCTk3NDZB
RjIyMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbk9wdGlvbnMuaCAqLywKQEAgLTI4NjY1LDcg
KzI4NjY1LDcgQEAKIAkJCQk3QTU2OTk3MDIwODZDNjE5MDAwRTA0MzMgLyogQ29va2llUmVxdWVz
dEhlYWRlckZpZWxkUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTMzRDAyMTJEMTMxREIzN0Iw
MDQwOTFBOCAvKiBDb29raWVTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTIwQkJBRjFG
MUNFQ0U3MDBFRkVCRjEgLyogQ29va2llU3RvcmFnZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywK
LQkJCQk5NzQ2QUYyMTE0RjREREU2MDAzRTdBNzEgLyogQ29vcmRpbmF0ZXMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTk3NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBHZW9sb2NhdGlvbkNvb3JkaW5h
dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkzRjgwMjAzNTFFOUU0N0JGMDBERUM2MUQgLyogQ29y
ZUF1ZGlvQ2FwdHVyZURldmljZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0Y4MDIwMzcxRTlFNDdD
NTAwREVDNjFEIC8qIENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwN0FGRjQyMjFFRkIxNDQ5MDBCNTQ1QjMgLyogQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZUlPUy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTI5MywxMCArMjkyOTMsMTAgQEAKIAkJCQk5NzQ2
QUYyNTE0RjREREU2MDAzRTdBNzEgLyogR2VvbG9jYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTk3NDZBRjI3MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3NDZBRjI4MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2Nh
dGlvbkVycm9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk5NzQ2QUYyOTE0RjREREU2MDAzRTdBNzAg
LyogR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTc0NkFGMjkxNEY0
RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkI2MjUyRjE4REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQ2QzgzRUZFMUE5QkJFMjkwMEE3OUE0MSAvKiBHZW9Ob3RpZmllci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJOTc0NkFGMkExNEY0RERFNjAwM0U3QTcwIC8qIEdlb3Bvc2l0
aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NzQ2QUYyQTE0RjREREU2MDAzRTdBNzAgLyogR2Vv
bG9jYXRpb25Qb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZCOTUxOTgyMDdENjM0NzAw
QTdEMkREIC8qIEdsb2JhbEZyYW1lSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZC
OTUxOTcyMDdENjM0MDAwQTdEMkREIC8qIEdsb2JhbFdpbmRvd0lkZW50aWZpZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA4NkJCRDBGMTM2MDM5QzIwMDhCMTVEOCAvKiBHbHlwaC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zMTA0OCw3ICszMTA0OCw3IEBACiAJCQkJMzdGNTY3Q0UxNjUzNThGNDAwRERF
OTJCIC8qIFBvcHVwT3BlbmluZ09ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlE
RTA4MjQ1RTU5MDAxRTlBQkMgLyogUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NDZB
RjJDMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywK
LQkJCQk5NzQ2QUYyRTE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTc0NkFGMkUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRp
b25FcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc0NkFGMzAxNEY0RERFNjAwM0U3QTcwIC8q
IFBvc2l0aW9uRXJyb3JDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc5MTlDMjQwQjdE
MTg4NjAwQTU2OTk4IC8qIFBvc2l0aW9uSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3
NDZBRjMyMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbk9wdGlvbnMuaCBpbiBIZWFkZXJzICov
LApAQCAtMzI4MDQsNyArMzI4MDQsNyBAQAogCQkJCTUxNkM2MjIwMTk1MEQ0ODcwMDMzN0U3NSAv
KiBHYW1lcGFkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBOUQ5RTkxOTVCOTMxRjAw
MUIyQjVDIC8qIEdhbWVwYWRNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNUJFMTkx
MUQ1NEY1RkIwMEREN0M2OCAvKiBHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJODM3OTY0Q0YxRjhEQjY5RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0g
aW4gU291cmNlcyAqLywKKwkJCQk4Mzc5NjRDRjFGOERCNjlEMDAyMThFQTAgLyogR2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGFJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk2RTIxQzZDMDExMjYzMzg1
MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU3
MkY1NEUyMjlEQ0QxMDAwQjNFMTUxIC8qIEdyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0MzRTUxMEIxOERGOEYzNTAwQzExMkY3IC8qIEhUTUxDb252ZXJ0ZXIu
bW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcAppbmRleCBiODBjYzFlMGZjYS4uZThlYzFjODRk
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25D
bGllbnRNb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0
aW9uQ2xpZW50TW9jay5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNsaWVu
dE1vY2s6OnNldENvbnRyb2xsZXIoR2VvbG9jYXRpb25Db250cm9sbGVyICpjb250cm9sbGVyKQog
ICAgIG1fY29udHJvbGxlciA9IGNvbnRyb2xsZXI7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb25DbGll
bnRNb2NrOjpzZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uJiYgcG9zaXRpb24pCit2b2lk
IEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6c2V0UG9zaXRpb24oR2VvbG9jYXRpb25Qb3NpdGlvbkRh
dGEmJiBwb3NpdGlvbikKIHsKICAgICBtX2xhc3RQb3NpdGlvbiA9IFdURk1vdmUocG9zaXRpb24p
OwogICAgIGNsZWFyRXJyb3IoKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCB2b2lkIEdlb2xvY2F0aW9u
Q2xpZW50TW9jazo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpCiAgICAgLy8gU2VlIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTQzOAogfQogCi1PcHRpb25hbDxH
ZW9sb2NhdGlvblBvc2l0aW9uPiBHZW9sb2NhdGlvbkNsaWVudE1vY2s6Omxhc3RQb3NpdGlvbigp
CitPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gR2VvbG9jYXRpb25DbGllbnRNb2Nr
OjpsYXN0UG9zaXRpb24oKQogewogICAgIHJldHVybiBtX2xhc3RQb3NpdGlvbjsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2Nr
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5o
CmluZGV4IDI3Y2NkOTQzMTY1Li5lMjJhZmM1MDhmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oCkBAIC0zMiw3ICszMiw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50LmgiCi0jaW5j
bHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRp
b25EYXRhLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZv
aWQgcmVzZXQoKTsKICAgICB2b2lkIHNldENvbnRyb2xsZXIoR2VvbG9jYXRpb25Db250cm9sbGVy
Kik7CiAKLSAgICB2b2lkIHNldFBvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb24mJik7CisgICAg
dm9pZCBzZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKTsKICAgICB2b2lkIHNl
dFBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAg
ICAgdm9pZCBzZXRQZXJtaXNzaW9uKGJvb2wgYWxsb3dlZCk7CiAgICAgaW50IG51bWJlck9mUGVu
ZGluZ1Blcm1pc3Npb25SZXF1ZXN0cygpIGNvbnN0OwpAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzdGFydFVwZGF0aW5nKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wVXBkYXRp
bmcoKSBvdmVycmlkZTsKICAgICB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKSBvdmVy
cmlkZTsKLSAgICBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uPiBsYXN0UG9zaXRpb24oKSBv
dmVycmlkZTsKKyAgICBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gbGFzdFBvc2l0
aW9uKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihHZW9sb2NhdGlvbiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoR2VvbG9jYXRpb24m
KSBvdmVycmlkZTsKIApAQCAtNzYsNyArNzYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJF
cnJvcigpOwogCiAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7Ci0gICAg
T3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247CisgICAgT3B0aW9u
YWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IG1fbGFzdFBvc2l0aW9uOwogICAgIGJvb2wgbV9o
YXNFcnJvcjsKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CiAgICAgVGltZXIgbV9jb250cm9s
bGVyVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHZW9sb2NhdGlv
blBvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRp
b24uY3BwCmluZGV4IDNmMTU1OGI3NTJiLi5lOTlkY2M1YzBhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKQEAgLTMyLDcgKzMyLDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8V2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbj4gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKEdlb2xv
Y2F0aW9uUG9zaXRpb24mJiBnZW9sb2NhdGlvblBvc2l0aW9uKQorUmVmPFdlYkdlb2xvY2F0aW9u
UG9zaXRpb24+IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YSYmIGdlb2xvY2F0aW9uUG9zaXRpb24pCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbihXVEZNb3ZlKGdlb2xvY2F0aW9uUG9zaXRpb24pKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKaW5k
ZXggYzFmY2NhN2NiYjUuLmE5NjhmODRmOWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIFdlYkdl
b2xvY2F0aW9uUG9zaXRpb25faAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSA8
V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNl
IElQQyB7CkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJH
ZW9sb2NhdGlvblBvc2l0aW9uIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6
VHlwZTo6R2VvbG9jYXRpb25Qb3NpdGlvbj4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbj4gY3JlYXRlKFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24m
Jik7CisgICAgc3RhdGljIFJlZjxXZWJHZW9sb2NhdGlvblBvc2l0aW9uPiBjcmVhdGUoV2ViQ29y
ZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJik7CiAKICAgICB2aXJ0dWFsIH5XZWJHZW9sb2Nh
dGlvblBvc2l0aW9uKCk7CiAKQEAgLTUyLDE1ICs1MiwxNSBAQCBwdWJsaWM6CiAgICAgT3B0aW9u
YWw8ZG91YmxlPiBoZWFkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9jb3JlUG9zaXRpb24uaGVhZGlu
ZzsgfQogICAgIE9wdGlvbmFsPGRvdWJsZT4gc3BlZWQoKSBjb25zdCB7IHJldHVybiBtX2NvcmVQ
b3NpdGlvbi5zcGVlZDsgfQogCi0gICAgY29uc3QgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlv
biYgY29yZVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb3JlUG9zaXRpb247IH0KKyAgICBj
b25zdCBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYgY29yZVBvc2l0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9jb3JlUG9zaXRpb247IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uKFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24mJiBnZW9s
b2NhdGlvblBvc2l0aW9uKQorICAgIGV4cGxpY2l0IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24oV2Vi
Q29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiBnZW9sb2NhdGlvblBvc2l0aW9uKQogICAg
ICAgICA6IG1fY29yZVBvc2l0aW9uKFdURk1vdmUoZ2VvbG9jYXRpb25Qb3NpdGlvbikpCiAgICAg
ewogICAgIH0KIAotICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24gbV9jb3JlUG9zaXRp
b247CisgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEgbV9jb3JlUG9zaXRpb247
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwCmluZGV4IGFhYmMzZDlm
NmQ5Li5jMDhlNGFkY2E2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwCkBAIC00OCw3ICs0OCw3IEBAIFdLR2Vv
bG9jYXRpb25Qb3NpdGlvblJlZiBXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGVfYihkb3VibGUg
dGltZXN0YW1wLCBkb3VibGUKIAogV0tHZW9sb2NhdGlvblBvc2l0aW9uUmVmIFdLR2VvbG9jYXRp
b25Qb3NpdGlvbkNyZWF0ZV9jKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91
YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3ZpZGVzQWx0aXR1ZGUsIGRv
dWJsZSBhbHRpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBhbHRp
dHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91YmxlIGhlYWRpbmcsIGJvb2wg
cHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkLCBib29sIHByb3ZpZGVzRmxvb3JMZXZlbCwgZG91
YmxlIGZsb29yTGV2ZWwpCiB7Ci0gICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiBjb3Jl
UG9zaXRpb24geyB0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH07Cisg
ICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEgY29yZVBvc2l0aW9uIHsgdGltZXN0
YW1wLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSB9OwogICAgIGlmIChwcm92aWRlc0Fs
dGl0dWRlKQogICAgICAgICBjb3JlUG9zaXRpb24uYWx0aXR1ZGUgPSBhbHRpdHVkZTsKICAgICBp
ZiAocHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgKaW5kZXggMTdjMDg2OWNhZTYuLjZi
NjRjZmYyYzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5LmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4
dFN1cHBsZW1lbnQuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTUs
NyArNTUsNyBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICB2b2lkIHJl
c2V0UGVybWlzc2lvbnMoKTsKICNlbmRpZgotICAgIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6Okdl
b2xvY2F0aW9uUG9zaXRpb24+JiBsYXN0UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2xhc3RQ
b3NpdGlvbjsgfQorICAgIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRp
b25EYXRhPiYgbGFzdFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0UG9zaXRpb247IH0K
IAogICAgIHVzaW5nIEFQSTo6T2JqZWN0OjpyZWY7CiAgICAgdXNpbmcgQVBJOjpPYmplY3Q6OmRl
cmVmOwpAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8Y29uc3QgSVBDOjpD
b25uZWN0aW9uOjpDbGllbnQqPiBtX2hpZ2hBY2N1cmFjeVJlcXVlc3RlcnM7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8QVBJOjpHZW9sb2NhdGlvblByb3ZpZGVyPiBtX3Byb3ZpZGVyOwotICAgIE9w
dGlvbmFsPFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24+IG1fbGFzdFBvc2l0aW9uOworICAg
IE9wdGlvbmFsPFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBtX2xhc3RQb3NpdGlv
bjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KaW5kZXggNTI1ZmIy
ZjhkY2MuLjEzMDljZWFhNDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KQEAgLTI5Niw3ICsyOTYsNyBAQCAt
ICh2b2lkKWdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkRlbmllZAogICAgIFtfbGlzdGVuZXIgZ2Vv
bG9jYXRpb25BdXRob3JpemF0aW9uRGVuaWVkXTsKIH0KIAotLSAodm9pZClwb3NpdGlvbkNoYW5n
ZWQ6KFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24mJiljb3JlUG9zaXRpb24KKy0gKHZvaWQp
cG9zaXRpb25DaGFuZ2VkOihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKWNvcmVQ
b3NpdGlvbgogewogICAgIEFTU0VSVChfbGlzdGVuZXIpOwogICAgIGF1dG8gcG9zaXRpb24gPSBX
ZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZShXVEZNb3ZlKGNvcmVQb3NpdGlv
bikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dl
Ykdlb2xvY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9j
YXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAppbmRleCAwMjAyNDAyM2M5Zi4uN2IzMGRk
MGY1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
ZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCkBAIC05MCw3ICs5MCw3IEBAIHZv
aWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpzZXRFbmFibGVIaWdoQWNjdXJhY3lGb3JQYWdlKFdl
YlBhZ2UmIHBhZ2UsIGJvb2wgZW5hCiAgICAgICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6U2V0
RW5hYmxlSGlnaEFjY3VyYWN5KGhpZ2hBY2N1cmFjeVNob3VsZEJlRW5hYmxlZCksIDApOwogfQog
Ci12b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgR2Vv
bG9jYXRpb25Qb3NpdGlvbiYgcG9zaXRpb24pCit2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6
ZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmIHBvc2l0aW9u
KQogewogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBjb3B5
VG9WZWN0b3IobV9wYWdlU2V0KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCmluZGV4IGE2YzI4
NzE2YWIxLi5kNzgwOTNlNGQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaApAQCAtNjQsNyAr
NjQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNVcGRhdGluZygpIGNvbnN0IHsgcmV0dXJuICFt
X3BhZ2VTZXQuaXNFbXB0eSgpOyB9CiAgICAgYm9vbCBpc0hpZ2hBY2N1cmFjeUVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiAhbV9oaWdoQWNjdXJhY3lQYWdlU2V0LmlzRW1wdHkoKTsgfQogCi0gICAg
dm9pZCBkaWRDaGFuZ2VQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9u
Jik7CisgICAgdm9pZCBkaWRDaGFuZ2VQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpHZW9sb2NhdGlv
blBvc2l0aW9uRGF0YSYpOwogICAgIHZvaWQgZGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
dm9pZCByZXNldFBlcm1pc3Npb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5t
ZXNzYWdlcy5pbgppbmRleCAwNDNlZjY0OTQ5MC4uYjUyZTgxNjIwNTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dl
Ykdlb2xvY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjEsNyArMjEsNyBAQAogIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogCiBtZXNzYWdlcyAtPiBXZWJHZW9sb2NhdGlvbk1hbmFnZXIgewotICAgIERpZENo
YW5nZVBvc2l0aW9uKFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24gcG9zaXRpb24pOworICAg
IERpZENoYW5nZVBvc2l0aW9uKFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIHBvc2l0
aW9uKTsKICAgICBEaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbihTdHJpbmcgZXJyb3JNZXNzYWdl
KTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFJlc2V0UGVybWlzc2lvbnMoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9s
b2NhdGlvbkNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCmluZGV4IGEyNGUwZmYyMWNjLi5mMjI3NTEyNTlm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Ykdlb2xvY2F0aW9uQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHZv
aWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sIGVuYWJs
ZWQpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxXZWJHZW9sb2NhdGlv
bk1hbmFnZXI+KCktPnNldEVuYWJsZUhpZ2hBY2N1cmFjeUZvclBhZ2UobV9wYWdlLCBlbmFibGVk
KTsKIH0KIAotT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gV2ViR2VvbG9jYXRpb25DbGll
bnQ6Omxhc3RQb3NpdGlvbigpCitPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gV2Vi
R2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKaW5kZXggMzVhMzFmYzJhMzQuLmQ0
Nzc2ZTkxNTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaApAQCAtNDgsNyArNDgsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgc3RvcFVwZGF0aW5nKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
ZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkgb3ZlcnJpZGU7CiAKLSAgICBPcHRpb25hbDxXZWJD
b3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiBsYXN0UG9zaXRpb24oKSBvdmVycmlkZTsKKyAgICBP
cHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gbGFzdFBvc2l0aW9uKCkg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6Okdlb2xvY2F0
aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjYW5jZWxQZXJtaXNzaW9uUmVxdWVzdChXZWJDb3Jl
OjpHZW9sb2NhdGlvbiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uQ29yZUxvY2F0aW9uUHJvdmlkZXIu
aAppbmRleCAwNDkwZmNmYjFkYi4uODQyN2NiODEwMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRp
b25Qcm92aWRlci5oCkBAIC0yOSw3ICsyOSw3IEBACiBAY2xhc3MgTlNTdHJpbmc7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKLWNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFzcyBHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YTsKIH0KIAogLy8gV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25EZWxl
Z2F0ZSBhYnN0cmFjdHMgdGhlIGxvY2F0aW9uIHNlcnZpY2VzIG9mIENvcmVMb2NhdGlvbi4KQEAg
LTQzLDcgKzQzLDcgQEAgY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKIC0gKHZvaWQpZ2VvbG9j
YXRpb25BdXRob3JpemF0aW9uR3JhbnRlZDsKIC0gKHZvaWQpZ2VvbG9jYXRpb25BdXRob3JpemF0
aW9uRGVuaWVkOwogCi0tICh2b2lkKXBvc2l0aW9uQ2hhbmdlZDooV2ViQ29yZTo6R2VvbG9jYXRp
b25Qb3NpdGlvbiYmKXBvc2l0aW9uOworLSAodm9pZClwb3NpdGlvbkNoYW5nZWQ6KFdlYkNvcmU6
Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYpcG9zaXRpb247CiAtICh2b2lkKWVycm9yT2NjdXJy
ZWQ6KE5TU3RyaW5nICopZXJyb3JNZXNzYWdlOwogLSAodm9pZClyZXNldEdlb2xvY2F0aW9uOwog
QGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2Nh
dGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlz
Yy9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLm1tCmluZGV4IGM1ZjY0NmIyYTQ1
Li5kZTkxMzNiZjA4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlzYy9X
ZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5tbQpAQCAt
MzAsNyArMzAsNyBAQAogI2ltcG9ydCA8Q29yZUxvY2F0aW9uL0NMTG9jYXRpb24uaD4KICNpbXBv
cnQgPENvcmVMb2NhdGlvbi9DTExvY2F0aW9uTWFuYWdlckRlbGVnYXRlLmg+CiAjaW1wb3J0IDxD
b3JlTG9jYXRpb24vQ29yZUxvY2F0aW9uLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9u
UG9zaXRpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaD4K
ICNpbXBvcnQgPFdlYktpdExvZ2dpbmcuaD4KICNpbXBvcnQgPG9iamMvb2JqYy1ydW50aW1lLmg+
CiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CkBAIC0xNzAsNyArMTcwLDcgQEAgLSAodm9pZClsb2Nh
dGlvbk1hbmFnZXI6KENMTG9jYXRpb25NYW5hZ2VyICopbWFuYWdlciBkaWRDaGFuZ2VBdXRob3Jp
emF0aW9uU3RhdHUKIAogLSAodm9pZClzZW5kTG9jYXRpb246KENMTG9jYXRpb24gKiluZXdMb2Nh
dGlvbgogewotICAgIFtfcG9zaXRpb25MaXN0ZW5lciBwb3NpdGlvbkNoYW5nZWQ6R2VvbG9jYXRp
b25Qb3NpdGlvbiB7IG5ld0xvY2F0aW9uIH1dOworICAgIFtfcG9zaXRpb25MaXN0ZW5lciBwb3Np
dGlvbkNoYW5nZWQ6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEgeyBuZXdMb2NhdGlvbiB9XTsKIH0K
IAogLSAodm9pZClsb2NhdGlvbk1hbmFnZXI6KENMTG9jYXRpb25NYW5hZ2VyICopbWFuYWdlciBk
aWRVcGRhdGVMb2NhdGlvbnM6KE5TQXJyYXkgKilsb2NhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQpp
bmRleCBjMmZmMzUwZjc0NS4uNWU3Nzc5NjRmMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KQEAgLTQy
LDcgKzQyLDcgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBAaW50ZXJmYWNlIFdlYkdl
b2xvY2F0aW9uUG9zaXRpb24gKEludGVybmFsKQotLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvblBv
c2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb247Cist
IChpZClpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246KEdlb2xvY2F0aW9uUG9zaXRpb25EYXRh
JiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb247CiBAZW5kCiAKIC8vIENvcmVMb2NhdGlvbiBydW5z
IGluIHRoZSBtYWluIHRocmVhZC4gV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUyBsaXZlcyBvbiB0
aGUgV2ViVGhyZWFkLgpAQCAtMzQ4LDcgKzM0OCw3IEBAIC0gKHZvaWQpZ2VvbG9jYXRpb25BdXRo
b3JpemF0aW9uRGVuaWVkCiAgICAgfSk7CiB9CiAKLS0gKHZvaWQpcG9zaXRpb25DaGFuZ2VkOihX
ZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uJiYpcG9zaXRpb24KKy0gKHZvaWQpcG9zaXRpb25D
aGFuZ2VkOihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKXBvc2l0aW9uCiB7CiAg
ICAgUmV0YWluUHRyPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IHdlYlBvc2l0aW9uID0gYWRvcHRO
UyhbW1dlYkdlb2xvY2F0aW9uUG9zaXRpb24gYWxsb2NdIGluaXRXaXRoR2VvbG9jYXRpb25Qb3Np
dGlvbjpXVEZNb3ZlKHBvc2l0aW9uKV0pOwogICAgIFdlYlRocmVhZFJ1biheewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25D
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xv
Y2F0aW9uQ2xpZW50LmgKaW5kZXggZmZkYmFjZmMyNzQuLjhhMWI3ZjAwOWQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdl
b2xvY2F0aW9uQ2xpZW50LmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgR2VvbG9jYXRpb247Ci1jbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOworY2xhc3Mg
R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE7CiB9CiAKIEBjbGFzcyBXZWJWaWV3OwpAQCAtNDgsNyAr
NDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkgb3Zl
cnJpZGUgeyB9CiAjZW5kaWYKIAotICAgIE9wdGlvbmFsPFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9z
aXRpb24+IGxhc3RQb3NpdGlvbigpIG92ZXJyaWRlOworICAgIE9wdGlvbmFsPFdlYkNvcmU6Okdl
b2xvY2F0aW9uUG9zaXRpb25EYXRhPiBsYXN0UG9zaXRpb24oKSBvdmVycmlkZTsKIAogICAgIHZv
aWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6R2VvbG9jYXRpb24mKSBvdmVycmlkZTsKICAg
ICB2b2lkIGNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KFdlYkNvcmU6Okdlb2xvY2F0aW9uJikgb3Zl
cnJpZGUgeyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQppbmRleCAyY2Y3MTVlMmQ5MC4u
ODdkYTczMGZlYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCkBAIC0xMzIsNyArMTMy
LDcgQEAgdm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oR2VvbG9j
YXRpb24mIGdlb2xvY2F0aW9uKQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAK
LU9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+IFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0
UG9zaXRpb24oKQorT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IFdlYkdlb2xvY2F0
aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24oKQogewogICAgIHJldHVybiBjb3JlKFtbbV93ZWJWaWV3
IF9nZW9sb2NhdGlvblByb3ZpZGVyXSBsYXN0UG9zaXRpb25dKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5t
bQppbmRleCBkMTVmNWY5YzY5ZS4uNWRiZmQzNTVhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0KQEAg
LTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgIldlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKIAogI2lt
cG9ydCAiV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmgiCi0jaW1wb3J0IDxXZWJDb3Jl
L0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEuaD4KICNpbXBvcnQgPHd0Zi9PcHRpb25hbC5oPgogI2ltcG9ydCA8d3RmL1JlZlB0
ci5oPgogCkBAIC0zNSwxNSArMzUsMTUgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBAaW50
ZXJmYWNlIFdlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbCA6IE5TT2JqZWN0CiB7CiBAcHVi
bGljCi0gICAgR2VvbG9jYXRpb25Qb3NpdGlvbiBfcG9zaXRpb247CisgICAgR2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGEgX3Bvc2l0aW9uOwogfQogCi0tIChpZClpbml0V2l0aENvcmVHZW9sb2NhdGlv
blBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb247
CistIChpZClpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YSYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOwogQGVuZAogCiBAaW1wbGVtZW50YXRp
b24gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsCiAKLS0gKGlkKWluaXRXaXRoQ29yZUdl
b2xvY2F0aW9uUG9zaXRpb246KEdlb2xvY2F0aW9uUG9zaXRpb24mJiljb3JlR2VvbG9jYXRpb25Q
b3NpdGlvbgorLSAoaWQpaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjooR2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGEmJiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbgogewogICAgIHNlbGYgPSBb
c3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQpAQCAtNTYsNyArNTYsNyBAQCBAZW5kCiAKIEBp
bXBsZW1lbnRhdGlvbiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uCiAKLU9wdGlvbmFsPEdlb2xvY2F0
aW9uUG9zaXRpb24+IGNvcmUoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiAqcG9zaXRpb24pCitPcHRp
b25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gY29yZShXZWJHZW9sb2NhdGlvblBvc2l0aW9u
ICpwb3NpdGlvbikKIHsKICAgICBpZiAoIXBvc2l0aW9uKQogICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwpAQCAtNjgsMTEgKzY4LDExIEBAIC0gKGlkKWluaXRXaXRoVGltZXN0YW1wOihkb3Vi
bGUpdGltZXN0YW1wIGxhdGl0dWRlOihkb3VibGUpbGF0aXR1ZGUgbG9uZ2l0dWRlOihkCiAgICAg
c2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7
Ci0gICAgX2ludGVybmFsID0gW1tXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwgYWxsb2Nd
IGluaXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246R2VvbG9jYXRpb25Qb3NpdGlvbiB7IHRp
bWVzdGFtcCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kgfV07CisgICAgX2ludGVybmFs
ID0gW1tXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwgYWxsb2NdIGluaXRXaXRoQ29yZUdl
b2xvY2F0aW9uUG9zaXRpb246R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEgeyB0aW1lc3RhbXAsIGxh
dGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH1dOwogICAgIHJldHVybiBzZWxmOwogfQogCi0t
IChpZClpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246KEdlb2xvY2F0aW9uUG9zaXRpb24mJilj
b3JlR2VvbG9jYXRpb25Qb3NpdGlvbgorLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0aW9u
OihHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uCiB7CiAg
ICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5h
bC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0
aW9uSW50ZXJuYWwuaAppbmRleCAzNDc2MzAyZjJkNi4uN2VhYWE5YzBlY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbklu
dGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9sb2Nh
dGlvblBvc2l0aW9uSW50ZXJuYWwuaApAQCAtMjcsOCArMjcsOCBAQAogI2ltcG9ydCA8d3RmL09w
dGlvbmFsLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBjbGFzcyBHZW9sb2NhdGlvblBv
c2l0aW9uOworY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE7CiB9CiAKLU9wdGlvbmFsPFdl
YkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24+IGNvcmUoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiAq
KTsKK09wdGlvbmFsPFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBjb3JlKFdlYkdl
b2xvY2F0aW9uUG9zaXRpb24gKik7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9UZXN0UnVubmVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5u
ZXJNYWMubW0KaW5kZXggMWY5NjBhYWUyZGQuLjAwNjU5NTZjODFkIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAtNDEsNyArNDEsNyBAQAogI2ltcG9ydCAi
V29ya1F1ZXVlSXRlbS5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1w
b3J0IDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1JlZkNGLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0dl
b2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlv
bkRhdGEuaD4KICNpbXBvcnQgPFdlYktpdC9ET01Eb2N1bWVudC5oPgogI2ltcG9ydCA8V2ViS2l0
L0RPTUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYktpdC9ET01IVE1MSW5wdXRFbGVtZW50UHJpdmF0
ZS5oPgpAQCAtMTE5LDcgKzExOSw3IEBAIEBlbmQKICNlbmRpZgogCiBAaW50ZXJmYWNlIFdlYkdl
b2xvY2F0aW9uUG9zaXRpb24gKEludGVybmFsKQotLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvblBv
c2l0aW9uOihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZUdlb2xvY2F0aW9uUG9z
aXRpb247CistIChpZClpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246KFdlYkNvcmU6Okdlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb247CiBAZW5kCiAKIFRl
c3RSdW5uZXI6On5UZXN0UnVubmVyKCkKQEAgLTQ3Miw3ICs0NzIsNyBAQCB2b2lkIFRlc3RSdW5u
ZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxv
bmdpdHVkZSwgZAogICAgICAgICAvLyBUZXN0IHRoZSBleHBvc2VkIEFQSS4KICAgICAgICAgcG9z
aXRpb24gPSBbW1dlYkdlb2xvY2F0aW9uUG9zaXRpb24gYWxsb2NdIGluaXRXaXRoVGltZXN0YW1w
OldhbGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSBsYXRpdHVkZTps
YXRpdHVkZSBsb25naXR1ZGU6bG9uZ2l0dWRlIGFjY3VyYWN5OmFjY3VyYWN5XTsKICAgICB9IGVs
c2UgewotICAgICAgICBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uIGdlb2xvY2F0aW9uUG9z
aXRpb24geyBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCksIGxh
dGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH07CisgICAgICAgIFdlYkNvcmU6Okdlb2xvY2F0
aW9uUG9zaXRpb25EYXRhIGdlb2xvY2F0aW9uUG9zaXRpb24geyBXYWxsVGltZTo6bm93KCkuc2Vj
b25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCksIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5
IH07CiAgICAgICAgIGlmIChwcm92aWRlc0FsdGl0dWRlKQogICAgICAgICAgICAgZ2VvbG9jYXRp
b25Qb3NpdGlvbi5hbHRpdHVkZSA9IGFsdGl0dWRlOwogICAgICAgICBpZiAocHJvdmlkZXNBbHRp
dHVkZUFjY3VyYWN5KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377076</attachid>
            <date>2019-08-22 16:55:26 -0700</date>
            <delta_ts>2019-08-22 16:57:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200885-20190822165525.patch</filename>
            <type>text/plain</type>
            <size>130345</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQzNTYyOGI0NzIxMTBk
YzA3ZTk5ODc3ZDJkMzBkNGE2ZGYzOWMxNi4uNDRlZTZjNmFjYTg0NmU5OTA5ODA4NTVhNDY0YjM2
NjM5MTU1NzEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDE5LTA4LTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2dlb2xvY2F0aW9uXSBSZW5h
bWUgaW50ZXJmYWNlcyBhbmQgcmVtb3ZlIFtOb0ludGVyZmFjZU9iamVjdF0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDg4NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBHZW9sb2NhdGlvbiBp
bnRlcmZhY2VzIGFuZCBleHBvc2UgdGhlbSBvbiB0aGUgZ2xvYmFsIFdpbmRvdyBvYmplY3QgdG8g
bWF0Y2ggdGhlCisgICAgICAgIGxhdGVzdCBzcGVjaWZpY2F0aW9uOgorICAgICAgICAtIGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9nZW9sb2NhdGlvbi1hcGkvI2FwaV9kZXNjcmlwdGlvbgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL0dlb2xvY2F0aW9uL2V4cG9zZWQtZ2VvbG9jYXRpb24taW50ZXJm
YWNlcy5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
SGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb05vdGlmaWVyOjpzZXRGYXRhbEVycm9yKToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlb05vdGlmaWVyOjpydW5TdWNjZXNzQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6R2VvTm90aWZpZXI6OnJ1bkVycm9yQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6R2VvTm90aWZpZXI6OnRpbWVyRmlyZWQpOgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvTm90aWZpZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUdlb2xvY2F0aW9uUG9zaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpsYXN0UG9zaXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R2VvbG9jYXRpb246OnN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpHZW9s
b2NhdGlvbjo6cmVxdWVzdFVzZXNDYWNoZWRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpH
ZW9sb2NhdGlvbjo6bWFrZUNhY2hlZFBvc2l0aW9uQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNv
cmU6Okdlb2xvY2F0aW9uOjpoYXZlU3VpdGFibGVDYWNoZWRQb3NpdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpHZW9sb2NhdGlvbjo6c2V0SXNBbGxvd2VkKToKKyAgICAgICAgKFdlYkNvcmU6Okdl
b2xvY2F0aW9uOjpzZW5kRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OnNl
bmRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6Y2FuY2VsUmVxdWVz
dHMpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OmhhbmRsZUVycm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjptYWtlU3VjY2Vzc0NhbGxiYWNrcyk6CisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6cG9zaXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNv
cmU6Okdlb2xvY2F0aW9uOjpzZXRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
bjo6aGFuZGxlUGVuZGluZ1Blcm1pc3Npb25Ob3RpZmllcnMpOgorICAgICAgICAqIE1vZHVsZXMv
Z2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uQ2xpZW50Lmg6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjpw
b3NpdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVy
OjpsYXN0UG9zaXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b25Db250cm9sbGVyLmg6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bkNvb3JkaW5hdGVzLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vQ29vcmRpbmF0ZXMuY3BwLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25D
b29yZGluYXRlczo6R2VvbG9jYXRpb25Db29yZGluYXRlcyk6CisgICAgICAgICogTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmguCisgICAgICAgIChXZWJD
b3JlOjpHZW9sb2NhdGlvbkNvb3JkaW5hdGVzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R2VvbG9jYXRpb25Db29yZGluYXRlczo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKiBN
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRsOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5pZGwuCisg
ICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmg6CisgICAg
ICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbjo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb246OnRpbWVzdGFtcCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uOjpjb29yZHMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbjo6R2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAg
ICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRs
LgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEu
aDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvblBvc2l0aW9uLmguCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0
aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmguCisgICAgICAgIChXZWJDb3Jl
OjpHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpH
ZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6Okdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcik6CisgICAg
ICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRsOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVy
cm9yLmlkbC4KKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bvc2l0aW9uLmg6IFJl
bW92ZWQuCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmg6
CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5oOgorICAg
ICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlP
Uy5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vaW9z
L0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0uCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
blBvc2l0aW9uRGF0YTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEpOgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnNldFBvc2l0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jazo6bGFzdFBvc2l0aW9uKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oOgorCiAyMDE5LTA4LTIyICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgSW1hZ2VCdWZm
ZXIgYW5kIFNWRydzIEZpbHRlckRhdGEgaXNvaGVhcCdlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3ZmY3OGZiZjRk
ZTJjYzg5ZGE2ZDYzNzg2OTAxYzk5NGU3ZDAyZTFmLi5iYmRkNDNlYjNlMjFjN2Y1ZGY0OTA3NDdj
ZTVmZjYyYzE4YzZhZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTA4LTIyICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2dlb2xvY2F0aW9uXSBS
ZW5hbWUgaW50ZXJmYWNlcyBhbmQgcmVtb3ZlIFtOb0ludGVyZmFjZU9iamVjdF0KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDg4NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYkdlb2xv
Y2F0aW9uUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0
aW9uOjpjcmVhdGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmg6
CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNvcmVQb3NpdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OldlYkdlb2xv
Y2F0aW9uUG9zaXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9u
UG9zaXRpb24uY3BwOgorICAgICAgICAoV0tHZW9sb2NhdGlvblBvc2l0aW9uQ3JlYXRlX2MpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6bGFzdFBvc2l0aW9uIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbToK
KyAgICAgICAgKC1bV0tMZWdhY3lDb3JlTG9jYXRpb25Qcm92aWRlciBwb3NpdGlvbkNoYW5nZWQ6
XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5n
ZVBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0
aW9uTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9j
YXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lmg6CisKIDIwMTktMDgtMjIgIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVd
IEZpeGVzIGZvciBub24tdW5pZmllZCBidWlsZHMgYWZ0ZXIgcjI0ODU0NwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9p
b3MvQ2hhbmdlTG9nCmluZGV4IDU1MWEwYjc3OWEwZTQ5MTI1MDEwNGY2NWM3ODk2Yzg2MjdiZDAz
NGIuLjk2MWFhODg5YjgyMTJmZTZmMDM3Y2Y1YzVjMzZlMzM1Y2IzYWRhY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L2lvcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wOC0yMiAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtnZW9sb2NhdGlvbl0gUmVuYW1lIGlu
dGVyZmFjZXMgYW5kIHJlbW92ZSBbTm9JbnRlcmZhY2VPYmplY3RdCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4ODUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pc2MvV2ViR2VvbG9jYXRpb25Db3Jl
TG9jYXRpb25Qcm92aWRlci5oOgorICAgICAgICAqIE1pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9j
YXRpb25Qcm92aWRlci5tbToKKyAgICAgICAgKC1bV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Q
cm92aWRlciBzZW5kTG9jYXRpb246XSk6CisgICAgICAgICogTWlzYy9XZWJHZW9sb2NhdGlvblBy
b3ZpZGVySU9TLm1tOgorICAgICAgICAoLVtfV2ViQ29yZUxvY2F0aW9uVXBkYXRlVGhyZWFkaW5n
UHJveHkgcG9zaXRpb25DaGFuZ2VkOl0pOgorCiAyMDE5LTA4LTE4ICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dURl0gQWRkIG1ha2VVbmlxdWU8VD4sIHdo
aWNoIGVuc3VyZXMgVCBpcyBmYXN0LWFsbG9jYXRlZCwgbWFrZVVuaXF1ZSAvIG1ha2VVbmlxdWVX
aXRob3V0RmFzdE1hbGxvY0NoZWNrIHBhcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRl
eCAzMTVjMWVhYTg5NDdjNGY0MWIwMjE2ZmFkZWJhYWVmYmE0M2RiNzYwLi45ZTA0YjVkZDI5NzNl
Y2RhMjczNmFhNjBjZTU2NTVhNjFjMmE4YmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMDgtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBbZ2VvbG9jYXRpb25dIFJlbmFtZSBpbnRlcmZhY2VzIGFuZCByZW1v
dmUgW05vSW50ZXJmYWNlT2JqZWN0XQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAwODg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tOgorICAgICAg
ICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbik6CisgICAgICAgICogV2ViVmll
dy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBv
c2l0aW9uSW50ZXJuYWwgaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjpdKToKKyAgICAg
ICAgKGNvcmUpOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBvc2l0aW9uIGluaXRXaXRoVGlt
ZXN0YW1wOmxhdGl0dWRlOmxvbmdpdHVkZTphY2N1cmFjeTpdKToKKyAgICAgICAgKC1bV2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbiBpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246XSk6CisgICAgICAg
ICogV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaDoKKwogMjAxOS0wOC0y
MSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFp
bF0gVGFwcGluZyB0b3Agb2YgbWVzc2FnZSBzY3JvbGxzIGJhY2sgdG8gY29waWVkIHRleHQgaW5z
dGVhZCBvZiB0b3Agb2YgdGhlIG1lc3NhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMGUyOTNk
MjUyOTNiMDNhZjZlZTFjZWUwM2M4ZjgwMzIxOTU3ZWVlOC4uYTViNjJmNDA4ZGZmM2IzMmYwNTAx
NjBhOWU1OTkxNWZjNDk4NGZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI2MSwxMiArMjYx
LDEyIEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlc3BvbnNlLmlkbAogICAgIE1vZHVsZXMvZmV0Y2gvV29ya2VyR2xvYmFsU2NvcGVGZXRj
aC5pZGwKIAotICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsCiAgICAgTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwKLSAgICBNb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb3Bvc2l0aW9uLmlkbAorICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29y
ZGluYXRlcy5pZGwKKyAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24u
aWRsCisgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRs
CiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwKICAgICBN
b2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaWRsCi0gICAgTW9kdWxlcy9nZW9s
b2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRp
b25FcnJvckNhbGxiYWNrLmlkbAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25PcHRp
b25zLmlkbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAppbmRleCBlNDA4M2RkOTBjNzcwNGNjMTVhMzYzYzJlNjI1MzlhZWViZTE0MTg3Li4zNTI2
ZmRhNmNjMjczOTI2MWU4YTIyYWNiMmM2OGNkNWRlMDI0ZjhmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTk5LDYgKzk5LDkgQEAgJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRFdmVudC5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaWRsCiskKFBST0pFQ1RfRElSKS9N
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA5MDZjMzE0
NTM3ODA1NGYzZDAxN2RmYmVlNDFkYzZhMmY4MDYyZTY0Li5lYjczM2ZmNzBiOTZiODYyYzAyNTBl
YTg1NjJkNTQzNDE4NjZhNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNjU1LDYgKzY1NSwxMiBAQCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dhbWVwYWRXZWJWUi5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2FtZXBhZFdlYlZSLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb24u
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xv
Y2F0aW9uLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
R2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb25Db29yZGluYXRlcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uUG9zaXRpb24uY3Bw
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0
aW9uUG9zaXRpb24uaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb3Bvc2l0aW9uLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHZW9wb3Np
dGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dl
c3R1cmVFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDQ2NGMxM2Yy
NjE0MDIzNjljNDA1Y2Y3MTUxMzBmN2YwODM3NmU2ZTYuLjBjMjhiNjU3Yjg1NjY2MDEwZGZjODA0
NWI1MjRiNjAwOThkMGIwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTcx
LDEyICsxNzEsMTIgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9nYW1lcGFkL0dhbWVwYWRCdXR0b24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2Ft
ZXBhZC9HYW1lcGFkRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2FtZXBhZC9O
YXZpZ2F0b3JHYW1lcGFkLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0Nvb3JkaW5hdGVzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bv
c2l0aW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uQ29vcmRpbmF0ZXMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb25Qb3NpdGlvbi5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwgXAotICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5pZGwg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKaW5kZXggN2I4MjgwZWJkMDI0ZjM0Y2M2NzExMmZmMDAxNzFlNjkx
YWZlN2QyZS4uNWQ5NjE2YTQ1NjI2ZjU1NmMwMDE2ZTJhMzQyNGQ0ZjRlOTA0MjQ2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCkBAIC0yNSwxNSArMjUsMTUgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuaAogICAgIE1vZHVs
ZXMvZmV0Y2gvRmV0Y2hMb2FkZXJDbGllbnQuaAogCi0gICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9D
b29yZGluYXRlcy5oCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCiAgICAg
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNsaWVudC5oCiAgICAgTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAorICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb25Db29yZGluYXRlcy5oCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvbkVycm9yLmgKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24u
aAotICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaAorICAgIE1vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaAorICAgIE1vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmgKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bv
c2l0aW9uQ2FsbGJhY2suaAotICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5o
CiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaAogICAgIE1v
ZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25PcHRpb25zLmgKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOWNlYmRmYzBmNjVhOGZiODEwMjQzZTEyN2VkNzk2NzU4NDJmNTBjYi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDb29yZGluYXRlcy5oIgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUNvb3JkaW5hdGVzOjpDb29yZGluYXRlcyhHZW9sb2NhdGlv
blBvc2l0aW9uJiYgcG9zaXRpb24pCi0gICAgOiBtX3Bvc2l0aW9uKFdURk1vdmUocG9zaXRpb24p
KQotewotICAgIEFTU0VSVChtX3Bvc2l0aW9uLmlzVmFsaWQoKSk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vQ29vcmRpbmF0ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29v
cmRpbmF0ZXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmQ1MTgyODJhZWNkNTFm
NjFkZTZiNTYwOTYzMWRjYzUzM2VmODUzZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3Jk
aW5hdGVzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNs
dWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCi0jaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Ci0j
aW5jbHVkZSA8d3RmL1JlZi5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ29vcmRpbmF0ZXMgOiBwdWJsaWMgUmVmQ291bnRlZDxD
b29yZGluYXRlcz4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q29vcmRpbmF0ZXM+IGNyZWF0
ZShHZW9sb2NhdGlvblBvc2l0aW9uJiYgcG9zaXRpb24pCi0gICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDb29yZGluYXRlcyhXVEZNb3ZlKHBvc2l0aW9uKSkpOwotICAgIH0KLQot
ICAgIFJlZjxDb29yZGluYXRlcz4gaXNvbGF0ZWRDb3B5KCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IHJldHVybiBDb29yZGluYXRlczo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb24obV9wb3NpdGlv
bikpOwotICAgIH0KLQotICAgIGRvdWJsZSBsYXRpdHVkZSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9z
aXRpb24ubGF0aXR1ZGU7IH0KLSAgICBkb3VibGUgbG9uZ2l0dWRlKCkgY29uc3QgeyByZXR1cm4g
bV9wb3NpdGlvbi5sb25naXR1ZGU7IH0KLSAgICBPcHRpb25hbDxkb3VibGU+IGFsdGl0dWRlKCkg
Y29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5hbHRpdHVkZTsgfQotICAgIGRvdWJsZSBhY2N1cmFj
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24uYWNjdXJhY3k7IH0KLSAgICBPcHRpb25hbDxk
b3VibGU+IGFsdGl0dWRlQWNjdXJhY3koKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uLmFsdGl0
dWRlQWNjdXJhY3k7IH0KLSAgICBPcHRpb25hbDxkb3VibGU+IGhlYWRpbmcoKSBjb25zdCB7IHJl
dHVybiBtX3Bvc2l0aW9uLmhlYWRpbmc7IH0KLSAgICBPcHRpb25hbDxkb3VibGU+IHNwZWVkKCkg
Y29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5zcGVlZDsgfQotICAgIE9wdGlvbmFsPGRvdWJsZT4g
Zmxvb3JMZXZlbCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24uZmxvb3JMZXZlbDsgfQotICAg
IAotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBDb29yZGluYXRlcyhHZW9sb2NhdGlvblBvc2l0aW9u
JiYpOwotCi0gICAgR2VvbG9jYXRpb25Qb3NpdGlvbiBtX3Bvc2l0aW9uOwotfTsKLSAgICAKLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Db29yZGluYXRlcy5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJm
NWNlZmIwZmMwMzdhY2ZiOTZmMTZjYzRmMjE0MmFjMzYzYzk3MGEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Db29yZGluYXRlcy5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLVsKLSAgICBOb0lu
dGVyZmFjZU9iamVjdCwKLSAgICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwKLSAgICBJbXBsZW1l
bnRhdGlvbkxhY2tzVlRhYmxlCi1dIGludGVyZmFjZSBDb29yZGluYXRlcyB7Ci0gICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbGF0aXR1ZGU7Ci0gICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbG9uZ2l0dWRlOwotICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlPyBhbHRpdHVkZTsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBhY2N1cmFjeTsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gYWx0aXR1ZGVBY2N1cmFjeTsKLSAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gaGVhZGluZzsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gc3BlZWQ7Ci0gICAgW0VuYWJsZWRCeVNldHRpbmc9
R2VvbG9jYXRpb25GbG9vckxldmVsXSByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZT8gZmxvb3JMZXZlbDsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvTm90aWZpZXIuY3BwCmluZGV4IDc3ZWJmMzQyMWM5MmYzMDY4ODk1NDIyOWM1
YjMzZWU3YjBiNDMzNDAuLjcwZjg5NjIxZmNmODUyNzJkZDk1ZDg4OWU3MGE3M2U1YTg5MjAwMDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZp
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZp
ZXIuY3BwCkBAIC00NCw3ICs0NCw3IEBAIEdlb05vdGlmaWVyOjpHZW9Ob3RpZmllcihHZW9sb2Nh
dGlvbiYgZ2VvbG9jYXRpb24sIFJlZjxQb3NpdGlvbkNhbGxiYWNrPiYmIHN1Y2NlCiB7CiB9CiAK
LXZvaWQgR2VvTm90aWZpZXI6OnNldEZhdGFsRXJyb3IoUmVmUHRyPFBvc2l0aW9uRXJyb3I+JiYg
ZXJyb3IpCit2b2lkIEdlb05vdGlmaWVyOjpzZXRGYXRhbEVycm9yKFJlZlB0cjxHZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3I+JiYgZXJyb3IpCiB7CiAgICAgLy8gSWYgYSBmYXRhbCBlcnJvciBoYXMg
YWxyZWFkeSBiZWVuIHNldCwgc3RpY2sgd2l0aCBpdC4gVGhpcyBtYWtlcyBzdXJlIHRoYXQKICAg
ICAvLyB3aGVuIHBlcm1pc3Npb24gaXMgZGVuaWVkLCB0aGlzIGlzIHRoZSBlcnJvciByZXBvcnRl
ZCwgYXMgcmVxdWlyZWQgYnkgdGhlCkBAIC02OSw3ICs2OSw3IEBAIGJvb2wgR2VvTm90aWZpZXI6
Omhhc1plcm9UaW1lb3V0KCkgY29uc3QKICAgICByZXR1cm4gIW1fb3B0aW9ucy50aW1lb3V0Owog
fQogCi12b2lkIEdlb05vdGlmaWVyOjpydW5TdWNjZXNzQ2FsbGJhY2soR2VvcG9zaXRpb24qIHBv
c2l0aW9uKQordm9pZCBHZW9Ob3RpZmllcjo6cnVuU3VjY2Vzc0NhbGxiYWNrKEdlb2xvY2F0aW9u
UG9zaXRpb24qIHBvc2l0aW9uKQogewogICAgIC8vIElmIHdlIGFyZSBoZXJlIGFuZCB0aGUgR2Vv
bG9jYXRpb24gcGVybWlzc2lvbiBpcyBub3QgYXBwcm92ZWQsIHNvbWV0aGluZyBoYXMKICAgICAv
LyBnb25lIGhvcnJpYmx5IHdyb25nLgpAQCAtNzksNyArNzksNyBAQCB2b2lkIEdlb05vdGlmaWVy
OjpydW5TdWNjZXNzQ2FsbGJhY2soR2VvcG9zaXRpb24qIHBvc2l0aW9uKQogICAgIG1fc3VjY2Vz
c0NhbGxiYWNrLT5oYW5kbGVFdmVudChwb3NpdGlvbik7CiB9CiAKLXZvaWQgR2VvTm90aWZpZXI6
OnJ1bkVycm9yQ2FsbGJhY2soUG9zaXRpb25FcnJvciYgZXJyb3IpCit2b2lkIEdlb05vdGlmaWVy
OjpydW5FcnJvckNhbGxiYWNrKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciYgZXJyb3IpCiB7CiAg
ICAgaWYgKG1fZXJyb3JDYWxsYmFjaykKICAgICAgICAgbV9lcnJvckNhbGxiYWNrLT5oYW5kbGVF
dmVudChlcnJvcik7CkBAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBHZW9Ob3RpZmllcjo6dGltZXJG
aXJlZCgpCiAgICAgfQogICAgIAogICAgIGlmIChtX2Vycm9yQ2FsbGJhY2spIHsKLSAgICAgICAg
YXV0byBlcnJvciA9IFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpUSU1FT1VU
LCAiVGltZW91dCBleHBpcmVkIl9zKTsKKyAgICAgICAgYXV0byBlcnJvciA9IEdlb2xvY2F0aW9u
UG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6VElNRU9VVCwg
IlRpbWVvdXQgZXhwaXJlZCJfcyk7CiAgICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZl
bnQoZXJyb3IpOwogICAgIH0KICAgICBtX2dlb2xvY2F0aW9uLT5yZXF1ZXN0VGltZWRPdXQodGhp
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05v
dGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVy
LmgKaW5kZXggZmIzMmNlOGQ5YmZkMjk4YmM2NTFiMWUyMjU5ODc0ZWIwMmQxNjIyYy4uZGI5MTNl
ZjkwYzE0OTVlMzk2OWZkZDk5YjA0YmZhMDkwNDc0OGNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9Ob3RpZmllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZpZXIuaApAQCAtMzYsMTAgKzM2LDEwIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR2VvcG9zaXRpb247CiBjbGFzcyBHZW9s
b2NhdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBv
c2l0aW9uRXJyb3I7CiBjbGFzcyBQb3NpdGlvbkNhbGxiYWNrOwotY2xhc3MgUG9zaXRpb25FcnJv
cjsKIGNsYXNzIFBvc2l0aW9uRXJyb3JDYWxsYmFjazsKIAogY2xhc3MgR2VvTm90aWZpZXIgOiBw
dWJsaWMgUmVmQ291bnRlZDxHZW9Ob3RpZmllcj4gewpAQCAtNTAsMTMgKzUwLDEzIEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICBjb25zdCBQb3NpdGlvbk9wdGlvbnMmIG9wdGlvbnMoKSBjb25zdCB7
IHJldHVybiBtX29wdGlvbnM7IH0KLSAgICB2b2lkIHNldEZhdGFsRXJyb3IoUmVmUHRyPFBvc2l0
aW9uRXJyb3I+JiYpOworICAgIHZvaWQgc2V0RmF0YWxFcnJvcihSZWZQdHI8R2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yPiYmKTsKIAogICAgIGJvb2wgdXNlQ2FjaGVkUG9zaXRpb24oKSBjb25zdCB7
IHJldHVybiBtX3VzZUNhY2hlZFBvc2l0aW9uOyB9CiAgICAgdm9pZCBzZXRVc2VDYWNoZWRQb3Np
dGlvbigpOwogCi0gICAgdm9pZCBydW5TdWNjZXNzQ2FsbGJhY2soR2VvcG9zaXRpb24qKTsgLy8g
RklYTUU6IFRoaXMgc2hvdWxkIHRha2UgYSByZWZlcmVuY2UuCi0gICAgdm9pZCBydW5FcnJvckNh
bGxiYWNrKFBvc2l0aW9uRXJyb3ImKTsKKyAgICB2b2lkIHJ1blN1Y2Nlc3NDYWxsYmFjayhHZW9s
b2NhdGlvblBvc2l0aW9uKik7IC8vIEZJWE1FOiBUaGlzIHNob3VsZCB0YWtlIGEgcmVmZXJlbmNl
LgorICAgIHZvaWQgcnVuRXJyb3JDYWxsYmFjayhHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImKTsK
IAogICAgIHZvaWQgc3RhcnRUaW1lcklmTmVlZGVkKCk7CiAgICAgdm9pZCBzdG9wVGltZXIoKTsK
QEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxi
YWNrPiBtX2Vycm9yQ2FsbGJhY2s7CiAgICAgUG9zaXRpb25PcHRpb25zIG1fb3B0aW9uczsKICAg
ICBUaW1lciBtX3RpbWVyOwotICAgIFJlZlB0cjxQb3NpdGlvbkVycm9yPiBtX2ZhdGFsRXJyb3I7
CisgICAgUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gbV9mYXRhbEVycm9yOwogICAg
IGJvb2wgbV91c2VDYWNoZWRQb3NpdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKaW5kZXggZTI2OTFmNTk3ZmU3M2Nj
YmU4NWJiZGU4ZTkzNGY3ZmFlZmU4MmZiZS4uZjEyZTE0OTBmZDg3ZDdiN2IyNzExZTQyYzZiYWY1
NDk4YTk5MGE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAKQEAgLTMwLDE3ICszMCwxNiBAQAogCiAjaWYgRU5BQkxFKEdFT0xP
Q0FUSU9OKQogCi0jaW5jbHVkZSAiQ29vcmRpbmF0ZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiR2VvTm90aWZpZXIuaCIKICNpbmNsdWRl
ICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkNvb3JkaW5h
dGVzLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25FcnJvci5oIgogI2luY2x1ZGUgIkdlb2xvY2F0
aW9uUG9zaXRpb24uaCIKLSNpbmNsdWRlICJHZW9wb3NpdGlvbi5oIgorI2luY2x1ZGUgIkdlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgotI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKICNpbmNsdWRlICJSdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC01NiwyOCArNTUsMjggQEAgc3RhdGljIGNvbnN0
IEFTQ0lJTGl0ZXJhbCBvcmlnaW5DYW5ub3RSZXF1ZXN0R2VvbG9jYXRpb25FcnJvck1lc3NhZ2Ug
eyAiT3JpZ2luIGQKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEdlb2xvY2F0aW9uKTsK
IAotc3RhdGljIFJlZlB0cjxHZW9wb3NpdGlvbj4gY3JlYXRlR2VvcG9zaXRpb24oT3B0aW9uYWw8
R2VvbG9jYXRpb25Qb3NpdGlvbj4mJiBwb3NpdGlvbikKK3N0YXRpYyBSZWZQdHI8R2VvbG9jYXRp
b25Qb3NpdGlvbj4gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbihPcHRpb25hbDxHZW9sb2NhdGlv
blBvc2l0aW9uRGF0YT4mJiBwb3NpdGlvbikKIHsKICAgICBpZiAoIXBvc2l0aW9uKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBET01UaW1lU3RhbXAgdGltZXN0YW1wID0gY29u
dmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcChwb3NpdGlvbi0+dGltZXN0YW1wKTsKLSAgICByZXR1
cm4gR2VvcG9zaXRpb246OmNyZWF0ZShDb29yZGluYXRlczo6Y3JlYXRlKFdURk1vdmUocG9zaXRp
b24udmFsdWUoKSkpLCB0aW1lc3RhbXApOworICAgIHJldHVybiBHZW9sb2NhdGlvblBvc2l0aW9u
OjpjcmVhdGUoR2VvbG9jYXRpb25Db29yZGluYXRlczo6Y3JlYXRlKFdURk1vdmUocG9zaXRpb24u
dmFsdWUoKSkpLCB0aW1lc3RhbXApOwogfQogCi1zdGF0aWMgUmVmPFBvc2l0aW9uRXJyb3I+IGNy
ZWF0ZVBvc2l0aW9uRXJyb3IoR2VvbG9jYXRpb25FcnJvciYgZXJyb3IpCitzdGF0aWMgUmVmPEdl
b2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKEdl
b2xvY2F0aW9uRXJyb3ImIGVycm9yKQogewotICAgIFBvc2l0aW9uRXJyb3I6OkVycm9yQ29kZSBj
b2RlID0gUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEU7CisgICAgYXV0byBjb2Rl
ID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRTsKICAgICBz
d2l0Y2ggKGVycm9yLmNvZGUoKSkgewogICAgIGNhc2UgR2VvbG9jYXRpb25FcnJvcjo6UGVybWlz
c2lvbkRlbmllZDoKLSAgICAgICAgY29kZSA9IFBvc2l0aW9uRXJyb3I6OlBFUk1JU1NJT05fREVO
SUVEOworICAgICAgICBjb2RlID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9O
X0RFTklFRDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHZW9sb2NhdGlvbkVycm9yOjpQb3Np
dGlvblVuYXZhaWxhYmxlOgotICAgICAgICBjb2RlID0gUG9zaXRpb25FcnJvcjo6UE9TSVRJT05f
VU5BVkFJTEFCTEU7CisgICAgICAgIGNvZGUgPSBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBP
U0lUSU9OX1VOQVZBSUxBQkxFOwogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICByZXR1cm4g
UG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIGVycm9yLm1lc3NhZ2UoKSk7CisgICAgcmV0dXJu
IEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIGVycm9yLm1lc3NhZ2UoKSk7
CiB9CiAKIGJvb2wgR2VvbG9jYXRpb246OldhdGNoZXJzOjphZGQoaW50IGlkLCBSZWZQdHI8R2Vv
Tm90aWZpZXI+JiYgbm90aWZpZXIpCkBAIC0yOTAsMTMgKzI4OSwxMyBAQCBjb25zdCBjaGFyKiBH
ZW9sb2NhdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJHZW9s
b2NhdGlvbiI7CiB9CiAKLUdlb3Bvc2l0aW9uKiBHZW9sb2NhdGlvbjo6bGFzdFBvc2l0aW9uKCkK
K0dlb2xvY2F0aW9uUG9zaXRpb24qIEdlb2xvY2F0aW9uOjpsYXN0UG9zaXRpb24oKQogewogICAg
IFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAotICAgIG1fbGFzdFBvc2l0aW9uID0gY3JlYXRlR2VvcG9zaXRpb24oR2Vv
bG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5sYXN0UG9zaXRpb24oKSk7CisgICAgbV9s
YXN0UG9zaXRpb24gPSBjcmVhdGVHZW9sb2NhdGlvblBvc2l0aW9uKEdlb2xvY2F0aW9uQ29udHJv
bGxlcjo6ZnJvbShwYWdlKS0+bGFzdFBvc2l0aW9uKCkpOwogCiAgICAgcmV0dXJuIG1fbGFzdFBv
c2l0aW9uLmdldCgpOwogfQpAQCAtMzczLDcgKzM3Miw3IEBAIGJvb2wgR2VvbG9jYXRpb246OnNo
b3VsZEJsb2NrR2VvbG9jYXRpb25SZXF1ZXN0cygpCiB2b2lkIEdlb2xvY2F0aW9uOjpzdGFydFJl
cXVlc3QoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogewogICAgIGlmIChzaG91bGRCbG9ja0dlb2xv
Y2F0aW9uUmVxdWVzdHMoKSkgewotICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihQb3Np
dGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIG9y
aWdpbkNhbm5vdFJlcXVlc3RHZW9sb2NhdGlvbkVycm9yTWVzc2FnZSkpOworICAgICAgICBub3Rp
Zmllci0+c2V0RmF0YWxFcnJvcihHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNyZWF0ZShHZW9s
b2NhdGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxFLCBvcmlnaW5DYW5ub3RS
ZXF1ZXN0R2VvbG9jYXRpb25FcnJvck1lc3NhZ2UpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICBkb2N1bWVudCgpLT5zZXRHZW9sb2NhdGlvbkFjY2Vzc2VkKCk7CkBAIC0zODEsNyArMzgw
LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RhcnRSZXF1ZXN0KEdlb05vdGlmaWVyKiBub3RpZmll
cikKICAgICAvLyBDaGVjayB3aGV0aGVyIHBlcm1pc3Npb25zIGhhdmUgYWxyZWFkeSBiZWVuIGRl
bmllZC4gTm90ZSB0aGF0IGlmIHRoaXMgaXMgdGhlIGNhc2UsCiAgICAgLy8gdGhlIHBlcm1pc3Np
b24gc3RhdGUgY2FuIG5vdCBjaGFuZ2UgYWdhaW4gaW4gdGhlIGxpZmV0aW1lIG9mIHRoaXMgcGFn
ZS4KICAgICBpZiAoaXNEZW5pZWQoKSkKLSAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3Io
UG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlBFUk1JU1NJT05fREVOSUVELCBw
ZXJtaXNzaW9uRGVuaWVkRXJyb3JNZXNzYWdlKSk7CisgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRh
bEVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRp
b25FcnJvcjo6UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2Up
KTsKICAgICBlbHNlIGlmIChoYXZlU3VpdGFibGVDYWNoZWRQb3NpdGlvbihub3RpZmllci0+b3B0
aW9ucygpKSkKICAgICAgICAgbm90aWZpZXItPnNldFVzZUNhY2hlZFBvc2l0aW9uKCk7CiAgICAg
ZWxzZSBpZiAobm90aWZpZXItPmhhc1plcm9UaW1lb3V0KCkpCkBAIC0zOTMsNyArMzkyLDcgQEAg
dm9pZCBHZW9sb2NhdGlvbjo6c3RhcnRSZXF1ZXN0KEdlb05vdGlmaWVyKiBub3RpZmllcikKICAg
ICB9IGVsc2UgaWYgKHN0YXJ0VXBkYXRpbmcobm90aWZpZXIpKQogICAgICAgICBub3RpZmllci0+
c3RhcnRUaW1lcklmTmVlZGVkKCk7CiAgICAgZWxzZQotICAgICAgICBub3RpZmllci0+c2V0RmF0
YWxFcnJvcihQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5B
VkFJTEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CisgICAgICAgIG5v
dGlmaWVyLT5zZXRGYXRhbEVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdl
b2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIGZhaWxlZFRvU3Rh
cnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CiB9CiAKIHZvaWQgR2VvbG9jYXRpb246OmZhdGFsRXJy
b3JPY2N1cnJlZChHZW9Ob3RpZmllciogbm90aWZpZXIpCkBAIC00MTEsNyArNDEwLDcgQEAgdm9p
ZCBHZW9sb2NhdGlvbjo6cmVxdWVzdFVzZXNDYWNoZWRQb3NpdGlvbihHZW9Ob3RpZmllciogbm90
aWZpZXIpCiAgICAgLy8gVGhpcyBpcyBjYWxsZWQgYXN5bmNocm9ub3VzbHksIHNvIHRoZSBwZXJt
aXNzaW9ucyBjb3VsZCBoYXZlIGJlZW4gZGVuaWVkCiAgICAgLy8gc2luY2Ugd2UgbGFzdCBjaGVj
a2VkIGluIHN0YXJ0UmVxdWVzdC4KICAgICBpZiAoaXNEZW5pZWQoKSkgewotICAgICAgICBub3Rp
Zmllci0+c2V0RmF0YWxFcnJvcihQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6
UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2UpKTsKKyAgICAg
ICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVh
dGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lv
bkRlbmllZEVycm9yTWVzc2FnZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00NDMs
NyArNDQyLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6bWFrZUNhY2hlZFBvc2l0aW9uQ2FsbGJhY2tz
KCkKICAgICAgICAgICAgIGlmIChub3RpZmllci0+aGFzWmVyb1RpbWVvdXQoKSB8fCBzdGFydFVw
ZGF0aW5nKG5vdGlmaWVyLmdldCgpKSkKICAgICAgICAgICAgICAgICBub3RpZmllci0+c3RhcnRU
aW1lcklmTmVlZGVkKCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbm90aWZp
ZXItPnNldEZhdGFsRXJyb3IoUG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlBP
U0lUSU9OX1VOQVZBSUxBQkxFLCBmYWlsZWRUb1N0YXJ0U2VydmljZUVycm9yTWVzc2FnZSkpOwor
ICAgICAgICAgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKEdlb2xvY2F0aW9uUG9zaXRp
b25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJ
TEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CiAgICAgICAgIH0KICAg
ICB9CiAKQEAgLTQ2NCw3ICs0NjMsNyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpyZXF1ZXN0VGltZWRP
dXQoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogCiBib29sIEdlb2xvY2F0aW9uOjpoYXZlU3VpdGFi
bGVDYWNoZWRQb3NpdGlvbihjb25zdCBQb3NpdGlvbk9wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAg
R2VvcG9zaXRpb24qIGNhY2hlZFBvc2l0aW9uID0gbGFzdFBvc2l0aW9uKCk7CisgICAgYXV0byog
Y2FjaGVkUG9zaXRpb24gPSBsYXN0UG9zaXRpb24oKTsKICAgICBpZiAoIWNhY2hlZFBvc2l0aW9u
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFvcHRpb25zLm1heGltdW1BZ2UpCkBA
IC01MDYsNyArNTA1LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c2V0SXNBbGxvd2VkKGJvb2wgYWxs
b3dlZCkKICAgICB9CiAKICAgICBpZiAoIWlzQWxsb3dlZCgpKSB7Ci0gICAgICAgIGF1dG8gZXJy
b3IgPSBQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UEVSTUlTU0lPTl9ERU5J
RUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2UpOworICAgICAgICBhdXRvIGVycm9yID0g
R2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9y
OjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZSk7CiAgICAg
ICAgIGVycm9yLT5zZXRJc0ZhdGFsKHRydWUpOwogICAgICAgICBoYW5kbGVFcnJvcihlcnJvcik7
CiAgICAgICAgIG1fcmVxdWVzdHNBd2FpdGluZ0NhY2hlZFBvc2l0aW9uLmNsZWFyKCk7CkBAIC01
MTgsMTkgKzUxNywxOSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpzZXRJc0FsbG93ZWQoYm9vbCBhbGxv
d2VkKQogICAgIC8vIElmIHRoZSBzZXJ2aWNlIGhhcyBhIGxhc3QgcG9zaXRpb24sIHVzZSBpdCB0
byBjYWxsIGJhY2sgZm9yIGFsbCByZXF1ZXN0cy4KICAgICAvLyBJZiBhbnkgb2YgdGhlIHJlcXVl
c3RzIGFyZSB3YWl0aW5nIGZvciBwZXJtaXNzaW9uIGZvciBhIGNhY2hlZCBwb3NpdGlvbiwKICAg
ICAvLyB0aGUgcG9zaXRpb24gZnJvbSB0aGUgc2VydmljZSB3aWxsIGJlIGF0IGxlYXN0IGFzIGZy
ZXNoLgotICAgIGlmIChSZWZQdHI8R2VvcG9zaXRpb24+IHBvc2l0aW9uID0gbGFzdFBvc2l0aW9u
KCkpCisgICAgaWYgKFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3NpdGlvbiA9IGxhc3RQ
b3NpdGlvbigpKQogICAgICAgICBtYWtlU3VjY2Vzc0NhbGxiYWNrcygqcG9zaXRpb24pOwogICAg
IGVsc2UKICAgICAgICAgbWFrZUNhY2hlZFBvc2l0aW9uQ2FsbGJhY2tzKCk7CiB9CiAKLXZvaWQg
R2VvbG9jYXRpb246OnNlbmRFcnJvcihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZpZXJzLCBQb3Np
dGlvbkVycm9yJiBlcnJvcikKK3ZvaWQgR2VvbG9jYXRpb246OnNlbmRFcnJvcihHZW9Ob3RpZmll
clZlY3RvciYgbm90aWZpZXJzLCBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImIGVycm9yKQogewog
ICAgIGZvciAoYXV0byYgbm90aWZpZXIgOiBub3RpZmllcnMpCiAgICAgICAgIG5vdGlmaWVyLT5y
dW5FcnJvckNhbGxiYWNrKGVycm9yKTsKIH0KIAotdm9pZCBHZW9sb2NhdGlvbjo6c2VuZFBvc2l0
aW9uKEdlb05vdGlmaWVyVmVjdG9yJiBub3RpZmllcnMsIEdlb3Bvc2l0aW9uJiBwb3NpdGlvbikK
K3ZvaWQgR2VvbG9jYXRpb246OnNlbmRQb3NpdGlvbihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZp
ZXJzLCBHZW9sb2NhdGlvblBvc2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBmb3IgKGF1dG8mIG5v
dGlmaWVyIDogbm90aWZpZXJzKQogICAgICAgICBub3RpZmllci0+cnVuU3VjY2Vzc0NhbGxiYWNr
KCZwb3NpdGlvbik7CkBAIC01NjUsNyArNTY0LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RvcFRp
bWVycygpCiB2b2lkIEdlb2xvY2F0aW9uOjpjYW5jZWxSZXF1ZXN0cyhHZW9Ob3RpZmllclZlY3Rv
ciYgbm90aWZpZXJzKQogewogICAgIGZvciAoYXV0byYgbm90aWZpZXIgOiBub3RpZmllcnMpCi0g
ICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3Np
dGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgZnJhbWVsZXNzRG9jdW1lbnRFcnJvck1l
c3NhZ2UpKTsKKyAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Qb3Np
dGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFW
QUlMQUJMRSwgZnJhbWVsZXNzRG9jdW1lbnRFcnJvck1lc3NhZ2UpKTsKIH0KIAogdm9pZCBHZW9s
b2NhdGlvbjo6Y2FuY2VsQWxsUmVxdWVzdHMoKQpAQCAtNTk1LDcgKzU5NCw3IEBAIHZvaWQgR2Vv
bG9jYXRpb246OmNvcHlUb1NldChjb25zdCBHZW9Ob3RpZmllclZlY3RvciYgc3JjLCBHZW9Ob3Rp
ZmllclNldCYgZGVzdCkKICAgICAgICAgZGVzdC5hZGQobm90aWZpZXIuZ2V0KCkpOwogfQogCi12
b2lkIEdlb2xvY2F0aW9uOjpoYW5kbGVFcnJvcihQb3NpdGlvbkVycm9yJiBlcnJvcikKK3ZvaWQg
R2VvbG9jYXRpb246OmhhbmRsZUVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciYgZXJyb3Ip
CiB7CiAgICAgYXV0byBvbmVTaG90c0NvcHkgPSBjb3B5VG9WZWN0b3IobV9vbmVTaG90cyk7CiAK
QEAgLTY0Myw3ICs2NDIsNyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lvbigp
CiAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5yZXF1ZXN0UGVybWlzc2lv
bigqdGhpcyk7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb246Om1ha2VTdWNjZXNzQ2FsbGJhY2tzKEdl
b3Bvc2l0aW9uJiBwb3NpdGlvbikKK3ZvaWQgR2VvbG9jYXRpb246Om1ha2VTdWNjZXNzQ2FsbGJh
Y2tzKEdlb2xvY2F0aW9uUG9zaXRpb24mIHBvc2l0aW9uKQogewogICAgIEFTU0VSVChsYXN0UG9z
aXRpb24oKSk7CiAgICAgQVNTRVJUKGlzQWxsb3dlZCgpKTsKQEAgLTY3Nyw3ICs2NzYsNyBAQCB2
b2lkIEdlb2xvY2F0aW9uOjpwb3NpdGlvbkNoYW5nZWQoKQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgUmVmUHRyPEdlb3Bvc2l0aW9uPiBwb3NpdGlvbiA9IGxhc3RQb3NpdGlvbigpOwor
ICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3NpdGlvbiA9IGxhc3RQb3NpdGlvbigp
OwogICAgIEFTU0VSVChwb3NpdGlvbik7CiAKICAgICBtYWtlU3VjY2Vzc0NhbGxiYWNrcygqcG9z
aXRpb24pOwpAQCAtNjg2LDExICs2ODUsMTEgQEAgdm9pZCBHZW9sb2NhdGlvbjo6cG9zaXRpb25D
aGFuZ2VkKCkKIHZvaWQgR2VvbG9jYXRpb246OnNldEVycm9yKEdlb2xvY2F0aW9uRXJyb3ImIGVy
cm9yKQogewogICAgIGlmIChtX2lzU3VzcGVuZGVkKSB7Ci0gICAgICAgIG1fZXJyb3JXYWl0aW5n
Rm9yUmVzdW1lID0gY3JlYXRlUG9zaXRpb25FcnJvcihlcnJvcik7CisgICAgICAgIG1fZXJyb3JX
YWl0aW5nRm9yUmVzdW1lID0gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKGVycm9yKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcG9zaXRpb25FcnJvciA9IGNyZWF0
ZVBvc2l0aW9uRXJyb3IoZXJyb3IpOworICAgIGF1dG8gcG9zaXRpb25FcnJvciA9IGNyZWF0ZUdl
b2xvY2F0aW9uUG9zaXRpb25FcnJvcihlcnJvcik7CiAgICAgaGFuZGxlRXJyb3IocG9zaXRpb25F
cnJvcik7CiB9CiAKQEAgLTcyNCw5ICs3MjMsOSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpoYW5kbGVQ
ZW5kaW5nUGVybWlzc2lvbk5vdGlmaWVycygpCiAgICAgICAgICAgICBpZiAoc3RhcnRVcGRhdGlu
Zyhub3RpZmllci5nZXQoKSkpCiAgICAgICAgICAgICAgICAgbm90aWZpZXItPnN0YXJ0VGltZXJJ
Zk5lZWRlZCgpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG5vdGlmaWVyLT5z
ZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQT1NJVElP
Tl9VTkFWQUlMQUJMRSwgZmFpbGVkVG9TdGFydFNlcnZpY2VFcnJvck1lc3NhZ2UpKTsKKyAgICAg
ICAgICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihHZW9sb2NhdGlvblBvc2l0aW9uRXJy
b3I6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxF
LCBmYWlsZWRUb1N0YXJ0U2VydmljZUVycm9yTWVzc2FnZSkpOwogICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQ
b3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVz
c2FnZSkpOworICAgICAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9O
X0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZSkpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCmluZGV4
IDJhMDE5OGVlY2RjNWJkNTM0YWZhNzk5MGMyMTE0ZDAyNTM5YjBjNTguLjQ2MGM5MTIxODRiZDEw
ZWZhZmMwZjAyYzAyMmViZDZkMjc1OGQwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgKQEAgLTMwLDkgKzMwLDkgQEAKIAogI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAi
R2VvcG9zaXRpb24uaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCisjaW5jbHVk
ZSAiR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmgiCiAjaW5jbHVkZSAiUG9zaXRpb25DYWxsYmFj
ay5oIgotI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKICNpbmNsdWRlICJQb3NpdGlvbkVycm9y
Q2FsbGJhY2suaCIKICNpbmNsdWRlICJQb3NpdGlvbk9wdGlvbnMuaCIKICNpbmNsdWRlICJTY3Jp
cHRXcmFwcGFibGUuaCIKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBHZW9sb2NhdGlvbihOYXZpZ2F0b3ImKTsKIAotICAgIEdlb3Bvc2l0aW9uKiBsYXN0
UG9zaXRpb24oKTsKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uKiBsYXN0UG9zaXRpb24oKTsKIAog
ICAgIC8vIEFjdGl2ZURPTU9iamVjdAogICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwpAQCAtMTE1
LDggKzExNSw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIGhhc0xpc3RlbmVycygpIGNvbnN0IHsg
cmV0dXJuICFtX29uZVNob3RzLmlzRW1wdHkoKSB8fCAhbV93YXRjaGVycy5pc0VtcHR5KCk7IH0K
IAotICAgIHZvaWQgc2VuZEVycm9yKEdlb05vdGlmaWVyVmVjdG9yJiwgUG9zaXRpb25FcnJvciYp
OwotICAgIHZvaWQgc2VuZFBvc2l0aW9uKEdlb05vdGlmaWVyVmVjdG9yJiwgR2VvcG9zaXRpb24m
KTsKKyAgICB2b2lkIHNlbmRFcnJvcihHZW9Ob3RpZmllclZlY3RvciYsIEdlb2xvY2F0aW9uUG9z
aXRpb25FcnJvciYpOworICAgIHZvaWQgc2VuZFBvc2l0aW9uKEdlb05vdGlmaWVyVmVjdG9yJiwg
R2VvbG9jYXRpb25Qb3NpdGlvbiYpOwogCiAgICAgc3RhdGljIHZvaWQgZXh0cmFjdE5vdGlmaWVy
c1dpdGhDYWNoZWRQb3NpdGlvbihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZpZXJzLCBHZW9Ob3Rp
ZmllclZlY3RvciogY2FjaGVkKTsKICAgICBzdGF0aWMgdm9pZCBjb3B5VG9TZXQoY29uc3QgR2Vv
Tm90aWZpZXJWZWN0b3ImLCBHZW9Ob3RpZmllclNldCYpOwpAQCAtMTI5LDggKzEyOSw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBjYW5jZWxSZXF1ZXN0cyhHZW9Ob3RpZmllclZlY3RvciYpOwogICAg
IHZvaWQgY2FuY2VsQWxsUmVxdWVzdHMoKTsKIAotICAgIHZvaWQgbWFrZVN1Y2Nlc3NDYWxsYmFj
a3MoR2VvcG9zaXRpb24mKTsKLSAgICB2b2lkIGhhbmRsZUVycm9yKFBvc2l0aW9uRXJyb3ImKTsK
KyAgICB2b2lkIG1ha2VTdWNjZXNzQ2FsbGJhY2tzKEdlb2xvY2F0aW9uUG9zaXRpb24mKTsKKyAg
ICB2b2lkIGhhbmRsZUVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciYpOwogCiAgICAgdm9p
ZCByZXF1ZXN0UGVybWlzc2lvbigpOwogCkBAIC0xNTMsMTMgKzE1MywxMyBAQCBwcml2YXRlOgog
ICAgIEdlb05vdGlmaWVyU2V0IG1fb25lU2hvdHM7CiAgICAgV2F0Y2hlcnMgbV93YXRjaGVyczsK
ICAgICBHZW9Ob3RpZmllclNldCBtX3BlbmRpbmdGb3JQZXJtaXNzaW9uTm90aWZpZXJzOwotICAg
IFJlZlB0cjxHZW9wb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247CisgICAgUmVmUHRyPEdlb2xvY2F0
aW9uUG9zaXRpb24+IG1fbGFzdFBvc2l0aW9uOwogCiAgICAgZW51bSB7IFVua25vd24sIEluUHJv
Z3Jlc3MsIFllcywgTm8gfSBtX2FsbG93R2VvbG9jYXRpb24geyBVbmtub3duIH07CiAgICAgYm9v
bCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVzZXRPblJlc3VtZSB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2hhc0NoYW5nZWRQb3NpdGlvbiB7IGZhbHNlIH07Ci0gICAgUmVm
UHRyPFBvc2l0aW9uRXJyb3I+IG1fZXJyb3JXYWl0aW5nRm9yUmVzdW1lOworICAgIFJlZlB0cjxH
ZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I+IG1fZXJyb3JXYWl0aW5nRm9yUmVzdW1lOwogICAgIFRp
bWVyIG1fcmVzdW1lVGltZXI7CiAgICAgR2VvTm90aWZpZXJTZXQgbV9yZXF1ZXN0c0F3YWl0aW5n
Q2FjaGVkUG9zaXRpb247CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmlkbAppbmRleCBmNTczZDE2ZDY5ODBjODc2ZjU3YmYwOGExZjVj
ZDEzNjc2OGU5N2EzLi5lZGFkZDNhNWUyMTk5ZTkzZTFjOTE4YWU3OWY2MDI4OTA1ZjljNDFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmlkbApAQCAtMjUsNyArMjUsNiBAQAogCiAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9nZW9sb2Nh
dGlvbi1BUEkvI2dlb2xvY2F0aW9uX2ludGVyZmFjZQogWwotICAgIE5vSW50ZXJmYWNlT2JqZWN0
LAogICAgIENvbmRpdGlvbmFsPUdFT0xPQ0FUSU9OLCAKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxl
PVJlYWNoYWJsZUZyb21OYXZpZ2F0b3IsCiBdIGludGVyZmFjZSBHZW9sb2NhdGlvbiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xp
ZW50LmgKaW5kZXggZTdlMGU3NmQ0MGZjNTVkMmZjNGI0ZWY1MjdjMzI0OTczNDFlMzkzOS4uMjk3
MDNmYmI3YmEzYjhiNjMyNzk5ZDdjOTI3ZDFmMWUyNWQ2YmMwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25DbGllbnQuaApAQCAt
MzAsNyArMzAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHZW9sb2NhdGlvbjsK
LWNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YTsKIGNsYXNzIFBhZ2U7CiAKIGNsYXNzIEdlb2xvY2F0aW9uQ2xpZW50IHsKQEAgLTQ0LDcgKzQ0
LDcgQEAgcHVibGljOgogICAgIC8vIFdlIHNob3VsZCB1cGRhdGUgV2ViS2l0IHRvIHJlZmxlY3Qg
dGhpcyBpZiBhbmQgd2hlbiB0aGUgVjIgc3BlY2lmaWNhdGlvbgogICAgIC8vIGlzIHB1Ymxpc2hl
ZC4KICAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpID0gMDsKLSAg
ICB2aXJ0dWFsIE9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+IGxhc3RQb3NpdGlvbigpID0g
MDsKKyAgICB2aXJ0dWFsIE9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBsYXN0UG9z
aXRpb24oKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oR2VvbG9j
YXRpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KEdl
b2xvY2F0aW9uJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IGNkODA3MGIyMDdk
YjhhMzQ0MDI2Y2ZmNjEwNWI4NWVlMTliYzUyNGMuLmM2YTI4MmZjZTkzNzA1YmQ3NjExMGQ0YTE3
NmNjZTVmNDNkNDNlMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKQEAgLTMwLDcgKzMwLDcg
QEAKIAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRp
b25FcnJvci5oIgotI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKKyNpbmNsdWRlICJH
ZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk5
LDcgKzk5LDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmNhbmNlbFBlcm1pc3Npb25S
ZXF1ZXN0KEdlb2xvY2F0aW9uJiBnZW9sb2NhdGlvbikKICAgICBtX2NsaWVudC5jYW5jZWxQZXJt
aXNzaW9uUmVxdWVzdChnZW9sb2NhdGlvbik7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb25Db250cm9s
bGVyOjpwb3NpdGlvbkNoYW5nZWQoY29uc3QgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4m
IHBvc2l0aW9uKQordm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OnBvc2l0aW9uQ2hhbmdlZChj
b25zdCBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4mIHBvc2l0aW9uKQogewogICAg
IG1fbGFzdFBvc2l0aW9uID0gcG9zaXRpb247CiAgICAgVmVjdG9yPFJlZjxHZW9sb2NhdGlvbj4+
IG9ic2VydmVyc1ZlY3RvcjsKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIEdlb2xvY2F0aW9uQ29u
dHJvbGxlcjo6ZXJyb3JPY2N1cnJlZChHZW9sb2NhdGlvbkVycm9yJiBlcnJvcikKICAgICAgICAg
b2JzZXJ2ZXItPnNldEVycm9yKGVycm9yKTsKIH0KIAotT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3Np
dGlvbj4gR2VvbG9jYXRpb25Db250cm9sbGVyOjpsYXN0UG9zaXRpb24oKQorT3B0aW9uYWw8R2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGE+IEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6bGFzdFBvc2l0aW9u
KCkKIHsKICAgICBpZiAobV9sYXN0UG9zaXRpb24pCiAgICAgICAgIHJldHVybiBtX2xhc3RQb3Np
dGlvbi52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmgKaW5kZXggMGM3MDQ5YmExMDEzYzI0MmM5
MjUyYzYxNTJiZmUzNDgxYWExNjU2Ni4uNTQ5MzRkNzlhMDY5ZWRlNWI0YTk2NzJhMTFlZjUxNWQ3
NDM3NzdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9H
ZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgR2VvbG9jYXRpb25DbGllbnQ7CiBjbGFzcyBHZW9sb2NhdGlv
bkVycm9yOwotY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9z
aXRpb25EYXRhOwogCiBjbGFzcyBHZW9sb2NhdGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxl
bWVudDxQYWdlPiwgcHJpdmF0ZSBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNTMsMTAgKzUzLDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlcXVlc3RQZXJtaXNzaW9uKEdlb2xvY2F0aW9uJik7CiAgICAgdm9pZCBjYW5jZWxQZXJt
aXNzaW9uUmVxdWVzdChHZW9sb2NhdGlvbiYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBw
b3NpdGlvbkNoYW5nZWQoY29uc3QgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4mKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc2l0aW9uQ2hhbmdlZChjb25zdCBPcHRpb25hbDxHZW9s
b2NhdGlvblBvc2l0aW9uRGF0YT4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVycm9yT2Nj
dXJyZWQoR2VvbG9jYXRpb25FcnJvciYpOwogCi0gICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3Np
dGlvbj4gbGFzdFBvc2l0aW9uKCk7CisgICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRh
dGE+IGxhc3RQb3NpdGlvbigpOwogCiAgICAgR2VvbG9jYXRpb25DbGllbnQmIGNsaWVudCgpIHsg
cmV0dXJuIG1fY2xpZW50OyB9CiAKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgYWN0aXZpdHlTdGF0ZURpZENoYW5nZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4g
b2xkQWN0aXZpdHlTdGF0ZSwgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU6OkZsYWc+IG5ld0FjdGl2
aXR5U3RhdGUpIG92ZXJyaWRlOwogCi0gICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4g
bV9sYXN0UG9zaXRpb247CisgICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IG1f
bGFzdFBvc2l0aW9uOwogCiAgICAgdHlwZWRlZiBIYXNoU2V0PFJlZjxHZW9sb2NhdGlvbj4+IE9i
c2VydmVyc1NldDsKICAgICAvLyBBbGwgb2JzZXJ2ZXJzOyBib3RoIHRob3NlIHJlcXVlc3Rpbmcg
aGlnaCBhY2N1cmFjeSBhbmQgdGhvc2Ugbm90LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTJlYjBkY2EwMzFmNzA1YWE3MzRjOGIwZTlhYjBhMWFjMWEwMjliNAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b25Db29yZGluYXRlcy5jcHAKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
Ikdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHZW9s
b2NhdGlvbkNvb3JkaW5hdGVzOjpHZW9sb2NhdGlvbkNvb3JkaW5hdGVzKEdlb2xvY2F0aW9uUG9z
aXRpb25EYXRhJiYgcG9zaXRpb24pCisgICAgOiBtX3Bvc2l0aW9uKFdURk1vdmUocG9zaXRpb24p
KQoreworICAgIEFTU0VSVChtX3Bvc2l0aW9uLmlzVmFsaWQoKSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc1MWNhYzQ3NDIx
N2ExNTc1YTY3YWFjZDllOTQ0NTQ3NDc0ZGQ3OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5oCkBAIC0w
LDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb25EYXRh
LmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
R2VvbG9jYXRpb25Db29yZGluYXRlcyA6IHB1YmxpYyBSZWZDb3VudGVkPEdlb2xvY2F0aW9uQ29v
cmRpbmF0ZXM+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEdlb2xvY2F0aW9uQ29vcmRpbmF0
ZXM+IGNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmIHBvc2l0aW9uKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR2VvbG9jYXRpb25Db29yZGluYXRlcyhXVEZNb3Zl
KHBvc2l0aW9uKSkpOworICAgIH0KKworICAgIFJlZjxHZW9sb2NhdGlvbkNvb3JkaW5hdGVzPiBp
c29sYXRlZENvcHkoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEdlb2xvY2F0aW9uQ29v
cmRpbmF0ZXM6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRGF0YShtX3Bvc2l0aW9uKSk7Cisg
ICAgfQorCisgICAgZG91YmxlIGxhdGl0dWRlKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5s
YXRpdHVkZTsgfQorICAgIGRvdWJsZSBsb25naXR1ZGUoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0
aW9uLmxvbmdpdHVkZTsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4gYWx0aXR1ZGUoKSBjb25zdCB7
IHJldHVybiBtX3Bvc2l0aW9uLmFsdGl0dWRlOyB9CisgICAgZG91YmxlIGFjY3VyYWN5KCkgY29u
c3QgeyByZXR1cm4gbV9wb3NpdGlvbi5hY2N1cmFjeTsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4g
YWx0aXR1ZGVBY2N1cmFjeSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24uYWx0aXR1ZGVBY2N1
cmFjeTsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4gaGVhZGluZygpIGNvbnN0IHsgcmV0dXJuIG1f
cG9zaXRpb24uaGVhZGluZzsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4gc3BlZWQoKSBjb25zdCB7
IHJldHVybiBtX3Bvc2l0aW9uLnNwZWVkOyB9CisgICAgT3B0aW9uYWw8ZG91YmxlPiBmbG9vckxl
dmVsKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5mbG9vckxldmVsOyB9CisgICAgCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMoR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEmJik7CisKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBtX3Bvc2l0aW9uOwor
fTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZmMzk1NjRjNDM2YTUxZmRiZTUwZmJiZjQ0Nzg5YTYyN2I0NTBjNzAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uQ29vcmRpbmF0ZXMuaWRsCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDktMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9R0VP
TE9DQVRJT04sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgR2Vv
bG9jYXRpb25Db29yZGluYXRlcyB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3Rl
ZCBkb3VibGUgbGF0aXR1ZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBk
b3VibGUgbG9uZ2l0dWRlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91
YmxlPyBhbHRpdHVkZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZSBhY2N1cmFjeTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8g
YWx0aXR1ZGVBY2N1cmFjeTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZT8gaGVhZGluZzsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZT8gc3BlZWQ7CisgICAgCisgICAgLy8gTm9uIHN0YW5kYXJkLgorICAgIFtFbmFibGVkQnlTZXR0
aW5nPUdlb2xvY2F0aW9uRmxvb3JMZXZlbF0gcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3Rl
ZCBkb3VibGU/IGZsb29yTGV2ZWw7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaAppbmRleCBkNjlkYjU0M2Y4
ZTBmNmRlNzQ1ZGQ2MzAxNThlMWQxMWQ3MTYyYmU0Li5iOTEwMDA1MjhmYjViYzAwYmEwNDFlYjJm
NjYxYWI4MGU5ZDYzN2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMCwxMDggKzEwLDUyIEBACiAgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCiAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8K
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxjbWF0aD4KLSNpbmNsdWRlIDx3dGYvT3B0aW9u
YWwuaD4KLSNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSAiRE9NVGltZVN0YW1wLmgiCisj
aW5jbHVkZSAiR2VvbG9jYXRpb25Db29yZGluYXRlcy5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+Ci0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotT0JKQ19DTEFTUyBDTExvY2F0aW9u
OwotI2VuZGlmCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbiB7CitjbGFzcyBHZW9sb2NhdGlv
blBvc2l0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8R2VvbG9jYXRpb25Qb3NpdGlvbj4gewogcHVi
bGljOgotICAgIEdlb2xvY2F0aW9uUG9zaXRpb24oKSA9IGRlZmF1bHQ7Ci0KLSAgICBHZW9sb2Nh
dGlvblBvc2l0aW9uKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxv
bmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQotICAgICAgICA6IHRpbWVzdGFtcCh0aW1lc3RhbXAp
Ci0gICAgICAgICwgbGF0aXR1ZGUobGF0aXR1ZGUpCi0gICAgICAgICwgbG9uZ2l0dWRlKGxvbmdp
dHVkZSkKLSAgICAgICAgLCBhY2N1cmFjeShhY2N1cmFjeSkKKyAgICBzdGF0aWMgUmVmPEdlb2xv
Y2F0aW9uUG9zaXRpb24+IGNyZWF0ZShSZWY8R2VvbG9jYXRpb25Db29yZGluYXRlcz4mJiBjb29y
ZGluYXRlcywgRE9NVGltZVN0YW1wIHRpbWVzdGFtcCkKICAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEdlb2xvY2F0aW9uUG9zaXRpb24oV1RGTW92ZShjb29yZGluYXRlcyksIHRp
bWVzdGFtcCkpOwogICAgIH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgV0VCQ09S
RV9FWFBPUlQgZXhwbGljaXQgR2VvbG9jYXRpb25Qb3NpdGlvbihDTExvY2F0aW9uKik7Ci0jZW5k
aWYKLQotICAgIGRvdWJsZSB0aW1lc3RhbXAgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46
OnF1aWV0X05hTigpIH07Ci0KLSAgICBkb3VibGUgbGF0aXR1ZGUgeyBzdGQ6Om51bWVyaWNfbGlt
aXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07Ci0gICAgZG91YmxlIGxvbmdpdHVkZSB7IHN0ZDo6
bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsKLSAgICBkb3VibGUgYWNjdXJh
Y3kgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07Ci0KLSAgICBP
cHRpb25hbDxkb3VibGU+IGFsdGl0dWRlOwotICAgIE9wdGlvbmFsPGRvdWJsZT4gYWx0aXR1ZGVB
Y2N1cmFjeTsKLSAgICBPcHRpb25hbDxkb3VibGU+IGhlYWRpbmc7Ci0gICAgT3B0aW9uYWw8ZG91
YmxlPiBzcGVlZDsKLSAgICBPcHRpb25hbDxkb3VibGU+IGZsb29yTGV2ZWw7CisgICAgUmVmPEdl
b2xvY2F0aW9uUG9zaXRpb24+IGlzb2xhdGVkQ29weSgpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gY3JlYXRlKG1fY29vcmRpbmF0ZXMtPmlzb2xhdGVkQ29weSgpLCBtX3RpbWVzdGFtcCk7
CisgICAgfQogCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgRE9NVGltZVN0YW1wIHRp
bWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgY29uc3QgR2VvbG9j
YXRpb25Db29yZGluYXRlcyYgY29vcmRzKCkgY29uc3QgeyByZXR1cm4gbV9jb29yZGluYXRlcy5n
ZXQoKTsgfQorICAgIAorcHJpdmF0ZToKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uKFJlZjxHZW9s
b2NhdGlvbkNvb3JkaW5hdGVzPiYmIGNvb3JkaW5hdGVzLCBET01UaW1lU3RhbXAgdGltZXN0YW1w
KQorICAgICAgICA6IG1fY29vcmRpbmF0ZXMoV1RGTW92ZShjb29yZGluYXRlcykpCisgICAgICAg
ICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQorICAgIHsKKyAgICB9CiAKLSAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBHZW9sb2NhdGlvblBv
c2l0aW9uJik7CisgICAgUmVmPEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXM+IG1fY29vcmRpbmF0ZXM7
CisgICAgRE9NVGltZVN0YW1wIG1fdGltZXN0YW1wOwogfTsKLQotdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4KLXZvaWQgR2VvbG9jYXRpb25Qb3NpdGlvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Ci17Ci0gICAgZW5jb2RlciA8PCB0aW1lc3RhbXA7Ci0gICAgZW5jb2RlciA8PCBsYXRp
dHVkZTsKLSAgICBlbmNvZGVyIDw8IGxvbmdpdHVkZTsKLSAgICBlbmNvZGVyIDw8IGFjY3VyYWN5
OwotICAgIGVuY29kZXIgPDwgYWx0aXR1ZGU7Ci0gICAgZW5jb2RlciA8PCBhbHRpdHVkZUFjY3Vy
YWN5OwotICAgIGVuY29kZXIgPDwgaGVhZGluZzsKLSAgICBlbmNvZGVyIDw8IHNwZWVkOwotICAg
IGVuY29kZXIgPDwgZmxvb3JMZXZlbDsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLWJv
b2wgR2VvbG9jYXRpb25Qb3NpdGlvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEdlb2xvY2F0
aW9uUG9zaXRpb24mIHBvc2l0aW9uKQotewotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRp
b24udGltZXN0YW1wKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocG9zaXRpb24ubGF0aXR1ZGUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5sb25naXR1ZGUpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5hY2N1cmFjeSkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmFsdGl0dWRl
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRp
b24uYWx0aXR1ZGVBY2N1cmFjeSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBvc2l0aW9uLmhlYWRpbmcpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5zcGVlZCkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmZsb29yTGV2ZWwpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotaW5saW5lIGJvb2wg
R2VvbG9jYXRpb25Qb3NpdGlvbjo6aXNWYWxpZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICFzdGQ6
OmlzbmFuKHRpbWVzdGFtcCkgJiYgIXN0ZDo6aXNuYW4obGF0aXR1ZGUpICYmICFzdGQ6OmlzbmFu
KGxvbmdpdHVkZSkgJiYgIXN0ZDo6aXNuYW4oYWNjdXJhY3kpOwotfQotCisgICAgCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzJmOGQ5ZmE4
ZTFkM2NhYjk3ZDQ1MDk0OGYzZjE0MTU5NjdkOWE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbApAQCAt
MCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworWworICAgIENvbmRpdGlvbmFsPUdFT0xPQ0FUSU9OLAorICAgIEltcGxlbWVudGF0
aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIEdlb2xvY2F0aW9uUG9zaXRpb24geworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzIGNvb3JkczsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NVGltZVN0YW1wIHRpbWVzdGFtcDsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRp
b25EYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGMyYjRlMzQ1YzM5ZDViMDhjOWUxNzU2NDc3NThhMjZhMWFk
MDNlMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCitPQkpDX0NMQVNTIENMTG9jYXRpb247
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YSB7CitwdWJsaWM6CisgICAgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoKSA9IGRlZmF1
bHQ7CisKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YShkb3VibGUgdGltZXN0YW1wLCBkb3Vi
bGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKKyAgICAgICAg
OiB0aW1lc3RhbXAodGltZXN0YW1wKQorICAgICAgICAsIGxhdGl0dWRlKGxhdGl0dWRlKQorICAg
ICAgICAsIGxvbmdpdHVkZShsb25naXR1ZGUpCisgICAgICAgICwgYWNjdXJhY3koYWNjdXJhY3kp
CisgICAgeworICAgIH0KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgV0VCQ09SRV9F
WFBPUlQgZXhwbGljaXQgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoQ0xMb2NhdGlvbiopOworI2Vu
ZGlmCisKKyAgICBkb3VibGUgdGltZXN0YW1wIHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKSB9OworCisgICAgZG91YmxlIGxhdGl0dWRlIHsgc3RkOjpudW1lcmljX2xp
bWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OworICAgIGRvdWJsZSBsb25naXR1ZGUgeyBzdGQ6
Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07CisgICAgZG91YmxlIGFjY3Vy
YWN5IHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OworCisgICAg
T3B0aW9uYWw8ZG91YmxlPiBhbHRpdHVkZTsKKyAgICBPcHRpb25hbDxkb3VibGU+IGFsdGl0dWRl
QWNjdXJhY3k7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBoZWFkaW5nOworICAgIE9wdGlvbmFsPGRv
dWJsZT4gc3BlZWQ7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBmbG9vckxldmVsOworCisgICAgYm9v
bCBpc1ZhbGlkKCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IGJvb2wgZGVjb2RlKERlY29kZXImLCBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYpOworfTsKKwor
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdGltZXN0YW1w
OworICAgIGVuY29kZXIgPDwgbGF0aXR1ZGU7CisgICAgZW5jb2RlciA8PCBsb25naXR1ZGU7Cisg
ICAgZW5jb2RlciA8PCBhY2N1cmFjeTsKKyAgICBlbmNvZGVyIDw8IGFsdGl0dWRlOworICAgIGVu
Y29kZXIgPDwgYWx0aXR1ZGVBY2N1cmFjeTsKKyAgICBlbmNvZGVyIDw8IGhlYWRpbmc7CisgICAg
ZW5jb2RlciA8PCBzcGVlZDsKKyAgICBlbmNvZGVyIDw8IGZsb29yTGV2ZWw7Cit9CisKK3RlbXBs
YXRlPGNsYXNzIERlY29kZXI+Citib29sIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmIHBvc2l0aW9uKQorewor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24udGltZXN0YW1wKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24ubGF0aXR1ZGUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5s
b25naXR1ZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwb3NpdGlvbi5hY2N1cmFjeSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBvc2l0aW9uLmFsdGl0dWRlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24uYWx0aXR1ZGVBY2N1cmFjeSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmhlYWRp
bmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3Np
dGlvbi5zcGVlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBvc2l0aW9uLmZsb29yTGV2ZWwpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworaW5saW5lIGJvb2wgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6Omlz
VmFsaWQoKSBjb25zdAoreworICAgIHJldHVybiAhc3RkOjppc25hbih0aW1lc3RhbXApICYmICFz
dGQ6OmlzbmFuKGxhdGl0dWRlKSAmJiAhc3RkOjppc25hbihsb25naXR1ZGUpICYmICFzdGQ6Omlz
bmFuKGFjY3VyYWN5KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJy
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3Np
dGlvbkVycm9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE0NGUxZTI3YjFmMWUzNmQxMjFmYjBjNzQ3OWMzNzQx
NGYwN2MxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRp
b25FcnJvciA6IHB1YmxpYyBSZWZDb3VudGVkPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gewor
cHVibGljOgorICAgIGVudW0gRXJyb3JDb2RlIHsKKyAgICAgICAgUEVSTUlTU0lPTl9ERU5JRUQg
PSAxLAorICAgICAgICBQT1NJVElPTl9VTkFWQUlMQUJMRSA9IDIsCisgICAgICAgIFRJTUVPVVQg
PSAzCisgICAgfTsKKyAgICAKKyAgICBzdGF0aWMgUmVmPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJv
cj4gY3JlYXRlKEVycm9yQ29kZSBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKGNvZGUsIG1lc3NhZ2UpKTsg
fQorCisgICAgRXJyb3JDb2RlIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KKyAgICBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KKyAgICB2
b2lkIHNldElzRmF0YWwoYm9vbCBpc0ZhdGFsKSB7IG1faXNGYXRhbCA9IGlzRmF0YWw7IH0KKyAg
ICBib29sIGlzRmF0YWwoKSBjb25zdCB7IHJldHVybiBtX2lzRmF0YWw7IH0KKyAgICAKK3ByaXZh
dGU6CisgICAgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKEVycm9yQ29kZSBjb2RlLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCisgICAgICAgIDogbV9jb2RlKGNvZGUpCisgICAgICAgICwgbV9tZXNz
YWdlKG1lc3NhZ2UpCisgICAgICAgICwgbV9pc0ZhdGFsKGZhbHNlKQorICAgIHsKKyAgICB9Cisg
ICAgCisgICAgRXJyb3JDb2RlIG1fY29kZTsKKyAgICBTdHJpbmcgbV9tZXNzYWdlOworICAgIC8v
IFdoZXRoZXIgdGhlIGVycm9yIGlzIGZhdGFsLCBzdWNoIHRoYXQgbm8gcmVxdWVzdCBjYW4gZXZl
ciBvYnRhaW4gYSBnb29kCisgICAgLy8gcG9zaXRpb24gZml4IGluIHRoZSBmdXR1cmUuCisgICAg
Ym9vbCBtX2lzRmF0YWw7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0
aW9uRXJyb3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvblBvc2l0aW9uRXJyb3IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0YTVjMDc0ZTk2MjcxZjg2OGU1N2Uy
MzQ0MWYwM2JhNGYwOTc3ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwKQEAgLTAsMCArMSwz
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
K1sKKyAgICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tz
VlRhYmxlCitdIGludGVyZmFjZSBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IgeworICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IFBFUk1JU1NJT05fREVOSUVEID0gMTsKKyAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBQT1NJVElPTl9VTkFWQUlMQUJMRSA9IDI7CisgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgVElNRU9VVCA9IDM7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNv
ZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXNzYWdlOworfTsKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTMzMGRlNThlMmE2M2E5ZDZiM2UzMjJjNzI1OWJh
MGFmNTk5ODE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaAorKysgL2Rl
di9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDb29yZGluYXRlcy5oIgot
I2luY2x1ZGUgIkRPTVRpbWVTdGFtcC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
Y2xhc3MgR2VvcG9zaXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxHZW9wb3NpdGlvbj4gewotcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8R2VvcG9zaXRpb24+IGNyZWF0ZShSZWY8Q29vcmRpbmF0ZXM+
JiYgY29vcmRpbmF0ZXMsIERPTVRpbWVTdGFtcCB0aW1lc3RhbXApCi0gICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBHZW9wb3NpdGlvbihXVEZNb3ZlKGNvb3JkaW5hdGVzKSwgdGlt
ZXN0YW1wKSk7Ci0gICAgfQotCi0gICAgUmVmPEdlb3Bvc2l0aW9uPiBpc29sYXRlZENvcHkoKSBj
b25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZShtX2Nvb3JkaW5hdGVzLT5pc29sYXRl
ZENvcHkoKSwgbV90aW1lc3RhbXApOwotICAgIH0KLQotICAgIERPTVRpbWVTdGFtcCB0aW1lc3Rh
bXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQotICAgIGNvbnN0IENvb3JkaW5hdGVz
JiBjb29yZHMoKSBjb25zdCB7IHJldHVybiBtX2Nvb3JkaW5hdGVzLmdldCgpOyB9Ci0gICAgCi1w
cml2YXRlOgotICAgIEdlb3Bvc2l0aW9uKFJlZjxDb29yZGluYXRlcz4mJiBjb29yZGluYXRlcywg
RE9NVGltZVN0YW1wIHRpbWVzdGFtcCkKLSAgICAgICAgOiBtX2Nvb3JkaW5hdGVzKFdURk1vdmUo
Y29vcmRpbmF0ZXMpKQotICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKLSAgICB7Ci0g
ICAgfQotCi0gICAgUmVmPENvb3JkaW5hdGVzPiBtX2Nvb3JkaW5hdGVzOwotICAgIERPTVRpbWVT
dGFtcCBtX3RpbWVzdGFtcDsKLX07Ci0gICAgCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bvc2l0aW9uLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZjhjYjA5YjJmYmY5NDE2NDUzNGUxODIwNDI5
OTA0YmJiNTlkMmRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCisr
KyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotCi1bCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAgQ29uZGl0
aW9uYWw9R0VPTE9DQVRJT04sCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRl
cmZhY2UgR2VvcG9zaXRpb24gewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDb29yZGluYXRlcyBj
b29yZHM7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVRpbWVTdGFtcCB0aW1lc3RhbXA7Ci19
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlv
bkNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9u
Q2FsbGJhY2suaAppbmRleCA0YjU3MzgyNDA4OTJkOTEyNWJmYWExMzYyODY1ZDg0MTM5ZjY2NWRj
Li5hMjc5NTM5OTFiNDljZDA5MzQwZTljZWEyMWQzMDBkNmZjMWMxODNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaApA
QCAtMzEsMTMgKzMxLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR2VvcG9z
aXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOwogCiBjbGFzcyBQb3NpdGlvbkNhbGxi
YWNrIDogcHVibGljIFJlZkNvdW50ZWQ8UG9zaXRpb25DYWxsYmFjaz4sIHB1YmxpYyBBY3RpdmVE
T01DYWxsYmFjayB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQWN0aXZlRE9NQ2FsbGJhY2s6OkFjdGl2
ZURPTUNhbGxiYWNrOwogCi0gICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVF
dmVudChHZW9wb3NpdGlvbiopID0gMDsKKyAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+
IGhhbmRsZUV2ZW50KEdlb2xvY2F0aW9uUG9zaXRpb24qKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbAppbmRleCBhZDY2MWY1ZWZjMjYyMTYyYWNkNWE4YWY0
M2E4Yzc0MGY4YWJlYTUyLi5kNWNlODU2MzcwNzQ0NzgyMzZkMDhmYmE0OTFkZDBiZTZmYzg4OTEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9u
Q2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9z
aXRpb25DYWxsYmFjay5pZGwKQEAgLTI0LDQgKzI0LDQgQEAKIAogWwogICAgIENvbmRpdGlvbmFs
PUdFT0xPQ0FUSU9OLAotXSBjYWxsYmFjayBQb3NpdGlvbkNhbGxiYWNrID0gdm9pZCAoR2VvcG9z
aXRpb24/IHBvc2l0aW9uKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4K
K10gY2FsbGJhY2sgUG9zaXRpb25DYWxsYmFjayA9IHZvaWQgKEdlb2xvY2F0aW9uUG9zaXRpb24/
IHBvc2l0aW9uKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2NDIyZWY5YjZkYjNmMWE5MGY4YTQwNDE4Zjli
NTk2M2NkMDNlNjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotICAgIAotY2xhc3MgUG9zaXRpb25FcnJvciA6IHB1YmxpYyBSZWZDb3VudGVkPFBvc2l0
aW9uRXJyb3I+IHsKLXB1YmxpYzoKLSAgICBlbnVtIEVycm9yQ29kZSB7Ci0gICAgICAgIFBFUk1J
U1NJT05fREVOSUVEID0gMSwKLSAgICAgICAgUE9TSVRJT05fVU5BVkFJTEFCTEUgPSAyLAotICAg
ICAgICBUSU1FT1VUID0gMwotICAgIH07Ci0gICAgCi0gICAgc3RhdGljIFJlZjxQb3NpdGlvbkVy
cm9yPiBjcmVhdGUoRXJyb3JDb2RlIGNvZGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBQb3NpdGlvbkVycm9yKGNvZGUsIG1lc3NhZ2UpKTsgfQotCi0gICAg
RXJyb3JDb2RlIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KLSAgICBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KLSAgICB2b2lkIHNldElz
RmF0YWwoYm9vbCBpc0ZhdGFsKSB7IG1faXNGYXRhbCA9IGlzRmF0YWw7IH0KLSAgICBib29sIGlz
RmF0YWwoKSBjb25zdCB7IHJldHVybiBtX2lzRmF0YWw7IH0KLSAgICAKLXByaXZhdGU6Ci0gICAg
UG9zaXRpb25FcnJvcihFcnJvckNvZGUgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSAKLSAg
ICAgICAgOiBtX2NvZGUoY29kZSkKLSAgICAgICAgLCBtX21lc3NhZ2UobWVzc2FnZSkKLSAgICAg
ICAgLCBtX2lzRmF0YWwoZmFsc2UpCi0gICAgewotICAgIH0KLSAgICAKLSAgICBFcnJvckNvZGUg
bV9jb2RlOwotICAgIFN0cmluZyBtX21lc3NhZ2U7Ci0gICAgLy8gV2hldGhlciB0aGUgZXJyb3Ig
aXMgZmF0YWwsIHN1Y2ggdGhhdCBubyByZXF1ZXN0IGNhbiBldmVyIG9idGFpbiBhIGdvb2QKLSAg
ICAvLyBwb3NpdGlvbiBmaXggaW4gdGhlIGZ1dHVyZS4KLSAgICBib29sIG1faXNGYXRhbDsKLX07
Ci0gICAgCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNWMxZjNhMjcyYTY3ZjQ2YWE2ODJjYmU4YmExYmY5ZTdhOTBmNGNlMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsCisrKyAvZGV2L251bGwKQEAg
LTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotCi1bCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJ
T04sCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRlcmZhY2UgUG9zaXRpb25F
cnJvciB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNvZGU7Ci0gICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXNzYWdlOwotCi0gICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgUEVSTUlTU0lPTl9ERU5JRUQgPSAxOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IFBPU0lUSU9OX1VOQVZBSUxBQkxFID0gMjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBUSU1F
T1VUID0gMzsKLX07Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5oCmluZGV4IDQ4MTZiMWRiMWQzMmU5NzJm
OTcwODEyYjg1YzVhNDc3YjE4ZDU0MjUuLmE3NWUwNzg4ZjU0Nzg5YjBkY2JlOTAwYjliNTVjNmEw
ZDEyZGFlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
UG9zaXRpb25FcnJvckNhbGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaApAQCAtMzEsMTMgKzMxLDEzIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUG9zaXRpb25FcnJvcjsKK2NsYXNzIEdlb2xvY2F0
aW9uUG9zaXRpb25FcnJvcjsKIAogY2xhc3MgUG9zaXRpb25FcnJvckNhbGxiYWNrIDogcHVibGlj
IFJlZkNvdW50ZWQ8UG9zaXRpb25FcnJvckNhbGxiYWNrPiwgcHVibGljIEFjdGl2ZURPTUNhbGxi
YWNrIHsKIHB1YmxpYzoKICAgICB1c2luZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZlRE9NQ2Fs
bGJhY2s7CiAKLSAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KFBv
c2l0aW9uRXJyb3ImKSA9IDA7CisgICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5k
bGVFdmVudChHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwKaW5kZXggNTdiNDkzY2NiZjU0NmFk
YzAyNDE0NWUzMWJkODRlNDM1OGJmYzQ3Mi4uZmEwOTgwZTM2MDZhOGY4ZjVmYWY0YmUxZGM5Mzg5
MjlmNmQwMzhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbApAQCAtMjQsNCArMjQsNCBAQAog
CiBbCiAgICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJT04sCi1dIGNhbGxiYWNrIFBvc2l0aW9uRXJy
b3JDYWxsYmFjayA9IHZvaWQgKFBvc2l0aW9uRXJyb3IgZXJyb3IpOworXSBjYWxsYmFjayBQb3Np
dGlvbkVycm9yQ2FsbGJhY2sgPSB2b2lkIChHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IgZXJyb3Ip
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OGQ5
YTI0MjFlN2YyMzA5YjRmNjIzYjE0ZDdjYmUyYjZjN2UwNDVjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2VvbG9jYXRpb25Qb3NpdGlv
bkRhdGFJT1MubW0KQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiR2VvbG9jYXRp
b25Qb3NpdGlvbi5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCA8Q29y
ZUxvY2F0aW9uL0NMTG9jYXRpb24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoQ0xMb2NhdGlvbiogbG9j
YXRpb24pCisgICAgOiB0aW1lc3RhbXAobG9jYXRpb24udGltZXN0YW1wLnRpbWVJbnRlcnZhbFNp
bmNlMTk3MCkKKyAgICAsIGxhdGl0dWRlKGxvY2F0aW9uLmNvb3JkaW5hdGUubGF0aXR1ZGUpCisg
ICAgLCBsb25naXR1ZGUobG9jYXRpb24uY29vcmRpbmF0ZS5sb25naXR1ZGUpCisgICAgLCBhY2N1
cmFjeShsb2NhdGlvbi5ob3Jpem9udGFsQWNjdXJhY3kpCit7CisgICAgaWYgKGxvY2F0aW9uLnZl
cnRpY2FsQWNjdXJhY3kgPj0gMC4wKSB7CisgICAgICAgIGFsdGl0dWRlID0gbG9jYXRpb24uYWx0
aXR1ZGU7CisgICAgICAgIGFsdGl0dWRlQWNjdXJhY3kgPSBsb2NhdGlvbi52ZXJ0aWNhbEFjY3Vy
YWN5OworICAgIH0KKyAgICBpZiAobG9jYXRpb24uc3BlZWQgPj0gMC4wKQorICAgICAgICBzcGVl
ZCA9IGxvY2F0aW9uLnNwZWVkOworICAgIGlmIChsb2NhdGlvbi5jb3Vyc2UgPj0gMC4wKQorICAg
ICAgICBoZWFkaW5nID0gbG9jYXRpb24uY291cnNlOworI2lmICFQTEFURk9STShNQUNDQVRBTFlT
VCkKKyAgICBpZiAobG9jYXRpb24uZmxvb3IpCisgICAgICAgIGZsb29yTGV2ZWwgPSBsb2NhdGlv
bi5mbG9vci5sZXZlbDsKKyNlbmRpZgorfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9p
b3MvR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDUxMzZhNTFlMmI2ZTg1ZmQ0Mzg2MjhiZGI3ZjBmNmVlMDNjMzBjNzYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbQorKysg
L2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIkdlb2xvY2F0aW9u
UG9zaXRpb24uaCIKLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0KLSNpbXBvcnQgPENvcmVM
b2NhdGlvbi9DTExvY2F0aW9uLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotR2VvbG9jYXRp
b25Qb3NpdGlvbjo6R2VvbG9jYXRpb25Qb3NpdGlvbihDTExvY2F0aW9uKiBsb2NhdGlvbikKLSAg
ICA6IHRpbWVzdGFtcChsb2NhdGlvbi50aW1lc3RhbXAudGltZUludGVydmFsU2luY2UxOTcwKQot
ICAgICwgbGF0aXR1ZGUobG9jYXRpb24uY29vcmRpbmF0ZS5sYXRpdHVkZSkKLSAgICAsIGxvbmdp
dHVkZShsb2NhdGlvbi5jb29yZGluYXRlLmxvbmdpdHVkZSkKLSAgICAsIGFjY3VyYWN5KGxvY2F0
aW9uLmhvcml6b250YWxBY2N1cmFjeSkKLXsKLSAgICBpZiAobG9jYXRpb24udmVydGljYWxBY2N1
cmFjeSA+PSAwLjApIHsKLSAgICAgICAgYWx0aXR1ZGUgPSBsb2NhdGlvbi5hbHRpdHVkZTsKLSAg
ICAgICAgYWx0aXR1ZGVBY2N1cmFjeSA9IGxvY2F0aW9uLnZlcnRpY2FsQWNjdXJhY3k7Ci0gICAg
fQotICAgIGlmIChsb2NhdGlvbi5zcGVlZCA+PSAwLjApCi0gICAgICAgIHNwZWVkID0gbG9jYXRp
b24uc3BlZWQ7Ci0gICAgaWYgKGxvY2F0aW9uLmNvdXJzZSA+PSAwLjApCi0gICAgICAgIGhlYWRp
bmcgPSBsb2NhdGlvbi5jb3Vyc2U7Ci0jaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIGlm
IChsb2NhdGlvbi5mbG9vcikKLSAgICAgICAgZmxvb3JMZXZlbCA9IGxvY2F0aW9uLmZsb29yLmxl
dmVsOwotI2VuZGlmCi19Ci0KLX0KLQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IDBhMzhkZDQ2YzdkNDU5NDA0OGJjZWZmNDliZWRhMzg2OGJkMjk1ZGIu
LmZmZDVlYjA3MjhjNWU5OGJiZWQ1N2ZiMDJhZWZkNThlZTJjOTZjNzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC02NywxMCArNjcsMTAgQEAgTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCiBNb2R1
bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCiBNb2R1bGVzL2ZldGNoL1dvcmtlckdsb2JhbFNj
b3BlRmV0Y2guY3BwCiAKLU1vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuY3BwCiBNb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcAogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9s
b2NhdGlvbi5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNw
cAorTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcAogTW9kdWxl
cy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAKIAogTW9kdWxlcy9pbmRleGVk
ZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcApAQCAtMjY3Miw3ICsyNjcyLDYgQEAgSlND
b21wb3NpdGVPcGVyYXRpb24uY3BwCiBKU0NvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0by5jcHAKIEpT
Q29tcHV0ZWRFZmZlY3RUaW1pbmcuY3BwCiBKU0NvbnZvbHZlck5vZGUuY3BwCi1KU0Nvb3JkaW5h
dGVzLmNwcAogSlNDb3VudFF1ZXVpbmdTdHJhdGVneS5jcHAKIEpTQ3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucy5jcHAKIEpTQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmNwcApAQCAtMjgzMSw3ICsy
ODMwLDkgQEAgSlNHUFVWZXJ0ZXhCdWZmZXJEZXNjcmlwdG9yLmNwcAogSlNHUFVWZXJ0ZXhJbnB1
dERlc2NyaXB0b3IuY3BwCiBKU0dhaW5Ob2RlLmNwcAogSlNHZW9sb2NhdGlvbi5jcHAKLUpTR2Vv
cG9zaXRpb24uY3BwCitKU0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwCitKU0dlb2xvY2F0aW9u
UG9zaXRpb24uY3BwCitKU0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5jcHAKIEpTR2xvYmFsQ3J5
cHRvLmNwcAogSlNHbG9iYWxFdmVudEhhbmRsZXJzLmNwcAogSlNHbG9iYWxQZXJmb3JtYW5jZS5j
cHAKQEAgLTMwNzIsNyArMzA3Myw2IEBAIEpTUGxheWJhY2tEaXJlY3Rpb24uY3BwCiBKU1BvaW50
ZXJFdmVudC5jcHAKIEpTUG9wU3RhdGVFdmVudC5jcHAKIEpTUG9zaXRpb25DYWxsYmFjay5jcHAK
LUpTUG9zaXRpb25FcnJvci5jcHAKIEpTUG9zaXRpb25FcnJvckNhbGxiYWNrLmNwcAogSlNQb3Np
dGlvbk9wdGlvbnMuY3BwCiBKU1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzODUyZDNk
MzkzN2Q2NmU5ZGZmMTI5MGQzMWNjY2Q4NDZmOWNiNWRhLi4xOWZjOWUwZjc4MjFmMTU5NzYyYjYw
OWNlMmExNTZjOGM2ZTVlNWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzkyLDcgKzIzOTIsNyBAQAogCQk4MzcyREIzMTFB
Njc4MEE4MDBDNjk3QzUgLyogRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzcyREIzMDFBNjc4MEE4MDBD
Njk3QzUgLyogRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM3NjVGOTUxREFDNTIyRjAwQzA2NTM3
IC8qIE1vdXNlRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4Mzc2NUY5NDFEQUM1MjE4MDBDMDY1MzcgLyogTW91c2VFdmVudEluaXQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4Mzc5MzYz
RjFGQkJCMEI0MDBDODAyM0MgLyogU2VydmljZVdvcmtlckNsaWVudERhdGEuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNzkzNjNFMUZCQkIwQTUwMEM4
MDIzQyAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTgzNzk2NENGMUY4REI2OUQwMDIxOEVBMCAvKiBH
ZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9z
aXRpb25JT1MubW0gKi87IH07CisJCTgzNzk2NENGMUY4REI2OUQwMDIxOEVBMCAvKiBHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YUlPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzNzk2NENFMUY4REI2OUEwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YUlPUy5tbSAqLzsgfTsKIAkJODM3QTgwMTMxRTFFMTI3MzAwMDI2QjlGIC8qIExvY2Fs
aXphYmxlLnN0cmluZ3NkaWN0IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzdBODAxMTFFMUUxMjczMDAwMjZCOUYgLyogTG9jYWxpemFibGUuc3RyaW5n
c2RpY3QgKi87IH07CiAJCTgzN0Q0NjI3MUZBMkE4Q0UwMDU0RTFGQSAvKiBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM3RDQ2MjUxRkEyQThDNTAwNTRFMUZBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJODM3RkIzNDUxRjlFQTA2RDAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0ZCMzQw
MUY5RUEwNjYwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmggKi87IH07CkBAIC0y
NzI4LDE1ICsyNzI4LDE1IEBACiAJCTk3Mzg4OUExMTE2RUE5REMwMEFERjMxMyAvKiBEb2N1bWVu
dFdyaXRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTczODg5OUYxMTZFQTlEQzAwQURGMzEzIC8qIERvY3VtZW50V3JpdGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTczRTMyNTcxMDg4M0I3QzAw
NUJDNDkzIC8qIFJlc291cmNlTG9hZE5vdGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzNFMzI1NTEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5NzNGNDE4QTE2OUI5NUZGMDAwNkJGNjAgLyogSFRNTFBhcnNlck9wdGlvbnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3M0Y0MTg4
MTY5Qjk1RUYwMDA2QkY2MCAvKiBIVE1MUGFyc2VyT3B0aW9ucy5oICovOyB9OwotCQk5NzQ2QUYy
MTE0RjREREU2MDAzRTdBNzEgLyogQ29vcmRpbmF0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjExMTRGNERERTYwMDNFN0E3MCAvKiBDb29y
ZGluYXRlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTk3NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxMTE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db29yZGluYXRlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NDZBRjI0MTRGNERERTYwMDNF
N0E3MCAvKiBHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTc0NkFGMTQxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFGMjUx
NEY0RERFNjAwM0U3QTcxIC8qIEdlb2xvY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxNTE0RjREREU2MDAzRTdBNzEgLyog
R2VvbG9jYXRpb25DbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5NzQ2QUYyNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250
cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzQ2QUYxNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFGMjgxNEY0
RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjE4MTRGNERERTYwMDNFN0E3MCAvKiBHZW9s
b2NhdGlvbkVycm9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJOTc0NkFGMjkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjE5
MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTc0NkFGMkExNEY0RERFNjAwM0U3
QTcwIC8qIEdlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvcG9zaXRpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NzQ2QUYyOTE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjE5MTRGNERERTYwMDNFN0E3
MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTk3NDZBRjJBMTRGNERERTYwMDNFN0E3MCAvKiBHZW9s
b2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NDZB
RjJDMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxQzE0RjREREU2MDAzRTdBNzAg
LyogUG9zaXRpb25DYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTk3NDZBRjJFMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYx
RTE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk3NDZBRjJFMTRGNERERTYwMDNFN0E3MCAv
KiBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjFFMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5NzQ2QUYzMDE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvckNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2
QUYyMDE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvckNhbGxiYWNrLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFGMzIxNEY0RERF
NjAwM0U3QTcwIC8qIFBvc2l0aW9uT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMjIxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9u
T3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTk3NEE4NjIzMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NEE4NjIx
MTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTAwNjMsNyArMTAwNjMs
NyBAQAogCQk4Mzc2NUY5NDFEQUM1MjE4MDBDMDY1MzcgLyogTW91c2VFdmVudEluaXQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW91c2VFdmVudEluaXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM3OTM2M0MxRkJCQjBBNDAwQzgwMjNDIC8qIFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODM3OTM2M0UxRkJCQjBBNTAwQzgwMjNDIC8qIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgzNzk2NENFMUY4REI2OUEwMDIxOEVB
MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbTsgcGF0aCA9IE1vZHVsZXMv
Z2VvbG9jYXRpb24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW07IHNvdXJjZVRyZWUgPSBT
T1VSQ0VfUk9PVDsgfTsKKwkJODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW07IHBhdGggPSBNb2R1bGVzL2dlb2xvY2F0
aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5tbTsgc291cmNlVHJlZSA9IFNPVVJD
RV9ST09UOyB9OwogCQk4MzdBODAxMjFFMUUxMjczMDAwMjZCOUYgLyogZW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnN0cmluZ3Nk
aWN0OyBuYW1lID0gZW47IHBhdGggPSBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzZGljdDsg
c291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk4MzdCN0QxRjFEQzNGNTRDMDBEMDUxRkMg
LyogVmFsaWRhdGlvbkJ1YmJsZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFZhbGlkYXRpb25CdWJibGVJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgzN0Q0NjI1MUZBMkE4QzUwMDU0RTFGQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3NDMs
OSArMTA3NDMsOSBAQAogCQk5NzNFMzI1NTEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3VyY2VMb2Fk
Tm90aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2Fk
Tm90aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTczRjQxODcxNjlCOTVF
RjAwMDZCRjYwIC8qIEhUTUxQYXJzZXJPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEhUTUxQYXJzZXJPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTczRjQxODgxNjlCOTVFRjAwMDZCRjYwIC8qIEhUTUxQYXJzZXJPcHRpb25z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQYXJzZXJPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk3NDZBRjExMTRGNERERTYwMDNFN0E3MCAv
KiBDb29yZGluYXRlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29yZGlu
YXRlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzQ2QUYxMTE0RjREREU2MDAz
RTdBNzIgLyogQ29vcmRpbmF0ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ29vcmRpbmF0ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzQ2
QUYxMjE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IENvb3JkaW5hdGVzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc0
NkFGMTExNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Db29yZGluYXRlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzIgLyogR2Vv
bG9jYXRpb25Db29yZGluYXRlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTc0NkFGMTIxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYxMzE0RjREREU2MDAzRTdBNzAgLyog
R2VvbG9jYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2Vv
bG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYxNDE0RjRE
REU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gR2VvbG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFG
MTUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBHZW9sb2NhdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDc1
MywxMyArMTA3NTMsMTMgQEAKIAkJOTc0NkFGMTYxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0
aW9uQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBH
ZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NzQ2QUYxNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uQ29udHJvbGxlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYxODE0RjREREU2MDAzRTdBNzAgLyogR2Vv
bG9jYXRpb25FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2Nh
dGlvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk3NDZBRjE5MTRGNERE
RTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uUG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTc0NkFGMUExNEY0RERFNjAwM0U3QTcwIC8qIEdlb3Bvc2l0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlb3Bvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTk3NDZBRjFCMTRGNERERTYwMDNFN0E3MCAvKiBHZW9wb3NpdGlvbi5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2VvcG9zaXRpb24uaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5NzQ2QUYxOTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc0NkFGMUEx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5NzQ2QUYxQjE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3Np
dGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbi5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NDZBRjFDMTRGNERERTYwMDNFN0E3MCAv
KiBQb3NpdGlvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBv
c2l0aW9uQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFGMUQx
NEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFBvc2l0aW9uQ2FsbGJhY2suaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk5NzQ2QUYxRTE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQb3NpdGlvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTk3NDZBRjFGMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9yLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQb3NpdGlvbkVycm9yLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTc0NkFGMUUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2Nh
dGlvblBvc2l0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc0NkFG
MUYxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFGMjAxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9u
RXJyb3JDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3NpdGlv
bkVycm9yQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFGMjEx
NEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTc0NkFGMjIxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uT3B0aW9ucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3NpdGlvbk9wdGlvbnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwOTI1LDcgKzIwOTI1LDcgQEAKIAkJODM3OTY0
Q0MxRjhEQjY3RDAwMjE4RUEwIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkJODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25JT1MubW0gKi8sCisJCQkJODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhSU9TLm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBpb3M7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjE4NDIsMjggKzIxODQyLDI4IEBACiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTgzNzk2NENDMUY4REI2N0QwMDIxOEVB
MCAvKiBpb3MgKi8sCi0JCQkJOTc0NkFGMTExNEY0RERFNjAwM0U3QTcyIC8qIENvb3JkaW5hdGVz
LmNwcCAqLywKLQkJCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMuaCAq
LywKLQkJCQk5NzQ2QUYxMjE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMuaWRsICovLAog
CQkJCTk3NDZBRjEzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgKi8sCiAJCQkJ
OTc0NkFGMTQxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmggKi8sCiAJCQkJOTc0NkFG
MTUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmlkbCAqLywKIAkJCQk5NzQ2QUYxNTE0
RjREREU2MDAzRTdBNzEgLyogR2VvbG9jYXRpb25DbGllbnQuaCAqLywKIAkJCQk5NzQ2QUYxNjE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCAqLywKIAkJCQk5NzQ2
QUYxNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggKi8sCisJCQkJ
OTc0NkFGMTExNEY0RERFNjAwM0U3QTcyIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwICov
LAorCQkJCTk3NDZBRjExMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVz
LmggKi8sCisJCQkJOTc0NkFGMTIxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29vcmRp
bmF0ZXMuaWRsICovLAogCQkJCTk3NDZBRjE4MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlv
bkVycm9yLmggKi8sCi0JCQkJOTc0NkFGMTkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb24uaCAqLywKKwkJCQk5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRp
b25Qb3NpdGlvbi5oICovLAorCQkJCTk3NDZBRjFCMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2Nh
dGlvblBvc2l0aW9uLmlkbCAqLywKKwkJCQk5NzQ2QUYxOTE0RjREREU2MDAzRTdBNzAgLyogR2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGEuaCAqLywKKwkJCQk5NzQ2QUYxRTE0RjREREU2MDAzRTdBNzAg
LyogR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmggKi8sCisJCQkJOTc0NkFGMUYxNEY0RERFNjAw
M0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwgKi8sCiAJCQkJNDZDODNFRkIx
QTlCQkUyOTAwQTc5QTQxIC8qIEdlb05vdGlmaWVyLmNwcCAqLywKIAkJCQk0NkM4M0VGQzFBOUJC
RTI5MDBBNzlBNDEgLyogR2VvTm90aWZpZXIuaCAqLywKLQkJCQk5NzQ2QUYxQTE0RjREREU2MDAz
RTdBNzAgLyogR2VvcG9zaXRpb24uaCAqLywKLQkJCQk5NzQ2QUYxQjE0RjREREU2MDAzRTdBNzAg
LyogR2VvcG9zaXRpb24uaWRsICovLAogCQkJCTk3MTE0NjAwMTRFRjAwOUEwMDY3NEZEOSAvKiBO
YXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgKi8sCiAJCQkJOTcxMTQ2MDExNEVGMDA5QTAwNjc0RkQ5
IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmggKi8sCiAJCQkJOTcxMTQ2MDIxNEVGMDA5QTAwNjc0
RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCAqLywKIAkJCQk5NzQ2QUYxQzE0RjREREU2
MDAzRTdBNzAgLyogUG9zaXRpb25DYWxsYmFjay5oICovLAogCQkJCTk3NDZBRjFEMTRGNERERTYw
MDNFN0E3MCAvKiBQb3NpdGlvbkNhbGxiYWNrLmlkbCAqLywKLQkJCQk5NzQ2QUYxRTE0RjREREU2
MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5oICovLAotCQkJCTk3NDZBRjFGMTRGNERERTYwMDNF
N0E3MCAvKiBQb3NpdGlvbkVycm9yLmlkbCAqLywKIAkJCQk5NzQ2QUYyMDE0RjREREU2MDAzRTdB
NzAgLyogUG9zaXRpb25FcnJvckNhbGxiYWNrLmggKi8sCiAJCQkJOTc0NkFGMjExNEY0RERFNjAw
M0U3QTcwIC8qIFBvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgKi8sCiAJCQkJOTc0NkFGMjIxNEY0
RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uT3B0aW9ucy5oICovLApAQCAtMjg2NjUsNyArMjg2NjUs
NiBAQAogCQkJCTdBNTY5OTcwMjA4NkM2MTkwMDBFMDQzMyAvKiBDb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzNEMDIxMkQxMzFEQjM3QjAwNDA5MUE4
IC8qIENvb2tpZVN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjBCQkFGMUYxQ0VDRTcw
MEVGRUJGMSAvKiBDb29raWVTdG9yYWdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTk3
NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBDb29yZGluYXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJM0Y4MDIwMzUxRTlFNDdCRjAwREVDNjFEIC8qIENvcmVBdWRpb0NhcHR1cmVEZXZpY2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTNGODAyMDM3MUU5RTQ3QzUwMERFQzYxRCAvKiBDb3JlQXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdBRkY0MjIxRUZCMTQ0
OTAwQjU0NUIzIC8qIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MuaCBpbiBIZWFkZXJzICovLApA
QCAtMjkyOTIsMTEgKzI5MjkxLDEzIEBACiAJCQkJOTc0NkFGMjQxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYyNTE0RjREREU2MDAzRTdB
NzEgLyogR2VvbG9jYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NDZBRjI3MTRG
NERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTk3NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYyODE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRp
b25FcnJvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTc0NkFGMjkxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTk3NDZBRjJBMTRGNERE
RTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
NzQ2QUYyOTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTk3NDZBRjJFMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBv
c2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjYyNTJGMThERTFCMTUwMEEwN0Mw
NSAvKiBHZW9tZXRyeVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZDODNFRkUxQTlC
QkUyOTAwQTc5QTQxIC8qIEdlb05vdGlmaWVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk5NzQ2QUYy
QTE0RjREREU2MDAzRTdBNzAgLyogR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2
Qjk1MTk4MjA3RDYzNDcwMEE3RDJERCAvKiBHbG9iYWxGcmFtZUlkZW50aWZpZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQ2Qjk1MTk3MjA3RDYzNDAwMEE3RDJERCAvKiBHbG9iYWxXaW5kb3dJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODZCQkQwRjEzNjAzOUMyMDA4QjE1RDggLyog
R2x5cGguaCBpbiBIZWFkZXJzICovLApAQCAtMzEwNDgsNyArMzEwNDksNiBAQAogCQkJCTM3RjU2
N0NFMTY1MzU4RjQwMERERTkyQiAvKiBQb3B1cE9wZW5pbmdPYnNlcnZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTNGMTk5REUwODI0NUU1OTAwMUU5QUJDIC8qIFBvc2l0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5NzQ2QUYyQzE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25DYWxsYmFjay5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJOTc0NkFGMkUxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9u
RXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NDZBRjMwMTRGNERERTYwMDNFN0E3MCAvKiBQ
b3NpdGlvbkVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTM3OTE5QzI0MEI3RDE4
ODYwMEE1Njk5OCAvKiBQb3NpdGlvbkl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2
QUYzMjE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLywK
QEAgLTMyODA0LDcgKzMyODA0LDcgQEAKIAkJCQk1MTZDNjIyMDE5NTBENDg3MDAzMzdFNzUgLyog
R2FtZXBhZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlEOUU5MTk1QjkzMUYwMDFC
MkI1QyAvKiBHYW1lcGFkTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTVCRTE5MTFE
NTRGNUZCMDBERDdDNjggLyogR2FtZXBhZFByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CTgzNzk2NENGMUY4REI2OUQwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJODM3OTY0Q0YxRjhEQjY5RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhSU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNkUyMUM2QzAxMTI2MzM4NTAw
QTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFNzJG
NTRFMjI5RENEMTAwMEIzRTE1MSAvKiBHcmFwaGljc0NvbnRleHQzREFOR0xFLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDM0U1MTBCMThERjhGMzUwMEMxMTJGNyAvKiBIVE1MQ29udmVydGVyLm1t
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKaW5kZXggYjgwY2MxZTBmY2EwODEzYjM1MDgxM2Fh
OThiMGM3ZGU5MzA5M2M4ZC4uZThlYzFjODRkNGMxMWZlN2IxMzUxYzcwYmE1NmY5OWI3YTg2NmEw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNs
aWVudE1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRp
b25DbGllbnRNb2NrLmNwcApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIEdlb2xvY2F0aW9uQ2xpZW50
TW9jazo6c2V0Q29udHJvbGxlcihHZW9sb2NhdGlvbkNvbnRyb2xsZXIgKmNvbnRyb2xsZXIpCiAg
ICAgbV9jb250cm9sbGVyID0gY29udHJvbGxlcjsKIH0KIAotdm9pZCBHZW9sb2NhdGlvbkNsaWVu
dE1vY2s6OnNldFBvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb24mJiBwb3NpdGlvbikKK3ZvaWQg
R2VvbG9jYXRpb25DbGllbnRNb2NrOjpzZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YSYmIHBvc2l0aW9uKQogewogICAgIG1fbGFzdFBvc2l0aW9uID0gV1RGTW92ZShwb3NpdGlvbik7
CiAgICAgY2xlYXJFcnJvcigpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgR2VvbG9jYXRpb25D
bGllbnRNb2NrOjpzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkKICAgICAvLyBTZWUgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NDM4CiB9CiAKLU9wdGlvbmFsPEdl
b2xvY2F0aW9uUG9zaXRpb24+IEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6bGFzdFBvc2l0aW9uKCkK
K09wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBHZW9sb2NhdGlvbkNsaWVudE1vY2s6
Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgcmV0dXJuIG1fbGFzdFBvc2l0aW9uOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2su
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmgK
aW5kZXggMjdjY2Q5NDMxNjUxNmMxMWMwNmNmZjM5ODRiYjcwYTI1MjAxZWFmMC4uZTIyYWZjNTA4
ZmE2MDBiMTczZTIxYmIwYWRjYjI1OWVlMjJjYWE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oCkBAIC0zMiw3ICszMiw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50LmgiCi0jaW5j
bHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRp
b25EYXRhLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZv
aWQgcmVzZXQoKTsKICAgICB2b2lkIHNldENvbnRyb2xsZXIoR2VvbG9jYXRpb25Db250cm9sbGVy
Kik7CiAKLSAgICB2b2lkIHNldFBvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb24mJik7CisgICAg
dm9pZCBzZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKTsKICAgICB2b2lkIHNl
dFBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAg
ICAgdm9pZCBzZXRQZXJtaXNzaW9uKGJvb2wgYWxsb3dlZCk7CiAgICAgaW50IG51bWJlck9mUGVu
ZGluZ1Blcm1pc3Npb25SZXF1ZXN0cygpIGNvbnN0OwpAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzdGFydFVwZGF0aW5nKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wVXBkYXRp
bmcoKSBvdmVycmlkZTsKICAgICB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKSBvdmVy
cmlkZTsKLSAgICBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uPiBsYXN0UG9zaXRpb24oKSBv
dmVycmlkZTsKKyAgICBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gbGFzdFBvc2l0
aW9uKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihHZW9sb2NhdGlvbiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoR2VvbG9jYXRpb24m
KSBvdmVycmlkZTsKIApAQCAtNzYsNyArNzYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJF
cnJvcigpOwogCiAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7Ci0gICAg
T3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247CisgICAgT3B0aW9u
YWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IG1fbGFzdFBvc2l0aW9uOwogICAgIGJvb2wgbV9o
YXNFcnJvcjsKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CiAgICAgVGltZXIgbV9jb250cm9s
bGVyVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHZW9sb2NhdGlv
blBvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRp
b24uY3BwCmluZGV4IDNmMTU1OGI3NTJiZWY4YzkyYjQxNjk2ZmQ0NmEwYzA4MWI1YmJlYWEuLmU5
OWRjYzVjMGEzZGNiZTQ5ZGI1MzhlZDI2MzViYzBmNjQzNWQxYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCkBAIC0zMiw3ICszMiw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24+IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZShHZW9s
b2NhdGlvblBvc2l0aW9uJiYgZ2VvbG9jYXRpb25Qb3NpdGlvbikKK1JlZjxXZWJHZW9sb2NhdGlv
blBvc2l0aW9uPiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEmJiBnZW9sb2NhdGlvblBvc2l0aW9uKQogewogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24oV1RGTW92ZShnZW9sb2NhdGlvblBvc2l0aW9uKSkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCmlu
ZGV4IGMxZmNjYTdjYmI1OGJlNDQwNjlhNzFlYjk4MmE4MTVlMjljNjM2YzQuLmE5NjhmODRmOWFi
ZWZmNTVlYjRkY2E1ZGEzYTQwNmUyOWQ1YjcxMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbl9oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRl
IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3Bh
Y2UgSVBDIHsKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24gOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0
OjpUeXBlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uPiBjcmVhdGUoV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlv
biYmKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IGNyZWF0ZShXZWJD
b3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKTsKIAogICAgIHZpcnR1YWwgfldlYkdlb2xv
Y2F0aW9uUG9zaXRpb24oKTsKIApAQCAtNTIsMTUgKzUyLDE1IEBAIHB1YmxpYzoKICAgICBPcHRp
b25hbDxkb3VibGU+IGhlYWRpbmcoKSBjb25zdCB7IHJldHVybiBtX2NvcmVQb3NpdGlvbi5oZWFk
aW5nOyB9CiAgICAgT3B0aW9uYWw8ZG91YmxlPiBzcGVlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY29y
ZVBvc2l0aW9uLnNwZWVkOyB9CiAKLSAgICBjb25zdCBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0
aW9uJiBjb3JlUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NvcmVQb3NpdGlvbjsgfQorICAg
IGNvbnN0IFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiBjb3JlUG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBtX2NvcmVQb3NpdGlvbjsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0
IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24oV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiYmIGdl
b2xvY2F0aW9uUG9zaXRpb24pCisgICAgZXhwbGljaXQgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbihX
ZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmIGdlb2xvY2F0aW9uUG9zaXRpb24pCiAg
ICAgICAgIDogbV9jb3JlUG9zaXRpb24oV1RGTW92ZShnZW9sb2NhdGlvblBvc2l0aW9uKSkKICAg
ICB7CiAgICAgfQogCi0gICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiBtX2NvcmVQb3Np
dGlvbjsKKyAgICBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBtX2NvcmVQb3NpdGlv
bjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKaW5kZXggYWFiYzNk
OWY2ZDk1MWMyNDQ0ZTU0NWMxODhmNzA0ZjY3NTlmMGYyNS4uYzA4ZTRhZGNhNmU5YTFhYTM0YTI5
Y2Y3ODM2NGY4MWQ4OGZjY2EzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwCkBAIC00OCw3ICs0OCw3IEBAIFdL
R2VvbG9jYXRpb25Qb3NpdGlvblJlZiBXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGVfYihkb3Vi
bGUgdGltZXN0YW1wLCBkb3VibGUKIAogV0tHZW9sb2NhdGlvblBvc2l0aW9uUmVmIFdLR2VvbG9j
YXRpb25Qb3NpdGlvbkNyZWF0ZV9jKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwg
ZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3ZpZGVzQWx0aXR1ZGUs
IGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBh
bHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91YmxlIGhlYWRpbmcsIGJv
b2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkLCBib29sIHByb3ZpZGVzRmxvb3JMZXZlbCwg
ZG91YmxlIGZsb29yTGV2ZWwpCiB7Ci0gICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiBj
b3JlUG9zaXRpb24geyB0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH07
CisgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEgY29yZVBvc2l0aW9uIHsgdGlt
ZXN0YW1wLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSB9OwogICAgIGlmIChwcm92aWRl
c0FsdGl0dWRlKQogICAgICAgICBjb3JlUG9zaXRpb24uYWx0aXR1ZGUgPSBhbHRpdHVkZTsKICAg
ICBpZiAocHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgKaW5kZXggMTdjMDg2OWNhZTYy
NzU2MWUzNDg4ODI0ZDJhNWY3ZGUxN2JmNjc3Mi4uNmI2NGNmZjJjMDU4MGNlNjA0MjE1MTg1OTM5
MmJkM2NjMjJlNmVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIldlYkNv
bnRleHRTdXBwbGVtZW50LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9u
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAg
LTU1LDcgKzU1LDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdm9p
ZCByZXNldFBlcm1pc3Npb25zKCk7CiAjZW5kaWYKLSAgICBjb25zdCBPcHRpb25hbDxXZWJDb3Jl
OjpHZW9sb2NhdGlvblBvc2l0aW9uPiYgbGFzdFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9s
YXN0UG9zaXRpb247IH0KKyAgICBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBv
c2l0aW9uRGF0YT4mIGxhc3RQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFBvc2l0aW9u
OyB9CiAKICAgICB1c2luZyBBUEk6Ok9iamVjdDo6cmVmOwogICAgIHVzaW5nIEFQSTo6T2JqZWN0
OjpkZXJlZjsKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PGNvbnN0IElQ
Qzo6Q29ubmVjdGlvbjo6Q2xpZW50Kj4gbV9oaWdoQWNjdXJhY3lSZXF1ZXN0ZXJzOwogCiAgICAg
c3RkOjp1bmlxdWVfcHRyPEFQSTo6R2VvbG9jYXRpb25Qcm92aWRlcj4gbV9wcm92aWRlcjsKLSAg
ICBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiBtX2xhc3RQb3NpdGlvbjsK
KyAgICBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gbV9sYXN0UG9z
aXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2dlb2NsdWUvR2VvY2x1ZUdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRl
ci5jcHAKaW5kZXggNmRiNjk4ODUwNTE1NTA3Zjk4MGNhNzg3OWExNGI5NjQyYTlkZjhkZi4uZGJh
MmE5OTBkMTU2ODMyMTZhNmZhOTBhNDhlYjMwZWViZDNjNTI2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Q
cm92aWRlci5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJHZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlci5oIgogCi0jaW5jbHVkZSA8V2ViQ29yZS9H
ZW9sb2NhdGlvblBvc2l0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0
aW9uRGF0YS5oPgogI2luY2x1ZGUgPGdpby9naW8uaD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxp
Yi5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KQEAgLTI2MCw3ICsyNjAsNyBA
QCB2b2lkIEdlb2NsdWVHZW9sb2NhdGlvblByb3ZpZGVyOjpjcmVhdGVMb2NhdGlvbihjb25zdCBj
aGFyKiBsb2NhdGlvblBhdGgpCiAKIHZvaWQgR2VvY2x1ZUdlb2xvY2F0aW9uUHJvdmlkZXI6Omxv
Y2F0aW9uVXBkYXRlZChHUmVmUHRyPEdEQnVzUHJveHk+JiYgcHJveHkpCiB7Ci0gICAgV2ViQ29y
ZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiBwb3NpdGlvbjsKKyAgICBXZWJDb3JlOjpHZW9sb2NhdGlv
blBvc2l0aW9uRGF0YSBwb3NpdGlvbjsKICAgICBHUmVmUHRyPEdWYXJpYW50PiBwcm9wZXJ0eSA9
IGFkb3B0R1JlZihnX2RidXNfcHJveHlfZ2V0X2NhY2hlZF9wcm9wZXJ0eShwcm94eS5nZXQoKSwg
IkxhdGl0dWRlIikpOwogICAgIHBvc2l0aW9uLmxhdGl0dWRlID0gZ192YXJpYW50X2dldF9kb3Vi
bGUocHJvcGVydHkuZ2V0KCkpOwogICAgIHByb3BlcnR5ID0gYWRvcHRHUmVmKGdfZGJ1c19wcm94
eV9nZXRfY2FjaGVkX3Byb3BlcnR5KHByb3h5LmdldCgpLCAiTG9uZ2l0dWRlIikpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Q
cm92aWRlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9j
YXRpb25Qcm92aWRlci5oCmluZGV4IDU3MTFlMmE3NjE0OWMzZjQ4MDFlNjVlMzg3Y2M4ZWVjZTRk
NWVlNjAuLjMxZDI5MDkxOTg1ZjM0YTY1MTM0YTJiMGU3Y2IzYWNlMWRhZTQ0MWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dlb2NsdWUvR2VvY2x1ZUdlb2xvY2F0aW9uUHJv
dmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nZW9jbHVlL0dlb2NsdWVHZW9s
b2NhdGlvblByb3ZpZGVyLmgKQEAgLTMzLDcgKzMzLDcgQEAKIHR5cGVkZWYgc3RydWN0IF9HREJ1
c1Byb3h5IEdEQnVzUHJveHk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIEdlb2xvY2F0
aW9uUG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YTsKIH0KIAogbmFtZXNw
YWNlIFdlYktpdCB7CkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICBHZW9jbHVlR2VvbG9j
YXRpb25Qcm92aWRlcigpOwogICAgIH5HZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlcigpOwogCi0g
ICAgdXNpbmcgVXBkYXRlTm90aWZ5RnVuY3Rpb24gPSBGdW5jdGlvbjx2b2lkKFdlYkNvcmU6Okdl
b2xvY2F0aW9uUG9zaXRpb24mJiwgT3B0aW9uYWw8Q1N0cmluZz4gZXJyb3IpPjsKKyAgICB1c2lu
ZyBVcGRhdGVOb3RpZnlGdW5jdGlvbiA9IEZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6R2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGEmJiwgT3B0aW9uYWw8Q1N0cmluZz4gZXJyb3IpPjsKICAgICB2b2lkIHN0
YXJ0KFVwZGF0ZU5vdGlmeUZ1bmN0aW9uJiYpOwogICAgIHZvaWQgc3RvcCgpOwogICAgIHZvaWQg
c2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KaW5kZXggNTI1ZmIyZjhk
Y2NjMjBhMGY0MGUyN2I5ZTY0NDI5Y2FmZThkZTMwNy4uMTMwOWNlYWE0NmI1MGEyZTBjNTVkOWE5
ZDZhOTA3MzU0OGI4N2Y3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCkBAIC0yOTYsNyArMjk2LDcgQEAgLSAo
dm9pZClnZW9sb2NhdGlvbkF1dGhvcml6YXRpb25EZW5pZWQKICAgICBbX2xpc3RlbmVyIGdlb2xv
Y2F0aW9uQXV0aG9yaXphdGlvbkRlbmllZF07CiB9CiAKLS0gKHZvaWQpcG9zaXRpb25DaGFuZ2Vk
OihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZVBvc2l0aW9uCistICh2b2lkKXBv
c2l0aW9uQ2hhbmdlZDooV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiljb3JlUG9z
aXRpb24KIHsKICAgICBBU1NFUlQoX2xpc3RlbmVyKTsKICAgICBhdXRvIHBvc2l0aW9uID0gV2Vi
S2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoV1RGTW92ZShjb3JlUG9zaXRpb24p
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJH
ZW9sb2NhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0
aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMDIwMjQwMjNjOWYxYzU2M2JmOTEz
MDA4NTg1NmM0ZDgxNzI5OTEzNC4uN2IzMGRkMGY1YWIxMTgyN2JjNWY1N2ZiMzljZWUwYjY4ZTRh
Njk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dl
Ykdlb2xvY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dl
b2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKQEAgLTkwLDcgKzkwLDcgQEAgdm9p
ZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeUZvclBhZ2UoV2Vi
UGFnZSYgcGFnZSwgYm9vbCBlbmEKICAgICAgICAgbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpTZXRF
bmFibGVIaWdoQWNjdXJhY3koaGlnaEFjY3VyYWN5U2hvdWxkQmVFbmFibGVkKSwgMCk7CiB9CiAK
LXZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3NpdGlvbihjb25zdCBHZW9s
b2NhdGlvblBvc2l0aW9uJiBwb3NpdGlvbikKK3ZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpk
aWRDaGFuZ2VQb3NpdGlvbihjb25zdCBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYgcG9zaXRpb24p
CiB7CiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIGZvciAoYXV0byYgcGFnZSA6IGNvcHlU
b1ZlY3RvcihtX3BhZ2VTZXQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgKaW5kZXggYTZjMjg3
MTZhYjE2NzhhZmRkNTc0YzlkZjlmZTI4Njg2MzQ2MzAxOS4uZDc4MDkzZTRkNjAxOTZjOTRmNWY1
Yzc1YjY5YTEwODlmM2VlNDk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaApAQCAtNjQsNyAr
NjQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNVcGRhdGluZygpIGNvbnN0IHsgcmV0dXJuICFt
X3BhZ2VTZXQuaXNFbXB0eSgpOyB9CiAgICAgYm9vbCBpc0hpZ2hBY2N1cmFjeUVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiAhbV9oaWdoQWNjdXJhY3lQYWdlU2V0LmlzRW1wdHkoKTsgfQogCi0gICAg
dm9pZCBkaWRDaGFuZ2VQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9u
Jik7CisgICAgdm9pZCBkaWRDaGFuZ2VQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpHZW9sb2NhdGlv
blBvc2l0aW9uRGF0YSYpOwogICAgIHZvaWQgZGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
dm9pZCByZXNldFBlcm1pc3Npb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5t
ZXNzYWdlcy5pbgppbmRleCAwNDNlZjY0OTQ5MDllNGYxZjNmNjQyMDI2NWQzOGQyNjJkZjA0ZDNl
Li5iNTJlODE2MjA1OTYzMDAyMDUwZGZhMGRhNWJkMjVmZWZkNDNlMzU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTIxLDcgKzIxLDcgQEAKICMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KIAogbWVzc2FnZXMgLT4gV2ViR2VvbG9jYXRpb25NYW5hZ2VyIHsKLSAgICBEaWRD
aGFuZ2VQb3NpdGlvbihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uIHBvc2l0aW9uKTsKKyAg
ICBEaWRDaGFuZ2VQb3NpdGlvbihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBwb3Np
dGlvbik7CiAgICAgRGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oU3RyaW5nIGVycm9yTWVzc2Fn
ZSk7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBSZXNldFBlcm1pc3Npb25zKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2Vv
bG9jYXRpb25DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAppbmRleCBhMjRlMGZmMjFjY2RjNjQ0Zjc3NTY5
ODdlZTA4YmNhN2RlNjBmYjg4Li5mMjI3NTEyNTlmZGMxYjdlOTNjNzRjYWMxYmM2OGFkZmE1NGQy
YTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKQEAgLTYzLDcgKzYzLDcgQEAg
dm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wgZW5h
YmxlZCkKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVtZW50PFdlYkdlb2xvY2F0
aW9uTWFuYWdlcj4oKS0+c2V0RW5hYmxlSGlnaEFjY3VyYWN5Rm9yUGFnZShtX3BhZ2UsIGVuYWJs
ZWQpOwogfQogCi1PcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uPiBXZWJHZW9sb2NhdGlvbkNs
aWVudDo6bGFzdFBvc2l0aW9uKCkKK09wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBX
ZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKCkKIHsKICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAppbmRleCAzNWEzMWZjMmEzNDRi
MzEyODczMDUwNGI3ZmU3YTExNWYwMTFiODgzLi5kNDc3NmU5MTUxYTc1MDE1YTg2MDdlNzUwNWMy
ZTk0NzRmYjk2N2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaApAQCAtNDgsNyArNDgs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RvcFVwZGF0aW5nKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkgb3ZlcnJpZGU7CiAKLSAgICBPcHRpb25hbDxX
ZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiBsYXN0UG9zaXRpb24oKSBvdmVycmlkZTsKKyAg
ICBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gbGFzdFBvc2l0aW9u
KCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6Okdlb2xv
Y2F0aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjYW5jZWxQZXJtaXNzaW9uUmVxdWVzdChXZWJD
b3JlOjpHZW9sb2NhdGlvbiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uQ29yZUxvY2F0aW9uUHJvdmlk
ZXIuaAppbmRleCAwNDkwZmNmYjFkYjA0YmY2YjAyNGU4ZTQwOTY3NTcwZjdjNWFjMTM4Li44NDI3
Y2I4MTAyZDYyYjQwZTY4YmUxMDE2ZTIyZmQ0MjRhMjY5MjY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uQ29yZUxvY2F0aW9uUHJvdmlkZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uQ29yZUxv
Y2F0aW9uUHJvdmlkZXIuaApAQCAtMjksNyArMjksNyBAQAogQGNsYXNzIE5TU3RyaW5nOwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOworY2xhc3MgR2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGE7CiB9CiAKIC8vIFdlYkdlb2xvY2F0aW9uQ29yZUxvY2F0aW9u
RGVsZWdhdGUgYWJzdHJhY3RzIHRoZSBsb2NhdGlvbiBzZXJ2aWNlcyBvZiBDb3JlTG9jYXRpb24u
CkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CiAtICh2b2lkKWdl
b2xvY2F0aW9uQXV0aG9yaXphdGlvbkdyYW50ZWQ7CiAtICh2b2lkKWdlb2xvY2F0aW9uQXV0aG9y
aXphdGlvbkRlbmllZDsKIAotLSAodm9pZClwb3NpdGlvbkNoYW5nZWQ6KFdlYkNvcmU6Okdlb2xv
Y2F0aW9uUG9zaXRpb24mJilwb3NpdGlvbjsKKy0gKHZvaWQpcG9zaXRpb25DaGFuZ2VkOihXZWJD
b3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKXBvc2l0aW9uOwogLSAodm9pZCllcnJvck9j
Y3VycmVkOihOU1N0cmluZyAqKWVycm9yTWVzc2FnZTsKIC0gKHZvaWQpcmVzZXRHZW9sb2NhdGlv
bjsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2Vv
bG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9z
L01pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5tbQppbmRleCBjNWY2NDZi
MmE0NTE1NWQ5NjViODkzMzRhYTU2ZmE3YTEwZDMzZjkwLi5kZTkxMzNiZjA4ZmFhYmNhZjdmODVk
YmRhZDViMDhhMTM0YTIzZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9N
aXNjL1dlYkdlb2xvY2F0aW9uQ29yZUxvY2F0aW9uUHJvdmlkZXIubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLm1t
CkBAIC0zMCw3ICszMCw3IEBACiAjaW1wb3J0IDxDb3JlTG9jYXRpb24vQ0xMb2NhdGlvbi5oPgog
I2ltcG9ydCA8Q29yZUxvY2F0aW9uL0NMTG9jYXRpb25NYW5hZ2VyRGVsZWdhdGUuaD4KICNpbXBv
cnQgPENvcmVMb2NhdGlvbi9Db3JlTG9jYXRpb24uaD4KLSNpbXBvcnQgPFdlYkNvcmUvR2VvbG9j
YXRpb25Qb3NpdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uRGF0
YS5oPgogI2ltcG9ydCA8V2ViS2l0TG9nZ2luZy5oPgogI2ltcG9ydCA8b2JqYy9vYmpjLXJ1bnRp
bWUuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KQEAgLTE3MCw3ICsxNzAsNyBAQCAtICh2b2lk
KWxvY2F0aW9uTWFuYWdlcjooQ0xMb2NhdGlvbk1hbmFnZXIgKiltYW5hZ2VyIGRpZENoYW5nZUF1
dGhvcml6YXRpb25TdGF0dQogCiAtICh2b2lkKXNlbmRMb2NhdGlvbjooQ0xMb2NhdGlvbiAqKW5l
d0xvY2F0aW9uCiB7Ci0gICAgW19wb3NpdGlvbkxpc3RlbmVyIHBvc2l0aW9uQ2hhbmdlZDpHZW9s
b2NhdGlvblBvc2l0aW9uIHsgbmV3TG9jYXRpb24gfV07CisgICAgW19wb3NpdGlvbkxpc3RlbmVy
IHBvc2l0aW9uQ2hhbmdlZDpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSB7IG5ld0xvY2F0aW9uIH1d
OwogfQogCiAtICh2b2lkKWxvY2F0aW9uTWFuYWdlcjooQ0xMb2NhdGlvbk1hbmFnZXIgKiltYW5h
Z2VyIGRpZFVwZGF0ZUxvY2F0aW9uczooTlNBcnJheSAqKWxvY2F0aW9ucwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvblByb3ZpZGVySU9T
Lm1tCmluZGV4IGMyZmYzNTBmNzQ1MjZlMTI1NmMxOWU0ZjUyMDg1Y2IzNTFkMjQ5NjguLjVlNzc3
OTY0ZjE0OWVmMjZiMDA5Mzk1MjUwODI0NTEwNTI3OGM4MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0K
QEAgLTQyLDcgKzQyLDcgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBAaW50ZXJmYWNl
IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24gKEludGVybmFsKQotLSAoaWQpaW5pdFdpdGhHZW9sb2Nh
dGlvblBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRp
b247CistIChpZClpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246KEdlb2xvY2F0aW9uUG9zaXRp
b25EYXRhJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb247CiBAZW5kCiAKIC8vIENvcmVMb2NhdGlv
biBydW5zIGluIHRoZSBtYWluIHRocmVhZC4gV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUyBsaXZl
cyBvbiB0aGUgV2ViVGhyZWFkLgpAQCAtMzQ4LDcgKzM0OCw3IEBAIC0gKHZvaWQpZ2VvbG9jYXRp
b25BdXRob3JpemF0aW9uRGVuaWVkCiAgICAgfSk7CiB9CiAKLS0gKHZvaWQpcG9zaXRpb25DaGFu
Z2VkOihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uJiYpcG9zaXRpb24KKy0gKHZvaWQpcG9z
aXRpb25DaGFuZ2VkOihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKXBvc2l0aW9u
CiB7CiAgICAgUmV0YWluUHRyPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IHdlYlBvc2l0aW9uID0g
YWRvcHROUyhbW1dlYkdlb2xvY2F0aW9uUG9zaXRpb24gYWxsb2NdIGluaXRXaXRoR2VvbG9jYXRp
b25Qb3NpdGlvbjpXVEZNb3ZlKHBvc2l0aW9uKV0pOwogICAgIFdlYlRocmVhZFJ1biheewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9j
YXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
Ykdlb2xvY2F0aW9uQ2xpZW50LmgKaW5kZXggZmZkYmFjZmMyNzQyMWU4ZDM1ODg4ZjJjZTZiMTgw
NzdhMTZlMzNmMC4uOGExYjdmMDA5ZDJjZmExOGIwZThmMzUxMzI4MTcxMGRiNmI0NGE4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9j
YXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCkBAIC0yNyw3ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIEdlb2xvY2F0aW9uOwotY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsK
K2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOwogfQogCiBAY2xhc3MgV2ViVmlldzsKQEAg
LTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJv
b2wpIG92ZXJyaWRlIHsgfQogI2VuZGlmCiAKLSAgICBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2Nh
dGlvblBvc2l0aW9uPiBsYXN0UG9zaXRpb24oKSBvdmVycmlkZTsKKyAgICBPcHRpb25hbDxXZWJD
b3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gbGFzdFBvc2l0aW9uKCkgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6Okdlb2xvY2F0aW9uJikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBjYW5jZWxQZXJtaXNzaW9uUmVxdWVzdChXZWJDb3JlOjpHZW9sb2NhdGlv
biYpIG92ZXJyaWRlIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0KaW5kZXggMmNmNzE1
ZTJkOTBkZmU3NjY4NDg4YmMxNzQ1MWIxM2VkYjJlMzBmOC4uODdkYTczMGZlYWFmZGVkZDc3NGVk
N2VhOTZiNmY4ZDA5M2VhOWEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0KQEAgLTEz
Miw3ICsxMzIsNyBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lv
bihHZW9sb2NhdGlvbiYgZ2VvbG9jYXRpb24pCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKIH0KIAotT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gV2ViR2VvbG9jYXRpb25DbGll
bnQ6Omxhc3RQb3NpdGlvbigpCitPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gV2Vi
R2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgcmV0dXJuIGNvcmUoW1tt
X3dlYlZpZXcgX2dlb2xvY2F0aW9uUHJvdmlkZXJdIGxhc3RQb3NpdGlvbl0pOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0
aW9uLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBv
c2l0aW9uLm1tCmluZGV4IGQxNWY1ZjljNjllYjRlNmE3ZjNlZDlmYWY2ZWVmMzk1Y2VjMWJkOGEu
LjVkYmZkMzU1YTg1Yzk3ZTAyOWJlNTFmNzQ1NzU1ZDMxNWQ0MGU5MmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRp
b24ubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgIldlYkdlb2xvY2F0aW9uUG9zaXRpb24u
aCIKIAogI2ltcG9ydCAiV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmgiCi0jaW1wb3J0
IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvR2VvbG9j
YXRpb25Qb3NpdGlvbkRhdGEuaD4KICNpbXBvcnQgPHd0Zi9PcHRpb25hbC5oPgogI2ltcG9ydCA8
d3RmL1JlZlB0ci5oPgogCkBAIC0zNSwxNSArMzUsMTUgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiBAaW50ZXJmYWNlIFdlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbCA6IE5TT2JqZWN0
CiB7CiBAcHVibGljCi0gICAgR2VvbG9jYXRpb25Qb3NpdGlvbiBfcG9zaXRpb247CisgICAgR2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGEgX3Bvc2l0aW9uOwogfQogCi0tIChpZClpbml0V2l0aENvcmVH
ZW9sb2NhdGlvblBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZUdlb2xvY2F0aW9u
UG9zaXRpb247CistIChpZClpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOihHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YSYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOwogQGVuZAogCiBAaW1w
bGVtZW50YXRpb24gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsCiAKLS0gKGlkKWluaXRX
aXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246KEdlb2xvY2F0aW9uUG9zaXRpb24mJiljb3JlR2Vv
bG9jYXRpb25Qb3NpdGlvbgorLSAoaWQpaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjoo
R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbgogewogICAg
IHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQpAQCAtNTYsNyArNTYsNyBAQCBA
ZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uCiAKLU9wdGlvbmFs
PEdlb2xvY2F0aW9uUG9zaXRpb24+IGNvcmUoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiAqcG9zaXRp
b24pCitPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gY29yZShXZWJHZW9sb2NhdGlv
blBvc2l0aW9uICpwb3NpdGlvbikKIHsKICAgICBpZiAoIXBvc2l0aW9uKQogICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwpAQCAtNjgsMTEgKzY4LDExIEBAIC0gKGlkKWluaXRXaXRoVGltZXN0
YW1wOihkb3VibGUpdGltZXN0YW1wIGxhdGl0dWRlOihkb3VibGUpbGF0aXR1ZGUgbG9uZ2l0dWRl
OihkCiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJl
dHVybiBuaWw7Ci0gICAgX2ludGVybmFsID0gW1tXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJu
YWwgYWxsb2NdIGluaXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246R2VvbG9jYXRpb25Qb3Np
dGlvbiB7IHRpbWVzdGFtcCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kgfV07CisgICAg
X2ludGVybmFsID0gW1tXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwgYWxsb2NdIGluaXRX
aXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEgeyB0aW1l
c3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH1dOwogICAgIHJldHVybiBzZWxm
OwogfQogCi0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246KEdlb2xvY2F0aW9uUG9z
aXRpb24mJiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbgorLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlv
blBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKWNvcmVHZW9sb2NhdGlvblBvc2l0
aW9uCiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRp
b25JbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9sb2Nh
dGlvblBvc2l0aW9uSW50ZXJuYWwuaAppbmRleCAzNDc2MzAyZjJkNmVjMzYyMjAzMzkwNDJmNGZi
MmJiZWI5NzI1NzkxLi43ZWFhYTljMGVjYzUwYTg4ODFjMjg4Y2RmNjllYzhmOTQ0ZDg3MmU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9u
UG9zaXRpb25JbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmgKQEAgLTI3LDggKzI3LDggQEAKICNpbXBv
cnQgPHd0Zi9PcHRpb25hbC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgR2Vv
bG9jYXRpb25Qb3NpdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOwogfQogCi1P
cHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiBjb3JlKFdlYkdlb2xvY2F0aW9u
UG9zaXRpb24gKik7CitPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4g
Y29yZShXZWJHZW9sb2NhdGlvblBvc2l0aW9uICopOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2Y1MjM0YWYyZDQxMjNlNmJlMTNjN2JiMmVj
ODQwMzBkYjAzNWZiMy4uMzE2MjdhMjQ1ZmM1NzkyMWZhMTUzZDMwMmM2NWRiNWNkMzkwYzcwZSAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDE5LTA4LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgW2dlb2xvY2F0aW9uXSBSZW5hbWUgaW50ZXJmYWNlcyBhbmQgcmVtb3ZlIFtOb0lu
dGVyZmFjZU9iamVjdF0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMDg4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW06CisgICAgICAgIChU
ZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbik6CisKIDIwMTktMDgtMjIgIEpv
bmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIHJlc3VsdHMud2Vi
a2l0Lm9yZzogUmVtb3ZlIGJyYW5jaCBhbmQgcmVwb3NpdG9yeSBpbmZvcm1hdGlvbiBmcm9tIGNv
bW1pdCB0b29sdGlwCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1
bm5lck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCmlu
ZGV4IDFmOTYwYWFlMmRkMDNlMTYwYjEyNGM3OTIyM2U5NTZhYWRjZWE3OGUuLjAwNjU5NTZjODFk
ZDcxMzVkZTAyN2Y0OWExZjUzYmVjNjgzNjA3MmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9UZXN0UnVubmVyTWFjLm1tCkBAIC00MSw3ICs0MSw3IEBACiAjaW1wb3J0ICJXb3JrUXVldWVJ
dGVtLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPEphdmFT
Y3JpcHRDb3JlL0pTU3RyaW5nUmVmQ0YuaD4KLSNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25Q
b3NpdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oPgog
I2ltcG9ydCA8V2ViS2l0L0RPTURvY3VtZW50Lmg+CiAjaW1wb3J0IDxXZWJLaXQvRE9NRWxlbWVu
dC5oPgogI2ltcG9ydCA8V2ViS2l0L0RPTUhUTUxJbnB1dEVsZW1lbnRQcml2YXRlLmg+CkBAIC0x
MTksNyArMTE5LDcgQEAgQGVuZAogI2VuZGlmCiAKIEBpbnRlcmZhY2UgV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbiAoSW50ZXJuYWwpCi0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246KFdl
YkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24mJiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjsKKy0g
KGlkKWluaXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlvbjooV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEmJiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjsKIEBlbmQKIAogVGVzdFJ1bm5lcjo6
flRlc3RSdW5uZXIoKQpAQCAtNDcyLDcgKzQ3Miw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9j
a0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBk
CiAgICAgICAgIC8vIFRlc3QgdGhlIGV4cG9zZWQgQVBJLgogICAgICAgICBwb3NpdGlvbiA9IFtb
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbiBhbGxvY10gaW5pdFdpdGhUaW1lc3RhbXA6V2FsbFRpbWU6
Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpIGxhdGl0dWRlOmxhdGl0dWRlIGxv
bmdpdHVkZTpsb25naXR1ZGUgYWNjdXJhY3k6YWNjdXJhY3ldOwogICAgIH0gZWxzZSB7Ci0gICAg
ICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24gZ2VvbG9jYXRpb25Qb3NpdGlvbiB7IFdh
bGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSwgbGF0aXR1ZGUsIGxv
bmdpdHVkZSwgYWNjdXJhY3kgfTsKKyAgICAgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlv
bkRhdGEgZ2VvbG9jYXRpb25Qb3NpdGlvbiB7IFdhbGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VF
cG9jaCgpLnNlY29uZHMoKSwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kgfTsKICAgICAg
ICAgaWYgKHByb3ZpZGVzQWx0aXR1ZGUpCiAgICAgICAgICAgICBnZW9sb2NhdGlvblBvc2l0aW9u
LmFsdGl0dWRlID0gYWx0aXR1ZGU7CiAgICAgICAgIGlmIChwcm92aWRlc0FsdGl0dWRlQWNjdXJh
Y3kpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNmUwMTUwZTZiN2EyY2Y1NDI3N2NiYjhkYzdjMTIwMTdlNjQ4YTEzZS4uNjli
NjRmZThlMmNiMTcwNzZjNGYzM2Q2N2RiYzUyZGQzNTc5ZDdlOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDE5LTA4LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgW2dlb2xvY2F0aW9uXSBSZW5hbWUgaW50ZXJmYWNlcyBhbmQgcmVtb3ZlIFtOb0ludGVyZmFj
ZU9iamVjdF0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMDg4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0
aW9uL2V4cG9zZWQtZ2VvbG9jYXRpb24taW50ZXJmYWNlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL2V4cG9zZWQtZ2VvbG9jYXRpb24taW50ZXJm
YWNlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlv
bi1zdHJpbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL0dlb2xvY2F0aW9uL3Bv
c2l0aW9uLXN0cmluZy5odG1sOgorCiAyMDE5LTA4LTIyICBUaW0gSG9ydG9uICA8dGltb3RoeV9o
b3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJlYmFzZWxpbmUgc29tZSBlZGl0aW5nIHRlc3Rz
IGFmdGVyIHIyNDg5NzQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0
aW9uL2V4cG9zZWQtZ2VvbG9jYXRpb24taW50ZXJmYWNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9leHBvc2VkLWdlb2xvY2F0aW9uLWludGVyZmFjZXMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhZWIxOThhYmMyYWRjZDg4NTIwMzI2YzU0ZTQ3YWYw
YzZlMGE1ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2Nh
dGlvbi9leHBvc2VkLWdlb2xvY2F0aW9uLWludGVyZmFjZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTMgQEAKK0NoZWNrcyB0aGF0IHRoZSBHZW9sb2NhdGlvbiBpbnRlcmZhY2VzIGFyZSBleHBv
c2VkIGFuZCB0aGF0IHRoZWlyIG5hbWUgaXMgY29ycmVjdC4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1Mgd2luZG93UHJvcGVydGllcy5pbmRleE9mKCdHZW9sb2NhdGlvbicp
ID49IDAgaXMgdHJ1ZQorUEFTUyB3aW5kb3dQcm9wZXJ0aWVzLmluZGV4T2YoJ0dlb2xvY2F0aW9u
Q29vcmRpbmF0ZXMnKSA+PSAwIGlzIHRydWUKK1BBU1Mgd2luZG93UHJvcGVydGllcy5pbmRleE9m
KCdHZW9sb2NhdGlvblBvc2l0aW9uJykgPj0gMCBpcyB0cnVlCitQQVNTIHdpbmRvd1Byb3BlcnRp
ZXMuaW5kZXhPZignR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yJykgPj0gMCBpcyB0cnVlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZXhwb3NlZC1nZW9sb2NhdGlvbi1p
bnRlcmZhY2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9leHBvc2Vk
LWdlb2xvY2F0aW9uLWludGVyZmFjZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Y2M3ODMwYjk1OTc3ZTBj
YzE0ZjgxYTgzMDFhNTI0ZWFjOGUzMDkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vR2VvbG9jYXRpb24vZXhwb3NlZC1nZW9sb2NhdGlvbi1pbnRlcmZhY2VzLmh0bWwK
QEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiQ2hlY2tzIHRoYXQgdGhlIEdlb2xvY2F0aW9uIGludGVyZmFjZXMgYXJl
IGV4cG9zZWQgYW5kIHRoYXQgdGhlaXIgbmFtZSBpcyBjb3JyZWN0LiIpOworCitjb25zdCB3aW5k
b3dQcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMod2luZG93KTsKK2NvbnN0
IGV4cGVjdGVkUHJvcGVydGllcyA9IFsiR2VvbG9jYXRpb24iLCAiR2VvbG9jYXRpb25Db29yZGlu
YXRlcyIsICJHZW9sb2NhdGlvblBvc2l0aW9uIiwgIkdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciJd
OworCitmb3IgKGxldCBleHBlY3RlZFByb3BlcnR5IG9mIGV4cGVjdGVkUHJvcGVydGllcykKKyAg
c2hvdWxkQmVUcnVlKCJ3aW5kb3dQcm9wZXJ0aWVzLmluZGV4T2YoJyIgKyBleHBlY3RlZFByb3Bl
cnR5ICsgIicpID49IDAiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Bvc2l0aW9uLXN0cmlu
Zy1leHBlY3RlZC50eHQKaW5kZXggMDQ1ZjQ5NmVmOWNlY2I1OTcxODdlNzEwNjlmMThhZDkxMjc3
MTZkNC4uNGE3MTI3NGIwOTAxMTI0MTE3NzMxOWViOWI4NTU0ZjI2NDE0YThiZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1z
dHJpbmctZXhwZWN0ZWQudHh0CkBAIC02LDggKzYsOCBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RQogUEFTUyBwb3NpdGlvbi5jb29yZHMubGF0aXR1ZGUgaXMgbW9ja0xhdGl0dWRlCiBQQVNTIHBv
c2l0aW9uLmNvb3Jkcy5sb25naXR1ZGUgaXMgbW9ja0xvbmdpdHVkZQogUEFTUyBwb3NpdGlvbi5j
b29yZHMuYWNjdXJhY3kgaXMgbW9ja0FjY3VyYWN5Ci1QQVNTIHBvc2l0aW9uLnRvU3RyaW5nKCkg
aXMgIltvYmplY3QgR2VvcG9zaXRpb25dIgotUEFTUyBwb3NpdGlvbi5jb29yZHMudG9TdHJpbmco
KSBpcyAiW29iamVjdCBDb29yZGluYXRlc10iCitQQVNTIHBvc2l0aW9uLnRvU3RyaW5nKCkgaXMg
IltvYmplY3QgR2VvbG9jYXRpb25Qb3NpdGlvbl0iCitQQVNTIHBvc2l0aW9uLmNvb3Jkcy50b1N0
cmluZygpIGlzICJbb2JqZWN0IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXNdIgogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJpbmcuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Bvc2l0aW9uLXN0cmluZy5odG1sCmluZGV4IGI2NjRk
MWMwMjMwYTJmMDdjOGFhOTBjMTVmYmQ1MWY3OTRmZTBhMjQuLjZjZWI2ZTc2M2RkM2YyNmNlN2Mz
MzEyYzQ3ZThkOWNkZDFkYjY1N2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dl
b2xvY2F0aW9uL3Bvc2l0aW9uLXN0cmluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0dlb2xvY2F0aW9uL3Bvc2l0aW9uLXN0cmluZy5odG1sCkBAIC0yNiw4ICsyNiw4IEBAIG5hdmln
YXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oZnVuY3Rpb24ocCkgewogICAgIHNo
b3VsZEJlKCdwb3NpdGlvbi5jb29yZHMubGF0aXR1ZGUnLCAnbW9ja0xhdGl0dWRlJyk7CiAgICAg
c2hvdWxkQmUoJ3Bvc2l0aW9uLmNvb3Jkcy5sb25naXR1ZGUnLCAnbW9ja0xvbmdpdHVkZScpOwog
ICAgIHNob3VsZEJlKCdwb3NpdGlvbi5jb29yZHMuYWNjdXJhY3knLCAnbW9ja0FjY3VyYWN5Jyk7
Ci0gICAgc2hvdWxkQmUoJ3Bvc2l0aW9uLnRvU3RyaW5nKCknLCAnIltvYmplY3QgR2VvcG9zaXRp
b25dIicpOwotICAgIHNob3VsZEJlKCdwb3NpdGlvbi5jb29yZHMudG9TdHJpbmcoKScsICciW29i
amVjdCBDb29yZGluYXRlc10iJyk7CisgICAgc2hvdWxkQmUoJ3Bvc2l0aW9uLnRvU3RyaW5nKCkn
LCAnIltvYmplY3QgR2VvbG9jYXRpb25Qb3NpdGlvbl0iJyk7CisgICAgc2hvdWxkQmUoJ3Bvc2l0
aW9uLmNvb3Jkcy50b1N0cmluZygpJywgJyJbb2JqZWN0IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXNd
IicpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfSwgZnVuY3Rpb24oZSkgewogICAgIHRlc3RGYWls
ZWQoJ0Vycm9yIGNhbGxiYWNrIGludm9rZWQgdW5leHBlY3RlZGx5Jyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377077</attachid>
            <date>2019-08-22 16:57:44 -0700</date>
            <delta_ts>2019-08-23 10:26:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200885-20190822165743.patch</filename>
            <type>text/plain</type>
            <size>131063</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQzNTYyOGI0NzIxMTBk
YzA3ZTk5ODc3ZDJkMzBkNGE2ZGYzOWMxNi4uNDRlZTZjNmFjYTg0NmU5OTA5ODA4NTVhNDY0YjM2
NjM5MTU1NzEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDE5LTA4LTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2dlb2xvY2F0aW9uXSBSZW5h
bWUgaW50ZXJmYWNlcyBhbmQgcmVtb3ZlIFtOb0ludGVyZmFjZU9iamVjdF0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDg4NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBHZW9sb2NhdGlvbiBp
bnRlcmZhY2VzIGFuZCBleHBvc2UgdGhlbSBvbiB0aGUgZ2xvYmFsIFdpbmRvdyBvYmplY3QgdG8g
bWF0Y2ggdGhlCisgICAgICAgIGxhdGVzdCBzcGVjaWZpY2F0aW9uOgorICAgICAgICAtIGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9nZW9sb2NhdGlvbi1hcGkvI2FwaV9kZXNjcmlwdGlvbgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL0dlb2xvY2F0aW9uL2V4cG9zZWQtZ2VvbG9jYXRpb24taW50ZXJm
YWNlcy5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
SGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb05vdGlmaWVyOjpzZXRGYXRhbEVycm9yKToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlb05vdGlmaWVyOjpydW5TdWNjZXNzQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6R2VvTm90aWZpZXI6OnJ1bkVycm9yQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6R2VvTm90aWZpZXI6OnRpbWVyRmlyZWQpOgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvTm90aWZpZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUdlb2xvY2F0aW9uUG9zaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpsYXN0UG9zaXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R2VvbG9jYXRpb246OnN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpHZW9s
b2NhdGlvbjo6cmVxdWVzdFVzZXNDYWNoZWRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpH
ZW9sb2NhdGlvbjo6bWFrZUNhY2hlZFBvc2l0aW9uQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNv
cmU6Okdlb2xvY2F0aW9uOjpoYXZlU3VpdGFibGVDYWNoZWRQb3NpdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpHZW9sb2NhdGlvbjo6c2V0SXNBbGxvd2VkKToKKyAgICAgICAgKFdlYkNvcmU6Okdl
b2xvY2F0aW9uOjpzZW5kRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OnNl
bmRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6Y2FuY2VsUmVxdWVz
dHMpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OmhhbmRsZUVycm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjptYWtlU3VjY2Vzc0NhbGxiYWNrcyk6CisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6cG9zaXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNv
cmU6Okdlb2xvY2F0aW9uOjpzZXRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
bjo6aGFuZGxlUGVuZGluZ1Blcm1pc3Npb25Ob3RpZmllcnMpOgorICAgICAgICAqIE1vZHVsZXMv
Z2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uQ2xpZW50Lmg6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjpw
b3NpdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVy
OjpsYXN0UG9zaXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b25Db250cm9sbGVyLmg6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bkNvb3JkaW5hdGVzLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vQ29vcmRpbmF0ZXMuY3BwLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25D
b29yZGluYXRlczo6R2VvbG9jYXRpb25Db29yZGluYXRlcyk6CisgICAgICAgICogTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmguCisgICAgICAgIChXZWJD
b3JlOjpHZW9sb2NhdGlvbkNvb3JkaW5hdGVzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R2VvbG9jYXRpb25Db29yZGluYXRlczo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKiBN
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRsOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5pZGwuCisg
ICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmg6CisgICAg
ICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbjo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb246OnRpbWVzdGFtcCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uOjpjb29yZHMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbjo6R2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAg
ICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRs
LgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEu
aDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvblBvc2l0aW9uLmguCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0
aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmguCisgICAgICAgIChXZWJDb3Jl
OjpHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpH
ZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6Okdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcik6CisgICAg
ICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRsOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVy
cm9yLmlkbC4KKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bvc2l0aW9uLmg6IFJl
bW92ZWQuCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmg6
CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5oOgorICAg
ICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlP
Uy5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vaW9z
L0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0uCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
blBvc2l0aW9uRGF0YTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEpOgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnNldFBvc2l0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jazo6bGFzdFBvc2l0aW9uKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oOgorCiAyMDE5LTA4LTIyICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgSW1hZ2VCdWZm
ZXIgYW5kIFNWRydzIEZpbHRlckRhdGEgaXNvaGVhcCdlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3ZmY3OGZiZjRk
ZTJjYzg5ZGE2ZDYzNzg2OTAxYzk5NGU3ZDAyZTFmLi5iYmRkNDNlYjNlMjFjN2Y1ZGY0OTA3NDdj
ZTVmZjYyYzE4YzZhZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTA4LTIyICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2dlb2xvY2F0aW9uXSBS
ZW5hbWUgaW50ZXJmYWNlcyBhbmQgcmVtb3ZlIFtOb0ludGVyZmFjZU9iamVjdF0KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDg4NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYkdlb2xv
Y2F0aW9uUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0
aW9uOjpjcmVhdGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmg6
CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNvcmVQb3NpdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OldlYkdlb2xv
Y2F0aW9uUG9zaXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9u
UG9zaXRpb24uY3BwOgorICAgICAgICAoV0tHZW9sb2NhdGlvblBvc2l0aW9uQ3JlYXRlX2MpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6bGFzdFBvc2l0aW9uIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbToK
KyAgICAgICAgKC1bV0tMZWdhY3lDb3JlTG9jYXRpb25Qcm92aWRlciBwb3NpdGlvbkNoYW5nZWQ6
XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5n
ZVBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0
aW9uTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9j
YXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lmg6CisKIDIwMTktMDgtMjIgIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVd
IEZpeGVzIGZvciBub24tdW5pZmllZCBidWlsZHMgYWZ0ZXIgcjI0ODU0NwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9p
b3MvQ2hhbmdlTG9nCmluZGV4IDU1MWEwYjc3OWEwZTQ5MTI1MDEwNGY2NWM3ODk2Yzg2MjdiZDAz
NGIuLjk2MWFhODg5YjgyMTJmZTZmMDM3Y2Y1YzVjMzZlMzM1Y2IzYWRhY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L2lvcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wOC0yMiAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtnZW9sb2NhdGlvbl0gUmVuYW1lIGlu
dGVyZmFjZXMgYW5kIHJlbW92ZSBbTm9JbnRlcmZhY2VPYmplY3RdCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4ODUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pc2MvV2ViR2VvbG9jYXRpb25Db3Jl
TG9jYXRpb25Qcm92aWRlci5oOgorICAgICAgICAqIE1pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9j
YXRpb25Qcm92aWRlci5tbToKKyAgICAgICAgKC1bV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Q
cm92aWRlciBzZW5kTG9jYXRpb246XSk6CisgICAgICAgICogTWlzYy9XZWJHZW9sb2NhdGlvblBy
b3ZpZGVySU9TLm1tOgorICAgICAgICAoLVtfV2ViQ29yZUxvY2F0aW9uVXBkYXRlVGhyZWFkaW5n
UHJveHkgcG9zaXRpb25DaGFuZ2VkOl0pOgorCiAyMDE5LTA4LTE4ICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dURl0gQWRkIG1ha2VVbmlxdWU8VD4sIHdo
aWNoIGVuc3VyZXMgVCBpcyBmYXN0LWFsbG9jYXRlZCwgbWFrZVVuaXF1ZSAvIG1ha2VVbmlxdWVX
aXRob3V0RmFzdE1hbGxvY0NoZWNrIHBhcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRl
eCAzMTVjMWVhYTg5NDdjNGY0MWIwMjE2ZmFkZWJhYWVmYmE0M2RiNzYwLi45ZTA0YjVkZDI5NzNl
Y2RhMjczNmFhNjBjZTU2NTVhNjFjMmE4YmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMDgtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBbZ2VvbG9jYXRpb25dIFJlbmFtZSBpbnRlcmZhY2VzIGFuZCByZW1v
dmUgW05vSW50ZXJmYWNlT2JqZWN0XQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAwODg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tOgorICAgICAg
ICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbik6CisgICAgICAgICogV2ViVmll
dy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBv
c2l0aW9uSW50ZXJuYWwgaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjpdKToKKyAgICAg
ICAgKGNvcmUpOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBvc2l0aW9uIGluaXRXaXRoVGlt
ZXN0YW1wOmxhdGl0dWRlOmxvbmdpdHVkZTphY2N1cmFjeTpdKToKKyAgICAgICAgKC1bV2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbiBpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246XSk6CisgICAgICAg
ICogV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaDoKKwogMjAxOS0wOC0y
MSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFp
bF0gVGFwcGluZyB0b3Agb2YgbWVzc2FnZSBzY3JvbGxzIGJhY2sgdG8gY29waWVkIHRleHQgaW5z
dGVhZCBvZiB0b3Agb2YgdGhlIG1lc3NhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMGUyOTNk
MjUyOTNiMDNhZjZlZTFjZWUwM2M4ZjgwMzIxOTU3ZWVlOC4uYTViNjJmNDA4ZGZmM2IzMmYwNTAx
NjBhOWU1OTkxNWZjNDk4NGZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI2MSwxMiArMjYx
LDEyIEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlc3BvbnNlLmlkbAogICAgIE1vZHVsZXMvZmV0Y2gvV29ya2VyR2xvYmFsU2NvcGVGZXRj
aC5pZGwKIAotICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsCiAgICAgTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwKLSAgICBNb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb3Bvc2l0aW9uLmlkbAorICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29y
ZGluYXRlcy5pZGwKKyAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24u
aWRsCisgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRs
CiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwKICAgICBN
b2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaWRsCi0gICAgTW9kdWxlcy9nZW9s
b2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRp
b25FcnJvckNhbGxiYWNrLmlkbAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25PcHRp
b25zLmlkbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAppbmRleCBlNDA4M2RkOTBjNzcwNGNjMTVhMzYzYzJlNjI1MzlhZWViZTE0MTg3Li4zNTI2
ZmRhNmNjMjczOTI2MWU4YTIyYWNiMmM2OGNkNWRlMDI0ZjhmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTk5LDYgKzk5LDkgQEAgJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRFdmVudC5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaWRsCiskKFBST0pFQ1RfRElSKS9N
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA5MDZjMzE0
NTM3ODA1NGYzZDAxN2RmYmVlNDFkYzZhMmY4MDYyZTY0Li5lYjczM2ZmNzBiOTZiODYyYzAyNTBl
YTg1NjJkNTQzNDE4NjZhNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNjU1LDYgKzY1NSwxMiBAQCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dhbWVwYWRXZWJWUi5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2FtZXBhZFdlYlZSLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb24u
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xv
Y2F0aW9uLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
R2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb25Db29yZGluYXRlcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uUG9zaXRpb24uY3Bw
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0
aW9uUG9zaXRpb24uaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb3Bvc2l0aW9uLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHZW9wb3Np
dGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dl
c3R1cmVFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDQ2NGMxM2Yy
NjE0MDIzNjljNDA1Y2Y3MTUxMzBmN2YwODM3NmU2ZTYuLjBjMjhiNjU3Yjg1NjY2MDEwZGZjODA0
NWI1MjRiNjAwOThkMGIwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTcx
LDEyICsxNzEsMTIgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9nYW1lcGFkL0dhbWVwYWRCdXR0b24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2Ft
ZXBhZC9HYW1lcGFkRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2FtZXBhZC9O
YXZpZ2F0b3JHYW1lcGFkLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0Nvb3JkaW5hdGVzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bv
c2l0aW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uQ29vcmRpbmF0ZXMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb25Qb3NpdGlvbi5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwgXAotICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5pZGwg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKaW5kZXggN2I4MjgwZWJkMDI0ZjM0Y2M2NzExMmZmMDAxNzFlNjkx
YWZlN2QyZS4uNWQ5NjE2YTQ1NjI2ZjU1NmMwMDE2ZTJhMzQyNGQ0ZjRlOTA0MjQ2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCkBAIC0yNSwxNSArMjUsMTUgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuaAogICAgIE1vZHVs
ZXMvZmV0Y2gvRmV0Y2hMb2FkZXJDbGllbnQuaAogCi0gICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9D
b29yZGluYXRlcy5oCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCiAgICAg
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNsaWVudC5oCiAgICAgTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAorICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb25Db29yZGluYXRlcy5oCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvbkVycm9yLmgKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24u
aAotICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaAorICAgIE1vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaAorICAgIE1vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmgKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bv
c2l0aW9uQ2FsbGJhY2suaAotICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5o
CiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaAogICAgIE1v
ZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25PcHRpb25zLmgKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOWNlYmRmYzBmNjVhOGZiODEwMjQzZTEyN2VkNzk2NzU4NDJmNTBjYi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDb29yZGluYXRlcy5oIgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUNvb3JkaW5hdGVzOjpDb29yZGluYXRlcyhHZW9sb2NhdGlv
blBvc2l0aW9uJiYgcG9zaXRpb24pCi0gICAgOiBtX3Bvc2l0aW9uKFdURk1vdmUocG9zaXRpb24p
KQotewotICAgIEFTU0VSVChtX3Bvc2l0aW9uLmlzVmFsaWQoKSk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vQ29vcmRpbmF0ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29v
cmRpbmF0ZXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmQ1MTgyODJhZWNkNTFm
NjFkZTZiNTYwOTYzMWRjYzUzM2VmODUzZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3Jk
aW5hdGVzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNs
dWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCi0jaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Ci0j
aW5jbHVkZSA8d3RmL1JlZi5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ29vcmRpbmF0ZXMgOiBwdWJsaWMgUmVmQ291bnRlZDxD
b29yZGluYXRlcz4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q29vcmRpbmF0ZXM+IGNyZWF0
ZShHZW9sb2NhdGlvblBvc2l0aW9uJiYgcG9zaXRpb24pCi0gICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDb29yZGluYXRlcyhXVEZNb3ZlKHBvc2l0aW9uKSkpOwotICAgIH0KLQot
ICAgIFJlZjxDb29yZGluYXRlcz4gaXNvbGF0ZWRDb3B5KCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IHJldHVybiBDb29yZGluYXRlczo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb24obV9wb3NpdGlv
bikpOwotICAgIH0KLQotICAgIGRvdWJsZSBsYXRpdHVkZSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9z
aXRpb24ubGF0aXR1ZGU7IH0KLSAgICBkb3VibGUgbG9uZ2l0dWRlKCkgY29uc3QgeyByZXR1cm4g
bV9wb3NpdGlvbi5sb25naXR1ZGU7IH0KLSAgICBPcHRpb25hbDxkb3VibGU+IGFsdGl0dWRlKCkg
Y29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5hbHRpdHVkZTsgfQotICAgIGRvdWJsZSBhY2N1cmFj
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24uYWNjdXJhY3k7IH0KLSAgICBPcHRpb25hbDxk
b3VibGU+IGFsdGl0dWRlQWNjdXJhY3koKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uLmFsdGl0
dWRlQWNjdXJhY3k7IH0KLSAgICBPcHRpb25hbDxkb3VibGU+IGhlYWRpbmcoKSBjb25zdCB7IHJl
dHVybiBtX3Bvc2l0aW9uLmhlYWRpbmc7IH0KLSAgICBPcHRpb25hbDxkb3VibGU+IHNwZWVkKCkg
Y29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5zcGVlZDsgfQotICAgIE9wdGlvbmFsPGRvdWJsZT4g
Zmxvb3JMZXZlbCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24uZmxvb3JMZXZlbDsgfQotICAg
IAotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBDb29yZGluYXRlcyhHZW9sb2NhdGlvblBvc2l0aW9u
JiYpOwotCi0gICAgR2VvbG9jYXRpb25Qb3NpdGlvbiBtX3Bvc2l0aW9uOwotfTsKLSAgICAKLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Db29yZGluYXRlcy5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJm
NWNlZmIwZmMwMzdhY2ZiOTZmMTZjYzRmMjE0MmFjMzYzYzk3MGEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Db29yZGluYXRlcy5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLVsKLSAgICBOb0lu
dGVyZmFjZU9iamVjdCwKLSAgICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwKLSAgICBJbXBsZW1l
bnRhdGlvbkxhY2tzVlRhYmxlCi1dIGludGVyZmFjZSBDb29yZGluYXRlcyB7Ci0gICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbGF0aXR1ZGU7Ci0gICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbG9uZ2l0dWRlOwotICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlPyBhbHRpdHVkZTsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBhY2N1cmFjeTsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gYWx0aXR1ZGVBY2N1cmFjeTsKLSAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gaGVhZGluZzsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gc3BlZWQ7Ci0gICAgW0VuYWJsZWRCeVNldHRpbmc9
R2VvbG9jYXRpb25GbG9vckxldmVsXSByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZT8gZmxvb3JMZXZlbDsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvTm90aWZpZXIuY3BwCmluZGV4IDc3ZWJmMzQyMWM5MmYzMDY4ODk1NDIyOWM1
YjMzZWU3YjBiNDMzNDAuLjcwZjg5NjIxZmNmODUyNzJkZDk1ZDg4OWU3MGE3M2U1YTg5MjAwMDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZp
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZp
ZXIuY3BwCkBAIC00NCw3ICs0NCw3IEBAIEdlb05vdGlmaWVyOjpHZW9Ob3RpZmllcihHZW9sb2Nh
dGlvbiYgZ2VvbG9jYXRpb24sIFJlZjxQb3NpdGlvbkNhbGxiYWNrPiYmIHN1Y2NlCiB7CiB9CiAK
LXZvaWQgR2VvTm90aWZpZXI6OnNldEZhdGFsRXJyb3IoUmVmUHRyPFBvc2l0aW9uRXJyb3I+JiYg
ZXJyb3IpCit2b2lkIEdlb05vdGlmaWVyOjpzZXRGYXRhbEVycm9yKFJlZlB0cjxHZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3I+JiYgZXJyb3IpCiB7CiAgICAgLy8gSWYgYSBmYXRhbCBlcnJvciBoYXMg
YWxyZWFkeSBiZWVuIHNldCwgc3RpY2sgd2l0aCBpdC4gVGhpcyBtYWtlcyBzdXJlIHRoYXQKICAg
ICAvLyB3aGVuIHBlcm1pc3Npb24gaXMgZGVuaWVkLCB0aGlzIGlzIHRoZSBlcnJvciByZXBvcnRl
ZCwgYXMgcmVxdWlyZWQgYnkgdGhlCkBAIC02OSw3ICs2OSw3IEBAIGJvb2wgR2VvTm90aWZpZXI6
Omhhc1plcm9UaW1lb3V0KCkgY29uc3QKICAgICByZXR1cm4gIW1fb3B0aW9ucy50aW1lb3V0Owog
fQogCi12b2lkIEdlb05vdGlmaWVyOjpydW5TdWNjZXNzQ2FsbGJhY2soR2VvcG9zaXRpb24qIHBv
c2l0aW9uKQordm9pZCBHZW9Ob3RpZmllcjo6cnVuU3VjY2Vzc0NhbGxiYWNrKEdlb2xvY2F0aW9u
UG9zaXRpb24qIHBvc2l0aW9uKQogewogICAgIC8vIElmIHdlIGFyZSBoZXJlIGFuZCB0aGUgR2Vv
bG9jYXRpb24gcGVybWlzc2lvbiBpcyBub3QgYXBwcm92ZWQsIHNvbWV0aGluZyBoYXMKICAgICAv
LyBnb25lIGhvcnJpYmx5IHdyb25nLgpAQCAtNzksNyArNzksNyBAQCB2b2lkIEdlb05vdGlmaWVy
OjpydW5TdWNjZXNzQ2FsbGJhY2soR2VvcG9zaXRpb24qIHBvc2l0aW9uKQogICAgIG1fc3VjY2Vz
c0NhbGxiYWNrLT5oYW5kbGVFdmVudChwb3NpdGlvbik7CiB9CiAKLXZvaWQgR2VvTm90aWZpZXI6
OnJ1bkVycm9yQ2FsbGJhY2soUG9zaXRpb25FcnJvciYgZXJyb3IpCit2b2lkIEdlb05vdGlmaWVy
OjpydW5FcnJvckNhbGxiYWNrKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciYgZXJyb3IpCiB7CiAg
ICAgaWYgKG1fZXJyb3JDYWxsYmFjaykKICAgICAgICAgbV9lcnJvckNhbGxiYWNrLT5oYW5kbGVF
dmVudChlcnJvcik7CkBAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBHZW9Ob3RpZmllcjo6dGltZXJG
aXJlZCgpCiAgICAgfQogICAgIAogICAgIGlmIChtX2Vycm9yQ2FsbGJhY2spIHsKLSAgICAgICAg
YXV0byBlcnJvciA9IFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpUSU1FT1VU
LCAiVGltZW91dCBleHBpcmVkIl9zKTsKKyAgICAgICAgYXV0byBlcnJvciA9IEdlb2xvY2F0aW9u
UG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6VElNRU9VVCwg
IlRpbWVvdXQgZXhwaXJlZCJfcyk7CiAgICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZl
bnQoZXJyb3IpOwogICAgIH0KICAgICBtX2dlb2xvY2F0aW9uLT5yZXF1ZXN0VGltZWRPdXQodGhp
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05v
dGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVy
LmgKaW5kZXggZmIzMmNlOGQ5YmZkMjk4YmM2NTFiMWUyMjU5ODc0ZWIwMmQxNjIyYy4uZGI5MTNl
ZjkwYzE0OTVlMzk2OWZkZDk5YjA0YmZhMDkwNDc0OGNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9Ob3RpZmllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZpZXIuaApAQCAtMzYsMTAgKzM2LDEwIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR2VvcG9zaXRpb247CiBjbGFzcyBHZW9s
b2NhdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBv
c2l0aW9uRXJyb3I7CiBjbGFzcyBQb3NpdGlvbkNhbGxiYWNrOwotY2xhc3MgUG9zaXRpb25FcnJv
cjsKIGNsYXNzIFBvc2l0aW9uRXJyb3JDYWxsYmFjazsKIAogY2xhc3MgR2VvTm90aWZpZXIgOiBw
dWJsaWMgUmVmQ291bnRlZDxHZW9Ob3RpZmllcj4gewpAQCAtNTAsMTMgKzUwLDEzIEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICBjb25zdCBQb3NpdGlvbk9wdGlvbnMmIG9wdGlvbnMoKSBjb25zdCB7
IHJldHVybiBtX29wdGlvbnM7IH0KLSAgICB2b2lkIHNldEZhdGFsRXJyb3IoUmVmUHRyPFBvc2l0
aW9uRXJyb3I+JiYpOworICAgIHZvaWQgc2V0RmF0YWxFcnJvcihSZWZQdHI8R2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yPiYmKTsKIAogICAgIGJvb2wgdXNlQ2FjaGVkUG9zaXRpb24oKSBjb25zdCB7
IHJldHVybiBtX3VzZUNhY2hlZFBvc2l0aW9uOyB9CiAgICAgdm9pZCBzZXRVc2VDYWNoZWRQb3Np
dGlvbigpOwogCi0gICAgdm9pZCBydW5TdWNjZXNzQ2FsbGJhY2soR2VvcG9zaXRpb24qKTsgLy8g
RklYTUU6IFRoaXMgc2hvdWxkIHRha2UgYSByZWZlcmVuY2UuCi0gICAgdm9pZCBydW5FcnJvckNh
bGxiYWNrKFBvc2l0aW9uRXJyb3ImKTsKKyAgICB2b2lkIHJ1blN1Y2Nlc3NDYWxsYmFjayhHZW9s
b2NhdGlvblBvc2l0aW9uKik7IC8vIEZJWE1FOiBUaGlzIHNob3VsZCB0YWtlIGEgcmVmZXJlbmNl
LgorICAgIHZvaWQgcnVuRXJyb3JDYWxsYmFjayhHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImKTsK
IAogICAgIHZvaWQgc3RhcnRUaW1lcklmTmVlZGVkKCk7CiAgICAgdm9pZCBzdG9wVGltZXIoKTsK
QEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxi
YWNrPiBtX2Vycm9yQ2FsbGJhY2s7CiAgICAgUG9zaXRpb25PcHRpb25zIG1fb3B0aW9uczsKICAg
ICBUaW1lciBtX3RpbWVyOwotICAgIFJlZlB0cjxQb3NpdGlvbkVycm9yPiBtX2ZhdGFsRXJyb3I7
CisgICAgUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gbV9mYXRhbEVycm9yOwogICAg
IGJvb2wgbV91c2VDYWNoZWRQb3NpdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKaW5kZXggZTI2OTFmNTk3ZmU3M2Nj
YmU4NWJiZGU4ZTkzNGY3ZmFlZmU4MmZiZS4uZjEyZTE0OTBmZDg3ZDdiN2IyNzExZTQyYzZiYWY1
NDk4YTk5MGE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAKQEAgLTMwLDE3ICszMCwxNiBAQAogCiAjaWYgRU5BQkxFKEdFT0xP
Q0FUSU9OKQogCi0jaW5jbHVkZSAiQ29vcmRpbmF0ZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiR2VvTm90aWZpZXIuaCIKICNpbmNsdWRl
ICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkNvb3JkaW5h
dGVzLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25FcnJvci5oIgogI2luY2x1ZGUgIkdlb2xvY2F0
aW9uUG9zaXRpb24uaCIKLSNpbmNsdWRlICJHZW9wb3NpdGlvbi5oIgorI2luY2x1ZGUgIkdlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgotI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKICNpbmNsdWRlICJSdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC01NiwyOCArNTUsMjggQEAgc3RhdGljIGNvbnN0
IEFTQ0lJTGl0ZXJhbCBvcmlnaW5DYW5ub3RSZXF1ZXN0R2VvbG9jYXRpb25FcnJvck1lc3NhZ2Ug
eyAiT3JpZ2luIGQKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEdlb2xvY2F0aW9uKTsK
IAotc3RhdGljIFJlZlB0cjxHZW9wb3NpdGlvbj4gY3JlYXRlR2VvcG9zaXRpb24oT3B0aW9uYWw8
R2VvbG9jYXRpb25Qb3NpdGlvbj4mJiBwb3NpdGlvbikKK3N0YXRpYyBSZWZQdHI8R2VvbG9jYXRp
b25Qb3NpdGlvbj4gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbihPcHRpb25hbDxHZW9sb2NhdGlv
blBvc2l0aW9uRGF0YT4mJiBwb3NpdGlvbikKIHsKICAgICBpZiAoIXBvc2l0aW9uKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBET01UaW1lU3RhbXAgdGltZXN0YW1wID0gY29u
dmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcChwb3NpdGlvbi0+dGltZXN0YW1wKTsKLSAgICByZXR1
cm4gR2VvcG9zaXRpb246OmNyZWF0ZShDb29yZGluYXRlczo6Y3JlYXRlKFdURk1vdmUocG9zaXRp
b24udmFsdWUoKSkpLCB0aW1lc3RhbXApOworICAgIHJldHVybiBHZW9sb2NhdGlvblBvc2l0aW9u
OjpjcmVhdGUoR2VvbG9jYXRpb25Db29yZGluYXRlczo6Y3JlYXRlKFdURk1vdmUocG9zaXRpb24u
dmFsdWUoKSkpLCB0aW1lc3RhbXApOwogfQogCi1zdGF0aWMgUmVmPFBvc2l0aW9uRXJyb3I+IGNy
ZWF0ZVBvc2l0aW9uRXJyb3IoR2VvbG9jYXRpb25FcnJvciYgZXJyb3IpCitzdGF0aWMgUmVmPEdl
b2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKEdl
b2xvY2F0aW9uRXJyb3ImIGVycm9yKQogewotICAgIFBvc2l0aW9uRXJyb3I6OkVycm9yQ29kZSBj
b2RlID0gUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEU7CisgICAgYXV0byBjb2Rl
ID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRTsKICAgICBz
d2l0Y2ggKGVycm9yLmNvZGUoKSkgewogICAgIGNhc2UgR2VvbG9jYXRpb25FcnJvcjo6UGVybWlz
c2lvbkRlbmllZDoKLSAgICAgICAgY29kZSA9IFBvc2l0aW9uRXJyb3I6OlBFUk1JU1NJT05fREVO
SUVEOworICAgICAgICBjb2RlID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9O
X0RFTklFRDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHZW9sb2NhdGlvbkVycm9yOjpQb3Np
dGlvblVuYXZhaWxhYmxlOgotICAgICAgICBjb2RlID0gUG9zaXRpb25FcnJvcjo6UE9TSVRJT05f
VU5BVkFJTEFCTEU7CisgICAgICAgIGNvZGUgPSBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBP
U0lUSU9OX1VOQVZBSUxBQkxFOwogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICByZXR1cm4g
UG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIGVycm9yLm1lc3NhZ2UoKSk7CisgICAgcmV0dXJu
IEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIGVycm9yLm1lc3NhZ2UoKSk7
CiB9CiAKIGJvb2wgR2VvbG9jYXRpb246OldhdGNoZXJzOjphZGQoaW50IGlkLCBSZWZQdHI8R2Vv
Tm90aWZpZXI+JiYgbm90aWZpZXIpCkBAIC0yOTAsMTMgKzI4OSwxMyBAQCBjb25zdCBjaGFyKiBH
ZW9sb2NhdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJHZW9s
b2NhdGlvbiI7CiB9CiAKLUdlb3Bvc2l0aW9uKiBHZW9sb2NhdGlvbjo6bGFzdFBvc2l0aW9uKCkK
K0dlb2xvY2F0aW9uUG9zaXRpb24qIEdlb2xvY2F0aW9uOjpsYXN0UG9zaXRpb24oKQogewogICAg
IFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAotICAgIG1fbGFzdFBvc2l0aW9uID0gY3JlYXRlR2VvcG9zaXRpb24oR2Vv
bG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5sYXN0UG9zaXRpb24oKSk7CisgICAgbV9s
YXN0UG9zaXRpb24gPSBjcmVhdGVHZW9sb2NhdGlvblBvc2l0aW9uKEdlb2xvY2F0aW9uQ29udHJv
bGxlcjo6ZnJvbShwYWdlKS0+bGFzdFBvc2l0aW9uKCkpOwogCiAgICAgcmV0dXJuIG1fbGFzdFBv
c2l0aW9uLmdldCgpOwogfQpAQCAtMzczLDcgKzM3Miw3IEBAIGJvb2wgR2VvbG9jYXRpb246OnNo
b3VsZEJsb2NrR2VvbG9jYXRpb25SZXF1ZXN0cygpCiB2b2lkIEdlb2xvY2F0aW9uOjpzdGFydFJl
cXVlc3QoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogewogICAgIGlmIChzaG91bGRCbG9ja0dlb2xv
Y2F0aW9uUmVxdWVzdHMoKSkgewotICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihQb3Np
dGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIG9y
aWdpbkNhbm5vdFJlcXVlc3RHZW9sb2NhdGlvbkVycm9yTWVzc2FnZSkpOworICAgICAgICBub3Rp
Zmllci0+c2V0RmF0YWxFcnJvcihHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNyZWF0ZShHZW9s
b2NhdGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxFLCBvcmlnaW5DYW5ub3RS
ZXF1ZXN0R2VvbG9jYXRpb25FcnJvck1lc3NhZ2UpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICBkb2N1bWVudCgpLT5zZXRHZW9sb2NhdGlvbkFjY2Vzc2VkKCk7CkBAIC0zODEsNyArMzgw
LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RhcnRSZXF1ZXN0KEdlb05vdGlmaWVyKiBub3RpZmll
cikKICAgICAvLyBDaGVjayB3aGV0aGVyIHBlcm1pc3Npb25zIGhhdmUgYWxyZWFkeSBiZWVuIGRl
bmllZC4gTm90ZSB0aGF0IGlmIHRoaXMgaXMgdGhlIGNhc2UsCiAgICAgLy8gdGhlIHBlcm1pc3Np
b24gc3RhdGUgY2FuIG5vdCBjaGFuZ2UgYWdhaW4gaW4gdGhlIGxpZmV0aW1lIG9mIHRoaXMgcGFn
ZS4KICAgICBpZiAoaXNEZW5pZWQoKSkKLSAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3Io
UG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlBFUk1JU1NJT05fREVOSUVELCBw
ZXJtaXNzaW9uRGVuaWVkRXJyb3JNZXNzYWdlKSk7CisgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRh
bEVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRp
b25FcnJvcjo6UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2Up
KTsKICAgICBlbHNlIGlmIChoYXZlU3VpdGFibGVDYWNoZWRQb3NpdGlvbihub3RpZmllci0+b3B0
aW9ucygpKSkKICAgICAgICAgbm90aWZpZXItPnNldFVzZUNhY2hlZFBvc2l0aW9uKCk7CiAgICAg
ZWxzZSBpZiAobm90aWZpZXItPmhhc1plcm9UaW1lb3V0KCkpCkBAIC0zOTMsNyArMzkyLDcgQEAg
dm9pZCBHZW9sb2NhdGlvbjo6c3RhcnRSZXF1ZXN0KEdlb05vdGlmaWVyKiBub3RpZmllcikKICAg
ICB9IGVsc2UgaWYgKHN0YXJ0VXBkYXRpbmcobm90aWZpZXIpKQogICAgICAgICBub3RpZmllci0+
c3RhcnRUaW1lcklmTmVlZGVkKCk7CiAgICAgZWxzZQotICAgICAgICBub3RpZmllci0+c2V0RmF0
YWxFcnJvcihQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5B
VkFJTEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CisgICAgICAgIG5v
dGlmaWVyLT5zZXRGYXRhbEVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdl
b2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIGZhaWxlZFRvU3Rh
cnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CiB9CiAKIHZvaWQgR2VvbG9jYXRpb246OmZhdGFsRXJy
b3JPY2N1cnJlZChHZW9Ob3RpZmllciogbm90aWZpZXIpCkBAIC00MTEsNyArNDEwLDcgQEAgdm9p
ZCBHZW9sb2NhdGlvbjo6cmVxdWVzdFVzZXNDYWNoZWRQb3NpdGlvbihHZW9Ob3RpZmllciogbm90
aWZpZXIpCiAgICAgLy8gVGhpcyBpcyBjYWxsZWQgYXN5bmNocm9ub3VzbHksIHNvIHRoZSBwZXJt
aXNzaW9ucyBjb3VsZCBoYXZlIGJlZW4gZGVuaWVkCiAgICAgLy8gc2luY2Ugd2UgbGFzdCBjaGVj
a2VkIGluIHN0YXJ0UmVxdWVzdC4KICAgICBpZiAoaXNEZW5pZWQoKSkgewotICAgICAgICBub3Rp
Zmllci0+c2V0RmF0YWxFcnJvcihQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6
UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2UpKTsKKyAgICAg
ICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVh
dGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lv
bkRlbmllZEVycm9yTWVzc2FnZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00NDMs
NyArNDQyLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6bWFrZUNhY2hlZFBvc2l0aW9uQ2FsbGJhY2tz
KCkKICAgICAgICAgICAgIGlmIChub3RpZmllci0+aGFzWmVyb1RpbWVvdXQoKSB8fCBzdGFydFVw
ZGF0aW5nKG5vdGlmaWVyLmdldCgpKSkKICAgICAgICAgICAgICAgICBub3RpZmllci0+c3RhcnRU
aW1lcklmTmVlZGVkKCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbm90aWZp
ZXItPnNldEZhdGFsRXJyb3IoUG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlBP
U0lUSU9OX1VOQVZBSUxBQkxFLCBmYWlsZWRUb1N0YXJ0U2VydmljZUVycm9yTWVzc2FnZSkpOwor
ICAgICAgICAgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKEdlb2xvY2F0aW9uUG9zaXRp
b25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJ
TEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CiAgICAgICAgIH0KICAg
ICB9CiAKQEAgLTQ2NCw3ICs0NjMsNyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpyZXF1ZXN0VGltZWRP
dXQoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogCiBib29sIEdlb2xvY2F0aW9uOjpoYXZlU3VpdGFi
bGVDYWNoZWRQb3NpdGlvbihjb25zdCBQb3NpdGlvbk9wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAg
R2VvcG9zaXRpb24qIGNhY2hlZFBvc2l0aW9uID0gbGFzdFBvc2l0aW9uKCk7CisgICAgYXV0byog
Y2FjaGVkUG9zaXRpb24gPSBsYXN0UG9zaXRpb24oKTsKICAgICBpZiAoIWNhY2hlZFBvc2l0aW9u
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFvcHRpb25zLm1heGltdW1BZ2UpCkBA
IC01MDYsNyArNTA1LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c2V0SXNBbGxvd2VkKGJvb2wgYWxs
b3dlZCkKICAgICB9CiAKICAgICBpZiAoIWlzQWxsb3dlZCgpKSB7Ci0gICAgICAgIGF1dG8gZXJy
b3IgPSBQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UEVSTUlTU0lPTl9ERU5J
RUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2UpOworICAgICAgICBhdXRvIGVycm9yID0g
R2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9y
OjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZSk7CiAgICAg
ICAgIGVycm9yLT5zZXRJc0ZhdGFsKHRydWUpOwogICAgICAgICBoYW5kbGVFcnJvcihlcnJvcik7
CiAgICAgICAgIG1fcmVxdWVzdHNBd2FpdGluZ0NhY2hlZFBvc2l0aW9uLmNsZWFyKCk7CkBAIC01
MTgsMTkgKzUxNywxOSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpzZXRJc0FsbG93ZWQoYm9vbCBhbGxv
d2VkKQogICAgIC8vIElmIHRoZSBzZXJ2aWNlIGhhcyBhIGxhc3QgcG9zaXRpb24sIHVzZSBpdCB0
byBjYWxsIGJhY2sgZm9yIGFsbCByZXF1ZXN0cy4KICAgICAvLyBJZiBhbnkgb2YgdGhlIHJlcXVl
c3RzIGFyZSB3YWl0aW5nIGZvciBwZXJtaXNzaW9uIGZvciBhIGNhY2hlZCBwb3NpdGlvbiwKICAg
ICAvLyB0aGUgcG9zaXRpb24gZnJvbSB0aGUgc2VydmljZSB3aWxsIGJlIGF0IGxlYXN0IGFzIGZy
ZXNoLgotICAgIGlmIChSZWZQdHI8R2VvcG9zaXRpb24+IHBvc2l0aW9uID0gbGFzdFBvc2l0aW9u
KCkpCisgICAgaWYgKFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3NpdGlvbiA9IGxhc3RQ
b3NpdGlvbigpKQogICAgICAgICBtYWtlU3VjY2Vzc0NhbGxiYWNrcygqcG9zaXRpb24pOwogICAg
IGVsc2UKICAgICAgICAgbWFrZUNhY2hlZFBvc2l0aW9uQ2FsbGJhY2tzKCk7CiB9CiAKLXZvaWQg
R2VvbG9jYXRpb246OnNlbmRFcnJvcihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZpZXJzLCBQb3Np
dGlvbkVycm9yJiBlcnJvcikKK3ZvaWQgR2VvbG9jYXRpb246OnNlbmRFcnJvcihHZW9Ob3RpZmll
clZlY3RvciYgbm90aWZpZXJzLCBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImIGVycm9yKQogewog
ICAgIGZvciAoYXV0byYgbm90aWZpZXIgOiBub3RpZmllcnMpCiAgICAgICAgIG5vdGlmaWVyLT5y
dW5FcnJvckNhbGxiYWNrKGVycm9yKTsKIH0KIAotdm9pZCBHZW9sb2NhdGlvbjo6c2VuZFBvc2l0
aW9uKEdlb05vdGlmaWVyVmVjdG9yJiBub3RpZmllcnMsIEdlb3Bvc2l0aW9uJiBwb3NpdGlvbikK
K3ZvaWQgR2VvbG9jYXRpb246OnNlbmRQb3NpdGlvbihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZp
ZXJzLCBHZW9sb2NhdGlvblBvc2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBmb3IgKGF1dG8mIG5v
dGlmaWVyIDogbm90aWZpZXJzKQogICAgICAgICBub3RpZmllci0+cnVuU3VjY2Vzc0NhbGxiYWNr
KCZwb3NpdGlvbik7CkBAIC01NjUsNyArNTY0LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RvcFRp
bWVycygpCiB2b2lkIEdlb2xvY2F0aW9uOjpjYW5jZWxSZXF1ZXN0cyhHZW9Ob3RpZmllclZlY3Rv
ciYgbm90aWZpZXJzKQogewogICAgIGZvciAoYXV0byYgbm90aWZpZXIgOiBub3RpZmllcnMpCi0g
ICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3Np
dGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgZnJhbWVsZXNzRG9jdW1lbnRFcnJvck1l
c3NhZ2UpKTsKKyAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Qb3Np
dGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFW
QUlMQUJMRSwgZnJhbWVsZXNzRG9jdW1lbnRFcnJvck1lc3NhZ2UpKTsKIH0KIAogdm9pZCBHZW9s
b2NhdGlvbjo6Y2FuY2VsQWxsUmVxdWVzdHMoKQpAQCAtNTk1LDcgKzU5NCw3IEBAIHZvaWQgR2Vv
bG9jYXRpb246OmNvcHlUb1NldChjb25zdCBHZW9Ob3RpZmllclZlY3RvciYgc3JjLCBHZW9Ob3Rp
ZmllclNldCYgZGVzdCkKICAgICAgICAgZGVzdC5hZGQobm90aWZpZXIuZ2V0KCkpOwogfQogCi12
b2lkIEdlb2xvY2F0aW9uOjpoYW5kbGVFcnJvcihQb3NpdGlvbkVycm9yJiBlcnJvcikKK3ZvaWQg
R2VvbG9jYXRpb246OmhhbmRsZUVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciYgZXJyb3Ip
CiB7CiAgICAgYXV0byBvbmVTaG90c0NvcHkgPSBjb3B5VG9WZWN0b3IobV9vbmVTaG90cyk7CiAK
QEAgLTY0Myw3ICs2NDIsNyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lvbigp
CiAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5yZXF1ZXN0UGVybWlzc2lv
bigqdGhpcyk7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb246Om1ha2VTdWNjZXNzQ2FsbGJhY2tzKEdl
b3Bvc2l0aW9uJiBwb3NpdGlvbikKK3ZvaWQgR2VvbG9jYXRpb246Om1ha2VTdWNjZXNzQ2FsbGJh
Y2tzKEdlb2xvY2F0aW9uUG9zaXRpb24mIHBvc2l0aW9uKQogewogICAgIEFTU0VSVChsYXN0UG9z
aXRpb24oKSk7CiAgICAgQVNTRVJUKGlzQWxsb3dlZCgpKTsKQEAgLTY3Nyw3ICs2NzYsNyBAQCB2
b2lkIEdlb2xvY2F0aW9uOjpwb3NpdGlvbkNoYW5nZWQoKQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgUmVmUHRyPEdlb3Bvc2l0aW9uPiBwb3NpdGlvbiA9IGxhc3RQb3NpdGlvbigpOwor
ICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3NpdGlvbiA9IGxhc3RQb3NpdGlvbigp
OwogICAgIEFTU0VSVChwb3NpdGlvbik7CiAKICAgICBtYWtlU3VjY2Vzc0NhbGxiYWNrcygqcG9z
aXRpb24pOwpAQCAtNjg2LDExICs2ODUsMTEgQEAgdm9pZCBHZW9sb2NhdGlvbjo6cG9zaXRpb25D
aGFuZ2VkKCkKIHZvaWQgR2VvbG9jYXRpb246OnNldEVycm9yKEdlb2xvY2F0aW9uRXJyb3ImIGVy
cm9yKQogewogICAgIGlmIChtX2lzU3VzcGVuZGVkKSB7Ci0gICAgICAgIG1fZXJyb3JXYWl0aW5n
Rm9yUmVzdW1lID0gY3JlYXRlUG9zaXRpb25FcnJvcihlcnJvcik7CisgICAgICAgIG1fZXJyb3JX
YWl0aW5nRm9yUmVzdW1lID0gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKGVycm9yKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcG9zaXRpb25FcnJvciA9IGNyZWF0
ZVBvc2l0aW9uRXJyb3IoZXJyb3IpOworICAgIGF1dG8gcG9zaXRpb25FcnJvciA9IGNyZWF0ZUdl
b2xvY2F0aW9uUG9zaXRpb25FcnJvcihlcnJvcik7CiAgICAgaGFuZGxlRXJyb3IocG9zaXRpb25F
cnJvcik7CiB9CiAKQEAgLTcyNCw5ICs3MjMsOSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpoYW5kbGVQ
ZW5kaW5nUGVybWlzc2lvbk5vdGlmaWVycygpCiAgICAgICAgICAgICBpZiAoc3RhcnRVcGRhdGlu
Zyhub3RpZmllci5nZXQoKSkpCiAgICAgICAgICAgICAgICAgbm90aWZpZXItPnN0YXJ0VGltZXJJ
Zk5lZWRlZCgpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG5vdGlmaWVyLT5z
ZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQT1NJVElP
Tl9VTkFWQUlMQUJMRSwgZmFpbGVkVG9TdGFydFNlcnZpY2VFcnJvck1lc3NhZ2UpKTsKKyAgICAg
ICAgICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihHZW9sb2NhdGlvblBvc2l0aW9uRXJy
b3I6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxF
LCBmYWlsZWRUb1N0YXJ0U2VydmljZUVycm9yTWVzc2FnZSkpOwogICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQ
b3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVz
c2FnZSkpOworICAgICAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9O
X0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZSkpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCmluZGV4
IDJhMDE5OGVlY2RjNWJkNTM0YWZhNzk5MGMyMTE0ZDAyNTM5YjBjNTguLjQ2MGM5MTIxODRiZDEw
ZWZhZmMwZjAyYzAyMmViZDZkMjc1OGQwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgKQEAgLTMwLDkgKzMwLDkgQEAKIAogI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAi
R2VvcG9zaXRpb24uaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCisjaW5jbHVk
ZSAiR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmgiCiAjaW5jbHVkZSAiUG9zaXRpb25DYWxsYmFj
ay5oIgotI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKICNpbmNsdWRlICJQb3NpdGlvbkVycm9y
Q2FsbGJhY2suaCIKICNpbmNsdWRlICJQb3NpdGlvbk9wdGlvbnMuaCIKICNpbmNsdWRlICJTY3Jp
cHRXcmFwcGFibGUuaCIKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBHZW9sb2NhdGlvbihOYXZpZ2F0b3ImKTsKIAotICAgIEdlb3Bvc2l0aW9uKiBsYXN0
UG9zaXRpb24oKTsKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uKiBsYXN0UG9zaXRpb24oKTsKIAog
ICAgIC8vIEFjdGl2ZURPTU9iamVjdAogICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwpAQCAtMTE1
LDggKzExNSw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIGhhc0xpc3RlbmVycygpIGNvbnN0IHsg
cmV0dXJuICFtX29uZVNob3RzLmlzRW1wdHkoKSB8fCAhbV93YXRjaGVycy5pc0VtcHR5KCk7IH0K
IAotICAgIHZvaWQgc2VuZEVycm9yKEdlb05vdGlmaWVyVmVjdG9yJiwgUG9zaXRpb25FcnJvciYp
OwotICAgIHZvaWQgc2VuZFBvc2l0aW9uKEdlb05vdGlmaWVyVmVjdG9yJiwgR2VvcG9zaXRpb24m
KTsKKyAgICB2b2lkIHNlbmRFcnJvcihHZW9Ob3RpZmllclZlY3RvciYsIEdlb2xvY2F0aW9uUG9z
aXRpb25FcnJvciYpOworICAgIHZvaWQgc2VuZFBvc2l0aW9uKEdlb05vdGlmaWVyVmVjdG9yJiwg
R2VvbG9jYXRpb25Qb3NpdGlvbiYpOwogCiAgICAgc3RhdGljIHZvaWQgZXh0cmFjdE5vdGlmaWVy
c1dpdGhDYWNoZWRQb3NpdGlvbihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZpZXJzLCBHZW9Ob3Rp
ZmllclZlY3RvciogY2FjaGVkKTsKICAgICBzdGF0aWMgdm9pZCBjb3B5VG9TZXQoY29uc3QgR2Vv
Tm90aWZpZXJWZWN0b3ImLCBHZW9Ob3RpZmllclNldCYpOwpAQCAtMTI5LDggKzEyOSw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBjYW5jZWxSZXF1ZXN0cyhHZW9Ob3RpZmllclZlY3RvciYpOwogICAg
IHZvaWQgY2FuY2VsQWxsUmVxdWVzdHMoKTsKIAotICAgIHZvaWQgbWFrZVN1Y2Nlc3NDYWxsYmFj
a3MoR2VvcG9zaXRpb24mKTsKLSAgICB2b2lkIGhhbmRsZUVycm9yKFBvc2l0aW9uRXJyb3ImKTsK
KyAgICB2b2lkIG1ha2VTdWNjZXNzQ2FsbGJhY2tzKEdlb2xvY2F0aW9uUG9zaXRpb24mKTsKKyAg
ICB2b2lkIGhhbmRsZUVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciYpOwogCiAgICAgdm9p
ZCByZXF1ZXN0UGVybWlzc2lvbigpOwogCkBAIC0xNTMsMTMgKzE1MywxMyBAQCBwcml2YXRlOgog
ICAgIEdlb05vdGlmaWVyU2V0IG1fb25lU2hvdHM7CiAgICAgV2F0Y2hlcnMgbV93YXRjaGVyczsK
ICAgICBHZW9Ob3RpZmllclNldCBtX3BlbmRpbmdGb3JQZXJtaXNzaW9uTm90aWZpZXJzOwotICAg
IFJlZlB0cjxHZW9wb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247CisgICAgUmVmUHRyPEdlb2xvY2F0
aW9uUG9zaXRpb24+IG1fbGFzdFBvc2l0aW9uOwogCiAgICAgZW51bSB7IFVua25vd24sIEluUHJv
Z3Jlc3MsIFllcywgTm8gfSBtX2FsbG93R2VvbG9jYXRpb24geyBVbmtub3duIH07CiAgICAgYm9v
bCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVzZXRPblJlc3VtZSB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2hhc0NoYW5nZWRQb3NpdGlvbiB7IGZhbHNlIH07Ci0gICAgUmVm
UHRyPFBvc2l0aW9uRXJyb3I+IG1fZXJyb3JXYWl0aW5nRm9yUmVzdW1lOworICAgIFJlZlB0cjxH
ZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I+IG1fZXJyb3JXYWl0aW5nRm9yUmVzdW1lOwogICAgIFRp
bWVyIG1fcmVzdW1lVGltZXI7CiAgICAgR2VvTm90aWZpZXJTZXQgbV9yZXF1ZXN0c0F3YWl0aW5n
Q2FjaGVkUG9zaXRpb247CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmlkbAppbmRleCBmNTczZDE2ZDY5ODBjODc2ZjU3YmYwOGExZjVj
ZDEzNjc2OGU5N2EzLi5lZGFkZDNhNWUyMTk5ZTkzZTFjOTE4YWU3OWY2MDI4OTA1ZjljNDFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmlkbApAQCAtMjUsNyArMjUsNiBAQAogCiAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9nZW9sb2Nh
dGlvbi1BUEkvI2dlb2xvY2F0aW9uX2ludGVyZmFjZQogWwotICAgIE5vSW50ZXJmYWNlT2JqZWN0
LAogICAgIENvbmRpdGlvbmFsPUdFT0xPQ0FUSU9OLCAKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxl
PVJlYWNoYWJsZUZyb21OYXZpZ2F0b3IsCiBdIGludGVyZmFjZSBHZW9sb2NhdGlvbiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xp
ZW50LmgKaW5kZXggZTdlMGU3NmQ0MGZjNTVkMmZjNGI0ZWY1MjdjMzI0OTczNDFlMzkzOS4uMjk3
MDNmYmI3YmEzYjhiNjMyNzk5ZDdjOTI3ZDFmMWUyNWQ2YmMwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25DbGllbnQuaApAQCAt
MzAsNyArMzAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHZW9sb2NhdGlvbjsK
LWNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YTsKIGNsYXNzIFBhZ2U7CiAKIGNsYXNzIEdlb2xvY2F0aW9uQ2xpZW50IHsKQEAgLTQ0LDcgKzQ0
LDcgQEAgcHVibGljOgogICAgIC8vIFdlIHNob3VsZCB1cGRhdGUgV2ViS2l0IHRvIHJlZmxlY3Qg
dGhpcyBpZiBhbmQgd2hlbiB0aGUgVjIgc3BlY2lmaWNhdGlvbgogICAgIC8vIGlzIHB1Ymxpc2hl
ZC4KICAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpID0gMDsKLSAg
ICB2aXJ0dWFsIE9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+IGxhc3RQb3NpdGlvbigpID0g
MDsKKyAgICB2aXJ0dWFsIE9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBsYXN0UG9z
aXRpb24oKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oR2VvbG9j
YXRpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KEdl
b2xvY2F0aW9uJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IGNkODA3MGIyMDdk
YjhhMzQ0MDI2Y2ZmNjEwNWI4NWVlMTliYzUyNGMuLmM2YTI4MmZjZTkzNzA1YmQ3NjExMGQ0YTE3
NmNjZTVmNDNkNDNlMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKQEAgLTMwLDcgKzMwLDcg
QEAKIAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRp
b25FcnJvci5oIgotI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKKyNpbmNsdWRlICJH
ZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk5
LDcgKzk5LDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmNhbmNlbFBlcm1pc3Npb25S
ZXF1ZXN0KEdlb2xvY2F0aW9uJiBnZW9sb2NhdGlvbikKICAgICBtX2NsaWVudC5jYW5jZWxQZXJt
aXNzaW9uUmVxdWVzdChnZW9sb2NhdGlvbik7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb25Db250cm9s
bGVyOjpwb3NpdGlvbkNoYW5nZWQoY29uc3QgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4m
IHBvc2l0aW9uKQordm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OnBvc2l0aW9uQ2hhbmdlZChj
b25zdCBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4mIHBvc2l0aW9uKQogewogICAg
IG1fbGFzdFBvc2l0aW9uID0gcG9zaXRpb247CiAgICAgVmVjdG9yPFJlZjxHZW9sb2NhdGlvbj4+
IG9ic2VydmVyc1ZlY3RvcjsKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIEdlb2xvY2F0aW9uQ29u
dHJvbGxlcjo6ZXJyb3JPY2N1cnJlZChHZW9sb2NhdGlvbkVycm9yJiBlcnJvcikKICAgICAgICAg
b2JzZXJ2ZXItPnNldEVycm9yKGVycm9yKTsKIH0KIAotT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3Np
dGlvbj4gR2VvbG9jYXRpb25Db250cm9sbGVyOjpsYXN0UG9zaXRpb24oKQorT3B0aW9uYWw8R2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGE+IEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6bGFzdFBvc2l0aW9u
KCkKIHsKICAgICBpZiAobV9sYXN0UG9zaXRpb24pCiAgICAgICAgIHJldHVybiBtX2xhc3RQb3Np
dGlvbi52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmgKaW5kZXggMGM3MDQ5YmExMDEzYzI0MmM5
MjUyYzYxNTJiZmUzNDgxYWExNjU2Ni4uNTQ5MzRkNzlhMDY5ZWRlNWI0YTk2NzJhMTFlZjUxNWQ3
NDM3NzdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9H
ZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgR2VvbG9jYXRpb25DbGllbnQ7CiBjbGFzcyBHZW9sb2NhdGlv
bkVycm9yOwotY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9z
aXRpb25EYXRhOwogCiBjbGFzcyBHZW9sb2NhdGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxl
bWVudDxQYWdlPiwgcHJpdmF0ZSBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNTMsMTAgKzUzLDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlcXVlc3RQZXJtaXNzaW9uKEdlb2xvY2F0aW9uJik7CiAgICAgdm9pZCBjYW5jZWxQZXJt
aXNzaW9uUmVxdWVzdChHZW9sb2NhdGlvbiYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBw
b3NpdGlvbkNoYW5nZWQoY29uc3QgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4mKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc2l0aW9uQ2hhbmdlZChjb25zdCBPcHRpb25hbDxHZW9s
b2NhdGlvblBvc2l0aW9uRGF0YT4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVycm9yT2Nj
dXJyZWQoR2VvbG9jYXRpb25FcnJvciYpOwogCi0gICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3Np
dGlvbj4gbGFzdFBvc2l0aW9uKCk7CisgICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRh
dGE+IGxhc3RQb3NpdGlvbigpOwogCiAgICAgR2VvbG9jYXRpb25DbGllbnQmIGNsaWVudCgpIHsg
cmV0dXJuIG1fY2xpZW50OyB9CiAKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgYWN0aXZpdHlTdGF0ZURpZENoYW5nZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4g
b2xkQWN0aXZpdHlTdGF0ZSwgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU6OkZsYWc+IG5ld0FjdGl2
aXR5U3RhdGUpIG92ZXJyaWRlOwogCi0gICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4g
bV9sYXN0UG9zaXRpb247CisgICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IG1f
bGFzdFBvc2l0aW9uOwogCiAgICAgdHlwZWRlZiBIYXNoU2V0PFJlZjxHZW9sb2NhdGlvbj4+IE9i
c2VydmVyc1NldDsKICAgICAvLyBBbGwgb2JzZXJ2ZXJzOyBib3RoIHRob3NlIHJlcXVlc3Rpbmcg
aGlnaCBhY2N1cmFjeSBhbmQgdGhvc2Ugbm90LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTJlYjBkY2EwMzFmNzA1YWE3MzRjOGIwZTlhYjBhMWFjMWEwMjliNAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b25Db29yZGluYXRlcy5jcHAKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
Ikdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHZW9s
b2NhdGlvbkNvb3JkaW5hdGVzOjpHZW9sb2NhdGlvbkNvb3JkaW5hdGVzKEdlb2xvY2F0aW9uUG9z
aXRpb25EYXRhJiYgcG9zaXRpb24pCisgICAgOiBtX3Bvc2l0aW9uKFdURk1vdmUocG9zaXRpb24p
KQoreworICAgIEFTU0VSVChtX3Bvc2l0aW9uLmlzVmFsaWQoKSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc1MWNhYzQ3NDIx
N2ExNTc1YTY3YWFjZDllOTQ0NTQ3NDc0ZGQ3OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5oCkBAIC0w
LDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb25EYXRh
LmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
R2VvbG9jYXRpb25Db29yZGluYXRlcyA6IHB1YmxpYyBSZWZDb3VudGVkPEdlb2xvY2F0aW9uQ29v
cmRpbmF0ZXM+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEdlb2xvY2F0aW9uQ29vcmRpbmF0
ZXM+IGNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmIHBvc2l0aW9uKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR2VvbG9jYXRpb25Db29yZGluYXRlcyhXVEZNb3Zl
KHBvc2l0aW9uKSkpOworICAgIH0KKworICAgIFJlZjxHZW9sb2NhdGlvbkNvb3JkaW5hdGVzPiBp
c29sYXRlZENvcHkoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEdlb2xvY2F0aW9uQ29v
cmRpbmF0ZXM6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRGF0YShtX3Bvc2l0aW9uKSk7Cisg
ICAgfQorCisgICAgZG91YmxlIGxhdGl0dWRlKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5s
YXRpdHVkZTsgfQorICAgIGRvdWJsZSBsb25naXR1ZGUoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0
aW9uLmxvbmdpdHVkZTsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4gYWx0aXR1ZGUoKSBjb25zdCB7
IHJldHVybiBtX3Bvc2l0aW9uLmFsdGl0dWRlOyB9CisgICAgZG91YmxlIGFjY3VyYWN5KCkgY29u
c3QgeyByZXR1cm4gbV9wb3NpdGlvbi5hY2N1cmFjeTsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4g
YWx0aXR1ZGVBY2N1cmFjeSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24uYWx0aXR1ZGVBY2N1
cmFjeTsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4gaGVhZGluZygpIGNvbnN0IHsgcmV0dXJuIG1f
cG9zaXRpb24uaGVhZGluZzsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4gc3BlZWQoKSBjb25zdCB7
IHJldHVybiBtX3Bvc2l0aW9uLnNwZWVkOyB9CisgICAgT3B0aW9uYWw8ZG91YmxlPiBmbG9vckxl
dmVsKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5mbG9vckxldmVsOyB9CisgICAgCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMoR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEmJik7CisKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBtX3Bvc2l0aW9uOwor
fTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZmMzk1NjRjNDM2YTUxZmRiZTUwZmJiZjQ0Nzg5YTYyN2I0NTBjNzAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uQ29vcmRpbmF0ZXMuaWRsCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDktMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9R0VP
TE9DQVRJT04sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgR2Vv
bG9jYXRpb25Db29yZGluYXRlcyB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3Rl
ZCBkb3VibGUgbGF0aXR1ZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBk
b3VibGUgbG9uZ2l0dWRlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91
YmxlPyBhbHRpdHVkZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZSBhY2N1cmFjeTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8g
YWx0aXR1ZGVBY2N1cmFjeTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZT8gaGVhZGluZzsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZT8gc3BlZWQ7CisgICAgCisgICAgLy8gTm9uIHN0YW5kYXJkLgorICAgIFtFbmFibGVkQnlTZXR0
aW5nPUdlb2xvY2F0aW9uRmxvb3JMZXZlbF0gcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3Rl
ZCBkb3VibGU/IGZsb29yTGV2ZWw7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaAppbmRleCBkNjlkYjU0M2Y4
ZTBmNmRlNzQ1ZGQ2MzAxNThlMWQxMWQ3MTYyYmU0Li5iOTEwMDA1MjhmYjViYzAwYmEwNDFlYjJm
NjYxYWI4MGU5ZDYzN2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMCwxMDggKzEwLDUyIEBACiAgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCiAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8K
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxjbWF0aD4KLSNpbmNsdWRlIDx3dGYvT3B0aW9u
YWwuaD4KLSNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSAiRE9NVGltZVN0YW1wLmgiCisj
aW5jbHVkZSAiR2VvbG9jYXRpb25Db29yZGluYXRlcy5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+Ci0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotT0JKQ19DTEFTUyBDTExvY2F0aW9u
OwotI2VuZGlmCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbiB7CitjbGFzcyBHZW9sb2NhdGlv
blBvc2l0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8R2VvbG9jYXRpb25Qb3NpdGlvbj4gewogcHVi
bGljOgotICAgIEdlb2xvY2F0aW9uUG9zaXRpb24oKSA9IGRlZmF1bHQ7Ci0KLSAgICBHZW9sb2Nh
dGlvblBvc2l0aW9uKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxv
bmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQotICAgICAgICA6IHRpbWVzdGFtcCh0aW1lc3RhbXAp
Ci0gICAgICAgICwgbGF0aXR1ZGUobGF0aXR1ZGUpCi0gICAgICAgICwgbG9uZ2l0dWRlKGxvbmdp
dHVkZSkKLSAgICAgICAgLCBhY2N1cmFjeShhY2N1cmFjeSkKKyAgICBzdGF0aWMgUmVmPEdlb2xv
Y2F0aW9uUG9zaXRpb24+IGNyZWF0ZShSZWY8R2VvbG9jYXRpb25Db29yZGluYXRlcz4mJiBjb29y
ZGluYXRlcywgRE9NVGltZVN0YW1wIHRpbWVzdGFtcCkKICAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEdlb2xvY2F0aW9uUG9zaXRpb24oV1RGTW92ZShjb29yZGluYXRlcyksIHRp
bWVzdGFtcCkpOwogICAgIH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgV0VCQ09S
RV9FWFBPUlQgZXhwbGljaXQgR2VvbG9jYXRpb25Qb3NpdGlvbihDTExvY2F0aW9uKik7Ci0jZW5k
aWYKLQotICAgIGRvdWJsZSB0aW1lc3RhbXAgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46
OnF1aWV0X05hTigpIH07Ci0KLSAgICBkb3VibGUgbGF0aXR1ZGUgeyBzdGQ6Om51bWVyaWNfbGlt
aXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07Ci0gICAgZG91YmxlIGxvbmdpdHVkZSB7IHN0ZDo6
bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsKLSAgICBkb3VibGUgYWNjdXJh
Y3kgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07Ci0KLSAgICBP
cHRpb25hbDxkb3VibGU+IGFsdGl0dWRlOwotICAgIE9wdGlvbmFsPGRvdWJsZT4gYWx0aXR1ZGVB
Y2N1cmFjeTsKLSAgICBPcHRpb25hbDxkb3VibGU+IGhlYWRpbmc7Ci0gICAgT3B0aW9uYWw8ZG91
YmxlPiBzcGVlZDsKLSAgICBPcHRpb25hbDxkb3VibGU+IGZsb29yTGV2ZWw7CisgICAgUmVmPEdl
b2xvY2F0aW9uUG9zaXRpb24+IGlzb2xhdGVkQ29weSgpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gY3JlYXRlKG1fY29vcmRpbmF0ZXMtPmlzb2xhdGVkQ29weSgpLCBtX3RpbWVzdGFtcCk7
CisgICAgfQogCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgRE9NVGltZVN0YW1wIHRp
bWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgY29uc3QgR2VvbG9j
YXRpb25Db29yZGluYXRlcyYgY29vcmRzKCkgY29uc3QgeyByZXR1cm4gbV9jb29yZGluYXRlcy5n
ZXQoKTsgfQorICAgIAorcHJpdmF0ZToKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uKFJlZjxHZW9s
b2NhdGlvbkNvb3JkaW5hdGVzPiYmIGNvb3JkaW5hdGVzLCBET01UaW1lU3RhbXAgdGltZXN0YW1w
KQorICAgICAgICA6IG1fY29vcmRpbmF0ZXMoV1RGTW92ZShjb29yZGluYXRlcykpCisgICAgICAg
ICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQorICAgIHsKKyAgICB9CiAKLSAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBHZW9sb2NhdGlvblBv
c2l0aW9uJik7CisgICAgUmVmPEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXM+IG1fY29vcmRpbmF0ZXM7
CisgICAgRE9NVGltZVN0YW1wIG1fdGltZXN0YW1wOwogfTsKLQotdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4KLXZvaWQgR2VvbG9jYXRpb25Qb3NpdGlvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Ci17Ci0gICAgZW5jb2RlciA8PCB0aW1lc3RhbXA7Ci0gICAgZW5jb2RlciA8PCBsYXRp
dHVkZTsKLSAgICBlbmNvZGVyIDw8IGxvbmdpdHVkZTsKLSAgICBlbmNvZGVyIDw8IGFjY3VyYWN5
OwotICAgIGVuY29kZXIgPDwgYWx0aXR1ZGU7Ci0gICAgZW5jb2RlciA8PCBhbHRpdHVkZUFjY3Vy
YWN5OwotICAgIGVuY29kZXIgPDwgaGVhZGluZzsKLSAgICBlbmNvZGVyIDw8IHNwZWVkOwotICAg
IGVuY29kZXIgPDwgZmxvb3JMZXZlbDsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLWJv
b2wgR2VvbG9jYXRpb25Qb3NpdGlvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEdlb2xvY2F0
aW9uUG9zaXRpb24mIHBvc2l0aW9uKQotewotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRp
b24udGltZXN0YW1wKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocG9zaXRpb24ubGF0aXR1ZGUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5sb25naXR1ZGUpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5hY2N1cmFjeSkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmFsdGl0dWRl
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRp
b24uYWx0aXR1ZGVBY2N1cmFjeSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBvc2l0aW9uLmhlYWRpbmcpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5zcGVlZCkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmZsb29yTGV2ZWwpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotaW5saW5lIGJvb2wg
R2VvbG9jYXRpb25Qb3NpdGlvbjo6aXNWYWxpZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICFzdGQ6
OmlzbmFuKHRpbWVzdGFtcCkgJiYgIXN0ZDo6aXNuYW4obGF0aXR1ZGUpICYmICFzdGQ6OmlzbmFu
KGxvbmdpdHVkZSkgJiYgIXN0ZDo6aXNuYW4oYWNjdXJhY3kpOwotfQotCisgICAgCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzJmOGQ5ZmE4
ZTFkM2NhYjk3ZDQ1MDk0OGYzZjE0MTU5NjdkOWE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbApAQCAt
MCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworWworICAgIENvbmRpdGlvbmFsPUdFT0xPQ0FUSU9OLAorICAgIEltcGxlbWVudGF0
aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIEdlb2xvY2F0aW9uUG9zaXRpb24geworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzIGNvb3JkczsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NVGltZVN0YW1wIHRpbWVzdGFtcDsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRp
b25EYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGMyYjRlMzQ1YzM5ZDViMDhjOWUxNzU2NDc3NThhMjZhMWFk
MDNlMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCitPQkpDX0NMQVNTIENMTG9jYXRpb247
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YSB7CitwdWJsaWM6CisgICAgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoKSA9IGRlZmF1
bHQ7CisKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YShkb3VibGUgdGltZXN0YW1wLCBkb3Vi
bGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKKyAgICAgICAg
OiB0aW1lc3RhbXAodGltZXN0YW1wKQorICAgICAgICAsIGxhdGl0dWRlKGxhdGl0dWRlKQorICAg
ICAgICAsIGxvbmdpdHVkZShsb25naXR1ZGUpCisgICAgICAgICwgYWNjdXJhY3koYWNjdXJhY3kp
CisgICAgeworICAgIH0KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgV0VCQ09SRV9F
WFBPUlQgZXhwbGljaXQgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoQ0xMb2NhdGlvbiopOworI2Vu
ZGlmCisKKyAgICBkb3VibGUgdGltZXN0YW1wIHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKSB9OworCisgICAgZG91YmxlIGxhdGl0dWRlIHsgc3RkOjpudW1lcmljX2xp
bWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OworICAgIGRvdWJsZSBsb25naXR1ZGUgeyBzdGQ6
Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07CisgICAgZG91YmxlIGFjY3Vy
YWN5IHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OworCisgICAg
T3B0aW9uYWw8ZG91YmxlPiBhbHRpdHVkZTsKKyAgICBPcHRpb25hbDxkb3VibGU+IGFsdGl0dWRl
QWNjdXJhY3k7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBoZWFkaW5nOworICAgIE9wdGlvbmFsPGRv
dWJsZT4gc3BlZWQ7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBmbG9vckxldmVsOworCisgICAgYm9v
bCBpc1ZhbGlkKCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IGJvb2wgZGVjb2RlKERlY29kZXImLCBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYpOworfTsKKwor
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdGltZXN0YW1w
OworICAgIGVuY29kZXIgPDwgbGF0aXR1ZGU7CisgICAgZW5jb2RlciA8PCBsb25naXR1ZGU7Cisg
ICAgZW5jb2RlciA8PCBhY2N1cmFjeTsKKyAgICBlbmNvZGVyIDw8IGFsdGl0dWRlOworICAgIGVu
Y29kZXIgPDwgYWx0aXR1ZGVBY2N1cmFjeTsKKyAgICBlbmNvZGVyIDw8IGhlYWRpbmc7CisgICAg
ZW5jb2RlciA8PCBzcGVlZDsKKyAgICBlbmNvZGVyIDw8IGZsb29yTGV2ZWw7Cit9CisKK3RlbXBs
YXRlPGNsYXNzIERlY29kZXI+Citib29sIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmIHBvc2l0aW9uKQorewor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24udGltZXN0YW1wKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24ubGF0aXR1ZGUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5s
b25naXR1ZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwb3NpdGlvbi5hY2N1cmFjeSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBvc2l0aW9uLmFsdGl0dWRlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24uYWx0aXR1ZGVBY2N1cmFjeSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmhlYWRp
bmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3Np
dGlvbi5zcGVlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBvc2l0aW9uLmZsb29yTGV2ZWwpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworaW5saW5lIGJvb2wgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6Omlz
VmFsaWQoKSBjb25zdAoreworICAgIHJldHVybiAhc3RkOjppc25hbih0aW1lc3RhbXApICYmICFz
dGQ6OmlzbmFuKGxhdGl0dWRlKSAmJiAhc3RkOjppc25hbihsb25naXR1ZGUpICYmICFzdGQ6Omlz
bmFuKGFjY3VyYWN5KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJy
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3Np
dGlvbkVycm9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE0NGUxZTI3YjFmMWUzNmQxMjFmYjBjNzQ3OWMzNzQx
NGYwN2MxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRp
b25FcnJvciA6IHB1YmxpYyBSZWZDb3VudGVkPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gewor
cHVibGljOgorICAgIGVudW0gRXJyb3JDb2RlIHsKKyAgICAgICAgUEVSTUlTU0lPTl9ERU5JRUQg
PSAxLAorICAgICAgICBQT1NJVElPTl9VTkFWQUlMQUJMRSA9IDIsCisgICAgICAgIFRJTUVPVVQg
PSAzCisgICAgfTsKKyAgICAKKyAgICBzdGF0aWMgUmVmPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJv
cj4gY3JlYXRlKEVycm9yQ29kZSBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKGNvZGUsIG1lc3NhZ2UpKTsg
fQorCisgICAgRXJyb3JDb2RlIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KKyAgICBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KKyAgICB2
b2lkIHNldElzRmF0YWwoYm9vbCBpc0ZhdGFsKSB7IG1faXNGYXRhbCA9IGlzRmF0YWw7IH0KKyAg
ICBib29sIGlzRmF0YWwoKSBjb25zdCB7IHJldHVybiBtX2lzRmF0YWw7IH0KKyAgICAKK3ByaXZh
dGU6CisgICAgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKEVycm9yQ29kZSBjb2RlLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCisgICAgICAgIDogbV9jb2RlKGNvZGUpCisgICAgICAgICwgbV9tZXNz
YWdlKG1lc3NhZ2UpCisgICAgICAgICwgbV9pc0ZhdGFsKGZhbHNlKQorICAgIHsKKyAgICB9Cisg
ICAgCisgICAgRXJyb3JDb2RlIG1fY29kZTsKKyAgICBTdHJpbmcgbV9tZXNzYWdlOworICAgIC8v
IFdoZXRoZXIgdGhlIGVycm9yIGlzIGZhdGFsLCBzdWNoIHRoYXQgbm8gcmVxdWVzdCBjYW4gZXZl
ciBvYnRhaW4gYSBnb29kCisgICAgLy8gcG9zaXRpb24gZml4IGluIHRoZSBmdXR1cmUuCisgICAg
Ym9vbCBtX2lzRmF0YWw7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0
aW9uRXJyb3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvblBvc2l0aW9uRXJyb3IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0YTVjMDc0ZTk2MjcxZjg2OGU1N2Uy
MzQ0MWYwM2JhNGYwOTc3ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwKQEAgLTAsMCArMSwz
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
K1sKKyAgICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tz
VlRhYmxlCitdIGludGVyZmFjZSBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IgeworICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IFBFUk1JU1NJT05fREVOSUVEID0gMTsKKyAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBQT1NJVElPTl9VTkFWQUlMQUJMRSA9IDI7CisgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgVElNRU9VVCA9IDM7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNv
ZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXNzYWdlOworfTsKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTMzMGRlNThlMmE2M2E5ZDZiM2UzMjJjNzI1OWJh
MGFmNTk5ODE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaAorKysgL2Rl
di9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDb29yZGluYXRlcy5oIgot
I2luY2x1ZGUgIkRPTVRpbWVTdGFtcC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
Y2xhc3MgR2VvcG9zaXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxHZW9wb3NpdGlvbj4gewotcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8R2VvcG9zaXRpb24+IGNyZWF0ZShSZWY8Q29vcmRpbmF0ZXM+
JiYgY29vcmRpbmF0ZXMsIERPTVRpbWVTdGFtcCB0aW1lc3RhbXApCi0gICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBHZW9wb3NpdGlvbihXVEZNb3ZlKGNvb3JkaW5hdGVzKSwgdGlt
ZXN0YW1wKSk7Ci0gICAgfQotCi0gICAgUmVmPEdlb3Bvc2l0aW9uPiBpc29sYXRlZENvcHkoKSBj
b25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZShtX2Nvb3JkaW5hdGVzLT5pc29sYXRl
ZENvcHkoKSwgbV90aW1lc3RhbXApOwotICAgIH0KLQotICAgIERPTVRpbWVTdGFtcCB0aW1lc3Rh
bXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQotICAgIGNvbnN0IENvb3JkaW5hdGVz
JiBjb29yZHMoKSBjb25zdCB7IHJldHVybiBtX2Nvb3JkaW5hdGVzLmdldCgpOyB9Ci0gICAgCi1w
cml2YXRlOgotICAgIEdlb3Bvc2l0aW9uKFJlZjxDb29yZGluYXRlcz4mJiBjb29yZGluYXRlcywg
RE9NVGltZVN0YW1wIHRpbWVzdGFtcCkKLSAgICAgICAgOiBtX2Nvb3JkaW5hdGVzKFdURk1vdmUo
Y29vcmRpbmF0ZXMpKQotICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKLSAgICB7Ci0g
ICAgfQotCi0gICAgUmVmPENvb3JkaW5hdGVzPiBtX2Nvb3JkaW5hdGVzOwotICAgIERPTVRpbWVT
dGFtcCBtX3RpbWVzdGFtcDsKLX07Ci0gICAgCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bvc2l0aW9uLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZjhjYjA5YjJmYmY5NDE2NDUzNGUxODIwNDI5
OTA0YmJiNTlkMmRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCisr
KyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotCi1bCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAgQ29uZGl0
aW9uYWw9R0VPTE9DQVRJT04sCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRl
cmZhY2UgR2VvcG9zaXRpb24gewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDb29yZGluYXRlcyBj
b29yZHM7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVRpbWVTdGFtcCB0aW1lc3RhbXA7Ci19
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlv
bkNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9u
Q2FsbGJhY2suaAppbmRleCA0YjU3MzgyNDA4OTJkOTEyNWJmYWExMzYyODY1ZDg0MTM5ZjY2NWRj
Li5hMjc5NTM5OTFiNDljZDA5MzQwZTljZWEyMWQzMDBkNmZjMWMxODNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaApA
QCAtMzEsMTMgKzMxLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR2VvcG9z
aXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOwogCiBjbGFzcyBQb3NpdGlvbkNhbGxi
YWNrIDogcHVibGljIFJlZkNvdW50ZWQ8UG9zaXRpb25DYWxsYmFjaz4sIHB1YmxpYyBBY3RpdmVE
T01DYWxsYmFjayB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQWN0aXZlRE9NQ2FsbGJhY2s6OkFjdGl2
ZURPTUNhbGxiYWNrOwogCi0gICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVF
dmVudChHZW9wb3NpdGlvbiopID0gMDsKKyAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+
IGhhbmRsZUV2ZW50KEdlb2xvY2F0aW9uUG9zaXRpb24qKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbAppbmRleCBhZDY2MWY1ZWZjMjYyMTYyYWNkNWE4YWY0
M2E4Yzc0MGY4YWJlYTUyLi5kNWNlODU2MzcwNzQ0NzgyMzZkMDhmYmE0OTFkZDBiZTZmYzg4OTEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9u
Q2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9z
aXRpb25DYWxsYmFjay5pZGwKQEAgLTI0LDQgKzI0LDQgQEAKIAogWwogICAgIENvbmRpdGlvbmFs
PUdFT0xPQ0FUSU9OLAotXSBjYWxsYmFjayBQb3NpdGlvbkNhbGxiYWNrID0gdm9pZCAoR2VvcG9z
aXRpb24/IHBvc2l0aW9uKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4K
K10gY2FsbGJhY2sgUG9zaXRpb25DYWxsYmFjayA9IHZvaWQgKEdlb2xvY2F0aW9uUG9zaXRpb24/
IHBvc2l0aW9uKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2NDIyZWY5YjZkYjNmMWE5MGY4YTQwNDE4Zjli
NTk2M2NkMDNlNjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotICAgIAotY2xhc3MgUG9zaXRpb25FcnJvciA6IHB1YmxpYyBSZWZDb3VudGVkPFBvc2l0
aW9uRXJyb3I+IHsKLXB1YmxpYzoKLSAgICBlbnVtIEVycm9yQ29kZSB7Ci0gICAgICAgIFBFUk1J
U1NJT05fREVOSUVEID0gMSwKLSAgICAgICAgUE9TSVRJT05fVU5BVkFJTEFCTEUgPSAyLAotICAg
ICAgICBUSU1FT1VUID0gMwotICAgIH07Ci0gICAgCi0gICAgc3RhdGljIFJlZjxQb3NpdGlvbkVy
cm9yPiBjcmVhdGUoRXJyb3JDb2RlIGNvZGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBQb3NpdGlvbkVycm9yKGNvZGUsIG1lc3NhZ2UpKTsgfQotCi0gICAg
RXJyb3JDb2RlIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KLSAgICBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KLSAgICB2b2lkIHNldElz
RmF0YWwoYm9vbCBpc0ZhdGFsKSB7IG1faXNGYXRhbCA9IGlzRmF0YWw7IH0KLSAgICBib29sIGlz
RmF0YWwoKSBjb25zdCB7IHJldHVybiBtX2lzRmF0YWw7IH0KLSAgICAKLXByaXZhdGU6Ci0gICAg
UG9zaXRpb25FcnJvcihFcnJvckNvZGUgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSAKLSAg
ICAgICAgOiBtX2NvZGUoY29kZSkKLSAgICAgICAgLCBtX21lc3NhZ2UobWVzc2FnZSkKLSAgICAg
ICAgLCBtX2lzRmF0YWwoZmFsc2UpCi0gICAgewotICAgIH0KLSAgICAKLSAgICBFcnJvckNvZGUg
bV9jb2RlOwotICAgIFN0cmluZyBtX21lc3NhZ2U7Ci0gICAgLy8gV2hldGhlciB0aGUgZXJyb3Ig
aXMgZmF0YWwsIHN1Y2ggdGhhdCBubyByZXF1ZXN0IGNhbiBldmVyIG9idGFpbiBhIGdvb2QKLSAg
ICAvLyBwb3NpdGlvbiBmaXggaW4gdGhlIGZ1dHVyZS4KLSAgICBib29sIG1faXNGYXRhbDsKLX07
Ci0gICAgCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNWMxZjNhMjcyYTY3ZjQ2YWE2ODJjYmU4YmExYmY5ZTdhOTBmNGNlMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsCisrKyAvZGV2L251bGwKQEAg
LTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotCi1bCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJ
T04sCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRlcmZhY2UgUG9zaXRpb25F
cnJvciB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNvZGU7Ci0gICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXNzYWdlOwotCi0gICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgUEVSTUlTU0lPTl9ERU5JRUQgPSAxOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IFBPU0lUSU9OX1VOQVZBSUxBQkxFID0gMjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBUSU1F
T1VUID0gMzsKLX07Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5oCmluZGV4IDQ4MTZiMWRiMWQzMmU5NzJm
OTcwODEyYjg1YzVhNDc3YjE4ZDU0MjUuLmE3NWUwNzg4ZjU0Nzg5YjBkY2JlOTAwYjliNTVjNmEw
ZDEyZGFlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
UG9zaXRpb25FcnJvckNhbGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaApAQCAtMzEsMTMgKzMxLDEzIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUG9zaXRpb25FcnJvcjsKK2NsYXNzIEdlb2xvY2F0
aW9uUG9zaXRpb25FcnJvcjsKIAogY2xhc3MgUG9zaXRpb25FcnJvckNhbGxiYWNrIDogcHVibGlj
IFJlZkNvdW50ZWQ8UG9zaXRpb25FcnJvckNhbGxiYWNrPiwgcHVibGljIEFjdGl2ZURPTUNhbGxi
YWNrIHsKIHB1YmxpYzoKICAgICB1c2luZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZlRE9NQ2Fs
bGJhY2s7CiAKLSAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KFBv
c2l0aW9uRXJyb3ImKSA9IDA7CisgICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5k
bGVFdmVudChHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwKaW5kZXggNTdiNDkzY2NiZjU0NmFk
YzAyNDE0NWUzMWJkODRlNDM1OGJmYzQ3Mi4uZmEwOTgwZTM2MDZhOGY4ZjVmYWY0YmUxZGM5Mzg5
MjlmNmQwMzhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbApAQCAtMjQsNCArMjQsNCBAQAog
CiBbCiAgICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJT04sCi1dIGNhbGxiYWNrIFBvc2l0aW9uRXJy
b3JDYWxsYmFjayA9IHZvaWQgKFBvc2l0aW9uRXJyb3IgZXJyb3IpOworXSBjYWxsYmFjayBQb3Np
dGlvbkVycm9yQ2FsbGJhY2sgPSB2b2lkIChHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IgZXJyb3Ip
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OGQ5
YTI0MjFlN2YyMzA5YjRmNjIzYjE0ZDdjYmUyYjZjN2UwNDVjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2VvbG9jYXRpb25Qb3NpdGlv
bkRhdGFJT1MubW0KQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiR2VvbG9jYXRp
b25Qb3NpdGlvbi5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCA8Q29y
ZUxvY2F0aW9uL0NMTG9jYXRpb24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoQ0xMb2NhdGlvbiogbG9j
YXRpb24pCisgICAgOiB0aW1lc3RhbXAobG9jYXRpb24udGltZXN0YW1wLnRpbWVJbnRlcnZhbFNp
bmNlMTk3MCkKKyAgICAsIGxhdGl0dWRlKGxvY2F0aW9uLmNvb3JkaW5hdGUubGF0aXR1ZGUpCisg
ICAgLCBsb25naXR1ZGUobG9jYXRpb24uY29vcmRpbmF0ZS5sb25naXR1ZGUpCisgICAgLCBhY2N1
cmFjeShsb2NhdGlvbi5ob3Jpem9udGFsQWNjdXJhY3kpCit7CisgICAgaWYgKGxvY2F0aW9uLnZl
cnRpY2FsQWNjdXJhY3kgPj0gMC4wKSB7CisgICAgICAgIGFsdGl0dWRlID0gbG9jYXRpb24uYWx0
aXR1ZGU7CisgICAgICAgIGFsdGl0dWRlQWNjdXJhY3kgPSBsb2NhdGlvbi52ZXJ0aWNhbEFjY3Vy
YWN5OworICAgIH0KKyAgICBpZiAobG9jYXRpb24uc3BlZWQgPj0gMC4wKQorICAgICAgICBzcGVl
ZCA9IGxvY2F0aW9uLnNwZWVkOworICAgIGlmIChsb2NhdGlvbi5jb3Vyc2UgPj0gMC4wKQorICAg
ICAgICBoZWFkaW5nID0gbG9jYXRpb24uY291cnNlOworI2lmICFQTEFURk9STShNQUNDQVRBTFlT
VCkKKyAgICBpZiAobG9jYXRpb24uZmxvb3IpCisgICAgICAgIGZsb29yTGV2ZWwgPSBsb2NhdGlv
bi5mbG9vci5sZXZlbDsKKyNlbmRpZgorfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9p
b3MvR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDUxMzZhNTFlMmI2ZTg1ZmQ0Mzg2MjhiZGI3ZjBmNmVlMDNjMzBjNzYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbQorKysg
L2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIkdlb2xvY2F0aW9u
UG9zaXRpb24uaCIKLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0KLSNpbXBvcnQgPENvcmVM
b2NhdGlvbi9DTExvY2F0aW9uLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotR2VvbG9jYXRp
b25Qb3NpdGlvbjo6R2VvbG9jYXRpb25Qb3NpdGlvbihDTExvY2F0aW9uKiBsb2NhdGlvbikKLSAg
ICA6IHRpbWVzdGFtcChsb2NhdGlvbi50aW1lc3RhbXAudGltZUludGVydmFsU2luY2UxOTcwKQot
ICAgICwgbGF0aXR1ZGUobG9jYXRpb24uY29vcmRpbmF0ZS5sYXRpdHVkZSkKLSAgICAsIGxvbmdp
dHVkZShsb2NhdGlvbi5jb29yZGluYXRlLmxvbmdpdHVkZSkKLSAgICAsIGFjY3VyYWN5KGxvY2F0
aW9uLmhvcml6b250YWxBY2N1cmFjeSkKLXsKLSAgICBpZiAobG9jYXRpb24udmVydGljYWxBY2N1
cmFjeSA+PSAwLjApIHsKLSAgICAgICAgYWx0aXR1ZGUgPSBsb2NhdGlvbi5hbHRpdHVkZTsKLSAg
ICAgICAgYWx0aXR1ZGVBY2N1cmFjeSA9IGxvY2F0aW9uLnZlcnRpY2FsQWNjdXJhY3k7Ci0gICAg
fQotICAgIGlmIChsb2NhdGlvbi5zcGVlZCA+PSAwLjApCi0gICAgICAgIHNwZWVkID0gbG9jYXRp
b24uc3BlZWQ7Ci0gICAgaWYgKGxvY2F0aW9uLmNvdXJzZSA+PSAwLjApCi0gICAgICAgIGhlYWRp
bmcgPSBsb2NhdGlvbi5jb3Vyc2U7Ci0jaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIGlm
IChsb2NhdGlvbi5mbG9vcikKLSAgICAgICAgZmxvb3JMZXZlbCA9IGxvY2F0aW9uLmZsb29yLmxl
dmVsOwotI2VuZGlmCi19Ci0KLX0KLQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IDBhMzhkZDQ2YzdkNDU5NDA0OGJjZWZmNDliZWRhMzg2OGJkMjk1ZGIu
LmZmZDVlYjA3MjhjNWU5OGJiZWQ1N2ZiMDJhZWZkNThlZTJjOTZjNzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC02NywxMCArNjcsMTAgQEAgTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCiBNb2R1
bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCiBNb2R1bGVzL2ZldGNoL1dvcmtlckdsb2JhbFNj
b3BlRmV0Y2guY3BwCiAKLU1vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuY3BwCiBNb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcAogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9s
b2NhdGlvbi5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNw
cAorTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcAogTW9kdWxl
cy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAKIAogTW9kdWxlcy9pbmRleGVk
ZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcApAQCAtMjY3Miw3ICsyNjcyLDYgQEAgSlND
b21wb3NpdGVPcGVyYXRpb24uY3BwCiBKU0NvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0by5jcHAKIEpT
Q29tcHV0ZWRFZmZlY3RUaW1pbmcuY3BwCiBKU0NvbnZvbHZlck5vZGUuY3BwCi1KU0Nvb3JkaW5h
dGVzLmNwcAogSlNDb3VudFF1ZXVpbmdTdHJhdGVneS5jcHAKIEpTQ3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucy5jcHAKIEpTQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmNwcApAQCAtMjgzMSw3ICsy
ODMwLDkgQEAgSlNHUFVWZXJ0ZXhCdWZmZXJEZXNjcmlwdG9yLmNwcAogSlNHUFVWZXJ0ZXhJbnB1
dERlc2NyaXB0b3IuY3BwCiBKU0dhaW5Ob2RlLmNwcAogSlNHZW9sb2NhdGlvbi5jcHAKLUpTR2Vv
cG9zaXRpb24uY3BwCitKU0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwCitKU0dlb2xvY2F0aW9u
UG9zaXRpb24uY3BwCitKU0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5jcHAKIEpTR2xvYmFsQ3J5
cHRvLmNwcAogSlNHbG9iYWxFdmVudEhhbmRsZXJzLmNwcAogSlNHbG9iYWxQZXJmb3JtYW5jZS5j
cHAKQEAgLTMwNzIsNyArMzA3Myw2IEBAIEpTUGxheWJhY2tEaXJlY3Rpb24uY3BwCiBKU1BvaW50
ZXJFdmVudC5jcHAKIEpTUG9wU3RhdGVFdmVudC5jcHAKIEpTUG9zaXRpb25DYWxsYmFjay5jcHAK
LUpTUG9zaXRpb25FcnJvci5jcHAKIEpTUG9zaXRpb25FcnJvckNhbGxiYWNrLmNwcAogSlNQb3Np
dGlvbk9wdGlvbnMuY3BwCiBKU1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzODUyZDNk
MzkzN2Q2NmU5ZGZmMTI5MGQzMWNjY2Q4NDZmOWNiNWRhLi4xOWZjOWUwZjc4MjFmMTU5NzYyYjYw
OWNlMmExNTZjOGM2ZTVlNWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzkyLDcgKzIzOTIsNyBAQAogCQk4MzcyREIzMTFB
Njc4MEE4MDBDNjk3QzUgLyogRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzcyREIzMDFBNjc4MEE4MDBD
Njk3QzUgLyogRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM3NjVGOTUxREFDNTIyRjAwQzA2NTM3
IC8qIE1vdXNlRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4Mzc2NUY5NDFEQUM1MjE4MDBDMDY1MzcgLyogTW91c2VFdmVudEluaXQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4Mzc5MzYz
RjFGQkJCMEI0MDBDODAyM0MgLyogU2VydmljZVdvcmtlckNsaWVudERhdGEuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNzkzNjNFMUZCQkIwQTUwMEM4
MDIzQyAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTgzNzk2NENGMUY4REI2OUQwMDIxOEVBMCAvKiBH
ZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9z
aXRpb25JT1MubW0gKi87IH07CisJCTgzNzk2NENGMUY4REI2OUQwMDIxOEVBMCAvKiBHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YUlPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzNzk2NENFMUY4REI2OUEwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YUlPUy5tbSAqLzsgfTsKIAkJODM3QTgwMTMxRTFFMTI3MzAwMDI2QjlGIC8qIExvY2Fs
aXphYmxlLnN0cmluZ3NkaWN0IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzdBODAxMTFFMUUxMjczMDAwMjZCOUYgLyogTG9jYWxpemFibGUuc3RyaW5n
c2RpY3QgKi87IH07CiAJCTgzN0Q0NjI3MUZBMkE4Q0UwMDU0RTFGQSAvKiBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM3RDQ2MjUxRkEyQThDNTAwNTRFMUZBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJODM3RkIzNDUxRjlFQTA2RDAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0ZCMzQw
MUY5RUEwNjYwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmggKi87IH07CkBAIC0y
NzI4LDE1ICsyNzI4LDE1IEBACiAJCTk3Mzg4OUExMTE2RUE5REMwMEFERjMxMyAvKiBEb2N1bWVu
dFdyaXRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTczODg5OUYxMTZFQTlEQzAwQURGMzEzIC8qIERvY3VtZW50V3JpdGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTczRTMyNTcxMDg4M0I3QzAw
NUJDNDkzIC8qIFJlc291cmNlTG9hZE5vdGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzNFMzI1NTEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5NzNGNDE4QTE2OUI5NUZGMDAwNkJGNjAgLyogSFRNTFBhcnNlck9wdGlvbnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3M0Y0MTg4
MTY5Qjk1RUYwMDA2QkY2MCAvKiBIVE1MUGFyc2VyT3B0aW9ucy5oICovOyB9OwotCQk5NzQ2QUYy
MTE0RjREREU2MDAzRTdBNzEgLyogQ29vcmRpbmF0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjExMTRGNERERTYwMDNFN0E3MCAvKiBDb29y
ZGluYXRlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTk3NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxMTE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db29yZGluYXRlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NDZBRjI0MTRGNERERTYwMDNF
N0E3MCAvKiBHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTc0NkFGMTQxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFGMjUx
NEY0RERFNjAwM0U3QTcxIC8qIEdlb2xvY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxNTE0RjREREU2MDAzRTdBNzEgLyog
R2VvbG9jYXRpb25DbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5NzQ2QUYyNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250
cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzQ2QUYxNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFGMjgxNEY0
RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjE4MTRGNERERTYwMDNFN0E3MCAvKiBHZW9s
b2NhdGlvbkVycm9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJOTc0NkFGMjkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjE5
MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTc0NkFGMkExNEY0RERFNjAwM0U3
QTcwIC8qIEdlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvcG9zaXRpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NzQ2QUYyOTE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjE5MTRGNERERTYwMDNFN0E3
MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTk3NDZBRjJBMTRGNERERTYwMDNFN0E3MCAvKiBHZW9s
b2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NDZB
RjJDMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxQzE0RjREREU2MDAzRTdBNzAg
LyogUG9zaXRpb25DYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTk3NDZBRjJFMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYx
RTE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk3NDZBRjJFMTRGNERERTYwMDNFN0E3MCAv
KiBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjFFMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5NzQ2QUYzMDE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvckNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2
QUYyMDE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvckNhbGxiYWNrLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFGMzIxNEY0RERF
NjAwM0U3QTcwIC8qIFBvc2l0aW9uT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMjIxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9u
T3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTk3NEE4NjIzMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NEE4NjIx
MTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTAwNjMsNyArMTAwNjMs
NyBAQAogCQk4Mzc2NUY5NDFEQUM1MjE4MDBDMDY1MzcgLyogTW91c2VFdmVudEluaXQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW91c2VFdmVudEluaXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM3OTM2M0MxRkJCQjBBNDAwQzgwMjNDIC8qIFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODM3OTM2M0UxRkJCQjBBNTAwQzgwMjNDIC8qIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgzNzk2NENFMUY4REI2OUEwMDIxOEVB
MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbTsgcGF0aCA9IE1vZHVsZXMv
Z2VvbG9jYXRpb24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW07IHNvdXJjZVRyZWUgPSBT
T1VSQ0VfUk9PVDsgfTsKKwkJODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW07IHBhdGggPSBNb2R1bGVzL2dlb2xvY2F0
aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5tbTsgc291cmNlVHJlZSA9IFNPVVJD
RV9ST09UOyB9OwogCQk4MzdBODAxMjFFMUUxMjczMDAwMjZCOUYgLyogZW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnN0cmluZ3Nk
aWN0OyBuYW1lID0gZW47IHBhdGggPSBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzZGljdDsg
c291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk4MzdCN0QxRjFEQzNGNTRDMDBEMDUxRkMg
LyogVmFsaWRhdGlvbkJ1YmJsZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFZhbGlkYXRpb25CdWJibGVJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgzN0Q0NjI1MUZBMkE4QzUwMDU0RTFGQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3NDMs
OSArMTA3NDMsOSBAQAogCQk5NzNFMzI1NTEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3VyY2VMb2Fk
Tm90aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2Fk
Tm90aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTczRjQxODcxNjlCOTVF
RjAwMDZCRjYwIC8qIEhUTUxQYXJzZXJPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEhUTUxQYXJzZXJPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTczRjQxODgxNjlCOTVFRjAwMDZCRjYwIC8qIEhUTUxQYXJzZXJPcHRpb25z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQYXJzZXJPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk3NDZBRjExMTRGNERERTYwMDNFN0E3MCAv
KiBDb29yZGluYXRlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29yZGlu
YXRlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzQ2QUYxMTE0RjREREU2MDAz
RTdBNzIgLyogQ29vcmRpbmF0ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ29vcmRpbmF0ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzQ2
QUYxMjE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IENvb3JkaW5hdGVzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc0
NkFGMTExNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Db29yZGluYXRlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzIgLyogR2Vv
bG9jYXRpb25Db29yZGluYXRlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTc0NkFGMTIxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYxMzE0RjREREU2MDAzRTdBNzAgLyog
R2VvbG9jYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2Vv
bG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYxNDE0RjRE
REU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gR2VvbG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFG
MTUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBHZW9sb2NhdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDc1
MywxMyArMTA3NTMsMTMgQEAKIAkJOTc0NkFGMTYxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0
aW9uQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBH
ZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NzQ2QUYxNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uQ29udHJvbGxlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYxODE0RjREREU2MDAzRTdBNzAgLyogR2Vv
bG9jYXRpb25FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2Nh
dGlvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk3NDZBRjE5MTRGNERE
RTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uUG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTc0NkFGMUExNEY0RERFNjAwM0U3QTcwIC8qIEdlb3Bvc2l0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlb3Bvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTk3NDZBRjFCMTRGNERERTYwMDNFN0E3MCAvKiBHZW9wb3NpdGlvbi5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2VvcG9zaXRpb24uaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5NzQ2QUYxOTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc0NkFGMUEx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5NzQ2QUYxQjE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3Np
dGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbi5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NDZBRjFDMTRGNERERTYwMDNFN0E3MCAv
KiBQb3NpdGlvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBv
c2l0aW9uQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFGMUQx
NEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFBvc2l0aW9uQ2FsbGJhY2suaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk5NzQ2QUYxRTE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQb3NpdGlvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTk3NDZBRjFGMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9yLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQb3NpdGlvbkVycm9yLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTc0NkFGMUUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2Nh
dGlvblBvc2l0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc0NkFG
MUYxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFGMjAxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9u
RXJyb3JDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3NpdGlv
bkVycm9yQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFGMjEx
NEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTc0NkFGMjIxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uT3B0aW9ucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3NpdGlvbk9wdGlvbnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwOTI1LDcgKzIwOTI1LDcgQEAKIAkJODM3OTY0
Q0MxRjhEQjY3RDAwMjE4RUEwIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkJODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25JT1MubW0gKi8sCisJCQkJODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhSU9TLm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBpb3M7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjE4NDIsMjggKzIxODQyLDI4IEBACiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTgzNzk2NENDMUY4REI2N0QwMDIxOEVB
MCAvKiBpb3MgKi8sCi0JCQkJOTc0NkFGMTExNEY0RERFNjAwM0U3QTcyIC8qIENvb3JkaW5hdGVz
LmNwcCAqLywKLQkJCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMuaCAq
LywKLQkJCQk5NzQ2QUYxMjE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMuaWRsICovLAog
CQkJCTk3NDZBRjEzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgKi8sCiAJCQkJ
OTc0NkFGMTQxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmggKi8sCiAJCQkJOTc0NkFG
MTUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmlkbCAqLywKIAkJCQk5NzQ2QUYxNTE0
RjREREU2MDAzRTdBNzEgLyogR2VvbG9jYXRpb25DbGllbnQuaCAqLywKIAkJCQk5NzQ2QUYxNjE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCAqLywKIAkJCQk5NzQ2
QUYxNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggKi8sCisJCQkJ
OTc0NkFGMTExNEY0RERFNjAwM0U3QTcyIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwICov
LAorCQkJCTk3NDZBRjExMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVz
LmggKi8sCisJCQkJOTc0NkFGMTIxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29vcmRp
bmF0ZXMuaWRsICovLAogCQkJCTk3NDZBRjE4MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlv
bkVycm9yLmggKi8sCi0JCQkJOTc0NkFGMTkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb24uaCAqLywKKwkJCQk5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRp
b25Qb3NpdGlvbi5oICovLAorCQkJCTk3NDZBRjFCMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2Nh
dGlvblBvc2l0aW9uLmlkbCAqLywKKwkJCQk5NzQ2QUYxOTE0RjREREU2MDAzRTdBNzAgLyogR2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGEuaCAqLywKKwkJCQk5NzQ2QUYxRTE0RjREREU2MDAzRTdBNzAg
LyogR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmggKi8sCisJCQkJOTc0NkFGMUYxNEY0RERFNjAw
M0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwgKi8sCiAJCQkJNDZDODNFRkIx
QTlCQkUyOTAwQTc5QTQxIC8qIEdlb05vdGlmaWVyLmNwcCAqLywKIAkJCQk0NkM4M0VGQzFBOUJC
RTI5MDBBNzlBNDEgLyogR2VvTm90aWZpZXIuaCAqLywKLQkJCQk5NzQ2QUYxQTE0RjREREU2MDAz
RTdBNzAgLyogR2VvcG9zaXRpb24uaCAqLywKLQkJCQk5NzQ2QUYxQjE0RjREREU2MDAzRTdBNzAg
LyogR2VvcG9zaXRpb24uaWRsICovLAogCQkJCTk3MTE0NjAwMTRFRjAwOUEwMDY3NEZEOSAvKiBO
YXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgKi8sCiAJCQkJOTcxMTQ2MDExNEVGMDA5QTAwNjc0RkQ5
IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmggKi8sCiAJCQkJOTcxMTQ2MDIxNEVGMDA5QTAwNjc0
RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCAqLywKIAkJCQk5NzQ2QUYxQzE0RjREREU2
MDAzRTdBNzAgLyogUG9zaXRpb25DYWxsYmFjay5oICovLAogCQkJCTk3NDZBRjFEMTRGNERERTYw
MDNFN0E3MCAvKiBQb3NpdGlvbkNhbGxiYWNrLmlkbCAqLywKLQkJCQk5NzQ2QUYxRTE0RjREREU2
MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5oICovLAotCQkJCTk3NDZBRjFGMTRGNERERTYwMDNF
N0E3MCAvKiBQb3NpdGlvbkVycm9yLmlkbCAqLywKIAkJCQk5NzQ2QUYyMDE0RjREREU2MDAzRTdB
NzAgLyogUG9zaXRpb25FcnJvckNhbGxiYWNrLmggKi8sCiAJCQkJOTc0NkFGMjExNEY0RERFNjAw
M0U3QTcwIC8qIFBvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgKi8sCiAJCQkJOTc0NkFGMjIxNEY0
RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uT3B0aW9ucy5oICovLApAQCAtMjg2NjUsNyArMjg2NjUs
NiBAQAogCQkJCTdBNTY5OTcwMjA4NkM2MTkwMDBFMDQzMyAvKiBDb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzNEMDIxMkQxMzFEQjM3QjAwNDA5MUE4
IC8qIENvb2tpZVN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjBCQkFGMUYxQ0VDRTcw
MEVGRUJGMSAvKiBDb29raWVTdG9yYWdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTk3
NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBDb29yZGluYXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJM0Y4MDIwMzUxRTlFNDdCRjAwREVDNjFEIC8qIENvcmVBdWRpb0NhcHR1cmVEZXZpY2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTNGODAyMDM3MUU5RTQ3QzUwMERFQzYxRCAvKiBDb3JlQXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdBRkY0MjIxRUZCMTQ0
OTAwQjU0NUIzIC8qIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MuaCBpbiBIZWFkZXJzICovLApA
QCAtMjkyOTIsMTEgKzI5MjkxLDEzIEBACiAJCQkJOTc0NkFGMjQxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYyNTE0RjREREU2MDAzRTdB
NzEgLyogR2VvbG9jYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NDZBRjI3MTRG
NERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTk3NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYyODE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRp
b25FcnJvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTc0NkFGMjkxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTk3NDZBRjJBMTRGNERE
RTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
NzQ2QUYyOTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTk3NDZBRjJFMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBv
c2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjYyNTJGMThERTFCMTUwMEEwN0Mw
NSAvKiBHZW9tZXRyeVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZDODNFRkUxQTlC
QkUyOTAwQTc5QTQxIC8qIEdlb05vdGlmaWVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk5NzQ2QUYy
QTE0RjREREU2MDAzRTdBNzAgLyogR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2
Qjk1MTk4MjA3RDYzNDcwMEE3RDJERCAvKiBHbG9iYWxGcmFtZUlkZW50aWZpZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQ2Qjk1MTk3MjA3RDYzNDAwMEE3RDJERCAvKiBHbG9iYWxXaW5kb3dJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODZCQkQwRjEzNjAzOUMyMDA4QjE1RDggLyog
R2x5cGguaCBpbiBIZWFkZXJzICovLApAQCAtMzEwNDgsNyArMzEwNDksNiBAQAogCQkJCTM3RjU2
N0NFMTY1MzU4RjQwMERERTkyQiAvKiBQb3B1cE9wZW5pbmdPYnNlcnZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTNGMTk5REUwODI0NUU1OTAwMUU5QUJDIC8qIFBvc2l0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5NzQ2QUYyQzE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25DYWxsYmFjay5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJOTc0NkFGMkUxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9u
RXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NDZBRjMwMTRGNERERTYwMDNFN0E3MCAvKiBQ
b3NpdGlvbkVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTM3OTE5QzI0MEI3RDE4
ODYwMEE1Njk5OCAvKiBQb3NpdGlvbkl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2
QUYzMjE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLywK
QEAgLTMyODA0LDcgKzMyODA0LDcgQEAKIAkJCQk1MTZDNjIyMDE5NTBENDg3MDAzMzdFNzUgLyog
R2FtZXBhZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlEOUU5MTk1QjkzMUYwMDFC
MkI1QyAvKiBHYW1lcGFkTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTVCRTE5MTFE
NTRGNUZCMDBERDdDNjggLyogR2FtZXBhZFByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CTgzNzk2NENGMUY4REI2OUQwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJODM3OTY0Q0YxRjhEQjY5RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhSU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNkUyMUM2QzAxMTI2MzM4NTAw
QTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFNzJG
NTRFMjI5RENEMTAwMEIzRTE1MSAvKiBHcmFwaGljc0NvbnRleHQzREFOR0xFLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDM0U1MTBCMThERjhGMzUwMEMxMTJGNyAvKiBIVE1MQ29udmVydGVyLm1t
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKaW5kZXggYjgwY2MxZTBmY2EwODEzYjM1MDgxM2Fh
OThiMGM3ZGU5MzA5M2M4ZC4uZThlYzFjODRkNGMxMWZlN2IxMzUxYzcwYmE1NmY5OWI3YTg2NmEw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNs
aWVudE1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRp
b25DbGllbnRNb2NrLmNwcApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIEdlb2xvY2F0aW9uQ2xpZW50
TW9jazo6c2V0Q29udHJvbGxlcihHZW9sb2NhdGlvbkNvbnRyb2xsZXIgKmNvbnRyb2xsZXIpCiAg
ICAgbV9jb250cm9sbGVyID0gY29udHJvbGxlcjsKIH0KIAotdm9pZCBHZW9sb2NhdGlvbkNsaWVu
dE1vY2s6OnNldFBvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb24mJiBwb3NpdGlvbikKK3ZvaWQg
R2VvbG9jYXRpb25DbGllbnRNb2NrOjpzZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YSYmIHBvc2l0aW9uKQogewogICAgIG1fbGFzdFBvc2l0aW9uID0gV1RGTW92ZShwb3NpdGlvbik7
CiAgICAgY2xlYXJFcnJvcigpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgR2VvbG9jYXRpb25D
bGllbnRNb2NrOjpzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkKICAgICAvLyBTZWUgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NDM4CiB9CiAKLU9wdGlvbmFsPEdl
b2xvY2F0aW9uUG9zaXRpb24+IEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6bGFzdFBvc2l0aW9uKCkK
K09wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBHZW9sb2NhdGlvbkNsaWVudE1vY2s6
Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgcmV0dXJuIG1fbGFzdFBvc2l0aW9uOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2su
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmgK
aW5kZXggMjdjY2Q5NDMxNjUxNmMxMWMwNmNmZjM5ODRiYjcwYTI1MjAxZWFmMC4uZTIyYWZjNTA4
ZmE2MDBiMTczZTIxYmIwYWRjYjI1OWVlMjJjYWE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oCkBAIC0zMiw3ICszMiw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50LmgiCi0jaW5j
bHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRp
b25EYXRhLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZv
aWQgcmVzZXQoKTsKICAgICB2b2lkIHNldENvbnRyb2xsZXIoR2VvbG9jYXRpb25Db250cm9sbGVy
Kik7CiAKLSAgICB2b2lkIHNldFBvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb24mJik7CisgICAg
dm9pZCBzZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKTsKICAgICB2b2lkIHNl
dFBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAg
ICAgdm9pZCBzZXRQZXJtaXNzaW9uKGJvb2wgYWxsb3dlZCk7CiAgICAgaW50IG51bWJlck9mUGVu
ZGluZ1Blcm1pc3Npb25SZXF1ZXN0cygpIGNvbnN0OwpAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzdGFydFVwZGF0aW5nKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wVXBkYXRp
bmcoKSBvdmVycmlkZTsKICAgICB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKSBvdmVy
cmlkZTsKLSAgICBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uPiBsYXN0UG9zaXRpb24oKSBv
dmVycmlkZTsKKyAgICBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gbGFzdFBvc2l0
aW9uKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihHZW9sb2NhdGlvbiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoR2VvbG9jYXRpb24m
KSBvdmVycmlkZTsKIApAQCAtNzYsNyArNzYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJF
cnJvcigpOwogCiAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7Ci0gICAg
T3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247CisgICAgT3B0aW9u
YWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IG1fbGFzdFBvc2l0aW9uOwogICAgIGJvb2wgbV9o
YXNFcnJvcjsKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CiAgICAgVGltZXIgbV9jb250cm9s
bGVyVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHZW9sb2NhdGlv
blBvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRp
b24uY3BwCmluZGV4IDNmMTU1OGI3NTJiZWY4YzkyYjQxNjk2ZmQ0NmEwYzA4MWI1YmJlYWEuLmU5
OWRjYzVjMGEzZGNiZTQ5ZGI1MzhlZDI2MzViYzBmNjQzNWQxYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCkBAIC0zMiw3ICszMiw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24+IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZShHZW9s
b2NhdGlvblBvc2l0aW9uJiYgZ2VvbG9jYXRpb25Qb3NpdGlvbikKK1JlZjxXZWJHZW9sb2NhdGlv
blBvc2l0aW9uPiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEmJiBnZW9sb2NhdGlvblBvc2l0aW9uKQogewogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24oV1RGTW92ZShnZW9sb2NhdGlvblBvc2l0aW9uKSkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCmlu
ZGV4IGMxZmNjYTdjYmI1OGJlNDQwNjlhNzFlYjk4MmE4MTVlMjljNjM2YzQuLmE5NjhmODRmOWFi
ZWZmNTVlYjRkY2E1ZGEzYTQwNmUyOWQ1YjcxMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbl9oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRl
IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3Bh
Y2UgSVBDIHsKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24gOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0
OjpUeXBlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uPiBjcmVhdGUoV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlv
biYmKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IGNyZWF0ZShXZWJD
b3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKTsKIAogICAgIHZpcnR1YWwgfldlYkdlb2xv
Y2F0aW9uUG9zaXRpb24oKTsKIApAQCAtNTIsMTUgKzUyLDE1IEBAIHB1YmxpYzoKICAgICBPcHRp
b25hbDxkb3VibGU+IGhlYWRpbmcoKSBjb25zdCB7IHJldHVybiBtX2NvcmVQb3NpdGlvbi5oZWFk
aW5nOyB9CiAgICAgT3B0aW9uYWw8ZG91YmxlPiBzcGVlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY29y
ZVBvc2l0aW9uLnNwZWVkOyB9CiAKLSAgICBjb25zdCBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0
aW9uJiBjb3JlUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NvcmVQb3NpdGlvbjsgfQorICAg
IGNvbnN0IFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiBjb3JlUG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBtX2NvcmVQb3NpdGlvbjsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0
IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24oV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiYmIGdl
b2xvY2F0aW9uUG9zaXRpb24pCisgICAgZXhwbGljaXQgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbihX
ZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmIGdlb2xvY2F0aW9uUG9zaXRpb24pCiAg
ICAgICAgIDogbV9jb3JlUG9zaXRpb24oV1RGTW92ZShnZW9sb2NhdGlvblBvc2l0aW9uKSkKICAg
ICB7CiAgICAgfQogCi0gICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiBtX2NvcmVQb3Np
dGlvbjsKKyAgICBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBtX2NvcmVQb3NpdGlv
bjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKaW5kZXggYWFiYzNk
OWY2ZDk1MWMyNDQ0ZTU0NWMxODhmNzA0ZjY3NTlmMGYyNS4uYzA4ZTRhZGNhNmU5YTFhYTM0YTI5
Y2Y3ODM2NGY4MWQ4OGZjY2EzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwCkBAIC00OCw3ICs0OCw3IEBAIFdL
R2VvbG9jYXRpb25Qb3NpdGlvblJlZiBXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGVfYihkb3Vi
bGUgdGltZXN0YW1wLCBkb3VibGUKIAogV0tHZW9sb2NhdGlvblBvc2l0aW9uUmVmIFdLR2VvbG9j
YXRpb25Qb3NpdGlvbkNyZWF0ZV9jKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwg
ZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3ZpZGVzQWx0aXR1ZGUs
IGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBh
bHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91YmxlIGhlYWRpbmcsIGJv
b2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkLCBib29sIHByb3ZpZGVzRmxvb3JMZXZlbCwg
ZG91YmxlIGZsb29yTGV2ZWwpCiB7Ci0gICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiBj
b3JlUG9zaXRpb24geyB0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH07
CisgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEgY29yZVBvc2l0aW9uIHsgdGlt
ZXN0YW1wLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSB9OwogICAgIGlmIChwcm92aWRl
c0FsdGl0dWRlKQogICAgICAgICBjb3JlUG9zaXRpb24uYWx0aXR1ZGUgPSBhbHRpdHVkZTsKICAg
ICBpZiAocHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0dlb2xvY2F0aW9uUG9zaXRpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQppbmRl
eCBjOTY5Y2E4YzFhNDBiMTcwOGVhNzNmZmY3ZGIzOGQ4MDQ4NWNhYzkzLi4wOWEwZDYwMDFhZjcx
OTYxZmZhNzlkNjJiOTFlMDhmYjU3YmVkZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQpAQCAt
MzcsNyArMzcsNyBAQCArIChpbnN0YW5jZXR5cGUpcG9zaXRpb25XaXRoTG9jYXRpb246KENMTG9j
YXRpb24gKilsb2NhdGlvbgogICAgIGlmICghbG9jYXRpb24pCiAgICAgICAgIHJldHVybiBuaWw7
CiAKLSAgICByZXR1cm4gd3JhcHBlcihXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNy
ZWF0ZShXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uIHsgbG9jYXRpb24gfSkpOworICAgIHJl
dHVybiB3cmFwcGVyKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKFdlYkNv
cmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIHsgbG9jYXRpb24gfSkpOwogfQogCiAtICh2b2lk
KWRlYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eS5oCmluZGV4IDE3YzA4NjljYWU2Mjc1NjFlMzQ4ODgyNGQyYTVmN2RlMTdi
ZjY3NzIuLjZiNjRjZmYyYzA1ODBjZTYwNDIxNTE4NTkzOTJiZDNjYzIyZTZlZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHku
aApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJN
ZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0U3VwcGxlbWVudC5oIgotI2lu
Y2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgcmVzZXRQZXJtaXNzaW9ucygpOwog
I2VuZGlmCi0gICAgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbj4m
IGxhc3RQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFBvc2l0aW9uOyB9CisgICAgY29u
c3QgT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+JiBsYXN0UG9zaXRp
b24oKSBjb25zdCB7IHJldHVybiBtX2xhc3RQb3NpdGlvbjsgfQogCiAgICAgdXNpbmcgQVBJOjpP
YmplY3Q6OnJlZjsKICAgICB1c2luZyBBUEk6Ok9iamVjdDo6ZGVyZWY7CkBAIC04NCw3ICs4NCw3
IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDxjb25zdCBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCo+
IG1faGlnaEFjY3VyYWN5UmVxdWVzdGVyczsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxBUEk6Okdl
b2xvY2F0aW9uUHJvdmlkZXI+IG1fcHJvdmlkZXI7Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6R2Vv
bG9jYXRpb25Qb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6
R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IG1fbGFzdFBvc2l0aW9uOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nZW9jbHVl
L0dlb2NsdWVHZW9sb2NhdGlvblByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2dlb2NsdWUvR2VvY2x1ZUdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCmluZGV4IDZkYjY5ODg1MDUx
NTUwN2Y5ODBjYTc4NzlhMTRiOTY0MmE5ZGY4ZGYuLmRiYTJhOTkwZDE1NjgzMjE2YTZmYTkwYTQ4
ZWIzMGVlYmQzYzUyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dlb2Ns
dWUvR2VvY2x1ZUdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2dlb2NsdWUvR2VvY2x1ZUdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCkBAIC0yNiw3ICsy
Niw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR2VvY2x1ZUdlb2xvY2F0aW9u
UHJvdmlkZXIuaCIKIAotI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaD4KICNpbmNsdWRlIDxn
aW8vZ2lvLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNsdWRlIDx3dGYvZ2xp
Yi9HVW5pcXVlUHRyLmg+CkBAIC0yNjAsNyArMjYwLDcgQEAgdm9pZCBHZW9jbHVlR2VvbG9jYXRp
b25Qcm92aWRlcjo6Y3JlYXRlTG9jYXRpb24oY29uc3QgY2hhciogbG9jYXRpb25QYXRoKQogCiB2
b2lkIEdlb2NsdWVHZW9sb2NhdGlvblByb3ZpZGVyOjpsb2NhdGlvblVwZGF0ZWQoR1JlZlB0cjxH
REJ1c1Byb3h5PiYmIHByb3h5KQogewotICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24g
cG9zaXRpb247CisgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEgcG9zaXRpb247
CiAgICAgR1JlZlB0cjxHVmFyaWFudD4gcHJvcGVydHkgPSBhZG9wdEdSZWYoZ19kYnVzX3Byb3h5
X2dldF9jYWNoZWRfcHJvcGVydHkocHJveHkuZ2V0KCksICJMYXRpdHVkZSIpKTsKICAgICBwb3Np
dGlvbi5sYXRpdHVkZSA9IGdfdmFyaWFudF9nZXRfZG91YmxlKHByb3BlcnR5LmdldCgpKTsKICAg
ICBwcm9wZXJ0eSA9IGFkb3B0R1JlZihnX2RidXNfcHJveHlfZ2V0X2NhY2hlZF9wcm9wZXJ0eShw
cm94eS5nZXQoKSwgIkxvbmdpdHVkZSIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2dlb2NsdWUvR2VvY2x1ZUdlb2xvY2F0aW9uUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2dlb2NsdWUvR2VvY2x1ZUdlb2xvY2F0aW9uUHJvdmlkZXIuaAppbmRleCA1
NzExZTJhNzYxNDljM2Y0ODAxZTY1ZTM4N2NjOGVlY2U0ZDVlZTYwLi4zMWQyOTA5MTk4NWYzNGE2
NTEzNGEyYjBlN2NiM2FjZTFkYWU0NDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9nZW9jbHVlL0dlb2NsdWVHZW9sb2NhdGlvblByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlci5oCkBAIC0z
Myw3ICszMyw3IEBACiB0eXBlZGVmIHN0cnVjdCBfR0RCdXNQcm94eSBHREJ1c1Byb3h5OwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOworY2xhc3MgR2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGE7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDQsNyAr
NDQsNyBAQCBwdWJsaWM6CiAgICAgR2VvY2x1ZUdlb2xvY2F0aW9uUHJvdmlkZXIoKTsKICAgICB+
R2VvY2x1ZUdlb2xvY2F0aW9uUHJvdmlkZXIoKTsKIAotICAgIHVzaW5nIFVwZGF0ZU5vdGlmeUZ1
bmN0aW9uID0gRnVuY3Rpb248dm9pZChXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uJiYsIE9w
dGlvbmFsPENTdHJpbmc+IGVycm9yKT47CisgICAgdXNpbmcgVXBkYXRlTm90aWZ5RnVuY3Rpb24g
PSBGdW5jdGlvbjx2b2lkKFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYsIE9wdGlv
bmFsPENTdHJpbmc+IGVycm9yKT47CiAgICAgdm9pZCBzdGFydChVcGRhdGVOb3RpZnlGdW5jdGlv
biYmKTsKICAgICB2b2lkIHN0b3AoKTsKICAgICB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShi
b29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0
aW9uUHJvdmlkZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2Nh
dGlvblByb3ZpZGVySU9TLm1tCmluZGV4IDUyNWZiMmY4ZGNjYzIwYTBmNDBlMjdiOWU2NDQyOWNh
ZmU4ZGUzMDcuLjEzMDljZWFhNDZiNTBhMmUwYzU1ZDlhOWQ2YTkwNzM1NDhiODdmNzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92
aWRlcklPUy5tbQpAQCAtMjk2LDcgKzI5Niw3IEBAIC0gKHZvaWQpZ2VvbG9jYXRpb25BdXRob3Jp
emF0aW9uRGVuaWVkCiAgICAgW19saXN0ZW5lciBnZW9sb2NhdGlvbkF1dGhvcml6YXRpb25EZW5p
ZWRdOwogfQogCi0tICh2b2lkKXBvc2l0aW9uQ2hhbmdlZDooV2ViQ29yZTo6R2VvbG9jYXRpb25Q
b3NpdGlvbiYmKWNvcmVQb3NpdGlvbgorLSAodm9pZClwb3NpdGlvbkNoYW5nZWQ6KFdlYkNvcmU6
Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYpY29yZVBvc2l0aW9uCiB7CiAgICAgQVNTRVJUKF9s
aXN0ZW5lcik7CiAgICAgYXV0byBwb3NpdGlvbiA9IFdlYktpdDo6V2ViR2VvbG9jYXRpb25Qb3Np
dGlvbjo6Y3JlYXRlKFdURk1vdmUoY29yZVBvc2l0aW9uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXIuY3BwCmluZGV4IDAyMDI0MDIzYzlmMWM1NjNiZjkxMzAwODU4NTZjNGQ4MTcyOTkxMzQuLjdi
MzBkZDBmNWFiMTE4MjdiYzVmNTdmYjM5Y2VlMGI2OGU0YTY5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlv
bk1hbmFnZXIuY3BwCkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
OjpzZXRFbmFibGVIaWdoQWNjdXJhY3lGb3JQYWdlKFdlYlBhZ2UmIHBhZ2UsIGJvb2wgZW5hCiAg
ICAgICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6U2V0RW5hYmxlSGlnaEFjY3VyYWN5KGhpZ2hB
Y2N1cmFjeVNob3VsZEJlRW5hYmxlZCksIDApOwogfQogCi12b2lkIFdlYkdlb2xvY2F0aW9uTWFu
YWdlcjo6ZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgR2VvbG9jYXRpb25Qb3NpdGlvbiYgcG9zaXRp
b24pCit2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkQ2hhbmdlUG9zaXRpb24oY29uc3Qg
R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmIHBvc2l0aW9uKQogewogI2lmIEVOQUJMRShHRU9MT0NB
VElPTikKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBjb3B5VG9WZWN0b3IobV9wYWdlU2V0KSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xv
Y2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dl
Ykdlb2xvY2F0aW9uTWFuYWdlci5oCmluZGV4IGE2YzI4NzE2YWIxNjc4YWZkZDU3NGM5ZGY5ZmUy
ODY4NjM0NjMwMTkuLmQ3ODA5M2U0ZDYwMTk2Yzk0ZjVmNWM3NWI2OWExMDg5ZjNlZTQ5NzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24v
V2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIGlzVXBkYXRpbmcoKSBjb25zdCB7IHJldHVybiAhbV9wYWdlU2V0LmlzRW1wdHkoKTsgfQog
ICAgIGJvb2wgaXNIaWdoQWNjdXJhY3lFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gIW1faGlnaEFj
Y3VyYWN5UGFnZVNldC5pc0VtcHR5KCk7IH0KIAotICAgIHZvaWQgZGlkQ2hhbmdlUG9zaXRpb24o
Y29uc3QgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiYpOworICAgIHZvaWQgZGlkQ2hhbmdl
UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmKTsKICAgICB2
b2lkIGRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdl
KTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgcmVzZXRQZXJtaXNzaW9ucygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdl
b2xvY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
ZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggMDQzZWY2
NDk0OTA5ZTRmMWYzZjY0MjAyNjVkMzhkMjYyZGYwNGQzZS4uYjUyZTgxNjIwNTk2MzAwMjA1MGRm
YTBkYTViZDI1ZmVmZDQzZTM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLm1l
c3NhZ2VzLmluCkBAIC0yMSw3ICsyMSw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+
IFdlYkdlb2xvY2F0aW9uTWFuYWdlciB7Ci0gICAgRGlkQ2hhbmdlUG9zaXRpb24oV2ViQ29yZTo6
R2VvbG9jYXRpb25Qb3NpdGlvbiBwb3NpdGlvbik7CisgICAgRGlkQ2hhbmdlUG9zaXRpb24oV2Vi
Q29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEgcG9zaXRpb24pOwogICAgIERpZEZhaWxUb0Rl
dGVybWluZVBvc2l0aW9uKFN0cmluZyBlcnJvck1lc3NhZ2UpOwogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCiAgICAgUmVzZXRQZXJtaXNzaW9ucygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVu
dC5jcHAKaW5kZXggYTI0ZTBmZjIxY2NkYzY0NGY3NzU2OTg3ZWUwOGJjYTdkZTYwZmI4OC4uZjIy
NzUxMjU5ZmRjMWI3ZTkzYzc0Y2FjMWJjNjhhZGZhNTRkMmE2ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9j
YXRpb25DbGllbnQuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25DbGll
bnQ6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sIGVuYWJsZWQpCiAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuc3VwcGxlbWVudDxXZWJHZW9sb2NhdGlvbk1hbmFnZXI+KCktPnNldEVuYWJs
ZUhpZ2hBY2N1cmFjeUZvclBhZ2UobV9wYWdlLCBlbmFibGVkKTsKIH0KIAotT3B0aW9uYWw8R2Vv
bG9jYXRpb25Qb3NpdGlvbj4gV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCitP
cHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxh
c3RQb3NpdGlvbigpCiB7CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xv
Y2F0aW9uQ2xpZW50LmgKaW5kZXggMzVhMzFmYzJhMzQ0YjMxMjg3MzA1MDRiN2ZlN2ExMTVmMDEx
Yjg4My4uZDQ3NzZlOTE1MWE3NTAxNWE4NjA3ZTc1MDVjMmU5NDc0ZmI5NjdmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9u
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Ykdlb2xvY2F0aW9uQ2xpZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHN0b3BVcGRhdGluZygpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5
KGJvb2wpIG92ZXJyaWRlOwogCi0gICAgT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3Np
dGlvbj4gbGFzdFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6R2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlvbigpIG92ZXJyaWRlOwogCiAgICAgdm9p
ZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpHZW9sb2NhdGlvbiYpIG92ZXJyaWRlOwogICAg
IHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoV2ViQ29yZTo6R2VvbG9jYXRpb24mKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9j
YXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlz
Yy9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmgKaW5kZXggMDQ5MGZjZmIxZGIw
NGJmNmIwMjRlOGU0MDk2NzU3MGY3YzVhYzEzOC4uODQyN2NiODEwMmQ2MmI0MGU2OGJlMTAxNmUy
MmZkNDI0YTI2OTI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlzYy9X
ZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmgKQEAgLTI5
LDcgKzI5LDcgQEAKIEBjbGFzcyBOU1N0cmluZzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xh
c3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOwog
fQogCiAvLyBXZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvbkRlbGVnYXRlIGFic3RyYWN0cyB0aGUg
bG9jYXRpb24gc2VydmljZXMgb2YgQ29yZUxvY2F0aW9uLgpAQCAtNDMsNyArNDMsNyBAQCBjbGFz
cyBHZW9sb2NhdGlvblBvc2l0aW9uOwogLSAodm9pZClnZW9sb2NhdGlvbkF1dGhvcml6YXRpb25H
cmFudGVkOwogLSAodm9pZClnZW9sb2NhdGlvbkF1dGhvcml6YXRpb25EZW5pZWQ7CiAKLS0gKHZv
aWQpcG9zaXRpb25DaGFuZ2VkOihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uJiYpcG9zaXRp
b247CistICh2b2lkKXBvc2l0aW9uQ2hhbmdlZDooV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlv
bkRhdGEmJilwb3NpdGlvbjsKIC0gKHZvaWQpZXJyb3JPY2N1cnJlZDooTlNTdHJpbmcgKillcnJv
ck1lc3NhZ2U7CiAtICh2b2lkKXJlc2V0R2VvbG9jYXRpb247CiBAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uQ29yZUxvY2F0aW9uUHJv
dmlkZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uQ29y
ZUxvY2F0aW9uUHJvdmlkZXIubW0KaW5kZXggYzVmNjQ2YjJhNDUxNTVkOTY1Yjg5MzM0YWE1NmZh
N2ExMGQzM2Y5MC4uZGU5MTMzYmYwOGZhYWJjYWY3Zjg1ZGJkYWQ1YjA4YTEzNGEyM2ZhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvbkNvcmVM
b2NhdGlvblByb3ZpZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL01pc2MvV2Vi
R2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5tbQpAQCAtMzAsNyArMzAsNyBAQAogI2lt
cG9ydCA8Q29yZUxvY2F0aW9uL0NMTG9jYXRpb24uaD4KICNpbXBvcnQgPENvcmVMb2NhdGlvbi9D
TExvY2F0aW9uTWFuYWdlckRlbGVnYXRlLmg+CiAjaW1wb3J0IDxDb3JlTG9jYXRpb24vQ29yZUxv
Y2F0aW9uLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbXBv
cnQgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaD4KICNpbXBvcnQgPFdlYktpdExv
Z2dpbmcuaD4KICNpbXBvcnQgPG9iamMvb2JqYy1ydW50aW1lLmg+CiAjaW1wb3J0IDx3dGYvUmVm
UHRyLmg+CkBAIC0xNzAsNyArMTcwLDcgQEAgLSAodm9pZClsb2NhdGlvbk1hbmFnZXI6KENMTG9j
YXRpb25NYW5hZ2VyICopbWFuYWdlciBkaWRDaGFuZ2VBdXRob3JpemF0aW9uU3RhdHUKIAogLSAo
dm9pZClzZW5kTG9jYXRpb246KENMTG9jYXRpb24gKiluZXdMb2NhdGlvbgogewotICAgIFtfcG9z
aXRpb25MaXN0ZW5lciBwb3NpdGlvbkNoYW5nZWQ6R2VvbG9jYXRpb25Qb3NpdGlvbiB7IG5ld0xv
Y2F0aW9uIH1dOworICAgIFtfcG9zaXRpb25MaXN0ZW5lciBwb3NpdGlvbkNoYW5nZWQ6R2VvbG9j
YXRpb25Qb3NpdGlvbkRhdGEgeyBuZXdMb2NhdGlvbiB9XTsKIH0KIAogLSAodm9pZClsb2NhdGlv
bk1hbmFnZXI6KENMTG9jYXRpb25NYW5hZ2VyICopbWFuYWdlciBkaWRVcGRhdGVMb2NhdGlvbnM6
KE5TQXJyYXkgKilsb2NhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9z
L01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
aW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQppbmRleCBjMmZmMzUwZjc0NTI2
ZTEyNTZjMTllNGY1MjA4NWNiMzUxZDI0OTY4Li41ZTc3Nzk2NGYxNDllZjI2YjAwOTM5NTI1MDgy
NDUxMDUyNzhjODE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dl
Ykdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3Mv
TWlzYy9XZWJHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCkBAIC00Miw3ICs0Miw3IEBACiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogQGludGVyZmFjZSBXZWJHZW9sb2NhdGlvblBvc2l0aW9u
IChJbnRlcm5hbCkKLS0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlvbjooR2VvbG9jYXRp
b25Qb3NpdGlvbiYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOworLSAoaWQpaW5pdFdpdGhHZW9s
b2NhdGlvblBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKWNvcmVHZW9sb2NhdGlv
blBvc2l0aW9uOwogQGVuZAogCiAvLyBDb3JlTG9jYXRpb24gcnVucyBpbiB0aGUgbWFpbiB0aHJl
YWQuIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MgbGl2ZXMgb24gdGhlIFdlYlRocmVhZC4KQEAg
LTM0OCw3ICszNDgsNyBAQCAtICh2b2lkKWdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkRlbmllZAog
ICAgIH0pOwogfQogCi0tICh2b2lkKXBvc2l0aW9uQ2hhbmdlZDooV2ViQ29yZTo6R2VvbG9jYXRp
b25Qb3NpdGlvbiYmKXBvc2l0aW9uCistICh2b2lkKXBvc2l0aW9uQ2hhbmdlZDooV2ViQ29yZTo6
R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJilwb3NpdGlvbgogewogICAgIFJldGFpblB0cjxXZWJH
ZW9sb2NhdGlvblBvc2l0aW9uPiB3ZWJQb3NpdGlvbiA9IGFkb3B0TlMoW1tXZWJHZW9sb2NhdGlv
blBvc2l0aW9uIGFsbG9jXSBpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246V1RGTW92ZShwb3Np
dGlvbildKTsKICAgICBXZWJUaHJlYWRSdW4oXnsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCmlu
ZGV4IGZmZGJhY2ZjMjc0MjFlOGQzNTg4OGYyY2U2YjE4MDc3YTE2ZTMzZjAuLjhhMWI3ZjAwOWQy
Y2ZhMThiMGU4ZjM1MTMyODE3MTBkYjZiNDRhODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQu
aApAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHZW9sb2Nh
dGlvbjsKLWNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YTsKIH0KIAogQGNsYXNzIFdlYlZpZXc7CkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKSBvdmVycmlkZSB7IH0KICNlbmRp
ZgogCi0gICAgT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbj4gbGFzdFBvc2l0
aW9uKCkgb3ZlcnJpZGU7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlv
bkRhdGE+IGxhc3RQb3NpdGlvbigpIG92ZXJyaWRlOwogCiAgICAgdm9pZCByZXF1ZXN0UGVybWlz
c2lvbihXZWJDb3JlOjpHZW9sb2NhdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUGVy
bWlzc2lvblJlcXVlc3QoV2ViQ29yZTo6R2VvbG9jYXRpb24mKSBvdmVycmlkZSB7IH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2Nh
dGlvbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
Ykdlb2xvY2F0aW9uQ2xpZW50Lm1tCmluZGV4IDJjZjcxNWUyZDkwZGZlNzY2ODQ4OGJjMTc0NTFi
MTNlZGIyZTMwZjguLjg3ZGE3MzBmZWFhZmRlZGQ3NzRlZDdlYTk2YjZmOGQwOTNlYTlhM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xv
Y2F0aW9uQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBXZWJH
ZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oR2VvbG9jYXRpb24mIGdlb2xvY2F0
aW9uKQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKLU9wdGlvbmFsPEdlb2xv
Y2F0aW9uUG9zaXRpb24+IFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24oKQorT3B0
aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0
UG9zaXRpb24oKQogewogICAgIHJldHVybiBjb3JlKFtbbV93ZWJWaWV3IF9nZW9sb2NhdGlvblBy
b3ZpZGVyXSBsYXN0UG9zaXRpb25dKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQppbmRleCBkMTVmNWY5
YzY5ZWI0ZTZhN2YzZWQ5ZmFmNmVlZjM5NWNlYzFiZDhhLi41ZGJmZDM1NWE4NWM5N2UwMjliZTUx
Zjc0NTc1NWQzMTVkNDBlOTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tCkBAIC0yNiw3ICsyNiw3IEBA
CiAjaW1wb3J0ICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAKICNpbXBvcnQgIldlYkdlb2xv
Y2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oIgotI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlvblBv
c2l0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmg+CiAj
aW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KIApAQCAtMzUs
MTUgKzM1LDE1IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogQGludGVyZmFjZSBXZWJHZW9s
b2NhdGlvblBvc2l0aW9uSW50ZXJuYWwgOiBOU09iamVjdAogewogQHB1YmxpYwotICAgIEdlb2xv
Y2F0aW9uUG9zaXRpb24gX3Bvc2l0aW9uOworICAgIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIF9w
b3NpdGlvbjsKIH0KIAotLSAoaWQpaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjooR2Vv
bG9jYXRpb25Qb3NpdGlvbiYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOworLSAoaWQpaW5pdFdp
dGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjooR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiljb3Jl
R2VvbG9jYXRpb25Qb3NpdGlvbjsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkdlb2xvY2F0
aW9uUG9zaXRpb25JbnRlcm5hbAogCi0tIChpZClpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0
aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb24KKy0gKGlk
KWluaXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246KEdlb2xvY2F0aW9uUG9zaXRpb25EYXRh
JiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb24KIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwog
ICAgIGlmICghc2VsZikKQEAgLTU2LDcgKzU2LDcgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24g
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbgogCi1PcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uPiBj
b3JlKFdlYkdlb2xvY2F0aW9uUG9zaXRpb24gKnBvc2l0aW9uKQorT3B0aW9uYWw8R2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGE+IGNvcmUoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiAqcG9zaXRpb24pCiB7
CiAgICAgaWYgKCFwb3NpdGlvbikKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKQEAgLTY4
LDExICs2OCwxMSBAQCAtIChpZClpbml0V2l0aFRpbWVzdGFtcDooZG91YmxlKXRpbWVzdGFtcCBs
YXRpdHVkZTooZG91YmxlKWxhdGl0dWRlIGxvbmdpdHVkZTooZAogICAgIHNlbGYgPSBbc3VwZXIg
aW5pdF07CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIF9pbnRlcm5h
bCA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsIGFsbG9jXSBpbml0V2l0aENvcmVH
ZW9sb2NhdGlvblBvc2l0aW9uOkdlb2xvY2F0aW9uUG9zaXRpb24geyB0aW1lc3RhbXAsIGxhdGl0
dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH1dOworICAgIF9pbnRlcm5hbCA9IFtbV2ViR2VvbG9j
YXRpb25Qb3NpdGlvbkludGVybmFsIGFsbG9jXSBpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0
aW9uOkdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIHsgdGltZXN0YW1wLCBsYXRpdHVkZSwgbG9uZ2l0
dWRlLCBhY2N1cmFjeSB9XTsKICAgICByZXR1cm4gc2VsZjsKIH0KIAotLSAoaWQpaW5pdFdpdGhH
ZW9sb2NhdGlvblBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZUdlb2xvY2F0aW9u
UG9zaXRpb24KKy0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlvbjooR2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGEmJiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbgogewogICAgIHNlbGYgPSBbc3Vw
ZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmgK
aW5kZXggMzQ3NjMwMmYyZDZlYzM2MjIwMzM5MDQyZjRmYjJiYmViOTcyNTc5MS4uN2VhYWE5YzBl
Y2M1MGE4ODgxYzI4OGNkZjY5ZWM4Zjk0NGQ4NzJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb25J
bnRlcm5hbC5oCkBAIC0yNyw4ICsyNyw4IEBACiAjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFz
cyBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YTsKIH0KIAotT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9j
YXRpb25Qb3NpdGlvbj4gY29yZShXZWJHZW9sb2NhdGlvblBvc2l0aW9uICopOworT3B0aW9uYWw8
V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGNvcmUoV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbiAqKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDNmNTIzNGFmMmQ0MTIzZTZiZTEzYzdiYjJlYzg0MDMwZGIwMzVmYjMuLjMxNjI3YTI0
NWZjNTc5MjFmYTE1M2QzMDJjNjVkYjVjZDM5MGM3MGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0wOC0yMiAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtnZW9sb2NhdGlvbl0g
UmVuYW1lIGludGVyZmFjZXMgYW5kIHJlbW92ZSBbTm9JbnRlcmZhY2VPYmplY3RdCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4ODUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xv
Y2F0aW9uUG9zaXRpb24pOgorCiAyMDE5LTA4LTIyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJk
QGFwcGxlLmNvbT4KIAogICAgICAgICByZXN1bHRzLndlYmtpdC5vcmc6IFJlbW92ZSBicmFuY2gg
YW5kIHJlcG9zaXRvcnkgaW5mb3JtYXRpb24gZnJvbSBjb21taXQgdG9vbHRpcApkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQppbmRleCAxZjk2MGFhZTJkZDAzZTE2MGIx
MjRjNzkyMjNlOTU2YWFkY2VhNzhlLi4wMDY1OTU2YzgxZGQ3MTM1ZGUwMjdmNDlhMWY1M2JlYzY4
MzYwNzJhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1h
Yy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAt
NDEsNyArNDEsNyBAQAogI2ltcG9ydCAiV29ya1F1ZXVlSXRlbS5oIgogI2ltcG9ydCA8Rm91bmRh
dGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1JlZkNG
Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbXBvcnQgPFdl
YkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaD4KICNpbXBvcnQgPFdlYktpdC9ET01Eb2N1
bWVudC5oPgogI2ltcG9ydCA8V2ViS2l0L0RPTUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYktpdC9E
T01IVE1MSW5wdXRFbGVtZW50UHJpdmF0ZS5oPgpAQCAtMTE5LDcgKzExOSw3IEBAIEBlbmQKICNl
bmRpZgogCiBAaW50ZXJmYWNlIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24gKEludGVybmFsKQotLSAo
aWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0aW9uOihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0
aW9uJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb247CistIChpZClpbml0V2l0aEdlb2xvY2F0aW9u
UG9zaXRpb246KFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYpY29yZUdlb2xvY2F0
aW9uUG9zaXRpb247CiBAZW5kCiAKIFRlc3RSdW5uZXI6On5UZXN0UnVubmVyKCkKQEAgLTQ3Miw3
ICs0NzIsNyBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRv
dWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZAogICAgICAgICAvLyBUZXN0IHRoZSBl
eHBvc2VkIEFQSS4KICAgICAgICAgcG9zaXRpb24gPSBbW1dlYkdlb2xvY2F0aW9uUG9zaXRpb24g
YWxsb2NdIGluaXRXaXRoVGltZXN0YW1wOldhbGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9j
aCgpLnNlY29uZHMoKSBsYXRpdHVkZTpsYXRpdHVkZSBsb25naXR1ZGU6bG9uZ2l0dWRlIGFjY3Vy
YWN5OmFjY3VyYWN5XTsKICAgICB9IGVsc2UgewotICAgICAgICBXZWJDb3JlOjpHZW9sb2NhdGlv
blBvc2l0aW9uIGdlb2xvY2F0aW9uUG9zaXRpb24geyBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1Np
bmNlRXBvY2goKS5zZWNvbmRzKCksIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH07Cisg
ICAgICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIGdlb2xvY2F0aW9uUG9zaXRp
b24geyBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCksIGxhdGl0
dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH07CiAgICAgICAgIGlmIChwcm92aWRlc0FsdGl0dWRl
KQogICAgICAgICAgICAgZ2VvbG9jYXRpb25Qb3NpdGlvbi5hbHRpdHVkZSA9IGFsdGl0dWRlOwog
ICAgICAgICBpZiAocHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5KQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZlMDE1MGU2Yjdh
MmNmNTQyNzdjYmI4ZGM3YzEyMDE3ZTY0OGExM2UuLjY5YjY0ZmU4ZTJjYjE3MDc2YzRmMzNkNjdk
YmM1MmRkMzU3OWQ3ZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0wOC0yMiAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtnZW9sb2NhdGlvbl0gUmVuYW1l
IGludGVyZmFjZXMgYW5kIHJlbW92ZSBbTm9JbnRlcmZhY2VPYmplY3RdCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4ODUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292ZXJh
Z2UuCisKKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9leHBvc2VkLWdlb2xvY2F0aW9u
LWludGVyZmFjZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9HZW9s
b2NhdGlvbi9leHBvc2VkLWdlb2xvY2F0aW9uLWludGVyZmFjZXMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJpbmcuaHRtbDoKKwog
MjAxOS0wOC0yMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZWJhc2VsaW5lIHNvbWUgZWRpdGluZyB0ZXN0cyBhZnRlciByMjQ4OTc0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9leHBvc2VkLWdlb2xvY2F0aW9u
LWludGVyZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRp
b24vZXhwb3NlZC1nZW9sb2NhdGlvbi1pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mYWViMTk4YWJjMmFkY2Q4ODUyMDMyNmM1NGU0N2FmMGM2ZTBhNWVmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZXhwb3NlZC1nZW9sb2NhdGlv
bi1pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitDaGVja3MgdGhhdCB0
aGUgR2VvbG9jYXRpb24gaW50ZXJmYWNlcyBhcmUgZXhwb3NlZCBhbmQgdGhhdCB0aGVpciBuYW1l
IGlzIGNvcnJlY3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHdpbmRv
d1Byb3BlcnRpZXMuaW5kZXhPZignR2VvbG9jYXRpb24nKSA+PSAwIGlzIHRydWUKK1BBU1Mgd2lu
ZG93UHJvcGVydGllcy5pbmRleE9mKCdHZW9sb2NhdGlvbkNvb3JkaW5hdGVzJykgPj0gMCBpcyB0
cnVlCitQQVNTIHdpbmRvd1Byb3BlcnRpZXMuaW5kZXhPZignR2VvbG9jYXRpb25Qb3NpdGlvbicp
ID49IDAgaXMgdHJ1ZQorUEFTUyB3aW5kb3dQcm9wZXJ0aWVzLmluZGV4T2YoJ0dlb2xvY2F0aW9u
UG9zaXRpb25FcnJvcicpID49IDAgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0dlb2xvY2F0aW9uL2V4cG9zZWQtZ2VvbG9jYXRpb24taW50ZXJmYWNlcy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZXhwb3NlZC1nZW9sb2NhdGlvbi1pbnRlcmZhY2Vz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGNjNzgzMGI5NTk3N2UwY2MxNGY4MWE4MzAxYTUyNGVhYzhlMzA5
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2V4
cG9zZWQtZ2VvbG9jYXRpb24taW50ZXJmYWNlcy5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkNoZWNrcyB0
aGF0IHRoZSBHZW9sb2NhdGlvbiBpbnRlcmZhY2VzIGFyZSBleHBvc2VkIGFuZCB0aGF0IHRoZWly
IG5hbWUgaXMgY29ycmVjdC4iKTsKKworY29uc3Qgd2luZG93UHJvcGVydGllcyA9IE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdyk7Citjb25zdCBleHBlY3RlZFByb3BlcnRpZXMgPSBb
Ikdlb2xvY2F0aW9uIiwgIkdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMiLCAiR2VvbG9jYXRpb25Qb3Np
dGlvbiIsICJHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IiXTsKKworZm9yIChsZXQgZXhwZWN0ZWRQ
cm9wZXJ0eSBvZiBleHBlY3RlZFByb3BlcnRpZXMpCisgIHNob3VsZEJlVHJ1ZSgid2luZG93UHJv
cGVydGllcy5pbmRleE9mKCciICsgZXhwZWN0ZWRQcm9wZXJ0eSArICInKSA+PSAwIik7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0dlb2xvY2F0aW9uL3Bvc2l0aW9uLXN0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJpbmctZXhwZWN0ZWQudHh0CmluZGV4IDA0
NWY0OTZlZjljZWNiNTk3MTg3ZTcxMDY5ZjE4YWQ5MTI3NzE2ZDQuLjRhNzEyNzRiMDkwMTEyNDEx
NzczMTllYjliODU1NGYyNjQxNGE4YmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0dlb2xvY2F0aW9uL3Bvc2l0aW9uLXN0cmluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLWV4cGVjdGVkLnR4dApAQCAt
Niw4ICs2LDggQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFBBU1MgcG9zaXRpb24uY29vcmRz
LmxhdGl0dWRlIGlzIG1vY2tMYXRpdHVkZQogUEFTUyBwb3NpdGlvbi5jb29yZHMubG9uZ2l0dWRl
IGlzIG1vY2tMb25naXR1ZGUKIFBBU1MgcG9zaXRpb24uY29vcmRzLmFjY3VyYWN5IGlzIG1vY2tB
Y2N1cmFjeQotUEFTUyBwb3NpdGlvbi50b1N0cmluZygpIGlzICJbb2JqZWN0IEdlb3Bvc2l0aW9u
XSIKLVBBU1MgcG9zaXRpb24uY29vcmRzLnRvU3RyaW5nKCkgaXMgIltvYmplY3QgQ29vcmRpbmF0
ZXNdIgorUEFTUyBwb3NpdGlvbi50b1N0cmluZygpIGlzICJbb2JqZWN0IEdlb2xvY2F0aW9uUG9z
aXRpb25dIgorUEFTUyBwb3NpdGlvbi5jb29yZHMudG9TdHJpbmcoKSBpcyAiW29iamVjdCBHZW9s
b2NhdGlvbkNvb3JkaW5hdGVzXSIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAog
VEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRp
b24vcG9zaXRpb24tc3RyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlv
bi9wb3NpdGlvbi1zdHJpbmcuaHRtbAppbmRleCBiNjY0ZDFjMDIzMGEyZjA3YzhhYTkwYzE1ZmJk
NTFmNzk0ZmUwYTI0Li42Y2ViNmU3NjNkZDNmMjZjZTdjMzMxMmM0N2U4ZDljZGQxZGI2NTdlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJp
bmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1z
dHJpbmcuaHRtbApAQCAtMjYsOCArMjYsOCBAQCBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3Vy
cmVudFBvc2l0aW9uKGZ1bmN0aW9uKHApIHsKICAgICBzaG91bGRCZSgncG9zaXRpb24uY29vcmRz
LmxhdGl0dWRlJywgJ21vY2tMYXRpdHVkZScpOwogICAgIHNob3VsZEJlKCdwb3NpdGlvbi5jb29y
ZHMubG9uZ2l0dWRlJywgJ21vY2tMb25naXR1ZGUnKTsKICAgICBzaG91bGRCZSgncG9zaXRpb24u
Y29vcmRzLmFjY3VyYWN5JywgJ21vY2tBY2N1cmFjeScpOwotICAgIHNob3VsZEJlKCdwb3NpdGlv
bi50b1N0cmluZygpJywgJyJbb2JqZWN0IEdlb3Bvc2l0aW9uXSInKTsKLSAgICBzaG91bGRCZSgn
cG9zaXRpb24uY29vcmRzLnRvU3RyaW5nKCknLCAnIltvYmplY3QgQ29vcmRpbmF0ZXNdIicpOwor
ICAgIHNob3VsZEJlKCdwb3NpdGlvbi50b1N0cmluZygpJywgJyJbb2JqZWN0IEdlb2xvY2F0aW9u
UG9zaXRpb25dIicpOworICAgIHNob3VsZEJlKCdwb3NpdGlvbi5jb29yZHMudG9TdHJpbmcoKScs
ICciW29iamVjdCBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzXSInKTsKICAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0sIGZ1bmN0aW9uKGUpIHsKICAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZv
a2VkIHVuZXhwZWN0ZWRseScpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377132</attachid>
            <date>2019-08-23 10:26:38 -0700</date>
            <delta_ts>2019-08-23 10:53:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200885-20190823102637.patch</filename>
            <type>text/plain</type>
            <size>138707</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQzNTYyOGI0NzIxMTBk
YzA3ZTk5ODc3ZDJkMzBkNGE2ZGYzOWMxNi4uNDRlZTZjNmFjYTg0NmU5OTA5ODA4NTVhNDY0YjM2
NjM5MTU1NzEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDE5LTA4LTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2dlb2xvY2F0aW9uXSBSZW5h
bWUgaW50ZXJmYWNlcyBhbmQgcmVtb3ZlIFtOb0ludGVyZmFjZU9iamVjdF0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDg4NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBHZW9sb2NhdGlvbiBp
bnRlcmZhY2VzIGFuZCBleHBvc2UgdGhlbSBvbiB0aGUgZ2xvYmFsIFdpbmRvdyBvYmplY3QgdG8g
bWF0Y2ggdGhlCisgICAgICAgIGxhdGVzdCBzcGVjaWZpY2F0aW9uOgorICAgICAgICAtIGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9nZW9sb2NhdGlvbi1hcGkvI2FwaV9kZXNjcmlwdGlvbgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL0dlb2xvY2F0aW9uL2V4cG9zZWQtZ2VvbG9jYXRpb24taW50ZXJm
YWNlcy5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
SGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb05vdGlmaWVyOjpzZXRGYXRhbEVycm9yKToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlb05vdGlmaWVyOjpydW5TdWNjZXNzQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6R2VvTm90aWZpZXI6OnJ1bkVycm9yQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6R2VvTm90aWZpZXI6OnRpbWVyRmlyZWQpOgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvTm90aWZpZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUdlb2xvY2F0aW9uUG9zaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpsYXN0UG9zaXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R2VvbG9jYXRpb246OnN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpHZW9s
b2NhdGlvbjo6cmVxdWVzdFVzZXNDYWNoZWRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpH
ZW9sb2NhdGlvbjo6bWFrZUNhY2hlZFBvc2l0aW9uQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNv
cmU6Okdlb2xvY2F0aW9uOjpoYXZlU3VpdGFibGVDYWNoZWRQb3NpdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpHZW9sb2NhdGlvbjo6c2V0SXNBbGxvd2VkKToKKyAgICAgICAgKFdlYkNvcmU6Okdl
b2xvY2F0aW9uOjpzZW5kRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OnNl
bmRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6Y2FuY2VsUmVxdWVz
dHMpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OmhhbmRsZUVycm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjptYWtlU3VjY2Vzc0NhbGxiYWNrcyk6CisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6cG9zaXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNv
cmU6Okdlb2xvY2F0aW9uOjpzZXRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
bjo6aGFuZGxlUGVuZGluZ1Blcm1pc3Npb25Ob3RpZmllcnMpOgorICAgICAgICAqIE1vZHVsZXMv
Z2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uQ2xpZW50Lmg6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjpw
b3NpdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVy
OjpsYXN0UG9zaXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b25Db250cm9sbGVyLmg6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bkNvb3JkaW5hdGVzLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vQ29vcmRpbmF0ZXMuY3BwLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25D
b29yZGluYXRlczo6R2VvbG9jYXRpb25Db29yZGluYXRlcyk6CisgICAgICAgICogTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmguCisgICAgICAgIChXZWJD
b3JlOjpHZW9sb2NhdGlvbkNvb3JkaW5hdGVzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R2VvbG9jYXRpb25Db29yZGluYXRlczo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKiBN
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRsOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5pZGwuCisg
ICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmg6CisgICAg
ICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbjo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb246OnRpbWVzdGFtcCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uOjpjb29yZHMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbjo6R2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAg
ICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRs
LgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEu
aDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvblBvc2l0aW9uLmguCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0
aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmguCisgICAgICAgIChXZWJDb3Jl
OjpHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpH
ZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6Okdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcik6CisgICAg
ICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRsOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVy
cm9yLmlkbC4KKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bvc2l0aW9uLmg6IFJl
bW92ZWQuCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmg6
CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5oOgorICAg
ICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlP
Uy5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vaW9z
L0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0uCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
blBvc2l0aW9uRGF0YTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEpOgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnNldFBvc2l0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jazo6bGFzdFBvc2l0aW9uKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oOgorCiAyMDE5LTA4LTIyICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgSW1hZ2VCdWZm
ZXIgYW5kIFNWRydzIEZpbHRlckRhdGEgaXNvaGVhcCdlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3ZmY3OGZiZjRk
ZTJjYzg5ZGE2ZDYzNzg2OTAxYzk5NGU3ZDAyZTFmLi5iYmRkNDNlYjNlMjFjN2Y1ZGY0OTA3NDdj
ZTVmZjYyYzE4YzZhZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTA4LTIyICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2dlb2xvY2F0aW9uXSBS
ZW5hbWUgaW50ZXJmYWNlcyBhbmQgcmVtb3ZlIFtOb0ludGVyZmFjZU9iamVjdF0KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDg4NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYkdlb2xv
Y2F0aW9uUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0
aW9uOjpjcmVhdGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmg6
CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNvcmVQb3NpdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OldlYkdlb2xv
Y2F0aW9uUG9zaXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9u
UG9zaXRpb24uY3BwOgorICAgICAgICAoV0tHZW9sb2NhdGlvblBvc2l0aW9uQ3JlYXRlX2MpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6bGFzdFBvc2l0aW9uIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbToK
KyAgICAgICAgKC1bV0tMZWdhY3lDb3JlTG9jYXRpb25Qcm92aWRlciBwb3NpdGlvbkNoYW5nZWQ6
XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5n
ZVBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0
aW9uTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9j
YXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lmg6CisKIDIwMTktMDgtMjIgIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVd
IEZpeGVzIGZvciBub24tdW5pZmllZCBidWlsZHMgYWZ0ZXIgcjI0ODU0NwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9p
b3MvQ2hhbmdlTG9nCmluZGV4IDU1MWEwYjc3OWEwZTQ5MTI1MDEwNGY2NWM3ODk2Yzg2MjdiZDAz
NGIuLjk2MWFhODg5YjgyMTJmZTZmMDM3Y2Y1YzVjMzZlMzM1Y2IzYWRhY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L2lvcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wOC0yMiAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtnZW9sb2NhdGlvbl0gUmVuYW1lIGlu
dGVyZmFjZXMgYW5kIHJlbW92ZSBbTm9JbnRlcmZhY2VPYmplY3RdCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4ODUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pc2MvV2ViR2VvbG9jYXRpb25Db3Jl
TG9jYXRpb25Qcm92aWRlci5oOgorICAgICAgICAqIE1pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9j
YXRpb25Qcm92aWRlci5tbToKKyAgICAgICAgKC1bV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Q
cm92aWRlciBzZW5kTG9jYXRpb246XSk6CisgICAgICAgICogTWlzYy9XZWJHZW9sb2NhdGlvblBy
b3ZpZGVySU9TLm1tOgorICAgICAgICAoLVtfV2ViQ29yZUxvY2F0aW9uVXBkYXRlVGhyZWFkaW5n
UHJveHkgcG9zaXRpb25DaGFuZ2VkOl0pOgorCiAyMDE5LTA4LTE4ICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dURl0gQWRkIG1ha2VVbmlxdWU8VD4sIHdo
aWNoIGVuc3VyZXMgVCBpcyBmYXN0LWFsbG9jYXRlZCwgbWFrZVVuaXF1ZSAvIG1ha2VVbmlxdWVX
aXRob3V0RmFzdE1hbGxvY0NoZWNrIHBhcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRl
eCAzMTVjMWVhYTg5NDdjNGY0MWIwMjE2ZmFkZWJhYWVmYmE0M2RiNzYwLi45ZTA0YjVkZDI5NzNl
Y2RhMjczNmFhNjBjZTU2NTVhNjFjMmE4YmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMDgtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBbZ2VvbG9jYXRpb25dIFJlbmFtZSBpbnRlcmZhY2VzIGFuZCByZW1v
dmUgW05vSW50ZXJmYWNlT2JqZWN0XQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAwODg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tOgorICAgICAg
ICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbik6CisgICAgICAgICogV2ViVmll
dy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBv
c2l0aW9uSW50ZXJuYWwgaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjpdKToKKyAgICAg
ICAgKGNvcmUpOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBvc2l0aW9uIGluaXRXaXRoVGlt
ZXN0YW1wOmxhdGl0dWRlOmxvbmdpdHVkZTphY2N1cmFjeTpdKToKKyAgICAgICAgKC1bV2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbiBpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246XSk6CisgICAgICAg
ICogV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaDoKKwogMjAxOS0wOC0y
MSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFp
bF0gVGFwcGluZyB0b3Agb2YgbWVzc2FnZSBzY3JvbGxzIGJhY2sgdG8gY29waWVkIHRleHQgaW5z
dGVhZCBvZiB0b3Agb2YgdGhlIG1lc3NhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMGUyOTNk
MjUyOTNiMDNhZjZlZTFjZWUwM2M4ZjgwMzIxOTU3ZWVlOC4uYTViNjJmNDA4ZGZmM2IzMmYwNTAx
NjBhOWU1OTkxNWZjNDk4NGZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI2MSwxMiArMjYx
LDEyIEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlc3BvbnNlLmlkbAogICAgIE1vZHVsZXMvZmV0Y2gvV29ya2VyR2xvYmFsU2NvcGVGZXRj
aC5pZGwKIAotICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsCiAgICAgTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwKLSAgICBNb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb3Bvc2l0aW9uLmlkbAorICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29y
ZGluYXRlcy5pZGwKKyAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24u
aWRsCisgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRs
CiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwKICAgICBN
b2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaWRsCi0gICAgTW9kdWxlcy9nZW9s
b2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRp
b25FcnJvckNhbGxiYWNrLmlkbAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25PcHRp
b25zLmlkbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAppbmRleCBlNDA4M2RkOTBjNzcwNGNjMTVhMzYzYzJlNjI1MzlhZWViZTE0MTg3Li4zNTI2
ZmRhNmNjMjczOTI2MWU4YTIyYWNiMmM2OGNkNWRlMDI0ZjhmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTk5LDYgKzk5LDkgQEAgJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRFdmVudC5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaWRsCiskKFBST0pFQ1RfRElSKS9N
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA5MDZjMzE0
NTM3ODA1NGYzZDAxN2RmYmVlNDFkYzZhMmY4MDYyZTY0Li5lYjczM2ZmNzBiOTZiODYyYzAyNTBl
YTg1NjJkNTQzNDE4NjZhNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNjU1LDYgKzY1NSwxMiBAQCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dhbWVwYWRXZWJWUi5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2FtZXBhZFdlYlZSLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb24u
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xv
Y2F0aW9uLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
R2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb25Db29yZGluYXRlcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uUG9zaXRpb24uY3Bw
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0
aW9uUG9zaXRpb24uaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb3Bvc2l0aW9uLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHZW9wb3Np
dGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dl
c3R1cmVFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDQ2NGMxM2Yy
NjE0MDIzNjljNDA1Y2Y3MTUxMzBmN2YwODM3NmU2ZTYuLjBjMjhiNjU3Yjg1NjY2MDEwZGZjODA0
NWI1MjRiNjAwOThkMGIwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTcx
LDEyICsxNzEsMTIgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9nYW1lcGFkL0dhbWVwYWRCdXR0b24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2Ft
ZXBhZC9HYW1lcGFkRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2FtZXBhZC9O
YXZpZ2F0b3JHYW1lcGFkLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0Nvb3JkaW5hdGVzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bv
c2l0aW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uQ29vcmRpbmF0ZXMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb25Qb3NpdGlvbi5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwgXAotICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5pZGwg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKaW5kZXggN2I4MjgwZWJkMDI0ZjM0Y2M2NzExMmZmMDAxNzFlNjkx
YWZlN2QyZS4uNWQ5NjE2YTQ1NjI2ZjU1NmMwMDE2ZTJhMzQyNGQ0ZjRlOTA0MjQ2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCkBAIC0yNSwxNSArMjUsMTUgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuaAogICAgIE1vZHVs
ZXMvZmV0Y2gvRmV0Y2hMb2FkZXJDbGllbnQuaAogCi0gICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9D
b29yZGluYXRlcy5oCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCiAgICAg
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNsaWVudC5oCiAgICAgTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAorICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb25Db29yZGluYXRlcy5oCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvbkVycm9yLmgKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24u
aAotICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaAorICAgIE1vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaAorICAgIE1vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmgKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bv
c2l0aW9uQ2FsbGJhY2suaAotICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5o
CiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaAogICAgIE1v
ZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25PcHRpb25zLmgKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOWNlYmRmYzBmNjVhOGZiODEwMjQzZTEyN2VkNzk2NzU4NDJmNTBjYi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDb29yZGluYXRlcy5oIgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUNvb3JkaW5hdGVzOjpDb29yZGluYXRlcyhHZW9sb2NhdGlv
blBvc2l0aW9uJiYgcG9zaXRpb24pCi0gICAgOiBtX3Bvc2l0aW9uKFdURk1vdmUocG9zaXRpb24p
KQotewotICAgIEFTU0VSVChtX3Bvc2l0aW9uLmlzVmFsaWQoKSk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vQ29vcmRpbmF0ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29v
cmRpbmF0ZXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmQ1MTgyODJhZWNkNTFm
NjFkZTZiNTYwOTYzMWRjYzUzM2VmODUzZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3Jk
aW5hdGVzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNs
dWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCi0jaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Ci0j
aW5jbHVkZSA8d3RmL1JlZi5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ29vcmRpbmF0ZXMgOiBwdWJsaWMgUmVmQ291bnRlZDxD
b29yZGluYXRlcz4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q29vcmRpbmF0ZXM+IGNyZWF0
ZShHZW9sb2NhdGlvblBvc2l0aW9uJiYgcG9zaXRpb24pCi0gICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDb29yZGluYXRlcyhXVEZNb3ZlKHBvc2l0aW9uKSkpOwotICAgIH0KLQot
ICAgIFJlZjxDb29yZGluYXRlcz4gaXNvbGF0ZWRDb3B5KCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IHJldHVybiBDb29yZGluYXRlczo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb24obV9wb3NpdGlv
bikpOwotICAgIH0KLQotICAgIGRvdWJsZSBsYXRpdHVkZSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9z
aXRpb24ubGF0aXR1ZGU7IH0KLSAgICBkb3VibGUgbG9uZ2l0dWRlKCkgY29uc3QgeyByZXR1cm4g
bV9wb3NpdGlvbi5sb25naXR1ZGU7IH0KLSAgICBPcHRpb25hbDxkb3VibGU+IGFsdGl0dWRlKCkg
Y29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5hbHRpdHVkZTsgfQotICAgIGRvdWJsZSBhY2N1cmFj
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24uYWNjdXJhY3k7IH0KLSAgICBPcHRpb25hbDxk
b3VibGU+IGFsdGl0dWRlQWNjdXJhY3koKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uLmFsdGl0
dWRlQWNjdXJhY3k7IH0KLSAgICBPcHRpb25hbDxkb3VibGU+IGhlYWRpbmcoKSBjb25zdCB7IHJl
dHVybiBtX3Bvc2l0aW9uLmhlYWRpbmc7IH0KLSAgICBPcHRpb25hbDxkb3VibGU+IHNwZWVkKCkg
Y29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5zcGVlZDsgfQotICAgIE9wdGlvbmFsPGRvdWJsZT4g
Zmxvb3JMZXZlbCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24uZmxvb3JMZXZlbDsgfQotICAg
IAotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBDb29yZGluYXRlcyhHZW9sb2NhdGlvblBvc2l0aW9u
JiYpOwotCi0gICAgR2VvbG9jYXRpb25Qb3NpdGlvbiBtX3Bvc2l0aW9uOwotfTsKLSAgICAKLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Db29yZGluYXRlcy5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJm
NWNlZmIwZmMwMzdhY2ZiOTZmMTZjYzRmMjE0MmFjMzYzYzk3MGEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Db29yZGluYXRlcy5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLVsKLSAgICBOb0lu
dGVyZmFjZU9iamVjdCwKLSAgICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwKLSAgICBJbXBsZW1l
bnRhdGlvbkxhY2tzVlRhYmxlCi1dIGludGVyZmFjZSBDb29yZGluYXRlcyB7Ci0gICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbGF0aXR1ZGU7Ci0gICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbG9uZ2l0dWRlOwotICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlPyBhbHRpdHVkZTsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBhY2N1cmFjeTsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gYWx0aXR1ZGVBY2N1cmFjeTsKLSAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gaGVhZGluZzsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gc3BlZWQ7Ci0gICAgW0VuYWJsZWRCeVNldHRpbmc9
R2VvbG9jYXRpb25GbG9vckxldmVsXSByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZT8gZmxvb3JMZXZlbDsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvTm90aWZpZXIuY3BwCmluZGV4IDc3ZWJmMzQyMWM5MmYzMDY4ODk1NDIyOWM1
YjMzZWU3YjBiNDMzNDAuLjcwZjg5NjIxZmNmODUyNzJkZDk1ZDg4OWU3MGE3M2U1YTg5MjAwMDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZp
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZp
ZXIuY3BwCkBAIC00NCw3ICs0NCw3IEBAIEdlb05vdGlmaWVyOjpHZW9Ob3RpZmllcihHZW9sb2Nh
dGlvbiYgZ2VvbG9jYXRpb24sIFJlZjxQb3NpdGlvbkNhbGxiYWNrPiYmIHN1Y2NlCiB7CiB9CiAK
LXZvaWQgR2VvTm90aWZpZXI6OnNldEZhdGFsRXJyb3IoUmVmUHRyPFBvc2l0aW9uRXJyb3I+JiYg
ZXJyb3IpCit2b2lkIEdlb05vdGlmaWVyOjpzZXRGYXRhbEVycm9yKFJlZlB0cjxHZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3I+JiYgZXJyb3IpCiB7CiAgICAgLy8gSWYgYSBmYXRhbCBlcnJvciBoYXMg
YWxyZWFkeSBiZWVuIHNldCwgc3RpY2sgd2l0aCBpdC4gVGhpcyBtYWtlcyBzdXJlIHRoYXQKICAg
ICAvLyB3aGVuIHBlcm1pc3Npb24gaXMgZGVuaWVkLCB0aGlzIGlzIHRoZSBlcnJvciByZXBvcnRl
ZCwgYXMgcmVxdWlyZWQgYnkgdGhlCkBAIC02OSw3ICs2OSw3IEBAIGJvb2wgR2VvTm90aWZpZXI6
Omhhc1plcm9UaW1lb3V0KCkgY29uc3QKICAgICByZXR1cm4gIW1fb3B0aW9ucy50aW1lb3V0Owog
fQogCi12b2lkIEdlb05vdGlmaWVyOjpydW5TdWNjZXNzQ2FsbGJhY2soR2VvcG9zaXRpb24qIHBv
c2l0aW9uKQordm9pZCBHZW9Ob3RpZmllcjo6cnVuU3VjY2Vzc0NhbGxiYWNrKEdlb2xvY2F0aW9u
UG9zaXRpb24qIHBvc2l0aW9uKQogewogICAgIC8vIElmIHdlIGFyZSBoZXJlIGFuZCB0aGUgR2Vv
bG9jYXRpb24gcGVybWlzc2lvbiBpcyBub3QgYXBwcm92ZWQsIHNvbWV0aGluZyBoYXMKICAgICAv
LyBnb25lIGhvcnJpYmx5IHdyb25nLgpAQCAtNzksNyArNzksNyBAQCB2b2lkIEdlb05vdGlmaWVy
OjpydW5TdWNjZXNzQ2FsbGJhY2soR2VvcG9zaXRpb24qIHBvc2l0aW9uKQogICAgIG1fc3VjY2Vz
c0NhbGxiYWNrLT5oYW5kbGVFdmVudChwb3NpdGlvbik7CiB9CiAKLXZvaWQgR2VvTm90aWZpZXI6
OnJ1bkVycm9yQ2FsbGJhY2soUG9zaXRpb25FcnJvciYgZXJyb3IpCit2b2lkIEdlb05vdGlmaWVy
OjpydW5FcnJvckNhbGxiYWNrKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciYgZXJyb3IpCiB7CiAg
ICAgaWYgKG1fZXJyb3JDYWxsYmFjaykKICAgICAgICAgbV9lcnJvckNhbGxiYWNrLT5oYW5kbGVF
dmVudChlcnJvcik7CkBAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBHZW9Ob3RpZmllcjo6dGltZXJG
aXJlZCgpCiAgICAgfQogICAgIAogICAgIGlmIChtX2Vycm9yQ2FsbGJhY2spIHsKLSAgICAgICAg
YXV0byBlcnJvciA9IFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpUSU1FT1VU
LCAiVGltZW91dCBleHBpcmVkIl9zKTsKKyAgICAgICAgYXV0byBlcnJvciA9IEdlb2xvY2F0aW9u
UG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6VElNRU9VVCwg
IlRpbWVvdXQgZXhwaXJlZCJfcyk7CiAgICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZl
bnQoZXJyb3IpOwogICAgIH0KICAgICBtX2dlb2xvY2F0aW9uLT5yZXF1ZXN0VGltZWRPdXQodGhp
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05v
dGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVy
LmgKaW5kZXggZmIzMmNlOGQ5YmZkMjk4YmM2NTFiMWUyMjU5ODc0ZWIwMmQxNjIyYy4uZGI5MTNl
ZjkwYzE0OTVlMzk2OWZkZDk5YjA0YmZhMDkwNDc0OGNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9Ob3RpZmllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZpZXIuaApAQCAtMzYsMTAgKzM2LDEwIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR2VvcG9zaXRpb247CiBjbGFzcyBHZW9s
b2NhdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBv
c2l0aW9uRXJyb3I7CiBjbGFzcyBQb3NpdGlvbkNhbGxiYWNrOwotY2xhc3MgUG9zaXRpb25FcnJv
cjsKIGNsYXNzIFBvc2l0aW9uRXJyb3JDYWxsYmFjazsKIAogY2xhc3MgR2VvTm90aWZpZXIgOiBw
dWJsaWMgUmVmQ291bnRlZDxHZW9Ob3RpZmllcj4gewpAQCAtNTAsMTMgKzUwLDEzIEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICBjb25zdCBQb3NpdGlvbk9wdGlvbnMmIG9wdGlvbnMoKSBjb25zdCB7
IHJldHVybiBtX29wdGlvbnM7IH0KLSAgICB2b2lkIHNldEZhdGFsRXJyb3IoUmVmUHRyPFBvc2l0
aW9uRXJyb3I+JiYpOworICAgIHZvaWQgc2V0RmF0YWxFcnJvcihSZWZQdHI8R2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yPiYmKTsKIAogICAgIGJvb2wgdXNlQ2FjaGVkUG9zaXRpb24oKSBjb25zdCB7
IHJldHVybiBtX3VzZUNhY2hlZFBvc2l0aW9uOyB9CiAgICAgdm9pZCBzZXRVc2VDYWNoZWRQb3Np
dGlvbigpOwogCi0gICAgdm9pZCBydW5TdWNjZXNzQ2FsbGJhY2soR2VvcG9zaXRpb24qKTsgLy8g
RklYTUU6IFRoaXMgc2hvdWxkIHRha2UgYSByZWZlcmVuY2UuCi0gICAgdm9pZCBydW5FcnJvckNh
bGxiYWNrKFBvc2l0aW9uRXJyb3ImKTsKKyAgICB2b2lkIHJ1blN1Y2Nlc3NDYWxsYmFjayhHZW9s
b2NhdGlvblBvc2l0aW9uKik7IC8vIEZJWE1FOiBUaGlzIHNob3VsZCB0YWtlIGEgcmVmZXJlbmNl
LgorICAgIHZvaWQgcnVuRXJyb3JDYWxsYmFjayhHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImKTsK
IAogICAgIHZvaWQgc3RhcnRUaW1lcklmTmVlZGVkKCk7CiAgICAgdm9pZCBzdG9wVGltZXIoKTsK
QEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxi
YWNrPiBtX2Vycm9yQ2FsbGJhY2s7CiAgICAgUG9zaXRpb25PcHRpb25zIG1fb3B0aW9uczsKICAg
ICBUaW1lciBtX3RpbWVyOwotICAgIFJlZlB0cjxQb3NpdGlvbkVycm9yPiBtX2ZhdGFsRXJyb3I7
CisgICAgUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gbV9mYXRhbEVycm9yOwogICAg
IGJvb2wgbV91c2VDYWNoZWRQb3NpdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKaW5kZXggZTI2OTFmNTk3ZmU3M2Nj
YmU4NWJiZGU4ZTkzNGY3ZmFlZmU4MmZiZS4uZjEyZTE0OTBmZDg3ZDdiN2IyNzExZTQyYzZiYWY1
NDk4YTk5MGE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAKQEAgLTMwLDE3ICszMCwxNiBAQAogCiAjaWYgRU5BQkxFKEdFT0xP
Q0FUSU9OKQogCi0jaW5jbHVkZSAiQ29vcmRpbmF0ZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiR2VvTm90aWZpZXIuaCIKICNpbmNsdWRl
ICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkNvb3JkaW5h
dGVzLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25FcnJvci5oIgogI2luY2x1ZGUgIkdlb2xvY2F0
aW9uUG9zaXRpb24uaCIKLSNpbmNsdWRlICJHZW9wb3NpdGlvbi5oIgorI2luY2x1ZGUgIkdlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgotI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKICNpbmNsdWRlICJSdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC01NiwyOCArNTUsMjggQEAgc3RhdGljIGNvbnN0
IEFTQ0lJTGl0ZXJhbCBvcmlnaW5DYW5ub3RSZXF1ZXN0R2VvbG9jYXRpb25FcnJvck1lc3NhZ2Ug
eyAiT3JpZ2luIGQKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEdlb2xvY2F0aW9uKTsK
IAotc3RhdGljIFJlZlB0cjxHZW9wb3NpdGlvbj4gY3JlYXRlR2VvcG9zaXRpb24oT3B0aW9uYWw8
R2VvbG9jYXRpb25Qb3NpdGlvbj4mJiBwb3NpdGlvbikKK3N0YXRpYyBSZWZQdHI8R2VvbG9jYXRp
b25Qb3NpdGlvbj4gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbihPcHRpb25hbDxHZW9sb2NhdGlv
blBvc2l0aW9uRGF0YT4mJiBwb3NpdGlvbikKIHsKICAgICBpZiAoIXBvc2l0aW9uKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBET01UaW1lU3RhbXAgdGltZXN0YW1wID0gY29u
dmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcChwb3NpdGlvbi0+dGltZXN0YW1wKTsKLSAgICByZXR1
cm4gR2VvcG9zaXRpb246OmNyZWF0ZShDb29yZGluYXRlczo6Y3JlYXRlKFdURk1vdmUocG9zaXRp
b24udmFsdWUoKSkpLCB0aW1lc3RhbXApOworICAgIHJldHVybiBHZW9sb2NhdGlvblBvc2l0aW9u
OjpjcmVhdGUoR2VvbG9jYXRpb25Db29yZGluYXRlczo6Y3JlYXRlKFdURk1vdmUocG9zaXRpb24u
dmFsdWUoKSkpLCB0aW1lc3RhbXApOwogfQogCi1zdGF0aWMgUmVmPFBvc2l0aW9uRXJyb3I+IGNy
ZWF0ZVBvc2l0aW9uRXJyb3IoR2VvbG9jYXRpb25FcnJvciYgZXJyb3IpCitzdGF0aWMgUmVmPEdl
b2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKEdl
b2xvY2F0aW9uRXJyb3ImIGVycm9yKQogewotICAgIFBvc2l0aW9uRXJyb3I6OkVycm9yQ29kZSBj
b2RlID0gUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEU7CisgICAgYXV0byBjb2Rl
ID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRTsKICAgICBz
d2l0Y2ggKGVycm9yLmNvZGUoKSkgewogICAgIGNhc2UgR2VvbG9jYXRpb25FcnJvcjo6UGVybWlz
c2lvbkRlbmllZDoKLSAgICAgICAgY29kZSA9IFBvc2l0aW9uRXJyb3I6OlBFUk1JU1NJT05fREVO
SUVEOworICAgICAgICBjb2RlID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9O
X0RFTklFRDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHZW9sb2NhdGlvbkVycm9yOjpQb3Np
dGlvblVuYXZhaWxhYmxlOgotICAgICAgICBjb2RlID0gUG9zaXRpb25FcnJvcjo6UE9TSVRJT05f
VU5BVkFJTEFCTEU7CisgICAgICAgIGNvZGUgPSBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBP
U0lUSU9OX1VOQVZBSUxBQkxFOwogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICByZXR1cm4g
UG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIGVycm9yLm1lc3NhZ2UoKSk7CisgICAgcmV0dXJu
IEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIGVycm9yLm1lc3NhZ2UoKSk7
CiB9CiAKIGJvb2wgR2VvbG9jYXRpb246OldhdGNoZXJzOjphZGQoaW50IGlkLCBSZWZQdHI8R2Vv
Tm90aWZpZXI+JiYgbm90aWZpZXIpCkBAIC0yOTAsMTMgKzI4OSwxMyBAQCBjb25zdCBjaGFyKiBH
ZW9sb2NhdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJHZW9s
b2NhdGlvbiI7CiB9CiAKLUdlb3Bvc2l0aW9uKiBHZW9sb2NhdGlvbjo6bGFzdFBvc2l0aW9uKCkK
K0dlb2xvY2F0aW9uUG9zaXRpb24qIEdlb2xvY2F0aW9uOjpsYXN0UG9zaXRpb24oKQogewogICAg
IFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAotICAgIG1fbGFzdFBvc2l0aW9uID0gY3JlYXRlR2VvcG9zaXRpb24oR2Vv
bG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5sYXN0UG9zaXRpb24oKSk7CisgICAgbV9s
YXN0UG9zaXRpb24gPSBjcmVhdGVHZW9sb2NhdGlvblBvc2l0aW9uKEdlb2xvY2F0aW9uQ29udHJv
bGxlcjo6ZnJvbShwYWdlKS0+bGFzdFBvc2l0aW9uKCkpOwogCiAgICAgcmV0dXJuIG1fbGFzdFBv
c2l0aW9uLmdldCgpOwogfQpAQCAtMzczLDcgKzM3Miw3IEBAIGJvb2wgR2VvbG9jYXRpb246OnNo
b3VsZEJsb2NrR2VvbG9jYXRpb25SZXF1ZXN0cygpCiB2b2lkIEdlb2xvY2F0aW9uOjpzdGFydFJl
cXVlc3QoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogewogICAgIGlmIChzaG91bGRCbG9ja0dlb2xv
Y2F0aW9uUmVxdWVzdHMoKSkgewotICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihQb3Np
dGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIG9y
aWdpbkNhbm5vdFJlcXVlc3RHZW9sb2NhdGlvbkVycm9yTWVzc2FnZSkpOworICAgICAgICBub3Rp
Zmllci0+c2V0RmF0YWxFcnJvcihHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNyZWF0ZShHZW9s
b2NhdGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxFLCBvcmlnaW5DYW5ub3RS
ZXF1ZXN0R2VvbG9jYXRpb25FcnJvck1lc3NhZ2UpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICBkb2N1bWVudCgpLT5zZXRHZW9sb2NhdGlvbkFjY2Vzc2VkKCk7CkBAIC0zODEsNyArMzgw
LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RhcnRSZXF1ZXN0KEdlb05vdGlmaWVyKiBub3RpZmll
cikKICAgICAvLyBDaGVjayB3aGV0aGVyIHBlcm1pc3Npb25zIGhhdmUgYWxyZWFkeSBiZWVuIGRl
bmllZC4gTm90ZSB0aGF0IGlmIHRoaXMgaXMgdGhlIGNhc2UsCiAgICAgLy8gdGhlIHBlcm1pc3Np
b24gc3RhdGUgY2FuIG5vdCBjaGFuZ2UgYWdhaW4gaW4gdGhlIGxpZmV0aW1lIG9mIHRoaXMgcGFn
ZS4KICAgICBpZiAoaXNEZW5pZWQoKSkKLSAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3Io
UG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlBFUk1JU1NJT05fREVOSUVELCBw
ZXJtaXNzaW9uRGVuaWVkRXJyb3JNZXNzYWdlKSk7CisgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRh
bEVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRp
b25FcnJvcjo6UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2Up
KTsKICAgICBlbHNlIGlmIChoYXZlU3VpdGFibGVDYWNoZWRQb3NpdGlvbihub3RpZmllci0+b3B0
aW9ucygpKSkKICAgICAgICAgbm90aWZpZXItPnNldFVzZUNhY2hlZFBvc2l0aW9uKCk7CiAgICAg
ZWxzZSBpZiAobm90aWZpZXItPmhhc1plcm9UaW1lb3V0KCkpCkBAIC0zOTMsNyArMzkyLDcgQEAg
dm9pZCBHZW9sb2NhdGlvbjo6c3RhcnRSZXF1ZXN0KEdlb05vdGlmaWVyKiBub3RpZmllcikKICAg
ICB9IGVsc2UgaWYgKHN0YXJ0VXBkYXRpbmcobm90aWZpZXIpKQogICAgICAgICBub3RpZmllci0+
c3RhcnRUaW1lcklmTmVlZGVkKCk7CiAgICAgZWxzZQotICAgICAgICBub3RpZmllci0+c2V0RmF0
YWxFcnJvcihQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5B
VkFJTEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CisgICAgICAgIG5v
dGlmaWVyLT5zZXRGYXRhbEVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdl
b2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIGZhaWxlZFRvU3Rh
cnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CiB9CiAKIHZvaWQgR2VvbG9jYXRpb246OmZhdGFsRXJy
b3JPY2N1cnJlZChHZW9Ob3RpZmllciogbm90aWZpZXIpCkBAIC00MTEsNyArNDEwLDcgQEAgdm9p
ZCBHZW9sb2NhdGlvbjo6cmVxdWVzdFVzZXNDYWNoZWRQb3NpdGlvbihHZW9Ob3RpZmllciogbm90
aWZpZXIpCiAgICAgLy8gVGhpcyBpcyBjYWxsZWQgYXN5bmNocm9ub3VzbHksIHNvIHRoZSBwZXJt
aXNzaW9ucyBjb3VsZCBoYXZlIGJlZW4gZGVuaWVkCiAgICAgLy8gc2luY2Ugd2UgbGFzdCBjaGVj
a2VkIGluIHN0YXJ0UmVxdWVzdC4KICAgICBpZiAoaXNEZW5pZWQoKSkgewotICAgICAgICBub3Rp
Zmllci0+c2V0RmF0YWxFcnJvcihQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6
UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2UpKTsKKyAgICAg
ICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVh
dGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lv
bkRlbmllZEVycm9yTWVzc2FnZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00NDMs
NyArNDQyLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6bWFrZUNhY2hlZFBvc2l0aW9uQ2FsbGJhY2tz
KCkKICAgICAgICAgICAgIGlmIChub3RpZmllci0+aGFzWmVyb1RpbWVvdXQoKSB8fCBzdGFydFVw
ZGF0aW5nKG5vdGlmaWVyLmdldCgpKSkKICAgICAgICAgICAgICAgICBub3RpZmllci0+c3RhcnRU
aW1lcklmTmVlZGVkKCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbm90aWZp
ZXItPnNldEZhdGFsRXJyb3IoUG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlBP
U0lUSU9OX1VOQVZBSUxBQkxFLCBmYWlsZWRUb1N0YXJ0U2VydmljZUVycm9yTWVzc2FnZSkpOwor
ICAgICAgICAgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKEdlb2xvY2F0aW9uUG9zaXRp
b25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJ
TEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CiAgICAgICAgIH0KICAg
ICB9CiAKQEAgLTQ2NCw3ICs0NjMsNyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpyZXF1ZXN0VGltZWRP
dXQoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogCiBib29sIEdlb2xvY2F0aW9uOjpoYXZlU3VpdGFi
bGVDYWNoZWRQb3NpdGlvbihjb25zdCBQb3NpdGlvbk9wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAg
R2VvcG9zaXRpb24qIGNhY2hlZFBvc2l0aW9uID0gbGFzdFBvc2l0aW9uKCk7CisgICAgYXV0byog
Y2FjaGVkUG9zaXRpb24gPSBsYXN0UG9zaXRpb24oKTsKICAgICBpZiAoIWNhY2hlZFBvc2l0aW9u
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFvcHRpb25zLm1heGltdW1BZ2UpCkBA
IC01MDYsNyArNTA1LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c2V0SXNBbGxvd2VkKGJvb2wgYWxs
b3dlZCkKICAgICB9CiAKICAgICBpZiAoIWlzQWxsb3dlZCgpKSB7Ci0gICAgICAgIGF1dG8gZXJy
b3IgPSBQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UEVSTUlTU0lPTl9ERU5J
RUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2UpOworICAgICAgICBhdXRvIGVycm9yID0g
R2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9y
OjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZSk7CiAgICAg
ICAgIGVycm9yLT5zZXRJc0ZhdGFsKHRydWUpOwogICAgICAgICBoYW5kbGVFcnJvcihlcnJvcik7
CiAgICAgICAgIG1fcmVxdWVzdHNBd2FpdGluZ0NhY2hlZFBvc2l0aW9uLmNsZWFyKCk7CkBAIC01
MTgsMTkgKzUxNywxOSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpzZXRJc0FsbG93ZWQoYm9vbCBhbGxv
d2VkKQogICAgIC8vIElmIHRoZSBzZXJ2aWNlIGhhcyBhIGxhc3QgcG9zaXRpb24sIHVzZSBpdCB0
byBjYWxsIGJhY2sgZm9yIGFsbCByZXF1ZXN0cy4KICAgICAvLyBJZiBhbnkgb2YgdGhlIHJlcXVl
c3RzIGFyZSB3YWl0aW5nIGZvciBwZXJtaXNzaW9uIGZvciBhIGNhY2hlZCBwb3NpdGlvbiwKICAg
ICAvLyB0aGUgcG9zaXRpb24gZnJvbSB0aGUgc2VydmljZSB3aWxsIGJlIGF0IGxlYXN0IGFzIGZy
ZXNoLgotICAgIGlmIChSZWZQdHI8R2VvcG9zaXRpb24+IHBvc2l0aW9uID0gbGFzdFBvc2l0aW9u
KCkpCisgICAgaWYgKFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3NpdGlvbiA9IGxhc3RQ
b3NpdGlvbigpKQogICAgICAgICBtYWtlU3VjY2Vzc0NhbGxiYWNrcygqcG9zaXRpb24pOwogICAg
IGVsc2UKICAgICAgICAgbWFrZUNhY2hlZFBvc2l0aW9uQ2FsbGJhY2tzKCk7CiB9CiAKLXZvaWQg
R2VvbG9jYXRpb246OnNlbmRFcnJvcihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZpZXJzLCBQb3Np
dGlvbkVycm9yJiBlcnJvcikKK3ZvaWQgR2VvbG9jYXRpb246OnNlbmRFcnJvcihHZW9Ob3RpZmll
clZlY3RvciYgbm90aWZpZXJzLCBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImIGVycm9yKQogewog
ICAgIGZvciAoYXV0byYgbm90aWZpZXIgOiBub3RpZmllcnMpCiAgICAgICAgIG5vdGlmaWVyLT5y
dW5FcnJvckNhbGxiYWNrKGVycm9yKTsKIH0KIAotdm9pZCBHZW9sb2NhdGlvbjo6c2VuZFBvc2l0
aW9uKEdlb05vdGlmaWVyVmVjdG9yJiBub3RpZmllcnMsIEdlb3Bvc2l0aW9uJiBwb3NpdGlvbikK
K3ZvaWQgR2VvbG9jYXRpb246OnNlbmRQb3NpdGlvbihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZp
ZXJzLCBHZW9sb2NhdGlvblBvc2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBmb3IgKGF1dG8mIG5v
dGlmaWVyIDogbm90aWZpZXJzKQogICAgICAgICBub3RpZmllci0+cnVuU3VjY2Vzc0NhbGxiYWNr
KCZwb3NpdGlvbik7CkBAIC01NjUsNyArNTY0LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RvcFRp
bWVycygpCiB2b2lkIEdlb2xvY2F0aW9uOjpjYW5jZWxSZXF1ZXN0cyhHZW9Ob3RpZmllclZlY3Rv
ciYgbm90aWZpZXJzKQogewogICAgIGZvciAoYXV0byYgbm90aWZpZXIgOiBub3RpZmllcnMpCi0g
ICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3Np
dGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgZnJhbWVsZXNzRG9jdW1lbnRFcnJvck1l
c3NhZ2UpKTsKKyAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Qb3Np
dGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFW
QUlMQUJMRSwgZnJhbWVsZXNzRG9jdW1lbnRFcnJvck1lc3NhZ2UpKTsKIH0KIAogdm9pZCBHZW9s
b2NhdGlvbjo6Y2FuY2VsQWxsUmVxdWVzdHMoKQpAQCAtNTk1LDcgKzU5NCw3IEBAIHZvaWQgR2Vv
bG9jYXRpb246OmNvcHlUb1NldChjb25zdCBHZW9Ob3RpZmllclZlY3RvciYgc3JjLCBHZW9Ob3Rp
ZmllclNldCYgZGVzdCkKICAgICAgICAgZGVzdC5hZGQobm90aWZpZXIuZ2V0KCkpOwogfQogCi12
b2lkIEdlb2xvY2F0aW9uOjpoYW5kbGVFcnJvcihQb3NpdGlvbkVycm9yJiBlcnJvcikKK3ZvaWQg
R2VvbG9jYXRpb246OmhhbmRsZUVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciYgZXJyb3Ip
CiB7CiAgICAgYXV0byBvbmVTaG90c0NvcHkgPSBjb3B5VG9WZWN0b3IobV9vbmVTaG90cyk7CiAK
QEAgLTY0Myw3ICs2NDIsNyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lvbigp
CiAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5yZXF1ZXN0UGVybWlzc2lv
bigqdGhpcyk7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb246Om1ha2VTdWNjZXNzQ2FsbGJhY2tzKEdl
b3Bvc2l0aW9uJiBwb3NpdGlvbikKK3ZvaWQgR2VvbG9jYXRpb246Om1ha2VTdWNjZXNzQ2FsbGJh
Y2tzKEdlb2xvY2F0aW9uUG9zaXRpb24mIHBvc2l0aW9uKQogewogICAgIEFTU0VSVChsYXN0UG9z
aXRpb24oKSk7CiAgICAgQVNTRVJUKGlzQWxsb3dlZCgpKTsKQEAgLTY3Nyw3ICs2NzYsNyBAQCB2
b2lkIEdlb2xvY2F0aW9uOjpwb3NpdGlvbkNoYW5nZWQoKQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgUmVmUHRyPEdlb3Bvc2l0aW9uPiBwb3NpdGlvbiA9IGxhc3RQb3NpdGlvbigpOwor
ICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3NpdGlvbiA9IGxhc3RQb3NpdGlvbigp
OwogICAgIEFTU0VSVChwb3NpdGlvbik7CiAKICAgICBtYWtlU3VjY2Vzc0NhbGxiYWNrcygqcG9z
aXRpb24pOwpAQCAtNjg2LDExICs2ODUsMTEgQEAgdm9pZCBHZW9sb2NhdGlvbjo6cG9zaXRpb25D
aGFuZ2VkKCkKIHZvaWQgR2VvbG9jYXRpb246OnNldEVycm9yKEdlb2xvY2F0aW9uRXJyb3ImIGVy
cm9yKQogewogICAgIGlmIChtX2lzU3VzcGVuZGVkKSB7Ci0gICAgICAgIG1fZXJyb3JXYWl0aW5n
Rm9yUmVzdW1lID0gY3JlYXRlUG9zaXRpb25FcnJvcihlcnJvcik7CisgICAgICAgIG1fZXJyb3JX
YWl0aW5nRm9yUmVzdW1lID0gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKGVycm9yKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcG9zaXRpb25FcnJvciA9IGNyZWF0
ZVBvc2l0aW9uRXJyb3IoZXJyb3IpOworICAgIGF1dG8gcG9zaXRpb25FcnJvciA9IGNyZWF0ZUdl
b2xvY2F0aW9uUG9zaXRpb25FcnJvcihlcnJvcik7CiAgICAgaGFuZGxlRXJyb3IocG9zaXRpb25F
cnJvcik7CiB9CiAKQEAgLTcyNCw5ICs3MjMsOSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpoYW5kbGVQ
ZW5kaW5nUGVybWlzc2lvbk5vdGlmaWVycygpCiAgICAgICAgICAgICBpZiAoc3RhcnRVcGRhdGlu
Zyhub3RpZmllci5nZXQoKSkpCiAgICAgICAgICAgICAgICAgbm90aWZpZXItPnN0YXJ0VGltZXJJ
Zk5lZWRlZCgpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG5vdGlmaWVyLT5z
ZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQT1NJVElP
Tl9VTkFWQUlMQUJMRSwgZmFpbGVkVG9TdGFydFNlcnZpY2VFcnJvck1lc3NhZ2UpKTsKKyAgICAg
ICAgICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihHZW9sb2NhdGlvblBvc2l0aW9uRXJy
b3I6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxF
LCBmYWlsZWRUb1N0YXJ0U2VydmljZUVycm9yTWVzc2FnZSkpOwogICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQ
b3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVz
c2FnZSkpOworICAgICAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9O
X0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZSkpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCmluZGV4
IDJhMDE5OGVlY2RjNWJkNTM0YWZhNzk5MGMyMTE0ZDAyNTM5YjBjNTguLjQ2MGM5MTIxODRiZDEw
ZWZhZmMwZjAyYzAyMmViZDZkMjc1OGQwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgKQEAgLTMwLDkgKzMwLDkgQEAKIAogI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAi
R2VvcG9zaXRpb24uaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCisjaW5jbHVk
ZSAiR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmgiCiAjaW5jbHVkZSAiUG9zaXRpb25DYWxsYmFj
ay5oIgotI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKICNpbmNsdWRlICJQb3NpdGlvbkVycm9y
Q2FsbGJhY2suaCIKICNpbmNsdWRlICJQb3NpdGlvbk9wdGlvbnMuaCIKICNpbmNsdWRlICJTY3Jp
cHRXcmFwcGFibGUuaCIKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBHZW9sb2NhdGlvbihOYXZpZ2F0b3ImKTsKIAotICAgIEdlb3Bvc2l0aW9uKiBsYXN0
UG9zaXRpb24oKTsKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uKiBsYXN0UG9zaXRpb24oKTsKIAog
ICAgIC8vIEFjdGl2ZURPTU9iamVjdAogICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwpAQCAtMTE1
LDggKzExNSw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIGhhc0xpc3RlbmVycygpIGNvbnN0IHsg
cmV0dXJuICFtX29uZVNob3RzLmlzRW1wdHkoKSB8fCAhbV93YXRjaGVycy5pc0VtcHR5KCk7IH0K
IAotICAgIHZvaWQgc2VuZEVycm9yKEdlb05vdGlmaWVyVmVjdG9yJiwgUG9zaXRpb25FcnJvciYp
OwotICAgIHZvaWQgc2VuZFBvc2l0aW9uKEdlb05vdGlmaWVyVmVjdG9yJiwgR2VvcG9zaXRpb24m
KTsKKyAgICB2b2lkIHNlbmRFcnJvcihHZW9Ob3RpZmllclZlY3RvciYsIEdlb2xvY2F0aW9uUG9z
aXRpb25FcnJvciYpOworICAgIHZvaWQgc2VuZFBvc2l0aW9uKEdlb05vdGlmaWVyVmVjdG9yJiwg
R2VvbG9jYXRpb25Qb3NpdGlvbiYpOwogCiAgICAgc3RhdGljIHZvaWQgZXh0cmFjdE5vdGlmaWVy
c1dpdGhDYWNoZWRQb3NpdGlvbihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZpZXJzLCBHZW9Ob3Rp
ZmllclZlY3RvciogY2FjaGVkKTsKICAgICBzdGF0aWMgdm9pZCBjb3B5VG9TZXQoY29uc3QgR2Vv
Tm90aWZpZXJWZWN0b3ImLCBHZW9Ob3RpZmllclNldCYpOwpAQCAtMTI5LDggKzEyOSw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBjYW5jZWxSZXF1ZXN0cyhHZW9Ob3RpZmllclZlY3RvciYpOwogICAg
IHZvaWQgY2FuY2VsQWxsUmVxdWVzdHMoKTsKIAotICAgIHZvaWQgbWFrZVN1Y2Nlc3NDYWxsYmFj
a3MoR2VvcG9zaXRpb24mKTsKLSAgICB2b2lkIGhhbmRsZUVycm9yKFBvc2l0aW9uRXJyb3ImKTsK
KyAgICB2b2lkIG1ha2VTdWNjZXNzQ2FsbGJhY2tzKEdlb2xvY2F0aW9uUG9zaXRpb24mKTsKKyAg
ICB2b2lkIGhhbmRsZUVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciYpOwogCiAgICAgdm9p
ZCByZXF1ZXN0UGVybWlzc2lvbigpOwogCkBAIC0xNTMsMTMgKzE1MywxMyBAQCBwcml2YXRlOgog
ICAgIEdlb05vdGlmaWVyU2V0IG1fb25lU2hvdHM7CiAgICAgV2F0Y2hlcnMgbV93YXRjaGVyczsK
ICAgICBHZW9Ob3RpZmllclNldCBtX3BlbmRpbmdGb3JQZXJtaXNzaW9uTm90aWZpZXJzOwotICAg
IFJlZlB0cjxHZW9wb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247CisgICAgUmVmUHRyPEdlb2xvY2F0
aW9uUG9zaXRpb24+IG1fbGFzdFBvc2l0aW9uOwogCiAgICAgZW51bSB7IFVua25vd24sIEluUHJv
Z3Jlc3MsIFllcywgTm8gfSBtX2FsbG93R2VvbG9jYXRpb24geyBVbmtub3duIH07CiAgICAgYm9v
bCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVzZXRPblJlc3VtZSB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2hhc0NoYW5nZWRQb3NpdGlvbiB7IGZhbHNlIH07Ci0gICAgUmVm
UHRyPFBvc2l0aW9uRXJyb3I+IG1fZXJyb3JXYWl0aW5nRm9yUmVzdW1lOworICAgIFJlZlB0cjxH
ZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I+IG1fZXJyb3JXYWl0aW5nRm9yUmVzdW1lOwogICAgIFRp
bWVyIG1fcmVzdW1lVGltZXI7CiAgICAgR2VvTm90aWZpZXJTZXQgbV9yZXF1ZXN0c0F3YWl0aW5n
Q2FjaGVkUG9zaXRpb247CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmlkbAppbmRleCBmNTczZDE2ZDY5ODBjODc2ZjU3YmYwOGExZjVj
ZDEzNjc2OGU5N2EzLi5lZGFkZDNhNWUyMTk5ZTkzZTFjOTE4YWU3OWY2MDI4OTA1ZjljNDFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmlkbApAQCAtMjUsNyArMjUsNiBAQAogCiAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9nZW9sb2Nh
dGlvbi1BUEkvI2dlb2xvY2F0aW9uX2ludGVyZmFjZQogWwotICAgIE5vSW50ZXJmYWNlT2JqZWN0
LAogICAgIENvbmRpdGlvbmFsPUdFT0xPQ0FUSU9OLCAKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxl
PVJlYWNoYWJsZUZyb21OYXZpZ2F0b3IsCiBdIGludGVyZmFjZSBHZW9sb2NhdGlvbiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xp
ZW50LmgKaW5kZXggZTdlMGU3NmQ0MGZjNTVkMmZjNGI0ZWY1MjdjMzI0OTczNDFlMzkzOS4uMjk3
MDNmYmI3YmEzYjhiNjMyNzk5ZDdjOTI3ZDFmMWUyNWQ2YmMwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25DbGllbnQuaApAQCAt
MzAsNyArMzAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHZW9sb2NhdGlvbjsK
LWNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YTsKIGNsYXNzIFBhZ2U7CiAKIGNsYXNzIEdlb2xvY2F0aW9uQ2xpZW50IHsKQEAgLTQ0LDcgKzQ0
LDcgQEAgcHVibGljOgogICAgIC8vIFdlIHNob3VsZCB1cGRhdGUgV2ViS2l0IHRvIHJlZmxlY3Qg
dGhpcyBpZiBhbmQgd2hlbiB0aGUgVjIgc3BlY2lmaWNhdGlvbgogICAgIC8vIGlzIHB1Ymxpc2hl
ZC4KICAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpID0gMDsKLSAg
ICB2aXJ0dWFsIE9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+IGxhc3RQb3NpdGlvbigpID0g
MDsKKyAgICB2aXJ0dWFsIE9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBsYXN0UG9z
aXRpb24oKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oR2VvbG9j
YXRpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KEdl
b2xvY2F0aW9uJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IGNkODA3MGIyMDdk
YjhhMzQ0MDI2Y2ZmNjEwNWI4NWVlMTliYzUyNGMuLmM2YTI4MmZjZTkzNzA1YmQ3NjExMGQ0YTE3
NmNjZTVmNDNkNDNlMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKQEAgLTMwLDcgKzMwLDcg
QEAKIAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRp
b25FcnJvci5oIgotI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKKyNpbmNsdWRlICJH
ZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk5
LDcgKzk5LDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmNhbmNlbFBlcm1pc3Npb25S
ZXF1ZXN0KEdlb2xvY2F0aW9uJiBnZW9sb2NhdGlvbikKICAgICBtX2NsaWVudC5jYW5jZWxQZXJt
aXNzaW9uUmVxdWVzdChnZW9sb2NhdGlvbik7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb25Db250cm9s
bGVyOjpwb3NpdGlvbkNoYW5nZWQoY29uc3QgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4m
IHBvc2l0aW9uKQordm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OnBvc2l0aW9uQ2hhbmdlZChj
b25zdCBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4mIHBvc2l0aW9uKQogewogICAg
IG1fbGFzdFBvc2l0aW9uID0gcG9zaXRpb247CiAgICAgVmVjdG9yPFJlZjxHZW9sb2NhdGlvbj4+
IG9ic2VydmVyc1ZlY3RvcjsKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIEdlb2xvY2F0aW9uQ29u
dHJvbGxlcjo6ZXJyb3JPY2N1cnJlZChHZW9sb2NhdGlvbkVycm9yJiBlcnJvcikKICAgICAgICAg
b2JzZXJ2ZXItPnNldEVycm9yKGVycm9yKTsKIH0KIAotT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3Np
dGlvbj4gR2VvbG9jYXRpb25Db250cm9sbGVyOjpsYXN0UG9zaXRpb24oKQorT3B0aW9uYWw8R2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGE+IEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6bGFzdFBvc2l0aW9u
KCkKIHsKICAgICBpZiAobV9sYXN0UG9zaXRpb24pCiAgICAgICAgIHJldHVybiBtX2xhc3RQb3Np
dGlvbi52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmgKaW5kZXggMGM3MDQ5YmExMDEzYzI0MmM5
MjUyYzYxNTJiZmUzNDgxYWExNjU2Ni4uNTQ5MzRkNzlhMDY5ZWRlNWI0YTk2NzJhMTFlZjUxNWQ3
NDM3NzdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9H
ZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgR2VvbG9jYXRpb25DbGllbnQ7CiBjbGFzcyBHZW9sb2NhdGlv
bkVycm9yOwotY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9z
aXRpb25EYXRhOwogCiBjbGFzcyBHZW9sb2NhdGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxl
bWVudDxQYWdlPiwgcHJpdmF0ZSBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNTMsMTAgKzUzLDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlcXVlc3RQZXJtaXNzaW9uKEdlb2xvY2F0aW9uJik7CiAgICAgdm9pZCBjYW5jZWxQZXJt
aXNzaW9uUmVxdWVzdChHZW9sb2NhdGlvbiYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBw
b3NpdGlvbkNoYW5nZWQoY29uc3QgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4mKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc2l0aW9uQ2hhbmdlZChjb25zdCBPcHRpb25hbDxHZW9s
b2NhdGlvblBvc2l0aW9uRGF0YT4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVycm9yT2Nj
dXJyZWQoR2VvbG9jYXRpb25FcnJvciYpOwogCi0gICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3Np
dGlvbj4gbGFzdFBvc2l0aW9uKCk7CisgICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRh
dGE+IGxhc3RQb3NpdGlvbigpOwogCiAgICAgR2VvbG9jYXRpb25DbGllbnQmIGNsaWVudCgpIHsg
cmV0dXJuIG1fY2xpZW50OyB9CiAKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgYWN0aXZpdHlTdGF0ZURpZENoYW5nZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4g
b2xkQWN0aXZpdHlTdGF0ZSwgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU6OkZsYWc+IG5ld0FjdGl2
aXR5U3RhdGUpIG92ZXJyaWRlOwogCi0gICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4g
bV9sYXN0UG9zaXRpb247CisgICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IG1f
bGFzdFBvc2l0aW9uOwogCiAgICAgdHlwZWRlZiBIYXNoU2V0PFJlZjxHZW9sb2NhdGlvbj4+IE9i
c2VydmVyc1NldDsKICAgICAvLyBBbGwgb2JzZXJ2ZXJzOyBib3RoIHRob3NlIHJlcXVlc3Rpbmcg
aGlnaCBhY2N1cmFjeSBhbmQgdGhvc2Ugbm90LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTJlYjBkY2EwMzFmNzA1YWE3MzRjOGIwZTlhYjBhMWFjMWEwMjliNAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b25Db29yZGluYXRlcy5jcHAKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
Ikdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHZW9s
b2NhdGlvbkNvb3JkaW5hdGVzOjpHZW9sb2NhdGlvbkNvb3JkaW5hdGVzKEdlb2xvY2F0aW9uUG9z
aXRpb25EYXRhJiYgcG9zaXRpb24pCisgICAgOiBtX3Bvc2l0aW9uKFdURk1vdmUocG9zaXRpb24p
KQoreworICAgIEFTU0VSVChtX3Bvc2l0aW9uLmlzVmFsaWQoKSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc1MWNhYzQ3NDIx
N2ExNTc1YTY3YWFjZDllOTQ0NTQ3NDc0ZGQ3OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5oCkBAIC0w
LDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb25EYXRh
LmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
R2VvbG9jYXRpb25Db29yZGluYXRlcyA6IHB1YmxpYyBSZWZDb3VudGVkPEdlb2xvY2F0aW9uQ29v
cmRpbmF0ZXM+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEdlb2xvY2F0aW9uQ29vcmRpbmF0
ZXM+IGNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmIHBvc2l0aW9uKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR2VvbG9jYXRpb25Db29yZGluYXRlcyhXVEZNb3Zl
KHBvc2l0aW9uKSkpOworICAgIH0KKworICAgIFJlZjxHZW9sb2NhdGlvbkNvb3JkaW5hdGVzPiBp
c29sYXRlZENvcHkoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEdlb2xvY2F0aW9uQ29v
cmRpbmF0ZXM6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRGF0YShtX3Bvc2l0aW9uKSk7Cisg
ICAgfQorCisgICAgZG91YmxlIGxhdGl0dWRlKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5s
YXRpdHVkZTsgfQorICAgIGRvdWJsZSBsb25naXR1ZGUoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0
aW9uLmxvbmdpdHVkZTsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4gYWx0aXR1ZGUoKSBjb25zdCB7
IHJldHVybiBtX3Bvc2l0aW9uLmFsdGl0dWRlOyB9CisgICAgZG91YmxlIGFjY3VyYWN5KCkgY29u
c3QgeyByZXR1cm4gbV9wb3NpdGlvbi5hY2N1cmFjeTsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4g
YWx0aXR1ZGVBY2N1cmFjeSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24uYWx0aXR1ZGVBY2N1
cmFjeTsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4gaGVhZGluZygpIGNvbnN0IHsgcmV0dXJuIG1f
cG9zaXRpb24uaGVhZGluZzsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4gc3BlZWQoKSBjb25zdCB7
IHJldHVybiBtX3Bvc2l0aW9uLnNwZWVkOyB9CisgICAgT3B0aW9uYWw8ZG91YmxlPiBmbG9vckxl
dmVsKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5mbG9vckxldmVsOyB9CisgICAgCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMoR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEmJik7CisKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBtX3Bvc2l0aW9uOwor
fTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZmMzk1NjRjNDM2YTUxZmRiZTUwZmJiZjQ0Nzg5YTYyN2I0NTBjNzAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uQ29vcmRpbmF0ZXMuaWRsCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDktMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9R0VP
TE9DQVRJT04sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgR2Vv
bG9jYXRpb25Db29yZGluYXRlcyB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3Rl
ZCBkb3VibGUgbGF0aXR1ZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBk
b3VibGUgbG9uZ2l0dWRlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91
YmxlPyBhbHRpdHVkZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZSBhY2N1cmFjeTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8g
YWx0aXR1ZGVBY2N1cmFjeTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZT8gaGVhZGluZzsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZT8gc3BlZWQ7CisgICAgCisgICAgLy8gTm9uIHN0YW5kYXJkLgorICAgIFtFbmFibGVkQnlTZXR0
aW5nPUdlb2xvY2F0aW9uRmxvb3JMZXZlbF0gcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3Rl
ZCBkb3VibGU/IGZsb29yTGV2ZWw7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaAppbmRleCBkNjlkYjU0M2Y4
ZTBmNmRlNzQ1ZGQ2MzAxNThlMWQxMWQ3MTYyYmU0Li5iOTEwMDA1MjhmYjViYzAwYmEwNDFlYjJm
NjYxYWI4MGU5ZDYzN2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMCwxMDggKzEwLDUyIEBACiAgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCiAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8K
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxjbWF0aD4KLSNpbmNsdWRlIDx3dGYvT3B0aW9u
YWwuaD4KLSNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSAiRE9NVGltZVN0YW1wLmgiCisj
aW5jbHVkZSAiR2VvbG9jYXRpb25Db29yZGluYXRlcy5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+Ci0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotT0JKQ19DTEFTUyBDTExvY2F0aW9u
OwotI2VuZGlmCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbiB7CitjbGFzcyBHZW9sb2NhdGlv
blBvc2l0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8R2VvbG9jYXRpb25Qb3NpdGlvbj4gewogcHVi
bGljOgotICAgIEdlb2xvY2F0aW9uUG9zaXRpb24oKSA9IGRlZmF1bHQ7Ci0KLSAgICBHZW9sb2Nh
dGlvblBvc2l0aW9uKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxv
bmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQotICAgICAgICA6IHRpbWVzdGFtcCh0aW1lc3RhbXAp
Ci0gICAgICAgICwgbGF0aXR1ZGUobGF0aXR1ZGUpCi0gICAgICAgICwgbG9uZ2l0dWRlKGxvbmdp
dHVkZSkKLSAgICAgICAgLCBhY2N1cmFjeShhY2N1cmFjeSkKKyAgICBzdGF0aWMgUmVmPEdlb2xv
Y2F0aW9uUG9zaXRpb24+IGNyZWF0ZShSZWY8R2VvbG9jYXRpb25Db29yZGluYXRlcz4mJiBjb29y
ZGluYXRlcywgRE9NVGltZVN0YW1wIHRpbWVzdGFtcCkKICAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEdlb2xvY2F0aW9uUG9zaXRpb24oV1RGTW92ZShjb29yZGluYXRlcyksIHRp
bWVzdGFtcCkpOwogICAgIH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgV0VCQ09S
RV9FWFBPUlQgZXhwbGljaXQgR2VvbG9jYXRpb25Qb3NpdGlvbihDTExvY2F0aW9uKik7Ci0jZW5k
aWYKLQotICAgIGRvdWJsZSB0aW1lc3RhbXAgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46
OnF1aWV0X05hTigpIH07Ci0KLSAgICBkb3VibGUgbGF0aXR1ZGUgeyBzdGQ6Om51bWVyaWNfbGlt
aXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07Ci0gICAgZG91YmxlIGxvbmdpdHVkZSB7IHN0ZDo6
bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsKLSAgICBkb3VibGUgYWNjdXJh
Y3kgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07Ci0KLSAgICBP
cHRpb25hbDxkb3VibGU+IGFsdGl0dWRlOwotICAgIE9wdGlvbmFsPGRvdWJsZT4gYWx0aXR1ZGVB
Y2N1cmFjeTsKLSAgICBPcHRpb25hbDxkb3VibGU+IGhlYWRpbmc7Ci0gICAgT3B0aW9uYWw8ZG91
YmxlPiBzcGVlZDsKLSAgICBPcHRpb25hbDxkb3VibGU+IGZsb29yTGV2ZWw7CisgICAgUmVmPEdl
b2xvY2F0aW9uUG9zaXRpb24+IGlzb2xhdGVkQ29weSgpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gY3JlYXRlKG1fY29vcmRpbmF0ZXMtPmlzb2xhdGVkQ29weSgpLCBtX3RpbWVzdGFtcCk7
CisgICAgfQogCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgRE9NVGltZVN0YW1wIHRp
bWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgY29uc3QgR2VvbG9j
YXRpb25Db29yZGluYXRlcyYgY29vcmRzKCkgY29uc3QgeyByZXR1cm4gbV9jb29yZGluYXRlcy5n
ZXQoKTsgfQorICAgIAorcHJpdmF0ZToKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uKFJlZjxHZW9s
b2NhdGlvbkNvb3JkaW5hdGVzPiYmIGNvb3JkaW5hdGVzLCBET01UaW1lU3RhbXAgdGltZXN0YW1w
KQorICAgICAgICA6IG1fY29vcmRpbmF0ZXMoV1RGTW92ZShjb29yZGluYXRlcykpCisgICAgICAg
ICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQorICAgIHsKKyAgICB9CiAKLSAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBHZW9sb2NhdGlvblBv
c2l0aW9uJik7CisgICAgUmVmPEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXM+IG1fY29vcmRpbmF0ZXM7
CisgICAgRE9NVGltZVN0YW1wIG1fdGltZXN0YW1wOwogfTsKLQotdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4KLXZvaWQgR2VvbG9jYXRpb25Qb3NpdGlvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Ci17Ci0gICAgZW5jb2RlciA8PCB0aW1lc3RhbXA7Ci0gICAgZW5jb2RlciA8PCBsYXRp
dHVkZTsKLSAgICBlbmNvZGVyIDw8IGxvbmdpdHVkZTsKLSAgICBlbmNvZGVyIDw8IGFjY3VyYWN5
OwotICAgIGVuY29kZXIgPDwgYWx0aXR1ZGU7Ci0gICAgZW5jb2RlciA8PCBhbHRpdHVkZUFjY3Vy
YWN5OwotICAgIGVuY29kZXIgPDwgaGVhZGluZzsKLSAgICBlbmNvZGVyIDw8IHNwZWVkOwotICAg
IGVuY29kZXIgPDwgZmxvb3JMZXZlbDsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLWJv
b2wgR2VvbG9jYXRpb25Qb3NpdGlvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEdlb2xvY2F0
aW9uUG9zaXRpb24mIHBvc2l0aW9uKQotewotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRp
b24udGltZXN0YW1wKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocG9zaXRpb24ubGF0aXR1ZGUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5sb25naXR1ZGUpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5hY2N1cmFjeSkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmFsdGl0dWRl
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRp
b24uYWx0aXR1ZGVBY2N1cmFjeSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBvc2l0aW9uLmhlYWRpbmcpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5zcGVlZCkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmZsb29yTGV2ZWwpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotaW5saW5lIGJvb2wg
R2VvbG9jYXRpb25Qb3NpdGlvbjo6aXNWYWxpZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICFzdGQ6
OmlzbmFuKHRpbWVzdGFtcCkgJiYgIXN0ZDo6aXNuYW4obGF0aXR1ZGUpICYmICFzdGQ6OmlzbmFu
KGxvbmdpdHVkZSkgJiYgIXN0ZDo6aXNuYW4oYWNjdXJhY3kpOwotfQotCisgICAgCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzJmOGQ5ZmE4
ZTFkM2NhYjk3ZDQ1MDk0OGYzZjE0MTU5NjdkOWE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbApAQCAt
MCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworWworICAgIENvbmRpdGlvbmFsPUdFT0xPQ0FUSU9OLAorICAgIEltcGxlbWVudGF0
aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIEdlb2xvY2F0aW9uUG9zaXRpb24geworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzIGNvb3JkczsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NVGltZVN0YW1wIHRpbWVzdGFtcDsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRp
b25EYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGMyYjRlMzQ1YzM5ZDViMDhjOWUxNzU2NDc3NThhMjZhMWFk
MDNlMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCitPQkpDX0NMQVNTIENMTG9jYXRpb247
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YSB7CitwdWJsaWM6CisgICAgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoKSA9IGRlZmF1
bHQ7CisKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YShkb3VibGUgdGltZXN0YW1wLCBkb3Vi
bGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKKyAgICAgICAg
OiB0aW1lc3RhbXAodGltZXN0YW1wKQorICAgICAgICAsIGxhdGl0dWRlKGxhdGl0dWRlKQorICAg
ICAgICAsIGxvbmdpdHVkZShsb25naXR1ZGUpCisgICAgICAgICwgYWNjdXJhY3koYWNjdXJhY3kp
CisgICAgeworICAgIH0KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgV0VCQ09SRV9F
WFBPUlQgZXhwbGljaXQgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoQ0xMb2NhdGlvbiopOworI2Vu
ZGlmCisKKyAgICBkb3VibGUgdGltZXN0YW1wIHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKSB9OworCisgICAgZG91YmxlIGxhdGl0dWRlIHsgc3RkOjpudW1lcmljX2xp
bWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OworICAgIGRvdWJsZSBsb25naXR1ZGUgeyBzdGQ6
Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07CisgICAgZG91YmxlIGFjY3Vy
YWN5IHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OworCisgICAg
T3B0aW9uYWw8ZG91YmxlPiBhbHRpdHVkZTsKKyAgICBPcHRpb25hbDxkb3VibGU+IGFsdGl0dWRl
QWNjdXJhY3k7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBoZWFkaW5nOworICAgIE9wdGlvbmFsPGRv
dWJsZT4gc3BlZWQ7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBmbG9vckxldmVsOworCisgICAgYm9v
bCBpc1ZhbGlkKCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IGJvb2wgZGVjb2RlKERlY29kZXImLCBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYpOworfTsKKwor
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdGltZXN0YW1w
OworICAgIGVuY29kZXIgPDwgbGF0aXR1ZGU7CisgICAgZW5jb2RlciA8PCBsb25naXR1ZGU7Cisg
ICAgZW5jb2RlciA8PCBhY2N1cmFjeTsKKyAgICBlbmNvZGVyIDw8IGFsdGl0dWRlOworICAgIGVu
Y29kZXIgPDwgYWx0aXR1ZGVBY2N1cmFjeTsKKyAgICBlbmNvZGVyIDw8IGhlYWRpbmc7CisgICAg
ZW5jb2RlciA8PCBzcGVlZDsKKyAgICBlbmNvZGVyIDw8IGZsb29yTGV2ZWw7Cit9CisKK3RlbXBs
YXRlPGNsYXNzIERlY29kZXI+Citib29sIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmIHBvc2l0aW9uKQorewor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24udGltZXN0YW1wKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24ubGF0aXR1ZGUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5s
b25naXR1ZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwb3NpdGlvbi5hY2N1cmFjeSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBvc2l0aW9uLmFsdGl0dWRlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24uYWx0aXR1ZGVBY2N1cmFjeSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmhlYWRp
bmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3Np
dGlvbi5zcGVlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBvc2l0aW9uLmZsb29yTGV2ZWwpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworaW5saW5lIGJvb2wgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6Omlz
VmFsaWQoKSBjb25zdAoreworICAgIHJldHVybiAhc3RkOjppc25hbih0aW1lc3RhbXApICYmICFz
dGQ6OmlzbmFuKGxhdGl0dWRlKSAmJiAhc3RkOjppc25hbihsb25naXR1ZGUpICYmICFzdGQ6Omlz
bmFuKGFjY3VyYWN5KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJy
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3Np
dGlvbkVycm9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE0NGUxZTI3YjFmMWUzNmQxMjFmYjBjNzQ3OWMzNzQx
NGYwN2MxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRp
b25FcnJvciA6IHB1YmxpYyBSZWZDb3VudGVkPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gewor
cHVibGljOgorICAgIGVudW0gRXJyb3JDb2RlIHsKKyAgICAgICAgUEVSTUlTU0lPTl9ERU5JRUQg
PSAxLAorICAgICAgICBQT1NJVElPTl9VTkFWQUlMQUJMRSA9IDIsCisgICAgICAgIFRJTUVPVVQg
PSAzCisgICAgfTsKKyAgICAKKyAgICBzdGF0aWMgUmVmPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJv
cj4gY3JlYXRlKEVycm9yQ29kZSBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKGNvZGUsIG1lc3NhZ2UpKTsg
fQorCisgICAgRXJyb3JDb2RlIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KKyAgICBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KKyAgICB2
b2lkIHNldElzRmF0YWwoYm9vbCBpc0ZhdGFsKSB7IG1faXNGYXRhbCA9IGlzRmF0YWw7IH0KKyAg
ICBib29sIGlzRmF0YWwoKSBjb25zdCB7IHJldHVybiBtX2lzRmF0YWw7IH0KKyAgICAKK3ByaXZh
dGU6CisgICAgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKEVycm9yQ29kZSBjb2RlLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCisgICAgICAgIDogbV9jb2RlKGNvZGUpCisgICAgICAgICwgbV9tZXNz
YWdlKG1lc3NhZ2UpCisgICAgICAgICwgbV9pc0ZhdGFsKGZhbHNlKQorICAgIHsKKyAgICB9Cisg
ICAgCisgICAgRXJyb3JDb2RlIG1fY29kZTsKKyAgICBTdHJpbmcgbV9tZXNzYWdlOworICAgIC8v
IFdoZXRoZXIgdGhlIGVycm9yIGlzIGZhdGFsLCBzdWNoIHRoYXQgbm8gcmVxdWVzdCBjYW4gZXZl
ciBvYnRhaW4gYSBnb29kCisgICAgLy8gcG9zaXRpb24gZml4IGluIHRoZSBmdXR1cmUuCisgICAg
Ym9vbCBtX2lzRmF0YWw7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0
aW9uRXJyb3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvblBvc2l0aW9uRXJyb3IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0YTVjMDc0ZTk2MjcxZjg2OGU1N2Uy
MzQ0MWYwM2JhNGYwOTc3ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwKQEAgLTAsMCArMSwz
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
K1sKKyAgICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tz
VlRhYmxlCitdIGludGVyZmFjZSBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IgeworICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IFBFUk1JU1NJT05fREVOSUVEID0gMTsKKyAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBQT1NJVElPTl9VTkFWQUlMQUJMRSA9IDI7CisgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgVElNRU9VVCA9IDM7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNv
ZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXNzYWdlOworfTsKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTMzMGRlNThlMmE2M2E5ZDZiM2UzMjJjNzI1OWJh
MGFmNTk5ODE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaAorKysgL2Rl
di9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDb29yZGluYXRlcy5oIgot
I2luY2x1ZGUgIkRPTVRpbWVTdGFtcC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
Y2xhc3MgR2VvcG9zaXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxHZW9wb3NpdGlvbj4gewotcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8R2VvcG9zaXRpb24+IGNyZWF0ZShSZWY8Q29vcmRpbmF0ZXM+
JiYgY29vcmRpbmF0ZXMsIERPTVRpbWVTdGFtcCB0aW1lc3RhbXApCi0gICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBHZW9wb3NpdGlvbihXVEZNb3ZlKGNvb3JkaW5hdGVzKSwgdGlt
ZXN0YW1wKSk7Ci0gICAgfQotCi0gICAgUmVmPEdlb3Bvc2l0aW9uPiBpc29sYXRlZENvcHkoKSBj
b25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZShtX2Nvb3JkaW5hdGVzLT5pc29sYXRl
ZENvcHkoKSwgbV90aW1lc3RhbXApOwotICAgIH0KLQotICAgIERPTVRpbWVTdGFtcCB0aW1lc3Rh
bXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQotICAgIGNvbnN0IENvb3JkaW5hdGVz
JiBjb29yZHMoKSBjb25zdCB7IHJldHVybiBtX2Nvb3JkaW5hdGVzLmdldCgpOyB9Ci0gICAgCi1w
cml2YXRlOgotICAgIEdlb3Bvc2l0aW9uKFJlZjxDb29yZGluYXRlcz4mJiBjb29yZGluYXRlcywg
RE9NVGltZVN0YW1wIHRpbWVzdGFtcCkKLSAgICAgICAgOiBtX2Nvb3JkaW5hdGVzKFdURk1vdmUo
Y29vcmRpbmF0ZXMpKQotICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKLSAgICB7Ci0g
ICAgfQotCi0gICAgUmVmPENvb3JkaW5hdGVzPiBtX2Nvb3JkaW5hdGVzOwotICAgIERPTVRpbWVT
dGFtcCBtX3RpbWVzdGFtcDsKLX07Ci0gICAgCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bvc2l0aW9uLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZjhjYjA5YjJmYmY5NDE2NDUzNGUxODIwNDI5
OTA0YmJiNTlkMmRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCisr
KyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotCi1bCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAgQ29uZGl0
aW9uYWw9R0VPTE9DQVRJT04sCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRl
cmZhY2UgR2VvcG9zaXRpb24gewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDb29yZGluYXRlcyBj
b29yZHM7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVRpbWVTdGFtcCB0aW1lc3RhbXA7Ci19
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlv
bkNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9u
Q2FsbGJhY2suaAppbmRleCA0YjU3MzgyNDA4OTJkOTEyNWJmYWExMzYyODY1ZDg0MTM5ZjY2NWRj
Li5hMjc5NTM5OTFiNDljZDA5MzQwZTljZWEyMWQzMDBkNmZjMWMxODNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaApA
QCAtMzEsMTMgKzMxLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR2VvcG9z
aXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOwogCiBjbGFzcyBQb3NpdGlvbkNhbGxi
YWNrIDogcHVibGljIFJlZkNvdW50ZWQ8UG9zaXRpb25DYWxsYmFjaz4sIHB1YmxpYyBBY3RpdmVE
T01DYWxsYmFjayB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQWN0aXZlRE9NQ2FsbGJhY2s6OkFjdGl2
ZURPTUNhbGxiYWNrOwogCi0gICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVF
dmVudChHZW9wb3NpdGlvbiopID0gMDsKKyAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+
IGhhbmRsZUV2ZW50KEdlb2xvY2F0aW9uUG9zaXRpb24qKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbAppbmRleCBhZDY2MWY1ZWZjMjYyMTYyYWNkNWE4YWY0
M2E4Yzc0MGY4YWJlYTUyLi5kNWNlODU2MzcwNzQ0NzgyMzZkMDhmYmE0OTFkZDBiZTZmYzg4OTEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9u
Q2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9z
aXRpb25DYWxsYmFjay5pZGwKQEAgLTI0LDQgKzI0LDQgQEAKIAogWwogICAgIENvbmRpdGlvbmFs
PUdFT0xPQ0FUSU9OLAotXSBjYWxsYmFjayBQb3NpdGlvbkNhbGxiYWNrID0gdm9pZCAoR2VvcG9z
aXRpb24/IHBvc2l0aW9uKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4K
K10gY2FsbGJhY2sgUG9zaXRpb25DYWxsYmFjayA9IHZvaWQgKEdlb2xvY2F0aW9uUG9zaXRpb24/
IHBvc2l0aW9uKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2NDIyZWY5YjZkYjNmMWE5MGY4YTQwNDE4Zjli
NTk2M2NkMDNlNjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotICAgIAotY2xhc3MgUG9zaXRpb25FcnJvciA6IHB1YmxpYyBSZWZDb3VudGVkPFBvc2l0
aW9uRXJyb3I+IHsKLXB1YmxpYzoKLSAgICBlbnVtIEVycm9yQ29kZSB7Ci0gICAgICAgIFBFUk1J
U1NJT05fREVOSUVEID0gMSwKLSAgICAgICAgUE9TSVRJT05fVU5BVkFJTEFCTEUgPSAyLAotICAg
ICAgICBUSU1FT1VUID0gMwotICAgIH07Ci0gICAgCi0gICAgc3RhdGljIFJlZjxQb3NpdGlvbkVy
cm9yPiBjcmVhdGUoRXJyb3JDb2RlIGNvZGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBQb3NpdGlvbkVycm9yKGNvZGUsIG1lc3NhZ2UpKTsgfQotCi0gICAg
RXJyb3JDb2RlIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KLSAgICBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KLSAgICB2b2lkIHNldElz
RmF0YWwoYm9vbCBpc0ZhdGFsKSB7IG1faXNGYXRhbCA9IGlzRmF0YWw7IH0KLSAgICBib29sIGlz
RmF0YWwoKSBjb25zdCB7IHJldHVybiBtX2lzRmF0YWw7IH0KLSAgICAKLXByaXZhdGU6Ci0gICAg
UG9zaXRpb25FcnJvcihFcnJvckNvZGUgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSAKLSAg
ICAgICAgOiBtX2NvZGUoY29kZSkKLSAgICAgICAgLCBtX21lc3NhZ2UobWVzc2FnZSkKLSAgICAg
ICAgLCBtX2lzRmF0YWwoZmFsc2UpCi0gICAgewotICAgIH0KLSAgICAKLSAgICBFcnJvckNvZGUg
bV9jb2RlOwotICAgIFN0cmluZyBtX21lc3NhZ2U7Ci0gICAgLy8gV2hldGhlciB0aGUgZXJyb3Ig
aXMgZmF0YWwsIHN1Y2ggdGhhdCBubyByZXF1ZXN0IGNhbiBldmVyIG9idGFpbiBhIGdvb2QKLSAg
ICAvLyBwb3NpdGlvbiBmaXggaW4gdGhlIGZ1dHVyZS4KLSAgICBib29sIG1faXNGYXRhbDsKLX07
Ci0gICAgCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNWMxZjNhMjcyYTY3ZjQ2YWE2ODJjYmU4YmExYmY5ZTdhOTBmNGNlMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsCisrKyAvZGV2L251bGwKQEAg
LTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotCi1bCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJ
T04sCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRlcmZhY2UgUG9zaXRpb25F
cnJvciB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNvZGU7Ci0gICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXNzYWdlOwotCi0gICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgUEVSTUlTU0lPTl9ERU5JRUQgPSAxOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IFBPU0lUSU9OX1VOQVZBSUxBQkxFID0gMjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBUSU1F
T1VUID0gMzsKLX07Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5oCmluZGV4IDQ4MTZiMWRiMWQzMmU5NzJm
OTcwODEyYjg1YzVhNDc3YjE4ZDU0MjUuLmE3NWUwNzg4ZjU0Nzg5YjBkY2JlOTAwYjliNTVjNmEw
ZDEyZGFlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
UG9zaXRpb25FcnJvckNhbGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaApAQCAtMzEsMTMgKzMxLDEzIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUG9zaXRpb25FcnJvcjsKK2NsYXNzIEdlb2xvY2F0
aW9uUG9zaXRpb25FcnJvcjsKIAogY2xhc3MgUG9zaXRpb25FcnJvckNhbGxiYWNrIDogcHVibGlj
IFJlZkNvdW50ZWQ8UG9zaXRpb25FcnJvckNhbGxiYWNrPiwgcHVibGljIEFjdGl2ZURPTUNhbGxi
YWNrIHsKIHB1YmxpYzoKICAgICB1c2luZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZlRE9NQ2Fs
bGJhY2s7CiAKLSAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KFBv
c2l0aW9uRXJyb3ImKSA9IDA7CisgICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5k
bGVFdmVudChHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwKaW5kZXggNTdiNDkzY2NiZjU0NmFk
YzAyNDE0NWUzMWJkODRlNDM1OGJmYzQ3Mi4uZmEwOTgwZTM2MDZhOGY4ZjVmYWY0YmUxZGM5Mzg5
MjlmNmQwMzhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbApAQCAtMjQsNCArMjQsNCBAQAog
CiBbCiAgICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJT04sCi1dIGNhbGxiYWNrIFBvc2l0aW9uRXJy
b3JDYWxsYmFjayA9IHZvaWQgKFBvc2l0aW9uRXJyb3IgZXJyb3IpOworXSBjYWxsYmFjayBQb3Np
dGlvbkVycm9yQ2FsbGJhY2sgPSB2b2lkIChHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IgZXJyb3Ip
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OGQ5
YTI0MjFlN2YyMzA5YjRmNjIzYjE0ZDdjYmUyYjZjN2UwNDVjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2VvbG9jYXRpb25Qb3NpdGlv
bkRhdGFJT1MubW0KQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiR2VvbG9jYXRp
b25Qb3NpdGlvbi5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCA8Q29y
ZUxvY2F0aW9uL0NMTG9jYXRpb24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoQ0xMb2NhdGlvbiogbG9j
YXRpb24pCisgICAgOiB0aW1lc3RhbXAobG9jYXRpb24udGltZXN0YW1wLnRpbWVJbnRlcnZhbFNp
bmNlMTk3MCkKKyAgICAsIGxhdGl0dWRlKGxvY2F0aW9uLmNvb3JkaW5hdGUubGF0aXR1ZGUpCisg
ICAgLCBsb25naXR1ZGUobG9jYXRpb24uY29vcmRpbmF0ZS5sb25naXR1ZGUpCisgICAgLCBhY2N1
cmFjeShsb2NhdGlvbi5ob3Jpem9udGFsQWNjdXJhY3kpCit7CisgICAgaWYgKGxvY2F0aW9uLnZl
cnRpY2FsQWNjdXJhY3kgPj0gMC4wKSB7CisgICAgICAgIGFsdGl0dWRlID0gbG9jYXRpb24uYWx0
aXR1ZGU7CisgICAgICAgIGFsdGl0dWRlQWNjdXJhY3kgPSBsb2NhdGlvbi52ZXJ0aWNhbEFjY3Vy
YWN5OworICAgIH0KKyAgICBpZiAobG9jYXRpb24uc3BlZWQgPj0gMC4wKQorICAgICAgICBzcGVl
ZCA9IGxvY2F0aW9uLnNwZWVkOworICAgIGlmIChsb2NhdGlvbi5jb3Vyc2UgPj0gMC4wKQorICAg
ICAgICBoZWFkaW5nID0gbG9jYXRpb24uY291cnNlOworI2lmICFQTEFURk9STShNQUNDQVRBTFlT
VCkKKyAgICBpZiAobG9jYXRpb24uZmxvb3IpCisgICAgICAgIGZsb29yTGV2ZWwgPSBsb2NhdGlv
bi5mbG9vci5sZXZlbDsKKyNlbmRpZgorfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9p
b3MvR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDUxMzZhNTFlMmI2ZTg1ZmQ0Mzg2MjhiZGI3ZjBmNmVlMDNjMzBjNzYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbQorKysg
L2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIkdlb2xvY2F0aW9u
UG9zaXRpb24uaCIKLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0KLSNpbXBvcnQgPENvcmVM
b2NhdGlvbi9DTExvY2F0aW9uLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotR2VvbG9jYXRp
b25Qb3NpdGlvbjo6R2VvbG9jYXRpb25Qb3NpdGlvbihDTExvY2F0aW9uKiBsb2NhdGlvbikKLSAg
ICA6IHRpbWVzdGFtcChsb2NhdGlvbi50aW1lc3RhbXAudGltZUludGVydmFsU2luY2UxOTcwKQot
ICAgICwgbGF0aXR1ZGUobG9jYXRpb24uY29vcmRpbmF0ZS5sYXRpdHVkZSkKLSAgICAsIGxvbmdp
dHVkZShsb2NhdGlvbi5jb29yZGluYXRlLmxvbmdpdHVkZSkKLSAgICAsIGFjY3VyYWN5KGxvY2F0
aW9uLmhvcml6b250YWxBY2N1cmFjeSkKLXsKLSAgICBpZiAobG9jYXRpb24udmVydGljYWxBY2N1
cmFjeSA+PSAwLjApIHsKLSAgICAgICAgYWx0aXR1ZGUgPSBsb2NhdGlvbi5hbHRpdHVkZTsKLSAg
ICAgICAgYWx0aXR1ZGVBY2N1cmFjeSA9IGxvY2F0aW9uLnZlcnRpY2FsQWNjdXJhY3k7Ci0gICAg
fQotICAgIGlmIChsb2NhdGlvbi5zcGVlZCA+PSAwLjApCi0gICAgICAgIHNwZWVkID0gbG9jYXRp
b24uc3BlZWQ7Ci0gICAgaWYgKGxvY2F0aW9uLmNvdXJzZSA+PSAwLjApCi0gICAgICAgIGhlYWRp
bmcgPSBsb2NhdGlvbi5jb3Vyc2U7Ci0jaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIGlm
IChsb2NhdGlvbi5mbG9vcikKLSAgICAgICAgZmxvb3JMZXZlbCA9IGxvY2F0aW9uLmZsb29yLmxl
dmVsOwotI2VuZGlmCi19Ci0KLX0KLQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IDBhMzhkZDQ2YzdkNDU5NDA0OGJjZWZmNDliZWRhMzg2OGJkMjk1ZGIu
LmZmZDVlYjA3MjhjNWU5OGJiZWQ1N2ZiMDJhZWZkNThlZTJjOTZjNzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC02NywxMCArNjcsMTAgQEAgTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCiBNb2R1
bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCiBNb2R1bGVzL2ZldGNoL1dvcmtlckdsb2JhbFNj
b3BlRmV0Y2guY3BwCiAKLU1vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuY3BwCiBNb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcAogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9s
b2NhdGlvbi5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNw
cAorTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcAogTW9kdWxl
cy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAKIAogTW9kdWxlcy9pbmRleGVk
ZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcApAQCAtMjY3Miw3ICsyNjcyLDYgQEAgSlND
b21wb3NpdGVPcGVyYXRpb24uY3BwCiBKU0NvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0by5jcHAKIEpT
Q29tcHV0ZWRFZmZlY3RUaW1pbmcuY3BwCiBKU0NvbnZvbHZlck5vZGUuY3BwCi1KU0Nvb3JkaW5h
dGVzLmNwcAogSlNDb3VudFF1ZXVpbmdTdHJhdGVneS5jcHAKIEpTQ3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucy5jcHAKIEpTQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmNwcApAQCAtMjgzMSw3ICsy
ODMwLDkgQEAgSlNHUFVWZXJ0ZXhCdWZmZXJEZXNjcmlwdG9yLmNwcAogSlNHUFVWZXJ0ZXhJbnB1
dERlc2NyaXB0b3IuY3BwCiBKU0dhaW5Ob2RlLmNwcAogSlNHZW9sb2NhdGlvbi5jcHAKLUpTR2Vv
cG9zaXRpb24uY3BwCitKU0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwCitKU0dlb2xvY2F0aW9u
UG9zaXRpb24uY3BwCitKU0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5jcHAKIEpTR2xvYmFsQ3J5
cHRvLmNwcAogSlNHbG9iYWxFdmVudEhhbmRsZXJzLmNwcAogSlNHbG9iYWxQZXJmb3JtYW5jZS5j
cHAKQEAgLTMwNzIsNyArMzA3Myw2IEBAIEpTUGxheWJhY2tEaXJlY3Rpb24uY3BwCiBKU1BvaW50
ZXJFdmVudC5jcHAKIEpTUG9wU3RhdGVFdmVudC5jcHAKIEpTUG9zaXRpb25DYWxsYmFjay5jcHAK
LUpTUG9zaXRpb25FcnJvci5jcHAKIEpTUG9zaXRpb25FcnJvckNhbGxiYWNrLmNwcAogSlNQb3Np
dGlvbk9wdGlvbnMuY3BwCiBKU1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzODUyZDNk
MzkzN2Q2NmU5ZGZmMTI5MGQzMWNjY2Q4NDZmOWNiNWRhLi4xOWZjOWUwZjc4MjFmMTU5NzYyYjYw
OWNlMmExNTZjOGM2ZTVlNWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzkyLDcgKzIzOTIsNyBAQAogCQk4MzcyREIzMTFB
Njc4MEE4MDBDNjk3QzUgLyogRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzcyREIzMDFBNjc4MEE4MDBD
Njk3QzUgLyogRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM3NjVGOTUxREFDNTIyRjAwQzA2NTM3
IC8qIE1vdXNlRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4Mzc2NUY5NDFEQUM1MjE4MDBDMDY1MzcgLyogTW91c2VFdmVudEluaXQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4Mzc5MzYz
RjFGQkJCMEI0MDBDODAyM0MgLyogU2VydmljZVdvcmtlckNsaWVudERhdGEuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNzkzNjNFMUZCQkIwQTUwMEM4
MDIzQyAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTgzNzk2NENGMUY4REI2OUQwMDIxOEVBMCAvKiBH
ZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9z
aXRpb25JT1MubW0gKi87IH07CisJCTgzNzk2NENGMUY4REI2OUQwMDIxOEVBMCAvKiBHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YUlPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzNzk2NENFMUY4REI2OUEwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YUlPUy5tbSAqLzsgfTsKIAkJODM3QTgwMTMxRTFFMTI3MzAwMDI2QjlGIC8qIExvY2Fs
aXphYmxlLnN0cmluZ3NkaWN0IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzdBODAxMTFFMUUxMjczMDAwMjZCOUYgLyogTG9jYWxpemFibGUuc3RyaW5n
c2RpY3QgKi87IH07CiAJCTgzN0Q0NjI3MUZBMkE4Q0UwMDU0RTFGQSAvKiBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM3RDQ2MjUxRkEyQThDNTAwNTRFMUZBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJODM3RkIzNDUxRjlFQTA2RDAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0ZCMzQw
MUY5RUEwNjYwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmggKi87IH07CkBAIC0y
NzI4LDE1ICsyNzI4LDE1IEBACiAJCTk3Mzg4OUExMTE2RUE5REMwMEFERjMxMyAvKiBEb2N1bWVu
dFdyaXRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTczODg5OUYxMTZFQTlEQzAwQURGMzEzIC8qIERvY3VtZW50V3JpdGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTczRTMyNTcxMDg4M0I3QzAw
NUJDNDkzIC8qIFJlc291cmNlTG9hZE5vdGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzNFMzI1NTEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5NzNGNDE4QTE2OUI5NUZGMDAwNkJGNjAgLyogSFRNTFBhcnNlck9wdGlvbnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3M0Y0MTg4
MTY5Qjk1RUYwMDA2QkY2MCAvKiBIVE1MUGFyc2VyT3B0aW9ucy5oICovOyB9OwotCQk5NzQ2QUYy
MTE0RjREREU2MDAzRTdBNzEgLyogQ29vcmRpbmF0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjExMTRGNERERTYwMDNFN0E3MCAvKiBDb29y
ZGluYXRlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTk3NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxMTE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db29yZGluYXRlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NDZBRjI0MTRGNERERTYwMDNF
N0E3MCAvKiBHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTc0NkFGMTQxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFGMjUx
NEY0RERFNjAwM0U3QTcxIC8qIEdlb2xvY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxNTE0RjREREU2MDAzRTdBNzEgLyog
R2VvbG9jYXRpb25DbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5NzQ2QUYyNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250
cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzQ2QUYxNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFGMjgxNEY0
RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjE4MTRGNERERTYwMDNFN0E3MCAvKiBHZW9s
b2NhdGlvbkVycm9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJOTc0NkFGMjkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjE5
MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTc0NkFGMkExNEY0RERFNjAwM0U3
QTcwIC8qIEdlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvcG9zaXRpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NzQ2QUYyOTE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjE5MTRGNERERTYwMDNFN0E3
MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTk3NDZBRjJBMTRGNERERTYwMDNFN0E3MCAvKiBHZW9s
b2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NDZB
RjJDMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxQzE0RjREREU2MDAzRTdBNzAg
LyogUG9zaXRpb25DYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTk3NDZBRjJFMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYx
RTE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk3NDZBRjJFMTRGNERERTYwMDNFN0E3MCAv
KiBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjFFMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5NzQ2QUYzMDE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvckNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2
QUYyMDE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvckNhbGxiYWNrLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFGMzIxNEY0RERF
NjAwM0U3QTcwIC8qIFBvc2l0aW9uT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMjIxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9u
T3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTk3NEE4NjIzMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NEE4NjIx
MTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTAwNjMsNyArMTAwNjMs
NyBAQAogCQk4Mzc2NUY5NDFEQUM1MjE4MDBDMDY1MzcgLyogTW91c2VFdmVudEluaXQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW91c2VFdmVudEluaXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM3OTM2M0MxRkJCQjBBNDAwQzgwMjNDIC8qIFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODM3OTM2M0UxRkJCQjBBNTAwQzgwMjNDIC8qIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgzNzk2NENFMUY4REI2OUEwMDIxOEVB
MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbTsgcGF0aCA9IE1vZHVsZXMv
Z2VvbG9jYXRpb24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW07IHNvdXJjZVRyZWUgPSBT
T1VSQ0VfUk9PVDsgfTsKKwkJODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW07IHBhdGggPSBNb2R1bGVzL2dlb2xvY2F0
aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5tbTsgc291cmNlVHJlZSA9IFNPVVJD
RV9ST09UOyB9OwogCQk4MzdBODAxMjFFMUUxMjczMDAwMjZCOUYgLyogZW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnN0cmluZ3Nk
aWN0OyBuYW1lID0gZW47IHBhdGggPSBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzZGljdDsg
c291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk4MzdCN0QxRjFEQzNGNTRDMDBEMDUxRkMg
LyogVmFsaWRhdGlvbkJ1YmJsZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFZhbGlkYXRpb25CdWJibGVJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgzN0Q0NjI1MUZBMkE4QzUwMDU0RTFGQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3NDMs
OSArMTA3NDMsOSBAQAogCQk5NzNFMzI1NTEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3VyY2VMb2Fk
Tm90aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2Fk
Tm90aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTczRjQxODcxNjlCOTVF
RjAwMDZCRjYwIC8qIEhUTUxQYXJzZXJPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEhUTUxQYXJzZXJPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTczRjQxODgxNjlCOTVFRjAwMDZCRjYwIC8qIEhUTUxQYXJzZXJPcHRpb25z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQYXJzZXJPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk3NDZBRjExMTRGNERERTYwMDNFN0E3MCAv
KiBDb29yZGluYXRlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29yZGlu
YXRlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzQ2QUYxMTE0RjREREU2MDAz
RTdBNzIgLyogQ29vcmRpbmF0ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ29vcmRpbmF0ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzQ2
QUYxMjE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IENvb3JkaW5hdGVzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc0
NkFGMTExNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Db29yZGluYXRlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzIgLyogR2Vv
bG9jYXRpb25Db29yZGluYXRlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTc0NkFGMTIxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYxMzE0RjREREU2MDAzRTdBNzAgLyog
R2VvbG9jYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2Vv
bG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYxNDE0RjRE
REU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gR2VvbG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFG
MTUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBHZW9sb2NhdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDc1
MywxMyArMTA3NTMsMTMgQEAKIAkJOTc0NkFGMTYxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0
aW9uQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBH
ZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NzQ2QUYxNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uQ29udHJvbGxlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYxODE0RjREREU2MDAzRTdBNzAgLyogR2Vv
bG9jYXRpb25FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2Nh
dGlvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk3NDZBRjE5MTRGNERE
RTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uUG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTc0NkFGMUExNEY0RERFNjAwM0U3QTcwIC8qIEdlb3Bvc2l0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlb3Bvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTk3NDZBRjFCMTRGNERERTYwMDNFN0E3MCAvKiBHZW9wb3NpdGlvbi5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2VvcG9zaXRpb24uaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5NzQ2QUYxOTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc0NkFGMUEx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5NzQ2QUYxQjE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3Np
dGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbi5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NDZBRjFDMTRGNERERTYwMDNFN0E3MCAv
KiBQb3NpdGlvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBv
c2l0aW9uQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFGMUQx
NEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFBvc2l0aW9uQ2FsbGJhY2suaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk5NzQ2QUYxRTE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQb3NpdGlvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTk3NDZBRjFGMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9yLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQb3NpdGlvbkVycm9yLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTc0NkFGMUUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2Nh
dGlvblBvc2l0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc0NkFG
MUYxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFGMjAxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9u
RXJyb3JDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3NpdGlv
bkVycm9yQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFGMjEx
NEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTc0NkFGMjIxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uT3B0aW9ucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3NpdGlvbk9wdGlvbnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwOTI1LDcgKzIwOTI1LDcgQEAKIAkJODM3OTY0
Q0MxRjhEQjY3RDAwMjE4RUEwIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkJODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25JT1MubW0gKi8sCisJCQkJODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhSU9TLm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBpb3M7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjE4NDIsMjggKzIxODQyLDI4IEBACiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTgzNzk2NENDMUY4REI2N0QwMDIxOEVB
MCAvKiBpb3MgKi8sCi0JCQkJOTc0NkFGMTExNEY0RERFNjAwM0U3QTcyIC8qIENvb3JkaW5hdGVz
LmNwcCAqLywKLQkJCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMuaCAq
LywKLQkJCQk5NzQ2QUYxMjE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMuaWRsICovLAog
CQkJCTk3NDZBRjEzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgKi8sCiAJCQkJ
OTc0NkFGMTQxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmggKi8sCiAJCQkJOTc0NkFG
MTUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmlkbCAqLywKIAkJCQk5NzQ2QUYxNTE0
RjREREU2MDAzRTdBNzEgLyogR2VvbG9jYXRpb25DbGllbnQuaCAqLywKIAkJCQk5NzQ2QUYxNjE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCAqLywKIAkJCQk5NzQ2
QUYxNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggKi8sCisJCQkJ
OTc0NkFGMTExNEY0RERFNjAwM0U3QTcyIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwICov
LAorCQkJCTk3NDZBRjExMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVz
LmggKi8sCisJCQkJOTc0NkFGMTIxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29vcmRp
bmF0ZXMuaWRsICovLAogCQkJCTk3NDZBRjE4MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlv
bkVycm9yLmggKi8sCi0JCQkJOTc0NkFGMTkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb24uaCAqLywKKwkJCQk5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRp
b25Qb3NpdGlvbi5oICovLAorCQkJCTk3NDZBRjFCMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2Nh
dGlvblBvc2l0aW9uLmlkbCAqLywKKwkJCQk5NzQ2QUYxOTE0RjREREU2MDAzRTdBNzAgLyogR2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGEuaCAqLywKKwkJCQk5NzQ2QUYxRTE0RjREREU2MDAzRTdBNzAg
LyogR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmggKi8sCisJCQkJOTc0NkFGMUYxNEY0RERFNjAw
M0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwgKi8sCiAJCQkJNDZDODNFRkIx
QTlCQkUyOTAwQTc5QTQxIC8qIEdlb05vdGlmaWVyLmNwcCAqLywKIAkJCQk0NkM4M0VGQzFBOUJC
RTI5MDBBNzlBNDEgLyogR2VvTm90aWZpZXIuaCAqLywKLQkJCQk5NzQ2QUYxQTE0RjREREU2MDAz
RTdBNzAgLyogR2VvcG9zaXRpb24uaCAqLywKLQkJCQk5NzQ2QUYxQjE0RjREREU2MDAzRTdBNzAg
LyogR2VvcG9zaXRpb24uaWRsICovLAogCQkJCTk3MTE0NjAwMTRFRjAwOUEwMDY3NEZEOSAvKiBO
YXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgKi8sCiAJCQkJOTcxMTQ2MDExNEVGMDA5QTAwNjc0RkQ5
IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmggKi8sCiAJCQkJOTcxMTQ2MDIxNEVGMDA5QTAwNjc0
RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCAqLywKIAkJCQk5NzQ2QUYxQzE0RjREREU2
MDAzRTdBNzAgLyogUG9zaXRpb25DYWxsYmFjay5oICovLAogCQkJCTk3NDZBRjFEMTRGNERERTYw
MDNFN0E3MCAvKiBQb3NpdGlvbkNhbGxiYWNrLmlkbCAqLywKLQkJCQk5NzQ2QUYxRTE0RjREREU2
MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5oICovLAotCQkJCTk3NDZBRjFGMTRGNERERTYwMDNF
N0E3MCAvKiBQb3NpdGlvbkVycm9yLmlkbCAqLywKIAkJCQk5NzQ2QUYyMDE0RjREREU2MDAzRTdB
NzAgLyogUG9zaXRpb25FcnJvckNhbGxiYWNrLmggKi8sCiAJCQkJOTc0NkFGMjExNEY0RERFNjAw
M0U3QTcwIC8qIFBvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgKi8sCiAJCQkJOTc0NkFGMjIxNEY0
RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uT3B0aW9ucy5oICovLApAQCAtMjg2NjUsNyArMjg2NjUs
NiBAQAogCQkJCTdBNTY5OTcwMjA4NkM2MTkwMDBFMDQzMyAvKiBDb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzNEMDIxMkQxMzFEQjM3QjAwNDA5MUE4
IC8qIENvb2tpZVN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjBCQkFGMUYxQ0VDRTcw
MEVGRUJGMSAvKiBDb29raWVTdG9yYWdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTk3
NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBDb29yZGluYXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJM0Y4MDIwMzUxRTlFNDdCRjAwREVDNjFEIC8qIENvcmVBdWRpb0NhcHR1cmVEZXZpY2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTNGODAyMDM3MUU5RTQ3QzUwMERFQzYxRCAvKiBDb3JlQXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdBRkY0MjIxRUZCMTQ0
OTAwQjU0NUIzIC8qIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MuaCBpbiBIZWFkZXJzICovLApA
QCAtMjkyOTIsMTEgKzI5MjkxLDEzIEBACiAJCQkJOTc0NkFGMjQxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYyNTE0RjREREU2MDAzRTdB
NzEgLyogR2VvbG9jYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NDZBRjI3MTRG
NERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTk3NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYyODE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRp
b25FcnJvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTc0NkFGMjkxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTk3NDZBRjJBMTRGNERE
RTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
NzQ2QUYyOTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTk3NDZBRjJFMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBv
c2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjYyNTJGMThERTFCMTUwMEEwN0Mw
NSAvKiBHZW9tZXRyeVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZDODNFRkUxQTlC
QkUyOTAwQTc5QTQxIC8qIEdlb05vdGlmaWVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk5NzQ2QUYy
QTE0RjREREU2MDAzRTdBNzAgLyogR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2
Qjk1MTk4MjA3RDYzNDcwMEE3RDJERCAvKiBHbG9iYWxGcmFtZUlkZW50aWZpZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQ2Qjk1MTk3MjA3RDYzNDAwMEE3RDJERCAvKiBHbG9iYWxXaW5kb3dJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODZCQkQwRjEzNjAzOUMyMDA4QjE1RDggLyog
R2x5cGguaCBpbiBIZWFkZXJzICovLApAQCAtMzEwNDgsNyArMzEwNDksNiBAQAogCQkJCTM3RjU2
N0NFMTY1MzU4RjQwMERERTkyQiAvKiBQb3B1cE9wZW5pbmdPYnNlcnZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTNGMTk5REUwODI0NUU1OTAwMUU5QUJDIC8qIFBvc2l0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5NzQ2QUYyQzE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25DYWxsYmFjay5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJOTc0NkFGMkUxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9u
RXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NDZBRjMwMTRGNERERTYwMDNFN0E3MCAvKiBQ
b3NpdGlvbkVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTM3OTE5QzI0MEI3RDE4
ODYwMEE1Njk5OCAvKiBQb3NpdGlvbkl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2
QUYzMjE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLywK
QEAgLTMyODA0LDcgKzMyODA0LDcgQEAKIAkJCQk1MTZDNjIyMDE5NTBENDg3MDAzMzdFNzUgLyog
R2FtZXBhZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlEOUU5MTk1QjkzMUYwMDFC
MkI1QyAvKiBHYW1lcGFkTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTVCRTE5MTFE
NTRGNUZCMDBERDdDNjggLyogR2FtZXBhZFByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CTgzNzk2NENGMUY4REI2OUQwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJODM3OTY0Q0YxRjhEQjY5RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhSU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNkUyMUM2QzAxMTI2MzM4NTAw
QTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFNzJG
NTRFMjI5RENEMTAwMEIzRTE1MSAvKiBHcmFwaGljc0NvbnRleHQzREFOR0xFLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDM0U1MTBCMThERjhGMzUwMEMxMTJGNyAvKiBIVE1MQ29udmVydGVyLm1t
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKaW5kZXggYjgwY2MxZTBmY2EwODEzYjM1MDgxM2Fh
OThiMGM3ZGU5MzA5M2M4ZC4uZThlYzFjODRkNGMxMWZlN2IxMzUxYzcwYmE1NmY5OWI3YTg2NmEw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNs
aWVudE1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRp
b25DbGllbnRNb2NrLmNwcApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIEdlb2xvY2F0aW9uQ2xpZW50
TW9jazo6c2V0Q29udHJvbGxlcihHZW9sb2NhdGlvbkNvbnRyb2xsZXIgKmNvbnRyb2xsZXIpCiAg
ICAgbV9jb250cm9sbGVyID0gY29udHJvbGxlcjsKIH0KIAotdm9pZCBHZW9sb2NhdGlvbkNsaWVu
dE1vY2s6OnNldFBvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb24mJiBwb3NpdGlvbikKK3ZvaWQg
R2VvbG9jYXRpb25DbGllbnRNb2NrOjpzZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YSYmIHBvc2l0aW9uKQogewogICAgIG1fbGFzdFBvc2l0aW9uID0gV1RGTW92ZShwb3NpdGlvbik7
CiAgICAgY2xlYXJFcnJvcigpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgR2VvbG9jYXRpb25D
bGllbnRNb2NrOjpzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkKICAgICAvLyBTZWUgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NDM4CiB9CiAKLU9wdGlvbmFsPEdl
b2xvY2F0aW9uUG9zaXRpb24+IEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6bGFzdFBvc2l0aW9uKCkK
K09wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBHZW9sb2NhdGlvbkNsaWVudE1vY2s6
Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgcmV0dXJuIG1fbGFzdFBvc2l0aW9uOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2su
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmgK
aW5kZXggMjdjY2Q5NDMxNjUxNmMxMWMwNmNmZjM5ODRiYjcwYTI1MjAxZWFmMC4uZTIyYWZjNTA4
ZmE2MDBiMTczZTIxYmIwYWRjYjI1OWVlMjJjYWE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oCkBAIC0zMiw3ICszMiw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50LmgiCi0jaW5j
bHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRp
b25EYXRhLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZv
aWQgcmVzZXQoKTsKICAgICB2b2lkIHNldENvbnRyb2xsZXIoR2VvbG9jYXRpb25Db250cm9sbGVy
Kik7CiAKLSAgICB2b2lkIHNldFBvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb24mJik7CisgICAg
dm9pZCBzZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKTsKICAgICB2b2lkIHNl
dFBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAg
ICAgdm9pZCBzZXRQZXJtaXNzaW9uKGJvb2wgYWxsb3dlZCk7CiAgICAgaW50IG51bWJlck9mUGVu
ZGluZ1Blcm1pc3Npb25SZXF1ZXN0cygpIGNvbnN0OwpAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzdGFydFVwZGF0aW5nKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wVXBkYXRp
bmcoKSBvdmVycmlkZTsKICAgICB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKSBvdmVy
cmlkZTsKLSAgICBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uPiBsYXN0UG9zaXRpb24oKSBv
dmVycmlkZTsKKyAgICBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gbGFzdFBvc2l0
aW9uKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihHZW9sb2NhdGlvbiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoR2VvbG9jYXRpb24m
KSBvdmVycmlkZTsKIApAQCAtNzYsNyArNzYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJF
cnJvcigpOwogCiAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7Ci0gICAg
T3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247CisgICAgT3B0aW9u
YWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IG1fbGFzdFBvc2l0aW9uOwogICAgIGJvb2wgbV9o
YXNFcnJvcjsKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CiAgICAgVGltZXIgbV9jb250cm9s
bGVyVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHZW9sb2NhdGlv
blBvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRp
b24uY3BwCmluZGV4IDNmMTU1OGI3NTJiZWY4YzkyYjQxNjk2ZmQ0NmEwYzA4MWI1YmJlYWEuLmU5
OWRjYzVjMGEzZGNiZTQ5ZGI1MzhlZDI2MzViYzBmNjQzNWQxYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCkBAIC0zMiw3ICszMiw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24+IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZShHZW9s
b2NhdGlvblBvc2l0aW9uJiYgZ2VvbG9jYXRpb25Qb3NpdGlvbikKK1JlZjxXZWJHZW9sb2NhdGlv
blBvc2l0aW9uPiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEmJiBnZW9sb2NhdGlvblBvc2l0aW9uKQogewogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24oV1RGTW92ZShnZW9sb2NhdGlvblBvc2l0aW9uKSkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCmlu
ZGV4IGMxZmNjYTdjYmI1OGJlNDQwNjlhNzFlYjk4MmE4MTVlMjljNjM2YzQuLmE5NjhmODRmOWFi
ZWZmNTVlYjRkY2E1ZGEzYTQwNmUyOWQ1YjcxMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbl9oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRl
IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3Bh
Y2UgSVBDIHsKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24gOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0
OjpUeXBlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uPiBjcmVhdGUoV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlv
biYmKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IGNyZWF0ZShXZWJD
b3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKTsKIAogICAgIHZpcnR1YWwgfldlYkdlb2xv
Y2F0aW9uUG9zaXRpb24oKTsKIApAQCAtNTIsMTUgKzUyLDE1IEBAIHB1YmxpYzoKICAgICBPcHRp
b25hbDxkb3VibGU+IGhlYWRpbmcoKSBjb25zdCB7IHJldHVybiBtX2NvcmVQb3NpdGlvbi5oZWFk
aW5nOyB9CiAgICAgT3B0aW9uYWw8ZG91YmxlPiBzcGVlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY29y
ZVBvc2l0aW9uLnNwZWVkOyB9CiAKLSAgICBjb25zdCBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0
aW9uJiBjb3JlUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NvcmVQb3NpdGlvbjsgfQorICAg
IGNvbnN0IFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiBjb3JlUG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBtX2NvcmVQb3NpdGlvbjsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0
IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24oV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiYmIGdl
b2xvY2F0aW9uUG9zaXRpb24pCisgICAgZXhwbGljaXQgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbihX
ZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmIGdlb2xvY2F0aW9uUG9zaXRpb24pCiAg
ICAgICAgIDogbV9jb3JlUG9zaXRpb24oV1RGTW92ZShnZW9sb2NhdGlvblBvc2l0aW9uKSkKICAg
ICB7CiAgICAgfQogCi0gICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiBtX2NvcmVQb3Np
dGlvbjsKKyAgICBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBtX2NvcmVQb3NpdGlv
bjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKaW5kZXggYWFiYzNk
OWY2ZDk1MWMyNDQ0ZTU0NWMxODhmNzA0ZjY3NTlmMGYyNS4uYzA4ZTRhZGNhNmU5YTFhYTM0YTI5
Y2Y3ODM2NGY4MWQ4OGZjY2EzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwCkBAIC00OCw3ICs0OCw3IEBAIFdL
R2VvbG9jYXRpb25Qb3NpdGlvblJlZiBXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGVfYihkb3Vi
bGUgdGltZXN0YW1wLCBkb3VibGUKIAogV0tHZW9sb2NhdGlvblBvc2l0aW9uUmVmIFdLR2VvbG9j
YXRpb25Qb3NpdGlvbkNyZWF0ZV9jKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwg
ZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3ZpZGVzQWx0aXR1ZGUs
IGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBh
bHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91YmxlIGhlYWRpbmcsIGJv
b2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkLCBib29sIHByb3ZpZGVzRmxvb3JMZXZlbCwg
ZG91YmxlIGZsb29yTGV2ZWwpCiB7Ci0gICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiBj
b3JlUG9zaXRpb24geyB0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH07
CisgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEgY29yZVBvc2l0aW9uIHsgdGlt
ZXN0YW1wLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSB9OwogICAgIGlmIChwcm92aWRl
c0FsdGl0dWRlKQogICAgICAgICBjb3JlUG9zaXRpb24uYWx0aXR1ZGUgPSBhbHRpdHVkZTsKICAg
ICBpZiAocHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0dlb2xvY2F0aW9uUG9zaXRpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQppbmRl
eCBjOTY5Y2E4YzFhNDBiMTcwOGVhNzNmZmY3ZGIzOGQ4MDQ4NWNhYzkzLi4wOWEwZDYwMDFhZjcx
OTYxZmZhNzlkNjJiOTFlMDhmYjU3YmVkZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQpAQCAt
MzcsNyArMzcsNyBAQCArIChpbnN0YW5jZXR5cGUpcG9zaXRpb25XaXRoTG9jYXRpb246KENMTG9j
YXRpb24gKilsb2NhdGlvbgogICAgIGlmICghbG9jYXRpb24pCiAgICAgICAgIHJldHVybiBuaWw7
CiAKLSAgICByZXR1cm4gd3JhcHBlcihXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNy
ZWF0ZShXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uIHsgbG9jYXRpb24gfSkpOworICAgIHJl
dHVybiB3cmFwcGVyKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKFdlYkNv
cmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIHsgbG9jYXRpb24gfSkpOwogfQogCiAtICh2b2lk
KWRlYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdEdlb2xvY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCmluZGV4IDhjYmE0MjJlZDVlMzhiZjg0
Yzc2MDU5NGQ2Y2YwZjY1ODhjYmVhNWUuLmQwY2I0YzBiZTZhNmQzOTBkNjdlOTNjZjhkN2Q2YWQ1
NjAwYjU3ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdEdlb2xvY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0R2VvbG9jYXRpb25NYW5hZ2VyLmNwcApAQCAtNzAsMTcgKzcwLDE3IEBA
IHN0cnVjdCBfV2ViS2l0R2VvbG9jYXRpb25Qb3NpdGlvbiB7CiAgICAgICAgIHBvc2l0aW9uLmFj
Y3VyYWN5ID0gYWNjdXJhY3k7CiAgICAgfQogCi0gICAgZXhwbGljaXQgX1dlYktpdEdlb2xvY2F0
aW9uUG9zaXRpb24oR2VvbG9jYXRpb25Qb3NpdGlvbiYmIGNvcmVQb3NpdGlvbikKKyAgICBleHBs
aWNpdCBfV2ViS2l0R2VvbG9jYXRpb25Qb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYm
IGNvcmVQb3NpdGlvbikKICAgICAgICAgOiBwb3NpdGlvbihXVEZNb3ZlKGNvcmVQb3NpdGlvbikp
CiAgICAgewogICAgIH0KIAotICAgIGV4cGxpY2l0IF9XZWJLaXRHZW9sb2NhdGlvblBvc2l0aW9u
KGNvbnN0IEdlb2xvY2F0aW9uUG9zaXRpb24mIG90aGVyKQorICAgIGV4cGxpY2l0IF9XZWJLaXRH
ZW9sb2NhdGlvblBvc2l0aW9uKGNvbnN0IEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiBvdGhlcikK
ICAgICB7CiAgICAgICAgIHBvc2l0aW9uID0gb3RoZXI7CiAgICAgfQogCi0gICAgR2VvbG9jYXRp
b25Qb3NpdGlvbiBwb3NpdGlvbjsKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBwb3NpdGlv
bjsKIH07CiAKIC8qKgpAQCAtMjUyLDcgKzI1Miw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdEdlb2xv
Y2F0aW9uTWFuYWdlclN0YXJ0KFdlYktpdEdlb2xvY2F0aW9uTWFuYWdlciogbWFuYWdlcikKICAg
ICAgICAgbWFuYWdlci0+cHJpdi0+Z2VvY2x1ZVByb3ZpZGVyID0gbWFrZVVuaXF1ZTxHZW9jbHVl
R2VvbG9jYXRpb25Qcm92aWRlcj4oKTsKICAgICAgICAgbWFuYWdlci0+cHJpdi0+Z2VvY2x1ZVBy
b3ZpZGVyLT5zZXRFbmFibGVIaWdoQWNjdXJhY3kobWFuYWdlci0+cHJpdi0+aGlnaEFjY3VyYWN5
RW5hYmxlZCk7CiAgICAgfQotICAgIG1hbmFnZXItPnByaXYtPmdlb2NsdWVQcm92aWRlci0+c3Rh
cnQoW21hbmFnZXJdKEdlb2xvY2F0aW9uUG9zaXRpb24mJiBjb3JlUG9zaXRpb24sIE9wdGlvbmFs
PENTdHJpbmc+IGVycm9yKSB7CisgICAgbWFuYWdlci0+cHJpdi0+Z2VvY2x1ZVByb3ZpZGVyLT5z
dGFydChbbWFuYWdlcl0oR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiBjb3JlUG9zaXRpb24sIE9w
dGlvbmFsPENTdHJpbmc+IGVycm9yKSB7CiAgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAg
ICAgd2Via2l0X2dlb2xvY2F0aW9uX21hbmFnZXJfZmFpbGVkKG1hbmFnZXIsIGVycm9yLT5kYXRh
KCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNDEzLDcgKzQxMyw3IEBAIHZvaWQgd2Via2l0
X2dlb2xvY2F0aW9uX21hbmFnZXJfdXBkYXRlX3Bvc2l0aW9uKFdlYktpdEdlb2xvY2F0aW9uTWFu
YWdlciogbWFuYWdlCiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfR0VPTE9DQVRJT05f
TUFOQUdFUihtYW5hZ2VyKSk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChwb3NpdGlvbik7CiAKLSAg
ICBHZW9sb2NhdGlvblBvc2l0aW9uIGNvcmVQb3NpdGlvbiA9IHBvc2l0aW9uLT5wb3NpdGlvbjsK
KyAgICBhdXRvIGNvcmVQb3NpdGlvbiA9IHBvc2l0aW9uLT5wb3NpdGlvbjsKICAgICBhdXRvIHdr
UG9zaXRpb24gPSBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoV1RGTW92ZShjb3JlUG9z
aXRpb24pKTsKICAgICBtYW5hZ2VyLT5wcml2LT5tYW5hZ2VyLT5wcm92aWRlckRpZENoYW5nZVBv
c2l0aW9uKHdrUG9zaXRpb24ucHRyKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgKaW5kZXggMTdjMDg2OWNhZTYyNzU2
MWUzNDg4ODI0ZDJhNWY3ZGUxN2JmNjc3Mi4uNmI2NGNmZjJjMDU4MGNlNjA0MjE1MTg1OTM5MmJk
M2NjMjJlNmVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eS5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIldlYkNvbnRl
eHRTdXBwbGVtZW50LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTU1
LDcgKzU1LDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCBy
ZXNldFBlcm1pc3Npb25zKCk7CiAjZW5kaWYKLSAgICBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpH
ZW9sb2NhdGlvblBvc2l0aW9uPiYgbGFzdFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0
UG9zaXRpb247IH0KKyAgICBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YT4mIGxhc3RQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFBvc2l0aW9uOyB9
CiAKICAgICB1c2luZyBBUEk6Ok9iamVjdDo6cmVmOwogICAgIHVzaW5nIEFQSTo6T2JqZWN0Ojpk
ZXJlZjsKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PGNvbnN0IElQQzo6
Q29ubmVjdGlvbjo6Q2xpZW50Kj4gbV9oaWdoQWNjdXJhY3lSZXF1ZXN0ZXJzOwogCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEFQSTo6R2VvbG9jYXRpb25Qcm92aWRlcj4gbV9wcm92aWRlcjsKLSAgICBP
cHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiBtX2xhc3RQb3NpdGlvbjsKKyAg
ICBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gbV9sYXN0UG9zaXRp
b247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2dlb2NsdWUvR2VvY2x1ZUdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlci5j
cHAKaW5kZXggNmRiNjk4ODUwNTE1NTA3Zjk4MGNhNzg3OWExNGI5NjQyYTlkZjhkZi4uZGJhMmE5
OTBkMTU2ODMyMTZhNmZhOTBhNDhlYjMwZWViZDNjNTI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92
aWRlci5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJHZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlci5oIgogCi0jaW5jbHVkZSA8V2ViQ29yZS9HZW9s
b2NhdGlvblBvc2l0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9u
RGF0YS5oPgogI2luY2x1ZGUgPGdpby9naW8uaD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5o
PgogI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KQEAgLTI2MCw3ICsyNjAsNyBAQCB2
b2lkIEdlb2NsdWVHZW9sb2NhdGlvblByb3ZpZGVyOjpjcmVhdGVMb2NhdGlvbihjb25zdCBjaGFy
KiBsb2NhdGlvblBhdGgpCiAKIHZvaWQgR2VvY2x1ZUdlb2xvY2F0aW9uUHJvdmlkZXI6OmxvY2F0
aW9uVXBkYXRlZChHUmVmUHRyPEdEQnVzUHJveHk+JiYgcHJveHkpCiB7Ci0gICAgV2ViQ29yZTo6
R2VvbG9jYXRpb25Qb3NpdGlvbiBwb3NpdGlvbjsKKyAgICBXZWJDb3JlOjpHZW9sb2NhdGlvblBv
c2l0aW9uRGF0YSBwb3NpdGlvbjsKICAgICBHUmVmUHRyPEdWYXJpYW50PiBwcm9wZXJ0eSA9IGFk
b3B0R1JlZihnX2RidXNfcHJveHlfZ2V0X2NhY2hlZF9wcm9wZXJ0eShwcm94eS5nZXQoKSwgIkxh
dGl0dWRlIikpOwogICAgIHBvc2l0aW9uLmxhdGl0dWRlID0gZ192YXJpYW50X2dldF9kb3VibGUo
cHJvcGVydHkuZ2V0KCkpOwogICAgIHByb3BlcnR5ID0gYWRvcHRHUmVmKGdfZGJ1c19wcm94eV9n
ZXRfY2FjaGVkX3Byb3BlcnR5KHByb3h5LmdldCgpLCAiTG9uZ2l0dWRlIikpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92
aWRlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRp
b25Qcm92aWRlci5oCmluZGV4IDU3MTFlMmE3NjE0OWMzZjQ4MDFlNjVlMzg3Y2M4ZWVjZTRkNWVl
NjAuLjMxZDI5MDkxOTg1ZjM0YTY1MTM0YTJiMGU3Y2IzYWNlMWRhZTQ0MWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dlb2NsdWUvR2VvY2x1ZUdlb2xvY2F0aW9uUHJvdmlk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nZW9jbHVlL0dlb2NsdWVHZW9sb2Nh
dGlvblByb3ZpZGVyLmgKQEAgLTMzLDcgKzMzLDcgQEAKIHR5cGVkZWYgc3RydWN0IF9HREJ1c1By
b3h5IEdEQnVzUHJveHk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIEdlb2xvY2F0aW9u
UG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YTsKIH0KIAogbmFtZXNwYWNl
IFdlYktpdCB7CkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICBHZW9jbHVlR2VvbG9jYXRp
b25Qcm92aWRlcigpOwogICAgIH5HZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlcigpOwogCi0gICAg
dXNpbmcgVXBkYXRlTm90aWZ5RnVuY3Rpb24gPSBGdW5jdGlvbjx2b2lkKFdlYkNvcmU6Okdlb2xv
Y2F0aW9uUG9zaXRpb24mJiwgT3B0aW9uYWw8Q1N0cmluZz4gZXJyb3IpPjsKKyAgICB1c2luZyBV
cGRhdGVOb3RpZnlGdW5jdGlvbiA9IEZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6R2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGEmJiwgT3B0aW9uYWw8Q1N0cmluZz4gZXJyb3IpPjsKICAgICB2b2lkIHN0YXJ0
KFVwZGF0ZU5vdGlmeUZ1bmN0aW9uJiYpOwogICAgIHZvaWQgc3RvcCgpOwogICAgIHZvaWQgc2V0
RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KaW5kZXggNTI1ZmIyZjhkY2Nj
MjBhMGY0MGUyN2I5ZTY0NDI5Y2FmZThkZTMwNy4uMTMwOWNlYWE0NmI1MGEyZTBjNTVkOWE5ZDZh
OTA3MzU0OGI4N2Y3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
R2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCkBAIC0yOTYsNyArMjk2LDcgQEAgLSAodm9p
ZClnZW9sb2NhdGlvbkF1dGhvcml6YXRpb25EZW5pZWQKICAgICBbX2xpc3RlbmVyIGdlb2xvY2F0
aW9uQXV0aG9yaXphdGlvbkRlbmllZF07CiB9CiAKLS0gKHZvaWQpcG9zaXRpb25DaGFuZ2VkOihX
ZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZVBvc2l0aW9uCistICh2b2lkKXBvc2l0
aW9uQ2hhbmdlZDooV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiljb3JlUG9zaXRp
b24KIHsKICAgICBBU1NFUlQoX2xpc3RlbmVyKTsKICAgICBhdXRvIHBvc2l0aW9uID0gV2ViS2l0
OjpXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoV1RGTW92ZShjb3JlUG9zaXRpb24pKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9s
b2NhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9u
L1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMDIwMjQwMjNjOWYxYzU2M2JmOTEzMDA4
NTg1NmM0ZDgxNzI5OTEzNC4uYTk2NTU5OGZhNDNiOWQ0OGFkYTYyMjA2NTI3MDY0NWY0MmJkYTU5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdl
b2xvY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xv
Y2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlv
bkNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uRXJyb3IuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFdlYkdlb2xvY2F0aW9u
TWFuYWdlcjo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5Rm9yUGFnZShXZWJQYWdlJiBwYWdlLCBib29s
IGVuYQogICAgICAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OlNldEVuYWJsZUhpZ2hBY2N1cmFj
eShoaWdoQWNjdXJhY3lTaG91bGRCZUVuYWJsZWQpLCAwKTsKIH0KIAotdm9pZCBXZWJHZW9sb2Nh
dGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKGNvbnN0IEdlb2xvY2F0aW9uUG9zaXRpb24m
IHBvc2l0aW9uKQordm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9u
KGNvbnN0IEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiBwb3NpdGlvbikKIHsKICNpZiBFTkFCTEUo
R0VPTE9DQVRJT04pCiAgICAgZm9yIChhdXRvJiBwYWdlIDogY29weVRvVmVjdG9yKG1fcGFnZVNl
dCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2Nh
dGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaAppbmRleCBhNmMyODcxNmFiMTY3OGFmZGQ1NzRj
OWRmOWZlMjg2ODYzNDYzMDE5Li4yMWVhNjdhZmJlNTYzMzkzNmI3Y2ExM2Q2YjU4N2FjODlkY2Nk
NTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xv
Y2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCkBAIC0zNSw3ICszNSw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdlb2xvY2F0aW9uOwotY2xhc3MgR2VvbG9jYXRpb25Qb3Np
dGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOwogfQogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzVXBkYXRpbmcoKSBj
b25zdCB7IHJldHVybiAhbV9wYWdlU2V0LmlzRW1wdHkoKTsgfQogICAgIGJvb2wgaXNIaWdoQWNj
dXJhY3lFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gIW1faGlnaEFjY3VyYWN5UGFnZVNldC5pc0Vt
cHR5KCk7IH0KIAotICAgIHZvaWQgZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6R2Vv
bG9jYXRpb25Qb3NpdGlvbiYpOworICAgIHZvaWQgZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgV2Vi
Q29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmKTsKICAgICB2b2lkIGRpZEZhaWxUb0RldGVy
bWluZVBvc2l0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIHZvaWQgcmVzZXRQZXJtaXNzaW9ucygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9s
b2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggMDQzZWY2NDk0OTA5ZTRmMWYzZjY0MjAy
NjVkMzhkMjYyZGYwNGQzZS4uYjUyZTgxNjIwNTk2MzAwMjA1MGRmYTBkYTViZDI1ZmVmZDQzZTM1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdl
b2xvY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yMSw3
ICsyMSw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IFdlYkdlb2xvY2F0aW9uTWFu
YWdlciB7Ci0gICAgRGlkQ2hhbmdlUG9zaXRpb24oV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlv
biBwb3NpdGlvbik7CisgICAgRGlkQ2hhbmdlUG9zaXRpb24oV2ViQ29yZTo6R2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGEgcG9zaXRpb24pOwogICAgIERpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKFN0
cmluZyBlcnJvck1lc3NhZ2UpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgUmVzZXRQ
ZXJtaXNzaW9ucygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggNjVjOWYyNWQyZWU4ODM3ODM3
ZDI1NDdjMTJlZTYxZmNmZjhkMWZhOC4uZTcyYjg0MjNjZWU5MTZlNmIwYmVlNmM3ODcyMjg4M2Vm
ZmJiMWMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC02Miw3ICs2Miw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9HQ0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9u
Q2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9KU0RPTUNvbnZl
cnRCdWZmZXJTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NRXhjZXB0aW9uSGFuZGxp
bmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ2xpZW50LmNwcAppbmRleCBhMjRlMGZmMjFjY2RjNjQ0Zjc3NTY5ODdlZTA4YmNhN2RlNjBm
Yjg4Li45OGM1MTIxMzQwM2JkYjNiODhjMmY2NDFlYTJlY2Q1NWVmNDRjOTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25D
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJXZWJQ
YWdlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9j
YXRpb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgV2Vi
R2VvbG9jYXRpb25DbGllbnQ6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sIGVuYWJsZWQpCiAg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxXZWJHZW9sb2NhdGlvbk1hbmFn
ZXI+KCktPnNldEVuYWJsZUhpZ2hBY2N1cmFjeUZvclBhZ2UobV9wYWdlLCBlbmFibGVkKTsKIH0K
IAotT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxh
c3RQb3NpdGlvbigpCitPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gV2ViR2VvbG9j
YXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJHZW9sb2NhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKaW5kZXggMzVhMzFmYzJhMzQ0YjMxMjg3MzA1
MDRiN2ZlN2ExMTVmMDExYjg4My4uZDQ3NzZlOTE1MWE3NTAxNWE4NjA3ZTc1MDVjMmU5NDc0ZmI5
NjdmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHN0b3BVcGRhdGluZygpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0RW5h
YmxlSGlnaEFjY3VyYWN5KGJvb2wpIG92ZXJyaWRlOwogCi0gICAgT3B0aW9uYWw8V2ViQ29yZTo6
R2VvbG9jYXRpb25Qb3NpdGlvbj4gbGFzdFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgT3B0aW9u
YWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlvbigpIG92ZXJy
aWRlOwogCiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpHZW9sb2NhdGlvbiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoV2ViQ29yZTo6R2Vv
bG9jYXRpb24mKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9z
L01pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktp
dExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmgKaW5k
ZXggMDQ5MGZjZmIxZGIwNGJmNmIwMjRlOGU0MDk2NzU3MGY3YzVhYzEzOC4uODQyN2NiODEwMmQ2
MmI0MGU2OGJlMTAxNmUyMmZkNDI0YTI2OTI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblBy
b3ZpZGVyLmgKQEAgLTI5LDcgKzI5LDcgQEAKIEBjbGFzcyBOU1N0cmluZzsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewotY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhOwogfQogCiAvLyBXZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvbkRlbGVnYXRl
IGFic3RyYWN0cyB0aGUgbG9jYXRpb24gc2VydmljZXMgb2YgQ29yZUxvY2F0aW9uLgpAQCAtNDMs
NyArNDMsNyBAQCBjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOwogLSAodm9pZClnZW9sb2NhdGlv
bkF1dGhvcml6YXRpb25HcmFudGVkOwogLSAodm9pZClnZW9sb2NhdGlvbkF1dGhvcml6YXRpb25E
ZW5pZWQ7CiAKLS0gKHZvaWQpcG9zaXRpb25DaGFuZ2VkOihXZWJDb3JlOjpHZW9sb2NhdGlvblBv
c2l0aW9uJiYpcG9zaXRpb247CistICh2b2lkKXBvc2l0aW9uQ2hhbmdlZDooV2ViQ29yZTo6R2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGEmJilwb3NpdGlvbjsKIC0gKHZvaWQpZXJyb3JPY2N1cnJlZDoo
TlNTdHJpbmcgKillcnJvck1lc3NhZ2U7CiAtICh2b2lkKXJlc2V0R2VvbG9jYXRpb247CiBAZW5k
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9u
Q29yZUxvY2F0aW9uUHJvdmlkZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dl
Ykdlb2xvY2F0aW9uQ29yZUxvY2F0aW9uUHJvdmlkZXIubW0KaW5kZXggYzVmNjQ2YjJhNDUxNTVk
OTY1Yjg5MzM0YWE1NmZhN2ExMGQzM2Y5MC4uZGU5MTMzYmYwOGZhYWJjYWY3Zjg1ZGJkYWQ1YjA4
YTEzNGEyM2ZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlzYy9XZWJH
ZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5tbQpAQCAtMzAs
NyArMzAsNyBAQAogI2ltcG9ydCA8Q29yZUxvY2F0aW9uL0NMTG9jYXRpb24uaD4KICNpbXBvcnQg
PENvcmVMb2NhdGlvbi9DTExvY2F0aW9uTWFuYWdlckRlbGVnYXRlLmg+CiAjaW1wb3J0IDxDb3Jl
TG9jYXRpb24vQ29yZUxvY2F0aW9uLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9z
aXRpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaD4KICNp
bXBvcnQgPFdlYktpdExvZ2dpbmcuaD4KICNpbXBvcnQgPG9iamMvb2JqYy1ydW50aW1lLmg+CiAj
aW1wb3J0IDx3dGYvUmVmUHRyLmg+CkBAIC0xNzAsNyArMTcwLDcgQEAgLSAodm9pZClsb2NhdGlv
bk1hbmFnZXI6KENMTG9jYXRpb25NYW5hZ2VyICopbWFuYWdlciBkaWRDaGFuZ2VBdXRob3JpemF0
aW9uU3RhdHUKIAogLSAodm9pZClzZW5kTG9jYXRpb246KENMTG9jYXRpb24gKiluZXdMb2NhdGlv
bgogewotICAgIFtfcG9zaXRpb25MaXN0ZW5lciBwb3NpdGlvbkNoYW5nZWQ6R2VvbG9jYXRpb25Q
b3NpdGlvbiB7IG5ld0xvY2F0aW9uIH1dOworICAgIFtfcG9zaXRpb25MaXN0ZW5lciBwb3NpdGlv
bkNoYW5nZWQ6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEgeyBuZXdMb2NhdGlvbiB9XTsKIH0KIAog
LSAodm9pZClsb2NhdGlvbk1hbmFnZXI6KENMTG9jYXRpb25NYW5hZ2VyICopbWFuYWdlciBkaWRV
cGRhdGVMb2NhdGlvbnM6KE5TQXJyYXkgKilsb2NhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQppbmRl
eCBjMmZmMzUwZjc0NTI2ZTEyNTZjMTllNGY1MjA4NWNiMzUxZDI0OTY4Li41ZTc3Nzk2NGYxNDll
ZjI2YjAwOTM5NTI1MDgyNDUxMDUyNzhjODE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCkBAIC00Miw3
ICs0Miw3IEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogQGludGVyZmFjZSBXZWJHZW9s
b2NhdGlvblBvc2l0aW9uIChJbnRlcm5hbCkKLS0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb25Qb3Np
dGlvbjooR2VvbG9jYXRpb25Qb3NpdGlvbiYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOworLSAo
aWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYm
KWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOwogQGVuZAogCiAvLyBDb3JlTG9jYXRpb24gcnVucyBp
biB0aGUgbWFpbiB0aHJlYWQuIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MgbGl2ZXMgb24gdGhl
IFdlYlRocmVhZC4KQEAgLTM0OCw3ICszNDgsNyBAQCAtICh2b2lkKWdlb2xvY2F0aW9uQXV0aG9y
aXphdGlvbkRlbmllZAogICAgIH0pOwogfQogCi0tICh2b2lkKXBvc2l0aW9uQ2hhbmdlZDooV2Vi
Q29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiYmKXBvc2l0aW9uCistICh2b2lkKXBvc2l0aW9uQ2hh
bmdlZDooV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJilwb3NpdGlvbgogewogICAg
IFJldGFpblB0cjxXZWJHZW9sb2NhdGlvblBvc2l0aW9uPiB3ZWJQb3NpdGlvbiA9IGFkb3B0TlMo
W1tXZWJHZW9sb2NhdGlvblBvc2l0aW9uIGFsbG9jXSBpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRp
b246V1RGTW92ZShwb3NpdGlvbildKTsKICAgICBXZWJUaHJlYWRSdW4oXnsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2Nh
dGlvbkNsaWVudC5oCmluZGV4IGZmZGJhY2ZjMjc0MjFlOGQzNTg4OGYyY2U2YjE4MDc3YTE2ZTMz
ZjAuLjhhMWI3ZjAwOWQyY2ZhMThiMGU4ZjM1MTMyODE3MTBkYjZiNDRhODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2Vv
bG9jYXRpb25DbGllbnQuaApAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBHZW9sb2NhdGlvbjsKLWNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFzcyBH
ZW9sb2NhdGlvblBvc2l0aW9uRGF0YTsKIH0KIAogQGNsYXNzIFdlYlZpZXc7CkBAIC00OCw3ICs0
OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKSBvdmVy
cmlkZSB7IH0KICNlbmRpZgogCi0gICAgT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3Np
dGlvbj4gbGFzdFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6R2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlvbigpIG92ZXJyaWRlOwogCiAgICAgdm9p
ZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpHZW9sb2NhdGlvbiYpIG92ZXJyaWRlOwogICAg
IHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoV2ViQ29yZTo6R2VvbG9jYXRpb24mKSBvdmVy
cmlkZSB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCmluZGV4IDJjZjcxNWUyZDkwZGZl
NzY2ODQ4OGJjMTc0NTFiMTNlZGIyZTMwZjguLjg3ZGE3MzBmZWFhZmRlZGQ3NzRlZDdlYTk2YjZm
OGQwOTNlYTlhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCkBAIC0xMzIsNyArMTMy
LDcgQEAgdm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oR2VvbG9j
YXRpb24mIGdlb2xvY2F0aW9uKQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAK
LU9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+IFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0
UG9zaXRpb24oKQorT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IFdlYkdlb2xvY2F0
aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24oKQogewogICAgIHJldHVybiBjb3JlKFtbbV93ZWJWaWV3
IF9nZW9sb2NhdGlvblByb3ZpZGVyXSBsYXN0UG9zaXRpb25dKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5t
bQppbmRleCBkMTVmNWY5YzY5ZWI0ZTZhN2YzZWQ5ZmFmNmVlZjM5NWNlYzFiZDhhLi41ZGJmZDM1
NWE4NWM5N2UwMjliZTUxZjc0NTc1NWQzMTVkNDBlOTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tCkBA
IC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0ICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAKICNp
bXBvcnQgIldlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oIgotI2ltcG9ydCA8V2ViQ29y
ZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9z
aXRpb25EYXRhLmg+CiAjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KICNpbXBvcnQgPHd0Zi9SZWZQ
dHIuaD4KIApAQCAtMzUsMTUgKzM1LDE1IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogQGlu
dGVyZmFjZSBXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwgOiBOU09iamVjdAogewogQHB1
YmxpYwotICAgIEdlb2xvY2F0aW9uUG9zaXRpb24gX3Bvc2l0aW9uOworICAgIEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhIF9wb3NpdGlvbjsKIH0KIAotLSAoaWQpaW5pdFdpdGhDb3JlR2VvbG9jYXRp
b25Qb3NpdGlvbjooR2VvbG9jYXRpb25Qb3NpdGlvbiYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9u
OworLSAoaWQpaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjooR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEmJiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjsKIEBlbmQKIAogQGltcGxlbWVudGF0
aW9uIFdlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbAogCi0tIChpZClpbml0V2l0aENvcmVH
ZW9sb2NhdGlvblBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZUdlb2xvY2F0aW9u
UG9zaXRpb24KKy0gKGlkKWluaXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246KEdlb2xvY2F0
aW9uUG9zaXRpb25EYXRhJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb24KIHsKICAgICBzZWxmID0g
W3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKQEAgLTU2LDcgKzU2LDcgQEAgQGVuZAogCiBA
aW1wbGVtZW50YXRpb24gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbgogCi1PcHRpb25hbDxHZW9sb2Nh
dGlvblBvc2l0aW9uPiBjb3JlKFdlYkdlb2xvY2F0aW9uUG9zaXRpb24gKnBvc2l0aW9uKQorT3B0
aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGNvcmUoV2ViR2VvbG9jYXRpb25Qb3NpdGlv
biAqcG9zaXRpb24pCiB7CiAgICAgaWYgKCFwb3NpdGlvbikKICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKQEAgLTY4LDExICs2OCwxMSBAQCAtIChpZClpbml0V2l0aFRpbWVzdGFtcDooZG91
YmxlKXRpbWVzdGFtcCBsYXRpdHVkZTooZG91YmxlKWxhdGl0dWRlIGxvbmdpdHVkZTooZAogICAg
IHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmls
OwotICAgIF9pbnRlcm5hbCA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsIGFsbG9j
XSBpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOkdlb2xvY2F0aW9uUG9zaXRpb24geyB0
aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH1dOworICAgIF9pbnRlcm5h
bCA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsIGFsbG9jXSBpbml0V2l0aENvcmVH
ZW9sb2NhdGlvblBvc2l0aW9uOkdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIHsgdGltZXN0YW1wLCBs
YXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSB9XTsKICAgICByZXR1cm4gc2VsZjsKIH0KIAot
LSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uJiYp
Y29yZUdlb2xvY2F0aW9uUG9zaXRpb24KKy0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlv
bjooR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbgogewog
ICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJu
YWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbkludGVybmFsLmgKaW5kZXggMzQ3NjMwMmYyZDZlYzM2MjIwMzM5MDQyZjRmYjJiYmViOTcy
NTc5MS4uN2VhYWE5YzBlY2M1MGE4ODgxYzI4OGNkZjY5ZWM4Zjk0NGQ4NzJlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9u
SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkdlb2xv
Y2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oCkBAIC0yNyw4ICsyNyw4IEBACiAjaW1wb3J0IDx3dGYv
T3B0aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIEdlb2xvY2F0aW9u
UG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YTsKIH0KIAotT3B0aW9uYWw8
V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbj4gY29yZShXZWJHZW9sb2NhdGlvblBvc2l0aW9u
ICopOworT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGNvcmUoV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbiAqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCmlu
ZGV4IDI3ZDc4NWUwODViZjcwY2Q3ZmE5ZjY3MTFmOTg0YWMxZWNlOThhYTguLjUzNzkzYjFkNGJj
ZTJlZjM4NjZlN2EyODAzMjI4MTNiMWZjYzllNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVu
dC5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVk
ZSAiV2ViR2VvbG9jYXRpb25Qb2xpY3lMaXN0ZW5lci5oIgotI2luY2x1ZGUgIldlYkdlb2xvY2F0
aW9uUG9zaXRpb24uaCIKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oIgog
I2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBXZWJHZW9s
b2NhdGlvbkNsaWVudDo6c3RvcFVwZGF0aW5nKCkKICAgICBwcm92aWRlci0+dW5yZWdpc3Rlcldl
YlZpZXcobV93ZWJWaWV3LmdldCgpKTsKIH0KIAotT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlv
bj4gV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCitPcHRpb25hbDxHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YT4gV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCiB7
CiAgICAgQ09NUHRyPElXZWJHZW9sb2NhdGlvblByb3ZpZGVyPiBwcm92aWRlcjsKICAgICBpZiAo
RkFJTEVEKG1fd2ViVmlldy0+Z2VvbG9jYXRpb25Qcm92aWRlcigmcHJvdmlkZXIpKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJH
ZW9sb2NhdGlvbkNsaWVudC5oCmluZGV4IGJiYTljOWY0NDUzNThkN2NlM2VhMDNmODk2NjQxYmQ2
ZTVlMDQwZDMuLjA4Yjc2MjAzNDA3ZmZiMmJlOTEwOGI1NzAwYWVhN2RhYzA3NWJlZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViR2VvbG9jYXRpb25DbGllbnQuaApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBHZW9sb2NhdGlvbjsKLWNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247Citj
bGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YTsKIH0KIAogY2xhc3MgV2ViVmlldzsKQEAgLTQ0
LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnRVcGRhdGluZygpIGZpbmFsOwogICAg
IHZvaWQgc3RvcFVwZGF0aW5nKCkgZmluYWw7CiAgICAgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJh
Y3koYm9vbCkgZmluYWwgeyB9Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3Np
dGlvbj4gbGFzdFBvc2l0aW9uKCkgZmluYWw7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9j
YXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlvbigpIGZpbmFsOwogCiAgICAgdm9pZCByZXF1
ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpHZW9sb2NhdGlvbiYpIGZpbmFsOwogICAgIHZvaWQgY2Fu
Y2VsUGVybWlzc2lvblJlcXVlc3QoV2ViQ29yZTo6R2VvbG9jYXRpb24mKSBmaW5hbCB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24u
Y3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAK
aW5kZXggNWMyMDJlYzRiNGY2N2M2NDBjZjdiM2IzMDU2YWFkNjM1Njk4YTZlZC4uZTYwZWIyMWZk
YzAxNjIxNWU3NjJlZjkwMzhmM2Q0NTlkMGI0NzNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKQEAgLTI2LDggKzI2LDYgQEAK
ICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9D
T01QdHIuaD4KIAotI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgotCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogQ09NUHRyPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+
IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZUluc3RhbmNlKCkKQEAgLTgxLDExICs3OSwx
MSBAQCBVTE9ORyBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpSZWxlYXNlKCkKIAogSFJFU1VMVCBX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uOjppbml0V2l0aFRpbWVzdGFtcChkb3VibGUgdGltZXN0YW1w
LCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKIHsK
LSAgICBtX3Bvc2l0aW9uID0gR2VvbG9jYXRpb25Qb3NpdGlvbiB7IHRpbWVzdGFtcCwgbGF0aXR1
ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kgfTsKKyAgICBtX3Bvc2l0aW9uID0gR2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGEgeyB0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH07
CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLU9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+IGNv
cmUoSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24qIHBvc2l0aW9uKQorT3B0aW9uYWw8R2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGE+IGNvcmUoSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24qIHBvc2l0aW9uKQog
ewogICAgIGlmICghcG9zaXRpb24pCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKaW5kZXgg
ZjVkOGY2N2QyYTk5YzM0MzRjYjk1MzliYmFhZWYyYTFlNDJjY2IwOC4uNmNhMzRjNDFhNzVhNDk0
ZGU1NmMzNmQ0NjBkNmEwNjA3MmJmZmM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaW5jbHVk
ZSAiV2ViS2l0LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DT01QdHIuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9u
UG9zaXRpb25EYXRhLmg+CiAKIGNsYXNzIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24gZmluYWwgOiBw
dWJsaWMgSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24gewogcHVibGljOgpAQCAtNDUsMTEgKzQ1LDEx
IEBAIHB1YmxpYzoKICAgICAvLyBJV2ViR2VvbG9jYXRpb25Qb3NpdGlvbgogICAgIHZpcnR1YWwg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBpbml0V2l0aFRpbWVzdGFtcChkb3VibGUgdGltZXN0
YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSk7
CiAKLSAgICBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiYgaW1w
bCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0KKyAgICBjb25zdCBPcHRpb25hbDxXZWJD
b3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4mIGltcGwoKSBjb25zdCB7IHJldHVybiBtX3Bv
c2l0aW9uOyB9CiAKIHByaXZhdGU6CiAgICAgVUxPTkcgbV9yZWZDb3VudCB7IDAgfTsKLSAgICBP
cHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiBtX3Bvc2l0aW9uOworICAgIE9w
dGlvbmFsPFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBtX3Bvc2l0aW9uOwogfTsK
IAogT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbj4gY29yZShJV2ViR2VvbG9j
YXRpb25Qb3NpdGlvbiopOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDNmNTIzNGFmMmQ0MTIzZTZiZTEzYzdiYjJlYzg0MDMwZGIwMzVmYjMuLjMx
NjI3YTI0NWZjNTc5MjFmYTE1M2QzMDJjNjVkYjVjZDM5MGM3MGUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0w
OC0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtnZW9sb2Nh
dGlvbl0gUmVuYW1lIGludGVyZmFjZXMgYW5kIHJlbW92ZSBbTm9JbnRlcmZhY2VPYmplY3RdCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4ODUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0TW9j
a0dlb2xvY2F0aW9uUG9zaXRpb24pOgorCiAyMDE5LTA4LTIyICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICByZXN1bHRzLndlYmtpdC5vcmc6IFJlbW92ZSBi
cmFuY2ggYW5kIHJlcG9zaXRvcnkgaW5mb3JtYXRpb24gZnJvbSBjb21taXQgdG9vbHRpcApkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQppbmRleCAxZjk2MGFhZTJkZDAz
ZTE2MGIxMjRjNzkyMjNlOTU2YWFkY2VhNzhlLi4wMDY1OTU2YzgxZGQ3MTM1ZGUwMjdmNDlhMWY1
M2JlYzY4MzYwNzJhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1
bm5lck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5t
bQpAQCAtNDEsNyArNDEsNyBAQAogI2ltcG9ydCAiV29ya1F1ZXVlSXRlbS5oIgogI2ltcG9ydCA8
Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU1N0cmlu
Z1JlZkNGLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbXBv
cnQgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaD4KICNpbXBvcnQgPFdlYktpdC9E
T01Eb2N1bWVudC5oPgogI2ltcG9ydCA8V2ViS2l0L0RPTUVsZW1lbnQuaD4KICNpbXBvcnQgPFdl
YktpdC9ET01IVE1MSW5wdXRFbGVtZW50UHJpdmF0ZS5oPgpAQCAtMTE5LDcgKzExOSw3IEBAIEBl
bmQKICNlbmRpZgogCiBAaW50ZXJmYWNlIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24gKEludGVybmFs
KQotLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0aW9uOihXZWJDb3JlOjpHZW9sb2NhdGlv
blBvc2l0aW9uJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb247CistIChpZClpbml0V2l0aEdlb2xv
Y2F0aW9uUG9zaXRpb246KFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYpY29yZUdl
b2xvY2F0aW9uUG9zaXRpb247CiBAZW5kCiAKIFRlc3RSdW5uZXI6On5UZXN0UnVubmVyKCkKQEAg
LTQ3Miw3ICs0NzIsNyBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0
aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZAogICAgICAgICAvLyBUZXN0
IHRoZSBleHBvc2VkIEFQSS4KICAgICAgICAgcG9zaXRpb24gPSBbW1dlYkdlb2xvY2F0aW9uUG9z
aXRpb24gYWxsb2NdIGluaXRXaXRoVGltZXN0YW1wOldhbGxUaW1lOjpub3coKS5zZWNvbmRzU2lu
Y2VFcG9jaCgpLnNlY29uZHMoKSBsYXRpdHVkZTpsYXRpdHVkZSBsb25naXR1ZGU6bG9uZ2l0dWRl
IGFjY3VyYWN5OmFjY3VyYWN5XTsKICAgICB9IGVsc2UgewotICAgICAgICBXZWJDb3JlOjpHZW9s
b2NhdGlvblBvc2l0aW9uIGdlb2xvY2F0aW9uUG9zaXRpb24geyBXYWxsVGltZTo6bm93KCkuc2Vj
b25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCksIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5
IH07CisgICAgICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIGdlb2xvY2F0aW9u
UG9zaXRpb24geyBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCks
IGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH07CiAgICAgICAgIGlmIChwcm92aWRlc0Fs
dGl0dWRlKQogICAgICAgICAgICAgZ2VvbG9jYXRpb25Qb3NpdGlvbi5hbHRpdHVkZSA9IGFsdGl0
dWRlOwogICAgICAgICBpZiAocHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5KQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZlMDE1
MGU2YjdhMmNmNTQyNzdjYmI4ZGM3YzEyMDE3ZTY0OGExM2UuLjY5YjY0ZmU4ZTJjYjE3MDc2YzRm
MzNkNjdkYmM1MmRkMzU3OWQ3ZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0wOC0yMiAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtnZW9sb2NhdGlvbl0g
UmVuYW1lIGludGVyZmFjZXMgYW5kIHJlbW92ZSBbTm9JbnRlcmZhY2VPYmplY3RdCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4ODUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3Qg
Y292ZXJhZ2UuCisKKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9leHBvc2VkLWdlb2xv
Y2F0aW9uLWludGVyZmFjZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9HZW9sb2NhdGlvbi9leHBvc2VkLWdlb2xvY2F0aW9uLWludGVyZmFjZXMuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJpbmcuaHRt
bDoKKwogMjAxOS0wOC0yMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZWJhc2VsaW5lIHNvbWUgZWRpdGluZyB0ZXN0cyBhZnRlciByMjQ4OTc0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9leHBvc2VkLWdlb2xv
Y2F0aW9uLWludGVyZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2Vv
bG9jYXRpb24vZXhwb3NlZC1nZW9sb2NhdGlvbi1pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mYWViMTk4YWJjMmFkY2Q4ODUyMDMyNmM1NGU0N2FmMGM2ZTBhNWVmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZXhwb3NlZC1nZW9s
b2NhdGlvbi1pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitDaGVja3Mg
dGhhdCB0aGUgR2VvbG9jYXRpb24gaW50ZXJmYWNlcyBhcmUgZXhwb3NlZCBhbmQgdGhhdCB0aGVp
ciBuYW1lIGlzIGNvcnJlY3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHdpbmRvd1Byb3BlcnRpZXMuaW5kZXhPZignR2VvbG9jYXRpb24nKSA+PSAwIGlzIHRydWUKK1BB
U1Mgd2luZG93UHJvcGVydGllcy5pbmRleE9mKCdHZW9sb2NhdGlvbkNvb3JkaW5hdGVzJykgPj0g
MCBpcyB0cnVlCitQQVNTIHdpbmRvd1Byb3BlcnRpZXMuaW5kZXhPZignR2VvbG9jYXRpb25Qb3Np
dGlvbicpID49IDAgaXMgdHJ1ZQorUEFTUyB3aW5kb3dQcm9wZXJ0aWVzLmluZGV4T2YoJ0dlb2xv
Y2F0aW9uUG9zaXRpb25FcnJvcicpID49IDAgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0dlb2xvY2F0aW9uL2V4cG9zZWQtZ2VvbG9jYXRpb24taW50ZXJmYWNlcy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZXhwb3NlZC1nZW9sb2NhdGlvbi1pbnRl
cmZhY2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNjNzgzMGI5NTk3N2UwY2MxNGY4MWE4MzAxYTUyNGVh
YzhlMzA5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0
aW9uL2V4cG9zZWQtZ2VvbG9jYXRpb24taW50ZXJmYWNlcy5odG1sCkBAIC0wLDAgKzEsMTUgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkNo
ZWNrcyB0aGF0IHRoZSBHZW9sb2NhdGlvbiBpbnRlcmZhY2VzIGFyZSBleHBvc2VkIGFuZCB0aGF0
IHRoZWlyIG5hbWUgaXMgY29ycmVjdC4iKTsKKworY29uc3Qgd2luZG93UHJvcGVydGllcyA9IE9i
amVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdyk7Citjb25zdCBleHBlY3RlZFByb3BlcnRp
ZXMgPSBbIkdlb2xvY2F0aW9uIiwgIkdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMiLCAiR2VvbG9jYXRp
b25Qb3NpdGlvbiIsICJHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IiXTsKKworZm9yIChsZXQgZXhw
ZWN0ZWRQcm9wZXJ0eSBvZiBleHBlY3RlZFByb3BlcnRpZXMpCisgIHNob3VsZEJlVHJ1ZSgid2lu
ZG93UHJvcGVydGllcy5pbmRleE9mKCciICsgZXhwZWN0ZWRQcm9wZXJ0eSArICInKSA+PSAwIik7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0dlb2xvY2F0aW9uL3Bvc2l0aW9uLXN0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJpbmctZXhwZWN0ZWQudHh0Cmlu
ZGV4IDA0NWY0OTZlZjljZWNiNTk3MTg3ZTcxMDY5ZjE4YWQ5MTI3NzE2ZDQuLjRhNzEyNzRiMDkw
MTEyNDExNzczMTllYjliODU1NGYyNjQxNGE4YmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0dlb2xvY2F0aW9uL3Bvc2l0aW9uLXN0cmluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLWV4cGVjdGVkLnR4
dApAQCAtNiw4ICs2LDggQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFBBU1MgcG9zaXRpb24u
Y29vcmRzLmxhdGl0dWRlIGlzIG1vY2tMYXRpdHVkZQogUEFTUyBwb3NpdGlvbi5jb29yZHMubG9u
Z2l0dWRlIGlzIG1vY2tMb25naXR1ZGUKIFBBU1MgcG9zaXRpb24uY29vcmRzLmFjY3VyYWN5IGlz
IG1vY2tBY2N1cmFjeQotUEFTUyBwb3NpdGlvbi50b1N0cmluZygpIGlzICJbb2JqZWN0IEdlb3Bv
c2l0aW9uXSIKLVBBU1MgcG9zaXRpb24uY29vcmRzLnRvU3RyaW5nKCkgaXMgIltvYmplY3QgQ29v
cmRpbmF0ZXNdIgorUEFTUyBwb3NpdGlvbi50b1N0cmluZygpIGlzICJbb2JqZWN0IEdlb2xvY2F0
aW9uUG9zaXRpb25dIgorUEFTUyBwb3NpdGlvbi5jb29yZHMudG9TdHJpbmcoKSBpcyAiW29iamVj
dCBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzXSIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2Vv
bG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9s
b2NhdGlvbi9wb3NpdGlvbi1zdHJpbmcuaHRtbAppbmRleCBiNjY0ZDFjMDIzMGEyZjA3YzhhYTkw
YzE1ZmJkNTFmNzk0ZmUwYTI0Li42Y2ViNmU3NjNkZDNmMjZjZTdjMzMxMmM0N2U4ZDljZGQxZGI2
NTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlv
bi1zdHJpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3Np
dGlvbi1zdHJpbmcuaHRtbApAQCAtMjYsOCArMjYsOCBAQCBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24u
Z2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKHApIHsKICAgICBzaG91bGRCZSgncG9zaXRpb24u
Y29vcmRzLmxhdGl0dWRlJywgJ21vY2tMYXRpdHVkZScpOwogICAgIHNob3VsZEJlKCdwb3NpdGlv
bi5jb29yZHMubG9uZ2l0dWRlJywgJ21vY2tMb25naXR1ZGUnKTsKICAgICBzaG91bGRCZSgncG9z
aXRpb24uY29vcmRzLmFjY3VyYWN5JywgJ21vY2tBY2N1cmFjeScpOwotICAgIHNob3VsZEJlKCdw
b3NpdGlvbi50b1N0cmluZygpJywgJyJbb2JqZWN0IEdlb3Bvc2l0aW9uXSInKTsKLSAgICBzaG91
bGRCZSgncG9zaXRpb24uY29vcmRzLnRvU3RyaW5nKCknLCAnIltvYmplY3QgQ29vcmRpbmF0ZXNd
IicpOworICAgIHNob3VsZEJlKCdwb3NpdGlvbi50b1N0cmluZygpJywgJyJbb2JqZWN0IEdlb2xv
Y2F0aW9uUG9zaXRpb25dIicpOworICAgIHNob3VsZEJlKCdwb3NpdGlvbi5jb29yZHMudG9TdHJp
bmcoKScsICciW29iamVjdCBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzXSInKTsKICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0sIGZ1bmN0aW9uKGUpIHsKICAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFj
ayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377135</attachid>
            <date>2019-08-23 10:53:19 -0700</date>
            <delta_ts>2019-08-23 11:46:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200885-20190823105318.patch</filename>
            <type>text/plain</type>
            <size>138821</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQzNTYyOGI0NzIxMTBk
YzA3ZTk5ODc3ZDJkMzBkNGE2ZGYzOWMxNi4uNDRlZTZjNmFjYTg0NmU5OTA5ODA4NTVhNDY0YjM2
NjM5MTU1NzEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDE5LTA4LTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2dlb2xvY2F0aW9uXSBSZW5h
bWUgaW50ZXJmYWNlcyBhbmQgcmVtb3ZlIFtOb0ludGVyZmFjZU9iamVjdF0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDg4NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBHZW9sb2NhdGlvbiBp
bnRlcmZhY2VzIGFuZCBleHBvc2UgdGhlbSBvbiB0aGUgZ2xvYmFsIFdpbmRvdyBvYmplY3QgdG8g
bWF0Y2ggdGhlCisgICAgICAgIGxhdGVzdCBzcGVjaWZpY2F0aW9uOgorICAgICAgICAtIGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9nZW9sb2NhdGlvbi1hcGkvI2FwaV9kZXNjcmlwdGlvbgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL0dlb2xvY2F0aW9uL2V4cG9zZWQtZ2VvbG9jYXRpb24taW50ZXJm
YWNlcy5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
SGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb05vdGlmaWVyOjpzZXRGYXRhbEVycm9yKToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlb05vdGlmaWVyOjpydW5TdWNjZXNzQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6R2VvTm90aWZpZXI6OnJ1bkVycm9yQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6R2VvTm90aWZpZXI6OnRpbWVyRmlyZWQpOgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvTm90aWZpZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUdlb2xvY2F0aW9uUG9zaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpsYXN0UG9zaXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R2VvbG9jYXRpb246OnN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpHZW9s
b2NhdGlvbjo6cmVxdWVzdFVzZXNDYWNoZWRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpH
ZW9sb2NhdGlvbjo6bWFrZUNhY2hlZFBvc2l0aW9uQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNv
cmU6Okdlb2xvY2F0aW9uOjpoYXZlU3VpdGFibGVDYWNoZWRQb3NpdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpHZW9sb2NhdGlvbjo6c2V0SXNBbGxvd2VkKToKKyAgICAgICAgKFdlYkNvcmU6Okdl
b2xvY2F0aW9uOjpzZW5kRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OnNl
bmRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6Y2FuY2VsUmVxdWVz
dHMpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OmhhbmRsZUVycm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjptYWtlU3VjY2Vzc0NhbGxiYWNrcyk6CisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6cG9zaXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNv
cmU6Okdlb2xvY2F0aW9uOjpzZXRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
bjo6aGFuZGxlUGVuZGluZ1Blcm1pc3Npb25Ob3RpZmllcnMpOgorICAgICAgICAqIE1vZHVsZXMv
Z2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uQ2xpZW50Lmg6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjpw
b3NpdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVy
OjpsYXN0UG9zaXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b25Db250cm9sbGVyLmg6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bkNvb3JkaW5hdGVzLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vQ29vcmRpbmF0ZXMuY3BwLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25D
b29yZGluYXRlczo6R2VvbG9jYXRpb25Db29yZGluYXRlcyk6CisgICAgICAgICogTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmguCisgICAgICAgIChXZWJD
b3JlOjpHZW9sb2NhdGlvbkNvb3JkaW5hdGVzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R2VvbG9jYXRpb25Db29yZGluYXRlczo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKiBN
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRsOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5pZGwuCisg
ICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmg6CisgICAg
ICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbjo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb246OnRpbWVzdGFtcCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uOjpjb29yZHMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbjo6R2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAg
ICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRs
LgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEu
aDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvblBvc2l0aW9uLmguCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0
aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmguCisgICAgICAgIChXZWJDb3Jl
OjpHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpH
ZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6Okdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcik6CisgICAg
ICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRsOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVy
cm9yLmlkbC4KKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bvc2l0aW9uLmg6IFJl
bW92ZWQuCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmg6
CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5oOgorICAg
ICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlP
Uy5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vaW9z
L0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0uCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
blBvc2l0aW9uRGF0YTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEpOgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnNldFBvc2l0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jazo6bGFzdFBvc2l0aW9uKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oOgorCiAyMDE5LTA4LTIyICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgSW1hZ2VCdWZm
ZXIgYW5kIFNWRydzIEZpbHRlckRhdGEgaXNvaGVhcCdlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3ZmY3OGZiZjRk
ZTJjYzg5ZGE2ZDYzNzg2OTAxYzk5NGU3ZDAyZTFmLi5iYmRkNDNlYjNlMjFjN2Y1ZGY0OTA3NDdj
ZTVmZjYyYzE4YzZhZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTA4LTIyICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2dlb2xvY2F0aW9uXSBS
ZW5hbWUgaW50ZXJmYWNlcyBhbmQgcmVtb3ZlIFtOb0ludGVyZmFjZU9iamVjdF0KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDg4NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYkdlb2xv
Y2F0aW9uUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0
aW9uOjpjcmVhdGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmg6
CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNvcmVQb3NpdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OldlYkdlb2xv
Y2F0aW9uUG9zaXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9u
UG9zaXRpb24uY3BwOgorICAgICAgICAoV0tHZW9sb2NhdGlvblBvc2l0aW9uQ3JlYXRlX2MpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6bGFzdFBvc2l0aW9uIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbToK
KyAgICAgICAgKC1bV0tMZWdhY3lDb3JlTG9jYXRpb25Qcm92aWRlciBwb3NpdGlvbkNoYW5nZWQ6
XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5n
ZVBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0
aW9uTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9j
YXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lmg6CisKIDIwMTktMDgtMjIgIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVd
IEZpeGVzIGZvciBub24tdW5pZmllZCBidWlsZHMgYWZ0ZXIgcjI0ODU0NwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9p
b3MvQ2hhbmdlTG9nCmluZGV4IDU1MWEwYjc3OWEwZTQ5MTI1MDEwNGY2NWM3ODk2Yzg2MjdiZDAz
NGIuLjk2MWFhODg5YjgyMTJmZTZmMDM3Y2Y1YzVjMzZlMzM1Y2IzYWRhY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L2lvcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wOC0yMiAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtnZW9sb2NhdGlvbl0gUmVuYW1lIGlu
dGVyZmFjZXMgYW5kIHJlbW92ZSBbTm9JbnRlcmZhY2VPYmplY3RdCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4ODUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pc2MvV2ViR2VvbG9jYXRpb25Db3Jl
TG9jYXRpb25Qcm92aWRlci5oOgorICAgICAgICAqIE1pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9j
YXRpb25Qcm92aWRlci5tbToKKyAgICAgICAgKC1bV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Q
cm92aWRlciBzZW5kTG9jYXRpb246XSk6CisgICAgICAgICogTWlzYy9XZWJHZW9sb2NhdGlvblBy
b3ZpZGVySU9TLm1tOgorICAgICAgICAoLVtfV2ViQ29yZUxvY2F0aW9uVXBkYXRlVGhyZWFkaW5n
UHJveHkgcG9zaXRpb25DaGFuZ2VkOl0pOgorCiAyMDE5LTA4LTE4ICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dURl0gQWRkIG1ha2VVbmlxdWU8VD4sIHdo
aWNoIGVuc3VyZXMgVCBpcyBmYXN0LWFsbG9jYXRlZCwgbWFrZVVuaXF1ZSAvIG1ha2VVbmlxdWVX
aXRob3V0RmFzdE1hbGxvY0NoZWNrIHBhcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRl
eCAzMTVjMWVhYTg5NDdjNGY0MWIwMjE2ZmFkZWJhYWVmYmE0M2RiNzYwLi45ZTA0YjVkZDI5NzNl
Y2RhMjczNmFhNjBjZTU2NTVhNjFjMmE4YmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMDgtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBbZ2VvbG9jYXRpb25dIFJlbmFtZSBpbnRlcmZhY2VzIGFuZCByZW1v
dmUgW05vSW50ZXJmYWNlT2JqZWN0XQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAwODg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tOgorICAgICAg
ICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbik6CisgICAgICAgICogV2ViVmll
dy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBv
c2l0aW9uSW50ZXJuYWwgaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjpdKToKKyAgICAg
ICAgKGNvcmUpOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBvc2l0aW9uIGluaXRXaXRoVGlt
ZXN0YW1wOmxhdGl0dWRlOmxvbmdpdHVkZTphY2N1cmFjeTpdKToKKyAgICAgICAgKC1bV2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbiBpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246XSk6CisgICAgICAg
ICogV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaDoKKwogMjAxOS0wOC0y
MSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFp
bF0gVGFwcGluZyB0b3Agb2YgbWVzc2FnZSBzY3JvbGxzIGJhY2sgdG8gY29waWVkIHRleHQgaW5z
dGVhZCBvZiB0b3Agb2YgdGhlIG1lc3NhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMGUyOTNk
MjUyOTNiMDNhZjZlZTFjZWUwM2M4ZjgwMzIxOTU3ZWVlOC4uYTViNjJmNDA4ZGZmM2IzMmYwNTAx
NjBhOWU1OTkxNWZjNDk4NGZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI2MSwxMiArMjYx
LDEyIEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlc3BvbnNlLmlkbAogICAgIE1vZHVsZXMvZmV0Y2gvV29ya2VyR2xvYmFsU2NvcGVGZXRj
aC5pZGwKIAotICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsCiAgICAgTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwKLSAgICBNb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb3Bvc2l0aW9uLmlkbAorICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29y
ZGluYXRlcy5pZGwKKyAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24u
aWRsCisgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRs
CiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwKICAgICBN
b2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaWRsCi0gICAgTW9kdWxlcy9nZW9s
b2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRp
b25FcnJvckNhbGxiYWNrLmlkbAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25PcHRp
b25zLmlkbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAppbmRleCBlNDA4M2RkOTBjNzcwNGNjMTVhMzYzYzJlNjI1MzlhZWViZTE0MTg3Li4zNTI2
ZmRhNmNjMjczOTI2MWU4YTIyYWNiMmM2OGNkNWRlMDI0ZjhmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTk5LDYgKzk5LDkgQEAgJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRFdmVudC5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaWRsCiskKFBST0pFQ1RfRElSKS9N
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA5MDZjMzE0
NTM3ODA1NGYzZDAxN2RmYmVlNDFkYzZhMmY4MDYyZTY0Li5lYjczM2ZmNzBiOTZiODYyYzAyNTBl
YTg1NjJkNTQzNDE4NjZhNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNjU1LDYgKzY1NSwxMiBAQCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dhbWVwYWRXZWJWUi5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2FtZXBhZFdlYlZSLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb24u
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xv
Y2F0aW9uLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
R2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb25Db29yZGluYXRlcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uUG9zaXRpb24uY3Bw
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0
aW9uUG9zaXRpb24uaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb3Bvc2l0aW9uLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHZW9wb3Np
dGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dl
c3R1cmVFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDQ2NGMxM2Yy
NjE0MDIzNjljNDA1Y2Y3MTUxMzBmN2YwODM3NmU2ZTYuLjBjMjhiNjU3Yjg1NjY2MDEwZGZjODA0
NWI1MjRiNjAwOThkMGIwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTcx
LDEyICsxNzEsMTIgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9nYW1lcGFkL0dhbWVwYWRCdXR0b24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2Ft
ZXBhZC9HYW1lcGFkRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2FtZXBhZC9O
YXZpZ2F0b3JHYW1lcGFkLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0Nvb3JkaW5hdGVzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bv
c2l0aW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uQ29vcmRpbmF0ZXMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb25Qb3NpdGlvbi5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwgXAotICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5pZGwg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKaW5kZXggN2I4MjgwZWJkMDI0ZjM0Y2M2NzExMmZmMDAxNzFlNjkx
YWZlN2QyZS4uNWQ5NjE2YTQ1NjI2ZjU1NmMwMDE2ZTJhMzQyNGQ0ZjRlOTA0MjQ2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCkBAIC0yNSwxNSArMjUsMTUgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuaAogICAgIE1vZHVs
ZXMvZmV0Y2gvRmV0Y2hMb2FkZXJDbGllbnQuaAogCi0gICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9D
b29yZGluYXRlcy5oCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCiAgICAg
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNsaWVudC5oCiAgICAgTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAorICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb25Db29yZGluYXRlcy5oCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvbkVycm9yLmgKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24u
aAotICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaAorICAgIE1vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaAorICAgIE1vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmgKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bv
c2l0aW9uQ2FsbGJhY2suaAotICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5o
CiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaAogICAgIE1v
ZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25PcHRpb25zLmgKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOWNlYmRmYzBmNjVhOGZiODEwMjQzZTEyN2VkNzk2NzU4NDJmNTBjYi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDb29yZGluYXRlcy5oIgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUNvb3JkaW5hdGVzOjpDb29yZGluYXRlcyhHZW9sb2NhdGlv
blBvc2l0aW9uJiYgcG9zaXRpb24pCi0gICAgOiBtX3Bvc2l0aW9uKFdURk1vdmUocG9zaXRpb24p
KQotewotICAgIEFTU0VSVChtX3Bvc2l0aW9uLmlzVmFsaWQoKSk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vQ29vcmRpbmF0ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29v
cmRpbmF0ZXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmQ1MTgyODJhZWNkNTFm
NjFkZTZiNTYwOTYzMWRjYzUzM2VmODUzZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3Jk
aW5hdGVzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNs
dWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCi0jaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Ci0j
aW5jbHVkZSA8d3RmL1JlZi5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ29vcmRpbmF0ZXMgOiBwdWJsaWMgUmVmQ291bnRlZDxD
b29yZGluYXRlcz4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q29vcmRpbmF0ZXM+IGNyZWF0
ZShHZW9sb2NhdGlvblBvc2l0aW9uJiYgcG9zaXRpb24pCi0gICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDb29yZGluYXRlcyhXVEZNb3ZlKHBvc2l0aW9uKSkpOwotICAgIH0KLQot
ICAgIFJlZjxDb29yZGluYXRlcz4gaXNvbGF0ZWRDb3B5KCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IHJldHVybiBDb29yZGluYXRlczo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb24obV9wb3NpdGlv
bikpOwotICAgIH0KLQotICAgIGRvdWJsZSBsYXRpdHVkZSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9z
aXRpb24ubGF0aXR1ZGU7IH0KLSAgICBkb3VibGUgbG9uZ2l0dWRlKCkgY29uc3QgeyByZXR1cm4g
bV9wb3NpdGlvbi5sb25naXR1ZGU7IH0KLSAgICBPcHRpb25hbDxkb3VibGU+IGFsdGl0dWRlKCkg
Y29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5hbHRpdHVkZTsgfQotICAgIGRvdWJsZSBhY2N1cmFj
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24uYWNjdXJhY3k7IH0KLSAgICBPcHRpb25hbDxk
b3VibGU+IGFsdGl0dWRlQWNjdXJhY3koKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uLmFsdGl0
dWRlQWNjdXJhY3k7IH0KLSAgICBPcHRpb25hbDxkb3VibGU+IGhlYWRpbmcoKSBjb25zdCB7IHJl
dHVybiBtX3Bvc2l0aW9uLmhlYWRpbmc7IH0KLSAgICBPcHRpb25hbDxkb3VibGU+IHNwZWVkKCkg
Y29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5zcGVlZDsgfQotICAgIE9wdGlvbmFsPGRvdWJsZT4g
Zmxvb3JMZXZlbCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24uZmxvb3JMZXZlbDsgfQotICAg
IAotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBDb29yZGluYXRlcyhHZW9sb2NhdGlvblBvc2l0aW9u
JiYpOwotCi0gICAgR2VvbG9jYXRpb25Qb3NpdGlvbiBtX3Bvc2l0aW9uOwotfTsKLSAgICAKLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Db29yZGluYXRlcy5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJm
NWNlZmIwZmMwMzdhY2ZiOTZmMTZjYzRmMjE0MmFjMzYzYzk3MGEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Db29yZGluYXRlcy5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLVsKLSAgICBOb0lu
dGVyZmFjZU9iamVjdCwKLSAgICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwKLSAgICBJbXBsZW1l
bnRhdGlvbkxhY2tzVlRhYmxlCi1dIGludGVyZmFjZSBDb29yZGluYXRlcyB7Ci0gICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbGF0aXR1ZGU7Ci0gICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbG9uZ2l0dWRlOwotICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlPyBhbHRpdHVkZTsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBhY2N1cmFjeTsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gYWx0aXR1ZGVBY2N1cmFjeTsKLSAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gaGVhZGluZzsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gc3BlZWQ7Ci0gICAgW0VuYWJsZWRCeVNldHRpbmc9
R2VvbG9jYXRpb25GbG9vckxldmVsXSByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZT8gZmxvb3JMZXZlbDsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvTm90aWZpZXIuY3BwCmluZGV4IDc3ZWJmMzQyMWM5MmYzMDY4ODk1NDIyOWM1
YjMzZWU3YjBiNDMzNDAuLjcwZjg5NjIxZmNmODUyNzJkZDk1ZDg4OWU3MGE3M2U1YTg5MjAwMDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZp
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZp
ZXIuY3BwCkBAIC00NCw3ICs0NCw3IEBAIEdlb05vdGlmaWVyOjpHZW9Ob3RpZmllcihHZW9sb2Nh
dGlvbiYgZ2VvbG9jYXRpb24sIFJlZjxQb3NpdGlvbkNhbGxiYWNrPiYmIHN1Y2NlCiB7CiB9CiAK
LXZvaWQgR2VvTm90aWZpZXI6OnNldEZhdGFsRXJyb3IoUmVmUHRyPFBvc2l0aW9uRXJyb3I+JiYg
ZXJyb3IpCit2b2lkIEdlb05vdGlmaWVyOjpzZXRGYXRhbEVycm9yKFJlZlB0cjxHZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3I+JiYgZXJyb3IpCiB7CiAgICAgLy8gSWYgYSBmYXRhbCBlcnJvciBoYXMg
YWxyZWFkeSBiZWVuIHNldCwgc3RpY2sgd2l0aCBpdC4gVGhpcyBtYWtlcyBzdXJlIHRoYXQKICAg
ICAvLyB3aGVuIHBlcm1pc3Npb24gaXMgZGVuaWVkLCB0aGlzIGlzIHRoZSBlcnJvciByZXBvcnRl
ZCwgYXMgcmVxdWlyZWQgYnkgdGhlCkBAIC02OSw3ICs2OSw3IEBAIGJvb2wgR2VvTm90aWZpZXI6
Omhhc1plcm9UaW1lb3V0KCkgY29uc3QKICAgICByZXR1cm4gIW1fb3B0aW9ucy50aW1lb3V0Owog
fQogCi12b2lkIEdlb05vdGlmaWVyOjpydW5TdWNjZXNzQ2FsbGJhY2soR2VvcG9zaXRpb24qIHBv
c2l0aW9uKQordm9pZCBHZW9Ob3RpZmllcjo6cnVuU3VjY2Vzc0NhbGxiYWNrKEdlb2xvY2F0aW9u
UG9zaXRpb24qIHBvc2l0aW9uKQogewogICAgIC8vIElmIHdlIGFyZSBoZXJlIGFuZCB0aGUgR2Vv
bG9jYXRpb24gcGVybWlzc2lvbiBpcyBub3QgYXBwcm92ZWQsIHNvbWV0aGluZyBoYXMKICAgICAv
LyBnb25lIGhvcnJpYmx5IHdyb25nLgpAQCAtNzksNyArNzksNyBAQCB2b2lkIEdlb05vdGlmaWVy
OjpydW5TdWNjZXNzQ2FsbGJhY2soR2VvcG9zaXRpb24qIHBvc2l0aW9uKQogICAgIG1fc3VjY2Vz
c0NhbGxiYWNrLT5oYW5kbGVFdmVudChwb3NpdGlvbik7CiB9CiAKLXZvaWQgR2VvTm90aWZpZXI6
OnJ1bkVycm9yQ2FsbGJhY2soUG9zaXRpb25FcnJvciYgZXJyb3IpCit2b2lkIEdlb05vdGlmaWVy
OjpydW5FcnJvckNhbGxiYWNrKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciYgZXJyb3IpCiB7CiAg
ICAgaWYgKG1fZXJyb3JDYWxsYmFjaykKICAgICAgICAgbV9lcnJvckNhbGxiYWNrLT5oYW5kbGVF
dmVudChlcnJvcik7CkBAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBHZW9Ob3RpZmllcjo6dGltZXJG
aXJlZCgpCiAgICAgfQogICAgIAogICAgIGlmIChtX2Vycm9yQ2FsbGJhY2spIHsKLSAgICAgICAg
YXV0byBlcnJvciA9IFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpUSU1FT1VU
LCAiVGltZW91dCBleHBpcmVkIl9zKTsKKyAgICAgICAgYXV0byBlcnJvciA9IEdlb2xvY2F0aW9u
UG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6VElNRU9VVCwg
IlRpbWVvdXQgZXhwaXJlZCJfcyk7CiAgICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZl
bnQoZXJyb3IpOwogICAgIH0KICAgICBtX2dlb2xvY2F0aW9uLT5yZXF1ZXN0VGltZWRPdXQodGhp
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05v
dGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVy
LmgKaW5kZXggZmIzMmNlOGQ5YmZkMjk4YmM2NTFiMWUyMjU5ODc0ZWIwMmQxNjIyYy4uZGI5MTNl
ZjkwYzE0OTVlMzk2OWZkZDk5YjA0YmZhMDkwNDc0OGNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9Ob3RpZmllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZpZXIuaApAQCAtMzYsMTAgKzM2LDEwIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR2VvcG9zaXRpb247CiBjbGFzcyBHZW9s
b2NhdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBv
c2l0aW9uRXJyb3I7CiBjbGFzcyBQb3NpdGlvbkNhbGxiYWNrOwotY2xhc3MgUG9zaXRpb25FcnJv
cjsKIGNsYXNzIFBvc2l0aW9uRXJyb3JDYWxsYmFjazsKIAogY2xhc3MgR2VvTm90aWZpZXIgOiBw
dWJsaWMgUmVmQ291bnRlZDxHZW9Ob3RpZmllcj4gewpAQCAtNTAsMTMgKzUwLDEzIEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICBjb25zdCBQb3NpdGlvbk9wdGlvbnMmIG9wdGlvbnMoKSBjb25zdCB7
IHJldHVybiBtX29wdGlvbnM7IH0KLSAgICB2b2lkIHNldEZhdGFsRXJyb3IoUmVmUHRyPFBvc2l0
aW9uRXJyb3I+JiYpOworICAgIHZvaWQgc2V0RmF0YWxFcnJvcihSZWZQdHI8R2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yPiYmKTsKIAogICAgIGJvb2wgdXNlQ2FjaGVkUG9zaXRpb24oKSBjb25zdCB7
IHJldHVybiBtX3VzZUNhY2hlZFBvc2l0aW9uOyB9CiAgICAgdm9pZCBzZXRVc2VDYWNoZWRQb3Np
dGlvbigpOwogCi0gICAgdm9pZCBydW5TdWNjZXNzQ2FsbGJhY2soR2VvcG9zaXRpb24qKTsgLy8g
RklYTUU6IFRoaXMgc2hvdWxkIHRha2UgYSByZWZlcmVuY2UuCi0gICAgdm9pZCBydW5FcnJvckNh
bGxiYWNrKFBvc2l0aW9uRXJyb3ImKTsKKyAgICB2b2lkIHJ1blN1Y2Nlc3NDYWxsYmFjayhHZW9s
b2NhdGlvblBvc2l0aW9uKik7IC8vIEZJWE1FOiBUaGlzIHNob3VsZCB0YWtlIGEgcmVmZXJlbmNl
LgorICAgIHZvaWQgcnVuRXJyb3JDYWxsYmFjayhHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImKTsK
IAogICAgIHZvaWQgc3RhcnRUaW1lcklmTmVlZGVkKCk7CiAgICAgdm9pZCBzdG9wVGltZXIoKTsK
QEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxi
YWNrPiBtX2Vycm9yQ2FsbGJhY2s7CiAgICAgUG9zaXRpb25PcHRpb25zIG1fb3B0aW9uczsKICAg
ICBUaW1lciBtX3RpbWVyOwotICAgIFJlZlB0cjxQb3NpdGlvbkVycm9yPiBtX2ZhdGFsRXJyb3I7
CisgICAgUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gbV9mYXRhbEVycm9yOwogICAg
IGJvb2wgbV91c2VDYWNoZWRQb3NpdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKaW5kZXggZTI2OTFmNTk3ZmU3M2Nj
YmU4NWJiZGU4ZTkzNGY3ZmFlZmU4MmZiZS4uZjEyZTE0OTBmZDg3ZDdiN2IyNzExZTQyYzZiYWY1
NDk4YTk5MGE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAKQEAgLTMwLDE3ICszMCwxNiBAQAogCiAjaWYgRU5BQkxFKEdFT0xP
Q0FUSU9OKQogCi0jaW5jbHVkZSAiQ29vcmRpbmF0ZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiR2VvTm90aWZpZXIuaCIKICNpbmNsdWRl
ICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkNvb3JkaW5h
dGVzLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25FcnJvci5oIgogI2luY2x1ZGUgIkdlb2xvY2F0
aW9uUG9zaXRpb24uaCIKLSNpbmNsdWRlICJHZW9wb3NpdGlvbi5oIgorI2luY2x1ZGUgIkdlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgotI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKICNpbmNsdWRlICJSdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC01NiwyOCArNTUsMjggQEAgc3RhdGljIGNvbnN0
IEFTQ0lJTGl0ZXJhbCBvcmlnaW5DYW5ub3RSZXF1ZXN0R2VvbG9jYXRpb25FcnJvck1lc3NhZ2Ug
eyAiT3JpZ2luIGQKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEdlb2xvY2F0aW9uKTsK
IAotc3RhdGljIFJlZlB0cjxHZW9wb3NpdGlvbj4gY3JlYXRlR2VvcG9zaXRpb24oT3B0aW9uYWw8
R2VvbG9jYXRpb25Qb3NpdGlvbj4mJiBwb3NpdGlvbikKK3N0YXRpYyBSZWZQdHI8R2VvbG9jYXRp
b25Qb3NpdGlvbj4gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbihPcHRpb25hbDxHZW9sb2NhdGlv
blBvc2l0aW9uRGF0YT4mJiBwb3NpdGlvbikKIHsKICAgICBpZiAoIXBvc2l0aW9uKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBET01UaW1lU3RhbXAgdGltZXN0YW1wID0gY29u
dmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcChwb3NpdGlvbi0+dGltZXN0YW1wKTsKLSAgICByZXR1
cm4gR2VvcG9zaXRpb246OmNyZWF0ZShDb29yZGluYXRlczo6Y3JlYXRlKFdURk1vdmUocG9zaXRp
b24udmFsdWUoKSkpLCB0aW1lc3RhbXApOworICAgIHJldHVybiBHZW9sb2NhdGlvblBvc2l0aW9u
OjpjcmVhdGUoR2VvbG9jYXRpb25Db29yZGluYXRlczo6Y3JlYXRlKFdURk1vdmUocG9zaXRpb24u
dmFsdWUoKSkpLCB0aW1lc3RhbXApOwogfQogCi1zdGF0aWMgUmVmPFBvc2l0aW9uRXJyb3I+IGNy
ZWF0ZVBvc2l0aW9uRXJyb3IoR2VvbG9jYXRpb25FcnJvciYgZXJyb3IpCitzdGF0aWMgUmVmPEdl
b2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKEdl
b2xvY2F0aW9uRXJyb3ImIGVycm9yKQogewotICAgIFBvc2l0aW9uRXJyb3I6OkVycm9yQ29kZSBj
b2RlID0gUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEU7CisgICAgYXV0byBjb2Rl
ID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRTsKICAgICBz
d2l0Y2ggKGVycm9yLmNvZGUoKSkgewogICAgIGNhc2UgR2VvbG9jYXRpb25FcnJvcjo6UGVybWlz
c2lvbkRlbmllZDoKLSAgICAgICAgY29kZSA9IFBvc2l0aW9uRXJyb3I6OlBFUk1JU1NJT05fREVO
SUVEOworICAgICAgICBjb2RlID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9O
X0RFTklFRDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHZW9sb2NhdGlvbkVycm9yOjpQb3Np
dGlvblVuYXZhaWxhYmxlOgotICAgICAgICBjb2RlID0gUG9zaXRpb25FcnJvcjo6UE9TSVRJT05f
VU5BVkFJTEFCTEU7CisgICAgICAgIGNvZGUgPSBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBP
U0lUSU9OX1VOQVZBSUxBQkxFOwogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICByZXR1cm4g
UG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIGVycm9yLm1lc3NhZ2UoKSk7CisgICAgcmV0dXJu
IEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIGVycm9yLm1lc3NhZ2UoKSk7
CiB9CiAKIGJvb2wgR2VvbG9jYXRpb246OldhdGNoZXJzOjphZGQoaW50IGlkLCBSZWZQdHI8R2Vv
Tm90aWZpZXI+JiYgbm90aWZpZXIpCkBAIC0yOTAsMTMgKzI4OSwxMyBAQCBjb25zdCBjaGFyKiBH
ZW9sb2NhdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJHZW9s
b2NhdGlvbiI7CiB9CiAKLUdlb3Bvc2l0aW9uKiBHZW9sb2NhdGlvbjo6bGFzdFBvc2l0aW9uKCkK
K0dlb2xvY2F0aW9uUG9zaXRpb24qIEdlb2xvY2F0aW9uOjpsYXN0UG9zaXRpb24oKQogewogICAg
IFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAotICAgIG1fbGFzdFBvc2l0aW9uID0gY3JlYXRlR2VvcG9zaXRpb24oR2Vv
bG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5sYXN0UG9zaXRpb24oKSk7CisgICAgbV9s
YXN0UG9zaXRpb24gPSBjcmVhdGVHZW9sb2NhdGlvblBvc2l0aW9uKEdlb2xvY2F0aW9uQ29udHJv
bGxlcjo6ZnJvbShwYWdlKS0+bGFzdFBvc2l0aW9uKCkpOwogCiAgICAgcmV0dXJuIG1fbGFzdFBv
c2l0aW9uLmdldCgpOwogfQpAQCAtMzczLDcgKzM3Miw3IEBAIGJvb2wgR2VvbG9jYXRpb246OnNo
b3VsZEJsb2NrR2VvbG9jYXRpb25SZXF1ZXN0cygpCiB2b2lkIEdlb2xvY2F0aW9uOjpzdGFydFJl
cXVlc3QoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogewogICAgIGlmIChzaG91bGRCbG9ja0dlb2xv
Y2F0aW9uUmVxdWVzdHMoKSkgewotICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihQb3Np
dGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIG9y
aWdpbkNhbm5vdFJlcXVlc3RHZW9sb2NhdGlvbkVycm9yTWVzc2FnZSkpOworICAgICAgICBub3Rp
Zmllci0+c2V0RmF0YWxFcnJvcihHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNyZWF0ZShHZW9s
b2NhdGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxFLCBvcmlnaW5DYW5ub3RS
ZXF1ZXN0R2VvbG9jYXRpb25FcnJvck1lc3NhZ2UpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICBkb2N1bWVudCgpLT5zZXRHZW9sb2NhdGlvbkFjY2Vzc2VkKCk7CkBAIC0zODEsNyArMzgw
LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RhcnRSZXF1ZXN0KEdlb05vdGlmaWVyKiBub3RpZmll
cikKICAgICAvLyBDaGVjayB3aGV0aGVyIHBlcm1pc3Npb25zIGhhdmUgYWxyZWFkeSBiZWVuIGRl
bmllZC4gTm90ZSB0aGF0IGlmIHRoaXMgaXMgdGhlIGNhc2UsCiAgICAgLy8gdGhlIHBlcm1pc3Np
b24gc3RhdGUgY2FuIG5vdCBjaGFuZ2UgYWdhaW4gaW4gdGhlIGxpZmV0aW1lIG9mIHRoaXMgcGFn
ZS4KICAgICBpZiAoaXNEZW5pZWQoKSkKLSAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3Io
UG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlBFUk1JU1NJT05fREVOSUVELCBw
ZXJtaXNzaW9uRGVuaWVkRXJyb3JNZXNzYWdlKSk7CisgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRh
bEVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRp
b25FcnJvcjo6UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2Up
KTsKICAgICBlbHNlIGlmIChoYXZlU3VpdGFibGVDYWNoZWRQb3NpdGlvbihub3RpZmllci0+b3B0
aW9ucygpKSkKICAgICAgICAgbm90aWZpZXItPnNldFVzZUNhY2hlZFBvc2l0aW9uKCk7CiAgICAg
ZWxzZSBpZiAobm90aWZpZXItPmhhc1plcm9UaW1lb3V0KCkpCkBAIC0zOTMsNyArMzkyLDcgQEAg
dm9pZCBHZW9sb2NhdGlvbjo6c3RhcnRSZXF1ZXN0KEdlb05vdGlmaWVyKiBub3RpZmllcikKICAg
ICB9IGVsc2UgaWYgKHN0YXJ0VXBkYXRpbmcobm90aWZpZXIpKQogICAgICAgICBub3RpZmllci0+
c3RhcnRUaW1lcklmTmVlZGVkKCk7CiAgICAgZWxzZQotICAgICAgICBub3RpZmllci0+c2V0RmF0
YWxFcnJvcihQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5B
VkFJTEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CisgICAgICAgIG5v
dGlmaWVyLT5zZXRGYXRhbEVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdl
b2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIGZhaWxlZFRvU3Rh
cnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CiB9CiAKIHZvaWQgR2VvbG9jYXRpb246OmZhdGFsRXJy
b3JPY2N1cnJlZChHZW9Ob3RpZmllciogbm90aWZpZXIpCkBAIC00MTEsNyArNDEwLDcgQEAgdm9p
ZCBHZW9sb2NhdGlvbjo6cmVxdWVzdFVzZXNDYWNoZWRQb3NpdGlvbihHZW9Ob3RpZmllciogbm90
aWZpZXIpCiAgICAgLy8gVGhpcyBpcyBjYWxsZWQgYXN5bmNocm9ub3VzbHksIHNvIHRoZSBwZXJt
aXNzaW9ucyBjb3VsZCBoYXZlIGJlZW4gZGVuaWVkCiAgICAgLy8gc2luY2Ugd2UgbGFzdCBjaGVj
a2VkIGluIHN0YXJ0UmVxdWVzdC4KICAgICBpZiAoaXNEZW5pZWQoKSkgewotICAgICAgICBub3Rp
Zmllci0+c2V0RmF0YWxFcnJvcihQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6
UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2UpKTsKKyAgICAg
ICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVh
dGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lv
bkRlbmllZEVycm9yTWVzc2FnZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00NDMs
NyArNDQyLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6bWFrZUNhY2hlZFBvc2l0aW9uQ2FsbGJhY2tz
KCkKICAgICAgICAgICAgIGlmIChub3RpZmllci0+aGFzWmVyb1RpbWVvdXQoKSB8fCBzdGFydFVw
ZGF0aW5nKG5vdGlmaWVyLmdldCgpKSkKICAgICAgICAgICAgICAgICBub3RpZmllci0+c3RhcnRU
aW1lcklmTmVlZGVkKCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbm90aWZp
ZXItPnNldEZhdGFsRXJyb3IoUG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlBP
U0lUSU9OX1VOQVZBSUxBQkxFLCBmYWlsZWRUb1N0YXJ0U2VydmljZUVycm9yTWVzc2FnZSkpOwor
ICAgICAgICAgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKEdlb2xvY2F0aW9uUG9zaXRp
b25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJ
TEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CiAgICAgICAgIH0KICAg
ICB9CiAKQEAgLTQ2NCw3ICs0NjMsNyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpyZXF1ZXN0VGltZWRP
dXQoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogCiBib29sIEdlb2xvY2F0aW9uOjpoYXZlU3VpdGFi
bGVDYWNoZWRQb3NpdGlvbihjb25zdCBQb3NpdGlvbk9wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAg
R2VvcG9zaXRpb24qIGNhY2hlZFBvc2l0aW9uID0gbGFzdFBvc2l0aW9uKCk7CisgICAgYXV0byog
Y2FjaGVkUG9zaXRpb24gPSBsYXN0UG9zaXRpb24oKTsKICAgICBpZiAoIWNhY2hlZFBvc2l0aW9u
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFvcHRpb25zLm1heGltdW1BZ2UpCkBA
IC01MDYsNyArNTA1LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c2V0SXNBbGxvd2VkKGJvb2wgYWxs
b3dlZCkKICAgICB9CiAKICAgICBpZiAoIWlzQWxsb3dlZCgpKSB7Ci0gICAgICAgIGF1dG8gZXJy
b3IgPSBQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UEVSTUlTU0lPTl9ERU5J
RUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2UpOworICAgICAgICBhdXRvIGVycm9yID0g
R2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9y
OjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZSk7CiAgICAg
ICAgIGVycm9yLT5zZXRJc0ZhdGFsKHRydWUpOwogICAgICAgICBoYW5kbGVFcnJvcihlcnJvcik7
CiAgICAgICAgIG1fcmVxdWVzdHNBd2FpdGluZ0NhY2hlZFBvc2l0aW9uLmNsZWFyKCk7CkBAIC01
MTgsMTkgKzUxNywxOSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpzZXRJc0FsbG93ZWQoYm9vbCBhbGxv
d2VkKQogICAgIC8vIElmIHRoZSBzZXJ2aWNlIGhhcyBhIGxhc3QgcG9zaXRpb24sIHVzZSBpdCB0
byBjYWxsIGJhY2sgZm9yIGFsbCByZXF1ZXN0cy4KICAgICAvLyBJZiBhbnkgb2YgdGhlIHJlcXVl
c3RzIGFyZSB3YWl0aW5nIGZvciBwZXJtaXNzaW9uIGZvciBhIGNhY2hlZCBwb3NpdGlvbiwKICAg
ICAvLyB0aGUgcG9zaXRpb24gZnJvbSB0aGUgc2VydmljZSB3aWxsIGJlIGF0IGxlYXN0IGFzIGZy
ZXNoLgotICAgIGlmIChSZWZQdHI8R2VvcG9zaXRpb24+IHBvc2l0aW9uID0gbGFzdFBvc2l0aW9u
KCkpCisgICAgaWYgKFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3NpdGlvbiA9IGxhc3RQ
b3NpdGlvbigpKQogICAgICAgICBtYWtlU3VjY2Vzc0NhbGxiYWNrcygqcG9zaXRpb24pOwogICAg
IGVsc2UKICAgICAgICAgbWFrZUNhY2hlZFBvc2l0aW9uQ2FsbGJhY2tzKCk7CiB9CiAKLXZvaWQg
R2VvbG9jYXRpb246OnNlbmRFcnJvcihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZpZXJzLCBQb3Np
dGlvbkVycm9yJiBlcnJvcikKK3ZvaWQgR2VvbG9jYXRpb246OnNlbmRFcnJvcihHZW9Ob3RpZmll
clZlY3RvciYgbm90aWZpZXJzLCBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImIGVycm9yKQogewog
ICAgIGZvciAoYXV0byYgbm90aWZpZXIgOiBub3RpZmllcnMpCiAgICAgICAgIG5vdGlmaWVyLT5y
dW5FcnJvckNhbGxiYWNrKGVycm9yKTsKIH0KIAotdm9pZCBHZW9sb2NhdGlvbjo6c2VuZFBvc2l0
aW9uKEdlb05vdGlmaWVyVmVjdG9yJiBub3RpZmllcnMsIEdlb3Bvc2l0aW9uJiBwb3NpdGlvbikK
K3ZvaWQgR2VvbG9jYXRpb246OnNlbmRQb3NpdGlvbihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZp
ZXJzLCBHZW9sb2NhdGlvblBvc2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBmb3IgKGF1dG8mIG5v
dGlmaWVyIDogbm90aWZpZXJzKQogICAgICAgICBub3RpZmllci0+cnVuU3VjY2Vzc0NhbGxiYWNr
KCZwb3NpdGlvbik7CkBAIC01NjUsNyArNTY0LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RvcFRp
bWVycygpCiB2b2lkIEdlb2xvY2F0aW9uOjpjYW5jZWxSZXF1ZXN0cyhHZW9Ob3RpZmllclZlY3Rv
ciYgbm90aWZpZXJzKQogewogICAgIGZvciAoYXV0byYgbm90aWZpZXIgOiBub3RpZmllcnMpCi0g
ICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3Np
dGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgZnJhbWVsZXNzRG9jdW1lbnRFcnJvck1l
c3NhZ2UpKTsKKyAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Qb3Np
dGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFW
QUlMQUJMRSwgZnJhbWVsZXNzRG9jdW1lbnRFcnJvck1lc3NhZ2UpKTsKIH0KIAogdm9pZCBHZW9s
b2NhdGlvbjo6Y2FuY2VsQWxsUmVxdWVzdHMoKQpAQCAtNTk1LDcgKzU5NCw3IEBAIHZvaWQgR2Vv
bG9jYXRpb246OmNvcHlUb1NldChjb25zdCBHZW9Ob3RpZmllclZlY3RvciYgc3JjLCBHZW9Ob3Rp
ZmllclNldCYgZGVzdCkKICAgICAgICAgZGVzdC5hZGQobm90aWZpZXIuZ2V0KCkpOwogfQogCi12
b2lkIEdlb2xvY2F0aW9uOjpoYW5kbGVFcnJvcihQb3NpdGlvbkVycm9yJiBlcnJvcikKK3ZvaWQg
R2VvbG9jYXRpb246OmhhbmRsZUVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciYgZXJyb3Ip
CiB7CiAgICAgYXV0byBvbmVTaG90c0NvcHkgPSBjb3B5VG9WZWN0b3IobV9vbmVTaG90cyk7CiAK
QEAgLTY0Myw3ICs2NDIsNyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lvbigp
CiAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5yZXF1ZXN0UGVybWlzc2lv
bigqdGhpcyk7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb246Om1ha2VTdWNjZXNzQ2FsbGJhY2tzKEdl
b3Bvc2l0aW9uJiBwb3NpdGlvbikKK3ZvaWQgR2VvbG9jYXRpb246Om1ha2VTdWNjZXNzQ2FsbGJh
Y2tzKEdlb2xvY2F0aW9uUG9zaXRpb24mIHBvc2l0aW9uKQogewogICAgIEFTU0VSVChsYXN0UG9z
aXRpb24oKSk7CiAgICAgQVNTRVJUKGlzQWxsb3dlZCgpKTsKQEAgLTY3Nyw3ICs2NzYsNyBAQCB2
b2lkIEdlb2xvY2F0aW9uOjpwb3NpdGlvbkNoYW5nZWQoKQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgUmVmUHRyPEdlb3Bvc2l0aW9uPiBwb3NpdGlvbiA9IGxhc3RQb3NpdGlvbigpOwor
ICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3NpdGlvbiA9IGxhc3RQb3NpdGlvbigp
OwogICAgIEFTU0VSVChwb3NpdGlvbik7CiAKICAgICBtYWtlU3VjY2Vzc0NhbGxiYWNrcygqcG9z
aXRpb24pOwpAQCAtNjg2LDExICs2ODUsMTEgQEAgdm9pZCBHZW9sb2NhdGlvbjo6cG9zaXRpb25D
aGFuZ2VkKCkKIHZvaWQgR2VvbG9jYXRpb246OnNldEVycm9yKEdlb2xvY2F0aW9uRXJyb3ImIGVy
cm9yKQogewogICAgIGlmIChtX2lzU3VzcGVuZGVkKSB7Ci0gICAgICAgIG1fZXJyb3JXYWl0aW5n
Rm9yUmVzdW1lID0gY3JlYXRlUG9zaXRpb25FcnJvcihlcnJvcik7CisgICAgICAgIG1fZXJyb3JX
YWl0aW5nRm9yUmVzdW1lID0gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKGVycm9yKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcG9zaXRpb25FcnJvciA9IGNyZWF0
ZVBvc2l0aW9uRXJyb3IoZXJyb3IpOworICAgIGF1dG8gcG9zaXRpb25FcnJvciA9IGNyZWF0ZUdl
b2xvY2F0aW9uUG9zaXRpb25FcnJvcihlcnJvcik7CiAgICAgaGFuZGxlRXJyb3IocG9zaXRpb25F
cnJvcik7CiB9CiAKQEAgLTcyNCw5ICs3MjMsOSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpoYW5kbGVQ
ZW5kaW5nUGVybWlzc2lvbk5vdGlmaWVycygpCiAgICAgICAgICAgICBpZiAoc3RhcnRVcGRhdGlu
Zyhub3RpZmllci5nZXQoKSkpCiAgICAgICAgICAgICAgICAgbm90aWZpZXItPnN0YXJ0VGltZXJJ
Zk5lZWRlZCgpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG5vdGlmaWVyLT5z
ZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQT1NJVElP
Tl9VTkFWQUlMQUJMRSwgZmFpbGVkVG9TdGFydFNlcnZpY2VFcnJvck1lc3NhZ2UpKTsKKyAgICAg
ICAgICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihHZW9sb2NhdGlvblBvc2l0aW9uRXJy
b3I6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxF
LCBmYWlsZWRUb1N0YXJ0U2VydmljZUVycm9yTWVzc2FnZSkpOwogICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQ
b3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVz
c2FnZSkpOworICAgICAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9O
X0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZSkpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCmluZGV4
IDJhMDE5OGVlY2RjNWJkNTM0YWZhNzk5MGMyMTE0ZDAyNTM5YjBjNTguLjQ2MGM5MTIxODRiZDEw
ZWZhZmMwZjAyYzAyMmViZDZkMjc1OGQwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgKQEAgLTMwLDkgKzMwLDkgQEAKIAogI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAi
R2VvcG9zaXRpb24uaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCisjaW5jbHVk
ZSAiR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmgiCiAjaW5jbHVkZSAiUG9zaXRpb25DYWxsYmFj
ay5oIgotI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKICNpbmNsdWRlICJQb3NpdGlvbkVycm9y
Q2FsbGJhY2suaCIKICNpbmNsdWRlICJQb3NpdGlvbk9wdGlvbnMuaCIKICNpbmNsdWRlICJTY3Jp
cHRXcmFwcGFibGUuaCIKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBHZW9sb2NhdGlvbihOYXZpZ2F0b3ImKTsKIAotICAgIEdlb3Bvc2l0aW9uKiBsYXN0
UG9zaXRpb24oKTsKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uKiBsYXN0UG9zaXRpb24oKTsKIAog
ICAgIC8vIEFjdGl2ZURPTU9iamVjdAogICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwpAQCAtMTE1
LDggKzExNSw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIGhhc0xpc3RlbmVycygpIGNvbnN0IHsg
cmV0dXJuICFtX29uZVNob3RzLmlzRW1wdHkoKSB8fCAhbV93YXRjaGVycy5pc0VtcHR5KCk7IH0K
IAotICAgIHZvaWQgc2VuZEVycm9yKEdlb05vdGlmaWVyVmVjdG9yJiwgUG9zaXRpb25FcnJvciYp
OwotICAgIHZvaWQgc2VuZFBvc2l0aW9uKEdlb05vdGlmaWVyVmVjdG9yJiwgR2VvcG9zaXRpb24m
KTsKKyAgICB2b2lkIHNlbmRFcnJvcihHZW9Ob3RpZmllclZlY3RvciYsIEdlb2xvY2F0aW9uUG9z
aXRpb25FcnJvciYpOworICAgIHZvaWQgc2VuZFBvc2l0aW9uKEdlb05vdGlmaWVyVmVjdG9yJiwg
R2VvbG9jYXRpb25Qb3NpdGlvbiYpOwogCiAgICAgc3RhdGljIHZvaWQgZXh0cmFjdE5vdGlmaWVy
c1dpdGhDYWNoZWRQb3NpdGlvbihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZpZXJzLCBHZW9Ob3Rp
ZmllclZlY3RvciogY2FjaGVkKTsKICAgICBzdGF0aWMgdm9pZCBjb3B5VG9TZXQoY29uc3QgR2Vv
Tm90aWZpZXJWZWN0b3ImLCBHZW9Ob3RpZmllclNldCYpOwpAQCAtMTI5LDggKzEyOSw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBjYW5jZWxSZXF1ZXN0cyhHZW9Ob3RpZmllclZlY3RvciYpOwogICAg
IHZvaWQgY2FuY2VsQWxsUmVxdWVzdHMoKTsKIAotICAgIHZvaWQgbWFrZVN1Y2Nlc3NDYWxsYmFj
a3MoR2VvcG9zaXRpb24mKTsKLSAgICB2b2lkIGhhbmRsZUVycm9yKFBvc2l0aW9uRXJyb3ImKTsK
KyAgICB2b2lkIG1ha2VTdWNjZXNzQ2FsbGJhY2tzKEdlb2xvY2F0aW9uUG9zaXRpb24mKTsKKyAg
ICB2b2lkIGhhbmRsZUVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciYpOwogCiAgICAgdm9p
ZCByZXF1ZXN0UGVybWlzc2lvbigpOwogCkBAIC0xNTMsMTMgKzE1MywxMyBAQCBwcml2YXRlOgog
ICAgIEdlb05vdGlmaWVyU2V0IG1fb25lU2hvdHM7CiAgICAgV2F0Y2hlcnMgbV93YXRjaGVyczsK
ICAgICBHZW9Ob3RpZmllclNldCBtX3BlbmRpbmdGb3JQZXJtaXNzaW9uTm90aWZpZXJzOwotICAg
IFJlZlB0cjxHZW9wb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247CisgICAgUmVmUHRyPEdlb2xvY2F0
aW9uUG9zaXRpb24+IG1fbGFzdFBvc2l0aW9uOwogCiAgICAgZW51bSB7IFVua25vd24sIEluUHJv
Z3Jlc3MsIFllcywgTm8gfSBtX2FsbG93R2VvbG9jYXRpb24geyBVbmtub3duIH07CiAgICAgYm9v
bCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVzZXRPblJlc3VtZSB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2hhc0NoYW5nZWRQb3NpdGlvbiB7IGZhbHNlIH07Ci0gICAgUmVm
UHRyPFBvc2l0aW9uRXJyb3I+IG1fZXJyb3JXYWl0aW5nRm9yUmVzdW1lOworICAgIFJlZlB0cjxH
ZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I+IG1fZXJyb3JXYWl0aW5nRm9yUmVzdW1lOwogICAgIFRp
bWVyIG1fcmVzdW1lVGltZXI7CiAgICAgR2VvTm90aWZpZXJTZXQgbV9yZXF1ZXN0c0F3YWl0aW5n
Q2FjaGVkUG9zaXRpb247CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmlkbAppbmRleCBmNTczZDE2ZDY5ODBjODc2ZjU3YmYwOGExZjVj
ZDEzNjc2OGU5N2EzLi5lZGFkZDNhNWUyMTk5ZTkzZTFjOTE4YWU3OWY2MDI4OTA1ZjljNDFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmlkbApAQCAtMjUsNyArMjUsNiBAQAogCiAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9nZW9sb2Nh
dGlvbi1BUEkvI2dlb2xvY2F0aW9uX2ludGVyZmFjZQogWwotICAgIE5vSW50ZXJmYWNlT2JqZWN0
LAogICAgIENvbmRpdGlvbmFsPUdFT0xPQ0FUSU9OLCAKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxl
PVJlYWNoYWJsZUZyb21OYXZpZ2F0b3IsCiBdIGludGVyZmFjZSBHZW9sb2NhdGlvbiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xp
ZW50LmgKaW5kZXggZTdlMGU3NmQ0MGZjNTVkMmZjNGI0ZWY1MjdjMzI0OTczNDFlMzkzOS4uMjk3
MDNmYmI3YmEzYjhiNjMyNzk5ZDdjOTI3ZDFmMWUyNWQ2YmMwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25DbGllbnQuaApAQCAt
MzAsNyArMzAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHZW9sb2NhdGlvbjsK
LWNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YTsKIGNsYXNzIFBhZ2U7CiAKIGNsYXNzIEdlb2xvY2F0aW9uQ2xpZW50IHsKQEAgLTQ0LDcgKzQ0
LDcgQEAgcHVibGljOgogICAgIC8vIFdlIHNob3VsZCB1cGRhdGUgV2ViS2l0IHRvIHJlZmxlY3Qg
dGhpcyBpZiBhbmQgd2hlbiB0aGUgVjIgc3BlY2lmaWNhdGlvbgogICAgIC8vIGlzIHB1Ymxpc2hl
ZC4KICAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpID0gMDsKLSAg
ICB2aXJ0dWFsIE9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+IGxhc3RQb3NpdGlvbigpID0g
MDsKKyAgICB2aXJ0dWFsIE9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBsYXN0UG9z
aXRpb24oKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oR2VvbG9j
YXRpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KEdl
b2xvY2F0aW9uJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IGNkODA3MGIyMDdk
YjhhMzQ0MDI2Y2ZmNjEwNWI4NWVlMTliYzUyNGMuLmM2YTI4MmZjZTkzNzA1YmQ3NjExMGQ0YTE3
NmNjZTVmNDNkNDNlMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKQEAgLTMwLDcgKzMwLDcg
QEAKIAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRp
b25FcnJvci5oIgotI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKKyNpbmNsdWRlICJH
ZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk5
LDcgKzk5LDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmNhbmNlbFBlcm1pc3Npb25S
ZXF1ZXN0KEdlb2xvY2F0aW9uJiBnZW9sb2NhdGlvbikKICAgICBtX2NsaWVudC5jYW5jZWxQZXJt
aXNzaW9uUmVxdWVzdChnZW9sb2NhdGlvbik7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb25Db250cm9s
bGVyOjpwb3NpdGlvbkNoYW5nZWQoY29uc3QgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4m
IHBvc2l0aW9uKQordm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OnBvc2l0aW9uQ2hhbmdlZChj
b25zdCBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4mIHBvc2l0aW9uKQogewogICAg
IG1fbGFzdFBvc2l0aW9uID0gcG9zaXRpb247CiAgICAgVmVjdG9yPFJlZjxHZW9sb2NhdGlvbj4+
IG9ic2VydmVyc1ZlY3RvcjsKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIEdlb2xvY2F0aW9uQ29u
dHJvbGxlcjo6ZXJyb3JPY2N1cnJlZChHZW9sb2NhdGlvbkVycm9yJiBlcnJvcikKICAgICAgICAg
b2JzZXJ2ZXItPnNldEVycm9yKGVycm9yKTsKIH0KIAotT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3Np
dGlvbj4gR2VvbG9jYXRpb25Db250cm9sbGVyOjpsYXN0UG9zaXRpb24oKQorT3B0aW9uYWw8R2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGE+IEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6bGFzdFBvc2l0aW9u
KCkKIHsKICAgICBpZiAobV9sYXN0UG9zaXRpb24pCiAgICAgICAgIHJldHVybiBtX2xhc3RQb3Np
dGlvbi52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmgKaW5kZXggMGM3MDQ5YmExMDEzYzI0MmM5
MjUyYzYxNTJiZmUzNDgxYWExNjU2Ni4uNTQ5MzRkNzlhMDY5ZWRlNWI0YTk2NzJhMTFlZjUxNWQ3
NDM3NzdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9H
ZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgR2VvbG9jYXRpb25DbGllbnQ7CiBjbGFzcyBHZW9sb2NhdGlv
bkVycm9yOwotY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9z
aXRpb25EYXRhOwogCiBjbGFzcyBHZW9sb2NhdGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxl
bWVudDxQYWdlPiwgcHJpdmF0ZSBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNTMsMTAgKzUzLDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlcXVlc3RQZXJtaXNzaW9uKEdlb2xvY2F0aW9uJik7CiAgICAgdm9pZCBjYW5jZWxQZXJt
aXNzaW9uUmVxdWVzdChHZW9sb2NhdGlvbiYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBw
b3NpdGlvbkNoYW5nZWQoY29uc3QgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4mKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc2l0aW9uQ2hhbmdlZChjb25zdCBPcHRpb25hbDxHZW9s
b2NhdGlvblBvc2l0aW9uRGF0YT4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVycm9yT2Nj
dXJyZWQoR2VvbG9jYXRpb25FcnJvciYpOwogCi0gICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3Np
dGlvbj4gbGFzdFBvc2l0aW9uKCk7CisgICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRh
dGE+IGxhc3RQb3NpdGlvbigpOwogCiAgICAgR2VvbG9jYXRpb25DbGllbnQmIGNsaWVudCgpIHsg
cmV0dXJuIG1fY2xpZW50OyB9CiAKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgYWN0aXZpdHlTdGF0ZURpZENoYW5nZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4g
b2xkQWN0aXZpdHlTdGF0ZSwgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU6OkZsYWc+IG5ld0FjdGl2
aXR5U3RhdGUpIG92ZXJyaWRlOwogCi0gICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4g
bV9sYXN0UG9zaXRpb247CisgICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IG1f
bGFzdFBvc2l0aW9uOwogCiAgICAgdHlwZWRlZiBIYXNoU2V0PFJlZjxHZW9sb2NhdGlvbj4+IE9i
c2VydmVyc1NldDsKICAgICAvLyBBbGwgb2JzZXJ2ZXJzOyBib3RoIHRob3NlIHJlcXVlc3Rpbmcg
aGlnaCBhY2N1cmFjeSBhbmQgdGhvc2Ugbm90LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTJlYjBkY2EwMzFmNzA1YWE3MzRjOGIwZTlhYjBhMWFjMWEwMjliNAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b25Db29yZGluYXRlcy5jcHAKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
Ikdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHZW9s
b2NhdGlvbkNvb3JkaW5hdGVzOjpHZW9sb2NhdGlvbkNvb3JkaW5hdGVzKEdlb2xvY2F0aW9uUG9z
aXRpb25EYXRhJiYgcG9zaXRpb24pCisgICAgOiBtX3Bvc2l0aW9uKFdURk1vdmUocG9zaXRpb24p
KQoreworICAgIEFTU0VSVChtX3Bvc2l0aW9uLmlzVmFsaWQoKSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc1MWNhYzQ3NDIx
N2ExNTc1YTY3YWFjZDllOTQ0NTQ3NDc0ZGQ3OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5oCkBAIC0w
LDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb25EYXRh
LmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
R2VvbG9jYXRpb25Db29yZGluYXRlcyA6IHB1YmxpYyBSZWZDb3VudGVkPEdlb2xvY2F0aW9uQ29v
cmRpbmF0ZXM+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEdlb2xvY2F0aW9uQ29vcmRpbmF0
ZXM+IGNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmIHBvc2l0aW9uKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR2VvbG9jYXRpb25Db29yZGluYXRlcyhXVEZNb3Zl
KHBvc2l0aW9uKSkpOworICAgIH0KKworICAgIFJlZjxHZW9sb2NhdGlvbkNvb3JkaW5hdGVzPiBp
c29sYXRlZENvcHkoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEdlb2xvY2F0aW9uQ29v
cmRpbmF0ZXM6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRGF0YShtX3Bvc2l0aW9uKSk7Cisg
ICAgfQorCisgICAgZG91YmxlIGxhdGl0dWRlKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5s
YXRpdHVkZTsgfQorICAgIGRvdWJsZSBsb25naXR1ZGUoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0
aW9uLmxvbmdpdHVkZTsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4gYWx0aXR1ZGUoKSBjb25zdCB7
IHJldHVybiBtX3Bvc2l0aW9uLmFsdGl0dWRlOyB9CisgICAgZG91YmxlIGFjY3VyYWN5KCkgY29u
c3QgeyByZXR1cm4gbV9wb3NpdGlvbi5hY2N1cmFjeTsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4g
YWx0aXR1ZGVBY2N1cmFjeSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24uYWx0aXR1ZGVBY2N1
cmFjeTsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4gaGVhZGluZygpIGNvbnN0IHsgcmV0dXJuIG1f
cG9zaXRpb24uaGVhZGluZzsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4gc3BlZWQoKSBjb25zdCB7
IHJldHVybiBtX3Bvc2l0aW9uLnNwZWVkOyB9CisgICAgT3B0aW9uYWw8ZG91YmxlPiBmbG9vckxl
dmVsKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5mbG9vckxldmVsOyB9CisgICAgCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMoR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEmJik7CisKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBtX3Bvc2l0aW9uOwor
fTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZmMzk1NjRjNDM2YTUxZmRiZTUwZmJiZjQ0Nzg5YTYyN2I0NTBjNzAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uQ29vcmRpbmF0ZXMuaWRsCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDktMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9R0VP
TE9DQVRJT04sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgR2Vv
bG9jYXRpb25Db29yZGluYXRlcyB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3Rl
ZCBkb3VibGUgbGF0aXR1ZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBk
b3VibGUgbG9uZ2l0dWRlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91
YmxlPyBhbHRpdHVkZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZSBhY2N1cmFjeTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8g
YWx0aXR1ZGVBY2N1cmFjeTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZT8gaGVhZGluZzsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZT8gc3BlZWQ7CisgICAgCisgICAgLy8gTm9uIHN0YW5kYXJkLgorICAgIFtFbmFibGVkQnlTZXR0
aW5nPUdlb2xvY2F0aW9uRmxvb3JMZXZlbF0gcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3Rl
ZCBkb3VibGU/IGZsb29yTGV2ZWw7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaAppbmRleCBkNjlkYjU0M2Y4
ZTBmNmRlNzQ1ZGQ2MzAxNThlMWQxMWQ3MTYyYmU0Li5iOTEwMDA1MjhmYjViYzAwYmEwNDFlYjJm
NjYxYWI4MGU5ZDYzN2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMCwxMDggKzEwLDUyIEBACiAgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCiAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8K
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxjbWF0aD4KLSNpbmNsdWRlIDx3dGYvT3B0aW9u
YWwuaD4KLSNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSAiRE9NVGltZVN0YW1wLmgiCisj
aW5jbHVkZSAiR2VvbG9jYXRpb25Db29yZGluYXRlcy5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+Ci0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotT0JKQ19DTEFTUyBDTExvY2F0aW9u
OwotI2VuZGlmCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbiB7CitjbGFzcyBHZW9sb2NhdGlv
blBvc2l0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8R2VvbG9jYXRpb25Qb3NpdGlvbj4gewogcHVi
bGljOgotICAgIEdlb2xvY2F0aW9uUG9zaXRpb24oKSA9IGRlZmF1bHQ7Ci0KLSAgICBHZW9sb2Nh
dGlvblBvc2l0aW9uKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxv
bmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQotICAgICAgICA6IHRpbWVzdGFtcCh0aW1lc3RhbXAp
Ci0gICAgICAgICwgbGF0aXR1ZGUobGF0aXR1ZGUpCi0gICAgICAgICwgbG9uZ2l0dWRlKGxvbmdp
dHVkZSkKLSAgICAgICAgLCBhY2N1cmFjeShhY2N1cmFjeSkKKyAgICBzdGF0aWMgUmVmPEdlb2xv
Y2F0aW9uUG9zaXRpb24+IGNyZWF0ZShSZWY8R2VvbG9jYXRpb25Db29yZGluYXRlcz4mJiBjb29y
ZGluYXRlcywgRE9NVGltZVN0YW1wIHRpbWVzdGFtcCkKICAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEdlb2xvY2F0aW9uUG9zaXRpb24oV1RGTW92ZShjb29yZGluYXRlcyksIHRp
bWVzdGFtcCkpOwogICAgIH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgV0VCQ09S
RV9FWFBPUlQgZXhwbGljaXQgR2VvbG9jYXRpb25Qb3NpdGlvbihDTExvY2F0aW9uKik7Ci0jZW5k
aWYKLQotICAgIGRvdWJsZSB0aW1lc3RhbXAgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46
OnF1aWV0X05hTigpIH07Ci0KLSAgICBkb3VibGUgbGF0aXR1ZGUgeyBzdGQ6Om51bWVyaWNfbGlt
aXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07Ci0gICAgZG91YmxlIGxvbmdpdHVkZSB7IHN0ZDo6
bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsKLSAgICBkb3VibGUgYWNjdXJh
Y3kgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07Ci0KLSAgICBP
cHRpb25hbDxkb3VibGU+IGFsdGl0dWRlOwotICAgIE9wdGlvbmFsPGRvdWJsZT4gYWx0aXR1ZGVB
Y2N1cmFjeTsKLSAgICBPcHRpb25hbDxkb3VibGU+IGhlYWRpbmc7Ci0gICAgT3B0aW9uYWw8ZG91
YmxlPiBzcGVlZDsKLSAgICBPcHRpb25hbDxkb3VibGU+IGZsb29yTGV2ZWw7CisgICAgUmVmPEdl
b2xvY2F0aW9uUG9zaXRpb24+IGlzb2xhdGVkQ29weSgpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gY3JlYXRlKG1fY29vcmRpbmF0ZXMtPmlzb2xhdGVkQ29weSgpLCBtX3RpbWVzdGFtcCk7
CisgICAgfQogCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgRE9NVGltZVN0YW1wIHRp
bWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgY29uc3QgR2VvbG9j
YXRpb25Db29yZGluYXRlcyYgY29vcmRzKCkgY29uc3QgeyByZXR1cm4gbV9jb29yZGluYXRlcy5n
ZXQoKTsgfQorICAgIAorcHJpdmF0ZToKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uKFJlZjxHZW9s
b2NhdGlvbkNvb3JkaW5hdGVzPiYmIGNvb3JkaW5hdGVzLCBET01UaW1lU3RhbXAgdGltZXN0YW1w
KQorICAgICAgICA6IG1fY29vcmRpbmF0ZXMoV1RGTW92ZShjb29yZGluYXRlcykpCisgICAgICAg
ICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQorICAgIHsKKyAgICB9CiAKLSAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBHZW9sb2NhdGlvblBv
c2l0aW9uJik7CisgICAgUmVmPEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXM+IG1fY29vcmRpbmF0ZXM7
CisgICAgRE9NVGltZVN0YW1wIG1fdGltZXN0YW1wOwogfTsKLQotdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4KLXZvaWQgR2VvbG9jYXRpb25Qb3NpdGlvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Ci17Ci0gICAgZW5jb2RlciA8PCB0aW1lc3RhbXA7Ci0gICAgZW5jb2RlciA8PCBsYXRp
dHVkZTsKLSAgICBlbmNvZGVyIDw8IGxvbmdpdHVkZTsKLSAgICBlbmNvZGVyIDw8IGFjY3VyYWN5
OwotICAgIGVuY29kZXIgPDwgYWx0aXR1ZGU7Ci0gICAgZW5jb2RlciA8PCBhbHRpdHVkZUFjY3Vy
YWN5OwotICAgIGVuY29kZXIgPDwgaGVhZGluZzsKLSAgICBlbmNvZGVyIDw8IHNwZWVkOwotICAg
IGVuY29kZXIgPDwgZmxvb3JMZXZlbDsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLWJv
b2wgR2VvbG9jYXRpb25Qb3NpdGlvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEdlb2xvY2F0
aW9uUG9zaXRpb24mIHBvc2l0aW9uKQotewotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRp
b24udGltZXN0YW1wKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocG9zaXRpb24ubGF0aXR1ZGUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5sb25naXR1ZGUpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5hY2N1cmFjeSkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmFsdGl0dWRl
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRp
b24uYWx0aXR1ZGVBY2N1cmFjeSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBvc2l0aW9uLmhlYWRpbmcpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5zcGVlZCkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmZsb29yTGV2ZWwpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotaW5saW5lIGJvb2wg
R2VvbG9jYXRpb25Qb3NpdGlvbjo6aXNWYWxpZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICFzdGQ6
OmlzbmFuKHRpbWVzdGFtcCkgJiYgIXN0ZDo6aXNuYW4obGF0aXR1ZGUpICYmICFzdGQ6OmlzbmFu
KGxvbmdpdHVkZSkgJiYgIXN0ZDo6aXNuYW4oYWNjdXJhY3kpOwotfQotCisgICAgCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzJmOGQ5ZmE4
ZTFkM2NhYjk3ZDQ1MDk0OGYzZjE0MTU5NjdkOWE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbApAQCAt
MCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworWworICAgIENvbmRpdGlvbmFsPUdFT0xPQ0FUSU9OLAorICAgIEltcGxlbWVudGF0
aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIEdlb2xvY2F0aW9uUG9zaXRpb24geworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzIGNvb3JkczsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NVGltZVN0YW1wIHRpbWVzdGFtcDsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRp
b25EYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGMyYjRlMzQ1YzM5ZDViMDhjOWUxNzU2NDc3NThhMjZhMWFk
MDNlMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCitPQkpDX0NMQVNTIENMTG9jYXRpb247
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YSB7CitwdWJsaWM6CisgICAgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoKSA9IGRlZmF1
bHQ7CisKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YShkb3VibGUgdGltZXN0YW1wLCBkb3Vi
bGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKKyAgICAgICAg
OiB0aW1lc3RhbXAodGltZXN0YW1wKQorICAgICAgICAsIGxhdGl0dWRlKGxhdGl0dWRlKQorICAg
ICAgICAsIGxvbmdpdHVkZShsb25naXR1ZGUpCisgICAgICAgICwgYWNjdXJhY3koYWNjdXJhY3kp
CisgICAgeworICAgIH0KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgV0VCQ09SRV9F
WFBPUlQgZXhwbGljaXQgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoQ0xMb2NhdGlvbiopOworI2Vu
ZGlmCisKKyAgICBkb3VibGUgdGltZXN0YW1wIHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKSB9OworCisgICAgZG91YmxlIGxhdGl0dWRlIHsgc3RkOjpudW1lcmljX2xp
bWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OworICAgIGRvdWJsZSBsb25naXR1ZGUgeyBzdGQ6
Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07CisgICAgZG91YmxlIGFjY3Vy
YWN5IHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OworCisgICAg
T3B0aW9uYWw8ZG91YmxlPiBhbHRpdHVkZTsKKyAgICBPcHRpb25hbDxkb3VibGU+IGFsdGl0dWRl
QWNjdXJhY3k7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBoZWFkaW5nOworICAgIE9wdGlvbmFsPGRv
dWJsZT4gc3BlZWQ7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBmbG9vckxldmVsOworCisgICAgYm9v
bCBpc1ZhbGlkKCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IGJvb2wgZGVjb2RlKERlY29kZXImLCBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYpOworfTsKKwor
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdGltZXN0YW1w
OworICAgIGVuY29kZXIgPDwgbGF0aXR1ZGU7CisgICAgZW5jb2RlciA8PCBsb25naXR1ZGU7Cisg
ICAgZW5jb2RlciA8PCBhY2N1cmFjeTsKKyAgICBlbmNvZGVyIDw8IGFsdGl0dWRlOworICAgIGVu
Y29kZXIgPDwgYWx0aXR1ZGVBY2N1cmFjeTsKKyAgICBlbmNvZGVyIDw8IGhlYWRpbmc7CisgICAg
ZW5jb2RlciA8PCBzcGVlZDsKKyAgICBlbmNvZGVyIDw8IGZsb29yTGV2ZWw7Cit9CisKK3RlbXBs
YXRlPGNsYXNzIERlY29kZXI+Citib29sIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmIHBvc2l0aW9uKQorewor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24udGltZXN0YW1wKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24ubGF0aXR1ZGUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5s
b25naXR1ZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwb3NpdGlvbi5hY2N1cmFjeSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBvc2l0aW9uLmFsdGl0dWRlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24uYWx0aXR1ZGVBY2N1cmFjeSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmhlYWRp
bmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3Np
dGlvbi5zcGVlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBvc2l0aW9uLmZsb29yTGV2ZWwpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworaW5saW5lIGJvb2wgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6Omlz
VmFsaWQoKSBjb25zdAoreworICAgIHJldHVybiAhc3RkOjppc25hbih0aW1lc3RhbXApICYmICFz
dGQ6OmlzbmFuKGxhdGl0dWRlKSAmJiAhc3RkOjppc25hbihsb25naXR1ZGUpICYmICFzdGQ6Omlz
bmFuKGFjY3VyYWN5KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJy
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3Np
dGlvbkVycm9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE0NGUxZTI3YjFmMWUzNmQxMjFmYjBjNzQ3OWMzNzQx
NGYwN2MxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRp
b25FcnJvciA6IHB1YmxpYyBSZWZDb3VudGVkPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gewor
cHVibGljOgorICAgIGVudW0gRXJyb3JDb2RlIHsKKyAgICAgICAgUEVSTUlTU0lPTl9ERU5JRUQg
PSAxLAorICAgICAgICBQT1NJVElPTl9VTkFWQUlMQUJMRSA9IDIsCisgICAgICAgIFRJTUVPVVQg
PSAzCisgICAgfTsKKyAgICAKKyAgICBzdGF0aWMgUmVmPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJv
cj4gY3JlYXRlKEVycm9yQ29kZSBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKGNvZGUsIG1lc3NhZ2UpKTsg
fQorCisgICAgRXJyb3JDb2RlIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KKyAgICBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KKyAgICB2
b2lkIHNldElzRmF0YWwoYm9vbCBpc0ZhdGFsKSB7IG1faXNGYXRhbCA9IGlzRmF0YWw7IH0KKyAg
ICBib29sIGlzRmF0YWwoKSBjb25zdCB7IHJldHVybiBtX2lzRmF0YWw7IH0KKyAgICAKK3ByaXZh
dGU6CisgICAgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKEVycm9yQ29kZSBjb2RlLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCisgICAgICAgIDogbV9jb2RlKGNvZGUpCisgICAgICAgICwgbV9tZXNz
YWdlKG1lc3NhZ2UpCisgICAgICAgICwgbV9pc0ZhdGFsKGZhbHNlKQorICAgIHsKKyAgICB9Cisg
ICAgCisgICAgRXJyb3JDb2RlIG1fY29kZTsKKyAgICBTdHJpbmcgbV9tZXNzYWdlOworICAgIC8v
IFdoZXRoZXIgdGhlIGVycm9yIGlzIGZhdGFsLCBzdWNoIHRoYXQgbm8gcmVxdWVzdCBjYW4gZXZl
ciBvYnRhaW4gYSBnb29kCisgICAgLy8gcG9zaXRpb24gZml4IGluIHRoZSBmdXR1cmUuCisgICAg
Ym9vbCBtX2lzRmF0YWw7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0
aW9uRXJyb3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvblBvc2l0aW9uRXJyb3IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0YTVjMDc0ZTk2MjcxZjg2OGU1N2Uy
MzQ0MWYwM2JhNGYwOTc3ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwKQEAgLTAsMCArMSwz
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
K1sKKyAgICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tz
VlRhYmxlCitdIGludGVyZmFjZSBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IgeworICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IFBFUk1JU1NJT05fREVOSUVEID0gMTsKKyAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBQT1NJVElPTl9VTkFWQUlMQUJMRSA9IDI7CisgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgVElNRU9VVCA9IDM7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNv
ZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXNzYWdlOworfTsKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTMzMGRlNThlMmE2M2E5ZDZiM2UzMjJjNzI1OWJh
MGFmNTk5ODE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaAorKysgL2Rl
di9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDb29yZGluYXRlcy5oIgot
I2luY2x1ZGUgIkRPTVRpbWVTdGFtcC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
Y2xhc3MgR2VvcG9zaXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxHZW9wb3NpdGlvbj4gewotcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8R2VvcG9zaXRpb24+IGNyZWF0ZShSZWY8Q29vcmRpbmF0ZXM+
JiYgY29vcmRpbmF0ZXMsIERPTVRpbWVTdGFtcCB0aW1lc3RhbXApCi0gICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBHZW9wb3NpdGlvbihXVEZNb3ZlKGNvb3JkaW5hdGVzKSwgdGlt
ZXN0YW1wKSk7Ci0gICAgfQotCi0gICAgUmVmPEdlb3Bvc2l0aW9uPiBpc29sYXRlZENvcHkoKSBj
b25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZShtX2Nvb3JkaW5hdGVzLT5pc29sYXRl
ZENvcHkoKSwgbV90aW1lc3RhbXApOwotICAgIH0KLQotICAgIERPTVRpbWVTdGFtcCB0aW1lc3Rh
bXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQotICAgIGNvbnN0IENvb3JkaW5hdGVz
JiBjb29yZHMoKSBjb25zdCB7IHJldHVybiBtX2Nvb3JkaW5hdGVzLmdldCgpOyB9Ci0gICAgCi1w
cml2YXRlOgotICAgIEdlb3Bvc2l0aW9uKFJlZjxDb29yZGluYXRlcz4mJiBjb29yZGluYXRlcywg
RE9NVGltZVN0YW1wIHRpbWVzdGFtcCkKLSAgICAgICAgOiBtX2Nvb3JkaW5hdGVzKFdURk1vdmUo
Y29vcmRpbmF0ZXMpKQotICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKLSAgICB7Ci0g
ICAgfQotCi0gICAgUmVmPENvb3JkaW5hdGVzPiBtX2Nvb3JkaW5hdGVzOwotICAgIERPTVRpbWVT
dGFtcCBtX3RpbWVzdGFtcDsKLX07Ci0gICAgCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bvc2l0aW9uLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZjhjYjA5YjJmYmY5NDE2NDUzNGUxODIwNDI5
OTA0YmJiNTlkMmRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCisr
KyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotCi1bCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAgQ29uZGl0
aW9uYWw9R0VPTE9DQVRJT04sCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRl
cmZhY2UgR2VvcG9zaXRpb24gewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDb29yZGluYXRlcyBj
b29yZHM7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVRpbWVTdGFtcCB0aW1lc3RhbXA7Ci19
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlv
bkNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9u
Q2FsbGJhY2suaAppbmRleCA0YjU3MzgyNDA4OTJkOTEyNWJmYWExMzYyODY1ZDg0MTM5ZjY2NWRj
Li5hMjc5NTM5OTFiNDljZDA5MzQwZTljZWEyMWQzMDBkNmZjMWMxODNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaApA
QCAtMzEsMTMgKzMxLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR2VvcG9z
aXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOwogCiBjbGFzcyBQb3NpdGlvbkNhbGxi
YWNrIDogcHVibGljIFJlZkNvdW50ZWQ8UG9zaXRpb25DYWxsYmFjaz4sIHB1YmxpYyBBY3RpdmVE
T01DYWxsYmFjayB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQWN0aXZlRE9NQ2FsbGJhY2s6OkFjdGl2
ZURPTUNhbGxiYWNrOwogCi0gICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVF
dmVudChHZW9wb3NpdGlvbiopID0gMDsKKyAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+
IGhhbmRsZUV2ZW50KEdlb2xvY2F0aW9uUG9zaXRpb24qKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbAppbmRleCBhZDY2MWY1ZWZjMjYyMTYyYWNkNWE4YWY0
M2E4Yzc0MGY4YWJlYTUyLi5kNWNlODU2MzcwNzQ0NzgyMzZkMDhmYmE0OTFkZDBiZTZmYzg4OTEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9u
Q2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9z
aXRpb25DYWxsYmFjay5pZGwKQEAgLTI0LDQgKzI0LDQgQEAKIAogWwogICAgIENvbmRpdGlvbmFs
PUdFT0xPQ0FUSU9OLAotXSBjYWxsYmFjayBQb3NpdGlvbkNhbGxiYWNrID0gdm9pZCAoR2VvcG9z
aXRpb24/IHBvc2l0aW9uKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4K
K10gY2FsbGJhY2sgUG9zaXRpb25DYWxsYmFjayA9IHZvaWQgKEdlb2xvY2F0aW9uUG9zaXRpb24/
IHBvc2l0aW9uKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2NDIyZWY5YjZkYjNmMWE5MGY4YTQwNDE4Zjli
NTk2M2NkMDNlNjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotICAgIAotY2xhc3MgUG9zaXRpb25FcnJvciA6IHB1YmxpYyBSZWZDb3VudGVkPFBvc2l0
aW9uRXJyb3I+IHsKLXB1YmxpYzoKLSAgICBlbnVtIEVycm9yQ29kZSB7Ci0gICAgICAgIFBFUk1J
U1NJT05fREVOSUVEID0gMSwKLSAgICAgICAgUE9TSVRJT05fVU5BVkFJTEFCTEUgPSAyLAotICAg
ICAgICBUSU1FT1VUID0gMwotICAgIH07Ci0gICAgCi0gICAgc3RhdGljIFJlZjxQb3NpdGlvbkVy
cm9yPiBjcmVhdGUoRXJyb3JDb2RlIGNvZGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBQb3NpdGlvbkVycm9yKGNvZGUsIG1lc3NhZ2UpKTsgfQotCi0gICAg
RXJyb3JDb2RlIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KLSAgICBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KLSAgICB2b2lkIHNldElz
RmF0YWwoYm9vbCBpc0ZhdGFsKSB7IG1faXNGYXRhbCA9IGlzRmF0YWw7IH0KLSAgICBib29sIGlz
RmF0YWwoKSBjb25zdCB7IHJldHVybiBtX2lzRmF0YWw7IH0KLSAgICAKLXByaXZhdGU6Ci0gICAg
UG9zaXRpb25FcnJvcihFcnJvckNvZGUgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSAKLSAg
ICAgICAgOiBtX2NvZGUoY29kZSkKLSAgICAgICAgLCBtX21lc3NhZ2UobWVzc2FnZSkKLSAgICAg
ICAgLCBtX2lzRmF0YWwoZmFsc2UpCi0gICAgewotICAgIH0KLSAgICAKLSAgICBFcnJvckNvZGUg
bV9jb2RlOwotICAgIFN0cmluZyBtX21lc3NhZ2U7Ci0gICAgLy8gV2hldGhlciB0aGUgZXJyb3Ig
aXMgZmF0YWwsIHN1Y2ggdGhhdCBubyByZXF1ZXN0IGNhbiBldmVyIG9idGFpbiBhIGdvb2QKLSAg
ICAvLyBwb3NpdGlvbiBmaXggaW4gdGhlIGZ1dHVyZS4KLSAgICBib29sIG1faXNGYXRhbDsKLX07
Ci0gICAgCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNWMxZjNhMjcyYTY3ZjQ2YWE2ODJjYmU4YmExYmY5ZTdhOTBmNGNlMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsCisrKyAvZGV2L251bGwKQEAg
LTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotCi1bCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJ
T04sCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRlcmZhY2UgUG9zaXRpb25F
cnJvciB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNvZGU7Ci0gICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXNzYWdlOwotCi0gICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgUEVSTUlTU0lPTl9ERU5JRUQgPSAxOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IFBPU0lUSU9OX1VOQVZBSUxBQkxFID0gMjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBUSU1F
T1VUID0gMzsKLX07Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5oCmluZGV4IDQ4MTZiMWRiMWQzMmU5NzJm
OTcwODEyYjg1YzVhNDc3YjE4ZDU0MjUuLmE3NWUwNzg4ZjU0Nzg5YjBkY2JlOTAwYjliNTVjNmEw
ZDEyZGFlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
UG9zaXRpb25FcnJvckNhbGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaApAQCAtMzEsMTMgKzMxLDEzIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUG9zaXRpb25FcnJvcjsKK2NsYXNzIEdlb2xvY2F0
aW9uUG9zaXRpb25FcnJvcjsKIAogY2xhc3MgUG9zaXRpb25FcnJvckNhbGxiYWNrIDogcHVibGlj
IFJlZkNvdW50ZWQ8UG9zaXRpb25FcnJvckNhbGxiYWNrPiwgcHVibGljIEFjdGl2ZURPTUNhbGxi
YWNrIHsKIHB1YmxpYzoKICAgICB1c2luZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZlRE9NQ2Fs
bGJhY2s7CiAKLSAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KFBv
c2l0aW9uRXJyb3ImKSA9IDA7CisgICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5k
bGVFdmVudChHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwKaW5kZXggNTdiNDkzY2NiZjU0NmFk
YzAyNDE0NWUzMWJkODRlNDM1OGJmYzQ3Mi4uZmEwOTgwZTM2MDZhOGY4ZjVmYWY0YmUxZGM5Mzg5
MjlmNmQwMzhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbApAQCAtMjQsNCArMjQsNCBAQAog
CiBbCiAgICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJT04sCi1dIGNhbGxiYWNrIFBvc2l0aW9uRXJy
b3JDYWxsYmFjayA9IHZvaWQgKFBvc2l0aW9uRXJyb3IgZXJyb3IpOworXSBjYWxsYmFjayBQb3Np
dGlvbkVycm9yQ2FsbGJhY2sgPSB2b2lkIChHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IgZXJyb3Ip
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OGQ5
YTI0MjFlN2YyMzA5YjRmNjIzYjE0ZDdjYmUyYjZjN2UwNDVjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2VvbG9jYXRpb25Qb3NpdGlv
bkRhdGFJT1MubW0KQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiR2VvbG9jYXRp
b25Qb3NpdGlvbi5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCA8Q29y
ZUxvY2F0aW9uL0NMTG9jYXRpb24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoQ0xMb2NhdGlvbiogbG9j
YXRpb24pCisgICAgOiB0aW1lc3RhbXAobG9jYXRpb24udGltZXN0YW1wLnRpbWVJbnRlcnZhbFNp
bmNlMTk3MCkKKyAgICAsIGxhdGl0dWRlKGxvY2F0aW9uLmNvb3JkaW5hdGUubGF0aXR1ZGUpCisg
ICAgLCBsb25naXR1ZGUobG9jYXRpb24uY29vcmRpbmF0ZS5sb25naXR1ZGUpCisgICAgLCBhY2N1
cmFjeShsb2NhdGlvbi5ob3Jpem9udGFsQWNjdXJhY3kpCit7CisgICAgaWYgKGxvY2F0aW9uLnZl
cnRpY2FsQWNjdXJhY3kgPj0gMC4wKSB7CisgICAgICAgIGFsdGl0dWRlID0gbG9jYXRpb24uYWx0
aXR1ZGU7CisgICAgICAgIGFsdGl0dWRlQWNjdXJhY3kgPSBsb2NhdGlvbi52ZXJ0aWNhbEFjY3Vy
YWN5OworICAgIH0KKyAgICBpZiAobG9jYXRpb24uc3BlZWQgPj0gMC4wKQorICAgICAgICBzcGVl
ZCA9IGxvY2F0aW9uLnNwZWVkOworICAgIGlmIChsb2NhdGlvbi5jb3Vyc2UgPj0gMC4wKQorICAg
ICAgICBoZWFkaW5nID0gbG9jYXRpb24uY291cnNlOworI2lmICFQTEFURk9STShNQUNDQVRBTFlT
VCkKKyAgICBpZiAobG9jYXRpb24uZmxvb3IpCisgICAgICAgIGZsb29yTGV2ZWwgPSBsb2NhdGlv
bi5mbG9vci5sZXZlbDsKKyNlbmRpZgorfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9p
b3MvR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDUxMzZhNTFlMmI2ZTg1ZmQ0Mzg2MjhiZGI3ZjBmNmVlMDNjMzBjNzYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbQorKysg
L2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIkdlb2xvY2F0aW9u
UG9zaXRpb24uaCIKLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0KLSNpbXBvcnQgPENvcmVM
b2NhdGlvbi9DTExvY2F0aW9uLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotR2VvbG9jYXRp
b25Qb3NpdGlvbjo6R2VvbG9jYXRpb25Qb3NpdGlvbihDTExvY2F0aW9uKiBsb2NhdGlvbikKLSAg
ICA6IHRpbWVzdGFtcChsb2NhdGlvbi50aW1lc3RhbXAudGltZUludGVydmFsU2luY2UxOTcwKQot
ICAgICwgbGF0aXR1ZGUobG9jYXRpb24uY29vcmRpbmF0ZS5sYXRpdHVkZSkKLSAgICAsIGxvbmdp
dHVkZShsb2NhdGlvbi5jb29yZGluYXRlLmxvbmdpdHVkZSkKLSAgICAsIGFjY3VyYWN5KGxvY2F0
aW9uLmhvcml6b250YWxBY2N1cmFjeSkKLXsKLSAgICBpZiAobG9jYXRpb24udmVydGljYWxBY2N1
cmFjeSA+PSAwLjApIHsKLSAgICAgICAgYWx0aXR1ZGUgPSBsb2NhdGlvbi5hbHRpdHVkZTsKLSAg
ICAgICAgYWx0aXR1ZGVBY2N1cmFjeSA9IGxvY2F0aW9uLnZlcnRpY2FsQWNjdXJhY3k7Ci0gICAg
fQotICAgIGlmIChsb2NhdGlvbi5zcGVlZCA+PSAwLjApCi0gICAgICAgIHNwZWVkID0gbG9jYXRp
b24uc3BlZWQ7Ci0gICAgaWYgKGxvY2F0aW9uLmNvdXJzZSA+PSAwLjApCi0gICAgICAgIGhlYWRp
bmcgPSBsb2NhdGlvbi5jb3Vyc2U7Ci0jaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIGlm
IChsb2NhdGlvbi5mbG9vcikKLSAgICAgICAgZmxvb3JMZXZlbCA9IGxvY2F0aW9uLmZsb29yLmxl
dmVsOwotI2VuZGlmCi19Ci0KLX0KLQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IDBhMzhkZDQ2YzdkNDU5NDA0OGJjZWZmNDliZWRhMzg2OGJkMjk1ZGIu
LmZmZDVlYjA3MjhjNWU5OGJiZWQ1N2ZiMDJhZWZkNThlZTJjOTZjNzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC02NywxMCArNjcsMTAgQEAgTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCiBNb2R1
bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCiBNb2R1bGVzL2ZldGNoL1dvcmtlckdsb2JhbFNj
b3BlRmV0Y2guY3BwCiAKLU1vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuY3BwCiBNb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcAogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9s
b2NhdGlvbi5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNw
cAorTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcAogTW9kdWxl
cy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAKIAogTW9kdWxlcy9pbmRleGVk
ZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcApAQCAtMjY3Miw3ICsyNjcyLDYgQEAgSlND
b21wb3NpdGVPcGVyYXRpb24uY3BwCiBKU0NvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0by5jcHAKIEpT
Q29tcHV0ZWRFZmZlY3RUaW1pbmcuY3BwCiBKU0NvbnZvbHZlck5vZGUuY3BwCi1KU0Nvb3JkaW5h
dGVzLmNwcAogSlNDb3VudFF1ZXVpbmdTdHJhdGVneS5jcHAKIEpTQ3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucy5jcHAKIEpTQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmNwcApAQCAtMjgzMSw3ICsy
ODMwLDkgQEAgSlNHUFVWZXJ0ZXhCdWZmZXJEZXNjcmlwdG9yLmNwcAogSlNHUFVWZXJ0ZXhJbnB1
dERlc2NyaXB0b3IuY3BwCiBKU0dhaW5Ob2RlLmNwcAogSlNHZW9sb2NhdGlvbi5jcHAKLUpTR2Vv
cG9zaXRpb24uY3BwCitKU0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwCitKU0dlb2xvY2F0aW9u
UG9zaXRpb24uY3BwCitKU0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5jcHAKIEpTR2xvYmFsQ3J5
cHRvLmNwcAogSlNHbG9iYWxFdmVudEhhbmRsZXJzLmNwcAogSlNHbG9iYWxQZXJmb3JtYW5jZS5j
cHAKQEAgLTMwNzIsNyArMzA3Myw2IEBAIEpTUGxheWJhY2tEaXJlY3Rpb24uY3BwCiBKU1BvaW50
ZXJFdmVudC5jcHAKIEpTUG9wU3RhdGVFdmVudC5jcHAKIEpTUG9zaXRpb25DYWxsYmFjay5jcHAK
LUpTUG9zaXRpb25FcnJvci5jcHAKIEpTUG9zaXRpb25FcnJvckNhbGxiYWNrLmNwcAogSlNQb3Np
dGlvbk9wdGlvbnMuY3BwCiBKU1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzODUyZDNk
MzkzN2Q2NmU5ZGZmMTI5MGQzMWNjY2Q4NDZmOWNiNWRhLi4xOWZjOWUwZjc4MjFmMTU5NzYyYjYw
OWNlMmExNTZjOGM2ZTVlNWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzkyLDcgKzIzOTIsNyBAQAogCQk4MzcyREIzMTFB
Njc4MEE4MDBDNjk3QzUgLyogRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzcyREIzMDFBNjc4MEE4MDBD
Njk3QzUgLyogRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM3NjVGOTUxREFDNTIyRjAwQzA2NTM3
IC8qIE1vdXNlRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4Mzc2NUY5NDFEQUM1MjE4MDBDMDY1MzcgLyogTW91c2VFdmVudEluaXQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4Mzc5MzYz
RjFGQkJCMEI0MDBDODAyM0MgLyogU2VydmljZVdvcmtlckNsaWVudERhdGEuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNzkzNjNFMUZCQkIwQTUwMEM4
MDIzQyAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTgzNzk2NENGMUY4REI2OUQwMDIxOEVBMCAvKiBH
ZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9z
aXRpb25JT1MubW0gKi87IH07CisJCTgzNzk2NENGMUY4REI2OUQwMDIxOEVBMCAvKiBHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YUlPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzNzk2NENFMUY4REI2OUEwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YUlPUy5tbSAqLzsgfTsKIAkJODM3QTgwMTMxRTFFMTI3MzAwMDI2QjlGIC8qIExvY2Fs
aXphYmxlLnN0cmluZ3NkaWN0IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzdBODAxMTFFMUUxMjczMDAwMjZCOUYgLyogTG9jYWxpemFibGUuc3RyaW5n
c2RpY3QgKi87IH07CiAJCTgzN0Q0NjI3MUZBMkE4Q0UwMDU0RTFGQSAvKiBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM3RDQ2MjUxRkEyQThDNTAwNTRFMUZBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJODM3RkIzNDUxRjlFQTA2RDAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0ZCMzQw
MUY5RUEwNjYwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmggKi87IH07CkBAIC0y
NzI4LDE1ICsyNzI4LDE1IEBACiAJCTk3Mzg4OUExMTE2RUE5REMwMEFERjMxMyAvKiBEb2N1bWVu
dFdyaXRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTczODg5OUYxMTZFQTlEQzAwQURGMzEzIC8qIERvY3VtZW50V3JpdGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTczRTMyNTcxMDg4M0I3QzAw
NUJDNDkzIC8qIFJlc291cmNlTG9hZE5vdGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzNFMzI1NTEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5NzNGNDE4QTE2OUI5NUZGMDAwNkJGNjAgLyogSFRNTFBhcnNlck9wdGlvbnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3M0Y0MTg4
MTY5Qjk1RUYwMDA2QkY2MCAvKiBIVE1MUGFyc2VyT3B0aW9ucy5oICovOyB9OwotCQk5NzQ2QUYy
MTE0RjREREU2MDAzRTdBNzEgLyogQ29vcmRpbmF0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjExMTRGNERERTYwMDNFN0E3MCAvKiBDb29y
ZGluYXRlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTk3NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxMTE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db29yZGluYXRlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NDZBRjI0MTRGNERERTYwMDNF
N0E3MCAvKiBHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTc0NkFGMTQxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFGMjUx
NEY0RERFNjAwM0U3QTcxIC8qIEdlb2xvY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxNTE0RjREREU2MDAzRTdBNzEgLyog
R2VvbG9jYXRpb25DbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5NzQ2QUYyNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250
cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzQ2QUYxNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFGMjgxNEY0
RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjE4MTRGNERERTYwMDNFN0E3MCAvKiBHZW9s
b2NhdGlvbkVycm9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJOTc0NkFGMjkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjE5
MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTc0NkFGMkExNEY0RERFNjAwM0U3
QTcwIC8qIEdlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvcG9zaXRpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NzQ2QUYyOTE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjE5MTRGNERERTYwMDNFN0E3
MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTk3NDZBRjJBMTRGNERERTYwMDNFN0E3MCAvKiBHZW9s
b2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NDZB
RjJDMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxQzE0RjREREU2MDAzRTdBNzAg
LyogUG9zaXRpb25DYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTk3NDZBRjJFMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYx
RTE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk3NDZBRjJFMTRGNERERTYwMDNFN0E3MCAv
KiBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjFFMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5NzQ2QUYzMDE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvckNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2
QUYyMDE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvckNhbGxiYWNrLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFGMzIxNEY0RERF
NjAwM0U3QTcwIC8qIFBvc2l0aW9uT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMjIxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9u
T3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTk3NEE4NjIzMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NEE4NjIx
MTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTAwNjMsNyArMTAwNjMs
NyBAQAogCQk4Mzc2NUY5NDFEQUM1MjE4MDBDMDY1MzcgLyogTW91c2VFdmVudEluaXQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW91c2VFdmVudEluaXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM3OTM2M0MxRkJCQjBBNDAwQzgwMjNDIC8qIFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODM3OTM2M0UxRkJCQjBBNTAwQzgwMjNDIC8qIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgzNzk2NENFMUY4REI2OUEwMDIxOEVB
MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbTsgcGF0aCA9IE1vZHVsZXMv
Z2VvbG9jYXRpb24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW07IHNvdXJjZVRyZWUgPSBT
T1VSQ0VfUk9PVDsgfTsKKwkJODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW07IHBhdGggPSBNb2R1bGVzL2dlb2xvY2F0
aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5tbTsgc291cmNlVHJlZSA9IFNPVVJD
RV9ST09UOyB9OwogCQk4MzdBODAxMjFFMUUxMjczMDAwMjZCOUYgLyogZW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnN0cmluZ3Nk
aWN0OyBuYW1lID0gZW47IHBhdGggPSBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzZGljdDsg
c291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk4MzdCN0QxRjFEQzNGNTRDMDBEMDUxRkMg
LyogVmFsaWRhdGlvbkJ1YmJsZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFZhbGlkYXRpb25CdWJibGVJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgzN0Q0NjI1MUZBMkE4QzUwMDU0RTFGQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3NDMs
OSArMTA3NDMsOSBAQAogCQk5NzNFMzI1NTEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3VyY2VMb2Fk
Tm90aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2Fk
Tm90aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTczRjQxODcxNjlCOTVF
RjAwMDZCRjYwIC8qIEhUTUxQYXJzZXJPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEhUTUxQYXJzZXJPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTczRjQxODgxNjlCOTVFRjAwMDZCRjYwIC8qIEhUTUxQYXJzZXJPcHRpb25z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQYXJzZXJPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk3NDZBRjExMTRGNERERTYwMDNFN0E3MCAv
KiBDb29yZGluYXRlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29yZGlu
YXRlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzQ2QUYxMTE0RjREREU2MDAz
RTdBNzIgLyogQ29vcmRpbmF0ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ29vcmRpbmF0ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzQ2
QUYxMjE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IENvb3JkaW5hdGVzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc0
NkFGMTExNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Db29yZGluYXRlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzIgLyogR2Vv
bG9jYXRpb25Db29yZGluYXRlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTc0NkFGMTIxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYxMzE0RjREREU2MDAzRTdBNzAgLyog
R2VvbG9jYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2Vv
bG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYxNDE0RjRE
REU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gR2VvbG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFG
MTUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBHZW9sb2NhdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDc1
MywxMyArMTA3NTMsMTMgQEAKIAkJOTc0NkFGMTYxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0
aW9uQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBH
ZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NzQ2QUYxNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uQ29udHJvbGxlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYxODE0RjREREU2MDAzRTdBNzAgLyogR2Vv
bG9jYXRpb25FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2Nh
dGlvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk3NDZBRjE5MTRGNERE
RTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uUG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTc0NkFGMUExNEY0RERFNjAwM0U3QTcwIC8qIEdlb3Bvc2l0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlb3Bvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTk3NDZBRjFCMTRGNERERTYwMDNFN0E3MCAvKiBHZW9wb3NpdGlvbi5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2VvcG9zaXRpb24uaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5NzQ2QUYxOTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc0NkFGMUEx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5NzQ2QUYxQjE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3Np
dGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbi5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NDZBRjFDMTRGNERERTYwMDNFN0E3MCAv
KiBQb3NpdGlvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBv
c2l0aW9uQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFGMUQx
NEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFBvc2l0aW9uQ2FsbGJhY2suaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk5NzQ2QUYxRTE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQb3NpdGlvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTk3NDZBRjFGMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9yLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQb3NpdGlvbkVycm9yLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTc0NkFGMUUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2Nh
dGlvblBvc2l0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc0NkFG
MUYxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFGMjAxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9u
RXJyb3JDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3NpdGlv
bkVycm9yQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFGMjEx
NEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTc0NkFGMjIxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uT3B0aW9ucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3NpdGlvbk9wdGlvbnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwOTI1LDcgKzIwOTI1LDcgQEAKIAkJODM3OTY0
Q0MxRjhEQjY3RDAwMjE4RUEwIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkJODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25JT1MubW0gKi8sCisJCQkJODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhSU9TLm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBpb3M7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjE4NDIsMjggKzIxODQyLDI4IEBACiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTgzNzk2NENDMUY4REI2N0QwMDIxOEVB
MCAvKiBpb3MgKi8sCi0JCQkJOTc0NkFGMTExNEY0RERFNjAwM0U3QTcyIC8qIENvb3JkaW5hdGVz
LmNwcCAqLywKLQkJCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMuaCAq
LywKLQkJCQk5NzQ2QUYxMjE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMuaWRsICovLAog
CQkJCTk3NDZBRjEzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgKi8sCiAJCQkJ
OTc0NkFGMTQxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmggKi8sCiAJCQkJOTc0NkFG
MTUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmlkbCAqLywKIAkJCQk5NzQ2QUYxNTE0
RjREREU2MDAzRTdBNzEgLyogR2VvbG9jYXRpb25DbGllbnQuaCAqLywKIAkJCQk5NzQ2QUYxNjE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCAqLywKIAkJCQk5NzQ2
QUYxNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggKi8sCisJCQkJ
OTc0NkFGMTExNEY0RERFNjAwM0U3QTcyIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwICov
LAorCQkJCTk3NDZBRjExMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVz
LmggKi8sCisJCQkJOTc0NkFGMTIxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29vcmRp
bmF0ZXMuaWRsICovLAogCQkJCTk3NDZBRjE4MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlv
bkVycm9yLmggKi8sCi0JCQkJOTc0NkFGMTkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb24uaCAqLywKKwkJCQk5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRp
b25Qb3NpdGlvbi5oICovLAorCQkJCTk3NDZBRjFCMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2Nh
dGlvblBvc2l0aW9uLmlkbCAqLywKKwkJCQk5NzQ2QUYxOTE0RjREREU2MDAzRTdBNzAgLyogR2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGEuaCAqLywKKwkJCQk5NzQ2QUYxRTE0RjREREU2MDAzRTdBNzAg
LyogR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmggKi8sCisJCQkJOTc0NkFGMUYxNEY0RERFNjAw
M0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwgKi8sCiAJCQkJNDZDODNFRkIx
QTlCQkUyOTAwQTc5QTQxIC8qIEdlb05vdGlmaWVyLmNwcCAqLywKIAkJCQk0NkM4M0VGQzFBOUJC
RTI5MDBBNzlBNDEgLyogR2VvTm90aWZpZXIuaCAqLywKLQkJCQk5NzQ2QUYxQTE0RjREREU2MDAz
RTdBNzAgLyogR2VvcG9zaXRpb24uaCAqLywKLQkJCQk5NzQ2QUYxQjE0RjREREU2MDAzRTdBNzAg
LyogR2VvcG9zaXRpb24uaWRsICovLAogCQkJCTk3MTE0NjAwMTRFRjAwOUEwMDY3NEZEOSAvKiBO
YXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgKi8sCiAJCQkJOTcxMTQ2MDExNEVGMDA5QTAwNjc0RkQ5
IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmggKi8sCiAJCQkJOTcxMTQ2MDIxNEVGMDA5QTAwNjc0
RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCAqLywKIAkJCQk5NzQ2QUYxQzE0RjREREU2
MDAzRTdBNzAgLyogUG9zaXRpb25DYWxsYmFjay5oICovLAogCQkJCTk3NDZBRjFEMTRGNERERTYw
MDNFN0E3MCAvKiBQb3NpdGlvbkNhbGxiYWNrLmlkbCAqLywKLQkJCQk5NzQ2QUYxRTE0RjREREU2
MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5oICovLAotCQkJCTk3NDZBRjFGMTRGNERERTYwMDNF
N0E3MCAvKiBQb3NpdGlvbkVycm9yLmlkbCAqLywKIAkJCQk5NzQ2QUYyMDE0RjREREU2MDAzRTdB
NzAgLyogUG9zaXRpb25FcnJvckNhbGxiYWNrLmggKi8sCiAJCQkJOTc0NkFGMjExNEY0RERFNjAw
M0U3QTcwIC8qIFBvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgKi8sCiAJCQkJOTc0NkFGMjIxNEY0
RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uT3B0aW9ucy5oICovLApAQCAtMjg2NjUsNyArMjg2NjUs
NiBAQAogCQkJCTdBNTY5OTcwMjA4NkM2MTkwMDBFMDQzMyAvKiBDb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzNEMDIxMkQxMzFEQjM3QjAwNDA5MUE4
IC8qIENvb2tpZVN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjBCQkFGMUYxQ0VDRTcw
MEVGRUJGMSAvKiBDb29raWVTdG9yYWdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTk3
NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBDb29yZGluYXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJM0Y4MDIwMzUxRTlFNDdCRjAwREVDNjFEIC8qIENvcmVBdWRpb0NhcHR1cmVEZXZpY2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTNGODAyMDM3MUU5RTQ3QzUwMERFQzYxRCAvKiBDb3JlQXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdBRkY0MjIxRUZCMTQ0
OTAwQjU0NUIzIC8qIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MuaCBpbiBIZWFkZXJzICovLApA
QCAtMjkyOTIsMTEgKzI5MjkxLDEzIEBACiAJCQkJOTc0NkFGMjQxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYyNTE0RjREREU2MDAzRTdB
NzEgLyogR2VvbG9jYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NDZBRjI3MTRG
NERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTk3NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYyODE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRp
b25FcnJvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTc0NkFGMjkxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTk3NDZBRjJBMTRGNERE
RTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
NzQ2QUYyOTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTk3NDZBRjJFMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBv
c2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjYyNTJGMThERTFCMTUwMEEwN0Mw
NSAvKiBHZW9tZXRyeVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZDODNFRkUxQTlC
QkUyOTAwQTc5QTQxIC8qIEdlb05vdGlmaWVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk5NzQ2QUYy
QTE0RjREREU2MDAzRTdBNzAgLyogR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2
Qjk1MTk4MjA3RDYzNDcwMEE3RDJERCAvKiBHbG9iYWxGcmFtZUlkZW50aWZpZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQ2Qjk1MTk3MjA3RDYzNDAwMEE3RDJERCAvKiBHbG9iYWxXaW5kb3dJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODZCQkQwRjEzNjAzOUMyMDA4QjE1RDggLyog
R2x5cGguaCBpbiBIZWFkZXJzICovLApAQCAtMzEwNDgsNyArMzEwNDksNiBAQAogCQkJCTM3RjU2
N0NFMTY1MzU4RjQwMERERTkyQiAvKiBQb3B1cE9wZW5pbmdPYnNlcnZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTNGMTk5REUwODI0NUU1OTAwMUU5QUJDIC8qIFBvc2l0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5NzQ2QUYyQzE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25DYWxsYmFjay5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJOTc0NkFGMkUxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9u
RXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NDZBRjMwMTRGNERERTYwMDNFN0E3MCAvKiBQ
b3NpdGlvbkVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTM3OTE5QzI0MEI3RDE4
ODYwMEE1Njk5OCAvKiBQb3NpdGlvbkl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2
QUYzMjE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLywK
QEAgLTMyODA0LDcgKzMyODA0LDcgQEAKIAkJCQk1MTZDNjIyMDE5NTBENDg3MDAzMzdFNzUgLyog
R2FtZXBhZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlEOUU5MTk1QjkzMUYwMDFC
MkI1QyAvKiBHYW1lcGFkTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTVCRTE5MTFE
NTRGNUZCMDBERDdDNjggLyogR2FtZXBhZFByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CTgzNzk2NENGMUY4REI2OUQwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJODM3OTY0Q0YxRjhEQjY5RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhSU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNkUyMUM2QzAxMTI2MzM4NTAw
QTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFNzJG
NTRFMjI5RENEMTAwMEIzRTE1MSAvKiBHcmFwaGljc0NvbnRleHQzREFOR0xFLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDM0U1MTBCMThERjhGMzUwMEMxMTJGNyAvKiBIVE1MQ29udmVydGVyLm1t
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKaW5kZXggYjgwY2MxZTBmY2EwODEzYjM1MDgxM2Fh
OThiMGM3ZGU5MzA5M2M4ZC4uZThlYzFjODRkNGMxMWZlN2IxMzUxYzcwYmE1NmY5OWI3YTg2NmEw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNs
aWVudE1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRp
b25DbGllbnRNb2NrLmNwcApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIEdlb2xvY2F0aW9uQ2xpZW50
TW9jazo6c2V0Q29udHJvbGxlcihHZW9sb2NhdGlvbkNvbnRyb2xsZXIgKmNvbnRyb2xsZXIpCiAg
ICAgbV9jb250cm9sbGVyID0gY29udHJvbGxlcjsKIH0KIAotdm9pZCBHZW9sb2NhdGlvbkNsaWVu
dE1vY2s6OnNldFBvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb24mJiBwb3NpdGlvbikKK3ZvaWQg
R2VvbG9jYXRpb25DbGllbnRNb2NrOjpzZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YSYmIHBvc2l0aW9uKQogewogICAgIG1fbGFzdFBvc2l0aW9uID0gV1RGTW92ZShwb3NpdGlvbik7
CiAgICAgY2xlYXJFcnJvcigpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgR2VvbG9jYXRpb25D
bGllbnRNb2NrOjpzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkKICAgICAvLyBTZWUgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NDM4CiB9CiAKLU9wdGlvbmFsPEdl
b2xvY2F0aW9uUG9zaXRpb24+IEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6bGFzdFBvc2l0aW9uKCkK
K09wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBHZW9sb2NhdGlvbkNsaWVudE1vY2s6
Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgcmV0dXJuIG1fbGFzdFBvc2l0aW9uOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2su
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmgK
aW5kZXggMjdjY2Q5NDMxNjUxNmMxMWMwNmNmZjM5ODRiYjcwYTI1MjAxZWFmMC4uZTIyYWZjNTA4
ZmE2MDBiMTczZTIxYmIwYWRjYjI1OWVlMjJjYWE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oCkBAIC0zMiw3ICszMiw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50LmgiCi0jaW5j
bHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRp
b25EYXRhLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZv
aWQgcmVzZXQoKTsKICAgICB2b2lkIHNldENvbnRyb2xsZXIoR2VvbG9jYXRpb25Db250cm9sbGVy
Kik7CiAKLSAgICB2b2lkIHNldFBvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb24mJik7CisgICAg
dm9pZCBzZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKTsKICAgICB2b2lkIHNl
dFBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAg
ICAgdm9pZCBzZXRQZXJtaXNzaW9uKGJvb2wgYWxsb3dlZCk7CiAgICAgaW50IG51bWJlck9mUGVu
ZGluZ1Blcm1pc3Npb25SZXF1ZXN0cygpIGNvbnN0OwpAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzdGFydFVwZGF0aW5nKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wVXBkYXRp
bmcoKSBvdmVycmlkZTsKICAgICB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKSBvdmVy
cmlkZTsKLSAgICBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uPiBsYXN0UG9zaXRpb24oKSBv
dmVycmlkZTsKKyAgICBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gbGFzdFBvc2l0
aW9uKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihHZW9sb2NhdGlvbiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoR2VvbG9jYXRpb24m
KSBvdmVycmlkZTsKIApAQCAtNzYsNyArNzYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJF
cnJvcigpOwogCiAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7Ci0gICAg
T3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247CisgICAgT3B0aW9u
YWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IG1fbGFzdFBvc2l0aW9uOwogICAgIGJvb2wgbV9o
YXNFcnJvcjsKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CiAgICAgVGltZXIgbV9jb250cm9s
bGVyVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHZW9sb2NhdGlv
blBvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRp
b24uY3BwCmluZGV4IDNmMTU1OGI3NTJiZWY4YzkyYjQxNjk2ZmQ0NmEwYzA4MWI1YmJlYWEuLmU5
OWRjYzVjMGEzZGNiZTQ5ZGI1MzhlZDI2MzViYzBmNjQzNWQxYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCkBAIC0zMiw3ICszMiw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24+IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZShHZW9s
b2NhdGlvblBvc2l0aW9uJiYgZ2VvbG9jYXRpb25Qb3NpdGlvbikKK1JlZjxXZWJHZW9sb2NhdGlv
blBvc2l0aW9uPiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEmJiBnZW9sb2NhdGlvblBvc2l0aW9uKQogewogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24oV1RGTW92ZShnZW9sb2NhdGlvblBvc2l0aW9uKSkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCmlu
ZGV4IGMxZmNjYTdjYmI1OGJlNDQwNjlhNzFlYjk4MmE4MTVlMjljNjM2YzQuLmE5NjhmODRmOWFi
ZWZmNTVlYjRkY2E1ZGEzYTQwNmUyOWQ1YjcxMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbl9oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRl
IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3Bh
Y2UgSVBDIHsKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24gOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0
OjpUeXBlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uPiBjcmVhdGUoV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlv
biYmKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IGNyZWF0ZShXZWJD
b3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKTsKIAogICAgIHZpcnR1YWwgfldlYkdlb2xv
Y2F0aW9uUG9zaXRpb24oKTsKIApAQCAtNTIsMTUgKzUyLDE1IEBAIHB1YmxpYzoKICAgICBPcHRp
b25hbDxkb3VibGU+IGhlYWRpbmcoKSBjb25zdCB7IHJldHVybiBtX2NvcmVQb3NpdGlvbi5oZWFk
aW5nOyB9CiAgICAgT3B0aW9uYWw8ZG91YmxlPiBzcGVlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY29y
ZVBvc2l0aW9uLnNwZWVkOyB9CiAKLSAgICBjb25zdCBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0
aW9uJiBjb3JlUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NvcmVQb3NpdGlvbjsgfQorICAg
IGNvbnN0IFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiBjb3JlUG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBtX2NvcmVQb3NpdGlvbjsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0
IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24oV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiYmIGdl
b2xvY2F0aW9uUG9zaXRpb24pCisgICAgZXhwbGljaXQgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbihX
ZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmIGdlb2xvY2F0aW9uUG9zaXRpb24pCiAg
ICAgICAgIDogbV9jb3JlUG9zaXRpb24oV1RGTW92ZShnZW9sb2NhdGlvblBvc2l0aW9uKSkKICAg
ICB7CiAgICAgfQogCi0gICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiBtX2NvcmVQb3Np
dGlvbjsKKyAgICBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBtX2NvcmVQb3NpdGlv
bjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKaW5kZXggYWFiYzNk
OWY2ZDk1MWMyNDQ0ZTU0NWMxODhmNzA0ZjY3NTlmMGYyNS4uYzA4ZTRhZGNhNmU5YTFhYTM0YTI5
Y2Y3ODM2NGY4MWQ4OGZjY2EzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwCkBAIC00OCw3ICs0OCw3IEBAIFdL
R2VvbG9jYXRpb25Qb3NpdGlvblJlZiBXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGVfYihkb3Vi
bGUgdGltZXN0YW1wLCBkb3VibGUKIAogV0tHZW9sb2NhdGlvblBvc2l0aW9uUmVmIFdLR2VvbG9j
YXRpb25Qb3NpdGlvbkNyZWF0ZV9jKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwg
ZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3ZpZGVzQWx0aXR1ZGUs
IGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBh
bHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91YmxlIGhlYWRpbmcsIGJv
b2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkLCBib29sIHByb3ZpZGVzRmxvb3JMZXZlbCwg
ZG91YmxlIGZsb29yTGV2ZWwpCiB7Ci0gICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiBj
b3JlUG9zaXRpb24geyB0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH07
CisgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEgY29yZVBvc2l0aW9uIHsgdGlt
ZXN0YW1wLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSB9OwogICAgIGlmIChwcm92aWRl
c0FsdGl0dWRlKQogICAgICAgICBjb3JlUG9zaXRpb24uYWx0aXR1ZGUgPSBhbHRpdHVkZTsKICAg
ICBpZiAocHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0dlb2xvY2F0aW9uUG9zaXRpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQppbmRl
eCBjOTY5Y2E4YzFhNDBiMTcwOGVhNzNmZmY3ZGIzOGQ4MDQ4NWNhYzkzLi4wOWEwZDYwMDFhZjcx
OTYxZmZhNzlkNjJiOTFlMDhmYjU3YmVkZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQpAQCAt
MzcsNyArMzcsNyBAQCArIChpbnN0YW5jZXR5cGUpcG9zaXRpb25XaXRoTG9jYXRpb246KENMTG9j
YXRpb24gKilsb2NhdGlvbgogICAgIGlmICghbG9jYXRpb24pCiAgICAgICAgIHJldHVybiBuaWw7
CiAKLSAgICByZXR1cm4gd3JhcHBlcihXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNy
ZWF0ZShXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uIHsgbG9jYXRpb24gfSkpOworICAgIHJl
dHVybiB3cmFwcGVyKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKFdlYkNv
cmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIHsgbG9jYXRpb24gfSkpOwogfQogCiAtICh2b2lk
KWRlYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdEdlb2xvY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCmluZGV4IDhjYmE0MjJlZDVlMzhiZjg0
Yzc2MDU5NGQ2Y2YwZjY1ODhjYmVhNWUuLmQwY2I0YzBiZTZhNmQzOTBkNjdlOTNjZjhkN2Q2YWQ1
NjAwYjU3ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdEdlb2xvY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0R2VvbG9jYXRpb25NYW5hZ2VyLmNwcApAQCAtNzAsMTcgKzcwLDE3IEBA
IHN0cnVjdCBfV2ViS2l0R2VvbG9jYXRpb25Qb3NpdGlvbiB7CiAgICAgICAgIHBvc2l0aW9uLmFj
Y3VyYWN5ID0gYWNjdXJhY3k7CiAgICAgfQogCi0gICAgZXhwbGljaXQgX1dlYktpdEdlb2xvY2F0
aW9uUG9zaXRpb24oR2VvbG9jYXRpb25Qb3NpdGlvbiYmIGNvcmVQb3NpdGlvbikKKyAgICBleHBs
aWNpdCBfV2ViS2l0R2VvbG9jYXRpb25Qb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYm
IGNvcmVQb3NpdGlvbikKICAgICAgICAgOiBwb3NpdGlvbihXVEZNb3ZlKGNvcmVQb3NpdGlvbikp
CiAgICAgewogICAgIH0KIAotICAgIGV4cGxpY2l0IF9XZWJLaXRHZW9sb2NhdGlvblBvc2l0aW9u
KGNvbnN0IEdlb2xvY2F0aW9uUG9zaXRpb24mIG90aGVyKQorICAgIGV4cGxpY2l0IF9XZWJLaXRH
ZW9sb2NhdGlvblBvc2l0aW9uKGNvbnN0IEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiBvdGhlcikK
ICAgICB7CiAgICAgICAgIHBvc2l0aW9uID0gb3RoZXI7CiAgICAgfQogCi0gICAgR2VvbG9jYXRp
b25Qb3NpdGlvbiBwb3NpdGlvbjsKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBwb3NpdGlv
bjsKIH07CiAKIC8qKgpAQCAtMjUyLDcgKzI1Miw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdEdlb2xv
Y2F0aW9uTWFuYWdlclN0YXJ0KFdlYktpdEdlb2xvY2F0aW9uTWFuYWdlciogbWFuYWdlcikKICAg
ICAgICAgbWFuYWdlci0+cHJpdi0+Z2VvY2x1ZVByb3ZpZGVyID0gbWFrZVVuaXF1ZTxHZW9jbHVl
R2VvbG9jYXRpb25Qcm92aWRlcj4oKTsKICAgICAgICAgbWFuYWdlci0+cHJpdi0+Z2VvY2x1ZVBy
b3ZpZGVyLT5zZXRFbmFibGVIaWdoQWNjdXJhY3kobWFuYWdlci0+cHJpdi0+aGlnaEFjY3VyYWN5
RW5hYmxlZCk7CiAgICAgfQotICAgIG1hbmFnZXItPnByaXYtPmdlb2NsdWVQcm92aWRlci0+c3Rh
cnQoW21hbmFnZXJdKEdlb2xvY2F0aW9uUG9zaXRpb24mJiBjb3JlUG9zaXRpb24sIE9wdGlvbmFs
PENTdHJpbmc+IGVycm9yKSB7CisgICAgbWFuYWdlci0+cHJpdi0+Z2VvY2x1ZVByb3ZpZGVyLT5z
dGFydChbbWFuYWdlcl0oR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiBjb3JlUG9zaXRpb24sIE9w
dGlvbmFsPENTdHJpbmc+IGVycm9yKSB7CiAgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAg
ICAgd2Via2l0X2dlb2xvY2F0aW9uX21hbmFnZXJfZmFpbGVkKG1hbmFnZXIsIGVycm9yLT5kYXRh
KCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNDEzLDcgKzQxMyw3IEBAIHZvaWQgd2Via2l0
X2dlb2xvY2F0aW9uX21hbmFnZXJfdXBkYXRlX3Bvc2l0aW9uKFdlYktpdEdlb2xvY2F0aW9uTWFu
YWdlciogbWFuYWdlCiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfR0VPTE9DQVRJT05f
TUFOQUdFUihtYW5hZ2VyKSk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChwb3NpdGlvbik7CiAKLSAg
ICBHZW9sb2NhdGlvblBvc2l0aW9uIGNvcmVQb3NpdGlvbiA9IHBvc2l0aW9uLT5wb3NpdGlvbjsK
KyAgICBhdXRvIGNvcmVQb3NpdGlvbiA9IHBvc2l0aW9uLT5wb3NpdGlvbjsKICAgICBhdXRvIHdr
UG9zaXRpb24gPSBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoV1RGTW92ZShjb3JlUG9z
aXRpb24pKTsKICAgICBtYW5hZ2VyLT5wcml2LT5tYW5hZ2VyLT5wcm92aWRlckRpZENoYW5nZVBv
c2l0aW9uKHdrUG9zaXRpb24ucHRyKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgKaW5kZXggMTdjMDg2OWNhZTYyNzU2
MWUzNDg4ODI0ZDJhNWY3ZGUxN2JmNjc3Mi4uNmI2NGNmZjJjMDU4MGNlNjA0MjE1MTg1OTM5MmJk
M2NjMjJlNmVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eS5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIldlYkNvbnRl
eHRTdXBwbGVtZW50LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTU1
LDcgKzU1LDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCBy
ZXNldFBlcm1pc3Npb25zKCk7CiAjZW5kaWYKLSAgICBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpH
ZW9sb2NhdGlvblBvc2l0aW9uPiYgbGFzdFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0
UG9zaXRpb247IH0KKyAgICBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YT4mIGxhc3RQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFBvc2l0aW9uOyB9
CiAKICAgICB1c2luZyBBUEk6Ok9iamVjdDo6cmVmOwogICAgIHVzaW5nIEFQSTo6T2JqZWN0Ojpk
ZXJlZjsKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PGNvbnN0IElQQzo6
Q29ubmVjdGlvbjo6Q2xpZW50Kj4gbV9oaWdoQWNjdXJhY3lSZXF1ZXN0ZXJzOwogCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEFQSTo6R2VvbG9jYXRpb25Qcm92aWRlcj4gbV9wcm92aWRlcjsKLSAgICBP
cHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiBtX2xhc3RQb3NpdGlvbjsKKyAg
ICBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gbV9sYXN0UG9zaXRp
b247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2dlb2NsdWUvR2VvY2x1ZUdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlci5j
cHAKaW5kZXggNmRiNjk4ODUwNTE1NTA3Zjk4MGNhNzg3OWExNGI5NjQyYTlkZjhkZi4uZGJhMmE5
OTBkMTU2ODMyMTZhNmZhOTBhNDhlYjMwZWViZDNjNTI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92
aWRlci5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJHZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlci5oIgogCi0jaW5jbHVkZSA8V2ViQ29yZS9HZW9s
b2NhdGlvblBvc2l0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9u
RGF0YS5oPgogI2luY2x1ZGUgPGdpby9naW8uaD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5o
PgogI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KQEAgLTI2MCw3ICsyNjAsNyBAQCB2
b2lkIEdlb2NsdWVHZW9sb2NhdGlvblByb3ZpZGVyOjpjcmVhdGVMb2NhdGlvbihjb25zdCBjaGFy
KiBsb2NhdGlvblBhdGgpCiAKIHZvaWQgR2VvY2x1ZUdlb2xvY2F0aW9uUHJvdmlkZXI6OmxvY2F0
aW9uVXBkYXRlZChHUmVmUHRyPEdEQnVzUHJveHk+JiYgcHJveHkpCiB7Ci0gICAgV2ViQ29yZTo6
R2VvbG9jYXRpb25Qb3NpdGlvbiBwb3NpdGlvbjsKKyAgICBXZWJDb3JlOjpHZW9sb2NhdGlvblBv
c2l0aW9uRGF0YSBwb3NpdGlvbjsKICAgICBHUmVmUHRyPEdWYXJpYW50PiBwcm9wZXJ0eSA9IGFk
b3B0R1JlZihnX2RidXNfcHJveHlfZ2V0X2NhY2hlZF9wcm9wZXJ0eShwcm94eS5nZXQoKSwgIkxh
dGl0dWRlIikpOwogICAgIHBvc2l0aW9uLmxhdGl0dWRlID0gZ192YXJpYW50X2dldF9kb3VibGUo
cHJvcGVydHkuZ2V0KCkpOwogICAgIHByb3BlcnR5ID0gYWRvcHRHUmVmKGdfZGJ1c19wcm94eV9n
ZXRfY2FjaGVkX3Byb3BlcnR5KHByb3h5LmdldCgpLCAiTG9uZ2l0dWRlIikpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92
aWRlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRp
b25Qcm92aWRlci5oCmluZGV4IDU3MTFlMmE3NjE0OWMzZjQ4MDFlNjVlMzg3Y2M4ZWVjZTRkNWVl
NjAuLjMxZDI5MDkxOTg1ZjM0YTY1MTM0YTJiMGU3Y2IzYWNlMWRhZTQ0MWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dlb2NsdWUvR2VvY2x1ZUdlb2xvY2F0aW9uUHJvdmlk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nZW9jbHVlL0dlb2NsdWVHZW9sb2Nh
dGlvblByb3ZpZGVyLmgKQEAgLTMzLDcgKzMzLDcgQEAKIHR5cGVkZWYgc3RydWN0IF9HREJ1c1By
b3h5IEdEQnVzUHJveHk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIEdlb2xvY2F0aW9u
UG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YTsKIH0KIAogbmFtZXNwYWNl
IFdlYktpdCB7CkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICBHZW9jbHVlR2VvbG9jYXRp
b25Qcm92aWRlcigpOwogICAgIH5HZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlcigpOwogCi0gICAg
dXNpbmcgVXBkYXRlTm90aWZ5RnVuY3Rpb24gPSBGdW5jdGlvbjx2b2lkKFdlYkNvcmU6Okdlb2xv
Y2F0aW9uUG9zaXRpb24mJiwgT3B0aW9uYWw8Q1N0cmluZz4gZXJyb3IpPjsKKyAgICB1c2luZyBV
cGRhdGVOb3RpZnlGdW5jdGlvbiA9IEZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6R2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGEmJiwgT3B0aW9uYWw8Q1N0cmluZz4gZXJyb3IpPjsKICAgICB2b2lkIHN0YXJ0
KFVwZGF0ZU5vdGlmeUZ1bmN0aW9uJiYpOwogICAgIHZvaWQgc3RvcCgpOwogICAgIHZvaWQgc2V0
RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KaW5kZXggNTI1ZmIyZjhkY2Nj
MjBhMGY0MGUyN2I5ZTY0NDI5Y2FmZThkZTMwNy4uMTMwOWNlYWE0NmI1MGEyZTBjNTVkOWE5ZDZh
OTA3MzU0OGI4N2Y3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
R2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCkBAIC0yOTYsNyArMjk2LDcgQEAgLSAodm9p
ZClnZW9sb2NhdGlvbkF1dGhvcml6YXRpb25EZW5pZWQKICAgICBbX2xpc3RlbmVyIGdlb2xvY2F0
aW9uQXV0aG9yaXphdGlvbkRlbmllZF07CiB9CiAKLS0gKHZvaWQpcG9zaXRpb25DaGFuZ2VkOihX
ZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZVBvc2l0aW9uCistICh2b2lkKXBvc2l0
aW9uQ2hhbmdlZDooV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiljb3JlUG9zaXRp
b24KIHsKICAgICBBU1NFUlQoX2xpc3RlbmVyKTsKICAgICBhdXRvIHBvc2l0aW9uID0gV2ViS2l0
OjpXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoV1RGTW92ZShjb3JlUG9zaXRpb24pKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9s
b2NhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9u
L1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMDIwMjQwMjNjOWYxYzU2M2JmOTEzMDA4
NTg1NmM0ZDgxNzI5OTEzNC4uYTk2NTU5OGZhNDNiOWQ0OGFkYTYyMjA2NTI3MDY0NWY0MmJkYTU5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdl
b2xvY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xv
Y2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlv
bkNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uRXJyb3IuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFdlYkdlb2xvY2F0aW9u
TWFuYWdlcjo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5Rm9yUGFnZShXZWJQYWdlJiBwYWdlLCBib29s
IGVuYQogICAgICAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OlNldEVuYWJsZUhpZ2hBY2N1cmFj
eShoaWdoQWNjdXJhY3lTaG91bGRCZUVuYWJsZWQpLCAwKTsKIH0KIAotdm9pZCBXZWJHZW9sb2Nh
dGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKGNvbnN0IEdlb2xvY2F0aW9uUG9zaXRpb24m
IHBvc2l0aW9uKQordm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9u
KGNvbnN0IEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiBwb3NpdGlvbikKIHsKICNpZiBFTkFCTEUo
R0VPTE9DQVRJT04pCiAgICAgZm9yIChhdXRvJiBwYWdlIDogY29weVRvVmVjdG9yKG1fcGFnZVNl
dCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2Nh
dGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaAppbmRleCBhNmMyODcxNmFiMTY3OGFmZGQ1NzRj
OWRmOWZlMjg2ODYzNDYzMDE5Li4yMWVhNjdhZmJlNTYzMzkzNmI3Y2ExM2Q2YjU4N2FjODlkY2Nk
NTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xv
Y2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCkBAIC0zNSw3ICszNSw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdlb2xvY2F0aW9uOwotY2xhc3MgR2VvbG9jYXRpb25Qb3Np
dGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOwogfQogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzVXBkYXRpbmcoKSBj
b25zdCB7IHJldHVybiAhbV9wYWdlU2V0LmlzRW1wdHkoKTsgfQogICAgIGJvb2wgaXNIaWdoQWNj
dXJhY3lFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gIW1faGlnaEFjY3VyYWN5UGFnZVNldC5pc0Vt
cHR5KCk7IH0KIAotICAgIHZvaWQgZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6R2Vv
bG9jYXRpb25Qb3NpdGlvbiYpOworICAgIHZvaWQgZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgV2Vi
Q29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmKTsKICAgICB2b2lkIGRpZEZhaWxUb0RldGVy
bWluZVBvc2l0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIHZvaWQgcmVzZXRQZXJtaXNzaW9ucygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9s
b2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggMDQzZWY2NDk0OTA5ZTRmMWYzZjY0MjAy
NjVkMzhkMjYyZGYwNGQzZS4uYjUyZTgxNjIwNTk2MzAwMjA1MGRmYTBkYTViZDI1ZmVmZDQzZTM1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdl
b2xvY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yMSw3
ICsyMSw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IFdlYkdlb2xvY2F0aW9uTWFu
YWdlciB7Ci0gICAgRGlkQ2hhbmdlUG9zaXRpb24oV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlv
biBwb3NpdGlvbik7CisgICAgRGlkQ2hhbmdlUG9zaXRpb24oV2ViQ29yZTo6R2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGEgcG9zaXRpb24pOwogICAgIERpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKFN0
cmluZyBlcnJvck1lc3NhZ2UpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgUmVzZXRQ
ZXJtaXNzaW9ucygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggNjVjOWYyNWQyZWU4ODM3ODM3
ZDI1NDdjMTJlZTYxZmNmZjhkMWZhOC4uZTcyYjg0MjNjZWU5MTZlNmIwYmVlNmM3ODcyMjg4M2Vm
ZmJiMWMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC02Miw3ICs2Miw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9HQ0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9u
Q2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9KU0RPTUNvbnZl
cnRCdWZmZXJTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NRXhjZXB0aW9uSGFuZGxp
bmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ2xpZW50LmNwcAppbmRleCBhMjRlMGZmMjFjY2RjNjQ0Zjc3NTY5ODdlZTA4YmNhN2RlNjBm
Yjg4Li45OGM1MTIxMzQwM2JkYjNiODhjMmY2NDFlYTJlY2Q1NWVmNDRjOTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25D
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJXZWJQ
YWdlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9j
YXRpb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgV2Vi
R2VvbG9jYXRpb25DbGllbnQ6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sIGVuYWJsZWQpCiAg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxXZWJHZW9sb2NhdGlvbk1hbmFn
ZXI+KCktPnNldEVuYWJsZUhpZ2hBY2N1cmFjeUZvclBhZ2UobV9wYWdlLCBlbmFibGVkKTsKIH0K
IAotT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxh
c3RQb3NpdGlvbigpCitPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gV2ViR2VvbG9j
YXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJHZW9sb2NhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKaW5kZXggMzVhMzFmYzJhMzQ0YjMxMjg3MzA1
MDRiN2ZlN2ExMTVmMDExYjg4My4uZDQ3NzZlOTE1MWE3NTAxNWE4NjA3ZTc1MDVjMmU5NDc0ZmI5
NjdmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHN0b3BVcGRhdGluZygpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0RW5h
YmxlSGlnaEFjY3VyYWN5KGJvb2wpIG92ZXJyaWRlOwogCi0gICAgT3B0aW9uYWw8V2ViQ29yZTo6
R2VvbG9jYXRpb25Qb3NpdGlvbj4gbGFzdFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgT3B0aW9u
YWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlvbigpIG92ZXJy
aWRlOwogCiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpHZW9sb2NhdGlvbiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoV2ViQ29yZTo6R2Vv
bG9jYXRpb24mKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9z
L01pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktp
dExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmgKaW5k
ZXggMDQ5MGZjZmIxZGIwNGJmNmIwMjRlOGU0MDk2NzU3MGY3YzVhYzEzOC4uODQyN2NiODEwMmQ2
MmI0MGU2OGJlMTAxNmUyMmZkNDI0YTI2OTI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblBy
b3ZpZGVyLmgKQEAgLTI5LDcgKzI5LDcgQEAKIEBjbGFzcyBOU1N0cmluZzsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewotY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhOwogfQogCiAvLyBXZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvbkRlbGVnYXRl
IGFic3RyYWN0cyB0aGUgbG9jYXRpb24gc2VydmljZXMgb2YgQ29yZUxvY2F0aW9uLgpAQCAtNDMs
NyArNDMsNyBAQCBjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOwogLSAodm9pZClnZW9sb2NhdGlv
bkF1dGhvcml6YXRpb25HcmFudGVkOwogLSAodm9pZClnZW9sb2NhdGlvbkF1dGhvcml6YXRpb25E
ZW5pZWQ7CiAKLS0gKHZvaWQpcG9zaXRpb25DaGFuZ2VkOihXZWJDb3JlOjpHZW9sb2NhdGlvblBv
c2l0aW9uJiYpcG9zaXRpb247CistICh2b2lkKXBvc2l0aW9uQ2hhbmdlZDooV2ViQ29yZTo6R2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGEmJilwb3NpdGlvbjsKIC0gKHZvaWQpZXJyb3JPY2N1cnJlZDoo
TlNTdHJpbmcgKillcnJvck1lc3NhZ2U7CiAtICh2b2lkKXJlc2V0R2VvbG9jYXRpb247CiBAZW5k
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9u
Q29yZUxvY2F0aW9uUHJvdmlkZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dl
Ykdlb2xvY2F0aW9uQ29yZUxvY2F0aW9uUHJvdmlkZXIubW0KaW5kZXggYzVmNjQ2YjJhNDUxNTVk
OTY1Yjg5MzM0YWE1NmZhN2ExMGQzM2Y5MC4uZGU5MTMzYmYwOGZhYWJjYWY3Zjg1ZGJkYWQ1YjA4
YTEzNGEyM2ZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlzYy9XZWJH
ZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5tbQpAQCAtMzAs
NyArMzAsNyBAQAogI2ltcG9ydCA8Q29yZUxvY2F0aW9uL0NMTG9jYXRpb24uaD4KICNpbXBvcnQg
PENvcmVMb2NhdGlvbi9DTExvY2F0aW9uTWFuYWdlckRlbGVnYXRlLmg+CiAjaW1wb3J0IDxDb3Jl
TG9jYXRpb24vQ29yZUxvY2F0aW9uLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9z
aXRpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaD4KICNp
bXBvcnQgPFdlYktpdExvZ2dpbmcuaD4KICNpbXBvcnQgPG9iamMvb2JqYy1ydW50aW1lLmg+CiAj
aW1wb3J0IDx3dGYvUmVmUHRyLmg+CkBAIC0xNzAsNyArMTcwLDcgQEAgLSAodm9pZClsb2NhdGlv
bk1hbmFnZXI6KENMTG9jYXRpb25NYW5hZ2VyICopbWFuYWdlciBkaWRDaGFuZ2VBdXRob3JpemF0
aW9uU3RhdHUKIAogLSAodm9pZClzZW5kTG9jYXRpb246KENMTG9jYXRpb24gKiluZXdMb2NhdGlv
bgogewotICAgIFtfcG9zaXRpb25MaXN0ZW5lciBwb3NpdGlvbkNoYW5nZWQ6R2VvbG9jYXRpb25Q
b3NpdGlvbiB7IG5ld0xvY2F0aW9uIH1dOworICAgIFtfcG9zaXRpb25MaXN0ZW5lciBwb3NpdGlv
bkNoYW5nZWQ6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEgeyBuZXdMb2NhdGlvbiB9XTsKIH0KIAog
LSAodm9pZClsb2NhdGlvbk1hbmFnZXI6KENMTG9jYXRpb25NYW5hZ2VyICopbWFuYWdlciBkaWRV
cGRhdGVMb2NhdGlvbnM6KE5TQXJyYXkgKilsb2NhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQppbmRl
eCBjMmZmMzUwZjc0NTI2ZTEyNTZjMTllNGY1MjA4NWNiMzUxZDI0OTY4Li41ZTc3Nzk2NGYxNDll
ZjI2YjAwOTM5NTI1MDgyNDUxMDUyNzhjODE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCkBAIC00Miw3
ICs0Miw3IEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogQGludGVyZmFjZSBXZWJHZW9s
b2NhdGlvblBvc2l0aW9uIChJbnRlcm5hbCkKLS0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb25Qb3Np
dGlvbjooR2VvbG9jYXRpb25Qb3NpdGlvbiYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOworLSAo
aWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYm
KWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOwogQGVuZAogCiAvLyBDb3JlTG9jYXRpb24gcnVucyBp
biB0aGUgbWFpbiB0aHJlYWQuIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MgbGl2ZXMgb24gdGhl
IFdlYlRocmVhZC4KQEAgLTM0OCw3ICszNDgsNyBAQCAtICh2b2lkKWdlb2xvY2F0aW9uQXV0aG9y
aXphdGlvbkRlbmllZAogICAgIH0pOwogfQogCi0tICh2b2lkKXBvc2l0aW9uQ2hhbmdlZDooV2Vi
Q29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiYmKXBvc2l0aW9uCistICh2b2lkKXBvc2l0aW9uQ2hh
bmdlZDooV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJilwb3NpdGlvbgogewogICAg
IFJldGFpblB0cjxXZWJHZW9sb2NhdGlvblBvc2l0aW9uPiB3ZWJQb3NpdGlvbiA9IGFkb3B0TlMo
W1tXZWJHZW9sb2NhdGlvblBvc2l0aW9uIGFsbG9jXSBpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRp
b246V1RGTW92ZShwb3NpdGlvbildKTsKICAgICBXZWJUaHJlYWRSdW4oXnsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2Nh
dGlvbkNsaWVudC5oCmluZGV4IGZmZGJhY2ZjMjc0MjFlOGQzNTg4OGYyY2U2YjE4MDc3YTE2ZTMz
ZjAuLjhhMWI3ZjAwOWQyY2ZhMThiMGU4ZjM1MTMyODE3MTBkYjZiNDRhODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2Vv
bG9jYXRpb25DbGllbnQuaApAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBHZW9sb2NhdGlvbjsKLWNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFzcyBH
ZW9sb2NhdGlvblBvc2l0aW9uRGF0YTsKIH0KIAogQGNsYXNzIFdlYlZpZXc7CkBAIC00OCw3ICs0
OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKSBvdmVy
cmlkZSB7IH0KICNlbmRpZgogCi0gICAgT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3Np
dGlvbj4gbGFzdFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6R2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlvbigpIG92ZXJyaWRlOwogCiAgICAgdm9p
ZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpHZW9sb2NhdGlvbiYpIG92ZXJyaWRlOwogICAg
IHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoV2ViQ29yZTo6R2VvbG9jYXRpb24mKSBvdmVy
cmlkZSB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCmluZGV4IDJjZjcxNWUyZDkwZGZl
NzY2ODQ4OGJjMTc0NTFiMTNlZGIyZTMwZjguLjg3ZGE3MzBmZWFhZmRlZGQ3NzRlZDdlYTk2YjZm
OGQwOTNlYTlhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCkBAIC0xMzIsNyArMTMy
LDcgQEAgdm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oR2VvbG9j
YXRpb24mIGdlb2xvY2F0aW9uKQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAK
LU9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+IFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0
UG9zaXRpb24oKQorT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IFdlYkdlb2xvY2F0
aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24oKQogewogICAgIHJldHVybiBjb3JlKFtbbV93ZWJWaWV3
IF9nZW9sb2NhdGlvblByb3ZpZGVyXSBsYXN0UG9zaXRpb25dKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5t
bQppbmRleCBkMTVmNWY5YzY5ZWI0ZTZhN2YzZWQ5ZmFmNmVlZjM5NWNlYzFiZDhhLi41ZGJmZDM1
NWE4NWM5N2UwMjliZTUxZjc0NTc1NWQzMTVkNDBlOTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tCkBA
IC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0ICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAKICNp
bXBvcnQgIldlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oIgotI2ltcG9ydCA8V2ViQ29y
ZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9z
aXRpb25EYXRhLmg+CiAjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KICNpbXBvcnQgPHd0Zi9SZWZQ
dHIuaD4KIApAQCAtMzUsMTUgKzM1LDE1IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogQGlu
dGVyZmFjZSBXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwgOiBOU09iamVjdAogewogQHB1
YmxpYwotICAgIEdlb2xvY2F0aW9uUG9zaXRpb24gX3Bvc2l0aW9uOworICAgIEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhIF9wb3NpdGlvbjsKIH0KIAotLSAoaWQpaW5pdFdpdGhDb3JlR2VvbG9jYXRp
b25Qb3NpdGlvbjooR2VvbG9jYXRpb25Qb3NpdGlvbiYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9u
OworLSAoaWQpaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjooR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEmJiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjsKIEBlbmQKIAogQGltcGxlbWVudGF0
aW9uIFdlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbAogCi0tIChpZClpbml0V2l0aENvcmVH
ZW9sb2NhdGlvblBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZUdlb2xvY2F0aW9u
UG9zaXRpb24KKy0gKGlkKWluaXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246KEdlb2xvY2F0
aW9uUG9zaXRpb25EYXRhJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb24KIHsKICAgICBzZWxmID0g
W3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKQEAgLTU2LDcgKzU2LDcgQEAgQGVuZAogCiBA
aW1wbGVtZW50YXRpb24gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbgogCi1PcHRpb25hbDxHZW9sb2Nh
dGlvblBvc2l0aW9uPiBjb3JlKFdlYkdlb2xvY2F0aW9uUG9zaXRpb24gKnBvc2l0aW9uKQorT3B0
aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGNvcmUoV2ViR2VvbG9jYXRpb25Qb3NpdGlv
biAqcG9zaXRpb24pCiB7CiAgICAgaWYgKCFwb3NpdGlvbikKICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKQEAgLTY4LDExICs2OCwxMSBAQCAtIChpZClpbml0V2l0aFRpbWVzdGFtcDooZG91
YmxlKXRpbWVzdGFtcCBsYXRpdHVkZTooZG91YmxlKWxhdGl0dWRlIGxvbmdpdHVkZTooZAogICAg
IHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmls
OwotICAgIF9pbnRlcm5hbCA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsIGFsbG9j
XSBpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOkdlb2xvY2F0aW9uUG9zaXRpb24geyB0
aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH1dOworICAgIF9pbnRlcm5h
bCA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsIGFsbG9jXSBpbml0V2l0aENvcmVH
ZW9sb2NhdGlvblBvc2l0aW9uOkdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIHsgdGltZXN0YW1wLCBs
YXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSB9XTsKICAgICByZXR1cm4gc2VsZjsKIH0KIAot
LSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uJiYp
Y29yZUdlb2xvY2F0aW9uUG9zaXRpb24KKy0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlv
bjooR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbgogewog
ICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJu
YWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbkludGVybmFsLmgKaW5kZXggMzQ3NjMwMmYyZDZlYzM2MjIwMzM5MDQyZjRmYjJiYmViOTcy
NTc5MS4uN2VhYWE5YzBlY2M1MGE4ODgxYzI4OGNkZjY5ZWM4Zjk0NGQ4NzJlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9u
SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkdlb2xv
Y2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oCkBAIC0yNyw4ICsyNyw4IEBACiAjaW1wb3J0IDx3dGYv
T3B0aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIEdlb2xvY2F0aW9u
UG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YTsKIH0KIAotT3B0aW9uYWw8
V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbj4gY29yZShXZWJHZW9sb2NhdGlvblBvc2l0aW9u
ICopOworT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGNvcmUoV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbiAqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCmlu
ZGV4IDI3ZDc4NWUwODViZjcwY2Q3ZmE5ZjY3MTFmOTg0YWMxZWNlOThhYTguLjUzNzkzYjFkNGJj
ZTJlZjM4NjZlN2EyODAzMjI4MTNiMWZjYzllNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVu
dC5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVk
ZSAiV2ViR2VvbG9jYXRpb25Qb2xpY3lMaXN0ZW5lci5oIgotI2luY2x1ZGUgIldlYkdlb2xvY2F0
aW9uUG9zaXRpb24uaCIKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oIgog
I2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBXZWJHZW9s
b2NhdGlvbkNsaWVudDo6c3RvcFVwZGF0aW5nKCkKICAgICBwcm92aWRlci0+dW5yZWdpc3Rlcldl
YlZpZXcobV93ZWJWaWV3LmdldCgpKTsKIH0KIAotT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlv
bj4gV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCitPcHRpb25hbDxHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YT4gV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCiB7
CiAgICAgQ09NUHRyPElXZWJHZW9sb2NhdGlvblByb3ZpZGVyPiBwcm92aWRlcjsKICAgICBpZiAo
RkFJTEVEKG1fd2ViVmlldy0+Z2VvbG9jYXRpb25Qcm92aWRlcigmcHJvdmlkZXIpKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJH
ZW9sb2NhdGlvbkNsaWVudC5oCmluZGV4IGJiYTljOWY0NDUzNThkN2NlM2VhMDNmODk2NjQxYmQ2
ZTVlMDQwZDMuLjA4Yjc2MjAzNDA3ZmZiMmJlOTEwOGI1NzAwYWVhN2RhYzA3NWJlZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViR2VvbG9jYXRpb25DbGllbnQuaApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBHZW9sb2NhdGlvbjsKLWNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247Citj
bGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YTsKIH0KIAogY2xhc3MgV2ViVmlldzsKQEAgLTQ0
LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIHZvaWQgc3RhcnRVcGRhdGluZygpIGZpbmFsOwogICAg
IHZvaWQgc3RvcFVwZGF0aW5nKCkgZmluYWw7CiAgICAgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJh
Y3koYm9vbCkgZmluYWwgeyB9Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3Np
dGlvbj4gbGFzdFBvc2l0aW9uKCkgZmluYWw7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9j
YXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlvbigpIGZpbmFsOwogCiAgICAgdm9pZCByZXF1
ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpHZW9sb2NhdGlvbiYpIGZpbmFsOwogICAgIHZvaWQgY2Fu
Y2VsUGVybWlzc2lvblJlcXVlc3QoV2ViQ29yZTo6R2VvbG9jYXRpb24mKSBmaW5hbCB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24u
Y3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAK
aW5kZXggNWMyMDJlYzRiNGY2N2M2NDBjZjdiM2IzMDU2YWFkNjM1Njk4YTZlZC4uZTYwZWIyMWZk
YzAxNjIxNWU3NjJlZjkwMzhmM2Q0NTlkMGI0NzNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKQEAgLTI2LDggKzI2LDYgQEAK
ICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9D
T01QdHIuaD4KIAotI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgotCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogQ09NUHRyPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+
IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZUluc3RhbmNlKCkKQEAgLTgxLDExICs3OSwx
MSBAQCBVTE9ORyBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpSZWxlYXNlKCkKIAogSFJFU1VMVCBX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uOjppbml0V2l0aFRpbWVzdGFtcChkb3VibGUgdGltZXN0YW1w
LCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKIHsK
LSAgICBtX3Bvc2l0aW9uID0gR2VvbG9jYXRpb25Qb3NpdGlvbiB7IHRpbWVzdGFtcCwgbGF0aXR1
ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kgfTsKKyAgICBtX3Bvc2l0aW9uID0gR2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGEgeyB0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH07
CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLU9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+IGNv
cmUoSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24qIHBvc2l0aW9uKQorT3B0aW9uYWw8R2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGE+IGNvcmUoSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24qIHBvc2l0aW9uKQog
ewogICAgIGlmICghcG9zaXRpb24pCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKaW5kZXgg
ZjVkOGY2N2QyYTk5YzM0MzRjYjk1MzliYmFhZWYyYTFlNDJjY2IwOC4uOTc2YjMyYWEyY2ZlZDA4
MDFhYzllOGQ4ZWFmZmQ1MzllOTkxODZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaW5jbHVk
ZSAiV2ViS2l0LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DT01QdHIuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9u
UG9zaXRpb25EYXRhLmg+CiAKIGNsYXNzIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24gZmluYWwgOiBw
dWJsaWMgSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24gewogcHVibGljOgpAQCAtNDUsMTMgKzQ1LDEz
IEBAIHB1YmxpYzoKICAgICAvLyBJV2ViR2VvbG9jYXRpb25Qb3NpdGlvbgogICAgIHZpcnR1YWwg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBpbml0V2l0aFRpbWVzdGFtcChkb3VibGUgdGltZXN0
YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSk7
CiAKLSAgICBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiYgaW1w
bCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0KKyAgICBjb25zdCBPcHRpb25hbDxXZWJD
b3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4mIGltcGwoKSBjb25zdCB7IHJldHVybiBtX3Bv
c2l0aW9uOyB9CiAKIHByaXZhdGU6CiAgICAgVUxPTkcgbV9yZWZDb3VudCB7IDAgfTsKLSAgICBP
cHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiBtX3Bvc2l0aW9uOworICAgIE9w
dGlvbmFsPFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBtX3Bvc2l0aW9uOwogfTsK
IAotT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbj4gY29yZShJV2ViR2VvbG9j
YXRpb25Qb3NpdGlvbiopOworT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRh
dGE+IGNvcmUoSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24qKTsKIAogI2VuZGlmIC8vIFdlYkdlb2xv
Y2F0aW9uUG9zaXRpb25faApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDNmNTIzNGFmMmQ0MTIzZTZiZTEzYzdiYjJlYzg0MDMwZGIwMzVmYjMuLjMx
NjI3YTI0NWZjNTc5MjFmYTE1M2QzMDJjNjVkYjVjZDM5MGM3MGUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0w
OC0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtnZW9sb2Nh
dGlvbl0gUmVuYW1lIGludGVyZmFjZXMgYW5kIHJlbW92ZSBbTm9JbnRlcmZhY2VPYmplY3RdCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4ODUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0TW9j
a0dlb2xvY2F0aW9uUG9zaXRpb24pOgorCiAyMDE5LTA4LTIyICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICByZXN1bHRzLndlYmtpdC5vcmc6IFJlbW92ZSBi
cmFuY2ggYW5kIHJlcG9zaXRvcnkgaW5mb3JtYXRpb24gZnJvbSBjb21taXQgdG9vbHRpcApkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQppbmRleCAxZjk2MGFhZTJkZDAz
ZTE2MGIxMjRjNzkyMjNlOTU2YWFkY2VhNzhlLi4wMDY1OTU2YzgxZGQ3MTM1ZGUwMjdmNDlhMWY1
M2JlYzY4MzYwNzJhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1
bm5lck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5t
bQpAQCAtNDEsNyArNDEsNyBAQAogI2ltcG9ydCAiV29ya1F1ZXVlSXRlbS5oIgogI2ltcG9ydCA8
Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU1N0cmlu
Z1JlZkNGLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbXBv
cnQgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaD4KICNpbXBvcnQgPFdlYktpdC9E
T01Eb2N1bWVudC5oPgogI2ltcG9ydCA8V2ViS2l0L0RPTUVsZW1lbnQuaD4KICNpbXBvcnQgPFdl
YktpdC9ET01IVE1MSW5wdXRFbGVtZW50UHJpdmF0ZS5oPgpAQCAtMTE5LDcgKzExOSw3IEBAIEBl
bmQKICNlbmRpZgogCiBAaW50ZXJmYWNlIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24gKEludGVybmFs
KQotLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0aW9uOihXZWJDb3JlOjpHZW9sb2NhdGlv
blBvc2l0aW9uJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb247CistIChpZClpbml0V2l0aEdlb2xv
Y2F0aW9uUG9zaXRpb246KFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYpY29yZUdl
b2xvY2F0aW9uUG9zaXRpb247CiBAZW5kCiAKIFRlc3RSdW5uZXI6On5UZXN0UnVubmVyKCkKQEAg
LTQ3Miw3ICs0NzIsNyBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0
aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZAogICAgICAgICAvLyBUZXN0
IHRoZSBleHBvc2VkIEFQSS4KICAgICAgICAgcG9zaXRpb24gPSBbW1dlYkdlb2xvY2F0aW9uUG9z
aXRpb24gYWxsb2NdIGluaXRXaXRoVGltZXN0YW1wOldhbGxUaW1lOjpub3coKS5zZWNvbmRzU2lu
Y2VFcG9jaCgpLnNlY29uZHMoKSBsYXRpdHVkZTpsYXRpdHVkZSBsb25naXR1ZGU6bG9uZ2l0dWRl
IGFjY3VyYWN5OmFjY3VyYWN5XTsKICAgICB9IGVsc2UgewotICAgICAgICBXZWJDb3JlOjpHZW9s
b2NhdGlvblBvc2l0aW9uIGdlb2xvY2F0aW9uUG9zaXRpb24geyBXYWxsVGltZTo6bm93KCkuc2Vj
b25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCksIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5
IH07CisgICAgICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIGdlb2xvY2F0aW9u
UG9zaXRpb24geyBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCks
IGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH07CiAgICAgICAgIGlmIChwcm92aWRlc0Fs
dGl0dWRlKQogICAgICAgICAgICAgZ2VvbG9jYXRpb25Qb3NpdGlvbi5hbHRpdHVkZSA9IGFsdGl0
dWRlOwogICAgICAgICBpZiAocHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5KQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZlMDE1
MGU2YjdhMmNmNTQyNzdjYmI4ZGM3YzEyMDE3ZTY0OGExM2UuLjY5YjY0ZmU4ZTJjYjE3MDc2YzRm
MzNkNjdkYmM1MmRkMzU3OWQ3ZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0wOC0yMiAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtnZW9sb2NhdGlvbl0g
UmVuYW1lIGludGVyZmFjZXMgYW5kIHJlbW92ZSBbTm9JbnRlcmZhY2VPYmplY3RdCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4ODUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3Qg
Y292ZXJhZ2UuCisKKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9leHBvc2VkLWdlb2xv
Y2F0aW9uLWludGVyZmFjZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9HZW9sb2NhdGlvbi9leHBvc2VkLWdlb2xvY2F0aW9uLWludGVyZmFjZXMuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJpbmcuaHRt
bDoKKwogMjAxOS0wOC0yMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZWJhc2VsaW5lIHNvbWUgZWRpdGluZyB0ZXN0cyBhZnRlciByMjQ4OTc0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9leHBvc2VkLWdlb2xv
Y2F0aW9uLWludGVyZmFjZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2Vv
bG9jYXRpb24vZXhwb3NlZC1nZW9sb2NhdGlvbi1pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mYWViMTk4YWJjMmFkY2Q4ODUyMDMyNmM1NGU0N2FmMGM2ZTBhNWVmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZXhwb3NlZC1nZW9s
b2NhdGlvbi1pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitDaGVja3Mg
dGhhdCB0aGUgR2VvbG9jYXRpb24gaW50ZXJmYWNlcyBhcmUgZXhwb3NlZCBhbmQgdGhhdCB0aGVp
ciBuYW1lIGlzIGNvcnJlY3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHdpbmRvd1Byb3BlcnRpZXMuaW5kZXhPZignR2VvbG9jYXRpb24nKSA+PSAwIGlzIHRydWUKK1BB
U1Mgd2luZG93UHJvcGVydGllcy5pbmRleE9mKCdHZW9sb2NhdGlvbkNvb3JkaW5hdGVzJykgPj0g
MCBpcyB0cnVlCitQQVNTIHdpbmRvd1Byb3BlcnRpZXMuaW5kZXhPZignR2VvbG9jYXRpb25Qb3Np
dGlvbicpID49IDAgaXMgdHJ1ZQorUEFTUyB3aW5kb3dQcm9wZXJ0aWVzLmluZGV4T2YoJ0dlb2xv
Y2F0aW9uUG9zaXRpb25FcnJvcicpID49IDAgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0dlb2xvY2F0aW9uL2V4cG9zZWQtZ2VvbG9jYXRpb24taW50ZXJmYWNlcy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZXhwb3NlZC1nZW9sb2NhdGlvbi1pbnRl
cmZhY2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNjNzgzMGI5NTk3N2UwY2MxNGY4MWE4MzAxYTUyNGVh
YzhlMzA5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0
aW9uL2V4cG9zZWQtZ2VvbG9jYXRpb24taW50ZXJmYWNlcy5odG1sCkBAIC0wLDAgKzEsMTUgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkNo
ZWNrcyB0aGF0IHRoZSBHZW9sb2NhdGlvbiBpbnRlcmZhY2VzIGFyZSBleHBvc2VkIGFuZCB0aGF0
IHRoZWlyIG5hbWUgaXMgY29ycmVjdC4iKTsKKworY29uc3Qgd2luZG93UHJvcGVydGllcyA9IE9i
amVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdyk7Citjb25zdCBleHBlY3RlZFByb3BlcnRp
ZXMgPSBbIkdlb2xvY2F0aW9uIiwgIkdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMiLCAiR2VvbG9jYXRp
b25Qb3NpdGlvbiIsICJHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IiXTsKKworZm9yIChsZXQgZXhw
ZWN0ZWRQcm9wZXJ0eSBvZiBleHBlY3RlZFByb3BlcnRpZXMpCisgIHNob3VsZEJlVHJ1ZSgid2lu
ZG93UHJvcGVydGllcy5pbmRleE9mKCciICsgZXhwZWN0ZWRQcm9wZXJ0eSArICInKSA+PSAwIik7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0dlb2xvY2F0aW9uL3Bvc2l0aW9uLXN0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJpbmctZXhwZWN0ZWQudHh0Cmlu
ZGV4IDA0NWY0OTZlZjljZWNiNTk3MTg3ZTcxMDY5ZjE4YWQ5MTI3NzE2ZDQuLjRhNzEyNzRiMDkw
MTEyNDExNzczMTllYjliODU1NGYyNjQxNGE4YmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0dlb2xvY2F0aW9uL3Bvc2l0aW9uLXN0cmluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLWV4cGVjdGVkLnR4
dApAQCAtNiw4ICs2LDggQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFBBU1MgcG9zaXRpb24u
Y29vcmRzLmxhdGl0dWRlIGlzIG1vY2tMYXRpdHVkZQogUEFTUyBwb3NpdGlvbi5jb29yZHMubG9u
Z2l0dWRlIGlzIG1vY2tMb25naXR1ZGUKIFBBU1MgcG9zaXRpb24uY29vcmRzLmFjY3VyYWN5IGlz
IG1vY2tBY2N1cmFjeQotUEFTUyBwb3NpdGlvbi50b1N0cmluZygpIGlzICJbb2JqZWN0IEdlb3Bv
c2l0aW9uXSIKLVBBU1MgcG9zaXRpb24uY29vcmRzLnRvU3RyaW5nKCkgaXMgIltvYmplY3QgQ29v
cmRpbmF0ZXNdIgorUEFTUyBwb3NpdGlvbi50b1N0cmluZygpIGlzICJbb2JqZWN0IEdlb2xvY2F0
aW9uUG9zaXRpb25dIgorUEFTUyBwb3NpdGlvbi5jb29yZHMudG9TdHJpbmcoKSBpcyAiW29iamVj
dCBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzXSIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2Vv
bG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9s
b2NhdGlvbi9wb3NpdGlvbi1zdHJpbmcuaHRtbAppbmRleCBiNjY0ZDFjMDIzMGEyZjA3YzhhYTkw
YzE1ZmJkNTFmNzk0ZmUwYTI0Li42Y2ViNmU3NjNkZDNmMjZjZTdjMzMxMmM0N2U4ZDljZGQxZGI2
NTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlv
bi1zdHJpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3Np
dGlvbi1zdHJpbmcuaHRtbApAQCAtMjYsOCArMjYsOCBAQCBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24u
Z2V0Q3VycmVudFBvc2l0aW9uKGZ1bmN0aW9uKHApIHsKICAgICBzaG91bGRCZSgncG9zaXRpb24u
Y29vcmRzLmxhdGl0dWRlJywgJ21vY2tMYXRpdHVkZScpOwogICAgIHNob3VsZEJlKCdwb3NpdGlv
bi5jb29yZHMubG9uZ2l0dWRlJywgJ21vY2tMb25naXR1ZGUnKTsKICAgICBzaG91bGRCZSgncG9z
aXRpb24uY29vcmRzLmFjY3VyYWN5JywgJ21vY2tBY2N1cmFjeScpOwotICAgIHNob3VsZEJlKCdw
b3NpdGlvbi50b1N0cmluZygpJywgJyJbb2JqZWN0IEdlb3Bvc2l0aW9uXSInKTsKLSAgICBzaG91
bGRCZSgncG9zaXRpb24uY29vcmRzLnRvU3RyaW5nKCknLCAnIltvYmplY3QgQ29vcmRpbmF0ZXNd
IicpOworICAgIHNob3VsZEJlKCdwb3NpdGlvbi50b1N0cmluZygpJywgJyJbb2JqZWN0IEdlb2xv
Y2F0aW9uUG9zaXRpb25dIicpOworICAgIHNob3VsZEJlKCdwb3NpdGlvbi5jb29yZHMudG9TdHJp
bmcoKScsICciW29iamVjdCBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzXSInKTsKICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0sIGZ1bmN0aW9uKGUpIHsKICAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFj
ayBpbnZva2VkIHVuZXhwZWN0ZWRseScpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377142</attachid>
            <date>2019-08-23 11:46:37 -0700</date>
            <delta_ts>2019-08-23 13:59:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200885-20190823114636.patch</filename>
            <type>text/plain</type>
            <size>138572</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQzNTYyOGI0NzIxMTBk
YzA3ZTk5ODc3ZDJkMzBkNGE2ZGYzOWMxNi4uNDRlZTZjNmFjYTg0NmU5OTA5ODA4NTVhNDY0YjM2
NjM5MTU1NzEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDE5LTA4LTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2dlb2xvY2F0aW9uXSBSZW5h
bWUgaW50ZXJmYWNlcyBhbmQgcmVtb3ZlIFtOb0ludGVyZmFjZU9iamVjdF0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDg4NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBHZW9sb2NhdGlvbiBp
bnRlcmZhY2VzIGFuZCBleHBvc2UgdGhlbSBvbiB0aGUgZ2xvYmFsIFdpbmRvdyBvYmplY3QgdG8g
bWF0Y2ggdGhlCisgICAgICAgIGxhdGVzdCBzcGVjaWZpY2F0aW9uOgorICAgICAgICAtIGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9nZW9sb2NhdGlvbi1hcGkvI2FwaV9kZXNjcmlwdGlvbgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL0dlb2xvY2F0aW9uL2V4cG9zZWQtZ2VvbG9jYXRpb24taW50ZXJm
YWNlcy5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
SGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb05vdGlmaWVyOjpzZXRGYXRhbEVycm9yKToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlb05vdGlmaWVyOjpydW5TdWNjZXNzQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViQ29yZTo6R2VvTm90aWZpZXI6OnJ1bkVycm9yQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6R2VvTm90aWZpZXI6OnRpbWVyRmlyZWQpOgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvTm90aWZpZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUdlb2xvY2F0aW9uUG9zaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpsYXN0UG9zaXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R2VvbG9jYXRpb246OnN0YXJ0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpHZW9s
b2NhdGlvbjo6cmVxdWVzdFVzZXNDYWNoZWRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpH
ZW9sb2NhdGlvbjo6bWFrZUNhY2hlZFBvc2l0aW9uQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYkNv
cmU6Okdlb2xvY2F0aW9uOjpoYXZlU3VpdGFibGVDYWNoZWRQb3NpdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpHZW9sb2NhdGlvbjo6c2V0SXNBbGxvd2VkKToKKyAgICAgICAgKFdlYkNvcmU6Okdl
b2xvY2F0aW9uOjpzZW5kRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OnNl
bmRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6Y2FuY2VsUmVxdWVz
dHMpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OmhhbmRsZUVycm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjptYWtlU3VjY2Vzc0NhbGxiYWNrcyk6CisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6cG9zaXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNv
cmU6Okdlb2xvY2F0aW9uOjpzZXRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
bjo6aGFuZGxlUGVuZGluZ1Blcm1pc3Npb25Ob3RpZmllcnMpOgorICAgICAgICAqIE1vZHVsZXMv
Z2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uQ2xpZW50Lmg6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjpw
b3NpdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVy
OjpsYXN0UG9zaXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b25Db250cm9sbGVyLmg6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bkNvb3JkaW5hdGVzLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vQ29vcmRpbmF0ZXMuY3BwLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25D
b29yZGluYXRlczo6R2VvbG9jYXRpb25Db29yZGluYXRlcyk6CisgICAgICAgICogTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmguCisgICAgICAgIChXZWJD
b3JlOjpHZW9sb2NhdGlvbkNvb3JkaW5hdGVzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R2VvbG9jYXRpb25Db29yZGluYXRlczo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKiBN
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRsOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5pZGwuCisg
ICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmg6CisgICAg
ICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbjo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb246OnRpbWVzdGFtcCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uOjpjb29yZHMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbjo6R2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAg
ICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRs
LgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEu
aDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvblBvc2l0aW9uLmguCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhOjppc1ZhbGlkIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0
aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmguCisgICAgICAgIChXZWJDb3Jl
OjpHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpH
ZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6Okdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcik6CisgICAg
ICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRsOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVy
cm9yLmlkbC4KKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bvc2l0aW9uLmg6IFJl
bW92ZWQuCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmg6
CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5oOgorICAg
ICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlP
Uy5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vaW9z
L0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0uCisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
blBvc2l0aW9uRGF0YTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEpOgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudE1vY2s6OnNldFBvc2l0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uQ2xpZW50TW9jazo6bGFzdFBvc2l0aW9uKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oOgorCiAyMDE5LTA4LTIyICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgSW1hZ2VCdWZm
ZXIgYW5kIFNWRydzIEZpbHRlckRhdGEgaXNvaGVhcCdlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3ZmY3OGZiZjRk
ZTJjYzg5ZGE2ZDYzNzg2OTAxYzk5NGU3ZDAyZTFmLi5iYmRkNDNlYjNlMjFjN2Y1ZGY0OTA3NDdj
ZTVmZjYyYzE4YzZhZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTA4LTIyICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW2dlb2xvY2F0aW9uXSBS
ZW5hbWUgaW50ZXJmYWNlcyBhbmQgcmVtb3ZlIFtOb0ludGVyZmFjZU9iamVjdF0KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDg4NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYkdlb2xv
Y2F0aW9uUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0
aW9uOjpjcmVhdGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmg6
CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNvcmVQb3NpdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OldlYkdlb2xv
Y2F0aW9uUG9zaXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9u
UG9zaXRpb24uY3BwOgorICAgICAgICAoV0tHZW9sb2NhdGlvblBvc2l0aW9uQ3JlYXRlX2MpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6bGFzdFBvc2l0aW9uIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbToK
KyAgICAgICAgKC1bV0tMZWdhY3lDb3JlTG9jYXRpb25Qcm92aWRlciBwb3NpdGlvbkNoYW5nZWQ6
XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5n
ZVBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0
aW9uTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9j
YXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lmg6CisKIDIwMTktMDgtMjIgIEFkcmlhbiBQ
ZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVd
IEZpeGVzIGZvciBub24tdW5pZmllZCBidWlsZHMgYWZ0ZXIgcjI0ODU0NwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9p
b3MvQ2hhbmdlTG9nCmluZGV4IDU1MWEwYjc3OWEwZTQ5MTI1MDEwNGY2NWM3ODk2Yzg2MjdiZDAz
NGIuLjk2MWFhODg5YjgyMTJmZTZmMDM3Y2Y1YzVjMzZlMzM1Y2IzYWRhY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L2lvcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wOC0yMiAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtnZW9sb2NhdGlvbl0gUmVuYW1lIGlu
dGVyZmFjZXMgYW5kIHJlbW92ZSBbTm9JbnRlcmZhY2VPYmplY3RdCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4ODUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pc2MvV2ViR2VvbG9jYXRpb25Db3Jl
TG9jYXRpb25Qcm92aWRlci5oOgorICAgICAgICAqIE1pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9j
YXRpb25Qcm92aWRlci5tbToKKyAgICAgICAgKC1bV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Q
cm92aWRlciBzZW5kTG9jYXRpb246XSk6CisgICAgICAgICogTWlzYy9XZWJHZW9sb2NhdGlvblBy
b3ZpZGVySU9TLm1tOgorICAgICAgICAoLVtfV2ViQ29yZUxvY2F0aW9uVXBkYXRlVGhyZWFkaW5n
UHJveHkgcG9zaXRpb25DaGFuZ2VkOl0pOgorCiAyMDE5LTA4LTE4ICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dURl0gQWRkIG1ha2VVbmlxdWU8VD4sIHdo
aWNoIGVuc3VyZXMgVCBpcyBmYXN0LWFsbG9jYXRlZCwgbWFrZVVuaXF1ZSAvIG1ha2VVbmlxdWVX
aXRob3V0RmFzdE1hbGxvY0NoZWNrIHBhcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRl
eCAzMTVjMWVhYTg5NDdjNGY0MWIwMjE2ZmFkZWJhYWVmYmE0M2RiNzYwLi45ZTA0YjVkZDI5NzNl
Y2RhMjczNmFhNjBjZTU2NTVhNjFjMmE4YmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMDgtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBbZ2VvbG9jYXRpb25dIFJlbmFtZSBpbnRlcmZhY2VzIGFuZCByZW1v
dmUgW05vSW50ZXJmYWNlT2JqZWN0XQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAwODg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tOgorICAgICAg
ICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbik6CisgICAgICAgICogV2ViVmll
dy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBv
c2l0aW9uSW50ZXJuYWwgaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjpdKToKKyAgICAg
ICAgKGNvcmUpOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBvc2l0aW9uIGluaXRXaXRoVGlt
ZXN0YW1wOmxhdGl0dWRlOmxvbmdpdHVkZTphY2N1cmFjeTpdKToKKyAgICAgICAgKC1bV2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbiBpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246XSk6CisgICAgICAg
ICogV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaDoKKwogMjAxOS0wOC0y
MSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFp
bF0gVGFwcGluZyB0b3Agb2YgbWVzc2FnZSBzY3JvbGxzIGJhY2sgdG8gY29waWVkIHRleHQgaW5z
dGVhZCBvZiB0b3Agb2YgdGhlIG1lc3NhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMGUyOTNk
MjUyOTNiMDNhZjZlZTFjZWUwM2M4ZjgwMzIxOTU3ZWVlOC4uYTViNjJmNDA4ZGZmM2IzMmYwNTAx
NjBhOWU1OTkxNWZjNDk4NGZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI2MSwxMiArMjYx
LDEyIEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9mZXRjaC9G
ZXRjaFJlc3BvbnNlLmlkbAogICAgIE1vZHVsZXMvZmV0Y2gvV29ya2VyR2xvYmFsU2NvcGVGZXRj
aC5pZGwKIAotICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsCiAgICAgTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwKLSAgICBNb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb3Bvc2l0aW9uLmlkbAorICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29y
ZGluYXRlcy5pZGwKKyAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24u
aWRsCisgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRs
CiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5pZGwKICAgICBN
b2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaWRsCi0gICAgTW9kdWxlcy9nZW9s
b2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRp
b25FcnJvckNhbGxiYWNrLmlkbAogICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25PcHRp
b25zLmlkbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAppbmRleCBlNDA4M2RkOTBjNzcwNGNjMTVhMzYzYzJlNjI1MzlhZWViZTE0MTg3Li4zNTI2
ZmRhNmNjMjczOTI2MWU4YTIyYWNiMmM2OGNkNWRlMDI0ZjhmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTk5LDYgKzk5LDkgQEAgJChQ
Uk9KRUNUX0RJUikvTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRFdmVudC5pZGwKICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaWRsCiskKFBST0pFQ1RfRElSKS9N
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL2dlb2xvY2F0aW9uL05hdmlnYXRvckdlb2xvY2F0aW9uLmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA5MDZjMzE0
NTM3ODA1NGYzZDAxN2RmYmVlNDFkYzZhMmY4MDYyZTY0Li5lYjczM2ZmNzBiOTZiODYyYzAyNTBl
YTg1NjJkNTQzNDE4NjZhNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNjU1LDYgKzY1NSwxMiBAQCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dhbWVwYWRXZWJWUi5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2FtZXBhZFdlYlZSLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb24u
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xv
Y2F0aW9uLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
R2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTR2VvbG9jYXRpb25Db29yZGluYXRlcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uUG9zaXRpb24uY3Bw
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0
aW9uUG9zaXRpb24uaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dlb3Bvc2l0aW9uLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNHZW9wb3Np
dGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0dl
c3R1cmVFdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDQ2NGMxM2Yy
NjE0MDIzNjljNDA1Y2Y3MTUxMzBmN2YwODM3NmU2ZTYuLjBjMjhiNjU3Yjg1NjY2MDEwZGZjODA0
NWI1MjRiNjAwOThkMGIwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTcx
LDEyICsxNzEsMTIgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9nYW1lcGFkL0dhbWVwYWRCdXR0b24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2Ft
ZXBhZC9HYW1lcGFkRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2FtZXBhZC9O
YXZpZ2F0b3JHYW1lcGFkLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0Nvb3JkaW5hdGVzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmlkbCBcCi0gICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bv
c2l0aW9uLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uQ29vcmRpbmF0ZXMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb25Qb3NpdGlvbi5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvZ2VvbG9jYXRpb24vTmF2aWdhdG9yR2VvbG9jYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25DYWxsYmFjay5pZGwgXAotICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbk9wdGlvbnMuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5pZGwg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKaW5kZXggN2I4MjgwZWJkMDI0ZjM0Y2M2NzExMmZmMDAxNzFlNjkx
YWZlN2QyZS4uNWQ5NjE2YTQ1NjI2ZjU1NmMwMDE2ZTJhMzQyNGQ0ZjRlOTA0MjQ2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCkBAIC0yNSwxNSArMjUsMTUgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuaAogICAgIE1vZHVs
ZXMvZmV0Y2gvRmV0Y2hMb2FkZXJDbGllbnQuaAogCi0gICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9D
b29yZGluYXRlcy5oCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCiAgICAg
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNsaWVudC5oCiAgICAgTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAorICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb25Db29yZGluYXRlcy5oCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvbkVycm9yLmgKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24u
aAotICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaAorICAgIE1vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaAorICAgIE1vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmgKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL1Bv
c2l0aW9uQ2FsbGJhY2suaAotICAgIE1vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5o
CiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaAogICAgIE1v
ZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25PcHRpb25zLmgKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOWNlYmRmYzBmNjVhOGZiODEwMjQzZTEyN2VkNzk2NzU4NDJmNTBjYi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDb29yZGluYXRlcy5oIgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUNvb3JkaW5hdGVzOjpDb29yZGluYXRlcyhHZW9sb2NhdGlv
blBvc2l0aW9uJiYgcG9zaXRpb24pCi0gICAgOiBtX3Bvc2l0aW9uKFdURk1vdmUocG9zaXRpb24p
KQotewotICAgIEFTU0VSVChtX3Bvc2l0aW9uLmlzVmFsaWQoKSk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vQ29vcmRpbmF0ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29v
cmRpbmF0ZXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmQ1MTgyODJhZWNkNTFm
NjFkZTZiNTYwOTYzMWRjYzUzM2VmODUzZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3Jk
aW5hdGVzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNs
dWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCi0jaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Ci0j
aW5jbHVkZSA8d3RmL1JlZi5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ29vcmRpbmF0ZXMgOiBwdWJsaWMgUmVmQ291bnRlZDxD
b29yZGluYXRlcz4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8Q29vcmRpbmF0ZXM+IGNyZWF0
ZShHZW9sb2NhdGlvblBvc2l0aW9uJiYgcG9zaXRpb24pCi0gICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDb29yZGluYXRlcyhXVEZNb3ZlKHBvc2l0aW9uKSkpOwotICAgIH0KLQot
ICAgIFJlZjxDb29yZGluYXRlcz4gaXNvbGF0ZWRDb3B5KCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IHJldHVybiBDb29yZGluYXRlczo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb24obV9wb3NpdGlv
bikpOwotICAgIH0KLQotICAgIGRvdWJsZSBsYXRpdHVkZSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9z
aXRpb24ubGF0aXR1ZGU7IH0KLSAgICBkb3VibGUgbG9uZ2l0dWRlKCkgY29uc3QgeyByZXR1cm4g
bV9wb3NpdGlvbi5sb25naXR1ZGU7IH0KLSAgICBPcHRpb25hbDxkb3VibGU+IGFsdGl0dWRlKCkg
Y29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5hbHRpdHVkZTsgfQotICAgIGRvdWJsZSBhY2N1cmFj
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24uYWNjdXJhY3k7IH0KLSAgICBPcHRpb25hbDxk
b3VibGU+IGFsdGl0dWRlQWNjdXJhY3koKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uLmFsdGl0
dWRlQWNjdXJhY3k7IH0KLSAgICBPcHRpb25hbDxkb3VibGU+IGhlYWRpbmcoKSBjb25zdCB7IHJl
dHVybiBtX3Bvc2l0aW9uLmhlYWRpbmc7IH0KLSAgICBPcHRpb25hbDxkb3VibGU+IHNwZWVkKCkg
Y29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5zcGVlZDsgfQotICAgIE9wdGlvbmFsPGRvdWJsZT4g
Zmxvb3JMZXZlbCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24uZmxvb3JMZXZlbDsgfQotICAg
IAotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBDb29yZGluYXRlcyhHZW9sb2NhdGlvblBvc2l0aW9u
JiYpOwotCi0gICAgR2VvbG9jYXRpb25Qb3NpdGlvbiBtX3Bvc2l0aW9uOwotfTsKLSAgICAKLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Db29yZGluYXRlcy5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJm
NWNlZmIwZmMwMzdhY2ZiOTZmMTZjYzRmMjE0MmFjMzYzYzk3MGEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Db29yZGluYXRlcy5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLVsKLSAgICBOb0lu
dGVyZmFjZU9iamVjdCwKLSAgICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwKLSAgICBJbXBsZW1l
bnRhdGlvbkxhY2tzVlRhYmxlCi1dIGludGVyZmFjZSBDb29yZGluYXRlcyB7Ci0gICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbGF0aXR1ZGU7Ci0gICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbG9uZ2l0dWRlOwotICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlPyBhbHRpdHVkZTsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBhY2N1cmFjeTsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gYWx0aXR1ZGVBY2N1cmFjeTsKLSAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gaGVhZGluZzsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8gc3BlZWQ7Ci0gICAgW0VuYWJsZWRCeVNldHRpbmc9
R2VvbG9jYXRpb25GbG9vckxldmVsXSByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZT8gZmxvb3JMZXZlbDsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvTm90aWZpZXIuY3BwCmluZGV4IDc3ZWJmMzQyMWM5MmYzMDY4ODk1NDIyOWM1
YjMzZWU3YjBiNDMzNDAuLjcwZjg5NjIxZmNmODUyNzJkZDk1ZDg4OWU3MGE3M2U1YTg5MjAwMDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZp
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZp
ZXIuY3BwCkBAIC00NCw3ICs0NCw3IEBAIEdlb05vdGlmaWVyOjpHZW9Ob3RpZmllcihHZW9sb2Nh
dGlvbiYgZ2VvbG9jYXRpb24sIFJlZjxQb3NpdGlvbkNhbGxiYWNrPiYmIHN1Y2NlCiB7CiB9CiAK
LXZvaWQgR2VvTm90aWZpZXI6OnNldEZhdGFsRXJyb3IoUmVmUHRyPFBvc2l0aW9uRXJyb3I+JiYg
ZXJyb3IpCit2b2lkIEdlb05vdGlmaWVyOjpzZXRGYXRhbEVycm9yKFJlZlB0cjxHZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3I+JiYgZXJyb3IpCiB7CiAgICAgLy8gSWYgYSBmYXRhbCBlcnJvciBoYXMg
YWxyZWFkeSBiZWVuIHNldCwgc3RpY2sgd2l0aCBpdC4gVGhpcyBtYWtlcyBzdXJlIHRoYXQKICAg
ICAvLyB3aGVuIHBlcm1pc3Npb24gaXMgZGVuaWVkLCB0aGlzIGlzIHRoZSBlcnJvciByZXBvcnRl
ZCwgYXMgcmVxdWlyZWQgYnkgdGhlCkBAIC02OSw3ICs2OSw3IEBAIGJvb2wgR2VvTm90aWZpZXI6
Omhhc1plcm9UaW1lb3V0KCkgY29uc3QKICAgICByZXR1cm4gIW1fb3B0aW9ucy50aW1lb3V0Owog
fQogCi12b2lkIEdlb05vdGlmaWVyOjpydW5TdWNjZXNzQ2FsbGJhY2soR2VvcG9zaXRpb24qIHBv
c2l0aW9uKQordm9pZCBHZW9Ob3RpZmllcjo6cnVuU3VjY2Vzc0NhbGxiYWNrKEdlb2xvY2F0aW9u
UG9zaXRpb24qIHBvc2l0aW9uKQogewogICAgIC8vIElmIHdlIGFyZSBoZXJlIGFuZCB0aGUgR2Vv
bG9jYXRpb24gcGVybWlzc2lvbiBpcyBub3QgYXBwcm92ZWQsIHNvbWV0aGluZyBoYXMKICAgICAv
LyBnb25lIGhvcnJpYmx5IHdyb25nLgpAQCAtNzksNyArNzksNyBAQCB2b2lkIEdlb05vdGlmaWVy
OjpydW5TdWNjZXNzQ2FsbGJhY2soR2VvcG9zaXRpb24qIHBvc2l0aW9uKQogICAgIG1fc3VjY2Vz
c0NhbGxiYWNrLT5oYW5kbGVFdmVudChwb3NpdGlvbik7CiB9CiAKLXZvaWQgR2VvTm90aWZpZXI6
OnJ1bkVycm9yQ2FsbGJhY2soUG9zaXRpb25FcnJvciYgZXJyb3IpCit2b2lkIEdlb05vdGlmaWVy
OjpydW5FcnJvckNhbGxiYWNrKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciYgZXJyb3IpCiB7CiAg
ICAgaWYgKG1fZXJyb3JDYWxsYmFjaykKICAgICAgICAgbV9lcnJvckNhbGxiYWNrLT5oYW5kbGVF
dmVudChlcnJvcik7CkBAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBHZW9Ob3RpZmllcjo6dGltZXJG
aXJlZCgpCiAgICAgfQogICAgIAogICAgIGlmIChtX2Vycm9yQ2FsbGJhY2spIHsKLSAgICAgICAg
YXV0byBlcnJvciA9IFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpUSU1FT1VU
LCAiVGltZW91dCBleHBpcmVkIl9zKTsKKyAgICAgICAgYXV0byBlcnJvciA9IEdlb2xvY2F0aW9u
UG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6VElNRU9VVCwg
IlRpbWVvdXQgZXhwaXJlZCJfcyk7CiAgICAgICAgIG1fZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZl
bnQoZXJyb3IpOwogICAgIH0KICAgICBtX2dlb2xvY2F0aW9uLT5yZXF1ZXN0VGltZWRPdXQodGhp
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05v
dGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVy
LmgKaW5kZXggZmIzMmNlOGQ5YmZkMjk4YmM2NTFiMWUyMjU5ODc0ZWIwMmQxNjIyYy4uZGI5MTNl
ZjkwYzE0OTVlMzk2OWZkZDk5YjA0YmZhMDkwNDc0OGNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9Ob3RpZmllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvTm90aWZpZXIuaApAQCAtMzYsMTAgKzM2LDEwIEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR2VvcG9zaXRpb247CiBjbGFzcyBHZW9s
b2NhdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBv
c2l0aW9uRXJyb3I7CiBjbGFzcyBQb3NpdGlvbkNhbGxiYWNrOwotY2xhc3MgUG9zaXRpb25FcnJv
cjsKIGNsYXNzIFBvc2l0aW9uRXJyb3JDYWxsYmFjazsKIAogY2xhc3MgR2VvTm90aWZpZXIgOiBw
dWJsaWMgUmVmQ291bnRlZDxHZW9Ob3RpZmllcj4gewpAQCAtNTAsMTMgKzUwLDEzIEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICBjb25zdCBQb3NpdGlvbk9wdGlvbnMmIG9wdGlvbnMoKSBjb25zdCB7
IHJldHVybiBtX29wdGlvbnM7IH0KLSAgICB2b2lkIHNldEZhdGFsRXJyb3IoUmVmUHRyPFBvc2l0
aW9uRXJyb3I+JiYpOworICAgIHZvaWQgc2V0RmF0YWxFcnJvcihSZWZQdHI8R2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yPiYmKTsKIAogICAgIGJvb2wgdXNlQ2FjaGVkUG9zaXRpb24oKSBjb25zdCB7
IHJldHVybiBtX3VzZUNhY2hlZFBvc2l0aW9uOyB9CiAgICAgdm9pZCBzZXRVc2VDYWNoZWRQb3Np
dGlvbigpOwogCi0gICAgdm9pZCBydW5TdWNjZXNzQ2FsbGJhY2soR2VvcG9zaXRpb24qKTsgLy8g
RklYTUU6IFRoaXMgc2hvdWxkIHRha2UgYSByZWZlcmVuY2UuCi0gICAgdm9pZCBydW5FcnJvckNh
bGxiYWNrKFBvc2l0aW9uRXJyb3ImKTsKKyAgICB2b2lkIHJ1blN1Y2Nlc3NDYWxsYmFjayhHZW9s
b2NhdGlvblBvc2l0aW9uKik7IC8vIEZJWE1FOiBUaGlzIHNob3VsZCB0YWtlIGEgcmVmZXJlbmNl
LgorICAgIHZvaWQgcnVuRXJyb3JDYWxsYmFjayhHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImKTsK
IAogICAgIHZvaWQgc3RhcnRUaW1lcklmTmVlZGVkKCk7CiAgICAgdm9pZCBzdG9wVGltZXIoKTsK
QEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxi
YWNrPiBtX2Vycm9yQ2FsbGJhY2s7CiAgICAgUG9zaXRpb25PcHRpb25zIG1fb3B0aW9uczsKICAg
ICBUaW1lciBtX3RpbWVyOwotICAgIFJlZlB0cjxQb3NpdGlvbkVycm9yPiBtX2ZhdGFsRXJyb3I7
CisgICAgUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gbV9mYXRhbEVycm9yOwogICAg
IGJvb2wgbV91c2VDYWNoZWRQb3NpdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKaW5kZXggZTI2OTFmNTk3ZmU3M2Nj
YmU4NWJiZGU4ZTkzNGY3ZmFlZmU4MmZiZS4uZjEyZTE0OTBmZDg3ZDdiN2IyNzExZTQyYzZiYWY1
NDk4YTk5MGE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAKQEAgLTMwLDE3ICszMCwxNiBAQAogCiAjaWYgRU5BQkxFKEdFT0xP
Q0FUSU9OKQogCi0jaW5jbHVkZSAiQ29vcmRpbmF0ZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiR2VvTm90aWZpZXIuaCIKICNpbmNsdWRl
ICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkNvb3JkaW5h
dGVzLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25FcnJvci5oIgogI2luY2x1ZGUgIkdlb2xvY2F0
aW9uUG9zaXRpb24uaCIKLSNpbmNsdWRlICJHZW9wb3NpdGlvbi5oIgorI2luY2x1ZGUgIkdlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgotI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKICNpbmNsdWRlICJSdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC01NiwyOCArNTUsMjggQEAgc3RhdGljIGNvbnN0
IEFTQ0lJTGl0ZXJhbCBvcmlnaW5DYW5ub3RSZXF1ZXN0R2VvbG9jYXRpb25FcnJvck1lc3NhZ2Ug
eyAiT3JpZ2luIGQKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEdlb2xvY2F0aW9uKTsK
IAotc3RhdGljIFJlZlB0cjxHZW9wb3NpdGlvbj4gY3JlYXRlR2VvcG9zaXRpb24oT3B0aW9uYWw8
R2VvbG9jYXRpb25Qb3NpdGlvbj4mJiBwb3NpdGlvbikKK3N0YXRpYyBSZWZQdHI8R2VvbG9jYXRp
b25Qb3NpdGlvbj4gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbihPcHRpb25hbDxHZW9sb2NhdGlv
blBvc2l0aW9uRGF0YT4mJiBwb3NpdGlvbikKIHsKICAgICBpZiAoIXBvc2l0aW9uKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBET01UaW1lU3RhbXAgdGltZXN0YW1wID0gY29u
dmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcChwb3NpdGlvbi0+dGltZXN0YW1wKTsKLSAgICByZXR1
cm4gR2VvcG9zaXRpb246OmNyZWF0ZShDb29yZGluYXRlczo6Y3JlYXRlKFdURk1vdmUocG9zaXRp
b24udmFsdWUoKSkpLCB0aW1lc3RhbXApOworICAgIHJldHVybiBHZW9sb2NhdGlvblBvc2l0aW9u
OjpjcmVhdGUoR2VvbG9jYXRpb25Db29yZGluYXRlczo6Y3JlYXRlKFdURk1vdmUocG9zaXRpb24u
dmFsdWUoKSkpLCB0aW1lc3RhbXApOwogfQogCi1zdGF0aWMgUmVmPFBvc2l0aW9uRXJyb3I+IGNy
ZWF0ZVBvc2l0aW9uRXJyb3IoR2VvbG9jYXRpb25FcnJvciYgZXJyb3IpCitzdGF0aWMgUmVmPEdl
b2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKEdl
b2xvY2F0aW9uRXJyb3ImIGVycm9yKQogewotICAgIFBvc2l0aW9uRXJyb3I6OkVycm9yQ29kZSBj
b2RlID0gUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEU7CisgICAgYXV0byBjb2Rl
ID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRTsKICAgICBz
d2l0Y2ggKGVycm9yLmNvZGUoKSkgewogICAgIGNhc2UgR2VvbG9jYXRpb25FcnJvcjo6UGVybWlz
c2lvbkRlbmllZDoKLSAgICAgICAgY29kZSA9IFBvc2l0aW9uRXJyb3I6OlBFUk1JU1NJT05fREVO
SUVEOworICAgICAgICBjb2RlID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9O
X0RFTklFRDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHZW9sb2NhdGlvbkVycm9yOjpQb3Np
dGlvblVuYXZhaWxhYmxlOgotICAgICAgICBjb2RlID0gUG9zaXRpb25FcnJvcjo6UE9TSVRJT05f
VU5BVkFJTEFCTEU7CisgICAgICAgIGNvZGUgPSBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBP
U0lUSU9OX1VOQVZBSUxBQkxFOwogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICByZXR1cm4g
UG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIGVycm9yLm1lc3NhZ2UoKSk7CisgICAgcmV0dXJu
IEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIGVycm9yLm1lc3NhZ2UoKSk7
CiB9CiAKIGJvb2wgR2VvbG9jYXRpb246OldhdGNoZXJzOjphZGQoaW50IGlkLCBSZWZQdHI8R2Vv
Tm90aWZpZXI+JiYgbm90aWZpZXIpCkBAIC0yOTAsMTMgKzI4OSwxMyBAQCBjb25zdCBjaGFyKiBH
ZW9sb2NhdGlvbjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJHZW9s
b2NhdGlvbiI7CiB9CiAKLUdlb3Bvc2l0aW9uKiBHZW9sb2NhdGlvbjo6bGFzdFBvc2l0aW9uKCkK
K0dlb2xvY2F0aW9uUG9zaXRpb24qIEdlb2xvY2F0aW9uOjpsYXN0UG9zaXRpb24oKQogewogICAg
IFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAotICAgIG1fbGFzdFBvc2l0aW9uID0gY3JlYXRlR2VvcG9zaXRpb24oR2Vv
bG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5sYXN0UG9zaXRpb24oKSk7CisgICAgbV9s
YXN0UG9zaXRpb24gPSBjcmVhdGVHZW9sb2NhdGlvblBvc2l0aW9uKEdlb2xvY2F0aW9uQ29udHJv
bGxlcjo6ZnJvbShwYWdlKS0+bGFzdFBvc2l0aW9uKCkpOwogCiAgICAgcmV0dXJuIG1fbGFzdFBv
c2l0aW9uLmdldCgpOwogfQpAQCAtMzczLDcgKzM3Miw3IEBAIGJvb2wgR2VvbG9jYXRpb246OnNo
b3VsZEJsb2NrR2VvbG9jYXRpb25SZXF1ZXN0cygpCiB2b2lkIEdlb2xvY2F0aW9uOjpzdGFydFJl
cXVlc3QoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogewogICAgIGlmIChzaG91bGRCbG9ja0dlb2xv
Y2F0aW9uUmVxdWVzdHMoKSkgewotICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihQb3Np
dGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIG9y
aWdpbkNhbm5vdFJlcXVlc3RHZW9sb2NhdGlvbkVycm9yTWVzc2FnZSkpOworICAgICAgICBub3Rp
Zmllci0+c2V0RmF0YWxFcnJvcihHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OmNyZWF0ZShHZW9s
b2NhdGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxFLCBvcmlnaW5DYW5ub3RS
ZXF1ZXN0R2VvbG9jYXRpb25FcnJvck1lc3NhZ2UpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICBkb2N1bWVudCgpLT5zZXRHZW9sb2NhdGlvbkFjY2Vzc2VkKCk7CkBAIC0zODEsNyArMzgw
LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RhcnRSZXF1ZXN0KEdlb05vdGlmaWVyKiBub3RpZmll
cikKICAgICAvLyBDaGVjayB3aGV0aGVyIHBlcm1pc3Npb25zIGhhdmUgYWxyZWFkeSBiZWVuIGRl
bmllZC4gTm90ZSB0aGF0IGlmIHRoaXMgaXMgdGhlIGNhc2UsCiAgICAgLy8gdGhlIHBlcm1pc3Np
b24gc3RhdGUgY2FuIG5vdCBjaGFuZ2UgYWdhaW4gaW4gdGhlIGxpZmV0aW1lIG9mIHRoaXMgcGFn
ZS4KICAgICBpZiAoaXNEZW5pZWQoKSkKLSAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3Io
UG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlBFUk1JU1NJT05fREVOSUVELCBw
ZXJtaXNzaW9uRGVuaWVkRXJyb3JNZXNzYWdlKSk7CisgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRh
bEVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRp
b25FcnJvcjo6UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2Up
KTsKICAgICBlbHNlIGlmIChoYXZlU3VpdGFibGVDYWNoZWRQb3NpdGlvbihub3RpZmllci0+b3B0
aW9ucygpKSkKICAgICAgICAgbm90aWZpZXItPnNldFVzZUNhY2hlZFBvc2l0aW9uKCk7CiAgICAg
ZWxzZSBpZiAobm90aWZpZXItPmhhc1plcm9UaW1lb3V0KCkpCkBAIC0zOTMsNyArMzkyLDcgQEAg
dm9pZCBHZW9sb2NhdGlvbjo6c3RhcnRSZXF1ZXN0KEdlb05vdGlmaWVyKiBub3RpZmllcikKICAg
ICB9IGVsc2UgaWYgKHN0YXJ0VXBkYXRpbmcobm90aWZpZXIpKQogICAgICAgICBub3RpZmllci0+
c3RhcnRUaW1lcklmTmVlZGVkKCk7CiAgICAgZWxzZQotICAgICAgICBub3RpZmllci0+c2V0RmF0
YWxFcnJvcihQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5B
VkFJTEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CisgICAgICAgIG5v
dGlmaWVyLT5zZXRGYXRhbEVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6Y3JlYXRlKEdl
b2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJTEFCTEUsIGZhaWxlZFRvU3Rh
cnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CiB9CiAKIHZvaWQgR2VvbG9jYXRpb246OmZhdGFsRXJy
b3JPY2N1cnJlZChHZW9Ob3RpZmllciogbm90aWZpZXIpCkBAIC00MTEsNyArNDEwLDcgQEAgdm9p
ZCBHZW9sb2NhdGlvbjo6cmVxdWVzdFVzZXNDYWNoZWRQb3NpdGlvbihHZW9Ob3RpZmllciogbm90
aWZpZXIpCiAgICAgLy8gVGhpcyBpcyBjYWxsZWQgYXN5bmNocm9ub3VzbHksIHNvIHRoZSBwZXJt
aXNzaW9ucyBjb3VsZCBoYXZlIGJlZW4gZGVuaWVkCiAgICAgLy8gc2luY2Ugd2UgbGFzdCBjaGVj
a2VkIGluIHN0YXJ0UmVxdWVzdC4KICAgICBpZiAoaXNEZW5pZWQoKSkgewotICAgICAgICBub3Rp
Zmllci0+c2V0RmF0YWxFcnJvcihQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6
UEVSTUlTU0lPTl9ERU5JRUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2UpKTsKKyAgICAg
ICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVh
dGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lv
bkRlbmllZEVycm9yTWVzc2FnZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00NDMs
NyArNDQyLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6bWFrZUNhY2hlZFBvc2l0aW9uQ2FsbGJhY2tz
KCkKICAgICAgICAgICAgIGlmIChub3RpZmllci0+aGFzWmVyb1RpbWVvdXQoKSB8fCBzdGFydFVw
ZGF0aW5nKG5vdGlmaWVyLmdldCgpKSkKICAgICAgICAgICAgICAgICBub3RpZmllci0+c3RhcnRU
aW1lcklmTmVlZGVkKCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbm90aWZp
ZXItPnNldEZhdGFsRXJyb3IoUG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlBP
U0lUSU9OX1VOQVZBSUxBQkxFLCBmYWlsZWRUb1N0YXJ0U2VydmljZUVycm9yTWVzc2FnZSkpOwor
ICAgICAgICAgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKEdlb2xvY2F0aW9uUG9zaXRp
b25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcjo6UE9TSVRJT05fVU5BVkFJ
TEFCTEUsIGZhaWxlZFRvU3RhcnRTZXJ2aWNlRXJyb3JNZXNzYWdlKSk7CiAgICAgICAgIH0KICAg
ICB9CiAKQEAgLTQ2NCw3ICs0NjMsNyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpyZXF1ZXN0VGltZWRP
dXQoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogCiBib29sIEdlb2xvY2F0aW9uOjpoYXZlU3VpdGFi
bGVDYWNoZWRQb3NpdGlvbihjb25zdCBQb3NpdGlvbk9wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAg
R2VvcG9zaXRpb24qIGNhY2hlZFBvc2l0aW9uID0gbGFzdFBvc2l0aW9uKCk7CisgICAgYXV0byog
Y2FjaGVkUG9zaXRpb24gPSBsYXN0UG9zaXRpb24oKTsKICAgICBpZiAoIWNhY2hlZFBvc2l0aW9u
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFvcHRpb25zLm1heGltdW1BZ2UpCkBA
IC01MDYsNyArNTA1LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c2V0SXNBbGxvd2VkKGJvb2wgYWxs
b3dlZCkKICAgICB9CiAKICAgICBpZiAoIWlzQWxsb3dlZCgpKSB7Ci0gICAgICAgIGF1dG8gZXJy
b3IgPSBQb3NpdGlvbkVycm9yOjpjcmVhdGUoUG9zaXRpb25FcnJvcjo6UEVSTUlTU0lPTl9ERU5J
RUQsIHBlcm1pc3Npb25EZW5pZWRFcnJvck1lc3NhZ2UpOworICAgICAgICBhdXRvIGVycm9yID0g
R2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9y
OjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZSk7CiAgICAg
ICAgIGVycm9yLT5zZXRJc0ZhdGFsKHRydWUpOwogICAgICAgICBoYW5kbGVFcnJvcihlcnJvcik7
CiAgICAgICAgIG1fcmVxdWVzdHNBd2FpdGluZ0NhY2hlZFBvc2l0aW9uLmNsZWFyKCk7CkBAIC01
MTgsMTkgKzUxNywxOSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpzZXRJc0FsbG93ZWQoYm9vbCBhbGxv
d2VkKQogICAgIC8vIElmIHRoZSBzZXJ2aWNlIGhhcyBhIGxhc3QgcG9zaXRpb24sIHVzZSBpdCB0
byBjYWxsIGJhY2sgZm9yIGFsbCByZXF1ZXN0cy4KICAgICAvLyBJZiBhbnkgb2YgdGhlIHJlcXVl
c3RzIGFyZSB3YWl0aW5nIGZvciBwZXJtaXNzaW9uIGZvciBhIGNhY2hlZCBwb3NpdGlvbiwKICAg
ICAvLyB0aGUgcG9zaXRpb24gZnJvbSB0aGUgc2VydmljZSB3aWxsIGJlIGF0IGxlYXN0IGFzIGZy
ZXNoLgotICAgIGlmIChSZWZQdHI8R2VvcG9zaXRpb24+IHBvc2l0aW9uID0gbGFzdFBvc2l0aW9u
KCkpCisgICAgaWYgKFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3NpdGlvbiA9IGxhc3RQ
b3NpdGlvbigpKQogICAgICAgICBtYWtlU3VjY2Vzc0NhbGxiYWNrcygqcG9zaXRpb24pOwogICAg
IGVsc2UKICAgICAgICAgbWFrZUNhY2hlZFBvc2l0aW9uQ2FsbGJhY2tzKCk7CiB9CiAKLXZvaWQg
R2VvbG9jYXRpb246OnNlbmRFcnJvcihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZpZXJzLCBQb3Np
dGlvbkVycm9yJiBlcnJvcikKK3ZvaWQgR2VvbG9jYXRpb246OnNlbmRFcnJvcihHZW9Ob3RpZmll
clZlY3RvciYgbm90aWZpZXJzLCBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImIGVycm9yKQogewog
ICAgIGZvciAoYXV0byYgbm90aWZpZXIgOiBub3RpZmllcnMpCiAgICAgICAgIG5vdGlmaWVyLT5y
dW5FcnJvckNhbGxiYWNrKGVycm9yKTsKIH0KIAotdm9pZCBHZW9sb2NhdGlvbjo6c2VuZFBvc2l0
aW9uKEdlb05vdGlmaWVyVmVjdG9yJiBub3RpZmllcnMsIEdlb3Bvc2l0aW9uJiBwb3NpdGlvbikK
K3ZvaWQgR2VvbG9jYXRpb246OnNlbmRQb3NpdGlvbihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZp
ZXJzLCBHZW9sb2NhdGlvblBvc2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBmb3IgKGF1dG8mIG5v
dGlmaWVyIDogbm90aWZpZXJzKQogICAgICAgICBub3RpZmllci0+cnVuU3VjY2Vzc0NhbGxiYWNr
KCZwb3NpdGlvbik7CkBAIC01NjUsNyArNTY0LDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RvcFRp
bWVycygpCiB2b2lkIEdlb2xvY2F0aW9uOjpjYW5jZWxSZXF1ZXN0cyhHZW9Ob3RpZmllclZlY3Rv
ciYgbm90aWZpZXJzKQogewogICAgIGZvciAoYXV0byYgbm90aWZpZXIgOiBub3RpZmllcnMpCi0g
ICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3Np
dGlvbkVycm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgZnJhbWVsZXNzRG9jdW1lbnRFcnJvck1l
c3NhZ2UpKTsKKyAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Qb3Np
dGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQT1NJVElPTl9VTkFW
QUlMQUJMRSwgZnJhbWVsZXNzRG9jdW1lbnRFcnJvck1lc3NhZ2UpKTsKIH0KIAogdm9pZCBHZW9s
b2NhdGlvbjo6Y2FuY2VsQWxsUmVxdWVzdHMoKQpAQCAtNTk1LDcgKzU5NCw3IEBAIHZvaWQgR2Vv
bG9jYXRpb246OmNvcHlUb1NldChjb25zdCBHZW9Ob3RpZmllclZlY3RvciYgc3JjLCBHZW9Ob3Rp
ZmllclNldCYgZGVzdCkKICAgICAgICAgZGVzdC5hZGQobm90aWZpZXIuZ2V0KCkpOwogfQogCi12
b2lkIEdlb2xvY2F0aW9uOjpoYW5kbGVFcnJvcihQb3NpdGlvbkVycm9yJiBlcnJvcikKK3ZvaWQg
R2VvbG9jYXRpb246OmhhbmRsZUVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciYgZXJyb3Ip
CiB7CiAgICAgYXV0byBvbmVTaG90c0NvcHkgPSBjb3B5VG9WZWN0b3IobV9vbmVTaG90cyk7CiAK
QEAgLTY0Myw3ICs2NDIsNyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lvbigp
CiAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5yZXF1ZXN0UGVybWlzc2lv
bigqdGhpcyk7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb246Om1ha2VTdWNjZXNzQ2FsbGJhY2tzKEdl
b3Bvc2l0aW9uJiBwb3NpdGlvbikKK3ZvaWQgR2VvbG9jYXRpb246Om1ha2VTdWNjZXNzQ2FsbGJh
Y2tzKEdlb2xvY2F0aW9uUG9zaXRpb24mIHBvc2l0aW9uKQogewogICAgIEFTU0VSVChsYXN0UG9z
aXRpb24oKSk7CiAgICAgQVNTRVJUKGlzQWxsb3dlZCgpKTsKQEAgLTY3Nyw3ICs2NzYsNyBAQCB2
b2lkIEdlb2xvY2F0aW9uOjpwb3NpdGlvbkNoYW5nZWQoKQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgUmVmUHRyPEdlb3Bvc2l0aW9uPiBwb3NpdGlvbiA9IGxhc3RQb3NpdGlvbigpOwor
ICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3NpdGlvbiA9IGxhc3RQb3NpdGlvbigp
OwogICAgIEFTU0VSVChwb3NpdGlvbik7CiAKICAgICBtYWtlU3VjY2Vzc0NhbGxiYWNrcygqcG9z
aXRpb24pOwpAQCAtNjg2LDExICs2ODUsMTEgQEAgdm9pZCBHZW9sb2NhdGlvbjo6cG9zaXRpb25D
aGFuZ2VkKCkKIHZvaWQgR2VvbG9jYXRpb246OnNldEVycm9yKEdlb2xvY2F0aW9uRXJyb3ImIGVy
cm9yKQogewogICAgIGlmIChtX2lzU3VzcGVuZGVkKSB7Ci0gICAgICAgIG1fZXJyb3JXYWl0aW5n
Rm9yUmVzdW1lID0gY3JlYXRlUG9zaXRpb25FcnJvcihlcnJvcik7CisgICAgICAgIG1fZXJyb3JX
YWl0aW5nRm9yUmVzdW1lID0gY3JlYXRlR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKGVycm9yKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcG9zaXRpb25FcnJvciA9IGNyZWF0
ZVBvc2l0aW9uRXJyb3IoZXJyb3IpOworICAgIGF1dG8gcG9zaXRpb25FcnJvciA9IGNyZWF0ZUdl
b2xvY2F0aW9uUG9zaXRpb25FcnJvcihlcnJvcik7CiAgICAgaGFuZGxlRXJyb3IocG9zaXRpb25F
cnJvcik7CiB9CiAKQEAgLTcyNCw5ICs3MjMsOSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpoYW5kbGVQ
ZW5kaW5nUGVybWlzc2lvbk5vdGlmaWVycygpCiAgICAgICAgICAgICBpZiAoc3RhcnRVcGRhdGlu
Zyhub3RpZmllci5nZXQoKSkpCiAgICAgICAgICAgICAgICAgbm90aWZpZXItPnN0YXJ0VGltZXJJ
Zk5lZWRlZCgpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG5vdGlmaWVyLT5z
ZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQT1NJVElP
Tl9VTkFWQUlMQUJMRSwgZmFpbGVkVG9TdGFydFNlcnZpY2VFcnJvck1lc3NhZ2UpKTsKKyAgICAg
ICAgICAgICAgICBub3RpZmllci0+c2V0RmF0YWxFcnJvcihHZW9sb2NhdGlvblBvc2l0aW9uRXJy
b3I6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I6OlBPU0lUSU9OX1VOQVZBSUxBQkxF
LCBmYWlsZWRUb1N0YXJ0U2VydmljZUVycm9yTWVzc2FnZSkpOwogICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIG5vdGlmaWVyLT5zZXRGYXRhbEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQ
b3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVz
c2FnZSkpOworICAgICAgICAgICAgbm90aWZpZXItPnNldEZhdGFsRXJyb3IoR2VvbG9jYXRpb25Q
b3NpdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9O
X0RFTklFRCwgcGVybWlzc2lvbkRlbmllZEVycm9yTWVzc2FnZSkpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCmluZGV4
IDJhMDE5OGVlY2RjNWJkNTM0YWZhNzk5MGMyMTE0ZDAyNTM5YjBjNTguLjQ2MGM5MTIxODRiZDEw
ZWZhZmMwZjAyYzAyMmViZDZkMjc1OGQwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgKQEAgLTMwLDkgKzMwLDkgQEAKIAogI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAi
R2VvcG9zaXRpb24uaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCisjaW5jbHVk
ZSAiR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmgiCiAjaW5jbHVkZSAiUG9zaXRpb25DYWxsYmFj
ay5oIgotI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKICNpbmNsdWRlICJQb3NpdGlvbkVycm9y
Q2FsbGJhY2suaCIKICNpbmNsdWRlICJQb3NpdGlvbk9wdGlvbnMuaCIKICNpbmNsdWRlICJTY3Jp
cHRXcmFwcGFibGUuaCIKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBHZW9sb2NhdGlvbihOYXZpZ2F0b3ImKTsKIAotICAgIEdlb3Bvc2l0aW9uKiBsYXN0
UG9zaXRpb24oKTsKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uKiBsYXN0UG9zaXRpb24oKTsKIAog
ICAgIC8vIEFjdGl2ZURPTU9iamVjdAogICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwpAQCAtMTE1
LDggKzExNSw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIGhhc0xpc3RlbmVycygpIGNvbnN0IHsg
cmV0dXJuICFtX29uZVNob3RzLmlzRW1wdHkoKSB8fCAhbV93YXRjaGVycy5pc0VtcHR5KCk7IH0K
IAotICAgIHZvaWQgc2VuZEVycm9yKEdlb05vdGlmaWVyVmVjdG9yJiwgUG9zaXRpb25FcnJvciYp
OwotICAgIHZvaWQgc2VuZFBvc2l0aW9uKEdlb05vdGlmaWVyVmVjdG9yJiwgR2VvcG9zaXRpb24m
KTsKKyAgICB2b2lkIHNlbmRFcnJvcihHZW9Ob3RpZmllclZlY3RvciYsIEdlb2xvY2F0aW9uUG9z
aXRpb25FcnJvciYpOworICAgIHZvaWQgc2VuZFBvc2l0aW9uKEdlb05vdGlmaWVyVmVjdG9yJiwg
R2VvbG9jYXRpb25Qb3NpdGlvbiYpOwogCiAgICAgc3RhdGljIHZvaWQgZXh0cmFjdE5vdGlmaWVy
c1dpdGhDYWNoZWRQb3NpdGlvbihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZpZXJzLCBHZW9Ob3Rp
ZmllclZlY3RvciogY2FjaGVkKTsKICAgICBzdGF0aWMgdm9pZCBjb3B5VG9TZXQoY29uc3QgR2Vv
Tm90aWZpZXJWZWN0b3ImLCBHZW9Ob3RpZmllclNldCYpOwpAQCAtMTI5LDggKzEyOSw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBjYW5jZWxSZXF1ZXN0cyhHZW9Ob3RpZmllclZlY3RvciYpOwogICAg
IHZvaWQgY2FuY2VsQWxsUmVxdWVzdHMoKTsKIAotICAgIHZvaWQgbWFrZVN1Y2Nlc3NDYWxsYmFj
a3MoR2VvcG9zaXRpb24mKTsKLSAgICB2b2lkIGhhbmRsZUVycm9yKFBvc2l0aW9uRXJyb3ImKTsK
KyAgICB2b2lkIG1ha2VTdWNjZXNzQ2FsbGJhY2tzKEdlb2xvY2F0aW9uUG9zaXRpb24mKTsKKyAg
ICB2b2lkIGhhbmRsZUVycm9yKEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvciYpOwogCiAgICAgdm9p
ZCByZXF1ZXN0UGVybWlzc2lvbigpOwogCkBAIC0xNTMsMTMgKzE1MywxMyBAQCBwcml2YXRlOgog
ICAgIEdlb05vdGlmaWVyU2V0IG1fb25lU2hvdHM7CiAgICAgV2F0Y2hlcnMgbV93YXRjaGVyczsK
ICAgICBHZW9Ob3RpZmllclNldCBtX3BlbmRpbmdGb3JQZXJtaXNzaW9uTm90aWZpZXJzOwotICAg
IFJlZlB0cjxHZW9wb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247CisgICAgUmVmUHRyPEdlb2xvY2F0
aW9uUG9zaXRpb24+IG1fbGFzdFBvc2l0aW9uOwogCiAgICAgZW51bSB7IFVua25vd24sIEluUHJv
Z3Jlc3MsIFllcywgTm8gfSBtX2FsbG93R2VvbG9jYXRpb24geyBVbmtub3duIH07CiAgICAgYm9v
bCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVzZXRPblJlc3VtZSB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2hhc0NoYW5nZWRQb3NpdGlvbiB7IGZhbHNlIH07Ci0gICAgUmVm
UHRyPFBvc2l0aW9uRXJyb3I+IG1fZXJyb3JXYWl0aW5nRm9yUmVzdW1lOworICAgIFJlZlB0cjxH
ZW9sb2NhdGlvblBvc2l0aW9uRXJyb3I+IG1fZXJyb3JXYWl0aW5nRm9yUmVzdW1lOwogICAgIFRp
bWVyIG1fcmVzdW1lVGltZXI7CiAgICAgR2VvTm90aWZpZXJTZXQgbV9yZXF1ZXN0c0F3YWl0aW5n
Q2FjaGVkUG9zaXRpb247CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmlkbAppbmRleCBmNTczZDE2ZDY5ODBjODc2ZjU3YmYwOGExZjVj
ZDEzNjc2OGU5N2EzLi5lZGFkZDNhNWUyMTk5ZTkzZTFjOTE4YWU3OWY2MDI4OTA1ZjljNDFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmlkbApAQCAtMjUsNyArMjUsNiBAQAogCiAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9nZW9sb2Nh
dGlvbi1BUEkvI2dlb2xvY2F0aW9uX2ludGVyZmFjZQogWwotICAgIE5vSW50ZXJmYWNlT2JqZWN0
LAogICAgIENvbmRpdGlvbmFsPUdFT0xPQ0FUSU9OLCAKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxl
PVJlYWNoYWJsZUZyb21OYXZpZ2F0b3IsCiBdIGludGVyZmFjZSBHZW9sb2NhdGlvbiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xp
ZW50LmgKaW5kZXggZTdlMGU3NmQ0MGZjNTVkMmZjNGI0ZWY1MjdjMzI0OTczNDFlMzkzOS4uMjk3
MDNmYmI3YmEzYjhiNjMyNzk5ZDdjOTI3ZDFmMWUyNWQ2YmMwNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25DbGllbnQuaApAQCAt
MzAsNyArMzAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHZW9sb2NhdGlvbjsK
LWNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YTsKIGNsYXNzIFBhZ2U7CiAKIGNsYXNzIEdlb2xvY2F0aW9uQ2xpZW50IHsKQEAgLTQ0LDcgKzQ0
LDcgQEAgcHVibGljOgogICAgIC8vIFdlIHNob3VsZCB1cGRhdGUgV2ViS2l0IHRvIHJlZmxlY3Qg
dGhpcyBpZiBhbmQgd2hlbiB0aGUgVjIgc3BlY2lmaWNhdGlvbgogICAgIC8vIGlzIHB1Ymxpc2hl
ZC4KICAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpID0gMDsKLSAg
ICB2aXJ0dWFsIE9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+IGxhc3RQb3NpdGlvbigpID0g
MDsKKyAgICB2aXJ0dWFsIE9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBsYXN0UG9z
aXRpb24oKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oR2VvbG9j
YXRpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KEdl
b2xvY2F0aW9uJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IGNkODA3MGIyMDdk
YjhhMzQ0MDI2Y2ZmNjEwNWI4NWVlMTliYzUyNGMuLmM2YTI4MmZjZTkzNzA1YmQ3NjExMGQ0YTE3
NmNjZTVmNDNkNDNlMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKQEAgLTMwLDcgKzMwLDcg
QEAKIAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRp
b25FcnJvci5oIgotI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKKyNpbmNsdWRlICJH
ZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTk5
LDcgKzk5LDcgQEAgdm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmNhbmNlbFBlcm1pc3Npb25S
ZXF1ZXN0KEdlb2xvY2F0aW9uJiBnZW9sb2NhdGlvbikKICAgICBtX2NsaWVudC5jYW5jZWxQZXJt
aXNzaW9uUmVxdWVzdChnZW9sb2NhdGlvbik7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb25Db250cm9s
bGVyOjpwb3NpdGlvbkNoYW5nZWQoY29uc3QgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4m
IHBvc2l0aW9uKQordm9pZCBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OnBvc2l0aW9uQ2hhbmdlZChj
b25zdCBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4mIHBvc2l0aW9uKQogewogICAg
IG1fbGFzdFBvc2l0aW9uID0gcG9zaXRpb247CiAgICAgVmVjdG9yPFJlZjxHZW9sb2NhdGlvbj4+
IG9ic2VydmVyc1ZlY3RvcjsKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIEdlb2xvY2F0aW9uQ29u
dHJvbGxlcjo6ZXJyb3JPY2N1cnJlZChHZW9sb2NhdGlvbkVycm9yJiBlcnJvcikKICAgICAgICAg
b2JzZXJ2ZXItPnNldEVycm9yKGVycm9yKTsKIH0KIAotT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3Np
dGlvbj4gR2VvbG9jYXRpb25Db250cm9sbGVyOjpsYXN0UG9zaXRpb24oKQorT3B0aW9uYWw8R2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGE+IEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6bGFzdFBvc2l0aW9u
KCkKIHsKICAgICBpZiAobV9sYXN0UG9zaXRpb24pCiAgICAgICAgIHJldHVybiBtX2xhc3RQb3Np
dGlvbi52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmgKaW5kZXggMGM3MDQ5YmExMDEzYzI0MmM5
MjUyYzYxNTJiZmUzNDgxYWExNjU2Ni4uNTQ5MzRkNzlhMDY5ZWRlNWI0YTk2NzJhMTFlZjUxNWQ3
NDM3NzdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9H
ZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgR2VvbG9jYXRpb25DbGllbnQ7CiBjbGFzcyBHZW9sb2NhdGlv
bkVycm9yOwotY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9z
aXRpb25EYXRhOwogCiBjbGFzcyBHZW9sb2NhdGlvbkNvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxl
bWVudDxQYWdlPiwgcHJpdmF0ZSBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNTMsMTAgKzUzLDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlcXVlc3RQZXJtaXNzaW9uKEdlb2xvY2F0aW9uJik7CiAgICAgdm9pZCBjYW5jZWxQZXJt
aXNzaW9uUmVxdWVzdChHZW9sb2NhdGlvbiYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBw
b3NpdGlvbkNoYW5nZWQoY29uc3QgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4mKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc2l0aW9uQ2hhbmdlZChjb25zdCBPcHRpb25hbDxHZW9s
b2NhdGlvblBvc2l0aW9uRGF0YT4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVycm9yT2Nj
dXJyZWQoR2VvbG9jYXRpb25FcnJvciYpOwogCi0gICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3Np
dGlvbj4gbGFzdFBvc2l0aW9uKCk7CisgICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRh
dGE+IGxhc3RQb3NpdGlvbigpOwogCiAgICAgR2VvbG9jYXRpb25DbGllbnQmIGNsaWVudCgpIHsg
cmV0dXJuIG1fY2xpZW50OyB9CiAKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgYWN0aXZpdHlTdGF0ZURpZENoYW5nZShPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4g
b2xkQWN0aXZpdHlTdGF0ZSwgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU6OkZsYWc+IG5ld0FjdGl2
aXR5U3RhdGUpIG92ZXJyaWRlOwogCi0gICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4g
bV9sYXN0UG9zaXRpb247CisgICAgT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IG1f
bGFzdFBvc2l0aW9uOwogCiAgICAgdHlwZWRlZiBIYXNoU2V0PFJlZjxHZW9sb2NhdGlvbj4+IE9i
c2VydmVyc1NldDsKICAgICAvLyBBbGwgb2JzZXJ2ZXJzOyBib3RoIHRob3NlIHJlcXVlc3Rpbmcg
aGlnaCBhY2N1cmFjeSBhbmQgdGhvc2Ugbm90LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTJlYjBkY2EwMzFmNzA1YWE3MzRjOGIwZTlhYjBhMWFjMWEwMjliNAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b25Db29yZGluYXRlcy5jcHAKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
Ikdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHZW9s
b2NhdGlvbkNvb3JkaW5hdGVzOjpHZW9sb2NhdGlvbkNvb3JkaW5hdGVzKEdlb2xvY2F0aW9uUG9z
aXRpb25EYXRhJiYgcG9zaXRpb24pCisgICAgOiBtX3Bvc2l0aW9uKFdURk1vdmUocG9zaXRpb24p
KQoreworICAgIEFTU0VSVChtX3Bvc2l0aW9uLmlzVmFsaWQoKSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc1MWNhYzQ3NDIx
N2ExNTc1YTY3YWFjZDllOTQ0NTQ3NDc0ZGQ3OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5oCkBAIC0w
LDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb25EYXRh
LmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
R2VvbG9jYXRpb25Db29yZGluYXRlcyA6IHB1YmxpYyBSZWZDb3VudGVkPEdlb2xvY2F0aW9uQ29v
cmRpbmF0ZXM+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEdlb2xvY2F0aW9uQ29vcmRpbmF0
ZXM+IGNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmIHBvc2l0aW9uKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgR2VvbG9jYXRpb25Db29yZGluYXRlcyhXVEZNb3Zl
KHBvc2l0aW9uKSkpOworICAgIH0KKworICAgIFJlZjxHZW9sb2NhdGlvbkNvb3JkaW5hdGVzPiBp
c29sYXRlZENvcHkoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEdlb2xvY2F0aW9uQ29v
cmRpbmF0ZXM6OmNyZWF0ZShHZW9sb2NhdGlvblBvc2l0aW9uRGF0YShtX3Bvc2l0aW9uKSk7Cisg
ICAgfQorCisgICAgZG91YmxlIGxhdGl0dWRlKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5s
YXRpdHVkZTsgfQorICAgIGRvdWJsZSBsb25naXR1ZGUoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0
aW9uLmxvbmdpdHVkZTsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4gYWx0aXR1ZGUoKSBjb25zdCB7
IHJldHVybiBtX3Bvc2l0aW9uLmFsdGl0dWRlOyB9CisgICAgZG91YmxlIGFjY3VyYWN5KCkgY29u
c3QgeyByZXR1cm4gbV9wb3NpdGlvbi5hY2N1cmFjeTsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4g
YWx0aXR1ZGVBY2N1cmFjeSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24uYWx0aXR1ZGVBY2N1
cmFjeTsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4gaGVhZGluZygpIGNvbnN0IHsgcmV0dXJuIG1f
cG9zaXRpb24uaGVhZGluZzsgfQorICAgIE9wdGlvbmFsPGRvdWJsZT4gc3BlZWQoKSBjb25zdCB7
IHJldHVybiBtX3Bvc2l0aW9uLnNwZWVkOyB9CisgICAgT3B0aW9uYWw8ZG91YmxlPiBmbG9vckxl
dmVsKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5mbG9vckxldmVsOyB9CisgICAgCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMoR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEmJik7CisKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBtX3Bvc2l0aW9uOwor
fTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db29yZGluYXRlcy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZmMzk1NjRjNDM2YTUxZmRiZTUwZmJiZjQ0Nzg5YTYyN2I0NTBjNzAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uQ29vcmRpbmF0ZXMuaWRsCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDktMjAxOSBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9R0VP
TE9DQVRJT04sCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQorXSBpbnRlcmZhY2UgR2Vv
bG9jYXRpb25Db29yZGluYXRlcyB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3Rl
ZCBkb3VibGUgbGF0aXR1ZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBk
b3VibGUgbG9uZ2l0dWRlOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91
YmxlPyBhbHRpdHVkZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZSBhY2N1cmFjeTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZT8g
YWx0aXR1ZGVBY2N1cmFjeTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZT8gaGVhZGluZzsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJs
ZT8gc3BlZWQ7CisgICAgCisgICAgLy8gTm9uIHN0YW5kYXJkLgorICAgIFtFbmFibGVkQnlTZXR0
aW5nPUdlb2xvY2F0aW9uRmxvb3JMZXZlbF0gcmVhZG9ubHkgYXR0cmlidXRlIHVucmVzdHJpY3Rl
ZCBkb3VibGU/IGZsb29yTGV2ZWw7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaAppbmRleCBkNjlkYjU0M2Y4
ZTBmNmRlNzQ1ZGQ2MzAxNThlMWQxMWQ3MTYyYmU0Li5iOTEwMDA1MjhmYjViYzAwYmEwNDFlYjJm
NjYxYWI4MGU5ZDYzN2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMCwxMDggKzEwLDUyIEBACiAgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCiAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8K
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxjbWF0aD4KLSNpbmNsdWRlIDx3dGYvT3B0aW9u
YWwuaD4KLSNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSAiRE9NVGltZVN0YW1wLmgiCisj
aW5jbHVkZSAiR2VvbG9jYXRpb25Db29yZGluYXRlcy5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+Ci0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotT0JKQ19DTEFTUyBDTExvY2F0aW9u
OwotI2VuZGlmCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbiB7CitjbGFzcyBHZW9sb2NhdGlv
blBvc2l0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8R2VvbG9jYXRpb25Qb3NpdGlvbj4gewogcHVi
bGljOgotICAgIEdlb2xvY2F0aW9uUG9zaXRpb24oKSA9IGRlZmF1bHQ7Ci0KLSAgICBHZW9sb2Nh
dGlvblBvc2l0aW9uKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxv
bmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQotICAgICAgICA6IHRpbWVzdGFtcCh0aW1lc3RhbXAp
Ci0gICAgICAgICwgbGF0aXR1ZGUobGF0aXR1ZGUpCi0gICAgICAgICwgbG9uZ2l0dWRlKGxvbmdp
dHVkZSkKLSAgICAgICAgLCBhY2N1cmFjeShhY2N1cmFjeSkKKyAgICBzdGF0aWMgUmVmPEdlb2xv
Y2F0aW9uUG9zaXRpb24+IGNyZWF0ZShSZWY8R2VvbG9jYXRpb25Db29yZGluYXRlcz4mJiBjb29y
ZGluYXRlcywgRE9NVGltZVN0YW1wIHRpbWVzdGFtcCkKICAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEdlb2xvY2F0aW9uUG9zaXRpb24oV1RGTW92ZShjb29yZGluYXRlcyksIHRp
bWVzdGFtcCkpOwogICAgIH0KIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgV0VCQ09S
RV9FWFBPUlQgZXhwbGljaXQgR2VvbG9jYXRpb25Qb3NpdGlvbihDTExvY2F0aW9uKik7Ci0jZW5k
aWYKLQotICAgIGRvdWJsZSB0aW1lc3RhbXAgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46
OnF1aWV0X05hTigpIH07Ci0KLSAgICBkb3VibGUgbGF0aXR1ZGUgeyBzdGQ6Om51bWVyaWNfbGlt
aXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07Ci0gICAgZG91YmxlIGxvbmdpdHVkZSB7IHN0ZDo6
bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsKLSAgICBkb3VibGUgYWNjdXJh
Y3kgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07Ci0KLSAgICBP
cHRpb25hbDxkb3VibGU+IGFsdGl0dWRlOwotICAgIE9wdGlvbmFsPGRvdWJsZT4gYWx0aXR1ZGVB
Y2N1cmFjeTsKLSAgICBPcHRpb25hbDxkb3VibGU+IGhlYWRpbmc7Ci0gICAgT3B0aW9uYWw8ZG91
YmxlPiBzcGVlZDsKLSAgICBPcHRpb25hbDxkb3VibGU+IGZsb29yTGV2ZWw7CisgICAgUmVmPEdl
b2xvY2F0aW9uUG9zaXRpb24+IGlzb2xhdGVkQ29weSgpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gY3JlYXRlKG1fY29vcmRpbmF0ZXMtPmlzb2xhdGVkQ29weSgpLCBtX3RpbWVzdGFtcCk7
CisgICAgfQogCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgRE9NVGltZVN0YW1wIHRp
bWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgY29uc3QgR2VvbG9j
YXRpb25Db29yZGluYXRlcyYgY29vcmRzKCkgY29uc3QgeyByZXR1cm4gbV9jb29yZGluYXRlcy5n
ZXQoKTsgfQorICAgIAorcHJpdmF0ZToKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uKFJlZjxHZW9s
b2NhdGlvbkNvb3JkaW5hdGVzPiYmIGNvb3JkaW5hdGVzLCBET01UaW1lU3RhbXAgdGltZXN0YW1w
KQorICAgICAgICA6IG1fY29vcmRpbmF0ZXMoV1RGTW92ZShjb29yZGluYXRlcykpCisgICAgICAg
ICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQorICAgIHsKKyAgICB9CiAKLSAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBHZW9sb2NhdGlvblBv
c2l0aW9uJik7CisgICAgUmVmPEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXM+IG1fY29vcmRpbmF0ZXM7
CisgICAgRE9NVGltZVN0YW1wIG1fdGltZXN0YW1wOwogfTsKLQotdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4KLXZvaWQgR2VvbG9jYXRpb25Qb3NpdGlvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Ci17Ci0gICAgZW5jb2RlciA8PCB0aW1lc3RhbXA7Ci0gICAgZW5jb2RlciA8PCBsYXRp
dHVkZTsKLSAgICBlbmNvZGVyIDw8IGxvbmdpdHVkZTsKLSAgICBlbmNvZGVyIDw8IGFjY3VyYWN5
OwotICAgIGVuY29kZXIgPDwgYWx0aXR1ZGU7Ci0gICAgZW5jb2RlciA8PCBhbHRpdHVkZUFjY3Vy
YWN5OwotICAgIGVuY29kZXIgPDwgaGVhZGluZzsKLSAgICBlbmNvZGVyIDw8IHNwZWVkOwotICAg
IGVuY29kZXIgPDwgZmxvb3JMZXZlbDsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLWJv
b2wgR2VvbG9jYXRpb25Qb3NpdGlvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEdlb2xvY2F0
aW9uUG9zaXRpb24mIHBvc2l0aW9uKQotewotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRp
b24udGltZXN0YW1wKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocG9zaXRpb24ubGF0aXR1ZGUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5sb25naXR1ZGUpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5hY2N1cmFjeSkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmFsdGl0dWRl
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRp
b24uYWx0aXR1ZGVBY2N1cmFjeSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBvc2l0aW9uLmhlYWRpbmcpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5zcGVlZCkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmZsb29yTGV2ZWwpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotaW5saW5lIGJvb2wg
R2VvbG9jYXRpb25Qb3NpdGlvbjo6aXNWYWxpZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICFzdGQ6
OmlzbmFuKHRpbWVzdGFtcCkgJiYgIXN0ZDo6aXNuYW4obGF0aXR1ZGUpICYmICFzdGQ6OmlzbmFu
KGxvbmdpdHVkZSkgJiYgIXN0ZDo6aXNuYW4oYWNjdXJhY3kpOwotfQotCisgICAgCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzJmOGQ5ZmE4
ZTFkM2NhYjk3ZDQ1MDk0OGYzZjE0MTU5NjdkOWE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmlkbApAQCAt
MCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgQXBwbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworWworICAgIENvbmRpdGlvbmFsPUdFT0xPQ0FUSU9OLAorICAgIEltcGxlbWVudGF0
aW9uTGFja3NWVGFibGUKK10gaW50ZXJmYWNlIEdlb2xvY2F0aW9uUG9zaXRpb24geworICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzIGNvb3JkczsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NVGltZVN0YW1wIHRpbWVzdGFtcDsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRp
b25EYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGMyYjRlMzQ1YzM5ZDViMDhjOWUxNzU2NDc3NThhMjZhMWFk
MDNlMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwOS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCitPQkpDX0NMQVNTIENMTG9jYXRpb247
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YSB7CitwdWJsaWM6CisgICAgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoKSA9IGRlZmF1
bHQ7CisKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YShkb3VibGUgdGltZXN0YW1wLCBkb3Vi
bGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKKyAgICAgICAg
OiB0aW1lc3RhbXAodGltZXN0YW1wKQorICAgICAgICAsIGxhdGl0dWRlKGxhdGl0dWRlKQorICAg
ICAgICAsIGxvbmdpdHVkZShsb25naXR1ZGUpCisgICAgICAgICwgYWNjdXJhY3koYWNjdXJhY3kp
CisgICAgeworICAgIH0KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgV0VCQ09SRV9F
WFBPUlQgZXhwbGljaXQgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoQ0xMb2NhdGlvbiopOworI2Vu
ZGlmCisKKyAgICBkb3VibGUgdGltZXN0YW1wIHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKSB9OworCisgICAgZG91YmxlIGxhdGl0dWRlIHsgc3RkOjpudW1lcmljX2xp
bWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OworICAgIGRvdWJsZSBsb25naXR1ZGUgeyBzdGQ6
Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07CisgICAgZG91YmxlIGFjY3Vy
YWN5IHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OworCisgICAg
T3B0aW9uYWw8ZG91YmxlPiBhbHRpdHVkZTsKKyAgICBPcHRpb25hbDxkb3VibGU+IGFsdGl0dWRl
QWNjdXJhY3k7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBoZWFkaW5nOworICAgIE9wdGlvbmFsPGRv
dWJsZT4gc3BlZWQ7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBmbG9vckxldmVsOworCisgICAgYm9v
bCBpc1ZhbGlkKCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IGJvb2wgZGVjb2RlKERlY29kZXImLCBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYpOworfTsKKwor
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgdGltZXN0YW1w
OworICAgIGVuY29kZXIgPDwgbGF0aXR1ZGU7CisgICAgZW5jb2RlciA8PCBsb25naXR1ZGU7Cisg
ICAgZW5jb2RlciA8PCBhY2N1cmFjeTsKKyAgICBlbmNvZGVyIDw8IGFsdGl0dWRlOworICAgIGVu
Y29kZXIgPDwgYWx0aXR1ZGVBY2N1cmFjeTsKKyAgICBlbmNvZGVyIDw8IGhlYWRpbmc7CisgICAg
ZW5jb2RlciA8PCBzcGVlZDsKKyAgICBlbmNvZGVyIDw8IGZsb29yTGV2ZWw7Cit9CisKK3RlbXBs
YXRlPGNsYXNzIERlY29kZXI+Citib29sIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmIHBvc2l0aW9uKQorewor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24udGltZXN0YW1wKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24ubGF0aXR1ZGUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3NpdGlvbi5s
b25naXR1ZGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwb3NpdGlvbi5hY2N1cmFjeSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBvc2l0aW9uLmFsdGl0dWRlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocG9zaXRpb24uYWx0aXR1ZGVBY2N1cmFjeSkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBvc2l0aW9uLmhlYWRp
bmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwb3Np
dGlvbi5zcGVlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBvc2l0aW9uLmZsb29yTGV2ZWwpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworaW5saW5lIGJvb2wgR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE6Omlz
VmFsaWQoKSBjb25zdAoreworICAgIHJldHVybiAhc3RkOjppc25hbih0aW1lc3RhbXApICYmICFz
dGQ6OmlzbmFuKGxhdGl0dWRlKSAmJiAhc3RkOjppc25hbihsb25naXR1ZGUpICYmICFzdGQ6Omlz
bmFuKGFjY3VyYWN5KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uRXJy
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3Np
dGlvbkVycm9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE0NGUxZTI3YjFmMWUzNmQxMjFmYjBjNzQ3OWMzNzQx
NGYwN2MxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRp
b25FcnJvciA6IHB1YmxpYyBSZWZDb3VudGVkPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvcj4gewor
cHVibGljOgorICAgIGVudW0gRXJyb3JDb2RlIHsKKyAgICAgICAgUEVSTUlTU0lPTl9ERU5JRUQg
PSAxLAorICAgICAgICBQT1NJVElPTl9VTkFWQUlMQUJMRSA9IDIsCisgICAgICAgIFRJTUVPVVQg
PSAzCisgICAgfTsKKyAgICAKKyAgICBzdGF0aWMgUmVmPEdlb2xvY2F0aW9uUG9zaXRpb25FcnJv
cj4gY3JlYXRlKEVycm9yQ29kZSBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKGNvZGUsIG1lc3NhZ2UpKTsg
fQorCisgICAgRXJyb3JDb2RlIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KKyAgICBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KKyAgICB2
b2lkIHNldElzRmF0YWwoYm9vbCBpc0ZhdGFsKSB7IG1faXNGYXRhbCA9IGlzRmF0YWw7IH0KKyAg
ICBib29sIGlzRmF0YWwoKSBjb25zdCB7IHJldHVybiBtX2lzRmF0YWw7IH0KKyAgICAKK3ByaXZh
dGU6CisgICAgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKEVycm9yQ29kZSBjb2RlLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCisgICAgICAgIDogbV9jb2RlKGNvZGUpCisgICAgICAgICwgbV9tZXNz
YWdlKG1lc3NhZ2UpCisgICAgICAgICwgbV9pc0ZhdGFsKGZhbHNlKQorICAgIHsKKyAgICB9Cisg
ICAgCisgICAgRXJyb3JDb2RlIG1fY29kZTsKKyAgICBTdHJpbmcgbV9tZXNzYWdlOworICAgIC8v
IFdoZXRoZXIgdGhlIGVycm9yIGlzIGZhdGFsLCBzdWNoIHRoYXQgbm8gcmVxdWVzdCBjYW4gZXZl
ciBvYnRhaW4gYSBnb29kCisgICAgLy8gcG9zaXRpb24gZml4IGluIHRoZSBmdXR1cmUuCisgICAg
Ym9vbCBtX2lzRmF0YWw7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0
aW9uRXJyb3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvblBvc2l0aW9uRXJyb3IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0YTVjMDc0ZTk2MjcxZjg2OGU1N2Uy
MzQ0MWYwM2JhNGYwOTc3ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwKQEAgLTAsMCArMSwz
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
K1sKKyAgICBDb25kaXRpb25hbD1HRU9MT0NBVElPTiwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tz
VlRhYmxlCitdIGludGVyZmFjZSBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IgeworICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IFBFUk1JU1NJT05fREVOSUVEID0gMTsKKyAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBQT1NJVElPTl9VTkFWQUlMQUJMRSA9IDI7CisgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgVElNRU9VVCA9IDM7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNv
ZGU7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXNzYWdlOworfTsKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9wb3NpdGlvbi5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTMzMGRlNThlMmE2M2E5ZDZiM2UzMjJjNzI1OWJh
MGFmNTk5ODE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaAorKysgL2Rl
di9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDb29yZGluYXRlcy5oIgot
I2luY2x1ZGUgIkRPTVRpbWVTdGFtcC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
Y2xhc3MgR2VvcG9zaXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxHZW9wb3NpdGlvbj4gewotcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8R2VvcG9zaXRpb24+IGNyZWF0ZShSZWY8Q29vcmRpbmF0ZXM+
JiYgY29vcmRpbmF0ZXMsIERPTVRpbWVTdGFtcCB0aW1lc3RhbXApCi0gICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBHZW9wb3NpdGlvbihXVEZNb3ZlKGNvb3JkaW5hdGVzKSwgdGlt
ZXN0YW1wKSk7Ci0gICAgfQotCi0gICAgUmVmPEdlb3Bvc2l0aW9uPiBpc29sYXRlZENvcHkoKSBj
b25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZShtX2Nvb3JkaW5hdGVzLT5pc29sYXRl
ZENvcHkoKSwgbV90aW1lc3RhbXApOwotICAgIH0KLQotICAgIERPTVRpbWVTdGFtcCB0aW1lc3Rh
bXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQotICAgIGNvbnN0IENvb3JkaW5hdGVz
JiBjb29yZHMoKSBjb25zdCB7IHJldHVybiBtX2Nvb3JkaW5hdGVzLmdldCgpOyB9Ci0gICAgCi1w
cml2YXRlOgotICAgIEdlb3Bvc2l0aW9uKFJlZjxDb29yZGluYXRlcz4mJiBjb29yZGluYXRlcywg
RE9NVGltZVN0YW1wIHRpbWVzdGFtcCkKLSAgICAgICAgOiBtX2Nvb3JkaW5hdGVzKFdURk1vdmUo
Y29vcmRpbmF0ZXMpKQotICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKLSAgICB7Ci0g
ICAgfQotCi0gICAgUmVmPENvb3JkaW5hdGVzPiBtX2Nvb3JkaW5hdGVzOwotICAgIERPTVRpbWVT
dGFtcCBtX3RpbWVzdGFtcDsKLX07Ci0gICAgCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb3Bvc2l0aW9uLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZjhjYjA5YjJmYmY5NDE2NDUzNGUxODIwNDI5
OTA0YmJiNTlkMmRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvcG9zaXRpb24uaWRsCisr
KyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotCi1bCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAgQ29uZGl0
aW9uYWw9R0VPTE9DQVRJT04sCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRl
cmZhY2UgR2VvcG9zaXRpb24gewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDb29yZGluYXRlcyBj
b29yZHM7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVRpbWVTdGFtcCB0aW1lc3RhbXA7Ci19
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlv
bkNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9u
Q2FsbGJhY2suaAppbmRleCA0YjU3MzgyNDA4OTJkOTEyNWJmYWExMzYyODY1ZDg0MTM5ZjY2NWRj
Li5hMjc5NTM5OTFiNDljZDA5MzQwZTljZWEyMWQzMDBkNmZjMWMxODNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaApA
QCAtMzEsMTMgKzMxLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR2VvcG9z
aXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOwogCiBjbGFzcyBQb3NpdGlvbkNhbGxi
YWNrIDogcHVibGljIFJlZkNvdW50ZWQ8UG9zaXRpb25DYWxsYmFjaz4sIHB1YmxpYyBBY3RpdmVE
T01DYWxsYmFjayB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQWN0aXZlRE9NQ2FsbGJhY2s6OkFjdGl2
ZURPTUNhbGxiYWNrOwogCi0gICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVF
dmVudChHZW9wb3NpdGlvbiopID0gMDsKKyAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+
IGhhbmRsZUV2ZW50KEdlb2xvY2F0aW9uUG9zaXRpb24qKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL1Bvc2l0aW9uQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9Qb3NpdGlvbkNhbGxiYWNrLmlkbAppbmRleCBhZDY2MWY1ZWZjMjYyMTYyYWNkNWE4YWY0
M2E4Yzc0MGY4YWJlYTUyLi5kNWNlODU2MzcwNzQ0NzgyMzZkMDhmYmE0OTFkZDBiZTZmYzg4OTEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9u
Q2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9z
aXRpb25DYWxsYmFjay5pZGwKQEAgLTI0LDQgKzI0LDQgQEAKIAogWwogICAgIENvbmRpdGlvbmFs
PUdFT0xPQ0FUSU9OLAotXSBjYWxsYmFjayBQb3NpdGlvbkNhbGxiYWNrID0gdm9pZCAoR2VvcG9z
aXRpb24/IHBvc2l0aW9uKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4K
K10gY2FsbGJhY2sgUG9zaXRpb25DYWxsYmFjayA9IHZvaWQgKEdlb2xvY2F0aW9uUG9zaXRpb24/
IHBvc2l0aW9uKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2NDIyZWY5YjZkYjNmMWE5MGY4YTQwNDE4Zjli
NTk2M2NkMDNlNjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotICAgIAotY2xhc3MgUG9zaXRpb25FcnJvciA6IHB1YmxpYyBSZWZDb3VudGVkPFBvc2l0
aW9uRXJyb3I+IHsKLXB1YmxpYzoKLSAgICBlbnVtIEVycm9yQ29kZSB7Ci0gICAgICAgIFBFUk1J
U1NJT05fREVOSUVEID0gMSwKLSAgICAgICAgUE9TSVRJT05fVU5BVkFJTEFCTEUgPSAyLAotICAg
ICAgICBUSU1FT1VUID0gMwotICAgIH07Ci0gICAgCi0gICAgc3RhdGljIFJlZjxQb3NpdGlvbkVy
cm9yPiBjcmVhdGUoRXJyb3JDb2RlIGNvZGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBQb3NpdGlvbkVycm9yKGNvZGUsIG1lc3NhZ2UpKTsgfQotCi0gICAg
RXJyb3JDb2RlIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KLSAgICBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KLSAgICB2b2lkIHNldElz
RmF0YWwoYm9vbCBpc0ZhdGFsKSB7IG1faXNGYXRhbCA9IGlzRmF0YWw7IH0KLSAgICBib29sIGlz
RmF0YWwoKSBjb25zdCB7IHJldHVybiBtX2lzRmF0YWw7IH0KLSAgICAKLXByaXZhdGU6Ci0gICAg
UG9zaXRpb25FcnJvcihFcnJvckNvZGUgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSAKLSAg
ICAgICAgOiBtX2NvZGUoY29kZSkKLSAgICAgICAgLCBtX21lc3NhZ2UobWVzc2FnZSkKLSAgICAg
ICAgLCBtX2lzRmF0YWwoZmFsc2UpCi0gICAgewotICAgIH0KLSAgICAKLSAgICBFcnJvckNvZGUg
bV9jb2RlOwotICAgIFN0cmluZyBtX21lc3NhZ2U7Ci0gICAgLy8gV2hldGhlciB0aGUgZXJyb3Ig
aXMgZmF0YWwsIHN1Y2ggdGhhdCBubyByZXF1ZXN0IGNhbiBldmVyIG9idGFpbiBhIGdvb2QKLSAg
ICAvLyBwb3NpdGlvbiBmaXggaW4gdGhlIGZ1dHVyZS4KLSAgICBib29sIG1faXNGYXRhbDsKLX07
Ci0gICAgCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNWMxZjNhMjcyYTY3ZjQ2YWE2ODJjYmU4YmExYmY5ZTdhOTBmNGNlMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3IuaWRsCisrKyAvZGV2L251bGwKQEAg
LTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotCi1bCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJ
T04sCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBpbnRlcmZhY2UgUG9zaXRpb25F
cnJvciB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNvZGU7Ci0gICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBtZXNzYWdlOwotCi0gICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgUEVSTUlTU0lPTl9ERU5JRUQgPSAxOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IFBPU0lUSU9OX1VOQVZBSUxBQkxFID0gMjsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBUSU1F
T1VUID0gMzsKLX07Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5oCmluZGV4IDQ4MTZiMWRiMWQzMmU5NzJm
OTcwODEyYjg1YzVhNDc3YjE4ZDU0MjUuLmE3NWUwNzg4ZjU0Nzg5YjBkY2JlOTAwYjliNTVjNmEw
ZDEyZGFlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
UG9zaXRpb25FcnJvckNhbGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaApAQCAtMzEsMTMgKzMxLDEzIEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUG9zaXRpb25FcnJvcjsKK2NsYXNzIEdlb2xvY2F0
aW9uUG9zaXRpb25FcnJvcjsKIAogY2xhc3MgUG9zaXRpb25FcnJvckNhbGxiYWNrIDogcHVibGlj
IFJlZkNvdW50ZWQ8UG9zaXRpb25FcnJvckNhbGxiYWNrPiwgcHVibGljIEFjdGl2ZURPTUNhbGxi
YWNrIHsKIHB1YmxpYzoKICAgICB1c2luZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZlRE9NQ2Fs
bGJhY2s7CiAKLSAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KFBv
c2l0aW9uRXJyb3ImKSA9IDA7CisgICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5k
bGVFdmVudChHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3ImKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwKaW5kZXggNTdiNDkzY2NiZjU0NmFk
YzAyNDE0NWUzMWJkODRlNDM1OGJmYzQ3Mi4uZmEwOTgwZTM2MDZhOGY4ZjVmYWY0YmUxZGM5Mzg5
MjlmNmQwMzhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbApAQCAtMjQsNCArMjQsNCBAQAog
CiBbCiAgICAgQ29uZGl0aW9uYWw9R0VPTE9DQVRJT04sCi1dIGNhbGxiYWNrIFBvc2l0aW9uRXJy
b3JDYWxsYmFjayA9IHZvaWQgKFBvc2l0aW9uRXJyb3IgZXJyb3IpOworXSBjYWxsYmFjayBQb3Np
dGlvbkVycm9yQ2FsbGJhY2sgPSB2b2lkIChHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IgZXJyb3Ip
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OGQ5
YTI0MjFlN2YyMzA5YjRmNjIzYjE0ZDdjYmUyYjZjN2UwNDVjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2VvbG9jYXRpb25Qb3NpdGlv
bkRhdGFJT1MubW0KQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiR2VvbG9jYXRp
b25Qb3NpdGlvbi5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCA8Q29y
ZUxvY2F0aW9uL0NMTG9jYXRpb24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEoQ0xMb2NhdGlvbiogbG9j
YXRpb24pCisgICAgOiB0aW1lc3RhbXAobG9jYXRpb24udGltZXN0YW1wLnRpbWVJbnRlcnZhbFNp
bmNlMTk3MCkKKyAgICAsIGxhdGl0dWRlKGxvY2F0aW9uLmNvb3JkaW5hdGUubGF0aXR1ZGUpCisg
ICAgLCBsb25naXR1ZGUobG9jYXRpb24uY29vcmRpbmF0ZS5sb25naXR1ZGUpCisgICAgLCBhY2N1
cmFjeShsb2NhdGlvbi5ob3Jpem9udGFsQWNjdXJhY3kpCit7CisgICAgaWYgKGxvY2F0aW9uLnZl
cnRpY2FsQWNjdXJhY3kgPj0gMC4wKSB7CisgICAgICAgIGFsdGl0dWRlID0gbG9jYXRpb24uYWx0
aXR1ZGU7CisgICAgICAgIGFsdGl0dWRlQWNjdXJhY3kgPSBsb2NhdGlvbi52ZXJ0aWNhbEFjY3Vy
YWN5OworICAgIH0KKyAgICBpZiAobG9jYXRpb24uc3BlZWQgPj0gMC4wKQorICAgICAgICBzcGVl
ZCA9IGxvY2F0aW9uLnNwZWVkOworICAgIGlmIChsb2NhdGlvbi5jb3Vyc2UgPj0gMC4wKQorICAg
ICAgICBoZWFkaW5nID0gbG9jYXRpb24uY291cnNlOworI2lmICFQTEFURk9STShNQUNDQVRBTFlT
VCkKKyAgICBpZiAobG9jYXRpb24uZmxvb3IpCisgICAgICAgIGZsb29yTGV2ZWwgPSBsb2NhdGlv
bi5mbG9vci5sZXZlbDsKKyNlbmRpZgorfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9p
b3MvR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDUxMzZhNTFlMmI2ZTg1ZmQ0Mzg2MjhiZGI3ZjBmNmVlMDNjMzBjNzYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9pb3MvR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbQorKysg
L2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIkdlb2xvY2F0aW9u
UG9zaXRpb24uaCIKLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0KLSNpbXBvcnQgPENvcmVM
b2NhdGlvbi9DTExvY2F0aW9uLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotR2VvbG9jYXRp
b25Qb3NpdGlvbjo6R2VvbG9jYXRpb25Qb3NpdGlvbihDTExvY2F0aW9uKiBsb2NhdGlvbikKLSAg
ICA6IHRpbWVzdGFtcChsb2NhdGlvbi50aW1lc3RhbXAudGltZUludGVydmFsU2luY2UxOTcwKQot
ICAgICwgbGF0aXR1ZGUobG9jYXRpb24uY29vcmRpbmF0ZS5sYXRpdHVkZSkKLSAgICAsIGxvbmdp
dHVkZShsb2NhdGlvbi5jb29yZGluYXRlLmxvbmdpdHVkZSkKLSAgICAsIGFjY3VyYWN5KGxvY2F0
aW9uLmhvcml6b250YWxBY2N1cmFjeSkKLXsKLSAgICBpZiAobG9jYXRpb24udmVydGljYWxBY2N1
cmFjeSA+PSAwLjApIHsKLSAgICAgICAgYWx0aXR1ZGUgPSBsb2NhdGlvbi5hbHRpdHVkZTsKLSAg
ICAgICAgYWx0aXR1ZGVBY2N1cmFjeSA9IGxvY2F0aW9uLnZlcnRpY2FsQWNjdXJhY3k7Ci0gICAg
fQotICAgIGlmIChsb2NhdGlvbi5zcGVlZCA+PSAwLjApCi0gICAgICAgIHNwZWVkID0gbG9jYXRp
b24uc3BlZWQ7Ci0gICAgaWYgKGxvY2F0aW9uLmNvdXJzZSA+PSAwLjApCi0gICAgICAgIGhlYWRp
bmcgPSBsb2NhdGlvbi5jb3Vyc2U7Ci0jaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIGlm
IChsb2NhdGlvbi5mbG9vcikKLSAgICAgICAgZmxvb3JMZXZlbCA9IGxvY2F0aW9uLmZsb29yLmxl
dmVsOwotI2VuZGlmCi19Ci0KLX0KLQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IDBhMzhkZDQ2YzdkNDU5NDA0OGJjZWZmNDliZWRhMzg2OGJkMjk1ZGIu
LmZmZDVlYjA3MjhjNWU5OGJiZWQ1N2ZiMDJhZWZkNThlZTJjOTZjNzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC02NywxMCArNjcsMTAgQEAgTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3QuY3BwCiBNb2R1
bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCiBNb2R1bGVzL2ZldGNoL1dvcmtlckdsb2JhbFNj
b3BlRmV0Y2guY3BwCiAKLU1vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuY3BwCiBNb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb05vdGlmaWVyLmNwcAogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9s
b2NhdGlvbi5jcHAKIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNw
cAorTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcAogTW9kdWxl
cy9nZW9sb2NhdGlvbi9OYXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAKIAogTW9kdWxlcy9pbmRleGVk
ZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcApAQCAtMjY3Miw3ICsyNjcyLDYgQEAgSlND
b21wb3NpdGVPcGVyYXRpb24uY3BwCiBKU0NvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0by5jcHAKIEpT
Q29tcHV0ZWRFZmZlY3RUaW1pbmcuY3BwCiBKU0NvbnZvbHZlck5vZGUuY3BwCi1KU0Nvb3JkaW5h
dGVzLmNwcAogSlNDb3VudFF1ZXVpbmdTdHJhdGVneS5jcHAKIEpTQ3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucy5jcHAKIEpTQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmNwcApAQCAtMjgzMSw3ICsy
ODMwLDkgQEAgSlNHUFVWZXJ0ZXhCdWZmZXJEZXNjcmlwdG9yLmNwcAogSlNHUFVWZXJ0ZXhJbnB1
dERlc2NyaXB0b3IuY3BwCiBKU0dhaW5Ob2RlLmNwcAogSlNHZW9sb2NhdGlvbi5jcHAKLUpTR2Vv
cG9zaXRpb24uY3BwCitKU0dlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwCitKU0dlb2xvY2F0aW9u
UG9zaXRpb24uY3BwCitKU0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5jcHAKIEpTR2xvYmFsQ3J5
cHRvLmNwcAogSlNHbG9iYWxFdmVudEhhbmRsZXJzLmNwcAogSlNHbG9iYWxQZXJmb3JtYW5jZS5j
cHAKQEAgLTMwNzIsNyArMzA3Myw2IEBAIEpTUGxheWJhY2tEaXJlY3Rpb24uY3BwCiBKU1BvaW50
ZXJFdmVudC5jcHAKIEpTUG9wU3RhdGVFdmVudC5jcHAKIEpTUG9zaXRpb25DYWxsYmFjay5jcHAK
LUpTUG9zaXRpb25FcnJvci5jcHAKIEpTUG9zaXRpb25FcnJvckNhbGxiYWNrLmNwcAogSlNQb3Np
dGlvbk9wdGlvbnMuY3BwCiBKU1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzODUyZDNk
MzkzN2Q2NmU5ZGZmMTI5MGQzMWNjY2Q4NDZmOWNiNWRhLi4xOWZjOWUwZjc4MjFmMTU5NzYyYjYw
OWNlMmExNTZjOGM2ZTVlNWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzkyLDcgKzIzOTIsNyBAQAogCQk4MzcyREIzMTFB
Njc4MEE4MDBDNjk3QzUgLyogRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzcyREIzMDFBNjc4MEE4MDBD
Njk3QzUgLyogRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRUeXBlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM3NjVGOTUxREFDNTIyRjAwQzA2NTM3
IC8qIE1vdXNlRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4Mzc2NUY5NDFEQUM1MjE4MDBDMDY1MzcgLyogTW91c2VFdmVudEluaXQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4Mzc5MzYz
RjFGQkJCMEI0MDBDODAyM0MgLyogU2VydmljZVdvcmtlckNsaWVudERhdGEuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNzkzNjNFMUZCQkIwQTUwMEM4
MDIzQyAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTgzNzk2NENGMUY4REI2OUQwMDIxOEVBMCAvKiBH
ZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9z
aXRpb25JT1MubW0gKi87IH07CisJCTgzNzk2NENGMUY4REI2OUQwMDIxOEVBMCAvKiBHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YUlPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzNzk2NENFMUY4REI2OUEwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YUlPUy5tbSAqLzsgfTsKIAkJODM3QTgwMTMxRTFFMTI3MzAwMDI2QjlGIC8qIExvY2Fs
aXphYmxlLnN0cmluZ3NkaWN0IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzdBODAxMTFFMUUxMjczMDAwMjZCOUYgLyogTG9jYWxpemFibGUuc3RyaW5n
c2RpY3QgKi87IH07CiAJCTgzN0Q0NjI3MUZBMkE4Q0UwMDU0RTFGQSAvKiBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM3RDQ2MjUxRkEyQThDNTAwNTRFMUZBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJODM3RkIzNDUxRjlFQTA2RDAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0ZCMzQw
MUY5RUEwNjYwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmggKi87IH07CkBAIC0y
NzI4LDE1ICsyNzI4LDE1IEBACiAJCTk3Mzg4OUExMTE2RUE5REMwMEFERjMxMyAvKiBEb2N1bWVu
dFdyaXRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTczODg5OUYxMTZFQTlEQzAwQURGMzEzIC8qIERvY3VtZW50V3JpdGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTczRTMyNTcxMDg4M0I3QzAw
NUJDNDkzIC8qIFJlc291cmNlTG9hZE5vdGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzNFMzI1NTEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5NzNGNDE4QTE2OUI5NUZGMDAwNkJGNjAgLyogSFRNTFBhcnNlck9wdGlvbnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3M0Y0MTg4
MTY5Qjk1RUYwMDA2QkY2MCAvKiBIVE1MUGFyc2VyT3B0aW9ucy5oICovOyB9OwotCQk5NzQ2QUYy
MTE0RjREREU2MDAzRTdBNzEgLyogQ29vcmRpbmF0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjExMTRGNERERTYwMDNFN0E3MCAvKiBDb29y
ZGluYXRlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTk3NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxMTE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db29yZGluYXRlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NDZBRjI0MTRGNERERTYwMDNF
N0E3MCAvKiBHZW9sb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTc0NkFGMTQxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFGMjUx
NEY0RERFNjAwM0U3QTcxIC8qIEdlb2xvY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxNTE0RjREREU2MDAzRTdBNzEgLyog
R2VvbG9jYXRpb25DbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5NzQ2QUYyNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250
cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzQ2QUYxNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFGMjgxNEY0
RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjE4MTRGNERERTYwMDNFN0E3MCAvKiBHZW9s
b2NhdGlvbkVycm9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJOTc0NkFGMjkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjE5
MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTc0NkFGMkExNEY0RERFNjAwM0U3
QTcwIC8qIEdlb3Bvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvcG9zaXRpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NzQ2QUYyOTE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjE5MTRGNERERTYwMDNFN0E3
MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTk3NDZBRjJBMTRGNERERTYwMDNFN0E3MCAvKiBHZW9s
b2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NDZB
RjJDMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYxQzE0RjREREU2MDAzRTdBNzAg
LyogUG9zaXRpb25DYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTk3NDZBRjJFMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2QUYx
RTE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk3NDZBRjJFMTRGNERERTYwMDNFN0E3MCAv
KiBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3NDZBRjFFMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlv
blBvc2l0aW9uRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5NzQ2QUYzMDE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvckNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzQ2
QUYyMDE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvckNhbGxiYWNrLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc0NkFGMzIxNEY0RERF
NjAwM0U3QTcwIC8qIFBvc2l0aW9uT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTc0NkFGMjIxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9u
T3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTk3NEE4NjIzMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NEE4NjIx
MTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTAwNjMsNyArMTAwNjMs
NyBAQAogCQk4Mzc2NUY5NDFEQUM1MjE4MDBDMDY1MzcgLyogTW91c2VFdmVudEluaXQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW91c2VFdmVudEluaXQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM3OTM2M0MxRkJCQjBBNDAwQzgwMjNDIC8qIFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODM3OTM2M0UxRkJCQjBBNTAwQzgwMjNDIC8qIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgzNzk2NENFMUY4REI2OUEwMDIxOEVB
MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbTsgcGF0aCA9IE1vZHVsZXMv
Z2VvbG9jYXRpb24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW07IHNvdXJjZVRyZWUgPSBT
T1VSQ0VfUk9PVDsgfTsKKwkJODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGFJT1MubW07IHBhdGggPSBNb2R1bGVzL2dlb2xvY2F0
aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5tbTsgc291cmNlVHJlZSA9IFNPVVJD
RV9ST09UOyB9OwogCQk4MzdBODAxMjFFMUUxMjczMDAwMjZCOUYgLyogZW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnN0cmluZ3Nk
aWN0OyBuYW1lID0gZW47IHBhdGggPSBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzZGljdDsg
c291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk4MzdCN0QxRjFEQzNGNTRDMDBEMDUxRkMg
LyogVmFsaWRhdGlvbkJ1YmJsZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFZhbGlkYXRpb25CdWJibGVJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgzN0Q0NjI1MUZBMkE4QzUwMDU0RTFGQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA3NDMs
OSArMTA3NDMsOSBAQAogCQk5NzNFMzI1NTEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3VyY2VMb2Fk
Tm90aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2Fk
Tm90aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTczRjQxODcxNjlCOTVF
RjAwMDZCRjYwIC8qIEhUTUxQYXJzZXJPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEhUTUxQYXJzZXJPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTczRjQxODgxNjlCOTVFRjAwMDZCRjYwIC8qIEhUTUxQYXJzZXJPcHRpb25z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQYXJzZXJPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk3NDZBRjExMTRGNERERTYwMDNFN0E3MCAv
KiBDb29yZGluYXRlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29yZGlu
YXRlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzQ2QUYxMTE0RjREREU2MDAz
RTdBNzIgLyogQ29vcmRpbmF0ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ29vcmRpbmF0ZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzQ2
QUYxMjE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IENvb3JkaW5hdGVzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc0
NkFGMTExNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Db29yZGluYXRlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzIgLyogR2Vv
bG9jYXRpb25Db29yZGluYXRlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTc0NkFGMTIxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYxMzE0RjREREU2MDAzRTdBNzAgLyog
R2VvbG9jYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2Vv
bG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYxNDE0RjRE
REU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gR2VvbG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFG
MTUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBHZW9sb2NhdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDc1
MywxMyArMTA3NTMsMTMgQEAKIAkJOTc0NkFGMTYxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0
aW9uQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBH
ZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NzQ2QUYxNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uQ29udHJvbGxlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzQ2QUYxODE0RjREREU2MDAzRTdBNzAgLyogR2Vv
bG9jYXRpb25FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2Nh
dGlvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk3NDZBRjE5MTRGNERE
RTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEdlb2xvY2F0aW9uUG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTc0NkFGMUExNEY0RERFNjAwM0U3QTcwIC8qIEdlb3Bvc2l0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlb3Bvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTk3NDZBRjFCMTRGNERERTYwMDNFN0E3MCAvKiBHZW9wb3NpdGlvbi5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2VvcG9zaXRpb24uaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5NzQ2QUYxOTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc0NkFGMUEx
NEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5NzQ2QUYxQjE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3Np
dGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbi5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NDZBRjFDMTRGNERERTYwMDNFN0E3MCAv
KiBQb3NpdGlvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBv
c2l0aW9uQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFGMUQx
NEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFBvc2l0aW9uQ2FsbGJhY2suaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk5NzQ2QUYxRTE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQb3NpdGlvbkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTk3NDZBRjFGMTRGNERERTYwMDNFN0E3MCAvKiBQb3NpdGlvbkVycm9yLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQb3NpdGlvbkVycm9yLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTc0NkFGMUUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25FcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2Nh
dGlvblBvc2l0aW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc0NkFG
MUYxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFGMjAxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9u
RXJyb3JDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3NpdGlv
bkVycm9yQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc0NkFGMjEx
NEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUG9zaXRpb25FcnJvckNhbGxiYWNrLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTc0NkFGMjIxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uT3B0aW9ucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3NpdGlvbk9wdGlvbnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwOTI1LDcgKzIwOTI1LDcgQEAKIAkJODM3OTY0
Q0MxRjhEQjY3RDAwMjE4RUEwIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkJODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25JT1MubW0gKi8sCisJCQkJODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhSU9TLm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBpb3M7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjE4NDIsMjggKzIxODQyLDI4IEBACiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTgzNzk2NENDMUY4REI2N0QwMDIxOEVB
MCAvKiBpb3MgKi8sCi0JCQkJOTc0NkFGMTExNEY0RERFNjAwM0U3QTcyIC8qIENvb3JkaW5hdGVz
LmNwcCAqLywKLQkJCQk5NzQ2QUYxMTE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMuaCAq
LywKLQkJCQk5NzQ2QUYxMjE0RjREREU2MDAzRTdBNzAgLyogQ29vcmRpbmF0ZXMuaWRsICovLAog
CQkJCTk3NDZBRjEzMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbi5jcHAgKi8sCiAJCQkJ
OTc0NkFGMTQxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmggKi8sCiAJCQkJOTc0NkFG
MTUxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uLmlkbCAqLywKIAkJCQk5NzQ2QUYxNTE0
RjREREU2MDAzRTdBNzEgLyogR2VvbG9jYXRpb25DbGllbnQuaCAqLywKIAkJCQk5NzQ2QUYxNjE0
RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcCAqLywKIAkJCQk5NzQ2
QUYxNzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Db250cm9sbGVyLmggKi8sCisJCQkJ
OTc0NkFGMTExNEY0RERFNjAwM0U3QTcyIC8qIEdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMuY3BwICov
LAorCQkJCTk3NDZBRjExMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVz
LmggKi8sCisJCQkJOTc0NkFGMTIxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9uQ29vcmRp
bmF0ZXMuaWRsICovLAogCQkJCTk3NDZBRjE4MTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlv
bkVycm9yLmggKi8sCi0JCQkJOTc0NkFGMTkxNEY0RERFNjAwM0U3QTcwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb24uaCAqLywKKwkJCQk5NzQ2QUYxQTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRp
b25Qb3NpdGlvbi5oICovLAorCQkJCTk3NDZBRjFCMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2Nh
dGlvblBvc2l0aW9uLmlkbCAqLywKKwkJCQk5NzQ2QUYxOTE0RjREREU2MDAzRTdBNzAgLyogR2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGEuaCAqLywKKwkJCQk5NzQ2QUYxRTE0RjREREU2MDAzRTdBNzAg
LyogR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yLmggKi8sCisJCQkJOTc0NkFGMUYxNEY0RERFNjAw
M0U3QTcwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25FcnJvci5pZGwgKi8sCiAJCQkJNDZDODNFRkIx
QTlCQkUyOTAwQTc5QTQxIC8qIEdlb05vdGlmaWVyLmNwcCAqLywKIAkJCQk0NkM4M0VGQzFBOUJC
RTI5MDBBNzlBNDEgLyogR2VvTm90aWZpZXIuaCAqLywKLQkJCQk5NzQ2QUYxQTE0RjREREU2MDAz
RTdBNzAgLyogR2VvcG9zaXRpb24uaCAqLywKLQkJCQk5NzQ2QUYxQjE0RjREREU2MDAzRTdBNzAg
LyogR2VvcG9zaXRpb24uaWRsICovLAogCQkJCTk3MTE0NjAwMTRFRjAwOUEwMDY3NEZEOSAvKiBO
YXZpZ2F0b3JHZW9sb2NhdGlvbi5jcHAgKi8sCiAJCQkJOTcxMTQ2MDExNEVGMDA5QTAwNjc0RkQ5
IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmggKi8sCiAJCQkJOTcxMTQ2MDIxNEVGMDA5QTAwNjc0
RkQ5IC8qIE5hdmlnYXRvckdlb2xvY2F0aW9uLmlkbCAqLywKIAkJCQk5NzQ2QUYxQzE0RjREREU2
MDAzRTdBNzAgLyogUG9zaXRpb25DYWxsYmFjay5oICovLAogCQkJCTk3NDZBRjFEMTRGNERERTYw
MDNFN0E3MCAvKiBQb3NpdGlvbkNhbGxiYWNrLmlkbCAqLywKLQkJCQk5NzQ2QUYxRTE0RjREREU2
MDAzRTdBNzAgLyogUG9zaXRpb25FcnJvci5oICovLAotCQkJCTk3NDZBRjFGMTRGNERERTYwMDNF
N0E3MCAvKiBQb3NpdGlvbkVycm9yLmlkbCAqLywKIAkJCQk5NzQ2QUYyMDE0RjREREU2MDAzRTdB
NzAgLyogUG9zaXRpb25FcnJvckNhbGxiYWNrLmggKi8sCiAJCQkJOTc0NkFGMjExNEY0RERFNjAw
M0U3QTcwIC8qIFBvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgKi8sCiAJCQkJOTc0NkFGMjIxNEY0
RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9uT3B0aW9ucy5oICovLApAQCAtMjg2NjUsNyArMjg2NjUs
NiBAQAogCQkJCTdBNTY5OTcwMjA4NkM2MTkwMDBFMDQzMyAvKiBDb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzNEMDIxMkQxMzFEQjM3QjAwNDA5MUE4
IC8qIENvb2tpZVN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjBCQkFGMUYxQ0VDRTcw
MEVGRUJGMSAvKiBDb29raWVTdG9yYWdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTk3
NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBDb29yZGluYXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJM0Y4MDIwMzUxRTlFNDdCRjAwREVDNjFEIC8qIENvcmVBdWRpb0NhcHR1cmVEZXZpY2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTNGODAyMDM3MUU5RTQ3QzUwMERFQzYxRCAvKiBDb3JlQXVkaW9D
YXB0dXJlRGV2aWNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdBRkY0MjIxRUZCMTQ0
OTAwQjU0NUIzIC8qIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VJT1MuaCBpbiBIZWFkZXJzICovLApA
QCAtMjkyOTIsMTEgKzI5MjkxLDEzIEBACiAJCQkJOTc0NkFGMjQxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYyNTE0RjREREU2MDAzRTdB
NzEgLyogR2VvbG9jYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NDZBRjI3MTRG
NERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTk3NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBHZW9sb2NhdGlvbkNvb3JkaW5hdGVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYyODE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRp
b25FcnJvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTc0NkFGMjkxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTk3NDZBRjJBMTRGNERE
RTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
NzQ2QUYyOTE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTk3NDZBRjJFMTRGNERERTYwMDNFN0E3MCAvKiBHZW9sb2NhdGlvblBv
c2l0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjYyNTJGMThERTFCMTUwMEEwN0Mw
NSAvKiBHZW9tZXRyeVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZDODNFRkUxQTlC
QkUyOTAwQTc5QTQxIC8qIEdlb05vdGlmaWVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk5NzQ2QUYy
QTE0RjREREU2MDAzRTdBNzAgLyogR2VvcG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2
Qjk1MTk4MjA3RDYzNDcwMEE3RDJERCAvKiBHbG9iYWxGcmFtZUlkZW50aWZpZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQ2Qjk1MTk3MjA3RDYzNDAwMEE3RDJERCAvKiBHbG9iYWxXaW5kb3dJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODZCQkQwRjEzNjAzOUMyMDA4QjE1RDggLyog
R2x5cGguaCBpbiBIZWFkZXJzICovLApAQCAtMzEwNDgsNyArMzEwNDksNiBAQAogCQkJCTM3RjU2
N0NFMTY1MzU4RjQwMERERTkyQiAvKiBQb3B1cE9wZW5pbmdPYnNlcnZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTNGMTk5REUwODI0NUU1OTAwMUU5QUJDIC8qIFBvc2l0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5NzQ2QUYyQzE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25DYWxsYmFjay5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJOTc0NkFGMkUxNEY0RERFNjAwM0U3QTcwIC8qIFBvc2l0aW9u
RXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NDZBRjMwMTRGNERERTYwMDNFN0E3MCAvKiBQ
b3NpdGlvbkVycm9yQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTM3OTE5QzI0MEI3RDE4
ODYwMEE1Njk5OCAvKiBQb3NpdGlvbkl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2
QUYzMjE0RjREREU2MDAzRTdBNzAgLyogUG9zaXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLywK
QEAgLTMyODA0LDcgKzMyODA0LDcgQEAKIAkJCQk1MTZDNjIyMDE5NTBENDg3MDAzMzdFNzUgLyog
R2FtZXBhZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlEOUU5MTk1QjkzMUYwMDFC
MkI1QyAvKiBHYW1lcGFkTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTVCRTE5MTFE
NTRGNUZCMDBERDdDNjggLyogR2FtZXBhZFByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CTgzNzk2NENGMUY4REI2OUQwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJODM3OTY0Q0YxRjhEQjY5RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhSU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNkUyMUM2QzAxMTI2MzM4NTAw
QTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFNzJG
NTRFMjI5RENEMTAwMEIzRTE1MSAvKiBHcmFwaGljc0NvbnRleHQzREFOR0xFLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDM0U1MTBCMThERjhGMzUwMEMxMTJGNyAvKiBIVE1MQ29udmVydGVyLm1t
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKaW5kZXggYjgwY2MxZTBmY2EwODEzYjM1MDgxM2Fh
OThiMGM3ZGU5MzA5M2M4ZC4uZThlYzFjODRkNGMxMWZlN2IxMzUxYzcwYmE1NmY5OWI3YTg2NmEw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNs
aWVudE1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRp
b25DbGllbnRNb2NrLmNwcApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIEdlb2xvY2F0aW9uQ2xpZW50
TW9jazo6c2V0Q29udHJvbGxlcihHZW9sb2NhdGlvbkNvbnRyb2xsZXIgKmNvbnRyb2xsZXIpCiAg
ICAgbV9jb250cm9sbGVyID0gY29udHJvbGxlcjsKIH0KIAotdm9pZCBHZW9sb2NhdGlvbkNsaWVu
dE1vY2s6OnNldFBvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb24mJiBwb3NpdGlvbikKK3ZvaWQg
R2VvbG9jYXRpb25DbGllbnRNb2NrOjpzZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YSYmIHBvc2l0aW9uKQogewogICAgIG1fbGFzdFBvc2l0aW9uID0gV1RGTW92ZShwb3NpdGlvbik7
CiAgICAgY2xlYXJFcnJvcigpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgR2VvbG9jYXRpb25D
bGllbnRNb2NrOjpzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkKICAgICAvLyBTZWUgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NDM4CiB9CiAKLU9wdGlvbmFsPEdl
b2xvY2F0aW9uUG9zaXRpb24+IEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6bGFzdFBvc2l0aW9uKCkK
K09wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhPiBHZW9sb2NhdGlvbkNsaWVudE1vY2s6
Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgcmV0dXJuIG1fbGFzdFBvc2l0aW9uOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2su
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmgK
aW5kZXggMjdjY2Q5NDMxNjUxNmMxMWMwNmNmZjM5ODRiYjcwYTI1MjAxZWFmMC4uZTIyYWZjNTA4
ZmE2MDBiMTczZTIxYmIwYWRjYjI1OWVlMjJjYWE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oCkBAIC0zMiw3ICszMiw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50LmgiCi0jaW5j
bHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRp
b25EYXRhLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZv
aWQgcmVzZXQoKTsKICAgICB2b2lkIHNldENvbnRyb2xsZXIoR2VvbG9jYXRpb25Db250cm9sbGVy
Kik7CiAKLSAgICB2b2lkIHNldFBvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb24mJik7CisgICAg
dm9pZCBzZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKTsKICAgICB2b2lkIHNl
dFBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAg
ICAgdm9pZCBzZXRQZXJtaXNzaW9uKGJvb2wgYWxsb3dlZCk7CiAgICAgaW50IG51bWJlck9mUGVu
ZGluZ1Blcm1pc3Npb25SZXF1ZXN0cygpIGNvbnN0OwpAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzdGFydFVwZGF0aW5nKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wVXBkYXRp
bmcoKSBvdmVycmlkZTsKICAgICB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKSBvdmVy
cmlkZTsKLSAgICBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uPiBsYXN0UG9zaXRpb24oKSBv
dmVycmlkZTsKKyAgICBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gbGFzdFBvc2l0
aW9uKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihHZW9sb2NhdGlvbiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoR2VvbG9jYXRpb24m
KSBvdmVycmlkZTsKIApAQCAtNzYsNyArNzYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJF
cnJvcigpOwogCiAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7Ci0gICAg
T3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gbV9sYXN0UG9zaXRpb247CisgICAgT3B0aW9u
YWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IG1fbGFzdFBvc2l0aW9uOwogICAgIGJvb2wgbV9o
YXNFcnJvcjsKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CiAgICAgVGltZXIgbV9jb250cm9s
bGVyVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJHZW9sb2NhdGlv
blBvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRp
b24uY3BwCmluZGV4IDNmMTU1OGI3NTJiZWY4YzkyYjQxNjk2ZmQ0NmEwYzA4MWI1YmJlYWEuLmU5
OWRjYzVjMGEzZGNiZTQ5ZGI1MzhlZDI2MzViYzBmNjQzNWQxYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCkBAIC0zMiw3ICszMiw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24+IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZShHZW9s
b2NhdGlvblBvc2l0aW9uJiYgZ2VvbG9jYXRpb25Qb3NpdGlvbikKK1JlZjxXZWJHZW9sb2NhdGlv
blBvc2l0aW9uPiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEmJiBnZW9sb2NhdGlvblBvc2l0aW9uKQogewogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24oV1RGTW92ZShnZW9sb2NhdGlvblBvc2l0aW9uKSkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCmlu
ZGV4IGMxZmNjYTdjYmI1OGJlNDQwNjlhNzFlYjk4MmE4MTVlMjljNjM2YzQuLmE5NjhmODRmOWFi
ZWZmNTVlYjRkY2E1ZGEzYTQwNmUyOWQ1YjcxMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbl9oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRl
IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3Bh
Y2UgSVBDIHsKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24gOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0
OjpUeXBlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uPiBjcmVhdGUoV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlv
biYmKTsKKyAgICBzdGF0aWMgUmVmPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IGNyZWF0ZShXZWJD
b3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmKTsKIAogICAgIHZpcnR1YWwgfldlYkdlb2xv
Y2F0aW9uUG9zaXRpb24oKTsKIApAQCAtNTIsMTUgKzUyLDE1IEBAIHB1YmxpYzoKICAgICBPcHRp
b25hbDxkb3VibGU+IGhlYWRpbmcoKSBjb25zdCB7IHJldHVybiBtX2NvcmVQb3NpdGlvbi5oZWFk
aW5nOyB9CiAgICAgT3B0aW9uYWw8ZG91YmxlPiBzcGVlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY29y
ZVBvc2l0aW9uLnNwZWVkOyB9CiAKLSAgICBjb25zdCBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0
aW9uJiBjb3JlUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NvcmVQb3NpdGlvbjsgfQorICAg
IGNvbnN0IFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiBjb3JlUG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBtX2NvcmVQb3NpdGlvbjsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0
IFdlYkdlb2xvY2F0aW9uUG9zaXRpb24oV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiYmIGdl
b2xvY2F0aW9uUG9zaXRpb24pCisgICAgZXhwbGljaXQgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbihX
ZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYmIGdlb2xvY2F0aW9uUG9zaXRpb24pCiAg
ICAgICAgIDogbV9jb3JlUG9zaXRpb24oV1RGTW92ZShnZW9sb2NhdGlvblBvc2l0aW9uKSkKICAg
ICB7CiAgICAgfQogCi0gICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiBtX2NvcmVQb3Np
dGlvbjsKKyAgICBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBtX2NvcmVQb3NpdGlv
bjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKaW5kZXggYWFiYzNk
OWY2ZDk1MWMyNDQ0ZTU0NWMxODhmNzA0ZjY3NTlmMGYyNS4uYzA4ZTRhZGNhNmU5YTFhYTM0YTI5
Y2Y3ODM2NGY4MWQ4OGZjY2EzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwCkBAIC00OCw3ICs0OCw3IEBAIFdL
R2VvbG9jYXRpb25Qb3NpdGlvblJlZiBXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGVfYihkb3Vi
bGUgdGltZXN0YW1wLCBkb3VibGUKIAogV0tHZW9sb2NhdGlvblBvc2l0aW9uUmVmIFdLR2VvbG9j
YXRpb25Qb3NpdGlvbkNyZWF0ZV9jKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwg
ZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3ZpZGVzQWx0aXR1ZGUs
IGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRvdWJsZSBh
bHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91YmxlIGhlYWRpbmcsIGJv
b2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkLCBib29sIHByb3ZpZGVzRmxvb3JMZXZlbCwg
ZG91YmxlIGZsb29yTGV2ZWwpCiB7Ci0gICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiBj
b3JlUG9zaXRpb24geyB0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH07
CisgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEgY29yZVBvc2l0aW9uIHsgdGlt
ZXN0YW1wLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSB9OwogICAgIGlmIChwcm92aWRl
c0FsdGl0dWRlKQogICAgICAgICBjb3JlUG9zaXRpb24uYWx0aXR1ZGUgPSBhbHRpdHVkZTsKICAg
ICBpZiAocHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0dlb2xvY2F0aW9uUG9zaXRpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQppbmRl
eCBjOTY5Y2E4YzFhNDBiMTcwOGVhNzNmZmY3ZGIzOGQ4MDQ4NWNhYzkzLi4wOWEwZDYwMDFhZjcx
OTYxZmZhNzlkNjJiOTFlMDhmYjU3YmVkZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQpAQCAt
MzcsNyArMzcsNyBAQCArIChpbnN0YW5jZXR5cGUpcG9zaXRpb25XaXRoTG9jYXRpb246KENMTG9j
YXRpb24gKilsb2NhdGlvbgogICAgIGlmICghbG9jYXRpb24pCiAgICAgICAgIHJldHVybiBuaWw7
CiAKLSAgICByZXR1cm4gd3JhcHBlcihXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNy
ZWF0ZShXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uIHsgbG9jYXRpb24gfSkpOworICAgIHJl
dHVybiB3cmFwcGVyKFdlYktpdDo6V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKFdlYkNv
cmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIHsgbG9jYXRpb24gfSkpOwogfQogCiAtICh2b2lk
KWRlYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdEdlb2xvY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCmluZGV4IDhjYmE0MjJlZDVlMzhiZjg0
Yzc2MDU5NGQ2Y2YwZjY1ODhjYmVhNWUuLmQwY2I0YzBiZTZhNmQzOTBkNjdlOTNjZjhkN2Q2YWQ1
NjAwYjU3ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdEdlb2xvY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0R2VvbG9jYXRpb25NYW5hZ2VyLmNwcApAQCAtNzAsMTcgKzcwLDE3IEBA
IHN0cnVjdCBfV2ViS2l0R2VvbG9jYXRpb25Qb3NpdGlvbiB7CiAgICAgICAgIHBvc2l0aW9uLmFj
Y3VyYWN5ID0gYWNjdXJhY3k7CiAgICAgfQogCi0gICAgZXhwbGljaXQgX1dlYktpdEdlb2xvY2F0
aW9uUG9zaXRpb24oR2VvbG9jYXRpb25Qb3NpdGlvbiYmIGNvcmVQb3NpdGlvbikKKyAgICBleHBs
aWNpdCBfV2ViS2l0R2VvbG9jYXRpb25Qb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYm
IGNvcmVQb3NpdGlvbikKICAgICAgICAgOiBwb3NpdGlvbihXVEZNb3ZlKGNvcmVQb3NpdGlvbikp
CiAgICAgewogICAgIH0KIAotICAgIGV4cGxpY2l0IF9XZWJLaXRHZW9sb2NhdGlvblBvc2l0aW9u
KGNvbnN0IEdlb2xvY2F0aW9uUG9zaXRpb24mIG90aGVyKQorICAgIGV4cGxpY2l0IF9XZWJLaXRH
ZW9sb2NhdGlvblBvc2l0aW9uKGNvbnN0IEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiBvdGhlcikK
ICAgICB7CiAgICAgICAgIHBvc2l0aW9uID0gb3RoZXI7CiAgICAgfQogCi0gICAgR2VvbG9jYXRp
b25Qb3NpdGlvbiBwb3NpdGlvbjsKKyAgICBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSBwb3NpdGlv
bjsKIH07CiAKIC8qKgpAQCAtMjUyLDcgKzI1Miw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdEdlb2xv
Y2F0aW9uTWFuYWdlclN0YXJ0KFdlYktpdEdlb2xvY2F0aW9uTWFuYWdlciogbWFuYWdlcikKICAg
ICAgICAgbWFuYWdlci0+cHJpdi0+Z2VvY2x1ZVByb3ZpZGVyID0gbWFrZVVuaXF1ZTxHZW9jbHVl
R2VvbG9jYXRpb25Qcm92aWRlcj4oKTsKICAgICAgICAgbWFuYWdlci0+cHJpdi0+Z2VvY2x1ZVBy
b3ZpZGVyLT5zZXRFbmFibGVIaWdoQWNjdXJhY3kobWFuYWdlci0+cHJpdi0+aGlnaEFjY3VyYWN5
RW5hYmxlZCk7CiAgICAgfQotICAgIG1hbmFnZXItPnByaXYtPmdlb2NsdWVQcm92aWRlci0+c3Rh
cnQoW21hbmFnZXJdKEdlb2xvY2F0aW9uUG9zaXRpb24mJiBjb3JlUG9zaXRpb24sIE9wdGlvbmFs
PENTdHJpbmc+IGVycm9yKSB7CisgICAgbWFuYWdlci0+cHJpdi0+Z2VvY2x1ZVByb3ZpZGVyLT5z
dGFydChbbWFuYWdlcl0oR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiBjb3JlUG9zaXRpb24sIE9w
dGlvbmFsPENTdHJpbmc+IGVycm9yKSB7CiAgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAg
ICAgd2Via2l0X2dlb2xvY2F0aW9uX21hbmFnZXJfZmFpbGVkKG1hbmFnZXIsIGVycm9yLT5kYXRh
KCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNDEzLDcgKzQxMyw3IEBAIHZvaWQgd2Via2l0
X2dlb2xvY2F0aW9uX21hbmFnZXJfdXBkYXRlX3Bvc2l0aW9uKFdlYktpdEdlb2xvY2F0aW9uTWFu
YWdlciogbWFuYWdlCiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfR0VPTE9DQVRJT05f
TUFOQUdFUihtYW5hZ2VyKSk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChwb3NpdGlvbik7CiAKLSAg
ICBHZW9sb2NhdGlvblBvc2l0aW9uIGNvcmVQb3NpdGlvbiA9IHBvc2l0aW9uLT5wb3NpdGlvbjsK
KyAgICBhdXRvIGNvcmVQb3NpdGlvbiA9IHBvc2l0aW9uLT5wb3NpdGlvbjsKICAgICBhdXRvIHdr
UG9zaXRpb24gPSBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoV1RGTW92ZShjb3JlUG9z
aXRpb24pKTsKICAgICBtYW5hZ2VyLT5wcml2LT5tYW5hZ2VyLT5wcm92aWRlckRpZENoYW5nZVBv
c2l0aW9uKHdrUG9zaXRpb24ucHRyKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgKaW5kZXggMTdjMDg2OWNhZTYyNzU2
MWUzNDg4ODI0ZDJhNWY3ZGUxN2JmNjc3Mi4uNmI2NGNmZjJjMDU4MGNlNjA0MjE1MTg1OTM5MmJk
M2NjMjJlNmVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eS5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIldlYkNvbnRl
eHRTdXBwbGVtZW50LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uRGF0YS5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTU1
LDcgKzU1LDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCBy
ZXNldFBlcm1pc3Npb25zKCk7CiAjZW5kaWYKLSAgICBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpH
ZW9sb2NhdGlvblBvc2l0aW9uPiYgbGFzdFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0
UG9zaXRpb247IH0KKyAgICBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YT4mIGxhc3RQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFBvc2l0aW9uOyB9
CiAKICAgICB1c2luZyBBUEk6Ok9iamVjdDo6cmVmOwogICAgIHVzaW5nIEFQSTo6T2JqZWN0Ojpk
ZXJlZjsKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PGNvbnN0IElQQzo6
Q29ubmVjdGlvbjo6Q2xpZW50Kj4gbV9oaWdoQWNjdXJhY3lSZXF1ZXN0ZXJzOwogCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEFQSTo6R2VvbG9jYXRpb25Qcm92aWRlcj4gbV9wcm92aWRlcjsKLSAgICBP
cHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiBtX2xhc3RQb3NpdGlvbjsKKyAg
ICBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gbV9sYXN0UG9zaXRp
b247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2dlb2NsdWUvR2VvY2x1ZUdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlci5j
cHAKaW5kZXggNmRiNjk4ODUwNTE1NTA3Zjk4MGNhNzg3OWExNGI5NjQyYTlkZjhkZi4uZGJhMmE5
OTBkMTU2ODMyMTZhNmZhOTBhNDhlYjMwZWViZDNjNTI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92
aWRlci5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJHZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlci5oIgogCi0jaW5jbHVkZSA8V2ViQ29yZS9HZW9s
b2NhdGlvblBvc2l0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9u
RGF0YS5oPgogI2luY2x1ZGUgPGdpby9naW8uaD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5o
PgogI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KQEAgLTI2MCw3ICsyNjAsNyBAQCB2
b2lkIEdlb2NsdWVHZW9sb2NhdGlvblByb3ZpZGVyOjpjcmVhdGVMb2NhdGlvbihjb25zdCBjaGFy
KiBsb2NhdGlvblBhdGgpCiAKIHZvaWQgR2VvY2x1ZUdlb2xvY2F0aW9uUHJvdmlkZXI6OmxvY2F0
aW9uVXBkYXRlZChHUmVmUHRyPEdEQnVzUHJveHk+JiYgcHJveHkpCiB7Ci0gICAgV2ViQ29yZTo6
R2VvbG9jYXRpb25Qb3NpdGlvbiBwb3NpdGlvbjsKKyAgICBXZWJDb3JlOjpHZW9sb2NhdGlvblBv
c2l0aW9uRGF0YSBwb3NpdGlvbjsKICAgICBHUmVmUHRyPEdWYXJpYW50PiBwcm9wZXJ0eSA9IGFk
b3B0R1JlZihnX2RidXNfcHJveHlfZ2V0X2NhY2hlZF9wcm9wZXJ0eShwcm94eS5nZXQoKSwgIkxh
dGl0dWRlIikpOwogICAgIHBvc2l0aW9uLmxhdGl0dWRlID0gZ192YXJpYW50X2dldF9kb3VibGUo
cHJvcGVydHkuZ2V0KCkpOwogICAgIHByb3BlcnR5ID0gYWRvcHRHUmVmKGdfZGJ1c19wcm94eV9n
ZXRfY2FjaGVkX3Byb3BlcnR5KHByb3h5LmdldCgpLCAiTG9uZ2l0dWRlIikpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRpb25Qcm92
aWRlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2VvY2x1ZS9HZW9jbHVlR2VvbG9jYXRp
b25Qcm92aWRlci5oCmluZGV4IDU3MTFlMmE3NjE0OWMzZjQ4MDFlNjVlMzg3Y2M4ZWVjZTRkNWVl
NjAuLjMxZDI5MDkxOTg1ZjM0YTY1MTM0YTJiMGU3Y2IzYWNlMWRhZTQ0MWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dlb2NsdWUvR2VvY2x1ZUdlb2xvY2F0aW9uUHJvdmlk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nZW9jbHVlL0dlb2NsdWVHZW9sb2Nh
dGlvblByb3ZpZGVyLmgKQEAgLTMzLDcgKzMzLDcgQEAKIHR5cGVkZWYgc3RydWN0IF9HREJ1c1By
b3h5IEdEQnVzUHJveHk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIEdlb2xvY2F0aW9u
UG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YTsKIH0KIAogbmFtZXNwYWNl
IFdlYktpdCB7CkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICBHZW9jbHVlR2VvbG9jYXRp
b25Qcm92aWRlcigpOwogICAgIH5HZW9jbHVlR2VvbG9jYXRpb25Qcm92aWRlcigpOwogCi0gICAg
dXNpbmcgVXBkYXRlTm90aWZ5RnVuY3Rpb24gPSBGdW5jdGlvbjx2b2lkKFdlYkNvcmU6Okdlb2xv
Y2F0aW9uUG9zaXRpb24mJiwgT3B0aW9uYWw8Q1N0cmluZz4gZXJyb3IpPjsKKyAgICB1c2luZyBV
cGRhdGVOb3RpZnlGdW5jdGlvbiA9IEZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6R2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGEmJiwgT3B0aW9uYWw8Q1N0cmluZz4gZXJyb3IpPjsKICAgICB2b2lkIHN0YXJ0
KFVwZGF0ZU5vdGlmeUZ1bmN0aW9uJiYpOwogICAgIHZvaWQgc3RvcCgpOwogICAgIHZvaWQgc2V0
RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KaW5kZXggNTI1ZmIyZjhkY2Nj
MjBhMGY0MGUyN2I5ZTY0NDI5Y2FmZThkZTMwNy4uMTMwOWNlYWE0NmI1MGEyZTBjNTVkOWE5ZDZh
OTA3MzU0OGI4N2Y3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
R2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCkBAIC0yOTYsNyArMjk2LDcgQEAgLSAodm9p
ZClnZW9sb2NhdGlvbkF1dGhvcml6YXRpb25EZW5pZWQKICAgICBbX2xpc3RlbmVyIGdlb2xvY2F0
aW9uQXV0aG9yaXphdGlvbkRlbmllZF07CiB9CiAKLS0gKHZvaWQpcG9zaXRpb25DaGFuZ2VkOihX
ZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZVBvc2l0aW9uCistICh2b2lkKXBvc2l0
aW9uQ2hhbmdlZDooV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiljb3JlUG9zaXRp
b24KIHsKICAgICBBU1NFUlQoX2xpc3RlbmVyKTsKICAgICBhdXRvIHBvc2l0aW9uID0gV2ViS2l0
OjpXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoV1RGTW92ZShjb3JlUG9zaXRpb24pKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9s
b2NhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9u
L1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMDIwMjQwMjNjOWYxYzU2M2JmOTEzMDA4
NTg1NmM0ZDgxNzI5OTEzNC4uYTk2NTU5OGZhNDNiOWQ0OGFkYTYyMjA2NTI3MDY0NWY0MmJkYTU5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdl
b2xvY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xv
Y2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlv
bkNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uRXJyb3IuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFdlYkdlb2xvY2F0aW9u
TWFuYWdlcjo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5Rm9yUGFnZShXZWJQYWdlJiBwYWdlLCBib29s
IGVuYQogICAgICAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OlNldEVuYWJsZUhpZ2hBY2N1cmFj
eShoaWdoQWNjdXJhY3lTaG91bGRCZUVuYWJsZWQpLCAwKTsKIH0KIAotdm9pZCBXZWJHZW9sb2Nh
dGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKGNvbnN0IEdlb2xvY2F0aW9uUG9zaXRpb24m
IHBvc2l0aW9uKQordm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9u
KGNvbnN0IEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiBwb3NpdGlvbikKIHsKICNpZiBFTkFCTEUo
R0VPTE9DQVRJT04pCiAgICAgZm9yIChhdXRvJiBwYWdlIDogY29weVRvVmVjdG9yKG1fcGFnZVNl
dCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2Nh
dGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaAppbmRleCBhNmMyODcxNmFiMTY3OGFmZGQ1NzRj
OWRmOWZlMjg2ODYzNDYzMDE5Li4yMWVhNjdhZmJlNTYzMzkzNmI3Y2ExM2Q2YjU4N2FjODlkY2Nk
NTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xv
Y2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCkBAIC0zNSw3ICszNSw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdlb2xvY2F0aW9uOwotY2xhc3MgR2VvbG9jYXRpb25Qb3Np
dGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhOwogfQogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzVXBkYXRpbmcoKSBj
b25zdCB7IHJldHVybiAhbV9wYWdlU2V0LmlzRW1wdHkoKTsgfQogICAgIGJvb2wgaXNIaWdoQWNj
dXJhY3lFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gIW1faGlnaEFjY3VyYWN5UGFnZVNldC5pc0Vt
cHR5KCk7IH0KIAotICAgIHZvaWQgZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6R2Vv
bG9jYXRpb25Qb3NpdGlvbiYpOworICAgIHZvaWQgZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgV2Vi
Q29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmKTsKICAgICB2b2lkIGRpZEZhaWxUb0RldGVy
bWluZVBvc2l0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIHZvaWQgcmVzZXRQZXJtaXNzaW9ucygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9s
b2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggMDQzZWY2NDk0OTA5ZTRmMWYzZjY0MjAy
NjVkMzhkMjYyZGYwNGQzZS4uYjUyZTgxNjIwNTk2MzAwMjA1MGRmYTBkYTViZDI1ZmVmZDQzZTM1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdl
b2xvY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yMSw3
ICsyMSw3IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IFdlYkdlb2xvY2F0aW9uTWFu
YWdlciB7Ci0gICAgRGlkQ2hhbmdlUG9zaXRpb24oV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlv
biBwb3NpdGlvbik7CisgICAgRGlkQ2hhbmdlUG9zaXRpb24oV2ViQ29yZTo6R2VvbG9jYXRpb25Q
b3NpdGlvbkRhdGEgcG9zaXRpb24pOwogICAgIERpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKFN0
cmluZyBlcnJvck1lc3NhZ2UpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgUmVzZXRQ
ZXJtaXNzaW9ucygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggNjVjOWYyNWQyZWU4ODM3ODM3
ZDI1NDdjMTJlZTYxZmNmZjhkMWZhOC4uZTcyYjg0MjNjZWU5MTZlNmIwYmVlNmM3ODcyMjg4M2Vm
ZmJiMWMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC02Miw3ICs2Miw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9HQ0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9u
Q2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9KU0RPTUNvbnZl
cnRCdWZmZXJTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NRXhjZXB0aW9uSGFuZGxp
bmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ2xpZW50LmNwcAppbmRleCBhMjRlMGZmMjFjY2RjNjQ0Zjc3NTY5ODdlZTA4YmNhN2RlNjBm
Yjg4Li45OGM1MTIxMzQwM2JkYjNiODhjMmY2NDFlYTJlY2Q1NWVmNDRjOTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25D
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJXZWJQ
YWdlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9j
YXRpb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgV2Vi
R2VvbG9jYXRpb25DbGllbnQ6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sIGVuYWJsZWQpCiAg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxXZWJHZW9sb2NhdGlvbk1hbmFn
ZXI+KCktPnNldEVuYWJsZUhpZ2hBY2N1cmFjeUZvclBhZ2UobV9wYWdlLCBlbmFibGVkKTsKIH0K
IAotT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxh
c3RQb3NpdGlvbigpCitPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gV2ViR2VvbG9j
YXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJHZW9sb2NhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKaW5kZXggMzVhMzFmYzJhMzQ0YjMxMjg3MzA1
MDRiN2ZlN2ExMTVmMDExYjg4My4uZDQ3NzZlOTE1MWE3NTAxNWE4NjA3ZTc1MDVjMmU5NDc0ZmI5
NjdmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHN0b3BVcGRhdGluZygpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0RW5h
YmxlSGlnaEFjY3VyYWN5KGJvb2wpIG92ZXJyaWRlOwogCi0gICAgT3B0aW9uYWw8V2ViQ29yZTo6
R2VvbG9jYXRpb25Qb3NpdGlvbj4gbGFzdFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgT3B0aW9u
YWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlvbigpIG92ZXJy
aWRlOwogCiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpHZW9sb2NhdGlvbiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoV2ViQ29yZTo6R2Vv
bG9jYXRpb24mKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9z
L01pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5oIGIvU291cmNlL1dlYktp
dExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmgKaW5k
ZXggMDQ5MGZjZmIxZGIwNGJmNmIwMjRlOGU0MDk2NzU3MGY3YzVhYzEzOC4uODQyN2NiODEwMmQ2
MmI0MGU2OGJlMTAxNmUyMmZkNDI0YTI2OTI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblBy
b3ZpZGVyLmgKQEAgLTI5LDcgKzI5LDcgQEAKIEBjbGFzcyBOU1N0cmluZzsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewotY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKK2NsYXNzIEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhOwogfQogCiAvLyBXZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvbkRlbGVnYXRl
IGFic3RyYWN0cyB0aGUgbG9jYXRpb24gc2VydmljZXMgb2YgQ29yZUxvY2F0aW9uLgpAQCAtNDMs
NyArNDMsNyBAQCBjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOwogLSAodm9pZClnZW9sb2NhdGlv
bkF1dGhvcml6YXRpb25HcmFudGVkOwogLSAodm9pZClnZW9sb2NhdGlvbkF1dGhvcml6YXRpb25E
ZW5pZWQ7CiAKLS0gKHZvaWQpcG9zaXRpb25DaGFuZ2VkOihXZWJDb3JlOjpHZW9sb2NhdGlvblBv
c2l0aW9uJiYpcG9zaXRpb247CistICh2b2lkKXBvc2l0aW9uQ2hhbmdlZDooV2ViQ29yZTo6R2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGEmJilwb3NpdGlvbjsKIC0gKHZvaWQpZXJyb3JPY2N1cnJlZDoo
TlNTdHJpbmcgKillcnJvck1lc3NhZ2U7CiAtICh2b2lkKXJlc2V0R2VvbG9jYXRpb247CiBAZW5k
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9u
Q29yZUxvY2F0aW9uUHJvdmlkZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dl
Ykdlb2xvY2F0aW9uQ29yZUxvY2F0aW9uUHJvdmlkZXIubW0KaW5kZXggYzVmNjQ2YjJhNDUxNTVk
OTY1Yjg5MzM0YWE1NmZhN2ExMGQzM2Y5MC4uZGU5MTMzYmYwOGZhYWJjYWY3Zjg1ZGJkYWQ1YjA4
YTEzNGEyM2ZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlzYy9XZWJH
ZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5tbQpAQCAtMzAs
NyArMzAsNyBAQAogI2ltcG9ydCA8Q29yZUxvY2F0aW9uL0NMTG9jYXRpb24uaD4KICNpbXBvcnQg
PENvcmVMb2NhdGlvbi9DTExvY2F0aW9uTWFuYWdlckRlbGVnYXRlLmg+CiAjaW1wb3J0IDxDb3Jl
TG9jYXRpb24vQ29yZUxvY2F0aW9uLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9z
aXRpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEuaD4KICNp
bXBvcnQgPFdlYktpdExvZ2dpbmcuaD4KICNpbXBvcnQgPG9iamMvb2JqYy1ydW50aW1lLmg+CiAj
aW1wb3J0IDx3dGYvUmVmUHRyLmg+CkBAIC0xNzAsNyArMTcwLDcgQEAgLSAodm9pZClsb2NhdGlv
bk1hbmFnZXI6KENMTG9jYXRpb25NYW5hZ2VyICopbWFuYWdlciBkaWRDaGFuZ2VBdXRob3JpemF0
aW9uU3RhdHUKIAogLSAodm9pZClzZW5kTG9jYXRpb246KENMTG9jYXRpb24gKiluZXdMb2NhdGlv
bgogewotICAgIFtfcG9zaXRpb25MaXN0ZW5lciBwb3NpdGlvbkNoYW5nZWQ6R2VvbG9jYXRpb25Q
b3NpdGlvbiB7IG5ld0xvY2F0aW9uIH1dOworICAgIFtfcG9zaXRpb25MaXN0ZW5lciBwb3NpdGlv
bkNoYW5nZWQ6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEgeyBuZXdMb2NhdGlvbiB9XTsKIH0KIAog
LSAodm9pZClsb2NhdGlvbk1hbmFnZXI6KENMTG9jYXRpb25NYW5hZ2VyICopbWFuYWdlciBkaWRV
cGRhdGVMb2NhdGlvbnM6KE5TQXJyYXkgKilsb2NhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQppbmRl
eCBjMmZmMzUwZjc0NTI2ZTEyNTZjMTllNGY1MjA4NWNiMzUxZDI0OTY4Li41ZTc3Nzk2NGYxNDll
ZjI2YjAwOTM5NTI1MDgyNDUxMDUyNzhjODE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCkBAIC00Miw3
ICs0Miw3IEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogQGludGVyZmFjZSBXZWJHZW9s
b2NhdGlvblBvc2l0aW9uIChJbnRlcm5hbCkKLS0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb25Qb3Np
dGlvbjooR2VvbG9jYXRpb25Qb3NpdGlvbiYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOworLSAo
aWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uRGF0YSYm
KWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOwogQGVuZAogCiAvLyBDb3JlTG9jYXRpb24gcnVucyBp
biB0aGUgbWFpbiB0aHJlYWQuIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MgbGl2ZXMgb24gdGhl
IFdlYlRocmVhZC4KQEAgLTM0OCw3ICszNDgsNyBAQCAtICh2b2lkKWdlb2xvY2F0aW9uQXV0aG9y
aXphdGlvbkRlbmllZAogICAgIH0pOwogfQogCi0tICh2b2lkKXBvc2l0aW9uQ2hhbmdlZDooV2Vi
Q29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiYmKXBvc2l0aW9uCistICh2b2lkKXBvc2l0aW9uQ2hh
bmdlZDooV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJilwb3NpdGlvbgogewogICAg
IFJldGFpblB0cjxXZWJHZW9sb2NhdGlvblBvc2l0aW9uPiB3ZWJQb3NpdGlvbiA9IGFkb3B0TlMo
W1tXZWJHZW9sb2NhdGlvblBvc2l0aW9uIGFsbG9jXSBpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRp
b246V1RGTW92ZShwb3NpdGlvbildKTsKICAgICBXZWJUaHJlYWRSdW4oXnsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2Nh
dGlvbkNsaWVudC5oCmluZGV4IGZmZGJhY2ZjMjc0MjFlOGQzNTg4OGYyY2U2YjE4MDc3YTE2ZTMz
ZjAuLjhhMWI3ZjAwOWQyY2ZhMThiMGU4ZjM1MTMyODE3MTBkYjZiNDRhODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2Vv
bG9jYXRpb25DbGllbnQuaApAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBHZW9sb2NhdGlvbjsKLWNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFzcyBH
ZW9sb2NhdGlvblBvc2l0aW9uRGF0YTsKIH0KIAogQGNsYXNzIFdlYlZpZXc7CkBAIC00OCw3ICs0
OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKSBvdmVy
cmlkZSB7IH0KICNlbmRpZgogCi0gICAgT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3Np
dGlvbj4gbGFzdFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6R2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGE+IGxhc3RQb3NpdGlvbigpIG92ZXJyaWRlOwogCiAgICAgdm9p
ZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpHZW9sb2NhdGlvbiYpIG92ZXJyaWRlOwogICAg
IHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoV2ViQ29yZTo6R2VvbG9jYXRpb24mKSBvdmVy
cmlkZSB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCmluZGV4IDJjZjcxNWUyZDkwZGZl
NzY2ODQ4OGJjMTc0NTFiMTNlZGIyZTMwZjguLjg3ZGE3MzBmZWFhZmRlZGQ3NzRlZDdlYTk2YjZm
OGQwOTNlYTlhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCkBAIC0xMzIsNyArMTMy
LDcgQEAgdm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oR2VvbG9j
YXRpb24mIGdlb2xvY2F0aW9uKQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAK
LU9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+IFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0
UG9zaXRpb24oKQorT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IFdlYkdlb2xvY2F0
aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24oKQogewogICAgIHJldHVybiBjb3JlKFtbbV93ZWJWaWV3
IF9nZW9sb2NhdGlvblByb3ZpZGVyXSBsYXN0UG9zaXRpb25dKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5t
bQppbmRleCBkMTVmNWY5YzY5ZWI0ZTZhN2YzZWQ5ZmFmNmVlZjM5NWNlYzFiZDhhLi41ZGJmZDM1
NWE4NWM5N2UwMjliZTUxZjc0NTc1NWQzMTVkNDBlOTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tCkBA
IC0yNiw3ICsyNiw3IEBACiAjaW1wb3J0ICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAKICNp
bXBvcnQgIldlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oIgotI2ltcG9ydCA8V2ViQ29y
ZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9z
aXRpb25EYXRhLmg+CiAjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KICNpbXBvcnQgPHd0Zi9SZWZQ
dHIuaD4KIApAQCAtMzUsMTUgKzM1LDE1IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogQGlu
dGVyZmFjZSBXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwgOiBOU09iamVjdAogewogQHB1
YmxpYwotICAgIEdlb2xvY2F0aW9uUG9zaXRpb24gX3Bvc2l0aW9uOworICAgIEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhIF9wb3NpdGlvbjsKIH0KIAotLSAoaWQpaW5pdFdpdGhDb3JlR2VvbG9jYXRp
b25Qb3NpdGlvbjooR2VvbG9jYXRpb25Qb3NpdGlvbiYmKWNvcmVHZW9sb2NhdGlvblBvc2l0aW9u
OworLSAoaWQpaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjooR2VvbG9jYXRpb25Qb3Np
dGlvbkRhdGEmJiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjsKIEBlbmQKIAogQGltcGxlbWVudGF0
aW9uIFdlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbAogCi0tIChpZClpbml0V2l0aENvcmVH
ZW9sb2NhdGlvblBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZUdlb2xvY2F0aW9u
UG9zaXRpb24KKy0gKGlkKWluaXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246KEdlb2xvY2F0
aW9uUG9zaXRpb25EYXRhJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb24KIHsKICAgICBzZWxmID0g
W3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKQEAgLTU2LDcgKzU2LDcgQEAgQGVuZAogCiBA
aW1wbGVtZW50YXRpb24gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbgogCi1PcHRpb25hbDxHZW9sb2Nh
dGlvblBvc2l0aW9uPiBjb3JlKFdlYkdlb2xvY2F0aW9uUG9zaXRpb24gKnBvc2l0aW9uKQorT3B0
aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGNvcmUoV2ViR2VvbG9jYXRpb25Qb3NpdGlv
biAqcG9zaXRpb24pCiB7CiAgICAgaWYgKCFwb3NpdGlvbikKICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKQEAgLTY4LDExICs2OCwxMSBAQCAtIChpZClpbml0V2l0aFRpbWVzdGFtcDooZG91
YmxlKXRpbWVzdGFtcCBsYXRpdHVkZTooZG91YmxlKWxhdGl0dWRlIGxvbmdpdHVkZTooZAogICAg
IHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmls
OwotICAgIF9pbnRlcm5hbCA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsIGFsbG9j
XSBpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOkdlb2xvY2F0aW9uUG9zaXRpb24geyB0
aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH1dOworICAgIF9pbnRlcm5h
bCA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsIGFsbG9jXSBpbml0V2l0aENvcmVH
ZW9sb2NhdGlvblBvc2l0aW9uOkdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIHsgdGltZXN0YW1wLCBs
YXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSB9XTsKICAgICByZXR1cm4gc2VsZjsKIH0KIAot
LSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvblBvc2l0aW9uOihHZW9sb2NhdGlvblBvc2l0aW9uJiYp
Y29yZUdlb2xvY2F0aW9uUG9zaXRpb24KKy0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb25Qb3NpdGlv
bjooR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEmJiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbgogewog
ICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJu
YWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbkludGVybmFsLmgKaW5kZXggMzQ3NjMwMmYyZDZlYzM2MjIwMzM5MDQyZjRmYjJiYmViOTcy
NTc5MS4uN2VhYWE5YzBlY2M1MGE4ODgxYzI4OGNkZjY5ZWM4Zjk0NGQ4NzJlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9u
SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkdlb2xv
Y2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oCkBAIC0yNyw4ICsyNyw4IEBACiAjaW1wb3J0IDx3dGYv
T3B0aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIEdlb2xvY2F0aW9u
UG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YTsKIH0KIAotT3B0aW9uYWw8
V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbj4gY29yZShXZWJHZW9sb2NhdGlvblBvc2l0aW9u
ICopOworT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGNvcmUoV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbiAqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCmlu
ZGV4IDI3ZDc4NWUwODViZjcwY2Q3ZmE5ZjY3MTFmOTg0YWMxZWNlOThhYTguLjcwYTM0ZDBmNmQ3
NTk1NGYxNGYwYmYxOWQ1NmM5MjU5MDc3ZDIyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVu
dC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6c3RvcFVw
ZGF0aW5nKCkKICAgICBwcm92aWRlci0+dW5yZWdpc3RlcldlYlZpZXcobV93ZWJWaWV3LmdldCgp
KTsKIH0KIAotT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbj4gV2ViR2VvbG9jYXRpb25DbGll
bnQ6Omxhc3RQb3NpdGlvbigpCitPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0YT4gV2Vi
R2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCiB7CiAgICAgQ09NUHRyPElXZWJHZW9s
b2NhdGlvblByb3ZpZGVyPiBwcm92aWRlcjsKICAgICBpZiAoRkFJTEVEKG1fd2ViVmlldy0+Z2Vv
bG9jYXRpb25Qcm92aWRlcigmcHJvdmlkZXIpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCmlu
ZGV4IGJiYTljOWY0NDUzNThkN2NlM2VhMDNmODk2NjQxYmQ2ZTVlMDQwZDMuLjA4Yjc2MjAzNDA3
ZmZiMmJlOTEwOGI1NzAwYWVhN2RhYzA3NWJlZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQu
aApAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHZW9sb2Nh
dGlvbjsKLWNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CitjbGFzcyBHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YTsKIH0KIAogY2xhc3MgV2ViVmlldzsKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc3RhcnRVcGRhdGluZygpIGZpbmFsOwogICAgIHZvaWQgc3RvcFVwZGF0aW5nKCkg
ZmluYWw7CiAgICAgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkgZmluYWwgeyB9Ci0g
ICAgT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbj4gbGFzdFBvc2l0aW9uKCkg
ZmluYWw7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGxh
c3RQb3NpdGlvbigpIGZpbmFsOwogCiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3Jl
OjpHZW9sb2NhdGlvbiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3Qo
V2ViQ29yZTo6R2VvbG9jYXRpb24mKSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKaW5kZXggNWMyMDJlYzRiNGY2N2M2
NDBjZjdiM2IzMDU2YWFkNjM1Njk4YTZlZC4uZTYwZWIyMWZkYzAxNjIxNWU3NjJlZjkwMzhmM2Q0
NTlkMGI0NzNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViR2VvbG9j
YXRpb25Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViR2VvbG9j
YXRpb25Qb3NpdGlvbi5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJXZWJHZW9sb2Nh
dGlvblBvc2l0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DT01QdHIuaD4KIAotI2luY2x1ZGUg
PFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgotCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAogQ09NUHRyPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24+IFdlYkdlb2xvY2F0aW9uUG9zaXRp
b246OmNyZWF0ZUluc3RhbmNlKCkKQEAgLTgxLDExICs3OSwxMSBAQCBVTE9ORyBXZWJHZW9sb2Nh
dGlvblBvc2l0aW9uOjpSZWxlYXNlKCkKIAogSFJFU1VMVCBXZWJHZW9sb2NhdGlvblBvc2l0aW9u
Ojppbml0V2l0aFRpbWVzdGFtcChkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRv
dWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKIHsKLSAgICBtX3Bvc2l0aW9uID0gR2Vv
bG9jYXRpb25Qb3NpdGlvbiB7IHRpbWVzdGFtcCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJh
Y3kgfTsKKyAgICBtX3Bvc2l0aW9uID0gR2VvbG9jYXRpb25Qb3NpdGlvbkRhdGEgeyB0aW1lc3Rh
bXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH07CiAgICAgcmV0dXJuIFNfT0s7CiB9
CiAKLU9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb24+IGNvcmUoSVdlYkdlb2xvY2F0aW9uUG9z
aXRpb24qIHBvc2l0aW9uKQorT3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGNvcmUo
SVdlYkdlb2xvY2F0aW9uUG9zaXRpb24qIHBvc2l0aW9uKQogewogICAgIGlmICghcG9zaXRpb24p
CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKaW5kZXggZjVkOGY2N2QyYTk5YzM0MzRjYjk1
MzliYmFhZWYyYTFlNDJjY2IwOC4uOTc2YjMyYWEyY2ZlZDA4MDFhYzllOGQ4ZWFmZmQ1MzllOTkx
ODZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkdlb2xvY2F0aW9uUG9z
aXRpb24uaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaW5jbHVkZSAiV2ViS2l0LmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9DT01QdHIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRp
b24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb25EYXRhLmg+CiAKIGNs
YXNzIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24gZmluYWwgOiBwdWJsaWMgSVdlYkdlb2xvY2F0aW9u
UG9zaXRpb24gewogcHVibGljOgpAQCAtNDUsMTMgKzQ1LDEzIEBAIHB1YmxpYzoKICAgICAvLyBJ
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBpbml0V2l0aFRpbWVzdGFtcChkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUs
IGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSk7CiAKLSAgICBjb25zdCBPcHRpb25h
bDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiYgaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1f
cG9zaXRpb247IH0KKyAgICBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0
aW9uRGF0YT4mIGltcGwoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CiAKIHByaXZhdGU6
CiAgICAgVUxPTkcgbV9yZWZDb3VudCB7IDAgfTsKLSAgICBPcHRpb25hbDxXZWJDb3JlOjpHZW9s
b2NhdGlvblBvc2l0aW9uPiBtX3Bvc2l0aW9uOworICAgIE9wdGlvbmFsPFdlYkNvcmU6Okdlb2xv
Y2F0aW9uUG9zaXRpb25EYXRhPiBtX3Bvc2l0aW9uOwogfTsKIAotT3B0aW9uYWw8V2ViQ29yZTo6
R2VvbG9jYXRpb25Qb3NpdGlvbj4gY29yZShJV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiopOworT3B0
aW9uYWw8V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IGNvcmUoSVdlYkdlb2xvY2F0
aW9uUG9zaXRpb24qKTsKIAogI2VuZGlmIC8vIFdlYkdlb2xvY2F0aW9uUG9zaXRpb25faApkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDNmNTIzNGFm
MmQ0MTIzZTZiZTEzYzdiYjJlYzg0MDMwZGIwMzVmYjMuLjMxNjI3YTI0NWZjNTc5MjFmYTE1M2Qz
MDJjNjVkYjVjZDM5MGM3MGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0wOC0yMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtnZW9sb2NhdGlvbl0gUmVuYW1lIGludGVyZmFj
ZXMgYW5kIHJlbW92ZSBbTm9JbnRlcmZhY2VPYmplY3RdCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4ODUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVy
TWFjLm1tOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24p
OgorCiAyMDE5LTA4LTIyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAog
ICAgICAgICByZXN1bHRzLndlYmtpdC5vcmc6IFJlbW92ZSBicmFuY2ggYW5kIHJlcG9zaXRvcnkg
aW5mb3JtYXRpb24gZnJvbSBjb21taXQgdG9vbHRpcApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
VGVzdFJ1bm5lck1hYy5tbQppbmRleCAxZjk2MGFhZTJkZDAzZTE2MGIxMjRjNzkyMjNlOTU2YWFk
Y2VhNzhlLi4wMDY1OTU2YzgxZGQ3MTM1ZGUwMjdmNDlhMWY1M2JlYzY4MzYwNzJhIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAtNDEsNyArNDEsNyBAQAog
I2ltcG9ydCAiV29ya1F1ZXVlSXRlbS5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9u
Lmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1JlZkNGLmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRp
b25Qb3NpdGlvbkRhdGEuaD4KICNpbXBvcnQgPFdlYktpdC9ET01Eb2N1bWVudC5oPgogI2ltcG9y
dCA8V2ViS2l0L0RPTUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYktpdC9ET01IVE1MSW5wdXRFbGVt
ZW50UHJpdmF0ZS5oPgpAQCAtMTE5LDcgKzExOSw3IEBAIEBlbmQKICNlbmRpZgogCiBAaW50ZXJm
YWNlIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24gKEludGVybmFsKQotLSAoaWQpaW5pdFdpdGhHZW9s
b2NhdGlvblBvc2l0aW9uOihXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uJiYpY29yZUdlb2xv
Y2F0aW9uUG9zaXRpb247CistIChpZClpbml0V2l0aEdlb2xvY2F0aW9uUG9zaXRpb246KFdlYkNv
cmU6Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhJiYpY29yZUdlb2xvY2F0aW9uUG9zaXRpb247CiBA
ZW5kCiAKIFRlc3RSdW5uZXI6On5UZXN0UnVubmVyKCkKQEAgLTQ3Miw3ICs0NzIsNyBAQCB2b2lk
IFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwg
ZG91YmxlIGxvbmdpdHVkZSwgZAogICAgICAgICAvLyBUZXN0IHRoZSBleHBvc2VkIEFQSS4KICAg
ICAgICAgcG9zaXRpb24gPSBbW1dlYkdlb2xvY2F0aW9uUG9zaXRpb24gYWxsb2NdIGluaXRXaXRo
VGltZXN0YW1wOldhbGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSBs
YXRpdHVkZTpsYXRpdHVkZSBsb25naXR1ZGU6bG9uZ2l0dWRlIGFjY3VyYWN5OmFjY3VyYWN5XTsK
ICAgICB9IGVsc2UgewotICAgICAgICBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uIGdlb2xv
Y2F0aW9uUG9zaXRpb24geyBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNv
bmRzKCksIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH07CisgICAgICAgIFdlYkNvcmU6
Okdlb2xvY2F0aW9uUG9zaXRpb25EYXRhIGdlb2xvY2F0aW9uUG9zaXRpb24geyBXYWxsVGltZTo6
bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCksIGxhdGl0dWRlLCBsb25naXR1ZGUs
IGFjY3VyYWN5IH07CiAgICAgICAgIGlmIChwcm92aWRlc0FsdGl0dWRlKQogICAgICAgICAgICAg
Z2VvbG9jYXRpb25Qb3NpdGlvbi5hbHRpdHVkZSA9IGFsdGl0dWRlOwogICAgICAgICBpZiAocHJv
dmlkZXNBbHRpdHVkZUFjY3VyYWN5KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZlMDE1MGU2YjdhMmNmNTQyNzdjYmI4ZGM3
YzEyMDE3ZTY0OGExM2UuLjY5YjY0ZmU4ZTJjYjE3MDc2YzRmMzNkNjdkYmM1MmRkMzU3OWQ3ZTkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0wOC0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFtnZW9sb2NhdGlvbl0gUmVuYW1lIGludGVyZmFjZXMgYW5k
IHJlbW92ZSBbTm9JbnRlcmZhY2VPYmplY3RdCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA4ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAg
KiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9leHBvc2VkLWdlb2xvY2F0aW9uLWludGVyZmFjZXMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9leHBvc2Vk
LWdlb2xvY2F0aW9uLWludGVyZmFjZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
R2VvbG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJpbmcuaHRtbDoKKwogMjAxOS0wOC0yMiAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWJhc2VsaW5l
IHNvbWUgZWRpdGluZyB0ZXN0cyBhZnRlciByMjQ4OTc0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9leHBvc2VkLWdlb2xvY2F0aW9uLWludGVyZmFjZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZXhwb3NlZC1nZW9s
b2NhdGlvbi1pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWViMTk4YWJjMmFk
Y2Q4ODUyMDMyNmM1NGU0N2FmMGM2ZTBhNWVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vR2VvbG9jYXRpb24vZXhwb3NlZC1nZW9sb2NhdGlvbi1pbnRlcmZhY2VzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitDaGVja3MgdGhhdCB0aGUgR2VvbG9jYXRpb24g
aW50ZXJmYWNlcyBhcmUgZXhwb3NlZCBhbmQgdGhhdCB0aGVpciBuYW1lIGlzIGNvcnJlY3QuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHdpbmRvd1Byb3BlcnRpZXMuaW5k
ZXhPZignR2VvbG9jYXRpb24nKSA+PSAwIGlzIHRydWUKK1BBU1Mgd2luZG93UHJvcGVydGllcy5p
bmRleE9mKCdHZW9sb2NhdGlvbkNvb3JkaW5hdGVzJykgPj0gMCBpcyB0cnVlCitQQVNTIHdpbmRv
d1Byb3BlcnRpZXMuaW5kZXhPZignR2VvbG9jYXRpb25Qb3NpdGlvbicpID49IDAgaXMgdHJ1ZQor
UEFTUyB3aW5kb3dQcm9wZXJ0aWVzLmluZGV4T2YoJ0dlb2xvY2F0aW9uUG9zaXRpb25FcnJvcicp
ID49IDAgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2V4
cG9zZWQtZ2VvbG9jYXRpb24taW50ZXJmYWNlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
R2VvbG9jYXRpb24vZXhwb3NlZC1nZW9sb2NhdGlvbi1pbnRlcmZhY2VzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGNjNzgzMGI5NTk3N2UwY2MxNGY4MWE4MzAxYTUyNGVhYzhlMzA5MgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL2V4cG9zZWQtZ2VvbG9jYXRp
b24taW50ZXJmYWNlcy5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkNoZWNrcyB0aGF0IHRoZSBHZW9sb2Nh
dGlvbiBpbnRlcmZhY2VzIGFyZSBleHBvc2VkIGFuZCB0aGF0IHRoZWlyIG5hbWUgaXMgY29ycmVj
dC4iKTsKKworY29uc3Qgd2luZG93UHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5h
bWVzKHdpbmRvdyk7Citjb25zdCBleHBlY3RlZFByb3BlcnRpZXMgPSBbIkdlb2xvY2F0aW9uIiwg
Ikdlb2xvY2F0aW9uQ29vcmRpbmF0ZXMiLCAiR2VvbG9jYXRpb25Qb3NpdGlvbiIsICJHZW9sb2Nh
dGlvblBvc2l0aW9uRXJyb3IiXTsKKworZm9yIChsZXQgZXhwZWN0ZWRQcm9wZXJ0eSBvZiBleHBl
Y3RlZFByb3BlcnRpZXMpCisgIHNob3VsZEJlVHJ1ZSgid2luZG93UHJvcGVydGllcy5pbmRleE9m
KCciICsgZXhwZWN0ZWRQcm9wZXJ0eSArICInKSA+PSAwIik7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Bv
c2l0aW9uLXN0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2Nh
dGlvbi9wb3NpdGlvbi1zdHJpbmctZXhwZWN0ZWQudHh0CmluZGV4IDA0NWY0OTZlZjljZWNiNTk3
MTg3ZTcxMDY5ZjE4YWQ5MTI3NzE2ZDQuLjRhNzEyNzRiMDkwMTEyNDExNzczMTllYjliODU1NGYy
NjQxNGE4YmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0dlb2xvY2F0aW9uL3Bv
c2l0aW9uLXN0cmluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2Vv
bG9jYXRpb24vcG9zaXRpb24tc3RyaW5nLWV4cGVjdGVkLnR4dApAQCAtNiw4ICs2LDggQEAgT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFBBU1MgcG9zaXRpb24uY29vcmRzLmxhdGl0dWRlIGlzIG1v
Y2tMYXRpdHVkZQogUEFTUyBwb3NpdGlvbi5jb29yZHMubG9uZ2l0dWRlIGlzIG1vY2tMb25naXR1
ZGUKIFBBU1MgcG9zaXRpb24uY29vcmRzLmFjY3VyYWN5IGlzIG1vY2tBY2N1cmFjeQotUEFTUyBw
b3NpdGlvbi50b1N0cmluZygpIGlzICJbb2JqZWN0IEdlb3Bvc2l0aW9uXSIKLVBBU1MgcG9zaXRp
b24uY29vcmRzLnRvU3RyaW5nKCkgaXMgIltvYmplY3QgQ29vcmRpbmF0ZXNdIgorUEFTUyBwb3Np
dGlvbi50b1N0cmluZygpIGlzICJbb2JqZWN0IEdlb2xvY2F0aW9uUG9zaXRpb25dIgorUEFTUyBw
b3NpdGlvbi5jb29yZHMudG9TdHJpbmcoKSBpcyAiW29iamVjdCBHZW9sb2NhdGlvbkNvb3JkaW5h
dGVzXSIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vR2VvbG9jYXRpb24vcG9zaXRpb24tc3Ry
aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJp
bmcuaHRtbAppbmRleCBiNjY0ZDFjMDIzMGEyZjA3YzhhYTkwYzE1ZmJkNTFmNzk0ZmUwYTI0Li42
Y2ViNmU3NjNkZDNmMjZjZTdjMzMxMmM0N2U4ZDljZGQxZGI2NTdlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJpbmcuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9HZW9sb2NhdGlvbi9wb3NpdGlvbi1zdHJpbmcuaHRtbApAQCAt
MjYsOCArMjYsOCBAQCBuYXZpZ2F0b3IuZ2VvbG9jYXRpb24uZ2V0Q3VycmVudFBvc2l0aW9uKGZ1
bmN0aW9uKHApIHsKICAgICBzaG91bGRCZSgncG9zaXRpb24uY29vcmRzLmxhdGl0dWRlJywgJ21v
Y2tMYXRpdHVkZScpOwogICAgIHNob3VsZEJlKCdwb3NpdGlvbi5jb29yZHMubG9uZ2l0dWRlJywg
J21vY2tMb25naXR1ZGUnKTsKICAgICBzaG91bGRCZSgncG9zaXRpb24uY29vcmRzLmFjY3VyYWN5
JywgJ21vY2tBY2N1cmFjeScpOwotICAgIHNob3VsZEJlKCdwb3NpdGlvbi50b1N0cmluZygpJywg
JyJbb2JqZWN0IEdlb3Bvc2l0aW9uXSInKTsKLSAgICBzaG91bGRCZSgncG9zaXRpb24uY29vcmRz
LnRvU3RyaW5nKCknLCAnIltvYmplY3QgQ29vcmRpbmF0ZXNdIicpOworICAgIHNob3VsZEJlKCdw
b3NpdGlvbi50b1N0cmluZygpJywgJyJbb2JqZWN0IEdlb2xvY2F0aW9uUG9zaXRpb25dIicpOwor
ICAgIHNob3VsZEJlKCdwb3NpdGlvbi5jb29yZHMudG9TdHJpbmcoKScsICciW29iamVjdCBHZW9s
b2NhdGlvbkNvb3JkaW5hdGVzXSInKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0sIGZ1bmN0aW9u
KGUpIHsKICAgICB0ZXN0RmFpbGVkKCdFcnJvciBjYWxsYmFjayBpbnZva2VkIHVuZXhwZWN0ZWRs
eScpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>